本文作者:kaifamei

存储器安全接口配置的制作方法

更新时间:2025-12-27 04:04:40 0条评论

存储器安全接口配置的制作方法


存储器安全接口配置
1.相关申请的交叉引用
2.本技术要求于2021年6月14日提交的美国临时申请号63/210,439和于2022年6月13日提交的美国实用新型专利申请号17/839,379的权益,其全部内容通过引用并入本文。
技术领域
3.本公开一般涉及接口电路。具体地,本公开涉及用于在数字逻辑与存储器之间提供存储器接口的系统和方法。


背景技术:



4.在包括数字逻辑和存储器的集成电路(ic)设计中,安全配置需要在产品的寿命期间验证存储器存储正确数据。如果存储器没有正确的数据,则可以触发警报,通知数据有故障并且需要采取行动;例如,重置、或开始详细分析。
5.关于存储器测试,解决方案包括在存储器周围添加存储器内置自测试(mbist)。mbist验证存储器本身,但不验证到存储器的连接性。mbist也不测试从存储器到数字逻辑的信号路径是正确的。此外,mbist仅验证固定故障。此外,mbist可以花费大量的时钟周期来验证整个存储器。因此,mbist显著地增加了启动/加电时的应用引导时间,例如,在加电重置之后,存储器和逻辑首先将被测试,使得应用等待直到mbist完成以启动引导过程。
6.除了mbist之外,数字逻辑可以用软件测试库(stl)来测试。运行stl测试停止芯片的任务模式。在任务模式停止的情况下,切换上下文以运行stl库。注意,上下文可以对应于在任务模式中运行的任务被保持,并且处理器将执行另一任务,并且当完成时返回到任务模式原始任务。一旦stl测试完成,上下文被切换回任务模式。大约每100毫秒(ms)需要具有stl测试的上下文切换,以满足在所需时间范围内能够检测到某些故障的安全要求。该测试消耗带宽、增加代码大小且增加芯片面积以适应测试机制。
7.stl测试的另一问题涉及存储器存取。当数字逻辑不具有对存储器的软件访问时,没有到存储器的路径来测试存储器互连。stl测试的另一个问题涉及安全性。例如,敏感数据可以存储在存储器中,例如加密密钥。


技术实现要素:



8.公开了一种测试存储器的存储器地址及该存储器地址内的数据的系统和方法。在一个示例性实施例中,系统从数字逻辑接收原始数据,并反转原始数据的位以生成经反转的数据。系统将经反转的数据写入存储器地址并从存储器地址读取经反转的数据。系统确定存储器地址和经反转的数据是否正确。如果存储器地址和经反转的数据是正确的,则系统将原始数据写入存储器地址。如果存储器地址和经反转的数据不正确,则系统向数字逻辑发送错误指示。
9.在替代实施例中,测试存储器的系统和方法可经配置以将第一写入信号、存储器地址和原始数据传输到存储器以发起对第一存储器使能信号的写入。系统将存储器地址存
储在地址写入缓冲器中,并将数据存储在数据写入缓冲器中。然后,系统反转原始数据的每个位以形成经反转的数据,并将经反转的数据和存储器地址存储在延迟缓冲器中。该系统在错误检测发生器中串接经反转的数据和存储器地址以生成第一错误标识符(例如,错误纠正码(ecc)或错误检测码(edc))。然后,系统可以将经反转的数据和第一错误标识符发送到存储器。然后,系统向存储器发送第二存储器使能信号和第一读取信号。系统从存储器地址读取经反转的数据和第一错误标识符,以通过将延迟缓冲器中的数据与读取的经反转的数据进行比较来确认数据、第一错误标识符和存储器地址是正确的。然后将原始数据和存储器地址存储在延迟缓冲器中。
附图说明
10.从以下给出的详细描述和从本公开的实施例的附图将更全面地理解本公开。附图用于提供对本公开的实施例的认识和理解,而不将本公开的范围限制于这些特定实施例。此外,附图不必按比例绘制。
11.图1示出了根据本公开的一个实施例的具有数字逻辑和存储器的示例电路。
12.图2示出了根据本公开的一个实施例的示例存储器安全接口模块(mism)电路。
13.图3示出了根据本公开的一个实施例的在写入、读取、写入、读取(wrwr过程)中执行写的第一步骤的示例msim电路。
14.图4示出了根据本公开的一个实施例的在图3的wrwr过程中执行读取的第二步骤的示例msim电路。
15.图5示出了根据本公开的一个实施例的执行图4之后的读取的第二部分的示例msim电路。
16.图6示出了根据本公开的一个实施例的在图3的wrwr过程中执行写入的第三步骤的示例msim电路。
17.图7示出了根据本公开的一个实施例的在图3的wrwr过程中执行读取的第四步骤的示例msim电路。
18.图8示出了根据本公开的一个实施例的执行图7之后的读取的第二部分的示例msim电路。
19.图9示出了根据本公开的一个实施例的针对缓冲器未命中过程的第一步骤执行控制器读取的示例msim电路。
20.图10示出了根据本公开的一个实施例的在图9之后的缓冲器未命中过程的第二步骤中执行控制器读取的示例msim电路。
21.图11示出了根据本公开的一个实施例的当存在缓冲器匹配时执行控制器读取的第一步骤的示例msim电路。
22.图12示出了根据本公开的一个实施例的当存在缓冲器匹配时执行控制器读取的第二步骤的示例msim电路。
23.图13示出了根据本公开的一个实施例的没有存储器选择检查的示例状态图。
24.图14示出了根据本公开的一个实施例的具有存储器选择检查的示例状态图。
25.图15描绘了本公开的实施例可以在其中操作的示例计算机系统的示图。
具体实施方式
26.本发明的各方面涉及存储器安全接口配置。存储器安全接口配置可包括用于允许在不需要存储器内置自测试(mbist)或软件测试库(stl)的情况下检查用于写入和读取操作的存储器位置的电路和过程。
27.图1示出了具有数字逻辑120和存储器130的电路100。与数字逻辑集成的是存储器安全接口模块(msim)110。存储器安全接口模块110可位于数字逻辑外部且位于数字逻辑120与存储器130之间。msim110可以验证数字逻辑120与存储器130之间的连接性,并进一步验证存储器130。msim 110对存储器130进行读取和写入。msim110以特定顺序并以特定模式进行读写。msim 110可以验证数据和控制信号140朝向存储器130写入。msim 110还可以确认从存储器返回的数据150可以被检查,使得不存在已经发生的故障和瞬态问题。此外,msim 110可以在任务模式期间运行。msim 110还可以用作mbist和stl的替代。
28.所公开的配置的优点是设计需要较小物理芯片面积。此外,它没有介于其间的软件,从而使它更加安全。例如,所公开的配置可用于安全解决方案或安全性解决方案,因为它不创建stl可能引入的安全弱点。此外,它不需要mbist功能,因为msim 110仅在使用时检查存储器130中的位置。因此,当mbist验证整个存储器130时,msim 110仅检查应用所使用的必要存储器位置。如果应用使用较少的存储器,那么测试也将较少,且如果应用使用较多的存储器,那么其将进行更多的测试。存储器安全接口模块可随应用而伸缩。这意味着从启动时间开始的启动延迟被显著地减小,因为这相对于可能具有100000个周期延迟的mbist给出了几个周期的延迟。存储器安全接口模块的覆盖是覆盖朝向存储器130的存储器信号140和来自存储器130的信号150。
29.现在参考图2,示出了存储器安全接口模块(msim)110。在msim 110的右侧是对应于进入和来自存储器130(存储器侧)的信号的虚线。存储器130侧信号可以包括例如以下信号:
30.·
时钟210;
31.·
激活存储器130的存储器使能(或选择)215信号;
32.·
重置信号220,用于重置msim 110;
33.·
存储器130中位置的地址选择信号230;
34.·
写入/读取(使能)信号225,其指示对存储器130的读取或写入过程(写入/读取信号还可实施为两个单独的信号,写入和读取信号);
35.·
写入数据信号235,其包含要被写入存储器的数据;以及
36.·
读取返回存储器位置内容的数据信号240。
37.还包括的可以是包括'错误检测位'的信号,其与要存储在存储器130内的数据一起发送。错误检测位可以是原始数据(即数据位)的补充,原始数据一起存储在存储器130中。错误检测位对应于可用于检测在数据或地址被存储于存储器130内的时间期间是否存在数据或地址问题的额外信息。
38.在图中,msim 110的左侧是到数字逻辑120的接口,其可以是诸如处理器的知识产权(ip)块。信号包括进入msim 110的重置信号220和时钟信号210。此外,进入msim 110的时钟信号210与进入存储器130的时钟信号相同。还存在写入存储器130的写入使能信号225a和从存储器130读取的读取使能信号225b。这些可以被分类为控制信号。控制器地址信号
230可用于向或从存储器130中的特定地址读取。搁置信号250可用于向数字逻辑120指示在其可继续下一存储器写入之前等待。这可以是用于数字逻辑120推回ip块以确保新数据不会重新写入尚未存储在存储器中的先前数据的暂停信号。此外,读取数据输出和一些错误信号可能指示出现了错误。这些是指示存储器错误或存储器互连错误的错误指示符。ip块120和存储器130之间包括桥。
39.msim 110可以用作到存储器130的桥,并且包含多个组件(或子模块)。在图2中,部件如下(表1):1=时钟门
40.通过fsm控制时钟门的使能;
41.当fsm处于空闲状态时禁用朝向存储器侧的时钟;
42.替代实施方式:
43.a)时钟选通和关断存储器选择,无存储器选择启动模式;
44.b)没有来自fms的时钟选通和存储器选择控制,需要存储器启动模式。
45.2=数据写入缓冲器(dwb)
46.当“a=写入使能&存储器使能”时:将输入数据复制到本地缓冲器,输入数据也被转发;
47.当“a=0”时:本地缓冲器被转发。
48.3=地址写入缓冲器(awb)
49.当“b=写入使能&存储器使能”时:输入地址被复制到本地缓冲器中。
50.4=地址比较(ac)
51.当“c=读取使能&存储器使能”时:将输入地址与awb进行比较;
52.当“d=(输入地址=awb)”时,fsm被通知,并且dwb内的数据在下一个周期中经由rds返回。
53.5=转发地址选择器(fas)
54.如果使用输入地址或awb,则做出选择;
55.默认选择为awb;
56.当“e=存储器使能&读取使能”时:输入地址被选择。
57.6=返回数据选择器(rds)
58.当“f=0”(默认)时:edc数据输出被选择;
59.当“f=1”时:选择dwb数据被输出;
[0060]“f”是单周期延迟版本“d”。
[0061]
7=数据反转(di)
[0062]
当“g=1”时:所有数据位反转1个周期。
[0063]
8=地址/数据错误检测发生器(edg)
[0064]
基于传入地址和传入数据,错误检测位被生成;
[0065]
将传入数据和计算出的错误检测位转发到存储器;
[0066]
实例:“数据与地址串接”secded ecc,全-0&全-1检测。9=数据和地址延迟(dad)
[0067]
当“i=1”时:将存储器地址和存储器数据复制到本地缓冲器;
[0068]
edc验证所需要的存储器地址(长期存储器位置没有损坏);
[0069]
数据比较所需的存储器数据(检查存储器位置是否损坏);
[0070]
i=(存储器选择=1&写入=1),然后输出侧存储器写入被完成。10=地址/数据错误检测检查器(edc)
[0071]
将传入错误检测位(edb)与所提供的存储器读取数据和dad地址进行比较;
[0072]
进行第二次检查,存储器读取数据等于提供的dad数据;
[0073]
触发存储器错误[0]信号;
[0074]
当edb数据相关比较失败时(在每次存储器读取时进行比较);
[0075]
当存储器读数据与dad数据比较失败时(该比较经由“h=1”控制);
[0076]
触发一个存储器错误[1]信号
[0077]
当edb地址相关比较失败时(在每次存储器读取时进行比较);
[0078]
存储器读数据总是被转发到rds。
[0079]
可选取决于edb功能:
[0080]
在存储器读取数据错误检测已被纠正的情况下触发存储器错误[2]信号;
[0081]
然后将经校正的数据转发到rds而不是传入的存储器读取数据。
[0082]
11=fsm(fsm)
[0083]
确定采用输入侧与输出侧之间的哪条路径;
[0084]
跟踪wrwr存储器检查;
[0085]
wrwr检查和控制器侧读取之间是一种判优器;
[0086]
控制器侧读取具有超过wrwr的优先级
[0087]
向数字逻辑提供搁置信号以提供关于何时可以开始下一次写入的信息。
[0088]
继续参考图2,可选的时钟门1可用于确保只有当存在存储器访问时才存在朝向存储器130的时钟。时钟门1可用于帮助降低存储器130的功耗。在这种情况下,该时钟门1在需要时产生时钟脉冲。此配置还有助于检测毛刺或电路错误。如果没有时钟,但是数据已经改变,则这是该时钟线上的错误。如果没有时钟门,那么它仍然会检测到错误。
[0089]
数据写入缓冲器2允许在数字逻辑的接口上进行写入,并将其作为写入转发到存储器130。该写入是从数字逻辑120向存储器130写入数据。为了将某物存储在存储器130中,使能和时钟信号210激活存储器130,且写入使能信号225a被断言以将控制器写入数据235写入到存储器130中。这里,数据写入缓冲器2捕获该控制器写入数据235并且本地存储该数据直到它得到下一个写入。这同样适用于地址写入缓冲器3,其存储控制器地址信号230,该控制器地址信号230用于发信号通知存储器130中存储数据的存储器位置。
[0090]
如果存储器使能信号215和写入使能信号225a被从数字逻辑120使能,则控制器地址230被从数字逻辑120复制到该地址写入缓冲器3中,并本地保持直到下一次写入。
[0091]
地址比较单元4将地址写入缓冲器3的地址与所提供的下一地址进行比较。举例来说,写入可能花费几个周期,且因为数据的读取是非常重要的。读取具有高于写入的优先级,并且地址比较单元4将读取地址指针与地址写入缓冲器3进行比较。如果存在匹配,即两个地址相同,则不需要去往存储器130。接着可从数据写入缓冲器获取读取数据并将其提供回到数字逻辑120中。
[0092]
继续图2,转发地址选择器(fas)5可以实现为多路复用器(mux)。fas 5用于在读取地址或地址写入缓冲器3之间进行选择。如果读取使能信号225b进入且地址不等于地址写
入缓冲器3中的地址,那么逻辑可经配置以从存储器130读取另一位置且可能需要给予优先权。因此,对于fas 5,优先级被给予该读取地址,并且该读取地址直接去往存储器130。数据被从存储器130取出,并且将所读取的数据返回给数字逻辑120。
[0093]
返回数据选择器(rds)6也可以实现为多路复用器(mux)。rds 6是选择是将内部写入数据缓冲器内容直接提供回还是将存储器130的读取数据提供回数字逻辑120的单元。
[0094]
数据反转7经配置以反转数据写入缓冲器2中的原始数据的所有位。例如,如果在数据写入缓冲器2中存在数据值0010,则该数据反转器将把所有的0反转为1,把所有的1反转为0,在本例中这将是1101。数据反转允许将经反转的数据写入存储器130。随后可从存储器130读取经反转的数据以检查存储器位置处的数据是否正确。因此,原始数据的写入也与原始数据的检查一起进行。因为每个位将翻转,所以它还将测试存储器130的所有位位置。此外,因为它可以验证该单个存储器位置的所有位位置,所以它可以评估存储器130内的存储器位置没有数据错误或没有瞬态错误。
[0095]
逐位比较检验寻反转以检验写入的数据是否到正确的存储器位置,且执行对其写入到存储器130中的存储器地址的检验。通过将存储器地址和数据放入存储器地址,存储器地址由地址/数据错误纠正发生器8来检查。错误检测发生器8计算输入(地址和数据)上的错误纠正值。具体地,到地址/数据错误纠正产生器8的输入是要写入存储器130的地址。串接地址和数据输入。使用地址和数据,计算冗余值。冗余值可以是错误标识符,例如错误纠正码(ecc)或错误检测码。出于示例的目的,在本文的示例中将参考ecc,通过该原理将适用于其它错误标识符。
[0096]
ecc可以提供汉明距离的类型,利用它来计算额外的位。这些额外的位也与数据一起存储。因为还存在地址,所以当完成读取时,那些错误检测位与数据一起返回。基于与数据一起返回的错误检测位,可进行计算以确定存储在存储器130中的错误纠正位是否匹配所提供的地址和返回的数据。如果存在匹配,则读取数据和存储器地址属于一起,使得它们可被确认为是正确的。因此,从存储器130读取存储器地址,经反转的数据和第一ecc,以确认数据,第一ecc和存储器地址是正确的。具体地,从存储器读取的数据应当等于数据和地址延迟缓冲器9中的数据。从存储器130读取的ecc应当对应于从存储器读取的数据和存储在数据和地址延迟缓冲器9中的地址。这可以通过使用ecc解码器功能来完成。应注意,在ecc例如通过地址/数据错误检测检查器10识别数据中的错误的情况下,数据可被校正并被传输回数字逻辑120。
[0097]
这些额外位的计算还允许在地址/数据错误检测检查器10中检验这些额外位。因此,该配置可以确保用于读取存储器的地址被本地存储。数据和地址延迟缓冲器9存储存储器地址的延迟版本。如果在存储器130上存在读取,则在存储器130上断言地址和存储器选择。当时钟信号210被触发时,数据被提供回来。ecc位检查确保正确的存储器地址被使用。因此,该检查需要地址的本地复制,并且该数据被存储在作为数据和地址延迟缓冲器9的本地块中。利用数据和地址延迟缓冲器9,对照从存储器130接收的数据来检查和验证其中的数据。两者之间的匹配表示存储器130没有问题。失配表示存储器130存在问题。应注意,数据和地址延迟缓冲器可以是可被分区的一个物理存储装置,或可以是可串联操作的两个单独的物理存储装置(例如,数据缓冲器和地址缓冲器)。
[0098]
如果存在所指示的问题,则配置确定存储器130中的地址或数据本身是否存在问
题。如果ecc位确定不存在关于数据的问题,那么其可指示关于存储器地址的问题,因为数据可能已从错误地址位置提取。如果存在数据不匹配,则由于写入存储器130的数据与从存储器130接收的数据不匹配,所以它可指示存储器位置被破坏。因此,存储器位置可被验证为损坏或未损坏或故障。地址/数据错误检测检查器10进行在某一地址上写入的数据之间的比较,并将其与存储器130内的实际数据进行比较。这还可指示在第一次写入时,例如在其被写入的第一次,反转的位被写入。反转的位也位于数据和地址延迟缓冲器9中。这些反转的位被写入存储器位置。当完成随后的读取时,数据返回并与地址延迟缓冲器9中本地存储的数据进行比较。如果它们相等,则该存储器位置是可用的并且没有错误。如果数据不相等,则可能存在存储器错误,并且不应该使用该存储器位置,因为它可能被破坏。
[0099]
来自地址/数据错误检测检查器10的输出是数据本身,如果不存在错误,那么其通过rds(例如,mux)6且输出到数字逻辑120。如果存在错误,则错误信号输出到数字逻辑120。存储器错误信息在总线上并且可以是例如3位。这些位允许向数字逻辑120报告特定错误。例如,一个错误可以通知存储器位置被破坏。另一个可以通知数据被破坏。另一个例子是可能存在地址损坏,但是存储器130正在工作。另一个例子是地址可能是错误的,并且错误可能与地址输入位有关。因为地址也被本地存储,与被读回的数据一起,它可以比较错误检测位以确定数据中是否没有错误。它还可以确定地址中是否存在错误,因为检测位给出了关于用于存储该数据的原始地址的信息。这些应当与输入的地址相匹配。
[0100]
转向有限状态机(fsm)11,它作为msim 110的控制器操作。fsm 11可以通过逻辑电路或具有被配置为如这里所描述的操作的程序代码的处理器来例示。举例来说,fsm 11确定是否存在读取或写入动作。基于此,将通过状态图来执行不同的动作。如果fsm 11获得存储器使能和写入使能,则它将断言信号a和信号b。fsm 11分别在数据写入缓冲器2和地址写缓冲器3中进行数据和地址的本地拷贝。当这完成时,fsm 11将数据和地址转发到存储器130。数据被反转,因此信号g(参见上面的表2和图2)将被激活。数据将被反转,写入命令进入存储器130。fsm 11在下一个周期中启动对相同存储器位置的读取。它读回该存储器位置,并进行比较以出是否有错误。在状态机中,在其已执行读取之后,其将进行另一写入。该写入不会反转数据,因为在第二次写入中,所请求的数据将被存储到存储器130中。因此,存在用非反转信号对存储器130的写入。fsm 11开始第二次读取以验证第二次写入没有错误。如果不正确,地址/数据错误检测检查器10将产生错误。如果是正确的,则状态机将指示没有错误,并且可以从数字逻辑120进行下一次写入或读取。
[0101]
当fsm 11正在进行读取和写入时,fsm 11还向数字逻辑120发信号通知fsm 11由于其繁忙且使用存储器130而无法进行另一写入。为了对此进行管理,fsm 11产生k信号(其为搁置信号),其将指示fsm 11例如在写入动作中忙碌。如果数字逻辑120试图启动另一个写入,则它将需要等待直到k搁置信号被完成。如果k搁置信号有效,则数字逻辑120仍被允许执行读取。这里,fsm 11将获得请求存储器读取的新动作。fsm 11检查其是否具有例如其正在执行的写入功能的本地拷贝,或者其是否将转发存储器读取。fsm 11将停止写入、读取、写入、读取(wrwr过程)。fsm 11将首先进行读取,然后当读取完成时,fsm 11将继续进行写入、读写、读取(wrwr)处理。fsm 11监视在其仍在处理(例如)写入时是否有新读取进入,读取具有高于写入的优先权。fsm 11将在继续写入之前首先执行读取。这些操作的流程也通过上表1和2反映。
[0102]
所公开的配置有利地在使用存储器位置之前测试它们。本系统可通过首先进行写入(例如,经反转的数据)来进行此操作,写入可意味着破坏存储器中的值。此后,检查已经完成,然后第二次写入是数据的实际存储。通过在这之后读取数据,所公开的配置能够具有类似mbist的操作,但是现在mbist类型的操作在单个存储器地址位置上。这与对所有地址位置进行检查的mbist形成对比。因此,与mbist相反,所公开的配置仅检查可能感兴趣使用的地址位置,而不是必须检查所有存储器位置。这还意味着如果存在被破坏的其它地址位置,则这可能无关紧要,因为此时将不使用这些地址位置。例如,所公开的配置在四个周期中验证存储器130中的可用且可在存储器130中使用的感兴趣的即时位置。这节省了处理时间和资源。
[0103]
接下来转到图3至图8,示出了关于msim 110的操作的时钟周期的示例。在图3中,示出了写入读取写入读取(wrwr)操作的步骤1。注意,这些线用于控制信号310、地址信号320和数据信号330。第一步是存储器检查。存在使能的存储器和写入。这意味着试图写入存储器。写入使能数据235和存储器使能数据215的信息被发送到fsm 11。fsm 11确保地址和数据被存储在本地地址写入缓冲器3和本地数据缓冲器2中。
[0104]
同时,fsm 11与存储器130通信以不丢失周期。除了将地址复制到地址写入缓冲器3中之外,fsm 11还将地址与写入数据一起直接发送到存储器130。数据反转器7能够将反转的数据存储到存储器130中。当数据反转器7被使能330时,经反转的数据被本地存储在数据和地址延迟缓冲器9中,其中经反转的数据将在下一周期期间被使用。类似地,控制地址进入地址/数据错误检测产生器8,用于产生额外的检测位,并将用于在数据从存储器130返回时确定它是数据还是地址错误。具有额外检测位和地址的数据被转发到存储器130用于存储。
[0105]
在写入操作期间,fsm 11还发信号通知下一次写入需要被保持,因为它不能同时进行两次写入。它需要等待直到当前写入操作完成。然而,读取不被fsm 11阻挡。
[0106]
图4和5示出wrwr操作的第二步骤。图4是wrwr操作中的步骤2a。这里,本地地址由地址写入缓冲器3存储。如果数字逻辑120试图与读取和控制信号一起传输到存储器130,那么在数字逻辑120与msim 130之间的边界处可存在任何新地址。同时,当进行读取时,msim 110搁置对数字逻辑120的写入。存储器130在下一个周期中返回数据,如图5中的数据信号330所示。msim 110返回具有进入地址数据检测块(错误检测检查器10)的数据的额外数据检测位。错误检测检查器10被使能,如输入到错误检测检查器10的控制信号310所示,以验证在前一周期中发送的地址和数据被返回。错误检测检查器10还检查发送到存储器130的数据和从存储器130返回到数字逻辑120的数据是否相等。对照检测位一起校验地址和数据,以确定检测位中是否有任何错误或读取数据是否对应于错误地址。因此,该配置检查地址线和数据线以及检测位。如果错误检测检查器10没有确定任何错误,则配置可以继续下一阶段。
[0107]
图6是wrwr操作中的下一阶段或步骤3。这里,数据反转器7被禁用。原始数据准备好存储到存储器130中。此外,原始数据将被存储在存储器130中的特定地址位置处。控制信号标识要在存储器130中写入的地址位置。为了确保检测所存储的内容,配置还将检测额外ecc位与数据一起存储到存储器130中。当写入数据被验证时,其允许检查例如检测位或地址上没有其它错误。数据和地址延迟被激活以复制被写入其中的新数据,例如本地数据和
地址延迟缓冲器9。当被激活时,如果写入是高信号,则该配置可能仍然没有准备好用于写入-读取-写入-读取(wrwr)操作(在此也称为微型检查)。因此,搁置信号(例如,搁置信号250(k))可以是活动的。
[0108]
例如,msim 110可以从数字逻辑接收原始数据。原始数据的位可以被反转以产生经反转的数据。经反转的数据被写入存储器130地址。然后从存储器130地址读回经反转的数据。地址和数据错误检测检查器10确定存储器地址和经反转的数据是否正确。如果经反转的数据和存储器地址是正确的,则可将原始数据写入存储器130地址。如果经反转的数据和存储器地址不正确,那么可将错误指示提供到(例如)数字逻辑120。
[0109]
图7是wrwr操作的步骤4a,示出了下一个时钟周期。在此实例中,下一时钟周期是读取。这里,读回刚写入的地址以检查数据。该检查可以确定数据是否已经被正确地存储并且存储器130内的信息是有效的并且其中没有错误。来自地址写入缓冲器3的地址被提供给存储器130。此外,fsm 11为存储器130创建读取控制信号。由于微型检查可能还没有完成,所以写入搁置信号,例如搁置k信号250是有效的。这可以使存储器130能够在下一个周期中提供回数据。
[0110]
现在参考图8,示出了msim 110中的wrwr操作的步骤4b,其是读取。该操作可以是步骤4a(图7)的操作之后的一个时钟周期。存储器130正在返回所请求的地址位置的数据。数据与其保护位一起返回。将返回的数据与存储它的本地数据和地址进行比较。数据被比较以确定存储器130中是否存在任何数据错误。将错误位与地址和数据进行比较,以确保地址位置或其中的数据没有错误。同时,因为这是微型检查的最后阶段,所以因为不再需要本地地址写入缓冲器和数据缓冲器,所以移除写入搁置信号,例如搁置信号250。原始数据被存储到存储器130中,并且存储器130内的内容被确认为未被破坏、有效和正确。如果现在接收到例如针对该存储器位置地址的读取,则其可以直接到达存储器130。可以是诸如处理器或控制器的ip块的数字逻辑120现在可以进入正常阶段。数字逻辑120的正常相位允许例如读取直接到存储器130。
[0111]
现在参考图9,示出了作为控制器操作的数字逻辑120的操作示例。在图9中,示出了地址缓冲器未命中的配置,即没有进行地址匹配。这里,这可以在输入地址和存储在地址写入缓冲器3中的地址之间的地址比较4中检查。如果存在来自控制器的读取,则首先检查数据是否仍然在本地数据写入缓冲器2中。如果它不在本地数据写入缓冲器2中,则它直接到达存储器130。msim 110将地址存储到地址延迟中。到数据地址延迟的地址信号320不是有效的,并且如果不是有效的,则它将仅把地址存储到数据和地址延迟缓冲器9中。
[0112]
图10说明下一时钟周期中控制器读取,缓冲器未命中的步骤2。这里,存储器130将返回存储器130中该地址位置的数据。它还将返回先前存储的检测位。地址与数据和检测位一起相互验证。通过相互验证,msim 110确定数据是否可能被破坏。如果数据和检测位属于一起,但它们不属于存储器130中的特定地址位置,则这可指示可能的破坏。如果存在例如传输到存储器130的存储器地址的错误,这可能由于存在停滞或瞬时错误而发生,这可能是由于到存储器130的地址信号320不等于发送到数据和地址延迟缓冲器9的地址信号320。从存储器130中的存储器位置接收的数据和从同一存储器位置接收的检测位应属于一起。如果不是,则针对例如错误检测位的地址检测将失败并触发地址问题。如果没有故障,则数据被返回到控制器和接收正确数据的控制器。
[0113]
现参看图11,其图解说明存在缓冲器命中或匹配的控制器读取。数字逻辑120(例如,控制器)寻求从存储器130中的地址读取。在时钟信号上,存储器使能和读取使能信号被发送到fsm 11。控制器地址信号被发送到地址比较4。在这个例子中,地址比较匹配,并且匹配被发送到fsm 11。
[0114]
图12说明fsm 11对数字逻辑120(例如控制器)的操作,数字逻辑120以缓冲器匹配来读取。在时钟信号上,fsm 11使能数据mux6。数据mux 6经由信号f(参见表2和图2)允许来自数据写入缓冲器2的本地数据并将其直接传输回数字逻辑120。
[0115]
接下来转到图13和14,示出了控制器操作的状态图。控制器以两种模式操作模式一或模式零。模式一是任务模式。模式零是特殊模式,其中在重置之后,首先进行wrwr检查以验证存储器控制信号,并且如果成功,则控制器进行到模式一。
[0116]
表2显示了控制器模式:
[0117]
模式0:存储器选择检查
[0118]
重写存储器选择(存储器选择无效);
[0119]
开始wrwr(使用“自定义预定义”重置地址和“自定义预定义”重置数据。
[0120]
模式1:正常模式
[0121]
完成模式0后自动进行。
[0122]
替代实施方式:
[0123]
如果实现时钟选通,则可以忽略存储器选择的固定_在-1;
[0124]
时钟选通和存储器选择是冗余的(如果存储器动作被完成,则仅时钟);
[0125]
在时钟选通的情况下,存储器选择可以被限制并且不需要模式0。
[0126]
转到图13,在重置之后,msim 110进入模式1,模式1是msim 110的正常任务模式。重置使msim 110进入空闲模式。在fsm 11处于空闲模式的情况下,如果msim 110接收到存储器读取,则它将进入读取状态并从存储器130读取。如果msim 110得到新的读取请求,则它将停留在该模式中,并且它将进行更多的存储器读取。当不再有存储器读取时,fsm 11返回到空闲状态。如果fsm 11正在读取数据,但接收到写入数据请求,则fsm 11从空闲模式或读取数据模式进入微型检查(wrwr过程),即图13的顶行。这里,写入将反转数据,然后读取经反转的数据。写入原始数据,并进行微型检查。存储器位置可安全地使用或提供指示存在错误的一个或多个信号。如果完成了微型检查,则可以针对不同的存储器位置输入新的存储器检查微型检查,或者不再有动作,并且fsm 11返回到空闲状态。
[0127]
在微型检查期间,fsm 11处于状态cc或ee或gg或ii。这里,控制器可以设法进行读取,但是因为它不希望阻止控制器的性能,所以它可以停止微型检查。在这种情况下,fsm 11可以从微型检查状态进入读取数据状态并保持在该读取数据状态或返回微型检查状态。在这种情况下,如果存在写入到存储器130中的数据,则微型检查控制器可能想要访问不同的地址并从该地址读取,使得微型检查处于保持状态。它首先服务于新的读取,然后它将返回到微型检查并将继续微型检查。这在图13中被示为从cc到dd到ee。在微型检查的每个状态中,如果存在处于读取状态的存储器,则它具有较高的优先级,然后进入读取数据状态,如图中所示。
[0128]
现在转到图14,示出了从重置出现时的控制器。这里,msim 110还可以进行微型检查。如果完成了微型检查,则msim 110进入空闲状态并向控制器提供进行读取和写入的可
能性。这可以在引导操作(例如,对控制信号的检查)期间完成。读取、写入和选择信号用于验证存储器130作为预校验,并将其置于功能(任务)模式中使用。也可以是微型检查指示存储器130被破坏并且可能不可用。此处的微型检查的原因是因为还没有启动有效的控制器访问。控制器可以仍然处于重置状态,并且在该重置模式中,这种微型检查验证存储器130的预定位置。
[0129]
图15示出了计算机系统1500的示例性机器,在该机器内可以执行用于使该机器执行在此讨论的任何一个或多个方法的一组指令。在替代实现中,机器可以连接(例如,联网)到lan、内联网、外联网和/或因特网中的其它机器。该机器可以在客户端-服务器网络环境中的服务器或客户端机器的能力下操作,作为对等(或分布式)网络环境中的对等机器,或者作为云计算基础设施或环境中的服务器或客户端机器。
[0130]
该机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、web设备、服务器、网络路由器、交换机或网桥、或能够执行指定该机器要采取的动作的一组指令(顺序的或其它的)的任何机器。此外,虽然示出了单个机器,但是术语“机器”还应当被理解为包括单独地或联合地执行一组(或多组)指令以执行在此讨论的任何一个或多个方法的机器的任何集合。
[0131]
示例计算机系统1500包括经由总线1530彼此通信的处理设备1502、主存储器1504(例如,只读存储器(rom)、闪存、诸如同步dram(sdram)的动态随机存取存储器(dram)、静态存储器1506(例如,闪存,静态随机存取存储器(sram)等)和数据存储设备1518。
[0132]
处理设备1502表示一个或多个处理器,例如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实现其它指令集的处理器、或实现指令集组合的处理器。处理设备1502还可以是一个或多个专用处理设备,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理设备1502可以被配置为执行用于执行这里描述的操作和步骤的指令1526。
[0133]
计算机系统1500还可以包括通过网络1520进行通信的网络接口设备1508。计算机系统1500还可以包括视频显示单元1510(例如,液晶显示器(lcd)或阴极射线管(crt))、字母数字输入设备1512(例如,键盘)、光标控制设备1514(例如,鼠标)、图形处理单元1522、信号生成设备1516(例如,扬声器)、图形处理单元1522、视频处理单元1528和音频处理单元1532。
[0134]
数据存储设备1518可以包括机器可读存储介质1524(也被称为非暂态计算机可读介质),在该介质上存储了体现这里描述的任何一个或多个方法或功能的一组或多组指令1526或软件。在计算机系统1500执行指令1526期间,指令1526也可以完全或至少部分地驻留在主存储器1504内和/或处理设备1502内,主存储器1504和处理设备1502也构成机器可读存储介质。
[0135]
在一些实现中,指令1526包括实现对应于本公开的功能的指令。虽然机器可读存储介质1524在示例实现中示出为单个介质,但是术语“机器可读存储介质”应当被理解为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“机器可读存储介质”还应当被理解为包括能够存储或编码用于由机器执行的指令集并且使得机器和处理设备1502执行本公开的任何一个或多个
方法的任何介质。因此,术语“机器可读存储介质”应被理解为包括但不限于固态存储器,光学介质和磁性介质。
[0136]
前面的详细描述的某些部分是根据对计算机存储器内的数据位的操作的算法和符号表示来呈现的。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域的其他技术人员的方式。算法可以是导致期望结果的操作序列。这些操作是需要物理量的物理操纵的那些操作。这些量可以采取能够被存储,组合,比较和以其他方式操纵的电或磁信号的形式。这样的信号可以被称为位、值、元素、符号、字符、项、数字等。
[0137]
然而,应当记住,所有这些和类似的术语将与适当的物理量相关联,并且仅仅是应用于这些量的方便标记。除非特别声明,否则如从本公开显而易见的,应当理解,在整个说明书中,某些术语是指计算机系统或类似的电子计算设备的动作和过程,其将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和转换为类似地表示为计算机系统存储器或寄存器或其他这样的信息存储设备内的物理量的其他数据。
[0138]
本公开还涉及一种用于执行这里的操作的装置。该装置可以为了预期目的而专门构造,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的计算机。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于,包括软盘、光盘、cd-rom和磁光盘的任何类型的盘、只读存储器(rom),随机存取存储器(ram)、eprom、eeprom、磁卡或光卡、或者适合于存储电子指令的任何类型的介质,每个耦合到计算机系统总线。
[0139]
这里给出的算法和显示并不固有地涉及任何特定的计算机或其它装置。根据这里的教导,各种其它系统可以与程序一起使用,或者可以证明构造更专用的装置来执行该方法是方便的。此外,不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施本文所描述的本发明的教示。
[0140]
本公开可以被提供为计算机程序产品或软件,其可以包括其上存储有指令的机器可读介质,所述指令可以用于对计算机系统(或其他电子设备)编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“rom”),随机存取存储器(“ram”),磁盘存储介质,光存储介质,闪存设备等。
[0141]
在前述公开中,已经参考其特定示例实现描述了本公开的实现。显然,在不脱离如以下权利要求中阐述的本公开的实现的更宽精神和范围的情况下,可以对其进行各种修改。在本公开以单数形式提及一些元件的情况下,可以在附图中描绘多于一个元件,并且相同的元件用相同的数字标记。因此,本公开和附图被认为是说明性的而不是限制性的。

技术特征:


1.一种测试存储器的存储器地址和所述存储器地址内的数据的方法,所述方法包括:从数字逻辑接收原始数据;反转所述原始数据的位以生成经反转的数据;将经反转的数据写入所述存储器地址;从所述存储器地址读取经反转的数据;确定所述存储器地址和经反转的数据是否正确;以及执行以下之一:响应于所述存储器地址和经反转的数据是正确的,将所述原始数据写入所述存储器地址;以及响应于所述存储器地址和经反转的数据中的至少一个或多个是不正确的而传输错误指示。2.根据权利要求1所述的方法,还包括在写入所述存储器之前将所述原始数据存储在缓冲器中。3.根据权利要求1所述的方法,其中经反转的数据的所述写入还包括:生成错误标识符值;以及将对应于经反转的数据的所述错误标识符值写入所述存储器地址。4.根据权利要求3所述的方法,其中所述确定所述存储器地址和经反转的数据是否正确还包括:检查对应于所接收的经反转的数据和存储器地址的所述错误标识符值。5.根据权利要求1所述的方法,还包括:生成错误纠正码(ecc)值;以及利用与所述原始数据对应的ecc值向所述存储器地址写入。6.根据权利要求5所述的方法,还包括:从所述存储器地址读取所述原始数据和所述ecc值;以及使用所述对应的ecc值检查从所述存储器位置读取的所述原始数据是正确的。7.根据权利要求1所述的方法,还包括:从所述数字逻辑接收请求以将第二原始数据写入所述存储器;以及响应于所述数据正在被写入所述存储器,向所述数字逻辑传输搁置信号。8.根据权利要求1所述的方法,还包括:从所述存储器地址读取所述原始数据;确定所述存储器地址和所述原始数据是否正确;并且如果不正确,传输错误指示。9.根据权利要求1所述的方法,其中来自数字逻辑的接收到的时钟信号能够被阻塞或屏蔽以节省存储器功率。10.一种非暂态计算机可读存储介质,包括所存储的指令,所述指令能够由至少一个处理器执行,所述指令在被执行时使得所述处理器:从数字逻辑接收原始数据;反转所述原始数据的位以生成经反转的数据;向所述存储器地址写入经反转的数据;从所述存储器地址读取经反转的数据;确定所述存储器地址和经反转的数据是否正确;以及
执行以下之一:响应于所述存储器地址和经反转的数据是正确的,将所述原始数据写入所述存储器地址;以及响应于所述存储器地址和经反转的数据中的至少一者是不正确的而传输错误指示。11.根据权利要求10所述的非暂态计算机可读存储介质,其中所述原始数据在写入所述存储器之前被存储在缓冲器中。12.根据权利要求10所述的非暂态计算机可读存储介质,其中用以写入经反转的数据的所述指令还包括在被执行时使得所述处理器执行以下操作的指令:生成错误标识符值;以及将对应于经反转的数据的所述错误标识符值写入所述存储器地址。13.根据权利要求12所述的非暂态计算机可读存储介质,其中用以确定所述存储器地址和经反转的数据是否正确的所述指令还包括:在执行时使得所述处理器检查对应于所接收的经反转的地址的所述错误标识符值的指令。14.根据权利要求10所述的非暂态计算机可读存储介质,还包括在被执行时使得所述处理器执行以下操作的指令:生成错误纠正码(ecc)值;以及利用与所述原始数据对应的ecc值向所述存储器地址写入。15.根据权利要求14所述的非暂态计算机可读存储介质,还包括在被执行时使得所述处理器执行以下操作的指令:从所述存储器地址读取所述原始数据和所述ecc值;以及基于所述对应的ecc值检查从所述存储器位置读取的所述原始数据是正确的。16.根据权利要求10所述的非暂态计算机可读存储介质,还包括在被执行时使得所述处理器执行以下操作的指令:从所述数字逻辑接收请求以将第二原始数据写入所述存储器;以及如果所述原始数据正在被写入所述存储器,则向所述数字逻辑传输搁置信号。17.根据权利要求10所述的非暂态计算机可读存储介质,还包括在被执行时使得所述处理器执行以下操作的指令:从所述存储器地址读取所述原始数据;确定所述存储器地址和所述原始数据是否正确;并且如果不正确,传输错误指示。18.根据权利要求10所述的非暂态计算机可读存储介质,其中来自数字逻辑的接收到的时钟信号能够被阻塞或屏蔽以节省存储器功率。19.一种非暂态计算机可读存储介质,包括存储的指令,所述指令能够由至少一个处理器执行,所述指令在被执行时使得所述处理器:向存储器传输第一存储器使能信号、第一写入信号、存储器地址和原始数据以发起写入;存储地址写入缓冲器中的所述存储器地址和数据写入缓冲器中的所述数据;反转所述原始数据的每个位以形成经反转的数据;在延迟缓冲器中存储经反转的数据和所述存储器地址;在错误检测发生器中串接经反转的数据和所述存储器地址以生成第一错误标识符;
向所述存储器传输经反转的数据和所述第一错误标识符;将第二存储器使能信号和第一读取信号传输到所述存储器;从所述存储器地址读取经反转的数据和所述第一错误标识符,以通过将所述延迟缓冲器中的所述数据与所读取的经反转的数据进行比较来确认所述数据、所述第一错误标识符和所述存储器地址是正确的;以及将所述原始数据和所述存储器地址存储到所述延迟缓冲器中。20.根据权利要求19所述的非暂态计算机可读存储介质,还包括所存储的指令,所述指令在被执行时使得所述处理器:在错误检测发生器中串接所述原始数据和所述存储器地址以生成第二错误纠正码;向所述存储器传输第三存储器使能信号、第二写入信号;向所述存储器地址传输所述原始数据和所述第二错误标识符;向所述存储器传输第四存储器使能信号和第二读取信号;从所述存储器地址读取所述原始数据和所述第二错误标识符,以通过将所述延迟缓冲器中的所述数据与所读取的原始数据进行比较来确认所述数据、所述第二错误标识符和所述存储器地址是正确的;以及将读取的原始数据和所述第二错误标识符与存储在所述延迟缓冲器中的所述存储器地址进行比较,以确认所述数据、所述第二错误标识符和所述存储器地址是正确的。

技术总结


存储器安全接口模块(MSIM),被配置为测试存储器。MSIM从数字逻辑接收原始数据,并反转原始数据的位以产生经反转的数据。它将经反转的数据写入存储器地址。MSIM从存储器地址读取经反转的数据,并确定存储器地址和经反转的数据是否正确。MSIM或者响应于存储器地址和经反转的数据是正确的而将原始数据写入存储器地址,或者响应于存储器地址和经反转的数据中的至少一个是不正确的而发送错误指示。MSIM从存储器地址读取原始数据,并且响应于存储器地址和原始数据中的至少一个不正确,确定存储器地址和原始数据是否正确或者发送错误指示。址和原始数据是否正确或者发送错误指示。址和原始数据是否正确或者发送错误指示。


技术研发人员:

A

受保护的技术使用者:

美商新思科技有限公司

技术研发日:

2022.06.14

技术公布日:

2022/12/15


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-61974-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-12-25 20:54:33

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论