CN110806836A - 数据处理系统与数据处理方法 - Google Patents

数据处理系统与数据处理方法 Download PDF

Info

Publication number
CN110806836A
CN110806836A CN201811100135.XA CN201811100135A CN110806836A CN 110806836 A CN110806836 A CN 110806836A CN 201811100135 A CN201811100135 A CN 201811100135A CN 110806836 A CN110806836 A CN 110806836A
Authority
CN
China
Prior art keywords
processor
erase
memory
data processing
memory controller
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
Application number
CN201811100135.XA
Other languages
English (en)
Other versions
CN110806836B (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.)
Nuvoton Technology Corp
Original Assignee
Nuvoton Technology Corp
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 Nuvoton Technology Corp filed Critical Nuvoton Technology Corp
Publication of CN110806836A publication Critical patent/CN110806836A/zh
Application granted granted Critical
Publication of CN110806836B publication Critical patent/CN110806836B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0626Reducing size or complexity of storage systems
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

数据处理系统与数据处理方法,系统包括存储器装置、处理器、存储器控制器及检测电路。存储器装置包括第一区域及第二区域,第一区域被配置用以储存多个代码,第二区域被配置用以储存系统数据。处理器被配置用以根据代码执行至少一指令,处理器发出一存取控制信号用以取得代码的至少一部分。存储器控制器耦接于处理器与存储器装置之间,被配置用以因应存取控制信号存取存储器装置。检测电路耦接至存储器控制器,被配置用以检测处理器是否已进入一闲置状态。当检测电路检测到处理器已进入闲置状态时,检测电路发出一处理器闲置信号。因应处理器闲置信号,存储器控制器发出一擦除命令。因应擦除命令,存储器装置擦除第二区域所储存的至少一部分数据。

Description

数据处理系统与数据处理方法
技术领域
本发明是关于一种数据处理系统与数据处理方法,特别是一种可有效降低存储器的擦除操作对于系统运作的干扰的数据处理系统与数据处理方法。
背景技术
非易失性存储器(Non-volatile memory)为一种断电后重新启动后也可以保留数据的存储器。当应用于电脑装置或处理器装置时,非易失性存储器通常可被切分出用于储存应用代码的代码执行区域(code execution region),或称应用代码区域(applicationcode region),以及用于储存系统运作时需要被改变或纪录的数据或参数的数据纪录区域(data log region)。
一般而言,非易失性存储器的写入(write)操作需花费数个至数十微秒(uS),而擦除(erase)操作需花费数个至数十毫秒(mS),因此,当系统运作过程中需要改变或纪录数据或参数时,处理器都只会执行写入动作。亦即,即使数据或参数需要再次被更改或者记录,为避免造成系统处理程序的延迟,也是将数据或者参数直接写入新的存储数据页或存储器区块,而不是在原来的存储数据页或存储器区块上做擦除及覆写。
而当数据纪录区域的使用率达到一定程度时,仍必需执行擦除操作,将数据纪录区域中无效的数据擦除,以释放出存储器空间。
为使系统运作(例如,应用代码区域的存取)不会因数据擦除的进行而受影响,且系统处理程序不会因数据擦除的进行而被迫延迟或中断,本发明提出一种数据处理系统及适用于此系统的数据处理方法,用以控制数据纪录区域的擦除操作。
发明内容
本发明揭露一种数据处理系统,包括存储器装置、处理器、存储器控制器以及检测电路。存储器装置包括第一区域以及第二区域,其中第一区域被配置用以储存多个代码,第二区域被配置用以储存系统数据。处理器被配置用以根据代码执行至少一指令,其中处理器发出一存取控制信号用以取得代码的至少一部分。存储器控制器耦接于处理器与存储器装置之间,被配置用以因应存取控制信号存取存储器装置。检测电路耦接至存储器控制器,被配置用以检测处理器是否已进入一闲置状态。当检测电路检测到处理器已进入闲置状态时,检测电路发出一处理器闲置信号。因应处理器闲置信号,存储器控制器发出一擦除命令。因应擦除命令,存储器装置擦除第二区域所储存的至少一部分数据。
本发明揭露一种数据处理方法,适用于一数据处理系统,数据处理系统包括存储器装置、处理器以及存储器控制器,存储器装置包括第一区域以及第二区域,第一区域被配置用以储存多个代码,第二区域被配置用以储存系统数据,处理器发出存取控制信号用以取得代码的至少一部分,并根据取得的代码执行至少一指令,存储器控制器因应存取控制信号存取存储器装置,数据处理方法包括:接收一擦除控制信号;检测处理器是否已进入一闲置状态;当检测到处理器已进入闲置状态时,发出一处理器闲置信号;因应处理器闲置信号,发出一擦除命令;以及因应擦除命令,擦除第二区域所储存的至少一部分数据。
附图说明
图1是显示根据本发明的一实施例所述的一数据处理系统方块图。
图2是显示根据本发明的另一实施例所述的一数据处理系统方块图。
图3是显示根据本发明的一实施例所述的于多个暂存器所储存的擦除位示意图。
图4是显示根据本发明的一实施例所述的一数据处理方法范例流程图。
图5是显示根据本发明的又另一实施例所述的数据处理系统方块图。
图6是显示根据本发明的一实施例所述的数据处理方法的一范例流程图。
附图标号
21、22、23、24、25~总线;
100、200、500~数据处理系统;
110、210、510~存储器装置;
111、211、511~擦除控制电路;
120、220、520~存储器控制器;
121、221、521~擦除进行计时器;
122、222、522~检测电路;
130、230、530~处理器;
240、540~DMA控制器。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合所附图式,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
如上述,非易失性存储器通常可被分为用于储存应用代码的代码执行区域(codeexecution region),或称应用代码区域(application code region),以及用于储存系统运作时需要被改变或纪录的数据或参数的数据纪录区域(data log region)。当系统运作过程中需要改变或纪录数据或参数时,处理器都只会执行写入动作。即使数据或参数需要再次被更改或者记录,为避免造成系统处理程序的延迟,也是将数据或者参数直接写入新的存储数据页或存储器区块,而不是在原来的存储数据页或存储器区块上做擦除及覆写。
然而,当数据纪录区域的使用率达到一定程度时,仍必需执行擦除操作,将数据纪录区域中无效的数据擦除,以释放出存储器空间。
由于一般快闪存储器的设计会将应用代码区域与数据纪录区域配置于同一块快闪存储器,因此当需要对数据纪录区域进行擦除时,系统便无法对应用代码区域进行存取。也就是,程序必须停止运行,直到数据纪录区域的擦除操作完成。
为了不影响系统程序的执行,现行的一种解决方法为先将应用代码区域内所储存的代码(Application code)搬移至另一存储器装置(例如,一静态随机存取存储器(StaticRandom-Access Memory,SRAM)),再将系统的处理器导向至SRAM执行,同时对快闪存储器进行擦除。待快闪存储器擦除操作完毕后,再将处理器导向回原来快闪存储器上执行。然而,这种方式会增加程序设计的复杂度与困难度,同时系统也必须预留额外一块可以容纳代码大小的SRAM,导致系统成本增加。
现行的另一种解决方法为将应用代码区域与数据纪录区域分别配置于两个完全独立的快闪存储器库(bank)中,或是配置在同一个快闪存储器,但各自有独立的擦除/写入控制电路(Erase/Program Control Circuit),使得系统在对数据纪录区域进行擦除操作时,应用代码区域仍可被系统的处理器存取。然而,这种方式会增加硬件电路成本,且需要应用于特别定制化的快闪存储器。
为使系统运作(例如,应用代码区域的存取)不会因数据擦除的进行而受影响,且系统处理程序不会因数据擦除的进行而被迫延迟或中断,本发明提出一种数据处理系统及适用于此系统的数据处理方法,用以控制数据纪录区域的擦除操作。藉由本发明所提出的系统与方法,无须大幅增加硬件成本与系统程序开发复杂度,便可达到不中断系统程序正常运行的结果,并且相较于现有技术,可有效地把擦除操作对于系统运作的干扰程度降至最低。以下将针对本发明所提出的数据处理系统及数据处理方法做更详细的介绍。
图1是显示根据本发明的一实施例所述的一数据处理系统方块图。根据本发明的一实施例,数据处理系统100可为一微控制器(Micro-Controller Unit,MCU)。数据处理系统100可包括一存储器装置110、一存储器控制器120以及一处理器130。值得注意的是,图1为一简化过的方块图,其中仅显示出与本发明相关的元件。任何本领域技术人员当可理解一数据处理系统亦可包含其他未示于图1的元件。
根据本发明的一实施例,存储器装置110包括一第一区域以及一第二区域,第一区域可为上述的代码执行区域(code execution region),或称应用代码区域(applicationcode region),被配置用以储存多个代码,第二区域可为上述的数据纪录区域(data logregion),被配置用以储存系统运作时需要被改变或纪录的数据或参数(以下称为系统数据)。根据本发明的一实施例,存储器装置110可为一快闪存储器。
存储器控制器120耦接于处理器130与存储器装置110之间,被配置用以控制存储器装置110的存取。
处理器130可向存储器控制器120发出一存取控制信号,存储器控制器120因应存取控制信号存取存储器装置110。即,处理器130通过存储器控制器120存取存储器装置110的应用代码区域及数据纪录区域,以取得(fetch)所欲执行的代码及所需的系统数据,其中代码可包含一或多个指令(Instruction),处理器130可根据代码内容执行对应的指令。
更具体的说,处理器130可通过一双向的总线(bus)21耦接至存储器控制器120,用以传送多个控制信号,例如,存取控制信号、擦除控制信号等至存储器控制器120,以及接收通过存储器控制器120自存储器装置110取得的代码与系统数据。
存储器控制器120亦可通过多个总线耦接至存储器装置110,其中,控制总线22用以传送多个控制指令(Command),地址总线23用以传送所欲存取的数据的地址,数据总线24为一双向的总线,用以传送欲写入存储器装置110的数据,以及接收自存储器装置110取得的数据。
图2是显示根据本发明的另一实施例所述的一数据处理系统方块图。根据本发明的一实施例,数据处理系统200可为一微控制器(MCU)。数据处理系统200所包含的大部分元件与数据处理系统100相同,因此,相关的说明可参考以上图1的介绍,并于此不在赘述。
根据本发明的一实施例,数据处理系统200可更包括一直接内存访问(DirectMemory Access,DMA)控制器240。DMA控制器240通过双向的总线25耦接至存储器控制器220,被配置用以通过存储器控制器220存取存储器装置210。总线25用以将直接存储器存取请求传送至存储器控制器220,以及接收自存储器装置210取得的数据。
根据本发明的一实施例,存储器装置110/210可更包括多个暂存器。于本发明的一实施例中,各存储器区块可被配置一可独立地被设定及控制的暂存器。于本发明的另一实施例中,各存储器数据页可被配置一可独立地被设定及控制的暂存器。各暂存器用以储存一擦除位,用以指示该暂存器所对应的一存储器数据页或一存储器区块所储存的数据是否需被擦除。
图3是显示根据本发明的一实施例所述的于多个暂存器所储存的擦除位示意图。各擦除位可对应于一存储器数据页或一存储器区块。当擦除位被设定为1时,代表对应的一存储器数据页或一存储器区块所储存的数据需被擦除。因此,于此实施例中,当存储器控制器120/220对存储器装置110/210发出擦除命令以进行擦除操作时,只有存储器区块编号或存储器数据页编号为2跟3的存储器区块或存储器数据页所储存的数据会被擦除,其他的存储器区块或存储器数据页所储存的数据则不受影响。根据本发明的一实施例,存储器装置120/220可包括一擦除控制电路111/211。因应存储器控制器120/220所发出的擦除命令,擦除控制电路111/211可根据如图3所示的擦除位所夹带的信息擦除第二区域(数据纪录区域)所储存的至少一部分数据,例如,第2、3个存储器区块或存储器数据页所储存的数据。
图4是显示根据本发明的一实施例所述的一数据处理方法范例流程图。首先,存储器控制器120/220可自处理器130/230接收一擦除控制信号(步骤S402)。根据本发明的一实施例,当系统需要对第二区域(数据纪录区域)的某些存储器区块或存储器数据页进行擦除时,便会向存储器控制器120/220发出擦除控制信号。于此,所述的系统是指针对此数据处理系统100/200所设计的软件与固件程序及执行此软件与固件程序的处理器130/230的一个整体。因此,擦除控制信号可于处理器130/230执行对应的代码的过程中,经由一些对应的判断认为需要执行擦除操作时发出。
根据本发明的一实施例,擦除控制信号夹带着第二区域(数据纪录区域)的哪些地址(或者,存储器区块或存储器数据页的编号)所储存的数据需被擦除的信息。接着,存储器控制器120/220可根据擦除控制信号夹带的信息设定对应的暂存器所储存的擦除位(步骤S404)。例如,将需被擦除的存储器区块或存储器数据页所对应的擦除位设定为一特定数值。待擦除位设定完成后,处理器130/230会再对存储器控制器120/220发出擦除存储器区块/存储器数据页的命令(亦为一种控制信号)。值得注意的是,于本发明的其他实施例中,存储器区块/存储器数据页的擦除命令亦可与擦除控制信号一并被发出,或者可整合为同一个控制信号。
根据本发明的一实施例,存储器控制器120/220可包含一擦除进行计时器(EraseElapse Timer)121/221。存储器控制器120/220在收到擦除命令后,并不会立刻对存储器装置110/210执行擦除存储器区块/存储器数据页的工作,而是先设定好擦除进行计时器的时间,此计时器储存着擦除存储器区块/存储器数据页所需要的时间。值得注意的是,于本发明的实施例中,当多个存储器区块/存储器数据页需被擦除时,这些存储器区块/存储器数据页的擦除操作是同时被执行的。因此,擦除进行计时器121/221所储存的时间无须随着需被擦除的存储器区块/存储器数据页的数量改变而变化。于本发明的实施例中,步骤S404亦可包含擦除进行计时器121/221的设定。
根据本发明的一实施例,待擦除位及擦除进行计时器121/221被设定后,存储器控制器120/220仍不会立刻对存储器装置110/210执行擦除存储器区块/存储器数据页的工作,而是等待直到数据处理系统100/200或处理器130/230闲置时,才会执行擦除存储器区块/存储器数据页的工作。
根据本发明的一实施例,存储器控制器120/220可更包括一检测电路122/222,被配置用以检测处理器130/230是否已进入一闲置状态(步骤S406)。根据本发明的一实施例,当检测电路122/222检测到处理器130/230已进入闲置状态时,会发出一处理器闲置信号Processor_Idle给存储器控制器120/220(步骤S408),做后续的工作判断依据。根据本发明的一实施例,检测电路122/222可将处理器闲置信号Processor_Idle位数值设定为’1’,用以代表处理器130/230已进入闲置状态。
根据本发明如图1所示的实施例,因应处理器闲置信号Processor_Idle的接收,存储器控制器120才对存储器装置110发出擦除命令以进行擦除操作(步骤S412)(于此实施例中,步骤S410被略过),同时启动擦除进行计时器121/221开始计时。根据本发明如图2所示的实施例,因应处理器闲置信号Processor_Idle的接收,存储器控制器220会进一步判断DMA控制器240是否未发出一直接存储器存取请求(步骤S410)。当判断DMA控制器240并未发出直接存储器存取请求时,存储器控制器220才对存储器装置210发出擦除命令以进行擦除操作(步骤S412),同时启动擦除进行计时器121/221开始计时。
最后,因应存储器控制器120/220所发出的擦除命令,擦除控制电路111/211可根据擦除位所夹带的信息擦除第二区域(数据纪录区域)所储存的至少一部分数据(步骤S414)。
值得注意的是,于本发明的多种可实施架构中,检测电路与擦除进行计时器并不限于被设置于存储器控制器内。图5是显示根据本发明的又另一实施例所述的数据处理系统方块图。数据处理系统500可为一微控制器(MCU)。数据处理系统500所包含的大部分元件与数据处理系统100/200相同,因此,相关的说明可参考以上图1、2的介绍,并于此不在赘述。
于此实施例中,擦除进行计时器521与检测电路522被配置于存储器控制器520外部,并且可通过对应的总线及/或信号走线与存储器控制器520沟通。
值得注意的是,以上所介绍的控制方法、流程与各元件所执行的操作均可适用于如图5所示的存储器装置510、擦除控制电路511、存储器控制器520、擦除进行计时器521、检测电路522、处理器530、以及DMA控制器540等。因此,相关的说明可参考以上的介绍,并于此不在赘述。
根据本发明的一实施例,检测电路122/222/522可藉由解码处理器130/230/530所执行的该指令,判断处理器130/230/530是否已进入闲置状态。举例而言,检测电路122/222/522可解译(interprete)处理器130/230/530所欲取得的代码,以解码出处理器130/230/530目前所执行或即将执行的指令。根据本发明的一实施例,当处理器130/230/530执行到等待(wait)、while回圈、反复跳跃(jump)至同一行代码或维持(hold)等相关指令时,检测电路122/222/522可根据相关指令内容判断处理器130/230/530是否已进入闲置状态。
更具体的说,举例而言,当处理器130/230/530执行到用以等待外界周边装置发出中断信号的WFI(Wait For Interrupt)指令时,检测电路122/222/522可判断处理器130/230/530已进入闲置状态。举另一例而言,当处理器130/230/530执行到用以等待特定事件的WFE(Wait For Event)指令时,检测电路122/222/522可判断处理器130/230/530已进入闲置状态。举又另一例而言,当处理器130/230/530执行到while(1)回圈或JMP$等类似的指令,使其会持续停留于或反复跳跃至同一行代码执行时,检测电路122/222/522可判断处理器130/230/530已进入闲置状态。
根据本发明的另一实施例,检测电路122/222/522亦可检测处理器130/230/530所欲取得的代码所对应的地址是否改变,据以判断处理器130/230/530是否已进入闲置状态。举例而言,当处理器130/230/530送给存储器控制器110/210/520的地址(所欲存取的代码的地址)与先前的一或多个存取请求相同时,检测电路122/222/522可判断处理器130/230/530已进入闲置状态。
根据本发明的又另一实施例,检测电路122/222/522亦可根据处理器130/230/530是否于执行某特定指令后,或者于一段时间内并未向存储器控制器120/220/520发出存取控制信号用以自应用代码区域取得(fetch)所欲执行的代码,判断处理器130/230/530是否已进入闲置状态。举例而言,若处理器130/230/530于执行某特定指令后,或者于一段时间内并未向存储器控制器120/220/520发出存取控制信号用以自应用代码区域取得(fetch)所欲执行的代码,检测电路122/222/522可判断处理器130/230/530已进入闲置状态。
于本发明的实施例中,只要指令解码结果、代码地址是否改变的判断结果、及是否未发出存取控制信号以取得所欲执行的代码的判断结果的其中一者成立,检测电路122/222/522即可据以判断处理器130/230/530已进入闲置状态。
根据本发明的一实施例,当擦除控制电路111/211/511根据擦除位所夹带的信息擦除第二区域(数据纪录区域)所储存的数据时,存储器控制器120/220/520可进一步根据擦除进行计时器121/221/521的计时结果判断擦除操作是否完成。当擦除进行计时器121/221/521发生溢位时(例如,计时器预定计数的时间届满),会发出溢位信号Time_out通知存储器控制器120/220/520,存储器控制器120/220/520可藉此推断擦除操作应该已经完成。
于接获溢位信号Time_out后,存储器控制器120/220/520可读取需被擦除的存储器区块/存储器数据页内的数据,用以确认擦除操作是否成功。举例而言,若需被擦除的存储器区块/存储器数据页内的数据为一特定值,例如,各位所记录的内容均为1,则存储器控制器120/220/520可判断擦除操作已成功完成,并且可设定存储器控制器120/220/520内部的一状态暂存器(例如,一擦除完毕旗标),用以通知系统擦除操作已成功完成。若存储器控制器120/220/520判断擦除操作并未成功,存储器控制器120/220/520可重新设定擦除进行计时器121/221/521的时间,并且再次对存储器装置110/210/510发出擦除命令以进行擦除操作,同时再度启动擦除进行计时器121/221/521进行计时。此流程可被反复进行,直到存储器控制器120/220/520确认擦除操作已成功完成。
值得注意的是,若于擦除操作的过程中,存储器控制器120/220/520检测到处理器闲置信号Processor_Idle的状态改变,例如,由原先代表处理器130/230/530已进入闲置状态的位’1’转变为代表处理器130/230/530进入非闲置状态的位’0’,或者,于另一实施例中,于擦除操作的过程中,存储器控制器120/220/520自DMA控制器140/240/540接收到直接存储器存取请求时,存储器控制器120/220/520将立刻向存储器装置110/210/510发出中断命令,以中断擦除操作。同时间,存储器控制器120/220/520亦会暂停擦除进行计时器121/221/521的计时。根据本发明的一实施例,直到存储器控制器120/220/520再度检测到处理器闲置信号Processor_Idle指示处理器130/230/530已进入闲置状态时(例如,转变为位’1’时),存储器控制器120/220/520再度对存储器装置110/210/510发出擦除命令以进行擦除操作,同时再次启动擦除进行计时器121/221/521进行计时。或者,于另一实施例中,直到存储器控制器120/220/520再度检测到处理器闲置信号Processor_Idle指示处理器130/230/530已进入闲置状态时且判断DMA控制器140/240/540并未发出直接存储器存取请求时,存储器控制器120/220/520再度对存储器装置110/210/510发出擦除命令以进行擦除操作,同时再次启动擦除进行计时器121/221/521进行计时。
图6是显示根据本发明的一实施例所述的数据处理方法的一范例流程图,用以说明于擦除操作开始后的数据处理方法流程。于此实施例中所介绍的流程为存储器控制器120/220/520所执行的控制流程。当系统没有向存储器控制器120/220/520发出擦除控制信号前,存储器控制器120/220/520执行其正常工作。当系统向存储器控制器120/220/520发出擦除控制信号及/或擦除命令后,存储器控制器120/220/520可根据擦除控制信号夹带的信息设定对应的暂存器所储存的擦除位,并且设定好擦除进行计时器的时间,以及清除擦除完毕旗标(步骤S602)。接着,存储器控制器120/220/520判断处理器130/230/530是否已进入闲置状态(步骤S604)。
若否,则流程回到步骤S604。若是,则存储器控制器220/520进一步判断是否自DMA控制器接收到直接存储器存取请求(步骤S606)(于一些实施例中,步骤S606可省略)。若是,则流程回到步骤S604。
若处理器130/230/530已进入闲置状态,且并未接收到直接存储器存取请求,则存储器控制器120/220/520启动擦除进行计时器121/221/521进行计时(步骤S608),并且对存储器装置110/210/510发出擦除命令以使其执行擦除操作(步骤S610)。如上述,擦除控制电路111/211/5111可根据擦除位的设定值擦除数据纪录区域所储存的至少一部分数据。
于擦除操作执行的过程中,存储器控制器120/220/520会持续检测处理器闲置信号Processor_Idle的状态是否改变,以判断处理器是否仍处于闲置状态(步骤S612),并且持续判断是否自DMA控制器接收到直接存储器存取请求(步骤S614)(于一些实施例中,步骤S614可省略)。若处理器仍处于闲置状态,且并未自DMA控制器接收到直接存储器存取请求,则存储器控制器120/220/520进一步根据擦除进行计时器121/221/521的计时结果判断擦除操作是否完成(步骤S616)。若擦除操作尚未完成,则流程回到步骤S612。若擦除操作已完成,则存储器控制器120/220/520进一步确认擦除操作是否成功(步骤S618)。若是,则存储器控制器120/220/520设定擦除完毕旗标(步骤S620),用以通知系统擦除操作已成功完成。若否,则流程回到步骤S602。
另一方面,于擦除操作执行的过程中,若存储器控制器120/220/520检测到处理器已进入非闲置状态,或自DMA控制器接收到直接存储器存取请求,则存储器控制器120/220/520停止擦除进行计时器121/221/521(步骤S622),并且向存储器装置110/210/510发出中断命令(步骤S624),以中断擦除操作。接着,流程回到步骤S604,存储器控制器120/220/520回复执行其正常工作,并且持续等待处理器闲置信号Processor_Idle的状态再度改变(例如,位数值再度改变为’1’),以及/或直接存储器存取请求的判断为否(即,未自DMA控制器接收到直接存储器存取请求,或于先前接获的直接存储器存取请求完成后并未再接收到新的直接存储器存取请求)时,再命令存储器装置110/210/510继续执行先前未完成的擦除操作,直到擦除进行计时器121/221/521发生溢位(Time_out)并且确认擦除操作成功为止。
如上述,与现有技术不同之处在于,藉由本发明所提出的数据处理系统及适用于此系统的数据处理方法,无须大幅增加硬件成本与系统程序开发复杂度,便可达到不中断系统程序正常运行的结果,并且相较于现有技术,本发明所提出的数据处理系统及方法可有效地把擦除操作对于系统运作的干扰程度降至最低。
申请专利范围中用以修饰元件的“第一”、“第二”等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视权利要求范围所界定者为准。

Claims (10)

1.一种数据处理系统,其特征在于,包括:
一存储器装置,包括一第一区域以及一第二区域,其中该第一区域被配置用以储存多个代码,该第二区域被配置用以储存系统数据;
一处理器,被配置用以根据所述多个代码执行至少一指令,其中该处理器发出一存取控制信号用以取得所述多个代码的至少一部分;
一存储器控制器,耦接于该处理器与该存储器装置之间,被配置用以因应该存取控制信号存取该存储器装置;以及
一检测电路,耦接至该存储器控制器,被配置用以检测该处理器是否已进入一闲置状态;
其中当该检测电路检测到该处理器已进入该闲置状态时,该检测电路发出一处理器闲置信号,并且
其中因应该处理器闲置信号,该存储器控制器发出一擦除命令,以及
其中因应该擦除命令,该存储器装置擦除该第二区域所储存的至少一部分数据。
2.如权利要求1所述的数据处理系统,其特征在于,该检测电路被设置于该存储器控制器内部。
3.如权利要求1所述的数据处理系统,其特征在于,该检测电路藉由解码该处理器所执行的该指令,判断该处理器是否已进入该闲置状态。
4.如权利要求1所述的数据处理系统,其特征在于,该检测电路藉由判断该处理器所欲取得的所述多个代码所对应的地址是否未改变,判断该处理器是否已进入该闲置状态。
5.如权利要求1所述的数据处理系统,其特征在于,该存储器装置更包括多个暂存器,各暂存器用以储存一擦除位,各擦除位用以指示该暂存器所对应的一存储器数据页或一存储器区块所储存的数据是否需被擦除。
6.如权利要求1所述的数据处理系统,其特征在于,该存储器控制器更自该处理器接收一擦除控制信号,用以根据该擦除控制信号设定该存储器装置的一或多个擦除位,并且其中于该一或多个擦除位被设定后,该存储器控制器等待直到接收到该处理器闲置信号后,才发出该擦除命令。
7.如权利要求6所述的数据处理系统,其特征在于,更包括:
一直接存储器存取控制器,耦接至该存储器控制器,被配置用以通过该存储器控制器存取该存储器装置;
其中于该一或多个擦除位被设定后,该存储器控制器等待直到接收到该处理器闲置信号,并且进一步判断该直接存储器存取控制器并未发出一直接存储器存取请求后,才发出该擦除命令。
8.一种数据处理方法,适用于一数据处理系统,其特征在于,该数据处理系统包括一存储器装置、一处理器以及一存储器控制器,该存储器装置包括一第一区域以及一第二区域,该第一区域被配置用以储存多个代码,该第二区域被配置用以储存系统数据,该处理器发出一存取控制信号用以取得所述多个代码的至少一部分,并根据取得的所述多个代码执行至少一指令,该存储器控制器因应该存取控制信号存取该存储器装置,该方法包括:
接收一擦除控制信号;
检测该处理器是否已进入一闲置状态;
当检测到该处理器已进入该闲置状态时,发出一处理器闲置信号;
因应该处理器闲置信号,发出一擦除命令;以及
因应该擦除命令,擦除该第二区域所储存的至少一部分数据。
9.如权利要求8所述的数据处理方法,其特征在于,检测该处理器是否已进入一闲置状态的步骤更包括:
解码该处理器所执行的该指令,以判断该处理器是否已进入该闲置状态。
10.如权利要求9所述的数据处理方法,其特征在于,检测该处理器是否已进入一闲置状态的步骤更包括:
判断该处理器所欲取得的所述多个代码所对应的地址是否未改变,以判断该处理器是否已进入该闲置状态。
CN201811100135.XA 2018-08-06 2018-09-20 数据处理系统与数据处理方法 Active CN110806836B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107127283A TWI676987B (zh) 2018-08-06 2018-08-06 資料處理系統與資料處理方法
TW107127283 2018-08-06

Publications (2)

Publication Number Publication Date
CN110806836A true CN110806836A (zh) 2020-02-18
CN110806836B CN110806836B (zh) 2023-03-24

Family

ID=69188856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811100135.XA Active CN110806836B (zh) 2018-08-06 2018-09-20 数据处理系统与数据处理方法

Country Status (2)

Country Link
CN (1) CN110806836B (zh)
TW (1) TWI676987B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509134A (en) * 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
US20040158775A1 (en) * 2003-01-28 2004-08-12 Renesas Technology Corp. Nonvolatile memory
US20110055458A1 (en) * 2009-09-03 2011-03-03 248 Solid State, Inc. Page based management of flash storage
CN104657685A (zh) * 2013-11-22 2015-05-27 新唐科技股份有限公司 保护非易失性存储器中存储的程序代码的装置
CN106155940A (zh) * 2015-04-17 2016-11-23 扬智科技股份有限公司 可保护代码的系统芯片与系统芯片的代码保护方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930175A (en) * 1997-08-22 1999-07-27 Micron Technology, Inc. Voltage pump switch
US8261130B2 (en) * 2007-03-02 2012-09-04 Infineon Technologies Ag Program code trace signature
WO2013048407A1 (en) * 2011-09-29 2013-04-04 Intel Corporation Apparatus, system, and method for providing memory access control
KR20170036195A (ko) * 2015-09-23 2017-04-03 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US10282251B2 (en) * 2016-09-07 2019-05-07 Sandisk Technologies Llc System and method for protecting firmware integrity in a multi-processor non-volatile memory system
WO2018108035A1 (zh) * 2016-12-13 2018-06-21 腾讯科技(深圳)有限公司 信息处理以及虚拟资源交换方法、装置及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509134A (en) * 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
US20040158775A1 (en) * 2003-01-28 2004-08-12 Renesas Technology Corp. Nonvolatile memory
US20110055458A1 (en) * 2009-09-03 2011-03-03 248 Solid State, Inc. Page based management of flash storage
CN104657685A (zh) * 2013-11-22 2015-05-27 新唐科技股份有限公司 保护非易失性存储器中存储的程序代码的装置
CN106155940A (zh) * 2015-04-17 2016-11-23 扬智科技股份有限公司 可保护代码的系统芯片与系统芯片的代码保护方法

Also Published As

Publication number Publication date
CN110806836B (zh) 2023-03-24
TWI676987B (zh) 2019-11-11
TW202008371A (zh) 2020-02-16

Similar Documents

Publication Publication Date Title
US5822244A (en) Method and apparatus for suspending a program/erase operation in a flash memory
US6201739B1 (en) Nonvolatile writeable memory with preemption pin
CN109117391B (zh) 用于存储器系统的控制器
US7234049B2 (en) Computer system with NAND flash memory for booting and storage
US8327161B2 (en) Command decoder for microcontroller based flash memory digital controller system
US20180307496A1 (en) Methods for gc (garbage collection) por (power off recovery) and apparatuses using the same
US5923838A (en) Microcomputer with built-in flash memory
US20060245274A1 (en) Apparatus and method for controlling NAND flash memory
KR100474622B1 (ko) 마이크로컴퓨터
KR100988157B1 (ko) 메모리 디바이스 구성을 검출하기 위한 방법 및 장치와, 메모리 디바이스 구성을 검출하기 위한 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 판독 가능 매체
US5940861A (en) Method and apparatus for preempting operations in a nonvolatile memory in order to read code from the nonvolatile memory
KR20180121898A (ko) 메모리 디바이스에서 소거-일시 중단 동작을 수행하기 위한 방법 및 장치
US10776042B2 (en) Methods for garbage collection and apparatuses using the same
US6189070B1 (en) Apparatus and method for suspending operation to read code in a nonvolatile writable semiconductor memory
US5493664A (en) Microcomputer that transfers address and control to a debugging routine when an input address is a breakpoint address and a user accessible register for signalling if the breakpoint address is from the cache memory or a main memory
US5603010A (en) Performing speculative system memory reads prior to decoding device code
JP2008059052A (ja) 半導体集積回路及びマイクロコンピュータ
JPS6131485B2 (zh)
CN110806836B (zh) 数据处理系统与数据处理方法
JP2004227635A (ja) 不揮発性半導体メモリおよび不揮発性半導体メモリを内蔵したマイクロコンピュータ
JP4873526B2 (ja) 半導体集積回路及びマイクロコンピュータ
US7487287B2 (en) Time efficient embedded EEPROM/processor control method
JPH0816420A (ja) 小型情報処理装置のエラー処理方法
JP4343244B2 (ja) マイクロコンピュータ
JP3785807B2 (ja) 制御装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant