CN112256632B - 一种可重构处理器中的指令分发方法及系统 - Google Patents
一种可重构处理器中的指令分发方法及系统 Download PDFInfo
- Publication number
- CN112256632B CN112256632B CN202011539672.1A CN202011539672A CN112256632B CN 112256632 B CN112256632 B CN 112256632B CN 202011539672 A CN202011539672 A CN 202011539672A CN 112256632 B CN112256632 B CN 112256632B
- Authority
- CN
- China
- Prior art keywords
- instruction
- synchronization
- queue
- storage
- identification field
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000015654 memory Effects 0.000 claims abstract description 141
- 238000004364 calculation method Methods 0.000 claims description 26
- 230000001360 synchronised effect Effects 0.000 claims description 16
- 239000000284 extract Substances 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000004904 shortening Methods 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
Abstract
本发明提供一种可重构处理器中的指令分发方法,可重构处理器包括取指令模块、指令同步控制模块及指令队列模块。本发明中的可重构处理器中的指令分发方法包括:设置各指令类型的存储同步ID表格式,获取各指令的第一内存标识字段和第二内存标识字段,获取第一、第二内存标识字段的one‑hot编码,获取同步表,执行多行运行指令行中各指令,本发明中的指令分发方法其通过提取各指令的内存标识字段,将其one‑hot编码后生成存储同步ID表,根据存储同步ID表生成同步表建立各指令之间的依赖关系,依次执行同步表中的各指令,即可保证多指令的并行执行效率,减少内存冲突的同时可缩短指令运行时间。同时,本发明还提供了一种可重构处理器中的指令分发系统。
Description
技术领域
本发明涉及可重构处理器的应用领域。本发明具体涉及一种可重构处理器中的指令分发方法及系统。
背景技术
在可重构处理器的开发及应用过程中,其指令一般有加载(RDMA)数据,计算(EXEC),计算完成后存储(WDMA)数据等不同类型的指令。由于其计算单元有限,如果各指令顺序执行,必然会导致效率低下。也可将指令分类,如可分为三类(加载、计算、存储),三类指令并行执行,这将有效地提高效率,但由于各类指令间存在依赖关系,如,计算前可能需要先加载完数据等,因此并行执行存在执行效率无法保障的问题。
发明内容
本发明的目的是提供一种可重构处理器中的指令分发方法,其通过提取各指令的内存标识字段,将其one-hot编码后生成存储同步ID表,根据存储同步ID表生成同步表建立各指令之间的依赖关系,执行同步表对各指令,使其依次执行,即可保证多指令的并行执行效率,减少内存冲突、缩短指令运行时间。
本发明的另一个目的是提供一种可重构处理器中的指令分发系统,通过提取各指令的内存标识字段,将其one-hot编码后生成存储同步ID表,根据存储同步ID表生成同步表建立各指令之间的依赖关系,执行同步表对各指令,使其依次执行,即可保证多指令的并行执行效率,减少内存冲突、缩短指令运行时间。
本发明的第一个方面提供了一种可重构处理器中的指令分发方法,可重构处理器包括一个取指令模块、一个指令同步控制模块及一个指令队列模块。取指令模块能够将多行待运行指令分别分发给指令同步控制模块及指令队列模块。
指令同步控制模块控制指令队列模块中的指令执行。待运行指令类型包括在一个指令集中。指令集中包括多个指令类型。
在指令队列模块中设置多个指令队列。指令队列中依次排列设置多个指令单元。一个指令队列对应一个指令类型。
可重构处理器中的指令分发方法包括:
步骤S101,设置各指令类型的存储同步ID表格式。存储同步ID表中包括依次设置的多个存储单元。每个存储单元中设置第一内存标识字段存储位和/或第二内存标识字段存储位。各指令类型对应设定数量的第一内存标识字段和/或第二内存标识字段。
步骤S102,依次提取多行待运行指令中各指令的一个第一内存标识字段和一个第二内存标识字段。各指令的指令类型包括在指令集中。
步骤S103,根据各指令的指令类型所对应的第一内存标识字段和/或第二内存标识字段获取第一内存标识字段的one-hot编码和/或第二内存标识字段的one-hot编码。
将各指令的第一内存标识字段one-hot编码、第二内存标识字段one-hot编码根据多行待运行指令的执行次序存入存储同步ID表。将多行待运行指令中各指令的其他指令参数发送到指令队列模块的指令队列各指令单元中。
步骤S104,指令同步控制模块根据各指令存储同步ID表中各指令类型的第一内存标识字段one-hot编码和第二内存标识字段one-hot编码获取任一个指令类型与其他两个指令类型的依赖关系标识信息。根据依赖关系标识信息沿一个第一数据维度生成同步表。同步表包括交汇的一个第一数据维度和一个第二数据维度。各指令类型的第一数据维度与各指令类型的存储同步ID表的存储位数相应。
步骤S105,沿所述同步表的第二数据维度,根据各类型指令的依赖关系执行相应指令;所述各指令类型的第二数据维度的数量与所述指令队列中的指令单元数量相应,所述指令同步控制模块能够通过所述同步表在执行相应指令的同时调用对应指令单元中各指令对应的其他指令参数,以执行多行待运行指令行中的各指令。
在本发明中指令分发方法的另一种实施方式中,各指令类型的存储同步ID表包括:加载指令的存储同步ID表、计算指令的存储同步ID表和存储指令的存储同步ID表。
指令队列设置为三个指令队列。指令类型分别为加载指令、计算指令和存储指令。加载指令对应加载指令队列、计算指令对应计算指令队列、存储对应存储指令队列。
本发明的可重构处理器中的指令分发方法的又一种实施方式中,存储同步ID表中包括依次设置的8个存储单元。存储单元地址为“0~7”。起始位的单元地址为“0”。
指令队列中的指令单元数量为8位。指令队列中单元地址为“0~7”。指令单元的起始位的单元地址为“0”。指令队列中单元地址“0~7”分别对应控制队列中单元地址“0~7”。
在本发明中指令分发方法的再一种实施方式中,指令集包括:各指令类型包括:加载指令RDMA、计算指令EXEC和存储指令WDMA。
第一内存标识字段的one-hot编码或第二内存标识字段的one-hot编码包括:“0,1,2...”。
加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第一内存库号编码为“0,1,2...”。加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第二内存库号编码为“,1,2...”。
在本发明中指令分发方法的再一种实施方式中,步骤S103中还包括:
判断指令队列的各指令单元是否已满,若是,则返回本步骤,直到指令队列中具有空闲指令单元。若否,则执行步骤S104。
本发明的第二个方面提供了一种可重构处理器中的指令分发系统,可重构处理器包括一个取指令模块、一个指令同步控制模块及一个指令队列模块。取指令模块能够将多行待运行指令分别分发给指令同步控制模块及指令队列模块。
指令同步控制模块控制指令队列模块中的指令执行。待运行指令类型包括在一个指令集中。指令集中包括多个指令类型。
在指令队列模块中设置多个指令队列。指令队列中依次排列设置多个指令单元。一个指令队列对应一个指令类型。
可重构处理器中的指令分发系统包括:一个存储同步ID表设置单元、一个指令提取单元、一个one-hot编码单元、一个生成同步表单元和一个指令执行单元。其中:
存储同步ID表设置单元,其配置为设置各指令类型的存储同步ID表格式。存储同步ID表中包括依次设置的多个存储单元。每个存储单元中设置第一内存标识字段存储位和/或第二内存标识字段存储位。各指令类型对应设定数量的第一内存标识字段和/或第二内存标识字段。
指令提取单元,其配置为依次提取多行待运行指令中各指令的一个第一内存标识字段和一个第二内存标识字段。各指令的指令类型包括在指令集中。
one-hot编码单元,其配置为根据各指令的指令类型所对应的第一内存标识字段和/或第二内存标识字段获取第一内存标识字段的one-hot编码和/或第二内存标识字段的one-hot编码。
将各指令的第一内存标识字段one-hot编码、第二内存标识字段one-hot编码根据多行待运行指令的执行次序存入存储同步ID表。将多行待运行指令中各指令的其他指令参数发送到指令队列模块的指令队列各指令单元中。
生成同步表单元,其配置为指令同步控制模块根据各指令存储同步ID表中各指令类型的第一内存标识字段one-hot编码和第二内存标识字段one-hot编码获取任一个指令类型与其他两个指令类型的依赖关系标识信息。根据依赖关系标识信息沿一个第一数据维度生成同步表。同步表包括交汇的一个第一数据维度和一个第二数据维度。各指令类型的第一数据维度与各指令类型的存储同步ID表的存储位数相应。
指令执行单元,其配置为沿所述同步表的第二数据维度,根据各类型指令的依赖关系执行相应指令;所述各指令类型的第二数据维度的数量与所述指令队列中的指令单元数量相应,所述指令同步控制模块能够通过所述同步表在执行相应指令的同时调用对应指令单元中各指令对应的其他指令参数,以执行多行待运行指令行中的各指令。
在本发明中指令分发系统的另一种实施方式中,各指令类型的存储同步ID表包括:加载指令的存储同步ID表、计算指令的存储同步ID表和存储指令的存储同步ID表。
指令队列设置为三个指令队列。指令类型分别为加载指令、计算指令和存储指令。加载指令对应加载指令队列、计算指令对应计算指令队列、存储对应存储指令队列。
在本发明中指令分发系统的又一种实施方式中,存储同步ID表中包括依次设置的8个存储单元。存储单元地址为“0~7”。起始位的单元地址为“0”。
指令队列中的指令单元数量为8位。指令队列中单元地址为“0~7”。指令单元的起始位的单元地址为“0”。指令队列中单元地址“0~7”分别对应控制队列中单元地址“0~7”。
在本发明中指令分发系统的再一种实施方式中,指令集包括:各指令类型包括:加载指令RDMA、计算指令EXEC和存储指令WDMA。
第一内存标识字段的one-hot编码或第二内存标识字段的one-hot编码包括:“0,1,2...”。
加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第一内存库号编码为“0,1,2...”。加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第二内存库号编码为“,1,2...”。
在本发明中指令分发系统的再一种实施方式中,one-hot编码单元中还配置为:判断指令队列的各指令单元是否已满,若是,则返回本单元,直到指令队列中具有空闲指令单元。若否,则执行生成同步表单元。
下文将以明确易懂的方式,结合附图对一种可重构处理器中的指令分发方法及系统的特性、技术特征、优点及其实现方式予以进一步说明。
附图说明
图1是用于说明在本发明在一种实施方式中,中可重构处理器中的指令分发方法的流程示意图。
图2是用于说明在本发明在一种实施方式中,存储同步ID表格式的组成示意图。
图3是用于说明在本发明在一种实施方式中,同步表的组成示意图。
图4是用于说明在本发明在一种实施方式中,指令队列的结构示意图。
图5是用于说明在本发明在一种实施方式中,可重构处理器的组成示意图。
图6是用于说明在本发明在一种实施方式中,指令队列模块中的多种状态图。
具体实施方式
为了对发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式,在各图中相同的标号表示结构相同或结构相似但功能相同的部件。
在本文中,“示意性”表示“充当实例、例子或说明”,不应将在本文中被描述为“示意性”的任何图示、实施方式解释为一种更优选的或更具优点的技术方案。为使图面简洁,各图中只示意性地表示出了与本示例性实施例相关的部分,它们并不代表其作为产品的实际结构及真实比例。
本发明的第一个方面,提供了一种可重构处理器中的指令分发方法,如图5所示,可重构处理器包括一个取指令模块202、一个指令同步控制模块201及一个指令队列模块203。取指令模块202能够将多行待运行指令经过拆分后分别分发给指令同步控制模块201及指令队列模块203。
指令同步控制模块201控制指令队列模块中的指令执行。待运行指令类型包括在一个指令集中。指令集中包括多个指令类型。
如图4所示,在指令队列模块中设置多个指令队列。例如:计算PEA_EXEC队列102、存储WDMA队列103及加载RDMA队列101。计算PEA_EXEC队列102、存储WDMA队列103及加载RDMA队列101中分别依次排列设置8指令单元。一个指令队列对应一个指令类型。
如图1所示,可重构处理器中的指令分发方法包括:
步骤S101,设置各指令类型的存储同步ID表格式。
在本步骤中,如图2所示,设置各指令类型的存储同步ID表格式。存储同步ID表中包括依次设置的多个存储单元。每个存储单元上设置第一内存标识字段CSPM_ID存储位和/或第二内存标识字段LSHM_ID存储位。各指令类型对应设定数量的第一内存标识字段和/或第二内存标识字段。
如图2所示,在加载RDMA指令的存储同步ID表、计算PEA_EXEC指令的存储同步ID表格式中分别具有8个单元,每个单元均包括一个第一内存标识字段CSPM_ID和一个第二内存标识字段LSHM_ID单元。存储WDMA指令的存储同步ID表格中具有8个单元,其具有一个第二内存标识字段LSHM_ID。
步骤S102,获取各指令的第一内存标识字段和第二内存标识字段。
本步骤中,依次提取多行待运行指令中各指令的第一内存标识字段和/或第二内存标识字段。各指令的指令类型包括在指令集中。
如,下述当前程序1:
(1)RDMA context。
(2)RDMA data。
(3)PEA_EXEC。
(4)RDMA context。
(5)PEA_EXEC。
(6)WDMA data。
(7)RDMA context。
(8)RDMA data。
(9)PEA_EXEC。
(10)WDMA data。
依次读取程序1的10条指令中的“RDMA数据加载指令”、“PEA_EXEC计算指令”及“WDMA数据存储指令”。获取“RDMA数据加载指令”、“PEA_EXEC计算指令”及“WDMA数据存储指令”的第一内存标识字段CSPM_ID和/或第二内存标识字段LSHM_ID。
“RDMA数据加载指令”、“PEA_EXEC计算指令”、“WDMA数据存储指令”所调用的第一内存标识字段CSPM_ID和第二内存标识字段LSHM_ID数量的对应关系如下表1所示:
表1
CSPM_ID | LSHM_ID | |
PEA_EXEC | 1个 | 2个 |
WDMA | 0个 | 1个 |
RDMA | 0个或1个 | 0个或1个 |
步骤S103,获取第一、第二内存标识字段的one-hot编码。
在本步骤中,根据各指令的指令类型所对应的第一内存标识字段和/或第二内存标识字段获取第一内存标识字段的one-hot编码和/或第二内存标识字段的one-hot编码。
将各指令的第一内存标识字段one-hot编码、第二内存标识字段one-hot编码根据多行待运行指令的执行次序存入存储同步ID表中。
将各指令中的其他指令参数发送到指令队列模块的指令队列的各指令单元中。
如,根据程序1中的“RDMA数据加载指令”的CSPM_ID字段的one-hot规则编码和LSHM_ID字段的one-hot规则编码存入存储同步ID表中,将RDMA数据加载指令的其他指令参数对应存到指令队列的指令单元中。
各指令的第一内存库号CSPM_ID字段编码及第二内存库号LSHM_ID字段编码举例如下:
(1)RDMA context,CSPM_ID=0
(2)RDMA data,LSHM_ID=0
(3)PEA_EXEC CSPM_ID=0, LSHM_ID=0, LSHM_ID=1
(4)RDMA context,CSPM_ID=1
(5)PEA_EXEC CSPM_ID=1, LSHM_ID=1, LSHM_ID=2
(6)WDMA data,LSHM_ID=2
(7)RDMA context,CSPM_ID=0
(8)RDMA data,LSHM_ID=0
(9)PEA_EXEC CSPM_ID=0, LSHM_ID=0, LSHM_ID=1
(10) WDMA data,LSHM_ID=1
步骤S104,获取同步表。
在本步骤中,指令同步控制模块根据各指令存储同步ID表中各指令类型的第一内存标识字段one-hot编码和第二内存标识字段one-hot编码获取任一个指令类型与其他两个指令类型的依赖关系标识信息。根据依赖关系标识信息沿一个第一数据维度生成同步表。同步表包括交汇的一个第一数据维度和一个第二数据维度。各指令类型的第一数据维度与各指令类型的存储同步ID表的存储位数相应。
如图3所示,其第一数据维度为“A”所指的方向。第二数据维度为“B”所指的方向。
根据PEA_EXEC计算指令的one-hot编码分别对比WDMA数据存储指令one-hot编码及RDMA数据加载指令one-hot编码后,从第一数据维度“A”的方向,将依赖关系标识信息标识在图3中。例如图3中行A1的“√”代表WDMA数据存储指令中第1位与PEA_EXEC计算指令的对应依赖关系。根据指令行中的指令,存入一个指令和另外两个指令的依赖关系。
例如:将当前指令的CSPM_ID、LSHM_ID信息的one-hot编码与非当前指令所属队列的其余2组队列的Memory Sync ID Table存储同步ID表比较,CSPM_ID、LSHM_ID需要单独比较,只要有1项ID发生冲突,即认为存在冲突关系,将所有存在冲突关系的指令位置标记为1。
例如:如图3所示,同步表中RDMA指令所对应的一维数据维度r0~r7的单元数量与图2中加载RDMA指令的存储同步ID表中的8个单元数量是相对应的。
如图3中所示,RDMA指令与PEA_EXEC计算指令的对应关系是,加载RDMA指令的第3、4位指令依赖于PEA_EXEC计算指令的0位指令。
例如:如图3所示,同步表中WDMA数据存储指令所对应的一维数据维度w0~w7的单元数量与图2中WDMA数据存储指令的存储同步ID表中的8个单元数量是相对应的。
如图3中所示,WDMA数据存储指令与PEA_EXEC计算指令的对应关系是,WDMA数据存储指令的第0位指令依赖于PEA_EXEC计算指令的1位指令,WDMA数据存储指令的第1位指令依赖于PEA_EXEC计算指令的0、1、2位指令。
PEA_EXEC计算指令的0位指令,依赖于RDMA的0、1位。PEA_EXEC计算指令的1位指令,依赖于RDMA的2位,PEA_EXEC计算指令的2位指令,依赖于RDMA的0、1、3、4位。
步骤S105,执行多行运行指令行中的各指令。
本步骤中,沿同步表的第二数据维度,根据各类型指令的依赖关系执行相应指令;各指令类型的第二数据维度的数量与所述指令队列中的指令单元数量相应,指令同步控制模块能够通过同步表在执行相应指令的同时调用对应指令单元中各指令对应的其他指令参数,以执行多行待运行指令行中的各指令。
例如:如图3所示,RDMA数据加载指令的第二数据维度的8个单元数量与图4中指令队列中的RDMA数据加载队列中的8个单元数量一致。PEA_EXEC计算指令的第二数据维度的8个单元数量与图4中指令队列中的PEA_EXEC计算指令队列中的8个单元数量一致。WDMA数据存储指令的第二数据维度的8个单元数量与图4中指令队列中的WDMA数据存储指令加载队列中的8个单元数量一致。
例如:如图3所示,在程序执行时,是根据第二数据维度B向,即列B1的排布方向次序,依次执行。如:当执行到RDMA数据加载指令的第0位时,对应调用RDMA数据加载队列中的第0位的有关调用指令的其他相关数据。当执行到RDMA数据加载指令的第1位时,对应调用RDMA数据加载队列中的第1位的有关调用指令的其他相关数据。从0~7位依次调用。
如图3所示,由于RDMA指令的0、1位不依赖于任何指令,因此,RDMA的0、1执行时不受到任何指令的限制,RDMA的0位执行后,RDMA的0位对应该列中PEA_EXEC计算指令的0、2位指令的依赖消除,RDMA的1位执行后,RDMA的1位对应该列中PEA_EXEC计算指令的0、2位指令的依赖消除。RDMA第0位执行完后,会更新B0列,然后执行RDMA第1位,再更新B1列。
在本发明中指令分发方法的另一种实施方式中,各指令类型的存储同步ID表包括:加载指令的存储同步ID表、计算指令的存储同步ID表和存储指令的存储同步ID表。
指令队列设置为三个指令队列。指令类型分别为加载指令、计算指令和存储指令。加载指令对应加载指令队列、计算指令对应计算指令队列、存储对应存储指令队列。
本发明的可重构处理器中的指令分发方法的又一种实施方式中,存储同步ID表中包括依次设置的8个存储单元。存储单元地址为“0~7”。起始位的单元地址为“0”。
指令队列中的指令单元数量为8位。指令队列中单元地址为“0~7”。指令单元的起始位的单元地址为“0”。指令队列中单元地址“0~7”分别对应控制队列中单元地址“0~7”。
在本发明中指令分发方法的再一种实施方式中,指令集包括:各指令类型包括:加载指令RDMA、计算指令EXEC和存储指令WDMA。
第一内存标识字段的one-hot编码或第二内存标识字段的one-hot编码包括:“0,1,2...”。
加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第一内存库号编码为“0,1,2...”。加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第二内存库号编码为“,1,2...”。
在本发明中指令分发方法的再一种实施方式中,步骤S103中还包括:
判断指令队列的各指令单元是否已满,若是,则返回本步骤,直到指令队列中具有空闲指令单元。若否,则执行步骤S104。
本发明的第二个方面提供了一种可重构处理器中的指令分发系统,可重构处理器包括一个取指令模块、一个指令同步控制模块及一个指令队列模块。取指令模块能够将多行待运行指令分别分发给指令同步控制模块及指令队列模块。
指令同步控制模块控制指令队列模块中的指令执行。待运行指令类型包括在一个指令集中。指令集中包括多个指令类型。
在指令队列模块中设置多个指令队列。指令队列中依次排列设置多个指令单元。一个指令队列对应一个指令类型。
可重构处理器中的指令分发系统包括:一个存储同步ID表设置单元、一个指令提取单元、一个one-hot编码单元、一个生成同步表单元和一个指令执行单元。其中:
存储同步ID表设置单元,其配置为设置各指令类型的存储同步ID表格式。存储同步ID表中包括依次设置的多个存储单元。每个存储单元中设置第一内存标识字段存储位和/或第二内存标识字段存储位。各指令类型对应设定数量的第一内存标识字段和/或第二内存标识字段。
指令提取单元,其配置为依次提取多行待运行指令中各指令的一个第一内存标识字段和一个第二内存标识字段。各指令的指令类型包括在指令集中。
one-hot编码单元,其配置为根据各指令的指令类型所对应的第一内存标识字段和/或第二内存标识字段获取第一内存标识字段的one-hot编码和/或第二内存标识字段的one-hot编码。
将各指令的第一内存标识字段one-hot编码、第二内存标识字段one-hot编码根据多行待运行指令的执行次序存入存储同步ID表。将多行待运行指令中各指令的其他指令参数发送到指令队列模块的指令队列各指令单元中。
生成同步表单元,其配置为指令同步控制模块根据各指令存储同步ID表中各指令类型的第一内存标识字段one-hot编码和第二内存标识字段one-hot编码获取任一个指令类型与其他两个指令类型的依赖关系标识信息。根据依赖关系标识信息沿一个第一数据维度生成同步表。同步表包括交汇的一个第一数据维度和一个第二数据维度。各指令类型的第一数据维度与各指令类型的存储同步ID表的存储位数相应。
指令执行单元,其配置为沿同步表的第二数据维度,根据各类型指令的依赖关系执行相应指令;各指令类型的第二数据维度的数量与指令队列中的指令单元数量相应,指令同步控制模块能够通过同步表在执行相应指令的同时调用对应指令单元中各指令对应的其他指令参数,以执行多行待运行指令行中的各指令。
在本发明中指令分发系统的另一种实施方式中,各指令类型的存储同步ID表包括:加载指令的存储同步ID表、计算指令的存储同步ID表和存储指令的存储同步ID表。
指令队列设置为三个指令队列。指令类型分别为加载指令、计算指令和存储指令。加载指令对应加载指令队列、计算指令对应计算指令队列、存储对应存储指令队列。
在本发明中指令分发系统的又一种实施方式中,存储同步ID表中包括依次设置的8个存储单元。存储单元地址为“0~7”。起始位的单元地址为“0”。
指令队列中的指令单元数量为8位。指令队列中单元地址为“0~7”。指令单元的起始位的单元地址为“0”。指令队列中单元地址“0~7”分别对应控制队列中单元地址“0~7”。
在本发明中指令分发系统的再一种实施方式中,指令集包括:各指令类型包括:加载指令RDMA、计算指令EXEC和存储指令WDMA。
第一内存标识字段的one-hot编码或第二内存标识字段的one-hot编码包括:“0,1,2...”。
加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第一内存库号编码为“0,1,2...”。加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第二内存库号编码为“,1,2...”。
在本发明中指令分发系统的再一种实施方式中,one-hot编码单元中还配置为:判断指令队列的各指令单元是否已满,若是,则返回本单元,直到指令队列中具有空闲指令单元。若否,则执行生成同步表单元。
在本发明的可重构处理器中的指令分发方法另一种实施方式中:
图6所示,指令队列模块203中三组指令队列的深度为8。各指令队列中的指令可分为5种状态:分别为:无指令,指令进入,等待,指令执行,指令退出。队列中的指令状态可参照图6。针对示例情况的几点说明:
2.1、一组队列内部,指令严格按照进入顺序执行。
2.2、每组队列最多可以有1条指令处于执行状态,如有指令处于执行状态,该指令必位于队列中的0地址,如指令b0、指令c0。
2.3、不同队列的指令可以并行执行,如指令b0和指令c0。
2.4、每组队列可以没有任何指令处于执行状态,所有指令处于等待状态;(原因可能是此队列中位于0地址的指令需要等待其它队列的指令执行完成,此类队列间的同步控制由Sync Ctrl指令同步控制模块201实现)。
2.5、只要队列仍有空闲位置,取指模块就可以将指令送入相应队列,如指令c6。
2.6、如果某组队列已满,下一条取出来的指令仍属于此队列,则需要等待队列有空位指令才可进入,同时取指模块暂停取指并阻塞所有后续指令的取出。
2.7、处于执行状态的指令,只要收到相应模块的done信号,即可让执行中的指令完成并退出,如指令a0。
2.8、3组队列中,同一时刻仅允许有1条指令处于退出状态或者1条指令处于进入状态。如果发生冲突,优先指令退出;(图6中的指令队列同时出现指令进入和指令退出状态,仅为示意两种状态,实际电路中不允许出现这样的情况)。
RDMA从外部将数据搬到内部memory的A区域,完成后PEA_EXEC读取memory A区域内的数据进行计算,计算完成后存到B区域,WDMA再从B区域将数据搬到外部。由流程可知,指令间的依赖关系,本质上是对同一存储空间访问的冲突关系。
本发明采用基于Memory Bank ID 存储位ID的同步机制,每条需要访问memory存储器的指令中都包含所访问的memory bank的ID信息,Sync Ctrl指令同步控制模块根据这些信息建立所有进入队列的指令之间的依赖关系,确保指令按照正确的顺序下发执行。
设置有两块memory,CSPM和Local shram。CSPM有2个物理bank,Local shram有32个物理bank。那么本设计中Memory Bank ID 存储位ID就可分为2类:
CSPM_ID(CSPM Bank ID,1bit):表示指令需要用到的CSPM的bank信息。
LSHM_ID(Local shram Bank ID,5bit):表示指令需要用到的Local shram的bank信息。
指令中的Memory Bank ID 存储位ID仅用于建立指令之间执行顺序的依赖关系,并不是与memory的物理bank划分完全对应。例如前一条指令需占用local shram的bank0-2,在指令中用LSHM_ID=0表示,后一条指令如果需要占用local shram的bank2,那么视为其依赖于前一条指令,因此指令中需要令LSHM_ID=0来标识。
假设各队列指令涉及到的Memory Bank ID 存储位ID数量整理如表1所示。
如图2所示,根据指令预译码模块的输出,将每条指令的CSPM_ID和LSHM_ID进行one-hot编码,建立与指令队列对应的Memory Sync ID Table存储同步ID表。因此每当指令队列内容发生变化(指令进入或指令退出),Memory Sync ID Table存储同步ID表也需要作出相应的更新。
建立Memory Sync ID Table存储同步ID表后,每条指令进入指令队列前,必须与其余2组队列的所有未执行指令进行冲突检测(无需与本指令所属队列进行检测,因为一组队列内严格按照进入顺序执行),以建立指令同步关系。指令同步关系仍以一个表格表示,定义为Sync Table同步表。Sync Table同步表的建立按以下步骤进行:
提取该指令的所有Memory Bank ID 存储位,即CSPM_ID、LSHM_ID信息。
将该指令的CSPM_ID、LSHM_ID信息进行one-hot编码,并与非该指令所属队列的其余2组队列的Memory Sync ID Table存储同步ID表进行比较,2类ID需要单独比较,只要有1项ID发生冲突,即认为存在冲突关系,将所有存在冲突关系的指令位置标记为‘1’。
完成上一步后,产生了2组8bit的“01”序列,2组序列被写入Sync Table同步表中的相应位置。这些序列表示该指令与所有指令队列中的非同一队列的指令之间的冲突关系。只有当所有标记为“1”的位置所对应的指令执行完毕后,该条指令才可以被下发。
图4中给出一段指令的示例,以及在指令队列中的指令依赖关系(黑色箭头表示)。注意,在指令依赖关系图中,省略了部分可以被优化的依赖关系箭头,在下面的Sync Table同步表的说明中会有所体现。
(1)RDMA context,CSPM_ID=0
(2)RDMA data,LSHM_ID=0
(3)PEA_EXEC CSPM_ID=0, LSHM_ID=0, LSHM_ID=1
(4)RDMA context,CSPM_ID=1
(5)PEA_EXEC CSPM_ID=1, LSHM_ID=1, LSHM_ID=2
(6)WDMA data,LSHM_ID=2
(7)RDMA context,CSPM_ID=0
(8)RDMA data,LSHM_ID=0
(9)PEA_EXEC CSPM_ID=0, LSHM_ID=0, LSHM_ID=1
(10)WDMA data,LSHM_ID=1
如图3所示,根据上述指令示例,示意出各指令依赖关系在Sync Table同步表中的呈现形式。几点说明如下:
3.1、每个“√”表示其所在位置的横纵坐标指令之间的依赖关系,以坐标为(PEA-2,RDMA-0)的“√”为例,其表示含义为,指令PEA-2依赖于指令RDMA-0,即RDMA-0执行完毕才可以下发PEA-2。
3.2、指令依赖关系允许一对多和多对一,例如:PEA-0依赖于RDMA-0和RDMA-1,WDMA-0和WDMA-1均依赖于PEA-1。
3.3、指令队列中的指令允许下发的条件为:指令位于所属队列的读指针所处位置,且不依赖于其他队列的任何指令(在Sync Table同步表中的对应行无“√”)。
3.4、每当一条指令进入队列时,除了指令队列需要更新,指令Sync Table同步表也需要同时更新。假设示例中的第10条指令进入队列,Sync Table同步表需要根据依赖关系更新图中的A1框中所示行。
每当一条指令执行完毕退出队列时,除了指令队列需要更新,指令Sync Table同步表也需要同时更新。假设示例中的第2条指令执行完毕,Sync Table同步表需要将图中B1框中所示列中的“√”全部清除,以表示受该条指令约束的所有依赖关系解除。
应当理解,虽然本说明书是按照各个实施方式中描述的,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (10)
1.一种可重构处理器中的指令分发方法,其特征在于,所述可重构处理器包括一个取指令模块、一个指令同步控制模块及一个指令队列模块;所述取指令模块能够将多行待运行指令分别分发给所述指令同步控制模块及所述指令队列模块;
所述指令同步控制模块控制所述指令队列模块中的指令执行;所述待运行指令的类型包括在一个指令集中;所述指令集中包括多个指令类型;
在所述指令队列模块中设置多个指令队列;所述指令队列中依次排列设置多个指令单元;一个指令队列对应一个指令类型;
所述可重构处理器中的指令分发方法包括:
步骤S101,设置各指令类型的存储同步ID表格式;存储同步ID表中包括依次设置的多个存储单元;每个存储单元中设置第一内存标识字段存储位和/或第二内存标识字段存储位;各指令类型对应设定数量的第一内存标识字段和/或第二内存标识字段;
步骤S102,依次提取多行待运行指令中各指令的一个第一内存标识字段和一个第二内存标识字段;所述各指令的指令类型包括在所述指令集中;
步骤S103,根据各指令的指令类型所对应的第一内存标识字段和/或第二内存标识字段获取第一内存标识字段的one-hot编码和/或第二内存标识字段的one-hot编码;
将所述各指令的第一内存标识字段one-hot编码、第二内存标识字段one-hot编码根据所述多行待运行指令的执行次序存入所述存储同步ID表;将所述多行待运行指令中各指令的其他指令参数发送到所述指令队列模块的指令队列各指令单元中;
步骤S104,所述指令同步控制模块根据各指令所述存储同步ID表中各指令类型的第一内存标识字段one-hot编码和所述第二内存标识字段one-hot编码获取任一个指令类型与其他两个指令类型的依赖关系标识信息;根据所述依赖关系标识信息沿一个第一数据维度生成同步表;所述同步表包括交汇的一个第一数据维度和一个第二数据维度;所述各指令类型的第一数据维度与各指令类型的存储同步ID表的存储位数相应;
步骤S105,沿所述同步表的第二数据维度,根据各类型指令的依赖关系执行相应指令;所述各指令类型的第二数据维度的数量与所述指令队列中的指令单元数量相应,所述指令同步控制模块能够通过所述同步表在执行相应指令的同时调用对应指令单元中各指令对应的其他指令参数,以执行多行待运行指令行中的各指令。
2.根据权利要求1所述的指令分发方法,其特征在于,所述各指令类型的存储同步ID表包括:加载指令的存储同步ID表、计算指令的存储同步ID表和存储指令的存储同步ID表;
所述指令队列设置为三个指令队列;所述指令类型分别为加载指令、计算指令和存储指令;所述加载指令对应加载指令队列、所述计算指令对应计算指令队列、所述存储对应存储指令队列。
3.根据权利要求1或2所述的指令分发方法,其特征在于,所述存储同步ID表中包括依次设置的8个存储单元;所述存储单元地址为“0~7”;起始位的单元地址为“0”;
所述指令队列中的指令单元数量为8位;所述指令队列中单元地址为“0~7”;所述指令单元的起始位的单元地址为“0”。
4.根据权利要求1所述的指令分发方法,其特征在于,所述各指令类型包括:加载指令RDMA、计算指令EXEC和存储指令WDMA;
所述第一内存标识字段的one-hot编码或所述第二内存标识字段的one-hot编码包括:“0,1,2...”;
所述加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第一内存库号编码为“0,1,2...”;所述加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第二内存库号编码为“,1,2...”。
5.根据权利要求1所述的指令分发方法,其特征在于,所述步骤S103中还包括:
判断所述指令队列的各指令单元是否已满,若是,则返回本步骤,直到所述指令队列中具有空闲指令单元;若否,则执行步骤S104。
6.一种可重构处理器中的指令分发系统,其特征在于,所述可重构处理器包括一个取指令模块、一个指令同步控制模块及一个指令队列模块;所述取指令模块能够将多行待运行指令分别分发给所述指令同步控制模块及所述指令队列模块;
所述指令同步控制模块控制所述指令队列模块中的指令执行;所述待运行指令的类型包括在一个指令集中;所述指令集中包括多个指令类型;
在所述指令队列模块中设置多个指令队列;所述指令队列中依次排列设置多个指令单元;一个指令队列对应一个指令类型;
所述可重构处理器中的指令分发系统包括:一个存储同步ID表设置单元、一个指令提取单元、一个one-hot编码单元、一个生成同步表单元和一个指令执行单元;其中:存储同步ID表设置单元,其配置为设置各指令类型的存储同步ID表格式;存储同步ID表中包括依次设置的多个存储单元;每个存储单元中设置第一内存标识字段存储位和/或第二内存标识字段存储位;各指令类型对应设定数量的第一内存标识字段和/或第二内存标识字段;
指令提取单元,其配置为依次提取多行待运行指令中各指令的一个第一内存标识字段和一个第二内存标识字段;所述各指令的指令类型包括在所述指令集中;
one-hot编码单元,其配置为根据各指令的指令类型所对应的第一内存标识字段和/或第二内存标识字段获取第一内存标识字段的one-hot编码和/或第二内存标识字段的one-hot编码;
将所述各指令的第一内存标识字段one-hot编码、第二内存标识字段one-hot编码根据所述多行待运行指令的执行次序存入所述存储同步ID表;将所述多行待运行指令中各指令的其他指令参数发送到所述指令队列模块的指令队列各指令单元中;
生成同步表单元,其配置为所述指令同步控制模块根据各指令所述存储同步ID表中各指令类型的第一内存标识字段one-hot编码和所述第二内存标识字段one-hot编码获取任一个指令类型与其他两个指令类型的依赖关系标识信息;根据所述依赖关系标识信息沿一个第一数据维度生成同步表;所述同步表包括交汇的一个第一数据维度和一个第二数据维度;所述各指令类型的第一数据维度与各指令类型的存储同步ID表的存储位数相应;
指令执行单元,其配置为沿所述同步表的第二数据维度,根据各类型指令的依赖关系执行相应指令;所述各指令类型的第二数据维度的数量与所述指令队列中的指令单元数量相应,所述指令同步控制模块能够通过所述同步表在执行相应指令的同时调用对应指令单元中各指令对应的其他指令参数,以执行多行待运行指令行中的各指令。
7.根据权利要求6所述的指令分发系统,其特征在于,所述各指令类型的存储同步ID表包括:加载指令的存储同步ID表、计算指令的存储同步ID表和存储指令的存储同步ID表;
所述指令队列设置为三个指令队列;所述指令类型分别为加载指令、计算指令和存储指令;所述加载指令对应加载指令队列、所述计算指令对应计算指令队列、所述存储对应存储指令队列。
8.根据权利要求6或7所述的指令分发系统,其特征在于,所述存储同步ID表中包括依次设置的8个存储单元;所述存储单元地址为“0~7”;起始位的单元地址为“0”;
所述指令队列中的指令单元数量为8位;所述指令队列中单元地址为“0~7”;所述指令单元的起始位的单元地址为“0”。
9.根据权利要求8所述的指令分发系统,其特征在于,所述各指令类型包括:加载指令RDMA、计算指令EXEC和存储指令WDMA;
所述第一内存标识字段的one-hot编码或所述第二内存标识字段的one-hot编码包括:“0,1,2...”;
所述加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第一内存库号编码为“0,1,2...”;所述加载指令RDMA、计算指令EXEC或存储指令WDMA的当前第二内存库号编码为“,1,2...”。
10.根据权利要求6所述的指令分发系统,其特征在于,所述one-hot编码单元中还配置为:判断所述指令队列的各指令单元是否已满,若是,则返回本单元,直到所述指令队列中具有空闲指令单元;若否,则执行生成同步表单元。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011539672.1A CN112256632B (zh) | 2020-12-23 | 2020-12-23 | 一种可重构处理器中的指令分发方法及系统 |
PCT/CN2021/092239 WO2022134426A1 (zh) | 2020-12-23 | 2021-05-07 | 可重构处理器中的指令分发方法、系统以及存储介质 |
US17/770,553 US11977894B2 (en) | 2020-12-23 | 2021-05-07 | Method and system for distributing instructions in reconfigurable processor and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011539672.1A CN112256632B (zh) | 2020-12-23 | 2020-12-23 | 一种可重构处理器中的指令分发方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256632A CN112256632A (zh) | 2021-01-22 |
CN112256632B true CN112256632B (zh) | 2021-06-04 |
Family
ID=74225833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011539672.1A Active CN112256632B (zh) | 2020-12-23 | 2020-12-23 | 一种可重构处理器中的指令分发方法及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11977894B2 (zh) |
CN (1) | CN112256632B (zh) |
WO (1) | WO2022134426A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256632B (zh) * | 2020-12-23 | 2021-06-04 | 北京清微智能科技有限公司 | 一种可重构处理器中的指令分发方法及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016540A (en) * | 1997-01-08 | 2000-01-18 | Intel Corporation | Method and apparatus for scheduling instructions in waves |
US7007271B2 (en) * | 2002-04-18 | 2006-02-28 | Sun Microsystems, Inc. | Method and apparatus for integrated instruction scheduling and register allocation in a postoptimizer |
US10235180B2 (en) * | 2012-12-21 | 2019-03-19 | Intel Corporation | Scheduler implementing dependency matrix having restricted entries |
CN105487838B (zh) * | 2015-11-23 | 2018-01-26 | 上海交通大学 | 一种动态可重构处理器的任务级并行调度方法与系统 |
US10754687B2 (en) * | 2018-06-12 | 2020-08-25 | Arm Limited | Scheduling in a data processing apparatus |
CN111897580B (zh) * | 2020-09-29 | 2021-01-12 | 北京清微智能科技有限公司 | 一种可重构阵列处理器的指令调度系统及方法 |
CN112256632B (zh) * | 2020-12-23 | 2021-06-04 | 北京清微智能科技有限公司 | 一种可重构处理器中的指令分发方法及系统 |
-
2020
- 2020-12-23 CN CN202011539672.1A patent/CN112256632B/zh active Active
-
2021
- 2021-05-07 WO PCT/CN2021/092239 patent/WO2022134426A1/zh active Application Filing
- 2021-05-07 US US17/770,553 patent/US11977894B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2022134426A1 (zh) | 2022-06-30 |
US11977894B2 (en) | 2024-05-07 |
US20230068463A1 (en) | 2023-03-02 |
CN112256632A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9727338B2 (en) | System and method for translating program functions for correct handling of local-scope variables and computing system incorporating the same | |
US8225076B1 (en) | Scoreboard having size indicators for tracking sequential destination register usage in a multi-threaded processor | |
US9274904B2 (en) | Software only inter-compute unit redundant multithreading for GPUs | |
CN117724763A (zh) | 用于矩阵操作加速器的指令的装置、方法和系统 | |
CN110888727A (zh) | 并发无锁队列实现方法、装置及存储介质 | |
CN103988174A (zh) | 无需额外寄存器执行寄存器重命名的数据处理设备和方法 | |
JP2018194939A (ja) | 情報処理装置、メモリ制御装置および情報処理装置の制御方法 | |
CN112256632B (zh) | 一种可重构处理器中的指令分发方法及系统 | |
US6175910B1 (en) | Speculative instructions exection in VLIW processors | |
EP0144249A2 (en) | Buffer storage system | |
US6266747B1 (en) | Method for writing data into data storage units | |
CN115640047A (zh) | 指令操作方法及装置、电子装置及存储介质 | |
CN110515659B (zh) | 一种原子指令的执行方法和装置 | |
CN103988462A (zh) | 用于执行寄存器重命名的寄存器重命名数据处理装置和方法 | |
CN112463218B (zh) | 指令发射控制方法及电路、数据处理方法及电路 | |
CN115525343A (zh) | 一种并行译码的方法、处理器、芯片及电子设备 | |
CN114489791B (zh) | 处理器装置及其指令执行方法、计算设备 | |
CN114047954A (zh) | 一种基于寄存器的数据处理方法及装置 | |
US20060101240A1 (en) | Digital signal processing circuit and digital signal processing method | |
US11822541B2 (en) | Techniques for storing sub-alignment data when accelerating Smith-Waterman sequence alignments | |
CN112445661B (zh) | 并行访存汇编程序自动生成系统和存储一致性测试方法 | |
CN116048531B (zh) | 指令编译方法及图形处理装置、存储介质、终端设备 | |
CN116185940B (zh) | 一种原子计数器的操作方法、装置、设备及存储介质 | |
CN117093268B (zh) | 一种向量处理方法、系统、设备及存储介质 | |
US11550584B1 (en) | Implementing specialized instructions for accelerating Smith-Waterman sequence alignments |
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 |