CN110716693B - 信息处理器件和控制方法 - Google Patents
信息处理器件和控制方法 Download PDFInfo
- Publication number
- CN110716693B CN110716693B CN201910610918.0A CN201910610918A CN110716693B CN 110716693 B CN110716693 B CN 110716693B CN 201910610918 A CN201910610918 A CN 201910610918A CN 110716693 B CN110716693 B CN 110716693B
- Authority
- CN
- China
- Prior art keywords
- data
- area
- flag
- memory area
- valid
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000010365 information processing Effects 0.000 title claims abstract description 25
- 230000008569 process Effects 0.000 claims abstract description 88
- 230000006870 function Effects 0.000 claims description 139
- 238000010586 diagram Methods 0.000 description 19
- 230000007704 transition Effects 0.000 description 12
- 101100063504 Mus musculus Dlx2 gene Proteins 0.000 description 11
- 101150041890 TES1 gene Proteins 0.000 description 11
- 238000013500 data storage Methods 0.000 description 11
- 101150023508 TEC1 gene Proteins 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000012790 confirmation Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0614—Improving the reliability of storage systems
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Abstract
本申请涉及信息处理器件和控制方法。主机发出当数据更新处理中断时指定的有效数据。控制单元3在存储单元2中存储:第二更新状态标志8_2,其指示第一更新状态标志8_1的更新状态;和第二数据6_2,其指示第一数据6_1的更新状态;以及第三更新状态标志8_3,其指示有效指令标志7的更新状态。当基于有效指令标志7的确定是不可能时,使用数据确定单元4基于第一更新状态标志8_1、第二更新状态标志8_2和第三更新状态标志8_3的值确定第一数据6_1和第二数据6_2中的哪一个数据是有效的。
Description
相关申请的交叉引用
2018年7月12日提交的日本专利申请No.2018-132068的公开内容,包括说明书、附图和摘要,通过引用整体并入本文。
技术领域
本发明涉及信息处理器件和控制方法,并且例如涉及用于确定有效数据的技术。
背景技术
日本未审查专利申请公开No.2016-133874公开了一种用于在闪存中存储数据擦除次数的信息处理器件。在该信息处理器件中,擦除次数由三个存储器区域管理,即A区域、B区域和标志区域。A区域和B区域中的一个区域存储更新前的擦除次数,另一个区域存储更新后的擦除次数。在标志区域中存储标志,该标志指示哪个区域有效,即,哪个区域存储当前擦除次数。
在该信息处理器件中,当标志指示A区域有效时,在擦除B区域之后,将更新后的擦除次数存储在B区域中,并且此后,重写该标志以指示B区域有效。利用这样的配置,即使擦除次数的更新处理被中断,也不会丢失所存储的擦除次数。
发明内容
然而,在上述技术中,如果由于意外情况等在标志重写处理期间中断处理,则未存储适当的值作为标志。也就是说,可能变得不确定A区域和B区域中的哪一个是有效的。另外,当存储在A区域和B区域中的内容不是擦除次数、而是在诸如MCU(微控制单元:微控制器单元)的器件中的设置数据(例如,指明系统启动时要访问的存储器区域的设置数据、安全设置数据等)时,这意味着设置数据变得不确定。在这种情况下,可能会发生软件或安全设置的无意切换,从而导致系统故障。因此,需要一种即使数据更新处理被中断也能够指明有效数据的技术。
根据本说明书的描述和附图,其他目的和新颖特征将变得显而易见。
根据一个实施例,控制单元在存储单元中存储指示第一数据的更新状态的第一更新状态标志、指示第二数据的更新状态的第二更新状态标志以及指示有效指令标志的更新状态的第三更新状态标志,并且当基于有效指令标志的确定是不可能时,使用数据确定单元基于第一更新状态标志、第二更新状态标志和第三更新状态标志来确定所述第一数据和所述第二数据中的哪一个数据有效。
附图说明
图1是示出根据实施例的概述的信息处理器件1的配置示例的框图。
图2是示出根据实施例的微控制器10的配置示例的框图。
图3是示出布置在用于功能设置15的闪存中的三个存储器区域的示例的示意图。
图4是示出切换区域100的配置示例的示意图。
图5是示出标签区域200的配置示例的示意图。
图6是示出闪存定序器17的命令的图。
图7是示出当接收到“切换区域擦除”命令时根据第一实施例的闪存定序器17的示例操作的流程图。
图8是示出当接收到“切换区域写入”命令时闪存定序器17的操作示例的流程图。
图9是示出当接收到“标签区域擦除”命令时根据第一实施例的闪存定序器17的示例操作的流程图。
图10是示出当接收到“标签区域更新”命令时根据第一实施例的闪存定序器17的操作示例的流程图。
图11A是示出切换区域100_0中的每个设置数据和每个标志的转变的表。
图11B是示出切换区域100_1中的每个设置数据和每个标志的转变的表。
图11C是示出标签区域200中的标志的转变的表。
图12是示出参考模式的示例的表。
图13是示出当接收到“切换区域擦除”命令时根据第二实施例的闪存定序器17的示例操作的流程图。
图14是示出当接收到“标签区域擦除”命令时根据第二实施例的闪存定序器17的示例操作的流程图。
图15是示出在图13中所示的处理之前执行的处理的流程图。
图16是示出在图14中所示的处理之前执行的处理的流程图。
图17是示出根据第三实施例的用于设置功能的闪存15的示例性配置的示意图。
图18是示出配置设置区域300A的两个划分区域CNF_0和CNF_1的配置示例的示意图。
图19是示出用于设置区域300的命令的图。
图20是示出当接收到“设置区域擦除”命令且配置设置区域300A的地址被设置到寻址寄存器时闪存定序器17的操作示例的流程图。
图21是示出当接收到“设置区域写入”命令且配置设置区域300A的地址被设置到寻址寄存器时闪存定序器17的操作示例的流程图。
图22A是示出划分区域CNF_0中的每个功能设置数据和每个标志的转变的表。
图22B是示出划分区域CNF_1中的每个功能设置数据和每个标志的转变的表。
图23是示出切换区域100_0/切换区域100_1/标签区域200与配置设置区域300A/安全设置区域300B/块保护设置区域300C之间的关系的示意图。
图24示出了微控制器10的状态的示例。
图25示出了微控制器10的状态的示例。
图26是示出当接收到“标签区域更新”命令时根据第三实施例的闪存定序器17的操作示例的流程图。
具体实施方式
首先,在详细描述实施例之前,将描述实施例的概要。图1是示出根据本发明实施例的概述的信息处理器件1的示例配置的框图。信息处理器件1包括存储单元2、控制单元3和使用数据确定单元4。
存储单元2包括存储数据6_1(第一数据)的存储器区域5_1(第一存储器区域)、存储数据6_2(第二数据)的存储器区域5_2(第二存储器区域)和存储有效指令标志7的存储器区域5_3(第三存储器区域)。存储单元2例如是闪存,但也可以是其他类型的存储器件。有效指令标志7是指示数据6_1和数据6_2中的哪一个数据有效的标志。因此,当预定值被正常存储为有效指令标志7时,可以基于有效指令标志7的值来指明有效数据。有效指令标志7可以被称为指示存储器区域5_1和5_2中的哪个存储器区域是有效区域的标志。在这种情况下,可以说存储在数据6_1和数据6_2中被指定为有效区域的区域中的数据是有效数据。
控制单元3控制对存储单元2的擦除和写入。这里,当控制单元3接收到用于更新存储器区域5_1、5_2和5_3的存储内容的擦除指令或写入指令时,执行更新状态标志的存储器处理。具体地,控制单元3在存储单元2中存储表示数据6_1的更新状态的更新状态标志8_1(第一更新状态标志)、表示数据6_2的更新状态的更新状态标志8_2(第二更新状态标志)和表示有效指示标志7的更新状态的更新状态标志8_3(第三更新状态标志)。更新状态标志8_1、8_2和8_3的存储目的地可以是存储器区域5_1、5_2和5_3中的任一个存储器区域,或者它们可以是其他区域。例如,当存储单元2是闪存时,控制单元3将更新状态标志8_1存储在存储器区域5_2中,将更新状态标志8_2存储在存储器区域5_1中,并将更新状态标志8_3存储在存储器区域5_1或存储器区域5_2中。
使用数据确定单元4确定数据6_1和数据6_2中的哪一个数据有效,并确定要使用的数据。更具体地,使用数据确定单元4将被确定为有效的数据设置为要使用的数据。当基于有效指令标志7的确定是可能时,使用数据确定单元4基于有效指令标志7的值确定数据6_1和数据6_2中的哪一个数据是有效的。基于有效指令标志7的确定是可能的情况是例如有效指令标志7的写入状态满足预定条件的情况。这里,预定条件是用于保证有效指令标志7的值正常的条件,并且例如有效指令标志7的值可以是预定值(即,指示数据6_1是有效的预定第一值或指示数据6_2有效的预定第二值)。例如,当存储单元2存储指示有效指令标志7的写入完成的标志时,预定条件可以是有效指令标志7的值是预定值并且写入完成标志已被写入。
另一方面,当基于有效指令标志7的确定是不可能时,即,当有效指令标志7的写入状态不满足预定条件时,使用数据确定单元4基于更新状态标志8_1、8_2和8_3的值确定数据6_1和数据6_2中的哪一个数据有效。在这种情况下,具体地,使用数据确定单元4通过检查更新状态标志8_1、8_2和8_3的值的模式匹配哪些参考模式来确定数据6_1和数据6_2中的哪一个数据是有效的。参考模式是预定义模式,并且是当数据6_1被确定为有效时更新状态标志8_1、8_2和8_3的值的模式,或者是当数据6_2被确定为有效时更新状态标志8_1、8_2和8_3的值的模式。例如,当存储在存储单元2中的更新状态标志8_1、8_2和8_3的值的模式与用于确定数据6_1有效的参考模式匹配时,使用数据确定单元4确定数据6_1有效。此外,例如,当存储在存储单元2中的更新状态标志8_1、8_2和8_3的值的模式与用于确定数据6_2有效的参考模式匹配时,使用数据确定单元4确定数据6_2有效。
当存储在存储单元2中的更新状态标志8_1、8_2和8_3的值的模式与用于确定数据6_1有效的任何参考模式不一致时,使用数据确定单元4可以确定数据6_2有效。类似地,当存储在存储单元2中的更新状态标志8_1、8_2和8_3的值的模式与用于确定数据6_2有效的任何参考模式不一致时,使用数据确定单元4可以确定数据6_1有效。
如上所述,在信息处理器件1中,当基于有效指令标志7的确定是不可能时,可以基于更新状态标志8_1、8_2和8_3的值唯一地确定有效数据(有效存储器区域)。因此,根据信息处理器件1,即使数据更新处理被中断,也可以指明有效数据。
第一实施例
图2是示出根据实施例的微控制器10的配置示例的框图。微控制器10对应于图1的信息处理器件1。如图2所示,微控制器10包括CPU(中央处理单元)11、RAM(随机存取存储器)12、外围电路13、用于数据存储的闪存14、用于功能设置的闪存15、使用数据确定单元16、闪存定序器17和外围总线18。外围总线18是CPU 11、闪存定序器17和外围电路13连接到的总线。
CPU 11基于存储在用于数据存储的闪存14中的数据执行处理。也就是说,存储在用于数据存储的闪存14中的数据包括用于使CPU 11执行用于实现微控制器10的功能的处理的程序。CPU 11也可以在存储在用于数据存储的闪存14中的程序被加载到RAM 12中之后执行。
RAM 12是易失性存储器,其中存储CPU 11使用的数据。存储在RAM 12中的数据包括例如当CPU 11执行程序时在算术运算下的数据。如上所述,可以存储从用于数据存储的闪存14加载的程序。
外围电路13例如是定时器、串行I/O等。CPU 11通过任意地使用外围电路13来执行处理。用于数据存储的闪存14是非易失性存储器,其中存储由CPU 11使用的数据。
用于功能设置的闪存15对应于图1中的存储单元2。用于功能设置的闪存15是非易失性存储器,其中存储用于微控制器10的功能设置的数据。图3是示出布置在用于功能设置的闪存15中的三个存储器区域的示例的示意图。如图3所示,用于功能设置的闪存15包括作为存储器区域的切换区域100_0、切换区域100_1和标签区域200。在以下描述中,当提及它们时,切换区域100_0和切换区域100_1被称为切换区域100,而没有任何特别的区分。切换区域100_0对应于图1中的存储器区域5_1。切换区域100_1对应于图1中的存储器区域5_2。标签区域200对应于图1的存储器区域5_3。由于用于功能设置的闪存15是闪存,因此需要在一次擦除数据后写入新数据以便更新或重写存储的数据。
图4是示出两个切换区域100_0和100_1的配置示例的示意图。如图4所示,设置数据D0-0、设置数据D0-1和设置数据D0-2、写入完成标志A0PC、擦除开始标志A1ES、擦除完成标志A1EC、擦除开始标志TES0和擦除完成标志TEC0存储在切换区域100_0中。类似地,切换区域100_1存储设置数据D1-0、设置数据D1-1和设置数据D1-2、写入完成标志A1PC、擦除开始标志A0ES、擦除完成标志A0EC、擦除开始标志TES1和擦除完成标志TEC1。
切换区域100_0的设置数据D0-0、设置数据D0-1和设置数据D0-2对应于图1中的数据6_1。切换区域100_1的设置数据D1-0、设置数据D1-1和设置数据D1-2对应于图1的数据6_2。这里,设置数据D0-0、数据D0-1、数据D0-2、数据D1-0、数据D1-1和数据D1-2是用于设置微控制器10的功能的数据。例如,这些设置数据可以是指明在系统启动时要访问的存储器区域的数据、用于设置安全功能的数据等。在本实施例中,切换区域100_0和100_1各自存储三条设置数据,但是要存储的数据的数量不限于三条,并且数据的数量可以多于或少于三条。
写入完成标志A0PC是指示是否已完成所有设置数据D0-0、设置数据D0-1和设置数据D0-2的写入的标志。类似地,写入完成标志A1PC是指示是否已完成所有设置数据D1-0、设置数据D1-1和设置数据D1-2的写入的标志。更具体地,写入完成标志A0PC是当为了更新切换区域100_0中的设置数据D0-0、设置数据D0-1和设置数据D0-2而执行的写入处理完成时被设置为预定值的标志。类似地,写入完成标志A1PC是当为了更新切换区域100_1中的设置数据D1-0、设置数据D1-1和设置数据D1-2而执行的写入处理完成时被设置为预定值的标志。也就是说,当写入完成标志A0PC和A1PC处于擦除状态时,这意味着没有完成设置数据的写入。
擦除开始标志A1ES是指示切换区域100_1的擦除处理是否已经开始的标志。类似地,擦除开始标志A0ES是指示切换区域100_0的擦除处理是否已经开始的标志。更具体地,擦除开始标志A1ES是当为更新切换区域100_1中的设置数据D1-0、设置数据D1-1和设置数据D1-2而执行的擦除处理开始时被设置为预定值的标志。类似地,擦除开始标志A0ES是当为了更新切换区域100_0中的设置数据D0-0、设置数据D0-1和设置数据D0-2而执行的擦除处理开始时被设置为预定值的标志。也就是说,当擦除开始标志A1ES处于擦除状态时,意味着切换区域100_1的擦除处理未开始,并且当A0ES处于擦除状态时,意味着切换区域100_0的擦除处理未开始。
擦除完成标志A1EC是指示切换区域100_1的擦除处理是否已经完成的标志。类似地,擦除完成标志A0EC是指示切换区域100_0的擦除处理是否已经完成的标志。更具体地,擦除完成标志A1EC是当为了更新切换区域100_1中的设置数据D1-0、设置数据D1-1和设置数据D1-2而执行的擦除处理完成时被设置为预定值的标志。类似地,擦除完成标志A0EC是当为了更新切换区域100_0中的设置数据D0-0、设置数据D0-1和设置数据D0-2而执行的擦除处理完成时被设置为预定值的标志。也就是说,当擦除完成标志A1EC处于擦除状态时,意味着切换区域100_1的擦除处理未完成,并且当A0EC处于擦除状态时,意味着切换区域100_0的擦除处理未完成。
擦除开始标志TES0和TES1是指示标签区域200的擦除处理是否已经开始的标志。更具体地,擦除开始标志TES0、TES1是当为了更新标签区域200中的有效切换区域标志VAF(参见图5)而执行的擦除处理开始时被设置为预定值的标志。也就是说,当擦除开始标志TES0和TES1处于擦除状态时,这意味着标签区域200的擦除处理没有开始。
擦除完成标志TEC0和TEC1是指示标签区域200的擦除处理是否已经完成的标志。更具体地,擦除完成标志TEC0和TEC1是在为了更新标签区域200中的有效切换区域标志VAF(参见图5)而执行的擦除处理完成时被设置为预定值的标志。也就是说,当擦除完成标志TEC0和TEC1处于擦除状态时,意味着标签区域200的擦除处理没有完成。
图5是示出标签区域200的配置示例的示意图。如图5所示,有效切换区域标志VAF和写入完成标志VAPC存储在标签区域200中。
有效切换区域标志VAF是指示切换区域100_0和切换区域100_1中的哪一个切换区域是有效区域的标志。也就是说,有效切换区域标志VAF是指示其中存储有设置数据的切换区域100_0和切换区域100_1中的哪个切换区域是有效数据的标志。有效切换区域标志VAF对应于图1中的有效指令标志7。
写入完成标志VAPC是指示有效切换区域标志VAF的写入是否已完成的标志。更具体地,写入完成标志VAPC是当为了更新标签区域200中的有效切换区域标志VAF而执行的写入处理完成时被设置为预定值的标志。也就是说,当擦除写入完成标志VAPC时,意味着有效切换区域标志VAF的写入未完成。
使用数据确定单元16对应于图1的使用数据确定单元4,并且是确定切换区域100_0和100_1中的哪一个切换区域是有效区域并确定微控制器10要使用的数据的电路。换句话说,使用数据确定单元16确定其中存储有设置数据的切换区域100_0和切换区域100_1的哪个切换区域是有效数据,并且由微控制器10使用被确定为有效的数据。稍后将描述使用数据确定单元16中的具体确定方法。
使用数据确定单元16确定在预定时刻(例如,在重置微控制器10时)要由微控制器10的任何组件使用的数据。使用数据确定单元16可以从用于功能设置的闪存15读出被确定为将使用的数据并发送该数据到可以由使用该数据的组件访问的寄存器等中或使用该数据的组件。
闪存定序器17是用于控制对用于数据存储的闪存14和用于功能设置的闪存15的擦除处理和写入处理的电路。闪存定序器17对应于图1中的控制单元3。在本实施例中,经由闪存定序器17执行CPU 11对用于数据存储的闪存14和用于功能设置的闪存15的写入处理和擦除处理。CPU 11可以经由闪存定序器17从用于数据存储的闪存14和用于功能设置的闪存15读取数据,或者可以直接地读取数据而不使用闪存定序器17。
闪存定序器17合并了地址指定寄存器,其中存储了地址数据以用于指定哪个地址将被擦除或写入到用于数据存储的闪存14或用于功能设置的闪存15。从CPU 11发送的地址数据存储在地址指定寄存器中。闪存定序器17还包括命令指定寄存器,其中存储用于指示擦除处理或写入处理的命令。命令指定寄存器将从CPU 11发送的数据作为写入数据存储到闪存定序器17。
CPU 11经由外围总线18以预定顺序将写入数据写入闪存定序器17,从而指明要由闪存定序器17执行的控制内容。闪存定序器17针对写入在闪存定序器17的地址指定寄存器中的地址数据所指示的地址、执行与写入在命令指定寄存器中的写入数据相对应的控制。
这里,将参考图6作为具体示例来描述闪存定序器17的命令。如图6所示,准备“切换区域擦除”命令、“切换区域写入”命令、“标签区域擦除”命令和“标签区域更新”命令作为用于控制闪存定序器17的命令。
当CPU 11擦除切换区域100_0或切换区域100_1时,它使用“切换区域擦除”命令。更具体地,例如,CPU 11顺序地将命令数据(H'87和H'D0)写入闪存定序器17的命令指定寄存器中。这里,H'表示跟随的数值是十六进制表示法。在接收到“切换区域擦除”命令时,闪存定序器17删除切换区域100_0和切换区域100_1的当前禁用区域。稍后将参考图7描述切换区域100的擦除处理的具体流程。
当将数据写入切换区域100_0或切换区域100_1时,CPU 11使用“写入切换区域”命令。更具体地,CPU 11顺序地将命令数据(例如,H'85、H'08、WD0、WD1、WD2和H'D0)写入闪存定序器17的命令指定寄存器中。这里,WD0、WD1和WD2是要新写入的设置数据。也就是说,WD0、WD1和WD2是新设置数据D0-0、D0-1、D0-2或新设置数据D1-0、D1-1和D1-2。当闪存定序器17接收到“写入切换区域”命令时,WD0、WD1和WD2被写入切换区域100_0和切换区域100_1的当前无效区域作为新的设置数据。稍后将参考图8描述切换区域100的写入处理的具体流程。
CPU 11还使用“标签区域擦除”命令来擦除标签区域200。更具体地,例如,CPU 11顺序地将命令数据(H'89和H'D0)写入闪存定序器17的命令指定寄存器中。闪存定序器17在接收到“标签区域擦除”命令时擦除标签区域200。稍后将参考图9描述标签区域200的写入处理的具体流程。
当更新标签区域200时,即,当切换有效切换区域标志VAF时,CPU 11使用“标签区域更新”命令。更具体地,例如,CPU 11顺序地将命令数据(H'83和H'D0)写入闪存定序器17的命令指定寄存器中。在接收到“标签区域更新”命令时,闪存定序器17更新有效切换区域标志VAF的值。稍后将参考图10描述标签区域200的更新处理的具体流程。
接下来,将参考附图描述微控制器10的操作。如下所述,当接收到命令时,闪存定序器17以与用户数据确定单元16相同的方式确定切换区域100_0和切换区域100_1中的哪一个切换区域有效。在本实施例中,闪存定序器17和使用数据确定单元16中的每一个具有相同的确定功能,但是它们中的一个可以具有确定功能而另一个可以使用确定功能之一。闪存定序器17和使用数据确定单元16可以通过单个控制电路配置。
图7是示出当接收到“切换区域擦除”命令时闪存定序器17的操作示例的流程图。当闪存定序器17接收“切换区域擦除”命令时,它执行无效切换区域100的擦除和对应于擦除的擦除开始标志和擦除完成标志的写入。在下文中,将参考图7描述当接收到“切换区域擦除”命令时闪存定序器17的操作流程。
在步骤100(S100)中,闪存定序器17确定切换区域100_0和切换区域100_1中的哪一个切换区域是无效区域,即哪个区域不是有效区域。闪存定序器17参考存储在切换区域100_0中的标志、存储在切换区域100_1中的标志以及存储在标签区域200中的标志,并确定切换区域100_0或切换区域100_1是否是无效区域。为了在微控制器10的操作中反映设置数据的内容,当在启动微控制器10时从切换区域100_0、切换区域100_1和标签区域200读取的标志被存储在寄存器(未示出)中时,闪存定序器17可以通过参考寄存器的值(而不是存储在用于功能设置的闪存15中的标志)来确定无效区域。这也适用于使用数据确定单元16。稍后将参考图12描述具体的确定方法。
当无效区域是切换区域100_1时,在步骤111(S111)中,闪存定序器17将指示擦除开始的预定值作为擦除开始标志A1ES写入切换区域100_0中。接下来,在步骤112(S112)中,闪存定序器17擦除切换区域100_1。接下来,在步骤113(S113)中,闪存定序器17将指示擦除完成的预定值作为擦除完成标志A1EC写入切换区域100_0中。
类似地,当无效区域是切换区域100_0时,在步骤121(S121)中,闪存定序器17将指示擦除开始的预定值作为擦除开始标志A0ES写入切换区域100_1中。接下来,在步骤122(S122),闪存定序器17擦除切换区域100_0。接下来,在步骤123(S123)中,闪存定序器17将指示擦除完成的预定值作为擦除完成标志A0EC写入切换区域100_1中。
图8是示出当接收到“切换区域写入”命令时闪存定序器17的操作示例的流程图。当闪存定序器17接收到“切换区域写入”命令时,闪存定序器17执行WD0、WD1和WD2在无效切换区域100的写入以及用于切换区域100的写入完成标志的写入。在下文中,将参考图8描述当接收到“切换区域写入”命令时闪存定序器17的操作流程。
在步骤200(S200)中,如在图7的S100中那样,闪存定序器17确定切换区域100_0和切换区域100_1中的哪一个切换区域是无效区域,即哪个区域不是有效区域。
当无效区域是切换区域100_1时,在步骤211(S211)中,闪存定序器17将从CPU 11接收的WD0写入作为切换区域100_1的设置数据D1-0。接下来,在步骤212(S212)中,闪存定序器17将从CPU 11接收的WD1写入作为切换区域100_1的设置数据D1-1。接下来,在步骤213(S213)中,闪存定序器17将从CPU 11接收的WD2写入为切换区域100_1的设置数据D1-2。接下来,在步骤214(S214),闪存定序器17将指示写入完成的预定值作为写入完成标志A1PC写入切换区域100_1中。
类似地,当无效区域是切换区域100_0时,在步骤221(S221)中,闪存定序器17将从CPU 11接收的WD0写入作为切换区域100_0的设置数据D0-0。接下来,在步骤222(S222)中,闪存定序器17将从CPU 11接收的WD1写入作为切换区域100_0的设置数据D0-1。接下来,在步骤223(S223)中,闪存定序器17将从CPU 11接收的WD2写入作为切换区域100_0的设置数据D0-2。接下来,在步骤224(S224)中,闪存定序器17将指示写入完成的预定值作为写入完成标志A0PC写入切换区域100_0中。
图9是示出当接收到“标签区域擦除”命令时闪存定序器17的操作示例的流程图。当闪存定序器17接收到“标签区域擦除”命令时,它执行标签区域200的擦除以及标签区域200的擦除开始标志和擦除完成标志的写入。在本实施例中,闪存定序器17将标签区域200中的擦除开始标志和擦除完成标志写入无效切换区域100中。在下文中,将参考图9描述当接收到“标签区域擦除”命令时闪存定序器17的操作流程。
在步骤300(S300)中,如在图7的S100中那样,闪存定序器17确定切换区域100_0和切换区域100_1中的哪一个切换区域是无效区域,即哪个区域不是有效区域。
当无效区域是切换区域100_1时,闪存定序器17在步骤311中将指示擦除开始的预定值作为擦除开始标志TES1写入切换区域100_1(S311)中。接下来,在步骤312(S312)中,闪存定序器17擦除标签区域200。接下来,在步骤313(S313)中,闪存定序器17将指示擦除完成的预定值作为擦除完成标志TEC1写入切换区域100_1中。
类似地,当无效区域是切换区域100_0时,闪存定序器17在步骤321中将指示擦除开始的预定值作为擦除开始标志TES0写入切换区域100_0中(S321)。接下来,在步骤322(S322)中,闪存定序器17擦除标签区域200。接下来,在步骤323(S323)中,闪存定序器17将指示擦除完成的预定值作为擦除完成标志TEC0写入切换区域100_0中。
图10是示出当接收到“标签区域更新”命令时闪存定序器17的操作示例的流程图。在接收到“标签区域更新”命令时,闪存定序器17将指示下一个启用区域(即,当前禁用区域)的设置值写入标签区域200作为有效切换区域标志VAF。此后,闪存定序器17写入写入完成标志VAPC。在下文中,将参考图10描述当接收到“标签区域更新”命令时闪存定序器17的操作流程。
在步骤400(S400)中,如在图7的S100中那样,闪存定序器17确定切换区域100_0和切换区域100_1中的哪一个切换区域是无效区域,即哪个区域不是有效区域。
当无效区域是切换区域100_1时,闪存定序器17在步骤411(S411)中将指示切换区域100_1是有效区域的设置值“区域1”作为有效切换区域标志VAF写入标签区域200中。接下来,在步骤412(S412),闪存定序器17将指示写入完成的预定值作为写入完成标志VAPC写入标签区域200中。
类似地,当无效区域是切换区域100_0时,闪存定序器17在步骤421(S421)中将指示切换区域100_0是有效区域的设置值“区域0”作为有效切换区域标志VAF写入标签区域200中。接下来,在步骤422(S422)中,闪存定序器17将指示写入完成的预定值作为写入完成标志VAPC写入标签区域200中。
当更新用于功能设置的闪存15时,CPU 11根据用于更新设置数据的程序(软件)按以下顺序执行四个命令,例如,“切换区域擦除”命令、“切换区域写入”命令、“标签区域擦除”命令和“标签区域更新”命令。结果,更新了由微控制器10使用的设置数据。
图11A、图11B和图11C示出了当按照上述顺序执行四个命令时的每个值的示例。然而,在该实施例中,示出了当有效设置数据从被存储为切换区域100_1的设置数据D1-0、D1-1和D1-2的D100、D110和D120切换到被新存储为切换区域100_0的设置数据D0-0、D0-1和D0-2的D001、D011和D021时的值的转变。图11A是示出切换区域100_0中的每个设置数据和每个标志的转变的表。图11B是示出切换区域100_1中的每个设置数据和每个标志的转变的表。图11C是示出标签区域200中的标志的转变的表。在图11A、图11B和图11C中所示的每个标志中,“E”表示擦除状态,“P”表示写入值的状态,“X”表示任意状态。另外,表中的粗框线表示从上一步的值改变的值,以便于理解。这些符号在图12、图22A和图22B中是相同的。
如图11A所示,当以上述顺序执行四个命令时,在切换区域100_0中擦除设置数据和标志,之后写入新的设置数据,此外,写入设置数据的写入完成标志A0PC。此后,在擦除标签区域200时,执行擦除开始标志TES0的写入和擦除完成标志TEC0的写入。
另一方面,在切换区域100_1中,如图11B所示,当擦除切换区域100_0时,执行擦除开始标志A0ES的写入和擦除完成标志A0EC的写入。在标签区域200中,如图11C所示,在有效切换区域标志VAF和写入完成标志VAPC被擦除之后,指示切换区域100_0是有效区域的设置值“区域0”作为有效切换区域标志VAF的值被写入,并且执行写入完成标志VAPC的写入。
如上所述,当在没有中断的情况下执行更新处理时,标签区域200保持“区域0”或“区域1”作为有效切换区域标志VAF的值,并且保持指示写入完成的预定值作为写入完成标志VAPC的值。然而,当处理中断时,例如由于各种因素(包括例如微控制器10的电源的瞬时中断)的标签区域200的更新期间,有效切换区域标志VAF的值或写入完成标志VAPC的值变得不确定。在本实施例中,即使当发生这种中断时,也进行以下确定以便唯一地确定有效切换区域100。
当基于有效切换区域标志VAF的确定是可能时,闪存定序器17和使用数据确定单元16基于有效切换区域标志VAF的值确定切换区域100_0和切换区域100_1中的哪一个切换区域是有效区域。在本实施例中,当有效切换区域标志VAF的值是“区域0”或“区域1”并且写入完成标志VAPC不处于擦除状态时,闪存定序器17和使用数据确定单元16可以基于有效切换区域标志VAF进行确定。
另一方面,当基于有效切换区域标志VAF的确定是不可能时,闪存定序器17和使用数据确定单元16根据当前标志的值的组合模式来确定切换区域100_0和切换区域100_1中的哪一个切换区域是有效区域。也就是说,当有效切换区域标志VAF的值既不是“区域0”也不是“区域1”时,或者当写入完成标志VAPC处于擦除状态时,闪存定序器17和使用数据确定单元16根据当前标志的值的组合模式来确定有效区域。更具体地,闪存定序器17和使用数据确定单元16确认哪个预定义的参考模式对应于当前标志的值的组合模式,并确定先前与对应参考模式相关联的区域是有效区域。
在S100(参见图7)、S200(参见图8)、S300(参见图9)和S400(参见图10)中的无效区域的确定中,在确定有效区域时、除了被确定为有效的切换区域100之外的一侧的区域可以被设置为无效区域。
将参考图12描述闪存定序器17和使用数据确定单元16的确定的示例。图12是示出参考模式的示例的表。参考模式存储在例如闪存定序器17和使用数据确定单元16中,但是可以存储在微控制器10中的任何其他组件中。
在本实施例中,闪存定序器17和使用数据确定单元16使用标签区域200的擦除开始标志A1ES、擦除完成标志A1EC、擦除开始标志TES0、擦除完成标志TEC0、擦除开始标志A0ES、擦除完成标志A0EC、擦除开始标志TES1、擦除完成标志TEC1、有效切换区域标志VAF和写入完成标志VAPC,以便确定有效切换区域100。
如图12的表中所示,当标签区域200的写入完成标志VAPC处于写入状态“P”并且有效切换区域标志VAF的设置值是“区域0”或“区域1”(对应于图12的状态(A)和(E))时,闪存定序器17和使用数据确定单元16根据有效切换区域标志VAF的设置值来确定有效切换区域100。
当有效切换区域标志VAF的设置值不是“区域0”或“区域1”时或者当写入完成标志VAPC处于擦除状态“E”时(对应于在图12中的状态(B)、(C)、(D)、(F)、(G)和(H))中,闪存定序器17和使用数据确定单元16根据擦除开始标志A0ES、A1ES、TES0、TES1和擦除完成标志A0EC、A1EC、TEC0和TEC1的模式来确定有效切换区域100。也就是说,擦除开始标志A0ES和擦除完成标志A0EC是图1中的更新状态标志8_1的示例。擦除开始标志A1ES和擦除完成标志A1EC是图1中的更新状态标志8_2的示例。此外,擦除开始标志TES0和TES1以及擦除完成标志TEC0和TEC1是图1中的更新状态标志8_3的示例。
图12中的状态(B)、(C)和(D)对应于图11A、图11B和图11C中的标签区域擦除的S2和S3以及标签区域更新的S1,并且示出了在有效区域从切换区域100_1切换到切换区域100_0期间由于电源瞬时中断等而中断更新处理时产生的标志的模式。在这些状态的情况下,由于区域切换处理尚未完全完成,因此切换区域100_1被确定为不是切换区域100_0而是有效区域,类似地,图12中的状态(F)、(G)和(H)示出了在有效区域从切换区域100_0切换到切换区域100_1期间由于电源瞬时中断等而中断更新处理时产生的标志的模式。同样在这些状态下,由于区域切换处理没有完全完成,因此切换区域100_0被确定为有效区域而不是切换区域100_1。
例如,微控制器10预先存储与要成为有效区域的切换区域100相关联的参考模式,并且闪存定序器17和使用数据确定单元16参考参考模式并确认标志模式匹配哪个参考模式,从而指明有效区域。在图12所示的示例中,状态(A)、(B)、(C)和(D)的标志模式是用于将切换区域100_1确定为有效区域的参考模式,并且“切换区域100_1”与这些模式相关联。类似地,状态(E)、(F)、(G)和(H)的标志模式是用于将切换区域100_0确定为有效区域的参考模式,并且“切换区域100_0”与这些模式相关联。
图12中所示的确定逻辑是一个示例。当不可能基于有效切换区域标志VAF的值确定有效区域时,可以使用除了图12中所示的参考模式之外的参考模式作为确定逻辑。备选地,可以使用其他规则来将任何切换区域100与每个参考模式相关联。例如,在图12所示的示例中,当有效区域不能由有效切换区域标志VAF的值确定时,使用八个标志的模式(擦除开始标志A1ES、A0ES、TES0和TES1以及擦除完成标志A1EC、A0EC,TEC0和TEC1),但有效区域可以由这些标志中的一些标志的模式确定。备选地,可以使用写入完成标志A0PC和A1PC作为参考模式。
参考模式可以包括标志的状态随时间变化的模式。当在标志写入处理期间发生电源瞬时中断时,写入状态变得不足以保持。因此,这种标志可以随时间改变到擦除状态。因此,考虑到这种情况,不仅可以使用在擦除或更新标签区域200期间中断处理时产生的标志的模式(图12的状态(B)、(C)、(D)、(F)、(G)和(H)中所示的参考模式),还可以使用这些模式中的其中一些标志随时间改变为擦除状态的模式,来确定有效区域。
在本实施例中,擦除标签区域200时的擦除开始标志和擦除完成标志被写入无效切换区域100中,但是擦除开始标志和擦除完成标志可以被写入有效切换区域100中。也就是说,当无效区域是切换区域100_1时,可以执行切换区域100_0的擦除开始标志TES0和擦除完成标志TEC0的写入,并且当无效区域是切换区域100_0时,可以执行切换区域100_1的擦除开始标志TES1和擦除完成标志TEC1的写入。
当在标志的值的组合中可以进行逻辑压缩时,可以减少用作参考模式的标志的数量。例如,在图12所示的示例中,由于擦除开始标志TES0和TES1的值在状态(B)、(C)、(D)、(F)、(G)和(H)中是相同的,因此可以在没有使用这些标志的情况下执行确定。
如上所述,即使在不能执行基于有效切换区域标志VAF的值的确定时,微控制器10也可以基于其他标志的状态唯一地指明有效切换区域100。因此,即使在有效切换区域标志VAF的更新期间中断处理并且有效切换区域标志VAF变为不确定值时,也可以确定有效区域。也就是说,可以指明有效的设置数据。
第二实施例
根据第一实施例,即使当标签区域200的有效切换区域标志VAF不能指明有效区域时,也可以通过切换区域100_0和切换区域100_1的标志模式来指明有效区域。然而,为了确认标志模式,切换区域100_0和切换区域100_1都必须不处于擦除状态。也就是说,如果在有效切换区域标志VAF不能指明有效区域的状态下擦除无效切换区域100,则不能正确地确定有效区域。如果在将设置数据写入无效切换区域100之前更新有效切换区域标志VAF,则即使未写入设置数据,也确定切换区域100是有效区域。例如,当按照“切换区域擦除”命令、“标签区域擦除”命令和“标签区域更新”命令的顺序执行命令时,即,当通过不执行“切换区域写入”命令的不正确过程执行用于功能设置的闪存15的更新时,不能正确地执行有效区域的确定。如上所述,在上述有效区域确定方法中,当同时擦除标签区域200和切换区域100_0时,或者当标签区域200和切换区域100_1被同时擦除时,有可能无法正确确定有效区域。因此,在本实施例中,闪存定序器17仅在满足预定条件时擦除存储器区域。
图13是示出当接收到“切换区域擦除”命令时根据第二实施例的闪存定序器17的示例性操作的流程图。图13的流程图与第一实施例(图7)的流程图的不同之处在于,在无效区域的确定(S100)之前添加了确定标签区域200的有效切换区域标志VAF是否已被写入的步骤(S130)。
即,在第二实施例中,当闪存定序器17接收到“切换区域擦除”命令时,在S130中,确定是否已经写入了标签区域200的有效切换区域标志VAF。当已经写入有效切换区域标志VAF时(S130中的是),处理进行到S100,并且进行与图7中所示的处理相同的处理。另一方面,如果尚未写入有效切换区域标志VAF(S130中的否),则处理错误地结束。也就是说,在这种情况下,切换区域未被擦除。
例如,闪存定序器17参考有效切换区域标志VAF,当不处于擦除状态时(即,例如当所有位都是1时)确定有效切换区域标志VAF已被写入,并且当处于擦除状态时确定有效切换区域标志VAF没有被写入。当有效切换区域标志VAF的值是“区域0”或“区域1”时,闪存定序器17可以确定已经写入有效切换区域标志VAF,并且当有效切换区域标志VAF的值既不是“区域0”也不是“区域1”时可以确定有效切换区域标志VAF没有被写入。
如上所述,在第二实施例中,仅当有效切换区域标志VAF被存储在标签区域200中时,闪存定序器17才擦除切换区域100_0或切换区域100_1。因此,可以防止在未写入有效切换区域标志VAF的状态下开始切换区域100的擦除。因此,与第一实施例相比,可以提高有效区域的确定的可靠性。
图14是示出当接收到“标签区域擦除”命令时根据第二实施例的闪存定序器17的示例操作的流程图。图14的流程图与第一实施例(图9)的流程图的不同之处在于,在无效区域的确定(S300)之后,添加了确定是否已写入无效区域的设置数据的步骤(步骤331和332)。
即,在第二实施例中,当无效区域是切换区域100_1时,处理在S300之后进入步骤331(S331)。在S331中,闪存定序器17确定是否已经写入了切换区域100_1的所有设置数据,即设置数据D1-0、设置数据D1-1和设置数据D1-2。例如,闪存定序器17参考设置数据,当设置数据不处于擦除状态时(即,当所有位都是1时)确定已经写入设置数据,并且当设置数据处于擦除状态时确定设置数据尚未被写入。当已经写入了切换区域100_1的所有设置数据时(S331中的是),处理进行到S311,并且执行与图9中所示的处理相同的处理。另一方面,如果没有写入切换区域100_1的任何设置数据(S331中的否),则处理错误地结束。也就是说,在这种情况下,标签区域200未被擦除。
类似地,在第二实施例中,如果无效区域是切换区域100_0,则处理在S300之后进入步骤332(S332)。在S332中,闪存定序器17确定是否已经写入切换区域100_0的所有设置数据,即设置数据D0-0、设置数据D0-1和设置数据D0-2。当已经写入切换区域100_0的所有设置数据时(S332中的是),处理进行到S321,并且执行与图9中所示的处理相同的处理。另一方面,如果尚未写入切换区域100_0的任何设置数据(S332中的否),则处理错误地结束。也就是说,在这种情况下,标签区域200未被擦除。
也就是说,在第二实施例中,仅在当前有效区域是切换区域100_0时,换句话说,在当前有效数据是切换区域100_0的设置数据时,并且在设置数据被存储在切换区域100_1中时,闪存定序器17才擦除标签区域200。仅在当前有效区域是切换区域100_1时,换句话说,在当前有效数据是切换区域100_1的设置数据时,并且当设置数据被存储在切换区域100_0中时,闪存定序器17才擦除标签区域200。因此,可以防止在未写入设置数据的状态下开始标签区域200的擦除。因此,与第一实施例相比,可以提高有效区域的确定的可靠性。
顺便提及,在图13所示的处理中,在确定是否已写入标签区域200时使用有效切换区域标志VAF,并且在图14所示的处理中,在确定是否已经写入切换区域100时,使用设置数据D0-0、D0-1、D0-2或设置数据D1-0、D1-1和D1-2。考虑到这些标志或数据的写入状态可能保留时间不足并且值可能随时间变化,通过执行图13或图14的处理,系统的操作可能变得不稳定。因此,如下所述,在执行图13或图14的处理之前,可以检查在数据写入执行之后立即写入的这些标志和写入完成标志。当写入完成标志处于擦除状态时,即,当它不处于写入状态时,这意味着由于某种原因,上述标志或数据的写入被中断,并且处理直到写入了写入完成标志才进行。另一方面,当写入完成标志不处于擦除状态时,即,当处于写入状态时,意味着正常完成上述标志或数据的写入。也就是说,保证了保留足够时间。
图15是示出在图13所示的处理之前执行的处理的流程图。这里,假设图15中所示的处理是软件处理。在这种情况下,CPU 11通过执行程序来执行以下处理。
在步骤500(S500),CPU 11确定是否已写入了写入完成标志VAPC。当写入了写入完成标志VAPC时,确保有效切换区域标志VAF已被正常写入。也就是说,确保不会由于保留时间不足而导致发生值的变化。因此,当写入了写入完成标志VAPC时(S500中的是),CPU 11在S501中向闪存定序器17发送“切换区域擦除”命令。结果,执行图13中所示的处理。
在S501之后,在S502中,CPU 11确定擦除切换区域的命令是否被成功执行。当完成该处理而没有完成图13中所示的处理时,CPU 11确定“擦除切换区域”命令已正常执行,并结束处理。
当图13中所示的处理错误地结束时,即在S130中确定尚未写入有效切换区域标志VAF时,则需要写入有效切换区域标志VAF。如果在S500中确定尚未写入写入完成标志VAPC(S500中的否),则需要正常执行有效切换区域标志VAF的写入。因此,在这些情况下,CPU 11擦除标签区域200并更新标签区域200,并且写入有效切换区域标志VAF。
以这种方式,仅当写入完成标志VAPC指示有效切换区域标志VAF的写入完成时,闪存定序器17才执行切换区域100_0或切换区域100_1的擦除。因此,可以稳定系统的操作。
图16是示出在图14所示的处理之前执行的处理的流程图。这里,假设图16中所示的处理是软件处理。在这种情况下,CPU 11通过执行程序来执行以下处理。
在步骤600(S600)中,CPU 11确定切换区域100_0和切换区域100_1中的哪一个切换区域是无效区域,即,哪个区域不是有效区域。该确定与第一实施例中描述的确定方法相同。
当无效区域是切换区域100_1时,CPU 11确定在步骤601中是否已写入了写入完成标志A1PC(S601)。如果无效区域是切换区域100_0,则CPU 11在步骤602(S602)中确定是否已写入了写入完成标志A0PC。当已经写入了写入完成标志A1PC时,确保正常写入切换区域100_1的设置数据D1-0、设置数据D1-1和设置数据D1-2。类似地,当已经写入了写入完成标志A0PC时,确保正常写入切换区域100_0的设置数据D0-0、设置数据D0-1和设置数据D0-2。换句话说,确保该值不会由于保留时间不足而改变。因此,当写入完成标志A1PC已被写入(S601中的是)并且当写入完成标志A0PC已被写入(S602中的是)时,CPU 11在S603中向闪存定序器17发送“标签区域擦除”命令。结果,执行图14中所示的处理。
在S603之后,在S604中,CPU 11确定是否成功执行了擦除标签区域命令。当完成该处理而没有完成图14中所示的处理时,CPU 11确定“标签区域擦除”命令已被正常执行,并结束处理。
当图14中所示的处理错误结束时,即,当在S331或S332中确定尚未写入设置数据时,需要写入设置数据。当在S601或S602中确定尚未写入写入完成标志A1PC或写入完成标志A0PC时(S601中的否或S602中的否),需要正常写入设置数据。因此,在这些情况下,CPU11执行擦除切换区域和写入切换区域的处理,并执行设置数据的写入。
以这种方式,仅当写入完成标志A0PC或写入完成标志A1PC指示要新验证的设置数据的写入完成时,闪存定序器17才执行标签区域200的擦除。因此,可以稳定系统的操作。
尽管由CPU 11执行了图15的处理中的写入完成标志VAPC的确认以及图16的处理中的写入完成标志A0PC和A1PC的确认,但闪存定序器17可以执行该确认。
第三实施例
图17是示出第三实施例的用于功能设置的闪存15的示例性配置的示意图。根据第三实施例的用于功能设置的闪存15除了切换区域100_0、切换区域100_1和标签区域200之外,还包括配置设置区域300A、安全设置区域300B和块保护设置区域300C作为存储器区域。在第一实施例和第二实施例中,用于设置微控制器10功能的数据作为设置数据D0-0、D0-1、D0-2、D1-0、D1-1和D1-2存储在切换区域100_0和切换区域100_1中。另一方面,在本实施例中,用于设置微控制器10的功能的数据(下文中称为功能设置数据)存储在配置设置区域300A、安全设置区域300B和块保护设置区域300C中。在切换区域100_0和切换区域100_1中,指明要使用哪个功能设置数据的数据被存储为设置数据D0-0、D0-1、D0-2、D1-0、D1-1和D1-2。
配置设置区域300A是用于存储用于设置微控制器10的基本功能的功能设置数据的区域,例如用于指明在系统启动时要访问的存储器区域的设置信息。安全设置区域300B是用于存储用于设置诸如ID的安全功能的功能设置数据的区域。块保护设置区域300C是用于存储为用于数据存储的闪存14的每个块设置重写许可、禁止等的功能设置数据的区域。
配置设置区域300A、安全设置区域300B和块保护设置区域300C均由两个区域组成。更具体地,配置设置区域300A包括划分区域CNF_0和划分区域CNF_1。安全设置区域300B包括划分区域EC_0和划分区域EC_1。块保护设置区域300C包括划分区域BP_0和划分区域BP_1。因此,可以在配置设置区域300A、安全设置区域300B和块保护设置区域300C中的每一个中存储两组功能设置数据。也就是说,可以将第一组(第一群组)功能设置数据存储在一个划分区域中,并将第二组(第二群组)功能设置数据存储在另一个划分区域中。因此,例如,这两组中的一组可以用作旧的功能设置数据,而另一组可以用作新的功能设置数据。
在微控制器10的操作中实际使用的两组中的哪一组由存储在有效切换区域100中的设置数据(即,设置数据D0-0、D0-1、D0-2或设置数据D1-0、D1-1和D1-2)确定。也就是说,要使用哪个划分区域的功能设置数据是由存储在有效切换区域100中的设置数据指明。
配置设置区域300A、安全设置区域300B和块保护设置区域300C仅是用于设置微控制器10的各种功能的区域的示例。因此,用于功能设置的闪存15不限于这些区域,并且可以设置有其他存储器区域,其中存储有用于微控制器10的预定功能的功能设置数据。在本实施例中,用于功能设置的闪存15包括三个存储器区域:配置设置区域300A、安全设置区域300B和块保护设置区域300C,作为其中存储了用于微控制器10的预定功能的功能设置数据的存储器区域。相应地,切换区域100_0存储三条设置数据D0-0、D0-1和D0-2,并且切换区域100_1也存储三条设置数据D1-0、D1-1和D1-2。也就是说,要存储在切换区域100_0和切换区域100_1中的设置数据的数量根据存储了用于微控制器10的预定功能的功能设置数据的存储器区域的数量而改变。在以下描述中,当没有区别地提及配置设置区域300A、安全设置区域300B和块保护设置区域300C时,它们被称为设置区域300。
图18是示出配置设置区域300A的两个划分区域CNF_0和CNF_1的配置示例的示意图。划分区域CNF_0和划分区域CNF_1具有相同的配置。如图18所示,划分区域CNF_0和CNF_1存储被称为可选字节的功能设置数据OPBT0、...、OPBTx、写入完成标志VOF0、...、VOFx、写入完成标志VOFC0、...和VOFCx。
功能设置数据OPBTi(其中i是从0到x的整数,并且这同样适用于以下说明)是用于设置微控制器10的功能的数据,如上所述。写入完成标志VOFi是指示功能设置数据OPBTi的写入是否已完成的标志。写入完成标志VOFCi是指示写入完成标志VOFi的写入是否已完成的标志。
安全设置区域300B的划分区域SEC_0和SEC_1以及块保护设置区域300C的划分区域BP_0和BP_1的配置与配置设置区域300A的划分区域CNF_0和CNF_1的配置相同。然而,取决于微控制器10的规格,必要的功能设置数据的数量可以与配置设置区域300A不同。
在本实施例中,如在第一实施例和第二实施例中,CPU 11经由外围总线18以预定顺序将写入数据写入闪存定序器17,从而指明要由闪存定序器17执行的控制内容。然而,在本实施例中,进一步准备用于设置区域300的以下命令。图19是示出用于设置区域300的命令的图。如图19所示,在本实施例中,除了图6所示的命令之外,准备“设置区域擦除”命令和“设置区域写入”命令作为用于控制闪存定序器17的命令。
当删除设置区域300时,CPU 11使用“设置区域擦除”命令。更具体地,例如,CPU 11顺序地将命令数据(H'47和H'D0)写入闪存定序器17的命令指定寄存器中。当接收到“设置区域擦除”命令时,闪存定序器17擦除配置设置区域300A、安全设置区域300B和块保护设置区域300C中的由CPU 11指明的设置区域300。CPU 11通过设置并入在闪存定序器17中的地址指定寄存器中的值来指定要擦除的设置区域300。
当数据被写入设置区域300时,CPU 11使用“设置区域写入”命令。更具体地,CPU11顺序地将命令数据(例如,H'45数据、H'08数据、WD0数据、WD1数据、WD2数据、WD3数据和H'D0数据)写入闪存定序器17的命令指定寄存器中。这里,WD0、WD1、WD2和WD3是要新写入的功能设置数据。也就是说,WD0、WD1、WD2和WD3是新的功能设置数据OPBTi。当闪存定序器17接收到“写入设置区域”命令时,WD0、WD1、WD2和WD3作为新的功能设置数据被写入配置设置区域300A、安全设置区域300B和块保护设置区域300C中的由CPU 11指明的设置区域300。CPU11通过设置并入在闪存定序器17中的地址指定寄存器中的值来指定写入目标设置区域300。
图20是示出在配置设置区域300A的地址被设置在地址指定寄存器中的状态下、在接收到“设置区域擦除”命令的情况下闪存定序器17的操作示例的流程图。当闪存定序器17接收到“设置区域擦除”命令时,它从设置区域300的划分区域中删除无效划分区域。在下文中,将参考图20描述在接收到“设置区域擦除”命令的情况下闪存定序器17的操作流程。
在步骤700(S700)中,闪存定序器17确定划分区域CNF_0和CNF_1中的哪个划分区域是无效区域,即哪个区域不是有效区域。这里,有效划分区域是其中存储实际使用划分区域的用户的功能设置数据的区域。无效划分区域是其中存储未实际使用的功能设置数据的区域。为了确定无效划分区域,闪存定序器17参考存储在切换区域100中的设置数据D0-0和D1-0中的、存储在有效切换区域100中的设置数据。在存储在有效切换区域100中的设置数据中,当指明划分区域CNF_0时,意味着划分区域CNF_0是有效划分区域,并且划分区域CNF_1是无效划分区域。相反,当在存储在有效切换区域100中的设置数据中指明划分区域CNF_1时,意味着划分区域CNF_1是有效划分区域,并且划分区域CNF_0是无效划分区域。当从用于设置各种功能的切换区域100中读取的设置数据在启动微控制器10时被存储在寄存器(未示出)中时,闪存定序器17可以通过参考寄存器的值(不是切换区域100的设置数据)来确定划分区域CNF_0和CNF_1中的哪一个划分区域是无效区域。
如果无效划分区域是划分区域CNF_1,则处理在S700之后进行到S711,并且如果无效划分区域是划分区域CNF_0,则处理在S700之后进行到S721。在步骤711(S711)中,闪存定序器17删除划分区域CNF_1。在步骤721(S721)中,闪存定序器17删除划分区域CNF_0。
在接收到用于安全设置区域300B和块保护设置区域300C的“设置区域擦除”命令的情况下,闪存定序器17的操作也与图20中所示的操作相同,但是,在S700中提及的切换区域100的设置数据和擦除目标区域根据要处理的区域而不同。具体地,在安全设置区域300B中,要参考的切换区域100的数据是设置数据D0-1或设置数据D1-1,并且要擦除的区域是划分区域EC_0或划分区域EC_1。在块保护设置区域300C中,要参考的切换区域100的数据变为设置数据D0-2或D1-2,并且要擦除的区域变为划分区域BP_0或划分区域BP_1。
图21是示出在配置设置区域300A的地址被设置在地址指定寄存器中的状态下、在接收到“设置区域写入”命令的情况下闪存定序器17的操作示例的流程图。“设置区域写入”命令例如是以16字节为单位的写入命令,并且各个功能设置数据OPBTi的地址可以在寻址寄存器中以16字节为单位设置。当闪存定序器17接收到“写入设置区域”命令时,闪存定序器17写入设置区域300的划分区域的无效划分区域中的指定功能设置数据OPBTi。顺便提及,可以保护相应的功能设置数据OPBTi,以通过使用保护设置比特、ID认证等的任何保护功能来禁止值的改变。因此,当要保护功能设置数据OPBTi时,需要禁止写入由“设置区域写入”命令指明的写入内容。因此,闪存定序器17根据所接收的“写入设置区域”命令是否是要保护的功能设置数据OPBTi的新写入命令来执行不同的操作。在下文中,将参考图21描述在接收到“写入设置区域”命令的情况下闪存定序器17的操作流程。
在步骤800(S800)中,如在图20的S700中那样,闪存定序器17确定划分区域CNF_0和CNF_1中的哪个划分区域是无效区域,即哪个区域不是有效区域。
当无效区域是划分区域CNF_1时,在步骤811至815中对划分区域CNF_1执行写入处理。在下文中,将描述在无效区域是划分区域CNF_1的情况下的操作。
在步骤811(S811)中,闪存定序器17确定所接收的“写入设置区域”命令是否是用于所保护的功能设置数据OPBTi的新写入命令。闪存定序器17根据所实现的保护功能通过确认方法执行该确定。例如,当通过保护设置比特设置保护时,闪存定序器17通过参考与功能设置数据OPBTi相对应的保护设置比特来确定功能设置数据OPBTi是否是保护目标。
当要写入的功能设置数据OPBTi不是要保护的数据时(S811中的否),在步骤812(S812)中,闪存定序器17在作为无效区域的划分区域CNF_1中写入从CPU 11接收的WD0、WD1、WD2和WD3作为新的功能设置数据OPBTi。另一方面,当要保护要写入的功能设置数据OPBTi时(S811中的是),在步骤813(S813)中,闪存定序器17向作为无效区域的划分区域CNF_1写入作为有效区域的划分区域CNF_0的功能设置数据OPBTi的设置值。也就是说,闪存定序器17复制设置值。结果,保持功能设置数据OPBTi的设置值,并且可以禁止改变为不同的值。在S812之后或在S813之后,处理移至S814。
当完成功能设置数据OPBTi的写入时,闪存定序器17在步骤814中将指示功能设置数据OPBTi的写入完成的预定值作为写入完成标志VOFi(S814)写入划分区域CNF_1中。此后,在步骤815(S815)中,将写入完成标志VOFi的指示写入完成的预定值写入为写入完成标志VOFCi。结果,完成了写入设置区域的操作。
另一方面,当无效区域是划分区域CNF_0时,在步骤821至825中对划分区域CNF_0执行写入处理,并且除了无效区域被反转之外步骤821至825类似于上述步骤811至815。也就是说,当写入目标功能设置数据OPBTi不是保护目标时(S821中的否),闪存定序器17将WD0、WD1、WD2和WD3写入划分区域CNF_0(S822),并且当写入目标功能设置数据是保护目标时,闪存定序器17将划分区域CNF_1的功能设置数据OPBTi的设置值复制到划分区域CNF_0(S823)。在步骤824和825中,闪存定序器17将写入完成标志VOFi和写入完成标志VOFCi写入划分区域CNF_0中。
当针对安全设置区域300B和块保护设置区域300C接收到“写入设置区域”命令时,闪存定序器17的操作与图21所示的操作相同,但是,写入目标区域根据要处理的区域而不同。具体地,在安全设置区域300B的情况下,写入目标区域是划分区域EC_0或划分区域EC_1。在块保护设置区域300C的情况下,写入目标区域是划分区域BP_0或划分区域BP_1。
如图21的步骤813和823所示,当功能设置数据OPBTi受到保护时,当从形成对的两个存储器区域(碎片区域)中的一个存储器区域接收到新的功能设置数据OPBTi的写入指令时,闪存定序器17写入存储在另一侧的功能设置数据而不是新的功能设置数据。结果,可以防止要保护的功能设置数据OPBTi被另一数据重写。
当更新设置区域300时,CPU 11例如根据用于更新功能设置数据的程序(软件),顺序地执行用于所有器件设置数据OPBTi(即,功能设置数据OPBT0、...、OPBTx)的“设置区域擦除”命令和“设置区域写入”命令。结果,新的设置值被存储在无效划分区域中的配置设置区域300A、安全设置区域300B或块保护设置区域300C中。
图22A和图22B示出了当执行“设置区域擦除”命令和“设置区域写入”命令时的每个值的示例。然而,在该示例中,示出了在使用“设置区域擦除”命令和“设置区域写入”命令将新的设置值存储在配置设置区域300A的无效划分区域CNF_0中的情况下的值的转变。图22A是示出划分区域CNF_0中的每个功能设置数据和每个标志的转变的表。图22B是示出划分区域CNF_1中的每个功能设置数据和每个标志的转变的表。
如图22A所示,当执行用于各个功能设置数据OPBTi的“设置区域擦除”命令和“设置区域写入”命令时,在无效划分区域CNF_0中,首先,擦除功能设置数据和标志,之后,重复新的功能设置数据OPBTi和写入完成标志VOFi和VOFCi的写入。在此期间,如图22B所示,在有效划分区域CNF_1中没有发生值的变化。在图22A和图22B中,示例了配置设置区域300A的更新,但是安全设置区域300B和块保护设置区域300C也可以通过相同过程在无效的划分区域中存储新的设置值。
图23是示出切换区域100_0/切换区域100_1/标签区域200与配置设置区域300A/安全设置区域300B/块保护设置区域300C之间的关系的示意图。通过根据图12的切换区域100_0、切换区域100_1和标签区域200的标志来确定存储有效设置数据的切换区域100,即有效切换区域100。此外,配置设置区域300A的有效划分区域、安全设置区域300B的有效划分区域和块保护设置区域300C的有效划分区域由有效切换区域100的设置数据确定。
这里,切换区域100_0的设置数据D0-0和切换区域100_1的设置数据D1-0是指明配置设置区域300A的划分区域之一的数据。换句话说,设置数据D0-0和D1-0是指明存储在划分区域CNF_0中的功能设置数据或存储在划分区域CNF_1中的功能设置数据的数据。切换区域100_0的设置数据D0-1和切换区域100_1的设置数据D1-1是指明安全设置区域300B的划分区域之一的数据。换句话说,设置数据D0-1和D1-1是指明存储在划分区域EC_0中的器件设置数据或存储在划分区域EC_1中的功能设置数据的数据。切换区域100_0的设置数据D0-2和切换区域100_1的设置数据D1-2是指明块保护设置区域300C的划分区域之一的数据。换句话说,设置数据D0-2和D1-2是指明存储在划分区域BP_0中的功能设置数据或存储在划分区域BP_1中的功能设置数据的数据。
由于每个区域具有如图23所示的关系,当切换到存储在设置区域300中的新功能设置数据时,在将新的功能设置数据存储在设置区域300的无效划分区域中之后,如图11A、图11B和图11C所示,可以执行四个命令。也就是说,通过按照“切换区域擦除”命令、“切换区域写入”命令、“标签区域擦除”命令和“标签区域更新”命令的顺序执行四个命令,切换区域100的设置数据可以被改变为指明存储新的功能设置数据的划分区域的数据。
可以在切换区域100的每个设置数据中设置任意值。因此,从图24所示的划分区域CNF_0、划分区域EC_1和划分区域BP_0分别被选择为切换区域100_0的设置数据中的有效区域的状态,可以切换划分区域CNF_1、划分区域EC_1和划分区域BP_1至如图25所示的划分区域CNF_1和划分区域BP_1分别被选择为切换区域100_1的设置数据中的有效区域的状态。也就是说,也可以在无需仅切换安全设置的情况下使用微控制器10。
无论是否更新设置区域300,也都可以仅更新切换区域100和标签区域200。因此,当在擦除切换区域100_0之后在切换区域100_0中写入用于选择划分区域CNF_0、划分区域EC_1和划分区域BP_0的设置数据时,并且进一步执行标签区域擦除和标签更新时,微控制器10的功能设置可以返回到与图24中相同的状态。也就是说,可以执行回滚。
尽管具有上述优点,即仅切换区域100和标签区域200可以被独立地更新,但是如果通过更新切换区域100和标签区域200错误地选择了处于擦除状态的划分区域,则微控制器10的各种功能的设置消失,这可能导致系统故障。为了避免这些问题,在本实施例中,闪存定序器17确定设置区域300的写入状态并更新标签区域。图26是示出当接收到“标签区域更新”命令时根据第三实施例的闪存定序器17的示例性操作的流程图。图26的流程图与图10的流程图不同之处在于,在S400之后添加S431、S432、S441和S442。下面将参考图26描述在接收到“标签区域更新”命令时本实施例的闪存定序器17的操作流程。
在本实施例中,当确定无效切换区域100时(S400),闪存定序器17确认无效切换区域100的设置数据的写入状态(步骤431和441)以及设置区域300的写入状态(步骤432和442)。
首先,将描述无效切换区域100是切换区域100_1的情况。在这种情况下,在S400之后,处理进入步骤431。在步骤431(S431)中,闪存定序器17确定是否已经写入了切换区域100_1的所有设置数据(即,设置数据D1-0、D1-1和D1-2)。如果已经写入了切换区域100_1的所有设置数据(S431中的是),则处理进行到步骤432。另一方面,如果尚未写入切换区域100_1的任何设置数据(S431中的否),则处理错误地结束。也就是说,在这种情况下,标签区域200未被更新。
在步骤432(S432)中,闪存定序器17确定是否已经写入了在由写入到切换区域100_1中的设置数据指明的划分区域中的所有写入完成标志VOFi。当已经写入了所有写入完成标志VOFi时(S432中的是),执行与图10中所示的处理相同的处理(步骤411和412)。另一方面,如果没有写入全部的写入完成标志VOFi(S432中为否),则处理错误地结束。也就是说,在这种情况下,标签区域200未被更新。
如上所述,当在标签区域200中写入指示有效的切换区域是切换区域100_1的有效切换区域标志VAF时,闪存定序器17仅在设置数据D1-0、设置数据D1-1和设置数据D1-2存储在切换区域100_1中并且功能设置数据存储在由存储的设置数据D1-0、D1-1和D1-2指定的划分区域中时执行有效切换区域标志VAF的写入。换句话说,当在标签区域200中写入指示有效设置数据是切换区域100_1的设置数据的有效切换区域标志VAF时,闪存定序器17仅在存储了设置数据并且由存储的设置数据指明的功能设置数据存储在设置区域300中时才执行有效切换区域标志VAF的写入。通过这样做,可以防止在擦除状态下错误地选择划分区域。
如果无效切换区域100是切换区域100_0,则在步骤400之后,处理进入步骤441。在步骤441(S441)中,闪存定序器17确定是否已经写入了切换区域100_0的所有设置数据(即,设置数据D0-0、设置数据D0-1和设置数据D0-2)。如果已经写入了切换区域100_0的所有设置数据(S441中的是),则处理进行到步骤442。另一方面,如果尚未写入切换区域100_0的任何设置数据(S441中的否),则处理错误地结束。也就是说,在这种情况下,标签区域200不被更新。
在步骤442(S442)中,闪存定序器17确定是否已写入由写入切换区域100_0中的设置数据指定的划分区域的所有写入完成标志VOFi。当已经写入了所有写入完成标志VOFi时(S442中的是),执行与图10中所示的处理相同的处理(步骤421和422)。另一方面,如果没有写入全部的写入完成标志VOFi(S442中的否),处理错误地结束。也就是说,在这种情况下,标签区域200不被更新。
如上所述,当在标签区域200中写入指示有效的切换区域是切换区域100_0的有效切换区域标志VAF时,闪存定序器17仅在设置数据D0-0、设置数据D0-1和设置数据D0-2存储在切换区域100_0中并且功能设置数据存储在由存储的设置数据D0-0、D0-1和D0-2指定的划分区域中时才执行有效切换区域标志VAF的写入。换句话说,当在标签区域200中写入指示有效设置数据是切换区域100_0的设置数据的有效切换区域标志VAF时,闪存定序器17仅在存储了设置数据并且由存储的设置数据指定的功能设置数据存储在设置区域300中时才执行有效切换区域标志VAF的写入。通过这样做,可以防止在擦除状态下错误地选择划分区域。
当认为写入完成标志VOFi的写入状态不足以保持并且值可能随时间改变时,通过执行图26的处理,系统的操作可能变得不稳定。因此,在执行图26的处理之前,可以检查在执行写入完成标志VOFi的写入之后立即写入的写入完成标志VOFCi。闪存定序器17可以仅当写入完成标志VOFCi指示写入完成标志VOFi的写入完成时才执行图26的处理。这使得可以稳定系统的操作。
在本实施例中,闪存定序器17确认写入完成标志VOFi(图26中的步骤432和442),使得即使在为功能设置数据设置了读取禁止保护时闪存定序器也能正常工作。也就是说,闪存定序器17确认写入完成标志VOFi,使得即使不能通过参考功能设置数据来检查功能设置数据的写入状态,也可以正确地执行操作。因此,在没有为功能设置数据设置读取禁止保护的系统中,闪存定序器17可以通过参考功能设置数据来确认功能设置数据的写入状态。在这种情况下,在执行图26的处理之前,可以检查写入完成标志VOFi而不是写入完成标志VOFCi。也就是说,在这种配置中,写入完成标志VOFCi不是必需的。
已经在上面描述第三实施例。在本实施例中,用于功能设置的闪存15包括切换区域100_0、切换区域100_1、标签区域200以及存储了用于预定功能的功能设置数据的两个存储器区域。这里,存储了用于预定功能的功能设置数据的两个存储器区域例如是划分区域CNF_0和划分区域CNF_1。两个存储器区域可以是划分区域EC_0和划分区域EC_1,或者可以是划分区域BP_0和划分区域BP_1。当两个存储器区域中的一个存储器区域被称为存储器区域A而另一个被称为存储器区域B时,本实施例中的切换区域100_0和切换区域100_1的设置数据可以被称为以下数据。也就是说,切换区域100_0和切换区域100_1的设置数据是用于指明存储在存储器区域A中的功能设置数据或存储在存储器区域B中的功能设置数据的数据。根据这样的配置,即使当在有效切换区域标志VAF的更新期间中断处理并且有效切换区域标志VAF变为不确定值时,也可以唯一地指明要应用于微控制器10的功能设置数据。
特别地,还可以包括n组两个存储器区域,其中存储用于预定功能的功能设置数据,其中n是大于或等于2的整数。在上面描述的配置中,用于功能设置的闪存15包括三个这样的对(划分区域CNF_0和CNF_1、划分区域SEC_0和SEC_1以及划分区域BP_0和BP_1)。切换区域100_0和切换区域100_1都存储n条设置数据。根据这种配置,可以自由地切换要应用的功能设置数据的组合。因此,例如,可以容易地实现从图24所示状态至图25所示状态的切换以及切换后的回滚。
此外,如图21所示,当接收到对保护对象的功能设置数据的写入指令时,闪存定序器17执行有效划分区域的功能设置数据的复制,而不是写入接收的数据。因此,可以保护功能设置数据的设置值不被改变为不正确的值。如图26所示,当更新标签区域200时,闪存定序器17确认更新后选择的划分区域的写入完成标志VOFi,从而防止各种功能设置的消失。
在上述所有实施例中,用于执行上述处理的每个元件可以由处理器、存储器或其他电路在硬件方面配置,并且通过加载到存储器中的程序等在软件方面实现。因此,本领域技术人员将理解,这些处理可以通过单独的硬件、单独的软件或其组合以各种形式实现,并且不限于任何一种。
而且,可以使用各种类型的非暂时性计算机可读介质来存储上述程序并将其提供给计算机。非暂时性计算机可读介质包括各种类型的有形存储介质。非暂时性计算机可读介质的示例包括磁记录介质(例如,软盘、磁带、硬盘驱动器)、磁光学记录介质(例如,磁光盘)、CD-ROM(只读存储器、CD-R、CD-R/W,固态存储器(例如,掩模ROM、PROM(可编程ROM)、EPROM(可擦除PROM、闪存ROM、RAM(随机存取存储器))。该程序还可以通过各种类型的暂时性计算机可读介质提供给计算机。暂时性计算机可读介质的示例包括电信号、光信号和电磁波。暂时性计算机可读介质可以经由有线或无线通信路径(例如电线和光纤)将程序提供给计算机。
尽管已经基于实施例具体描述了由发明人做出的发明,但是本发明不限于已经描述的实施例,并且不用说,在不脱离其主旨的情况下可以进行各种修改。
Claims (12)
1.一种信息处理器件,包括:
第一存储器区域,存储第一数据;第二存储器区域,存储第二数据;第三存储器区域,存储指示所述第一数据和所述第二数据中的哪一个数据有效的有效指令标志;存储单元,包括所述第一存储器区域、所述第二存储器区域和所述第三存储器区域;控制单元,用于控制对所述存储单元的擦除和写入;以及使用数据确定单元,用于确定所述第一数据和所述第二数据中的哪一个数据有效且将被使用,其中所述控制单元在所述存储单元中存储指示所述第一数据的更新状态的第一更新状态标志、指示所述第二数据的更新状态的第二更新状态标志、以及指示所述有效指令标志的更新状态的第三更新状态标志,其中用于确定使用数据的所述使用数据确定单元存储所述第一更新状态标志、所述第二更新状态标志和第三更新状态标志,以及其中当基于所述有效指令标志的确定是不可能时,所述信息处理器件用于确定所述第一数据和所述第二数据中的哪一个数据有效。
2.根据权利要求1所述的信息处理器件,其中,所述第一更新状态标志是指示为更新所述第一数据而执行的所述第一存储器区域的擦除处理是否已经开始或完成的标志,所述第二更新状态标志是指示为更新所述第二数据而执行的所述第二存储器区域的擦除处理是否已经开始或完成的标志,并且所述第三更新状态标志是指示为更新所述有效指令标志而执行的所述第三存储器区域的擦除处理是否已经开始或完成的标志。
3.根据权利要求1所述的信息处理器件,其中,仅当所述有效指令标志存储在所述第三存储器区域中时,所述控制单元擦除所述第一存储器区域或所述第二存储器区域。
4.根据权利要求1所述的信息处理器件,其中,在当前有效数据是所述第一数据时,仅当所述第二数据存储在所述第二存储器区域中时,所述控制单元才执行所述第三存储器区域的擦除,并且在当前有效数据是所述第二数据时,仅当所述第一数据存储在所述第一存储器区域中时,所述控制单元才执行所述第三存储器区域的擦除。
5.根据权利要求1所述的信息处理器件,其中,指示是否完成所述有效指令标志的写入的写入完成标志被存储在所述存储单元中,并且仅当所述写入完成标志指示写入完成时,所述控制单元执行对所述第一存储器区域或所述第二存储器区域的擦除。
6.根据权利要求1所述的信息处理器件,其中,指示是否完成所述第一数据的写入的第一写入完成标志、以及指示是否完成所述第二数据的写入的第二写入完成标志被存储在所述存储单元中,并且仅当所述第一写入完成标志或所述第二写入完成标志指示新要验证的数据的写入完成时,所述控制单元才擦除所述第三存储器区域。
7.根据权利要求1所述的信息处理器件,其中,所述存储单元还包括:
第四存储器区域和第五存储器区域,各自存储用于预定功能的功能设置数据,并且所述第一数据和所述第二数据是指定存储在所述第四存储器区域中的所述功能设置数据、或存储在所述第五存储器区域的所述功能设置数据的数据。
8.根据权利要求7所述的信息处理器件,其中,在要保护所述功能设置数据时,当接收到写入新的功能设置数据到所述第四存储器区域和所述第五存储器区域中的一个存储器区域的指令时,所述控制单元写入存储在另一个存储器区域中的所述功能设置数据,而不是所述新的功能设置数据。
9.根据权利要求7所述的信息处理器件,其中,在指示有效数据是所述第一数据的所述有效指令标志被写入所述第三存储器区域时,仅在存储所述第一数据并且存储由存储的所述第一数据指明的所述功能设置数据时,所述控制单元才执行所述有效指令标志的写入。
10.根据权利要求7所述的信息处理器件,其中,所述存储单元包括n组所述第四存储器区域和所述第五存储器区域,其中n是大于或等于2的整数,所述第一存储器区域存储n条所述第一数据且所述第二存储器区域存储n条所述第二数据。
11.根据权利要求1所述的信息处理器件,其中,所述存储单元是闪存,并且所述控制单元将所述第一更新状态标志存储在所述第二存储器区域中,将所述第二更新状态标志存储在所述第一存储器区域中,并且将所述第三更新状态标志存储在所述第一存储器区域或所述第二存储器区域中。
12.一种控制方法,包括以下步骤:在存储单元中存储指示第一数据的更新状态的第一更新状态标志、指示第二数据的更新状态的第二更新状态标志、以及指示有效指令标志的更新状态的第三更新状态标志,所述存储单元包括存储第一数据的第一存储器区域、存储第二数据的第二存储器区域、以及存储指示所述第一数据和所述第二数据中的哪一个数据被存储的所述有效指令标志的第三存储器区域;以及当基于所述有效指令标志的确定是不可能时,基于所述第一更新状态标志、所述第二更新状态标志和所述第三更新状态标志的值,确定所述第一数据和所述第二数据中的哪一个数据有效。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-132068 | 2018-07-12 | ||
JP2018132068A JP7089423B2 (ja) | 2018-07-12 | 2018-07-12 | 情報処理装置及び制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110716693A CN110716693A (zh) | 2020-01-21 |
CN110716693B true CN110716693B (zh) | 2024-02-13 |
Family
ID=67226054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910610918.0A Active CN110716693B (zh) | 2018-07-12 | 2019-07-08 | 信息处理器件和控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11137937B2 (zh) |
EP (1) | EP3594818B1 (zh) |
JP (1) | JP7089423B2 (zh) |
CN (1) | CN110716693B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000163302A (ja) * | 1997-09-30 | 2000-06-16 | Sony Corp | 外部記憶装置、デ―タ処理装置及びデ―タ処理方法 |
CN1536579A (zh) * | 2003-04-08 | 2004-10-13 | 株式会社瑞萨科技 | 存储卡 |
CN103092773A (zh) * | 2011-11-02 | 2013-05-08 | 瑞萨电子株式会社 | 高速缓存存储器装置、高速缓存控制方法和微处理器系统 |
CN105009085A (zh) * | 2013-03-18 | 2015-10-28 | 株式会社东芝 | 信息处理系统、控制程序以及信息处理设备 |
EP3301577A1 (en) * | 2016-09-30 | 2018-04-04 | Hewlett-Packard Enterprise Development LP | Fault tolerance in shared memory |
CN108027862A (zh) * | 2015-09-19 | 2018-05-11 | 高通股份有限公司 | 安全交易管理技术 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544347A (en) * | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
JP3364356B2 (ja) * | 1995-03-30 | 2003-01-08 | 富士通株式会社 | メモリ書替え装置 |
JP3376331B2 (ja) | 1999-11-25 | 2003-02-10 | エヌイーシーアクセステクニカ株式会社 | フラッシュメモリを用いる記憶方法及び記憶制御プログラムを記録した記録媒体 |
JP4645883B2 (ja) | 2004-07-14 | 2011-03-09 | ソニー株式会社 | 半導体集積回路、データ記憶方法及びデータ通信装置 |
WO2006011186A1 (ja) * | 2004-07-23 | 2006-02-02 | Spansion Llc | コントローラ、データ記憶システム、データ書き換え方法及びコンピュータプログラムプロダクト |
JP4883570B2 (ja) * | 2006-09-27 | 2012-02-22 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置、不揮発性半導体記憶装置、及びそれらの動作方法 |
CN101632068B (zh) * | 2007-12-28 | 2015-01-14 | 株式会社东芝 | 半导体存储装置 |
JP2011129192A (ja) * | 2009-12-16 | 2011-06-30 | Samsung Electronics Co Ltd | 半導体記憶装置 |
JP2011128998A (ja) * | 2009-12-18 | 2011-06-30 | Toshiba Corp | 半導体記憶装置 |
JP5754287B2 (ja) | 2011-08-04 | 2015-07-29 | 大日本印刷株式会社 | Icチップ、icチップにおける処理方法、uim、携帯端末、及びicチップ用処理プログラム |
JP2014071535A (ja) * | 2012-09-27 | 2014-04-21 | Fujitsu Semiconductor Ltd | メモリ管理装置、マイクロコントローラ及びメモリ管理方法 |
CN103544995B (zh) * | 2013-08-27 | 2016-09-21 | 华为技术有限公司 | 一种坏道修复方法及装置 |
TWI516921B (zh) * | 2013-10-02 | 2016-01-11 | 群聯電子股份有限公司 | 資料處理方法、記憶體儲存裝置與記憶體控制電路單元 |
JP6233134B2 (ja) | 2014-03-28 | 2017-11-22 | 大日本印刷株式会社 | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム |
WO2015170454A1 (ja) * | 2014-05-07 | 2015-11-12 | ソニー株式会社 | メモリ制御装置、メモリ装置およびメモリ制御方法 |
JP6421042B2 (ja) | 2015-01-16 | 2018-11-07 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
TWI557744B (zh) * | 2015-01-27 | 2016-11-11 | 緯創資通股份有限公司 | 資料儲存方法及嵌入式系統 |
JP6332077B2 (ja) | 2015-02-23 | 2018-05-30 | 株式会社デンソー | データ管理装置およびプログラム |
JP2017010396A (ja) * | 2015-06-24 | 2017-01-12 | 富士通株式会社 | ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム |
JP2017027479A (ja) * | 2015-07-24 | 2017-02-02 | 富士通株式会社 | データ読出し方法及び情報処理システム |
US10607195B2 (en) * | 2016-06-06 | 2020-03-31 | ArrowPass, Inc. | Facilitating selling and validating digital resources |
JP6753257B2 (ja) * | 2016-10-04 | 2020-09-09 | 富士通株式会社 | 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム |
-
2018
- 2018-07-12 JP JP2018132068A patent/JP7089423B2/ja active Active
-
2019
- 2019-06-24 US US16/450,294 patent/US11137937B2/en active Active
- 2019-07-08 CN CN201910610918.0A patent/CN110716693B/zh active Active
- 2019-07-09 EP EP19185316.7A patent/EP3594818B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000163302A (ja) * | 1997-09-30 | 2000-06-16 | Sony Corp | 外部記憶装置、デ―タ処理装置及びデ―タ処理方法 |
CN1536579A (zh) * | 2003-04-08 | 2004-10-13 | 株式会社瑞萨科技 | 存储卡 |
CN103092773A (zh) * | 2011-11-02 | 2013-05-08 | 瑞萨电子株式会社 | 高速缓存存储器装置、高速缓存控制方法和微处理器系统 |
CN105009085A (zh) * | 2013-03-18 | 2015-10-28 | 株式会社东芝 | 信息处理系统、控制程序以及信息处理设备 |
CN108027862A (zh) * | 2015-09-19 | 2018-05-11 | 高通股份有限公司 | 安全交易管理技术 |
EP3301577A1 (en) * | 2016-09-30 | 2018-04-04 | Hewlett-Packard Enterprise Development LP | Fault tolerance in shared memory |
Also Published As
Publication number | Publication date |
---|---|
US11137937B2 (en) | 2021-10-05 |
EP3594818A1 (en) | 2020-01-15 |
EP3594818B1 (en) | 2021-05-05 |
JP7089423B2 (ja) | 2022-06-22 |
US20200019341A1 (en) | 2020-01-16 |
CN110716693A (zh) | 2020-01-21 |
JP2020009347A (ja) | 2020-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5226157A (en) | Backup control method and system in data processing system using identifiers for controlling block data transfer | |
ES2371995T3 (es) | Actualización del firmware de un dispositivo electrónico. | |
KR100507884B1 (ko) | 플래시 메모리의 메모리 재기록 제어 시스템, 메모리 재기록 제어 방법, 메모리 재기록 제어 방법의 각 공정을 실행시키는 프로그램을 기록한 정보 기록 매체 | |
KR100415371B1 (ko) | 컴퓨터 | |
CN107239411B (zh) | 一种车载控制器内存管理方法及系统 | |
JP2000148465A (ja) | ファ―ムウェア変更方法 | |
JP2011129192A (ja) | 半導体記憶装置 | |
JP2006164162A (ja) | コピー制御装置および方法 | |
JP2008504628A (ja) | 安全なフラッシング | |
CN110716693B (zh) | 信息处理器件和控制方法 | |
WO2006051692A1 (ja) | 不揮発性メモリシステム | |
JP6575157B2 (ja) | ファームウェアのダウンロード方法及びファームウェア組込機器 | |
JP2009104369A (ja) | ディスクサブシステム | |
TWI650646B (zh) | 纜線數據機及其操作方法 | |
JP2007011929A (ja) | 不揮発性メモリのデータ更新方法、制御装置、及びデータ更新プログラム | |
JP4452557B2 (ja) | Worm保証付きリモートコピー | |
JP4558393B2 (ja) | 情報処理装置 | |
JP6676791B2 (ja) | 情報処理装置 | |
JP2007041798A (ja) | 情報処理装置及び情報処理装置のメモリ書き換え方法 | |
JPH06222986A (ja) | メモリ制御装置 | |
JP2005128613A (ja) | 画像形成装置 | |
JP2001053891A (ja) | 携帯端末装置のプログラム更新方法およびその装置 | |
JP2000267936A (ja) | ディスクサブシステム | |
US20220204008A1 (en) | Arithmetic processing device, vehicle control device, and update method | |
JP2004094628A (ja) | フラッシュメモリのメモリ書き換え制御システム、メモリ書き換え制御方法及びメモリ書き換え制御方法の各工程を実行させるプログラム |
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 |