一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输控制装置的制作方法

2022-06-22 17:40:40 来源:中国专利 TAG:
1.本发明涉及芯片相关
技术领域
:,尤其是关于可以通过快速周边组件互连(peripheralcomponentinterconnectexpress,pci-express,以下简称pcie)界面级联(cascade)的第一芯片及其数据传输控制装置。
背景技术
::2.请参阅图1,图1为现有技术中多个芯片通过pcie界面级联的示意图。芯片102通过pcie交换器(pcieswitch)110与芯片104、芯片106及芯片108连接。多个芯片级联可以提高整体的性能。若只有两个芯片级联(例如芯片102与芯片104),则不需要pcie交换器110。3.当多个芯片级联时,其中一个芯片工作在根复合体(rootcomplex,rc)模式(例如芯片102,以下简称为rc端),其他芯片工作在端点(endpoint,ep)模式(例如芯片104、106及108,以下简称为ep端)。rc端与ep端之间通过pcie总线实现基于虚拟队列(virtqueue)的远程消息传递总线(remoteprocessormessaging,rpmsg)进行通信。4.在基于虚拟队列的远程消息传递总线进行通信时,rc端通过在ep端的特定存储器地址写入特定内容的方式以通知ep端虚拟队列中有待读取的数据或可用的缓冲器,而ep端的控制电路(例如,中央处理器、微处理器、微控制器、微处理单元、数位讯号处理器(digitalsignalprocessor,dsp)等具有程序执行能力的电路)以轮询(polling)的方式来确认该特定存储器地址是否被写入该特定内容。然而,现有技术中的轮询速度不够快,造成rc端与ep端之间的通信延迟。5.再者,由于rc端与ep端的共享存储器(sharedmemory)是由rc端提供的,所以,当一个rc端同时与多个ep端连接时(如图1的例子),rc端必须提供更多的共享存储器,造成rc端的成本增加。技术实现要素:6.鉴于先前技术之不足,本发明的目的在于提供一种可以通过pcie界面传送及接收数据的芯片及其数据传输控制装置,以在降低成本的前提下提高多个芯片之间的通信效率。7.本发明的第一个实施例提供了一种数据传输控制装置,设置于包括快速周边组件互连界面的第一芯片中,且耦接有包括区块的存储器。数据传输控制装置包括:控制电路、快速周边组件互连界面控制器以及地址监视电路。快速周边组件互连界面控制器用于接收数据。地址监视电路用于当数据写入区块时发出传输中断至控制电路。8.本发明的第二个实施例提供了一种数据传输控制装置,设置于包括快速周边组件互连界面的第一芯片中,且耦接有存储器。数据传输控制装置包括:快速周边组件互连界面控制器以及控制电路。快速周边组件互连界面控制器用于从第二芯片接收第一数据,并将第一数据写入存储器,及用于接收具有目标地址的第二数据,并根据目标地址将第二数据写入存储器。控制电路用于在第二数据写入存储器之后,从存储器读取第一数据。其中,第applicationdependentmodule,简称为xadm)、接收应用相依模块213(receiveapplicationdependentmodule,简称为radm)、地址转译单元214(addresstranslationunit,简称为atu)、地址转译单元215、地址转译单元216、中断请求(messagesignaledinterrupt,msi)产生电路217以及暂存器电路218。暂存器电路218包括基地址暂存器(baseaddressregister,bar)219及多个暂存器。26.地址转译单元214及地址转译单元215是用于将控制电路220域的地址映射成pcie域的总线地址,而地址转译单元216是用于将pcie域的总线地址映射成控制电路220域的地址,其中,控制电路220域的地址对应于存储器240中的特定地址。控制电路220通过地址转译单元214、地址转译单元215及地址转译单元216以将数据写入共享存储器(等效于将数据传送给第二芯片),以及从共享存储器读取数据(等效于从第二芯片接收数据)。27.当第一芯片200向第二芯片传送ep端数据d_ep时,ep端数据d_ep由传送应用相依模块212封装(包括但不限于加上标头(header))成交换层信息包(transactionlayerpacket,tlp)的格式后,经物理层电路211及pcie总线传送给第二芯片。在传送ep端数据d_ep之后(即,ep端数据d_ep被写入共享存储器之后),控制电路220控制中断请求产生电路217经由地址转译单元214、传送应用相依模块212及物理层电路211发送中断请求msi_intr给第二芯片,以通知第二芯片接收ep端数据d_ep(即,从共享存储器读取数据)。中断请求是pcie标准所提供的中断触发方式(一般称为「msi-x」)。28.当第二芯片传送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的地址。29.数据(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)项操作。30.对消息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)。31.传送应用相依模块212、接收应用相依模块213、地址转译单元214、地址转译单元215、地址转译单元216及中断请求产生电路217的操作原理为本领域技术人员所熟知的内容,故不再赘述。32.图3为本技术实施例提供的地址监视电路230的功能方块图。地址监视电路230包括比较电路232及中断控制器234。比较电路232用于比较目标地址ntf_addr与控制区块245的预设地址cb_addr(可以由控制电路220提供)。当目标地址ntf_addr等于预设地址cb_addr时,比较电路232控制中断控制器234发出传输中断ep_intr。比较电路232及中断控制器234的具体细节为本领域技术人员所熟知的内容,故不再赘述。33.综上所述,因为第一芯片200利用地址监视电路230监视控制区块245是否被写入数据来判断第一芯片200是否收到消息ntf,所以控制电路220能够及时得知第一芯片200收到消息ntf。相较于现有技术的轮询方式,第一芯片200的反应更为快速,可以降低通信延迟。34.图4为本发明实施例提供的第一芯片的第二种功能方块图,图5为本发明实施例提供的第一芯片的第三种功能方块图。图4的第一芯片400可以与图5的第一芯片500互相连接,通过pcie界面互相传送数据。因此,在以下的说明中,第一芯片400和第一芯片500互为对方的第二芯片。35.请参阅图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内。36.请参阅图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为本领域技术人员所熟知的内容,故不再赘述。37.在一些实施例中(仅用于示例而非限定本发明),当第一芯片400与第一芯片500通过pcie总线连接时,第一芯片400处于端点模式,而第一芯片500处于根复合体模式,且共享存储器是由第一芯片400提供(即,存储器430作为第一芯片400及第一芯片500的共享存储器)。当第一芯片400与第一芯片500通过pcie总线连接且启用虚拟化应用时,控制电路420及控制电路520分别控制pcie界面控制器410及pcie界面控制器510基于此虚拟化应用使得第一芯片400与第一芯片500建立通信,而存储器430作为共享存储器并用以储存虚拟化应用的虚拟队列数据。38.请参阅图6及图7,图6为本发明实施例提供的rc端传送数据给ep端的流程图,图7为本发明实施例提供的ep端传送数据给rc端的流程图。图6及图7可表示本发明ep端(例如第一芯片400)与rc端(例如第一芯片500)之间通过pcie总线实现基于虚拟队列的远程消息传递总线进行通信的流程图。存储器430包括复数个缓冲器(传输缓冲器(transmissionbuffer)及接收缓冲器(receivedbuffer)),以及储存虚拟队列数据(包括但不限于已使用的环缓冲区(usedringbuffer)、可用的环缓冲区(availableringbuffer)及描述符表(descriptortable))。因为虚拟队列的原理及操作细节为本领域技术人员所熟知的内容,所以以下的讨论不会详细描述虚拟队列的操作细节。39.请同时参阅图4~6,图6的流程使用虚拟化应用(virtio)的第一个虚拟队列,包括以下的步骤。40.步骤s610:通过基地址暂存器窗口将ep端的共享存储器映射至控制电路的地址空间。具体地,第一芯片500通过第一芯片400所提供的基地址暂存器窗口(barwindow)将第一芯片400的共享存储器(包括控制区块435)映射至控制电路520的地址空间。基地址暂存器窗口储存于第一芯片400的基地址暂存器219。41.步骤s620:取得传输缓冲器(即,将传输缓冲器从已使用的环缓冲区中移除队列),也即配置存储器(allocation)。具体地,第一芯片500的控制电路520根据描述符表从存储器430取得虚拟队列中的一个传输缓冲器,也就是将传输缓冲器从已使用的环缓冲区中移除队列(dequeue)。42.步骤s630:通过传送应用相依模块及ep端的基地址暂存器窗口,将远程消息传递总线的标头及酬载数据写入传输缓冲器。具体地,控制电路520通过传送应用相依模块514及第一芯片400的基地址暂存器窗口将远程消息传递总线(例如,rc端数据d_rc)的标头及酬载(payload)数据写入该传输缓冲器(即,将rc端数据d_rc写入存储器430)。43.步骤s640:将传输缓冲器插入队列(即,在可用的环缓冲区中排队),也即传送数据。具体地,控制电路520将该传输缓冲器插入队列,也就是将该传输缓冲器在可用的环缓冲区中排队。44.步骤s650:通过传送应用相依模块及ep端的基地址暂存器窗口,在ep端的控制区块中写数据以通知ep端。具体地,控制电路520通过传送应用相依模块514及第一芯片400的基地址暂存器窗口在ep端的控制区块435写数据以通知ep端缓冲器中有待读取的数据(例如,rc端数据d_rc)。45.步骤s660:从虚拟队列中取得接收缓冲器(即,将接收缓冲器从可用的环缓冲区中移除队列),也即ep端接收数据。具体地,控制电路420从虚拟队列中取得接收缓冲器(即,将接收缓冲器从可用的环缓冲区中移除队列)。该接收缓冲器对应到前述的传输缓冲器。46.步骤s670:读取接收缓冲器中的数据,并将数据传送给数据处理程序。具体地,控制电路420读取该接收缓冲器中的数据(例如,rc端数据d_rc),并将数据传送给数据处理程序。47.步骤s680:将接收缓冲器插入队列(即,在已使用的环缓冲区中排队),也即解除配置存储器(deallocation)。具体地,控制电路420将该接收缓冲器插入队列(即,在已使用的环缓冲区中排队)以释放该接收缓冲器。48.步骤s690:通过中断请求产生电路在rc端触发中断。具体地,控制电路420通过中断请求产生电路217在rc端触发中断应答rc_intr,即,第一芯片400传送中断请求msi_intr给第一芯片500(rc端)以通知第一芯片500虚拟队列中有可用的缓冲器。49.请同时参阅图4~5及7,图7的流程使用虚拟化应用的第二个虚拟队列(不等于第一个虚拟队列),包括以下的步骤。50.步骤s705:通过基地址暂存器窗口将ep端的共享存储器映射至控制电路的地址空间。具体地,第一芯片500通过第一芯片400所提供的基地址暂存器窗口将第一芯片400的共享存储器(包括控制区块435)映射至控制电路520的地址空间。步骤s705与步骤s610相同或相似。51.步骤s710:取得传输缓冲器(即,将传输缓冲器从可用的环缓冲区中移除队列),也即配置存储器。具体地,第一芯片400的控制电路420根据描述符表从存储器430取得虚拟队列中的一个传输缓冲器,也就是将传输缓冲器从可用的环缓冲区中移除队列。52.步骤s720:将远程消息传递总线的标头及酬载数据写入传输缓冲器。具体地,控制电路420将远程消息传递总线(例如,ep端数据d_ep)的标头及酬载数据写入该传输缓冲器(即,将ep端数据d_ep写入存储器430)。53.步骤s730:将传输缓冲器插入队列(即,在已使用的环缓冲区中排队),也即传送数据。具体地,控制电路420将该传输缓冲器插入队列,也就是将该传输缓冲器在已使用的环缓冲区中排队。54.步骤s740:通过中断请求产生电路在rc端触发中断。具体地,控制电路420通过中断请求产生电路217在rc端触发中断,即,第一芯片400传送中断请求msi_intr给第一芯片500(rc端)以通知第一芯片500虚拟队列中有待读取的数据。55.步骤s750:从虚拟队列中取得接收缓冲器(即,将接收缓冲器从已使用的环缓冲区中移除队列),也即rc端接收数据。具体地,控制电路520从虚拟队列中取得接收缓冲器(即,将接收缓冲器从已使用的环缓冲区中移除队列)。该接收缓冲器对应到前述的传输缓冲器。56.步骤s760:通过传送应用相依模块及ep端的基地址暂存器窗口读取接收缓冲器中的数据,并将数据传送给数据处理程序。具体地,控制电路520通过传送应用相依模块514及第一芯片400的基地址暂存器窗口读取该接收缓冲器中的数据(即,控制电路520从存储器430读取ep端数据d_ep),并将数据传送给数据处理程序。57.步骤s770:将接收缓冲器插入队列(即,在可用的环缓冲区中排队),也即解除配置存储器。具体地,控制电路520将该接收缓冲器插入队列(即,在可用的环缓冲区中排队)以释放该接收缓冲器。58.步骤s780:通过传送应用相依模块及ep端的基地址暂存器窗口在ep端的控制区块中写数据以通知ep端。具体地,控制电路520通过传送应用相依模块514及第一芯片400的基地址暂存器窗口在ep端的控制区块435写数据以通知ep端虚拟队列中有可用的缓冲器。59.请注意,步骤s705可以在步骤s710~s740之前或之后执行,也可以与步骤s710~s740同时执行,但步骤s705在步骤s750~s780之前执行。60.由图4~7可知,通过将共享存储器安排于ep端,ep端的pcie界面控制器可以省下至少一个地址转译单元(即,图2之地址转译单元215),有利于降低成本及提升产品的竞争力。此外,因为共享存储器位于ep端,所以当一个rc端与多个ep端级联时,该rc端不需要提供大量的存储器,可降低rc端的成本。61.图8为本发明实施例提供的第一芯片的第四种功能方块图。第一芯片800包括数据传输控制装置805及存储器430。数据传输控制装置805包括pcie界面控制器410、控制电路820及地址监视电路230。在一些实施例中(仅用于示例而非限定本发明),第一芯片800处于端点模式、提供存储器430作为共享存储器,且使用地址监视电路230监视控制区块435是否被写入数据来判断第一芯片800是否收到消息ntf。换言之,第一芯片800为图2之实施例及图4之实施例的组合,故不再赘述其细节。第一芯片800具有低成本(因为省去至少一个地址转译单元)及反应快速(因为使用地址监视电路230监视控制区块435)的优点。62.控制电路220、控制电路420、控制电路520及控制电路820可以是具有程序执行能力的电路或电子元件,例如中央处理器、微处理器、微处理单元、数位讯号处理器、特殊应用集成电路(applicationspecificintegratedcircuit,asic),或其等效电路。在一些实施例中,控制电路220、控制电路420、控制电路520及控制电路820包括直接存储器存取(directmemoryaccess,dma)电路。63.前述实施例虽以虚拟化应用为例,然此并非对本发明的限制,本
技术领域
:人员可以利用其他的存储器共享方式来实现rc端与ep端之间的通信。64.虽然本发明的实施例如上所述,然而这些实施例并非用于限定本发明,本领域技术人员可依据本发明明示或隐含的内容对本发明的技术特征施以变化,凡此种种变化均可能属于本发明所涵盖的专利保护,换言之,本发明的专利保护范围须视本说明书中申请专利范围的界定为准。65.【符号说明】66.102:第二芯片;67.104,106,108,200,400,500,800:第一芯片;68.110:pcie交换器;69.205,405,505,805:数据传输控制装置;70.210,410,510:pcie界面控制器;71.220,420,520,820:控制电路;72.230:地址监视电路;73.240,430,530:存储器;74.245,435:控制区块;75.cb_addr:预设地址;76.211,511:物理层电路;77.212,514:传送应用相依模块(xadm);78.213,512:接收应用相依模块(radm);79.214,215,216:地址转译单元(atu);80.217:中断请求产生电路;81.218:暂存器电路;82.219:基地址暂存器(bar);83.d_ep:ep端数据;84.msi_intr:中断请求;85.d_rc:rc端数据;86.ntf:消息;87.ntf_data:消息数据;88.ntf_addr:目标地址;89.ep_intr:传输中断;90.rc_intr:应答中断;91.232:比较电路;92.234:中断控制器;93.516:中断请求接收器;94.s610,s620,s630,s640,s650,s660,s670,s680,s690,s705,s710,95.s720,s730,s740,s750,s760,s770,s780:步骤。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献