TWI455126B - 固態裝置中物件導向記憶體 - Google Patents
固態裝置中物件導向記憶體 Download PDFInfo
- Publication number
- TWI455126B TWI455126B TW099117985A TW99117985A TWI455126B TW I455126 B TWI455126 B TW I455126B TW 099117985 A TW099117985 A TW 099117985A TW 99117985 A TW99117985 A TW 99117985A TW I455126 B TWI455126 B TW I455126B
- Authority
- TW
- Taiwan
- Prior art keywords
- data set
- solid state
- control component
- host
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2064—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Description
本發明一般而言係關於半導體記憶體裝置、方法及系統,且更特定而言,係關於固態裝置中之物件導向記憶體。
可提供記憶體裝置作為(舉例而言)電腦、個人數位助理(PDA)、數位相機及行動(例如,峰巢式)電話以及各種其他電子裝置中之內部、半導體、積體電路及/或外部可抽換裝置。存在諸多不同類型之記憶體,其包含隨機存取記憶體(RAM)、唯讀記憶體(ROM)、動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(SDRAM)、相變隨機存取記憶體(PCRAM)及快閃記憶體,以及其他類型之記憶體組態。
可在使用記憶體裝置之系統中使用各種類型之記憶體。可以任一組合使用各種類型之記憶體以提供用於一主機之記憶體。舉例而言,在一記憶體裝置中可包含快閃記憶體(例如,使用NAND或NOR記憶體胞)。快閃記憶體可用作可透過一介面(諸如,一通用串列匯流排(USB)連接)耦合至該系統之內部記憶體或可抽換記憶體。
快閃記憶體裝置可用作用於各種電子應用之非揮發性記憶體。快閃記憶體裝置可使用允許高記憶體密度、高可靠性及低功率消耗之一單電晶體記憶體單元。
本發明包含用於固態裝置中之物件導向記憶體之方法、裝置及系統。用於固態裝置中之物件導向記憶體之一方法之一個實施例包含以一原子作業方式存取作為一單個物件之一經界定資料集,其中該存取係自一源而非一主機存取。在各種實施例中,以圖解說明方式且並非以限制方式,該源可係如相對於圖1所述之一網路。該實施例亦包含將該經界定資料集作為該單個物件儲存於若干固態記憶體區塊中,其由包含該若干固態記憶體區塊之一固態裝置之一控制組件格式化。
一固態裝置可包含若干記憶體裝置(例如,若干記憶體晶片)。如本發明中所用,使用「若干」來指一事物可係指一個或多個此等事物。舉例而言,若干記憶體裝置可係指一個或多個記憶體裝置。如一熟習此項技術者將瞭解,一記憶體晶片可包含若干晶粒。每一晶粒可包含若干記憶體陣列及其上之週邊電路。一記憶體陣列可包含若干平面,其中每一平面包含若干記憶體胞實體區塊。每一實體區塊可包含可儲存若干資料磁區之若干記憶體單元頁。
為跨越大儲存容量達成低延時及高帶寬作業,固態裝置可包含並列運作之多個通道,其中每一通道運作記憶體之某一部分。因此,一記憶體通道控制器之多個複本(例如,NAND快閃控制器邏輯)可整合於一固態裝置之多通道系統控制器上。在此一配置中,可藉助運作由通道伺服之相關聯記憶體(包含執行邏輯至實體映射及/或區塊管理(例如,平均抹寫))來給每一通道或該等通道之一聚合點分派任務。因此,多個記憶體通道控制器之每一複本(對應於該多個通道中之每一者)可具有用以執行映射及區塊管理功能之高速緩衝記憶體。另外,多個記憶體通道控制器之每一複本可包含用於引導至一各別通道之「處理中」資料之緩衝記憶體。
記憶體裝置可組合在一起以形成一固態裝置。一固態裝置可包含非揮發性記憶體(例如,NAND快閃記憶體及/或NOR快閃記憶體)及/或可包含揮發性記憶體(例如,DRAM及SRAM),以及各種其他類型之非揮發性及揮發性記憶體。
一固態裝置可用以替換作為一電腦之主記憶體裝置之硬碟驅動器,此乃因該固態裝置可具有在效能、大小、重量、硬度、運作溫度範圍及/或功率消耗方面優於硬驅動器之優點。舉例而言,固態裝置可因其缺乏移動部件而在與磁碟驅動器相比較時具有優良效能,其缺乏移動部件可改善與磁碟驅動器相關聯之搜尋時間、延時及其他機電延遲。固態裝置製造商可使用非揮發性快閃記憶體來創建可不使用一內部電池供應之快閃固態裝置,因此允許該驅動器更多功能且更緊致。
對於某些記憶體應用,固態裝置可用作硬碟驅動器之一替換物或補充物。在此等例項中,可將固態裝置放置於經設計以提供一硬驅動器之功能之一環境中。由於固態裝置與硬驅動器之間的最小可抹除單元之粒度或量化之差異(例如,硬驅動器之一512位元組磁區對固態裝置中之一128k或256k區塊),因此在一計算裝置中用作一硬驅動器之一替換物或補充物之一固態裝置可不以峰值效能位準運作。
多個記憶體通道控制器之每一複本與記憶體之對應部分之間的並列通信可需要大約20個接針來建立其間之資料、控制、電力及接地連接。此可產生具有一大的接針計數以確保與現存碟驅動器協定之相容性之一昂貴的記憶體系統。
對較高輸入/輸出效能之一迅速擴展需要已驅動固態裝置之開發及採用。高效能桌上型電腦、膝上型電腦、行動系統或裝置及/或需要傳遞即時或接近即時資訊之任一應用可受益於固態裝置。歷史上,固態裝置已比硬驅動器昂貴。然而,由於製造技術及經擴展晶片容量之改良,因此價格已下降,從而導致消費者及公司層級消費者將固態裝置重新評估為先前記憶體系統之可行替代物。
一記憶體胞以可迅速地在多於一個可迅速辨別狀態之間切換之一結構儲存數位資訊。某些記憶體胞係基於存在或不存在含有於該胞之一區域中之電荷。藉由保留其電荷,該記憶體胞保留其所儲存資料。某些記憶體胞結構固有地洩漏電荷,且必須連續地供電以刷新所儲存電荷。
然而,非揮發性記憶體不需要電力以保留電荷資訊。舉例而言,快閃記憶體可具有其上儲存電荷之一「浮動閘極」,其經絕緣以最小化電荷洩漏。因此,僅需要電力以改變所儲存資訊(例如,資料、位元等),舉例而言,寫入至(例如,儲存電荷)一記憶體胞、自一記憶體胞讀取(例如,確定是否存在電荷)及/或抹除(例如,移除電荷)一記憶體胞。快閃記憶體中之所儲存資料之非揮發性在可攜式電子應用中係有利。以實例方式且並非以限制方式,非揮發性記憶體可用於個人電腦(例如,桌上型及膝上型)、個人數位助理(PDA)、數位相機及蜂巢式電話,以及諸多其他使用中。程式碼及系統資料(諸如,用於計算系統以及其他類型之系統中之一基本輸入/輸出系統(BIOS))可儲存於非揮發性記憶體裝置中。
一固態記憶體裝置可係將永久性資料儲存於固態快閃記憶體上之一記憶體裝置。在該術語之傳統意義上,固態記憶體裝置非係硬驅動器,此乃因不涉及移動部件。實際上,一固態記憶體裝置具有使用積體電路(IC)而非磁或光學媒體組織之一半導體記憶體陣列。
此配置具有諸多優點。至及自固態裝置之資料傳送比機電碟驅動器快。亦可減少搜尋時間及延時。使用者亦享受作業系統之更快啟動時間及/或功能性。一般而言,固態裝置亦更耐用且更安靜,其中沒有移動部件斷裂或者向上或向下旋轉。然而,固態裝置具有一設定預期壽命,此乃因在效能可變得不穩定之前存在有限數目個抹除/寫入循環。
因此,可週期性地重寫一經界定資料集,舉例而言,此乃因對該經界定資料集先前所儲存至其之記憶體胞之「抹寫」。在如本發明中所述之各種實施例中,一經界定資料集可包含一完整的、經整合「關鍵資料」封裝,其可包含用以達成合適系統效能之指令,如在此資料之存取之前及此資料之存取期間及/或在此資料之儲存之後所界定。在某些實施例中,該資料「集」可界定為在存取此資料期間及/或之後但在儲存如該經界定資料集之該完整的、經整合封裝之前變得整合之多個資料封裝。
此外,技術之提高可使得可期望替換先前所儲存(例如,所寫入)之經界定資料集。在本發明中,此等作業中之每一者皆可稱作「更新」該經界定資料集。尤其對於關鍵資料(例如,對於一系統之可運作性取決於其一大致無錯誤讀取之啟動影像及/或作業系統),其可係對在將該經界定資料集儲存至該固態記憶體之前證實此資料之精確度較重要,特別係當新存取資料替換一主機(例如,一主機裝置及/或該主機裝置所管理之一系統)所依賴之資料以用於合適的可運作性時。
固態裝置中之現存固態記憶體(例如,NOR及/或NAND快閃記憶體)可儲存(舉例而言)主機資料(例如,一檔案)作為一系列固定長度邏輯區塊。該主機可維持一表,其不僅識別該快閃記憶體裝置內哪些邏輯區塊與每一檔案相關聯而且將創建該檔案之彼等邏輯區塊排序。可使用邏輯區塊編號來執行由該主機對該記憶體裝置之讀取及寫入存取。然而,該快閃裝置可缺乏足夠資訊以理解該等讀取及寫入如何與基礎檔案資料本身相關。
儘管如此,該記憶體系統亦可針對諸多類型之主機資料足夠良好地工作但可針對某些資料類型具有特定缺點。一個實例係諸如對一系統之可運作性至關重要之處理器啟動指令及/或作業系統指令等系統資料,該系統具有取決於對經編碼指令之大致無錯誤讀取之功能。此類型之資料之訛誤可造成此一系統不可運作。本發明中闡述一替代記憶體機構,其提供增加之可靠性及效能,連同一較寬廣範圍之服務。如本發明中所述,該替代記憶體結構可利用固態裝置中之物件導向記憶體及/或由一經編碼組之規則操控以模仿物件導向記憶體之區塊導向記憶體,舉例而言。
一固態記憶體裝置可替代地將一檔案中之經界定資料集當作(例如,存取及/或儲存為)一個單個物件(例如,一完整的、經整合封裝),而非將一檔案當作一系列邏輯區塊(例如,以一區塊導向方式)。將該經界定資料集當作一單個物件可允許該固態記憶體裝置(例如,具有若干非揮發性NOR及/或NAND快閃記憶體陣列)在寫入及讀取過程期間執行某些作業,此可增加可靠性及效能。此等作業之實例(可對特定系統功能之可運作性需要對其進行一大致無錯誤讀取之資料執行該等作業)可包含:一讀取-驗證,其中在執行或認為完成寫入過程之前執行一類型之資料完整性檢查;儲存此資料之多個複本以使得對於一個複本之一讀取失敗之情形下,該系統可依賴於該等複本中之另一者之一讀取;及維持該資料之一先前已知良好版本以使得在一有缺陷讀取或重寫之情形下,可將該系統引導至最後已知良好資料之一讀取;以及本文中所述之其他作業。
如本發明中所述,一固態裝置中之物件導向資料結構可提供及/或有助於提供剛剛所述之作業,而傳統的區塊導向記憶體裝置可係不能夠進行此等作業。如本發明中所述,一固態裝置可包含若干固態記憶體陣列及一固態裝置控制器以及其他組件。該控制器可係使用儲存為軟體、韌體及/或硬體(例如,諸如一專用電路(ASIC)之邏輯)之指令(例如,在適當時由一處理器所執行)來管理(例如,引導、控制、調整等)該固態裝置之一控制組件。本發明將使得一熟習此項技術者能夠藉助關於固態裝置中之物件導向記憶體(本文中亦稱為「物件導向固態裝置」)之實施例來實踐此等作業以及其他等等。
當作為固態裝置中之物件導向記憶體寫入時,一固態裝置可以一區塊導向裝置方式存取一資料流。然而,由於該物件導向記憶體裝置可在理解該資料流與一單個經界定實體(例如,界定一單個物件之一經界定資料集)相關聯之情況下存取該資料流,因此(舉例而言)可延遲至一主機之一寫入完成確認回應直至已成功地完成一個或多個資料保護作業為止。可透過使用物件導向記憶體技術來促進各種資料保護作業之效能。下文闡述若干此等資料保護作業。
該固態裝置可使用與該物件相關聯之性質以改良由該主機讀取之物件資料之可靠性。該固態裝置可使用多個複本以減少一媒體錯誤將訛誤如由該主機讀取之物件之可能性。可個別地或以組合方式執行各種作業以達成可能性上之此一減少,如下文更詳細地闡述。舉例而言,在錯誤偵測指示一讀取及/或寫入失敗之情形下,一失效轉移作業可使用該物件之另一複本。在某些實施例中,可在該物件之多個複本中之至少一者中進行錯誤偵測之後對該等複本執行一逐位元比較。該比較中所發現之差別可導致該多個複本之大多數選票或該固態裝置可回返至最後已知良好物件。另一層級之證實可係整個物件之一完整循環冗餘檢查(CRC)。
該物件導向固態裝置可將該主機引導至整個物件之先前儲存版本。舉例而言,該物件導向固態裝置之一控制組件可在一特定時間週期(例如,若對於該情形係適當,該特定時間週期可係一預定週期或被確定為「即時」)內偵測對該物件之多個讀取請求且將此多個請求辨識為該裝置係捕獲於一重新啟動迴路中之一指示符。此辨識可導致該固態裝置向該主機提供該物件之一最後已知良好版本。
在各種實施例中,該物件導向固態裝置可提供服務以加速該主機之啟動。在此等服務中,該固態裝置可基於一特定事件(諸如,一通電重設及/或一信號之轉變以及其他事件)而自動地起始一讀取作業。然後,所讀取資料可在其可用以(舉例而言)啟動該主機及/或包含該主機之該系統時自動地發送至該主機,或可在彼時間處該主機及/或包含該主機之該系統不需要該資料時忽略該資料。
區塊導向記憶體裝置可不能夠執行本文中所述之該範圍之作業及/或服務,此乃因區塊導向記憶體裝置通常不具有知曉一檔案中之邏輯區塊之數目及/或其中將讀取及/或寫入該等區塊之次序之一能力。區塊導向記憶體裝置通常僅回應於讀取/寫入命令。
在一計算裝置達成一所期望任務之前,其可接收一適當指令集。舉例而言,由一裝置之處理器執行,此等指令引導該裝置之作業。此等指令可儲存於一記憶體中。指令可調用其他指令。一計算裝置及/或系統(例如,一伺服器、路由器、桌上型電腦、膝上型電腦、行動裝置或系統及具有處理器邏輯及記憶體之其他裝置)可包含一作業系統層及一應用層以使得能夠執行各種功能或作用。該作業系統層可包含一「核心」(亦即,主控制程式),其提供一基礎層級之控制及可運作性。該核心可向(舉例而言)一主機提供任務管理、裝置管理及資料管理以及其他等等。該核心可為運行於該計算裝置上之應用程式設定標準且可控制由應用程式使用之資源。該應用層可包含位於該作業系統層上方且可由一使用者存取之程式(亦即,可執行指令)。
一啟動影像及/或作業系統指令可含有達成剛剛所述之功能之起始且因此可稱作關鍵資料之經編碼資訊(例如,一經界定位元組)。以一物件導向方式存取及/或儲存此關鍵資料應有助於保持該關鍵資料之完整性以便維持(舉例而言)由一主機所控制之系統之可運作性。
如本發明中所述,提供執行以保護關鍵資料之指令。提供執行指令以使得在一新的經界定資料集隨著經儲存而已成功地啟動至少一次之後,無論與一作業系統安裝還是更新相關聯,該新的經界定資料集皆自動地保存為「最後安裝」之一個或多個實施例。該最後安裝組態將係一「已知良好」安裝且有助於避免當(舉例而言)一使用者不經意地創建一非可啟動核心組態且未創建一備份時之問題。提供執行指令以產生一個或多個經界定關鍵資料集之若干複本之一個或多個實施例。提供執行可執行以對該複本應用錯誤校正作業之指令之一個或多個實施例。在閱讀本發明時,一熟習此項技術者將瞭解此等及其他實施例。
圖1圖解說明根據本發明之一個或多個實施例之一系統之一方塊圖。在以下詳細說明中,參考形成本發明之一部分之隨附圖式,且隨附圖式中以圖解說明之方式顯示可如何實踐本發明之一個或多個實施例。充分詳細地闡述此等實施例以使得彼等熟習此項技術者能夠實踐本發明之該等實施例,且應理解,可利用其他實施例且可在不背離本發明之範疇之情況下做出過程、電及/或結構改變。如本文中所用,標示符「N」、「M」、「R」及「S」(特別係相對於圖式中之參考編號)指示本發明之一個或多個實施例可包含如此標示之若干特定特徵。
本文中之圖遵循一編號慣例,其中第一個數位或前幾個數位對應於圖式圖編號且剩餘數位識別圖式中之一元件或組件。不同圖之間的類似元件或組件可藉由使用類似數位來識別。舉例而言,130可係指圖1中之元件「30」,且一類似元件在圖2中可指示為230。如將瞭解,可添加、更換及/或消除本文中之各種實施例中所示之元件以便提供本發明之若干額外實施例。另外,如將瞭解,圖中所提供之元件之比例及相對比例尺意欲圖解說明本發明之實施例且不應視為一限制意義。
一系統可包含一主機、主機記憶體及該主機外部之若干記憶體裝置。該主機可具有若干處理器、一主機控制器及與該主機控制器相關聯之一主機控制器記憶體以及若干內部記憶體裝置。該主機可藉由經由一主機控制器與該等內部記憶體裝置及/或該等外部記憶體裝置互動來使用該等記憶體裝置。該主機控制器可與該等記憶體裝置通信以對該等記憶體裝置執行作業,諸如將資料自該等記憶體裝置讀取至該主機或將資料自該主機寫入於該等記憶體裝置中。可由該主機建立管理資料之讀取及寫入之命令。該主機控制器可具有以該等命令控制記憶體裝置能力之硬體。此等情形下,在當該主機控制器具有界定記憶體裝置能力之硬體時,該主機控制器可僅限於建立使該等能力與該主機控制器上之該硬體相關聯之命令。
在一個或多個實施例中,圖1中所圖解說明之系統100可用以達成(以實例方式且並非以限制方式)個人電腦及/或一膝上型電腦、行動電話、數位相機、數位記錄及回放裝置、PDA、記憶體卡讀取器及介面集線器及USB以及其他實例之功能性。
系統100可包含一主機105,其中主機105包含經由一主機控制器112與若干其他組件通信之至少一個主機處理器114。該等其他主機組件可包含經由一主機記憶體控制器122存取之一主機記憶體118。額外組件可包含一主機網路介面110及一使用者介面125。
在各種實施例中,主機網路介面110可允許存取一外部網路102(例如,與一外部網路102通信)以使得輸入及輸出裝置能夠與網路102互動。以實例方式且並非以限制方式,此等外部網路可包含一區域網路(LAN)、一廣域網路(WAN)、網際網路及/或無線網路以及其他等等。主機網路介面110可經由網路102耦合至其他裝置及/或系統中之對應介面裝置。網路102本身可由諸多互連系統及通信鏈路組成,如一熟習此項技術者所習知且理解之互連系統及通信鏈路。如本文中所用之通信鏈路可係硬線鏈路、光學鏈路、衛星或其他無線通信鏈路、波傳播鏈路或用於資訊之傳達之其他結構。
在各種實施例中,使用者介面125可使得能夠由若干裝置進行輸入,該若干裝置可包含一鍵盤、指向裝置(例如,一滑鼠、軌跡球、觸摸板或圖形輸入板)、一掃描器、併入至一顯示器中之一觸摸螢幕、諸如語音辨識系統、麥克風等聲訊輸入裝置及/或其他類型之輸入裝置(未顯示)。一般而言,術語「輸入裝置」之使用意欲包含用以將資訊輸入至圖1中所圖解說明之系統100中之所有可能類型之裝置及方式。
在各種實施例中,系統100之主機105可運作地耦合至向主機105提供週邊記憶體之一固態裝置150。在各種實施例中,該固態裝置可包含一固態裝置網路介面156,其可允許與外部網路102通信(例如,存取至外部網路102)以使得能夠輸入及/或輸出至網路102,如先前所述。
在各種實施例中,固態裝置網路介面156可運作地耦合至一固態裝置控制器166。在各種實施例中,固態裝置控制器166可處置及/或管理資料/資訊自固態裝置網路介面156之輸入及/或資料/資訊至固態裝置網路介面156之輸出。由固態裝置控制器166管理該資料/資訊可由嵌入於固態裝置控制器166中或以其他方式與固態裝置控制器166相關聯之一處理器172來執行。在各種實施例中,固態裝置控制器166可運作地耦合至主機105之主機控制器112以便向主機105提供資料/資訊及/或自主機105接收(例如,更換)資料/資訊。舉例而言,該資料/資訊(例如,以一電腦可讀二進制碼編碼之位元)可係由主機105控制之一系統之可運作性取決於此資料/資訊之一大致無錯誤讀取之資料/資訊。以實例方式且並非以限制方式,該資料/資訊可係對於啟動(例如,一啟動影像)及/或起始一主機及/或由該主機所管理之一系統中之一作業系統之功能性所需之一經界定資料集。
在各種實施例中,固態裝置150之固態裝置控制器166可運作地耦合至若干固態記憶體陣列186。結合圖2進一步詳細地闡述固態記憶體陣列186。簡言之,在各種實施例中,可利用一個或多個固態記憶體陣列186將(舉例而言)經界定資料集作為一單個物件192儲存(例如,在此資料在該等記憶體陣列之記憶體胞中「寫入」之後),由主機105控制之系統之可運作性取決於該經界定資料集之一大致無錯誤讀取。
如本發明中所述,該經界定資料集可作為一集合整體經處置以儲存於固態記憶體陣列186中作為一個或多個單個物件192且因此可透過固態裝置控制器166提供至主機105以可靠地達成由主機105所管理(例如,引導、控制、調整等)之系統中之啟動及/或作業系統功能。如本發明中所述,在各種實施例中,固態裝置150之組件156、166、172、186、192可藉由以一物件導向方式處置此等單個物件來達成可稱為「關鍵資料」之此等經界定資料集(例如,單個物件)之可靠更新。
圖2圖解說明根據本發明之一個或多個實施例之一記憶體陣列之一部分之一圖。雖然圖2中未顯示,但一熟習此項技術者將瞭解,固態記憶體陣列230可連同與其作業相關聯之各種週邊電路一起位於一特定半導體晶粒上。
如圖2中所示,固態記憶體陣列230具有若干記憶體胞實體區塊240-0(區塊0)、240-1(區塊1)、...、240-M(區塊M)。指示符「M」用以指示陣列230可包含若干實體區塊。該等記憶體胞可係單位階胞及/或多位階胞。在本發明之各種實施例中,特定實體記憶體區塊可包含僅單個位階之記憶體胞(例如,單位元記憶體胞)或該等實體記憶體區塊可包含僅作為單位元胞寫入之多位階記憶體胞。作為一實例,陣列230中實體區塊之數目可係128個區塊、512個區塊或1,024個區塊,但實施例並不限於128之一特定倍數或一陣列230中實體區塊之任一特定數目。
此外,實施例並不限於在若干陣列之所有陣列中使用一特定類型之記憶體。亦即,在各種實施例中,不同記憶體陣列使用如一熟習此項技術者當前習知之任一類型之記憶體區塊(例如,諸如非揮發性、揮發性等各種類型之記憶體)。然而,出於本發明之目的,如一熟習此項技術者所瞭解,該若干記憶體陣列含有組態為一固態記憶體陣列之至少一個陣列。在圖2中所圖解說明之實施例中,舉例而言,記憶體陣列230可係一非揮發性NAND快閃記憶體陣列。在某些實施例中,以實例方式且並非以限制方式,記憶體陣列230可具有一非揮發性NOR快閃記憶體陣列架構。
在圖2中所示之實例中,每一實體區塊240-0、240-1、...、240-M包含可作為一單元一起抹除(例如,可以一大致同時方式抹除每一實體區塊中之胞)之若干記憶體胞。舉例而言,可以一單個作業一起抹除每一實體區塊中之胞。每一實體區塊(例如,240-0、240-1、...、240-M)含有耦合至一存取線(例如,一字線)之若干實體記憶體胞列(例如,250-0、250-1、...、250-R)。指示符「R」用以指示一實體區塊(例如,240-0、240-1、...、240-M)可包含若干列。在某些實施例中,每一實體區塊中之列(例如,字線)之數目可係32,但實施例並不限於每一實體區塊之列250-0、250-1、...、250-R之一特定數目。
如一熟習此項技術者將瞭解,每一列250-0、250-1、...、250-R可儲存一個或多個資料頁(例如,位元)。一頁係指一程式化及/或讀取單元(例如,一起或作為一功能性記憶體胞群組程式化及/或讀取之若干胞。在圖2中所示之實施例中,每一列250-0、250-1、...、250-R儲存一個資料頁。然而,本發明之實施例不侷限於此。舉例而言,在本發明之某些實施例中,每一列可儲存多個資料頁。舉例而言,一列中之每一胞可向一上部資料頁貢獻一位元且可向一下部資料頁貢獻一位元。在一個或多個實施例中,一記憶體陣列可包含多個記憶體胞實體區塊且每一實體區塊可組織成多個頁。如本發明中所述,至少一個陣列及/或此一陣列中之多個區塊包含可僅儲存一個資料頁或以其等僅儲存一個資料頁之此一方式利用之若干記憶體胞。
在本發明之一個或多個實施例中,且如圖2中所示,一列(諸如,列250-0)可根據若干實體磁區252-0、252-1、...、252-S儲存資料(例如,在一寫入作業之後)。指示符「S」用以指示一列(例如,250-0、250-1、...、250-R)可包含若干實體磁區。每一實體磁區252-0、252-1、...、252-S可儲存對應於一邏輯磁區之資料且可包含附加項資訊(諸如,錯誤校正碼(ECC)資訊及邏輯區塊位址(LBA)資訊)以及一經界定資料集(例如,如本發明中所述之關鍵資料)。如一熟習此項技術者將瞭解,邏輯區塊定址係通常由一主機用於識別一邏輯資訊磁區之一方案。作為一實例,一邏輯資料磁區可係若干資料位元組(例如,256個位元組、512個位元組或1,024個位元組)。實施例並不限於此等實例。
應注意,關於實體區塊240-0、240-1、...、240-M、列250-0、250-1、...、250-R、磁區252-0、252-1、...、252-S及頁之其他組態係可能。舉例而言,實體區塊240-0、240-1、...、240-M之列250-0、250-1、...、250-R可各自儲存對應於一單個邏輯磁區之資料,該單個邏輯磁區可包含(舉例而言)多於或少於512個資料位元組。
與本發明中所提供之對本發明之說明一致,在各種實施例中,一固態裝置可包含耦合至該固態裝置中之若干固態記憶體陣列之一控制組件,其中每一陣列具有多個記憶體胞實體區塊。另外,在各種實施例中,每一陣列可由該固態裝置之該控制組件格式化,該固態裝置經組態以存取作為一單個物件之一經界定資料集且將該經界定資料集作為該單個物件儲存於該若干陣列中。
如本文中所用,當陳述一固態控制組件可執行一動作時,應理解為以「經組態以...之該控制組件」或「經組態以藉由一處理器之方式執行...之該控制組件」之一縮寫替代。
在某些實施例中,該固態裝置之該控制組件可包含管理該單個物件之格式化之一相關聯處理器。可藉由確定該經界定資料集將儲存於該若干固態記憶體陣列中之多個記憶體胞實體區塊中之哪個記憶體胞實體區塊中來執行該格式化。舉例而言,在各種實施例中,該固態裝置之該控制器組件可將該經界定資料集儲存至該等記憶體胞實體區塊之該若干記憶體陣列之一特定(例如,若對於該情形係適當,其可係一預定或被確定為「即時」)分區。如本發明中所述,可基於若干因素確定該特定分區。以實例方式且並非以限制方式,無論一特定區塊/陣列之胞是單位階記憶體胞還是多位階記憶體胞,此等因素皆可包含抹寫(例如,特定記憶體陣列/區塊/胞已經歷之寫入/抹除循環之數目),及/或該區塊/陣列中之記憶體胞之類型以及其他因素。
以實例方式且並非以限制方式,該多個記憶體胞實體區塊可以一非揮發性NAND或一非揮發性NOR架構配置。在某些實施例中,該固態裝置之該控制器組件可將該經界定資料集自始至終地儲存於若干鄰接記憶體胞實體區塊中。舉例而言,該等鄰接記憶體胞實體區塊可由該等記憶體胞實體區塊之該若干記憶體陣列之該特定分區來界定。在某些實施例中,如本文中所述,該經界定資料集可係一啟動影像。在某些實施例中,如本文中所述,該經界定資料集可用於安裝及/或起始若干作業系統之指令。經界定資料集之實施例不侷限於此。
在某些實施例中,該固態裝置之該控制組件可存取該經界定資料集且在完成一原子作業之後將該經界定資料集儲存於該若干陣列中。如一熟習此項技術者所瞭解,當符合兩個條件時可將一組作業認為係原子的。第一,直至完成整組作業為止,無其他過程可知曉正不可偵測地進行之改變。第二,若該等作業中之任一者未成功,則中止整組作業且該系統之狀態恢復至該等作業中之任一者開始之前其所處於之狀態。在本發明中,舉例而言,以一原子作業方式存取該經界定資料集可防止提前終止及/或中斷一存取,否則其可導致該經界定資料集之一部分更新及/或安裝。若非因為該原子作業,則可發生歸因於關鍵資料之一部分寫入之若干負面結果。另外,在某些實施例中,該固態裝置之該控制組件可將一指標指派至該等陣列中之資料之一最後已知良好複本直至完成該原子作業為止,其中該指標可引導欲在該最後已知良好複本上執行之該資料之一讀取。可提供且維持一最後已知良好物件之一指標。亦即,直至已成功地完成一寫入過程為止,可由該最後已知良好物件之該指標引導對該物件之任一讀取嘗試。
另外,在各種實施例中,一固態裝置可包含耦合至該固態裝置中之若干固態記憶體陣列之一控制組件,其中每一陣列具有多個記憶體胞實體區塊。在各種實施例中,每一陣列可由該固態裝置之該控制組件格式化,該固態裝置經組態以存取作為一單個物件之一經界定資料集,其中存取該經界定資料集之一個或多個疊代,且將該一個或多個疊代之多個複本作為該單個物件儲存至該若干陣列中之特定位置。以實例方式且並非以限制方式,如本發明中所述,存取該經界定資料集之一個或多個疊代可包含自程式指令之一網路提供者及/或自一主機下載此等指令之一個或多個複本。
在某些實施例中,該固態裝置之該控制組件可將多個複本中之每一者儲存於若干陣列中之一實體不同陣列中。藉由儲存於該實體不同陣列中,可防止侷限於某一陣列之缺陷訛誤儲存於該實體不同陣列中之關鍵資料。然而,在某些實施例中,可能出於減少空間及/或成本以及其他顧慮,陣列之數目可係一。如先前所述,在某些實施例中,該固態裝置之該控制組件可自始至終地讀取若干鄰接記憶體胞實體區塊中之該單個物件。
可儲存(例如,同時地或按順序地)寫入物件之多個複本。在一快閃記憶體裝置之情形下,可將該等複本儲存於實體獨立記憶體陣列中以有助於總可靠性。在各種實施例中,可將該物件儲存於已經確定而係各種記憶體胞陣列內及/或之間的最可靠記憶體元件中。舉例而言,可將該資料儲存於當前及/或能夠儲存每記憶體胞一個位元而非兩個或更多個位元之元件中。
在某些實施例中,該固態裝置之該控制組件可將多個複本中之至少一者儲存於該陣列中經確定而係比其他實體區塊更可靠之實體區塊中。舉例而言,該陣列之經確定而係更可靠之該等實體區塊可係具有單位階記憶體胞之實體區塊。此等單位階記憶體胞可係能夠僅保持一個資料位元或其等可係抑制保持多於一個資料位元之多位階記憶體胞。在任一情形下,僅具有一個資料位元之一胞可係更可靠,此乃因影響該胞之一讀取之電荷位準之一顯著移位的可能性較小。在某些實施例中,該陣列之經確定而係更可靠之該等實體區塊可係具有比其他實體區塊(例如,已經歷較少寫入/抹除循環之記憶體區塊/胞)之記憶體胞已再使用次數少之記憶體胞之實體區塊。確定該陣列之實體區塊之較高可靠性之方式並不受剛剛提供之實例之限制。
在某些實施例中,在存取所存取資料之一個或多個疊代之後,該固態裝置之該控制組件可在將該單個物件儲存於該陣列中之前獨立地驗證該一個或多個資料之多個複本。可如本文中所述之作業執行獨立地驗證。因此,在某些實施例中,該固態裝置之該控制組件可在將該單個物件儲存於該陣列中之前讀取且獨立地校正所發現之若干錯誤。在完成驗證該等資料疊代之後,該固態裝置之該控制組件可在一新的最後已知良好複本用以替換一先前最後已知良好複本時將一指標指派至該一或多個資料疊代之一特定複本。該固態裝置之該控制組件亦可將一寫入完成確認發送至一主機以使得由該主機進行之任一讀取皆由該指標引導至該新的最後已知良好複本。
在已接收一整個物件之後,可獨立地驗證該等複本中之每一者。驗證可包含至少讀取及錯誤校正該整個物件。此外,可實施臨限值,藉由該臨限值在允許將一物件儲存於一固態記憶體陣列中之前偵測比一特定數目少之讀取錯誤。
另外,可計算一端對端資料完整性檢查(例如,一循環冗餘檢查(CRC))。在某些實施例中,該CRC可在傳輸至該固態記憶體裝置之前由該主機嵌入。簡言之,在一傳送作業之後,一CRC作業使用一數學計算來驗證資料完整性。一CRC係取任一長度之一資料流作為輸入且產生某一空間之一值(通常係一32位元整數)作為輸出之一類型之函數。術語CRC表示函數或函數之輸出。一CRC可用作一檢查和以在傳輸或儲存期間偵測資料之偶然變化。CRC較普遍,此乃因其等便於在二進制硬體中實施、易於數學分析且特別擅於偵測(舉例而言)由傳輸通道中之雜訊所引起之共同錯誤。
與本發明中所提供之對本發明之說明一致,在各種實施例中,一系統可包含經組態以運作地耦合至一主機以便管理一系統之一主機控制組件。以實例方式且並非以限制方式,如本文中所述,此一主機可包含維持計算裝置及系統(可攜式或其他類型)之既定可運作性。該主機控制組件可經組態以運作地耦合至具有多個固態實體記憶體胞之記憶體區塊之一固態裝置之一控制組件。另外,該固態裝置之該控制組件可經組態以存取作為一單個物件之一經界定資料集且在隨後寫入及讀取作業期間管理作為該單個物件之該經界定資料集。
在某些實施例中,該固態裝置之該控制組件可儲存該單個物件之多個複本,其中,如由用於寫入至實體單獨記憶體區塊之一組規則所確定,該多個複本中之每一者單獨地儲存於多個記憶體區塊中。舉例而言,根據該組規則,該固態裝置之該控制組件可將該單個物件之該多個複本儲存於多個實體記憶體胞之記憶體區塊之一特定分區中。因此,在某些實施例中,該固態裝置之該控制組件可將該單個物件之該多個複本中之每一者鄰接地儲存於若干多個實體記憶體區塊中之該特定分區中以達成端對端資料完整性。
另外或替代而言,在某些實施例中,該固態裝置之該控制組件可,如藉由邏輯區塊定址所確定,寫入於該多個實體記憶體區塊中。因此,在某些實施例中,該固態裝置之該控制組件可儲存於特定邏輯區塊位址中。
如先前所陳述,區塊導向記憶體裝置可不能夠執行本文中相對於物件導向記憶體系統所述之範圍之作業及/或服務,此乃因區塊導向記憶體裝置通常不具有知曉一檔案中之邏輯區塊之數目及/或其中將讀取及/或寫入該等區塊之次序之一能力。區塊導向記憶體裝置通常僅回應於讀取/寫入命令。然而,如本發明中所述,當主機與固態裝置兩者皆遵循與區塊讀取及寫入至特定邏輯區塊位址相關聯之一組規則時,可仿真本文中相對於物件導向固態裝置所述之若干作業及/或服務。當區塊導向固態裝置以一指定方式處置資料時,可達成此仿真。
舉例而言,該區塊導向裝置可界定欲針對資料保留之一系列區塊編號。該資料可以一特定次序儲存於特定系列中,其中該主機向該固態裝置提供最後資料區塊之一指示符。該固態裝置可管理該資料之多個複本以及在需要時提供對該資料之最後已知良好版本之讀取存取。因此,如此以一區塊導向配置儲存資料將允許藉助一物件導向固態裝置自始至終連續地執行對一經界定資料集之讀取。
因此,在各種實施例中,如本文中所述,如本發明中所述之一系統可包含經組態以運作地耦合至一主機以便管理一系統之一主機控制組件。在各種實施例中,該主機控制組件可經組態以運作地耦合至具有多個固態實體記憶體胞之記憶體區塊之一固態裝置之一控制組件。當該主機控制組件與該固態裝置控制組件遵循一組規則以將一經界定資料集儲存於特定邏輯區塊位址中時,該固態裝置之該控制組件可經組態以用一區塊導向方式存取該經界定資料集且在隨後寫入及讀取作業期間以該區塊導向方式處置該經界定資料集。
在各種實施例中,該主機控制組件與該固態裝置控制組件所遵循之該組規則可允許將該經界定資料集寫入於多個固態裝置實體記憶體區塊中之單獨且未分區之實體記憶體區塊中(例如,與區塊導向記憶體一致)。然而,在各種實施例中,該主機控制組件與該固態裝置控制組件所遵循之該組規則可包含用以儲存該經界定資料集之一特定系列之實體記憶體區塊編號。此等規則可引導以一特定次序執行該經界定資料集之寫入。此等規則亦可引導該主機控制組件向該固態裝置控制組件提供一指示符以識別該經界定資料集之一最後區塊。藉由遵循此等規則中之一者或多者,該固態裝置控制組件可連續地自該經界定資料集之一開始至該經界定資料集之一結束地讀取該經界定資料集,似乎該經界定資料集係以一物件導向方式儲存。
在某些實施例中,該固態裝置控制組件可儲存該經界定資料集之多個複本,其中,如由該組規則所確定,該多個複本中之每一者單獨地儲存至多個記憶體區塊中。另外,在某些實施例中,該固態裝置控制組件可管理該經界定資料集之該多個複本以提供該主機控制組件對該經界定資料集之一最後已知良好複本之讀取存取。
圖3係圖解說明根據本發明之一個或多個方法實施例之固態裝置中之物件導向記憶體之一方塊圖。除非明確陳述,否則本文中所述之實施例並不限於一特定次序或順序。另外,所述實施例中之某些實施例,或其之元件,可在相同時間點處或至少大致相同時間點處發生或運作。
圖3中所圖解說明之實施例包含以一原子作業方式存取作為一單個物件之一經界定資料集,其中該存取係自一源而非一主機存取,如方塊310中所示。在各種實施例中,以圖解說明方式且並非以限制方式,該源可係如相對於圖1所述之一網路102。在某些實施例中,自一源而非該主機存取該資料可包含在一行動系統中存取該資料,其中該行動系統可選自包含以下各項之一群組:一數位相機;一數位音樂裝置;一網路裝置;一行動電話;一個人數位助理裝置;及一膝上型電腦;以及若干其他可能行動系統。
意欲如本文中在別處所述地執行一原子作業。在某些實施例中,以該原子作業方式存取該經界定資料集可包含使用一指標指向此資料之一最後已知良好版本直至完成該經界定資料集之初始存取為止。
如方塊320中所示,該實施例包含將該系統中之該經界定資料集作為該單個物件儲存至若干固態記憶體區塊,其由包含該若干固態記憶體區塊之一固態裝置之一控制組件格式化。在某些實施例中,一旦完成該原子作業,即可執行該儲存。在某些實施例中,將該經界定資料集儲存至該若干記憶體區塊可包含在完成獨立地對該經界定資料集之多個複本中之每一者執行一原子作業之後將該多個複本各自儲存至獨立記憶體區塊。
在某些實施例中,在一特定時間週期期間,該固態裝置可在偵測該經界定資料集之一新儲存版本之多個讀取請求時向一主機提供該經界定資料集之一先前儲存版本。舉例而言,在各種實施例中,該固態裝置或該主機可偵測對該系統中之一啟動作業所需之一新儲存啟動影像之多個讀取請求。因此,在某些實施例中,該固態裝置可向該主機提供一啟動影像之一最後已知良好版本。
根據本發明之教示,在各種實施例中,物件導向記憶體可包含存取作為一單個物件之一經界定資料集,其中該存取係自一源而非該主機存取,及對所存取之經界定資料集執行一讀取驗證作業。下文更詳細地闡述特定讀取驗證作業之實施例。該實施例可包含將該經界定資料集作為該單個物件儲存於若干記憶體區塊中,其由運作地耦合至包含該若干固態記憶體區塊之一固態裝置之一控制組件格式化。
在某些實施例中,一旦完成該讀取驗證作業,即執行該經界定資料集作為該單個物件之該儲存。在某些實施例中,對所存取資料執行該讀取驗證作業可包含使用一指標指向一先前儲存之經界定資料集之一最後已知良好版本使用一指標直至完成對所存取之經界定新資料集之該讀取驗證作業且完成該經界定新資料集之該儲存為止。
當該固態裝置已確定一物件被可靠地寫入及驗證時,該固態裝置可將一寫入完成確認發送至該主機。將該確認發送至該主機之後的任何讀取會對新物件而非對先前已知良好物件進行。另一選擇係,該主機可需要在允許轉變發生之前透過一命令、一暫存器設定或給該固態裝置之類似通知控制該轉變。
在某些實施例中,可在執行該經界定新資料集之多個複本中之每一者之一寫入作業之前獨立地對該等複本執行該讀取驗證作業,且隨後儲存該經界定新資料集之複本,其中該讀取驗證作業偵測少於一特定數目個錯誤。某些實施例可包含一旦成功地完成該讀取驗證作業,即儲存該經界定新資料集之多個複本。某些實施例可包含當在該經界定新資料集之多個複本中之一者中偵測到至少該特定數目個錯誤時提供自動失效轉移至該資料之另一經讀取驗證複本。特定而言,某些實施例可包含當在該經界定新資料集之一先前經讀取驗證且儲存之複本中偵測到特定數目個新錯誤時,提供自動失效轉移至該經界定新資料集之另一經讀取驗證複本。執行該讀取驗證作業之實施例可包含執行一循環冗餘檢查(CRC)作業。讀取驗證作業之實施例不侷限於此。
錯誤偵測作業可具有偵測由自一傳輸器傳輸至一接收器期間的雜訊或其他減損所引起之錯誤之存在之能力。錯誤校正可具有重構原始、無錯誤資料之額外能力。簡言之,並非以限制方式,此之實例可包含一自動重複請求(ARQ),其中該傳輸器發送該資料且亦發送一錯誤偵測碼,該接收器可使用該錯誤偵測碼來檢查錯誤且請求重新傳輸有錯誤之資料。在某些情形下,該請求係隱含的,此乃因該接收器發送正確接收資料之一確認(ACK),且該傳輸器再發送未在一合理時間週期內得到確認之某物。
另一實例係正向錯誤校正(FEC),其中該傳輸器藉助一錯誤校正碼(ECC)將該資料編碼且發送編碼之訊息。該接收器可不將任何訊息發送回至該傳輸器。該接收器可將其所接收物解碼成「最可能」資料。該等碼經設計以使得其將取大量雜訊以欺騙該接收器誤譯該資料。可組合該兩者以使得校正較小錯誤而不進行重新傳輸,且偵測較大錯誤並請求一重新傳輸。
本發明之某些實施例可包含當在該經界定資料集之若干先前讀取驗證且儲存之複本中之至少一者中偵測到特定數目個錯誤時執行一錯誤校正作業。當在該經界定資料集之若干尚未經讀取驗證或儲存之複本中之至少一者中偵測到特定數目個錯誤時,某些實施例執行該錯誤校正作業。在某些實施例中,執行該錯誤校正作業可包含執行該經界定資料集之多個先前讀取驗證且儲存之複本之一逐位元比較,其中該固態裝置藉由自大多數匹配複本中進行選擇來自該多個複本中間證實一個或多個複本。
其他保護可包含計算該經界定資料集之一算術簽章(例如,一散列函數,如一熟習此項技術者所瞭解)。舉例而言,該固態裝置可計算該散列函數且然後將該計算提交回至該主機作為完成確認回應之一部分。然後,該主機可做出該簽章是否正確之一決策。讀取該物件亦可產生該主機可用作一鑑別程式之一部分之一資料簽章(例如,一散列函數)。該簽章可在將該物件資料發送至該主機之前或在正發送該物件資料時計算,且因此該簽章將可由該主機用以自該固態裝置讀取。
簡言之,一散列函數係一經明確界定程序或數學函數,其將一大的、可能大小可變之數量之資料轉換成一小資料,其通常係可充當至一陣列中之一指數之一單個整數。散列函數主要用以加快表查找或資料比較任務。散列函數係關於檢查和、檢查數位、指紋、隨機化函數、錯誤校正碼及加密散列函數。雖然此等概念在某種程度上重疊,但每一者具有其自身之使用及要求且全部在本發明之範疇內。
使該裝置計算該算術簽章(例如,在開啟電源時自動計算)可用以在執行該經編碼資料之前鑑別該資料。此鑑別可(舉例而言)藉由防止駭客修改該碼以取得對一網路之存取及/或其他作業來改良系統之總安全性。
本發明之某些實施例可包含在自該源存取該資料之前提供該經界定資料集中之一算術簽章,其中該算術簽章由該固態裝置提供回至該源以用於錯誤之偵測。另外或替代而言,某些實施例可包含在自該主機存取該資料之前提供該經界定資料集中之一算術簽章,其中該算術簽章由該固態裝置提供回至該主機以用於錯誤之偵測。
舉例而言,該固態裝置可計算該散列函數且然後將計算結果提交回至該主機作為完成確認回應之一部分。然後,該主機可對該簽章是否正確做出一決策。讀取該物件亦可產生該主機可用作一鑑別程式之一部分之一資料簽章(例如,一散列函數)。該簽章可在將該物件資料發送至該主機之前或在正發送該物件資料時計算,且因此該簽章將可由該主機用以自該固態裝置讀取。
本發明包含用於固態裝置中之物件導向記憶體之方法、裝置及系統。用於固態裝置中之物件導向記憶體之一方法之一個實施例包含以一原子作業方式存取作為一單個物件之一經界定資料集,其中該存取係自一源而非一主機存取。該實施例亦包含將該經界定資料集作為該單個物件儲存於若干固態記憶體區塊中,其由包含若干固態記憶體區塊之一固態裝置之一控制組件格式化。
應理解,當將一元件稱為「在另一元件上」、「連接至另一元件」或「與另一元件耦合」時,其可係直接在另一元件上、與另一元件連接或耦合或可存在介入元件。相反,當將一元件稱為「直接在另一元件上」、「直接連接至另一元件」或「直接與另一元件耦合」時,沒有介入元件或層存在。應理解,當將一第一元件稱為「連接至另一元件」或「與另一元件耦合」時,意欲將該第一元件實體地附接至該兩個元件中之另一者。相反,當將元件稱為「運作地耦合」時,該等元件係相互通信。如本文中所用,當陳述一固態控制組件可執行一動作時,應理解為針對「經組態以...之該控制組件」或「經組態以藉由一處理器之方式執行...之該控制組件」之一縮寫替代。如本文中所用,術語「或(or)」本身將包含在複數個所鏈接元件內,而非以一排外方式使用,除非另外明確陳述。另外,如本文中所用,術語「及/或」包含相關聯之列舉物項中之一者或多者之任一組合及所有組合。
應理解,雖然本文中可使用術語第一、第二等來闡述各種元件,但此等元件不應受限於此等術語。此等術語僅用以區分一個元件與另一元件。因此,可在不背離本發明之教示之情況下將一第一元件稱作一第二元件。
在本發明之詳細說明中,參考形成本發明之一部分之隨附圖式,且隨附圖式中以圖解說明之方式顯示可如何實踐本發明之一個或多個實施例。充分詳細地闡述此等實施例以使得彼等熟習此項技術者能夠實踐本發明之該等實施例,且應理解,可利用其他實施例且可在不背離本發明之範疇之情況下做出過程、電或結構改變。
如將瞭解,可添加、更換及/或消除本文中之各種實施例中所示之元件以便提供本發明之若干額外實施例。另外,如將瞭解,該等圖中所提供之元件之比例及相對標度意欲圖解說明本發明之實施例且不應理解為一限制意義。
本文中所用之術語僅係出於闡述特定實施例之目的且並非意欲限制本發明。如本文中所用,單數形式「一(a)」、「一(an)」及「該(the)」意欲亦包含複數形式,除非上下文另外明確指示。應進一步理解,如本說明書中所用,術語「包括(comprises)」及「包括(comprising)」規定存在所陳述特徵、整數、步驟、作業、元件或組件,但不排除存在或添加一個或多個其他特徵、整數、步驟、作業、元件、組件或其之群組。
除非另外界定,否則本文中所用之所有術語(包含技術及科學術語)皆具有與一熟習此項技術者通常理解之意義相同的意義。應進一步理解,應將諸如在常用字典中所界定之彼等術語等術語解釋為具有與其在相關技術及本發明之上下文中之意義一致之一意義,且不應以理想化或過分形式化之意義來解釋,除非本文中明確如此界定。
雖然本文中已圖解說明且闡述了具體實施例,但彼等熟習此項技術者應瞭解,經計算以達成相同結果之一配置可替代所示之具體實施例。本發明意欲涵蓋本發明之各種實施例之更改或變化形式。
應進一步理解,已以一圖解說明性方式且並非一限制性方式作出以上說明。在審閱以上說明時,彼等熟習此項技術者將明瞭以上實施例之組合及本文中未具體闡述之其他實施例。
本發明之各種實施例之適用性包含其他應用,其中(舉例而言)與其他計算系統、行動裝置及/或系統及類似物相關聯地使用以上方法、裝置及系統。因此,本發明各種實施例之適用性應參考隨附申請專利範圍連通授權此等申請專利範圍之等效物之全部範圍來確定。
在前述實施方式中,出於簡化本發明之目的,將各種特徵一起聚集於一單個實施例中。本發明之此方法不應解釋為反映本發明之所揭示實施例需使用比每一請求項中所明確陳述之特徵更多之特徵之一意圖。而是,如以下申請專利範圍反映:發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,藉此將以下申請專利範圍併入至實施方式中,其中每一請求行獨立地作為一單獨實施例。
100...系統
102...外部網路
105...主機
110...主機網路介面
112...主機控制器
114...主機處理器
118...主機記憶體
122...主機記憶體控制器
125...使用者介面
150...固態裝置
156...固態裝置網路介面
166...固態裝置控制器
172...處理器
186...固態記憶體陣列
192...單個物件
230...固態記憶體陣列
240-0...記憶體胞實體區塊
240-1...記憶體胞實體區塊
240-M...記憶體胞實體區塊
250-0...實體記憶體胞列
250-1...實體記憶體胞列
250-R...實體記憶體胞列
252-O...實體磁區
252-1...實體磁區
252-S...實體磁區
圖1圖解說明根據本發明之一個或多個實施例之一系統之一方塊圖;
圖2圖解說明根據本發明之一個或多個實施例之一記憶體陣列之一部分之一圖;及
圖3係圖解說明根據本發明之一個或多個方法實施例之固態裝置中之物件導向記憶體之一方塊圖。
100...系統
102...外部網路
105...主機
110...主機網路介面
112...主機控制器
114...主機處理器
118...主機記憶體
122...主機記憶體控制器
125...使用者介面
150...固態裝置
156...固態裝置網路介面
166...固態裝置控制器
172...處理器
186...固態記憶體陣列
192...單個物件
Claims (51)
- 一種固態裝置中之物件導向記憶體之方法,其包括:以一原子作業方式存取作為一單個物件之一經界定資料集,其中該存取係自一源而非一主機存取;及於自該源而非該主機存取該經界定資料集之後,將該經界定資料集作為該單個物件儲存於若干固態記憶體區塊中,其由包含該若干固態記憶體區塊之一固態裝置之一控制組件格式化;及當在一特定時間週期期間偵測到對該經界定資料集之一新儲存版本之多個讀取請求時,向該主機提供該經界定資料集之一先前儲存版本。
- 如請求項1之方法,其中一旦完成一原子作業,即執行該儲存。
- 如請求項1之方法,其中以該原子作業方式存取該經界定資料集包含使用一指標指向此資料之一最後已知良好版本直至對該經界定資料集之初始存取完成為止。
- 如請求項1之方法,其中將該經界定資料集儲存至該若干記憶體區塊包含在對該經界定資料集之多個複本中之每一者獨立地執行一原子作業完成之後將該多個複本各自寫入於獨立記憶體區塊中。
- 如請求項1之方法,其中偵測到對該經界定資料集之該新儲存版本之多個讀取請求包含該固態裝置及/或該主機偵測到對由該主機所管理之一系統中之一啟動作業所需之一新儲存啟動影像之多個讀取請求。
- 如請求項5之方法,其中偵測到對該新儲存啟動影像之多個讀取請求包含該固態裝置向該主機提供一啟動影像之一最後已知良好版本。
- 如請求項1之方法,其中存取資料包含在一行動系統中存取該資料,該行動系統選自包含以下各項之一群組:一數位相機;一數位音樂裝置;一網路裝置;一行動電話;一個人數位助理裝置;及一膝上型電腦。
- 一種固態裝置中之物件導向記憶體之方法,其包括:存取作為一單個物件之一經界定資料集,其中該存取係自一源而非一主機存取;對該所存取之經界定資料集執行一讀取驗證作業;及於自該源而非該主機存取該經界定資料集並執行該讀取驗證作業之後,將該經界定資料集作為該單個物件儲存於若干記憶體區塊中,其由運作地耦合至包含該若干固態記憶體區塊之一固態裝置之一控制組件格式化;及在執行對該經界定新資料集之多個複本中之每一者之一寫入作業之前對該等複本單獨地執行該讀取驗證作業且隨後儲存該經界定新資料集之其中該讀取驗證作業偵測到少於一特定數目個錯誤之複本。
- 如請求項8之方法,其中一旦完成該讀取驗證作業,即 執行該將該經界定資料集作為該單個物件儲存。
- 如請求項8之方法,其中對該所存取資料執行該讀取驗證作業包含使用一指標指向一先前所儲存之該資料之經界定集之一最後已知良好版本直至完成對該所存取之經界定新資料集之該讀取驗證作業且完成該經界定新資料集之該儲存為止。
- 如請求項8之方法,其中該方法包含一旦成功地完成該讀取驗證作業,即儲存該經界定新資料集之多個複本。
- 如請求項11之方法,其中該方法包含當在該經界定新資料集之該多個複本中之一者中偵測到至少該特定數目個錯誤時提供自動失效轉移至該資料之另一經讀取驗證複本。
- 如請求項11之方法,其中該方法包含當在該經界定新資料集之一先前讀取驗證及儲存之複本中偵測到至少特定數目個新錯誤時提供自動失效轉移至該經界定新資料集之另一經讀取驗證複本。
- 如請求項8之方法,其中執行該讀取驗證作業包含執行一循環冗餘檢查作業。
- 如請求項8之方法,其中該方法包含當在該經界定資料集之若干先前讀取驗證及儲存之複本中之至少一者中偵測到特定數目個錯誤時執行一錯誤校正作業。
- 如請求項15之方法,其中執行該錯誤校正作業包含執行該經界定資料集之多個先前讀取驗證及儲存之複本之一逐位元比較,其中該固態裝置藉由自大多數匹配複本中 進行選擇來自該多個複本中間證實一個或多個複本。
- 如請求項8之方法,其中該方法包含在自該源存取該資料之前在該經界定資料集中提供一算術簽章,其中該算術簽章係由該固態裝置提供回至該源以用於錯誤之偵測。
- 如請求項8之方法,其中該方法包含在自該主機存取該資料之前在該經界定資料集中提供一算術簽章,其中該算術簽章係由該固態裝置提供回至該主機以用於錯誤之偵測。
- 一種固態裝置,其包括:一控制組件,其耦合至該固態裝置中之若干固態記憶體陣列,其中每一陣列具有多個記憶體胞實體區塊且其中該控制組件經組態以:自一源而非一主機存取作為一單個物件之一經界定資料集;對該所存取之經界定資料集執行一讀取驗證作業;於自該源而非該主機對該經界定資料集之存取與該讀取驗證作業之後,將該若干陣列中之該經界定資料集作為該單個物件自始至終地儲存於若干鄰接記憶體胞實體區塊中;執行一錯誤校正作業包含該經界定資料集之多個先前讀取驗證及儲存之複本之一逐位元比較;及藉由自大多數匹配複本中進行選擇來自該多個複本中間證實一個或多個複本。
- 如請求項19之裝置,其中該控制組件包含一相關聯處理器,該相關聯處理器管理該若干陣列中之該等記憶體胞實體區塊中該單個物件之格式化。
- 如請求項19之裝置,其中該多個記憶體胞實體區塊以一非揮發性NAND或一非揮發性NOR架構配置。
- 如請求項19之裝置,其中該經界定資料集係用於一啟動影像或一作業系統。
- 如請求項19之裝置,其中該控制組件經組態以將該經界定資料集儲存於該等記憶體胞實體區塊之該若干記憶體陣列之一特定分區中。
- 如請求項19之裝置,其中該控制組件經組態以存取該經界定資料集且在完成一原子作業之後將該經界定資料集儲存於該若干陣列中。
- 如請求項24之裝置,其中該控制組件經組態以將一指標指派至該等陣列中之該資料之一最後已知良好複本直至完成該原子作業為止,其中該指標引導欲對該最後已知良好複本執行該資料之一讀取。
- 一種固態裝置,其包括:一控制組件,其耦合至該固態裝置中之若干固態記憶體陣列,其中每一陣列具有多個記憶體胞實體區塊且其中該控制組件經組態以:自一源而非一主機存取作為一單個物件之一經界定資料集,其中存取該經界定資料集之一個或多個疊代;且 於自該源而非該主機存取該經界定資料集及單獨地驗證該一個或多個資料疊代之該多個複本之後,將該一個或多個疊代之多個複本作為該單個物件儲存至該若干陣列中之特定位置;及在將該單個物件儲存於該陣列中之前讀取且單獨地校正所發現之若干錯誤。
- 如請求項26之裝置,其中該控制組件經組態以將該多個複本中之每一者儲存於該若干陣列中之一實體不同陣列中。
- 如請求項26之裝置,其中該陣列之數目係一。
- 如請求項26之裝置,其中該控制組件經組態以將該多個複本中之至少一者儲存於該若干陣列中之被確定為比其他實體區塊更可靠之實體區塊中。
- 如請求項29之裝置,其中該若干陣列之被確定為更可靠之該等實體區塊係具有單位階記憶體胞之實體區塊。
- 如請求項29之裝置,其中該若干陣列之被確定為更可靠之該等實體區塊係具有比該等其他實體區塊之記憶體胞已再使用次數較少之記憶體胞之實體區塊。
- 如請求項26之裝置,其中在存取該所存取資料之該一個或多個疊代之後,該控制組件經組態以在將該單個物件儲存於該若干陣列中之前單獨地驗證該一個或多個資料疊代之多個複本。
- 如請求項32之裝置,其中該控制組件經組態以在將該單個物件儲存於該陣列中之前讀取且單獨地校正所發現之 若干錯誤。
- 如請求項32之裝置,其中該控制組件經組態以將一指標指派至該一個或多個資料疊代之一特定複本作為一新的最後已知良好複本以替換一先前最後已知良好複本。
- 如請求項34之裝置,其中該控制組件經組態以將一儲存完成確認發送至一主機以使得由該主機進行之任一讀取皆由該指標引導至該新的最後已知良好複本。
- 如請求項34之裝置,其中該控制組件經組態以將一儲存完成確認回應發送至一主機,該回應被延遲直至成功地完成一資料保護作業為止。
- 如請求項26之裝置,其中該控制組件經組態以自始至終地讀取若干鄰接記憶體胞實體區塊中之該單個物件。
- 如請求項26之裝置,其中該控制組件經組態以基於一通電重設及/或一信號之轉變而自動地起始一讀取作業,且該所讀取資料在其用以啟動一主機時自動地發送至該主機或在彼時間處該主機不需要該資料時忽略該資料。
- 如請求項26之裝置,其中該控制組件經組態以在一新的經界定資料集隨著經儲存而已成功地啟動至少一次之後將該新的經界定資料集保存為一最後安裝且該最後安裝組態將被界定為一已知良好複本。
- 一種用於固態裝置中物件導向記憶體之系統,其包括:一主機控制組件,其經組態以運作地耦合至一主機以便管理一系統;其中該主機控制組件經組態以在執行對一經界定新 資料集之多個複本中之每一者之一寫入作業之前於該經界定新資料集之多個複本中單獨地執行一讀取驗證作業且隨後儲存該經界定新資料集之其中該讀取驗證作業偵測到少於一特定數目個錯誤之複本;其中該主機控制組件經組態以運作地耦合至具有多個記憶體胞固態實體記憶體區塊之一固態裝置之一控制組件;且其中該固態裝置之該控制組件經組態以自一源而非一主機存取作為一單個物件之一經界定資料集且在隨後寫入及讀取作業期間管理作為該單個物件之該經界定資料集。
- 如請求項40之系統,其中該固態裝置之該控制組件經組態以儲存該單個物件之多個複本且其中如用於寫入至實體單獨記憶體區塊之一組規則所確定地將該多個複本中之每一者單獨地儲存於該多個記憶體區塊中。
- 如請求項41之系統,其中該固態裝置之該控制組件經組態以將該單個物件之該多個複本儲存於該多個記憶體胞實體記憶體區塊之一特定分區中。
- 如請求項42之系統,其中該固態裝置之該控制組件經組態以將該單個物件之該多個複本中之每一者鄰接地儲存於若干該多個實體記憶體區塊中之該特定分區中以達成端對端資料完整性。
- 如請求項42之系統,其中該固態裝置之該控制組件經組態以如邏輯區塊定址所確定儲存該單個物件之該多個複 本於該多個實體記憶體區塊中。
- 如請求項44之系統,其中該固態裝置之該控制組件經組態以儲存該單個物件之該多個複本於特定邏輯區塊位址中。
- 一種用於固態裝置中物件導向記憶體之系統,其包括:一主機控制組件,其經組態以運作地耦合至一主機以便管理一系統;其中該主機控制組件經組態以運作地耦合至具有多個記憶體胞固態實體記憶體區塊之一固態裝置之一控制組件;其中該固態裝置之該控制組件經組態以用一區塊導向方式自一源而非一主機存取一經界定資料集且在隨後寫入、儲存及讀取作業期間以該區塊導向方式管理經存取之該經界定資料集;其中該主機控制組件與該固態裝置控制組件遵循一組規則以將經存取之該經界定資料集以一特定次序隨後儲存於特定邏輯區塊位址之一經界定系列中;其中以該特定次序執行之該經界定資料集之該寫入包含該主機控制組件向該固態裝置控制組件提供一指示符以識別該經界定資料集之一最後區塊;及其中猶如該經界定資料集係以一物件導向方式儲存,該固態裝置控制組件經組態以自該經界定資料集之一開始至該經界定資料集之一結束連續地讀取該經界定資料集。
- 如請求項46之系統,其中該主機控制組件及該固態裝置控制組件所遵循之該組規則允許將該經界定資料集寫入於該多個固態裝置實體記憶體區塊中之單獨且未分區之實體記憶體區塊中。
- 如請求項46之系統,其中該主機控制組件及該固態裝置控制組件所遵循之該組規則包含一特定系列之實體記憶體區塊編號以寫入該經界定資料集。
- 如請求項48之系統,其中該經界定資料集之該寫入係以一特定次序執行。
- 如請求項46之系統,其中該固態裝置控制組件經組態以儲存該經界定資料集之多個複本且其中如該組規則所確定地將該多個複本中之每一者單獨地儲存至該多個記憶體區塊。
- 如請求項50之系統,其中該固態裝置控制組件經組態以管理該經界定資料集之該多個複本以提供該主機控制組件對該經界定資料集之一最後已知良好複本之讀取存取。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/477,349 US8751860B2 (en) | 2009-06-03 | 2009-06-03 | Object oriented memory in solid state devices |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201106354A TW201106354A (en) | 2011-02-16 |
TWI455126B true TWI455126B (zh) | 2014-10-01 |
Family
ID=43298356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099117985A TWI455126B (zh) | 2009-06-03 | 2010-06-03 | 固態裝置中物件導向記憶體 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8751860B2 (zh) |
EP (1) | EP2438521B1 (zh) |
JP (1) | JP5517089B2 (zh) |
KR (1) | KR101369573B1 (zh) |
CN (1) | CN102449613B (zh) |
TW (1) | TWI455126B (zh) |
WO (1) | WO2010141058A2 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8583986B2 (en) * | 2008-12-17 | 2013-11-12 | Seagate Technology Llc | Solid-state memory with error correction coding |
US8910002B2 (en) * | 2009-08-24 | 2014-12-09 | OCZ Storage Solutions Inc. | NAND flash-based storage device with built-in test-ahead for failure anticipation |
US8601202B1 (en) * | 2009-08-26 | 2013-12-03 | Micron Technology, Inc. | Full chip wear leveling in memory device |
US8402217B2 (en) | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
US8988800B1 (en) | 2009-09-15 | 2015-03-24 | Marvell International Ltd. | Error correction for storage devices |
US9329948B2 (en) * | 2012-09-15 | 2016-05-03 | Seagate Technology Llc | Measuring cell damage for wear leveling in a non-volatile memory |
US9477484B2 (en) | 2013-07-23 | 2016-10-25 | Samsung Electronics Co., Ltd. | System and method for boot acceleration of a data processing system wherein a nonvolatile memory is pre-configured before boot time |
US11073986B2 (en) | 2014-01-30 | 2021-07-27 | Hewlett Packard Enterprise Development Lp | Memory data versioning |
US9431052B2 (en) | 2014-06-26 | 2016-08-30 | Marvell World Trade Ltd. | Two dimensional magnetic recording systems, devices and methods |
US10169124B2 (en) | 2014-12-16 | 2019-01-01 | Samsung Electronics Co., Ltd. | Unified object interface for memory and storage system |
US9607690B2 (en) | 2015-01-19 | 2017-03-28 | Queen's University At Kingston | High sum-rate write-once memory |
US10296580B1 (en) | 2015-09-18 | 2019-05-21 | Amazon Technologies, Inc. | Delivering parsed content items |
US10127210B1 (en) | 2015-09-25 | 2018-11-13 | Amazon Technologies, Inc. | Content rendering |
US10691750B1 (en) * | 2015-09-28 | 2020-06-23 | Amazon Technologies, Inc. | Browser configured to efficiently store browsing session state |
US10601894B1 (en) | 2015-09-28 | 2020-03-24 | Amazon Technologies, Inc. | Vector-based encoding for content rendering |
US10341345B1 (en) | 2015-12-15 | 2019-07-02 | Amazon Technologies, Inc. | Network browser configuration |
US10359946B1 (en) * | 2016-05-03 | 2019-07-23 | Altera Corporation | Systems and methods for operating a flash memory in an integrated circuit |
CN107797755B (zh) | 2016-09-05 | 2021-01-08 | 上海宝存信息科技有限公司 | 固态硬盘系统的原子写入方法以及使用该方法的装置 |
US10795760B2 (en) * | 2017-03-20 | 2020-10-06 | Samsung Electronics Co., Ltd. | Key value SSD |
US10933882B2 (en) | 2017-12-27 | 2021-03-02 | Micron Technology, Inc. | Determination of reliability of vehicle control commands using a voting mechanism |
US10981576B2 (en) | 2017-12-27 | 2021-04-20 | Micron Technology, Inc. | Determination of reliability of vehicle control commands via memory test |
US10901862B2 (en) * | 2018-11-13 | 2021-01-26 | Micron Technology, Inc. | High-reliability non-volatile memory using a voting mechanism |
US11294721B2 (en) | 2019-07-29 | 2022-04-05 | Marvell Asia Pte, Ltd. | Object-oriented memory for client-to-client communications |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490662B1 (en) * | 2000-04-29 | 2002-12-03 | Hewlett-Packard Company | System and method for enhancing the reliability of a computer system by combining a cache sync-flush engine with a replicated memory module |
US20050160217A1 (en) * | 2003-12-31 | 2005-07-21 | Gonzalez Carlos J. | Flash memory system startup operation |
US20060090051A1 (en) * | 2004-10-22 | 2006-04-27 | Speier Thomas P | Method and apparatus for performing an atomic semaphore operation |
US20080010502A1 (en) * | 2006-06-20 | 2008-01-10 | Korea Advanced Institute Of Science And Technology | Method of improving input and output performance of raid system using matrix stripe cache |
US7328318B1 (en) * | 2005-03-31 | 2008-02-05 | Emc Corporation | System and method for atomic multi-volume operations |
US20080123503A1 (en) * | 2006-01-18 | 2008-05-29 | Achanta Phani Gopal V | Removable storage media with improve data integrity |
US20080140963A1 (en) * | 2006-12-11 | 2008-06-12 | Thomason Ronald G | Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots |
US20080256420A1 (en) * | 2007-04-12 | 2008-10-16 | International Business Machines Corporation | Error checking addressable blocks in storage |
US20080281886A1 (en) * | 2007-05-08 | 2008-11-13 | Microsoft Corporation | Concurrent, lock-free object copying |
US20090113235A1 (en) * | 2007-10-30 | 2009-04-30 | Selinger Robert D | Raid with redundant parity |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5140592A (en) * | 1990-03-02 | 1992-08-18 | Sf2 Corporation | Disk array system |
US5623604A (en) * | 1992-11-18 | 1997-04-22 | Canon Information Systems, Inc. | Method and apparatus for remotely altering programmable firmware stored in an interactive network board coupled to a network peripheral |
US6298401B1 (en) | 1997-08-11 | 2001-10-02 | Seagate Technology Llc | Object oriented storage device having a disc drive controller providing an interface exposing methods which are invoked to access objects stored in a storage media |
US6240498B1 (en) | 1999-01-06 | 2001-05-29 | International Business Machines Corporation | Object oriented storage pool apparatus and method |
US6591363B1 (en) | 1999-12-15 | 2003-07-08 | Roxio, Inc. | System for writing incremental packet data to create bootable optical medium by writing boot catalog and boot image onto second track before writing volume descriptors onto first track |
KR100644602B1 (ko) * | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
JP4808839B2 (ja) * | 2000-11-16 | 2011-11-02 | インヴェンサス・コーポレイション | メモリシステム |
US6954875B2 (en) * | 2001-03-12 | 2005-10-11 | Honeywell International Inc. | Method of recovering a flight critical computer after a radiation event |
US6535924B1 (en) * | 2001-09-05 | 2003-03-18 | Pluris, Inc. | Method and apparatus for performing a software upgrade of a router while the router is online |
US6704833B2 (en) * | 2002-01-04 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Atomic transfer of a block of data |
JP4501349B2 (ja) | 2003-03-13 | 2010-07-14 | ソニー株式会社 | システムモジュール実行装置 |
JP4300462B2 (ja) * | 2003-04-23 | 2009-07-22 | 富士フイルム株式会社 | 情報記録再生方法及び装置 |
US7320100B2 (en) * | 2003-05-20 | 2008-01-15 | Cray Inc. | Apparatus and method for memory with bit swapping on the fly and testing |
US7237141B2 (en) * | 2003-06-19 | 2007-06-26 | Lsi Corporation | Method for recovering data from a redundant storage object |
US7047379B2 (en) * | 2003-07-11 | 2006-05-16 | International Business Machines Corporation | Autonomic link optimization through elimination of unnecessary transfers |
GB2414573B (en) | 2004-05-26 | 2007-08-08 | Advanced Risc Mach Ltd | Control of access to a shared resource in a data processing apparatus |
US6937527B1 (en) * | 2004-05-27 | 2005-08-30 | Hewlett-Packard Development Company, L.P. | High reliability triple redundant latch with voting logic on each storage node |
JP5002900B2 (ja) | 2005-03-17 | 2012-08-15 | 日本電気株式会社 | 制御装置とそのプログラム、及び、プログラムダウンロード方法 |
US20070014168A1 (en) * | 2005-06-24 | 2007-01-18 | Rajan Suresh N | Method and circuit for configuring memory core integrated circuit dies with memory interface integrated circuit dies |
CH697875B1 (fr) | 2005-07-16 | 2009-03-13 | Ludwig Mueller | Alliage de métal précieux. |
JP2007188384A (ja) | 2006-01-16 | 2007-07-26 | Nuclear Fuel Ind Ltd | オブジェクト指向メモリ管理方法、解析プログラムおよび原子炉炉心特性解析プログラム |
SG135056A1 (en) * | 2006-02-14 | 2007-09-28 | Trek 2000 Int Ltd | Data storage device using two types of storage medium |
US7636829B2 (en) | 2006-05-02 | 2009-12-22 | Intel Corporation | System and method for allocating and deallocating memory within transactional code |
US8196123B2 (en) * | 2007-06-26 | 2012-06-05 | Microsoft Corporation | Object model for transactional memory |
US8065583B2 (en) | 2007-07-06 | 2011-11-22 | Micron Technology, Inc. | Data storage with an outer block code and a stream-based inner code |
US20100017649A1 (en) * | 2008-07-19 | 2010-01-21 | Nanostar Corporation | Data storage system with wear-leveling algorithm |
US8219741B2 (en) * | 2008-10-24 | 2012-07-10 | Microsoft Corporation | Hardware and operating system support for persistent memory on a memory bus |
-
2009
- 2009-06-03 US US12/477,349 patent/US8751860B2/en active Active
-
2010
- 2010-05-24 JP JP2012513923A patent/JP5517089B2/ja active Active
- 2010-05-24 KR KR1020127000038A patent/KR101369573B1/ko active IP Right Grant
- 2010-05-24 EP EP10783692.6A patent/EP2438521B1/en active Active
- 2010-05-24 CN CN201080024329.1A patent/CN102449613B/zh active Active
- 2010-05-24 WO PCT/US2010/001520 patent/WO2010141058A2/en active Application Filing
- 2010-06-03 TW TW099117985A patent/TWI455126B/zh active
-
2014
- 2014-05-05 US US14/269,397 patent/US9110832B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490662B1 (en) * | 2000-04-29 | 2002-12-03 | Hewlett-Packard Company | System and method for enhancing the reliability of a computer system by combining a cache sync-flush engine with a replicated memory module |
US20050160217A1 (en) * | 2003-12-31 | 2005-07-21 | Gonzalez Carlos J. | Flash memory system startup operation |
US20060090051A1 (en) * | 2004-10-22 | 2006-04-27 | Speier Thomas P | Method and apparatus for performing an atomic semaphore operation |
US7328318B1 (en) * | 2005-03-31 | 2008-02-05 | Emc Corporation | System and method for atomic multi-volume operations |
US20080123503A1 (en) * | 2006-01-18 | 2008-05-29 | Achanta Phani Gopal V | Removable storage media with improve data integrity |
US20080010502A1 (en) * | 2006-06-20 | 2008-01-10 | Korea Advanced Institute Of Science And Technology | Method of improving input and output performance of raid system using matrix stripe cache |
US20080140963A1 (en) * | 2006-12-11 | 2008-06-12 | Thomason Ronald G | Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots |
US20080256420A1 (en) * | 2007-04-12 | 2008-10-16 | International Business Machines Corporation | Error checking addressable blocks in storage |
US20080281886A1 (en) * | 2007-05-08 | 2008-11-13 | Microsoft Corporation | Concurrent, lock-free object copying |
US20090113235A1 (en) * | 2007-10-30 | 2009-04-30 | Selinger Robert D | Raid with redundant parity |
Also Published As
Publication number | Publication date |
---|---|
KR20120014939A (ko) | 2012-02-20 |
CN102449613B (zh) | 2015-04-15 |
CN102449613A (zh) | 2012-05-09 |
EP2438521B1 (en) | 2016-04-27 |
US20140281811A1 (en) | 2014-09-18 |
EP2438521A2 (en) | 2012-04-11 |
US20100313065A1 (en) | 2010-12-09 |
US8751860B2 (en) | 2014-06-10 |
KR101369573B1 (ko) | 2014-03-04 |
EP2438521A4 (en) | 2013-11-13 |
TW201106354A (en) | 2011-02-16 |
US9110832B2 (en) | 2015-08-18 |
WO2010141058A3 (en) | 2011-03-03 |
JP5517089B2 (ja) | 2014-06-11 |
WO2010141058A2 (en) | 2010-12-09 |
JP2012529102A (ja) | 2012-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI455126B (zh) | 固態裝置中物件導向記憶體 | |
TWI409821B (zh) | 解碼方法、編碼方法及啟動控制系統 | |
US8230161B2 (en) | Data backup method for a flash memory and controller and storage system using the same | |
US11036421B2 (en) | Apparatus and method for retaining firmware in memory system | |
US11157357B2 (en) | Operation methods of memory system and host, and computing system | |
US20130013853A1 (en) | Command executing method, memory controller and memory storage apparatus | |
KR102641107B1 (ko) | 스토리지 장치, 이를 포함하는 시스템 및 그 동작 방법 | |
US11755315B2 (en) | Boot ROM update method and boot-up method of embedded system | |
KR20110036816A (ko) | 고체 상태 메모리의 소거 횟수에 따라 에러를 정정하기 위한 방법과 장치 | |
US20180373629A1 (en) | Memory system and operating method thereof | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
KR20200113992A (ko) | 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치 | |
TWI802324B (zh) | 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW202236098A (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202344970A (zh) | 基於資料優先級的風險評估方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112988076A (zh) | 快闪存储器控制方法、存储装置及控制器 | |
TWI829250B (zh) | 簽章驗證方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI826161B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI814501B (zh) | 映射表重建方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI813362B (zh) | 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI810865B (zh) | 表格排序方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI810719B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
EP3961451A1 (en) | Storage device | |
CN115238321A (zh) | 签名验证方法、存储器存储装置及存储器控制电路单元 | |
CN115857808A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 |