CN115878187B - 支持压缩指令的处理器指令处理装置和方法 - Google Patents
支持压缩指令的处理器指令处理装置和方法 Download PDFInfo
- Publication number
- CN115878187B CN115878187B CN202310057209.0A CN202310057209A CN115878187B CN 115878187 B CN115878187 B CN 115878187B CN 202310057209 A CN202310057209 A CN 202310057209A CN 115878187 B CN115878187 B CN 115878187B
- Authority
- CN
- China
- Prior art keywords
- instruction
- buffer
- instructions
- hit
- address
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims description 23
- 239000013598 vector Substances 0.000 claims abstract description 27
- 230000006835 compression Effects 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 238000003672 processing method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Advance Control (AREA)
Abstract
本申请提出一种支持压缩指令的处理器指令处理装置和方法,装置包括程序计数器、第一指令存储器、第二指令存储器、对比模块、指令长度统一模块、预译码模块和处理模块,通过程序计数器读取N路缓冲指令的存储阵列和存储阵列对应的指令标签并进行存储,对比模块确定N路缓冲指令的指令标签是否命中,以选取命中指令标签时对应的命中路缓冲指令,再通过指令长度统一模块将命中路缓冲指令的存储阵列扩充为统一长度的标准指令,并通过预译码模块对标准指令预译码,通过处理模块对预译码得到的统一编码信息和有效指令的位向量进行流水级处理,由此,将N路缓冲指令转换为统一长度的标准指令进行预译码,简化预译码的处理逻辑,提高处理器的执行性能。
Description
技术领域
本申请涉及处理器技术领域,尤其涉及一种支持压缩指令的处理器指令处理装置和方法。
背景技术
现代处理器指令集(Instruction Set Architecture,ISA)的设计,是为了减小程序代码的大小,提高代码密度,设计了压缩指令,来降低指令高速缓存的缺失率,提高处理器性能、降低功耗、减小面积和成本,但压缩指令在减小指令长度的同时,一方面会使得预译码和译码逻辑变得更为复杂,影响高性能处理器的主频,另一方面会增加程序计数器的计算逻辑,使得程序计数器计算的延时增加,故亟需一种支持压缩指令的处理器指令处理装置和方法。
发明内容
本申请实施例第一方面提出了一种支持压缩指令的处理器指令处理装置,所述装置包括程序计数器、第一指令存储器、第二指令存储器、对比模块、指令长度统一模块、预译码模块和处理模块,其中:所述程序计数器用于读取N路缓冲指令的存储阵列和所述存储阵列对应的指令标签;所述第一指令存储器用于存储所述存储阵列;所述第二指令存储器用于存储所述指令标签;所述对比模块用于确定所述N路缓冲指令的指令标签是否命中,以选取命中所述指令标签时对应的命中路缓冲指令;所述指令长度统一模块用于接收所述对比模块发送的命中路缓冲指令,并将所述命中路缓冲指令的存储阵列扩充为统一长度的标准指令,其中所述标准指令包括压缩指令和普通指令;所述预译码模块用于将所述标准指令进行预译码,以得到所述标准指令对应的统一编码信息和有效指令的位向量;所述处理模块用于将所述统一编码信息和有效指令的位向量发送给所述处理器对应的流水级进行处理。
在本申请的一个实施例中,所述指令长度统一模块还用于锁存所述命中路缓冲指令中最后预设阈值位的指令信息,并作为所述指令长度统一模块的下一次输入。
在本申请的一个实施例中,所述装置还包括地址计算模块,其中:所述地址计算模块用于取值出所述N路缓冲指令中第一路缓冲指令的初始指令地址。
在本申请的一个实施例中,所述装置还包括复位向地址计算模块,其中:所述复位向地址计算模块用于基于所述初始指令地址和依次执行所述N路缓冲指令时初始指令地址依次增加的偏移量,依次计算出执行所述N路缓冲指令中各路缓冲指令时对应的各个目标指令地址,并将所述各个目标指令地址作为各路缓冲指令各自对应的复位向地址。
在本申请的一个实施例中,所述装置还包括各级转移预测器,其中:所述各级转移预测器用于接收所述N路缓冲指令中各路缓冲指令各自对应的各个目标指令地址,并将所述各个目标指令地址作为所述各级转移预测器转移所需的地址。
本申请提出一种支持压缩指令的处理器指令处理装置,装置包括程序计数器、第一指令存储器、第二指令存储器、对比模块、指令长度统一模块、预译码模块和处理模块,通过程序计数器读取N路缓冲指令的存储阵列和存储阵列对应的指令标签并进行存储,对比模块确定N路缓冲指令的指令标签是否命中,以选取命中指令标签时对应的命中路缓冲指令,再通过指令长度统一模块将命中路缓冲指令的存储阵列扩充为统一长度的标准指令,并通过预译码模块对标准指令预译码,通过处理模块对预译码得到的统一编码信息和有效指令的位向量进行流水级处理,由此,将N路缓冲指令转换为统一长度的标准指令进行预译码,简化预译码的处理逻辑,提高处理器的执行性能。
本申请实施例第二方面提出了一种支持压缩指令的处理器指令处理方法,所述方法包括:读取N路缓冲指令的存储阵列和所述存储阵列对应的指令标签;确定所述N路缓冲指令的指令标签是否命中,以选取命中所述指令标签时对应的命中路缓冲指令,并将所述命中路缓冲指令的存储阵列扩充为统一长度的标准指令,其中所述标准指令包括压缩指令和普通指令;对所述标准指令进行预译码,以得到所述标准指令对应的统一编码信息和有效指令的位向量;调用所述统一编码信息和有效指令的位向量到需处理的流水级,以进行流水级处理。
在本申请的一个实施例中,在所述对所述标准指令进行预译码,以得到所述标准指令对应的统一编码信息和有效指令的位向量之后,还包括:锁存所述命中路缓冲指令中最后预设阈值位的指令信息,以将所述最后预设阈值位的指令信息输入到下一个命中路缓冲指令中。
在本申请的一个实施例中,所述方法还包括:取值出所述N路缓冲指令中第一路缓冲指令的初始指令地址。
在本申请的一个实施例中,所述方法还包括:基于所述初始指令地址和依次执行所述N路缓冲指令时初始指令地址依次增加的偏移量,依次计算出执行所述N路缓冲指令中各路缓冲指令时对应的各个目标指令地址,并将所述各个目标指令地址作为各路缓冲指令各自对应的复位向地址。
在本申请的一个实施例中,所述方法还包括:所述方法还包括:接收所述N路缓冲指令中各路缓冲指令各自对应的各个目标指令地址,并将所述各个目标指令地址作为所述各级转移预测器转移所需的地址。
本申请提出一种支持压缩指令的处理器指令处理方法,通过读取N路缓冲指令的存储阵列和存储阵列对应的指令标签,确定N路缓冲指令的指令标签是否命中,以选取命中指令标签时对应的命中路缓冲指令,并将命中路缓冲指令的存储阵列扩充为统一长度的标准指令,其中,标准指令包括压缩指令和普通指令,对标准指令进行预译码,以得到标准指令对应的统一编码信息和有效指令的位向量,调用统一编码信息和有效指令的位向量到需处理的流水级,以进行流水级处理,由此,将N路缓冲指令转换为统一长度的标准指令进行预译码,简化预译码的处理逻辑,提高处理器的执行性能。
本申请第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第二方面所述的方法。
本申请第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使所述计算机执行第二方面所述的方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
图1是本申请一个实施例的支持压缩指令的处理器指令处理装置的结构示意图;
图2是本申请一个实施例的支持压缩指令的处理器指令处理方法的流程示意图;
图3是本申请一个实施例的命中路缓冲指令的示例图;
图4是本申请一个实施例的统一长度的标准指令示例图;
图5是本申请一个实施例的统一命中路缓冲指令中第一条指令长度的拼接示例图;
图6是本申请一个实施例的扩充命中路缓冲指令中第一条指令长度的示例图;
图7是本申请一个实施例的扩充命中路缓冲指令中第二条指令长度的示例图;
图8是本申请一个实施例的扩充命中路缓冲指令中最后一条指令长度的示例图;
图9是本申请一个实施例的复位向地址计算的示例图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的支持压缩指令的处理器指令处理装置。
图1是本申请一个实施例的支持压缩指令的处理器指令处理装置的结构示意图。
如图1所示,该支持压缩指令的处理器指令处理装置包括:程序计数器101、第一指令存储器102、第二指令存储器103、对比模块104、指令长度统一模块105、预译码模块106和处理模块107,其中:
在一些实施例中,程序计数器101分别与第一指令存储器102和第二指令存储器103通信,程序计数器101用于读取N路缓冲指令的存储阵列和存储阵列对应的指令标签。
其中,N路缓冲指令是连续的多路缓冲指令。
此外,程序计数器101在N路缓冲指令中第一路缓冲指令在被获取之后,程序计数器101指向顺序中的下一个缓冲指令持续执行。
在一些实施例中,第一指令存储器102用于接收程序计数器101发送的存储阵列,并存储。
在一些实施例中,第二指令存储器103与于接收程序计数器101发送的指令标签,并存储。
其中,第一指令存储器102和第二指令存储器103可以为相同指令存储器,用于存储不同的数据。
在一些实施例中,对比模块104分别和第一指令存储器102和第二指令存储器103通信,对比模块104具体用于确定N路缓冲指令的指令标签是否命中,以选取命中指令标签时对应的命中路缓冲指令。
具体地,在没有命中N路缓冲指令的指令标签的情况下,则称为缺失,在命中N路缓冲指令的指令标签的情况下,则称为命中,即选取命中指令标签时对应的命中路缓冲指令。
在一些实施例中,指令长度统一模块105与对比模块104进行通信,指令长度统一模块105具体用于接收对比模块104输出的命中路缓冲指令,并将命中路缓冲指令的存储阵列扩充为统一长度的标准指令。
具体地,以256位的命中路缓冲指令为例,其包括32字节的指令(32Byteinstructions),其中即有压缩指令(假设压缩指令为16bit,16bit instruction)也有普通指令(假设普通指令为32bit,32bit instruction),从而将压缩指令和普通指令扩充为统一长度的32bit的标准指令(共64Byte instructions)。
在一些实施例中,预译码模块106与指令长度统一模块105通信,预译码模块106具体用于将标准指令进行预译码,以得到标准指令对应的统一编码信息和有效指令的位向量。
具体地,在指令长度统一模块105输出为统一长度的32bit的标准指令的情况下,经过预译码模块106进行预译码,以得到扩充后的16条标准指令的统一编码信息(instructions*16),以及有效指令的位向量(Validinstruction bit vector)。
在一些实施例中,处理模块107与预译码模块106通信,用于对将统一编码信息和有效指令的位向量发送给处理器对应的流水级进行处理。
其中,处理模块107可以是进行流水级处理时,需要调用统一编码信息和有效指令的位向量的多个模块。
此外,可以理解的是,上述程序计数器101、第一指令存储器102、第二指令存储器103、对比模块104、指令长度统一模块105、预译码模块106和处理模块107各个模块之间均可以通过铜金属线进行通信,但不仅限于此。
在一些实施例中,指令长度统一模块105还用于锁存命中路缓冲指令中最后预设阈值位的指令信息,并作为指令长度统一模块105的下一次输入,以16位是压缩指令,32位是普通指令为例,命中路缓冲指令中最后16位的指令信息有可能是下一个命中路缓冲指令的标准指令的前半条指令,即标准指令的低16位,故,因为第二路命中路缓冲指令的前半条指令可能在上一个命中路缓冲指令,指令长度统一模块105还需要用于锁存命中路缓冲指令中最后16位的指令信息,以将最后16位的指令信息和第二路命中路缓冲指令一起输入到指令长度统一模块105。
其中,预设阈值位的指令信息可以基于命中路缓冲指令对应的指令长度决定,但不仅限于此。
在一些实施例中,装置还包括地址计算模块108,其中:地址计算模块108还与程序计数器101通信,地址计算模块108具体用于取值出N路缓冲指令中第一路缓冲指令的初始指令地址,以当作N路缓冲指令的起始地址。
在一些实施例中,装置还包括复位向地址计算模块109,其中:复位向地址计算模块109分别与预译码模块106和地址计算模块108通信,具体用于基于基于初始指令地址和依次执行N路缓冲指令时初始指令地址依次增加的偏移量(Offset),依次计算出执行N路缓冲指令中各路缓冲指令时对应的各个目标指令地址,并将各个目标指令地址作为各路缓冲指令各自对应的复位向地址。
在一些实施例中,装置还包括各级转移预测器110,其中:各级转移预测器110与复位向地址计算模块109通信,各级转移预测器110具体用于接收N路缓冲指令中各路缓冲指令各自对应的各个目标指令地址,并将各个目标指令地址作为各级转移预测器110转移所需的地址。
综上,本申请提出一种支持压缩指令的处理器指令处理装置,其中,装置包括程序计数器、第一指令存储器、第二指令存储器、对比模块、指令长度统一模块、预译码模块和处理模块,通过程序计数器读取N路缓冲指令的存储阵列和存储阵列对应的指令标签并进行存储,对比模块确定N路缓冲指令的指令标签是否命中,以选取命中指令标签时对应的命中路缓冲指令,再通过指令长度统一模块将命中路缓冲指令的存储阵列扩充为统一长度的标准指令,并通过预译码模块对标准指令预译码,通过处理模块对预译码得到的统一编码信息和有效指令的位向量进行流水级处理,由此,将N路缓冲指令转换为统一长度的标准指令进行预译码,简化预译码的处理逻辑,提高处理器的执行性能。
此外,本申请还提供了一种支持压缩指令的处理器指令处理方法的流程示意图,如图2所示,具体地:
步骤201,读取N路缓冲指令的存储阵列和存储阵列对应的指令标签。
步骤202,确定N路缓冲指令的指令标签是否命中,以选取命中指令标签时对应的命中路缓冲指令,并将命中路缓冲指令的存储阵列扩充为统一长度的标准指令,其中标准指令包括压缩指令和普通指令。
在一些实施例中,如图3所示,图3为统一长度扩充前的32位命中路缓冲指令(指令Cache行),其中,跨行的普通指令均算作高16位所在的指令行,其低16位所在的指令行应该把这16位指令设置成无效,阴影部分是普通指令,无阴影部分是压缩指令。
此外,在将命中路缓冲指令扩充为统一长度的标准指令后,可以以得到的标准指令为16条32位标准指令为例,如图4所示,图4为命中路缓冲指令扩充为统一长度的16条32位标准指令,之后还需对16条32位标准指令进行有效性判断,以将有效的32位标准指令进行预译码,以得到指令有效位向量和长度统一的16条32位指令。
其中,如图4所示,32位标准指令的有效位向量为16’b0010_1111_1010_1111,1代表有效,0代表无效,命中路缓冲指令的[255,240]的低2位[241:240]是2’b11,最后两字节是半条标准指令,属于下一个命中路缓冲指令的第一条标准指令。
步骤203,对标准指令进行预译码,以得到标准指令对应的统一编码信息和有效指令的位向量。
在一些实施例中,在对标准指令进行预译码,以得到标准指令对应的统一编码信息和有效指令的位向量之后,以16位是压缩指令,32位是普通指令为例,还可以锁存命中路缓冲指令(指令Cache行)中最后16位(2字节)的指令信息(16bit previous instruction),以将最后16位的指令信息输出到下一个命中路缓冲指令中,以根据最后16位的指令信息,判断需执行的下一个缓冲指令。
具体地,如图5所示,如果传过来的16位的指令信息是32位标准指令的前半条时,即标准指令的低16位时,指令长度统一模块的第一条指令就把16位的指令信息和第一个命中路缓冲指令的16bit拼接起来,如图5阴影部分所示。
此外,如图6所示,若传过来的16位的指令信息无效,就对指令第一个命中路缓冲指令的16bit做扩充,如果扩充的是压缩指令,则低位为压缩指令的指令码的16位,高位补16个0;如果不是压缩指令,则保留32位指令,作为指令长度统一后的第一条标准指令,如图6。
其中,指令是否是压缩指令,根据指令编码中的压缩指令标识位进行判断。例如RISC-V指令集(RISC-V instruction setarchitecture),指令编码的最低两位,即Instruction[1:0]==2’b11(二进制11),为普通32位指令,否则为压缩指令。
综上,在完成第一个命中路缓冲指令的16bit做扩充之后,开始扩充第二个命中路缓冲指令,如图7所示,即第二个命中路缓冲指令的第16位开始,和图6判断压缩指令的原理相同,判断第二个命中路缓冲指令的第17位和第16位,根据第二个命中路缓冲指令的[17,16]位是否是二进制11,以及其低16位是否是标准指令的高16位,确定该条指令是普通指令还是压缩指令,并作指令长度一致的扩充,再从第三个命中路缓冲指令的第16位开始,以此类推。
此外,如图8所示,直到判断最后一个命中路缓冲指令的第16位,判断最后一个命中路缓冲指令的最后两字节,高位补零,如图8。
步骤204,调用统一编码信息和有效指令的位向量到需处理的流水级,以进行流水级处理。
此外,在一些实施例中,基于初始指令地址和依次执行N路缓冲指令时初始指令地址依次增加的偏移量,依次计算出执行N路缓冲指令中各路缓冲指令时对应的各个目标指令地址,并将各个目标指令地址作为各路缓冲指令各自对应的复位向地址的一种实施方式可以如图9所示,具体地,复位向地址的计算过程中,如果取指命中路缓冲指令(指令Cache行)的第一条指令是标准指令并且其上半条指令是锁存的最后16位的指令信息,如果是,则取指命中路缓冲指令的各复位向地址等于packet_PC+offset;否则,取指命中路缓冲指令的各复位向地址等于fetch_PC+offset。
其中, offset为各路缓冲指令相对于取指命中路缓冲指令的第一条缓冲指令的地址偏移多少字节,图9为取指命中路缓冲指令第一条指令为标准指令,其上半条指令是锁存的最后16位的指令信息,该取指命中路缓冲指令的各路缓冲指令相对于取指命中路缓冲指令第一条指令的复位向地址的计算。
本申请提出一种支持压缩指令的处理器指令处理方法,通过读取N路缓冲指令的存储阵列和存储阵列对应的指令标签,确定N路缓冲指令的指令标签是否命中,以选取命中指令标签时对应的命中路缓冲指令,并将命中路缓冲指令的存储阵列扩充为统一长度的缓冲指令,其中,缓冲指令包括压缩指令和普通指令,对缓冲指令进行预译码,以得到缓冲指令对应的统一编码信息和有效指令的位向量,调用统一编码信息和有效指令的位向量到需处理的流水级,以进行流水级处理,由此,将N路缓冲指令转换为统一长度的缓冲指令进行预译码,简化预译码的处理逻辑,提高处理器的执行性能。
为了实现上述实施例,本申请还提出一种电子设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述的方法。
为了实现上述实施例,本申请还提出一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使所述计算机执行前述的方法。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (6)
1.一种支持压缩指令的处理器指令处理装置,其特征在于,所述装置包括程序计数器、第一指令存储器、第二指令存储器、对比模块、指令长度统一模块、预译码模块和处理模块,其中:
所述程序计数器用于读取N路缓冲指令的存储阵列和所述存储阵列对应的指令标签;
所述第一指令存储器用于存储所述存储阵列;所述第二指令存储器用于存储所述指令标签;
所述对比模块用于确定所述N路缓冲指令的指令标签是否命中,以选取命中所述指令标签时对应的命中路缓冲指令;
所述指令长度统一模块用于接收所述对比模块发送的命中路缓冲指令,并将所述命中路缓冲指令的存储阵列扩充为统一长度的标准指令,其中所述标准指令包括压缩指令和普通指令;
所述预译码模块用于将所述标准指令进行预译码,以得到所述标准指令对应的统一编码信息和有效指令的位向量;
所述处理模块用于将所述统一编码信息和有效指令的位向量发送给所述处理器对应的流水级进行处理;
所述装置还包括地址计算模块,其中:
所述地址计算模块用于取值出所述N路缓冲指令中第一路缓冲指令的初始指令地址;
所述装置还包括复位向地址计算模块,其中:
所述复位向地址计算模块用于基于所述初始指令地址和依次执行所述N路缓冲指令时初始指令地址依次增加的偏移量,依次计算出执行所述N路缓冲指令中各路缓冲指令时对应的各个目标指令地址,并将所述各个目标指令地址作为各路缓冲指令各自对应的复位向地址;
所述装置还包括各级转移预测器,其中:
所述各级转移预测器用于接收所述N路缓冲指令中各路缓冲指令各自对应的各个目标指令地址,并将所述各个目标指令地址作为所述各级转移预测器转移所需的地址。
2.根据权利要求1所述的装置,其特征在于,所述指令长度统一模块还用于锁存所述命中路缓冲指令中最后预设阈值位的指令信息,并作为所述指令长度统一模块的下一次输入。
3.一种支持压缩指令的处理器指令处理方法,其特征在于,采用如权利要求1-2中任一所述的装置执行,所述方法包括:
读取N路缓冲指令的存储阵列和所述存储阵列对应的指令标签;
确定所述N路缓冲指令的指令标签是否命中,以选取命中所述指令标签时对应的命中路缓冲指令,并将所述命中路缓冲指令的存储阵列扩充为统一长度的标准指令,其中所述标准指令包括压缩指令和普通指令;
对所述标准指令进行预译码,以得到所述标准指令对应的统一编码信息和有效指令的位向量;
调用所述统一编码信息和有效指令的位向量到需处理的流水级,以进行流水级处理;
所述方法还包括:
取值出所述N路缓冲指令中第一路缓冲指令的初始指令地址;
基于所述初始指令地址和依次执行所述N路缓冲指令时初始指令地址依次增加的偏移量,依次计算出执行所述N路缓冲指令中各路缓冲指令时对应的各个目标指令地址,并将所述各个目标指令地址作为各路缓冲指令各自对应的复位向地址;
各级转移预测器接收所述N路缓冲指令中各路缓冲指令各自对应的各个目标指令地址,并将所述各个目标指令地址作为所述各级转移预测器转移所需的地址。
4.根据权利要求3所述的方法,其特征在于,在所述对所述标准指令进行预译码,以得到所述标准指令对应的统一编码信息和有效指令的位向量之后,还包括:
锁存所述命中路缓冲指令中最后预设阈值位的指令信息,以将所述最后预设阈值位的指令信息输入到下一个命中路缓冲指令中。
5.一种电子设备,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求3-4中任一项所述的方法。
6.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求3-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310057209.0A CN115878187B (zh) | 2023-01-16 | 2023-01-16 | 支持压缩指令的处理器指令处理装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310057209.0A CN115878187B (zh) | 2023-01-16 | 2023-01-16 | 支持压缩指令的处理器指令处理装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115878187A CN115878187A (zh) | 2023-03-31 |
CN115878187B true CN115878187B (zh) | 2023-05-02 |
Family
ID=85758681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310057209.0A Active CN115878187B (zh) | 2023-01-16 | 2023-01-16 | 支持压缩指令的处理器指令处理装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878187B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966514A (en) * | 1995-05-31 | 1999-10-12 | Matsushita Electric Industrial Co., Ltd. | Microprocessor for supporting reduction of program codes in size |
US6581131B2 (en) * | 2001-01-09 | 2003-06-17 | Hewlett-Packard Development Company, L.P. | Method and apparatus for efficient cache mapping of compressed VLIW instructions |
US7421568B2 (en) * | 2005-03-04 | 2008-09-02 | Qualcomm Incorporated | Power saving methods and apparatus to selectively enable cache bits based on known processor state |
CN108133452B (zh) * | 2017-12-06 | 2021-06-01 | 中国航空工业集团公司西安航空计算技术研究所 | 一种统一染色器阵列的指令发射处理电路 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN110780925B (zh) * | 2019-09-02 | 2021-11-16 | 芯创智(北京)微电子有限公司 | 一种指令流水线的预译码***及方法 |
-
2023
- 2023-01-16 CN CN202310057209.0A patent/CN115878187B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115878187A (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8898437B2 (en) | Predecode repair cache for instructions that cross an instruction cache line | |
KR101059335B1 (ko) | 가변 길이 명령 세트 실행 모드들을 가지는 프로세서 내의 bht의 효율적 사용방법 | |
US9824016B2 (en) | Device and processing method | |
CN104657110B (zh) | 具有固定数量的可变长度指令的指令高速缓存器 | |
US5774710A (en) | Cache line branch prediction scheme that shares among sets of a set associative cache | |
CN104424128B (zh) | 变长指令字处理器***和方法 | |
CN108108190B (zh) | 一种计算方法及相关产品 | |
CN112631660A (zh) | 一种并行提取指令的方法与可读存储介质 | |
US7949862B2 (en) | Branch prediction table storing addresses with compressed high order bits | |
CN115878187B (zh) | 支持压缩指令的处理器指令处理装置和方法 | |
US7546445B2 (en) | Information processor having delayed branch function with storing delay slot information together with branch history information | |
JP2008165589A (ja) | 情報処理装置 | |
US7346737B2 (en) | Cache system having branch target address cache | |
KR101545701B1 (ko) | 프로세서 및 그 명령어 번들 복원 방법 | |
JPH03129432A (ja) | 分岐制御回路 | |
US6237087B1 (en) | Method and apparatus for speeding sequential access of a set-associative cache | |
CN116339832A (zh) | 数据处理装置、方法及处理器 | |
KR100719420B1 (ko) | 정보 처리 장치 | |
CN114924792A (zh) | 指令译码单元、指令执行单元及相关装置和方法 | |
US20070233961A1 (en) | Multi-portioned instruction memory | |
CN114003292B (zh) | 一种分支预测方法、装置及处理器核 | |
US7827355B1 (en) | Data processor having a cache with efficient storage of predecode information, cache, and method | |
JP4601624B2 (ja) | 命令プリデコーダ付きダイレクトメモリアクセスユニット | |
US7711926B2 (en) | Mapping system and method for instruction set processing | |
CN116627506A (zh) | 微指令缓存及操作方法、处理器核及指令处理方法 |
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 |