用于更新遠(yuǎn)程處理節(jié)點(diǎn)中的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換管理指令的制作方法
【專利說明】用于更新遠(yuǎn)程處理節(jié)點(diǎn)中的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換管理指令
[0001]背景
[0002]本發(fā)明通常涉及數(shù)據(jù)處理,特別是處理器架構(gòu)和納入其中的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)。
[0003]存儲器管理,S卩,在管理存儲在計(jì)算機(jī)中的數(shù)據(jù)時(shí)所發(fā)生的操作,通常是計(jì)算機(jī)整體系統(tǒng)性能的關(guān)鍵因素。除了其他任務(wù)之外,存儲器管理監(jiān)督計(jì)算機(jī)中數(shù)據(jù)的檢索和存儲,以及通過對哪些用戶和計(jì)算機(jī)程序被允許訪問施加限制來管理計(jì)算機(jī)的某些安全任務(wù)。
[0004]現(xiàn)代計(jì)算機(jī)一般情況下依賴于被稱為虛擬存儲器管理的存儲器管理技術(shù)來提高性能,并且在計(jì)算機(jī)和他們被以之為前提的底層架構(gòu)設(shè)計(jì)上提供更大的靈活性。使用虛擬存儲器系統(tǒng),實(shí)現(xiàn)計(jì)算機(jī)存儲系統(tǒng)的底層的硬件被有效地相對于計(jì)算機(jī)軟件隱藏起來。為這樣的計(jì)算機(jī)定義相對比較大的虛擬存儲空間,例如,寬度為64位或更多,執(zhí)行在該計(jì)算機(jī)上的計(jì)算機(jī)程序使用指向虛擬存儲空間中的位置的虛擬地址訪問存儲系統(tǒng)。然而,計(jì)算機(jī)中的物理存儲設(shè)備,通過直接映射到物理存儲設(shè)備中的特定存儲位置的“真實(shí)”地址而被訪問。提供計(jì)算機(jī)中的硬件和/或軟件來執(zhí)行“地址轉(zhuǎn)換”以映射物理存儲器的實(shí)際存儲地址到虛擬存儲空間中的虛擬地址。這樣,無論何時(shí)在計(jì)算機(jī)上的計(jì)算機(jī)程序試圖使用虛擬地址訪問存儲器,計(jì)算機(jī)自動將虛擬地址轉(zhuǎn)換為對應(yīng)的真實(shí)地址,以便可以訪問映射到虛擬地址的適當(dāng)?shù)奈锢碓O(shè)備上的合適位置。
[0005]虛擬尋址的一個(gè)特征是對計(jì)算機(jī)來說不需要在計(jì)算機(jī)的主存儲器的物理存儲設(shè)備中包括用于整個(gè)虛擬存儲空間的存儲器。相反,較低級別的存儲,如磁盤驅(qū)動器和其他大容量存儲設(shè)備,可作為輔助存儲,其中存儲器地址分組成根據(jù)需要在主存儲器和輔助存儲器之間互換的“頁”。由于計(jì)算機(jī)中的訪問請求的頻率,地址轉(zhuǎn)換可以對整體系統(tǒng)性能有重要的影響。因此,需要減少在執(zhí)行地址轉(zhuǎn)換所在的關(guān)鍵時(shí)序路徑相關(guān)聯(lián)的處理開銷。
[0006]虛擬存儲系統(tǒng)中的地址轉(zhuǎn)換一般情況下包含訪問不同的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)。一個(gè)這樣的結(jié)構(gòu),稱為頁表,包括在逐頁基礎(chǔ)上將虛擬地址映射到真實(shí)地址的多個(gè)記錄(entry)。通常,由于不斷發(fā)生在一個(gè)計(jì)算機(jī)中的大量的存儲器訪問,需要由計(jì)算機(jī)映射到所有的使用的存儲器地址空間的記錄數(shù)量可能非常大,并要求這些記錄被存儲在主存儲器中,而不是存儲在專用存儲器中,這使得訪問這些記錄非常慢。為了加速使用這樣方案的地址轉(zhuǎn)換,稱為轉(zhuǎn)換后備緩沖器(TLB)的高速存儲器用于緩存最近使用的記錄以便由計(jì)算機(jī)快速存取。如果所需的記錄未存儲在TLB中,從主存儲器加載記錄就會發(fā)生性能損失;然而,一般情況下在TLB的命中率是足夠的,從主存儲器加載記錄相關(guān)聯(lián)的損失比立刻從TLB訪問記錄時(shí)的性能增加的補(bǔ)償要大。在其他的設(shè)計(jì)中,通過利用一個(gè)或多個(gè)有效到真實(shí)地址轉(zhuǎn)換(ERAT)表,額外的緩存層級可用于進(jìn)一步的加速性能。此外,在某些設(shè)計(jì)中,在處理器中靠近指令和數(shù)據(jù)處理邏輯處分別提供單獨(dú)的ERAT數(shù)據(jù)和指令,從而減小處理器中關(guān)鍵性能路徑上的地址轉(zhuǎn)換的影響。
[0007]此外,隨著半導(dǎo)體技術(shù)就增加時(shí)鐘速度而言不斷推近到可實(shí)現(xiàn)的限制,架構(gòu)師們越來越注重處理器架構(gòu)的并行性以獲得性能的改善。在芯片級,多處理核經(jīng)常布置在同一芯片上,以與單獨(dú)的處理器芯片大致相同的方式工作,或在某種程度上,作為完全獨(dú)立的計(jì)算機(jī)工作。此外,即使在核內(nèi),通過采用多個(gè)專門處理某些類型操作的執(zhí)行單元來使用并行機(jī)制。在許多情況下還使用流水線操作,以便某些可能需要多個(gè)時(shí)鐘周期執(zhí)行的操作被分成幾個(gè)階段,使早期操作完成之前就開始其他操作。同時(shí)也使用多線程,使得多個(gè)指令流能被并行處理,使在任何給定的時(shí)鐘周期中執(zhí)行更多的全局工作。
[0008]結(jié)果是,現(xiàn)在許多數(shù)據(jù)處理系統(tǒng)包括多個(gè)互連的處理節(jié)點(diǎn),其通過相同的網(wǎng)絡(luò)彼此連接,通常布置在同一芯片或集成電路器件上。而在一些設(shè)計(jì)中處理節(jié)點(diǎn)可以是彼此相同的,在其他設(shè)計(jì)中處理節(jié)點(diǎn)可以是異構(gòu)的,包括不同的功能,使得整個(gè)系統(tǒng)可以處理各種類型的工作負(fù)載。例如,一些處理節(jié)點(diǎn)可以是能夠運(yùn)行通用工作負(fù)載的通用處理節(jié)點(diǎn),而其他處理節(jié)點(diǎn)可能更專業(yè)化,特別是輔助通用處理節(jié)點(diǎn)處理特定的任務(wù)。例如,專業(yè)的處理節(jié)點(diǎn),可能是加速器或協(xié)處理器,可用于處理各種各樣的任務(wù),例如高級的算術(shù)運(yùn)算,加密/解密,壓縮/解壓縮,圖形,視頻或圖像處理等。然而,在許多情況下,這些專門處理節(jié)點(diǎn)被通用處理節(jié)點(diǎn)管理,以在請求時(shí)執(zhí)行特定的任務(wù)。
[0009]當(dāng)多個(gè)處理節(jié)點(diǎn)連接到同一網(wǎng)絡(luò)、尤其是共享相同的物理存儲器時(shí),在每個(gè)處理節(jié)點(diǎn)可以提供專用地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)來高速緩存轉(zhuǎn)換記錄,從而加快這些處理節(jié)點(diǎn)的存儲器訪問。然而,在許多情況下,工作負(fù)載可以分布在多個(gè)處理節(jié)點(diǎn),因此可能引入延遲,因?yàn)楣ぷ髟谙嗤墓ぷ髫?fù)載的不同的處理節(jié)點(diǎn)為存儲在共享存儲器中的任何數(shù)據(jù)高速緩存相同的轉(zhuǎn)換記錄。
[0010]作為一個(gè)例子,其中通用處理節(jié)點(diǎn)被耦合到協(xié)處理器,運(yùn)行在通用處理節(jié)點(diǎn)上的程序可以存儲器區(qū)域存儲某些數(shù)據(jù)以供協(xié)處理器使用,然后將命令發(fā)送到協(xié)處理器以對存儲在該存儲器區(qū)域的數(shù)據(jù)執(zhí)行操作。當(dāng)通用處理節(jié)點(diǎn)首先嘗試在存儲器區(qū)域中存儲數(shù)據(jù)時(shí),可能最初在那個(gè)節(jié)點(diǎn)的專用ERAT表或者TLB表發(fā)生未命中(miss),因此需要訪問頁表來檢索該存儲器區(qū)域的轉(zhuǎn)換記錄,其中往往伴隨著一個(gè)顯著的性能損失。后來,當(dāng)通用處理節(jié)點(diǎn)向協(xié)處理器發(fā)送命令,然后協(xié)處理器試圖檢索存儲的數(shù)據(jù),在該協(xié)處理器的專用ERAT表或者TLB表中典型地發(fā)生另一個(gè)未命中,因此需要對頁表的另一次訪問來檢索該存儲器區(qū)域的轉(zhuǎn)換記錄。這樣,通用處理節(jié)點(diǎn)和協(xié)處理器試圖訪問同一數(shù)據(jù)時(shí)發(fā)生兩個(gè)未命中。
[0011]因此,本領(lǐng)域持續(xù)迫切需要更好地管理分布在多節(jié)點(diǎn)數(shù)據(jù)處理系統(tǒng)中的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的方式。
【發(fā)明內(nèi)容】
[0012]本發(fā)明通過在多節(jié)點(diǎn)數(shù)據(jù)處理系統(tǒng)中支持一個(gè)或者多個(gè)類型的轉(zhuǎn)換管理指令來處理與現(xiàn)有技術(shù)關(guān)聯(lián)的這些和其他問題,其便利了分布在整個(gè)這樣系統(tǒng)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的遠(yuǎn)程管理。因此,對多處理節(jié)點(diǎn)共同地處理負(fù)載的多節(jié)點(diǎn)數(shù)據(jù)處理系統(tǒng)來說,這種節(jié)點(diǎn)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)可以被共同地管理,從而最小化轉(zhuǎn)換未命中以及通常與之相關(guān)的性能損失。例如,在一些實(shí)施例中,一個(gè)處理節(jié)點(diǎn)可以使用轉(zhuǎn)換管理指令管理一個(gè)或者多個(gè)其他處理節(jié)點(diǎn)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),使得在處理由這些其他節(jié)點(diǎn)執(zhí)行的、即將到來的任務(wù)之前,地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)被優(yōu)化地建立。
[0013]例如,一種類型的轉(zhuǎn)換管理指令可用于對分別布置在本地和遠(yuǎn)程處理節(jié)點(diǎn)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)執(zhí)行本地和遠(yuǎn)程操作。例如,搜索和推送指令可以用來搜索本地地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)并為匹配搜索準(zhǔn)則的記錄返回索引或其它標(biāo)識符,還額外地將與匹配記錄相關(guān)的數(shù)據(jù)推送到遠(yuǎn)程節(jié)點(diǎn)以便可在那個(gè)遠(yuǎn)程節(jié)點(diǎn)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中存儲或者生成該記錄。作為另一個(gè)例子,寫入和推送指令可用于將數(shù)據(jù)寫入本地地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的記錄,此外還將所寫的數(shù)據(jù)推送到遠(yuǎn)程節(jié)點(diǎn)以便可以類似地更新在那個(gè)遠(yuǎn)程節(jié)點(diǎn)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的對應(yīng)的記錄。
[0014]另一種類型的轉(zhuǎn)換管理指令可用于對遠(yuǎn)程節(jié)點(diǎn)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的記錄發(fā)起遠(yuǎn)程無效,而不會對應(yīng)地?zé)o效在本地的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的記錄。
[0015]因此,和本發(fā)明的一個(gè)方面相一致,在包括多個(gè)處理節(jié)點(diǎn)的類型的數(shù)據(jù)處理系統(tǒng)中處理指令,其中多個(gè)處理節(jié)點(diǎn)中的每個(gè)處理節(jié)點(diǎn)中包括地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),其中,在所述多個(gè)處理節(jié)點(diǎn)中的第一處理節(jié)點(diǎn)對轉(zhuǎn)換管理指令解碼,其中在所述第一處理節(jié)點(diǎn)的指令集合中定義所述轉(zhuǎn)換管理指令;以及響應(yīng)于在所述第一處理節(jié)點(diǎn)對所述轉(zhuǎn)換管理指令解碼,對在所述第一處理節(jié)點(diǎn)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)執(zhí)行第一本地操作,并且對所述多個(gè)處理節(jié)點(diǎn)中的第二處理節(jié)點(diǎn)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)發(fā)起第二遠(yuǎn)程操作。
[0016]和本發(fā)明的另一個(gè)方面相一致,在包括多個(gè)處理節(jié)點(diǎn)的類型的數(shù)據(jù)處理系統(tǒng)中處理指令,其中多個(gè)處理節(jié)點(diǎn)中的每個(gè)處理節(jié)點(diǎn)中包括地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),其中,在所述多個(gè)處理節(jié)點(diǎn)中的第一處理節(jié)點(diǎn)對轉(zhuǎn)換管理指令解碼,其中在所述第一處理節(jié)點(diǎn)的指令集合中定義所述轉(zhuǎn)換管理指令;以及響應(yīng)于在所述第一處理節(jié)點(diǎn)對所述轉(zhuǎn)換管理指令解碼,對所述多個(gè)處理節(jié)點(diǎn)中的第二處理節(jié)點(diǎn)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)發(fā)起無效操作來無效在所述第二處理節(jié)點(diǎn)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的記錄,而不無效在所述第一處理節(jié)點(diǎn)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的對應(yīng)記錄。
[0017]描述本發(fā)明的這些和其他優(yōu)點(diǎn)和特征在附屬的權(quán)利要求中陳述并形成本文的進(jìn)一步的部分。然而,為了更好地理解本發(fā)明,以及通過其使用獲得的優(yōu)勢和目標(biāo),應(yīng)該參考附圖以及描述本發(fā)明示例性實(shí)施例的附加的描述。
【附圖說明】
[0018]圖1是與本發(fā)明的實(shí)施例相一致的包括用于數(shù)據(jù)處理的示例性計(jì)算機(jī)的示例性自動計(jì)算機(jī)器的框圖;
[0019]圖2是一個(gè)在圖1所示的計(jì)算機(jī)中實(shí)現(xiàn)的示例性的NOC的框圖;
[0020]圖3是更詳細(xì)地說明來自圖2的NOC的節(jié)點(diǎn)示例性的實(shí)現(xiàn)的框圖;
[0021]圖4是說明來自圖2的NOC的IP塊示例性的實(shí)現(xiàn)的框圖;
[0022]圖5示出了適合于實(shí)現(xiàn)與本發(fā)明相一致的轉(zhuǎn)換管理指令的多節(jié)點(diǎn)數(shù)據(jù)處理系統(tǒng)的示例性實(shí)現(xiàn)的框圖;
[0023]圖6示出了對圖5實(shí)現(xiàn)的多節(jié)點(diǎn)數(shù)據(jù)處理系統(tǒng)的替換實(shí)現(xiàn)的框圖;
[0024]圖7示出了當(dāng)執(zhí)行圖5和6之一的數(shù)據(jù)處理系統(tǒng)的處理節(jié)點(diǎn)中的ERAT搜索和推送指令時(shí),執(zhí)行的操作的示例性序列的流程圖;
[0025]圖8示出了當(dāng)執(zhí)行圖5和6之一的數(shù)據(jù)處理系統(tǒng)的處理節(jié)點(diǎn)中的ERAT寫入和推送指令時(shí),執(zhí)行的示例性操作的序列的流程圖;
[0026]圖9示出了當(dāng)執(zhí)行圖5和6之一的數(shù)據(jù)處理系統(tǒng)的處理節(jié)點(diǎn)中的ERAT遠(yuǎn)程無效指令時(shí),執(zhí)行的示例性操作的序列的流程圖;
[0027]圖10示出了當(dāng)執(zhí)行圖5和6之一的數(shù)據(jù)處理系統(tǒng)的處理節(jié)點(diǎn)中的TLB搜索和推送指令時(shí),執(zhí)行的示例性操作的序列的流程圖;
[0028]圖11示出了當(dāng)執(zhí)行圖5和6之一的數(shù)據(jù)處理系統(tǒng)的處理節(jié)點(diǎn)中的TLB寫入和推送指令時(shí),執(zhí)行的示例性操作的序列的流程圖;
[0029]圖12示出了當(dāng)執(zhí)行圖5和6之一的數(shù)據(jù)處理系統(tǒng)的處理節(jié)點(diǎn)中的TLB遠(yuǎn)程無效指令時(shí),執(zhí)行的示例性操作的序列的流程圖;
[0030]圖13示出了當(dāng)執(zhí)行圖5和6之一的數(shù)據(jù)處理系統(tǒng)中的處理節(jié)點(diǎn)中的以轉(zhuǎn)換啟動協(xié)處理器指令時(shí),執(zhí)行的示例性操作的序列的流程圖。
【具體實(shí)施方式】
[0031]在多節(jié)點(diǎn)數(shù)據(jù)處理系統(tǒng)中提供轉(zhuǎn)換管理指令方便了分布在整個(gè)系統(tǒng)的地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的遠(yuǎn)程管理。
[0032]例如,轉(zhuǎn)換管理指