專利名稱:用于在數(shù)據(jù)處理系統(tǒng)中訪問(wèn)數(shù)據(jù)的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及數(shù)據(jù)處理,并且特別涉及通過(guò)其中的數(shù)據(jù)處理系統(tǒng)和處理器存儲(chǔ)和/或使用的數(shù)據(jù)的加密和/或壓縮。
背景技術(shù):
保護(hù)由數(shù)據(jù)處理系統(tǒng)的處理器存儲(chǔ)或使用的安全數(shù)據(jù)在許多數(shù)據(jù)處理應(yīng)用中是至關(guān)重要的。通常將加密算法施加于安全數(shù)據(jù),以使其在沒(méi)有解密算法應(yīng)用的情況下呈現(xiàn)為不可理解的,并且通常以加密格式將安全數(shù)據(jù)存儲(chǔ)在大容量存儲(chǔ)器和其它非易失性存儲(chǔ)器介質(zhì)中,在安全數(shù)據(jù)可以被數(shù)據(jù)處理系統(tǒng)中的處理器讀出和/或操控之前需要執(zhí)行解密。然而,在許多實(shí)例中,加密的安全數(shù)據(jù)的解密導(dǎo)致安全數(shù)據(jù)以未加密形式存儲(chǔ)在數(shù)據(jù)處理系統(tǒng)中的各種類型的易失性存儲(chǔ)器中,例如,在主存儲(chǔ)器內(nèi),或在用于加速訪問(wèn)頻繁使用的數(shù)據(jù)的各種級(jí)別的高速緩存(cache)存儲(chǔ)器內(nèi)。然而,在任何時(shí)間將數(shù)據(jù)以不安全形式存儲(chǔ)在數(shù)據(jù)可能經(jīng)受未授權(quán)訪問(wèn)的數(shù)據(jù)處理系統(tǒng)的任何存儲(chǔ)器中,都有可能損害數(shù)據(jù)的機(jī)密性。然而,加密和解密數(shù)據(jù)通常需要一定量的處理開(kāi)銷,并且因而甚至在正在處理安全數(shù)據(jù)的應(yīng)用中,也期望在數(shù)據(jù)處理系統(tǒng)中保持其它非安全數(shù)據(jù),這樣使得該其它數(shù)據(jù)的處理不經(jīng)受與加密和解密相關(guān)的相同處理開(kāi)銷。此外,由于就時(shí)鐘速度的增加而言,半導(dǎo)體技術(shù)繼續(xù)愈來(lái)愈接近實(shí)用極限,所以架構(gòu)師日益專注于處理器架構(gòu)的并行度(parallelism)以獲得性能改進(jìn)。在芯片級(jí),通常將多個(gè)處理核布置在同一芯片上,其以與獨(dú)立處理器芯片、或在某種程度上與完全獨(dú)立的計(jì)算機(jī)非常相同的方式運(yùn)作。此外,即使在核內(nèi),也通過(guò)專門處理某些類型的操作的多個(gè)執(zhí)行單元的使用而采用并行度。在許多實(shí)例中也采用流水線技術(shù)(pipelining),使得可以采取多個(gè)時(shí)鐘周期來(lái)執(zhí)行的某些操作被拆分為階段(stage),使得其它操作能夠在較早的操作完成之前就開(kāi)始。也采用多線程(multithreading)以使多個(gè)指令流能夠被并行地處理,使得在任何給定的時(shí)鐘周期中能夠執(zhí)行更多整體工作。由于這些增加的并行度,在數(shù)據(jù)處理系統(tǒng)中維護(hù)安全數(shù)據(jù)的挑戰(zhàn)比在以前的非并行數(shù)據(jù)處理系統(tǒng)中更顯著。例如,在僅包括具有單線程的單處理器的數(shù)據(jù)處理系統(tǒng)中,可以將安全數(shù)據(jù)以加密形式存儲(chǔ)在處理器外部,并且一旦數(shù)據(jù)被加載到處理器中就在必要時(shí)由該單線程解密。然而,當(dāng)在同一處理器芯片上布置附加線程甚至附加處理核時(shí),可能需要將對(duì)安全數(shù)據(jù)的訪問(wèn)限制到僅芯片上的某些線程或處理核。因而,例如,如果多個(gè)線程或處理核共享公共高速緩存存儲(chǔ)器,則在該高速緩存存儲(chǔ)器中以未加密形式存儲(chǔ)任何安全數(shù)據(jù)可能存在未授權(quán)方可以經(jīng)由除被授權(quán)訪問(wèn)該安全數(shù)據(jù)的線程或處理核之外的線程或處理核而獲得對(duì)該數(shù)據(jù)的訪問(wèn)的風(fēng)險(xiǎn)。此外,由于現(xiàn)代片上系統(tǒng)(SOC)處理器設(shè)計(jì)發(fā)展為在處理器芯片上有上百個(gè)處理核,所以針對(duì)來(lái)自甚至同一處理器芯片上的其它處理保護(hù)未加密數(shù)據(jù)也變得日益重要。傳統(tǒng)上,已經(jīng)通過(guò)處理器上執(zhí)行的軟件處理加密和解密。然而,因?yàn)榧用芎徒饷苁翘幚砥髅芗腿蝿?wù),所以已經(jīng)開(kāi)發(fā)了專用的基于硬件的加密引擎,從而以比通??梢杂绍浖?shí)現(xiàn)的方式更快和更有效的方式執(zhí)行安全數(shù)據(jù)的加密/解密,由此減少與這種操作相關(guān)的開(kāi)銷。傳統(tǒng)加密引擎通常被布置在處理核外部,例如在處理核和存儲(chǔ)控制器之間,或者連接到任何處理核外部的存儲(chǔ)器總線。此外,為了幫助確定哪些數(shù)據(jù)被加密和未被加密,可以將安全數(shù)據(jù)存儲(chǔ)在特定存儲(chǔ)地址區(qū)域中,使得可以使用過(guò)濾來(lái)控制加密引擎僅加密/解密存儲(chǔ)在所識(shí)別的存儲(chǔ)地址范圍內(nèi)的數(shù)據(jù)。然而,這種架構(gòu)可以導(dǎo)致高速緩存(cache)中存在未加密數(shù)據(jù)并且該未加密數(shù)據(jù)可以被芯片中的其它線程和/或處理核訪問(wèn)。此外,通常需要位于處理器芯片外部的存儲(chǔ)控制器,以建立和管理其中存儲(chǔ)安全數(shù)據(jù)的存儲(chǔ)地址的范圍,從而可以對(duì)于涉及安全數(shù)據(jù)的存儲(chǔ)事務(wù)選擇性地激活加密,這會(huì)導(dǎo)致安全數(shù)據(jù)的低效吞吐量。關(guān)于數(shù)據(jù)壓縮也存在類似的挑戰(zhàn)。可以將數(shù)據(jù)壓縮用于減少存儲(chǔ)數(shù)據(jù)所需要的存儲(chǔ)量;然而,壓縮的數(shù)據(jù)必須在由處理核或線程使用之前被解壓縮。數(shù)據(jù)的壓縮和解壓縮涉及處理開(kāi)銷,并且因而在軟件中實(shí)施這種功能通常伴隨性能損失。此外,也已經(jīng)開(kāi)發(fā)了專用壓縮引擎來(lái)減少與壓縮和解壓縮數(shù)據(jù)相關(guān)的處理開(kāi)銷;然而,這種引擎通常被布置在處理核的外部(例如,在存儲(chǔ)控制器內(nèi)),并且因此可能需要將壓縮數(shù)據(jù)以解壓縮格式存儲(chǔ)在不同級(jí)別的高速緩存存儲(chǔ)器中,其限制了在這種高速緩存存儲(chǔ)器中用于存儲(chǔ)其它數(shù)據(jù)的空間量,因而降低了存儲(chǔ)系統(tǒng)的性能。另外,由于具有加密數(shù)據(jù),可能需要存儲(chǔ)控制器建立和管理其中存儲(chǔ)壓縮數(shù)據(jù)的存儲(chǔ)地址范圍,使得可以對(duì)于涉及壓縮數(shù)據(jù)的存儲(chǔ)事務(wù)選擇性地激活壓縮引擎,從而導(dǎo)致低效的壓縮數(shù)據(jù)吞吐量。因此,對(duì)于最小化與訪問(wèn)和管理數(shù)據(jù)處理系統(tǒng)中的加密和/或壓縮數(shù)據(jù)相關(guān)的性能開(kāi)銷、以及提供對(duì)多線程和/或多核處理器芯片以及包含其的數(shù)據(jù)處理系統(tǒng)內(nèi)的加密數(shù)據(jù)的進(jìn)一步保護(hù)的方式,在本領(lǐng)域中繼續(xù)存在強(qiáng)烈的需要。
發(fā)明內(nèi)容
本發(fā)明通過(guò)提供一種方法和電路布置來(lái)解決與在先技術(shù)相關(guān)的這些和其它問(wèn)題,所述方法和電路布置基于存儲(chǔ)在諸如有效至真實(shí)轉(zhuǎn)換(EffectiveTo Real Translation,ERAT)或旁路轉(zhuǎn)換緩沖(Translation Lookaside Buffer, TLB)的存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的關(guān)于加密和/或壓縮的頁(yè)面屬性,選擇性地將數(shù)據(jù)流化(stream)到加密或壓縮引擎。例如,可以關(guān)于對(duì)于存儲(chǔ)頁(yè)面中的數(shù)據(jù)的存儲(chǔ)器訪問(wèn)請(qǐng)求,而訪問(wèn)存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),使得可以與處理存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)地、將與數(shù)據(jù)結(jié)構(gòu)中的存儲(chǔ)頁(yè)面相關(guān)的屬性用于控制數(shù)據(jù)是否被加密/解密和/或壓縮/解壓縮。因此,符合本發(fā)明的一個(gè)方面,響應(yīng)于由處理核中的線程發(fā)起的存儲(chǔ)器訪問(wèn)請(qǐng)求而訪問(wèn)存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),以對(duì)于該存儲(chǔ)器訪問(wèn)請(qǐng)求執(zhí)行存儲(chǔ)地址轉(zhuǎn)換。此外,訪問(wèn)該存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的關(guān)于加密的頁(yè)面屬性,以確定與該存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的該存儲(chǔ)頁(yè)面是否被加密。接著基于與該存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的該存儲(chǔ)頁(yè)面是否被確定為被加密而選擇性地將該存儲(chǔ)頁(yè)面中的安全數(shù)據(jù)流化通過(guò)加密引擎,以對(duì)該安全數(shù)據(jù)執(zhí)行加密操作。符合本發(fā)明的另一個(gè)方面,響應(yīng)于由處理核中的線程發(fā)起的存儲(chǔ)器訪問(wèn)請(qǐng)求,訪問(wèn)存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),以對(duì)于該存儲(chǔ)器訪問(wèn)請(qǐng)求執(zhí)行存儲(chǔ)地址轉(zhuǎn)換。此外,訪問(wèn)該存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的關(guān)于壓縮的頁(yè)面屬性,以確定與該存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的該存儲(chǔ)頁(yè)面是否被壓縮。接著基于與該存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的該存儲(chǔ)頁(yè)面是否被確定為被壓縮而選擇性地將該存儲(chǔ)頁(yè)面中的數(shù)據(jù)流化通過(guò)壓縮引擎,以對(duì)該數(shù)據(jù)執(zhí)行壓縮操作??坍嫳景l(fā)明的特征的這些以及其它優(yōu)勢(shì)和特性在所附的權(quán)利要求書中闡述,并權(quán)利要求書形成本發(fā)明的另一部分。然而,為了更好地理解本發(fā)明以及通過(guò)其的使用而實(shí)現(xiàn)的優(yōu)點(diǎn)和目標(biāo),應(yīng)參考其中描述了本發(fā)明的示例性實(shí)施例的附圖和附隨描述。
圖1是包括在符合本發(fā)明實(shí)施例的數(shù)據(jù)處理中有用的示例性計(jì)算機(jī)的示例性自動(dòng)計(jì)算機(jī)器的框圖。圖2是在圖1的計(jì)算機(jī)中實(shí)施的示例性NOC的框圖。圖3是更詳細(xì)地示出來(lái)自圖2的NOC的節(jié)點(diǎn)的示例性實(shí)施方式的框圖。圖4是示出來(lái)自圖2的NOC的IP塊的示例性實(shí)施方式的框圖。圖5是包含符合本發(fā)明的基于存儲(chǔ)地址轉(zhuǎn)換的數(shù)據(jù)加密/壓縮的示例性數(shù)據(jù)處理系統(tǒng)的框圖。圖6是用于圖5中引用的ERAT的示例性ERAT條目格式的框圖。圖7是示出使用符合本發(fā)明的支持基于存儲(chǔ)地址轉(zhuǎn)換的加密/壓縮的數(shù)據(jù)處理系統(tǒng)的示例性存儲(chǔ)器訪問(wèn)的框圖。圖8是示出用于訪問(wèn)圖7的數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)的操作的示例性序列的流程圖。圖9是示出用于執(zhí)行圖7的數(shù)據(jù)處理系統(tǒng)中的讀出總線事務(wù)的操作的示例性序列的流程圖。圖10是示出用于執(zhí)行圖7的數(shù)據(jù)處理系統(tǒng)中的寫入總線事務(wù)的操作的示例性序列的流程圖。圖11是示出用于執(zhí)行圖7的數(shù)據(jù)處理系統(tǒng)中的讀出總線事務(wù)連同級(jí)別選擇性加密/壓縮的操作的交替序列的流程圖。圖12是示出用于執(zhí)行圖7的數(shù)據(jù)處理系統(tǒng)中的寫入總線事務(wù)連同級(jí)別選擇性加密/壓縮的操作的交替順序的流程圖。圖13是示出使用包含符合本發(fā)明的集成加密引擎的另一個(gè)數(shù)據(jù)處理系統(tǒng)的示例性存儲(chǔ)器訪問(wèn)的框圖。圖14是示出包含符合本發(fā)明的集成加密引擎、并且還包含用于在存儲(chǔ)安全數(shù)據(jù)中使用的獨(dú)立安全高速緩存的另一個(gè)數(shù)據(jù)處理系統(tǒng)的框圖。
具體實(shí)施例方式符合本發(fā)明的實(shí)施例基于存儲(chǔ)在諸如有效至真實(shí)轉(zhuǎn)換(ERAT)或旁路轉(zhuǎn)換緩沖(TLB)的存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的關(guān)于加密和/或壓縮的頁(yè)面屬性,選擇性地將數(shù)據(jù)流化到加密或壓縮引擎。例如可以關(guān)于對(duì)于存儲(chǔ)頁(yè)面中的數(shù)據(jù)的存儲(chǔ)器訪問(wèn)請(qǐng)求一起訪問(wèn)存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),使得可以與處理存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)地,使用數(shù)據(jù)結(jié)構(gòu)中的與存儲(chǔ)頁(yè)面相關(guān)的屬性來(lái)控制是否加密/解密和/或壓縮/解壓縮數(shù)據(jù)。
此外,在符合本發(fā)明的某些實(shí)施例中,可以在多核處理器的處理核內(nèi)采用集成加密引擎,以關(guān)于訪問(wèn)安全數(shù)據(jù)的存儲(chǔ)器訪問(wèn)請(qǐng)求而執(zhí)行加密操作,即,安全數(shù)據(jù)的加密和解密。當(dāng)與諸如有效至真實(shí)轉(zhuǎn)換(ERAT)或旁路轉(zhuǎn)換緩沖(TLB)的存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)(其已被增加有關(guān)于加密的頁(yè)面屬性以指示數(shù)據(jù)結(jié)構(gòu)中識(shí)別的存儲(chǔ)頁(yè)面是否被加密)相結(jié)合時(shí),可以基于用于與存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的存儲(chǔ)頁(yè)面的關(guān)于加密的頁(yè)面屬性選擇性地將與處理核中的存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的安全數(shù)據(jù)流化到集成加密引擎。此外,在某些實(shí)施例中,可以將集成加密引擎連接到處理核中的LI高速緩存,從其存儲(chǔ)安全數(shù)據(jù)的角度,LI高速緩存是有效地安全的??梢詫I高速緩存配置為存儲(chǔ)安全和非安全數(shù)據(jù)二者,或者替代地,LI高速緩存可以專用于安全數(shù)據(jù),并且可以將第二非安全LI高速緩存用于緩存非安全數(shù)據(jù)。在二者中的任一實(shí)例中,可以僅在處理核中解密安全數(shù)據(jù),并且在安全數(shù)據(jù)位于處理核外部的任何時(shí)間加密安全數(shù)據(jù),因而提供了超過(guò)傳統(tǒng)設(shè)計(jì)的增強(qiáng)的安全性。本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到其它變化和修改。因而,本發(fā)明不限定于這里討論的具體的實(shí)施方式。硬件和軟件環(huán)塏現(xiàn)在轉(zhuǎn)到附圖,其中遍及幾個(gè)視圖的相似數(shù)字表示相似部件。圖1示出包括在符合本發(fā)明實(shí)施例的數(shù)據(jù)處理中有用的示例性計(jì)算機(jī)10的示例性自動(dòng)計(jì)算機(jī)器。圖1的計(jì)算機(jī)10包括至少一個(gè)計(jì)算機(jī)處理器12或“CPU”、以及隨機(jī)存取存儲(chǔ)器14 (“RAM”),其通過(guò)高速存儲(chǔ)器總線16和總線適配器18連接到處理器12以及計(jì)算機(jī)10的其它組件。RAM 14中存儲(chǔ)的是應(yīng)用程序20,其為用戶層計(jì)算機(jī)程序指令模塊,用于執(zhí)行特定數(shù)據(jù)處理任務(wù),諸如例如文字處理、電子數(shù)據(jù)表、數(shù)據(jù)庫(kù)操作、視頻游戲、股票市場(chǎng)模擬、原子量子過(guò)程模擬、或者其它用戶層應(yīng)用。RAM 14中還存儲(chǔ)操作系統(tǒng)22。連同本發(fā)明實(shí)施例一起有用的操作系統(tǒng)包括 UNIX 、Linux 、Microsoft Windows XP 、AIX 、IBM 的 i5/0S 、以及本領(lǐng)域技術(shù)人員將會(huì)使用的其它操作系統(tǒng)。圖1的示例中的操作系統(tǒng)22和應(yīng)用程序20在RAM 14中示出,但是這種軟件的許多組件通常也被存儲(chǔ)在非易失性存儲(chǔ)器中,例如在盤驅(qū)動(dòng)器24上。如下面將變得更顯而易見(jiàn)的,可以在片上網(wǎng)絡(luò)(NOC)集成電路器件或芯片內(nèi)實(shí)施符合本發(fā)明的實(shí)施例,并且因而,示出了包括兩個(gè)示例性NOC (視頻適配器26和協(xié)處理器28)的計(jì)算機(jī)10??梢员惶娲胤Q為圖形適配器的NOC視頻適配器26是專門設(shè)計(jì)用于向諸如顯示屏幕或計(jì)算機(jī)顯示器的顯示設(shè)備30輸出圖形的I/O適配器的示例。將NOC視頻適配器26通過(guò)高速視頻總線32、總線適配器18、和前端總線34 (其也是高速總線)連接到處理器12。將NOC協(xié)處理器28通過(guò)總線適配器18、以及前端總線34和36(其也是高速總線)連接到處理器12。圖1的NOC協(xié)處理器可以被優(yōu)化為例如在主處理器12的命令下加速特定數(shù)據(jù)處理任務(wù)。圖1的示例性NOC視頻適配器26和NOC協(xié)處理器28各自包括N0C,其包括集成處理器(“IP”)塊、路由器、存儲(chǔ)器通信控制器、以及網(wǎng)絡(luò)接口控制器,下面將連同圖2-3更詳細(xì)地討論其細(xì)節(jié)。針對(duì)使用并行處理并且還需要快速隨機(jī)訪問(wèn)共享存儲(chǔ)器的程序分別優(yōu)化NOC視頻適配器和NOC協(xié)處理器。然而,受益于本即時(shí)公開(kāi)的本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,可以在除NOC器件和器件架構(gòu)之外的器件和器件架構(gòu)中實(shí)施本發(fā)明。因此本發(fā)明不限定于NOC器件中的實(shí)施方式。
圖1的計(jì)算機(jī)10包括通過(guò)擴(kuò)展總線40和總線適配器18連接到處理器12及計(jì)算機(jī)10的其它組件的盤驅(qū)動(dòng)器適配器38。盤驅(qū)動(dòng)器適配器38以盤驅(qū)動(dòng)器24的形式將非易失性數(shù)據(jù)存儲(chǔ)器連接到計(jì)算機(jī)10,并且可以例如使用電子集成驅(qū)動(dòng)器(“IDE”)適配器、小型計(jì)算機(jī)系統(tǒng)接口(“SCSI”)適配器、以及本領(lǐng)域技術(shù)人員將會(huì)見(jiàn)到的其它適配器實(shí)施。也可以將非易失性計(jì)算機(jī)存儲(chǔ)器實(shí)施為如本領(lǐng)域技術(shù)人員將會(huì)見(jiàn)到的光盤驅(qū)動(dòng)器、電可擦除可編程只讀存儲(chǔ)器(所謂的“EEPR0M”或“Flash”存儲(chǔ)器)、RAM驅(qū)動(dòng)器等。計(jì)算機(jī)10也包括一個(gè)或多個(gè)輸入/輸出(“I/O”)適配器42,其例如通過(guò)用于控制到諸如計(jì)算機(jī)顯示屏幕的顯示設(shè)備的輸出、以及從諸如鍵盤和鼠標(biāo)的用戶輸入設(shè)備44的用戶輸入的軟件驅(qū)動(dòng)器和計(jì)算機(jī)硬件來(lái)實(shí)施面向用戶的輸入/輸出。此外,計(jì)算機(jī)10包括用于與其它計(jì)算機(jī)48進(jìn)行數(shù)據(jù)通信、以及用于與數(shù)據(jù)通信網(wǎng)絡(luò)50進(jìn)行數(shù)據(jù)通信的通信適配器46。可以通過(guò)RS-232連接、通過(guò)諸如通用串行總線(“USB”)的外部總線、通過(guò)諸如IP數(shù)據(jù)通信網(wǎng)絡(luò)的數(shù)據(jù)通信網(wǎng)絡(luò)、以及本領(lǐng)域技術(shù)人員將會(huì)使用的其它方式而串行地執(zhí)行這樣的數(shù)據(jù)通信。通信適配器實(shí)施數(shù)據(jù)通信的硬件層,一臺(tái)計(jì)算機(jī)通過(guò)其將數(shù)據(jù)通信直接地或者通過(guò)數(shù)據(jù)通信網(wǎng)絡(luò)而發(fā)送到另一臺(tái)計(jì)算機(jī)。適合于在計(jì)算機(jī)10中使用的通信適配器的示例包括用于有線撥號(hào)通信的調(diào)制解調(diào)器、用于有線數(shù)據(jù)通信網(wǎng)絡(luò)通信的以太網(wǎng)(IEEE802.3)適配器、以及用于無(wú)線數(shù)據(jù)通信網(wǎng)絡(luò)通信的802.11適配器。為了進(jìn)一步說(shuō)明,圖2闡述了根據(jù)本發(fā)明實(shí)施例的示例NOC 102的功能框圖。在“芯片”100上(S卩,在集成電路上)實(shí)施圖2中的NOC。NOC 102包括集成處理器(“IP”)塊104、路由器110、存儲(chǔ)器通信控制器106、以及分組為相互連接的節(jié)點(diǎn)的網(wǎng)絡(luò)接口控制器108。每個(gè)IP塊104通過(guò)存儲(chǔ)器通信控制器106和網(wǎng)絡(luò)接口控制器108適配于路由器110。每個(gè)存儲(chǔ)器通信控制器控制IP塊和存儲(chǔ)器之間的通信,并且每個(gè)網(wǎng)絡(luò)接口控制器108通過(guò)路由器110控制IP塊間(inter-1P block)通信。在NOC 102中,每個(gè)IP塊表示被用作NOC內(nèi)的數(shù)據(jù)處理的構(gòu)成塊(buildingblock)的同步或異步邏輯設(shè)計(jì)的可重復(fù)使用的單元。術(shù)語(yǔ)“IP塊”有時(shí)被展開(kāi)為“知識(shí)產(chǎn)權(quán)塊”,其有效地將IP塊指定為由一方擁有的設(shè)計(jì)(其為一方的知識(shí)產(chǎn)權(quán)),且其被許可給半導(dǎo)體電路的其他用戶或設(shè)計(jì)者。 然而在本發(fā)明的范圍內(nèi),不存在IP塊受制于任何特定所有權(quán)的需要,所以該術(shù)語(yǔ)在本說(shuō)明書中總是被展開(kāi)為“集成處理器塊”。如這里所規(guī)定的,IP塊是邏輯、單元(cell)或芯片布局設(shè)計(jì)的可重復(fù)使用的單元,其可以是或不是知識(shí)產(chǎn)權(quán)的主題。IP塊是可以形成為ASIC芯片設(shè)計(jì)或FPGA邏輯設(shè)計(jì)的邏輯核。通過(guò)類比描述IP塊的一種方法是:IP塊對(duì)于NOC設(shè)計(jì),正如程序庫(kù)對(duì)于計(jì)算機(jī)編程、或者分離的集成電路組件對(duì)于印刷電路板設(shè)計(jì)。在符合本發(fā)明實(shí)施例的NOC中,可以將IP塊實(shí)施為通用門網(wǎng)絡(luò)表(generic gate netlists)、實(shí)施為完整的專用或通用微處理器、或者本領(lǐng)域技術(shù)人員將會(huì)使用的其它方式。網(wǎng)絡(luò)表是IP塊的邏輯功能的布爾代數(shù)(Boolean-algebra)表示(門、標(biāo)準(zhǔn)單元),類似用于高級(jí)程序應(yīng)用的匯編代碼(assembly-code)列表。NOC也可以被實(shí)施為例如在諸如Verilog或VHDL的硬件描述語(yǔ)言中描述的可綜合(synthesizable)形式。除網(wǎng)絡(luò)表和可綜合實(shí)施方式之外,NOC也可以以更低層的物理描述表達(dá)??梢砸灾T如⑶SII的晶體管布局格式發(fā)布諸如SERDES、PLL、DAC、ADC等的模擬IP塊元件。有時(shí)也以布局格式提供IP塊的數(shù)字元件。也將認(rèn)識(shí)到的是,符合本發(fā)明所實(shí)施的IP塊以及其它邏輯電路可以以計(jì)算機(jī)數(shù)據(jù)文件的形式發(fā)布,所述計(jì)算機(jī)數(shù)據(jù)文件以各種詳細(xì)級(jí)別定義實(shí)施這樣的邏輯的電路布置的功能性和/或布局,例如為邏輯限定程序代碼。因此,雖然已經(jīng)在并且后面還將在以完全功能集成電路器件實(shí)施的電路布置、使用這種器件的數(shù)據(jù)處理系統(tǒng)、以及其它有形物理硬件電路的上下文中描述本發(fā)明,但受益于該即時(shí)公開(kāi)的本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到的是,本發(fā)明也可以在程序產(chǎn)品內(nèi)實(shí)施,并且無(wú)論被用于發(fā)布程序產(chǎn)品的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的特定類型,本發(fā)明同樣適用。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例包括但不限于物理可記錄類型的介質(zhì),諸如易失和非易失性存儲(chǔ)設(shè)備、軟盤、硬盤驅(qū)動(dòng)器、CD-ROM、和DVD (以及其它)。圖2的示例中的每個(gè)IP塊104通過(guò)存儲(chǔ)器通信控制器106適配于路由器110。每個(gè)存儲(chǔ)器通信控制器是適配于提供IP塊和存儲(chǔ)器之間的數(shù)據(jù)通信的同步和異步邏輯電路的集合(aggregation)。IP塊和存儲(chǔ)器之間的這種通信的示例包括存儲(chǔ)器加載指令和存儲(chǔ)器存儲(chǔ)指令。下面參考圖3更詳細(xì)地描述存儲(chǔ)器通信控制器106。每個(gè)IP塊104也通過(guò)網(wǎng)絡(luò)接口控制器108適配于路由器110,所述網(wǎng)絡(luò)接口控制器108控制IP塊104之間通過(guò)路由器110的通信。IP塊之間的通信示例包括并行應(yīng)用中和流水線式應(yīng)用中的IP塊之間的、攜帶數(shù)據(jù)和用于處理數(shù)據(jù)的指令的消息。路由器110和其間的相應(yīng)鏈路118實(shí)施NOC的網(wǎng)絡(luò)操作。鏈路118可以是在連接所有路由器的物理并行線總線上實(shí)施的包結(jié)構(gòu)。即,可以在寬度足夠同時(shí)容納包括所有報(bào)頭信息和有效負(fù)載數(shù)據(jù)的整個(gè)數(shù)據(jù)交換包的線總線上實(shí)施每個(gè)鏈路。如果包結(jié)構(gòu)包括64比特,例如包括8字節(jié)的報(bào)頭和56字節(jié)的有效負(fù)載數(shù)據(jù),則構(gòu)成(subtending)每個(gè)鏈路的線總線為64字節(jié)寬,512條線。此外,每個(gè)鏈路可以是雙向的,從而如果鏈路數(shù)據(jù)包結(jié)構(gòu)包括64字節(jié),則線總線在每個(gè)路由器和其在網(wǎng)絡(luò)中的鄰居之間實(shí)際上包含1024條線。在這樣的實(shí)施方式中,消息可以包括多于一個(gè)包,但是每個(gè)包將精確地適合于線總線的寬度。在替代方案中,可以在寬度僅足夠容納包的一部分的線總線上實(shí)施鏈路,使得數(shù)據(jù)包將被拆分為多拍(beat),例如使得如果鏈路的寬度被實(shí)施為16字節(jié)、或128條線,則64字節(jié)的包可以被分成四拍。將會(huì)認(rèn)識(shí)到的是,不同的實(shí)施方式可以基于實(shí)際物理限制和期望的性能特征而使用不同總線寬度。如果路由器和線總線的每個(gè)部分之間的連接被稱為端口,那么每個(gè)路由器包括五個(gè)端口,其中,網(wǎng)絡(luò)上數(shù)據(jù)傳輸?shù)乃膫€(gè)方向的每一個(gè)各使用一個(gè)端口,以及第五個(gè)端口用于通過(guò)存儲(chǔ)器通信控制器和網(wǎng)絡(luò)接口控制器將路由器適配于特定IP塊。每個(gè)存儲(chǔ)器通信控制器106控制IP塊和存儲(chǔ)器之間的通信。存儲(chǔ)器可以包括片外主RAM 112、通過(guò)存儲(chǔ)器通信控制器106直接連接到IP塊的存儲(chǔ)器114、啟用為IP塊的片上存儲(chǔ)器116、以及片上高速緩存(cache)。在NOC 102中,例如可以作將片上存儲(chǔ)器114、116中的任一個(gè)實(shí)施為片上高速緩存存儲(chǔ)器。存儲(chǔ)器的所有這些形式可以被布置在相同的地址空間(物理地址或虛擬地址)中,甚至對(duì)于直接附接到IP塊的存儲(chǔ)器也是如此的。因此,存儲(chǔ)器尋址的(addressed)消息關(guān)于IP塊可以是完全雙向的,因?yàn)榭梢詮木W(wǎng)絡(luò)上任何位置上的任何IP塊直接尋址這樣的存儲(chǔ)器。IP塊上的存儲(chǔ)器116可以從該IP塊或從NOC中的任何其它IP塊來(lái)尋址??梢杂赏ㄟ^(guò)存儲(chǔ)器通信控制器而適配于該網(wǎng)絡(luò)的IP塊尋址直接附接到該存儲(chǔ)器通信控制器的存儲(chǔ)器114,并且也可以從NOC中的任何位置上的任何其它IP塊尋址直接附接到該存儲(chǔ)器通信控制器的存儲(chǔ)器114。NOC 102包括兩個(gè)存儲(chǔ)器管理單元(“MMU”)120、122,例示了符合本發(fā)明實(shí)施例的用于NOC的兩個(gè)替代存儲(chǔ)器架構(gòu)。在IP塊內(nèi)實(shí)施MMU 120,其允許IP塊內(nèi)的處理器在虛擬存儲(chǔ)器中操作,同時(shí)允許NOC的整個(gè)剩余架構(gòu)在物理存儲(chǔ)地址空間中操作。在片外實(shí)施MMU122,其通過(guò)數(shù)據(jù)通信端口 124連接到N0C。端口 124包括用于在NOC和MMU之間傳輸信號(hào)所需的引腳和其它互連,并且足夠智能以將消息包從NOC包格式轉(zhuǎn)換為外部MMU 122所需的總線格式。MMU的外部位置意味著:N0C的所有IP塊中的所有處理器可以在虛擬存儲(chǔ)地址空間中操作,由片外MMU 112處理向片外存儲(chǔ)器的物理地址的所有轉(zhuǎn)換。除了通過(guò)MMU 120、122的使用示出的兩個(gè)存儲(chǔ)器架構(gòu)之外,數(shù)據(jù)通信端口 126還示出能夠在本發(fā)明實(shí)施例中采用的、在NOC中有用的第三存儲(chǔ)器架構(gòu)。端口 126提供NOC102的IP塊和片外存儲(chǔ)器112之間的直接連接。在處理路徑中沒(méi)有MMU的情況下,該架構(gòu)提供NOC的所有IP塊對(duì)物理地址空間的利用。在雙向共享該地址空間中,通過(guò)直接連接到端口 126的IP塊引導(dǎo)的存儲(chǔ)器尋址的消息(包括加載和存儲(chǔ)),N0C的所有IP塊可以訪問(wèn)地址空間中的存儲(chǔ)器。端口 126包括在NOC和片外存儲(chǔ)器112之間傳輸信號(hào)所需的引腳和其它互連,并且充分智能以將消息包從NOC包格式轉(zhuǎn)換為片外存儲(chǔ)器112所需的總線格式。在圖2的示例中,一個(gè)IP塊被指派主機(jī)接口處理器128。主機(jī)接口處理器128提供NOC和安裝了該NOC的主機(jī)計(jì)算機(jī)10之間的接口,并且還提供到NOC上的其它IP塊的數(shù)據(jù)處理服務(wù),例如包括接收和在NOC的IP塊之間調(diào)度來(lái)自主機(jī)計(jì)算機(jī)的數(shù)據(jù)處理請(qǐng)求。NOC例如可以在較大型的計(jì)算機(jī)10上實(shí)施視頻圖形適配器26或協(xié)處理器28,如以上參考圖1所述的。在圖2的示例中,主機(jī)接口處理器128通過(guò)數(shù)據(jù)通信接口 130連接到該較大型的計(jì)算機(jī)。端口 130包括在NOC和主機(jī)計(jì)算機(jī)之間傳輸信號(hào)所需的引腳和其它互連,并且充分智能以將消息包從NOC轉(zhuǎn)換為主機(jī)計(jì)算機(jī)10所需的總線格式。在圖1的計(jì)算機(jī)中的NOC協(xié)處理器的示例中,這樣的端口將提供NOC協(xié)處理器28的鏈路結(jié)構(gòu)、與NOC協(xié)處理器28和總線適配器18之間的前端總線36所需的協(xié)議之間的數(shù)據(jù)通信格式轉(zhuǎn)換。圖3接著示出一功能框圖,其更詳細(xì)地示出NOC 102中的IP塊104、存儲(chǔ)器通信控制器106、網(wǎng)絡(luò)接口控制器108以及路由器110內(nèi)實(shí)施的組件,其以132集體表示。IP塊104包括計(jì)算機(jī)處理器134和I/O功能136。在該示例中,由IP塊104中的隨機(jī)存取存儲(chǔ)器(“RAM”)的片段表示計(jì)算機(jī)存儲(chǔ)器。如以上參考圖2所述的存儲(chǔ)器可以占用物理地址空間的片段,其在每個(gè)IP塊上的內(nèi)容是可從NOC中的任何IP塊尋址和訪問(wèn)的。每個(gè)IP塊中的處理器134、I/O能力136、以及存儲(chǔ)器138有效地將IP塊實(shí)施為一般可編程微計(jì)算機(jī)。然而,如上所述,在本發(fā)明的范圍內(nèi),IP塊一般表示被用作NOC內(nèi)的數(shù)據(jù)處理的構(gòu)成塊的同步或異步邏輯的可重復(fù)使用的單元。因此,本發(fā)明不局限于將IP塊實(shí)施為一般可編程微計(jì)算機(jī),盡管其為對(duì)于說(shuō)明的目的有用的一般實(shí)施例。在圖3的NOC 102中,每個(gè)存儲(chǔ)器通信控制器106包括多個(gè)存儲(chǔ)器通信執(zhí)行引擎140。每個(gè)存儲(chǔ)器通信執(zhí)行引擎140被使得能夠執(zhí)行來(lái)自IP塊104的存儲(chǔ)器通信指令,包括網(wǎng)絡(luò)和IP塊104之間的雙向存儲(chǔ)器通信指令流141、142、144。由存儲(chǔ)器通信控制器執(zhí)行的存儲(chǔ)器通信指令不僅可以源于通過(guò)特定存儲(chǔ)器通信控制器適配于路由器的IP塊,而且也可以源于NOC 102中的任何位置上的任何IP塊104。BP,NOC中的任何IP塊可以生成存儲(chǔ)器通信指令并且將該存儲(chǔ)器通信指令通過(guò)NOC的路由器發(fā)送到與另一個(gè)IP塊相關(guān)的另一個(gè)存儲(chǔ)器通信控制器,用于執(zhí)行該存儲(chǔ)器通信指令。這樣的存儲(chǔ)器通信指令例如可以包括旁路轉(zhuǎn)換緩沖控制指令、高速緩存控制指令、阻礙(barrier)指令、以及存儲(chǔ)器加載和存儲(chǔ)指令。
每個(gè)存儲(chǔ)器通信控制器140被使得能夠獨(dú)立并且與其它存儲(chǔ)器通信執(zhí)行引擎并行地執(zhí)行完整的存儲(chǔ)器通信指令。存儲(chǔ)器通信執(zhí)行引擎實(shí)施針對(duì)存儲(chǔ)器通信指令的并行吞吐量而優(yōu)化的可擴(kuò)展的存儲(chǔ)事務(wù)處理器。存儲(chǔ)器通信控制器106支持多個(gè)存儲(chǔ)器通信執(zhí)行引擎140,所有存儲(chǔ)器通信執(zhí)行引擎140并行運(yùn)行以同時(shí)執(zhí)行多個(gè)存儲(chǔ)器通信指令。通過(guò)存儲(chǔ)器通信控制器106將新的存儲(chǔ)器通信指令分配到存儲(chǔ)器通信引擎140,并且存儲(chǔ)器通信執(zhí)行引擎140可以同時(shí)接受多個(gè)響應(yīng)事件。在該示例中,所有存儲(chǔ)器通信執(zhí)行引擎140是相同的。因此,可以通過(guò)增減存儲(chǔ)器通信執(zhí)行引擎140的數(shù)目來(lái)實(shí)施可以通過(guò)存儲(chǔ)器通信控制器106同時(shí)處理的存儲(chǔ)器通信指令的數(shù)目的增減。在圖3的NOC 102中,每個(gè)網(wǎng)絡(luò)接口控制器108被使得能夠?qū)⑼ㄐ胖噶顝拿罡袷睫D(zhuǎn)換為網(wǎng)絡(luò)包格式,用于通過(guò)路由器110在IP塊104之間傳輸。通信指令可以由IP塊104或存儲(chǔ)器通信控制器106表示為命令格式,并被以命令格式提供到網(wǎng)絡(luò)接口控制器108。命令格式可以是符合IP塊104和存儲(chǔ)器通信控制器106的架構(gòu)寄存器文件的原生格式。網(wǎng)絡(luò)包格式通常是通過(guò)網(wǎng)絡(luò)的路由器110傳輸所需的格式。每個(gè)這樣的消息由一個(gè)或多個(gè)網(wǎng)絡(luò)包組成。網(wǎng)絡(luò)接口控制器中的這種從命令格式轉(zhuǎn)換為包格式的通信指令的示例包括IP塊和存儲(chǔ)器之間的存儲(chǔ)器加載指令和存儲(chǔ)器存儲(chǔ)指令。這種通信指令也可以包括并行應(yīng)用中和流水線式應(yīng)用中的、在IP塊之間發(fā)送消息的通信指令,該消息攜帶數(shù)據(jù)和用于在IP塊之間處理數(shù)據(jù)的指令。在圖3的NOC 102中,每個(gè)IP塊被使得能夠通過(guò)該IP塊的存儲(chǔ)器通信控制器向和從存儲(chǔ)器發(fā)送基于存儲(chǔ)地址的通信,并且接著還通過(guò)其網(wǎng)絡(luò)接口控制器將該基于存儲(chǔ)地址的通信發(fā)送到網(wǎng)絡(luò)?;诖鎯?chǔ)地址的通信是由IP塊的存儲(chǔ)器通信控制器的存儲(chǔ)器通信執(zhí)行引擎執(zhí)行的存儲(chǔ)器訪問(wèn)指令,諸如加載指令或存儲(chǔ)指令。這種基于存儲(chǔ)地址的通信通常起源于IP塊中,以命令格式表示,并且為了執(zhí)行而被轉(zhuǎn)移(hand off)到存儲(chǔ)器通信控制器。以消息流量執(zhí)行許多基于存儲(chǔ)地址的通信,因?yàn)橐辉L問(wèn)的任何存儲(chǔ)器可以位于物理存儲(chǔ)地址空間中的任何地方、在片上或片外、直接附接到NOC中的任何存儲(chǔ)器通信控制器、或者最終通過(guò)NOC的任何IP塊訪問(wèn)——而無(wú)論哪個(gè)IP塊引起任何特定的基于存儲(chǔ)地址的通信。因此,在NOC 102中,所有以消息流量執(zhí)行的基于存儲(chǔ)地址的通信從存儲(chǔ)器通信控制器傳遞到相關(guān)的網(wǎng)絡(luò)接口控制器,用于從命令格式轉(zhuǎn)換為包格式并且通過(guò)網(wǎng)絡(luò)在消息中傳輸。在到包格式的轉(zhuǎn)換中,網(wǎng)絡(luò)接口控制器還識(shí)別根據(jù)要由基于存儲(chǔ)地址的通信訪問(wèn)的存儲(chǔ)地址或多個(gè)存儲(chǔ)地址的、用于數(shù)據(jù)包的網(wǎng)絡(luò)地址。基于存儲(chǔ)地址的消息與存儲(chǔ)地址一起被尋址。每個(gè)存儲(chǔ)地址由網(wǎng)絡(luò)接口控制器映射到網(wǎng)絡(luò)地址,通常是負(fù)責(zé)物理存儲(chǔ)地址的某一范圍的存儲(chǔ)器通信控制器的網(wǎng)絡(luò)位置。存儲(chǔ)器通信控制器106的網(wǎng)絡(luò)位置自然也是該存儲(chǔ)器通信控制器的相關(guān)路由器110、網(wǎng)絡(luò)接口控制器108、以及IP塊104的網(wǎng)絡(luò)位置。每個(gè)網(wǎng)絡(luò)接口控制器內(nèi)的指令轉(zhuǎn)換邏輯150被使得能夠?yàn)榱送ㄟ^(guò)NOC的路由器發(fā)送基于存儲(chǔ)地址的通信的目的而將存儲(chǔ)地址轉(zhuǎn)換為網(wǎng)絡(luò)地址。在從網(wǎng)絡(luò)的路由器110接收消息流量時(shí),每個(gè)網(wǎng)絡(luò)接口控制器108檢查用于存儲(chǔ)器指令的每個(gè)包。包含存儲(chǔ)器指令的每個(gè)包被交給與接收網(wǎng)絡(luò)接口控制器相關(guān)的存儲(chǔ)器通信控制器106,其在將包的剩余有效負(fù)載發(fā)送到IP塊用于進(jìn)一步的處理之前執(zhí)行存儲(chǔ)器指令。以這種方式,總是準(zhǔn)備存儲(chǔ)內(nèi)容,以在IP塊開(kāi)始執(zhí)行來(lái)自消息的依賴于特定存儲(chǔ)內(nèi)容的指令之前支持通過(guò)IP塊的數(shù)據(jù)處理。在圖3的NOC 102中,每個(gè)IP塊104被使得能夠繞過(guò)其存儲(chǔ)器通信控制器106并且將IP塊間的網(wǎng)絡(luò)尋址通信146通過(guò)IP塊的網(wǎng)絡(luò)接口控制器108直接發(fā)送到網(wǎng)絡(luò)。網(wǎng)絡(luò)尋址通信是由網(wǎng)絡(luò)地址指引到另一個(gè)IP塊的消息。這樣的消息在流水線式應(yīng)用中發(fā)送工作數(shù)據(jù)、在SMD應(yīng)用中的IP塊之間發(fā)送用于單個(gè)程序處理的多個(gè)數(shù)據(jù),等等,如本領(lǐng)域技術(shù)人員將會(huì)遇到的。這樣的消息與基于存儲(chǔ)地址的通信的區(qū)別在于它們從一開(kāi)始就通過(guò)知道該消息通過(guò)NOC的路由器要被指引到的網(wǎng)絡(luò)地址的起源IP塊而網(wǎng)絡(luò)尋址。這樣的網(wǎng)絡(luò)尋址通信由IP塊通過(guò)I/O功能136以命令格式直接傳遞到IP塊的網(wǎng)絡(luò)接口控制器,接著被網(wǎng)絡(luò)接口控制器轉(zhuǎn)換為包格式并通過(guò)NOC的路由器發(fā)送到另一個(gè)IP塊。這樣的網(wǎng)絡(luò)尋址通信146是雙向的,其可能進(jìn)入以及來(lái)自NOC的每個(gè)IP塊,取決于其在任何特定應(yīng)用中的使用。然而,每個(gè)網(wǎng)絡(luò)接口控制器被使得能夠?qū)⑦@樣的通信發(fā)送到相關(guān)路由器、以及從相關(guān)路由器接收這樣的通信,并且每個(gè)網(wǎng)絡(luò)接口控制器被使得能夠繞過(guò)相關(guān)存儲(chǔ)器通信控制器106而將這樣的通信直接發(fā)送到相關(guān)IP塊、以及從相關(guān)IP塊直接接收這樣的通信。圖3的示例中的每個(gè)網(wǎng)絡(luò)接口控制器108也被使得能夠?qū)嵤┚W(wǎng)絡(luò)上的虛擬信道,通過(guò)類型刻畫網(wǎng)絡(luò)包的特征。每個(gè)網(wǎng)絡(luò)接口控制器108包括虛擬信道實(shí)現(xiàn)邏輯148,其將每個(gè)通信指令分類、并且在將包格式的指令轉(zhuǎn)移到路由器110以在NOC上傳輸之前在網(wǎng)絡(luò)包格式的字段中記錄指令的類型。通信指令類型的示例包括IP塊間的基于網(wǎng)絡(luò)地址的消息、請(qǐng)求消息、請(qǐng)求消息的響應(yīng)、指引到高速緩存的無(wú)效消息;存儲(chǔ)器加載和存儲(chǔ)消息;以及存儲(chǔ)器加載消息的響應(yīng)等。圖3的示例中的每個(gè)路由器110包括路由邏輯152、虛擬信道控制邏輯154、以及虛擬信道緩沖器156。路由邏輯通常被實(shí)施為在由路由器110、鏈路118、以及路由器之間的總線線形成的網(wǎng)絡(luò)中實(shí)施用于數(shù)據(jù)通信的數(shù)據(jù)通信協(xié)議棧的同步和異步邏輯的網(wǎng)絡(luò)。路由邏輯152包括本領(lǐng)域的讀者可能在片外網(wǎng)絡(luò)中將其與路由表相關(guān)聯(lián)的功能,至少某些實(shí)施例中的路由表被認(rèn)為對(duì)于NOC中的使用過(guò)于緩慢和繁瑣。被實(shí)施為同步和異步邏輯的網(wǎng)絡(luò)的路由邏輯可以被配置為快到在單個(gè)時(shí)鐘周期中做出路由決定。該示例中的路由邏輯通過(guò)選擇用于轉(zhuǎn)發(fā)在路由器中接收的每個(gè)包的端口來(lái)路由包。每個(gè)包包括該包將要被路由到的網(wǎng)絡(luò)地址。在上述基于存儲(chǔ)地址的通信中,每個(gè)存儲(chǔ)地址被描述為由網(wǎng)絡(luò)接口控制器映射到網(wǎng)絡(luò)地址,即,存儲(chǔ)器通信控制器的網(wǎng)絡(luò)位置。存儲(chǔ)器通信控制器106的網(wǎng)絡(luò)位置自然也是該存儲(chǔ)器通信控制器的相關(guān)路由器110、網(wǎng)絡(luò)接口控制器108、和IP塊104的網(wǎng)絡(luò)位置。因此,在IP塊間、或基于網(wǎng)絡(luò)地址的通信中,應(yīng)用層數(shù)據(jù)處理通常查看作為由NOC的路由器、鏈路和總線線形成的網(wǎng)絡(luò)中的IP塊的位置的網(wǎng)絡(luò)地址。圖2示出這種網(wǎng)絡(luò)的一個(gè)組織是行和列的網(wǎng)狀結(jié)構(gòu),其中每個(gè)網(wǎng)絡(luò)地址可以例如實(shí)施為用于網(wǎng)狀結(jié)構(gòu)的相關(guān)路由器、IP塊、存儲(chǔ)器通信控制器、和網(wǎng)絡(luò)接口控制器的每個(gè)集合的唯一標(biāo)識(shí)符,或者網(wǎng)狀結(jié)構(gòu)中的每個(gè)這種集合的x、y坐標(biāo)。在圖3的NOC 102中,每個(gè)路由器110實(shí)施兩個(gè)或更多個(gè)虛擬通信信道,其中每個(gè)虛擬通信信道通過(guò)通信類型刻畫特征。通信指令類型以及因此虛擬信道類型包括上述那些類型:IP塊間的基于網(wǎng)絡(luò)地址的消息、請(qǐng)求消息、請(qǐng)求消息的響應(yīng)、指引到高速緩存的無(wú)效消息;存儲(chǔ)器加載和存儲(chǔ)消息;以及存儲(chǔ)器加載消息的響應(yīng);等等。為了支持虛擬信道,圖3的示例中的每個(gè)路由器110也包括虛擬信道控制邏輯154和虛擬信道緩沖器156。虛擬信道控制邏輯154針對(duì)所分配的通信類型而檢查每個(gè)接收的包,并且將每個(gè)包放置在針對(duì)該通信類型的輸出(outgoing)虛擬信道緩沖器中,用于通過(guò)端口傳輸?shù)絅OC上的相鄰路由器。每個(gè)虛擬信道緩沖器156具有有限的存儲(chǔ)空間。當(dāng)在短時(shí)間內(nèi)接收許多包時(shí),虛擬信道緩沖器可能充滿一從而不能將更多包放入緩沖器中。在其它協(xié)議中,到達(dá)其緩沖器已滿的虛擬信道的包將被丟棄(drop)。然而,該示例中的每個(gè)虛擬信道緩沖器156被使得能夠用總線線的控制信號(hào),通過(guò)虛擬信道控制邏輯通知(advise)周圍的路由器暫停虛擬信道中的傳輸,即暫停特定通信類型的包的傳輸。當(dāng)這樣暫停一個(gè)虛擬信道時(shí),所有其它虛擬信道不受影響,并且可以繼續(xù)以全容量操作。通過(guò)每個(gè)路由器將控制信號(hào)一路傳回到每個(gè)路由器的相關(guān)網(wǎng)絡(luò)接口控制器108。每個(gè)網(wǎng)絡(luò)接口控制器被配置為在接收到這樣的信號(hào)時(shí)拒絕從其相關(guān)地存儲(chǔ)器通信控制器106或從其相關(guān)的IP塊104接受用于暫停的虛擬信道的通信指令。以這種方式,虛擬信道的暫停影響實(shí)施虛擬信道的所有硬件,一路直到發(fā)源IP塊。在虛擬信道中暫停包傳輸?shù)囊粋€(gè)效果是永不丟棄包。當(dāng)路由器遇到在諸如例如因特網(wǎng)協(xié)議的某些不可靠協(xié)議下可能丟棄數(shù)據(jù)包的情況時(shí),圖3的示例中的路由器可以通過(guò)它們的虛擬信道緩沖器156和它們的虛擬信道控制邏輯154來(lái)暫停虛擬信道中的所有包的傳輸,直至緩沖器空間再次可用為止,從而消除了丟棄包的任何需要。因此,圖3的NOC可以用非常薄的硬件層實(shí)施高可靠性的網(wǎng)絡(luò)通信協(xié)議。圖3的示例NOC也可以被配置為保持片上和片外高速緩存存儲(chǔ)器二者之間的高速緩存一致性。每個(gè)NOC可以支持多個(gè)高速緩存,其中的每個(gè)針對(duì)相同的底層存儲(chǔ)地址空間而操作。例如,高速緩存可以通過(guò)IP塊、通過(guò)存儲(chǔ)器通信控制器、或者通過(guò)NOC外部的高速緩存控制器來(lái)控制。圖2的示例中的片上存儲(chǔ)器114、116中的任何一個(gè)也可以被實(shí)施為片上高速緩存,并且在本發(fā)明的范圍內(nèi),高速緩存存儲(chǔ)器也可以被實(shí)施為片外高速緩存。圖3中示出的每個(gè)路由器110包括五個(gè)端口,其中包括通過(guò)總線線118連接到其它路由器的四個(gè)端口 158A-D、以及通過(guò)網(wǎng)絡(luò)接口控制器108和存儲(chǔ)器通信控制器106將每個(gè)路由器連接到其相關(guān)的IP塊104的第五個(gè)端口 160。如從圖2和圖3中的圖示可見(jiàn),NOC102的路由器110和鏈路118形成具有連接每個(gè)路由器中的垂直和水平端口的垂直和水平鏈路的網(wǎng)狀網(wǎng)絡(luò)。例如,在圖3的圖示中,端口 158A、158C和160被稱為垂直端口,且端口158B和158D被稱為水平端口。圖4接著以另一種方式示出符合本發(fā)明的IP塊104的一個(gè)示例性實(shí)施方式,其被實(shí)施為被分區(qū)(partition)為發(fā)布(issue)或指令單元(IU) 162、執(zhí)行單元(XU) 164、以及輔助執(zhí)行單元(AXU) 166的處理元件。在所示的實(shí)施方式中,IU162包括多個(gè)指令緩沖器168,其從LI指令高速緩存(iCACHE) 170接收指令。每個(gè)指令緩沖器168是多個(gè)(例如,四個(gè))對(duì)稱多線程(SMT)硬件線程中的一個(gè)所專用的。有效至真實(shí)轉(zhuǎn)換單元(iERAT) 172連接到iCACHE170,并且被用于將來(lái)自多個(gè)取線程序列發(fā)生器(thread fetch sequencer)174的取指令請(qǐng)求(instruction fetch request)轉(zhuǎn)換為用于從較低階存儲(chǔ)器檢索指令的真實(shí)地址。每個(gè)取線程序列發(fā)生器174是特定硬件線程專用的,并且被用于確保要被相關(guān)線程執(zhí)行的指令被取到iCACHE,用于調(diào)度到適當(dāng)?shù)膱?zhí)行單元。如圖4中還示出的,取到指令緩沖器168的指令也可以通過(guò)分支預(yù)測(cè)邏輯176監(jiān)測(cè),所述分支預(yù)測(cè)邏輯176將提示(hint)提供給每個(gè)取線程序列發(fā)生器174,以最小化由執(zhí)行線程中的分支引起的指令高速緩存未命中(miss)oIU 162還包括每個(gè)硬件線程專用的依賴性(dependency) /發(fā)布邏輯塊178,并且依賴性(dependency)/發(fā)布邏輯塊178被配置為解決依賴性并控制從指令緩沖器168到XU164的指令發(fā)布。此外,在所示實(shí)施例中,在AXU 166中提供獨(dú)立的依賴性/發(fā)布邏輯180,因而使獨(dú)立指令能夠被不同線程同時(shí)發(fā)布到XU 164和AXU 166。在替代實(shí)施例中,邏輯180可以被布置在IU 162中,或者可以完全被省略,使得邏輯178將指令發(fā)布到AXU166。XU 164被實(shí)施為定點(diǎn)執(zhí)行單元,包括連接到定點(diǎn)邏輯184的通用寄存器(GPR)的集合182、分支邏輯186以及加載/存儲(chǔ)邏輯188。加載/存儲(chǔ)邏輯188通過(guò)由dERAT邏輯192提供的有效至真實(shí)轉(zhuǎn)換,連接到LI數(shù)據(jù)高速緩存(dCACHE) 190。XU 164可以被配置為實(shí)際實(shí)施任何指令集合,例如32b或64b PowerPC指令集合的全部或部分。AXU 166操作為包括專用的依賴性/發(fā)布邏輯180以及一個(gè)或多個(gè)執(zhí)行塊194的輔助執(zhí)行單元。AXU 166可以包括任意數(shù)目的執(zhí)行塊,并且可以實(shí)際實(shí)施任何類型的執(zhí)行單元,例如:浮點(diǎn)單元,或者諸如加密/解密單元、協(xié)處理器、矢量處理單元、圖形處理單元、XML處理單元等的一個(gè)或多個(gè)專門的執(zhí)行單元。在所示實(shí)施例中,AXU 166包括到XU 164的高速輔助接口,例如用以支持AXU架構(gòu)狀態(tài)和XU架構(gòu)狀態(tài)之間的直接遷移(move)??梢越?jīng)由連接到NOC 102的網(wǎng)絡(luò)接口控制器108,以以上連同圖2所討論的方式管理與IP塊104的通信。可以與基于消息的通信一起提供基于地址的通信,例如,用以訪問(wèn)L2高速緩存存儲(chǔ)器。例如,每個(gè)IP塊104可以包括專用的收件箱(in box)和/或發(fā)件箱(out box),以便處理IP塊之間的節(jié)點(diǎn)間通信??梢栽谝陨线B同圖1-4所說(shuō)明的硬件和軟件環(huán)境內(nèi)實(shí)施本發(fā)明的實(shí)施例。然而,受益于本即時(shí)公開(kāi)的本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到,本發(fā)明可以在諸多不同環(huán)境中實(shí)施,并且可以在不違背本發(fā)明的精神和范圍的情況下對(duì)上述硬件和軟件環(huán)境做出其它修改。因此,本發(fā)明不限于此處公開(kāi)的特定硬件和軟件。
_9] 基于存儲(chǔ)地址轉(zhuǎn)換的數(shù)據(jù)加密/壓縮保護(hù)未加密的安全數(shù)據(jù)不被在安全線程之外訪問(wèn)在許多數(shù)據(jù)處理應(yīng)用中極為重要。一般地,該數(shù)據(jù)僅在芯片外部被保持安全,但是由于SOC在芯片上增長(zhǎng)到幾百個(gè)處理器,所以保護(hù)未加密數(shù)據(jù)甚至不被同一芯片上的其它處理訪問(wèn)也越來(lái)越重要。傳統(tǒng)地,為加密所識(shí)別的某些地址范圍被過(guò)濾、并且由于數(shù)據(jù)被傳遞到存儲(chǔ)控制器/從存儲(chǔ)控制器傳遞而被加密/不加密。然而,這可以導(dǎo)致未加密數(shù)據(jù)存在于高速緩存中,并且對(duì)于其它線程是可訪問(wèn)的。另一方面,符合本發(fā)明的關(guān)于加密的實(shí)施例能夠通過(guò)將一個(gè)或多個(gè)關(guān)于加密的頁(yè)面屬性添加到用于執(zhí)行虛擬和真實(shí)存儲(chǔ)地址之間的存儲(chǔ)地址轉(zhuǎn)換的存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),來(lái)保護(hù)存儲(chǔ)頁(yè)面僅被授權(quán)線程訪問(wèn)。例如,在一個(gè)實(shí)施例中,可以將一個(gè)或多個(gè)關(guān)于加密的頁(yè)面屬性添加到處理核的有效至真實(shí)轉(zhuǎn)換(ERAT)表的頁(yè)表?xiàng)l目(PTE),使得將僅允許具有訪問(wèn)存儲(chǔ)頁(yè)面許可的安全線程(如由該頁(yè)面的PTE指定)訪問(wèn)該頁(yè)面。如果另一個(gè)線程試圖訪問(wèn)該頁(yè)面,則將會(huì)引起安全中斷,并且通過(guò)系統(tǒng)管理程序(hypervisor)或其它主管級(jí)軟件(supervisor-level software)以期望的方式處理安全中斷。此外,頁(yè)面屬性還被用于通過(guò)識(shí)別需要被發(fā)送到加密引擎的存儲(chǔ)器訪問(wèn)而簡(jiǎn)化硬件加密/解密。響應(yīng)于LI高速緩存上的未命中,可以將該頁(yè)面屬性例如發(fā)送到L2高速緩存或其它較低級(jí)存儲(chǔ)器,作為必須針對(duì)加載或存儲(chǔ)而將重載(reload)數(shù)據(jù)流化通過(guò)加密引擎以適當(dāng)?shù)亟饷?加密該數(shù)據(jù)的指示。通過(guò)將關(guān)于加密的頁(yè)面屬性合并入處理器的存儲(chǔ)地址轉(zhuǎn)換功能,在降低了對(duì)性能的影響的情況下增強(qiáng)了安全數(shù)據(jù)在整個(gè)數(shù)據(jù)處理系統(tǒng)中的安全性,特別是在具有許多SMT處理核的SOC中。此外,在許多實(shí)例中,PTE不捆綁到特定處理標(biāo)識(shí)符,因此在本發(fā)明的某些實(shí)施例中,不同處理可以被授權(quán)訪問(wèn)同一加密數(shù)據(jù)。同樣地,關(guān)于在數(shù)據(jù)處理系統(tǒng)中壓縮的數(shù)據(jù),傳統(tǒng)的數(shù)據(jù)處理系統(tǒng)使用一系列寄存器控制壓縮的存儲(chǔ)區(qū)域以配置存儲(chǔ)范圍,其通常需要附加硬件以及復(fù)雜的軟件配置,其二者都可能對(duì)系統(tǒng)性能產(chǎn)生不利影響。另一方面,符合本發(fā)明的關(guān)于壓縮的實(shí)施例將一個(gè)或多個(gè)關(guān)于壓縮的頁(yè)面屬性添加到用于執(zhí)行虛擬和真實(shí)存儲(chǔ)地址之間的存儲(chǔ)地址轉(zhuǎn)換的存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),來(lái)簡(jiǎn)化壓縮/解壓過(guò)程并減少與訪問(wèn)壓縮數(shù)據(jù)相關(guān)的等待時(shí)間(latency)。例如,在一個(gè)實(shí)施例中,可以將一個(gè)或多個(gè)關(guān)于壓縮的頁(yè)面屬性添加到處理核的有效至真實(shí)轉(zhuǎn)換(ERAT)的頁(yè)表?xiàng)l目(PTE),使得當(dāng)針對(duì)包括壓縮數(shù)據(jù)的存儲(chǔ)頁(yè)面初始化PTE時(shí),可以當(dāng)執(zhí)行加載時(shí)將相應(yīng)的關(guān)于壓縮的頁(yè)面屬性轉(zhuǎn)發(fā)到存儲(chǔ)器子系統(tǒng),從而使得來(lái)自存儲(chǔ)器或較高級(jí)高速緩存的數(shù)據(jù)將直接流化通過(guò)硬件壓縮引擎以被解密。相反過(guò)程也如此,即,任何存儲(chǔ)數(shù)據(jù)將在被發(fā)送到第一級(jí)的壓縮存儲(chǔ)之前流化通過(guò)壓縮引擎。這簡(jiǎn)化了管理壓縮數(shù)據(jù)的過(guò)程,并且減少了與管理壓縮數(shù)據(jù)相關(guān)的支持硬件以及性能開(kāi)銷的量。此外,在符合本發(fā)明的某些實(shí)施例中,頁(yè)面屬性可以包括級(jí)別屬性,其可以用于將頁(yè)面配置為在存儲(chǔ)系統(tǒng)的各種級(jí)別中(例如,在主存儲(chǔ)器或在像L1、L2或L3的較高級(jí)的高速緩存中)被選擇性地加密和/或壓縮。因而,例如,某些頁(yè)面可以被在L2或L3高速緩存中加密/壓縮,同時(shí)其它頁(yè)面可以被在存儲(chǔ)器中加密/壓縮,但是被在L2或L3高速緩存中解密/解壓。這提供了更大的靈活性并且可以提高性能,特別是當(dāng)期望加速針對(duì)保存在較高級(jí)的存儲(chǔ)系統(tǒng)中的頻繁訪問(wèn)的數(shù)據(jù)的存儲(chǔ)訪問(wèn)性能時(shí)。此處實(shí)施的壓縮可以有效地增加高速緩存的大小而不需要相應(yīng)增加存儲(chǔ)器帶寬,以及具有其它益處。例如,圖5示出符合本發(fā)明的適合于實(shí)施基于存儲(chǔ)地址轉(zhuǎn)換的數(shù)據(jù)加密/壓縮的示例性數(shù)據(jù)處理系統(tǒng)200。系統(tǒng)200被例示為具有存儲(chǔ)器總線202,其將多個(gè)處理核204與存儲(chǔ)器管理單元(MMU)206連接到一起。盡管圖5中僅示出兩個(gè)處理核204,但將認(rèn)識(shí)到的是,在本發(fā)明的不同實(shí)施例中可以采用任何數(shù)目的處理核。每個(gè)處理核204是包括多個(gè)(Nf)硬件線程208、以及有效至真實(shí)轉(zhuǎn)換(ERAT)表210和集成的LI高速緩存212的SMT核。如本領(lǐng)域所理解的,ERAT表210用作用于存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)(例如,PTE)的高速緩存,并且通常與較低級(jí)數(shù)據(jù)結(jié)構(gòu)(例如,布置在MMU 206中或可被MMU 206訪問(wèn)的旁路轉(zhuǎn)換緩沖(TLB)214)相關(guān)聯(lián)。TLB 214也可以用作用于較大的頁(yè)面表的高速緩存,較大的頁(yè)面表通常被存儲(chǔ)在存儲(chǔ)器216中。存儲(chǔ)系統(tǒng)可以包括多級(jí)存儲(chǔ)器和高速緩存,并且這樣,示出的數(shù)據(jù)處理系統(tǒng)200包括連接到MMU 206并且由處理核204共享的L2高速緩存218,然而,將認(rèn)識(shí)到的是,在本發(fā)明的其它實(shí)施例中可以采用各種替代存儲(chǔ)器架構(gòu)。例如,可以使用例如L3高速緩存的附加級(jí)別的高速緩存存儲(chǔ)器,并且在某些實(shí)施例中(例如,在基于非一致存儲(chǔ)器訪問(wèn)(NUMA)的數(shù)據(jù)處理系統(tǒng)中),可以將存儲(chǔ)器216分區(qū)。此外,例如,可以對(duì)特定處理核專用附加的高速緩存級(jí)別,使得每個(gè)處理核包括專用的L2高速緩存,其可以被集成到處理核或者連接在處理核和存儲(chǔ)器總線之間。在某些實(shí)施例中,L2或L3高速緩存可以直接連接到存儲(chǔ)器總線,而不是經(jīng)由專用接口連接到MMU。此外,將會(huì)認(rèn)識(shí)到的是,圖5中示出的組件可以被集成到同一集成電路器件、或芯片上,或者可以被布置在多個(gè)這樣的芯片中。例如,在一個(gè)實(shí)施例中,每個(gè)處理核被實(shí)施為NOC布置中的IP塊,并且總線202、MMU 206和L2高速緩存218被集成到同一芯片上作為SOC布置中的處理核。在其它實(shí)施例中,總線202、MMU 206、L2高速緩存218、和/或存儲(chǔ)器216各自可以被集成到同一芯片上或來(lái)自所述處理核的不同芯片中,并且在某些實(shí)例中處理核可以被布置在獨(dú)立芯片上。鑒于可以采用本發(fā)明的各種已知的處理器和存儲(chǔ)器架構(gòu),因此將認(rèn)識(shí)到的是,本發(fā)明不限于此處所示的特定存儲(chǔ)器架構(gòu)。為了實(shí)施符合本發(fā)明的基于存儲(chǔ)地址轉(zhuǎn)換的數(shù)據(jù)加密/壓縮,數(shù)據(jù)處理系統(tǒng)200包括加密引擎220和壓縮引擎222,其連接到總線202并因此可被訪問(wèn)用于加密/解密和壓縮/解壓在總線202上通信的數(shù)據(jù)。盡管引擎220和222被分別稱為加密和壓縮引擎,但將認(rèn)識(shí)到的是,引擎220通常包括加密和解密邏輯二者,并且引擎222通常包括壓縮和解壓邏輯二者,而不論此處所使用的名稱。將認(rèn)識(shí)到的是,在某些實(shí)施例中,可以在獨(dú)立的“引擎”中布置加密和解密邏輯,也可以在獨(dú)立的“引擎”中布置壓縮和解壓邏輯。然而,為了本發(fā)明的目的,加密引擎可以被認(rèn)為是能夠執(zhí)行數(shù)據(jù)的加密和/或解密的硬件邏輯的任何集合,并且壓縮引擎可以被認(rèn)為是能夠執(zhí)行數(shù)據(jù)的壓縮和/或解壓的硬件邏輯的任何集合。為了便于討論本發(fā)明的目的,數(shù)據(jù)處理系統(tǒng)200被描述為包括加密和壓縮功能兩者。然而,在許多實(shí)施例中,可能期望僅支持加密或僅支持壓縮功能,并且這樣,符合本發(fā)明的實(shí)施例不需要支持?jǐn)?shù)據(jù)加密和數(shù)據(jù)壓縮二者。因而,在某些實(shí)施例中可以省略引擎220、222中的任一,并且在某些實(shí)施例中,用于指示存儲(chǔ)頁(yè)面是否被加密或壓縮的頁(yè)面屬性可以僅包括關(guān)于加密的屬性或關(guān)于壓縮的屬性。此外,盡管示出的引擎220、222附接到總線202,但引擎220、222中的任何一個(gè)或這二者可以連接到MMU206或集成于其中。如上所述,基于存儲(chǔ)地址轉(zhuǎn)換的數(shù)據(jù)加密/壓縮可以通過(guò)將一個(gè)或多個(gè)頁(yè)面屬性添加到例如頁(yè)表?xiàng)l目(PTE)的存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)而實(shí)施。例如,圖6示出能夠在ERAT210中保持并擴(kuò)展為包括各種頁(yè)面屬性232-238以支持基于存儲(chǔ)地址轉(zhuǎn)換的數(shù)據(jù)加密/壓縮的示例性PTE 230。對(duì)于加密,可以使用加密屬性232 (例如,I比特標(biāo)志)來(lái)指示頁(yè)面中的數(shù)據(jù)是否被加密。同樣地,對(duì)于壓縮,可以使用壓縮屬性234 (例如,I比特標(biāo)志)來(lái)指示頁(yè)面中的數(shù)據(jù)是否被壓縮。此外,在某些實(shí)施例中,可能期望選擇性地指定數(shù)據(jù)在頁(yè)面中被加密和/或壓縮的級(jí)別,使得將在存儲(chǔ)器架構(gòu)中的任何更高級(jí)別(或者可選地,以指定級(jí)別)處解密/解壓數(shù)據(jù),并且將在存儲(chǔ)器架構(gòu)中的指定級(jí)別和任何更低級(jí)別處加密/壓縮數(shù)據(jù)。例如,可以提供2比特級(jí)別屬性(例如,用于加密的級(jí)別屬性236和用于壓縮的級(jí)別屬性238),以編碼到四個(gè)存儲(chǔ)器級(jí)別,例如,LI= “00”、12= “01”、L3= “10”以及存儲(chǔ)器=“11”。替代地,每個(gè)存儲(chǔ)器級(jí)別可以具有與其相關(guān)聯(lián)的獨(dú)立I比特標(biāo)識(shí)。此外,在某些實(shí)施例中,加密和/或壓縮屬性232、234可以與相關(guān)級(jí)別屬性聯(lián)合。例如,如果不支持L3高速緩存,則在2比特級(jí)別屬性中編碼的四個(gè)狀態(tài)中的一個(gè)(例如,“00”)可以表示該頁(yè)面是未加密或未壓縮的。類似于傳統(tǒng)PTE,PTE 230也存儲(chǔ)附加數(shù)據(jù)。例如,可以在PTE中包括附加頁(yè)面屬性240,諸如指示頁(yè)面是否是可緩存的、被保護(hù)的(guarded)、或者只讀的,是否需要存儲(chǔ)器一致性或?qū)懲?write-through), endian模式比特等的屬性;也可以包括分配到用戶模式數(shù)據(jù)242的一個(gè)或多個(gè)比特,用于軟件一致性或?qū)Ω咚倬彺骀i定選項(xiàng)的控制。提供訪問(wèn)控制頁(yè)面屬性244,以例如通過(guò)指定與被授權(quán)訪問(wèn)該頁(yè)面的處理(process)相關(guān)的處理標(biāo)識(shí)符(PID)、或者匹配和/或掩蔽(mask)數(shù)據(jù)的組合(選擇性地)、或者適合于指定被授權(quán)訪問(wèn)存儲(chǔ)頁(yè)面的處理的集合的其它數(shù)據(jù),來(lái)控制允許什么處理訪問(wèn)存儲(chǔ)頁(yè)面。例如,訪問(wèn)控制屬性可以從PID掩蔽掉的一個(gè)或多個(gè)LSB,使得與訪問(wèn)控制屬性中的MSB匹配的任何PID將被允許訪問(wèn)相應(yīng)的存儲(chǔ)頁(yè)面。ERAT頁(yè)面屬性246為PTE存儲(chǔ)有效至真實(shí)轉(zhuǎn)換數(shù)據(jù),其通常包括與被用于訪問(wèn)該P(yáng)TE的有效/虛擬地址相應(yīng)的真實(shí)地址、以及該有效/虛擬地址,其也被用于經(jīng)由CAM功能索引ERAT。將認(rèn)識(shí)到的是,PTE 230的格式也可以被用在位于存儲(chǔ)器架構(gòu)中的TLB 214和任何其它頁(yè)面表中。替代地,存儲(chǔ)在存儲(chǔ)器架構(gòu)的不同級(jí)別中的PTE可以基于存儲(chǔ)器架構(gòu)的該特定級(jí)別的需要包括其它數(shù)據(jù)或者省略某些數(shù)據(jù)。此外,將認(rèn)識(shí)到的是,盡管此處討論的實(shí)施例采用術(shù)語(yǔ)ERAT和TLB來(lái)描述將存儲(chǔ)地址轉(zhuǎn)換信息存儲(chǔ)或高速緩存在處理器或處理核中的各種硬件邏輯,但這種硬件邏輯可以被稱為其它命名,因此本發(fā)明不限于與ERAT和TLB —起使用。此外,可以使用其它PTE格式,并且因此本發(fā)明不限于圖6中示出的特定PTE格式。通過(guò)在PTE中存儲(chǔ)關(guān)于加密和關(guān)于壓縮的屬性,頁(yè)面是否被加密和/或壓縮的判定以及這樣的數(shù)據(jù)的實(shí)際解密和解壓被限制到僅那些被數(shù)據(jù)處理系統(tǒng)中的否則控制到頁(yè)面本身的訪問(wèn)的功能授權(quán)的處理,以及代表其執(zhí)行的硬件線程。因此,可以將基于頁(yè)面的訪問(wèn)控制擴(kuò)展為支持?jǐn)?shù)據(jù)處理系統(tǒng)中存儲(chǔ)的加密和/或壓縮數(shù)據(jù)的管理,所述基于頁(yè)面的訪問(wèn)控制傳統(tǒng)上被用于阻止數(shù)據(jù)處理系統(tǒng)中執(zhí)行的處理訪問(wèn)或破壞位于數(shù)據(jù)處理系統(tǒng)中的其它處理的存儲(chǔ)。如在本領(lǐng)域中公知的,例如運(yùn)行在固件、內(nèi)核(kerne I)、分區(qū)管理器或操作系統(tǒng)中的系統(tǒng)管理程序或其它主管級(jí)軟件傳統(tǒng)地被用于將存儲(chǔ)頁(yè)面分配到特定處理并且處理訪問(wèn)違規(guī)(violation),否則如果處理試圖訪問(wèn)未被授權(quán)訪問(wèn)的存儲(chǔ)頁(yè)面,則可能發(fā)生所述訪問(wèn)違規(guī)。這樣的主管級(jí)軟件例如可以使用數(shù)據(jù)處理系統(tǒng)中的用于高速緩存來(lái)自TLB 214和ERAT 210中的頁(yè)面表的PTE的專用硬件管理用于數(shù)據(jù)處理系統(tǒng)的整個(gè)頁(yè)面表。符合本發(fā)明的實(shí)施例因此能夠充分利用現(xiàn)有的主管級(jí)訪問(wèn)控制來(lái)限制對(duì)加密和/或壓縮數(shù)據(jù)的訪問(wèn)。例如,在許多實(shí)例中,處理可能甚至不能確定存儲(chǔ)頁(yè)面是否被加密或壓縮,因?yàn)閷?duì)PTE的訪問(wèn)被主管級(jí)軟件限制。因而,例如,如果一個(gè)處理核上執(zhí)行的處理都沒(méi)有被授權(quán)訪問(wèn)已經(jīng)被分配到另一處理核上的處理的存儲(chǔ)頁(yè)面,則前一個(gè)處理核中的處理將甚至都不被允許從該存儲(chǔ)頁(yè)面檢索(retrieve)數(shù)據(jù),即使以加密或壓縮的形式。例如,為了示出符合本發(fā)明的采用基于存儲(chǔ)地址轉(zhuǎn)換的數(shù)據(jù)加密/壓縮的示例性存儲(chǔ)器訪問(wèn)的目的,圖7示出示例性數(shù)據(jù)處理系統(tǒng)250,并且特別地,示出其中的示例性處理核。(例如在處理核的加載/存儲(chǔ)單元中提供的)地址生成邏輯252可以例如響應(yīng)于由處理核中執(zhí)行的硬件線程(未示出)所執(zhí)行的指令,生成存儲(chǔ)器訪問(wèn)請(qǐng)求以訪問(wèn)來(lái)自特定存儲(chǔ)頁(yè)面的數(shù)據(jù)(例如,高速緩存線(cache line))。將存儲(chǔ)器訪問(wèn)請(qǐng)求并行地發(fā)布到ERAT253和LI高速緩存254 二者,前者執(zhí)行地址轉(zhuǎn)換操作、以及確定存儲(chǔ)器訪問(wèn)請(qǐng)求對(duì)于與請(qǐng)求硬件線程相關(guān)的PID是否被授權(quán),并且后者確定由存儲(chǔ)器訪問(wèn)請(qǐng)求指定的高速緩存線當(dāng)前是否被高速緩存在LI高速緩存中。在圖7所示的實(shí)施例中,ERAT 253被指派“dERAT”并且LI高速緩存254被指派“dCache”,以指示這些組件與數(shù)據(jù)訪問(wèn)相關(guān),并且指示可以提供相應(yīng)的iERAT和iCache組件以處理指令訪問(wèn)(未示出)。ERAT 253響應(yīng)于存儲(chǔ)器訪問(wèn)請(qǐng)求而訪問(wèn)由存儲(chǔ)器訪問(wèn)請(qǐng)求指定的存儲(chǔ)頁(yè)面的PTE 256。系統(tǒng)管理程序保護(hù)異常處理程序(handler)邏輯258將用于存儲(chǔ)器訪問(wèn)請(qǐng)求的PID與PTE中的訪問(wèn)控制比特進(jìn)行比較,并且如果由于PID未被授權(quán)訪問(wèn)該存儲(chǔ)頁(yè)面而導(dǎo)致發(fā)生訪問(wèn)違規(guī),則邏輯258通過(guò)將軟件異常拋到主管級(jí)軟件而發(fā)出中斷信號(hào),如260所表示的。在存儲(chǔ)器訪問(wèn)請(qǐng)求被授權(quán)但在LI高速緩存上發(fā)生未命中的事件中,存儲(chǔ)器訪問(wèn)請(qǐng)求被轉(zhuǎn)發(fā)到加載/未命中隊(duì)列262,其將該請(qǐng)求發(fā)布到例如L2高速緩存264的更低級(jí)存儲(chǔ)器。圖8更詳細(xì)地示出可以響應(yīng)于代表數(shù)據(jù)處理系統(tǒng)250中的處理的硬件線程發(fā)布的存儲(chǔ)器訪問(wèn)請(qǐng)求而執(zhí)行的操作序列270。例如處理程序邏輯258的保護(hù)邏輯訪問(wèn)ERAT 253,以確定PTE 256是否指示請(qǐng)求線程有權(quán)訪問(wèn)與存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的頁(yè)面(塊272)。如果被授權(quán)(塊274),則進(jìn)行請(qǐng)求是否能夠由LI高速緩存254實(shí)現(xiàn)的判定(塊276)。如果存儲(chǔ)器訪問(wèn)請(qǐng)求在LI高速緩存254上命中,則請(qǐng)求由LI高速緩存254實(shí)現(xiàn)(塊278),并且完成存儲(chǔ)器訪問(wèn)請(qǐng)求的處理。然而,如果請(qǐng)求在LI高速緩存254上未命中,則請(qǐng)求被路由到加載/未命中隊(duì)列262,以在隊(duì)列中添加對(duì)應(yīng)于該請(qǐng)求的條目。此外,可能期望在條目中設(shè)置指示符,以指示請(qǐng)求與被加密和/或壓縮的數(shù)據(jù)相關(guān)聯(lián)。接著,在將請(qǐng)求發(fā)布到更低級(jí)存儲(chǔ)器(例如通過(guò)存儲(chǔ)器總線發(fā)布到L2高速緩存或更低級(jí)存儲(chǔ)器)之前,在塊282中進(jìn)行頁(yè)面是否被指示為被加密和/或壓縮的判定,如從PTE 256中的頁(yè)面屬性所確定。如果不是,則塊284中對(duì)于存儲(chǔ)器訪問(wèn)請(qǐng)求發(fā)布總線事務(wù)。另一方面,如果該頁(yè)面被加密和/或壓縮,則在塊286中與來(lái)自PTE 256的附加的關(guān)于加密/壓縮的邊帶(sideband)數(shù)據(jù)一起發(fā)布總線事務(wù)。關(guān)于加密/壓縮的邊帶數(shù)據(jù)可以以符合本發(fā)明的多種方式,通過(guò)存儲(chǔ)器總線進(jìn)行通信。例如,可以在總線架構(gòu)中提供附加控制線,以指定總線事務(wù)是否與加密和/或壓縮數(shù)據(jù)相關(guān)聯(lián),使得可以基于一個(gè)或多個(gè)控制線的狀態(tài)確定數(shù)據(jù)是否被加密或壓縮。替代地,事務(wù)類型可以與加密和/或壓縮數(shù)據(jù)相關(guān),使得可以簡(jiǎn)單地基于總線事務(wù)的事務(wù)類型而做出判定。特別地,在后者的實(shí)例中,將不需要加密引擎或壓縮引擎?zhèn)商?snoop)特定存儲(chǔ)范圍,而是可以僅僅尋找某些事務(wù)類型。返回到塊274,在請(qǐng)求線程未被授權(quán)訪問(wèn)所請(qǐng)求的頁(yè)面的情況中,控制轉(zhuǎn)到塊288以處理訪問(wèn)違規(guī)。與傳統(tǒng)訪問(wèn)違規(guī)處理不同,在某些實(shí)施例中可能期望對(duì)于與加密數(shù)據(jù)相關(guān)的訪問(wèn)違規(guī)執(zhí)行替代或增強(qiáng)的操作,以反映與試圖訪問(wèn)安全數(shù)據(jù)的未授權(quán)訪問(wèn)相關(guān)聯(lián)的額外考慮。這樣,在檢測(cè)到訪問(wèn)違規(guī)時(shí),塊288通過(guò)訪問(wèn)頁(yè)面的關(guān)于加密的頁(yè)面屬性來(lái)確定頁(yè)面是否被加密。如果未被加密,則斷言(assert)軟件異常(塊290)并且以傳統(tǒng)方式處理。另一方面,如果頁(yè)面被加密,則控制轉(zhuǎn)到塊292以確定是否關(guān)閉數(shù)據(jù)處理系統(tǒng)。在某些高安全性實(shí)施例中,例如,在數(shù)據(jù)處理系統(tǒng)中可能保持高度機(jī)密信息的情況中,可能期望在潛在攻擊的事件中立即關(guān)閉系統(tǒng)。這樣,可能期望提供訪問(wèn)違規(guī)導(dǎo)致系統(tǒng)立即關(guān)閉的可配置模式。這樣,如果可配置模式被設(shè)置,則塊292將控制轉(zhuǎn)到塊294以關(guān)閉系統(tǒng)。否則,塊292將控制轉(zhuǎn)到塊296,以類似于傳統(tǒng)異常地?cái)嘌攒浖惓?,除了具有指示正被發(fā)出異常信號(hào)的頁(yè)面被加密的指示符。例如內(nèi)核或其它管理級(jí)程序的軟件可以接著執(zhí)行增強(qiáng)的異常處理,諸如記錄訪問(wèn)加密頁(yè)面的嘗試、通知中央處理器、在網(wǎng)絡(luò)上將消息發(fā)送到外部設(shè)備、擦除存儲(chǔ)器和狀態(tài)內(nèi)容、或者基于數(shù)據(jù)和/或數(shù)據(jù)處理系統(tǒng)的安全性要求所期望的任何其它操作。圖9和圖10接著分別示出與執(zhí)行上面連同圖8所討論的響應(yīng)于存儲(chǔ)器訪問(wèn)請(qǐng)求而發(fā)布的讀取和寫入總線事務(wù)相關(guān)的操作序列。例如,圖9示出用于處理讀取總線事務(wù)的操作序列300。讀取總線事務(wù)最初導(dǎo)致通過(guò)總線(例如,如果數(shù)據(jù)已經(jīng)被高速緩存,則通過(guò)L2或L3高速緩存,或者如果數(shù)據(jù)未被高速緩存則從存儲(chǔ)器)實(shí)現(xiàn)請(qǐng)求(塊302)。接著,例如通過(guò)針對(duì)與加密或壓縮事務(wù)相關(guān)的事務(wù)類型、或者總線上被斷言的控制線而分別偵探總線的加密和壓縮引擎,進(jìn)行事務(wù)是否指示數(shù)據(jù)被加密(塊304)或被壓縮(塊306)的判定。如果數(shù)據(jù)未被加密或壓縮,則數(shù)據(jù)以傳統(tǒng)方式返回(塊308)。然而,如果數(shù)據(jù)被加密,則在將數(shù)據(jù)返回到請(qǐng)求處理核之前將返回?cái)?shù)據(jù)流化通過(guò)加密引擎(例如,圖5的加密引擎220),以將數(shù)據(jù)解密(塊310)。同樣地,如果數(shù)據(jù)被壓縮,則在數(shù)據(jù)返回到請(qǐng)求處理核之前將返回?cái)?shù)據(jù)流化(塊312)通過(guò)壓縮引擎(例如,圖5的壓縮引擎222)。如圖10中所示,經(jīng)由操作序列320以類似于讀取總線事務(wù)的方式處理寫入總線事務(wù)。寫入總線事務(wù)包括要被寫入到較低級(jí)存儲(chǔ)器的高速緩存線;然而,在例如通過(guò)L2或L3高速緩存或主存儲(chǔ)器將數(shù)據(jù)轉(zhuǎn)發(fā)到適當(dāng)目的地之前,例如通過(guò)針對(duì)與加密或壓縮事務(wù)相關(guān)聯(lián)的事務(wù)類型、或者總線上被斷言的控制線而分別偵探總線的加密和壓縮引擎,進(jìn)行事務(wù)是否指示數(shù)據(jù)被加密(塊322)或被壓縮(塊324)的判定。如果數(shù)據(jù)未被加密或壓縮,則數(shù)據(jù)以傳統(tǒng)方式被寫入到適當(dāng)目的地(塊326)。然而,如果數(shù)據(jù)未被加密,則在寫入數(shù)據(jù)之前首先將寫入數(shù)據(jù)流化通過(guò)加密引擎(例如圖5的加密引擎220),以加密數(shù)據(jù)(塊328)。同樣地,如果數(shù)據(jù)被壓縮,則在寫入數(shù)據(jù)之前首先將寫入數(shù)據(jù)流化(塊330)通過(guò)壓縮引擎(例如圖5的壓縮引擎222)。圖11和圖12接著分別示出與執(zhí)行上面連同圖8所討論的響應(yīng)于存儲(chǔ)器訪問(wèn)請(qǐng)求而發(fā)布的讀取和寫入總線事務(wù)相關(guān)的操作序列,但是針對(duì)在PTE中支持級(jí)別屬性以控制存儲(chǔ)頁(yè)面被在多級(jí)存儲(chǔ)器架構(gòu)中的哪個(gè)級(jí)別中加密/壓縮的實(shí)施方式。例如,圖11示出用于處理讀取總線事務(wù)的操作序列350。讀取總線事務(wù)最初導(dǎo)致通過(guò)總線(例如,如果數(shù)據(jù)已經(jīng)被高速緩存,則通過(guò)L2或L3高速緩存,或者如果數(shù)據(jù)未被高速緩存則從存儲(chǔ)器)實(shí)現(xiàn)請(qǐng)求(塊352)。接著,例如通過(guò)針對(duì)與加密或壓縮事務(wù)相關(guān)的事務(wù)類型、或者總線上被斷言的控制線而分別偵探總線的加密和壓縮引擎,進(jìn)行事務(wù)是否指示數(shù)據(jù)在數(shù)據(jù)來(lái)源的存儲(chǔ)器架構(gòu)級(jí)別上被加密(塊354)或被壓縮(塊356)的判定。在所示實(shí)施例中,如果與所請(qǐng)求的數(shù)據(jù)相關(guān)的級(jí)別屬性等于或高于數(shù)據(jù)來(lái)源的存儲(chǔ)器級(jí)別,則所請(qǐng)求的數(shù)據(jù)將被加密或壓縮(例如,如果級(jí)別屬性指示L2高速緩存,則將在L2高速緩存、在任意L3或更低級(jí)高速緩存中、以及主存儲(chǔ)器中加密/壓縮數(shù)據(jù))。如果數(shù)據(jù)未被在數(shù)據(jù)來(lái)源的級(jí)別上加密或壓縮,則數(shù)據(jù)以傳統(tǒng)方式返回(塊358)。然而,如果數(shù)據(jù)被在來(lái)源級(jí)別上加密,則在將數(shù)據(jù)返回到請(qǐng)求處理核之前將返回?cái)?shù)據(jù)流化通過(guò)加密引擎(例如圖5的加密引擎220),以解密數(shù)據(jù)。同樣地,如果數(shù)據(jù)被在來(lái)源級(jí)別上壓縮,則在將數(shù)據(jù)返回到請(qǐng)求處理核之前將返回?cái)?shù)據(jù)流化(塊362)通過(guò)壓縮引擎(例如圖5的壓縮引擎222)。如圖12所示,以與讀出總線事務(wù)類似的方式,經(jīng)由操作序列370處理寫入總線事務(wù)。寫入總線事務(wù)包括要被寫入到較低級(jí)存儲(chǔ)器中的高速緩存線;然而,在(例如通過(guò)L2或L3高速緩存或主存儲(chǔ)器)將數(shù)據(jù)轉(zhuǎn)發(fā)到適當(dāng)目的地之前,例如通過(guò)針對(duì)與加密或壓縮事務(wù)相關(guān)的事務(wù)類型、或者總線上被斷言的控制線而分別偵探總線的加密和壓縮引擎,進(jìn)行事務(wù)是否指示數(shù)據(jù)被在事務(wù)的目標(biāo)級(jí)別上加密(塊372)或被壓縮(塊374)的判定。如果數(shù)據(jù)未被在目標(biāo)級(jí)別上加密或壓縮,則將數(shù)據(jù)以傳統(tǒng)方式寫入到適當(dāng)目的地(塊376)。然而,如果數(shù)據(jù)被在目標(biāo)級(jí)別上加密,則在寫入數(shù)據(jù)之前首先寫入數(shù)據(jù)流化通過(guò)加密引擎(例如圖5的加密引擎220),以加密數(shù)據(jù)(塊378)。同樣地,如果數(shù)據(jù)被在目標(biāo)級(jí)別上壓縮,則在寫入數(shù)據(jù)之前首先將寫入數(shù)據(jù)流化(塊380)通過(guò)壓縮引擎(例如圖5的壓縮引擎222)。因而,在圖11-12中所示實(shí)施例中,通過(guò)可能對(duì)不同存儲(chǔ)頁(yè)面指定不同選擇的級(jí)另IJ,將僅在存儲(chǔ)器分級(jí)結(jié)構(gòu)(hierarchy)中的選擇的級(jí)別上加密和/或壓縮數(shù)據(jù)。因此,對(duì)于不同應(yīng)用可以提供高度的靈活性。然而,將認(rèn)識(shí)到的是,不需要在所有實(shí)施方式中實(shí)施該級(jí)別屬性,并且此外,在支持加密和壓縮兩個(gè)功能的實(shí)施方式中不需要對(duì)加密和壓縮二者都支持級(jí)別屬性??梢栽诜媳景l(fā)明的某些實(shí)施例中支持附加存儲(chǔ)事務(wù)。例如,每當(dāng)更新加密或壓縮的高速緩存線中的數(shù)據(jù)時(shí),可以使用讀取-修改-寫入事務(wù)(read modify writetransaction)來(lái)加密和/或重新壓縮整個(gè)高速緩存線。集成加密引擎如上所述,在某些實(shí)施例中,加密引擎可以被集成到處理核中,以在處理核內(nèi)有效地提供安全高速緩存,因而在整個(gè)存儲(chǔ)系統(tǒng)中提供對(duì)安全數(shù)據(jù)的進(jìn)一步保護(hù)。可以使用上述關(guān)于加密的頁(yè)面屬性來(lái)訪問(wèn)該安全高速緩存,以阻止安全數(shù)據(jù)在任何時(shí)候以未加密形式離開(kāi)處理核,從而該安全數(shù)據(jù)在位于處理核外部的任何時(shí)間都被加密。集成加密引擎通常被配置為執(zhí)行諸如加密和解密的加密操作。例如,在一個(gè)實(shí)施例中,可以與標(biāo)準(zhǔn)(非安全)LI高速緩存一起提供獨(dú)立的安全LI高速緩存,使得安全LI高速緩存可以與標(biāo)準(zhǔn)高速緩存并行地被訪問(wèn),并在訪問(wèn)后被多路復(fù)用到流水線。在安全高速緩存中未命中時(shí),可以將加載發(fā)送到存儲(chǔ)系統(tǒng)的下一級(jí)別,例如L2高速緩存??梢栽诩虞d未命中隊(duì)列中保持關(guān)于加密的頁(yè)面屬性,使得當(dāng)返回加密數(shù)據(jù)時(shí)其將通過(guò)用于解密的集成加密引擎轉(zhuǎn)發(fā)到安全高速緩存,因而確保僅被授權(quán)的安全線程可以訪問(wèn)未加密數(shù)據(jù)。然而,在另一個(gè)實(shí)施例中,可以不使用獨(dú)立的安全LI高速緩存,由此可以使用集成加密引擎來(lái)基于與該數(shù)據(jù)相關(guān)的關(guān)于加密的頁(yè)面屬性選擇性地加密和解密存儲(chǔ)在LI高速緩存中的數(shù)據(jù)。例如,為了示出采用符合本發(fā)明的集成加密引擎的示例性存儲(chǔ)器訪問(wèn)的目的,圖13示出示例性數(shù)據(jù)處理系統(tǒng)400,并且特別地,示出其中的示例性處理核。例如,響應(yīng)于由處理核中執(zhí)行的硬件線程(未示出)所執(zhí)行的指令,例如在處理核的加載/存儲(chǔ)單元中提供的地址生成邏輯402可以生成存儲(chǔ)器訪問(wèn)請(qǐng)求,以訪問(wèn)來(lái)自特定存儲(chǔ)頁(yè)面的數(shù)據(jù)(例如高速緩存線)。存儲(chǔ)器訪問(wèn)請(qǐng)求被并行地發(fā)布到ERAT 406和LI高速緩存404 二者,前者確定對(duì)于與請(qǐng)求硬件線程相關(guān)的PID,存儲(chǔ)器訪問(wèn)請(qǐng)求是否被授權(quán),并且后者確定由存儲(chǔ)器訪問(wèn)請(qǐng)求指定的高速緩存線當(dāng)前是否被高速緩存在LI高速緩存中。在圖13所示的實(shí)施例中,ERAT 406被指派“dERAT”并且LI高速緩存404被指派“dCache”,以指示這些組件與數(shù)據(jù)訪問(wèn)相關(guān),并且指示可以提供相應(yīng)的iERAT和iCache組件以處理指令訪問(wèn)(未示出)。ERAT 406響應(yīng)于存儲(chǔ)器訪問(wèn)請(qǐng)求而訪問(wèn)用于由存儲(chǔ)器訪問(wèn)請(qǐng)求指定的存儲(chǔ)頁(yè)面的PTE 408。系統(tǒng)管理程序保護(hù)異常處理程序邏輯410將用于存儲(chǔ)器訪問(wèn)請(qǐng)求的PID與PTE中的訪問(wèn)控制比特進(jìn)行比較,并且如果由于PID未被授權(quán)訪問(wèn)該存儲(chǔ)頁(yè)面而導(dǎo)致發(fā)生訪問(wèn)違規(guī),則邏輯410通過(guò)將軟件異常拋到主管級(jí)軟件而發(fā)出中斷信號(hào),如412所表示的。在存儲(chǔ)器訪問(wèn)請(qǐng)求被授權(quán)但在LI高速緩存上發(fā)生未命中的情況中,存儲(chǔ)器訪問(wèn)請(qǐng)求被轉(zhuǎn)發(fā)到加載/未命中隊(duì)列414,其將請(qǐng)求發(fā)布到例如L2高速緩存416的較低級(jí)存儲(chǔ)器。此外,LI高速緩存404包括與其連接并集成到處理核中的加密引擎418。例如,可以使用加密引擎418來(lái)加密被寫出處理核的數(shù)據(jù)(例如來(lái)自LI高速緩存404),或者解密被處理核使用并從較低級(jí)存儲(chǔ)器或者從LI高速緩存接收的數(shù)據(jù)。例如,加密引擎418可以被配置為經(jīng)由總線422將解密的數(shù)據(jù)流化到寄存器文件420,或者將解密的數(shù)據(jù)流化回到LI高速緩存404。此外,加密引擎418可以連接到旁路網(wǎng)絡(luò)(bypass network) 424,以繞過(guò)寄存器文件420并將解密的數(shù)據(jù)直接提供到執(zhí)行單元(未示出)。利用圖13中所示的配置,可以實(shí)施許多場(chǎng)景。例如,可以使用LI高速緩存404以存儲(chǔ)加密和未加密的數(shù)據(jù)二者。替代地,LI高速緩存404可以是安全高速緩存,獨(dú)立的LI高速緩存(未示出)被用于存儲(chǔ)非安全數(shù)據(jù)。此外,在某些實(shí)施方式中,LI高速緩存404可以存儲(chǔ)解密的數(shù)據(jù),使得加密引擎418被用于解密從較低級(jí)存儲(chǔ)器所接收的數(shù)據(jù)、以及加密被寫出到較低級(jí)存儲(chǔ)器的數(shù)據(jù)。在替代方案中,特別是對(duì)于安全性敏感的應(yīng)用,可能期望在LI高速緩存404中以加密形式保持所有安全數(shù)據(jù),由此可以使用加密引擎418來(lái)將從LI高速緩存404檢索的數(shù)據(jù)解密到寄存器文件420中,并且將從寄存器文件420寫回到LI高速緩存404的數(shù)據(jù)加密。在某些實(shí)施例中,可能期望在與針對(duì)存儲(chǔ)器的安全頁(yè)面的存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的加載/未命中隊(duì)列中的條目中聯(lián)合地設(shè)置指示符或?qū)傩?。通過(guò)這樣做,當(dāng)返回所請(qǐng)求的數(shù)據(jù)時(shí),可以訪問(wèn)該指示符以確定數(shù)據(jù)被加密。這樣,例如如果在處理核中提供兩個(gè)獨(dú)立的安全和非安全LI高速緩存,則可以使用該指示符來(lái)將返回?cái)?shù)據(jù)路由到適當(dāng)?shù)腖I高速緩存。替代地,如果在LI高速緩存中以未加密格式存儲(chǔ)安全數(shù)據(jù),則可以使用該指針來(lái)導(dǎo)致在將返回?cái)?shù)據(jù)存儲(chǔ)在LI高速緩存中之前將返回?cái)?shù)據(jù)流化通過(guò)加密引擎。接著,轉(zhuǎn)到圖14,如上所述,在某些實(shí)例中,可能期望在處理核中采用獨(dú)立的安全和非安全LI高速緩存,例如使得非安全數(shù)據(jù)不經(jīng)受與加密和解密數(shù)據(jù)相關(guān)的性能開(kāi)銷。例如,處理器450合并了與加載/存儲(chǔ)單元454連接的加密引擎452。加載/存儲(chǔ)單元454中的ERAT456將關(guān)于加密的以及其它的頁(yè)面屬性提供給非安全LI高速緩存458和安全LI高速緩存460 二者。每個(gè)LI高速緩存458、460可以具有獨(dú)立的加載/未命中隊(duì)列462、464以及連接到存儲(chǔ)器總線470的總線連接466、468,或者替代地可以共享同一加載/未命中隊(duì)列和總線連接。集成加密引擎的實(shí)施方式可以在不同實(shí)施例中變化。例如,可以在某些實(shí)施例中將集成加密引擎實(shí)施為諸如上面連同圖4所討論的AXU。然而,本發(fā)明不限于這樣的實(shí)施方式。結(jié)論符合本發(fā)明的實(shí)施例相對(duì)于傳統(tǒng)設(shè)計(jì)提供許多優(yōu)勢(shì)。例如,頁(yè)面屬性的使用通常消除開(kāi)銷,所述開(kāi)銷否則是存儲(chǔ)器管理單元用于設(shè)置和管理加密或壓縮數(shù)據(jù)的存儲(chǔ)器區(qū)域或范圍所需的開(kāi)銷。此外,在多個(gè)處理核被連接到同一總線的情況中,其它處理核將通常不能訪問(wèn)用于另一處理核的加密或壓縮數(shù)據(jù),因?yàn)樵诿總€(gè)處理核內(nèi)保持用于加密或壓縮數(shù)據(jù)的頁(yè)面屬性,并且加密或壓縮數(shù)據(jù)被限制為僅由授權(quán)處理訪問(wèn)。也可以做出符合本發(fā)明的各種修改。例如,如同集成加密引擎,可能期望在處理核內(nèi)提供集成壓縮引擎,或者期望提供能夠采用頁(yè)面屬性以基于其選擇性地處理數(shù)據(jù)的其它類型的加速器引擎??梢栽诓黄x本發(fā)明的精神和范圍的情況下對(duì)所公開(kāi)的實(shí)施例做出其它修改。因此,本發(fā)明在于所附權(quán)利要求書中。
權(quán)利要求
1.一種在數(shù)據(jù)處理系統(tǒng)中訪問(wèn)數(shù)據(jù)的方法,所述方法包括: 響應(yīng)于由處理核中的線程發(fā)起的存儲(chǔ)器訪問(wèn)請(qǐng)求,訪問(wèn)存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),以對(duì)于所述存儲(chǔ)器訪問(wèn)請(qǐng)求執(zhí)行存儲(chǔ)地址轉(zhuǎn)換; 訪問(wèn)所述存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的關(guān)于加密的頁(yè)面屬性,以確定與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的存儲(chǔ)頁(yè)面是否被加密;以及 基于與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的存儲(chǔ)頁(yè)面是否被確定為被加密,而選擇性地將所述存儲(chǔ)頁(yè)面中的安全數(shù)據(jù)流化通過(guò)加密引擎,以對(duì)所述安全數(shù)據(jù)執(zhí)行加密操作。
2.如權(quán)利要求1所述的方法,其中所述存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)包括多個(gè)頁(yè)表?xiàng)l目,每個(gè)頁(yè)表?xiàng)l目包括與相關(guān)于所述頁(yè)表?xiàng)l目的存儲(chǔ)頁(yè)面相關(guān)的真實(shí)地址以及與這樣的存儲(chǔ)頁(yè)面相關(guān)的關(guān)于加密的頁(yè)面屬性。
3.如權(quán)利要求1所述的方法,還包括:響應(yīng)于由第二線程發(fā)起的第二存儲(chǔ)器訪問(wèn)請(qǐng)求,通過(guò)將與所述第二線程相關(guān)的處理標(biāo)識(shí)符與所述存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的訪問(wèn)控制數(shù)據(jù)進(jìn)行比較、并且響應(yīng)于所述比較拒絕所述第二線程對(duì)所述存儲(chǔ)頁(yè)面的訪問(wèn),而限制所述第二線程對(duì)所述存儲(chǔ)頁(yè)面的訪問(wèn)。
4.如權(quán)利要求3所述的方法,其中所述存儲(chǔ)器訪問(wèn)請(qǐng)求包括與由所述處理核執(zhí)行的第一處理相關(guān)的第一存儲(chǔ)器訪問(wèn)請(qǐng)求,所述方法還包括:響應(yīng)于與未被授權(quán)訪問(wèn)所述存儲(chǔ)頁(yè)面的第二處理相關(guān)的第二存儲(chǔ)器訪問(wèn)請(qǐng)求,斷言軟件異常。
5.如權(quán)利要求4所述的方法,還包括:響應(yīng)于所述第二存儲(chǔ)器訪問(wèn)請(qǐng)求,確定所述存儲(chǔ)頁(yè)面是否被加密,并且如果是,則當(dāng)斷言所述軟件異常時(shí)指示所述頁(yè)面被加密。
6.如權(quán)利要求3所述的方法,其中所述存儲(chǔ)器訪問(wèn)請(qǐng)求包括與由所述處理核執(zhí)行的第一處理相關(guān)的第一存儲(chǔ)器訪 問(wèn)請(qǐng)求,所述方法還包括:響應(yīng)于與未被授權(quán)訪問(wèn)所述存儲(chǔ)頁(yè)面的第二處理相關(guān)的第二存儲(chǔ)器訪問(wèn)請(qǐng)求,確定所述存儲(chǔ)頁(yè)面是否被加密,并且如果是,則執(zhí)行系統(tǒng)關(guān)閉。
7.如權(quán)利要求1所述的方法,其中所述關(guān)于加密的頁(yè)面屬性包括指示所述存儲(chǔ)頁(yè)面是否被加密的加密屬性。
8.如權(quán)利要求1所述的方法,其中所述關(guān)于加密的頁(yè)面屬性包括級(jí)別屬性,其識(shí)別多級(jí)存儲(chǔ)器架構(gòu)中所述存儲(chǔ)頁(yè)面被加密的至少一個(gè)級(jí)別。
9.如權(quán)利要求8所述的方法,其中選擇性地將所述存儲(chǔ)頁(yè)面中的安全數(shù)據(jù)流化通過(guò)所述加密引擎基于所述級(jí)別屬性是否指示所述存儲(chǔ)頁(yè)面在所述存儲(chǔ)器訪問(wèn)請(qǐng)求的源或目標(biāo)級(jí)別中被加密。
10.如權(quán)利要求1所述的方法,其中從包括加密所述安全數(shù)據(jù)和解密所述安全數(shù)據(jù)的組中選擇所述加密操作。
11.一種在數(shù)據(jù)處理系統(tǒng)中訪問(wèn)數(shù)據(jù)的方法,所述方法包括: 響應(yīng)于由處理核中的線程發(fā)起的存儲(chǔ)器訪問(wèn)請(qǐng)求,訪問(wèn)存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),以對(duì)于所述存儲(chǔ)器訪問(wèn)請(qǐng)求執(zhí)行存儲(chǔ)地址轉(zhuǎn)換; 訪問(wèn)所述存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的關(guān)于壓縮的頁(yè)面屬性,以確定與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的存儲(chǔ)頁(yè)面是否被壓縮;以及 基于與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的存儲(chǔ)頁(yè)面是否被確定為被壓縮,而選擇性地將所述存儲(chǔ)頁(yè)面中的數(shù)據(jù)流化通過(guò)壓縮引擎,以對(duì)所述數(shù)據(jù)執(zhí)行壓縮操作。
12.如權(quán)利要求11所述的方法,其中所述存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)包括多個(gè)頁(yè)表?xiàng)l目,每個(gè)頁(yè)表?xiàng)l目包括與相關(guān)于所述頁(yè)表?xiàng)l目的存儲(chǔ)頁(yè)面相關(guān)的真實(shí)地址以及與這樣的存儲(chǔ)頁(yè)面相關(guān)的關(guān)于壓縮的頁(yè)面屬性。
13.如權(quán)利要求11所述的方法,其中所述關(guān)于壓縮的頁(yè)面屬性包括級(jí)別屬性,其識(shí)別多級(jí)存儲(chǔ)器架構(gòu)中所述存儲(chǔ)頁(yè)面被壓縮的至少一個(gè)級(jí)別,并且其中選擇性地將所述存儲(chǔ)頁(yè)面中的數(shù)據(jù)流化通過(guò)所述壓縮引擎基于所述級(jí)別屬性是否指示所述存儲(chǔ)頁(yè)面在所述存儲(chǔ)器訪問(wèn)請(qǐng)求的源或目標(biāo)級(jí)別中被壓縮。
14.如權(quán)利要求11所述的方法,其中從包括壓縮所述數(shù)據(jù)和解壓所述數(shù)據(jù)的組中選擇所述壓縮操作。
15.—種電路布置,包括: 多核處理器,其包括多個(gè)處理核;以及 存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),其布置在所述多個(gè)處理核之中的第一處理核中,所述存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)被配置為存儲(chǔ)用于存儲(chǔ)頁(yè)面的地址轉(zhuǎn)換數(shù)據(jù),其中所述存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)還被配置為存儲(chǔ)用于所述存儲(chǔ)頁(yè)面的關(guān)于加密的頁(yè)面屬性; 其中所述多核處理器被配置為響應(yīng)于由所述第一處理核中的線程發(fā)起的、并與所述存儲(chǔ)頁(yè)面相關(guān)的存儲(chǔ)器訪問(wèn)請(qǐng)求,基于與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的所述存儲(chǔ)頁(yè)面是否被加密而選擇性地將來(lái)自所述存儲(chǔ)頁(yè)面的安全數(shù)據(jù)流化通過(guò)加密引擎,以對(duì)所述安全數(shù)據(jù)執(zhí)行加密操作。
16.如權(quán)利要求15所述的電路布置,其中所述存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)包括多個(gè)頁(yè)表?xiàng)l目,每個(gè)頁(yè)表?xiàng)l目包括與相關(guān)于所述頁(yè)表?xiàng)l目的存儲(chǔ)頁(yè)面相關(guān)的真實(shí)地址以及與這樣的存儲(chǔ)頁(yè)面相關(guān)的關(guān)于加密的頁(yè)面屬性。
17.如權(quán)利要求15所述的電路布置,其中所述存儲(chǔ)器訪問(wèn)請(qǐng)求包括與由所述處理核執(zhí)行的第一處理相關(guān)的第一存儲(chǔ)器訪問(wèn)請(qǐng)求,并且其中所述第一處理核被配置為:響應(yīng)于與未被授權(quán)訪問(wèn)所述存儲(chǔ)頁(yè)面的第二處理相關(guān)的第二存儲(chǔ)器訪問(wèn)請(qǐng)求,確定所述存儲(chǔ)頁(yè)面是否被加密,并且如果是,則當(dāng)斷言軟件異常時(shí)指示所述頁(yè)面被加密。
18.如權(quán)利要求15所述的電路布置,其中所述存儲(chǔ)器訪問(wèn)請(qǐng)求包括與由所述處理核執(zhí)行的第一處理相關(guān)的第一存儲(chǔ)器訪問(wèn)請(qǐng)求,并且其中所述第一處理核被配置為:響應(yīng)于與未被授權(quán)訪問(wèn)所述存儲(chǔ)頁(yè)面的第二處理相關(guān)的第二存儲(chǔ)器訪問(wèn)請(qǐng)求,確定所述存儲(chǔ)頁(yè)面是否被加密,并且如果是,則執(zhí)行系統(tǒng)關(guān)閉。
19.如權(quán)利要求15所述的電路布置,其中所述關(guān)于加密的頁(yè)面屬性包括級(jí)別屬性,其識(shí)別多級(jí)存儲(chǔ)器架構(gòu)中所述存儲(chǔ)頁(yè)面被加密的至少一個(gè)級(jí)別,并且其中所述多核處理器被配置為基于所述級(jí)別屬性是否指示所述存儲(chǔ)頁(yè)面在所述存儲(chǔ)器訪問(wèn)請(qǐng)求的源或目標(biāo)級(jí)別中被加密,而選擇性地將所述存儲(chǔ)頁(yè)面中的安全數(shù)據(jù)流化通過(guò)所述加密引擎。
20.如權(quán)利要求15所述的電路布置,其中從包括加密所述安全數(shù)據(jù)和解密所述安全數(shù)據(jù)的組中選擇所述加密操作。
21.—種電路布置,包括: 多核處理器,其包括多個(gè)處理核;以及 存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),其布置在所述多個(gè)處理核之中的第一處理核中,所述存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)被配置為存儲(chǔ)用于存儲(chǔ)頁(yè)面的地址轉(zhuǎn)換數(shù)據(jù),其中所述存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)還被配置為存儲(chǔ)用于所述存儲(chǔ)頁(yè)面的關(guān)于壓縮的頁(yè)面屬性; 其中所述多核處理器被配置為:響應(yīng)于由所述第一處理核中的線程發(fā)起的、并與所述存儲(chǔ)頁(yè)面相關(guān)的存儲(chǔ)器訪問(wèn)請(qǐng)求,基于與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)的所述存儲(chǔ)頁(yè)面是否被壓縮而選擇性地將來(lái)自所述存儲(chǔ)頁(yè)面的數(shù)據(jù)流化通過(guò)壓縮引擎,以對(duì)所述數(shù)據(jù)執(zhí)行壓縮操作。
22.如權(quán)利要求21所述的電路布置,其中所述存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)包括多個(gè)頁(yè)表?xiàng)l目,每個(gè)頁(yè)表?xiàng)l目包括與相關(guān)于所述頁(yè)表?xiàng)l目的存儲(chǔ)頁(yè)面相關(guān)的真實(shí)地址以及與這樣的存儲(chǔ)頁(yè)面相關(guān)的關(guān)于壓縮的頁(yè)面屬性。
23.如權(quán)利要求21所述的電路布置,其中所述關(guān)于壓縮的頁(yè)面屬性包括級(jí)別屬性,其識(shí)別多級(jí)存儲(chǔ)器架構(gòu)中所述存儲(chǔ)頁(yè)面被壓縮的至少一個(gè)級(jí)別,并且其中所述多核處理器被配置為基于所述級(jí)別屬性是否指示所述存儲(chǔ)頁(yè)面在所述存儲(chǔ)器訪問(wèn)請(qǐng)求的源或目標(biāo)級(jí)別中被壓縮,而選擇性地將所述存儲(chǔ)頁(yè)面中的數(shù)據(jù)流化通過(guò)所述壓縮引擎。
24.如權(quán)利要求21所述的電路布置,其中從包括壓縮所述數(shù)據(jù)和解壓所述數(shù)據(jù)的組中選擇所述壓縮 操作。
全文摘要
本發(fā)明提供一種方法和電路布置,其基于存儲(chǔ)在諸如有效至真實(shí)轉(zhuǎn)換(ERAT)或旁路轉(zhuǎn)換緩沖(TLB)的存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的關(guān)于加密和/或壓縮的頁(yè)面屬性,選擇性地將數(shù)據(jù)流化到加密或壓縮引擎。例如可以關(guān)于對(duì)于存儲(chǔ)頁(yè)面中的數(shù)據(jù)的存儲(chǔ)器訪問(wèn)請(qǐng)求而訪問(wèn)存儲(chǔ)地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),使得可以將數(shù)據(jù)結(jié)構(gòu)中與存儲(chǔ)頁(yè)面相關(guān)的屬性與處理存儲(chǔ)器訪問(wèn)請(qǐng)求相聯(lián)合地用于控制數(shù)據(jù)是否被加密/解密和/或壓縮/解壓縮。
文檔編號(hào)G06F3/06GK103218572SQ20131002603
公開(kāi)日2013年7月24日 申請(qǐng)日期2013年1月23日 優(yōu)先權(quán)日2012年1月23日
發(fā)明者A.J.穆夫, P.E.沙特, R.A.希勒, M.R.塔布斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司