多线程异步处理器系统和方法

文档序号:9650584阅读:551来源:国知局
多线程异步处理器系统和方法
【专利说明】多线程异步处理器系统和方法
[0001]相关申请的交叉引用
[0002]本申请要求享有于2013年9月6日由Yiqun Ge等人提交的、申请号为N0.61/874, 860的、发明名称为“多线程异步处理器系统和方法”的美国临时申请的优先权,其全部内容以结合方式引用于此,并要求享有于2014年9月3日提交的、申请号为N0.14/476,535的、发明名称为“多线程异步处理器系统和方法”的美国申请的优先权,其全部内容以结合方式引用于此。
技术领域
[0003]本发明涉及异步处理,更具体地,涉及多线程异步处理器系统和方法。
【背景技术】
[0004]微流水线是异步处理器设计的基础组成。微流水线的重要组成部件包括会合(RENDEZVOUS)电路,例如穆勒_C(Muller_C)元件链。Muller_C元件可在当前计算逻辑阶段完成并且下一个计算逻辑阶段准备开始时允许数据通过。异步处理器重复整个处理块(包括所有计算逻辑阶段)并使用一系列令牌和令牌环来仿真流水线,代替了使用非标准Muller-C元件实现两个无时钟(无需时钟定时)计算电路逻辑之间的握手协议。每个处理块包含令牌处理逻辑以控制令牌的使用,无需时间或计算逻辑阶段之间的时钟同步。因此,该处理器设计被称为异步或无时钟处理器设计。令牌环管理对系统资源的接入。令牌处理逻辑以顺序方式相互之间接受、保持并传递令牌。当令牌处理逻辑保持令牌时,该块可被授权为独占访问与该令牌对应的资源,直至该令牌被传递至环中下一个令牌处理逻辑。需要一种改进的、效率更高的异步处理器架构,例如可以在一时间间隔内处理更多计算的处理器。

【发明内容】

[0005]根据一实施例,一种由异步处理器执行的方法包括:从异步处理器的执行单元接收指令的多个线程;在异步处理器的程序计数器(PC)逻辑和指令缓存单元为所述指令的多个线程发起多个相应的PC逻辑。该方法进一步包括使用每个PC逻辑为所述指令的多个线程的一个相应线程执行分支预测和循环预测;使用每个PC逻辑为所述一个相应线程确定目标PC地址;以及根据所述目标PC地址在指令存储器中缓存所述一个相应线程。
[0006]根据另一实施例,一种在异步处理器上执行的方法包括:程序计数器(PC)逻辑和指令缓存单元发起用于处理指令的多个线程的多个PC逻辑;
[0007]使用每个PC逻辑为所述多个线程的一个相应线程执行分支预测和循环预测。该方法进一步包括使用每个PC逻辑在指令存储器中确定目标PC地址,用于缓存所述一个相应线程;根据目标PC地址在指令存储器中缓存所述一个相应线程。另外,使用多线程(MT)调度单元调度将来自所述指令存储器的与所述多个线程相对应的指令流调度和合并成为指令的单合并线程。
[0008]根据又一实施例,一种用于支持多线程的异步处理器的装置包括:程序计数器(PC)逻辑和指令缓存单元,包括多个PC逻辑,所述多个PC逻辑用于为指令的多个线程执行分支预测和循环预测,并确定用于缓存多个线程的目标PC地址。该装置进一步包括指令存储器,用于根据来自PC逻辑和指令缓存单元的目标PC地址缓存多个线程。该装置进一步包括多线程(MT)调度单元,用于将来自所述指令存储器的与所述多个线程相对应的指令流调度和合并成为指令的单合并线程。
[0009]为了更好的理解下面对本发明的详细描述,上述宽泛的概括了本发明实施例的特征。下面将描述本发明实施例的其他特征和优点,其形成本发明权利要求的主题。本领域技术人员应当理解,可以公开的概念和具体实施例作为基础进行修改或设计其他结构或实现与本发明相同目的的步骤。本领域技术人员也可以理解,这种等同结构并不脱离如所附权利要求的本发明的精神和范围。
【附图说明】
[0010]下面将参照如下描述并结合附图从而更完整的理解本发明及其优点,其中:
[0011]图1示出了萨瑟兰(Sutherland)异步流水线架构;
[0012]图2示出了令牌环架构;
[0013]图3示出了异步处理器架构;
[0014]图4示出了在算术逻辑单元(ALU)内进行选通的、基于令牌的流水线;
[0015]图5示出了在ALU间传递的、基于令牌的流水线;
[0016]图6示出了基于令牌的单线程处理器架构;
[0017]图7示出了基于令牌的多线程处理器架构的一实施例;
[0018]图8示出了用于双线程的多线程寄存器窗口的一实例;
[0019]图9示出了多线程调度策略的一实例;
[0020]图10示出了应用基于令牌的多线程处理器架构实施多线程的方法的一实施例;
[0021]除非另有说明,相应的数字和标记在不同附图中指代相应的部分。上述附图旨在清楚的说明实施例的相关方面,而无需按比例绘制。
【具体实施方式】
[0022]下文中将详细的讨论优选实施例的构成和使用。然而,应理解的是,本发明提供了多个可应用的发明概念,其可以在多个具体环境中呈现。所讨论的具体实施例仅为说明本发明的构成和使用的具体方式,而并不限制本发明的范围。
[0023]图1示出了萨瑟兰异步流水线架构。萨瑟兰异步微流水线架构是异步微流水线架构的一种形式,其使用握手协议来操作流水线组成部件。萨瑟兰异步微流水线架构包括多个通过触发器或锁存器而循序链接的计算逻辑。该多个计算逻辑串联设置并且每两个相邻计算逻辑由锁存器分隔开。握手协议由Muller-C元件(标记为C)实现,以控制锁存器并因而确定是否以及何时在计算逻辑之间传递信息。这实现了流水线的异步或无时钟控制,而无需定时信号。Muller-C元件具有与各自锁存器连接的输出端以及与另两个相邻Muller-C元件连接的两个输入端,如图所示。每个信号具有两种状态中的一种(例如,1和0,或真和假)。Muller-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指示在该串联中的相应级。Muller-C的前向输入为延迟信号,通过延迟逻辑级,Muller-C元件可保持其之前的输出信号至各自的锁存器。Muller-C元件根据该输入信号和之前的输出信号发送下一个输出信号。具体地,如果Muller-C的两个输入信号R和A具有不同状态,那么Muller-C元件输出A至各自的锁存器。否则,保持之前的输出状态。锁存器根据各自Muller-C单元的输出信号在两个相邻计算逻辑之间传递信号。锁存器记忆上一次输出信号状态。如果有对锁存器当前输出信号的状态改变,那么锁存器允许该信息(例如一个或多个已处理位)从前一计算逻辑传递至下一逻辑。如果没有状态改变,那么锁存器阻止信息的传递。该Muller-C单元为非标准芯片部件,无法得到由开发商提供的支持多种芯片部件和逻辑的功能库的典型支持。因此,在芯片上实现基于非标准Muller-C单元的上述架构的功能是具有挑战性的并且是不可取的。
[0024]图2示出了令牌环架构的实例,其是上述架构的芯片实现的合适替代。该架构的部件由用于芯片实现的标准功能库支持。如上所述,萨瑟兰异步微流水线架构要求握手协议,其由非标准Muller-C单元实现。为了避免使用Muller-C单元(如图1所示),使用了一系列令牌处理逻辑来控制不同计算逻辑(未示出)的处理,例如芯片上的处理单元(例如ALU)或其他功能计算单元,或控制计算逻辑访问系统资源,例如寄存器或存储器。为了弥补一些计算逻辑的长延迟,将令牌处理逻辑复制多份拷贝并设置为一系列令牌处理逻辑,如图所示。系列中每个令牌处理逻辑控制一个或多个令牌信号(与一个或多个资源关联)的传递。令牌信号传递穿过一系列令牌处理单元形成令牌环。令牌环管理计算逻辑(未示出)对与该令牌信号相关联的系统资源(例如存储器,寄存器)的访问。令牌处理逻辑以顺序方式相互之间接受、保持并传递令牌信号。当令牌处理逻辑保持令牌信号时,与该令牌处理逻辑相关联的计算逻辑被授权为独占访问与该令牌信号对应的资源,直至该令牌信号被传递至环中下一个令牌处理逻辑。
[0025]图3示出了异步处理器架构。该架构包括在上述令牌环架构中并联的多个自定时(异步)算术逻辑单元(ALU)。ALU可包括或对应图2中的令牌处理逻辑。图3的异步处理器架构还包括反馈引擎,用于在ALU之间合理的分配到来的指令;反馈引擎可访问的指令/定时历史表,用于确定数据依赖性;ALU可访问的寄存器(存储器);以及交叉开关,用于在ALU之间交换需要的信息。该表用于
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1