TW201303586A - 包含記憶體系統控制器之裝置及相關方法 - Google Patents

包含記憶體系統控制器之裝置及相關方法 Download PDF

Info

Publication number
TW201303586A
TW201303586A TW101119408A TW101119408A TW201303586A TW 201303586 A TW201303586 A TW 201303586A TW 101119408 A TW101119408 A TW 101119408A TW 101119408 A TW101119408 A TW 101119408A TW 201303586 A TW201303586 A TW 201303586A
Authority
TW
Taiwan
Prior art keywords
information
command
compliant
hba
interface
Prior art date
Application number
TW101119408A
Other languages
English (en)
Other versions
TWI463314B (zh
Inventor
Michael A Erdmann
Keith J Lunzer
Joseph M Jeddeloh
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of TW201303586A publication Critical patent/TW201303586A/zh
Application granted granted Critical
Publication of TWI463314B publication Critical patent/TWI463314B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Information Transfer Systems (AREA)

Abstract

記憶體系統控制器可包含一主機匯流排配接器(HBA),及經由一功能特定互連而耦接至該HBA之一順應串列進階附接技術(SA)程式化器件,該功能特定互連經組態以在該HBA與該順應SA程式化器件之間同時傳送一命令、一回應及其他資訊。

Description

包含記憶體系統控制器之裝置及相關方法
本發明大體而言係關於裝置(諸如,半導體記憶體器件、系統及控制器)及其相關方法,且更特定言之,係關於(例如)記憶體系統控制器。
記憶體器件通常經提供為電腦或其他電子器件中之內部電路、半導體電路、積體電路。存在許多不同類型之記憶體,包含揮發性及非揮發性記憶體。揮發性記憶體可需要電力以維持其資訊(例如,資料),且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(SDRAM),及靜態隨機存取記憶體(SRAM)以及其他記憶體。非揮發性記憶體可藉由在未被供電時保留所儲存資訊而提供持續性資訊,且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可抹除可程式化ROM(EEPROM)、可抹除可程式化ROM(EPROM),及相位改變隨機存取記憶體(PCRAM)以及其他記憶體。
記憶體器件可組合在一起以形成固態驅動機(SSD)。固態驅動機可包含非揮發性記憶體(例如,NAND快閃記憶體及NOR快閃記憶體),及/或可包含揮發性記憶體(例如,DRAM及SRAM),以及各種其他類型之非揮發性及揮發性記憶體。針對廣範圍之電子應用,可將包含浮閘快閃器件及電荷捕集快閃(CTF)器件之快閃記憶體器件用作非揮發性記憶體,電荷捕集快閃(CTF)器件使用將資訊儲存於氮 化物層中之電荷捕集器中的半導體-氧化物-氮化物-氧化物-半導體及金屬-氧化物-氮化物-氧化物-半導體電容器結構。快閃記憶體器件通常使用允許高記憶體密度、高可靠性及低功率消耗之單電晶體記憶體胞。
SSD可用以替換作為計算系統之主要儲存器件的硬碟驅動機,此係因為固態驅動機可相比於硬驅動機在效能、大小、重量、強度、操作溫度範圍及功率消耗方面具有優點。舉例而言,當與磁碟驅動機相比時,SSD歸因於其無移動部件而可具有高級效能,此情形可避免尋找與磁碟驅動機相關聯的時間、潛時及其他機電延遲。SSD製造商可使用非揮發性快閃記憶體來製造可不使用內部電池供應的快閃SSD,因此允許該驅動機更通用且更緊密。
SSD可包含多個記憶體器件,例如,多個記憶體晶片(如本文所使用,「多個」某物可指代此等物的一或多者,例如,多個記憶體器件可指代一或多個記憶體器件)。如一般熟習此項技術者將瞭解,記憶體晶片可包含(例如)多個晶粒及/或邏輯單元(LUN),其中LUN可為一或多個晶粒。每一晶粒可包含多個記憶體陣列及其上之周邊電路。記憶體陣列可包含組織成多個實體頁面之多個記憶體胞,且該等實體頁面可組織成多個區塊。可使快閃記憶體胞陣列一次性程式化一頁面及一次性抹除一區塊。SSD控制器可使用嵌入式處理器以執行記憶體管理及分配。
本發明包含記憶體系統控制器。記憶體系統控制器可包 含主機匯流排配接器(HBA),及經由功能特定互連耦接至HBA之順應串列附接(SA)程式化器件,該功能特定互連經組態以在HBA與順應SA程式化器件之間同時傳送命令、回應及其他資訊。
在本發明之以下[實施方式]中,參考形成本發明之一部分的隨附圖式,且其中藉由說明來展示可實踐本發明之多個實施例的方式。充分詳細地描述了此等實施例以使得一般熟習此項技術者能夠實踐本發明之實施例,且應理解,可利用其他實施例且可在不脫離本發明之範疇的情況下做出程序、電及/或結構改變。如本文所使用,指示符「N」(特定地關於圖式中之參考數字)指示如此指定的多個特定特徵可包含於本發明之多個實施例中。
本文之諸圖遵循編號慣例,其中第一數位對應於圖號且剩餘數位識別圖式中之元件或組件。可藉由使用相同數位來識別不同圖之間的相同元件或組件。舉例而言,108可參考圖1中之元件「08」,且相同元件可在圖2中被參考為208。如將瞭解,可添加、交換及/或消除本文之各種實施例中所展示的元件以便提供本發明之多個額外實施例。另外,如將瞭解,諸圖中所提供之元件的比例及相對尺度意欲說明本發明之實施例,且不應以限制性意義來理解。
圖1為根據本發明之多個實施例的包含至少一記憶體系統104之計算系統100的功能方塊圖。在圖1中所說明之實施例中,記憶體系統104(例如,固態驅動機(SSD))可包含一實體主機介面106、一記憶體系統控制器108(例如,SSD 控制器)及多個固態記憶體器件110-1、...、110-N。固態記憶體器件110-1、...、110-N可提供用於記憶體系統之儲存容量。在多個實施例中,固態記憶體系統控制器108可為特殊應用積體電路(ASIC),其中控制器108(例如,呈ASIC之形式)耦接至包含實體介面106及固態記憶體器件110-1、...、110-N之印刷電路板。
如圖1中所說明,記憶體系統控制器108(例如,固態記憶體系統控制器)可耦接至實體主機介面106及耦接至固態記憶體器件110-1、...、110-N。實體主機介面106可用以在記憶體系統104與諸如主機102之另一器件之間傳達資訊。主機102可包含記憶體存取器件,例如,處理器。一般熟習此項技術者將瞭解,「處理器」可意指多個處理器,諸如,並行處理系統、多個共處理器,等等。實例主機包含膝上型電腦、個人電腦、數位相機、數位記錄及播放器件、行動電話、PDA、記憶卡讀取器、介面集線器,及其類似者。對於多個實施例,實體主機介面106可呈標準化實體介面之形式。舉例而言,當記憶體系統104用於計算系統100中之資訊儲存時,實體主機介面106可為串列進階附接技術(SATA)實體介面、周邊組件快速互連(peripheral component interconnect express,PCIe)實體介面、小電腦系統介面(SCSI)介面、串列附接SCSI(SAS)介面,或通用串列匯流排(USB)實體介面,以及其他介面。 然而,大體而言,實體主機介面106可提供用於在記憶體系統104與具有用於實體主機介面106之相容接收器的主機 102之間傳遞控制、位址、資訊(例如,資料)及其他信號之介面。
固態記憶體系統控制器108可與固態記憶體器件110-1、...、110-N通信以讀取、寫入及抹除資訊,以及進行其他操作。固態記憶體系統控制器108可具有可為多個積體電路及/或離散組件的韌體及/或電路。對於多個實施例,固態記憶體系統控制器108中之電路可包含用於控制跨越固態記憶體器件110-1、...、110-N之存取的控制電路,及用於在主機102與記憶體系統104之間提供轉譯層的電路。因此,記憶體控制器可選擇性地耦接固態記憶體器件110-1、...、110-N之I/O連接(圖1中未展示)以在適當時間接收在適當I/O連接處之適當信號。類似地,主機102與記憶體系統104之間的通信協定可不同於存取固態記憶體器件110-1、...、110-N所需的通信協定。固態記憶體系統控制器108可接著將自主機102接收之命令轉譯成適當命令以達成對固態記憶體器件110-1、...、110-N之所要存取。
固態記憶體器件110-1、...、110-N可包含多個記憶體胞陣列,例如,非揮發性記憶體胞。舉例而言,該等陣列可為具有NAND架構之快閃陣列。在NAND架構中,一「列」記憶體胞之控制閘極可與存取(例如,字)線耦接,而記憶體胞可在選擇閘極源極電晶體與選擇閘極汲極電晶體之間的「串」中源極至汲極串列耦接。該串可藉由選擇閘極汲極電晶體而連接至資料(例如,位元)線。術語「列」及「串」之使用暗示記憶體胞既不是線性配置亦不 是正交配置。如一般熟習此項技術者將瞭解,記憶體胞至位元線及源極線之連接之方式視陣列為NAND架構、NOR架構抑或某其他記憶體陣列架構而定。
固態記憶體器件110-1、...、110-N可包含可分組之多個記憶體胞。如本文所使用,群組可包含多個記憶體胞,諸如,頁面、區塊、平面、晶粒、整個陣列,或記憶體胞之其他群組。舉例而言,一些記憶體陣列可包含構成記憶體胞之區塊的記憶體胞之多個頁面。多個區塊可包含於記憶體胞之一平面中。記憶體胞之多個平面可包含於一個晶粒中。作為一實例,128 GB記憶體器件可包含每頁面4320位元組資訊、每區塊128頁面、每平面2048個區塊,及每器件16個平面。
記憶體系統104可實施耗損平均(wear leveling)(例如,廢棄項目收集及/或回收),以控制固態記憶體器件110-1、...、110-N之耗損率。固態記憶體陣列可在多個程式及/或抹除循環之後經歷錯誤(例如,故障)。耗損平均可藉由在整個陣列上將對特定群組所執行的程式及/或抹除循環更均勻地展開而減少該等循環之數目。耗損平均可包含用以最小化移動之有效區塊之量以回收區塊之動態耗損平均。動態耗損平均可包含稱為廢棄項目收集之技術。廢棄項目收集可包含(例如)根據「貪婪演算法(greedy algorithm)」回收具有最無效頁面之區塊(例如,抹除具有最無效頁面之區塊及使得具有最無效頁面之區塊可用於寫入)。或者,廢棄項目收集可包含回收具有多於臨限量之 無效頁面的區塊。若存在用於寫入操作之充足的自由區塊,則可不發生廢棄項目收集操作。無效頁面(例如)可為已更新至不同頁面之資訊之頁面。靜態耗損平均包含將靜態資訊寫入至具有高抹除計數以延長區塊之壽命之區塊。
寫入放大為可在將資訊寫入至固態記憶體器件110-1、...、110-N時發生的程序。當將資訊隨機寫入於記憶體陣列中時,固態記憶體系統控制器108掃描該陣列中之可用空間。記憶體陣列中之可用空間可為個別胞元、頁面,及/或並未正儲存資訊及/或已經抹除之記憶體胞之區塊。若存在將資訊寫入於選定位置中之足夠可用空間,則將資訊寫入至記憶體陣列之選定位置。若在選定位置中不存在足夠可用空間,則藉由讀取、複製、移動已存在於選定位置中之資訊至新位置或以其他方式重寫及抹除該資訊來重新配置記憶體陣列中的資訊,從而為待寫入於選定位置中的新資訊留下可用空間。記憶體陣列中之舊資訊之重新配置被稱為寫入放大,此係因為藉由記憶體器件執行之寫入之量被放大超過在選定位置中存在充足可用空間時將發生的寫入之量。
圖1中所說明之計算系統100可包含超過所說明範圍的額外電路。已減少圖1中所說明之計算系統100的細節,以便不使本發明之實施例混淆。舉例而言,記憶體系統104可包含用以鎖存經由經由I/O電路之I/O連接而提供的位址信號之位址電路。位址信號可由列解碼器及行解碼器接收及解碼以存取固態記憶體器件110-1、...、110-N。熟習此項 技術者將瞭解,位址輸入連接之數目可視固態記憶體器件110-1、...、110-N之密度及架構而定。
圖2為根據本發明之多個實施例的記憶體系統204的功能方塊圖。記憶體系統204可包含固態記憶體系統控制器208。固態記憶體系統控制器208可耦接至多個固態記憶體器件,例如,圖1中所說明之固態記憶體器件110-1、...、110-N。在圖2中所展示之實例中,該多個記憶體器件包含包含多個邏輯單元(LUN)250的非揮發性記憶體,且控制器208包含揮發性記憶體212。LUN 250可為可獨立地可控制之非揮發性記憶體的一部分。記憶體系統204及固態記憶體系統控制器208可分別類似於圖1中所說明的記憶體系統104及固態記憶體系統控制器108。
固態記憶體系統控制器208可包含主機介面(I/F)電路214,主機介面(I/F)電路214用於經由實體主機介面206而與主機(例如,圖1中所說明之主機102)介接。固態記憶體系統控制器208可包含主機-記憶體轉譯電路216、記憶體管理電路218、開關220、非揮發性記憶體控制電路222,及/或揮發性記憶體控制電路224。如本文所描述,固態記憶體系統控制器208可以ASIC之形式提供,然而,實施例不限於此。
主機I/F電路214可耦接至主機-記憶體轉譯電路216。主機I/F電路214可耦接至及/或併有至主機之實體介面(諸如,實體介面206)。主機I/F電路214可與主機(例如,圖1中之主機102)介接。主機I/F電路214可包含提供實體層、 鏈結層及輸送或異動層介面之周邊組件快速互連(PCIe)電路230,例如,其中主機經組態以根據PCIe標準來傳輸資訊。根據串列進階附接技術(SATA)標準及/或串列附接SCSI(SAS)標準之輸送層可類似於根據PCIe標準之異動層。PCIe電路230可耦接至主機匯流排配接器(HBA)234,例如,進階主機控制器介面(AHCI)相容HBA。HBA 234可耦接至順應SA器件236,順應SA器件236可耦接至主機-記憶體轉譯電路216。
大體而言,主機I/F電路214負責將自主機(例如,自PCIe匯流排)所接收之命令封包轉換成用於主機-記憶體轉譯電路216之命令指令,且負責將主機-記憶體轉譯回應轉換成主機命令以供傳輸至請求主機。舉例而言,主機I/F電路214可自基於PCIe之異動層封包建構SA命令封包。下文關於圖3A至圖3B更詳細地描述HBA 234及順應SA器件236。
主機-記憶體轉譯電路216可耦接至主機I/F電路214、記憶體管理電路218,及/或開關220。主機-記憶體轉譯電路216可經組態以將主機位址轉譯成記憶體位址,例如,與所接收命令(諸如,讀取及/或寫入命令)相關聯的位址。舉例而言,可藉由SATA至記憶體電路238來執行此轉譯。儘管被識別為「SATA至記憶體」電路238,但該電路可經組態以用於諸如SAS之其他串列附接,如本文所描述。主機-記憶體轉譯電路216可(例如)將主機區段讀取及寫入操作轉換成針對特定LUN 250之命令。主機-記憶體轉譯電路216可包含錯誤偵測/校正電路,諸如,RAID互斥或(XOR)電 路226。RAID XOR電路226可基於自主機I/F電路214接收之資訊計算同位資訊。
記憶體管理電路218可耦接至主機-記憶體轉譯電路216及耦接至開關220。記憶體管理電路218可控制多個記憶體操作,包含(但不限於)初始化、耗損平均(例如,廢棄項目收集及/或回收),及/或錯誤偵測/校正。雖然記憶體管理電路218可包含處理器228,但本發明之多個實施例提供在不依賴於藉由處理器228進行指令(例如,軟體及/或韌體)之執行的情況下進行電路(例如,硬體)中之記憶體操作之控制。相對於更重地依賴於處理器來控制記憶體操作的一些先前方法,此等實施例可提供較快速記憶體操作。記憶體管理電路218可包含區塊管理電路240,其關於圖4更詳細地予以描述。
開關220可耦接至主機-記憶體轉譯電路216、記憶體管理電路218、非揮發性控制電路222,及/或揮發性記憶體控制電路224。開關220為縱橫制開關,且可包含及/或耦接至多個緩衝器。舉例而言,開關220可包含內部靜態隨機存取記憶體(SRAM)緩衝器(ISB)225。開關可耦接至包含於揮發性記憶體212中之複數個動態隨機存取記憶體(DRAM)緩衝器227。開關可包含緩衝器分配管理(BAM)電路221,緩衝器分配管理(BAM)電路221可包含緩衝器標籤集區223。開關220可將介面提供於固態記憶體系統控制器208之各種組件之間。開關220可考量可與固態記憶體系統控制器208之不同組件相關聯的經界定傳訊協定之變化, 以便提供組件之間的一致性存取及實施。在多個實施例中,開關220可為直接記憶體存取(DMA)模組。
BAM電路221中之緩衝器標籤集區223中之複數個標籤可各自識別複數個DRAM緩衝器227或複數個ISB 225中之各別一者。當特定標籤指向DRAM緩衝器227時,可將可程式化「BAR」位址附加至該緩衝器標籤以填滿揮發性記憶體212之位址。BAM電路221可經組態以回應於來自多個硬體主控器中之一者之分配請求而將一標籤分配給該多個硬體主控器中之該一者。硬體主控器可包含可存取記憶體之彼等硬體組件。
BAM電路221可經組態以相比於識別複數個DRAM緩衝器227中之一者之標籤而優先化識別複數個ISB 225中之一者之標籤的分配。ISB 225相比於DRAM緩衝器227可為較快且功率較低的,且因此可更合適。因此,BAM電路221可經組態以優先化標籤之分配,以使得僅在識別ISB 225之所有標籤已予以分配之後分配識別複數個DRAM緩衝器227中之一者之一標籤。在多個實施例中,固態記憶體系統控制器208可包含768個DRAM緩衝器227及256個ISB 225,達總共1024個緩衝器。在此等實施例中,緩衝器標籤可為識別1024個緩衝器中之一者之10位元標籤。緩衝器標籤可不具有對硬體主控器之特定意義,但在命令(例如,讀取及/或寫入命令)之處理期間由硬體主控器傳遞,以允許參考正確緩衝器。該多個硬體主控器可經組態以一般性地請求標籤之分配,而不請求對複數個ISB 225中之 一者或複數個DRAM緩衝器227中之一者為特定的標籤之分配。在多個實施例中,DRAM緩衝器227及ISB 225中之每一者之大小可等於最大所支援之記憶體頁面之大小(例如,4 KB)。
BAM電路221可經組態以自緩衝器集區223移除與不起作用緩衝器相關聯之標籤。處理器228可經組態以存取BAM電路221且自緩衝器集區223移除與不起作用緩衝器相關聯之標籤。此等實施例可幫助固態記憶體系統控制器208適當地起作用,即使一或多個ISB 225出故障亦如此。在一些實施例中,可使用移除(例如,「標出」)「壞的」緩衝器之能力來代替在製造期間測試ISB 225。開關220可經「超量供應」有ISB 225,以使得損失多個ISB 225不會顯著影響固態記憶體系統控制器208之操作。
該多個硬體主控器可經組態以結合讀取命令或寫入命令而向BAM電路221請求標籤之分配,且結合讀取命令或寫入命令之完成而向BAM電路221請求經分配標籤之解除分配。硬體主控器針對多個命令不使用相同標籤,且因此針對每一命令請求一新標籤。硬體主控器可經組態以相比於分配請求而優先化解除分配請求,(例如)以幫助確保充足緩衝器(特定地ISB 225)可供來自多個硬體主控器之多個命令使用。
緩衝器標籤之使用可促進讀取操作。硬體主控器可經組態以將讀取命令連同經分配標籤發送至非揮發性記憶體控制電路222。非揮發性記憶體控制電路222可經組態以將對 應於讀取命令之資訊儲存於藉由經分配標籤而識別之緩衝器中,且通知發送讀取命令之特定硬體主控器該資訊已就緒。
緩衝器標籤之使用可促進寫入操作。硬體主控器可經組態以將寫入命令連同經分配標籤發送至非揮發性記憶體控制電路222,且將對應於該寫入命令之資訊儲存於藉由經分配標籤識別之緩衝器中。非揮發性記憶體控制電路222可經組態以自藉由經分配標籤而識別之緩衝器擷取資訊,將該資訊寫入至非揮發性記憶體(例如,寫入至適當LUN 250),且通知發送寫入命令之硬體主控器該資訊已經寫入。
記憶體管理電路218中之處理器228可為硬體主控器。處理器228可經組態以賦能在非揮發性記憶體控制電路222與揮發性記憶體控制電路224之間的直接記憶體存取(DMA)操作,而在不考慮複數個標籤的情況下存取整個揮發性記憶體212空間。其他硬體主控器可能不賦能DMA特徵,且因此,依賴於標籤以用於存取緩衝器而非直接存取記憶體空間。處理器228可經由結合經由命令管線而發送的命令而使用的欄位中之資訊來賦能DMA操作而忽視使緩衝器存取記憶體空間之需要。舉例而言,資訊「DMA_En BARSEL」可包含於供命令使用之欄位中,其中「DMA_En」向接收器指示DMA操作已經賦能,且其中「BARSEL」指示應包含針對DRAM之位址來代替緩衝器標籤,如本文所描述。因此,處理器228可使用與針對其 他硬體主控器之基於緩衝器之存取相同的邏輯而在揮發性記憶體212與LUN 250之間移動資訊。可在存取LUN 250時藉由通道控制電路248將「DMA_En」傳回至開關220。自通道控制電路248之觀點,DMA存取幾乎相同於基於緩衝器之存取。若確證「DMA_En」,則開關220可將請求強加至揮發性記憶體212。「BARSEL」由開關220使用以在其指向DRAM緩衝器227時調換類似於附加至緩衝器標籤之「BAR」位址的唯一「BAR」。舉例而言,「BAR」位址可為指向四個位置中之一者之雙位元位址,然而,實施例不限於此。「BAR」位址之使用可允許不同的同時DMA。
非揮發性記憶體控制電路222可耦接至開關220。非揮發性記憶體控制電路222可耦接至非揮發性記憶體器件。圖2展示包含多個LUN 250之非揮發性記憶體器件。該多個LUN 250可藉由多個通道而耦接至非揮發性記憶體控制電路222。在一些實施例中,該多個通道可由非揮發性記憶體控制電路222共同地控制。在多個實施例中,每一記憶體通道耦接至離散通道控制電路248,如圖2中所說明。特定通道控制電路248可藉由單一通道而控制及耦接至一個以上LUN 250。在多個實施例中,通道控制電路248可藉由順應開放NAND快閃介面(ONFI)匯流排而耦接至複數個LUN 250。
非揮發性記憶體控制電路222包含命令管線之至少一部分,命令駐留於該命令管線中同時等待藉由通道控制電路248來執行。起始對LUN 250之請求的所有硬體主控器可經 由開關220共用同一命令管線。對於來自主機之讀取命令(主機讀取),不存在對哪一LUN 250被存取之控制,此係因為主機需要儲存於一或多個LUN 250中之特定資訊。同樣地,不存在對主機訊務之容量之控制。本文所描述之命令管線可提供在隱藏LUN 250之間的程式時間、讀取時間及抹除時間衝突方面之靈活性。舉例而言,抹除時間可比程式時間或讀取時間長。每一通道控制電路248可藉由複數個通道而耦接至複數個LUN 250。因此,當抹除命令正由特定通道控制電路248針對特定LUN執行時,特定通道控制電路248可在同一通道上針對不同LUN 250執行另一命令。
非揮發性記憶體控制電路222可包含耦接至通道控制電路248中每一者之通道請求佇列(CRQ)242。每一通道控制電路248可包含耦接至複數個LUN命令佇列(LCQ)246之LUN請求佇列(LRQ)244。LRQ 244可為數目為L深佇列電路,其中L等於每通道控制電路248中LUN 250之數目。CRQ 242可為數目為C深佇列電路,其中C等於(例如)x倍(複數個通道控制電路248),其中x為整數(例如,4)。舉例而言,非揮發性記憶體控制電路222可包含32個通道,其中每通道有16個LUN,一個128深CRQ 242經組態以儲存多達128個條目用於在通道之間共用之命令儲存,每通道一個16深LRQ 244經組態以儲存特定通道上之LUN 250之間的多達16個命令,且每通道有一個2深LCQ 246,其中LCQ 246為先進先出(FIFO)電路。舉例而言,2深FIFO可經組態 以使當前命令及待在當前命令之後執行之接下來的命令排成佇列。此等實施例提供(512個LUN×2深LCQ)達1024個條目,加上(每通道一個16深LRQ×32個通道)達512個條目,加上(一個128深CRQ)而達總共(1024+512+128)=1664個命令儲存條目。如本文所描述,此命令管線結構可以一部分大小而提供與524,288個命令儲存條目(每通道32個LUN×16個通道×每LUN 1024深FIFO=524,288)相同的效能。
CRQ 242可經組態以自開關220接收命令,且將該命令中繼至LRQ 244中之一者,例如,與該命令標靶的特定LUN 250所關聯之通道相關聯的LRQ 244。LRQ 244可經組態而按用於特定LUN 250之第一複數個命令由LRQ 244接收的次序而將該第一複數個命令中繼至與特定LUN 250相關聯的LCQ 246。命令管線經結構化而使得至同一LUN 250之命令按次序(例如,按其由LRQ 244接收的次序)移動。LRQ 244可經組態以回應於與特定LUN 250相關聯之LCQ 246充滿而使針對該特定LUN 250之命令排成佇列,且CRQ 242可經組態以回應於特定LRQ 244充滿而使針對該特定LRQ 244之命令排成佇列。
LRQ 244可經組態以根據不同LUN 250之狀態按一次序將用於不同LUN 250之第二複數個命令中繼至與該等不同LUN 250相關聯的LCQ 246。舉例而言,不同LUN 250之狀態可為就緒/忙碌狀態。命令管線經結構化而使得不同LUN 250之間的命令可不按次序移動,例如,根據為了當時使總記憶體操作有效而按不同於該等命令由LRQ 244接 收之次序的次序。舉例而言,LRQ 244可經組態以回應於與第二LCQ 246相關聯之不同LUN 250之狀態係忙碌的而在將第二複數個命令之第二命令中繼至第二LCQ 246之前將第二複數個命令之第一命令中繼至第一LCQ 246,其中第二複數個命令之該第一命令在時間上比第二複數個命令之該第二命令接收地晚。LRQ 244可經組態以回應於與第二LCQ 246相關聯之LUN 250之狀態係就緒的而(例如)在中繼第二複數個命令之第一命令之後將第二複數個命令之第二命令中繼至第二LCQ 246。
包含用於每一通道之離散非揮發性記憶體通道控制電路之多個實施例可包含耦接至每一通道控制電路248之離散錯誤偵測/校正電路232,(例如錯誤校正碼(ECC)電路),及/或可供一個以上通道使用的多個錯誤偵測/校正電路232。錯誤偵測/校正電路232可經組態以應用錯誤校正(諸如,BCH錯誤校正)(如由一般熟習此項技術者將理解),以偵測及/或校正與儲存於LUN 250中之資訊相關聯的錯誤。舉例而言,錯誤偵測/校正電路可提供在1080位元碼字內之錯誤校正之29個位元。錯誤偵測/校正電路232可經組態以提供不同錯誤校正方案用於單位階胞元及/或多位階胞元(SLC/MLC)操作。
揮發性記憶體控制電路224可耦接至開關220及揮發性記憶體212(例如,多個揮發性記憶體器件)。在其他資訊當中,該多個揮發性記憶體器件可儲存LBA表及/或區塊表,如關於圖4更詳細地描述。
圖3A為根據本發明之多個實施例的在主機匯流排配接器(HBA)334與順應串列附接(SA)程式化器件336之間的輸送層介面的功能方塊圖。HBA 334可類似於圖2中所說明的HBA 234。順應SA程式化器件336可類似於圖2中所說明的順應SA程式化器件236。在多個實施例中,順應SA程式化器件336可為順應串列進階技術(SATA)程式化器件。在多個實施例中,順應SA程式化器件336可為順應串列附接SCSI(SAS)程式化器件。
在概念上使用多個層來界定SA協定。針對SATA,按自低至高之次序,此等層包含實體層、鏈結層、輸送層及命令層。針對SAS,按自低至高之次序,此等層包含實體層、PHY層、鏈結層、埠層、輸送層及應用層。可在輸送層上藉由將命令分解成訊框資訊結構(FIS)來傳達命令層及/或應用層資訊。根據一些先前方法,使用基元在鏈結層上傳達FIS。使用碼字在實體層上傳達基元,使用8b10b編碼在SATA或SAS纜線上傳輸碼字。SATA或SAS纜線上之通信係由自主機之觀點被參考為傳輸(Tx)及接收(Rx)的電線之兩個差分對組成。此等電線可傳輸命令或資訊,且經仲裁以用於控制。此方案之一個限制為,一旦在纜線上仲裁通信,其即為所發生之唯一通信。亦即,SATA或SAS僅能夠在給定時間傳輸單一FIS。
若HBA 334與順應SA程式化器件336之介面完全在控制器內(例如,如在圖2中所說明的固態記憶體系統控制器208之狀況下),資訊流則免於纜線連接之SA實體層之約 束。本發明之多個實施例放棄實體層及鏈結層之使用,而保留由命令層352及輸送層354支援之FIS及命令之使用。可藉由將實體通信界定為四組輸入/輸出(例如,命令(Cmd)、回應(Rsp)、寫入資料(WrData)及讀取資料(RdData))而達成並行性。因此,藉由使用功能特定互連,在命令、回應與資訊遞送之間不再存在衝突。其可同時經管線傳送及操作。亦即,功能特定互連可經組態以在HBA 334與順應SA程式化器件336之間同時傳送命令、回應及資訊。功能特定互連可包含:HBA 334上之Cmd輸出耦接至順應SA程式化器件336上之Cmd輸入、順應SA程式化器件336上之Rsp輸出耦接至HBA 334上之Rsp輸入、HBA 334上之WrData輸出耦接至順應SA程式化器件336上之WrData輸入,及順應SA程式化器件336上之RdData輸出耦接至HBA 334上之RdData輸入。在多個實施例中,Cmd、Rsp、WrData及RdData輸入/輸出對中每一者可為單向的,且既不使用8b10b編碼亦不使用基元。
功能特定互連可經組態以回應於第一命令協定(例如,本機命令佇列(NCQ)及/或帶標命令佇列(TCQ)以及其他命令協定)而同時操作命令介面(HBA 334上之Cmd輸出及順應SA程式化器件336上之Cmd輸入)、回應介面(HBA 334上之Rsp輸入及順應SA程式化器件336上之Rsp輸出),及資訊介面(HBA 334上之WrData輸出及順應SA程式化器件336上之WrData輸入,及/或HBA 334上之RdData輸入及順應SA程式化器件336上之RdData輸出)。功能特定互連可經組態 以回應於第二命令協定(例如,NonData、經程式化輸入/輸出(PIO),及/或直接記憶體存取(DMA)以及其他協定)而原子式地操作命令介面、回應介面及資訊介面。
命令介面可用以將主機-器件(HD)FIS自HBA 334遞送至順應SA程式化器件336。HBA 334上之WrData輸出可用以將資訊遞送至順應SA程式化器件336上之WrData輸入。順應SA程式化器件336上之RdData輸出可用以將資訊遞送至HBA 334上之RdData輸入。回應介面可用以(例如)使用PIOSetup、DMAActivate、DMASetup等等來限定資訊遞送,且傳達完成(例如,器件-主機(DH)及/或設定器件位元(SDB)等等)。限定資訊遞送可包含界定遞送資訊之次序。緩衝暫存之使用可允許在對應回應FIS之前開始資訊之移動。
圖3B為根據本發明之多個實施例的HBA 334與順應SA程式化器件336的功能方塊圖。圖3B之HBA 334可類似於圖3A中的HBA 334,但展示更多細節。圖3B之順應SA程式化器件336可類似於圖3A中的順應SA程式化器件336,但展示更多細節。
HBA 334可包含命令收件器(fetcher)356,命令收件器356將Cmd輸出提供給順應SA程式化器件336。HBA 334可包含回應接收器358,回應接收器358自順應SA程式化器件336接收Rsp輸入。HBA 334可包含下游DMA器件360,下游DMA器件360將WrData輸出提供給順應SA程式化器件336。HBA 334可包含上游DMA器件362,上游DMA器件 362自順應SA程式化器件336接收RdData輸入。Cmd收件器356、Rsp接收器358、下游DMA 360及上游DMA 362中每一者可為可獨立於彼此而操作之硬體組件,但在多個實施例中可使操作與HBA FSM 372(例如,進階主機控制器介面(AHCI)狀態機)同步而使得可堅持AHCI協定。
下游DMA器件360及Cmd收件器356可耦接至匯流排介面(I/F)364以用於下游寫入及/或上游讀取。匯流排I/F 364可經組態以自Cmd收件器356接收請求,將該等請求傳遞至PCIe I/F(例如,具有圖2中所說明之PCIe電路230之介面),且在適當時將回覆傳回至Cmd收件器356。匯流排I/F 364亦可經組態以自PCIe I/F接收資訊,且將請求(例如,寫入資訊提取)對其發送。下游DMA器件360可經組態以在存在適當緩衝暫存以接收寫入資訊時經由匯流排I/F 364用管線傳送多個PCIe讀取請求。經由匯流排I/F 364而發送至PCIe I/F的每一請求可造成將資訊自PCIe I/F引導至各別寫入緩衝器的旋轉緩衝器標籤之指派。可接著以旋轉方式自寫入緩衝器移除資訊而使其待發送至順應SA程式化器件336。Rsp接收器358及上游DMA器件362可耦接至匯流排I/F 366以用於下游讀取及/或上游寫入。匯流排I/F 366可經組態以經由PCIe I/F傳輸資訊及/或請求。
HBA 334架構可將單一AHCI埠呈現給主機器件驅動器軟體,但可擴展該埠內之命令槽之數目(例如,擴展至256個)。專屬主機器件驅動器可藉由控制暫存器370(例如,八個32位元命令發佈暫存器)來存取槽。控制暫存器370可經 由控制介面368連接至PCIe I/F以用於寫入控制資訊之輸入及讀取控制資訊之輸出。在多個實施例中,Cmd收件器356可擷取命令且按命令被發佈的次序將命令轉遞至順應SA程式化器件336。可在控制暫存器370內同時接收多個命令(例如,32個命令),且使其排成佇列用於Cmd收件器356。
該多個命令槽可分組成命令槽群組,且具有指派至其之訊息傳訊中斷(MSI)(例如,MSI-X)向量。此等實施例相對於包含針對多個埠之命令之32b AHCI暫存器之一些先前方法可為有益的。本發明之多個實施例包含具有針對命令之256b暫存器之一個埠,其可使得具有MSI向量之命令分組有利,以便改良可在主機(例如,圖1中所說明之主機102)中最佳化中斷效能之可能性。
HBA 334可使用上下文陣列以用於待以交錯方式返回之NCQ讀取。特定讀取命令內之資訊按次序進行處理,然而,多個未處理(outstanding)讀取命令之部分可彼此交錯。當藉由順應SA程式化器件336起始讀取上下文時,HBA 334可自上下文陣列擷取讀取命令之當前狀態之記錄且自其上一次中斷之點繼續。當完成讀取上下文時,HBA 334可將更新之命令進度值儲存於上下文陣列中。可存在針對每一可能的未處理讀取命令(例如,256個未處理讀取命令)之上下文陣列位置。類似上下文陣列可用於寫入。
順應SA程式化器件336可包含命令有限狀態機(FSM)374,命令有限狀態機(FSM)374自HBA 334(例如,HBA 334之命令收件器356)接收Cmd輸入。順應SA程式化器件336可包含器件-主機仲裁器(DH ARB)376,器件-主機仲裁器(DH ARB)376將Rsp輸出提供至HBA 334(例如,HBA 334之回應接收器358)。順應SA程式化器件336可包含寫入FSM 378,寫入FSM 378自HBA 334(例如,HBA 334之下游DMA 360)接收WrData輸入。順應SA程式化器件336可包含讀取FSM 380,讀取FSM 380將RdData輸出提供至HBA 334(例如,HBA 334之上游DMA 362)。Wr FSM 378可將輸出提供至記憶體,且Rd FSM 380可(例如)經由圖2中所說明之主機-記憶體轉譯電路216提供來自記憶體之輸入。
DH ARB 376可具有來自Cmd FSM 374之輸入(例如)以用於DH、SDB等等之通信。DH ARB 376可包含來自Wr FSM 378之輸入(例如)以用於寫入DMASetup。DH ARB 376可包含來自Rd FSM 380之輸入(例如)以用於讀取DMASetup。DH ARB 376可經組態以基於來自Cmd FSM 374、Wr FSM 378及Rd FSM 380之輸入而限定資訊遞送之次序且將完成傳達至HBA 334。Wr FSM 378可包含寫入緩衝器,寫入緩衝器經組態以在DH ARB 376限定寫入資訊遞送之次序之前對寫入資訊進行緩衝暫存。Rd FSM 380可包含讀取緩衝器,讀取緩衝器經組態以在DH ARB 376限定讀取資訊遞送之次序之前對讀取資訊進行緩衝暫存。
在多個實施例中,Cmd FSM 374可經組態以藉由預設同時操作。Cmd FSM 374可經組態以回應於單一上下文命令協定(諸如,PIO或DMA)之偵測而(例如)在 「CurrencyDisabled」模式中原子式地操作。當Cmd FSM 374原子式地操作時,Cmd FSM 374可經組態以確證兩個「PassControl」信號(一者至Wr FSM 378及一者至Rd FSM 380)中之一者。隨後,Cmd FSM 374可進入「WaitForCtl」狀態直至接收重設命令或確證來自Wr FSM 378或Rd FSM 380之「RetrunControl」信號為止。若經偵測協定為NonData,則PassControl信號兩者皆不被確證。Cmd FSM 374可服務命令自身且在完成之後即恢復成閒置。若邏輯指示命令標籤準備好淘汰,則Cmd FSM可產生適當SDB FIS且恢復成閒置。
在多個實施例中,Wr FSM 378及Rd FSM 380可經組態以藉由預設同時操作。Wr FSM 378及Rd FSM 380可經組態以在自Cmd FSM 374接收PassControl信號及/或偵測單一上下文命令協定(諸如,PIO或DMA)時原子式地操作。Wr FSM 378及/或Rd FSM 380可遵循SA協定(例如,SATA協定或SAS協定)而原子式地操作,直至完成命令計數或滿足錯誤條件為止,在此狀況下,各別FSM可確證其之RtnCtl信號,此可將Cmd FSM 374自其之WaitForCtl狀態釋放。相反地,同時操作允許每一FSM獨立移動資訊。
圖4說明根據本發明之多個實施例的區塊管理器件440的功能方塊圖。區塊管理器件440可類似於圖2中所說明的區塊管理器件240且可包含於記憶體管理電路中。區塊管理器件440可與揮發性記憶體412(例如,DRAM)通信,揮發性記憶體412可類似於圖2中所說明的揮發性記憶體212。 因此,舉例而言,區塊管理器件440可經由開關及揮發性記憶體控制電路與揮發性記憶體412通信。揮發性記憶體412可儲存邏輯區塊位址(LBA)表482、區塊表484,及/或異動日誌486以及其他資訊。
LBA表482可儲存LUN(例如,圖2中所說明之LUN 250)中之頁面之實體頁面位址,且包含對應邏輯位址。亦即,LBA表482可儲存邏輯至實體位址轉譯及/或實體至邏輯位址轉譯。因此,LBA表482可用以查找對應於可儲存對應資訊的邏輯區塊位址之實體頁面位址。LBA表482可藉由含於相關聯SA命令中之LBA加索引。區塊表484可儲存多個LUN中之可抹除區塊之資訊。儲存於區塊表484中之資訊可包含有效頁面資訊、抹除計數,及其他健康及/或狀態資訊。自區塊表484所存取的資訊可藉由實體區塊位址而加索引。異動日誌486可用以記錄關於在LUN中發生的寫入之資訊。在多個實施例中,異動日誌486可與至LUN之寫入同時更新。異動日誌486可包含關於自上一次LBA表482儲存於非揮發性記憶體中以來已發生的至LUN之寫入之資訊,(例如)以便促進歸因於LBA表482至非揮發性記憶體之更新之間的突然電力損失或其他錯誤而可能丟失的LBA表482之部分之重新創建。
區塊管理器件440內所描繪之物件中的一些指示由該區塊管理器件440提供之功能性。LBA表查找功能490可參考揮發性記憶體412中之LBA表482以執行邏輯至實體位址轉譯。LBA表查找功能490可在與邏輯位址相關聯之資訊被 更新時用對應於該邏輯位址的新實體位址來更新LBA表482。區塊表查找功能491可參考揮發性記憶體412中之區塊表484,(例如)以判定用於諸如回收及/或廢棄項目收集之耗損平均之候選者。回收可涉及在區塊被抹除之前將來自待抹除之該區塊之所有有效頁面移動至新位置。區塊回收功能493可參考揮發性記憶體412中之異動日誌486。
儲存於記憶體管理電路(例如,區塊管理器件440)之區域記憶體中的區塊陣列492可追蹤回收頁面候選者494、抹除區塊候選者495、回收寫入區塊候選者496,及/或主機寫入區塊候選者497(例如,如藉由LBA表查找功能490及/或區塊表查找功能491參考區塊陣列492)。可使用專用硬體針對系統中之每一LUN選擇此等候選者以在以揮發性記憶體速度讀取每一區塊或將每一區塊寫入至揮發性記憶體412(例如,DRAM)時分析每一區塊之健康及/或狀態資訊。每一LUN之當前候選者可儲存於區塊陣列492中。每當存取區塊表484時,管線結構可自區塊陣列492擷取當前最佳候選者且比較其與新區塊表484存取。若新區塊表484存取(例如,因寫入、抹除或錯誤事件所致)顯現比儲存於區塊陣列492中的當前候選者好的候選者,則該新區塊可替換區塊陣列492中之彼候選者。可在暫停(stall)對揮發性記憶體412之存取的情況下發生候選者選擇,此允許使用管線結構在揮發性記憶體412速度下進行程序。
區塊管理器件440可經組態以儲存揮發性記憶體412中之區塊表484中之複數個區塊中每一者的健康及狀態資訊。 區塊管理器件440可經組態以將候選區塊表(例如,包含回收頁面候選者494、抹除區塊候選者495、回收寫入區塊候選者496及/或主機寫入區塊候選者497之區塊陣列492)儲存於區域記憶體中。候選區塊表可基於針對特定操作(例如,主機寫入、回收讀取、回收寫入及/或抹除)之多個準則而識別用於該特定操作之候選區塊。區塊管理器件440可經組態以(例如)回應於針對區塊表484中之特定區塊之寫入、抹除或錯誤事件而更新該特定區塊的健康及狀態資訊。區塊管理器件440可經組態以根據該多個準則比較該特定區塊之經更新健康及狀態資訊與候選區塊。區塊管理器件440可經組態以至少部分回應於該比較指示特定區塊較好地滿足多個準則而(例如)在同一時脈循環(在其期間,在揮發性記憶體412中更新該特定區塊之健康及狀態資訊)上更新候選區塊表以識別該特定區塊。
可用不依賴因(例如)寫入、抹除或錯誤事件所致的新區塊表484存取之查表(table walking)程序補充上文所描述之候選選擇程序。查表程序可恢復未區域地儲存於區塊管理器件440中之區塊陣列492中的區塊資訊之歷程記錄。查表可由於寫入、抹除或錯誤事件而相對於區塊表484存取為較慢背景程序。一旦已查核整個區塊表484,則可停止查表程序(例如)以減少揮發性記憶體412功率消耗。在一些情況下,新區塊表484存取可重新起始查表程序。因此,區塊管理器件440可經組態以根據多個準則獨立於針對揮發性記憶體412中之區塊表484中之複數個區塊中任一者的寫 入、抹除或錯誤事件而比較該複數個區塊中每一者的經更新健康及狀態資訊與候選區塊。可在已比較複數個區塊中每一者之後停止區塊之比較。
在本發明之多個實施例中,在回收程序期間根據一致性點之使用不暫停主機操作以更新LBA表482。在回收程序期間,自第一位置讀取回收頁面候選者(例如,來自回收頁面候選者494)且將其寫入至第二位置。在此讀取及寫入期間,主機可已將新資訊寫入至當前正經處理以用於回收之LBA,且用新實體位址更新LBA表482。當回收已完成頁面讀取及寫入時,可僅在針對在回收期間的LBA之LBA表482條目具有與自第一位置讀取之資訊相同的實體位址時(例如,在主機尚未更新LBA表482中之條目時)用新實體位址來更新LBA表482。對應於回收讀取之頁面可被標記為在區塊表484中無效的(例如,儲存過時資訊)。若實體位址不同於對應於回收讀取之位址,則其指示主機已進行更新,且將不用每回收寫入之新實體位址來更新LBA表。可使區塊表484中之回收寫入無效以指示對應於回收寫入之實體位置儲存無效資訊。
記憶體管理電路(例如,區塊管理器件440)可經組態以在對特定區塊之回收操作期間自該特定區塊讀取資訊之前自區塊表484擷取對應於該特定區塊之邏輯位址之第一實體位址。區塊管理器件440可經組態以在回收操作期間在將資訊寫入至不同區塊之後自LBA表482擷取對應於邏輯位址之第二實體位址。區塊管理器件440可經組態以至少 部分回應於第二實體位址等於第一實體位址而用對應於不同區塊之第三實體位址來更新LBA表482。區塊管理器件440可經組態以至少部分回應於第二實體位址不同於第一實體位址而使回收操作無效。
區塊管理器件440可耦接於主機命令佇列498與記憶體命令佇列499之間。主機命令佇列498可與主機(諸如,圖1中所說明之主機102)、如圖2中所說明之SA至記憶體電路238及/或圖2中所說明之主機介面214之多個組件相關聯。記憶體命令佇列499可類似於圖2中所說明之CRQ 242、LRQ 244及LCQ 246中之一或多者,及/或其他組件。
記憶體管理電路(例如,區塊管理器件440)可經由開關(例如,圖2中所說明之開關220)而耦接至非揮發性記憶體控制電路(例如,圖2中所說明之非揮發性記憶體控制電路222)。記憶體管理電路可經組態以基於主機匯流排之資訊寬度及主機匯流排之協定而分配用於主機寫入之寫入區塊叢集。寫入區塊叢集可包含來自多個LUN 250之多個區塊。主機匯流排可為主機(例如,圖1中所說明之主機102)之部分。舉例而言,主機匯流排可為具有1倍、2倍、4倍、8倍、16倍、32倍等等之匯流排寬度以及PCIe第1至3代協定的PCIe匯流排。寫入區塊叢集可包含來自比耦接至非揮發性記憶體控制電路中之複數個通道控制電路之所有LUN少的LUN之一個區塊。在多個實施例中,記憶體管理電路可經組態以根據主機匯流排之資訊寬度及主機匯流排之協定而將寫入區塊叢集之大小限於用以支援最大主機匯 流排頻寬之LUN之最小數目。
記憶體系統控制器之寫入頻寬可隨著由主機匯流排支援之最大頻寬、系統中之記憶體通道之數目及每通道LUN之數目而變。分配比主機匯流排可支援的LUN多的LUN可浪費可原本用於回收操作之資源。因此,根據本發明之多個實施例,主機寫入區塊叢集大小可限於小於記憶體系統中之LUN之總數目的某大小。
可分配來自LUN之區塊之剩餘部分(例如,未分配給寫入區塊叢集之彼等區塊)用於回收操作。記憶體管理電路可經組態以暫時將多個經分配LUN自回收操作解除分配。可分配用於主機寫入之寫入區塊叢集以使得寫入區塊叢集之區塊經寫入於LUN之特定序列中。可藉由暫時中止可在不久的將來用於寫入之LUN之回收操作而限制回收頻寬以改良記憶體系統控制器之寫入頻寬。可至少部分回應於LUN之特定序列指示LUN係在用於主機寫入之LUN之特定序列中接下來的LUN之臨限數目內而將經分配LUN中之至少一者自回收操作解除分配。針對回收讀取操作、回收寫入操作及回收抹除操作中每一者之臨限數目可為不同的。臨限數目可表示為LUN之數目的「排除區」,在該「排除區」中在寫入操作之前可能不會發生回收操作。
使用每通道多個LUN可導致如下情形:發佈比特定通道可處置的命令多的命令,從而導致使該等命令相對於記憶體通道排成佇列,(例如)如關於圖2中之CRQ 242、LRQ 244及LCQ 246所描述。記憶體管理電路可經組態以至少部 分回應於與特定LUN相關聯之佇列之數目係在已填滿的臨限值內而限制經發佈用於對該特定LUN之回收操作之命令之數目。亦可將每通道命令之最大數目限於停留在所要功率包絡內。可至少部分回應於待由記憶體系統控制器使用所引起之功率量超過功率之臨限量而限制經發佈用於回收操作之命令之數目。亦可限制每通道命令之最大數目,(例如)以便幫助確保用於同一通道及/或LUN之背對背命令充分間隔開以用於有效操作。記憶體管理電路可經組態以堅持在用於回收操作之第一命令與第二命令之發佈之間的至少最小時間(例如,時脈之數目)。最小時間可基於(例如)LUN中之經抹除區塊之總數目,此係因為回收頻寬可隨著經抹除區塊之數目減小而增加。
若存在可用的經抹除區塊之適當供應,則可在短期內維持最大主機寫入頻寬。一旦差不多消耗了經抹除區塊之供應,寫入頻寬即可歸因於增加之回收操作而減小。記憶體管理電路可經組態以(例如)參考區塊表484而追蹤到達LUN之經抹除區塊之數目。記憶體管理電路可經組態以至少部分回應於特定LUN中之經抹除區塊之數目超過回收臨限數目(例如,降到低於臨限數目)而進行針對該特定LUN之回收操作。記憶體管理電路可經組態以至少部分回應於特定LUN中之經抹除區塊之數目超過回收臨限數目(例如,超出臨限數目)而暫時中止針對該特定LUN之回收操作。可至少部分回應於特定LUN中之經抹除區塊之數目降到低於主機寫入臨限數目而暫時中止針對該特定LUN之主機寫 入。記憶體管理電路可經組態以至少部分回應於特定LUN中之經抹除區塊之數目超過寫入臨限數目(例如,降到低於臨限數目)而暫時中止至該特定LUN之寫入。記憶體管理電路可經組態以至少部分回應於特定LUN中之經抹除區塊之數目超過回收臨限數目(例如,超出臨限數目)而再進行至該特定LUN之寫入。此等實施例可幫助在回收操作與寫入操作之間提供均衡(例如,動態負載平衡)。
一些記憶體操作具有長的持續時間。通道控制電路(例如,圖2中所說明之通道控制電路248)可包含輪詢邏輯,輪詢邏輯經組態以將狀態讀取發佈至LUN(例如)以判定何時完成特定記憶體操作。在一些情況下,此輪詢可干擾使用與正經輪詢之LUN相同的通道的其他命令。根據本發明之多個實施例,根據藉由發佈至LUN之命令所指示的操作類型而可使輪詢邏輯閒置達特定時間。可針對特定操作(諸如,讀取、寫入及/或抹除操作,以及其他操作)(例如)根據預期特定操作花費的時間來設定閒置時間。
結論
本發明包含各種裝置(包含記憶體系統控制器)之實例。一個此記憶體系統控制器可包含主機匯流排配接器(HBA),及經由功能特定互連耦接至HBA之順應串列附接(SA)程式化器件,功能特定互連經組態以在HBA與順應SA程式化器件之間同時傳送命令、回應及資訊。
應理解,當一元件被稱作「在」另一元件「上」、「連接至」或「耦接至」另一元件時,其可直接在另一元件上、 直接連接至或直接耦接至另一元件,或可存在介入元件。相比而言,當一元件被稱作「直接在」另一元件「上」、「直接連接至」或「直接耦接至」另一元件時,不存在介入元件或層。如本文所使用,術語「及/或」包含多個相關聯所列項目之任何及所有組合。
如本文所使用,術語「及/或」包含多個相關聯所列項目之任何及所有組合。如本文所使用,除非另有提及,否則術語「或」意謂邏輯包含或。亦即,「A或B」可包含(僅A)、(僅B)或(A與B兩者)。換言之,「A或B」可意謂「A及/或B」或「A及B中之一或多者」。
將理解,儘管術語第一、第二、第三等等可在本文用以描述各種元件,但此等元件不應受此等術語限制。此等術語係僅用以區分一元件與另一元件。因此,可在不脫離本發明之教示的情況下將第一元件稱為第二元件。
儘管本文已說明並描述了特定實施例,但一般熟習此項技術者將瞭解,可用經計算而達成相同結果之配置來替代所展示之特定實施例。本發明意欲涵蓋本發明之多個實施例之調適或變化。應理解,已以說明性方式而非以約束性方式來作出以上描述。當回顧以上描述時,以上實施例之組合及本文未特定描述之其他實施例對於熟習此項技術者而言將為顯而易見的。本發明之多個實施例之範疇包含使用上述結構及方法的其他應用。因此,應參考附加申請專利範圍連同此等申請專利範圍有權得到的等效物之全範圍來判定本發明之多個實施例之範疇。
在上述[實施方式]中,出於使本發明流暢之目的而將一些特徵一起集聚於單一實施例中。本發明之此方法不應被解釋為反映本發明之所揭示實施例必須使用比每一申請專利範圍中明確敍述之特徵多的特徵的意圖。實情為,如以下申請專利範圍反映,本發明之標的物在於比單一所揭示實施例之所有特徵少的特徵。因此,以下申請專利範圍在此併入至實施方式中,其中每一申請專利範圍依賴於其自身而作為一單獨實施例。
100‧‧‧計算系統
102‧‧‧主機
104‧‧‧記憶體系統
106‧‧‧實體主機介面
108‧‧‧固態記憶體系統控制器
110-1‧‧‧固態記憶體器件
110-N‧‧‧固態記憶體器件
204‧‧‧記憶體系統
206‧‧‧實體主機介面
208‧‧‧固態記憶體系統控制器
212‧‧‧揮發性記憶體
214‧‧‧主機介面(I/F)電路
216‧‧‧主機-記憶體轉譯電路
218‧‧‧記憶體管理電路
220‧‧‧開關
221‧‧‧緩衝器分配管理(BAM)電路
222‧‧‧非揮發性記憶體控制電路
223‧‧‧緩衝器標籤集區
224‧‧‧揮發性記憶體控制電路
225‧‧‧內部靜態隨機存取記憶體(SRAM)緩衝器(ISB)
226‧‧‧RAID互斥或(XOR)電路
227‧‧‧動態隨機存取記憶體(DRAM)緩衝器
228‧‧‧處理器
230‧‧‧周邊組件快速互連(PCIe)電路
232‧‧‧離散錯誤偵測/校正電路
234‧‧‧主機匯流排配接器(HBA)
236‧‧‧順應串列附接(SA)器件
238‧‧‧串列進階附接技術(SATA)至記憶體電路
240‧‧‧區塊管理電路
242‧‧‧通道請求佇列(CRQ)
244‧‧‧邏輯單元(LUN)請求佇列(LRQ)
246‧‧‧邏輯單元(LUN)命令佇列(LCQ)
248‧‧‧通道控制電路
250‧‧‧邏輯單元(LUN)
334‧‧‧主機匯流排配接器(HBA)
336‧‧‧順應串列附接(SA)程式化器件
352‧‧‧命令層
354‧‧‧輸送層
356‧‧‧命令收件器
358‧‧‧回應接收器
360‧‧‧下游直接記憶體存取(DMA)器件
362‧‧‧上游直接記憶體存取(DMA)器件
364‧‧‧匯流排介面(I/F)
366‧‧‧匯流排介面(I/F)
368‧‧‧控制介面
370‧‧‧控制暫存器
372‧‧‧主機匯流排配接器有限狀態機(HBA FSM)
374‧‧‧命令有限狀態機(FSM)
376‧‧‧器件-主機仲裁器(DH ARB)
378‧‧‧寫入有限狀態機(FSM)
380‧‧‧讀取有限狀態機(FSM)
412‧‧‧揮發性記憶體
440‧‧‧區塊管理器件
482‧‧‧邏輯區塊位址(LBA)表
484‧‧‧區塊表
486‧‧‧異動日誌
490‧‧‧邏輯區塊位址(LBA)表查找功能
491‧‧‧區塊表查找功能
492‧‧‧區塊陣列
493‧‧‧區塊回收功能
494‧‧‧回收頁面候選者
495‧‧‧抹除區塊候選者
496‧‧‧回收寫入區塊候選者
497‧‧‧主機寫入區塊候選者
498‧‧‧主機命令佇列
499‧‧‧記憶體命令佇列
圖1為根據本發明之多個實施例的包含至少一記憶體系統之計算系統的功能方塊圖。
圖2為根據本發明之多個實施例的記憶體系統的功能方塊圖。
圖3A為根據本發明之多個實施例的在主機匯流排配接器(HBA)與順應串列附接(SA)程式化器件之間的輸送層介面的功能方塊圖。
圖3B為根據本發明之多個實施例的HBA與順應SA程式化器件的功能方塊圖。
圖4說明根據本發明之多個實施例的區塊管理器件的功能方塊圖。
334‧‧‧主機匯流排配接器(HBA)
336‧‧‧順應串列附接(SA)程式化器件
352‧‧‧命令層
354‧‧‧輸送層

Claims (20)

  1. 一種裝置,其包括:一主機匯流排配接器(HBA);及一順應串列附接(SA)程式化器件,其經由一功能特定互連耦接至該HBA,該功能特定互連經組態以在該HBA與該順應SA程式化器件之間同時傳送一命令、一回應及其他資訊。
  2. 如請求項1之裝置,其中該功能特定互連包含:該HBA上之一命令輸出,其耦接至該順應SA程式化器件上之一命令輸入;該順應SA程式化器件上之一回應輸出,其耦接至該HBA上之一回應輸入;該HBA上之一寫入資訊輸出,其耦接至該順應SA程式化器件上之一寫入資訊輸入;及該順應SA程式化器件上之一讀取資訊輸出,其耦接至該HBA上之一讀取資訊輸入。
  3. 如請求項2之裝置,其中該等命令、回應、寫入資訊及讀取資訊輸入/輸出對係單向的且既不使用8b10b編碼亦不使用基元。
  4. 如請求項1之裝置,其中該功能特定互連經組態以回應於一第一命令協定而同時操作一命令介面、一回應介面及一資訊介面。
  5. 如請求項4之裝置,其中該功能特定互連經組態以回應於一第二命令協定而原子式地操作該命令介面、該回應 介面及該資訊介面。
  6. 如請求項1之裝置,其中該HBA包含:一命令收件器;一回應接收器;一下游直接記憶體存取(DMA)器件;及一上游DMA器件。
  7. 如請求項6之裝置,其中該順應SA程式化器件包含:一器件至主機(DH)仲裁器;耦接至該DH仲裁器之一命令有限狀態機(FSM);耦接至該DH仲裁器之一寫入FSM;及耦接至該DH仲裁器之一讀取FSM;其中該DH仲裁器經組態以基於來自該命令FSM、該寫入FSM及該讀取FSM之輸入而限定資訊遞送之一次序且將完成傳達至該HBA。
  8. 如請求項7之裝置,其中該寫入FSM包含一寫入緩衝器,該寫入緩衝器經組態以在該DH仲裁器限定寫入資訊遞送之該次序之前對寫入資訊進行緩衝暫存。
  9. 如請求項7之裝置,其中該讀取FSM包含一讀取緩衝器,該讀取緩衝器經組態以在該DH仲裁器限定讀取資訊遞送之該次序之前對讀取資訊進行緩衝暫存。
  10. 如請求項1至9中任一項之裝置,其中該順應SA程式化器件包括一順應串列進階附接技術(SATA)程式化器件。
  11. 如請求項1至9中任一項之裝置,其中該順應SA程式化器件包括一順應串列附接小電腦系統介面(SAS)程式化器 件。
  12. 一種方法,其包括:在一主機匯流排配接器(HBA)與一順應串列附接(SA)程式化器件之間傳送一命令;與該命令同時地在該HBA與該順應SA程式化器件之間傳送一回應;及與該命令同時地在該HBA與該順應SA程式化器件之間傳送其他資訊。
  13. 如請求項12之方法,其中該方法包含:經由一命令介面在該HBA與該順應SA程式化器件之間傳送該命令;經由一回應介面在該HBA與該順應SA程式化器件之間傳送該回應;及經由一資訊介面在該HBA與該順應SA程式化器件之間傳送該其他資訊。
  14. 如請求項13之方法,其中該方法包含回應於一第一命令協定而同時操作該命令介面、該回應介面及該資訊介面。
  15. 如請求項13之方法,其中該方法包含回應於一第二命令協定而原子式地操作該命令介面、該回應介面及該資訊介面。
  16. 如請求項12至15中任一項之方法,其中該方法包含基於來自一命令有限狀態機、一寫入有限狀態機及一讀取有限狀態機之輸入而限定資訊遞送之一次序且將完成傳達 至該HBA。
  17. 如請求項16之方法,其中該方法包含:在限定讀取資訊遞送之該次序之前對讀取資訊進行緩衝暫存;及在限定寫入資訊遞送之該次序之前對寫入資訊進行緩衝暫存。
  18. 一種裝置,其包括:一主機匯流排配接器(HBA),其包含:一命令輸出;一回應輸入;一寫入資訊輸出;及一讀取資訊輸入;及一順應串列附接(SA)程式化器件,其包含:耦接至該命令輸出之一命令輸入;耦接至該回應輸入之一回應輸出;耦接至該寫入資訊輸出之一寫入資訊輸入;及耦接至該讀取資訊輸入之一讀取資訊輸出。
  19. 如請求項18之裝置,其中該HBA包含複數個直接記憶體存取(DMA)器件,該複數個直接記憶體存取(DMA)器件經組態以提供同時的一命令之遞送、一回應之接收、寫入資訊之遞送及讀取資訊之接收。
  20. 如請求項18至19中任一項之裝置,其中該順應SA程式化器件包含複數個有限狀態機(FSM),該複數個有限狀態機(FSM)經組態以提供同時的一命令之接收、一回應之遞送、寫入資訊之接收及讀取資訊之遞送。
TW101119408A 2011-05-31 2012-05-30 包含記憶體系統控制器之裝置及相關方法 TWI463314B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/149,447 US8621113B2 (en) 2011-05-31 2011-05-31 Apparatus including host bus adapter and serial attachment programming compliant device and related methods

Publications (2)

Publication Number Publication Date
TW201303586A true TW201303586A (zh) 2013-01-16
TWI463314B TWI463314B (zh) 2014-12-01

Family

ID=47260205

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101119408A TWI463314B (zh) 2011-05-31 2012-05-30 包含記憶體系統控制器之裝置及相關方法

Country Status (7)

Country Link
US (2) US8621113B2 (zh)
EP (1) EP2715729B1 (zh)
JP (1) JP5918359B2 (zh)
KR (1) KR101532863B1 (zh)
CN (1) CN103635969B (zh)
TW (1) TWI463314B (zh)
WO (1) WO2012166548A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110858128A (zh) * 2018-08-23 2020-03-03 慧荣科技股份有限公司 数据存储装置及其共享控制器中存储器的方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201790B2 (en) * 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
US9405027B2 (en) 2012-01-12 2016-08-02 Westerngeco L.L.C. Attentuating noise acquired in an energy measurement
US20140032820A1 (en) * 2012-07-25 2014-01-30 Akinori Harasawa Data storage apparatus, memory control method and electronic device with data storage apparatus
US20150074293A1 (en) * 2013-09-10 2015-03-12 Kabushiki Kaisha Toshiba Information processing system, storage device and controlling method of storage device
US10073731B2 (en) * 2013-11-27 2018-09-11 Intel Corporation Error correction in memory
US9933980B2 (en) 2014-02-24 2018-04-03 Toshiba Memory Corporation NAND raid controller for connection between an SSD controller and multiple non-volatile storage units
KR102211709B1 (ko) 2014-05-19 2021-02-02 삼성전자주식회사 신호 송수신 특성을 향상한 불휘발성 메모리 시스템, 호스트 장치, 불휘발성 메모리 시스템 및 호스트의 동작방법
CN106257434B (zh) * 2015-06-16 2019-04-30 深圳市中兴微电子技术有限公司 一种基于增强型外设互连协议总线的数据传输方法及装置
WO2017113329A1 (zh) * 2015-12-31 2017-07-06 华为技术有限公司 一种主机集群中缓存管理方法及主机
US10140057B2 (en) * 2016-02-18 2018-11-27 Micron Technology, Inc. Apparatuses and methods for multiple address registers for a solid state device
KR102466239B1 (ko) * 2016-04-05 2022-11-14 에스케이하이닉스 주식회사 메모리 컨트롤러를 포함하는 메모리 시스템 및 그의 동작 방법
US10152237B2 (en) * 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
CN107479824B (zh) * 2016-06-08 2020-03-06 宜鼎国际股份有限公司 冗余磁盘阵列系统及其数据储存方法
US10318185B2 (en) * 2016-07-01 2019-06-11 Intel Corporation Method and apparatus to provide both storage mode and memory mode access to non-volatile memory within a solid state drive
US10613772B2 (en) * 2017-03-16 2020-04-07 Qualcomm Incorporated Methods and apparatuses for copying a data page in an unmanaged flash memory device
KR102385541B1 (ko) * 2017-09-29 2022-04-11 삼성전자주식회사 버스 시스템
US11200106B2 (en) * 2019-08-12 2021-12-14 Advanced Micro Devices, Inc. Data integrity for persistent memory systems and the like
US11563570B2 (en) 2020-05-19 2023-01-24 Western Digital Technologies, Inc. Storage system and method for command execution ordering by security key
CN114721978B (zh) * 2022-03-04 2023-08-25 成都储迅科技有限责任公司 一种加快Nand Flash控制命令执行速度的方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784390A (en) * 1995-06-19 1998-07-21 Seagate Technology, Inc. Fast AtA-compatible drive interface with error detection and/or error correction
JPH11242632A (ja) * 1998-02-26 1999-09-07 Hitachi Ltd メモリ装置
US8006001B2 (en) * 2004-09-22 2011-08-23 Lsi Corporation Method and apparatus for manipulating direct memory access transfers
CN103744790B (zh) * 2005-08-25 2017-05-10 美国莱迪思半导体公司 智能可缩放存储切换架构
US7809068B2 (en) * 2005-12-28 2010-10-05 Intel Corporation Integrated circuit capable of independently operating a plurality of communication channels
US8635376B2 (en) 2006-02-22 2014-01-21 Emulex Design & Manufacturing Corporation Computer system input/output management
US20070294459A1 (en) * 2006-06-16 2007-12-20 Acard Technology Corp. Apparatus for bridging a host to a SAN
US7502874B2 (en) 2006-11-21 2009-03-10 Lsi Corporation Methods and systems for integrating unique information in SAS interface components
US7627709B2 (en) 2006-12-12 2009-12-01 Spectra Logic Corporation Computer bus power consuming device
JP4445535B2 (ja) * 2007-09-19 2010-04-07 富士通株式会社 データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US20090119452A1 (en) * 2007-11-02 2009-05-07 Crossroads Systems, Inc. Method and system for a sharable storage device
US8225019B2 (en) * 2008-09-22 2012-07-17 Micron Technology, Inc. SATA mass storage device emulation on a PCIe interface
US7886105B2 (en) * 2008-12-04 2011-02-08 Lsi Corporation Combined fibre channel and SAS host bus adapter
US9176883B2 (en) * 2009-04-30 2015-11-03 HGST Netherlands B.V. Storage of data reference blocks and deltas in different storage devices
US20110040924A1 (en) 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US8266501B2 (en) * 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US8694723B2 (en) * 2011-04-28 2014-04-08 Lsi Corporation Method and system for coupling serial attached SCSI (SAS) devices and internet small computer system internet (iSCSI) devices through single host bus adapter

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110858128A (zh) * 2018-08-23 2020-03-03 慧荣科技股份有限公司 数据存储装置及其共享控制器中存储器的方法
CN110858128B (zh) * 2018-08-23 2023-04-18 慧荣科技股份有限公司 数据存储装置及其共享控制器中存储器的方法

Also Published As

Publication number Publication date
US20140189163A1 (en) 2014-07-03
TWI463314B (zh) 2014-12-01
CN103635969B (zh) 2017-02-15
EP2715729A4 (en) 2015-10-07
US20120311193A1 (en) 2012-12-06
US8621113B2 (en) 2013-12-31
CN103635969A (zh) 2014-03-12
EP2715729A2 (en) 2014-04-09
EP2715729B1 (en) 2017-02-08
JP5918359B2 (ja) 2016-05-18
JP2014517402A (ja) 2014-07-17
WO2012166548A3 (en) 2013-02-28
WO2012166548A2 (en) 2012-12-06
KR20140025541A (ko) 2014-03-04
KR101532863B1 (ko) 2015-06-30

Similar Documents

Publication Publication Date Title
TWI463314B (zh) 包含記憶體系統控制器之裝置及相關方法
TWI483178B (zh) 包含記憶體系統控制器之裝置及相關方法
TWI457758B (zh) 包含記憶體系統控制器之裝置及相關方法
TWI497291B (zh) 包含記憶體系統控制器之裝置及相關方法
TWI477965B (zh) 包含記憶體系統控制器之裝置及相關方法