CN102768623A - 一种vliw流水线的发射方法和装置 - Google Patents
一种vliw流水线的发射方法和装置 Download PDFInfo
- Publication number
- CN102768623A CN102768623A CN2011101166674A CN201110116667A CN102768623A CN 102768623 A CN102768623 A CN 102768623A CN 2011101166674 A CN2011101166674 A CN 2011101166674A CN 201110116667 A CN201110116667 A CN 201110116667A CN 102768623 A CN102768623 A CN 102768623A
- Authority
- CN
- China
- Prior art keywords
- microoperation
- vliw
- load
- alu
- store
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000001419 dependent effect Effects 0.000 claims description 21
- 238000010586 diagram Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 230000003442 weekly effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011079 streamline operation Methods 0.000 description 1
Images
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
- 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/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
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)
- Complex Calculations (AREA)
Abstract
本发明公开了一种超长指令字(VLIW)流水线的发射方法和装置,方法包括:将具有数据依赖性的微操作和其所依赖的微操作封装在相同的VLIW指令中;VLIW指令中有依赖性的微操作相对于其所依赖的微操作延迟发射。通过本发明,使得VLIW流水线发射模型的汇编代码的可读性强、代码空间小。
Description
技术领域
本发明涉及处理器的流水线技术,尤其涉及一种超长指令字(VLIW,VeryLong Instruction Word)流水线的发射方法和装置。
背景技术
目前,矢量处理器被广泛运用于数字信号处理,尤其是用在有线无线通讯基带调试。矢量处理器的一个最大特点是,它能每周(即每个时钟周期)对多个独立数据进行并行运算。矢量处理器的另一个特点是,它一般采用超长指令字(VLIW,Very Long Instruction Word)指令。每个VLIW指令中包含多个独立的微操作(Microop,Micro-operation),每个微操作代表了矢量流水线中的一个硬件操作。通过这种VLIW指令,矢量处理器可以每周并行的执行多个微操作。
如图1所示,为现有技术中一个典型的VLIW指令,VLIW指令包含了n个微操作(Microop):Microop 1、Microop 2、...、Microop n,这n个微操作可以采用不同比特宽度来编码。以下举出三个最常见的流水线微操作:
载入(Load)微操作,即从内存提取数据,再将这些数据写入到寄存器文件(Register File)里;
算术和逻辑单元(ALU,Arithmetic and Logic Unit)微操作,即从寄存器文件读取数据,再将这些数据送到ALU里进行运算,运算完之后再将结果写回到寄存器文件里;
存储(Store)微操作,即从寄存器文件中读取数据,再将这些数据写回到内存里。
在一个传统的矢量处理器中,当一个VLIW指令从指令内存里被提取进来时,它首先会在译码(DEC,decoding)阶里进行译码。当译码完成后,该VLIW指令中所包含的多个可并行的微操作一般都是在下一周(或在短期内)并行发射。
图2显示了一个传统VLIW流水线的操作时序图,在该VLIW流水线中只有三个微操作:Load、ALU和Store微操作。其中,VLIW指令在第1和第2阶(F0和F1阶)从指令内存里提取数据;在第3和第4阶(D0和D1阶)完成译码;紧接着,VLIW指令中所包含的三个微操作(Load、ALU和Store)都在第五阶并行发射。其中,Load微操作需要五周来完成,ALU微操作需要六周来完成,Store微操作需要三周来完成,即Load、ALU和Store微操作分别会在第9阶、第10阶、第7阶完成执行。
在这种传统的矢量处理器中,如果有两个微操作之间存在“数据依赖性(data dependency)”或“数据相关性”,有依赖性的微操作必须要等到被依赖的微操作完成运算之后才能开始执行(或才能开始发射)。为了遵守这种数据相关性,硬件通常在流水线中自动加插气泡,但是这种做法通常都会降低流水线的使用率。另一种解决方法是,让编译器将这两个相关的微操作编码进两个不同的VLIW指令里,且这两个VLIW指令之间必须保持一个适当的时间距离,以确保被依赖的微操作完全结束执行后才让有依赖性的微操作开始执行。这个时间距离是按照被依赖微操作的执行时间长短来确定的。
例如,三个有依赖性的微操作Load、Add和Store,其数据相关性描述如下:Add需要Load所读取到的数据,Store又需要Add所得到的结果。因此,Add微操作必须等Load微操作执行完毕之后(数据写入到寄存器文件),才能从寄存器文件中读取数据;Store微操作必须等到Add微操作运算完毕,将结果写回到寄存器文件之后,才能开始执行。即这三个微操作形成一个串联的相关性:Load→Add→Store。
假设Load微操作需要五周时间执行,Add微操作需要六周时间执行,Store微操作需要三周时间执行,那么这三个相关微操作的执行代码是:
1、load a0,v0; //v0=memory[a0];
2、<其他指令组1>; //这些指令将执行4周
3、add v1,v0,v0;//v1=v0+v0;
4、<其他指令组2>; //这些指令将执行5周
5、store a1,v1; //memory[a1]=v1。
在以上举例中,<其他指令组1>将必须执行四周,因此当Add微操作发射时,Load微操作刚好执行完毕;<其他指令组2>将必须执行五周,因此当Store微操作发射时,Add微操作刚好执行完毕。由此可以看出,这三个微操作在编译时的相对排序取决于流水线的架构和设计(即取决于Load和Add微操作的执行延时),当Load和Add微操作的执行延时发生改变时,代码也必须重新编译。
另外,传统的VLIW指令流水线的汇编代码的可读性较差。例如:假设需要执行一连串的Load-Add-Store微操作,按照前述的Load和Add执行延时,汇编代码如下:
1、load a0,v4;add v3,v2,v4;store a1,v3;
2、load a0,v4;add v3,v2,v4;store a1,v3;
3、load a0,v4;add v3,v2,v4;store a1,v3;
4、load a0,v4;add v3,v2,v4;store a1,v3;
5、load a0,v4;add v3,v2,v4;store a1,v3;
6、load a0,v4;add v3,v2,v4;store a1,v3;
7、load a0,v4;add v3,v2,v4;store a1,v3;
8、load a0,v4;add v3,v2,v4;store a1,v3;
9、load a0,v4;add v3,v2,v4;store a1,v3;
10、load a0,v4;add v3,v2,v4;store a1,v3;
11、load a0,v4;add v3,v2,v4;store a1,v3;
12、load a0,v4;add v3,v2,v4;store a1,v3;
13、load a0,v4;add v3,v2,v4;store a1,v3;
在上述代码中,第1行的Load、第6行的Add、第12行的Store形成一连串相关的微操作;第2行的Load、第7行的Add、第13行的Store形成另一连串相关的微操作;等等。类似这种相关微操作在汇编代码里不是很直观,代码的可读性较差。
再有,当程序里需要启用循环体时,这种传统的VLIW指令流水线的汇编代码的代码空间也会比较大。例如,假设需要执行以下矢量加法运算:
A[i]=B[i]+C[i];i=0,...,n-1 (1)
其中,n是矢量A、B、C的长度,即矢量A、B、C的单元数目;
另外,还假设矢量流水线中有m个运算单元,即该流水线每周可以进行m个加法;每个矢量寄存器可以存储m个数据;每个Load指令能从内存里提取m个数据;每个Store指令能往内存写回m个数据;且n能被m整除、即p=n/m。因此,上述矢量加法运算(1)将需要执行2p个Load微操作(提取矢量B和C)、p个Add微操作、p个Store微操作(写回矢量A)。矢量加法运算(1)的代码模型如图3所示。在此代码模型中,a0、a1、a2为地址寄存器,它们分别是用做矢量B、C、A的地址指针;v0、v1、v2为矢量寄存器,它们分别用来保存矢量B、C、A的数据。
由于每个矢量寄存器可存放m个数据,因此代码中,第一行的Load微操作从内存里提取了矢量B的m个数据,加载到矢量寄存器v0;第二行的Load微操作从内存里提取了矢量C的m个数据,加载到矢量寄存器v1;第七行的Add微操作将v0、v1加起来,写入到v2里;第十三行的Store微操作将v2里的m个数据写回到内存里。以上这一连串四个微操作完整的处理了矢量加法(1)中的m个数据,矢量加法(1)总共需要p=n/m个这种操作。
由于Load微操作需要五周来完成,第一行和第二行Load微操作进来的数据必须等到第七行才能执行Add微操作;由于Add微操作需要六周来完成,第七行Add微操作所产生的结果必须等到第十三行才能写回,因此其相对应的Store微操作必须等到第十三行才能开始执行;Store微操作在第十三行出现后,第十二和十三行就可以形成一个循环体;由于在循环体开始执行之前已经执行了三个Add微操作,因此该循环体只需要执行n/m-3次;循环体在执行最后一次折叠时,第十二和十三行的Load微操作读进来的数据必须等到第十七行才能执行Add微操作,而该Add微操作所产生的结果必须等到第二十三行才能执行Store微操作。
由此可以看出,在上述举例中,该传统VLIW流水线需要二十三行的代码才能实现一个矢量加法(1),传统VLIW流水线的发射模型的代码可读性较差,且代码占用空间也较大。
发明内容
有鉴于此,本发明的主要目的在于提供一种VLIW流水线的发射方法和装置,以解决传统的VLIW流水线的发射,其发射模型的汇编代码的可读性差、代码空间大的问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种超长指令字流水线的发射方法,该方法包括:
将具有数据依赖性的微操作和其所依赖的微操作封装在相同的超长指令字(VLIW)指令中;
将所述VLIW指令中有依赖性的微操作相对于其所依赖的微操作延迟发射。
所述有依赖性的微操作相对于其所依赖的微操作延迟发射的时间,是依据其所依赖的微操作的执行延迟来确定。
所述有依赖性的微操作相对于其所依赖的微操作延迟发射的时间,大于或等于其所依赖的微操作执行所需的时钟周期。
所述具有数据依赖性的微操作包括:载入(Load)微操作、算术和逻辑单元(ALU)微操作和存储(Store)微操作,
其中,所述ALU微操作依赖于所述Load微操作,所述Store微操作依赖于所述ALU微操作。
所述VLIW指令中的ALU微操作相对于Load微操作延迟发射,所述VLIW指令中的Store微操作相对于ALU微操作延迟发射。
本发明还提供了一种超长指令字流水线的发射装置,该装置包括:VLIW指令封装模块和发射模块,其中,
所述VLIW指令封装模块,用于将具有数据依赖性的微操作和其所依赖的微操作封装在相同的VLIW指令中;
所述发射模块,用于将所述VLIW指令中有依赖性的微操作相对于其所依赖的微操作延迟发射。
所述有依赖性的微操作相对于其所依赖的微操作延迟发射的时间,是依据其所依赖的微操作的执行延迟来确定。
所述有依赖性的微操作相对于其所依赖的微操作延迟发射的时间,大于或等于其所依赖的微操作执行所需的时钟周期。
所述具有数据依赖性的微操作包括:Load微操作、ALU微操作和Store微操作,
其中,所述ALU微操作依赖于所述Load微操作,所述Store微操作依赖于所述ALU微操作。
所述VLIW指令中的ALU微操作相对于Load微操作延迟发射,所述VLIW指令中的Store微操作相对于ALU微操作延迟发射。
本发明所提供的一种VLIW流水线的发射方法和装置,将具有数据依赖性的微操作和其所依赖的微操作封装在相同的VLIW指令中;将VLIW指令中有依赖性的微操作相对于其所依赖的微操作延迟发射。通过本发明,其VLIW流水线的发射模型的汇编代码的可读性强、代码空间小,从而代码开发周期短、代码开发效率得到显著提高,且代码质量和代码维护性也能得到显著提高。
附图说明
图1为现有技术中一个典型的VLIW指令的示意图;
图2为现有技术中VLIW流水线的操作时序图;
图3为现有技术中矢量加法(1)的代码模型示意图;
图4为本发明一种VLIW流水线的发射方法流程图;
图5为本发明实施例中VLIW流水线的操作时序图;
图6为本发明实施例中矢量加法(1)的代码模型示意图;
图7为本发明实施例中矢量加法(2)的代码模型示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
为解决传统的VLIW流水线的发射,其发射模型的汇编代码的可读性差、代码空间大的问题,本发明所提供的一种VLIW流水线的发射方法,如图4所示,主要包括以下步骤:
步骤401,将具有数据依赖性的微操作和其所依赖的微操作封装在相同的VLIW指令中。
步骤402,将VLIW指令中有依赖性的微操作相对于其所依赖的微操作延迟发射。
现有技术中,当一个VLIW指令完成译码后,其中的微操作通常都是马上发射的;如果微操作之间具有相关性(或称依赖性),硬件可以自动加插气泡,或者将这些微操作编译到不同的VLIW指令里。而在本发明的VLIW发射模型中,具有数据依赖性的微操作中被依赖的微操作在完成译码后并不马上发射,而是随着流水线流下去;即有依赖性的微操作相对于其所依赖的微操作延迟发射,且其有依赖性的微操作相对于其所依赖的微操作延迟发射的时间,是依据其所依赖的微操作的执行延迟来确定的,需要大于或等于其所依赖的微操作执行所需的时钟周期。
矢量处理器中最常见的流水线操作包括:Load微操作、ALU微操作和Store微操作,其中,ALU微操作依赖于Load微操作,Store微操作依赖于ALU微操作。那么,本发明中的矢量处理器需要支持以下两种相关性:Load微操作到ALU微操作的相关性、ALU微操作到Store微操作的相关性。
假设Load微操作需要执行五个时钟周期来完成,那么VLIW指令中的ALU微操作相对于Load微操作需要至少延迟五个时钟周期发射。假设ALU微操作需要执行六个时钟周期来完成,那么VLIW指令中的Store微操作相对于ALU微操作需要至少延迟六个时钟周期发射。
以具有相关性的Load微操作、ALU微操作(以add微操作为例)和Store微操作为例,VLIW流水线的操作时序如图5所示。与图2所示的传统VLIW流水线的操作时序相比,本发明实施例的VLIW指令也是在第1和第2周的流水阶(F0和F1阶)从指令内存里提取数据,该指令也是在第3和第4周的流水阶(D0和D1阶)完成译码。
不同的是,在第五周的流水阶,只有Load微操作发射,其他两个微操作(add和Store)都不马上发射,它们将沿着指令流水线流继续流下去。其中,add微操作将一直延迟到第十周才发射(等Load已完成之后才发射),Store微操作将一直延迟到第十六周才发射(等add已完成之后才发射)。
也就是说,在图5所示的发射模型下,VLIW指令中的三个微操作(Load、ALU、Store)会在流水线中不同但是固定的流水阶发射。
如图6所示,图6示出了采用本发明实施例的VLIW流水线的发射模型,实现以下矢量加法(1)的代码模型:
A[i]=B[i]+C[i];i=0,...,n-1 (1)
在图6所示的代码模型中,第一行的Load下载矢量B数据进入v0,第二行的Load下载矢量C数据进入v1;第二行的add延迟发射,其将会等到同一行的Load完成以后才发射,从而会将这两个Load的数据加起来;同样的,第二行的Store也是延迟发射,其将会等到同一行的add完成以后才发射,从而会将add的结果写回到内存里。
由此可以看出,图3和图6实现同样的矢量加法(1),但是图3所示的发射模型用了二十三行代码,而图6所示的发射模型则只用了两行代码。在此实施例中,传统发射模型的代码空间要比本发明实施例发射模型的代码空间大出十倍。此外,比较图3和图6所示的代码模型,后者的可读性要强很多,从矢量运算到图6所示的汇编代码的投影是一个很直观的过程。
再如图7所示,图7示出了采用本发明实施例的VLIW流水线的发射模型,实现以下矢量加法(2)的代码模型:
A[i]=B[i]*C[i]+D[i]*E[i];i=0,...,n-1 (2)
在图7所示的代码模型中,a0、a1、a2、a3、a4分别为矢量B、C、D、E和A的地址指针;v0、v1、v3、v4、v5分别为存储矢量B、C、D、E和A数据的寄存器;第一和第二行代码完成了v2=B[i]*C[i]的运算;第三和第四行代码完成了v5=D[i]*E[i]+v2以及A[i]=v5(即数据写回内存的Store微操作)的运算。假设矢量流水线中有m个运算单元,那么图7所示的循环体需要折叠n/m次。
对应上述VLIW流水线的发射方法,本发明还提供了一种VLIW流水线的发射装置,包括:VLIW指令封装模块和发射模块。VLIW指令封装模块,用于将具有数据依赖性的微操作和其所依赖的微操作封装在相同的VLIW指令中。发射模块,用于将VLIW指令中有依赖性的微操作相对于其所依赖的微操作延迟发射。
其中,有依赖性的微操作相对于其所依赖的微操作延迟发射的时间,可以依据其所依赖的微操作的执行延迟来确定的,大于或等于被依赖的微操作执行所需的时钟周期。
较佳的,常见的具有数据依赖性的微操作包括:Load微操作、ALU微操作和Store微操作,其中,所述ALU微操作依赖于所述Load微操作,所述Store微操作依赖于所述ALU微操作;
那么,VLIW指令中的ALU微操作相对于Load微操作延迟发射,VLIW指令中的Store微操作相对于ALU微操作延迟发射。
综上所述,本发明的VLIW流水线发射模型,其汇编代码的可读性强、代码空间小,从而代码开发周期短、代码开发效率得到显著提高,且代码质量和代码维护性也能得到显著提高。另外,本发明封装在同一个VLIW指令中的微操作既可以是具有相关性的,也可以是不具有相关性的,例如,以下封装在同一个VLIW指令中的微操作就不具有相关性:
load a0,v0;add v2,v3,v4;store a1,v5
如果封装在同一个VLIW指令中的微操作具有相关性,那么需要按照上述本发明的VLIW流水线的发射方法进行发射。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1.一种超长指令字流水线的发射方法,其特征在于,该方法包括:
将具有数据依赖性的微操作和其所依赖的微操作封装在相同的超长指令字(VLIW)指令中;
将所述VLIW指令中有依赖性的微操作相对于其所依赖的微操作延迟发射。
2.根据权利要求1所述超长指令字流水线的发射方法,其特征在于,所述有依赖性的微操作相对于其所依赖的微操作延迟发射的时间,是依据其所依赖的微操作的执行延迟来确定。
3.根据权利要求2所述超长指令字流水线的发射方法,其特征在于,所述有依赖性的微操作相对于其所依赖的微操作延迟发射的时间,大于或等于其所依赖的微操作执行所需的时钟周期。
4.根据权利要求1、2或3所述超长指令字流水线的发射方法,其特征在于,所述具有数据依赖性的微操作包括:载入(Load)微操作、算术和逻辑单元(ALU)微操作和存储(Store)微操作,
其中,所述ALU微操作依赖于所述Load微操作,所述Store微操作依赖于所述ALU微操作。
5.根据权利要求4所述超长指令字流水线的发射方法,其特征在于,所述VLIW指令中的ALU微操作相对于Load微操作延迟发射,所述VLIW指令中的Store微操作相对于ALU微操作延迟发射。
6.一种超长指令字流水线的发射装置,其特征在于,该装置包括:VLIW指令封装模块和发射模块,其中,
所述VLIW指令封装模块,用于将具有数据依赖性的微操作和其所依赖的微操作封装在相同的VLIW指令中;
所述发射模块,用于将所述VLIW指令中有依赖性的微操作相对于其所依赖的微操作延迟发射。
7.根据权利要求6所述超长指令字流水线的发射装置,其特征在于,所述有依赖性的微操作相对于其所依赖的微操作延迟发射的时间,是依据其所依赖的微操作的执行延迟来确定。
8.根据权利要求7所述超长指令字流水线的发射装置,其特征在于,所述有依赖性的微操作相对于其所依赖的微操作延迟发射的时间,大于或等于其所依赖的微操作执行所需的时钟周期。
9.根据权利要求6、7或8所述超长指令字流水线的发射装置,其特征在于,所述具有数据依赖性的微操作包括:Load微操作、ALU微操作和Store微操作,
其中,所述ALU微操作依赖于所述Load微操作,所述Store微操作依赖于所述ALU微操作。
10.根据权利要求9所述超长指令字流水线的发射装置,其特征在于,所述VLIW指令中的ALU微操作相对于Load微操作延迟发射,所述VLIW指令中的Store微操作相对于ALU微操作延迟发射。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101166674A CN102768623A (zh) | 2011-05-06 | 2011-05-06 | 一种vliw流水线的发射方法和装置 |
PCT/CN2011/079662 WO2012151821A1 (zh) | 2011-05-06 | 2011-09-15 | 一种vliw流水线的发射方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101166674A CN102768623A (zh) | 2011-05-06 | 2011-05-06 | 一种vliw流水线的发射方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102768623A true CN102768623A (zh) | 2012-11-07 |
Family
ID=47096030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101166674A Pending CN102768623A (zh) | 2011-05-06 | 2011-05-06 | 一种vliw流水线的发射方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102768623A (zh) |
WO (1) | WO2012151821A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304218A (zh) * | 2018-03-14 | 2018-07-20 | 郑州云海信息技术有限公司 | 一种汇编代码的编写方法、装置、系统和可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6647467B1 (en) * | 1997-08-01 | 2003-11-11 | Micron Technology, Inc. | Method and apparatus for high performance branching in pipelined microsystems |
CN101344842A (zh) * | 2007-07-10 | 2009-01-14 | 北京简约纳电子有限公司 | 多线程处理器及其多线程处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5941983A (en) * | 1997-06-24 | 1999-08-24 | Hewlett-Packard Company | Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues |
-
2011
- 2011-05-06 CN CN2011101166674A patent/CN102768623A/zh active Pending
- 2011-09-15 WO PCT/CN2011/079662 patent/WO2012151821A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6647467B1 (en) * | 1997-08-01 | 2003-11-11 | Micron Technology, Inc. | Method and apparatus for high performance branching in pipelined microsystems |
CN101344842A (zh) * | 2007-07-10 | 2009-01-14 | 北京简约纳电子有限公司 | 多线程处理器及其多线程处理方法 |
Non-Patent Citations (1)
Title |
---|
SUNGHYUN JEE ET AL.: "Dynamically Scheduling VLIW Instructions with Dependency Information", 《IEEE COMPUTER SOCIETY》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304218A (zh) * | 2018-03-14 | 2018-07-20 | 郑州云海信息技术有限公司 | 一种汇编代码的编写方法、装置、系统和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2012151821A1 (zh) | 2012-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230115874A1 (en) | Vector computational unit | |
US20240126547A1 (en) | Instruction set architecture for a vector computational unit | |
TW541458B (en) | loop cache memory and cache controller for pipelined microprocessors | |
JP4986431B2 (ja) | プロセッサ | |
JP5764257B2 (ja) | レジスタをアライメントするためのシステム、装置、および方法 | |
US11341085B2 (en) | Low energy accelerator processor architecture with short parallel instruction word | |
JP2018500657A5 (zh) | ||
US20130151822A1 (en) | Efficient Enqueuing of Values in SIMD Engines with Permute Unit | |
JP5947879B2 (ja) | マスクレジスタを用いてジャンプを行うシステム、装置、および方法 | |
JP5797438B2 (ja) | シミュレーション装置、シミュレーション方法、シミュレーター及び記憶媒体 | |
CN102243578A (zh) | 一种芯片的命令译码方法、系统及装置 | |
CN105824603B (zh) | 一种基于cisc指令集的流水线取指和译码方法 | |
CN101866281B (zh) | 一种多周期指令执行方法和装置 | |
US9501282B2 (en) | Arithmetic processing device | |
US20130262787A1 (en) | Scalable memory architecture for turbo encoding | |
CN102768623A (zh) | 一种vliw流水线的发射方法和装置 | |
CN108351780B (zh) | 邻接数据元素成对交换处理器、方法、系统和指令 | |
US8631173B2 (en) | Semiconductor device | |
US20120179895A1 (en) | Method and apparatus for fast decoding and enhancing execution speed of an instruction | |
CN101369223B (zh) | 指令编码方法和处理器 | |
CN202720631U (zh) | 基于单/双发射指令集的微处理器指令处理系统 | |
KR101227411B1 (ko) | 변조기에서 버스인터페이스 상의 효율적인 순환중복검사인코딩을 수행하는 방법 및 장치 | |
KR101596423B1 (ko) | 레지스터 파일 간 데이터 전송을 구현하는 방법 및 장치 | |
CN103092570A (zh) | 平行处理来自单一程序存储器的单芯片双核心微处理器架构 | |
CN201145893Y (zh) | 复杂指令集微控制器的译码装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121107 |