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

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

Info

Publication number
CN100409179C
CN100409179C CNB038242761A CN03824276A CN100409179C CN 100409179 C CN100409179 C CN 100409179C CN B038242761 A CNB038242761 A CN B038242761A CN 03824276 A CN03824276 A CN 03824276A CN 100409179 C CN100409179 C CN 100409179C
Authority
CN
China
Prior art keywords
register file
transmission register
last time
bit
read
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.)
Expired - Fee Related
Application number
CNB038242761A
Other languages
English (en)
Other versions
CN1688968A (zh
Inventor
H·施米特
B·莱文
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.)
Carnegie Mellon University
Original Assignee
Carnegie Mellon University
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 Carnegie Mellon University filed Critical Carnegie Mellon University
Publication of CN1688968A publication Critical patent/CN1688968A/zh
Application granted granted Critical
Publication of CN100409179C publication Critical patent/CN100409179C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • 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/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

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

Description

具有终止信号传播的机制的可编程流水线结构
关于联邦资助的研究的声明
本发明是部分通过由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)”(出版于ACM 6th International Symposium on FPGAs,1998年2月)中提供了对配置管理和数据管理的详细解释,这里引用其全文以作参考。想要知道关于将配置字写入物理条带的任务的更多细节的读者可以参考上述文章。关于可重新配置的结构的构造和操作的附加的细节可以在以下文章中找到:Schmit等人的“PipeRench:a virtualized programmable datapath in 0.18Micro 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年),其全文在此引用以作参考;以及Schmi t等人的“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)。
虽然已经结合了本发明的优选实施例描述了本发明,但是本领域的普通技术人员将认识到,许多修改和变化是有可能。本发明只希望由所附权利要求书限定,而不是由前面的描述来限定。

Claims (13)

1. 一种在包括多个寄存器的装置中实践的方法,所述多个寄存器被组织成多个可配置的传递寄存器文件,该方法包括:
在每个周期上向每个传递寄存器文件提供配置信息,所述传递寄存器文件互连成一个环,所述配置信息包括表示最后一次需要从所述传递寄存器文件读取的数据的至少一个比特位;以及
通过将所述最后一次需要读取的数据的至少一个比特位设置成常数值,阻止在发生最后一次读取的传递寄存器文件之后的至少一个传递寄存器文件中数据传播,从而减少功率消耗。
2. 一种在包括多个寄存器的装置中实践的方法,所述多个寄存器被组织成多个可配置的传递寄存器文件,该方法包括:
在每个周期上向每个传递寄存器文件提供配置信息,所述传递寄存器文件互连成一个环,所述配置信息包括表示最后一次需要从所述传递寄存器文件读取的数据的至少一个比特位;以及
没有钟控至少一个后面的传递寄存器文件中至少一个寄存器,以便阻止在发生最后一次读取的传递寄存器文件之后的至少一个传递寄存器文件中数据传播,从而减少功率消耗。
3. 一种在包括多个寄存器的装置中实践的方法,所述多个寄存器被组织成多个可配置的传递寄存器文件,该方法包括:
在每个周期上向每个传递寄存器文件提供配置信息,所述传递寄存器文件互连成一个环,所述配置信息包括表示最后一次需要从所述传递寄存器文件读取的数据的至少一个比特位;以及
通过从关于该最后一次需要读取的数据的至少一个比特位中产生钟控掩码,使用所述钟控掩码来阻止在发生最后一次读取的传递寄存器文件之后的至少一个传递寄存器文件中数据传播,从而减少功率消耗。
4. 一种阻止最后一次读取的信号在装置中传播的方法,所述装置包括被组织成多个可配置传递寄存器文件的多个寄存器,所述方法包括:
在每个周期上向每个传递寄存器文件提供配置信息,所述传递寄存器文件互连成一个环,所述配置信息包括表示最后一次需要读取的传递寄存器文件中值的至少一个比特位;以及
使用关于最后一次需要读取的所述值的至少一个比特位以强制具有常数值的信号传播通过发生所述最后一次读取的所述传递寄存器文件之后的至少一个传递寄存器文件。
5. 根据权利要求4所述的方法,其中,所述使用包括将最后一次读取的信号值输入到一个接收关于最后一次读取的信息的门,并将该门的输出强制为所述常数值。
6. 一种阻止最后一次读取的信号在装置中传播的方法,所述装置包括被组织成多个可配置传递寄存器文件的多个寄存器,所述方法包括:
在每个周期上向每个传递寄存器文件提供配置信息,所述传递寄存器文件互连成一个环,所述配置信息包括表示最后一次需要读取的传递寄存器文件中值的至少一个比特位;以及
使用表示最后一次需要读取的所述值的所述至少一个比特位,以便不对发生所述最后一次读取的所述传递寄存器文件之后的传递寄存器文件进行钟控。
7. 根据权利要求6所述的方法,其中,所述使用包括掩蔽被用来钟控所述传递寄存器文件的时钟信号。
8. 根据权利要求7所述的方法,其中,所述掩蔽包括将所述至少一个比特位输入到多个接收时钟脉冲的门,并基于所述输入的比特位对所述传递寄存器文件进行钟控。
9. 根据权利要求8所述的方法,还包括局部地确定用于掩蔽时钟信号的掩蔽比特位的值,该时钟信号用来对所述传递寄存器文件进行钟控。
10. 根据权利要求9所述的方法,其中,所述局部地确定掩蔽比特位的值包括从读和写地址信息以及所述至少一个比特位中来确定掩蔽比特位的值。
11. 一种可重新配置的设备,包括:
互连形成多个传递寄存器文件的多个寄存器,所述传递寄存器文件在一个链式配置中彼此互连,所述传递寄存器文件用于接收配置信息,所述配置信息包括表示最后一次需要从传递寄存器文件中读取的数据的至少一个比特位;
多个功能单元,其中至少一个功能单元连接在每一个所述传递寄存器文件之间;以及
连接在两个相邻传递寄存器文件之间的至少一个门,用于将在所述相邻传递寄存器文件之间传播的值强制为常数,以响应于表示最后一次需要读取数据的所述至少一个比特位,阻止在发生所述最后一次读取的所述传递寄存器文件之后的至少一个传递寄存器文件中数据传播。
12. 根据权利要求11所述的设备,其中,所述至少一个门包括呈现为单调函数的门。
13. 一种可重新配置的设备,包括:
互连形成多个传递寄存器文件的多个寄存器,所述传递寄存器文件以串行方式彼此互连,所述传递寄存器文件用于接收配置信息,所述配置信息包括表示最后一次需要从传递寄存器文件中读取的数据的至少一个比特位;
多个功能单元,其中一个功能单元连接在每一个所述传递寄存器文件之间;
时钟脉冲源;以及
多个门,接收时钟脉冲和表示最后一次需要读取数据的所述至少一个比特位,用于对所述多个寄存器中的特定寄存器进行钟控,以阻止在发生所述最后一次读取的所述传递寄存器文件之后的至少一个传递寄存器文件中数据传播。
CNB038242761A 2002-08-16 2003-08-14 具有终止信号传播的机制的可编程流水线结构 Expired - Fee Related CN100409179C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/222,608 US7131017B2 (en) 2002-08-16 2002-08-16 Programmable pipeline fabric having mechanism to terminate signal propagation
US10/222,608 2002-08-16

Publications (2)

Publication Number Publication Date
CN1688968A CN1688968A (zh) 2005-10-26
CN100409179C true CN100409179C (zh) 2008-08-06

Family

ID=31715014

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038242761A Expired - Fee Related CN100409179C (zh) 2002-08-16 2003-08-14 具有终止信号传播的机制的可编程流水线结构

Country Status (6)

Country Link
US (2) US7131017B2 (zh)
EP (1) EP1535145A2 (zh)
JP (1) JP2005539292A (zh)
CN (1) CN100409179C (zh)
AU (1) AU2003265422A1 (zh)
WO (1) WO2004017222A2 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4143907B2 (ja) * 2002-09-30 2008-09-03 ソニー株式会社 情報処理装置および方法、並びにプログラム
US7395411B2 (en) * 2005-03-14 2008-07-01 Sony Computer Entertainment Inc. Methods and apparatus for improving processing performance by controlling latch points
US7398153B2 (en) * 2005-03-31 2008-07-08 Trimble Navigation Limited Portable motion-activated position reporting device
JP4621604B2 (ja) * 2006-02-20 2011-01-26 株式会社東芝 バス装置、バスシステムおよび情報転送方法
US20090055632A1 (en) * 2007-08-22 2009-02-26 Chao-Wu Chen Emulation Scheme for Programmable Pipeline Fabric
JP5231800B2 (ja) * 2007-12-26 2013-07-10 株式会社東芝 半導体集積回路装置および半導体集積回路装置のクロック制御方法
TW201037626A (en) * 2009-04-01 2010-10-16 Novatek Microelectronics Corp Method for accessing image data and related apparatus
US9697002B2 (en) 2011-10-03 2017-07-04 International Business Machines Corporation Computer instructions for activating and deactivating operands
US9286072B2 (en) 2011-10-03 2016-03-15 International Business Machines Corporation Using register last use infomation to perform decode-time computer instruction optimization
US8756591B2 (en) 2011-10-03 2014-06-17 International Business Machines Corporation Generating compiled code that indicates register liveness
US10078515B2 (en) 2011-10-03 2018-09-18 International Business Machines Corporation Tracking operand liveness information in a computer system and performing function based on the liveness information
US9690583B2 (en) 2011-10-03 2017-06-27 International Business Machines Corporation Exploiting an architected list-use operand indication in a computer system operand resource pool
US8612959B2 (en) 2011-10-03 2013-12-17 International Business Machines Corporation Linking code for an enhanced application binary interface (ABI) with decode time instruction optimization
US9329869B2 (en) 2011-10-03 2016-05-03 International Business Machines Corporation Prefix computer instruction for compatibily extending instruction functionality
US8615745B2 (en) 2011-10-03 2013-12-24 International Business Machines Corporation Compiling code for an enhanced application binary interface (ABI) with decode time instruction optimization
US9354874B2 (en) 2011-10-03 2016-05-31 International Business Machines Corporation Scalable decode-time instruction sequence optimization of dependent instructions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1132879A (zh) * 1994-12-22 1996-10-09 摩托罗拉公司 使用流水线式寄存器的数据处理系统的功率降低及其方法
US5983339A (en) * 1995-08-21 1999-11-09 International Business Machines Corporation Power down system and method for pipelined logic functions
US6247134B1 (en) * 1999-03-31 2001-06-12 Synopsys, Inc. Method and system for pipe stage gating within an operating pipelined circuit for power savings
US6393597B1 (en) * 1999-06-01 2002-05-21 Sun Microsystems, Inc. Mechanism for decoding linearly-shifted codes to facilitate correction of bit errors due to component failures

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604909A (en) * 1993-12-15 1997-02-18 Silicon Graphics Computer Systems, Inc. Apparatus for processing instructions in a computing system
US6393579B1 (en) 1999-12-21 2002-05-21 Intel Corporation Method and apparatus for saving power and improving performance in a collapsable pipeline using gated clocks
US6609209B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Method and apparatus for reducing the power consumed by a processor by gating the clock signal to pipeline stages
US6965991B1 (en) * 2000-05-12 2005-11-15 Pts Corporation Methods and apparatus for power control in a scalable array of processor elements

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1132879A (zh) * 1994-12-22 1996-10-09 摩托罗拉公司 使用流水线式寄存器的数据处理系统的功率降低及其方法
US5983339A (en) * 1995-08-21 1999-11-09 International Business Machines Corporation Power down system and method for pipelined logic functions
US6247134B1 (en) * 1999-03-31 2001-06-12 Synopsys, Inc. Method and system for pipe stage gating within an operating pipelined circuit for power savings
US6393597B1 (en) * 1999-06-01 2002-05-21 Sun Microsystems, Inc. Mechanism for decoding linearly-shifted codes to facilitate correction of bit errors due to component failures

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LIVE/DEAD TAGS ON COMPUTER REGISTERS. SCHLAEPPI H P ET AL.IBM TECHNICAL DISCLOSURE BULLETIN IBM CORP,Vol.35 No.3. 1982
LIVE/DEAD TAGS ON COMPUTER REGISTERS. SCHLAEPPI H P ET AL.IBM TECHNICAL DISCLOSURE BULLETIN IBM CORP,Vol.35 No.3. 1982 *

Also Published As

Publication number Publication date
US7131017B2 (en) 2006-10-31
WO2004017222A2 (en) 2004-02-26
EP1535145A2 (en) 2005-06-01
CN1688968A (zh) 2005-10-26
JP2005539292A (ja) 2005-12-22
US20040034804A1 (en) 2004-02-19
WO2004017222A3 (en) 2004-10-07
US20070234089A1 (en) 2007-10-04
AU2003265422A8 (en) 2004-03-03
AU2003265422A1 (en) 2004-03-03

Similar Documents

Publication Publication Date Title
CN100409179C (zh) 具有终止信号传播的机制的可编程流水线结构
EP3726389B1 (en) Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US10565134B2 (en) Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US20190018815A1 (en) Processors, methods, and systems with a configurable spatial accelerator
US20190303297A1 (en) Apparatus, methods, and systems for remote memory access in a configurable spatial accelerator
US20190205284A1 (en) Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator
US20190303263A1 (en) Apparatus, methods, and systems for integrated performance monitoring in a configurable spatial accelerator
EP3776245A1 (en) Apparatuses, methods, and systems for conditional queues in a configurable spatial accelerator
US20190102338A1 (en) Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
US20190004945A1 (en) Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
Renaudin Asynchronous circuits and systems: a promising design alternative
US20190007332A1 (en) Processors and methods with configurable network-based dataflow operator circuits
US8020168B2 (en) Dynamic virtual software pipelining on a network on chip
US8291201B2 (en) Dynamic merging of pipeline stages in an execution pipeline to reduce power consumption
US10459866B1 (en) Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator
US20180089117A1 (en) Reconfigurable fabric accessing external memory
EP3776228A1 (en) Apparatuses, methods, and systems for unstructured data flow in a configurable spatial accelerator
US10678724B1 (en) Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
WO2020005448A1 (en) Apparatuses, methods, and systems for unstructured data flow in a configurable spatial accelerator
US20220100680A1 (en) Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits
JP7183197B2 (ja) 高スループットプロセッサ
US20090222252A1 (en) Data driven logic simulation chip and toolchain
US20180060034A1 (en) Communication between dataflow processing units and memories
US20190171416A1 (en) Power control for a dataflow processor
US10659396B2 (en) Joining data within a reconfigurable fabric

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080806

Termination date: 20090914