本文作者:kaifamei

存儲器控制器和包括存儲器控制器的存儲裝置的制作方法

更新時間:2025-12-27 12:06:55 0條評論

存儲器控制器和包括存儲器控制器的存儲裝置的制作方法


存儲器控制器和包括存儲器控制器的存儲裝置
1.相關申請的交叉引用
2.本技術要求于2020年12月18日向韓國知識產權局提交的申請號為10-2020-0178159的韓國專利申請的優先權,并且該韓國專利申請通過引用整體并入本文。
技術領域
3.本文描述的一個或多個實施例涉及一種存儲器控制器和包括存儲器控制器的存儲裝置。


背景技術:



4.存儲器控制器可以基于來自主機的指令來控制將數據存儲在存儲器裝置中。易失性存儲器裝置在被供電時存儲數據。在電力中斷時丟失數據。易失性存儲器裝置的示例包括靜態隨機存取存儲器(sram)和動態隨機存取存儲器(dram)。非易失性存儲器裝置即使在電力中斷時也存儲數據。非易失性存儲器裝置的示例包括只讀存儲器(rom)、可編程rom(prom)、電可編程rom(eprom)、電可擦除rom(eerom)和閃速存儲器。


技術實現要素:



5.本文描述的一個或多個實施例提供了一種能夠提高讀取操作的性能的存儲器控制器。一個或多個附加實施例包括可配備有這種存儲器控制器的存儲裝置。
6.根據本公開的一方面,提供了一種存儲器控制器,包括:命令存儲器件,包括第一讀取命令隊列和第二讀取命令隊列,第一讀取命令隊列被配置成基于索引編號存儲讀取命令和與讀取命令相對應的物理地址,其中讀取命令指示包括多個存儲塊的存儲器裝置讀取存儲器裝置中存儲的數據,并且其中物理地址中的每一個與平面編號、塊編號和頁面編號相對應;命令生成控制器,被配置成響應于讀取請求而生成第一讀取命令,將邏輯地址轉換為第一物理地址,并將第一讀取命令和第一物理地址存儲在第一讀取命令隊列中;命令調度控制器,被配置成響應于來自命令生成控制器的調度事件信號而搜索第一物理地址組,第一物理地址組包括至少一個第二物理地址和第一物理地址,該第二物理地址包括與第一讀取命令隊列中存儲的物理地址相對應的頁面編碼,其中命令調度控制器被配置成將第二物理地址組和第一物理地址組順序地調度到第二讀取命令隊列的連續索引編號中,第二物理地址組包括至少一個物理地址,第二物理地址組的至少一個物理地址的平面編號與第一讀取命令隊列中存儲的第一物理地址組的平面編號不同。
7.根據本公開的另一方面,提供了一種存儲器控制器,包括:命令存儲器件,包括第一讀取命令隊列、第二讀取命令隊列和第三讀取命令隊列,其中第一讀取命令隊列被配置成存儲第一物理地址和第一讀取命令,第一讀取命令指示存儲器裝置在執行后臺操作的同時執行讀取操作,并且其中第一物理地址與第一平面編號、第一塊編號和第一頁面編號相對應;命令生成控制器,被配置成響應于在執行后臺操作的同時提供的讀取請求,將邏輯地址轉換為第二物理地址,并且生成指示存儲器裝置讀取存儲器裝置中存儲的數據的第二讀
取命令,并且將第二讀取命令和第二物理地址存儲在第二讀取命令隊列中,其中第二物理地址與第二平面編號、第二塊編號和第二頁面編號相對應;命令調度控制器,被配置成根據第一頁面編號是否與第二頁面編號相等來將第一物理地址、第二物理地址和第二讀取命令調度到第三讀取命令隊列中。
8.根據本公開的又一方面,提供了一種存儲裝置,包括:存儲器裝置,包括多個平面;以及存儲器控制器,被配置成響應于讀取請求而將第一讀取命令和第一物理地址存儲在第一讀取命令隊列中,第一讀取命令指示存儲器裝置執行讀取操作,讀取操作包括通過使用映射到邏輯地址的第一物理地址來讀取存儲器裝置中存儲的數據,其中存儲器控制器進一步被配置成根據調度順序來將第一讀取命令隊列中存儲的讀取命令和物理地址順序地提供到存儲器裝置,并且其中每個物理地址包括平面編號、塊編號和頁面編號,并且當調度到第一讀取命令隊列的索引編號之中的第一優先級索引編號中的第二物理地址的頁面編號與第一物理地址的頁面編號相等時,存儲器控制器被配置成將第一物理地址調度到第一優先級索引編號中。
附圖說明
9.現在將在下文中參照附圖更充分地描述示例性實施例;然而,實施例可以以不同的形式實現,并且不應當被解釋為受限于本文闡述的實施例。相反,提供這些實施例以使得本公開將是徹底且完整的,并將把示例實施例的范圍充分傳達給本領域技術人員。
10.在附圖中,為了清楚地示出,可能夸大尺寸。將理解的是,當元件被稱為在兩個元件“之間”時,該元件可以是這兩個元件之間的唯一元件,或者也可能存在一個或多個中間元件。相同的附圖標記始終指代相同的元件。
11.圖1示出了存儲系統的實施例。
12.圖2示出了包括多個平面的實施例。
13.圖3示出了存儲器裝置的實施例。
14.圖4示出了存儲器控制器的實施例。
15.圖5示出了提供調度事件信號的實施例。
16.圖6示出了提供調度事件信號的實施例。
17.圖7示出了提供調度事件信號的實施例。
18.圖8示出了命令存儲器件的實施例。
19.圖9示出了將讀取命令和物理地址存儲在讀取命令隊列中的實施例。
20.圖10示出了讀取操作的實施例。
21.圖11示出了將一個讀取命令隊列中存儲的讀取命令和物理地址調度到另一讀取命令隊列中的實施例。
22.圖12示出了讀取操作的實施例。
23.圖13示出了將一個讀取命令隊列中存儲的讀取命令和物理地址調度到另一讀取命令隊列中的實施例。
24.圖14示出了讀取操作的實施例。
25.圖15示出了命令存儲器件的實施例。
26.圖16示出了調度讀取命令和物理地址的實施例。
27.圖17示出了讀取操作的實施例。
28.圖18示出了操作存儲器控制器的方法的實施例。
29.圖19示出了存儲器控制器的實施例。
30.圖20示出了存儲卡系統的實施例。
31.圖21示出了固態驅動器系統的實施例。
32.圖22示出了用戶系統的實施例。
具體實施方式
33.出于描述根據本公開的概念的實施例的目的,本文公開的特定結構或功能描述僅是說明性的。根據本公開的構思的實施例可以以各種形式實施,并且不能被解釋為限于本文闡述的實施例。
34.圖1是示出根據實施例的存儲系統的示圖。存儲系統可以被實施為包括例如個人計算機(pc)、數據中心、以及企業型數據存儲系統、直連式存儲裝置(das)的數據處理系統、包括存儲區域網絡(san)的數據處理系統、包括網絡連接存儲的數據處理系統、或者其它類型的系統或裝置。
35.參照圖1,存儲系統可以包括存儲裝置1000和主機400。存儲裝置1000可以根據諸如以下的主機400的請求來存儲數據:移動電話、智能電話、mp3播放器、膝上型計算機、臺式計算機、游戲機、tv、平板pc或車載信息娛樂系統。
36.根據作為與主機400的通信方案的主機接口,存儲裝置1000可以被制造為各種類型的存儲裝置中的任意一種。示例包括固態驅動器(ssd)、多媒體卡(mmc)、嵌入式mmc(emmc)、縮小尺寸的mmc(rs-mmc)、微型mmc(micro-mmc)、安全數字(sd)卡、迷你sd卡、微型sd卡、通用串行總線(usb)存儲裝置、通用閃存(ufs)裝置、緊湊型閃存(cf)卡、智能媒體卡(smc)、記憶棒等。
37.存儲裝置1000可以被制造為各種類型的封裝中的任意一種。示例包括堆疊封裝(pop)、系統級封裝(sip)、片上系統(soc)、多芯片封裝(mcp)、板上芯片(cob)、晶圓級制造封裝(wfp)和晶圓級堆疊封裝(wsp)。
38.在實施例中,可以提供如圖1所示的一個存儲裝置1000。然而,本公開不限于此,可以提供兩個或更多個存儲裝置1000。多個存儲裝置1000可以通過使用將多個存儲裝置1000作為一個存儲裝置進行操作的獨立磁盤冗余陣列(raid)方案或廉價磁盤冗余陣列(raid)方案來操作。
39.存儲裝置1000可以包括存儲器裝置100和存儲器控制器200。存儲器裝置100可以在存儲器控制器200的控制下操作。例如,存儲器裝置100可以從存儲器控制器200接收命令和地址,并且訪問存儲器單元之中由地址選擇的存儲器單元。存儲器裝置100可以對由地址選擇的存儲器單元執行由命令指示的操作。
40.命令可以是例如編程命令、讀取命令或擦除命令。編程命令可以指示存儲器裝置以執行編程操作(或寫入操作)。讀取命令可以指示存儲器裝置100以執行讀取操作。擦除命令可以指示存儲器裝置100以執行擦除操作。因此,由命令中的相應一個命令指示的操作可以是例如編程操作(或寫入操作)、讀取操作或擦除操作。
41.附加地,編程操作可以是存儲器裝置100在存儲器控制器200的控制下存儲從主機
400提供的數據的操作。在一個實施例中,編程操作可以是將數據存儲在存儲器裝置100中的多個存儲塊之中的任意一個存儲塊中的操作。
42.例如,存儲器裝置100可以接收編程命令、地址和數據,并且將數據編程在由地址選擇的存儲器單元中??梢詫⒋幊淘谒x擇的存儲器單元中的數據稱為寫入數據。寫入數據可以包括從主機400提供的數據(或用戶數據)和該數據的元數據。
43.讀取操作可以是存儲器裝置100在存儲器控制器200的控制下讀取存儲器裝置100中存儲的讀取數據的操作。例如,存儲器裝置100可以接收讀取命令和地址,并且從由存儲器單元陣列中由地址選擇的區域讀取數據??梢詫⒋鎯ζ餮b置100中存儲的數據之中的待從所選擇的區域讀取的數據定義為讀取數據。
44.擦除操作可以是存儲器裝置100在存儲器控制器200的控制下擦除存儲器裝置100中存儲的數據的操作。在一個實施例中,擦除操作可以擦除存儲器裝置100中的多個存儲塊之中的任意一個存儲塊中存儲的數據。例如,存儲器裝置100可以接收擦除命令和地址,并且擦除由地址選擇的區域中存儲的數據。
45.存儲器裝置100可以被實施為易失性存儲器裝置或非易失性存儲器裝置。易失性存儲器裝置的示例包括雙倍數據速率同步動態隨機存取存儲器(ddr sdram)、第四代低功率雙倍數據速率(lpddr4)sdram、圖形雙倍數據速率(gddr)sdram、低功率ddr(lpddr)、rambus動態隨機存取存儲器(rdram)等。非易失性存儲器裝置的示例可以包括電阻式隨機存取存儲器(reram)、相變隨機存取存儲器(pram)、磁阻隨機存取存儲器(mram)、鐵電隨機存取存儲器(fram)、自旋轉移扭矩隨機存取存儲器(stt-ram)和閃速存儲器。閃速存儲器可以包括例如nand閃速存儲器、垂直nand閃速存儲器、nor閃速存儲器等。出于示意性目的,假設存儲器裝置100是nand閃速存儲器。
46.存儲器裝置100可以在存儲器控制器200的控制下存儲寫入數據,或者可以讀取所存儲的讀取數據并將讀取數據提供到存儲器控制器200。
47.存儲器裝置100可以包括多個平面101、102、103和104。平面的數量可以為如圖1所示的4個,但本公開不限于此。每個平面可以包括存儲器單元陣列,存儲器單元陣列包括用于存儲寫入數據的存儲器單元。存儲器單元陣列可以包括多個存儲塊。存儲塊可以是用于執行擦除數據的擦除操作的單位。存儲塊可以包括多個頁面,每個頁面對應于用于執行存儲寫入數據的編程操作或讀取所存儲的讀取數據的讀取操作的單位。
48.存儲器單元可以被配置為以下中的任意一種:存儲一位數據的單層單元(slc)、存儲兩位數據的多層單元(mlc)、存儲三位數據的三層單元(tlc)和存儲四位數據的四層單元(qlc)。然而,本公開不限于此,存儲器單元可以存儲5位或更多位數據。
49.在實施例中,存儲器裝置100可以使用例如平面交錯方案(plane interleaving scheme)來執行由命令指示的操作。平面交錯方案可以是對兩個或更多個平面中的相應平面的操作至少彼此部分重疊(overlap)的方案。例如,存儲器裝置100可以執行對第零平面101的讀取操作和對第一平面102的讀取操作,以彼此重疊。然而,本公開不限于此。
50.存儲器控制器200可以控制存儲裝置1000的全部操作。例如,當向存儲裝置1000施加電力時,存儲器控制器200可以運行指令(例如,固件)。當存儲器裝置100是閃速存儲器裝置時,固件可以包括主機接口層、閃存轉換層和閃存接口層。例如,可以從外部電源供應電力。
51.主機接口層可以控制主機400與存儲器控制器200之間的操作。
52.閃存轉換層可以將從主機400提供的邏輯地址轉換為物理地址,并且可以控制存儲器控制器200與存儲器裝置100之間的通信。
53.存儲器控制器200可以響應于主機400的寫入請求、讀取請求和擦除請求而控制存儲器裝置100以分別執行編程操作、讀取操作和擦除操作。
54.在編程操作中,存儲器控制器200可以向存儲器裝置100提供編程命令、物理地址和寫入數據。在實施例中,在編程操作中,存儲器控制器200可以向存儲器裝置100提供編程命令和物理地址。而且,存儲器控制器200可以向緩沖存儲器提供清除命令以將緩沖存儲器中臨時存儲的數據提供(或清除)到存儲器裝置100。當緩沖存儲器中臨時存儲的數據提供到存儲器裝置100時,可以擦除緩沖存儲器中臨時存儲的數據。
55.在讀取操作中,存儲器控制器200可以向存儲器裝置100提供讀取命令和物理地址。
56.在擦除操作中,存儲器控制器200可以向存儲器裝置100提供擦除命令和物理地址。
57.在實施例中,物理地址可以包括平面編號、塊編號、頁面編號和子頁面編號。
58.存儲器控制器200可以自主地生成命令、地址和數據,而不管從主機400提供的任何請求。存儲器控制器200可以將自主生成的命令、地址和數據傳輸到存儲器裝置100。例如,存儲器控制器200可以生成用于執行后臺操作的命令、地址和數據。而且,存儲器控制器200可以向存儲器裝置100提供命令、地址和數據。執行后臺操作的命令例如可以是編程命令或讀取命令。
59.后臺操作可以是損耗均衡、讀取回收和垃圾收集中的至少一種。損耗均衡可以包括例如靜態損耗均衡、動態損耗均衡等。靜態損耗均衡可以包括存儲存儲塊的擦除次數并且將幾乎不執行任何擦除或任何寫入操作的冷數據移動到擦除次數最多的存儲塊中的操作。動態損耗均衡可以包括存儲存儲塊的擦除次數并且將數據編程到擦除次數最少的存儲塊中的操作。
60.讀取回收可以包括在存儲塊中存儲的數據中出現不可校正的錯誤之前將該存儲塊中存儲的數據移動到另一存儲塊的操作。
61.垃圾收集可以包括將存儲塊之中的壞塊中包括的有效數據復制到空閑塊并且擦除壞塊中的無效數據的操作。將壞塊中的有效數據復制到空閑塊可以包括將壞塊中的有效數據移動到空閑塊。
62.在實施例中,存儲器控制器200可以控制存儲器裝置100以在預定時段(例如,空閑時段或另一時段)執行后臺操作??臻e時段可以包括例如不提供主機400的任何請求的時段。在一個實施例中,空閑時段可以包括對應于從向主機400提供對主機400的請求的響應的時間到向存儲裝置1000提供主機400的后續請求的時間的時段。
63.在實施例中,存儲器控制器200可以控制兩個或更多個存儲器裝置100。存儲器控制器200可以根據例如交錯方案來控制存儲器裝置100,以提高操作性能。交錯方案可以包括控制對兩個或更多個存儲器裝置100的操作彼此重疊。
64.存儲器控制器200可以將命令和物理地址順序地存儲在至少一個命令隊列中,并且可以根據調度順序向存儲器裝置提供命令隊列中存儲的命令和物理地址。可以根據先進
先出(fifo:first-in first-out)方案來輸出命令隊列中存儲的命令和物理地址。然而,本公開不限于此。
65.例如,存儲器控制器200可以將讀取命令和物理地址順序地存儲在讀取命令隊列中,并且將讀取命令隊列中存儲的讀取命令和物理地址順序地提供到存儲器裝置100。
66.在一個示例中,存儲器控制器200可以將編程命令和物理地址存儲在編程命令隊列中,并將讀取命令和物理地址存儲在讀取命令隊列中。而且,存儲器控制器200可以首先將編程命令和物理地址提供到存儲器裝置100并且然后將讀取命令和物理地址提供到存儲器裝置100。
67.存儲器控制器200可以將擦除命令提供到存儲器裝置100。在存儲器裝置100響應于擦除命令而執行擦除操作的同時,存儲器控制器200可以從主機400接收請求(例如,讀取請求)。存儲器控制器200可以響應于主機400的請求而提供暫停命令。暫停命令可以指示存儲器裝置100暫停擦除操作。在將暫停命令提供到存儲器裝置100之后,存儲器控制器200可以將指示存儲器裝置100執行與主機400的請求相對應的操作的命令(例如,讀取命令)提供到存儲器裝置100。存儲器裝置100可以響應于暫停命令而暫停擦除操作,并且響應于命令(例如,讀取命令)而執行操作(例如,讀取操作)。在與請求相對應的操作完成之后,存儲器控制器200可以將恢復命令提供到存儲器裝置100?;謴兔羁梢灾甘敬鎯ζ餮b置100恢復擦除操作。存儲器裝置100可以響應于恢復命令而恢復擦除操作。
68.當擦除命令響應于恢復命令而恢復時,在擦除操作正常執行之前可能存在特定準備時間。該準備時間可以是在正常執行擦除操作之前延遲的時間。當主機400在準備時間期間向存儲器控制器200提供請求(例如,讀取請求)時,指示存儲器裝置100執行與該請求相對應的操作的命令(例如,讀取命令)可以連續地存儲在命令隊列中。當命令在命令隊列中連續地排隊時,對主機400的請求的響應可能延遲。
69.當指示對多個平面101、102、103和104之中的任意一個平面進行操作的命令順序地存儲在命令隊列中時,可以僅當由首先輸出的命令指示的操作完成時將接著待輸出的命令提供到存儲器裝置100。例如,在執行由首先輸出的命令指示的操作的同時,接著待輸出的命令可以在命令隊列中排隊。在一個實施例中,當指示對第零平面101進行編程操作的編程命令和指示對第零平面101進行讀取操作的讀取命令順序地存儲在每個命令隊列中時,基于該編程命令和該讀取命令,在執行編程操作的同時讀取命令可以在命令隊列中排隊。
70.在由首先輸出的命令指示的操作沒有完成而是繼續執行的同時,可以將主機400的讀取請求提供到存儲器控制器200。針對主機400的讀取請求的讀取命令可以存儲在讀取命令隊列中,并且當讀取命令在讀取命令隊列中連續地排隊時對主機400的讀取請求的響應可能延遲。
71.在實施例中,響應于來自主機400的讀取請求,存儲器控制器200可以將第一讀取命令和映射到從主機400提供的邏輯地址的第一物理地址存儲在第一讀取命令隊列中。存儲器控制器200可以比較第一讀取命令隊列中存儲的物理地址。存儲器控制器200可以將被調度到第一讀取命令隊列的索引編號之中的第一優先級索引編號中的第二物理地址的頁面編號與第一物理地址的頁面編號進行比較。當第一物理地址的頁面編號與第二物理地址的頁面編號相同時,存儲器控制器200可以將第一物理地址調度到第一讀取命令隊列的索引編號之中的第一優先級索引編號中。存儲器控制器200可以根據調度順序,將第一讀取命
令隊列中存儲的讀取命令和物理地址順序地提供到存儲器裝置100。
72.在一個實施例中,存儲器控制器200可以響應于從主機400提供的讀取請求而生成第一讀取命令,將從主機400提供的邏輯地址轉換為第一物理地址,并且將第一讀取命令與第一物理地址存儲在第一讀取命令隊列中。而且,存儲器控制器200可以搜索第一物理地址組,第一物理地址組包括至少一個第二物理地址和響應于已經發生調度事件的第一物理地址,第二物理地址包括與第一讀取命令隊列中存儲的物理地址之中的第一物理地址相等的頁面編號。而且,存儲器控制器200可以將第二物理地址組和第一物理地址組順序地調度到第二讀取命令隊列的連續索引編號中,第二物理地址組包括平面編號與第一讀取命令隊列中存儲的物理地址之中與第一物理地址組的所有平面編號不同的所有物理地址。
73.在一個實施例中,在執行后臺操作的同時,存儲器控制器200可以將指示存儲器控制器100執行讀取操作的第一讀取命令和第一物理地址存儲在第一讀取命令隊列中。而且,在執行后臺操作的同時,存儲器控制器200可以響應于從主機400提供的讀取請求而將第二讀取命令和第二物理地址存儲在第二讀取命令隊列中。而且,存儲器控制器200可以根據通過比較第一物理地址與第二物理地址而獲得的結果,將第一物理地址、第二物理地址和第二讀取命令調度到第三讀取命令隊列中。物理地址組中的物理地址的數量可以為一個或多個,并且物理地址組的數量可以為一個或多個。
74.在將恢復命令提供到存儲器裝置100之后,可能發生調度事件。例如,在與從將恢復命令提供到存儲器裝置100的時間到將暫停命令提供到存儲器裝置100的時間相對應的時段內,可能發生調度事件。在例如擦除操作完成時或編程操作(或寫入操作)完成之前,可能發生調度事件。
75.存儲器控制器200可以包括命令生成控制器210、命令存儲器件220和命令調度控制器230。命令生成控制器210可以響應于主機400的請求而生成命令。例如,命令生成控制器210可以響應于主機400的讀取請求而生成讀取命令。例如,命令生成控制器210可以響應于主機400的寫入請求而生成編程命令。例如,命令生成控制器210可以響應于主機400的擦除請求而生成擦除命令。例如,命令生成控制器210可以生成暫停命令或恢復命令。
76.命令生成控制器210可以將從主機400提供的邏輯地址轉換為物理地址。在實施例中,命令生成控制器210可以被實施為閃存轉換層。命令生成控制器210可以將命令存儲器件220中存儲的命令和物理地址提供到存儲器裝置100。
77.在實施例中,命令生成控制器210可以將擦除命令提供到存儲器裝置100,響應于在擦除操作期間由主機400提供的請求,將暫停命令提供到存儲器裝置100,并且當與該請求相對應的操作完成時將恢復命令提供到存儲器裝置100。在實施例中,在將恢復命令提供到存儲器裝置100之后,命令生成控制器210可以將調度事件信號提供到命令調度控制器230。將參照圖5描述實施例。
78.在一個實施例中,在從將指示存儲器裝置100執行擦除操作或寫入操作的命令提供到存儲器裝置100的時間起測量的預定時段過去之后,命令生成控制器210可以將調度事件信號提供到命令調度控制器230。將參照圖6和圖7描述實施例。
79.命令存儲器件220可以存儲命令和物理地址。命令存儲器件220可以包括至少一個讀取命令隊列。例如,命令存儲器件220可以包括讀取命令隊列、編程命令隊列或擦除命令隊列中的一個或多個。
80.響應于調度事件信號,命令調度控制器230可以在第一讀取命令隊列中存儲的物理地址之中搜索至少一個第二物理地址,第二物理地址包括與第一物理地址的頁面編號相等的頁面編號。第一物理地址和至少一個第二物理地址可以在第一物理地址組中。命令調度控制器230可以在第一讀取命令隊列中存儲的物理地址之中搜索第二物理地址組。第二物理地址組可以包括具有與第一物理地址組的所有平面編號不同的平面編號的所有物理地址。命令調度控制器230可以將第一物理地址組和第二物理地址組調度在例如第二讀取命令隊列的連續索引編號中。
81.在一個實施例中,存儲裝置1000可以包括僅在從電源供應電力時存儲數據的緩沖存儲器。緩沖存儲器可以在存儲器控制器200中。在一個實施例中,緩沖存儲器可以在存儲器控制器200外部并且聯接到存儲器控制器200。例如,緩沖存儲器可以易失性存儲器裝置,例如雙倍數據速率同步動態隨機存取存儲器(ddr sdram)、第四代低功率雙倍數據速率(lpddr4)sdram、圖形雙倍數據速率(gddr)sdram、低功率ddr(lpddr)和rambus動態隨機存取存儲器(rdram)。
82.主機400可以通過接口與存儲裝置1000通信。接口可以被實施為例如串行高級技術附件(sata)接口、高速sata(satae)接口、串列小型計算機系統接口(sas)接口、高速外圍組件互連(pcie)接口、高速非易失性存儲器(nvme)接口、高級主機控制器接口(ahci)接口或多媒體卡接口。然而,本公開不限于此。
83.主機400可以將數據存儲在存儲裝置1000中,或者可以與存儲裝置1000通信以獲取存儲裝置1000中存儲的數據。在實施例中,主機400可以向存儲裝置1000提供用于請求存儲裝置1000存儲數據的寫入請求。而且,主機400可以向存儲裝置1000提供寫入請求、數據以及用于識別數據的邏輯地址。
84.響應于從主機400提供的寫入請求,存儲裝置1000可以將寫入數據(例如,包括由主機400提供的數據和元數據)存儲在存儲器裝置100中,并且可以將表示寫入數據的存儲已經完成的響應提供到主機400。
85.在實施例中,主機400可以向存儲裝置1000提供用于請求存儲裝置1000將存儲裝置1000中存儲的數據提供到主機400的讀取請求。而且,主機400可以將讀取請求和讀取地址提供到存儲裝置1000。
86.響應于從主機400提供的讀取請求,存儲裝置1000可以從非易失性存儲器裝置100讀取與由主機400提供的讀取地址相對應的讀取數據,并且可以向主機400提供讀取數據作為對讀取請求的響應。
87.圖2是示出根據實施例的多個平面plane0、plane1、plane2和plane3的示圖。平面plane0、plane1、plane2和plane3可以例如與圖1中所示的平面101、102、103和104相對應。
88.參照圖2,平面plane0、plane1、plane2和plane3可以連接到一個通道。在實施例中,從每個平面輸出的數據可以通過一個通道順序地提供到存儲器控制器200。例如,在從平面plane0、plane1、plane2和plane3之中的任意一個平面輸出的數據通過一個通道提供到存儲器控制器200之后,從平面plane0、plane1、plane2和plane3中的另一平面輸出的數據可以通過該一個通道提供到存儲器控制器200。因此,在一個實施例中,兩個或更多個平面可以不同時地通過一個通道輸出數據。
89.平面plane0、plane1、plane2和plane3中的每一個可以包括多個存儲塊mb1、mb2、
mb3、
……
、和mbm,其中m為2或更大的自然數。在實施例中,存儲塊mb1、mb2、mb3、
……
、和mbm可以包括一個或多個系統塊和一個或多個用戶塊。例如,第一存儲塊mb1和第二存儲塊mb2可以是系統塊并且第三至第m存儲塊mb3至mbm可以是用戶塊。
90.系統塊可以存儲元數據,元數據包括映射數據、有效性數據(validity data)、不可校正錯誤數據、操作數據等。映射數據可以是表示邏輯地址與物理地址之間的映射關系的數據。有效性數據可以是表示從主機400提供的數據(或用戶數據)的有效性的數據。不可校正錯誤數據可以是表示從主機400提供的數據(或用戶數據)是具有不可校正錯誤數據的數據。操作數據可以是表示命令隊列中存儲的物理地址是從來自主機400的邏輯地址轉換而來的地址還是為執行后臺操作而生成的地址的數據。然而,本公開不限于此。
91.用戶塊可以存儲例如從主機400提供的數據和元數據。可以包括多個用戶塊。
92.存儲塊mb1、mb2、mb3、
……
、和mbm中的每一個可以包括多個頁面page1、page2、
……
、和pagen,其中n為2或更大的自然數。頁面page1、page2、
……
、和pagen中的每一個可以根據作為執行讀取操作的單位的讀取單位而被劃分為虛擬子頁面sp0、sp1、sp2和sp3。可以基于頁面大小和子頁面數量來預先確定讀取單位。例如,當頁面大小為16kb,子頁面數量為4時,讀取單位可以為4kb。然而,本公開不限于此。在一個或多個實施例中,術語“子頁面”、“切片(slice)”、“區段”等可以具有相同含義。
93.在實施例中,物理地址可以包括平面編號、塊編號、頁面編號和子頁面編號。平面編號可以指示平面plane0、plane1、plane2和plane3之中的任意一個平面。塊編號可以指示一個平面中的多個存儲塊mb1、mb2、mb3、
……
、和mbm之中的任意一個存儲塊。頁面編號可以指示一個存儲塊中的多個頁面page1、page2、
……
、和pagen之中的任意一個頁面。子頁面編號可以指示一個頁面中的子頁面sp0、sp1、sp2和sp3中的一個。
94.圖3是示出存儲器裝置100的實施例的示圖,存儲器裝置100可以包括存儲器單元陣列110、外圍電路120和控制邏輯130。
95.存儲器單元陣列110可以包括多個存儲塊mb1至mbk(k為正整數)。所示的存儲塊mb1至mbk的數量僅是示例,并且在另一實施例中可以是不同的數量。
96.存儲塊mb1至mbk中的每一個可以連接到局部線ll和位線bl1至bln(n為正整數)。局部線ll可以連接到行解碼器122和存儲塊mb1至mbk中的每一個。局部線ll可以包括第一選擇線、第二選擇線以及布置在第一選擇線與第二選擇線之間的多個字線。局部線ll可以進一步包括布置在第一選擇線與字線之間的虛設線、布置在第二選擇線與字線之間的虛設線、以及管線。
97.位線bl1至bln可以共同連接到存儲塊mb1至mbk。
98.存儲塊mb1至mbk可以以二維結構或三維結構來實施。例如,具有二維結構的存儲塊mb1至mbk中的存儲器單元可以沿與襯底平行的方向布置。例如,具有三維結構的存儲塊mb1至mbk中的存儲器單元可以沿與襯底垂直的方向堆疊。
99.外圍電路120可以包括電壓生成器121、行解碼器122、頁面緩沖器組123、列解碼器124、輸入/輸出電路125和感測電路126。電壓生成器121可以響應于操作命令op_cmd而生成用于編程操作、讀取操作和擦除操作的各種操作電壓vop。而且,電壓生成器121可以響應于操作命令op_cmd而選擇性地使局部線ll放電。例如,電壓生成器121可以在控制邏輯130的控制下,生成編程電壓、驗證電壓、通過電壓、導通電壓、讀取電壓、擦除電壓、源極線電壓
等。
100.在實施例中,電壓生成器121可以通過調節外部電源電壓來生成內部電源電壓。由電壓生成器121生成的內部電源電壓可以用作存儲器裝置100的操作電壓。
101.在實施例中,電壓生成器121可以使用外部電源電壓或內部電源電壓來生成多個電壓。例如,電壓生成器121可以包括用于接收內部電源電壓的多個泵浦(pumping)電容器,并且可以在控制邏輯130的控制下通過選擇性地啟用泵浦電容器來生成多個電壓。所生成的電壓可以通過行解碼器122被供應到存儲器單元陣列110。
102.行解碼器122可以響應于行地址radd將操作電壓vop傳送到局部線ll??梢酝ㄟ^局部線ll將操作電壓vop傳送到存儲塊mb1至mbk之中的所選擇的存儲塊。
103.例如,在編程操作中,行解碼器122可以將編程電壓施加到所選擇的字線,并且將電平低于編程電壓的電平的編程通過電壓施加到未選擇的字線。在編程驗證操作中,行解碼器122可以將驗證電壓施加到所選擇的字線,并且將高于驗證電壓的驗證通過電壓施加到未選擇的字線。
104.在讀取操作中,行解碼器122可以將讀取電壓施加到所選擇的字線,并且將高于讀取電壓的讀取通過電壓施加到未選擇的字線。
105.在擦除操作中,行解碼器122可以根據經解碼的地址來選擇一個存儲塊。在擦除操作中,行解碼器122可以將參考(例如,接地)電壓施加到連接到所選擇的存儲塊的字線。
106.頁面緩沖器組123可以包括分別通過第一位線bl1至第n位線bln連接到存儲器單元陣列110的第一頁面緩沖器pb1至第n頁面緩沖器pbn。第一至第n頁面緩沖器pb1至pbn可以在控制邏輯130的控制下操作。例如,第一至第n頁面緩沖器pb1至pbn可以響應于頁面緩沖器控制信號pbsignals而操作。例如,在讀取操作或驗證操作中,第一至第n頁面緩沖器pb1至pbn可以臨時存儲通過第一至第n位線bl1至bln接收的數據,或者感測位線bl1至bln的電壓或電流。
107.在編程操作中,當將編程電壓施加到所選擇的字線時,第一至第n頁面緩沖器pb1至pbn可以通過第一至第n位線bl1至bln將通過列解碼器124和輸入/輸出電路125接收的數據data傳送到所選擇的存儲器單元。根據所傳送的數據data,對所選擇的頁面的存儲器單元進行編程。連接到施加有編程允許電壓(例如,接地電壓)的位線的存儲器單元可以具有增加的閾值電壓??梢跃S持連接到施加有編程禁止電壓(例如,電源電壓)的位線的存儲器單元的閾值電壓。
108.在驗證操作中,第一至第n頁面緩沖器pb1至pbn可以通過第一至第n位線bl1至bln從所選擇的存儲器單元感測所選擇的存儲器單元中存儲的數據。
109.在讀取操作中,第一至第n頁面緩沖器pb1至pbn可以在列解碼器124的控制下通過第一至第n位線bl1至bln從所選擇的頁面的存儲器單元中感測數據data,并且將所感測的數據data輸出到輸入/輸出電路125。
110.在擦除操作中,第一至第n頁面緩沖器pb1至pbn可以使第一至第n位線bl1至bln浮置。
111.列解碼器124可以響應于列地址cadd而在輸入/輸出電路125與頁面緩沖器組123之間傳送數據。例如,列解碼器124可以通過數據線dl與第一至第n頁面緩沖器pb1至pbn交換數據,或者通過列線cl與輸入/輸出電路125交換數據。
112.輸入/輸出電路125可以將從存儲器控制器200傳送的命令cmd和地址add傳送到控制邏輯130,或者與列解碼器124交換數據data。
113.在讀取操作或驗證操作中,感測電路126可以響應于允許位vry_bit《#》生成參考電流,并且通過將從頁面緩沖器組123接收的感測電壓vpb與由參考電流生成的參考電壓進行比較,輸出通過信號pass或失敗信號fail。
114.控制邏輯130可以響應于命令cmd和地址add而通過輸出操作命令op_cmd、行地址radd、頁面緩沖器控制信號pbsignals和允許位vry_bit《#》來控制外圍電路120。
115.圖4是示出存儲器控制器200的實施例的示圖,存儲器控制器200可以包括命令生成控制器210、命令存儲器件220和命令調度控制器230。
116.參照圖4,命令生成控制器210可以從主機400接收讀取請求。命令生成控制器210可以生成指示存儲器裝置響應于讀取請求而讀取存儲器裝置中存儲的數據的第一讀取命令??梢皂憫谥鳈C400當前提供的讀取請求而生成第一讀取命令。
117.命令生成控制器210可以將從主機400提供的邏輯地址轉換為第一物理地址。第一物理地址可以是與第一讀取命令一起被提供的物理地址。在一個實施例中,第一物理地址可以是與命令存儲器件220中存儲的讀取命令一起被提供的物理地址。
118.命令生成控制器210可以將第一讀取命令和第一物理地址提供到命令存儲器件220。命令生成控制器210可以生成調度事件信號,并且將調度事件信號提供到命令調度控制器230。命令存儲器件220可以存儲讀取命令和物理地址。可以在生成第一讀取命令和第一物理地址之前生成命令存儲器件220中存儲的讀取命令和物理地址。
119.在實施例中,命令存儲器件220可以包括第一讀取命令隊列和第二讀取命令隊列。第一讀取命令隊列可以在調度事件發生之前存儲讀取命令和物理地址。第二讀取命令隊列可以是在調度事件發生之后重新排列并存儲讀取命令和物理地址的讀取命令隊列。
120.命令調度控制器230可以在第一讀取命令隊列中存儲的物理地址之中搜索第一物理地址組和第二物理地址組。命令調度控制器230可將第一物理地址組和第二物理地址組調度到第二讀取命令隊列中。
121.圖5是示出提供調度事件信號的操作的實施例的示圖。參照圖5,在時間t1,命令生成控制器210可以將擦除命令ecmd提供到存儲器裝置100。存儲器裝置100可以響應于擦除命令ecmd而開始擦除操作。
122.在時間t2,主機400可以將請求提供到命令生成控制器210。主機400的請求可以是例如寫入請求或讀取請求。命令生成控制器210可以將暫停命令spd_cmd提供到存儲器裝置100。存儲器裝置100可以響應于暫停命令spd_cmd而暫停在時間t1開始的擦除操作。
123.在時間t3,命令生成控制器210可以將與在時間t2提供的主機400的請求相對應的命令cmd提供到存儲器裝置100。當主機400的請求為寫入請求時,命令cmd可以為編程命令。在一個實施例中,當主機400的請求為讀取請求時,命令cmd可以為讀取命令。存儲器裝置100可以響應于命令cmd執行由命令cmd指示的操作。
124.在時間t4,存儲器裝置100可以完成由命令cmd指示的操作。命令生成控制器210可以將恢復命令rsm_cmd提供到存儲器裝置100。存儲器裝置100可以響應于恢復命令rsm_cmd而恢復在時間t2暫停的擦除操作。存儲器裝置100可能需要特定準備時間以正常執行擦除操作。該準備時間可以被稱為恢復延遲時間。例如,當在時間t4恢復擦除操作時,可以在恢
復延遲時間過去之后從t6開始正常執行擦除操作。
125.在恢復延遲時間期間,主機400可以將讀取請求提供到命令生成控制器210。每當主機400的讀取請求被提供到命令生成控制器210時,讀取命令和物理地址可以順序地存儲在命令存儲器件220中包括的第一讀取命令隊列中。當第一讀取命令隊列中存儲的讀取命令和物理地址在第一讀取命令隊列中連續地排隊時,對主機400的讀取請求的響應可能延遲。
126.在實施例中,在時間t5,在將恢復命令rsm_cmd提供到存儲器裝置100之后,命令生成控制器210可以將調度事件信號evt_sig提供到命令調度控制器230。
127.圖6是示出提供調度事件信號的操作的實施例的示圖。
128.參照圖6,命令生成控制器210可以不生成暫停命令spd_cmd和恢復命令rsm_cmd。在從將圖5所示的命令cmd提供到存儲器裝置100起經過預定時段之后,命令生成控制器210可以輸出調度事件信號evt_sig。
129.在時間t1’,命令生成控制器210可以將編程命令pcmd提供到存儲器裝置100。存儲器裝置100可以響應于編程命令pcmd而開始編程操作(或寫入操作)??赡苄枰獣r間以正常完成編程操作。該時間可以稱為編程操作時間tprog。關于編程操作時間tprog的信息(或數據)可以存儲在存儲器裝置100中的多個存儲塊mb1、mb2、mb3、
……
、和mbm之中被分配為cam塊的存儲塊中。存儲器控制器200可在啟動時從存儲器裝置100獲取關于編程操作時間tprog的信息。編程操作時間tprog可以是例如從時間t1’到時間t3’相對應的時段。
130.在將編程命令pcmd提供到存儲器裝置100的時間之后經過編程操作時間tprog之前,命令生成控制器210可以將調度事件信號evt_sig提供到命令調度控制器230。
131.在實施例中,在將編程命令pcmd提供到存儲器裝置100的時間之后經過預定的第一參考時間tset1的時間,命令生成控制器210可以將調度事件信號evt_sig提供到命令調度控制器230。例如,在時間t1’之后經過預定的第一參考時間tset1的時間可以為t2’。關于第一參考時間tset1的信息(或數據)可以存儲在存儲器裝置100中的多個存儲塊mb1、mb2、mb3、
……
、和mbm之中被分配為cam塊的存儲塊中。存儲器控制器200可以在啟動時從存儲器裝置100獲取關于第一參考時間tset1的信息。在實施例中,第一參考時間tset1可以短于編程操作時間tprog。
132.在時間t3’,命令生成控制器210可以將用于檢查編程操作的結果的命令提供到存儲器裝置100。
133.圖7是示出提供調度事件信號的操作的實施例的示圖。
134.參照圖7,在時間t1’,命令生成控制器210可以將擦除命令ecmd提供到存儲器裝置100。存儲器裝置100可以響應于擦除命令ecmd而開始擦除操作。
135.可能需要正常完成擦除操作的時間可以是擦除操作時間ter。關于擦除操作時間ter的信息(或數據)可以存儲在存儲器裝置100中的多個存儲塊mb1、mb2、mb3、
……
、和mbm之中被分配為cam塊的存儲塊中。存儲器控制器200可在啟動時從存儲器裝置100獲取關于擦除操作時間ter的信息。擦除操作時間ter可以是例如與從時間t1’到時間t5’相對應的時段。在一個實施例中,擦除操作時間ter可以長于圖6所示的編程操作時間tprog。
136.在將擦除命令ecmd提供到存儲器裝置100的時間之后經過擦除操作時間ter之前,命令生成控制器210可以將調度事件信號evt_sig提供到命令調度控制器230。
137.在實施例中,在將擦除命令ecmd提供到存儲器裝置100的時間之后經過預定的第二參考時間tset2的時間,命令生成控制器210可以將調度事件信號evt_sig提供到命令調度控制器230。例如,在時間t1’之后經過預定的第二參考時間tset2的時間可以為t4’。
138.關于第二參考時間tset2的信息(或數據)可以存儲在存儲器裝置100中的多個存儲塊mb1、mb2、mb3、
……
、和mbm之中被分配為cam塊的存儲塊中。存儲器控制器200可以在啟動時從存儲器裝置100獲取關于第二參考時間tset2的信息。在實施例中,第二參考時間tset2可以比擦除操作時間ter短。在實施例中,第二參考時間tset2可以等于第一參考時間tset1或比第一參考時間tset1長。
139.圖8是示出命令存儲器件220的實施例的示圖,命令存儲器件220可以包括第一讀取命令隊列221和第二讀取命令隊列222。
140.第一讀取命令隊列221可以基于索引編號順序地存儲讀取命令rcmd和物理地址physical address。例如,包括平面編號0p0、塊編號100blk100、頁面編號30pg30、子頁面編號0至3s0至s3的物理地址和讀取命令rcmd1可以存儲在第一讀取命令隊列221的索引編號0index0中。
141.包括平面編號0p0、塊編號200blk200、頁面編號10pg10、子頁面編號3s3的物理地址和讀取命令rcmd2可以存儲在第一讀取命令隊列221的索引編號1index1中。
142.包括平面編號1p1、塊編號301blk301、頁面編號50pg50、子頁面編號0和1s0和s1的物理地址和讀取命令rcmd3可以存儲在第一讀取命令隊列221的索引編號2index2中。
143.包括平面編號3p3、塊編號903blk903、頁面編號75pg75、子頁面編號1s1的物理地址和讀取命令rcmd4可以存儲在第一讀取命令隊列221的索引編號3index3中。
144.讀取命令rcmd1、rcmd2、rcmd3和rcmd4以及分別存儲在第一讀取命令隊列221的index0、index1、index2和index3的備用列中的物理地址可以被順序地提供到存儲器裝置100。例如,讀取命令rcmd1、rcmd2、rcmd3和rcmd4以及物理地址中的相應一個可以根據預定的次序(例如,從第一讀取命令隊列221的備用列index0、index1、index2和index3的最小編號開始)來順序地提供。在另一實施例中,預定的次序可以是不同的次序。在調度事件發生之前,第二讀取命令隊列222可以為空。
145.圖9是示出將讀取命令和相應的物理地址存儲在第一讀取命令隊列中的操作的實施例的示圖。
146.參照圖9,在讀取命令rcmd1、rcmd2、rcmd3和rcmd4以及物理地址分別存儲在第一讀取命令隊列221的備用列index0、index1、index2和index3中的同時,命令生成控制器210可以將例如映射到邏輯地址的物理地址和從主機400提供的讀取命令存儲在第一讀取命令隊列221中。例如,包括平面編號1p1、塊編號201blk201、頁面編號30pg30、子頁面編號2s2的物理地址和讀取命令可以存儲在第一讀取命令隊列221的索引編號index4中。
147.在一個實施例中,可以根據先進先出(fifo)方案來輸出命令隊列中存儲的命令和物理地址。例如,可以首先輸出第一讀取命令隊列221的索引編號0index0中存儲的物理地址和讀取命令rcmd1。接著可以輸出第一讀取命令隊列221的索引編號1index1中存儲的物理地址和讀取命令rcmd2,依此類推。
148.圖10是示出例如根據圖9的實施例所執行的讀取操作的實施例的示圖。
149.參照圖9和圖10,可以將第一讀取命令隊列221的索引編號0index0中存儲的物理
地址和讀取命令rcmd1提供到存儲器裝置100。存儲器裝置100可以響應于讀取命令rcmd1而對具有包括平面編號0p0、塊編號100blk100、頁面編號30pg30和子頁面編號0s0的物理地址的單個平面(例如,第零平面101)的頁面執行讀取操作。對單個平面的頁面執行的讀取操作可以稱為單平面讀取操作sp read??梢暂敵鐾ㄟ^單平面讀取操作sp read的數據(data out)??梢酝ㄟ^通道將輸出數據提供到存儲器控制器200。
150.接著,可以將第一讀取命令隊列221的索引編號1index1中存儲讀取命令rcmd2和物理地址提供到存儲器裝置100。存儲器裝置100可以響應于讀取命令rcmd2而對與包括平面編號0p0、塊編號200blk200、頁面編號10pg10和子頁面編號3s3的物理地址相對應的子頁面執行讀取操作pgs read??梢暂敵鐾ㄟ^讀取操作pgs read的子頁面中存儲的數據(data out)。
151.在第一讀取命令隊列221的索引編號1index1中存儲的讀取命令rcmd2被提供到存儲器裝置100之后,可以將第一讀取命令隊列221的索引編號2index2中存儲的讀取命令rcmd3和物理地址提供到存儲器裝置100。存儲器裝置100可以響應于讀取命令rcmd3而對具有包括平面編號1p1、塊編號301blk301、頁面編號50pg50和子頁面編號0和1s0和s1的物理地址的單個平面(例如,第一平面102)的頁面執行單平面讀取操作sp read。
152.因為第一讀取命令隊列221的索引編號1index1中存儲的物理地址的平面編號與第一讀取命令隊列221的索引編號2index2中存儲的物理地址的平面編號彼此不同,所以存儲器裝置100可以使用平面交錯方案對具有平面編號0p0的第零平面101和具有平面編號1p1的第一平面102執行讀取操作。例如,對第零平面101進行的讀取操作pgs read和對第一平面102進行的單平面讀取操作sp read可以彼此部分重疊。
153.在通過對第零平面101執行的讀取操作pgs read輸出的數據提供到存儲器控制器200之后,輸出由對第一平面102執行的單平面讀取操作sp read的待輸出的數據。原因在于多個平面(例如,圖1所示的平面101至104或者圖2所示的平面plane0、plane1、plane2和plane3)連接到一個通道。
154.接著,可以將第一讀取命令隊列221的索引編號3index3中存儲的讀取命令rcmd4和物理地址提供到存儲器裝置100。存儲器裝置100可以響應于讀取命令rcmd4而對與包括平面編號3p3、塊編號903blk903、頁面編號75pg75和子頁面編號1s1的物理地址相對應的子頁面執行讀取操作pgs read。可以輸出通過讀取操作pgs read的子頁面中存儲的數據(data out)。
155.接著,可以將第一讀取命令隊列221的索引編號4index4中存儲的讀取命令和物理地址提供到存儲器裝置100。存儲器裝置100可以執行讀取操作pgs read,并且可以輸出通過讀取操作pgs read的子頁面中存儲的數據(data out)。
156.第一讀取命令隊列221中存儲的讀取命令和物理地址可以在存儲器裝置100執行例如如上參照圖5所描述的擦除操作的同時排隊。讀取命令和物理地址可以在第一讀取命令隊列221的相應索引編號中持續等待,直到當前存儲器裝置100中執行的操作完成。因此,針對主機400的讀取請求執行讀取操作的時間(或讀取忙碌時間tr)增加,讀取操作的性能下降,并且針對主機400的讀取請求的讀取響應延遲。
157.為了減輕這種顧慮,根據第一讀取命令隊列221中存儲的物理地址是否要提供到存儲器裝置100,可以根據特定的輸出順序再次調度第一讀取命令隊列221。
158.圖11是示出將第一讀取命令隊列中存儲的讀取命令和物理地址調度到第二讀取命令隊列中的操作的實施例的示圖。出于示出的目的,在圖11中,假設第一物理地址是包括平面編號1p1、塊編號201blk201、頁面編號30pg30和子頁面編號2s2的物理地址。
159.參照圖11,命令調度控制器230可以在第一讀取命令隊列221中存儲的物理地址之中搜索包括與第一物理地址的頁面編號相等的頁面編號的至少一個第二物理地址。在實施例中,第一物理地址和至少一個第二物理地址可以是具有不同平面編號的物理地址。例如,第一讀取命令隊列221的索引編號0index0中存儲的物理地址可以是具有與第一物理地址的平面編號不同的平面編號和/或具有與第一物理地址的頁面編號不同的頁面編號的物理地址。
160.命令調度控制器230可以將第一讀取命令、與至少一個第二物理地址相對應的至少一個第二讀取命令、以及第一物理地址組調度到第二讀取命令隊列222的索引編號之中的任意一個索引編號中。例如,第一讀取命令隊列221的索引編號0index0中存儲的物理地址和第一物理地址可以被調度到第二讀取命令隊列222的索引編號0index0中。
161.與第一物理地址相對應的第一讀取命令和與第一讀取命令隊列221的索引編號0index0中存儲的物理地址相對應的第二讀取命令也可以被調度到第二讀取命令隊列222的索引編號0index0中。
162.第二讀取命令隊列222的索引編號0index0中存儲的讀取命令rcmd1可以包括第一讀取命令和第二讀取命令。第二讀取命令隊列222的索引編號0index0可以是第一優先級索引編號。
163.在一個實施例中,第一物理地址和至少一個第二物理地址可以具有相同的平面編號和/或相同的塊編號。命令調度控制器230可以把第一物理地址組調度到在第二讀取命令隊列222的索引編號之中的任意一個索引編號中。而且,命令調度控制器230可以把第一讀取命令或與至少一個第二物理地址相對應的至少一個第二讀取命令調度到第二讀取命令隊列222的索引編號之中的一個索引編號中。
164.在一個實施例中,當(在第一讀取命令隊列221中存儲的物理地址之中)不存在任何包括與第一物理地址的頁面編碼相等的頁面編碼的物理地址時,可以例如如圖9所示將第一物理地址調度到第二讀取命令隊列222的索引編號4index4中。
165.圖12是示出根據圖11所示的實施例所執行的讀取操作的實施例的示圖。
166.參照圖11和圖12,可以將第二讀取命令隊列222的索引編號0index0中存儲的讀取命令rcmd1和物理地址提供到存儲器裝置100。存儲器裝置100可以響應于讀取命令rcmd1而同時對具有第二讀取命令隊列222的索引編號0index0中存儲的物理地址的每個平面的頁面執行讀取操作mp read。對每個平面的頁面同時執行的讀取操作可以定義為多平面讀取操作mp read。
167.可以輸出通過對第零平面101執行多平面讀取操作mp read的數據(dataout)。接著,可以輸出通過對第一平面102執行多平面讀取操作mp read的數據(data out)。
168.第二讀取命令隊列的索引編號1index1、索引編號2index2和索引編號3index3中的每一個中存儲的讀取命令和物理地址可以順序地提供到存儲器裝置100,并且存儲器裝置100可以響應于每個讀取命令而順序地執行讀取操作。上面已經參照圖10進行描述。
169.如上所述,因為讀取命令隊列被重新排列,所以可以減少執行對于主機400的讀取
請求的讀取操作的所有感測操作的次數。因此,可以減少或防止對主機400的讀取請求的響應被延遲的現象,并且因此可以提高讀取操作的性能。
170.圖13是示出將第一讀取命令隊列中存儲的讀取命令和物理地址調度到第二讀取命令隊列中的操作的實施例的示圖。出于示出的目的,假設第一物理地址是包括平面編號1p1、塊編號201blk201、頁面編號30pg30和子頁面編號2s2的物理地址。
171.參照圖13,如參照圖11所述,第一讀取命令隊列221的索引編號0index0中存儲的物理地址和第一物理地址可以被調度到第二讀取命令隊列222的索引編號0index0中。與第一物理地址相對應的第一讀取命令和與第一讀取命令隊列221的索引編號0index0中存儲的物理地址相對應的第二讀取命令也可以被調度到第二讀取命令隊列222的索引編號0index0中。
172.在實施例中,命令調度控制器230可以在第一讀取命令隊列221中存儲的物理地址之中搜索第二物理地址組。而且,命令調度控制器230可以將第一物理地址組和第二物理地址組順序地調度到第二讀取命令隊列222的連續索引編號中。例如,第一讀取命令隊列221的索引編號3index3中存儲的物理地址可以包括在第二物理地址組中。
173.當第一物理地址組存儲在第二讀取命令隊列222的索引編號0index0中時,第一讀取命令隊列221的索引編號3index3中存儲的物理地址和讀取命令可以被調度到第二讀取命令隊列222的索引編號1index1中。第二讀取命令隊列222的索引編號1index1中存儲的讀取命令rcmd2的數量可以為一個。
174.第一讀取命令隊列221的索引編號1index1中存儲的物理地址和讀取命令可以被調度到第二讀取命令隊列222的索引編號3index3中。
175.第一讀取命令隊列221的索引編號2index2中存儲的物理地址和讀取命令可以被調度到第二讀取命令隊列222的索引編號2index2中。
176.圖14是示出根據圖13所示的實施例所執行的讀取操作的實施例的示圖。
177.參照圖13和圖14,可以將第二讀取命令隊列222的索引編號0index0中存儲的讀取命令rcmd1和物理地址提供到存儲器裝置100。存儲器裝置100可以執行多平面讀取操作mp read??梢皂樞虻剌敵鐾ㄟ^多平面讀取操作mp read的數據(data out)。
178.在第二讀取命令隊列222的索引編號0index0中存儲的讀取命令rcmd2被提供到存儲器裝置100之后,可以將第二讀取命令隊列222的索引編號1index1中存儲的讀取命令rcmd2和物理地址提供到存儲器裝置100。存儲器裝置100可以執行讀取操作pgs read。
179.存儲器裝置100可以使用平面交錯方案對具有平面編號0p0的第零平面101、具有平面編號1p1的第一平面102和具有平面編號2p2的第二平面103中的每一個執行讀取操作。因此,多平面讀取操作mp read和讀取操作pgs read可以彼此部分重疊。
180.在順序地輸出通過多平面讀取操作mp read的數據(data out)之后,可以輸出通過讀取操作pgs read的數據。
181.當第二讀取命令隊列222的索引編號2index2中存儲的讀取命令rcmd3和物理地址可以被提供到存儲器裝置100時,存儲器裝置100可以執行讀取操作sp read,并且可以輸出通過讀取操作sp read的數據。
182.當第二讀取命令隊列222的索引編號3index3中存儲的讀取命令rcmd4和物理地址被提供到存儲器裝置100時,存儲器裝置100可以執行讀取操作pgs read,并且可以輸出通
過讀取操作pgs read的數據。
183.如上所述,因為讀取命令隊列被重新排列,所以可以減少執行對于主機400的讀取請求而執行的讀取操作所需的所有感測操作的次數,可以防止對主機400的讀取請求的響應延遲的現象,并且可以提高讀取操作的性能。
184.圖15是命令存儲器件220’的一個實施例的示意圖,命令存儲器件220’可以包括第一讀取命令隊列221’、第二讀取命令隊列222’和第三讀取命令隊列223’。
185.第一讀取命令隊列221’可以是存儲指示存儲器裝置100在執行后臺操作的同時執行讀取操作的第一讀取命令和第一物理地址的讀取命令隊列。例如,第一讀取命令隊列221’中存儲的第一物理地址可以包括平面編號0p0、塊編號100blk100、頁面編號5pg5、子頁面編號0s0和子頁面編號1s1。第一讀取命令brcmd1可以是指示存儲器裝置100在垃圾收集操作中讀取犧牲塊中包括的有效數據的命令。然而,本公開不限于此。
186.第二讀取命令隊列222’可以與上面參照圖8描述的第一讀取命令隊列221相同。在一個實施例中,第二讀取命令隊列222’可以與上面參照圖8描述的第二讀取命令隊列222相同。
187.圖16是示出調度讀取命令和物理地址的操作的實施例的示圖。
188.參照圖16,第一讀取命令指示存儲器裝置100在執行后臺操作的同時執行讀取操作,并且第一物理地址可以存儲在第一讀取命令隊列221’中。第一物理地址可以包括平面編號0p0、塊編號100blk100、頁面編號5pg5、子頁面編號0s0和子頁面編號1s1。
189.在執行后臺操作的同時,主機400可以將讀取請求提供到命令生成控制器210。
190.命令生成控制器210可以響應于主機400的讀取請求而生成第二讀取命令。命令生成控制器210可以將從主機400提供的邏輯地址轉換為第二物理地址。命令生成控制器210可以將第二讀取命令和第二物理地址存儲在第二讀取命令隊列222’中。第二物理地址可以包括例如平面編號0p0、塊編號101blk101、頁面編號5pg5和子頁面編號0s0。
191.命令調度控制器230可以比較第一物理地址的第一頁面編號與第二物理地址的第二頁面編號。例如,可以檢查第一頁面編號和第二頁面編號是否相同。命令調度控制器230可以根據第一頁面編號和第二頁面編號是否相同來將第一物理地址、第二物理地址和第二讀取命令調度到第三讀取命令隊列223’中。
192.在實施例中,第一物理地址的第一平面編號可以與第二物理地址的第二平面編號不同。命令調度控制器230可以將第一讀取命令、第一物理地址、第二物理地址和第二讀取命令調度到第三讀取命令隊列223’的第一優先級索引編號中。例如,第一物理地址和第二物理地址可以被調度到第三讀取命令隊列223’的索引編號0index0中。另外,讀取命令可以被調度到第三讀取命令隊列223’的索引編號0index0中。第三讀取命令隊列223’的索引編號0index0中存儲的讀取命令rcmd1可以包括與第一物理地址相對應的讀取命令和與第二物理地址相對應的讀取命令。
193.在一個實施例中,第一物理地址的第一平面編號可以與第二物理地址的第二平面編號相等,并且第一物理地址的第一塊編號可以與第二物理地址的第二塊編號相等。命令調度控制器230可以將第一物理地址、第二物理地址和第二讀取命令(或第一讀取命令)調度到第三讀取命令隊列223’的第一優先級索引編號中。
194.第一物理地址和第二物理地址可以組合在第三讀取命令隊列223’中??梢詠G棄第
一讀取命令隊列221’中存儲的讀取命令brcmd1和物理地址。
195.圖17是示出根據圖16所示的實施例所執行的讀取操作的實施例的示圖。
196.參照圖16和圖17,可以將第三讀取命令隊列223’的索引編號0index0中存儲的讀取命令rcmd1、第一物理地址和第二物理地址提供到存儲器裝置100。讀取命令rcmd1可以包括指示存儲器裝置100讀取具有第一物理地址的第一平面的頁面的讀取命令(例如,第一讀取命令)以及指示存儲器裝置100讀取具有第二物理地址的第二平面的頁面的讀取命令(例如,第二讀取命令)。
197.存儲器裝置100可以響應于讀取命令rcmd1而對具有第一物理地址的第一平面的頁面和具有第二物理地址的第二平面的頁面同時執行讀取操作。例如,存儲器裝置100可以對具有第一物理地址的第一平面和具有第二物理地址的第二平面執行多平面讀取操作mp read。
198.當執行多平面讀取操作mp read時,存儲器裝置100可以將第一平面的頁面中存儲的數據和第二平面的頁面中存儲的數據順序地提供到存儲器控制器200。例如,當對第零平面101和第一平面102執行的多平面讀取操作mp read完成時,可以輸出第一平面102的頁面中存儲的數據(data out),并且然后可以輸出第零平面101的頁面中存儲的數據(data out)。例如,通過對第零平面101進行讀取操作來輸出數據的時間和通過對第一平面102進行讀取操作來輸出數據的時間之間可能出現不同的δt。這是因為對從主機400提供的讀取請求的響應出現在后臺操作之前。
199.如上所述,因為讀取命令隊列被重新排列,所以可以減少執行關對于主機400的讀取請求而執行的讀取操作的所有感測操作的次數。因此,可以減少或防止對主機400的讀取請求的響應被延遲的現象,進而可以提高讀取操作的性能。
200.圖18是示出操作存儲器控制器200的方法的實施例的示圖。
201.參照圖18,該方法包括,在s110,存儲器控制器200從主機400接收讀取請求和邏輯地址。
202.在s120,存儲器控制器200生成讀取命令,并且將邏輯地址轉換為物理地址。
203.在s130,存儲器控制器200確定轉換后的物理地址和讀取命令隊列中預先存儲的物理地址是否可組合。如上所述,可以通過確定物理地址的平面編號是否彼此不同以及物理地址的頁面編號是否相同來獲知物理地址是否可組合,通過確定物理地址是否都具有相同的平面編號、相同的塊編號和相同的頁面編號或者通過確定是否使用平面交錯方案來執行讀取操作。
204.在s140,當物理地址可組合時(s130,是),存儲器控制器200通過組合物理地址來重新排列讀取命令隊列。如上所述,通過組合物理地址來重新排列讀取命令隊列可以包括將轉換后的物理地址調度到讀取命令隊列中預先存儲的物理地址的備用列中,使得可以執行多平面讀取操作mp read或單平面讀取操作sp read。
205.在s150,當物理地址不可組合時(s130,否),存儲器控制器200將所生成的讀取命令和轉換后的物理地址存儲在讀取命令隊列中。例如,存儲器控制器200將所生成的讀取命令和轉換后的物理地址存儲在讀取命令隊列中的空的備用列中。這可以與上面描述的相同。
206.在s160,存儲器控制器200可以根據調度順序,將讀取命令隊列中存儲的讀取命令
和物理地址順序地輸出到存儲器裝置100。
207.圖19是示出存儲器控制器200的實施例的示圖,存儲器控制器200可以包括處理器201、ram 202、錯誤校正碼(ecc)電路203、主機接口204、rom 205和閃存接口206。處理器201可以控制存儲器控制器200的全部操作。
208.ram 202可以用作存儲器控制器200的緩沖存儲器、高速緩存存儲器、工作存儲器等。示例性地,ram 202可以是緩沖存儲器。
209.ecc電路203可以生成用于校正從存儲器裝置100接收的數據的失敗位或錯誤位的ecc。ecc電路203可以通過對提供到存儲器裝置100的數據執行ecc編碼來生成添加奇偶校驗位的數據。奇偶校驗位可以被存儲在存儲器裝置100中。ecc電路203可以對從存儲器裝置100輸出的數據執行ecc解碼。
210.ecc電路203可以使用奇偶校驗來校正錯誤。例如,ecc電路203可以通過使用諸如以下的各種編碼調制來校正錯誤:ldpc碼、bch碼、turbo碼、里德-所羅門碼(reed-solomon code)、卷積碼、rsc、tcm和bcm。
211.在編程操作中,ecc電路203可以計算待編程到存儲器裝置100的數據的ecc值。在讀取操作中,ecc電路203可以基于ecc值對從存儲器裝置100讀取的數據執行錯誤校正操作。在失效數據的恢復操作中,ecc電路203可以對從存儲器裝置100恢復的數據執行錯誤校正操作。
212.存儲器控制器200可以通過主機接口204與外部裝置(例如,主機400、應用處理器等)通信。
213.rom 205可以以固件的形式存儲存儲器控制器200的操作的各種信息。
214.存儲器控制器200可以通過閃存接口206與存儲器裝置100通信。存儲器控制器200可以通過閃存接口206將命令cmd、地址addr、控制信號ctrl等傳輸到存儲器裝置100,并且接收數據data。
215.閃存接口206可以包括例如nand接口。
216.圖20是示出存儲卡系統2000的實施例的示圖,存儲卡系統2000可以包括存儲器裝置2100、存儲器控制器2200和連接器2300。
217.存儲器裝置2100可以利用諸如以下的各種非易失性存儲器裝置來實施:電可擦除可編程rom(eeprom)、nand閃速存儲器、nor閃速存儲器、相變ram(pram)、電阻式ram(reram)、鐵電ram(fram)和自旋扭矩轉移磁性ram(stt-mram)。
218.存儲器控制器2200連接到存儲器裝置2100,并且可以訪問存儲器裝置2100。例如,存儲器控制器2200可以控制存儲器裝置2100的讀取操作、寫入操作、擦除操作和后臺操作。存儲器控制器2200提供存儲器裝置2100與主機host之間的接口。存儲器控制器2200可以運行控制存儲器裝置2100的指令(例如,驅動固件)。存儲器控制器2200可以被實施為例如參照圖1描述的存儲器控制器200。
219.存儲器控制器2200可以包括諸如隨機存取存儲器(ram)、處理單元、主機接口、存儲器接口和錯誤校正器的組件。而且,存儲器控制器2200可以通過連接器2300與外部裝置通信。存儲器控制器2200可以根據特定的通信協議與外部裝置(例如,主機400)通信。示例性地,存儲器控制器2200可以通過各種通信協議中的至少一種與外部裝置通信。示例包括通用串行總線(usb)、多媒體卡(mmc)、嵌入式mmc(emmc)、外圍組件互連(pci)、高速pci
(pcie)、高級技術附件(ata)、串行ata(sata)、并行ata(pata)、小型計算機系統接口(scsi)、增強型小型磁盤接口(esdi)、電子集成驅動器(ide)、火線、通用閃存(ufs)、wi-fi、藍牙和nvme。示例性地,連接器2300可以由上述各種通信協議中的至少一種來定義。
220.存儲器裝置2100和存儲器控制器2200可以被集成到單個半導體裝置中以構成存儲卡。存儲卡的示例包括pc卡(個人計算機存儲卡國際協會(pcmcia))、緊湊型閃存(cf)卡、智能媒體卡(sm和smc)、記憶棒、多媒體卡(mmc、rs-mmc、微型mmc和emmc)、sd卡(sd、迷你sd、微型sd和sdhc)以及通用閃存(ufs)。
221.圖21是示出固態驅動器(ssd)系統的實施例的示圖,固態驅動器(ssd)系統可以包括主機400和ssd 3000。ssd 3000通過信號連接器3001與主機400交換信號sig,并且通過電源連接器3002接收電力pwr。
222.ssd 3000可以包括ssd控制器3200,多個閃速存儲器3100_1、3100_2和3100_n,輔助電源3300以及緩沖存儲器3400。根據實施例,ssd控制器3200可以執行與參照圖1描述的存儲器控制器200相同的功能。
223.而且,ssd控制器3200可以響應于從主機400接收的信號sig而控制多個閃速存儲器3100_1、3100_2和3100_n。例如,信號sig可以是基于主機400與ssd 3000之間的接口的信號。例如,信號sig可以是由諸如以下的接口中的至少一種來定義的信號:通用串行總線(usb)、多媒體卡(mmc)、嵌入式mmc(emmc)、外圍組件互連(pci)、高速pci(pcie)、高級技術附件(ata)、串行ata(sata)、并行ata(pata)、小型計算機系統接口(scsi)、增強型小型磁盤接口(esdi)、電子集成驅動器(ide)、火線、通用閃存(ufs)、wi-fi、藍牙和nvme。
224.輔助電源3300通過電源連接器3002連接到主機400。輔助電源3300可以接收從主機400輸入的電力pwr并且可以使用電力pwr來執行充電操作。當來自主機400的電力供應不平穩時,輔助電源3300可以提供ssd 3000的電力。示例性地,輔助電源3300可以位于ssd3000中或者位于ssd 3000的外部。例如,輔助電源3300可以位于主板上,并且將輔助電力提供到ssd 3000。
225.緩沖存儲器3400可以臨時存儲數據。例如,緩沖存儲器3400可以臨時存儲從主機400接收的數據或從多個閃速存儲器3100_1、3100_2和3100_n接收的數據,或者臨時存儲閃速存儲器3100_1、3100_2和3100_n的元數據(例如,映射表)。緩沖存儲器3400可以包括諸如dram、sdram、ddr sdram、lpddr sdram和gram的易失性存儲器,或者諸如fram、reram、stt-mram和pram的非易失性存儲器。
226.圖22是示出用戶系統4000的實施例的示圖,用戶系統4000可以應用到本文描述的存儲裝置的任意實施例。
227.參照圖22,用戶系統4000包括應用處理器4100、存儲器模塊4200、網絡模塊4300、存儲模塊4400和用戶接口4500。應用處理器4100可以驅動用戶系統4000中包括的組件、操作系統(os)、用戶程序等。例如,應用處理器4100可以包括用于控制用戶系統4000中包括的組件的控制器、接口、圖形引擎等。應用處理器4100可以被設置為片上系統(soc)。
228.存儲器模塊4200可以作為用戶系統4000的主存儲器、工作存儲器、緩沖存儲器或高速緩存存儲器而操作。存儲器模塊4200可以包括諸如dram、sdram、ddr sdram、ddr2 sdram、ddr3 sdram、lpddr sdram、lpddr2 sdram和lpddr3 sdram的一個或多個易失性隨機存取存儲器或者諸如pram、reram、mram和fram的一個或多個非易失性隨機存取存儲器。應
用處理器4100和存儲器模塊4200可以通過基于堆疊封裝(pop)來進行封裝而被設置為例如一個半導體封裝。
229.網絡模塊4300可以與外部裝置通信。例如,網絡模塊4300可以支持諸如以下的無線通信:碼分多址(cdma)、全球移動通信系統(gsm)、寬帶cdma(wcdma)、cdma-2000、時分多址(tdma)、長期演進(lte)、wimax、wlan、uwb、藍牙和wi-fi。網絡模塊4300可以包括在例如應用處理器4100中。
230.存儲模塊4400可以存儲數據。例如,存儲模塊4400可以存儲從應用處理器4100接收的數據??蛇x地,存儲模塊4400可以將其中存儲的數據傳輸到應用處理器4100。例如,存儲模塊4400可以利用諸如以下的非易失性半導體存儲器裝置來實施:相變ram(pram)、磁性ram(mram)、電阻式ram(reram)、nand閃存、nor閃存或具有三維結構的nand閃存。示例性地,存儲模塊4400可以被設置為可移動驅動器,諸如用戶系統4000的存儲卡或外部驅動器。
231.例如,存儲模塊4400可以作為例如參照圖1所描述的存儲裝置1000來操作。存儲模塊4400可以包括多個非易失性存儲器裝置,多個非易失性存儲器裝置可以作為參照圖1描述的存儲裝置100進行操作。
232.用戶接口4500可以包括用于向應用處理器4100輸入數據或命令并且/或者向外部裝置輸出數據的一個或多個接口。例如,用戶接口4500可以包括諸如以下的用戶輸入接口:鍵盤、小鍵盤、按鈕、觸摸面板、觸摸屏、觸摸板、觸摸球、攝像機、麥克風、陀螺儀傳感器、振動傳感器和壓電元件。用戶接口4500可以包括諸如以下的用戶輸出接口:液晶顯示器(lcd)、有機發光二極管(oled)顯示裝置、有源矩陣oled(amoled)顯示裝置、led、揚聲器和監視器。
233.根據一個實施例,一種設備包括控制器,該控制器被配置成對第一讀取命令隊列中存儲的信息執行重新排列操作??刂破骼缈梢允歉鶕疚拿枋龅膶嵤├枋龅拿钫{度控制器,并且第一讀取命令隊列也可以根據任意實施例。
234.在操作中,控制器可以運行非暫時性計算機可讀介質中存儲的指令以執行相對于第一讀取命令隊列和第二讀取命令隊列的重新排列操作。例如,控制器可以運行指令以接收與讀取命令相對應的第一物理地址和存儲器裝置的第一平面編號,確定具有第二平面編號的第一讀取命令隊列中的第一物理地址組,并且將信息存儲在第二讀取命令隊列中,該第二讀取命令隊列表示第一讀取命令隊列中存儲的重新排列的信息。重新排列的信息將第一物理地址分組進第一物理地址組中。
235.另外,控制器可以運行指令以調度對包括第一物理地址的第一物理地址組中的物理地址執行讀取操作。在一個實施例中,可以在第一讀取命令隊列和第二讀取命令隊列兩者中都包括的第二物理地址組之前調度第一物理地址組中的第一物理地址。而且,第一平面編號與第二平面編號相等。
236.根據一個或多個實施例,提供了一種能夠提高讀取操作的性能的存儲器控制器,并且還提供了包括這種存儲器控制器的存儲裝置。
237.本文描述的方法、進程和/或操作可以由待由計算機、處理器、控制器或其它信號處理裝置運行的代碼或指令來執行。計算機、處理器、控制器或其它信號處理裝置可以是本文描述的那些或者除了本文描述的元件之外的那些。因為詳細描述了形成該方法(或計算機、處理器、控制器或其它信號處理裝置的操作)的基礎的算法,所以用于實施方法實施例
的操作的代碼或指令可以將計算機、處理器、控制器或其它信號處理裝置轉變為用于執行本文的方法的專用處理器。
238.當至少部分地在軟件中實施時,控制器、處理器、裝置、模塊、調度器、單元、多路復用器、生成器、邏輯、接口、解碼器、驅動器、發生器和其它信號生成和信號處理特征可能包括例如用于存儲待由例如計算機、處理器、微處理器、控制器或其它信號處理裝置運行的代碼或指令的存儲器或其它存儲裝置。計算機、處理器、微處理器、控制器或其它信號處理裝置可以是本文描述的那些或者除了本文描述的元件之外的那些。因為詳細描述了形成該方法(或計算機、處理器、微處理器、控制器或其它信號處理裝置的操作)的基礎的算法,所以用于實施方法實施例的操作的代碼或指令可以將計算機、處理器、控制器或其它信號處理裝置轉變為用于執行本文描述的方法的專用處理器。
239.雖然已經參照本公開的某些示例性實施例示出和描述了本公開,但是本領域技術人員將理解的是,在不脫離由所附權利要求及其等同方案所限定的本公開的精神和范圍的情況下,可以進行形式和細節上的各種改變。因此,本公開的范圍不應限于上述示例性實施例,而是應當不僅由所附權利要求書確定而且還應由其等同方案確定。
240.在上述實施例中,可以選擇性地執行所有步驟或可以省略部分步驟。在每個實施例中,這些步驟不一定按照所描述的次序執行,并且可以重新排列。在本說明書中的實施例和附圖僅是便于對本公開的理解的示例,并且本公開不限于此。也就是說,對于本領域技術人員應當顯而易見的是,可以基于本公開的技術范圍進行各種修改。
241.同時,已經在附圖和說明書中描述了本公開的示例性實施例。雖然本文使用了特定術語,但是這些僅是為了解釋本公開的實施例。因此,本公開不限于上述實施例,并且在本公開的精神和范圍內可以有許多變型。對于本領域技術人員應當顯而易見的是,除了本文公開的實施例之外,還可以基于本公開的技術范圍進行各種修改??梢越M合實施例以形成附加的實施例。

技術特征:


1.一種存儲器控制器,包括:命令存儲器件,包括第一讀取命令隊列和第二讀取命令隊列,所述第一讀取命令隊列基于索引編號存儲讀取命令和與所述讀取命令相對應的物理地址,其中所述讀取命令指示包括多個存儲塊的存儲器裝置讀取所述存儲器裝置中存儲的數據,并且其中所述物理地址中的每一個與平面編號、塊編號和頁面編號相對應;命令生成控制器,響應于讀取請求而生成第一讀取命令,將邏輯地址轉換為第一物理地址,并將所述第一讀取命令和所述第一物理地址存儲在所述第一讀取命令隊列中;以及命令調度控制器,響應于來自所述命令生成控制器的調度事件信號而搜索第一物理地址組,所述第一物理地址組包括至少一個第二物理地址和所述第一物理地址,所述第二物理地址包括與所述第一讀取命令隊列中存儲的物理地址相對應的頁面編碼,其中所述命令調度控制器將第二物理地址組和所述第一物理地址組順序地調度到所述第二讀取命令隊列的連續索引編號中,所述第二物理地址組包括至少一個物理地址,所述第二物理地址組的至少一個物理地址的平面編號與所述第一讀取命令隊列中存儲的所述第一物理地址組的平面編號不同。2.根據權利要求1所述的存儲器控制器,其中所述命令生成控制器:將擦除命令提供到所述存儲器裝置,所述擦除命令指示所述存儲器裝置執行擦除操作,所述擦除操作包括擦除所述多個存儲塊中的一個存儲塊中存儲的數據,將暫停命令提供到所述存儲器裝置,所述暫停命令指示所述存儲器裝置響應于請求而暫停擦除操作,將恢復命令提供到所述存儲器裝置,所述恢復命令指示所述存儲器裝置在與所述請求相對應的操作結束之后恢復所述擦除操作,并且在輸出所述恢復命令后,將所述調度事件信號提供到所述命令調度控制器。3.根據權利要求1所述的存儲器控制器,其中所述命令生成控制器:將命令提供到所述存儲器裝置,所述命令指示所述存儲器裝置執行擦除操作或者執行寫入操作,所述擦除操作包括擦除所述多個存儲塊中的一個存儲塊中存儲的數據,所述寫入操作包括將數據存儲在所述多個存儲塊中的一個存儲塊中,并且在從將所述命令提供到所述存儲器裝置時起經過預定的時段之后,將所述調度事件信號提供到所述命令調度控制器。4.根據權利要求1所述的存儲器控制器,其中所述第一物理地址和所述至少一個第二物理地址具有相同的平面編號和相同的塊編號。5.根據權利要求4所述的存儲器控制器,其中所述命令調度控制器將所述第一讀取命令和所述第一物理地址組調度到所述第二讀取命令隊列的一個索引編號中。6.根據權利要求1所述的存儲器控制器,其中所述第一物理地址與所述至少一個第二物理地址具有不同的平面編號。7.根據權利要求6所述的存儲器控制器,其中所述命令調度控制器將所述第一讀取命令、與所述至少一個第二物理地址相對應的至少一個第二讀取命令和所述第一物理地址組調度到所述第二讀取命令隊列的一個索引編號中。8.一種存儲器控制器,包括:命令存儲器件,包括第一讀取命令隊列、第二讀取命令隊列和第三讀取命令隊列,其中
所述第一讀取命令隊列存儲第一物理地址和第一讀取命令,所述第一讀取命令指示存儲器裝置在執行后臺操作的同時執行讀取操作,并且其中所述第一物理地址與第一平面編號、第一塊編號和第一頁面編號相對應;命令生成控制器,響應于在執行所述后臺操作的同時提供的讀取請求,將邏輯地址轉換為第二物理地址,并且生成指示所述存儲器裝置讀取所述存儲器裝置中存儲的數據的第二讀取命令,并且將所述第二讀取命令和所述第二物理地址存儲在所述第二讀取命令隊列中,其中所述第二物理地址與第二平面編號、第二塊編號和第二頁面編號相對應;以及命令調度控制器,根據所述第一頁面編號是否與所述第二頁面編號相等來將所述第一物理地址、所述第二物理地址和所述第二讀取命令調度到所述第三讀取命令隊列中。9.根據權利要求8所述的存儲器控制器,其中所述第一平面編號與所述第二平面編號相等,所述第一塊編號與所述第二塊編號相等,并且所述命令調度控制器將所述第一物理地址、所述第二物理地址和所述第二讀取命令調度到所述第三讀取命令隊列的第一優先級索引編號中。10.根據權利要求9所述的存儲器控制器,其中所述第一平面編號與所述第二平面編號不同,并且所述命令調度控制器將所述第一讀取命令、所述第一物理地址、所述第二物理地址和所述第二讀取命令調度到所述第三讀取命令隊列的第一優先級索引編號中。11.一種存儲裝置,包括:存儲器裝置,包括多個平面;以及存儲器控制器,響應于讀取請求而將第一讀取命令和第一物理地址存儲在第一讀取命令隊列中,所述第一讀取命令指示所述存儲器裝置執行讀取操作,所述讀取操作包括通過使用映射到邏輯地址的所述第一物理地址來讀取所述存儲器裝置中存儲的數據,其中所述存儲器控制器進一步根據調度順序來將所述第一讀取命令隊列中存儲的讀取命令和物理地址順序地提供到所述存儲器裝置,并且其中每個物理地址包括平面編號、塊編號和頁面編號,并且當調度到所述第一讀取命令隊列的索引編號之中的第一優先級索引編號中的第二物理地址的頁面編號與所述第一物理地址的頁面編號相等時,所述存儲器控制器將所述第一物理地址調度到所述第一優先級索引編號中。12.根據權利要求11所述的存儲裝置,其中所述第一物理地址和所述第二物理地址是具有相同平面編號、相同塊編號和相同頁面編號的物理地址,并且所述存儲器控制器將所述第一物理地址調度到所述第一優先級索引編號中。13.根據權利要求12所述的存儲裝置,其中所述存儲器裝置:響應于與所述第二物理地址相對應的第二讀取命令,對具有所述第一物理地址和所述第二物理地址的單個平面的頁面執行讀取操作;并且將所述單個平面的頁面中存儲的數據提供到所述存儲器控制器。14.根據權利要求11所述的存儲裝置,其中所述第一物理地址和所述第二物理地址具有不同的平面編號和相同的頁面編號,并且
所述存儲器控制器將所述第一讀取命令和所述第一物理地址調度到所述第一優先級索引編號中。15.根據權利要求14所述的存儲裝置,其中所述存儲器裝置:響應于與第二物理地址相對應的所述第二讀取命令和所述第一讀取命令而同時對具有所述第一物理地址的第一平面的頁面和具有所述第二物理地址的第二平面的頁面執行讀取操作;并且將所述第一平面的頁面中存儲的數據和所述第二平面的頁面中存儲的數據順序地提供到所述存儲器控制器。16.根據權利要求11所述的存儲裝置,其中當所述第一物理地址的頁面編碼與所述第二物理地址的頁面編碼不同時,所述存儲器控制器將在所述第一讀取命令隊列中存儲的讀取命令和物理地址之后輸出的所述第一讀取命令和所述第一物理地址調度到索引編號中。17.根據權利要求16所述的存儲裝置,其中所述存儲器裝置:響應于與所述第二物理地址相對應的所述第二讀取命令,對具有所述第二物理地址的平面的頁面執行讀取操作;并且在對具有所述第二物理地址的平面的讀取操作完成之后,響應于所述第一讀取命令而對具有所述第一物理地址的平面的頁面執行讀取操作。18.根據權利要求16所述的存儲裝置,其中所述存儲器控制器:響應于調度事件的發生,在所述第一讀取命令隊列中存儲的物理地址和所述第一物理地址之中搜索包括所有具有不同平面編號的所有物理地址的物理地址組;并且將在所述第一讀取命令隊列中存儲的物理地址之中除了所述物理地址組之外的其它物理地址以及所述第一物理地址、所述物理地址組和讀取命令順序地調度到第二讀取命令隊列的連續索引編號中。19.根據權利要求18所述的存儲裝置,其中所述存儲器裝置響應于與所述物理地址組相對應的讀取命令對多個平面順序地執行讀取操作,并且所述讀取操作彼此部分重疊。20.根據權利要求19所述的存儲裝置,其中所述存儲器裝置將從每個平面輸出的數據順序地提供到所述存儲器控制器。

技術總結


本發明提供了一種存儲器控制器和包括存儲器控制器的存儲裝置。存儲器控制器包括:命令存儲器件,包括第一讀取命令隊列和第二讀取命令隊列;命令生成控制器,用于將響應于讀取請求而生成的第一讀取命令和第一物理地址存儲在第一讀取命令隊列中;命令調度控制器,用于響應于從命令生成控制器提供的調度事件信號而搜索第一物理地址組,第一物理地址組包括至少一個第二物理地址和第一物理地址,第二物理地址包括與第一讀取命令隊列中存儲的物理地址之中的物理地址的平面編號相等的平面編號。號。號。


技術研發人員:

羅充彥

受保護的技術使用者:

愛思開海力士有限公司

技術研發日:

2021.08.05

技術公布日:

2022/6/21


文章投稿或轉載聲明

本文鏈接:http://m.newhan.cn/zhuanli/patent-1-52924-0.html

來源:專利查詢檢索下載-實用文體寫作網版權所有,轉載請保留出處。本站文章發布于 2022-12-21 00:52:21

發表評論

驗證碼:
用戶名: 密碼: 匿名發表
評論列表 (有 條評論
2人圍觀
參與討論