传输装置、信息处理装置以及数据传输方法

文档序号:1895056 发布日期:2021-11-26 浏览:24次 >En<

阅读说明:本技术 传输装置、信息处理装置以及数据传输方法 (Transmission device, information processing device, and data transmission method ) 是由 中谷好博 于 2020-03-03 设计创作,主要内容包括:既能利用PCIe来连接单元间,又能在应用等的上位层中实现利用套接字通信的数据传输。传输装置(230)利用PCIe来与第一处理装置(110或210)及第二处理装置(210或110)进行通信,且传输装置(230)包括:DMAC(233),控制从第一处理装置的第一存储器(120或220)向第二处理装置的第二存储器(220或120)的数据传输;第一发送描述符控制器(235或237),从第一处理装置获取与第一存储器中的保存有传输对象数据的第一存储器地址相关的信息;以及第一接收描述符控制器(234或236),从第二处理装置获取与第二存储器中的应保存传输对象数据的第二存储器地址相关的信息。(Data transmission by socket communication can be realized in an upper layer of an application or the like while the units are connected by PCIe. The transmitting device (230) communicates with the first processing device (110 or 210) and the second processing device (210 or 110) using PCIe, and the transmitting device (230) includes: a DMAC (233) that controls data transfer from the first memory (120 or 220) of the first processing device to the second memory (220 or 120) of the second processing device; a first transmission descriptor controller (235 or 237) that acquires, from the first processing device, information relating to a first memory address in the first memory where the data to be transferred is stored; and a first reception descriptor controller (234 or 236) that acquires, from the second processing device, information relating to a second memory address in the second memory where the transfer target data should be held.)

传输装置、信息处理装置以及数据传输方法

技术领域

本发明涉及一种传输装置、信息处理装置以及数据传输方法。

背景技术

专利文献1中提出了一种方案:利用外围设备互连高速(Peripheral ComponentInterconnect Express,PCIe),将包括处理器22及数据传输控制器30的控制器模块20间可通信地予以连接。

现有技术文献

专利文献

专利文献1:日本公开专利公报“特开2014-106940号公报(2014年6月9日公开)”

发明内容

发明所要解决的问题

在基于PCIe的通信中,传输路径经串行化,因此能够实现设备间的高速通信。因此,例如考虑取代在进行工业机械的控制的主单元中搭载新功能的做法,而是使其他单元(以下称作扩展单元)具备所述新功能,并利用PCIe来实现主单元与扩展单元的连接。通过像这样构成,能够避免因新功能的搭载导致主单元的控制性能出现不良影响的风险。

另一方面,存在下述问题,即,若实现所述新功能的应用是以单元间的借助PCIe的连接为前提而开发,则在将来主单元的处理性能提高而在主单元中可兼顾以往功能与新功能的情况下,必须进行所述应用的重新开发。

因此,产生了下述要求,即,对于实现新功能的应用,希望鉴于通用性而利用以太网(Ethernet(注册商标))中所用的套接字(socket)通信进行数据传输为前提来开发,以使得不再需要应用的重新开发。

本发明的一实施例的目的在于,实现一种传输装置,既能利用PCIe来连接单元间,又能在应用等的上位层中实现利用套接字通信的数据传输。

解决问题的技术手段

作为本公开的一例,为了解决所述问题,本发明采用下述结构。

即,本发明的一方面的传输装置利用PCIe来与第一设备及第二设备进行通信,所述传输装置包括:直接存储器访问控制器(direct memory access controller),控制从所述第一设备的第一存储器向所述第二设备的第二存储器的数据传输;第一发送描述符控制器,从所述第一设备获取与所述第一存储器中的保存有传输对象数据的第一存储器地址相关的信息;以及第一接收描述符控制器,从所述第二设备获取与所述第二存储器中的应保存所述传输对象数据的第二存储器地址相关的信息。

本发明的一方面的信息处理装置包括所述的任一传输装置、所述第二设备以及所述第二存储器,其中,所述第二设备具有:应用执行部,对所述传输对象数据进行处理;以及设备驱动器,从所述应用执行部经由套接字应用程序接口(Application ProgramInterface,API)来受理对所述传输对象数据进行传输的指示,并生成对保存有所述传输对象数据的所述第二存储器的存储器地址进行指定的发送描述符来作为所述信息。

本发明的一方面的数据传输方法是由传输装置来执行,所述传输装置利用PCIe来与作为数据的传输源的第一设备及作为所述数据的传输目标的第二设备进行通信,所述数据传输方法包括下述步骤:所述传输装置的发送描述符控制器从所述第一设备获取与所述第一设备的第一存储器中的保存有传输对象数据的第一存储器地址相关的第一信息;所述传输装置的接收描述符控制器从所述第二设备获取与所述第二设备的第二存储器中的应保存所述传输对象数据的第二存储器地址相关的第二信息;以及所述传输装置的直接存储器访问控制器对从所述第一存储器向所述第二存储器的数据进行传输。另外,获取第二信息的步骤也可先于获取第一信息的步骤而执行。

发明的效果

根据本发明的一实施例,起到下述效果:既能利用PCIe来连接单元间,又能在应用等的上位层中实现利用套接字通信的数据传输。

附图说明

图1是示意性地例示本实施方式的第一处理装置、第二处理装置以及传输装置的功能结构的一例的图。

图2是例示下行传输的处理流程的一例的流程图。

图3是例示上行传输的处理流程的一例的流程图。

图4是表示主单元与扩展单元的其他连接例的图。

具体实施方式

以下,基于附图来说明本发明的一方面的实施方式(以下也称作“本实施方式”)。

〔实施方式1〕

§1适用例

图1是示意性地例示本实施方式的传输装置230的适用场景的一例的图。作为一例,传输装置230是作为实现第一处理装置110与第二处理装置210之间的数据传输的装置而设于扩展单元200,所述第一处理装置110是主单元100的处理器,所述第二处理装置210是外置有主单元100的新功能的扩展单元200(信息处理装置)的处理器。

传输装置230为了利用PCIe来与第一处理装置110(第一设备或第二设备)以及第二处理装置210(第二设备或第一设备)各自进行通信,利用遵循PCIe规格的总线(bus)而分别连接。典型的是,传输装置230包含现场可编程门阵列(Field-Programmable GateArray,FPGA)等硬件。

作为一例,主单元100进行工业机器的控制,典型的是可编程逻辑控制器(Programmable Logic Controller,PLC)。主单元100的处理器即第一处理装置110例如为中央处理器(Central Processing Unit,CPU)。

扩展单元200所负责的新功能并无特别限定,例如设想数据的统计功能、路由器(router)功能或数据库功能等。扩展单元200的处理器即第二处理装置210典型的是包含微处理器(Micro Processing Unit,MPU)等硬件。

以下,为了方便,将从主单元100的第一处理装置110向扩展单元200的第二处理装置210传输数据的情况称作下行传输,将从第二处理装置210向第一处理装置110传输数据的情况称作上行传输。

为了实现下行传输,传输装置230为至少包括直接存储器访问控制器(DirectMemory Access Controller,DMAC)233、下行发送描述符控制器235以及下行接收描述符控制器234的结构。

DMAC233(直接存储器访问控制器)对从第一处理装置110(第一设备)的主单元存储器120向第二处理装置210(第二设备)的扩展单元存储器220的数据传输进行控制。

下行发送描述符控制器235(发送描述符控制器)从第一处理装置110获取与主单元存储器120中的保存有发送数据(传输对象数据)的第一存储器地址(例如下行发送数据地址DS1~DSn)相关的信息,作为一例,获取发送描述符。

下行接收描述符控制器234(接收描述符控制器)从第二处理装置210获取与扩展单元存储器220中的应保存接收数据(传输对象数据)的第二存储器地址(例如下行接收数据地址DR1~DRn)相关的信息,作为一例,获取接收描述符。

为了实现上行传输,传输装置230也可还包括上行发送描述符控制器237与上行接收描述符控制器236。

上行发送描述符控制器237(发送描述符控制器)从第二处理装置210获取与扩展单元存储器220中的保存有发送数据(传输对象数据)的第三存储器地址(例如上行发送数据地址US1~USm)相关的信息,作为一例,获取发送描述符。

上行接收描述符控制器236(接收描述符控制器)从第一处理装置110获取与主单元存储器120中的应保存接收数据(传输对象数据)的第四存储器地址(例如上行接收数据地址UR1~URm)相关的信息,作为一例,获取接收描述符。

由此,既能利用PCIe来连接单元间,又能在应用等的上位层中实现利用套接字通信的数据传输。具体而言,并非以基于PCIe的连接为前提来开发与新功能相关的应用,而是能够从一开始便以利用套接字通信的数据传输为前提来开发应用。由此,起到如下所述的显著效果,即:将来在主单元100中能够兼顾以往的工业机器的控制与新功能的执行,而需要在所述应用中利用套接字通信的情况下,不再需要重新开发所述应用。

§2结构例

[硬件结构]

图1是示意性地例示本实施方式的主单元100以及扩展单元200的硬件结构的一例的图。

<主单元100>

图1的示例中,主单元100包括第一处理装置110以及主单元存储器120(第一存储器、第二存储器)。除此以外,主单元100也可还包括输入装置、输出装置以及只读存储器(Read Only Memory,ROM)等非易失性的存储装置等。

第一处理装置110统括地控制主单元100。第一处理装置110例如为CPU,对工业机械以及设备等作为控制对象的机器进行控制,或者控制扩展单元200来将与所追加的新功能相关的处理作为任务进行管理。

主单元存储器120为易失性的存储区域(随机存取存储器(Random AccessMemory,RAM))。主单元存储器120保存由第一处理装置110所生成的发送数据、第一处理装置110应处理且由第二处理装置210所生成的接收数据、以及第一处理装置110应执行的各种程序。而且,主单元存储器120也可被用作第一处理装置110执行各种程序时的作业用存储器。作为主单元存储器120,典型的是可使用动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。

<扩展单元200>

图1的示例中,扩展单元200包括第二处理装置210、扩展单元存储器220(第二存储器、第一存储器)以及传输装置230。

第二处理装置210统括地控制扩展单元200。第二处理装置210例如为MPU,基于第一处理装置110所生成的数据,将与所追加的新功能相关的处理作为任务来执行。

扩展单元存储器220为易失性的存储区域(RAM)。扩展单元存储器220保存由第二处理装置210所生成的发送数据、第二处理装置210应处理且由第一处理装置110所生成的接收数据、以及第二处理装置210应执行的各种程序。而且,扩展单元存储器220也可被用作第二处理装置210执行各种程序时的作业用存储器。作为扩展单元存储器220,典型的是可使用DRAM等。

传输装置230利用PCIe来与第一处理装置110及第二处理装置210进行通信,控制第一处理装置110与第二处理装置210之间的下行传输,以及根据需要来控制上行传输。如上所述,传输装置230典型的是FPGA。

[功能结构]

图1是示意性地例示本实施方式的第一处理装置110、第二处理装置210以及传输装置230的功能结构的一例的图。

<第一处理装置110>

第一处理装置110将存储在未图示的非易失性存储装置中的主单元100的控制程序展开到主单元存储器120中。并且,第一处理装置110对展开到主单元存储器120中的控制程序进行解释以及执行,以控制各构成元件。由此,如图1所示,本实施方式的第一处理装置110包括机器控制部111、中断控制部112、任务控制部113、设备驱动器114以及PCIe接口115。

机器控制部111对连接于主单元100的工业机器进行控制。工业机器例如设想配置在制造工序中的制造装置、对制造装置或工件的状态进行感测的传感设备等。通过机器控制部111控制这些工业机器,从而实现工厂自动化(Factory Automation,FA)。

而且,机器控制部111以固定周期来与各工业机器进行通信,从各工业机器获取在下游的工序中进行处理的数据。例如,所获取的数据也可由扩展单元200来进行处理。

中断控制部112经由PCIe来对特定的地址写入值,由此来使第一处理装置110发生中断。像这样通过对特定的地址写入值来进行中断的方法称作消息信号中断(MessageSignal Interrupt,MSI),将为了中断而对特定的地址写入值的操作称作发布MSI。作为一例,中断控制部112经由PCIe而从中断发生部238发布MSI,由此来使第一处理装置110发生中断,使第一处理装置110认识到数据的传输已完成。

任务控制部113针对主单元100所管辖的FA系统中所蓄积的数据,将应实施的处理作为任务来进行管理。而且,任务控制部113将所述任务分配给作为任务执行者的周边的扩展单元200。具体而言,任务控制部113控制将哪个数据传输给哪个扩展单元200。

例如,也可将主单元100设为文件传输协议(File Transfer Protocol,FTP)服务器,将扩展单元200设为FTP客户端来构建经由FTP的服务器客户端系统。此时,任务控制部113响应来自扩展单元200的任务执行部213的连接请求,来建立与任务执行部213的连接,将任务的执行所需的数据传输给任务执行部213,或者受理任务执行部213已处理完毕的数据。

设备驱动器114将描述符写入至主单元存储器120,由此,主单元100的第一处理装置110能够经由传输装置230来与扩展单元200的第二处理装置210之间传输数据。例如,设备驱动器114经由套接字应用程序接口(Application Program Interface,API)而从任务控制部113受理数据传输的指示。设备驱动器114将为了与扩展单元200之间进行数据传输所需的描述符写入至主单元存储器120。

写入至主单元存储器120的描述符中,发送描述符对用于DMAC233实现下行传输的动作的一部分进行规定。由此,第一处理装置110的任务控制部113可向第二处理装置210的任务执行部213发送数据。接收描述符对用于DMAC233实现上行传输的动作的一部分进行规定。由此,第一处理装置110的任务控制部113可接收从第二处理装置210的任务执行部213发送的数据。

更具体而言,描述符构成用于DMAC233进行DMA(直接存储器访问)操作的DMA命令的列表。作为一例,DMA命令的列表包含描述符的链。各描述符包括对应处理的下个描述符的指示符,最后的描述符包括对链的最开始的描述符的指示符。DMAC233依序按照各描述符来运行,由此能够实现一连串的数据传输。发送描述符中例如包含保存有应向其他存储器传输的传输对象数据的场所(存储器的地址)、数据长度、以及传输顺利完成时设立的传输完成标记等。接收描述符中例如包含对从其他存储器传输来的传输对象数据进行保存的场所(存储器的地址)、以及传输顺利完成时设立的传输完成标记等。

PCIe接口115是用于第一处理装置110经由PCIe总线而利用PCIe来与传输装置230连接的接口。

<第二处理装置210>

第二处理装置210将存储在未图示的非易失性存储装置中的扩展单元200的控制程序展开到扩展单元存储器220中。并且,第二处理装置210对展开到扩展单元存储器220中的控制程序进行解释以及执行,以控制各构成元件。由此,如图1所示,本实施方式的第二处理装置210包括中断控制部212、任务执行部213(应用执行部)、设备驱动器214以及PCIe接口215。

中断控制部212经由PCIe来对特定的地址写入值,由此来使第二处理装置210发生中断。作为一例,中断控制部212经由PCIe而从中断发生部238发布MSI,由此来使第二处理装置210发生中断,使第二处理装置210认识到数据的传输已完成。

任务执行部213将所追加的新功能作为任务控制部113所管理的任务来执行。任务执行部213典型的是利用应用来实现。作为一例,任务执行部213构成为,与任务控制部113进行套接字通信,通过利用套接字通信来接收任务控制部113所生成的数据,并按照规定的程序来对所述数据进行处理,由此来执行任务。而且,任务执行部213利用套接字通信将作为处理结果的数据返回给任务控制部113。

例如,在将主单元100设为FTP服务器,将扩展单元200设为FTP客户端来构建经由FTP的服务器客户端系统的情况下,任务执行部213对主单元100进行连接请求,建立与任务控制部113的连接,经由FTP来进行数据的下载或上载。

设备驱动器214将描述符写入至扩展单元存储器220,由此,扩展单元200的第二处理装置210可经由传输装置230来与主单元100的第一处理装置110之间传输数据。例如,设备驱动器214经由套接字API而从任务执行部213受理数据传输的指示。设备驱动器214将为了与主单元100之间进行数据传输所需的描述符写入至扩展单元存储器220。

被写入至扩展单元存储器220的描述符中,发送描述符对用于DMAC233实现上行传输的动作的一部分进行规定。由此,第二处理装置210的任务执行部213可向第一处理装置110的任务控制部113发送数据。接收描述符对用于DMAC233实现下行传输的动作的一部分进行规定。由此,第二处理装置210的任务执行部213可接收从第一处理装置110的任务控制部113发送的数据。

PCIe接口215是用于第二处理装置210经由PCIe总线而利用PCIe来与传输装置230连接的接口。

<传输装置230>

传输装置230根据展开到主单元存储器120或扩展单元存储器220中的描述符,独立于第一处理装置110及第二处理装置210而直接控制主单元100与扩展单元200之间的数据传输。作为为此的构成元件,传输装置230包括第一PCIe接口231、第二PCIe接口232、DMAC233、下行接收描述符控制器234、下行发送描述符控制器235、上行接收描述符控制器236、上行发送描述符控制器237以及中断发生部238。

第一PCIe接口231是用于传输装置230经由PCIe总线而利用PCIe来与第一处理装置110连接的接口。

第二PCIe接口232是用于传输装置230经由PCIe总线而利用PCIe来与第二处理装置210连接的接口。

DMAC233对展开到主单元存储器120或扩展单元存储器220中的描述符进行解释,根据其内容,对于主单元存储器120以及扩展单元存储器220直接进行数据的读出以及写入。

下行接收描述符控制器234在下行传输中,从扩展单元存储器220直接获取为了使第二处理装置210接收从第一处理装置110发送的传输对象数据所需的接收描述符。例如,下行接收描述符控制器234根据在未图示的内部寄存器中设定的指示符来依序接取(fetch)被写入至扩展单元存储器220的接收描述符,并交给DMAC233。

下行发送描述符控制器235在下行传输中,从主单元存储器120直接获取第一处理装置110为了向第二处理装置210发送传输对象数据所需的发送描述符。例如,下行发送描述符控制器235根据在未图示的内部寄存器中设定的指示符来依序接取被写入至主单元存储器120的发送描述符,并交给DMAC233。

上行接收描述符控制器236在上行传输中,从主单元存储器120直接获取为了使第一处理装置110接收从第二处理装置210发送的传输对象数据所需的接收描述符。例如,上行接收描述符控制器236根据在未图示的内部寄存器中设定的指示符来依序接取被写入至主单元存储器120的接收描述符,并交给DMAC233。

上行发送描述符控制器237在上行传输中,从扩展单元存储器220直接获取第二处理装置210为了向第一处理装置110发送传输对象数据所需的发送描述符。例如,上行发送描述符控制器237根据在未图示的内部寄存器中设定的指示符来依序接取被写入至扩展单元存储器220的发送描述符,并交给DMAC233。

中断发生部238对于第一处理装置110或第二处理装置210,经由PCIe来使第一处理装置110或第二处理装置210发生中断(例如MSI)。中断发生部238也可包含使第一处理装置110发生中断的第一中断发生部与使第二处理装置210发生中断的第二中断发生部而构成。

§3动作例

接下来,使用图2以及图3来说明主单元100以及扩展单元200的动作例。

[下行传输时]

图2是例示从主单元100向扩展单元200的下行传输的处理流程的一例的流程图。另外,以下说明的处理流程不过是一例,各处理可尽可能地变更。而且,对于以下说明的处理流程,可根据实施方式来适当地进行步骤的省略、替换以及追加。

步骤S101中,在扩展单元200中,第二处理装置210的任务执行部213经由套接字API来指示设备驱动器214准备接收从主单元100发送的传输对象数据。

步骤S102中,设备驱动器214将为了接收所述传输对象数据所需的接收描述符展开到扩展单元存储器220中。

步骤S103中,设备驱动器214将表示扩展单元存储器220中的接收描述符的有效范围的信息(例如地址信息、指示符等)通知给下行接收描述符控制器234。通知的方法并无特别限定,例如也可通过对下行接收描述符控制器234的未图示的尾部(Tail)寄存器写入有效的指示符来进行通知。或者,也可将接收描述符自身从设备驱动器214直接供给至下行接收描述符控制器234。

步骤S104中,下行接收描述符控制器234获取接收描述符。DMAC233对下行接收描述符控制器234所获取的接收描述符进行解释,确定表示从主单元100发送的传输对象数据在扩展单元存储器220中的保存场所的下行接收数据地址(第二存储器地址、第四存储器地址)。具体而言,DMAC233基于下行接收描述符控制器234所获取的、表示应保存传输对象数据的下行接收数据地址例如DR1~DRn的接收描述符(第二信息),来确定应保存传输对象数据的场所。

步骤S105中,在主单元100中,第一处理装置110的任务控制部113生成要发送给扩展单元200的传输对象数据,并保存到主单元存储器120中。

步骤S106中,任务控制部113经由套接字API来指示设备驱动器114将所保存的传输对象数据发送给扩展单元200。

步骤S107中,设备驱动器114将为了向扩展单元200发送传输对象数据所需的发送描述符展开到主单元存储器120中。

步骤S108中,设备驱动器114将表示主单元存储器120中的发送描述符的有效范围的信息(例如地址信息、指示符等)通知给下行发送描述符控制器235。通知的方法并无特别限定,例如也可通过对下行发送描述符控制器235的未图示的尾部(Tail)寄存器写入有效的指示符来进行通知。或者,也可将发送描述符自身从设备驱动器114直接供给至下行发送描述符控制器235。

步骤S109中,下行发送描述符控制器235获取发送描述符。DMAC233对下行发送描述符控制器235所获取的发送描述符进行解释,确定表示向扩展单元200发送的传输对象数据在主单元存储器120中的保存场所的下行发送数据地址(第一存储器地址、第三存储器地址)。具体而言,DMAC233基于下行发送描述符控制器235所获取的、表示保存有应发送的传输对象数据的下行发送数据地址例如DS1~DSn的发送描述符(第一信息),来确定保存有应发送的传输对象数据的场所。步骤S109也可先于步骤S104而执行。

步骤S110中,DMAC233将从主单元存储器120中的保存场所(DS1~DSn)读出的传输对象数据写入至扩展单元存储器220中的保存场所(DR1~DRn)而进行数据传输。当对于所有的传输对象数据完成读出以及写入时(S111的是),传输装置230前进至步骤S112。

步骤S112中,下行发送描述符控制器235在主单元存储器120上的发送描述符的有效范围内的规定场所,设立表示数据传输已完成的传输完成标记。

步骤S113中,中断发生部238将数据传输已完成的情况通知给第一处理装置110。具体而言,中断发生部238经由PCIe来对规定的地址写入规定的数据,由此来发布MSI,使第一处理装置110发生中断。

步骤S114中,第一处理装置110的中断控制部112基于MSI被发布的情况来发生中断,使第一处理装置110认识到数据的传输已完成的情况。第一处理装置110也可根据需要来执行在传输完成后应进行的处理。

步骤S115中,传输装置230的下行接收描述符控制器234在扩展单元存储器220上的接收描述符的有效范围内的规定场所设立传输完成标记。

步骤S116中,中断发生部238将数据传输已完成的情况通知给第二处理装置210。具体而言,中断发生部238经由PCIe来对规定的地址写入规定的数据,由此来发布MSI,使第二处理装置210发生中断。

步骤S117中,扩展单元200的中断控制部212基于MSI被发布的情况来发生中断,使第二处理装置210认识到数据的传输已完成的情况。当第二处理装置210认识到数据的传输完成时,设备驱动器214经由套接字API来将扩展单元存储器220上的保存场所(例如DR1~DRn)作为传输对象数据的保存场所而通知给任务执行部213。任务执行部213从扩展单元存储器220的保存场所(DR1~DRn)读出传输对象数据。

步骤S118中,任务执行部213执行与从扩展单元存储器220读出的传输对象数据相应的处理。

[上行传输时]

图3是例示从扩展单元200向主单元100的上行传输的处理流程的一例的流程图。另外,以下说明的处理流程不过是一例,各处理可尽可能地变更。而且,对于以下说明的处理流程,可根据实施方式来适当地进行步骤的省略、替换以及追加。

步骤S201中,在主单元100中,第一处理装置110的任务控制部113经由套接字API来指示设备驱动器114准备接收从扩展单元200发送的传输对象数据。

步骤S202中,设备驱动器114将为了接收所述传输对象数据所需的接收描述符展开到主单元存储器120中。

步骤S203中,设备驱动器114将表示主单元存储器120中的接收描述符的有效范围的信息(例如地址信息、指示符等)通知给上行接收描述符控制器236。通知的方法并无特别限定,例如也可通过对上行接收描述符控制器236的未图示的尾部(Tail)寄存器写入有效的指示符来进行通知。或者,也可将接收描述符自身从设备驱动器114直接供给至上行接收描述符控制器236。

步骤S204中,上行接收描述符控制器236获取接收描述符。DMAC233对上行接收描述符控制器236所获取的接收描述符进行解释,掌握表示从扩展单元200发送的传输对象数据在主单元存储器120中的保存场所的上行接收数据地址(第四存储器地址、第二存储器地址)。具体而言,DMAC233基于上行接收描述符控制器236所获取的、表示应保存传输对象数据的上行接收数据地址例如UR1~URm的接收描述符(第二信息),来确定应保存传输对象数据的场所。

步骤S205中,在扩展单元200中,第二处理装置210的任务执行部213生成要发送给主单元100的传输对象数据并保存到扩展单元存储器220中。

步骤S206中,任务执行部213经由套接字API来指示设备驱动器214将所保存的传输对象数据发送给主单元100。

步骤S207中,设备驱动器214将为了向主单元100发送传输对象数据所需的发送描述符展开到扩展单元存储器220中。

步骤S208中,设备驱动器214将表示扩展单元存储器220内的发送描述符的有效范围的信息(例如地址信息、指示符等)通知给上行发送描述符控制器237。通知的方法并无特别限定,例如也可通过对上行发送描述符控制器237的未图示的尾部(Tail)寄存器写入有效的指示符来进行通知。或者,也可将发送描述符自身从设备驱动器214直接供给至上行发送描述符控制器237。

步骤S209中,上行发送描述符控制器237获取发送描述符。DMAC233对上行发送描述符控制器237所获取的发送描述符进行解释,掌握表示向主单元100发送的传输对象数据在扩展单元存储器220中的保存场所的上行发送数据地址(第三存储器地址、第一存储器地址)。具体而言,DMAC233基于上行发送描述符控制器237所获取的、表示保存有应发送的传输对象数据的上行发送数据地址例如US1~USm的发送描述符(第一信息),来确定保存有应发送的传输对象数据的场所。步骤S209也可先于步骤S204而执行。

步骤S210中,DMAC233将从扩展单元存储器220中的保存场所(US1~USm)读出的传输对象数据写入至主单元存储器120中的保存场所(UR1~URm)而进行数据传输。当对于所有的传输对象数据完成读出以及写入时(S211的是),传输装置230前进至步骤S212。

步骤S212中,上行发送描述符控制器237在扩展单元存储器220上的发送描述符的有效范围内的规定场所,设立表示数据传输已完成的传输完成标记。

步骤S213中,中断发生部238将数据传输已完成的情况通知给第二处理装置210。具体而言,中断发生部238经由PCIe来对规定的地址写入规定的数据,由此来发布MSI,使第二处理装置210发生中断。

步骤S214中,第二处理装置210的中断控制部212基于MSI被发布的情况来发生中断,使第二处理装置210认识到数据的传输已完成的情况。第二处理装置210也可根据需要来执行在传输完成后应进行的处理。

步骤S215中,传输装置230的上行接收描述符控制器236在主单元存储器120上的接收描述符的有效范围内的规定场所设立传输完成标记。

步骤S216中,中断发生部238将数据传输已完成的情况通知给第一处理装置110。具体而言,中断发生部238经由PCIe来对规定的地址写入规定的数据,由此来发布MSI,使第一处理装置110发生中断。

步骤S217中,主单元100的中断控制部112基于MSI被发布的情况来发生中断,使第一处理装置110认识到数据的传输已完成的情况。当第一处理装置110认识到数据的传输完成时,设备驱动器114经由套接字API来将主单元存储器120的保存场所(UR1~URm)作为传输对象数据的保存场所而通知给任务控制部113。任务控制部113从主单元存储器120的保存场所(UR1~URm)读出传输对象数据。

步骤S218中,任务控制部113执行与从主单元存储器120读出的传输对象数据相应的处理。

[作用、效果]

如上所述,本实施方式中,即便在第一处理装置110与第二处理装置210利用PCIe而连接的情况下,在应用等的上位层中,第一处理装置110与第二处理装置210也能够利用套接字通信来进行数据的收发。

当前,对于进行工业机器的控制的PLC等主单元100,有想要追加搭载与新功能(路由器功能或数据库功能等)相关的应用的需求。关于应用的追加,考虑到会对主单元100的控制性能造成影响的情况,理想的是,搭载在与主单元100为独立单元的扩展单元200中。此时,为了实现主单元100与扩展单元200的高速通信,理想的是,两单元利用PCIe而连接。

但是,若将来主单元100的CPU性能提高,而不再需要考虑控制性能的影响,则预料会产生下述需求,即,想要使用虚拟机管理器(hypervisor)等虚拟技术,在一台主单元100上使追加的应用运行。如果在此时,追加的应用是以基于PCIe的连接为前提而开发,则会产生下述问题,即,必须重新开发应用,以使其改为在一台主单元100上执行。

本公开的一实施例中,在追加的应用(例如任务控制部113以及任务执行部213)中,利用套接字来进行通信,将所述套接字利用设备驱动器(设备驱动器114以及设备驱动器214)而转换为描述符。并且,通过传输装置230的DMAC233,将与描述符相应的数据包传输至传输目标,并利用传输目标的设备驱动器来展开数据包。更具体而言,传输装置230除了DMAC233以外,还包括:获取传输目标的接收描述符的接收描述符控制器;以及获取传输源的发送描述符的发送描述符控制器。由此,既能利用PCIe来连接各单元,又能使上位层的应用彼此进行套接字通信。

由此,对于上位层即追加的应用(例如任务控制部113以及任务执行部213),能够鉴于通用性而以可利用以太网中所用的套接字进行通信的方式来预先开发。作为结果,在将来可能实现在一台主单元100中实施追加功能的形态的情况下,即便不进行应用的重新开发,也能够转变为所述形态。

即,将来无须变更应用的用户接口。由此,例如应用的开发者无须在意所开发的应用是作为扩展单元200而由与主单元100独立的单元来执行,还是在利用虚拟机管理器等而虚拟化的环境下由一台主单元100来执行,而能够通过相同的编码来推进应用的开发。

而且,现状是,主单元100与扩展单元200是利用PCIe而连接,因此除了套接字通信以外,还可相互发生中断。如上所述,根据本公开的一实施例,尤其适合用于期望利用PCIe将单元彼此连接的制品中。

§4变形例

以上,详细说明了本发明的实施方式,但直至前述为止的说明在所有方面不过是本发明的例示。当然可不脱离本发明的范围而进行各种改良或变形。例如可进行如下所述的变更。另外,以下,对于与所述实施方式同样的构成元件使用同样的符号,且对于与所述实施方式同样的点则适当省略了说明。以下的变形例可适当组合。

<4.1>

图4是表示主单元100与扩展单元200的其他连接例的图。如图4所示,相对于一台主单元100,能够连接分别执行多个其他应用的多个扩展单元200。

扩展单元200、扩展单元200a、扩展单元200b…分别具有所述结构的传输装置230。各扩展单元200能够经由各自包括的传输装置230来与主单元100之间进行数据传输。在主单元100的第一处理装置110的上位层中,看上去进行了多个基于以太网的连接,而无须在意基于点对多点的PCIe的连接。

<总结>

作为本公开的一例,为了解决所述问题,本发明采用以下的结构。

即,本发明的一方面的传输装置利用PCIe来与第一设备及第二设备进行通信,所述传输装置包括:直接存储器访问控制器,控制从所述第一设备的第一存储器向所述第二设备的第二存储器的数据传输;第一发送描述符控制器,从所述第一设备获取与所述第一存储器中的保存有传输对象数据的第一存储器地址相关的信息;以及第一接收描述符控制器,从所述第二设备获取与所述第二存储器中的应保存所述传输对象数据的第二存储器地址相关的信息。

根据所述结构,起到下述效果:既能利用PCIe来连接单元间,又能在应用等的上位层中实现利用套接字通信的数据传输。

所述一方面的传输装置中,也可包括:中断发生部,当所述传输对象数据的传输完成时,使所述第一设备或所述第二设备发生中断,通知传输完成。由此,能够使第一设备或第二设备适时地认识到数据传输的完成。

所述一方面的传输装置中,也可包括:第二发送描述符控制器,从所述第二设备获取与所述第二存储器中的保存有传输对象数据的第三存储器地址相关的信息;以及第二接收描述符控制器,从所述第一设备获取与所述第一存储器中的应保存所述传输对象数据的第四存储器地址相关的信息,所述直接存储器访问控制器控制从所述第二设备的所述第二存储器向所述第一设备的所述第一存储器的数据传输。由此,除了从第一存储器向第二存储器的数据传输以外,还能利用套接字通信来实现从第二存储器向第一存储器的数据传输。

本发明的一方面的信息处理装置包括所述任一项的传输装置、所述第二设备以及所述第二存储器,其中,所述第二设备具有:应用执行部,对所述传输对象数据进行处理;以及设备驱动器,从所述应用执行部经由套接字应用程序接口来受理对所述传输对象数据进行传输的指示,并生成对保存有所述传输对象数据的所述第二存储器的存储器地址进行指定的发送描述符来作为所述信息。

根据所述结构,起到下述效果:既能利用PCIe来连接单元间,又能在应用等的上位层中实现利用套接字通信的数据传输。

所述一方面的信息处理装置中,也可为,所述第二设备的所述设备驱动器将所述发送描述符保存至所述第二存储器,所述传输装置的所述直接存储器访问控制器基于所述发送描述符控制器从所述第二存储器获取的所述发送描述符,来确定所述第二存储器中的保存有所述传输对象数据的场所。由此,直接存储器访问控制器能够从第二存储器准确地读出应传输的传输对象数据。

所述一方面的信息处理装置中,也可为,所述传输装置的所述直接存储器访问控制器基于所述发送描述符控制器从所述设备驱动器获取的所述发送描述符,来确定所述第二存储器中的保存有所述传输对象数据的场所。由此,直接存储器访问控制器能够从第二存储器准确地读出应传输的传输对象数据。

本发明的一方面的数据传输方法是由传输装置来执行,所述传输装置利用PCIe来与作为数据的传输源的第一设备及作为所述数据的传输目标的第二设备进行通信,所述数据传输方法包括下述步骤:所述传输装置的发送描述符控制器从所述第一设备获取与所述第一设备的第一存储器中的保存有传输对象数据的第一存储器地址相关的第一信息;所述传输装置的接收描述符控制器从所述第二设备获取与所述第二设备的第二存储器中的应保存所述传输对象数据的第二存储器地址相关的第二信息;以及所述传输装置的直接存储器访问控制器对从所述第一存储器向所述第二存储器的数据进行传输。另外,获取第二信息的步骤也可先于获取第一信息的步骤而执行。

根据所述方法,起到下述效果:既能利用PCIe来连接单元间,又能在应用等的上位层中实现利用套接字通信的数据传输。

〔借助软件的实现例〕

传输装置230的控制块(尤其是第一PCIe接口231、第二PCIe接口232、DMAC233、下行接收描述符控制器234、下行发送描述符控制器235、上行接收描述符控制器236、上行发送描述符控制器237以及中断发生部238)既可通过形成于集成电路(IC(IntegratedCircuit)芯片(chip))等上的逻辑电路(硬件)实现,也可通过软件来实现。

在后者的情况下,传输装置230包括执行实现各功能的软件即程序的命令的计算机。所述计算机例如包括一个以上的处理器(processor),并且包括存储有所述程序的、计算机可读取的记录介质。并且,在所述计算机中,通过所述处理器从所述记录介质读取并执行所述程序,从而达成本发明的目的。作为所述处理器,例如可使用中央处理器(CentralProcessing Unit,CPU)。作为所述记录介质,可使用“并非临时的有形介质”,例如除了只读存储器(Read Only Memory,ROM)等以外,还可使用带(tape)、盘(disk)、卡(card)、半导体存储器、可编程的逻辑电路等。而且,还可更包括展开所述程序的随机存取存储器(RandomAccess Memory,RAM)等。而且,所述程序也可经由可传输此程序的任意传输介质(通信网络或广播波等)而提供给所述计算机。另外,本发明的一实施例也能以通过电子传输来将所述程序具现化的、被嵌入载波中的数据信号的形态来实现。

本发明并不限定于所述的各实施方式,可在权利要求所示的范围内进行各种变更,将不同的实施方式中分别公开的技术部件适当组合而获得的实施方式也包含在本发明的技术范围内。

符号的说明

100:主单元

110:第一处理装置(第一设备、第二设备)

111:机器控制部

112:中断控制部

113:任务控制部

114:设备驱动器

115:PCIe接口

120:主单元存储器(第一存储器、第二存储器)

200:扩展单元(信息处理装置)

210:第二处理装置(第二设备、第一设备)

212:中断控制部

213:任务执行部(应用执行部)

214:设备驱动器

215:PCIe接口

220:扩展单元存储器(第二存储器、第一存储器)

230:传输装置

231:第一PCIe接口

232:第二PCIe接口

233:DMAC(直接存储器访问控制器)

234:下行接收描述符控制器(接收描述符控制器)

235:下行发送描述符控制器(发送描述符控制器)

236:上行接收描述符控制器(接收描述符控制器)

237:上行发送描述符控制器(发送描述符控制器)

238:中断发生部

DS1~DSn:下行发送数据地址(第一存储器地址、第三存储器地址)

DR1~DRn:下行接收数据地址(第二存储器地址、第四存储器地址)

US1~USm:上行发送数据地址(第三存储器地址、第一存储器地址)

UR1~URm:上行接收数据地址(第四存储器地址、第二存储器地址)

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于为临床试验提供记录选择的基于地理聚类数据的数据库缩减

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!