CN116107950A - 数据处理装置、通信系统、芯片、板卡、电子设备 - Google Patents

数据处理装置、通信系统、芯片、板卡、电子设备 Download PDF

Info

Publication number
CN116107950A
CN116107950A CN202310184150.1A CN202310184150A CN116107950A CN 116107950 A CN116107950 A CN 116107950A CN 202310184150 A CN202310184150 A CN 202310184150A CN 116107950 A CN116107950 A CN 116107950A
Authority
CN
China
Prior art keywords
signal
delay
handshake
unit
data
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.)
Pending
Application number
CN202310184150.1A
Other languages
English (en)
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.)
Shanghai Power Tensors Intelligent Technology Co Ltd
Original Assignee
Shanghai Power Tensors Intelligent 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 Shanghai Power Tensors Intelligent Technology Co Ltd filed Critical Shanghai Power Tensors Intelligent Technology Co Ltd
Priority to CN202310184150.1A priority Critical patent/CN116107950A/zh
Publication of CN116107950A publication Critical patent/CN116107950A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4269Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a handshaking protocol, e.g. Centronics connection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7817Specially adapted for signal processing, e.g. Harvard architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3852Converter between protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Communication Control (AREA)

Abstract

一种数据处理装置,包括第一信号生成单元,延迟单元和第二信号生成单元;第一信号生成单元用于根据第一设备发送的第一信号以及第一设备与第二设备之间采用的握手协议生成第一握手信号,通过延迟单元对第一握手信号进行延迟处理后发送至第二信号生成单元,以使第二信号生成单元根据经延迟处理的第一握手信号以及所述握手协议生成所述第一信号后发送至第二设备;第二信号生成单元用于根据第二设备发送的第二信号以及所述握手协议生成第二握手信号,通过延迟单元对所述第二握手信号进行延迟处理后发送至第一信号生成单元,以使第一信号生成单元根据经延迟处理的第二握手信号以及所述握手协议生成所述第二信号发送至第一设备。

Description

数据处理装置、通信系统、芯片、板卡、电子设备
技术领域
本公开涉及芯片技术领域,尤其涉及数据处理装置、通信系统、芯片、板卡、电子设备。
背景技术
芯片架构中需要使用各种总线协议来实现主端(master)与从端(slave)两端的数据传输和通信。这类协议基本是采用握手机制(ready/valid)来实现数据之间的同步。在主从两端传输速率不匹配的情况下,需要通过一定的手段来缓解主从两端的传输速率差,从而提高数据传输效率。然而,相关技术中缓解主从两端传输速率差的方式通用性较差。
发明内容
第一方面,本公开实施例提供一种数据处理装置,所述数据处理装置包括:第一信号生成单元,延迟单元,以及第二信号生成单元;所述第一信号生成单元,用于根据第一设备发送的第一信号以及第一设备与第二设备之间采用的握手协议生成第一握手信号,通过所述延迟单元对所述第一握手信号进行延迟处理后发送至所述第二信号生成单元,以使所述第二信号生成单元根据经延迟处理的所述第一握手信号以及所述握手协议生成所述第一信号后发送至第二设备;所述第二信号生成单元,用于根据第二设备发送的第二信号以及所述握手协议生成第二握手信号,通过所述延迟单元对所述第二握手信号进行延迟处理后发送至所述第一信号生成单元,以使所述第一信号生成单元根据经延迟处理的所述第二握手信号以及所述握手协议生成所述第二信号发送至第一设备;所述第一信号和所述第二信号为所述握手协议中使用的握手信号。
第二方面,本公开实施例提供一种通信系统,所述通信系统包括:第一设备,第二设备,以及本公开任一实施例所述的数据处理装置。
第三方面,本公开实施例提供一种芯片,所述芯片包括本公开任一实施例所述的数据处理装置,或者本公开任一实施例所述的通信系统。
第四方面,本公开实施例提供一种板卡,所述板卡包括封装有至少一个如本公开任一实施例所述芯片的封装结构。
第五方面,本公开实施例提供一种电子设备,包括本公开任一实施例所述的数据处理装置,或者本公开任一实施例所述的芯片,或者本公开任一实施例所述的板卡。
本公开实施例采用第一信号生成单元和第二信号生成单元来将各种握手协议中采用的握手信号统一转换为显式第一握手信号和显式第二握手信号,再由延迟单元对显式第一握手信号和显式第二握手信号进行延迟处理,经延迟处理的第一握手信号和经延迟处理的第二握手信号再根据所采用的握手协议转换回相应的握手信号,以便第一设备和第二设备能够识别。这样,就实现了将协议转换与信号延迟进行解耦,使得延迟单元能够适用于使用各种类型的握手协议的应用场景,从而提高了延迟单元的通用性。
应当理解,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1是相关技术中握手机制的原理示意图。
图2是本公开实施例的数据处理装置的示意图。
图3A是单通道情况下延迟单元的工作原理示意图。
图3B是多通道情况下延迟单元的工作原理示意图。
图3C是多通道、多延迟子单元情况下延迟单元的工作原理示意图。
图4A和图4B分别是第一设备与第二设备之间进行数据传输的原理示意图。
图5是本公开另一实施例的数据处理装置的示意图。
图6是应用于AXI协议的数据处理装置的示意图。
图7是应用于APB协议的数据处理装置的示意图。
图8是本公开实施例的板卡的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好的理解本公开实施例中的技术方案,并使本公开实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本公开实施例中的技术方案作进一步详细的说明。
随着芯片,特别是系统级芯片(System on a Chip,SoC)、专用集成芯片(Application Specific Integrated Circuit,ASIC)等类型的芯片的不断发展,芯片架构中常常使用各种总线协议来实现主从(Master/Slave)两端的数据传输和通信。这类协议(如高级微控制器总线架构(Advanced Microcontroller Bus Architecture,AMBA)协议等)一般采用握手机制来实现数据之间的同步。握手机制采用两个握手信号,称为第一握手信号和第二握手信号。在一些实施例中,第一握手信号为valid信号,第二握手信号为ready信号。为了便于描述,下文均以第一握手信号为valid信号,第二握手信号为ready信号为例进行说明。参见图1,一般握手协议的原理如下:
(1)主端101写数据到从端102(写操作),此时第一握手信号可以称为写valid信号,第二握手信号可以称为写ready信号。
当从端102可以接收数据时,会发送写ready信号给主端101,告知主端101,从端102已经准备好接收数据写入;
主端101接受到写ready信号之后,将待写入的数据发送给从端102,并发送写valid信号,标志数据的有效区间。所以必须满足写ready信号和写valid信号同时有效时,数据才可以完成有效传输。
(2)从端102读出数据给到主端101(读操作),此时第一握手信号可以称为读valid信号,第二握手信号可以称为读ready信号。
当主端101可以接收数据时,会发送读ready信号给从端102,告知从端102,主端101已经准备好接收待读取的数据;
从端102接收到读ready信号之后,将待读取的数据发送给主端101,同时发送读valid信号,标志数据的有效区间。所以必须满足读ready信号和读valid信号同时有效时,数据才可以完成有效传输。
综上所述,无论是主端101向从端102发送数据,还是从端102向主端101发送数据,都必须满足握手机制(即ready/valid同时有效),才可以完成有效数据传输。
然而,在主从两端各自的传输带宽(Bandwidth)不匹配或者处理时延(Latency)不一致等情况下,主从两端的传输速率不匹配,会造成主从两端无法高效传输数据。以主端101写数据到从端102为例,在主端101传输速率超过从端102传输速率时,从端102可能无法及时接收主端101发送的数据。在主从两端的传输速率不匹配的情况下,通常采用反压等待机制(即通过一端拉低ready信号告知另一端当前无法进行数据传输,等待ready拉高后再进行传输)。然而,反压等待机制会导致传输效率降低,甚至会出现反压现象加剧或者死锁现象。
为了提高数据传输速率,相关技术中提出在主从两端之间插入延迟打拍模块(也叫pipeline)来缓解两端的传输速率差。然而,延迟单元202一般通用性较差,不同的握手协议需要采用不同的延迟单元202。
基于此,本公开实施例提供一种数据处理装置,参见图2,所述数据处理装置包括:
第一信号生成单元201,延迟单元202,以及第二信号生成单元203;
所述第一信号生成单元201,用于根据第一设备发送的第一信号以及第一设备与第二设备之间采用的握手协议生成第一握手信号,通过所述延迟单元202对所述第一握手信号进行延迟处理后发送至所述第二信号生成单元203,以使所述第二信号生成单元203根据经延迟处理的所述第一握手信号以及所述握手协议生成所述第一信号后发送至第二设备;
所述第二信号生成单元203,用于根据第二设备发送的第二信号以及所述握手协议生成第二握手信号,通过所述延迟单元202对所述第二握手信号进行延迟处理后发送至所述第一信号生成单元201,以使所述第一信号生成单元201根据经延迟处理的所述第二握手信号以及所述握手协议生成所述第二信号发送至第一设备;
所述第一信号和所述第二信号为所述握手协议中使用的握手信号。
本公开实施例中的第一设备和第二设备中的一者可以是主端101(即主设备),例如,主处理器;第一设备和第二设备中的另一者可以是从端102(即从设备),例如,存储单元。除了主处理器和存储单元以外,主端101和从端102还可以是其他类型的设备或元件,此处不再一一列举。
不同的第一设备和不同的第二设备之间可以使用不同的握手协议,例如,高级可扩展接口(Advanced extensible Interface,AXI)协议、高级外围总线(AdvancedPeripheral Bus,APB)协议、高级高性能总线(Advanced High-performance Bus,AHB)协议、高级系统总线(Advanced System Bus,ASB)协议、通用接口(Generic Interface,GIF)协议、高级跟踪总线(Advanced Trace Bus,ATB)协议、AXI一致扩展(AXI CoherencyExtensions,ACE)协议等。不同的握手协议所使用的第一信号和/或第二信号可能是不同的。例如,AXI协议直接使用ready信号和valid信号作为握手信号,即第一信号和第二信号分别为valid信号和ready信号本身,这种情况下,第一信号和第二信号也可以分别称为显式valid信号和显式ready信号;又例如,APB协议中则没有显式valid信号,而是通过对s_apb_psel信号和s_apb_penable信号这两个信号进行与运算,将与运算的结果作为valid信号,并将s_apb_pready信号作为ready信号。在握手协议中,通过一定的运算处理(例如,与、或、非、异或等逻辑运算)得到valid信号或ready信号的一个或多个其他信号称为隐式valid信号或隐式ready信号。在上述例子中,s_apb_psel信号和s_apb_penable信号这两个信号均为第一信号,且第一信号为隐式valid信号,而s_apb_pready信号为第二信号,且第二信号为显式ready信号。
本领域技术人员可以理解,上述实施例仅为示例性说明。在其他握手协议中,隐式valid信号的种类也可以是1种,或者两种以上。虽然上述例子中APB协议中的第一信号为隐式valid信号,第二信号为显式ready信号,但在其他握手协议中,可以第一信号为隐式valid信号,同时第二信号为隐式ready信号,或者第一信号为显式valid信号,同时第二信号为隐式ready信号。并且,第一信号和第二信号的种类均可以大于或等于1。为了便于描述,下面将第一信号和第二信号统称为握手信号。
隐式ready信号与显式ready信号的转换过程,以及隐式valid信号与显式valid信号的转换过程可以通过第一信号生成单元201和第二信号生成单元203实现,例如,在第一设备输出隐式valid信号之后,第一信号生成单元201可以将隐式valid信号转换为显式valid信号;又例如,在第二设备输出隐式ready信号之后,第二信号生成单元203可以将隐式ready信号转换为显式valid信号。当然,如果第一设备输出的为显式valid信号本身,则第一信号生成单元201可以直接向延迟单元202输出该显式valid信号;同理,如果第二设备输出的为显式ready信号本身,则第二信号生成单元203可以直接向延迟单元202输出该显式ready信号。
在相关技术中,由于不同的握手协议中采用的握手信号往往是不同的,因此,相关技术中需要根据握手协议中使用的握手信号的种类来采用不同的延迟单元202,以便对不同的握手信号进行延迟处理,从而导致延迟单元202的通用性较差。为了解决该问题,本公开实施例采用第一信号生成单元201和第二信号生成单元203来将各种握手协议中采用的握手信号统一转换为显式valid信号和显式ready信号,再由延迟单元202对显式valid信号和显式ready信号进行延迟处理,经延迟处理的valid信号和经延迟处理的ready信号再根据所采用的握手协议转换回相应的握手信号,以便第一设备和第二设备能够识别。这样,就实现了将协议转换与信号延迟进行解耦,使得延迟单元202能够适用于使用各种类型的握手协议的应用场景,从而提高了延迟单元202的通用性。
其中,在不同的应用场景下,延迟单元202可以将接收到的ready信号和valid信号延迟不同的延迟量,所述延迟量可以大于或等于一个时钟周期。可选地,延迟量可以与主从两端的数据传输速率之间的差异正相关,即,主从两端的数据传输速率之间的差异越大,延迟量越大;主从两端的数据传输速率之间的差异越小,延迟量越小。例如,假设主端101写数据的数据传输速率为64GBps,从端102接收数据的数据传输速率为32GBps,且时钟频率为1GHz,则可以将延迟量设置为20个时钟周期。又例如,假设主端101写数据的数据传输速率为64GBps,从端102接收数据的数据传输速率为16GBps,且时钟频率为1GHz,则可以将延迟量设置为40个时钟周期。或者,可选地,延迟量可以与主从两端之间的时序违规程度正相关。即,时序违规程度越大,延迟量越大;反之,时序违规程度越小,延迟量越小。其中,时序违规程度用于表征信号当前的时序与设定的时序之间的差异。
一些实施例的延迟单元202的工作原理如图3A所示,其中,第一信号生成单元201输出的valid信号经延迟单元202处理后可以延迟n个时钟周期(即n拍)后发送到第二信号生成单元203;第二信号生成单元203输出的ready信号可以延迟n个时钟周期(即n拍)后发送到第一信号生成单元201。此外,第一设备与第二设备之间传输的数据(图中以第一设备向第二设备发送数据为例)也可以从一端经延迟模块延迟n个时钟周期(即n拍)后输出到另一端。
在一些实施例中,延迟单元202包括级联的多个延迟子单元2021,每个延迟子单元2021用于将valid信号和ready信号延迟一个时钟周期(即一拍)后输出。由于不同的应用场景下ready信号和valid信号的延迟量可能不同,因此,在不同的应用场景下,延迟单元202包括的延迟子单元2021的数量也可以不同。通过采用n(n为正整数)个级联的延迟子单元2021,延迟单元202可以将接收到的valid信号和ready信号分别延迟n个时钟周期(即n拍)。
在一些实施例中,所述数据处理装置还包括配置单元,用于配置所述多个延迟子单元2021中的每个延迟子单元2021的工作状态,所述工作状态包括启用状态和非启用状态。例如,所述配置单元可以是配置寄存器,所述配置寄存器可以存储多个配置数据位,每个配置数据位对应一个延迟子单元2021。通过设置各个配置数据位,可以对各个延迟子单元2021的工作状态进行配置。或者,所述配置寄存器可以用于存储处于启用状态或处于非启用状态的延迟子单元2021的数量信息,根据该数量信息,以配置寄存器中存储处于启用状态的延迟子单元2021的数量信息为例,可以根据该数量信息,将对应数量个延迟子单元2021的工作状态设置为启用状态。其中,设置为启用状态的延迟子单元2021可以是所述多个延迟子单元2021中的任意的延迟子单元2021,只要其数量与所述数量信息相匹配即可。
在一个延迟子单元2021处于启用状态的情况下,所述延迟子单元2021可以对接收到的ready信号和valid信号进行延迟处理后输出;在一个延迟子单元2021处于非启用状态的情况下,所述延迟子单元2021可以将接收到的ready信号和valid信号直接输出。通过这种方式,可以在不同的应用场景下动态地配置延迟单元202对valid信号和ready信号的延迟量,从而使一个延迟子单元2021适用于多种不同的应用场景。例如,假设延迟子单元2021的总数为N,在第一应用场景下,可以通过配置单元将其中的m(m≤N)个延迟子单元2021配置为启用状态,从而将ready信号和valid信号延迟m个时钟周期;在第二应用场景下,可以通过配置单元将其中的k(k≤N,且k≠m)个延迟子单元2021配置为启用状态,从而将ready信号和valid信号延迟k个时钟周期。
在实际应用中,也可以通过仿真的方式,预先确定各种应用场景下所需的延迟量,并直接在对应的应用场景下设置对应数量个延迟子单元2021,从而使每种延迟单元202专用于对应的应用场景。
在一些实施例中,所述第一设备与所述第二设备之间包括一个或多个数据传输通道(简称通道)。例如,所述第一设备与所述第二设备之间包括一个或多个读通道,或者包括一个或多个写通道,或者包括一个或多个读通道以及一个或多个写通道。
在所述第一设备与所述第二设备之间包括多个数据传输通道的基础上,所述延迟单元202的数量可以大于1,每个数据传输通道对应一个延迟单元202;每个数据传输通道对应的延迟单元202可以对所述数据传输通道上的所述valid信号和所述ready信号延迟一个时钟周期后输出。例如,参见图3B,假设通道数量为2,两个通道分别记为通道1和通道2,则延迟单元202的数量也为2,两个延迟单元202分别记为通道1延迟单元202和通道2延迟单元202。这两个延迟单元202中包括的延迟子单元2021的数量均可以大于或等于1,且两个延迟单元202包括的延迟子单元2021的数量可以相同,也可以不同。第一设备的每个通道都可以发送第一信号,通道1发送的第一信号和通道2发送的第一信号分别记为通道1第一信号和通道2第一信号,第二设备的每个通道都可以发送第二信号,通道1发送的第二信号和通道2发送的第二信号分别记为通道1第二信号和通道2第二信号。
在此基础上,第一信号生成单元201可以根据通道1第一信号生成通道1valid信号并输出至通道1延迟单元202,通道1延迟单元202可以对通道1valid信号进行延迟处理后输出至第二信号生成单元203,第二信号生成单元203可以根据经延迟处理的通道1valid信号生成通道1第一信号并输出至第二设备。类似地,第二信号生成单元203可以根据通道1第二信号生成通道1ready信号并输出至通道1延迟单元202,通道1延迟单元202可以对通道1ready信号进行延迟处理后输出至第一信号生成单元201,第一信号生成单元201可以根据经延迟处理的通道1ready信号生成通道1第二信号并输出至第二设备。通道2上的处理方式与上述通道1上的处理方式类似,此处不再赘述。
上述实施例列举了第一设备与第二设备之间的通道数量为2的情形,本领域技术人员可以理解,以上仅为示例性说明,在实际应用中,通道数量也可以大于2。
可选地,第一信号生成单元201和第二信号生成单元203也可以包括多个通道,第一信号生成单元201的每个通道对应于第一设备与第二设备之间的一个通道,且第二信号生成单元203的每个通道对应于第一设备与第二设备之间的一个通道。这样,第一信号生成单元201的每个通道可以获取第一设备的对应通道发送的第一信号,并将接收到的第二信号发送到第一设备的对应通道;第二信号生成单元203的每个通道可以获取第二设备的对应通道发送的第二信号,并将接收到的第一信号发送到第二设备的对应通道。
或者,可选地,第一信号生成单元201和第二信号生成单元203可以仅包括一个通道,第一设备与第二设备之间的各个通道可以通过时分复用等方式与第一信号生成单元201和第二信号生成单元203进行信号传输。
在一些实施例中,延迟单元202除了对valid信号和ready信号进行延迟处理之外,还可以对第一设备与第二设备之间传输的待处理数据(简称数据)进行延迟处理。第一设备与第二设备之间的每个通道都可以传输数据,两个通道上传输的数据分别记为通道1数据和通道2数据。一个通道上待传输的数据可以在该通道的第一信号和第二信号都有效的情况下发送。以第一信号和第二信号分别为valid信号和ready信号本身为例,valid信号和ready信号可以均为高电平有效。因此,在通道1第一信号和通道1第二信号均为高电平的情况下,第一设备可以向通道1延迟单元202发送通道1数据,通道1延迟单元202对通道1数据进行延迟处理后,向第二设备发送经延迟处理的通道1数据。通道2数据的发送方式类似,此处不再赘述。
图3C示出了通道数量和延迟子单元2021数量均大于1的情况,图中以第一设备为主端101,第二设备为从端102为例进行说明,为了简洁,第一信号生成单元201和第二信号生成单元203未示出。各通道的第1个延迟子单元2021记为pipe 1,各通道的第2个延迟子单元2021记为pipe 2,以此类推,通道数量记为M(M为正整数)。虽然图中各个通道的延迟子单元2021的数量相同,但在实际应用中,也可以将至少两个通道的延迟子单元2021的数量配置为不同数量。同一个通道的各个延迟子单元2021属于同一延迟单元202。
每个延迟子单元2021可以实现多个通道的数据延迟1拍的功能,通过插入多级延迟子单元2021,可以实现数据延迟周期数大于1的数据处理装置。因此可以轻松地扩展得到实现M个通道n拍延迟的数据处理装置。
通过配置延迟量,可以灵活地调整主从两端的速率不匹配问题。同时当主从两端的关键路径出现时序违规时,也可以通过调整延迟量来优化时序。当时序违规程度较严重时,可以增大延迟量;反之如果时序违规程度轻微时,可以减小延迟量。其中,时序违规程度可以基于主从两端的信号所经过的逻辑处理(例如,与、或、非、异或等)的总次数和/或时钟频率等因素确定。
在一些实施例中,延迟单元202可以将接收到的数据写入数据寄存器204,并在预设的延迟时间之后,将所述数据寄存器204中的数据读出。在延迟单元202包括N个延迟子单元2021的情况下,每个延迟子单元2021可以对数据延迟一个时钟周期。参见图4A,多个延迟子单元2021可以共用数据寄存器204。在第一设备向第二设备写数据的过程中,第1个延迟子单元2021在接收到第一设备发送的数据之后,可以将数据写入数据寄存器204,并在延迟一拍后使能第2个延迟子单元2021,第2个延迟子单元2021可以延迟一拍后使能第3个延迟子单元2021,以此类推,第N个延迟子单元2021可以延迟一拍后从数据寄存器204中读出数据,并发送到第二设备。在第一设备从第二设备读数据的过程中,第N个延迟子单元2021在接收到第二设备发送的数据之后,可以将数据写入数据寄存器204,并在延迟一拍后使能第N-1个延迟子单元2021,第N-1个延迟子单元2021可以延迟一拍后使能第N-2个延迟子单元2021,以此类推,第1个延迟子单元2021可以延迟一拍后从数据寄存器204中读出数据,并发送到第一设备。
参见图4B,也可以每个延迟子单元2021对应一个或多个数据寄存器204;每个延迟子单元2021都可以将接收到的数据输出到对应的数据寄存器204进行存储,并在预设的延迟时间之后,将所述对应的数据寄存器204中存储的数据读出。数据寄存器204的总数与延迟子单元2021的数量相匹配,例如,各个延迟子单元2021对应的数据寄存器204的数量可以相同,假设每个延迟子单元2021对应的数据寄存器204的数量为r,则N个延迟子单元2021对应的数据寄存器204的总数为N*r。每个延迟子单元2021在接收到数据之后,可以将接收到的数据发送到本延迟子单元2021对应的数据寄存器204进行存储,并在延迟一拍之后,将本延迟子单元2021对应的数据寄存器204读出的数据发送到下一个延迟子单元2021并使能下一个延迟子单元2021,第1个延迟子单元2021从对应的数据寄存器204中读出的数据可以发送到第一设备,第N个延迟子单元2021从对应的数据寄存器204中读出的数据可以发送到第二设备。
在相关技术中,通过在主从两端之间插入buffer(一般是FIFO)来平衡主从两端的数据传输速率。然而,buffer会占用芯片的内存资源,同时buffer的读写操作以及空满状态(Empty/Full)的控制都比较复杂,适用性和易用性较差。本公开实施例通过数据寄存器204来对数据进行存储,从而减少了对芯片内存资源的占用,并且,寄存器的数据读写过程比较简单,无需复杂的控制逻辑,提高了数据处理装置的适用性和易用性。
在一些实施例中,所述第一信号生成单元201基于所述第一设备和所述第二设备之间采用的目标握手协议,从多个候选第一信号生成单元中选取,每个候选第一信号生成单元对应于一种握手协议;所述第二信号生成单元203基于所述第一设备和所述第二设备之间采用的目标握手协议,从多个候选第二信号生成单元中选取,每个候选第二信号生成单元对应于一种握手协议。
可选地,可以预先确定数据处理装置的应用场景,并根据该应用场景下使用的目标握手协议,从多个候选第一信号生成单元中选取第一信号生成单元201,并从多个候选第二信号生成单元中选取第二信号生成单元203之后,将第一信号生成单元201和第二信号生成单元203应用到数据处理装置上。这样,可以为不同的应用场景选择专用的数据处理装置,节约成本。在不同的应用场景下,可以更换不同的第一信号生成单元201和第二信号生成单元203,从而对应用场景进行适配。
或者,也可以在数据处理装置中同时设置多个候选第一信号生成单元,多个候选第二信号生成单元,第一选择单元205,以及第二选择单元206。其中,第一选择单元205用于基于所述目标握手协议,从所述多个候选第一信号生成单元中选择所述第一信号生成单元201;第二选择单元206用于基于所述目标握手协议,从所述多个候选第二信号生成单元中选择所述第二信号生成单元203。这样,可以使同一个数据处理装置同时适用于多种不同的应用场景,提高数据处理装置的通用性。如图5所示,数据处理装置包括采用APB协议的候选第一信号生成单元、采用AXI协议的候选第一信号生成单元和采用ASB协议的候选第一信号生成单元,则该数据处理装置可以适用于采用APB协议、采用AXI协议和采用ASB协议的三种不同的应用场景。假设当前应用场景下采样的握手协议为APB协议,则第一选择单元205可以选通采用APB协议的候选第一信号生成单元作为第一信号生成单元201,同时第二选择单元206可以选通采用APB协议的候选第二信号生成单元作为第二信号生成单元203。
图6和图7分别示出了采用AXI协议的应用场景和采用APB协议的应用场景下数据处理装置的示意图。图中以第一设备为主端101,第二设备为从端102为例进行说明,为了简洁,第一信号生成单元201和第二信号生成单元203未示出。
如图6所示,AXI协议有5条独立的数据交换通道,即AW通道、W通道、B通道、AR通道和R通道,每条通道都有valid信号、ready信号和待传输的数据。其中,id和data均为各个通道上传输的数据,id和data的前缀“AW”、“W”、“B”、“AR”和“R”分别表示数据所在的通道,后缀“_m”表示主端101发出的数据或者主端101接收到的数据,后缀“_s”表示从端102发出的数据或者从端102接收到的数据。Valid和ready分别表示valid信号和ready信号,在AXI协议中使用的是显式valid信号和显式ready信号。valid信号和ready信号的前缀和后缀的含义可参见id和data的前缀和后缀的含义,带中括号“[v]”(0≤v≤i)的数据或信号表示经对应通道的第v个延迟子单元2021处理后输出的数据或信号。
如图7所示,pwdata_m和pwdata_s分别表示主端101输出的数据和从端102接收到的数据,pvalid_m和pvalid_s分别表示输入到数据处理装置的valid信号和数据处理装置输出的valid信号,pready_m和pready_s分别表示输入到数据处理装置的ready信号和数据处理装置输出的ready信号,带中括号“[v]”(0≤v≤i)的数据或信号表示经对应通道的第v个延迟子单元2021处理后输出的数据或信号。APB协议中不包括显式的valid信号,pvalid_m信号可以通过第一信号生成单元201对隐式valid信号进行逻辑运算得到。
本公开提出的数据处理装置可以有效解决各类握手协议中主从两端速率不匹配问题,特别适用于人工智能(Artificial Intelligence,AI)、图形处理单元(GraphicProcessing Unit,GPU)等高速并行计算场景。本公开实施例具有以下优点:
(1)可以灵活地设置通道数和延迟周期数。在主从两端的数据传输速率差较小或者时序违规较小时,可以给延迟单元202设置较小的延迟周期数;而在主从两端的数据传输速率差较大或者时序违规较大时,可以设置较大的延迟周期数。
(2)具有良好的通用性、兼容性和扩展性,可以适用于各类握手协议。当需要支持新的握手协议时,也可以很容易地进行扩展。
(3)本公开实施例可以灵活地优化关键路径上的时序违规问题,同时可以灵活地进行模块复用,不用额外定制,对芯片实现较为友好。
(4)本公开实施例中使用寄存器来实现数据延迟,节约了芯片的内存资源,且寄存器的控制方式简单灵活。
本公开实施例还提供一种通信系统,所述通信系统包括:第一设备,第二设备,以及本公开任一实施例所述的数据处理装置。
本公开实施例还提供一种芯片,所述芯片包括本公开任一实施例所述的数据处理装置,或者本公开任一实施例所述的通信系统。可选地,所述芯片为人工智能(ArtificialIntelligence,AI)芯片。
本公开实施例还提供一种板卡,其包括了封装有至少一个上述芯片的封装结构。参阅图8,其提供了一种示例性的板卡,上述板卡包括上述芯片801,还可以包括其他的部件,包括但不限于:存储器802、接口器件803和处理器804。
所述存储器802与所述芯片封装结构内的芯片801通过总线连接,用于存储数据。所述存储器802可以包括多组存储单元802a,例如:DDR SDRAM(Double Data Rate SDRAM,双倍速率同步动态随机存储器)等。每一组所述存储单元802a与所述芯片801通过总线连接。
所述接口器件803与所述芯片封装结构内的芯片801电连接。所述接口器件803用于实现所述芯片801与外部设备D(例如:终端、服务器、摄像头等)之间的数据传输。在一个实施例中,所述接口器件803可以是PCIE接口,还可以是网络接口、或者其他的接口,本公开不做限制。
本公开实施例还提供一种电子设备,包括本公开任一实施例所述的数据处理装置,或者本公开任一实施例所述的芯片,或者本公开任一实施例所述的板卡。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机装置或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (13)

1.一种数据处理装置,其特征在于,所述数据处理装置包括:
第一信号生成单元,延迟单元,以及第二信号生成单元;
所述第一信号生成单元,用于根据第一设备发送的第一信号以及第一设备与第二设备之间采用的握手协议生成第一握手信号,通过所述延迟单元对所述第一握手信号进行延迟处理后发送至所述第二信号生成单元,以使所述第二信号生成单元根据经延迟处理的所述第一握手信号以及所述握手协议生成所述第一信号后发送至第二设备;
所述第二信号生成单元,用于根据第二设备发送的第二信号以及所述握手协议生成第二握手信号,通过所述延迟单元对所述第二握手信号进行延迟处理后发送至所述第一信号生成单元,以使所述第一信号生成单元根据经延迟处理的所述第二握手信号以及所述握手协议生成所述第二信号发送至第一设备;
所述第一信号和所述第二信号为所述握手协议中使用的握手信号。
2.根据权利要求1所述的数据处理装置,其特征在于,所述延迟单元,还用于:
获取所述第一设备和所述第二设备中的一者发送的待处理数据,对所述待处理数据进行延迟处理后发送至所述第一设备和所述第二设备中的另一者。
3.根据权利要求1或2所述的数据处理装置,其特征在于,所述延迟单元包括级联的多个延迟子单元,每个延迟子单元用于将所述第一握手信号和所述第二握手信号延迟一个时钟周期后输出。
4.根据权利要求1至3任一项所述的数据处理装置,其特征在于,所述第一设备与所述第二设备之间包括多个数据传输通道,所述延迟单元的数量大于1,每个数据传输通道对应一个延迟单元;
所述每个数据传输通道对应的延迟单元,用于对所述数据传输通道上的所述第一握手信号和所述第二握手信号延迟一个时钟周期后输出。
5.根据权利要求1至4任一项所述的数据处理装置,其特征在于,所述延迟单元,用于:
将接收到的数据输出到数据寄存器进行存储,并在预设的延迟时间之后,将所述数据寄存器中存储的数据读出。
6.根据权利要求5所述的数据处理装置,其特征在于,在所述延迟单元包括多个延迟子单元的情况下,每个延迟子单元对应一个或多个数据寄存器;每个延迟子单元,用于:
将接收到的数据输出到对应的数据寄存器进行存储,并在预设的延迟时间之后,将所述对应的数据寄存器中存储的数据读出。
7.根据权利要求1至6任一项所述的数据处理装置,其特征在于,
所述第一信号生成单元基于所述第一设备和所述第二设备之间采用的目标握手协议,从多个候选第一信号生成单元中选取,每个候选第一信号生成单元对应于一种握手协议;
所述第二信号生成单元基于所述第一设备和所述第二设备之间采用的目标握手协议,从多个候选第二信号生成单元中选取,每个候选第二信号生成单元对应于一种握手协议。
8.根据权利要求7所述的数据处理装置,其特征在于,所述数据处理装置包括:
所述多个候选第一信号生成单元,所述多个候选第二信号生成单元,第一选择单元,以及第二选择单元;
所述第一选择单元,用于基于所述目标握手协议,从所述多个候选第一信号生成单元中选择所述第一信号生成单元;
所述第二选择单元,用于基于所述目标握手协议,从所述多个候选第二信号生成单元中选择所述第二信号生成单元。
9.根据权利要求1至8任一项所述的数据处理装置,其特征在于,所述延迟单元包括多个延迟子单元;所述数据处理装置还包括:
配置单元,用于配置所述多个延迟子单元中的每个延迟子单元的工作状态,所述工作状态包括启用状态和非启用状态;
在一个延迟子单元处于启用状态的情况下,所述延迟子单元对接收到的第二握手信号和第一握手信号进行延迟处理后输出;
在一个延迟子单元处于非启用状态的情况下,所述延迟子单元将接收到的第二握手信号和第一握手信号直接输出。
10.一种通信系统,其特征在于,所述通信系统包括:
第一设备,
第二设备,以及
权利要求1至8任一项所述的数据处理装置。
11.一种芯片,其特征在于,所述芯片包括权利要求1至9任一项所述的数据处理装置,或者包括权利要求10所述的通信系统。
12.一种板卡,其特征在于,所述板卡包括封装有至少一个权利要求11所述芯片的封装结构。
13.一种电子设备,其特征在于,包括权利要求1至9任一项所述的数据处理装置,或者权利要求10所述的通信系统,或者权利要求11所述的芯片,或者权利要求12所述的板卡。
CN202310184150.1A 2023-02-28 2023-02-28 数据处理装置、通信系统、芯片、板卡、电子设备 Pending CN116107950A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310184150.1A CN116107950A (zh) 2023-02-28 2023-02-28 数据处理装置、通信系统、芯片、板卡、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310184150.1A CN116107950A (zh) 2023-02-28 2023-02-28 数据处理装置、通信系统、芯片、板卡、电子设备

Publications (1)

Publication Number Publication Date
CN116107950A true CN116107950A (zh) 2023-05-12

Family

ID=86262299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310184150.1A Pending CN116107950A (zh) 2023-02-28 2023-02-28 数据处理装置、通信系统、芯片、板卡、电子设备

Country Status (1)

Country Link
CN (1) CN116107950A (zh)

Similar Documents

Publication Publication Date Title
JP3856696B2 (ja) 2倍データ速度同期式動的ランダムアクセスメモリのための構成可能同期装置
US6185520B1 (en) Method and system for bus switching data transfers
US20100199010A1 (en) Device having priority upgrade mechanism capabilities and a method for updating priorities
US8520464B2 (en) Interface circuit and semiconductor device incorporating same
US20060092944A1 (en) Methods and apparatuses to manage bandwidth mismatches between a sending device and a receiving device
JP2009527829A (ja) 複数のプロセッサコア用の共通アナログインターフェイス
CN112306924A (zh) 一种数据交互方法、装置、系统及可读存储介质
WO2011065354A1 (ja) バスモニタ回路及びバスモニタ方法
CN116795172B (zh) 一种用于高速数字传输的跨时钟域处理方法、介质及装置
CN112988647A (zh) 一种TileLink总线到AXI4总线转换系统及方法
KR100476895B1 (ko) 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법
CN111313869B (zh) 一种千兆以太网收发器的时钟切换电路
US8510485B2 (en) Low power digital interface
US6640277B1 (en) Input staging logic for latching source synchronous data
CN115220528B (zh) 时钟获得方法、装置、芯片、电子设备及存储介质
US7529960B2 (en) Apparatus, system and method for generating self-generated strobe signal for peripheral device
CN116107950A (zh) 数据处理装置、通信系统、芯片、板卡、电子设备
CN113704151B (zh) 基于TileLink总线的芯片互联架构及互联方法
US11169947B2 (en) Data transmission system capable of transmitting a great amount of data
CN115834602A (zh) 一种异步数据流通信交互系统
US7353297B2 (en) Handling of write transactions in a data processing apparatus
US7899955B2 (en) Asynchronous data buffer
CN114003543B (zh) 一种高速串行总线时钟补偿方法及系统
EP0988603B1 (en) Method and arrangement for connecting processor to asic
US20230101949A1 (en) Device and method for shared memory processing and non-transitory computer storage medium

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