CN114816566A - Instruction moving method, system, equipment and medium - Google Patents
Instruction moving method, system, equipment and medium Download PDFInfo
- Publication number
- CN114816566A CN114816566A CN202210364719.8A CN202210364719A CN114816566A CN 114816566 A CN114816566 A CN 114816566A CN 202210364719 A CN202210364719 A CN 202210364719A CN 114816566 A CN114816566 A CN 114816566A
- Authority
- CN
- China
- Prior art keywords
- task
- response
- pointer information
- instruction
- flag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明公开了一种指令搬移方法,包括以下步骤:响应于接收到主机下发到IO请求,根据所述请求中携带的指令的地址参数更新对应任务中的第一指针信息;检测每一个任务中的第一指针信息是否达到预设值;响应于检测到第一指针信息达到预设值,置位相应任务的第一标记和第二标记;响应于检测到第一标记置位且当前没有其他任务的第二标记处于置位状态,根据所述第一指针信息搬移对应的连续指令;响应于所述连续指令搬移完成,恢复已置位的第一标记和第二标记。本发明还公开了一种系统、计算机设备以及可读存储介质。本发明提出的方案可以实现连续指令的搬移,相较于传统的单指令搬移有着更高的总线效率,在空间局部性好的程序中,性能提升明显。
The invention discloses an instruction moving method, comprising the following steps: in response to receiving an IO request issued by a host, updating first pointer information in a corresponding task according to an address parameter of an instruction carried in the request; detecting each task Whether the first pointer information of The second flags of other tasks are in the set state, and the corresponding continuous instructions are moved according to the first pointer information; in response to the completion of the transfer of the continuous instructions, the set first and second flags are restored. The invention also discloses a system, a computer device and a readable storage medium. The solution proposed by the present invention can realize the transfer of continuous instructions, and has higher bus efficiency compared with the traditional single-instruction transfer, and in a program with good spatial locality, the performance is significantly improved.
Description
技术领域technical field
本发明涉及数据处理领域,具体涉及一种指令搬移方法、系统、设备以及存储介质。The present invention relates to the field of data processing, in particular to an instruction moving method, system, device and storage medium.
背景技术Background technique
随着云计算与大数据的普及,计算和存储越来越成为制约计算技术发展的关键路径。对于计算系统来说,由于数据计算与搬移都由CPU处理,CPU因此成为中间节点。随着系统应用数据量的提升,CPU的负载越来越高。为了解决这个问题,将数据计算从CPU搬移到专用的处理单元中,使得CPU负载大大减低,效率大大提高。AEM(加速引擎管理)即是将数据计算等操作进行中转的装置,在计算处理完成后送回主机的处理单元。With the popularization of cloud computing and big data, computing and storage have increasingly become the key path restricting the development of computing technology. For a computing system, since both data calculation and movement are handled by the CPU, the CPU becomes an intermediate node. As the amount of system application data increases, the CPU load is getting higher and higher. In order to solve this problem, the data calculation is moved from the CPU to a dedicated processing unit, which greatly reduces the CPU load and greatly improves the efficiency. AEM (Acceleration Engine Management) is a device that transfers operations such as data calculation, and sends it back to the processing unit of the host after the calculation processing is completed.
如图1所示,传统的处理过程由固件进行调度。固件需要获取主机下发的指令,并对指令进行解析,然后传输给相应的计算处理单元进行处理,硬件处理完成通知固件将回复的数据返回主机。As shown in Figure 1, traditional processing is scheduled by firmware. The firmware needs to obtain the instructions issued by the host, parse the instructions, and then transmit them to the corresponding computing processing unit for processing. After the hardware processing is completed, the firmware is notified to return the reply data to the host.
这种处理方式会消耗过多的CPU处理时间,占用CPU的负载。为了缓解CPU的负载,使用硬件加速卡的方式可以将CPU的部分数据处理任务转移到加速卡中进行处理,大大缓解CPU的压力。使用AEM(加速引擎管理)的处理方式如图2所示。AEM(加速引擎管理)需要将主机端下发的指令搬移到本地进行处理。AEM将主机创建的指令依次搬移下来,然后进行处理。这种处理方式一次只能搬移一条指令,总线访问次数多,效率较低。This processing method consumes too much CPU processing time and occupies CPU load. In order to relieve the load of the CPU, using the hardware accelerator card can transfer some data processing tasks of the CPU to the accelerator card for processing, which greatly relieves the pressure on the CPU. The processing method using AEM (Acceleration Engine Management) is shown in Figure 2. AEM (acceleration engine management) needs to move the instructions issued by the host to the local for processing. AEM removes the commands created by the host in turn, and then processes them. This processing method can only move one instruction at a time, the number of bus accesses is large, and the efficiency is low.
单指令搬移的方式比较简单易实现,但是效率有限,总线利用率低。主机维护一个buffer以及一组doorbell寄存器。Doorbell寄存器用于标识buffer的指针位置,以及通知主机指令的执行状态。该寄存器组主要由3个寄存器组成:1.尾指针:用于指示指令的下发;2.头指针:用于指示指令的完成。3.处理指针:用于指示硬件指令的处理。具体的执行流程为:The single-instruction transfer method is relatively simple and easy to implement, but the efficiency is limited and the bus utilization rate is low. The host maintains a buffer and a set of doorbell registers. The Doorbell register is used to identify the pointer position of the buffer and notify the host of the execution status of the instruction. The register group is mainly composed of 3 registers: 1. Tail pointer: used to indicate the issuance of the instruction; 2. Head pointer: used to indicate the completion of the instruction. 3. Processing pointer: used to indicate the processing of hardware instructions. The specific execution process is as follows:
1.主机侧下发指令,将指令放在主机侧的存储空间中,并配置doorbell寄存器用于通知AEM有指令下发。如doorbell寄存器配置为10,表示主机侧有10个指令需要执行。1. The host side sends the command, put the command in the storage space on the host side, and configure the doorbell register to notify AEM that there is a command to send. If the doorbell register is configured as 10, it means that there are 10 instructions to be executed on the host side.
2.AEM请求PCIE DMA(Direct Memory Access,直接存储器访问)。由于采取单指令的搬移方式,搬移10条指令需要10次操作,并发起10次总线操作。硬件维护一个处理指针,每发起一次总线操作更新一次处理指针。2. AEM requests PCIE DMA (Direct Memory Access, direct memory access). Due to the single-instruction moving method, 10 operations are required to move 10 instructions, and 10 bus operations are initiated. The hardware maintains a processing pointer, which is updated every time a bus operation is initiated.
3.等待主机侧的指令搬移到本地存储空间中。在总线响应并将对应主机侧下发的指令搬移到本地中后更新对应的头指针。最终头尾指针一致表示主机下发的指令已全部被AEM搬移完成。3. Wait for the command from the host side to be moved to the local storage space. The corresponding head pointer is updated after the bus responds and moves the command issued by the corresponding host side to the local. Finally, the consistent head and tail pointers indicate that all the instructions issued by the host have been moved by AEM.
因此,当主机下发的10条指令需要10次DMA操作,总线访问次数为10次,总线利用率低。Therefore, when 10 instructions issued by the host require 10 DMA operations, the number of bus accesses is 10, and the bus utilization rate is low.
发明内容SUMMARY OF THE INVENTION
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种指令搬移方法,包括以下步骤:In view of this, in order to overcome at least one aspect of the above problems, an embodiment of the present invention proposes a method for moving instructions, including the following steps:
响应于接收到主机下发到IO请求,根据所述请求中携带的指令的地址参数更新对应任务中的第一指针信息;In response to receiving the IO request issued by the host, update the first pointer information in the corresponding task according to the address parameter of the instruction carried in the request;
检测每一个任务中的第一指针信息是否达到预设值;Detecting whether the first pointer information in each task reaches a preset value;
响应于检测到第一指针信息达到预设值,置位相应任务的第一标记和第二标记;In response to detecting that the first pointer information reaches a preset value, set the first flag and the second flag of the corresponding task;
响应于检测到第一标记置位且当前没有其他任务的第二标记处于置位状态,根据所述第一指针信息搬移对应的连续指令;In response to detecting that the first flag is set and the second flag of no other task is currently in the set state, move the corresponding continuous instruction according to the first pointer information;
响应于所述连续指令搬移完成,恢复已置位的第一标记和第二标记。In response to the completion of the successive instruction transfer, the set first and second flags are restored.
在一些实施例中,响应于接收到主机下发到IO请求,根据所述请求中携带的指令的地址参数更新对应任务中的第一指针信息,进一步包括:In some embodiments, in response to receiving an IO request issued by the host, updating the first pointer information in the corresponding task according to the address parameter of the instruction carried in the request, further comprising:
判断对应任务的第一指针信息是否为空;Determine whether the first pointer information of the corresponding task is empty;
响应于为空,记录所述IO请求下发时间并计时。In response to being empty, the IO request delivery time is recorded and timed.
在一些实施例中,方法还包括:In some embodiments, the method further includes:
响应于每一个任务中的第一指针信息均未达到预设值,判断是否存在超时的任务;In response to the first pointer information in each task not reaching the preset value, determine whether there is a time-out task;
响应于存在超时的任务,置位超时任务的第一标记和第二标记;In response to the existence of a timed out task, the first flag and the second flag of the timed out task are set;
响应于检测到第一标记置位且当前没有其他任务的第二标记处于置位状态,根据所述超时任务当前的第一指针信息搬移对应的连续指令;In response to detecting that the first flag is set and the second flag of no other task is currently in the set state, move the corresponding continuous instruction according to the current first pointer information of the timeout task;
响应于连续指令搬移完成,恢复所述超时任务已置位的第一标记和第二标记。The first and second flags that have been set by the time-out task are restored in response to the completion of successive instruction transfers.
在一些实施例中,根据所述第一指针信息搬移对应的连续指令,进一步包括:In some embodiments, moving corresponding continuous instructions according to the first pointer information, further comprising:
根据已搬移的指令更新第二指针信息;Update the second pointer information according to the moved instruction;
响应于所述第二指针信息与所述第一指针信息相同,确定所述对应的连续指令搬移完成。In response to the second pointer information being the same as the first pointer information, it is determined that the corresponding continuous instruction transfer is completed.
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种指令搬移系统,包括:Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention also provides an instruction moving system, including:
第一更新模块,配置为响应于接收到主机下发到IO请求,根据所述请求中携带的指令的地址参数更新对应任务中的第一指针信息;The first update module is configured to update the first pointer information in the corresponding task according to the address parameter of the instruction carried in the request in response to receiving the IO request issued by the host;
检测模块,配置为检测每一个任务中的第一指针信息是否达到预设值;a detection module, configured to detect whether the first pointer information in each task reaches a preset value;
置位模块,配置为响应于检测到第一指针信息达到预设值,置位相应任务的第一标记和第二标记;a setting module, configured to set the first mark and the second mark of the corresponding task in response to detecting that the first pointer information reaches a preset value;
搬移模块,配置为响应于检测到第一标记置位且当前没有其他任务的第二标记处于置位状态,根据所述第一指针信息搬移对应的连续指令;A moving module, configured to move the corresponding continuous instruction according to the first pointer information in response to detecting that the first mark is set and the second mark of no other task is currently in the set state;
恢复模块,配置为响应于所述连续指令搬移完成,恢复已置位的第一标记和第二标记。The restoration module is configured to restore the set first flag and the second flag in response to the completion of the continuous instruction transfer.
在一些实施例中,第一更新模块还配置为:In some embodiments, the first update module is further configured to:
判断对应任务的第一指针信息是否为空;Determine whether the first pointer information of the corresponding task is empty;
响应于为空,记录所述IO请求下发时间并计时。In response to being empty, the IO request delivery time is recorded and timed.
在一些实施例中,还包括判断模块,配置为:In some embodiments, it also includes a judgment module, configured as:
响应于每一个任务中的第一指针信息均未达到预设值,判断是否存在超时的任务;In response to the first pointer information in each task not reaching the preset value, determine whether there is a time-out task;
响应于存在超时的任务,置位超时任务的第一标记和第二标记;In response to the existence of a timed out task, the first flag and the second flag of the timed out task are set;
响应于检测到第一标记置位且当前没有其他任务的第二标记处于置位状态,根据所述超时任务当前的第一指针信息搬移对应的连续指令;In response to detecting that the first flag is set and the second flag of no other task is currently in the set state, move the corresponding continuous instruction according to the current first pointer information of the timeout task;
响应于连续指令搬移完成,恢复所述超时任务已置位的第一标记和第二标记。The first and second flags that have been set by the time-out task are restored in response to the completion of successive instruction transfers.
在一些实施例中,搬移模块还配置为:In some embodiments, the moving module is further configured to:
根据已搬移的指令更新第二指针信息;Update the second pointer information according to the moved instruction;
响应于所述第二指针信息与所述第一指针信息相同,确定所述对应的连续指令搬移完成。In response to the second pointer information being the same as the first pointer information, it is determined that the corresponding continuous instruction transfer is completed.
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention further provides a computer device, including:
至少一个处理器;以及at least one processor; and
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种指令搬移方法的步骤。A memory, wherein the memory stores a computer program that can be executed on the processor, and is characterized in that, when the processor executes the program, the processor executes the steps of any one of the above-mentioned instruction moving methods.
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种指令搬移方法的步骤。Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention further provides a computer-readable storage medium, where the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor Perform the steps of any of the instruction moving methods described above.
本发明具有以下有益技术效果之一:本发明提出的方案可以实现连续指令的搬移,相较于传统的单指令搬移有着更高的总线效率,在空间局部性好的程序中,性能提升明显。The present invention has one of the following beneficial technical effects: the solution proposed by the present invention can realize the transfer of continuous instructions, has higher bus efficiency compared with the traditional single-command transfer, and has obvious performance improvement in programs with good spatial locality.
附图说明Description of drawings
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。In order to explain the embodiments of the present invention or the technical solutions in the prior art more clearly, the following briefly introduces the accompanying drawings that need to be used in the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description are only These are some embodiments of the present invention. For those of ordinary skill in the art, other embodiments can also be obtained according to these drawings without creative efforts.
图1为传统数据加速处理过程示意图;Fig. 1 is a schematic diagram of a traditional data acceleration processing process;
图2为使用加速引擎的处理方式示意图;2 is a schematic diagram of a processing method using an acceleration engine;
图3为本发明的实施例提供的指令搬移方法的流程示意图;3 is a schematic flowchart of an instruction moving method provided by an embodiment of the present invention;
图4为本发明的实施例提供的AEM硬件结构图;4 is an AEM hardware structure diagram provided by an embodiment of the present invention;
图5为本发明的实施例提供总线译码模块示意图;5 is a schematic diagram of a bus decoding module according to an embodiment of the present invention;
图6为本发明的实施例提供任务创建模块示意图;FIG. 6 provides a schematic diagram of a task creation module according to an embodiment of the present invention;
图7为本发明的实施例提供超时处理模块示意图;7 is a schematic diagram of a timeout processing module according to an embodiment of the present invention;
图8为本发明的实施例提供取指模块示意图;8 is a schematic diagram of an instruction fetch module according to an embodiment of the present invention;
图9为本发明的实施例提供指令缓存模块示意图;9 is a schematic diagram of an instruction cache module provided by an embodiment of the present invention;
图10为本发明的实施例提供的指令搬移系统的结构示意图;10 is a schematic structural diagram of an instruction moving system provided by an embodiment of the present invention;
图11为本发明的实施例提供的计算机设备的结构示意图;11 is a schematic structural diagram of a computer device provided by an embodiment of the present invention;
图12为本发明的实施例提供的计算机可读存储介质的结构示意图。FIG. 12 is a schematic structural diagram of a computer-readable storage medium provided by an embodiment of the present invention.
具体实施方式Detailed ways
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。In order to make the objectives, technical solutions and advantages of the present invention more clearly understood, the embodiments of the present invention will be further described in detail below with reference to the specific embodiments and the accompanying drawings.
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。It should be noted that all expressions using "first" and "second" in the embodiments of the present invention are for the purpose of distinguishing two entities with the same name but not the same or non-identical parameters. It can be seen that "first" and "second" It is only for the convenience of expression and should not be construed as a limitation on the embodiments of the present invention, and subsequent embodiments will not describe them one by one.
根据本发明的一个方面,本发明的实施例提出一种指令搬移方法,如图3所示,其可以包括步骤:According to an aspect of the present invention, an embodiment of the present invention proposes an instruction moving method, as shown in FIG. 3 , which may include the steps:
S1,响应于接收到主机下发到IO请求,根据所述请求中携带的指令的地址参数更新对应任务中的第一指针信息;S1, in response to receiving the IO request issued by the host, update the first pointer information in the corresponding task according to the address parameter of the instruction carried in the request;
S2,检测每一个任务中的第一指针信息是否达到预设值;S2, detecting whether the first pointer information in each task reaches a preset value;
S3,响应于检测到第一指针信息达到预设值,置位相应任务的第一标记和第二标记;S3, in response to detecting that the first pointer information reaches a preset value, set the first mark and the second mark of the corresponding task;
S4,响应于检测到第一标记置位且当前没有其他任务的第二标记处于置位状态,根据所述第一指针信息搬移对应的连续指令;S4, in response to detecting that the first mark is set and the second mark of no other task is currently in the set state, move the corresponding continuous instruction according to the first pointer information;
S5,响应于所述连续指令搬移完成,恢复已置位的第一标记和第二标记。S5, in response to the completion of the transfer of the continuous instruction, restore the set first flag and the second flag.
本发明提出的方案可以实现连续指令的搬移,相较于传统的单指令搬移有着更高的总线效率,在空间局部性好的程序中,性能提升明显。The solution proposed by the present invention can realize the transfer of continuous instructions, and has higher bus efficiency compared with the traditional single-instruction transfer, and in a program with good spatial locality, the performance is significantly improved.
在一些实施例中,如图4所示,AEM(Acceleration Engine Manager,加速引擎管理)可以包括总线译码模块(bus decoder),任务创建模块(task generation),取指模块(instruction fetcher),指令缓存模块(instruction buffer),以及超时处理模块(timeout ctrl)。对比单指令搬移模式,多指令的搬移大小需要一定的条件才能执行。由于主机下发任务的随机性,因此,多指令的搬移需要增加超时处理机制,以防止主机下发的任务迟迟没有满足条件而没有机会执行。In some embodiments, as shown in FIG. 4 , AEM (Acceleration Engine Manager, acceleration engine management) may include a bus decoder (bus decoder), a task generation module (task generation), an instruction fetcher (instruction fetcher), an instruction Cache module (instruction buffer), and timeout processing module (timeout ctrl). Compared with the single-instruction move mode, the move size of multiple instructions requires certain conditions to be executed. Due to the randomness of the tasks issued by the host, a timeout processing mechanism needs to be added for the transfer of multiple instructions, so as to prevent the tasks issued by the host from meeting the conditions and having no chance to be executed.
在一些实施例中,如图5所示,总线译码模块的功能是根据主机端下发的任务从总线协议中解析出配置的尾指针及一些用于硬件处理需要的一些配置值。同时将AEM的处理指针,头指针的值更新到寄存器。通知主机指令的处理进度。该模块的结构图如图5所示:AEM需要的配置信息都从总线接口获取,不同的配置信息对应不同的地址,译码逻辑用于配置信息的获取。配置信息如:3类指针信息,队列的配置信息以及其他的一些配置信息等。模式选择信号根据信息的来源以及时机配置总线的读写操作。In some embodiments, as shown in FIG. 5 , the function of the bus decoding module is to parse the configured tail pointer and some configuration values required for hardware processing from the bus protocol according to the task issued by the host. At the same time, the value of the processing pointer and the head pointer of AEM are updated to the register. Notifies the host of the progress of the command's processing. The structure diagram of this module is shown in Figure 5: the configuration information required by AEM is obtained from the bus interface, different configuration information corresponds to different addresses, and the decoding logic is used to obtain the configuration information. Configuration information such as:
在一些实施例中,步骤S1,响应于接收到主机下发到IO请求,根据所述请求中携带的指令的地址参数更新对应任务中的第一指针信息,具体的,如图6所示,任务创建模块用于根据主机下发的配置信息组建任务搬移信息以写入取指模块,等待取指模块处理指令的搬移操作。该模块可以支持多任务的处理,每一行信息代表主机下发的需要搬移的指令,该指令在主机侧必须是连续的,不连续的指令需要拆分成多个连续的指令进行处理,该操作由主机侧完成。其中,任务请求标记表示有待搬移的任务等待执行,其置位有两种方式:1.尾指针更新为预设值;2有任务超时。尾指针和处理指针标识AEM的处理进度。处理标记标识该任务的搬移操作还未完成,需要等待任务完成后才能发起新的处理请求。In some embodiments, in step S1, in response to receiving a request issued by the host to the IO, update the first pointer information in the corresponding task according to the address parameter of the instruction carried in the request. Specifically, as shown in FIG. 6 , The task creation module is used for assembling task moving information according to the configuration information issued by the host to be written into the instruction fetching module, and waiting for the instruction fetching module to process the instruction moving operation. This module can support multi-task processing. Each line of information represents the command issued by the host that needs to be moved. The command must be continuous on the host side. Discontinuous commands need to be split into multiple continuous commands for processing. This operation done by the host side. Among them, the task request flag indicates that the task to be moved is waiting to be executed, and there are two ways to set it: 1. The tail pointer is updated to a preset value; 2. There is a task timeout. The tail pointer and the processing pointer identify the processing progress of the AEM. The processing flag indicates that the moving operation of the task has not been completed, and a new processing request can only be initiated after the completion of the task.
需要说明的是,主机下发的IO请求可以通过总线译码模块中的不同通道发送到任务创建模块中相应的任务中,并更新相应任务中的尾指针信息(第一指针信息)。每一个IO代表一个独立的指令,通过更新尾指针参数,可以使得连续指令进行积累,从而达到阈值后,根据尾指针对应的参数确定连续指令的地址,以进行搬移。It should be noted that the IO request issued by the host can be sent to the corresponding task in the task creation module through different channels in the bus decoding module, and the tail pointer information (first pointer information) in the corresponding task is updated. Each IO represents an independent instruction. By updating the tail pointer parameter, continuous instructions can be accumulated, so that after reaching the threshold, the address of the continuous instruction is determined according to the parameter corresponding to the tail pointer for moving.
多个指令的一次性搬移的好处就是对于空间连续的指令,只需要发起一次总线操作即可完成,对于空间局部性好的程序效率提升明显。同时由于缓存指令的队列由RAM组成,相对于寄存器的实现方式可以很好的节省一部分硬件面积。The advantage of one-time transfer of multiple instructions is that for spatially continuous instructions, only one bus operation needs to be initiated to complete, and the efficiency of programs with good spatial locality is significantly improved. At the same time, since the queue of cached instructions is composed of RAM, a part of the hardware area can be well saved compared to the implementation of registers.
在一些实施例中,响应于接收到主机下发到IO请求,根据所述请求中携带的指令的地址参数更新对应任务中的第一指针信息,进一步包括:In some embodiments, in response to receiving an IO request issued by the host, updating the first pointer information in the corresponding task according to the address parameter of the instruction carried in the request, further comprising:
判断对应任务的第一指针信息是否为空;Determine whether the first pointer information of the corresponding task is empty;
响应于为空,记录所述IO请求下发时间并计时。In response to being empty, the IO request delivery time is recorded and timed.
具体的,当任务中的第一指针信息为空时,为防止主机下发的任务迟迟没有满足条件而没有机会执行,根据首个接收到请求打下时间戳,开始计时,进入超时判断流程。Specifically, when the first pointer information in the task is empty, in order to prevent the task issued by the host from meeting the conditions for a long time and having no chance to execute, a timestamp is stamped according to the first received request, the timing starts, and the timeout judgment process is entered.
在一些实施例中,方法还包括:In some embodiments, the method further includes:
响应于每一个任务中的第一指针信息均未达到预设值,判断是否存在超时的任务;In response to the first pointer information in each task not reaching the preset value, determine whether there is a time-out task;
响应于存在超时的任务,置位超时任务的第一标记和第二标记;In response to the existence of a timed out task, the first flag and the second flag of the timed out task are set;
响应于检测到第一标记置位且当前没有其他任务的第二标记处于置位状态,根据所述超时任务当前的第一指针信息搬移对应的连续指令;In response to detecting that the first flag is set and the second flag of no other task is currently in the set state, move the corresponding continuous instruction according to the current first pointer information of the timeout task;
响应于连续指令搬移完成,恢复所述超时任务已置位的第一标记和第二标记。The first and second flags that have been set by the time-out task are restored in response to the completion of successive instruction transfers.
具体的,如图7所示,超时处理模块用于处理派发指令的超时请求,由于多指令的搬移操作是主机派发的,而主机派发的指令是随机的。根据具体的场景,当遇到空间局部性好的场景,指令的搬移一直满足搬移条件,搬移可以正常进行。当遇到空间局部性不好的场景,主机派发的任务可能是不连续的,导致每个进程可能都只有零星的一两个指令的搬移操作。在这种情况下,若主机一直不能下发满足搬移条件的新指令,那么零星的任务便不会被处理。这种场景下,就需要有超时处理机制,以保证为满足搬移条件的指令可以被搬移。Specifically, as shown in FIG. 7 , the timeout processing module is used to process the timeout request for dispatching instructions, because the moving operation of multiple instructions is dispatched by the host, and the instructions dispatched by the host are random. According to the specific scene, when encountering a scene with good spatial locality, the transfer of the instruction always meets the transfer conditions, and the transfer can be carried out normally. When encountering a scenario with poor spatial locality, the tasks dispatched by the host may be discontinuous, resulting in each process having only a sporadic move operation of one or two instructions. In this case, if the host has been unable to issue new commands that satisfy the moving conditions, sporadic tasks will not be processed. In this scenario, a timeout processing mechanism is required to ensure that the instructions that meet the moving conditions can be moved.
超时处理模块由计时器,比较器以及时间戳缓存组成。计数器上电后开始工作,当该模块接收到主机下发的任务请求时,将下发时刻的时间戳进行缓存。通过比较器判断每个任务的时延是否超时,如果超时,则将超时的任务请求派发到任务创建模块进行处理。正常处理完成的任务则退出超时处理流程。The timeout processing module consists of timer, comparator and timestamp buffer. The counter starts to work after power-on. When the module receives the task request sent by the host, it will cache the time stamp of the sending time. The comparator judges whether the delay of each task has timed out, and if it times out, the timed out task request will be dispatched to the task creation module for processing. Tasks that are processed normally will exit the timeout processing process.
根据请求标记(第一标记)判断是否有待处理的任务,若当前进程有未完成的任务时,根据配置信息计算需要搬移的位置和大小。判断搬移是否满足搬移的最小门限值,若满足,且当前没有其他任务的第二标记(处理标记标识)处于置位状态,即没有其他正在处理的任务,则将搬移信息写入到取指模块,等待搬移,并置位处理标记。若不满足,不做任何操作,直到有新的搬移任务下发,或者任务超时。对于超时的任务,置位请求标记,并且不需要判断是否满足搬移门限值,直接将全部指令一次性搬移。当任务正常执行完成后,将正常处理完成的任务从超时处理流程中退出。According to the request flag (the first flag), it is judged whether there is a task to be processed. If the current process has an unfinished task, the position and size to be moved are calculated according to the configuration information. Determine whether the transfer meets the minimum threshold value of the transfer. If it is satisfied, and the second flag (processing flag) of no other task is currently in the set state, that is, there is no other task being processed, then the transfer information is written into the instruction fetch. module, waiting to be moved, and set the processing flag. If it is not satisfied, do nothing until a new moving task is issued or the task times out. For a task that has timed out, the request flag is set, and there is no need to judge whether the transfer threshold value is met, and all instructions are directly moved at one time. After the normal execution of the task is completed, the task that has been processed normally is exited from the timeout processing flow.
在一些实施例中,S4,响应于检测到第一标记置位且当前没有其他任务的第二标记处于置位状态,根据所述第一指针信息搬移对应的连续指令,具体的,如图8所示,取指模块接收任务创建模块创建的任务,储存搬移信息,如搬移的基地址和搬移长度等,并请求总线,向总线发送这些信息,进行指令搬移操作。该模块由一块RAM和状态机组成,RAM用于储存搬移信息,状态机用于控制产生规定格式的总线数据包,数据包主要包括源地址,目的地址,搬移长度,其他控制信息等。当总线请求发出后,状态机控制逻辑更新处理指针,处理标记,以及删除超时处理模块中的时间戳信息(该操作正常完成,没有超时)。外部控制模块根据数据包解析信息进行DMA搬移操作。In some embodiments, S4, in response to detecting that the first flag is set and the second flag of no other task is currently in the set state, move the corresponding continuous instruction according to the first pointer information, specifically, as shown in FIG. 8 As shown, the instruction fetch module receives the task created by the task creation module, stores the transfer information, such as the base address of the transfer and the transfer length, etc., and requests the bus, sends the information to the bus, and performs the command transfer operation. The module consists of a RAM and a state machine. The RAM is used to store the transfer information, and the state machine is used to control the generation of bus data packets in a specified format. The data packets mainly include source address, destination address, transfer length, and other control information. After the bus request is issued, the state machine control logic updates the processing pointer, the processing flag, and deletes the time stamp information in the timeout processing module (the operation is completed normally without timeout). The external control module performs the DMA transfer operation according to the data packet analysis information.
在一些实施例中,根据所述第一指针信息搬移对应的连续指令,进一步包括:In some embodiments, moving corresponding continuous instructions according to the first pointer information, further comprising:
根据已搬移的指令更新第二指针信息;Update the second pointer information according to the moved instruction;
响应于所述第二指针信息与所述第一指针信息相同,确定所述对应的连续指令搬移完成。In response to the second pointer information being the same as the first pointer information, it is determined that the corresponding continuous instruction transfer is completed.
具体的,如图9所示,指令缓存模块主要完成指令的缓存和头指针(第二指针)的更新操作。由RAM和控制状态机组成,控制状态机根据收到的指令个数更新头指针,用于标识AEM的指令处理状态。同时该模块也将收到的指令打包一些控制信息发送给后续的处理引擎进行处理。Specifically, as shown in FIG. 9 , the instruction cache module mainly completes the cache of instructions and the update operation of the head pointer (second pointer). It is composed of RAM and control state machine. The control state machine updates the head pointer according to the number of received instructions, which is used to identify the instruction processing state of the AEM. At the same time, the module also packs some control information from the received command and sends it to the subsequent processing engine for processing.
本发明针对单指令搬移效率低的问题,提出了一种连续多指令的搬移方式。利用程序的局部性,可以将一段连续指令搬移到本地,在本地进行拆分处理,变成单个指令进行操作。这样做的目的是希望减少总线的配置频次,将原来需要多次配置的传输变成只需要一次就可以完成,以达到减少总线的访问频次,提高总线的利用率的目的。Aiming at the problem of low moving efficiency of a single instruction, the present invention proposes a moving method of continuous multiple instructions. Using the locality of the program, a continuous instruction can be moved to the local, split and processed locally, and turned into a single instruction for operation. The purpose of this is to reduce the configuration frequency of the bus, and change the transmission that needs to be configured multiple times to be completed only once, so as to reduce the access frequency of the bus and improve the utilization rate of the bus.
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种指令搬移系统400,如图10所示,包括:Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention further provides an
第一更新模块401,配置为响应于接收到主机下发到IO请求,根据所述请求中携带的指令的地址参数更新对应任务中的第一指针信息;The
检测模块402,配置为检测每一个任务中的第一指针信息是否达到预设值;The
置位模块403,配置为响应于检测到第一指针信息达到预设值,置位相应任务的第一标记和第二标记;The
搬移模块404,配置为响应于检测到第一标记置位且当前没有其他任务的第二标记处于置位状态,根据所述第一指针信息搬移对应的连续指令;The moving
恢复模块405,配置为响应于所述连续指令搬移完成,恢复已置位的第一标记和第二标记。The
在一些实施例中,第一更新模块401,还配置为:In some embodiments, the
判断对应任务的第一指针信息是否为空;Determine whether the first pointer information of the corresponding task is empty;
响应于为空,记录所述IO请求下发时间并计时。In response to being empty, the IO request delivery time is recorded and timed.
在一些实施例中,还包括判断模块,配置为:In some embodiments, it also includes a judgment module, configured as:
响应于每一个任务中的第一指针信息均未达到预设值,判断是否存在超时的任务;In response to the first pointer information in each task not reaching the preset value, determine whether there is a time-out task;
响应于存在超时的任务,置位超时任务的第一标记和第二标记;In response to the existence of a timed out task, the first flag and the second flag of the timed out task are set;
响应于检测到第一标记置位且当前没有其他任务的第二标记处于置位状态,根据所述超时任务当前的第一指针信息搬移对应的连续指令;In response to detecting that the first flag is set and the second flag of no other task is currently in the set state, move the corresponding continuous instruction according to the current first pointer information of the timeout task;
响应于连续指令搬移完成,恢复所述超时任务已置位的第一标记和第二标记。The first and second flags that have been set by the time-out task are restored in response to the completion of successive instruction transfers.
在一些实施例中,搬移模块404还配置为:In some embodiments, the moving
根据已搬移的指令更新第二指针信息;Update the second pointer information according to the moved instruction;
响应于所述第二指针信息与所述第一指针信息相同,确定所述对应的连续指令搬移完成。In response to the second pointer information being the same as the first pointer information, it is determined that the corresponding continuous instruction transfer is completed.
基于同一发明构思,根据本发明的另一个方面,如图11所示,本发明的实施例还提供了一种计算机设备501,包括:Based on the same inventive concept, according to another aspect of the present invention, as shown in FIG. 11 , an embodiment of the present invention further provides a
至少一个处理器520;以及at least one
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种指令搬移方法的步骤。The
基于同一发明构思,根据本发明的另一个方面,如图12所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种指令搬移方法的步骤。Based on the same inventive concept, according to another aspect of the present invention, as shown in FIG. 12 , an embodiment of the present invention further provides a computer-
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。Finally, it should be noted that those of ordinary skill in the art can understand that all or part of the process in the method of the above-mentioned embodiments can be implemented by instructing the relevant hardware through a computer program, and the program can be stored in a computer-readable storage medium. When the program is executed, it may include the flow of the embodiments of the above-mentioned methods.
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。In addition, it should be understood that computer-readable storage media (eg, memory) herein can be volatile memory or non-volatile memory, or can include both volatile and non-volatile memory.
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。Those skilled in the art will also appreciate that the various exemplary logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described generally in terms of their functionality. Whether such functionality is implemented as software or hardware depends on the specific application and design constraints imposed on the overall system. Those skilled in the art may implement the functions in various ways for each specific application, but such implementation decisions should not be interpreted as causing a departure from the scope of the disclosed embodiments of the present invention.
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。The above are exemplary embodiments of the present disclosure, but it should be noted that various changes and modifications may be made without departing from the scope of the disclosure of the embodiments of the present invention as defined in the claims. The functions, steps and/or actions of the method claims in accordance with the disclosed embodiments described herein need not be performed in any particular order. Furthermore, although elements disclosed in the embodiments of the present invention may be described or claimed in the singular, unless expressly limited to the singular, the plural may also be construed.
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。It should be understood that, as used herein, the singular form "a" is intended to include the plural form as well, unless the context clearly supports an exception. It will also be understood that "and/or" as used herein is meant to include any and all possible combinations of one or more of the associated listed items.
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。The above-mentioned embodiments of the present invention disclose the serial numbers of the embodiments only for description, and do not represent the advantages and disadvantages of the embodiments.
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。Those of ordinary skill in the art can understand that all or part of the steps of implementing the above embodiments can be completed by hardware, or can be completed by instructing relevant hardware through a program, and the program can be stored in a computer-readable storage medium. The storage medium can be a read-only memory, a magnetic disk or an optical disk, and the like.
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。Those of ordinary skill in the art should understand that the discussion of any of the above embodiments is only exemplary, and is not intended to imply that the scope (including the claims) disclosed by the embodiments of the present invention is limited to these examples; under the idea of the embodiments of the present invention , the technical features in the above embodiments or different embodiments can also be combined, and there are many other changes in different aspects of the above embodiments of the present invention, which are not provided in detail for the sake of brevity. Therefore, any omission, modification, equivalent replacement, improvement, etc. made within the spirit and principle of the embodiments of the present invention should be included within the protection scope of the embodiments of the present invention.
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210364719.8A CN114816566B (en) | 2022-04-08 | 2022-04-08 | A method, system, device and medium for transferring instructions |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210364719.8A CN114816566B (en) | 2022-04-08 | 2022-04-08 | A method, system, device and medium for transferring instructions |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114816566A true CN114816566A (en) | 2022-07-29 |
| CN114816566B CN114816566B (en) | 2024-05-24 |
Family
ID=82534930
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210364719.8A Active CN114816566B (en) | 2022-04-08 | 2022-04-08 | A method, system, device and medium for transferring instructions |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114816566B (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115268795A (en) * | 2022-08-11 | 2022-11-01 | 湖南长城银河科技有限公司 | Moving method supporting large-scale continuous data |
| CN117608468A (en) * | 2023-10-20 | 2024-02-27 | 中科驭数(北京)科技有限公司 | Data moving method, device, equipment and computer readable storage medium |
Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB9003475D0 (en) * | 1989-04-07 | 1990-04-11 | Intel Corp | Stack method and circuitry |
| GB0328503D0 (en) * | 2003-12-09 | 2004-01-14 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
| CN101823259A (en) * | 2009-03-04 | 2010-09-08 | 光洋热系统株式会社 | Conveying robot device |
| CN102929474A (en) * | 2012-08-14 | 2013-02-13 | 珠海市魅族科技有限公司 | Cursor position control method and system |
| CN103713953A (en) * | 2013-12-17 | 2014-04-09 | 上海华为技术有限公司 | Device and method for transferring data in memory |
| US20180107823A1 (en) * | 2016-10-14 | 2018-04-19 | Qualcomm Incorporated | Programmable Hardware Security Counters |
| US20180366158A1 (en) * | 2016-02-29 | 2018-12-20 | Huawei Technologies Co., Ltd. | Method for accessing shingled magnetic recording smr disk, and server |
| CN109992541A (en) * | 2017-12-29 | 2019-07-09 | 深圳云天励飞技术有限公司 | A data handling method, related product and computer storage medium |
| CN112631658A (en) * | 2021-01-13 | 2021-04-09 | 成都国科微电子有限公司 | Instruction sending method, chip and electronic equipment |
| CN113407357A (en) * | 2020-03-17 | 2021-09-17 | 华为技术有限公司 | Method and device for inter-process data movement |
-
2022
- 2022-04-08 CN CN202210364719.8A patent/CN114816566B/en active Active
Patent Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB9003475D0 (en) * | 1989-04-07 | 1990-04-11 | Intel Corp | Stack method and circuitry |
| GB0328503D0 (en) * | 2003-12-09 | 2004-01-14 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
| CN101823259A (en) * | 2009-03-04 | 2010-09-08 | 光洋热系统株式会社 | Conveying robot device |
| CN102929474A (en) * | 2012-08-14 | 2013-02-13 | 珠海市魅族科技有限公司 | Cursor position control method and system |
| CN103713953A (en) * | 2013-12-17 | 2014-04-09 | 上海华为技术有限公司 | Device and method for transferring data in memory |
| US20180366158A1 (en) * | 2016-02-29 | 2018-12-20 | Huawei Technologies Co., Ltd. | Method for accessing shingled magnetic recording smr disk, and server |
| US20180107823A1 (en) * | 2016-10-14 | 2018-04-19 | Qualcomm Incorporated | Programmable Hardware Security Counters |
| CN109992541A (en) * | 2017-12-29 | 2019-07-09 | 深圳云天励飞技术有限公司 | A data handling method, related product and computer storage medium |
| CN113407357A (en) * | 2020-03-17 | 2021-09-17 | 华为技术有限公司 | Method and device for inter-process data movement |
| CN112631658A (en) * | 2021-01-13 | 2021-04-09 | 成都国科微电子有限公司 | Instruction sending method, chip and electronic equipment |
Non-Patent Citations (1)
| Title |
|---|
| 于凤芹;李江;: "利用EDMA和DSP/BIOS实现高速数据搬移与处理", 仪表技术与传感器, no. 02, 15 February 2008 (2008-02-15) * |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115268795A (en) * | 2022-08-11 | 2022-11-01 | 湖南长城银河科技有限公司 | Moving method supporting large-scale continuous data |
| CN117608468A (en) * | 2023-10-20 | 2024-02-27 | 中科驭数(北京)科技有限公司 | Data moving method, device, equipment and computer readable storage medium |
| CN117608468B (en) * | 2023-10-20 | 2024-12-03 | 中科驭数(北京)科技有限公司 | Data moving method, device, equipment and computer readable storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114816566B (en) | 2024-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10019181B2 (en) | Method of managing input/output(I/O) queues by non-volatile memory express(NVME) controller | |
| US5682551A (en) | System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto | |
| WO2018076793A1 (en) | Nvme device, and methods for reading and writing nvme data | |
| US20210029219A1 (en) | Data storage system with processor scheduling using distributed peek-poller threads | |
| CN103942178A (en) | Communication method between real-time operating system and non-real-time operating system on multi-core processor | |
| CN116881191B (en) | Data processing method, device, equipment and storage medium | |
| CN111831409B (en) | Thread scheduling method, device, storage medium and electronic device | |
| CN110109626B (en) | NVMe SSD command processing method based on FPGA | |
| CN113885945B (en) | Calculation acceleration method, equipment and medium | |
| CN112949847A (en) | Neural network algorithm acceleration system, scheduling system and scheduling method | |
| CN114816566A (en) | Instruction moving method, system, equipment and medium | |
| CN118467453B (en) | A data transmission method, device, equipment, medium and computer program product | |
| CN116301627A (en) | A kind of NVMe controller and its initialization, data reading and writing method | |
| WO2023045203A1 (en) | Task scheduling method, chip, and electronic device | |
| CN118427135A (en) | A PCIE DMA data transmission method and system based on FPGA | |
| CN109144749A (en) | A method of it is communicated between realizing multiprocessor using processor | |
| CN120492370B (en) | Data processing system, method, device, medium and program product | |
| CN109062857B (en) | A novel message controller capable of realizing communication between multiprocessors at high speed and its communication method | |
| CN108958903B (en) | Embedded multi-core central processor task scheduling method and device | |
| CN118555162B (en) | Method and device for accelerating network communication | |
| JP2000207174A (en) | Electronic control unit | |
| US8719499B2 (en) | Cache-line based notification | |
| CN112612728A (en) | Cache management method, device and equipment | |
| CN108958905B (en) | Lightweight operating system of embedded multi-core central processing unit | |
| CN108958904B (en) | Driver framework of lightweight operating system of embedded multi-core central processing unit |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| TR01 | Transfer of patent right |
Effective date of registration: 20240704 Address after: 2324, Building 1, Aosheng Building, No. 1166 Xinluo Street, High tech Zone, Jinan City, Shandong Province, 250000 Patentee after: Inspur Computer Technology Co.,Ltd. Country or region after: China Address before: 250000 floor 35, S01 building, Inspur Science Park, 1036 Inspur Road, Jinan area, China (Shandong) pilot Free Trade Zone, Jinan, Shandong Province Patentee before: Shandong Yunhai guochuang cloud computing equipment industry innovation center Co.,Ltd. Country or region before: China |
|
| TR01 | Transfer of patent right |