CN116820910A - 处理装置、用于处理装置的验证装置和验证方法 - Google Patents
处理装置、用于处理装置的验证装置和验证方法 Download PDFInfo
- Publication number
- CN116820910A CN116820910A CN202311092133.1A CN202311092133A CN116820910A CN 116820910 A CN116820910 A CN 116820910A CN 202311092133 A CN202311092133 A CN 202311092133A CN 116820910 A CN116820910 A CN 116820910A
- Authority
- CN
- China
- Prior art keywords
- data
- register
- output
- length
- update data
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000012795 verification Methods 0.000 claims abstract description 36
- 238000006243 chemical reaction Methods 0.000 claims abstract description 22
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000012360 testing method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 12
- 238000010200 validation analysis Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 229910044991 metal oxide Inorganic materials 0.000 description 6
- 150000004706 metal oxides Chemical class 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000873 masking effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及处理装置、用于处理装置的验证装置和验证方法。一种处理装置包括:寄存器单元;以及接口单元,所述接口单元与所述寄存器单元耦合并且包括转换模块,其中,所述转换模块用于将所述寄存器单元中的更新数据转换成输出数据,并且所述输出数据的长度是固定的且小于所述更新数据的长度。
Description
技术领域
本公开的实施例总体涉及计算机领域,具体地,涉及处理装置、用于处理装置的验证装置和验证方法。
背景技术
为了验证被测器件(DUT)(例如,处理器或处理装置等)的具有灵活长度的向量指令(例如,第五代精简指令集计算机(Reduced Instruction Set Computer-V,RISC-V)的向量扩展和ARM的可伸缩向量扩展(Scalable Vector Extension,SVE)等),难以定义DUT与验证装置(例如,测试台等)之间用于传输DUT在数据提交阶段中提交的与待验证向量指令或数据有关的信息的接口。
发明内容
本公开的一方面提供了一种处理装置,包括:寄存器单元;以及接口单元,所述接口单元与所述寄存器单元耦合并且包括转换模块,其中,所述转换模块用于将所述寄存器单元中的更新数据转换成输出数据,并且所述输出数据的长度是固定的且小于所述更新数据的长度。
本公开的一方面提供了一种用于处理装置的验证装置,包括:转换模块,用于基于来自参考模型的提交日志中的寄存器数据生成参考信号;以及比较模块,用于将从所述处理装置接收到的输入信号与所述参考信号进行比较,其中,所述输入信号包括输入数据,所述输入数据是通过转换所述处理装置中的寄存器单元中的更新数据生成的,并且所述输入数据的长度是固定的且小于所述更新数据的长度。
本公开的一方面提供了一种用于处理装置的验证方法,包括:基于所述处理装置中的寄存器单元中的更新数据生成输出数据,其中,所述输出数据的长度是固定的并且小于所述更新数据的长度;编码输出信号以传输至与所述处理装置连接的验证装置,其中,所述输出信号包括所述输出数据;基于来自参考模型的提交日志中的寄存器数据生成参考信号;以及将所述输出信号与所述参考信号进行比较。
本公开的一方面提供了一种其上存储有计算机可执行指令的计算机可读存储介质,其中所述计算机可执行指令在由处理电路执行时使所述处理电路执行以下操作:基于处理装置中的寄存器单元中的更新数据生成输出数据,其中,所述输出数据的长度是固定的并且小于所述更新数据的长度;编码输出信号以传输至与所述处理装置连接的验证装置,其中,所述输出信号包括所述输出数据;基于来自参考模型的提交日志中的寄存器数据生成参考信号;以及将所述输出信号与所述参考信号进行比较。
附图说明
在附图中,将通过示例而非限制的方式说明本公开的实施例,其中相同的参考标号指代相似的元件。
图1示出了影响与待验证的向量指令有关的验证数据宽度的一些因素的示意图。
图2示出了用于具有向量指令的处理器的验证接口的示意图。
图3示出了根据本公开的一些实施例的验证框架的顶层视图。
图4示出了根据本公开的一些实施例的利用散列来将提交的更新寄存器数据转换为输出的散列寄存器数据的示意图。
图5示出了根据本公开的一些实施例的利用异或(XOR)来将寄存器数据转换为用于验证的输出寄存器数据的示意图。
图6图示了示例处理器和/或片上系统(System on a Chip,SoC)的框图,该处理器和/或SoC可以具有一个或多个核心并具有集成存储器控制器。
图7是根据一些示例的寄存器体系结构的框图。
具体实施方式
将使用本领域技术人员常用的术语来描述说明性实施例的各个方面,以将本公开的实质传达给本领域其他技术人员。然而,对于本领域技术人员来说显而易见的是,可以使用所描述的方面的部分来实施许多替代实施例。出于解释的目的,给出了具体的数字、材料、和配置,以便提供对说明性实施例的透彻理解。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实施替代实施例。在其它实例中,为了避免模糊说明性实施例,可以省略或简化公知特征。
此外,以最有助于理解说明性实施例的方式,将各种操作依次描述为多个离散操作;然而,不应将描述顺序解释为暗示这些操作必然是顺序相关的。特别地,这些操作不需要按照呈现的顺序来执行。
本文中重复使用短语“在实施例中”、“在一个实施例中”、和“在一些实施例中”。这些短语通常不指代相同的实施例;然而,它们也可以指代相同的实施例。除非上下文另有规定,否则术语“包含”、“具有”、和“包括”是同义词。短语“A或B”和“A/B”的意思是“(A)、(B)、或(A和B)”。
仅为了便于描述的目的,本文中以被测器件(DUT)作为处理器或处理装置为例来进行相关说明。本领域技术人员将可以理解的是,本公开的技术方案可以根据需要应用于任何其他适当类型的被测器件,本公开对此不进行限制。
对于处理器来说,在数据提交阶段(例如,用于向处理器中的寄存器等单元提交更新的向量指令等),用于提交更新的向量指令所需的更新数据位数或宽度因多种因素而异。这些因素包括架构向量寄存器的灵活性(例如,向量寄存器的长度)、与将连续寄存器组合成单个较大寄存器有关的寄存器组合信息、寄存器的元素掩蔽信息、以及每个周期所提交的指令数目,等等。对于现代超标量处理器,每个周期所提交的指令数目可能大于一个。图1示出了影响与待验证的向量指令有关的验证数据宽度的一些因素的示意图。在图1中,VLEN表示向量寄存器的长度,其指示架构向量寄存器的灵活性,阴影部分则指示寄存器的元素掩蔽信息,并且仅作为示例,寄存器分组例如使用四个向量寄存器来组合作为单个较大向量寄存器。
随着数据提交阶段中用于后续测试或验证的有用数据位的变化,如何为向量指令设计干净且高效的验证接口和框架是一个挑战。
一种直接而保守的方法是将数据提交阶段的周期内可能变化的所有内容(例如,提交的更新向量指令或数据)都进行传输和存储。例如,处理器在一个时钟周期内所有可能更新的向量指令的数据都传输到验证装置中以用于进行测试或验证。这意味着用于传输待验证数据的验证接口或端口的宽度必须很大,也需要耗费大量的传输和存储空间,并且验证装置进行后续测试或验证所需要处理的数据量也会很大。以RISC-V的向量扩展作为示例,最多可以将八个向量寄存器组合成单个向量寄存器,并且VLEN表示单个向量寄存器的长度。假设最多可以在一个周期中提交N个向量指令,则处理器或验证装置的向量指令测试端口的数据宽度需要为N*8*VLEN。
此外,为了将待验证数据与来自参考模型的参考数据的结果进行比较,还应该输出这些向量寄存器的地址、寄存器分组信息和元素掩蔽信息。类似地,这些信息的有用数据位的数目随周期而变化,并且用于这些信息的端口宽度也以如前所述的保守方式定义。
针对这种保守设计的典型验证接口如图2所示。图2示出了用于具有向量指令的处理器的验证接口的示意图。在图2中,以DUT作为具有向量扩展的处理器为例,示出了DUT与验证装置(如图2所示的测试台)之间用于传输DUT的待验证数据的验证接口的示意图。
假设寄存器的地址索引宽度为5比特(因为向量寄存器堆一共有32个寄存器),LMUL_MAX为向量寄存器组合的最大数目,NCOMMIT_MAX为每个周期提交的指令的最大可能数目。则在图2中,信号vd_addr的端口宽度为NCOMMIT_MAX*LMUL_MAX*5,并且信号vd_data的端口宽度为NCOMMIT_MAX*LMUL_MAX*VLEN。实际寄存器分组信息和处理器的程序计数器(program counter,pc)的提交计数信息分别由信号vd_emul和信号pc表示,其中,信号pc表示与程序中指令在内存中的地址相对应的信号,它按每条指令基于内存地址的索引递增。信号vd_mask输出向量寄存器的掩蔽位。
信号csr_addr、csr_data、rd_addr和rd_data分别用于控制和状态寄存器(CSR)以及整数/浮点寄存器状态更新。这些信号的端口宽度取决于每个周期提交的指令的最大可能数目。
需要注意的是,图2中仅示出了大部分相关信号,未列出其他一些信号,如就绪信号等。
上述用于具有向量指令的处理器的验证接口具有以下缺点:1. 效率低下。保守的宽度意味着验证接口的宽度明显更高,并且一些信号带宽没有得到充分利用;2. 复杂。某些信号的信息,例如pc的计数信息、寄存器的掩蔽信息和寄存器分组信息,在数据提交阶段可能不可见。例如,如果整个向量寄存器被掩蔽掉,则提交时就不会涉及该寄存器,也就不会涉及与该寄存器有关的信息。为了输出这些在数据提交阶段可能不可用的信号,相关数据必须从其他阶段缓冲并与最终提交在时间上对齐。因此,验证逻辑分布在多个阶段的流水线中,这是侵入性的,并且不利于维护设计DUT的设计电路逻辑。
这两个缺点会影响构建验证框架。特别是如果处理器是基于现场可编程门阵列(FPGA)仿真的,则接口的效率低下,并且测试逻辑复杂,导致传输负担大且频率低。
鉴于上述情况,本公开提出了替代在验证接口中传输每个向量寄存器的值,而是输出更新寄存器的值的特定位操作(例如校验和、散列)的结果。此外,本公开提出了尽可能少地使用在提交阶段不可用的信息。例如,将在提交阶段不可用的信号pc替换为与提交的指令的计数数目相对应的信号(即,用于对提交指令的数目进行计数的计数器的值)。
根据本公开的实施例的用于灵活长度向量指令的高效验证接口和框架,具有以下优点:1. 提高效率和便携性。随着验证接口的宽度固定和变小,对动态因素的依赖越来越少,验证框架可以实现更高的性能,并用于更多不同的配置;2. 只需要修改转换模块中生成输出数据的方法,就可以收集有用的信息用于测试。
图3示出了根据本公开的一些实施例的验证框架的顶层视图。如图3所示,根据本公开的一些实施例,提出了一种新的验证接口。相比于图2所示的验证接口,图3中所示的验证接口对要在处理器与测试台之间传输的一些信号进行了修改,图2中示出的信号pc、csr_data、rd_data、以及vd_data在图3中被分别修改为commit_id(表示与每个周期所提交的指令的计数数目相对应的信号,即用于对提交指令的数目进行计数的计数器的值)、csr_data_hash、rd_data_hash、以及vd_data_hash。DUT和测试台中与修改后的信号相关的测试逻辑模块包括转换模块、以及用于基于转换后的数据进行比较的比较模块。
根据本公开的一些实施例,转换模块可以是散列模块,以用于通过散列来固定数据信号的宽度。例如,散列模块可以使用散列来固定基于DUT的待测试或验证的寄存器数据的输出信号的宽度,或者固定用于与上述输出信号进行比较的基于参考模型中寄存器数据信号的参考信号宽度。散列是保持稳定和宽度减少的验证接口的关键。
对于每个周期,如果在提交阶段存在向量寄存器更新,则这些更新向量寄存器的值被输入到转换模块(例如,散列模块)中以生成具有更小且固定的长度的输出信号vd_data_hash。这个过程如图4所示。图4示出了根据本公开的一些实施例的利用散列来将提交的更新寄存器数据转换为输出的散列寄存器数据的示例。
利用散列函数对数据执行散列可以实现以下目的:将长度可变的寄存器数据转换为长度固定的寄存器数据,并且最小化可能的冲突,尤其是可以最小化与正确数据的冲突。散列函数的主要重点是固定寄存器数据的输出信号的长度。在选择散列函数时,主要根据可接受的冲突概率选择合适的压缩比。压缩比越低,散列值的长度越大,冲突概率越低。例如,使用160位校验和,可以区分散列冲突概率小于。
需要说明的是,在校验和、数字指纹、密码学、纠错码等各个领域存在很多散列算法,可以根据需要选择适当的散列算法用于对数据执行散列。此外,还可以使用基于有偏冲突的散列方法或检测方法。
图5示出了根据本公开的一些实施例的利用异或(XOR)来将寄存器数据转换为用于验证的输出寄存器数据的示意图。在图5中,示出了使用简单的按位异或将两个512位向量寄存器(如图5所示,每个512位向量寄存器包括2个256位向量寄存器)转换为或映射到256位用于验证的输出寄存器数据的示例。
散列函数不一定是可逆的,所以将相同的散列函数应用于来自参考模型的提交日志中的寄存器数据。然后,布置在测试台中的比较模块(例如,可以是记分板)可以基于从DUT接收到的用于验证的数据与来自参考模型的参考数据进行比较以基于比较结果确定测试或验证结果。例如,比较模块可以将经DUT中的转换模块处理的数据(例如,散列值(或校验和))与经测试台中的转换模块处理的数据(例如,散列值(或校验和))进行比较。由于散列值的宽度固定且宽度较小,比较模块的逻辑比基于原始较长且可变的向量寄存器数据的相应逻辑更简单。
需要注意的是,尽管灵活长度的向量指令从本公开中获益更多,位操作方法也可以应用于整数/浮点寄存器,以避免测试接口依赖于每个周期提交的指令的可变数目。
接下来,讨论替换提交阶段不可见的信号。根据本公开的一些实施例,提出了用与提交的指令的计数数目相对应的信号(如图3所示的commit_id)替换信号pc,这样做的优点是可以避免处理不在提交阶段的信号。这种好处也来自于通过散列去除与寄存器分组信息和寄存器元素掩蔽信息有关的原始信号,即去除了图2中所示的信号vd_emul和vd_mask。
在如图3所示的根据本公开的一些实施例的验证框架中,pc被替换为与提交的指令的计数数目相对应的信号(即commit_id),commit_id按每个周期提交的指令数递增。这样,通过仅使用在提交阶段中可用的信号而不是侵入地分接其他阶段的信号然后进行缓冲和时间对齐,降低了用于DUT的验证接口的复杂性。
根据本公开的一些实施例的验证接口和框架不会对验证流程造成影响。因为在进行比较时,需要计算一个时钟周期内提交的指令个数(即已执行指令个数的增量值),该计算的结果可以使用基于信号pc计算出的已执行指令个数的增量值或使用信号commit_id的增量值,而这两个增量值是相同的,因此用提交阶段可用的信号commit_id替换提交阶段不可用的信号pc,所得到的上述计算的结果相同,因而不会对验证流程造成影响。
对于一个周期内提交的多条指令,可以将相应指令的寄存器的更新信息合并起来,用于进一步的转换(比如散列操作)和比较。
图6图示了示例处理器和/或SoC 600的框图,该处理器和/或SoC 600可以具有一个或多个核心并具有集成存储器控制器。实线框图示的处理器600具有单个核心602(A)、系统代理单元电路610和一组一个或多个接口控制器单元电路616,而可选地添加的虚线框将替代性处理器600图示为具有多个核心602(A)-(N)、系统代理单元电路610中的一组一个或多个集成存储器控制单元电路614、专用逻辑608以及一组一个或多个接口控制器单元电路616。注意,处理器600可以是处理器或者协处理器之一。
从而,处理器600的不同实现方式可以包括:1)CPU,其中专用逻辑608是集成图形和/或科学(吞吐量)逻辑(可以包括一个或多个核心,未示出),核心602(A)-(N)是一个或多个通用核心(例如,通用有序核心、通用乱序核心、或这两者的组合);2)协处理器,其中核心602(A)-(N)是主要针对图形和/或科学(吞吐量)目的的大量专用核心;以及3)协处理器,其中核心602(A)-(N)是大量的通用有序核心。从而,处理器600可以是通用处理器、协处理器或者专用处理器,例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量集成众核(MIC)协处理器(包括30个或更多个核心)、嵌入式处理器,等等。该处理器可被实现在一个或多个芯片上。处理器600可以是一个或多个衬底的一部分和/或可以使用多种工艺技术中的任何技术来实现在一个或多个衬底上,这些工艺技术例如互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)、双极CMOS(bipolarCMOS,BiCMOS)、P型金属氧化物半导体(P-type metal oxide semiconductor,PMOS)、或者N型金属氧化物半导体(N-type metal oxide semiconductor,NMOS)。
存储器层次体系包括核心602(A)-(N)内的一级或多级缓存单元电路604(A)-(N)、一组一个或多个共享缓存单元电路606、以及耦合到该组集成存储器控制器单元电路614的外部存储器(未示出)。该组一个或多个共享缓存单元电路606可以包括一个或多个中间级别缓存,例如第2级(L2)、第3级(L3)、第4级(4)或者其他级别的缓存,例如最后一级缓存(last level cache,LLC),和/或这些的组合。虽然在一些示例中接口网络电路612(例如,环形互连)对专用逻辑608(例如,集成图形逻辑)、该组共享缓存单元电路606和系统代理单元电路610提供接口,但替代性示例使用任何数目的公知技术来对这些单元提供接口。在一些示例中,在共享缓存单元电路606中的一个或多个电路与核心602(A)-(N)之间维持一致性。在一些示例中,接口控制器单元电路616将这些核心602耦合到一个或多个其他设备618,例如一个或多个I/O设备、存储装置、一个或多个通信设备(例如,无线网络、有线网络等)等等。
在一些示例中,核心602(A)-(N)中的一个或多个具有多线程能力。系统代理单元电路610包括对核心602(A)-(N)进行协调和操作的那些组件。系统代理单元电路610可以包括例如功率控制单元(power control unit,PCU)电路和/或显示单元电路(未示出)。PCU可以是(或者可以包括)对核心602(A)-(N)和/或专用逻辑608(例如,集成图形逻辑)的功率状态进行调节所需的逻辑和组件。显示单元电路用于驱动一个或多个在外部连接的显示器。
核心602(A)-(N)就指令集体系结构(instruction set architecture,ISA)而言可以是同构的。或者,核心602(A)-(N)就ISA而言也可以是异构的;也就是说,核心602(A)-(N)的子集可能能够执行一ISA,而其他核心可能能够只执行该ISA的子集或者能够执行另一ISA。
图7是根据一些示例的寄存器体系结构700的框图。如图所示,寄存器体系结构700包括向量/SIMD寄存器710,其宽度从128比特到1024比特不等。
在一些示例中,寄存器体系结构700包括写入掩码/谓词(predicate)寄存器715。例如,在一些示例中,有8个写入掩码/谓词寄存器(在RISC-V的向量指令中,有时掩码会复用向量寄存器V0的低比特位来存放),它们各自的大小是16比特、32比特、64比特或128比特。写入掩码/谓词寄存器715可以允许合并(例如,允许目的地中的任何元素集合在任何操作的执行期间被保护免于更新)和/或归零(例如,归零向量掩码允许目的地中的任何元素集合在任何操作的执行期间被归零)。在一些示例中,给定的写入掩码/谓词寄存器715中的每个数据元素位置对应于目的地的数据元素位置。在其他示例中,写入掩码/谓词寄存器715是可缩放的,并且由针对给定向量元素的设定数目个使能比特组成(例如,给每个64比特向量元素8个使能比特)。
寄存器体系结构700包括多个通用寄存器725。这些寄存器可以是32比特、64比特等等,并能够被用于标量操作。在一些示例中,这些寄存器用名称X0-X31来称呼。
在一些示例中,寄存器体系结构700包括标量浮点(floating-point,FP)寄存器堆745,它被用于使用RISC-V指令集体系结构扩展对32/64比特浮点数据进行标量浮点操作。这些寄存器用名称F0-F31来称呼。
对于支持SIMD(Single-Instruction Multiple-Data)的体系结构,寄存器还包括向量寄存器堆,它被使用对多个元素组成的向量进行操作,一般向量寄存器的长度大于标量或者浮点寄存器。在RISC-V体系结构中,这些寄存器用名称V0-V31来称呼。
一个或多个标志寄存器740(例如,FCSR,VCSR等等)存储状态和控制信息,用于算术、比较和系统操作。例如,一个或多个标志寄存器740可以存储条件代码信息,例如进位、奇偶性、辅助进位、零、符号、以及溢出。在一些示例中,一个或多个标志寄存器740被称为程序状态和控制寄存器。
段寄存器720包含用于访问存储器的段点。在一些示例中,这些寄存器在RISC-V体系结构中会复用X1-X31中的部分通用寄存器来实现。
机器特定寄存器(machine-specific register,MSR)735对处理器性能进行控制和报告。大多数MSR 735处置与系统有关的功能,并且是应用程序不可访问的。机器检查寄存器760由用于对硬件错误进行检测和报告的控制、状态和错误报告MSR组成。
一个或多个指令指针寄存器730存储指令指针值。(一个或多个)控制寄存器755确定处理器(例如,处理器600)的操作模式和当前在执行的任务的特性。调试寄存器750控制并允许监视处理器或核心的调试操作。
存储器(mem)管理寄存器765指定用于保护模式存储器管理中的数据结构的位置。这些寄存器可以包括全局描述符表寄存器、中断描述符表寄存器、任务寄存器、以及局部描述符表寄存器。
替代性示例可以使用更宽或更窄的寄存器。此外,替代性示例可以使用更多、更少或不同的寄存器堆和寄存器。寄存器体系结构700可以例如被用于寄存器堆/存储器中,或者物理寄存器堆电路中。
以下段落描述了各种实施例的示例。
示例1包括一种处理装置,包括:寄存器单元;以及接口单元,所述接口单元与所述寄存器单元耦合并且包括转换模块,其中,所述转换模块用于将所述寄存器单元中的更新数据转换成输出数据,并且所述输出数据的长度是固定的且小于所述更新数据的长度。
示例2包括示例1所述的装置,其中,所述接口单元用于编码输出信号以传输至与所述处理装置连接的验证装置,所述输出信号包括所述输出数据并且不包括在用于提交所述更新数据的提交阶段不可用的信息。
示例3包括示例1所述的装置,其中,所述转换模块用于在所述寄存器单元更新时,利用散列函数将所述更新数据转换成所述输出数据。
示例4包括示例1所述的装置,其中,所述转换模块用于在所述寄存器单元更新时,通过预设的位操作将所述更新数据转换成所述输出数据。
示例5包括示例4所述的装置,其中,所述预设的位操作包括按位异或。
示例6包括一种用于处理器的验证装置,包括:转换模块,用于基于来自参考模型的提交日志中的寄存器数据生成参考信号;以及比较模块,用于将从所述处理装置接收到的输入信号与所述参考信号进行比较,其中,所述输入信号包括输入数据,所述输入数据是通过转换所述处理装置中的寄存器单元中的更新数据生成的,并且所述输入数据的长度是固定的且小于所述更新数据的长度。
示例7包括如示例6所述的装置,其中,所述输入信号不包括在用于提交所述更新数据的提交阶段不可用的信息。
示例8包括如示例6所述的装置,其中,所述输入数据是在所述寄存器单元更新时,通过利用散列函数转换所述更新数据生成的。
示例9包括一种用于处理装置的验证方法,包括:基于所述处理装置中的寄存器单元中的更新数据生成输出数据,其中,所述输出数据的长度是固定的并且小于所述更新数据的长度;编码输出信号以传输至与所述处理装置连接的验证装置,其中,所述输出信号包括所述输出数据;基于来自参考模型的提交日志中的寄存器数据生成参考信号;以及将所述输出信号与所述参考信号进行比较。
示例10包括一种其上存储有计算机可执行指令的计算机可读存储介质,其中所述计算机可执行指令在由处理电路执行时使所述处理电路执行以下操作:基于处理装置中的寄存器单元中的更新数据生成输出数据,其中,所述输出数据的长度是固定的并且小于所述更新数据的长度;编码输出信号以传输至与所述处理装置连接的验证装置,其中,所述输出信号包括所述输出数据;基于来自参考模型的提交日志中的寄存器数据生成参考信号;以及将所述输出信号与所述参考信号进行比较。
尽管为了描述的目的在本文中说明和描述了某些实施例,但是在不脱离本公开的范围的情况下,为了实现相同目的而规划的各种替代和/或等同实施例或实现方式可以替代所示出和所描述的实施例。本申请旨在涵盖本文所讨论的实施例的任何改编或变化。因此,易于理解的是,本文描述的实施例仅由所附权利要求及其等同范围限制。
Claims (10)
1.一种处理装置,包括:
寄存器单元;以及
接口单元,所述接口单元与所述寄存器单元耦合并且包括转换模块,其中,所述转换模块用于将所述寄存器单元中的更新数据转换成输出数据,并且所述输出数据的长度是固定的且小于所述更新数据的长度。
2.如权利要求1所述的装置,其中,所述接口单元用于编码输出信号以传输至与所述处理装置连接的验证装置,所述输出信号包括所述输出数据并且不包括在用于提交所述更新数据的提交阶段不可用的信息。
3.如权利要求1所述的装置,其中,所述转换模块用于在所述寄存器单元更新时,利用散列函数将所述更新数据转换成所述输出数据。
4.如权利要求1所述的装置,其中,所述转换模块用于在所述寄存器单元更新时,通过预设的位操作将所述更新数据转换成所述输出数据。
5.如权利要求4所述的装置,其中,所述预设的位操作包括按位异或。
6. 一种用于处理装置的验证装置,包括:
转换模块,用于基于来自参考模型的提交日志中的寄存器数据生成参考信号;以及
比较模块,用于将从所述处理装置接收到的输入信号与所述参考信号进行比较,其中,所述输入信号包括输入数据,所述输入数据是通过转换所述处理装置中的寄存器单元中的更新数据生成的,并且所述输入数据的长度是固定的且小于所述更新数据的长度。
7.如权利要求6所述的装置,其中,所述输入信号不包括在用于提交所述更新数据的提交阶段不可用的信息。
8.如权利要求6所述的装置,其中,所述输入数据是在所述寄存器单元更新时,通过利用散列函数转换所述更新数据生成的。
9.一种用于处理装置的验证方法,包括:
基于所述处理装置中的寄存器单元中的更新数据生成输出数据,其中,所述输出数据的长度是固定的并且小于所述更新数据的长度;
编码输出信号以传输至与所述处理装置连接的验证装置,其中,所述输出信号包括所述输出数据;
基于来自参考模型的提交日志中的寄存器数据生成参考信号;以及
将所述输出信号与所述参考信号进行比较。
10.一种其上存储有计算机可执行指令的计算机可读存储介质,其中所述计算机可执行指令在由处理电路执行时使所述处理电路执行以下操作:
基于处理装置中的寄存器单元中的更新数据生成输出数据,其中,所述输出数据的长度是固定的并且小于所述更新数据的长度;
编码输出信号以传输至与所述处理装置连接的验证装置,其中,所述输出信号包括所述输出数据;
基于来自参考模型的提交日志中的寄存器数据生成参考信号;以及
将所述输出信号与所述参考信号进行比较。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311092133.1A CN116820910A (zh) | 2023-08-28 | 2023-08-28 | 处理装置、用于处理装置的验证装置和验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311092133.1A CN116820910A (zh) | 2023-08-28 | 2023-08-28 | 处理装置、用于处理装置的验证装置和验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116820910A true CN116820910A (zh) | 2023-09-29 |
Family
ID=88124346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311092133.1A Pending CN116820910A (zh) | 2023-08-28 | 2023-08-28 | 处理装置、用于处理装置的验证装置和验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116820910A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105911462A (zh) * | 2015-02-20 | 2016-08-31 | 得克萨斯测试公司 | 用于半导体集成电路器件的功能数字测试的自动测试设备 |
CN107430507A (zh) * | 2015-02-02 | 2017-12-01 | 优创半导体科技有限公司 | 配置成使用改变元素宽度的指令对可变长度向量进行操作的向量处理器 |
CN111600699A (zh) * | 2020-06-17 | 2020-08-28 | 深圳比特微电子科技有限公司 | 用于实现散列算法的电路和方法 |
CN113590197A (zh) * | 2021-07-30 | 2021-11-02 | 中国人民解放军国防科技大学 | 一种支持可变长向量处理的可配置处理器及其实现方法 |
CN115562982A (zh) * | 2022-09-28 | 2023-01-03 | 平头哥(上海)半导体技术有限公司 | 参考模型调试方法、装置、电子设备和存储介质 |
US11681844B1 (en) * | 2021-03-29 | 2023-06-20 | Xilinx, Inc. | Configurable testing of semiconductor devices |
-
2023
- 2023-08-28 CN CN202311092133.1A patent/CN116820910A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107430507A (zh) * | 2015-02-02 | 2017-12-01 | 优创半导体科技有限公司 | 配置成使用改变元素宽度的指令对可变长度向量进行操作的向量处理器 |
CN105911462A (zh) * | 2015-02-20 | 2016-08-31 | 得克萨斯测试公司 | 用于半导体集成电路器件的功能数字测试的自动测试设备 |
CN111600699A (zh) * | 2020-06-17 | 2020-08-28 | 深圳比特微电子科技有限公司 | 用于实现散列算法的电路和方法 |
US11681844B1 (en) * | 2021-03-29 | 2023-06-20 | Xilinx, Inc. | Configurable testing of semiconductor devices |
CN113590197A (zh) * | 2021-07-30 | 2021-11-02 | 中国人民解放军国防科技大学 | 一种支持可变长向量处理的可配置处理器及其实现方法 |
CN115562982A (zh) * | 2022-09-28 | 2023-01-03 | 平头哥(上海)半导体技术有限公司 | 参考模型调试方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10928847B2 (en) | Apparatuses and methods for frequency scaling a message scheduler data path of a hashing accelerator | |
CN106575215B (zh) | 处理指令的系统、设备、方法、处理器、介质和电子设备 | |
CN108028663B (zh) | 对异构压缩加速器中的经压缩的流进行错误校验 | |
US9900770B2 (en) | Instruction for accelerating SNOW 3G wireless security algorithm | |
US11095305B1 (en) | Method and apparatus for high performance compression and decompression | |
US10209988B2 (en) | Apparatus and method to reverse and permute bits in a mask register | |
CN108292252B (zh) | 用于容错和检错的系统、方法和装置 | |
US10491381B2 (en) | In-field system test security | |
US9785436B2 (en) | Apparatus and method for efficient gather and scatter operations | |
US20170177361A1 (en) | Apparatus and method for accelerating graph analytics | |
CN108563465B (zh) | 用于响应于单个指令来执行循环和异或的系统、装置和方法 | |
US20200025825A1 (en) | Hardware-based local-state retention fault detection | |
CN113474745A (zh) | 在处理器中执行软扼制和硬扼制 | |
Blaner et al. | IBM POWER7+ processor on-chip accelerators for cryptography and active memory expansion | |
CN111736901A (zh) | 用于整数单指令多数据(simd)算术操作的高级错误检测 | |
US10592331B2 (en) | Apparatus and method for an on-chip reliability controller | |
CN114579078A (zh) | 一种加速器、加速方法和电子设备 | |
US20170177439A1 (en) | Apparatus and method for enforcement of reserved bits | |
US11340960B2 (en) | Apparatuses, methods, and systems for hardware-assisted lockstep of processor cores | |
EP3716490B1 (en) | Detection of adjacent two bit errors in a codeword | |
US20200349312A1 (en) | Core-Only System Management Interrupt | |
CN116820910A (zh) | 处理装置、用于处理装置的验证装置和验证方法 | |
US20190205201A1 (en) | Apparatus and method for vectored machine check bank reporting | |
US20240267212A1 (en) | Post-Quantum Cryptography Key Encapsulation Mechanism System | |
US11176278B2 (en) | Efficient rotate adder for implementing cryptographic basic operations |
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 |