本申請(qǐng)案主張?jiān)?014年5月9日提出申請(qǐng)的名為“用于可重新配置存儲(chǔ)器系統(tǒng)的虛擬化物理地址(Virtualized Physical Addresses for Reconfigurable Memory Systems)”第14/274,195號(hào)美國(guó)臨時(shí)專(zhuān)利申請(qǐng)案的申請(qǐng)日期的權(quán)益。
技術(shù)領(lǐng)域
本發(fā)明一般來(lái)說(shuō)涉及虛擬存儲(chǔ)器映射。更特定來(lái)說(shuō),本發(fā)明涉及可重新配置存儲(chǔ)器系統(tǒng)中使用存儲(chǔ)器抽象化協(xié)議進(jìn)行的虛擬存儲(chǔ)器映射。
背景技術(shù):
通常在許多數(shù)據(jù)處理系統(tǒng)中提供存儲(chǔ)器裝置作為計(jì)算機(jī)或其它電子裝置中的半導(dǎo)體集成電路及/或外部可裝卸式裝置。存在許多不同類(lèi)型的存儲(chǔ)器,包含隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、同步DRAM(SDRAM)、快閃存儲(chǔ)器及電阻可變存儲(chǔ)器,以及其它存儲(chǔ)器。
常規(guī)存儲(chǔ)器系統(tǒng)通常由安裝于稱作雙列直插存儲(chǔ)器模塊(DIMM)的印刷電路板(PCB)上的一個(gè)或多個(gè)存儲(chǔ)器裝置(例如DRAM)組成。存儲(chǔ)器系統(tǒng)與存儲(chǔ)器控制子系統(tǒng)或中央處理單元(CPU)或微處理器通信。在一些配置中,存儲(chǔ)器控制器物理地歸入到與處理器相同的物理芯片中。在其它配置中,存儲(chǔ)器控制器可僅為包括存儲(chǔ)器控制器中樞(MCH)的許多邏輯組件中的一者。存儲(chǔ)器控制器中樞通常支持完全分離且相異的存儲(chǔ)器地址空間,通常使用不同類(lèi)型的半導(dǎo)體存儲(chǔ)器或不同目的。舉例來(lái)說(shuō),存儲(chǔ)器控制器可支持將視頻DRAM用于圖形應(yīng)用、將快閃存儲(chǔ)器用于磁盤(pán)驅(qū)動(dòng)器加速且將商品化DRAM用作處理器的主要外部存儲(chǔ)器。
許多計(jì)算機(jī)系統(tǒng)經(jīng)配置以形成指派給特定處理器、特定過(guò)程及其組合的虛擬存儲(chǔ)器。用于提供機(jī)器虛擬化的當(dāng)前基于軟件的機(jī)構(gòu)(例如,“超管理器”)提供用于在不同操作系統(tǒng)當(dāng)中劃分機(jī)器資源的相對(duì)不安全機(jī)制。一些超管理器(最顯著地為IBM大型計(jì)算機(jī)中的那些超管理器)針對(duì)這些機(jī)構(gòu)中的一些機(jī)構(gòu)提供硬件強(qiáng)制執(zhí)行。甚至x86架構(gòu)也包含用于描述指令特權(quán)的CPU環(huán)。如VMWARE的一些軟件超管理器可構(gòu)建于這些環(huán)上。一些機(jī)器可在單個(gè)大型對(duì)稱多處理器(SMP)或大型分布式系統(tǒng)內(nèi)提供硬件“域”以允許操作系統(tǒng)的多個(gè)實(shí)例在同一硬件平臺(tái)上運(yùn)行且提供硬件保護(hù)以免受域當(dāng)中的干擾。然而,這些類(lèi)型的系統(tǒng)在板層級(jí)下僅實(shí)現(xiàn)域?qū)蛹?jí)資源分配。硬件層級(jí)的重新配置通常是粗粒度的(例如,需要將處理器及存儲(chǔ)器資源兩者分配在一起)。軟件層級(jí)的重新配置通常是細(xì)粒度的,但經(jīng)不良地強(qiáng)制執(zhí)行。
當(dāng)前存在朝向數(shù)據(jù)中心內(nèi)的“解聚”的行業(yè)趨勢(shì),其中處理器、存儲(chǔ)器及存儲(chǔ)資源分配于物理單元(通常稱作“雪橇”)中且經(jīng)由數(shù)據(jù)中心規(guī)模網(wǎng)絡(luò)互連。經(jīng)由典型網(wǎng)絡(luò)協(xié)議(通常為T(mén)CP/IP)在資源、延時(shí)及吞吐量方面以高成本存取這些資源。然而這些類(lèi)型的解聚系統(tǒng)實(shí)現(xiàn)資源的有所改善的平衡,因?yàn)榇鎯?chǔ)器資源不必與處理器資源一起經(jīng)分配(如在解聚之前的情況,添加新存儲(chǔ)器控制器或磁盤(pán)控制器需要另一CPU及操作系統(tǒng)(OS)實(shí)例的添加),此仍引發(fā)高額外負(fù)擔(dān)。網(wǎng)絡(luò)處理只需要重要固件及嵌入控制;復(fù)雜協(xié)議施加延時(shí)額外負(fù)擔(dān)及帶寬限制;等等。通常,在這些配置中可損失性能的四個(gè)量級(jí)或更多。另外,這些解聚系統(tǒng)表示粗粒度計(jì)算機(jī)配置。
附圖說(shuō)明
圖1是作為使用經(jīng)抽象化存儲(chǔ)器協(xié)議的系統(tǒng)的實(shí)例的包含混合存儲(chǔ)器立方體的數(shù)據(jù)處理系統(tǒng)的圖式。
圖2圖解說(shuō)明混合存儲(chǔ)器立方體中的DRAM的可能分割。
圖3圖解說(shuō)明混合存儲(chǔ)器立方體中的DRAM的分割的一個(gè)實(shí)例的邏輯視圖。
圖4圖解說(shuō)明用于鏈路接口且控制混合存儲(chǔ)器立方體中的DRAM的邏輯庫(kù)。
圖5圖解說(shuō)明混合存儲(chǔ)器立方體的鏈接。
圖6圖解說(shuō)明根據(jù)本發(fā)明的實(shí)施例的在經(jīng)抽象化存儲(chǔ)器處使用經(jīng)抽象化存儲(chǔ)器協(xié)議及虛擬存儲(chǔ)器分配的系統(tǒng)。
圖7圖解說(shuō)明根據(jù)本發(fā)明的實(shí)施例的存儲(chǔ)器抽象化模塊的框圖。
圖8圖解說(shuō)明展示物理地址空間及連續(xù)地分配的虛擬地址空間的存儲(chǔ)器圖式。
圖9圖解說(shuō)明展示物理地址空間及可不連續(xù)地分配的虛擬地址空間的存儲(chǔ)器圖式。
圖10圖解說(shuō)明使用經(jīng)抽象化存儲(chǔ)器協(xié)議存取虛擬地址空間的過(guò)程。
具體實(shí)施方式
在以下詳細(xì)說(shuō)明中,參考形成本文一部分且其中以圖解說(shuō)明方式展示其中可實(shí)踐本發(fā)明的特定實(shí)例性實(shí)施例的附圖。充分詳細(xì)地描述這些實(shí)施例以使得所屬領(lǐng)域的技術(shù)人員能夠?qū)嵺`本發(fā)明。然而,可在不背離本發(fā)明的范圍的情況下利用其它實(shí)施例且可做出結(jié)構(gòu)、材料及過(guò)程改變。本文中所呈現(xiàn)的圖解說(shuō)明并非旨作為任何特定方法、系統(tǒng)、裝置或結(jié)構(gòu)的實(shí)際視圖,而僅是用以描述本發(fā)明的實(shí)施例的理想化表示。本文中所呈現(xiàn)的所述圖式未必按比例繪制。為方便讀者,各個(gè)圖式中的類(lèi)似結(jié)構(gòu)或組件可保持相同或類(lèi)似編號(hào);然而,編號(hào)的類(lèi)似性不意味著所述結(jié)構(gòu)或組件必然在大小、組合物、配置或任何其它性質(zhì)上相同。
可以框圖形式展示元件、電路、模塊及功能,以便不會(huì)因不必要細(xì)節(jié)使本發(fā)明模糊不清。此外,所展示及所描述的特定實(shí)施方案僅是示范性的,且除非本文中另有規(guī)定,否則不應(yīng)被解釋為實(shí)施本發(fā)明的僅有方式。另外,塊定義及各種塊之間的邏輯分割是對(duì)特定實(shí)施方案的示范。所屬領(lǐng)域的技術(shù)人員將易于明了,可通過(guò)眾多其它分割解決方案來(lái)實(shí)踐本發(fā)明。在大多數(shù)情況下,已省略關(guān)于定時(shí)考慮等的細(xì)節(jié),其中此些細(xì)節(jié)對(duì)獲得對(duì)本發(fā)明的完全理解并非必要且在相關(guān)領(lǐng)域的技術(shù)人員的能力范圍內(nèi)。
所屬領(lǐng)域的技術(shù)人員將了解,結(jié)合本文中所揭示的實(shí)施例描述的各種說(shuō)明性邏輯塊、模塊、電路及算法行為可實(shí)施為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為明確圖解說(shuō)明硬件與軟件的此可互換性,通常鑒于其功能性來(lái)描述各種說(shuō)明性組件、塊、模塊、電路及行為。此功能性是實(shí)施為硬件還是軟件取決于特定應(yīng)用及強(qiáng)加于總體系統(tǒng)的設(shè)計(jì)約束。所屬領(lǐng)域的技術(shù)人員可針對(duì)每一特定應(yīng)用以不同方式實(shí)施所描述功能性,但不應(yīng)將此些實(shí)施方案決策解釋為導(dǎo)致背離本文中所描述的實(shí)施例的范圍。
當(dāng)用硬件實(shí)施時(shí),可用以下各項(xiàng)實(shí)施或執(zhí)行本文中所揭示的實(shí)施例:通用處理器、專(zhuān)用處理器、數(shù)字信號(hào)處理器(DSP)、存儲(chǔ)器中的處理器(PIM)、專(zhuān)用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或其它可編程邏輯裝置、離散門(mén)或晶體管邏輯、離散硬件組件或其經(jīng)設(shè)計(jì)以執(zhí)行本文中所描述的功能的任一組合。通用處理器可為微處理器,但在替代方案中,所述處理器可為任何常規(guī)處理器、控制器、微控制器或狀態(tài)機(jī)。當(dāng)執(zhí)行軟件以用于實(shí)施本文中所描述的實(shí)施例的過(guò)程時(shí),通用處理器應(yīng)被視為經(jīng)配置以用于實(shí)施此些過(guò)程的專(zhuān)用處理器。處理器還可實(shí)施為計(jì)算裝置的組合,例如DSP與微處理器的組合、多個(gè)微處理器、一個(gè)或多個(gè)微處理器與DSP核心的聯(lián)合或任一其它此種配置。
另外,應(yīng)注意,可就描繪為流程表、流程圖、結(jié)構(gòu)圖或框圖的過(guò)程來(lái)描述實(shí)施例。盡管流程表可將操作行動(dòng)描述為循序過(guò)程,但可以另一順序并行地或基本上同時(shí)執(zhí)行這些行動(dòng)中的許多行動(dòng)。另外,可重新布置行動(dòng)的次序。過(guò)程可對(duì)應(yīng)于方法、功能、程序、子例程、子程序等。此外,可以硬件、軟件或兩者實(shí)施本文中所揭示的方法。如果以軟件實(shí)施,那么所述功能可作為一個(gè)或多個(gè)指令或代碼存儲(chǔ)于計(jì)算機(jī)可讀媒體上或在所述計(jì)算機(jī)可讀媒體上傳輸。計(jì)算機(jī)可讀媒體包含計(jì)算機(jī)存儲(chǔ)媒體及通信媒體兩者,所述通信媒體包含促進(jìn)將計(jì)算機(jī)程序從一個(gè)地方傳送到另一地方的任何媒體。
所屬領(lǐng)域的技術(shù)人員將理解,可使用各種不同科技及技術(shù)中的任一者來(lái)表示信息及信號(hào)。舉例來(lái)說(shuō),可貫穿此說(shuō)明提及的數(shù)據(jù)、指令、命令、信息、信號(hào)、位、符號(hào)及碼片可由電壓、電流、電磁波、磁場(chǎng)或粒子、光場(chǎng)或粒子或者其任一組合表示。為了呈現(xiàn)及說(shuō)明清晰,一些圖式可將信號(hào)圖解說(shuō)明為單個(gè)信號(hào)。所屬領(lǐng)域的技術(shù)人員將理解,信號(hào)可表示用于攜載信號(hào)的總線,其中所述總線可具有各種位寬度。
應(yīng)理解,本文中使用例如“第一”、“第二”等的標(biāo)示對(duì)元件的任何提及不限制那些元件的數(shù)量或次序,除非明確陳述此限制。而是,這些標(biāo)示可在本文中用作在兩個(gè)或兩個(gè)以上元件或元件的實(shí)例之間進(jìn)行區(qū)分的方便方法。因此,對(duì)第一及第二元件的提及不意指在那里可采用僅兩個(gè)元件或第一元件必須以某一方式先于第二元件。另外,除非另外陳述,否則一組元件可包括一個(gè)或多個(gè)元件。
本文中所描述的元件可包含同一元件的多個(gè)實(shí)例。這些元件可一般由數(shù)值標(biāo)示符(例如,110)指示且具體來(lái)說(shuō)由后跟字母標(biāo)示符(例如,110A)或前面帶有“破折號(hào)”的數(shù)值指示符(例如,110-1)的數(shù)值指示符指示。為便于進(jìn)行以下說(shuō)明,在大多數(shù)情況下,元件編號(hào)指示符以在其上介紹或最充分地論述元件的圖式的編號(hào)開(kāi)始。因此,舉例來(lái)說(shuō),圖1上的元件識(shí)別符將主要呈數(shù)值格式1xx且圖4上的元件將主要呈數(shù)值格式4xx。
如本文中所使用,參考給定參數(shù)、性質(zhì)或條件的術(shù)語(yǔ)“基本上”意指且包含所屬領(lǐng)域的技術(shù)人員將理解的以小變化程度(例如在可接受制造公差內(nèi))滿足給定參數(shù)、性質(zhì)或條件的程度。以實(shí)例的方式,取決于基本上滿足的特定參數(shù)、性質(zhì)或條件,所述參數(shù)、性質(zhì)或條件可得到至少90%滿足、至少95%滿足或甚至至少99%滿足。
如本文中所使用,例如“在…上方”、“在…下方”、“在…上”、“在…下面”、“上部”、“下部”等的任何關(guān)系術(shù)語(yǔ)用于清晰及方便地理解本發(fā)明及附圖,且不意味或取決于任何特定偏好、定向或次序,上下文另有明確指示的情況除外。
將理解,當(dāng)元件稱為“在另一元件上”、“連接到另一元件”或“與另一元件耦合”時(shí),其可直接在另一元件上、連接到另一元件或與另一元件耦合或可存在介入元件。相反,當(dāng)元件稱為“直接在另一元件上”、“直接連接到另一元件”或“與另一元件直接耦合”時(shí),不存在介入元件或?qū)?。如本文中所使用,術(shù)語(yǔ)“及/或”包含所列舉相關(guān)聯(lián)物項(xiàng)中的若干者的任何及所有組合。
本發(fā)明描述用于通過(guò)使用經(jīng)抽象化存儲(chǔ)器協(xié)議在可重新配置存儲(chǔ)器系統(tǒng)內(nèi)提供虛擬化物理地址而改善存儲(chǔ)器子系統(tǒng)的方法及設(shè)備。
如本文中所使用的術(shù)語(yǔ)“經(jīng)抽象化存儲(chǔ)器協(xié)議”、“經(jīng)抽象化存儲(chǔ)器”及“存儲(chǔ)器抽象化”意指客戶端側(cè)請(qǐng)求與對(duì)物理存儲(chǔ)器裝置的實(shí)際存取之間的定時(shí)及命名的解耦。作為用于存儲(chǔ)器讀取的定時(shí)抽象化的非限制性實(shí)例,客戶端可發(fā)布對(duì)特定地址的經(jīng)包化存儲(chǔ)器請(qǐng)求。某一時(shí)間(其可為不確定性的)后,存儲(chǔ)器系統(tǒng)用經(jīng)包化存儲(chǔ)器響應(yīng)供應(yīng)所請(qǐng)求數(shù)據(jù)。如果存儲(chǔ)器是DRAM,那么DRAM處的定時(shí)將包含特定行地址選通、列地址選通、取得所要數(shù)據(jù)的讀取響應(yīng)時(shí)間。因此,從客戶端的請(qǐng)求的定時(shí)抽象化DRAM的定時(shí)。
如本文中所使用的術(shù)語(yǔ)“命名”意指用于對(duì)存儲(chǔ)器的一個(gè)或多個(gè)特定位置尋址的過(guò)程或數(shù)據(jù)結(jié)構(gòu)。因此,由客戶端產(chǎn)生的命名可包含組合以指向如處理器所觀察到的特定存儲(chǔ)器位置的多個(gè)數(shù)據(jù)結(jié)構(gòu)。作為非限制性實(shí)例,客戶端可利用用以選擇特定裝置的裝置ID號(hào)碼及所述裝置內(nèi)的地址對(duì)特定位置尋址。作為另一非限制性實(shí)例,客戶端可用區(qū)ID及所述區(qū)內(nèi)的地址對(duì)特定位置尋址。下文論述關(guān)于區(qū)ID及裝置ID的額外細(xì)節(jié)。物理存儲(chǔ)器裝置處的命名指向所述存儲(chǔ)器裝置上的一個(gè)或多個(gè)特定數(shù)據(jù)位置。作為非限制性實(shí)例,DRAM裝置上的命名可包含組合以對(duì)特定位置尋址的行地址及列地址。因此,作為一個(gè)特定非限制性實(shí)例,命名抽象化可包含由客戶端供應(yīng)的裝置ID及地址與特定存儲(chǔ)器裝置處的行地址與列地址之間的轉(zhuǎn)譯(即,解耦)。
在進(jìn)行命名及定時(shí)抽象化的情況下,本發(fā)明的實(shí)施例可與除DRAM以外的各種存儲(chǔ)器及存儲(chǔ)裝置一起使用。作為非限制性實(shí)例,還可使用RAM裝置、快閃存儲(chǔ)器及存儲(chǔ)裝置(例如,磁盤(pán)驅(qū)動(dòng)器)。
本發(fā)明的實(shí)施例在經(jīng)抽象化存儲(chǔ)器裝置內(nèi)定義“保護(hù)區(qū)”且擴(kuò)展經(jīng)抽象化存儲(chǔ)器協(xié)議以支持保護(hù)區(qū)。因此,在經(jīng)抽象化存儲(chǔ)器裝置中具有保護(hù)區(qū)的存儲(chǔ)器系統(tǒng)使得客戶端(例如,CPU)能夠經(jīng)由經(jīng)抽象化協(xié)議分配或解除分配給定存儲(chǔ)器模塊上的物理存儲(chǔ)器(例如,混合存儲(chǔ)器立方體、存儲(chǔ)器中的處理器(PIM)存儲(chǔ)器等)的分段。此外,保護(hù)區(qū)使得經(jīng)抽象化存儲(chǔ)器裝置能夠在存儲(chǔ)器裝置中形成虛擬物理地址。換句話說(shuō),可將從客戶端呈現(xiàn)的地址轉(zhuǎn)譯為經(jīng)抽象化存儲(chǔ)器裝置中如由保護(hù)區(qū)定義的特定物理地址。在存儲(chǔ)器模塊處定義的這些保護(hù)區(qū)提供對(duì)存儲(chǔ)器空間的硬件層級(jí)虛擬化而非軟件層級(jí)虛擬化。另外,地址轉(zhuǎn)譯可遍及存儲(chǔ)器系統(tǒng)分布,因?yàn)榈刂忿D(zhuǎn)譯是以存儲(chǔ)器模塊層級(jí)而非在客戶端中或在存儲(chǔ)器控制中樞中執(zhí)行。
可使用任何適合經(jīng)抽象化存儲(chǔ)器協(xié)議來(lái)配置根據(jù)本發(fā)明的存儲(chǔ)器系統(tǒng)。為提供詳情,詳細(xì)定義經(jīng)抽象化存儲(chǔ)器協(xié)議的一個(gè)實(shí)例。此詳細(xì)說(shuō)明集中于混合存儲(chǔ)器立方體(HMC)協(xié)議作為可支持通過(guò)保護(hù)區(qū)定義的虛擬物理地址的經(jīng)抽象化存儲(chǔ)器協(xié)議的非限制性實(shí)例。接著,描述更一般系統(tǒng)以展示可如何在此些一般系統(tǒng)中定義其它經(jīng)抽象化存儲(chǔ)器協(xié)議及虛擬物理地址。
圖1是數(shù)據(jù)處理系統(tǒng)100的圖式,數(shù)據(jù)處理系統(tǒng)100包含混合存儲(chǔ)器立方體裝置200作為用于使用經(jīng)抽象化存儲(chǔ)器協(xié)議130在存儲(chǔ)器總線上操作以與客戶端110通信的裝置的實(shí)例。為便于說(shuō)明,本發(fā)明集中于HMC協(xié)議總線。然而,如受益于本發(fā)明的技術(shù)人員將了解,可利用包含將數(shù)據(jù)及協(xié)議保持于數(shù)據(jù)總線上的裝置之間的抽象化的其它高速數(shù)據(jù)總線來(lái)實(shí)踐本發(fā)明的實(shí)施例。
術(shù)語(yǔ)“客戶端”110在本文中用于區(qū)分存儲(chǔ)器總線上的主要配置為數(shù)據(jù)的消費(fèi)者及產(chǎn)生者的裝置,而非用于存儲(chǔ)數(shù)據(jù)的裝置(例如DRAM存儲(chǔ)器)。作為非限制性實(shí)例,客戶端110可被視為處理器(在本文中還稱為處理裝置),例如(舉例來(lái)說(shuō))通用處理器、專(zhuān)用處理器、圖形處理器、存儲(chǔ)器中的處理器及數(shù)字信號(hào)處理器。另外,客戶端110可被視為在例如(舉例來(lái)說(shuō))特定操作系統(tǒng)的處理器上運(yùn)行的過(guò)程。作為另一非限制性實(shí)例,客戶端110可被視為通信裝置。舉例來(lái)說(shuō),通信類(lèi)型客戶端110可經(jīng)配置以在存儲(chǔ)器總線與某一其它類(lèi)型的通信總線(例如,舉例來(lái)說(shuō),輸入/輸出(I/O)總線或網(wǎng)絡(luò)總線)之間傳達(dá)數(shù)據(jù)。當(dāng)然,客戶端110還可包含處理器元件及通信元件兩者。如此,本文中的說(shuō)明還可將客戶端110描述為系統(tǒng)單芯片(SoC)110。除非另有具體陳述,否則如本文中提及的SoC 110應(yīng)被視為相當(dāng)于客戶端110。最終,雖然客戶端110可被視為集中于處理或移動(dòng)數(shù)據(jù),但其也可含有呈寄存器、緩沖器、高速緩沖存儲(chǔ)器及位于客戶端110上的其它類(lèi)型的局部存儲(chǔ)器的形式的大量存儲(chǔ)器。
混合存儲(chǔ)器立方體裝置200(HMC 200)包含邏輯庫(kù)400,邏輯庫(kù)400定義經(jīng)抽象化存儲(chǔ)器協(xié)議130以在客戶端110與HMC 200之間形成存儲(chǔ)器鏈路120。在HMC 200上,并行總線410的群組介接于邏輯庫(kù)400與DRAM 250的群組之間。下文結(jié)合圖2到4論述HMC 200的額外細(xì)節(jié)。
存儲(chǔ)器鏈路120被分割成朝向客戶端110的上行鏈路及背向客戶端110的下行鏈路。作為經(jīng)抽象化存儲(chǔ)器協(xié)議130的一部分,存儲(chǔ)器鏈路120是如下文更充分地解釋那樣經(jīng)包化。因此,存儲(chǔ)器鏈路120在本文中也稱為經(jīng)包化存儲(chǔ)器鏈路120以及混合存儲(chǔ)器立方體鏈路120。此外,在存儲(chǔ)器鏈路120上傳達(dá)的包可稱為包請(qǐng)求及經(jīng)包化請(qǐng)求。
圖2圖解說(shuō)明HMC 200中的DRAM 250的可能分割。HMC 200可被視為耦合到邏輯庫(kù)400的DRAM裸片250的3維堆疊。邏輯庫(kù)400可配置為單獨(dú)裸片且經(jīng)配置以與DRAM裸片250介接。當(dāng)經(jīng)堆疊時(shí),可利用穿硅通孔來(lái)實(shí)現(xiàn)各種裸片之間的互連。雖然這些裝置可物理上配置為3維堆疊,但其不必如此配置,而是從互連角度來(lái)看可仍被認(rèn)為是3維的。
圖3圖解說(shuō)明HMC 200中的DRAM 250的分割的一個(gè)實(shí)例的邏輯視圖。參考圖2及3,多個(gè)裸片層的互連實(shí)現(xiàn)具有存儲(chǔ)器存儲(chǔ)層與一個(gè)或多個(gè)邏輯層的組合的存儲(chǔ)器裝置。以此方式,所述裝置在配置為HMC 200的單個(gè)裸片封裝中提供物理存儲(chǔ)器存儲(chǔ)及邏輯存儲(chǔ)器事務(wù)處理。最終結(jié)果是具有每裝置高達(dá)320GB/s的可用帶寬容量的非常緊湊、功率高效封裝。
就設(shè)計(jì)來(lái)說(shuō),HMC 200能夠經(jīng)由層次且并行方法具有此帶寬。舉例來(lái)說(shuō),可垂直跨越邏輯層發(fā)生裝置層次且可跨越給定裸片層發(fā)生硬件并行。邏輯庫(kù)400包含提供對(duì)HMC 200的外部鏈路存取以及內(nèi)部路由及事務(wù)邏輯兩者的多個(gè)組件。
HMC 200可分段成通常稱為“存儲(chǔ)庫(kù)”的垂直切片220。每一存儲(chǔ)庫(kù)可包含并入到邏輯庫(kù)400中的存儲(chǔ)庫(kù)邏輯450以控制DRAM 250的與所述存儲(chǔ)庫(kù)相關(guān)聯(lián)的分段。存儲(chǔ)庫(kù)邏輯450管理對(duì)其存儲(chǔ)庫(kù)內(nèi)的存儲(chǔ)器分區(qū)的存儲(chǔ)器參考操作。每一存儲(chǔ)庫(kù)控制器450可確定其自身的定時(shí)要求及刷新操作,此允許針對(duì)每一存儲(chǔ)庫(kù)的不同定時(shí)且還消除對(duì)在主機(jī)存儲(chǔ)器控制器中具有這些功能的需要。另外,在每一存儲(chǔ)庫(kù)控制器450中可包含隊(duì)列以緩沖對(duì)所述存儲(chǔ)庫(kù)的存儲(chǔ)器的參考。存儲(chǔ)庫(kù)控制器450可基于需求而非到達(dá)次序來(lái)執(zhí)行其隊(duì)列內(nèi)的參考。因此,從存儲(chǔ)庫(kù)操作返回到外部存儲(chǔ)器鏈路120(圖1)的響應(yīng)在一些情形中可為無(wú)序的。
存儲(chǔ)器鏈路120可經(jīng)配置以提供四個(gè)或八個(gè)邏輯鏈路。每一存儲(chǔ)器鏈路120可配置為十六個(gè)或八個(gè)串行及雙向I/O鏈路的群組。配置有四個(gè)鏈路的裝置具有以10Gbps、12.5Gbps及15Gbps操作的能力。配置有八個(gè)鏈路的裝置具有以10Gbps操作的能力。
考慮到物理存儲(chǔ)器存儲(chǔ)的層次性質(zhì),HMC裝置規(guī)格定義不同于傳統(tǒng)分組式DRAM裝置的物理尋址與交錯(cuò)模型。HMC裝置200的物理地址經(jīng)編碼成含有存儲(chǔ)庫(kù)、存儲(chǔ)體及地址位的34位字段。當(dāng)前規(guī)格定義利用字段的下部32個(gè)位的四個(gè)鏈路裝置及利用字段的下部33個(gè)位的八個(gè)鏈路裝置。不是依賴于單個(gè)尋址結(jié)構(gòu),所述規(guī)格準(zhǔn)許實(shí)施者及用戶定義針對(duì)目標(biāo)存儲(chǔ)器存取特性經(jīng)最優(yōu)化的地址映射方案。其還提供結(jié)合物理存儲(chǔ)庫(kù)及存儲(chǔ)體結(jié)構(gòu)與所要最大塊請(qǐng)求大小的一系列默認(rèn)地址映射模式。默認(rèn)映射方案通過(guò)將較低有效地址位映射到存儲(chǔ)庫(kù)地址、緊跟著存儲(chǔ)體地址位來(lái)實(shí)施低交錯(cuò)模型。此方法迫使循序地址首先跨越存儲(chǔ)庫(kù)接著跨越存儲(chǔ)庫(kù)內(nèi)的存儲(chǔ)體交錯(cuò)以便避免存儲(chǔ)體沖突。
經(jīng)由經(jīng)包化格式執(zhí)行主裝置與HMC裝置200之間的所有帶內(nèi)通信。此格式包含三個(gè)主要包分類(lèi):請(qǐng)求包、響應(yīng)包及流控制包。包可配置為單個(gè)16字節(jié)流單位(還稱為FLIT)的倍數(shù)。包大小可與9個(gè)FLIT(即,144個(gè)字節(jié))一樣大。最小包可包含僅一個(gè)16字節(jié)FLIT,包含包標(biāo)頭及包尾部。
針對(duì)所有存儲(chǔ)器有效負(fù)載大小的存儲(chǔ)器讀取請(qǐng)求包僅需要包標(biāo)頭、包尾部及相應(yīng)物理存儲(chǔ)器地址。如此,可使用單個(gè)FLIT來(lái)配置讀取請(qǐng)求。存儲(chǔ)器讀取響應(yīng)是包含在對(duì)應(yīng)存儲(chǔ)器讀取包中所請(qǐng)求的地址處的數(shù)據(jù)的單獨(dú)包。然而,寫(xiě)入請(qǐng)求及原子請(qǐng)求包也必須含有分別用于寫(xiě)入及讀取-修改-寫(xiě)入操作的相關(guān)聯(lián)輸入數(shù)據(jù)。如此,這些請(qǐng)求類(lèi)型可具有2個(gè)FLIT到9個(gè)FLIT的包寬度。HMC裝置規(guī)定定義包之間的弱排序模型。如此,可存在目標(biāo)實(shí)施方案內(nèi)存在的多個(gè)包重排序點(diǎn)。去往輔助裝置的到達(dá)包可使等待本地存儲(chǔ)庫(kù)存取的那些包通過(guò)。本地存儲(chǔ)庫(kù)還可對(duì)隊(duì)列包重排序以便最高效地使用去往及來(lái)自相應(yīng)存儲(chǔ)庫(kù)存儲(chǔ)體的帶寬。然而,給定HMC實(shí)施方案中存在的重排序點(diǎn)可經(jīng)定義以維持從特定鏈路到存儲(chǔ)庫(kù)內(nèi)的特定存儲(chǔ)體的包流的次序。此排序確保:存儲(chǔ)器寫(xiě)入請(qǐng)求后續(xù)接著存儲(chǔ)器讀取請(qǐng)求遞送正確且確定性行為。
HMC 200中的鏈路結(jié)構(gòu)使得對(duì)多個(gè)HMC 200的鏈接能夠?qū)崿F(xiàn)對(duì)需要大于單個(gè)HMC 200裝置的容量的存儲(chǔ)器子系統(tǒng)的構(gòu)造同時(shí)維持鏈路結(jié)構(gòu)及經(jīng)包化事務(wù)協(xié)議。下文參考圖5論述關(guān)于鏈接的額外細(xì)節(jié)。
圖4圖解說(shuō)明可用于形成鏈路接口120且控制HMC 200中的DRAM 250(圖1到3)的邏輯庫(kù)400。包含上行鏈路及下行鏈路的存儲(chǔ)器鏈路120可由針對(duì)每一存儲(chǔ)器鏈路120的鏈路接口控制器410控制。通過(guò)鏈路接口控制器410傳遞的包可通過(guò)縱橫交換機(jī)430傳遞。如果包去往HMC 200上的存儲(chǔ)庫(kù),那么縱橫交換機(jī)430可將所述包傳遞到存儲(chǔ)器控制邏輯440。如果包去往另一HMC 200,那么縱橫交換機(jī)430可將包傳遞到適當(dāng)鏈路接口控制器410以發(fā)送到適當(dāng)HMC 200上。存儲(chǔ)器控制邏輯440及各種存儲(chǔ)庫(kù)的存儲(chǔ)庫(kù)邏輯450可組合以針對(duì)選定存儲(chǔ)庫(kù)選擇適當(dāng)存儲(chǔ)庫(kù)及適當(dāng)定時(shí)。
圖5圖解說(shuō)明混合存儲(chǔ)器立方體(200-0到200-5)的鏈接。如較早陳述,多個(gè)HMC裝置200可鏈接在一起以增加可用于CPU 510的總體存儲(chǔ)器容量。在HMC存儲(chǔ)器系統(tǒng)中,通過(guò)請(qǐng)求包標(biāo)頭中的3位芯片ID字段中的值來(lái)識(shí)別每一HMC 200。3位芯片ID字段在本文中還可稱為“CUB字段”或“裝置ID”。因此,可針對(duì)CPU 510支持高達(dá)八個(gè)HMC裝置200的網(wǎng)絡(luò)。
支持用于HMC 200的互連的各種拓?fù)淝业讲煌琀MC 200的路由可為復(fù)雜的且包含多個(gè)路徑。因此,主機(jī)處理器通??刂坡酚赏?fù)淝覍⒙酚膳渲眯畔⒓虞d到每一HMC 200中以確定并非用于所述HMC 200的包應(yīng)如何路由到HMC 200上的其它鏈路。此路由信息使得每一HMC 200能夠使用CUB字段來(lái)將請(qǐng)求包路由到恰當(dāng)目的地。因此,當(dāng)HMC 200處理不去往其自身的包時(shí),HMC 200鏈接HMC 200上的另一鏈路且將包轉(zhuǎn)遞到所述另一鏈路以發(fā)送到另一HMC 200。
舉例來(lái)說(shuō),在圖5中,如果CPU 510發(fā)送具有5的CUB字段的請(qǐng)求包,那么第一HMC 200-1將把請(qǐng)求包傳遞到第四HMC 200-4。第四HMC 200-4將把請(qǐng)求包傳遞到服務(wù)于所述請(qǐng)求包的第五HMC 520-5。響應(yīng)包遵循相同鏈接路徑返回到CPU 510。
圖6圖解說(shuō)明根據(jù)本發(fā)明的實(shí)施例在經(jīng)抽象化存儲(chǔ)器處使用經(jīng)抽象化存儲(chǔ)器協(xié)議及虛擬存儲(chǔ)器分配的系統(tǒng)。多個(gè)客戶端(610A到610C)可以存取經(jīng)抽象化存儲(chǔ)器系統(tǒng)互連件620。系統(tǒng)互連件620可包含呈許多不同類(lèi)型的復(fù)雜拓?fù)涞娜魏螖?shù)目個(gè)經(jīng)抽象化存儲(chǔ)器模塊700。使用經(jīng)包化存儲(chǔ)器請(qǐng)求的經(jīng)抽象化存儲(chǔ)器協(xié)議可使用鏈接方法及裝置ID以類(lèi)似于上文參考圖5所論述的較簡(jiǎn)單HMC拓?fù)涞姆绞降姆绞疆a(chǎn)生這些復(fù)雜拓?fù)洹T诖讼到y(tǒng)中,請(qǐng)求包將具有包含于其中的裝置ID,以使得所有經(jīng)抽象化存儲(chǔ)器模塊700知曉請(qǐng)求包去往其自身或應(yīng)基于編程到經(jīng)抽象化存儲(chǔ)器模塊700中的鏈接方向而傳遞到另一經(jīng)抽象化存儲(chǔ)器模塊700上。因此,裝置ID連同請(qǐng)求包中的地址可被視為由客戶端(610A到610C)請(qǐng)求的地址的一部分。
每一經(jīng)抽象化存儲(chǔ)器模塊700包含存儲(chǔ)器抽象化單元以及一個(gè)或多個(gè)存儲(chǔ)器裝置。針對(duì)兩個(gè)經(jīng)抽象化存儲(chǔ)器模塊700-1及700-2展示擴(kuò)展視圖。作為非限制性實(shí)例,這些擴(kuò)展視圖展示每一經(jīng)抽象化存儲(chǔ)器模塊(700-1及700-2)的地址空間內(nèi)的四個(gè)保護(hù)區(qū)。當(dāng)然,可在經(jīng)抽象化存儲(chǔ)器模塊700內(nèi)定義更多保護(hù)區(qū),或經(jīng)抽象化存儲(chǔ)器模塊可包含單個(gè)保護(hù)區(qū)。
檢查經(jīng)抽象化存儲(chǔ)器模塊700-2,可看到兩個(gè)上部保護(hù)區(qū)已分配給客戶端B 610B。左下保護(hù)區(qū)已分配給客戶端C 610C且右下保護(hù)區(qū)已分配給客戶端A 610A。檢查經(jīng)抽象化存儲(chǔ)器模塊700-1,可看到左上保護(hù)區(qū)及右下保護(hù)區(qū)已分配給客戶端A 610A。左下保護(hù)區(qū)已分配給客戶端C 610C且右上保護(hù)區(qū)尚未被分配。
圖7圖解說(shuō)明根據(jù)本發(fā)明的實(shí)施例的經(jīng)抽象化存儲(chǔ)器模塊700的框圖。經(jīng)抽象化存儲(chǔ)器模塊700包含存儲(chǔ)器抽象化單元740及一個(gè)或多個(gè)存儲(chǔ)器裝置(730-1到730-3)。經(jīng)抽象化存儲(chǔ)器模塊700中的存儲(chǔ)器裝置730的數(shù)目可從少至1到許多打或更多地廣泛變化。如所圖解說(shuō)明,經(jīng)抽象化存儲(chǔ)器模塊700包含可配置為經(jīng)包化存儲(chǔ)器鏈路的一個(gè)或多個(gè)存儲(chǔ)器鏈路720。如果經(jīng)抽象化存儲(chǔ)器模塊700經(jīng)配置以支持鏈接及包轉(zhuǎn)遞(例如,類(lèi)似于HMC協(xié)議),那么經(jīng)抽象化存儲(chǔ)器模塊700通常將具有多個(gè)存儲(chǔ)器鏈路720。存儲(chǔ)器鏈路720可耦合到客戶端710或其它經(jīng)抽象化存儲(chǔ)器模塊700以形成包含多個(gè)客戶端710及多個(gè)經(jīng)抽象化存儲(chǔ)器模塊700的復(fù)雜性變化的網(wǎng)絡(luò)。
經(jīng)抽象化存儲(chǔ)器協(xié)議邏輯750解譯從存儲(chǔ)器鏈路720接收的存儲(chǔ)器請(qǐng)求包且產(chǎn)生響應(yīng)包。如果存在多個(gè)存儲(chǔ)器鏈路720,那么可包含鏈路路由模塊760以確定所接收包是用于此特定經(jīng)抽象化存儲(chǔ)器模塊700還是應(yīng)轉(zhuǎn)發(fā)到另一存儲(chǔ)器鏈路720上,因此存儲(chǔ)器請(qǐng)求可由另一經(jīng)抽象化存儲(chǔ)器模塊700處置。
如果存儲(chǔ)器請(qǐng)求是用于經(jīng)抽象化存儲(chǔ)器模塊700,那么將所述請(qǐng)求路由到存儲(chǔ)器控制邏輯770,存儲(chǔ)器控制邏輯770產(chǎn)生用于存取將由存儲(chǔ)器請(qǐng)求尋址的特定存儲(chǔ)器裝置(730-1到730-3)的信號(hào)。
包含映射邏輯780以形成從由客戶端710在請(qǐng)求包中定義的地址與存儲(chǔ)器裝置(730-1到730-3)中的物理地址的轉(zhuǎn)譯??梢匀舾煞N方式來(lái)配置映射邏輯780以形成實(shí)際虛擬地址到物理地址轉(zhuǎn)譯。
作為一個(gè)非限制性實(shí)例,轉(zhuǎn)譯表782可包含用于取虛擬地址的一部分(例如,從存儲(chǔ)器請(qǐng)求中的上部地址位中的一些上部地址位導(dǎo)出的關(guān)鍵字)的頁(yè)表以將地址形成到頁(yè)表中且所述頁(yè)表產(chǎn)生用于存儲(chǔ)器的上部物理地址位。因此,所述頁(yè)表產(chǎn)生保護(hù)區(qū)的基址位置。在此情景中,存儲(chǔ)器請(qǐng)求中的下部地址位將用于選擇保護(hù)區(qū)內(nèi)的適當(dāng)?shù)刂贰?/p>
作為另一非限制性實(shí)例,可利用例如(舉例來(lái)說(shuō))用以定義保護(hù)區(qū)的基址位置的基址寄存器及用以定義保護(hù)區(qū)的大小的界限寄存器的寄存器來(lái)完成轉(zhuǎn)譯表782。在此情景中,包請(qǐng)求可包含選擇可定義物理地址的上部地址位的適當(dāng)基址寄存器的區(qū)ID及具有將由界限寄存器定義以對(duì)保護(hù)區(qū)內(nèi)的所有存儲(chǔ)器位置尋址的位寬度的地址字段。
在使用HMC裝置的系統(tǒng)中,保護(hù)區(qū)可基于已在HMC裝置內(nèi)定義的存儲(chǔ)庫(kù),如上文所解釋。存儲(chǔ)庫(kù)的物理位置及大小已由HMC裝置定義且所述存儲(chǔ)庫(kù)僅必須分配且系連到分配請(qǐng)求客戶端。
可包含區(qū)權(quán)限邏輯790以定義哪些客戶端710可以存取任一特定區(qū)。區(qū)權(quán)限邏輯790還可結(jié)合映射邏輯780用以將各種可能保護(hù)區(qū)分配給各種客戶端710,如下文更充分地論述。
保護(hù)區(qū)的分配可為客戶端形成不同類(lèi)型的虛擬存儲(chǔ)器環(huán)境。在一些映射中,客戶端710的虛擬地址空間可表現(xiàn)為連續(xù)的,其中在地址空間的基址與地址空間的頂部之間不具有孔洞。在其它映射中,用于客戶端710的虛擬地址空間可表現(xiàn)為不連續(xù)的(即,碎片式)。在此碎片式配置中,客戶端710可知曉僅對(duì)已分配給其的各種區(qū)ID及所述區(qū)內(nèi)的地址尋址。
總之,在一些實(shí)施例中,一種設(shè)備包含用于將來(lái)自一個(gè)或多個(gè)客戶端的存儲(chǔ)器請(qǐng)求的定時(shí)及命名抽象化為一個(gè)或多個(gè)存儲(chǔ)器裝置處的定時(shí)及命名的存儲(chǔ)器抽象化單元。所述存儲(chǔ)器抽象化單元包含用于解譯來(lái)自所述一個(gè)或多個(gè)客戶端的所述存儲(chǔ)器請(qǐng)求的經(jīng)抽象化存儲(chǔ)器協(xié)議邏輯。所述存儲(chǔ)器抽象化單元還包含映射邏輯,所述映射邏輯用于將由請(qǐng)求客戶端的存儲(chǔ)器存取請(qǐng)求定義的命名轉(zhuǎn)譯為所述一個(gè)或多個(gè)存儲(chǔ)器裝置中的至少一者中的選定保護(hù)區(qū)處的虛擬物理地址。所述存儲(chǔ)器抽象化單元還包含用于以所述虛擬物理地址存取所述一個(gè)或多個(gè)存儲(chǔ)器裝置的存儲(chǔ)器控制邏輯。而且,在所述設(shè)備中,所述選定保護(hù)區(qū)先前已由存儲(chǔ)器抽象化單元定義且分配給請(qǐng)求客戶端。
在其它實(shí)施例中,一種混合存儲(chǔ)器立方體包含多個(gè)存儲(chǔ)器裝置及邏輯庫(kù)。所述邏輯庫(kù)包含:一個(gè)或多個(gè)鏈路接口控制器,其經(jīng)配置以解譯經(jīng)包化存儲(chǔ)器請(qǐng)求;及映射邏輯,其經(jīng)配置以將提供于所述經(jīng)包化存儲(chǔ)器請(qǐng)求中的地址轉(zhuǎn)譯為所述多個(gè)存儲(chǔ)器裝置中的一者或多者上的虛擬物理地址,所述虛擬物理地址屬于預(yù)定義保護(hù)區(qū)。所述邏輯庫(kù)還包含經(jīng)配置以利用所述虛擬物理地址存取所述多個(gè)存儲(chǔ)器裝置中的所示一者或多者的存儲(chǔ)器控制邏輯。
在其它實(shí)施例中,一種系統(tǒng)包含一個(gè)或多個(gè)客戶端及一個(gè)或多個(gè)經(jīng)抽象化存儲(chǔ)器模塊。每一經(jīng)抽象化存儲(chǔ)器模塊包含一個(gè)或多個(gè)存儲(chǔ)器裝置及經(jīng)抽象化存儲(chǔ)器協(xié)議邏輯。所述經(jīng)抽象化存儲(chǔ)器協(xié)議邏輯用于解譯來(lái)自一個(gè)或多個(gè)客戶端的存儲(chǔ)器請(qǐng)求且服務(wù)于去往與所述經(jīng)抽象化存儲(chǔ)器模塊相關(guān)聯(lián)的所述一個(gè)或多個(gè)存儲(chǔ)器裝置的所述存儲(chǔ)器請(qǐng)求。所述經(jīng)抽象化存儲(chǔ)器協(xié)議邏輯還用于將不去往所述經(jīng)抽象化存儲(chǔ)器模塊的所述存儲(chǔ)器請(qǐng)求傳遞到另一經(jīng)抽象化存儲(chǔ)器模塊。每一經(jīng)抽象化存儲(chǔ)器模塊還包含映射邏輯,所述映射邏輯用于將由請(qǐng)求客戶端的存儲(chǔ)器存取請(qǐng)求定義的地址轉(zhuǎn)譯為所述一個(gè)或多個(gè)存儲(chǔ)器裝置中的至少一者中的選定保護(hù)區(qū)處的虛擬物理地址。每一經(jīng)抽象化存儲(chǔ)器模塊還包含用于以所述虛擬物理地址存取所述一個(gè)或多個(gè)存儲(chǔ)器裝置中的所述至少一者的存儲(chǔ)器控制邏輯。
圖8圖解說(shuō)明展示物理地址空間820及連續(xù)地分配的虛擬地址空間(830及840)的存儲(chǔ)器圖式。在此高度虛擬化映射中,虛擬地址空間(830及840)通常以零開(kāi)始且基于已分配多少個(gè)保護(hù)區(qū)而連續(xù)地延伸最高達(dá)最大地址。隨著更多區(qū)被分配,其通常附加到地址空間的頂部上。作為非限制性實(shí)例,此種映射在虛擬軟件機(jī)器中可為有用的。舉例來(lái)說(shuō),當(dāng)多個(gè)操作系統(tǒng)在單個(gè)客戶端上運(yùn)行時(shí)。操作系統(tǒng)可預(yù)期某些軟件元件以特定地址出現(xiàn)。因此,在虛擬軟件環(huán)境中執(zhí)行的操作系統(tǒng)可具有以零開(kāi)始且連續(xù)地構(gòu)建的虛擬地址。
圖8圖解說(shuō)明第一客戶端810A及第二客戶端810B。兩個(gè)客戶端(810A及810B)正存取同一物理存儲(chǔ)器820。物理存儲(chǔ)器820被分段成大小變化的物理保護(hù)區(qū)(820-1到820-6)。第一客戶端810A已被分配四個(gè)虛擬保護(hù)區(qū)(830-1到830-4)以形成連續(xù)虛擬存儲(chǔ)器空間830。也參考圖7,一個(gè)或多個(gè)經(jīng)抽象化存儲(chǔ)器模塊700中的映射邏輯780已將虛擬保護(hù)區(qū)830-1映射到物理保護(hù)區(qū)820-1。類(lèi)似地,將虛擬保護(hù)區(qū)830-2映射到物理保護(hù)區(qū)820-5,將虛擬保護(hù)區(qū)830-3映射到物理保護(hù)區(qū)820-3,且將虛擬保護(hù)區(qū)830-4映射到物理保護(hù)區(qū)820-6。
第二客戶端810B已被分配兩個(gè)虛擬保護(hù)區(qū)(840-1及840-2)以形成連續(xù)虛擬存儲(chǔ)器空間840。也參考圖7,一個(gè)或多個(gè)經(jīng)抽象化存儲(chǔ)器模塊700中的映射邏輯780已將虛擬保護(hù)區(qū)840-1映射到物理保護(hù)區(qū)820-2。類(lèi)似地,將虛擬保護(hù)區(qū)840-2映射到物理保護(hù)區(qū)820-4。
當(dāng)然,在復(fù)雜系統(tǒng)中,物理地址空間可大得多且可包含數(shù)百個(gè)保護(hù)區(qū)。另外,復(fù)雜系統(tǒng)可包含具有非常大虛擬地址空間的許多客戶端。
因此,一種存儲(chǔ)器系統(tǒng)包含定義物理存儲(chǔ)器地址空間及一個(gè)或多個(gè)虛擬存儲(chǔ)器地址空間的多個(gè)存儲(chǔ)器裝置。每一虛擬存儲(chǔ)器地址空間包含多個(gè)虛擬保護(hù)區(qū)以形成連續(xù)虛擬地址空間,其中每一虛擬保護(hù)區(qū)通過(guò)經(jīng)配置以利用經(jīng)抽象化存儲(chǔ)器協(xié)議通信的經(jīng)抽象化存儲(chǔ)器模塊映射到物理存儲(chǔ)器地址空間中的物理保護(hù)區(qū)。
圖9圖解說(shuō)明展示物理地址空間920及可不連續(xù)地分配(即,碎片式)的虛擬地址空間(930及940)的存儲(chǔ)器圖式。在具有非常大地址空間(例如,64位地址系統(tǒng))且具有可在高度分段地址空間中操作的處理器及/或虛擬客戶端的系統(tǒng)中,可不需要執(zhí)行地址轉(zhuǎn)譯。在此些系統(tǒng)中,客戶端看到的虛擬地址空間(930及940)可表現(xiàn)為碎片式。然而,仍可如同圖8中的實(shí)施例一樣來(lái)分配及保護(hù)所述保護(hù)區(qū),但不需要進(jìn)行地址轉(zhuǎn)譯。圖9的實(shí)施例可能提供額外安全性,因?yàn)榭梢驅(qū)⒌刂房臻g的一個(gè)分段溢位到另一分段中而形成許多安全漏洞(及程序隱患)。如果客戶端嘗試存取未分配給其的保護(hù)區(qū),那么因多個(gè)客戶端分配來(lái)自不同存儲(chǔ)器部分的分段而自然形成的“孔洞”將導(dǎo)致異常。
圖9圖解說(shuō)明第一客戶端910A及第二客戶端910B。兩個(gè)客戶端(910A及910B)正存取同一物理存儲(chǔ)器920。物理存儲(chǔ)器920被分段成大小變化的物理保護(hù)區(qū)(920-1到920-6)。第一客戶端910A已被分配三個(gè)虛擬保護(hù)區(qū)(930-1到930-3)以形成碎片式虛擬存儲(chǔ)器空間930。也參考圖7,一個(gè)或多個(gè)經(jīng)抽象化存儲(chǔ)器模塊700中的映射邏輯780已將虛擬保護(hù)區(qū)930-1映射到物理保護(hù)區(qū)920-1。類(lèi)似地,將虛擬保護(hù)區(qū)930-2映射到物理保護(hù)區(qū)920-5,且將虛擬保護(hù)區(qū)930-3映射到物理保護(hù)區(qū)920-6。
第二客戶端910B已被分配兩個(gè)保護(hù)區(qū)(940-1及940-2)以形成碎片式虛擬存儲(chǔ)器空間940。也參考圖7,一個(gè)或多個(gè)經(jīng)抽象化存儲(chǔ)器模塊700中的映射邏輯780已將虛擬保護(hù)區(qū)940-1映射到物理保護(hù)區(qū)920-2。類(lèi)似地,將虛擬保護(hù)區(qū)940-2映射到物理保護(hù)區(qū)920-4。物理保護(hù)區(qū)920-3是可用保護(hù)區(qū),因?yàn)槠渖形幢环峙浣o客戶端。
當(dāng)然,在復(fù)雜系統(tǒng)中,物理地址空間可大得多且可包含數(shù)百個(gè)保護(hù)區(qū)。另外,復(fù)雜系統(tǒng)可包含具有非常大虛擬地址空間的許多客戶端。
因此,一種存儲(chǔ)器系統(tǒng)包含定義物理存儲(chǔ)器地址空間及一個(gè)或多個(gè)虛擬存儲(chǔ)器地址空間的多個(gè)存儲(chǔ)器裝置。每一虛擬存儲(chǔ)器地址空間包含多個(gè)虛擬保護(hù)區(qū)以形成碎片式虛擬地址空間,其中每一虛擬保護(hù)區(qū)通過(guò)經(jīng)配置以利用經(jīng)抽象化存儲(chǔ)器協(xié)議通信的經(jīng)抽象化存儲(chǔ)器模塊映射到物理存儲(chǔ)器地址空間中的物理保護(hù)區(qū)。
圖10圖解說(shuō)明使用經(jīng)抽象化存儲(chǔ)器協(xié)議中的保護(hù)區(qū)存取虛擬地址空間的過(guò)程。在操作1010處,客戶端請(qǐng)求虛擬地址。作為非限制性實(shí)例,此請(qǐng)求可為由用以選擇恰當(dāng)經(jīng)抽象化存儲(chǔ)器模塊700(圖7)的裝置ID、用以定義經(jīng)抽象化存儲(chǔ)器模塊700上的選定保護(hù)區(qū)的區(qū)ID及所述保護(hù)區(qū)內(nèi)的地址定義的名稱。在操作1020處,適當(dāng)經(jīng)抽象化存儲(chǔ)器模塊700上的映射邏輯780(圖7)將所述請(qǐng)求中的所述名稱轉(zhuǎn)譯為物理地址位置。另外,所述請(qǐng)求可包含指示哪客戶端產(chǎn)生請(qǐng)求的客戶端ID且區(qū)權(quán)限邏輯790(圖7)可驗(yàn)證客戶端具有存取物理受保護(hù)區(qū)的權(quán)限。如果查找失敗或客戶端不具有權(quán)限,那么操作塊1050指示將錯(cuò)誤報(bào)告回到請(qǐng)求客戶端。如果查找是成功的且客戶端具有權(quán)限,那么可存取物理存儲(chǔ)器地址空間1030中的物理保護(hù)區(qū)1040。
可以若干種不同方式來(lái)分配所述保護(hù)區(qū)。作為非限制性實(shí)例,客戶端可發(fā)送將保護(hù)區(qū)分配給特定經(jīng)抽象化存儲(chǔ)器模塊700(圖7)的請(qǐng)求。在一些實(shí)施例中,所述客戶端還可請(qǐng)求所請(qǐng)求保護(hù)區(qū)的特定大小。在其它實(shí)施例中,可能不能請(qǐng)求大小且經(jīng)抽象化存儲(chǔ)器模塊700可定義保護(hù)區(qū)的大小。如果經(jīng)抽象化存儲(chǔ)器模塊700具有可用的保護(hù)區(qū),那么其可將所述保護(hù)區(qū)分配給請(qǐng)求客戶端且以區(qū)ID將分配報(bào)告回到客戶端。在一些實(shí)施例中,經(jīng)抽象化存儲(chǔ)器模塊700可利用客戶端ID追蹤請(qǐng)求客戶端,因此其可驗(yàn)證對(duì)所述保護(hù)區(qū)的后續(xù)存取是來(lái)自具有存取所述保護(hù)區(qū)的權(quán)限的客戶端。以此方式,可賦予多個(gè)客戶端對(duì)同一保護(hù)區(qū)的存取權(quán)且每一客戶端可具有不同虛擬到物理地址轉(zhuǎn)譯。
另一選擇是,并非客戶端向特定經(jīng)抽象化存儲(chǔ)器模塊700請(qǐng)求保護(hù)區(qū),而是客戶端可發(fā)出一般分配請(qǐng)求。接著,此一般分配請(qǐng)求可在經(jīng)抽象化存儲(chǔ)器模塊700的網(wǎng)絡(luò)中遵循鏈接算法以找出具有自由保護(hù)區(qū)的第一模塊來(lái)進(jìn)行分配。
在另一分配過(guò)程中,所述客戶端可讀取經(jīng)抽象化存儲(chǔ)器模塊700中的公共表以確定模塊是否具有用于保護(hù)區(qū)的自由空間(例如,固定數(shù)目個(gè)可變大小分段或固定數(shù)目個(gè)頁(yè)狀結(jié)構(gòu))。作為協(xié)議的一部分,所述客戶端還可詢問(wèn)經(jīng)抽象化存儲(chǔ)器模塊700。舉例來(lái)說(shuō),所述客戶端可發(fā)送比如說(shuō)“為我分配X個(gè)吉字節(jié)”的請(qǐng)求,所述請(qǐng)求成功或失敗。另一選擇是,所述客戶端可將所述詢問(wèn)分裂成兩個(gè)詢問(wèn),例如“你有X個(gè)吉字節(jié)嗎?”,如果答案為“是”,那么客戶端可遵循請(qǐng)求而將X個(gè)吉字節(jié)的所述保護(hù)區(qū)賦予所述客戶端。
響應(yīng)于成功分配請(qǐng)求,經(jīng)抽象化存儲(chǔ)器模塊700可產(chǎn)生比如說(shuō)“此存儲(chǔ)器塊現(xiàn)在屬于具有地址X-Y的區(qū)A”的響應(yīng)包,其中A是關(guān)鍵字或區(qū)ID且X-Y描述新物理存儲(chǔ)器地址。
區(qū)權(quán)限邏輯790(圖7)可包含其它權(quán)限字段(例如,讀取存取或?qū)懭氪嫒?,其可在每分段/每ID基礎(chǔ)上經(jīng)啟用以啟用共享數(shù)據(jù)庫(kù)。
每一客戶端知曉哪些保護(hù)區(qū)已分配給其。如果所述客戶端不再需要保護(hù)區(qū),那么其可發(fā)送解除分配請(qǐng)求。經(jīng)抽象化存儲(chǔ)器模塊700可接受解除分配請(qǐng)求且從映射邏輯移除所分配保護(hù)區(qū)。
因此,一種存取存儲(chǔ)器的方法包含利用經(jīng)抽象化存儲(chǔ)器協(xié)議產(chǎn)生存儲(chǔ)器存取請(qǐng)求且在經(jīng)抽象化存儲(chǔ)器模塊處接受所述存儲(chǔ)器存取請(qǐng)求。所述方法還包含將由所述存儲(chǔ)器存取請(qǐng)求定義的命名轉(zhuǎn)譯為與所述經(jīng)抽象化存儲(chǔ)器模塊相關(guān)聯(lián)的一個(gè)或多個(gè)存儲(chǔ)器裝置中的選定保護(hù)區(qū)處的虛擬物理地址且以所述虛擬物理地址存取所述一個(gè)或多個(gè)存儲(chǔ)器裝置。
在無(wú)限制的情況下,可進(jìn)一步表征本發(fā)明的實(shí)施例,如下文所陳述。
實(shí)施例1.一種設(shè)備,其包括:
存儲(chǔ)器抽象化單元,其經(jīng)配置以用于將來(lái)自一個(gè)或多個(gè)客戶端的存儲(chǔ)器存取請(qǐng)求的命名抽象化為一個(gè)或多個(gè)存儲(chǔ)器裝置處的命名,所述存儲(chǔ)器抽象化單元包括:
經(jīng)抽象化存儲(chǔ)器協(xié)議邏輯,其用于解譯來(lái)自所述一個(gè)或多個(gè)客戶端的所述存儲(chǔ)器請(qǐng)求;
映射邏輯,其用于將所述一個(gè)或多個(gè)客戶端中的請(qǐng)求客戶端的所述存儲(chǔ)器存取請(qǐng)求的所述命名轉(zhuǎn)譯為所述一個(gè)或多個(gè)存儲(chǔ)器裝置中的至少一者中的選定保護(hù)區(qū)處的虛擬物理地址;及
存儲(chǔ)器控制邏輯,其用于以所述虛擬物理地址存取所述一個(gè)或多個(gè)存儲(chǔ)器裝置;
其中所述選定保護(hù)區(qū)先前已由所述存儲(chǔ)器抽象化單元定義且分配給所述請(qǐng)求客戶端。
實(shí)施例2.根據(jù)實(shí)施例1所述的設(shè)備,其中所述存儲(chǔ)器抽象化單元進(jìn)一步包括所述存儲(chǔ)器抽象化單元中的區(qū)權(quán)限邏輯,所述區(qū)權(quán)限邏輯經(jīng)配置以在所述請(qǐng)求客戶端具有存取所述選定保護(hù)區(qū)的權(quán)限時(shí)允許完成所述存儲(chǔ)器存取請(qǐng)求,且經(jīng)配置以在所述請(qǐng)求客戶端不具有存取所述選定保護(hù)區(qū)的權(quán)限時(shí)報(bào)告錯(cuò)誤。
實(shí)施例3.根據(jù)實(shí)施例2所述的設(shè)備,其中所述區(qū)權(quán)限邏輯進(jìn)一步經(jīng)配置以響應(yīng)于所述存儲(chǔ)器存取請(qǐng)求是讀取存取還是寫(xiě)入存取而授予存取所述選定保護(hù)區(qū)的權(quán)限。
實(shí)施例4.根據(jù)實(shí)施例1所述的設(shè)備,其中所述存儲(chǔ)器抽象化單元進(jìn)一步包括所述存儲(chǔ)器抽象化單元中的區(qū)權(quán)限邏輯,所述區(qū)權(quán)限邏輯經(jīng)配置以在提供于所述存儲(chǔ)器存取請(qǐng)求中的地址在所述選定保護(hù)區(qū)中時(shí)允許完成所述存儲(chǔ)器存取請(qǐng)求,且經(jīng)配置以在提供于所述存儲(chǔ)器存取請(qǐng)求中的所述地址不在任何經(jīng)定義保護(hù)區(qū)中時(shí)報(bào)告錯(cuò)誤。
實(shí)施例5.根據(jù)實(shí)施例1到4中任一實(shí)施例所述的設(shè)備,其中所述映射邏輯進(jìn)一步經(jīng)配置以用于:
從所述一個(gè)或多個(gè)客戶端中的分配請(qǐng)求客戶端接受分配請(qǐng)求;
確定所述一個(gè)或多個(gè)存儲(chǔ)器裝置中的存儲(chǔ)器裝置中的可用保護(hù)區(qū);
將所述可用保護(hù)區(qū)分配給所述分配請(qǐng)求客戶端;及
將所述所分配保護(hù)區(qū)的位置報(bào)告給所述分配請(qǐng)求客戶端。
實(shí)施例6.根據(jù)實(shí)施例5所述的設(shè)備,其中所述映射邏輯進(jìn)一步經(jīng)配置以用于:
從所述分配請(qǐng)求客戶端接受解除分配請(qǐng)求;及
從所述映射邏輯移除所述所分配保護(hù)區(qū)。
實(shí)施例7.根據(jù)實(shí)施例5所述的設(shè)備,其中從所述分配請(qǐng)求客戶端接受所述分配請(qǐng)求包含接受所請(qǐng)求大小,且分配所述可用保護(hù)區(qū)包含以所述所請(qǐng)求大小分配所述可用保護(hù)區(qū)。
實(shí)施例8.根據(jù)實(shí)施例1到7中任一實(shí)施例所述的設(shè)備,其中所述經(jīng)抽象化存儲(chǔ)器協(xié)議邏輯經(jīng)配置用于使用混合存儲(chǔ)器立方體協(xié)議來(lái)解譯存儲(chǔ)器存取。
實(shí)施例9.根據(jù)實(shí)施例8所述的設(shè)備,其中所述保護(hù)區(qū)經(jīng)配置為混合存儲(chǔ)器立方體中的存儲(chǔ)庫(kù)。
實(shí)施例10.根據(jù)實(shí)施例1到9中任一實(shí)施例所述的設(shè)備,其中所述映射邏輯包含地址轉(zhuǎn)譯表,所述地址轉(zhuǎn)譯表用于將來(lái)自所述請(qǐng)求客戶端的所述命名轉(zhuǎn)換為所述一個(gè)或多個(gè)存儲(chǔ)器裝置中待存取的存儲(chǔ)器裝置的所述命名。
實(shí)施例11.根據(jù)實(shí)施例1到9中任一實(shí)施例所述的設(shè)備,其中所述映射邏輯包含基址寄存器及邊界寄存器以定義存儲(chǔ)器中的每一所分配保護(hù)區(qū)的位置及大小。
實(shí)施例12.根據(jù)實(shí)施例1到11中任一實(shí)施例所述的設(shè)備,其中所述存儲(chǔ)器存取請(qǐng)求包含所述請(qǐng)求客戶端的客戶端ID,且如果所述客戶端ID不具有針對(duì)所述選定保護(hù)區(qū)的權(quán)限,那么所述存儲(chǔ)器控制邏輯不存取所述虛擬物理地址。
實(shí)施例13.根據(jù)實(shí)施例1到11中任一實(shí)施例所述的設(shè)備,其中由所述存儲(chǔ)器存取請(qǐng)求定義的所述地址包含區(qū)ID及所述選定保護(hù)區(qū)內(nèi)的地址,且所述映射邏輯響應(yīng)于所述區(qū)ID而產(chǎn)生所述虛擬物理地址的至少一部分。
實(shí)施例14.一種混合存儲(chǔ)器立方體,其包括:
多個(gè)存儲(chǔ)器裝置;
邏輯庫(kù),其包括:
一個(gè)或多個(gè)鏈路接口控制器,其經(jīng)配置以解譯經(jīng)包化存儲(chǔ)器請(qǐng)求;及
映射邏輯,其經(jīng)配置以將提供于所述經(jīng)包化存儲(chǔ)器請(qǐng)求中的地址轉(zhuǎn)譯為所述多個(gè)存儲(chǔ)器裝置中的一者或多者上的虛擬物理地址,所述虛擬物理地址屬于預(yù)定義保護(hù)區(qū);及
存儲(chǔ)器控制邏輯,其經(jīng)配置以利用所述虛擬物理地址存取所述多個(gè)存儲(chǔ)器裝置中的所述一者或多者。
實(shí)施例15.根據(jù)實(shí)施例14所述的混合存儲(chǔ)器立方體,其中所述邏輯庫(kù)進(jìn)一步包括區(qū)權(quán)限邏輯,所述區(qū)權(quán)限邏輯經(jīng)配置以在提供于所述經(jīng)包化存儲(chǔ)器請(qǐng)求中的所述地址在所述預(yù)定義保護(hù)區(qū)中時(shí)允許完成所述經(jīng)包化存儲(chǔ)器請(qǐng)求,且經(jīng)配置以在提供于所述經(jīng)包化存儲(chǔ)器請(qǐng)求中的所述地址不在任何經(jīng)定義保護(hù)區(qū)中時(shí)報(bào)告錯(cuò)誤。
實(shí)施例16.根據(jù)實(shí)施例14及實(shí)施例15中任一實(shí)施例所述的混合存儲(chǔ)器立方體,其中所述預(yù)定義保護(hù)區(qū)配置為所述混合存儲(chǔ)器立方體中的存儲(chǔ)庫(kù)。
實(shí)施例17.根據(jù)實(shí)施例14到16中任一實(shí)施例所述的混合存儲(chǔ)器立方體,其中所述映射邏輯進(jìn)一步經(jīng)配置以用于:
從分配請(qǐng)求客戶端接受分配請(qǐng)求;
確定所述多個(gè)存儲(chǔ)器裝置中的一個(gè)或多個(gè)存儲(chǔ)器裝置中的可用保護(hù)區(qū);及
將所述可用保護(hù)區(qū)分配給所述分配請(qǐng)求客戶端;及
將所述所分配保護(hù)區(qū)的位置報(bào)告給所述分配請(qǐng)求客戶端。
實(shí)施例18.根據(jù)實(shí)施例17所述的混合存儲(chǔ)器立方體,其中所述映射邏輯進(jìn)一步經(jīng)配置以用于:
從所述分配請(qǐng)求客戶端接受解除分配請(qǐng)求;及
從所述映射邏輯移除所述所分配保護(hù)區(qū)。
實(shí)施例19.根據(jù)實(shí)施例17所述的混合存儲(chǔ)器立方體,其中從所述分配請(qǐng)求客戶端接受所述分配請(qǐng)求包含接受所請(qǐng)求大小,且其中分配所述可用保護(hù)區(qū)包含以所述所請(qǐng)求大小分配所述可用保護(hù)區(qū)。
實(shí)施例20.一種系統(tǒng),其包括:
一個(gè)或多個(gè)經(jīng)抽象化存儲(chǔ)器模塊,每一經(jīng)抽象化存儲(chǔ)器模塊包括:
一個(gè)或多個(gè)存儲(chǔ)器裝置;及
經(jīng)抽象化存儲(chǔ)器協(xié)議邏輯,其用于:
解譯來(lái)自一個(gè)或多個(gè)客戶端的存儲(chǔ)器請(qǐng)求;
服務(wù)于去往與所述經(jīng)抽象化存儲(chǔ)器模塊相關(guān)聯(lián)的所述一個(gè)或多個(gè)存儲(chǔ)器裝置的所述存儲(chǔ)器請(qǐng)求;及
將不去往所述經(jīng)抽象化存儲(chǔ)器模塊的所述存儲(chǔ)器請(qǐng)求傳遞到另一經(jīng)抽象化存儲(chǔ)器模塊;
映射邏輯,其用于將由所述一個(gè)或多個(gè)客戶端中的請(qǐng)求客戶端的存儲(chǔ)器存取請(qǐng)求定義的地址轉(zhuǎn)譯成所述一個(gè)或多個(gè)存儲(chǔ)器裝置中的至少一者中的選定保護(hù)區(qū)處的虛擬物理地址;及
存儲(chǔ)器控制邏輯,其用于以所述虛擬物理地址存取所述一個(gè)或多個(gè)存儲(chǔ)器裝置中的所述至少一者。
實(shí)施例21.根據(jù)實(shí)施例20所述的系統(tǒng),其中所述一個(gè)或多個(gè)經(jīng)抽象化存儲(chǔ)器模塊中的每一者進(jìn)一步包括模塊ID且存儲(chǔ)器請(qǐng)求包含識(shí)別所述一個(gè)或多個(gè)存儲(chǔ)器模塊中的哪一經(jīng)抽象化存儲(chǔ)器模塊將使用所述地址的模塊ID。
實(shí)施例22.根據(jù)實(shí)施例20及實(shí)施例21中任一實(shí)施例所述的系統(tǒng),其中由所述存儲(chǔ)器存取請(qǐng)求定義的所述地址包含區(qū)ID及所述選定保護(hù)區(qū)內(nèi)的地址且所述映射邏輯響應(yīng)于所述區(qū)ID而產(chǎn)生所述虛擬物理地址的至少一部分。
實(shí)施例23.根據(jù)實(shí)施例20到22中任一實(shí)施例所述的系統(tǒng),其中所述一個(gè)或多個(gè)經(jīng)抽象化存儲(chǔ)器模塊包括混合存儲(chǔ)器立方體。
實(shí)施例24.一種存儲(chǔ)器系統(tǒng),其包括:
多個(gè)存儲(chǔ)器裝置,其定義物理存儲(chǔ)器地址空間;
一個(gè)或多個(gè)虛擬存儲(chǔ)器地址空間,每一虛擬存儲(chǔ)器地址空間包括多個(gè)虛擬保護(hù)區(qū)以形成連續(xù)虛擬地址空間,其中每一虛擬保護(hù)區(qū)通過(guò)經(jīng)配置以利用經(jīng)抽象化存儲(chǔ)器協(xié)議通信的經(jīng)抽象化存儲(chǔ)器模塊映射到所述物理存儲(chǔ)器地址空間中的物理保護(hù)區(qū)。
實(shí)施例25.根據(jù)實(shí)施例24所述的存儲(chǔ)器系統(tǒng),其中所述物理保護(hù)區(qū)僅可由已通過(guò)所述經(jīng)抽象化存儲(chǔ)器模塊被賦予存取所述選定保護(hù)區(qū)的權(quán)限的請(qǐng)求客戶端存取。
實(shí)施例26.根據(jù)實(shí)施例24及實(shí)施例25中任一實(shí)施例所述的存儲(chǔ)器系統(tǒng),其中至少一個(gè)物理保護(hù)區(qū)映射到所述兩個(gè)或兩個(gè)以上虛擬存儲(chǔ)器地址空間中的至少兩者中的虛擬保護(hù)區(qū)。
實(shí)施例27.一種存儲(chǔ)器系統(tǒng),其包括:
多個(gè)存儲(chǔ)器裝置,其定義物理存儲(chǔ)器地址空間;
一個(gè)或多個(gè)虛擬存儲(chǔ)器地址空間,每一虛擬存儲(chǔ)器地址空間包括多個(gè)虛擬保護(hù)區(qū)以形成碎片式虛擬地址空間,其中每一虛擬保護(hù)區(qū)通過(guò)經(jīng)配置以利用經(jīng)抽象化存儲(chǔ)器協(xié)議通信的經(jīng)抽象化存儲(chǔ)器模塊映射到所述物理存儲(chǔ)器地址空間中的物理保護(hù)區(qū)。
實(shí)施例28.根據(jù)實(shí)施例27所述的存儲(chǔ)器系統(tǒng),其中所述物理保護(hù)區(qū)僅可由已通過(guò)所述經(jīng)抽象化存儲(chǔ)器模塊被賦予存取所述選定保護(hù)區(qū)的權(quán)限的請(qǐng)求客戶端存取。
實(shí)施例29.根據(jù)實(shí)施例27及實(shí)施例28中任一實(shí)施例所述的存儲(chǔ)器系統(tǒng),其中至少一個(gè)物理保護(hù)區(qū)映射到所述兩個(gè)或兩個(gè)以上虛擬存儲(chǔ)器地址空間中的至少兩者中的虛擬保護(hù)區(qū)。
實(shí)施例30.一種存取存儲(chǔ)器的方法,其包括:
利用經(jīng)抽象化存儲(chǔ)器協(xié)議產(chǎn)生存儲(chǔ)器存取請(qǐng)求;
在經(jīng)抽象化存儲(chǔ)器模塊處接受所述存儲(chǔ)器存取請(qǐng)求;
將由所述存儲(chǔ)器存取請(qǐng)求定義的命名轉(zhuǎn)譯為與所述經(jīng)抽象化存儲(chǔ)器模塊相關(guān)聯(lián)的一個(gè)或多個(gè)存儲(chǔ)器裝置中的選定保護(hù)區(qū)處的虛擬物理地址;及
以所述虛擬物理地址存取所述一個(gè)或多個(gè)存儲(chǔ)器裝置。
實(shí)施例31.根據(jù)實(shí)施例30所述的方法,其進(jìn)一步包括在產(chǎn)生所述存儲(chǔ)器請(qǐng)求的請(qǐng)求客戶端具有存取所述選定保護(hù)區(qū)的權(quán)限時(shí)允許完成所述存儲(chǔ)器存取請(qǐng)求,且在所述請(qǐng)求客戶端不具有存取所述選定保護(hù)區(qū)的權(quán)限時(shí)報(bào)告錯(cuò)誤。
實(shí)施例32.根據(jù)實(shí)施例30及實(shí)施例32中任一實(shí)施例所述的方法,其進(jìn)一步包括響應(yīng)于所述存儲(chǔ)器存取請(qǐng)求是讀取存取還是寫(xiě)入存取而授予存取所述選定保護(hù)區(qū)的權(quán)限。
實(shí)施例33.根據(jù)實(shí)施例30所述的方法,其進(jìn)一步包括在提供于所述存儲(chǔ)器存取請(qǐng)求中的所述地址在所述選定保護(hù)區(qū)中時(shí)允許完成存儲(chǔ)器存取請(qǐng)求,且在提供于所述存儲(chǔ)器存取請(qǐng)求中的所述地址不在任何經(jīng)定義保護(hù)區(qū)中時(shí)報(bào)告錯(cuò)誤。
上文所描述且附圖中所圖解說(shuō)明的本發(fā)明的實(shí)施例不限制本發(fā)明的范圍,因?yàn)檫@些實(shí)施例僅是本發(fā)明的實(shí)施例的實(shí)例。本發(fā)明由所附權(quán)利要求書(shū)及其合法等效內(nèi)容界定。任何等效實(shí)施例均處于本發(fā)明的范圍內(nèi)。實(shí)際上,除本文中所展示及描述的那些內(nèi)容外,所屬領(lǐng)域的技術(shù)人員根據(jù)本說(shuō)明還將明了本發(fā)明的各種修改(例如所描述的要素的替代性有用組合)。這些修改及實(shí)施例也歸屬于所附權(quán)利要求書(shū)及其合法等效內(nèi)容的范圍內(nèi)。