[go: up one dir, main page]

CN114647603B - 数据传输控制装置 - Google Patents

数据传输控制装置 Download PDF

Info

Publication number
CN114647603B
CN114647603B CN202210359819.1A CN202210359819A CN114647603B CN 114647603 B CN114647603 B CN 114647603B CN 202210359819 A CN202210359819 A CN 202210359819A CN 114647603 B CN114647603 B CN 114647603B
Authority
CN
China
Prior art keywords
data
chip
memory
control circuit
control device
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
Application number
CN202210359819.1A
Other languages
English (en)
Other versions
CN114647603A (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.)
Xingchen Technology Co ltd
Original Assignee
Xingchen 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 Xingchen Technology Co ltd filed Critical Xingchen Technology Co ltd
Priority to CN202210359819.1A priority Critical patent/CN114647603B/zh
Priority to CN202311082672.7A priority patent/CN117112463A/zh
Publication of CN114647603A publication Critical patent/CN114647603A/zh
Priority to US18/122,917 priority patent/US12248414B2/en
Application granted granted Critical
Publication of CN114647603B publication Critical patent/CN114647603B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0026PCI express

Landscapes

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

Abstract

本发明公开了一种数据传输控制装置,设置于包括快速周边组件互连界面的第一芯片中,并且耦接有包括区块的存储器。该数据传输控制装置包括:控制电路、快速周边组件互连界面控制器以及地址监视电路,快速周边组件互连界面控制器用于接收数据,地址监视电路用于当该数据写入区块时发出传输中断至控制电路。以此,在减小芯片开发成本的前提下,能够降低多个芯片之间的通信延迟,以提高多个芯片之间进行数据传输的效率。

Description

数据传输控制装置
技术领域
本发明涉及芯片相关技术领域,尤其是关于可以通过快速周边组件互连(Peripheral Component Interconnect Express,PCI-Express,以下简称PCIe)界面级联(cascade)的第一芯片及其数据传输控制装置。
背景技术
请参阅图1,图1为现有技术中多个芯片通过PCIe界面级联的示意图。芯片102通过PCIe交换器(PCIe switch)110与芯片104、芯片106及芯片108连接。多个芯片级联可以提高整体的性能。若只有两个芯片级联(例如芯片102与芯片104),则不需要PCIe交换器110。
当多个芯片级联时,其中一个芯片工作在根复合体(Root Complex,RC)模式(例如芯片102,以下简称为RC端),其他芯片工作在端点(Endpoint,EP)模式(例如芯片104、106及108,以下简称为EP端)。RC端与EP端之间通过PCIe总线实现基于虚拟队列(virtqueue)的远程消息传递总线(Remote Processor Messaging,RPMsg)进行通信。
在基于虚拟队列的远程消息传递总线进行通信时,RC端通过在EP端的特定存储器地址写入特定内容的方式以通知EP端虚拟队列中有待读取的数据或可用的缓冲器,而EP端的控制电路(例如,中央处理器、微处理器、微控制器、微处理单元、数位讯号处理器(digital signal processor,DSP)等具有程序执行能力的电路)以轮询(polling)的方式来确认该特定存储器地址是否被写入该特定内容。然而,现有技术中的轮询速度不够快,造成RC端与EP端之间的通信延迟。
再者,由于RC端与EP端的共享存储器(shared memory)是由RC端提供的,所以,当一个RC端同时与多个EP端连接时(如图1的例子),RC端必须提供更多的共享存储器,造成RC端的成本增加。
发明内容
鉴于先前技术之不足,本发明的目的在于提供一种可以通过PCIe界面传送及接收数据的芯片及其数据传输控制装置,以在降低成本的前提下提高多个芯片之间的通信效率。
本发明的第一个实施例提供了一种数据传输控制装置,设置于包括快速周边组件互连界面的第一芯片中,且耦接有包括区块的存储器。数据传输控制装置包括:控制电路、快速周边组件互连界面控制器以及地址监视电路。快速周边组件互连界面控制器用于接收数据。地址监视电路用于当数据写入区块时发出传输中断至控制电路。
本发明的第二个实施例提供了一种数据传输控制装置,设置于包括快速周边组件互连界面的第一芯片中,且耦接有存储器。数据传输控制装置包括:快速周边组件互连界面控制器以及控制电路。快速周边组件互连界面控制器用于从第二芯片接收第一数据,并将第一数据写入存储器,及用于接收具有目标地址的第二数据,并根据目标地址将第二数据写入存储器。控制电路用于在第二数据写入存储器之后,从存储器读取第一数据。其中,第一芯片处于端点模式,第二芯片处于根复合体模式,且第一数据早于第二数据写入存储器。
本发明的第三个实施例提供了一种数据传输控制装置,设置于包括快速周边组件互连界面的第一芯片中,并且耦接有存储器。数据传输控制装置包括:快速周边组件互连界面控制器以及控制电路。控制电路用于控制快速周边组件互连界面控制器基于虚拟化应用与第二芯片建立通信。第一芯片处于端点模式,而第二芯片处于复合体模式,且存储器储存有虚拟化应用的虚拟队列数据。
本发明实施例提供的数据传输控制装置,能够通过数据传输控制装置控制数据的接收、传输、写入及中断,以提高多个芯片之间的通信效率,此次提高了多个芯片之间进行数据传输的效率,且避免了投入较多的开发成本改进芯片,即本发明相较于现有技术可以节省成本,且能够降低通信延迟,以提高数据传输的效率。
附图说明
有关本发明的特征、实作与功效,兹配合图式作实施例详细说明如下:
【图式简单说明】
图1为现有技术中多个芯片通过PCIe界面级联的示意图;
图2为本发明实施例提供的第一芯片的第一种功能方块图;
图3为本申请实施例提供的地址监视电路的功能方块图;
图4为本发明实施例提供的第一芯片的第二种功能方块图;
图5为本发明实施例提供的第一芯片的第三种功能方块图;
图6为本发明实施例提供的RC端传送数据给EP端的流程图;
图7为本发明实施例提供的EP端传送数据给RC端的流程图;以及
图8为本发明实施例提供的第一芯片的第四种功能方块图。
具体实施方式
以下说明内容之技术用语系参照本技术领域之习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语之解释系以本说明书之说明或定义为准。
本发明公开的内容包括可以通过PCIe界面传送及接收数据的第一芯片及其数据传输控制装置。由于本发明的数据传输控制装置所包括的部分元件单独而言可能为已知元件,因此在不影响该装置发明充分揭露及可实施性的前提下,以下说明对于已知元件的细节将予以省略。
图2为本发明实施例提供的第一芯片的第一种功能方块图。第一芯片200包括数据传输控制装置205及存储器240。数据传输控制装置205包括PCIe界面控制器210、控制电路220、地址监视电路230。存储器240包括控制区块245,控制区块245即为存储器240的预设地址CB_addr。第一芯片200通过PCIe界面控制器210传送及/或接收数据。在一些实施例中,存储器240设置于另一芯片中,不包括在第一芯片200中。
在一些实施例中,当第一芯片200通过PCIe界面控制器210及PCIe总线与第二芯片(图未示)连接时,第一芯片200处于端点模式(即,第一芯片200为EP端),第二芯片处于根复合体模式(即,第二芯片为RC端),而且由第二芯片提供PCIe级联所需的共享存储器。
PCIe界面控制器210包括物理层电路211、传送应用相依模块212(transmitapplication dependent module,简称为XADM)、接收应用相依模块213(receiveapplication dependent module,简称为RADM)、地址转译单元214(address translationunit,简称为ATU)、地址转译单元215、地址转译单元216、中断请求(Message SignaledInterrupt,MSI)产生电路217以及暂存器电路218。暂存器电路218包括基地址暂存器(BaseAddress Register,BAR)219及多个暂存器。
地址转译单元214及地址转译单元215是用于将控制电路220域的地址映射成PCIe域的总线地址,而地址转译单元216是用于将PCIe域的总线地址映射成控制电路220域的地址,其中,控制电路220域的地址对应于存储器240中的特定地址。控制电路220通过地址转译单元214、地址转译单元215及地址转译单元216以将数据写入共享存储器(等效于将数据传送给第二芯片),以及从共享存储器读取数据(等效于从第二芯片接收数据)。
当第一芯片200向第二芯片传送EP端数据D_EP时,EP端数据D_EP由传送应用相依模块212封装(包括但不限于加上标头(header))成交换层信息包(Transaction LayerPacket,TLP)的格式后,经物理层电路211及PCIe总线传送给第二芯片。在传送EP端数据D_EP之后(即,EP端数据D_EP被写入共享存储器之后),控制电路220控制中断请求产生电路217经由地址转译单元214、传送应用相依模块212及物理层电路211发送中断请求MSI_intr给第二芯片,以通知第二芯片接收EP端数据D_EP(即,从共享存储器读取数据)。中断请求是PCIe标准所提供的中断触发方式(一般称为「MSI-X」)。
当第二芯片传送RC端数据D_RC给第一芯片200时,第二芯片先将RC端数据D_RC写入共享存储器,第二芯片根据写入RC端数据D_RC的操作生成消息NTF,第二芯片再将该消息NTF通过接收应用相依模块213和地址转译单元216写入控制区块245,以通知第一芯片200有待接收的数据(即,RC端数据D_RC)。消息NTF的内容包括NTF_data(例如字符串「NOTIFY」)及目标地址NTF_addr,消息数据NTF_data会被写入目标地址NTF_addr所对应的存储器空间。地址转译单元216用于将目标地址NTF_addr转译成对应存储器240的地址。
数据(RC端数据D_RC、消息NTF或其他数据)经由PCIe总线传入PCIe界面控制器210之后,接收应用相依模块213先对数据解封装(包括但不限于移除标头),然后根据数据的类型(例如,依据某个数据段的内容)来(1)将数据通过地址转译单元216写入存储器240以供控制电路220读取;(2)根据基地址暂存器219的内容决定是否将数据写入控制区块245;或是(3)修改暂存器电路218的内容。对RC端数据D_RC而言,接收应用相依模块213进行第(1)项操作。对消息NTF而言,接收应用相依模块213进行第(2)项操作(将于下一段详述)。对其他数据(例如,修改暂存器电路218之命令),接收应用相依模块213执行第(3)项操作。
对消息NTF而言,因为目标地址NTF_addr处于基地址暂存器219所记录的地址范围内,所以接收应用相依模块213将消息NTF传送给地址转译单元216,通过地址转译单元216转译目标地址NTF_addr后,消息数据NTF_data被写入存储器240(更明确地说,写入控制区块245)。地址监视电路230监视控制区块245是否被写入数据来判断第一芯片200是否收到消息NTF。在一些实施例中(仅用于示例而非限定本发明),地址监视电路230通过对比目标地址NTF_addr是否等于控制区块245的地址来判断第一芯片200是否收到消息NTF。如果等于,则地址监视电路230发送传输中断EP_intr给控制电路220。控制电路220响应于该传输中断EP_intr,通过地址转译单元215、传送应用相依模块212及物理层电路211从第二芯片的共享存储器中读取RC端数据D_RC(即,等效于接收RC端数据D_RC)。
传送应用相依模块212、接收应用相依模块213、地址转译单元214、地址转译单元215、地址转译单元216及中断请求产生电路217的操作原理为本领域技术人员所熟知的内容,故不再赘述。
图3为本申请实施例提供的地址监视电路230的功能方块图。地址监视电路230包括比较电路232及中断控制器234。比较电路232用于比较目标地址NTF_addr与控制区块245的预设地址CB_addr(可以由控制电路220提供)。当目标地址NTF_addr等于预设地址CB_addr时,比较电路232控制中断控制器234发出传输中断EP_intr。比较电路232及中断控制器234的具体细节为本领域技术人员所熟知的内容,故不再赘述。
综上所述,因为第一芯片200利用地址监视电路230监视控制区块245是否被写入数据来判断第一芯片200是否收到消息NTF,所以控制电路220能够及时得知第一芯片200收到消息NTF。相较于现有技术的轮询方式,第一芯片200的反应更为快速,可以降低通信延迟。
图4为本发明实施例提供的第一芯片的第二种功能方块图,图5为本发明实施例提供的第一芯片的第三种功能方块图。图4的第一芯片400可以与图5的第一芯片500互相连接,通过PCIe界面互相传送数据。因此,在以下的说明中,第一芯片400和第一芯片500互为对方的第二芯片。
请参阅图4,第一芯片400包括数据传输控制装置405及存储器430。数据传输控制装置405包括PCIe界面控制器410、控制电路420。存储器430包括控制区块435。控制电路420可以在存储器430中存取数据,并且可以通过PCIe界面控制器410传送中断请求MSI_intr给第二芯片。PCIe界面控制器410与PCIe界面控制器210相似,差别在于PCIe界面控制器410不包括地址转译单元215;因此,PCIe界面控制器410的成本比PCIe界面控制器210低。在一些实施例中,第一芯片400系外接存储器430,存储器430不包括于第一芯片400内。
请参阅图5,第一芯片500包括数据传输控制装置505及存储器530。数据传输控制装置505包括PCIe界面控制器510及控制电路520。PCIe界面控制器510包括物理层电路511、接收应用相依模块512、传送应用相依模块514及中断请求接收器516。接收应用相依模块512及传送应用相依模块514的功能分别与接收应用相依模块213及传送应用相依模块212的功能相同或相似,故不再赘述。中断请求接收器516响应于第二芯片所传来的中断请求MSI_intr,而发送中断应答RC_intr给控制电路520。中断请求接收器516为本领域技术人员所熟知的内容,故不再赘述。
在一些实施例中(仅用于示例而非限定本发明),当第一芯片400与第一芯片500通过PCIe总线连接时,第一芯片400处于端点模式,而第一芯片500处于根复合体模式,且共享存储器是由第一芯片400提供(即,存储器430作为第一芯片400及第一芯片500的共享存储器)。当第一芯片400与第一芯片500通过PCIe总线连接且启用虚拟化应用时,控制电路420及控制电路520分别控制PCIe界面控制器410及PCIe界面控制器510基于此虚拟化应用使得第一芯片400与第一芯片500建立通信,而存储器430作为共享存储器并用以储存虚拟化应用的虚拟队列数据。
请参阅图6及图7,图6为本发明实施例提供的RC端传送数据给EP端的流程图,图7为本发明实施例提供的EP端传送数据给RC端的流程图。图6及图7可表示本发明EP端(例如第一芯片400)与RC端(例如第一芯片500)之间通过PCIe总线实现基于虚拟队列的远程消息传递总线进行通信的流程图。存储器430包括复数个缓冲器(传输缓冲器(transmissionbuffer)及接收缓冲器(received buffer)),以及储存虚拟队列数据(包括但不限于已使用的环缓冲区(used ring buffer)、可用的环缓冲区(available ring buffer)及描述符表(descriptor table))。因为虚拟队列的原理及操作细节为本领域技术人员所熟知的内容,所以以下的讨论不会详细描述虚拟队列的操作细节。
请同时参阅图4~6,图6的流程使用虚拟化应用(Virtio)的第一个虚拟队列,包括以下的步骤。
步骤S610:通过基地址暂存器窗口将EP端的共享存储器映射至控制电路的地址空间。具体地,第一芯片500通过第一芯片400所提供的基地址暂存器窗口(BAR window)将第一芯片400的共享存储器(包括控制区块435)映射至控制电路520的地址空间。基地址暂存器窗口储存于第一芯片400的基地址暂存器219。
步骤S620:取得传输缓冲器(即,将传输缓冲器从已使用的环缓冲区中移除队列),也即配置存储器(allocation)。具体地,第一芯片500的控制电路520根据描述符表从存储器430取得虚拟队列中的一个传输缓冲器,也就是将传输缓冲器从已使用的环缓冲区中移除队列(dequeue)。
步骤S630:通过传送应用相依模块及EP端的基地址暂存器窗口,将远程消息传递总线的标头及酬载数据写入传输缓冲器。具体地,控制电路520通过传送应用相依模块514及第一芯片400的基地址暂存器窗口将远程消息传递总线(例如,RC端数据D_RC)的标头及酬载(payload)数据写入该传输缓冲器(即,将RC端数据D_RC写入存储器430)。
步骤S640:将传输缓冲器插入队列(即,在可用的环缓冲区中排队),也即传送数据。具体地,控制电路520将该传输缓冲器插入队列,也就是将该传输缓冲器在可用的环缓冲区中排队。
步骤S650:通过传送应用相依模块及EP端的基地址暂存器窗口,在EP端的控制区块中写数据以通知EP端。具体地,控制电路520通过传送应用相依模块514及第一芯片400的基地址暂存器窗口在EP端的控制区块435写数据以通知EP端缓冲器中有待读取的数据(例如,RC端数据D_RC)。
步骤S660:从虚拟队列中取得接收缓冲器(即,将接收缓冲器从可用的环缓冲区中移除队列),也即EP端接收数据。具体地,控制电路420从虚拟队列中取得接收缓冲器(即,将接收缓冲器从可用的环缓冲区中移除队列)。该接收缓冲器对应到前述的传输缓冲器。
步骤S670:读取接收缓冲器中的数据,并将数据传送给数据处理程序。具体地,控制电路420读取该接收缓冲器中的数据(例如,RC端数据D_RC),并将数据传送给数据处理程序。
步骤S680:将接收缓冲器插入队列(即,在已使用的环缓冲区中排队),也即解除配置存储器(deallocation)。具体地,控制电路420将该接收缓冲器插入队列(即,在已使用的环缓冲区中排队)以释放该接收缓冲器。
步骤S690:通过中断请求产生电路在RC端触发中断。具体地,控制电路420通过中断请求产生电路217在RC端触发中断应答RC_intr,即,第一芯片400传送中断请求MSI_intr给第一芯片500(RC端)以通知第一芯片500虚拟队列中有可用的缓冲器。
请同时参阅图4~5及7,图7的流程使用虚拟化应用的第二个虚拟队列(不等于第一个虚拟队列),包括以下的步骤。
步骤S705:通过基地址暂存器窗口将EP端的共享存储器映射至控制电路的地址空间。具体地,第一芯片500通过第一芯片400所提供的基地址暂存器窗口将第一芯片400的共享存储器(包括控制区块435)映射至控制电路520的地址空间。步骤S705与步骤S610相同或相似。
步骤S710:取得传输缓冲器(即,将传输缓冲器从可用的环缓冲区中移除队列),也即配置存储器。具体地,第一芯片400的控制电路420根据描述符表从存储器430取得虚拟队列中的一个传输缓冲器,也就是将传输缓冲器从可用的环缓冲区中移除队列。
步骤S720:将远程消息传递总线的标头及酬载数据写入传输缓冲器。具体地,控制电路420将远程消息传递总线(例如,EP端数据D_EP)的标头及酬载数据写入该传输缓冲器(即,将EP端数据D_EP写入存储器430)。
步骤S730:将传输缓冲器插入队列(即,在已使用的环缓冲区中排队),也即传送数据。具体地,控制电路420将该传输缓冲器插入队列,也就是将该传输缓冲器在已使用的环缓冲区中排队。
步骤S740:通过中断请求产生电路在RC端触发中断。具体地,控制电路420通过中断请求产生电路217在RC端触发中断,即,第一芯片400传送中断请求MSI_intr给第一芯片500(RC端)以通知第一芯片500虚拟队列中有待读取的数据。
步骤S750:从虚拟队列中取得接收缓冲器(即,将接收缓冲器从已使用的环缓冲区中移除队列),也即RC端接收数据。具体地,控制电路520从虚拟队列中取得接收缓冲器(即,将接收缓冲器从已使用的环缓冲区中移除队列)。该接收缓冲器对应到前述的传输缓冲器。
步骤S760:通过传送应用相依模块及EP端的基地址暂存器窗口读取接收缓冲器中的数据,并将数据传送给数据处理程序。具体地,控制电路520通过传送应用相依模块514及第一芯片400的基地址暂存器窗口读取该接收缓冲器中的数据(即,控制电路520从存储器430读取EP端数据D_EP),并将数据传送给数据处理程序。
步骤S770:将接收缓冲器插入队列(即,在可用的环缓冲区中排队),也即解除配置存储器。具体地,控制电路520将该接收缓冲器插入队列(即,在可用的环缓冲区中排队)以释放该接收缓冲器。
步骤S780:通过传送应用相依模块及EP端的基地址暂存器窗口在EP端的控制区块中写数据以通知EP端。具体地,控制电路520通过传送应用相依模块514及第一芯片400的基地址暂存器窗口在EP端的控制区块435写数据以通知EP端虚拟队列中有可用的缓冲器。
请注意,步骤S705可以在步骤S710~S740之前或之后执行,也可以与步骤S710~S740同时执行,但步骤S705在步骤S750~S780之前执行。
由图4~7可知,通过将共享存储器安排于EP端,EP端的PCIe界面控制器可以省下至少一个地址转译单元(即,图2之地址转译单元215),有利于降低成本及提升产品的竞争力。此外,因为共享存储器位于EP端,所以当一个RC端与多个EP端级联时,该RC端不需要提供大量的存储器,可降低RC端的成本。
图8为本发明实施例提供的第一芯片的第四种功能方块图。第一芯片800包括数据传输控制装置805及存储器430。数据传输控制装置805包括PCIe界面控制器410、控制电路820及地址监视电路230。在一些实施例中(仅用于示例而非限定本发明),第一芯片800处于端点模式、提供存储器430作为共享存储器,且使用地址监视电路230监视控制区块435是否被写入数据来判断第一芯片800是否收到消息NTF。换言之,第一芯片800为图2之实施例及图4之实施例的组合,故不再赘述其细节。第一芯片800具有低成本(因为省去至少一个地址转译单元)及反应快速(因为使用地址监视电路230监视控制区块435)的优点。
控制电路220、控制电路420、控制电路520及控制电路820可以是具有程序执行能力的电路或电子元件,例如中央处理器、微处理器、微处理单元、数位讯号处理器、特殊应用集成电路(Application Specific Integrated Circuit,ASIC),或其等效电路。在一些实施例中,控制电路220、控制电路420、控制电路520及控制电路820包括直接存储器存取(Direct Memory Access,DMA)电路。
前述实施例虽以虚拟化应用为例,然此并非对本发明的限制,本技术领域人员可以利用其他的存储器共享方式来实现RC端与EP端之间的通信。
虽然本发明的实施例如上所述,然而这些实施例并非用于限定本发明,本领域技术人员可依据本发明明示或隐含的内容对本发明的技术特征施以变化,凡此种种变化均可能属于本发明所涵盖的专利保护,换言之,本发明的专利保护范围须视本说明书中申请专利范围的界定为准。
【符号说明】
102:第二芯片;
104,106,108,200,400,500,800:第一芯片;
110:PCIe交换器;
205,405,505,805:数据传输控制装置;
210,410,510:PCIe界面控制器;
220,420,520,820:控制电路;
230:地址监视电路;
240,430,530:存储器;
245,435:控制区块;
CB_addr:预设地址;
211,511:物理层电路;
212,514:传送应用相依模块(XADM);
213,512:接收应用相依模块(RADM);
214,215,216:地址转译单元(ATU);
217:中断请求产生电路;
218:暂存器电路;
219:基地址暂存器(BAR);
D_EP:EP端数据;
MSI_intr:中断请求;
D_RC:RC端数据;
NTF:消息;
NTF_data:消息数据;
NTF_addr:目标地址;
EP_intr:传输中断;
RC_intr:应答中断;
232:比较电路;
234:中断控制器;
516:中断请求接收器;
S610,S620,S630,S640,S650,S660,S670,S680,S690,S705,S710,
S720,S730,S740,S750,S760,S770,S780:步骤。

Claims (2)

1.一种数据传输控制装置,其特征在于,设置于包括快速周边组件互连界面的第一芯片中,且所述数据传输控制装置耦接有存储器,所述数据传输控制装置包括:
快速周边组件互连界面控制器,用于从第二芯片接收第一数据,并将所述第一数据写入所述存储器,及用于接收具有目标地址的第二数据,并根据所述目标地址将所述第二数据写入所述存储器;以及
控制电路,用于在所述第二数据写入所述存储器之后,从所述存储器读取所述第一数据;
其中,所述第一芯片处于端点模式,所述第二芯片处于复合体模式,且所述第一数据早于所述第二数据写入所述存储器;
所述第一芯片与所述第二芯片通过虚拟化应用建立通信,且所述存储器储存有所述虚拟化应用的虚拟队列数据;
所述数据传输控制装置还包括:
地址监视电路,用于当所述第二数据写入所述存储器时发出传输中断至所述控制电路;
所述控制电路响应于所述传输中断,从所述存储器中读取所述第一数据。
2.一种数据传输控制装置,其特征在于,设置于包括快速周边组件互连界面的第一芯片中,且所述数据传输控制装置耦接有存储器,所述数据传输控制装置包括:
快速周边组件互连界面控制器;以及
控制电路,用于控制所述快速周边组件互连界面控制器基于虚拟化应用与第二芯片建立通信;
其中,所述第一芯片处于端点模式,所述第二芯片处于复合体模式,且所述存储器储存有所述虚拟化应用的虚拟队列数据;
所述控制电路将数据写入所述存储器,并且通过所述快速周边组件互连界面控制器发送传输中断的指令至所述第二芯片,以使所述第二芯片根据所述传输中断的指令,通过所述快速周边组件互连界面控制器从所述存储器读取所述数据。
CN202210359819.1A 2022-04-06 2022-04-06 数据传输控制装置 Active CN114647603B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202210359819.1A CN114647603B (zh) 2022-04-06 2022-04-06 数据传输控制装置
CN202311082672.7A CN117112463A (zh) 2022-04-06 2022-04-06 数据传输控制装置
US18/122,917 US12248414B2 (en) 2022-04-06 2023-03-17 Data transmission control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210359819.1A CN114647603B (zh) 2022-04-06 2022-04-06 数据传输控制装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311082672.7A Division CN117112463A (zh) 2022-04-06 2022-04-06 数据传输控制装置

Publications (2)

Publication Number Publication Date
CN114647603A CN114647603A (zh) 2022-06-21
CN114647603B true CN114647603B (zh) 2023-11-21

Family

ID=81997089

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311082672.7A Pending CN117112463A (zh) 2022-04-06 2022-04-06 数据传输控制装置
CN202210359819.1A Active CN114647603B (zh) 2022-04-06 2022-04-06 数据传输控制装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311082672.7A Pending CN117112463A (zh) 2022-04-06 2022-04-06 数据传输控制装置

Country Status (2)

Country Link
US (1) US12248414B2 (zh)
CN (2) CN117112463A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844245A (zh) * 2017-02-17 2017-06-13 北京腾凌科技有限公司 数据传输方法及装置
CN106919343A (zh) * 2015-12-28 2017-07-04 晶心科技股份有限公司 周边接口电路与周边存储器系统
CN107943726A (zh) * 2017-11-16 2018-04-20 郑州云海信息技术有限公司 一种基于PCIe接口的数据传输系统及方法
US10678739B1 (en) * 2019-05-02 2020-06-09 Wistron Corporation Electronic system, host device and control method
CN111913898A (zh) * 2019-05-10 2020-11-10 恩智浦美国有限公司 使用端点的pcie根复合体消息中断产生方法
CN112817899A (zh) * 2021-04-19 2021-05-18 浙江华创视讯科技有限公司 基于pcie的数据传输方法、装置、存储介质和电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318334B2 (en) * 2017-07-07 2019-06-11 Netronome Systems, Inc. Virtio relay
US11314673B2 (en) * 2019-12-27 2022-04-26 Texas Instruments Incorporated Configurable multi-function PCIe endpoint controller in an SoC

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919343A (zh) * 2015-12-28 2017-07-04 晶心科技股份有限公司 周边接口电路与周边存储器系统
CN106844245A (zh) * 2017-02-17 2017-06-13 北京腾凌科技有限公司 数据传输方法及装置
CN107943726A (zh) * 2017-11-16 2018-04-20 郑州云海信息技术有限公司 一种基于PCIe接口的数据传输系统及方法
US10678739B1 (en) * 2019-05-02 2020-06-09 Wistron Corporation Electronic system, host device and control method
CN111913898A (zh) * 2019-05-10 2020-11-10 恩智浦美国有限公司 使用端点的pcie根复合体消息中断产生方法
CN112817899A (zh) * 2021-04-19 2021-05-18 浙江华创视讯科技有限公司 基于pcie的数据传输方法、装置、存储介质和电子设备

Also Published As

Publication number Publication date
US20230325330A1 (en) 2023-10-12
CN114647603A (zh) 2022-06-21
US12248414B2 (en) 2025-03-11
CN117112463A (zh) 2023-11-24

Similar Documents

Publication Publication Date Title
US6131131A (en) Computer system including an enhanced communication interface for an ACPI-compliant controller
US5918028A (en) Apparatus and method for smart host bus adapter for personal computer cards
US9430432B2 (en) Optimized multi-root input output virtualization aware switch
TWI434182B (zh) 外部記憶體快進快出裝置
US7506077B2 (en) Unified controller having host and device functionality
CN113742269B (zh) 用于epa设备的数据传输方法、处理设备和介质
CN106933760A (zh) 一种基于axi协议的dma控制器及数据上传方法
US11704263B2 (en) Configurable multi-function PCIe endpoint controller in an SoC
CN101162448A (zh) 一种usb高速数据隧道的硬件传输方法
US7802034B2 (en) Method for performing full transfer automation in a USB controller
US8463969B2 (en) Extended message signal interrupt
JP4696199B2 (ja) 転送ディスクリプタ用メモリを備えるusbホストコントローラ
CN116166581A (zh) 用于pcie总线的队列式dma控制器电路及数据传输方法
CN101377763A (zh) 数据处理系统
JP4837659B2 (ja) 分割トランザクションを処理するためのバス・コントローラ
US20080162737A1 (en) USB Controller with Full Transfer Automation
US6425071B1 (en) Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
CN117194309A (zh) 用于芯片间互连的控制器、芯片、处理系统及电子设备
CN114647603B (zh) 数据传输控制装置
TWI343529B (en) Method and apparatus for performing full transfer automation in a usb controller
US20070124527A1 (en) Virtual Serial Apparatus
TWI810886B (zh) 資料傳輸控制裝置
US6766383B1 (en) Packet-based direct memory access
US8996772B1 (en) Host communication device and method with data transfer scheduler
EP0961978B1 (en) Pc chipset interconnection bus

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