公开/公告号CN101446987A
专利类型发明专利
公开/公告日2009-06-03
原文格式PDF
申请/专利权人 上海高性能集成电路设计中心;
申请/专利号CN200710094302.X
申请日2007-11-27
分类号G06F17/50;
代理机构
代理人
地址 201204 上海市浦东新区张衡路428号
入库时间 2023-12-17 21:57:44
法律状态公告日
法律状态信息
法律状态
2011-12-14
授权
授权
2009-07-29
实质审查的生效
实质审查的生效
2009-06-03
公开
公开
技术领域
本发明涉及一种用于多核处理器实物验证的装置,特别是涉及多核处理器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一致性的验证效率。在软件模拟验证中使用这种验证方法同样可以降低模拟验证的复杂度,提高模拟验证速度。
机译: 减少多核处理器中的通信CACHE验证信息的实现成本
机译: 用于执行CACHE一致性保证控制的信息处理器
机译: 控制多核处理器的方法,用于控制多核处理器的装置,多核处理器以及用于控制多核处理器的执行方法的记录介质