指令处理装置、处理器、计算机设备、服务器集群及方法与流程

摘要: 本技术涉及处理器领域,特别涉及一种指令处理装置、处理器、计算机设备、服务器集群及方法。背景技术:1、随着人工智能技术的快速发展,人工智能(artificiali...
指令处理装置、处理器、计算机设备、服务器集群及方法与流程

本技术涉及处理器领域,特别涉及一种指令处理装置、处理器、计算机设备、服务器集群及方法。

背景技术:

1、随着人工智能技术的快速发展,人工智能(artificial intelligence,ai)处理器需要高效处理大规模并行计算任务。单指令多数据(single instruction multiple data,simd)和单指令多线程(singleinstruction multiple threads,simt)是两种主流的并行计算架构,分别通过数据级并行和线程级并行的方式显著提升计算性能。simd架构通过单条指令同步处理多个数据元素,适用于规则计算(如矩阵运算);而simt架构通过多线程并行执行相同指令,支持复杂分支逻辑(如图形渲染和动态神经网络)。

2、相关技术中,ai处理器通常仅支持单一架构(simd或simt),而ai工作负载中的算子可能因历史原因或性能需求采用不同架构实现。例如,早期算子基于simd架构开发,而新优化的算子可能更适合simt架构。由于两种架构硬件设计和软件生态存在显著差异,需部署两套独立的硬件以支持混合算子,如simd加速器和simt图形处理器(graphicsprocessing unit,gpu),导致部署成本较高,资源利用率较低。

技术实现思路

1、本技术实施例提供了一种指令处理装置、处理器、计算机设备、服务器集群及方法。所述技术方案如下。

2、一方面,提供了一种指令处理装置,所述指令处理装置包括存储单元和执行单元;所述存储单元与所述执行单元连接;所述存储单元包括第一存储单元和第二存储单元;

3、所述第一存储单元,被配置为存储在单指令多线程simt模式下指令的源操作数,或者,存储在单指令多数据simd模式下指令的源操作数;

4、所述第二存储单元,被配置为存储在所述simt模式下指令的源操作数;

5、所述执行单元,被配置为在以所述simt模式运行的情况下,基于所述第一存储单元和所述第二存储单元中的至少一个存储单元存储的源操作数执行计算;在以所述simd模式运行的情况下,基于所述第一存储单元中存储的源操作数执行计算。

6、在一些实施例中,所述装置还包括读取单元,所述读取单元分别与所述存储单元和所述执行单元连接;

7、所述读取单元,被配置为在以所述simt模式运行的情况下,从所述第一存储单元和所述第二存储单元中的至少一个存储单元读取所述指令的源操作数;将所述源操作数发送至所述执行单元以执行计算;

8、所述读取单元,还被配置为在以所述simd模式运行的情况下,从所述第一存储单元中读取所述指令的源操作数;将所述源操作数发送至所述执行单元以执行计算。

9、在一些实施例中,所述读取单元,还被配置为在以所述simt模式运行的情况下,从所述第一存储单元读取所述指令的源操作数;在所述第一存储单元中未包括所述指令的源操作数的情况下,从所述第二存储单元中读取所述指令的源操作数;

10、所述读取单元,还被配置为在以所述simd模式运行的情况下,从所述第一存储单元读取所述指令的源操作数,其中,所述第二存储单元被禁用。

11、在一些实施例中,所述执行单元,还被配置为在基于所述指令的所述源操作数执行计算之后,将计算结果写回所述存储单元。

12、在一些实施例中,所述执行单元,还被配置为在以所述simt模式运行的情况下,将所述计算结果写回所述第一存储单元;其中,在所述第一存储单元中存储的所述计算结果达到预设数量阈值的情况下,按照先进先出原则将最早写入所述第一存储单元中的所述计算结果迁移至所述第二存储单元;

13、所述执行单元,还被配置为在以所述simd模式运行的情况下,将所述计算结果写回所述第一存储单元,其中,所述第二存储单元被禁用。

14、在一些实施例中,所述装置还包括地址生成单元、指令缓冲单元和指令发射单元,所述地址生成单元与所述指令缓冲单元连接,所述指令缓冲单元与所述指令发射单元连接,所述指令发射单元与所述执行单元连接;

15、所述地址生成单元,被配置为生成线程的程序地址,所述程序地址用于指示所述线程对应的指令在内存中的存储位置;

16、所述指令缓冲单元,被配置为暂存基于所述程序地址获取的待发射的指令;

17、所述指令发射单元,被配置为发射所述指令缓冲单元中暂存的指令至所述执行单元以执行计算。

18、在一些实施例中,所述地址生成单元包括第一生成单元和第二生成单元;

19、所述第一生成单元,被配置为针对所述simt模式下的至少两个线程分别生成所述程序地址;

20、所述第二生成单元,被配置为针对所述simd模式下的第一线程生成所述程序地址。

21、在一些实施例中,所述装置还包括多路选择器和指令缓存单元,所述多路选择器的输入端分别与所述第一生成单元和所述第二生成单元连接,所述多路选择器的输出端与所述指令缓存单元连接,所述指令缓存单元与所述指令缓冲单元连接;

22、所述多路选择器,被配置为在以所述simt模式运行的情况下,将所述第一生成单元生成的所述程序地址发送至所述指令缓存单元;在以所述simd模式运行的情况下,将所述第二生成单元生成的所述程序地址发送至所述指令缓存单元;

23、所述指令缓存单元,被配置为基于所述程序地址获取所述指令;将所述指令暂存至所述指令缓冲单元。

24、在一些实施例中,所述指令缓冲单元包括第一缓冲单元和第二缓冲单元,所述第一缓冲单元包括至少两个缓冲队列,所述至少两个缓冲队列中的第i个缓冲队列用于暂存所述simt模式下至少两个线程中第i个线程对应的指令,i为正整数;所述第二缓冲单元包括单一队列,所述单一队列用于暂存所述simd模式下第一线程对应的指令;

25、所述指令缓存单元,还被配置为在以所述simt模式运行的情况下,将所述指令暂存至所述第一缓冲单元中;

26、所述指令缓存单元,还被配置为在以所述simd模式运行的情况下,将所述指令暂存至所述第二缓冲单元中。

27、另一方面,提供了一种处理器,所述处理器包括:如上所述的指令处理装置。

28、另一方面,提供了一种计算机设备,所述计算机设备包括:如上所述的指令处理装置,或,如上所述的处理器。

29、另一方法,提供了一种服务器集群,服务器集群包括至少两个计算机设备,所述计算机设备包括:如上所述的指令处理装置,或,如上所述的处理器。

30、另一方面,提供了一种所述方法应用于指令处理装置,所述指令处理装置包括存储单元和执行单元;所述指令处理装置包括存储单元和执行单元;所述存储单元与所述执行单元连接;所述存储单元包括第一存储单元和第二存储单元;

31、所述方法包括:

32、所述第一存储单元存储在单指令多线程simt模式下指令的源操作数,或者,存储在单指令多数据simd模式下指令的源操作数;

33、所述第二存储单元存储在所述simt模式下指令的源操作数;

34、所述执行单元在以所述simt模式运行的情况下,基于所述第一存储单元和所述第二存储单元中的至少一个存储单元存储的源操作数执行计算;在以所述simd模式运行的情况下,基于所述第一存储单元中存储的源操作数执行计算。

35、另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储模块,所述存储模块中存储有至少一段计算机程序,所述计算机程序由所述处理器加载并执行以实现上述任一所述的指令处理方法。

36、另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一段计算机程序,所述至少一段计算机程序由处理器加载并执行以实现上述任一所述的指令处理方法。

37、另一方面,提供了一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一所述的指令处理方法。

38、本技术实施例提供的技术方案带来的有益效果至少包括:

39、设计了一种指令处理装置,通过第一存储单元和第二存储单元的协同设计和统一的执行单元,可以在simd模式下仅启用第一存储单元,在simt模式下启用第一存储单元和第二存储单元,实现了针对两种模式的存储单元部分复用和执行单元的完全复用,从而能够在一套装置中兼容simd和simt的同时,实现了硬件资源的动态复用,降低部署成本,提高资源利用率。