加載通過(guò)故障機(jī)制的制作方法
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)一般涉及一種改進(jìn)的數(shù)據(jù)處理裝置和方法,并且更具體地涉及加載通過(guò)故 障(load-through fault)機(jī)制。
【背景技術(shù)】
[0002] 閃存和持久存儲(chǔ)器的其它演化形式在存儲(chǔ)層級(jí)結(jié)構(gòu)中引入新的層。這一層的訪問(wèn) 延時(shí)顯著低于磁旋轉(zhuǎn)盤(pán),但是其延時(shí)仍然顯著長(zhǎng)于動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器ORAM)。為此,當(dāng) 前不利用"加載-存儲(chǔ)"字節(jié)尋址模型部署閃存,而是利用盤(pán)狀塊輸入/輸出(I/O)管理閃 存。以此方式管理的閃存轉(zhuǎn)化為需要傳統(tǒng)的盤(pán)狀訪問(wèn)和編程方法,其導(dǎo)致在管理快閃時(shí)加 長(zhǎng)的中央處理單元(CPU)路徑長(zhǎng)度以及附加延時(shí)。
【發(fā)明內(nèi)容】
[0003] 在一個(gè)說(shuō)明性實(shí)施例中,在數(shù)據(jù)處理系統(tǒng)中,提供一種用于訪問(wèn)混合硬件管理的 高速緩存中的數(shù)據(jù)的方法。該說(shuō)明性實(shí)施例響應(yīng)于接收到在有效地址執(zhí)行操作的請(qǐng)求,確 定與有效地址關(guān)聯(lián)的實(shí)際地址是否駐留在頁(yè)表中。該說(shuō)明性實(shí)施例響應(yīng)于實(shí)際地址存在于 頁(yè)表中,確定實(shí)際地址是涉及快閃頁(yè)面還是常規(guī)頁(yè)面。該說(shuō)明性實(shí)施例響應(yīng)于實(shí)際地址涉 及快閃頁(yè)面,確定快閃頁(yè)面是否駐留在系統(tǒng)存儲(chǔ)器的專(zhuān)門(mén)作為混合硬件管理的高速緩存的 一部分中。響應(yīng)于快閃頁(yè)面無(wú)法駐留在混合硬件管理的高速緩存中,該說(shuō)明性實(shí)施例發(fā)布 加載通過(guò)故障,由此允許故障處理器執(zhí)行該請(qǐng)求,以在快閃頁(yè)面被帶入混合硬件管理的高 速緩存的同時(shí)執(zhí)行其它工作;分配混合硬件管理的高速緩存中的新的混合硬件管理的高速 緩存實(shí)際地址;以及將快閃頁(yè)面從閃存移動(dòng)至混合硬件管理的高速緩存。該說(shuō)明性實(shí)施例 然后將操作發(fā)布至該新的混合硬件管理的高速緩存實(shí)際地址。
[0004] 在其它說(shuō)明性實(shí)施例中,提供了 一種計(jì)算機(jī)程序產(chǎn)品,其包括具有計(jì)算機(jī)可讀程 序的計(jì)算機(jī)可用或可讀介質(zhì)。當(dāng)在計(jì)算設(shè)備上執(zhí)行時(shí),計(jì)算機(jī)程序使得計(jì)算設(shè)備執(zhí)行以上 關(guān)于方法的說(shuō)明性實(shí)施例概述的操作中的不同操作以及它們的組合。
[0005] 在另一說(shuō)明性實(shí)施例中,提供了一種系統(tǒng)/裝置。該系統(tǒng)/裝置可以包括一個(gè)或 多個(gè)處理器、以及耦接至所述一個(gè)或多個(gè)處理器的存儲(chǔ)器。該存儲(chǔ)器可以包括指令,當(dāng)由所 述一個(gè)或多個(gè)處理器執(zhí)行時(shí),所述指令使得所述一個(gè)或多個(gè)處理器執(zhí)行以上關(guān)于方法的說(shuō) 明性實(shí)施例概述的操作中的不同操作以及它們的組合。
[0006] 將在以下對(duì)本發(fā)明的示例實(shí)施例的詳細(xì)描述中描述本發(fā)明的這些和其它特征和 優(yōu)點(diǎn),或者,鑒于以下對(duì)本發(fā)明的示例實(shí)施例的詳細(xì)描述,本發(fā)明的這些和其它特征和優(yōu)點(diǎn) 對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)說(shuō)將變得清楚。
【附圖說(shuō)明】
[0007] 當(dāng)結(jié)合附圖閱讀時(shí),通過(guò)參考以下對(duì)說(shuō)明性實(shí)施例的詳細(xì)描述,本發(fā)明以及其優(yōu) 選使用方式和其它目的和優(yōu)點(diǎn)將得到最佳理解,其中:
[0008] 圖1是可以實(shí)施說(shuō)明性實(shí)施例的各方面的計(jì)算設(shè)備的示例框圖;
[0009] 圖2描繪了根據(jù)說(shuō)明性實(shí)施例的當(dāng)前存儲(chǔ)層級(jí)結(jié)構(gòu);
[0010]圖3描繪了根據(jù)說(shuō)明性實(shí)施例的、具有在操作系統(tǒng)與硬件存儲(chǔ)器管理單元之間的 新的協(xié)作形式的虛擬存儲(chǔ)器管理的存儲(chǔ)層級(jí)結(jié)構(gòu);
[0011] 圖4描繪了根據(jù)說(shuō)明性實(shí)施例的存儲(chǔ)器管理單元的功能框圖;
[0012] 圖5圖示了根據(jù)說(shuō)明性實(shí)施例的、在虛擬地址空間與系統(tǒng)存儲(chǔ)器之間的示例性映 射,其中該系統(tǒng)存儲(chǔ)器被分為作為系統(tǒng)存儲(chǔ)器而操作的一部分、以及作為另一級(jí)別的高速 緩存(L4高速緩存)而操作的一部分;
[0013] 圖6描繪了根據(jù)說(shuō)明性實(shí)施例的、在管理系統(tǒng)存儲(chǔ)器實(shí)施的高速緩存時(shí)由存儲(chǔ)器 管理單元(MMU)執(zhí)行的操作的流程圖;
[0014] 圖7描繪了根據(jù)說(shuō)明性實(shí)施例的、響應(yīng)于加載通過(guò)故障被發(fā)布至處理器而由處理 器執(zhí)行的操作系統(tǒng)和/或軟件(0S/SW)所執(zhí)行的操作的流程圖;和
[0015] 圖8描繪了根據(jù)說(shuō)明性實(shí)施例的、在響應(yīng)于另一頁(yè)面需要被加載或者主動(dòng)地為了 維持一些可用于直接分派的自由L4高速緩存頁(yè)面,而從系統(tǒng)存儲(chǔ)器的L4高速緩存部分中 逐出駐留快閃頁(yè)面時(shí),由存儲(chǔ)器管理單元(MMU)執(zhí)行的操作的流程圖。
【具體實(shí)施方式】
[0016] 在當(dāng)前的數(shù)據(jù)處理系統(tǒng)中,已經(jīng)存在多個(gè)級(jí)別的硬件管理的高速緩存,諸如,級(jí)別 1(L1)高速緩存、級(jí)別2 (L2)高速緩存、以及級(jí)別3 (L3)高速緩存。這些高速緩存的每個(gè)在 比動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)高的層,使得這些高速緩存緩存DRAM內(nèi)容。這些高速緩存 的管理對(duì)于操作系統(tǒng)和由操作系統(tǒng)執(zhí)行的軟件完全透明。這是可能的,因?yàn)闊o(wú)論DRAM延 時(shí)如何,由于在這些高速緩存中的未命中而導(dǎo)致的最差情況的延時(shí)都是DRAM延時(shí)的情況, 艮P,大約100納秒。這些類(lèi)型的延時(shí)在用于中央處理單元的(CPU的)要在該CPU中停滯的 加載或存儲(chǔ)指令等待訪問(wèn)完成的容限內(nèi)。
[0017] 因此,說(shuō)明性實(shí)施例提供了在操作系統(tǒng)與硬件存儲(chǔ)器管理單元之間的新協(xié)作形式 的虛擬存儲(chǔ)器管理,導(dǎo)致具有操作系統(tǒng)虛擬存儲(chǔ)器管理的混合硬件管理的高速緩存。說(shuō)明 性實(shí)施例創(chuàng)建另一級(jí)別的硬件管理的高速緩存,其在閃存前面的諸如DRAM的系統(tǒng)存儲(chǔ)器 中被實(shí)施。在此情況下,硬件存儲(chǔ)器管理單元完全管理DRAM高速緩存,執(zhí)行其自己最近最 少使用的(LRU)算法,并且管理數(shù)據(jù)在DRAM高速緩存與閃存之間的移動(dòng)。通過(guò)在DRAM中 創(chuàng)建此硬件管理的高速緩存,使操作系統(tǒng)減輕用運(yùn)行在CPU上的軟件執(zhí)行對(duì)新硬件管理的 高速緩存的任何管理。然而,由于在新的硬件管理的高速緩存中的未命中而導(dǎo)致的最差情 況延時(shí)現(xiàn)在是閃存延時(shí)的函數(shù)。對(duì)于要被停滯的CPU加載或存儲(chǔ)等待該加載或存儲(chǔ)完成來(lái) 說(shuō),可能為大約10至100微秒量級(jí)的此延時(shí)可能是不能接受的。因此,說(shuō)明性實(shí)施例還提 供對(duì)虛擬存儲(chǔ)器管理的額外提升。
[0018] 因此,可以在許多不同類(lèi)型的數(shù)據(jù)處理環(huán)境中利用說(shuō)明性實(shí)施例。為了提供用于 描述說(shuō)明性實(shí)施例的具體元件和功能性的上下文,在此后提供圖1作為可以實(shí)施說(shuō)明性實(shí) 施例的各方面的示例環(huán)境。應(yīng)理解,圖1僅僅是示例,并且不意圖聲稱或暗示關(guān)于可以實(shí)施 本發(fā)明的各方面或?qū)嵤├沫h(huán)境的任何限制。可以在不違背本發(fā)明的精神和范圍的情況下 對(duì)所描繪的環(huán)境進(jìn)行許多修改。
[0019] 圖1是可以實(shí)施說(shuō)明性實(shí)施例的各方面的示例數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系 統(tǒng)100是可以設(shè)置實(shí)施用于本發(fā)明的說(shuō)明性實(shí)施例的處理的計(jì)算機(jī)可用代碼或指令的計(jì) 算機(jī)的示例。
[0020] 在所描繪的示例中,數(shù)據(jù)處理系統(tǒng)100采用包括北橋和存儲(chǔ)器控制器集線器(NB/ MCH) 102以及南橋和輸入/輸出(I/O)控制器集線器(SB/ICH) 104的集線器架構(gòu)。處理單 元106、主存儲(chǔ)器108和圖形處理器110連接至NB/MCH 102。圖形處理器110可以通過(guò)加 速圖形端口(AGP)連接至NB/MCH102。
[0021] 在所描繪的示例中,局域網(wǎng)(LAN)適配器112連接至SB/ICH 104。音頻適配器 116、鍵盤(pán)和鼠標(biāo)適配器120、調(diào)制解調(diào)器122、只讀存儲(chǔ)器(ROM) 124、硬盤(pán)驅(qū)動(dòng)器(HDD) 126、 ⑶-ROM驅(qū)動(dòng)器130、通用串行總線(USB)端口和其它通信端口 132、以及PCI/PCIe設(shè)備134 通過(guò)總線138和總線140連接至SB/ICH 104。例如,PCI/PCIe設(shè)備可以包括以太網(wǎng)適配 器、添加卡(add-in card)、以及用于筆記本型計(jì)算機(jī)的PC卡。PCI使用卡總線控制器、而 PCIe不使用。例如,ROM 124可以是快閃基本輸入/輸出系統(tǒng)(BIOS)。
[0022] HDD 126 和 CD-ROM 驅(qū)動(dòng)器 130 通過(guò)總線 140 連接至 SB/ICH 104。例如,HDD 126 和CD-ROM驅(qū)動(dòng)器130可以使用電子集成驅(qū)動(dòng)器(IDE)或串行高級(jí)技術(shù)附件(SATA)接口。 超級(jí)I/0(SI0)設(shè)備136可以連接至SB/ICH104。
[0023] 操作系統(tǒng)運(yùn)行在處理單元106上。操作系統(tǒng)協(xié)調(diào)并提供對(duì)圖1中的數(shù)據(jù)處理系統(tǒng) 100內(nèi)的各個(gè)組件的控制。作為客戶端,操作系統(tǒng)可以是諸如Microsoft" Windows 7'K的 市售的操作系統(tǒng)。諸如JavaTM編程系統(tǒng)的面向?qū)ο蟮木幊滔到y(tǒng)可以與操作系統(tǒng)結(jié)合地運(yùn) 行,并提供從在數(shù)據(jù)處理系統(tǒng)1〇〇上執(zhí)行的JavaTM程序或應(yīng)用對(duì)操作系統(tǒng)的調(diào)用。
[0024] 作為服務(wù)器,數(shù)據(jù)處理系統(tǒng)100可以是例如運(yùn)行高級(jí)交互執(zhí)行程序(AIX? )操作 系統(tǒng)或LINUX?操作系統(tǒng)的IBM?eServer?系統(tǒng)p?甘算機(jī)系統(tǒng)。數(shù)據(jù)處理系統(tǒng)100可 以是在處理單元106中包括多個(gè)處理器的對(duì)稱多處理器(SMP)系統(tǒng)。替代地,可以采用單 處理器系統(tǒng)。
[0025] 用于操作系統(tǒng)、面向?qū)ο蟮木幊滔到y(tǒng)以