CN114625419A - 一种可变长指令的缓存结构、方法及介质 - Google Patents
一种可变长指令的缓存结构、方法及介质 Download PDFInfo
- Publication number
- CN114625419A CN114625419A CN202210529394.4A CN202210529394A CN114625419A CN 114625419 A CN114625419 A CN 114625419A CN 202210529394 A CN202210529394 A CN 202210529394A CN 114625419 A CN114625419 A CN 114625419A
- Authority
- CN
- China
- Prior art keywords
- instruction
- variable
- length
- cache
- executed
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 239000000872 buffer Substances 0.000 description 18
- 230000015654 memory Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- 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/30047—Prefetch instructions; cache control instructions
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种可变长指令的缓存结构、方法及介质,该方法可以包括:初始启动时,指令缓存控制器控制指令读取单元加载需要执行的可变长指令;需要执行的可变长指令加载完成之后,指令缓存控制器控制指令解析单元将需要执行的可变长指令进行解析,获得需要执行的可变长指令的指令头部分、操作部分以及常量部分;指令解析单元将已解析完毕的所述需要执行的可变长指令的指令头部分、操作部分以及常量部分分别对应传输至解码缓存中的指令头解码缓存、操作部分解码缓存以及常量解码缓存,并生成需要执行的可变长指令对应的游标标识,以使得单指令多线程处理器基于游标标识从解码缓存中访问并加载已解析完毕的需要执行的可变长指令。
Description
技术领域
本发明实施例涉及处理器架构技术,尤其涉及一种可变长指令的缓存结构、方法及介质。
背景技术
在处理器领域中,为了平衡指令操作的功能性和存储成本,部分处理器采用可变长指令集。可变长指令集的兼顾了指令功能和存储成本的特点所带来的缺点是,增加了指令缓存以及解码的难度。
由于可变长指令不具备如固定长度指令一般的明确字节尺寸边界,因此当前对可变长指令进行缓存的常规方案,大都是通过对可变长指令进行预解码,根据预解码信息来识别可变长指令的边界,而预解码方案中可变长指令不一定在存储器中对准,从而造成读取错误而引发丢弃以及重新读取,降低了处理器执行可变长指令的效率。
发明内容
有鉴于此,本发明实施例期望提供一种可变长指令的缓存结构、方法及介质;能够加快处理器核读取到可变长指令的速度,减少对L1以及L2级缓存cache发生请求的概率,提高处理器核执行可变长指令的效率。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种可变长指令的缓存结构,所述结构包括:一组对应于指令结构组成部分的解码缓存,指令缓存控制器、指令解析单元和指令读取单元;其中,所述解码缓存包括指令头解码缓存、操作部分解码缓存以及常量解码缓存;
所述指令缓存控制器,经配置为初始启动时控制所述指令读取单元加载需要执行的可变长指令;
以及,所述需要执行的可变长指令由所述指令读取单元加载完成之后,控制所述指令解析单元将所述需要执行的可变长指令进行解析,获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分;
所述指令解析单元,经配置为将已解析完毕的所述需要执行的可变长指令的指令头部分、操作部分以及常量部分分别对应传输至所述解码缓存中的指令头解码缓存、操作部分解码缓存以及常量解码缓存,并生成所述需要执行的可变长指令对应的游标标识,以使得单指令多线程处理器基于所述游标标识从所述解码缓存中访问并加载已解析完毕的所述需要执行的可变长指令。
第二方面,本发明实施例提供了一种可变长指令的缓存方法,所述方法应用于第一方面所述的缓存结构,所述方法包括:
初始启动时,指令缓存控制器控制指令读取单元加载需要执行的可变长指令;
所述需要执行的可变长指令加载完成之后,所述指令缓存控制器控制指令解析单元将所述需要执行的可变长指令进行解析,获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分;
所述指令解析单元将已解析完毕的所述需要执行的可变长指令的指令头部分、操作部分以及常量部分分别对应传输至解码缓存中的指令头解码缓存、操作部分解码缓存以及常量解码缓存,并生成所述需要执行的可变长指令对应的游标标识,以使得单指令多线程处理器基于所述游标标识从所述解码缓存中访问并加载已解析完毕的所述需要执行的可变长指令。
第三方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有可变长指令的缓存程序,所述可变长指令的缓存程序被至少一个处理器执行时实现第二方面中所述可变长指令的缓存方法步骤。
本发明实施例提供了一种可变长指令的缓存结构、方法及介质;由于解码缓存中的指令头解码缓存、操作部分解码缓存以及常量解码缓存更加接近单指令多线程处理器(SIMT processor),并且缓存为已完成解析的可变长指令,因此,能够使得SIMT processor更加快速的加载并执行该可变长指令,降低了SIMT processor访问L1 Cache和L2 Cache的概率,加快处理器核读取到可变长指令的速度,提高处理器核执行可变长指令的效率。
附图说明
图1为本发明实施例提供的一种可变长指令的缓存结构组成示意图。
图2为本发明实施例提供的一种可变长指令结构示意图。
图3为本发明实施例提供的一种可变长指令的缓存方法流程示意图。
图4为本发明实施例提供的一种可变长指令的缓存方法的实施流程示意图。
图5为本发明实施例提供的一种可变长指令的访问方法流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
对于常规的指令结构而言,至少包括三个部分,即指令头部分、操作部分以及常量部分;而对于操作部分,通常包括操作码和操作数。进一步地,针对可变长指令来说,通常为操作部分和常量部分是可变长度的。如此,对于可变长指令来说,由于其长度的不固定性,在缓存及后续读取过程中,需要明确指令的字节尺寸边界才能够准确的从缓存中进行读取和访问。为了加快可变长指令的访问速度,提高可变长指令的执行效率。参见图1,其示出了本发明实施例提供的一种可变长指令的缓存结构1,该结构1可适用于图1中所示的单指令多线程(SIMT,Single Instruction Multiple Threads)方式执行的微处理器,例如 SIMTProcessor 2,该缓存结构1可以包括:如点划线框所示的一组对应于指令结构组成部分的解码缓存11,指令缓存控制器(Instruction Cache Control)12、指令解析单元(Instruction Decoder)13和指令读取单元(Instruction Loader)14,此外,对于SIMTprocessor 2来说,还包括分层布置的缓存器,例如如虚线框所示的与SIMT processor 2相关联的一级缓存(L1 Cache)3,还有与其他SIMT Processor共享的二级缓存(L2 Cache)4。在一些示例中,L1 Cache 3可以包括一级数据缓存(L1 Data Cache)31和一级指令缓存(L1Instruction Cache)32。
对于图1中所示出的一组对应于指令结构组成部分的解码缓存11,相应于可变长指令结构所包括的指令头部分、操作部分以及常量部分,如图1中的另一虚线框所示,该组解码缓存11可以包括指令头解码缓存(Decoded Header)111、操作部分解码缓存(DecodedInstruction)112以及常量解码缓存(Decoded Constant)113。
在一些示例中,本发明实施例所适用的单条可变长指令结构可以如图2所示,对于每条可变长指令来说,指令头部分是固定长度的,以图2所示为例,指令头部分的长度为32个字节。操作部分和常量部分均是可变长度的。以图2所示为例,操作部分可以认为是一个由多个操作元素组成的集合,由于操作元素的个数可变,因此操作部分的整体长度可变;在该集合中,每个操作元素包括一个操作码以及三个操作数,其中,每个操作数的长度为7个字节,操作码的长度为11个字节,从而使得每个操作元素的长度与指令头部分的长度一致以实现对齐。以图2所示为例,常量部分则可以认为是一个有多个常量元素组成的集合,由于常量元素的个数可变,因此常量部分的整体长度可变;在该集合中,每个常量元素均为一个常量数值,其长度为32个字节,从而使得每个常量元素的长度与指令头部分的长度或操作元素的长度一致以实现对齐。对于图2所示的可变长指令结构,在一些示例中,因为操作码的数量以及常量的数量无法确定,所以无法获知对应的可变长指令的长度,进而无法确定该指令的尺寸边界;基于上述情况,结合图1所示的缓存结构以及图2所示的可变长指令结构提出一种缓存方法,对于该缓存方法,在一些示例中,当SIMT processor 2初始启动时,由于所有的缓存均为空,因此在执行和访问可变长指令之前,需要进行一个可被称之为“冷启动(warm up)”的过程。对于该“冷启动”过程,如图3所示,可以包括:
S31:初始启动时,指令缓存控制器12控制指令读取单元14加载需要执行的可变长指令;
S32:所述需要执行的可变长指令加载完成之后,指令缓存控制器12控制指令解析单元13将所述需要执行的可变长指令进行解析,获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分;
S33:指令解析单元13将所述需要执行的可变长指令已解析完毕的指令头部分、操作部分以及常量部分分别对应传输至解码缓存11中的指令头解码缓存111、操作部分解码缓存112以及常量解码缓存113,并生成所述需要执行的可变长指令对应的游标Cursor标识,以使得SIMT processor 2基于所述游标Cursor标识从所述解码缓存11中访问并加载已解析完毕的所述需要执行的可变长指令。
通过图3所示的技术方案,由于解码缓存11中的指令头解码缓存111、操作部分解码缓存112以及常量解码缓存113更加接近SIMT processor 2,并且缓存为已完成解析的可变长指令,因此,能够使得SIMT processor 2更加快速的加载并执行该可变长指令,降低了SIMT processor 2访问L1 Cache和L2 Cache的概率,加快处理器核读取到可变长指令的速度,提高处理器核执行可变长指令的效率。
对于图3所示的技术方案,在具体实施过程中,如图4所示,图3所示的冷启动流程可以包括:
S41:相应于解码缓存11为空,指令缓存控制器12向指令读取单元14发送第一控制指令;
需要说明的是,SIMT processor 2通过指令缓存控制器12中的程序计数器(PC,Program Counter)明确需要执行的可变长指令的位置,并且在解码缓存11中查找已明确的需要执行的可变长指令;可以理解地,由于初始启动时所有缓存均为空,因此,SIMTprocessor 2无法在解码缓存中查找到任何指令,从而SIMT processor 2能够通过向指令缓存控制器12反馈解码缓存11为空的信息。在本实施例中,SIMT processor 2可以仅从解码缓存11中的操作部分解码缓存112进行查找,从而基于操作部分解码缓存112是否为空的状态以获知解码缓存11是否为空。
S42:指令读取单元14基于所述第一控制指令向一级指令缓存32发送需要执行的可变长指令加载请求,以加载需要执行的可变长指令;
需要说明的是,本实施例中的S41以及S42可以认为是图3所示方案中S31的一种优选的实现形式。详细来说,当一级指令缓存32接收到可变长指令加载请求后,将会从自身缓存中读取需要执行的可变长指令;若在自身缓存内命中需要执行的可变长指令,则将所述需要执行的可变长指令上载Load至指令读取单元14;若在自身缓存内无法命中,则一级指令缓存32将继续向二级缓存4发送可变长指令获取请求,以从二级缓存4中获取到需要执行的可变长指令后传输至所述指令读取单元14。可以理解地,由于二级缓存4同样需要在自身缓存内读取需要执行的可变长指令,并且在无法命中时还需要从处理器架构中的其他存储器中进行读取,因此,一级指令缓存32在接收到可变长指令加载请求之后,无法每次都能及时地向指令读取单元14上载所述需要执行的可变长指令。由此,本发明实施例中,优选地,指令读取单元14可以按照设定的发送周期循环向一级指令缓存32发送可变长指令加载请求,直到需要执行的可变长指令加载完成。并且,在指令读取单元14完成需要执行的可变长指令的加载之后,指令读取单元14可以向指令缓存控制器12反馈对于所述第一控制指令的完成状态,从而使得指令缓存控制器12获知所述需要执行的可变长指令加载完成。
S43:指令读取单元14加载完成所述需要执行的可变长指令之后,指令缓存控制器12向指令解析单元13发送第二控制指令;
S44:指令解析单元13基于所述第二控制指令将所述需要执行的可变长指令进行解析,以获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分;
需要说明的是,本实施例中的S43以及S44可以认为是图3所示方案中S31的一种优选的实现形式。详细来说,基于图2所示的可变长指令结构,指令解析单元13可以结合字段长度以及字段组成,将可变长指令划分为对应的指令头部分、操作部分以及常量部分。比如,指令解析单元13可以将可变长指令中的前32个字节字段确定为指令头部分;接着,将所有由四个字段子部分组成的32个字节字段确定为操作部分;然后,将操作部分直至可变长指令结束字段之间的数据确定为常量部分。可以理解地,对于指令解析单元13将需要执行的可变长指令进行解析以获得指令头部分、操作部分以及常量部分的具体实施方式,本发明实施例也可以采用其他常规的实施方式,在此不做具体赘述。
S45:指令解析单元13将已解析完成的所述需要执行的可变长指令的指令头部分、操作部分以及常量部分分别对应传输至所述解码缓存11中的指令头解码缓存111、操作部分解码缓存112以及常量解码缓存113,并生成所述需要执行的可变长指令对应的Cursor标识。
需要说明的是,当生成该Cursor标识之后,SIMT processor 2就能够根据该Cursor标识访问解码缓存11中已缓存的所述需要执行的可变长指令,并且能够直接从解码缓存11中的指令头解码缓存111、操作部分解码缓存112以及常量解码缓存113中分别获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分;从而使得SIMTprocessor 2更加快速的加载并执行到该需要执行的可变长指令,降低了SIMT processor2访问L1 Cache 3和L2 Cache 4的概率,加快处理器核读取到可变长指令的速度,提高处理器核执行可变长指令的效率。
通过上述“冷启动”过程,SIMT processor 2再需要访问可变长指令时,就可以直接从解码缓存11进行访问,在一些示例中,如图5所示,访问流程可以包括:
S51:SIMT Processor 2通过PC获知需请求的可变长指令后,获取所述需请求的可变长指令对应的Cursor标识;
S52:SIMT Processor 2根据所述Cursor标识访问所述解码缓存11中的指令头解码缓存111、操作部分解码缓存112以及常量解码缓存113,获取所述需请求的可变长指令的指令头部分数据、操作部分数据以及常量部分数据。
基于上述技术方案相同的发明构思,对于缓存结构1来说,在一些可能的实现方式中,所述指令缓存控制器12,经配置为初始启动时控制所述指令读取单元14加载需要执行的可变长指令;
以及,所述需要执行的可变长指令由所述指令读取单元14加载完成之后,控制所述指令解析单元13将所述需要执行的可变长指令进行解析,获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分;
所述指令解析单元13,经配置为将已解析完毕的所述需要执行的可变长指令的指令头部分、操作部分以及常量部分分别对应传输至所述解码缓存11中的指令头解码缓存111、操作部分解码缓存112以及常量解码缓存113,并生成所述需要执行的可变长指令对应的游标标识,以使得SIMT Processor 2基于所述游标标识从所述解码缓存11中访问并加载已解析完毕的所述需要执行的可变长指令。
对于上述实现方式,在一些示例中,所述指令缓存控制器12,经配置为相应于所述解码缓存11为空,向所述指令读取单元14发送第一控制指令;
所述指令读取单元14,经配置为基于所述第一控制指令向一级指令缓存L1 Cache3发送需要执行的可变长指令加载请求,以加载需要执行的可变长指令。
对于上述实现方式,在一些示例中,所述指令缓存控制器12,经配置为所述指令读取单元14加载完成所述需要执行的可变长指令之后,向所述指令解析单元13发送第二控制指令;
所述指令解析单元13,经配置为基于所述第二控制指令将所述需要执行的可变长指令进行解析,以获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分。
对于上述实现方式,在一些示例中,所述SIMT Processor 2,经配置为通过程序计数器获得请求的可变长指令地址后,获取所述需请求的可变长指令对应的游标标识;以及,根据所述游标标识访问所述解码缓存11中的指令头解码缓存111、操作部分解码缓存112以及常量解码缓存113,获取所述需请求的可变长指令的指令头部分数据、操作部分数据以及常量部分数据。
可以理解地,在本实施例中,缓存结构1的各组件可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是单元,还可以是模块也可以是非模块化的。
另外,在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本实施例提供了一种计算机存储介质,所述计算机存储介质存储有可变长指令的缓存程序,所述可变长指令的缓存程序被至少一个处理器执行时实现上述技术方案中如图3至图5所示的可变长指令的缓存方法步骤。
需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种可变长指令的缓存结构,其特征在于,所述结构包括:一组对应于指令结构组成部分的解码缓存,指令缓存控制器、指令解析单元和指令读取单元;其中,所述解码缓存包括指令头解码缓存、操作部分解码缓存以及常量解码缓存;
所述指令缓存控制器,经配置为初始启动时控制所述指令读取单元加载需要执行的可变长指令;
以及,所述需要执行的可变长指令由所述指令读取单元加载完成之后,控制所述指令解析单元将所述需要执行的可变长指令进行解析,获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分;
所述指令解析单元,经配置为将已解析完毕的所述需要执行的可变长指令的指令头部分、操作部分以及常量部分分别对应传输至所述解码缓存中的指令头解码缓存、操作部分解码缓存以及常量解码缓存,并生成所述需要执行的可变长指令对应的游标标识,以使得单指令多线程处理器基于所述游标标识从所述解码缓存中访问并加载已解析完毕的所述需要执行的可变长指令。
2.根据权利要求1所述的结构,其特征在于,所述指令缓存控制器,经配置为相应于所述解码缓存为空,向所述指令读取单元发送第一控制指令;
所述指令读取单元,经配置为基于所述第一控制指令向一级指令缓存发送需要执行的可变长指令加载请求,以加载需要执行的可变长指令。
3.根据权利要求1所述的结构,其特征在于,所述指令缓存控制器,经配置为所述指令读取单元加载完成所述需要执行的可变长指令之后,向所述指令解析单元发送第二控制指令;
所述指令解析单元,经配置为基于所述第二控制指令将所述需要执行的可变长指令进行解析,以获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分。
4.根据权利要求1所述的结构,其特征在于,所述结构还包括:单指令多线程处理器,经配置为通过程序计数器获得需请求的可变长指令地址后,获取所述需请求的可变长指令对应的游标标识;以及,根据所述游标标识访问所述解码缓存游标中的指令头解码缓存、操作部分解码缓存以及常量解码缓存,获取所述需请求的可变长指令的指令头部分数据、操作部分数据以及常量部分数据。
5.根据权利要求1至4任一项所述的结构,其特征在于,所述可变长指令结构包括:指令头部分、操作部分以及常量部分;其中,所述指令头部分是固定长度的,所述操作部分和所述常量部分均是可变长度的。
6.一种可变长指令的缓存方法,其特征在于,所述方法应用于权利要求1至5任一项所述的缓存结构,所述方法包括:
初始启动时,指令缓存控制器控制指令读取单元加载需要执行的可变长指令;
所述需要执行的可变长指令加载完成之后,所述指令缓存控制器控制指令解析单元将所述需要执行的可变长指令进行解析,获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分;
所述指令解析单元将已解析完毕的所述需要执行的可变长指令的指令头部分、操作部分以及常量部分分别对应传输至解码缓存中的指令头解码缓存、操作部分解码缓存以及常量解码缓存,并生成所述需要执行的可变长指令对应的游标标识,以使得单指令多线程处理器基于所述游标标识从所述解码缓存中访问并加载已解析完毕的所述需要执行的可变长指令。
7.根据权利要求6所述的方法,其特征在于,所述初始启动时,指令缓存控制器控制指令读取单元加载需要执行的可变长指令,包括:
相应于所述解码缓存为空,所述指令缓存控制器向所述指令读取单元发送第一控制指令;
所述指令读取单元基于所述第一控制指令向一级指令缓存发送需要执行的可变长指令加载请求,以加载需要执行的可变长指令。
8.根据权利要求6所述的方法,其特征在于,所述需要执行的可变长指令加载完成之后,所述指令缓存控制器控制指令解析单元将所述需要执行的可变长指令进行解析,获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分,包括:
所述指令读取单元加载完成所述需要执行的可变长指令之后,所述指令缓存控制器向所述指令解析单元发送第二控制指令;
所述指令解析单元基于所述第二控制指令将所述需要执行的可变长指令进行解析,以获得所述需要执行的可变长指令的指令头部分、操作部分以及常量部分。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述单指令多线程处理器通过程序计数器获得请求的可变长指令地址后,获取所述需请求的可变长指令对应的游标标识;
所述单指令多线程处理器根据所述游标标识访问所述解码缓存中的指令头解码缓存、操作部分解码缓存以及常量解码缓存,获取所述需请求的可变长指令的指令头部分数据、操作部分数据以及常量部分数据。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有可变长指令的缓存程序,所述可变长指令的缓存程序被至少一个处理器执行时实现权利要求6至9任一项所述可变长指令的缓存方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210529394.4A CN114625419B (zh) | 2022-05-16 | 2022-05-16 | 一种可变长指令的缓存结构、方法及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210529394.4A CN114625419B (zh) | 2022-05-16 | 2022-05-16 | 一种可变长指令的缓存结构、方法及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114625419A true CN114625419A (zh) | 2022-06-14 |
CN114625419B CN114625419B (zh) | 2022-08-26 |
Family
ID=81907113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210529394.4A Active CN114625419B (zh) | 2022-05-16 | 2022-05-16 | 一种可变长指令的缓存结构、方法及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625419B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090019263A1 (en) * | 2007-07-10 | 2009-01-15 | Shen Gene W | Method and Apparatus for Length Decoding Variable Length Instructions |
CN101646999A (zh) * | 2007-04-04 | 2010-02-10 | 高通股份有限公司 | 以适当的预解码预载来自可变长度指令集的指令的系统、方法和软件 |
US20110276764A1 (en) * | 2010-05-05 | 2011-11-10 | International Business Machines Corporation | Cracking destructively overlapping operands in variable length instructions |
CN102426516A (zh) * | 2011-09-29 | 2012-04-25 | 杭州中天微系统有限公司 | 基于两级片上缓存的可变长度指令集的预解码装置 |
CN102591620A (zh) * | 2006-05-04 | 2012-07-18 | 高通股份有限公司 | 预解码可变长度指令 |
CN103336681A (zh) * | 2013-07-03 | 2013-10-02 | 同济大学 | 针对采用变长指令集的流水线结构处理器的取指方法 |
CN108089882A (zh) * | 2016-11-23 | 2018-05-29 | 想象技术有限公司 | 编码和解码可变长度指令 |
-
2022
- 2022-05-16 CN CN202210529394.4A patent/CN114625419B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591620A (zh) * | 2006-05-04 | 2012-07-18 | 高通股份有限公司 | 预解码可变长度指令 |
CN101646999A (zh) * | 2007-04-04 | 2010-02-10 | 高通股份有限公司 | 以适当的预解码预载来自可变长度指令集的指令的系统、方法和软件 |
US20090019263A1 (en) * | 2007-07-10 | 2009-01-15 | Shen Gene W | Method and Apparatus for Length Decoding Variable Length Instructions |
US20110276764A1 (en) * | 2010-05-05 | 2011-11-10 | International Business Machines Corporation | Cracking destructively overlapping operands in variable length instructions |
CN102426516A (zh) * | 2011-09-29 | 2012-04-25 | 杭州中天微系统有限公司 | 基于两级片上缓存的可变长度指令集的预解码装置 |
CN103336681A (zh) * | 2013-07-03 | 2013-10-02 | 同济大学 | 针对采用变长指令集的流水线结构处理器的取指方法 |
CN108089882A (zh) * | 2016-11-23 | 2018-05-29 | 想象技术有限公司 | 编码和解码可变长度指令 |
Non-Patent Citations (3)
Title |
---|
B.SOLOMON ET AL.: "Micro-operation cache: a power aware frontend for variable instruction length ISA", 《IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS》 * |
G. INTRATER ET AL.: "Performance Evaluation of a Decoded Instruction Cache for Variable Instruction-Length Computers", 《PROCEEDINGS THE 19TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE》 * |
杨惠 等: "一种基于VLIW结构的高性能变长指令发射机制", 《计算机研究与发展》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114625419B (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6151662A (en) | Data transaction typing for improved caching and prefetching characteristics | |
US6832296B2 (en) | Microprocessor with repeat prefetch instruction | |
US5761468A (en) | Hardware mechanism for optimizing instruction and data prefetching by forming augmented prefetch instructions | |
US5742802A (en) | Method and system for efficiently mapping guest instruction in an emulation assist unit | |
US6408383B1 (en) | Array access boundary check by executing BNDCHK instruction with comparison specifiers | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
US8924648B1 (en) | Method and system for caching attribute data for matching attributes with physical addresses | |
US5509137A (en) | Store processing method in a pipelined cache memory | |
US6321328B1 (en) | Processor having data buffer for speculative loads | |
JPH07325761A (ja) | 仮想記憶システムに使用するための装置 | |
US20090177842A1 (en) | Data processing system and method for prefetching data and/or instructions | |
US6684319B1 (en) | System for efficient operation of a very long instruction word digital signal processor | |
JP5625809B2 (ja) | 演算処理装置、情報処理装置及び制御方法 | |
CN110806900B (zh) | 一种访存指令处理方法及处理器 | |
US20180173535A1 (en) | Determining a predicted behaviour for processing of instructions | |
US20070233963A1 (en) | Data processing system and method for processing data | |
US7555609B2 (en) | Systems and method for improved data retrieval from memory on behalf of bus masters | |
CN114625419B (zh) | 一种可变长指令的缓存结构、方法及介质 | |
US8484445B2 (en) | Memory control circuit and integrated circuit including branch instruction and detection and operation mode control of a memory | |
JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
CN108874690B (zh) | 数据预取的实现方法和处理器 | |
CN110704108B (zh) | 解释执行字节码指令流的方法及装置 | |
CN113760783B (zh) | 联合偏移预取方法、装置、计算设备和可读存储介质 | |
US20060200631A1 (en) | Control circuit and control method | |
US7496740B2 (en) | Accessing information associated with an advanced configuration and power interface environment |
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 | ||
CP03 | Change of name, title or address |
Address after: Room 301, Building D, Yeda Science and Technology Park, No. 300 Changjiang Road, Yantai Area, China (Shandong) Pilot Free Trade Zone, Yantai City, Shandong Province Patentee after: Xi'an Xintong Semiconductor Technology Co.,Ltd. Address before: Room T1 301, Taiwei intelligent chain center, No. 8, Tangyan South Road, high tech Zone, Xi'an, Shaanxi 710065 Patentee before: Xi'an Xintong Semiconductor Technology Co.,Ltd. |
|
CP03 | Change of name, title or address |