TWI687806B - 資料儲存設備及其操作方法 - Google Patents

資料儲存設備及其操作方法 Download PDF

Info

Publication number
TWI687806B
TWI687806B TW105105032A TW105105032A TWI687806B TW I687806 B TWI687806 B TW I687806B TW 105105032 A TW105105032 A TW 105105032A TW 105105032 A TW105105032 A TW 105105032A TW I687806 B TWI687806 B TW I687806B
Authority
TW
Taiwan
Prior art keywords
logical address
data
cache area
read
size
Prior art date
Application number
TW105105032A
Other languages
English (en)
Other versions
TW201715401A (zh
Inventor
鄭錫訓
李知勳
Original Assignee
韓商愛思開海力士有限公司
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 韓商愛思開海力士有限公司 filed Critical 韓商愛思開海力士有限公司
Publication of TW201715401A publication Critical patent/TW201715401A/zh
Application granted granted Critical
Publication of TWI687806B publication Critical patent/TWI687806B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種用於操作資料儲存設備的方法,包括:將暫存器劃分為多個快取區域;將多個邏輯位址分組為多個邏輯位址組;將索引配置至相應的邏輯位址組;以及將讀取請求的第一邏輯位址集、與第一邏輯位址集對應的資料被快取處的第一快取區域以及第一快取區域的空尺寸匹配至與第一邏輯位址集屬於的邏輯位址組對應的索引。

Description

資料儲存設備及其操作方法
本申請主張的優先權為在2015年10月29日向韓國智慧財產局提出申請的申請案,其韓國專利申請案號為10-2015-0150659,在此併入其全部參考內容。
本發明的各個實施例總體上關於一種資料儲存設備,更具體地說,關於一種能夠快取讀取請求資料的資料儲存設備及其操作方法。
近來,用於電腦環境的範例已經改變成普適計算,以便可以隨時隨地使用電腦系統。因此,諸如行動電話、數位相機以及筆記型電腦的可攜式電子設備的使用正快速地增加。通常,可攜式電子設備使用資料儲存設備,資料儲存設備採用用於儲存資料的半導體記憶體裝置。資料儲存設備可以用作用於可攜式電子設備的主記憶體裝置或輔助記憶體裝置。
使用半導體記憶體裝置的資料儲存設備沒有機械驅動部件,並且通常表現出優異的穩定性、耐久性、高資訊存取速度以及低電耗。具有這樣優點的資料儲存設備的示例包括通用序列匯流排(USB)記憶體裝置、具有各種介面的記憶卡以及固態驅動器(SSD)。
因為可攜式電子設備常常處理諸如音樂檔或視頻檔等大型檔案,所以在可攜式電子設備中使用的資料儲存設備需要具有大的儲存容量。因此,資 料儲存設備通常用作對記憶胞來講具有高的集成度以提供大的儲存容量的儲存介質、半導體記憶體裝置。例如,作為非揮發性記憶體裝置的快閃記憶體裝置具有高的集成度並且廣泛用在可攜式電子設備中。
本發明的各種實施例關於一種能夠有效地快取讀取請求資料的資料儲存設備及其操作方法。
根據實施例,用於操作資料儲存設備的方法可以包括:將暫存器劃分為多個快取區域;將多個邏輯位址分組為多個邏輯位址組;將索引配置至相應的邏輯位址組;以及將讀取請求的第一邏輯位址集、與第一邏輯位址集對應的資料被快取處的第一快取區域以及第一快取區域的空尺寸(empty size)匹配至與第一邏輯位址集屬於的邏輯位址組對應的索引。
根據實施例,資料儲存設備可以包括:非揮發性記憶體裝置;控制單元,被配置為根據從主機設備接收到的請求來控制非揮發性記憶體裝置;以及暫存器,被配置為快取從非揮發性記憶體裝置讀出的資料,其中,控制單元將暫存器劃分為多個快取區域,將預定單位的多個邏輯位址分組為多個邏輯位址組,將索引配置至相應的邏輯位址組,以及當與讀取請求的第一邏輯位址集對應的資料被快取在快取區域中的任一者時,將第一邏輯位址集的開始邏輯位址、與第一邏輯位址集對應的資料被快取處的第一快取區域以及第一快取區域的空尺寸匹配至與第一邏輯位址集屬於的邏輯位址組對應的索引。
根據實施例,由於能夠有效地快取讀取請求的資料,因此可以提高快取資料的命中率,以及可以提高資料儲存設備的操作速度。
100‧‧‧資料儲存設備
200‧‧‧控制器
210‧‧‧控制單元
220‧‧‧主機介面單元
230‧‧‧隨機存取記憶體
300‧‧‧非揮發性記憶體裝置
310‧‧‧記憶胞陣列
320‧‧‧行解碼器
330‧‧‧列解碼器
340‧‧‧資料讀取/寫入區塊
350‧‧‧電壓發生器
360‧‧‧控制邏輯
1100‧‧‧主機設備
1200‧‧‧資料儲存設備
1210‧‧‧控制器
1211‧‧‧主機介面單元
1212‧‧‧控制單元
1213‧‧‧記憶體介面單元
1214‧‧‧隨機存取記憶體
1215‧‧‧錯誤校正碼(ECC)單元
1220‧‧‧非揮發性記憶體裝置
2000‧‧‧資料處理系統
2100‧‧‧主機設備
2200‧‧‧固態驅動器(SSD)
2210‧‧‧SSD控制器
2211‧‧‧記憶體介面單元
2212‧‧‧主機介面單元
2213‧‧‧錯誤校正碼(ECC)單元
2214‧‧‧控制單元
2215‧‧‧隨機存取記憶體
2220‧‧‧緩衝記憶體裝置
2231~223n‧‧‧非揮發性記憶體裝置
2240‧‧‧電源
2241‧‧‧輔助電源
2250‧‧‧訊號連接器
2260‧‧‧電力連接器
3000‧‧‧電腦系統
3100‧‧‧網路介面卡
3200‧‧‧中央處理器
3300‧‧‧資料儲存設備
3400‧‧‧隨機存取記憶體(RAM)
3500‧‧‧唯讀記憶體(ROM)
3600‧‧‧使用者介面
3700‧‧‧系統匯流排
A1~Az‧‧‧(編號為1~z的)讀取快取區域
BL1至BLn‧‧‧位元線
CH1~CHn‧‧‧通道
CMDQ‧‧‧命令佇列
DB‧‧‧資料緩衝器
ES‧‧‧空尺寸
FW‧‧‧韌體
LBA(s)‧‧‧邏輯區塊位址
LG1~LGm‧‧‧邏輯位址組
NVM_1~NVM_k‧‧‧非揮發性記憶體晶片
PWR‧‧‧電力
Q1~Qm‧‧‧(編號為1~m的)佇列
RC‧‧‧讀取暫存器
RCA‧‧‧讀取快取區域
RCT‧‧‧讀取快取表
RR‧‧‧讀取請求
S_LBA(s)‧‧‧開始邏輯位址
S100、S110、…、S190‧‧‧步驟
S181~S189‧‧‧步驟
SGL‧‧‧訊號
WL1~WLm‧‧‧字元線
WR‧‧‧寫入請求
〔圖1〕是示出根據本發明的實施例的資料儲存設備的方塊圖。
〔圖2〕示出根據本發明的實施例的讀取暫存器的結構。
〔圖3〕是示出根據本發明的實施例的讀取快取表的示例的示圖。
〔圖4〕是示出根據本發明的實施例的用於處理讀取暫存器的操作的流程圖。
〔圖5〕是示出根據本發明的實施例的快取讀取資料以及更新讀取快取表的操作的流程圖。
〔圖6〕是示出根據本發明的另一實施例的讀取快取表的示例的示圖。
〔圖7至圖11〕示出了根據本發明的實施例的用於操作讀取暫存器的示例。
〔圖12〕是示出根據本發明的實施例的包括資料儲存設備的資料處理系統的方塊圖。
〔圖13〕是示出根據本發明的實施例的包括固態驅動器(SSD)的資料處理系統的方塊圖。
〔圖14〕是示出根據本發明的實施例的固態驅動器(SSD)控制器的方塊圖。
〔圖15〕是示出根據本發明的實施例的包括資料儲存設備的電腦系統的方塊圖。
〔圖16〕是示出根據本發明的實施例的包括在資料儲存設備內的非揮發性記憶體裝置的方塊圖。
在本發明中,在閱讀結合附圖所描述的以下實施例後,優點、特徵以及用於實現它們的方法可以變得更加明顯。然而,本發明可以以不同的形式來實施,且不應被解釋為限於本文所闡述的實施例。更確切地說,提供這些實施 例以將本發明詳細地描述至本發明所屬領域的通常知識者可以據以實現本發明的程度。
要理解的是,在本文中,本發明的實施例不限於在附圖中示出的細節並且附圖未必是按比例的,並且在有些情況下,比例可能已經被誇大以便更加清楚地描述本發明的某些特徵。雖然在本文中使用特定術語,但要理解的是,在本文中所使用的術語僅出於描述特定實施例的目的,而並不意圖限制本發明的範圍。
如本文中所使用的,術語“和/或”包括一個或更多個相關所列項目的任意組合和所有組合。可以理解的是,當元件被稱為“在”另一元件“上”、“連接到”或“耦接到”另一元件時,它可以直接在所述另一元件上、直接連接到或耦接到所述另一元件,或者可以存在中間元件。如本文中所使用的,除非上下文另外清楚地指出,否則單數形式也意圖包括複數形式。還可以理解的是,當在本說明書中使用時,術語“包括”及其變型和/或“包含”及其變型具體說明存在至少一個所述特徵、步驟、操作和/或元件,但是不排除存在或添加一個或更多個其他特徵、步驟、操作和/或元件。
在下文中,參考附圖透過實施例的各種示例來描述資料儲存設備及其操作方法。
圖1是示出根據本發明的實施例的資料儲存設備100的方塊圖。
參考圖1,資料儲存設備100可以儲存要被諸如行動電話、MP3播放機、筆記型電腦、桌上型電腦、遊戲播放機、TV、車載資訊娛樂系統等的主機設備(圖未示)存取的資料。資料儲存設備100也可以稱為記憶體系統。
根據可以與主機設備電耦接的介面的協定,資料儲存設備100可 以被製造為各種儲存設備中的任何一種。例如,資料儲存設備100可以配置為諸如固態驅動器(SSD)、成MMC、eMMC、RS-MMC和微型MMC形式的多媒體卡、成SD、迷你SD和微型SD形式的安全數位卡、通用序列匯流排(USB)儲存設備、通用快閃儲存(UFS)設備、國際個人電腦記憶卡協會(PCMCIA)卡類型儲存設備、週邊部件互聯(PCI)卡類型儲存設備、PCI高速(PCI-E)卡類型儲存設備、緊湊型快閃記憶體(CF)卡、智慧媒體卡、記憶棒等的各種儲存設備中的任何一種。
資料儲存設備100可以被製造為各種封裝類型中的任何一種。例如,資料儲存設備100可以被製造為諸如疊層封裝(POP)、單晶片封裝(SIP)、系統單晶片(SOC)、多晶片封裝(MCP)、晶片直接封裝(COB)、晶片級製造封裝(WFP)、晶片級堆疊封裝(WSP)等的各種封裝類型中的任何一種。
資料儲存設備100可以包括非揮發性記憶體裝置300。非揮發性記憶體裝置300可以作為資料儲存設備100的儲存介質來操作。非揮發性記憶體裝置300可以由諸如NAND快閃記憶體裝置、NOR快閃記憶體裝置、使用鐵電式電容的鐵電式隨機存取記憶體(FRAM)、使用穿隧磁阻(TMR)層的磁性隨機存取記憶體(MRAM)、使用硫屬化物合金的相變式隨機存取記憶體(PRAM)、電阻式隨機存取記憶體(ReRAM)等的各種類型的非揮發性記憶體裝置中的任何一種來配置。
資料儲存設備100可以包括控制器200。控制器200可以包括控制單元210、主機介面(I/F)單元220以及隨機存取記憶體230。
控制單元210可以控制控制器200的總體操作。控制單元210可以分析並處理從主機設備輸入的訊號、命令或請求。例如,當從主機設備接收 到讀取請求時,控制單元210可以基於讀取請求的邏輯位址從非揮發性記憶體裝置300讀取資料。對於另一示例,當從主機設備接收到寫入請求時,控制單元210可以基於寫入請求的邏輯位址將寫入資料儲存在非揮發性記憶體裝置300中。為此,控制單元210可以解碼並驅動載入在隨機存取記憶體230上的韌體(FW,firmware)(或軟體)。控制單元210可以以硬體和/或軟體的形式實施。在實施例中,控制單元210可以以硬體和軟體的組合形式實施。
主機介面單元220可以根據主機設備的協定使主機設備和資料儲存設備100介面。例如,主機介面單元220可以透過包括例如通用序列匯流排(USB)、通用快閃儲存器(UFS)、多媒體卡(MMC)、平行先進技術附件(PATA)、串列先進技術附件(SATA)、小型電腦系統介面(SCSI)、串列SCSI(SAS)、週邊組件互連(PCI)、快速週邊組件互連(PCI-E)協定等的任何合適的通訊協定與主機設備通訊。
主機介面單元220可以包括命令佇列CMDQ。具有m的佇列深度的命令佇列CMDQ可以包括m數目的佇列Q1至Qm。從主機設備接收到的請求(或命令)可以分別儲存在m數目的佇列Q1至Qm中。排列在命令佇列CMDQ中的請求可以由控制單元210順序地或者隨機地處理。
隨機存取記憶體230可以儲存要由控制單元210驅動的韌體(FW)。此外,隨機存取記憶體230可以儲存驅動韌體(FW)所需的管理資料。隨機存取記憶體230可以作為控制單元210的工作記憶體來操作。例如,儲存在其中的管理資料可以包括用於將來自主機設備的存取請求的邏輯區塊位址(LBA)轉換或映射為非揮發性記憶體裝置300的實體區塊位址(PBA)的位址映射資訊。
隨機存取記憶體230可以暫時儲存要從主機設備發送至非揮發性記憶體裝置300或者要從非揮發性記憶體裝置300發送至主機設備的資料。換句話說,隨機存取記憶體230可以作為資料緩衝器(DB)來操作。
隨機存取記憶體230可以快取在發送到主機設備的資料之中的最近發送或頻繁發送的資料。即,隨機存取記憶體230可以作為讀取暫存器RC來工作,讀取暫存器RC將從非揮發性記憶體裝置300讀取的資料快取以快速回應來自主機設備的讀取請求。
為了提高讀取暫存器RC的命中率,控制單元210可以將讀取暫存器RC劃分為若干讀取快取區域。控制單元210可以透過將每個讀取快取區域匹配至預定單位的邏輯位址來管理讀取快取表。控制單元210可以透過參考這種讀取快取表來管理讀取暫存器RC。
例如,控制單元210可以將讀取暫存器RC劃分為多個讀取快取區域。控制單元210還可以將邏輯位址一起佈置(例如分組)為邏輯位址組。例如,控制單元210可以將邏輯位址分組為從開始邏輯位址開始直至每個讀取快取區域的尺寸的邏輯位址組,其中,開始邏輯位址透過預定單位增大。
控制單元210還可以將索引配置至相應的邏輯位址組,以及透過將讀取請求的邏輯位址、與邏輯位址對應的資料被快取處的讀取快取區域以及讀取快取區域的空尺寸匹配至與邏輯位址所屬的邏輯位址組對應的索引來管理讀取快取表。
圖2示出了根據本發明的實施例的讀取暫存器(RC)的結構的示例。例如,圖2的讀取暫存器可以是圖1中的隨機存取記憶體230的讀取暫存器(RC)。
參考圖2,讀取暫存器RC可以被劃分成諸如A1至Az的各個讀取快取區域RCA。
在實施例中,每個讀取快取區域RCA的尺寸n可以對應於映射至每個邏輯位址的實體位址的尺寸,即,與每個實體位址對應的記憶體區域的尺寸。
在另一實施例中,每個讀取快取區域RCA的尺寸n可以對應於透過每個讀取操作從非揮發性記憶體裝置300讀出的資料量。因此,讀取快取區域RCA可以設定為透過每個讀取操作從非揮發性記憶體裝置300讀出的資料的尺寸。
在又一個實施例中,每個讀取快取區域RCA的尺寸n可以透過磁區(sector)的數目來確定。例如,每個讀取快取區域RCA的尺寸n可以透過磁區的數目表示,而不是透過由二進位表示的記憶體容量(即,位元或位元組)來表示。磁區可以具有512位元組的尺寸作為與每個邏輯位址對應的資料單位。例如,當n是“2”時,每個讀取快取區域RCA的尺寸可以表示與2個磁區對應的1KB(512位元組*2)。
圖3是示出根據本發明的實施例的讀取快取表RCT的示圖。例如,圖3的讀取快取表可以包括在圖1的資料儲存設備的隨機存取記憶體230內。在資料儲存設備100啟動後剛開始與在從主機設備接收到讀取請求時結束的時間段期間,沒有資料(也稱為資訊)可以包括在讀取快取表RCT中。讀取快取表RCT可以根據來自主機設備的讀取請求即時更新,從而至少圖3中示出的資訊可以包括在其中。
讀取快取表RCT可以包括諸如索引、讀取快取區域(RCA)、空 白空間(ES)以及邏輯區塊位址(LBA)的各種資訊。索引可以分配給相應的邏輯區塊位址組。讀取快取區域RCA可以被匹配至所匹配的讀取快取區域RCA的空尺寸(或空白空間)ES和索引。因為資料可以透過參考分配給相應的邏輯位址組的讀取快取區域RCA的空尺寸而被快取,從而在讀取快取區域RCA中不出現空白空間,所以在讀取暫存器RC中可以快取最大的資料量。
讀取快取表RCT可以分類為諸如從1至m的各種索引。索引的數目可以對應於圖1中示出的命令佇列CMDQ的佇列深度m。索引可以由包括在命令佇列CMDQ中的佇列的數目m生成。
包括開始邏輯位址和從每個開始邏輯位址開始直至讀取快取區域RCA的尺寸(即,磁區的數目)n的透過預定單位(或預定間隔)增大的後續位址的邏輯位址可以分組為邏輯位址組LG。在一些實施例中,預定單位可以被確定為值m*n,其中,m表示佇列深度,n表示每個讀取快取區域RCA的尺寸。邏輯位址組LG1至LGm可以分別對應於索引1至m。
例如,自開始邏輯位址0的n個邏輯位址、自開始邏輯位址mn的n個邏輯位址、自開始邏輯位址2mn的n個邏輯位址、自開始邏輯位址3mn的n個邏輯位址以及以這種方式計算的其餘邏輯位址可以分組為與索引1對應的邏輯位址組LG1。
在屬於邏輯位址組的邏輯位址之中,僅僅讀取請求的邏輯位址可以匹配至對應索引。也就是說,如果與讀取請求的邏輯位址對應的資料快取在讀取暫存器RC中,則讀取請求的邏輯位址可以匹配至對應索引。
如果與讀取請求的邏輯位址對應的資料快取在讀取暫存器RC中,則資料被快取在其處的讀取快取區域RCA的資訊可以匹配至索引。此外, 關於透過從每個讀取快取區域RCA的尺寸n減去快取資料的尺寸cs所獲得的尺寸的資訊,即,匹配讀取快取區域RCA的空尺寸ES可以匹配至索引。由於每個讀取快取區域RCA的尺寸n可以以磁區的數目表示,因此匹配讀取快取區域RCA的空尺寸ES也可以以磁區的數目表示。
在假設來自主機設備的例如讀取請求或寫入請求的請求以開始邏輯位址以及磁區或邏輯位址的數目的形式提供的情況下,可以進行以下描述。開始邏輯位址以及磁區或邏輯位址的數目可以定義為邏輯位址集。換句話說,邏輯位址集定義為從開始邏輯位址到磁區或邏輯位址的數目的邏輯位址。
圖4是示出根據本發明的實施例的用於處理讀取暫存器RC的操作的流程圖。在描述圖4時,假設資料快取在讀取暫存器RC中以及讀取快取表RCT根據先前讀取請求更新。例如,圖4的操作可以透過圖1的控制器210執行。
在步驟S100處,可以對當前從圖1的主機設備(圖未示)接收到的請求是讀取請求RR還是寫入請求WR進行判斷。
在當前從主機設備接收到的請求是寫入請求WR(S100,WR)的情況下,因為透過寫入請求WR提供的新資料應該作為有效資料處理,而快取在讀取暫存器RC中舊資料應該作為無效資料處理,所以處理可以進行到步驟S110和步驟S120。
在步驟S110處,確定寫入請求的邏輯位址集是否存在於讀取快取表RCT中。
在寫入請求的邏輯位址集未存在於讀取快取表RCT(S110,否)中的情況下,由於這表示沒有資料被快取,因此處理可以在沒有對讀取快取表 RCT進行更新的情況下結束。
在寫入請求的邏輯位址集存在於讀取快取表RCT(S110,是)中的情況下,由於這表示資料被快取,因此可以執行步驟S120以處理作為無效資料的快取在讀取暫存器RC中的資料。在步驟S120處,可以從讀取快取表RCT移除寫入請求的邏輯位址集。可以移除匹配至索引的邏輯位址,從而與當前寫入請求的邏輯位址集對應的資料在隨後的讀取請求時不從讀取暫存器RC提供(service)。
在當前從主機設備接收到的請求是讀取請求RR(S100,RR)的情況下,可以對與讀取請求的邏輯位址集對應的資料(也稱為讀取請求資料)是否快取在讀取暫存器RC中進行判定。用於維護讀取請求資料的方法可以基於判定結果而改變。
在步驟S130處,為了判定讀取請求資料是否是順序資料,判定讀取請求資料的尺寸是否小於或等於順序資料參考值。讀取請求資料的尺寸可以基於讀取請求的邏輯位址集,即,開始邏輯位址和讀取請求的磁區的數目來計算。順序資料參考值可以是用於確定作為順序資料的超過參考值的資料尺寸和作為亂數資料的小於或等於參考值的資料尺寸的參考值。參考值可以變化。
在讀取請求資料的尺寸大於順序資料參考值(S130,否)的情況下,因為讀取暫存器RC的容量的限制,讀取請求資料可以確定為是未由先前讀取請求快取的資料和未要由當前讀取請求快取的資料。因此,處理可以進行到步驟S140。在步驟S140處,讀取請求資料可以從圖1的非揮發性記憶體裝置300提供。即,當前讀取請求的資料未被快取。
在讀取請求資料的尺寸小於或等於順序資料參考值(S130,是) 的情況下,讀取請求資料可以確定為透過先前讀取請求快取的資料和待被快取在讀取暫存器RC中以快速回應隨後的讀取請求的資料。因此,處理可以進行到步驟S150。在步驟S150處,確定讀取請求邏輯位址集是否存在於讀取快取表RCT中。
在讀取請求邏輯位址集存在於讀取快取表RCT(S150,是)的情況下,由於這表示資料被快取,因此處理可以進行到步驟S160。在步驟S160處,讀取請求資料可以從讀取暫存器RC提供。也就是說,未執行讀取圖1的非揮發性記憶體裝置300以提供讀取請求資料的操作。
在讀取請求邏輯位址集不存在於讀取快取表RCT(S150,否)中的情況下,由於這表示沒有資料被快取,因此在步驟S170、S180以及S190處,讀取請求資料可以透過從非揮發性記憶體裝置300讀出而提供,以及可以被快取以為隨後的讀取請求作準備。
在步驟S170處,可以從非揮發性記憶體裝置300讀出讀取請求資料。在步驟S180處,可以透過參考讀取快取表RCT將讀出資料快取在讀取暫存器RC中,以及可以更新讀取快取表RCT。在步驟S190處,可以從讀取暫存器RC提供讀取請求資料。
圖5是示出根據本發明的實施例的快取讀取資料以及更新讀取快取表的操作的流程圖。例如,圖5的流程圖可以是圖4的步驟S180的詳細示例。圖5的操作可以透過圖1的控制器210執行。為了簡化起見,示出了流程圖,其中首先執行讀取快取表RCT的更新操作(或管理操作),接下來執行快取讀取請求資料的操作。讀取請求資料可以是根據讀取快取表RCT從非揮發性記憶體裝置300讀取的資料。要注意的是,讀取快取表RCT的更新操作和資料快 取操作的順序可以改變。
在步驟S181處,確定讀取快取區域RCA是否已經匹配至與讀取請求的邏輯位址集所屬的邏輯位址組對應的索引。
在讀取快取區域RCA沒有匹配至索引(S181,否)的情況下,可以根據讀出資料的尺寸將空(未匹配的)讀取快取區域RCA重新匹配至索引。
在步驟S182處,確定從非揮發性記憶體裝置300讀出的資料的尺寸是否小於或等於每個讀取快取區域RCA的尺寸。
在讀出資料的尺寸小於或等於每個讀取快取區域RCA的尺寸(S182,是)的情況下,可以將讀出資料快取在一個讀取快取區域RCA中。在步驟S183處,可以將讀取快取區域RCA、讀取請求的邏輯位址集的開始邏輯位址LBA以及基於快取(或要快取)的資料計算出的讀取快取區域RCA的空尺寸ES匹配至索引。
在讀出資料的尺寸大於每個讀取快取區域RCA的尺寸(S182,否)的情況下,讀出資料可以不快取在一個讀取快取區域RCA中。因此,可以將讀出資料快取在若干讀取快取區域RCA中。在步驟S184處,可以將讀取快取區域RCA、讀取請求的邏輯位址集的開始邏輯位址LBA以及基於快取(或要快取)的資料計算出的讀取快取區域RCA的空尺寸ES匹配至多個索引中的每個索引。在這種情況下,可以移除因先前快取的資料而匹配至每個索引的資訊,例如,讀取快取區域RCA、讀取請求的開始邏輯位址LBA以及匹配的讀取快取區域RCA的空尺寸ES。
在讀取快取區域RCA已經匹配至索引(S181,是)的情況下,可以根據讀取快取區域RCA的空尺寸ES,將讀取請求資料快取在已經匹配的 讀取快取區域RCA的空白空間中或者在新匹配的讀取快取區域RCA中。
在步驟S185處,確定從非揮發性記憶體裝置300讀出的資料的尺寸是否小於或等於匹配的讀取快取區域RCA的空尺寸ES。
在讀出資料的尺寸小於或等於匹配的讀取快取區域RCA的空尺寸ES(S185,是)的情況下,可以將讀出資料快取在匹配的讀取快取區域RCA的空白空間中。在步驟S186處,可以將讀取請求的邏輯位址集的開始邏輯位址LBA另外匹配至索引。換句話說,可以將當前讀取請求的邏輯位址集的開始邏輯位址LBA同與已經快取在讀取快取區域RCA中的資料對應的開始邏輯位址LBA一起匹配至索引。
在讀出資料的尺寸大於匹配的讀取快取區域RCA的空尺寸ES(S185,否)的情況下,讀出資料可以不快取在匹配的讀取快取區域RCA的空白空間中。因此,可以將讀出資料快取在空的讀取快取區域RCA中。在步驟S187處,可以移除已經匹配至索引的讀取快取區域RCA、開始邏輯位址LBA以及讀取快取區域RCA的空尺寸ES。在步驟S188處,可以將讀取快取區域RCA、讀取請求的邏輯位址集的開始邏輯位址LBA以及基於快取(或要快取)的資料計算出的讀取快取區域RCA的空尺寸ES重新匹配至索引。
在讀取快取區域RCA、讀取請求的邏輯位址集的開始邏輯位址LBA以及基於快取(或要快取)的資料計算出的讀取快取區域RCA的空尺寸ES匹配至索引後,可以如在步驟S189中,根據讀取快取表RCT快取讀出資料。
圖6是示出根據本發明的實施例的讀取快取表的示例的示圖。可以透過圖1的控制器210執行圖6的示例。圖6中的讀取快取表RCT可以示出可包括在讀取快取表RCT中的資訊。在這種情況下,假設命令佇列CMDQ的 佇列深度m是32並且每個讀取快取區域RCA的尺寸n是8。
參考圖6,索引可以利用為32的命令佇列CMDQ的佇列深度m來生成。此外,從開始邏輯位址開始直至8(作為每個讀取快取區域RCA的尺寸)個邏輯位址的邏輯位址可以分組為每個邏輯位址組LG,開始邏輯位址以256(=32(m)*8(n))為單位增大。此外,可以將讀取快取區域RCA的空尺寸ES計算為透過從作為每個讀取快取區域RCA的尺寸的8減去快取資料尺寸cs所獲得的尺寸。
例如,自第一開始邏輯位址0的8個邏輯位址0至7、自第二開始邏輯位址256的8個邏輯位址256至263、自第三開始邏輯位址512的8個邏輯位址512至519以及以這種方式計算的其餘邏輯位址可以分組為與索引1對應的邏輯位址組LG1。第二開始邏輯位址256可以自第一開始邏輯位址0增加256,第三開始邏輯位址512可以自第二開始邏輯位址256增加256,以及第四開始邏輯位址768可以自第三開始邏輯位址512增加256。
自第一開始邏輯位址8的8個邏輯位址8至15、自第二開始邏輯位址264的8個邏輯位址264至271、自第三開始邏輯位址520的8個邏輯位址520至527以及以這種方式計算的其餘邏輯位址可以分組為與索引2對應的邏輯位址組LG2。第二開始邏輯位址264可以自第一開始邏輯位址8增加256,第三開始邏輯位址520可以自第二開始邏輯位址264增加256,以及第四開始邏輯位址776可以自第三開始邏輯位址520增加256。
自第一開始邏輯位址16的8個邏輯位址16至23、自第二開始邏輯位址272的8個邏輯位址272至279、自第三開始邏輯位址528的8個邏輯位址528至535以及以這種方式計算的其餘邏輯位址可以分組為與索引3對應 的邏輯位址組LG3。第二開始邏輯位址272可以自第一開始邏輯位址16增加256,第三開始邏輯位址528可以自第二開始邏輯位址272增加256,以及第四開始邏輯位址784可以自第三開始邏輯位址528增加256。
自第一開始邏輯位址248的8個邏輯位址248至255、自第二開始邏輯位址504的8個邏輯位址504至511、自第三開始邏輯位址760的8個邏輯位址760至767以及以這種方式計算的其餘邏輯位址可以分組為與索引m對應的邏輯位址組LGm。第二開始邏輯位址504可以自第一開始邏輯位址248增加256,第三開始邏輯位址760可以自第二開始邏輯位址504增加256,以及第四開始邏輯位址1016可以自第三開始邏輯位址760增加256。
圖7至圖11示出了根據本發明的實施例的用於操作讀取暫存器的示例。可以透過圖1的控制器210執行圖7至圖11的操作。例如,在描述圖7至圖11中,可以參考圖6中所示的讀取快取表RCT。
參考圖7,可以描述在讀出資料的尺寸大於每個讀取快取區域RCA的尺寸的情況下的讀取快取表RCT的更新處理和資料快取處理。
在接收讀取請求前,讀取快取表RCT和讀取暫存器RC的狀態可以是如下狀態。
索引1可以處於沒有資料與其匹配的狀態。
索引2可以處於讀取快取區域(RCA)A1、開始邏輯位址(S_LBA)776以及讀取快取區域A1的空尺寸(ES)3與其匹配的狀態。索引2可以表示與從開始邏輯位址776到邏輯位址780的5(=8-3)個邏輯位址對應的讀取資料(2.5KB=528位元組*5磁區)被快取在讀取快取區域A1中的狀態。
索引3可以處於讀取快取區域A8、開始邏輯位址528以及讀取 快取區域A8的空尺寸1與其匹配的狀態。索引3可以表示與從開始邏輯位址528到邏輯位址534的7(=8-1)個邏輯位址對應的讀取資料(3.5KB=528位元組*7磁區)被快取在讀取快取區域A8中的狀態。
如果接收到用於自開始邏輯位址0的20個邏輯位址的集的讀取請求R(0,20),則由於讀出資料的尺寸(10KB=528位元組*20)大於每個讀取快取區域RCA的尺寸(4KB),因此可以更新讀取快取表RCT以及可以來快取讀出資料,如下。
由於開始邏輯位址0是屬於與如圖6所示的索引1對應的邏輯位址組LG1的邏輯位址,因此可以匹配至索引1。在空讀取快取區域A2、A3以及A7之中,可以將讀取快取區域A2匹配至索引1。由於資料被快取為使得匹配的讀取快取區域A2完全被快取,因此可以將讀取快取區域A2的空尺寸0匹配至索引1。
以與索引1同樣的方式,可以將空讀取快取區域A3、開始邏輯位址8以及讀取快取區域A3的空尺寸0重新匹配至如圖6所示的索引2。在這種情況下,可以移除已經匹配至索引2的讀取快取區域A1、開始邏輯位址776以及讀取快取區域A1的空尺寸3。匹配被移除的讀取快取區域A1可以轉變成空(或未匹配)讀取快取區域。
以與索引1同樣的方式,可以將空讀取快取區域A7、開始邏輯位址16以及讀取快取區域A7的空尺寸4重新匹配至如圖6所示的索引3。在這種情況下,可以移除已經匹配至索引3的讀取快取區域A8、開始邏輯位址528以及讀取快取區域A8的空尺寸1。讀取快取區域A8可以轉變成空(或未匹配)讀取快取區域。
根據讀取請求R(0,20)將新的資訊匹配至索引2和索引3可以表示近來提供的資料被快取以及透過先前讀取請求快取的資料不再被快取。
參考圖8,可以描述在讀出資料的尺寸小於或等於每個讀取快取區域RCA的尺寸的情況下的讀取快取表RCT的更新處理和資料快取處理。
在接收到讀取請求前,讀取快取表RCT和讀取暫存器RC的狀態可以是如下狀態。
索引2可以處於沒有資料與其匹配的狀態。
如果接收到用於自開始邏輯位址8的8個邏輯位址的集的讀取請求R(8,8),則由於讀出資料的尺寸(4KB=528位元組*8)等於每個讀取快取區域RCA的尺寸(4KB),因此可以更新讀取快取表RCT以及可以讀出資料,如下。
由於開始邏輯位址8是屬於與如圖6所示的索引2對應的邏輯位址組LG2的邏輯位址,因此可以匹配至索引2。在空讀取快取區域A2、A3以及A7之中,可以將讀取快取區域A7匹配至索引2。由於資料被快取為使得匹配的讀取快取區域A7完全被快取,因此可以將讀取快取區域A7的空尺寸0匹配至索引2。
參考圖9,描述了在讀取快取區域RCA已經匹配至與讀取請求開始邏輯位址S_LBA屬於的邏輯位址組對應的索引的情況下和在讀出資料的尺寸大於讀取快取區域RCA的空尺寸的情況下的讀取快取表RCT的更新處理和資料快取處理。
在接收到讀取請求前,讀取快取表RCT和讀取暫存器RC的狀態可以是如下狀態。
索引2可以處於讀取快取區域A7、開始邏輯位址8以及讀取快取區域A7的空尺寸0與其匹配的狀態。
如果接收到用於自開始邏輯位址264的4個邏輯位址的集的讀取請求R(264,4),則可以更新讀取快取表RCT以及可以快取讀出資料,如下。
由於開始邏輯位址264是屬於與如圖6所示的索引2對應的邏輯位址組LG2的邏輯位址,因此可以匹配至索引2。由於讀出資料的尺寸4大於已經匹配至索引2的讀取快取區域A7的空尺寸0,因此讀出資料可以不快取在讀取快取區域A7中。因此,在空讀取快取區域A2和A3之間,可以將讀取快取區域A2重新匹配至索引2。由於2KB的讀出資料快取在匹配的讀取快取區域A2中,因此可以將讀取快取區域A2的空尺寸4匹配至索引2。
即,在匹配的讀取快取區域的空白空間不足,並且因此即使讀取快取區域已經匹配至與讀取請求的開始邏輯位址屬於的邏輯位址組對應的索引,讀出資料也可以不被快取的情況下,可以重新匹配空讀取快取區域。
參考圖10,可以描述在讀取快取區域RCA已經匹配至與讀取請求的開始邏輯位址S_LBA屬於的邏輯位址組對應的索引的情況下和在讀出資料的尺寸小於或等於讀取快取區域RCA的空尺寸的情況下的讀取快取表RCT的更新處理和資料快取處理。
在接收到讀取請求前,讀取快取表RCT和讀取暫存器RC的狀態可以是如下狀態。
索引2可以處於讀取快取區域A2、開始邏輯位址264以及讀取快取區域A2的空尺寸4與其匹配的狀態。
如果接收到用於自開始邏輯位址8的3個邏輯位址的集的讀取 請求R(8,3),則可以更新讀取快取表RCT以及可以快取讀出資料,如下。
由於讀出資料的尺寸3小於已經匹配至如圖6所示的索引2的讀取快取區域A2的空尺寸4,因此可以不需要匹配用於快取讀出資料的新的讀取快取區域,以及可以將讀出資料快取在讀取快取區域A2中。可以將開始邏輯位址8另外匹配至已經匹配的開始邏輯位址264。由於總共3.5KB的讀出資料被快取在匹配的讀取快取區域A2中,因此可以將讀取快取區域A2的空尺寸1匹配至索引2。
即,在讀取快取區域已經匹配至與讀取請求的開始邏輯位址屬於的邏輯位址組對應的索引並且匹配的讀取快取區域的空白空間足夠快取讀出資料的情況下,事實上可以使用已經匹配的讀取快取區域,以快取讀出資料。
參考圖11,可以描述在讀取快取區域RCA已經匹配至與讀取請求的開始邏輯位址S_LBA屬於的邏輯位址組對應的索引的情況下和在讀出資料的尺寸大於讀取快取區域RCA的空尺寸的情況下的讀取快取表RCT的更新處理和資料快取處理。
在接收到讀取請求前,讀取快取表RCT和讀取暫存器RC的狀態可以是如下狀態。
索引2可以處於讀取快取區域A2、開始邏輯位址264和8以及讀取快取區域A2的空尺寸1與其匹配的狀態。
如果接收到用於自開始邏輯位址520的2個邏輯位址的集的讀取請求R(520,2),則可以更新讀取快取表RCT以及可以快取讀出資料,如下。
由於開始邏輯位址520是屬於與如圖6所示的索引2對應的邏輯位址組LG2的邏輯位址,因此可以匹配至索引2。由於讀出資料的尺寸2大 於已經匹配至索引2的讀取快取區域A2的空尺寸1,讀出資料可以不快取在讀取快取區域A中。因此,在空讀取快取區域A3和A7之間,可以將讀取快取區域A3重新匹配至索引2。由於1KB的讀出資料被快取在匹配的讀取快取區域A3中,因此可以將讀取快取區域A3的空尺寸6匹配至索引2。
在這種情況下,可以移除已經匹配至索引2的讀取快取區域A2、開始邏輯位址264和8以及讀取快取區域A2的空尺寸1。匹配被移除的讀取快取區域A2可以轉變成空(或未匹配)讀取快取區域。根據讀取請求R(520,2)將新的資訊資料匹配至索引2可以表示近來提供的資料被快取並且透過先前讀取請求快取的資料不再被快取。
圖12是示出根據本發明的實施例的包括資料儲存設備的資料處理系統的方塊圖。
參考圖12,資料處理系統1000可以包括主機設備1100和資料儲存設備1200。
資料儲存設備1200可以包括控制器1210和非揮發性記憶體裝置1220。資料儲存設備1200可以透過耦接到諸如行動電話、MP3播放機、筆記型電腦、桌上型電腦、遊戲播放機、TV、車載資訊娛樂系統等的主機設備1100來使用。資料儲存設備1200也可以稱為記憶體系統。
控制器1210可以包括主機介面單元1211、控制單元1212、記憶體介面單元1213、隨機存取記憶體1214以及錯誤校正碼(ECC)單元1215。
控制單元1212可以回應於來自主機設備1100的請求控制控制器1210的總體操作。控制單元1212可以驅動用於控制非揮發性記憶體裝置1220的韌體或軟體。如上面參照圖2至圖11所描述的,控制單元1212可以透過參 考讀取快取表來執行讀取快取操作。
隨機存取記憶體1214可以用作控制單元1212的工作記憶體。隨機存取記憶體1214可以用作暫時儲存從非揮發性記憶體裝置1220讀取的資料或者從主機設備1100提供的資料的緩衝記憶體。隨機存取記憶體1214可以用作快取在發送到主機設備1100的資料之中的最近發送或者頻繁發送的資料的讀取暫存器。
主機介面單元1211可以使主機設備1100與控制器1210介面。例如,主機介面單元1211可以透過諸如通用序列匯流排(USB)協定、通用快閃儲存(UFS)協定、多媒體卡(MMC)協定、週邊組件互連(PCI)協定、快速週邊組件互連(PCI-E)協定、平行先進技術附件(PATA)協定、串列先進技術附件(SATA)協定、小型電腦系統介面(SCSI)協定以及串列SCSI(SAS)協定的各種介面協定中的一種與主機設備1100通訊。
記憶體介面單元1213可以使控制器1210與非揮發性記憶體裝置1220介面。記憶體介面單元1213可以向非揮發性記憶體裝置1220提供命令和位址。此外,記憶體介面單元1213可以與非揮發性記憶體裝置1220交換資料。
ECC單元1215可以透過使用錯誤校正碼對要儲存在非揮發性記憶體裝置1220中的資料進行編碼。此外,ECC單元1215可以透過使用錯誤校正碼對從非揮發性記憶體裝置1220讀出的資料進行解碼。ECC單元1215可以包括在記憶體介面單元1213中。
非揮發性記憶體裝置1220可以用作資料儲存設備1200的儲存介質。非揮發性記憶體裝置1220可以包括多個非揮發性記憶體晶片(或裸晶) NVM_1至NVM_k。
控制器1210和非揮發性記憶體裝置1220可以製造為各種資料儲存設備中的任何一種。例如,控制器1210和非揮發性記憶體裝置1220可以集成到一個半導體裝置中,以及可以製造為成MMC、eMMC、RS-MMC和微型MMC形式的多媒體卡、成SD、迷你SD和微型SD形式的安全數位卡、通用序列匯流排(USB)儲存設備、通用快閃儲存(UFS)設備、國際個人電腦記憶卡協會(PCMCIA)卡、緊湊型快閃記憶體(CF)卡、智慧多媒體卡、記憶棒等中的任何一種。
圖13是示出根據本發明的實施例的包括固態驅動器(SSD)的資料處理系統的方塊圖。
參考圖13,資料處理系統2000可以包括主機設備2100和固態驅動器(SSD)2200。
SSD 2200可以包括SSD控制器2210、緩衝記憶體裝置2220、非揮發性記憶體裝置2231至223n、電源2240、訊號連接器2250和電力連接器2260。
SSD控制器2210可以回應於來自主機設備2100的請求存取非揮發性記憶體裝置2231至223n。
緩衝記憶體裝置2220可以暫時儲存要被儲存在非揮發性記憶體裝置2231至223n中的資料。此外,緩衝記憶體裝置2220可以暫時儲存從非揮發性記憶體裝置2231至223n讀取的資料。暫時儲存在緩衝記憶體裝置2220中的資料可以在SSD控制器2210的控制下被發送到主機設備2100或非揮發性記憶體裝置2231至223n。
非揮發性記憶體裝置2231至223n可以用作SSD 2200的儲存介質。非揮發性記憶體裝置2231至223n可以分別透過多個通道CH1至CHn與SSD控制器2210耦接。一個或更多個非揮發性記憶體裝置可以耦接到一個通道。耦接到一個通道的非揮發性記憶體裝置可以耦接到同一訊號匯流排和資料匯流排。
電源2240可以向SSD 2200的內部提供透過電力連接器2260輸入的電力PWR。電源2240可以包括輔助電源2241。輔助電源2241可以供給電力以使得SSD 2200在發生突然斷電時正常地終止。輔助電源2241可以包括能夠利用電力PWR充電的大電容的電容器。
SSD控制器2210可以透過訊號連接器2250與主機設備2100交換訊號SGL。訊號SGL可以包括命令、位址、資料等。訊號連接器2250可以根據在主機設備2100和SSD 2200之間的介面方案由諸如平行先進技術附件(PATA)、串列先進技術附件(SATA)、小型電腦系統介面(SCSI)、串列SCSI(SAS)、週邊組件互連(PCI)和快速週邊組件互連(PCI-E)協定的連接器來配置。
圖14是示出根據本發明的實施例的固態驅動器(SSD)控制器的方塊圖。例如,圖14的SSD控制器可以是圖13中示出的SSD控制器2210。
參考圖14,SSD控制器2210可以包括記憶體介面單元2211、主機介面單元2212、錯誤校正碼(ECC)單元2213、控制單元2214以及隨機存取記憶體2215。
記憶體介面單元2211可以向圖13的非揮發性記憶體裝置2231至223n提供諸如命令和位址的控制訊號。此外,記憶體介面單元2211可以與 非揮發性記憶體裝置2231至223n交換資料。記憶體介面單元2211可以在控制單元2214的控制下將從緩衝記憶體裝置2220發送的資料分散至相應的通道CH1至CHn。此外,記憶體介面單元2211可以在控制單元2214的控制下將從非揮發性記憶體裝置2231至223n讀取的資料發送到緩衝記憶體裝置2220。
主機介面單元2212可以與圖13的主機設備2100的協定對應地提供與SSD 2200的介面。例如,主機介面單元2212可以透過平行先進技術附件(PATA)、串列先進技術附件(SATA)、小型電腦系統介面(SCSI)、串列SCSI(SAS)、週邊組件互連(PCI)和快速週邊組件互連(PCI-E)協定中的一種與主機設備2100通訊。此外,主機介面單元2212可以執行支援主機設備2100的磁片類比功能,以識別出作為硬碟驅動器(HDD)的SSD 2200。
控制單元2214可以分析和處理從圖13的主機設備2100輸入的訊號SGL。控制單元2214可以根據用於驅動SSD 2200的韌體或軟體來控制圖13的緩衝記憶體裝置2220和非揮發性記憶體裝置2231至223n的操作。如上面參照圖2至圖11所描述的,控制單元2214可以透過參考讀取快取表執行讀取快取操作。
隨機存取記憶體2215可以用作控制單元2214的工作記憶體。隨機存取記憶體2215可以用作快取在發送到主機設備2100的資料之中的最近發送或者頻繁發送的資料的讀取暫存器。
ECC單元2213可以在儲存在緩衝記憶體裝置2220中的資料之中生成要被發送到非揮發性記憶體裝置2231至223n的同位資料。所生成的同位檢查位元可以與非揮發性記憶體裝置2231至223n中的資料一起儲存。ECC單元2213可以檢測從非揮發性記憶體裝置2231至223n讀出的資料的錯誤。當 檢測到的錯誤在可校正範圍內時,ECC單元2213可以校正檢測到的錯誤。
圖15是示出安裝有根據本發明的實施例的資料儲存設備的電腦系統的方塊圖。
參考圖15,電腦系統3000包括電耦接到系統匯流排3700的網路介面卡3100、中央處理器3200、資料儲存設備3300、隨機存取記憶體(RAM)3400、唯讀記憶體(ROM)3500以及使用者介面3600。資料儲存設備3300可以由圖1中示出的資料儲存設備100、圖12中示出的資料儲存設備1200或者圖13中示出的SSD 2200來構建。
網路介面卡3100可以在電腦系統3000和外部網路之間提供介面。中央處理單元3200執行用於驅動存在於RAM 3400的作業系統或者應用程式的總體操作。
資料儲存設備3300可以儲存電腦系統3000中所需的通用資料。例如,用於驅動電腦系統3000的作業系統、應用程式、各種程式模組、程式資料以及使用者資料可以儲存在資料儲存設備3300中。
RAM 3400可以用作電腦系統3000的工作記憶體。在啟動時,作業系統、應用程式、各種程式模組以及從資料儲存設備3300讀取的為驅動程式所需的程式資料可以載入在RAM 3400上。在作業系統被驅動前啟動的BIOS(基本輸入/輸出系統)可以儲存在ROM 3500中。在電腦系統3000和使用者之間的資訊交換可以透過使用者介面3600實施。
圖16是示出根據本發明的實施例的包括在資料儲存設備中的非揮發性記憶體裝置的方塊圖。例如,圖16的資料儲存設備可以是圖1中示出的資料儲存設備300。
參考圖16,非揮發性記憶體裝置300可以包括記憶胞陣列310、行解碼器320、列解碼器330、340、電壓發生器350以及控制邏輯360。
記憶胞陣列310可以包括佈置在字元線WL1至WLm和位元線BL1至BLn彼此交叉的區域處的記憶胞。記憶胞可以透過存取單元(諸如作為抹除單元的記憶體區塊以及作為編程和讀取單元的頁)來分組。
行解碼器320可以透過字元線WL1至WLm與記憶胞陣列310耦接。行解碼器320可以根據控制邏輯360的控制來操作。行解碼器320可以對從外部設備(圖未示)提供的位址進行解碼。行解碼器320可以基於解碼結果選擇並驅動字元線WL1至WLm。例如,行解碼器320可以向字元線WL1至WLm提供從電壓發生器350提供的字元線電壓。
列解碼器330可以透過位元線BL1至BLn與記憶胞陣列310耦接。列解碼器330可以根據控制邏輯360的控制來操作。列解碼器330可以對從外部設備提供的位址進行解碼。列解碼器330可以基於解碼結果將位元線BL1至BLn與分別對應於位元線BL1至BLn的資料讀取/寫入區塊340的讀取/寫入電路耦接。此外,列解碼器330可以基於解碼結果驅動位元線BL1至BLn。
資料讀取/寫入區塊340可以根據控制邏輯360的控制來操作。資料讀取/寫入區塊340可以根據操作模式作為寫入驅動器或者感測放大器來操作。例如,資料讀取/寫入區塊340可以作為在寫入操作中將從外部設備提供的資料儲存在記憶胞陣列310中的寫入驅動器來操作。對於另一示例,資料讀取/寫入區塊340可以作為在讀取操作中從記憶胞陣列310讀出資料的感測放大器來操作。
電壓發生器350可以產生要用於非揮發性記憶體裝置300的內 部操作的電壓。透過電壓發生器350產生的電壓可以被施加到記憶胞陣列310的記憶胞。例如,在編程操作中產生的編程電壓可以被施加到要對其執行編程操作的記憶胞的字元線。對於另一示例,在抹除操作中產生的抹除電壓可以被施加到要對其執行抹除操作的記憶胞的井區。對於又一示例,在讀取操作中產生的讀取電壓可以被施加到要對其執行讀取操作的記憶胞的字元線。
控制邏輯360可以基於從外部設備提供的控制訊號來控制非揮發性記憶體裝置300的總體操作。例如,控制邏輯360可以控制諸如非揮發性記憶體裝置300的讀取、寫入以及抹除操作的非揮發性記憶體裝置300的操作。
雖然上面已經描述了各個實施例,但對於本發明所屬技術領域中具有通常知識者來講可以理解的是,所描述的實施例僅僅是示例。因此,在本文中所描述的資料儲存設備及其操作方法不應該基於所描述的實施例而受到限制。
對於本發明所屬技術領域中具有通常知識者來講將明顯的是,在不脫離如所附申請專利範圍所限定的本發明的精神和範圍的情況下,可以做出各種改變和變型。
S181~S189‧‧‧步驟

Claims (19)

  1. 一種用於操作資料儲存設備的方法,包括:將暫存器劃分為多個快取區域;將多個邏輯位址分組為多個邏輯位址組;將索引配置至相應的邏輯位址組;以及將讀取請求的第一邏輯位址集、第一快取區域以及第一快取區域的空尺寸匹配至與第一邏輯位址集屬於的邏輯位址組對應的索引,與第一邏輯位址集對應的資料被快取在第一快取區域;其中,當確定與讀取請求的第一邏輯位址集對應的資料的尺寸大於用於判定順序資料的參考時,控制單元不快取與讀取請求的第一邏輯位址集對應的資料。
  2. 如請求項1所述的方法,其中,將所述多個邏輯位址分組為所述多個邏輯位址組的步驟包括:將從開始邏輯位址開始直至每個快取區域的尺寸的所述多個邏輯位址分組為所述多個邏輯位址組,其中,開始邏輯位址透過預定單位增大。
  3. 如請求項1所述的方法,還包括:在接收到用於屬於與索引對應的邏輯位址組的第二邏輯位址集的讀取請求時,透過參考第一快取區域的空尺寸快取與第二邏輯位址集對應的資料。
  4. 如請求項3所述的方法,其中,快取與第二邏輯位址集對應的資料的步驟包括:當與第二邏輯位址集對應的資料的尺寸大於第一快取區域的空尺寸時,將與第二邏輯位址集對應的資料快取在空的第二快取區域中,以及 將第二快取區域和第二快取區域的空尺寸匹配至索引。
  5. 如請求項4所述的方法,還包括:從索引移除第一邏輯位址集的開始邏輯位址、第一快取區域以及第一快取區域的空尺寸。
  6. 如請求項3所述的方法,其中,快取與第二邏輯位址集對應的資料的步驟包括:當與第二邏輯位址集對應的資料的尺寸小於或等於第一快取區域的空尺寸時,將與第二邏輯位址集對應的資料快取在第一快取區域中。
  7. 如請求項6所述的方法,還包括:將第二邏輯位址集的開始邏輯位址另外匹配至索引。
  8. 如請求項1所述的方法,還包括:在接收到用於第一邏輯位址集的寫入請求時,從索引移除第一邏輯位址集的開始邏輯位址。
  9. 一種資料儲存設備,包括:非揮發性記憶體裝置;控制單元,被配置為根據從主機設備接收到的請求來控制非揮發性記憶體裝置;以及暫存器,被配置為快取從非揮發性記憶體裝置讀出的資料,其中,控制單元將暫存器劃分為多個快取區域,控制單元將預定單位的多個邏輯位址分組為多個邏輯位址組,控制單元將索引配置至相應的邏輯位址組,以及當與讀取請求的第一邏輯位址集對應的資料被快取在快取區域中的任一者時,控制單元將第一邏輯位址集的開始邏輯位址、與第一邏輯位址 集對應的資料被快取處的第一快取區域以及第一快取區域的空尺寸匹配至與第一邏輯位址集屬於的邏輯位址組對應的索引;其中,當確定與讀取請求的邏輯位址集對應的資料的尺寸大於用於判定順序資料的參考時,控制單元不快取與讀取請求的邏輯位址集對應的資料。
  10. 如請求項9所述的資料儲存設備,還包括:命令佇列,被配置為排列從主機設備接收到的請求,其中,控制單元將與命令佇列的數目對應的索引配置至邏輯位址組。
  11. 如請求項10所述的資料儲存設備,其中,控制單元透過由命令佇列的數目和每個快取區域的尺寸的組合所獲得的值來確定預定單位。
  12. 如請求項11所述的資料儲存設備,其中,控制單元將從開始邏輯位址開始直至每個快取區域的尺寸的邏輯位址分組為每個邏輯位址組,開始邏輯位址透過預定單位增大。
  13. 如請求項11所述的資料儲存設備,其中,每個快取區域的尺寸對應於透過一次讀取操作從非揮發性記憶體裝置讀出的資料量。
  14. 如請求項13所述的資料儲存設備,其中,快取區域的尺寸透過磁區的數目來確定。
  15. 如請求項9所述的資料儲存設備,其中,在接收到用於屬於與索引對應的邏輯位址組的第二邏輯位址集的讀取請求時,控制單元透過參考第一快取區域的空尺寸來快取與第二邏輯位址集對應的資料。
  16. 如請求項15所述的資料儲存設備,其中,當確定與第二邏輯位址集對應的資料的尺寸大於第一快取區域的空尺寸時,控制單元將與第二邏輯位址集對應 的資料快取在空的第二快取區域中,以及將第二快取區域和第二快取區域的空尺寸匹配至索引。
  17. 如請求項16所述的資料儲存設備,其中,控制單元從索引移除第一邏輯位址集的開始邏輯位址、第一快取區域以及第一快取區域的空尺寸。
  18. 如請求項17所述的資料儲存設備,其中,當確定與第二邏輯位址集對應的資料的尺寸小於或等於第一快取區域的空尺寸時,控制單元將與第二邏輯位址集對應的資料快取在第一快取區域中。
  19. 如請求項18所述的資料儲存設備,其中,控制單元將第二邏輯位址集的開始邏輯位址另外匹配至索引。
TW105105032A 2015-10-29 2016-02-19 資料儲存設備及其操作方法 TWI687806B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2015-0150659 2015-10-29
KR1020150150659A KR20170051563A (ko) 2015-10-29 2015-10-29 데이터 저장 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
TW201715401A TW201715401A (zh) 2017-05-01
TWI687806B true TWI687806B (zh) 2020-03-11

Family

ID=58635456

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105105032A TWI687806B (zh) 2015-10-29 2016-02-19 資料儲存設備及其操作方法

Country Status (4)

Country Link
US (1) US10067873B2 (zh)
KR (1) KR20170051563A (zh)
CN (1) CN106649144B (zh)
TW (1) TWI687806B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI633434B (zh) * 2017-07-12 2018-08-21 宏碁股份有限公司 管理固態硬碟之方法、系統及電腦可讀取媒體
CN107992581B (zh) * 2017-12-07 2020-12-08 北京能源集团有限责任公司 业务处理方法、装置及系统
KR102406340B1 (ko) * 2018-02-26 2022-06-13 에스케이하이닉스 주식회사 전자 장치 및 그것의 동작 방법
CN109101444A (zh) * 2018-08-22 2018-12-28 深圳忆联信息系统有限公司 一种降低固态硬盘随机读延迟的方法及装置
KR20200085515A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 위한 컨트롤러
KR20200110859A (ko) * 2019-03-18 2020-09-28 에스케이하이닉스 주식회사 데이터 저장 장치 및 이를 포함하는 컴퓨팅 장치와 그 동작 방법
TWI697778B (zh) * 2019-06-17 2020-07-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
CN112380148B (zh) * 2020-11-30 2022-10-25 海光信息技术股份有限公司 数据传输方法和数据传输装置
TWI814647B (zh) * 2022-11-24 2023-09-01 慧榮科技股份有限公司 執行主機命令的方法及電腦程式產品及裝置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481694A (en) * 1991-09-26 1996-01-02 Hewlett-Packard Company High performance multiple-unit electronic data storage system with checkpoint logs for rapid failure recovery
US20070283093A1 (en) * 2003-07-15 2007-12-06 Xiv Ltd. Data storage system
US20120072641A1 (en) * 2010-09-21 2012-03-22 Hitachi, Ltd. Semiconductor storage device and data control method thereof
US20130054928A1 (en) * 2011-08-30 2013-02-28 Jung Been IM Meta data group configuration method having improved random write performance and semiconductor storage device using the method
US20130227236A1 (en) * 2011-03-18 2013-08-29 Fusion-Io, Inc. Systems and methods for storage allocation
US20130346693A1 (en) * 2011-08-04 2013-12-26 Huawei Technologies Co., Ltd. Data Cache Method, Device, and System in a Multi-Node System
US20150039909A1 (en) * 2013-08-01 2015-02-05 Phison Electronics Corp. Command executing method, memory controller and memory storage apparatus

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4638426A (en) * 1982-12-30 1987-01-20 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
US6275908B1 (en) * 1998-02-17 2001-08-14 International Business Machines Corporation Cache coherency protocol including an HR state
US6415358B1 (en) * 1998-02-17 2002-07-02 International Business Machines Corporation Cache coherency protocol having an imprecise hovering (H) state for instructions and data
JP4199519B2 (ja) * 2002-11-05 2008-12-17 パナソニック株式会社 メモリ管理装置及びメモリ管理方法
US8489817B2 (en) * 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
KR101300657B1 (ko) 2007-07-06 2013-08-27 삼성전자주식회사 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법
WO2011031796A2 (en) * 2009-09-08 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for caching data on a solid-state storage device
US9003159B2 (en) * 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
US20120054427A1 (en) * 2010-08-27 2012-03-01 Wei-Jen Huang Increasing data access performance
US8417880B2 (en) * 2010-11-01 2013-04-09 Hong Kong Applied Science and Technology Research Institute Company Limited System for NAND flash parameter auto-detection
WO2012106362A2 (en) * 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US9141527B2 (en) * 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US10203881B2 (en) * 2011-12-19 2019-02-12 Apple Inc. Optimized execution of interleaved write operations in solid state drives
TWI475385B (zh) * 2012-03-14 2015-03-01 Phison Electronics Corp 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置
TWI544334B (zh) * 2012-05-30 2016-08-01 慧榮科技股份有限公司 資料儲存裝置與資料儲存裝置操作方法
US9703699B2 (en) * 2014-09-17 2017-07-11 Kabushiki Kaisha Toshiba Hybrid-HDD policy for what host-R/W data goes into NAND

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481694A (en) * 1991-09-26 1996-01-02 Hewlett-Packard Company High performance multiple-unit electronic data storage system with checkpoint logs for rapid failure recovery
US20070283093A1 (en) * 2003-07-15 2007-12-06 Xiv Ltd. Data storage system
US20120072641A1 (en) * 2010-09-21 2012-03-22 Hitachi, Ltd. Semiconductor storage device and data control method thereof
US20130227236A1 (en) * 2011-03-18 2013-08-29 Fusion-Io, Inc. Systems and methods for storage allocation
US20130346693A1 (en) * 2011-08-04 2013-12-26 Huawei Technologies Co., Ltd. Data Cache Method, Device, and System in a Multi-Node System
US20130054928A1 (en) * 2011-08-30 2013-02-28 Jung Been IM Meta data group configuration method having improved random write performance and semiconductor storage device using the method
US20150039909A1 (en) * 2013-08-01 2015-02-05 Phison Electronics Corp. Command executing method, memory controller and memory storage apparatus

Also Published As

Publication number Publication date
US20170123990A1 (en) 2017-05-04
TW201715401A (zh) 2017-05-01
KR20170051563A (ko) 2017-05-12
CN106649144A (zh) 2017-05-10
CN106649144B (zh) 2021-03-12
US10067873B2 (en) 2018-09-04

Similar Documents

Publication Publication Date Title
TWI687806B (zh) 資料儲存設備及其操作方法
TWI716417B (zh) 資料儲存裝置和其操作方法
TWI704487B (zh) 資料儲存設備及其操作方法
TWI703571B (zh) 數據儲存裝置及其操作方法
US9626312B2 (en) Storage region mapping for a data storage device
US10430330B2 (en) Handling of unaligned sequential writes
TW201826127A (zh) 數據儲存設備及其操作方法
US11249897B2 (en) Data storage device and operating method thereof
CN108062962A (zh) 数据存储装置及其操作方法
CN108459978A (zh) 包括非易失性存储器装置的数据存储装置及其操作方法
CN111444115A (zh) 存储装置及其操作方法
CN111309654B (zh) 存储装置及操作存储装置的方法
US11243715B2 (en) Memory controller and operating method thereof
US11782638B2 (en) Storage device with improved read latency and operating method thereof
CN113590503A (zh) 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统
CN113126896A (zh) 具有数据压缩器的存储器控制器及其操作方法
KR20170031311A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20210397364A1 (en) Storage device and operating method thereof
US10515693B1 (en) Data storage apparatus and operating method thereof
US9966148B1 (en) Data storage device and operating method thereof
US20230092380A1 (en) Operation method of memory controller configured to control memory device
US11429530B2 (en) Data storage device and operating method thereof
EP4152333A2 (en) Operation method of memory controller configured to control memory device
CN110196817B (zh) 数据存储装置及该数据存储装置的操作方法
TW202418097A (zh) 記憶體系統及記憶體系統的操作