可重构处理器及可重构处理器的条件执行方法
【专利摘要】本发明提出一种可重构处理器和可重构处理器的条件执行方法,其中,可重构处理器包括:路由单元,路由单元用于分配条件分支语句的条件判断语句和条件执行语句以并行处理条件判断语句和条件执行语句;第一算数逻辑单元,第一算数逻辑单元用于根据路由单元的分配处理条件判断语句以获取单比特信号;第二算数逻辑单元,第二算数逻辑单元用于根据路由单元的分配处理条件执行语句以获取条件执行结果,并接收单比特信号,以及根据单比特信号对条件执行结果的输出进行控制。本发明实施例的可重构处理器,通过并行处理条件分支语句中的条件判断语句和条件执行语句,缩短了条件分支语句的依赖长度以及运行时间,提升了条件分支语句的执行效率。
【专利说明】可重构处理器及可重构处理器的条件执行方法
【技术领域】
[0001]本发明涉及计算机【技术领域】,特别涉及一种可重构处理器及可重构处理器的条件执行方法。
【背景技术】
[0002]可重构处理器是一种新的并行处理器构架,其较之以往的单核处理器、专用芯片、现场可编程逻辑阵列有着显著的优势,是未来电路结构发展的一个方向。可重构处理器内往往含有多个算数逻辑单元,称之为众核阵列。阵列内部配以灵活度高的路由单元,实现算数逻辑单元之间多样化的互联。因此,经路由单元连接后的众核阵列可实现对数据流的高速处理,较传统的单核以及少核处理器在性能上有着巨大的优势。同时,较固化的专用电路在灵活性上也有着巨大的优势。
[0003]条件分支语句指的是IF-ELSE形式的代码语句,由条件判断语句和条件执行语句组成,条件执行语句分成多条互斥的支路,根据条件判断语句的结果在多条互斥的支路中选择一条进行。在传统的通用处理器中,条件分支语句的执行效率对于总体的性能有很大的影响。目前,执行条件分支语句主要有分支预测和条件执行两种方法。
[0004]在不支持分支预测的通用处理器中,在条件判断语句的结果尚未算出时后续的指令就需要被加载,因而条件分支造成的控制依赖关系会阻断处理器流水线。通用处理器的计算资源较少,所以分支预测技术可预测分支的某条路径是正确的并将其提前执行。如果预测成功,流水线将完美的跳过该控制依赖,但是一旦预测错误将造成清空流水线,代价比阻断其更大。此外,提前执行的指令是不安全的,其结果不能在判断结果出来之前改变系统的状态(与入系统寄存器或共孚存储器)。
[0005]条件执行是将控制依赖关系转换为数据依赖关系的一种方法,其意义在于取消分支跳转(指令地址跳转),提高程序的并行性。条件执行的方式为每一条执行语句分配其执行的先决条件。在传统处理器中,这意味着该执行语句对应的指令的执行是有条件的,由一个布尔型变量决定。无论该条件是I还是0,所有指令都被处理器取址,但是只有当条件为I时,这些指令才能被执行。当条件为O时,这些指令将被无效化,不会影响到处理器工作状态。通过条件执行可消除控制依赖关系,但是,与分支预测方法一样,需要提前执行条件判断语句,其结果不能在判断结果出来之前改变系统的状态。
【发明内容】
[0006]本发明旨在至少在一定程度上解决上述技术问题。
[0007]为此,本发明的第一个目的在于提出一种可重构处理器,该可重构处理器缩短了条件分支语句的依赖长度以及运行时间,大大提升了条件分支语句的执行效率。
[0008]本发明的第二个目的在于提出一种可重构处理器的条件执行方法。
[0009]为达上述目的,根据本发明第一方面的实施例提出了一种可重构处理器,包括:路由单元,所述路由单元用于分配条件分支语句的条件判断语句和条件执行语句以并行处理所述条件判断语句和所述条件执行语句;第一算数逻辑单元,所述第一算数逻辑单元用于根据所述路由单元的分配处理所述条件判断语句以获取单比特信号;第二算数逻辑单元,所述第二算数逻辑单元用于根据所述路由单元的分配处理所述条件执行语句以获取条件执行结果,并接收所述单比特信号,以及根据所述单比特信号对所述条件执行结果的输出进行控制。
[0010]本发明实施例的可重构处理器,可分别通过两个算数逻辑单元并行处理条件分支语句中的条件判断语句和条件执行语句,并根据条件判断语句执行获得的单比特信号对条件执行语句获得的条件执行结果的输出进行控制,使得条件分支语句可在同一时钟周期内完成,从而将控制依赖转化为数据依赖,缩短了条件分支语句的依赖长度以及运行时间,并通过硬件连线的方式直接实现,进一步提升了条件分支语句的执行效率。
[0011 ] 在本发明的一个实施例中,所述第二算数逻辑单元具体包括:计算单元,所述计算单元用于在所述第一算数逻辑单元运行所述条件判断语句时,并行处理所述条件分支语句中的条件执行语句以获取条件执行结果;快速条件输入端口,所述快速条件输入端口用于接收所述第一算数逻辑单元输出的所述单比特信号;数据输出端口,所述数据输出端口用于输出所述条件执行结果;控制端口,所述控制端口用于根据所述单比特信号控制所述数据输出端口的有效性。
[0012]在本发明的一个实施例中,所述控制端口根据所述单比特信号控制所述数据输出端口的有效性包括:所述控制端口在所述单比特信号为I时控制所述数据输出端口有效,以使所述数据输出端口输出所述条件执行结果;在所述单比特信号为O时控制所述数据输出端口无效。
[0013]在本发明的一个实施例中,所述条件执行结果的输出包括将所述条件执行结果写入存储器和/或将所述条件执行结果发送至所述路由单元。
[0014]为达上述目的,根据本发明第二方面的实施例提出了一种可重构处理器的条件执行方法,包括:并行处理条件分支语句中的条件判断语句和条件执行语句,以分别获取根据所述条件判断语句得到的单比特信号和根据所述条件执行语句得到的条件执行结果;根据所述单比特信号对所述条件执行结果的输出进行控制。
[0015]本发明实施例的可重构处理器的条件执行方法,可并行处理条件分支语句中的条件判断语句和条件执行语句,并根据条件判断语句执行获得的单比特信号对条件执行语句获得的条件执行结果的输出进行控制,使得条件分支语句可在同一时钟周期内完成,从而将控制依赖转化为数据依赖,缩短了条件分支语句的依赖长度以及运行时间,并通过硬件连线的方式直接实现,进一步提升了条件分支语句的执行效率。
[0016]在本发明的一个实施例中,所述并行处理条件分支语句中的条件判断语句和条件执行语句具体包括:在同一时钟周期内将所述条件判断语句和所述条件执行语句分别分配到两个算数逻辑单元分别进行处理。
[0017]在本发明的一个实施例中,所述根据所述单比特信号对所述条件执行结果的输出进行控制具体包括:如果所述单比特信号为1,则输出所述条件执行结果;如果所述单比特信号为0,则不输出所述条件执行结果。
[0018]在本发明的一个实施例中,所述条件执行结果的输出包括将所述条件执行结果写入存储器和/或将所述条件执行结果发送至所述路由单元。[0019]本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】
【附图说明】
[0020]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0021]图1为根据本发明一个实施例的可重构处理器的结构示意图;
[0022]图2为根据本发明一个实施例的第一算数逻辑单元和第二算数逻辑单元的工作示意图;
[0023]图3为根据本发明一个实施例的可重构处理器进行条件执行的示意图;
[0024]图4为根据本发明一个实施例的可重构处理器的条件执行方法的流程图;
[0025]图5为根据本发明一个实施例的可重构处理器进行条件执行与传统条件执行的对比示意图。
【具体实施方式】
[0026]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0027]在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0028]在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0029]目前,条件分支语句的执行方法,效率比较低,因此,可通过可重构处理器中的多个算数逻辑单元并行运行条件分支语句中的条件判断语句和条件执行语句,并根据条件判断语句之后得到的单比特信号控制条件执行语句执行后得到的条件执行结果的输出,以提高条件分支语句的执行效率。下面参考附图描述根据本发明实施例的可重构处理器和可重构处理器的条件执行方法。
[0030]图1为根据本发明一个实施例的可重构处理器的结构示意图。
[0031]如图1所示,根据本发明实施例的可重构处理器,包括:路由单元100、第一算数逻辑单元200和第二算数逻辑单元300。
[0032]具体地,路由单元100用于分配条件分支语句的条件判断语句和条件执行语句以并行处理条件判断语句和条件执行语句。在本发明的实施例中,路由单元可根据可重构处理器的配置信息将条件分支语句的条件判断语句和条件执行语句分别分配到第一算数逻辑单元200和第二算数逻辑单元300中执行。其中,可重构处理器的配置信息包括用于配置算数逻辑单元的指令流的信息以及用于配置相互连接的路由单元的非指令流的信息,进而,路由单元100可将指令流中相互独立的指令耦合起来(生成-消费关系)。
[0033]第一算数逻辑单元200用于根据路由单元的分配处理条件判断语句以获取单比特信号。
[0034]第二算数逻辑单元300用于根据路由单元的分配处理条件执行语句以获取条件执行结果,并接收单比特信号,以及根据单比特信号对条件执行结果的输出进行控制。在本发明的一个实施例中,第二算数逻辑单元300具体包括:计算单元、快速条件输入端口、数据输出端口 330和控制端口。其中,计算单元用于在第一算数逻辑单元运行条件判断语句时,并行处理条件分支语句中的条件执行语句以获取条件执行结果;快速条件输入端口用于接收第一算数逻辑单元输出的单比特信号;数据输出端口用于输出条件执行结果;控制端口用于根据单比特信号控制数据输出端口的有效性。
[0035]图2为根据本发明一个实施例的第一算数逻辑单元200和第二算数逻辑单元300的工作示意图。具体地,如图2所示,il,?2是数据输入端口,i3是传统的条件执行控制输入端口,而i4是本发明提出的快速条件输入端口。当第一算数逻辑单元200和第二算数逻辑单元300分别执行条件判断语句和条件执行语句之后,第一算数逻辑单元200可通过第一算数逻辑单元200的输出端口 o3输出单比特信号。该单比特信号通过第二算数逻辑单元300的快速条件输入端口 i4进入第二算数逻辑单元300,并且不同经过第二算数逻辑单元300的计算单元而直接到达第二算数逻辑单元300的控制端口 01,以控制的有效性。如果i4进入的单比特信号为0,则控制哦第二算数逻辑单元300的输出端口 o2无效,条件执行结果不会输出至存储器或路由单元。如果i4进入的单比特信号为1,则控制第二算数逻辑单元300的输出端口 o2有效,输出端口 o2可将条件执行结果输出:将条件执行结果写入存储器和/或将条件执行结果发送至路由单元。
[0036]图3为根据本发明一个实施例的可重构处理器进行条件执行的示意图。具体地,如图3所示,算数逻辑单元可通过数据总线接收待处理的数据,通过控制总线接收控制信号,其中,il, ?2是数据输入端口,i3是传统的条件执行控制输入端口,而i4是本发明提出的快速条件输入端口,ol是控制端口,用于控制数据输出端口 o2的有效性。由于o3接收到控制信号后,需要经过计算单元执行条件执行语句才能通过o2输出条件执行结果,而i4接收到控制信号时,计算单元已经在上一个时钟周期极爱那个条件执行语句执行完毕,i4接收到的控制信号可直接传递至ol对条件执行结果进行控制,因此,i4到ol的延时要远远短于i3到ol的延时,从而可以更快的完成条件执行操作。
[0037]本发明实施例的可重构处理器,可分别通过两个算数逻辑单元并行处理条件分支语句中的条件判断语 句和条件执行语句,并根据条件判断语句执行获得的单比特信号对条件执行语句获得的条件执行结果的输出进行控制,使得条件分支语句可在同一时钟周期内完成,从而将控制依赖转化为数据依赖,缩短了条件分支语句的依赖长度以及运行时间,并通过硬件连线的方式直接实现,进一步提升了条件分支语句的执行效率。
[0038]应当理解,可重构处理器中含有多个可并行运算的算数逻辑单元,多个算数逻辑单元被称为可重构处理器的众核阵列。在本发明的实施例中,第一算数逻辑单元与第二算数逻辑单元可为可重构处理器的众核阵列中的任意两个算数逻辑单元。其中,“第一”、“第二”仅用于描述目的。在本发明的其他实施例中,第一算数逻辑单元也可用于执行条件执行语句,并接收可重构处理器的众核阵列中的其他算数逻辑单元执行条件判断语句的结果得到的单比特信号,以根据该单比特信号对条件执行结果的输出进行控制;第二算数逻辑单元也可用于执行条件判断语句,并将得到的单比特信号输出到可重构处理器的众核阵列中的其他算数逻辑单元,以对该算数逻辑单元的条件执行结果的输出进行控制。在本发明的实施例中,单比特信号可根据路由单元的控制,输出到执行与该单比特信号对应的条件执行语句的算数逻辑单元。
[0039]为了实现上述实施例,本发明还提出一种可重构处理器的条件执行方法。
[0040]图4为根据本发明一个实施例的可重构处理器的条件执行方法的流程图。具体地,如图4所示,可重构处理器的条件执行方法包括:
[0041]S401,并行处理条件分支语句中的条件判断语句和条件执行语句,以分别获取根据条件判断语句得到的单比特信号和根据条件执行语句得到的条件执行结果。
[0042]在本发明的一个实施例中,可在同一时钟周期内将条件判断语句和条件执行语句分别分配到两个算数逻辑单元分别进行处理。
[0043]S402,根据单比特信号对条件执行结果的输出进行控制。
[0044]在本发明的实施例中,如果单比特信号为1,则输出条件执行结果:将条件执行结果写入存储器和/或将条件执行结果发送至路由单元。如果单比特信号为0,则不输出条件执行结果。
[0045]本发明实施例的可重构处理器的条件执行方法,可并行处理条件分支语句中的条件判断语句和条件执行语句,并根据条件判断语句执行获得的单比特信号对条件执行语句获得的条件执行结果的输出进行控制,使得条件分支语句可在同一时钟周期内完成,从而将控制依赖转化为数据依赖,缩短了条件分支语句的依赖长度以及运行时间,并通过硬件连线的方式直接实现,进一步提升了条件分支语句的执行效率。
[0046]图5为根据本发明一个实施例的可重构处理器进行条件执行与传统条件执行的对比示意图。如图5所示,在2X2的可重构处理器上执行条件分支语句:IF(A>B),C=A-B。传统条件执行需要经过时钟周期I和时钟周期2两个时钟周期,而本发明实施例的快速条件执行仅需时钟周期2 —个时钟周期。由此可见,本发明实施例的可重构处理器的条件执行方法缩短了条件分支语句的执行时间,提升了条件分支语句的执行效率。
[0047]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0048]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(⑶ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0049]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0050]本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0051 ] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0052]上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0053]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0054]尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。
【权利要求】
1.一种可重构处理器,其特征在于,包括: 路由单元,所述路由单元用于分配条件分支语句的条件判断语句和条件执行语句以并行处理所述条件判断语句和所述条件执行语句; 第一算数逻辑单元,所述第一算数逻辑单元用于根据所述路由单元的分配处理所述条件判断语句以获取单比特信号; 第二算数逻辑单元,所述第二算数逻辑单元用于根据所述路由单元的分配处理所述条件执行语句以获取条件执行结果,并接收所述单比特信号,以及根据所述单比特信号对所述条件执行结果的输出进行控制。
2.如权利要求1所述的可重构处理器,其特征在于,所述第二算数逻辑单元具体包括: 计算单元,所述计算单元用于在所述第一算数逻辑单元运行所述条件判断语句时,并行处理所述条件分支语句中的条件执行语句以获取条件执行结果; 快速条件输入端口,所述快速条件输入端口用于接收所述第一算数逻辑单元输出的所述单比特信号; 数据输出端口,所述数据输出端口用于输出所述条件执行结果; 控制端口,所述控制端口用于根据所述单比特信号控制所述数据输出端口的有效性。
3.如权利要求2所述的可重构处理器,其特征在于,所述控制端口根据所述单比特信号控制所述数据输出端口的有效性包括: 所述控制端口在所述单比特信号为I时控制所述数据输出端口有效,以使所述数据输出端口输出所述条件执行结果; 在所述单比特信号为O时控制所述数据输出端口无效。
4.如权利要求1所述的可重构处理器,其特征在于, 所述条件执行结果的输出包括将所述条件执行结果写入存储器和/或将所述条件执行结果发送至所述路由单元。
5.一种可重构处理器的条件执行方法,其特征在于,包括: 并行处理条件分支语句中的条件判断语句和条件执行语句,以分别获取根据所述条件判断语句得到的单比特信号和根据所述条件执行语句得到的条件执行结果; 根据所述单比特信号控对所述条件执行结果的输出进行控制。
6.如权利要求5所述的可重构处理器的条件执行方法,其特征在于,所述并行处理条件分支语句中的条件判断语句和条件执行语句具体包括: 在同一时钟周期内将所述条件判断语句和所述条件执行语句分别分配到两个算数逻辑单元分别进行处理。
7.如权利要求5所述的可重构处理器的条件执行方法,其特征在于,所述根据所述单比特信号对所述条件执行结果的输出进行控制具体包括: 如果所述单比特信号为1,则输出所述条件执行结果; 如果所述单比特信号为O,则不输出所述条件执行结果。
8.如权利要求5所述的可重构处理器的条件执行方法,其特征在于, 所述条件执行结果的输出包括将所述条件执行结果写入存储器和/或将所述条件执行结果发送至所述路由单元。
【文档编号】G06F9/38GK103853526SQ201410058606
【公开日】2014年6月11日 申请日期:2014年2月20日 优先权日:2014年2月20日
【发明者】刘雷波, 朱建峰, 杨骁 , 尹首一, 魏少军 申请人:清华大学