專利名稱:數(shù)據(jù)儲存裝置、控制器及于次等級存儲器存取數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲器的數(shù)據(jù)存取技術(shù)領(lǐng)域,更具體地說,涉及一種數(shù)據(jù)儲存裝置、控 制器以及于有關(guān)于次等級(downgrade)存儲器的數(shù)據(jù)存取的方法。
背景技術(shù):
存儲器可分為正常存儲器與次等級存儲器。存儲器包括多個記憶單元以供儲存數(shù) 據(jù)。當生產(chǎn)制造商要將存儲器出貨前,必須先經(jīng)過生產(chǎn)測試以驗證存儲器的記憶單元是否 可正確地儲存數(shù)據(jù)。若存儲器經(jīng)過測試而無法正確地儲存數(shù)據(jù),則生產(chǎn)制造商會將無法通 過測試的存儲器歸類為次等級存儲器,并以低價出售次等級存儲器。亦即,由于半導體生產(chǎn) 過程上的誤差,導致次等級存儲器包括有缺陷的記憶單元,而該等有缺陷的記憶單元無法 正常的儲存數(shù)據(jù)。圖IA為次等級存儲器一區(qū)塊150的示意圖。次等級存儲器包括多個區(qū)塊(block), 其中區(qū)塊150包括多個頁(page),每一頁又區(qū)分為多個扇區(qū)(sector),每一扇區(qū)包括多個 記憶單元以儲存數(shù)據(jù)。于圖IA中可見,第0頁的第1扇區(qū)包括一有缺陷的記憶單元161,第 1頁的第2扇區(qū)包括一有缺陷的記憶單元162,第2頁的第0扇區(qū)包括一有缺陷的記憶單元 163。由于區(qū)塊150包括多個有缺陷的記憶單元,因此次等級存儲器的習知控制器會將區(qū)塊 150標記為一缺陷區(qū)塊,進而不使用該缺陷區(qū)塊150供儲存數(shù)據(jù)。這樣便可避免使用區(qū)塊 150時發(fā)生無法正確地儲存數(shù)據(jù)的結(jié)果。然而,由于區(qū)塊150包含多個記憶單元均可正常運作,僅記憶單元161、162、163無 法正常儲存數(shù)據(jù),若采用習知控制器的做法直接不使用整個區(qū)塊150,將造成存儲器儲存空 間的浪費。因此,需要一種于次等級存儲器存取數(shù)據(jù)的方法,可以利用區(qū)塊中其它正常運作 的記憶單元供數(shù)據(jù)儲存,以增加存儲器可運用的儲存空間。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述缺陷,提供一種數(shù)據(jù)儲存裝 置、控制器以及于有關(guān)于次等級存儲器的數(shù)據(jù)存取的方法數(shù)據(jù)儲存裝置,以解決習知技術(shù) 存在的問題。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案之一是構(gòu)造一種數(shù)據(jù)儲存裝置,耦接 至一主機,其包括一次等級(downgrade)存儲器以及一控制器。該次等級存儲器包括多個 區(qū)塊(block),每一該等區(qū)塊包括多個頁(page),每一該等頁包括多個扇區(qū)(sector),其中 部分該等區(qū)塊的部分缺陷扇區(qū)包括有缺陷的記憶單元。該控制器產(chǎn)生一缺陷狀態(tài)表以紀錄 該次等級存儲器的該等區(qū)塊的所有該等缺陷扇區(qū)的位置,自該主機接收欲寫入該次等級存 儲器的多個扇區(qū)數(shù)據(jù),依據(jù)該缺陷狀態(tài)表決定供儲存該等扇區(qū)數(shù)據(jù)的多個實體扇區(qū)地址, 以及依據(jù)該等實體扇區(qū)地址向該次等級存儲器發(fā)送一至多個寫入命令以將該等扇區(qū)數(shù)據(jù) 寫入該次等級存儲器的該等實體扇區(qū)地址。進一步地,上述本發(fā)明所述的數(shù)據(jù)儲存裝置,其中該控制器自該次等級存儲器取得尚未儲存數(shù)據(jù)的多個空實體扇區(qū)地址,依據(jù)該缺陷狀態(tài)表檢查該等空實體扇區(qū)地址是否 與該等缺陷扇區(qū)的位置相符合,以及若該等空實體扇區(qū)地址與該等缺陷扇區(qū)的位置不相符 合,決定該等實體扇區(qū)地址為該等實體扇區(qū)地址,以決定該等實體扇區(qū)地址。進一步地,上述本發(fā)明所述的數(shù)據(jù)儲存裝置,其中該控制器自該次等級存儲器的 該等區(qū)塊選取一待測區(qū)塊,將一預定數(shù)據(jù)寫入該待測區(qū)塊,讀取該待測區(qū)塊以得到一讀出 數(shù)據(jù),若該預定數(shù)據(jù)與該讀出數(shù)據(jù)不相符時比對該預定數(shù)據(jù)與該讀出數(shù)據(jù)的不相符部分以 決定該待測區(qū)塊的該等缺陷扇區(qū)的位置,于該缺陷狀態(tài)表中紀錄該待測區(qū)塊的該等缺陷扇 區(qū)的位置,并重復待測區(qū)塊的選取步驟至缺陷扇區(qū)的位置的紀錄步驟直至所有該等區(qū)塊均 已被選取為待測區(qū)塊為止,以產(chǎn)生該缺陷狀態(tài)表。進一步地,上述本發(fā)明所述的數(shù)據(jù)儲存裝置,其中該控制器自該主機接收對應于 該等扇區(qū)數(shù)據(jù)的起始地址的一寫入邏輯地址,依據(jù)該寫入邏輯地址決定分別對應于該等扇 區(qū)數(shù)據(jù)的多個邏輯扇區(qū)地址,于該等扇區(qū)數(shù)據(jù)寫入該等實體扇區(qū)地址后于一地址鏈結(jié)表中 紀錄該等邏輯扇區(qū)地址與該等實體扇區(qū)地址的對應關(guān)系。進一步地,上述本發(fā)明所述的數(shù)據(jù)儲存裝置,其中當該控制器自該主機接收到欲 讀取的一讀取邏輯地址時,該控制器依據(jù)該地址鏈結(jié)表找出對應于該讀取邏輯地址的一至 多個讀取實體扇區(qū)地址,并依據(jù)該等讀取實體扇區(qū)地址向該次等級存儲器發(fā)送一至多個讀 取命令以將自該次等級存儲器讀出對應于該讀取邏輯地址的數(shù)據(jù)。進一步地,上述本發(fā)明所述的數(shù)據(jù)儲存裝置,其中該等寫入命令為序號為0x80的 隨機寫入命令。進一步地,上述本發(fā)明所述的數(shù)據(jù)儲存裝置,其中該次等級存儲器為閃存。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案之二是構(gòu)造一種于次等級存儲器存取 數(shù)據(jù)的方法,該次等級存儲器包括多個區(qū)塊(block),每一該等區(qū)塊包括多個頁(page),每 一該等頁包括多個扇區(qū)(sector),其中部分該等區(qū)塊的部分缺陷扇區(qū)包括有缺陷的記憶單 元。首先,產(chǎn)生一缺陷狀態(tài)表以紀錄該次等級存儲器的該等區(qū)塊的所有該等缺陷扇區(qū)的位 置;接著,自一主機接收欲寫入該次等級存儲器的多個扇區(qū)數(shù)據(jù);接著,依據(jù)該缺陷狀態(tài)表 決定供儲存該等扇區(qū)數(shù)據(jù)的多個實體扇區(qū)地址;最后,依據(jù)該等實體扇區(qū)地址向該次等級 存儲器發(fā)送一至多個寫入命令以將該等扇區(qū)數(shù)據(jù)寫入該次等級存儲器的該等實體扇區(qū)地 址。進一步地,上述本發(fā)明所述的于次等級存儲器存取數(shù)據(jù)的方法,其中該等實體扇 區(qū)地址的決定包括自該次等級存儲器取得尚未儲存數(shù)據(jù)的多個空實體扇區(qū)地址;依據(jù)該缺陷狀態(tài)表檢查該等空實體扇區(qū)地址是否與該等缺陷扇區(qū)的位置相符合; 以及若該等空實體扇區(qū)地址與該等缺陷扇區(qū)的位置不相符合,決定該等實體扇區(qū)地址 為該等實體扇區(qū)地址。進一步地,上述本發(fā)明所述的于次等級存儲器存取數(shù)據(jù)的方法,其中該缺陷狀態(tài) 表的產(chǎn)生包括自該次等級存儲器的該等區(qū)塊選取一待測區(qū)塊;將一預定數(shù)據(jù)寫入該待測區(qū)塊;
讀取該待測區(qū)塊以得到一讀出數(shù)據(jù);若該預定數(shù)據(jù)與該讀出數(shù)據(jù)不相符時,比對該預定數(shù)據(jù)與該讀出數(shù)據(jù)的不相符部 分,以決定該待測區(qū)塊的該等缺陷扇區(qū)的位置;于該缺陷狀態(tài)表中紀錄該待測區(qū)塊的該等缺陷扇區(qū)的位置;以及重復待測區(qū)塊的選取步驟至缺陷扇區(qū)的位置的紀錄步驟,直至所有該等區(qū)塊均已 被選取為待測區(qū)塊為止。進一步地,上述本發(fā)明所述的于次等級存儲器存取數(shù)據(jù)的方法,其中該方法更包 括自該主機接收對應于該等扇區(qū)數(shù)據(jù)的起始地址的一寫入邏輯地址;依據(jù)該寫入邏輯地址決定分別對應于該等扇區(qū)數(shù)據(jù)的多個邏輯扇區(qū)地址;以及于該等扇區(qū)數(shù)據(jù)寫入該等實體扇區(qū)地址后,于一地址鏈結(jié)表中紀錄該等邏輯扇區(qū) 地址與該等實體扇區(qū)地址的對應關(guān)系。進一步地,上述本發(fā)明所述的于次等級存儲器存取數(shù)據(jù)的方法,其中該方法更包 括當自該主機接收到欲讀取的一讀取邏輯地址時,依據(jù)該地址鏈結(jié)表找出對應于該 讀取邏輯地址的一至多個讀取實體扇區(qū)地址;以及依據(jù)該等讀取實體扇區(qū)地址向該次等級存儲器發(fā)送一至多個讀取命令,以將自該 次等級存儲器讀出對應于該讀取邏輯地址的數(shù)據(jù)。進一步地,上述本發(fā)明所述的于次等級存儲器存取數(shù)據(jù)的方法,其中該等寫入命 令為序號為0x80的隨機寫入命令。進一步地,上述本發(fā)明所述的于次等級存儲器存取數(shù)據(jù)的方法,其中該次等級存 儲器為閃存。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案之三是構(gòu)造一種控制器,耦接至一次 等級(downgrade)存儲器,其中該次等級存儲器包括多個區(qū)塊(block),每一該等區(qū)塊包括 多個頁(page),每一該等頁包括多個扇區(qū)(sector),其中部分該等區(qū)塊的部分缺陷扇區(qū)包 括有缺陷的記憶單元。該控制器包括一控制電路以及一存儲器。該控制電路產(chǎn)生一缺陷狀 態(tài)表以紀錄該次等級存儲器的該等區(qū)塊的所有該等缺陷扇區(qū)的位置,自一主機接收欲寫入 該次等級存儲器的多個扇區(qū)數(shù)據(jù),依據(jù)該缺陷狀態(tài)表決定供儲存該等扇區(qū)數(shù)據(jù)的多個實體 扇區(qū)地址,以及依據(jù)該等實體扇區(qū)地址向該次等級存儲器發(fā)送一至多個寫入命令以將該等 扇區(qū)數(shù)據(jù)寫入該次等級存儲器的該等實體扇區(qū)地址。該存儲器儲存該缺陷狀態(tài)表。進一步地,上述本發(fā)明所述的控制器,其中該控制電路自該次等級存儲器取得尚 未儲存數(shù)據(jù)的多個空實體扇區(qū)地址,依據(jù)該缺陷狀態(tài)表檢查該等空實體扇區(qū)地址是否與該 等缺陷扇區(qū)的位置相符合,以及若該等空實體扇區(qū)地址與該等缺陷扇區(qū)的位置不相符合, 決定該等實體扇區(qū)地址為該等實體扇區(qū)地址,以決定該等實體扇區(qū)地址。進一步地,上述本發(fā)明所述的控制器,其中該控制電路自該次等級存儲器的該等 區(qū)塊選取一待測區(qū)塊,將一預定數(shù)據(jù)寫入該待測區(qū)塊,讀取該待測區(qū)塊以得到一讀出數(shù)據(jù), 若該預定數(shù)據(jù)與該讀出數(shù)據(jù)不相符時比對該預定數(shù)據(jù)與該讀出數(shù)據(jù)的不相符部分以決定 該待測區(qū)塊的該等缺陷扇區(qū)的位置,于該缺陷狀態(tài)表中紀錄該待測區(qū)塊的該等缺陷扇區(qū)的 位置,并重復待測區(qū)塊的選取步驟至缺陷扇區(qū)的位置的紀錄步驟直至所有該等區(qū)塊均已被選取為待測區(qū)塊為止,以產(chǎn)生該缺陷狀態(tài)表。進一步地,上述本發(fā)明所述的控制器,其中該控制電路自該主機接收對應于該等 扇區(qū)數(shù)據(jù)的起始地址的一寫入邏輯地址,依據(jù)該寫入邏輯地址決定分別對應于該等扇區(qū)數(shù) 據(jù)的多個邏輯扇區(qū)地址,于該等扇區(qū)數(shù)據(jù)寫入該等實體扇區(qū)地址后于一地址鏈結(jié)表中紀錄 該等邏輯扇區(qū)地址與該等實體扇區(qū)地址的對應關(guān)系。進一步地,上述本發(fā)明所述的控制器,其中當該控制電路自該主機接收到欲讀取 的一讀取邏輯地址時,該控制電路依據(jù)該地址鏈結(jié)表找出對應于該讀取邏輯地址的一至多 個讀取實體扇區(qū)地址,并依據(jù)該等讀取實體扇區(qū)地址向該次等級存儲器發(fā)送一至多個讀取 命令以將自該次等級存儲器讀出對應于該讀取邏輯地址的數(shù)據(jù)。進一步地,上述本發(fā)明所述的控制器,其中該等寫入命令為序號為0x80的隨機寫 入命令。實施本發(fā)明的技術(shù)方案,具有以下有益效果本發(fā)明更加有效地運用次等級存儲 器的數(shù)據(jù)儲存空間。另外,本發(fā)明的于次等級存儲器存取數(shù)據(jù)的方法,利用區(qū)塊中的其它正常運作的 記憶單元供數(shù)據(jù)儲存,以增加次等級存儲器可運用的儲存空間。
下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中圖IA為次等級存儲器一區(qū)塊的示意圖;圖IB為本發(fā)明的數(shù)據(jù)儲存系統(tǒng)的區(qū)塊圖;圖2為本發(fā)明的產(chǎn)生一缺陷狀態(tài)表的方法的流程圖;圖3為對應于圖IA的次等級存儲器的區(qū)塊的缺陷狀態(tài)表的一實施例;圖4為本發(fā)明的將數(shù)據(jù)寫入次等級存儲器的方法的流程圖;圖5A為本發(fā)明的隨機寫入命令的格式的范例;圖5B為一般寫入命令的格式的范例;圖6為次等級存儲器的一區(qū)塊的一實施例;圖7為本發(fā)明的地址鏈結(jié)表的一實施例。在圖中,150為次等級存儲器的區(qū)塊;161、162、163為有缺陷的記憶單元;100為數(shù) 據(jù)儲存系統(tǒng);102為主機;108為數(shù)據(jù)儲存裝置;104為控制器;106為次等級存儲器;122為 控制電路;1 為存儲器;111-11N為區(qū)塊;700為地址鏈結(jié)表。
具體實施例方式圖IB為本發(fā)明的數(shù)據(jù)儲存系統(tǒng)100的區(qū)塊圖。數(shù)據(jù)儲存系統(tǒng)100包括主機102 及數(shù)據(jù)儲存裝置108。數(shù)據(jù)儲存裝置108為主機102儲存數(shù)據(jù)。于一實施例中,數(shù)據(jù)儲存裝 置108包括控制器104及次等級(downgrade)存儲器106。次等級存儲器106包括多個區(qū) 塊(block) 111 11N,每一區(qū)塊包括多個頁(page),每一頁包括多個扇區(qū)(sector),每一扇 區(qū)包括多個記憶單元。次等級存儲器106的部分區(qū)塊的部分缺陷扇區(qū)包括有缺陷的記憶單 元,該等有缺陷的記憶單元無法正常地儲存數(shù)據(jù)。于一實施例中,該次等級存儲器為一閃存 (flash memory)。控制器104耦接至主機102,依據(jù)主機102的指令存取次等級存儲器106的數(shù)據(jù)。于一實施例中,控制器104包括一控制電路112以及一存儲器114??刂齐娐?12 為控制器104的主體電路,而存儲器114為控制電路112儲存數(shù)據(jù)。于一實施例中,控制器104對次等級存儲器106的所有區(qū)塊111 IlN進行一測試 程序,以辨別區(qū)塊111 IlN的哪些扇區(qū)包括有缺陷的記憶單元,并于一缺陷狀態(tài)表中紀錄 包括有缺陷的記憶單元的該等缺陷扇區(qū)的位置。于一實施例中,該缺陷狀態(tài)表儲存于存儲 器114中。接著,當主機102要求控制器104將數(shù)據(jù)寫入次等級存儲器106時,控制器104 便自次等級存儲器106取得尚未儲存數(shù)據(jù)的多個扇區(qū)的實體扇區(qū)地址,再依據(jù)缺陷狀態(tài)表 決定是否該等實體扇區(qū)地址與缺陷扇區(qū)的位置相符合。若該等實體扇區(qū)地址與缺陷扇區(qū)的 位置不相符合,控制器104便可將數(shù)據(jù)寫入次等級存儲器106的該等實體扇區(qū)地址,以避開 缺陷扇區(qū)。即使次等級存儲器106的一區(qū)塊包含數(shù)個缺陷扇區(qū),控制器104仍可依據(jù)缺陷 狀態(tài)表有效地利用該區(qū)塊的其它正常扇區(qū)以供儲存數(shù)據(jù)。因此,相較于習知控制器,本發(fā)明 的控制器104更加有效地運用次等級存儲器106的數(shù)據(jù)儲存空間。圖2為本發(fā)明的產(chǎn)生一缺陷狀態(tài)表的方法200的流程圖??刂破?04依據(jù)方法 200對次等級存儲器106的區(qū)塊111 IlN實施一測試程序,以產(chǎn)生缺陷狀態(tài)表。首先,控 制器104自次等級存儲器106的區(qū)塊111 IlN中選取一待測區(qū)塊(步驟20 。接著,控 制器104將一預定數(shù)據(jù)寫入待測區(qū)塊所包含的所有頁(步驟204)。接著,控制器104自待 測區(qū)塊所包含的多個頁選取一待測頁(步驟206)。接著,控制器104讀取該待測頁以得到 一讀出數(shù)據(jù)(步驟208)。接著,控制器104比較該讀出數(shù)據(jù)是否與預定數(shù)據(jù)相符合(步驟 210)。若該讀出數(shù)據(jù)與預定數(shù)據(jù)相符合,表示待測頁并未包含無法正常儲存數(shù)據(jù)的缺陷 扇區(qū)。若該讀出數(shù)據(jù)與預定數(shù)據(jù)不相符合,表示待測頁包含無法正常儲存數(shù)據(jù)的缺陷扇區(qū), 則控制器104依據(jù)讀出數(shù)據(jù)與預定數(shù)據(jù)的不符部份決定該待測頁的一至數(shù)個缺陷扇區(qū)(步 驟212),并于一缺陷狀態(tài)表中紀錄該等缺陷扇區(qū)的位置(步驟214)。此時,若待測區(qū)塊的 所有頁尚未均被選取為待測頁(步驟216),則控制器104重新選取一待測頁(步驟206), 并重新執(zhí)行步驟208 216。若待測區(qū)塊的所有頁已均被選取為待測頁(步驟216),則控 制器104自次等級存儲器106的區(qū)塊111 IlN重新選取一待測區(qū)塊(步驟20 ,并重復 執(zhí)行步驟204 216,直到次等級存儲器106的區(qū)塊111 IlN均已被選取為待測區(qū)塊進行 測試為止(步驟218)。圖3為對應于圖IA的次等級存儲器的區(qū)塊150的缺陷狀態(tài)表的一實施例。如圖 IA所示,區(qū)塊150的第0頁的第1扇區(qū)包括一有缺陷的記憶單元161,第1頁的第2扇區(qū)包 括一有缺陷的記憶單元162,第2頁的第0扇區(qū)包括一有缺陷的記憶單元163。因此,于控 制器104實行方法200時,區(qū)塊150的第0頁的第1扇區(qū)、第1頁的第2扇區(qū)、第2頁的第0 扇區(qū)的讀出數(shù)據(jù)會與預定數(shù)據(jù)不相符合??刂破?04便于區(qū)塊150的第0頁的第1扇區(qū)、 第1頁的第2扇區(qū)、第2頁的第0扇區(qū)所對應的缺陷狀態(tài)表字段標示該等扇區(qū)為缺陷扇區(qū)。 當控制器104對區(qū)塊150寫入數(shù)據(jù)時,控制器104便可依據(jù)缺陷狀態(tài)表避免缺陷扇區(qū)被寫 入數(shù)據(jù)。圖4為本發(fā)明的將數(shù)據(jù)寫入次等級存儲器106的方法400的流程圖??刂破?04 依據(jù)方法400將數(shù)據(jù)寫入次等級存儲器106。首先,控制器104自主機102接收一寫入邏輯 地址及欲寫入次等級存儲器106的多個扇區(qū)數(shù)據(jù)(步驟40 。接著,控制器104依據(jù)該寫入邏輯地址決定分別對應于該等扇區(qū)數(shù)據(jù)的多個邏輯扇區(qū)地址(步驟404)。接著,控制器 104依據(jù)一缺陷狀態(tài)表決定供儲存該等扇區(qū)數(shù)據(jù)的多個實體扇區(qū)地址(步驟406)。于一實 施例中,控制器104自次等級存儲器106取得尚未儲存數(shù)據(jù)的多個實體扇區(qū)地址,接著依據(jù) 缺陷狀態(tài)表檢查該等實體扇區(qū)地址是否與缺陷扇區(qū)的位置相符合。若該等實體扇區(qū)地址與 缺陷扇區(qū)的位置不相符合,則控制器104決定該等實體扇區(qū)地址可用以儲存自主機102接 收的該等扇區(qū)數(shù)據(jù)。接著,控制器104發(fā)送多個寫入命令至次等級存儲器106,以將該等扇區(qū)數(shù)據(jù)依序 寫入該等實體扇區(qū)地址(步驟408)。于一實施例中,控制器104依據(jù)該等實體扇區(qū)地址向 次等級存儲器106發(fā)送多個序號為0x80的隨機寫入(random write)命令,以將該等扇區(qū) 數(shù)據(jù)依序?qū)懭朐摰葘嶓w扇區(qū)地址。接著,控制器104于一地址鏈結(jié)表中紀錄該等扇區(qū)數(shù)據(jù) 的該等邏輯扇區(qū)地址與該等實體扇區(qū)地址的對應關(guān)系(步驟410)。地址鏈結(jié)表將以圖7的 后續(xù)段落進行說明。最后,若主機102繼續(xù)向控制器104發(fā)送新寫入命令,則控制器104重 新自主機102接收寫入邏輯地址及欲寫入次等級存儲器106的多個扇區(qū)數(shù)據(jù)(步驟402), 并執(zhí)行步驟404 410,直到主機102不再發(fā)送寫入命令為止。圖5A為本發(fā)明的隨機寫入命令的格式的范例。假設(shè)控制器104欲將三個(512+16) 字節(jié)的扇區(qū)數(shù)據(jù)寫入一目標頁的三個目標扇區(qū)SX、SY、SZ,而該目標頁的列地址為CAl與 CA2,該目標頁的行地址為RA1、RA2、與RA3。該三個目標扇區(qū)的行地址分別為CAlSX與 CA2SX、CAlSY與CA2SY、CAlSZ與CA2SZ。首先,控制器104向次等級存儲器106發(fā)送0x80 寫入命令以及目標頁的列地址CA1、CA2與行地址RA1、RA2、RA3。接著,控制器104依序向 次等級存儲器106發(fā)送0x85隨機寫入命令、目標扇區(qū)SX的地址CAlSX與CA2SX、以及扇區(qū) 數(shù)據(jù)DSX,以使次等級存儲器106將扇區(qū)數(shù)據(jù)DSX寫入目標扇區(qū)SX。接著,控制器104依序向次等級存儲器106發(fā)送0x85隨機寫入命令、目標扇區(qū)SY 的地址CAlSY與CA2SY、以及扇區(qū)數(shù)據(jù)DSY,以使次等級存儲器106將扇區(qū)數(shù)據(jù)DSY寫入目 標扇區(qū)SY。接著,控制器104依序向次等級存儲器106發(fā)送0x85隨機寫入命令、目標扇區(qū) SZ的地址CAlSZ與CA2SZ、以及扇區(qū)數(shù)據(jù)DSZ,以使次等級存儲器106將扇區(qū)數(shù)據(jù)DSZ寫入 目標扇區(qū)I最后,控制器104向次等級存儲器106傳送0x10指令,以表示寫入命令傳送 完畢。圖5B為一般寫入命令的格式的范例??刂破饕佬虬l(fā)送0x80命令、目標頁的列地址 CAU CA2、行地址RA1、RA2、RA3、數(shù)據(jù)D、以及0x10命令,以將數(shù)據(jù)D寫入目標頁。圖5B為 一般寫入命令的格式明顯地與圖5A為隨機寫入命令的格式不相同。圖6為次等級存儲器106的一區(qū)塊X的一實施例。假使區(qū)塊X的第0頁的第2扇 區(qū)、第1頁的第1扇區(qū)及第2扇區(qū)、第2頁的第3扇區(qū)、以及第3頁的第0扇區(qū)為缺陷扇區(qū)。 假使控制器104自主機102接收到邏輯扇區(qū)地址分別為K、K+l、K+2、K+3、K+4、K+5的六個 扇區(qū)數(shù)據(jù)Dl、D2、D3、D4、D5、D6以供寫入次等級存儲器106??刂破?04于是依據(jù)一缺陷 狀態(tài)表以自區(qū)塊X的開頭選取第0頁的第0扇區(qū)、第1扇區(qū)、第3扇區(qū),第1頁的第0扇區(qū)、 第3扇區(qū),以及第2頁的第0扇區(qū)以分別儲存其所收到的六個扇區(qū)數(shù)據(jù)。接著,控制器104 首先向次等級存儲器106依序發(fā)送0x80命令、區(qū)塊X的第0頁的實體地址、0x85命令、第0 頁的第0扇區(qū)的實體地址、扇區(qū)數(shù)據(jù)Dl、0x85命令、第0頁的第1扇區(qū)的實體地址、扇區(qū)數(shù) 據(jù)D2、0x85命令、第0頁的第3扇區(qū)的實體地址、扇區(qū)數(shù)據(jù)D3、Ox 10命令,以將扇區(qū)數(shù)據(jù)Dl、 D2、D3分別寫入第0頁的第0扇區(qū)、第1扇區(qū)、第3扇區(qū)。
接著,控制器104向次等級存儲器106依序發(fā)送0x80命令、區(qū)塊X的第1頁的實 體地址、0x85命令、第1頁的第0扇區(qū)的實體地址、扇區(qū)數(shù)據(jù)D4、0x85命令、第1頁的第3扇 區(qū)的實體地址、扇區(qū)數(shù)據(jù)D5、0xl0命令,以將扇區(qū)數(shù)據(jù)D4、D5分別寫入第1頁的第0扇區(qū)、 第3扇區(qū)。接著,控制器104再向次等級存儲器106依序發(fā)送0x80命令、區(qū)塊X的第2頁 的實體地址、0x85命令、第2頁的第0扇區(qū)的實體地址、扇區(qū)數(shù)據(jù)D6、0xl0命令,以將扇區(qū)數(shù) 據(jù)D6寫入第2頁的第0扇區(qū)。最后,控制器104再將扇區(qū)數(shù)據(jù)Dl D6的邏輯扇區(qū)地址與 實體扇區(qū)地址的對應關(guān)系儲存于一地址鏈結(jié)表中。圖7為本發(fā)明的地址鏈結(jié)表700的一實施例。如圖7所示,扇區(qū)數(shù)據(jù)Dl的邏輯扇 區(qū)地址K對應于用以表示次等級存儲器106的區(qū)塊X的第0頁的第0扇區(qū)的實體扇區(qū)地址, 扇區(qū)數(shù)據(jù)D2的邏輯扇區(qū)地址(K+1)對應于用以表示次等級存儲器106的區(qū)塊X的第0頁 的第1扇區(qū)的實體扇區(qū)地址,而扇區(qū)數(shù)據(jù)D6的邏輯扇區(qū)地址(K+5)對應于用以表示次等級 存儲器106的區(qū)塊X的第2頁的第0扇區(qū)的實體扇區(qū)地址。因此,當控制器104完成地址 鏈結(jié)表的紀錄后,若主機102向控制器104發(fā)送欲讀取的一讀取邏輯地址時,控制器104可 依據(jù)該地址鏈結(jié)表找出對應于該讀取邏輯地址的一至多個讀取實體扇區(qū)地址,再依據(jù)該等 讀取實體扇區(qū)地址向次等級存儲器106發(fā)送一至多個讀取命令,以將自次等級存儲器106 讀出對應于該讀取邏輯地址的數(shù)據(jù)。雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何熟習此項 技術(shù)者,在不脫離本發(fā)明的精神和范圍內(nèi),當可作些許的更動與潤飾,因此本發(fā)明的保護范 圍當視后附的申請專利范圍所界定者為準。
權(quán)利要求
1.一種數(shù)據(jù)儲存裝置,耦接至一主機,其特征在于,包括一次等級存儲器,包括多個區(qū)塊,每一該等區(qū)塊包括多個頁,每一該等頁包括多個扇 區(qū),其中部分該等區(qū)塊的部分缺陷扇區(qū)包括有缺陷的記憶單元;以及一控制器,產(chǎn)生一缺陷狀態(tài)表以紀錄該次等級存儲器的該等區(qū)塊的所有該等缺陷扇區(qū) 的位置,自該主機接收欲寫入該次等級存儲器的多個扇區(qū)數(shù)據(jù),依據(jù)該缺陷狀態(tài)表決定供 儲存該等扇區(qū)數(shù)據(jù)的多個實體扇區(qū)地址,以及依據(jù)該等實體扇區(qū)地址向該次等級存儲器發(fā) 送一至多個寫入命令以將該等扇區(qū)數(shù)據(jù)寫入該次等級存儲器的該等實體扇區(qū)地址。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)儲存裝置,其特征在于,其中該控制器自該次等級存儲 器取得尚未儲存數(shù)據(jù)的多個空實體扇區(qū)地址,依據(jù)該缺陷狀態(tài)表檢查該等空實體扇區(qū)地址 是否與該等缺陷扇區(qū)的位置相符合,以及若該等空實體扇區(qū)地址與該等缺陷扇區(qū)的位置不 相符合,決定該等實體扇區(qū)地址為該等實體扇區(qū)地址,以決定該等實體扇區(qū)地址。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)儲存裝置,其特征在于,其中該控制器自該次等級存儲 器的該等區(qū)塊選取一待測區(qū)塊,將一預定數(shù)據(jù)寫入該待測區(qū)塊,讀取該待測區(qū)塊以得到一 讀出數(shù)據(jù),若該預定數(shù)據(jù)與該讀出數(shù)據(jù)不相符時比對該預定數(shù)據(jù)與該讀出數(shù)據(jù)的不相符部 分以決定該待測區(qū)塊的該等缺陷扇區(qū)的位置,于該缺陷狀態(tài)表中紀錄該待測區(qū)塊的該等缺 陷扇區(qū)的位置,并重復待測區(qū)塊的選取步驟至缺陷扇區(qū)的位置的紀錄步驟直至所有該等區(qū) 塊均已被選取為待測區(qū)塊為止,以產(chǎn)生該缺陷狀態(tài)表。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)儲存裝置,其特征在于,其中該控制器自該主機接收對 應于該等扇區(qū)數(shù)據(jù)的起始地址的一寫入邏輯地址,依據(jù)該寫入邏輯地址決定分別對應于該 等扇區(qū)數(shù)據(jù)的多個邏輯扇區(qū)地址,于該等扇區(qū)數(shù)據(jù)寫入該等實體扇區(qū)地址后于一地址鏈結(jié) 表中紀錄該等邏輯扇區(qū)地址與該等實體扇區(qū)地址的對應關(guān)系。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)儲存裝置,其特征在于,其中當該控制器自該主機接收 到欲讀取的一讀取邏輯地址時,該控制器依據(jù)該地址鏈結(jié)表找出對應于該讀取邏輯地址的 一至多個讀取實體扇區(qū)地址,并依據(jù)該等讀取實體扇區(qū)地址向該次等級存儲器發(fā)送一至多 個讀取命令以將自該次等級存儲器讀出對應于該讀取邏輯地址的數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)儲存裝置,其特征在于,其中該等寫入命令為序號為 0x80的隨機寫入命令。
7.一種于次等級存儲器存取數(shù)據(jù)的方法,其中該次等級存儲器包括多個區(qū)塊,每一該 等區(qū)塊包括多個頁,每一該等頁包括多個扇區(qū),其中部分該等區(qū)塊的部分缺陷扇區(qū)包括有 缺陷的記憶單元,其特征在于,該方法包括產(chǎn)生一缺陷狀態(tài)表以紀錄該次等級存儲器的該等區(qū)塊的所有該等缺陷扇區(qū)的位置;自一主機接收欲寫入該次等級存儲器的多個扇區(qū)數(shù)據(jù);依據(jù)該缺陷狀態(tài)表決定供儲存該等扇區(qū)數(shù)據(jù)的多個實體扇區(qū)地址;以及依據(jù)該等實體扇區(qū)地址向該次等級存儲器發(fā)送一至多個寫入命令以將該等扇區(qū)數(shù)據(jù) 寫入該次等級存儲器的該等實體扇區(qū)地址。
8.根據(jù)權(quán)利要求7所述的于次等級存儲器存取數(shù)據(jù)的方法,其特征在于,其中該等實 體扇區(qū)地址的決定包括自該次等級存儲器取得尚未儲存數(shù)據(jù)的多個空實體扇區(qū)地址;依據(jù)該缺陷狀態(tài)表檢查該等空實體扇區(qū)地址是否與該等缺陷扇區(qū)的位置相符合;以及若該等空實體扇區(qū)地址與該等缺陷扇區(qū)的位置不相符合,決定該等實體扇區(qū)地址為該 等實體扇區(qū)地址。
9.根據(jù)權(quán)利要求7所述的于次等級存儲器存取數(shù)據(jù)的方法,其特征在于,其中該缺陷 狀態(tài)表的產(chǎn)生包括自該次等級存儲器的該等區(qū)塊選取一待測區(qū)塊; 將一預定數(shù)據(jù)寫入該待測區(qū)塊; 讀取該待測區(qū)塊以得到一讀出數(shù)據(jù);若該預定數(shù)據(jù)與該讀出數(shù)據(jù)不相符時,比對該預定數(shù)據(jù)與該讀出數(shù)據(jù)的不相符部分, 以決定該待測區(qū)塊的該等缺陷扇區(qū)的位置;于該缺陷狀態(tài)表中紀錄該待測區(qū)塊的該等缺陷扇區(qū)的位置;以及 重復待測區(qū)塊的選取步驟至缺陷扇區(qū)的位置的紀錄步驟,直至所有該等區(qū)塊均已被選 取為待測區(qū)塊為止。
10.根據(jù)權(quán)利要求7所述的于次等級存儲器存取數(shù)據(jù)的方法,其特征在于,其中該方法 更包括自該主機接收對應于該等扇區(qū)數(shù)據(jù)的起始地址的一寫入邏輯地址; 依據(jù)該寫入邏輯地址決定分別對應于該等扇區(qū)數(shù)據(jù)的多個邏輯扇區(qū)地址;以及 于該等扇區(qū)數(shù)據(jù)寫入該等實體扇區(qū)地址后,于一地址鏈結(jié)表中紀錄該等邏輯扇區(qū)地址 與該等實體扇區(qū)地址的對應關(guān)系。
11.根據(jù)權(quán)利要求10所述的于次等級存儲器存取數(shù)據(jù)的方法,其特征在于,其中該方 法更包括當自該主機接收到欲讀取的一讀取邏輯地址時,依據(jù)該地址鏈結(jié)表找出對應于該讀取 邏輯地址的一至多個讀取實體扇區(qū)地址;以及依據(jù)該等讀取實體扇區(qū)地址向該次等級存儲器發(fā)送一至多個讀取命令,以將自該次等 級存儲器讀出對應于該讀取邏輯地址的數(shù)據(jù)。
12.根據(jù)權(quán)利要求7所述的于次等級存儲器存取數(shù)據(jù)的方法,其特征在于,其中該等寫 入命令為序號為0x80的隨機寫入命令。
全文摘要
本發(fā)明涉及一種數(shù)據(jù)儲存裝置,耦接至一主機,包括一次等級存儲器以及一控制器。該次等級存儲器包括多個區(qū)塊,每一該等區(qū)塊包括多個頁,每一該等頁包括多個扇區(qū),其中部分該等區(qū)塊的部分缺陷扇區(qū)包括有缺陷的記憶單元。該控制器產(chǎn)生一缺陷狀態(tài)表以紀錄該次等級存儲器的該等區(qū)塊的所有該等缺陷扇區(qū)的位置,接收欲寫入該次等級存儲器的多個扇區(qū)數(shù)據(jù),依據(jù)該缺陷狀態(tài)表決定供儲存該等扇區(qū)數(shù)據(jù)的多個實體扇區(qū)地址,以及依據(jù)該等實體扇區(qū)地址向該次等級存儲器發(fā)送一至多個寫入命令以將該等扇區(qū)數(shù)據(jù)寫入該次等級存儲器的該等實體扇區(qū)地址。本發(fā)明還涉及一種控制器以及于次等級存儲器的數(shù)據(jù)存取的方法。本發(fā)明能更有效地運用次等級存儲器的數(shù)據(jù)儲存空間。
文檔編號G06F12/06GK102063382SQ200910225330
公開日2011年5月18日 申請日期2009年11月12日 優(yōu)先權(quán)日2009年11月12日
發(fā)明者葉國良, 許根富 申請人:慧榮科技股份有限公司