CN117520219A - 一种多soc间基于pcie的外设透传方法和装置 - Google Patents

一种多soc间基于pcie的外设透传方法和装置 Download PDF

Info

Publication number
CN117520219A
CN117520219A CN202311465196.7A CN202311465196A CN117520219A CN 117520219 A CN117520219 A CN 117520219A CN 202311465196 A CN202311465196 A CN 202311465196A CN 117520219 A CN117520219 A CN 117520219A
Authority
CN
China
Prior art keywords
soc
virtual
peripheral
drive
driver
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
CN202311465196.7A
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.)
Lenovo Changfeng Technology Beijing Co Ltd
Original Assignee
Lenovo Changfeng Technology Beijing 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 Lenovo Changfeng Technology Beijing Co Ltd filed Critical Lenovo Changfeng Technology Beijing Co Ltd
Priority to CN202311465196.7A priority Critical patent/CN117520219A/zh
Publication of CN117520219A publication Critical patent/CN117520219A/zh
Pending legal-status Critical Current

Links

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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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/0026PCI express

Landscapes

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

Abstract

本发明提供了一种多SOC间基于PCIE的外设透传方法和装置,涉及外设透传技术领域,包括:在第一SOC上设置第一虚拟驱动,第一虚拟驱动包括透传到第一SOC的外设驱动;在第二SOC上设置第二虚拟驱动;通过PCIE总线将第一虚拟驱动与所述第二虚拟驱动连接;其中,当第二SOC中存在需要透传的外设驱动时,第二虚拟驱动将待处理数据通过PCIE总线传输至第一SOC的第一虚拟驱动。解决了现有技术中多SOC的设备透传存在外设操作效率较低,因为需要通过应用程序来转发外设的数据,难以满足特定的场景需求的技术问题。达到利用PCIE总线,定制操作系统驱动来实现多SOC间集成外设的透传,杜绝守护程序转发损耗的技术效果。

Description

一种多SOC间基于PCIE的外设透传方法和装置
技术领域
本发明涉及外设透传技术领域,具体涉及一种多SOC间基于PCIE的外设透传方法和装置。
背景技术
由于现在嵌入式应用场景的复杂多变,嵌入式板卡使用一个低功耗SOC很难满足需求,多SOC集成到一块板卡越来越普遍,一个SOC需要操作另一个SOC集成的外设的需求也越来越多,这相当于多SOC间的外设透传,但目前实现多SOC间的设备透传比较困难,大多数厂家都选择再外扩一个桥片来实现更多的外设需求,而浪费了其余SOC集成的外设。多SOC的设备透传目前普遍的方法是通过服务端和客户端的守护进程来进行。
上述现有技术至少存在以下技术问题:现有技术中多SOC的设备透传存在外设操作效率较低,因为需要通过应用程序来转发外设的数据,难以满足特定的场景需求的技术问题。
发明内容
本申请的目的是提供一种多SOC间基于PCIE的外设透传方法和装置,解决了现有技术中多SOC的设备透传存在外设操作效率较低,因为需要通过应用程序来转发外设的数据,难以满足特定的场景需求的技术问题。
鉴于上述问题,本申请提供了一种多SOC间基于PCIE的外设透传方法和装置。
第一方面,本申请提供了一种折叠滑动电子设备的双模态装置,所述方法包括:在第一SOC上设置第一虚拟驱动,所述第一虚拟驱动包括透传到第一SOC的外设驱动;在第二SOC上设置第二虚拟驱动;通过PCIE总线将所述第一虚拟驱动与所述第二虚拟驱动连接;其中,当所述第二SOC中存在需要透传的外设驱动时,所述第二虚拟驱动将待处理数据通过PCIE总线传输至第一SOC的第一虚拟驱动。
优选的,所述当所述第二SOC中存在需要透传的外设驱动时,所述第二虚拟驱动将待处理数据通过PCIE总线传输至第一SOC的第一虚拟驱动,包括:所述第一虚拟驱动的利用检测函数识别得到需要透传到所述第一SOC中的第二SOC多个外设;所述检测函数注册相应的外设设备节点及操作函数到所述第一SOC的操作系统中;所述操作函数对外设寄存器的操作转化为对第二虚拟驱动中BAR空间的操作;第二SOC中需要透传的外设驱动,驱动中不在第二SOC的OS中注册设备节点,驱动中的读、写函数传送的数据传递至第二虚拟驱动,由所述第二虚拟驱动通过所述PCIE总线传输至第一SOC的第一虚拟驱动。
优选的,所述方法还包括:当第二SOC中存在需要透传的外设驱动时,通过第二虚拟驱动中的中断函数发生中断,将待处理数据转发至第二虚拟驱动;所述第二虚拟驱动接收到待处理数据后,产生PCIE总线中断,通知所述第一虚拟驱动。
优选的,所述操作函数对外设寄存器的操作转化为对第二虚拟驱动中BAR空间的操作,包括:所述操作函数对外设寄存器的操作转化为对第二虚拟驱动中BAR空间的mmio地址的操作;所述第二SOC中的第二虚拟驱动接收到第一虚拟驱动对BAR空间的mmio地址操作,将对mmio地址的操作转化为对实际外设寄存器的操作。
第二方面,本申请提供了一种多SOC间基于PCIE的外设透传装置,所述装置包括:
第一驱动模块,所述第一驱动模块用于在第一SOC上设置第一虚拟驱动,所述第一虚拟驱动包括透传到第一SOC的外设驱动;
第二驱动模块,所述第二驱动模块用于在第二SOC上设置第二虚拟驱动;
总线连接模块,所述总线连接模块用于通过PCIE总线将所述第一虚拟驱动与所述第二虚拟驱动连接;其中,当所述第二SOC中存在需要透传的外设驱动时,所述第二虚拟驱动将待处理数据通过PCIE总线传输至第一SOC的第一虚拟驱动。
本申请中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本申请通过开发SOC中的虚拟驱动,在多个SOC上分别设置虚拟驱动,通过PCIE总线将多SOC连接,建立虚拟驱动的连接,当识别到需要透传的外设驱动时,通过PCIE总线将需要透传的外设设备的数据传输到主CPU中,无需守护程序进行转发,实现了利用PCIE总线,定制操作系统驱动来实现多SOC间集成外设的透传,达到杜绝守护程序转发损耗的技术效果。从而解决了现有技术中多SOC的设备透传存在外设操作效率较低,因为需要通过应用程序来转发外设的数据,难以满足特定的场景需求的技术问题。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
图1为本申请实施例提供的一种多SOC间基于PCIE的外设透传方法的流程示意图;
图2为本申请实施例中现有技术中多SOC间外设透传方法的示意图;
图3为本申请实施例中一种多SOC间基于PCIE的外设透传方法的示意图;
图4为本申请实施例中一种多SOC间基于PCIE的外设透传装置的结构示意图。
附图标记说明:第一驱动模块11,第二驱动模块12,总线连接模块13。
具体实施方式
本申请通过提供了一种多SOC间基于PCIE的外设透传方法和装置,用于解决现有技术中多SOC的设备透传存在外设操作效率较低,因为需要通过应用程序来转发外设的数据,难以满足特定的场景需求的技术问题。
针对上述技术问题,本申请提供的技术方案总体思路如下:
通过开发SOC中的虚拟驱动,包括:PCIE RC驱动、PCIE EP驱动及透传到SOC的外设驱动,在多个SOC上分别设置虚拟驱动,在主CPU中安装PCIE RC驱动,在透传外设的SOC上安装PCIE EP驱动,通过PCIE总线将多SOC连接,建立虚拟驱动的连接,当识别到需要透传的外设驱动时,通过PCIE总线将需要透传的外设设备的数据传输到主CPU中,无需守护程序进行转发,实现了利用PCIE总线,定制操作系统驱动来实现多SOC间集成外设的透传,达到杜绝守护程序转发损耗的技术效果。
应理解:SOC为System on Chip的缩写,称为系统级芯片,也有称片上系统。
PCIE为peripheral component interconnect express的缩写,是一种高速串行计算机扩展总线标准。
在介绍了本申请基本原理后,下面,将参考附图对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。基于本申请的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部。
实施例一:本发明实施例提供了一种多SOC间基于PCIE的外设透传方法,如图1所示,所述方法包括:
S10:在第一SOC上设置第一虚拟驱动,所述第一虚拟驱动包括透传到第一SOC的外设驱动;
S20:在第二SOC上设置第二虚拟驱动;
S30:通过PCIE总线将所述第一虚拟驱动与所述第二虚拟驱动连接;
其中,当所述第二SOC中存在需要透传的外设驱动时,所述第二虚拟驱动将待处理数据通过PCIE总线传输至第一SOC的第一虚拟驱动。
具体的,如图2所示,当前在进行SOC之间的外设透传时,通过服务端和客户端的守护进程来进行,例如SOC A需要操作SOC B的外设1,则通过Server Thread发送操作外设1的相应命令,Client Thread接收到命令后操作SOC B的外设1,返回的数据发送给ServerThread。
本发明采用如图3所示,在第一SOC即图示SOC A上设置第一虚拟驱动即图示PCIERC驱动,其中PCIE RC驱动包括透传到SOC A的外设驱动,在第二SOC即图示SOC B上设置第二虚拟驱动即图示PCIE EP驱动,通过PCIE总线将RC驱动与EP驱动连接,PCIE RC驱动识别到有需要透传的外设驱动时,PCIE EP驱动将待处理的数据通过PCIE总线转发至PCIE RC驱动,实现将透传外设的数据发送至主CPU中,无需通过守护程序进行转发,造成损耗,同时利用PCIE的通讯速率从驱动层直接进行外设数据的获取,无需上传至应用层进行传输,避免应用层的开销。解决了现有技术中多SOC的设备透传存在外设操作效率较低,因为需要通过应用程序来转发外设的数据,难以满足特定的场景需求的技术问题。
所述当所述第二SOC中存在需要透传的外设驱动时,所述第二虚拟驱动将待处理数据通过PCIE总线传输至第一SOC的第一虚拟驱动,包括:
所述第一虚拟驱动的利用检测函数识别得到需要透传到所述第一SOC中的第二SOC多个外设;
所述检测函数注册相应的外设设备节点及操作函数到所述第一SOC的操作系统中;
所述操作函数对外设寄存器的操作转化为对第二虚拟驱动中BAR空间的操作;
第二SOC中需要透传的外设驱动,驱动中不在第二SOC的OS中注册设备节点,驱动中的读、写函数传送的数据传递至第二虚拟驱动,由所述第二虚拟驱动通过所述PCIE总线传输至第一SOC的第一虚拟驱动。
当第二SOC中存在需要透传的外设驱动时,通过第二虚拟驱动中的中断函数发生中断,将待处理数据转发至第二虚拟驱动;
所述第二虚拟驱动接收到待处理数据后,产生PCIE总线中断,通知所述第一虚拟驱动。
所述操作函数对外设寄存器的操作转化为对第二虚拟驱动中BAR空间的操作,包括:所述操作函数对外设寄存器的操作转化为对第二虚拟驱动中BAR空间的mmio地址的操作;所述第二SOC中的第二虚拟驱动接收到第一虚拟驱动对BAR空间的mmio地址操作,将对mmio地址的操作转化为对实际外设寄存器的操作。
具体的,SOC A中的PCIE RC驱动,RC驱动中probe函数识别出来是需要透传到SOCA中的SOC B的多个外设。probe后注册相应的外设设备节点及操作函数等到SOC A的操作系统中,操作函数对外设寄存器的操作都转化为对PCIE RC中bar空间的mmio地址的操作。SOCB中的PCIE EP驱动接收到PCIE RC对bar空间的mmio操作把对mmio的操作转化为对实际外设寄存器的操作。
SOC B中需要透传的外设驱动,驱动中不需要在SOC B的OS中注册设备节点,驱动中的read,write等函数传送的数据都传递给PCIE EP驱动,由EP驱动转发给SOC A的RC驱动。SOC B中需要透传的外设驱动,中断函数发生中断时把需要处理的数据转发给PCIE EP,EP接收到数据后产生PCIE中断通知PCIE RC。通过驱动层完成数据的转发,不用上传至应用层进行处理,避免了应用层的开销。
综上,本申请至少具有如下有益效果:
1.充分利用多SOC中的外设资源。
2.无需守护程序转发,大幅度增加透传外设的效率。
3.采用PCIE通信的外设驱动定制方案,充分利用PCIE的通讯速率从驱动层直接进行外设数据的获取,避免应用层的开销。
实施例二:基于与前述实施例中一种多SOC间基于PCIE的外设透传方法同样的发明构思,如图4所示,本发明实施例提供了一种多SOC间基于PCIE的外设透传装置,所述装置包括:
第一驱动模块11,所述第一驱动模块11用于在第一SOC上设置第一虚拟驱动,所述第一虚拟驱动包括透传到第一SOC的外设驱动;
第二驱动模块12,所述第二驱动模块12用于在第二SOC上设置第二虚拟驱动;
总线连接模块13,所述总线连接模块13用于通过PCIE总线将所述第一虚拟驱动与所述第二虚拟驱动连接;其中,当所述第二SOC中存在需要透传的外设驱动时,所述第二虚拟驱动将待处理数据通过PCIE总线传输至第一SOC的第一虚拟驱动。
进一步的,所述装置还包括:
检测函数单元,用于所述第一虚拟驱动的利用检测函数识别得到需要透传到所述第一SOC中的第二SOC多个外设;
所述检测函数注册相应的外设设备节点及操作函数到所述第一SOC的操作系统中;
所述操作函数对外设寄存器的操作转化为对第二虚拟驱动中BAR空间的操作;
第二SOC中需要透传的外设驱动,驱动中不在第二SOC的OS中注册设备节点,驱动中的读、写函数传送的数据传递至第二虚拟驱动,由所述第二虚拟驱动通过所述PCIE总线传输至第一SOC的第一虚拟驱动。
进一步的,所述装置还包括:
当第二SOC中存在需要透传的外设驱动时,通过第二虚拟驱动中的中断函数发生中断,将待处理数据转发至第二虚拟驱动;
所述第二虚拟驱动接收到待处理数据后,产生PCIE总线中断,通知所述第一虚拟驱动。
进一步的,所述装置还包括:
所述操作函数对外设寄存器的操作转化为对第二虚拟驱动中BAR空间的mmio地址的操作;
所述第二SOC中的第二虚拟驱动接收到第一虚拟驱动对BAR空间的mmio地址操作,将对mmio地址的操作转化为对实际外设寄存器的操作。
前述实施例一中的一种多SOC间基于PCIE的外设透传方法具体实例同样适用于本实施例的一种多SOC间基于PCIE的外设透传装置,通过前述对一种多SOC间基于PCIE的外设透传方法的详细描述,本领域技术人员可以清楚地知道本实施例中一种多SOC间基于PCIE的外设透传装置,所以为了说明书的简洁,在此不再详述。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请及其等同技术的范围之内,则本申请意图包括这些改动和变型在内。

Claims (5)

1.一种多SOC间基于PCIE的外设透传方法,其特征在于,所述方法包括:
在第一SOC上设置第一虚拟驱动,所述第一虚拟驱动包括透传到第一SOC的外设驱动;
在第二SOC上设置第二虚拟驱动;
通过PCIE总线将所述第一虚拟驱动与所述第二虚拟驱动连接;
其中,当所述第二SOC中存在需要透传的外设驱动时,所述第二虚拟驱动将待处理数据通过PCIE总线传输至第一SOC的第一虚拟驱动。
2.如权利要求1所述的方法,其特征在于,所述当所述第二SOC中存在需要透传的外设驱动时,所述第二虚拟驱动将待处理数据通过PCIE总线传输至第一SOC的第一虚拟驱动,包括:
所述第一虚拟驱动的利用检测函数识别得到需要透传到所述第一SOC中的第二SOC多个外设;
所述检测函数注册相应的外设设备节点及操作函数到所述第一SOC的操作系统中;
所述操作函数对外设寄存器的操作转化为对第二虚拟驱动中BAR空间的操作;
第二SOC中需要透传的外设驱动,驱动中不在第二SOC的OS中注册设备节点,驱动中的读、写函数传送的数据传递至第二虚拟驱动,由所述第二虚拟驱动通过所述PCIE总线传输至第一SOC的第一虚拟驱动。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
当第二SOC中存在需要透传的外设驱动时,通过第二虚拟驱动中的中断函数发生中断,将待处理数据转发至第二虚拟驱动;
所述第二虚拟驱动接收到待处理数据后,产生PCIE总线中断,通知所述第一虚拟驱动。
4.如权利要求2所述的方法,其特征在于,所述操作函数对外设寄存器的操作转化为对第二虚拟驱动中BAR空间的操作,包括:
所述操作函数对外设寄存器的操作转化为对第二虚拟驱动中BAR空间的mmio地址的操作;
所述第二SOC中的第二虚拟驱动接收到第一虚拟驱动对BAR空间的mmio地址操作,将对mmio地址的操作转化为对实际外设寄存器的操作。
5.一种多SOC间基于PCIE的外设透传装置,其特征在于,所述装置包括:
第一驱动模块,所述第一驱动模块用于在第一SOC上设置第一虚拟驱动,所述第一虚拟驱动包括透传到第一SOC的外设驱动;
第二驱动模块,所述第二驱动模块用于在第二SOC上设置第二虚拟驱动;
总线连接模块,所述总线连接模块用于通过PCIE总线将所述第一虚拟驱动与所述第二虚拟驱动连接;其中,当所述第二SOC中存在需要透传的外设驱动时,所述第二虚拟驱动将待处理数据通过PCIE总线传输至第一SOC的第一虚拟驱动。
CN202311465196.7A 2023-11-06 2023-11-06 一种多soc间基于pcie的外设透传方法和装置 Pending CN117520219A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311465196.7A CN117520219A (zh) 2023-11-06 2023-11-06 一种多soc间基于pcie的外设透传方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311465196.7A CN117520219A (zh) 2023-11-06 2023-11-06 一种多soc间基于pcie的外设透传方法和装置

Publications (1)

Publication Number Publication Date
CN117520219A true CN117520219A (zh) 2024-02-06

Family

ID=89765576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311465196.7A Pending CN117520219A (zh) 2023-11-06 2023-11-06 一种多soc间基于pcie的外设透传方法和装置

Country Status (1)

Country Link
CN (1) CN117520219A (zh)

Similar Documents

Publication Publication Date Title
US7945721B1 (en) Flexible control and/or status register configuration
US6272584B1 (en) System board with consolidated EEPROM module
US9164938B2 (en) Method to integrate ARM ecosystem IPs into PCI-based interconnect
US7966402B2 (en) Switch to selectively couple any of a plurality of video modules to any of a plurality of blades
US20090292854A1 (en) Use of bond option to alternate between pci configuration space
US20130246680A1 (en) Hot plug process in a distributed interconnect bus
US7752376B1 (en) Flexible configuration space
US9026687B1 (en) Host based enumeration and configuration for computer expansion bus controllers
CN112639753B (zh) 聚合带内中断
US8041867B2 (en) Method and apparatus for enhancing data rate of advanced micro-controller bus architecture
CN110968352B (zh) 一种pcie设备的复位系统及服务器系统
EP2423826A2 (en) Computer system, i/o device control method, and i/o drawer
CN116069711B (zh) 直接内存访问控制器、异构设备、内存访问方法及介质
KR960016420B1 (ko) 버스 어댑터 시스템
US7114102B2 (en) Monitoring system and method for monitoring and processing data transmitted between a host and a managing system
US7793024B2 (en) Method for utilizing a PCI-Express bus to communicate between system chips
US7096290B2 (en) On-chip high speed data interface
CN111124985A (zh) 一种移动终端只读控制方法及装置
CN113904970A (zh) 一种半导体测试设备的传输系统及方法
US10176133B2 (en) Smart device with no AP
CN101599050B (zh) 可适配的pci-e控制器核及其方法
CN117520219A (zh) 一种多soc间基于pcie的外设透传方法和装置
US6185523B1 (en) Apparatus and method for computer system interrupt emulation
CN115905072A (zh) 计算机系统、基于PCIe设备的控制方法及相关设备
US7853843B2 (en) Method and system for testing chips

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