TWI715409B - 記憶體管理方法及儲存控制器 - Google Patents
記憶體管理方法及儲存控制器 Download PDFInfo
- Publication number
- TWI715409B TWI715409B TW109100519A TW109100519A TWI715409B TW I715409 B TWI715409 B TW I715409B TW 109100519 A TW109100519 A TW 109100519A TW 109100519 A TW109100519 A TW 109100519A TW I715409 B TWI715409 B TW I715409B
- Authority
- TW
- Taiwan
- Prior art keywords
- operation sequence
- memory
- flash memory
- time interval
- storage controller
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
Abstract
本揭露提出一種記憶體管理方法及儲存控制器。記憶體管理方法適用於儲存控制器。儲存控制器耦接到主機及快閃記憶體。儲存控制器包括記憶體及排程模組。記憶體管理方法包括:藉由記憶體從主機接收第一操作序列及第二操作序列,其中第一操作序列及第二操作序列分別對應快閃記憶體的第一晶粒及第二晶粒,且第一操作序列及第二操作序列各包括操作碼執行時間間隔及接續在操作碼執行時間間隔之後的快閃記憶體忙碌時間間隔;以及藉由排程模組依序選取第一操作序列及第二操作序列來執行,其中第二操作序列的操作碼執行時間間隔與第一操作序列的快閃記憶體忙碌時間間隔重疊。
Description
本揭露是有關於一種記憶體管理方法及儲存控制器,且特別是有關於一種增進快閃記憶體執行效能的記憶體管理方法及儲存控制器。
快閃記憶體會提供一些操作序列(operation sequence),例如區塊抹除、頁面程式化、頁面讀取等,來達成資料存取目的。操作序列是經由對快閃記憶體介面所下達的命令、地址及/或資料所組合而成。某些操作會包括一段忙碌時間使快閃記憶體內部來正確完成指令。當快閃記憶體的儲存控制器對多個快閃記憶體的多個晶粒(die)進行存取操作時必須等待數次的忙碌時間,這會降低快閃記憶體的執行效能。因此,如何增進對快閃記憶體的多個晶粒存取的執行效能是本領域技術人員應致力的目標。
有鑑於此,本揭露提供一種記憶體管理方法及儲存控制器,增進對快閃記憶體的多個晶粒存取的執行效能。
本揭露提出一種記憶體管理方法,適用於儲存控制器。儲存控制器耦接到主機及快閃記憶體。儲存控制器包括記憶體及排程模組。記憶體管理方法包括:藉由記憶體從主機接收第一操作序列及第二操作序列,其中第一操作序列及第二操作序列分別對應快閃記憶體的第一晶粒及第二晶粒,且第一操作序列及第二操作序列各包括操作碼執行時間間隔及接續在操作碼執行時間間隔之後的快閃記憶體忙碌時間間隔;以及藉由排程模組依序選取第一操作序列及第二操作序列來執行,其中第二操作序列的操作碼執行時間間隔與第一操作序列的快閃記憶體忙碌時間間隔重疊。
本揭露提出一種儲存控制器,包括記憶體;以及排程模組,耦接到記憶體。記憶體從主機接收第一操作序列及第二操作序列,其中第一操作序列及第二操作序列分別對應快閃記憶體的第一晶粒及第二晶粒,且第一操作序列及第二操作序列各包括操作碼執行時間間隔及接續在操作碼執行時間間隔之後的快閃記憶體忙碌時間間隔。排程模組依序選取第一操作序列及第二操作序列來執行,其中第二操作序列的操作碼執行時間間隔與第一操作序列的快閃記憶體忙碌時間間隔重疊。
基於上述,本揭露的記憶體管理方法及儲存控制器在儲存控制器的記憶體從主機接收對應不同晶粒的操作序列時,可以依序執行對應不同晶粒的操作序列使後執行的操作序列的操作碼執行時間間隔與先執行的操作序列的快閃記憶體忙碌時間間隔重疊。如此一來,就能穿插執行對應不同晶粒的操作序列而不需要等到一個操作序列的快閃記憶體忙碌時間間隔結束之後才進行另一操作序列的操作碼執行時間間隔,因此可增進對快閃記憶體的多個晶粒存取的執行效能。
為讓本揭露的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1為根據本揭露一實施例的儲存控制器的方塊圖。
請參照圖1,本揭露一實施例的儲存控制器100包括記憶體110、排程模組120及執行模組130。記憶體110例如是靜態隨機存取記憶體(Static Random Access Memory,SRAM)。排程模組120例如是硬體排程電路。執行模組130例如是硬體執行電路。主機140可傳送多個操作序列(或稱為工作,task)到記憶體110,且排程模組120根據快閃記憶體150的多個晶粒的狀態資訊及操作序列(operation sequence)的多個操作碼及多個參數來決定操作序列的執行順序,並依序將操作序列傳送到執行模組130以存取快閃記憶體150。要寫入快閃記憶體150的寫入資料或從快閃記憶體150讀出的讀取資料都可通過直接記憶體存取(Direct Memory Access,DMA)模組160暫存於資料緩衝器170中。在一實施例中,記憶體110、排程模組120及執行模組130可設置於儲存控制器100的處理器中且儲存控制器100、快閃記憶體150、直接記憶體存取模組160及資料緩衝器170可設置於一記憶體儲存裝置(例如,快閃記憶體裝置)中。
在一實施例中,記憶體110可從主機140接收第一操作序列及第二操作序列。第一操作序列及第二操作序列分別對應快閃記憶體150多個晶粒中的的第一晶粒及第二晶粒,且第一操作序列及第二操作序列各包括操作碼執行時間間隔及接續在操作碼執行時間間隔之後的快閃記憶體忙碌時間間隔。排程模組120依序選取第一操作序列及第二操作序列傳送到執行模組130來執行。第二操作序列的操作碼執行時間間隔與第一操作序列的快閃記憶體忙碌時間間隔重疊。如此一來,儲存控制器100可利用第一操作序列在存取第一晶粒的忙碌時間同時進行第二操作序列的操作碼的解碼及執行操作(即,第一操作序列與第二操作序列交錯執行),使得第二操作序列可提早進行第二晶粒的存取操作而不用等到第一操作序列在存取第一晶粒的忙碌時間結束之後再進行第二操作序列的操作碼的解碼及執行操作,這大幅增進了對快閃記憶體150的多個晶粒存取的執行效能。
圖2為根據本揭露一實施例的儲存控制器的記憶體的示意圖。
請參照圖1及圖2,本揭露一實施例的記憶體110可包括多個快閃記憶體序列佇列(Flash Sequence Queue,FSQ)且每個FSQ(即,FSQ1、FSQ2、FSQ3、FSQ4等)可暫存一或多個操作序列。每個操作序列可包括多個操作碼210(例如,Op_A到Op_G等)及多個參數220(例如,Par_1到Par_7等)。執行模組130可根據一個操作序列的操作碼210及參數220來執行快閃記憶體150的存取操作。操作碼210可包括為以下各種格式:命令、地址、資料(寫入)、資料(讀取)、命令-地址、命令-地址-命令、命令-地址-資料(寫入)-命令等。
圖3為根據本揭露一實施例的區塊抹除操作序列的示意圖。
請參照圖3,本揭露一實施例的區塊抹除操作序列的操作碼310包括命令330-地址340-命令330-忙碌350-命令330-資料360。忙碌350為快閃記憶體忙碌時間間隔且資料360用以表示區塊抹除成功或失敗的狀態。參數320包括資料讀取或寫入地址及命令對應的參數等資訊。
圖4為根據本揭露一實施例的頁面寫入操作序列的示意圖。
請參照圖4,本揭露一實施例的頁面寫入操作序列的操作碼410包括命令430-地址440-資料461-命令430-忙碌450-命令430-資料462。忙碌450為快閃記憶體忙碌時間間隔,資料461為寫入資料,資料462用以表示區塊抹除成功或失敗的狀態。參數420包括資料讀取或寫入地址及命令對應的參數等資訊。
圖5A為根據本揭露一實施例未交錯執行操作序列來進行多個晶粒讀取操作的示意圖。圖5B為根據本揭露一實施例交錯執行操作序列來進行多個晶粒讀取操作的示意圖。
請參照圖1及圖5A,圖5A說明了儲存控制器100連續執行工作1(CE0讀取)、工作2(CE0讀取)及工作3(CE1讀取),其中CE0及CE1對應快閃記憶體150的不同晶粒,且tR代表讀取操作中快閃記憶體150各晶粒的忙碌時間。每個工作在時間軸上都對應了操作碼組合510(或稱為操作序列)的解碼及執行時間、快閃記憶體150的忙碌時間tR及資料傳輸時間。在讀取操作中,快閃記憶體150忙碌時間tR之前的操作碼組合510包括「命令-地址-命令」的操作碼。在本實施例中,儲存控制器100必須等待一個工作的資料傳輸完畢之後再進行下一個工作的操作序列解碼及執行。
請參照圖1、圖2及圖5B,圖5B說明了儲存控制器100交錯執行工作1(CE0讀取)、工作3(CE1讀取)及工作2(讀取CE0讀取)。具體來說,當排程模組120判斷工作1與工作3要讀取不同晶粒時,排程模組120可在工作1的操作碼組合510的解碼及執行並進入忙碌時間tR後進行工作3的操作碼組合510的解碼及執行操作。由於工作1及工作3存取不同晶粒,因此通過本實施例的交錯執行工作1與工作3而不是等工作1執行完畢再執行工作3,可增進對快閃記憶體150的多個晶粒存取的執行效能。
圖6為根據本揭露一實施例交錯執行操作序列來進行多個晶粒程式化操作的示意圖。
請參照圖1、圖2及圖6,圖6說明了儲存控制器100交錯執行工作1(CE0程式化)、工作3(CE1程式化)、工作5(CE2程式化)、工作2(CE0程式化)、工作4(CE1程式化)、工作6(CE2程式化),其中CE0、CE1、CE2對應快閃記憶體150的不同晶粒,且tProg代表程式化操作中快閃記憶體150各晶粒的忙碌時間。在頁面程式化操作中,快閃記憶體150忙碌時間tProg之前的操作碼組合610(或稱為操作序列)包括「命令-地址-資料-命令」的操作碼。
舉例來說,當排程模組120判斷工作1與工作3要程式化不同晶粒時,排程模組120可在工作1的操作碼組合610的解碼及執行並進入忙碌時間tProg後進行工作3的操作碼組合610的解碼及執行操作。由於工作1及工作3存取不同晶粒,因此通過本實施例的交錯執行工作1與工作3而不是等工作1執行完畢再執行工作3,可增進對快閃記憶體150的多個晶粒存取的執行效能。類似地,當排程模組120判斷工作3與工作5要程式化不同晶粒時,排程模組120可在工作3的操作碼組合610的解碼及執行並進入忙碌時間tProg後進行工作5的操作碼組合610的解碼及執行操作。由於工作3及工作5存取不同晶粒,因此通過本實施例的交錯執行工作3與工作5而不是等工作3執行完畢再執行工作5,可增進對快閃記憶體150的多個晶粒存取的執行效能。
值得注意的是,雖然本揭露交錯執行操作序列的功能可通過韌體來實作,但隨著互連(interconnect)規格種類越來越多(例如,PCIE、SATA、SD、USB、M.2等),交錯執行操作序列的演算法複雜度也隨之提升。本揭露通過將交錯執行操作序列的功能(即,交錯執行FSQ)實作在硬體排程電路上,可有效降低開發韌體的難度及時間。
綜上所述,本揭露的記憶體管理方法及儲存控制器在儲存控制器的記憶體從主機接收對應不同晶粒的操作序列時,可以依序執行對應不同晶粒的操作序列使後執行的操作序列的操作碼執行時間間隔與先執行的操作序列的快閃記憶體忙碌時間間隔重疊。如此一來,就能穿插執行對應不同晶粒的操作序列而不需要等到一個操作序列的快閃記憶體忙碌時間間隔結束之後才進行另一操作序列的操作碼執行時間間隔,因此可增進對快閃記憶體的多個晶粒存取的執行效能。
雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露的精神和範圍內,當可作些許的更動與潤飾,故本揭露的保護範圍當視後附的申請專利範圍所界定者為準。
100:儲存控制器
110:記憶體
120:排程模組
130:執行模組
140:主機
150:快閃記憶體
160:直接記憶體存取模組
170:資料緩衝器
210、310、410:操作碼
220、320、420:參數
330、430:命令
340、440:地址
350、450:忙碌
360、461、462:資料
510、610:操作碼組合
圖1為根據本揭露一實施例的儲存控制器的方塊圖。
圖2為根據本揭露一實施例的儲存控制器的記憶體的示意圖。
圖3為根據本揭露一實施例的區塊抹除操作序列的示意圖。
圖4為根據本揭露一實施例的頁面寫入操作序列的示意圖。
圖5A為根據本揭露一實施例未交錯執行操作序列來進行多個晶粒讀取操作的示意圖。
圖5B為根據本揭露一實施例交錯執行操作序列來進行多個晶粒讀取操作的示意圖。
圖6為根據本揭露一實施例交錯執行操作序列來進行多個晶粒程式化操作的示意圖。
510:操作碼組合
Claims (10)
- 一種記憶體管理方法,適用於一儲存控制器,該儲存控制器耦接到一主機及一快閃記憶體,該儲存控制器包括一記憶體及一排程模組,該記憶體管理方法包括: 藉由該記憶體從該主機接收一第一操作序列(operation sequence)及一第二操作序列,其中該第一操作序列及該第二操作序列分別對應該快閃記憶體的一第一晶粒(die)及一第二晶粒,且該第一操作序列及該第二操作序列各包括一操作碼執行時間間隔及接續在該操作碼執行時間間隔之後的一快閃記憶體忙碌時間間隔;以及 藉由該排程模組依序選取該第一操作序列及該第二操作序列來執行,其中該第二操作序列的該操作碼執行時間間隔與該第一操作序列的該快閃記憶體忙碌時間間隔重疊。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一操作序列及該第二操作序列各包括多個操作碼,且每個該些操作碼包括一命令、一地址、一寫入資料、一讀取資料的至少其中之一的組合。
- 如申請專利範圍第2項所述的記憶體管理方法,其中該排程模組從該快閃記憶體接收該第一晶粒及該第二晶粒的一狀態資訊並根據該狀態資訊及該第一操作序列及該第二操作序列所包含的該些操作碼,依序選取該第一操作序列及該第二操作序列來執行。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該排程模組為一硬體排程電路。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該記憶體為一靜態隨機存取記憶體。
- 一種儲存控制器,包括: 一記憶體;以及 一排程模組,耦接到該記憶體,其中 該記憶體從該主機接收一第一操作序列及一第二操作序列,其中該第一操作序列及該第二操作序列分別對應該快閃記憶體的一第一晶粒及一第二晶粒,且該第一操作序列及該第二操作序列各包括一操作碼執行時間間隔及接續在該操作碼執行時間間隔之後的一快閃記憶體忙碌時間間隔, 該排程模組依序選取該第一操作序列及該第二操作序列來執行,其中該第二操作序列的該操作碼執行時間間隔與該第一操作序列的該快閃記憶體忙碌時間間隔重疊。
- 如申請專利範圍第6項所述的儲存控制器,其中該第一操作序列及該第二操作序列各包括多個操作碼,且每個該些操作碼包括一命令、一地址、一寫入資料、一讀取資料的至少其中之一的組合。
- 如申請專利範圍第7項所述的儲存控制器,其中該排程模組從該快閃記憶體接收該第一晶粒及該第二晶粒的一狀態資訊並根據該狀態資訊及該第一操作序列及該第二操作序列所包含的該些操作碼,依序選取該第一操作序列及該第二操作序列來執行。
- 如申請專利範圍第6項所述的儲存控制器,其中該排程模組為一硬體排程電路。
- 如申請專利範圍第6項所述的儲存控制器,其中該記憶體為一靜態隨機存取記憶體。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109100519A TWI715409B (zh) | 2020-01-08 | 2020-01-08 | 記憶體管理方法及儲存控制器 |
CN202010084465.5A CN113094302B (zh) | 2020-01-08 | 2020-02-10 | 内存管理方法及存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109100519A TWI715409B (zh) | 2020-01-08 | 2020-01-08 | 記憶體管理方法及儲存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI715409B true TWI715409B (zh) | 2021-01-01 |
TW202127441A TW202127441A (zh) | 2021-07-16 |
Family
ID=75237408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109100519A TWI715409B (zh) | 2020-01-08 | 2020-01-08 | 記憶體管理方法及儲存控制器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113094302B (zh) |
TW (1) | TWI715409B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI406295B (zh) * | 2005-01-20 | 2013-08-21 | Sandisk Technologies Inc | 快閃記憶體系統中內務作業之排程 |
TWI531965B (zh) * | 2010-12-30 | 2016-05-01 | 桑迪士克科技公司 | 控制器及用以執行背景操作之方法 |
USRE46201E1 (en) * | 2009-12-30 | 2016-11-08 | Sandisk Technologies Llc | Method and controller for performing a sequence of commands |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2676291Y (zh) * | 2004-01-02 | 2005-02-02 | 创惟科技股份有限公司 | 提升闪存存取效能的装置 |
US7996599B2 (en) * | 2007-04-25 | 2011-08-09 | Apple Inc. | Command resequencing in memory operations |
KR101541344B1 (ko) * | 2008-12-05 | 2015-08-03 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 제어 방법 |
CN103247612B (zh) * | 2013-04-09 | 2015-09-23 | 北京兆易创新科技股份有限公司 | 一种增强型flash芯片和一种芯片封装方法 |
US9977677B2 (en) * | 2016-04-07 | 2018-05-22 | International Business Machines Corporation | Execution slice with supplemental instruction port for an instruction using a source operand from another instruction port |
TWI592864B (zh) * | 2016-06-21 | 2017-07-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US10459844B2 (en) * | 2017-12-21 | 2019-10-29 | Western Digital Technologies, Inc. | Managing flash memory read operations |
-
2020
- 2020-01-08 TW TW109100519A patent/TWI715409B/zh active
- 2020-02-10 CN CN202010084465.5A patent/CN113094302B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI406295B (zh) * | 2005-01-20 | 2013-08-21 | Sandisk Technologies Inc | 快閃記憶體系統中內務作業之排程 |
USRE46201E1 (en) * | 2009-12-30 | 2016-11-08 | Sandisk Technologies Llc | Method and controller for performing a sequence of commands |
TWI531965B (zh) * | 2010-12-30 | 2016-05-01 | 桑迪士克科技公司 | 控制器及用以執行背景操作之方法 |
Non-Patent Citations (1)
Title |
---|
U * |
Also Published As
Publication number | Publication date |
---|---|
CN113094302B (zh) | 2023-02-28 |
TW202127441A (zh) | 2021-07-16 |
CN113094302A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11023167B2 (en) | Methods and apparatuses for executing a plurality of queued tasks in a memory | |
US9229655B2 (en) | Controller and method for performing background operations | |
US6721820B2 (en) | Method for improving performance of a flash-based storage system using specialized flash controllers | |
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 | |
CN111045593B (zh) | 用来进行读取加速的方法以及数据存储装置及其控制器 | |
EP2378431B1 (en) | Nandflash controller and data transmission method thereof | |
KR100921787B1 (ko) | 낸드 플래시 메모리 제어장치 | |
US8869004B2 (en) | Memory storage device, memory controller thereof, and data transmission method thereof | |
US20190391916A1 (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
JP2009026301A (ja) | ソリッドステートディスクコントローラ及びソリッドステートディスクコントローラのデータ処理方法 | |
US9524247B2 (en) | Fractured erase system and method | |
JP2011018222A (ja) | インタリーブ制御装置、インタリーブ制御方法及びメモリシステム | |
US20140297949A1 (en) | Disk array device | |
TWI588652B (zh) | 讀取及寫入命令排程方法以及使用該方法的裝置 | |
TW202038097A (zh) | 多平面上頁面的片段資料讀取方法及電腦程式產品 | |
TWI715409B (zh) | 記憶體管理方法及儲存控制器 | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
US7516282B2 (en) | Control device and control method for memory | |
CN113157205B (zh) | 一种nand阵列的控制方法、控制器、电子设备及存储介质 | |
CN112988449B (zh) | 写入页面群组的数据到闪存模块的装置及方法 | |
US8166228B2 (en) | Non-volatile memory system and method for reading and storing sub-data during partially overlapping periods | |
TWI621015B (zh) | 讀取及寫入命令排程方法以及使用該方法的裝置 | |
KR20110131714A (ko) | 데이터 복사를 제어하는 플래시 시스템 및 그의 제어 방법 | |
JPS6243726A (ja) | 外部記憶装置間のデ−タ転送方式 |