首页> 中国专利> 具有终止信号传播的机制的可编程流水线结构

具有终止信号传播的机制的可编程流水线结构

摘要

公开了一种方法和设备,用于存储和使用“寄存器使用”信息来确定寄存器何时被最后一次使用,从而可以实现功率节省。寄存器使用信息可以采取对于特定寄存器的“最后一次读取”信息的形式。该最后一次读取信息可以用来在读取寄存器之后将该寄存器的值强制为零,或者在掩蔽掉其它寄存器的同时只对该寄存器进行钟控。公开了几种方法和硬件变型,用于使用所述寄存器使用信息来实现功率节省。

著录项

  • 公开/公告号CN1688968A

    专利类型发明专利

  • 公开/公告日2005-10-26

    原文格式PDF

  • 申请/专利权人 卡内基梅隆大学;

    申请/专利号CN03824276.1

  • 发明设计人 H·施米特;B·莱文;

    申请日2003-08-14

  • 分类号G06F9/38;

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人刘红;王勇

  • 地址 美国宾夕法尼亚州

  • 入库时间 2023-12-17 16:42:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-03-23

    未缴年费专利权终止 IPC(主分类):G06F9/38 授权公告日:20080806 终止日期:20090914 申请日:20030814

    专利权的终止

  • 2008-08-06

    授权

    授权

  • 2005-12-21

    实质审查的生效

    实质审查的生效

  • 2005-10-26

    公开

    公开

说明书

关于联邦资助的研究的声明

本发明是部分通过由DARPA-ITO/TTO根据合同No.DABT63-96-C-0083提供的资金而开发的。联邦政府可能拥有对本发明的权利。

技术领域

本发明涉及可重新配置的体系结构,更具体来说,涉及用来以流水线式方式处理信息的可重新配置的体系结构。

背景技术

用于可重新配置的计算的传统方法静态地配置可编程的硬件,以便执行用户定义的应用。这种配置的静态性质导致两个重要问题:计算可能要求比可用的硬件更多的硬件,并且单一硬件的设计不能利用附加资源,该附加资源不可避免的在未来的处理世代中变得可用。一种称为流水线式重新配置的技术在一小块硬件上实现了一个大的逻辑配置,这是通过对该硬件的快速重新配置而实现的。利用这种技术,编译器(compiler)不再负责满足固定的硬件约束。此外,一种设计的性能与分配给该设计的硬件数量成比例地改善。

通过把单一静态配置断开成相应于应用中的各流水线级的各段,使得流水线式配置包括虚拟化流水线式计算。每个流水线级被每周期一个地加载到该结构中。这使得执行该计算成为可能,即使在该结构中从来不同时存在整个配置。

图1例示了虚拟化处理,其中示出了在一个三级结构上虚拟化的五级流水线。图1A示出了一个五级应用以及在六个连续周期中每个逻辑(或虚拟)流水线级的状态。图1B示出了当该结构执行此应用时在该结构中的各物理级的状态。在此例中,虚拟管道级(pipe stage)1在周期1中被配置,并且准备在下一个周期中执行;虚拟管道级1执行两个周期。没有物理管道级4;因此,在周期4中,在物理管道级1配置第四虚拟管道级,以替代第一虚拟级。一旦流水线完整,每五个周期生成持续两个连续周期的两个结果。例如,周期2,3,7,8...消耗输入,而周期6,7,11,12...产生输出。

图2是流水线式结构的体系结构等级的概括视图。每一行处理元件(PE)连同其相关联的互连被称作一个条带(stripe)。每个PE典型地包含算术逻辑单元(ALU)和传递寄存器文件(pass register file)。每个ALU包含查找表(LUT)和用于进位链、零检测等等的额外电路。设计者使用一组N个B比特宽的ALU来实现组合逻辑。当特定的虚拟条带驻留在物理条带中时,ALU操作是静态的。设计者可以级联、链接或者以其它方式连接各ALU的各条进位线,以便构造更宽的ALU,并且可以将各PE经由互连网络链接在一起以便建立复杂的组合功能。

用于流水线式重新配置的关键使能结构(key enablingstructure)之一是传递寄存器文件。图3中示出传递寄存器文件10的一个示例。传递寄存器文件10由四个寄存器12、14、16、18构成(它们可以具有任意的位宽);在该图中,写端口由四个多路复用器20、22、24、26和写地址译码器28组成;并且在该图中,读端口由响应于读地址的4到1多路复用器30组成。图3的结构允许连接到该寄存器文件10的功能单元从寄存器文件10中读取一个值,并且允许功能单元将一个值写入特定寄存器12、14、16、18中的一个。如果没有通过写端口将值写入寄存器12、14、16、18中的一个,则分别经由线32、34、36、38,将来自前一条带的前一传递寄存器文件中的响应传递寄存器的值写入寄存器12、14、16、18。

图4例示了可能使用在应用中的四个传递寄存器文件42、44、46、48。在该图中,传递寄存器文件42、44、46、48连接在一个环中,但是并不需要将它们如此连接。在图4中,在寄存器文件42、44、46、48中的每一个当中只示出了一个寄存器,尽管每一个寄存器文件可以是任意大的。在图4中,由功能单元1生成的数据通过一个传递寄存器文件44前进到功能单元2。

图4的结构的一个主要问题是,只打算由功能单元2使用的值,通过其它传递寄存器文件46、48、42在后续的条带中继续。如果该值不由其它条带使用该寄存器重写,则所述值继续传播,一直到传播回功能单元1。这一活动对于计算来说是毫无价值的,并且会耗散相当多的功率。

在流水线式可重新配置装置的传递寄存器文件中出现的一个相关功耗问题是,芯片中的来自先前应用的旧的值继续通过芯片传播,从而即使它们与当前计算无关也仍然消耗功率。因此,在流水线结构中需要一种用于终止不再为计算所需的信号的机制。

发明内容

本发明针对这样一种方法和设备,其用于存储和使用“寄存器使用”信息以便确定最后一次使用寄存器是什么时候,从而可以实现功率节省。寄存器使用信息可以采取对于特定寄存器的“最后一次读取”信息的形式。该最后一次读取信息可以用来在读取寄存器之后将该寄存器的值强制为一个常数,或者在掩蔽掉(mask off)其它寄存器的同时只对该寄存器进行钟控(clock)。公开了几种方法和硬件变型,用于使用所述“寄存器使用”信息来实现功率节省。下面,根据对本发明的详细描述,所述优点及益处以及其它优点及益处将变得显而易见。

附图说明

为更容易地理解和实践本发明,下面将出于示例的目的而不是限制性的目的来结合附图描述本发明,其中:

图1A和图1B例示了在三级可重新配置结构上虚拟化五级流水线的处理;

图2例示了可重新配置结构的一个条带;

图3是传递寄存器文件的一个示例;

图4例示了四个各具有单个寄存器的传递寄存器文件,以便演示多余的信号传播;

图5例示了本发明的一个实施例,用于通过将信号值强制为零来终止多余信号传播;

图6例示了本发明的另一个实施例,用于通过只对产生要被读取的值所需要的寄存器进行钟控来终止多余信号传播;

图7例示了本发明的另一个实施例,用于通过只对产生要被读取的值所需要的寄存器进行钟控来终止多余信号传播;

图8是例示掩蔽单元的一个实施例的框图;

图9例示了对图6的电路的修改,以便使用局部掩蔽单元;

图10例示了一个电路,其中由通用时钟信号对寄存器进行钟控,并且使用四个与门和一个译码器来将一个寄存器强制成零值;以及

图11例示了对图10的电路的修改,以便使得每个寄存器能够由其自己的时钟信号钟控。

具体实施方式

图5例示了本发明的一个实施例,用于终止多余信号传播。在图5中,如所知的那样,例如通过将配置字写入物理条带,用虚拟条带来配置每个物理条带。在Schmit等人的“Managing Pipeline-Reconfigurable FPGAs(管理流水线式可重新配置的FPGE)”(出版于ACM6th International Symposium on FPGAs,1998年2月)中提供了对配置管理和数据管理的详细解释,这里引用其全文以作参考。想要知道关于将配置字写入物理条带的任务的更多细节的读者可以参考上述文章。关于可重新配置的结构的构造和操作的附加的细节可以在以下文章中找到:Schmit等人的“PipeRench:a virtualized programmable datapath in 0.18 Micro Technology(PipeRench:0.18微米技术中的虚拟化的可编程数据路径)”(Proceedings of the IEEE CustomIntegrated Circuits Conference(CICC),2002),其全文在此引用以作参考;Schmit的“PipeRench:a reconfigurable,architecturaland compiler(PipeRench:可重新配置的体系结构和编译器)”(IEEEComputer,第70-76页(2000年4月)),在此引用其全文以作参考;Schimit的“Incremental Reconfiguration for PipelinedApplications(用于流水线式应用的递增重新配置)”(Proceedings ofthe IEEE on FPGAs for Custom Computing Machines,第47-55页,1997年),其全文在此引用以作参考;以及Schmit等人的“PipeRench:A Coprocessor for Streaming Multimedia Acceleration(PipeRench:用于流式多媒体加速的协同处理器)”(InternationalSymposium on Computer Architecture,第38-49页,1999年)在此引用其全文以作参考。

本发明的一方面是在条带的编码中(例如在配置字中)包括某些附加的信息,以表明从寄存器文件的读取是否是在应用中对该数据值的最后一次读取。该“最后一次读取”信息可以由生成虚拟条带信息的编译器或物理设计工具生成,或者这可以由分析一组虚拟条带的单独程序完成,以便确定最后一次读取是什么时候。应用中的第一个和最后一个条带存在特殊情况。在虚拟应用中的最后一个条带中,没有后续的条带。因此,在寄存器文件中没有对值的其它读取。在第一虚拟条带中,当前在物理条带内的寄存器文件中的位于第一虚拟条带之前的值都将不被使用。对于应用中的第一个和最后一个条带之外的条带,可以以多个方式使用关于最后一次需要读取寄存器中的值的信息(有时称作最后一次读取信息),以便减小功率消耗。

图5例示了通过在最终读取之后掩蔽所述值,使用最后一次读取信息来减小功率消耗的一个实施例。在图5中,为简明起见,有四个分别具有一个寄存器42’、44’、46’、48’的寄存器文件42、44、46、48。读者将理解的是,实际上,每个寄存器文件将具有多个寄存器,例如图3中所示的那样。此外,读者将理解的是,每个寄存器可以储存超过一个比特位。在先前公开中所描述的实际的PipeRench实现方式中,每个寄存器文件中的每个寄存器储存8个比特位。在图5的实施例中,最后一次读取信息被用来将所述结构中的后续条带的值固定到一个常数值。在图5的实施例中,这是利用位于寄存器文件42之前(或其中)的与门52、位于寄存器文件44之前(或其中)的与门54、位于寄存器文件46之前(或其中)的与门56以及位于寄存器文件48之前(或其中)的与门58实现的。假设从寄存器44’读取的值是最后一次需要读取值,则在与门56的其中一个输入端上输入零,从而将与门56的输出端处的值(进而将后续传递寄存器文件中的值)强制为零。在终止由寄存器44’产生的信号的传播过程中,输入到其它与门52、54和58的输入端上的值无关紧要。可以替代与门的其它门包括或门、与非门。可以使用呈现为单调函数的任何类型的门(即基于一个输入处的控制值“强制”输出的门)。

应该注意,由寄存器44’输出的值被终止,即被阻止传播,这是通过由与门56将该值强制为零来实现。在寄存器中,常数值中的钟控比起变化值中的钟控消耗较少的功率。因此,将该值强制为零导致功率节省。通过响应于最后一次读取的寄存器而对于适当的多路复用器掩蔽多路复用器读取的比特,可以达到类似的结果,从而使得当不再需要由寄存器输出的值时就不再读取该值。

在图6中例示了使用最后一次读取信息来停止信号传播和节省功率的另一种方法。除了与门52、54、56、58被定位成接收时钟信号60之外,图6的电路类似于图5的电路。由与门52、54、56、58输出的时钟信号分别被输入到寄存器42’、44’、46’、48’。可以使用最后一次读取信息来减少功率的另一种方式是停止寄存器的钟控。在图6中,这是通过掩蔽(阻塞)去往不被使用的寄存器42’、46’、48’的时钟信号60执行的,而所述掩蔽是通过将零分别输入到与门52、56、58的输入端。通过将一输入到与门54的一个输入端,只有一个使用中的寄存器44’被实际上钟控,这节省了相当多的时钟分配功率以及在寄存器本身中耗散的功率。输入到与门52、54、56、58的该组值(例如0100)可以被称作钟控掩码。

图7例示了图6中所示电路的一个略为更复杂的电路的实施例,其中,不是提供多个门并向门提供钟控掩码,而是将信息提供到多个掩蔽单元62、64、66、68,所述掩蔽单元分别局部地确定是否应钟控寄存器文件42、44、46、48内的寄存器。图7的设计需要附加的掩蔽单元62、64、66、68的电路以及每掩蔽单元两个与门,以便对于每个条带(寄存器文件)计算时钟掩码变量的值。基于在每个寄存器文件内的每个寄存器中“最近”发生了什么来确定时钟掩码比特。从各输入“读地址0”、“读地址1”、“写地址”、“最后一次读取0”、“最后一次读取1”及“最后一个虚拟”以及关于前一掩蔽单元的状态的信息来确定最近发生了什么。如果该寄存器已经被“最后一次读取”,则掩蔽掉时钟。如果在已被“最后一次读取”之后寄存器近来又被写入,则时钟被使能。这可以利用接收上述输入的小的有限状态机来实现。

在图8所示的这个状态机中,如果寄存器文件中的寄存器不在最后一个虚拟条带中并且在该条带中被写入(如写地址所示)或者在前一条带中被钟控并且不是最后一次读取(如读地址和相应于该端口的最后一次读取比特所示),则该寄存器文件中的寄存器将被钟控。

图9例示了被修改成提供局部掩蔽单元的图6的电路。

前面的实施例使用完全相同的信息(即寄存器中的值是否被最后一次读取),或者通过将该值强制为常数(例如零)或者通过不对寄存器进行钟控,来确定不应该允许传播该值以便减少功率。当传递寄存器文件包括超过一个寄存器时,读端口地址的组合(其规定访问哪个寄存器)和表示“最后一次读取”的比特可以被组合来确定哪个值在应用中被最后一次读取。有编码该信息的其它方式,但是当前它们似乎效率较低。例如,有可能使得每个寄存器文件中的每个寄存器具有一个显式的“使用中”比特,这样就没有必要将该信息与读端口地址相组合。因此,本发明就针对使用任何“寄存器使用”信息以用于功率节省。

此外,关于条带是第一虚拟条带还是最后一个虚拟条带的信息也可以由掩蔽单元使用来节省功率。在第一虚拟条带处,应用(application)知道来自先前条带的任何数据对于该应用来说都是没有意义的。所述假数据可以是来自在结构中的该条带上执行的之前计算的结果。因此,对于从包含第一虚拟条带的物理条带之前的物理条带到达的任何数据来讲,被通知条带是第一虚拟条带的掩蔽单元可以掩蔽时钟或者选通数据。

图10示出了一个复杂的寄存器文件,其具有四个寄存器、两个读端口、一个写端口以及一组四个门,所述门可以使得从已被最后一次读取的寄存器输出的值成为常数。图11示出了一个具有与图10相同参数的寄存器文件,但是该寄存器文件具有将由掩蔽单元生成的单独的时钟。如果图11的寄存器文件被简化为包含两个寄存器,则该寄存器文件可用在图7中以替换44。

最后,为了处理第一个和最后一个虚拟条带的特殊情况,一个寄存器文件应该掩蔽未使用的寄存器文件项(例如见图10)或者例如通过为每个寄存器提供单独的时钟信号来选通它们的时钟(例如见图11)。

虽然已经结合了本发明的优选实施例描述了本发明,但是本领域的普通技术人员将认识到,许多修改和变化是有可能。本发明只希望由所附权利要求书限定,而不是由前面的描述来限定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号