CN106445466B - 超长指令字指令集的指令处理方法及装置 - Google Patents
超长指令字指令集的指令处理方法及装置 Download PDFInfo
- Publication number
- CN106445466B CN106445466B CN201510496662.7A CN201510496662A CN106445466B CN 106445466 B CN106445466 B CN 106445466B CN 201510496662 A CN201510496662 A CN 201510496662A CN 106445466 B CN106445466 B CN 106445466B
- Authority
- CN
- China
- Prior art keywords
- instruction
- line
- instructions
- memory
- stored
- 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
- 238000003672 processing method Methods 0.000 title abstract description 7
- 238000000034 method Methods 0.000 claims description 25
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明实施例公开了一种超长指令字指令集的指令处理方法,包括:确定非连续地址取指操作的目的指令行;根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行;根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行。本发明实施例同时还公开了一种超长指令字指令集的指令处理装置。
Description
技术领域
本发明涉及超长指令字(Very Long Instruction Word,VLIW)指令集领域,尤其涉及一种超长指令字指令集的指令处理方法及装置。
背景技术
VLIW指令集处理器有多流水线、每个时钟周期发射指令条数可变的特点。VLIW指令集处理器在进行指令预取时,每次从存储器的存储空间中取一个整行的指令放到指令缓存区;当出现非连续地址取指操作(循环跳转操作)时,VLIW指令集处理器先清空指令缓存区,再重新到存储器中取指令放到指令缓存区。
因每个时钟周期发射指令条数可变的原因,同一时钟周期的指令可能会被分别保存到存储器中的相邻的两行存储空间中;如果指令缓存区的各个指令能拼成一个时钟周期要发射的完整的指令,这些指令会被发射到相应流水线上执行;如果在指令缓存区中的各个指令不能拼成一个时钟周期要发射的完整的指令,则需要等待从存储器中再取得下一行指令并保存到指令缓存区,这样,就会产生一个没有指令发射的时间周期,也就是空发射,空发射会降低VLIW指令集处理器的执行效率。
发明内容
有鉴于此,本发明实施例期望提供一种超长指令字指令集的指令处理方法及装置,以避免空发射的出现,提高VLIW指令集处理器的执行效率。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供一种超长指令字指令集的指令处理方法,所述方法包括:
确定非连续地址取指操作的目的指令行;
根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行;
根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行。
上述方法中,所述根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行,包括:
通过h与所述An进行比对,如果所述h小于所述An,则确定所述An个指令存储在所述存储器的不同行;
其中,所述h为第一参数、h=i-((addrn-1+An-1)&(i-1)),所述i为所述存储器每行固定存储的指令数量,所述目的指令行为n行,所述n行为大于等于2的正整数,所述An为所述n行对应的指令数量,所述n行的前一指令行为n-1行,所述An-1为所述n-1行对应的指令数量,所述addrn-1为所述n-1行的起始指令在所述存储器中的起始地址,所述&为与运算。
上述方法中,所述方法还包括:
如果所述h大于等于所述An,则确定所述An个指令存储在所述存储器同一行。
上述方法中,所述根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,包括:
通过k与j进行对比,如果所述k大于所述j,则向所述n-1行插入所述h个空操作指令;
其中,所述k为第二参数、k=h+An-1,所述指令行的最大指令数量为j个。
上述方法中,所述方法还包括:
如果所述k小于等于所述j,则向所述n-1行插入l个空操作指令,剩余的y个空操作指令插入所述n-1行之前的指令行中;
其中,所述k为第二参数、k=h+An-1,所述l=j-An-1,所述y=h-l。
本发明还一种超长指令字指令集的指令处理装置,所述装置包括:
确定模块,用于确定非连续地址取指操作的目的指令行;
第一处理模块,用于根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行;
第二处理模块,用于根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行。
上述装置中,所述第一处理模块,具体用于通过h与所述An进行比对,如果所述h小于所述An,则确定所述An个指令存储在所述存储器的不同行;
其中,所述h为第一参数、h=i-((addrn-1+An-1)&(i-1)),所述i为所述存储器每行固定存储的指令数量,所述目的指令行为n行,所述n行为大于等于2的正整数,所述An为所述n行对应的指令数量,所述n行的前一指令行为n-1行,所述An-1为所述n-1行对应的指令数量,所述addrn-1为所述n-1行的起始指令在所述存储器中的起始地址,所述&为与运算。
上述装置中,所述第一处理模块,还具体用于如果所述h大于等于所述An,则确定所述An个指令存储在所述存储器同一行。
上述装置中,所述第二处理模块,具体用于通过k与j进行对比,如果所述k大于所述j,则向所述n-1行插入所述h个空操作指令;
其中,所述k为第二参数、k=h+An-1,所述指令行的最大指令数量为j个。
上述装置中,所述第二处理模块,还具体用于如果所述k小于等于所述j,则向所述n-1行插入l个空操作指令,剩余的y个空操作指令插入所述n-1行之前的指令行中;
其中,所述k为第二参数、k=h+An-1,所述l=j-An-1,所述y=h-l。
本发明实施例提供的超长指令字指令集的指令处理方法及装置,VLIW指令集的指令处理装置在汇编代码中找到并确定非连续地址取指操作的目的指令行以及该行中存在指令的数量,进一步的,还可以找到并确定非连续地址取指操作的目的指令行之前的指令行以及相应行中存在指令的数量、起始指令在存储器中的起始地址;接着,VLIW指令集的指令处理装置根据第一预设规则来判断确定非连续地址取指操作的目的指令行的所有指令是否存储在存储器的同一行,如果存储在所述存储器同一行,则结束处理流程;如果存储在所述存储器的不同行,则VLIW指令集的指令处理装置根据第二预设规则,向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行;如此,使得VLIW指令集处理器需要得到非连续地址取指操作的目的指令行的全部指令只需一个时钟周期就能取到,从而能够拼凑成完整的指令,避免了空发射时钟周期的出现,提高了VLIW指令集处理器的执行效率,也避免了功耗的无谓损失。
附图说明
图1为本发明超长指令字指令集的指令处理方法实施例一的流程图;
图2为本发明超长指令字指令集的指令处理方法实施例二的流程图;
图3为本发明超长指令字指令集的指令处理方法实施例二的插入空操作指令前的汇编代码指令在存储空间的示意图;
图4为本发明超长指令字指令集的指令处理方法实施例二的插入空操作指令后的汇编代码指令在存储空间的示意图;
图5为本发明超长指令字指令集的指令处理装置实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明超长指令字指令集的指令处理方法实施例一的流程图,如图1所示,本方法可以包括:
步骤101、确定非连续地址取指操作的目的指令行。
在编译阶段,VLIW指令集的指令处理装置利用编译器扫描汇编代码,找到并确定非连续地址取指操作的目的指令行以及该行中存在指令的数量,可以将非连续地址取指操作的目的指令行定义为n行,n行中指令的数量定义为An个,其中,所述n为大于等于2的正整数。
如上所示的汇编代码,这里给出的汇编代码表示一个循环跳转,当汇编代码运行到第4行“goto LABEL”,指令会跳转回第1行与第2行中间的“LABEL”,重新执行第2行指令,这样就是一个非连续地址取指操作,第2行为非连续地址取指操作的目的指令行;其中,Inst表示指令,每个指令在存储器中需要一个单元来保存。
进一步的,VLIW指令集的指令处理装置还可以找到并确定非连续地址取指操作的目的指令行之前的指令行以及相应行中存在指令的数量、起始指令在存储器中的起始地址,可以将非连续地址取指操作的目的指令行的前一行指令行定义为n-1行、n-1行中指令的数量定义为An-1、n-1行的起始指令在存储器中的起始地址定义为addrn-1;将非连续地址取指操作的目的指令行的前两行指令行定义为n-2行、n-2行中指令的数量定义为An-2,以此类推。
步骤102、根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行。
这里,可由VLIW指令集的指令处理装置根据第一预设规则来判断确定非连续地址取指操作的目的指令行的所有指令是否存储在存储器的同一行,其中,第一预设规则可以是第一参数与非连续地址取指操作的目的指令行的指令数量进行判断对比的规则。
具体的,根据第一预设规则处理操作如下:
通过h与所述An进行比对,如果所述h小于所述An,则确定所述An个指令存储在所述存储器的不同行,继续执行步骤103;如果所述h大于等于所述An,则确定所述An个指令存储在所述存储器同一行,结束处理流程;其中,所述h为第一参数、h=i-((addrn-1+An-1)&(i-1)),所述i为所述存储器每行固定存储的指令数量,所述&为与运算。
步骤103、根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令。
本步骤中,在确定所述An个指令存储在所述存储器的不同行后,VLIW指令集的指令处理装置根据第二预设规则,向所述目的指令行之前的指令行插入至少一个空操作指令;即根据第二预设规则可以确定向所述目的指令行之前的哪些指令行插入多少个空操作指令,其中,第二预设规则可以是第二参数与汇编代码中一个指令行的最大指令数量进行判断对比的规则。
具体的,根据第二预设规则处理操作如下:
通过k与所述j进行对比,如果所述k大于所述j,则向所述n-1行插入所述h个空操作指令;如果所述k小于等于所述j,则向所述n-1行插入l个空操作指令,剩余的y个空操作指令插入所述n-1行之前的指令行中,这里需要说明的是,在插入空操作指令后的指令行中的指令个数要小于等于指令行的最大指令数j,如果剩余的y个空操作指令在插入n-2行后还有剩余z个,那么就将剩余的z个插入n-3行中,以此类推,直至空操作指令全部被插入到目的指令行n之前的指令行中为止;其中,所述k为第二参数、k=h+An-1,所述h=i-((addrn-1+An-1)&(i-1)),所述l=j-An-1,所述j为一个指令行的最大指令数量,所述y=h-l。
步骤104、使所述目的指令行的指令存储在所述存储器的同一行。
这里,VLIW指令集的指令处理装置在完成上述对各指令行的判断和插入空操作指令后,就能够确保非连续地址取指操作的目的指令行的所有指令保存在存储器中的同一行,VLIW指令集处理器要得到非连续地址取指操作的目的指令行的全部指令只需一个时钟周期就能取到,能够拼凑成完整的指令,避免了空发射的时钟周期的出现,提高了VLIW指令集处理器的执行效率,也避免了功耗的无谓损失。
为了更加体现出本发明的目的,在上述实施例的基础上,进一步的举例说明。
图2为本发明超长指令字指令集的指令处理方法实施例二的流程图,图3为本发明超长指令字指令集的指令处理方法实施例二的插入空操作指令前的汇编代码指令在存储空间的示意图,图4为本发明超长指令字指令集的指令处理方法实施例二的插入空操作指令后的汇编代码指令在存储空间的示意图,如图2所示,本方法包括:
步骤201、确定非连续地址取指操作的目的指令行。
如下面的汇编代码所示:
这里给出的汇编代码表示一个循环跳转,当汇编代码运行到第4行“goto LABEL”,指令会跳转回第1行与第2行中间的“LABEL”,重新执行第2行指令,这样就是一个非连续地址取指操作,第2行为非连续地址取指操作的目的指令行;VLIW指令集的指令处理装置会先清空指令缓存区,然后再重新从存储器中取第2行指令“Inst2_0”和“Inst2_1”。
如图3所示,因为第2行的指令“Inst2_0”和“Inst2_1”分别被保存在存储器的不同行,“Inst2_0”被保存在0x00行,“Inst2_1”被保存在0x04行,所以在一个时钟周期内只能取到0x00行中的“Inst2_0”,而0x04行中的“Inst2_1”只能等到下一个时钟周期才能取到;因而在第一个时钟周期内没有能够拼凑成完整的指令,就会出现空发射的时钟周期。
在编译阶段,VLIW指令集的指令处理装置利用编译器扫描汇编代码,检查到第4行的“goto LABEL”指令,根据“goto LABEL”指令找到并确定第2行为非连续地址取指操作的目的指令行以及该行中存在指令的数量为2个。
另外,还可以确定第2行之前的第1行中的指令的数量为3个、第1行的起始指令在存储器中的起始地址为0x00行第0位,存储器中每行固定存储的指令数量为4个,汇编代码中一个指令行的最大指令数量为4个。
步骤202、通过第一参数与第2行中存在指令的数量进行比对,判断第2行的所有指令是否存储在存储器的不同行。
如果第一参数大于等于2,则执行步骤203;如果第一参数小于2,则执行步骤204。
具体的,第一参数通过上述获取到的数据进行计算,得到第一参数的值为4-((0+3)&(4-1))=1。
1与2进行对比,1小于2,所以执行步骤204。
步骤203、确定第2行的2个指令存储在存储器的同一行,结束处理流程。
步骤204、确定第2行的2个指令存储在存储器的不同行。
步骤205、通过第二参数与汇编代码中一个指令行的最大指令数量进行比对,确定向第2行插入至少一个空操作指令。
具体的,通过上述获取到的数据对第二参数及插入的空操作指令的数量进行计算,得到第二参数的值为1+4=5、插入的空操作指令的数量为4-((0+3)&(4-1))=1;
5大于4,所以向第2行插入1个空操作指令“NOP”。
插入1个空操作指令“NOP”后的汇编代码如下所示:
步骤206、使第2行的指令存储在所述存储器的同一行。
如图4所示,在插入1个空操作指令“NOP”后的指令的存储空间,这样就可以使第2行的指令“Inst2_0”和“Inst2_1”保存到存储器的同一行0x04行中,VLIW指令集处理器要得到第2行的全部指令只需一个时钟周期就能取到,能够拼凑成完整的指令,避免了空发射的时钟周期的出现,提高了VLIW指令集处理器的执行效率,也避免了功耗的无谓损失。
图5为本发明超长指令字指令集的指令处理装置实施例的结构示意图,如图5所示,超长指令字指令集的指令处理装置05可以包括:确定模块51、第一处理模块52、第二处理模块53;其中,
所述确定模块51,用于确定非连续地址取指操作的目的指令行;
所述第一处理模块52,用于根据第一预设规则,确定所述目的指令行的指令存储在存储器的不同行;
所述第二处理模块53,用于根据第二预设规则,向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行。
进一步的,所述第一处理模块52,具体用于通过h与所述An进行比对,如果所述h小于所述An,则确定所述An个指令存储在所述存储器的不同行;
其中,所述h为第一参数、h=i-((addrn-1+An-1)&(i-1)),所述i为所述存储器每行固定存储的指令数量,所述目的指令行为n行,所述n行为大于等于2的正整数,所述An为所述n行对应的指令数量,所述n行的前一指令行为n-1行,所述An-1为所述n-1行对应的指令数量,所述addrn-1为所述n-1行的起始指令在所述存储器中的起始地址,所述&为与运算。
进一步的,所述第一处理模块52,还具体用于如果所述h大于等于所述An,则确定所述An个指令存储在所述存储器同一行。
进一步的,所述第二处理模块53,具体用于通过k与j进行对比,如果所述k大于所述j,则向所述n-1行插入所述h个空操作指令;
其中,所述k为第二参数、k=h+An-1,所述指令行的最大指令数量为j个。
进一步的,所述第二处理模块53,还具体用于如果所述k小于等于所述j,则向所述n-1行插入l个空操作指令,剩余的y个空操作指令插入所述n-1行之前的指令行中;
其中,所述k为第二参数、k=h+An-1,所述l=j-An-1,所述y=h-l。
本实施例的装置,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在实际应用中,所述确定模块51、第一处理模块52、第二处理模块53可由位于终端上的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等器件实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1.一种超长指令字指令集的指令处理方法,其特征在于,所述方法包括:
确定非连续地址取指操作的目的指令行;
根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行;
根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行。
2.根据权利要求1所述的方法,其特征在于,所述根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行,包括:
通过h与An进行比对,如果所述h小于所述An,则确定所述An个指令存储在所述存储器的不同行;
其中,所述h为第一参数、h=i-((addrn-1+An-1)&(i-1)),所述i为所述存储器每行固定存储的指令数量,所述目的指令行为n行,所述n行为大于等于2的正整数,所述An为所述n行对应的指令数量,所述n行的前一指令行为n-1行,所述An-1为所述n-1行对应的指令数量,所述addrn-1为所述n-1行的起始指令在所述存储器中的起始地址,所述&为与运算。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果所述h大于等于所述An,则确定所述An个指令存储在所述存储器同一行。
4.根据权利要求2所述的方法,其特征在于,所述根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,包括:
通过k与j进行对比,如果所述k大于所述j,则向所述n-1行插入所述h个空操作指令;
其中,所述k为第二参数、k=h+An-1,所述指令行的最大指令数量为j个。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
如果所述k小于等于所述j,则向所述n-1行插入l个空操作指令,剩余的y个空操作指令插入所述n-1行之前的指令行中;
其中,所述k为第二参数、k=h+An-1,所述l=j-An-1,所述y=h-l。
6.一种超长指令字指令集的指令处理装置,其特征在于,所述装置包括:
确定模块,用于确定非连续地址取指操作的目的指令行;
第一处理模块,用于根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行;
第二处理模块,用于根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行。
7.根据权利要求6所述的装置,其特征在于,所述第一处理模块,具体用于通过h与An进行比对,如果所述h小于所述An,则确定所述An个指令存储在所述存储器的不同行;
其中,所述h为第一参数、h=i-((addrn-1+An-1)&(i-1)),所述i为所述存储器每行固定存储的指令数量,所述目的指令行为n行,所述n行为大于等于2的正整数,所述An为所述n行对应的指令数量,所述n行的前一指令行为n-1行,所述An-1为所述n-1行对应的指令数量,所述addrn-1为所述n-1行的起始指令在所述存储器中的起始地址,所述&为与运算。
8.根据权利要求7所述的装置,其特征在于,所述第一处理模块,还具体用于如果所述h大于等于所述An,则确定所述An个指令存储在所述存储器同一行。
9.根据权利要求7所述的装置,其特征在于,所述第二处理模块,具体用于通过k与j进行对比,如果所述k大于所述j,则向所述n-1行插入所述h个空操作指令;
其中,所述k为第二参数、k=h+An-1,所述指令行的最大指令数量为j个。
10.根据权利要求9所述的装置,其特征在于,所述第二处理模块,还具体用于如果所述k小于等于所述j,则向所述n-1行插入l个空操作指令,剩余的y个空操作指令插入所述n-1行之前的指令行中;
其中,所述k为第二参数、k=h+An-1,所述l=j-An-1,所述y=h-l。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510496662.7A CN106445466B (zh) | 2015-08-13 | 2015-08-13 | 超长指令字指令集的指令处理方法及装置 |
PCT/CN2016/076933 WO2017024798A1 (zh) | 2015-08-13 | 2016-03-21 | 超长指令字指令集的指令处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510496662.7A CN106445466B (zh) | 2015-08-13 | 2015-08-13 | 超长指令字指令集的指令处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106445466A CN106445466A (zh) | 2017-02-22 |
CN106445466B true CN106445466B (zh) | 2019-07-09 |
Family
ID=57982992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510496662.7A Active CN106445466B (zh) | 2015-08-13 | 2015-08-13 | 超长指令字指令集的指令处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106445466B (zh) |
WO (1) | WO2017024798A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124416B (zh) * | 2019-12-09 | 2024-02-13 | 龙芯中科(合肥)技术有限公司 | 向内联汇编传递参数的方法、装置、设备以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112299A (en) * | 1997-12-31 | 2000-08-29 | International Business Machines Corporation | Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching |
CN101467128A (zh) * | 2006-06-15 | 2009-06-24 | 日本电气株式会社 | 处理器和指令控制方法 |
CN102855120A (zh) * | 2012-09-14 | 2013-01-02 | 北京中科晶上科技有限公司 | 超长指令字vliw的处理器和处理方法 |
CN103116485A (zh) * | 2013-01-30 | 2013-05-22 | 西安电子科技大学 | 一种基于超长指令字专用指令集处理器的汇编器设计方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100343798C (zh) * | 2002-08-05 | 2007-10-17 | Nxp股份有限公司 | 用于处理vliw指令的处理器和方法 |
US8069335B2 (en) * | 2005-11-15 | 2011-11-29 | Nxp B.V. | Processing system and method for executing instructions |
CN104541243A (zh) * | 2013-07-30 | 2015-04-22 | 华为技术有限公司 | 指令的跳转处理方法和装置 |
-
2015
- 2015-08-13 CN CN201510496662.7A patent/CN106445466B/zh active Active
-
2016
- 2016-03-21 WO PCT/CN2016/076933 patent/WO2017024798A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112299A (en) * | 1997-12-31 | 2000-08-29 | International Business Machines Corporation | Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching |
CN101467128A (zh) * | 2006-06-15 | 2009-06-24 | 日本电气株式会社 | 处理器和指令控制方法 |
CN102855120A (zh) * | 2012-09-14 | 2013-01-02 | 北京中科晶上科技有限公司 | 超长指令字vliw的处理器和处理方法 |
CN103116485A (zh) * | 2013-01-30 | 2013-05-22 | 西安电子科技大学 | 一种基于超长指令字专用指令集处理器的汇编器设计方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017024798A1 (zh) | 2017-02-16 |
CN106445466A (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9965274B2 (en) | Computer processor employing bypass network using result tags for routing result operands | |
US9639371B2 (en) | Solution to divergent branches in a SIMD core using hardware pointers | |
US20150149744A1 (en) | Data processing apparatus and method for performing vector processing | |
KR102379894B1 (ko) | 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법 | |
KR20100132032A (ko) | 실행되는 명령의 결과를 선택적으로 커밋하는 시스템 및 방법 | |
CN102067087A (zh) | 环路控制系统及方法 | |
CN107450888A (zh) | 嵌入式数字信号处理器中的零开销循环 | |
EP2951682B1 (en) | Hardware and software solutions to divergent branches in a parallel pipeline | |
KR101624777B1 (ko) | 효율적인 벡터 롤링 연산 장치 및 방법 | |
WO2015017129A4 (en) | Multi-threaded gpu pipeline | |
WO2020181670A1 (en) | Control flow optimization in graphics processing unit | |
US20130067196A1 (en) | Vectorization of machine level scalar instructions in a computer program during execution of the computer program | |
CN106445466B (zh) | 超长指令字指令集的指令处理方法及装置 | |
JP4420055B2 (ja) | マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 | |
US8490098B2 (en) | Concomitance scheduling commensal threads in a multi-threading computer system | |
KR102379886B1 (ko) | 벡터 명령 처리 | |
KR102688577B1 (ko) | 전자 장치, vliw 프로세서 및 그 제어 방법들 | |
US8307195B2 (en) | Information processing device and method of controlling instruction fetch | |
JP2007257349A (ja) | プロセッサ及びその処理方法 | |
CN105094750B (zh) | 一种多线程处理器的返回地址预测方法和装置 | |
CN1860436A (zh) | 用于处理指令循环的方法和系统 | |
US7644256B2 (en) | Method in pipelined data processing | |
CN113946540B (zh) | 一种dsp处理器及其判断跳转指令的处理方法 | |
TWI509509B (zh) | 資料儲存方法與應用其之處理器 | |
US12032966B2 (en) | Reducing overhead in processor array searching |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |