本发明专利技术提供了一种指令缓冲与对齐缓冲装置,包括:指令缓冲区IB,包括2n个指令行IB[0]~IB[2n-1],每行包括2m个单元;以及对齐缓冲区AB,包括2个指令行AB[0]和AB[1],每行包括2m个单元,其中:其中n、m是正整数;每个单元的宽度为处理器支持的最小指令宽度;以及IB和AB连接为使得从指令存储器返回的指令包被优先写入AB中,在AB存满指令之后,写入IB中。本发明专利技术还提供了该指令缓冲与对齐缓冲装置的操作方法。
【技术实现步骤摘要】
本专利技术涉及处理器设计领域,尤其涉及一种。
技术介绍
在超长指令字处理器中,为了提高程序的执行性能,一般都采用一个指令缓冲将取指令流水和指令执行流水分开。以此来减少指令访存停顿对执行流水的影响。指令访存总线的宽度一般等于最大的并行指令包的宽度,而同一时钟周期可以发射进入执行级进行译码执行的指令条数却不固定,最少为I条,最多为指令包的指令数目。因而执行包中的指令宽度也不固定。当从指令缓冲中读取执行包时,需要进行指令对齐,即根据指令编码的特点,从指令包中得到合适的执行包。在现有的处理器结构中,多发射处理器指令集日益丰富,指令拆包的流水级往往要承担指令存储,指令对齐,指令拆包,指令码识别,指令分发等功能,逻辑量大。随着技术的进步,对处理器的性能要求日益增高,处理器的工作频率也迅速增加,因而,在指令拆包分发的流水级,应该尽量降低数据通路的路径长度,提高处理器的频率。传统的指令缓冲结构中,指令读取逻辑负载大,路径延时长,在处理器日益增长的工作频率下,很可能成为处理器性能的瓶颈。
技术实现思路
为了从指令缓冲中读取执行包的逻辑量,提高处理器的运行速度,本专利技术提出了一种指令缓冲与对齐缓冲的装置及其操作方法。该装置包括指令缓冲区(Instruct1nBuffer, IB)和对齐缓冲区(Alignment Buffer,AB)。所述指令缓冲区和对齐缓冲区的宽度均等于指令总线的数据宽度,一般情况下,也等于处理器支持的最大并行包的指令宽度。指令缓冲区的深度可根据处理器的情况具体设定,主要用于存储从指令存储器中取回的指令包。对齐缓冲区的深度设置为2,主要用于实现指令对齐。从指令包中根据指令编码的特点读取执行包,执行包可能为I条或多条指令,一个执行包有可能跨越2个指令包,因而设置对齐缓冲的深度为2。当指令缓冲区与对齐缓冲区均为空的时候,从指令存储器返回的指令包优先写入对齐缓冲区,由低向高写入;当对齐缓冲区写满时,再由低向高写入指令缓冲区中。发送给译码单元的执行包均读取自对齐缓冲区。读取执行包时,均从对齐缓冲的低位行ΑΒ处读取,当最低位行读取完毕时,将高位行的内容依次写入次低位的行,如:IB的内容写入IB,IB的内容写入ΙΒ,ΙΒ的内容写入AB,AB的内容写入AB 。从对齐缓冲区中读取执行包时,以最小指令宽度为单位,设定读指针,从读指针指向处,读取一条或多条指令编码,根据处理器指令集并行指令的编码特点,判断当前执行包指令的数目,将执行包读出发送到译码单元,同时,根据读出执行包指令的宽度对读指针进行累加。本专利技术另一方面提供了一种上述指令缓冲与对齐缓冲装置的操作方法,包括写入步骤和读出步骤。写入步骤包括:(I)初始化时,指令缓冲区和对齐缓冲区均为空,读写指针均为O。(2)等待指令包从指令存储器中返回。(3)指令包返回时进行判断,首先检查AB是否满,若满,则将返回指令包写入IB写指针指向的IB行,并发送请求控制IB写指针累加,然后等待新的指令包返回;若AB不满,则进一步判断AB是否为空,若ΑΒ为空,则将返回的指令包写入ΑΒ,并发送请求控制AB写指针累加,然后等待新的指令包返回;SAB若不为空,则将返回指令包写入AB ,并发送AB满标志,然后等待新的指令包返回。读出步骤包括:(I)初始化时,指令缓冲,对齐缓冲均为空,读写指针均为O。(2)等待AB中指令包的写入(3)检查AB的状态:a.若AB和ΑΒ都满,则首先根据AB读指针位置进行执行包的读取,将读出执行包发送到译码单元,同时根据执行包长度修改AB读指针;然后判断读出的执行包是否跨越两个指令包,若是,则产生ΑΒ读完的标志信号,由其控制IB和AB中内容的更新,然后返回继续检查AB的状态;若不需要跨越两个指令包,则直接返回继续检查AB的状态。b.若AB空,ΑΒ满,则首先根据AB读指针的位置进行执行包的预读取,判断是否需要跨越指令包读取,若需要,则停止读取执行包,等待AB 的写入,保持AB读指针不变,并返回继续检查AB的状态;若不需要跨包读取,则将读出的执行包发送到译码单元,并且根据执行包长度修改AB读指针,并返回继续检查AB的状态。根据本专利技术的,可以降低执行包读出逻辑的负载以及读出逻辑的路径,从而提高处理器的运行速度。【附图说明】图1是经典处理器的内核结构图;图2是传统指令缓冲区的结构图;图3是传统指令缓冲区的读写逻辑结构图;图4是本专利技术实施例的指令缓冲与对齐缓冲装置的结构图;图5是本专利技术实施例的指令缓冲与对齐缓冲装置的读写逻辑结构图;图6是本专利技术实施例的指令缓冲与对齐缓冲装置的写入控制流程图;图7是本专利技术实施例的指令缓冲与对齐缓冲装置的读出控制流程图;【具体实施方式】为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术做进一步详细说明。图1是经典处理器的内核结构图;如图1所示,该处理器包括指令地址计算发送单元10,指令等待单元11,指令缓冲区12,指令译码单元13,执行单元14,写回单元15,指令存储单元16。其中指令地址计算发送单元10发送取指令地址给指令存储单元16,指令存储单元16根据指令地址,读取对应的指令行,将指令包返回,写入指令缓冲区12中,在指令缓冲区12中,进行指令对齐,根据指令集的编码特点,寻找指令串行或并行的标志位,通过读取串并行标志位的值进而判断执行包的分界从而读取执行包,发送到指令译码单元13进行进一步的译码,然后将译码结果发送到对应的执行单元14进行运算,最后通过写回单元15完成寄存器结果的写回。指令缓冲区12的主要作用有两个:(I)缓存返回的指令包(2)将指令包分解成执行包。图2是传统指令缓冲区的结构图。如图2所示,该指令缓冲区包括2n行,η是正整数,其选择可以根据处理器的面积,性能等约束确定。每行包括2m个单元,m是正整数。每个单元的宽度为处理器支持的最小指令宽度。例如在本专利技术的一个实施例中,处理器支持的指令宽度为16位或32位,并且支持指令并行执行,最大执行包的宽度为64位。因而,每行中的每个基本单元为16位,每行宽度为64位,m等于2。在图2中,每一行代表一个指令包,如图2中黑色标识,即从指令存储器中写回的指令包的宽度。执行包的长度可以为I个或多个最小单元,一个执行包可能位于一个指令行中,也可能跨越两个指令包,形成跨包的执行包,如图2中灰色标识。图3是传统指令缓冲区的读写逻辑结构图;具体包括指令包输入选择开关300-30X,多个指令缓冲行310-31X,多个初级执行包选择及拼接器320_32x,以及次级执行包选择及拼接器399。X的数目等于指令缓冲行最大的行号,如图2所示,设为2n-l。从指令存储器中返回的指令包,根据指令缓冲区的写指针控制选择开关组301-30X的闭与合,将指令当前第1页1 2 3 本文档来自技高网...
【技术保护点】
一种指令缓冲与对齐缓冲装置,包括:指令缓冲区IB,包括2n个指令行IB[0]~IB[2n‑1],每行包括2m个单元;以及对齐缓冲区AB,包括2个指令行AB[0]和AB[1],每行包括2m个单元,其中:其中n、m是正整数;每个单元的宽度为处理器支持的最小指令宽度;以及IB和AB连接为使得从指令存储器返回的指令包被优先写入AB中,在AB存满指令之后,写入IB中。
【技术特征摘要】
【专利技术属性】
技术研发人员:王琪,张志伟,丁光新,薛晓军,史明霞,侯化成,郭旭龙,
申请(专利权)人:中国科学院自动化研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。