CN114757012A - 可重构处理器系统的仿真方法、装置以及存储介质 - Google Patents
可重构处理器系统的仿真方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN114757012A CN114757012A CN202210241910.3A CN202210241910A CN114757012A CN 114757012 A CN114757012 A CN 114757012A CN 202210241910 A CN202210241910 A CN 202210241910A CN 114757012 A CN114757012 A CN 114757012A
- Authority
- CN
- China
- Prior art keywords
- simulation
- reconfigurable processor
- processing unit
- mode
- clock synchronization
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种可重构处理器系统的仿真方法、装置以及存储介质。其中,可重构处理器系统的仿真方法,可重构处理器包括可重构处理器以及外部设备,包括:根据用户的输入参数,确定仿真模式,其中仿真模式包括常规模式和快速模式;在仿真模式为快速模式的情况下,根据输入参数确定仿真时长;以及根据预先设置在可重构处理器系统内模块的时钟同步点以及仿真时长,对可重构处理器进行仿真,其中时钟同步点为根据可重构处理器系统内基于地址的接口设置的。
Description
技术领域
本发明涉及可重构处理器技术领域,特别是涉及一种可重构处理器系统的仿真方法、装置以及存储介质。
背景技术
可重构处理器通常需要时钟精确(cycle-accurate)的模拟器对其功能进行模拟。这是因为若某节点有多个输入边,也就是依赖多个数据输入,则多个数据输入须在相同时刻到达节点,否则将造成数据停顿,降低计算效率。因此在模拟器上需要对处理单元的计算时钟周期数进行建模,从而利用编译阶段或硬件机制保证节点多个数据输入间的对齐。可重构处理器通常作为中央处理器 (CPU)的协处理器,因此完整系统中经常包含中央处理器,以及外围设备。若对整个系统都进行时钟精确建模会带来两个问题:开发工作量大,执行时间长。
针对上述的现有技术中存在的现有的可重构处理器的仿真方法需要对所有的系统模块进行时钟精确建模,导致开发工作量大以及执行时间长的技术问题,目前尚未提出有效的解决方案。
发明内容
本公开的实施例提供了一种可重构处理器系统的仿真方法、装置以及存储介质,以至少解决现有技术中存在的现有的可重构处理器的仿真方法需要对所有的系统模块进行时钟精确建模,导致开发工作量大以及执行时间长的技术问题。
根据本公开实施例的一个方面,提供了一种可重构处理器系统的仿真方法,可重构处理器包括可重构处理器以及外部设备,包括:根据用户的输入参数,确定仿真模式,其中仿真模式包括常规模式和快速模式;在仿真模式为快速模式的情况下,根据输入参数确定仿真时长;以及根据预先设置在可重构处理器系统内模块的时钟同步点以及仿真时长,对可重构处理器进行仿真,其中时钟同步点为根据可重构处理器系统内基于地址的接口设置的。
根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
根据本公开实施例的另一个方面,还提供了一种可重构处理器系统的仿真装置,可重构处理器包括可重构处理器以及外部设备,包括:第一确定模块,用于根据用户的输入参数,确定仿真模式,其中仿真模式包括常规模式和快速模式;第二确定模块,用于在仿真模式为快速模式的情况下,根据输入参数确定仿真时长;以及第一仿真模块,用于根据预先设置在可重构处理器系统内模块的时钟同步点以及仿真时长,对可重构处理器进行仿真,其中时钟同步点为根据可重构处理器系统内基于地址的接口设置的。
根据本公开实施例的另一个方面,还提供了一种可重构处理器系统的仿真装置,可重构处理器包括可重构处理器以及外部设备,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:根据用户的输入参数,确定仿真模式,其中仿真模式包括常规模式和快速模式;在仿真模式为快速模式的情况下,根据输入参数确定仿真时长;以及根据预先设置在可重构处理器系统内模块的时钟同步点以及仿真时长,对可重构处理器进行仿真,其中时钟同步点为根据可重构处理器系统内基于地址的接口设置的。
在本公开实施例中,通过运行参数控制同步精度,从而满足用户的不同仿真需求。并且对关键模块进行时钟精确建模的同时,可使用更低精度对其他模块建模,确保相互操作的正确性,从而降低系统模拟器开发的工作量,并提高模拟速度。进而解决现有技术中存在的现有的可重构处理器的仿真方法需要对所有的系统模块进行时钟精确建模,导致开发工作量大以及执行时间长的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本发明的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是用于实现根据本公开实施例1所述的方法的计算设备的硬件结构框图;
图2A和图2B是根据本公开实施例1所述的可重构处理器系统的示意图;
图3是根据本公开实施例1的第一个方面所述的可重构处理器系统的仿真方法的流程示意图;
图4A是根据本公开实施例1快速模式下可重构处理器系统的仿真过程示意图;
图4B是根据本公开实施例1快速模式下包含一个处理单元阵列可重构处理器系统的执行过程示意图;
图5A是根据本公开实施例1所述的常规模式下可重构处理器系统的仿真过程示意图;
图5B是根据本公开实施例1常规模式下包含一个处理单元阵列可重构处理器系统的执行过程示意图;
图6是根据本公开实施例1快速模式下包含两个个处理单元阵列可重构处理器系统的执行过程示意图;
图7是根据本公开实施例1常规模式下包含两个处理单元阵列可重构处理器系统的执行过程示意图;
图8是根据本公开实施例2所述的可重构处理器系统的仿真装置的示意图;以及
图9是根据本公开实施例3所述的可重构处理器系统的仿真装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本实施例,还提供了一种可重构处理器系统的仿真方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现可重构处理器系统的仿真方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB) 端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的可重构处理器系统的仿真方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的可重构处理器系统的仿真方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
图2A是根据本实施例所述的可重构处理器系统的示意图。参照图2所示,在一个基础的可重构处理器系统中包括:中央处理器、可重构处理器两大模块。可重构处理器中又包含数据导入导出单元、计算单元阵列。数据通常存储于外部存储中,可重构处理器利用数据导入导出单元将数据读入片上存储,经计算单元阵列处理后,写入片上存储,并通过数据导入导出单元写回外部存储。中央处理器通过写入可重构处理器的状态寄存器控制其执行过程,并通过读取其状态寄存器获取其执行状态。图2B是根据本实施例所述的可重构处理器系统的另一示意图,图2B示出了包括两个处理单元阵列的可重构处理器系统,处理方法和包括一个处理单元阵列的可重构处理系统类似。
在上述运行环境下,根据本实施例的第一个方面,提供了一种可重构处理器系统的仿真方法。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
S302:根据用户的输入参数,确定仿真模式,其中仿真模式包括常规模式和快速模式;
S304:在仿真模式为快速模式的情况下,根据输入参数确定仿真时长;以及
S306:根据预先设置在可重构处理器系统内模块的时钟同步点以及仿真时长,对可重构处理器进行仿真,其中时钟同步点为根据可重构处理器系统内基于地址的接口设置的。
正如背景技术中所述的,可重构处理器通常需要时钟精确(cycle-accurate) 的模拟器对其功能进行模拟。这是因为若某节点有多个输入边,也就是依赖多个数据输入,则多个数据输入须在相同时刻到达节点,否则将造成数据停顿,降低计算效率。因此在模拟器上需要对处理单元的计算时钟周期数进行建模,从而利用编译阶段或硬件机制保证节点多个数据输入间的对齐。可重构处理器通常作为中央处理器(CPU)的协处理器,因此完整系统中经常包含中央处理器,以及外围设备。若对整个系统都进行时钟精确建模会带来两个问题:开发工作量大,执行时间长。
有鉴于此本申请实施例提供了一种可重构处理器系统的仿真方法,首先系统模拟器可以根据用户的输入参数,确定仿真模式,其中仿真模式包括常规模式和快速模式。
具体地,开发人员通过预先设置程序参数使得通过参数的设定就可以实现可变精度的可重构处理器系统的仿真。从而通过用户的输入参数,就可以确定用户选择常规模式还是快速模式进行可重构处理器系统的仿真。
进一步地,在仿真模式为快速模式的情况下,系统模拟器可以根据输入参数确定仿真时长。然后系统模拟器根据预先设置在可重构处理器系统内模块的时钟同步点以及仿真时长,对可重构处理器进行仿真,其中时钟同步点为根据可重构处理器系统内基于地址的接口设置的。
具体地,参考图2A和图2B所示,其中可以通过将可重构处理器系统内的不同模块进行不同精度的建模,从而实现对关键模块进行时钟精确建模的同时,可使用更低精度对其他模块建模,确保相互操作的正确性,从而降低系统模拟器开发的工作量,并提高模拟速度。通过参数得到的仿真时长以及快速模式下的时钟同步点进行可重构处理器系统的仿真。
从而通过上述方式,通过运行参数控制同步精度,从而满足用户的不同仿真需求。并且对关键模块进行时钟精确建模的同时,可使用更低精度对其他模块建模,确保相互操作的正确性,从而降低系统模拟器开发的工作量,并提高模拟速度。进而解决现有技术中存在的现有的可重构处理器的仿真方法需要对所有的系统模块进行时钟精确建模,导致开发工作量大以及执行时间长的技术问题。
此外,系统中每个时钟精确的模块,都定义了自己的时钟。由于系统模拟器维护了一个全局时钟,所以需要模块内时钟和全局时钟在适合的时刻进行同步,这些时刻就是时钟同步点。
可选地,所述可重构处理器包括处理单元阵列以及数据导入导出单元,外部设备包括外部存储以及中央处理器,其中处理单元阵列通过可重构处理器状态寄存器与中央处理器进行连接;处理单元阵列通过可重构处理器片上存储与数据导入导出单元连接;数据导入导出单元与外部存储进行连接,其中可重构处理器状态寄存器以及可重构处理器片上存储为基于地址的接口。
具体地,参考图2A和图2B所示,可重构处理器通过可重构处理器状态寄存器以及可重构处理器片上存储作为借口与外部设备进行连接,并且可重构处理器状态寄存器以及可重构处理器偏上存储基于地址实现同步机制。从而通过上述可重构处理器系统的接口设计,可以实现本方案的基于地址的模块间同步机制,基于此机制可实现不同精度模拟器模块间的互操作。满足模拟器使用此同步机制的前提是系统中不同精度的模块间仅通过地址映射的状态进行耦合。
可选地,根据预先设置的可重构处理器的时钟同步点以及仿真时长,对可重构处理器进行仿真的操作,包括:判断当前仿真时刻是否小于仿真时长,在当前仿真时刻小于仿真时长的情况下,中央处理器仿真执行一个机器周期,并判断中央处理器是否达到预先设置的时钟同步点,在中央处理器未达到时钟同步点的情况下,中央处理器仿真执行一个机器周期;在中央处理器达到时钟同步点的情况下,数据导入导出单元仿真执行一个机器周期,并判断数据导入导出单元是否达到时钟同步点,在数据导入导出单元未到达时钟同步点的情况下,数据导入导出单元仿真执行一个机器周期;在数据导入导出单元达到时钟同步点的情况下,处理单元阵列仿真执行一个机器周期;以及处理单元阵列仿真执行一个机器周期结束,仿真时刻加1,判断仿真时刻是否小于仿真时长,在仿真时刻不小于仿真时长的情况下,可重构处理器的仿真结束。
具体地,参考图4A和图4B所示,仿真开始后,中央处理器执行一个周期,然后判断该模块是否达到预先设置的时钟同步点,当没有达到时钟同步点的情况下,中央处理器继续处理一个机器周期,直至达到预先设置的时钟同步点。再进行下一个模块数据导入导出单元执行机器周期,然后判断数据导入导出单元是否达到时钟同步点,达到时钟同步点的情况再进行下一个模块的执行。最后进行处理单元阵列仿真一个时钟周期,一个循环结束,仿真时刻加1,再判断是否达到仿真时长,从而判断是否完成仿真。
此外,可重构处理器系统不仅包含图2A和图2B中所示的模块,当包含其他模块的情况下,同样按照上述方式进行仿真。
可选地,该方法还包括:在仿真模式为常规模式的情况下,根据仿真时长对可重构处理器进行仿真。从而本申请允许通过运行参数控制同步精度,从而满足不同仿真需求。
可选地,在仿真模式为常规模式的情况下,根据仿真时长对可重构处理器进行仿真的操作,包括:判断当前仿真时刻是否小于仿真时长,在当前仿真时刻小于仿真时长的情况下,中央处理器仿真执行一个机器周期;中央处理器仿真执行一个机器周期结束,数据导入导出单元仿真执行一个机器周期;数据导入导出单元仿真执行一个机器周期结束,处理单元阵列仿真执行一个机器周期;以及处理单元阵列仿真执行一个机器周期结束,仿真时刻加1,判断仿真时刻是否小于仿真时长,在仿真时刻不小于仿真时长的情况下,可重构处理器的仿真结束。
具体地,参考图5A和图5B所示,当用户通过参数选定常规模式运行的情况下,开始通过常规模式进行仿真,即对可重构处理器系统中的所有模块进行时钟精度建模。中央处理器、数据导入导出单元、处理单元阵列分别仿真执行一个机器周期,仿真时刻加1,然后进行仿真时刻和仿真时长比较,当不小于仿真时长的情况下,仿真结束。
可选地,还包括:通过时钟精确模型对处理单元阵列进行时钟精确建模;通过功能模型对中央处理器进行功能级建模;以及通过功能模型对数据导入导出单元进行功能级建模。
具体地,为时钟精确模型增加时钟同步点,有两种选择:
a,若系统中仅存在单个时钟精确模块,或存在多个时钟精确模块且模块同时工作,则可将系统时钟与时钟精确模块内时钟对齐;
b.若系统中存在多个时钟精确模块,但交替工作,则可在模块访问与外部耦合的地址时,利用时钟同步点隔开。
系统模拟器为中央处理器模块和数据导入导出单元添加时钟同步点:
a)中央处理器模块中添加两种时钟同步点,运行时可选择其中一种。第一种精度相对较高,但模拟器执行速度也更慢:
i.每条指令结束后进行一次时钟同步:即假设每条指令消耗一个时钟周期;
ii.在读写可重构处理器的状态寄存器后,进行时钟同步。
系统模拟器为数据导入导出模块添加两种时钟同步点,运行时可选择其中一种。第一种精度相对较高,但模拟器执行速度也更慢:
i.每写入16字节数据,进行时钟同步,即每个时钟周期搬运16字节数据;
ii.一条数据搬运命令结束后,进行时钟同步。
系统模拟器为处理单元阵列添加时钟同步点,由于本系统中仅处理单元阵列为时钟精确建模,故将系统时钟与本模块对齐。
从而通过上述方式,对处理单元阵列进行时钟精确建模,对中央处理器与数据导入导出单元进行功能级建模,从而可以实现快速模式下的建模,确保相互操作的正确性,从而降低系统模拟器开发的工作量,并提高模拟速度。
此外,本实施例的具体实现如下:
1.根据系统仿真需求对系统中各模块进行不同精度的建模,典型的精度包含时钟精确模型,功能模型等。
2.系统模拟器中维护一个全局的系统时钟。
3.为低精度模型增加时钟同步点:由于低精度建模的模块往往没有时钟信息,需要增加时钟同步点,在时钟同步点上不同精度建模的模块间将对齐时钟。根据仿真精度需求的不同,低精度模型中插入时钟同步点的位置是可选的,若插入时钟同步点较多,则对齐时钟的次数更多,但也可能造成更多的开发量与仿真速度的降低。本机制对时钟同步点的要求是:若模型的两个操作都访问(读或写)与其他模块耦合的地址,则这两个操作间需要由时钟同步点隔开。
4.为时钟精确模型增加时钟同步点,有两种选择:
a)若系统中仅存在单个时钟精确模块,或存在多个时钟精确模块且模块同时工作,则可将系统时钟与时钟精确模块内时钟对齐;
b)若系统中存在多个时钟精确模块,但交替工作,则可在模块访问与外部耦合的地址时,利用时钟同步点隔开。
具体地,多个时钟精确模块交替工作,可通过设置同步点降低仿真计算量。以两个模块A和B为例:A先工作,B后工作。A工作后需要与系统进行交互,交互方式通常是对A与系统都可以访问的地址进行读写。在访问时设置时钟同步点,则到达同步点之前只激活模块A,而不用每个时钟都与系统时钟同步,从而节省大量激活其它模块的仿真开销。
5.当系统时钟前进一个时钟周期时:
a)对于时钟精确建模的模块,
i.若系统时钟与模块内同步,则执行模块中该时钟周期需要执行的操作;
ii.若系统时钟与模块不同步,则该模块执行至时钟同步点。
b)对于非时钟精确建模的模块,则执行该模块时钟同步点之间的操作,值得注意的是,可以根据系统模拟器的运行时参数控制同步点的生效与否,从而实现不同的仿真精度需求。
此外,可重构处理器中通常仅需要对处理单元阵列进行时钟精确建模,该模块仅通过可重构处理器状态寄存器和片上存储与其它模块耦合,因此满足本发明同步机制的要求。按本发明中提出的同步机制,系统模拟器设计如下:
1.在图2A的系统中,本发明对处理单元阵列进行时钟精确建模,对中央处理器与数据导入导出单元进行功能级建模;
2.为中央处理器模块和数据导入导出单元添加时钟同步点:
a)中央处理器模块中添加两种时钟同步点,运行时可选择其中一种。第一种精度相对较高,但模拟器执行速度也更慢,
i.每条指令结束后进行一次时钟同步:即假设每条指令消耗一个时钟周期;
ii.在读写可重构处理器的状态寄存器后,进行时钟同步。
b)为数据导入导出模块添加两种时钟同步点,运行时可选择其中一种。第一种精度相对较高,但模拟器执行速度也更慢,
i.每写入16字节数据,进行时钟同步,即每个时钟周期搬运16字节数据;
ii.一条数据搬运命令结束后,进行时钟同步。
3.为处理单元阵列添加时钟同步点,由于本系统中仅处理单元阵列为时钟精确建模,故将系统时钟与本模块对齐。
4.为系统模拟器定义两种执行模式,快速模式与常速模式。快速模式下中央处理器与数据导入导出单元均采用精度相对较高的同步方式,常速模式则均采用较低的方式。当系统时钟前进时,
a)处理单元阵列执行单个时钟上的操作;
b)若选择常速模式,则中央处理器与导入导出单元均使用第一种同步点,其执行如图4B所示,图中标有E的为真正执行有效操作的模块。
i.中央处理器执行一条指令;
ii.数据导入导出单元若处于命令执行过程中,则搬运16字节数据。
c)若选择快速模式,则中央处理器与导入导出单元均使用第二种同步点,其执行图5B所示,
i.中央处理器执行多条指令,直至访问可重构处理器的状态寄存器;
ii.数据导入导出单元若收到了数据搬运命令,则执行完成该命令。
可以看到,在常速模式中,中央处理器上指令均需要一个机器周期,数据搬运命令根据数据量分为多个机器周期,这些机器周期上虽然阵列未启动计算,但时钟的变化都会导致处理单元阵列内大量的状态更新。这种建模方式可以在系统级同步处理器和数据导入导出单元的状态更新,但计算量较大,特别是当启动操作系统时,大量的系统时钟变化会导致系统消耗漫长的仿真时长。
而对于系统模拟而言,绝大多数时间并不需要如此频繁而非必要的状态同步,或记录处理器和数据导入导出单元的状态更新,因此可以使用快速模式。在快速模式中,中央处理器上不影响外部的指令和数据搬运命令均在一个机器周期内完成,从而避免了更新处理单元阵列中大量单元的状态所需要的仿真计算量。
此外,系统中包含两个处理单元阵列,如图2B所示,其数据处理流程与实施方式1类似,不再赘述。假设处理单元阵列1与处理单元阵列2交替工作,则模拟器设计如下:
1.在上述系统中,本发明对处理单元阵列1和2进行时钟精确建模,对中央处理器与数据导入导出单元进行功能级建模。
2.为中央处理器模块和数据导入导出单元添加时钟同步点,添加方式与实施方式1相同。
3.为处理单元阵列添加时钟同步点:
a)处理单元阵列模块内时钟前进时,进行一次系统时钟同步,即模块内时钟与系统时钟对齐;
b)处理单元阵列完成一次完整计算任务时,进行一次系统时钟同步;
4.当系统时钟前进时:
a)中央处理器模块与数据导入导出模块行为与方式1相同;
b)处理单元阵列行为为;
i.若选择常速模式,则利用第一种同步点,执行方式如图6所示;
ii.若选择快速模式,则利用第二种同步点,执行方式如图7所示。
其中,图6和图7中,由于图片高度限制,快速模式中有效的阵列执行运算量未按比例增加。可以看到通过将时钟精确模块的时钟与系统时钟解耦,进一步降低了未使能模块造成的额外运算量。
此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
从而根据本实施例,通过运行参数控制同步精度,从而满足用户的不同仿真需求。并且对关键模块进行时钟精确建模的同时,可使用更低精度对其他模块建模,确保相互操作的正确性,从而降低系统模拟器开发的工作量,并提高模拟速度。进而解决现有技术中存在的现有的可重构处理器的仿真方法需要对所有的系统模块进行时钟精确建模,导致开发工作量大以及执行时间长的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘) 中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图8示出了根据本实施例所述的可重构处理器系统的仿真装置800,该装置800与根据实施例1的第一个方面所述的方法相对应。参考图8所示,该装置800包括:第一确定模块810,用于根据用户的输入参数,确定仿真模式,其中仿真模式包括常规模式和快速模式;第二确定模块820,用于在仿真模式为快速模式的情况下,根据输入参数确定仿真时长;以及第一仿真模块830,用于根据预先设置在可重构处理器系统内模块的时钟同步点以及仿真时长,对可重构处理器进行仿真,其中时钟同步点为根据可重构处理器系统内基于地址的接口设置的。
可选地,可重构处理器包括处理单元阵列以及数据导入导出单元,外部设备包括外部存储以及中央处理器,其中处理单元阵列通过可重构处理器状态寄存器与中央处理器进行连接;处理单元阵列通过可重构处理器片上存储与数据导入导出单元连接;数据导入导出单元与外部存储进行连接,其中可重构处理器状态寄存器以及可重构处理器片上存储为基于地址的接口。
可选地,第一仿真模块830,包括:第一执行子模块,用于判断当前仿真时刻是否小于仿真时长,在当前仿真时刻小于仿真时长的情况下,中央处理器仿真执行一个机器周期,并判断中央处理器是否达到预先设置的时钟同步点,在中央处理器未达到时钟同步点的情况下,中央处理器仿真执行一个机器周期;第二执行子模块,用于在中央处理器达到时钟同步点的情况下,数据导入导出单元仿真执行一个机器周期,并判断数据导入导出单元是否达到时钟同步点,在数据导入导出单元未到达时钟同步点的情况下,数据导入导出单元仿真执行一个机器周期;第三执行子模块,用于在数据导入导出单元达到时钟同步点的情况下,处理单元阵列仿真执行一个机器周期;以及第一结束子模块,用于处理单元阵列仿真执行一个机器周期结束,仿真时刻加1,判断仿真时刻是否小于仿真时长,在仿真时刻不小于仿真时长的情况下,可重构处理器的仿真结束。
可选地,装置800还包括:第二仿真模块,用于在仿真模式为常规模式的情况下,根据仿真时长对可重构处理器进行仿真。
可选地,第二仿真模块,包括:第四执行子模块,用于判断当前仿真时刻是否小于仿真时长,在当前仿真时刻小于仿真时长的情况下,中央处理器仿真执行一个机器周期;第五执行子模块,用于中央处理器仿真执行一个机器周期结束,数据导入导出单元仿真执行一个机器周期;第六执行子模块,用于数据导入导出单元仿真执行一个机器周期结束,处理单元阵列仿真执行一个机器周期;以及第二结束子模块,用于处理单元阵列仿真执行一个机器周期结束,仿真时刻加1,判断仿真时刻是否小于仿真时长,在仿真时刻不小于仿真时长的情况下,可重构处理器的仿真结束。
可选地,装置800还包括:第一建模模块,用于通过时钟精确模型对处理单元阵列进行时钟精确建模;第二建模模块,用于通过功能模型对中央处理器进行功能级建模;以及第三建模模块,用于通过功能模型对数据导入导出单元进行功能级建模。
从而根据本实施例,通过运行参数控制同步精度,从而满足用户的不同仿真需求。并且对关键模块进行时钟精确建模的同时,可使用更低精度对其他模块建模,确保相互操作的正确性,从而降低系统模拟器开发的工作量,并提高模拟速度。进而解决现有技术中存在的现有的可重构处理器的仿真方法需要对所有的系统模块进行时钟精确建模,导致开发工作量大以及执行时间长的技术问题。
实施例3
图9示出了根据本实施例9所述的可重构处理器系统的仿真装置900,该装置900与根据实施例1的第一个方面所述的方法相对应。参考图9所示,该装置900包括:处理器910;以及存储器920,与处理器910连接,用于为处理器910提供处理以下处理步骤的指令:根据用户的输入参数,确定仿真模式,其中仿真模式包括常规模式和快速模式;在仿真模式为快速模式的情况下,根据输入参数确定仿真时长;以及根据预先设置在可重构处理器系统内模块的时钟同步点以及仿真时长,对可重构处理器进行仿真,其中时钟同步点为根据可重构处理器系统内基于地址的接口设置的。
可选地,可重构处理器包括处理单元阵列以及数据导入导出单元,外部设备包括外部存储以及中央处理器,其中处理单元阵列通过可重构处理器状态寄存器与中央处理器进行连接;处理单元阵列通过可重构处理器片上存储与数据导入导出单元连接;数据导入导出单元与外部存储进行连接,其中可重构处理器状态寄存器以及可重构处理器片上存储为基于地址的接口。
可选地,根据预先设置的可重构处理器的时钟同步点以及仿真时长,对可重构处理器进行仿真的操作,包括:判断当前仿真时刻是否小于仿真时长,在当前仿真时刻小于仿真时长的情况下,中央处理器仿真执行一个机器周期,并判断中央处理器是否达到预先设置的时钟同步点,在中央处理器未达到时钟同步点的情况下,中央处理器仿真执行一个机器周期;在中央处理器达到时钟同步点的情况下,数据导入导出单元仿真执行一个机器周期,并判断数据导入导出单元是否达到时钟同步点,在数据导入导出单元未到达时钟同步点的情况下,数据导入导出单元仿真执行一个机器周期;在数据导入导出单元达到时钟同步点的情况下,处理单元阵列仿真执行一个机器周期;以及处理单元阵列仿真执行一个机器周期结束,仿真时刻加1,判断仿真时刻是否小于仿真时长,在仿真时刻不小于仿真时长的情况下,可重构处理器的仿真结束。
可选地,存储器920还用于为处理器910提供处理以下处理步骤的指令:在仿真模式为常规模式的情况下,根据仿真时长对可重构处理器进行仿真。
可选地,在仿真模式为常规模式的情况下,根据仿真时长对可重构处理器进行仿真的操作,包括:判断当前仿真时刻是否小于仿真时长,在当前仿真时刻小于仿真时长的情况下,中央处理器仿真执行一个机器周期;中央处理器仿真执行一个机器周期结束,数据导入导出单元仿真执行一个机器周期;数据导入导出单元仿真执行一个机器周期结束,处理单元阵列仿真执行一个机器周期;以及处理单元阵列仿真执行一个机器周期结束,仿真时刻加1,判断仿真时刻是否小于仿真时长,在仿真时刻不小于仿真时长的情况下,可重构处理器的仿真结束。
可选地,存储器920还用于为处理器910提供处理以下处理步骤的指令:通过时钟精确模型对处理单元阵列进行时钟精确建模;通过功能模型对中央处理器进行功能级建模;以及通过功能模型对数据导入导出单元进行功能级建模。
从而根据本实施例,通过运行参数控制同步精度,从而满足用户的不同仿真需求。并且对关键模块进行时钟精确建模的同时,可使用更低精度对其他模块建模,确保相互操作的正确性,从而降低系统模拟器开发的工作量,并提高模拟速度。进而解决现有技术中存在的现有的可重构处理器的仿真方法需要对所有的系统模块进行时钟精确建模,导致开发工作量大以及执行时间长的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器 (RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种可重构处理器系统的仿真方法,可重构处理器包括可重构处理器以及外部设备,其特征在于,包括:
根据用户的输入参数,确定仿真模式,其中所述仿真模式包括常规模式和快速模式;
在所述仿真模式为所述快速模式的情况下,根据所述输入参数确定仿真时长;以及
根据预先设置在所述可重构处理器系统内模块的时钟同步点以及所述仿真时长,对所述可重构处理器进行仿真,其中所述时钟同步点为根据所述可重构处理器系统内基于地址的接口设置的。
2.根据权利要求1所述的方法,其特征在于,所述可重构处理器包括处理单元阵列以及数据导入导出单元,所述外部设备包括外部存储以及中央处理器,其中
所述处理单元阵列通过可重构处理器状态寄存器与所述中央处理器进行连接;
所述处理单元阵列通过可重构处理器片上存储与所述数据导入导出单元连接;以及
所述数据导入导出单元与所述外部存储进行连接,其中所述可重构处理器状态寄存器以及所述可重构处理器片上存储为基于地址的所述接口。
3.根据权利要求2所述的方法,其特征在于,根据预先设置的所述可重构处理器的时钟同步点以及所述仿真时长,对所述可重构处理器进行仿真的操作,包括:
判断当前仿真时刻是否小于所述仿真时长,在当前所述仿真时刻小于所述仿真时长的情况下,所述中央处理器仿真执行一个机器周期,并判断所述中央处理器是否达到预先设置的所述时钟同步点,在所述中央处理器未达到所述时钟同步点的情况下,所述中央处理器仿真执行一个机器周期;
在所述中央处理器达到所述时钟同步点的情况下,所述数据导入导出单元仿真执行一个机器周期,并判断所述数据导入导出单元是否达到所述时钟同步点,在所述数据导入导出单元未到达所述时钟同步点的情况下,所述数据导入导出单元仿真执行一个机器周期;
在所述数据导入导出单元达到所述时钟同步点的情况下,所述处理单元阵列仿真执行一个机器周期;以及
所述处理单元阵列仿真执行一个机器周期结束,所述仿真时刻加1,判断所述仿真时刻是否小于所述仿真时长,在所述仿真时刻不小于所述仿真时长的情况下,所述可重构处理器的仿真结束。
4.根据权利要求2所述的方法,其特征在于,还包括:在所述仿真模式为常规模式的情况下,根据所述仿真时长对所述可重构处理器进行仿真。
5.根据权利要求4所述的方法,其特征在于,在所述仿真模式为常规模式的情况下,根据所述仿真时长对所述可重构处理器进行仿真的操作,包括:
判断当前仿真时刻是否小于所述仿真时长,在当前所述仿真时刻小于所述仿真时长的情况下,所述中央处理器仿真执行一个机器周期;
所述中央处理器仿真执行一个机器周期结束,所述数据导入导出单元仿真执行一个机器周期;
所述数据导入导出单元仿真执行一个机器周期结束,所述处理单元阵列仿真执行一个机器周期;以及
所述处理单元阵列仿真执行一个机器周期结束,所述仿真时刻加1,判断所述仿真时刻是否小于所述仿真时长,在所述仿真时刻不小于所述仿真时长的情况下,所述可重构处理器的仿真结束。
6.根据权利要求2所述的方法,其特征在于,还包括:
通过时钟精确模型对所述处理单元阵列进行时钟精确建模;
通过功能模型对所述中央处理器进行功能级建模;以及
通过所述功能模型对所述数据导入导出单元进行功能级建模。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至6中任意一项所述的方法。
8.一种可重构处理器系统的仿真装置,可重构处理器包括可重构处理器以及外部设备,其特征在于,包括:
第一确定模块,用于根据用户的输入参数,确定仿真模式,其中所述仿真模式包括常规模式和快速模式;
第二确定模块,用于在所述仿真模式为所述快速模式的情况下,根据所述输入参数确定仿真时长;以及
第一仿真模块,用于根据预先设置在所述可重构处理器系统内模块的时钟同步点以及所述仿真时长,对所述可重构处理器进行仿真,其中所述时钟同步点为根据所述可重构处理器系统内基于地址的接口设置的。
9.一种可重构处理器系统的仿真装置,可重构处理器包括可重构处理器以及外部设备,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
根据用户的输入参数,确定仿真模式,其中所述仿真模式包括常规模式和快速模式;
在所述仿真模式为所述快速模式的情况下,根据所述输入参数确定仿真时长;以及
根据预先设置在所述可重构处理器系统内模块的时钟同步点以及所述仿真时长,对所述可重构处理器进行仿真,其中所述时钟同步点为根据所述可重构处理器系统内基于地址的接口设置的。
10.根据权利要求9所述的装置,其特征在于,所述可重构处理器包括处理单元阵列以及数据导入导出单元,所述外部设备包括外部存储以及中央处理器,其中
所述处理单元阵列通过可重构处理器状态寄存器与所述中央处理器进行连接;
所述处理单元阵列通过可重构处理器片上存储与所述数据导入导出单元连接;以及
所述数据导入导出单元与所述外部存储进行连接,其中所述可重构状态寄存器以及所述可重构处理器片上存储为基于地址的所述接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210241910.3A CN114757012A (zh) | 2022-03-13 | 2022-03-13 | 可重构处理器系统的仿真方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210241910.3A CN114757012A (zh) | 2022-03-13 | 2022-03-13 | 可重构处理器系统的仿真方法、装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114757012A true CN114757012A (zh) | 2022-07-15 |
Family
ID=82326784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210241910.3A Pending CN114757012A (zh) | 2022-03-13 | 2022-03-13 | 可重构处理器系统的仿真方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114757012A (zh) |
-
2022
- 2022-03-13 CN CN202210241910.3A patent/CN114757012A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106557340B (zh) | 一种配置方法及装置 | |
US5771370A (en) | Method and apparatus for optimizing hardware and software co-simulation | |
CN107436762B (zh) | 一种寄存器代码文件生成方法、装置和电子设备 | |
US5768567A (en) | Optimizing hardware and software co-simulator | |
CN113076227A (zh) | Mcu验证方法、系统和终端设备 | |
CN100565472C (zh) | 一种适用于多处理器核系统芯片的调试方法 | |
US6993469B1 (en) | Method and apparatus for unified simulation | |
CN113849433B (zh) | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 | |
CN103678187B (zh) | 一种微控制单元及其控制方法 | |
CN104156234A (zh) | 启动多核处理器、bootloader大小端模式自适应的方法及装置 | |
CN105335548A (zh) | 一种用于ice的mcu仿真方法 | |
CN106648758A (zh) | 一种多核处理器boot启动系统及方法 | |
US7050958B1 (en) | Method and apparatus for accelerating hardware simulation | |
CN115562738A (zh) | 一种端口配置方法、组件及硬盘扩展装置 | |
CN113608684B (zh) | 内存信息获取方法、装置、系统、电子设备及存储介质 | |
CN103793263A (zh) | 一种基于PowerPC处理器的DMA事务级建模方法 | |
CN109416667A (zh) | 具有动态且可配置的响应的、使用两个存储器级的串行设备仿真器 | |
CN104679566A (zh) | 更新smbios的方法和终端设备 | |
CN114757012A (zh) | 可重构处理器系统的仿真方法、装置以及存储介质 | |
CN105634635A (zh) | 一种共享rtc的方法、装置和系统 | |
CN104423984A (zh) | 在线升级方法和在线升级系统 | |
CN100365592C (zh) | 基于mcs-51架构的16m字节程序存储器寻址空间扩充方法 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
CN113434439B (zh) | 一种基于模拟i2c接口的数据连续写入方法及系统 | |
CN111143273B (zh) | 一种片上系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |