CN116340202A - 数据传输方法、装置、设备及计算机可读存储介质 - Google Patents
数据传输方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116340202A CN116340202A CN202310313298.0A CN202310313298A CN116340202A CN 116340202 A CN116340202 A CN 116340202A CN 202310313298 A CN202310313298 A CN 202310313298A CN 116340202 A CN116340202 A CN 116340202A
- Authority
- CN
- China
- Prior art keywords
- data
- shared
- output port
- independent
- cache
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 124
- 238000000034 method Methods 0.000 title claims abstract description 65
- 239000000872 buffer Substances 0.000 claims abstract description 220
- 238000004590 computer program Methods 0.000 claims description 14
- 238000013508 migration Methods 0.000 claims description 5
- 230000005012 migration Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本公开涉及一种数据传输方法、装置、设备及计算机可读存储介质,该方法包括:获取待传输的第一数据,所述第一数据包括输入端口的标识和输出端口的标识;若所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存为空,则通过所述输入端口和所述输出端口之间的直通通路,将所述第一数据从所述输入端口传输到所述输出端口。本公开通过获取有输入端口标识和输出端口标识的第一数据,在判断共享缓存和该输入端口和输出端口对应的独立缓存都空情况下,将第一数据通过直通通路从输入端口传输到输出端口,直通通路直接接通对应的输入端口和输出端口,不需要使用共享缓存或者独立缓存,减少缓存传输过程,降低数据传输的时延。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据传输方法、装置、设备及计算机可读存储介质。
背景技术
在数据传输系统中,数据可以从输入侧传输到输出侧。由于输入侧和输出侧之间存在一定的速率差异,因此,为了保证数据能够正常的从输入侧传输到输出侧,通常会在数据传输系统中增加共享缓存,使得输入侧先将数据缓存到共享缓存中,然后再将共享缓存中的数据发送到输出侧。
但是,共享缓存导致了数据从输入侧传输到输出侧的时延增大。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据传输方法、装置、设备及计算机可读存储介质,以减少缓存传输过程,降低数据传输的时延。
第一方面,本公开实施例提供一种数据传输方法,所述方法应用于数据传输系统,所述数据传输系统包括多个输入端口、多个输出端口、共享缓存和独立缓存,其中,所述多个输入端口和所述多个输出端口共用所述共享缓存,所述多个输入端口中任一输入端口和所述多个输出端口中任一输出端口共用一个独立缓存;所述方法包括:
获取待传输的第一数据,所述第一数据包括输入端口的标识和输出端口的标识;
若所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存为空,则通过所述输入端口和所述输出端口之间的直通通路,将所述第一数据从所述输入端口传输到所述输出端口。
第二方面,本公开实施例提供一种数据传输装置,所述数据传输装置部署在数据传输系统中,所述数据传输系统包括多个输入端口、多个输出端口、共享缓存和独立缓存,其中,所述多个输入端口和所述多个输出端口共用所述共享缓存,所述多个输入端口中任一输入端口和所述多个输出端口中任一输出端口共用一个独立缓存;所述数据传输装置包括:
获取模块,用于获取待传输的第一数据,所述第一数据包括输入端口的标识和输出端口的标识;
传输模块,用于当所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存为空,且所述输出端口空闲时,通过所述输入端口和所述输出端口之间的直通通路,将所述第一数据从所述输入端口传输到所述输出端口。
第三方面,本公开实施例提供一种电子设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现第一方面所述的方法。
本公开实施例提供的数据传输方法、装置、设备及计算机可读存储介质,通过获取有输入端口标识和输出端口标识的第一数据,在判断共享缓存和该输入端口和输出端口对应的独立缓存都空情况下,将第一数据通过直通通路从输入端口传输到输出端口,直通通路直接接通对应的输入端口和输出端口,不需要使用共享缓存或者独立缓存,减少缓存传输过程,降低数据传输的时延。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的数据传输方法流程图;
图2为本公开实施例提供的一种应用场景的示意图;
图3为本公开另一实施例提供的数据传输方法流程图;
图4为本公开另一实施例提供的数据传输方法流程图;
图5为本公开另一实施例提供的数据传输方法流程图;
图6为本公开另一实施例提供的数据传输方法流程图;
图7为本公开实施例提供的数据传输装置的结构示意图;
图8为本公开实施例提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
通常情况下,在数据传输系统中,数据可以从输入侧传输到输出侧。由于输入侧和输出侧之间存在一定的速率差异,因此,为了保证数据能够正常的从输入侧传输到输出侧,通常会在数据传输系统中增加共享缓存,使得输入侧先将数据缓存到共享缓存中,然后再将共享缓存中的数据发送到输出侧。具体的,输入侧包含多个输入端口,输出侧包含多个输出端口。
例如,在数据传输系统中,数据在从输入侧传输到输出侧的过程中存在一定的速率差异,例如,速率差异可以是数据在输入端口的输入速率和输出端口的输出速率本身存在的差异,或者速率差异还可以是数据传输系统中输入端口接收数据时数据发送方的数据传输速率和输出端口输出数据时数据接收方的数据传输速率之间的差异。
例如,数据在输入侧的输入速率是1秒100个,而在输出侧的输出速率是1秒50个,数据从输出侧输出的速率小于数据从输入侧输入的速率,造成了数据在输出侧拥塞。为了解决数据在输出侧拥塞的问题,输入侧可以先将数据缓存到共享缓存中,然后再将共享缓存中的数据发送到输出侧。
另外,在多对一传输即多个数据从多个输入端口传输到同一输出端口时,各数据之间存在竞争关系即冲突,此时,优先级最高的数据先从其对应的输入端口传输到输出端口,其余数据需要存入共享缓存中。
此外,在多对多传输即多个数据从多个输入端口传输到多个输出端口时,输入侧以及输出侧之间存在速率差异,且各个输入端口和各个输出端口的速率差异越大,多个数据之间的冲突越严重。为了保证数据能够正常从输入侧传输到输出侧,在数据传输系统中增加了共享缓存,使得输入侧先将数据缓存到共享缓存中,然后再将共享缓存中的数据发送到输出侧,保证多个数据正常从输入侧传输到输出侧,输入侧和输出侧互不影响。
虽然共享缓存可以解决如上所述的一些问题,但是,共享缓存却导致了数据从输入侧传输到输出侧的时延增大。针对该问题,本公开实施例提供了一种数据传输方法,下面结合具体的实施例对该方法进行介绍。
图1为本公开实施例提供的数据传输方法流程图。该方法可以由数据传输装置执行,该数据传输装置可以采用软件和/或硬件的方式实现,该数据传输装置可配置于电子设备中,例如服务器或终端,其中,终端具体包括手机、电脑或平板电脑等。服务器例如可以是计算机集群。另外,该方法应用于数据传输系统,所述数据传输系统包括多个输入端口、多个输出端口、共享缓存和独立缓存,其中,所述多个输入端口和所述多个输出端口共用所述共享缓存,所述多个输入端口中任一输入端口和所述多个输出端口中任一输出端口共用一个独立缓存。如图2所示,数据传输系统包括5个输入端口、5个输出端口、共享缓存和独立缓存,具体的,5个输入端口和5个输出端口共用一个共享缓存,5个输入端口中任意一个输入端口和5个输出端口中任意一个输出端口共用一个独立缓存,例如输入端口0可以和5个输出端口中的每个输出端口共用一个独立缓存,以此类推,最多可以有25个独立缓存。图2所示,本实施例示出了5个独立缓存,其中,独立缓存0可以是输入端口0和输出端口0共用的,独立缓存1可以是输入端口1和输出端口1共用的,依此类推,独立缓存4可以是输入端口4和输出端口4共用的。可以理解的是,本公开实施例提供的数据传输方法不仅可以适用于图2所示的应用场景,还可以应用在其他场景中。
下面结合图2所示的应用场景,对图1所示的数据传输方法进行介绍,例如,图2所示的数据传输系统还包括数据传输装置,该方法可以由数据传输装置来执行,该数据传输装置可以设置在如图2所示的数据传输系统中,该数据传输装置可以是数据传输系统中的元器件或电路元件。另外,该数据传输装置可以与如图2所示的各个输入端口、输出端口、共享缓存、独立缓存连接,具体的连接方式可以是电路连接方式、电信号连接方式等,此处不再赘述。该方法包括的具体步骤如下:
S101、获取待传输的第一数据,所述第一数据包括输入端口的标识和输出端口的标识。
数据传输装置获取从某一输入端口输入的待传输的第一数据,该第一数据包括输入端口的标识和输出端口的标识,以使得数据传输装置可以根据该输出端口的标识,确定该第一数据需要被传输到哪个输出端口。例如,第一数据从输入端口0输入,要传输到输出端口0,该第一数据包括输入端口0的标识和输出端口0的标识。
S102、若所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存为空,则通过所述输入端口和所述输出端口之间的直通通路,将所述第一数据从所述输入端口传输到所述输出端口。
数据传输装置同时判断共享缓存的空间状态以及第一数据标识的输入端口和输出端口的共用的独立缓存的空间状态,若共享缓存为空,且第一数据标识的输入端口和输出端口共用的独立缓存为空,即第一数据标识的对应的输出端口空闲,则通过第一数据标识的输入端口和输出端口之间的直通通路将第一数据从输入端口传输到输出端口,其中,直通通路为第一数据标识的输入端口和输出端口对应的通路,在本实施例中,可直接接通第一数据标识的输入端口与输出端口,例如,数据传输装置同时判断共享缓存的空间状态以及输入端口0和输出端口0共用的独立缓存0的空间状态,若共享缓存为空,且独立缓存0为空,即输出端口0空闲,则通过输入端口0和输出端口0之间的直通通路将第一数据从输入端口0传输到输出端口0。
本公开实施例通过获取包含有输入端口标识和输出端口标识的第一数据,进一步判断共享缓存是否为空,以及判断该输入端口和该输出端口共用的独立缓存是否为空,在该共享缓存为空,且该独立缓存为空的情况下,即该第一数据标识的输出端口为空,则将第一数据通过其标识的输入端口和输出端口对应的直通通路从输入端口传输到输出端口,直通通路直接接通对应的输入端口和输出端口,不需要使用共享缓存或者独立缓存,减少缓存传输过程,降低数据传输的时延。
在上述实施例的基础上,获取待传输的第一数据,包括:获取待传输的多个数据,所述多个数据分别包括相同的输出端口的标识;从所述多个数据中获取待传输的第一数据,所述第一数据是所述多个数据中优先级最高的数据。
在某一时刻有多个数据需要从不同输入端口传输到同一输出端口时,多个数据之间存在竞争关系,根据多个数据中优先级的顺序将多个数据依次从各个数据标识的输入端口传输到输出端口,数据传输装置获取的待传输的第一数据为多个数据中优先级最高的数据,以解决同一时刻多个数据都待传输造成的数据冲突,使得数据根据优先级依次传输,保障数据有序传输。
在上述实施例的基础上,若所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存非空且非满,则将所述第一数据放入所述独立缓存中;依次读取所述独立缓存中已有的各个数据,并将所述各个数据依次传输到所述输出端口。
图3为本公开另一实施例提供的数据传输方法流程图,例如,在上述实施例的基础上,所述方法还包括如下几个步骤:
S301、获取待传输的第一数据,所述第一数据包括输入端口的标识和输出端口的标识。
数据传输装置获取从某一输入端口输入的待传输的第一数据,该第一数据包括输入端口的标识和输出端口的标识,以使得数据传输装置可以根据该输出端口的标识,确定该第一数据需要被传输到哪个输出端口。例如,第一数据从输入端口0输入,要传输到输出端口0,该第一数据包括输入端口0的标识和输出端口0的标识。
S302、若所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存非空且非满,则将所述第一数据放入所述独立缓存中。
数据传输装置同时判断共享缓存和独立缓存的空间状态,若共享缓存为空且第一数据标识的输入端口和输出端口对应的独立缓存非空且非满即独立缓存还有空余空间,则将第一数据放入独立缓存中。例如:数据传输装置同时判断共享缓存的空间状态以及输入端口0和输出端口0共用的独立缓存0的空间状态,若共享缓存为空,且独立缓存0非空且非满即还有剩余空间,则将第一数据放入独立缓存0中。
S303、依次读取所述独立缓存中已有的各个数据,并将所述各个数据依次传输到所述输出端口。
数据传输装置依次读取第一数据标识的输入端口和输出端口共用的独立缓存里存储的各个数据,并依次传输到第一数据标识的输出端口。例如:依次读取独立缓存0中存储的各个数据并依次传输到输出端口0。
本公开实施例通过判断共享缓存和独立缓存的空间状态,在输出端口不空闲,无法通过直通通路直接将数据从输入端口传输到输出端口的情况下,若没有独立缓存,多个数据在传输过程中需要在直通通路和共享缓存之间来回切换,以保证多个数据按照优先级顺序传输,然而共享缓存时延较大,频繁切换导致数据从输入侧传输到输出侧的时延增大。因此,传输系统包含共享缓存和独立缓存,在第一数据输出端口不空闲的情况下,保证多个数据按顺序传输的前提下,避免了直通通路和共享缓存的来回切换,保证数据传输的可靠性,具有传输抗突发能力,在提高系统稳定性和可靠性的基础上,进一步降低延时,同时还提高了数据传输方法的灵活性。
图4为本公开另一实施例提供的数据传输方法流程图,例如,在上述实施例的基础上,所述方法还包括如下几个步骤:
S401、若所述共享缓存非空,所述输入端口和所述输出端口共用的独立缓存非空且非满,则判断所述共享缓存中是否存在第二数据,所述第二数据包括所述输出端口的标识。
例如,数据传输装置获取到待传输的第一数据后,同时判断共享缓存是否为空,以及判断第一数据输入端口和该输出端口共用的独立缓存是否为空,若共享缓存为非空且第一数据标识的输入端口和输出端口对应的独立缓存非空且非满即独立缓存还有空余空间,则判断共享缓存中是否已经存储了需要和第一数据标识的输出端口相同的输出端口传输的第二数据,例如,若共享缓存非空且独立缓存0非空且非满即还有空余空间,则判断共享缓存中是否已经存储了需要从输出端口0传输的第二数据。
S402、若所述共享缓存中存在所述第二数据,则将所述第二数据从所述共享缓存迁移到与所述输出端口对应的任一独立缓存中。
若共享缓存中存在需要和第一数据标识的输出端口相同的输出端口传输的第二数据,则将第二数据从共享缓存迁移到其标识的输出端口对应的任意一个独立缓存中,例如,若共享缓存中已经存储了需要从输出端口0传输的第二数据,则将第二数据从共享缓存迁移到输出端口0对应的任意一个独立缓存中,例如,任意一个独立缓存可以是独立缓存0,也可以是输出端口0和其他输入端口共用的独立缓存。
可选的,若所述共享缓存中不存在所述第二数据,则将所述第一数据放入所述输入端口和所述输出端口共用的独立缓存中。
若共享缓存中不存在需要和第一数据标识的输出端口相同的输出端口传输的第二数据,则将第一数据放入其标识的输入端口和输出端口对应共用的独立缓存中,例如,若共享缓存中不存在需要从输出端口0传输的第二数据,则将第一数据放入独立缓存0中。
S403、若所述任一独立缓存是所述输入端口和所述输出端口共用的独立缓存,且在放入所述第二数据之后,所述输入端口和所述输出端口共用的独立缓存非满,则将所述第一数据放入所述输入端口和所述输出端口共用的独立缓存中。
若将第二数据从共享缓存迁移到其标识的输出端口对应的任意一个独立缓存是第一数据标识的输入端口和输出端口共用的独立缓存,且在放入第二数据之后,该独立缓存仍有空余空间,则将第一数据也放入其标识的输入端口和输出端口共用的独立缓存中,例如,若任意一个独立缓存是独立缓存0,而且在放入第二数据之后,独立缓存0非满即还有剩余空间,则将第一数据也放入独立缓存0中。
可选的,若所述任一独立缓存是所述输入端口和所述输出端口共用的独立缓存,且在放入所述第二数据之后,所述输入端口和所述输出端口共用的独立缓存已满,则将所述第一数据放入所述共享缓存中。
若将第二数据从共享缓存迁移到其标识的输出端口对应的任意一个独立缓存是第一数据标识的输入端口和输出端口共用的独立缓存,且在放入第二数据之后,该独立缓存空间已满,则将第一数据放入共享缓存中,例如,若任意一个独立缓存是独立缓存0,而且在放入第二数据之后,独立缓存已满即没有剩余空间,则将第一数据放入共享缓存中。
S404、依次读取所述独立缓存中已有的各个数据,并将所述各个数据依次传输到所述输出端口。
数据传输装置依次读取第一数据标识的输入端口和输出端口共用的独立缓存里存储的各个数据,并依次传输到第一数据标识的输出端口,例如,将独立缓存0中已经存储的各个数据依次传输到输出端口0。
本公开实施例通过判断共享缓存和独立缓存的空间状态,共享缓存非空,独立缓存非空且非满即有剩余空间时,若共享缓存中已经存储了第二数据,其中,第二数据和第一数据标识的输出端口相同,则先将第二数据从共享缓存迁移到与第二数据标识的输出端口对应的任意一个独立缓存中,若迁移到的独立缓存和第一数据标识的输入端口和输出端口共用的独立缓存是同一个,且判断第二数据迁移后该独立缓存是否仍有剩余空间,若迁移后该独立缓存仍有剩余空间,则将第一数据放入该独立缓存,若该独立缓存已满,则将第二数据放入共享缓存中,若不存在第二数据,则独立缓存中有剩余空间,将第一数据放入其标识的输入端口和输出端口共用的独立缓存中。数据在传输系统中优先从直通通路传输,其次是独立缓存,降低了共享缓存和直通通路之间切换造成的时延,在实现了低延时的前提下,保证多个数据按照优先级依次传输,进一步提高了数据传输方法的灵活性。
图5为本公开另一实施例提供的数据传输方法的流程图。如图5所示,该方法包括如下几个步骤:
S501、获取待传输的第一数据,所述第一数据包括输入端口的标识和输出端口的标识。
S502、判断共享缓存是否非空,若是,则执行S506,否则,执行S503。
S503、判断独立缓存是否为空,若是,则执行S505,否则,执行S504。
S504、将所述第一数据放入所述独立缓存中。
S505、通过所述输入端口和所述输出端口之间的直通通路,将所述第一数据从所述输入端口传输到所述输出端口。
S506、所述输入端口和所述输出端口共用的独立缓存非空且非满,则判断所述共享缓存中是否存在第二数据,所述第二数据包括所述输出端口的标识。
S507、判断共享缓存中是否存在第二数据,若是,则执行S509,否则,执行S508。
S508、将所述第一数据放入所述输入端口和所述输出端口共用的独立缓存中。
S509、将所述第二数据从所述共享缓存迁移到与所述输出端口对应的任一独立缓存中,且任一独立缓存是所述输入端口和所述输出端口共用的独立缓存,且在放入所述第二数据之后。
S510、判断独立缓存是否非满,若是,则执行S512,否则,执行S511。
S511、将所述第一数据放入所述共享缓存中。
S512、将所述第一数据放入所述输入端口和所述输出端口共用的独立缓存中。
S513、依次读取所述独立缓存中已有的各个数据,并将所述各个数据依次传输到所述输出端口。
可以理解的是,图5所示的S501-S513的实现过程类似于上述实施例中的相关介绍。也就是说,上述实施例中相关的内容可以构成如图5所示的完整流程。
本公开实施例通过判断共享缓存和独立缓存的空间状态,将数据传输装置获取到的第一数据,根据不同的空间状态通过不同的方式将第一数据从输入端口传输到输出端口。其实现原理和技术效果与上述实施例类似,此处不再赘述。
图6为本公开实施例提供的数据传输方法流程图。如图6所示,例如,数据传输系统中包括4个输入端口、4个输出端口、共享缓存和独立缓存,具体的,4个输入端口和4个输出端口共用一个共享缓存,4个输入端口中任意一个输入端口和4个输出端口中任意一个输出端口共用一个独立缓存,图6所示,本实施例示出了4个独立缓存,其中,独立缓存0可以是输入端口0和输出端口0共用的,独立缓存1可以是输入端口1和输出端口1共用的,依此类推,独立缓存3可以是输入端口3和输出端口3共用的。
例如,从输入端口0输入的多个数据均需到达同一输出端口,或者从输入端口0、输入端口1、输入端口2、输入端口3中至少两个输入端口输入的多个数据均需到达同一输出端口时,数据传输装置可以对该多个数据进行输入数据仲裁,即从该多个数据中选择出优先级最高的数据。例如,图6所示的第一数据0是从输入端口0输入的该多个数据中选择出的优先级最高的数据,第一数据1是从输入端口1输入的该多个数据中选择出的优先级最高的数据,以此类推,第一数据3是从输入端口3输入的该多个数据中选择出的优先级最高的数据。
具体的,数据传输装置获取到待传输的任意一个输出端口的第一数据时,判断共享缓存、以及第一数据标识的输入端口和输出端口共用的独立缓存的空间状态,进一步,根据共享缓存和独立缓存的空间状态,确定如何将该第一数据存储到独立缓存中,该确定过程可以是如图6所示的独立缓存输入选择,即共享缓存和独立缓存分别在什么空间状态下,将第一数据存储到独立缓存中。例如,数据传输装置获取到待传输的第一数据0,第一数据0包括输出端口0的标识,若共享缓存为空,独立缓存0非空且非满即独立缓存0还有空余空间,则将第一数据0放入独立缓存0中。
在另一种实现方式中,若共享缓存非空,独立缓存0非空且非满即独立缓存0还有空余空间,则判断共享缓存中是否存在第二数据,且第二数据包括输出端口0的标识,即第二数据和第一数据0均需要传输到输出端口0,若共享缓存中存在这样的第二数据,则将该第二数据从共享缓存迁移到与输出端口0对应的任一独立缓存中。
若任一独立缓存是独立缓存0,且在放入该第二数据之后,独立缓存0非满,则将第一数据0放入独立缓存0中,若共享缓存中不存在该第二数据,则将第一数据0放入的独立缓存0。
若任一独立缓存是独立缓存0,且在放入所述第二数据之后,独立缓存0已满,则将第一数据0放入共享缓存中。
另外,数据传输装置获取到待传输的第一数据0后,还可以根据共享缓存和独立缓存0的空间状态,确定如何将第一数据0传输到输出端口0,即共享缓存和独立缓存0分别在什么空间状态下,将第一数据传输到输出端口0,该过程可以是如图6所示的输出端口选择。具体的,若共享缓存为空,独立缓存0为空,则通过输入端口0和输出端口0之间的直通通路,将第一数据0从输入端口0传输到输出端口0。若独立缓存0不空,则依次读取独立缓存0中已有的各个数据,并将各个数据依次传输到输出端口0。
可以理解的是,上述过程只是以图6所示的第一数据0为例进行的示意性说明,如图6所示的其他第一数据,例如第一数据1、第一数据2等的传输过程可以参照第一数据0的传输过程,此处不再一一赘述。
图7为本公开实施例提供的数据传输装置的结构示意图。该数据传输装置可以是如上实施例所述的数据传输装置。所述数据传输装置部署在数据传输系统中,所述数据传输系统包括多个输入端口、多个输出端口、共享缓存和独立缓存,其中,所述多个输入端口和所述多个输出端口共用所述共享缓存,所述多个输入端口中任一输入端口和所述多个输出端口中任一输出端口共用一个独立缓存。本公开实施例提供的数据传输装置可以执行数据传输方法实施例提供的处理流程,如图7所示,数据传输装置70包括:
获取模块71,用于获取待传输的第一数据,所述第一数据包括输入端口的标识和输出端口的标识;
传输模块72,用于当所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存为空,且所述输出端口空闲时,通过所述输入端口和所述输出端口之间的直通通路,将所述第一数据从所述输入端口传输到所述输出端口。
可选的,数据传输装置70还包括:放入模块73和读取模块74;所述放入模块73用于当所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存非空且非满时,将所述第一数据放入所述独立缓存中;所述读取模块74用于依次读取所述独立缓存中已有的各个数据;所述传输模块72还用于:将所述各个数据依次传输到所述输出端口。
可选的,数据传输装置70还包括:判断模块75、迁移模块76、放入模块73、读取模块74;所述判断模块75用于当所述共享缓存非空,所述输入端口和所述输出端口共用的独立缓存非空且非满时,判断所述共享缓存中是否存在第二数据,所述第二数据包括所述输出端口的标识;所述迁移模块76用于当所述共享缓存中存在所述第二数据时,将所述第二数据从所述共享缓存迁移到与所述输出端口对应的任一独立缓存中;所述放入模块73用于当所述任一独立缓存是所述输入端口和所述输出端口共用的独立缓存,且在放入所述第二数据之后,所述输入端口和所述输出端口共用的独立缓存非满时,将所述第一数据放入所述输入端口和所述输出端口共用的独立缓存中;所述读取模块74用于依次读取所述独立缓存中已有的各个数据;所述传输模块72还用于:将所述各个数据依次传输到所述输出端口。
可选的,数据传输装置70中的放入模块73还用于:当所述任一独立缓存是所述输入端口和所述输出端口共用的独立缓存,且在放入所述第二数据之后,所述输入端口和所述输出端口共用的独立缓存已满时,将所述第一数据放入所述共享缓存中。
可选的,数据传输装置70中的放入模块73还用于:当所述共享缓存中不存在所述第二数据时,将所述第一数据放入所述输入端口和所述输出端口共用的独立缓存中。
可选的,数据传输装置70中的获取模块71在获取待传输的第一数据时,具体用于:获取待传输的多个数据,所述多个数据分别包括相同的输出端口的标识;从所述多个数据中获取待传输的第一数据,所述第一数据是所述多个数据中优先级最高的数据。
图6所示实施例的数据传输装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本公开实施例提供的电子设备的结构示意图。本公开实施例提供的电子设备可以执行数据传输方法实施例提供的处理流程,如图8所示,电子设备80包括:存储器81、处理器82、计算机程序和通讯接口83;其中,计算机程序存储在存储器81中,并被配置为由处理器82执行如上所述的数据传输方法。
另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的数据传输方法。
此外,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的数据传输方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种数据传输方法,其特征在于,所述方法应用于数据传输系统,所述数据传输系统包括多个输入端口、多个输出端口、共享缓存和独立缓存,其中,所述多个输入端口和所述多个输出端口共用所述共享缓存,所述多个输入端口中任一输入端口和所述多个输出端口中任一输出端口共用一个独立缓存;所述方法包括:
获取待传输的第一数据,所述第一数据包括输入端口的标识和输出端口的标识;
若所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存为空,则通过所述输入端口和所述输出端口之间的直通通路,将所述第一数据从所述输入端口传输到所述输出端口。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存非空且非满,则将所述第一数据放入所述独立缓存中;
依次读取所述独立缓存中已有的各个数据,并将所述各个数据依次传输到所述输出端口。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述共享缓存非空,所述输入端口和所述输出端口共用的独立缓存非空且非满,则判断所述共享缓存中是否存在第二数据,所述第二数据包括所述输出端口的标识;
若所述共享缓存中存在所述第二数据,则将所述第二数据从所述共享缓存迁移到与所述输出端口对应的任一独立缓存中;
若所述任一独立缓存是所述输入端口和所述输出端口共用的独立缓存,且在放入所述第二数据之后,所述输入端口和所述输出端口共用的独立缓存非满,则将所述第一数据放入所述输入端口和所述输出端口共用的独立缓存中;
依次读取所述独立缓存中已有的各个数据,并将所述各个数据依次传输到所述输出端口。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述任一独立缓存是所述输入端口和所述输出端口共用的独立缓存,且在放入所述第二数据之后,所述输入端口和所述输出端口共用的独立缓存已满,则将所述第一数据放入所述共享缓存中。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述共享缓存中不存在所述第二数据,则将所述第一数据放入所述输入端口和所述输出端口共用的独立缓存中。
6.根据权利要求1所述的方法,其特征在于,获取待传输的第一数据,包括:
获取待传输的多个数据,所述多个数据分别包括相同的输出端口的标识;
从所述多个数据中获取待传输的第一数据,所述第一数据是所述多个数据中优先级最高的数据。
7.一种数据传输装置,其特征在于,所述数据传输装置部署在数据传输系统中,所述数据传输系统包括多个输入端口、多个输出端口、共享缓存和独立缓存,其中,所述多个输入端口和所述多个输出端口共用所述共享缓存,所述多个输入端口中任一输入端口和所述多个输出端口中任一输出端口共用一个独立缓存;所述数据传输装置包括:
获取模块,用于获取待传输的第一数据,所述第一数据包括输入端口的标识和输出端口的标识;
传输模块,用于当所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存为空,且所述输出端口空闲时,通过所述输入端口和所述输出端口之间的直通通路,将所述第一数据从所述输入端口传输到所述输出端口。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:放入模块和读取模块;
所述放入模块用于当所述共享缓存为空,所述输入端口和所述输出端口共用的独立缓存非空且非满时,将所述第一数据放入所述独立缓存中;
所述读取模块用于依次读取所述独立缓存中已有的各个数据;
所述传输模块还用于:将所述各个数据依次传输到所述输出端口。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:判断模块、迁移模块、放入模块、读取模块;
所述判断模块用于当所述共享缓存非空,所述输入端口和所述输出端口共用的独立缓存非空且非满时,判断所述共享缓存中是否存在第二数据,所述第二数据包括所述输出端口的标识;
所述迁移模块用于当所述共享缓存中存在所述第二数据时,将所述第二数据从所述共享缓存迁移到与所述输出端口对应的任一独立缓存中;
所述放入模块用于当所述任一独立缓存是所述输入端口和所述输出端口共用的独立缓存,且在放入所述第二数据之后,所述输入端口和所述输出端口共用的独立缓存非满时,将所述第一数据放入所述输入端口和所述输出端口共用的独立缓存中;
所述读取模块用于依次读取所述独立缓存中已有的各个数据;
所述传输模块还用于:将所述各个数据依次传输到所述输出端口。
10.根据权利要求9所述的装置,其特征在于,所述放入模块还用于:当所述任一独立缓存是所述输入端口和所述输出端口共用的独立缓存,且在放入所述第二数据之后,所述输入端口和所述输出端口共用的独立缓存已满时,将所述第一数据放入所述共享缓存中。
11.根据权利要求9所述的装置,其特征在于,所述放入模块还用于:当所述共享缓存中不存在所述第二数据时,将所述第一数据放入所述输入端口和所述输出端口共用的独立缓存中。
12.根据权利要求7所述的装置,其特征在于,所述获取模块在获取待传输的第一数据时,具体用于:
获取待传输的多个数据,所述多个数据分别包括相同的输出端口的标识;
从所述多个数据中获取待传输的第一数据,所述第一数据是所述多个数据中优先级最高的数据。
13.一种电子设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-6中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310313298.0A CN116340202B (zh) | 2023-03-28 | 2023-03-28 | 数据传输方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310313298.0A CN116340202B (zh) | 2023-03-28 | 2023-03-28 | 数据传输方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116340202A true CN116340202A (zh) | 2023-06-27 |
CN116340202B CN116340202B (zh) | 2024-03-01 |
Family
ID=86887415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310313298.0A Active CN116340202B (zh) | 2023-03-28 | 2023-03-28 | 数据传输方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116340202B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991295A (en) * | 1995-10-10 | 1999-11-23 | Madge Networks Limited | Digital switch |
JP2002197047A (ja) * | 2000-10-31 | 2002-07-12 | Hewlett Packard Co <Hp> | 入力/出力読出しデータがプロセッサローカルキャッシュに直接配置されるコンピュータシステム |
CN105610729A (zh) * | 2014-11-19 | 2016-05-25 | 中兴通讯股份有限公司 | 一种缓存分配方法、装置及网络处理器 |
CN108768898A (zh) * | 2018-04-03 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种片上网络传输报文的方法及其装置 |
CN111367848A (zh) * | 2018-12-25 | 2020-07-03 | 北京天能博信息科技有限公司 | 一种区块链的数据处理装置、相关设备及方法 |
WO2021207919A1 (zh) * | 2020-04-14 | 2021-10-21 | 深圳市大疆创新科技有限公司 | 控制器、存储器件访问系统、电子设备和数据传输方法 |
CN114567607A (zh) * | 2022-02-25 | 2022-05-31 | 山东云海国创云计算装备产业创新中心有限公司 | 一种多端口仲裁方法、装置、设备及计算机可读存储介质 |
-
2023
- 2023-03-28 CN CN202310313298.0A patent/CN116340202B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991295A (en) * | 1995-10-10 | 1999-11-23 | Madge Networks Limited | Digital switch |
JP2002197047A (ja) * | 2000-10-31 | 2002-07-12 | Hewlett Packard Co <Hp> | 入力/出力読出しデータがプロセッサローカルキャッシュに直接配置されるコンピュータシステム |
CN105610729A (zh) * | 2014-11-19 | 2016-05-25 | 中兴通讯股份有限公司 | 一种缓存分配方法、装置及网络处理器 |
CN108768898A (zh) * | 2018-04-03 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种片上网络传输报文的方法及其装置 |
CN111367848A (zh) * | 2018-12-25 | 2020-07-03 | 北京天能博信息科技有限公司 | 一种区块链的数据处理装置、相关设备及方法 |
WO2021207919A1 (zh) * | 2020-04-14 | 2021-10-21 | 深圳市大疆创新科技有限公司 | 控制器、存储器件访问系统、电子设备和数据传输方法 |
CN114567607A (zh) * | 2022-02-25 | 2022-05-31 | 山东云海国创云计算装备产业创新中心有限公司 | 一种多端口仲裁方法、装置、设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
张羿猛;黄芝平;毕占坤;王跃科;: "共享缓存分组交换系统中的最佳阈值Pushout策略", 计算机工程, no. 08, 20 April 2006 (2006-04-20) * |
黄慧群;刘勤让;卜佑军;张风雨;: "交换结构中的可重构缓存机制", 通信学报, no. 10 * |
Also Published As
Publication number | Publication date |
---|---|
CN116340202B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10798752B2 (en) | Method and device for executing emergency call | |
KR101811189B1 (ko) | 통신 장치, 통신 방법 및 기록 매체에 저장된 프로그램 | |
WO2022267274A1 (zh) | 移动热点授权检验方法、装置、存储介质和电子设备 | |
CN112579509A (zh) | 单线通讯方法、装置、电子设备及可读存储介质 | |
CN115004673A (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
KR20160037114A (ko) | 직렬 주변장치 인터페이스 | |
EP3439250A1 (en) | Slice management system and slice management method | |
CN115934625B (zh) | 一种用于远程直接内存访问的敲门铃方法、设备及介质 | |
WO2014206050A1 (zh) | 基于中转服务器的网页加载方法、装置及系统 | |
CN116340202B (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
JP6531593B2 (ja) | 通信方法、通信プログラムおよび情報処理装置 | |
CN110597643B (zh) | 核间通信方法、处理器以及电子设备 | |
JPH0337221B2 (zh) | ||
CN115941382A (zh) | 一种spi通信的流控方法、装置、终端设备及存储介质 | |
WO2003055247A2 (en) | Communications device, method and program for receiving process execution, and computer-readable recording medium having same program recorded thereon | |
CN114006787A (zh) | 数据传输方法、设备以及计算机可读存储介质 | |
CN107257272B (zh) | 数据发送方法、发送终端及接收终端 | |
CN112804298B (zh) | 减少跨区流量的方法、装置、计算机设备和可读存储介质 | |
CN112584524B (zh) | 基于下行数据传输的多用户接入方法及装置 | |
CN113645014B (zh) | 基于智能安防设备的数据处理方法、设备及存储介质 | |
CN113630282B (zh) | 检测服务器状态的方法和装置 | |
WO2024022290A1 (zh) | 资源选择方法及终端 | |
CN117520243A (zh) | 嵌入式uart串口双线通讯方法、装置、设备及介质 | |
CN114390639B (zh) | 一种选取信道的方法及其相关设备 | |
JP4941212B2 (ja) | 電子デバイス、データ処理装置、及びバス制御方法 |
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 |