具有固定数量的可变长度指令的指令高速缓存器的制造方法

文档序号:8339359阅读:226来源:国知局
具有固定数量的可变长度指令的指令高速缓存器的制造方法
【专利说明】
[0001] 本申请为发明名称为"具有固定数量的可变长度指令的指令高速缓存器"的原中 国发明专利申请的分案申请。原申请的中国申请号为200680034364. 5 ;原申请的申请日为 2006年7月26日,其国际申请号为PCT/US2006/029523。
技术领域
[0002] 本发明一般来说涉及处理器领域,且特定来说涉及具有指令高速缓存器的处理 器,所述指令高速缓存器存储固定数量的可变长度指令。
【背景技术】
[0003] 微处理器在各种各样的应用中执行计算任务,其中包含便携式电子装置。在许多 情形中,使处理器性能最大化是主要设计目标,以准许在便携式电子装置及其他应用中实 施额外的功能及特征。另外,功率消耗是具有有限电池容量的便携式电子装置中令人特别 关心的问题。因此,所需要的是提高性能且降低功率消耗的处理器设计。
[0004] 多数现代处理器采用一个或多个指令执行管线,其中对许多多步序列指令的执行 经重叠以改善总体处理器性能。利用多数程序的空间和时间局部性特性,将最近执行的指 令存储在高速缓存器(一种高速、通常芯片上存储器)中以供执行管线随时存取。
[0005] 许多处理器指令集体系结构(ISA)包含可变长度指令。也就是说,从存储器读取 的指令操作码并不都占据相同的空间量。这可由随算术或逻辑指令包含操作数、将多个操 作合并到一个超长指令字(VLIW)或其他体系结构特征中而引起。可变长度指令的一个缺 点是,在从指令高速缓存器中提取指令时,处理器必须确定每一指令的边界,这是一项消耗 功率且降低性能的计算任务。
[0006] 所属技术领域中已知的一种在可变长度指令存在时改善指令高速缓存器存取的 方法是:在将指令存储到高速缓存器之前先对其进行"预解码",且另外地将一些指令边界 信息连同所述指令一起存储到高速缓存线中。这会降低但不会消除施加到解码任务上的确 定指令边界带来的额外计算负担。
[0007] 同样,通过以从存储器中读取指令的相同压缩形式将所述指令装入高速缓存器 中,有时候指令是未对准的,其中指令的一部分被存储在一个高速缓存线的末端处且剩余 部分被存储在连续高速缓存线的开始处。提取这个指令需要两次高速缓存器存取,从而进 一步降低性能且增加功率消耗,尤其是每次执行所述指令都需要所述两次存取时。
[0008] 图1绘示存储可变长度指令(11-19)的现有技术指令高速缓存器的两个线100、 140的代表图。在这个代表性实例中,每一高速缓存线均包括十六个字节,且采用32位字大 小。多数指令为一个字宽或四个字节。某些指令为半个字宽,包括两个字节。第一高速缓 存线100及相关联的标签字段120含有指令Il到14,及指令15的一半。第二高速缓存线 140及其相关联标签字段160含有指令15的另一半,及指令16到19。指令长度及其地址 汇总在下表中:
[0009]
【主权项】
L 一种在具有可变指令长度的处理器中进行高速缓存器管理的方法,所述包括: 在高速缓存器的第一高速缓存线中存储包括固定数量的指令的第一多个指令,所述第 一多个指令包括第一指令和第二指令,其中,所述第一指令具有第一指令长度,所述第二指 令具有不同于所述第一指令长度的第二指令长度,其中,所述固定数量是不会使得跨越所 述第一高速缓存线未对准地存储指令的数量; 在所述高速缓存器的第二高速缓存线中存储包括所述固定数量的指令的第二多个指 令;及 在所述高速缓存器中紧邻所述第一高速缓存线之后存储下列之一: 下一提取地址;或 偏移,所述偏移在被添加到与所述第一高速缓存线相关的高速缓存线标签地址时产生 所述下一提取地址。
2. 如权利要求1所述的方法,其进一步包括: 检查所述第一多个指令中的每个指令,以确定所述每个指令的相应的长度;及 沿预定边界将所述第一多个指令中的每个指令对准。
3. 如权利要求1所述的方法,其进一步包括在将所述第一多个指令放置在所述第一高 速缓存线中之前,确定下列中的至少一个: 所述下一提取地址;或 所述偏移。
4. 一种处理器,其包括: 指令高速缓存器,包括: 第一高速缓存线,用以存储包括第一指令和第二指令的固定数量的指令,其中,所述第 一指令具有第一指令长度,所述第二指令具有不同于所述第一指令长度的第二指令长度, 其中,所述固定数量是不会使得跨越所述第一高速缓存线未对准地存储指令的数量;及 第二高速缓存线,用以存储所述固定数量的指令;其中,所述第一高速缓存线进一步用 以存储下列之一: 下一提取地址;及 偏移,所述偏移在被添加到与所述第一高速缓存线相关的高速缓存线标签地址时,产 生所述下一提取地址。
5. 如权利要求4所述的处理器,其进一步包括: 预解码器,用以将所述第一指令与所述第二指令中的每一者与所述第一高速缓存线的 相应的预定边界对准。
6. 如权利要求5所述的处理器,其中所述预解码器用以: 计算紧跟在写入到高速缓存线的最后一个指令后的下一指令的所述下一提取地 址;及 在所述第一高速缓存线中存储所述下一指令的所述下一提取地址和所述偏 移中中的一者。
7. 如权利要求4所述的处理器,其进一步包括: 指令执行管线,用以执行具有可变长度的指令。
8. -种在具有可变指令长度的处理器中进行高速缓存器管理的方法,所述方法包括: 在高速缓存器的第一高速缓存线中存储包括固定数量的指令的多个指令,所述多个指 令包括第一指令和第二指令,其中,所述第一指令具有第一指令长度,所述第二指令具有不 同于所述第一指令长度的第二指令长度,其中,所述固定数量大于1,且其中,其中,所述固 定数量是不会使得跨越所述第一高速缓存线未对准地存储指令的数量。
9. 如权利要求8所述的方法,其进一步包括: 检查所述多个指令中的每个指令,以确定其长度;及 在将所述多个指令放置在所述高速缓存器中之前,将所述多个指令中的每个指令沿着 相应的预定边界对准。
10. 如权利要求8所述的方法,其中,所述多个指令中的每个指令具有相应的指令长 度,所述指令长度最大是字长度。
11. 如权利要求9所述的方法,其中,至少一个预定边界是字边界。。
12. 如权利要求8所述的方法,其进一步包括: 在所述高速缓存器中紧邻所述第一高速缓存线之后存储下一提取地址。
13. 如权利要求12所述的方法,其进一步包括: 在将所述多个指令存储在所述第一高速缓存线中之前,确定所述下一提取地址。
14. 如权利要求8所述的方法,其进一步包括: 在所述高速缓存器中紧邻所述第一高速缓存线之后存储一偏移,所述偏移在被添加到 与所述第一高速缓存线相关的高速缓存线标签地址时产生下一提取地址。
【专利摘要】本申请涉及具有固定数量的可变长度指令的指令高速缓存器。固定数量的可变长度指令存储在指令高速缓存器的每一线中。所述可变长度指令沿预定的边界对准。由于所述线中的每一指令的长度是未知的,且因此所述指令占据的存储器的范围是未知的,所以计算出下一紧随指令的地址并用高速缓存线对其进行存储。在将所述指令放置在高速缓存器中之前,在预解码器中执行确定指令边界、对准指令及计算下一提取地址。
【IPC分类】G06F9-30, G06F9-38
【公开号】CN104657110
【申请号】CN201510049939
【发明人】杰弗里·托德·布里奇斯, 詹姆斯·诺里斯·迪芬德尔费尔, 罗德尼·韦恩·史密斯, 托马斯·安德鲁·萨托里乌斯
【申请人】高通股份有限公司
【公开日】2015年5月27日
【申请日】2006年7月26日
【公告号】CN101268440A, EP1910919A2, US7568070, US20070028050, WO2007016393A2, WO2007016393A3
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1