CN101446987B - 一种用于多核处理器Cache一致性实物验证的装置 - Google Patents
一种用于多核处理器Cache一致性实物验证的装置 Download PDFInfo
- Publication number
- CN101446987B CN101446987B CN200710094302XA CN200710094302A CN101446987B CN 101446987 B CN101446987 B CN 101446987B CN 200710094302X A CN200710094302X A CN 200710094302XA CN 200710094302 A CN200710094302 A CN 200710094302A CN 101446987 B CN101446987 B CN 101446987B
- Authority
- CN
- China
- Prior art keywords
- processor
- consistance
- cache
- control assembly
- core
- 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
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种用于多核处理器Cache一致性实物验证的装置。其目的是为多核处理器Cache一致性提供一种开销小、效率高的实物验证装置。本装置是在单核处理器的现场可编程门阵列(Field ProgrammableGate-Array,简称FPGA)验证平台的基础上内嵌了一个虚拟处理器核(103)来实现验证多核处理器Cache一致性的目的。所述虚拟处理器核(103)能够模仿多核处理器自动产生共享存储访问请求并自动保证结果的正确性。使用本装置在单核处理器FPGA验证平台上就可以验证多核处理器Cache一致性的正确性,降低了多核处理器的FPGA实物验证代价,从而提高了多核处理器Cache一致性的验证效率,同时,在模拟验证中使用这种验证方法同样可以降低模拟验证的复杂度,提高模拟验证的速度。
Description
技术领域
本发明涉及一种用于多核处理器实物验证的装置,特别是涉及多核处理器Cache一致性的正确性验证。
技术背景
随着微处理器的发展,传统的处理器设计制造方法已经难以实现性能的突破,单核微处理器越来越难以满足应用需求,微处理器进入多核时代。从单核到多核,不仅仅是处理器核心数量的简单增加,发展多核处理器对处理器体系架构、计算机整体架构、操作系统和应用软件都提出了巨大的挑战。随着多核处理器结构复杂度的增加,如何保证多核处理器设计的正确性,尤其是多核处理器Cache一致性的正确性越来越成为多核微处理器验证的难点之一。
通常,功能验证主要有软件模拟和实物硬件仿真两种方法。但是由于多核处理器在系统架构上和单核处理器相比有着本质的差异,这也就决定了原来单核处理器的软件模拟环境、测试激励、实物硬件仿真平台都不能直接应用于多核处理器的功能验证,而需要进行大量的改造,有些环境甚至需要重新构建,这样,单核处理器的验证成果就很难得到继承,大大增加了多核处理器的开发周期。
发明内容
本发明要解决的技术问题是在多核处理器实现有独立的Cache和共享 存储的前提下,提供一种用于多核处理器Cache一致性实物验证的装置,在单核验证平台的基础上内嵌一个虚拟处理器核,来支持对多核处理器Cache一致性的正确性验证。
为解决上述技术问题,本发明的多核处理器Cache一致性实物验证装置采用如下技术方案实现:该装置包括单核处理器FPGA和外部系统两个组成部分,单核处理器FPGA和外部系统之间通过高密度插槽相连。其中,外部系统上实现了系统控制逻辑和存储访问控制逻辑;单核处理器FPGA上实现了虚拟多核处理器,包括以下组成部分:真实处理器核、虚拟处理器核、二级高速缓存、核间一致性控制部件和系统接口控制部件;真实处理器核与虚拟处理器核都和二级高速缓存、核间一致性控制部件相连,其中虚拟处理器核是真实处理器核高度抽象的行为级模型,虚拟处理器核的功能主要是实现真实处理器核与核间一致性控制部件的接口协议,虚拟处理器核通过模仿真实处理器核,向核间一致性控制部件发出访存干扰命令,同时处理来自一致性控制部件返回的响应和Cache一致性请求,并保持核间共享数据的一致性。
采用本发明的多核处理器Cache一致性实物验证装置,虚拟处理器核通过模仿真实处理器核发出干扰命令,改变共享数据空间的一致性状态,但并不真正修改共享空间的数据,通过这种方法来达到干扰真实处理器核正常工作的目的。采用该装置能够模仿多核处理器自动产生共享存储访问请求并自动保证结果的正确性,在单核处理器FPGA验证平台上就可以验证多核处理器的Cache一致性的正确性,降低多核处理器的FPGA实物验证代价,从而提高了多核处理器Cache一致性的验证效率。该装置所 采用的验证方法还适用于多核处理器Cache一致性的软件模拟验证,同样可以降低模拟验证的复杂度,提高模拟验证的速度。
附图说明
下面结合附图与具体实施方式对本发明作详细说明:
图1是本发明用于多核处理器Cache一致性实物验证装置的结构框图;
图2是本发明中虚拟处理器核的结构框图;
图3是本发明中虚拟处理器核访存请求处理流程图;
图4是本发明中虚拟处理器核访存响应处理流程图;
图5是本发明中虚拟处理器核Cache一致性请求处理流程图;
图6是本发明中虚拟处理器核取数请求处理流程图。
具体实施方式
如图1所示,本发明用于多核处理器Cache一致性实物验证的装置包括单核处理器FPGA实现(101)、外部系统(105)两个组成部分,单核处理器FPGA实现(101)和外部系统(105)之间通过高密度插槽相连。其中,外部系统(105)上实现了系统控制逻辑和存储访问控制逻辑;单核处理器FPGA实现(101)上实现了虚拟多核处理器,包括以下组成部分:真实处理器核(102)、虚拟处理器核(103)、二级高速缓存、核间一致性控制部件和系统接口控制部件(104);真实处理器核(102)与虚拟处理器核都与二级高速缓存和核间一致性控制部件(104)相连,其中虚拟处理器核(103)是真实处理器核(102)高度抽象的行为级模型,虚拟处理器核(103)的功能主要是实现了真实处理器核(102)与核间一致性控制部件(104)的接口协议,虚拟处理器核(103)通过模仿真实处理器核(102),向核间 一致性控制部件(104)发出访存干扰命令,同时处理来自一致性控制部件(104)返回的响应和Cache一致性请求,并保持核间共享数据的一致性。
下面结合实施例详细说明本发明中虚拟处理器核的实现方法。
如图2所示,虚拟处理器核监测真实处理器核(102)发送给核间一致性控制部件(104)的访存请求地址和取指请求地址,将监测到的请求地址有选择地放入地址缓冲队列(202)中,依次按序从地址缓冲队列(202)中读出地址,通过一个地址转换生成器(203),对地址进行相关性变换生成一个新的请求地址,使用此新地址访问一级数据标记(206),根据命中信息形成合法的访存请求,登记到不命中地址队列(204)中,经过仲裁向核间一致性控制部件(104)发送特定访存请求命令,此访存请求命令和真实处理器核(102)发送的请求命令有一定的相关性,以达到干扰核间一致性处理流程的目的;同时虚拟处理器核(103)接收来自核间一致性控制部件(104)的访存响应,根据响应的类型来修改不命中地址队列(204)、一级数据标记(206)和一级数据高速缓存(207)中的内容。
为保证Cache一致性,虚拟处理器核(103)还能够接收来自核间一致性控制部件(104)的Cache一致性请求和取数请求。如果是Cache一致性请求,根据Cache一致性请求内容修改一级数据标记(206)和不命中地址队列(204),并返回相应的共享一致性响应和数据;如果是取数请求,从一级数据高速缓存(207)中读出相应的数据,并返回取数响应和数据。
虚拟处理器核(103)中设置了一系列配置寄存器(210),这些配置寄存器(210)主要用于控制对真实处理器核(102)请求地址的频率监测, 发送干扰命令的间隔拍数、地址相关性变换规则等,通过对这些配置寄存器(210)的调整可以控制虚拟处理器核(103)向真实处理器核(102)发送干扰命令的相关性强度和疏密程度。
虚拟处理器核(103)的主要处理流程有四个:访存请求处理流程、访存响应处理流程、Cache一致性请求处理流程、取数请求处理流程。下面具体说明各个流程的处理步骤。
如图3所示,虚拟处理器核(103)访存请求处理步骤如下:
(1)监测真实处理器核(102)是否有有效的访存请求或取指请求,如果有则将请求地址记录到地址缓冲队列(202)中,否则继续监测;
(2)如果不命中地址队列(204)不满,则从地址缓冲队列(202)中读出一个地址,否则等待;
(3)将读出的地址经过相关性变换后与不命中地址队列(204)中已有条目地址进行比较,如果相同则丢弃此地址不做任何处理,否则根据该地址生成合法的请求命令;
(4)生成合法的请求命令的步骤是首先判断是否为可Cache地址,如果不是则生成I/O读的请求命令,如果是用该地址访问一级数据标记(206),再根据命中信息生成相应的访存请求命令,登记到不命中地址队列(204)条目中,经过仲裁后向核间一致性控制部件(104)发送访存请求,以干扰真实处理器核(102)的正常运行。
如图4所示,虚拟处理器核访存响应处理步骤如下:
(1)接收核间一致性控制部件(104)来的访存响应,首先判断是否为错误响应,如果是则需要删除不命中地址队列(204)条目并进行报错处理。
(2)根据访存响应的四种类型(非法响应、置脏失败、置脏成功、数据装填)进行相应的操作,如修改一级数据标记(206)的状态,删除不命中地址队列(204)条目,装填一级数据高速缓存(207)等。
如图5所示,虚拟处理器核(103)Cache一致性请求处理步骤如下:
(1)接收到来自核间一致性控制部件(104)的Cache一致性请求,根据Cache一致性请求的内容,如果是要修改一级数据标记(206)状态的,则修改一级数据标记206状态;
(2)如果是需要数据的Cache一致性请求,则从一级数据高速缓存(207)中读出相应的数据并返回给核间一致性控制部件。
如图6所示,虚拟处理器核(103)取数请求处理步骤如下:
接收来自核间一致性控制部件(104)的取数请求,从一级数据高速缓存(207)中读出相应的数据并返回给核间一致性控制部件(104)。
虚拟处理器核(103)能够并行处理上述四个流程,通过状态机的有效控制来保证各个处理流程并行操作时不会对同一资源(如一级数据标记(206)和一级数据高速缓存(207)的读写端口)产生使用冲突。
与传统的多核处理器验证手段相比,本发明可以最大限度地继承已有的单核处理器验证成果,不需要对测试激励和验证环境做过多的改造,在单核处理器验证平台的基础上内嵌一个虚拟处理器核(103),通过模仿多 核处理器自动产生共享存储访问请求并自动保证结果正确性来达到快速验证多核处理器Cache一致性的目的,降低了多核处理器的FPGA实物验证代价,从而提高了多核处理器Cache一致性的验证效率。在软件模拟验证中使用这种验证方法同样可以降低模拟验证的复杂度,提高模拟验证速度。
Claims (3)
1.一种用于多核处理器Cache一致性实物验证的装置,其特征在于:包括单核处理器FPGA实现(101)和外部系统(105)两个部分,单核处理器FPGA实现(101)和外部系统(105)之间通过高密度插槽相连;其中外部系统上实现了系统控制逻辑和存储访问控制逻辑;单核处理器FPGA实现(101)上实现了虚拟多核处理器,包括以下组成部分:真实处理器核(102)、虚拟处理器核(103)、二级高速缓存、核间一致性控制部件和系统接口控制部件(104) ;真实处理器核(102)与虚拟处理器核(103)都和二级高速缓存、核间一致性控制部件(104)相连,其中虚拟处理器核(103)是真实处理器核(102)高度抽象的行为级模型,虚拟处理器核(103)使用硬件设计语言描述实现,不需要真正完全实现真实处理器核(102)的全部功能,其功能实现了真实处理器核(102)与核间一致性控制部件(104)的接口协议,虚拟处理器核(103)通过采集真实处理器核(102)发出的访存请求地址,经过相关性转换和合法性处理,向核间一致性控制部件(104)密集的发出合法的有针对性的访存干扰命令,同时处理来自一致性控制部件(104)返回的响应和Cache一致性请求,并保持核间共享数据的一致性。
2.根据权利要求1所述的一种用于多核处理器Cache一致性实物验证的装置,所述虚拟处理器核(103)的工作原理是通过采集真实处理器核(102)发出来的访存请求地址,经过相关性转换,生成一个和原地址相关的新访存地址;该新访存地址根据一级数据标记(206)的命中情况来形成合法的访存干扰命令登记到不命中地址队列(204),经过仲裁后向一致性控制部件(104)发送访存干扰命令,同时还能够根据一致性控制部件(104)发送访存干扰命令,同时还能够根据一致性控制部件(104)返回的响应,修改一级数据高速缓存(207)的状态或数据,此外还能够处理来自核间一致性控制部件(104)的Cache一致性请求,并返回响应和数 据,干扰真实处理器核(102)的正常工作,以验证多核处理器Cache一致性的正确性。
3.根据权利要求2所述的一种用于多核处理器Cache一致性实物验证的装置,其特征在于:使用硬件描述语言实现的虚拟处理器核(103),在软件模拟和硬件仿真中都可以使用;在软件模拟环境中,原有的单核处理器验证测试激励全部可以继承,只要将虚拟处理器核内嵌到原有的单核处理器验证环境中,就可以模拟验证多核处理器Cache一致性的正确性;在单核处理器FPGA验证平台的基础上可以保持原有硬件平台结构不变,将虚拟处理器核(103)内嵌到原有的单核处理器FPGA中,就可以支持多核处理器Cache一致性实物验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710094302XA CN101446987B (zh) | 2007-11-27 | 2007-11-27 | 一种用于多核处理器Cache一致性实物验证的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710094302XA CN101446987B (zh) | 2007-11-27 | 2007-11-27 | 一种用于多核处理器Cache一致性实物验证的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101446987A CN101446987A (zh) | 2009-06-03 |
CN101446987B true CN101446987B (zh) | 2011-12-14 |
Family
ID=40742665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710094302XA Active CN101446987B (zh) | 2007-11-27 | 2007-11-27 | 一种用于多核处理器Cache一致性实物验证的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101446987B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096607B (zh) * | 2010-03-16 | 2014-10-29 | 威盛电子股份有限公司 | 微处理器及其除错方法 |
CN102789483B (zh) * | 2012-06-30 | 2014-12-10 | 华为技术有限公司 | 数据验证方法、装置和系统 |
CN102880467B (zh) * | 2012-09-05 | 2016-06-08 | 无锡江南计算技术研究所 | Cache一致性协议验证方法以及多核处理器系统 |
CN102929686A (zh) * | 2012-09-28 | 2013-02-13 | 杭州中天微系统有限公司 | 一种片上多核处理器功能验证方法 |
CN102880770B (zh) * | 2012-10-29 | 2014-12-24 | 无锡江南计算技术研究所 | 基于宏指令队列的cpu访存序列仿真模型 |
CN105279007B (zh) * | 2014-07-10 | 2018-12-25 | 龙芯中科技术有限公司 | 多核处理器的模拟方法及装置 |
CN106155853B (zh) * | 2015-03-23 | 2018-09-14 | 龙芯中科技术有限公司 | 处理器ip的验证方法、装置和系统 |
CN105912415B (zh) * | 2016-04-05 | 2017-12-29 | 浪潮电子信息产业股份有限公司 | 一种验证cache一致性协议的方法及装置 |
CN109062613B (zh) * | 2018-06-01 | 2020-08-28 | 杭州中天微系统有限公司 | 多核互联二级缓存访问验证方法 |
CN110727611B (zh) * | 2019-09-09 | 2022-01-07 | 无锡江南计算技术研究所 | 一种带状态监测的可配置一致性验证系统 |
CN111611120B (zh) * | 2020-06-28 | 2023-05-30 | 中国人民解放军国防科技大学 | 一种片上多核处理器Cache一致性协议验证方法、系统及介质 |
CN113535499B (zh) * | 2021-07-22 | 2023-10-27 | 无锡江南计算技术研究所 | 一种支持多核心共享访问的多类型并存访存流验证方法 |
CN116167310A (zh) * | 2023-04-25 | 2023-05-26 | 上海芯联芯智能科技有限公司 | 一种验证多核心处理器缓存一致性的方法及装置 |
CN116431422B (zh) * | 2023-06-14 | 2023-09-29 | 睿思芯科(深圳)技术有限公司 | 用于多仿真环境的访存验证系统、方法及相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5347648A (en) * | 1990-06-29 | 1994-09-13 | Digital Equipment Corporation | Ensuring write ordering under writeback cache error conditions |
CN1258716C (zh) * | 2003-11-26 | 2006-06-07 | 中国人民解放军国防科学技术大学 | 片内多处理器局部cache一致性的双环监听方法 |
-
2007
- 2007-11-27 CN CN200710094302XA patent/CN101446987B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5347648A (en) * | 1990-06-29 | 1994-09-13 | Digital Equipment Corporation | Ensuring write ordering under writeback cache error conditions |
CN1258716C (zh) * | 2003-11-26 | 2006-06-07 | 中国人民解放军国防科学技术大学 | 片内多处理器局部cache一致性的双环监听方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101446987A (zh) | 2009-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101446987B (zh) | 一种用于多核处理器Cache一致性实物验证的装置 | |
EP2869194A1 (en) | Extended cache coherence protocol-based multi-level coherence domain simulation verification and test method | |
CN100565472C (zh) | 一种适用于多处理器核系统芯片的调试方法 | |
EP2485149A1 (en) | Symbolic execution and test generation for programs to be run on a graphic processor | |
CN114580344B (zh) | 测试激励生成方法、验证方法、验证系统及相关设备 | |
CN101894591B (zh) | 一种基于lfsr的外部存储接口的随机测试装置 | |
CN110674055B (zh) | 一种用于部件级和部件联合级的缓存一致性模拟验证方法 | |
US7788078B1 (en) | Processor/memory co-exploration at multiple abstraction levels | |
CN105930242A (zh) | 一种支持精确访存检测的多核处理器随机验证方法及装置 | |
CN1609862A (zh) | 基于pci总线的ip核仿真验证平台及其验证方法 | |
CN102184290B (zh) | 嵌入式微处理器的周期精确和位精确系统级模型构建方法 | |
US9300716B2 (en) | Modelling dependencies in data traffic | |
US9679098B2 (en) | Protocol probes | |
CN114168200B (zh) | 多核处理器访存一致性的验证系统及方法 | |
CN105279007B (zh) | 多核处理器的模拟方法及装置 | |
Habibi et al. | An approach for the verification of systemc designs using asml | |
CN104679963B (zh) | 一种基于tcl的仿真验证装置和方法 | |
CN116167310A (zh) | 一种验证多核心处理器缓存一致性的方法及装置 | |
Kofron | Checking software component behavior using behavior protocols and spin | |
Grevtsev et al. | Multicore processor models verification in the early stages | |
Corre et al. | Fast template-based heterogeneous mpsoc synthesis on fpga | |
Tasiran et al. | Using formal specifications to monitor and guide simulation: Verifying the cache coherence engine of the Alpha 21364 microprocessor | |
Chehaibar et al. | Modeling multiprocessor cache protocol impact on MPI performance | |
CN106155853B (zh) | 处理器ip的验证方法、装置和系统 | |
CN107688545A (zh) | 高速缓存的一致性状态预置方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |