首页> 中国专利> 具有流水线式算术逻辑单元的异步处理器的系统和方法

具有流水线式算术逻辑单元的异步处理器的系统和方法

摘要

本发明实施例用于提供一种具有流水线式算术逻辑单元的异步处理器。所述异步处理器包括:用于存储指令的非暂时性存储器和设置成环形架构的用于传递令牌的多个指令执行单元(XU)。所述多个XU的每个XU包括配置成从所述非暂时性存储器提取第一指令并执行所述第一指令的逻辑电路。所述逻辑电路还配置成从所述非暂时性存储器提取第二指令,并且不论所述多个XU的一个XU是否保持用于写入所述第一指令的令牌,均执行所述第二指令。所述逻辑电路还配置成在提取所述第二指令后将所述第一指令写入所述非暂时性存储器。

著录项

  • 公开/公告号CN105393211A

    专利类型发明专利

  • 公开/公告日2016-03-09

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201480041101.1

  • 申请日2014-09-09

  • 分类号G06F9/38(20060101);

  • 代理机构11205 北京同立钧成知识产权代理有限公司;

  • 代理人杨文娟;臧建明

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-18 14:35:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-30

    授权

    授权

  • 2016-04-06

    实质审查的生效 IPC(主分类):G06F9/38 申请日:20140909

    实质审查的生效

  • 2016-03-09

    公开

    公开

说明书

相关申请交叉引用

本申请要求SHIWuxian等人于2013年9月6日提交的申请号为 61/874,909、发明名称为“具有流水线式算术逻辑单元的异步处理器的方法和 装置”的美国临时申请的优先权,其全部内容通过引用结合在本申请中,并 且要求于2014年9月4日提交的、申请序列号为14/477,536、发明名称为“具 有流水线式算术逻辑单元的异步处理器的方法和装置”的美国专利申请的优 先权,其全部内容通过引用结合在本申请中。

技术领域

本发明涉及异步处理,尤其涉及具有流水线式算术逻辑单元的异步处理 器的系统和方法。

背景技术

微流水线(micropipeline)为异步处理器设计的一种基本组件。微流 水线的重要构件包括会合(RENDEZVOUS)电路,例如,一连串穆勒-C (穆勒-C)元件。穆勒-C元件使得数据在当前计算逻辑级完成并且下一 计算逻辑级准备开始时能够进行传递。取代使用非标准穆勒-C元件来实 现两个无时钟(不使用时钟定时)计算电路逻辑之间的握手协议的是,异 步处理器复制整个处理块(包括所有的计算逻辑级)并使用一系列令牌 (token)和令牌环来模拟流水线。每个处理块包含令牌处理逻辑,用以在 没有计算逻辑级之间的时间或时钟同步的情况下控制令牌的使用。因此, 处理器设计被称为异步或无时钟处理器设计。令牌环调节对系统资源的访 问。令牌处理逻辑按顺序接受、保持并传递相互之间的令牌。当一令牌处 理逻辑保持一令牌时,所述处理块被授予独占访问对应于该令牌的资源的 权利,直到该令牌被传递给所述令牌环中的下一令牌处理逻辑。需要一种 改进的且更有效的异步处理器架构,例如具有较短延时或延迟的计算能力 的处理器。

发明内容

根据一实施例,一种由异步处理器执行的方法,包括:在所述异步处理 器的指令执行单元(XU)提取第一指令,在所述XU中执行所述第一指令。 在所述XU一经保持用于提取下一指令的令牌,就提取第二指令。在所述XU 一经保持用于启动所述下一指令的令牌,就执行所述第二指令。

根据另一实施例,一种由异步处理器的算术逻辑单元(ALU)执行的方 法,包括:提取第一指令,并执行所述第一指令。在将所述第一指令写入存 储器之前,提取第二指令。在所述ALU执行所述第二指令。

根据又一实施例,一种用于异步处理器的装置包括:非暂时性存储器, 用于存储指令;以及设置成环形架构的用于传递令牌的多个指令执行单元 (XU)。所述多个XU的每个XU包括逻辑电路,该逻辑电路配置成:从所 述非暂时性存储器提取第一指令;执行所述第一指令;从所述非暂时性存储 器提取第二指令。所述逻辑电路还配置成,不论所述多个XU的一个XU是 否保持用于写入所述第一指令的令牌,均执行所述第二指令。

为了可以更好地理解本发明的以下详细描述,前述内容已相当广泛地概 述了本发明实施例的特征。以下将对本发明实施例的附加特征和优点进行描 述,其形成本发明权利要求的主题。本领域技术人员应当理解,可以很容易 地将所公开的概念和具体实施例用作修改或设计用于执行本发明的相同目的 的其它结构或过程的基础。本领域技术人员还应该认识到,这种等效构造并 不脱离所附权利要求中阐述的本发明的精神和范围。

附图说明

为了更完整地理解本发明及其优点,现结合附图参考以下描述,其中:

图1示出了一种萨瑟兰异步微流水线架构;

图2示出了一种令牌环架构;

图3示出了一种异步处理器架构;

图4示出了在算术逻辑单元(ALU)内进行选通的基于令牌的流水线;

图5示出了在多个ALU之间进行传递的基于令牌的流水线;

图6示出了基于令牌的处理器中令牌延迟的场景;

图7示出了流水线式ALU系统的实施例;以及

图8示出了针对异步处理器应用流水线式ALU的方法的实施例。

除非另有说明,不同附图中的相应数字和符号通常指代相应部件。对附 图进行绘制以清楚说明实施例的相关方面,并且不一定按比例进行绘制。

具体实施方式

以下对当前优选实施例的形成和使用进行详细讨论。然而,应当理解, 本发明提供多种可以在各种特定背景下体现的适用性发明构思。所讨论的具 体实施例仅用来说明形成和使用本发明的具体方式,并不限制本发明的范围。

图1示出了一种萨瑟兰异步微流水线架构。所述萨瑟兰异步微流水线架 构是使用握手协议来操作微流水线构件的异步微流水线架构的一种形式。萨 瑟兰异步微流水线架构包括多个通过触发器或锁存器依次相连的计算逻辑。 所述计算逻辑串联布置并且由每两个相邻的计算逻辑之间的锁存器分隔开 来。通过穆勒-C元件(标记为C)来实现握手协议,以便控制锁存器,从而 确定是否以及何时在计算逻辑之间传递信息。这使得能够异步或无时钟控制 流水线,而不需要定时信号。如图所示,穆勒-C元件具有耦合到相应锁存器 的输出端和耦合到其它两个相邻的穆勒-C元件的两个输入端。每个信号具有 两个状态(例如,1和0,或者真和假)中的一个。传输到穆勒-C元件的输 入信号由反向的A(i),A(i+1),A(i+2),A(i+3)和正向的R(i),R(i+1),R(i+2), R(i+3)表示,其中i,i+1,i+2,i+3表示串联中的各级。传输到穆勒-C元件 的正向输入为通过延迟逻辑级的延迟信号。穆勒-C元件还具有存储有输出到 相应锁存器的其前一个输出信号的状态的存储器。穆勒-C元件根据输入信号 和前一个输出信号发送下一个输出信号。具体地,如果传输到穆勒-C元件的 两个输入信号R和A具有不同状态,则穆勒-C元件向相应锁存器输出A。否 则,保持前一输出状态。锁存器根据相应穆勒-C元件的输出信号在两个相邻 的计算逻辑之间传递信号。锁存器具有最后输出信号状态的存储器。如果传 输给锁存器的当前输出信号发生状态改变,则锁存器允许信息(例如,一个 或多个处理比特)从前面的计算逻辑传递到下一个逻辑。如果状态没有发生 变化,则锁存器阻止信息传递。此穆勒-C元件是一种非标准芯片组件,通常 在制造商提供的用于支持各种芯片组件和逻辑的函数库中得不到支持。因此, 基于非标准穆勒-C元件在芯片上实现上述架构的功能是有挑战性的,而且不 是所希望的。

图2示出了一种令牌环架构的例子,其根据芯片实施方式是上述架构合 适的替代选择。这种架构的组件由用于芯片实现的标准函数库所支持。如上 所述,萨瑟兰异步微流水线架构需要由非标准穆勒-C元件实现的握手协议。 为了避免使用穆勒-C元件(如图1中),采用一系列令牌处理逻辑来控制诸 如芯片上的处理单元(例如,ALUs)或其它函数计算单元的不同计算逻辑(未 示出)的处理,或者控制所述计算逻辑对诸如寄存器或存储器系统资源的访 问。为了涵盖某些计算逻辑的较长延迟,如图所示,将令牌处理逻辑复制几 个拷贝并设置成串联的令牌处理逻辑。串联的每个令牌处理逻辑控制一个或 多个令牌信号(与一个或多个资源相关联)的传递。通过串联的令牌处理逻 辑传递的令牌信号形成令牌环。令牌环调控计算逻辑(未示出)访问与该令 牌信号相关联的系统资源(例如,存储器、寄存器)。令牌处理逻辑按顺序 接受、保持并传递彼此间的令牌信号。当令牌处理逻辑保持令牌信号时,与 该令牌处理逻辑相关联的计算逻辑被授予独占访问对应于该令牌信号的资源 的权利,直到该令牌信号被传递给所述令牌环中的下一令牌处理逻辑。保持 并传递令牌信号推断出对应资源的逻辑访问或使用,并且在本文中称为对令 牌的消耗。一旦令牌被消耗,其由该逻辑释放给所述令牌环中的后续逻辑。

图3示出了一种异步处理器架构。该架构包括在如上所述的令牌环架构 中并联的多个自定时(异步)算术逻辑单元(ALUs)。所述多个ALU可以 包括或对应于图2的令牌处理逻辑。图3的异步处理器架构还包括:反馈引 擎、指令/定时历史表、寄存器(存储器)和交叉开关,其中所述反馈引擎用 于在所述多个ALU之间恰当地分配输入指令,所述指令/定时历史表能够被 所述反馈引擎访问以便确定指令的分配,所述寄存器(存储器)能够被所述 多个ALU访问,并且所述交叉开关用于在所述多个ALU之间交换所需信息。 所述表用于指示传输到处理器系统的多个输入指令之间的定时和相关性信 息。来自指令缓存/存储器的指令由反馈引擎接收,该反馈引擎利用历史表检 测或计算数据相关性并确定指令的时序。反馈引擎对每条指令进行预解码以 判断该指令需要多少输入操作数。然后,反馈引擎查找历史表以查明这片数 据是在交叉开关上还是在寄存器文件上。如果数据是在交叉总线上找到的, 则反馈引擎计算是哪个ALU产生所述数据。将该信息标记给分派给该ALU 的指令。反馈引擎也相应地更新历史表。

图4示出了在ALU内进行选通(gating)的基于令牌的流水线,本文中 也称为ALU内令牌选通系统的基于令牌的流水线。根据该流水线,采用指定 令牌以流水线的给定顺序来选通其它指定令牌。这意味着,当一指定令牌经 过一ALU时,此时允许令牌环架构中同一ALU对第二指定令牌进行处理并 传递。换言之,ALU释放一个令牌成为以该给定顺序消耗(处理)该ALU 中另一令牌的条件。图4示出了令牌选通关系的一种可能的例子。具体地, 在该例子中,启动令牌(L)选通寄存器访问令牌(R),其依次又选通跳跃 令牌(jumptoken)(PC令牌)。跳跃令牌选通存储器访问令牌(M)、指 令预提取令牌(F)以及可能被使用的其它可能的资源令牌。这意味着,令牌 M、令牌F和其它资源令牌只能在传递跳跃令牌后由ALU消耗掉。这些令牌 选通提交令牌(W)(committoken)到寄存器或存储器。提交令牌在本文中 也称为一种用于写入指令的令牌。反过来提交令牌选通启动令牌。来自选通 令牌(流水线中的一令牌)的选通信号被用作传输到选通令牌(流水线下一 顺序的令牌)的消耗条件逻辑的输入。例如,当启动令牌L被释放给下一ALU 时,L向寄存器访问或读取令牌(R)产生有源信号(activesignal)。这确保 了直到启动令牌真正启动指令时,任意ALU才读取寄存器文件。

图5示出了在多个ALU之间进行传递的基于令牌的流水线,本文中也称 为用于ALU间令牌传递系统的基于令牌的流水线。根据该流水线,被消耗的 令牌信号可以向公共资源触发脉冲。例如,寄存器访问令牌(R)向寄存器文 件触发脉冲。该令牌信号在释放给下一ALU之前被延迟这样一段时间,即, 防止在ALU-(n)和ALU-(n+1)之间的该公共资源(寄存器文件)上发 生结构性风险(structuralhazard)。这些令牌不仅防止了多个ALU在程序计 数器命令中启动并提交(或写入)指令,还避免了多个ALU之间的结构性风 险。

图6示出了根据令牌系统(图4和图5中描述的)的包括自定时ALU组 (图3中描述的)的基于令牌的处理器中令牌延迟的场景。在这种场景中, 即使启动令牌(L)和寄存器访问令牌(R)由其它ALU释放,并对ALU(ALU-0) 可用,该ALU(ALU-0)也不能启动下一指令(指令-n),直到该ALU释放 提交令牌(W)。该场景示出了从另一ALU(ALU-(n-1))释放L的时刻 到释放W后ALU-0拥有L时的时刻的令牌延迟。所述延迟是由上述基于令 牌的流水线的W令牌和L令牌之间的选通条件引起的。这种延迟会增加计算 延迟并降低总体上所有处理速度和性能。本发明的系统和方法实施例在异步 处理器中设置的ALU集的上下文中进行描述。ALU作为指令处理单元执行 计算并提供结果给相应下发指令。然而,在其它实施例中,处理器可以包括 其它指令处理单元,而不是ALU。这些指令单元有时可以称为执行单元(XU) 或执行逻辑,并且相比上述ALU可以具有类似的、不同的或者附加函数来处 理指令。通常,本文中所述的系统和方法实施例可应用于任何利用下述的基 于令牌的系统在异步处理器架构中运行的指令执行或处理单元。

图7示出了解决上述令牌延迟问题的流水线式ALU系统的实施例,因而 减小了延迟并提高了处理器性能。该系统中的多个ALU被配置成执行2级流 水线,其中根据ALU的令牌流水线可以针对两个连续的指令部分重叠。具体 地,如果满足以下两个条件,即,如果该ALU拥有针对下一指令的启动令牌 (L),并且如果ALU已提取该下一指令,则,即使在释放用于当前指令的 W令牌之前,ALU启动在ALU中、继当前执行指令之后的下一指令。这意 味着,ALU不需要等到针对第一指令的提交令牌(W)被ALU释放才开始 启动并执行下一指令,这消除了上述令牌延迟问题。在另一实施例中,除了 ALU,该系统可以包括执行单元。

图8示出了根据上述流水线式ALU系统、针对异步处理器应用流水线式 ALU(或者指令执行单元)的方法的实施例。在步骤810中,处理器中执行 单元的ALU消耗(拥有并释放)在基于令牌的流水线中的令牌L,随后是令 牌R。在步骤820中,ALU执行(例如,处理并执行必要的计算针对)第一 指令。在步骤830中,ALU拥有F令牌、提取第二指令并释放在基于令牌的 流水线中的所述F令牌。在步骤840中,一经消耗F令牌,ALU则拥有在基 于令牌的流水线中的一L令牌。具体地,即使ALU仍然拥有并且尚未释放在 基于令牌的流水线中的W令牌,ALU也可以拥有在基于令牌的流水线中的L 令牌。随后,在步骤850中,ALU开始处理第二指令(在消耗掉基于令牌的 流水线中的R令牌之后)。类似于图4所示基于令牌的流水线,基于令牌的 流水线中的令牌可以被选通。如果ALU拥有在第二流水线中的L令牌,并且 如果ALU提取第二指令(当ALU消耗在第一流水线中的F令牌时),ALU 启动第二指令。

虽然本发明中提供了几个实施例,但是应当理解,所公开的系统和方法 可以以许多其它特定形式来体现,而不脱离本发明的精神或范围。当前示例 应被认为是说明性的而不是限制性的,并且其意图并不限于本文所给出的细 节。例如,各种元件或组件可以组合或结合在另一系统中,或者可以省略或 不实施某些特征。

此外,各种实施例中分别或单独描述并示出的技术、系统、子系统和方 法可以与其它系统、模块、技术或方法进行组合或者结合,而不脱离本发明 的范围。所显示或讨论的相互之间的耦合或直接耦合或通信连接的其他项目 可以是通过一些接口、设备或中间组件的间接耦合或通信连接,可以是电性、 机械或其它的形式。本领域技术人员可以确定改变、替换和变换的其它例子, 并在不脱离本文所公开的精神和范围的前提下做出。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号