TWI454906B - 資料讀取方法、快閃記憶體控制器與儲存系統 - Google Patents
資料讀取方法、快閃記憶體控制器與儲存系統 Download PDFInfo
- Publication number
- TWI454906B TWI454906B TW098132338A TW98132338A TWI454906B TW I454906 B TWI454906 B TW I454906B TW 098132338 A TW098132338 A TW 098132338A TW 98132338 A TW98132338 A TW 98132338A TW I454906 B TWI454906 B TW I454906B
- Authority
- TW
- Taiwan
- Prior art keywords
- host
- flash memory
- host read
- data
- logical
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Description
本發明是有關於一種用於快閃記憶體的資料讀取方法,且特別是有關於一種用於從多個快閃記憶體模組中讀取資料的資料讀取方法以及使用此方法的快閃記憶體控制器與快閃記憶體儲存系統。
由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,最適合使用於由電池供電的可攜式電子產品上。例如,固態硬碟就是一種以NAND快閃記憶體作為儲存媒體的儲存裝置,並且已廣泛配置於筆記型電腦中作為主要的儲存裝置。
一般來說,當主機系統欲讀取儲存在快閃記憶體儲存裝置中的資料時,快閃記憶體儲存裝置的控制電路會依據來自於主機系統的主機讀取指令透過快閃記憶體介面從快閃記憶體晶片中讀取對應的資料,之後,控制電路再將所讀取的資料經由連接器傳送給主機系統。在此,從快閃記憶體晶片中讀取資料的部分稱為內部資料傳輸(transfer),而將資料傳送給主機系統的部分稱為外部傳輸。
隨著傳輸技術的發展,使得連接器的傳輸速度已大幅提昇,例如,序列先進附件(Serial Advanced Technology Attachment,SATA)連接器已可達到每秒15億位元(Gigabit,Gb),甚至每秒30Gb。然而,在上述內部資料傳輸的速度低於連接器的速度下,整體儲存的效能仍無法有效改善,因此如何縮短執行主機讀取指令的時間是此領域技術人員所致力的目標。
本發明提供一種資料讀取方法以及使用此方法的快閃記憶體控制器與快閃記憶體儲存裝置,其能夠有效地縮短執行來自於主機系統之多個主機讀取指令的時間。
本發明範例實施例一種資料讀取方法,適用於由一快閃記憶體控制器處理來自於一主機系統的多個主機讀取指令以從多個快閃記憶體模組中讀取對應此些主機讀取指令的資料,其中快閃記憶體控制器分別地經由多條資料輸入/輸出匯流排耦接至快閃記憶體模組並且每一快閃記憶體模組具有多個實體區塊。本資料讀取方法包括配置多個邏輯區塊,其中邏輯區塊對映快閃記憶體模組中的部分實體區塊。本資料讀取方法也包括從主機系統中接收關於此些主機讀取指令的指令排序資訊,其中每一主機讀取指令對應邏輯區塊的其中之一且每一邏輯區塊對應資料輸入/輸出匯流排的其中之一。本資料讀取方法亦包括依據主機讀取指令所對應的資料輸入/輸出匯流排來重新排列主機讀取指令的順序與產生下達指令順序,以及將所產生的下達指令順序傳送給主機系統。本資料讀取方法更包括依據此下達指令順序從主機系統中依序地接收主機讀取指令並且依據主機讀取指令從快閃記憶體模組中讀取對應此些主機讀取指令的資料。
在本發明之一實施例中,上述之從主機系統中接收關於主機讀取指令的指令排序資訊的步驟包括:使用一原生指令排序(Native Command Queuing,NCQ)協定從主機系統中接收關於此些主機讀取指令的指令排序資訊。
在本發明之一實施例中,當從主機系統中接收到此些主機讀取指令之中的一第一主機讀取指令時,經由上述資料輸入/輸出匯流排從快閃記憶體模組中同步地讀取對應此第一主機讀取指令的資料和此些主機讀取指令之中的至少一第二主機讀取指令的資料,並且將對應此第一主機讀取指令的資料傳送給主機系統,其中此第一主機讀取指令和此第二主機讀取指令是對應不同的資料輸入/輸出匯流排。
在本發明之一實施例中,上述之資料讀取方法更包括將對應此第二主機讀取指令的資料暫存於快閃記憶體控制器的緩衝記憶體中。
在本發明之一實施例中,當從主機系統接收到上述第二主機讀取指令時,從緩衝記憶體中將對應此第二主機讀取指令的資料傳送給主機系統。
在本發明之一實施例中,上述之資料讀取方法更包括將上述邏輯區塊分組為多個邏輯區域,以及為每一邏輯區域配置一邏輯區塊-實體區塊對映表,其中每一邏輯區塊對應此些邏輯區塊-實體區塊對映表的其中之一。此外,上述之資料讀取方法更包括載入邏輯區塊-實體區塊對映表的其中之一至上述緩衝記憶體中。
在本發明之一實施例中,上述依據主機讀取指令所對應的資料輸入/輸出匯流排重新排列主機讀取指令的順序與產生下達指令順序的步驟包括依據此些主機讀取指令所對應的資料輸入/輸出匯流排與邏輯區域來重新排列此些主機讀取指令的順序與產生下達指令順序。
在本發明之一實施例中,上述之依據主機讀取指令所對應的資料輸入/輸出匯流排與邏輯區域來重新排列主機讀取指令的順序與產生下達指令順序的步驟包括:在上述下達指令順序中優先安排此些主機讀取指令之中的至少一主機讀取指令,其中此主機讀取指令所對應的邏輯區塊是對應被載入於緩衝記憶體中的邏輯區塊-實體區塊對映表。
本發明範例實施例一種快閃記憶體控制器,用於處理來自於一主機系統的多個主機讀取指令以從多個快閃記憶體模組中讀取對應此些主機讀取指令的資料,其中每一快閃記憶體模組具有多個實體區塊。本快閃記憶體控制器包括微處理器單元、快閃記憶體介面單元、主機介面單元與記憶體管理單元。快閃記憶體介面單元是耦接至微處理器單元,並且用以經由多條資料輸入/輸出匯流排耦接至此些快閃記憶體模組。主機介面單元是耦接至微處理器單元,並且用以連接主機系統。記憶體管理單元是耦接至微處理器單元,並且用以配置多個邏輯區塊,其中此些邏輯區塊對映快閃記憶體模組中的部分實體區塊。在此,記憶體管理單元經由主機介面單元從主機系統中接收關於此些主機讀取指令的指令排序資訊,其中每一主機讀取指令對應此些邏輯區塊的其中之一且每一邏輯區塊對應此些資料輸入/輸出匯流排的其中之一。並且,記憶體管理單元依據此些主機讀取指令所對應的資料輸入/輸出匯流排來重新排列此些主機讀取指令的順序與產生一下達指令順序,並且將所產生的下達指令順序傳送給主機系統。再者,記憶體管理單元依據此下達指令順序經由主機介面單元從主機系統中依序地接收此些主機讀取指令並且依據此些主機讀取指令經由快閃記憶體介面單元從快閃記憶體模組中讀取對應此些主機讀取指令的資料。
在本發明之一實施例中,上述之主機介面單元支援一原生指令排序協定。
在本發明之一實施例中,當主機介面單元從主機系統中接收到此些主機讀取指令之中的一第一主機讀取指令時,記憶體管理單元經由上述資料輸入/輸出匯流排從快閃記憶體模組中同步地讀取對應此第一主機讀取指令的資料和此些主機讀取指令之中的至少一第二主機讀取指令的資料,並且將對應此第一主機讀取指令的資料傳送給主機系統,其中此第一主機讀取指令和此第二主機讀取指令是對應不同的資料輸入/輸出匯流排。
在本發明之一實施例中,上述之快閃記憶體控制器更包括一緩衝記憶體,其耦接至微處理器單元,其中記憶體管理單元將對應此第二主機讀取指令的資料暫存於此緩衝記憶體中。
在本發明之一實施例中,當記憶體管理單元從主機系統中接收到上述第二主機讀取指令時,記憶體管理單元從緩衝記憶體中將對應此第二主機讀取指令的資料傳送給主機系統。
在本發明之一實施例中,上述之記憶體管理單元將上述邏輯區塊分組為多個邏輯區域,並且為每一邏輯區域配置一邏輯區塊-實體區塊對映表,其中每一邏輯區塊對應此些邏輯區塊-實體區塊對映表的其中之一。此外,上述記憶體管理單元載入此些邏輯區塊-實體區塊對映表的其中之一至上述緩衝記憶體。
在本發明之一實施例中,上述之記憶體管理單元更依據此些主機讀取指令所對應的資料輸入/輸出匯流排與邏輯區域來重新排列此些主機讀取指令的順序與產生上述下達指令順序。
在本發明之一實施例中,上述之記憶體管理單元在上述下達指令順序中優先安排此些主機讀取指令之中的至少一主機讀取指令,其中此主機讀取指令所對應的邏輯區塊是對應被載入於緩衝記憶體中的邏輯區塊-實體區塊對映表。
本發明範例實施例一種快閃記憶體儲存系統,其包括快閃記憶體晶片、快閃記憶體控制器與連接器。快閃記憶體晶片具有多個快閃記憶體模組,並且每一快閃記憶體模組具有多個實體區塊。快閃記憶體控制器經由多條資料輸入/輸出匯流排耦接至此些快閃記憶體模組,並且用以配置多個邏輯區塊,其中此些邏輯區塊對映快閃記憶體模組中的部分實體區塊。連接器是耦接至快閃記憶體控制器並且用以耦接一主機系統。在此,快閃記憶體控制器經由連接器從主機系統中接收關於多個主機讀取指令的指令排序資訊,其中每一主機讀取指令對應此些邏輯區塊的其中之一且每一邏輯區塊對應此些資料輸入/輸出匯流排的其中之一。並且,快閃記憶體控制器依據此些主機讀取指令所對應的資料輸入/輸出匯流排來重新排列此些主機讀取指令的順序與產生一下達指令順序,並且將所產生的下達指令順序傳送給主機系統。再者,快閃記憶體控制器依據該下達指令順序經由連接器從主機系統中依序地接收此些主機讀取指令並且依據此些主機讀取指令經由資料輸入/輸出匯流排從快閃記憶體模組中讀取對應此些主機讀取指令的資料。
在本發明之一實施例中,上述之連接器支援原生指令排序協定。
在本發明之一實施例中,當快閃記憶體控制器從主機系統中接收到此些主機讀取指令之中的一第一主機讀取指令時,快閃記憶體控制器經由上述資料輸入/輸出匯流排從快閃記憶體模組中同步地讀取對應此第一主機讀取指令的資料和此些主機讀取指令之中的至少一第二主機讀取指令的資料,並且將對應此第一主機讀取指令的資料傳送給主機系統,其中此第一主機讀取指令和此第二主機讀取指令是對應不同的資料輸入/輸出匯流排。
在本發明之一實施例中,上述快閃記憶體儲存系統更包括一緩衝記憶體,其中快閃記憶體控制器將對應第二主機讀取指令的資料暫存於此緩衝記憶體中。
在本發明之一實施例中,當快閃記憶體控制器從主機系統中接收上述第二主機讀取指令時,快閃記憶體控制器從緩衝記憶體中將對應此第二主機讀取指令的資料傳送給主機系統。
在本發明之一實施例中,上述之快閃記憶體控制器將上述邏輯區塊分組為多個邏輯區域,並且為每一邏輯區域配置一邏輯區塊-實體區塊對映表,其中每一邏輯區塊對應此些邏輯區塊-實體區塊對映表的其中之一。此外,上述快閃記憶體控制器載入此些邏輯區塊-實體區塊對映表的其中之一至緩衝記憶體。
在本發明之一實施例中,上述之快閃記憶體控制器依據上述主機讀取指令所對應的資料輸入/輸出匯流排與邏輯區域來重新排列此些主機讀取指令的順序與產生上述下達指令順序。
在本發明之一實施例中,上述之快閃記憶體控制器在上述下達指令順序中優先安排此些主機讀取指令之中的至少一主機讀取指令,其中此主機讀取指令所對應的邏輯區塊是對應暫存於該緩衝記憶體中的邏輯區塊-實體區塊對映表。
在本發明之一實施例中,上述之緩衝記憶體配置在上述快閃記憶體控制器中。
基於上述,本發明範例實施例可大幅地縮短執行多個主機讀取指令的時間,由此有效地提升快閃記憶體儲存裝置的效能。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
快閃記憶體儲存裝置一般而言包括快閃記憶體晶片與控制器(亦稱,控制電路)。通常快閃記憶體儲存裝置會與主機系統一起使用,以使主機系統可將資料寫入至快閃記憶體儲存裝置或從快閃記憶體儲存裝置中讀取資料。另外,亦有快閃記憶體儲存裝置是包括嵌入式快閃記憶體與可執行於主機系統上以實質地作為此嵌入式快閃記憶體之控制器的軟體。
圖1A是根據本發明第一範例實施例所繪示的使用快閃記憶體儲存裝置的主機系統。
請參照圖1A,主機系統1000包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108以及資料傳輸介面1110。輸入/輸出裝置1106包括如圖1B所示的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,快閃記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的處理主機系統1000可將資料寫入至快閃記憶體儲存裝置100或從快閃記憶體儲存裝置100中讀取資料。例如,快閃記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216。
一般而言,主機系統1000可實質地為可儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中,主機系統1000亦可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機1310時,快閃記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。。
圖1D是繪示圖1A所示的快閃記憶體儲存裝置100的概要方塊圖。
請參照圖1D,快閃記憶體儲存裝置100包括連接器102、快閃記憶體控制器104與快閃記憶體晶片106。
連接器102是耦接至快閃記憶體控制器104並且用以耦接至主機系統1000。在本範例實施例中,連接器102為序列先進附件(Serial Advanced Technology Attachment,SATA)連接器。然而,本發明不限於此,在本發明另一範例實施例中,連接器102可以是其他適合的連接器。
快閃記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在快閃記憶體晶片106中進行資料的寫入、讀取與抹除等運作。快閃記憶體控制器104包括微處理器單元202、記憶體管理單元204、主機介面單元206、快閃記憶體介面單元208與緩衝記憶體210。
微處理器單元202為快閃記憶體控制器104的主控單元,用以與記憶體管理單元204、主機介面單元206、快閃記憶體介面單元208與緩衝記憶體210等協同合作以進行快閃記憶體儲存裝置100的各種運作。
記憶體管理單元204是耦接至微處理器單元202,用以執行根據本範例實施例的資料讀取機制與區塊管理機制,記憶體管理單元204的運作將於以下配合圖式作詳細說明。
在本範例實施例中,記憶體管理單元204是以一韌體型式實作在快閃記憶體控制器104中。例如,將包括多個控制指令的記憶體管理單元204燒錄至一程式記憶體(例如,唯讀記憶體(Read Only Memory,ROM))中並且將此程式記憶體嵌入在快閃記憶體控制器104中,當快閃記憶體儲存裝置100運作時,記憶體管理單元204的多個控制指令會由微處理器單元202來執行以完成根據本發明實施例的資料讀取機制與區塊管理機制。
在本發明另一範例實施例中,記憶體管理單元204的控制指令亦可以程式碼型式儲存於快閃記憶體晶片106的特定區域(例如,快閃記憶體晶片中專用於存放系統資料的系統區)中。同樣的,當快閃記憶體儲存裝置100運作時,記憶體管理單元204的多個控制指令會由微處理器單元202來執行。此外,在本發明另一範例實施例中,記憶體管理單元204亦可以一硬體型式實作在快閃記憶體控制器104中。
主機介面單元206是耦接至微處理器單元202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面單元206來傳送至微處理器單元202。在本範例實施例中,主機介面單元206是對應連接器204為SATA介面。然而,必須瞭解的是本發明不限於此,主機介面單元206亦可以是其他適合的資料傳輸介面。
快閃記憶體介面單元208是耦接至微處理器單元202並且用以存取快閃記憶體晶片106。也就是說,欲寫入至快閃記憶體晶片106的資料會經由快閃記憶體介面單元208轉換為快閃記憶體晶片106所能接受的格式。
緩衝記憶體210是耦接至微處理器單元202並且用以暫存來自於主機系統1000的資料與指令或來自於快閃記憶體晶片106的資料。值得一提的是,在本範例實施例中,緩衝記憶體210是配置在快閃記憶體控制器104中,然而,本發明不限於此,緩衝記憶體210亦可不配置在快閃記憶體控制器104中。
在本發明另一範例實施例中,快閃記憶體控制器亦可更包括其他功能模組。圖2是根據本發明另一範例實施例所繪示的快閃記憶體控制器的概要方塊圖。
請參照圖2,除了微處理器單元202、記憶體管理單元204、主機介面單元206與、快閃記憶體介面單元208與緩衝記憶體210之外,快閃記憶體控制器104'更包括錯誤校正單元292與電源管理單元294。
錯誤校正單元292是耦接至微處理器單元202並且用以執行一錯誤校正程序以確保資料的正確性。具體來說,當主機介面單元206從主機系統1000中接收到主機寫入指令時,錯誤校正單元292會為對應此主機寫入指令的寫入資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理單元204會將此寫入資料與對應的錯誤校正碼寫入至快閃記憶體晶片106中。而,當主機介面單元206從主機系統1000中接收到主機讀取指令時,記憶體管理單元204會從快閃記憶體晶片106中讀取對應此主機讀取指令的資料及其錯誤校正碼,並且錯誤校正單元292會依據此錯誤校正碼對所讀取的資料執行錯誤校正。
電源管理單元294是耦接至微處理器單元202並且用以控制快閃記憶體儲存裝置100的電源。
快閃記憶體晶片106是耦接至快閃記憶體控制器104並且用以儲存資料。快閃記憶體晶片106包括第0快閃記憶體模組122與第1快閃記憶體模組124。第0快閃記憶體模組122具有實體區塊122-(0)~122-(N),並且第1快閃記憶體模組124具有實體區塊124-(0)~124-(N)。實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊具有數個實體頁面(page)。在本範例實施例中,實體頁面為程式化的最小單元。換言之,實體頁面為寫入資料或讀取資料的最小單元。每一實體頁面通常包括使用者資料區與冗餘區。使用者資料區用以儲存使用者的資料,而冗餘區用以儲存系統的資料(例如,錯誤檢查與校正碼)。在本範例實施例中,第0快閃記憶體模組122與第1快閃記憶體模組124為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組。然而,本發明不限於此,第0快閃記憶體模組122與第1快閃記憶體模組124亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組。
值得一提的是,由於快閃記憶體的記憶胞僅能從“1”程式化為“0”,因此要更新實體區塊內的資料時必須先抹除實體區塊內的資料。然而,快閃記憶體的寫入是以頁面為單位,而抹除是以實體區塊為單位,所以在本範例實施例中,實體區塊會以輪替方式來儲存資料。
圖3A是根據本發明第一範例實施例所繪示之快閃記憶體晶片的方塊圖。必須瞭解的是,在此描述快閃記憶體之實體區塊的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體區塊是邏輯上的概念。也就是說,快閃記憶體之實體區塊的實際位置並未更動,而是邏輯上對快閃記憶體的實體區塊進行操作。
請參照圖3A,記憶體管理單元204會將實體區塊122-(0)~122-(N)與實體區塊124-(0)~124-(N)分組為邏輯地分組為系統區(system area)302、資料區(data area)304、備用區(spare area)306與取代區(replacement area)308。
邏輯上屬於系統區302的實體區塊122-(0)~122-(S)與實體區塊124-(0)~124-(S)是用以記錄提供給快閃記憶體控制器104的系統資料,此系統資料包括關於快閃記憶體晶片的製造商與型號、每一快閃記憶體模組的區域數、每一區域的實體區塊的數目、每一實體區塊的實體頁面數等。因此,在一般存取狀態下,主機系統1000是無法存取系統區中的實體區塊。
邏輯上屬於資料區304的實體區塊122-(S+1)~~122-(D)與實體區塊124-(S+1)~124-(D)是用以儲存主機系統1000所寫入的資料。一般來說,資料區304的實體區塊為主機系統1000存取之邏輯區塊所對映的實體區塊。也就是說,資料區的實體區塊為儲存有效資料的實體區塊。
邏輯上屬於備用區306的實體區塊122-(D+1)~~122-(A)與實體區塊124-(D+1)~124-(A)是用以輪替資料區中的實體區塊,因此在備用區306中的實體區塊為空或可
使用的單元,即無記錄資料或標記為已沒用的無效資料。也就是說,資料區304與備用區306的實體區塊會以輪替方式來儲存主機系統1000對快閃記憶體儲存裝置100寫入的資料。
邏輯上屬於取代區308中的實體區塊122-(A+1)~122-(N)與實體區塊124-(A+1)~124-(N)是替代實體區塊。例如,快閃記憶體晶片106於出廠時會預留4%的實體區塊作為更換使用。也就是說,當系統區302、資料區304與備用區306中的實體區塊損毀時,預留於取代區308中的實體區塊可用以取代損壞的實體區塊(即,壞實體區塊(bad block))。因此,倘若取代區308中仍存有可用之實體區塊且發生實體區塊損毀時,記憶體管理單元204會從取代區308中提取可用的實體區塊來更換損毀的實體區塊。倘若取代區308中無可用之實體區塊且發生實體區塊損毀時,則快閃記憶體儲存裝置100將會被宣告為寫入保護(write protect),而無法再寫入資料。因此,在一般存取狀態下,主機系統1000是無法存取取代區中的實體區塊。
必須瞭解的是,在快閃記憶體儲存裝置100的運作中,實體區塊122-(0)~122-(N)與實體區塊124-(0)~124-(N)被分組為系統區302、資料區304、備用區306與取代區308的分組關係會動態地變動。也就是說,當記憶體管理單元204將資料寫入至原本屬於備用區306的實體區塊(例如,實體區塊122-(D+1))後,此實體區塊會被關聯為資料區304。或者,當資料區304(或備用區306)中的實體區塊損壞時而被取代區308的實體區塊取代時,則此來自於取代區308的實體區塊會被關聯為資料區304(或備用區304)。
例如,當快閃記憶體儲存裝置100接受到主機系統1000的主機寫入指令而欲更新(或寫入)資料至資料區中某一實體區塊的某一頁面時,記憶體管理單元204會從備用區中提取一實體區塊並且將欲被更新的實體區塊中的有效舊資料與欲寫入的新資料寫入至從備用區中提取之實體區塊的頁面中,並且將已寫入有效舊資料與新資料的實體區塊邏輯地關聯為資料區,並且將資料區中欲被更新的實體區塊進行抹除並邏輯地關聯為備用區。
為了能夠讓主機系統1000能夠順利地存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存裝置100會提供邏輯區塊給主機系統1000,並且記錄邏輯區塊與實體區塊之間的對映關係。
圖3B是根據本發明第一範例實施例所繪示之記錄邏輯區塊與實體區塊之間的對映示意圖。
請參照圖3B,快閃記憶體控制器104會配置邏輯區塊350-(0)~350-(H)給主機系統1000來進行存取,並且提供轉換層250來將邏輯區塊350-(0)~350-(H)對映至快閃記憶體晶片106之資料區304的實體區塊122-(S+1)~122-(D)與實體區塊124-(S+1)~124-(D)。必須瞭解的是,如上所述,實體區塊122-(0)~122-(N)與實體區塊124-(0)~124-(N)被分組為系統區302、資料區304、備用區306與取代區308的分組關係會隨著快閃記憶體裝置100的運作動態地變動,因此,邏輯區塊350-(0)~350-(H)與實體區塊122-(S+1)~122-(D)和實體區塊124-(S+1)~124-(D)之間的對映關係亦會動態地改變。例如,在邏輯區塊350-(0)對映資料區304的實體區塊122-(S+1)的例子中,倘若主機系統1000欲更新實體區塊122-(S+1)中的資料時,記憶體管理單元204從備用區306中提取實體區塊122-(D+1)以將資料寫入至實體區塊122-(D+1),並且將實體區塊122-(D+1)關聯為資料區304及將實體區塊122-(S+1)關聯為備用區306。此時,邏輯區塊350-(0)會變成對映實體區塊122-(D+1)。
在本範例實施例中,轉換層250具有邏輯區塊-實體區塊對映表(logical block-physical block mapping table)以記錄邏輯區塊所對映的實體區塊。並且,主機系統1000僅需在所提供之邏輯區塊350-(0)~350-(H)上存取資料,而快閃記憶體控制器104會依據邏輯區塊-實體區塊對映表來在實體區塊中實際地寫入與讀取資料。例如,每一邏輯區塊350-(0)~350-(H)會包括多個邏輯頁面,且每一邏輯頁面是由多個邏輯扇區所組成,其中此些邏輯扇區就是主機系統1000的存取單位,因此當主機系統1000在此些邏輯扇區中存取資料時,快閃記憶體控制器104就可依據所存取之邏輯扇區所屬的邏輯區塊來在實體區塊中實際地存取資料。
此外,值得一提的是,邏輯區塊-實體區塊對映表會被儲存於快閃記憶體晶片106中(例如,系統區中),並且在快閃記憶體儲存裝置100運作期間,邏輯區塊-實體區塊對映表會被載入至緩衝記憶體210中以使得記憶體管理單元204能夠讀取與更新邏輯區塊-實體區塊對映表。然而,在緩衝記憶體210的儲存空間有限下,緩衝記憶體210無法暫存記錄所有邏輯區塊之對映關係的邏輯區塊-實體區塊對映表。因此,在本範例實施例中記憶體管理單元204會將邏輯區塊350-(0)~350-(H)分組為邏輯區域(logical zone)360-(0)與360-(1),並且為邏輯區域360-(0)與360-(1)分別地配置邏輯區塊-實體區塊對映表260-(0)~260-(1)。具體來說,在邏輯區塊350-(0)~350-(H)之中邏輯區塊350-(0)~350-(G)會被分組為邏輯區域360-(0)並且邏輯區塊350(G+1)~350-(H)會被分組為邏輯區域360-(1),其中邏輯區塊350-(0)~350-(G)的對映資訊會被記錄在邏輯區塊-實體區塊對映表260-(0)中,而邏輯區塊350(G+1)~350-(H)對映資訊會被記錄在邏輯區塊-實體區塊對映表260-(1)。也就是說,每一邏輯區塊會屬於其中一個邏輯區域,並且記憶體管理單元204將邏輯區塊的對映關係分別地記錄在其所屬之邏輯區域的邏輯區塊-實體區塊對映表中。基此,當主機系統1000欲存取某一邏輯區塊時,記憶體管理單元204會依據欲存取之邏輯區塊所屬的邏輯區域來從快閃記憶體晶片106中載入對應的邏輯區塊-實體區塊對映表至緩衝記憶體210,並且依據對應的邏輯區塊-實體區塊對映表來進行資料的存取。之後,當需存取另一邏輯區域的邏輯區塊時,記憶體管理單元204會將目前使用之邏輯區塊-實體區塊對映表回存至快閃記憶體晶片106中並載入對應的另一邏輯區塊-實體區塊對映表至緩衝記憶體210。基此,可避免緩衝記憶體210無法儲存所有邏輯區塊之對映關係的問題。必須瞭解的是,在本範例實施例中,雖然是將邏輯區塊區分為兩個邏輯區域來作說明,然而本發明不限於此,上述邏輯區域的數目可為任意數目。
為能夠識別每一邏輯區塊所對映的邏輯區域,在本範例實施例中,轉換層250包括邏輯區塊-邏輯區域對映表270以記錄邏輯區塊與邏輯區域之間的對映關係。例如,邏輯區塊-邏輯區域對映表270會被儲存在快閃記憶體晶片106中(例如,系統區中),並且在快閃記憶體儲存裝置100運作時,記憶體管理單元204會將邏輯區塊-邏輯區域對映表270載入至緩衝記憶體210並且依據邏輯區塊-邏輯區域對映表270來載入對應的邏輯區塊-實體區塊對映表。另外,在快閃記憶體儲存裝置100準備停止運作時,記憶體管理單元204會將邏輯區塊-邏輯區域對映表270回存至快閃記憶體晶片106中。值得一提的是,在本範例實施例中,記憶體管理單元204是透過維護邏輯區塊-邏輯區域對映表270來記錄邏輯區塊與邏輯區域的對映關係,然而在本發明另一範例實施例中,記憶體管理單元204亦可透過一數學運算式來判斷邏輯區塊所屬的邏輯區域,或者使用邏輯區塊-實體區塊對映表來記錄邏輯區塊所屬的邏輯區域。
在本範例實施例中,在第0快閃記憶體模組122與快閃記憶體控制器104之間配置有第0資料輸入/輸出匯流排132,且在第1快閃記憶體模組124與快閃記憶體控制器104之間配置有第1資料輸入/輸出匯流排134,也就是說,快閃記憶體控制器104是經由第0資料輸入/輸出匯流排132來存取實體區塊122-(0)~122-(N),並且是經由第1資料輸入/輸出匯流排134來存取實體區塊124-(0)~124-(N)。特別是,第0資料輸入/輸出匯流排132與第1資料輸入/輸出匯流排134是彼此獨立,因此快閃記憶體控制器104能夠同時使用第0資料輸入/輸出匯流排132與第1資料輸入/輸出匯流排134來存取第0快閃記憶體模組122與第1快閃記憶體模組124。
例如,在主機系統1000欲讀取邏輯區塊350-(0)中的資料且目前邏輯區塊350-(0)是對映實體區塊122-(S+1)的例子中,當記憶體管理單元204從主機系統1000接收到主機讀取指令時,記憶體管理單元204會依據主機讀取指令中的資訊判斷此主機讀取指令是對應邏輯區塊350-(0)並且依據邏輯區塊350-(0)所屬的邏輯區域對應的邏輯區塊-實體區塊對映表(例如,邏輯區塊-實體區塊對映表260-0)而識別邏輯區塊350-(0)是對映實體區塊122-(S+1)。此外,由於實體區塊122-(S+1)是屬於第0快閃記憶體模組122,因此記憶體管理單元204會判斷此主機讀取指令是對應第0資料輸入/輸出匯流排132,也就是說,記憶體管理單元204會經由第0資料輸入/輸出匯流排132來讀取此主機讀取指令欲讀取的資料。
值得一提的是,在本發明範例實施例中,當主機系統1000欲下達多個主機讀取指令時,主機系統1000會先傳送關於此些主機讀取指令的指令排序資訊。藉由此指令排序資訊,記憶體管理單元204會依據所有主機讀取指令所對應的邏輯區塊與所對應的資料輸入/輸出匯流排來重新排列此些主機讀取指令的順序以產生下達指令順序,並且將所產生之下達指令順序回應給主機系統1000。之後,主機系統1000會依照所接收到的下達指令順序來傳送此些主機讀取指令。
例如,主機系統1000會使用原生指令排序(Native Command Queuing,NCQ)來傳送關於多個主機讀取指令的指令排序資訊。在使用NCQ協定來傳送關於多個主機讀取指令的指令排序資訊的例子中,連接器102與主機介面單元206是支援NCQ協定,並且主機系統1000與快閃記憶體控制器104之間是經由連接器102與主機介面單元206以NCQ協定來傳送主機讀取指令。
特別是,在本範例實施例中,記憶體管理單元204會依據下達指令順序經由第0資料輸入/輸出匯流排132與第1資料輸入/輸出匯流排134同時讀取對應兩個主機讀取指令的資料。以下將以一資料讀取範例來詳細說明記憶體管理單元204如何依據所有主機讀取指令所對應的資料輸入/輸出匯流排來重新排列此些主機讀取指令的順序,並且同時讀取對應兩個主機讀取指令的資料。
在此資料讀取範例中,主機系統1000傳送指令排序資訊給快閃記憶體儲存裝置100,其中此指令排序資訊是指示主機系統1000欲下達多個主機讀取指令,其中包括欲讀取邏輯區塊350-(0)中之資料的第1主機讀取指令CM1、欲讀取邏輯區塊350-(1)中之資料的第2主機讀取指令CM2、欲讀取邏輯區塊350-(G+1)中之資料的第3主機讀取指令CM3與欲讀取邏輯區塊350-(G+2)的第4主機讀取指令CM4。在此,假設邏輯區塊350-(0)是對映實體區塊122-(S+1)、邏輯區塊350-(1)是對映實體區塊122-(S+2)、邏輯區塊350-(G+1)是對映實體區塊124-(S+1)且邏輯區塊350-(G+2)是對映實體區塊124-(S+2)(如圖4所示)。
圖5A與圖5B是根據本發明第一範例實施例所繪示之記憶體管理單元重新排列主機讀取指令以產生下達指令順序的範例示意圖。
當快閃記憶體控制器104經由連接器102接收包含依序以第1主機讀取指令CM1、第2主機讀取指令CM2、第3主機讀取指令CM3與第4主機讀取指令CM4為傳送順序(如圖5A所示)的指令排序資訊時,記憶體管理單元204會依據此指令排序資訊中此些主機讀取指令對應的邏輯區塊和記錄於轉換層250中的資訊(例如,邏輯區塊-實體區塊對映表)來識別第1主機讀取指令CM1是對應第0資料輸入/輸出匯流排132、第2主機讀取指令CM2是對應第0資料輸入/輸出匯流排132、第3主機讀取指令CM3是對應第1資料輸入/輸出匯流排134且第4主機讀取指令CM4是對應第1資料輸入/輸出匯流排134。也就是說,記憶體管理單元204需經由第0資料輸入/輸出匯流排132來讀取第1主機讀取指令CM1與第2主機讀取指令CM2欲讀取的資料,並且需經由第1資料輸入/輸出匯流排134來讀取第3主機讀取指令CM3與第4主機讀取指令CM4欲讀取的資料。
如上所述,由於快閃記憶體控制器104可同時使用第0資料輸入/輸出匯流排132與第1資料輸入/輸出匯流排134來存取第0快閃記憶體模組122與第1快閃記憶體模組124,因此記憶體管理單元204會將對應不同之資料輸入/輸出匯流排的主機讀取指令接續排列,由此藉由經由多條資料輸入/輸出匯流排同步地讀取資料來縮短執行讀取指令的時間。
例如,如圖5B所示,在此資料讀取範例中,記憶體管理單元204會以第1主機讀取指令CM1、第3主機讀取指令CM3、第2主機讀取指令CM2與第4主機讀取指令CM4的順序來產生下達指令順序,並將所產生的下達指令順序傳送給主機系統1000,其中對應第1主機讀取指令CM1與第3主機讀取指令CM3的資料可被從快閃記憶體晶片106中同步地讀取,而對應第2主機讀取指令CM2與第4主機讀取指令CM4的資料可被從快閃記憶體晶片106中同步地讀取。
之後,當主機系統1000接收到此下達指令順序時,主機系統1000會先下達第1主機讀取指令CM1,並且記憶體管理單元204會開始處理第1主機讀取指令CM1以依據對應的邏輯區塊350-(0)經由第0資料輸入/輸出匯流排132從實體區塊122-(S+1)中來讀取資料。特別是,在處理第1主機讀取指令CM1的同時,記憶體管理單元204會經由第1資料輸入/輸出匯流排134來讀取第3主機讀取指令CM3欲讀取的資料(即,儲存在邏輯區塊350-(G+1)所對應之實體區塊124-(S+1)中的資料)。更詳細來說,雖然主機系統1000僅下達第1主機讀取指令CM1,然依據下達指令順序記憶體管理單元204已得知下一個指令為第3主機讀取指令CM3且第1資料輸入/輸出匯流排134是處於閒置狀態,因此記憶體管理單元204會在處理第1主機讀取指令CM1時同步地讀取對應第3主機讀取指令CM3的資料。
之後,當記憶體管理單元204將對應第1主機讀取指令CM1的資料傳送給主機系統1000後,主機系統1000會下達下一個指令(即,第3主機讀取指令CM3),此時記憶體管理單元204會直接地將對應第3主機讀取指令CM3的資料傳送給主機系統1000,而無需再從快閃記憶體晶片106中讀取資料。
接著,在主機系統1000接收到對應第3主機讀取指令CM3的資料後,主機系統1000會下達下一個指令(即,第2主機讀取指令CM2),並且記憶體管理單元204會開始處理第2主機讀取指令CM2以依據對應的邏輯區塊350-(1)經由第0資料輸入/輸出匯流排132從實體區塊122-(S+2)中來讀取資料。類似地,在處理第2主機讀取指令CM2的同時,記憶體管理單元204會經由第1資料輸入/輸出匯流排134來讀取對應第4主機讀取指令CM4欲讀取的資料(即,儲存在邏輯區塊350-(G+2)所對應之實體區塊124-(S+2)中的資料)。
之後,當記憶體管理單元204將對應第2主機讀取指令CM2的資料傳送給主機系統1000後,主機系統1000會下達下一個指令(即,第4主機讀取指令CM4),此時記憶體管理單元204會直接地將對應第4主機讀取指令CM4的資料傳送給主機系統1000,而無需再從快閃記憶體晶片106中讀取資料。
在此範例中,記憶體管理單元204會重新排列主機讀取指令的傳送順序,並且在執行第1主機讀取指令CM1時同時預先讀取對應第3主機讀取指令CM3的資料以及在執行第2主機讀取指令CM2時同時預先讀取對應第4主機讀取指令CM4的資料。例如,記憶體管理單元204會在處理第一(即,目前)主機讀取指令(例如,第1主機讀取指令CM1與第2主機讀取指令CM2)時預先讀取對應第二(即,後續)主機讀取指令的資料(例如,第3主機讀取指令CM3與第4主機讀取指令CM4)並將預先讀取之資料暫存於緩衝記憶體210中。之後,當接收到第二主機讀取指令時,則直接地從緩衝記憶體210中將對應的資料傳送給主機系統1000,由此可大幅縮短執行主機讀取指令的時間。
圖6是根據本發明第一範例實施例所繪示快閃記憶體控制器執行資料讀取方法的流程圖。
請參照圖6,首先,在步驟S601中快閃記憶體控制器104會從主機系統1000中接收關於欲傳送之多個主機讀取指令的指令排序資訊。接著,在步驟S603中快閃記憶體控制器104會依據每一主機讀取指令所對應的邏輯區塊判斷每一主機讀取指令所對應的資料輸入/輸出匯流排。具體來說,在步驟S601中快閃記憶體控制器104是使用NCQ協定從主機系統1000中接收指令排序資訊,以獲知主機系統1000欲傳送之多個主機讀取指令的指令排序資料。然而,必須瞭解的是,本發明不限於此,在本發明另一範例實施例中,快閃記憶體控制器104亦可使用其他適當的方式從主機系統1000中接收關於欲傳送之多個主機讀取指令的指令排序資訊。
在步驟S605中快閃記憶體控制器104會依據每一主機讀取指令所對應的資料輸入/輸出匯流排來產生下達指令順序,並且在步驟S607中將所產生的下達指令順序傳送給主機系統1000。
之後,在步驟S609中快閃記憶體控制器104會依據下達指令順序從主機系統1000中接收主機讀取指令,並且在步驟S611中判斷所接收到的主機讀取指令對應的資料是否已暫存於緩衝記憶體210中。
倘若所接收到的主機讀取指令對應的資料已暫存於緩衝記憶體210中時,則在步驟S613中從緩衝記憶體210中將主機讀取指令對應的資料傳送給主機系統1000,並且在步驟S615判斷是否已執行主機系統1000欲下達的所有主機讀取指令。倘若已執行所有主機讀取指令時,則結束圖6的流程;反之,則執行步驟S609來繼續接收下一個主機讀取指令。
倘若所接收到的主機讀取指令對應的資料未暫存於緩衝記憶體210中時,則在步驟S617中從快閃記憶體晶片106中讀取對應此主機讀取指令的資料並且依據下達指令順序同時讀取對應其他主機讀取指令的資料。具體來說,在步驟S617中,快閃記憶體控制器104在處理第一主機讀取指令時會依據下達指令順序來預先讀取對應第二主機讀取指令的資料,其中此些第二主機讀取指令所對的資料輸入/輸出匯流排是不同於第一主機讀取指令所對應的資料輸入/輸出匯流排。也就是說,快閃記憶體控制器104會利用處理第一主機讀取指令的期間使用其他閒置的資料輸入/輸出匯流排來預先讀取對應第二主機讀取指令的資料。
在步驟S619中將對應第一主機讀取指令的資料傳送給主機系統1000並且將預先讀取的資料暫存於緩衝記憶體210中。接著,快閃記憶體控制器104會執行步驟S615。
本發明第二範例實施例的快閃記憶體儲存裝置與主機系統本質上是相同於第一範例實施例的快閃記憶體儲存裝置與主機系統,其中差異在於第二範例實施例的記憶體管理單元會以不同的方式來重新排列主機系統欲傳送之主機讀取指令的傳送順序。以下將配合第一範例實施例的圖1A、圖1D、圖3A、圖3B與圖4來描述第二範例實施例。
在第一範例實施例中,快閃記憶體控制器104的記憶體管理單元204會從主機系統1000中接收關於主機讀取指令的指令排序資訊並依據主機讀取指令所對應的資料輸入/輸出匯流排來產生下達指令順序,由此藉由同步地透過多條資料輸入/輸出匯流排預先讀取第二主機讀取指令的資料來縮短執行主機讀取指令的時間。除了依據主機讀取指令所對應的資料輸入/輸出匯流排來產生下達指令順序之外,在本發明第二範例實施例中記憶體管理單元204更會依據主機讀取指令所對應的邏輯區塊所屬的邏輯區域來產生下達指令順序,以更縮短執行主機讀取指令的時間。
具體來說,如上所述,邏輯區塊350-(0)~350-(H)會被分組為邏輯區域360-(0)與邏輯區域360-(1),並且記憶體管理單元204會為每一邏輯區域配置獨立的邏輯區塊-實體區塊對映表。因此,當主機系統1000存取屬於不同邏輯區域的邏輯區塊時,記憶體管理單元204需從快閃記憶體晶片106中載入對應的邏輯區塊-實體區塊對映表,因此若在執行多筆主機讀取指令時,能夠減少不同邏輯區塊-實體區塊對映表之間的切換,將能夠有效縮短執行主機讀取指令的時間。
以下將以一資料讀取範例來詳細說明在第二範例實施例中記憶體管理單元204如何依據所有主機讀取指令所對應的邏輯區塊、所對應的資料輸入/輸出匯流排以及所對應的邏輯區域來重新排列此些主機讀取指令的順序,並且同時讀取對應兩個主機讀取指令的資料。
在此資料讀取範例中,主機系統1000傳送指令排序資訊給快閃記憶體儲存裝置100,其中此指令排序資訊是指示主機系統1000欲下達多個主機讀取指令,其中包括欲讀取邏輯區塊350-(0)中之資料的第1主機讀取指令CM1、欲讀取邏輯區塊350-(1)中之資料的第2主機讀取指令CM2、欲讀取邏輯區塊350-(G+1)中之資料的第3主機讀取指令CM3與欲讀取邏輯區塊350-(G+2)的第4主機讀取指令CM4。在此,假設邏輯區塊350-(0)是對映實體區塊122-(S+1)、邏輯區塊350-(1)是對映實體區塊122-(S+2)、邏輯區塊350-(G+1)是對映實體區塊124-(S+1)且邏輯區塊350-(G+2)是對映實體區塊124-(S+2),其中邏輯區塊350-(0)與邏輯區塊350-(1)是屬於邏輯區域360-(0)且邏輯區塊350-(G+1)與邏輯區塊350-(G+2)是屬於邏輯區域360-(1)(如圖4所示)。此外,假設目前載入於緩衝記憶體210中的邏輯區塊-實體區塊對映表是對應邏輯區域360-(1)的邏輯區塊-實體區塊對映表260-(1)。
圖7A、圖7B與圖7C是根據本發明第二範例實施例所繪示之記憶體管理單元重新排列主機讀取指令以產生下達指令順序的範例示意圖。
當快閃記憶體控制器104接收到以第1主機讀取指令CM1、第2主機讀取指令CM2、第3主機讀取指令CM3與第4主機讀取指令CM4為順序(如圖7A所示)的指令排序資訊時,記憶體管理單元204會依據此指令排序資訊中此些主機讀取指令對應的邏輯區塊和記錄於轉換層250中的資訊(例如,邏輯區塊-實體區塊對映表)來識別第1主機讀取指令CM1是對應第0資料輸入/輸出匯流排132、第2主機讀取指令CM2是對應第0資料輸入/輸出匯流排132、第3主機讀取指令CM3是對應第1資料輸入/輸出匯流排134且第4主機讀取指令CM4是對應第1資料輸入/輸出匯流排134。也就是說,記憶體管理單元204需經由第0資料輸入/輸出匯流排132來讀取第1主機讀取指令CM1與第2主機讀取指令CM2欲讀取的資料,並且需經由第1資料輸入/輸出匯流排134來讀取第3主機讀取指令CM3與第4主機讀取指令CM4欲讀取的資料。
例如,如圖7B所示,記憶體管理單元204會先依據主機讀取指令所對應的資料輸入/輸出匯流排以第1主機讀取指令CM1、第3主機讀取指令CM3、第2主機讀取指令CM2與第4主機讀取指令CM4的順序來排列主機系統1000欲發送之主機讀取指令,其中對應第1主機讀取指令CM1與第3主機讀取指令CM3的資料可被從快閃記憶體晶片106中同步地讀取,而對應第2主機讀取指令CM2與第4主機讀取指令CM4的資料可被從快閃記憶體晶片106中同步地讀取。
接著,記憶體管理單元204會再依據目前暫存於緩衝記憶體中的邏輯區塊-實體區塊對映表來調整預期之下達指令順序。例如,目前暫存於緩衝記憶體中的邏輯區塊-實體區塊對映表是對應邏輯區域360-(1)的邏輯區塊-實體區塊對映表260-(1),因此在第1主機讀取指令CM1與第3主機讀取指令CM3之中記憶體管理單元204會優先處理對應邏輯區域360-(1)的第3主機讀取指令CM3,再處理第1主機讀取指令CM1。之後,當處理第1主機讀取指令CM1時,載入於緩衝記憶體中的邏輯區塊-實體區塊對映表260-(1)將會被切換為對應邏輯區域360-(0)的邏輯區塊-實體區塊對映表260-(0),因此,在處理第1主機讀取指令CM1之後,相較於第4主機讀取指令CM4,記憶體管理單元204會優先處理對應邏輯區域360-(0)的第2主機讀取指令CM2。基此,如圖7C所示,記憶體管理單元204會以第3主機讀取指令CM3、第1主機讀取指令CM1、第2主機讀取指令CM2與第4主機讀取指令CM4的順序來產生下達指令順序,並且將所產生的下達指令順序傳送給主機系統1000。
之後,當主機系統1000接收到此下達指令順序時,主機系統1000會先發送第3主機讀取指令CM3,並且記憶體管理單元204會開始處理第3主機讀取指令CM3以依據對應的邏輯區塊350-(G+1)經由第1資料輸入/輸出匯流排134從實體區塊124-(S+1)中來讀取資料。並且,在處理第3主機讀取指令CM3的同時,記憶體管理單元204會經由第0資料輸入/輸出匯流排132來讀取對應第1主機讀取指令CM1欲讀取的資料(即,儲存在邏輯區塊350-(0)所對應之實體區塊122-(S+1)中的資料)。期間,記憶體管理單元204先依據已載入於緩衝記憶體210的邏輯區塊-實體區塊對映表260-(1)來獲取相關的對映資訊,並且之後關閉邏輯區塊-實體區塊對映表260-(1)與載入邏輯區塊-實體區塊對映表260-(0)來獲取相關的對映資訊。
之後,當記憶體管理單元204將對應第3主機讀取指令CM3的資料傳送給主機系統1000後,主機系統1000會下達下一個指令(即,第1主機讀取指令CM1),此時記憶體管理單元204會直接地從緩衝記憶體210中將對應第1主機讀取指令CM1的資料傳送給主機系統1000,而無需再從快閃記憶體晶片106中讀取資料。
在主機系統1000接收到第1主機讀取指令CM1的資料後,主機系統1000會發送下一個指令(即,第2主機讀取指令CM2),並且記憶體管理單元204會開始處理第2主機讀取指令CM2以依據對應的邏輯區塊350-(1)經由第0資料輸入/輸出匯流排132從實體區塊122-(S+2)中來讀取資料。類似地,在處理第2主機讀取指令CM2的同時,記憶體管理單元204會經由第1資料輸入/輸出匯流排134來讀取對應第4主機讀取指令CM4欲讀取的資料(即,儲存在邏輯區塊350-(G+2)所對應之實體區塊124-(S+2)中的資料)。期間,記憶體管理單元204先依據已載入於緩衝記憶體210的邏輯區塊-實體區塊對映表260-(0)來獲取相關的對映資訊,並且之後關閉邏輯區塊-實體區塊對映表260-(0)與載入邏輯區塊-實體區塊對映表260-(1)來獲取相關的對映資訊。
之後,當記憶體管理單元204將對應第2主機讀取指令CM2的資料傳送給主機系統1000後,主機系統1000會下達下一個指令(即,第4主機讀取指令CM4),此時記憶體管理單元204會立即將對應第4主機讀取指令CM4的資料傳送給主機系統1000。
值得一提的是,在上述資料讀取範例中,對應同一資料輸入/輸出匯流排的邏輯區塊是屬於同一邏輯區域,然而本發明不限於此,在本發明另一範例實施例中,對應不同資料輸入/輸出匯流排的邏輯區塊亦可以是屬於同一邏輯區域。例如,在邏輯區塊350-(0)與邏輯區塊350-(G+1)是屬於邏輯區域360-(0)且邏輯區塊350-(1)與邏輯區塊350-(G+2)是屬於邏輯區域360-(1)的另一範例實施例中,假設在上述資料讀取範例中記憶體管理單元204先依據主機讀取指令所對應的資料輸入/輸出匯流排將主機系統1000所傳送之多筆主機讀取指令的順序(如圖8A所示)以第1主機讀取指令CM1、第3主機讀取指令CM3、第2主機讀取指令CM2與第4主機讀取指令CM4的順序(如圖8B所示)來排列之後,由於目前載入於緩衝記憶體中的邏輯區塊-實體區塊對映表是對應邏輯區域360-(1)的邏輯區塊-實體區塊對映表260-(1),因此記憶體管理單元204會預期優先處理對應邏輯區域360-(1)的第2主機讀取指令CM2或第4主機讀取指令CM4。基此,在對應第1主機讀取指令CM1與第3主機讀取指令CM3的資料可被從快閃記憶體晶片106中同步地讀取,而對應第2主機讀取指令CM2與第4主機讀取指令CM4的資料可被從快閃記憶體晶片106中同步地讀取的情況下,例如,記憶體管理單元204會以第2主機讀取指令CM2、第4主機讀取指令CM4、第1主機讀取指令CM1與第3主機讀取指令CM3的順序(如圖8C所示)來產生下達指令順序。基此,記憶體管理單元204僅需於處理第1主機讀取指令CM1時關閉邏輯區塊-實體區塊對映表260-(1)與載入邏輯區塊-實體區塊對映表260-(0)來獲取相關的對映資訊。
基於上述,在本發明第二範例實施例中,記憶體管理單元204更依據每一主機讀取指令所對應的邏輯區域來產生下達指令順序,因此可減少切換邏輯區塊-實體區塊對映表的次數,而更縮短執行主機讀取指令的時間。
圖9根據本發明第二範例實施例所繪示快閃記憶體控制器執行資料讀取方法的流程圖。
請參照圖9,圖9中的步驟S901、S903、S907、S909、S911、S913、S915、S917與S919是相同於圖6中的步驟S601、S603、S607、S609、S611、S613、S615、S617與S619,在此不再重複說明。圖9與圖6的差異在於快閃記憶體控制器104會依據每一主機讀取指令所對應的資料輸入/輸出匯流排以及所對應的邏輯區域來產生下達指令順序(S905)。
值得一提的是,儘管上述範例實施例是以兩個快閃記憶體模組與兩條資料輸入/輸出匯流排來進行說明,然而本發明不限於此,快閃記憶體模組與資料輸入/輸出匯流排的數目可以是任意數目。
綜上所述,根據本發明範例實施例的資料讀取方法藉接收關於主機讀取指令的指令排序資訊以及依據主機讀取指令所對應的資料輸入/輸出匯流來重新排列多個主機讀取指令的傳送順序,並且經由多條資料輸入/輸出匯流排來同步地讀取與預讀取對應不同主機讀取指令的資料,由此可大幅度地縮短執行主機讀取指令的時間。此外,在本發明另一範例實施例中,除了依據主機讀取指令所對應的資料輸入/輸出匯流之外,根據本發明範例實施例的資料讀取方法更依據主機讀取指令所對應的邏輯區域來重新排列多個主機讀取指令的發送順序,由此可減少切換邏輯區塊-實體區塊對映表的次數,進而更縮短執行主機讀取指令的時間。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000...主機系統
1100...電腦
1102...微處理器
1104...隨機存取記憶體
1106...輸入/輸出裝置
1108...系統匯流排
1110...資料傳輸介面
1202...滑鼠
1204...鍵盤
1206...顯示器
1208...印表機
1212...隨身碟
1214...記憶卡
1216...固態硬碟
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒
1318...CF卡
1320...嵌入式儲存裝置
100...快閃記憶體儲存裝置
102...連接器
104...快閃記憶體控制器
106...快閃記憶體晶片
122...第0快閃記憶體模組
122-(0)~122(N)、124(0)~124-(N)...實體區塊
124...第1快閃記憶體模組
132...第0資料輸入/輸出匯流排
134...第1資料輸入/輸出匯流排
202...微處理器單元
204...記憶體管理單元
206...主機介面單元
208...快閃記憶體介面單元
210...緩衝記憶體
250...轉換層
260-(0)、260-(1)...邏輯區塊-實體區塊對映表
270...邏輯區塊-邏輯區域對映表
292...錯誤校正單元
294...電源管理單元
302...系統區
304...資料區
306...備用區
308...取代區
350-(0)~350-(H)...邏輯區塊
360-(0)~360-(1)...邏輯區域
CM1...第1主機讀取指令指令
CM2...第2主機讀取指令指令
CM3...第3主機讀取指令指令
CM4...第4主機讀取指令指令
S601、S603、S605、S607、S609、S611、S613、S615、S617、S619...資料讀取步驟
S901、S903、S905、S907、S909、S911、S913、S915、S917、S919...資料讀取步驟
圖1A是根據本發明第一範例實施例繪示使用快閃記憶體儲存裝置的主機系統。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與快閃記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與快閃記憶體儲存裝置的示意圖。
圖1D是繪示圖1A所示快閃記憶體儲存裝置的概要方塊圖。
圖2是根據本發明另一範例實施例所繪示的快閃記憶體控制器的概要方塊圖。
圖3A是根據本發明第一範例實施例所繪示之快閃記憶體晶片的方塊圖。
圖3B是根據本發明第一範例實施例所繪示記錄邏輯區塊與實體區塊之間的對映示意圖。
圖4是根據本發明第一範例實施例所繪示的邏輯區塊與實體區塊的對映範例示意圖。
圖5A與圖5B是根據本發明第一範例實施例所繪示記憶體管理單元重新排列主機讀取指令以產生下達指令順序的範例示意圖。
圖6是根據本發明第一範例實施例所繪示快閃記憶體控制器執行資料讀取方法的流程圖。
圖7A、圖7B與圖7C是根據本發明第二範例實施例所繪示記憶體管理單元重新排列主機讀取指令以產生下達指令順序的範例示意圖。
圖8A、圖8B與圖8C是根據本發明第二範例實施例所繪示記憶體管理單元重新排列主機讀取指令以產生下達指令順序的範例示意圖。
圖9根據本發明第二範例實施例所繪示快閃記憶體控制器執行資料讀取方法的流程圖。
S601、S603、S605、S607、S609、S611、S613、S615、S617、S619...資料讀取步驟
Claims (27)
- 一種資料讀取方法,適用於由一快閃記憶體控制器處理來自於一主機系統的多個主機讀取指令以從多個快閃記憶體模組中讀取對應該些主機讀取指令的資料,其中該快閃記憶體控制器分別地經由多條資料輸入/輸出匯流排耦接至該些快閃記憶體模組並且每一該些快閃記憶體模組具有多個實體區塊,該資料讀取方法包括:配置多個邏輯區塊,其中該些邏輯區塊對映該些快閃記憶體模組中的部份該些實體區塊;從該主機系統中接收關於該些主機讀取指令的一指令排序資訊,其中每一該些主機讀取指令對應該些邏輯區塊的其中之一且每一該些邏輯區塊對應該些資料輸入/輸出匯流排的其中之一;依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排來重新排列該些主機讀取指令的順序與產生一下達指令順序;將該下達指令順序傳送給該主機系統;以及依據該下達指令順序從該主機系統中依序地接收該些主機讀取指令並且依據該些主機讀取指令從該些快閃記憶體模組中讀取對應該些主機讀取指令的資料。
- 如申請專利範圍第1項所述之資料讀取方法,其中從該主機系統中接收關於該些主機讀取指令的指令排序資訊的步驟包括:使用一原生指令排序(Native Command Queuing,NCQ)協定從該主機系統中接收關於該些主機讀 取指令的指令排序資訊。
- 如申請專利範圍第1項所述之資料讀取方法,其中依據該下達指令順序從該主機系統中依序地接收該些主機讀取指令並且依據該些主機讀取指令從該些快閃記憶體模組中讀取對應該些主機讀取指令的資料的步驟包括:當從該主機系統中接收到該些主機讀取指令之中的一第一主機讀取指令時,經由該些資料輸入/輸出匯流排從該些快閃記憶體模組中同步地讀取對應該第一主機讀取指令的資料和該些主機讀取指令之中的至少一第二主機讀取指令的資料,其中該第一主機讀取指令和該至少一第二主機讀取指令是對應該些資料輸入/輸出匯流排之中不同的資料輸入/輸出匯流排;以及將對應該第一主機讀取指令的資料傳送給該主機系統。
- 如申請專利範圍第3項所述之資料讀取方法,更包括將對應該至少一第二主機讀取指令的資料暫存於該快閃記憶體控制器的一緩衝記憶體中。
- 如申請專利範圍第4項所述之資料讀取方法,其中依據該下達指令順序從該主機系統中依序地接收該些主機讀取指令並且依據該些主機讀取指令從該些快閃記憶體模組中讀取對應該些主機讀取指令的資料的步驟更包括:當從該主機系統中接收到該至少一第二主機讀取指令時,從該緩衝記憶體中將對應該至少一第二主機讀取指令的資料傳送給該主機系統。
- 如申請專利範圍第4項所述之資料讀取方法,更包括:將該些邏輯區塊分組為多個邏輯區域,以及為每一該些邏輯區域配置一邏輯區塊-實體區塊對映表,其中每一該些邏輯區塊對應該些邏輯區塊-實體區塊對映表的其中之一;以及載入該些邏輯區塊-實體區塊對映表的其中之一至該緩衝記憶體中。
- 如申請專利範圍第6項所述之資料讀取方法,其中依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排重新排列該些主機讀取指令的順序與產生該下達指令順序的步驟包括:依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排與該些邏輯區域來重新排列該些主機讀取指令的順序與產生該下達指令順序。
- 如申請專利範圍第7項所述之資料讀取方法,其中依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排與該些邏輯區域來重新排列該些主機讀取指令的順序與產生該下達指令順序的步驟包括:在該下達指令順序中優先安排該些主機讀取指令之中的至少一主機讀取指令,其中該至少一主機讀取指令所對應的邏輯區塊是對應被載入於該緩衝記憶體中的邏輯區塊-實體區塊對映表。
- 一種快閃記憶體儲存系統,包括: 一快閃記憶體晶片,具有多個快閃記憶體模組,並且每一該些快閃記憶體模組具有多個實體區塊;一快閃記憶體控制器,經由多條資料輸入/輸出匯流排耦接至該些快閃記憶體模組,用以配置多個邏輯區塊,其中該些邏輯區塊對映該些快閃記憶體模組中的部分該些實體區塊;以及一連接器,耦接至該快閃記憶體控制器並且用以耦接一主機系統,其中該快閃記憶體控制器經由該連接器從該主機系統中接收關於多個主機讀取指令的一指令排序資訊,其中每一該些主機讀取指令對應該些邏輯區塊的其中之一且每一該些邏輯區塊對應該些資料輸入/輸出匯流排的其中之一,其中該快閃記憶體控制器依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排來重新排列該些主機讀取指令,其中在該些讀取指令之中原相鄰排列且對應相同的資料輸入/輸出匯流排的至少兩個主機讀取指令會被重新排列為分別地與對應不同資料輸入/輸出匯流排的讀取指令相鄰,其中該快閃記憶體控制器依據所重新排列的該些主機讀取指令經由該些資料輸入/輸出匯流排從該些快閃記憶體模組中讀取對應該些主機讀取指令的資料。
- 如申請專利範圍第9項所述之快閃記憶體儲存系統,其中該連接器為支援一原生指令排序(Native Command Queuing,NCQ)協定。
- 如申請專利範圍第9項所述之快閃記憶體儲存系統,更包括一緩衝記憶體,其中該快閃記憶體控制器經由該些資料輸入/輸出匯流排從該些快閃記憶體模組中同步地讀取對應該些主機讀取指令之中的一第一主機讀取指令的資料和該些主機讀取指令之中的至少一第二主機讀取指令的資料,其中該第一主機讀取指令和該至少一第二主機讀取指令是對應該些資料輸入/輸出匯流排之中不同的資料輸入/輸出匯流排,其中該快閃記憶體控制器將對應該第一主機讀取指令的資料傳送給該主機系統並且將對應該至少一第二主機讀取指令的資料暫存於該緩衝記憶體中,其中在對應該第一主機讀取指令的資料傳送給該主機系統之後,該快閃記憶體控制器從該緩衝記憶體中將對應該至少一第二主機讀取指令的資料傳送給該主機系統。
- 如申請專利範圍第11項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器將該些邏輯區塊分組為多個邏輯區域,並且為每一該些邏輯區域配置一邏輯區塊-實體區塊對映表,其中每一該些邏輯區塊對應該些邏輯區塊-實體區塊對映表的其中之一,其中該快閃記憶體控制器載入該些邏輯區塊-實體區塊對映表的其中之一至該緩衝記憶體。
- 如申請專利範圍第12項所述之快閃記憶體儲存 系統,其中該快閃記憶體控制器更依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排與該些邏輯區域來重新排列該些主機讀取指令。
- 如申請專利範圍第13項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器優先安排所重新排列的該些主機讀取指令之中的至少一主機讀取指令,其中該至少一主機讀取指令所對應的邏輯區塊是對應暫存於該緩衝記憶體中的邏輯區塊-實體區塊對映表。
- 如申請專利範圍第9項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排來接續排列該些主機讀取指令並且藉由該些資料輸入/輸出匯流排同步地讀取對應該些主機讀取指令的資料。
- 一種資料讀取方法,用於由一快閃記憶體控制器處理來自於一主機系統的多個主機讀取指令以從多個快閃記憶體模組中讀取對應該些主機讀取指令的資料,其中該快閃記憶體控制器分別地經由多條資料輸入/輸出匯流排耦接至該些快閃記憶體模組並且每一該些快閃記憶體模組具有多個實體區塊,該資料讀取方法包括:配置多個邏輯區塊,其中該些邏輯區塊對映該些快閃記憶體模組中的部份該些實體區塊;從該主機系統中接收關於該些主機讀取指令的一指令排序資訊,其中每一該些主機讀取指令對應該些邏輯區塊的其中之一且每一該些邏輯區塊對應該些資料輸入/輸 出匯流排的其中之一;依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排來重新排列該些主機讀取指令的順序,其中在該些讀取指令之中原相鄰排列且對應相同的資料輸入/輸出匯流排的至少兩個主機讀取指令會被重新排列為分別地與對應不同資料輸入/輸出匯流排的讀取指令相鄰;以及依據重新排列的該些主機讀取指令從該些快閃記憶體模組中讀取對應該些主機讀取指令的資料。
- 如申請專利範圍第16項所述之資料讀取方法,其中依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排來重新排列該些主機讀取指令的順序的步驟包括:依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排來接續排列該些主機讀取指令,其中依據重新排列的該些主機讀取指令從該些快閃記憶體模組中讀取對應該些主機讀取指令的資料的步驟包括:依據重新排列的該些主機讀取指令藉由該些資料輸入/輸出匯流排從該些快閃記憶體模組中同步地讀取對應該些主機讀取指令的資料。
- 一種快閃記憶體控制器,用於處理來自於一主機系統的多個主機讀取指令以從多個快閃記憶體模組中讀取對應該些主機讀取指令的資料,其中每一該些快閃記憶體模組具有多個實體區塊,該快閃記憶體控制器包括:一微處理器單元;一快閃記憶體介面單元,耦接至該微處理器單元,用 以經由多條資料輸入/輸出匯流排耦接至該些快閃記憶體模組;一主機介面單元,耦接至該微處理器單元,用以連接該主機系統;以及一記憶體管理單元,耦接至該微處理器單元,用以配置多個邏輯區塊,其中該些邏輯區塊對映該些快閃記憶體模組中的部分該些實體區塊,其中該記憶體管理單元經由該主機介面單元從該主機系統中接收關於該些主機讀取指令的一指令排序資訊,其中每一該些主機讀取指令對應該些邏輯區塊的其中之一且每一該些邏輯區塊對應該些資料輸入/輸出匯流排的其中之一,其中該記憶體管理單元依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排來重新排列該些主機讀取指令,以將該些讀取指令之中對應不相同的資料輸入/輸出匯流排的至少兩個主機讀取指令相鄰排列,以使對應不相同的資料輸入/輸出匯流排的該至少兩個主機讀取指令至少部分同步地被執行,其中該記憶體管理單元根據所重新排列的該些主機讀取指令經由該快閃記憶體介面單元從該些快閃記憶體模組中讀取對應該些主機讀取指令的資料。
- 一種快閃記憶體儲存系統,包括:一快閃記憶體晶片,具有多個快閃記憶體模組,並且每一該些快閃記憶體模組具有多個實體區塊; 一快閃記憶體控制器,經由多條資料輸入/輸出匯流排耦接至該些快閃記憶體模組,用以配置多個邏輯區塊,其中該些邏輯區塊對映該些快閃記憶體模組中的部分該些實體區塊;以及一連接器,耦接至該快閃記憶體控制器並且用以耦接一主機系統,其中該快閃記憶體控制器經由該連接器從該主機系統中接收關於多個主機讀取指令的一指令排序資訊,其中每一該些主機讀取指令對應該些邏輯區塊的其中之一且每一該些邏輯區塊對應該些資料輸入/輸出匯流排的其中之一,其中該快閃記憶體控制器依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排來重新排列該些主機讀取指令的順序與產生一下達指令順序,並且將該下達指令順序傳送給該主機系統,其中該快閃記憶體控制器依據該下達指令順序經由該連接器從該主機系統中依序地接收該些主機讀取指令並且依據該些主機讀取指令經由該些資料輸入/輸出匯流排從該些快閃記憶體模組中讀取對應該些主機讀取指令的資料。
- 如申請專利範圍第19項所述之快閃記憶體儲存系統,其中該連接器為支援一原生指令排序(Native Command Queuing,NCQ)協定。
- 如申請專利範圍第19項所述之快閃記憶體儲存 系統,其中當該快閃記憶體控制器從該主機系統中接收到該些主機讀取指令之中的一第一主機讀取指令時,快閃記憶體控制器經由該些資料輸入/輸出匯流排從該些快閃記憶體模組中同步地讀取對應該第一主機讀取指令的資料和該些主機讀取指令之中的至少一第二主機讀取指令的資料並且將對應該第一主機讀取指令的資料傳送給該主機系統,其中該第一主機讀取指令和該至少一第二主機讀取指令是對應該些資料輸入/輸出匯流排之中不同的資料輸入/輸出匯流排。
- 如申請專利範圍第21項所述之快閃記憶體儲存系統,更包括一緩衝記憶體,其中該快閃記憶體控制器將對應該至少一第二主機讀取指令的資料暫存於該緩衝記憶體中。
- 如申請專利範圍第22項所述之快閃記憶體儲存系統,其中當該快閃記憶體控制器從該主機系統中接收到該至少一第二主機讀取指令時,該快閃記憶體控制器從該緩衝記憶體中將對應該至少一第二主機讀取指令的資料傳送給該主機系統。
- 如申請專利範圍第22項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器將該些邏輯區塊分組為多個邏輯區域,並且為每一該些邏輯區域配置一邏輯區塊-實體區塊對映表,其中每一該些邏輯區塊對應該些邏輯區塊-實體區塊對映表的其中之一, 其中該快閃記憶體控制器載入該些邏輯區塊-實體區塊對映表的其中之一至該緩衝記憶體。
- 如申請專利範圍第24項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器更依據該些主機讀取指令所對應的該些資料輸入/輸出匯流排與該些邏輯區域來重新排列該些主機讀取指令的順序與產生該下達指令順序。
- 如申請專利範圍第25項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器在該下達指令順序中優先安排該些主機讀取指令之中的至少一主機讀取指令,其中該至少一主機讀取指令所對應的邏輯區塊是對應暫存於該緩衝記憶體中的邏輯區塊-實體區塊對映表。
- 如申請專利範圍第22項所述之快閃記憶體儲存系統,其中該緩衝記憶體配置在該快閃記憶體控制器中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098132338A TWI454906B (zh) | 2009-09-24 | 2009-09-24 | 資料讀取方法、快閃記憶體控制器與儲存系統 |
US12/614,662 US8301827B2 (en) | 2009-09-24 | 2009-11-09 | Data read method for processing a plurality of host read commands, and flash memory controller and storage system using the same |
US13/588,864 US8769192B2 (en) | 2009-09-24 | 2012-08-17 | Data read method for a plurality of host read commands, and flash memory controller and storage system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098132338A TWI454906B (zh) | 2009-09-24 | 2009-09-24 | 資料讀取方法、快閃記憶體控制器與儲存系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201111985A TW201111985A (en) | 2011-04-01 |
TWI454906B true TWI454906B (zh) | 2014-10-01 |
Family
ID=43757599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098132338A TWI454906B (zh) | 2009-09-24 | 2009-09-24 | 資料讀取方法、快閃記憶體控制器與儲存系統 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8301827B2 (zh) |
TW (1) | TWI454906B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013081580A1 (en) | 2011-11-29 | 2013-06-06 | Intel Corporation | Raw memory transaction support |
WO2013103339A1 (en) * | 2012-01-04 | 2013-07-11 | Intel Corporation | Bimodal functionality between coherent link and memory expansion |
KR101919903B1 (ko) | 2012-09-14 | 2018-11-19 | 삼성전자 주식회사 | 임베디드 멀티미디어 카드, 이를 제어하는 호스트, 및 이들의 동작 방법 |
KR101988260B1 (ko) | 2012-09-14 | 2019-06-12 | 삼성전자주식회사 | 임베디드 멀티미디어 카드, 및 이의 동작 방법 |
US10362568B2 (en) * | 2014-11-06 | 2019-07-23 | Commscope Technologies Llc | High-speed capture and analysis of downlink data in a telecommunications system |
TWI556249B (zh) * | 2014-11-07 | 2016-11-01 | 群聯電子股份有限公司 | 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元 |
CN105653199B (zh) * | 2014-11-14 | 2018-12-14 | 群联电子股份有限公司 | 数据读取方法、存储器存储装置及存储器控制电路单元 |
TWI544487B (zh) * | 2015-01-22 | 2016-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
TWI562154B (en) * | 2015-02-17 | 2016-12-11 | Silicon Motion Inc | Methods for reading data from a storage unit of a flash memory and apparatuses using the same |
US10152237B2 (en) | 2016-05-05 | 2018-12-11 | Micron Technology, Inc. | Non-deterministic memory protocol |
US10534540B2 (en) | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US10585624B2 (en) * | 2016-12-01 | 2020-03-10 | Micron Technology, Inc. | Memory protocol |
ES2840423T3 (es) | 2017-06-23 | 2021-07-06 | Huawei Tech Co Ltd | Tecnología de acceso a la memoria y sistema informático |
US11042492B2 (en) | 2017-10-24 | 2021-06-22 | Rambus Inc. | Memory module with programmable command buffer |
US10725901B2 (en) * | 2018-05-31 | 2020-07-28 | Western Digital Technologies, Inc. | Storage system and method for soft-decision-based command execution to enhance random write performance |
KR102650603B1 (ko) | 2018-07-24 | 2024-03-27 | 삼성전자주식회사 | 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법 |
TWI710905B (zh) * | 2019-05-06 | 2020-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置及邏輯至物理位址映射表之載入方法 |
US11282567B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Sequential SLC read optimization |
US11216364B2 (en) | 2020-02-18 | 2022-01-04 | Micron Technology, Inc. | Sequential read optimization in a memory sub-system that programs sequentially |
CN112130906A (zh) * | 2020-09-28 | 2020-12-25 | 深圳市宏旺微电子有限公司 | 一种主机命令处理的方法及装置 |
US11899945B2 (en) * | 2021-10-03 | 2024-02-13 | Silicon Motion, Inc. | Method and apparatus for performing communications specification version control of memory device in predetermined communications architecture with aid of compatibility management, and associated computer-readable medium |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200419362A (en) * | 2003-03-21 | 2004-10-01 | Via Tech Inc | Method for a display controller to access data stored in a system memory of a computer device |
TW200613979A (en) * | 2004-10-21 | 2006-05-01 | Mediatek Inc | Methods and devices for memory paging management |
TW200828014A (en) * | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Flash memory management method with low RAM utilization |
TW200900926A (en) * | 2007-04-25 | 2009-01-01 | Apple Inc | Command resequencing in memory operations |
US20090037652A1 (en) * | 2003-12-02 | 2009-02-05 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
CN101395574A (zh) * | 2006-03-10 | 2009-03-25 | 高通股份有限公司 | 存储器屏障总线命令的有效执行 |
US20090150894A1 (en) * | 2007-12-10 | 2009-06-11 | Ming Huang | Nonvolatile memory (NVM) based solid-state disk (SSD) system for scaling and quality of service (QoS) by parallelizing command execution |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6427186B1 (en) * | 1999-03-30 | 2002-07-30 | Frank (Fong-Long) Lin | Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers |
JP4037605B2 (ja) * | 2000-12-04 | 2008-01-23 | 株式会社東芝 | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 |
US20070143536A1 (en) * | 2005-06-07 | 2007-06-21 | Maxtor Corporation | Storage device that pre-fetches data responsive to host access stream awareness |
US20090327535A1 (en) * | 2008-06-30 | 2009-12-31 | Liu Tz-Yi | Adjustable read latency for memory device in page-mode access |
US8566507B2 (en) * | 2009-04-08 | 2013-10-22 | Google Inc. | Data storage device capable of recognizing and controlling multiple types of memory chips |
-
2009
- 2009-09-24 TW TW098132338A patent/TWI454906B/zh active
- 2009-11-09 US US12/614,662 patent/US8301827B2/en active Active
-
2012
- 2012-08-17 US US13/588,864 patent/US8769192B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200419362A (en) * | 2003-03-21 | 2004-10-01 | Via Tech Inc | Method for a display controller to access data stored in a system memory of a computer device |
US20090037652A1 (en) * | 2003-12-02 | 2009-02-05 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
TW200613979A (en) * | 2004-10-21 | 2006-05-01 | Mediatek Inc | Methods and devices for memory paging management |
CN101395574A (zh) * | 2006-03-10 | 2009-03-25 | 高通股份有限公司 | 存储器屏障总线命令的有效执行 |
TW200828014A (en) * | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Flash memory management method with low RAM utilization |
TW200900926A (en) * | 2007-04-25 | 2009-01-01 | Apple Inc | Command resequencing in memory operations |
US20090150894A1 (en) * | 2007-12-10 | 2009-06-11 | Ming Huang | Nonvolatile memory (NVM) based solid-state disk (SSD) system for scaling and quality of service (QoS) by parallelizing command execution |
Also Published As
Publication number | Publication date |
---|---|
US8769192B2 (en) | 2014-07-01 |
US20120311247A1 (en) | 2012-12-06 |
US8301827B2 (en) | 2012-10-30 |
US20110072193A1 (en) | 2011-03-24 |
TW201111985A (en) | 2011-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI454906B (zh) | 資料讀取方法、快閃記憶體控制器與儲存系統 | |
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
TWI425512B (zh) | 快閃記憶體控制電路及其儲存系統與資料傳輸方法 | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
US9122498B2 (en) | Firmware code loading method, memory controller and memory storage apparatus | |
TWI479491B (zh) | 記憶體控制方法、記憶體控制器與記憶體儲存裝置 | |
US9009399B2 (en) | Flash memory storage system and controller and data writing method thereof | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20080082737A1 (en) | Memory card and semiconductor device | |
US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US7245539B2 (en) | Memory card, semiconductor device, and method of controlling semiconductor memory | |
US20100057979A1 (en) | Data transmission method for flash memory and flash memory storage system and controller using the same | |
US20140019670A1 (en) | Data writing method, memory controller, and memory storage device | |
US9235501B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
US20110107015A1 (en) | Data writing method for a flash memory, and flash memory controller and flash memory storage system using the same | |
US8943289B2 (en) | Data moving method for flash memory module, and memory controller and memory storage apparatus using the same | |
US8572350B2 (en) | Memory management, memory control system and writing method for managing rewritable semiconductor non-volatile memory of a memory storage system | |
US9146861B2 (en) | Memory address management method, memory controller and memory storage device | |
US20110029719A1 (en) | Data writing method for flash memory and control circuit and storage system using the same | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
TWI537726B (zh) | 資料讀取方法、快閃記憶體控制器與儲存系統 | |
US9009389B2 (en) | Memory management table processing method, memory controller, and memory storage apparatus | |
CN102043588B (zh) | 数据读取方法、闪存控制器与闪存储存系统 |