CN106844245A - 数据传输方法及装置 - Google Patents
数据传输方法及装置 Download PDFInfo
- Publication number
- CN106844245A CN106844245A CN201710087230.XA CN201710087230A CN106844245A CN 106844245 A CN106844245 A CN 106844245A CN 201710087230 A CN201710087230 A CN 201710087230A CN 106844245 A CN106844245 A CN 106844245A
- Authority
- CN
- China
- Prior art keywords
- memory space
- memory
- data
- read
- base address
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/282—Cycle stealing DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本申请提供一种数据传输方法及装置,方法包括:DMA控制器接收PCIE设备发送的数据传输请求;根据数据传输请求携带的第二存储空间的基地址从存储器中获取第三存储空间的基地址;根据第三存储空间的基地址和数据传输请求携带的读写标识向所述存储器中的第三存储空间读或者写数据。本申请不经过CPU的直接控制,即可通过DMA控制器实现PCIE设备与存储器的数据传输,将CPU解放出来以用于进行其它处理,进而提高了数据传输效率。此外,PCIE设备与存储器之间是通过携带有可DMA的第二存储空间的基地址的数据传输请求实现的数据传输过程,并不涉及PCIE总线地址与存储空间内存地址的映射转换,因此可进一步提高数据传输效率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据传输方法及装置。
背景技术
在目前的存储系统中,通常采用PCIE(Peripheral Component InterconnectExpress,高速外围组件互连)总线结构实现存储器与外围设备的数据传输,该PCIE总线结构由RC(Root Complex,根组件)侧与EP(End Point,端点)侧组成,其中,RC侧由CPU(Central Processing Unit,中央处理器)和存储器组成,EP侧由各个外围设备(例如,网卡、显卡等设备)组成,这些外围设备可以统称为PCIE设备。CPU在加载PCIE驱动时,在存储器中会为每个PCIE设备分配一段存储空间,用于存储数据,由于访问该段存储空间的地址实际为内存地址,而PCIE设备与CPU之间是通过PCIE总线地址进行交互,因此CPU在接收到PCIE设备发送的写请求或读请求时,需要将写请求或读请求携带的PCIE总线地址通过预设映射算法转换为对应的存储空间的内存地址,然后才可利用该内存地址向存储器写或读数据。然而,CPU除了处理PCIE设备与存储器之间的数据传输,还需要进行其它处理,在PCIE设备与存储器之间传输的数据增大时,会严重影响CPU的处理性能,从而导致数据传输效率降低。
发明内容
有鉴于此,本申请提供一种数据传输方法及装置,以解决现有数据传输方式会严重影响CPU的处理性能,导致数据传输效率降低的问题。
根据本申请实施例的第一方面,提供一种数据传输方法,所述方法应用于DMA控制器,所述DMA控制器分别与RC侧的存储器和EP侧的PCIE设备连接,所述存储器包括第一存储空间、可DMA的第二存储空间以及用于存储数据的第三存储空间,其中,所述第一存储空间与所述PCIE设备中相互对应的存储空间中存储有第二存储空间的基地址,所述第二存储空间中至少存储有第三存储空间的基地址,所述方法包括:
接收所述PCIE设备发送的数据传输请求;
根据所述数据传输请求携带的第二存储空间的基地址从所述第二存储空间中获取第三存储空间的基地址;
根据所述第三存储空间的基地址和所述数据传输请求携带的读写标识向所述存储器中的第三存储空间读或者写数据。
可选的,所述根据所述第三存储空间的基地址和所述数据传输请求携带的读写标识向所述存储器中的第三存储空间读或者写数据,可包括:若所述读写标识为读标识,则从所述第二存储空间中获取地址偏移值;读取所述第三存储空间的基地址中的数据,并根据所述第三存储空间的基地址与地址偏移值读取相应偏移位置上的数据;将读取到的数据发送至所述PCIE设备;若所述读写标识为写标识,则根据所述数据传输请求携带的数据存放地址从所述PCIE设备中获取数据,并将获取到的数据从所述第三存储空间的基地址开始写入所述存储器中的第三存储空间。
可选的,在将读取到的数据发送至所述PCIE设备之后,所述方法还可包括:将所述存储器中的第二存储空间的第一标志位清除,以使RC侧的CPU在检测到所述存储器中的第二存储空间的第一标志位被清除时,释放所述第三存储空间;其中,RC侧的CPU在将所述数据写入所述存储器的第三存储空间之后,为第二存储空间设置第一标志位。
可选的,在将获取到的数据从所述第三存储空间的基地址开始写入所述存储器中的第三存储空间之后,所述方法还可包括:为所述存储器中的第二存储空间设置第二标志位,以使RC侧的CPU在检测到所述存储器中的第二存储空间设置有第二标志位时,从所述第三存储空间中读取数据,并释放所述第三存储空间。
根据本申请实施例的第二方面,提供一种数据传输装置,所述装置应用于DMA控制器,所述DMA控制器分别与RC侧的存储器和EP侧的PCIE设备连接,所述存储器包括第一存储空间、可DMA的第二存储空间以及用于存储数据的第三存储空间,其中,所述第一存储空间与所述PCIE设备中相互对应的存储空间中存储有第二存储空间的基地址,所述第二存储空间中至少存储有第三存储空间的基地址,所述装置包括:
接收模块,用于接收所述PCIE设备发送的数据传输请求;
获取模块,用于根据所述数据传输请求携带的第二存储空间的基地址从所述第二存储空间中获取第三存储空间的基地址;
读写模块,用于根据所述第三存储空间的基地址和所述数据传输请求携带的读写标识向所述存储器中的第三存储空间读或者写数据。
可选的,所述读写模块,可具体用于若所述读写标识为读标识,则从所述第二存储空间中获取地址偏移值;读取所述第三存储空间的基地址中的数据,并根据所述第三存储空间的基地址与地址偏移值读取相应偏移位置上的数据;将读取到的数据发送至所述PCIE设备;若所述读写标识为写标识,则根据所述数据传输请求携带的数据存放地址从所述PCIE设备中获取数据,并将获取到的数据从所述第三存储空间的基地址开始写入所述存储器中的第三存储空间。
可选的,所述装置还可包括:清除模块,用于在所述读写模块将读取到的数据发送至所述PCIE设备之后,将所述存储器中的第二存储空间的第一标志位清除,以使RC侧的CPU在检测到所述存储器中的第二存储空间的第一标志位被清除时,释放所述第三存储空间;其中,RC侧的CPU在将所述数据写入所述存储器的第三存储空间之后,为第二存储空间设置第一标志位。
可选的,所述装置还可包括:设置模块,用于在所述读写模块将获取到的数据从所述第三存储空间的基地址开始写入所述存储器中的第三存储空间之后,为所述存储器中的第二存储空间设置第二标志位,以使RC侧的CPU在检测到所述存储器中的第二存储空间设置有第二标志位时,从所述第三存储空间中读取数据,并释放所述第三存储空间。
应用本申请实施例,DMA控制器在接收到EP侧的PCIE设备发送的数据传输请求时,可以根据数据传输请求携带的第二存储空间的基地址从RC侧的存储器中的第二存储空间获取第三存储空间的基地址,然后根据该第三存储空间的基地址和该数据传输请求携带的读写标识能够向存储器中的第三存储空间读或者写数据。基于上述实现方式,本发明技术方案不需要经过RC侧的CPU的直接控制,即可通过DMA控制器实现EP侧的PCIE设备与RC侧的存储器之间的数据传输,从而将CPU解放出来,以用于进行其它处理,从而提高了CPU的处理性能,进而也提高了数据传输的效率。此外,PCIE设备与存储器之间是通过携带有可DMA的第二存储空间的基地址的数据传输请求实现的数据传输过程,并不涉及PCIE总线地址与存储空间的内存地址的映射转换,因此可以进一步提高数据传输效率。
附图说明
图1为本申请根据一示例性实施例示出的一种数据传输结构图;
图2A为本申请根据一示例性实施例示出的一种数据传输方法的实施例流程图;
图2B为本申请根据图2A所示实施例示出的一种存储器包括的存储空间示意图;
图3为本申请根据一示例性实施例示出的一种DMA控制器的硬件结构图;
图4为本申请根据一示例性实施例示出的一种数据传输装置的实施例结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1为本申请根据一示例性实施例示出的一种数据传输结构图,图1包括存储器、CPU、PCIE设备以及DMA(Direct Memory Access,直接存储器存储)控制器,其中,存储器与CPU通过内存分布式互连总线连接,均位于PCIE总线结构中的RC侧,该存储器可以是DRAM(Dynamic Random Access Memory,动态随机存取存储器)、Flash等;PCIE设备位于PCIE总线结构中的EP侧,与CPU通过PCIE总线连接,该PCIE设备可以是显卡、网卡、FPGA(Field-Programmable Gate Array),现场可编程门阵列)等外围设备;DMA控制器通过IO分布式互连总线分别与存储器、CPU以及PCIE设备连接。
在本申请中,CPU在上电并加载PCIE驱动时,会检测与其连接的PCIE设备,在检测到PCIE设备时,会在存储器中为该PCIE设备分配一段PCIE总线地址对应的存储空间(下面可以称为第一存储空间),并且该第一存储空间与PCIE设备的一段存储空间相互对应,即存储在第一存储空间中的数据,同时也会通过PCIE总线被同步到PCIE设备中对应的那段存储空间中,CPU在加载完成PCIE驱动之后,会在存储器中申请一块内存(下面可以称为第二存储空间),并为该第二存储空间设置可DMA标识,用于指示该第二存储空间是可DMA的,并将该第二存储空间的基地址写入第一存储空间中,同时,CPU也会通过PCIE总线将该第二存储空间的基地址同步到PCIE设备中对应的那段存储空间中。其中,该可DMA标识可以是数字或者字符,也可以是数字与字符的组合,例如,可DMA标识可以设置为flag,本申请在此不做限制。此外,CPU还会申请一块内存(下面可以称为第三存储空间),用于存储数据,并将该第三存储空间的基地址写入第二存储空间中。
本领域技术人员可以理解的是,CPU在存储器中申请的第一存储空间、第二存储空间以及第三存储空间的大小,可以根据实际需求设置每个存储空间的大小。
图2A为本申请根据一示例性实施例示出的一种数据传输方法的实施例流程图;图2B为本申请根据图2A所示实施例示出的一种存储器包括的存储空间示意图,该数据传输方法可以应用于DMA控制器上,结合图1所示的数据传输结构,DMA控制器可以通过IO分布式互连总线分别与RC侧的存储器和EP侧的PCIE设备连接,由上面所述可知,该存储器包括第一存储空间、可DMA的第二存储空间以及用于存储数据的第三存储空间,其中,第一存储空间与PCIE设备中相互对应的存储空间中均存储有第二存储空间的基地址,第二存储空间中至少存储有第三存储空间的基地址,如图2A所示,该数据传输方法包括如下步骤:
步骤201:接收PCIE设备发送的数据传输请求。
在一实施例中,DMA控制器在接收到数据传输请求之前,可以先获得IO分布式互连总线控制权(下面简称总线控制权),具体获得过程可以是:在PCIE设备要进行数据传输时,向DMA控制器发送DMA请求,DMA控制器基于该DMA请求向CPU的总线裁决逻辑提出总线请求,当CPU执行完当前总线周期即释放总线控制权,总线裁决逻辑向DMA控制器发送总线请求的响应,从而DMA控制器获得总线控制权,并向PCIE设备发送DMA响应,此时,DMA控制器方可接收到PCIE设备发送的数据传输请求,以进一步完成数据传输过程,在整个数据传输过程中,不需要CPU直接控制传输,DMA控制器可以直接对存储器进行读写操作,从而CPU可以被解放出来,进行其它处理。
步骤202:根据该数据传输请求携带的第二存储空间的基地址从该第二存储空间中获取第三存储空间的基地址。
基于步骤201中的实施例所述,PCIE设备在接收到DMA控制器发送的DMA响应时,表示PCIE设备可以通过DMA控制器进行数据传输,PCIE设备随即可以从与第一存储空间相对应的存储空间中获取到第二存储空间的基地址,并将该第二存储空间的基地址添加到数据传输请求中,并将数据传输请求发送至DMA控制器,因此,DMA控制器可以从该数据传输请求中获取到第二存储空间的基地址,由于第二存储空间中存储有第三存储空间的基地址,并且第二存储空间为可DMA的地址空间,从而DMA控制器基于获取到的第二存储空间的基地址,可以从存储器中的第二存储空间上获取到第三存储空间的基地址。
步骤203:根据该第三存储空间的基地址和该数据传输请求携带的读写标识向该存储器中的第三存储空间读或者写数据。
在一实施例中,PCIE设备与存储器之间进行的数据传输可以分两种情况,一种情况是:CPU将数据写入存储器的第三存储空间之后,PCIE设备向存储器读取数据,另一种情况是:PCIE设备向存储器的第三存储空间写入数据,CPU向存储器读取数据。因此,PCIE设备可以在数据传输请求中添加读写标识,以区分这两种情况。其中,读写标识可以是数字或者字符,也可以是数字与字符的组合,本申请在此不做限制。下面对这两种情况进行详细介绍:
第一种情况,若该读写标识为读标识,则第二存储空间中除了存储有第三存储空间的基地址,还可能存储有地址偏移值,在第三存储空间中该地址偏移值对应的偏移位置上也存储有数据,因此,DMA控制器可以从第二存储空间中获取一次地址偏移值,再读取第三存储空间的基地址中的数据,并根据第三存储空间的基地址与地址偏移值读取相应偏移位置上的数据,最后将读取到的数据发送至PCIE设备。
其中,CPU在从第三存储空间的基地址开始不断往后偏移写数据的同时,会依次将每条数据对应的地址偏移值写入第二存储空间中。从而,DMA控制器可以根据获取到的地址偏移值与第三存储空间的基地址得到第三存储空间中相应的地址,进而读取到该地址中的数据。其中,该地址偏移值可以是相当于在基地址上移动的距离,例如,第三存储空间基地址为3,地址偏移值为2,将该基地址与地址偏移值相加得到相应的地址为5,则从第三存储空间的地址5上可以读取到数据。
在一示例性的场景中,如图2B所示,第一存储空间中存储有第二存储空间的基地址:地址5,第二存储空间中存储有第三存储空间的基地址:地址9,以及地址偏移值1、2、3,对应的可DMA标识为flag,第三存储空间中存储有CPU写入的数据,地址9中存有数据1、地址10中存有数据2、地址11中存有数据3以及地址12中存有数据4。DMA控制器在从存储器的第二存储空间中获取到地址9,以及地址偏移值1、2、3,之后,可以从地址9中读取到数据1,根据地址9与地址偏移值分别可以得到地址10、地址11以及地址12,因此,还可以从地址10中读取到数据2、从地址11中读取到数据3,从地址12中读取到数据4,并将数据1、数据2、数据3以及数据4发送至PCIE设备。
需要说明的是,RC侧的CPU在将数据写入存储器的第三存储空间之后,还可以为第二存储空间设置第一标志位,以表示第三存储空间中存储有数据,因此,DMA控制器在将读取到的数据发送至PCIE设备之后,可以将该存储器中的第二存储空间的第一标志位清除,以使CPU在检测到该存储器中的第二存储空间的第一标志位被清除时,释放该第三存储空间,以便于CPU以后再申请该段存储空间。其中,设置的第一标志位可以数字或者字符,也可以是数字与字符的组合,例如,第一标志位可以是1。
第二种情况,若该读写标识为写标识,则DMA控制器根据该数据传输请求携带的数据存放地址从PCIE设备中获取数据,并将获取到的数据从该第三存储空间的基地址开始写入存储器中的第三存储空间。
其中,PCIE设备在需要向存储器写数据时,可以将本设备中的数据存放地址添加到数据传输请求中,并将写标识也添加到数据传输请求中,从而,如果数据传输请求携带的读写标识为写标识,DMA控制器可以根据数据传输请求携带的数据存放地址从PCIE设备中获取到的相应的数据,并将获取到的数据从第三存储空间的基地址开始写入存储器中的第三存储空间中。
需要进一步说明的是,DMA控制器在将获取到的数据从第三存储空间的基地址开始写入该存储器中的第三存储空间之后,也可以为存储器中的第二存储空间设置第二标志位,以使RC侧的CPU在检测到存储器中的第二存储空间设置有第二标志位时,从该第三存储空间中读取数据,并释放该第三存储空间,以便于CPU以后再申请该段存储空间。其中,设置的第二标志位可以数字或者字符,也可以是数字与字符的组合,只要与第一标志位区分开即可,例如,第二标志位可以是2。
需要再进一步说明的是,DMA控制器与PCIE设备之间的通信,以及DMA控制器对存储器的操作均可以基于FMN(Fast Message Network,快速信息网络)技术实现通信。FMN是一个64bit宽度的消息网络,不需要通常总线所必须的“仲裁”阶段,因此可以进一步提高数据传输效率。
需要又进一步说明的是,基于步骤201的描述,DMA控制器在完成整个数据传输过程之后,可以释放总线控制权,将总线控制权交回给CPU。
由上述实施例可知,DMA控制器在接收到EP侧的PCIE设备发送的数据传输请求时,可以根据数据传输请求携带的第二存储空间的基地址从第二存储空间中获取第三存储空间的基地址,然后根据该第三存储空间的基地址和该数据传输请求携带的读写标识能够向存储器中的第三存储空间读或者写数据。基于上述实现方式,本发明技术方案不需要经过RC侧的CPU的直接控制,即可通过DMA控制器实现EP侧的PCIE设备与RC侧的存储器之间的数据传输,从而将CPU解放出来以用于进行其它处理,从而提高了CPU的处理性能,进而也提高了数据传输的效率。此外,PCIE设备与存储器之间是通过携带有可DMA的第二存储空间的基地址的数据传输请求实现的数据传输过程,并不涉及PCIE总线地址与存储空间的内存地址的映射转换,因此可以进一步提高数据传输效率。
与前述数据传输方法的实施例相对应,本申请还提供了数据传输装置的实施例。
本申请数据传输装置的实施例可以应用在DMA控制器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本申请根据一示例性实施例示出的一种DMA控制器的硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
图4为本申请根据一示例性实施例示出的一种数据传输装置的实施例结构图,该数据传输装置可以应用于DMA控制器上,结合图1所示的数据传输结构,DMA控制器可以通过IO分布式互连总线分别与RC侧的存储器和EP侧的PCIE设备连接,该存储器包括第一存储空间、可DMA的第二存储空间以及用于存储数据的第三存储空间,其中,第一存储空间与PCIE设备中相互对应的的存储空间中均存储有第二存储空间的基地址,第二存储空间中至少存储有第三存储空间的基地址,如图4所示,该数据传输装置包括:接收模块410、获取模块420以及读写模块430。
其中,接收模块410,用于接收所述PCIE设备发送的数据传输请求;
获取模块420,用于根据所述数据传输请求携带的第二存储空间的基地址从所述第二存储空间中获取第三存储空间的基地址;
读写模块430,用于根据所述第三存储空间的基地址和所述数据传输请求携带的读写标识向所述存储器中的第三存储空间读或者写数据。
在一可选的实现方式中,所述读写模块430,具体用于若所述读写标识为读标识,则从所述第二存储空间中获取地址偏移值;读取所述第三存储空间的基地址中的数据,并根据所述第三存储空间的基地址与所述地址偏移值读取相应偏移位置上的数据;将读取到的数据发送至所述PCIE设备;若所述读写标识为写标识,则根据所述数据传输请求携带的数据存放地址从所述PCIE设备中获取数据,并将获取到的数据从所述第三存储空间的基地址开始写入所述存储器中的第三存储空间。
在一可选的实现方式中,所述装置还包括(图4中未示出):
清除模块,用于在所述读写模块430将读取到的数据发送至所述PCIE设备之后,将所述存储器中的第二存储空间的第一标志位清除,以使RC侧的CPU在检测到所述存储器中的第二存储空间的第一标志位被清除时,释放所述第三存储空间;其中,RC侧的CPU在将所述数据写入所述存储器的第三存储空间之后,为第二存储空间设置第一标志位。
在一可选的实现方式中,所述装置还包括(图4中未示出):
设置模块,用于在所述读写模块430将获取到的数据从所述第三存储空间的基地址开始写入所述存储器中的第三存储空间之后,为所述存储器中的第二存储空间设置第二标志位,以使RC侧的CPU在检测到所述存储器中的第二存储空间设置有第二标志位时,从所述第三存储空间中读取数据,并释放所述第三存储空间。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (8)
1.一种数据传输方法,其特征在于,所述方法应用于直接存储器存储DMA控制器,所述DMA控制器分别与RC侧的存储器和EP侧的PCIE设备连接,所述存储器包括第一存储空间、可DMA的第二存储空间以及用于存储数据的第三存储空间,其中,所述第一存储空间与所述PCIE设备中相互对应的存储空间中存储有第二存储空间的基地址,所述第二存储空间中至少存储有第三存储空间的基地址,所述方法包括:
接收所述PCIE设备发送的数据传输请求;
根据所述数据传输请求携带的第二存储空间的基地址从所述第二存储空间中获取第三存储空间的基地址;
根据所述第三存储空间的基地址和所述数据传输请求携带的读写标识向所述存储器中的第三存储空间读或者写数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第三存储空间的基地址和所述数据传输请求携带的读写标识向所述存储器中的第三存储空间读或者写数据,包括:
若所述读写标识为读标识,则从所述第二存储空间中获取地址偏移值;读取所述第三存储空间的基地址中的数据,并根据所述第三存储空间的基地址与所述地址偏移值读取相应偏移位置上的数据;将读取到的数据发送至所述PCIE设备;
若所述读写标识为写标识,则根据所述数据传输请求携带的数据存放地址从所述PCIE设备中获取数据,并将获取到的数据从所述第三存储空间的基地址开始写入所述存储器中的第三存储空间。
3.根据权利要求2所述的方法,其特征在于,所述将读取到的数据发送至所述PCIE设备之后,所述方法还包括:
将所述存储器中的第二存储空间的第一标志位清除,以使RC侧的CPU在检测到所述存储器中的第二存储空间的第一标志位被清除时,释放所述第三存储空间;其中,RC侧的CPU在将所述数据写入所述存储器的第三存储空间之后,为第二存储空间设置第一标志位。
4.根据权利要求2所述的方法,其特征在于,所述将获取到的数据从所述第三存储空间的基地址开始写入所述存储器中的第三存储空间之后,所述方法还包括:
为所述存储器中的第二存储空间设置第二标志位,以使RC侧的CPU在检测到所述存储器中的第二存储空间设置有第二标志位时,从所述第三存储空间中读取数据,并释放所述第三存储空间。
5.一种数据传输装置,其特征在于,所述装置应用于直接存储器存储DMA控制器,所述DMA控制器分别与RC侧的存储器和EP侧的PCIE设备连接,所述存储器包括第一存储空间、可DMA的第二存储空间以及用于存储数据的第三存储空间,其中,所述第一存储空间与所述PCIE设备中相互对应的存储空间中存储有第二存储空间的基地址,所述第二存储空间中至少存储有第三存储空间的基地址,所述装置包括:
接收模块,用于接收所述PCIE设备发送的数据传输请求;
获取模块,用于根据所述数据传输请求携带的第二存储空间的基地址从所述第二存储空间中获取第三存储空间的基地址;
读写模块,用于根据所述第三存储空间的基地址和所述数据传输请求携带的读写标识向所述存储器中的第三存储空间读或者写数据。
6.根据权利要求5所述的装置,其特征在于,
所述读写模块,具体用于若所述读写标识为读标识,则从所述第二存储空间中获取地址偏移值;读取所述第三存储空间的基地址中的数据,并根据所述第三存储空间的基地址与所述地址偏移值读取相应偏移位置上的数据;将读取到的数据发送至所述PCIE设备;若所述读写标识为写标识,则根据所述数据传输请求携带的数据存放地址从所述PCIE设备中获取数据,并将获取到的数据从所述第三存储空间的基地址开始写入所述存储器中的第三存储空间。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
清除模块,用于在所述读写模块将读取到的数据发送至所述PCIE设备之后,将所述存储器中的第二存储空间的第一标志位清除,以使RC侧的CPU在检测到所述存储器中的第二存储空间的第一标志位被清除时,释放所述第三存储空间;其中,RC侧的CPU在将所述数据写入所述存储器的第三存储空间之后,为第二存储空间设置第一标志位。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
设置模块,用于在所述读写模块将获取到的数据从所述第三存储空间的基地址开始写入所述存储器中的第三存储空间之后,为所述存储器中的第二存储空间设置第二标志位,以使RC侧的CPU在检测到所述存储器中的第二存储空间设置有第二标志位时,从所述第三存储空间中读取数据,并释放所述第三存储空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710087230.XA CN106844245B (zh) | 2017-02-17 | 2017-02-17 | 数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710087230.XA CN106844245B (zh) | 2017-02-17 | 2017-02-17 | 数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106844245A true CN106844245A (zh) | 2017-06-13 |
CN106844245B CN106844245B (zh) | 2019-11-12 |
Family
ID=59128689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710087230.XA Active CN106844245B (zh) | 2017-02-17 | 2017-02-17 | 数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844245B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107579936A (zh) * | 2017-09-11 | 2018-01-12 | 北京腾凌科技有限公司 | 报文传输方法、控制器及存储系统 |
CN107689996A (zh) * | 2017-09-05 | 2018-02-13 | 武汉斗鱼网络科技有限公司 | 数据传输方法、装置及终端设备 |
CN108334470A (zh) * | 2018-01-10 | 2018-07-27 | 西安万像电子科技有限公司 | 数据处理方法、装置和系统 |
CN109471814A (zh) * | 2018-10-31 | 2019-03-15 | 龙迅半导体(合肥)股份有限公司 | 一种数据传输的方法、装置及主控制端 |
CN109558348A (zh) * | 2018-12-19 | 2019-04-02 | 深圳开立生物医疗科技股份有限公司 | 数据搬移方法、装置及系统 |
CN109753462A (zh) * | 2017-11-08 | 2019-05-14 | 山东超越数控电子股份有限公司 | 一种基于飞腾服务器pcie接口卡的dma数据传输方法 |
CN109783407A (zh) * | 2019-01-14 | 2019-05-21 | 武汉精立电子技术有限公司 | 一种基于fpga实现pc与显卡桥接的装置及方法 |
CN111367839A (zh) * | 2020-02-21 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种主机端与fpga加速器之间的数据同步方法 |
CN113934674A (zh) * | 2021-12-17 | 2022-01-14 | 飞腾信息技术有限公司 | 基于pcie总线的命令传输方法及片上系统 |
CN114594905A (zh) * | 2020-12-04 | 2022-06-07 | 国际商业机器公司 | 自清除数据移动辅助(dma)引擎 |
CN114647603A (zh) * | 2022-04-06 | 2022-06-21 | 星宸科技股份有限公司 | 数据传输控制装置 |
CN115599729A (zh) * | 2022-12-13 | 2023-01-13 | 南京芯驰半导体科技有限公司(Cn) | 一种中央处理器基于PCIe读写数据系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639810A (zh) * | 2009-08-26 | 2010-02-03 | 杭州华三通信技术有限公司 | 一种访问pci存储空间的方法和装置 |
CN102063274A (zh) * | 2010-12-30 | 2011-05-18 | 成都市华为赛门铁克科技有限公司 | 存储阵列和存储系统及数据访问方法 |
CN102314400A (zh) * | 2011-09-27 | 2012-01-11 | 广东威创视讯科技股份有限公司 | 一种分散聚合式dma方法及装置 |
CN105335309A (zh) * | 2014-05-30 | 2016-02-17 | 华为技术有限公司 | 一种数据传输方法及计算机 |
CN105938461A (zh) * | 2015-07-31 | 2016-09-14 | 杭州迪普科技有限公司 | 一种dma数据传输方法、装置以及网络设备 |
-
2017
- 2017-02-17 CN CN201710087230.XA patent/CN106844245B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639810A (zh) * | 2009-08-26 | 2010-02-03 | 杭州华三通信技术有限公司 | 一种访问pci存储空间的方法和装置 |
CN102063274A (zh) * | 2010-12-30 | 2011-05-18 | 成都市华为赛门铁克科技有限公司 | 存储阵列和存储系统及数据访问方法 |
CN102314400A (zh) * | 2011-09-27 | 2012-01-11 | 广东威创视讯科技股份有限公司 | 一种分散聚合式dma方法及装置 |
CN105335309A (zh) * | 2014-05-30 | 2016-02-17 | 华为技术有限公司 | 一种数据传输方法及计算机 |
CN105938461A (zh) * | 2015-07-31 | 2016-09-14 | 杭州迪普科技有限公司 | 一种dma数据传输方法、装置以及网络设备 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107689996B (zh) * | 2017-09-05 | 2020-07-31 | 武汉斗鱼网络科技有限公司 | 数据传输方法、装置及终端设备 |
CN107689996A (zh) * | 2017-09-05 | 2018-02-13 | 武汉斗鱼网络科技有限公司 | 数据传输方法、装置及终端设备 |
CN107579936A (zh) * | 2017-09-11 | 2018-01-12 | 北京腾凌科技有限公司 | 报文传输方法、控制器及存储系统 |
CN109753462A (zh) * | 2017-11-08 | 2019-05-14 | 山东超越数控电子股份有限公司 | 一种基于飞腾服务器pcie接口卡的dma数据传输方法 |
CN108334470A (zh) * | 2018-01-10 | 2018-07-27 | 西安万像电子科技有限公司 | 数据处理方法、装置和系统 |
CN109471814A (zh) * | 2018-10-31 | 2019-03-15 | 龙迅半导体(合肥)股份有限公司 | 一种数据传输的方法、装置及主控制端 |
CN109558348A (zh) * | 2018-12-19 | 2019-04-02 | 深圳开立生物医疗科技股份有限公司 | 数据搬移方法、装置及系统 |
CN109783407A (zh) * | 2019-01-14 | 2019-05-21 | 武汉精立电子技术有限公司 | 一种基于fpga实现pc与显卡桥接的装置及方法 |
CN111367839A (zh) * | 2020-02-21 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种主机端与fpga加速器之间的数据同步方法 |
CN111367839B (zh) * | 2020-02-21 | 2021-06-29 | 苏州浪潮智能科技有限公司 | 一种主机端与fpga加速器之间的数据同步方法 |
US11762790B2 (en) | 2020-02-21 | 2023-09-19 | Inspur Suzhou Intelligent Technology Co., Ltd. | Method for data synchronization between host side and FPGA accelerator |
CN114594905A (zh) * | 2020-12-04 | 2022-06-07 | 国际商业机器公司 | 自清除数据移动辅助(dma)引擎 |
CN113934674A (zh) * | 2021-12-17 | 2022-01-14 | 飞腾信息技术有限公司 | 基于pcie总线的命令传输方法及片上系统 |
CN113934674B (zh) * | 2021-12-17 | 2022-03-01 | 飞腾信息技术有限公司 | 基于pcie总线的命令传输方法及片上系统 |
CN114647603A (zh) * | 2022-04-06 | 2022-06-21 | 星宸科技股份有限公司 | 数据传输控制装置 |
CN114647603B (zh) * | 2022-04-06 | 2023-11-21 | 星宸科技股份有限公司 | 数据传输控制装置 |
CN115599729A (zh) * | 2022-12-13 | 2023-01-13 | 南京芯驰半导体科技有限公司(Cn) | 一种中央处理器基于PCIe读写数据系统及方法 |
CN115599729B (zh) * | 2022-12-13 | 2023-04-25 | 南京芯驰半导体科技有限公司 | 一种中央处理器基于PCIe读写数据系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106844245B (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844245A (zh) | 数据传输方法及装置 | |
CN104205232B (zh) | 用于存储器设备的芯片上冗余修复 | |
US8681552B2 (en) | System and method for accessing and storing interleaved data | |
US8856392B2 (en) | Dividing a port into smaller ports | |
CN103999159B (zh) | 用于对存储器响应进行排序的存储器设备、计算机系统及方法 | |
CN107533509A (zh) | 存储器设备特定的自刷新进入和退出 | |
CN108701081A (zh) | 用于同时存取非易失性存储器的多个分区的设备和方法 | |
TWI744806B (zh) | 通用快閃儲存記憶體模組、控制器及具有進階倍速寫入緩衝器之電子裝置,以及用於操作記憶體模組之方法 | |
CN103631534B (zh) | 数据存储系统以及其管理方法 | |
CN109871340A (zh) | 对存储器装置执行训练的电子装置及其训练方法 | |
US20080109627A1 (en) | Nonvolatile Memory Device And Method For Accessing Nonvolatile Memory Device | |
TW200304087A (en) | Method and apparatus for supplementary command bus | |
CN102918515A (zh) | 将数据存储在存储器控制器中的多个缓冲器的任何中 | |
US20140365837A1 (en) | Test apparatus and method for testing server | |
CN106407128B (zh) | 用于向持久性存储器多播数据的方法和系统 | |
CN114780465B (zh) | 可共享远程直接数据存取链接的创建方法及装置 | |
CN108417235A (zh) | 一种基于3d封装的dram存储器及访问方法 | |
US9761296B2 (en) | Smart in-module refresh for DRAM | |
CN102236622A (zh) | 提高动态存储器带宽利用率的动态存储器控制器及方法 | |
CN110399168A (zh) | 多数据盘存储服务器的系统启动方法、装置及设备 | |
CN208208340U (zh) | 一种基于3d封装的dram存储器 | |
CN115883022B (zh) | Dma传输控制方法、装置、电子设备及可读存储介质 | |
CN114691571A (zh) | 数据处理方法、重排序缓存器及互联设备 | |
US20090043970A1 (en) | Device having shared memory and method for providing access status information by shared memory | |
CN108139993A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |