技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种面向超标量处理器细粒度指令分析的数据传输架构及其工作方法  >  正文

一种面向超标量处理器细粒度指令分析的数据传输架构及其工作方法

  • 国知局
  • 2024-08-19 14:27:56

本发明涉及一种面向超标量处理器细粒度指令分析的数据传输架构及其工作方法,属于计算机体系结构。

背景技术:

1、随着计算机系统的发展,异构协处理器的使用越来越广泛,其可以帮助主核完成特定的任务,加快程序的运行速度或者保证主核的安全。

2、然而,位于核外的协处理器和主核之间的数据传输是一个难题,尤其是进行细粒度指令分析这种需要实时性的协处理器。主核的运行会产生大量的数据,其有效性只能保持一到两个时钟周期。如果不能及时转发用于细粒度指令分析检测的数据,细粒度指令分析就无法正常进行。目前的指令分析架构使用的数据采集方式有两种,一种是依赖于处理器集成的性能分析模块,另外一种是专用的数据总线。

3、处理器集成的性能分析模块是在处理器内部署追踪源和追踪路由器,实现对指令流的触发式追踪,并通过追踪接收器将其输出。然而,由于数据捕获需要暂停处理器运行,且依赖于jtag(joint test action group)、swv(serial wire viewer)等串行接口解包,因此会造成处理器性能的显著下降和数据传输的严重滞后。

4、专用的数据总线采用将所需数据直接连接到后端分析模块,避免了内存访问的高延迟,但这种方式只能传输特定数据,限制了后端分析协处理器的功能,大大降低了协处理器的可重构性。

5、不管是性能分析模块还是专用数据总线,都有各自的缺陷,无法全面且快速的转发检测数据以满足细粒度指令级分析的要求。

技术实现思路

1、目的:为了克服现有技术中存在的现有异构协处理器架构无法全面且快速的转发检测数据以满足细粒度指令级分析的要求的不足,本发明提供一种面向超标量处理器细粒度指令分析的数据传输架构及其工作方法。

2、技术方案:为解决上述技术问题,本发明采用的技术方案为:

3、第一方面,一种面向超标量处理器细粒度指令分析的数据传输架构,包括:超标量主核,事件过滤器,映射器,分发器,传输网络。

4、所述超标量主核包括数据转发通道,所述数据转发通道的端口与事件过滤器的第一端口相连接,事件过滤器的第二端口与分发器的输入端相连接,事件过滤器的第三端口与映射器的输入端相连接。所述映射器的输出端与分发器的控制端相连接,所述分发器的p个输出端口与传输网络的p个输入端口连接。传输网络的p个双向端口分别与p个协处理器的端口相连接,其中p为整数。

5、其中,所述超标量主核,用于正常运行指令,所述数据转发通道,用于将已提交指令的相关数据从超标量主核中提取并转发。

6、所述事件过滤器,用于根据细粒度指令分析种类过滤后端协处理器所需的相关数据,并提供对应与指令种类对应的组编号。

7、所述映射器,用于由调度引擎根据组编号给出相应调度决策。

8、所述分发器,用于根据调度决策将数据包分发给传输网络。

9、所述传输网络,用于将数据包传输给后端协处理器。

10、所述协处理器,用于对数据包进行处理。

11、作为优选方案,所述超标量主核,包括:加载存储队列,取指目标队列,物理寄存器,n个读控制,n个第一数据选择器,n个寄存器,重排序缓冲区,发射队列和数据转发通道,所述数据转发通道包括第一旁路、第二旁路、n个第三旁路、n个第四旁路和n个第五旁路以及第一输出端口、第二输出端口、n个第三输出端口、n个第四输出端口和n个第一输入端口。

12、其中,所述取指目标队列的队列顶部端口通过第一旁路与第一输出端口相连接,所述加载存储队列的队列顶部端口通过第二旁路与第二输出端口相连接,所述物理寄存器的n个数据端口分别通过n个第三旁路与n个第三输出端口相连接,所述物理寄存器的n个数据端口还分别与n个读控制的数据输入端相连接,所述重排序缓冲区的n个指令提交端口通过n个第四旁路与n个第四输出端口相连接,所述n个读控制的输出端分别与物理寄存器的n个地址端口相连接,n个读控制的输入端分别与n个第一数据选择器的输出端相连接,n个第一数据选择器的第一输入端分别通过n个寄存器地址旁路与n个第四旁路相连接,所述发射队列的n个输出端分别与n个第一数据选择器的第二输入端相连接,n个第一数据选择器的控制端分别通过n个第五旁路与n个第一输入端口相连接;所述n个寄存器地址旁路上分别设置有n个寄存器。

13、作为优选方案,所述事件过滤器,包括n个第二数据选择器,n个过滤查找表,n个先入先出队列,仲裁器以及第一输入端口、第二输入端口、n个第三输入端口、n个第四输入端口、n个第一输出端口、第二输出端口和第三输出端口。

14、其中,所述n个过滤查找表的读地址端口分别与n个第四输入端口相连接,所述n个过滤查找表的第一输出端分别与n个第二数据选择器的控制端相连接,n个过滤查找表的第一输出端还分别与n个第一输出端口相连接,所述n个过滤查找表的第二输出端分别与n个先入先出队列的第一输入端相连接。

15、所述n个第二数据选择器的第一输入端分别与第一输入端口相连接,第二输入端分别与第二输入端口相连接,第三输入端与n个第三输入端口相连接,所述n个第二数据选择器的输出端分别与n个先入先出队列的第二输入端相连接,所述n个先入先出队列的输出端与仲裁器的输入端相连接,所述仲裁器的第一输出端与第二输出端口相连接,所述仲裁器的第二输出端与第三输出端口相连接;所述事件过滤器的第一输入端口与数据转发通道的第一输出端口相连接,所述事件过滤器的第二输入端口与数据转发通道的第二输出端口相连接。

16、所述事件过滤器的第一输入端口与数据转发通道的第一输出端口相连接,事件过滤器的第二输入端口与数据转发通道的第二输出端口相连接,事件过滤器的n个第三输入端口分别与数据转发通道的n个第三输出端口相连接,所述事件过滤器的n个第四输入端口与数据转发通道的n个第四输出端口相连接,所述事件过滤器的n个第一输出端口与数据转发通道的n个第一输入端口相连接。

17、作为优选方案,所述映射器,包括m个调度引擎位图、第三数据选择器、输出的调度引擎位图、k个调度引擎、或门以及输入端口和输出端口。

18、所述m个调度引擎位图的输出端分别与第三数据选择器的m个输入端相连接,第三数据选择器的输出端与输出的调度引擎位图的输入端相连接,第三数据选择器的控制端与输入端口相连接。所述输出的调度引擎位图的k个输出端分别与k个调度引擎的使能端口相连接,k个调度引擎的输出端口分别与或门的k个输入端相连接,所述或门的输出端与输出端口。

19、所述映射器的输入端口与事件过滤器的第三输出端口相连接,所述映射器的输出端口与分发器的控制端口相连接。

20、作为优选方案,所述调度引擎,包括调度电路、当前结果寄存器、上一结果寄存器、第四数据选择器、第五数据选择器和译码器。

21、所述使能端口分别与调度电路的使能端口,第四数据选择器的控制端,第五数据选择器的控制端相连接。所述调度电路的输出端口分别与当前结果寄存器的输入端口连接,第四数据选择器的第一输入端相连接。当前结果寄存器的输出端与第五数据选择器的第一输入端相连接,第五数据选择器的第二输入端与硬件0相连接,第五数据选择器的输出端与译码器的输入端相连接,译码器的输出端与调度引擎的输出端口相连接。所述上一结果寄存器的第一输出端与第四数据选择器的第二输入端相连接,上一结果寄存器的第二输出端与调度电路的输入端口相连接,所述第四数据选择器的输出端与上一结果寄存器的输入端相连接。

22、第二方面,一种面向超标量处理器细粒度指令分析的数据传输架构的工作方法,包括如下步骤:

23、n条指令提交到重排序缓冲区,n条指令分别从重排序缓冲区的n个指令提交端口经n个第四旁路传输到数据转发通道的n个第四输出端口。

24、数据转发通道的n个第四输出端口发出的n条指令分别从事件过滤器的n个第四输入端口进入n个过滤查找表的读地址端口。

25、过滤查找表根据指令的功能位和操作码位作为索引在表中找出指令的组编号和数据选择信号。

26、组编号通过n个过滤查找表的第二输出端分别输入n个先入先出队列的第二输入端。数据选择信号通过n个过滤查找表的第一输出端分别输入n个第二数据选择器的控制端,数据选择信号还通过n个过滤查找表的第一输出端分别输入事件过滤器的n个第一输出端口。

27、从输入事件过滤器的n个第一输出端口输出的数据选择信号通过数据转发通道的n个第一输入端口经n个第五旁路输入n个第一数据选择器的控制端。

28、当数据选择信号选择了来自物理寄存器的寄存器数据,n个第一数据选择器就会选择来自n个寄存器的寄存器编号分别发送给n个读控制,n个读控制控制与n条指令的寄存器编号对应的寄存器数据从物理寄存器的数据端口输出,n条指令对应的寄存器数据分别通过n个第三旁路输入到n个第三输出端口,然后经过n个第三输入端口进入n个第二数据选择器的第三数据输入端。

29、n条指令对应的跳转地址从取指目标队列的队列顶部端口通过第一旁路输出到数据转发通道的第一输出端口,然后经过第一输入端口分别进入n个第二数据选择器的第一数据输入端。

30、n条指令对应的访存地址从加载存储队列的队列顶部端口通过第二旁路输出到数据转发通道的第二输出端口,然后经过第二输入端口分别进入n个第二数据选择器的第二数据输入端。

31、n个第二数据选择器根据数据选择信号把输入的跳转地址、访存地址和寄存器数据过滤打包后,把数据包输出到先入先出队列的第一输入端,n个先入先出队列里的数据包输入到仲裁器的n个输入端口,仲裁器过滤掉无效数据包,将有效数据包按照提交顺序排序后输出到第二输出端口,将对应的组编号输出到第三输出端口。

32、组编号从映射器的输入端口进入第三数据选择器的控制端,选择与组编号对应的调度引擎位图从第三数据选择器的输出端输出到输出的调度引擎位图,输出的调度引擎位图的对应位从调度引擎的使能端口激活调度引擎,调度引擎以检查器位图的形式给出调度决策,k个调度引擎的检查器位图经过或门进行或操作之后,从输出端口传输到分发器的控制端口。

33、分发器根据控制端口的检查器位图将数据输入端口的数据包从数据输出端口传输到传输网络的输入端口,传输网络将数据包从数据输出端口传送给协处理器进行指令分析。

34、作为优选方案,还包括:当数据选择信号未选择物理寄存器的寄存器数据,n个第一数据选择器就会选择来自发射队列的寄存器编号分别发送给n个读控制,处理器正常运行。

35、作为优选方案,所述输出的调度引擎位图的对应位从调度引擎的使能端口激活调度引擎,调度引擎以检查器位图的形式给出调度决策,具体包括:

36、输出的调度引擎位图的对应位作为使能信号由使能端口进入调度引擎后,使能调度电路,控制第四数据选择器选择调度电路的输出,控制第五数据选择器选择当前结果寄存器的输出。调度电路根据上一结果寄存器的输入由有限状态机输出结果给当前结果寄存器。数据选择器五选择当前结果寄存器的输出,经过译码器译码为检查器位图的形式通过输出端口输出。

37、作为优选方案,每一类指令唯一对应一个组编号,用于选择后面的调度引擎位图,数据选择信号控制对一类指令进行细粒度指令分析所需要数据的过滤。

38、作为优选方案,调度引擎一对一的与后端的协处理器内核关联,并决定将数据包分配至某个后端的协处理器小核。不同的调度引擎实现不同的调度策略,调度策略包括:固定优先级、轮询和块调度策略。

39、有益效果:本发明提供的一种面向超标量处理器细粒度指令分析的数据传输架构及其工作方法,在主核的关键位置插入旁路电路,提供无缓冲的数据转发通道。使用事件过滤器来过滤和打包转发的数据。映射器使用调度引擎给出调度决策,分发器和传输网络将数据路由到后端模块进行指令分析,可灵活配置数据过滤和分发策略,性能开销低,为处理器的细粒度指令分析提供了有力的支持。

本文地址:https://www.jishuxx.com/zhuanli/20240819/275293.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。