CN113905084A - 数据交互方法、装置及计算机设备 - Google Patents

数据交互方法、装置及计算机设备 Download PDF

Info

Publication number
CN113905084A
CN113905084A CN202111503499.4A CN202111503499A CN113905084A CN 113905084 A CN113905084 A CN 113905084A CN 202111503499 A CN202111503499 A CN 202111503499A CN 113905084 A CN113905084 A CN 113905084A
Authority
CN
China
Prior art keywords
register
state
microcontroller
data
storage unit
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
CN202111503499.4A
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.)
Phytium Technology Co Ltd
Original Assignee
Phytium 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 Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202111503499.4A priority Critical patent/CN113905084A/zh
Publication of CN113905084A publication Critical patent/CN113905084A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Microcomputers (AREA)

Abstract

本申请提供一种数据交互方法、装置及计算机设备,涉及数据传输技术领域。该方法应用于片上系统,片上系统包括微控制器、寄存器、存储单元和总线,寄存器设置在微控制器内,微控制器与存储单元相连,存储单元为片上系统中除内存之外的存储单元,总线用于片上系统和外部设备建立通信连接,该方法包括:通过微控制器获取寄存器的状态,微控制器基于寄存器的状态,控制外部设备与存储单元之间的数据交互。本申请可提高片上系统和外部设备之间数据交互速度,从而提高数据传输性能。

Description

数据交互方法、装置及计算机设备
技术领域
本申请涉及数据传输技术领域,具体而言,涉及一种数据交互方法、装置及计算机设备。
背景技术
随着互联网技术的快速发展,网络业务越来越繁重,网络业务对于高带宽、低延时的需求也越来越高。针对高带宽、低延时的网络业务,如果网络传输性能不足,很可能导致数据的大量丢包,严重影响网络业务的处理速度。
在网络数据的传输过程中,数据交互的速度是影响数据传输性能的重要因素之一。现有的方案中,由于片上系统和外部设备的软硬件限制,使得片上系统与外部设备之间的数据交互速度受到很大的限制,数据交互速度比较缓慢。
为保证高带宽、低延时的业务需求,如何提升外部设备与片上系统之间的数据交互速度,从而提升数据传输性能显得格外重要。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种数据交互方法、装置及计算机设备,以便提高片上系统和外部设备之间数据交互速度,从而提高数据传输性能。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种数据交互方法,所述方法应用于片上系统,所述片上系统包括微控制器、寄存器、存储单元和总线,所述寄存器设置在所述微控制器内,所述微控制器与所述存储单元相连,所述存储单元为所述片上系统中除内存之外的存储单元,所述总线用于所述片上系统与外部设备建立通信连接,所述方法包括:
通过所述微控制器获取所述寄存器的状态;
所述微控制器基于所述寄存器的状态,控制所述外部设备与所述存储单元之间的数据交互。
采用上述方法实施例,可使得微控制器基于寄存器的状态,控制外部设备与片上系统的存储单元之间进行数据交互,从而实现片上系统和外部设备之间的数据交互,提升片上系统和外部设备之间的数据交互速度,以提升数据传输性能。
可选的,所述微控制器基于所述寄存器的状态,控制所述外部设备与所述存储单元之间的数据交互,包括:
若所述寄存器的状态为第一状态,则所述微控制器接收所述外部设备发送的第一数据,并将所述第一数据写入所述存储单元。
采用上述方法实施例,可使得微控制器在寄存器处于第一状态时,将外部设备发送的第一数据写入存储单元,从而实现片上系统和外部设备之间的数据交互,提升片上系统和外部设备之间的数据交互速度,以提升数据传输性能。
可选的,所述微控制器基于所述寄存器的状态,控制所述外部设备与所述存储单元之间的数据交互,包括:
若所述寄存器的状态为第二状态,则所述微控制器从所述存储单元中读取第二数据,并将所述第二数据发送至所述外部设备。
采用上述方法实施例,可使得微控制器在寄存器处于第二状态时,从存储单元中读取第二数据并发送给外部设备,从而实现片上系统和外部设备之间的数据交互,提升片上系统和外部设备之间的数据交互速度,以提升数据传输性能。
可选的,所述微控制器基于所述寄存器的状态,控制所述外部设备与所述存储单元之间的数据交互,包括:
若所述寄存器的状态为第三状态,则所述微控制器接收所述外部设备发送的第三数据,并将所述第三数据写入所述存储单元;和/或,
若所述寄存器的状态为所述第三状态,则所述微控制器从所述存储单元中读取第四数据,并将所述第四数据发送至所述外部设备。
采用上述方法实施例,可使得微控制器在寄存器处于第三状态时,将外部设备发送的第一数据写入存储单元,并从存储单元中读取第二数据并发送给外部设备,从而实现片上系统和外部设备之间的数据交互,提升片上系统和外部设备之间的数据交互速度,以提升数据传输性能。
可选的,所述片上系统还包括处理器,所述处理器与所述微控制器相连;所述方法还包括:
所述微控制器接收所述处理器发送的状态修改指令;
所述微控制器响应所述状态修改指令,调整所述寄存器的状态。
采用上述方法实施例,可以基于状态修改指令实现对寄存器状态的修改,从而解决外部设备与存储单元之间进行数据交互的效率问题,无需改变片上系统的结构,易于实现。
第二方面,本申请实施例还提供一种数据交互装置,所述数据交互装置应用于片上系统,所述片上系统包括微控制器、寄存器、存储单元和总线,所述寄存器设置在所述微控制器内,所述微控制器与所述存储单元相连,所述存储单元为所述片上系统中除内存之外的存储单元,所述总线用于所述片上系统与外部设备建立通信连接,所述数据交互装置包括:
处理单元,用于获取所述寄存器的状态;
收发单元,用于基于所述寄存器的状态,控制所述外部设备与所述存储单元之间的数据交互。
可选的,所述收发单元包括:接收单元;
所述接收单元,用于若所述寄存器的状态为第一状态,在所述处理单元的控制下,接收所述外部设备发送的第一数据;
所述处理单元,还用于将所述第一数据写入所述存储单元。
可选的,所述收发单元包括:发送单元;
所述处理单元,还用于若所述寄存器的状态为第二状态,从所述存储单元中读取第二数据;
所述发送单元,用于在所述处理单元的控制下,将所述第二数据发送至所述外部设备。
可选的,所述收发单元包括:接收单元;
所述接收单元,用于若所述寄存器的状态为第三状态,在所述处理单元的控制下,接收所述外部设备发送的第三数据;
所述处理单元,还用于将所述第三数据写入所述存储单元;和/或,
所述收发单元还包括:发送单元;
所述处理单元,还用于若所述寄存器的状态为所述第三状态,从所述存储单元中读取第四数据;
所述发送单元,用于在所述处理单元的控制下,将所述第四数据发送至所述外部设备。
可选的,所述片上系统还包括处理器;所述处理器与所述微控制器相连;
所述处理单元,还用于响应来自所述处理器的状态修改指令,调整所述寄存器的状态。
第三方面,本申请实施例还提供一种计算机设备,所述计算机设备内设置有片上系统,所述片上系统包括:微控制器、寄存器、存储单元和总线,所述寄存器设置在所述微控制器内,所述微控制器与所述存储单元相连,所述存储单元为所述片上系统中除内存之外的存储单元,所述总线用于所述片上系统与外部设备建立通信连接;
所述微控制器用于执行上述实施例中任一所述的数据交互方法。
本申请的有益效果是:
本申请提供的一种数据交互方法、装置及计算机设备,该方法应用于片上系统,片上系统包括微控制器、寄存器、存储单元和总线,寄存器设置在微控制器内,微控制器与存储单元相连,存储单元为片上系统中除内存之外的存储单元,总线用于片上系统和外部设备建立通信连接,该方法包括:通过微控制器获取寄存器的状态,微控制器基于寄存器的状态,控制外部设备与存储单元之间的数据交互。本申请的方案中,片上系统上的微控制器可通过获取寄存器的状态,确定片上系统和外部设备之间的数据交互方式,并基于该数据交互方式,控制外部设备直接与片上系统上内存之外的存储单元进行数据交互,避免了外部设备通过内存进行数据交互,提升片上系统和外部设备之间的数据交互速度,有效提升了数据传输性能,有效保证了高带宽、低延时的业务需求。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种片上系统的结构示意图;
图2为本申请实施例提供的另一种片上系统的结构示意图;
图3为本申请实施例提供的一种数据交互方法的流程示意图;
图4为本申请实施例提供的数据交互装置的结构示意图;
图5为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要说明的是,若出现术语“上”、“下”、等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
此外,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
目前的方案中,由于片上系统和外部设备的软硬件限制,使得片上系统必须通过内存与外部设备进行数据交互,而片上系统又无法直接与内存进行数据交互,这使得片上系统与外部设备之间的数据交互速度受到很大的限制,从而严重影响了片上系统和外部设备之间的数据交互速度。
基于此,本申请拟提供一种数据交互方法中,可使得片上系统中的微控制器通过微控制器中设置的寄存器的状态,确定片上系统和外部设备之间的数据交互方式,继而基于该寄存器的状态指示的数据交互方式,控制外部设备直接与内存之外的存储单元进行数据交互,避免片上系统通过内存与外部设备进行数据交互。
在对本申请所提供的数据交互方法进行详细说明之前,先对该数据交互方法所应用的片上系统的结构进行说明,以便更好地理解本申请的数据交互方法。
请参考图1,为本申请实施例提供的一种片上系统的结构示意图;如图1所示,该片上系统(System on Chip,SoC)又称为系统级芯片,其可包括微控制器11、寄存器12、存储单元13和总线14,寄存器12设置在微控制器11内,微控制器11与存储单元13相连,存储单元13为片上系统中除内存(Double Data Rate,DDR)15之外的存储单元,总线14用于片上系统与外部设备建立通信连接。
该片上系统可以为开发板,也可以为成品级的电路板。
在可能的示例中,片上系统可以至少包括一个微控制器。例如,片上系统可以具有两个及以上数量的微控制器,多个微控制器并列存在,可根据实际需求选择。
微控制器11内设置有至少一组寄存器,其中,一组寄存器可以包括写寄存器和读寄存器,其中,写寄存器可以为DMA(Direct Memory Access,直接存储器访问)写通路属性设置寄存器,其可用于存储微控制器对存储单元进行写数据的状态;读寄存器可以为DMA读通路属性设置寄存器,其可用于存储微控制器从存储单元中读取数据的状态。在本申请中,读寄存器和写寄存器的状态用于指示片上系统和外部设备之间数据交互方式。设置在微控制器11上的每组寄存器的状态决定了微控制器11所具有的一个功能,微控制器11可基于该每组寄存器的状态实现该功能。其中,包括写寄存器和读寄存器的这一组寄存器的状态决定了微控制器11的读写功能,因此,在执行本申请的数据交互方法中所获取的寄存器的状态实际为写寄存器和读寄存器的状态,基于该写寄存器和读寄存器的状态便可确定该片上系统和外部设备之间的数据交互方式。
总线14还可称为外设总线,其实际上是片上系统上用于与外部设备连接的总线接口,其在产品形态上可以以插槽的形式设置,插槽内部对应连接微控制器11,插槽外部用于插接外部设备。当片上系统包括两个及以上微控制器,则片上系统可以具有连接外部设备的两个插槽,此处只是一种示例,不应构成限定。该总线例如可以为PCIE(PeripheralComponent Interconnect Express,总线和接口标准)总线,若总线为PCIE总线,则微控制器11可以为片上系统上的PCIE扩展单元(PEU)。
片上系统中包括内存15和除了内存15之外的存储单元13。片上系统上还设置有片上网络(Network on Chip,NoC),以实现片上系统的片上数据通信。在本申请所应用的片上系统中,微控制器11通过片上网络分别与存储单元13和内存15相连,以通过片上网络实现了微控制器11和存储单元13以及内存15之间的数据交互。该片上网络的数据协议可能与总线的数据协议不一致,因此,在片上系统和外部设备通过总线进行数据交互的过程中,可由微控制器11对待传输数据进行协议转换。例如,将待发送至外部设备的数据由片上网络的数据协议转换为总线的数据协议,或者,将从总线14接收的外部设备的数据由总线的数据协议转换为片上网络的数据协议。其中,片上网络的数据协议可以为AXI(AdvancedeXtensible Interface,高级扩展接口)总线协议,总线的数据协议为总线类型所匹配的数据协议,如总线14为PCIE总线,则总线的数据协议即为PCIE协议。
片上系统上还可设置有处理器16,处理器16可通过片上网络与微控制器11相连。当片上系统还包括有处理器16的情况下,处理器16通过数据总线与存储单元13连接,处理器16通过片上网络与内存15连接。处理器16预先从存储单元13中查找数据,只有在存储单元13中未查找数据时,才从内存15中查找数据。在一些实施例中,存储单元13可以为三级缓存中的缓存单元,也可以为其他级数缓存中的缓存单元。
如下以三级缓存为例,对片上系统的结构进行示例说明。请参考图2,为本申请实施例提供的另一种片上系统的结构示意图;图2所示的片上系统中的微控制器、寄存器和总线之间的连接关系与图1所示的片上系统相同,不同之处在于,图2所示的片上系统上包括:三级缓存,即一级缓存单元(L1 Cache)131、二级缓存单元(L2 Cache)132、三级缓存单元(L3 Cache)133构成的三级缓存。
三级缓存可以被理解为片上系统中的临时存储单元。虽然三级缓存的容量比内存小很多,但是缓存单元的读写速度要比内存快得多,通过缓存单元进行数据交互要比通过内存进行数据交互的速度快得多,有利于提升数据交互效率。若存储单元13为三级缓存单元133,则片上系统上的微控制器11可通过三级缓存单元133与外部设备进行数据交互。
在本申请中,当存储单元13为三级缓存单元133时,处理器16先在一级缓存单元131中查找数据,在一级缓存单元131中未查找到数据的情况下才会去二级缓存单元132中查找数据,在二级缓存单元132中未查找到数据的情况下再去三级缓存单元133中查找数据,只有当三级缓存单元133也查找不到数据时才会去内存15中查找数据。
基于上述实施例提供的片上系统,本申请实施例还提供一种上述片上系统中的微控制器所执行的数据交互方法。
请参考图3,为本申请实施例提供的一种数据交互方法的流程示意图,如图3所示,该方法包括:
S10:通过微控制器获取寄存器的状态。
具体的,微控制器可在获取到待处理报文时,读取寄存器的状态,以确定片上系统和外部设备之间的数据交互方式。该待处理报文可以为来自外部设备的报文。 外部设备例如可以为网卡设备,则待处理报文即为网络报文。
寄存器的状态用于表征外部设备与片上系统之间的数据交互方式。在一种实现示例中,该数据交互方式可以为写数据交互方式,在该写数据交互方式下,该微控制器可将外部设备发送至片上系统的数据写入存储单元;在另一种实现示例中,该数据交互方式还可以为读数据交互方式,在该读数据交互方式下,微控制器可将片上系统待发送至外部设备的数据从存储单元中读取出来;在又一种实现示例中,该数据交互方式还可以为读写数据交互方式,在该读写数据交互方式下,微控制器将外部设备发送至片上系统的数据写入存储单元,并将片上系统待发送至外部设备的数据从存储单元中读取出来。
S20:微控制器基于寄存器的状态,控制外部设备与存储单元之间的数据交互。
具体的,微控制器在获取到寄存器的状态的情况下,可基于该寄存器的状态确定片上系统和外部设备之间的数据交互方式,则可采用确定的数据交互方式,控制外部设备和存储单元之间进行数据传输,实现外部设备与片上系统之间的数据交互。
进一步地,若寄存器包括读寄存器和写寄存器,则需要获取读寄存器和写寄存器的状态,根据读寄存器和写寄存器的状态确定片上系统和外部设备之间的数据交互方式。
在一个可能的实现方式中,若寄存器的状态为第一状态,微控制器接收外部设备发送的第一数据,并将第一数据写入存储单元。
在该实现方式中,若寄存器的状态为第一状态,微控制器可基于预设的寄存器状态和存储类型的对应关系,确定第一状态对应的第一存储类型,并确定第一存储类型对应的数据交互方式为写数据交互方式,并采用写数据交互方式,将外部设备发送的第一数据写入存储单元分配的存储资源中。
该预设的寄存器状态和存储类型的对应关系例如可以为如下表1所示,需要说明的是,表1所示的对应关系只是一种示例,不应构成限定。
表1 预设的寄存器状态和存储类型的对应关系
读寄存器 写寄存器 存储类型
0000 0000 可缓冲
0001 0001 不可缓冲
0010 0010 不可缓冲且不可缓存
0011 0011 可缓冲但不可缓存
1010 0110 写直达但不可缓存
1110 (0110) 0110 写直达且可分配读缓存
1010 1110 (1010) 写直达且可分配写缓存
1110 1110 写直达且可分配读写缓存
1011 0111 写回但不可缓存
1111 0111 写回且可分配读缓存
1011 1111 (1011) 写回且可分配写缓存
1111 1111 写回且可分配读写缓存
该第一状态可以为读寄存器为1011,写寄存器为1111或者1011,则可确定第一存储类型即为写回且可分配写缓存,基于此,可确定第一数据交互方式为写数据交互方式。
可选的,以外部设备为网卡设备为例,微控制器在获取到来自外部设备的第一网络报文的情况下,获取寄存器的状态,并在确定寄存器的状态为第一状态时,便可将该第一网络报文中的第一数据写入存储单元的分配资源中,基于此,可加快处理器处理网络报文的处理速率,从而提升网络传输性能。
处理器在处理第一网络报文的执行请求的过程中,便可直接访问存储单元以从该存储单元中获取第一数据,并执行第一网络报文的执行请求的相关处理操作。
在另一个可能的实现方式中,若寄存器的状态为第二状态,微控制器从存储单元中读取第二数据,并将第二数据发送至外部设备。
在该实现方式中,若寄存器的状态为第二状态,微控制器可基于预设的寄存器状态和存储类型的对应关系,确定第二状态对应的第二存储类型,并确定第二存储类型对应的数据交互方式为读数据交互方式,并采用读数据交互方式,从存储单元分配的存储资源中读取第二数据,并将第二数据发送给外部设备。
示例的,如表1所示,该第二状态可以为读寄存器为1111,写寄存器为0111,则可确定第二存储类型即为写回且可分配读缓存,基于此,可确定第二数据交互方式为读数据交互方式。
可选的,以外部设备为网卡设备为例,第二网络报文可以为来自外部设备的网络报文。处理器在执行第二网络报文的执行请求过程中,将第二网络报文所请求的第二数据写入存储单元的分配资源中,微控制器在接收到来自处理器或外部设备的第二网络报文的情况下,获取寄存器的状态,并在确定寄存器的状态为第二状态时,便可从存储单元的分配资源中读取第二数据,并将第二数据发送给外部设备。
在又一个实施例中,若寄存器的状态为第三状态,微控制器接收外部设备发送的第三数据,并将第三数据写入存储单元,和/或,微控制器从存储单元中读取第四数据,并将第四数据发送至外部设备。
在该实现方式中,若寄存器的状态为第三状态,微控制器可基于预设的寄存器状态和存储类型的对应关系,确定第三状态对应的第三存储类型,并确定第三存储类型对应的数据交互方式为读写数据交互方式,并采用读写数据交互方式,将外部设备发送至片上系统的第三数据写入存储单元,并将片上系统待发送至外部设备的第四数据从存储单元中读取出来。
示例的,如表1所示,该第三状态可以为读寄存器为1111,写寄存器为1111,则可确定第三存储类型即为写回且可分配读写缓存,基于此,可确定第三数据交互方式为读写数据交互方式。
可选的,以外部设备为网卡设备为例,微控制器在获取到来自外部设备的第三网络报文的情况下,获取寄存器的状态,并在确定寄存器的状态为第三状态时,便可将该第三网络报文中的第三数据写入存储单元的分配资源中。
处理器在处理第三网络报文的执行请求的过程中,便可直接访问存储单元以从该存储单元中获取第三数据,并执行第三网络报文的执行请求的相关处理操作。
微控制器在获取到来自外部设备第四网络报文的情况下,先由处理器执行第四网络报文的执行请求,处理器在执行第四网络报文的执行请求过程中,将第四网络报文所请求的第四数据写入存储单元的分配资源中,微控制器基于第四网络报文获取寄存器的状态,并在确定寄存器的状态为第三状态时,便可从存储单元的分配资源中读取第四数据,并将第四数据发送给外部设备。
本申请实施例提供的数据交互方法,应用于片上系统,片上系统包括微控制器、寄存器、存储单元和总线,寄存器设置在微控制器内,微控制器与存储单元相连,存储单元为片上系统中除内存之外的存储单元,总线用于片上熊和外部设备建立通信连接,该方法包括:通过微控制器获取寄存器的状态,微控制器基于寄存器的状态,控制外部设备与存储单元之间的数据交互。本申请实施例的方案中,片上系统上的微控制器可通过获取寄存器的状态,确定片上系统和外部设备之间的数据交互方式,并基于该数据交互方式,控制外部设备直接与片上系统上内存之外的存储单元进行数据交互,避免了外部设备通过内存进行数据交互,提升片上系统和外部设备之间的数据交互速度,有效提升了数据传输性能,有效保证了高带宽、低延时的业务需求。
执行上述实施例数据交互方法,可使得微控制器基于寄存器的状态,控制外部设备与片上系统的存储单元进行数据交互,进而实现片上系统和外部设备之间的数据交互。为实现上述数据交互方式,需要将寄存器的状态修改为指示外部设备与片上系统的存储单元之间进行数据交互的状态。
如下先通过一个示例,对修改寄存器的状态的实现方式进行解释说明。需要说明的是,在其他的一些可能实现方式中,还可采用其他的修改方式修改寄存器的状态,而不局限于本申请实施例。
如图1或图2所示,片上系统还包括处理器16,处理器16通过片上网络与微控制器11相连。
处理器16接收用户输入的状态修改指令,通过片上网络将状态修改指令发送给微控制器11,微控制器11响应该状态修改指令,将寄存器的状态修改为状态修改指令所指示的状态,如此,便可使得微控制器11基于修改后的寄存器的状态控制外部设备与片上系统的存储单元进行数据交互,进而实现片上系统和外部设备之间的数据交互。
由于处理器的应用层只能在用户控件进行作用,而寄存器的地址属于内核空间,处理器无法直接对内核空间中寄存器的状态进行修改,因此,该状态修改指令可通过操作/dev/mem设备以及mmap函数将寄存器的地址映射到用户空间,使得处理器在用户层,将状态修改指令发送至微控制器,以指示微控制器修改寄存器的状态。
如下以一个具体的示例,对上述修改寄存器的状态的过程进行示例说明。
假设片上系统上包括两个微控制器,即第一微控制器和第二微控制器,其中,第一微控制器的基址为:0x00029100000,第二微控制器的基址为:0x00029101000。每个微控制器上均设置有一组写寄存器(awcache)和读寄存器(arcache),其中,第一微控制器中的写寄存器的偏移地址为:0x620,读寄存器的偏移地址为0x624,第二微控制器中的写寄存器的偏移地址为0x628,读寄存器的偏移地址为0x62C。
下述以修改第一微控制器中的寄存器的状态为第一状态为例进行解释说明。由于第一微控制器的基址为0x00029100000,第一微控制器中的写寄存器的偏移地址为:0x620,则第一微控制器中的写寄存器的实际地址=第一微控制器的基址+写寄存器的偏移地址=0x00029100620。
处理器在指示微控制器修改寄存器的状态为第一状态之前,需先获取该寄存器的初始状态,并结合寄存器的初始状态,确定待修改寄存器的状态。例如,结合表1所示,处理器可确定寄存器的第一状态为:读寄存器为1011,写寄存器为1111或者1011。若初始状态为:读寄存器为1011,写寄存器为0111,由于第一状态中读寄存器仍为1011,因此,若要使得寄存器的状态为第一状态,只需将写寄存器修改为1111或1011。
若要将寄存器的状态修改为写数据交互方式对应的寄存器状态,需先获取寄存器的初始状态,例如采用下述程序指令获取第一微控制器中写寄存器的初始状态:
[root@localhost ~]# ./rw -r 4 0x29100620
[0000000029100620]: 0x31270001
其中,0x29100620为第一控制器中写寄存器的实际地址,0x31270001为获取到的第一微控制器中写寄存器的默认值。0x31270001为16进制,一个字节由4bit组成,写寄存器的状态位于16-19bit位,16-19bit位是第五个字节7,换算成二进制为0111。如此,处理器确定了第一微控制器中写寄存器的初始状态实际为0111。若要将第一微控制器中写寄存器的状态从0111修改为1111,即十六进制的F,则通过状态修改指令如下述程序指令修改写寄存器的状态为0x312F0001。
示例性地,程序指令为:[root@localhost ~]# ./rw -w 4 0x291006200x312F0001
基于上述将寄存器的状态修改为第一状态的方法,也可以采用类似方法将寄存器的状态调整为第二状态或者第三状态,在实现示例中,其区别仅在于寄存器的地址以及对应寄存器的状态,本申请在此不做赘述。当然,也可以采用类似方法对第二微控制器中的读寄存器和写寄存器的状态进行修改,从而确定第二微控制器上的寄存器的状态,本申请对此不做限制。
在其他的一些可能实现方式中,还可采用其他的修改方式修改寄存器的状态,而不局限于上述示例。
基于上述实施例的数据交互方法,本申请实施例还提供一种数据交互装置,该数据交互装置为实现上述实施例的数据交互方法所对应的虚拟装置。请参考图4,为本申请实施例提供的数据交互装置的结构示意图,如图4所示,该装置包括:处理单元111,用于获取寄存器的状态;
收发单元112,用于基于寄存器的状态,控制外部设备与存储单元之间的数据交互。
可选的,收发单元112包括:接收单元;
接收单元,用于若寄存器的状态为第一状态,在处理单元的控制下,接收外部设备发送的第一数据;
处理单元111,还用于将第一数据写入存储单元。
可选的,收发单元112包括:发送单元;
处理单元111,还用于若寄存器的状态为第二状态,从存储单元中读取第二数据;
发送单元,用于在处理单元的控制下,将第二数据发送至外部设备。
可选的,收发单元112包括:接收单元;
接收单元,用于若寄存器的状态为第三状态,在处理单元的控制下,接收外部设备发送的第三数据;
处理单元111,还用于将第三数据写入存储单元;和/或,
收发单元112还包括:发送单元;
处理单元111,还用于若寄存器的状态为第三状态,从存储单元中读取第四数据;
发送单元,用于在处理单元的控制下,将第四数据发送至外部设备。
可选的,片上系统还包括处理器;处理器与微控制器相连;处理单元111,还用于响应来自处理器的状态修改指令,调整寄存器的状态。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
基于上述实施例的数据交互方法,本申请实施例还提供可以执行上述数据交互方法的一种计算机设备,请参考图5,为本申请实施例提供的一种计算机设备的结构示意图,如图5所示,计算机设备100内设置有片上系统10,片上系统10采用如图1所示的片上系统的结构,片上系统10中的总线用于片上系统10与外部设备建立通信连接;微控制器11用于执行上述实施例中任一的数据交互方法。
同样的,计算机设备100内部的片上系统也可以采用图2所示的片上系统的结构,本申请对此不做限制。
需要说明的是,总线14在计算机设备上以接口插槽的形式设置在计算机设备100的外部,外部设备20插接在总线14上,以与片上系统10通信连接。示例的,外部设备可以为网卡(Network Interface Controller,NIC)设备。
本申请实施例还提供了一种计算机存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个实施例所述方法中的一个或多个步骤。上述装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中,基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机产品存储在计算机可读存储介质中。
上述计算机可读存储介质可以是前述实施例所述的设备的内部存储单元,例如硬盘或内存。上述计算机可读存储介质也可以是上述设备的外部存储设备,例如配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,上述计算机可读存储介质还可以既包括上述设备的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述设备所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可通过计算机程序来指令相关的硬件来完成,该计算机的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (11)

1.一种数据交互方法,其特征在于,所述方法应用于片上系统,所述片上系统包括微控制器、寄存器、存储单元和总线,所述寄存器设置在所述微控制器内,所述微控制器与所述存储单元相连,所述存储单元为所述片上系统中除内存之外的存储单元,所述总线用于所述片上系统与外部设备建立通信连接,所述方法包括:
通过所述微控制器获取所述寄存器的状态;
所述微控制器基于所述寄存器的状态,控制所述外部设备与所述存储单元之间的数据交互。
2.根据权利要求1所述的方法,其特征在于,所述微控制器基于所述寄存器的状态,控制所述外部设备与所述存储单元之间的数据交互,包括:
若所述寄存器的状态为第一状态,则所述微控制器接收所述外部设备发送的第一数据,并将所述第一数据写入所述存储单元。
3.根据权利要求1所述的方法,其特征在于,所述微控制器基于所述寄存器的状态,控制所述外部设备与所述存储单元之间的数据交互,包括:
若所述寄存器的状态为第二状态,则所述微控制器从所述存储单元中读取第二数据,并将所述第二数据发送至所述外部设备。
4.根据权利要求1所述的方法,其特征在于,所述微控制器基于所述寄存器的状态,控制所述外部设备与所述存储单元之间的数据交互,包括:
若所述寄存器的状态为第三状态,则所述微控制器接收所述外部设备发送的第三数据,并将所述第三数据写入所述存储单元;和/或,
若所述寄存器的状态为所述第三状态,则所述微控制器从所述存储单元中读取第四数据,并将所述第四数据发送至所述外部设备。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述片上系统还包括处理器,所述处理器与所述微控制器相连;所述方法还包括:
所述微控制器接收所述处理器发送的状态修改指令;
所述微控制器响应所述状态修改指令,调整所述寄存器的状态。
6.一种数据交互装置,其特征在于,所述数据交互装置应用于片上系统,所述片上系统包括微控制器、寄存器、存储单元和总线,所述寄存器设置在所述微控制器内,所述微控制器与所述存储单元相连,所述存储单元为所述片上系统中除内存之外的存储单元,所述总线用于所述片上系统与外部设备建立通信连接,所述数据交互装置包括:
处理单元,用于获取所述寄存器的状态;
收发单元,用于基于所述寄存器的状态,控制所述外部设备与所述存储单元之间的数据交互。
7.如权利要求6所述的装置,其特征在于,所述收发单元包括:接收单元;
所述接收单元,用于若所述寄存器的状态为第一状态,在所述处理单元的控制下,接收所述外部设备发送的第一数据;
所述处理单元,还用于将所述第一数据写入所述存储单元。
8.如权利要求6所述的装置,其特征在于,所述收发单元包括:发送单元;
所述处理单元,还用于若所述寄存器的状态为第二状态,从所述存储单元中读取第二数据;
所述发送单元,用于在所述处理单元的控制下,将所述第二数据发送至所述外部设备。
9.如权利要求6所述的装置,其特征在于,所述收发单元包括:接收单元;
所述接收单元,用于若所述寄存器的状态为第三状态,在所述处理单元的控制下,接收所述外部设备发送的第三数据;
所述处理单元,还用于将所述第三数据写入所述存储单元;和/或,
所述收发单元还包括:发送单元;
所述处理单元,还用于若所述寄存器的状态为所述第三状态,从所述存储单元中读取第四数据;
所述发送单元,用于在所述处理单元的控制下,将所述第四数据发送至所述外部设备。
10.如权利要求6-9任一项所述的装置,其特征在于,所述片上系统还包括处理器;所述处理器与所述微控制器相连;
所述处理单元,还用于响应来自所述处理器的状态修改指令,调整所述寄存器的状态。
11.一种计算机设备,其特征在于,所述计算机设备内设置有片上系统,所述片上系统包括:微控制器、寄存器、存储单元和总线,所述寄存器设置在所述微控制器内,所述微控制器与所述存储单元相连,所述存储单元为所述片上系统中除内存之外的存储单元,所述总线用于所述片上系统与外部设备建立通信连接;
所述微控制器用于执行上述权利要求1-5中任一所述的数据交互方法。
CN202111503499.4A 2021-12-10 2021-12-10 数据交互方法、装置及计算机设备 Pending CN113905084A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111503499.4A CN113905084A (zh) 2021-12-10 2021-12-10 数据交互方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111503499.4A CN113905084A (zh) 2021-12-10 2021-12-10 数据交互方法、装置及计算机设备

Publications (1)

Publication Number Publication Date
CN113905084A true CN113905084A (zh) 2022-01-07

Family

ID=79025500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111503499.4A Pending CN113905084A (zh) 2021-12-10 2021-12-10 数据交互方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN113905084A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853236A (zh) * 2010-02-05 2010-10-06 谭洪舟 一种基于双总线的微控制器外设扩展方法
CN104090740A (zh) * 2014-05-27 2014-10-08 安徽师范大学 微控制器指令集的执行方法
US20160140065A1 (en) * 2014-11-13 2016-05-19 Cavium, Inc. Register Access Control Among Multiple Devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853236A (zh) * 2010-02-05 2010-10-06 谭洪舟 一种基于双总线的微控制器外设扩展方法
CN104090740A (zh) * 2014-05-27 2014-10-08 安徽师范大学 微控制器指令集的执行方法
US20160140065A1 (en) * 2014-11-13 2016-05-19 Cavium, Inc. Register Access Control Among Multiple Devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《汽车单片机及车载总线技术》: "《汽车单片机及车载总线技术》", 30 June 2020 *

Similar Documents

Publication Publication Date Title
US9467512B2 (en) Techniques for remote client access to a storage medium coupled with a server
US20150127691A1 (en) Efficient implementations for mapreduce systems
CN114020655A (zh) 一种内存扩展方法、装置、设备及存储介质
US10540306B2 (en) Data copying method, direct memory access controller, and computer system
CN106951388A (zh) 一种基于PCIe的DMA数据传输方法及系统
CN105677580A (zh) 访问缓存的方法和装置
CN110119304B (zh) 一种中断处理方法、装置及服务器
CN114556881B (zh) 一种地址翻译方法及装置
CN113760560A (zh) 一种进程间通信方法以及进程间通信装置
CN112506823B (zh) 一种fpga数据读写方法、装置、设备及可读存储介质
CN114860329A (zh) 动态一致性偏置配置引擎及方法
CN109426623A (zh) 一种读取数据的方法及装置
CN103595720B (zh) 卸载数据传输方法、装置和客户端
CN107861888B (zh) Fpga卡用ddr的方法、系统、装置及可读存储介质
WO2021062982A1 (zh) 管理hmb内存的方法、装置、计算机设备及存储介质
CN116126742A (zh) 内存访问方法、装置、服务器及存储介质
CN115811509A (zh) 一种总线通信方法及相关设备
WO2017031637A1 (zh) 一种内存访问方法、装置和系统
CN113905084A (zh) 数据交互方法、装置及计算机设备
CN116166581A (zh) 用于pcie总线的队列式dma控制器电路及数据传输方法
CN116601616A (zh) 一种数据处理装置、方法及相关设备
CN111694777B (zh) 基于PCIe接口的DMA传输方法
US10832132B2 (en) Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-readable storage medium and computer program product
CN105072047A (zh) 一种报文传输及处理方法
CN113986134B (zh) 存储数据的方法、读取数据的方法和装置

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20220107

RJ01 Rejection of invention patent application after publication