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

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

Info

Publication number
CN105393211B
CN105393211B CN201480041101.1A CN201480041101A CN105393211B CN 105393211 B CN105393211 B CN 105393211B CN 201480041101 A CN201480041101 A CN 201480041101A CN 105393211 B CN105393211 B CN 105393211B
Authority
CN
China
Prior art keywords
instruction
token
execution unit
written
alu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480041101.1A
Other languages
English (en)
Other versions
CN105393211A (zh
Inventor
史无限
葛屹群
张其蕃
黄韬
童文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105393211A publication Critical patent/CN105393211A/zh
Application granted granted Critical
Publication of CN105393211B publication Critical patent/CN105393211B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

具有流水线式算术逻辑单元的异步处理器的系统和方法
相关申请交叉引用
本申请要求SHI Wuxian等人于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),其依次又选通跳跃令牌(jump token)(PC令牌)。跳跃令牌选通存储器访问令牌(M)、指令预提取令牌(F)以及可能被使用的其它可能的资源令牌。这意味着,令牌M、令牌F和其它资源令牌只能在传递跳跃令牌后由ALU消耗掉。这些令牌选通提交令牌(W)(commit token)到寄存器或存储器。提交令牌在本文中也称为一种用于写入指令的令牌。反过来提交令牌选通启动令牌。来自选通令牌(流水线中的一令牌)的选通信号被用作传输到选通令牌(流水线下一顺序的令牌)的消耗条件逻辑的输入。例如,当启动令牌L被释放给下一ALU时,L向寄存器访问或读取令牌(R)产生有源信号(activesignal)。这确保了直到启动令牌真正启动指令时,任意ALU才读取寄存器文件。
图5示出了在多个ALU之间进行传递的基于令牌的流水线,本文中也称为用于ALU间令牌传递系统的基于令牌的流水线。根据该流水线,被消耗的令牌信号可以向公共资源触发脉冲。例如,寄存器访问令牌(R)向寄存器文件触发脉冲。该令牌信号在释放给下一ALU之前被延迟这样一段时间,即,防止在ALU-(n)和ALU-(n+1)之间的该公共资源(寄存器文件)上发生结构性风险(structural hazard)。这些令牌不仅防止了多个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启动第二指令。
虽然本发明中提供了几个实施例,但是应当理解,所公开的系统和方法可以以许多其它特定形式来体现,而不脱离本发明的精神或范围。当前示例应被认为是说明性的而不是限制性的,并且其意图并不限于本文所给出的细节。例如,各种元件或组件可以组合或结合在另一系统中,或者可以省略或不实施某些特征。
此外,各种实施例中分别或单独描述并示出的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或者结合,而不脱离本发明的范围。所显示或讨论的相互之间的耦合或直接耦合或通信连接的其他项目可以是通过一些接口、设备或中间组件的间接耦合或通信连接,可以是电性、机械或其它的形式。本领域技术人员可以确定改变、替换和变换的其它例子,并在不脱离本文所公开的精神和范围的前提下做出。

Claims (21)

1.一种由异步处理器执行的方法,所述方法包括:
在所述异步处理器的第一指令执行单元XU提取第一指令;
在所述第一指令执行单元XU中执行所述第一指令,其中,在所述第一指令执行单元XU中执行所述第一指令之后,将所述第一指令写入存储器;
在所述第一指令执行单元XU一经保持用于提取下一指令的令牌,在执行所述第一指令后将所述第一指令写入所述存储器之前就提取第二指令;以及
在所述第一指令执行单元XU一经保持用于启动下一指令的令牌,就执行所述第二指令。
2.根据权利要求1所述的方法,其中,不论所述第一指令执行单元XU是否保持用于写入第一指令的令牌,均执行所述第二指令。
3.根据权利要求1所述的方法,还包括:在执行所述第二指令时,在所述第一指令执行单元XU中保持用于写入第一指令的令牌。
4.根据权利要求3所述的方法,还包括:
完成在所述第一指令执行单元XU中执行所述第一指令;以及
在所述第一指令执行单元XU中所述第二指令执行完成之前或执行期间,将所述第一指令写入所述存储器。
5.根据权利要求1所述的方法,其中,在所述异步处理器的第二指令执行单元XU释放所述用于启动下一指令的令牌后,在所述第一指令执行单元XU提取所述用于启动下一指令的令牌。
6.根据权利要求1所述的方法,其中,根据令牌流水线逻辑,所述用于提取下一指令的令牌和所述用于启动下一指令的令牌在所述异步处理器的多个指令执行单元XU之间进行传递,其中释放所述用于提取下一指令的令牌是处理所述用于启动下一指令的令牌的条件。
7.根据权利要求1所述的方法,其中,根据令牌流水线逻辑,所述用于提取下一指令的令牌和所述用于启动下一指令的令牌在所述异步处理器的多个指令执行单元XU之间进行传递,其中释放所述用于提取下一指令的令牌是处理用于写入所述第一指令的令牌的条件。
8.根据权利要求1所述的方法,其中,在所述第一指令执行单元XU释放所述用于启动下一指令的令牌是处理用于访问寄存器的令牌的条件,释放所述用于访问寄存器的令牌是处理程序计数器PC令牌的条件,释放所述PC令牌是处理用于访问存储器的令牌、所述用于提取下一指令的令牌、以及其它资源令牌中一个的条件,并且释放所述用于访问存储器的令牌、所述用于提取下一指令的令牌或所述其它资源令牌是处理用于写入所述第一指令的令牌的条件。
9.一种由异步处理器的算术逻辑单元ALU执行的方法,所述方法包括:
所述ALU提取第一指令;
在所述ALU处,执行所述第一指令,并且将所述第一指令写入存储器;
在执行所述第一指令后所述ALU将所述第一指令写入所述存储器之前,所述ALU一经保持用于提取下一指令的令牌,就提取第二指令;以及
在所述ALU处,一经保持用于启动下一指令的令牌,就执行所述第二指令。
10.根据权利要求9所述的方法,其中,执行所述第二指令包括:将所述第一指令写入存储器之前,启动执行所述第二指令。
11.根据权利要求9所述的方法,还包括:完成执行所述第二指令之前,所述ALU将所述第一指令写入所述存储器。
12.根据权利要求9所述的方法,还包括:
提取所述第二指令之前,接收用于提取下一指令的令牌;以及
执行所述第二指令之前,接收用于启动下一指令的令牌。
13.根据权利要求12所述的方法,还包括:接收用于启动下一指令的令牌之后,接收用于将第一指令写入存储器的令牌。
14.一种异步处理器,包括:
非暂时性存储器,用于存储指令;
设置成环形架构的用于传递令牌的多个指令执行单元XU,其中所述多个指令执行单元XU的每个指令执行单元XU包括逻辑电路,该逻辑电路配置成:
从所述非暂时性存储器提取第一指令;
执行所述第一指令,其中,在所述多个指令执行单元XU的一个指令执行单元XU中执行所述第一指令之后,将所述第一指令写入所述非暂时性存储器;
在执行所述第一指令后将所述第一指令写入所述非暂时性存储器之前,一经保持用于提取下一指令的令牌,就从所述非暂时性存储器提取第二指令;以及
不论所述多个指令执行单元XU的一个指令执行单元XU是否保持用于写入所述第一指令的令牌,均执行所述第二指令。
15.根据权利要求14所述的异步处理器,其中,所述逻辑电路还配置成在执行所述第二指令前保持用于启动下一指令的令牌。
16.根据权利要求15所述的异步处理器,其中,所述逻辑电路还配置成在提取所述第二指令前保持用于提取下一指令的令牌。
17.根据权利要求16所述的异步处理器,其中,所述逻辑电路还配置成在处理所述用于启动下一指令的令牌前释放所述用于提取下一指令的令牌。
18.根据权利要求14所述的异步处理器,其中,所述逻辑电路还配置成在提取所述第二指令后将所述第一指令写入所述非暂时性存储器。
19.根据权利要求14所述的异步处理器,其中,所述逻辑电路还配置成在开始执行所述第二指令后将所述第一指令写入所述非暂时性存储器。
20.根据权利要求14所述的异步处理器,其中,所述逻辑电路还配置成在将所述第一指令写入所述非暂时性存储器前保持用于将所述第一指令写入所述非暂时性存储器的令牌。
21.根据权利要求14所述的异步处理器,其中,所述多个指令执行单元XU为算术逻辑单元ALU。
CN201480041101.1A 2013-09-06 2014-09-09 具有流水线式算术逻辑单元的异步处理器的系统和方法 Active CN105393211B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361874909P 2013-09-06 2013-09-06
US61/874,909 2013-09-06
US14/477,536 2014-09-04
US14/477,536 US10318305B2 (en) 2013-09-06 2014-09-04 System and method for an asynchronous processor with pepelined arithmetic and logic unit
PCT/CN2014/086091 WO2015032354A1 (en) 2013-09-06 2014-09-09 System and method for an asynchronous processor with pipelined arithmetic and logic unit

Publications (2)

Publication Number Publication Date
CN105393211A CN105393211A (zh) 2016-03-09
CN105393211B true CN105393211B (zh) 2018-11-30

Family

ID=52626718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480041101.1A Active CN105393211B (zh) 2013-09-06 2014-09-09 具有流水线式算术逻辑单元的异步处理器的系统和方法

Country Status (4)

Country Link
US (1) US10318305B2 (zh)
EP (1) EP3017363B1 (zh)
CN (1) CN105393211B (zh)
WO (1) WO2015032354A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3388901B1 (de) * 2017-04-10 2023-08-23 Siemens Aktiengesellschaft Sicherheitsgerichtetes automatisierungssystem

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553276A (en) * 1993-06-30 1996-09-03 International Business Machines Corporation Self-time processor with dynamic clock generator having plurality of tracking elements for outputting sequencing signals to functional units
CN1319209A (zh) * 1998-05-08 2001-10-24 摩托罗拉公司 数字通信处理器
CN1432152A (zh) * 2000-04-25 2003-07-23 纽约市哥伦比亚大学托管会 用于大容量异步流水线处理的电路和方法
CN1678988A (zh) * 2002-09-04 2005-10-05 Arm有限公司 数据处理设备中的流水线之间的同步化
CN1711563A (zh) * 2002-10-11 2005-12-21 沙桥技术有限公司 令牌触发多线程操作的方法和装置
CN101132336A (zh) * 2007-10-17 2008-02-27 中国人民解放军国防科学技术大学 异构多核处理器高速异步互连通信网络
CN101258463A (zh) * 2005-09-05 2008-09-03 Nxp股份有限公司 异步脉动流水线
US8448105B2 (en) * 2008-04-24 2013-05-21 University Of Southern California Clustering and fanout optimizations of asynchronous circuits

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434520A (en) * 1991-04-12 1995-07-18 Hewlett-Packard Company Clocking systems and methods for pipelined self-timed dynamic logic circuits
WO1999004334A1 (en) * 1997-07-16 1999-01-28 California Institute Of Technology Improved devices and methods for asynchronous processing
US5920899A (en) * 1997-09-02 1999-07-06 Acorn Networks, Inc. Asynchronous pipeline whose stages generate output request before latching data
US7100020B1 (en) 1998-05-08 2006-08-29 Freescale Semiconductor, Inc. Digital communications processor
WO2005103885A2 (en) * 2004-04-27 2005-11-03 Koninklijke Philips Electronics N.V. Pipelined asynchronous instruction processor circuit
US8572355B2 (en) 2009-09-28 2013-10-29 Nvidia Corporation Support for non-local returns in parallel thread SIMD engine

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553276A (en) * 1993-06-30 1996-09-03 International Business Machines Corporation Self-time processor with dynamic clock generator having plurality of tracking elements for outputting sequencing signals to functional units
CN1319209A (zh) * 1998-05-08 2001-10-24 摩托罗拉公司 数字通信处理器
CN1432152A (zh) * 2000-04-25 2003-07-23 纽约市哥伦比亚大学托管会 用于大容量异步流水线处理的电路和方法
CN1678988A (zh) * 2002-09-04 2005-10-05 Arm有限公司 数据处理设备中的流水线之间的同步化
CN1711563A (zh) * 2002-10-11 2005-12-21 沙桥技术有限公司 令牌触发多线程操作的方法和装置
CN101258463A (zh) * 2005-09-05 2008-09-03 Nxp股份有限公司 异步脉动流水线
CN101132336A (zh) * 2007-10-17 2008-02-27 中国人民解放军国防科学技术大学 异构多核处理器高速异步互连通信网络
US8448105B2 (en) * 2008-04-24 2013-05-21 University Of Southern California Clustering and fanout optimizations of asynchronous circuits

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"LOW-POWER HIGH-PERFORMANCE ASYNCHRONOUS GENERAL PURPOSE ARMv7 PROCESSOR FOR MULTI-CORE APPLICATIONS";Michel Laurence;《13th International Forum on Embedded MPSoC and Multicore》;20130719;33-38 *

Also Published As

Publication number Publication date
US20150074377A1 (en) 2015-03-12
EP3017363A1 (en) 2016-05-11
WO2015032354A1 (en) 2015-03-12
US10318305B2 (en) 2019-06-11
EP3017363B1 (en) 2021-03-03
CN105393211A (zh) 2016-03-09
EP3017363A4 (en) 2018-10-10

Similar Documents

Publication Publication Date Title
US11573796B2 (en) Conditional branching control for a multi-threaded, self-scheduling reconfigurable computing fabric
US11868163B2 (en) Efficient loop execution for a multi-threaded, self-scheduling reconfigurable computing fabric
US11531543B2 (en) Backpressure control using a stop signal for a multi-threaded, self-scheduling reconfigurable computing fabric
US11010161B2 (en) Multiple types of thread identifiers for a multi-threaded, self-scheduling reconfigurable computing fabric
CN100590655C (zh) 指令解析器以及图形处理单元及其方法
US11635959B2 (en) Execution control of a multi-threaded, self-scheduling reconfigurable computing fabric
CN110018850A (zh) 用于可配置空间加速器中的多播的设备、方法和系统
US20230153258A1 (en) Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric
JP2011170868A (ja) 改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法
CN105393240A (zh) 具有辅助异步向量处理器的异步处理器的方法和装置
CN109062604B (zh) 一种面向标量和向量指令混合执行的发射方法及装置
CN105183698A (zh) 一种基于多核dsp的控制处理系统和方法
CN106095604A (zh) 一种多核处理器的核间通信方法及装置
US9449131B2 (en) Extracting system architecture in high level synthesis
CN111221662B (zh) 任务调度方法、系统及装置
JP2022028059A5 (ja) 制御システムにおいて実施される方法
US7945765B2 (en) Method and structure for asynchronous skip-ahead in synchronous pipelines
US20150356219A1 (en) Efficient mechanism in hardware and software co-simulation system
CN111985634B (zh) 神经网络的运算方法、装置、计算机设备及存储介质
CN105393211B (zh) 具有流水线式算术逻辑单元的异步处理器的系统和方法
WO2013011353A1 (en) Processing apparatus and method of synchronizing a first processing unit and a second processing unit
US8761188B1 (en) Multi-threaded software-programmable framework for high-performance scalable and modular datapath designs
US20220147097A1 (en) Synchronization signal generating circuit, chip and synchronization method and device, based on multi-core architecture
US20130151817A1 (en) Method, apparatus, and computer program product for parallel functional units in multicore processors
CN107077381B (zh) 异步指令执行装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant