一种模拟多核处理器的方法及装置、电子设备和存储介质与流程

文档序号:34069737发布日期:2023-05-06 17:17阅读:40来源:国知局
一种模拟多核处理器的方法及装置、电子设备和存储介质与流程

本公开涉及计算机,尤其涉及一种模拟多核处理器的方法及装置、虚拟处理器、电子设备和存储介质。


背景技术:

1、在现代处理器的流片前验证(pre-silicon)阶段,往往需要根据处理器架构进行建模,例如搭建能够模拟片上系统(system on chip,soc)的虚拟平台,以便让软件栈的开发工作可以更早地展开,验证芯片的功能、性能、功耗是否满足设计目标,为流片做准备。

2、目前业界常用的芯片建模语言为纯c++或者systemc。模拟过程是通过软件模拟硬件的行为,而相关技术中的模拟速度较慢,如何提高软件模拟硬件的模拟速度是亟待解决的问题。


技术实现思路

1、本公开提出了一种模拟多核处理器的技术方案。

2、根据本公开的一方面,提供了一种模拟多核处理器的方法,应用于虚拟处理器中的任一虚拟核,包括:确定本虚拟核的待执行指令是否属于交互指令;所述交互指令为在被执行时,所述本虚拟核需与本虚拟核外部进行交互的指令;在所述待执行指令不属于交互指令的情况下,以并行执行模式,执行所述待执行指令;在所述待执行指令属于交互指令的情况下,确定本虚拟核的工作模式为串行执行模式;在本虚拟核的对外时间节点与总控时间节点一致的情况下,执行所述待执行指令,并在执行完成后,更新本虚拟核的对外时间节点,所述总控时间节点用于控制所述虚拟处理器的总体任务执行进度。

3、在一种可能的实现方式中,以并行执行模式,执行所述待执行指令,包括:在当前模式为串行执行模式的情况下,更新本虚拟核的内部时间,并进入并行执行模式,所述内部时间,用于记录本虚拟核执行指令后未更新到对外时间节点的时长。

4、在一种可能的实现方式中,在以并行执行模式,执行所述待执行指令后,所述方法还包括:将当前的内部时间与执行所述待执行指令所花费的执行时间相加,得到更新后的内部时间;在所述更新后的内部时间达到时间阈值的情况下,将所述更新后的内部时间与当前的对外时间节点相加,得到更新后的对外时间节点,并清零所述内部时间。

5、在一种可能的实现方式中,所述确定本虚拟核的工作模式为串行执行模式,包括:将本虚拟核的对外时间节点更新为本虚拟核当前执行进度的实际时间节点;暂停执行所述待执行指令,以等待本虚拟核的对外时间节点与总控时间节点一致。

6、在一种可能的实现方式中,所述方法还包括:在本虚拟核启动后,将计数值设定为第一数值,所述第一数值大于等于计数阈值;在确定所述待执行指令属于交互指令的情况下,将所述计数值归0,按照串行执行模式,执行所述待执行指令;在确定所述待执行指令不属于交互指令,且所述计数值小于计数阈值的情况下,在计数值上加1,按照串行执行模式,执行所述待执行指令;所述在所述待执行指令不属于交互指令的情况下,以并行执行模式,执行所述待执行指令,包括:在确定所述待执行指令不属于交互指令,且所述计数值大于等于计数阈值的情况下,按照并行执行模式,执行所述待执行指令。

7、根据本公开的一方面,提供了一种模拟多核处理器的方法,应用于虚拟处理器中的控制核,包括:按照总控时间节点调度虚拟处理器中的虚拟核执行任务;确定各虚拟核的对外时间节点是否大于总控时间节点;在各虚拟核的对外时间节点大于总控时间节点的情况下,更新总控时间节点;在存在任一虚拟核的对外时间节点等于总控时间节点的情况下,暂停更新总控时间节点,以便对外时间节点等于总控时间节点的虚拟核,以串行执行模式执行属于交互指令的待执行指令,所述虚拟核在执行所述交互指令时会与本虚拟核外部进行交互,所述虚拟核在执行不属于交互指令的待执行指令时以并行执行模式执行。

8、在一种可能的实现方式中,所述方法还包括:在目标虚拟核被启动的情况下,创建所述目标虚拟核对应的计算机进程,并建立所述目标虚拟核与目标物理服务器核间的映射关系。

9、根据本公开的一方面,提供了一种虚拟处理器,包括控制核和多个虚拟核,其中:所述控制核,按照总控时间节点调度虚拟处理器中的虚拟核执行任务;确定各虚拟核的对外时间节点是否大于总控时间节点;在各虚拟核的对外时间节点大于总控时间节点的情况下,更新总控时间节点;在存在任一虚拟核的对外时间节点等于总控时间节点的情况下,暂停更新总控时间节点;所述多个虚拟核中的任一虚拟核,确定本虚拟核的待执行指令是否属于交互指令;所述交互指令为在被执行时,所述本虚拟核需与本虚拟核外部进行交互的指令;在所述待执行指令不属于交互指令的情况下,以并行执行模式,执行所述待执行指令;在所述待执行指令属于交互指令的情况下,确定本虚拟核的工作模式为串行执行模式;在本虚拟核的对外时间节点与总控时间节点一致的情况下,执行所述待执行指令,并在执行完成后,更新本虚拟核的对外时间节点,所述总控时间用于控制所述虚拟处理器的总体任务执行进度。

10、根据本公开的一方面,提供了一种模拟多核处理器的装置,应用于虚拟处理器中的任一虚拟核,包括:交互指令确定单元,用于确定本虚拟核的待执行指令是否属于交互指令;所述交互指令为在被执行时,所述本虚拟核需与本虚拟核外部进行交互的指令;并行执行单元,用于在所述待执行指令不属于交互指令的情况下,以并行执行模式,执行所述待执行指令;串行确定单元,用于在所述待执行指令属于交互指令的情况下,确定本虚拟核的工作模式为串行执行模式;串行执行单元,用于在本虚拟核的对外时间节点与总控时间节点一致的情况下,执行所述待执行指令,并在执行完成后,更新本虚拟核的对外时间节点,所述总控时间节点用于控制所述虚拟处理器的总体任务执行进度。

11、在一种可能的实现方式中,所述并行执行单元,用于在当前模式为串行执行模式的情况下,更新本虚拟核的内部时间,并进入并行执行模式,所述内部时间,用于记录本虚拟核执行指令后未更新到对外时间节点的时长。

12、在一种可能的实现方式中,所述装置还包括:内部时间更新单元,用于将当前的内部时间与执行所述待执行指令所花费的执行时间相加,得到更新后的内部时间;对外时间节点更新单元,用于在所述更新后的内部时间达到时间阈值的情况下,将所述更新后的内部时间与当前的对外时间节点相加,得到更新后的对外时间节点,并清零所述内部时间。

13、在一种可能的实现方式中,所述串行确定单元,用于将本虚拟核的对外时间节点更新为本虚拟核当前执行进度的实际时间节点;暂停执行所述待执行指令,以等待本虚拟核的对外时间节点与总控时间节点一致。

14、在一种可能的实现方式中,所述装置还包括:初始计数单元,用于在本虚拟核启动后,将计数值设定为第一数值,所述第一数值大于等于计数阈值;归零单元,用于在确定所述待执行指令属于交互指令的情况下,将所述计数值归0,按照串行执行模式,执行所述待执行指令;指令执行单元,用于在确定所述待执行指令不属于交互指令,且所述计数值小于计数阈值的情况下,在计数值上加1,按照串行执行模式,执行所述待执行指令;所述并行执行单元,用于在确定所述待执行指令不属于交互指令,且所述计数值大于等于计数阈值的情况下,按照并行执行模式,执行所述待执行指令。

15、根据本公开的一方面,提供了一种模拟多核处理器的装置,应用于虚拟处理器中的控制核,包括:调度单元,用于按照总控时间节点调度虚拟处理器中的虚拟核执行任务;时间确定单元,用于确定各虚拟核的对外时间节点是否大于总控时间节点;时间更新单元,用于在各虚拟核的对外时间节点大于总控时间节点的情况下,更新总控时间节点;暂停单元,用于在存在任一虚拟核的对外时间节点等于总控时间节点的情况下,暂停更新总控时间节点,以便对外时间节点等于总控时间节点的虚拟核,以串行执行模式执行属于交互指令的待执行指令,所述虚拟核在执行所述交互指令时会与本虚拟核外部进行交互,所述虚拟核在执行不属于交互指令的待执行指令时以并行执行模式执行。

16、在一种可能的实现方式中,所述装置还包括:创建单元,用于在目标虚拟核被启动的情况下,创建所述目标虚拟核对应的计算机进程,并建立所述目标虚拟核与目标物理服务器核间的映射关系。

17、根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。

18、根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。

19、在本公开实施例中,通过确定本虚拟核的待执行指令是否属于交互指令,所述交互指令为在被执行时,所述本虚拟核需与本虚拟核外部进行交互的指令;在所述待执行指令不属于交互指令的情况下,以并行执行模式,执行所述待执行指令;在所述待执行指令属于交互指令的情况下,确定本虚拟核的工作模式为串行执行模式;在本虚拟核的对外时间节点与总控时间节点一致的情况下,执行所述待执行指令,并在执行完成后,更新本虚拟核的对外时间节点,所述总控时间节点用于控制所述虚拟处理器的总体任务执行进度。由此,虚拟处理器中的任一虚拟核,只需在本虚拟核需要与外界进行交互时,才进入串行模式,等待总控时间节点到来执行待执行指令(交互指令),而执行非交互指令的虚拟核不必停下来等待,可以通过并行执行模式,执行待执行指令,从而可以提高指令执行速度,提高多核处理器的模拟速度。

20、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1