一种非对齐地址访存的融合编码状态机实现方法与流程

文档序号:20917610发布日期:2020-05-29 13:44阅读:373来源:国知局

本发明涉及状态机技术领域,具体为一种非对齐地址访存的融合编码状态机实现方法。



背景技术:

对齐的访存方式不但能使处理器流水线更加高效,同时也能简化地址冲突的检测逻辑,因此高效的访存指令序列偏爱对齐地址的访问,比如访问双字,那么地址低三位应为全0,访问字,那么地址低两位应为全0,访问半字,lsb应为0,只有访问字节,可以不需要地址对齐,因此大多数程序会天然的编译成对齐地址访存,但是依然有部分库函数,里面的程序是非对齐访问的,并且如果每次都需要做程序移植,则繁琐、耗费时间长,为此,我们提出了一种非对齐地址访存的融合编码状态机实现方法。



技术实现要素:

本发明的目的在于提供一种非对齐地址访存的融合编码状态机实现方法,以解决上述背景技术中提出的依目前状态机里面的程序是非对齐访问的,并且如果每次都需要做程序移植,则繁琐、耗费时间长的问题。

为实现上述目的,本发明提供如下技术方案:一种非对齐地址访存的融合编码状态机实现方法,其特征在于:该非对齐地址访存的融合编码状态机实现方法具体步骤如下:

s1:存储请求对应的位于状态编码的高三位内的访存范围;

s2:顺序发送对齐地址的访存请求,等待数据缓存并拼接;

s3:状态机状态初始化;

s4:状态机状态转换;

s5:数据缓存等待数据的回填,通过着色过程记录当前多笔对齐请求所读数据是否被完全返回,并且每一笔对齐的地址请求有位置信息来标示该数据处在所需数据块的位置;

s6:根据指令的访存范围,来生成范围向量进行数据拼接;

s7:数据拼接完成后,缓存内的数据进行后续的剪切和扩展操作,返回体系结构寄存器。

优选的,所述步骤s6中,每次返回的对齐请求携带位置和范围信息来更新范围向量。

与现有技术相比,本发明的有益效果是:该种非对齐地址访存的融合编码状态机实现方法,融合了对齐地址访存范围信息的编码,能够节省硬件面积开销,融合了发送结束状态的编码,能够简化硬件发送的判断逻辑,方便地记录了返回数据的状态,跟踪整个指令的执行结束。

具体实施方式

下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种技术方案:本发明涉及到了非对齐地址访存的硬件实现方式,其中核心在于状态机的设计和高效的编码,可以在硬件通过检测访存地址和访存范围来决定访存指令接下来的拆分动作,通过列举所有非对齐访存,得出以下拆分表格:

mask:byte000/half001/word011/doubleword111

地址代表访存地址的低四位,假设第四位为0,减少了不必要的跨cacheline甚至跨页问题的干扰。

从而可以发现可以由访存的范围和初始地址决定拆分状态机,进一步合并状态机,可以得到以下的状态和对应的编码:

工作分为两个阶段:顺序发送对齐地址的访存请求,等待数据缓存并拼接。因此需要标示发送结束的状态,可以看出通过判断低三位如果是全0,那么代表所有请求发送结束,此外每次对齐的地址请求需要标示范围信息来进行后续的数据拼接,就需要存储这个请求对应的访问范围,但是可以当前编码中已经巧妙的将访存范围放在了状态编码的高三位,完全兼容mask的编码,从而将很多信息都融合在了状态机的编码里面,简化硬件判断逻辑和面积开销。

状态机的工作原理:

初始化状态

状态切换

数据拼接阶段

访存有可能发生不命中,因此每一笔非对齐的指令都需要有数据缓存来等待数据的回填,同时需要有着色过程来记录当前多笔对齐请求所读数据是否被完全返回,为了完成正确的拼接,还需要每一笔对齐的地址请求有位置信息来标示该数据处在所需数据块的位置。

首先根据指令的访存范围,来生成范围向量:

每次返回的对齐请求会携带位置和范围信息来更新范围向量,比如,有一个访存需要一个字,地址为0001,会被拆成byte,half,byte,那么返回的请求依次是(位置0范围byte),(位置1范围half),(位置3,范围byte),并把范围向量更新为11110001,11110111,11111111,当检测到范围向量被更新成全1,代表所有数据都返回成功。

当数据拼接完成,该缓存内的数据会进行后续的剪切和扩展操作,返回体系结构寄存器。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1