CN106325377A - 外部设备扩展卡及输入输出外部设备的数据处理方法 - Google Patents
外部设备扩展卡及输入输出外部设备的数据处理方法 Download PDFInfo
- Publication number
- CN106325377A CN106325377A CN201510400020.2A CN201510400020A CN106325377A CN 106325377 A CN106325377 A CN 106325377A CN 201510400020 A CN201510400020 A CN 201510400020A CN 106325377 A CN106325377 A CN 106325377A
- Authority
- CN
- China
- Prior art keywords
- data
- internal storage
- storage location
- peripheral equipment
- expansion card
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种外部设备扩展卡及输入输出外部设备的数据处理方法,该外部设备扩展卡包括:用于插设在主机的内存卡槽上的接口单元、内存单元、内存单元控制器、输入输出I/O外部设备、I/O外部设备控制器,可以通过接口单元直接插在主机的内存卡槽内,且该外部设备扩展卡上集成了内存单元和I/O外部设备,从而I/O外部设备控制器和主机可以直接通过内存单元的物理地址访问内存单元,即I/O外部设备控制器和主机可以直接根据内存单元内的物理地址读取内存单元中的数据,从而大大减小了主机和I/O外部设备从内存中读取数据的开销。
Description
技术领域
本发明涉及通信技术,尤其涉及一种外部设备扩展卡及输入输出外部设备的数据处理方法。
背景技术
输入/输出(Input/Output,简称I/O)外部设备是计算机系统的重要组成部分与硬件资源。目前,主流计算机系统的I/O外部设备主要包括两类,一类是传统的I/O外部设备控制器,另一类是硬件加速器扩展卡。
现有技术中,I/O外部设备与计算机系统的中央处理器(CentralProcessing Unit,简称CPU)有两种耦合方式。其中主要采用的耦合方式是基于外设部件互连标准(Peripheral Component Interconnect,简称PCI)或PCI快速通道(PCI Express,简称PCIe)等专用高带宽外设总线的分离松耦合互连实现方式,在这种方式中,I/O外部设备与CPU通过PCI或PCIe等芯片间的高速互连总线进行通信,以传递原始数据与处理结果。
但是,采用上述分离松互连实现方式,计算机系统的CPU要访问I/O外部设备需要跨过多个总线接口,从而造成大量通信协议转换开销。
发明内容
本发明提供一种外部设备扩展卡及输入输出外部设备的数据处理方法,用于解决现有技术中CPU访问I/O外部设备开销大的问题。
本发明第一方面提供一种外部设备扩展卡,包括:用于插设在主机的内存卡槽上的接口单元、内存单元、内存单元控制器、输入输出I/O外部设备、I/O外部设备控制器;
所述接口单元与所述内存单元控制器、所述I/O外部设备控制器通信连接;
所述内存单元与所述内存单元控制器通信连接,所述I/O外部设备控制器与所述I/O外部设备通信连接;
所述I/O外部设备控制器与所述内存单元控制器通信连接;其中,
所述I/O外部设备控制器,用于向所述内存单元控制器发送携带所述内存单元中物理地址的第一读取请求,通过所述内存单元控制器从所述内存单元内读取所述物理地址对应的数据;所述接口单元,用于接收所述主机发送的携带所述内存单元中物理地址的第二读取请求,并将所述第二读取请求转发给所述内存单元控制器,通过所述内存单元控制器从所述内存单元内读取所述物理地址对应的数据。
结合第一方面,在第一方面的第一种可能的实施方式中,所述内存单元控制器,用于接收所述主机通过所述接口单元发送的数据缓存空间申请请求,并根据所述数据缓存空间申请请求在所述内存单元内预留数据缓存空间。
结合第一方面,在第一方面的第二种可能的实施方式中,所述外部设备扩展卡还包括:用于连接远程外部设备扩展卡的互连单元,所述互连单元与所述接口单元通信连接;
所述互连单元,用于接收所述主机通过所述接口单元发送的第三读取请求,并将所述第三读取请求转发给所述远程外部设备扩展卡的互连单元,以读取所述远程外部设备扩展卡的内存单元中的数据;
其中,所述第三读取请求由所述远程外部设备扩展卡的互连单元发送给所述远程外部设备扩展卡的内存单元控制器,所述第三读取请求中携带所述远程外部设备扩展卡的内存单元中的物理地址。
结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述外部设备扩展卡还包括:容寻址存储器CAM,所述CAM与所述接口单元、所述互连单元通信连接;
所述CAM,用于临时存储所述远程外部设备扩展卡发送的数据。
本发明实施例第二方面提供一种输入输出外部设备的数据处理方法,所述方法用于外部设备扩展卡,所述外部设备扩展卡包括:用于插设在主机的内存卡槽上的接口单元、内存单元、内存单元控制器、输入输出I/O外部设备、I/O外部设备控制器;
所述方法包括:
所述I/O外部设备控制器获取待处理数据,并将所述待处理数据发送给所述I/O外部设备进行处理;
所述I/O外部设备对所述待处理数据进行处理,并将处理后的数据发送给所述I/O外部设备控制器;
所述I/O外部设备控制器将所述处理后的数据发送给所述内存单元控制器,由所述内存单元控制器将所述处理后的数据存储在所述内存单元中;
所述内存单元控制器接收所述主机通过所述接口单元发送的数据访问请求,并根据所述数据访问请求携带的所述内存单元中的物理地址在所述内存单元中读取所述处理后的数据,并将所述处理后的数据通过所述接口单元发送给所述主机。
结合第二方面,在第二方面的第一种可能的实施方式中,所述I/O外部设备控制器获取待处理数据,包括:
所述I/O外部设备控制器向所述内存单元控制器发送待处理数据读取请求;
所述内存单元控制器根据所述待处理数据读取请求中携带的所述内存单元中的物理地址在所述内存单元中读取所述待处理数据,并将所述待处理数据发送给所述I/O外部设备控制器。
结合第二方面,在第二方面的第二种可能的实施方式中,所述I/O外部设备控制器获取待处理数据,包括:
所述I/O外部设备控制器接收主机通过所述接口单元发送的待处理数据。
结合第二方面,在第二方面的第三种可能的实施方式中,所述外部设备扩展卡还包括:用于连接远程外部设备扩展卡的互连单元;
所述互连单元接收主机通过所述接口单元发送的远程外部设备扩展卡数据访问请求,并将所述远程外部设备扩展卡数据访问请求通过所述远程外部设备扩展卡的互连单元转发给所述远程外部设备扩展卡的内存单元控制器,其中,所述远程外部设备扩展卡数据访问请求中携带所述远程外部设备扩展卡中内存单元中的物理地址,用于请求所述远程外部设备扩展卡的内存单元中存储的处理后数据;
所述互连单元接收所述远程外部设备扩展卡的内存单元控制器通过所述远程外部设备扩展卡的互连单元转发的远程外部设备扩展卡的内存单元中的处理后数据,并将该将所述远程外部设备扩展卡的内存单元中的处理后数据通过所述接口单元转发给主机。
结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,所述互连单元接收主机通过所述接口单元发送的远程外部设备扩展卡数据访问请求之后,还包括:
若预设时间段内,所述互连单元未接收到所述远程外部设备扩展卡的互连单元转发的所述处理后数据,则通过所述接口单元向所述主机发送错误标识。
结合第二方面的第四种可能的实施方式,在第二方面的第五种可能的实施方式中,所述外部设备扩展卡还包括:容寻址存储器CAM;
若所述接口单元向所述主机发送错误标识之后,所述互连单元接收到所述远程外部设备扩展卡的互连单元转发的所述处理后数据,则将所述处理后数据存储在所述CAM中,并通过所述接口单元向所述主机发送第一中断信息;
所述接口单元接收所述主机在接收到所述第一中断信息后再次发送的远程外部设备扩展卡数据访问请求,根据所述再次发送的远程外部设备扩展卡数据访问请求将所述CAM中的处理后数据发送给所述主机。
结合第二方面,在第二方面的第六种可能的实施方式中,所述I/O外部设备控制器获取待处理数据,并将所述待处理数据发送给所述I/O外部设备进行处理之前,还包括:
所述I/O外部设备控制器接收所述主机通过所述接口单元发送的工作状态读取请求,并根据所述工作状态读取请求将工作状态数据通过所述接口单元发送给所述主机;
所述I/O外部设备控制器接收所述主机通过所述接口单元发送的更新后的工作状态数据,并根据所述更新后的工作状态数据启动所述I/O外部设备。
结合第二方面的第六种可能的实施方式,在第二方面的第七种可能的实施方式中,所述I/O外部设备控制器接收所述主机通过所述接口单元发送的工作状态读取请求之前,还包括:
所述内存单元控制器接收所述主机通过所述接口单元发送的数据缓存空间申请请求,所述数据缓存空间用于存储所述处理后的数据;
所述内存单元控制器根据所述数据缓存空间申请请求在所述内存单元中预留所述数据缓存空间。
结合第二方面,在第二方面的第八种可能的实施方式中,所述I/O外部设备对所述待处理数据进行处理,并将处理后的数据发送给所述I/O外部设备控制器之后,还包括:
所述I/O外部设备控制器通过所述接口单元向所述主机发送第二中断信息,所述第二中断信息用于指示所述I/O外部设备已经完成数据处理。
本发明实施例提供的外部设备扩展卡及输入输出外部设备的数据处理方法,可以通过接口单元直接插在主机的内存卡槽内,且该外部设备扩展卡上集成了内存单元和I/O外部设备,从而I/O外部设备控制器和主机可以直接通过内存单元的物理地址访问内存单元,即I/O外部设备控制器和主机可以直接根据内存单元内的物理地址读取内存单元中的数据,从而大大减小了主机和I/O外部设备从内存中读取数据的开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的外部设备扩展卡实施例一的结构示意图;
图2为本发明提供的外部设备扩展卡实施例二的结构示意图;
图3为本发明提供的外部设备扩展卡系统实施例一的结构示意图;
图4为本发明提供的外部设备扩展卡系统实施例二的结构示意图;
图5为本发明提供的I/O外部设备的数据处理方法实施例一的流程示意图;
图6为本发明提供的I/O外部设备的数据处理方法实施例二的流程示意图;
图7为本发明提供的I/O外部设备的数据处理方法实施例三的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的外部设备扩展卡实施例一的结构示意图,如图1所示,该外部设备扩展卡包括:用于插设在主机的内存卡槽上的接口单元01、内存单元02、内存单元控制器03、输入输出(Input/Output,简称I/O)外部设备04、I/O外部设备控制器05。
其中,参照图1,接口单元01与内存单元控制器03、I/O外部设备控制器05通信连接。内存单元02与内存单元控制器03通信连接,I/O外部设备04与I/O外部设备控制器05通信连接。I/O外部设备控制器05与内存单元控制器03通信连接。
具体实现时,上述主机可以是计算机、处理器等具有内存卡槽的设备。常见的内存卡槽包括:双列直插式存储模块(Dual-Inline-Memory-Modules,简称DIMM)卡槽,但并不以此为限。
上述内存单元02可以是各种版本的双倍速率同步动态随机存储器(Double Data Rate,简称DDR),像DDR、DDR2、DDR3等,但并不以此为限,其他可以作为内存的存储器均可以。
具体地,上述I/O外部设备控制器05,用于向内存单元控制器03发送携带内存单元02中物理地址的第一读取请求,通过上述内存单元控制器03从内存单元02中读取上述物理地址对应的数据。
接收单元01,用于接收主机发送的携带上述内存单元02中物理地址的第二读取请求,并将第二读取请求转发给内存单元控制器03,通过内存单元控制器03从内存单元02内读取物理地址对应的数据。
具体地,内存单元02中的物理地址可以由主机上内存卡槽的物理地址决定,该内存单元02中的物理地址在内存卡槽的物理地址范围内。外部设备扩展卡插入内存卡槽、确定完内存单元02的物理地址后,将内存单元02的物理地址共享给主机和I/O外部设备。从而,主机和I/O外部设备可以直接采用内存单元02的物理地址从内存单元中读取数据。
本实施例提供的外部设备扩展卡,可以通过接口单元直接插在主机的内存卡槽内,且该外部设备扩展卡上集成了内存单元和I/O外部设备,从而I/O外部设备控制器和主机可以直接通过内存单元的物理地址访问内存单元,即I/O外部设备控制器和主机可以直接根据内存单元内的物理地址读取内存单元中的数据,从而大大减小了主机和I/O外部设备从内存中读取数据的开销。
进一步地,内存单元控制器03,可以用于接收主机通过接口单元01发送的数据缓存空间申请请求,并根据该数据缓存空间申请请求在内存单元02内预留数据缓存空间。该数据缓存空间可以用来存储一些待处理的数据,或者,处理后的数据。
图2为本发明提供的外部设备扩展卡实施例二的结构示意图,如图2所示,在图1的基础上,该外部设备扩展卡还包括:用于连接远程外部设备扩展卡的互连单元06,该互连单元06与接口单元01通信连接。
图3为本发明提供的外部设备扩展卡系统实施例一的结构示意图,如图3所示,该系统包括本地外部设备扩展卡101和远程外部设备扩展卡102,其中,本地外部设备扩展卡101是直接插在主机内存卡槽上的,远程外部设备扩展卡102与本地外部设备扩展卡的结构相同,也包括:接口单元11、内存单元12、内存单元控制器13、I/O外部设备14、I/O外部设备控制器15和互连单元16。
其中的I/O外部设备类型可以不同,通过将远程外部设备扩展卡102的互连单元16与本地外部设备扩展卡101的互连单元06连接实现本地外部设备扩展卡101和远程外部设备扩展卡102的连接。但不以图3为限,依照这种方式,可以扩展多个远程外部设备扩展卡。即本实施例提供的外部设备扩展卡实现了外部设备扩展卡的可扩展性,避免一个外部设备扩展卡插入内存卡槽后,就限制了I/O外部设备的类型。
互连单元06,用于接收主机通过接口单元01发送的第三读取请求,并将第三读取请求转发给远程外部设备扩展卡的互连单元16,以读取所述远程外部设备扩展卡的内存单元中的数据。其中,第三读取请求由远程外部设备扩展卡的互连单元16发送给远程外部设备扩展卡的内存单元控制器13,该第三读取请求中携带远程外部设备扩展卡的内存单元12中的物理地址。
具体实现时,远程外部设备扩展卡的内存单元12的物理地址也可以由主机的内存卡槽的物理地址确定,该远程外部设备扩展卡的内存单元12的物理地址也在内存卡槽的物理地址范围内,但与本地外部设备扩展卡的内存单元的物理地址不重合。
图4为本发明提供的外部设备扩展卡系统实施例二的结构示意图,参照图4,以本地外部设备扩展卡为例,上述外部设备扩展卡还可以包括:内容寻址存储器(Content Addressable Memory,简称CAM)07,该CAM07与接口单元01、互连单元06通信连接。
该CAM07,用于临时存储远程外部设备扩展卡发送的数据。具体地,主机访问远程外部设备扩展卡的内存单元过程中,如果远程外部设备扩展卡在预设时间内,没有接收到远程外部设备扩展卡返回的数据,则向主机发送错误标识,在发送错误标识后,如果远程外部设备扩展卡又返回了主机请求的数据,则将这些数据临时存储在本地外部设备扩展卡的CAM07中,等主机再次请求的时候,就直接将本地外部设备扩展卡的CAM07中的数据发送给主机。
需要说明的是,上述I/O外部设备可以是传统I/O外部设备,也可以是硬件加速器扩展卡等,相应地,I/O外部设备是传统I/O外部设备时,上述I/O外部设备控制单器05是传统的I/O外部设备控制器,I/O外部设备是硬件加速器扩展卡时,上述I/O外部设备控制单器05可以是硬件加速器,但并不以此为限。
图5为本发明提供的I/O外部设备的数据处理方法实施例一的流程示意图,该方法用于前述外部设备扩展卡,该外部设备扩展卡的结构可参照图1实施例,在此不再赘述,如图2所示,该方法包括:
S501、I/O外部设备控制器获取待处理数据,并将该待处理数据发送给I/O外部设备进行处理。
S502、I/O外部设备对上述待处理数据进行处理,并将处理后的数据发送给I/O外部设备控制器。
S503、I/O外部设备控制器将上述处理后的数据发送给内存单元控制器,由该内存单元控制器将该处理后的数据存储在内存单元中。
S504、内存单元控制器接收主机通过接口单元发送的数据访问请求,并根据该数据访问请求携带的上述内存单元中的物理地址在内存单元读取处理后的数据,并将该处理后的数据通过接口单元发送给主机。进而主机可以采用处理后的数据进行进一步地处理。
具体地,可以是由主机中的CPU上的软件或应用程序来发送数据访问请求。数据访问请求中携带的物理地址是上述处理后的数据在内存单元中对应的地址。
本实施例中,I/O外部设备控制器将I/O外部设备处理后的数据存储在内存单元中,主机可以直接读取内存单元内存储的I/O外部设备处理后的数据,实现了主机可以直接对内存单元中的数据进行读写,大大减小了I/O外设控制器与主机进行交互时存在的数据搬移开销。
另一实施例中,上述I/O外部设备控制器获取待处理数据可以有两种情况:
(1)待处理数据预先存储在外部设备扩展卡的内存单元中,具体地,I/O外部设备控制器向内存单元控制器发送待处理数据读取请求;内存单元控制器根据上述待处理数据读取请求中携带的内存单元中的物理地址在内存单元中读取待处理数据,并将该待处理数据发送给I/O外部设备控制器。进而由I/O外部设备控制器将待处理数据发送给I/O外部设备进行处理。其中,待处理数据读取请求中携带的内存单元中的物理地址是待处理数据在内存单元中对应的物理地址。
本实施例中I/O外部设备控制器可以直接采用直接内存访问(DirectMemory Access,简称DMA)的方式对内存单元直接进行读写。
(2)I/O外部设备控制器接收主机通过接口单元发送的待处理数据。即该待处理数据是由主机中其它设备发送给外部设备扩展卡内的I/O外部设备控制器的,例如,可以是主机中网卡通过主机发送给该I/O外部设备控制器的。
I/O外部设备控制器获取待处理数据,并将该待处理数据发送给I/O外部设备进行处理之前,I/O外部设备控制器接收主机通过接口单元发送的工作状态读取请求,并根据该工作状态读取请求将工作状态数据通过接口单元发送给主机。进而,I/O外部设备控制器接收该主机通过接口单元发送的更新后的工作状态数据,并根据该更新后的工作状态数据启动上述I/O外部设备。
需要说明的是,I/O外部设备控制器中可以包括多个不同的寄存器,由寄存器的值来表示该外部设备扩展卡的工作状态,即I/O外部设备控制器返给主机的工作状态数据是各个寄存器的值,主机可以对这些寄存器的值进行修改,修改后返回给外部设备扩展卡,以启动外部设备扩展卡中的I/O外部设备。
更进一步地,I/O外部设备控制器接收主机通过接口单元发送的工作状态读取请求之前,上述内存单元控制器还可以接收主机通过接口单元发送的数据缓存空间申请请求,进而,该内存单元控制器根据缓存空间申请请求在上述内存单元中预留上述数据缓存空间。其中,上述该数据缓存空间用于存储上述处理后的数据。另外,对于上述需要在内存单元存储待处理数据的情况,该数据缓存空间还可以用于存储待处理数据。
具体实现过程中,内存单元控制器接收到数据缓冲空间申请请求后,对内存单元进行初始化,以预留数据缓冲空间。
参照图2、图3,上述外部设备扩展卡还包括:互连单元。
图6为本发明提供的I/O外部设备的数据处理方法实施例二的流程示意图,参照图3、图4的外部设备扩展卡系统,具体地,主机也可以直接读取远程外部设备扩展卡的内存单元中的数据,如图6所示,具体地:
S601、互连单元接收主机通过接口单元发送的远程外部设备扩展卡数据访问请求,并将远程外部设备扩展卡数据访问请求通过远程外部设备扩展卡的互连单元转发给远程外部设备扩展卡的内存单元控制器。其中,该远程外部设备扩展卡数据访问请求中携带远程外部设备扩展卡中内存单元中的物理地址,用于请求所述远程外部设备扩展卡的内存单元中存储的处理后数据。
具体地,远程外部设备扩展卡中的I/O外部设备处理后的数据也存储在远程外部设备扩展卡中的内存单元中,主机可以通过远程外部设备扩展卡中内存单元的物理地址直接访问远程外部设备扩展卡中的内存单元,远程外部设备扩展卡数据访问请求中携带的物理地址,是处理后数据在远程外部设备扩展卡的内存单元中对应的物理地址。
S602、互连单元接收远程外部设备扩展卡的内存单元控制器通过远程外部设备扩展卡的互连单元转发的远程外部设备扩展卡的内存单元中的处理后数据,并将该远程外部设备扩展卡的内存单元中的处理后数据转发给主机。
图7为本发明提供的I/O外部设备的数据处理方法实施例三的流程示意图,主机在访问远程外部设备扩展卡的过程中,可能存在较长的延时,为了避免主机读取到错误的信息,可以采用多次访问的方法来解决这一问题,以两次异步访问为例,如图7所示,该方法包括:
S701、互连单元接收主机通过接口单元发送的远程外部设备扩展卡数据访问请求,并将远程外部设备扩展卡数据访问请求通过远程外部设备扩展卡的互连单元转发给远程外部设备扩展卡的内存单元控制器。
S702、若预设时间段内,该互连单元未接收到远程外部设备扩展卡的互连单元转发的上述处理后数据,则通过上述接口单元向所述主机发送错误标识。
如图4所示,上述外部设备扩展卡还可以包括:CAM。
S703、若上述接口单元向主机发送上述错误标识之后,该互连单元接收到远程外部设备扩展卡的互连单元转发的上述处理后数据,则将该处理后数据存储在CAM中,并通过接口单元向主机发送第一中断信息。
S704、上述接口单元接收主机在接收到上述第一中断信息后再次发送的远程外部设备扩展卡数据访问请求,根据该再次发送的远程外部设备扩展卡数据访问请求将上述CAM中的处理后数据发送给主机。即接口单元再次受到主机发送的远程外部设备扩展卡数据访问请求后,不需要将该请求转发给远程外部设备扩展卡,而可以直接将CAM中的处理后数据发送给主机。
参照前述实施例,对于远程外部设备扩展卡,与本地外部设备扩展卡一样,在远程外部设备扩展卡的I/O外部设备处理数据之前,主机也会请求读取远程外部设备扩展卡的I/O外部设备控制器内的工作状态数据,并修改工作状态数据返回给远程外部设备扩展卡的I/O外部设备控制器,以启动远程外部设备扩展卡的I/O外部设备,具体过程参照前述实施例,在此不再赘述。
同样,对于远程外部设备扩展卡,主机也可以预先申请数据缓存空间,即向远程外部设备扩展卡的内存单元控制器发送数据缓存空间申请请求,以使远程外部设备扩展卡的内存单元控制器在远程外部设备扩展卡的内存单元中预留数据缓存空间,具体过程参照前述实施例,在此不再赘述。
另一实施例中,上述I/O外部设备对上述待处理数据进行处理,并将处理后的数据发送给I/O外部设备控制器之后,I/O外部设备控制器通过上述接口单元向主机发送第二中断信息,该第二中断信息用于指示I/O外部设备已经完成数据处理。需要说明的是,一般的内存卡槽并不会主动向主机的CPU发送中断请求,因此内存卡槽上一般也没有提供中断引脚,本实施例中,I/O外部设备控制器在I/O外部设备完成数据处理后主动向主机发送中断信息,以通知主机的CPU可以进行后续的处理。远程外部设备扩展卡也可以参照本地外部设备扩展卡,向主机发送中断信息。
另外,为了更好地避免延时上述互连单元可以选用高速互连接口。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (13)
1.一种外部设备扩展卡,其特征在于,包括:用于插设在主机的内存卡槽上的接口单元、内存单元、内存单元控制器、输入输出I/O外部设备、以及I/O外部设备控制器;
所述接口单元与所述内存单元控制器、所述I/O外部设备控制器通信连接;
所述内存单元与所述内存单元控制器通信连接,所述I/O外部设备控制器与所述I/O外部设备通信连接;
所述I/O外部设备控制器与所述内存单元控制器通信连接;其中,
所述I/O外部设备控制器,用于向所述内存单元控制器发送携带所述内存单元中一个物理地址的第一读取请求,通过所述内存单元控制器从所述内存单元内读取所述物理地址对应的数据;所述接口单元,用于接收所述主机发送的携带所述内存单元中的所述物理地址的第二读取请求,并将所述第二读取请求转发给所述内存单元控制器,通过所述内存单元控制器从所述内存单元内读取所述物理地址对应的数据。
2.根据权利要求1所述的外部设备扩展卡,其特征在于,所述内存单元控制器,用于接收所述主机通过所述接口单元发送的数据缓存空间申请请求,并根据所述数据缓存空间申请请求在所述内存单元内预留数据缓存空间。
3.根据权利要求1所述的外部设备扩展卡,其特征在于,所述外部设备扩展卡还包括:用于连接远程外部设备扩展卡的互连单元,所述互连单元与所述接口单元通信连接;
所述互连单元,用于接收所述主机通过所述接口单元发送的第三读取请求,并将所述第三读取请求转发给所述远程外部设备扩展卡的互连单元,以读取所述远程外部设备扩展卡的内存单元中的数据;
其中,所述第三读取请求由所述远程外部设备扩展卡的互连单元发送给所述远程外部设备扩展卡的内存单元控制器,所述第三读取请求中携带所述远程外部设备扩展卡的内存单元中的物理地址。
4.根据权利要求3所述的外部设备扩展卡,其特征在于,所述外部设备扩展卡还包括:容寻址存储器CAM,其中,所述CAM与所述接口单元、以及所述互连单元通信连接;
所述CAM,用于临时存储所述远程外部设备扩展卡发送的数据。
5.一种输入输出外部设备的数据处理方法,其特征在于,所述方法用于外部设备扩展卡,所述外部设备扩展卡包括:用于插设在主机的内存卡槽上的接口单元、内存单元、内存单元控制器、输入输出I/O外部设备、以及I/O外部设备控制器;
所述方法包括:
所述I/O外部设备控制器获取待处理数据,并将所述待处理数据发送给所述I/O外部设备进行处理;
所述I/O外部设备对所述待处理数据进行处理,并将处理后的数据发送给所述I/O外部设备控制器;
所述I/O外部设备控制器将所述处理后的数据发送给所述内存单元控制器,由所述内存单元控制器将所述处理后的数据存储在所述内存单元中的一个物理地址中;
所述内存单元控制器接收所述主机通过所述接口单元发送的数据访问请求,并根据所述数据访问请求携带的所述内存单元中的所述物理地址在所述内存单元中读取所述处理后的数据,并将所述处理后的数据通过所述接口单元发送给所述主机。
6.根据权利要求5所述的方法,其特征在于,所述I/O外部设备控制器获取待处理数据,包括:
所述I/O外部设备控制器向所述内存单元控制器发送待处理数据读取请求;
所述内存单元控制器根据所述待处理数据读取请求中携带的所述内存单元中的物理地址在所述内存单元中读取所述待处理数据,并将所述待处理数据发送给所述I/O外部设备控制器。
7.根据权利要求5所述的方法,其特征在于,所述I/O外部设备控制器获取待处理数据,包括:
所述I/O外部设备控制器接收所述主机通过所述接口单元发送的待处理数据。
8.根据权利要求5所述的方法,其特征在于,所述外部设备扩展卡还包括:用于连接远程外部设备扩展卡的互连单元;
所述互连单元接收所述主机通过所述接口单元发送的远程外部设备扩展卡数据访问请求,并将所述远程外部设备扩展卡数据访问请求通过所述远程外部设备扩展卡的互连单元转发给所述远程外部设备扩展卡的内存单元控制器,其中,所述远程外部设备扩展卡数据访问请求中携带所述远程外部设备扩展卡中内存单元中的物理地址,用于请求所述远程外部设备扩展卡的内存单元中存储的处理后数据;
所述互连单元接收所述远程外部设备扩展卡的内存单元控制器通过所述远程外部设备扩展卡的互连单元转发的远程外部设备扩展卡的内存单元中的处理后数据,并将该将所述远程外部设备扩展卡的内存单元中的处理后数据通过所述接口单元转发给所述主机。
9.根据权利要求8所述的方法,其特征在于,所述互连单元接收主机通过所述接口单元发送的远程外部设备扩展卡数据访问请求之后,还包括:
若预设时间段内,所述互连单元未接收到所述远程外部设备扩展卡的互连单元转发的所述处理后数据,则通过所述接口单元向所述主机发送错误标识。
10.根据权利要求9所述的方法,其特征在于,所述外部设备扩展卡还包括:容寻址存储器CAM;
若所述接口单元向所述主机发送错误标识之后,所述互连单元接收到所述远程外部设备扩展卡的互连单元转发的所述处理后数据,则将所述处理后数据存储在所述CAM中,并通过所述接口单元向所述主机发送第一中断信息;
所述接口单元接收所述主机在接收到所述第一中断信息后再次发送的远程外部设备扩展卡数据访问请求,根据所述再次发送的远程外部设备扩展卡数据访问请求将所述CAM中的处理后数据发送给所述主机。
11.根据权利要求5所述的方法,其特征在于,所述I/O外部设备控制器获取待处理数据,并将所述待处理数据发送给所述I/O外部设备进行处理之前,还包括:
所述I/O外部设备控制器接收所述主机通过所述接口单元发送的工作状态读取请求,并根据所述工作状态读取请求将工作状态数据通过所述接口单元发送给所述主机;
所述I/O外部设备控制器接收所述主机通过所述接口单元发送的更新后的工作状态数据,并根据所述更新后的工作状态数据启动所述I/O外部设备。
12.根据权利要求11所述的方法,其特征在于,所述I/O外部设备控制器接收所述主机通过所述接口单元发送的工作状态读取请求之前,还包括:
所述内存单元控制器接收所述主机通过所述接口单元发送的数据缓存空间申请请求,所述数据缓存空间用于存储所述处理后的数据;
所述内存单元控制器根据所述数据缓存空间申请请求在所述内存单元中预留所述数据缓存空间。
13.根据权利要求5所述的方法,其特征在于,所述I/O外部设备对所述待处理数据进行处理,并将处理后的数据发送给所述I/O外部设备控制器之后,还包括:
所述I/O外部设备控制器通过所述接口单元向所述主机发送第二中断信息,所述第二中断信息用于指示所述I/O外部设备已经完成数据处理。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510400020.2A CN106325377B (zh) | 2015-07-08 | 2015-07-08 | 外部设备扩展卡及输入输出外部设备的数据处理方法 |
PCT/CN2016/076492 WO2017005009A1 (zh) | 2015-07-08 | 2016-03-16 | 外部设备扩展卡及输入输出外部设备的数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510400020.2A CN106325377B (zh) | 2015-07-08 | 2015-07-08 | 外部设备扩展卡及输入输出外部设备的数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106325377A true CN106325377A (zh) | 2017-01-11 |
CN106325377B CN106325377B (zh) | 2019-06-28 |
Family
ID=57684874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510400020.2A Active CN106325377B (zh) | 2015-07-08 | 2015-07-08 | 外部设备扩展卡及输入输出外部设备的数据处理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106325377B (zh) |
WO (1) | WO2017005009A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107179998A (zh) * | 2017-06-22 | 2017-09-19 | 湖南国科微电子股份有限公司 | 一种配置外设内存缓冲区的方法及装置 |
WO2023000784A1 (zh) * | 2021-07-23 | 2023-01-26 | 华为技术有限公司 | 数据访问方法以及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1482522A (zh) * | 2002-12-24 | 2004-03-17 | 联想(北京)有限公司 | 与外部设备分离设置的计算机系统及其输入输出方法 |
CN1595384A (zh) * | 1993-10-28 | 2005-03-16 | 英普罗Ⅱ特许有限公司 | 微型个人数字助理系统 |
CN1703686A (zh) * | 2002-10-09 | 2005-11-30 | 诺基亚公司 | 直接存储器存取(dma)的检测 |
CN102739790A (zh) * | 2012-06-29 | 2012-10-17 | 张建忠 | 一种远程设备扩展系统及远程操控本地设备的方法 |
EP2874359A1 (en) * | 2013-10-28 | 2015-05-20 | Brocade Communications Systems, Inc. | Extended ethernet fabric switches |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4654818A (en) * | 1983-12-16 | 1987-03-31 | Texas Instruments Incorporated | Data processing device having memory selectively interfacing with computer |
US7197584B2 (en) * | 2001-01-26 | 2007-03-27 | Dell Products L.P. | Removable personal digital assistant in a dual personal computer/personal digital assistant computer architecture |
CN101583201A (zh) * | 2008-05-15 | 2009-11-18 | 李明 | 一种智能手机扩展装置 |
CN101489078A (zh) * | 2009-01-14 | 2009-07-22 | 深圳市同洲电子股份有限公司 | 一种数字电视终端和基于中间件的内存扩展方法及系统 |
CN202110466U (zh) * | 2011-05-18 | 2012-01-11 | 福州瑞芯微电子有限公司 | 一种内存可扩展的手持设备电路结构 |
CN103543798B (zh) * | 2013-11-13 | 2017-02-01 | 鄢伟 | 可扩展使用的组合式电脑 |
-
2015
- 2015-07-08 CN CN201510400020.2A patent/CN106325377B/zh active Active
-
2016
- 2016-03-16 WO PCT/CN2016/076492 patent/WO2017005009A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1595384A (zh) * | 1993-10-28 | 2005-03-16 | 英普罗Ⅱ特许有限公司 | 微型个人数字助理系统 |
CN1703686A (zh) * | 2002-10-09 | 2005-11-30 | 诺基亚公司 | 直接存储器存取(dma)的检测 |
CN1482522A (zh) * | 2002-12-24 | 2004-03-17 | 联想(北京)有限公司 | 与外部设备分离设置的计算机系统及其输入输出方法 |
CN102739790A (zh) * | 2012-06-29 | 2012-10-17 | 张建忠 | 一种远程设备扩展系统及远程操控本地设备的方法 |
EP2874359A1 (en) * | 2013-10-28 | 2015-05-20 | Brocade Communications Systems, Inc. | Extended ethernet fabric switches |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107179998A (zh) * | 2017-06-22 | 2017-09-19 | 湖南国科微电子股份有限公司 | 一种配置外设内存缓冲区的方法及装置 |
WO2023000784A1 (zh) * | 2021-07-23 | 2023-01-26 | 华为技术有限公司 | 数据访问方法以及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106325377B (zh) | 2019-06-28 |
WO2017005009A1 (zh) | 2017-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8812758B2 (en) | Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports | |
KR102173089B1 (ko) | 인터페이스 회로 및 그것의 패킷 전송 방법 | |
US20100281201A1 (en) | Protocol translation in a data storage system | |
CN110476156A (zh) | 通用串行总线网络交换机 | |
JP2022028890A (ja) | メモリアドレス指定方法と関連するコントローラ、メモリデバイス、及びホスト | |
CN115543894B (zh) | 存储系统、数据处理方法及装置、存储介质及电子设备 | |
US7613850B1 (en) | System and method utilizing programmable ordering relation for direct memory access | |
KR102367359B1 (ko) | 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법 | |
CN117591450B (zh) | 一种数据处理系统、方法、设备及介质 | |
Kwon et al. | Gen-z memory pool system architecture | |
CN106325377A (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
US8756356B2 (en) | Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size | |
US7451254B2 (en) | System and method for adaptive buffer allocation in a memory device interface | |
US20220342835A1 (en) | Method and apparatus for disaggregation of computing resources | |
CN116483259A (zh) | 一种数据处理方法以及相关装置 | |
CN114238156A (zh) | 处理系统以及操作处理系统的方法 | |
JPS58109960A (ja) | デ−タ処理システム | |
US10025736B1 (en) | Exchange message protocol message transmission between two devices | |
CN116860185B (zh) | Sram阵列的数据访问装置、系统、方法、设备、芯片和介质 | |
US10042792B1 (en) | Method for transferring and receiving frames across PCI express bus for SSD device | |
CN110462598B (zh) | 信息处理装置 | |
JP7363344B2 (ja) | メモリ制御装置、および制御方法 | |
CN113127399B (zh) | 一种通用串列汇流排装置以及存取方法 | |
US20220237132A1 (en) | Data transmission method and ping-pong dma architecture | |
US20220309021A1 (en) | Peripheral component interconnect express interface device and method of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |