TW201610834A - 讀取命令排程方法以及使用該方法的裝置 - Google Patents

讀取命令排程方法以及使用該方法的裝置 Download PDF

Info

Publication number
TW201610834A
TW201610834A TW103130718A TW103130718A TW201610834A TW 201610834 A TW201610834 A TW 201610834A TW 103130718 A TW103130718 A TW 103130718A TW 103130718 A TW103130718 A TW 103130718A TW 201610834 A TW201610834 A TW 201610834A
Authority
TW
Taiwan
Prior art keywords
read
actual
data
access interface
storage location
Prior art date
Application number
TW103130718A
Other languages
English (en)
Other versions
TWI512609B (zh
Inventor
沈揚智
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW103130718A priority Critical patent/TWI512609B/zh
Priority to CN201810530348.XA priority patent/CN108733580A/zh
Priority to CN201410514010.7A priority patent/CN105528299B/zh
Priority to US14/738,481 priority patent/US9785546B2/en
Application granted granted Critical
Publication of TWI512609B publication Critical patent/TWI512609B/zh
Publication of TW201610834A publication Critical patent/TW201610834A/zh
Priority to US15/589,483 priority patent/US10042756B2/en
Priority to US16/031,598 priority patent/US10725902B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明的實施例提出一種讀取命令排程方法,由處理單元執行,包含下列步驟。透過第一存取介面從主裝置接收多個邏輯讀取命令,而每一個邏輯讀取命令請求讀取一個邏輯位址的資料。從高階對照表取得關聯於邏輯位址的多個對照表區塊的第一實際儲存位置,並驅動第二存取介面從第一實際儲存位置讀取對照表區塊。從對照表區塊取得關聯於邏輯位址的多個第二實際儲存位置,並驅動第二存取介面依據第二實際儲存位置從儲存單元讀取資料。驅動第一存取介面將關聯於邏輯位址的資料敲出給主裝置。

Description

讀取命令排程方法以及使用該方法的裝置
本發明關連於一種快閃記憶體裝置,特別是一種讀取命令排程方法以及使用該方法的裝置。
快閃記憶體裝置通常分為NOR快閃裝置與NAND快閃裝置。NOR快閃裝置為隨機存取裝置,而可於位址腳位上提供任何的位址,用以存取NOR快閃裝置的主裝置(host),並及時地由NOR快閃裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃裝置並非隨機存取,而是序列存取。NAND快閃裝置無法像NOR快閃裝置一樣,可以存取任何隨機位址,主裝置反而需要寫入序列的位元組(bytes)的值到NAND快閃裝置中,用以定義請求命令(command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(在快閃記憶體中的一個寫入作業的最小資料塊)或一個區塊(在快閃記憶體中的一個抹除作業的最小資料塊)。實際上,NAND快閃裝置通常從記憶體單元(memory cells)上讀取或寫入完整的數頁資料。當一整頁的資料從陣列讀取到裝置中的緩存器(buffer)後,藉由使用提取訊號(strobe signal)順序地敲出(clock out)內容,讓主單元可逐位元組或字元組(words)存取資料。降低快閃記憶體裝置的製造成本一直是被關注的議題,其 中包含如何節省動態隨機存取記憶體的空間。本發明於不使用動態隨機存取記憶體來儲存對照表的硬體架構上,提出一種讀取命令排程方法以及使用該方法的裝置。
本發明的實施例提出一種讀取命令排程方法,由處理單元執行,包含下列步驟。透過第一存取介面從主裝置接收多個邏輯讀取命令,而每一個邏輯讀取命令請求讀取一個邏輯位址的資料。從高階對照表取得關聯於邏輯位址的多個對照表區塊的第一實際儲存位置,並驅動第二存取介面從第一實際儲存位置讀取對照表區塊。從對照表區塊取得關聯於邏輯位址的多個第二實際儲存位置,並驅動第二存取介面依據第二實際儲存位置從儲存單元讀取資料。驅動第一存取介面將關聯於邏輯位址的資料敲出給主裝置。
本發明的實施例另提出一種讀取命令排程裝置,至少包含兩個存取介面以及處理單元。第一存取介面耦接於主裝置,而第二存取介面耦接於儲存單元。處理單元透過第一存取介面從主裝置接收多個邏輯讀取命令,而每一個邏輯讀取命令請求讀取一個邏輯位址的資料。處理單元從高階對照表取得關聯於邏輯位址的多個對照表區塊的第一實際儲存位置,以及驅動第二存取介面從儲存單元中的第一實際儲存位置讀取對照表區塊。處理單元從對照表區塊取得關聯於邏輯位址的多個第二實際儲存位置,以及驅動第二存取介面依據第二實際儲存位置從儲存單元讀取資料。最後,處理單元驅動第一存取介面將關聯於邏輯位址的資料敲出給主裝置。
10‧‧‧系統
110‧‧‧處理單元
120‧‧‧資料緩存器
130‧‧‧對照表緩存器
140‧‧‧先進先出佇列
150‧‧‧存取介面
160‧‧‧主裝置
170‧‧‧存取介面
170_0~170_j‧‧‧存取子介面
180‧‧‧儲存單元
180_0_0~180_j_i‧‧‧儲存子單元
210‧‧‧記憶體單元陣列
220‧‧‧行解碼單元
230‧‧‧列編碼單元
240‧‧‧位址單元
250‧‧‧資料緩存器
410_0‧‧‧資料線
420_0_0~420_0_i‧‧‧晶片致能控制訊號
S511~S531‧‧‧方法步驟
600_0~600_7‧‧‧邏輯讀取命令
700‧‧‧高階對照表
700_0~700_k‧‧‧紀錄
T0~Tk‧‧‧對照表區塊
901~904、911~914、921~924‧‧‧實際讀取命令
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。
第2圖係依據本發明實施例之快閃記憶體中的儲存單元示意圖。
第3圖係依據本發明實施例之存取介面與儲存單元的方塊圖。
第4圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。
第5圖係依據本發明實施例之執行於處理單元中之邏輯讀取命令排程方法流程圖。
第6圖係依據本發明實施例之邏輯讀取命令示意圖。
第7圖係依據本發明實施例之高階對照表示意圖。
第8A圖係依據本發明實施例之對照表區塊的實際儲存示意圖。
第8B圖係依據本發明實施例之對照表區塊及資料的實際儲存示意圖。
第9A及9B圖係依據本發明實施例之先進先出佇列示意圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包 括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。快閃記憶體的系統架構10中包含處理單元110,用以寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。詳細來說,處理單元110透過存取介面170寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。系統架構10使用數個電子訊號來協調處理單元110與儲存單元180間的資料與命令傳遞,包含資料線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(chip enable,CE)、位址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、寫入致能(write enable,WE)等控制訊號。存取介面170可採用雙倍資料率(double data rate,DDR)通訊協定與儲存單元180溝通,例如,開放NAND快閃(open NAND flash interface,ONFI)、雙倍資料率開關(DDR toggle)或其他介面。 處理單元110另可使用存取介面150透過指定通訊協定與主裝置160進行溝通,例如,通用序列匯流排(universal serial bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)或其他介面。
第2圖係依據本發明實施例之快閃記憶體中的儲存單元示意圖。儲存單元180可包含由MxN個記憶體單元(memory cells)組成的陣列(array)210,而每一個記憶體單元儲存至少一個位元(bit)的資訊。快閃記憶體可以是NAND型快閃記憶體,或其他種類的快閃記憶體。為了正確存取資訊,行解碼單元220用以選擇記憶體單元陣列210中指定的行,而列編碼單元230用以選擇指定行中一定數量的位元組的資料作為輸出。位址單元240提供行資訊給行解碼器220,其中定義了選擇記憶體單元陣列210中的那些行。相似地,列解碼器230則根據位址單元240提供的列資訊,選擇記憶體單元陣列210的指定行中一定數量的列進行讀取或寫入操作。行可稱為為字元線(wordline),列可稱為位元線(bitline)。資料緩存器(data buffer)250可儲存從記憶體單元陣列210讀取出的資料,或欲寫入記憶體單元陣列210中的資料。記憶體單元可為單層式單元(single-level cells,SLCs)、多層式單元(multi-level cells,MLCs)或三層式單元(triple-level cells,TLCs)。
儲存單元180可包含多個儲存子單元,每一個儲存子單元實施於一個晶粒(die)上,各自使用關聯的存取子介面與 處理單元110進行溝通。第3圖係依據本發明實施例之存取介面與儲存單元的方塊圖。快閃記憶體10可包含j+1個存取子介面170_0至170_j,存取子介面又可稱為通道(channel),每一個存取子介面連接i+1個儲存子單元。換句話說,i+1個儲存子單元共享一個存取子介面。例如,當快閃記憶體10包含4個通道(j=3)且每一個通道連接4個儲存單元(i=3)時,快閃記憶體10一共擁有16個儲存單元180_0_0至180_j_i。處理單元110可驅動存取子介面170_0至170_j中之一者,從指定的儲存子單元讀取資料。每個儲存子單元擁有獨立的晶片致能(CE)控制訊號。換句話說,當欲對指定的儲存子單元進行資料讀取時,需要驅動關聯的存取子介面致能此儲存子單元的晶片致能控制訊號。第4圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。處理單元110可透過存取子介面170_0使用獨立的晶片致能控制訊號420_0_0至420_0_i來從連接的儲存子單元180_0_0至180_0_i中選擇出其中一者,接著,透過共享的資料線410_0從選擇出的儲存子單元的指定位置讀取資料。
主裝置160可透過存取介面150提供邏輯區塊位址(LBA,Logical Block Address)給處理單元110,用以指示寫入或讀取特定區域的資料。存取介面170為最佳化資料寫入的效率,可將一段具有連續邏輯區塊位址的資料分散地擺放在不同儲存子單元中的不同區域。因此,需要一個對照表(又稱為H2F表),用以指出每個邏輯區塊位址的資料實際上存放在哪個儲存子單元中的哪個位置。於一種實施方式中,可於動態隨機存取記憶體中配置足夠大的空間來儲存此對照表。然而,這將會 佔用一部分動態隨機存取記憶體的資源,並且需要一段前置時間將整個對照表載入到動態隨機存取記憶體中。於另一種實施方式中,可將對照表切割成指定數量的對照表區塊(H2F segments),例如,32個對照表區塊,並分散儲存於儲存子單元180_0_0至180_j_i。每一個對照表區塊紀錄對應於一段邏輯區塊位址的資料實際儲存於哪個儲存子單元中的哪個位置的資訊,而此資訊可以區塊編號(block number)加上頁面編號(page number)表示。快閃記憶體的系統架構10中另包含對照表緩存器130,用以儲存高階對照表(high-level mapping table),包含多筆紀錄,用以儲存每一個對照表區塊實際儲存於哪個儲存子單元中的哪個位置的資訊,而此資訊同樣可以區塊編號加上頁面編號表示。對照表緩存器130為非揮發性儲存空間(non-volatile storage space),其中儲存的高階對照表並不會因斷電而遺失。而於每次接收到主裝置160發出的讀取命令及讀取邏輯區塊位址時,處理單元110先從對照表緩存器130中的高階對照表取得關聯於讀取邏輯區塊位址的對照表區塊的實際儲存位置,並將讀取此實際儲存位置的命令儲存至先進先出佇列(FIFO queue)140,使得存取介面170可依據先進先出佇列140的命令從指定儲存子單元中的指定位置上讀取處理單元110需要的對照表區塊,並搬到資料緩存器120。接著,處理單元110從對照表區塊取得關聯於讀取邏輯區塊位址的實際儲存位置,並將讀取此實際儲存位置的命令儲存至先進先出佇列140,使得存取介面170可依據先進先出佇列140的命令從指定儲存子單元中的指定位置上讀取主裝置160所請求的資料,並 搬到資料緩存器120。熟習此技藝人士了解一個先進先出子佇列可對應於一個儲存子單元,用以儲存相應於此儲存子單元的讀取命令。當主裝置160所請求的資料成功地被搬到資料緩存器120後,處理單元110驅動存取介面150將資料緩存器120中的資料敲出給主裝置160。於此須注意的是,從主裝置160發出的讀取命令與邏輯區塊位址可分別稱為邏輯讀取命令與邏輯讀取位址,儲存至先進先出佇列140的讀取命令與實際儲存位置可分別稱為實際讀取命令與實際讀取位址。此外,當一個實際讀取命令被執行完後,此命令將被移出先進先出佇列140。
為了實現如第1圖所示之快閃記憶體的系統架構10,需要一種方法來針對多筆的邏輯讀取命令進行排程。第5圖係依據本發明實施例之執行於處理單元中之邏輯讀取命令排程方法流程圖。處理單元110經由存取介面150接收主裝置160所發出的多筆邏輯讀取命令及邏輯讀取位址後(步驟S511),從對照表緩存器130中的高階對照表取得關聯於邏輯讀取位址的對照表區塊的實際儲存位置(步驟S513)。第6圖係依據本發明實施例之邏輯讀取命令示意圖。於一個例子中,處理單元110經由存取介面150接收主裝置160所發出的八筆邏輯讀取命令(LR,Logical Read)600_0至600_7,分別請求讀取LBA0、LBA1、LBA100、LBA101、LBA200、LBA201、LBA300及LBA301的資料。第7圖係依據本發明實施例之高階對照表示意圖。高階對照表700可包含k筆紀錄700_0至700_k,每一筆紀錄儲存一個對照表區塊的實際儲存位置的資訊Addr(T1),其中1為0到k的任意整數,此資訊可以區塊編號(block number)加上 頁面編號(page number)表示。例如,紀錄700_0紀錄第0個對照表區塊T0的實際儲存位置資訊Addr(T0);紀錄700_1紀錄第1個對照表區塊T1的實際儲存位置資訊Addr(T1),依此類推。每一個對照表區塊儲存一段連續邏輯區塊位址的實際儲存位置資訊。例如,對照表區塊T0紀錄LBA0~99的實際儲存位置資訊;對照表區塊T1紀錄LBA100~199的實際儲存位置資訊,依此類推。第8A圖係依據本發明實施例之對照表區塊的實際儲存示意圖。於一個例子中,存取子介面170_0連接四個儲存子單元180_0_0至180_0_3。於步驟S513中,例如,處理單元110使用一個數學公式n=m/100,其中,m代表邏輯區塊位址,n為一個代表對照表區塊編號的整數,得知關聯於邏輯讀取位址LBA0~1、LBA100~101、LBA200~201、LBA300~301的對照表區塊分別為T0、T1、T2及T3。接著,從對照表緩存器130中的高階對照表700取得關聯於邏輯讀取位址600_0至600_7的對照表區塊T0至T3的實際儲存位置Addr(T0)至Addr(T3)。範例的對照表區塊T0至T3的實際儲存位置可參考第8A圖。處理單元110接著儲存讀取實際儲存位置的實際讀取命令至先進先出佇列140(步驟S515)。第9A圖係依據本發明實施例之先進先出佇列示意圖。範例之先進先出佇列140包含四個子佇列140_0至140_3,分別關聯於儲存子單元180_0_0至180_0_3並儲存用以讀取對照表區塊T0至T3的實際讀取命令(PR,Physical Read)901至904。接著,處理單元110驅動存取介面170依據先進先出佇列140中的實際讀取命令讀取所需的對照表區塊並儲存至資料緩存器120(步驟S517)。參考第9A圖的範例,詳細來 說,處理單元110驅動存取子介面170_0依據子佇列140_0中的實際讀取命令901從儲存子單元180_0_0的實際儲存位置Addr(T0)讀取對照表區塊T0,依據子佇列140_1中的實際讀取命令902從儲存子單元180_0_1的實際儲存位置Addr(T1)讀取對照表區塊T1,依據子佇列140_2中的實際讀取命令903從儲存子單元180_0_2的實際儲存位置Addr(T2)讀取對照表區塊T2,並且,依據子佇列140_3中的實際讀取命令904從儲存子單元180_0_3的實際儲存位置Addr(T3)讀取對照表區塊T3,並且將對照表區塊T0至T3儲存至資料緩存器120。
於所有需要的對照表區塊準備完成後,處理單元110反覆執行一個迴圈,用以依據主裝置160請求的邏輯讀取命令從對照表區塊取得實際讀取位置並且將讀取這些位置的實際讀取命令儲存至先進先出佇列140,直到所有的邏輯讀取命令都處理完畢。於每一次的迴圈中,詳細來說,處理單元110從資料緩存器120中的對照表區塊取得關聯於一個邏輯讀取位址的實際儲存位置(步驟S521),並且儲存讀取此實際儲存位置的實際讀取命令至先進先出佇列140(步驟S523)。接著,判斷是否處理完所有的邏輯資料讀取命令(步驟S531),是則回到步驟S511繼續下一批次的多筆邏輯資料讀取命令的處理,否則回到步驟S521繼續處理下一個邏輯資料讀取命令。第8B圖係依據本發明實施例之對照表區塊及資料的實際儲存示意圖。於步驟S521執行時,處理單元110從對照表區塊T0知道LBA0及LBA1的資料分別被實際儲存於儲存子單元180_0_0及180_0_1中;從對照表區塊T1知道LBA100及LBA101的資料分別被儲存於儲 存子單元180_0_0及180_0_2中;從對照表區塊T2知道LBA200及LBA201的資料分別被儲存於儲存子單元180_0_1及180_0_3中;以及從對照表區塊T3知道LBA300及LBA301的資料分別被儲存於儲存子單元180_0_2及180_0_3中。第9B圖係依據本發明實施例之先進先出佇列示意圖。於步驟S523執行時,處理單元110分別將LBA0及LBA1的實際讀取命令911及912分別儲存至子佇列140_0及140_1;將LBA100及LBA101的實際讀取命令921及913分別儲存至子佇列140_0及140_2;將LBA200及LBA201的實際讀取命令922及914分別儲存至子佇列140_1及140_3;以及將LBA300及LBA301的實際讀取命令923及924分別儲存至子佇列140_2及140_3。於此須注意的是,處理單元110可於實際讀取命令儲存完成後的適當時間點,驅動存取子介面170_0依據子佇列140_0至140_3中之任一者的實際讀取命令從關聯之儲存子單元的實際儲存位置Addr(LBAx)讀取主裝置160所請求的資料並儲存至資料緩存器120,以及驅動存取介面150從資料緩存器120讀取資料並敲出給主裝置160。於一個例子中,處理單元110可於每次儲存一筆實際讀取命令至關聯之子佇列後,驅動存取子介面170_0以及存取介面150來完成如上的操作。於另一個例子中,處理單元110可於每次偵測到每一個子佇列140_0至140_3皆儲存至少一筆實際讀取命令後,驅動存取子介面170_0依序從儲存子單元180_0_0至180_0_3讀取資料,如讀取實際儲存位置Addr(LBA0)、Addr(LBA1)、Addr(LBA101)及Addr(LBA201)的資料。之後,處理單元110依據邏輯讀取命令的順序驅動存取介面150逐一從資料緩存器 120讀取資料並敲出給主裝置160。
雖然第1至4圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第5圖的流程圖採用指定的順序來執行,但是在不違法發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S511~S531‧‧‧方法步驟

Claims (16)

  1. 一種讀取命令排程方法,由一處理單元執行,包含:透過一第一存取介面從一主裝置接收多個邏輯讀取命令,每一上述邏輯讀取命令請求讀取一邏輯位址的資料;從一高階對照表取得關聯於上述邏輯位址的多個對照表區塊的一第一實際儲存位置;驅動一第二存取介面從一儲存單元中的上述第一實際儲存位置讀取上述對照表區塊;從上述對照表區塊取得關聯於上述邏輯位址的多個第二實際儲存位置;驅動上述第二存取介面依據上述第二實際儲存位置從上述儲存單元讀取資料;以及驅動上述第一存取介面將關聯於上述邏輯位址的資料敲出給上述主裝置。
  2. 如申請專利範圍第1項所述的讀取命令排程方法,其中,上述儲存單元包含多個儲存子單元,以及每一上述儲存子單元關聯一子佇列。
  3. 如申請專利範圍第2項所述的讀取命令排程方法,其中,於驅動一第二存取介面從一儲存單元中的上述第一實際儲存位置讀取上述對照表區塊的步驟中,更包含:將讀取上述第一實際儲存位置的多個實際讀取命令儲存至上述子佇列;以及 驅動上述第二存取介面依據上述子佇列中的每一上述實際讀取命令從上述儲存子單元中之一者的上述第一實際儲存位置讀取上述對照表區塊,以及儲存至一資料緩存器。
  4. 如申請專利範圍第2項所述的讀取命令排程方法,其中於驅動上述第二存取介面依據上述第二實際儲存位置從上述儲存單元讀取關聯於上述邏輯位址的資料的步驟中,更包含:將讀取上述第二實際儲存位置的多個實際讀取命令儲存至上述子佇列;以及驅動上述第二存取介面依據上述子佇列中的每一上述實際讀取命令從上述儲存子單元中之一者的上述第二實際儲存位置讀取資料,以及儲存至一資料緩存器。
  5. 如申請專利範圍第2項所述的讀取命令排程方法,其中,上述儲存子單元被獨立的晶片致能控制訊號控制,以及共享一資料線。
  6. 如申請專利範圍第1項所述的讀取命令排程方法,其中,上述高階對照表包含多筆紀錄,每一上述紀錄儲存關聯於一段邏輯位址區間的上述對照表區塊的上述第一實際儲存位置。
  7. 如申請專利範圍第1項所述的讀取命令排程方法,其中,上述邏輯位址以邏輯區塊位址表示。
  8. 如申請專利範圍第1項所述的讀取命令排程方法,其中,上述第一實際儲存位置或上述第二實際儲存位置以一區塊編號加上一頁面編號表示。
  9. 一種讀取命令排程裝置,包含: 一第一存取介面,耦接於一主裝置;一第二存取介面,耦接於一儲存單元;以及一處理單元,耦接於上述第一存取介面及上述第二存取介面,透過上述第一存取介面從上述主裝置接收多個邏輯讀取命令,每一上述邏輯讀取命令請求讀取一邏輯位址的資料;從一高階對照表取得關聯於上述邏輯位址的多個對照表區塊的一第一實際儲存位置;驅動上述第二存取介面從上述儲存單元中的上述第一實際儲存位置讀取上述對照表區塊;從上述對照表區塊取得關聯於上述邏輯位址的多個第二實際儲存位置;驅動上述第二存取介面依據上述第二實際儲存位置從上述儲存單元讀取資料;以及驅動上述第一存取介面將關聯於上述邏輯位址的資料敲出給上述主裝置。
  10. 如申請專利範圍第11項所述的讀取命令排程裝置,其中,上述儲存單元包含多個儲存子單元,以及每一上述儲存子單元關聯一子佇列。
  11. 如申請專利範圍第10項所述的讀取命令排程裝置,其中,上述處理單元更將讀取上述第一實際儲存位置的多個實際讀取命令儲存至上述子佇列;以及驅動上述第二存取介面依據上述子佇列中的每一上述實際讀取命令從上述儲存子單元中之一者的上述第一實際儲存位置讀取上述對照表區塊,以及儲存上述對照表區塊至一資料緩存器。
  12. 如申請專利範圍第10項所述的讀取命令排程裝置,其中,上述處理單元更驅動上述第二存取介面依據上述子佇列中 的每一上述實際讀取命令從上述儲存子單元中之一者的上述第二實際儲存位置讀取資料,以及儲存上述資料至一資料緩存器。。
  13. 如申請專利範圍第10項所述的讀取命令排程裝置,其中,上述儲存子單元被獨立的晶片致能控制訊號控制,以及共享一資料線。
  14. 如申請專利範圍第9項所述的讀取命令排程裝置,其中,上述高階對照表包含多筆紀錄,每一上述紀錄儲存關聯於一段邏輯位址區間的上述對照表區塊的上述第一實際儲存位置。
  15. 如申請專利範圍第9項所述的讀取命令排程裝置,其中,上述邏輯位址以邏輯區塊位址表示。
  16. 如申請專利範圍第9項所述的讀取命令排程裝置,其中,上述第一實際儲存位置或上述第二實際儲存位置以一區塊編號加上一頁面編號表示。
TW103130718A 2014-09-05 2014-09-05 讀取命令排程方法以及使用該方法的裝置 TWI512609B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
TW103130718A TWI512609B (zh) 2014-09-05 2014-09-05 讀取命令排程方法以及使用該方法的裝置
CN201810530348.XA CN108733580A (zh) 2014-09-05 2014-09-29 读取命令排程方法
CN201410514010.7A CN105528299B (zh) 2014-09-05 2014-09-29 读取命令排程方法以及使用该方法的装置
US14/738,481 US9785546B2 (en) 2014-09-05 2015-06-12 Methods for scheduling read commands and apparatuses using the same
US15/589,483 US10042756B2 (en) 2014-09-05 2017-05-08 Methods for scheduling read commands and apparatuses using the same
US16/031,598 US10725902B2 (en) 2014-09-05 2018-07-10 Methods for scheduling read commands and apparatuses using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103130718A TWI512609B (zh) 2014-09-05 2014-09-05 讀取命令排程方法以及使用該方法的裝置

Publications (2)

Publication Number Publication Date
TWI512609B TWI512609B (zh) 2015-12-11
TW201610834A true TW201610834A (zh) 2016-03-16

Family

ID=55407820

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103130718A TWI512609B (zh) 2014-09-05 2014-09-05 讀取命令排程方法以及使用該方法的裝置

Country Status (3)

Country Link
US (3) US9785546B2 (zh)
CN (2) CN108733580A (zh)
TW (1) TWI512609B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10222990B2 (en) * 2015-07-24 2019-03-05 Sandisk Technologies Llc Optimistic read operation
CN107918571B (zh) * 2016-10-08 2021-04-30 上海宝存信息科技有限公司 测试储存单元的方法以及使用该方法的装置
CN108959108B (zh) 2017-05-26 2021-08-24 上海宝存信息科技有限公司 固态硬盘访问方法以及使用该方法的装置
US10623523B2 (en) * 2018-05-18 2020-04-14 Oracle International Corporation Distributed communication and task handling to facilitate operations of application system
TWI734220B (zh) * 2019-07-10 2021-07-21 慧榮科技股份有限公司 主機輸出入命令的執行裝置及方法及電腦程式產品
CN110428858B (zh) * 2019-07-11 2021-09-24 清华大学 基于具有滞回特性器件的静态存储器
CN111176566B (zh) * 2019-12-25 2023-09-19 山东方寸微电子科技有限公司 一种支持queue命令的eMMC读写控制方法及存储介质
CN113849867B (zh) * 2021-08-31 2024-02-23 浪潮电子信息产业股份有限公司 一种加密芯片

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
KR100484147B1 (ko) * 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
TWI240863B (en) * 2003-09-05 2005-10-01 Megawin Technology Co Ltd Method for efficiently controlling flash memory read/write
KR100608606B1 (ko) * 2004-01-28 2006-08-03 삼성전자주식회사 적응형 가비지 컬렉션 방법 및 상기 방법을 수행하는 장치
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US7337293B2 (en) * 2005-02-09 2008-02-26 International Business Machines Corporation Streaming reads for early processing in a cascaded memory subsystem with buffered memory devices
US7711923B2 (en) * 2006-06-23 2010-05-04 Microsoft Corporation Persistent flash memory mapping table
TWI335517B (en) * 2006-08-25 2011-01-01 Via Tech Inc Method of requests access and scheduling and related apparatus thereof
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
US7917702B2 (en) * 2007-07-10 2011-03-29 Qualcomm Incorporated Data prefetch throttle
US20090165008A1 (en) * 2007-12-19 2009-06-25 Aten International Co., Ltd. Apparatus and method for scheduling commands from host systems
CN101533663B (zh) * 2008-03-11 2014-07-16 深圳市朗科科技股份有限公司 提高闪存介质数据存取速度的方法
US8055816B2 (en) * 2009-04-09 2011-11-08 Micron Technology, Inc. Memory controllers, memory systems, solid state drives and methods for processing a number of commands
US8984247B1 (en) * 2012-05-10 2015-03-17 Western Digital Technologies, Inc. Storing and reconstructing mapping table data in a data storage system
US9170932B1 (en) * 2012-05-22 2015-10-27 Western Digital Technologies, Inc. System data storage mechanism providing coherency and segmented data loading
TWI544334B (zh) * 2012-05-30 2016-08-01 慧榮科技股份有限公司 資料儲存裝置與資料儲存裝置操作方法
US20160011790A1 (en) * 2014-07-14 2016-01-14 Sandisk Technologies Inc. Systems and methods to enable access to a host memory associated with a unified memory architecture (uma)

Also Published As

Publication number Publication date
US20160070653A1 (en) 2016-03-10
CN105528299A (zh) 2016-04-27
CN108733580A (zh) 2018-11-02
TWI512609B (zh) 2015-12-11
US9785546B2 (en) 2017-10-10
US20180322044A1 (en) 2018-11-08
US20170242787A1 (en) 2017-08-24
US10725902B2 (en) 2020-07-28
CN105528299B (zh) 2018-06-29
US10042756B2 (en) 2018-08-07

Similar Documents

Publication Publication Date Title
TWI512609B (zh) 讀取命令排程方法以及使用該方法的裝置
US11237765B2 (en) Data writing method and storage device
US10628319B2 (en) Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same
TWI512467B (zh) 實體儲存對照表維護方法以及使用該方法的裝置
US11086568B2 (en) Memory system for writing fractional data into nonvolatile memory
US9304900B2 (en) Data reading method, memory controller, and memory storage device
US20140019670A1 (en) Data writing method, memory controller, and memory storage device
TW201835757A (zh) 垃圾回收方法以及使用該方法的裝置
US9990280B2 (en) Methods for reading data from a storage unit of a flash memory and apparatuses using the same
US9733832B2 (en) Buffer memory accessing method, memory controller and memory storage device
TWI545433B (zh) 實體儲存對照表維護方法以及使用該方法的裝置
US9152348B2 (en) Data transmitting method, memory controller and data transmitting system
TW201710898A (zh) 內部資料搬移方法以及使用該方法的裝置
TWI631565B (zh) 快閃記憶體之廢料收集方法以及使用該方法的裝置
CN108536475B (zh) 完整编程命令处理方法与装置
TWI602186B (zh) 快閃記憶體之廢料收集方法以及使用該方法的裝置
US10387076B2 (en) Methods for scheduling data-programming tasks and apparatuses using the same
JP2023553681A (ja) メモリシステムの電力管理