WO2021120714A1 - 数据交换方法、装置、处理器及计算机系统 - Google Patents
数据交换方法、装置、处理器及计算机系统 Download PDFInfo
- Publication number
- WO2021120714A1 WO2021120714A1 PCT/CN2020/114006 CN2020114006W WO2021120714A1 WO 2021120714 A1 WO2021120714 A1 WO 2021120714A1 CN 2020114006 W CN2020114006 W CN 2020114006W WO 2021120714 A1 WO2021120714 A1 WO 2021120714A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- destination
- source
- data
- address
- buffer unit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004891 communication Methods 0.000 claims description 49
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013461 design Methods 0.000 description 16
- 238000012546 transfer Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000000969 carrier Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003068 static effect 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/0877—Cache access modes
-
- 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
-
- 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
Definitions
- This application relates to the field of data processing technology, and specifically to a data exchange method, device, processor, and computer system.
- an embodiment of the present application provides a data exchange method that exchanges data between a source storage unit and a destination storage unit through a ring buffer unit.
- the ring buffer unit includes a first buffer unit and a second buffer unit.
- the method includes: generating at least one source address read request, and sending the at least one source address read request to the source storage unit, so that the source storage unit returns the source data corresponding to each source address read request to the first Buffer unit; generates at least one destination address read request, and sends the at least one destination address read request to the destination storage unit, so that the destination storage unit returns the destination data corresponding to each destination address read request to the first Two buffer units; determining that the source data can be transmitted to the first buffer unit, and the destination data can be transmitted to the second buffer unit; according to the data received by the ring buffer unit, generate a corresponding address write Request, wherein the address write request includes the destination address of the corresponding data, the destination address corresponding to the data received by the first buffer unit is located in the destination storage unit,
- a source address read request is generated, and corresponding source data is requested from the source storage unit, so that the source storage unit returns the corresponding source data to the first buffer unit of the ring buffer unit; generates a destination address read request, And request the corresponding destination data from the destination storage unit, so that the destination storage unit returns the corresponding destination data to the second buffer unit of the ring buffer unit. After it is determined that the source data can all be transferred to the first buffer unit, and the destination data can all be transferred to the second buffer unit.
- the present application uses the ring buffer unit to realize the data exchange between the source storage unit and the destination storage unit, which reduces power consumption and saves cost compared with the prior art.
- At least one of the source data is returned to the first buffer unit, and the generating a corresponding address write request according to the data received by the ring buffer unit includes: according to the first buffer
- the source data received by the unit generates a corresponding destination address write request, where the destination address write request includes the destination address of the corresponding source data; the address write request is used to send the corresponding data to the corresponding storage unit
- the sending of the destination address includes: using the destination address write request to send the corresponding source data to the destination address of the destination storage unit.
- the GPU may generate a destination address write request, the destination address write request includes the destination address of the source data, and the destination address is located in the destination storage unit, thereby realizing the The source data received by a buffer unit is written into the destination storage unit.
- the source data received by the first buffer unit comes from the source storage unit. Therefore, the first buffer unit is used to realize the data transfer process from the source storage unit to the destination storage unit.
- generating a corresponding address write request according to the data received by the ring buffer unit includes: every detection A source data is written into the first buffer unit, and the source data to be written is generated according to the destination address read request corresponding to the destination data that has been written into the second buffer unit The corresponding destination address write request.
- not only the destination address write request corresponding to the source data written in the first buffer unit can be obtained in time, but also the destination data not sent to the second buffer unit can be prevented from being overwritten.
- At least one of the destination data is returned to the second buffer unit, and the generating a corresponding address write request according to the data received by the ring buffer unit includes: according to the second buffer
- the destination data received by the unit generates a corresponding source address write request, where the source address write request includes the destination address of the corresponding destination data; the address write request is used to send the corresponding data to the corresponding storage unit
- the sending of the destination address includes: using the source address write request to send the corresponding destination data to the destination address of the source storage unit.
- the GPU may generate a source address write request.
- the source address write request includes the destination address of the destination data, and the destination address is located in the source storage unit, thereby realizing the The destination data received by the second buffer unit is written into the source storage unit.
- the destination data received by the second buffer unit comes from the destination storage unit. Therefore, the second buffer unit is used to realize the data transfer process from the destination storage unit to the source storage unit.
- generating a corresponding address write request according to the data received by the ring buffer unit includes: every detection A destination data is written into the second buffer unit, and the destination data to be written is generated according to the source address read request corresponding to the source data written in the first buffer unit The corresponding source address write request.
- not only the source address write request corresponding to the destination data written into the second buffer unit can be obtained in time, but also the source data that has not been sent to the first buffer unit can be overwritten.
- the communication interface for the source storage unit to send source data to the first buffer unit is the same as the communication interface for the destination storage unit to send destination data to the second buffer unit; step: generate at least A destination address read request, and sending the at least one destination address read request to the destination storage unit. After the step: generating at least one source address read request and sending the at least one source address read request to the source storage unit carried out.
- the purpose of sending the destination address read request to the destination storage unit is to make the destination storage unit return the destination data.
- the purpose of sending the source address read request to the source storage unit is to make the source storage unit return the source data.
- the communication interface through which the source storage unit sends source data to the first buffer unit is different from the communication interface through which the destination storage unit sends destination data to the second buffer unit; step: generate At least one destination address read request, and sending the at least one destination address read request to the destination storage unit and the step: generating at least one source address read request, and sending the at least one source address read request to the source storage unit Parallel execution.
- the purpose of sending the destination address read request to the destination storage unit is to make the destination storage unit return the destination data.
- the purpose of sending the source address read request to the source storage unit is to make the source storage unit return the source data.
- the data exchange method is performed in an orderly mode, the determining that the source data can be transmitted to the first buffer unit, and the destination data can be transmitted to the second buffer unit , Including: determining that the at least one source address read request is all sent to the source storage unit, and the at least one destination address read request is all sent to the destination storage unit.
- At least one source address read request is sent to the source storage unit, that is, it can be determined that the source data corresponding to each source address read request can be transmitted back to the first buffer unit;
- the destination address read requests are all sent to the destination storage unit, and it can be determined that the destination data corresponding to each destination address read request mentioned above can be transmitted back to the second buffer unit, so as to avoid the data from being sent by the opposite end before the data is transmitted to the buffer unit. The data is overwritten.
- the data exchange method is performed in an out-of-order mode, the determining that the source data can be transmitted to the first buffer unit, and the destination data can be transmitted to the second buffer unit , Including: determining that the source data are all transmitted to the first buffer unit, and the destination data are all transmitted to the second buffer unit.
- the data exchange method is performed in the disordered mode, and there is no order restriction on the read request and the write request. Therefore, after the source data is transmitted to the first buffer unit, and the destination data is transmitted to the second buffer unit , It can be determined that the source data can be transmitted to the first buffer unit, and the destination data can be transmitted to the second buffer unit; thus avoiding the data from being overwritten by the data sent from the opposite end before the data is transmitted to the buffer unit .
- an embodiment of the present application provides a data exchange device configured to exchange data between a source storage unit and a destination storage unit through a ring buffer unit.
- the ring buffer unit includes a first buffer unit and a second buffer unit.
- the device includes: a source read request generation module configured to generate at least one source address read request, and send the at least one source address read request to the source storage unit, so that the source storage unit will request each source address read request The corresponding source data is returned to the first buffer unit;
- the destination read request generation module is configured to generate at least one destination address read request, and send the at least one destination address read request to the destination storage unit, so that the destination
- the storage unit returns the destination data corresponding to each destination address read request to the second buffer unit;
- the data transmission determining module is configured to determine that the source data can be transmitted to the first buffer unit, and the destination data can be Is transmitted to the second buffer unit;
- a write request generation module configured to generate a corresponding address write request according to the data received by the ring buffer unit
- an embodiment of the present application provides a processor including a ring buffer unit, a source storage unit, a destination storage unit, a source read address logic generating circuit, and a destination read address logic generating circuit, the source read address logic generating circuit Connected to the source storage unit, the destination read address logic generating circuit is connected to the destination storage unit, the ring buffer unit includes a first buffer unit and a second buffer unit, and the source storage unit passes through a corresponding communication interface Is connected to the first buffer unit and the second buffer unit, the destination storage unit is connected to the first buffer unit and the second buffer unit through a corresponding communication interface, and the processor is configured to pass through the first buffer unit A buffer unit and a second buffer unit exchange data between a source storage unit and a destination storage unit; the source read address logic generating circuit is configured to generate at least one source address read request, and send the at least one source storage unit to the source storage unit Address read request, so that the source storage unit returns the source data corresponding to each source address read request to the first buffer
- it further includes a destination write address logic generating circuit, the destination write address logic generating circuit is connected to the first buffer unit; the destination write address logic generating circuit is configured to be based on the first buffer unit
- the received source data generates a corresponding destination address write request, where the destination address write request includes the destination address of the corresponding source data; the first buffer unit is configured to use the destination address write request to transfer the corresponding destination address
- the source data is sent to the destination address of the destination storage unit.
- the destination write address logic generating circuit is configured to: every time it is detected that the first buffer unit is written A source data generates the destination address write request corresponding to the source data that has been written according to the destination address read request corresponding to the destination data that has been written into the second buffer unit.
- it further includes a source write address logic generating circuit, the source write address logic generating circuit is connected to the second buffer unit; the source write address logic generating circuit is configured to be based on the second buffer unit
- the received destination data generates a corresponding source address write request, where the source address write request includes the destination address of the corresponding destination data; the second buffer unit is configured to use the source address write request to transfer the corresponding source address
- the destination data is sent to the destination address of the source storage unit.
- the source write address logic generating circuit is configured to:
- the source address read request corresponding to one of the source data that has been written in the first buffer unit is generated to generate the written destination data.
- the communication interface through which the source storage unit sends source data to the first buffer unit is the same as the communication interface through which the destination storage unit sends destination data to the second buffer unit;
- the source storage unit The unit is a global data shared GDS memory, and the destination storage unit is a GDS memory; or the source storage unit is any one of a cache memory and a device memory, and the destination storage unit is the cache memory and the device Any one of the memory.
- the communication interface through which the source storage unit sends source data to the first buffer unit is different from the communication interface through which the destination storage unit sends destination data to the second buffer unit;
- the source The storage unit is the GDS memory, and the destination storage unit is any one of the cache memory and the device memory; or the source storage unit is any one of the cache memory and the device memory, and the destination The storage unit is the GDS memory.
- the data exchange method is performed in an ordered mode, and the data exchange method is performed in an ordered mode;
- the source read address logic generating circuit is configured to determine the at least one source address read request Are all sent to the source storage unit;
- the destination read address logic generating circuit is configured to determine that the at least one destination address read request is all sent to the destination storage unit.
- the data exchange method is performed in an out-of-order mode; the first buffer unit is configured to determine that the source data are all transmitted to the first buffer unit; and the second buffer unit is configured to It is determined that the target data are all transmitted to the second buffer unit.
- an embodiment of the present application provides a computer system, including the foregoing third aspect or a processor in any optional implementation manner of the third aspect.
- this application provides an executable program product that, when the executable program product runs on a computer, causes the computer to execute the method in the first aspect or any possible implementation of the first aspect.
- this application provides a computer-readable storage medium with a computer program stored on the computer-readable storage medium, and the computer program executes the first aspect or any possible implementation of the first aspect when the computer program is run by a processor The method in the way.
- FIG. 1 is a hardware flowchart of a GPU corresponding to an embodiment of the application
- FIG. 2 is a schematic flowchart of a data exchange method provided by an embodiment of the application.
- FIG. 3 is a schematic flowchart of a specific implementation manner of some steps of the data exchange method provided by an embodiment of the application;
- FIG. 5 is a schematic structural block diagram of a data exchange device provided by an embodiment of the application.
- Fig. 6 is a schematic structural diagram of a computer system according to an embodiment of the application.
- the GPU performs a hardware flow chart of Direct Memory Access (DMA) operations.
- the GPU includes a ring buffer unit, a source read address logic generation circuit, a destination write address logic generation circuit, a GDS interface, and a high-speed cache. Interface, Global Data Share (GDS) memory, Cache memory, Device memory, Device memory controller.
- the source read address logic generation circuit is respectively connected to the GDS interface and the cache interface
- the destination write address logic generation circuit is respectively connected to the GDS interface 108 and the cache interface.
- the GDS memory is connected to the ring buffer unit through the GDS interface
- the cache memory is connected to the cache interface through a plurality of cache routes
- the cache interface is also connected to the ring buffer unit.
- the cache memory is also connected to the device memory through the device memory controller.
- a ring buffer unit is configured as a buffer unit for buffering data, and the ring buffer unit may be implemented by a static random-access memory (SRAM).
- SRAM static random-access memory
- the GPU can generate a source address read request by using a source read address logic generating circuit, the source address read request can read data from the source storage unit, and the data obtained from the source storage unit can be written into the ring buffer unit.
- the ring buffer unit has a pointer corresponding to the source address read request. The pointer points to the blank storage space in the ring buffer unit where the data is to be written. When the blank storage space is written with data, the pointer points to the position to be updated to make the The pointer points to the new blank storage space for data to be written.
- the source storage unit may be any one of GDS memory, cache memory, and device memory.
- the GPU can generate a destination address write request by using the destination write address logic generating circuit.
- the destination address write request can read data from the ring buffer unit, and the data read from the ring buffer unit is written to the destination storage unit.
- the ring buffer unit also has a pointer corresponding to the destination address write request. The pointer points to the storage space corresponding to the data to be read from the ring buffer unit. When the corresponding data is read, the location pointed to by the pointer is updated to make The pointer points to the new storage space corresponding to the data to be read from the ring buffer unit.
- the destination storage unit may also be any one of GDS memory, cache memory, and device memory.
- data exchange is implemented by extending the DMA engine in the command processor (Command processor), and a swap mode is added to the DMA_DATA command packet, thereby using DMA_DATA_SWAP to implement data exchange.
- command processor Common processor
- a new field [31:31] can be added to DW0 of the DMA_DATA command packet:
- 0 DMA_MODE:DMA-Copy data from source to destination.
- SWAP_MODE swap data between source and destination.
- the above new field defines the bit of the SWAP mode of DMA SWAP operation.
- the bit of SWAP mode is set to 0, which means that the data is copied from the source location to the destination according to the DMA mode; the bit of SWAP mode is set to 1, which means that the source location and the destination are exchanged. Data corresponding to each location.
- FIG. 2 shows a data exchange method provided by an embodiment of the present application.
- the method can be executed by the GPU shown in FIG. 1.
- the GPU includes a ring buffer unit 102, a source read address logic generating circuit 104, and a source write address.
- the ring buffer unit 102 includes a first buffer unit 1021 and a second buffer unit 1022.
- the first buffer unit 1021 is connected to the GDS interface 108 and the cache interface 110, respectively, and the second buffer unit 1022 is connected to the GDS interface 108 and the cache interface 110, respectively.
- the source read address logic generating circuit 104 is connected to the GDS interface 108 and the cache interface 110 respectively, the source write address logic generating circuit 105 is connected to the second buffer unit 1022, and the destination write address logic generating circuit 106 is connected to the first buffer unit 1021.
- the read address logic generating circuit 107 is connected to the GDS interface 108 and the cache interface 110, respectively.
- the GDS interface 108 is also connected to the GDS memory 112, and the cache interface 110 is also connected to the cache memory 116 through a plurality of cache routes 114.
- the cache memory 116 is also connected to the device memory controller 118, and the device memory controller 118 is also connected to the device memory 120.
- the storage space of the ring buffer unit 102 may be set to 64*512 bits, and the storage space of the first buffer unit 1021 and the second buffer unit 1022 can be equal, and both are equal to half of the ring buffer unit 102 (for example, , The storage space of the first buffer unit 1021 and the second buffer unit 1022 may both be 32*512 bits), so that the ring buffer unit 102 can be utilized to a greater extent.
- the storage space of the first buffer unit 1021 may be equal to or unequal to the storage space of the second buffer unit 1022, and the specific numerical values of the storage spaces of the first buffer unit 1021 and the second buffer unit 1022 should not be construed as relevant to the present application. limit.
- the GPU is configured to exchange data between the source storage unit and the destination storage unit through the first buffer unit 1021 and the second buffer unit 1022 of the ring buffer unit 102.
- the method specifically includes the following steps S110 to S150:
- Step S110 Generate at least one source address read request, and send the at least one source address read request to the source storage unit, so that the source storage unit returns the source data corresponding to each source address read request to the first A buffer unit 1021.
- Each source address read request in the at least one source address read request includes a corresponding source address, each source address stores corresponding source data, and each source address is located in a source storage unit.
- the source address read request may be generated by the GPU through the source read address logic generating circuit 104.
- the GPU can use the source read address logic generating circuit 104 to send each generated source address read request to the source storage unit.
- the source storage unit finds the corresponding source data according to the source address, and returns the source data to the first buffer unit 1021.
- Step S120 Generate at least one destination address read request, and send the at least one destination address read request to the destination storage unit, so that the destination storage unit returns the destination data corresponding to each destination address read request to the first Two buffer unit 1022.
- Each destination address read request in the at least one destination address read request includes a corresponding destination address, each destination address stores corresponding destination data, and each destination address is located in a destination storage unit.
- the destination address read request may be generated by the GPU through the destination read address logic generating circuit 107.
- the GPU can use the target read address logic generating circuit 107 to send each generated target address read request to the target storage unit.
- the destination storage unit finds the corresponding destination data according to the destination address, and returns the destination data to the second cache unit.
- Step S130 It is determined that the source data can be transmitted to the first buffer unit 1021, and the destination data can be transmitted to the second buffer unit 1022.
- the GPU determines that all source data can be transmitted to the first buffer unit 1021, and the GPU determines that all target data can be transmitted to the second buffer unit 1022. It is determined that all source data can be transferred to the first buffer unit 1021 to avoid that the destination data is sent to the source storage unit before the source data is completely transferred to the first buffer unit 1021, causing the source data that has not yet been transferred to be sent to the destination. Data coverage. Similarly, it is determined that all destination data can be transmitted to the second buffer unit 1022 in order to avoid that the source data is sent to the destination storage unit before the destination data is completely transmitted to the second buffer unit 1022, resulting in the destination that has not yet been transmitted. The data is overwritten by the source data.
- the source data can be transmitted to the first buffer unit 1021 and the destination data can be transmitted to the second buffer unit 1022 under different conditions.
- step S130 may be: determining that the at least one source address read request is sent to the source storage unit, and The at least one destination address read request is sent to the destination storage unit.
- the data exchange method is carried out in an orderly mode. Since the read request is sent first and the write request is sent later, the data requested by the read request is already on the way back to the ring buffer unit 102 before the write request is sent. Therefore, the source read address logic generating circuit 104 determines that at least one source address read request is sent to the source storage unit, and it can be determined that the source data corresponding to each source address read request can be transmitted back to the first buffer unit.
- the destination read address logic generating circuit 107 determines that at least one destination address read request is sent to the destination storage unit, and then it can be determined that the destination data corresponding to each destination address read request mentioned above can be transmitted back to the second buffer unit 1022, thereby avoiding When the data has not been transmitted to the buffer unit, it is overwritten by the data sent from the opposite end.
- step S130 may be: determining that the source data are all transmitted to the first buffer unit 1021, and The destination data are all transmitted to the second buffer unit 1022.
- the data exchange method is carried out in disordered mode. There is no restriction on the order of read requests and write requests. Therefore, the source data can be determined only after the source data is transmitted to the first buffer unit 1021 and the destination data is transmitted to the second buffer unit 1022. Data can be transmitted to the first buffer unit 1021, and the target data can be transmitted to the second buffer unit 1022; thereby avoiding the data from being overwritten by the data sent from the opposite end before the data is transmitted to the buffer unit.
- Step S140 According to the data received by the ring buffer unit 102, a corresponding address write request is generated.
- Step S150 using the address write request to send the corresponding data to the destination address of the corresponding storage unit.
- the address write request includes the destination address of the corresponding data
- the destination address corresponding to the data received by the first buffer unit 1021 is located in the destination storage unit
- the destination address of the data received by the second buffer unit 1022 is The corresponding destination address is located in the source storage unit.
- the source data can be transmitted to the first buffer unit 1021, and the destination data can be transmitted to the second buffer unit 1022.
- the address write request of the second buffer unit 1022 sends the destination data received by the second buffer unit 1022 to the source storage unit.
- the present application uses the ring buffer unit 102 to realize the data exchange between the source storage unit and the destination storage unit, which reduces power consumption and saves cost compared with the prior art.
- steps S140 to S150 correspond to the following steps S141 to S151, respectively:
- Step S141 According to the source data received by the first buffer unit 1021, a corresponding destination address write request is generated.
- the destination address write request includes the destination address of the corresponding source data, and the destination address is located in the destination storage unit.
- the destination write address logic generating circuit 106 can generate a corresponding destination address write request, so that the source data in the first buffer unit 1021 can be Timely transfer to the destination storage unit.
- Step S151 Send the corresponding source data to the destination address of the destination storage unit by using the destination address write request.
- the GPU executes the destination address write request, and sends the source data to the destination address of the destination storage unit through the first buffer unit 1021, so as to write the source data into the destination storage unit.
- the GPU can generate a destination address write request, the destination address write request includes the destination address of the source data, the destination address is located in the destination storage unit, so that the first buffer unit 1021 can be received
- the source data is written to the destination storage unit.
- the source data received by the first buffer unit 1021 comes from the source storage unit. Therefore, the first buffer unit 1021 is used to realize the data transfer process from the source storage unit to the destination storage unit.
- steps S140 to S150 correspond to the following steps S241 to S251, respectively:
- Step S241 According to the destination data received by the second buffer unit 1022, a corresponding source address write request is generated.
- the source address write request includes the destination address of the corresponding destination data, and the destination address is located in the source storage unit.
- the source write address logic generating circuit 105 each time the second buffer unit 1022 receives destination data, the source write address logic generating circuit 105 generates a corresponding source address write request, so that the destination data in the second buffer unit 1022 can be Transfer to the source storage unit in time.
- Step S251 Send the corresponding destination data to the destination address of the source storage unit by using the source address write request.
- the GPU executes the source address write request, and sends the destination data to the destination address of the source storage unit through the second buffer unit 1022, so as to write the destination data into the source storage unit.
- the GPU can generate a source address write request, the source address write request includes the destination address of the destination data, the destination address is located in the source storage unit, so that the second buffer unit 1022 can be received
- the destination data is written to the source storage unit.
- the destination data received by the second buffer unit 1022 comes from the destination storage unit. Therefore, the second buffer unit 1022 is used to realize the data transfer process from the destination storage unit to the source storage unit.
- the communication interface through which the source storage unit sends the source data to the first buffer unit 1021 is the same as the communication interface through which the destination storage unit sends the destination data to the second buffer unit 1022, then step S120 It can be executed after step S110.
- the communication interface for the source storage unit to send source data to the first buffer unit 1021 and the communication interface for the destination storage unit to send destination data to the second buffer unit 1022 are both the cache interface 110 shown in FIG. 1.
- the source storage unit and the destination storage unit may be different storage units connected to the cache interface 110, for example, the source storage unit may be the cache memory 116, and the destination storage unit may be the device memory 120; It can be understood that the source storage unit and the destination storage unit can also be interchanged, that is, the source storage unit may be the device memory 120, and the destination storage unit may be the cache memory 116.
- the goal of the data exchange method provided by the embodiments of this application is to realize the exchange of data in two places. Therefore, for the carriers where the two data to be exchanged are located, one of the carriers can be randomly used as the source storage unit, and the other carrier will naturally become the destination. Storage unit.
- the source storage unit and the destination storage unit can also be the same storage unit, that is, data exchange can be the exchange of data in different locations of the same storage unit.
- the source storage unit and the destination storage unit can both be Cache memory 116.
- the purpose of sending the destination address read request to the destination storage unit is to make the destination storage unit return the destination data.
- the purpose of sending the source address read request to the source storage unit is to make the source storage unit return the source data.
- the source storage unit is the device memory 120 and the destination storage unit is the cache memory 116 to illustrate the case where the communication interfaces are the same (both are the cache interfaces 110):
- the source read address logic generating circuit 104 generates multiple source address read requests, and the GPU sends the multiple source address read requests to the source storage unit: the device memory 120.
- the device memory 120 can obtain the corresponding source data for each source address read request, and send the source data to the first buffer unit 1021 via the cache interface 110.
- the GPU After the GPU sends multiple source address read requests to the device memory 120, it can determine that the source data can be transmitted to the first cache unit; for the disordered mode, it needs to receive multiple source address read requests in the first cache unit. Only the source data corresponding to the source address read request can be determined that the source data can be transmitted to the first cache unit.
- the destination read address logic generating circuit 107 generates multiple destination address read requests, and the GPU sends the multiple destination address read requests to the destination storage unit: the cache memory 116.
- the cache memory 116 can obtain corresponding target data for each target address read request, and send the target data to the second buffer unit 1022 via the cache interface 110.
- the GPU After the GPU sends multiple destination address read requests to the cache memory 116, it can determine that the destination data can be transmitted to the second cache unit; for the disordered mode, it needs to receive multiple destination address read requests from the second cache unit.
- the destination data corresponding to each destination address read request can determine that the destination data can be transmitted to the second buffer unit.
- the GPU can use the destination write address logic generating circuit 106 to generate a corresponding destination address write request, the destination address write request It includes the destination address of the destination storage unit: cache memory 116, so that the source data from the source storage unit: device memory 120 is cached by the first cache unit and transferred to the destination storage unit: cache memory 116.
- the GPU when it is determined that at least one destination data can be transmitted to the second buffer unit, the GPU generates a corresponding destination address write request by using the destination write address logic generating circuit 106: A piece of source data is written into the first buffer unit, and the source data corresponding to the written source data is generated according to the destination address read request corresponding to the destination data that has been written into the second buffer unit Destination address write request. In this way, the timeliness of writing the source data to the destination storage unit can be guaranteed. Obviously, even if there is at least one piece of destination data that has not been written into the second buffer unit, it can prevent the destination data that has not been written into the second buffer unit from being overwritten.
- the step of generating a corresponding source address write request includes: every time it is detected that a destination data is written in the second buffer unit, according to the The source address read request corresponding to one of the source data written into the first buffer unit is generated, and the source address write request corresponding to the written destination data is generated.
- the GPU can use the source write address logic generating circuit 105 to generate a corresponding source address write request, the source address write request It includes the destination address of the source storage unit: the device memory 120, so that the source data from the destination storage unit: the cache memory 116 is cached by the second cache unit and transferred to the source storage unit: the device memory 120.
- step S120 can be executed in parallel with step S110.
- the communication interface through which the source storage unit sends source data to the first buffer unit 1021 is the GDS interface 108 shown in FIG. 1, and the communication interface through which the destination storage unit sends destination data to the second buffer unit 1022 is the cache interface 110.
- the destination data returned by the destination storage unit and the source storage unit return to the source data are in parallel without interference, and both can maintain high transmission. Speed, thereby improving the efficiency of data transmission.
- the source storage unit is the GDS memory 112 and the destination storage unit is the cache memory 116 to illustrate the different communication interfaces:
- the source read address logic generating circuit 104 generates multiple source address read requests, and the GPU sends the multiple source address read requests to the source storage unit: the GDS memory 112.
- the GDS memory 112 can obtain the corresponding source data for each source address read request, and send the source data to the first buffer unit 1021 via the GDS interface 108.
- the target read address logic generating circuit 107 generates multiple target address read requests, and the GPU sends the multiple target address read requests to the target storage unit: the cache memory 116.
- the cache memory 116 can obtain corresponding target data for each target address read request, and send the target data to the second buffer unit 1022 via the cache interface 110.
- the GPU can use the destination write address logic generating circuit 106 to generate Corresponding destination address write request, the destination address write request includes the destination address located in the destination storage unit: cache memory 116, so that the source data from the source storage unit: GDS memory 112 is cached by the first cache unit and transferred to Destination storage unit: cache memory 116.
- the GPU can use the source write address logic generating circuit 105 to generate a corresponding source address write request.
- the source address write request includes the source storage unit: GDS memory.
- the destination address of 112 so that the source data from the destination storage unit: the cache memory 116 is cached by the second cache unit, and transferred to the source storage unit: the GDS memory 112.
- FIG. 5 shows a data exchange device provided by an embodiment of the present application.
- the device 300 includes:
- the source read request generating module 310 is configured to generate at least one source address read request, and send the at least one source address read request to the source storage unit, so that the source storage unit can read the source corresponding to each source address read request.
- the data is returned to the first buffer unit.
- the destination read request generating module 320 is configured to generate at least one destination address read request, and send the at least one destination address read request to the destination storage unit, so that the destination storage unit can assign each destination address read request to the corresponding destination.
- the data is returned to the second buffer unit.
- the data transmission determining module 330 is configured to determine that the source data can be transmitted to the first buffer unit, and the destination data can be transmitted to the second buffer unit;
- the write request generation module 340 is configured to generate a corresponding address write request according to the data received by the ring buffer unit, wherein the address write request includes the destination address of the corresponding data, and the first buffer unit receives The destination address corresponding to the data is located in the destination storage unit, and the destination address corresponding to the data received by the second buffer unit is located in the source storage unit;
- the data sending module 350 is configured to use the address write request to send the corresponding data to the destination address of the corresponding storage unit.
- the write request generation module 340 is specifically configured to generate a corresponding destination address write request according to the source data received by the first buffer unit, where the destination address write request includes the corresponding source data Destination address.
- the data sending module 350 is specifically configured to use the destination address write request to send the corresponding source data to the destination address of the destination storage unit.
- the write request generation module 340 is specifically configured to generate a corresponding source address write request according to the destination data received by the second buffer unit, where the source address write request includes the corresponding destination data Destination address.
- the data sending module 350 is specifically configured to use the source address write request to send the corresponding destination data to the destination address of the source storage unit.
- the data exchange method is performed in an orderly mode, and the data transmission determining module 330 is specifically configured to determine that the at least one source address read request is sent to the source storage unit, and the at least one source address read request is sent to the source storage unit. All destination address read requests are sent to the destination storage unit.
- the data exchange method is performed in an out-of-order mode, and the data transmission determining module 330 is specifically configured to determine that the source data are all transmitted to the first buffer unit, and the destination data Are transmitted to the second buffer unit.
- the data exchange device shown in FIG. 5 corresponds to the data exchange method shown in FIG. 2, and will not be repeated here.
- the processor includes a ring buffer unit, a source storage unit, a destination storage unit, a source read address logic generating circuit, and a destination read address logic generating circuit ,
- the source read address logic generating circuit is connected to the source storage unit
- the destination read address logic generating circuit is connected to the destination storage unit
- the ring buffer unit includes a first buffer unit and a second buffer unit, so The source storage unit is connected to the first buffer unit and the second buffer unit through a corresponding communication interface
- the destination storage unit is connected to the first buffer unit and the second buffer unit through a corresponding communication interface
- the processor is configured to exchange data between a source storage unit and a destination storage unit through the first buffer unit and the second buffer unit;
- the source read address logic generating circuit is configured to generate at least one source address read request and send it to the The source storage unit sends the at least one source address read request, so that the source storage unit returns the source data corresponding to each source address read request
- it further includes a target write address logic generating circuit, the target write address logic generating circuit is connected to the first buffer unit; the target write address logic generating circuit is configured to be based on the first buffer
- the source data received by the unit generates a corresponding destination address write request, where the destination address write request includes the destination address of the corresponding source data; the first buffer unit is configured to use the destination address write request to transfer the corresponding destination address to the destination address.
- the source data is sent to the destination address of the destination storage unit.
- it further includes a source write address logic generating circuit, the source write address logic generating circuit is connected to the second buffer unit; the source write address logic generating circuit is configured to be based on the second buffer
- the destination data received by the unit generates a corresponding source address write request, where the source address write request includes the destination address of the corresponding destination data; the second buffer unit is configured to use the source address write request to transfer the corresponding source address write request.
- the destination data is sent to the destination address of the source storage unit.
- the communication interface for the source storage unit to send source data to the first buffer unit is the same as the communication interface for the destination storage unit to send destination data to the second buffer unit;
- the source The storage unit is a global data shared GDS memory, and the destination storage unit is a GDS memory; or the source storage unit is either a cache memory or a device memory, and the destination storage unit is the cache memory, the Any one of the device memory.
- the communication interface through which the source storage unit sends source data to the first buffer unit is different from the communication interface through which the destination storage unit sends destination data to the second buffer unit;
- the source storage unit is the GDS memory, the destination storage unit is any one of the cache memory and the device memory; or the source storage unit is any one of the cache memory and the device memory, the The destination storage unit is the GDS memory.
- the data exchange method is performed in an ordered mode, and the data exchange method is performed in an ordered mode;
- the source read address logic generating circuit is configured to determine the at least one source address read Requests are all sent to the source storage unit;
- the destination read address logic generating circuit is configured to determine that the at least one destination address read request is all sent to the destination storage unit.
- the data exchange method is performed in an out-of-order mode; the first buffer unit is configured to determine that the source data is all transmitted to the first buffer unit; the second buffer unit is configured It is determined that the target data are all transmitted to the second buffer unit.
- FIG. 6 is a schematic structural diagram of a computer system according to an embodiment of the application.
- the computer system may be composed of a hardware subsystem and a software subsystem.
- the computer system includes a processor 601, a memory (memory) 602, and a bus 603; wherein the processor 601 and the memory 602 all communicate with each other through the bus 603; the processor 601 It is configured to call the program instructions in the memory 602 to perform image and graphics related operations.
- the method for the processor 601 to exchange data is consistent with the foregoing embodiment, and will not be repeated here.
- the processor 601 can be a graphics processor, a central processing unit (CPU), an accelerated processing unit, etc., or other types of processors.
- processors Such as network processor (Network Processor, NP), application processor, of course, in some products, the application processor is the CPU, the processor 601 provided in this embodiment of the application can be configured as a graphics processing application scenario, or can be configured Computational scenarios such as in-depth calculations.
- NP Network Processor
- application processor is the CPU
- the processor 601 provided in this embodiment of the application can be configured as a graphics processing application scenario, or can be configured Computational scenarios such as in-depth calculations.
- the disclosed device and method may be implemented in other ways.
- the device embodiments described above are merely illustrative.
- the division of the units is only a logical function division, and there may be other divisions in actual implementation.
- multiple units or components may be combined or It can be integrated into another system, or some features can be ignored or not implemented.
- the displayed or discussed mutual coupling or direct coupling or communication connection may be through some communication interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separate, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
- the functional modules in the various embodiments of the present application may be integrated together to form an independent part, or each module may exist alone, or two or more modules may be integrated to form an independent part.
- the data exchange method, device, processor and computer system provided by the present application realize the data exchange between the source storage unit and the destination storage unit by using a ring buffer unit, without adding a new core, which not only reduces power consumption, but also saves Cost.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
Claims (21)
- 一种数据交换方法,其特征在于,通过环形缓冲单元交换源存储单元与目的存储单元的数据,所述环形缓冲单元包括第一缓冲单元和第二缓冲单元,所述方法包括:生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元;生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据返回给所述第二缓冲单元;确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;根据所述环形缓冲单元收到的数据,生成对应的地址写请求,其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元收到的数据所对应的去向地址位于所述源存储单元;利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
- 根据权利要求1所述的方法,其特征在于,至少一个所述源数据返回至所述第一缓冲单元,所述根据所述环形缓冲单元收到的数据,生成对应的地址写请求,包括:根据所述第一缓冲单元收到的源数据,生成对应的目的地址写请求,其中,目的地址写请求包括对应的源数据的去向地址;所述利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送,包括:利用所述目的地址写请求,将对应的所述源数据向所述目的存储单元的所述去向地址发送。
- 根据权利要求2所述的方法,其特征在于,在确定至少一个所述目的数据能传输到所述第二缓冲单元,所述根据所述环形缓冲单元收到的数据,生成对应的地址写请求,包括:每侦测到所述第一缓冲单元中被写入一个源数据,根据已写入所述第二缓冲单元的一个所述目的数据所对应的所述目的地址读请求,生成被写入的所述源数据所对应的所述目的地址写请求。
- 根据权利要求1所述的方法,其特征在于,至少一个所述目的数据返回至所述第二缓冲单元,所述根据所述环形缓冲单元收到的数据,生成对应的地址写请求,包括:根据所述第二缓冲单元收到的目的数据,生成对应的源地址写请求,其中,源地址写请求包括对应的目的数据的去向地址;所述利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送,包括:利用所述源地址写请求,将对应的所述目的数据向所述源存储单元的所述去向地址发送。
- 根据权利要求4所述的方法,其特征在于,在确定至少一个所述源数据能传输到所述第一缓冲单元,所述根据所述环形缓冲单元收到的数据,生成对应的地址写请求,包括:每侦测到所述第二缓冲单元中被写入一个目的数据,根据已写入所述第一缓冲单元的一个所述源数据所对应的所述源地址读请求,生成被写入的所述目的数据所对应的所述源地址写请求。
- 根据权利要求1所述的方法,其特征在于,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口相同;步骤:生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求在步骤:生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求之后执行。
- 根据权利要求1所述的方法,其特征在于,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口不相同;步骤:生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求与步骤:生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求并行执行。
- 根据权利要求1所述的方法,其特征在于,所述数据交换方法在有序模式下进行,所述确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元,包括:确定所述至少一个源地址读请求均向所述源存储单元发送,且所述至少一个目的地址读请求均向所述目的存储单元发送。
- 根据权利要求1所述的方法,其特征在于,所述数据交换方法在无序模式下进行,所述确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元,包括:确定所述源数据均传输至所述第一缓冲单元,且所述目的数据均传输至所述第二缓冲单元。
- 一种数据交换装置,其特征在于,通过环形缓冲单元交换源存储单元与目的存储单元的数据,所述环形缓冲单元包括第一缓冲单元和第二缓冲单元,所述装置包括:源读请求生成模块,配置成生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元;目的读请求生成模块,配置成生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据 返回给所述第二缓冲单元;数据传输确定模块,配置成确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;写请求生成模块,配置成根据所述环形缓冲单元收到的数据,生成对应的地址写请求,其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元收到的数据所对应的去向地址位于所述源存储单元;数据发送模块,配置成利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
- 一种处理器,其特征在于,包括环形缓冲单元、源存储单元、目的存储单元、源读地址逻辑生成电路以及目的读地址逻辑生成电路,所述源读地址逻辑生成电路与所述源存储单元连接,所述目的读地址逻辑生成电路与所述目的存储单元连接,所述环形缓冲单元包括第一缓冲单元和第二缓冲单元,所述源存储单元通过对应的通信接口与所述第一缓冲单元和第二缓冲单元连接,所述目的存储单元通过对应的通信接口与所述第一缓冲单元和所述第二缓冲单元连接,所述处理器配置成通过所述第一缓冲单元和第二缓冲单元交换源存储单元与目的存储单元的数据;所述源读地址逻辑生成电路配置成生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元;所述目的读地址逻辑生成电路配置成生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据返回给所述第二缓冲单元;所述处理器配置成确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;所述处理器配置成根据所述环形缓冲单元收到的数据,生成对应的地址写请求,其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元收到的数据所对应的去向地址位于所述源存储单元;所述处理器配置成利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
- 根据权利要求11所述的处理器,其特征在于,还包括目的写地址逻辑生成电路,所述目的写地址逻辑生成电路与所述第一缓冲单元连接;所述目的写地址逻辑生成电路配置成根据所述第一缓冲单元收到的源数据,生成对应的目的地址写请求,其中,目的地址写请求包括对应的源数据的去向地址;所述第一缓冲单元配置成利用所述目的地址写请求,将对应的所述源数据向所述目的存储单元的所述去向地址发送。
- 根据权利要求12所述的处理器,其特征在于,在确定至少一个所述目的数据能传输到所述第二缓冲单元,所述目的写地址逻辑生成电路配置成:每侦测到所述第一缓冲单元中被写入一个源数据,根据已写入所述第二缓冲单元的一个所述目的数据所对应的所述目的地址读请求,生成被写入的所述源数据所对应的所述目的地址写请求。
- 根据权利要求11所述的处理器,其特征在于,还包括源写地址逻辑生成电路,所述源写地址逻辑生成电路与所述第二缓冲单元连接;所述源写地址逻辑生成电路配置成根据所述第二缓冲单元收到的目的数据,生成对应的源地址写请求,其中,源地址写请求包括对应的目的数据的去向地址;所述第二缓冲单元配置成利用所述源地址写请求,将对应的所述目的数据向所述源存储单元的所述去向地址发送。
- 根据权利要求14所述的处理器,其特征在于,在确定至少一个所述源数据能传输到所述第一缓冲单元,所述源写地址逻辑生成电路配置成:每侦测到所述第二缓冲单元中被写入一个目的数据,根据已写入所述第一缓冲单元的一个所述源数据所对应的所述源地址读请求,生成被写入的所述目的数据所对应的所述源地址写请求。
- 根据权利要求11所述的处理器,其特征在于,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口相同;所述源存储单元为全局数据共享GDS存储器,所述目的存储单元为GDS存储器;或所述源存储单元为高速缓存存储器、设备内存中的任一个,所述目的存储单元为所述高速缓存存储器、所述设备内存中的任一个。
- 根据权利要求11所述的处理器,其特征在于,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口不相同;所述源存储单元为GDS存储器,所述目的存储单元为高速缓存存储器、设备内存中的任一个;或所述源存储单元为高速缓存存储器、设备内存中的任一个,所述目的存储单元为所述GDS存储器。
- 根据权利要求11所述的处理器,其特征在于,所述源读地址逻辑生成电路配置成确定所述至少一个源地址读请求均向所述源存储单元发送;所述目的读地址逻辑生成电路配置成确定所述至少一个目的地址读请求均向所述目的存储单元发送。
- 根据权利要求11所述的处理器,其特征在于,所述第一缓冲单元配置成确定所述源数据均传输至所述第一缓冲单元;所述第二缓冲单元配置成确定所述目的数据均传输至所述第二缓冲单元。
- 一种计算机系统,其特征在于,包括权利要求11-19任一项所述的处理器。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至9任一所述方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911317544.X | 2019-12-18 | ||
CN201911317544.XA CN111124953B (zh) | 2019-12-18 | 2019-12-18 | 数据交换方法、装置、处理器及计算机系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021120714A1 true WO2021120714A1 (zh) | 2021-06-24 |
Family
ID=70500930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/114006 WO2021120714A1 (zh) | 2019-12-18 | 2020-09-08 | 数据交换方法、装置、处理器及计算机系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111124953B (zh) |
WO (1) | WO2021120714A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124953B (zh) * | 2019-12-18 | 2021-04-27 | 海光信息技术股份有限公司 | 数据交换方法、装置、处理器及计算机系统 |
CN112380154A (zh) * | 2020-11-12 | 2021-02-19 | 海光信息技术股份有限公司 | 数据传输方法和数据传输装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1825292A (zh) * | 2005-02-23 | 2006-08-30 | 华为技术有限公司 | 一种直接存储器存取装置及单通道双向数据交互实现方法 |
US20070088929A1 (en) * | 2005-10-13 | 2007-04-19 | Tomohiro Hanai | Method for exchanging data between volumes of storage system |
CN103714026A (zh) * | 2014-01-14 | 2014-04-09 | 中国人民解放军国防科学技术大学 | 一种支持原址数据交换的存储器访问方法及装置 |
CN110046047A (zh) * | 2019-04-15 | 2019-07-23 | Oppo广东移动通信有限公司 | 一种进程间通信方法、装置及计算机可读存储介质 |
CN110543433A (zh) * | 2019-08-30 | 2019-12-06 | 中国科学院微电子研究所 | 一种混合内存的数据迁移方法及装置 |
CN111124953A (zh) * | 2019-12-18 | 2020-05-08 | 海光信息技术有限公司 | 数据交换方法、装置、处理器及计算机系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5209535B2 (ja) * | 2009-02-24 | 2013-06-12 | ルネサスエレクトロニクス株式会社 | Usbホストコントローラ及びusbホストコントローラの制御方法 |
CN101908036B (zh) * | 2010-07-22 | 2011-08-31 | 中国科学院计算技术研究所 | 一种高密度多处理器系统及其节点控制器 |
CN103514261B (zh) * | 2013-08-13 | 2017-03-15 | 北京华电天益信息科技有限公司 | 一种应用于工业控制系统的数据异步存储及访问方法 |
CN103955436B (zh) * | 2014-04-30 | 2018-01-16 | 华为技术有限公司 | 一种数据处理装置和终端 |
US10282811B2 (en) * | 2017-04-07 | 2019-05-07 | Intel Corporation | Apparatus and method for managing data bias in a graphics processing architecture |
CN109117416B (zh) * | 2018-09-27 | 2020-05-26 | 贵州华芯通半导体技术有限公司 | 插槽间的数据迁移或交换的方法和装置以及多处理器系统 |
CN110083568B (zh) * | 2019-03-29 | 2021-07-13 | 海光信息技术股份有限公司 | 数据交换系统、数据交换命令路由方法、芯片及电子设备 |
-
2019
- 2019-12-18 CN CN201911317544.XA patent/CN111124953B/zh active Active
-
2020
- 2020-09-08 WO PCT/CN2020/114006 patent/WO2021120714A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1825292A (zh) * | 2005-02-23 | 2006-08-30 | 华为技术有限公司 | 一种直接存储器存取装置及单通道双向数据交互实现方法 |
US20070088929A1 (en) * | 2005-10-13 | 2007-04-19 | Tomohiro Hanai | Method for exchanging data between volumes of storage system |
CN103714026A (zh) * | 2014-01-14 | 2014-04-09 | 中国人民解放军国防科学技术大学 | 一种支持原址数据交换的存储器访问方法及装置 |
CN110046047A (zh) * | 2019-04-15 | 2019-07-23 | Oppo广东移动通信有限公司 | 一种进程间通信方法、装置及计算机可读存储介质 |
CN110543433A (zh) * | 2019-08-30 | 2019-12-06 | 中国科学院微电子研究所 | 一种混合内存的数据迁移方法及装置 |
CN111124953A (zh) * | 2019-12-18 | 2020-05-08 | 海光信息技术有限公司 | 数据交换方法、装置、处理器及计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111124953A (zh) | 2020-05-08 |
CN111124953B (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9411644B2 (en) | Method and system for work scheduling in a multi-chip system | |
US9529532B2 (en) | Method and apparatus for memory allocation in a multi-node system | |
CN103119571B (zh) | 用于目录高速缓存的分配和写策略的装置和方法 | |
CN117971715A (zh) | 多处理器系统中的中继一致存储器管理 | |
US8352656B2 (en) | Handling atomic operations for a non-coherent device | |
US7836144B2 (en) | System and method for a 3-hop cache coherency protocol | |
US11403247B2 (en) | Methods and apparatus for network interface fabric send/receive operations | |
US10282293B2 (en) | Method, switch, and multiprocessor system using computations and local memory operations | |
US20080065835A1 (en) | Offloading operations for maintaining data coherence across a plurality of nodes | |
WO2021120714A1 (zh) | 数据交换方法、装置、处理器及计算机系统 | |
US10592459B2 (en) | Method and system for ordering I/O access in a multi-node environment | |
US11709774B2 (en) | Data consistency and durability over distributed persistent memory systems | |
US20150254183A1 (en) | Inter-chip interconnect protocol for a multi-chip system | |
US20220179792A1 (en) | Memory management device | |
US11620223B2 (en) | Low latency inter-chip communication mechanism in a multi-chip processing system | |
CN115174673B (zh) | 具备低延迟处理器的数据处理装置、数据处理方法及设备 | |
JP2021530022A (ja) | Gpu主導の通信のためのネットワークパケットテンプレーティング | |
US10592465B2 (en) | Node controller direct socket group memory access | |
US20140082300A1 (en) | Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method | |
CN104102550A (zh) | 一种多主机进程间通信的方法 | |
US20140250285A1 (en) | Inter-domain memory copy method and apparatus | |
US8468309B2 (en) | Optimized ring protocols and techniques | |
US11275707B2 (en) | Multi-core processor and inter-core data forwarding method | |
CN113900967A (zh) | 高速缓存存储系统 | |
WO2022061763A1 (zh) | 一种数据存储方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20901297 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20901297 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20901297 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 03.04.2023) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20901297 Country of ref document: EP Kind code of ref document: A1 |