專利名稱:在多內(nèi)核環(huán)境中有效分配引用的全局唯一標(biāo)識(shí)符的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)主要涉及分布式存儲(chǔ)器管理系統(tǒng),并且更具體地涉及用于在多內(nèi)核環(huán)境中有效分配引用的全局唯一標(biāo)識(shí)符的機(jī)制。
背景技術(shù):
在多內(nèi)核環(huán)境中,經(jīng)常需要跨幾個(gè)內(nèi)核來管理獨(dú)立工作負(fù)載或多段工作負(fù)載。為了有助于跨內(nèi)核管理的工作負(fù)載,主機(jī)程序記錄各內(nèi)核如何被分配給每一個(gè) 工作負(fù)載。而且,對(duì)于各內(nèi)核來說為了通信的目的可能需要彼此識(shí)別。為此,可能要將大量的存儲(chǔ)器地址空間用于協(xié)調(diào)各內(nèi)核之間的此類通信,正如Cell寬帶引擎架構(gòu)(CBEA)中的情形一樣。典型的CBEA包括至少一個(gè)Power PC 處理元件(PPE)內(nèi)核和8個(gè)協(xié)同處理元件(SPE)內(nèi)核,每一個(gè)都具有每SPE 256KB的快速本地存儲(chǔ)器,以及全局一致的直接存儲(chǔ)器訪問(DMA)引擎用于在本地存儲(chǔ)器和共享系統(tǒng)存儲(chǔ)器之間傳輸數(shù)據(jù)。(Power PC是國際商業(yè)機(jī)器(IBM)公司的商標(biāo)。)以全局方式管理這些資源需要全系統(tǒng)唯一的標(biāo)識(shí)符。為了讓每一個(gè)內(nèi)核識(shí)別出其他內(nèi)核,使用的標(biāo)識(shí)符必需被轉(zhuǎn)換成有用的數(shù)據(jù)(例如結(jié)構(gòu),指針)。這種轉(zhuǎn)換可以包括例如通過使用索引到存儲(chǔ)器陣列中查找與指定標(biāo)識(shí)符相關(guān)聯(lián)的數(shù)據(jù)。在索引的存儲(chǔ)器陣列的情況下,存在多種能夠?qū)嵤┑乃饕龣C(jī)制。一種方式是采用全局唯一索引編號(hào)(也就是絕對(duì)索引)來識(shí)別多內(nèi)核環(huán)境中的每一個(gè)特定內(nèi)核。另一種方式是采用僅對(duì)內(nèi)核的子集唯一的相對(duì)索引。但是,將這些類型的索引轉(zhuǎn)換為數(shù)據(jù)需要相當(dāng)大的開銷。相對(duì)索引可能不是跨分離的內(nèi)核集合而全局唯一的。因此,管理這些資源的主機(jī)或管理員需要附加信息以使每一個(gè)標(biāo)識(shí)符唯一。例如,在分離的內(nèi)核集合的情況下,這樣的附加信息可以識(shí)別出標(biāo)識(shí)符與之關(guān)聯(lián)的特定內(nèi)核集合。另外,共享標(biāo)識(shí)符信息需要轉(zhuǎn)換為可由接受者識(shí)別的標(biāo)識(shí)符,這樣做可以證明是低效的。盡管使用絕對(duì)索引解決了相對(duì)索引中存在的全局唯一性問題,但是實(shí)施絕對(duì)索引要求無論在哪里使用索引都要有可用的完整地址表。這樣就會(huì)消耗不必要的大量存儲(chǔ)器資源,特別是如果存儲(chǔ)器空間在多內(nèi)核系統(tǒng)中受限制的話。為了消除在使用絕對(duì)索引的每一處位置都要存儲(chǔ)完整地址表的需求,一種用于在此情況下減少存儲(chǔ)器的方法是(i)在每一處位置僅使完整的全局唯一表中連續(xù)的一部分可用,以及(ii)對(duì)索引使用調(diào)節(jié)因子以使其成為相對(duì)索引。但是,類似于涉及相對(duì)索引的上述情況,調(diào)節(jié)因子增加了轉(zhuǎn)換開銷。除了與絕對(duì)和相對(duì)索引相關(guān)聯(lián)的低效以外,跨所有內(nèi)核集合持久性的靜態(tài)索引(例如管理員標(biāo)識(shí)符)能夠在表中使用的連續(xù)索引中造成間隙。索引中這些間隙的處理能夠以多種方法進(jìn)行,但是這些方法中沒有一種是最優(yōu)的。例如,可以加入空白項(xiàng)以填充表中的孔洞,這樣會(huì)浪費(fèi)存儲(chǔ)器空間。另一種選擇是“專門個(gè)案處理(special-case)”索引中的孔洞,這樣會(huì)在索引的處理中增加額外的步驟
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一種應(yīng)用,提供了一種方法,在多內(nèi)核環(huán)境中用于給處理單元(PU)分配全局唯一內(nèi)核標(biāo)識(shí)符。本文中介紹的某些實(shí)施例利用Power PC 處理單元(或主處理單元)(PPU)確定對(duì)應(yīng)于自然索引的索引別名,其中對(duì)應(yīng)于PI3U的協(xié)同處理單元(SPU)將自然索引轉(zhuǎn)換為內(nèi)核存儲(chǔ)器中的第一地址,而且將索引別名轉(zhuǎn)換為內(nèi)核存儲(chǔ)器中的第二地址。索引別名的確定包括PPU確定處理器內(nèi)核中存儲(chǔ)地址查詢表的本地存儲(chǔ)器(LS)總的可用存儲(chǔ)器大小。PPU還確定LS總可用存儲(chǔ)器內(nèi)地址查詢表中表元的固定位數(shù)。PI3U確定別名因子,其中別名因子是總可用存儲(chǔ)器和表元固定位數(shù)的商。如果PPU確定需要將多于一個(gè)不同的標(biāo)識(shí)符(ID)用于同一個(gè)PU,那么PPU就在自然索引上累加別名因子。PTO將索
引別名通知其對(duì)應(yīng)的SPU。PPU或SPU將索引別名轉(zhuǎn)換為第二地址以使第二地址和第一地址指向內(nèi)核存儲(chǔ)器中相同的物理位置。根據(jù)另一些實(shí)施例,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括存有計(jì)算機(jī)可讀取程序的計(jì)算機(jī)可用或者可讀取介質(zhì)。計(jì)算機(jī)可讀取程序當(dāng)在計(jì)算設(shè)備上執(zhí)行時(shí)促使計(jì)算設(shè)備完成以上列舉操作中的各個(gè)步驟及其組合。根據(jù)另一個(gè)實(shí)施例,提供了一種系統(tǒng)/裝置。系統(tǒng)/裝置可以包括一個(gè)或多個(gè)處理器以及耦合至一個(gè)或多個(gè)處理器的存儲(chǔ)器。存儲(chǔ)器可以包括指令,指令在由一個(gè)或多個(gè)處理器執(zhí)行時(shí)促使一個(gè)或多個(gè)處理器完成以上列舉操作中的各個(gè)步驟及其組合。根據(jù)以下對(duì)本發(fā)明示例性實(shí)施例的詳細(xì)說明來介紹本發(fā)明的各種特征和優(yōu)點(diǎn)并使這些特征和優(yōu)點(diǎn)對(duì)本領(lǐng)域普通技術(shù)人員顯而易見。
現(xiàn)參照附圖介紹本發(fā)明僅作為示例的實(shí)施例,在附圖中圖I示出了根據(jù)示范性實(shí)施例的異構(gòu)多內(nèi)核處理器的示意圖,其中可以實(shí)施示范性實(shí)施例的應(yīng)用;圖2示出了協(xié)同處理單元(SPU)本地存儲(chǔ)器(LS)的示范性地址圖,其中可以實(shí)施示范性實(shí)施例的應(yīng)用;圖3示出了根據(jù)示范性實(shí)施例的使用索引別名的示范性SPU本地存儲(chǔ)器(LS)模型;圖4示出了根據(jù)示范性實(shí)施例的用于各種處理單元的示范性標(biāo)識(shí)符(ID)集合;以及圖5示出了根據(jù)示范性實(shí)施例的在有效分配引用的全局唯一標(biāo)識(shí)符時(shí)由圖I中的Power PC 處理單元(PPU)完成的操作示例。
具體實(shí)施例方式本文中介紹的實(shí)施例提供了一種用于在多內(nèi)核環(huán)境中有效分配引用的全局唯一標(biāo)識(shí)符的機(jī)制。所述機(jī)制同時(shí)具有相對(duì)索引和絕對(duì)索引的優(yōu)點(diǎn),而且沒有轉(zhuǎn)換開銷或存儲(chǔ)器浪費(fèi)方面的低效?,F(xiàn)參照附圖并且具體參照?qǐng)DI,提供了其中可以實(shí)施本發(fā)明實(shí)施例的數(shù)據(jù)處理環(huán)境的示意圖。應(yīng)該意識(shí)到圖I僅僅是示范性的而并不是為了聲明或暗示對(duì)于其中可以實(shí)施本發(fā)明的應(yīng)用或?qū)嵤├沫h(huán)境的任何限制。對(duì)圖示的實(shí)施例可以進(jìn)行多種修改而并不背離本發(fā)明的保護(hù)范圍?,F(xiàn)參照附圖并且具體參照?qǐng)D1,示出了異構(gòu)多內(nèi)核處理器的示意圖,其中可以實(shí)施一個(gè)實(shí)施例的應(yīng)用。異構(gòu)多內(nèi)核處理器的該示例與IBM、索尼電腦娛樂公司和東芝共同研發(fā)的Cell寬帶引擎架構(gòu)(CBEA)兼容。(Cell寬帶引擎(Cell Broadband Engine)是索尼電腦娛樂公司的商標(biāo)。)根據(jù)使用的技術(shù)以及方向涉及以富媒體應(yīng)用(例如游戲控制臺(tái)、桌面系統(tǒng)和服務(wù)器)為目標(biāo)的分布式處理的計(jì)劃設(shè)計(jì)點(diǎn)的成本/性能特征,多內(nèi)核處理器100可以在主板或其他二級(jí)封裝上包括單芯片、一個(gè)或多個(gè)多芯片模塊或者多個(gè)單芯片模塊。邏輯上,多內(nèi)核處理器100限定了四種不同類型的功能部件=Power PC K)處理元件(在本文中也稱為主處理元件)(PPE)IOl或102,協(xié)同處理單元(SPU) 103、104、105或106,存儲(chǔ)器流控制器(MFC)107、108、109或110,以及內(nèi)部中斷控制器(IIC) 111。多內(nèi)核處理器100中的計(jì)算單元是PPE 101和102以及SPU 103、104、105和106。SPU 103,104,105和106中的每一個(gè)都分別具有專用本地存儲(chǔ)器(LS) 112、113、114或115,專用MFC 107、108、109或110及其相關(guān)聯(lián)的存儲(chǔ)器管理單元(MMU) 116、117、118或119,以及替換管理表(RMT) 120、121、122或123。這些部件的組合被稱為SPU部件(SPE)組124或125。 多內(nèi)核處理器100示出了分別共享單個(gè)SLl高速緩存126和127的SPE組124和125。SLl緩存是用于在本地存儲(chǔ)器和主存儲(chǔ)器之間的直接存儲(chǔ)器訪問傳輸?shù)囊患?jí)高速緩存。PPE組101和102分別共享單個(gè)二級(jí)(L2)高速緩存128和129。盡管示出了用于SPE組124和125以及PPE組101和102的高速緩存,但是它們?cè)贑BEA中被認(rèn)為是可選的。圖I中還包括有通??梢栽谔幚砥髦邪l(fā)現(xiàn)的兩個(gè)控制器存儲(chǔ)器接口控制器(MIC) 130和總線接口控制器(BIC) 131。MIC130提供對(duì)用于多內(nèi)核處理器100的存儲(chǔ)器150的訪問。BIC131為用于多內(nèi)核處理器100的輸入/輸出控制器(IOC) 149提供輸入/輸出接口。連接處理器內(nèi)各個(gè)單元的是元件互連總線(EIB) 132。由于在各種實(shí)現(xiàn)方式之間對(duì)MIC 130,BIC131和EIB 132的要求有很大不同,因此對(duì)這些單元的定義超出了 CBEA的范圍。多內(nèi)核處理器100可以包括多組Power PC 處理元件(PPE組)例如PPE組101或102,以及多組協(xié)同處理元件(SPE組)例如SPE組124或125。在組內(nèi)各單元之間可以共享硬件資源。但是,SPE組124和125以及PPE組101和102作為獨(dú)立元素表現(xiàn)為軟件。SPE組124和125中的每一個(gè)SPU 103、104、105和106都具有其自身的本地存儲(chǔ)區(qū)域112、113、114或115以及專用MFC107、108、109或110,其包括能夠保留和處理存儲(chǔ)器保護(hù)和訪問許可信息的相關(guān)MMU 116、117、118或119。多內(nèi)核處理器100包括一個(gè)或多個(gè)PPE組101或102。PPE組101和102分別包括64位Power PC 處理單元(在本文中也稱為主處理單元)(PI3U) 133、134、135和136及相關(guān)LI高速緩存137、138、139和140。多內(nèi)核處理器100系統(tǒng)在PPE組101和102中包括向量多媒體擴(kuò)展單元(未示出)。PPE組101和102還分別包含替換管理表(RMT) 141、142、143和144以及總線接口單元(BIU) 145和146。BIU 145和146將PPE組101或102連接至 EIB 132。BIU 147 和 148 將 RMT 120、121、122 和 123 連接至 EIB 132。例如,PPE組101和102是通用處理單元,它們能夠訪問系統(tǒng)管理資源譬如存儲(chǔ)器保護(hù)表。CBEA中定義的硬件資源被明確地映射至由PPE組101和102看到的真實(shí)地址空間。因此,任何PPE組101和102均可通過利用合適的有效地址值直接尋址任意的這些資源。PPE組101和102的主要功能是為系統(tǒng)中的SPE組124和125管理和分配任務(wù)。
多內(nèi)核處理器100 包括一個(gè)或多個(gè) SPU 103、104、105 或 106。SPU 103、104、105和106是比PPE組101和102更為簡單的計(jì)算單元,原因在于它們并不完成任何系統(tǒng)管理功能。SPU 103、104、105和106具有單指令多數(shù)據(jù)(SIMD)的能力并且通常根據(jù)由PPE組101和102建立的訪問性質(zhì)處理數(shù)據(jù)并初始化任何需要的數(shù)據(jù)傳輸,以便完成它們的分配任務(wù)。SPU 103、104、105和106允許需要更高計(jì)算單元密度的應(yīng)用并且可以有效利用提供的指令集。系統(tǒng)中由PPE組101或102管理的大量SPU 103、104、105和106允許成本有效地處理多種應(yīng)用。MFC 107、108、109和110是數(shù)據(jù)傳輸引擎。MFC 107、108、109和110提供用于在主存儲(chǔ)器和本地存儲(chǔ)器之間數(shù)據(jù)傳輸、保護(hù)和同步的主要方法。MFC 107、108、109和110的指令描述要完成的傳輸。MFC 107、108、109和110以盡可能快速和公平的方式完成這些數(shù)據(jù)傳輸操作,由此將多內(nèi)核處理器100的整體處理能力最大化。 傳輸數(shù)據(jù)的指令被稱為MFC直接存儲(chǔ)器訪問指令。這些指令被轉(zhuǎn)化為本地存儲(chǔ)區(qū)和主存儲(chǔ)區(qū)之間的直接存儲(chǔ)器訪問傳輸。MFC107、108、109和110中的每一個(gè)通常都可以同時(shí)支持多路直接存儲(chǔ)器訪問傳輸并且可以保留和處理多條MFC指令。為了實(shí)現(xiàn)這一點(diǎn),MFC 107、108、109和110保留和處理MFC指令的隊(duì)列。MFC 107、108、109和110中的每一個(gè)都提供一個(gè)隊(duì)列用于相關(guān)的SPU 103、104、105或106,被稱為MFC SPU指令隊(duì)列,還提供一個(gè)隊(duì)列用于其他的處理器和設(shè)備,被稱為MFC代理指令隊(duì)列。邏輯上,MFC隊(duì)列的集合總是與多內(nèi)核處理器100中的各SPU 103、104、105或106相關(guān)聯(lián),但是某些架構(gòu)的實(shí)施方式可以在多個(gè)SPU之間共享單個(gè)物理MFC。在這樣的情況下,所有的MFC設(shè)備在獨(dú)立用于每一個(gè)SPU 103、104、105或106時(shí)都表現(xiàn)為軟件。 每一條MFC直接存儲(chǔ)器訪問數(shù)據(jù)傳輸指令請(qǐng)求包括本地存儲(chǔ)器地址(LSA)和有效地址(EA)。本地存儲(chǔ)器地址只能直接尋址其相關(guān)SPU 103、104、105或106中的本地存儲(chǔ)區(qū)域。有效地址具有更加通用的應(yīng)用,原因在于有效地址能引用主存儲(chǔ)器,包括所有的SPU本地存儲(chǔ)區(qū),只要它們?cè)谡鎸?shí)地址空間中有別名即可。參照?qǐng)D2和圖3來進(jìn)一步討論地址管理和地址別名。MFC 107、108、109 和 110 給出了兩種類型的接口一種用于 SPU 103、104、105 和106,還有一種用于處理組中所有其他的處理器和設(shè)備。SPU 信道SPU 103、104、105 和 106 利用信道接口來控制MFC 107、108、109 和 110。在此情況下,在SPU 103、104、105和106上運(yùn)行的代碼只能訪問用于該SPU 103、104、105或106的MFC SPU指令隊(duì)列。存儲(chǔ)器映射寄存器其他處理器和設(shè)備通過利用存儲(chǔ)器映射寄存器來控制MFC
107、108、109和110。系統(tǒng)中的任何處理器和設(shè)備都可以控制MFC 107、108、109或110并且以SPU 103、104、105或106的名義發(fā)出MFC代理指令請(qǐng)求。MFC 107、108、109和110還支持帶寬保留和數(shù)據(jù)同步功能。IIC 111管理提交給PPE組101和102的中斷的優(yōu)先級(jí)。IIClll的主要用途是無需使用主系統(tǒng)中斷控制器就允許處理來自處理器中其他部件的中斷。IIC 111實(shí)際上是二級(jí)控制器。Iic 111是為了用于處理多內(nèi)核處理器100內(nèi)部或者多內(nèi)核處理器100的多處理器系統(tǒng)內(nèi)的所有中斷。系統(tǒng)中斷控制器通常是處理多內(nèi)核處理器100外部的所有中斷。
在多核系統(tǒng)中,軟件檢查IIC 111以確定是否有源于外部系統(tǒng)中斷控制器的中斷。IIC 111并不是為了取代主系統(tǒng)中斷控制器用于處理來自所有I/O設(shè)備的中斷。本領(lǐng)域普通技術(shù)人員應(yīng)該意識(shí)到,圖I中的硬件可以根據(jù)實(shí)施方式而改變。其他的內(nèi)部硬件或外圍設(shè)備例如閃存、等價(jià)的非易失性存儲(chǔ)器或光盤驅(qū)動(dòng)器等均可附加于或者代替圖I中所示的硬件使用。而且,示范性實(shí)施例中的處理可以應(yīng)用于除前述SMP系統(tǒng)以外的多處理器數(shù)據(jù)處理系統(tǒng)而并不背離本發(fā)明的實(shí)質(zhì)和保護(hù)范圍。圖2示出了 SPU本地存儲(chǔ)器(LS)的示范性地址圖200。在不使用存儲(chǔ)器轉(zhuǎn)換的小型存儲(chǔ)器系統(tǒng)(例如CBEA上的SPU 103、104、105和106)中,地址空間可以回轉(zhuǎn)超出一定的地址大小。這是因?yàn)槌鍪痉缎訪S上的該示范性地址范圍/大小的尋址會(huì)導(dǎo)致地址截?cái)喾祷仄淇捎玫姆秶?大小。盡管在本實(shí)施例中的截?cái)嗤耆蒘PU硬件(也就是負(fù)載存儲(chǔ)單元(未示出))進(jìn)行,但是在其他些實(shí)施例中也可以用由SPU執(zhí)行的程序通過以地址大小對(duì)輸入的別名地址取?;蛞詣e名因子索引取模來完成截?cái)唷5刂房臻g的這種回轉(zhuǎn)有助于地址別名,其中多個(gè)地址可以指向存儲(chǔ)器中的同一位置/單元。例如,示范性CBEA中的每一個(gè)SPU 103、104、105和106都具有以256k存儲(chǔ)容量確定出具體地址空間的本地存儲(chǔ)器(LS)。LS的示范性地址圖200示出了如何將LS的存儲(chǔ)器映射202中一定范圍的實(shí)際物理地址(例如物理地址0x0到入口 0x3FFFF)映射為地址別名(例如地址別名0x40000、0x80000等到0x7FFFF、OxCFFFF等)。由于SPU的本地存儲(chǔ)器(LS)大小被限定在40000,因此例如0x0的基地址可以每隔X40000就起別名(因此有0x40000、0x80000等)。本發(fā)明利用地址圖200中的地址回轉(zhuǎn)機(jī)制生成映射至LS中同一相對(duì)位置的全局唯一句柄(索引或偏移量)。關(guān)于索引或偏移量,機(jī)制的實(shí)施與先前圖2中所示的類似,只是使用索引和偏移量別名得到的是地址空間之間可移植的相對(duì)值。因此,在查詢表中可能存在映射至同一相對(duì)位置的多個(gè)唯一句柄,正如以下參照?qǐng)D3所介紹的那樣。圖3示出了根據(jù)示范性實(shí)施例的索引別名查詢表300。通過以預(yù)定的固定偏移量遞增地址來建立索引,如果索引遞增超出了一定的地址限制,還可以回轉(zhuǎn)LS 200的地址空間。只要恰當(dāng)選擇了固定大小的增量,地址空間的回轉(zhuǎn)就可以得到關(guān)于存儲(chǔ)器中同一對(duì)象的多個(gè)不同的索引。在這方面,固定的偏移量平均劃分到地址空間200的可用存儲(chǔ)器空間中并且各項(xiàng)被自然對(duì)準(zhǔn)。通過將LS中地址空間200的總存儲(chǔ)器大小除以固定的表項(xiàng)大小,即可確定能夠用于起別名的最小因子。而且,將該最小因子加至任何索引即可提供指向存儲(chǔ)器空間中相同位置的索引別名。以下的關(guān)系式可以被用于計(jì)算指定索引的索引別名索引別名=(存儲(chǔ)器大小/表項(xiàng)位數(shù))+索引圖3示出了根據(jù)示范性實(shí)施例的使用索引別名的示范性SPU本地存儲(chǔ)器(LS)模型300。類似于先前介紹的地址圖200,索引別名表302將LS地址空間200中的每一個(gè)自然索引(例如0x0、0xl、0x2、0x3、0x4)關(guān)聯(lián)至其相應(yīng)的索引別名(例如0x40000、0x40001、0x40002,0x40003,0x40004)。自然索引及其相應(yīng)的索引別名(多個(gè))對(duì)應(yīng)于LS地址空間200
中特定的存儲(chǔ)器位置。僅僅是為了進(jìn)行示范,假設(shè)LS地址空間200在CBEA環(huán)境中包含有16(0x10)字節(jié)元素的表格。將總存儲(chǔ)器(例如LS總存儲(chǔ)器為256k)除以固定的元素大小16得到最小的別名因子為16384(即0x4000)。如圖3所示,將該最小別名因子加至給定的索引得到指向相同表位置的索引別名。而且,應(yīng)該意識(shí)到可以使用更大的別名因子以支持存儲(chǔ)器大小的增加,只要使用計(jì)算出的最小別名因子的倍數(shù)即可。除了圖3的內(nèi)容中提供的示例以外,還給出了另一個(gè)示例來進(jìn)一步介紹索引別名的概念。僅僅是為了進(jìn)行示范,假設(shè)有一部分名為“data[25] ”的數(shù)據(jù)需要唯一的別名標(biāo)識(shí)符?!癲ata[25]”表示O基數(shù)據(jù)數(shù)組中的第26個(gè)元素。從尋址的觀點(diǎn)看,“data[25]”是指從數(shù)據(jù)的基址算起位于第25 (0x19)個(gè)元素的特定數(shù)據(jù)元素。如果數(shù)據(jù)以地址0x10000為基址并且每一個(gè)元素的大小均為0x100,那么第26個(gè)元素具有的基地址為0x10000+(0x19*0x100)也就等價(jià)于0x11900。由此,數(shù)組索引就轉(zhuǎn)換為LS存儲(chǔ)器中的地址。如果地址超過了可尋址的LS存儲(chǔ)器范圍,那么就會(huì)出現(xiàn)地址截?cái)?,并且地址將?huì)“回轉(zhuǎn)”以使地址可以指向與無別名地址或先前的別名地址相同的單元。通過應(yīng)用先前給出的關(guān)系式來繼續(xù)本示例,并且假設(shè)SPU的LS存儲(chǔ)器大小為0x40000,那么第一索引別名就是
(0x40000)/0x100)+0x19=0x419 (也就是說索引別名的標(biāo)識(shí)符為 1049)。索引別名的標(biāo)識(shí)符1049就是用于數(shù)據(jù)元素25的別名。為了驗(yàn)證上述索引別名,可以進(jìn)行指向LS內(nèi)的地址驗(yàn)證data[1049] =0x10000+ (0x419*0x100) =0x51900 ;其中i. data[1049]是 data[25]的別名;ii. 0x10000是數(shù)據(jù)的基地址;iii. 0x419 是第一個(gè)別名;iv. 0x100是每一個(gè)元素的大??;以及V. 0x51900是由于LS存儲(chǔ)器總的大小為0x40000而被截?cái)嗟膭e名地址由對(duì)大小為0x40000的LS存儲(chǔ)器取別名而導(dǎo)致將地址截?cái)啵@得到了0x11900 (也就是0x51900-0x40000=0x11900),這是與data[25]相關(guān)聯(lián)的相同地址。因此,索引別名能夠提供涉及相同表查詢位置的兩個(gè)或多個(gè)全局標(biāo)識(shí)符(ID)(也就是25和1049)。ID 25和ID 1049都可以被用于索引其相應(yīng)表中的第26個(gè)元素,同時(shí)保留全局唯一標(biāo)識(shí)符。根據(jù)另一個(gè)示范性實(shí)施例,除了多個(gè)標(biāo)識(shí)符可以被分配給跨越(a)相同組內(nèi)的多個(gè)內(nèi)核和/或(b)分散在不同組中的內(nèi)核均為全局唯一的存儲(chǔ)器位置并且仍然可以提供對(duì)圖3所示索引別名表302中的相對(duì)索引的概念以外,永久性(也被稱為靜態(tài))索引可以跨PPU和/或SPU索引集合與相對(duì)索引同時(shí)共存。根據(jù)該示范性實(shí)施例,CBEA系統(tǒng)中的PPU利用兩個(gè)不同的SPU內(nèi)核集合,每一個(gè)內(nèi)核集合都具有四個(gè)SPU。四個(gè)SPU中的每一個(gè)都只能意識(shí)到屬于相同集合的其他SPU。為了進(jìn)行示范,假設(shè)每一個(gè)SPU都在其內(nèi)核集合中記錄用于每一個(gè)SPU和PPU的16字節(jié)數(shù)據(jù)。作為比較,PPU記錄其使用的每一個(gè)SPU。根據(jù)上述示例,圖4示出了根據(jù)示范性實(shí)施例的各種用于PPU的示范性標(biāo)識(shí)符(ID)集合(ID集合402)和用于兩個(gè)SPU的示范性標(biāo)識(shí)符(ID)集合(ID集合404和406)。根據(jù)圖4,將ID集合列舉如下PPU ID=OSPU 集合 #1 ID= {0x1, 0x2, 0x3, 0x4}SPU 集合 #2 ID= {0x4001, 0x4002, 0x4003, 0x4004}PPU具有跨越所有SPU內(nèi)核集合用于每一個(gè)SPU的唯一且靜態(tài)的標(biāo)識(shí)符。而且,PPU和SPU將靜態(tài)標(biāo)識(shí)符用作查詢表中的相對(duì)索引。ID集合402,402和406中的每一個(gè)模塊408都示出了 PI3U和SPU內(nèi)核集合中的地址空間。此外,每一個(gè)地址空間408都具有與自身成員相關(guān)聯(lián)ID的對(duì)應(yīng)ID查詢表。ID查詢表以用表基址410標(biāo)記的預(yù)定位置為基礎(chǔ)。應(yīng)該意識(shí)到表基址410不必對(duì)于每一個(gè)地址空間都相同,只要表基址410被對(duì)準(zhǔn)在與表元大小自然對(duì)齊的地址處即可。每一個(gè)內(nèi)核集合中的成員都通過作為從表基址410的索引的成員ID來訪問用于其相關(guān)聯(lián)成員的表數(shù)據(jù)。如前所述,PPU記錄所有ID,同時(shí)每一個(gè)SPU只需在其自身集合內(nèi)記錄PPU和SPU。而且,SPU也使用永久PPU標(biāo)識(shí)符O用于索引。這種方法除了由主機(jī)成員分配的集合專用相對(duì)ID以外還提供了支持多個(gè)永久ID的靈活性。正如本領(lǐng)域技術(shù)人員能夠理解的那樣,本發(fā)明可以實(shí)施為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的應(yīng)用可以采用完全為硬件的實(shí)施例、完全為軟件的實(shí)施例(包括固件、常駐軟件、微型代碼等)或者組合軟件和硬件應(yīng)用的實(shí)施例的形式,它們基本上在本文中全都可以被稱為“電路”、“模塊”或“系統(tǒng)”。而且,本發(fā)明的應(yīng)用可以采用在其上實(shí)施有計(jì)算機(jī)可用程序代碼的一種或多種計(jì)算機(jī)可讀取介質(zhì)內(nèi)實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
可以使用一種或多種計(jì)算機(jī)可讀取介質(zhì)的任意組合。計(jì)算機(jī)可讀取介質(zhì)可以是計(jì)算機(jī)可讀取信號(hào)介質(zhì)或者計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)例如可以是但不局限于例如電、磁、光學(xué)、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置、設(shè)備,或者是上述類型的任意適用組合。計(jì)算機(jī)可讀取介質(zhì)的更多具體示例(非窮舉性列表)可以包括以下內(nèi)容具有一條或多條線路的電連接,便攜式計(jì)算機(jī)磁盤,硬盤,隨機(jī)存取存儲(chǔ)器(RAM),只讀存儲(chǔ)器(R0M),可擦除可編程只讀存儲(chǔ)器(EPR0M或閃存存儲(chǔ)器),光纖,便攜光盤只讀存儲(chǔ)器(CD-ROM),光存儲(chǔ)設(shè)備,磁存儲(chǔ)設(shè)備或上述內(nèi)容的任意適用組合。在本文獻(xiàn)的語境中,計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)可以是能夠包含或者存儲(chǔ)程序以供使用或者與指令執(zhí)行系統(tǒng)、裝置或設(shè)備結(jié)合使用的任何實(shí)體介質(zhì)。計(jì)算機(jī)可讀取信號(hào)介質(zhì)可以包括例如在基帶中或者作為載波的一部分與其中實(shí)施的計(jì)算機(jī)可讀取程序代碼一起傳播的數(shù)據(jù)信號(hào)。這樣的傳播信號(hào)可以采用多種形式中的任何一種,包括但不限于電磁信號(hào)、光信號(hào)或其任意合適的組合。計(jì)算機(jī)可讀取信號(hào)介質(zhì)可以是并非計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)并且能夠通信、傳播或者輸送程序以供使用或者與指令執(zhí)行系統(tǒng)、裝置或設(shè)備結(jié)合使用的任意計(jì)算機(jī)可讀取介質(zhì)。在計(jì)算機(jī)可讀取介質(zhì)上實(shí)施的計(jì)算機(jī)代碼可以利用任意合適的介質(zhì)傳輸,包括但不限于無線、有線線路、光纖光纜、射頻(RF)等或其任意合適的組合。用于實(shí)現(xiàn)本發(fā)明應(yīng)用中操作的計(jì)算機(jī)程序代碼可以用一種或多種編程語言的任意組合編寫,包括面向?qū)ο蟮木幊陶Z言例如Java 語言、Smalltalk 語言、C++等以及傳統(tǒng)的過程編程語言例如“C”編程語言或類似的編程語言。(Java是Oracle和/或其附屬公司的商標(biāo)。Smalltalk是Smalltak. org的商標(biāo)。)程序代碼可以完全在用戶的計(jì)算機(jī)上運(yùn)行,部分在用戶的計(jì)算機(jī)上運(yùn)行,作為單獨(dú)的軟件包運(yùn)行,部分在用戶的計(jì)算機(jī)上運(yùn)行并且部分在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行,或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上運(yùn)行。在后兩種情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任何類型的網(wǎng)絡(luò)連接至用戶的計(jì)算機(jī),包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),或者連接可以通往外部計(jì)算機(jī)(例如使用互聯(lián)網(wǎng)服務(wù)供應(yīng)商通過互聯(lián)網(wǎng)實(shí)現(xiàn))。以下參照方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方塊圖來介紹本發(fā)明的實(shí)施例。應(yīng)該理解流程圖和/或方塊圖中的每一個(gè)模塊以及流程圖和/或方塊圖中的模塊組合都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以被提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或用于生產(chǎn)機(jī)械的其他可編程數(shù)據(jù)處理裝置的處理器以使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令建立起用于實(shí)現(xiàn)流程圖和/或方塊圖中的一個(gè)或多個(gè)模塊中列舉的功能/動(dòng)作的方法。這些計(jì)算機(jī)程序指令也可以被存儲(chǔ)在能夠引導(dǎo)計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或以特定方式工作的其他設(shè)備的計(jì)算機(jī)可讀取介質(zhì)內(nèi),以使存儲(chǔ)在計(jì)算機(jī)可讀取介質(zhì)內(nèi)的指令生產(chǎn)出的制品包括有實(shí)現(xiàn)了流程圖和/或方塊圖中的一個(gè)或多個(gè)模塊中列舉的功能/動(dòng)作的指令。計(jì)算機(jī)程序指令也可以被載入到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上以促使在計(jì)算機(jī)、其他可編程裝置或其他設(shè)備上執(zhí)行一系列操作步驟,從而生成計(jì)算機(jī)實(shí)現(xiàn)的過程,以使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或方塊圖中的一個(gè)或多個(gè)模塊中列舉的功能/動(dòng)作的過程?,F(xiàn)參照?qǐng)D5,該附圖提供了根據(jù)一個(gè)實(shí)施例的概述由存儲(chǔ)器流控制器(MFC) 107、
108、109或110(圖I)用于在多內(nèi)核環(huán)境中高效分配引用的全局唯一標(biāo)識(shí)符的示例性操作的流程圖。在操作開始時(shí),PPUl33、134、135或136通過PPU上運(yùn)行的應(yīng)用程序確定LS 112、113、114或115中地址空間200 (圖2)的總存儲(chǔ)器大小(塊502)。PPU133、134、135或136通過PI3U上運(yùn)行的應(yīng)用程序分別確定LS112、113、114或115總可用存儲(chǔ)器內(nèi)地址查詢表中表元的固定大小(塊504)。盡管大小固定,但是表元中包含的數(shù)據(jù)可以是任意大小并且包含與另一個(gè)SPU的標(biāo)識(shí)符(ID)有關(guān)的數(shù)據(jù)。利用PPU 133、134、135或136通過計(jì)算從塊502獲得的總可用存儲(chǔ)器與從塊504獲得的所述表元的固定大小的商來確定別名因子(塊506)。在決策塊508,PPU 133、134、135或136確定是否需要將多于一個(gè)不同的標(biāo)識(shí)符(ID)用于同一個(gè)處理單元(PU ;例如PI3U或SPU)。如果PPU133、134、135或136在決策塊508確定不需要?jiǎng)e名,那么過程就繼續(xù)前往塊512,在那里PPU 133、134、135或136將非別名索引通知其對(duì)應(yīng)的SPU 103、104、105或106。但是,如果PPU 133、134、135或136確定需要將多于一個(gè)不同的標(biāo)識(shí)符(ID)用于同一個(gè)處理單元(PU;例如PTO或SPU),那么方法就繼續(xù)前往塊510。根據(jù)塊510,PPU 133、134、135或136將自然索引上加上在塊506確定的別名因子以得到存儲(chǔ)器中的地址。這樣在自然索引上累加別名因子就生成了 PPU 133、134、135或136通知(塊512)其對(duì)應(yīng)SPU 103、104、105或106的索引別名,以用于將別名索引(或者 如果不需要?jiǎng)e名的話就是無別名索引)轉(zhuǎn)換為地址,正如塊514中所示。操作在塊514之后終止。圖5中的流程圖根據(jù)本發(fā)明的一個(gè)實(shí)施例示出了系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的架構(gòu)、功能和可實(shí)施的操作。在這方面,流程圖或方塊圖中的每一個(gè)塊均可表示程序塊、程序段或代碼部分,其中包括用于實(shí)現(xiàn)一種或多種特定邏輯功能的一條或多條可執(zhí)行指令。還應(yīng)該注意到在某些可選的實(shí)施方式中,塊中注明的功能可以脫離圖5中標(biāo)明的順序進(jìn)行。例如,相繼示出的兩個(gè)塊實(shí)際上可以基本上同時(shí)執(zhí)行,或者這兩個(gè)塊有時(shí)可以用相反的順序執(zhí)行,這取決于所涉及到的功能。還應(yīng)該注意到方塊圖和/或流程圖中的每一個(gè)塊以及方塊圖和/或流程圖中的塊組合均可通過專用的基于硬件的系統(tǒng)實(shí)現(xiàn)以執(zhí)行特定功能或動(dòng)作,或者通過專用硬件和計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。如上所述,應(yīng)該意識(shí)到示范性實(shí)施例可以采用完全為硬件的實(shí)施例、完全為軟件的實(shí)施例或者同時(shí)包含軟件和硬件元素的實(shí)施例的形式。本發(fā)明可以用軟件或程序代碼實(shí)施,其中包括但不限于固件、常駐軟件、微型代碼等。適用于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)可以包括通過系統(tǒng)總線直接或間接耦合至存儲(chǔ)器元件的至少一個(gè)處理器。存儲(chǔ)器元件可以包括在實(shí)際執(zhí)行程序代碼期間使用的本地存儲(chǔ)器、大容量存儲(chǔ)器以及為了減少執(zhí)行期間必須從大容量存儲(chǔ)器中檢索的時(shí)間碼次數(shù)而提供至少部分程序代碼臨時(shí)存儲(chǔ)的高速緩存存儲(chǔ)器。輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、點(diǎn)擊設(shè)備等)可以直接或通過中介I/O控制器耦合至系統(tǒng)。網(wǎng)絡(luò)適配器也可以被耦合至系統(tǒng)以使數(shù)據(jù)處理系統(tǒng)能夠通過中介的專用網(wǎng)絡(luò)或公用網(wǎng)絡(luò)被耦合至其他的數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器和以太網(wǎng)卡指示當(dāng)前可用的幾種網(wǎng)絡(luò)適配器類型。本發(fā)明的說明書是為了解釋和說明而提供,而并不是為了窮舉或者將本發(fā)明限制為所公開的形式。多種修改和變形對(duì)于本領(lǐng)域普通技術(shù)人員是顯而易見的。選擇和介紹實(shí)施例是為了清楚地解釋本發(fā)明的原理和實(shí)際應(yīng)用,并且使本領(lǐng)域普通技術(shù)人員能夠理解本 發(fā)明以得到具有各種修改的適用于特定預(yù)期用途的不同實(shí)施例。
權(quán)利要求
1.一種在多內(nèi)核環(huán)境中用于分配全局唯一內(nèi)核標(biāo)識(shí)符的方法,所述方法包括 利用主處理單元PPU確定對(duì)應(yīng)于自然索引的索引別名,其中對(duì)應(yīng)于所述PPU的協(xié)同處理單元SPU將所述自然索引轉(zhuǎn)換為內(nèi)核存儲(chǔ)器中的第一地址,并且SPU將所述索引別名轉(zhuǎn)換為所述內(nèi)核存儲(chǔ)器中的第二地址,所述索引別名的所述確定包括 利用所述PPU確定處理器內(nèi)核的本地存儲(chǔ)器LS總的可用存儲(chǔ)器大小,其中所述LS存儲(chǔ)有地址查詢表; 利用所述PPU確定所述LS總的可用存儲(chǔ)器內(nèi)所述地址查詢表中表元的固定大??; 利用所述PPU確定別名因子,其中所述別名因子是所述總的可用存儲(chǔ)器和所述表元的所述固定大小的商; 利用所述PPU在所述自然索引上累加所述別名因子;· 利用所述PPU將所述索引別名通知所述SPU ;以及 利用所述PPU將所述索引別名轉(zhuǎn)換為所述第二地址,其中所述第二地址和所述第一地址指向所述內(nèi)核存儲(chǔ)器中相同的物理位置。
2.如權(quán)利要求I所述的方法,進(jìn)一步包括響應(yīng)于所述第二地址超出物理存儲(chǔ)器大小,將無法映射地址空間的所述第二地址截?cái)喑上到y(tǒng)內(nèi)可使用的地址空間范圍。
3.如權(quán)利要求I或權(quán)利要求2所述的方法,其中所述索引別名是相對(duì)索引值并且能夠在不同的地址空間之間移植。
4.如以上權(quán)利要求中的任意一項(xiàng)所述的方法,其中所述多內(nèi)核環(huán)境是Cell寬帶引擎架構(gòu)(CBEA)。
5.如以上權(quán)利要求中的任意一項(xiàng)所述的方法,進(jìn)一步包括在專門用于特定內(nèi)核集合的相對(duì)索引映射方案中利用所述PI3U跨多個(gè)內(nèi)核集合分配永久性的全局唯一內(nèi)核資源標(biāo)識(shí)符。
6.如以上權(quán)利要求中的任意一項(xiàng)所述的方法,進(jìn)一步包括響應(yīng)于所述總可用存儲(chǔ)器大小的增加,由所述PPU將所述別名因子以所述別名因子的倍數(shù)增加。
7.一種計(jì)算機(jī)程序產(chǎn)品,包括其中存有計(jì)算機(jī)可讀程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中當(dāng)在計(jì)算設(shè)備上執(zhí)行計(jì)算機(jī)可讀取程序時(shí)促使計(jì)算設(shè)備 確定對(duì)應(yīng)于自然索引的索引別名,其中所述自然索引轉(zhuǎn)換為內(nèi)核存儲(chǔ)器中的第一地址,并且所述索引別名轉(zhuǎn)換為所述內(nèi)核存儲(chǔ)器中的第二地址,所述索引別名的所述確定促使計(jì)算設(shè)備 確定處理器內(nèi)核中本地存儲(chǔ)器LS總的可用存儲(chǔ)器大小,其中所述LS存儲(chǔ)有地址查詢表; 確定所述LS總的可用存儲(chǔ)器內(nèi)的所述地址查詢表中表元的固定大??; 確定別名因子,其中所述別名因子是所述總的可用存儲(chǔ)器和所述表元的所述固定大小的商;以及 在所述自然索引上累加所述別名因子;并且 將所述索引別名轉(zhuǎn)換為所述第二地址,其中所述第二地址和所述第一地址指向所述內(nèi)核存儲(chǔ)器中相同的物理位置。
8.如權(quán)利要求7所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀取程序進(jìn)一步促使計(jì)算設(shè)備響應(yīng)于所述第二地址超出物理存儲(chǔ)器大小,將無法映射地址空間的所述第二地址截?cái)喑上到y(tǒng)內(nèi)可使用的地址空間范圍。
9.如權(quán)利要求7所述的計(jì)算機(jī)程序產(chǎn)品,其中所述索引別名是相對(duì)索引值并且能夠在不同的地址空間之間移植。
10.如權(quán)利要求7所述的計(jì)算機(jī)程序產(chǎn)品,其中所述多內(nèi)核環(huán)境是Cell寬帶引擎架構(gòu)CBEA。
11.如權(quán)利要求7所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀取程序進(jìn)一步促使計(jì)算設(shè)備在專門用于特定內(nèi)核集合的相對(duì)索引映射方案中跨多個(gè)內(nèi)核集合分配永久性的全局唯一內(nèi)核資源標(biāo)識(shí)符。
12.如權(quán)利要求7所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀取程序進(jìn)一步促使計(jì)算設(shè)備響應(yīng)于所述總的可用存儲(chǔ)器大小的增加將所述別名因子增加所述別名因子的倍數(shù)。
13.一種裝置,包括 處理器; 耦合至所述處理器的存儲(chǔ)器; 用于確定對(duì)應(yīng)于自然索引的索引別名的裝置,其中所述自然索引轉(zhuǎn)換為內(nèi)核存儲(chǔ)器中的第一地址,并且所述索引別名轉(zhuǎn)換為所述內(nèi)核存儲(chǔ)器中的第二地址 用于確定處理器內(nèi)核中本地存儲(chǔ)器LS總的可用存儲(chǔ)器大小的裝置,其中所述LS存儲(chǔ)有地址查詢表; 用于確定所述LS的總的可用存儲(chǔ)器內(nèi)的所述地址查詢表中表元的固定大小的裝置;用于確定別名因子的裝置,其中所述別名因子是所述總的可用存儲(chǔ)器和所述表元的所述固定大小的商; 用于在所述自然索引上累加所述別名因子的裝置;以及 用于將所述索引別名轉(zhuǎn)換為所述第二地址的裝置,其中所述第二地址和所述第一地址指向所述內(nèi)核存儲(chǔ)器中相同的物理位置。
14.如權(quán)利要求13所述的裝置,進(jìn)一步包括響應(yīng)于所述第二地址超出物理存儲(chǔ)器大小,將無法映射地址空間的所述第二地址截?cái)喑上到y(tǒng)內(nèi)可使用的地址空間范圍的裝置。
15.如權(quán)利要求13或權(quán)利要求14所述的裝置,其中所述索引別名是相對(duì)索引值并且能夠在不同的地址空間之間移植。
16.如權(quán)利要求13至15中的任意一項(xiàng)所述的裝置,其中所述多內(nèi)核環(huán)境是Cell寬帶引擎架構(gòu)CBEA。
17.如權(quán)利要求13至16中的任意一項(xiàng)所述的裝置,進(jìn)一步包括用于在專門針對(duì)特定內(nèi)核集合的相對(duì)索弓I映射方案中跨多個(gè)內(nèi)核集合分配永久性的全局唯一內(nèi)核資源標(biāo)識(shí)符的裝置。
18.如權(quán)利要求13至17中的任意一項(xiàng)所述的裝置,進(jìn)一步包括響應(yīng)于所述總的可用存儲(chǔ)器大小的增加用于將所述別名因子以所述別名因子的倍數(shù)增加的裝置。
19.一種計(jì)算機(jī)程序,包括適合用于在計(jì)算機(jī)上運(yùn)行所述程序時(shí)執(zhí)行權(quán)利要求I至6中所有步驟的程序編碼裝置。
全文摘要
提供了一種機(jī)制,在多內(nèi)核環(huán)境中用于分配全局唯一內(nèi)核標(biāo)識(shí)符。Power處理單元(PPU)確定與用于在存儲(chǔ)器本地存儲(chǔ)器(LS)中定位的自然索引相對(duì)應(yīng)的索引別名。協(xié)同處理單元(SPU)對(duì)應(yīng)于PPU將自然索引轉(zhuǎn)換為內(nèi)核存儲(chǔ)器中的第一地址,而且將索引別名轉(zhuǎn)換為內(nèi)核存儲(chǔ)器中的第二地址。響應(yīng)于第二地址超出物理存儲(chǔ)器大小,SPU中的負(fù)載存儲(chǔ)單元將無法映射地址空間的所述第二地址截?cái)喑上到y(tǒng)內(nèi)可用的地址空間范圍。第二地址和第一地址指向內(nèi)核存儲(chǔ)器中相同的物理位置。另外,采用索引別名的別名化方法還保持了將持久性索引與相對(duì)索引相結(jié)合并且不會(huì)在相對(duì)索引映射中形成孔洞的能力。
文檔編號(hào)G06F12/06GK102687126SQ201080059922
公開日2012年9月19日 申請(qǐng)日期2010年12月13日 優(yōu)先權(quán)日2009年12月30日
發(fā)明者B·霍頓, G·H·貝洛斯, J·N·戴爾, J·馬德如加 申請(qǐng)人:國際商業(yè)機(jī)器公司