CN113094302A - 内存管理方法及存储控制器 - Google Patents
内存管理方法及存储控制器 Download PDFInfo
- Publication number
- CN113094302A CN113094302A CN202010084465.5A CN202010084465A CN113094302A CN 113094302 A CN113094302 A CN 113094302A CN 202010084465 A CN202010084465 A CN 202010084465A CN 113094302 A CN113094302 A CN 113094302A
- Authority
- CN
- China
- Prior art keywords
- operation sequence
- memory
- sequence
- time interval
- flash memory
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
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为根据本公开一实施例的存储控制器的方块图;
图2为根据本公开一实施例的存储控制器的内存的示意图;
图3为根据本公开一实施例的区块抹除操作序列的示意图;
图4为根据本公开一实施例的页面写入操作序列的示意图;
图5A为根据本公开一实施例未交错执行操作序列来进行多个晶粒读取操作的示意图;
图5B为根据本公开一实施例交错执行操作序列来进行多个晶粒读取操作的示意图;
图6为根据本公开一实施例交错执行操作序列来进行多个晶粒程序化操作的示意图。
附图标号说明
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为根据本公开一实施例的存储控制器的方块图。
请参照图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可包括多个闪存序列队列(FlashSequence 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)实作在硬件排程电路上,可有效降低开发固件的难度及时间。
综上所述,本公开的内存管理方法及存储控制器在存储控制器的内存从主机接收对应不同晶粒的操作序列时,可以依序执行对应不同晶粒的操作序列使后执行的操作序列的操作码运行时间间隔与先执行的操作序列的闪存忙碌时间间隔重叠。如此一来,就能穿插执行对应不同晶粒的操作序列而不需要等到一个操作序列的闪存忙碌时间间隔结束之后才进行另一操作序列的操作码运行时间间隔,因此可增进对闪存的多个晶粒存取的执行效能。
最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
Claims (10)
1.一种内存管理方法,适用于存储控制器,所述存储控制器耦接到主机及闪存,所述存储控制器包括内存及排程模块,其特征在于,所述内存管理方法包括:
通过所述内存从所述主机接收第一操作序列及第二操作序列,其中所述第一操作序列及所述第二操作序列分别对应所述闪存的第一晶粒及第二晶粒,且所述第一操作序列及所述第二操作序列各包括操作码运行时间间隔及接续在所述操作码运行时间间隔之后的闪存忙碌时间间隔;以及
通过所述排程模块依序选取所述第一操作序列及所述第二操作序列来执行,其中所述第二操作序列的所述操作码运行时间间隔与所述第一操作序列的所述闪存忙碌时间间隔重叠。
2.根据权利要求1所述的内存管理方法,其特征在于,其中所述第一操作序列及所述第二操作序列各包括多个操作码,且每个所述多个操作码包括命令、地址、写入数据、读取数据的至少其中之一的组合。
3.根据权利要求2所述的内存管理方法,其特征在于,其中所述排程模块从所述闪存接收所述第一晶粒及所述第二晶粒的状态信息并根据所述状态信息及所述第一操作序列及所述第二操作序列所包含的所述多个操作码,依序选取所述第一操作序列及所述第二操作序列来执行。
4.根据权利要求1所述的内存管理方法,其特征在于,其中所述排程模块为硬件排程电路。
5.根据权利要求1所述的内存管理方法,其特征在于,其中所述内存为静态随机存取内存。
6.一种存储控制器,其特征在于,包括:
内存;以及
排程模块,耦接到所述内存,其中
所述内存从主机接收第一操作序列及第二操作序列,其中所述第一操作序列及所述第二操作序列分别对应闪存的第一晶粒及第二晶粒,且所述第一操作序列及所述第二操作序列各包括操作码运行时间间隔及接续在所述操作码运行时间间隔之后的闪存忙碌时间间隔,
所述排程模块依序选取所述第一操作序列及所述第二操作序列来执行,其中所述第二操作序列的所述操作码运行时间间隔与所述第一操作序列的所述闪存忙碌时间间隔重叠。
7.根据权利要求6所述的存储控制器,其特征在于,其中所述第一操作序列及所述第二操作序列各包括多个操作码,且每个所述多个操作码包括命令、地址、写入数据、读取数据的至少其中之一的组合。
8.根据权利要求7所述的存储控制器,其特征在于,其中所述排程模块从所述闪存接收所述第一晶粒及所述第二晶粒的状态信息并根据所述状态信息及所述第一操作序列及所述第二操作序列所包含的所述多个操作码,依序选取所述第一操作序列及所述第二操作序列来执行。
9.根据权利要求6所述的存储控制器,其特征在于,其中所述排程模块为硬件排程电路。
10.根据权利要求6所述的存储控制器,其特征在于,其中所述内存为静态随机存取内存。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109100519A TWI715409B (zh) | 2020-01-08 | 2020-01-08 | 記憶體管理方法及儲存控制器 |
TW109100519 | 2020-01-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113094302A true CN113094302A (zh) | 2021-07-09 |
CN113094302B CN113094302B (zh) | 2023-02-28 |
Family
ID=75237408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010084465.5A Active CN113094302B (zh) | 2020-01-08 | 2020-02-10 | 内存管理方法及存储控制器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113094302B (zh) |
TW (1) | TWI715409B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2676291Y (zh) * | 2004-01-02 | 2005-02-02 | 创惟科技股份有限公司 | 提升闪存存取效能的装置 |
US20080270678A1 (en) * | 2007-04-25 | 2008-10-30 | Cornwell Michael J | Command resequencing in memory operations |
US20090282188A1 (en) * | 2008-05-12 | 2009-11-12 | Min Young Son | Memory device and control method |
US20150348939A1 (en) * | 2013-04-09 | 2015-12-03 | Gigadevice Semiconductor (Beijing) Inc. | Enhanced flash chip and method for packaging chip |
CN107273205A (zh) * | 2016-04-07 | 2017-10-20 | 国际商业机器公司 | 用于在计算机处理器中调度指令的方法和系统 |
CN107526539A (zh) * | 2016-06-21 | 2017-12-29 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
US20190196972A1 (en) * | 2017-12-21 | 2019-06-27 | Western Digital Technologies, Inc. | Managing flash memory read operations |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US8595411B2 (en) * | 2009-12-30 | 2013-11-26 | Sandisk Technologies Inc. | Method and controller for performing a sequence of commands |
US8819328B2 (en) * | 2010-12-30 | 2014-08-26 | Sandisk Technologies Inc. | Controller and method for performing background operations |
-
2020
- 2020-01-08 TW TW109100519A patent/TWI715409B/zh active
- 2020-02-10 CN CN202010084465.5A patent/CN113094302B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2676291Y (zh) * | 2004-01-02 | 2005-02-02 | 创惟科技股份有限公司 | 提升闪存存取效能的装置 |
US20080270678A1 (en) * | 2007-04-25 | 2008-10-30 | Cornwell Michael J | Command resequencing in memory operations |
US20090282188A1 (en) * | 2008-05-12 | 2009-11-12 | Min Young Son | Memory device and control method |
US20150348939A1 (en) * | 2013-04-09 | 2015-12-03 | Gigadevice Semiconductor (Beijing) Inc. | Enhanced flash chip and method for packaging chip |
CN107273205A (zh) * | 2016-04-07 | 2017-10-20 | 国际商业机器公司 | 用于在计算机处理器中调度指令的方法和系统 |
CN107526539A (zh) * | 2016-06-21 | 2017-12-29 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
US20190196972A1 (en) * | 2017-12-21 | 2019-06-27 | Western Digital Technologies, Inc. | Managing flash memory read operations |
Also Published As
Publication number | Publication date |
---|---|
TWI715409B (zh) | 2021-01-01 |
CN113094302B (zh) | 2023-02-28 |
TW202127441A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8732385B2 (en) | Non-volatile memory, controller controlling next access | |
CN111045593B (zh) | 用来进行读取加速的方法以及数据存储装置及其控制器 | |
US20160306588A1 (en) | Solid state disk and data moving method | |
EP2378431B1 (en) | Nandflash controller and data transmission method thereof | |
KR100921787B1 (ko) | 낸드 플래시 메모리 제어장치 | |
US20150253992A1 (en) | Memory system and control method | |
US20190391916A1 (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
CN100337217C (zh) | 存储控制芯片及数据存储控制方法 | |
EP2054800A2 (en) | Flash memory access circuit | |
KR100829788B1 (ko) | 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법 | |
CN117742793B (zh) | 数据缓存指令的指令合并电路、方法及芯片 | |
CN112256203B (zh) | Flash存储器的写入方法、装置、设备、介质及系统 | |
CN113094302B (zh) | 内存管理方法及存储控制器 | |
US20070271423A1 (en) | Control device and control method for memory | |
CN113157205B (zh) | 一种nand阵列的控制方法、控制器、电子设备及存储介质 | |
JP7273176B2 (ja) | シーケンス処理ユニットを備えたメモリ制御システム | |
LU101773B1 (en) | Method for improving sequential read performance of solid-state drive | |
US20150193375A1 (en) | Processor and method of controlling the same | |
US20090043945A1 (en) | Non-Volatile Memory System and Method for Reading Data Therefrom | |
CN113094170B (zh) | 一种5g通信虚拟化网元的内存总线分配方法和终端 | |
CN110888588A (zh) | 快闪记忆体控制器及相关的访问方法及电子装置 | |
CN115658570B (zh) | 闪存编程方法和闪存接口电路 | |
CN110515559B (zh) | 基于同步通道运作架构闪存主控之高效能指令序列控制器 | |
CN111736779B (zh) | Nvm接口命令的优化执行方法与装置 | |
TWI653630B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |