CN113094302B - 内存管理方法及存储控制器 - Google Patents

内存管理方法及存储控制器 Download PDF

Info

Publication number
CN113094302B
CN113094302B CN202010084465.5A CN202010084465A CN113094302B CN 113094302 B CN113094302 B CN 113094302B CN 202010084465 A CN202010084465 A CN 202010084465A CN 113094302 B CN113094302 B CN 113094302B
Authority
CN
China
Prior art keywords
operation sequence
memory
flash memory
time interval
sequence
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.)
Active
Application number
CN202010084465.5A
Other languages
English (en)
Other versions
CN113094302A (zh
Inventor
王全人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Asolid Technology Co Ltd
Original Assignee
Asolid Technology Co Ltd
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 Asolid Technology Co Ltd filed Critical Asolid Technology Co Ltd
Publication of CN113094302A publication Critical patent/CN113094302A/zh
Application granted granted Critical
Publication of CN113094302B publication Critical patent/CN113094302B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-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所述的存储控制器,其特征在于,其中所述内存为静态随机存取内存。
CN202010084465.5A 2020-01-08 2020-02-10 内存管理方法及存储控制器 Active CN113094302B (zh)

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 CN113094302A (zh) 2021-07-09
CN113094302B true 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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2676291Y (zh) * 2004-01-02 2005-02-02 创惟科技股份有限公司 提升闪存存取效能的装置
CN107273205A (zh) * 2016-04-07 2017-10-20 国际商业机器公司 用于在计算机处理器中调度指令的方法和系统
CN107526539A (zh) * 2016-06-21 2017-12-29 慧荣科技股份有限公司 数据储存装置及其数据维护方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
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
US7996599B2 (en) * 2007-04-25 2011-08-09 Apple Inc. Command resequencing in memory operations
KR101541344B1 (ko) * 2008-12-05 2015-08-03 삼성전자주식회사 메모리 장치 및 메모리 장치의 제어 방법
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
CN103247612B (zh) * 2013-04-09 2015-09-23 北京兆易创新科技股份有限公司 一种增强型flash芯片和一种芯片封装方法
US10459844B2 (en) * 2017-12-21 2019-10-29 Western Digital Technologies, Inc. Managing flash memory read operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2676291Y (zh) * 2004-01-02 2005-02-02 创惟科技股份有限公司 提升闪存存取效能的装置
CN107273205A (zh) * 2016-04-07 2017-10-20 国际商业机器公司 用于在计算机处理器中调度指令的方法和系统
CN107526539A (zh) * 2016-06-21 2017-12-29 慧荣科技股份有限公司 数据储存装置及其数据维护方法

Also Published As

Publication number Publication date
TW202127441A (zh) 2021-07-16
TWI715409B (zh) 2021-01-01
CN113094302A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
US8732385B2 (en) Non-volatile memory, controller controlling next access
CN111045593B (zh) 用来进行读取加速的方法以及数据存储装置及其控制器
US20100100666A1 (en) System and method for controlling flash memory using descriptor array
KR100921787B1 (ko) 낸드 플래시 메모리 제어장치
US20150253992A1 (en) Memory system and control method
EP2378431B1 (en) Nandflash controller and data transmission method thereof
CN100337217C (zh) 存储控制芯片及数据存储控制方法
US20190391916A1 (en) Method for managing flash memory module and associated flash memory controller and electronic device
US20100169546A1 (en) Flash memory access circuit
US7730234B2 (en) Command decoding system and method of decoding a command including a device controller configured to sequentially fetch the micro-commands in an instruction block
CN108628759B (zh) 乱序执行nvm命令的方法与装置
CN112256203B (zh) Flash存储器的写入方法、装置、设备、介质及系统
CN113094302B (zh) 内存管理方法及存储控制器
CN115586867B (zh) NVMe控制器
US7516282B2 (en) Control device and control method for memory
CN110851073A (zh) 储存装置及巨集指令的执行方法
US10366049B2 (en) Processor and method of controlling the same
JP7273176B2 (ja) シーケンス処理ユニットを備えたメモリ制御システム
US8166228B2 (en) Non-volatile memory system and method for reading and storing sub-data during partially overlapping periods
JP6992750B2 (ja) メモリコントローラ、メモリシステムおよび情報処理システム
CN111736779B (zh) Nvm接口命令的优化执行方法与装置
CN115658570B (zh) 闪存编程方法和闪存接口电路
CN118245250A (zh) 片上系统共享闪存的方法、片上系统、物联网芯片及设备
CN114356649A (zh) 一种高性能和高安全性的数据保护方法及存储装置
US20200285586A1 (en) Method For Redirecting Unmapped Addresses of a Solid-State Drive

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