CN111666037B - 存储器设备和数据验证方法 - Google Patents
存储器设备和数据验证方法 Download PDFInfo
- Publication number
- CN111666037B CN111666037B CN202010012979.XA CN202010012979A CN111666037B CN 111666037 B CN111666037 B CN 111666037B CN 202010012979 A CN202010012979 A CN 202010012979A CN 111666037 B CN111666037 B CN 111666037B
- Authority
- CN
- China
- Prior art keywords
- data
- value
- checksum
- register
- section
- 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 58
- 238000013524 data verification Methods 0.000 title abstract description 3
- 238000003860 storage Methods 0.000 claims abstract description 121
- 238000012795 verification Methods 0.000 claims abstract description 90
- 238000013500 data storage Methods 0.000 claims abstract description 78
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 70
- 108010016634 Seed Storage Proteins Proteins 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims description 37
- 238000013496 data integrity verification Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 5
- 238000010200 validation analysis Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 abstract description 38
- 238000012546 transfer Methods 0.000 description 52
- 101100080124 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) NMD5 gene Proteins 0.000 description 41
- 101000692872 Homo sapiens Regulator of microtubule dynamics protein 1 Proteins 0.000 description 32
- 101000692894 Homo sapiens Regulator of microtubule dynamics protein 2 Proteins 0.000 description 32
- 101000692892 Homo sapiens Regulator of microtubule dynamics protein 3 Proteins 0.000 description 32
- 101000667643 Homo sapiens Required for meiotic nuclear division protein 1 homolog Proteins 0.000 description 32
- 102100026432 Regulator of microtubule dynamics protein 1 Human genes 0.000 description 32
- 102100026410 Regulator of microtubule dynamics protein 2 Human genes 0.000 description 32
- 102100026409 Regulator of microtubule dynamics protein 3 Human genes 0.000 description 32
- 201000002636 rippling muscle disease 1 Diseases 0.000 description 32
- 201000002992 rippling muscle disease 2 Diseases 0.000 description 32
- 101150109054 RRD1 gene Proteins 0.000 description 23
- 101150046625 RRD2 gene Proteins 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 22
- 102100038954 60S ribosomal export protein NMD3 Human genes 0.000 description 20
- 101000603190 Homo sapiens 60S ribosomal export protein NMD3 Proteins 0.000 description 20
- 101150077232 NMD4 gene Proteins 0.000 description 20
- 101100516714 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) NMD2 gene Proteins 0.000 description 20
- 230000002093 peripheral effect Effects 0.000 description 14
- 101001108356 Homo sapiens Nardilysin Proteins 0.000 description 13
- 102100021850 Nardilysin Human genes 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 239000004065 semiconductor Substances 0.000 description 5
- 238000012432 intermediate storage Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 101150012047 rmd gene Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010205 computational analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明题为“存储器设备和数据验证方法”。公开了一种用于验证存储器设备中的数据的方法及电路。将来自微控制器单元或数据存储结构的数据复制到寄存器块。由复制到寄存器块的数据来确定校验和值和校验和种子值。可使用循环冗余校验技术来确定这些值。使用该校验和种子值和该校验和值来确定验证值,该验证值用于验证存储器设备中的数据的完整性。根据另一个方面,电机驱动器电路包括存储器设备,该存储器设备被配置为具有保留数据区段、非保留数据区段和校验和存储区段。寄存器块耦接到该存储器设备,其中寄存器块包括校验和种子存储寄存器;并且校验功能电路耦接到该存储寄存器。
Description
技术领域
本发明整体涉及半导体部件,并且更具体地讲,涉及包括存储器设备的半导体部件。
背景技术
存储器设备用于多种多样的消费和工业产品,包括汽车、厨房电器、计算设备、安全系统、通信设备、视频游戏、音频和视频设备等。存储器设备可用于存储控制应用(诸如电机控制)中所用的数据,或它们可用于存储计算分析中所用的数据。保证存储器设备中存储的数据的完整性很重要,因为已被损坏的数据可在使用该数据的特定应用中造成灾难性故障。在电机控制应用中,存储器设备中存储的数据被损坏可引起高电流消耗,从而可导致电机出故障。
在汽车环境中,电动机用于若干不同应用,包括散热器风扇、燃油泵、水泵和油泵。在这些环境中,重要的是提供若干保护机制以防止可导致安全危害的故障状况。然而,一直以来特别难以设计出一种可用于这些不同应用中的大部分或全部的单一IC电机控制器。
半导体设备制造商及其客户已开发了用于防范数据损坏所造成的故障的技术。然而,这些技术增加了存储器设备及与存储器设备相关联的错误校验结构所占用的区域。
因此,有利的是拥有用于验证存储器设备中存储的数据的完整性的方法和结构。还有利的是该方法和结构实现起来具有成本效益和时效性。
附图说明
通过阅读以下结合附图的详细描述将更好地理解本发明,在所述附图中,相同的参考标号指示相同的元件,并且其中:
图1是根据本发明的一个实施方案的耦接到电机并耦接到微控制器单元的电机驱动器电路的框图;
图2A是根据本发明的一个实施方案的图1的电机驱动器电路的第一部分的框图;
图2B是根据本发明的一个实施方案的图1的电机驱动器电路的第二部分的框图,该第二部分被配置用于耦接到图2A的电机驱动器电路的第一部分;
图3是根据本发明的实施方案的数据存储位置和用于校验数据的完整性的中间值存储位置的表示;
图4是根据本发明的一个实施方案的用于验证数据完整性的方法的流程图;
图5是数据存储位置、存储在数据存储位置中的数据以及存储在中间值存储位置中并用于校验数据完整性的中间值的表示;
图6是根据本发明的一个实施方案的用于验证数据完整性的方法的流程图;
图7是根据本发明的一个实施方案的数据存储位置、存储在数据存储位置中的数据以及存储在中间值存储位置中并用于校验数据的完整性的中间值的表示;
图8是数据存储位置、存储在数据存储位置中的数据以及存储在中间值存储位置中的中间值的表示;并且
图9是根据本发明的另一个实施方案的耦接到电机的电机驱动器电路的框图。
为了图示的简单和清楚,图中的元件不一定按比例,并且不同图中的相同参考标号指示相同元件。此外,为使描述简明,省略了熟知步骤和元件的描述和细节。本领域的技术人员将理解,本文所用的词语“期间”、“在…同时”和“当…时”不是意指在引发动作后即刻发生动作的确切词语,而是意指在初始动作所引发的反应与初始动作之间可能存在一些短暂但合理的延迟,诸如传播延迟。词语“大概”、“约”或“基本上”的使用意指元件的值具有预期非常接近陈述值或位置的参数。然而,如本领域所熟知,始终存在妨碍值或位置确切地为陈述值或位置的微小差异。如本领域完全确认的是,最高至约百分之十(10%)(对半导体掺杂浓度来说是最高至百分之二十(20%))的差异被视为是与所述的准确理想目标的合理差异。
具体实施方式
一般来讲,本发明提供了用于在启动时验证数据的方法及其电路。根据一个实施方案,该方法包括提供存储器设备和寄存器块,其中该存储器设备具有被配置用于存储受限数据的第一数据区段、被配置用于存储非受限数据的第二数据区段以及第一校验和存储寄存器,并且其中寄存器块具有被配置用于存储受限数据的副本的第一数据区段、被配置用于存储非受限数据的副本的第二数据区段、第一校验和存储寄存器以及校验和种子存储寄存器。将第一受限数据值从存储器设备的第一数据区段的第一子区段复制到寄存器块的第一数据区段的第一子区段。将第一非受限数据值从存储器设备的第二数据区段的第一子区段复制到寄存器块的第二数据区段的第一子区段,并且响应于第一受限值、第一非受限值和校验和种子值来确定验证值。验证值用于验证存储器设备的第一数据区段中的数据的完整性。
根据另一个实施方案,该方法包括将数据从存储器设备复制到寄存器中,并且由复制到寄存器中的数据确定校验和种子值和校验和值。校验和种子值和校验和值用于确定验证值,该验证值用于验证存储器设备中的数据的完整性。
根据一个方面,确定验证值包括使用错误检测技术来生成验证值。
根据一个方面,使用错误检测技术包括使用循环冗余校验技术。
根据一个方面,确定验证值包括使用查找表来生成验证值。
根据一个方面,使用验证值来验证存储器设备的第一数据区段中的数据的完整性包括将验证值与预定值进行比较;并且响应于验证值等于预定值而生成验证信号。
根据一个方面,响应于验证值和预定值不相等而生成错误信号。
根据一个方面,通过使用循环冗余校验技术顺序地确定中间值而由复制到存储寄存器中的数据确定校验和种子值和校验和值。
根据一个方面,由复制到存储寄存器中的数据确定校验和种子值和校验和值包括:使用初始中间值、复制到寄存器的第一数据值以及循环冗余校验技术来确定第一计算的中间值;使用第一计算的中间值、复制到寄存器的第二数据值以及循环冗余校验技术来确定第二计算的中间值;使用第二计算的中间值、复制到寄存器的第三数据值以及循环冗余校验技术来确定第三计算的中间值;并且使用第三计算的中间值、复制到寄存器的第四数据值以及循环冗余校验技术来确定第四计算的中间值。
根据另一个实施方案,电机驱动器电路包括存储器设备,该存储器设备被配置为具有保留数据区段、非保留数据区段和校验和存储区段;寄存器块耦接到存储器设备,其中寄存器块包括校验和种子存储寄存器,校验功能电路耦接到存储寄存器。
图1是根据本发明的一个实施方案的被配置用于驱动电机12的电机驱动器电路10的框图。图1中示出的是耦接到微控制器单元(MCU)14、耦接到电机12并耦接到指示器设备29的电机驱动器电路10。电机驱动器电路10经由串行外围接口17连接到微控制器单元14,并且经由信号总线18连接到电机12。根据一个实施方案,电机驱动器电路10的寄存器块22的输入22J通过串行外围接口17连接到微控制器单元14的输出14C。因此,寄存器块22通过串行外围接口17连接到MCU 14。电机驱动器电路10包括存储器设备20、存储器控制器21、寄存器块22、校验功能电路24和电机控制逻辑电路26。寄存器块22可由一个或多个寄存器构成。寄存器可被称为存储寄存器。根据一个实施方案,存储器设备20是具有受限数据区段20A、非受限数据区段20B和校验和存储区段20C的一次性可编程(OTP)存储器设备。存储器设备20的受限数据区段20A通过数据总线互连30连接到寄存器块22的受限数据区段22A,存储器设备20的非受限数据区段20B通过数据总线互连32连接到寄存器块22的非受限数据区段22B,并且存储器设备20的校验和存储区段20C通过数据总线互连34连接到寄存器块22的校验和存储寄存器22C。作为示例,数据总线互连30通过存储器设备的输入/输出20D连接到存储器设备20的受限数据区段20A,并通过寄存器块22的输入/输出22G连接到寄存器块22的受限数据区段22A;数据总线互连32通过存储器设备20的输入/输出20E连接到存储器设备20的非受限数据区段20B,并通过寄存器块22的输入/输出22H连接到寄存器块22的非受限数据区段22B;并且数据总线互连34通过存储器设备20的输入/输出20F连接到存储器设备20的校验和存储区段20C,并通过寄存器块22的输入/输出22I连接到寄存器块22的校验和存储寄存器22C。数据总线互连30、32和34具有k个通道,其中变量“k”表示等于1或更大的整数。
电机驱动器电路10被制造为使得在电机驱动器电路10交付给客户之前由其制造商使用数据对受限数据区段20A进行编程。受限数据区段20A之所以被称为受限数据区段,是因为存储在该区段中的数据被封锁而使存储器设备20的制造商以外的任何人都无法访问。受限数据区段20A可被称为保留数据区段、隐藏数据区域、隐藏数据区段、未公开数据区域或数据区段、受限数据区域或数据区段、专用数据区域或数据区段、非用户数据区域或数据区段等。非受限数据区段20B可由客户访问,因此其可被称为非安全数据区域或数据区段、公用数据区域或数据区段、用户数据区域或数据区段、开放数据区域或数据区段、活动数据区域或数据区段、公用数据区域或数据区段、非安全数据区域或数据区段、用户可编程数据区域或数据区段等。
校验和存储区段20C是用于存储校验和值的存储器,并且可被称为存储器区段或区段。作为示例,受限数据区段20A、非受限数据区段20B和校验和存储区段20C为k位宽,并且可被称为k位数据存储位置或k位数据库。根据一个实施方案,变量“k”为8,因此受限数据区段20A、非受限数据区段20B和校验和存储区段20C为8位宽。然而,这不是限制,并且变量“k”可为其他整数,诸如2、4、16、32、40、64等。
寄存器块22包括至少受限数据区段22A、非受限数据区段22B、校验和存储寄存器22C、校验和种子存储寄存器22D和传送寄存器22E。寄存器块22的受限数据区段22A具有输入,该输入通过数据总线互连30连接到存储器设备20的受限数据区段20A并通过数据总线互连42连接到电机控制逻辑电路26和校验功能电路24;寄存器块22的非受限数据区段22B具有输入,该输入通过数据总线互连32连接到非受限数据区段20B并通过数据总线互连42连接到电机控制逻辑电路26和校验功能电路24;并且寄存器块22的校验和存储寄存器22C通过数据总线互连34连接到存储器设备20的校验和存储区段20C,并通过数据总线互连42连接到电机控制逻辑电路26和校验和功能电路24。
受限数据区段22A之所以被称为受限数据区段,是因为存储在该区段中的数据被封锁而使寄存器块22的制造商以外的任何人都无法访问。受限数据区段22A可被称为保留数据区段、隐藏数据区域、隐藏数据区段、未公开数据区域或数据区段、受限数据区域或数据区段、专用数据区域或数据区段、非用户数据区域或数据区段等。非受限数据区段22B可由客户访问,因此其可被称为非安全数据区域或数据区段、公用数据区域或数据区段、用户数据区域或数据区段、开放数据区域或数据区段、活动数据区域或数据区段、公用数据区域或数据区段、非安全数据区域或数据区段、用户可编程数据区域或数据区段等。
校验和存储寄存器22C是用于存储校验和值的寄存器。作为示例,受限数据区段22A、非受限数据区段22B、校验和存储寄存器22C、校验和种子存储寄存器22D和传送寄存器22E为k位宽,并且可被称为k位寄存器、k位数据存储位置、k位数据库等。根据一个实施方案,变量“k”为8,因此受限数据区段22A、非受限数据区段22B、校验和存储寄存器22C、校验和种子存储寄存器22D和传送寄存器22E为8位宽。然而,这不是限制,并且变量“k”可为其他整数,诸如2、4、16、32、40、64等。
校验和种子存储寄存器22D具有输出22M,并且通过串行外围接口15从输出22M连接到MCU 14的输入14A。另外,校验和种子存储寄存器22D具有输入22N,该输入通过数据总线互连19连接到校验功能电路24的输出24D。
寄存器块22的传送寄存器22E由微控制器单元14更新。响应于传送寄存器22E被更新,寄存器块22将控制信号从输出22L传输到存储器控制器21的输入21B以引起更新的数据向存储器设备20的传输或启用更新的数据向存储器设备20的传输。
寄存器块22还包括输入22K,该输入连接到存储器控制器21的输出21C。从存储器控制器21的输出21C传输到寄存器块22的输入22K的信号用作从存储器设备20传输到寄存器块22的数据的写定时信号。
校验功能电路24具有输出24B,该输出连接到存储器控制器21的输入21A。根据一个实施方案,校验功能电路24具有多通道输入24A,该多通道输入由k乘以十一(k*11)位构成,即多通道输入24A为k*11位宽。校验功能电路24的输出24B还连接到电机控制逻辑电路26的输入26C。
存储器控制器21具有连接到校验功能电路24的输出24B的输入21A、连接到寄存器块22的输出22L的输入21B、连接到寄存器块22的输入22K的输出21C以及连接到存储器设备20的输入20G的输出21D。存储器控制器21输出读写信号,以使得可通过数据总线互连30和32在存储器设备20与寄存器块22之间传输数据。另外,存储器控制器21输出读写信号,以使得可通过数据总线互连34将数据从校验和存储区段20C传输到校验和存储寄存器22C。因此,存储器控制器21控制数据从存储器设备20的受限数据区段20A向寄存器块22的受限数据区段22A的复制,控制数据从存储器设备20的非受限数据区段20B向寄存器块22的非受限数据区段22B的复制,并且控制数据从存储器设备20的校验和存储区段20C向寄存器块22的校验和存储寄存器22C的复制。
应当注意,输入20G输送控制OTP存储器设备20的多个信号。
电机控制逻辑电路26具有输入26A和26C以及输出26B。根据一个实施方案,电机控制逻辑电路26的输入26A是多通道输入,该多通道输入由k乘以十一(k*11)位构成,即多通道输入26A为k*11位宽。电机控制逻辑电路26的输入26C连接到校验功能电路24的输出24B,并且电机控制逻辑电路26的输出26B用作电机驱动器电路10的诊断输出,该诊断输出可连接到诊断指示器设备29。作为示例,诊断指示器设备29是响应于来自电机控制逻辑电路26的错误信号而发光的发光二极管(LED)。诊断指示器设备29不限于为LED。可被配置为提供电机驱动器电路10的状态的指示的其他合适电路或设备可用于诊断指示器设备29。另外,电机控制逻辑电路26经由模拟电路(未示出)间接地控制信号总线18。
根据一个实施方案,存储器设备20、寄存器块22、存储器控制器21、校验功能电路24和电机控制逻辑电路26在半导体材料中单片集成以形成电机驱动器电路10。然而,这不是限制,并且电机驱动器电路10可由分立电路或分立电路和单片集成电路的组合构成。
图2A是图1所示的存储器设备20和寄存器块22的框图的扩展视图,并且图2B是耦接到存储器设备20、寄存器块22、存储器控制器21和电机控制电路26的校验功能电路24的框图。应当理解,已在两个附图中示出电机驱动器电路10以更好地说明电路元件的细节。图2A将存储器设备20的受限数据区段20A示出为具有四个k位数据结构,它们被标识为k位数据子区段RMD0、k位数据子区段RMD1、k位数据子区段RMD2和k位数据子区段RMD3。如上所讨论,数据子区段RMD0、RMD1、RMD2和RMD3对于电机驱动器电路10的制造商以外的所有人都无法访问。作为示例,数据子区段RMD0、RMD1、RMD2和RMD3各自可为8位宽。数据子区段RMD0、RMD1、RMD2和RMD3的其他合适位宽度包括2位、4位、16位、32位、40位、64位等。另外,图2A将存储器设备20的非受限数据区段20B示出为具有六个k位存储器结构,它们被标识为k位数据子区段NMD0、k位数据子区段NMD1、k位数据子区段NMD2、k位数据子区段NMD3、k位数据子区段NMD4和k位数据子区段NMD5。作为示例,数据子区段NMD0、NMD1、NMD2、NMD3、NMD4和NMD5各自可为8位宽。数据子区段NMD0、NMD1、NMD2、NMD3、NMD4和NMD5的其他合适位宽度包括2位、4位、16位、32位、40位、64位等。如上所讨论,存储器设备20具有k位校验和存储区段20C。与受限数据子区段RMD0、RMD1、RMD2和RMD3及非受限数据子区段NMD0、NMD1、NMD2、NMD3、NMD4和NMD5一样,k位校验和存储区段20C也可为2位宽、4位宽、8位宽、16位宽、32位宽、40位宽、64位宽等。K位校验和存储区段20C可被称为k位数据存储位置。
图2A还将寄存器块22示出为具有受限数据区段22A、非受限数据区段22B、校验和存储寄存器22C、校验和种子存储寄存器22D和传送寄存器22E。受限数据区段22A被示出为具有四个k位数据寄存器,它们被标识为k位数据子区段RRD0、k位数据子区段RRD1、k位数据子区段RRD2和k位数据子区段RRD3。如上所讨论,k位数据子区段RRD0、RRD1、RRD2和RRD3对于电机驱动器电路10的客户和终端用户无法访问。作为示例,k位数据子区段RRD0、RRD1、RRD2和RRD3各自可为8位宽。k位数据子区段RRD0、RRD1、RRD2和RRD3的其他合适位宽度包括2位、4位、16位、32位、40位、64位等。非受限数据区段22B被示出为包括六个k位数据寄存器,它们被标识为k位数据子区段NRD0、k位数据子区段NRD1、k位数据子区段NRD2、k位数据子区段NRD3、k位数据子区段NRD4和k位数据子区段NRD5。作为示例,k位数据子区段NRD0、NRD1、NRD2、NRD3、NRD4和NRD5各自可为8位宽。k位数据子区段NRD0、NRD1、NRD2、NRD3、NRD4和NRD5的其他合适位宽度包括2位、4位、16位、32位、40位、64位等。寄存器块22具有k位校验和存储寄存器22C。与受限数据区段22A和非受限数据区段22B一样,k位校验和存储寄存器22C和校验和种子存储寄存器22D可为2位宽、4位宽、8位宽、16位宽、32位宽、40位、64位宽等。应当注意,数据区段22A和22B可为包括多个寄存器的寄存器块22的子块。
根据一个实施方案,存储器设备20的数据子区段RMD0被配置为经由数据总线互连30将数据传输到寄存器块22的数据子区段RRD0,存储器设备20的数据子区段RMD1被配置为经由数据总线互连30将数据传输到寄存器块22的数据子区段RRD1,存储器设备20的数据子区段RMD2被配置为经由数据总线互连30将数据传输到寄存器块22的数据子区段RRD2,存储器设备20的数据子区段RMD3被配置为经由数据总线互连30将数据传输到寄存器块22的数据子区段RRD3,存储器设备20的数据子区段NMD0被配置为经由数据总线互连32将数据传输到寄存器块22的数据子区段NRD0,存储器设备20的数据子区段NMD1被配置为经由数据总线互连32将数据传输到寄存器块22的数据子区段NRD1,存储器设备20的数据子区段NMD2被配置为经由数据总线互连32将数据传输到寄存器块22的数据子区段NRD2,存储器设备20的数据子区段NMD3被配置为经由数据总线互连32将数据传输到寄存器块22的数据子区段NRD3,存储器设备20的数据子区段NMD4被配置为经由数据总线互连32将数据传输到寄存器块22的数据子区段NRD4,存储器设备20的数据子区段NMD5被配置为经由数据总线互连32将数据传输到寄存器块22的数据子区段NRD5,并且存储器设备20的k位校验和存储区段20C被配置为经由数据总线互连34将数据传输到寄存器块22的k位校验和存储寄存器22C。
图2B示出了其中校验功能电路24包括多路复用器(MUX)50、字节计数器53、循环冗余校验电路54、中间值寄存器56和比较器61的实施方案。更具体地讲,多路复用器50具有k通道输入60、输入62和输出64。k通道输入60耦接到多通道输入24A,或另选地,用作多通道输入24A,输入62耦接到字节计数器53的输出66,并且输出64连接到循环冗余校验(CRC)电路54的输入68。多路复用器50根据字节计数器53中存储的数目来从多通道输入24A的k*11位选择k位数据。中间值寄存器56具有连接到循环冗余校验电路54的输出70的输入56A、连接到循环冗余校验电路54的输入72的输出56B、k位输出56C(其被配置用于耦接到寄存器块22的k位校验和种子存储寄存器22D的k位输入22N)以及输出56D。
校验功能电路24还包括比较器61,该比较器具有连接到中间值寄存器56的输出56D的输入61A、用于接收恒定预定值的输入24E。作为示例,在输入24E处接收的恒定预定值为十六进制的00。应当注意,在输入24E处接收的恒定预定值不限于十六进制的00,并且可为不同值。简要参见图1,校验功能电路24的输出24B连接到电机控制逻辑电路26的输入26C。输出24B所传送的信号指示从循环冗余校验电路54计算的结果是否正确。存储器控制器21与电机控制逻辑电路26的组合基于输出24B所传输的信号来决定下一行为,即它们决定下一步骤。
应当注意,在制造电机驱动器电路10之后,由制造商将数据写入到电机驱动器电路10的受限数据区段20A并且由制造商生成校验和种子值并将其提供给客户。寄存器块22是易失性存储寄存器块,其中在关断或移除电源时,存储在寄存器块中的数据会丢失。因此,响应于在接通寄存器块22时发生的启动序列来重新计算校验和种子值。然后,向客户销售或交付电机驱动器电路10,该客户将数据写入到非受限数据区段20B中。之后该客户向终端用户销售或运送电机驱动器电路10。
图3是在制造商进行编程之前的数据结构的表示80。数据结构表示80示出了由附图标记82、84和86标识的三列,其中由附图标记82标识的列表示字节计数器53中的计数值或字节数,由附图标记84标识的列表示一次性可编程存储器设备20中的数据,并且由附图标记86标识的列表示在循环冗余校验电路54的操作期间存储在中间值寄存器56中的中间数据。由附图标记90标识的位置表示受限数据区段20A的k位数据子区段RMD0,由附图标记91标识的位置表示受限数据区段20A的k位数据子区段RMD1,由附图标记92标识的位置表示受限数据区段20A的k位数据子区段RMD2,由附图标记93标识的位置表示受限数据区段20A的k位数据子区段RMD3,由附图标记94标识的位置表示非受限数据区段20B的k位数据子区段NMD0,由附图标记95标识的位置表示非受限数据区段20B的k位数据子区段NMD1,由附图标记96标识的位置表示非受限数据区段20B的k位数据子区段NMD2,由附图标记97标识的位置表示非受限数据区段20B的k位数据子区段NMD3,由附图标记98标识的位置表示非受限数据区段20B的k位数据子区段NMD4,由附图标记99标识的位置表示非受限数据区段20B的k位数据子区段NMD5,并且由附图标记100标识的位置表示存储器设备20的k位校验和存储区段20C。
由附图标记88标识的位置表示中间值寄存器56的初始值;由附图标记89标识的位置表示将从中提取校验和种子值的位置;并且由附图标记87标识的位置表示验证值存储位置。应当注意,根据一个实施方案,位置87中的十六进制00的验证值指示该数据无错误,而位置87中的任何其他验证值指示该数据中可存在错误。
应当理解,在已制造电机驱动器电路10之后,所有寄存器(诸如寄存器22A、22B、22C、22D和22E及中间值存储寄存器56)中的值(包括由附图标记87、88和89标识的值)为十六进制的00。还应当理解,电机驱动器电路10的寄存器通过上电复位来复位,以使得它们的值为十六进制的00。这些寄存器包括受限数据区段22A、非受限数据区段22B的寄存器、校验和存储寄存器22C、校验和种子存储寄存器22D、传送寄存器22E和中间值寄存器56。由附图标记87、88和89标识的位置表示在计算过程中的不同时间的中间值寄存器56,即在计算期间更新存储在中间值寄存器56中的值。由附图标记90、91、92、93、94、95、96、97、98、99和100标识的位置分别表示受限数据区段20A、非受限数据区段20B和校验和存储区段20C的区段,并且被制造为初始具有十六进制00的值,即这些区段是存储器设备20的一部分。根据该示例,存储器设备是一次性可编程存储器设备。制造商在向客户运送之前对受限数据区段20A进行编程,即制造商对由附图标记90、91、92和93标识的存储器位置进行编程,这些存储器位置已在图3、图5、图7和图8中标识。
图4是根据本发明的一个实施方案的对电机驱动器电路10进行编程以使得客户可验证写入到电机驱动器电路10的数据的完整性的方法的流程图150。在开始步骤处,电机驱动器电路10在制造之后处于空闲或复位状态(由方框152指示)。
根据一个实施方案并且响应于向电机驱动器电路10施加电源,制造商将数据写入到图2A所示的存储器设备20的受限数据区段20A的k位数据子区段RMD0、RMD1、RMD2和RMD3。将数据写入到存储器设备20的受限数据区段20A由图4的方框154标识。作为示例,制造商已将十六进制11、十六进制22、十六进制33和十六进制44的数据值分别写入到存储器设备20的受限数据区段20A的k位数据子区段RMD0、RMD1、RMD2和RMD3。k位数据子区段NMD0、NMD1、NMD2、NMD3、NMD4和NMD5及k位校验和存储区段20C各自包含十六进制的数据值00,因为尚未将数据写入到这些位置。根据该实施方案,申请人使用四个k位数据子区段(即,子区段RMD0、RMD1、RMD2和RMD3)来存储客户无法访问的信息。另选地,可使用更多数据子区段或更少数据子区段来存储客户无法访问的数据。
循环冗余校验电路54使用数据子区段RMD0、RMD1、RMD2和RMD3中的数据来计算存储在中间值寄存器56中的值。根据该实施方案,使用存储在受限数据区段20A的最后k位数据子区段中的值来计算的中间值用作校验和种子值,即已由存储在k位数据子区段RMD3中的值计算的、存储在中间值寄存器56中的值。当计数器递增时,使用计算结果来更新存储在中间值寄存器56中的值。在该示例中,将从与k位数据子区段RMD3相关联的中间值寄存器56的k位寄存器得出校验和种子值。因此,电机驱动器电路10将使用存储在k位数据子区段RMD3中的数据值计算得出的存储在中间值寄存器56中的校验和种子值与字节计数器53中将出现的计数值关联起来。根据该实施方案,受限数据区段20A的最后k位数据子区段是k位数据子区段RMD3,这将从循环冗余校验电路54得出第四计算结果。第四计算结果存储在中间值寄存器56中并且与十六进制03的计数值相关联,这是由于字节计数器53从十六进制00的值开始计数。在该示例中,校验和种子值是由附图标记89标识的存储位置中存储的值,该计算值从存储在受限数据区段20A的k位子区段RMD3中的值得出。由附图标记89标识的位置处的值(即,十六进制25)存储在校验和种子存储寄存器22D中。应当注意,计数值从十六进制00开始,因此由十六进制3的计数值标识的存储位置是第四存储位置,即由附图标记89标识的存储位置。
通过引用存储在中间值寄存器56中的值的计算,存储器控制器21生成读/写信号,从而使电机驱动器电路10分别读取存储在受限数据区段20A的k位数据子区段RMD0、RMD1、RMD2和RMD3中的数据、存储在非受限数据存储位置20B的k位数据子区段NMD0、NMD1、NMD2、NMD3、NMD4和NMD5中的数据以及存储在校验和存储区段20C中的校验和值,并且将该数据写入到寄存器块22的受限数据区段22A的对应数据子区段RRD0、RRD1、RRD2和RRD3、非受限数据区段22B的数据子区段NRD0、NRD1、NRD2、NRD3、NRD4和NRD5以及校验和存储区段22C。分别从存储器设备20的数据子区段RMD0、RMD1、RMD2、RMD3、NMD0、NMD1、NMD2、NMD3、NMD4和NMD5以及校验和存储区段20C读取数据并且将该数据写入到寄存器块22的数据子区段RRD0、RRD1、RRD2、RRD3、NRD0、NRD1、NRD2、NRD3、NRD4和NRD5以及校验和存储寄存器22C可被称为复制该数据并且由流程图150中的方框156标识。
参见图4和图5,存储器控制器21:将该数据从存储器设备20的数据子区段RMD0(由图5的附图标记90标识)复制到寄存器块22的数据子区段RRD0中;将该数据从存储器设备20的数据子区段RMD1(由图5的附图标记91标识)复制到寄存器块22的数据子区段RRD1中;将该数据从存储器设备20的数据子区段RMD2(由图5的附图标记92标识)复制到寄存器块22的数据子区段RRD2中;将该数据从存储器设备20的数据子区段RMD3(由图5中的附图标记93标识)复制到寄存器块22的数据子区段RRD3中;将该数据从存储器设备20的数据子区段NMD0(由图5中的附图标记94标识)复制到寄存器块22的数据子区段NRD0中;将该数据从存储器设备20的数据子区段NMD1(由图5中的附图标记95标识)复制到寄存器块22的数据子区段NRD1中;将该数据从存储器设备20的数据子区段NMD2(由图5中的附图标记96标识)复制到寄存器块22的数据子区段NRD2中;将该数据从存储器设备20的数据子区段NMD3(由图5中的附图标记97标识)复制到寄存器块22的数据子区段NRD3中;将该数据从存储器设备20的数据子区段NMD4(由图5中的附图标记98标识)复制到寄存器块22的数据子区段NRD4中;将该数据从存储器设备20的数据子区段NMD5(由图5中的附图标记99标识)复制到寄存器块22的数据子区段NRD5中;并且将该数据从k位校验和存储区段20C复制到k位校验和存储寄存器22C中。该写操作可在电机驱动器电路10内自动地发生以在内部将数据从存储器设备20传输到寄存器块22。在图5所示的示例中,将十六进制的11写入到数据存储区段RMD0(由附图标记90标识);将十六进制的22写入到数据存储区段RMD1(由附图标记91标识);将十六进制的33写入到数据存储区段RMD2(由附图标记92标识);将十六进制的44写入到数据存储区段RMD3(由附图标记93标识);将十六进制的00写入到数据存储区段NMD0(由附图标记94标识);将十六进制的00写入到数据存储区段NMD1(由附图标记95标识);将十六进制的00写入到数据存储区段NMD2(由附图标记96标识);将十六进制的00写入到数据存储区段NMD3(由附图标记97标识);将十六进制的00写入到数据存储区段NMD4(由附图标记98标识);将十六进制的00写入到数据存储区段NMD5(由附图标记99标识);并且将十六进制的00写入到k位校验和存储寄存器22C。本领域技术人员应当理解,通常先从存储器位置检索或读取数据并且将该数据存储或写入到寄存器,之后再使用该数据执行数学或逻辑运算。
现在参见图4的方框158所示的步骤并且参见图5,校验功能电路24生成校验和种子值。校验功能电路24使用存储在寄存器块22的k位数据子区段RRD0、RRD1、RRD2和RRD3中的数据来执行校验和种子值计算,该数据表示存储器设备20的k位数据子区段RMD0、RMD1、RMD2和RMD3中的数据。
循环冗余校验电路54顺序地使用存储在受限数据子区段22A和22B中的数据值以及存储在校验和存储寄存器22C中的数据值及中间值来计算寄存器块22中的每个数据存储位置的更新的中间值并且生成校验和种子值和验证值。例如,循环冗余校验电路54使用前一中间值和当前数据值来生成更新的中间值。在图5所示的示例中,提供00的初始中间十六进制值并且循环冗余校验电路54使用该值及由附图标记90标识的存储位置中的十六进制数据值11来计算更新的中间十六进制值E4。循环冗余校验电路54继续基于前一中间十六进制值和当前数据十六进制值来生成更新的中间十六进制值。在图5的示例中,循环冗余校验电路54基于前一中间十六进制值E4及由附图标记91标识的存储位置中的数据十六进制值22来生成更新的中间十六进制值A1。循环冗余校验电路54基于前一中间十六进制值A1及由附图标记92标识的存储位置中的数据十六进制值33来生成更新的中间十六进制值4F。循环冗余校验电路54基于前一中间十六进制值4F及由附图标记93标识的存储位置中的数据十六进制值44来生成更新的中间十六进制值25。
校验功能电路24继续顺序地计算中间值。应当注意,由附图标记94、95、96、97、98、99和100标识的存储位置中的值是十六进制的00并且是从电机驱动器电路10的制造产生的初始值,即它们不是编程的值。因此,循环冗余校验电路54基于前一中间十六进制值25及由附图标记94标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值2B。循环冗余校验电路54基于前一中间十六进制值2B及由附图标记95标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值3A。循环冗余校验电路54基于前一中间十六进制值3A及由附图标记96标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值DE。循环冗余校验电路54基于前一中间十六进制值DE及由附图标记97标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值FA。循环冗余校验电路54基于前一中间十六进制值FA及由附图标记98标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值9C。循环冗余校验电路54基于前一中间十六进制值9C及由附图标记99标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值5E。循环冗余校验电路54基于前一中间十六进制值5E及由附图标记100标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值86(在由附图标记87标识的方框中示出),其中由附图标记100标识的存储位置对应于k位校验和存储寄存器22C。应当注意,这些值是十六进制值并且由附图标记89标识的位置中的值25用作校验和种子值。虽然这些值被示出为十六进制值,但这不是限制。这些值可为其他数字格式或其他数据格式。校验和种子值为客户所知,但由附图标记90、91、92和93标识的存储位置中的数据值不为电机驱动器电路10的制造商以外的任何人所知。校验和种子值表示存储在k位数据子区段RMD0、RMD1、RMD2和RMD3中的数据。电机驱动器电路10将校验和种子值写入到k位校验和种子存储寄存器22D并且返回到空闲状态。
应当注意,校验功能电路24生成多个中间值。申请人已设计了一种技术,按照该技术,中间值之一用作校验和种子值。该值由字节计数器53中的计数值标识。根据本示例,与校验和种子相关联的计数值为3,因此字节计数器53中的计数值为3时中间存储寄存器56中的值用作校验和种子值。在该示例中,当字节计数器53中的计数值为3时,十六进制25的值位于中间存储寄存器56中。存储在中间寄存器56中的值由图5中的列86示出,并且与3计数值相关联的值由附图标记89标识。因此,校验和种子值为十六进制25。因此,校验功能电路24经由数据总线互连19将校验和种子值25写入到k位校验和种子存储寄存器22D。
应当理解,字节计数器53中标识校验和种子值的计数值不限于为3。其他应用可使用少于四个受限k位数据子区段或多于四个k位数据子区段。因此,标识校验和种子值的计数值可小于3或大于3。
将进一步参照图5、图6和图7来描述验证存储器设备20中的数据的完整性的操作。图6是根据本发明的一个实施方案的用于验证电机驱动器电路(如电机驱动器电路10)所使用的数据的完整性的方法的流程图200。图5是在制造商对电机驱动器电路10进行编程之后存储在存储器设备20中的数据的表示,即其是可由电机驱动器电路10的制造商存储在受限数据区段20A、非受限数据区段20B、字节计数器53和中间值寄存器56中并且交付给客户的数据的示例。图7是在启动之后且在客户已对电机驱动器电路10进行编程之后存储在受限数据区段20A、非受限数据区段20B、校验和存储区段20C、字节计数器53中的计数值和中间值寄存器56中的数据的表示。另外,图7示出了该计算自上而下进行。
如图4的示例中所述,制造商已对受限数据区段20A进行编程,使得将十六进制的11写入到数据存储子区段RMD0(由附图标记90标识);将十六进制的22写入到数据存储子区段RMD1(由附图标记91标识);将十六进制的33写入到数据存储子区段RMD2(由附图标记92标识);并且将十六进制的44写入到数据存储子区段RMD3(由附图标记93标识)。如上所讨论,电机驱动器电路10的制造使得十六进制的00位于数据存储子区段NMD0、NMD1、NMD2、NMD3、NMD4和NMD5(分别由附图标记94、95、96、97、98和99标识)每一者中并位于由附图标记100标识的校验和存储区段中,而且位于由附图标记87指示的验证值存储位置中、位于由附图标记88和89标识的中间存储位置中。因此,在由方框202指示的空闲或复位状态下,数据存储子区段RMD0包含十六进制的11,数据存储子区段RMD1包含十六进制的22,数据存储子区段RMD2包含十六进制的33,并且数据存储子区段RMD3包含十六进制的44。数据存储子区段NMD0,NMD1,NMD2,NMD3,NMD4和NMD5、校验和存储区段100、验证值存储位置87以及中间存储位置88和89各自包含十六进制的00。写入到受限数据区段20A的数据包括用于模拟电路的修整数据以及用于电机驱动器电路10的其他数据,这些数据不需要由例如客户设定。
响应于被初始加电,电机驱动器电路10将数据从存储器设备20的受限数据区段20A、非受限数据区段20B和校验和存储区段20C复制到寄存器块22的受限数据区段22A、非受限数据区段22B和校验和存储寄存器22C,如由沿着从方框202到方框206的附图标记240的路径所指示。更具体地讲,存储器控制器21生成读/写信号,从而使电机驱动器电路10分别读取存储在受限数据区段20A的数据子区段RMD0、RMD1、RMD2和RMD3中的数据、读取存储在非受限数据存储位置20B的数据子区段NMD0、NMD1、NMD2、NMD3、NMD4和NMD5中的数据以及读取存储在校验和存储区段20C中的校验和值,并且将该数据写入到受限数据区段22A的对应数据子区段RRD0、RRD1、RRD2和RRD3、非受限数据区段22B的数据子区段NRD0、NRD1、NRD2、NRD3、NRD4和NRD5以及校验和存储寄存器22C。分别从数据子区段RMD0、RMD1、RMD2、RMD3、NMD0、NMD1、NMD2、NMD3、NMD4和NMD5以及校验和存储区段20C读取数据并且将该数据写入到数据子区段RRD0、RRD1、RRD2、RRD3、NRD0、NRD1、NRD2、NRD3、NRD4和NRD5以及校验和存储寄存器22C可被称为复制该数据并且由流程图200中的方框206标识。
因此,响应于来自存储器控制器21的读/写信号,电机驱动器电路10:将该数据从存储器设备20的数据子区段RMD0(由图5的附图标记90标识)复制到寄存器块22的数据子区段RRD0中;将该数据从存储器设备20的数据子区段RMD1(由图5的附图标记91标识)复制到寄存器块22的数据子区段RRD1中;将该数据从存储器设备20的数据子区段RMD2(由图5的附图标记92标识)复制到寄存器块22的数据子区段RRD2中;将该数据从存储器设备20的数据子区段RMD3(由图5中的附图标记93标识)复制到寄存器块22的数据子区段RRD3中;并且将该数据从k位校验和存储区段20C复制到k位校验和存储寄存器22C中。另外,电机驱动器电路10将来自存储器设备20的数据子区段NMD0、NMD1、NMD2、NMD3、NMD4、NMD5及校验和存储区段20C的数据值分别复制到数据子区段NRD0、NRD1、NRD2、NRD3、NRD4和NRD5中并将校验和存储区段20C复制到校验和存储寄存器22C中。
该写操作可在电机驱动器电路10内自动地发生以在内部将数据从存储器设备20传输到寄存器块22。在图5所示的示例中,将十六进制的11写入到数据存储子区段RRD0(由附图标记90标识);将十六进制的22写入到数据存储子区段RRD1(由附图标记91标识);将十六进制的33写入到数据存储子区段RRD2(由附图标记92标识);将十六进制的44写入到数据子存储区段RRD3(由附图标记93标识);将十六进制的00写入到子数据存储区段NRD0(由附图标记94标识);将十六进制的00写入到数据存储子区段NRD1(由附图标记95标识);将十六进制的00写入到数据存储子区段NRD2(由附图标记96标识);将十六进制的00写入到数据存储子区段NRD3(由附图标记97标识);将十六进制的00写入到数据存储子区段NRD4(由附图标记98标识);十六进制的00被示出为被写入到数据存储子区段NRD5(由附图标记99标识);并且十六进制的00被示出为被写入到k位校验和存储寄存器22C。本领域技术人员应当理解,通常先从存储器位置检索或读取数据并且将该数据存储或写入到寄存器,之后再使用该数据执行数学或逻辑运算。因此,寄存器块22的k位数据存储位置RRDO、RRD1、RRD2、RRD3、NRD0、NRD1、NRD2、NRD3、NRD4、NRD5及校验和寄存器22C中的数据值分别等于或匹配存储器设备20的k位数据存储位置RMDO、RMD1、RMD2、RMD3、NMD0、NMD1、NMD2、NMD3、NMD4、NMD5及校验和存储区段20C中的数据值。
现在参见图6的方框208所示的步骤,校验功能电路24使用存储在寄存器块22的k位数据子区段RRD0、RRD1、RRD2和RRD3中的数据来计算校验和种子值,该数据表示存储器设备20的k位数据子区段RMD0、RMD1、RMD2和RMD3中的数据。
循环冗余校验电路54顺序地使用存储在受限数据子区段22A和22B、校验和存储寄存器22C中的数据值及中间值来计算寄存器块22中的每个数据存储位置的更新的中间值并且生成校验和种子值和校验和值。例如,循环冗余校验电路54使用前一中间值和当前数据值来生成更新的中间值。在该阶段,由附图标记90-100和88标识的位置的值与图5所示的值相同。在图5所示的示例中,提供00的初始中间十六进制值并且循环冗余校验电路54使用该值及由附图标记90标识的存储位置中的十六进制数据值11来计算更新的中间十六进制值E4。循环冗余校验电路54继续基于前一中间十六进制值和当前数据十六进制值来生成更新的中间十六进制值。在图5的示例中,循环冗余校验电路54基于前一中间十六进制值E4及由附图标记91标识的存储位置中的数据十六进制值22来生成更新的中间十六进制值A1。循环冗余校验电路54基于前一中间十六进制值A1及由附图标记92标识的存储位置中的数据十六进制值33来生成更新的中间十六进制值4F。循环冗余校验电路54基于前一中间十六进制值4F及由附图标记93标识的存储位置中的数据十六进制值44来生成更新的中间十六进制值25。
校验功能电路24继续顺序地计算中间值。应当注意,由附图标记94、95、96、97、98、99和100标识的存储位置中的值是十六进制的00并且是从电机驱动器电路10的制造产生的初始值,即它们不是编程的值。因此,循环冗余校验电路54基于前一中间十六进制值25及由附图标记94标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值2B。循环冗余校验电路54基于前一中间十六进制值2B及由附图标记95标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值3A。循环冗余校验电路54基于前一中间十六进制值3A及由附图标记96标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值DE。循环冗余校验电路54基于前一中间十六进制值DE及由附图标记97标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值FA。循环冗余校验电路54基于前一中间十六进制值FA及由附图标记98标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值9C。循环冗余校验电路54基于前一中间十六进制值9C及由附图标记99标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值5E。循环冗余校验电路54基于前一中间十六进制值5E及由附图标记100标识的存储位置中的数据十六进制值00来生成更新的中间十六进制值86(在由附图标记87标识的方框中示出),该由附图标记100标识的存储位置对应于k位校验和存储寄存器22C。应当注意,这些值是十六进制值并且由附图标记89标识的位置中的值25用作校验和种子值。虽然这些值被示出为十六进制值,但这不是限制。这些值可为其他数字格式或其他数据格式。校验和种子值为客户所知,但由附图标记90、91、92和93标识的存储位置中的数据值不为电机驱动器电路10的制造商以外的任何人所知。校验和种子值表示存储在k位数据子区段RMD0、RMD1、RMD2和RMD3中的数据。电机驱动器电路10将校验和种子值写入到k位校验和种子存储寄存器22D。
应当理解,校验功能电路24生成多个中间值。申请人已设计了一种技术,按照该技术,中间值之一用作校验和种子值。该值由存储在字节计数器53中的计数值标识。根据本示例,计数值为3并且与3计数值相关联的值位于由附图标记89标识的存储位置中且用作校验和种子值,即十六进制的25。因此,校验功能电路24将校验和种子值25写入到k位校验和种子存储寄存器22D。
仍参见校验和计算方框208且如上所讨论,数据存储子区段NMD5中的数据的最低有效位用作使能位。响应于最低有效位为零(0)或校验和计算为存储位置87中的十六进制00,电机驱动器电路10返回到空闲状态。响应于最低有效位为一(1)且校验和结果不等于十六进制00,即验证值存储位置87中的值不等于十六进制00,电机驱动器电路10继续到方框210以重新计算校验和值,从而确定该数据是否已被损坏或出错。在该示例中,存储在数据存储子区段NMD5中的所有位都为零,因此电机驱动器电路10返回到由方框202指示的空闲状态。应当注意,当数据存储子区段NMD5中的最低有效位为零(0)时,校验和功能被称为被禁用,并且当数据存储子区段NMD5中的最低有效位为一(1)时,校验和功能被称为被启用。
响应于处于空闲模式(方框202),电机驱动器电路10将存储在校验和种子存储寄存器22D中的校验和种子值传输到传送寄存器22E。然后MCU 14经由串行外围接口(SPI)15从传送寄存器22E读取校验和种子值。MCU 14使用待写入到非受限数据区段22B的数据、校验和种子值、用作中间值寄存器56(图2所示)的初始值的值以及循环冗余方程来计算校验和值。
MCU 14生成触发信号以将存储在MCU 14中的数据(例如,十六进制55)写入到数据子区段NMD0。更具体地讲,触发信号是经由串行外围接口17将该数据写入到传送寄存器22E的寄存器写信号。响应于该数据被写入到传送寄存器22E,存储器控制器21生成读/写信号,该读/写信号将该数据从传送寄存器22E复制到数据子区段NMD0(由方框204指示)。响应于该数据被写入到数据子区段NMD0中,存储器控制器21生成读/写信号以经由数据总线互连32将该数据从数据子区段NMD0传输到数据子区段NRD0(由方框206指示)。
校验功能电路24使用存储在寄存器块22的k位数据子区段RRD0、RRD1、RRD2和RRD3中的数据来执行校验和种子值计算,该数据表示存储器设备20的k位数据子区段RMD0、RMD1、RMD2和RMD3中用于计算校验和种子值的数据。
循环冗余校验电路54顺序地使用存储在受限数据子区段22A和22B中的数据值、校验和存储寄存器22C中的数据值及中间值来计算寄存器块22中的每个数据存储位置的更新的中间值并且生成校验和种子值和验证值。
如上所讨论,数据存储子区段NMD5中的数据的最低有效位用作使能位。在由方框208标识的步骤处,存储在数据存储子区段NMD5中的所有位都为零,因此电机驱动器电路10返回到由方框202指示的空闲状态。
MCU 14生成另一个触发信号以将存储在MCU 14中的数据(例如,十六进制66)写入到数据子区段NMD1。更具体地讲,触发信号是经由串行外围接口17将该数据写入到传送寄存器22E的寄存器写信号。响应于该数据被写入到传送寄存器22E,存储器控制器21生成读/写信号,该读/写信号将该数据从传送寄存器22E复制到数据子区段NMD1(由方框204指示)。响应于该数据被写入到数据子区段NMD1中,存储器控制器21生成读/写信号以经由数据总线互连32将该数据从数据子区段NMD1传输到数据子区段NRD1(由方框206指示)。
校验功能电路24使用存储在寄存器块22的k位数据子区段RRD0、RRD1、RRD2和RRD3中的数据来执行校验和种子值计算,该数据表示存储器设备20的k位数据子区段RMD0、RMD1、RMD2和RMD3中用于计算校验和种子值的数据。
循环冗余校验电路54顺序地使用存储在受限数据子区段22A和22B中的数据值、校验和存储寄存器22C中的数据值及中间值来计算寄存器块22中的每个数据存储位置的更新的中间值并且生成校验和种子值和验证值。
如上所讨论,数据存储子区段NMD5中的数据的最低有效位用作使能位。由于存储在数据存储子区段NMD5中的所有位都为零,因此电机驱动器电路10返回到由方框202指示的空闲状态。
MCU 14生成另一个触发信号以将存储在MCU 14中的数据(例如,十六进制77)写入到数据子区段NMD2。更具体地讲,触发信号是经由串行外围接口17将该数据写入到传送寄存器22E的寄存器写信号。响应于该数据被写入到传送寄存器22E,存储器控制器21生成读/写信号,该读/写信号将该数据从传送寄存器22E复制到数据子区段NMD2(由方框204指示)。响应于该数据被写入到数据子区段NMD2中,存储器控制器21生成读/写信号以经由数据总线互连32将该数据从数据子区段NMD2传输到数据子区段NRD2(由方框206指示)。
校验功能电路24使用存储在寄存器块22的k位数据子区段RRD0、RRD1、RRD2和RRD3中的数据来执行校验和种子值计算,该数据表示存储器设备20的k位数据子区段RMD0、RMD1、RMD2和RMD3中用于计算校验和种子值的数据。
循环冗余校验电路54顺序地使用存储在受限数据子区段22A和22B中的数据值、校验和存储寄存器22C中的数据值及中间值来计算寄存器块22中的每个数据存储位置的更新的中间值并且生成校验和种子值和验证值。
如上所讨论,数据存储子区段NMD5中的数据的最低有效位用作使能位。由于存储在数据存储子区段NMD5中的所有位都为零,因此电机驱动器电路10返回到由方框202指示的空闲状态。
MCU 14生成另一个触发信号以将存储在MCU 14中的数据(例如,十六进制88)写入到数据子区段NMD3。更具体地讲,触发信号是经由串行外围接口17将该数据写入到传送寄存器22E的寄存器写信号。响应于该数据被写入到传送寄存器22E,存储器控制器21生成读/写信号,该读/写信号将该数据从传送寄存器22E复制到数据子区段NMD3(由方框204指示)。响应于该数据被写入到数据子区段NMD3中,存储器控制器21生成读/写信号以经由数据总线互连32将该数据从数据子区段NMD3传输到数据子区段NRD3(由方框206指示)。
校验功能电路24使用存储在寄存器块22的k位数据子区段RRD0、RRD1、RRD2和RRD3中的数据来执行校验和种子值计算,该数据表示存储器设备20的k位数据子区段RMD0、RMD1、RMD2和RMD3中用于计算校验和种子值的数据。
循环冗余校验电路54顺序地使用存储在受限数据子区段22A和22B中的数据值、校验和存储寄存器22C中的数据值及中间值来计算寄存器块22中的每个数据存储位置的更新的中间值并且生成校验和种子值和验证值。
如上所讨论,数据存储子区段NMD5中的数据的最低有效位用作使能位。由于存储在数据存储子区段NMD5中的所有位都为零,因此电机驱动器电路10返回到由方框202指示的空闲状态。
MCU 14生成另一个触发信号以将存储在MCU 14中的数据(例如,十六进制99)写入到数据子区段NMD4。更具体地讲,触发信号是经由串行外围接口17将该数据写入到传送寄存器22E的寄存器写信号。响应于该数据被写入到传送寄存器22E,存储器控制器21生成读/写信号,该读/写信号将该数据从传送寄存器22E复制到数据子区段NMD4(由方框204指示)。响应于该数据被写入到数据子区段NMD4中,存储器控制器21生成读/写信号以经由数据总线互连32将该数据从数据子区段NMD4传输到数据子区段NRD4(由方框206指示)。
校验功能电路24使用存储在寄存器块22的k位数据子区段RRD0、RRD1、RRD2和RRD3中的数据来执行校验和种子值计算,该数据表示存储器设备20的k位数据子区段RMD0、RMD1、RMD2和RMD3中用于计算校验和种子值的数据。
循环冗余校验电路54顺序地使用存储在受限数据子区段22A和22B中的数据值、校验和存储寄存器22C中的数据值及中间值来计算寄存器块22中的每个数据存储位置的更新的中间值并且生成校验和种子值和验证值。
如上所讨论,数据存储子区段NMD5中的数据的最低有效位用作使能位。响应于存储在数据存储子区段NMD5中的所有位都为零,电机驱动器电路10返回到由方框202指示的空闲状态。
MCU 14生成另一个触发信号以将存储在MCU 14中的数据(例如,十六进制AB)写入到数据子区段NMD5。更具体地讲,触发信号是经由串行外围接口17将该数据写入到传送寄存器22E的寄存器写信号。响应于该数据被写入到传送寄存器22E,存储器控制器21生成读/写信号,该读/写信号将该数据从传送寄存器22E复制到数据子区段NMD5(由方框204指示)。响应于该数据被写入到数据子区段NMD5,存储器控制器21生成读/写信号以经由数据总线互连32将该数据的最低有效位(即,使能位)以外的所有位从数据子区段NMD5传输到数据子区段NRD5(由方框206指示)。因此不传输使能位并且其保持为零(0)。
校验功能电路24使用存储在寄存器块22的k位数据子区段RRD0、RRD1、RRD2和RRD3中的数据来执行校验和种子值计算,该数据表示存储器设备20的k位数据子区段RMD0、RMD1、RMD2和RMD3中用于计算校验和种子值的数据。
循环冗余校验电路54顺序地使用存储在受限数据子区段22A和22B中的数据值、校验和存储寄存器22C中的数据值及中间值来计算寄存器块22中的每个数据存储位置的更新的中间值并且生成校验和种子值和验证值。
如上所讨论,数据存储子区段NMD5中的数据的最低有效位用作使能位。由于存储在数据存储子区段NMD5中的所有位都为零,因此电机驱动器电路10返回到由方框202指示的空闲状态。
MCU 14生成另一个触发信号以将MCU 14中计算的校验和值(例如,十六进制55)写入到校验和存储寄存器22C。更具体地讲,触发信号是经由串行外围接口17将校验和值写入到传送寄存器22E的寄存器写信号。响应于该数据被写入到传送寄存器22E,存储器控制器21生成读/写信号,该读/写信号将校验和值从传送寄存器22E复制到数据校验和寄存器22C(由方框204指示)。响应于校验和值被写入到校验和寄存器22C中,存储器控制器21生成读/写信号以经由数据总线互连34将校验和值从校验和存储区段20C传输到校验和寄存器22C(由方框206指示)。
校验功能电路24使用存储在寄存器块22的k位数据子区段RRD0、RRD1、RRD2和RRD3中的数据来执行校验和种子值计算,该数据表示存储器设备20的k位数据子区段RMD0、RMD1、RMD2和RMD3中用于计算校验和种子值的数据。
循环冗余校验电路54顺序地使用存储在受限数据子区段22A和22B中的数据值、校验和存储寄存器22C中的数据值及中间值来计算寄存器块22中的每个数据存储位置的更新的中间值并且生成校验和种子值和验证值。
如上所讨论,数据存储子区段NMD5中的数据的最低有效位用作使能位。由于存储在数据存储子区段NMD5中的所有位都为零,因此电机驱动器电路10返回到由方框202指示的空闲状态。
存储器控制器21生成读/写信号以将所有数据从数据子区段NMD5传输到数据子区段NRD5。在这种情况下,使能位为1,即经由数据总线互连32的使能位(由方框206指示)。
校验功能电路24使用存储在寄存器块22的k位数据子区段RRD0、RRD1、RRD2和RRD3中的数据来执行校验和种子值计算,该数据表示存储器设备20的k位数据子区段RMD0、RMD1、RMD2和RMD3中用于计算校验和种子值的数据。
循环冗余校验电路54顺序地使用存储在受限数据子区段22A和22B中的数据值、校验和存储寄存器22C中的数据值及中间值来计算寄存器块22中的每个数据存储位置的更新的中间值并且生成校验和种子值和验证值。
如上所讨论,数据存储子区段NMD5中的数据的最低有效位用作使能位。由于存储在数据存储子区段NMD5中的最低有效位为1,因此电机驱动器电路10确定是否循环冗余校验电路计算指示是否已发生错误。电机驱动器电路10将预定值与循环冗余校验电路54所计算并存储在由附图标记87标识的位置中的中间值进行比较。存储在由附图标记87标识的位置中的值可被称为验证值。根据该实施方案,预定值为十六进制00,并且由附图标记87标识的存储位置中的中间值为十六进制00。因此,这些值匹配。根据一个实施方案,图2所示的比较器61输出逻辑零值。由于这些值匹配,因此电机驱动器电路10进入由附图标记202指示的空闲状态。
如果这些值不匹配,则电机驱动器电路10生成错误信号,该错误信号从指示器设备29传输。根据指示器设备29为LED的实施方案,可发出光。根据指示器设备29为蜂鸣器或喇叭的实施方案,可发出声音。另外,电机驱动器电路10可生成停止电机12的信号。
出于完整性,图8示出了预定值与循环冗余校验电路54所计算并与由附图标记87标识的位置相关联的中间值不匹配的情况。预定值为十六进制00,并且由附图标记87标识的存储位置中的中间值为十六进制9B,因此这些值不匹配。这是因由附图标记96标识的位置中的错误引起的。在该示例中,由附图标记标识的位置处的值为7B,但其应为77(如图7所示)。因此,已发生数据错误。
图6的流程图200还示出了电机驱动器电路10在电机旋转期间定期地执行数据完整性校验。在这些校验期间,电机驱动器电路10从由方框202标识的空闲状态转变为沿着由附图标记250指示的路径的校验和计算。因此,电机驱动器电路10执行上文参照方框208描述的步骤。如果校验和功能被禁用或校验和结果为十六进制00,则电机驱动器电路10返回到空闲状态。如果校验和功能被启用并且校验和结果不等于十六进制00,则电机驱动器电路10继续上文参照方框210和212描述的步骤。
图9是根据本发明的一个实施方案的被配置用于驱动电机12的电机驱动器电路10的框图。图9中示出的是电机驱动器电路10,该电机驱动器电路具有耦接到数据源的输入和耦接到电机12的输出。图9所示的配置与图1的配置的不同之处在于图1的MCU 14被替换为数据源114。数据源114可为存储器设备、包含例如查找表的电路等。数据源114具有经由串行外围接口17连接到寄存器块22的输入114C以及通过串行外围接口15连接到校验和种子存储寄存器22D的输出114A。
到目前为止,应当理解,已提供了用于验证电机驱动器电路中的数据完整性的方法和结构。提供了电机驱动器电路,该电机驱动器电路包括存储器设备、寄存器块、存储器控制器、校验功能电路24和电机控制逻辑电路26。将数据写入到存储器设备,该数据包括用于模拟电路的修整数据以及用于电机驱动器电路的数据,这些数据不需要由例如客户设定。将该数据编码在校验和种子值中。使用校验和种子值和该数据来验证由客户向存储器设备提供的该数据的完整性。该技术允许制造商将数据写入到存储器设备而不必向客户透露该数据的值。
根据本发明的实施方案,将数据从一次性可编程存储器复制到寄存器块并且在电机驱动器电路启动时自动地执行校验和计算。在计算校验和值的时间期间确定校验和种子值。校验和种子值表示电机驱动器电路内的存储器位置的内容。响应于不正确的校验和计算,向电路(诸如微控制器单元)通知该错误。任选地,可生成控制信号,该控制信号起动电机的操作。电机控制电路可被配置为使用来自微控制器单元的命令来起动寄存器的校验和计算。
循环冗余校验电路54可使用例如多项式,诸如x8+x6+x3+x2+1。
根据本发明的一个实施方案,用于验证存储器设备中的数据的方法包括:将该数据复制到寄存器中;由复制到寄存器中的该数据来确定校验和种子值和校验和值;使用校验和种子值和校验和值来确定验证值,这包括使用错误检测技术来生成验证值,其中错误检测技术包括使用循环冗余校验技术;以及使用验证值来验证存储器设备中的该数据的完整性。
根据本发明的另一个实施方案,用于验证存储器设备中的数据的方法包括:将该数据复制到寄存器中;由复制到寄存器中的该数据来确定校验和种子值和校验和值;使用校验和种子值和校验和值来确定验证值,包括使用查找表来生成验证值;以及使用验证值来验证存储器设备中的该数据的完整性。
根据本发明的另一个实施方案,用于验证存储器设备中的数据的方法包括:将该数据复制到寄存器中;由复制到寄存器中的该数据来确定校验和种子值和校验和值;使用校验和种子值和校验和值来确定验证值;以及使用验证值来验证存储器设备中的该数据的完整性,从而验证存储器设备的第一数据区段中的该数据的完整性,这包括:将验证值与预定值进行比较;并且响应于验证值等于零而生成验证信号。
根据本发明的另一个实施方案,用于验证存储器设备中的数据的方法包括:将该数据复制到寄存器中;由复制到寄存器中的该数据来确定校验和种子值和校验和值;使用校验和种子值和校验和值来确定验证值;以及使用验证值来验证存储器设备中的该数据的完整性,从而验证存储器设备的第一数据区段中的该数据的完整性,这包括:将验证值与预定值进行比较;响应于验证值等于预定值而生成验证信号;并且响应于验证值和预定值不相等而生成错误信号。
根据本发明的另一个实施方案,用于验证存储器设备中的数据的方法包括:将该数据复制到寄存器中;由复制到寄存器中的该数据来确定校验和种子值和校验和值,这包括使用循环冗余校验技术顺序地确定中间值并且将中间值之一用作校验和种子值;使用校验和种子值和校验和值来确定验证值;以及使用验证值来验证存储器设备中的该数据的完整性。
根据本发明的另一个实施方案,用于验证存储器设备中的数据的方法包括:将该数据复制到寄存器中并且将复制到寄存器的该数据的一个数据值的最低有效位用作使能位;由复制到寄存器中的该数据来确定校验和种子值和校验和值,包括使用循环冗余校验技术顺序地确定中间值并且将中间值之一用作校验和种子值;使用校验和种子值和校验和值来确定验证值;以及使用验证值来验证存储器设备中的该数据的完整性。
根据本发明的另一个实施方案,用于验证存储器设备中的数据的方法包括:将该数据复制到寄存器中并且将复制到寄存器的该数据的一个数据值的最低有效位用作使能位;由复制到寄存器中的该数据来确定校验和种子值和校验和值,包括使用循环冗余校验技术顺序地确定中间值并且将中间值之一用作校验和种子值;使用校验和种子值和校验和值来确定验证值;使用验证值来验证存储器设备中的该数据的完整性;以及响应于使能位被启用并且验证值指示该数据中的错误:将该数据重新复制到寄存器中;由重新复制到寄存器中的该数据来重新确定校验和种子值和校验和值;使用校验和种子值和校验和值来重新确定验证值;并且使用重新确定的验证值来验证存储器设备中的该数据的完整性。
根据本发明的另一个实施方案,数据完整性验证方法包括:提供寄存器块,该寄存器块具有第一数据区段、第二数据区段、校验和存储区段和校验和种子存储寄存器;将数据复制到第一数据区段并复制到第二数据区段;使用复制到第一数据区段的数据、复制到第二数据区段的数据以及初始中间值来顺序地计算中间值,其中第一计算的中间值用作校验和种子值,第二计算的中间值用作校验和值,并且第三计算的中间值用作验证值,其中使用循环冗余校验技术来执行计算第一校验和种子值;以及使用验证值来验证复制到非受限数据区段的该数据的完整性。
根据本发明的另一个实施方案,数据完整性验证方法包括:提供寄存器块,该寄存器块具有第一数据区段、第二数据区段、校验和存储区段和校验和种子存储寄存器;将数据复制到第一数据区段并复制到第二数据区段,这包括从微控制器单元或数据存储结构中的一者读取数据并且将已被读取的该数据写入到存储器设备的第一区段和第二区段;使用复制到第一数据区段的数据、复制到第二数据区段的数据以及初始中间值来顺序地计算中间值,其中第一计算的中间值用作校验和种子值,第二计算的中间值用作校验和值,并且第三计算的中间值用作验证值;以及使用验证值来验证复制到非受限数据区段的该数据的完整性。
根据本发明的另一个实施方案,数据完整性验证方法包括:提供寄存器块,该寄存器块具有第一数据区段、第二数据区段、校验和存储区段和校验和种子存储寄存器;将数据复制到第一数据区段并复制到第二数据区段;使用复制到第一数据区段的数据、复制到第二数据区段的数据以及初始中间值来顺序地计算中间值,其中第一计算的中间值用作校验和种子值,第二计算的中间值用作校验和值,并且第三计算的中间值用作验证值,其中第一计算的中间值由作为第一数据区段的最后数据存储寄存器的数据存储寄存器的数据值计算;以及使用验证值来验证复制到非受限数据区段的该数据的完整性。
虽然本文已公开了某些优选实施方案和方法,但根据前述公开内容,对本领域技术人员显而易见的是,可以对这些实施方案和方法进行变更和修改,而不脱离本发明的实质和范围。意图是本发明应仅限于所附权利要求书及适用法律的规定和法则所要求的范围。
Claims (10)
1.一种用于验证存储器设备中的数据的方法,所述存储器设备具有第一受限数据区段、第一非受限数据区段以及校验和存储区段,所述方法包括:
提供寄存器块,所述寄存器块具有第一受限数据区段、第一非受限数据区段、第一校验和存储寄存器以及第一校验和种子存储寄存器;
将所述数据复制到所述寄存器块中,其中,将所述存储器设备的第一受限数据区段中的数据复制到所述寄存器块的第一受限数据区段,将所述存储器设备的第一非受限数据区段中的数据复制到所述寄存器块的第一非受限数据区段,并且将所述存储器设备的第一校验和存储区段中的数据复制到所述寄存器块的第一校验和存储寄存器;
由复制到所述寄存器块的第一受限数据区段的所述数据来确定校验和种子值并且由复制到所述寄存器块中的所述数据来确定校验和值;
使用所述校验和种子值以及所述校验和值来确定验证值;以及
使用所述验证值来验证所述存储器设备中的所述数据的完整性。
2.根据权利要求1所述的方法,其中确定所述验证值包括使用错误检测技术来生成所述验证值。
3.根据权利要求1所述的方法,其中使用所述验证值来验证所述存储器设备的所述第一受限数据区段中的所述数据的完整性包括:
将所述验证值与预定值进行比较;以及
响应于所述验证值等于所述预定值而生成验证信号。
4.根据权利要求1所述的方法,其中由复制到所述寄存器块中的所述数据确定所述校验和种子值以及所述校验和值包括使用循环冗余校验技术顺序地确定中间值。
5.根据权利要求4所述的方法,还包括将所述中间值之一用作所述校验和种子值,并且其中由复制到所述寄存器块的第一受限数据区段的所述数据来确定校验和种子值并且由复制到所述寄存器块中的所述数据来确定所述校验和值包括:
使用初始中间值、复制到所述寄存器块的第一数据值以及循环冗余校验技术来确定第一计算的中间值;
使用所述第一计算的中间值、复制到所述寄存器块的第二数据值以及所述循环冗余校验技术来确定第二计算的中间值;
使用所述第二计算的中间值、复制到所述寄存器块的第三数据值以及所述循环冗余校验技术来确定第三计算的中间值;以及
使用所述第三计算的中间值、复制到所述寄存器块的第四数据值以及所述循环冗余校验技术来确定第四计算的中间值。
6.一种数据完整性验证方法,包括:
提供寄存器块,所述寄存器块具有第一受限数据区段、第一非受限数据区段、校验和存储区段以及校验和种子存储寄存器;
将来自存储器设备的数据复制到寄存器块的所述第一受限数据区段以及寄存器块的所述第一非受限数据区段;
使用复制到所述第一受限数据区段的数据、复制到所述第一非受限数据区段的数据以及初始中间值来顺序地计算中间值,其中第一计算的中间值用作校验和种子值,第二计算的中间值用作校验和值,并且第三计算的中间值用作验证值;以及
使用所述验证值来验证复制到所述寄存器块的所述数据的完整性。
7.根据权利要求6所述的数据完整性验证方法,其中使用所述验证值来验证复制到所述寄存器块的所述数据的完整性包括将所述验证值与预定值进行比较,并且其中响应于所述验证值等于所述预定值而确认所述数据完整性。
8.根据权利要求6所述的数据完整性验证方法,还包括将所述存储器设备的所述非受限数据区段的最后数据存储寄存器的数据值的最低有效位用作使能位,并且还包括响应于所述使能位指示使能信号:
将所述数据重新复制到所述寄存器块的所述第一受限数据区段并重新复制到所述寄存器块的所述第一非受限数据区段;
使用重新复制到所述第一受限数据区段的数据、重新复制到所述第一非受限数据区段的数据以及初始中间值来顺序地计算中间值,其中第一计算的中间值用作校验和种子值,第二计算的中间值用作校验和值,并且第三计算的中间值用作验证值;以及
将所述验证值与预定值进行比较,并且其中响应于所述验证值等于所述预定值而确认所述数据完整性。
9.一种电机驱动器电路,包括:
存储器设备,所述存储器设备被配置为具有保留数据区段、非保留数据区段以及校验和存储区段;
耦接到所述存储器设备的寄存器块,所述寄存器块包括第一保留数据区段、第一非保留数据区段、校验和种子存储寄存器,其中所述存储器设备的保留数据区段中的数据被复制到所述寄存器块的第一保留数据区段,并且所述存储器设备的非保留数据区段中的数据被复制到所述寄存器块的第一非保留数据区段;和
耦接到所述寄存器块的校验功能电路,其中根据被复制到所述寄存器块的第一保留数据区段的数据来生成校验和种子值,并且响应于所述寄存器块的第一保留数据区段中的数据、所述寄存器块的第一非保留数据区段中的数据以及所述校验和种子值来确定验证值,并且所述验证值用于验证所述存储器设备的所述第一保留数据区段中的数据的完整性。
10.根据权利要求9所述的电机驱动器电路,其中所述校验功能电路包括:
多路复用器,所述多路复用器具有多个输入端子和一个输出端子;
字节计数器,所述字节计数器耦接到所述多路复用器的所述多个输入中的第一输入;
循环冗余校验模块,所述循环冗余校验模块具有第一输入、第二输入和输出,所述循环冗余校验模块的所述第一输入耦接到所述多路复用器的所述输出;
中间值寄存器块,所述中间值寄存器块具有输入和输出,所述中间值寄存器块的所述输入耦接到所述循环冗余校验模块的所述输出,并且所述中间值寄存器块的所述输出耦接到所述多路复用器的所述第二输入;和
比较器,所述比较器具有耦接到所述循环冗余校验模块的所述输出的输入。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962814329P | 2019-03-06 | 2019-03-06 | |
US62/814,329 | 2019-03-06 | ||
US16/451,244 US11468037B2 (en) | 2019-03-06 | 2019-06-25 | Memory device and data verification method |
US16/451,244 | 2019-06-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666037A CN111666037A (zh) | 2020-09-15 |
CN111666037B true CN111666037B (zh) | 2024-05-10 |
Family
ID=72334963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010012979.XA Active CN111666037B (zh) | 2019-03-06 | 2020-01-07 | 存储器设备和数据验证方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11468037B2 (zh) |
CN (1) | CN111666037B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115312110A (zh) * | 2021-05-08 | 2022-11-08 | 瑞昱半导体股份有限公司 | 芯片验证系统及其验证方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770312A (zh) * | 2004-09-30 | 2006-05-10 | 三星电子株式会社 | 可检测在电源故障期间发生写入错误的存储器件及其方法 |
CN101840361A (zh) * | 2009-03-17 | 2010-09-22 | 恩益禧电子股份有限公司 | 程序验证装置及其方法 |
CN102393916A (zh) * | 2010-07-09 | 2012-03-28 | 瑞创国际公司 | 使用非直接存储器指针的快速块写入命令及方法 |
CN104636271A (zh) * | 2011-12-22 | 2015-05-20 | 英特尔公司 | 访问命令/地址寄存器装置中存储的数据 |
CN106484503A (zh) * | 2015-08-27 | 2017-03-08 | 深圳市中兴微电子技术有限公司 | 一种校验和的计算方法及网络处理器 |
CN106537424A (zh) * | 2014-06-18 | 2017-03-22 | 阿尔卡特朗讯 | 用于纠缠量子态的硬件高效校验子提取 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4678084B2 (ja) | 2000-09-29 | 2011-04-27 | ソニー株式会社 | メモリ装置およびメモリアクセス制限方法 |
JP4678083B2 (ja) | 2000-09-29 | 2011-04-27 | ソニー株式会社 | メモリ装置およびメモリアクセス制限方法 |
EP1387519A3 (fr) | 2002-07-09 | 2004-02-18 | Cp8 | Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs |
US20060015753A1 (en) * | 2004-07-15 | 2006-01-19 | International Business Machines Corporation | Internal RAM for integrity check values |
US7861095B2 (en) * | 2005-02-15 | 2010-12-28 | Arm Limited | Data processing apparatus security |
US7958436B2 (en) * | 2005-12-23 | 2011-06-07 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US7895501B2 (en) * | 2007-02-06 | 2011-02-22 | Vision Solutions, Inc. | Method for auditing data integrity in a high availability database |
US8316289B2 (en) * | 2009-01-29 | 2012-11-20 | Hewlett-Packard Development Company, L.P. | Updating sequential data |
US20100250875A1 (en) * | 2009-03-25 | 2010-09-30 | Silicon Laboratories Inc. | Eeprom emulation using flash memory |
US8645811B2 (en) * | 2011-10-27 | 2014-02-04 | Dell Products L.P. | System and method for selective error checking |
FR2989801B1 (fr) * | 2012-04-18 | 2014-11-21 | Schneider Electric Ind Sas | Procede de gestion securisee d'un espace memoire pour microcontroleur |
KR101990972B1 (ko) * | 2012-10-04 | 2019-06-19 | 삼성전자 주식회사 | 메모리 시스템에서의 순환 중복 검사 동작 수행 방법 및 이를 이용한 메모리 컨트롤러 |
US9639416B1 (en) * | 2012-11-18 | 2017-05-02 | Altera Corporation | CRC circuits with extended cycles |
US10489240B2 (en) * | 2015-09-25 | 2019-11-26 | Microsoft Technology Licensing, Llc | Efficient detection of corrupt data |
US10073661B2 (en) * | 2016-07-20 | 2018-09-11 | Atmel Corporation | Security extensions for non-volatile memory |
-
2019
- 2019-06-25 US US16/451,244 patent/US11468037B2/en active Active
-
2020
- 2020-01-07 CN CN202010012979.XA patent/CN111666037B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770312A (zh) * | 2004-09-30 | 2006-05-10 | 三星电子株式会社 | 可检测在电源故障期间发生写入错误的存储器件及其方法 |
CN101840361A (zh) * | 2009-03-17 | 2010-09-22 | 恩益禧电子股份有限公司 | 程序验证装置及其方法 |
CN102393916A (zh) * | 2010-07-09 | 2012-03-28 | 瑞创国际公司 | 使用非直接存储器指针的快速块写入命令及方法 |
CN104636271A (zh) * | 2011-12-22 | 2015-05-20 | 英特尔公司 | 访问命令/地址寄存器装置中存储的数据 |
CN106537424A (zh) * | 2014-06-18 | 2017-03-22 | 阿尔卡特朗讯 | 用于纠缠量子态的硬件高效校验子提取 |
CN106484503A (zh) * | 2015-08-27 | 2017-03-08 | 深圳市中兴微电子技术有限公司 | 一种校验和的计算方法及网络处理器 |
Non-Patent Citations (1)
Title |
---|
基于通用存储器的低成本加密应用方案;满佳喜;《科技创新与应用》(第17期);84 * |
Also Published As
Publication number | Publication date |
---|---|
US20200285628A1 (en) | 2020-09-10 |
US11468037B2 (en) | 2022-10-11 |
CN111666037A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7227797B2 (en) | Hierarchical memory correction system and method | |
US5502732A (en) | Method for testing ECC logic | |
US5805799A (en) | Data integrity and cross-check code with logical block address | |
EP1857939B1 (en) | System and method for efficient uncorrectable error detection in flash memory | |
CN107436821B (zh) | 为包括多个数据位和地址位的块生成错误码的装置和方法 | |
JP5506908B2 (ja) | 集積回路における故障耐性 | |
US20130262964A1 (en) | Device and method for the reading and storing of data | |
US4377845A (en) | Optional machine inhibition for feature malfunction | |
CN111666037B (zh) | 存储器设备和数据验证方法 | |
US6874069B2 (en) | Microcontroller having an embedded non-volatile memory array with read protection for the array or portions thereof | |
JPS641815B2 (zh) | ||
US10514980B2 (en) | Encoding method and memory storage apparatus using the same | |
US20230359523A1 (en) | Memory integrity check | |
US11768731B2 (en) | System and method for transparent register data error detection and correction via a communication bus | |
US20050289409A1 (en) | Parallel data bus | |
US20080250296A1 (en) | Apparatus, method and system for permanent storage of data | |
US8103933B2 (en) | Method for securing data and device for implementing the same | |
US5914971A (en) | Data error detector for bit, byte or word oriented networks | |
WO2019064644A1 (ja) | 電子制御装置及び制御プログラム検証方法 | |
WO2021195608A1 (en) | Protection for ethernet physical layer | |
CN112350735A (zh) | 一种多项式可配的crc数字电路的实现方法及系统 | |
CN113971276B (zh) | 使用迭代验证过程验证机器可读指令 | |
CN116467131B (zh) | 一种处理器的ecc功能验证方法、装置、介质和设备 | |
WO2022053157A1 (en) | Fault resistant verification | |
CN116194994A (zh) | 用于数据存储器的自诊断的电子电路和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |