亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

高速非易失性存儲器設(shè)備的制作方法

文檔序號:6455157閱讀:266來源:國知局
專利名稱:高速非易失性存儲器設(shè)備的制作方法
髙速非易失性存儲器設(shè)備
些旦
NT尿
當(dāng)引導(dǎo)時(shí),當(dāng)代個(gè)人計(jì)算機(jī)在用戶能夠?qū)σ蝗蝿?wù)進(jìn)行操作之前經(jīng)?;ㄙM(fèi)大 約二十秒來加載操作系統(tǒng)。該長延遲使用戶感到煩惱,并且有時(shí)使得用戶在可 以使用完成該任務(wù)的其他手段時(shí)卻不能打斷計(jì)算機(jī)的啟動,由此限制了個(gè)人計(jì) 算機(jī)的有用性。
為了避免必須引導(dǎo)計(jì)算機(jī)以便使用其功能,已經(jīng)引入了各種解決方案,諸
如使得計(jì)算機(jī)在其先前使用之后進(jìn)入待機(jī)狀態(tài)(例如,ACPIS3睡眠狀態(tài))。 在待機(jī)狀態(tài)中,向系統(tǒng)存儲器提供某些電量以保留存儲器內(nèi)容。雖然待機(jī)允許 個(gè)人計(jì)算機(jī)相對快速地恢復(fù)到其有用的狀態(tài),但待機(jī)具有當(dāng)在睡眠模式時(shí)耗盡
電池的缺點(diǎn),并因此并非始終是合乎需要的。待機(jī)模式還會在掉電的情況下丟 失數(shù)據(jù),這意味著即使臺式機(jī)或插電式筆記本也可能在電源故障期間丟失數(shù) 據(jù)。
提供快速啟動的另一解決方案被稱為休眠(例如,ACPIS4狀態(tài)),其中 存儲器的內(nèi)容在休眠時(shí)被傳送到硬盤休眠文件,并且當(dāng)恢復(fù)到正常操作狀態(tài)時(shí) 從休眠文件中讀回。該解決方案也有缺點(diǎn),包括它花費(fèi)相對較長的時(shí)間來恢復(fù), 這是因?yàn)樾菝呶募枰獜南鄬^慢的硬盤驅(qū)動器傳送回到系統(tǒng)存儲器并解包。
概述
提供本概述以便以簡化形式介紹將在以下的詳細(xì)描述中進(jìn)一步描述的一 些代表性概念。本概述并不旨在標(biāo)識出所要求保護(hù)的主題的關(guān)鍵特征或必要特 征,也不旨在用于以任何方式幫助確定所要求保護(hù)的主題的范圍。
簡言之,此處所描述的主題的各方面涉及一種高速非易失性存儲器設(shè)備, 其包括經(jīng)由接口耦合到諸如單獨(dú)的閃存芯片或一個(gè)閃存芯片的單獨(dú)區(qū)域等各 組非易失性存儲的控制器。該控制器包括通過在接口之間交錯(cuò)寫入,包括通 過在適當(dāng)時(shí)在接口之間并行寫入來處理基本上任意大小的請求的邏輯。例如, 數(shù)據(jù)可經(jīng)由直接存儲器存取(DMA)傳輸來接收,并且作為塊寫來寫入閃存??刂破骶S護(hù)與寫請求相關(guān)聯(lián)的信息以允許交錯(cuò)的數(shù)據(jù)在稍后被讀回時(shí)被重新 組裝到其正確的相對位置。
當(dāng)控制器接收到讀請求時(shí),該控制器通過使用所維護(hù)的信息來確定對應(yīng)于 該請求的數(shù)據(jù)是如何交錯(cuò)和存儲的來處理該讀請求。該數(shù)據(jù)然后通過從用于寫 入該數(shù)據(jù)的適當(dāng)?shù)慕涌谧x回每個(gè)塊(或其他子集)來返回。例如,數(shù)據(jù)可經(jīng)由
DMA傳輸來返回。
特別地,該高速非易失性存儲器設(shè)備由此提供一種允許個(gè)人計(jì)算機(jī)快速引 導(dǎo)或從休眠或其他降低功率狀態(tài)中恢復(fù),由此使得個(gè)人計(jì)算機(jī)就例如啟動時(shí)間 而言更像消費(fèi)電子設(shè)備的硬件設(shè)備和軟件解決方案。該高速非易失性存儲器設(shè) 備還可出于其他數(shù)據(jù)存儲目的來使用,諸如在正常操作期間的高速緩存和文件 存儲,諸如用于提供比硬盤交換更快的額外的存儲器。因?yàn)榭刂破魈幚矸且资?性存儲器和計(jì)算機(jī)系統(tǒng)的剩余部分之間的轉(zhuǎn)換,所以可經(jīng)由單個(gè)請求來保存任 意量的數(shù)據(jù),而無需由數(shù)據(jù)源來特殊格式化,由此便于快速操作。
結(jié)合附圖閱讀以下詳細(xì)描述,本發(fā)明的其他優(yōu)點(diǎn)會變得顯而易見。
附圖簡述
作為示例而非限制,在附圖中示出了本發(fā)明,附圖中相同的附圖標(biāo)記指示
相同或相似的元素,附圖中


圖1示出了可以將本發(fā)明的各方面并入其中的通用計(jì)算環(huán)境的說明性示例。
圖2是其中存在高速非易失性存儲器設(shè)備的示例個(gè)人計(jì)算機(jī)系統(tǒng)體系結(jié) 構(gòu)的表示。
圖3是示例高速非易失性存儲器設(shè)備的表示。
圖4是示例高速非易失性存儲器設(shè)備的表示,包括由其中的控制器邏輯執(zhí) 行以便將數(shù)據(jù)寫入非易失性存儲的各示例步驟。
圖5是示例高速非易失性存儲器設(shè)備的表示,包括由其中的控制器邏輯執(zhí) 行以便從非易失性存儲讀取數(shù)據(jù)的各示例步驟。
詳細(xì)描述示例性操作環(huán)境
圖1示出了可在其上實(shí)現(xiàn)本發(fā)明的合適的計(jì)算系統(tǒng)環(huán)境100的示例。計(jì)算 系統(tǒng)環(huán)境100只是合適計(jì)算環(huán)境的一個(gè)示例,而非意在暗示對本發(fā)明使用范圍
或功能有任何限制。也不應(yīng)該把計(jì)算環(huán)境100解釋為對示例性操作環(huán)境100中
示出的任一組件或其組合有任何依賴性或要求。
本發(fā)明可用各種其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來操作。適用于本發(fā)
明的公知的計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于個(gè)人計(jì)算機(jī)、服 務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、圖形輸入板設(shè)備、多處理器系統(tǒng)、基于微 處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型計(jì) 算機(jī)、包括上述系統(tǒng)或設(shè)備中的任一個(gè)的分布式計(jì)算機(jī)環(huán)境等。
本發(fā)明可在諸如程序模塊等由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的通用上 下文中描述。 一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型 的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。本發(fā)明也可以在其中任務(wù)由通過
通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)施。在分布式計(jì)算環(huán) 境中,程序模塊可以位于包括存儲器存儲設(shè)備在內(nèi)的本地和/或遠(yuǎn)程計(jì)算機(jī)存儲
介質(zhì)中。
參考圖1,用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括計(jì)算機(jī)110形式的通用計(jì)算 設(shè)備。計(jì)算機(jī)110的組件可以包括但不限于處理單元120、系統(tǒng)存儲器130 和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線 121。系統(tǒng)總線121可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲器總 線或存儲控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任一種的局部總 線。作為示例,而非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總 線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)型ISA (EISA)總線、和外圍部件 互連(PCI)總線(也稱為夾層(Mezzanine)總線)。
計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能由計(jì) 算機(jī)IIO訪問的任何可用介質(zhì),而且包含易失性和非易失性介質(zhì)以及可移動、 不可移動介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲介質(zhì) 和通信介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括以用于存儲諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、 程序模塊或其它數(shù)據(jù)這樣的信息的任何方法或技術(shù)來實(shí)現(xiàn)的易失性和非易失
8性、可移動和不可移動介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括,但不限于,RAM、 ROM、 EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它 光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設(shè)備、或能用于存儲所需 信息且可以由計(jì)算機(jī)100訪問的任何其它介質(zhì)。通信介質(zhì)通常以諸如載波或其 它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或 其它數(shù)據(jù),并包括任一信息傳送介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號"指的是其一個(gè)或 多個(gè)特征以在信號中編碼信息的方式被設(shè)定或更改的信號。作為示例而非限 制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì),諸 如聲學(xué)、RF、紅外線和其它無線介質(zhì)。上述中的任意組合也應(yīng)包括在計(jì)算機(jī)可 讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲器130包括易失性和/或非易失性存儲器形式的計(jì)算機(jī)存儲介質(zhì), 如只讀存儲器(ROM) 131和隨機(jī)存取存儲器(RAM) 132?;据斎?輸出系 統(tǒng)133 (BIOS)包含有助于諸如啟動時(shí)在計(jì)算機(jī)110中的元件之間傳遞信息的 基本例程,它通常被存儲在ROM131中。RAM 132通常包含處理單元120可 以立即訪問和/或目前正在其上操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限, 圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110還可以包括其它可移動/不可移動、易失性/非易失性計(jì)算機(jī)存 儲介質(zhì)。僅作為示例,圖l示出了從不可移動、非易失性磁介質(zhì)中讀取或向其 寫入的硬盤驅(qū)動器141,從可移動、非易失性磁盤152中讀取或向其寫入的磁 盤驅(qū)動器151,以及從諸如CDROM或其它光學(xué)介質(zhì)等可移動、非易失性光盤 156中讀取或向其寫入的光盤驅(qū)動器155??梢栽谑纠圆僮鳝h(huán)境中使用的其 它可移動/不可移動、易失性/非易失性計(jì)算機(jī)存儲介質(zhì)包括但不限于,磁帶盒、 閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū) 動器141通常由不可移動存儲器接口,諸如接口 140連接至系統(tǒng)總線121,磁 盤驅(qū)動器151和光盤驅(qū)動器155通常由可移動存儲器接口,諸如接口 150連接 至系統(tǒng)總線121。
以上描述并在圖1中示出的驅(qū)動器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲介質(zhì)為計(jì)算 機(jī)110提供了對計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。例 如,在圖1中,硬盤驅(qū)動器141被示為存儲操作系統(tǒng)144、應(yīng)用程序145、其
9它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用 程序135、其它程序模塊136和程序數(shù)據(jù)137相同,也可以與它們不同。操作 系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147在這里被標(biāo)注了 不同的標(biāo)號是為了說明至少它們是不同的副本。用戶可通過諸如圖形輸入板或 者電子數(shù)字化儀164、話筒163、鍵盤162和定點(diǎn)設(shè)備161 (通常指的是鼠標(biāo)、 跟蹤球或觸摸墊)等輸入設(shè)備向計(jì)算機(jī)110輸入命令和信息。圖1中未示出的 其它輸入設(shè)備可以包括操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。這些 和其它輸入設(shè)備通常由耦合至系統(tǒng)總線的用戶輸入接口 160連接至處理單元 120,但也可以由其它接口或總線結(jié)構(gòu),諸如并行端口、游戲端口或通用串行 總線(USB)連接。監(jiān)視器191或其它類型的顯示設(shè)備也經(jīng)由接口,諸如視頻 接口 190連接至系統(tǒng)總線121。監(jiān)視器191也可以與觸摸屏面板等集成。注意 到監(jiān)視器和/或觸摸屏面板可以在物理上耦合至其中包括計(jì)算設(shè)備110的外殼, 諸如在圖形輸入板型個(gè)人計(jì)算機(jī)中。此外,諸如計(jì)算設(shè)備110等計(jì)算機(jī)還可以 包括其它外圍輸出設(shè)備,諸如揚(yáng)聲器195和打印機(jī)196,它們可以通過輸出外 圍接口 194等連接。
計(jì)算機(jī)110可使用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)180的邏輯連 接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、 網(wǎng)絡(luò)PC、對等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括許多或所有以上相 對于計(jì)算機(jī)IIO所描述的元件,盡管在圖1中僅示出了存儲器存儲設(shè)備181。 圖1中所示的邏輯連接包括局域網(wǎng)(LAN) 171和廣域網(wǎng)(WAN) 173,但也 可以包括其它網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng) 和因特網(wǎng)中是常見的。
當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170連 接至LAN171。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)110通常包括調(diào)制解調(diào) 器172或用于通過諸如因特網(wǎng)等WAN 173建立通信的其它裝置。調(diào)制解調(diào)器 172可以是內(nèi)置或外置的,它可以通過用戶輸入接口 160或其它合適的機(jī)制連 接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對于計(jì)算機(jī)110所描述的程序模塊或 其部分可被儲存在遠(yuǎn)程存儲器存儲設(shè)備中。作為示例而非局限,圖l示出遠(yuǎn)程 應(yīng)用程序185駐留在存儲器設(shè)備181上。可以理解,所示的網(wǎng)絡(luò)連接是示例性的,也可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。
輔助顯示子系統(tǒng)199可經(jīng)由用戶接口 160連接以允許諸如程序內(nèi)容、系統(tǒng)
狀態(tài)和事件通知等數(shù)據(jù)被提供給用戶,即使計(jì)算機(jī)系統(tǒng)的主要部分處于低功率
狀態(tài)中。輔助顯示子系統(tǒng)199可連接至調(diào)制解調(diào)器172和/或網(wǎng)絡(luò)接口 170以允 許在主處理單元120處于低功率狀態(tài)中時(shí)在這些系統(tǒng)之間進(jìn)行通信。
高速非易失性存儲器設(shè)備
此處所描述的技術(shù)的各方面涉及一種提供快速引導(dǎo)或從休眠中恢復(fù)以及 其他用途的非易失性存儲器設(shè)備。然而,如可以理解的,此處所描述的技術(shù)并 不限于任何特定用途或類型的睡眠狀態(tài),例如,完全通電和完全斷電之間的其 他狀態(tài)可從這一設(shè)備中獲益,并且在操作狀態(tài)中時(shí)的一般使用以便有助于性能 也是可能的。由此,本發(fā)明不限于此處所描述的示例、使用模型、結(jié)構(gòu)或功能。 相反,此處所描述的任何使用模型、示例、結(jié)構(gòu)或功能都是非限制性的,并且 本發(fā)明一般能夠以在計(jì)算和數(shù)據(jù)存儲方面提供好處和優(yōu)點(diǎn)的各種方式來使用。
在圖2所一般表示的一個(gè)示例實(shí)現(xiàn)中,此處所描述的技術(shù)的一部分被結(jié)合 到耦合到典型的北橋/南橋芯片組的南橋組件202的高速非易失性存儲器設(shè)備 200中。如在這一體系結(jié)構(gòu)中已知的,(可對應(yīng)于圖1的計(jì)算機(jī)系統(tǒng)110) CPU 204通過總線和北橋組件206耦合到動態(tài)ram 208。北橋組件206進(jìn)而通過另 一總線耦合到南橋組件202,南橋組件202耦合到I/O設(shè)備。硬盤驅(qū)動器210 連同高速非易失性存儲器設(shè)備200 —起被例示為連接的I/O設(shè)備,盡管可連接 眾多其他類型的設(shè)備。例如,出于可擴(kuò)展性的目的,在某些示例體系結(jié)構(gòu)中, 南橋202具有用于將PCI Express (PCIe)組件耦合到計(jì)算機(jī)系統(tǒng)的接口 ,并且 這是可以耦合諸如設(shè)備200等高速非易失性存儲器設(shè)備的一種方式。用于耦合 高速非易失性存儲器設(shè)備的桌上型(例如,PCIe卡)的替換方案包括諸如迷你 pci、 PCMCIA、和Express卡等組件、被制成插入專用連接器,或甚至更直接 地將設(shè)備耦合(例如,焊接)到主板的組件封裝。本質(zhì)上,對于所需高速是足 夠的將非易失性存儲器設(shè)備耦合到計(jì)算機(jī)系統(tǒng)的任何方式和/或手段是等效的。 圖3示出了高速非易失性存儲器設(shè)備200的一個(gè)示例,其包括閃存設(shè)備 320-325。如可以理解的,該設(shè)備通過允許發(fā)生基本上并行的讀和寫操作的交錯(cuò)技術(shù)比常規(guī)閃存設(shè)備更快。盡管示出了閃存(例如,基于NAND或基于NOR 的),但可以理解,可以使用任何非易失性存儲裝置來替換閃存或作為其補(bǔ)充, 包括備有電池的RAM。盡管在圖3中例示了六個(gè)這樣的閃存設(shè)備320-325,但 可以理解,存儲器設(shè)備200可包含任何實(shí)用數(shù)量的閃存芯片等等。
此外,可以理解,設(shè)備制造商可以在單個(gè)集成電路封裝中實(shí)現(xiàn)該設(shè)備,和 /或還可提供到更多組合的閃存組的并行接口,例如,具有到單獨(dú)區(qū)域的六個(gè)并 行接口的一組閃存本質(zhì)上等價(jià)于各自具有其自己的接口的六個(gè)獨(dú)立的閃存芯 片。換言之,代替具有多個(gè)單獨(dú)的閃存設(shè)備320-325等具有單個(gè)存儲器設(shè)備, 其具有可各自經(jīng)由單獨(dú)接口等被同時(shí)訪問的內(nèi)部并行區(qū)域本質(zhì)上是等效的。例 如,具有相對快得多的接口的NOR類型的設(shè)備可提供該芯片上可被同時(shí)讀寫 的多個(gè)區(qū)域。如此處所使用的,關(guān)于閃存的術(shù)語"接口"包括用于與一組閃存進(jìn) 行通信的任何機(jī)制,該組閃存包括包含獨(dú)立閃存設(shè)備的一組閃存或包含閃存設(shè) 備的可單獨(dú)訪問區(qū)域的 一組閃存。
為了實(shí)現(xiàn)所需的高速操作,存儲器設(shè)備200包括控制器330??刂破?30 包括邏輯332,其特別地懂得如何以對應(yīng)于在其上接收發(fā)往該閃存的數(shù)據(jù)并且 在其上發(fā)送從該閃存中讀取的數(shù)據(jù)的閃存接口/協(xié)議和外部接口/協(xié)議的方式從 該閃存中讀取并向其寫入。換言之,控制器邏輯部分地?fù)?dān)當(dāng)傳輸機(jī)制和非易失 性存儲器之間的轉(zhuǎn)換器。在圖3的示例中,外部接口/協(xié)議基于PCIe標(biāo)準(zhǔn),然 而,可容易地理解,實(shí)際上可以使用任何適合的數(shù)據(jù)通信機(jī)制和相應(yīng)的協(xié)議, 例如,基于SATA (串行高級技術(shù)附件)的總線接口和協(xié)議。此外,注意,需 要至少一條數(shù)據(jù)線,但是如由去往和發(fā)自控制器330的虛線所指示的,在給定 配置中可存在更多數(shù)據(jù)線,例如,多條PCIe線可傳輸數(shù)據(jù)。
諸如控制器330等控制器可以按各種方式來實(shí)現(xiàn)。例如,控制器可使其邏 輯硬連線,諸如在具有對大塊傳輸有效的簡單交錯(cuò)策略的相對直接的高速非易 失性存儲器設(shè)備中??蓛?yōu)化這一控制器以增進(jìn)對于類似休眠文件存儲和還原的 任務(wù)的性能。能靈活地存儲引導(dǎo)數(shù)據(jù)、休眠文件、常規(guī)文件和/或可擔(dān)當(dāng)高速緩 存(并且可能可執(zhí)行諸如耗損平衡等存儲器管理技術(shù))的更復(fù)雜的控制器可在 閃存中編碼以使得可以在必要時(shí)或需要時(shí)對該控制器邏輯做出更新??刂破髂?夠同時(shí)滿足許多讀或?qū)懖僮?。此外,控制器可以是動態(tài)的,這表現(xiàn)在它可檢測或被通知正在使用多少I/0數(shù)據(jù)線(例如,PCIe線),并相應(yīng)地修改其操作。類似地,可編碼控制器以使其適應(yīng)有多少閃存接口和/或多大的閃存是可用的,使得制造商能夠使用具有不同閃存配置的相同的控制器,包括用戶可通過添加(或通過移除來修改)閃存設(shè)備來擴(kuò)展的配置??刂破鬟€可檢測或以其他方式被通知至少一個(gè)其他高速非易失性存儲器設(shè)備,并且能夠與該其他設(shè)備的控制器傳達(dá)并協(xié)調(diào)數(shù)據(jù)讀和寫,諸如用于允許通過簡單地添加第二塊卡等來擴(kuò)展高速非易失性存儲器的數(shù)量。例如,在兩個(gè)設(shè)備的系統(tǒng)中, 一個(gè)控制器能夠讓另一個(gè)控制器處理預(yù)定的(例如,協(xié)商的)一半發(fā)往和來自其閃存的DMA傳輸,由此使總體速度翻倍(假設(shè)DMA通道未滿)。
本質(zhì)上控制器330并行地向閃存設(shè)備320-325寫入并從中讀取,同時(shí)維護(hù)索引334以便跟蹤哪些數(shù)據(jù)被寫到哪些閃存位置。注意,索引334 (以及可能地,邏輯330)可以在閃存中維護(hù),諸如在閃存設(shè)備320-325中的一個(gè)的某一位置中??刂破?30還可具有用作正常操作時(shí)的臨時(shí)索引的高速緩沖工作存儲器336,且內(nèi)容在需要時(shí)被持久存儲到閃存索引334以防止數(shù)據(jù)丟失。例如,高速讀可通過首先將索引信息從閃存復(fù)制到高速緩沖區(qū)/工作存儲器336,并且然后訪問該高速緩沖區(qū)/工作存儲器336以便建立數(shù)據(jù)傳輸而不是對于每次數(shù)據(jù)傳輸從較慢的閃存中讀取來實(shí)現(xiàn)。同樣,如將在以下描述的,該索引數(shù)據(jù)可被保留在工作存儲器336中,直到在將要寫入整個(gè)數(shù)據(jù)集的成功寫入時(shí),而不是在每次部分寫入或某一組更小的部分寫入時(shí)被持久存儲到閃存為止。
如圖3所表示的,每個(gè)存儲器設(shè)備320-325可以基本上同時(shí)由設(shè)備的控制器330來訪問,這允許累積數(shù)據(jù)率變得非常高,包括當(dāng)設(shè)備200使用DMA技術(shù)來將大數(shù)據(jù)塊傳輸?shù)街飨到y(tǒng)存儲器208 (圖2)中時(shí)。注意,寫入設(shè)備200比起讀取可能要慢得多,因?yàn)榉且资源鎯ζ骷夹g(shù)當(dāng)前在寫入方面較慢。例如,這對于NAND閃存以及讀取比標(biāo)準(zhǔn)NAND快得多的OneNAND類型混合存儲器而言都是如此。
在一個(gè)實(shí)現(xiàn)中,存儲器設(shè)備200被配置成快訪問設(shè)備,且控制器邏輯332被配置成盡可能快地傳輸盡可能多的數(shù)據(jù),例如,通過DMA。為此,控制器在索引334中跟蹤哪些塊的每個(gè)存儲器設(shè)備中。此外,控制器330可管理哪個(gè)設(shè)備得到數(shù)據(jù)的哪個(gè)部分,由此數(shù)據(jù)提供者無需關(guān)注格式化塊大小,將數(shù)據(jù)匹配到分配單元邊界等等。相反,控制器邏輯332在需要時(shí)中斷大的寫請求,諸
如最大化并行寫和讀回,以及執(zhí)行諸如耗損平衡等其他存儲器管理技術(shù)。作為示例邏輯,考慮相對較大的(例如,兩兆字節(jié))數(shù)據(jù)寫請求由控制器
330從某一數(shù)據(jù)源402 (圖4)接收,且某一數(shù)量的閃存接口 (例如,對于設(shè)備320-325中的每一個(gè)有一個(gè)閃存接口)可用,每個(gè)閃存接口都被配置成一次寫入兩千字節(jié)的塊。盡管圖4未明確示出,但控制器邏輯332可執(zhí)行檢査等,諸如用于確保寫請求在給定可用存儲器的量的情況下不至于太大,和/或還可將任何高速緩存的數(shù)據(jù)轉(zhuǎn)儲清除到硬盤驅(qū)動器以便騰出空間,例如,程序的臨時(shí)高速緩存數(shù)據(jù)可被轉(zhuǎn)儲清除到硬盤驅(qū)動器以便為休眠文件騰出空間。
如圖4所例示的,控制器邏輯332交錯(cuò)數(shù)據(jù)以使得塊被并行寫入到可用的單獨(dú)閃存接口,例如,選擇(步驟440)第一閃存接口以便將前兩千字節(jié)寫入到其中,將后兩千字節(jié)寫入到閃存芯片321,以此類推。為此,控制器可以在接收數(shù)據(jù)時(shí)緩沖數(shù)據(jù)(步驟442和444),這可對于剩余步驟獨(dú)立(且并行)地發(fā)生直到緩沖區(qū)滿。如可容易地理解的,通過具有足夠大以處理對應(yīng)于每個(gè)塊的數(shù)據(jù)的緩沖區(qū),例如,對于一次寫入兩個(gè)塊的六個(gè)閃存芯片的至少一萬兩千字節(jié),加上也許額外的數(shù)量以便當(dāng)正在發(fā)生全組寫入時(shí)開始收集下一個(gè)塊,并行寫的數(shù)量基本上被最大化??刂破髟谄渚彌_區(qū)滿時(shí)輸出忙碌等。
在步驟448處,當(dāng)緩沖了至少塊大小數(shù)量的數(shù)據(jù)時(shí),該邏輯將適當(dāng)大小的
塊從緩沖區(qū)寫入到當(dāng)前所選閃存接口中的位置,并且然后在當(dāng)前選擇下一個(gè)閃存接口時(shí)將下一個(gè)塊寫入到該接口中的位置,以此類推。每次成功寫入塊時(shí),
在步驟450處更新索引334以使得該數(shù)據(jù)在稍后接收到讀請求時(shí)可被重新組裝。例如,接收到的數(shù)據(jù)偏移量或相應(yīng)的排序信息,接口標(biāo)識符(例如,哪個(gè)閃存芯片)和對閃存的位置偏移量將足夠作為對于所寫入的每一塊的基本索引記錄;還與該索引相關(guān)聯(lián)的是將該數(shù)據(jù)返回到其適當(dāng)?shù)奈恢盟璧娜魏涡畔ⅲ?,在保存文件情況下的文件屬性。注意,如果不需要對該數(shù)據(jù)的隨機(jī)訪問,例如,該數(shù)據(jù)只允許被循序讀回,則數(shù)據(jù)偏移量/排序信息可以是固有的,例如,如果對索引334進(jìn)行排序以使得按序?qū)?shù)據(jù)塊進(jìn)行重新排序,則無需維護(hù)所接收到的數(shù)據(jù)偏移量或排序信息。然而,這將意味著控制器在例如由于壞寫而時(shí)序改變的情況下可能必須調(diào)整排序。
14此外,可以使用預(yù)定約定以替換索引模式或與之相結(jié)合。例如,可以將前 2千字節(jié)的塊按照一個(gè)啟始偏移量寫入到一個(gè)閃存設(shè)備,將接下來的2千字節(jié) 的塊按照其啟始偏移量寫入到下一個(gè)閃存設(shè)備,以此類推。有了這一約定,只 需記錄啟始閃存設(shè)備和每個(gè)閃存設(shè)備的啟始偏移量,這可例如記錄在數(shù)據(jù)開始 處的首部等中(例如,作為六個(gè)指針,對每個(gè)設(shè)備有一個(gè)指針)。這將為整個(gè) 索引模式節(jié)省空間。可以在需要修改預(yù)定約定的情況下記錄異常,例如,為了 耗損平衡、糾錯(cuò)等。例如,可以使用壓縮類型的索引模式,其中只要偏移量滿 足約定,S卩,除非它是除了來自前一偏移量的兩千字節(jié)之外的某個(gè)偏移量,該 偏移量可被留空,而不是索引每個(gè)偏移量。
注意,圖4中的示例邏輯包括步驟446,通過該步驟可以改變到當(dāng)前所選 閃存接口中的偏移位置(以及如果有必要的話該閃存接口本身)。不讓位置線 性前進(jìn)的原因可包括執(zhí)行耗損平衡技術(shù),執(zhí)行任何糾錯(cuò)(例如,為了繞過已知 的壞塊),以及還為了確保諸如為持久存儲索引而保留的以及可能地用于存儲 邏輯(或?qū)σ云渌绞匠志么鎯Φ倪壿嫷母?擴(kuò)展)的任何保留的閃存區(qū)域不 被蓋寫。
如上所述,步驟448表示寫入,且步驟450表示索引。這兩個(gè)步驟本質(zhì)上 基本是事務(wù)性的,使得例如對應(yīng)于寫入的數(shù)據(jù)直到該寫入成功才被提交給索 引,例如,在該寫入由于檢測到壞塊而需要被重新嘗試到不同的塊的情況下。 注意,當(dāng)正發(fā)生該寫入時(shí),控制器在更多數(shù)據(jù)可用時(shí)下不等待(步驟452), 而是選擇下一個(gè)閃存接口 (步驟454)以供寫入下一個(gè)數(shù)據(jù)塊。本質(zhì)上,控制 器收集數(shù)據(jù)直到其接收緩沖區(qū)滿,并且執(zhí)行對閃存的寫入直到所有(或某一期 望數(shù)量的)閃存接口被占用,且當(dāng)其期望數(shù)量的閃存接口正在使用時(shí)只延遲寫 入。
當(dāng)沒有剩下要寫入的數(shù)據(jù)時(shí),步驟452分支到步驟456,其中索引334與 現(xiàn)在寫入的數(shù)據(jù)相關(guān)聯(lián)地持久存儲。由此可通過在持久存儲之前丟棄索引來防 止不完整的寫入。這還提供了更快的速度,因?yàn)樗饕?34可被暫時(shí)保留在超高 速SRAM或DRAM存儲器中,直到當(dāng)完成完整寫入時(shí)被持久存儲。如果被成 功地持久存儲,則返回成功等,否則返回錯(cuò)誤代碼。注意,可通過在寫入所有 數(shù)據(jù)之前持久存儲任何成功寫入的索引信息來允許不完整的寫入,盡管比每整個(gè)數(shù)據(jù)寫入一次(例如,每個(gè)塊寫入一次)更頻繁地將索引持久存儲到閃存將減緩設(shè)備。
圖5表示用于處理來自某一數(shù)據(jù)請求者的讀取請求的示例邏輯。該請求本質(zhì)上可以是任何種類,例如,讀取文件、從高速緩存中讀取、讀取"打開"文件的一部分等等,但出于此示例的目的,此示例將被一般描述為順序塊數(shù)據(jù)傳輸,諸如用于讀出從開始到結(jié)束的休眠文件。
步驟550表示定位該請求的相應(yīng)的(例如,持久存儲的)索引,并且如果該索引尚未在工作存儲器中,則可將該索引334讀入工作存儲器336。注意,取決于存儲了什么數(shù)據(jù)可能存在不同的索引,例如,每個(gè)文件一個(gè)索引。
步驟552表示為該請求選擇第一個(gè)索引條目。注意,所索引的可能已經(jīng)以反映接收數(shù)據(jù)的次序的方式保存了,在這種情況下,沒有理由排序或以其他方式確定哪個(gè)索引條目是第一個(gè)。在從某一偏移量的隨機(jī)訪問讀取的情況下,要讀取的第一組數(shù)據(jù)可由啟始偏移值來確定,由此控制器邏輯332可掃描該索引的數(shù)據(jù)以便精確定位哪兩千字節(jié)的塊包含第一組所請求的數(shù)據(jù),并執(zhí)行計(jì)算以確定該塊中的確切字節(jié)以便開始返回。
步驟554和556涉及在正確位置從正確閃存接口 (或設(shè)備)讀取,這通過索引數(shù)據(jù)來確定。該數(shù)據(jù)從閃存中被讀入輸出緩沖區(qū)中(例如,工作存儲器336中),且緩沖區(qū)輸出的內(nèi)容(例如,經(jīng)由設(shè)備200或每個(gè)接口的DMA引擎)在步驟558處作為數(shù)據(jù)經(jīng)由閃存讀取變得可用。因?yàn)殚W存讀取相對于經(jīng)由DMA/PCIe輸出數(shù)據(jù)花費(fèi)較長的時(shí)間,所以控制器在沒有數(shù)據(jù)可用時(shí)就不輸出數(shù)據(jù)(并且如果有必要可發(fā)出忙碌信號以便于異步操作)。注意,從其他閃存接口讀取經(jīng)由步驟560和562并行執(zhí)行,這通過循環(huán)返回到步驟或以其他方式移動通過索引(步驟552和554)以將正確的數(shù)據(jù)讀回到輸出緩沖區(qū)以便傳輸回到正確的位置來實(shí)現(xiàn)。注意,多個(gè)DMA引擎570 (例如,每個(gè)閃存設(shè)備一個(gè))可被設(shè)置成控制總線以實(shí)現(xiàn)傳輸,并且可駐留在設(shè)備200中、南橋202中、和/或作為獨(dú)立組件,并且這些引擎可由設(shè)備控制器330、 BIOS和/或CPU 204來控制。例如,有了圖3的高速存儲器設(shè)備200,可以在任何給定時(shí)刻建立并發(fā)生六個(gè)單獨(dú)的、并行的DMA傳輸,直到所請求的數(shù)據(jù)被完全傳輸回到主存儲器(例如,圖2的RAM208)中。當(dāng)所有數(shù)據(jù)都已例如經(jīng)由DMA被傳輸回去時(shí),控制器可在步驟564處發(fā) 出"完成"狀態(tài)的信號,諸如經(jīng)由"成功"錯(cuò)誤代碼等。對于多個(gè)請求,可返回對 應(yīng)于每個(gè)請求的標(biāo)識符(虛擬塊),例如,讀請求X (對應(yīng)于如在寫入時(shí)所標(biāo) 識的寫請求X)被成功地傳輸回到存儲器中。以此方式,請求者知道正確的數(shù) 據(jù)現(xiàn)在在RAM中,而不管閃存是如何訪問的,例如,按照從閃存讀回的次序、 設(shè)備之間不同的讀取速度等等。此時(shí),數(shù)據(jù)請求者502知道所有請求的數(shù)據(jù)都 在正確的RAM存儲器位置中。超時(shí)或不成功錯(cuò)誤代碼可以在失敗的情況下被 請求者檢測到。
轉(zhuǎn)向使用所例示的高速存儲器設(shè)備200的硬件實(shí)現(xiàn)和軟件解決方案來在 從完全斷電(例如,ACPIS5狀態(tài))冷引導(dǎo)的情況下更快地引導(dǎo)計(jì)算機(jī)系統(tǒng)的 示例,設(shè)備200可保存引導(dǎo)所需的所有(或大多數(shù))文件及其他信息。這些文 件可通過DMA (直接存儲器存取)被傳輸?shù)奖慌渲迷谙到y(tǒng)存儲器中的RAM盤 中,且計(jì)算機(jī)系統(tǒng)從該RAM盤中引導(dǎo)。如可容易理解的,這允許比從常規(guī)硬 盤驅(qū)動器訪問快得多地訪問所需文件。
一種替換即時(shí)引導(dǎo)解決方案也可用于諸如吉比特以太網(wǎng)等相對高速網(wǎng)絡(luò)。 在該替換方案中,網(wǎng)絡(luò)設(shè)備被要求訪問特定網(wǎng)絡(luò)資源,并經(jīng)由DMA將其傳輸 到存儲器中,如在以上解決方案中所一般描述的。
對于進(jìn)入休眠狀態(tài),包含在休眠時(shí)刻的RAM內(nèi)容的休眠文件被寫入到閃 存中。例如,BIOS可將RAM的內(nèi)容配置到諸如RAM中的壓縮休眠文件中, 并且然后經(jīng)由對控制器330的單個(gè)請求,可通過DMA傳輸該休眠文件以便持 久存儲在高速非易失性存儲設(shè)備200中。注意,大規(guī)模傳輸就開銷而言節(jié)省大 量時(shí)間;例如,有了單條2.6吉比特PCIe線,從寫入者的觀點(diǎn)來看,以單個(gè)請 求可將200兆字節(jié)傳輸?shù)絻汕ё止?jié)、六接口的閃存設(shè)備。如上所述,控制器并 行寫入六個(gè)閃存接口,這基本上以寫入單個(gè)設(shè)備六倍的速度寫入。
對于從休眠狀態(tài)中恢復(fù),例如,當(dāng)計(jì)算機(jī)系統(tǒng)從ACPIS4睡眠狀態(tài)中恢復(fù) 時(shí),包含休眠時(shí)刻的RAM內(nèi)容的休眠文件被傳輸回到主存儲器中。這通過使 得設(shè)備控制器對于例如每個(gè)存儲器設(shè)備320-325啟動DMA引擎來非??焖俚?(相對于硬盤讀取)實(shí)現(xiàn)。
注意,一替換非易失性設(shè)備可具有一般保存主系統(tǒng)存儲器并然后還原它的接口,而不是被配置成用于休眠的塊模式設(shè)備。例如,可實(shí)現(xiàn)協(xié)議以使得系統(tǒng) BIOS調(diào)用該接口,導(dǎo)致主存儲器的快照被傳輸?shù)皆摲且资栽O(shè)備和從該非易
失性設(shè)備傳輸,從而本質(zhì)上使得該BIOS執(zhí)行"準(zhǔn)S3"恢復(fù)。在一個(gè)示例準(zhǔn)S3 場景中,用戶或系統(tǒng)可進(jìn)入待機(jī),并具有由BIOS自動保存到高速非易失性存 儲器設(shè)備的(可能采用休眠文件的形式的)存儲器內(nèi)容的快照。BIOS然后可 執(zhí)行操作,諸如在某一時(shí)間到期后關(guān)閉系統(tǒng)電源,并且在電源被關(guān)閉或以其他
方式丟失的情況下從高速非易失性存儲器設(shè)備恢復(fù),或者在電源未被關(guān)閉的情 況下從待機(jī)中恢復(fù)而不從高速非易失性存儲器設(shè)備讀回。通過BIOS,用戶或 系統(tǒng)還可執(zhí)行標(biāo)準(zhǔn)S4休眠,例如,通過直接進(jìn)入休眠并從休眠中恢復(fù)。
盡管在設(shè)備中可能存在任何實(shí)用數(shù)量的非易失性存儲器,但為了優(yōu)化引導(dǎo) 和休眠,期望具有足夠的存儲器容量以便保存整個(gè)休眠文件和/或所有或大多數(shù) 引導(dǎo)文件。例如,在設(shè)備上可能存在大約128或256兆可用字節(jié),但對于休眠, 非易失性數(shù)量可對應(yīng)于易失性存儲器內(nèi)容在被壓縮時(shí)的大小。較大容量的非易 失性設(shè)備可持久存儲引導(dǎo)和恢復(fù)文件。
通過提供并行地管理接口的控制器,同時(shí)使得控制器劃分一請求,由此允 許僅單個(gè)請求來處理任何任意大小的寫或讀并由此消除主處理器方的開銷,實(shí)
現(xiàn)了顯著的速度增益。然而,主處理器可以在需要時(shí)將請求分成各虛擬塊以便 諸如在從休眠中恢復(fù)時(shí)寫入及稍后讀取,以便在其他虛擬塊還正在被傳輸?shù)耐?時(shí)開始執(zhí)行首先恢復(fù)的某些代碼??梢跃S護(hù)任何實(shí)用數(shù)量的虛擬塊;然而,注 意,與文件系統(tǒng)不同,虛擬塊大小是可對應(yīng)于請求而變化的。由此,寫和讀請 求者無需關(guān)注格式化數(shù)據(jù)以供閃存寫和讀。
高速非易失性存儲器設(shè)備的另一用途模型包括補(bǔ)充主系統(tǒng)易失性(例如, DRAM)存儲器。例如,相對較大的高速緩存可由設(shè)備來提供以便將數(shù)據(jù)交換 進(jìn)出主存儲器。在該示例中,高速、非易失性存儲器設(shè)備本質(zhì)上可用作諸如減 少(并且有時(shí)可消除)訪問硬盤以便進(jìn)行虛擬存儲器交換的需求的中間高速緩 存。文件系統(tǒng)也可將文件寫入高速、非易失性存儲器設(shè)備。如可容易理解的, 這一示例提高了應(yīng)用程序和其他程序的性能。
高速非易失性存儲器設(shè)備的又一用途模型是當(dāng)主系統(tǒng)CPU未通電,或以 其他方式被占用時(shí)為系統(tǒng)組件提供存儲。例如,網(wǎng)卡、傳真卡、輔助設(shè)備等各
18自都可被配置成對高速非易失性存儲器設(shè)備讀寫數(shù)據(jù)而無需CPU協(xié)助。
盡管本發(fā)明易于作出各種修改和替換構(gòu)造,其某些說明性實(shí)施例在附圖中 示出并在上面被詳細(xì)地描述。然而應(yīng)當(dāng)了解,這不旨在將本發(fā)明限于所公開的 具體形式,而是相反地,旨在覆蓋落入本發(fā)明的精神和范圍之內(nèi)的所有修改、 替換構(gòu)造和等效方案。
權(quán)利要求
1. 一種在計(jì)算環(huán)境中的方法,包括接收涉及將數(shù)據(jù)寫入非易失性存儲設(shè)備的數(shù)據(jù)傳輸請求,其中要傳輸?shù)臄?shù)據(jù)無需匹配所述非易失性存儲設(shè)備的數(shù)據(jù)格式要求;通過數(shù)據(jù)傳輸機(jī)制接收對應(yīng)于所述請求的數(shù)據(jù);轉(zhuǎn)換所述數(shù)據(jù)以便寫入多個(gè)非易失性存儲設(shè)備接口,包括經(jīng)由一個(gè)接口寫入所述數(shù)據(jù)的一個(gè)部分,并且在經(jīng)由所述一個(gè)接口寫入所述數(shù)據(jù)的所述一個(gè)部分的同時(shí),經(jīng)由至少一個(gè)其它接口寫入所述數(shù)據(jù)的另一個(gè)部分;以及維護(hù)與所述數(shù)據(jù)相關(guān)聯(lián)的、跟蹤所述數(shù)據(jù)的每一部分被寫入哪個(gè)非易失性存儲設(shè)備接口的信息。
2. 如權(quán)利要求1所述的方法,其特征在于,接收所述數(shù)據(jù)包括通過直接存 儲器存取傳輸機(jī)制來接收所述數(shù)據(jù)。
3. 如權(quán)利要求1所述的方法,其特征在于,轉(zhuǎn)換所述數(shù)據(jù)包括緩沖所述數(shù) 據(jù)并基于非易失性存儲塊大小寫入一定量的所述數(shù)據(jù)。
4. 如權(quán)利要求1所述的方法,其特征在于,還包括使用所維護(hù)的信息來讀 取所述數(shù)據(jù),包括經(jīng)由通過其寫入所述數(shù)據(jù)的至少一個(gè)部分的接口讀取所述數(shù) 據(jù)的所述部分。
5. 如權(quán)利要求4所述的方法,其特征在于,接收所述數(shù)據(jù)包括結(jié)合進(jìn)入計(jì) 算機(jī)系統(tǒng)的降低功率狀態(tài)接收對應(yīng)于存儲器內(nèi)容的數(shù)據(jù),并且其中,使用所維 護(hù)的信息來讀取所述數(shù)據(jù)包括在稍后時(shí)間還原所述存儲器內(nèi)容。
6. 如權(quán)利要求4所述的方法,其特征在于,接收所述數(shù)據(jù)包括接收計(jì)算機(jī) 系統(tǒng)的引導(dǎo)相關(guān)信息,并且還包括使用所讀取的數(shù)據(jù)的至少一部分來以引導(dǎo)計(jì) 算機(jī)系統(tǒng)。
7. 如權(quán)利要求1所述的方法,其特征在于,維護(hù)所述信息包括維護(hù)與所寫入的數(shù)據(jù)的相應(yīng)的至少一部分相關(guān)聯(lián)的至少一個(gè)偏移值。
8. 如權(quán)利要求5所述的方法,其特征在于,還包括確定對應(yīng)于所述數(shù)據(jù)的 所述部分的塊的偏移值,并且在對應(yīng)于所述偏移值的位置寫入所述塊。
9. 一種在計(jì)算環(huán)境中的系統(tǒng),包括多個(gè)非易失性存儲設(shè)備接口 ,每一接口都對應(yīng)于可經(jīng)由其相應(yīng)的接口來訪問的一組非易失性存儲;以及經(jīng)由所述接口耦合到所述非易失性存儲的控制器,所述控制器包括用于執(zhí) 行以下功能的邏輯a) 通過在所述接口的至少兩個(gè)之間交錯(cuò)寫入,以及維護(hù)與所述數(shù)據(jù)相關(guān)聯(lián) 的、可用于隨后確定數(shù)據(jù)的每一部分經(jīng)由哪個(gè)接口寫入的信息,來處理對應(yīng)于 一組數(shù)據(jù)的寫請求,其中所述一組數(shù)據(jù)被允許比非易失性存儲塊寫大小大,所 述交錯(cuò)寫入包括在經(jīng)由一個(gè)接口寫入所述數(shù)據(jù)的一個(gè)部分的同時(shí)經(jīng)由至少一個(gè)其它接口寫入所述數(shù)據(jù)的另一個(gè)部分,以及b) 通過使用所維護(hù)的信息來確定數(shù)據(jù)的每一部分經(jīng)由哪個(gè)接口寫入,以 及,并且對于每個(gè)部分,經(jīng)由該接口讀取所述數(shù)據(jù)的該部分,來處理對應(yīng)于所 述一組數(shù)據(jù)的讀請求。
10. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述控制器耦合到主存儲 器,并且通過直接存儲器存取傳輸從所述主存儲器接收所述數(shù)據(jù)以供寫入,并 且通過直接存儲器存取傳輸將所讀取的數(shù)據(jù)傳輸?shù)剿鲋鞔鎯ζ鳌?br> 11. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述非易失性存儲包括閃存。
12. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述控制器通過PCI Expres^機(jī)制耦合到計(jì)算機(jī)系統(tǒng)。
13. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述控制器耦合到計(jì)算機(jī) 系統(tǒng)的主存儲器,并且其中,所述控制器結(jié)合進(jìn)入計(jì)算機(jī)系統(tǒng)的降低功率狀態(tài) 處理持久存儲對應(yīng)于主存儲器內(nèi)容的數(shù)據(jù)的寫請求,并且其中,所述控制器處 理在稍后時(shí)間還原所述主存儲器內(nèi)容的讀請求。
14. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述控制器處理輸出用于 引導(dǎo)計(jì)算機(jī)系統(tǒng)的信息的讀請求。
15. —種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令在被執(zhí)行 時(shí)執(zhí)行以下步驟接收將一組數(shù)據(jù)存儲在非易失性存儲器中的寫請求,其中數(shù)據(jù)量對于用于 寫入所述非易失性存儲器的塊大小是任意的;處理所述寫請求,包括將所述一組數(shù)據(jù)的塊大小的子集交錯(cuò)到對各組非易 失性存儲器的多個(gè)接口,包括通過經(jīng)由至少兩個(gè)接口同時(shí)寫入;維護(hù)關(guān)于所述塊大小的子集如何在所述各組非易失性存儲器之間定位的 "(曰息;通過發(fā)出所述寫請求完成的信號完成所述寫入請求; 接收在完成所述寫入請求后輸出所述一組數(shù)據(jù)的至少一部分的讀請求; 響應(yīng)于所述讀請求使用所維護(hù)的信息來輸出所請求的數(shù)據(jù),以使得所輸出 的所請求的數(shù)據(jù)不會因在處理所述寫請求時(shí)發(fā)生的交錯(cuò)而改變;以及 通過發(fā)出所述讀請求完成的信號完成所述讀請求。
16. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,處理所述寫 請求包括通過直接存儲器存取傳輸機(jī)制接收數(shù)據(jù),并且其中,使用所維護(hù)的信 息來輸出所請求的數(shù)據(jù)包括通過直接存儲器存取傳輸機(jī)制輸出數(shù)據(jù)。
17. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,處理所述寫 請求對應(yīng)于結(jié)合進(jìn)入計(jì)算機(jī)系統(tǒng)的降低功率狀態(tài)存儲對應(yīng)于存儲器內(nèi)容的數(shù)據(jù),并且其中,使用所維護(hù)的信息來輸出所請求的數(shù)據(jù)對應(yīng)于在恢復(fù)時(shí)還原所 述存儲器內(nèi)容。
18. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,使用所維護(hù)的信息來輸出所請求的數(shù)據(jù)對應(yīng)于提供用于引導(dǎo)計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)。
19. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,處理所述寫 請求對應(yīng)于存儲高速緩存的數(shù)據(jù)和/或存儲文件。
全文摘要
所描述的是高速非易失性存儲器設(shè)備和技術(shù),其包括經(jīng)由接口耦合到諸如單獨(dú)的閃存芯片或單個(gè)芯片的單獨(dú)區(qū)域等各組非易失性存儲的控制器。該控制器包括通過在接口之間交錯(cuò)寫入,包括通過在接口之間并行寫入,來處理任意大小的請求的邏輯。例如,數(shù)據(jù)可經(jīng)由直接存取訪問(DMA)傳輸來接收。該控制器維護(hù)信息以允許交錯(cuò)的數(shù)據(jù)在諸如通過DMA讀回時(shí)被重新組裝到其正確的相對位置。高速非易失性存儲器設(shè)備由此提供允許個(gè)人計(jì)算機(jī)快速引導(dǎo)或從諸如休眠等降低功率狀態(tài)中恢復(fù)的硬件設(shè)備和軟件解決方案。高速非易失性存儲器設(shè)備還可出于諸如高速緩存和文件存儲等其他數(shù)據(jù)存儲目的來使用。
文檔編號G06F13/28GK101467136SQ200780021182
公開日2009年6月24日 申請日期2007年6月1日 優(yōu)先權(quán)日2006年6月9日
發(fā)明者R·帕納巴克 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1