TWI438628B - 資料儲存系統及資料儲存媒介 - Google Patents
資料儲存系統及資料儲存媒介 Download PDFInfo
- Publication number
- TWI438628B TWI438628B TW096119240A TW96119240A TWI438628B TW I438628 B TWI438628 B TW I438628B TW 096119240 A TW096119240 A TW 096119240A TW 96119240 A TW96119240 A TW 96119240A TW I438628 B TWI438628 B TW I438628B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- host
- dma
- storage system
- memory
- Prior art date
Links
Classifications
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明有關於一種應用於電腦系統之資料儲存系統,該資料儲存系統包括揮發性(例如SRAM、SDRAM)和非揮發性(例如快閃記憶體、機械式硬碟)的儲存組件。
在傳統的電腦系統中,硬碟機(hard disk drive;HDD)是作為一種外部記憶體裝置,其中,磁碟是作為一種儲存媒介。HDD可以作為是一種大容量檔案設備。然而,與包括了半導體記憶體(例如DRAM)的主記憶體相比,HDD的存取速度較慢。用於HDD的快取系統已為人所熟知是用於加快HDD之存取速度的一種機制。動態隨機存取記憶體(DRAM)以及快閃記憶體已被用來實作針對HDD的快取系統。然而,由邏輯位址到適用於存取快閃記憶體以及HDD之實體位址格式的轉換消耗了主機大量的資源並影響效能。因此有混合型儲存系統的需要,其中,經由消除主機干預而改進了效能。
企業級(enterprise-level)的儲存系統典型地會使用硬碟機(HDD)的陣列來作為大量儲存單元,或是組構成獨立磁碟備援陣列(RAID)系統。資料使用者或是客戶使用標準的基於區塊的IO介面或是在網路上使用標準的基於檔案的存取協定來存取資料。HDD陣列資料是由運行儲存管理應用程式的專用主機來加以管理。由於在主機以及用戶端系統中使用了數個介面控制器,企業級儲存系統可由整合對資料的基於區塊的存取以及基於檔案或是隨機的存取的控制器架構中獲利。在前述針對HDD實作多層快取系統之混合型儲存系統中,用於不同介面之資料傳遞控制器的整合將延伸HDD資料快取的優點到HDD陣列系統。
本發明係揭露一種混合型儲存裝置,包括用於資料儲存之機械式磁碟機機制、快閃記憶體機制、SDRAM記憶體機制以及SRAM記憶體機制。設計出IO處理器機制以及多個DMA控制器機制以消除主機干預。多層快取系統以及用於將邏輯位址映射(mapping)到實體位址的新穎資料結構造成了可組構及可縮放尺寸的高效能電腦資料儲存解決方案。
LBA_Flash_HDD表具有用於將邏輯位址映射到快閃位址的第一部分、以及用於將邏輯位址映射到磁碟機位址的第二部分。永久的副本(copy)是儲存在快閃記憶體中,最常用的部份是儲存在SRAM內,而剩餘部份則儲存在SDRAM中,最常用的部份和剩餘部份共同形成了工作副本(working copy)。備份副本是儲存在機械式磁碟機中。LBA_SDRAM表係用來將邏輯位址映射到SRAM和SDRAM位址。這是儲存在SDRAM中並在SRAM中快取。數個DMA控制器是提供用以在多層儲存裝置之間移動資料。IO處理器藉由以鏈結列表格式準備DMA指令來實作用於DMA的一致方法(uniform method)。
在本發明的實施例中,IO處理器、DMA控制器以及所有必須的控制功能均整合在晶片上系統(SOC)裝置中。提供了有八種組構的儲存解決方案。在本發明的第一個範例實施例中,儲存系統SOC裝置是組構成為從屬裝置(slave device),並經由可隨機存取的系統匯流排以及諸如是PCI/PCI-X/PCI Express之DMA來和主機系統介接(interface),並同時透過諸如是ATA或SCSI之標準IO儲存介面來和機械式磁碟機介接。
在本發明的第二個範例實施例中,該儲存系統SOC裝置是組構成主機系統,其係經由可隨機存取的系統匯流排以及諸如是PCI/PCI-X/PCI Express之DMA來和外部儲存裝置介接。
在本發明的第三個範例實施例中,該儲存系統SOC裝置是組構成獨立的主機系統,其係透過諸如是SCSI之標準IO儲存介面來和機械式磁碟機介接,並且亦透過諸如是乙太網路之標準IO網路介面來和網路介接。
在本發明的第四個範例實施例中,該儲存系統SOC裝置是組構成從屬裝置,且係透過諸如是光纖通道的內部標準IO來和主機系統介接,且透過諸如是通用序列匯流排(USB)之第二標準IO介面來和機械式磁碟機介接。
在本發明的第五個範例實施例中,該儲存系統SOC裝置是組構成主機系統,其係透過諸如是光纖通道的外部標準IO儲存介面來和外部儲存裝置介接,且亦透過諸如是乙太網路之標準IO網路介面來和網路介接。
在本發明的第六個範例實施例中,該儲存系統SOC裝置是組構成從屬裝置,且係透過諸如是光纖通道的外部標準IO介面來和主機系統介接,並透過諸如是USB之第二標準IO介面來和機械式磁碟機介接。
在本發明的第七個範例實施例中,該儲存系統SOC裝置是組構成為主機系統,其係透過諸如是光纖通道的外部標準IO儲存介面來和外部儲存裝置介接,且亦透過諸如是乙太網路之標準IO網路介面來和網路介接。
在本發明的第八個範例實施例中,該儲存系統SOC裝置是組構成從屬裝置,且在單一的包封體(enclosure)中整合到機械式磁碟機中,並透過諸如是SCSI之標準IO介面來和主機系統介接,且透過低階直接連結(low level direct connection)來和磁性磁碟控制器介接。
第1圖為顯示根據本發明實施例之組成混合型儲存裝置101的組件的圖。
混合型儲存裝置101包括數個在下列所列用以增加儲存容量和減少存取時間的儲存裝置,依序為-嵌入式SRAM 105、SDRAM裝置陣列108、快閃裝置陣列110以及硬碟機裝置陣列(未顯示)。在該儲存系統內是實施三階快取:快閃陣列快取硬碟機內的資料、SDRAM陣列快取快閃陣列內的資料、SRAM快取SDRAM陣列內的資料。該主要的非揮發性儲存組件包括一個或多個硬碟(未顯示)。
混合型儲存控制器102是一種管理該儲存系統的晶片,其含有多個嵌入式DMA控制器:PCI-Express/PCI-X/PCI DMA控制器111藉由透過諸如是PCI-Express、PCI-X、PCI介面之系統匯流排而連結的任何裝置來處理對儲存資料之位元組或是字組定址(word addressable)存取。內容可定址記憶體(content addressable memory;CAM)112儲存了一種由PCI-Express/PCI-X/PCI介面DMA控制器所使用的查詢表(look-up table),以查詢與位元組或字元位址相關聯的區塊位址。
IO儲存DMA控制器113以及IO儲存DMA控制器114透過諸如是整合式驅動電子/進階技術附加(IDE/ATA)、序列ATA(Serial ATA)、USB、SCSI等標準區塊存取IO介面來處理DMA。該IO DMA控制器可透過IO介面來和主機電腦系統相連結,其亦可用以控制硬碟的陣列。
IO網路介面DMA控制器115以及IO網路介面DMA控制器116處理對諸如是ETHERNET、USB、FIREWIRE、FIBER CHANNEL之網路介面的DMA。
快閃DMA控制器109處理對快閃陣列110的DMA。
SDRAM控制器107處理對SDRAM陣列108的DMA。
混合型儲存控制器102含有IO處理器103,IO處理器103可使用一個或多個嵌入式處理器來加以實施。該IO處理器處理主機命令(讀取/寫入)的程序,並進行用以管理不同的儲存媒介之演算法。實作快取演算以及諸如是翻譯表(translation table)之控制結構的維護對使用或是連結到諸如是主機電腦系統的儲存系統之外界實體而言是顯而易見的。
一個或多個額外的嵌入式處理器114可作用為在諸如是Windows、Linux等上運行之傳統O/S的電腦/應用處理器。SDRAM 105可在IO處理器以及應用處理器之間分享。提供了數個DMA路徑119、120以避免資料瓶頸(data bottleneck)。不同的儲存媒介能以不同的方式來和DMA路徑相連結,以達到最佳化的流量分佈(traffic distribution)。例如,該DMA路徑120中的至少一個可用作為是在SRAM 105和快閃陣列110之間的專屬路徑。在讀取快閃陣列內的資料時,若是在其它路徑的流量很大,則此DMA路徑119可用作為將資料由快閃陣列110傳送到在SRAM 105內的暫存緩衝器。此外,個別的控制路徑118是提供給嵌入式處理器,以存取不同DMA控制器的登錄介面(register interface),以減少在高速DMA路徑119、120上的控制負荷(overhead)。可使用一種場可程式化(Field-Programmable)ROM 106來儲存用於IO處理器的啟動碼(Boot Code)。
在正常操作期間,資料以及控制資訊是分佈在儲存組件之中,如第10a圖所示,且在此敘述中將會在稍後詳細說明。電力防護電路(power guard)117確保了在快閃110、SDRAM 108內以及在混合型儲存控制器102內所有組件的資料在失去電力時均受到保護。在揮發性SDRAM以及SRAM內的資料將被清除至快閃中。因此,快閃保留所有的快取資料以及控制資訊。電力防護電路保護著在混合型儲存控制器101內所有的組件,包括該嵌入式處理器,以及所有的嵌入式FIFO、內部RAM。在失去電力時,在這些組件內持續處理所保留的資料。來自連結於該混合型儲存裝置之外部實體的暫時性資料將不會被接受。
IO處理器103對IO儲存介面DMA控制器113和114、IO網路介面DMA控制器115和116、PCI-Express/PCI-X/PCI DMA控制器111和快閃DMA控制器109發送指令,以在SRAM 105或是SDRAM 108以及其個別的介面之間傳遞資料。因為該儲存系統被管理著,以致於由該DMA控制器傳遞到其個別介面的資料總是在SRAM 105或SDRAM 108內進行快取,SRAM 105或SDRAM 108與快閃110以及硬碟機(未顯示)相比之下提供較快速的存取。IO處理器103在其指令中含有諸如是下列的資訊-資料傳遞的方向、來源以及目的位址、預備傳送之資料的大小、以及所有其它介面-特定的控制資訊。這些指令是儲存到SRAM 105或是SDRAM 108。每一指令含有到下一個指令的鏈結(link)。因此,在IO處理器103在透過控制匯流排而將初始指令發送到任何DMA控制器後,該DMA控制器可自動地由SRAM 105或是SDRAM 108提取(fetch)下一個指令。該DMA控制器隨後則通知IO處理器103資料已傳送完畢。執行DMA傳送的程序流程是在第16圖中所顯示,且在稍後於此說明內將會予以詳細說明。
第2圖為顯示本發明實施例之範例組構的圖。在此組構中,混合型儲存控制器201是組構成從屬裝置,並透過可隨機存取的系統匯流排以及諸如是PCI/PCI-X/PCI Express之DMA來和主機系統202介接。該混合型儲存裝置透過諸如是序列ATA之標準IO儲存介面來控制硬碟機204的陣列。
第3圖顯示的是本發明實施例的第二個範例組構的圖。其顯示的是混合型儲存控制器301亦可組構成為一種主機系統,其係透過諸如是PCI/PCI-X/PCI Express的系統匯流排303來控制從屬裝置302。在圖式中,從屬裝置302事實上是為硬碟陣列控制器。由於混合型儲存裝置本身可組構成作用為具有至系統匯流排之介面的硬碟陣列控制器,因此兩個混合型儲存裝置可使用其PCI/PCI-X/PCI Express DMA控制器來互連,其中一個為另一個的從屬裝置。
第4圖為顯示本發明實施例的第三個範例組構的圖。其顯示著混合型儲存控制器401是組構成獨立的主機系統,其係透過諸如是SCSI之標準IO儲存介面來和硬碟機陣列介接,而且同時也透過諸如是乙太網路之標準IO網路介面來和網路介接。IO儲存介面DMA控制器402處理對硬碟陣列404的DMA。IO儲存介面DMA控制器403處理對硬碟陣列405的DMA。IO網路介面DMA控制器406處理對網路408的連結。IO網路介面DMA控制器407處理對網路409的連結。嵌入式IO處理器410協調該等DMA控制器的運作。由於該混合型儲存裝置作用成獨立的系統,因此其它軟體的應用程式亦可在額外的嵌入式計算/應用處理器411上運行。
第5圖為顯示本發明實施例的第四個範例組構的圖。混合型儲存控制器501是組構成從屬裝置,且係透過諸如是光纖通道之標準資料區塊存取IO匯流排(Block-access IO bus)503來和主機系統502介接,且透過諸如是IDE之第二標準IO介面來和硬碟機介接。在此情形下之該混合型儲存裝置使用嵌入於混合型儲存控制器501的內部IO儲存介面DMA控制器504和505來處理與主機系統502和硬碟機兩者的介接。
第6圖為顯示本發明實施例的第五個範例組構的圖。混合型儲存控制器601是組構成主機系統,其係透過外部標準IO介面控制器603來和外部儲存裝置602介接,且外部標準IO介面控制器603係透過諸如是光纖通道604來和外部儲存裝置602連結。該外部儲存裝置亦可是另一個混合型儲存裝置。該混合型儲存控制器也透過諸如是乙太網路605之標準IO網路介面來和網路介接。該混合型儲存控制器使用PCI-Express/PCI-X/PCI DMA控制器606來組構並且控制該外部IO介面控制器的操作,並且透過該外部IO介面控制器來將IO命令、資料以及狀態資訊傳送至該外部儲存裝置及從該外部儲存裝置傳送出來。該PCI-Express/PCI-X/PCI DMA控制器具有主要(master)以及從屬介面,以致於不論是混合型儲存控制器或是外部IO控制器均可啟動DMA交易(DMA transaction)。要將IO命令傳送到外部儲存裝置(其中該外部IO控制器是作為DMA從屬(DMA slave)),該混合型儲存控制器使用混合型儲存控制器PCI-Express/PCI-X/PCI DMA主要介面(DMA master interface)605來將IO命令寫入至該外部IO控制器。該外部IO控制器在IO匯流排建立了命令階段(command phase)來傳送IO命令。要將IO命令傳送到外部儲存裝置,其中該外部IO控制器是作為DMA主要(DMA master),該混合型儲存控制器將該IO命令緩衝器在SRAM或SDRAM內之位置指示給該外部IO控制器。該外部IO控制器使用混合型儲存控制器PCI-Express/PCI-X/PCI DMA從屬介面由該混合型儲存控制器讀取IO命令,並在IO匯流排上建立命令階段,以將IO命令傳送到外部儲存裝置。為了將資料傳送到外部儲存裝置或是由外部儲存裝置傳送資料,其中該外部IO控制器是作為DMA從屬,該混合型儲存控制器於該IO資料階段係建立在該IO匯流排時是使用該混合型儲存控制器PCI-Express/PCI-X/PCI DMA主要介面讀取從該外部IO控制器來之資料或將資料寫入至該外部IO控制器。將資料傳送到外部儲存裝置或是由外部儲存裝置傳送出來,其中該外部IO控制器為DMA主要,該混合型儲存控制器將在SRAM或是SDRAM內之資料快取緩衝器的位置指示給外部IO控制器,以致於當該IO資料階段係建立在該IO匯流排上時,該外部IO控制器可使用混合型儲存控制器PCI-Express/PCI-X/PCI DMA從屬介面來將資料寫入至該混合型儲存控制器或是讀取從該混合型儲存控制器來之資料。該資料是寫入至或讀取自SRAM或是SDRAM內的資料快取。為了能由該外部儲存裝置接收IO狀態資訊,真中該外部IO控制器是作為DMA主要,該外部IO控制器於狀態階段在該IO匯流排上完成時,會中斷該混合型儲存控制器,以致於該混合型儲存控制器可以透過該混合型儲存控制器PCI/Express/PCI-X/PCI DMA主要介面從外部IO控制器讀取收到的IO狀態資訊,並且將其傳遞到位在SRAM 707或是SDRAM 708內的IO狀態緩衝器。為了從外部儲存裝置收到該IO狀態資訊,其中該外部IO控制器是作為DMA主要,該混合型儲存控制器初期會將該IO狀態緩衝器在SRAM或是SDRAM內之位置指示給該外部IO控制器,所以當狀態階段在該IO匯流排上完成時,該外部IO控制器可將所收到的IO狀態資訊透過該混合型儲存控制器PCI/Express/PCI-X/PCI DMA從屬介面寫入至位在混合型儲存控制器內的IO狀態緩衝器。
第7圖為顯示本發明實施例的第七個範例組構的圖。混合型儲存控制器70l是組構成從屬裝置,並且透過使用諸如是光纖通道之標準IO介面的外部IO介面控制器703來和主機系統7O2介接,以及透過諸如是序列連接(Serialattached)SCSI以及序列ATA704、705之內部標準IO介面來和機械式磁碟機介接。該混合型儲存控制器使用PCI-EXpreSS/PCI-X/PCI D M A控制器706來組構以及控制外部IO介面控制器的操作,並透過該外部IO介面控制器將IO命令、資料和狀態資訊傳送至主機系統以及從主機系統傳送出來。該PCI-Express/PCI-X/PCI DMA控制器具有主要以及從屬介面,以致於不論是混合型儲存控制器或是外部IO控制器均可啟動DMA交易。為了從該主機傳送IO命令,其中該外部IO控制器是作為DMA從屬,該外部IO控制器於命令階段在IO匯流排709上完成時,中斷該混合型儲存控制器,以便該混合型儲存控制器可透過該混合型儲存控制器PCI-Express/PCI-X/PCI DMA主要介面而從外部IO控制器來讀取收到的IO命令,並將其傳送到位在SRAM 707或是SDRAM 708內的IO命令緩衝器。為了從主機傳送IO命令,其中該外部IO控制器是作為DMA主要,該混合型儲存控制器初期將IO命令緩衝器位在SRAM或SDRAM內的位置指示給外部IO控制器,以致於當命令階段在該IO匯流排上完成時,該外部IO控制器可將所收到的IO命令透過該混合型儲存控制器PCI-Express/PCI-X/PCI DMA從屬介面寫入至位在混合型儲存控制器內的IO命令緩衝器。為了從主機傳送資料或傳送資料到主機處,其中該外部IO控制器是作為DMA從屬,該混合型儲存控制器於IO資料階段係建立在該IO匯流排上時,使用該混合型儲存控制器PCI-Express/PCI-X/PCI DMA主要介面將資料寫入外部IO控制器或是從外部IO控制器讀取資料。為了由主機傳送資料或傳送資料到主機處,其中該外部IO控制器是作為DMA主要,該混合型儲存控制器將資料快取緩衝器位在SRAM或SDRAM內的位置指示給該外部IO控制器,以致於當該IO資料階段已建立在該IO匯流排上時,該外部IO控制器可以使用該混合型儲存控制器PCI-Express/PCI-X/PCI DMA從屬介面來將資料寫入該混合型儲存控制器或是從該混合型儲存控制器讀取資料。資料是被寫入位在SRAM或SDRAM內的資料快取或是從位在SRAM或SDRAM內的資料快取讀取。為了將IO狀態資訊傳送到主機,其中當該外部IO控制器是作為DMA從屬,該混合型儲存控制器使用混合型儲存控制器PCI-Express/PCI-X/PCI DMA主要介面來將IO狀態資訊寫入到該外部IO控制器。該外部IO控制器在該IO匯流排上建立IO狀態階段,並且將IO狀態資訊傳送到主機。為了將IO狀態資訊傳送到主機,其中該外部IO控制器是作為DMA主要,混合型儲存控制器將IO狀態資訊位在SRAM或SDRAM內的位置指示給外部IO控制器,以致於當該IO狀態階段已建立在該IO匯流排上時,該外部IO控制器可以使用該混合型儲存控制器PCI-Express/PCI-X/PCI DMA從屬介面從該混合型儲存控制器處讀取該IO狀態資訊。
第8圖為顯示本發明實施例的第七個範例組構的圖,其中,混合型儲存控制器801是組構成主機系統,其係透過諸如是序列連接介面SCSI 803之內部標準IO儲存介面來和外部儲存裝置802介接,且亦透過諸如是乙太網路804之標準IO網路介面來和網路介接。該外部儲存裝置亦可以是另一個混合型儲存裝置。
第9圖為顯示本發明實施例的第八個範例組構的圖,其中混合型儲存控制器裝置901是組構成從屬裝置,且整合到包含在單一磁碟機包封體內的混合型硬碟中,且透過諸如是序列ATA的標準IO介面來和主機系統介接,並透過低階直接連結和磁碟控制器介接。
第10a圖為顯示根據本發明實施例之儲存系統的非揮發性以及揮發性記憶體組件內的資料結構的圖。第10a圖顯示不同的儲存媒介以及每一個媒介是如何用於儲存以及快取資料、碼以及其它控制資料結構。資料1001是永久儲存在硬碟機1002內之資料的區塊。資料1003是永久儲存在硬碟機1004內之資料的區塊。快閃亦提供資料永久的儲存。在快閃1007內的資料1005是在硬碟機1002內之資料1001的快取部份。在快閃1007內的資料1006是在硬碟機1004內之資料1003的快取部份。與快閃1007以及硬碟機1002和1004相比,SDRAM 1009提供資料更快速的存取儲存。在SDRAM 1009內的資料1008是在快閃1007內之資料1005和1006的快取部份。這些快取部份是最近藉由主機系統(未顯示)從儲存系統1000讀取或寫入到儲存系統1000的。SRAM 1026是最快速存取的儲存裝置,其可用以儲存資料。在圖式中,在SRAM 1026內的資料1024也是在快閃1007內之資料1005的快取部份。在SRAM 1026內的資料1025也是在快閃1007內之資料1006的快取部份。在SRAM 1026內快取的資料可以和在SDRAM 1009
內快取的資料相同的方式來處理。快取的資料是假定為最近或是最常從主機存取的資料。然而,對於非必要夠資格被快取的隨機一次讀取存取而言,也可使用SRAM作為此種讀取資料的暫時儲存。一旦資料傳送到主機後,緩衝器便立即地清空(freed)。因為儲存系統是被管理著,使得由DMA控制器(未顯示)傳送到主機系統/從主機系統傳送,以及傳送到硬碟或快閃/從硬碟或快閃傳送的資料總是在SDRAM或SRAM內被快取。
碼1012代表著可在嵌入式處理器上運行的低階軟體。此碼實作用於管理儲存系統的演算法。“碼:O/S,Apps”,Apps 1013代表著OS核心(kernel)以及應用程式碼。視需要地,可在諸如是Windows,Linux等傳統的O/S下使用另一個嵌入式處理器來執行應用程式。碼1012和1013是永遠地儲存在快閃1007內。由於這些是重要的資訊,備份副本(back-up copy)1016、1017是儲存在硬碟中。FPROM 1015是另一個小容量、非揮發性的儲存媒介,其可用以儲存在啟動(power-up)時所載入的小量的碼1014。然而,啟動時所載入之初期碼亦可從快閃1007所載入。剩餘的碼1012、1013則從快閃1007到SRAM 1026而被分頁(get paged)。IO處理器從SRAM 1026執行碼,除非其是在第一階處理器內部快取(未顯示)中所快取者。因此,該SRAM 1026作為IO處理器的第二階快取。
LBA-Flash-HDD表1010是控制結構,其係在維持資料邏輯區塊位址(LBA)到其在快閃內和在硬碟內之實體位置的映射。快閃媒體快取該硬碟內之資料。除了實體位置外,也有相關於在快閃內之資料的狀態之資訊(是否修改、是否是暫時性的、是否準備重新映射至其它快閃位置、是否準備清回(flushed back)至硬碟)。LBA-Flash-HDD表1010是由IO處理器來維護。更多有關於維護系統邏輯區塊位址到快閃實體區塊位址以及硬碟區塊位址的映射之詳細資料可在申請號為11/450,005的美國專利申請案中找到,該美國專利申請案係在2006年6月08日提出申請,且標題為“Optimized Placement Policy for Solid State Storage Divices”(在下文中稱為專利申請案)在此併入作為參考。最常存取的部份1027是緩衝在SRAM 1026內,SRAM 1026可由IO處理器最快存取。較不常存取的部份1011是緩衝在SDRAM 1009內。在電源切斷(power-down)時,合併這些表1027、1011,且更新的部份則是清回至它們可永久儲存的快閃1007內的表1010。由於這些是重要的資訊,因此備份副本1016儲存在硬碟機內。
LBA-SDRAM表1018、1019延伸LBA-Flash-HDD表以亦包含了資料邏輯區塊位址到其在SDRAM內的位置的映射,因為這些資料區塊是在SDRAM內快取的。除了SDRAM位置外,該表尚具有額外的資訊,其係關於快取資料區塊的狀態(是否修改、是否是暫時性的、是否準備清回硬碟或快閃)。LBA-SDRAM表1018、1019是由IO處理器來維護。最常存取的部份1019是儲存在可由IO處理器最快存取之SRAM 1026內。較不常存取的部份1018是儲存在SDRAM 1009內。由於SDRAM 1009和SRAM 1026是揮發性儲存體,LBA-SDRAM表1018、1019初期為空的,而在當資料區塊從儲存系統讀取或是寫入儲存系統時,才慢慢地建立起來。
暫存緩衝器(scratch buffer)1020是集合性用語,指的是暫時的儲存區,其針對IO處理器在執行時期而緩衝資訊(例如佇列IO命令用於處理的那些緩衝器),或由OS以及應用程式所使用的暫存記憶體(scratchpad memory)。SRAM 1026以及SDRAM 1009兩者均可用以儲存此種資訊。LBA-SDRAM表1018、1019是僅在執行時期才產生的控制資訊,並且是在SRAM 1026以及SDRAM 1009內使用暫存緩衝器之執行時期資訊的特殊狀況。
DMA指令1021是由IO處理器所產生之執行時期控制資訊的另一組特殊狀況。產生該等DMA指令是提供給DMA控制器來使用。為了回應來自主機系統的讀取/寫入要求,IO處理器針對IO DMA控制器或是PCI-Express/PCI-X/PCI DMA控制器產生DMA指令1021,並將其儲存在SDRAM 1009或SRAM 1026內。當IO處理器傳送資料區塊到SDRAM/從SDRAM傳送資料區塊到快閃時,IO處理器產生DMA指令給快閃DMA控制器。當IO處理器傳送資料到SDRAM/從SDRAM傳送資料到硬碟機時,IO處理器對和該硬碟機連結的IO DMA控制器產生DMA指令。DMA指令包含了到下一指令的鏈結,因此DMA控制器可自動地提取儲存在SDRAM或SRAM內的DMA指令。這些DMA指令包含了在SDRAM內之位置供DMA控制器來提取/儲存資料。
ByteAdr-LBA表1022指的是由PCI-Express/PCI-X/PCI介面DMA控制器所使用之位元組位址查詢表,用以查閱與位元組或字元位址相關聯之區塊位址。CAM 1023則是為此目的而使用的。
第10b圖係顯示根據本發明實施例之用於LBA-Flash-HDD映射表之範例資料結構的圖。在機械式硬碟以及在快閃內之快取位置之資料的真實位置是由嵌入式IO處理器在沒有主機干預下而獨立決定的。例如,若是主機使用邏輯區塊位址或LBA來參考資料,此種LBA會由IO處理器翻譯成實體位置。IO處理器將在硬碟以及快閃內的實體位置最佳化,使得通常或是最近存取的資料會儲存在快閃內,而使其可以最快的方式來存取。此種最佳化的範例係藉由主機來將一致存取的一組LBA分配到在快閃陣列內的不同裝置中,使得該LBA組的部份可同時地存取。主機的存取可加以追蹤,而且利用存取行為來最佳化存取效能。LBA_Flash_HDD表指的是由嵌入式處理器所維護的資料結構,以便將由該主機存取的資料關聯到在快閃以及硬碟內的實體位置,並且對那些最近或是最常存取的資料在快閃陣列內分配其位置。將此類資料放置在快閃內是有利的,因為在快閃與SDRAM之間傳送資料是較在硬碟與SDRAM之間傳送資料來的快。在該表內的每個登錄(entry)將由該主機所定址的一組LBA關聯到關於其在快閃以及硬碟機內的位置的資訊。
在表內所含的資訊再分成快閃重新映射表以及HDD重新映射表。快閃重新映射表包含了快取資料區塊在快閃陣列內之實體位置(實體區塊位址或PBA)的資訊。此一特別的資訊是由IO處理器來使用,以建立DMA指令,該DMA指令是由快閃DMA控制器來加以解譯(interpreted),以控制快閃裝置或是快閃裝置群。除了目前的實體位置外,該表亦包含了資料的快取狀態的資訊。此資訊指示著在快閃內快取的資料和永久儲存在硬碟機內之對應者(counterpart)是如何的不同。此種資訊包含:是否那組資料尚未儲存在硬碟機內、其是否全部或是部份修改、是否其目前是暫時的,且尚不應准許存取...等。最後,快閃重新映射表亦包含了其它有關於實體快閃區塊之使用的控制資訊。此種資訊決定了資料是否符合移到其它快閃區塊,以延長快閃記憶體的使用年限或是作為最佳化的一部份,以改善由主機對資料的存取。
HDD重新映射表包含了位置資訊(實體區塊位址或PBA)以及其它諸如是HDD使用統計之控制資訊。位置資訊是由IO處理器來加以使用,以建立DMA指令,該DMA指令係由IO DMA控制器加以解譯,以准許其在硬碟機中唯一地定址資料。諸如SCSI或ATA之IO介面通常使用LBA或CHS的定址方案(scheme),以將在硬碟機內的資料定址。使用統計是關於定址磁碟區或位置的使用頻率以及方式之額外的資訊。此資訊可由IO處理器使用在演算法中,其係將資料分配到磁碟最佳化,並改善主機對資料的存取。對於顯示在第10b圖中用以維持LBA-Flash-HDD映射表之最佳化方法的更多細節可在專利申請案中找到。
第10c圖為顯示根據本發明實施例用於LBA-SDRAM映射表的範例資料結構的圖。若是SRAM以和SDRAM相同的方式也用作為快取時,則LBA-SDRAM表亦適用於在SRAM內的資料。SDRAM/SRAM提供了對主機最快的存取,因此所有由主機寫入的資料均會先緩衝在SDRAM/SRAM內。同時,由主機讀取的資料是先由快閃或硬碟機讀取到SDRAM/SRAM。SDRAM/SRAM表指的是由嵌入式處理器所維護的資料結構,以便將主機資料存取關聯到其在SDRAM/SRAM快取的位置。在表中的每個登錄將一組由主機所定址的LBA關聯到關於其在SDRAM/SRAM內的暫時位置的資訊,以及其在永久儲存器(快閃或是硬碟機)內的原始或是最終位置。一般而言,LBA_SDRAM表包含了資訊,諸如是:在SDRAM/SRAM內之快取資料區塊的位置、諸如是資料區塊之快取狀態的控制資訊等。位置資訊可讓SDRAM DMA控制器或是SRAM控制器來實質地控制SDRAM裝置以及存取資料。快取狀態指示在SDRAM內的快取資料與在快閃內快取的或在硬碟機內儲存的版本相比是如何的不同。快取狀態包括了資訊,諸如是:是否該組資料尚未組構在永久儲存、是否其是完全地或是部份地修改、是否其目前是暫時的,且尚不應予存取等。若是資料得以永久地組構在快閃或是
硬碟機內,在LBA_Flash_HDD表內就有對應的登錄。對於顯示在第10c圖中用以維持LBA-SDRAM映射表之最佳化方法的更多細節可在專利申請案中找到。
第11圖係顯示可應用在如第1、2和3圖所示之本發明實施例之啟動初始化流程。此程序是關於碼的移動以及控制結構和資料的移動和更新。載入到嵌入式處理器內部快取記憶體的初始碼是永久地儲存在諸如在第10a圖內之1015的FPROM中。由IO處理器所執行之碼的初始部份將FPROM內剩餘的碼傳送到SRAM,該SRAM是對IO處理器提供最快速的存取並對IO處理器而言作為是一種二階(level-2)快取之記憶體。由於FPROM是為小容量裝置,用於IO處理器之剩餘的碼以及諸如是OS核心之其它的碼、或是視需要地由另一嵌入式處理器來執行的應用程式是儲存在快閃內。這些碼的部份是被分頁(paged)至SRAM中用於執行。由FPROM載入到SRAM的初始碼包含用於指示快閃DMA控制器來將下一組準備執行的常式(routine)予以分頁的常式。在將碼由FPROM分頁到SRAM的常式後,啟動的初始化亦必須將SDRAM分割成用於快取資料的區域以及用於儲存控制結構的區域。快閃DMA控制器被指示提取控制結構的初始組,例如,將LBA_Flash_HDD表的位置資訊維持在快閃內的控制結構。下一步則是初始化LBA_SDRAM表以指示SDRAM快取區域是空的。在對SDRAM初始化之後,系統已準備好開始正常的操作。在正常操作期間,IO處理器服務來自主機的讀取/寫入要求,以及管理不同的儲存媒介(SRAM、SDRAM、快閃以及HDD)。其它的處理器可執行其它的應用程式。資料在系統內於不同的裝置間傳送時,儲存媒介的管理必須更新至不同的控制結構,並且將此類結構定期地儲存在永久儲存媒介中(快閃以硬碟)。
第12圖為顯示主要可應用於如第5、7和9圖所示之本發明實施例的來自主機電腦系統之區塊讀取命令的流程圖。圖式的左側顯示著主機系統對混合型儲存裝置執行區塊讀取操作的活動。圖式的右側顯示著在混合型儲存裝置內,從主機系統處收到區塊讀取命令時的活動。區塊IO傳送協定(ATA或SCSI)讓儲存裝置佇列所收到的命令,並在延長的時間內以所要求的資料區塊作回應。
混合型儲存裝置藉由使用在SRAM/SDRAM以及硬碟之間的快閃中間快取(flash intermediate cache)來減少回應時間。因為到DMA控制器的指令可加以鏈結,IO處理器可在背景中建立數個此類指令,並將它們鏈結。使用指令鏈結,DMA控制器可自動地由記憶體提取下一個指令,並在沒有來自IO處理器之額外的干預下執行所指派的傳送。一旦從非揮發性儲存(快閃以及硬碟)到揮發性儲存(SRAM/SDRAM)所傳送的資料量達到預定的臨界值,IO介面DMA控制器則啟動以開始將資料區塊傳送到主機系統。區塊讀取命令的狀態資訊在混合型儲存裝置傳送了所要求的資料區塊後才予以送出。
第13圖為顯示主要可應用於如第5、7和9圖所示之本發明實施例的來自主機電腦系統之區塊寫入命令的流程圖。圖式的左側顯示著主機系統對混合型儲存裝置執行區塊寫入操作的活動。圖式的右側顯示著在混合型儲存裝置內,從主機系統處收到區塊寫入命令時的活動。區塊IO傳送協定(ATA或SCSI)讓儲存裝置佇列所收到的命令,並指示何時其準備好從主機系統接收資料區塊。
混合型儲存裝置藉由使用在SRAM/SDRAM以及硬碟之間的快閃中間快取來減少回應時間。因為到DMA控制器的指令可加以鏈結,所以IO處理器可在背景中建立數個此類指令,並將它們鏈結。使用指令鏈結,DMA控制器可自動地由記憶體提取下一個指令,並在沒有來自IO處理器之額外的干預下執行所指派的傳送。如有需要,資料必須從揮發性記憶體(SRAM/SDRAM)清回至快閃。在此狀況下,則啟動快閃DMA控制器以將資料由SRAM/SDRAM處傳送到快閃。如有需要,資料必須從揮發性記憶體(SRAM/SDRAM)清回至硬碟。在此狀況下,則啟動連接至硬碟的IO介面DMA控制器以將資料由SRAM/SDRAM處傳送到硬碟。當在揮發性儲存(SRAM/SDRAM)緩衝器的可用空間達到第二預定的臨界定值時,則啟動IO介面DMA控制器以持續地接收來自主機系統的資料區塊。用於區塊寫入命令的狀態資訊是在混合型儲存系統可寫入所有資料後才加以傳送。
第14圖為顯示透過可應用於顯示在第2和3圖中本發明實施例之系統匯流排而收到之隨機存取位元組讀取要求的流程圖。圖式的左側顯示著連接至系統匯流排之要求裝置的活動。圖式的右側顯示著在混合型儲存裝置內,於收到隨機存取位元組讀取要求時的活動。
給定了要求的讀取資料的位址後,顯示在第1圖的PCI-Express/PCI-X/PCI DMA控制器111可查詢在CAM 112內的位址。若是CAM回覆了位址有效的匹配,則亦由CAM所回覆的登錄索引係對應於含有所要求之讀取資料之SRAM或SDRAM內資料區塊的索引。SRAM 105以及SDRAM 108亦顯示在第1圖。PCI-Express/PCI-X/PCI DMA可將資料區塊索引翻譯成SRAM或SDRAM位址,並繼續讀取資料。然而,若是CAM不回覆有效的匹配時,則表示目前在SRAM或是SDRAM內快取的資料區塊沒有含有所要求的讀取資料。在這種狀況下,PCI-EXpress/PCI-X/PCI DMA控制器會通知顯示在第1圖的IO處理器103並給定位址。其後,IO處理器使用映射表以及在第17圖所顯示的程序來尋找資料,並將資料從快閃或是硬碟傳送到在SRAM或SDRAM內閒置的資料區塊位置。當傳送完成時,IO處理器將所要求的讀取資料位址寫入CAM登錄,該CAM登錄之索引對應於現在含有所要求讀取資料之SRAM或SDRAM內的資料區塊索引。PCI-EXpress/PCI-X/PCI DMA控制器在偵測到有效的CAM匹配時會進行讀取所要求的資料。
第15圖為顯示透過可應用於顯示在第2和3圖中所示之本發明實施例的系統匯流排所收到之隨機存取位元組寫入要求的流程圖。圖式的左側顯示著連結到系統匯流排之要求裝置的活動。圖式的右側顯示著在收到隨機存取位元組寫入要求時,在混合型儲存裝置內的活動。
給定了寫入要求的位址後,顯示在第1圖之PCI-Express/PCI-X/PCI DMA控制器111可在CAM 112內查詢位址。若是CAM 112對該位址回覆了有效的匹配時,亦由CAM所回覆之登錄的索引則對應到在資料可寫入之SRAM或SDRAM內的資料區塊的索引。SRAM 105以及SDRAM 108亦是顯示在第1圖中。PCI-Express/PCI-X/PCI DMA可將資料區塊索引翻譯成SRAM或SDRAM位址,並接受寫入資料,然後再寫入到SRAM或SDRAM。然而,若是CAM並未回覆有效的匹配時,其意謂著目前在SRAM或SDRAM內快取的資料區塊沒有含有可和資料一同寫入的資料位置。在這種狀況下,PCI-Express/PCI-X/PCI DMA控制器應通知顯示在第1圖內的IO處理器103,並給定寫入位址。IO處理器然後進行顯示在第18圖中的程序,以在資料可寫入之SRAM或SDRAM內獲得資料區塊位置。IO處理器將把寫入位址寫入到CAM登錄中,該CAM登錄之索引係對應到在SRAM或SDRAM內的資料區塊索引,而該SRAM或SDRAM目前則含有所要求的寫入資料。PCI-Express/PCI-X/PCI DMA控制器在偵測到有效的CAM匹配時,可進行接受寫入的資料,並將其寫入到SRAM或SDRAM中。
第16圖為顯示根據本發明實施例之DMA傳送的流程圖。圖式的左側顯示著IO處理器在決定其需要去指示DMA控制器以執行DMA傳送時的活動。圖式的右側顯示的是DMA控制器在由IO處理器所啟動以執行資料傳送時的活動。因為DMA指令可加以鏈結,IO處理器可在背景中建立數個此類指令,並將它們加以鏈結。使用指令鏈結,DMA控制器可以自動地由記憶體提取下一個指令,並在沒有來自IO處理器的額外干預下執行所指派的傳送。此流程的執行是作為回應來自主機系統之讀取/寫入要求的部份,或者作為用於不同儲存媒介之管理功能或用於有關DMA傳送的任何其他目的的部份。
第17、18和19圖為顯示可應用在多層儲存系統之基本快取演算法(algorithm)的範例圖式。資料以及控制資訊兩者均在系統內快取。作為是提供給IO處理器最快存取速度的媒介,SRAM對於快取由IO處理器所使用之控制結構而言是理想的對象,諸如亦儲存在SDRAM內之不同的映射表。SRAM亦可作為用於儲存由處理器所執行之碼的二階快取。然而,其亦可作為一種資料快取,以補充SDRAM。在第17、18和19圖中,雖祇提到SDRAM,但亦可使用SRAM來快取資料。資料快取方案係由IO處理器碼來實行,並可程式化,以對系統的應用程式予以最佳化。尤其,顯示在第17、18和19圖中的快取方案顯示了使用SDRAM作為一階資料快取以及使用快閃作為二階資料快取。第17圖是一種高階流程圖,其顯示回應來自主機系統的讀取要求,如何使用以及更新映射表。圖式顯示了選項,其中對於儲存在快閃內之讀取要求的資料尚未準備快取,相反地,其是暫時地儲存在SRAM 1701中。第18圖是一種高階流程圖,其顯示回應來自主機系統的寫入要求,如何使用以及更新映射表。第19圖顯示了將資料清回到HDD以及快取在快閃內資料的程序,上述兩者在當快取滿載(Cache Full)發生時,均可作為在背景程序或是在寫入期間來加以啟動。為了在寫入時最小化快取滿載,在L1表內登錄的最小計量(count)維持著其被替換的合適性,使得寫入要求可立即地被接受。若是對應的資料已被清回至HDD的快閃或是資料區塊己清空時,在L1內的登錄可被替換。在所顯示的方案中,來自連結的主機系統之所有的資料存取要求是由作為一階(L1)快取的SDRAM來讀取以及寫入。快閃作為是二階(L2)快取,以儲存永久存在HDD內資料的某部份的副本。用以決定在L2內快取哪部份的演算法可能為不同。基本的標準可以是儲存那些最近存取的部份。
前述本發明的實施例是作為例示以及解釋。其並非意圖限制本發明於所描述的特定形式。尤其,應考慮到在此所描述之本發明的功能性實作可實作於硬體、軟體、韌體及/或其它可用的功能性組件或是建立區塊,同時該資料儲存系統亦可包括和網路連結的裝置,並且該網路可以是有線、無線或是有線和無線的合併。其它的變化以及實施例在按照上述的教示後當成為可能,因此本發明的範疇並不受限於詳細說明,而是由下列的申請專利範圍來限制。
101...混合型儲存裝置
102、201、301、401、501、601、701、801...混合型儲存控制器
103、410...IO處理器
104、411...計算/應用程式處理器
105、707...SRAM
106...場可程式化ROM
107...SDRAM控制器
108...SDRAM
109...快閃DMA控制器
110...快閃裝置、快閃陣列、快閃
111...PCI-Express/PCI-X/PCI DMA控制器
112、1023...內容可定址記憶體
113、114、402、403、504、505...IO儲存介面DMA控制器
115、116、406、407...IO網路介面DMA控制器
117...電力防護電路
118...控制路徑
119、120...DMA路徑
202、502、702...主機系統
203...系統匯流排
204...硬碟機
302...從屬裝置
303...系統匯流排
404、405...硬碟陣列
408、409...網路
503、709...IO匯流排
602、802...外部儲存裝置
603、703...IO介面控制器
604...光纖通道
605...乙太網路、混合型儲存控制器PCI-Express/PCI-X/PCI DMA主要介面
606、706...PCI-Express/PCI-X/PCI DMA控制器
708...SDRAM
704、705...序列ATA
803...序列連接介面SCSI
804...乙太網路
901...混合型儲存控制器裝置
1000...儲存系統
1001、1003、1005、1006、1008、1024、1025...資料
1002、1004...硬碟機
1007...快閃
1009...SDRAM
1010、1011、1027...LBA-Flash-HDD表
1012、1013、1014...碼
1015...FPROM
1016、1017...備份副本
1018、1019...LBA-SDRAM表
1020...暫存緩衝器
1021...DMA指令
1022...ByteAdr-LBA表
1026...SRAM
藉由參考圖示於附圖之實施例,可更特定敘述如發明內容中所概要之本發明,而能詳細了解並達到本發明之上述特徵、優點及目的。
然而,應注意的是,所附圖式僅例示本發明典型的實施例,並且不應視為是其範疇的限制,因本發明可加入其它等效的實施例。
第1圖為顯示根據本發明實施例之組成混合型儲存裝置的組件的圖;第2圖為顯示本發明實施例之範例組構的圖,其中,該儲存系統SOC裝置是組構成從屬裝置,且係透過可以隨機存取的系統匯流排以及諸如是PCI/PCI-X/PCI Express之DMA來和主機系統介接,且亦透過諸如是ATA或是SCSI之標準IO儲存介面來和機械式磁碟機介接;第3圖為顯示本發明實施例之第二個範例組構的圖,其中,該儲存系統SOC裝置是組構成主機系統,其係透過可隨機存取的系統匯流排以及諸如是PCI/PCI-X/PCI Express之DMA來和外部儲存裝置介接;第4圖為顯示本發明實施例之第三個範例組構的圖,其中,該儲存系統SOC是組構成獨立的主機系統,其係透過諸如是SCSI之標準IO儲存介面來和機械式磁碟機介接,且亦透過諸如是乙太網路之標準IO網路介面來和網路介接;第5圖為顯示本發明實施例之第四個範例組構的圖,其中,該儲存系統SOC裝置是組構成從屬裝置,且係透過諸如是光纖通道的內部標準IO來和主機系統介接,且透過諸如是USB之第二標準IO介面來和機械式磁碟機介接;
第6圖為顯示本發明實施例之第五個範例組構的圖,其中,該儲存系統SOC裝置是組構成主機裝置,其係透過諸如是光纖通道的外部標準IO儲存介面來和外部儲存裝置介接,且透過諸如是乙太網路之標準IO網路介面來和網路介接;第7圖為顯示本發明實施例之第六個範例組構的圖,其中,該儲存系統SOC裝置是組構成從屬裝置,且係透過諸如是光纖通道的外部標準IO介面來和主機系統介接,並透過諸如是USB之第二標準IO介面來和機械式磁碟機介接;
第8圖為顯示本發明實施例之第七個範例組構的圖,其中,該儲存系統SOC裝置是組構成主機系統,其係透過諸如是光纖通道的內部標準IO儲存介面來和外部儲存裝置介接,且亦透過諸如是乙太網路之標準IO網路介面來和網路介接;
第9圖為顯示本發明實施例之第八個範例組構的圖,其中,該儲存系統SOC裝置是組構成從屬裝置,且在單一的包封體中整合到機械式磁碟機中,並透過諸如是SCSI之標準IO介面來和主機系統介接,且透過低階直接連結來和磁性磁碟控制器介接;第10a圖為顯示在根據本發明實施例之非揮發性及揮
發性儲存組件內之資料結構的圖;第10b圖為顯示根據本發明實施例之用於LBA-Flash-HDD映射表的範例資料結構的圖;第10c圖為顯示根據本發明實施例之用於LBA-SDRAM映射表的範例資料結構的圖;第11圖為顯示根據本發明實施例之啟動初始化過程流程圖;第12圖為顯示根據本發明實施例之來自主機電腦系統的區塊讀取命令的流程圖;第13圖為顯示根據本發明實施例之來自主機電腦系統的區塊寫入命令的流程圖;第14圖為顯示根據本發明實施例之對混合型儲存裝置的隨機位元組-定址讀取存取的流程圖;第15圖為顯示根據本發明實施例之對混合型儲存裝置的隨機位元組-定址寫入存取的流程圖;第16圖為顯示根據本發明實施例之DMA傳送的流程圖;第17圖為顯示根據本發明實施例之回應讀取要求而更新映射表的流程圖;第18圖為顯示根據本發明實施例之回應寫入要求而更新映射表的流程圖;以及第19圖為顯示根據本發明實施例之回應寫入要求或是啟動來作為背景程序而在資料清理操作期間更新映射表的流程圖。
101...混合型儲存裝置
102...混合型儲存控制器
103...IO處理器
104...計算/應用程式處理器
105...SRAM
106...場可程式化ROM
107...SDRAM控制器
108...SDRAM
109...快閃DMA控制器
110...快閃裝置、快閃陣列、快閃
111...PCI-Express/PCI-X/PCIDMA控制器
112...內容可定址記憶體
113、114...IO儲存介面DMA控制器
115、116...IO網路介面DMA控制器
117...電力防護電路
118...控制路徑
119、120...DMA路徑
Claims (28)
- 一種資料儲存系統,用於在沒有來自外部主機或是用戶端系統的干預下使用一個或多個邏輯位址來儲存以及擷取電腦資料,該資料儲存系統包括:IO處理器,用於控制資料儲存系統的資料輸入或輸出;磁碟機,用於儲存一個或多個區塊的資料,該資料包括從該主機傳送來的資料以及用於該IO處理器的控制資料;非揮發性記憶體機制,用於儲存複數個資料區塊,該資料區塊包括從該主機傳送來的資料、儲存在該磁碟機內之資料的快取部份、以及被該IO處理器所用的控制資料;LBA_Flash_HDD表,用於儲存至少一個邏輯位址,該邏輯位址係映射到該非揮發性記憶體機制的至少一個實體位址及該磁碟機的至少一個實體位址;以及其中,該LBA_Flash_HDD表在沒有從該主機來之干預下致能至該非揮發性記憶體機制之記憶存取。
- 如申請專利範圍第1項的資料儲存系統,其中,該LBA_Flash_HDD表是在沒有該主機的干預下,根據該主機之資料存取行為模式而不時的予以更新。
- 如申請專利範圍第1項的資料儲存系統,復包括:FAST記憶體機制,用於儲存一個或多個區塊的資料,該資料包含從該主機系統傳送來的資料、儲存在該 非揮發性記憶體機制內之資料的快取部份、以及用於該IO處理器的控制資料;LBA_FAST表,其中,在該LBA_FAST表內查詢該一個或多個邏輯位址中之至少一者,一旦找到後,該邏輯位址係映射到至少一個FAST記憶體位址,以在沒有從該主機來之干預下,提供該邏輯位址與資料之實體位址間之相關(association),並致能至該資料之存取。
- 如申請專利範圍第3項的資料儲存系統,其中,該LBA_FAST表以及該LBA_Flash_HDD表是在沒有從該主機來之干預下,根據該主機之資料存取行為模式而不時的予以更新。
- 如申請專利範圍第4項的資料儲存系統,其中,該FAST記憶體機制包含:SDRAM記憶體,用於儲存一個或多個區塊的資料,該資料包括由該主機傳送來的資料、儲存在該非揮發性記憶體機制內之資料的快取部份、用於該IO處理器的控制資料、以及該LBA_FAST表;SRAM記憶體,用於儲存一個或多個區塊的資料,該資料包括用於該IO處理器及用於快取該LBA_FAST表的控制資料;以及其中,在運作期間,該LBA_Flash_HDD表是儲存在該非揮發性記憶體機制內,並在該FAST記憶體機制內被快取,第一快取部份是儲存在該SRAM記憶體內,而含有該LBA_Flash_HDD表之剩餘部份的第二快取部 份是儲存在該SDRAM記憶體內,以及該LBA_Flash_HDD表的副本是儲存在該磁碟機內。
- 如申請專利範圍第5項的資料儲存系統,復包括:SDRAM DMA控制器,用於將資料傳送到該SDRAM記憶體或是從該SDRAM記憶體傳送資料出來,該SDRAM DMA控制器回應至少一個DMA指令;非揮發性DMA控制器,用於將資料傳送到該非揮發性記憶體機制及從該非揮發性記憶體機制傳送資料出來,該非揮發性DMA控制器回應至少一個DMA指令;該IO處理器用於準備至少一個DMA指令,該IO處理器使用該LBA_FAST表以及該LBA_Flash_HDD表來,以用於映射該一個或多個邏輯位址;以及其中,儲存在該FAST記憶體機制內之該控制資料復包含至少一個DMA指令。
- 如申請專利範圍第5項的資料儲存系統,復包括:主機DMA控制器,用於將資料傳送到該主機或是從該主機將資料傳送出來,主機DMA控制器回應至少一個DMA指令以及用於將該主機介接(interface)於該資料儲存系統;CAM記憶體機制,用於儲存位元組位址查詢表,其中,該主機DMA控制器將資料傳送到該主機以及從該主機傳送資料出來,而不需該IO處理器在該位元組位址查詢表含有用於由該主機所要求之該資料的有效 登錄之情況下準備該DMA指令;以及IO DMA控制器,用於回應至少一個DMA指令而將資料傳送到該磁碟機以及從該磁碟機傳送資料出來;其中,該磁碟機是透過IO介面而耦接至該IO DMA控制器。
- 如申請專利範圍第5項的資料儲存系統,復包括:第一IO DMA控制器,用於回應至少一個DMA指令而將資料傳送到該主機以及從該主機電腦傳送資料出來;以及第二IO DMA控制器,用於回應至少一個DMA指令而將資料傳送到該磁碟機以及從該磁碟機傳送資料出來;其中,該主機是耦接至該第一IO DMA控制器;以及其中,該磁碟機是耦接至該第二IO DMA控制器。
- 如申請專利範圍第5項的資料儲存系統,復包括:IO DMA控制器機制,用於回應至少一個DMA指令而將資料傳送到該主機及從該主機將資料傳送出來;以及外部匯流排介面DMA控制器機制,用於回應至少一個DMA指令而將資料傳送到該磁碟機及從該磁碟機將資料傳送出來;其中,該主機是耦接至該IO DMA控制器機制;以及 其中,該磁碟機是耦接至該外部匯流排介面DMA控制器機制。
- 一種資料儲存媒介,包含用於儲存資料儲存系統之映射資訊的資料結構,該資料儲存系統包括快閃記憶體、SDRAM記憶體、以及SRAM記憶體,該資料結構包括:LBA_Flash_HDD表,包括一個或多個邏輯位址、一個或多個對應的快閃位址、以及一個或多個對應的磁碟機位址;以及LBA_SDRAM表,包括一個或多個邏輯位址、一個或多個對應的SRAM位址、以及一個或多個對應的SDRAM位址;其中,該LBA_Flash_HDD表之工作副本的第一部份是儲存在該SRAM記憶體內,該工作副本的第二部份是儲存在該SDRAM記憶體內;以及其中,該LBA_SDRAM表是儲存在該SDRAM記憶體內,而該LBA_SDRAM表的快取部份是儲存在該SRAM記憶體機制內。
- 一種資料儲存系統,用於回應從主機所接收之主機要求(host request)以對大量儲存單元實施記憶體運作,該資料儲存系統包括:用於回應該主機要求而處理程式碼之機制,該機制包含IO處理器;第一非揮發性記憶體DMA控制器,電性耦接至該IO處理器; 第一非揮發性記憶體,電性耦接至該第一非揮發性記憶體DMA控制器且用於儲存第一表及從該主機所傳來之選擇資料,該第一表用於儲存複數個分別映射到至少一個實體記憶體位址之邏輯位址;程式碼,用於將第一邏輯位址映射到該第一非揮發性記憶體內的第一資料位置之實體位址;以及其中,在不需主機干預下,用於處理之該機制於對該第一非揮發性記憶體實施記憶體運作時使用該第一表。
- 如申請專利範圍第11項的資料儲存系統,復包括大量儲存DMA控制器,電性耦接到該IO處理器且用於電性耦接到該大量儲存單元;以及其中,該程式碼另用於將該第一邏輯位址映射到該大量儲存單元中的第二資料位置之實體位址。
- 如申請專利範圍第12項的資料儲存系統,復包括:第一非揮發性記憶體及第一非揮發性記憶體DMA控制器,該第一非揮發性記憶體DMA控制器係電性耦接至該第一非揮發性記憶體及至該IO處理器;以及其中,該大量儲存單元包含至少一個硬碟。
- 如申請專利範圍第13項的資料儲存系統,其中,該第一非揮發性記憶體用於快取該選擇資料儲存於該第一非揮發性記憶體內之部分;以及第二表,用於儲存複數個個別分別映射到至少一個實體位址之邏輯位址,該複數個邏輯位址包含映射到該 第一非揮發性記憶體內的第三資料位置之實體位址之第二邏輯位址;以及其中,用於處理之該機制於對該第一非揮發性記憶體實施記憶體運作時使用該第二表之選擇內容。
- 如申請專利範圍第12項的資料儲存系統,復包括:第二非揮發性記憶體;以及其中,該第一非揮發性記憶體用於儲存該第二表,該第二非揮發性記憶體用於快取該第二表之至少一部分;而該第二非揮發性記憶體包含SRAM。
- 如申請專利範圍第12項的資料儲存系統,復包括程式碼,用於回應選擇事件以將該第一表之副本儲存至該大量儲存單元內,而用於處理之該機制復包含高速暫存緩衝器(scratch pad buffer)。
- 如申請專利範圍第11項的資料儲存系統,其中,用於處理之該機制於對該大量儲存單元實施記憶體運作時使用該第一表之選擇內容。
- 如申請專利範圍第17項的資料儲存系統,其中,該第一表之該選擇內容包含該複數個分別映射到至少一個實體位址之邏輯位址。
- 如申請專利範圍第12項的資料儲存系統,復包括:主機DMA控制器,用於回應一個或多個DMA指令,以將資料傳送至該主機或將該主機之資料傳送出來;CAM,用於儲存位元組位址查詢表,該主機DMA 控制器回應含有用於由該主機所要求之資料的有效登錄之該位元組位址查詢表,以在沒有該IO處理器準備該DMA指令下,將資料傳送至該主機及將該主機之資料傳送出來;以及IO儲存DMA控制器,用於透過IO介面回應一個或多個DMA指令,以將資料傳送至該大量儲存單元及將該大量儲存單元之資料傳送出來。
- 如申請專利範圍第12項的資料儲存系統,復包括:第一IO機制,用於回應至少一個DMA指令,以將資料傳送至該主機及將該主機之資料傳送出來,該第一IO機制用於介接該主機;以及第二IO機制,用於回應至少一個DMA指令,以將資料傳送至該大量儲存單元及將該大量儲存單元之資料傳送出來,該第二IO機制用於介接該大量儲存單元。
- 如申請專利範圍第20項的資料儲存系統,其中,該第一及第二IO機制分別包含DMA控制器。
- 如申請專利範圍第11項的資料儲存系統,其中,該IO處理器回應該主機要求,而創造DMA指令之鏈結;以及其中,該第一非揮發性記憶體DMA控制器使用該DMA指令之鏈結來將資訊傳送至該第一非揮發性記憶體或將該第一揮發性記憶體之資訊傳送出來。
- 如申請專利範圍第12項的資料儲存系統,復包含第二非揮發性DMA控制器,電性耦接到該IO處理器,且用 於耦接到該第二非揮發性記憶體;以及其中,該程式碼另用於將該第一邏輯位址映射到定義於該第二非揮發性記憶體內的第二資料位置之實體位址。
- 如申請專利範圍第23項的資料儲存系統,其中,該第一非揮發性記憶體包含快閃記憶體,而該第二非揮發性記憶體包含硬碟;以及其中,該程式碼另用於將該第一邏輯位址映射到定義於該第二非揮發性記憶體內的第二資料位置之實體位址。
- 如申請專利範圍第12項的資料儲存系統,復包含第一揮發性記憶體。
- 如申請專利範圍第25項的資料儲存系統,復包含第一揮發性記憶體控制器,且其中,該第一揮發性記憶體包含至少一個SRAM。
- 如申請專利範圍第26項的資料儲存系統,復包含:匯流排;該第一揮發性記憶體控制器,透過該匯流排電性耦接到該IO處理器;以及其中,該第一揮發性記憶體包含至少一個DRAM且係耦接到該匯流排。
- 如申請專利範圍第26項的資料儲存系統,復包含唯讀記憶體。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/450,023 US7613876B2 (en) | 2006-06-08 | 2006-06-08 | Hybrid multi-tiered caching storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200809495A TW200809495A (en) | 2008-02-16 |
TWI438628B true TWI438628B (zh) | 2014-05-21 |
Family
ID=38823274
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103105076A TWI525431B (zh) | 2006-06-08 | 2007-05-30 | 資料儲存系統、資料結構及資料儲存方法 |
TW096119240A TWI438628B (zh) | 2006-06-08 | 2007-05-30 | 資料儲存系統及資料儲存媒介 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103105076A TWI525431B (zh) | 2006-06-08 | 2007-05-30 | 資料儲存系統、資料結構及資料儲存方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7613876B2 (zh) |
TW (2) | TWI525431B (zh) |
Families Citing this family (210)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080209114A1 (en) * | 1999-08-04 | 2008-08-28 | Super Talent Electronics, Inc. | Reliability High Endurance Non-Volatile Memory Device with Zone-Based Non-Volatile Memory File System |
US8296521B2 (en) * | 2006-06-30 | 2012-10-23 | Mosaid Technologies Incorporated | Method of configuring non-volatile memory for a hybrid disk drive |
US8677084B2 (en) | 2006-06-30 | 2014-03-18 | Mosaid Technologies Incorporated | Method of configuring non-volatile memory for a hybrid disk drive |
JP4791286B2 (ja) * | 2006-08-09 | 2011-10-12 | 富士通株式会社 | ディスク装置および電子装置 |
US7584335B2 (en) * | 2006-11-02 | 2009-09-01 | International Business Machines Corporation | Methods and arrangements for hybrid data storage |
JP5100133B2 (ja) * | 2007-01-19 | 2012-12-19 | 株式会社東芝 | 情報処理装置 |
KR100880425B1 (ko) * | 2007-02-13 | 2009-01-29 | 삼성전자주식회사 | 메모리 맵 테이블 서치 타임을 최소화 또는 줄일 수 있는방법 및 그에 따른 반도체 메모리 장치 |
JP4874844B2 (ja) * | 2007-03-26 | 2012-02-15 | 株式会社東芝 | 情報記録装置及びその制御方法 |
US8140806B2 (en) * | 2007-03-30 | 2012-03-20 | Oracle International Corporation | Eliminating fragmentation with buddy-tree allocation |
JP2008276646A (ja) * | 2007-05-02 | 2008-11-13 | Hitachi Ltd | ストレージ装置及びストレージ装置におけるデータの管理方法 |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US8296534B1 (en) * | 2007-06-29 | 2012-10-23 | Emc Corporation | Techniques for using flash-based memory in recovery processing |
JP2009043030A (ja) | 2007-08-09 | 2009-02-26 | Hitachi Ltd | ストレージシステム |
JP5124217B2 (ja) * | 2007-09-18 | 2013-01-23 | 株式会社日立製作所 | ストレージ装置 |
US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
US20090157940A1 (en) * | 2007-12-15 | 2009-06-18 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques For Storing Data In Multiple Different Data Storage Media |
US20090193189A1 (en) * | 2008-01-30 | 2009-07-30 | Formation, Inc. | Block-based Storage System Having Recovery Memory to Prevent Loss of Data from Volatile Write Cache |
US8732386B2 (en) * | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
TWI421765B (zh) * | 2008-04-01 | 2014-01-01 | Mstar Semiconductor Inc | 可自動更新韌體之顯示控制裝置及其更新方法 |
US7979638B2 (en) * | 2008-04-01 | 2011-07-12 | Oracle America, Inc. | Method and system for accessing data using an asymmetric cache device |
JP5075761B2 (ja) * | 2008-05-14 | 2012-11-21 | 株式会社日立製作所 | フラッシュメモリを用いたストレージ装置 |
TWI385669B (zh) * | 2008-07-23 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 |
JP2010049502A (ja) * | 2008-08-21 | 2010-03-04 | Hitachi Ltd | ストレージサブシステム、及びこれを有するストレージシステム |
US8244937B2 (en) | 2008-09-30 | 2012-08-14 | Micron Technology, Inc. | Solid state storage device controller with parallel operation mode |
TWI382340B (zh) * | 2008-10-31 | 2013-01-11 | Moai Electronics Corp | The protection method of exclusive command of memory |
US20100115213A1 (en) * | 2008-11-06 | 2010-05-06 | Skymedi Corporation | Memory apparatus and memory management method of the same |
KR101023883B1 (ko) * | 2009-02-13 | 2011-03-22 | (주)인디링스 | 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템 |
US8312219B2 (en) * | 2009-03-02 | 2012-11-13 | International Business Machines Corporation | Hybrid caching techniques and garbage collection using hybrid caching techniques |
KR101663545B1 (ko) * | 2009-04-06 | 2016-10-07 | 시게이트 테크놀로지 엘엘씨 | 코드의 동적 재배치 방법 및 이를 이용한 디스크 드라이브 |
US20100262773A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Data striping in a flash memory data storage device |
US8595572B2 (en) | 2009-04-08 | 2013-11-26 | Google Inc. | Data storage device with metadata command |
US20100262979A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Circular command queues for communication between a host and a data storage device |
US20100287217A1 (en) * | 2009-04-08 | 2010-11-11 | Google Inc. | Host control of background garbage collection in a data storage device |
US9323658B2 (en) * | 2009-06-02 | 2016-04-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Multi-mapped flash RAID |
US8321630B1 (en) * | 2010-01-28 | 2012-11-27 | Microsoft Corporation | Application-transparent hybridized caching for high-performance storage |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
US8321521B1 (en) | 2011-06-24 | 2012-11-27 | Limelight Networks, Inc. | Write-cost optimization of CDN storage architecture |
US9003159B2 (en) * | 2009-10-05 | 2015-04-07 | Marvell World Trade Ltd. | Data caching in non-volatile memory |
US20110229104A1 (en) * | 2009-10-22 | 2011-09-22 | Hundemer Hank J | System And Method For Recording and Playback Of Multimedia Content |
WO2011074040A1 (en) * | 2009-12-17 | 2011-06-23 | Hitachi,Ltd. | Storage apparatus and its control method |
US8914568B2 (en) * | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
US20110191522A1 (en) * | 2010-02-02 | 2011-08-04 | Condict Michael N | Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory |
US8576641B1 (en) * | 2010-02-26 | 2013-11-05 | Xilinx, Inc. | Method of and circuit for providing non-volatile memory in an integrated circuit |
US8756387B2 (en) | 2010-03-05 | 2014-06-17 | International Business Machines Corporation | Method and apparatus for optimizing the performance of a storage system |
JP5523561B2 (ja) | 2010-03-18 | 2014-06-18 | 株式会社日立製作所 | ストレージ装置に接続された記憶制御装置 |
US8850151B2 (en) * | 2010-03-24 | 2014-09-30 | Apple Inc. | Hybrid-device storage based on environmental state |
US9047351B2 (en) | 2010-04-12 | 2015-06-02 | Sandisk Enterprise Ip Llc | Cluster of processing nodes with distributed global flash memory using commodity server technology |
US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US8725951B2 (en) | 2010-04-12 | 2014-05-13 | Sandisk Enterprise Ip Llc | Efficient flash memory-based object store |
US20110252263A1 (en) * | 2010-04-13 | 2011-10-13 | Byungcheol Cho | Semiconductor storage device |
US8688897B2 (en) * | 2010-05-28 | 2014-04-01 | International Business Machines Corporation | Cache memory management in a flash cache architecture |
US8341339B1 (en) | 2010-06-14 | 2012-12-25 | Western Digital Technologies, Inc. | Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk |
US8959284B1 (en) | 2010-06-28 | 2015-02-17 | Western Digital Technologies, Inc. | Disk drive steering write data to write cache based on workload |
US8954385B2 (en) | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
US9213628B2 (en) | 2010-07-14 | 2015-12-15 | Nimble Storage, Inc. | Methods and systems for reducing churn in flash-based cache |
US9146875B1 (en) | 2010-08-09 | 2015-09-29 | Western Digital Technologies, Inc. | Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining |
US8639872B1 (en) | 2010-08-13 | 2014-01-28 | Western Digital Technologies, Inc. | Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk |
US9268499B1 (en) | 2010-08-13 | 2016-02-23 | Western Digital Technologies, Inc. | Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory |
US9058280B1 (en) | 2010-08-13 | 2015-06-16 | Western Digital Technologies, Inc. | Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time |
EP2609498A1 (en) * | 2010-08-27 | 2013-07-03 | Fxi Technologies AS | Electronic devices |
US8683295B1 (en) | 2010-08-31 | 2014-03-25 | Western Digital Technologies, Inc. | Hybrid drive writing extended error correction code symbols to disk for data sectors stored in non-volatile semiconductor memory |
US8775720B1 (en) | 2010-08-31 | 2014-07-08 | Western Digital Technologies, Inc. | Hybrid drive balancing execution times for non-volatile semiconductor memory and disk |
US8782334B1 (en) | 2010-09-10 | 2014-07-15 | Western Digital Technologies, Inc. | Hybrid drive copying disk cache to non-volatile semiconductor memory |
US8825977B1 (en) | 2010-09-28 | 2014-09-02 | Western Digital Technologies, Inc. | Hybrid drive writing copy of data to disk when non-volatile semiconductor memory nears end of life |
US8825976B1 (en) | 2010-09-28 | 2014-09-02 | Western Digital Technologies, Inc. | Hybrid drive executing biased migration policy during host boot to migrate data to a non-volatile semiconductor memory |
US8670205B1 (en) | 2010-09-29 | 2014-03-11 | Western Digital Technologies, Inc. | Hybrid drive changing power mode of disk channel when frequency of write data exceeds a threshold |
US8699171B1 (en) | 2010-09-30 | 2014-04-15 | Western Digital Technologies, Inc. | Disk drive selecting head for write operation based on environmental condition |
US8612798B1 (en) | 2010-10-21 | 2013-12-17 | Western Digital Technologies, Inc. | Hybrid drive storing write data in non-volatile semiconductor memory if write verify of disk fails |
US8429343B1 (en) | 2010-10-21 | 2013-04-23 | Western Digital Technologies, Inc. | Hybrid drive employing non-volatile semiconductor memory to facilitate refreshing disk |
US8427771B1 (en) | 2010-10-21 | 2013-04-23 | Western Digital Technologies, Inc. | Hybrid drive storing copy of data in non-volatile semiconductor memory for suspect disk data sectors |
US8560759B1 (en) | 2010-10-25 | 2013-10-15 | Western Digital Technologies, Inc. | Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency |
US9069475B1 (en) | 2010-10-26 | 2015-06-30 | Western Digital Technologies, Inc. | Hybrid drive selectively spinning up disk when powered on |
US20120110259A1 (en) * | 2010-10-27 | 2012-05-03 | Enmotus Inc. | Tiered data storage system with data management and method of operation thereof |
US8719520B1 (en) * | 2010-12-14 | 2014-05-06 | Datadirect Networks, Inc. | System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity |
US8694733B2 (en) | 2011-01-03 | 2014-04-08 | Sandisk Enterprise Ip Llc | Slave consistency in a synchronous replication environment |
US9977732B1 (en) * | 2011-01-04 | 2018-05-22 | Seagate Technology Llc | Selective nonvolatile data caching based on estimated resource usage |
US9098397B2 (en) * | 2011-04-04 | 2015-08-04 | International Business Machines Corporation | Extending cache for an external storage system into individual servers |
US20120254508A1 (en) | 2011-04-04 | 2012-10-04 | International Business Machines Corporation | Using the Short Stroked Portion of Hard Disk Drives for a Mirrored Copy of Solid State Drives |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
GB2493195A (en) * | 2011-07-28 | 2013-01-30 | St Microelectronics Res & Dev | Address translation and routing between dies in a system in package. |
TWI472920B (zh) * | 2011-09-01 | 2015-02-11 | A system and method for improving the read and write speed of a hybrid storage unit | |
US9195530B1 (en) | 2011-09-06 | 2015-11-24 | Western Digital Technologies, Inc. | Systems and methods for improved data management in data storage systems |
US8713357B1 (en) | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting in data storage systems |
US8707104B1 (en) | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8630056B1 (en) | 2011-09-12 | 2014-01-14 | Western Digital Technologies, Inc. | Hybrid drive adjusting spin-up profile based on cache status of non-volatile semiconductor memory |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
KR20140077167A (ko) * | 2011-10-07 | 2014-06-23 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 매핑 영구형 저장장치 |
US8909889B1 (en) | 2011-10-10 | 2014-12-09 | Western Digital Technologies, Inc. | Method and apparatus for servicing host commands by a disk drive |
US8412884B1 (en) | 2011-10-13 | 2013-04-02 | Hitachi, Ltd. | Storage system and method of controlling storage system |
US9684520B2 (en) * | 2011-10-20 | 2017-06-20 | Smart Modular Technologies, Inc. | Computing system with non-disruptive fast memory restore mechanism and method of operation thereof |
US10216651B2 (en) | 2011-11-07 | 2019-02-26 | Nexgen Storage, Inc. | Primary data storage system with data tiering |
US8977804B1 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Varying data redundancy in storage systems |
US9268701B1 (en) | 2011-11-21 | 2016-02-23 | Western Digital Technologies, Inc. | Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability |
US8977803B2 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Disk drive data caching using a multi-tiered memory |
CN102567244B (zh) * | 2011-12-13 | 2014-06-04 | 清华大学 | 闪存和磁盘转换存取方法 |
US20130282992A1 (en) * | 2011-12-22 | 2013-10-24 | Intel Corporation | Object-aware storage |
US8904091B1 (en) | 2011-12-22 | 2014-12-02 | Western Digital Technologies, Inc. | High performance media transport manager architecture for data storage systems |
US9213632B1 (en) | 2012-02-29 | 2015-12-15 | Marvell International Ltd. | Systems and methods for data storage devices to use external resources |
WO2013128494A1 (en) * | 2012-03-02 | 2013-09-06 | Hitachi, Ltd. | Storage system and data transfer control method |
US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
US8954673B1 (en) * | 2012-03-20 | 2015-02-10 | Emc International Company | Using a conditional read request and a hash to determine synchronization of data in a cache at a host with data in storage array |
US9053008B1 (en) | 2012-03-26 | 2015-06-09 | Western Digital Technologies, Inc. | Systems and methods for providing inline parameter service in data storage devices |
US8760922B2 (en) | 2012-04-10 | 2014-06-24 | Sandisk Technologies Inc. | System and method for micro-tiering in non-volatile memory |
US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
US20130318196A1 (en) * | 2012-05-23 | 2013-11-28 | Hitachi, Ltd. | Storage system and storage control method for using storage area based on secondary storage as cache area |
US9594685B2 (en) * | 2012-07-06 | 2017-03-14 | Seagate Technology Llc | Criteria for selection of data for a secondary cache |
US9390020B2 (en) | 2012-07-06 | 2016-07-12 | Seagate Technology Llc | Hybrid memory with associative cache |
US9477591B2 (en) | 2012-07-06 | 2016-10-25 | Seagate Technology Llc | Memory access requests in hybrid memory system |
US9104578B2 (en) | 2012-07-06 | 2015-08-11 | Seagate Technology Llc | Defining address ranges used to cache speculative read data |
US9772948B2 (en) | 2012-07-06 | 2017-09-26 | Seagate Technology Llc | Determining a criterion for movement of data from a primary cache to a secondary cache |
US9529724B2 (en) | 2012-07-06 | 2016-12-27 | Seagate Technology Llc | Layered architecture for hybrid controller |
US20140032814A1 (en) * | 2012-07-25 | 2014-01-30 | Lsi Corporation | Hybrid storage device having disk controller with high-speed serial port to non-volatile memory bridge |
US10303618B2 (en) * | 2012-09-25 | 2019-05-28 | International Business Machines Corporation | Power savings via dynamic page type selection |
US20140108705A1 (en) * | 2012-10-12 | 2014-04-17 | Sandisk Technologies Inc. | Use of High Endurance Non-Volatile Memory for Read Acceleration |
US8959281B1 (en) | 2012-11-09 | 2015-02-17 | Western Digital Technologies, Inc. | Data management for a storage device |
US9430376B2 (en) | 2012-12-26 | 2016-08-30 | Western Digital Technologies, Inc. | Priority-based garbage collection for data storage systems |
US20140189204A1 (en) * | 2012-12-28 | 2014-07-03 | Hitachi, Ltd. | Information processing apparatus and cache control method |
US20140229654A1 (en) * | 2013-02-08 | 2014-08-14 | Seagate Technology Llc | Garbage Collection with Demotion of Valid Data to a Lower Memory Tier |
US20140250272A1 (en) * | 2013-03-04 | 2014-09-04 | Kabushiki Kaisha Toshiba | System and method for fetching data during reads in a data storage device |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US10445239B1 (en) * | 2013-03-15 | 2019-10-15 | Bitmicro Llc | Write buffering |
US9430386B2 (en) * | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9916213B1 (en) | 2013-03-15 | 2018-03-13 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US10120694B2 (en) | 2013-03-15 | 2018-11-06 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9720603B1 (en) | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
US9734067B1 (en) * | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US8949486B1 (en) * | 2013-07-17 | 2015-02-03 | Mellanox Technologies Ltd. | Direct memory access to storage devices |
US9141176B1 (en) | 2013-07-29 | 2015-09-22 | Western Digital Technologies, Inc. | Power management for data storage device |
US9507719B2 (en) | 2013-08-20 | 2016-11-29 | Seagate Technology Llc | Garbage collection in hybrid memory system |
US9367247B2 (en) * | 2013-08-20 | 2016-06-14 | Seagate Technology Llc | Memory access requests in hybrid memory system |
US9785564B2 (en) | 2013-08-20 | 2017-10-10 | Seagate Technology Llc | Hybrid memory with associative cache |
US9069474B2 (en) | 2013-08-20 | 2015-06-30 | Seagate Technology Llc | Retention based defecting in a hybrid memory system |
US9070379B2 (en) | 2013-08-28 | 2015-06-30 | Western Digital Technologies, Inc. | Data migration for data storage device |
KR20150047785A (ko) * | 2013-10-25 | 2015-05-06 | 삼성전자주식회사 | 서버 시스템 및 스토리지 시스템 |
US8917471B1 (en) | 2013-10-29 | 2014-12-23 | Western Digital Technologies, Inc. | Power management for data storage device |
US9323467B2 (en) | 2013-10-29 | 2016-04-26 | Western Digital Technologies, Inc. | Data storage device startup |
US9558124B2 (en) * | 2013-11-08 | 2017-01-31 | Seagate Technology Llc | Data storage system with passive partitioning in a secondary memory |
US10140067B1 (en) | 2013-12-19 | 2018-11-27 | Western Digital Technologies, Inc. | Data management for data storage device with multiple types of non-volatile memory media |
KR101995623B1 (ko) * | 2014-01-16 | 2019-07-02 | 인텔 코포레이션 | 고속 구성 메커니즘을 위한 장치, 방법, 및 시스템 |
US9696942B2 (en) | 2014-03-17 | 2017-07-04 | Mellanox Technologies, Ltd. | Accessing remote storage devices using a local bus protocol |
US9727503B2 (en) | 2014-03-17 | 2017-08-08 | Mellanox Technologies, Ltd. | Storage system and server |
US10445025B2 (en) * | 2014-03-18 | 2019-10-15 | Micron Technology, Inc. | Apparatuses and methods having memory tier structure and recursively searching between tiers for address in a translation table where information is only directly transferred between controllers |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
GB2527105B (en) * | 2014-06-12 | 2019-01-30 | Xyratex Tech Limited | A storage carrier and a storage system |
US9823846B2 (en) * | 2014-08-20 | 2017-11-21 | Qualcomm Incorporated | Systems and methods for expanding memory for a system on chip |
US9678665B2 (en) * | 2015-03-06 | 2017-06-13 | Western Digital Technologies, Inc. | Methods and systems for memory page allocation |
US10210087B1 (en) * | 2015-03-31 | 2019-02-19 | EMC IP Holding Company LLC | Reducing index operations in a cache |
US10922228B1 (en) * | 2015-03-31 | 2021-02-16 | EMC IP Holding Company LLC | Multiple location index |
US9804786B2 (en) * | 2015-06-04 | 2017-10-31 | Seagate Technology Llc | Sector translation layer for hard disk drives |
US10013174B2 (en) | 2015-09-30 | 2018-07-03 | Western Digital Technologies, Inc. | Mapping system selection for data storage device |
US9760479B2 (en) | 2015-12-02 | 2017-09-12 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US10185666B2 (en) | 2015-12-15 | 2019-01-22 | Facebook, Inc. | Item-wise simulation in a block cache where data eviction places data into comparable score in comparable section in the block cache |
US20170168956A1 (en) * | 2015-12-15 | 2017-06-15 | Facebook, Inc. | Block cache staging in content delivery network caching system |
US10275160B2 (en) | 2015-12-21 | 2019-04-30 | Intel Corporation | Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller |
US20170220592A1 (en) * | 2016-02-01 | 2017-08-03 | Microsoft Technology Licensing, Llc | Modular data operations system |
US9898208B2 (en) * | 2016-04-27 | 2018-02-20 | Datadirect Networks, Inc. | Storage system with hybrid logical volumes utilizing in-band hinting |
US10404823B2 (en) * | 2016-05-27 | 2019-09-03 | Home Box Office, Inc. | Multitier cache framework |
US9990134B2 (en) * | 2016-06-15 | 2018-06-05 | Seagate Technology Llc | Command tunneling in a hybrid data storage device |
US9927975B2 (en) * | 2016-08-03 | 2018-03-27 | Micron Technology, Inc. | Hybrid memory drives, computer system, and related method for operating a multi-mode hybrid drive |
US10200376B2 (en) | 2016-08-24 | 2019-02-05 | Intel Corporation | Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network |
US10176116B2 (en) | 2016-09-28 | 2019-01-08 | Intel Corporation | Computer product, method, and system to provide discovery services to discover target storage resources and register a configuration of virtual target storage resources mapping to the target storage resources and an access control list of host nodes allowed to access the virtual target storage resources |
US10740251B2 (en) * | 2017-01-20 | 2020-08-11 | Seagate Technology Llc | Hybrid drive translation layer |
US10635581B2 (en) | 2017-01-20 | 2020-04-28 | Seagate Technology Llc | Hybrid drive garbage collection |
US10126964B2 (en) * | 2017-03-24 | 2018-11-13 | Seagate Technology Llc | Hardware based map acceleration using forward and reverse cache tables |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
US10162626B2 (en) * | 2017-04-10 | 2018-12-25 | Microsoft Technology Licensing, Llc | Ordered cache tiering for program build files |
US11474555B1 (en) * | 2017-08-23 | 2022-10-18 | Xilinx, Inc. | Data-driven platform characteristics capture and discovery for hardware accelerators |
KR102369402B1 (ko) * | 2017-09-20 | 2022-03-02 | 삼성전자주식회사 | 스토리지 장치, 이의 동작 방법 및 스토리지 장치를 포함하는 스토리지 시스템 |
US10523457B2 (en) * | 2017-12-21 | 2019-12-31 | Industrial Technology Research Institute | Network communication method, system and controller of PCIe and Ethernet hybrid networks |
US10915262B2 (en) * | 2018-03-13 | 2021-02-09 | Seagate Technology Llc | Hybrid storage device partitions with storage tiers |
KR20200019513A (ko) * | 2018-08-14 | 2020-02-24 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그 동작 방법 |
CN109375868B (zh) * | 2018-09-14 | 2022-07-08 | 深圳爱捷云科技有限公司 | 一种数据存储方法、调度装置、***、设备及存储介质 |
US10620868B1 (en) * | 2019-03-22 | 2020-04-14 | Hitachi, Ltd. | Storage system and data transfer method |
JP6898393B2 (ja) | 2019-03-22 | 2021-07-07 | 株式会社日立製作所 | ストレージシステム及びデータ転送方法 |
US11379373B2 (en) * | 2019-08-13 | 2022-07-05 | Micron Technology, Inc. | Memory tiering using PCIe connected far memory |
US11106595B2 (en) | 2019-08-22 | 2021-08-31 | Micron Technology, Inc. | Hierarchical memory systems |
US11169928B2 (en) | 2019-08-22 | 2021-11-09 | Micron Technology, Inc. | Hierarchical memory systems to process data access requests received via an input/output device |
US11036434B2 (en) | 2019-08-22 | 2021-06-15 | Micron Technology, Inc. | Hierarchical memory systems |
US11074182B2 (en) | 2019-08-22 | 2021-07-27 | Micron Technology, Inc. | Three tiered hierarchical memory systems |
US10789094B1 (en) * | 2019-08-22 | 2020-09-29 | Micron Technology, Inc. | Hierarchical memory apparatus |
US10996975B2 (en) * | 2019-08-22 | 2021-05-04 | Micron Technology, Inc. | Hierarchical memory systems |
US11036633B2 (en) | 2019-08-22 | 2021-06-15 | Micron Technology, Inc. | Hierarchical memory apparatus |
US10929301B1 (en) | 2019-08-22 | 2021-02-23 | Micron Technology, Inc. | Hierarchical memory systems |
US11016903B2 (en) | 2019-08-22 | 2021-05-25 | Micron Technology, Inc. | Hierarchical memory systems |
US11782624B2 (en) | 2020-10-06 | 2023-10-10 | Samsung Electronics Co., Ltd. | Worflow-based partition allocation |
US11934658B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Enhanced storage protocol emulation in a peripheral device |
US11934333B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Storage protocol emulation in a peripheral device |
US11726666B2 (en) | 2021-07-11 | 2023-08-15 | Mellanox Technologies, Ltd. | Network adapter with efficient storage-protocol emulation |
US11789653B2 (en) | 2021-08-20 | 2023-10-17 | Micron Technology, Inc. | Memory access control using a resident control circuitry in a memory device |
US12007921B2 (en) | 2022-11-02 | 2024-06-11 | Mellanox Technologies, Ltd. | Programmable user-defined peripheral-bus device implementation using data-plane accelerator (DPA) |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5325509A (en) * | 1991-03-05 | 1994-06-28 | Zitel Corporation | Method of operating a cache memory including determining desirability of cache ahead or cache behind based on a number of available I/O operations |
US5636355A (en) * | 1993-06-30 | 1997-06-03 | Digital Equipment Corporation | Disk cache management techniques using non-volatile storage |
US5848247A (en) * | 1994-09-13 | 1998-12-08 | Hitachi, Ltd. | Microprocessor having PC card interface |
US5644784A (en) * | 1995-03-03 | 1997-07-01 | Intel Corporation | Linear list based DMA control structure |
JP2001142869A (ja) * | 1999-11-17 | 2001-05-25 | Matsushita Electric Ind Co Ltd | システム集積回路 |
JP2001166993A (ja) * | 1999-12-13 | 2001-06-22 | Hitachi Ltd | 記憶制御装置およびキャッシュメモリの制御方法 |
US6785767B2 (en) * | 2000-12-26 | 2004-08-31 | Intel Corporation | Hybrid mass storage system and method with two different types of storage medium |
US6754773B2 (en) * | 2001-01-29 | 2004-06-22 | Snap Appliance, Inc. | Data engine with metadata processor |
JP4162863B2 (ja) * | 2001-03-30 | 2008-10-08 | 株式会社ルネサステクノロジ | マイクロコンピュータ |
JP2004118544A (ja) * | 2002-09-26 | 2004-04-15 | Renesas Technology Corp | メモリシステム |
US7493450B2 (en) * | 2003-04-14 | 2009-02-17 | Hewlett-Packard Development Company, L.P. | Method of triggering read cache pre-fetch to increase host read throughput |
US20050210304A1 (en) * | 2003-06-26 | 2005-09-22 | Copan Systems | Method and apparatus for power-efficient high-capacity scalable storage system |
WO2005089446A2 (en) * | 2004-03-18 | 2005-09-29 | Andrew Peter Liebman | A novel media file access and storage solution for multi-workstation/multi-platform non-linear video editing systems |
JP2005302152A (ja) * | 2004-04-12 | 2005-10-27 | Sony Corp | 複合型記憶装置、データ書込方法及びプログラム |
US7493465B2 (en) * | 2004-05-17 | 2009-02-17 | Oracle International Corporation | Method and system for extended memory with user mode input/output operations |
JP2006133989A (ja) * | 2004-11-04 | 2006-05-25 | Hitachi Ltd | ストレージシステムの管理方法、及び装置 |
JP2006338370A (ja) * | 2005-06-02 | 2006-12-14 | Toshiba Corp | メモリシステム |
-
2006
- 2006-06-08 US US11/450,023 patent/US7613876B2/en active Active
-
2007
- 2007-05-30 TW TW103105076A patent/TWI525431B/zh not_active IP Right Cessation
- 2007-05-30 TW TW096119240A patent/TWI438628B/zh not_active IP Right Cessation
-
2009
- 2009-10-08 US US12/575,480 patent/US8032700B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW201421240A (zh) | 2014-06-01 |
US20100095053A1 (en) | 2010-04-15 |
TWI525431B (zh) | 2016-03-11 |
TW200809495A (en) | 2008-02-16 |
US8032700B2 (en) | 2011-10-04 |
US7613876B2 (en) | 2009-11-03 |
US20070288692A1 (en) | 2007-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI438628B (zh) | 資料儲存系統及資料儲存媒介 | |
US10949092B2 (en) | Memory system with block rearrangement to secure a free block based on read valid first and second data | |
US20080235477A1 (en) | Coherent data mover | |
US8370533B2 (en) | Executing flash storage access requests | |
EP3382557B1 (en) | Method and apparatus for persistently caching storage data in a page cache | |
US8291175B2 (en) | Processor-bus attached flash main-memory module | |
CN109154907B (zh) | 在输入-输出存储器管理单元中使用多个存储器元件来执行虚拟地址到物理地址转译 | |
US10782917B2 (en) | Storage device | |
US20110276746A1 (en) | Caching storage adapter architecture | |
US10140031B2 (en) | Hierarchical flash translation layer structure and method for designing the same | |
KR20150105323A (ko) | 데이터 스토리지 방법 및 시스템 | |
TWI236592B (en) | Method and system of managing virtualized physical memory in a multi-processor system | |
WO2007146845A2 (en) | Configurable and scalable hybrid multi-tiered caching storage system | |
EP4170506A1 (en) | Systems, methods, and devices for ordered access of data in block modified memory | |
US9785552B2 (en) | Computer system including virtual memory or cache | |
JP2006099802A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
CN111480151A (zh) | 将高速缓存线从共用存储器页面冲洗到存储器 | |
US11436150B2 (en) | Method for processing page fault by processor | |
JP2010191672A (ja) | データ記憶システム | |
US20230019878A1 (en) | Systems, methods, and devices for page relocation for garbage collection | |
TW202318205A (zh) | 記憶體系統及資料輸入輸出系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |