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

技术编号:24330964 阅读:42 留言:0更新日期:2020-05-29 19:35
本发明专利技术公开的属于状态机技术领域,具体为一种非对齐地址访存的融合编码状态机实现方法,其特征在于:该非对齐地址访存的融合编码状态机实现方法具体步骤如下,S1:存储请求对应的位于状态编码的高三位内的访存范围,S2:顺序发送对齐地址的访存请求,等待数据缓存并拼接,S3:状态机状态初始化,S4:状态机状态转换,S5:数据缓存等待数据的回填,该种非对齐地址访存的融合编码状态机实现方法,融合了对齐地址访存范围信息的编码,能够节省硬件面积开销,融合了发送结束状态的编码,能够简化硬件发送的判断逻辑,方便地记录了返回数据的状态,跟踪整个指令的执行结束。

Implementation of a fusion coding state machine for memory access of non aligned addresses

【技术实现步骤摘要】
一种非对齐地址访存的融合编码状态机实现方法
本专利技术涉及状态机
,具体为一种非对齐地址访存的融合编码状态机实现方法。
技术介绍
对齐的访存方式不但能使处理器流水线更加高效,同时也能简化地址冲突的检测逻辑,因此高效的访存指令序列偏爱对齐地址的访问,比如访问双字,那么地址低三位应为全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.一种非对齐地址访存的融合编码状态机实现方法,其特征在于:该非对齐地址访存的融合编码状态机实现方法具体步骤如下:/nS1:存储请求对应的位于状态编码的高三位内的访存范围;/nS2:顺序发送对齐地址的访存请求,等待数据缓存并拼接;/nS3:状态机状态初始化;/nS4:状态机状态转换;/nS5:数据缓存等待数据的回填,通过着色过程记录当前多笔对齐请求所读数据是否被完全返回,并且每一笔对齐的地址请求有位置信息来标示该数据处在所需数据块的位置;/nS6:根据指令的访存范围,来生成范围向量进行数据拼接;/nS7:数据拼接完成后,缓存内的数据进行后续的剪切和扩展操作,返回体系结构寄存器。/n

【技术特征摘要】
1.一种非对齐地址访存的融合编码状态机实现方法,其特征在于:该非对齐地址访存的融合编码状态机实现方法具体步骤如下:
S1:存储请求对应的位于状态编码的高三位内的访存范围;
S2:顺序发送对齐地址的访存请求,等待数据缓存并拼接;
S3:状态机状态初始化;
S4:状态机状态转换;
S5:数据缓存等待数据的回填,通过着色过程记录当前多笔对齐请求所读数据是否被完全返回...

【专利技术属性】
技术研发人员:费晓龙杨亭
申请(专利权)人:华夏芯北京通用处理器技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1