CN113168205B - 用于低功率设计的用于基于事务的传输时钟门控的装置 - Google Patents
用于低功率设计的用于基于事务的传输时钟门控的装置 Download PDFInfo
- Publication number
- CN113168205B CN113168205B CN201980066424.9A CN201980066424A CN113168205B CN 113168205 B CN113168205 B CN 113168205B CN 201980066424 A CN201980066424 A CN 201980066424A CN 113168205 B CN113168205 B CN 113168205B
- Authority
- CN
- China
- Prior art keywords
- clock
- ccb
- stages
- pulse
- rising edge
- 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
Links
- 238000013461 design Methods 0.000 title abstract description 44
- 230000000630 rising effect Effects 0.000 claims description 80
- 230000007704 transition Effects 0.000 claims description 28
- 230000001419 dependent effect Effects 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 abstract description 11
- 238000013459 approach Methods 0.000 abstract description 3
- 238000000034 method Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/13—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
- H03K5/135—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of time reference signals, e.g. clock signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/04—Clock gating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
Abstract
实施例采用基于事务的设计方法在时钟脉冲被请求时提供计时。事务模块在其请求时钟脉冲时接收时钟,并且一次对逻辑流水线的一个级计时。这种方法减少了传统同步逻辑设计所消耗的动态功率中事务模块的动态功耗。
Description
相关申请交叉引用
本申请要求享有2018年10月15日提交的题为“用于低功率设计的用于基于事务的传输时钟门控的方法和装置(Method and Apparatus for Transaction basedPropagated Clock-Gating for Low Power Design)”的美国专利申请序列号16/160,075的优先权的权益,其内容通过引用合并于此。
技术领域
本发明涉及数字逻辑设计领域,具体地涉及降低动态功率的数字逻辑设计。
背景技术
集成电路(IC)设计工具是为同步设计而设计的,因此,异步设计在使用同步构造的IC设计工具中必须被约束。因此,使用传统设计方法的异步设计周期通常比同步设计周期长得多。
数字逻辑设计由同步计时的多个流水线级组成。许多数字逻辑设计仅需要对一小部分流水线级计时,作为这些级处理信息中的逻辑。然而,使用当前设计工具的当前设计方法所产生的设计对逻辑设计中多于实际需求的流水线级(例如触发器flip-flop)计时。因此,需要对现有技术水平进行改进的解决方案。
此背景信息旨在提供与本发明可能相关的信息。不必意图也不应解释为承认任何前述信息构成了相对于本发明的现有技术。
发明内容
本公开的一方面提供了时钟控制块(CCB)。该CCB包括系统时钟,用于接收时钟请求的输入,以及多个级。该多个级每个响应于时钟请求的接收和系统时钟而输出单个时钟脉冲。在一些实施例中,时钟请求包括跳变。在一些实施例中,多个级中的每一个输出的单个时钟脉冲具有取决于系统时钟的周期和时钟请求的跳变的时钟跳变。在一些实施例中,时钟请求的跳变包括上升沿、下降沿、由下降沿跟随的上升沿,或由上升沿跟随的下降沿。在一些实施例中,CCB的输入用于接收时钟请求序列的形式的时钟请求,并且多个级中的每一个输出单个时钟脉冲的输出序列,该输出系列的定时响应于系统时钟和时钟请求序列的接收。在一些实施例中,系统时钟生成具有第一时钟周期的系统时钟信号,该第一时钟周期具有第一上升沿,该第一上升沿后由第一下降沿跟随,该第一下降沿由第二上升沿跟随。该实施例中的多个级包括第一级、第二级和第三级,该第一级、第二级和第三级被配置使得第一级在第一上升沿输出单个时钟脉冲,第二级在第一下降沿输出单个时钟脉冲,以及第三级在第二上升沿输出单个时钟脉冲。在一些实施例中,多个级中的每一个以时钟周期的倍数输出单个时钟脉冲。在一些实施例中,多个级中的连续级在系统时钟信号的连续沿处输出单个脉冲。在一些实施例中,CCB还包括用于接收第二时钟请求的第二输入,其中多个级中的至少一个级输出取决于系统时钟以及时钟请求和第二时钟请求这两者的单个时钟脉冲。在一些实施例中,系统时钟具有第一时钟周期,并且时钟请求是具有与第一时钟周期不同的第二时钟周期的时钟请求信号。在一些实施例中,多个级中的每一个输出具有取决于第一时钟周期和第二时钟周期的跳变的时钟脉冲序列。在一些实施例中,CCB的输入用于接收来自多个逻辑模块的时钟请求,并且包括向该多个逻辑模块提供来自多个级的输出的输出路径。在一些实施例中,时钟周期的倍数是半个时钟周期或一个时钟周期。在一些实施例中,时钟周期的倍数是半个时钟周期的整数倍。在一些实施例中,跳变是从无效状态到有效状态。
本公开的另一方面提供了一种电路,包括系统时钟,时钟控制块(CCB),逻辑模块(LM),用于接收指令的输入,LM用于响应于接收的指令向CCB发送时钟请求信号,并且CCB包括多个CCB级,多个CCB级中的每一个响应于时钟请求信号的接收和系统时钟而输出单个时钟脉冲。在一些实施例中,时钟请求信号包括跳变。在一些实施例中,多个CCB级中的每一个输出的单个时钟脉冲具有取决于系统时钟的周期和时钟请求的跳变的时钟跳变。在一些实施例中,时钟请求信号的跳变是上升沿、下降沿、由下降沿跟随的上升沿或由上升沿跟随的下降沿。在一些实施例中,LM包括多个LM流水线,并且LM被配置使得在每个系统时钟周期,LM流水线的一个级接收由CCB输出的时钟脉冲。在一些实施例中,CCB用于以接收时钟请求序列的形式的时钟请求信号,并且多个CCB级中的每一个输出单个时钟脉冲的输出系列,该输出系列的定时响应于系统时钟和时钟请求序列。在一些实施例中,系统时钟具有第一时钟周期,该第一时钟周期具有第一上升沿,该第一上升沿由第一下降沿跟随,该第一下降沿由第二上升沿跟随。该实施例中的多个CCB级包括第一CCB级、第二CCB级和第三CCB级,该第一CCB级、第二CCB级和第三CCB级被配置使得第一CCB级在第一上升沿输出单个时钟脉冲,第二CCB级在第一下降沿输出单个时钟脉冲,以及第三CCB级在第二上升沿输出单个时钟脉冲。在一些实施例中,多个CCB级中的每一个以时钟周期的倍数输出单个脉冲。在一些实施例中,多个CCB级中的连续CCB级在系统时钟信号的连续沿处输出单个脉冲。在一些实施例中,该电路还包括向CCB发送第二时钟请求的第二LM,并且多个CCB级中的至少一个CCB级输出取决于系统时钟以及时钟请求和第二时钟请求这两者的单个时钟脉冲。在一些实施例中,系统具有第一时钟周期,并且时钟请求信号是具有与第一时钟周期不同的第二时钟周期的时钟请求信号。在一些实施例中,多个CCB级中的每一个输出具有取决于第一时钟周期和第二时钟周期的跳变的时钟脉冲序列。在一些实施例中,CCB用于从多个LM接收时钟请求,并且还包括向多个逻辑模块提供来自多个级的输出的输出路径。在一些实施例中,跳变是从无效状态到有效状态。
附图说明
通过以下结合附图的详细描述,本发明的其他特征和优点将变得显而易见,其中:
图1为示出了CCB、逻辑模块中的流水线以及CCB与逻辑模块的流水线之间的通信的一个实施例的框图;
图2为示出了一个实施例的框图,其中,CCB在被单个事件触发时生成一些计时以及在由多个事件的组合触发时生成一些计时;
图3为示出了一个实施例的框图,其中,CCB增加所提供的时钟信号的有效沿之间的时间。CCB增加所提供的时钟信号的有效沿之间的时间,使得通过多周期计时对流水线中的一些触发器计时;
图4为示出了时钟控制块(CCB)的一个实施例的框图。
将注意的是,在所有附图中,相似的特征由相似的附图标记标识。
具体实施方式
在下面的描述中,通过示例实施例描述本发明的特征。
按需时钟生成和时钟传输是异步设计中用于减少时钟树中的单元和逻辑单元的开关功率(也称为动态功率)的两种技术。尽管这些方法可以降低集成电路(IC)的动态功率,但由于IC设计工具无法轻松适应它们,因此尚未在业界被广泛采用。在异步设计中,按需时钟生成技术通常使用自定义脉冲发生器,该脉冲发生器“按需”触发以生成一个或多个时钟脉冲。仅在需要时才触发时钟,以最大程度地降低动态功率。
结合按需时钟生成,有时会将时钟传输用作低功率设计技术。在时钟传输技术中,时钟脉冲与数据一起发送。传输时钟的主要优点之一是时钟树的长度可以随数据路径延迟而缩放。这可以导致整体上更短的时钟树,其可以具有较少的时钟树缓冲、反相器等,与非传输时钟树相比,其消耗更少的功率。
但是,众所周知,IC设计工具很难处理这些“异步”低功率技术。之所以会出现这个困难,是因为在IC设计工具中正确约束异步设计并不是一件容易的事。IC设计工具是为同步设计而设计的,因此,异步设计在使用同步构造的IC设计工具中必须被约束。因此,使用传统设计方法的异步设计周期比同步设计周期长得多。
为了减少使用IC设计工具的异步设计的设计周期时间,实施例利用时钟门控使能信号,该时钟门控使能信号可以作为至少一个时钟脉冲通过一系列菊花链式的触发器被同步地传输,而不是传输时钟本身。这种时钟门控使能信号的同步传输可以称为“按需”时钟生成。
支持按需时钟生成的实施例可以是生成“事件时钟请求”信号以请求生成时钟信号的寄存器传输级(RTL)设计。这些时钟请求可以形成时钟请求序列。因此,生成事件时钟的请求是事务性的,并用于请求CCB提供时钟信号。CCB包括系统时钟和用于接收时钟请求的输入。CCB还包括多个级,该多个级中的每一个输出取决于时钟请求和系统时钟的单个时钟脉冲。一些实施例使用事务设计,其中CCB将时钟请求信号作为至少一个时钟脉冲传输到多个流水线级。每一级接收传输时钟脉冲或时钟脉冲,以为一个或多个逻辑模块中需要计时的流水线中的触发器计时。在一些实施例中,不是所有级都需要计时,因此不需要计时的级中的触发器不被激活。CCB是同步的,因为它将时钟请求信号作为一个或多个时钟脉冲,与CCB的内部时钟同步地传输。换句话说,每个CCB流水线级都基于时钟请求和系统时钟将接收到的时钟请求传输到下一级。
图1示出了实施例100,其包括系统时钟,时钟控制块(CCB)110,指令调度逻辑模块(LM)105;用于接收指令120的输入;LM,用于响应于所接收的指令向CCB发送时钟请求信号;并且CCB包括多个CCB级,多个CCB级中的每一个输出取决于时钟请求信号和系统时钟的单个时钟脉冲。指令调度逻辑模块105被示出将新指令120接收到其先进先出(FIFO)115中。接收新的FIFO条目使得指令调度逻辑模块105的FIFO 115生成EVENT_A(FIFO非空)125,其作为时钟请求107发送到CCB 110。当在FIFO 115中接收到新的FIFO条目使时钟请求107从逻辑低跳变为逻辑高时,生成时钟请求107。从逻辑低到逻辑高的跳变被本领域技术人员称为上升沿,从逻辑高到逻辑低的跳变被本领域技术人员称为下降沿。时钟请求107可以是上升沿、下降沿、由下降沿跟随的上升沿或由上升沿跟随的下降沿。
CCB 110包括用于接收时钟请求信号107的输入1001。CCB 110的输入1001用于从多个逻辑模块接收时钟请求,并且CCB 110还具有向多个逻辑模块提供来自多个级的输出的输出路径。CCB 110的系统时钟具有第一时钟周期,并且时钟请求107是具有与第一时钟周期不同的第二时钟周期的时钟请求。CCB 110的多个输出级每个输出单个时钟脉冲,其中每个时钟脉冲的周期取决于系统时钟SYS_CLK 1040的周期和时钟请求107的跳变。该多个输出级还输出具有取决于第一时钟周期和第二时钟周期的跳变的时钟脉冲序列。在接收到时钟请求107时,CCB 110通过集成时钟门(ICG)1005在SYS_CLK 1040的下一个上升沿170上生成时钟脉冲130。指令调度逻辑模块105(LM)包括多个LM流水线,并且LM被配置使得在每个系统时钟周期LM流水线的一个级接收由CCB输出的脉冲。指令调度逻辑模块105接收时钟脉冲130作为FIFO_RD_CLK 185。在ICG 1005接收到时钟请求107之后,CCB向一个或多个逻辑模块流水线级中的触发器(FF)150提供时钟脉冲130。然后,CCB 110生成两个后续时钟脉冲135和140,它们由指令调度逻辑模块105作为INSTR_DECODE_CLK 190和INSTR_DISPATCH_CLK 195接收。当对触发器155和触发器160计时时,指令调度逻辑模块105使用INSTR_DECODE_CLK 190和INSTR_DISPATCH_CLK 195执行后续的解码和调度事务。CCB 110在相同的SYS_CLK 1040上升沿170上生成脉冲130,该上升沿使触发器1010和ICG 1005都捕获时钟请求107。通过对ICG 1015和触发器1020计时,脉冲135由CCB 110在SYS_CLK 1040的下一个上升沿175上传送,以捕获由触发器1010在SYS_CLK 1040的前一个上升沿170捕获的时钟请求107。脉冲140由CCB 110在SYS_CLK1040的下一个上升沿180上传送,该上升沿对ICG 1025和触发器1030计时,以捕获由触发器1010在SYS_CLK1040上升沿170上的和由触发器1020在SYS_CLK1040上升沿175上捕获的时钟请求107。SYS_CLK1040的上升沿180对触发器1030计时,以生成result_valid 1035。因此,指令调度逻辑模块105基于单个事件执行三个单独的事务。每个事务都有其自己的时钟脉冲,该时钟脉冲在必要时有效。FIFO_RD_CLK185对触发器150计时以从FIFO 115捕获指令120,然后INSTR_DECODE_CLK 190对触发器155计时以捕获被组合逻辑117处理后的指令120。然后,INSTR_DISPATCH_CLK 195对触发器160计时以捕获下一个组合逻辑处理级197的输出。基于事务的设计方法和使用CCB 110生成时钟确保在需要时时钟有效。此外,随着数据传输通过事务的后续级,先前的事务级时钟无效。因此,所述实施例使得逻辑、顺序元件以及时钟树的动态开关功率最小。
图2示出了当多个时钟请求由CCB接收时生成其结果的实施例。此实施例中的CCB具有用于接收第二时钟请求的第二输入,并生成取决于系统时钟、时钟请求和第二时钟请求的时钟脉冲。在实施例200中,EVENT_A215是对输入数据DATA_A220执行的请求,并且由CCB 205作为时钟请求290接收。EVENT_B 245是第二个时钟请求,由CCB 205作为时钟请求295接收。通过CCB 205的输入接收时钟请求290以触发时钟脉冲1170(由ICG 1105生成)、1175(由ICG 1115生成)和1180(由ICG 1125生成)的生成。时钟请求290和295的接收触发时钟脉冲1185的生成。逻辑模块210接收时钟脉冲1170作为EVENT_A_CLK_STG1 230、时钟脉冲1175作为EVENT_A_CLK_STG2 235、时钟脉冲1180作为EVENT_A_CLK_STGx 240、时钟脉冲1185作为EVENT_A_CLK_STGx_and_EVENT_B_CLK 250。逻辑模块210使用EVENT_A_CLK_STG1230对触发器260计时、使用EVENT_A_CLK_STG2 235对触发器270计时、使用EVENT_A_CLK_STGx 240对触发器280计时以及使用EVENT_A_CLK_STGx_and_EVENT_B_CLK 250对触发器285计时。需要对触发器260、270、280和285计时以生成结果255。当传输的时钟请求290为逻辑高并且时钟请求295为逻辑高时,CCB 205生成时钟脉冲1185,对时钟触发器285计时。本领域技术人员将认识到,当“与”门1150的输出为逻辑高时,ICG 1135生成时钟脉冲1185,并且触发器1140生成result_valid1145;以及当时钟请求290(通过触发器1110、1120和1130传输)和时钟请求295都为逻辑高时,“与”门1150的输出为逻辑高。重要的是要注意,与实施例100中的情况一样,一旦结果变得可用,计算单元逻辑模块210所使用的某些时钟便无效,并且计算单元逻辑模块210等待下一个事件以触发后续的事务。本领域技术人员将认识到,可以在基于事务的设计中采用事件的各种组合和排列,以最小化设计的时钟切换和开关功率。
在另一个实施例中,增加了时钟信号提供的有效沿之间的时间,因此,为逻辑模块的流水线计时的时钟脉冲仅由CCB按照流水线的多周期路径的需求生成。有效沿之间的时间称为时钟周期,当CCB配置为在CCB时钟的上升沿或下降沿传输接收到的使能时,可以以一个CCB时钟周期的倍数增加。如果CCB用于将接收到的使能传输到在CCB时钟的上升沿启动数据的触发器,以及在CCB时钟的下降沿捕获数据的触发器,则间隙可以是CCB时钟处于高时钟电平的时间。如果CCB用于将接收到的使能传输到在CCB时钟的下降沿启动数据的触发器,以及在CCB时钟的上升沿捕获数据的触发器,则间隙也可以是CCB时钟处于低时钟电平的时间。如果CCB由时钟的上升沿触发,则有效沿可以是上升沿,或者如果CCB用于在CCB时钟的下降沿传输接收到的使能信号,则有效沿可以是下降沿,或者如果CCB用于可以在CCB时钟的上升沿和下降沿传输接收到的使能信号,则有效沿可以是上升沿和下降沿。本领域技术人员将认识到,配置CCB以在sys_clk的上升沿和下降沿这两者上生成脉冲,使CCB支持半周期计时。例如,在sys_clk的上升沿生成一个脉冲、在sys_clk的下降沿生成一个脉冲并在sys_clk的下一个上升沿生成一个脉冲,以sys_clk时钟周期的一半对逻辑模块的流水线触发器进行计时。CCB可以配置为在其多个级输出的时钟脉冲之间插入多个系统时钟周期形式的延迟。这些多个系统时钟周期是半个时钟周期或一个时钟周期。
图3示出了实施例300,其提供用于对逻辑模块的流水线计时的时钟中的间隙。指令315由逻辑模块310的FIFO 380接收,然后EVENT_A(FIFO非空)385由逻辑模块310生成,并作为时钟请求385发送到CCB 305的输入(未示出)。CCB 305具有输出单个时钟脉冲的序列的多个级。系统时钟具有第一时钟周期,该第一时钟周期具有第一上升沿,该第一上升沿由第一下降沿跟随,该第一下降沿由第二上升沿跟随。该多个级包括第一级、第二级和第三级,第一级、第二级和第三级被配置使得第一级在系统时钟的第一上升沿输出单个时钟脉冲,第二级在系统时钟的第一下降沿输出单个时钟脉冲,以及第三级在系统时钟的第二上升沿输出单个时钟脉冲。多个级以系统时钟周期的倍数输出单个时钟脉冲。在一些实施例中,多个级中的连续级在系统时钟的连续沿处输出单个脉冲。时钟请求385使能ICG 1250和触发器1255。SYS_CLK1245的上升沿320对ICG 1250和触发器1255计时,以生成时钟脉冲1220,然后由逻辑模块310捕获为FIFO_RD_CLK390,并且还使能触发器1265和ICG 1260。SYS_CLK1245的上升沿325对ICG 1260和触发器1265计时,以生成时钟脉冲1225,然后由逻辑模块310捕获为INSTR_DECODE_CLK395,并使能触发器1275和ICG 1270。SYS_CLK 1245的上升沿330对ICG 1270和触发器1275计时,以生成时钟脉冲1230,然后由逻辑模块310捕获为INSTR_DISPATCH_CLK 1205,并使能触发器1285和ICG 1280。SYS_CLK 1245的上升沿335对ICG 1280和触发器1285计时,以生成时钟脉冲1235,然后由逻辑模块310捕获为INSTR_DISP_CLK_2 1210,并使能触发器1295和ICG 1290。SYS_CLK 1245的上升沿340对ICG 1290和触发器1295计时,以生成时钟脉冲1240,然后由逻辑模块310捕获为INSTR_DISP_CLK_31215。图3示出了提供多周期路径的实施例。逻辑模块310的触发器345和360具有两个时钟周期的多周期路径,因此,CCB 305在对触发器360计时的时钟中创建间隙。CCB 305在SYS_CLK 1245的上升沿320和330而不是在SYS_CLK1245的上升沿325上对触发器345和360计时。逻辑模块310的触发器360和375也是两个时钟周期的多周期路径。因此,CCB 305在对触发器360和375计时的时钟中创建间隙。因此,所述流水线级中的触发器345、360、375具有两个时钟周期的多周期路径,并且并非在每个SYS_CLK 1245时钟周期中都被计时。通过仅在需要时而不是在每个SYS_CLK 1245时钟周期对该流水线中的触发器计时,这种间隙插入减少了逻辑模块310消耗的动态功率。当触发器345由CCB 305创建的时钟脉冲1220计时时,指令315在SYS_CLK 1245的上升沿320上从逻辑模块310的FIFO 380读出。然后,由触发器345捕获的指令315版本由组合逻辑350处理,并由触发器360在由CCB 305创建的时钟脉冲1230计时时捕获。如前所述,CCB 305在SYS_CLK 1245的上升沿340处的INSTR_DISP_CLK_3 1215上生成时钟脉冲1240,使得逻辑模块310的触发器375捕获触发器360的输出。位于SYS_CLK1245上升沿320和330之间的SYS_CLK 1245上升沿325由CCB 305使用,以在INSTR_DECODE_CLK 395上生成时钟脉冲1225。INSTR_DECODE_CLK 395上的时钟脉冲1225对逻辑模块310的触发器355计时,以捕获来自逻辑模块310的FIFO 380的指令315。SYS_CLK 1245的上升沿335出现在对触发器360计时的SYS_CLK 1245的上升沿330与对触发器375计时的SYS_CLK 1245的上升沿340之间,使得逻辑模块310的触发器370捕获被组合逻辑365处理后的触发器355的输出。因此,逻辑模块310的触发器355和370也具有两个时钟周期的多周期路径,并且CCB 305在对触发器355和370计时的时钟中创建间隙。该间隙也减少了逻辑模块310所消耗的动态功率。
图4示出了根据一个实施例的CCB 400。CCB 400使用位于时钟树根的n级时钟门控单元(ICG)405、410、415生成“事件时钟”420、425、430。因此,当时钟脉冲被请求时,由CCB400在event_a_clk_stg1 420、event_a_clk_stg2 425和event_a_clk_stgx 430上生成时钟脉冲,并与其内部时钟同步。该时钟可以是宽度等于CCB的一个或多个时钟周期的脉冲,也可以是周期等于由CCB接收的使能信号的周期的时钟。而且,由CCB接收到的使能信号的传输是由CCB时钟的上升沿、CCB时钟的下降沿或CCB时钟的上升沿和下降沿触发的。这种按需时钟生成的动态功耗要低于传统同步设计所消耗的动态功率。时钟请求的示例是在event_a_clk_req 435被声明为高逻辑电平时,使能ICG 405。当ICG 405被使能时,clk_in445的第一上升沿4550使得event_a_clk_stg1 420设置为逻辑高。clk_in 445的同一上升沿4550对触发器440计时,捕获时钟请求event_a_clk_req 435,并使能ICG 410。Event_a_clk_stg1420保持逻辑高,直到clk_in 445的上升沿为对ICG 405计时,捕获处于逻辑低的event_a_clk_req 435。clk_in 445的第二上升沿4600对ICG 410计时,并使event_a_clk_stg2425设置为逻辑高。再次,event_a_clk_stg2 425保持逻辑高,直到clk_in 445的上升沿对ICG 410计时,捕获由触发器440输出的处于逻辑低的event_a_clk_req 435。clk_in445的第n-1上升沿4650对触发器450计时,捕获前一级触发器(未示出)的输出,使能ICG415。前一级触发器的输出是时钟请求event_a_clk_req 435的捕获版本。clk_in 445的第n上升沿4700对ICG 415计时,并使event_a_clk_stgx 430设置为逻辑高。如前所述,event_a_clk_stgx 430保持逻辑高,直到clk_in 445的上升沿对ICG 415计时,捕获处于逻辑低的event_a_clk_req 435。event_a_stg2_and_event_b_clk 470的逻辑状态由ICG 465控制。当由触发器440捕获的event_a_clk_req 435由“与”门460与event_b_clk_req 455进行“与”运算,并且event_a_clk_req435的捕获版本和event__b_clk_req 455均为逻辑高时,ICG 465被使能并且Event_a_stg2_and_event_b_clk 470在每个时钟上升沿被设置为逻辑高。当触发器440捕获event_a_clk_req 435为逻辑低,或event_b_clk_req 455为逻辑低,或者两者均为逻辑低时,event_a_stg2_and_event_b_clk 470被设置为逻辑低。Event_b_or_event_c_clk 490的逻辑状态由ICG 485控制。当由“或”门480与event_n_clk_req 475进行“或”运算的event_b_clk_req455为逻辑高时,ICG 485被使能。因此,当event_n_clk_req 475、event_b_clk_req 455或两者均为逻辑高时,ICG 485被使能。当event_b_clk_req455为逻辑高,或event_n_clk_req 475为逻辑高,或两者均为逻辑高时,event_b_or_event_c_clk 490在对ICG 485计时的时钟的上升沿上被设置为逻辑高。
一些实施例还使用被划分为具有n个流水线级的事务块的逻辑块。当事务块检测到需要事务被执行的事件时,每个事务块生成一个“事件时钟请求”。CCB生成单个事件时钟脉冲,随后跟着后续的n级时钟信号,在被提供使能信号的一个或多个逻辑模块中,在每个时钟周期,仅提供给逻辑模块流水线级中的一个触发器。生成时钟脉冲的CCB中的级数可以等于或大于逻辑模块中的流水线级数。
尽管已经参考本发明的特定特征和实施例描述了本发明,但是显然可以在不脱离本发明的情况下对其进行各种修改和组合。因此,说明书和附图应仅被视为由所附权利要求书限定的本发明的说明,并且可以预期涵盖落入本发明范围内的任何和所有修改、变化、组合或等同物。
Claims (24)
1.时钟控制块CCB,包括:
系统时钟;
输入,用于接收时钟请求;以及
多个级,所述多个级中的每一个响应于接收所述时钟请求和所述系统时钟而输出单个时钟脉冲;以及
用于接收第二时钟请求的第二输入,并且其中,所述多个级中的至少一个级输出取决于所述系统时钟以及所述时钟请求和所述第二时钟请求的所述单个时钟脉冲。
2.根据权利要求1所述的CCB,其中,所述时钟请求包括跳变。
3.根据权利要求2所述的CCB,其中,所述多个级中的每一个输出的所述单个时钟脉冲具有取决于所述系统时钟的周期和所述时钟请求的跳变的时钟跳变。
4.根据权利要求3所述的CCB,其中,所述时钟请求的跳变是上升沿、下降沿、由下降沿跟随的上升沿以及由上升沿跟随的下降沿中的一种。
5.根据权利要求1至4中任一项所述的CCB,其中:
所述输入,用于接收时钟请求序列的形式的所述时钟请求;
所述多个级中的每一个输出单个时钟脉冲的输出序列,所述输出序列的定时取决于所述系统时钟和所述时钟请求序列。
6.根据权利要求1至4中任一项所述的CCB,其中,所述系统时钟具有第一时钟周期,所述第一时钟周期具有第一上升沿,所述第一上升沿由第一下降沿跟随,所述第一下降沿由第二上升沿跟随,并且所述多个级包括第一级、第二级和第三级,所述第一级、第二级和第三级被配置使得:
所述第一级在所述第一上升沿输出单个时钟脉冲;
所述第二级在所述第一下降沿输出单个时钟脉冲;以及
所述第三级在所述第二上升沿输出单个时钟脉冲。
7.根据权利要求3或4所述的CCB,其中,所述多个级中的每一个以时钟周期的倍数输出所述单个时钟脉冲。
8.根据权利要求3或4所述的CCB,其中,所述多个级中的连续级在所述系统时钟信号的连续沿处输出单个脉冲。
9.根据权利要求1至4中任一项所述的CCB,其中:
所述系统时钟,生成具有第一时钟周期的系统时钟信号;以及
所述时钟请求是具有与所述第一时钟周期不同的第二时钟周期的时钟请求信号。
10.根据权利要求9所述的CCB,其中,所述多个级中的每一个输出具有取决于所述第一时钟周期和所述第二时钟周期的跳变的时钟脉冲序列。
11.根据权利要求1至4中的任一项所述的CCB,其中,所述输入用于从多个逻辑模块接收时钟请求,并且还包括向所述多个逻辑模块提供来自所述多个级的输出的输出路径。
12.根据权利要求2至4中任一项所述的CCB,其中,所述跳变是从无效状态到有效状态。
13.一种电路,包括:
系统时钟;
时钟控制块CCB;
逻辑模块LM;
输入,用于接收指令;
第二LM;
所述LM用于响应于接收的所述指令,向所述CCB发送时钟请求信号;以及
所述CCB包括多个CCB级,所述多个CCB级中的每一个响应于接收所述时钟请求信号和所述系统时钟而输出单个时钟脉冲;以及
所述第二LM用于向所述CCB发送第二时钟请求,并且其中,所述多个CCB级中的至少一个CCB级响应于所述系统时钟以及所述时钟请求和所述第二时钟请求这两者的接收而输出单个时钟脉冲。
14.根据权利要求13所述的电路,其中,所述时钟请求信号包括跳变。
15.根据权利要求14所述的电路,其中,所述多个CCB级中的每一个输出的单个时钟脉冲具有取决于所述系统时钟的周期和所述时钟请求信号的跳变的时钟跳变。
16.根据权利要求15所述的电路,其中,所述时钟请求信号的跳变是上升沿、下降沿、由下降沿跟随的上升沿以及由上升沿跟随的下降沿中的一种。
17.根据权利要求13至16中任一项所述的电路,其中,所述LM包括多个LM流水线,并且所述LM被配置使得在每个系统时钟周期,所述LM流水线的一个级接收由所述CCB输出的时钟脉冲。
18.根据权利要求13至16中任一项所述的电路,其中:
所述CCB用于接收时钟请求序列的形式的所述时钟请求信号;
所述多个CCB级中的每一个均输出单个时钟脉冲的输出序列,并且所述输出序列的定时响应于所述系统时钟和所述时钟请求序列的接收。
19.根据权利要求13至16中任一项所述的电路,其中,所述系统时钟具有第一时钟周期,所述第一时钟周期具有第一上升沿,所述第一上升沿由第一下降沿跟随,所述第一下降沿由第二上升沿跟随,并且所述多个CCB级包括第一CCB级、第二CCB级和第三CCB级,所述第一CCB级、第二CCB级和第三CCB级被配置使得:
所述第一CCB级在所述第一上升沿输出单个时钟脉冲;
所述第二CCB级在所述第一下降沿输出单个时钟脉冲;以及
所述第三CCB级在所述第二上升沿输出单个时钟脉冲。
20.根据权利要求13至16中任一项所述的电路,其中,所述多个CCB级中的每一个以所述系统时钟周期的倍数输出单个脉冲。
21.根据权利要求13至16中任一项所述的电路,其中,所述多个CCB级中的连续CCB级在所述系统时钟信号的连续沿处输出单个脉冲。
22.根据权利要求13至16中任一项所述的电路,其中:
所述系统时钟具有第一时钟周期;以及
所述时钟请求信号是具有与所述第一时钟周期不同的第二时钟周期的时钟请求信号。
23.根据权利要求22所述的电路,其中,所述多个CCB级中的每一个输出具有取决于所述第一时钟周期和所述第二时钟周期的跳变的时钟脉冲序列。
24.根据权利要求13至16中任一项所述的电路,其中,所述CCB用于接收来自多个LM的时钟请求,并且还包括将来自所述多个CCB级的输出提供给所述多个逻辑模块的输出路径。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/160,075 US10761560B2 (en) | 2018-10-15 | 2018-10-15 | Method and apparatus for transaction based propagated clock-gating for low power design |
US16/160,075 | 2018-10-15 | ||
PCT/CN2019/111189 WO2020078345A1 (en) | 2018-10-15 | 2019-10-15 | Method and apparatus for transaction based propagated clock-gating for low power design |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113168205A CN113168205A (zh) | 2021-07-23 |
CN113168205B true CN113168205B (zh) | 2023-11-28 |
Family
ID=70160226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980066424.9A Active CN113168205B (zh) | 2018-10-15 | 2019-10-15 | 用于低功率设计的用于基于事务的传输时钟门控的装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10761560B2 (zh) |
CN (1) | CN113168205B (zh) |
WO (1) | WO2020078345A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996030819A1 (en) * | 1995-03-31 | 1996-10-03 | Intel Corporation | Method and apparatus for selecting an optimal system bus clock in a highly scalable computer system |
US5983339A (en) * | 1995-08-21 | 1999-11-09 | International Business Machines Corporation | Power down system and method for pipelined logic functions |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8050148B2 (en) * | 2008-07-03 | 2011-11-01 | Texas Instruments Incorporated | Flash time stamp apparatus |
US8130019B1 (en) | 2008-10-15 | 2012-03-06 | Octasic Inc. | Clock signal propagation method for integrated circuits (ICs) and integrated circuit making use of same |
KR102384347B1 (ko) | 2015-05-26 | 2022-04-07 | 삼성전자주식회사 | 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법 |
-
2018
- 2018-10-15 US US16/160,075 patent/US10761560B2/en active Active
-
2019
- 2019-10-15 WO PCT/CN2019/111189 patent/WO2020078345A1/en active Application Filing
- 2019-10-15 CN CN201980066424.9A patent/CN113168205B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996030819A1 (en) * | 1995-03-31 | 1996-10-03 | Intel Corporation | Method and apparatus for selecting an optimal system bus clock in a highly scalable computer system |
US5983339A (en) * | 1995-08-21 | 1999-11-09 | International Business Machines Corporation | Power down system and method for pipelined logic functions |
Also Published As
Publication number | Publication date |
---|---|
US10761560B2 (en) | 2020-09-01 |
US20200117231A1 (en) | 2020-04-16 |
CN113168205A (zh) | 2021-07-23 |
WO2020078345A1 (en) | 2020-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sjogren et al. | Interfacing synchronous and asynchronous modules within a high-speed pipeline | |
US5920899A (en) | Asynchronous pipeline whose stages generate output request before latching data | |
EP0666541B1 (en) | Apparatus and method for operating chips synchronously at speeds exceeding the bus speed | |
US6308229B1 (en) | System for facilitating interfacing between multiple non-synchronous systems utilizing an asynchronous FIFO that uses asynchronous logic | |
KR101089153B1 (ko) | 상이한 클록 도메인 간에서의 데이터 신호 전송 방법 및 집적 회로 | |
US7180332B2 (en) | Clock synchronization circuit | |
EP0645717A1 (en) | System for data synchronization and method therefor | |
EP2515197A1 (en) | Clock gating circuit using a Muller C- element | |
US7073087B2 (en) | Transition signal control unit and DMA controller and transition signal control processor using transition signal control unit | |
US6425088B1 (en) | Method of the apparatus for transferring data between circuits | |
CN108694146B (zh) | 一种异步/同步接口电路 | |
US20100315134A1 (en) | Systems and methods for multi-lane communication busses | |
US6792554B2 (en) | Method and system for synchronously transferring data between clock domains sourced by the same clock | |
US20080307133A1 (en) | Method for Synchronizing a Transmission of Information and a Device Having Synchronizing Capabilities | |
CN113168205B (zh) | 用于低功率设计的用于基于事务的传输时钟门控的装置 | |
US6640277B1 (en) | Input staging logic for latching source synchronous data | |
KR102460281B1 (ko) | 다중 입력 파이프 라인을 가진 데이터 버스 | |
WO2003038687A2 (en) | Optimization of the design of a synchronous digital circuit | |
US7123674B2 (en) | Reducing latency and power in asynchronous data transfers | |
US8254187B2 (en) | Data transfer apparatus, and method, and semiconductor circuit | |
US6430697B1 (en) | Method and apparatus for reducing data return latency of a source synchronous data bus by detecting a late strobe and enabling a bypass path | |
Liljeberg et al. | Asynchronous interface for locally clocked modules in ULSI systems | |
US9658857B2 (en) | Method and apparatus for processor to operate at its natural clock frequency in the system | |
JP2004326222A (ja) | データ処理システム | |
EP1308862A1 (en) | Optimization of the design of a synchronous digital circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |