TWI573033B - 資料搜尋方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
資料搜尋方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI573033B TWI573033B TW105101099A TW105101099A TWI573033B TW I573033 B TWI573033 B TW I573033B TW 105101099 A TW105101099 A TW 105101099A TW 105101099 A TW105101099 A TW 105101099A TW I573033 B TWI573033 B TW I573033B
- Authority
- TW
- Taiwan
- Prior art keywords
- entity
- unit
- read
- subunits
- subunit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種記憶體管理技術,且特別是有關於一種資料搜尋方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,記憶體儲存裝置中的記憶體控制器是基於實體區塊來管理可複寫式非揮發性記憶體模組,例如,儲存或讀取資料。根據不同的製程或管理策略,可複寫式非揮發性記憶體模組中的每一個實體區塊可能包含64、128、256等預設數目的實體頁。一般來說,與此預設數目有關的管理資訊會被儲存在記憶體控制器的唯讀記憶體中。當記憶體儲存裝置開機時,此管理資訊會被從唯讀記憶體中讀取出來並且做為操作記憶體儲存裝置的依據。若不將此管理資訊儲存在記憶體控制器之唯讀記憶體,則當記憶體儲存裝置開機時,記憶體控制器需要從可複寫式非揮發性記憶體模組中搜尋所需的管理資料。然而,若所使用的搜尋機制效率低落,則可能導致記憶體儲存裝置的開機時間延長。
有鑑於此,本發明提供一種資料搜尋方法、記憶體儲存裝置及記憶體控制電路單元,可提高在可複寫式非揮發性記憶體模組中搜尋系統資訊之效率。
本發明的一範例實施例提供一種資料搜尋方法,其用於存取可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個實體子單元,所述資料搜尋方法包括:偵測開機訊號;在偵測到所述開機訊號之後,基於第一分組規則來發送第一讀取指令序列,其中所述第一分組規則是對應於將所述實體子單元中第一數目的實體子單元分組為一個實體單元之分組規則;判斷是否藉由所述第一讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的系統資訊;若未藉由所述第一讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊,基於第二分組規則來發送第二讀取指令序列,其中所述第二分組規則是對應於將所述實體子單元中第二數目的實體子單元分組為一個實體單元之分組規則,其中所述第一數目與所述第二數目不同;以及在讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊之後,基於所述系統資訊來操作所述可複寫式非揮發性記憶體模組。
在本發明的一範例實施例中,所述資料搜尋方法更包括:若未藉由所述第二讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊,基於第三分組規則來發送第三讀取指令序列,其中所述第三分組規則是對應於將所述實體子單元中第三數目的實體子單元分組為一個實體單元之分組規則,其中所述第三數目與所述第一數目不同並且不同於所述第二數目。
在本發明的一範例實施例中,所述資料搜尋方法更包括:在接收到所述開機訊號之後,發送預設讀取指令序列,其中所述預設讀取指令序列指示讀取所述實體子單元中的預設實體子單元所儲存之資料,其中所述預設實體子單元是所述實體子單元中編號最小的實體子單元,而發送所述第一讀取指令序列的步驟是在判定未藉由所述預設讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊之後執行。
本發明的另一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體子單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,所述記憶體控制電路單元用以偵測開機訊號,在偵測到所述開機訊號之後,所述記憶體控制電路單元更用以基於第一分組規則來發送第一讀取指令序列,其中所述第一分組規則是對應於將所述實體子單元中第一數目的實體子單元分組為一個實體單元之分組規則,所述記憶體控制電路單元更用以判斷是否藉由所述第一讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的系統資訊,若未藉由所述第一讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊,所述記憶體控制電路單元更用以基於第二分組規則來發送第二讀取指令序列,其中所述第二分組規則是對應於將所述實體子單元中第二數目的實體子單元分組為一個實體單元之分組規則,其中所述第一數目與所述第二數目不同,在讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊之後,所述記憶體控制電路單元更用以基於所述系統資訊來操作所述可複寫式非揮發性記憶體模組。
在本發明的一範例實施例中,若未藉由所述第二讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊,所述記憶體控制電路單元更用以基於第三分組規則來發送第三讀取指令序列,其中所述第三分組規則是對應於將所述實體子單元中第三數目的實體子單元分組為一個實體單元之分組規則,其中所述第三數目與所述第一數目不同並且不同於所述第二數目。
在本發明的一範例實施例中,在接收到所述開機訊號之後,所述記憶體控制電路單元更用以發送預設讀取指令序列,所述預設讀取指令序列指示讀取所述實體子單元中的預設實體子單元所儲存之資料,所述預設實體子單元是所述實體子單元中編號最小的實體子單元,所述記憶體控制電路單元發送所述第一讀取指令序列的操作是在判定未藉由所述預設讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊之後執行。
本發明的另一範例實施例提供一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組,所述記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個實體子單元。所述記憶體管理電路耦接至所述主機介面與所述記憶體介面,所述記憶體管理電路用以偵測開機訊號,在偵測到所述開機訊號之後,所述記憶體管理電路更用以基於第一分組規則來發送第一讀取指令序列,其中所述第一分組規則是對應於將所述實體子單元中第一數目的實體子單元分組為一個實體單元之分組規則,所述記憶體管理電路更用以判斷是否藉由所述第一讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的系統資訊,若未藉由所述第一讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊,所述記憶體管理電路更用以基於第二分組規則來發送第二讀取指令序列,所述第二分組規則是對應於將所述實體子單元中第二數目的實體子單元分組為一個實體單元之分組規則,其中所述第一數目與所述第二數目不同,在讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊之後,所述記憶體管理電路更用以基於所述系統資訊來操作所述可複寫式非揮發性記憶體模組。
在本發明的一範例實施例中,所述第一讀取指令序列包括第一實體位址序列,所述第一實體位址序列包括第一主碼,所述第一主碼對應於所述可複寫式非揮發性記憶體模組中包括所述第一數目之實體子單元的第一實體單元,所述第二讀取指令序列包括第二實體位址序列,其中所述第二實體位址序列包括第二主碼,所述第二主碼對應於所述可複寫式非揮發性記憶體模組中包括所述第二數目之實體子單元的第二實體單元。
在本發明的一範例實施例中,所述第一實體位址序列更包括第一子碼,所述第一子碼對應於所述實體子單元中的第一實體子單元,所述第一實體子單元是所述第一實體單元中的第N個實體子單元,所述第二實體位址序列更包括第二子碼,其中所述第二子碼對應於所述實體子單元中的第二實體子單元,所述第二實體子單元是所述第二實體單元中的第N個實體子單元,其中N為正整數。
在本發明的一範例實施例中,所述第一子碼所包含的位元之總數與所述第二子碼所包含的位元之總數不同。
在本發明的一範例實施例中,若未藉由所述第二讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊,所述記憶體管理電路更用以基於第三分組規則來發送第三讀取指令序列,其中所述第三分組規則是對應於將所述實體子單元中第三數目的實體子單元分組為一個實體單元之分組規則,其中所述第三數目與所述第一數目不同並且不同於所述第二數目。
在本發明的一範例實施例中,所述第一讀取指令序列是指示讀取所述實體子單元中的第一實體子單元所儲存之資料,所述第二讀取指令序列是指示讀取所述實體子單元中的第二實體子單元所儲存之資料,所述第三讀取指令序列是指示讀取所述實體子單元中的第三實體子單元所儲存之資料,所述第一實體子單元與所述第二實體子單元之間包含連續編號的J個實體子單元,所述第二實體子單元與所述第三實體子單元之間包含連續編號的K個實體子單元,其中J與K皆為正整數,且J不等於K。
在本發明的一範例實施例中,在接收到所述開機訊號之後,所述記憶體管理電路更用以發送預設讀取指令序列,所述預設讀取指令序列指示讀取所述實體子單元中的預設實體子單元所儲存之資料,其中所述預設實體子單元是所述實體子單元中編號最小的實體子單元,所述記憶體管理電路發送所述第一讀取指令序列的操作是在判定未藉由所述預設讀取指令序列讀取到所述可複寫式非揮發性記憶體模組的所述系統資訊之後執行。
基於上述,在偵測到開機訊號之後,本發明可基於不同的分組規則來依序發送相對應的讀取指令序列。其中,每一個分組規則是對應於在可複寫式非揮發性記憶體模組的管理上,多少個實體子單元會被分組至屬於同一個實體單元。例如,對應於不同的分組規則,一個實體單元所包含的實體子單元之數目會不同。藉此,可提高從可複寫式非揮發性記憶體模組中搜尋系統資訊之效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
請參照圖1與圖2,主機系統11一般包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114皆耦接至系統匯流排(system bus)110。
在本範例實施例中,主機系統11是透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料儲存至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。此外,主機系統11是透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在本範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,所提及的主機系統為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。雖然在上述範例實施例中,主機系統是以電腦系統來作說明,然而,圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在另一範例實施例中,主機系統31也可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統,而記憶體儲存裝置30可為其所使用的SD卡32、CF卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded MMC, eMMC)341及/或嵌入式多晶片封裝儲存裝置(embedded Multi Chip Package, eMCP)342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準、通用序列匯流排(Universal Serial Bus, USB)標準、安全數位(Secure Digital, SD)介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card, eMMC)介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元404之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406可以是單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變臨界電壓的程序亦稱為“把資料寫入至記憶胞”或“程式化記憶胞”。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組406中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504、記憶體介面506及唯讀記憶體507。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路502的操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在另一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的記憶胞或其群組。記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組406中。記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令序列以從可複寫式非揮發性記憶體模組406中讀取資料。記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組406中抹除。資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組406執行相對應的寫入、讀取及抹除等操作。在一範例實施例中,記憶體管理電路502還可以下達其他類型的指令序列給可複寫式非揮發性記憶體模組406以指示執行相對應的操作。
主機介面504是耦接至記憶體管理電路502並且用以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說,若記憶體管理電路502要存取可複寫式非揮發性記憶體模組406,記憶體介面506會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾回收程序等等)的相對應的指令序列。這些指令序列例如是由記憶體管理電路502產生並且透過記憶體介面506傳送至可複寫式非揮發性記憶體模組406。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
唯讀記憶體507是耦接至記憶體管理電路502並且用以儲存開機資訊。例如,此開機資訊包括開機碼。當記憶體儲存裝置10開機時,記憶體管理電路502會從唯讀記憶體507中讀取開機資訊來執行開機程序。在一範例實施例中,唯讀記憶體507亦可以配置於記憶體管理電路502內。在本範例實施例中,唯讀記憶體507是記憶體控制電路單元404中唯一斷電後所儲存之資料不會遺失的儲存媒體。
在一範例實施例中,記憶體控制電路單元404還包括錯誤檢查與校正電路508、緩衝記憶體510與電源管理電路512。
錯誤檢查與校正電路508是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路508會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code, ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路508會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
緩衝記憶體510是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路512是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
圖6是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。必須瞭解的是,在此利用“分組”等詞來描述對於可複寫式非揮發性記憶體模組406之管理,是屬於邏輯上的概念,而非實際地移動可複寫式非揮發性記憶體模組406中的電路元件。
請參照圖6,在記憶體儲存裝置10出廠前,可複寫式非揮發性記憶體模組406中的記憶胞會被分組成多個實體子單元601(0)~601(B),並且實體子單元601(0)~601(B)又會被進一步分組成多個實體單元602(0)~602(C)。其中,實體單元602(0)~602(C)中的每一個實體單元都包含A個實體子單元,並且A為正整數。例如,實體單元602(0)包括實體子單元601(0)~601(A-1)、實體單元602(1)包括實體子單元601(A)~601(2A-1)、實體單元602(2)包括實體子單元601(2A)~601(3A-1)。以此類推,實體單元602(C)包括實體子單元601(B-A+1)~601(B)。在記憶體儲存裝置10出廠後,記憶體管理電路502可根據實體子單元601(0)~601(B)以及實體單元602(0)~602(C)來操作可複寫式非揮發性記憶體模組406。
在一範例實施例中,實體子單元601(0)~601(B)中的每一個實體子單元是指一個實體程式化單元,而實體單元602(0)~602(C)中的每一個實體單元是指一個實體抹除單元。其中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面(page)或是實體扇(sector)。若實體程式化單元為實體頁面,則此些實體程式化單元通常包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼)。例如,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊(block)。然而,在另一範例實施例中,一個實體子單元也可以是由任意數量的記憶胞組成,而可能不是指一個實體程式化單元;此外,一個實體單元也可以是由任意數量的實體子單元組成,而可能不是指一個實體抹除單元。
在本範例實施例中,用於操作可複寫式非揮發性記憶體模組406所需的系統資訊未儲存於唯讀記憶體507中,而是儲存於可複寫式非揮發性記憶體模組406中的一個特定區域。例如,此系統資訊包含如何將實體子單元601(0)~601(B)分組之資訊。
在一範例實施例中,當記憶體儲存裝置10出廠時,所述系統資訊是初始地被存放在可複寫式非揮發性記憶體模組406中的第一個實體子單元(例如,實體子單元601(0))中,從而便於記憶體管理電路502取得。但是,可複寫式非揮發性記憶體模組10中用於儲存此系統資訊的特定區域可能會隨著記憶體儲存裝置10的使用而改變。例如,隨著記憶體儲存裝置10因使用而造成的耗損增加,可複寫式非揮發性記憶體模組406中的部分實體單元可能會損壞。當原先存放此系統資訊的實體單元損壞時,此系統資訊會被搬移至其他的實體單元來保存。例如,從損壞的第一個實體單元搬移到未損壞的第二個實體單元的第一個實體子單元中。因此,在記憶體儲存裝置10重新開機後,記憶體管理電路502需要重新在可複寫式非揮發性記憶體模組406中搜尋上述系統資訊。
在一範例實施例中,考量到目前一個實體單元中實體子單元的總數可能是64的倍數(例如,64、128、512、1024等),因此,記憶體管理電路502會以64個實體子單元為一個搜尋單位來跳躍式地在可複寫式非揮發性記憶體模組406中搜尋上述系統資訊。例如,記憶體管理電路502首先會嘗試讀取儲存於可複寫式非揮發性記憶體模組406中的第一個實體子單元(例如,實體子單元601(0))中的資料,因為上述系統資訊有最高的機率是儲存在這個實體子單元裡。若從可複寫式非揮發性記憶體模組406中的第一個實體子單元(例如,實體子單元601(0))無法讀取到上述系統資訊,則記憶體管理電路502會接續讀取可複寫式非揮發性記憶體模組406中的第65個實體子單元(例如,實體子單元601(64))。若從可複寫式非揮發性記憶體模組406中的第65個實體子單元(例如,實體子單元601(64))仍無法讀取到上述系統資訊,則記憶體管理電路502會接續讀取可複寫式非揮發性記憶體模組406中的第129個、第193個、第257個實體子單元,直到找到上述系統資訊為止。
在一範例實施例中,即便上述系統資訊不是存放在可複寫式非揮發性記憶體模組406中的第一個實體子單元(例如,實體子單元601(0)),上述系統資訊仍有較高的機率是被存放在某一個實體單元中的第一個實體子單元內。因此,依照上述搜尋機制,若可複寫式非揮發性記憶體模組406中的每一個實體單元實際上是包含64個實體子單元,則每次執行的讀取操作皆可以讀取到一個實體單元中的第一個實體子單元;若可複寫式非揮發性記憶體模組中的每一個實體單元實際上是包含128個實體子單元,則連續地執行兩次讀取操作就可以讀取到下一個實體單元中的第一個實體子單元;但是,若可複寫式非揮發性記憶體模組中的每一個實體單元實際上是包含1024個或更多的實體子單元,則至少需要連續地執行16次讀取操作才可以讀取到下一個實體子單元中的第一個實體子單元。換言之,當一個實體單元包含的實體子單元的總數越來越多時,對於上述系統資訊的搜尋效率就會更加低落,從而需要更多的時間來完成記憶體儲存裝置10的開機程序。
在本範例實施例中,在記憶體儲存裝置10開機後,記憶體管理電路502會執行一搜尋程序,以在可複寫式非揮發性記憶體模組406中搜尋操作可複寫式非揮發性記憶體模組406上述系統資訊。在此搜尋程序中,記憶體管理電路502會基於不同的分組規則來發送相對應的讀取指令序列至可複寫式非揮發性記憶體模組406,以嘗試連續地從對應於不同分組規則的實體單元中讀取上述系統資訊。
在一範例實施例中,假設設計者事先已知唯讀記憶體507中未儲存上述系統資訊,則記憶體管理電路502可被設定為當偵測到開機訊號時,就自動執行上述搜尋程序。或者,在另一範例實施例中,記憶體管理電路502也可以被設定為當偵測到開機訊號時,自動地判斷唯讀記憶體507中是否儲存有上述系統資訊。若唯讀記憶體507中已儲存有上述系統資訊(例如,記憶體管理電路502可以直接從唯讀記憶體507中讀取到上述系統資訊),則記憶體管理電路502會直接根據此系統資訊來操作可複寫式非揮發性記憶體模組406。反之,若唯讀記憶體507中未儲存上述系統資訊(例如,記憶體管理電路502無法直接從唯讀記憶體507中讀取到上述系統資訊),則記憶體管理電路502才會執行上述搜尋程序。
在一範例實施例中,記憶體管理電路502可以根據上述系統資訊得知預設是採用哪一種分組規則來對可複寫式非揮發性記憶體模組406中的實體子單元進行分組。例如,記憶體管理電路502可以得知圖6的範例實施例中的A的值是多少;或者,記憶體管理電路502也可以進一步得知圖6的範例實施例中的B(即,可複寫式非揮發性記憶體模組406中實體子單元的總數)及/或C(即,可複寫式非揮發性記憶體模組406中實體單元的總數)的值是多少。
在一範例實施例中,上述系統資訊也可以包含其他有利於管理或操作可複寫式非揮發性記憶體模組406的資訊,例如,實體單元的使用狀況等。例如,實體單元的使用狀況可包括哪些實體單元已損壞、哪些實體單元未儲存有效(valid)資料、實體單元的抹除次數、實體單元的寫入次數、實體單元的讀取次數或各種管理表格等資訊。
為了說明方便,在以下的範例實施例中是假設可複寫式非揮發性記憶體模組406中的實體子單元601(0)~601(B)實際上可能是依照第一分組規則、第二分組規則、第三分組規則、第四分組規則及第五分組規則中的其中一種來進行分組。其中,第一分組規則是對應於將64個實體子單元分組為一個實體單元的分組規則,第二分組規則是對應於將128個實體子單元分組為一個實體單元的分組規則,第三分組規則是對應於將256個實體子單元分組為一個實體單元的分組規則,第四分組規則是對應於將512個實體子單元分組為一個實體單元的分組規則,而第五分組規則是對應於將1024個實體子單元分組為一個實體單元的分組規則。換言之,每一個符合第一分組規則的實體單元都包含64個實體子單元,每一個符合第二分組規則的實體單元都包含128個實體子單元,每一個符合第三分組規則的實體單元都包含256個實體子單元,每一個符合第四分組規則的實體單元都包含512個實體子單元,每一個符合第五分組規則的實體單元都包含1024個實體子單元。然而,在另一範例實施例中,更多或更少的分組規則可以被考慮。
圖7至圖12是根據本發明的一範例實施例所繪示的搜尋程序的示意圖。特別是,在圖7至圖12中,標示在某一個實體子單元中的數字標記是用以表示在一個搜尋程序中,此實體子單元是在第幾次的讀取操作中被讀取。
請參照圖7,記憶體管理電路502會先去讀取可複寫式非揮發性記憶體模組406中的實體子單元601(0)所儲存之資料。例如,實體子單元601(0)標記為「1」是用以表示實體子單元601(0)是在此搜尋程序中第一個被讀取的實體子單元。特別是,實體子單元601(0)是各種分組規則下,可複寫式非揮發性記憶體模組406的第一個實體單元中的第一個實體子單元。
在本範例實施例中,是依據某一個實體單元的編號來判斷此實體單元在可複寫式非揮發性記憶體模組406中的排序。例如,若某一個實體單元的編號越小,表示此實體單元在可複寫式非揮發性記憶體模組406中的排序越前面;若某一個實體單元的編號越大,表示此實體單元在可複寫式非揮發性記憶體模組406中的排序越後面。因此,在本範例實施例中,可複寫式非揮發性記憶體模組406的第一個實體單元是指可複寫式非揮發性記憶體模組406中編號最小的實體單元。例如,在圖6的範例實施例中,實體單元602(0)是可複寫式非揮發性記憶體模組406中編號最小的實體單元,而實體單元602(C)是可複寫式非揮發性記憶體模組406中編號最大的實體單元。
類似地,在本範例實施例中,是依據某一個實體子單元的編號來判斷此實體子單元在某一個實體單元中的排序。例如,若某一個實體子單元的編號越小,表示此實體子單元在所屬的實體單元中的排序越前面;若某一個實體子單元的編號越大,表示此實體子單元在所屬的實體單元中的排序越後面。因此,在本範例實施例中,某一個實體單元的第一個實體子單元是指此實體單元中編號最小的實體子單元,而某一個實體單元的最後一個實體子單元是指此實體單元中編號最大的實體子單元。例如,在圖6的範例實施例中,實體子單元601(0)是實體單元602(0)中編號最小的實體子單元,而實體子單元601(A-1)是實體單元602(0)中編號最大的實體子單元。
根據圖6的範例實施例,無論A的值是多少,實體子單元601(0)都是屬於實體單元602(0)並且是在實體單元602(0)中編號最小的實體單元。在一範例實施例中,實體子單元601(0)亦稱為預設實體子單元。例如,此預設實體子單元是指在一般情況下(例如,記憶體儲存裝置10出廠時),可複寫式非揮發性記憶體模組406中預設用來替代唯讀記憶體507而儲存上述系統資訊的實體子單元。因此,在一搜尋程序中,優先讀取儲存於此預設實體子單元的資料有較高的機率獲得上述系統資訊。在獲得儲存於實體子單元601(0)的資料之後,記憶體管理電路502會判斷是否已獲得上述系統資訊。若已獲得上述系統資訊,則記憶體管理電路502會結束搜尋程序並且根據此系統資訊來操作可複寫式非揮發性記憶體模組406。
在一範例實施例中,當前用於儲存上述系統資訊的實體子單元會帶有一個預設標記。例如,在一範例實施例中,一個實體子單元包含資料區、閒置區及奇偶(parity)區。若此實體子單元儲存有上述系統資訊,則上述系統資訊會儲存於資料區,閒置區會儲存有此預設標記,而奇偶區則用於儲存錯誤更正碼(ECC)等奇偶資訊。在另一範例實施例中,所述預設標記也可以儲存在資料區或實體子單元中預先定義的其他位置,本發明不加以限制。在從某一個實體子單元讀取出資料之後,記憶體管理電路502可判斷所讀取出的資料是否帶有此預設標記。若有,表示已讀取到上述系統資訊。若無,則表示未讀取到上述系統資訊。
在一範例實施例中,所執行的搜尋程序包括至少一個檢查程序。例如,上述對預設實體子單元(即,實體子單元601(0))進行檢查的程序亦稱為預設檢查程序。預設檢查程序之外的某一個檢查程序可稱為第M個檢查程序。在第M個檢查程序中,記憶體管理電路502會連續地對符合第一分組規則的第M個實體單元中的第N個實體子單元、符合第二分組規則的第M個實體單元中的第N個實體子單元、符合第三分組規則的第M個實體單元中的第N個實體子單元、符合第四分組規則的第M個實體單元中的第N個實體子單元及符合第五分組規則的第M個實體單元中的第N個實體子單元進行檢查。其中,M與N分別為正整數。
若某一個檢查程序未搜尋到上述系統資訊,則記憶體管理電路502會接續執行下一個檢查程序。假設當前執行的檢查程序是第M個檢查程序,則下一個檢查程序就是第M+1個檢查程序。在第M+1個檢查程序中,記憶體管理電路502會連續地對符合第一分組規則的第M+1個實體單元中的第N個實體子單元、符合第二分組規則的第M+1個實體單元中的第N個實體子單元、符合第三分組規則的第M+1個實體單元中的第N個實體子單元、符合第四分組規則的第M+1個實體單元中的第N個實體子單元及符合第五分組規則的第M+1個實體單元中的第N個實體子單元進行檢查。
在任一個檢查程序中,只要找到上述系統資訊,整個搜尋程序就會停止。此外,在同一個檢查程序中,實體子單元的檢查順序可以視實務上的需求而加以調整。在本範例實施例,是以N=1作為範例。然而,在另一範例實施例中,N也可以被設為其他的正整數,只要不超過相對應的分組規則下,一個實體單元可以包含的實體子單元的總數即可。例如,在圖7的範例實施例中,若預設檢查程序未找到上述系統資訊,則記憶體管理電路502會接續執行第一檢查程序(即M=1)。
請參照圖8,實體單元802(0)是符合第一分組規則的第一個實體單元,實體單元802(1)是符合第一分組規則的第二個實體單元,並且實體單元802(2)是符合第一分組規則的第三個實體單元。在第一檢查程序中,記憶體管理電路502會跳過實體單元802(0),而直接從實體單元802(1)中讀取資料。例如,接續於前次讀取的實體子單元601(0),記憶體管理電路502會跳過被視為屬於實體單元802(0)的63個連續編號的實體子單元,而直接去讀取實體子單元601(64)所儲存之資料。其中,實體子單元601(64)是實體單元802(1)中的第一個實體子單元。如圖8所示,實體子單元601(64)標記為「2」是用以表示實體子單元601(64)是在整個搜尋程序中第二個被讀取的實體子單元。
請參照圖9,實體單元902(0)是符合第二分組規則的第一個實體單元,實體單元902(1)是符合第二分組規則的第二個實體單元,實體單元902(2)是符合第二分組規則的第三個實體單元。在第一檢查程序中,若無法從實體子單元601(64)獲得上述系統資訊,則記憶體管理電路502會跳過實體單元902(0),而直接從實體單元902(1)中讀取資料。例如,接續於前次讀取的實體子單元601(64),記憶體管理電路502會跳過被視為屬於實體單元902(0)的63個連續編號的實體子單元,而直接去讀取實體子單元601(128)所儲存之資料。其中,實體子單元601(128)是實體單元902(1)中的第一個實體子單元。如圖9所示,實體子單元601(128)標記為「3」是用以表示實體子單元601(128)是在整個搜尋程序中第三個被讀取的實體子單元。
請參照圖10,實體單元1002(0)是符合第三分組規則的第一個實體單元,實體單元1002(1)是符合第三分組規則的第二個實體單元,並且實體單元1002(2)是符合第三分組規則的第三個實體單元。在第一檢查程序中,若無法從實體子單元601(128)獲得上述系統資訊,則記憶體管理電路502會跳過實體單元1002(0),而直接從實體單元1002(1)中讀取資料。例如,接續於前次讀取的實體子單元601(128),記憶體管理電路502會跳過被視為屬於實體單元1002(0)的127個連續編號的實體子單元,而直接去讀取實體子單元601(256)所儲存之資料。其中,實體子單元601(256)是實體單元1002(1)中的第一個實體子單元。如圖10所示,實體子單元601(256)標記為「4」是用以表示實體子單元601(256)是在整個搜尋程序中第四個被讀取的實體子單元。
請參照圖11,實體單元1102(0)是符合第四分組規則的第一個實體單元,實體單元1102(1)是符合第四分組規則的第二個實體單元,並且實體單元1102(2)是符合第四分組規則的第三個實體單元。在第一檢查程序中,若無法從實體子單元601(256)獲得上述系統資訊,則記憶體管理電路502會跳過實體單元1102(0),而直接從實體單元1102(1)中讀取資料。例如,接續於前次讀取的實體子單元601(256),記憶體管理電路502會跳過被視為屬於實體單元1102(0)的255個連續編號的實體子單元,而直接去讀取實體子單元601(512)所儲存之資料。其中,實體子單元601(512)是實體單元1102(1)中的第一個實體子單元。如圖11所示,實體子單元601(512)標記為「5」是用以表示實體子單元601(512)是在整個搜尋程序中第五個被讀取的實體子單元。
請參照圖12,實體單元1202(0)是符合第五分組規則的第一個實體單元,實體單元1202(1)是符合第五分組規則的第二個實體單元,並且實體單元1202(2)是符合第五分組規則的第三個實體單元。在第一檢查程序中,若仍無法從實體子單元601(512)獲得上述系統資訊,則記憶體管理電路502會跳過實體單元1202(0),而直接從實體單元1202(1)中讀取資料。例如,接續於前次讀取的實體子單元601(512),記憶體管理電路502會跳過被視為屬於實體單元1202(0)的511個連續編號的實體子單元,而直接去讀取實體子單元601(1024)所儲存之資料。其中,實體子單元601(1024)是實體單元1202(1)中的第一個實體子單元。如圖12所示,實體子單元601(1024)標記為「6」是用以表示實體子單元601(1024)是在整個搜尋程序中第六個被讀取的實體子單元。此外,若第一檢查程序未找到上述系統資訊,則下一個檢查程序(即,第二檢查程序)會被執行。
在一範例實施例中,記憶體管理電路502會將檢查過的實體子單元記錄至一個檢查表。例如,在預設檢查程序與第一檢查程序中,檢查過的實體子單元601(0)、601(64)、601(128)、601(256)、601(512)及601(1024)會被在此檢查表中標記為已檢查。藉此,在後續的檢查程序中,被標記為已檢查的實體子單元就會被跳過。
在第二檢查程序中,預設是會對實體單元802(2)、902(2)、1002(2)、1102(2)及1202(2)中各別的第一個實體子單元(即,實體子單元601(128)、601(256)、601(512)、601(1024)及601(2048))進行檢查。但是,根據檢查表可知,實體子單元601(128)、601(256)、601(512)及601(1024)已經在第一檢查程序中被檢查過了。因此,在第二檢查程序中,接續於前次讀取的實體子單元601(1024),記憶體管理電路502會跳過被視為屬於實體單元1202(1)的1023個連續編號的實體子單元,而直接去讀取實體子單元601(2048)所儲存之資料。其中,實體子單元601(2048)是實體單元1202(2)中的第一個實體子單元。例如,如圖12所示,實體子單元601(2048)標記為「7」是用以表示實體子單元601(2048)是在整個搜尋程序中第七個被讀取的實體子單元。此外,若第二檢查程序未找到上述系統資訊,則下一個檢查程序(即,第三檢查程序)會被執行。
在第三檢查程序中,記憶體管理電路502可參考上述檢查表來連續地對符合第一分組規則的第三個實體單元中的第N個實體子單元、符合第二分組規則的第三個實體單元中的第N個實體子單元、符合第三分組規則的第三個實體單元中的第N個實體子單元、符合第四分組規則的第三個實體單元中的第N個實體子單元及符合第五分組規則的第三個實體單元中的第N個實體子單元的至少其中之一進行檢查。第三檢查程序的更多細節可參照上述關於第一檢查程序與第二檢查程序的說明,在此便不贅述。此外,更多的檢查程序也可以在第三檢查程序之後被執行,直到找到上述系統資訊為止。
在本範例實施例中,記憶體管理電路502會基於特定的分組規則來發送特定的讀取指令序列至可複寫式非揮發性記憶體模組406,以完成其在搜尋程序中的讀取操作。
圖13是根據本發明的一範例實施例所繪示的讀取指令序列的示意圖。
請參照圖13,一個讀取指令序列會包含至少一個實體位址序列1310。實體位址序列1310至少包括位元b
0~b
10並且可被視為包含主碼與子碼兩個部分。其中,主碼會對應於可複寫式非揮發性記憶體模組406中的某一個實體單元,而子碼則會對應於此實體單元中的某一個實體子單元。或者,從另一角度來看,主碼與子碼之結合會直接對應至可複寫式非揮發性記憶體模組406中的某一個實體子單元。例如,主碼與子碼之結合即為某一個實體子單元的編號。
在一範例實施例中,實體位址序列1320會被包含於基於第一分組規則所發送的讀取指令序列中。其中,實體位址序列1320的主碼對應於符合第一分組規則的一個特定實體單元,而實體位址序列1320的子碼則對應於此特定實體單元中的一個特定實體子單元。實體位址序列1330會被包含於基於第二分組規則所發送的讀取指令序列中。其中,實體位址序列1330的主碼對應於符合第二分組規則的一個特定實體單元,而實體位址序列1330的子碼則對應於此特定實體單元中的一個特定實體子單元。實體位址序列1340會被包含於基於第三分組規則所發送的讀取指令序列中。其中,實體位址序列1340的主碼對應於符合第三分組規則的一個特定實體單元,而實體位址序列1340的子碼則對應於此特定實體單元中的一個特定實體子單元。實體位址序列1350會被包含於基於第四分組規則所發送的讀取指令序列中。其中,實體位址序列1350的主碼對應於符合第四分組規則的一個特定實體單元,而實體位址序列1350的子碼則對應於此特定實體單元中的一個特定實體子單元。實體位址序列1360會被包含於基於第五分組規則所發送的讀取指令序列中。其中,實體位址序列1360的主碼對應於符合第五分組規則的一個特定實體單元,而實體位址序列1360的子碼則對應於此特定實體單元中的一個特定實體子單元。
圖14是根據本發明的一範例實施例所繪示的發送讀取指令序列的示意圖。
請同時參照圖7至圖14,在預設檢查程序中,記憶體管理電路502會發送包含實體位址序列1410的讀取指令序列(亦稱為預設讀取指令序列),以指示可複寫式非揮發性記憶體模組406讀取實體子單元601(0)所儲存之資料。
請同時參照圖8與圖14,記憶體管理電路502會發送包含實體位址序列1420的讀取指令序列,以指示可複寫式非揮發性記憶體模組406讀取實體子單元601(64)所儲存之資料。其中,主碼1421是對應於實體單元802(1),而子碼1422則是對應於實體單元802(1)中編號最小的實體子單元601(64)。
請同時參照圖9與圖14,記憶體管理電路502會發送包含實體位址序列1430的讀取指令序列,以指示可複寫式非揮發性記憶體模組406讀取實體子單元601(128)所儲存之資料。其中,主碼1431是對應於實體單元902(1),而子碼1432則是對應於實體單元902(1)中編號最小的實體子單元601(128)。
請同時參照圖10與圖14,記憶體管理電路502會發送包含實體位址序列1440的讀取指令序列,以指示可複寫式非揮發性記憶體模組406讀取實體子單元601(256)所儲存之資料。其中,主碼1441是對應於實體單元1002(1),而子碼1442則是對應於實體單元1002(1)中編號最小的實體子單元601(256)。
請同時參照圖11與圖14,記憶體管理電路502會發送包含實體位址序列1450的讀取指令序列,以指示可複寫式非揮發性記憶體模組406讀取實體子單元601(512)所儲存之資料。其中,主碼1451是對應於實體單元1102(1),而子碼1452則是對應於實體單元1102(1)中編號最小的實體子單元601(512)。
請同時參照圖12與圖14,記憶體管理電路502會發送包含實體位址序列1460的讀取指令序列,以指示可複寫式非揮發性記憶體模組406讀取實體子單元601(1024)所儲存之資料。其中,主碼1461是對應於實體單元1202(1),而子碼1462則是對應於實體單元1202(1)中編號最小的實體子單元601(1024)。此外,記憶體管理電路502會發送包含實體位址序列1470的讀取指令序列,以指示可複寫式非揮發性記憶體模組406讀取實體子單元601(2048)所儲存之資料。其中,主碼1471是對應於實體單元1202(2),而子碼1472則是對應於實體單元1202(2)中編號最小的實體子單元601(2048)。
在一範例實施例中,在某一個檢查程序中,假設連續讀取的某一個實體子單元與另一個實體子單元之間包含J個連續編號的實體子單元(即,J個連續編號的實體子單元被跳過),並且連續讀取的所述另一個實體子單元與又一個實體子單元之間包含K個連續編號的實體子單元(即,K個連續編號的實體子單元被跳過),則J的值可能會與K的值不同。例如,在圖8至圖10的第一檢查程序中,連續讀取的實體子單元601(64)與實體子單元601(128)之間包含了連續編碼的63個實體子單元,而連續讀取的實體子單元601(128)與實體子單元601(256)之間則包含了連續編碼的127個實體子單元。
值得一提的是,在N不為1的其他範例實施例中,透過調整實體位址序列中的子碼,即可利用相對應的讀取指令序列來讀取符合某一分組規則的某一實體單元中的第二個、第三個、第四個等實體子單元。
圖15與圖16是根據本發明的另一範例實施例所繪示的搜尋程序的示意圖。
請參照圖15,記憶體管理電路502可發送包含實體位址序列1520的讀取指令序列,以指示可複寫式非揮發性記憶體模組406讀取實體單元802(1)中的實體子單元601(65)。其中,主碼1521對應於實體單元802(1),而子碼1522則對應於實體單元802(1)中的第二個實體子單元601(65)。
請參照圖16,記憶體管理電路502也可以發送包含實體位址序列1630的讀取指令序列,以指示可複寫式非揮發性記憶體模組406讀取實體單元902(1)中的實體子單元601(129)。其中,主碼1631對應於實體單元902(1),而子碼1632則對應於實體單元902(1)中的第二個實體子單元601(129)。
在一範例實施例中,搜尋程序中所採用的搜尋策略是先檢查預設實體子單元。若未從預設實體子單元中搜尋到上述系統資訊,則接續檢查可複寫式非揮發性記憶體模組406中符合各種分組規則的至少部分或所有實體單元中的第一個實體子單元。若仍未搜尋到上述系統資訊,則接續檢查可複寫式非揮發性記憶體模組406中符合各種分組規則的至少部分或所有實體單元中的第二個實體子單元。以此類推,若仍未搜尋到上述系統資訊,則接續檢查可複寫式非揮發性記憶體模組406中符合各種分組規則的至少部分或所有實體單元中的第三個、第四個實體子單元等等。
然而,在其他的範例實施例中,所採用的搜尋策略也可以有所改變,而不限於上述。例如,在一範例實施例中,亦可先檢查可複寫式非揮發性記憶體模組406中符合各種分組規則的至少部分或所有實體單元中的第二個實體子單元;若未搜尋到上述系統資訊,再檢查可複寫式非揮發性記憶體模組406中符合各種分組規則的至少部分或所有實體單元中的第一個實體子單元。或者,在一範例實施例中,亦可以先檢查可複寫式非揮發性記憶體模組406中符合各種分組規則的至少部分或所有實體單元中的最後一個實體子單元;若未搜尋到上述系統資訊,再檢查可複寫式非揮發性記憶體模組406中符合各種分組規則的至少部分或所有實體單元中的第一個實體子單元等。
圖17是根據本發明的一範例實施例所繪示的資料搜尋方法的流程圖。
請參照圖17,在步驟S1701中,偵測開機訊號。在步驟S1702中,基於一特定分組規則(例如,第一分組規則)來發送一特定讀取指令序列至可複寫式非揮發性記憶體模組,其中所述特定分組規則是對應於將一特定數目(例如,第一數目)的實體子單元分組為一個實體單元之分組規則。在步驟S1703中,判斷是否藉由所述特定讀取指令序列從可複寫式非揮發性記憶體模組獲得系統資訊。若是,在步驟S1704中,基於所述系統資訊來操作可複寫式非揮發性記憶體模組。若否,則在步驟S1705中,調整所述特定分組規則。例如,將特定分組規則從第一分組規則調整為第二分組規則。然後,重覆執行步驟S1702。例如,在重覆執行的步驟S1702中,基於調整後的特定分組規則(例如,第二分組規則)來發送一特定讀取指令序列至可複寫式非揮發性記憶體模組,其中所述調整後的特定分組規則是對應於將另一特定數目(例如,第二數目)的實體子單元分組為一個實體單元之分組規則。然後,根據步驟S1703的判斷結果,步驟S1704與S1705的其中之一會被執行。在一範例實施例中,當記憶體儲存裝置開機後,步驟S1702、S1703及S1705即可被重複執行,直到步驟S1704被執行為止。
然而,圖17中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖17中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖17的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,在偵測到開機訊號之後,本發明可基於不同的分組規則來依序發送相對應的讀取指令序列。其中,每一個分組規則是對應於在可複寫式非揮發性記憶體模組的管理上,多少個實體子單元會被分組至屬於同一個實體單元。例如,對應於不同的分組規則,一個實體單元所包含的實體子單元之數目會不同。藉此,可提高從可複寫式非揮發性記憶體模組中搜尋系統資訊之效率。例如,在一範例實施例中,即便可複寫式非揮發性記憶體模組實際上採用的分組規則是一個實體單元包含1024個或更多的實體子單元,每一個實體單元中的特定位置的實體子單元(例如,每一個實體單元中編號最小的第一個實體子單元)也可以很容易地被找到並且進行檢查。
在一範例實施例中,從可複寫式非揮發性記憶體模組中搜尋系統資訊之效率被提高,故在記憶體儲存裝置的生產過程中,用於操作採用不同分組規則的可複寫式非揮發性記憶體模組的不同記憶體控制電路單元所儲存的開機資訊也可以被簡化、模組化或一致化,從而提高記憶體儲存裝置的生產效率。此外,在一範例實施例中,只要簡單地更新儲存於某一個可複寫式非揮發性記憶體模組中的系統資訊,即可使記憶體控制電路單元相應地操作此可複寫式非揮發性記憶體模組。相對於直接將系統資訊儲存於記憶體控制電路單元中的唯讀記憶體,將系統資訊儲存於可複寫式非揮發性記憶體模組中可以使得記憶體控制電路單元的使用更加地彈性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體
113‧‧‧唯讀記憶體
114‧‧‧資料傳輸介面
12‧‧‧輸入/輸出(I/O)裝置
20‧‧‧主機板
201‧‧‧隨身碟
202‧‧‧記憶卡
203‧‧‧固態硬碟
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
507‧‧‧唯讀記憶體
508‧‧‧錯誤檢查與校正電路
510‧‧‧緩衝記憶體
512‧‧‧電源管理電路
601(0)~601(B)‧‧‧實體子單元
602(0)~602(C)、802(0)~802(2)、902(0)~902(2)、1002(0)~1002(2)、1102(0)~1102(2)、1202(0)~1202(2)‧‧‧實體單元
1310、1320、1330、1340、1350、1360、1410、1420、1430、1440、1450、1460、1470、1520、1630‧‧‧實體位址序列
1421、1431、1441、1451、1461、1471、1521、1631‧‧‧主碼
1422、1432、1442、1452、1462、1472、1522、1632‧‧‧子碼
S1701‧‧‧步驟(偵測開機訊號)
S1702‧‧‧步驟(基於一特定分組規則來發送一特定讀取指令序列至可複寫式非揮發性記憶體模組,其中所述特定分組規則是對應於將一特定數目的實體子單元分組為一個實體單元之分組規則)
S1703‧‧‧步驟(判斷是否藉由所述特定讀取指令序列從可複寫式非揮發性記憶體模組獲得系統資訊)
S1704‧‧‧步驟(基於所述系統資訊來操作可複寫式非揮發性記憶體模組)
S1705‧‧‧步驟(調整所述特定分組規則)
11‧‧‧主機系統
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體
113‧‧‧唯讀記憶體
114‧‧‧資料傳輸介面
12‧‧‧輸入/輸出(I/O)裝置
20‧‧‧主機板
201‧‧‧隨身碟
202‧‧‧記憶卡
203‧‧‧固態硬碟
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
507‧‧‧唯讀記憶體
508‧‧‧錯誤檢查與校正電路
510‧‧‧緩衝記憶體
512‧‧‧電源管理電路
601(0)~601(B)‧‧‧實體子單元
602(0)~602(C)、802(0)~802(2)、902(0)~902(2)、1002(0)~1002(2)、1102(0)~1102(2)、1202(0)~1202(2)‧‧‧實體單元
1310、1320、1330、1340、1350、1360、1410、1420、1430、1440、1450、1460、1470、1520、1630‧‧‧實體位址序列
1421、1431、1441、1451、1461、1471、1521、1631‧‧‧主碼
1422、1432、1442、1452、1462、1472、1522、1632‧‧‧子碼
S1701‧‧‧步驟(偵測開機訊號)
S1702‧‧‧步驟(基於一特定分組規則來發送一特定讀取指令序列至可複寫式非揮發性記憶體模組,其中所述特定分組規則是對應於將一特定數目的實體子單元分組為一個實體單元之分組規則)
S1703‧‧‧步驟(判斷是否藉由所述特定讀取指令序列從可複寫式非揮發性記憶體模組獲得系統資訊)
S1704‧‧‧步驟(基於所述系統資訊來操作可複寫式非揮發性記憶體模組)
S1705‧‧‧步驟(調整所述特定分組規則)
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。 圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。 圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。 圖6是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。 圖7至圖12是根據本發明的一範例實施例所繪示的搜尋程序的示意圖。 圖13是根據本發明的一範例實施例所繪示的讀取指令序列的示意圖。 圖14是根據本發明的一範例實施例所繪示的發送讀取指令序列的示意圖。 圖15與圖16是根據本發明的另一範例實施例所繪示的搜尋程序的示意圖。 圖17是根據本發明的一範例實施例所繪示的資料搜尋方法的流程圖。
S1701‧‧‧步驟(偵測開機訊號)
S1702‧‧‧步驟(基於一特定分組規則來發送一特定讀取指令序列至可複寫式非揮發性記憶體模組,其中所述特定分組規則是對應於將一特定數目的實體子單元分組為一個實體單元之分組規則)
S1703‧‧‧步驟(判斷是否藉由所述特定讀取指令序列從可複寫式非揮發性記憶體模組獲得系統資訊)
S1704‧‧‧步驟(基於所述系統資訊來操作可複寫式非揮發性記憶體模組)
S1705‧‧‧步驟(調整所述特定分組規則)
Claims (21)
- 一種資料搜尋方法,用於存取一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體子單元,該資料搜尋方法包括: 偵測一開機訊號; 在偵測到該開機訊號之後,基於一第一分組規則來發送一第一讀取指令序列,其中該第一分組規則是對應於將該些實體子單元中一第一數目的實體子單元分組為一個實體單元之分組規則; 判斷是否藉由該第一讀取指令序列讀取到該可複寫式非揮發性記憶體模組的一系統資訊; 若未藉由該第一讀取指令序列讀取到該可複寫式非揮發性記憶體模組的該系統資訊,基於一第二分組規則來發送一第二讀取指令序列,其中該第二分組規則是對應於將該些實體子單元中一第二數目的實體子單元分組為一個實體單元之分組規則,其中該第一數目與該第二數目不同;以及 在讀取到該可複寫式非揮發性記憶體模組的該系統資訊之後,基於該系統資訊來操作該可複寫式非揮發性記憶體模組。
- 如申請專利範圍第1項所述的資料搜尋方法,其中該第一讀取指令序列包括一第一實體位址序列,其中該第一實體位址序列包括一第一主碼,其中該第一主碼對應於該可複寫式非揮發性記憶體模組中包括該第一數目之實體子單元的一第一實體單元, 其中該第二讀取指令序列包括一第二實體位址序列,其中該第二實體位址序列包括一第二主碼,其中該第二主碼對應於該可複寫式非揮發性記憶體模組中包括該第二數目之實體子單元的一第二實體單元。
- 如申請專利範圍第2項所述的資料搜尋方法,其中該第一實體位址序列更包括一第一子碼,其中該第一子碼對應於該些實體子單元中的一第一實體子單元,其中該第一實體子單元是該第一實體單元中的第N個實體子單元, 其中該第二實體位址序列更包括一第二子碼,其中該第二子碼對應於該些實體子單元中的一第二實體子單元,其中該第二實體子單元是該第二實體單元中的第N個實體子單元, 其中N為正整數。
- 如申請專利範圍第3項所述的資料搜尋方法,其中該第一子碼所包含的位元之總數與該第二子碼所包含的位元之總數不同。
- 如申請專利範圍第1項所述的資料搜尋方法,更包括: 若未藉由該第二讀取指令序列讀取到該可複寫式非揮發性記憶體模組的該系統資訊,基於一第三分組規則來發送一第三讀取指令序列,其中該第三分組規則是對應於將該些實體子單元中一第三數目的實體子單元分組為一個實體單元之分組規則, 其中該第三數目與該第一數目不同並且不同於該第二數目。
- 如申請專利範圍第5項所述的資料搜尋方法,其中該第一讀取指令序列是指示讀取該些實體子單元中的一第一實體子單元所儲存之資料,其中該第二讀取指令序列是指示讀取該些實體子單元中的一第二實體子單元所儲存之資料,其中該第三讀取指令序列是指示讀取該些實體子單元中的一第三實體子單元所儲存之資料, 其中該第一實體子單元與該第二實體子單元之間包含連續編號的J個實體子單元,其中該第二實體子單元與該第三實體子單元之間包含連續編號的K個實體子單元, 其中J與K皆為正整數,且J不等於K。
- 如申請專利範圍第1項所述的資料搜尋方法,更包括: 在接收到該開機訊號之後,發送一預設讀取指令序列,其中該預設讀取指令序列指示讀取該些實體子單元中的一預設實體子單元所儲存之資料,其中該預設實體子單元是該些實體子單元中編號最小的實體子單元, 其中發送該第一讀取指令序列的步驟是在判定未藉由該預設讀取指令序列讀取到該可複寫式非揮發性記憶體模組的該系統資訊之後執行。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,包括多個實體子單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以偵測一開機訊號, 其中在偵測到該開機訊號之後,該記憶體控制電路單元更用以基於一第一分組規則來發送一第一讀取指令序列,其中該第一分組規則是對應於將該些實體子單元中一第一數目的實體子單元分組為一個實體單元之分組規則, 其中該記憶體控制電路單元更用以判斷是否藉由該第一讀取指令序列讀取到該可複寫式非揮發性記憶體模組的一系統資訊, 其中若未藉由該第一讀取指令序列讀取到該可複寫式非揮發性記憶體模組的該系統資訊,該記憶體控制電路單元更用以基於一第二分組規則來發送一第二讀取指令序列,其中該第二分組規則是對應於將該些實體子單元中一第二數目的實體子單元分組為一個實體單元之分組規則,其中該第一數目與該第二數目不同, 其中在讀取到該可複寫式非揮發性記憶體模組的該系統資訊之後,該記憶體控制電路單元更用以基於該系統資訊來操作該可複寫式非揮發性記憶體模組。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該第一讀取指令序列包括一第一實體位址序列,其中該第一實體位址序列包括一第一主碼,其中該第一主碼對應於該可複寫式非揮發性記憶體模組中包括該第一數目之實體子單元的一第一實體單元, 其中該第二讀取指令序列包括一第二實體位址序列,其中該第二實體位址序列包括一第二主碼,其中該第二主碼對應於該可複寫式非揮發性記憶體模組中包括該第二數目之實體子單元的一第二實體單元。
- 如申請專利範圍第9項所述的記憶體儲存裝置,其中該第一實體位址序列更包括一第一子碼,其中該第一子碼對應於該些實體子單元中的一第一實體子單元,其中該第一實體子單元是該第一實體單元中的第N個實體子單元, 其中該第二實體位址序列更包括一第二子碼,其中該第二子碼對應於該些實體子單元中的一第二實體子單元,其中該第二實體子單元是該第二實體單元中的第N個實體子單元, 其中N為正整數。
- 如申請專利範圍第10項所述的記憶體儲存裝置,其中該第一子碼所包含的位元之總數與該第二子碼所包含的位元之總數不同。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中若未藉由該第二讀取指令序列讀取到該可複寫式非揮發性記憶體模組的該系統資訊,該記憶體控制電路單元更用以基於一第三分組規則來發送一第三讀取指令序列,其中該第三分組規則是對應於將該些實體子單元中一第三數目的實體子單元分組為一個實體單元之分組規則, 其中該第三數目與該第一數目不同並且不同於該第二數目。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中該第一讀取指令序列是指示讀取該些實體子單元中的一第一實體子單元所儲存之資料,其中該第二讀取指令序列是指示讀取該些實體子單元中的一第二實體子單元所儲存之資料,其中該第三讀取指令序列是指示讀取該些實體子單元中的一第三實體子單元所儲存之資料, 其中該第一實體子單元與該第二實體子單元之間包含連續編號的J個實體子單元,其中該第二實體子單元與該第三實體子單元之間包含連續編號的K個實體子單元, 其中J與K皆為正整數,且J不等於K。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中在接收到該開機訊號之後,該記憶體控制電路單元更用以發送一預設讀取指令序列,其中該預設讀取指令序列指示讀取該些實體子單元中的一預設實體子單元所儲存之資料,其中該預設實體子單元是該些實體子單元中編號最小的實體子單元, 其中該記憶體控制電路單元發送該第一讀取指令序列的操作是在判定未藉由該預設讀取指令序列讀取到該可複寫式非揮發性記憶體模組的該系統資訊之後執行。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體子單元;以及 一記憶體管理電路,耦接至該主機介面與該記憶體介面, 其中該記憶體管理電路用以偵測一開機訊號, 其中在偵測到該開機訊號之後,該記憶體管理電路更用以基於一第一分組規則來發送一第一讀取指令序列,其中該第一分組規則是對應於將該些實體子單元中一第一數目的實體子單元分組為一個實體單元之分組規則, 其中該記憶體管理電路更用以判斷是否藉由該第一讀取指令序列讀取到該可複寫式非揮發性記憶體模組的一系統資訊, 其中若未藉由該第一讀取指令序列讀取到該可複寫式非揮發性記憶體模組的該系統資訊,該記憶體管理電路更用以基於一第二分組規則來發送一第二讀取指令序列,其中該第二分組規則是對應於將該些實體子單元中一第二數目的實體子單元分組為一個實體單元之分組規則,其中該第一數目與該第二數目不同, 其中在讀取到該可複寫式非揮發性記憶體模組的該系統資訊之後,該記憶體管理電路更用以基於該系統資訊來操作該可複寫式非揮發性記憶體模組。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該第一讀取指令序列包括一第一實體位址序列,其中該第一實體位址序列包括一第一主碼,其中該第一主碼對應於該可複寫式非揮發性記憶體模組中包括該第一數目之實體子單元的一第一實體單元, 其中該第二讀取指令序列包括一第二實體位址序列,其中該第二實體位址序列包括一第二主碼,其中該第二主碼對應於該可複寫式非揮發性記憶體模組中包括該第二數目之實體子單元的一第二實體單元。
- 如申請專利範圍第16項所述的記憶體控制電路單元,其中該第一實體位址序列更包括一第一子碼,其中該第一子碼對應於該些實體子單元中的一第一實體子單元,其中該第一實體子單元是該第一實體單元中的第N個實體子單元, 其中該第二實體位址序列更包括一第二子碼,其中該第二子碼對應於該些實體子單元中的一第二實體子單元,其中該第二實體子單元是該第二實體單元中的第N個實體子單元, 其中N為正整數。
- 如申請專利範圍第17項所述的記憶體控制電路單元,其中該第一子碼所包含的位元之總數與該第二子碼所包含的位元之總數不同。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中若未藉由該第二讀取指令序列讀取到該可複寫式非揮發性記憶體模組的該系統資訊,該記憶體管理電路更用以基於一第三分組規則來發送一第三讀取指令序列,其中該第三分組規則是對應於將該些實體子單元中一第三數目的實體子單元分組為一個實體單元之分組規則, 其中該第三數目與該第一數目不同並且不同於該第二數目。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中該第一讀取指令序列是指示讀取該些實體子單元中的一第一實體子單元所儲存之資料,其中該第二讀取指令序列是指示讀取該些實體子單元中的一第二實體子單元所儲存之資料,其中該第三讀取指令序列是指示讀取該些實體子單元中的一第三實體子單元所儲存之資料, 其中該第一實體子單元與該第二實體子單元之間包含連續編號的J個實體子單元,其中該第二實體子單元與該第三實體子單元之間包含連續編號的K個實體子單元, 其中J與K皆為正整數,且J不等於K。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中在接收到該開機訊號之後,該記憶體管理電路更用以發送一預設讀取指令序列,其中該預設讀取指令序列指示讀取該些實體子單元中的一預設實體子單元所儲存之資料,其中該預設實體子單元是該些實體子單元中編號最小的實體子單元, 其中該記憶體管理電路發送該第一讀取指令序列的操作是在判定未藉由該預設讀取指令序列讀取到該可複寫式非揮發性記憶體模組的該系統資訊之後執行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105101099A TWI573033B (zh) | 2016-01-14 | 2016-01-14 | 資料搜尋方法、記憶體儲存裝置及記憶體控制電路單元 |
US15/065,859 US10732845B2 (en) | 2016-01-14 | 2016-03-10 | Data search method, memory storage apparatus, and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105101099A TWI573033B (zh) | 2016-01-14 | 2016-01-14 | 資料搜尋方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI573033B true TWI573033B (zh) | 2017-03-01 |
TW201725520A TW201725520A (zh) | 2017-07-16 |
Family
ID=58766416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105101099A TWI573033B (zh) | 2016-01-14 | 2016-01-14 | 資料搜尋方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10732845B2 (zh) |
TW (1) | TWI573033B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115270690B (zh) * | 2022-09-26 | 2022-11-29 | 中科声龙科技发展(北京)有限公司 | 查找空闲存储的装置、方法及芯片 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204187A1 (en) * | 2004-03-11 | 2005-09-15 | Lee Charles C. | System and method for managing blocks in flash memory |
US20120054419A1 (en) * | 2010-08-27 | 2012-03-01 | Via Technologies, Inc. | Memory device and operating method thereof |
TW201303588A (zh) * | 2011-07-13 | 2013-01-16 | Phison Electronics Corp | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
TW201432449A (zh) * | 2013-02-05 | 2014-08-16 | Via Tech Inc | 非揮發性記憶裝置及其操作方法 |
CN104298465A (zh) * | 2013-07-17 | 2015-01-21 | 光宝科技股份有限公司 | 固态储存装置中的区块分组方法 |
US20150355842A1 (en) * | 2014-06-04 | 2015-12-10 | Compal Electronics, Inc. | Management method of hybrid storage unit and electronic apparatus having the hybrid storage unit |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7100018B2 (en) * | 2003-07-31 | 2006-08-29 | Silicon Graphics, Inc. | System and method for encoding page size information |
US7284112B2 (en) * | 2005-01-14 | 2007-10-16 | International Business Machines Corporation | Multiple page size address translation incorporating page size prediction |
US7657696B2 (en) * | 2005-02-25 | 2010-02-02 | Lsi Corporation | Method to detect NAND-flash parameters by hardware automatically |
KR100706246B1 (ko) | 2005-05-24 | 2007-04-11 | 삼성전자주식회사 | 읽기 성능을 향상시킬 수 있는 메모리 카드 |
US7849302B2 (en) * | 2006-04-10 | 2010-12-07 | Apple Inc. | Direct boot arrangement using a NAND flash memory |
JP4840859B2 (ja) * | 2006-05-10 | 2011-12-21 | ルネサスエレクトロニクス株式会社 | 半導体装置、及び起動方法 |
US8171277B2 (en) * | 2008-07-02 | 2012-05-01 | Apple Inc. | Method and apparatus for booting from a flash memory without prior knowledge of flash parameter information |
US8386738B1 (en) * | 2008-11-06 | 2013-02-26 | Marvell International Ltd. | Off-chip non-volatile memory access |
US8370718B2 (en) * | 2009-04-08 | 2013-02-05 | Stmicroelectronics S.R.L. | Method for identifying a flash memory device and related hosting device |
US8205070B2 (en) * | 2009-09-08 | 2012-06-19 | Apple Inc. | Device bootup from a NAND-type non-volatile memory |
US8443135B2 (en) * | 2009-10-27 | 2013-05-14 | Texas Instruments Incorporated | Exhaustive parameter search algorithm for interface with nand flash memory |
US8751783B2 (en) * | 2011-01-20 | 2014-06-10 | Hewlett-Packard Development Company, L.P. | Booting computing devices with EFI aware operating systems |
TWI537826B (zh) * | 2011-05-05 | 2016-06-11 | 聯詠科技股份有限公司 | 主晶片開機方法 |
US8990549B2 (en) * | 2012-07-12 | 2015-03-24 | Freescale Semiconductor, Inc. | Method and system for booting electronic device from NAND flash memory |
-
2016
- 2016-01-14 TW TW105101099A patent/TWI573033B/zh active
- 2016-03-10 US US15/065,859 patent/US10732845B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204187A1 (en) * | 2004-03-11 | 2005-09-15 | Lee Charles C. | System and method for managing blocks in flash memory |
US20120054419A1 (en) * | 2010-08-27 | 2012-03-01 | Via Technologies, Inc. | Memory device and operating method thereof |
TW201303588A (zh) * | 2011-07-13 | 2013-01-16 | Phison Electronics Corp | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
TW201432449A (zh) * | 2013-02-05 | 2014-08-16 | Via Tech Inc | 非揮發性記憶裝置及其操作方法 |
CN104298465A (zh) * | 2013-07-17 | 2015-01-21 | 光宝科技股份有限公司 | 固态储存装置中的区块分组方法 |
US20150355842A1 (en) * | 2014-06-04 | 2015-12-10 | Compal Electronics, Inc. | Management method of hybrid storage unit and electronic apparatus having the hybrid storage unit |
Also Published As
Publication number | Publication date |
---|---|
TW201725520A (zh) | 2017-07-16 |
US10732845B2 (en) | 2020-08-04 |
US20170206005A1 (en) | 2017-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI649754B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI592869B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI668570B (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI607448B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI646543B (zh) | 資料編碼方法、資料解碼方法以及儲存控制器 | |
CN107818808B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI670716B (zh) | 資料存取方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI701552B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202009942A (zh) | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201913382A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202040370A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI658361B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI678621B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI631460B (zh) | 資料讀取方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI658402B (zh) | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI688956B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111767005B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI691961B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI573033B (zh) | 資料搜尋方法、記憶體儲存裝置及記憶體控制電路單元 | |
US11983069B2 (en) | Data rebuilding method, memory storage apparatus, and memory control circuit unit | |
TWI597731B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
US10191659B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
TW201816795A (zh) | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 |