CN117743220A - 数据传输方法及装置、电子设备和存储介质 - Google Patents
数据传输方法及装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117743220A CN117743220A CN202311853693.4A CN202311853693A CN117743220A CN 117743220 A CN117743220 A CN 117743220A CN 202311853693 A CN202311853693 A CN 202311853693A CN 117743220 A CN117743220 A CN 117743220A
- Authority
- CN
- China
- Prior art keywords
- data
- address index
- space
- processed
- bus interface
- 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
Links
- 238000003860 storage Methods 0.000 title claims abstract description 137
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000005540 biological transmission Effects 0.000 title claims abstract description 32
- 238000004590 computer program Methods 0.000 claims description 13
- 230000003068 static effect Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 10
- 230000000903 blocking effect Effects 0.000 description 6
- 238000013467 fragmentation Methods 0.000 description 4
- 238000006062 fragmentation reaction Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Information Transfer Systems (AREA)
Abstract
本公开涉及一种数据传输方法及装置、电子设备和存储介质,所述方法包括:总线接口根据接收的请求端发送的请求信息,以及总线接口中存储空间连续空间状态,在存储空间中为请求端请求的待处理数据分配数据空间,并基于该数据空间的地址索引,按照待处理数据中各数据元素的排列顺序,将从服务端读取待处理数据传输至请求端。本公开实施例在总线接口内部设置存储空间,并在存储空间中为待处理数据分配对应突发长度的数据空间,实现对待处理数据的各数据元素进行重排序,减少了服务端向请求端乱序返回待处理数据的概率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据传输方法及装置、电子设备和存储介质。
背景技术
随着人工智能和大数据技术的快速发展,处理器芯片需要处理的数据量越来越大,会频繁地对处理器芯片内的存储器执行数据的写入操作和删除操作。例如,写入数据时,会按照写入地址将数据存储到存储器内的指定位置;读取数据时,可通过读取地址从存储器取出相应的数据。由于存储设备的容量限制,频繁地对存储器执行数据的写入操作和删除操作,存储器的存储空间会被分割成许多小的、不连续的区域,导致无法高效地利用存储器的存储空间。
发明内容
本公开提出了一种数据传输技术方案。
根据本公开的一方面,提供了一种数据传输方法,所述方法应用于总线接口,包括:接收请求端发送的请求信息,所述请求信息包括所述请求端请求的待处理数据的突发长度,所述待处理数据包括多个依序排列的数据元素,所述突发长度用于表征所述数据元素的数量;根据所述请求信息,以及所述总线接口中存储空间连续空间状态,在所述存储空间中为所述待处理数据分配数据空间;基于所述数据空间的地址索引,按照所述数据元素的排列顺序,将从服务端读取所述待处理数据传输至所述请求端。
在一种可能的实现方式中,所述地址索引包括溢出位、地址位,所述溢出位用于在逻辑上将所述存储空间的首部和尾部相连接,形成连续的环形存储空间。
在一种可能的实现方式中,所述数据空间用于在所述总线接口未接收到所述服务端返回的排序在先的数据元素的情况下,存储先返回的排序在后的数据元素,以使所述总线接口按照所述数据元素的排列顺序,将从服务端读取的所述待处理数据的多个数据元素,依序传输至所述请求端。
在一种可能的实现方式中,基于所述数据空间的地址索引,按照所述数据元素的排列顺序,将从服务端读取所述待处理数据传输至所述请求端,包括:将所述首地址索引、所述突发长度发送至服务端,以使所述服务端根据所述首地址索引和所述突发长度向所述总线接口回传待处理数据,其中,所述待处理数据中的数据元素具有基于所述排列顺序的偏移地址索引,所述偏移地址索引是由所述首地址索引的自增运算得到的;将所述数据空间的首地址索引、所述突发长度存入控制队列,获取与所述控制队列关联的计数器的计数值,所述计数器响应于所述总线接口向所述请求端回传所述数据元素,对所述计数值执行自增操作;根据所述首地址索引、所述计数值,确定当前地址索引;根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端。
在一种可能的实现方式中,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:判断所述数据元素的偏移地址索引是否与所述当前地址索引相同;在所述数据元素的偏移地址索引与所述当前地址索引相同的情况下,将所述数据元素发送至所述请求端;或者,在所述数据元素的偏移地址索引与所述当前地址索引不同的情况下,根据所述偏移地址索引的地址位,将所述数据元素存入所述数据空间。
在一种可能的实现方式中,所述总线接口具有用于记录所述数据空间的空间状态的状态数组,所述方法还包括:响应于将所述数据元素基于偏移地址索引存入所述数据空间,在所述状态数组中对所述偏移地址索引对应位置执行置位操作。
在一种可能的实现方式中,所述状态数组的长度根据所述存储空间的空间大小和所述突发长度确定。
在一种可能的实现方式中,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:检测所述状态数组中所述当前地址索引指示位置处的状态位;在所述状态位表征所述数据空间中对应位置处的所述数据元素存在的情况下,根据所述当前地址索引的地址位从所述数据空间中读取所述数据元素至所述请求端;删除所述状态数组中所述当前地址索引指示位置处的状态位。
在一种可能的实现方式中,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:在所述计数值达到所述突发长度的情况下,所述控制队列中存储的所述首地址索引、所述突发长度出队。
在一种可能的实现方式中,所述存储空间包括静态随机存取存储器。
根据本公开的一方面,提供了一种数据传输装置,所述装置应用于总线接口,包括:接收模块,用于接收请求端发送的请求信息,所述请求信息包括所述请求端请求的待处理数据的突发长度,所述待处理数据包括多个依序排列的数据元素,所述突发长度用于表征所述数据元素的数量;分配模块,用于根据所述请求信息,以及所述总线接口中存储空间连续空间状态,在所述存储空间中为所述待处理数据分配数据空间;读取模块,用于基于所述数据空间的地址索引,按照所述数据元素的排列顺序,将从服务端读取所述待处理数据传输至所述请求端。
在一种可能的实现方式中,所述地址索引包括溢出位、地址位,所述溢出位用于在逻辑上将所述存储空间的首部和尾部相连接,形成连续的环形存储空间。
在一种可能的实现方式中,所述数据空间用于在所述总线接口未接收到所述服务端返回的排序在先的数据元素的情况下,存储先返回的排序在后的数据元素,以使所述总线接口按照所述数据元素的排列顺序,将从服务端读取的所述待处理数据的多个数据元素,依序传输至所述请求端。
在一种可能的实现方式中,所述读取模块用于:将所述首地址索引、所述突发长度发送至服务端,以使所述服务端根据所述首地址索引和所述突发长度向所述总线接口回传待处理数据,其中,所述待处理数据中的数据元素具有基于所述排列顺序的偏移地址索引,所述偏移地址索引是由所述首地址索引的自增运算得到的;将所述数据空间的首地址索引、所述突发长度存入控制队列,获取与所述控制队列关联的计数器的计数值,所述计数器响应于所述总线接口向所述请求端回传所述数据元素,对所述计数值执行自增操作;根据所述首地址索引、所述计数值,确定当前地址索引;根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端。
在一种可能的实现方式中,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:判断所述数据元素的偏移地址索引是否与所述当前地址索引相同;在所述数据元素的偏移地址索引与所述当前地址索引相同的情况下,将所述数据元素发送至所述请求端;或者,在所述数据元素的偏移地址索引与所述当前地址索引不同的情况下,根据所述偏移地址索引的地址位,将所述数据元素存入所述数据空间。
在一种可能的实现方式中,所述总线接口具有用于记录所述数据空间的空间状态的状态数组,所述读取模块还用于:响应于将所述数据元素基于偏移地址索引存入所述数据空间,在所述状态数组中对所述偏移地址索引对应位置执行置位操作。
在一种可能的实现方式中,所述状态数组的长度根据所述存储空间的空间大小和所述突发长度确定。
在一种可能的实现方式中,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:检测所述状态数组中所述当前地址索引指示位置处的状态位;在所述状态位表征所述数据空间中对应位置处的所述数据元素存在的情况下,根据所述当前地址索引的地址位从所述数据空间中读取所述数据元素至所述请求端;删除所述状态数组中所述当前地址索引指示位置处的状态位。
在一种可能的实现方式中,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:在所述计数值达到所述突发长度的情况下,所述控制队列中存储的所述首地址索引、所述突发长度出队。
在一种可能的实现方式中,所述存储空间包括静态随机存取存储器。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
本公开实施例的数据传输方法应用于总线接口,能够接收请求端发送的请求信息,该请求信息携带请求端请求的包括了多个依序排列的数据元素的待处理数据的突发长度,该突发长度用于表征数据元素的数量;总线接口可根据请求信息,以及总线接口中存储空间连续空间状态,在存储空间中为待处理数据分配数据空间,基于数据空间的地址索引,按照数据元素的排列顺序,将从服务端读取待处理数据传输至请求端。通过在总线接口内部设置存储空间,并在存储空间中为待处理数据分配对应突发长度的数据空间,基于数据空间的地址索引,实现对待处理数据的各数据元素进行重排序,减少了服务端向请求端乱序返回待处理数据的概率。
其中,本公开实施例的地址索引可包括溢出位、地址位,所述溢出位用于在逻辑上将存储空间的首部和尾部相连接,形成连续的环形存储空间,去除存储空间首部和尾部的概念,使存储空间中每个部分被利用的概率是等同的,减少了因总线接口中存储空间过度碎片化而阻塞接受请求信息的情况,提高了总线接口的运行效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的数据传输方法的应用场景的示意图,
图2示出根据本公开实施例的数据传输方法的流程图。
图3示出根据本公开实施例的存储空间的结构示意图。
图4示出根据本公开实施例的存储空间的环形空间的示意图。
图5示出根据本公开实施例的数据传输方法的示意图。
图6示出根据本公开实施例的数据传输装置的框图。
图7示出根据本公开实施例的一种电子设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开实施例的数据传输方法的应用场景的示意图,如图1所示,所述数据传输方法可以由总线接口(Bus Interface,BIF)执行,可以将连接在总线上的设备(例如包括请求端、服务端)与总线的连接电路称为总线接口。
在一种可能的实现方式中,总线接口可以为处理器芯片的一部分,处理器芯片例如包括:图形处理器(Graphic Processing Unit,GPU)、通用图形处理单元(General-Purpose Computing on Graphics Processing Units,GPGPU)、中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)、多核处理器(Multi-CoreProcessor)、数字信号处理单元(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、张量处理器(Tensor ProcessingUnit,TPU)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。本申请的实施例对处理器芯片的类别不作限定。
在一种可能的实现方式中,总线接口可以连接上游的请求端和下游的服务端,总线接口用于接收上游请求端发送的请求信息,并根据收到的请求信息从下游的服务端读取待处理数据至上游的请求端。该请求信息可用于请求端向服务端申请指定地址的待处理数据,假设请求端发起的请求信息所申请的是突发长度(burst length)为L(L≥1)的待处理数据,该待处理数据会包括L个数据元素。其中,突发长度是指传输待处理数据时,从起始地址开始连续传输的待处理数据的数据元素的数量。
服务器在返回待处理数据的过程中,由于服务端需要依照请求信息内包含的地址信息,到指定页表取得待处理数据的各数据元素,而各数据元素的位置并不一定在同一张页表上,因此,服务端可能会乱序返回待处理数据的各数据元素,例如,待处理数据中排序在后的数据元素可能会先返回。
而在处理器芯片内部,考虑到存在部分请求端不具有为收到的待处理数据的各数据元素进行重排序的能力,可将服务端返回的待处理数据的各数据元素重排序的工作,交由总线接口完成,可以在总线接口内部设置存储空间,并从存储空间中为待处理数据分配对应突发长度的数据空间,来对待处理数据的各数据元素进行重排序。
其中,存储空间可以是随机存取存储器(Random Access Memory,RAM),动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(StaticRandom Access Memory,SRAM)、同步动态随机存取存储器(Synchronous Dynamic RandomAccess Memory,SDRAM)、高速缓存存储器(Cached Dynamic Random Access Memory,CDRAM)、增强型动态随机存取存储器(Extended Data Out Dynamic Random AccessMemory,EDRAM)等,本公开对存储器的类型不作限制。
示例性地,在处理器芯片为GPU的情况下,请求端可以是GPU内的数据处理单元(datamaster),服务端可以是GPU内的高速缓存(Cache),总线接口可以连接上游的数据处理单元和下游的高速缓存,总线接口内设置的存储空间可以是静态随机存取存储器(SRAM)。
在一种可能的实现方式中,当前处理器芯片内请求端发送的请求信息的突发长度被限制在L,总线接口收到当前请求信息,需要在总线接口的存储空间中提供L个地址索引连续的数据空间。例如,假设总线接口收到的请求信息携带的突发长度被限制在0x0~0x7,总线接口在存储空间内需要提供8个地址索引连续的数据空间。应当理解,本公开的实施例对突发长度的大小不作限制。
其中,总线接口接收请求端发送的请求信息、总线接口中存储空间收取服务端返回的待处理数据的数据元素,以及请求端从总线接口的存储空间中取走待处理数据的数据元素的效率,以及为每时钟周期一拍。
这样,当总线接口所接收的请求信息携带的突发长度较大时,因受到服务端返回数据元素速率以及请求端收取数据元素顺序的影响,总线接口的存储空间中将存在大量空间被占用。随着系统运行时间增加,存储空间会越来越碎片化,携带有突发长度较大的请求信息被总线接口阻塞的概率也会增加,其中,存储空间中首部和尾部的碎片空间不能被有效利用的概率高于存储空间的中部。有鉴于此,本公开实施例的数据传输方法,通过在总线接口内部设置存储空间,并在存储空间中为待处理数据分配对应突发长度的数据空间,根据数据空间的地址索引实现对待处理数据的各数据元素进行重排序,减少了服务端向请求端乱序返回待处理数据的概率。并且,本公开实施例在地址索引中设置了溢出位,将存储空间在逻辑上抽象成首尾相接的环形,去除存储空间首部和尾部的概念,使存储空间中每个部分被利用的概率是等同的,减少了因总线接口中存储空间过度碎片化而阻塞接受请求信息的情况,提高了总线接口的运行效率。
图2示出根据本公开实施例的数据传输方法的流程图,如图2所示,所述数据传输方法可以应用于总线接口,所述数据传输方法包括:
在步骤S11中,接收请求端发送的请求信息,所述请求信息包括所述请求端请求的待处理数据的突发长度,所述待处理数据包括多个依序排列的数据元素,所述突发长度用于表征所述数据元素的数量;
在步骤S12中,根据所述请求信息,以及所述总线接口中存储空间连续空间状态,在所述存储空间中为所述待处理数据分配数据空间;
在步骤S13中,基于所述数据空间的地址索引,按照所述数据元素的排列顺序,将从服务端读取所述待处理数据传输至所述请求端。
其中,所述地址索引包括溢出位、地址位,所述溢出位用于在逻辑上将所述存储空间的首部和尾部相连接,形成连续的环形存储空间,所述数据空间用于在所述总线接口未接收到所述服务端返回的排序在先的数据元素的情况下,存储先返回的排序在后的数据元素,以使所述总线接口按照所述数据元素的排列顺序,将从服务端读取的所述待处理数据的多个数据元素依序传输至所述请求端。
示例性地,在步骤S11中,处理器芯片可包括多个请求端,任一请求端可以生成用于读取服务端中待处理数据的请求信息(例如读请求),并发送该请求信息至总线接口,该请求信息可以包括待处理数据的突发长度,突发长度为大于或等于1的整数,本公开的实施例对突发长度的具体取值不作限制。
假设总线接口收到来自请求端的请求信息,该请求信息携带突发长度L,总线接口可以获取到该请求信息所请求的待处理数据会包括L个依序排列的数据元素,例如:数据元素Data[0]~数据元素Data[L-1],待处理数据的突发长度L与数据元素数量L是相同的。
在步骤S11总线接口收到请求端发送的携带有突发长度的请求信息,在步骤S12中,总线接口可以根据请求信息以及总线接口中存储空间的连续空间状态,在所述存储空间中为所述待处理数据分配数据空间。其中,所分配的数据空间的大小是由突发长度L确定的,该数据空间可对应L个连续的地址索引,可用于存储待处理数据包括的L个数据元素,该地址索引可包括溢出位、地址位。
在一种可能的实现方式中,所述溢出位用于在逻辑上将所述存储空间的首部和尾部相连接,形成连续的环形存储空间。
图3示出根据本公开实施例的存储空间的结构示意图,如图3所示,总线接口内使用的可以是一个256级深的存储空间,其对应的地址索引为0~255,将地址索引0~255换算到二进制可以表示为0000_0000~1111_1111,每个二进制表示的地址索引占用了8比特(bit)的位数。
对于挂载到总线接口上的请求端发出的请求信息,总线接口会依据请求信息所请求的待处理数据的突发长度L,以及总线接口中存储空间的连续空间状态,预先在存储空间中分配连续L个空闲存储空间作为数据空间,用于暂存后续服务端返回的待处理数据的L个数据元素。
假设当前请求信息携带的突发长度L为4,总线接口根据当前的请求信息,会向存储空间申请可以存放4个数据元素的连续空闲空间作为数据空间,如果不在地址索引中设置溢出位,直接将占位8比特(bit)的地址位作为地址索引,需要在存储空间的地址索引0~255中,查找一段连续4个未被分配、可利用的地址索引给当前的请求信息,可能是0~3,1~4,2~5,…252~255等253种情况。在这一分配原则下,地址索引为0、1、2的空间仅能作为分配给待处理数据的起始地址空间,不能作为终止地址空间;地址索引为253、254、255的空间仅能作为分配给待处理数据的终止地址空间,不能作为起始地址空间。
这样,可能会出现一种概率并不低的最差情况:在某一时刻,总线接口的某一请求端向总线接口的存储空间申请突发长度为4的数据空间,而该时刻存储空间中地址索引为2~253的空间已经被占用,地址索引为1、2、254、255的空间是空闲的。在地址索引没有设置溢出位的情况下,虽然存储空间还存在4个空闲的空间,但是由于地址索引为1、2、254、255的空间是不连续的,无法作为分配给待处理数据的数据空间,地址索引254不能作为分配给待处理数据的起始地址空间。
在这样的空间分配方式下,总线接口不能接受当前的请求信息,除非将当前携带突发长度为4的请求信息,切分成2个携带突发长度为2的请求信息。而切分请求信息将会降低总线接口的运行效率,因此,总线接口更倾向于拒绝接受切分请求,屏蔽当前请求信息,直到存储空间内的空间被释放至足以为其分配连续的4个空间,增加了请求信息被阻塞的概率。
为了提高存储空间的空间利用率,在本公开的实施例中,可以在地址索引中增加溢出位,例如,在8比特地址位的最高位处增加1比特的溢出位,使用9比特的二进制位宽来表示存储空间0~255的地址索引,可以在不改变存储空间物理状态的情况下,在逻辑上将存储空间抽象成一个首尾相接的环形空间,图4示出根据本公开实施例的存储空间的环形空间的示意图,如图4所示,总线接口可以将存储空间的254,255,0,1作为连续的地址索引,分配给当前的请求信息作为数据空间,其分配出去的地址索引为0_1111_1110,0_1111_1111,1_0000_0000,1_0000_0001。
可见,通过设置溢出位,可以将总线接口的存储空间在逻辑上形成连续的环形存储空间,使存储空间的空间利用率得到优化,减少较大突发长度的请求信息被阻塞的概率。
这样,总线接口可以每个时钟周期检索一次存储空间的连续空间状态,依据当前请求信息携带的突发长度L,从环形的存储空间中寻找任一L个连续空闲空间,确定为当前请求信息所申请的数据空间。并且,总线接口还可以根据该数据空间为当前的待处理数据分配地址索引。该地址索引可以是一个虚拟的地址索引,由高位的溢出位和低位的地址位构成;其中,低位的地址位可以是存储空间实际的物理地址,地址索引中首地址索引高位的溢出位可以初始化为0。
在步骤S12总线接口在存储空间中为待处理数据分配了数据空间,在步骤S13中,总线接口可以基于数据空间的地址索引,按照待处理数据中数据元素的排列顺序,将从服务端读取待处理数据传输至请求端。
示例性地,总线接口可以将数据空间的首地址索引和突发长度发送至服务端,服务端可以根据接收到的首地址索引和突发长度,返回对应突发长度的数据元素到总线接口,由于服务端返回的各数据元素是乱序,例如:在待处理数据中排序在后的数据元素可能会先从服务端返回总线接口。
总线接口在还未收到排序在先的数据元素的情况下,可以将先收到的排序在后的数据元素存入数据空间,等待总线接口收到全部排序在前的数据元素,并在总线接口将全部排序在先的数据元素全部发送至请求端,再从数据空间中读取排序在后的数据元素发送至请求端,以使总线接口依序从服务端读取待处理数据的各数据元素至请求端。
本公开实施例的数据传输方法,通过在地址索引设置溢出位,就可以用比存储空间的物理地址(例如地址位)多一位(例如溢出位)的地址索引来表示存储空间,利用二进制逻辑中每增加1比特其余位置能够实现一次循环的原理,使得存储空间的首尾地址在逻辑意义上相连接,将存储空间在逻辑上抽象成环状,达到降低存储空间边缘空间碎片化概率,提升存储空间的空间利用率,进而提高总线接口的性能。
图5示出根据本公开实施例的数据传输方法的示意图,如图5所示,总线接口可以通过设置存储空间、状态数组、分配模块、控制队列、计数器,以使在服务端向总线接口返回数据元素的顺序未按照待处理数据中数据元素排列顺序的情况下,总线接口也可以对处理数据中各数据元素重排序,按照待处理数据中数据元素的排列顺序,将待处理数据中的各数据元素发送至请求端。下面以图5为例,对本公开实施例的数据传输方法进行示例性说明。
在步骤S11总线接口接收请求端发送的携带有突发长度的请求信息,在步骤S12中,总线接口可以根据该请求信息,以及总线接口中存储空间的连续空间状态,从存储空间中为待处理数据预留数据空间。其中,用于指示该数据空间的首地址索引可以包括溢出位、地址位。
如图5所示,可以在总线接口中设置分配模块,总线接口的分配模块可以每个时钟周期检索一次存储空间的空闲状态,根据存储空间内连续空间的状态,以及当前请求信息携带的突发长度,为当前请求信息请求的待处理数据分配数据空间,并将该数据空间的物理首地址P确定为地址位,然后,可以在地址位P的最高位增加初始化为0的溢出位,得到由溢出位和地址位构成的首地址索引[0,P],其中,地址位P可以表示为多位二进制数。
其中,数据空间用于在总线接口未接收到从服务端返回的排序在先的数据元素的情况下,存储从服务端先返回的排序在后的数据元素。考虑到存储空间中各数据空间的地址索引,在请求端从数据空间中收取数据元素前不会被重复分配,存储空间分配出去的数据空间对应的地址索引可以具有唯一性。
在步骤S12总线接口根据请求信息以及总线接口中存储空间的连续空间状态,确定出可用于存储待处理数据的数据空间的首地址索引,在步骤S13中,总线接口可以根据数据空间的首地址索引,按照所述数据元素的排列顺序,从服务端读取待处理数据至请求端。
在一种可能的实现方式中,步骤S13可包括:将所述首地址索引、所述突发长度发送至服务端,以使所述服务端根据所述首地址索引和所述突发长度向所述总线接口回传待处理数据,其中,所述待处理数据中的数据元素具有基于所述排列顺序的偏移地址索引,所述偏移地址索引是由所述首地址索引的自增运算得到的;将所述数据空间的首地址索引、所述突发长度存入控制队列,获取与所述控制队列关联的计数器的计数值,所述计数器响应于所述总线接口向所述请求端回传所述数据元素,对所述计数值执行自增操作;根据所述首地址索引、所述计数值,确定当前地址索引;根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端。其中,在所述计数值达到所述突发长度的情况下,所述控制队列中存储的所述首地址索引、所述突发长度出队。
示例性地,总线接口可以将当前增加了溢出位的首地址索引和其对应的突发长度,存入总线接口的控制队列,该控制队列可以是先入先出队列(First Input FirstOutput,FIFO),用于控制待处理数据按序返回请求端。
例如,假设请求端按照时间的先后顺序,在第1个时钟周期向总线接口发送携带有突发长度L1的请求信息1、在第2个时钟周期携带有突发长度L2的请求信息2,以此类推,直至在第N个时钟周期发送携带有突发长度LN的请求信息N。
总线接口在第1个时钟周期先收到携带有突发长度L1的请求信息1,总线接口可以根据突发长度L1查询存储空间的连续空间状态,为请求信息1分配数据空间,以及确定该数据空间具有溢出位的首地址索引1,并将首地址索引1和突发长度L1送入控制队列;
然后,总线接口在第2个时钟周期收到携带有突发长度L2的请求信息2,总线接口可以根据突发长度L2查询存储空间的连续空间状态,为请求信息2分配数据空间,以及确定该数据空间具有溢出位的首地址索引2,并将首地址索引2和突发长度L2送入控制队列;
以此类推,总线接口在第N个时钟周期收到携带有突发长度LN的请求信息N,总线接口可以根据突发长度LN查询存储空间的连续空间状态,为请求信息N分配数据空间,以及确定该数据空间具有溢出位的首地址索引N,并将首地址索引N和突发长度LN送入控制队列。
总线接口按照从队头至队尾的方向,依次存储了对应请求信息1的首地址索引1和突发长度L1、对应请求信息2的首地址索引2和突发长度L2,直至对应请求信息N的首地址索引N和突发长度LN。总线接口后续向请求端返回待处理数据时,可以按照控制队列记录的从队首至队尾的顺序,先返回请求信息1请求的待处理数据,再返回请求信息2请求的待处理数据,直至返回请求信息N的待处理数据。
在示例中,总线接口将任一请求信息i(i为1至N中任意整数)对应的首地址索引i和突发长度Li送入控制队列时,总线接口还可以同步将首地址索引i和突发长度Li发送至服务端,以使服务端根据首地址索引i和突发长度Li向总线接口回传待处理数据。例如,服务端可以通过回传多个数据包的方式,向总线接口返回待处理数据,其中,每个数据包可以包括某一排序的数据元素,以及该数据元素对应的偏移地址索引,该偏移地址索引是由首地址索引自增该数据元素的排列顺序得到的。
总线接口收到服务端回传的数据包是乱序的,例如,总线接口当前时刻收到的数据包,其所包含的数据元素可能是在待处理数据中排序在先的数据元素,也可能是在待处理数据中排序在后的数据元素。无论总线接口收到的数据包包含的是排序在先的数据元素还是排序在后的数据元素,每当总线接口一个数据包,该数据包可以携带数据元素对应的偏移地址索引,该偏移地址索引用于指示该数据元素在待处理数据中的排序位置。
示例性地,每个数据包可以包含对应当前请求信息i(i为1至N中任意整数)所请求的待处理数据的某一数据元素,以及该数据元素的偏移地址索引,该偏移地址索引是按照该数据元素在待处理数据中的排序,对首地址索引i进行自增运算得到的。例如,假设某一数据元素在待处理数据中的排序为K,K的取值范围为[0,Li-1],该数据元素的偏移地址索引为首地址索引i和排序K的加和结果。其中,待处理数据中各数据元素的偏移地址索引的位宽与首地址索引的位宽相同,两者均包括溢出位。
控制队列不仅可以控制总线接口按照接收请求信息的顺序(例如按照从请求信息1~请求信息N的顺序),将各请求信息请求的待处理数据按序返回请求端,控制队列还可以控制一个计数器,并根据由计数器确定的当前地址索引,以及来自服务端的偏移地址索引,指示控制接口对于任一请求信息所请求的待处理数据,按照待处理数据中各数据元素的排序,依序返回请求端。
示例性地,控制队列控制的计数器,其计数机制为每当请求端从总线接口内收取一个待处理数据的数据元素,则计数值加1。当计数值增至等于控制队列内存储的当前请求信息的突发长度(例如控制队列的队头存储的突发长度),说明当前请求信息对应的待处理数据的各数据元素已全部返回请求端,可以将当前控制队列的队头存储的首地址索引和突发长度出队。其中,控制队列内存放的首地址索引以计数值作为偏移量递增,可以得到当前地址索引,当前地址索引指示的是按照待处理数据中各数据元素的排列顺序,当前需要返回请求端的数据元素。
例如,当计数值增至请求信息i(i为1至N中任意整数)对应的突发长度Li,说明请求信息i所请求的待处理数据的各数据元素全部返回请求端,控制队列会将请求信息i对应的首地址索引i和突发长度Li出队,将计数器的计数值由Li初始化为0。
此时,控制队列的队头存储的是下一个请求信息i+1对应的首地址索引i+1与突发长度Li+1,可以将首地址索引i+1和计数值0相加,得到当前地址索引,用于指示请求信息i+1所请求的待处理数据的首个数据元素Data[0]在存储空间的位置,也即数据空间的首个位置。
当请求端从总线接口取走数据元素Data[0],计数器的计数值由0增至1,可以将首地址索引i+1和计数值1相加,得到当前地址索引,用于指示请求信息i+1所请求的待处理数据的排序第二的数据元素Data[1]在存储空间的位置,也即数据空间的第二个位置。
以此类推,当请求端从总线接口取走数据元素Data[Li+1-1],计数器的计数值由Li+1-1增至Li+1,与突发长度Li+1相同,说明请求信息i+1所请求的待处理数据的各数据元素全部返回请求端,控制队列会将请求信息i+1对应的首地址索引i+1和突发长度Li+1出队,将计数器的计数值由Li+1初始化为0。
通过这种方式,总线接口可将服务端返回的待处理数据的各数据元素重排序。
在一种可能的实现方式中,总线接口可以根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:判断所述数据元素的偏移地址索引是否与所述当前地址索引相同;在所述数据元素的偏移地址索引与所述当前地址索引相同的情况下,将所述数据元素发送至所述请求端;或者,在所述数据元素的偏移地址索引与所述当前地址索引不同的情况下,根据所述偏移地址索引的地址位,将所述数据元素存入所述数据空间。其中,所述总线接口具有用于记录所述数据空间的空间状态的状态数组,所述方法还包括:响应于将所述数据元素基于偏移地址索引存入所述数据空间,在所述状态数组中对所述偏移地址索引对应位置执行置位操作。所述状态数组的长度根据所述存储空间的空间大小和所述突发长度确定。
示例性地,假设总线接口接收到服务端回传的当前待处理数据的某一数据元素Data[k],以及该数据元素Data[k]对应的偏移地址索引。总线接口会判断数据元素Data[k]的偏移地址索引是否与当前地址索引相同,如果数据元素Data[k]的偏移地址索引与当前地址索引相同,说明待处理数据中排序在先的数据元素Data[0]~Data[k-1]已经返回给请求端,总线接口可以直接将数据元素Data[k]发送至请求端;如果数据元素Data[k]的偏移地址索引与当前地址索引不同,说明待处理数据的数据元素Data[0]~Data[k-1]中存在数据元素还未返回请求端,总线接口需要等待数据元素Data[0]~Data[k-1]全部返回给请求端,可以将数据元素Data[k]的偏移地址索引删除溢出位,取偏移地址索引的地址位作为写入地址,将数据元素Data[k]暂存至存储空间中由偏移地址索引的地址位所指示的数据空间位置处,以及根据数据元素Data[k]的偏移地址索引的指示,在总线接口中用于记录数据空间的空间状态的状态数组执行置位操作(例如置1操作)。
换言之,如果总线接口没有收到待处理数据的首个数据元素Data[0],就算排序第二的数据元素Data[1]、第三的数据元素Data[2]等数据元素都已经存入存储空间的数据空间,也没有数据元素会被送入请求端。
在示例中,总线接口预先维护了一个记录存储空间内各数据空间占用状态的状态数组,该状态数组的长度可以根据存储空间的空间大小和突发长度确定。例如,假设存储空间具有0~255个空间,突发长度为8,可以将状态数组的长度确定为263,该状态数组的初始值为全0,表示存储空间内暂未有服务端返回数据包。应当理解,本公开的实施例仅以此为例,对状态数组的长度不作具体限制。
在示例中,可以将存储空间的空间大小与总线接口支持的最大突发长度的加和结果,设置为状态数组的长度,在首地址索引和偏移地址索引中设置溢出位,在不改变存储空间物理结构的情况下,在逻辑上将存储空间的首部和尾部相连接,形成连续的环形存储空间,提高了存储空间的空间利用率。例如,假设总线接口支持的最大突发长度为8,即一笔请求信息最多向存储空间申请8个连续空间作为数据空间。同时存储空间尾部和首部的地址索引最多可涵盖到1_0000_0110。可以看出,存储空间中0~6被使用的情况有两种,即最高溢出位为0和最高溢出位为1。
通过这种方式,每当服务端返回一个数据元素,当该数据元素的偏移地址索引与当前地址索引不同,就可以对状态数组内偏移地址索引指示的位置处执行置位操作,利用状态数组记录环状的存储空间各数据空间位置是否收到返回的数据元素。
在一种可能的实现方式中,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:检测所述状态数组中所述当前地址索引指示位置处的状态位;在所述状态位表征所述数据空间中对应位置处的所述数据元素存在的情况下,根据所述当前地址索引的地址位从所述数据空间中读取所述数据元素至所述请求端;删除所述状态数组中所述当前地址索引指示位置处的状态位。
示例性地,总线接口可以在每个时钟周期对状态数组中当前地址索引指示位置处的状态位进行检测,如果这状态位为置位状态(例如状态位为1),表示应当按顺序返回请求端的数据元素已经准备好,可以取当前地址索引的地址位(例如删除溢出位后的低8比特位)作为读取地址,从数据空间对应位置处的数据元素返回请求端,并删除状态数组中当前地址索引指示位置处的状态位(例如将状态位由1修改为0)。
每当总线接口根据当前地址索引从数据空间取走一个数据元素至请求端,则在状态数组中释放对应的状态位,以便最新释放的位置空间可以在下一时钟参与新请求信息的连续空间分配。
这样,通过查询状态数组的状态位,可以将数据空间存储的排序在先的数据元素发送给请求端。并且,由于状态数据记录的是环状的存储空间中数据空间各位置是否收到返回的数据元素,提高了存储空间的利用率。
综上所述,在面对请求端发送连续的、较大突发长度的请求信息时,由于各模块之间(例如请求端与总线接口之间、总结接口与服务端之间)以及存储空间吞吐量的限制,在经过一段时间的工作后,存储空间空间碎片化的概率大大提升。而总线接口为了提高性能,在业务繁忙时倾向于拒绝多次切分突发长度,因此,大突发长度的请求信息更容易被阻塞。经过对存储空间利用率的分析,可知存储空间首部和尾部空间比中部空间更容易出现较小连续空间。
本公开的实施例的数据传输方法,使用较少的资源和改动,对总线接口内存储空间的空间分配进行了优化。可以将表示存储空间的地址索引进行扩展,增加溢出位,例如对于当前256级的地址索引,可以使用9比特对0~255的地址索引进行分配,最高位作为溢出位,实际不参与对存储空间的预分配。考虑到总线接口向服务端发送的地址索引可以是分配出去的地址索引的首地址索引,存储空间在物理上地址索引空间仍时0~255,而后对所得的地址索引最高位并上‘0’进行扩展传给服务端。
对比将状态数组简单的被认定为存储空间内各空间是否存储数据元素的状态,本公开的实施例中包含了溢出位的首地址索引,可以同时使用存储空间的首尾空间。此外,当前地址索引也具有溢出位,控制请求端从存储空间的数据空间中读取数据的逻辑判定,将会使用包含溢出位的当前地址索引检测状态数组,但总线接口从存储空间的数据空间读取数据元素返回请求端时,则会去掉最高比特的溢出位,以当前地址索引的地址位为读取地址,在存储空间的数据空间内读取数据。
因此,本公开的实施例的数据传输方法通过简单的逻辑设计,使存储空间首部和尾部的空间利用率与中部的空间利用率均等,降低了大突发长度的请求信息的阻塞概率,提高了总线接口的总体性能。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了数据传输装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种数据传输方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图6示出根据本公开实施例的数据传输装置的框图,如图6所示,所述装置应用于总线接口,所述装置包括:
接收模块61,用于接收请求端发送的请求信息,所述请求信息包括所述请求端请求的待处理数据的突发长度,所述待处理数据包括多个依序排列的数据元素,所述突发长度用于表征所述数据元素的数量;
分配模块62,用于根据所述请求信息,以及所述总线接口中存储空间连续空间状态,在所述存储空间中为所述待处理数据分配数据空间;
读取模块63,用于基于所述数据空间的地址索引,按照所述数据元素的排列顺序,将从服务端读取所述待处理数据传输至所述请求端。
在一种可能的实现方式中,所述地址索引包括溢出位、地址位,所述溢出位用于在逻辑上将所述存储空间的首部和尾部相连接,形成连续的环形存储空间。
在一种可能的实现方式中,所述数据空间用于在所述总线接口未接收到所述服务端返回的排序在先的数据元素的情况下,存储先返回的排序在后的数据元素,以使所述总线接口按照所述数据元素的排列顺序,将从服务端读取的所述待处理数据的多个数据元素,依序传输至所述请求端。
在一种可能的实现方式中,所述读取模块63用于:将所述首地址索引、所述突发长度发送至服务端,以使所述服务端根据所述首地址索引和所述突发长度向所述总线接口回传待处理数据,其中,所述待处理数据中的数据元素具有基于所述排列顺序的偏移地址索引,所述偏移地址索引是由所述首地址索引的自增运算得到的;将所述数据空间的首地址索引、所述突发长度存入控制队列,获取与所述控制队列关联的计数器的计数值,所述计数器响应于所述总线接口向所述请求端回传所述数据元素,对所述计数值执行自增操作;根据所述首地址索引、所述计数值,确定当前地址索引;根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端。
在一种可能的实现方式中,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:判断所述数据元素的偏移地址索引是否与所述当前地址索引相同;在所述数据元素的偏移地址索引与所述当前地址索引相同的情况下,将所述数据元素发送至所述请求端;或者,在所述数据元素的偏移地址索引与所述当前地址索引不同的情况下,根据所述偏移地址索引的地址位,将所述数据元素存入所述数据空间。
在一种可能的实现方式中,所述总线接口具有用于记录所述数据空间的空间状态的状态数组,读取模块63还用于:响应于将所述数据元素基于偏移地址索引存入所述数据空间,在所述状态数组中对所述偏移地址索引对应位置执行置位操作。
在一种可能的实现方式中,所述状态数组的长度根据所述存储空间的空间大小和所述突发长度确定。
在一种可能的实现方式中,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:检测所述状态数组中所述当前地址索引指示位置处的状态位;在所述状态位表征所述数据空间中对应位置处的所述数据元素存在的情况下,根据所述当前地址索引的地址位从所述数据空间中读取所述数据元素至所述请求端;删除所述状态数组中所述当前地址索引指示位置处的状态位。
在一种可能的实现方式中,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:在所述计数值达到所述突发长度的情况下,所述控制队列中存储的所述首地址索引、所述突发长度出队。
在一种可能的实现方式中,所述存储空间包括静态随机存取存储器。
该方法与计算机系统的内部结构存在特定技术关联,且能够解决如何提升硬件运算效率或执行效果的技术问题(包括减少数据存储量、减少数据传输量、提高硬件处理速度等),从而获得符合自然规律的计算机系统内部性能改进的技术效果。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图7示出根据本公开实施例的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器或终端设备。参照图7,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(Mac OSXTM),多用户多进程的计算机操作系统(UnixTM),自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (13)
1.一种数据传输方法,其特征在于,所述方法应用于总线接口,所述方法包括:
接收请求端发送的请求信息,所述请求信息包括所述请求端请求的待处理数据的突发长度,所述待处理数据包括多个依序排列的数据元素,所述突发长度用于表征所述数据元素的数量;
根据所述请求信息,以及所述总线接口中存储空间连续空间状态,在所述存储空间中为所述待处理数据分配数据空间;
基于所述数据空间的地址索引,按照所述数据元素的排列顺序,将从服务端读取所述待处理数据传输至所述请求端。
2.根据权利要求1所述的方法,其特征在于,所述地址索引包括溢出位、地址位,所述溢出位用于在逻辑上将所述存储空间的首部和尾部相连接,形成连续的环形存储空间。
3.根据权利要求1所述的方法,其特征在于,所述数据空间用于在所述总线接口未接收到所述服务端返回的排序在先的数据元素的情况下,存储先返回的排序在后的数据元素,以使所述总线接口按照所述数据元素的排列顺序,将从服务端读取的所述待处理数据的多个数据元素依序传输至所述请求端。
4.根据权利要求1-3中任一项所述的方法,其特征在于,基于所述数据空间的地址索引,按照所述数据元素的排列顺序,将从服务端读取所述待处理数据传输至所述请求端,包括:
将首地址索引、所述突发长度发送至服务端,以使所述服务端根据所述首地址索引和所述突发长度向所述总线接口回传待处理数据,其中,所述待处理数据中的数据元素具有基于所述排列顺序的偏移地址索引,所述偏移地址索引是由所述首地址索引的自增运算得到的;
将所述数据空间的首地址索引、所述突发长度存入控制队列,获取与所述控制队列关联的计数器的计数值,所述计数器响应于所述总线接口向所述请求端回传所述数据元素,对所述计数值执行自增操作;
根据所述首地址索引、所述计数值,确定当前地址索引;
根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端。
5.根据权利要求4所述的方法,其特征在于,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:
判断所述数据元素的偏移地址索引是否与所述当前地址索引相同;
在所述数据元素的偏移地址索引与所述当前地址索引相同的情况下,将所述数据元素发送至所述请求端;
或者,在所述数据元素的偏移地址索引与所述当前地址索引不同的情况下,根据所述偏移地址索引的地址位,将所述数据元素存入所述数据空间。
6.根据权利要求4所述的方法,其特征在于,所述总线接口具有用于记录所述数据空间的空间状态的状态数组,所述方法还包括:响应于将所述数据元素基于偏移地址索引存入所述数据空间,在所述状态数组中对所述偏移地址索引对应位置执行置位操作。
7.根据权利要求6所述的方法,其特征在于,所述状态数组的长度根据所述存储空间的空间大小和所述突发长度确定。
8.根据权利要求6所述的方法,其特征在于,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:
检测所述状态数组中所述当前地址索引指示位置处的状态位;
在所述状态位表征所述数据空间中对应位置处的所述数据元素存在的情况下,根据所述当前地址索引的地址位从所述数据空间中读取所述数据元素至所述请求端;
删除所述状态数组中所述当前地址索引指示位置处的状态位。
9.根据权利要求4所述的方法,其特征在于,根据所述当前地址索引、所述偏移地址索引,将所述数据元素按序传输至所述请求端,包括:
在所述计数值达到所述突发长度的情况下,所述控制队列中存储的所述首地址索引、所述突发长度出队。
10.根据权利要求1-3中任一项所述的方法,其特征在于,所述存储空间包括静态随机存取存储器。
11.一种数据传输装置,其特征在于,所述装置应用于总线接口,包括:
接收模块,用于接收请求端发送的请求信息,所述请求信息包括所述请求端请求的待处理数据的突发长度,所述待处理数据包括多个依序排列的数据元素,所述突发长度用于表征所述数据元素的数量;
分配模块,用于根据所述请求信息,以及所述总线接口中存储空间连续空间状态,在所述存储空间中为所述待处理数据分配数据空间;
读取模块,用于基于所述数据空间的地址索引,按照所述数据元素的排列顺序,将从服务端读取所述待处理数据传输至所述请求端。
12.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至10中任意一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至10中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311853693.4A CN117743220A (zh) | 2023-12-28 | 2023-12-28 | 数据传输方法及装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311853693.4A CN117743220A (zh) | 2023-12-28 | 2023-12-28 | 数据传输方法及装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117743220A true CN117743220A (zh) | 2024-03-22 |
Family
ID=90254457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311853693.4A Pending CN117743220A (zh) | 2023-12-28 | 2023-12-28 | 数据传输方法及装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117743220A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1892633A (zh) * | 2005-07-19 | 2007-01-10 | 威盛电子股份有限公司 | 用于在数据传送中排序事务处理节拍的装置和方法 |
CN115237831A (zh) * | 2022-09-22 | 2022-10-25 | 瀚博半导体(上海)有限公司 | 数据传输方法、装置、芯片、电子设备和介质 |
CN115587054A (zh) * | 2021-07-06 | 2023-01-10 | 武汉中科医疗科技工业技术研究院有限公司 | 数据传输系统和数据传输方法 |
CN115938428A (zh) * | 2022-12-23 | 2023-04-07 | 海光信息技术股份有限公司 | 用于动态随机存储器的控制器、控制方法、电子设备 |
-
2023
- 2023-12-28 CN CN202311853693.4A patent/CN117743220A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1892633A (zh) * | 2005-07-19 | 2007-01-10 | 威盛电子股份有限公司 | 用于在数据传送中排序事务处理节拍的装置和方法 |
CN115587054A (zh) * | 2021-07-06 | 2023-01-10 | 武汉中科医疗科技工业技术研究院有限公司 | 数据传输系统和数据传输方法 |
CN115237831A (zh) * | 2022-09-22 | 2022-10-25 | 瀚博半导体(上海)有限公司 | 数据传输方法、装置、芯片、电子设备和介质 |
CN115938428A (zh) * | 2022-12-23 | 2023-04-07 | 海光信息技术股份有限公司 | 用于动态随机存储器的控制器、控制方法、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8381230B2 (en) | Message passing with queues and channels | |
CN113485822A (zh) | 内存管理方法、系统、客户端、服务器及存储介质 | |
US10592447B1 (en) | Accelerated data handling in cloud data storage system | |
CN111124270B (zh) | 缓存管理的方法、设备和计算机程序产品 | |
KR102594657B1 (ko) | 비순차적 리소스 할당을 구현하는 방법 및 장치 | |
CN115129621B (zh) | 一种内存管理方法、设备、介质及内存管理模块 | |
CN115934585A (zh) | 内存管理方法、装置和计算机设备 | |
US8543722B2 (en) | Message passing with queues and channels | |
CN116303126B (zh) | 缓存、数据的处理方法及电子设备 | |
CN117424827A (zh) | 一种基于分布式深度学习缓存系统的通讯方法和装置 | |
CN117743220A (zh) | 数据传输方法及装置、电子设备和存储介质 | |
CN113986134B (zh) | 存储数据的方法、读取数据的方法和装置 | |
CN118012798B (zh) | 芯片间互联控制方法、装置和存储介质 | |
CN117951045A (zh) | 数据处理方法及装置、电子设备和存储介质 | |
CN115129709A (zh) | 一种数据处理方法、服务端及系统 | |
CN116360708B (zh) | 数据写入方法及装置、电子设备和存储介质 | |
CN117472796B (zh) | 总线模块的数据处理方法、装置、电子设备和存储介质 | |
CN117743203B (zh) | 存储空间管理方法、装置、电子设备和存储介质 | |
CN117539636A (zh) | 总线模块的内存管理方法、装置、电子设备和存储介质 | |
CN116594570B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
CN116166575B (zh) | 访存段长度的配置方法、装置、设备、介质和程序产品 | |
CN116775510B (zh) | 数据访问方法、装置、服务器和计算机可读存储介质 | |
WO2021135763A1 (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN118467182B (zh) | 内存访问方法、计算机程序产品、电子设备及介质 | |
WO2024113448A1 (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 |