CN115827541B - 数据传输方法、装置、soc芯片、电子组件及电子设备 - Google Patents
数据传输方法、装置、soc芯片、电子组件及电子设备 Download PDFInfo
- Publication number
- CN115827541B CN115827541B CN202310113376.2A CN202310113376A CN115827541B CN 115827541 B CN115827541 B CN 115827541B CN 202310113376 A CN202310113376 A CN 202310113376A CN 115827541 B CN115827541 B CN 115827541B
- Authority
- CN
- China
- Prior art keywords
- clock
- total number
- processing module
- asynchronous processing
- clock domain
- 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
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开涉及数据处理技术领域,提供一种数据传输方法、装置、SOC芯片、电子组件及电子设备,目的是在跨时钟域传输数据时兼顾数据传输速率和数据传输功耗。其中,数据传输方法包括:每N个第一时钟周期,统计一次第一异步处理模块的可用缓存单元数量;每M个第二时钟周期,统计一次第二异步处理模块的可用缓存单元数量,其中,第一异步处理模块用于缓存第一时钟域向第二时钟域传输的数据,第二异步处理模块用于缓存第二时钟域向第一时钟域传输的数据;根据连续P次统计的第一异步处理模块的可用缓存单元数量和连续P次统计的第二异步处理模块的可用缓存单元数量,调整第二时钟域的时钟频率。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种数据传输方法、数据传输装置、SOC芯片、电子组件及电子设备。
背景技术
在数据处理技术领域中,两个不同的时钟域之间通常存在跨时钟域传输数据的需要。例如芯片内部的总线(简称片内总线)与用于连接***设备的PCIE(peripheralcomponent interconnect express,***设备互连快件)模块可能属于两个不同的时钟域,片内总线与PCIE模块之间通常需要跨时钟域传输数据。又例如芯片内的不同分区可能属于不同的时钟域,每两个分区之间也可能需要跨时钟域传输数据。
相关技术中,在跨时钟域传输数据时每个时钟域通常采用固定频率。然而在***正常工作时,数据发送负载通常是动态变化的,如果采用固定时钟频率传输数据,则难以兼顾数据传输速率和数据传输功耗,导致数据传输速率过低或数据传输功耗过大。
发明内容
本公开提供一种数据传输方法、数据传输装置、SOC芯片、电子组件及电子设备,目的是在跨时钟域传输数据时兼顾数据传输速率和数据传输功耗,使得数据传输速率不至于偏低,同时使得数据传输功耗不至于偏大。
根据本公开的一个方面,提供一种数据传输方法,该方法包括:
每N个第一时钟周期,统计一次第一异步处理模块的可用缓存单元数量;N是大于等于1的整数,第一时钟周期是第一异步处理模块的写数据侧的第一时钟域的时钟周期;
每M个第二时钟周期,统计一次第二异步处理模块的可用缓存单元数量;M是大于等于1的整数,第二时钟周期是第二异步处理模块的写数据侧的第二时钟域的时钟周期,第一异步处理模块用于缓存第一时钟域向第二时钟域传输的数据,第二异步处理模块用于缓存第二时钟域向第一时钟域传输的数据;
根据连续P次统计的第一异步处理模块的可用缓存单元数量和连续P次统计的第二异步处理模块的可用缓存单元数量,调整第二时钟域的时钟频率;P是大于等于1的整数,针对第一异步处理模块的连续P次统计与针对第二异步处理模块的连续P次统计在时间上存在重叠。
本公开一种可行的实现方式中,第一异步处理模块的缓存单元总数量等于第二异步处理模块的缓存单元总数量。
本公开一种可行的实现方式中,根据连续P次统计的第一异步处理模块的可用缓存单元数量和连续P次统计的第二异步处理模块的可用缓存单元数量,调整第二时钟域的时钟频率,包括:
计算连续P次统计的第一异步处理模块的可用缓存单元数量的总数R1,并计算连续P次统计的第二异步处理模块的可用缓存单元数量的总数R2;
在总数R1大于预设阈值且总数R1大于总数R2的情况下,降低第二时钟域的时钟频率;
在总数R2大于预设阈值且总数R2大于总数R1的情况下,升高第二时钟域的时钟频率。
本公开一种可行的实现方式中,在发生以下多种情况中的任意一种时,确定不调整第二时钟域的时钟频率:
总数R1和总数R2均小于等于预设阈值;
总数R1和总数R2均大于预设阈值,且总数R1和总数R2相等。
本公开一种可行的实现方式中,针对第一异步处理模块的连续P次统计的起始统计时间与针对第二异步处理模块的连续P次统计的起始统计时间一致;起始统计时间在第一时间或第二时间之后,第一时间是最近一次调整时钟频率的调整时间,第二时间是最近一次确定不调整时钟频率的确定时间。
本公开一种可行的实现方式中,预设阈值是根据P和缓存单元总数量确定的。
本公开一种可行的实现方式中,在总数R1大于预设阈值且总数R1大于总数R2的情况下,降低第二时钟域的时钟频率,包括:
在总数R1大于预设阈值且总数R1大于总数R2的情况下,计算第一调整幅度a1,将a1取整为a1’,并将第二时钟域的时钟频率降低a1’;其中,r是等于R1与R2的理论最大差值与每次频率调整上限的比值;
在总数R2大于预设阈值且总数R2大于总数R1的情况下,升高第二时钟域的时钟频率,包括:
在总数R2大于预设阈值且总数R2大于总数R1的情况下,计算第二调整幅度a2,将a2取整为a2’,并将第二时钟域的时钟频率升高a2’;其中。
本公开一种可行的实现方式中,第一时钟域是PCIE模块的时钟域,第二时钟域是片内总线的时钟域。
根据本公开的另一方面,还提供一种数据传输装置,该装置包括第一异步处理模块、第二异步处理模块及频率调节模块;
第一异步处理模块用于缓存第一时钟域向第二时钟域传输的数据,第二异步处理模块用于缓存第二时钟域向第一时钟域传输的数据;
频率调节模块用于每N个第一时钟周期,统计一次第一异步处理模块的可用缓存单元数量,并每M个第二时钟周期,统计一次第二异步处理模块的可用缓存单元数量;N和M均是大于等于1的整数,第一时钟周期是第一时钟域的时钟周期,第二时钟周期是第二时钟域的时钟周期;
频率调节模块还用于根据连续P次统计的第一异步处理模块的可用缓存单元数量和连续P次统计的第二异步处理模块的可用缓存单元数量,调整第二时钟域的时钟频率;P是大于等于1的整数,针对第一异步处理模块的连续P次统计与针对第二异步处理模块的连续P次统计在时间上存在重叠。
本公开一种可行的实现方式中,第一异步处理模块的缓存单元总数量等于第二异步处理模块的缓存单元总数量。
本公开一种可行的实现方式中,频率调节模块在调整第二时钟域的时钟频率时,具体用于:计算连续P次统计的第一异步处理模块的可用缓存单元数量的总数R1,并计算连续P次统计的第二异步处理模块的可用缓存单元数量的总数R2;在总数R1大于预设阈值且总数R1大于总数R2的情况下,降低第二时钟域的时钟频率;在总数R2大于预设阈值且总数R2大于总数R1的情况下,升高第二时钟域的时钟频率。
本公开一种可行的实现方式中,频率调节模块还用于在发生以下多种情况中的任意一种时,确定不调整第二时钟域的时钟频率:
总数R1和总数R2均小于等于预设阈值;
总数R1和总数R2均大于预设阈值,且总数R1和总数R2相等。
本公开一种可行的实现方式中,针对第一异步处理模块的连续P次统计的起始统计时间与针对第二异步处理模块的连续P次统计的起始统计时间一致;起始统计时间在第一时间或第二时间之后,第一时间是最近一次调整时钟频率的调整时间,第二时间是最近一次确定不调整时钟频率的确定时间。
本公开一种可行的实现方式中,预设阈值是根据M和缓存单元总数量确定的。
本公开一种可行的实现方式中,频率调节模块在降低第二时钟域的时钟频率时,具体用于:在总数R1大于预设阈值且总数R1大于总数R2的情况下,计算第一调整幅度a1,将a1取整为a1’,并将第二时钟域的时钟频率降低a1’;其中,r是等于R1与R2的理论最大差值与每次频率调整上限的比值;
频率调节模块在升高第二时钟域的时钟频率时,具体用于:在总数R2大于预设阈值且总数R2大于总数R1的情况下,计算第二调整幅度a2,将a2取整为a2’,并将第二时钟域的时钟频率升高a2’;其中。
本公开一种可行的实现方式中,第一时钟域是PCIE模块的时钟域,第二时钟域是片内总线的时钟域。
根据本公开的另一方面,还提供一种SOC芯片,该SOC芯片包括上述任一实施例中所述的数据传输装置。
根据本公开的另一方面,还提供一种电子组件,该电子组件包括上述SOC芯片。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
根据本公开的另一方面,还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
附图说明
图1是本公开一实施例提供的数据传输方法的流程示意图;
图2是本公开一实施例提供的数据传输装置的结构示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
相关技术中,在跨时钟域传输数据时每个时钟域通常采用固定频率。然而在***正常工作时,数据发送负载通常是动态变化的,如果采用固定时钟频率传输数据,则难以兼顾数据传输速率和数据传输功耗。
有鉴于此,本公开提供一种数据传输方法、数据传输装置、SOC芯片、电子组件及电子设备,目的是在跨时钟域传输数据时兼顾数据传输速率和数据传输功耗,使得数据传输速率不至于过低,同时使得数据传输功耗不至于过大。
参考图1,图1是本公开一实施例提供的数据传输方法的流程示意图。如图1所示,该数据传输方法包括以下步骤:
S110:每N个第一时钟周期,统计一次第一异步处理模块的可用缓存单元数量;N是大于等于1的整数,第一时钟周期是第一异步处理模块的写数据侧的第一时钟域的时钟周期。
S120:每M个第二时钟周期,统计一次第二异步处理模块的可用缓存单元数量;M是大于等于1的整数,第二时钟周期是第二异步处理模块的写数据侧的第二时钟域的时钟周期,第一异步处理模块用于缓存第一时钟域向第二时钟域传输的数据,第二异步处理模块用于缓存第二时钟域向第一时钟域传输的数据。
S130:根据连续P次统计的第一异步处理模块的可用缓存单元数量和连续P次统计的第二异步处理模块的可用缓存单元数量,调整第二时钟域的时钟频率;P是大于等于1的整数,针对第一异步处理模块的连续P次统计与针对第二异步处理模块的连续P次统计在时间上存在重叠。
上述步骤中,步骤S110与步骤S120通常是同时执行,比如在持续对第一异步处理模块的可用缓存单元数量进行统计时,同时持续对第二异步处理模块的可用缓存单元数量进行统计。
假设针对第一异步处理模块的第1次统计的统计时间点为a_1,针对第一异步处理模块的第P次统计的统计时间点为a_p,针对第二异步处理模块的第1次统计的统计时间点为b_1,第二异步处理模块的第P次统计的统计时间点为b_p。本公开中,针对第一异步处理模块的连续P次统计与针对第二异步处理模块的连续P次统计在时间上存在重叠,可以理解为:a_1至a_p的时间段与b_1至b_p的时间段之间存在重合。
需要说明的是,本公开中,通过限定针对第一异步处理模块的连续P次统计与针对第二异步处理模块的连续P次统计在时间上存在重叠,使得对于第一异步处理模块和第二异步处理模块两者的统计结果,可以反映两者在同一时间段或相近时间段的可用缓存情况,进而在根据两者的统计结果调整时钟频率时,调整结果更具准确性。
还需要说明的是,相比于现有技术中采用固定时钟频率传输数据,本公开通过统计第一异步处理模块和第二异步处理模块各自的可用缓存单元数量,并根据两者的可用缓存单元数量调整第二时钟域的时钟频率,可以实现时钟频率的动态调整,从而使得时钟频率可以动态适应数据传输情况,避免时钟频率过低而导致数据传输速率过低,也避免时钟频率过高而导致数据传输功耗过大。
参考图2,图2是本公开一实施例提供的数据传输装置的结构示意图。图2中,第一异步处理模块和第二异步处理模块设置在第一时钟域和第二时钟域的分界处,第一时钟域向第二时钟域传输数据时,第一时钟域中的写数据模块向第一异步处理模块写入数据,第二时钟域中的读数据模块从第一异步处理模块中读出数据,从而实现了数据的跨时钟域传输。此时,第一时钟域是第一异步处理模块的写数据侧,而第二时钟域是第一异步处理模块的读数据侧。
同理地,第二时钟域向第一时钟域传输数据时,第二时钟域中的写数据模块向第二异步处理模块写入数据,第一时钟域中的读数据模块从第二异步处理模块中读出数据,从而实现了数据的跨时钟域传输。此时,第二时钟域是第二异步处理模块的写数据侧,而第一时钟域是第二异步处理模块的读数据侧。
本公开中,第一异步处理模块可以是一个异步FIFO,如图2所示,第一异步处理模块中包括多个缓存单元,第一异步处理模块中的可用缓存单元是指第一异步处理模块的写数据侧还未写入数据的缓存单元,或者是指第一异步处理模块的写数据侧已经写入数据且读数据侧也已经读出数据的缓存单元。为便于理解,示例性地,第一异步处理模块包括缓存单元001、缓存单元002...缓存单元100,假设此时缓存单元001至缓存单元065已经被写数据侧写入数据,缓存单元066至缓存单元100还没有被写数据侧写入数据,缓存单元001至缓存单元028中的数据已经被读数据侧读出,则此时缓存单元001至缓存单元028均是可用缓存单元,缓存单元029至缓存单元065均不是可用缓存单元,缓存单元066至缓存单元100均是可用缓存单元。
又假设此时缓存单元001至缓存单元100均已经被写数据侧写入数据,而其中缓存单元001至缓存单元016中的数据还没有被读数据侧读出,缓存单元072至缓存单元100中的数据也还没有被读数据侧读出,而缓存单元017至缓存单元071中的数据已经被读数据侧读出,则此时缓存单元001至缓存单元016均不是可用缓存单元,缓存单元017至缓存单元071均是可用缓存单元,缓存单元072至缓存单元100均不是可用缓存单元。
同样地,第二异步处理模块也可以是一个异步FIFO,如图2所示,第二异步处理模块中也包括多个缓存单元,第二异步处理模块中的可用缓存单元是指第二异步处理模块的写数据侧还未写入数据的缓存单元,或者是指第二异步处理模块的写数据侧已经写入数据且读数据侧也已经读出数据的缓存单元。
本公开中,N是大于等于1的整数,如果N取值为1,则每个第一时钟周期会统计一次第一异步处理模块的可用缓存单元数量。同样地,M是大于等于1的整数,如果M取值为1,则每个第二时钟周期会统计一次第二异步处理模块的可用缓存单元数量。此外本公开中,N和M的取值可以相等或不相等,本公开对此不做限定。
在一些具体实施方式中,第一异步处理模块的缓存单元总数量等于第二异步处理模块的缓存单元总数量。需要说明的是,由于本公开中需要根据第一异步处理模块和第二异步处理模块各自的可用缓存单元数量调整时钟频率,因此如果第一异步处理模块和第二异步处理模块各自的缓存单元总数量不相等,则不相等的部分可能会影响时钟频率调整时的合理性。但需要说明的是,如果两者的缓存单元总数量相差较小,比如缓存单元总数量分别是100和102,则对时钟频率调整的影响可以忽略。总言之,本公开为了提升时钟频率调整的合理性,限定第一异步处理模块的缓存单元总数量等于第二异步处理模块的缓存单元总数量。
在一些具体实施方式中,上述步骤S130具体包括以下子步骤:
S130-1:计算连续P次统计的第一异步处理模块的可用缓存单元数量的总数R1,并计算连续P次统计的第二异步处理模块的可用缓存单元数量的总数R2;
S130-2:在总数R1大于预设阈值且总数R1大于总数R2的情况下,降低第二时钟域的时钟频率;
S130-3:在总数R2大于预设阈值且总数R2大于总数R1的情况下,升高第二时钟域的时钟频率。
其中,预设阈值可以是根据P和缓存单元总数量确定的。例如预设阈值等于次数P、缓存单元总数量及预设系数三者的乘积,预设系数是大于0且小于1的小数。
本公开中,如果总数R1大于预设阈值,则说明在执行统计操作的这段时间内,第一异步处理模块的可用缓存单元数量较多,进而说明第一异步处理模块的读数据侧(即第二时钟域)的读速度偏快,功耗偏大,可以考虑降低第二时钟域的时钟频率;如果总数R1还大于总数R2,则说明第二时钟域的数据处理速度快于第一时钟域的数据处理速度,可以考虑降低第二时钟域的时钟频率。因此,在总数R1大于预设阈值且总数R1大于总数R2的情况下,选择降低第二时钟域的时钟频率,不会显著影响跨时钟域的数据传输速率,但是能有效降低数据传输功耗。
如果总数R2大于预设阈值,则说明在执行统计操作的这段时间内,第二异步处理模块的可用缓存单元数量较多,进而说明第二异步处理模块的写数据侧(即第二时钟域)的写速度偏慢,影响数据传输速率,可以考虑升高第二时钟域的时钟频率;如果总数R2还大于总数R1,则说明第二时钟域的数据处理速度慢于第一时钟域的数据处理速度,可以考虑升高第二时钟域的时钟频率。因此,在总数R2大于预设阈值且总数R2大于总数R1的情况下,选择升高第二时钟域的时钟频率,能有效提升数据传输速率。
具体实现时,在总数R1大于预设阈值且总数R1大于总数R2的情况下,降低第二时钟域的时钟频率,包括:在总数R1大于预设阈值且总数R1大于总数R2的情况下,计算第一调整幅度a1,将a1取整为a1’,并将第二时钟域的时钟频率降低a1’;其中,r是等于R1与R2的理论最大差值与每次频率调整上限的比值。
在总数R2大于预设阈值且总数R2大于总数R1的情况下,升高第二时钟域的时钟频率,包括:在总数R2大于预设阈值且总数R2大于总数R1的情况下,计算第二调整幅度a2,将a2取整为a2’,并将第二时钟域的时钟频率升高a2’;其中。
需要说明的是,对a1和a2的取整操作可以是四舍五入的取整,也可以向上取整,还可以是向下取整,本公开对于具体的取整方式不做限定。
其中,R1与R2的理论最大差值会在以下情况中出现:每次统计第一异步处理模块的可用缓存单元数量时,统计结果均为0,而每次统计第二异步处理模块的可用缓存单元数量时,统计结果均为其缓存单元总数量;或者,每次统计第一异步处理模块的可用缓存单元数量时,统计结果均为其缓存单元总数量,而每次统计第二异步处理模块的可用缓存单元数量时,统计结果均为0。
如果第一异步处理模块的缓存单元总数量等于第二异步处理模块的缓存单元总数量,则理论最大差值等于缓存单元总数量与次数P的乘积。
本公开中,除了上述子步骤S130-2和S130-3所涉及的两种情况,在其他情况下均不调整第二时钟域的时钟频率。例如当总数R1和总数R2均小于等于预设阈值时,不需要调整第二时钟域的时钟频率;又例如当总数R1和总数R2均大于预设阈值,且总数R1和总数R2相等时,也不需要调整第二时钟域的时钟频率。
为便于理解上述具体调整方式,假设第一异步处理模块与第二异步处理模块各自的缓存单元总数量均等于32,统计次数P等于10,上述用于计算预设阈值的预设系数等于0.3,每次频率调整上限为100MHz;则预设阈值等于32×10×0.3,即96;R1与R2的理论最大差值等于32×10,即320;r等于320/100,即3.2;又假设P等于10,N和M均等于100,换言之,每100个第一时钟周期,统计一次第一异步处理模块的可用缓存单元数量,需要连续统计10次,每100个第二时钟周期,统计一次第二异步处理模块的可用缓存单元数量,需要连续统计10次;以下给出多个具体示例。
示例一:
假设此时第一时钟域的时钟频率等于800MHz,第一时钟周期等于1.25ns,第二时钟域的时钟频率也等于800MHz,第二时钟周期也等于1.25ns。
对于第一异步处理模块的统计结果如下:
100个第一时钟周期,已用时125ns:可用缓存单元数量等于10;
100个第一时钟周期,已用时250ns,可用缓存单元数量等于20;
100个第一时钟周期,已用时375ns,可用缓存单元数量等于25;
100个第一时钟周期,已用时500ns,可用缓存单元数量等于22;
100个第一时钟周期,已用时625ns,可用缓存单元数量等于30;
100个第一时钟周期,已用时750ns,可用缓存单元数量等于19;
100个第一时钟周期,已用时875ns,可用缓存单元数量等于18;
100个第一时钟周期,已用时1000ns,可用缓存单元数量等于23;
100个第一时钟周期,已用时1125ns,可用缓存单元数量等于19;
100个第一时钟周期,已用时1250ns,可用缓存单元数量等于26。
对于第二异步处理模块的统计结果如下:
100个第二时钟周期,已用时125ns,可用缓存单元数量等于5;
100个第二时钟周期,已用时250ns,可用缓存单元数量等于10;
100个第二时钟周期,已用时375ns,可用缓存单元数量等于10;
100个第二时钟周期,已用时500ns,可用缓存单元数量等于12;
100个第二时钟周期,已用时625ns,可用缓存单元数量等于14;
100个第二时钟周期,已用时750ns,可用缓存单元数量等于20;
100个第二时钟周期,已用时875ns,可用缓存单元数量等于20;
100个第二时钟周期,已用时1000ns,可用缓存单元数量等于15;
100个第二时钟周期,已用时1125ns,可用缓存单元数量等于12;
100个第二时钟周期,已用时1250ns,可用缓存单元数量等于23。
则R1等于212,R2等于141。由于此时R1大于预设阈值96,且R1大于R2,因此需要计算,向下取整后等于22。于是需要将第二时钟域的时钟频率降低22MHz,也就是将第二时钟域的时钟频率降低至778MHz。
示例二:
假设此时第一时钟域的时钟频率等于800MHz,第一时钟周期等于1.25ns,第二时钟域的时钟频率也等于800MHz,第二时钟周期也等于1.25ns。
对于第一异步处理模块的统计结果如下:
100个第一时钟周期,已用时125ns,可用缓存单元数量等于8;
100个第一时钟周期,已用时250ns,可用缓存单元数量等于6;
100个第一时钟周期,已用时375ns,可用缓存单元数量等于5;
100个第一时钟周期,已用时500ns,可用缓存单元数量等于10;
100个第一时钟周期,已用时625ns,可用缓存单元数量等于9;
100个第一时钟周期,已用时750ns,可用缓存单元数量等于4;
100个第一时钟周期,已用时875ns,可用缓存单元数量等于5;
100个第一时钟周期,已用时1000ns,可用缓存单元数量等于11;
100个第一时钟周期,已用时1125ns,可用缓存单元数量等于2;
100个第一时钟周期,已用时1250ns,可用缓存单元数量等于9。
对于第二异步处理模块的统计结果如下:
100个第二时钟周期,已用时125ns,可用缓存单元数量等于18;
100个第二时钟周期,已用时250ns,可用缓存单元数量等于26;
100个第二时钟周期,已用时375ns,可用缓存单元数量等于12;
100个第二时钟周期,已用时500ns,可用缓存单元数量等于15;
100个第二时钟周期,已用时625ns,可用缓存单元数量等于18;
100个第二时钟周期,已用时750ns,可用缓存单元数量等于20;
100个第二时钟周期,已用时875ns,可用缓存单元数量等于15;
100个第二时钟周期,已用时1000ns,可用缓存单元数量等于27;
100个第二时钟周期,已用时1125ns,可用缓存单元数量等于22;
100个第二时钟周期,已用时1250ns,可用缓存单元数量等于19。
则R1等于69,R2等于192。由于此时R2大于预设阈值96,且R2大于R1,因此需要计算,向下取整后等于38。于是需要将第二时钟域的时钟频率升高38MHz,也就是将第二时钟域的时钟频率降低至838MHz。
示例三:
假设此时第一时钟域的时钟频率等于800MHz,第一时钟周期等于1.25ns,第二时钟域的时钟频率也等于800MHz,第二时钟周期也等于1.25ns。
对于第一异步处理模块的统计结果如下:
100个第一时钟周期,已用时125ns,可用缓存单元数量等于5;
100个第一时钟周期,已用时250ns,可用缓存单元数量等于10;
100个第一时钟周期,已用时375ns,可用缓存单元数量等于9;
100个第一时钟周期,已用时500ns,可用缓存单元数量等于9;
100个第一时钟周期,已用时625ns,可用缓存单元数量等于12;
100个第一时钟周期,已用时750ns,可用缓存单元数量等于8;
100个第一时钟周期,已用时875ns,可用缓存单元数量等于11;
100个第一时钟周期,已用时1000ns,可用缓存单元数量等于7;
100个第一时钟周期,已用时1125ns,可用缓存单元数量等于4;
100个第一时钟周期,已用时1250ns,可用缓存单元数量等于12。
对于第二异步处理模块的统计结果如下:
100个第二时钟周期,已用时125ns,可用缓存单元数量等于10;
100个第二时钟周期,已用时250ns,可用缓存单元数量等于9;
100个第二时钟周期,已用时375ns,可用缓存单元数量等于8;
100个第二时钟周期,已用时500ns,可用缓存单元数量等于9;
100个第二时钟周期,已用时625ns,可用缓存单元数量等于6;
100个第二时钟周期,已用时750ns,可用缓存单元数量等于10;
100个第二时钟周期,已用时875ns,可用缓存单元数量等于11;
100个第二时钟周期,已用时1000ns,可用缓存单元数量等于9;
100个第二时钟周期,已用时1125ns,可用缓存单元数量等于7;
100个第二时钟周期,已用时1250ns,可用缓存单元数量等于6。
则R1等于87,R2等于85。由于此时R1和R2均不大于预设阈值96,因此不需要调整第二时钟域的时钟频率。
本公开在具体实施期间,第一时钟周期与第二时钟周期在大部分情况下是不相等的,因此对第一异步处理模块的连续P次统计的总用时,与对第二异步处理模块的连续P次统计的总用时,很可能不相等。比如当第一时钟周期等于800MHz,第二时钟周期等于500MHz,N和M均等于100的情况下,则对第一异步处理模块的连续10次统计的总用时等于1250ns,而对第二异步处理模块的连续10次统计的总用时等于2000ns。
为了使得针对第一异步处理模块的连续P次统计与针对第二异步处理模块的连续P次统计在时间上存在重叠,在一些具体实施方式中,针对第一异步处理模块的连续P次统计的起始统计时间与针对第二异步处理模块的连续P次统计的起始统计时间一致;其中,起始统计时间在第一时间或第二时间之后,第一时间是最近一次调整时钟频率的调整时间,第二时间是最近一次确定不调整时钟频率的确定时间。
其中,针对第一异步处理模块的连续P次统计的起始统计时间与针对第二异步处理模块的连续P次统计的起始统计时间一致,可以理解为:针对第一异步处理模块的连续P次统计中的第一次统计操作的统计时间,与针对第二异步处理模块的连续P次统计中的第一次统计操作的统计时间,两者相等。通过将第一异步处理模块和第二异步处理模块的统计起始时间设置为两者一致,可以确保针对第一异步处理模块的连续P次统计与针对第二异步处理模块的连续P次统计在时间上存在重叠。
具体实施时,图2中的频率调节模块在针对第一异步处理模块执行了连续P次统计,同时针对第二异步处理模块执行了连续P次统计后,根据第一异步处理模块和第二异步处理模块各自对应的统计结果,确定是否需要对第二时钟域的时钟频率进行调整。如果确定出需要调整,则在对第二时钟域的时钟频率进行调整后,开始对第一异步处理模块执行下一次的连续P次统计,并在同一时间开始对第二异步处理模块执行下一次的连续P次统计。如果确定出不需要调整,则开始对第一异步处理模块执行下一次的连续P次统计,并在同一时间开始对第二异步处理模块执行下一次的连续P次统计。
在本公开的一些具体实施方式中,第一时钟域是PCIE模块的时钟域,第二时钟域是片内总线的时钟域。
以上,本公开提供了一种或多种数据传输方法,以下,本公开提供一种或多种数据传输装置。由于数据传输装置与数据传输方法基于同一发明构思,因此为了避免重复,以下对数据传输装置做简要说明,对于数据传输装置的具体实施方式可参见上述实施例。
如图2所示,数据传输装置包括第一异步处理模块、第二异步处理模块及频率调节模块。
其中,第一异步处理模块用于缓存第一时钟域向第二时钟域传输的数据,第二异步处理模块用于缓存第二时钟域向第一时钟域传输的数据。
频率调节模块用于每N个第一时钟周期,统计一次第一异步处理模块的可用缓存单元数量,并每M个第二时钟周期,统计一次第二异步处理模块的可用缓存单元数量;N和M均是大于等于1的整数,第一时钟周期是第一时钟域的时钟周期,第二时钟周期是第二时钟域的时钟周期。
频率调节模块还用于根据连续P次统计的第一异步处理模块的可用缓存单元数量和连续P次统计的第二异步处理模块的可用缓存单元数量,调整第二时钟域的时钟频率;P是大于等于1的整数,针对第一异步处理模块的连续P次统计与针对第二异步处理模块的连续P次统计在时间上存在重叠。
本公开中,相比于现有技术中采用固定时钟频率传输数据,本公开通过统计第一异步处理模块和第二异步处理模块各自的可用缓存单元数量,并根据两者的可用缓存单元数量调整第二时钟域的时钟频率,可以实现时钟频率的动态调整,从而使得时钟频率可以动态适应数据传输情况,避免时钟频率过低而导致数据传输速率过低,也避免时钟频率过高而导致数据传输功耗过大。
在一些具体实施方式中,第一异步处理模块的缓存单元总数量等于第二异步处理模块的缓存单元总数量。
在一些具体实施方式中,频率调节模块在调整第二时钟域的时钟频率时,具体用于:计算连续P次统计的第一异步处理模块的可用缓存单元数量的总数R1,并计算连续P次统计的第二异步处理模块的可用缓存单元数量的总数R2;在总数R1大于预设阈值且总数R1大于总数R2的情况下,降低第二时钟域的时钟频率;在总数R2大于预设阈值且总数R2大于总数R1的情况下,升高第二时钟域的时钟频率。
在一些具体实施方式中,频率调节模块还用于在发生以下多种情况中的任意一种时,确定不调整第二时钟域的时钟频率:
总数R1和总数R2均小于等于预设阈值;
总数R1和总数R2均大于预设阈值,且总数R1和总数R2相等。
在一些具体实施方式中,针对第一异步处理模块的连续P次统计的起始统计时间与针对第二异步处理模块的连续P次统计的起始统计时间一致;起始统计时间在第一时间或第二时间之后,第一时间是最近一次调整时钟频率的调整时间,第二时间是最近一次确定不调整时钟频率的确定时间。
在一些具体实施方式中,预设阈值是根据M和缓存单元总数量确定的。
在一些具体实施方式中,频率调节模块在降低第二时钟域的时钟频率时,具体用于:在总数R1大于预设阈值且总数R1大于总数R2的情况下,计算第一调整幅度a1,将a1取整为a1’,并将第二时钟域的时钟频率降低a1’;其中,r是等于R1与R2的理论最大差值与每次频率调整上限的比值;
频率调节模块在升高第二时钟域的时钟频率时,具体用于:在总数R2大于预设阈值且总数R2大于总数R1的情况下,计算第二调整幅度a2,将a2取整为a2’,并将第二时钟域的时钟频率升高a2’;其中。
在一些具体实施方式中,第一时钟域是PCIE模块的时钟域,第二时钟域是片内总线的时钟域。
本公开实施例还提供一种SOC芯片,该SOC芯片包括上述任一实施例中所述的数据传输装置。
本公开实施例还提供一种电子装置,该电子装置包括上述任一实施例中所述的基于多核GPU架构的图形处理***。在一些使用场景下,该电子装置的产品形式体现为显卡;在另一些使用场景下,该电子装置的产品形式体现为CPU主板。
本公开实施例还提供一种电子设备,该电子设备包括上述的电子装置。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (17)
1.一种数据传输方法,所述方法包括:
每N个第一时钟周期,统计一次第一异步处理模块的可用缓存单元数量;所述N是大于等于1的整数,所述第一时钟周期是所述第一异步处理模块的写数据侧的第一时钟域的时钟周期;
每M个第二时钟周期,统计一次第二异步处理模块的可用缓存单元数量;所述M是大于等于1的整数,所述第二时钟周期是所述第二异步处理模块的写数据侧的第二时钟域的时钟周期,所述第一异步处理模块用于缓存所述第一时钟域向所述第二时钟域传输的数据,所述第二异步处理模块用于缓存所述第二时钟域向所述第一时钟域传输的数据;第一异步处理模块和第二异步处理模块设置在第一时钟域和第二时钟域的分界处;
计算连续P次统计的所述第一异步处理模块的可用缓存单元数量的总数R1,并计算连续P次统计的所述第二异步处理模块的可用缓存单元数量的总数R2;在所述总数R1大于预设阈值且所述总数R1大于所述总数R2的情况下,降低所述第二时钟域的时钟频率;在所述总数R2大于所述预设阈值且所述总数R2大于所述总数R1的情况下,升高所述第二时钟域的时钟频率;所述P是大于等于1的整数,针对所述第一异步处理模块的连续P次统计与针对所述第二异步处理模块的连续P次统计在时间上存在重叠。
2.根据权利要求1所述的方法,所述第一异步处理模块的缓存单元总数量等于所述第二异步处理模块的缓存单元总数量。
3.根据权利要求1所述的方法,在发生以下多种情况中的任意一种时,确定不调整所述第二时钟域的时钟频率:
所述总数R1和所述总数R2均小于等于所述预设阈值;
所述总数R1和所述总数R2均大于所述预设阈值,且所述总数R1和所述总数R2相等。
4.根据权利要求3所述的方法,针对所述第一异步处理模块的连续P次统计的起始统计时间与针对所述第二异步处理模块的连续P次统计的起始统计时间一致;所述起始统计时间在第一时间或第二时间之后,所述第一时间是最近一次调整时钟频率的调整时间,所述第二时间是最近一次确定不调整时钟频率的确定时间。
5.根据权利要求1所述的方法,所述预设阈值是根据所述P和所述缓存单元总数量确定的。
6.根据权利要求1所述的方法,所述在所述总数R1大于预设阈值且所述总数R1大于所述总数R2的情况下,降低所述第二时钟域的时钟频率,包括:
在所述总数R1大于预设阈值且所述总数R1大于所述总数R2的情况下,计算第一调整幅度a1,将a1取整为a1’,并将所述第二时钟域的时钟频率降低a1’;其中,所述r是等于R1与R2的理论最大差值与每次频率调整上限的比值;
所述在所述总数R2大于所述预设阈值且所述总数R2大于所述总数R1的情况下,升高所述第二时钟域的时钟频率,包括:
在所述总数R2大于所述预设阈值且所述总数R2大于所述总数R1的情况下,计算第二调整幅度a2,将a2取整为a2’,并将所述第二时钟域的时钟频率升高a2’;其中。
7.根据权利要求1至6任一项所述的方法,所述第一时钟域是PCIE模块的时钟域,所述第二时钟域是片内总线的时钟域。
8.一种数据传输装置,所述装置包括第一异步处理模块、第二异步处理模块及频率调节模块;
所述第一异步处理模块用于缓存第一时钟域向第二时钟域传输的数据,所述第二异步处理模块用于缓存所述第二时钟域向所述第一时钟域传输的数据;第一异步处理模块和第二异步处理模块设置在第一时钟域和第二时钟域的分界处;
所述频率调节模块用于每N个第一时钟周期,统计一次所述第一异步处理模块的可用缓存单元数量,并每M个第二时钟周期,统计一次所述第二异步处理模块的可用缓存单元数量;所述N和所述M均是大于等于1的整数,所述第一时钟周期是所述第一时钟域的时钟周期,所述第二时钟周期是所述第二时钟域的时钟周期;
所述频率调节模块还用于计算连续P次统计的所述第一异步处理模块的可用缓存单元数量的总数R1,并计算连续P次统计的所述第二异步处理模块的可用缓存单元数量的总数R2;在所述总数R1大于预设阈值且所述总数R1大于所述总数R2的情况下,降低所述第二时钟域的时钟频率;在所述总数R2大于所述预设阈值且所述总数R2大于所述总数R1的情况下,升高所述第二时钟域的时钟频率;所述P是大于等于1的整数,针对所述第一异步处理模块的连续P次统计与针对所述第二异步处理模块的连续P次统计在时间上存在重叠。
9.根据权利要求8所述的装置,所述第一异步处理模块的缓存单元总数量等于所述第二异步处理模块的缓存单元总数量。
10.根据权利要求8所述的装置,所述频率调节模块还用于在发生以下多种情况中的任意一种时,确定不调整所述第二时钟域的时钟频率:
所述总数R1和所述总数R2均小于等于所述预设阈值;
所述总数R1和所述总数R2均大于所述预设阈值,且所述总数R1和所述总数R2相等。
11.根据权利要求10所述的装置,针对所述第一异步处理模块的连续P次统计的起始统计时间与针对所述第二异步处理模块的连续P次统计的起始统计时间一致;所述起始统计时间在第一时间或第二时间之后,所述第一时间是最近一次调整时钟频率的调整时间,所述第二时间是最近一次确定不调整时钟频率的确定时间。
12.根据权利要求8所述的装置,所述预设阈值是根据所述M和所述缓存单元总数量确定的。
13.根据权利要求8所述的装置,所述频率调节模块在降低所述第二时钟域的时钟频率时,具体用于:在所述总数R1大于预设阈值且所述总数R1大于所述总数R2的情况下,计算第一调整幅度a1,将a1取整为a1’,并将所述第二时钟域的时钟频率降低a1’;其中,所述r是等于R1与R2的理论最大差值与每次频率调整上限的比值;
所述频率调节模块在升高所述第二时钟域的时钟频率时,具体用于:在所述总数R2大于所述预设阈值且所述总数R2大于所述总数R1的情况下,计算第二调整幅度a2,将a2取整为a2’,并将所述第二时钟域的时钟频率升高a2’;其中。
14.根据权利要求8至13任一项所述的装置,所述第一时钟域是PCIE模块的时钟域,所述第二时钟域是片内总线的时钟域。
15.一种SOC芯片,包括权利要求8至14任一项所述的数据传输装置。
16.一种电子组件,包括权利要求15所述的SOC芯片。
17.一种电子设备,包括权利要求16所述的电子组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310113376.2A CN115827541B (zh) | 2023-02-15 | 2023-02-15 | 数据传输方法、装置、soc芯片、电子组件及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310113376.2A CN115827541B (zh) | 2023-02-15 | 2023-02-15 | 数据传输方法、装置、soc芯片、电子组件及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115827541A CN115827541A (zh) | 2023-03-21 |
CN115827541B true CN115827541B (zh) | 2023-07-21 |
Family
ID=85521388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310113376.2A Active CN115827541B (zh) | 2023-02-15 | 2023-02-15 | 数据传输方法、装置、soc芯片、电子组件及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827541B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101320362A (zh) * | 2008-06-27 | 2008-12-10 | 北京大学深圳研究生院 | 支持异步传输的阵列处理***及其时钟管理方法 |
CN103003807A (zh) * | 2010-07-28 | 2013-03-27 | 格诺多有限公司 | 第一时钟域和第二时钟域之间的同步数据传输 |
CN115361012A (zh) * | 2022-07-07 | 2022-11-18 | 华南理工大学 | 一种低功耗异步先入先出缓存器电路及芯片 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2513529A (en) * | 2012-11-15 | 2014-11-05 | Ibm | System and method of low latency data tranfer between clock domains operated in various synchronization modes |
-
2023
- 2023-02-15 CN CN202310113376.2A patent/CN115827541B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101320362A (zh) * | 2008-06-27 | 2008-12-10 | 北京大学深圳研究生院 | 支持异步传输的阵列处理***及其时钟管理方法 |
CN103003807A (zh) * | 2010-07-28 | 2013-03-27 | 格诺多有限公司 | 第一时钟域和第二时钟域之间的同步数据传输 |
CN115361012A (zh) * | 2022-07-07 | 2022-11-18 | 华南理工大学 | 一种低功耗异步先入先出缓存器电路及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN115827541A (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080183959A1 (en) | Memory system having global buffered control for memory modules | |
US20050165970A1 (en) | Adaptive-allocation of I/O bandwidth using a configurable interconnect topology | |
US20100088454A1 (en) | Bridging device with power-saving function | |
US9330031B2 (en) | System and method for calibration of serial links using a serial-to-parallel loopback | |
US8386908B2 (en) | Data transmission methods and universal serial bus host controllers utilizing the same | |
US20240020246A1 (en) | Method for Generating Information Based on FIFO Memory and Apparatus, Device and Medium | |
CN115827541B (zh) | 数据传输方法、装置、soc芯片、电子组件及电子设备 | |
CN111198831A (zh) | 一种基于卸载卡的nvme硬盘管理***及方法 | |
US8619883B2 (en) | Low speed access to DRAM | |
US8806233B2 (en) | Power delivery noise reduction on a memory channel | |
CN103399827B (zh) | 存储装置、执行访问操作的***和方法 | |
CN116414743A (zh) | 用于控制存储器的方法、存储器控制器及芯片 | |
CN115237349A (zh) | 数据读写控制方法、控制装置、计算机存储介质和电子设备 | |
CN114416446A (zh) | 内存参数适配方法、装置、终端设备及存储介质 | |
KR102338872B1 (ko) | 다수의 클라이언트 데이터를 처리하는 저장 장치 및 방법 | |
CN111193648B (zh) | 降低can总线负载的数据发送方法、终端设备及存储介质 | |
US10832132B2 (en) | Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-readable storage medium and computer program product | |
US8397006B2 (en) | Arbitration scheme for accessing a shared resource | |
JP6194664B2 (ja) | シリアル伝送装置及びシリアル伝送システム | |
US20120243633A1 (en) | Data Encoding Based on Notch Filtering to Prevent Desense | |
CN110083502B (zh) | 用于实时地监测存储器模块的信息的方法和*** | |
US9240250B2 (en) | Apparatus and method to reduce power delivery noise for partial writes | |
US20240111424A1 (en) | Reducing latency in pseudo channel based memory systems | |
CN111382855B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN114564235A (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 |