数据处理系统与数据处理方法与流程

文档序号:19946602发布日期:2020-02-18 09:30阅读:172来源:国知局
数据处理系统与数据处理方法与流程

本发明是关于一种数据处理系统与数据处理方法,特别是一种可有效降低存储器的擦除操作对于系统运作的干扰的数据处理系统与数据处理方法。



背景技术:

非易失性存储器(non-volatilememory)为一种断电后重新启动后也可以保留数据的存储器。当应用于电脑装置或处理器装置时,非易失性存储器通常可被切分出用于储存应用代码的代码执行区域(codeexecutionregion),或称应用代码区域(applicationcoderegion),以及用于储存系统运作时需要被改变或纪录的数据或参数的数据纪录区域(datalogregion)。

一般而言,非易失性存储器的写入(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控制器。

具体实施方式

为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合所附图式,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。

如上述,非易失性存储器通常可被分为用于储存应用代码的代码执行区域(codeexecutionregion),或称应用代码区域(applicationcoderegion),以及用于储存系统运作时需要被改变或纪录的数据或参数的数据纪录区域(datalogregion)。当系统运作过程中需要改变或纪录数据或参数时,处理器都只会执行写入动作。即使数据或参数需要再次被更改或者记录,为避免造成系统处理程序的延迟,也是将数据或者参数直接写入新的存储数据页或存储器区块,而不是在原来的存储数据页或存储器区块上做擦除及覆写。

然而,当数据纪录区域的使用率达到一定程度时,仍必需执行擦除操作,将数据纪录区域中无效的数据擦除,以释放出存储器空间。

由于一般快闪存储器的设计会将应用代码区域与数据纪录区域配置于同一块快闪存储器,因此当需要对数据纪录区域进行擦除时,系统便无法对应用代码区域进行存取。也就是,程序必须停止运行,直到数据纪录区域的擦除操作完成。

为了不影响系统程序的执行,现行的一种解决方法为先将应用代码区域内所储存的代码(applicationcode)搬移至另一存储器装置(例如,一静态随机存取存储器(staticrandom-accessmemory,sram)),再将系统的处理器导向至sram执行,同时对快闪存储器进行擦除。待快闪存储器擦除操作完毕后,再将处理器导向回原来快闪存储器上执行。然而,这种方式会增加程序设计的复杂度与困难度,同时系统也必须预留额外一块可以容纳代码大小的sram,导致系统成本增加。

现行的另一种解决方法为将应用代码区域与数据纪录区域分别配置于两个完全独立的快闪存储器库(bank)中,或是配置在同一个快闪存储器,但各自有独立的擦除/写入控制电路(erase/programcontrolcircuit),使得系统在对数据纪录区域进行擦除操作时,应用代码区域仍可被系统的处理器存取。然而,这种方式会增加硬件电路成本,且需要应用于特别定制化的快闪存储器。

为使系统运作(例如,应用代码区域的存取)不会因数据擦除的进行而受影响,且系统处理程序不会因数据擦除的进行而被迫延迟或中断,本发明提出一种数据处理系统及适用于此系统的数据处理方法,用以控制数据纪录区域的擦除操作。藉由本发明所提出的系统与方法,无须大幅增加硬件成本与系统程序开发复杂度,便可达到不中断系统程序正常运行的结果,并且相较于现有技术,可有效地把擦除操作对于系统运作的干扰程度降至最低。以下将针对本发明所提出的数据处理系统及数据处理方法做更详细的介绍。

图1是显示根据本发明的一实施例所述的一数据处理系统方块图。根据本发明的一实施例,数据处理系统100可为一微控制器(micro-controllerunit,mcu)。数据处理系统100可包括一存储器装置110、一存储器控制器120以及一处理器130。值得注意的是,图1为一简化过的方块图,其中仅显示出与本发明相关的元件。任何本领域技术人员当可理解一数据处理系统亦可包含其他未示于图1的元件。

根据本发明的一实施例,存储器装置110包括一第一区域以及一第二区域,第一区域可为上述的代码执行区域(codeexecutionregion),或称应用代码区域(applicationcoderegion),被配置用以储存多个代码,第二区域可为上述的数据纪录区域(datalogregion),被配置用以储存系统运作时需要被改变或纪录的数据或参数(以下称为系统数据)。根据本发明的一实施例,存储器装置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可更包括一直接内存访问(directmemoryaccess,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可包含一擦除进行计时器(eraseelapsetimer)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(waitforinterrupt)指令时,检测电路122/222/522可判断处理器130/230/530已进入闲置状态。举另一例而言,当处理器130/230/530执行到用以等待特定事件的wfe(waitforevent)指令时,检测电路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)并且确认擦除操作成功为止。

如上述,与现有技术不同之处在于,藉由本发明所提出的数据处理系统及适用于此系统的数据处理方法,无须大幅增加硬件成本与系统程序开发复杂度,便可达到不中断系统程序正常运行的结果,并且相较于现有技术,本发明所提出的数据处理系统及方法可有效地把擦除操作对于系统运作的干扰程度降至最低。

申请专利范围中用以修饰元件的“第一”、“第二”等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。

虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视权利要求范围所界定者为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1