[发明专利]基于两级片上缓存的可变长度指令集的预解码装置无效
申请号: | 201110293266.6 | 申请日: | 2011-09-29 |
公开(公告)号: | CN102426516A | 公开(公告)日: | 2012-04-25 |
发明(设计)人: | 李春强;赵朝君;胡军山;莫鹏飞 | 申请(专利权)人: | 杭州中天微系统有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵;王利强 |
地址: | 310012 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 两级 缓存 可变 长度 指令 解码 装置 | ||
技术领域
本发明涉及处理器的领域,尤其是一种预解码装置。
背景技术
在处理器领域中,为了平衡指令操作的功能性和存储成本,部分处理器采用可变长度指令集,一般来说,可变长度指令集包括具有基础尺寸的指令以及具有整数倍基础尺寸的较长指令,举例来说,中天公司的16/32位混编指令,以及ARM的thumb 2(16/32位混编)指令集。可变长度指令集的兼顾了指令功能和存储成本的特点所带来的缺点是,增加了指令解码的难度,现有的解码方法一般都是在确定了指令边界后,按照16位和32位分别解码的方法。
在现有广泛处理器架构中,通过片上一级或多级高速缓冲存储器以缓存所需的指令和数据,以期获得更高的处理器性能。一般情况下,处理器从指令高速缓冲存储器中读取指令,然后开始处理指令数据。而为了进一步挖掘处理器性能,现有多数高性能处理器在第一级高速缓冲存储器之前就开始对指令进行处理,即对指令进行部分有效信息的预解码,这样的预解码装置存在于片上第一级缓冲存储器和第二级缓冲存储器或片外存储器之间,第一级缓冲存储器存储预译码信息,以期望在流水线处理器取指令之后有更好的时序性能。
在可变长度指令集的处理器架构中,所遇到的问题是,由于指令在数据块中的位置是不确定的,即指令边界是未知的,如果需要对数据块进行正确的译码,就必须要确定指令的边界,而现有通常的做法是上述的预解码装置的首要工作就是确定指令的边界,然后根据指令边界得到的指令进行下一步的解码工作,这种做法的缺点在于,对指令的解码是串行的操作,如果需要更多的预解码信息,就需要更宽松的时序要求,而在高性能的流水线处理器中,插入于两级缓冲存储器之间的预解码器往往不能完成更多的操作而只是得到指令边界指示信息。比如,分支跳转的响应速度对流水线处理器的影响很大,为了提高性能,往往希望更早的得到分支跳转等预解码信息,而现有的预解码装置不能获得更多有效的信息用于提前流水线处理器下级操作速度和降低流水线处理器的下级设计难度,这样的方式不利于进一步挖掘处理器的性能。
发明内容
为了克服在片上第一级高速缓存和片上第二级高速缓存或片外存储器之间的预解码装置不能获取更多指令解码信息量、限制了处理器性能的不足,本发明提供了一种在满足时序要求下能获取更多有用解码信息、提升处理器性能的基于两级片上缓存的可变长度指令集的预解码装置。
本发明解决其技术问题所采用的技术方案是:
一种基于两级片上缓存的可变长度指令集的预解码装置,所述预解码装置包括:
数据回填缓冲器,用于缓存来自片外的指令数据;
第二级高速缓存,用于存储指令数据;
第一级高速缓存,用于存储指令数据和预解码信息;
并行指令预解码单元,用于从第二级高速缓存或数据回填缓冲器中选择指令数据块作为输入,将获取的指令数据按照最短指令长度划分,并对每一个划分后数据块按照可变长度指令集中所有指令长度格式对所需信息进行并行解码,并产生预解码信息,所述预解码信息包括所有长度指令的正确解码信息和长度整数倍于最短指令长度指令的冗余解码信息,将该预解码信息合并指令数据块送入第一级高速缓存中;
预解码数据封装单元,用于通过指令pc确定当前指令数据块中的第一条指令位置,并通过指令长度标识位确定数据块中的所有指令的指令边界,按照指令边界选择对应指令的预解码信息并舍弃预解码信息中的多余解码信息,封装为按照指令的预解码信息。
作为优选的一种方案:并行预解码单元将第二级高速缓存中获取的指令数据与并行预解码产生的预解码信息共同发送到第一级高速缓存中存储。
本发明的有益效果主要表项在:更快更多的获取指令预解码信息,平衡处理器各级的解码难度,提升处理器的性能。
附图说明
图1为一种基于两级片上缓存的预解码装置示意图。
图2为该装置中预解码单元示意图。
图3位该装置中预解码信息封装单元示意图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图3,一种基于两级片上缓存的可变长度指令集的预解码装置,所述预解码装置包括:
数据回填缓冲器,用于缓存来自片外的指令数据;
第二级高速缓存,用于存储指令数据;
第一级高速缓存,用于存储指令数据和预解码信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州中天微系统有限公司,未经杭州中天微系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110293266.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带有双色涂层的红外灯管或灯泡
- 下一篇:一种缝纫机滤油器调节装置