數據儲存設備及其操作方法與流程
2023-06-25 23:51:36 3

本申請要求2015年10月29日在韓國知識產權局提交的第10-2015-0150659號韓國申請的優先權,該韓國申請通過引用整體地併入本文。
技術領域
本發明的各個實施例總體上涉及一種數據儲存設備,更具體地說,涉及一種能夠緩存讀取請求數據的數據儲存設備及其操作方法。
背景技術:
近來,用於計算機環境的範例已經改變成普適計算,以便可以隨時隨地使用計算機系統。因此,諸如行動電話、數位相機以及筆記本計算機的可攜式電子設備的使用正快速地增加。通常,可攜式電子設備使用數據儲存設備,數據儲存設備採用用於儲存數據的半導體存儲器件。數據儲存設備可以用作用於可攜式電子設備的主存儲器件或輔助存儲器件。
使用半導體存儲器件的數據儲存設備沒有機械驅動部件,並且通常表現出優異的穩定性、耐久性、高信息存取速度以及低電耗。具有這樣優點的數據儲存設備的示例包括通用串行總線(USB)存儲器件、具有各種接口的存儲卡以及固態驅動器(SSD)。
因為可攜式電子設備常常處理諸如音樂或視頻文件的大文件,所以在可攜式電子設備中使用的數據儲存設備需要具有大的儲存容量。因此,數據儲存設備通常用作對存儲單元來講具有高的集成度以提供大的儲存容量的儲存介質、半導體存儲器件。例如,作為非易失性存儲器件的閃速存儲器件具有高的集成度並且廣泛用在可攜式電子設備中。
技術實現要素:
本發明的各種實施例涉及一種能夠有效地緩存讀取請求數據的數據儲存設備及其操作方法。
根據實施例,用於操作數據儲存設備的方法可以包括:將緩存器劃分為多個緩存區域;將多個邏輯地址分組為多個邏輯地址組;將索引分配至相應的邏輯地址組;以及將讀取請求的第一邏輯地址集、與第一邏輯地址集對應的數據被緩存處的第一緩存區域以及第一緩存區域的空尺寸匹配至與第一邏輯地址集屬於的邏輯地址組對應的索引。
根據實施例,數據儲存設備可以包括:非易失性存儲器件;控制單元,被配置為根據從主機設備接收到的請求來控制非易失性存儲器件;以及緩存器,被配置為緩存從非易失性存儲器件讀出的數據,其中,控制單元將緩存器劃分為多個緩存區域,將預定單位的多個邏輯地址分組為多個邏輯地址組,將索引分配至相應的邏輯地址組,以及當與讀取請求的第一邏輯地址集對應的數據被緩存在緩存區域中的任何一個中時,將第一邏輯地址集的開始邏輯地址、與第一邏輯地址集對應的數據被緩存處的第一緩存區域以及第一緩存區域的空尺寸匹配至與第一邏輯地址集屬於的邏輯地址組對應的索引。
根據實施例,由於能夠有效地緩存讀取請求的數據,因此可以提高緩存數據的命中率,以及可以提高數據儲存設備的操作速度。
附圖說明
圖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)(或軟體)。控制單元210可以以硬體和/或軟體的形式實施。在實施例中,控制單元210可以以硬體和軟體的組合形式實施。
主機接口單元220可以根據主機設備的協議使主機設備和數據儲存設備100接口。例如,主機接口單元220可以通過包括例如通用串行總線(USB)、通用閃速儲存器(UFS)、多媒體卡(MMC)、並行高級技術附件(PATA)、串行高級技術附件(SATA)、小型計算機系統接口(SCSI)、串行連接SCSI(SAS)、外圍部件互聯(PCI)、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高速(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和SSD2200之間的接口方案由諸如並行高級技術附件(PATA)、串行高級技術附件(SATA)、小型計算機系統接口(SCSI)、串列SCSI(SAS)、外圍部件互聯(PCI)和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高速(PCI-E)協議中的一種與主機設備2100通信。此外,主機接口單元2212可以執行支持主機設備2100的磁碟模擬功能,以識別出作為硬碟驅動器(HDD)的SSD2200。
控制單元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的操作。
雖然上面已經描述了各個實施例,但對於本領域技術人員來講可以理解的是,所描述的實施例僅僅是示例。因此,在本文中所描述的數據儲存設備及其操作方法不應該基於所描述的實施例而受到限制。
對於本領域技術人員來講將明顯的是,在不脫離如所附權利要求所限定的本發明的 精神和範圍的情況下,可以做出各種改變和變型。