CN110945487B - 用于确定校验和的方法和设备、缓冲存储器和处理器 - Google Patents

用于确定校验和的方法和设备、缓冲存储器和处理器 Download PDF

Info

Publication number
CN110945487B
CN110945487B CN201880047836.3A CN201880047836A CN110945487B CN 110945487 B CN110945487 B CN 110945487B CN 201880047836 A CN201880047836 A CN 201880047836A CN 110945487 B CN110945487 B CN 110945487B
Authority
CN
China
Prior art keywords
checksum
buffer memory
processor
data unit
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880047836.3A
Other languages
English (en)
Other versions
CN110945487A (zh
Inventor
S·胡夫纳格尔
J·格拉迪高
S·博尔克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN110945487A publication Critical patent/CN110945487A/zh
Application granted granted Critical
Publication of CN110945487B publication Critical patent/CN110945487B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种用于确定处理器(102)的缓冲存储器(100)的校验和的方法,其中,该方法包括以下步骤:读取缓冲存储器(100)的通过处理器(102)的访问而被标记为已改变的数据单元,在使用缓冲存储器(100)的校验和单元(309)的情况下求取数据单元的校验和,以校验和补充数据单元(430)并且将数据单元标记为已改变且具有有效的校验和。

Description

用于确定校验和的方法和设备、缓冲存储器和处理器
技术领域
本发明涉及用于确定校验和的一种方法和一种设备、一种缓冲存储器和一种处理器。
背景技术
本发明从根据独立权利要求的类别的一种设备或一种方法出发。本发明的主题也是一种计算机程序。
为了减少处理器对存储在存储器中的数据的访问时间,使用缓冲存储器(所谓的高速缓存)。
发明内容
在这种背景下,借助提出的方案提出一种根据独立权利要求的方法,此外提出一种使用该方法的设备、一种缓冲存储器和一种处理器,以及最后提出一种相应的计算机程序。通过在从属权利要求中列出的措施,能够实现独立权利要求中说明的设备的有利扩展方案和改善方案。
有利地,可以通过存储在缓冲存储器中的数据单元而在缓冲存储器内直接形成校验和,该数据单元已经通过缓冲存储器内的访问所改变。以这种方式,可以确保存储在缓冲存储器中的数据的完整性。
用于确定处理器的缓冲存储器的校验和的方法包括以下步骤:
读取缓冲存储器的数据单元,该数据单元通过处理器的访问而被标记为已改变;
在使用缓冲存储器的校验和单元的情况下求取数据单元的校验和;
以校验和补充数据单元,并且将数据单元标记为已改变且具有有效的校验和。
处理器可以涉及所谓的CPU(例如微控制器的形式)。该处理器可以在车辆中、例如车辆的控制设备中使用。缓冲存储器可以涉及所谓的高速缓存(Cache)。缓冲存储器在下文中也称为高速缓存。缓冲存储器的特征在于通过处理器进行读访问和/或写访问的访问时间,该访问时间比对该处理器包括的存储器架构的主存储器的访问时间更短。数据单元例如可以表示缓冲存储器的存储器行或存储器列的全部或一部分。在使用标记的情况下例如可以将数据单元标记为“已改变的”或“已改变且具有有效校验和”。可以将校验和理解为如下值:所述值能够检查数据单元完整性。在求取校验和时可以使用已知方法。校验和单元可以涉及集成到缓冲存储器中的用于确定校验和的单元或设备。被标记为已改变的数据单元可以涉及如下数据单元:该数据单元已经通过处理器对数据单元的写访问而被改变。由于这种改变,可能需要重新确定分配给数据单元的校验和。
求取和补充的步骤可以在如下时间段内执行:该时间段是处理器的访问与将数据单元写回主存储器之间的最小时间段。这种时间段也称为仅高速缓存时间。以这种方式,可以确保在将数据单元写回到主存储器之前,为已改变的数据单元求取当前的校验和。
根据一种实施方式,可以在该时间段内执行至少两个求取和补充的步骤。如果可以非常快速地实施求取和补充的步骤,则可以在使用同一校验和求取装置的情况下求取多个数据单元的多个校验和。由此可以将校验和求取装置的数量保持得较低。
该方法可以包括以下另外的步骤:读取缓冲存储器的通过处理器的另外的访问而被标记为已改变的另外的数据单元;在使用缓冲存储器的另外的校验和求取装置的情况下求取另外的数据单元的另外的校验和;以校验和补充另外的数据单元,并且将另外的数据单元标记为已改变且具有有效的校验和。以这种方式,可以为多个数据单元并行地求取校验和。在此,缓冲存储器的校验和求取装置的数量可以相应于如下数据单元的最大数量:所述数据单元可以在所述时间段内通过处理器所改变。
该方法可以包括计算处理器对数据单元的访问的数量的步骤。在此,可以根据访问的数量来执行求取的步骤。例如,如果访问的数量达到或超过预确定的数量,则可以执行求取的步骤。以这种方式,如果数据单元多次彼此相继地改变,则可以避免求取不必要的校验和。
在加载数据单元的步骤中,可以在使用校验和单元的情况下,将数据单元的校验和用于在完整性方面检查数据单元。以这种方式,数据单元可以使用两次。
该方法例如可以以软件或硬件或以软件和硬件的混合形式(例如在控制设备中)实现。
用于为处理器的缓冲存储器确定校验和的设备具有以下特征:
读取装置,其构造用于读取缓冲存储器的通过处理器的访问而被标记为已改变的数据单元;
求取装置,其构造用于在使用缓冲存储器的校验和求取装置的情况下求取数据单元的校验和;
补充装置,其构造用于以校验和补充数据单元,并且将该数据单元标记为已改变且具有有效的校验和。
该设备可以构造用于在相应的装置中执行、操控或实现所提出的方法的变型方案的步骤。通过本发明的设备形式的这种实施变型方案也可以快速和高效地解决本发明所基于的任务。
用于处理器的缓冲存储器包括所提到的用于确定该缓冲存储器的校验和的设备。有利地,可以以该设备来对已知的缓冲存储器架构进行补充。
例如,缓冲存储器可以实现为集成电路,该集成电路包括所提到的设备。以这种方式,不需要至该设备的外部接口。
缓冲存储器可以包括:处理器接口,其用于使处理器能够访问缓冲存储器的数据单元;主存储器接口,其用于将数据单元加载到和/或写回到主存储器中。因此,缓冲存储器可以用于已知的存储器架构。
处理器可以包括相应的缓冲存储器。如果将缓冲存储器集成在处理器中,则处理器的计算单元对存储在缓冲存储器中的数据单元的访问时间非常快。
这种处理器可以具有:用于处理信号或数据的计算单元、至少一个用于存储数据的缓冲存储器单元以及至少一个用于读取或输出的通信接口,所述数据嵌入在通信协议中。处理器和/或所提及的设备可以具有接口,该接口可以以硬件形式和/或以软件形式构造。在以硬件形式的构造中,该接口例如可以是所谓的系统专用集成电路的一部分,该系统专用集成电路包含设备的各种各样的功能。然而,该接口也可以是独立的集成电路或至少部分地由分立的构件组成。在软件形式的构造中,所述接口可以是软件模块,所述软件模块例如和另外的软件模块存在于微控制器上。
也有利的是一种具有程序代码的计算机程序产品或计算机程序,所述程序代码能够存储在机器可读的载体或存储介质上,例如半导体存储器、硬盘存储器或光学存储器,并且用于尤其当所述程序产品或程序在计算机或设备上实施时,执行、实现和/或操控根据以上实施方式中任一项所述的方法的步骤。
附图说明
在此提出的方案的实施例在附图中示出并且在下述说明书中进一步阐述。
图1示出根据一个实施例的存储器架构的方框图;
图2示出根据一个实施例的数据单元的状态图;
图3示出根据一个实施例的存储器架构的方框图;
图4示出根据一个实施例的用于确定校验和的方法的流程图;
图5示出根据一个实施例的用于确定校验和的方法的流程图;
图6示出根据一个实施例的用于确定校验和的设备的示意图。
在本发明的有利实施例的以下描述中,对于在不同附图中示出的并且起相似作用的元素使用相同或相似的附图标记,其中,省去对这些元素的重复描述。
具体实施方式
图1示出根据一个实施例的存储器架构的方框图。该存储器架构包括高速缓存形式的缓冲存储器100、CPU形式的处理器102以及主存储器104。该缓冲存储器100通过处理器接口110与处理器102连接,并且该缓冲存储器通过主存储器接口112与主存储器104连接。借助通过数据字的校验和来对处理器接口110进行保护。借助通过完整的高速缓存行的校验和来对主存储器接口112进行保护。
根据一个实施例,在使用在此提出的方案的情况下,通过完整的高速缓存行来求取校验和(所谓的主存储器校验和)。
在图1中所示的示例性存储器层级中,其特征在于部件100、102、104之间的通信的表征特性。处理器接口110的特征例如在于较短的延迟时间(例如处理器102的几个时钟周期),并且在每个读取指令(加载)时或写入指令(存储)时或在每个用于加载下一指令的时钟周期内实现访问。在此,访问宽度基于处理器102的数据总线宽度和/或指令集(例如32位数据字)。主存储器接口112具有高延迟时间。当高速缓存未命中(Cache Miss)时、即当由处理器102请求的数据不存在于缓冲存储器100中时,或者当从缓冲存储器100写入改变的高速缓存行时,进行访问。在此,访问宽度基于缓冲存储器100的高速缓存行宽度,该高速缓存行宽度对于每个访问可以包括处理器102的多个数据字。
在图1中示出分级的存储器架构,该存储器架构例如可以用于计算密集的汽车系统——例如用于驾驶员辅助或自动化驾驶。
在下文中,缓冲存储器100也称为高速缓存100,并且处理器102也称为CPU 102。
分级的结构例如包括基于DRAM(动态随机存储器)的主存储器104,该主存储器通常不集成到CPU 102(例如微处理器)中,而是实现为外部模块。这导致CPU 102与主存储器104之间的数据交换的有限带宽和增加的延迟时间。为了解决这一问题,通常使用高速缓存层级,该高速缓存层级将数据在本地缓存在处理器102的芯片上。因此,根据一个实施例,将处理器102和缓冲存储器100实现在同一模块(例如集成电路)中。
在此,高速缓存100与主存储器104之间或与下一较高级的高速缓存之间的数据交换基于称为高速缓存行的数据单元进行。在此,高速缓存行通常包括多个可以由CPU 102依次处理或实施的数据字或指令字。如果所需要的数据当前未被缓存在高速缓存100中(高速缓存未命中),则自动从下一层级的高速缓存或从主存储器104重新加载数据,并且覆盖缓存在高速缓存100中的其他数据。也就是说,受影响的高速缓存行的数据被“逐出”并且仅仍在较高层级的高速缓存或主存储器104中可用。确定待逐出的高速缓存行例如可以通过最近最少使用法(Least-recently-used)进行,在该方法中逐出如下高速缓存行:所述高速缓存行的最后一次访问已经过去最久。
在图1中示出存储器层级的示例性架构,该存储器层级具有在相应部件100、102、104之间的通信的表征特性。
在此,借助校验和来进行错误识别。如果对系统的数据处理和程序执行提出关于功能安全性的要求,则这经常导致存储器架构的部件100、102、104配备有用于错误识别和必要时错误校正的机制。一种经常使用的原理是基于校验和的前向错误校正在此,给定义大小的数据单元(例如数据字或高速缓存行)补充校验和,该校验和附加于数据单元地被保存在高速缓存或主存储器中。
相应的校验和方法以及通过该校验和方法保护的数据单元的大小可以在存储器层级中发生改变。例如,可以使用纠错码来保护CPU 102与实现为1级高速缓存的缓冲存储器100之间的各个32位数据字,相反地,可以在整个256位大小的高速缓存行上使用校验和来保护高速缓存100与主存储器104之间的数据。在此,在较大数据单元上使用校验和原则上会导致校验位占总存储需求的份额减少。在通过不同方法保护的部件之间进行交换数据时,不仅分析处理现有的校验和,而且重新计算对目标部件有效的校验和(重新编码)。如果重新编码发生在关键的时序路径中,则重新编码会对系统性能产生直接的负面影响。
因此,提出一种高速缓存策略,该高速缓存策略用于缓冲存储器100内的通过CPU102所改变的数据。如果通过程序执行而改变高速缓存行中的数据字,则出于数据一致性的目的,将数据中的这种改变传输给主存储器104。为此可以使用不同策略:
直写(Write-Through):在该策略中,将改变的数据立即传输给下一较高的高速缓存层级或主存储器104。如果数据必须设有校验和,则同样立即进行校验和的计算。因此,校验和计算的持续时间直接影响数据到下一较高的高速缓存层级或主存储器的传输。
写回(Write-Back):在该策略中,将改变的数据仅在随后的时刻转发给下一较高的高速缓存层级或主存储器104。在此期间,受改变影响的高速缓存行被标记为已修改。于是,在以下情况之一中进行转发:即,要么在已修改的数据从高速缓存100中逐出时,要么当受影响的高速缓存行在相同层级的另一高速缓存中在高速缓存一致性协议的范畴内发生改变时。后者仅在存储器层级包含一致的高速缓存时才重要相关。
在下文中,将修改的高速缓存行保留在高速缓存100中直到被逐出的时间段称为“仅高速缓存”时间。
在此描述的方案实现一种方法和系统,所述方法和所述系统用于在具有数据高速缓存100的存储器架构中成本高效地和运行时间高效地计算主存储器校验和。有利地,可以在没有附加延迟时间的情况下成本高效地计算写回高速缓存100中的改变的数据的主存储器校验和。在此,主存储器校验和是整个高速缓存行的如下校验和:所述校验和附加于内容数据而被存储在存储器中。
根据一个实施例,高速缓存100设有至少一个或多个用于计算主存储器校验和的单元。在将修改的缓存行逐出之前(即在仅高速缓存时间内),这些单元会自动地执行主存储器校验和的计算。
有利地,主存储器104不必具有明确的错误识别措施。此外,通过位于高速缓存100与主存储器104之间的路径上的元件(例如主存储器104的芯片内部的通信结构或用于存储器控制器)能够识别数据损坏。此外,由于已经在仅高速缓存期间执行了主存储器校验和的计算,并且由于在逐出时刻已经存在相应的主存储器校验和,因此,通过主存储器校验和的计算不会产生附加的延迟时间。因为在数据处于高速缓存中期间,计算主存储器校验和不会影响延迟时间,因此可以以较低的吞吐量并且因此更成本高效地设计用于计算主存储器校验和的单元。
图2示出根据一个实施例的数据单元(也称为高速缓存行)的状态图。示出的是数据单元的无效状态220“无效(invalid)”、未改变的状态222“未改变(unmodified)”、具有尚未完成的校验和的已改变状态224“已修改-校验和-未完成(modified_cheksum_pending)”以及具有有效校验和的已改变状态226“已修改-校验和-有效(modified_checksum_valid)”。状态224、226在称为仅高速缓存时间的时间段228中进行。
为了从状态220进入到状态222,加载高速缓存行(load cacheline:加载高速缓存行)。如果在状态222中重新加载高速缓存行(load cacheline:加载高速缓存行),则保持在状态222中。通过改变高速缓存行(modify cacheline:修改高速缓存行),从状态222切换到状态224。当校验和的求取完成时(checksum calculation finished:校验和计算完成),则从状态224切换到状态226。如果重新改变高速缓存行(modify cacheline:修改高速缓存行),则从状态226切换回到状态224。与此相反,如果高速缓存行被写回(write back:写回),则从状态226切换到状态220。
在图2中所示的高速缓存行的示例性状态图中,状态220、222“无效”和“未修改”相应于常规高速缓存中的状态。传统高速缓存的状态“已修改”在此划分为两个状态224、226。在通过CPU改变高速缓存行之后,由于主存储器校验和还不存在,因此该高速缓存行处于状态224“modified_cheksum_pending:已修改-校验和-未完成”。在已经计算出主存储器校验和并且将其保存为高速缓存行的一部分之后,高速缓存行切换到状态226“modified_checksum_valid:已修改-校验和-有效”,并且可以在需要时无需附加等待时间地将其写回到主存储器中。
在没有一致性高速缓存的存储器层级的情况下,(作为高速缓存行的改变与主存储器的写回之间的时间段228的)仅高速缓存时间仅取决于CPU的访问行为和所使用的高速缓存行逐出策略。根据高速缓存行逐出策略,可以计算出仅高速缓存时间的下限。在最近最常使用法(Most-Recently-Used Verfahren)的情况下,计算得出:
tcache_only_min_MRU=ηclk_per_CPU_acess·tclk_period
ηclk_per_CPU_acess:CPU访问相应高速缓存所需的时钟周期数量
tclk_period:一个时钟周期的持续时间
如果使用最近最少使用方法(Least-Recently-Used Verfahren),则计算得出仅高速缓存时间的下限:
tcache_only_min_LRU=ηway·ηclk_per_CPU_acess·tclk_period
ηway:高速缓存路径数量(用于存储字的暂存)
在改变数据之后的相应时间tcache_only_min内,不能确保受影响的高速缓存行不会被逐出。
该时间可以用于更新当前高速缓存行的主存储器校验和。一旦要进行高速缓存行的逐出(写回),则已经存在主存储器校验和并且不产生附加的等待时间。
在最近最少使用方法的情况下应注意,在tcache_only_min_LRU内最多可以修改ηway个高速缓存行。因此,在一个实施例中设有ηway个计算单元,这些计算单元能够在tcache_only_min_LRU内计算相应的主存储器校验和。
替代地,只要满足以下条件,就可以使用具有较短计算时间的较少计算单元,而校验和计算不会导致附加的延迟时间:
1.tchecksum_duration≤tcache_only_min_LRU
2.tchecksum_durationchecksum_units≤tcache_only_min_MRU
如果通过软件首先依次修改仅一个字中的ηway行高速缓存行,并且然后依次逐出这些高速缓存行是完全不可能的,并且不需要确保校验和计算中的延迟时间,则可以放弃条件2。
根据一个实施例,假设校验和计算如此开始,使得计算在高速缓存行改变之后立即开始。如果高速缓存行在逐出之前重新发生改变,则已经计算出的主存储器校验和无效,并且必须重新进行计算。为了避免不必要的校验和计算,在LRU逐出策略的情况下,根据一个实施例将主存储器校验和的计算延迟,直到高速缓存行按照其上次使用的顺序达到确定的值并且逐出概率增加为止。
图3示出根据一个实施例的存储器架构的方框图。该存储器架构包括高速缓存形式的已经根据图1描述的缓冲存储器100,CPU形式的处理器102以及主存储器104。附加地示出用于确定缓冲存储器100的校验和的设备306。根据不同的实施例,设备306包括用于主存储器校验和计算的一个或多个单元(在此示例性地示出两个单元308、309),所述单元也称为校验和单元或校验和计算单元。
根据不同的实施例,设备306实现为至缓冲存储器100的外部单元,或者该设备实现为集成在缓冲存储器100中(例如相同的芯片上)。
在所示的示例性存储器层级中,高速缓存100根据本发明而配备有一个或多个高速缓存行校验和计算单元308、309,这些单元如此设计,使得可以在分别有效的时间段tcache_only_min内计算主存储器校验和。在下文中示出用于校验和计算的两个示例性流程。
图4示出根据一个实施例的用于确定校验和的方法的流程图。在此,示出具有MRU逐出策略的单路高速缓存100或多路高速缓存100的示例性流程图。
除了高速缓存100之外,示出CPU 102、用于确定高速缓存100的校验和的校验和单元形式的设备306以及高速缓存行430形式的数据单元430。
在高速缓存行430方面,示出状态222“未修改”、状态224“已修改-校验-未完成”、状态226“已修改-校验和-有效”和状态220“无效”。
在此,用于求取校验和的时间段432tchecksum_duration短于时间段434tcache_only_min_MRU
箭头450表示从CPU 102到高速缓存100的数据写入。在此,涉及所谓的高速缓存命中451或命中(Treffer)。箭头452表示通过高速缓存命中451引起的高速缓存行430的改变。箭头453表示通过设备306启动的校验和计算。在求取校验和之后,通过状态226将高速缓存行430标记为已改变且具有有效校验和,这通过箭头454表明。
根据一个实施例,箭头453表示对高速缓存行430的读取,该高速缓存行通过处理器102的由箭头450表明的访问而改变。通过柱455表示对被标记为已改变的高速缓存行430的校验和的求取。通过箭头454表明以所求取的校验和补充被标记为已改变的高速缓存行430,以及将高速缓存行430标记为已改变且具有有效校验和。
在图4中所示的箭头460表示对数据的读取或写入。在此涉及所谓的高速缓存未命中461。箭头462表示数据的写回,并且箭头463表示新的高速缓存行430的加载。
因此,在具有MRU逐出策略的单路高速缓存100或多路高速缓存100的情况下,图4示出用于在时间段434tcache_only_min_MRU内计算主存储器校验和的示例性流程图。高速缓存行430最初处于未修改的状态。通过CPU102对该高速缓存行430进行写访问,将该高速缓存行切换到状态224“已修改-校验和-未完成”,并且开始主存储器校验和的计算。在重新编码的意义上,在主存储器校验和计算的范畴内分析处理数据字相关的校验和,并且在出现偏差的情况下通知出现错误。在时间段tcache_only_min_MRU过去之前,完成主存储器校验和的计算并且完成伴随于此的从状态224到状态226“已修改-校验和-有效”的转换,由此可以无延迟地进行高速缓存行430随后的逐出。
图5示出根据一个实施例的用于确定校验和的方法的流程图。在具有LRU逐出策略的双路高速缓存100的情况下,示出用于计算两个高速缓存行430、530的主存储器校验和的示例性流程图。两个高速缓存行430、530最初处于状态222“未修改”。两个高速缓存行430、530依次由CPU 102所修改。由于高速缓存100由两个路径构成并且使用LRU作为逐出策略,因此第二修改不能导致第一高速缓存行530的逐出。相应地,存在较长的时间段tcache_only_min_LRU可供用于计算相应的主存储器校验和。
该流程图相应于根据图4所描述的曲线图,不同之处在于示出两个高速缓存行430、530。用于确定高速缓存100的校验和的设备现在包括分配给第一高速缓存行530的第一校验和单元308,以及分配给第二高速缓存行430的第二校验和单元309。
对应于已经根据图4所描述的箭头450、451、452、453、460、461、462、463(这些箭头在图5中涉及第二高速缓存行430),图5示出箭头550,该箭头表示将数据从CPU 102进一步写入到高速缓存100。在此又涉及高速缓存命中551。箭头552表示第一高速缓存行530的由高速缓存命中551引起的变化。箭头553表示通过校验和单元308启动的校验和计算。在求取校验和之后,通过状态226将第一高速缓存行530标记为已改变且具有有效校验和。
根据一个实施例,箭头553表示对另一高速缓存行530的读取,该另一高速缓存行通过处理器102的由箭头550表明的访问而改变。通过柱555表示对被标记为已改变的高速缓存行530的另一校验和的求取。
图6示出根据一个实施例的用于确定校验和的设备306的示意图。在此,可以涉及如上所述的设备306。该设备306可以包括一个或多个校验和单元,其中,在图6中所示的实施例中设置校验和单元。
设备306包括读取装置670,该读取装置构造用于读取缓冲存储器的通过处理器的访问而被标记为已改变的数据单元。在此可以涉及处于状态“已修改-校验和-未完成”的高速缓存行。此外,该设备306包括:求取装置672,其构造用于求取由读取装置670读取的数据单元的校验和;补充装置674,其构造用于以校验和补充数据单元并且将该数据单元标记为已改变且具有有效的校验和。
根据一个实施例,读取装置670构造用于通过缓冲存储器的内部接口读取高速缓存行,并且补充装置674构造用于通过缓冲存储器的所述内部接口或另一内部接口输出校验和。
当加载高速缓存行来识别存储器中的可能的错误时,可以通过相同的校验和计算单元(即设备306的单元)来进行由设备306确定的主存储器校验和的检查。但是,取决于CPU的功能、高速缓存的功能以及对整个系统的功能安全性方面的要求,检查过程可能会有所不同,。
如果高速缓存具有可以推测性地(预先)加载数据的预取器,则在由CPU从高速缓存中调用数据之前,已经进行了主存储器校验和的可信度检验,并且必要时校正了可校正的错误。在这种情况下,主存储器校验和的分析处理不会对系统性能产生负面影响。
如果不存在预取器,而是仅当CPU实际需要数据时才加载数据,则存在两个选项用于运行可信度检验。
如果CPU具有撤消推测性执行指令的能力,则可以异步地进行主存储器校验和的分析处理。这表示在分析处理主存储器校验和之前将数据传输给CPU,以免影响系统性能。如果在分析处理的范畴内确定存在可校正的错误,则不采纳受尚未校正数据影响的指令,并且借助已校正的数据重复这一过程。如果在分析处理时确定存在无法校正的错误,则将系统关闭。
如果CPU不具有撤消推测性执行指令的能力,并且在延迟错误校正时无法关闭整个系统,则必须同步地分析处理校验和。
如果在最大时间(例如容错时间)内足以进行错误识别和系统关闭,则可以不采取在加载高速缓存行时对主存储器校验和进行分析处理,并且可以替代地通过(对安全重要相关的)存储器内容的单独的单元周期性地检查一致性。
如果一个实施例包括第一特征与第二特征之间的“和/或”关联,则这可以如此解读,使得该实施例根据一种实施方式不仅具有第一特征而且具有第二特征,并且该实施例根据另一实施方式要么仅具有第一特征要么仅具有第二特征。

Claims (12)

1.一种用于确定处理器(102)的缓冲存储器(100)的校验和的方法,其中,所述方法包括以下步骤:
读取所述缓冲存储器(100)的通过所述处理器(102)的访问而被标记为已改变的数据单元(430);
在使用所述缓冲存储器(100)的校验和单元(308)的情况下求取(432)所述数据单元(430)的校验和,其中,在数据单元(430)改变之后延迟所述校验和的计算;
以所述校验和补充(454)所述数据单元(430),并且将所述数据单元(430)标记为已改变且具有有效的校验和;
计算所述处理器(102)对所述数据单元(430)的访问的数量的步骤,其中,根据所述访问的数量来执行所述求取(432)的步骤,其中,如果访问的数量达到或超过预确定的数量,则执行求取(432)的步骤。
2.根据权利要求1所述的方法,在所述方法中,在一时间段(228)内执行求取和补充的步骤(432,454),所述时间段在所述处理器(102)的访问与将所述数据单元(430)写回(462)到主存储器(104)之间是最小的。
3.根据权利要求2所述的方法,在所述方法中,在所述时间段(228)内执行至少各两个所述求取和补充的步骤(432,454)。
4.根据权利要求1至3中任一项所述的方法,所述方法具有以下另外的步骤:读取所述缓冲存储器(100)的通过所述处理器(102)的另外的访问而被标记为已改变的另外的数据单元(530);在使用所述缓冲存储器(100)的另外的校验和单元(308)的情况下求取所述另外的数据单元(530)的另外的校验和;以所述校验和补充所述另外的数据单元(530),并且将所述另外的数据单元(430)标记为已改变且具有有效的校验和。
5.根据权利要求1至3中任一项所述的方法,在所述方法中,所述数据单元(430)是缓冲存储器行。
6.根据权利要求1至3中任一项所述的方法,在所述方法中,在加载数据单元(430)的步骤中,在使用所述校验和单元(308)的情况下,将所述数据单元(430)的校验和用于在完整性方面检查所述数据单元(430)。
7.一种用于确定处理器(102)的缓冲存储器(100)的校验和的设备(306),所述设备设置用于执行根据权利要求1至6中任一项所述的方法,其中,所述设备具有以下特征:
读取装置(670),所述读取装置构造用于读取所述缓冲存储器(100)的通过所述处理器(102)的访问而被标记为已改变的数据单元(430);
求取装置(672),所述求取装置构造用于求取所述数据单元(430)的校验和;
补充装置(674),所述补充装置构造用于以所述校验和补充所述数据单元(430),并且将所述数据单元(430)标记为已改变且具有有效的校验和。
8.一种用于处理器(102)的缓冲存储器(100),其中,所述缓冲存储器(100)包括根据权利要求7所述的用于确定处理器(102)的所述缓冲存储器(100)的校验和的设备(306)。
9.根据权利要求8所述的缓冲存储器(100),所述缓冲存储器实现为包括所述设备(306)的集成电路。
10.根据权利要求8或9中任一项所述的缓冲存储器(100),所述缓冲存储器具有处理器接口(110)和主存储器接口(112),所述处理器接口用于实现所述处理器(102)对所述缓冲存储器(100)的数据单元(430,530)的访问,所述主存储器接口用于将所述数据单元(430,530)加载和/或写回到主存储器(104)中。
11.一种处理器(102),所述处理器具有根据权利要求8至10中任一项所述的缓冲存储器(100)。
12.一种机器可读的存储介质,在所述存储介质上存储有计算机程序,所述计算机程序设置用于实施和/或操控根据权利要求1至6中任一项所述的方法。
CN201880047836.3A 2017-07-17 2018-07-13 用于确定校验和的方法和设备、缓冲存储器和处理器 Active CN110945487B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102017212181.5 2017-07-17
DE102017212181.5A DE102017212181A1 (de) 2017-07-17 2017-07-17 Verfahren und Vorrichtung zum Bestimmen von Prüfsummen, Pufferspeicher und Prozessor
PCT/EP2018/069141 WO2019016099A1 (de) 2017-07-17 2018-07-13 Verfahren und vorrichtung zum bestimmen von prüfsummen, pufferspeicher und prozessor

Publications (2)

Publication Number Publication Date
CN110945487A CN110945487A (zh) 2020-03-31
CN110945487B true CN110945487B (zh) 2024-03-08

Family

ID=62909547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880047836.3A Active CN110945487B (zh) 2017-07-17 2018-07-13 用于确定校验和的方法和设备、缓冲存储器和处理器

Country Status (4)

Country Link
US (1) US11138067B2 (zh)
CN (1) CN110945487B (zh)
DE (1) DE102017212181A1 (zh)
WO (1) WO2019016099A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5233616A (en) * 1990-10-01 1993-08-03 Digital Equipment Corporation Write-back cache with ECC protection
US7437597B1 (en) * 2005-05-18 2008-10-14 Azul Systems, Inc. Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
CN102708022A (zh) * 2005-12-23 2012-10-03 英特尔公司 响应于用户级指令进行循环冗余校验和运算

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
US8380949B2 (en) 2010-05-20 2013-02-19 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
US8719664B1 (en) * 2011-04-12 2014-05-06 Sk Hynix Memory Solutions Inc. Memory protection cache
EP2728477A1 (de) 2012-11-05 2014-05-07 Siemens Aktiengesellschaft Verfahren und Logikschaltung zum Kopieren von Daten, Speichervorrichtung und Datenverarbeitungsvorrichtung

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5233616A (en) * 1990-10-01 1993-08-03 Digital Equipment Corporation Write-back cache with ECC protection
US7437597B1 (en) * 2005-05-18 2008-10-14 Azul Systems, Inc. Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
CN102708022A (zh) * 2005-12-23 2012-10-03 英特尔公司 响应于用户级指令进行循环冗余校验和运算

Also Published As

Publication number Publication date
WO2019016099A1 (de) 2019-01-24
DE102017212181A1 (de) 2019-01-17
US11138067B2 (en) 2021-10-05
CN110945487A (zh) 2020-03-31
US20200210281A1 (en) 2020-07-02

Similar Documents

Publication Publication Date Title
US11693791B2 (en) Victim cache that supports draining write-miss entries
US10019369B2 (en) Apparatuses and methods for pre-fetching and write-back for a segmented cache memory
US9767041B2 (en) Managing sectored cache
US8539158B2 (en) Merging data in an L2 cache memory
US10997064B2 (en) Ordering updates for nonvolatile memory accesses
CN110945487B (zh) 用于确定校验和的方法和设备、缓冲存储器和处理器
CN112445644A (zh) 用于检验片上系统的存储单元中的数据的方法和检验单元
US12007907B2 (en) Victim cache with write miss merging
US12001345B2 (en) Victim cache that supports draining write-miss entries
US8504776B2 (en) Device and method for controlling caches

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