CN112462845A - 数据传输时钟控制电路、方法和处理器 - Google Patents

数据传输时钟控制电路、方法和处理器 Download PDF

Info

Publication number
CN112462845A
CN112462845A CN202011340088.3A CN202011340088A CN112462845A CN 112462845 A CN112462845 A CN 112462845A CN 202011340088 A CN202011340088 A CN 202011340088A CN 112462845 A CN112462845 A CN 112462845A
Authority
CN
China
Prior art keywords
data
circuit
clock control
stage pipeline
control signal
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.)
Granted
Application number
CN202011340088.3A
Other languages
English (en)
Other versions
CN112462845B (zh
Inventor
王继东
李重阳
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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202011340088.3A priority Critical patent/CN112462845B/zh
Publication of CN112462845A publication Critical patent/CN112462845A/zh
Application granted granted Critical
Publication of CN112462845B publication Critical patent/CN112462845B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本公开提供了一种数据传输时钟控制电路、方法和处理器。根据本公开的数据传输时钟控制电路包括:比较电路,配置成比较第一级流水线中的第一数据段的输入数据与输出数据是否相同以得到第一比较结果,并基于第一比较结果产生第一时钟控制信号,其中,第一数据段承载数据传输总线中的至少部分数据;以及开关电路,配置成利用第一时钟控制信号控制第N级流水线中的第一数据段的数据传输的开关状态,其中,N为大于1的整数。

Description

数据传输时钟控制电路、方法和处理器
技术领域
本公开涉及处理器技术领域,更具体地,涉及一种数据传输时钟控制电路、方法和处理器。
背景技术
在诸如中央处理器(Central Processing Unit,CPU)或深度计算单元(DeepComputing Unit,DCU)等计算设备中,需要进行大量的数据传输。例如,可以采用流水线(pipeline)结构进行处理器中的数据传输,其中,所述流水线由大量的触发器(flip flop)组成。在传输的数据量较大的应用场景中,所述流水线的级数较多,由此产生的功耗也随之增加。
发明内容
本公开提供了一种数据传输时钟控制电路、方法和处理器,用于对处理器中的数据传输电路进行时钟控制,降低数据传输过程中产生的功耗。
根据本公开的一方面,提供了一种数据传输时钟控制电路,包括:比较电路,配置成比较第一级流水线中的第一数据段的输入数据与输出数据是否相同以得到第一比较结果,并基于所述第一比较结果产生第一时钟控制信号,其中,所述第一数据段承载数据传输总线中的至少部分数据;以及开关电路,配置成利用所述第一时钟控制信号控制第N级流水线中的第一数据段的数据传输的开关状态,其中,N为大于1的整数。
根据本公开的另一方面,提供了一种数据传输时钟控制方法,包括:比较第一级流水线中的第一数据段的输入数据与输出数据是否相同以得到第一比较结果,其中,所述第一数据段承载数据传输总线中的至少部分数据;基于所述第一比较结果产生第一时钟控制信号;以及利用所述第一时钟控制信号控制第N级流水线中的第一数据段的数据传输的开关状态,其中,N为大于1的整数。
根据本公开的又一方面,提供了一种处理器,包括:发射端电路,配置成发送传输数据;数据传输电路,配置成接收并传输所述传输数据;如上所述的数据传输时钟控制电路,配置成对所述数据传输电路进行时钟控制;以及接收端电路,配置成接收由所述数据传输电路输出的数据。
根据本公开提供的数据传输时钟控制电路、方法以及处理器,通过比较传输数据中的变化能够自动地产生时钟控制信号,以对数据传输电路中的至少部分流水线进行时钟控制,从而降低数据传输过程中产生的功耗。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开提供的数据传输时钟控制电路的示意性框图;
图2示出了根据本公开实施例的电路示意图;
图3A示出了根据本公开实施例的时钟控制示意图;
图3B示出了相关技术中的时钟控制示意图;
图4示出了本公开提供的数据传输时钟控制方法的示意性流程图;
图5示出了根据本公开实施例的时钟控制方法另一流程图;
图6示出了根据本公开实施例的处理器的示意性框图;
图7示出了根据本公开实施例的示例性计算设备的架构的示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
在处理器领域,特别是高性能的CPU/DCU芯片中,需要进行大量的数据传输。例如,数据总线到各高速IO接口(诸如,Serdes、PCIE、USB等)的数据传输。这些数据传输的特点是走线距离长、频率高、数据带宽大。由此,此类数据传输通常是采用多级的资源同步总线(Source synchronous bus,SSB)或是转发器(repeater)来实现。其中,SSB是由正负沿触发器(flip flop)互相交替组成的流水线(pipeline),转发器是由全正沿触发器组成的流水线。由于高速数据传输的位宽大、流水线级数多,由此处理器的数据传输电路中需要大量的触发器。因此,如果不对诸如高性能CPU芯片中的数据传输电路应用时钟控制,将会不可避免地产生较大的系统功耗。
相关技术是通过数据传输发射端产生使能信号(诸如,enable)来进行时钟控制。使能信号与数据一起同步传输,当数据经过某一级流水线时,同步传输的使能信号可以使能时钟信号,以使得该级pipeline寄存数据。当数据传输过后,使能信号关闭此级流水线的时钟,起到节省功耗的目的。
然而,在数据传输过程中,特别是在多个数据连续传输的突发模式(burst mode),发射端电路产生的使能信号在整个数据传输过程中对传输线上每个比特都有效,即,在整个数据传输过程中,每级流水线的时钟都是处于打开状态,这使得使能信号的时钟控制效果差强人意,并未实际起到控制时钟关闭的作用。
本公开提供了一种数据传输时钟控制电路,在数据传输的过程中,通过比较传输数据的变化自动地产生时钟控制信号,以对数据传输电路中的至少部分流水线进行时钟控制,从而降低数据传输过程中产生的功耗。
图1示出了本公开提供的数据传输时钟控制电路的示意性框图,如图1所示,数据传输时钟控制电路1000可以包括比较电路1010以及开关电路1020。具体的,比较电路1010可以配置成比较第一级流水线中的第一数据段的输入数据与输出数据是否相同以得到第一比较结果,并基于第一比较结果产生第一时钟控制信号。第一时钟控制信号是基于传输数据的比较结果而自动产生的,用于控制后续流水线中的时钟关闭。
根据本公开实施例,第一数据段承载数据传输总线中的至少部分数据。
作为示例,第一数据段可以承载数据传输总线中的全部数据,在此情形中,比较电路1010用于比较第一级流水线中的全部位数(bit)的输入数据与输出数据是否相同。具体的,对于处理器中的流水线,数据是逐拍、逐级传输的。其中,输入数据表示当前拍(正在第一级流水线中传输)的数据,输出数据表示前一拍(已经从第一级流水线输出)的数据。当前拍、前一拍的数据为相邻的两拍数据,换句话说,比较电路1010通过比较相邻两拍数据是否相同来得到第一比较结果,并由此产生第一时钟控制信号。例如,第一级流水线共涉及32bit带宽的数据传输,则比较电路1010比较当前拍的[31:0]bit数据与前一拍的[31:0]bit数据是否相同,以得到第一比较结果。
作为其他示例,第一数据段也可以承载数据传输总线中的部分数据。例如,第一级流水线共涉及32bit带宽的数据传输,则比较电路1010比较当前拍的诸如[7:0]bit数据与前一拍的[7:0]bit数据是否相同,以得到第一比较结果。
根据本公开实施例,开关电路1020可以配置成利用第一时钟控制信号控制第N级流水线中的第一数据段的数据传输的开关状态。例如,N为大于1的整数。开关状态表示第N级流水线是否进行数据传输,例如,打开第N级流水线表示第N级流水线进行数据传输,关闭第N级流水线表示第N级流水线不进行数据传输,并由此节省功耗。此处控制数据传输的开关状态即为时钟控制(clock gating)。
本公开实施例的时钟控制电路通过比较传输数据的变化来产生时钟控制信号,以对数据传输电路中的至少部分流水线进行时钟控制,从而降低数据传输过程中产生的功耗。
根据本公开的一些实施例,比较电路1010可以包括异或门电路与第一或门电路,通过异或门、或门电路的组合来实现传输数据的比较。需要注意的是,还可以采用其他电路结构来实现比较电路1010,在此不作限制。
具体的,在第一数据段的输入数据与输出数据相同的情况下,第一或门电路可以输出关闭信号作为第一时钟控制信号,关闭信号用于指示关闭第N级流水线中的第一数据段的数据传输。在第一数据段的输入数据与输出数据不相同的情况下,第一或门电路可以输出打开信号作为第一时钟控制信号,打开信号用于指示打开第N级流水线中的第一数据段的数据传输。
根据本公开的一些实施例,开关电路1020可以配置成基于第一时钟控制信号来控制时钟信号(clock)是否打开第N级流水线中的第一数据段的数据传输。关于此过程的具体实现将在下文详细描述。
根据本公开的一些实施例,第一数据段承载数据传输总线中的第一部分数据,由第一级流水线中的第二数据段承载数据传输总线中的第二部分数据。例如,第一级流水线共涉及16bit数据传输,第一部分数据可以是[7:0]bit数据,第二部分数据可以是[15:8]bit数据。在这些实施例中,比较电路1010还可以配置成比较第一级流水线中的第二数据段的输入数据与输出数据是否相同以得到第二比较结果,并基于第二比较结果产生第二时钟控制信号。例如,开关电路1020还可以配置成利用第二时钟控制信号控制第N级流水线中的第二数据段的数据传输的开关状态。
具体的,图2示出了根据本公开至少一个实施例的电路示意图,其中示出了根据本公开至少一个实施例提供的时钟控制方案的具体电路结构,以下将结合图1与图2对根据本公开的时钟控制电路及其实现过程进行详细描述。
如图2所示,数据传输总线共涉及16位带宽的数据传输,并将此16位数据划分为对应于[7:0]bit的第一数据段以及对应于[15:8]bit的第二数据段。示意性地,图2中示出了3级流水线100、200、300,每级流水线的电路结构类似。例如,流水线100中包括两个8bit寄存器101和102,用于分别传输以上[7:0]bit数据以及[15:8]bit数据。其中,寄存器101和102由如上的流水线组成,例如可以是SSB或者是转发器,通过逐级触发实现数据寄存功能。
需要注意的是,图2中的电路结构仅是示意性的,根据本公开的时钟控制方案还可以适用于其他的情形,例如,将16位数据划分为4个数据段并分别进行时钟控制,或者,数据传输总线还可以涉及更多位数的数据传输,诸如32bit、64bit、128bit等,在此不再一一描述。
接着,如图2所示,比较电路可以包括异或门(XOR)电路103、105以及或门(OR)电路104、106。具体的,对于对应于第一数据段的8bit寄存器101,可以通过诸如8个异或门103来分别比较当前拍的8bit数据与前一拍的8bit数据是否相同。对于对应于第二数据段的8bit寄存器102,可以通过诸如8个异或门105来分别比较当前拍的8bit数据与前一拍的8bit数据是否相同,其中,图2中仅示意性地分别示出了一个异或门103和一个异或门105。
具体的,对于寄存器101传输的8bit数据,由8个异或门103来各自地比较当前拍的8bit数据与前一拍的8bit数据是否相同。其中,对于一个XOR门103,如果所比较的数据不相同,则输出1,反之输出0。
接着,由OR门104比较8个XOR门的输出信号,并由此产生第一时钟控制信号。具体的,如果寄存器101传输的相邻两拍的8bit数据均相同,即XOR门输出均为0,则OR门104输出信号0作为关闭信号,关闭信号用于指示关闭第N级流水线中的第一数据段的数据传输。如果寄存器101传输的相邻两拍的8bit数据中存在不相同的数据,即XOR门的输出包括1,则OR门104输出信号1作为打开信号,打开信号用于指示打开第N级流水线中的第一数据段的数据传输。其中,关闭信号0与打开信号1可以作为第一时钟控制信号,用于后续流水线的时钟控制。针对第一级流水线中对应于[15:8]bit的第二数据段,异或门105、或门106能够类似地产生第二时钟控制信号。
根据本公开实施例,时钟控制电路还可以包括寄存器电路,配置成存储第一时钟控制信号与第二时钟控制信号。如图2所示,寄存器电路203为2bit寄存器,用于寄存第一时钟控制信号与第二时钟控制信号。此外,需要注意的是,图2中示出了将数据总线中的16bit带宽数据划分为第一数据段与第二数据段并分别进行时钟控制的情形,由此,图2中示出了2bit寄存器。对于仅包括一个数据段的情形,则寄存器电路可以是1bit寄存器,而对于诸如包括4个数据段的情形,则寄存器电路可以是4bit寄存器,以此类推。
根据本公开实施例,开关电路1020可以配置成基于第一时钟控制信号来控制时钟信号是否打开第N级流水线中的第一数据段的数据传输。时钟信号在图2中表示为Clock,例如可以是周期性方波信号。
作为示例,N等于3,对于基于第一时钟控制信号来控制时钟信号是否打开第三级流水线中的第一数据段的数据传输,可以通过集成时钟门控电路(Integrated clockgating,ICG)304、305实现。对于第一数据段,ICG 304的输入信号时寄存器203输出的第一时钟控制信号以及时钟信号,并基于输入信号对第三级流水线中的第一数据段进行时钟控制。例如,对于第一时钟控制信号为0的情形,ICG 304可以禁能时钟信号Clock,即,关闭此级流水线的第一数据段的数据传输。其中,第一时钟控制信号为0表示第一级流水线中第一数据段中相邻两拍传输数据相同,则可以关闭第三级流水线中的第一数据段,即,不再传输此部分重复数据,由此,可以相应降低数据传输电路中的功耗。
如图2所示,第一级流水线的第一时钟控制信号与第二时钟控制信号被存放在相应的寄存器203内。从第三级流水线300开始,各组时钟控制信号均需要相应的寄存器303、403,用于相应地存储时钟控制信号,这样使得时钟控制信号可以和数据同步传输。例如,采用ICG(304、305)电路,对第三流水线实施时钟控制,采用ICG(404、405)电路,对第四级流水线实施时钟控制。而时钟控制信号本身不进行时钟控制。
类似地,对于第二数据段,ICG 305可以接收寄存器203输出的第一时钟控制信号以及时钟信号,并基于输入信号对第三级流水线中的第二数据段进行时钟控制,在此不再重复描述ICG 305的功能。
根据上述实施例,时钟控制电路还配置成通过时钟信号Clock来打开第一级流水线中的数据段与第二级流水线中的数据段的数据传输。由此,在数据传输电路中,第一级流水线与第二级流水线不进行时钟控制。由于第一级流水线中的输入数据与输出数据用于进行数据比较并由此产生后续流水线的时钟控制信号,这使得第一级流水线的时钟控制变得不必要,其已经进行了数据传输。此外,由于第一级流水线的输出数据即为第二级流水线的输入数据,这使得基于第一级流水线的输出数据产生的时钟控制信号对于第二级流水线也是不必要的。由此,在根据本公开提供的时钟控制电路中,第一级流水线与第二级流水线不进行时钟控制。此外,在根据本公开的其他实施例中,也可以根据实际需求以及电路结构设计需求来选择不进行时钟控制的具体级数,在此不作具体限制。例如,可以对前三级流水线不进行时钟控制,而从第四级流水线开始实施上述时钟控制方案。
如图2所示,通过包括异或门以及或门的比较电路以及包括ICG的开关电路,可以对由多级流水线组成的数据传输电路进行分级、分数据段的时钟控制,对于数据段中数据重复部分,关闭相应的流水线,由此降低系统功耗。
如上所述的,可以根据实际需求将数据传输总线上的数据划分成4bit、8bit、16bit、32bit等数据段,并对划分后的数据段分别进行单独的时钟控制,从而使得诸如SSB和转发器的流水线的时钟控制更加精细化。例如,对于某一数据段,在传输的一组数据前后相同时,通过数据比较自动地生成时钟控制信号,以控制关闭对应的流水线中的对应数据段,该关闭的流水线的对应数据段不再传输该相同的数据。进一步地,在该数据段传输的数据发生变化时,产生的时钟控制信号能够再次打开相应的流水线,以进行数据传输。根据本公开实施例,提供的时钟控制方案由于采用了更精细化地分段时钟控制,能够有效降低诸如高速数据传输过程中的功耗。特别是对应于突发模式的数据传输,其连续传输的数据量较大,且其中存在数据重复部分的概率也相对较高,相比于全程通过使能信号打开全部流水线的相关技术,能够更有效的降低系统功耗。
根据本公开的一些实施例,用于产生时钟控制信号的电路部分可以如图2所示的布置在数据传输电路中,而非数据发射端,这使得可以对诸如SSB、转发器等的流水线进行独立的时钟控制验证,即,无需数据发射电路以及数据接收电路。相比较地,在相关技术中的时钟控制方案中,由于使能信号是由数据发射端产生的,不同电路设计的使能信号协议可能不同,所以,在用使能信号作为SSB或转发器的时钟控制信号时,必须在系统层面(Soc)层面进行功能验证,而且,一旦SSB或转发器的级数做出调整,则必须重新进行验证步骤。总而言之,在此实施例中,本公开提供的时钟控制电路中的时钟控制过程可以独立于发射端电路以及接收端电路而单独进行验证,避免了系统芯片层面的验证过程,使得时钟控制验证更加灵活、简便。当然,在根据本公开的另一些实施例中,用于产生时钟控制信号的电路部分也可以布置在数据发射电路中,在此不作限制。
图3A示出了根据本公开实施例的时钟控制示意图,其中示出了将32bit的数据位划分为4个数据段分别进行时钟控制的情形,具体对应于图3A中的bit[7:0]、bit[15:8]、bit[23:16]、bit[31:24]。
在图3A中,N表示第N级流水线,N+1表示第N+1级流水线,以此类推,其中,N大于等于3,即,并未显示未进行时钟控制的第一与第二级流水线,此两级的数据传输始终处于打开状态。bit[7:0]、bit[15:8]、bit[23:16]、bit[31:24]分别表示各级流水线中的对应数据段。on表示打开时钟,off表示关闭时钟,由此表示各级流水线中各个数据段的时钟开关状态。
图3A中的时钟开关状态对应于以下依次传输的8拍数据值:00121100;00134a50;0011aa85;0011aab0;0011aa82;0011ba82;0011bcd0;0011aa80,其中,每拍数据由8位16进制数据组成。以第8拍数据0011aa80为例,00对应于bit[31:24],11对应于bit[23:16],aa对应于bit[15:8],80对应于bit[7:0],通过比较相邻两拍数据的各自数据段是否相同来进行相应的时钟控制。
例如,对于bit[7:0],通过比较可知第8拍数据(输出数据)中的80与第7拍数据(输入数据)中的d0不相同,则打开第N级流水线中的bit[7:0]时钟,表示为on;通过比较可知第7拍数据中的d0与第6拍数据中的82不相同,则打开第N+1级流水线中的bit[7:0]时钟,表示为on。接着,通过比较可知第6拍数据中的82与第5拍数据中的82相同,则关闭第N+2级流水线中的bit[7:0]时钟,表示为off(省电)。后续流水线的时钟控制过程类似处理,不再一一进行描述。
相比较地,图3B示出了相关技术中的时钟控制示意图,其中,enable表示数据发射端产生的使能信号,其与数据一起同步传输。在数据传输过程中,使能信号在整个数据传输过程中对传输线上每个bit都有效,表示为1。这使得在整个数据传输过程中,每级流水线的时钟都是处于打开状态,表示为on。
通过比较图3A与图3B的时钟控制效果可知,根据本公开提供的时钟控制方案通过比较传输数据的变化能够自动地产生时钟控制信号,以对数据传输电路中的至少部分流水线进行时钟控制,从而降低数据传输过程中产生的功耗。进一步地,由于采用了分段的数据控制,使得诸如SSB和转发器的流水线的时钟控制更加精细化,能够进一步地有效降低诸如高速数据传输过程中的功耗。
根据本公开的另一方面,还提供了一种数据传输时钟控制方法,用于对处理器中的数据传输电路进行时钟控制,降低数据传输过程中产生的系统功耗。具体的,图4示出了本公开至少一个实施例提供的数据传输时钟控制方法的示意性流程图。
如图4所示,首先,在步骤S110,比较第一级流水线中的第一数据段的输入数据与输出数据是否相同以得到第一比较结果。根据本公开实施例,第一数据段承载数据传输总线中的至少部分数据。
作为一个示例,第一数据段可以承载数据传输总线中的全部数据,在此情形中,步骤S110比较的是第一级流水线中的全部位数(bit)的输入数据与输出数据是否相同。具体的,对于处理器中的流水线,数据是逐拍、逐级传输的。其中,输入数据表示当前拍(正在第一级流水线中传输)的数据,输出数据表示前一拍(已经从第一级流水线输出)的数据。当前拍、前一拍的数据为相邻的两拍数据,换句话说,本公开提供的方法通过比较相邻两拍数据是否相同来得到第一比较结果,并由此产生时钟控制信号。例如,第一级流水线共涉及32bit传输,即,步骤S110比较当前拍的[31:0]bit数据与前一拍的[31:0]bit数据是否相同,以得到第一比较结果。
作为其他示例,第一数据段也可以承载数据传输总线中的部分数据。例如,第一级流水线共涉及32bit传输,则步骤S110比较当前拍的诸如[7:0]bit数据与前一拍的[7:0]bit数据是否相同,以得到第一比较结果。
接着,在步骤S120,基于第一比较结果产生第一时钟控制信号。根据本公开实施例,第一时钟控制信号是基于对于传输数据的比较而自动产生的,用于控制后续流水线中的时钟控制。在步骤S130,利用第一时钟控制信号控制第N级流水线中的第一数据段的数据传输的开关状态,其中,N为大于1的整数。开关状态表示第N级流水线是否进行数据传输,例如,打开第N级流水线表示第N级流水线进行数据传输,关闭第N级流水线表示第N级流水线不进行数据传输,并由此节省功耗。
根据本公开实施例,比较第一级流水线中的第一数据段的输入数据与输出数据是否相同包括:通过异或门电路和第一或门电路来比较第一级流水线中的第一数据段的输入数据与输出数据是否相同。如上文关于数据传输时钟控制电路所描述的,可以通过异或门、或门电路的组合来实现比较步骤。此外,还可以采用其他电路结构来实现数据比较步骤,在此不作限制。
根据本公开实施例,基于第一比较结果产生第一时钟控制信号包括:在第一数据段的输入数据与输出数据相同的情况下,通过第一或门电路输出关闭信号作为第一时钟控制信号,关闭信号用于指示关闭第N级流水线中的第一数据段的数据传输。或者,在第一数据段的输入数据与输出数据不相同的情况下,通过第一或门电路输出打开信号作为第一时钟控制信号,打开信号用于指示打开第N级流水线中的第一数据段的数据传输。
在根据本公开至少一个实施例的方法中,如果当前拍的数据与前一拍的数据相同,则产生时钟关闭信号,即,指示后续对应流水线无需再次传输此重复数据,并因此节省此级流水线的功耗。
根据本公开实施例,利用第一时钟控制信号控制第N级流水线中的第一数据段的数据传输的开关状态包括:基于第一时钟控制信号来控制时钟信号是否打开第N级流水线中的第一数据段的数据传输。
根据本公开的一些实施例,N等于3,时钟控制方法还可以包括:通过时钟信号来打开第一级流水线中的第一数据段与第二级流水线中的第一数据段的数据传输。即,在数据传输电路中,第一级流水线与第二级流水线不进行时钟控制。由于第一级流水线中的输入数据与输出数据用于进行数据比较由此产生后续流水线的时钟控制信号,这使得第一级流水线的时钟控制变得不必要。此外,由于第一级流水线的输出数据即为第二级流水线的输入数据,这使得基于输出数据产生的时钟控制信号对于第二级流水线也是不必要的。由此,在根据本公开的至少一实施例的方法中,第一级流水线与第二级流水线不进行时钟控制。此外,在根据本公开的其他实施例中,也可以根据实际需求以及电路结构设计需求来选择N的具体数值,在此不作具体限制。
根据本公开的一些实施例,第一数据段承载数据传输总线中的第一部分数据,由第一级流水线中的第二数据段承载数据传输总线中的第二部分数据。例如,第一级流水线共涉及32bit数据传输,第一部分数据可以是[15:0]bit数据,第二部分数据可以是[31:16]bit数据。在此实施例中,方法还可以包括:比较第一级流水线中的第二数据段的输入数据与输出数据是否相同以得到第二比较结果,基于第二比较结果产生第二时钟控制信号;以及利用第二时钟控制信号控制第N级流水线中的第二数据段的数据传输的开关状态。此外,还可以利用寄存器电路存储第一时钟控制信号与第二时钟控制信号。例如,可以采用2bit寄存器存储时钟控制信号。
图5示出了根据本公开至少一实施例的时钟控制方法的另一流程图。在图5中示出了由第一级流水线中的第一数据段承载数据传输总线中的第一部分数据,由第一级流水线中的第二数据段承载数据传输总线中的第二部分数据的情形。
如图5所示,在步骤S210,比较第一级流水线中的第一数据段的输入数据与输出数据是否相同以得到第一比较结果,以及比较第一级流水线中的第二数据段的输入数据与输出数据是否相同以得到第二比较结果。例如,第一级流水线共涉及32bit数据传输,第一部分数据可以是[15:0]bit数据,第二部分数据可以是[31:16]bit数据。基于此,在步骤210中,针对第一数据段,比较当前拍的[15:0]bit数据与前一拍的[15:0]bit数据是否相同,以得到第一比较结果,同时,针对第二数据段,比较当前拍的[31:16]bit数据与前一拍的[31:16]bit数据是否相同,以得到第二比较结果。
接着,在步骤S220,基于第一比较结果产生第一时钟控制信号,以及基于第二比较结果产生第二时钟控制信号。其中,如果比较结果表示相邻两拍(当前拍与前一拍)的数据相同,则产生关闭信号,如果比较结果表示相邻两拍数据不相同,则产生打开信号。由此,在根据本公开的方法中,如果当前拍的数据与前一拍的数据相同,则通过产生关闭信号来控制关闭对应流水线,即,后续流水线无需再次传输此重复数据,并因此节省此级流水线的功耗。
在步骤S230,利用寄存器电路存储第一时钟控制信号与第二时钟控制信号,例如,寄存器电路可以是如图2中所示的2bit寄存器208。在步骤S240,利用第一时钟控制信号控制第N级流水线中的第一数据段的数据传输的开关状态,以及,利用第二时钟控制信号控制第N级流水线中的第二数据段的数据传输的开关状态。例如,N可以为3。
根据本公开的时钟控制方法中的上述步骤与上文结合附图描述的时钟控制电路所进行的步骤类似,在此不再重复说明。
根据本公开提供的数据传输时钟控制方法,通过比较传输数据的变化能够自动地产生时钟控制信号,以对数据传输电路中的至少部分流水线进行时钟控制,从而降低数据传输过程中产生的功耗。
进一步地,在方法中,可以根据需求将数据传输总线上的数据划分成4bit、8bit、16bit、32bit等数据段(诸如,对应于[15:0]bit的第一数据段以及对应于[31:16]bit的第二数据段),并对划分后的第一、第二数据段分别进行单独的时钟控制,从而使得诸如SSB和转发器的流水线的时钟控制更加精细化。例如,对于某一数据段,在传输的一组数据前后相同时,通过数据比较自动地生成时钟控制信号,以控制关闭对应的流水线,即,该关闭的流水线不再传输该相同的数据。进一步的,在该数据段传输的数据发生变化时,产生的时钟控制信号能够再次打开相应的流水线,以进行数据传输。根据本公开实施例,提供的时钟控制方案由于采用了更精细化地分段时钟控制,能够有效降低诸如高速数据传输过程中的功耗。
此外,由于在本公开的实施例中,时钟控制信号产生于数据传输阶段,而非信号发射端,这使得可以对诸如SSB、转发器等的流水线进行独立的时钟控制验证,即,无需数据发射电路以及数据接收电路,并由此减少相应的系统芯片层面的验证工作,简化时钟控制验证步骤。
根据本公开的另一方面,还提供了一种处理器,能够实现处理器中的数据传输电路的时钟控制,降低数据传输过程中产生的功耗。例如,处理器可以是诸如CPU、DCU等的计算设备。
图6示出了根据本公开至少一实施例的处理器的示意性框图,图7示出了根据本公开实施例的示例性计算设备的架构的示意图。以下将结合图6与图7详细描述根据本公开实施例的处理器。
具体的,如图6所示,处理器2000可以包括发射端电路2010、数据传输电路2020、数据传输时钟控制电路2030以及接收端电路2040。
根据本公开实施例,发射端电路2010可以配置成发送传输数据,数据传输电路2020可以配置成接收并传输传输数据。数据传输时钟控制电路2030可以配置成按照如上结合附图所示的方法对数据传输电路进行时钟控制,例如,数据传输时钟控制电路2030可以实施为以上结合图1所描述的电路。接收端电路2040可以配置成接收由数据传输电路输出的数据。具体的,处理器2000中的数据传输时钟控制电路2030的电路结构以及执行的步骤与上文中结合附图所描述的电路类似,在此不再重复描述。
在根据本公开的处理器2000中,数据传输时钟控制电路2030通过比较传输数据的变化能够自动地产生时钟控制信号,以对数据传输电路中的至少部分流水线进行时钟控制,从而降低数据传输过程中产生的功耗。
根据本公开的实施例,数据传输时钟控制电路2030可以布置在发射端电路2010的外部,这使得时钟控制信号的产生独立于发射端电路。由此,本公开提供的时钟控制电路中的时钟控制过程可以独立于发射端电路2010以及接收端电路2040而单独进行验证,避免了系统芯片层面的验证过程,使得时钟控制的验证过程更加灵活、简便。
具体的,处理器2000还可以包括运行处理所需功能的其他组件,例如,处理器2000还可以包括存储器、输入/输出接口等设备。处理器2000可以根据存储在存储器中的程序执行各种动作和处理。具体地,处理器2000可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,并可以实现或者执行本发明实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,例如,可以是X86架构或者是ARM架构等。
此外,存储器还可以存储有计算机可执行指令代码,该指令代码在被处理器执行时可以至少部分实现根据本公开实施例的数据传输时钟控制方法。存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DR RAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
作为一个示例,如图7所示的计算设备可以包括根据本公开一些实施例的处理器。计算设备3000可以包括总线3010、一个或多个CPU 3020、只读存储器(ROM)3030、随机存取存储器(RAM)3040、连接到网络的通信端口3050、输入/输出组件3060、硬盘3070等。例如,CPU 3020可以是根据本公开提供的处理器,或者其中可以包括根据本公开的数据传输时钟控制电路,以用于实现数据传输时钟控制。计算设备3000还可以包括用户界面3080。当然,图7所示的架构只是示意性的,在实现不同的设备时,根据实际需要,可以省略图7示出的计算设备中的一个或多个组件。
本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
此外,虽然本公开对根据本公开的实施例的系统中的某些单元做出了各种引用,然而,任何数量的不同单元可以被使用并运行在客户端和/或服务器上。单元仅是说明性的,并且系统和方法的不同方面可以使用不同单元。
本公开中使用了流程图用来说明根据本公开的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中。
本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过程序来指令相关硬件完成,程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。
除非另有定义,这里使用的所有术具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。

Claims (16)

1.一种数据传输时钟控制电路,包括:
比较电路,配置成比较第一级流水线中的第一数据段的输入数据与输出数据是否相同以得到第一比较结果,并基于所述第一比较结果产生第一时钟控制信号,其中,所述第一数据段承载数据传输总线中的至少部分数据;以及
开关电路,配置成利用所述第一时钟控制信号控制第N级流水线中的第一数据段的数据传输的开关状态,其中,N为大于1的整数。
2.根据权利要求1所述的电路,其中,所述比较电路包括异或门电路与第一或门电路,
在所述第一数据段的输入数据与输出数据相同的情况下,所述第一或门电路输出关闭信号作为所述第一时钟控制信号,所述关闭信号用于指示关闭所述第N级流水线中的第一数据段的数据传输;或者
在所述第一数据段的输入数据与输出数据不相同的情况下,所述第一或门电路输出打开信号作为所述第一时钟控制信号,所述打开信号用于指示打开所述第N级流水线中的第一数据段的数据传输。
3.根据权利要求1所述的电路,其中,所述开关电路配置成基于所述第一时钟控制信号来控制时钟信号是否打开所述第N级流水线中的第一数据段的数据传输。
4.根据权利要求3所述的电路,其中,N等于3,所述电路还配置成:
通过所述时钟信号来打开所述第一级流水线中的第一数据段与第二级流水线中的第一数据段的数据传输。
5.根据权利要求1所述的电路,其中,所述第一数据段承载数据传输总线中的第一部分数据,由所述第一级流水线中的第二数据段承载所述数据传输总线中的第二部分数据,
所述比较电路还配置成比较所述第一级流水线中的第二数据段的输入数据与输出数据是否相同以得到第二比较结果,并基于所述第二比较结果产生第二时钟控制信号;以及
所述开关电路还配置成利用所述第二时钟控制信号控制第N级流水线中的第二数据段的数据传输的开关状态。
6.根据权利要求5所述的电路,还包括:寄存器电路,配置成存储所述第一时钟控制信号与所述第二时钟控制信号。
7.根据权利要求5所述的电路,其中,N等于3,所述电路还配置成:
通过时钟信号来打开所述第一级流水线中的第二数据段与第二级流水线中的第二数据段的数据传输。
8.一种数据传输时钟控制方法,包括:
比较第一级流水线中的第一数据段的输入数据与输出数据是否相同以得到第一比较结果,其中,所述第一数据段承载数据传输总线中的至少部分数据;
基于所述第一比较结果产生第一时钟控制信号;以及
利用所述第一时钟控制信号控制第N级流水线中的第一数据段的数据传输的开关状态,其中,N为大于1的整数。
9.根据权利要求8所述的方法,其中,所述比较第一级流水线中的第一数据段的输入数据与输出数据是否相同包括:
通过异或门电路和第一或门电路来比较所述第一级流水线中的第一数据段的输入数据与输出数据是否相同。
10.根据权利要求9所述的方法,其中,所述基于比较结果产生第一时钟控制信号包括:
在所述第一数据段的输入数据与输出数据相同的情况下,通过所述第一或门电路输出关闭信号作为所述第一时钟控制信号,所述关闭信号用于指示关闭所述第N级流水线中的第一数据段的数据传输;或者
在所述第一数据段的输入数据与输出数据不相同的情况下,通过所述第一或门电路输出打开信号作为所述第一时钟控制信号,所述打开信号用于指示打开所述第N级流水线中的第一数据段的数据传输。
11.根据权利要求8所述的方法,其中,所述利用所述第一时钟控制信号控制第N级流水线中的第一数据段的数据传输的开关状态包括:
基于所述第一时钟控制信号来控制时钟信号是否打开所述第N级流水线中的第一数据段的数据传输。
12.根据权利要求11所述的方法,其中,N等于3,所述方法还包括:
通过所述时钟信号来打开所述第一级流水线中的第一数据段与第二级流水线中的第一数据段的数据传输。
13.根据权利要求8所述的方法,其中,所述第一数据段承载数据传输总线中的第一部分数据,由所述第一级流水线中的第二数据段承载所述数据传输总线中的第二部分数据,所述方法还包括:
比较所述第一级流水线中的第二数据段的输入数据与输出数据是否相同以得到第二比较结果;
基于所述第二比较结果产生第二时钟控制信号;以及
利用所述第二时钟控制信号控制第N级流水线中的第二数据段的数据传输的开关状态。
14.根据权利要求13所述的方法,还包括:
利用寄存器电路存储所述第一时钟控制信号与所述第二时钟控制信号。
15.根据权利要求13所述的方法,其中,N等于3,所述方法还包括:
通过时钟信号来打开所述第一级流水线中的第二数据段与第二级流水线中的第二数据段的数据传输。
16.一种处理器,包括:
发射端电路,配置成发送传输数据;
数据传输电路,配置成接收并传输所述传输数据;
如权利要求1-7中的任一项所述的数据传输时钟控制电路,配置成对所述数据传输电路进行时钟控制;以及
接收端电路,配置成接收由所述数据传输电路输出的数据。
CN202011340088.3A 2020-11-25 2020-11-25 数据传输时钟控制电路、方法和处理器 Active CN112462845B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011340088.3A CN112462845B (zh) 2020-11-25 2020-11-25 数据传输时钟控制电路、方法和处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011340088.3A CN112462845B (zh) 2020-11-25 2020-11-25 数据传输时钟控制电路、方法和处理器

Publications (2)

Publication Number Publication Date
CN112462845A true CN112462845A (zh) 2021-03-09
CN112462845B CN112462845B (zh) 2024-06-18

Family

ID=74808122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011340088.3A Active CN112462845B (zh) 2020-11-25 2020-11-25 数据传输时钟控制电路、方法和处理器

Country Status (1)

Country Link
CN (1) CN112462845B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189990A (ja) * 1992-01-14 1993-07-30 Fujitsu Ltd データ保持装置
US20140347374A1 (en) * 2011-12-15 2014-11-27 Panasonic Corporation Image processing circuit and semiconductor integrated circuit
CN110073311A (zh) * 2016-12-13 2019-07-30 高通股份有限公司 时钟门控启用生成
CN111753962A (zh) * 2020-06-24 2020-10-09 国汽(北京)智能网联汽车研究院有限公司 一种加法器、乘法器、卷积层结构、处理器及加速器
CN111984058A (zh) * 2020-07-17 2020-11-24 中国科学院计算技术研究所 基于超导sfq电路的微处理器系统及其运算装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189990A (ja) * 1992-01-14 1993-07-30 Fujitsu Ltd データ保持装置
US20140347374A1 (en) * 2011-12-15 2014-11-27 Panasonic Corporation Image processing circuit and semiconductor integrated circuit
CN110073311A (zh) * 2016-12-13 2019-07-30 高通股份有限公司 时钟门控启用生成
CN111753962A (zh) * 2020-06-24 2020-10-09 国汽(北京)智能网联汽车研究院有限公司 一种加法器、乘法器、卷积层结构、处理器及加速器
CN111984058A (zh) * 2020-07-17 2020-11-24 中国科学院计算技术研究所 基于超导sfq电路的微处理器系统及其运算装置

Also Published As

Publication number Publication date
CN112462845B (zh) 2024-06-18

Similar Documents

Publication Publication Date Title
US7555590B2 (en) Fast buffer pointer across clock domains
KR100721581B1 (ko) 직렬 입/출력 인터페이스를 가진 멀티 포트 메모리 소자
KR100837802B1 (ko) 데이터 입출력 오류 검출 기능을 갖는 반도체 메모리 장치
JP5232019B2 (ja) 複数のプロセッサコア用の装置、システム、及び方法
US6826095B2 (en) Method and apparatus for data inversion in memory device
US10347347B1 (en) Link training mechanism by controlling delay in data path
US20040065904A1 (en) Data inversion circuit and semiconductor device
JP3683892B2 (ja) 改良された差動形態の遷移符号化のための方法およびシステム
CA3175824A1 (en) Computing apparatus and computing system
US8384437B2 (en) Method and apparatus for gating a clock signal
US9875807B2 (en) Semiconductor memory apparatus converting serial type data into parallel type data in response to pipe control signals and pipe control signals during a training operation
CN112462845B (zh) 数据传输时钟控制电路、方法和处理器
US10715308B2 (en) Transmitting circuit, semiconductor apparatus and semiconductor system configured to use the transmitting circuit
EP3087496B1 (en) Transition-minimized low speed data transfer
US8199872B2 (en) Counter circuit
US10566998B2 (en) Data conversion apparatus
CN113726335A (zh) 时钟控制电路、时钟电路和电子设备
CN112953513A (zh) 反相信号生成电路
US20180090197A1 (en) Semiconductor device
US7899955B2 (en) Asynchronous data buffer
CN111123207A (zh) 一种基于全裸片的tr组件控制电路
KR100695432B1 (ko) 직렬 입/출력 인터페이스를 가진 멀티 포트 메모리 소자
CN115831206A (zh) 寄存器电路模块、集成电路芯片及其操作方法
KR100690992B1 (ko) 데이터 입/출력 버퍼 회로
CN116107950A (zh) 数据处理装置、通信系统、芯片、板卡、电子设备

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