WO2023010232A1 - 一种处理器及通信方法 - Google Patents
一种处理器及通信方法 Download PDFInfo
- Publication number
- WO2023010232A1 WO2023010232A1 PCT/CN2021/109934 CN2021109934W WO2023010232A1 WO 2023010232 A1 WO2023010232 A1 WO 2023010232A1 CN 2021109934 W CN2021109934 W CN 2021109934W WO 2023010232 A1 WO2023010232 A1 WO 2023010232A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- function
- core
- input parameters
- slave core
- parameter
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004891 communication Methods 0.000 title claims abstract description 31
- 230000006870 function Effects 0.000 description 211
- 230000005540 biological transmission Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000016776 visual perception Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
Definitions
- the embodiments of the present application relate to the communication field, and in particular, to a processor and a communication method.
- convolutional neural network will require some computer vision (CV) algorithms for pre/post processing. Due to the high parallelism of the CV algorithm, vector processors are generally used.
- CV computer vision
- the first method is full decoupling, in which the vector processor is a completely independent core.
- the second method is loose coupling, in which the vector processor gets tasks from the main processor and runs the tasks in parallel with the main processor until the vector processor and the main processor are synchronized.
- the third way is tight coupling, in which the vector processor can be regarded as a part of the main processor.
- Embodiments of the present application provide a processor and a communication method.
- the master core in the processor is configured to control the slave core to run the second function based on the input parameters of the first function when it is determined that the input parameters of the second function are the same as the input parameters of the first function. Reduce the overhead of passing the input parameters of the second function and reduce the time to run the second function from the core.
- the first aspect of the embodiments of the present application provides a processor.
- the processor includes a master core and a slave core, and the processor can be applied to scenarios such as vehicle-mounted visual perception devices and mobile terminals.
- the master core is used to transfer the input parameters of the first function to the slave core; the master core is also used to send the first information to the slave core, and the first information is used for the slave core to obtain the first function; the slave core is used to obtain the first function according to the first information, and run the first function according to the input parameters of the first function; the main core is also used to provide the first function to the Sending second information from the core, the second information is used for the slave core to obtain the second function; the slave core is also used to obtain the second function according to the second information; the master core is further configured to control the slave core to run the second function based on the input parameter of the first function when it is determined that the input parameter of the second function is the same as the input parameter of the first function.
- the overhead of transferring the input parameters of the second function from the master core to the slave core can be reduced, and the cost of running the second function from the core can be reduced. time.
- the input parameter of the above-mentioned second function is the same as the input parameter of the first function includes: the input parameter of the second function is the same as that of the first function
- the input parameters of the function have the same partial parameters; the master core is also used to transfer the difference parameters to the slave core, and control the slave core to run the
- the difference parameter is a parameter that is different from the input parameter of the first function among the input parameters of the second function.
- the above-mentioned slave core is further configured to store the input parameters of the first function in multiple registers; the master core is further configured to provide The slave core transmits first indication information, the first indication information is used to instruct the slave core to update the parameter stored in the first register to the distinguished parameter, and the multiple registers include the first register and a second register, the second register stores the same partial parameters; the slave core is specifically configured to update the parameters stored in the first register by using the difference parameter based on the first indication information, and The second function is run using the difference parameter and the same partial parameter as input parameters of the second function.
- the master core transmits the first instruction information to the slave core, so that the slave core can use different parameters and the same partial parameters as input parameters of the second function to run the second function. Compared with completely transmitting the input parameters of the second function, the overhead of passing the entire input parameters of the second function is reduced.
- the above-mentioned first indication information includes multiple bits, the multiple bits correspond to the multiple registers, and the multiple bits One bit of is used to indicate whether the slave core uses the difference parameter to update a parameter stored in at least one register corresponding to the one bit.
- the bits of the second indication information indicate whether the parameters stored in the register have changed, which can reduce repeated sending of the same input parameters transmission overhead.
- the above-mentioned main core is further configured to, when it is determined that the input parameters of the second function are different from the input parameters of the first function, send The slave core transmits the input parameters of the second function, and controls the slave core to run the second function based on the input parameters of the second function.
- the slave core is configured to receive input parameters of the second function passed by the master core when running the first function.
- the slave core can receive the input parameters of the second function while running the first function, thereby improving the efficiency of running multiple functions from the core.
- the above-mentioned processor further includes a first-in-first-out FIFO queue; the slave core is specifically configured to send the slave core to the slave core through the FIFO queue.
- the first information and the second information are included in the above-mentioned processor.
- the master core can send the first information and the second information to the slave core through the same queue, which can improve the efficiency of obtaining functions from the slave core.
- the above-mentioned processor further includes a parameter buffer area; the main core is specifically configured to transfer the input parameters of the first function through the parameter buffer area ;
- the slave core is also used to store the input parameters of the first function stored in the parameter buffer into multiple registers of the slave core; the first information includes the first function The address, the length of the first function, the first slot identifier, and the second indication information, the first slot identifier is used to indicate that the input parameters of the first function are stored in the first first slot in the parameter buffer area.
- the second indication information is used to indicate whether to release the first slot after the slave core finishes running the first function; the input parameters of the second function and the When the input parameters of the first function are the same, the second indication information is specifically used to indicate that the parameters stored in the first slot are reserved after the slave core finishes running the first function, and the second The slot ID is all or partly the same as the first slot ID; when the input parameters of the second function are different from the input parameters of the first function, the second indication information is specifically used to indicate the The slave core releases the first slot after running the first function; the second information includes the address of the second function, the length of the second function, and a second slot identifier, and the second The slot identifier is used to indicate the slot identifier corresponding to the second slot where the input parameter of the second function is stored in the parameter buffer area.
- the slave core when the input parameters of the first function and the input parameters of the second function are all the same, by transmitting the same slot identification as the input parameters of the first function, the slave core can obtain the Get the input parameters of the second function correctly.
- the main core is used to indicate whether to release the slot after the function has been executed by the slave core through the second instruction information, so as to prevent the parameters in the wrong slot from being Coverage brings the problem that the slave core cannot run the function correctly.
- the second aspect of the embodiment of the present application provides a communication method, which can be applied to a processor, and the processor includes a master core and a slave core.
- the method includes: the master core transfers an input parameter of a first function to the slave core; the master core sends first information to the slave core, and the first information is used for the slave core to obtain the first function A function; the slave core obtains the first function according to the first information, and runs the first function according to the input parameters of the first function; the master core sends second information to the slave core , the second information is used for the slave core to obtain the second function; the slave core obtains the second function according to the second information; the master core determines the input parameters of the second function When the input parameters of the first function are the same, the slave core is controlled to run the second function based on the input parameters of the first function.
- the input parameter of the above-mentioned second function is the same as the input parameter of the first function includes: the input parameter of the second function is the same as the input parameter of the first function
- the input parameters of the function have the same partial parameters; the method also includes: the master core transfers a difference parameter to the slave core, and controls the slave core to run based on the difference parameter and the input parameter of the first function
- the difference parameter is a parameter that is different from the input parameter of the first function among the input parameters of the second function.
- the above steps further include: the master core delivering first indication information to the slave core, the first indication information being used to indicate that the slave core updating the parameter stored in the first register to the difference parameter, the multiple registers include the first register and a second register, the second register stores the same partial parameters, and the multiple registers are used for storing the input parameters of the first function; the slave core uses the difference parameters to update the parameters stored in the first register based on the first indication information, and uses the difference parameters and the same partial parameters
- the second function is run as an input parameter to the second function.
- the above-mentioned first indication information includes multiple bits, the multiple bits correspond to the multiple registers, and the multiple bits One bit of is used to indicate whether the slave core uses the difference parameter to update a parameter stored in at least one register corresponding to the one bit.
- the above steps further include: when the main core determines that the input parameters of the second function are different from the input parameters of the first function, sending The slave core transmits the input parameters of the second function, and controls the slave core to run the second function based on the input parameters of the second function.
- the slave core runs the first function, it receives input parameters of the second function passed by the master core.
- the above-mentioned processor further includes a first-in-first-out FIFO queue;
- the master core sending the first information to the slave core includes: the slave core passing The FIFO queue sends the first information to the slave core;
- the master core sends the second information to the slave core, including: the slave core sends the first information to the slave core through the FIFO queue Two information.
- the above-mentioned processor further includes a parameter buffer area; the master core transfers the input parameters of the first function to the slave core, including: the master core Passing the input parameters of the first function through the parameter buffer area; the method further includes: the slave core storing the input parameters of the first function stored in the parameter buffer area in the slave core In a plurality of registers; the first information includes the address of the first function, the length of the first function, a first slot identifier and second indication information, and the first slot identifier is used to indicate the The input parameter of the first function is stored in the slot identifier corresponding to the first slot in the parameter buffer, and the second indication information is used to indicate whether to release the input parameter after the slave core finishes running the first function.
- the second indication information is specifically used to indicate that after the slave core finishes running the first function
- the parameters stored in the first slot are reserved, and the second slot identifier is all or partly the same as the first slot identifier; the input parameter of the second function is the same as the input of the first function
- the second indication information is specifically used to indicate that the first slot is released after the slave core finishes running the first function
- the second information includes the address of the second function, the The length of the second function and the second slot ID, the second slot ID is used to indicate the slot ID corresponding to the second slot where the input parameters of the second function are stored in the parameter buffer area.
- the main core in the processor is used to control the slave core based on the first function when the input parameters of the second function are determined to be the same as the input parameters of the first function.
- the input parameters run the second function.
- the overhead of transferring the input parameters of the second function from the master core to the slave core can be reduced, and the time for the slave core to run the second function can be reduced.
- FIG. 1 is a schematic structural diagram of a communication device provided by the present application.
- FIG. 2 is a schematic structural diagram of a processor provided by the present application.
- FIG. 3 is a schematic flowchart of a communication method provided by the present application.
- the embodiment of the present application provides a processor and a communication method.
- the master core in the processor can control the slave core to run the second function based on the input parameters of the first function.
- Second function reducing the overhead of passing the input parameters of the second function, and reducing the time to run the second function from the core.
- FIG. 1 is a schematic diagram of a hardware structure of a communication device provided by an embodiment of the present application.
- the communication device 100 shown in FIG. 1 includes a processor 101 , a communication port 102 and a memory 103 .
- the processor 101, the communication port 102, and the memory 103 may be connected to each other through a bus.
- the communication device may be a vehicle-mounted visual perception device, a terminal device, and other devices.
- the terminal device may include a head mount display device (head mount display, HMD), and the head mount display device may be a combination of a virtual reality (virtual reality, VR) box and a terminal, a VR all-in-one machine, a personal computer (personal computer, PC ), augmented reality (augmented reality, AR) equipment, mixed reality (mixed reality, MR) equipment, etc.
- the terminal equipment can also include cellular phone (cellular phone), smart phone (smart phone), personal digital assistant (personal digital assistant) , PDA), tablet computer, laptop computer (laptop computer), personal computer (personal computer, PC), vehicle-mounted terminal, etc., which are not limited here.
- the processor 101 may be a general-purpose central processing unit (central processing unit, CPU), a microprocessor, an application specific integrated circuit (application specific integrated circuit, ASIC), a graphics processing unit (graphics processing unit, GPU) or one or more
- the integrated circuit is configured to execute related programs, so as to realize the functions required to be executed by the units in the communication device in the embodiment of the present application.
- the processor 101 may also be an integrated circuit chip, which has a signal processing capability.
- the above-mentioned processor 101 can also be a general-purpose processor, a digital signal processor (digital signal processing, DSP), an application-specific integrated circuit (ASIC), a ready-made programmable gate array (field programmable gate array, FPGA) or other programmable logic devices , discrete gate or transistor logic devices, discrete hardware components.
- the processor 101 includes a master core and a slave core. For a specific description of the processor 101, reference may be made to FIG. 2 , which will not be repeated here.
- the memory 103 may be a read only memory (read only memory, ROM), a static storage device, a dynamic storage device or a random access memory (random access memory, RAM).
- the memory 103 can store programs, and when the programs stored in the memory 103 are executed by the processor 101 , the processor 101 and the communication port 102 are used to execute the functions of the communication device 100 .
- the communication port 102 implements communication between the communication device 100 and other devices or communication networks by using a transceiver device such as but not limited to a transceiver.
- the communication device 100 shown in FIG. 1 only shows a memory, a processor, and a communication interface, in the specific implementation process, those skilled in the art should understand that the communication device 100 also includes necessary other devices. Meanwhile, according to specific requirements, those skilled in the art should understand that the communication device 100 may also include hardware devices for implementing other additional functions. In addition, those skilled in the art should understand that the communication device 100 may only include components necessary to implement the embodiment of the present application, and does not necessarily include all the components shown in FIG. 1 .
- FIG. 2 shows a schematic structural diagram of a processor.
- the processor may be the processor in the aforementioned communication device in FIG. 1 .
- the processor 101 can also be understood as a multi-core processor.
- the processor 101 may include a master core 1011, a slave core 1012, a first in first out (FIFO) queue 1013 and a parameter buffer 1014.
- FIFO first in first out
- the master core 1011 can also be understood as a master processor, and the slave core 1012 can also be understood as a vector processor.
- the slave core 1012 obtains a task from the master core 1011 and runs the task in parallel with the master core 1011 . Or it can be understood that the master core 1011 and the slave core 1012 can perform parallel logic calculations to improve the overall calculation speed of the processor 101 .
- the slave core 1012 includes a Pong scalar register 10121 , a Ping scalar register 10122 and an instruction buffer 10123 .
- the master core 1011 is configured to transfer the input parameters of the function to the slave core 1012 through the parameter buffer area 1014 .
- the master core 1011 is further configured to send function information to the slave core 1012 through the FIFO queue 1013 , and the function information is used to obtain the first function from the slave core 1012 .
- the slave core 1012 is configured to obtain the first function according to the information of the function, and execute the function according to the input parameters of the function.
- the FIFO queue 1013 is used for the main core 1011 to transmit at least one vector function (vector function, VF) information from the core 1012, and the information of each VF includes the address (for example: base address) of VF, the length of VF, the length of VF Slot ID and instructions.
- the address and length of the VF are used to obtain the VF from the core, and the slot identifier of the VF is used to indicate the identifier corresponding to the slot where the input parameters of the VF are stored in the parameter buffer area 1014 .
- the instruction information is used to indicate whether to release the slot corresponding to the input parameter of the VF after the slave core 1012 finishes running the VF.
- the indication information is used to indicate whether to overwrite the input parameters of the first VF stored in the slot after the slave core 1012 finishes running the VF.
- the VF may be obtained according to the address and length of the VF.
- the slave core 1012 can also determine which slots in the parameter buffer area 1014 store the parameters as the input parameters of the VF according to the slot identification of the VF.
- the VF may be run according to the input parameters of the VF.
- the base address of the VF is used to point to an address storing the VF in the external memory.
- the slave fetches the VF from external memory based on base address and length.
- the base address of the VF is 48 bits
- the length of the VF is 12 bits
- the slot identifier of the VF is 4 bits.
- the parameter buffer area 1014 includes multiple slots, and the multiple slots are used to store the input parameters of the VF.
- the parameter buffer area 1014 is used for the master core 1011 to transmit at least one VF input parameter to the slave core 1012 .
- the specific process may include: the main core 1011 writes the input parameters of the VF into the parameter buffer 1014 .
- the slave core 1012 copies the parameters stored in the slot corresponding to the slot ID in the parameter buffer 1014 to the Pong scalar register 10121 .
- the slave core 1012 When the slave core 1012 is ready to run the VF, the parameters in the Pong scalar register 10121 are copied to the Ping scalar register 10122 , and then the slave core 1012 uses the parameters in the Ping scalar register 10122 to run VF.
- the FIFO queue 1013 and the parameter buffer area 1014 are used for the master core 1011 and the slave core 1012 to transmit VF information and VF input parameters.
- the positions of the FIFO queue 1013 and the parameter buffer area 1014 are not limited here.
- the FIFO queue 1013 and the parameter buffer area 1014 can be in the memory of the master core 1011, or in the memory of the slave core 1012, or It is outside the master core 1011 and the slave core 1012, but in the storage area of the processor 101 (the structure shown in FIG. 1 ).
- the Pong scalar register 10121 and the Ping scalar register 10122 are essentially two scalar registers used for data buffering, which can achieve the purpose of continuous data transmission by using the two scalar registers at the same time, thereby increasing the data transmission rate. Since the data obtained by a single scalar register is easily overwritten during transmission and processing, this structure can always keep the data of one scalar register being utilized and the other scalar register for storing data. That is, the two scalar registers are read and written alternately.
- the Ping scalar register 10122 can store the input parameters corresponding to the VF to be executed by the slave core 1012
- the Pong scalar register 10121 can store the input parameters corresponding to the next VF to be executed by the slave core 1012 .
- the Pong scalar register 10121 and the Ping scalar register 10122 respectively include multiple registers, and the multiple registers are used to identify the parameters stored in the corresponding slots of the VF slots.
- the Pong scalar register 10121 and the Ping scalar register 10122 respectively include 64 2-byte registers (s0-s63) or 32 4-byte registers (S0-S31).
- the instruction buffer area 10123 is used to store the instruction corresponding to the base address, and the instruction is used to execute the VF from the core 102 .
- the base address can be used to point to the address where the VF is stored in the external memory.
- the external storage may be the storage 103 in FIG. 1 .
- VFs The functions of various structures in the processor 101 in various situations are described below by taking two functions as VFs as an example. It can be understood that, in this embodiment, a greater number of VFs and VF information can be transferred between the master core 1011 and the slave core 1012, and only two functions are used as examples for description here.
- the master core 1011 is configured to transmit the input parameters of the first VF to the slave core 1012 through the parameter buffer area 1014 .
- the master core 1011 is further configured to send first information to the slave core 1012 through the FIFO queue 1013 , where the first information is used for the slave core 1012 to obtain the first VF.
- the slave core 1012 is configured to obtain the first VF according to the first information, and run the first VF according to the input parameters of the first VF.
- the master core 1011 is further configured to send second information to the slave core 1012 through the FIFO queue 1013 , where the second information is used for the slave core 1012 to acquire the second VF.
- the slave core 1012 is configured to acquire a second VF according to the second information.
- the first information includes the base address of the first VF, the length of the first VF, the first slot ID and the second indication information, the base address of the first VF is used to point to the first VF, and the first slot ID It is used to indicate that the input parameter of the first VF is stored in the first slot corresponding to the parameter buffer area 1014, and the second indication information is used to indicate whether to release the first slot after the slave core 1012 finishes running the first VF .
- Releasing the first slot can be understood as that the parameters in the first slot can be overwritten by subsequent parameters. Not releasing the first slot can be understood as that the parameters in the first slot may not be covered by subsequent parameters.
- the second information includes the base address of the second VF, the length of the second VF, and the second slot identifier, the base address of the second function is used to point to the second VF, and the second slot identifier is used to indicate the input parameters of the second VF
- the slot ID corresponding to the second slot stored in the parameter buffer area 1014 .
- the release of the second slot can be understood as that the parameters in the second slot can be overwritten by subsequent parameters. Not releasing the second slot can be understood as that the parameters in the second slot may not be covered by subsequent parameters.
- the second information may further include third indication information, and the third indication information is used to indicate whether to release the second slot after the slave core 1012 finishes running the second VF.
- the functions of the master core 1011 and the functions of the slave core 1012 may have multiple situations, which are described below:
- the input parameters of the second VF are the same as the input parameters of the first VF.
- the input parameters of the second VF are the same as the input parameters of the first VF, which are divided into two cases, which are described below:
- the input parameters of the second VF are all the same as those of the first VF.
- the master core 1011 is further configured to control the slave core 1012 to run the second VF based on the input parameters of the first VF when it is determined that the input parameters of the first VF are the same as the input parameters of the second VF.
- the second indication information is specifically used to indicate that the parameters stored in the first slot are reserved after the slave core finishes running the first VF, and the second VF The ID of the second slot is the same as that of the first slot.
- the above-mentioned main core 1011 is used to control the slave core 1012 to run the second VF based on the input parameters of the first VF. There are many specific situations:
- the second indication information in the first information may also be used to indicate that the input parameters of the first VF are the same as the input parameters of the second VF.
- the second indication information in the first information may also be used to indicate that the input parameters of the second VF reuse the slot where the input parameters of the first VF are located.
- the main core 1011 is used to transmit the first instruction information to the slave core 1012 through the parameter buffer area 1014, the first instruction information includes a plurality of bits, and the plurality of bits corresponds to a plurality of registers in the Pong scalar register 10121, Each of the multiple bits is used to indicate that the parameter stored in at least one register corresponding to each bit has not changed. Multiple registers in the Pong scalar register 10121 are used to store the input parameters of the first VF.
- the first indication information is 32 bits, and each bit in the first indication information corresponds to two 2-byte registers in the Pong scalar register 10121, that is, the first indication information corresponds to 64 2-byte registers. Registers (s0-s63) or correspond to 32 4-byte registers (S0-S31).
- the first indication information may use 0 or 1 to indicate that the parameter corresponding to the bit stored in the register in the Pong scalar register 10121 remains unchanged, and the following description only uses 0 to indicate that the parameter remains unchanged.
- the first indication information is specifically 0x0000, and its corresponding binary number is (0000,0000,0000,0000), counting from right to left, counting from 0, and the 0th to 15th bits are 0, then every The parameters stored in the two s registers corresponding to one bit remain unchanged. Or the parameters stored in one S register corresponding to each bit remain unchanged.
- the input parameters of the first VF are the same as the input parameters of the second VF, it can be understood that the parameters of the second VF and the first VF are the same, specifically, the parameters at the same position may be the same.
- the input parameters of the second VF are partly the same as those of the first VF.
- the second indication information in the first information is specifically used to indicate that the parameters stored in the first slot are reserved after the slave core 1012 finishes running the first VF , and part of the second slot identifier is the same as the first slot identifier, and another part of the slot identifier is different.
- the master core 1011 is further configured to transmit the distinguishing parameter and the first indication information to the slave core 1012 through the parameter buffer area 1014 when determining that the input parameters of the second VF are partly the same as those of the first VF, and control the slave core 1012 based on Distinguishing parameters, first instruction information, and input parameters of the first VF to run the second VF.
- the difference parameter is a parameter different from the input parameter of the first VF among the input parameters of the second VF.
- the first indication information includes a plurality of bits corresponding to a plurality of registers in the Pong scalar register 10121, and one bit in the plurality of bits is used to indicate a parameter stored in at least one register corresponding to a bit Is there a change.
- the first indication information is 32 bits, and each bit in the first indication information corresponds to two 2-byte registers in the Pong scalar register 10121, that is, the first indication information corresponds to 64 2-byte registers. Registers (s0-s63) or correspond to 32 4-byte registers (S0-S31).
- the first indication information can use 0 or 1 to indicate whether the parameter stored in the register corresponding to the bit corresponding to the Pong scalar register 10121 has changed, and the following description will only be made by taking 1 to indicate that there is a change and 0 to indicate that the parameter does not change .
- the first indication information is specifically 0x4218, and its corresponding binary number is (0100,0010,0001,1000), counting from right to left, counting from 0, the 3rd, 4th, 9th, and 14th bits are 1, Then each bit of 1 corresponds to the parameter stored in 2 s registers or 1 S register in Pong scalar register 10121, and each bit of 0 corresponds to 2 s registers or 1 S register The stored parameters are unchanged.
- the parameters of the s6 and s7 registers corresponding to the third bit are changed, the parameters of the s8 and s9 registers corresponding to the fourth bit are changed, the parameters of the s18 and s19 registers corresponding to the ninth bit are changed, and the parameters of the s28 and s19 registers corresponding to the 14th bit are changed.
- Other parameters stored in registers corresponding to 0 bits remain unchanged.
- the difference parameter is used to describe the value that needs to be changed in the register corresponding to the above-mentioned bit being 1.
- the parameters transmitted from the master core 1011 to the slave core 1012 include first indication information and distinguishing parameters.
- the first 32 bits of this parameter are the first indication information.
- the following bit is used to indicate the difference parameter.
- the second 32bit is the parameter that needs to be written into the s6 and s7 registers
- the third 32bit is the parameter that needs to be written into the s8 and s9 registers
- the fourth 32bit is the parameter that needs to be written into the s18 and s19 registers
- the fifth 32bit is the parameter that needs to be written into the s28 and s29 registers.
- the input parameters of the first VF are partly the same as the input parameters of the second VF, it can be understood that the parameters of the second VF and the first VF are partly the same, specifically, the parameters at the same position may be partly the same.
- the second case is that the input parameters of the second VF are different from the input parameters of the first VF.
- the second indication information in the first information is specifically used to indicate that the first slot is released after the slave core 1012 finishes running the first VF. It can be understood that the parameters in this slot can be overwritten by subsequent parameters, or it can be understood that the first slot is released for the main core 1011 to fill in the input parameters of the second VF in the first slot.
- the main core 1011 is also used to transfer the input parameters of the second VF to the slave core 1012 through the parameter buffer area 1014 when it is determined that the input parameters of the first VF are different from the input parameters of the second VF, and control the slave core 1012 based on the first VF.
- the input parameters of the second VF run the second VF.
- the input parameters of the first VF are 1, 2, 3, 4, 5, and the input parameters of the second VF are 5, 4, 3, 2, 1. Then it can be considered that the input parameters of the second VF and the input parameters of the first VF do not have the same parameters at the same position.
- the input parameters of the second VF are different from the input parameters of the first VF, which can be understood as the second VF does not have the same parameters as the first VF, and can also be understood as the same position does not have the same parameters.
- the main core 1011 writes the input parameters of the first VF into the parameter buffer 1014 , and writes the information of the first VF into the FIFO queue 1013 .
- the information of the first VF includes a base address of the first VF, a length of the first VF, a first slot identifier of the first VF, and second indication information.
- the slave core 1012 copies the parameters stored in the first slot corresponding to the first slot ID in the parameter buffer 1014 to the Pong scalar register 10121 according to the first slot ID.
- the slave core 1012 copies the input parameters of the first VF stored in the Pong scalar register 10121 to the Ping scalar register.
- the slave core 1012 can run the first VF based on the input parameters of the first VF stored in the Ping scalar register.
- the master core 1011 can write the input parameters of the second VF in the parameter buffer area 1014 , and write the information of the second VF in the FIFO queue 1013 .
- the information of the second VF includes a base address of the second VF, a length of the second VF, a second slot identifier of the second VF, and third indication information.
- the slave core 1012 After the slave core 1012 finishes running the first VF, the input parameters of the second VF stored in the Pong scalar register 10121 are copied to the Ping scalar register 10122 . After the slave core 1012 obtains the second VF based on the information of the second VF, the slave core 1012 may run the second VF based on the input parameters of the second VF stored in the Ping scalar register 10122 . It can be understood that, in the case of including multiple VFs, the case of running multiple VFs from the core can be understood as a cyclic process of running the first VF and the second VF from the core, which will not be repeated here.
- the master core 1011 is configured to control the slave core 1012 to run the second function based on the input parameters of the first function when determining that the input parameters of the second function are the same as the input parameters of the first function.
- the overhead of passing the input parameters of the second function is reduced, and the time to run the second function from the core 1012 is reduced.
- the master core 1011 is also used to transmit the difference parameter and the first instruction information to the slave core 1012 through the parameter buffer area 1014 when determining that the input parameters of the second function are partly the same as the input parameters of the first function, and control
- the slave core 1012 runs the second function based on the distinguishing parameters, the first indication information, and the input parameters of the first function.
- the storage space occupied by the transmission of the distinguishing parameters and the first indication information is smaller than the storage space occupied by the input parameters of the second function.
- the overhead of passing the input parameters of the second function can be reduced, and the time to run the second function from the core 1012 can be reduced.
- the storage area is divided into FIFO queue 1013 and parameter buffer 1014 , Pong scalar register 10121 and Ping scalar register 10122 . It can be implemented that while running the first function from the core 1012, the input parameters of the second function can also be obtained. That is, the two scalar registers are read and written alternately, improving the efficiency of running multiple functions from the core 1012 .
- the processor provided in the embodiment of the present application is described above, and the communication method provided in the embodiment of the present application is described below in conjunction with the processor architecture in FIG. 2 .
- an embodiment of the communication method provided by the embodiment of the present application includes steps 301 to 310 .
- step 301 the master core transmits input parameters of the first function to the slave cores.
- the main core stores the input parameters of the first function (for example, the first VF) in the parameter buffer area.
- the slave core can acquire the parameters of the first VF from the parameter buffer.
- the slave core reads the parameters of the first VF from the slot in the parameter buffer area, and stores the parameters of the first VF in the Pong register of the slave core.
- the Pong scalar registers include 64 2-byte registers (s0-s63) or 32 4-byte registers (S0-S31).
- Step 302 the master core sends first information to the slave core.
- the master core sends the first information to the slave core through the FIFO queue.
- the first information includes the base address of the first VF, the length of the first VF, the first slot ID and the second indication information, the base address of the first VF is used to point to the first VF, and the first slot ID It is used to indicate the slot ID corresponding to the first slot where the input parameter of the first VF is stored in the parameter buffer area, and the second indication information is used to indicate whether to release the first slot after the slave core finishes running the first VF.
- Releasing the first slot can be understood as that the parameters in the first slot can be overwritten by subsequent parameters. Not releasing the first slot can be understood as that the parameters in the first slot may not be covered by subsequent parameters.
- the base address of the first VF is 48 bits, the length is 12 bits, and the first slot identifier is 4 bits.
- Step 303 acquiring a first function from the core based on the first information.
- the first VF After receiving the first information from the core, the first VF may be acquired based on the base address and length of the first VF in the first information.
- the slave core obtains the first VF from the memory shown in FIG. 1 based on the base address and length of the first VF in the first information.
- Step 304 the slave core executes the first function based on the input parameters of the first function.
- the slave core can use the first slot identifier to read the input parameters of the first VF in the input parameter buffer area, and store them in the Pong register in the slave core. Then copy the parameters in the Pong register to the Ping register, and then use the parameters in the Pong register to run the first VF.
- the first VF is run based on the input parameters of the first VF.
- Step 305 the master core sends second information to the slave core.
- the master core sends the second information to the slave core through the FIFO queue.
- the second information includes the base address of the second VF, the length of the second VF, and the second slot identifier, the base address of the second function is used to point to the second VF, and the second slot identifier is used to indicate the input parameters of the second VF
- the second information may further include third indication information, where the third indication information is used to indicate whether to release the second slot after the slave core finishes running the second VF.
- Step 306 acquiring a second function from the core based on the second information.
- the second VF may be acquired based on the base address and length of the second VF in the second information.
- the slave core obtains the second VF from the memory shown in FIG. 1 based on the base address and length of the second VF in the second information.
- the steps executed by the master core and the steps executed by the slave core may be in many cases. If the input parameters of the first VF are the same as the input parameters of the second VF, this embodiment further includes steps 307 and 308 . If the input parameter of the first VF is different from the input parameter of the second VF, this embodiment further includes step 309 and step 310 . Described below:
- the first case the input parameters of the second VF are the same as the input parameters of the first VF.
- Step 307 when the master core determines that the input parameters of the second function are the same as the input parameters of the first function, control the slave cores to run the second function based on the input parameters of the first function. This step is optional.
- the second indication information is specifically used to indicate that the parameters stored in the first slot are reserved after the slave core finishes running the first VF, and the second VF The ID of the second slot is the same as that of the first slot.
- the input parameters of the second VF are the same as the input parameters of the first VF, which are divided into two cases, which are described below:
- the input parameters of the second VF are all the same as those of the first VF.
- the second indication information in the first information may also be used to indicate that the input parameters of the first VF are the same as the input parameters of the second VF.
- the second indication information in the first information may also be used to indicate that the input parameters of the second VF reuse the slot where the input parameters of the first VF are located.
- the master core transmits the first indication information to the slave core through the parameter buffer area.
- the first indication information includes a plurality of bits, and the plurality of bits corresponds to a plurality of registers in the Pong scalar register. Each of the plurality of bits corresponds to a plurality of registers in the Pong scalar register. One bit is used to indicate that the parameter stored in at least one register corresponding to each bit has not changed. Multiple registers in the Pong scalar registers are used to store the input parameters of the first VF.
- the first indication information is 32 bits, and each bit in the first indication information corresponds to two 2-byte registers in the Pong scalar register, that is, the first indication information corresponds to 64 2-byte registers (s0-s63) or correspond to 32 4-byte registers (S0-S31).
- the first indication information may use 0 or 1 to indicate that the parameter stored in the register corresponding to the bit in the Pong scalar register remains unchanged.
- the following description only uses 0 to indicate that the parameter does not change as an example.
- the first indication information is specifically 0x0000, and its corresponding binary number is (0000,0000,0000,0000), counting from right to left, counting from 0, and the 0th to 15th bits are 0, then every The parameters stored in the two s registers corresponding to one bit remain unchanged. Or the parameters stored in one S register corresponding to each bit remain unchanged.
- the input parameters of the first VF are the same as the input parameters of the second VF, it can be understood that the parameters of the second VF and the first VF are the same, specifically, the parameters at the same position may be the same.
- the input parameters of the second VF are partly the same as those of the first VF.
- the second indication information in the first information is specifically used to indicate that the parameters stored in the first slot are reserved after the slave core finishes running the first VF, For subsequent reuse, the input parameters of the first function can be accurately obtained.
- part of the second slot identifier is the same as the first slot identifier, and another part of the slot identifier is different.
- the main core determines that the input parameters of the second VF are partly the same as the input parameters of the first function, it transmits the difference parameter and the first indication information to the slave core through the parameter buffer area, and controls the slave core based on the difference parameter, the first indication information and The input parameters of the first function run the second VF.
- the difference parameter is a parameter different from the input parameter of the first VF among the input parameters of the first VF.
- the first indication information includes a plurality of bits corresponding to a plurality of registers in the Pong scalar register, and one bit in the plurality of bits is used to indicate whether the parameter stored in at least one register corresponding to one bit is changes happened.
- the first indication information is 32 bits, and each bit in the first indication information corresponds to two 2-byte registers in the Pong scalar register, that is, the first indication information corresponds to 64 2-byte registers (s0-s63) or correspond to 32 4-byte registers (S0-S31).
- the first indication information may use 0 or 1 to indicate whether the parameter stored in the register corresponding to the bit in the Pong scalar register has changed.
- the following description only uses 1 to indicate that there is a change and 0 to indicate that the parameter does not change.
- the first indication information is specifically 0x4218, and its corresponding binary number is (0100,0010,0001,1000), counting from right to left, counting from 0, the 3rd, 4th, 9th, and 14th bits are 1, Then each bit of 1 corresponds to the parameter stored in 2 s registers or 1 S register in the Pong scalar register, and each bit of 0 corresponds to 2 s registers or 1 S register storage parameters remain unchanged.
- the parameters of the s6 and s7 registers corresponding to the third bit are changed, the parameters of the s8 and s9 registers corresponding to the fourth bit are changed, the parameters of the s18 and s19 registers corresponding to the ninth bit are changed, and the parameters of the s28 and s19 registers corresponding to the 14th bit are changed.
- Other parameters stored in registers corresponding to 0 bits remain unchanged.
- the difference parameter is used to describe the value that needs to be changed in the register corresponding to the above-mentioned bit being 1.
- the parameters transferred from the master core to the slave core include first indication information and distinguishing parameters.
- the first 32 bits of this parameter are the first indication information.
- the second 32bit is the parameter that needs to be written into the s6 and s7 registers
- the third 32bit is the parameter that needs to be written into the s8 and s9 registers
- the fourth 32bit is the parameter that needs to be written into the s18 and s19 registers
- the fifth 32bit is the parameter that needs to be written into the s28 and s29 registers.
- the input parameters of the first VF are partly the same as the input parameters of the second VF, it can be understood that the parameters of the second VF and the first VF are partly the same, specifically, the parameters at the same position may be partly the same.
- Step 308 the slave core executes the second function based on the input parameters of the first function. This step is optional.
- the second VF may be run using the input parameters of the first VF according to the second instruction information.
- the second indication information is used to indicate that the input parameters of the first VF are the same as the input parameters of the second VF, or indicate that the input parameters of the second VF reuse the slot where the input parameters of the first VF are located.
- the second case the input parameters of the second VF are different from the input parameters of the first VF.
- Step 309 when the main core determines that the input parameters of the second function are different from the input parameters of the first function, transfer the input parameters of the second function. This step is optional.
- the second indication information in the first information is specifically used to indicate that the first slot is released after the slave core finishes running the first VF, and the release slot can be It is understood that the parameters in this slot can be overwritten by subsequent parameters, or it is understood that the first slot is released for the main core to fill in the input parameters of the second VF in the first slot.
- the master core determines that the input parameters of the first VF are different from the input parameters of the second VF, it transmits the input parameters of the second VF to the slave core through the parameter buffer area.
- the input parameters of the first VF are 1, 2, 3, 4, 5, and the input parameters of the second VF are 5, 4, 3, 2, 1. Then it can be considered that the input parameters of the second VF and the input parameters of the first VF do not have the same parameters at the same position.
- the input parameters of the second VF are different from the input parameters of the first VF, which can be understood as the second VF does not have the same parameters as the first VF, and can also be understood as the same position does not have the same parameters.
- Step 310 the slave core executes the second function based on the input parameters of the second function. This step is optional.
- the input parameter of the second VF stored in the parameter buffer is stored in the Pong register of the slave core.
- the slave core runs the second VF using the input parameters of the first VF in the Pong register, copy the input parameters of the second VF stored in the Pong register to the Ping register, and use the input parameters of the second VF stored in the Ping register. Input parameters to run the second VF.
- the master core can write the input parameters of the second VF in the parameter buffer area, and write the second information in the FIFO queue. After determining the new second information in the FIFO queue from the core, according to the second slot identifier in the second information, copy the parameter stored in the second slot corresponding to the second slot identifier in the parameter buffer to Pong scalar register. After the slave core finishes running the first VF, copy the input parameters of the second VF stored in the Pong scalar register to the Ping scalar register. After the slave core acquires the second VF based on the second information, the slave core may run the second VF based on the input parameters of the second VF stored in the Ping scalar register. It can be understood that, in the case of including multiple VFs, the case of running multiple VFs from the core can be understood as a cyclic process of running the first VF and the second VF from the core, which will not be repeated here.
- the input parameters of the first VF are the same as the input parameters of the second VF, then this embodiment may include steps 301 to 308 .
- this embodiment may include steps 301 to 306 , steps 309 and 310 .
- this embodiment may include steps 301 to 310.
- the master core determines that the input parameters of the second function are the same as the input parameters of the first function, it controls the slave core to run the second function based on the input parameters of the first function. Reduce the overhead of passing the input parameters of the second function and reduce the time to run the second function from the core.
- the main core determines that the input parameters of the second function are partly the same as the input parameters of the first function, it transmits the difference parameter and the first indication information to the slave core through the parameter buffer area, and controls the slave core based on the difference parameter, the second An instruction message and the input parameters of the first function run the second function.
- the storage space occupied by the transmission of the distinguishing parameters and the first indication information is smaller than the storage space occupied by the input parameters of the second function.
- the overhead of passing the input parameters of the second function can be reduced, and the time to run the second function from the core can be reduced.
- a Pong scalar register and a Ping scalar register are obtained while running the first function from the core. It can be realized that while running the first function from the core, the input parameters of the second function can also be obtained. That is, two scalar registers are read and written alternately, improving the efficiency of running multiple functions from the core.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Communication Control (AREA)
Abstract
Description
Claims (14)
- 一种处理器,其特征在于,包括:主核,用于向从核传递第一函数的输入参数;所述主核,还用于向所述从核发送第一信息,所述第一信息用于所述从核获取所述第一函数;所述从核,用于根据所述第一信息获取所述第一函数,并且根据所述第一函数的输入参数运行所述第一函数;所述主核,还用于向所述从核发送第二信息,所述第二信息用于所述从核获取所述第二函数;所述从核,还用于根据所述第二信息获取所述第二函数;所述主核,还用于在确定所述第二函数的输入参数与所述第一函数的输入参数相同时,控制所述从核基于所述第一函数的输入参数运行所述第二函数。
- 根据权利要求1所述的处理器,其特征在于,所述第二函数的输入参数与所述第一函数的输入参数相同包括:所述第二函数的输入参数与所述第一函数的输入参数存在相同的部分参数;所述主核,还用于向所述从核传递区别参数,并控制所述从核基于所述区别参数和所述第一函数的输入参数运行所述第二函数,所述区别参数为所述第二函数的输入参数中与所述第一函数的输入参数不同的参数。
- 根据权利要求2所述的处理器,其特征在于,所述从核,还用于将所述第一函数的输入参数存储在多个寄存器中;所述主核,还用于向所述从核传递第一指示信息,所述第一指示信息用于指示所述从核将第一寄存器中存储的参数更新为所述区别参数,所述多个寄存器包括所述第一寄存器与第二寄存器,所述第二寄存器存储有所述相同的部分参数;所述从核,具体用于基于所述第一指示信息使用所述区别参数更新所述第一寄存器中存储的参数,并将所述区别参数与所述相同的部分参数作为所述第二函数的输入参数运行所述第二函数。
- 根据权利要求3所述的处理器,其特征在于,所述第一指示信息包括多个比特位,所述多个比特位与所述多个寄存器对应,所述多个比特位中的一个比特位用于指示所述从核是否使用所述区别参数更新与所述一个比特位对应的至少一个寄存器中存储的参数。
- 根据权利要求1至4中任一项所述的处理器,其特征在于,所述主核,还用于在确定所述第二函数的输入参数与所述第一函数的输入参数不相同时,向所述从核传递所述第二函数的输入参数,并控制所述从核基于所述第二函数的输入参数运行所述第二函数。
- 根据权利要求1至5中任一项所述的处理器,其特征在于,所述处理器还包括先进先出FIFO队列;所述从核,具体用于通过所述FIFO队列向所述从核发送所述第一信息与所述第二信息。
- 根据权利要求1至6中任一项所述的处理器,其特征在于,所述处理器还包括参数缓存区;所述主核,具体用于通过所述参数缓存区传递所述第一函数的输入参数;所述从核,还用于将所述参数缓存区中存储的所述第一函数的输入参数存储到所述从核的多个寄存器中;所述第一信息包括所述第一函数的地址、所述第一函数的长度、第一槽位标识以及第二指示信息,所述第一槽位标识用于指示所述第一函数的输入参数存储在所述参数缓存区中的第一槽位对应的槽位标识,所述第二指示信息用于指示在所述从核运行完所述第一函数之后是否释放所述第一槽位;在所述第二函数的输入参数与所述第一函数的输入参数相同时,所述第二指示信息具体用于指示在所述从核运行完所述第一函数之后保留所述第一槽位中存储的参数,且所述第二槽位标识与所述第一槽位标识全部或部分相同;在所述第二函数的输入参数与所述第一函数的输入参数不同时,所述第二指示信息具体用于指示在所述从核运行完所述第一函数之后释放所述第一槽位;所述第二信息包括所述第二函数的地址、所述第二函数的长度以及第二槽位标识,所述第二槽位标识用于指示所述第二函数的输入参数存储在所述参数缓存区中的第二槽位对应的槽位标识。
- 一种通信方法,其特征在于,应用于处理器,所述处理器包括主核与从核,所述方法包括:所述主核向所述从核传递第一函数的输入参数;所述主核向所述从核发送第一信息,所述第一信息用于所述从核获取所述第一函数;所述从核根据所述第一信息获取所述第一函数,并且根据所述第一函数的输入参数运行所述第一函数;所述主核向所述从核发送第二信息,所述第二信息用于所述从核获取所述第二函数;所述从核根据所述第二信息获取所述第二函数;所述主核在确定所述第二函数的输入参数与所述第一函数的输入参数相同时,控制所述从核基于所述第一函数的输入参数运行所述第二函数。
- 根据权利要求8所述的方法,其特征在于,所述第二函数的输入参数与所述第一函数的输入参数相同包括:所述第二函数的输入参数与所述第一函数的输入参数存在相同的部分参数;所述方法还包括:所述主核向所述从核传递区别参数,并控制所述从核基于所述区别参数和所述第一函数的输入参数运行所述第二函数,所述区别参数为所述第二函数的输入参数中与所述第一函数的输入参数不同的参数。
- 根据权利要求9所述的方法,其特征在于,所述方法还包括:所述主核向所述从核传递第一指示信息,所述第一指示信息用于指示所述从核将第一寄存器中存储的参数更新为所述区别参数,多个寄存器包括所述第一寄存器与第二寄存器,所述第二寄存器存储有所述相同的部分参数,所述多个寄存器用于存储所述第一函数的输入参数;所述从核基于所述第一指示信息使用所述区别参数更新所述第一寄存器中存储的参数,并将所述区别参数与所述相同的部分参数作为所述第二函数的输入参数运行所述第二函数。
- 根据权利要求10所述的方法,其特征在于,所述第一指示信息包括多个比特位,所述 多个比特位与所述多个寄存器对应,所述多个比特位中的一个比特位用于指示所述从核是否使用所述区别参数更新与所述一个比特位对应的至少一个寄存器中存储的参数。
- 根据权利要求8至11中任一项所述的方法,其特征在于,所述方法还包括:所述主核在确定所述第二函数的输入参数与所述第一函数的输入参数不相同时,向所述从核传递所述第二函数的输入参数,并控制所述从核基于所述第二函数的输入参数运行所述第二函数。
- 根据权利要求8至12中任一项所述的方法,其特征在于,所述处理器还包括先进先出FIFO队列;所述主核向所述从核发送第一信息,包括:所述从核通过所述FIFO队列向所述从核发送所述第一信息;所述主核向所述从核发送第二信息,包括:所述从核通过所述FIFO队列向所述从核发送所述第二信息。
- 根据权利要求8至13中任一项所述的方法,其特征在于,所述处理器还包括参数缓存区;所述主核向所述从核传递第一函数的输入参数,包括:所述主核通过所述参数缓存区传递所述第一函数的输入参数;所述方法还包括:所述从核将所述参数缓存区中存储的所述第一函数的输入参数存储到所述从核的多个寄存器中;所述第一信息包括所述第一函数的地址、所述第一函数的长度、第一槽位标识以及第二指示信息,所述第一槽位标识用于指示所述第一函数的输入参数存储在所述参数缓存区中的第一槽位对应的槽位标识,所述第二指示信息用于指示在所述从核运行完所述第一函数之后是否释放所述第一槽位;在所述第二函数的输入参数与所述第一函数的输入参数相同时,所述第二指示信息具体用于指示在所述从核运行完所述第一函数之后保留所述第一槽位中存储的参数,且所述第二槽位标识与所述第一槽位标识全部或部分相同;在所述第二函数的输入参数与所述第一函数的输入参数不同时,所述第二指示信息具体用于指示在所述从核运行完所述第一函数之后释放所述第一槽位;所述第二信息包括所述第二函数的地址、所述第二函数的长度以及第二槽位标识,所述第二槽位标识用于指示所述第二函数的输入参数存储在所述参数缓存区中的第二槽位对应的槽位标识。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21952142.4A EP4379564A1 (en) | 2021-07-31 | 2021-07-31 | Processor and communication method |
CN202180101086.5A CN117751356A (zh) | 2021-07-31 | 2021-07-31 | 一种处理器及通信方法 |
PCT/CN2021/109934 WO2023010232A1 (zh) | 2021-07-31 | 2021-07-31 | 一种处理器及通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/109934 WO2023010232A1 (zh) | 2021-07-31 | 2021-07-31 | 一种处理器及通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023010232A1 true WO2023010232A1 (zh) | 2023-02-09 |
Family
ID=85153996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/109934 WO2023010232A1 (zh) | 2021-07-31 | 2021-07-31 | 一种处理器及通信方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4379564A1 (zh) |
CN (1) | CN117751356A (zh) |
WO (1) | WO2023010232A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2624134A1 (en) * | 2012-01-31 | 2013-08-07 | MIMOON GmbH | Method and apparatus for mapping a communication system on a multicore processor |
CN105183698A (zh) * | 2015-09-23 | 2015-12-23 | 上海无线电设备研究所 | 一种基于多核dsp的控制处理系统和方法 |
CN107046508A (zh) * | 2016-02-05 | 2017-08-15 | 华为技术有限公司 | 报文接收方法及网络设备 |
CN110704193A (zh) * | 2019-10-12 | 2020-01-17 | 中国电子科技集团公司第三十八研究所 | 一种适合向量处理的多核软件架构的实现方法及装置 |
-
2021
- 2021-07-31 EP EP21952142.4A patent/EP4379564A1/en active Pending
- 2021-07-31 WO PCT/CN2021/109934 patent/WO2023010232A1/zh active Application Filing
- 2021-07-31 CN CN202180101086.5A patent/CN117751356A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2624134A1 (en) * | 2012-01-31 | 2013-08-07 | MIMOON GmbH | Method and apparatus for mapping a communication system on a multicore processor |
CN105183698A (zh) * | 2015-09-23 | 2015-12-23 | 上海无线电设备研究所 | 一种基于多核dsp的控制处理系统和方法 |
CN107046508A (zh) * | 2016-02-05 | 2017-08-15 | 华为技术有限公司 | 报文接收方法及网络设备 |
CN110704193A (zh) * | 2019-10-12 | 2020-01-17 | 中国电子科技集团公司第三十八研究所 | 一种适合向量处理的多核软件架构的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117751356A (zh) | 2024-03-22 |
EP4379564A1 (en) | 2024-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7320041B2 (en) | Controlling flow of data between data processing systems via a memory | |
WO2019042312A1 (zh) | 分布式计算系统,分布式计算系统中数据传输方法和装置 | |
JP4768386B2 (ja) | 外部デバイスとデータ通信可能なインターフェイスデバイスを有するシステム及び装置 | |
CN105518611B (zh) | 一种远程直接数据存取方法、设备和系统 | |
US7409468B2 (en) | Controlling flow of data between data processing systems via a memory | |
US6925512B2 (en) | Communication between two embedded processors | |
WO2023279993A1 (zh) | 图形渲染方法、装置、电子设备与存储介质 | |
CN104820582A (zh) | 一种基于Navigator的多核嵌入式DSP并行编程模型实现方法 | |
JP2006338538A (ja) | ストリームプロセッサ | |
US20150154004A1 (en) | System and method for supporting efficient buffer usage with a single external memory interface | |
WO2021147045A1 (zh) | 一种基于PCIe的数据传输方法及装置 | |
US10489322B2 (en) | Apparatus and method to improve performance in DMA transfer of data | |
CN113296979B (zh) | 一种虚幻引擎与外部程序的数据通信方法 | |
CN116775522A (zh) | 一种基于网络设备的数据处理方法及网络设备 | |
WO2023010232A1 (zh) | 一种处理器及通信方法 | |
US10733689B2 (en) | Data processing | |
CN109032818B (zh) | 一种同构系统核间同步与通信的方法 | |
CN112506676A (zh) | 进程间的数据传输方法、计算机设备和存储介质 | |
CN115543882B (zh) | 不同位宽总线间的数据转发装置及数据传输方法 | |
CN112395246A (zh) | 用于实现多个推理计算引擎的方法和装置 | |
JP2008502977A (ja) | バス・コントローラのための割り込み方式 | |
CN105117353A (zh) | 带有通用数据交互模块的fpga及采用该fpga的信息处理系统 | |
CN114371920A (zh) | 一种基于图形处理器加速优化的网络功能虚拟化系统 | |
WO2013086847A1 (zh) | 核间通信的方法及核处理器 | |
US11386029B2 (en) | Direct memory access controller |
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: 21952142 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202180101086.5 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2021952142 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2021952142 Country of ref document: EP Effective date: 20240229 |