System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术适用于处理器,尤其涉及一种处理器及计算机系统。
技术介绍
1、处理器是计算机系统中的主要计算组件。它负责执行指令并进行算术和逻辑运算。随着计算机技术的不断发展,处理器的性能和功能也得到了极大的提升。目前,市场上的处理器主要分为两种类型:精简指令集处理器(reduced instruction set computing,risc)和复杂指令集处理器(complex instruction set computer,cisc)。精简指令集处理器使用简单的指令集,可以实现高效的指令处理,而复杂指令集处理器则支持更复杂的指令和更高级的操作。随着人工智能和机器学习等技术的发展,对处理器性能的要求变得越来越高。
2、简化后的典型的超标量处理器流水线结构如图1所示。如图1所示,可以分为四个模块:取指单元、指令缓冲单元、译码单元、执行单元。其中,取指单元负责每个周期从内存中取出处理器需要执行的指令;指令缓冲单元负责保存取指单元取出的指令,并平衡取指单元和译码单元间的指令吞吐量差距。译码单元负责对取出来的指令进行译码得到操作数,并将相关信息送入执行单元中执行并得到结果。这其中,指令缓冲单元是超标量处理器中的一个关键组成部分,它起到存储和调度指令的作用。由于高性能超标量处理器系统中,出于系统性能均衡性的考虑,取指单元每个周期取出的指令数通常多于后级译码每个单元可以同时解码的指令数,因此取指单元取出的指令一般会先保存在指令缓冲单元中,再从其中发给后级的译码单元,从而平衡两侧不同的负载需求。因此可以说指令缓冲单元性能直接影响了超
3、现有的指令缓冲器的主体由一个固定大小的先进先出(first in first out,fifo)队列,即主缓冲器构成,结构如图2所示。在超标量处理器运行时,前级的取指单元将取回的多条指令信息按顺序保存在指令缓冲器的主缓冲器中。同时,在指令缓冲单元的出口处,每个周期将根据当前指令缓冲单元剩余指令数量,传给后级处理单元一定数量的指令。
4、如图2所示,现有的指令缓冲单元主要由两个交叉开关矩阵、输出选择逻辑单元、输出缓冲器和主缓冲器组成。工作时:当上级传来一个指令包信息后,如果当前指令缓冲器的主缓冲器剩余空间不足,则会反压前端请求;如果剩余空间充足,则根据当前主缓冲器的写指针将输入指令包选择其对应的主缓冲器位置,按序存入主缓冲器的fifo中,并更新fifo的写指针位置。在指令缓冲器输出指令至下级时,将根据fifo的读指针位置通过交叉开关矩阵从主缓冲器选择需要输出的指令,保存在输出缓冲器中,并经过输出选择逻辑单元判断实际可输出的指令,并送至后级译码单元中。
5、在该结构的超标量处理器系统中,为了保证指令缓冲器处的流水线不被打断地连续运行,每周期指令缓冲器均需要完成下面的工作内容,如图3所示。
6、一、根据本周期最新的主缓冲器读指针,从主缓冲器中读出当拍有可能输出的指令范围。二、根据指令范围中的第一条指令的内容,判断其为压缩/非压缩指令,并借此确定下一条指令的起始位置。三、循环进行上一步骤中的操作,确定所有指令的边界,得到输出指令所占的主缓冲器数量。四、根据当前主缓冲器有效深度,判断可以发射至后级流水线的实际的指令的数量。五、更新主缓冲器的读指针。
7、可以看到,由于这条路径中的起点和终点均为主缓冲器的读指针,因此为了保证指令缓冲器处的流水线不被打断地连续运行,该路径的内容必须在一个周期的时间内完成。这也成为制约超标量处理器实现频率的一个关键点。同时,输出逻辑中的交叉开关矩阵的逻辑深度以及输出选择逻辑单元的复杂度与指令缓冲单元的主缓冲器大小及超标量处理器系统的发射数量有关,对于高性能、高吞吐率的系统,这种影响将更大,因此在一些计算密集型应用中可能会成为瓶颈,导致超标量处理器无法充分利用其处理能力。
技术实现思路
1、本专利技术提供一种处理器及计算机系统,解决了现有技术中的处理器中指令缓冲单元输出端相关的关键时序路径过长影响处理器的性能和效率问题。
2、第一方面,本专利技术提供一种处理器,所述处理器包括取指单元、与所述取指单元的输出端连接的指令缓冲单元、与所述指令缓冲单元的输出端连接的译码单元以及与所述译码单元的输出端连接的执行单元;
3、所述取指单元用于每个周期从内存中取出所述处理器需要执行的指令信息;所述指令缓冲单元用于保存所述取指单元取出的所述指令信息,并平衡所述取指单元和所述译码单元之间的所述指令信息的吞吐量差距;所述译码单元用于对取出来的所述指令信息进行译码得到操作数,并将所述操作数输送至所述执行单元;所述执行单元用于执行所述指令信息并得到结果;
4、所述指令缓冲单元包括主缓冲器、与所述主缓冲器的输入端连接的第一交叉开关矩阵、分别与所述主缓冲器的输出端和所述第一交叉开关矩阵的输出端连接的多个指令组缓冲器、与多个所述指令组缓冲器的输出端连接的第二交叉开关矩阵、与所述第二交叉开关矩阵的输出端连接的输出缓冲器以及与所述输出缓冲器的输出端连接的输出选择逻辑单元;其中,所述输出选择逻辑单元的输出端与所述译码单元连接;
5、所述指令组缓冲器用于保存下一周期需要输出的指令信息;所述第一交叉开关矩阵用于根据当前所述指令缓冲单元中存储的指令信息情况,将所述取指单元输出的指令信息拆分为对应的所述指令缓冲单元中存储大小的指令信息,并将指令信息输出至所述主缓冲器和所述指令组缓冲器中对应位置进行保存;所述主缓冲器用于保存所述取指单元输出的指令信息;所述第二交叉开关矩阵用于在多个所述指令组缓冲器中选择出对应的所述指令组缓冲器中的指令信息输出至所述输出缓冲器中;所述输出缓冲器用于暂存对应的所述指令组缓冲器中的指令信息;所述输出选择逻辑单元用于根据所述输出缓冲器输出的指令信息进行判断,选择当前周期需要输出的指令信息输出至所述译码单元。
6、优选的,当所述主缓冲器接收到所述取指单元输出的指令信息后,若当前所述主缓冲器的剩余空间不足,则向所述取指单元反压前端请求;若所述主缓冲器的剩余空间充足,则将指令信息按序存入所述主缓冲器的先进先出队列中,并更新所述先进先出队列的写指针位置。
7、优选的,所述指令组缓冲器的数量与每周期中所述主缓冲器的最大输出的数量一致。
8、优选的,所述指令组缓冲器接收的指令信息包括所述主缓冲器输出的指令信息和所述取指单元在当前周期输出的指令信息。
9、优选的,当所述输出选择逻辑单元输出指令信息至所述译码单元后,根据输出的指令信息的数量更新所述主缓冲器的读指针位置。
10、优选的,根据上个周期所述主缓冲器输出的指令信息的数量,选择对应的所述指令组缓冲器的指令信息,作为输出缓冲器输出的指令信息。
11、第二方面,本专利技术还提供一种计算机系统,所述计算机系统包括如上述实施例中任意一项所述的处理器。
12、与现有技术相比,本专利技术通过添加额外的指令组缓冲器单元保存下一个周期可能输出的指令信息内容,当指令缓冲本文档来自技高网...
【技术保护点】
1.一种处理器,其特征在于,所述处理器包括取指单元、与所述取指单元的输出端连接的指令缓冲单元、与所述指令缓冲单元的输出端连接的译码单元以及与所述译码单元的输出端连接的执行单元;
2.如权利要求1所述的处理器,其特征在于,当所述主缓冲器接收到所述取指单元输出的指令信息后,若当前所述主缓冲器的剩余空间不足,则向所述取指单元反压前端请求;若所述主缓冲器的剩余空间充足,则将指令信息按序存入所述主缓冲器的先进先出队列中,并更新所述先进先出队列的写指针位置。
3.如权利要求1所述的处理器,其特征在于,所述指令组缓冲器的数量与每周期中所述主缓冲器的最大输出的数量一致。
4.如权利要求1所述的处理器,其特征在于,所述指令组缓冲器接收的指令信息包括所述主缓冲器输出的指令信息和所述取指单元在当前周期输出的指令信息。
5.如权利要求1所述的处理器,其特征在于,当所述输出选择逻辑单元输出指令信息至所述译码单元后,根据输出的指令信息的数量更新所述主缓冲器的读指针位置。
6.如权利要求1所述的处理器,其特征在于,根据上个周期所述主缓冲器输出的指令信
7.一种计算机系统,其特征在于,所述计算机系统包括如权利要求1至6任意一项所述的处理器。
...【技术特征摘要】
1.一种处理器,其特征在于,所述处理器包括取指单元、与所述取指单元的输出端连接的指令缓冲单元、与所述指令缓冲单元的输出端连接的译码单元以及与所述译码单元的输出端连接的执行单元;
2.如权利要求1所述的处理器,其特征在于,当所述主缓冲器接收到所述取指单元输出的指令信息后,若当前所述主缓冲器的剩余空间不足,则向所述取指单元反压前端请求;若所述主缓冲器的剩余空间充足,则将指令信息按序存入所述主缓冲器的先进先出队列中,并更新所述先进先出队列的写指针位置。
3.如权利要求1所述的处理器,其特征在于,所述指令组缓冲器的数量与每周期中所述主缓冲器的最大输出的数量一致。
【专利技术属性】
技术研发人员:刘宇翔,
申请(专利权)人:睿思芯科深圳技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。