一种数据高速缓存的访问装置的制造方法

文档序号:8258378阅读:338来源:国知局
一种数据高速缓存的访问装置的制造方法
【技术领域】
[0001]本发明属于微处理器领域,涉及一种数据高速缓存的访问装置,尤其是一种可降低数据高速缓存功耗的访问装置。
【背景技术】
[0002]在处理器系统中,通常在处理器和主存储器之间设立高速缓存,以减少对主存储器的访问,提高数据的存储速度,从而提升存储器的整体性能。
[0003]参照图1所示,综合性能和功耗方面的考虑,处理器通常采用k路-组相连的数据高速缓存:对于读数据操作,处理器同时访问数据高速缓存的k路数据阵列和标签阵列,再根据与k路标签的比较结果判断是否可从k路数据阵列中选取一路数据返回;对于写数据的操作,则通过访问标签阵列获取其在高速缓存中的位置信息,根据此信息确定是否将数据写入k路数据阵列中的一路。但这种传统的访问方式,无论高速缓存的命中率如何,每次访问操作都不可避免地需要对其余(k-Ι)路不需要的数据或者标签进行访问。由于高速缓存的数据阵列和标签阵列都是以SRAM作为物理存储载体,每次对其进行访问都需要电压驱动使能SRAM,这种k选I的访问方式大大增加了访问高速缓存的功耗。

【发明内容】

[0004]为了克服已有数据高速缓存的访问装置的功耗较大、限制处理器性能的不足,本发明提供了一种有效降低功耗、提升处理器性能的数据高速缓存的访问装置。
[0005]本发明解决其技术问题所采用的技术方案是:
[0006]一种数据高速缓存的访问装置,所述访问装置包括:
[0007]访问记录表,包含η个表项,用于记忆数据地址及其在数据高速缓存中的位置信息,η为整数;
[0008]地址比较单元,由η个比较器组成,将输入的数据地址与访问记录表中所有表项的地址分别比较,产生η个表项的命中信息;
[0009]访问控制单元,连接于地址比较单元的输出端,根据地址比较单元的命中信息,访问访问记录表并获取相应的位置信息,产生对数据高速缓存的访问控制信号;
[0010]堆栈指针检测单元,用于对输入的数据地址进行堆栈指针的检查,产生堆栈访问的指示信号;
[0011]创建控制单元,连接于地址比较单元和堆栈指针检测单元的输出端,用于控制访问记录表的表项创建;
[0012]访问记录表以缓存行为单位记录其在数据高速缓存中的位置信息,每个访问记录表的表项记忆M个相邻高速缓存行的位置信息,M为整数。
[0013]进一步,所述访问装置还包括:反馈单元,用于根据地址比较单元的输出结果控制是否将此次输入的数据地址访问高速缓存所得到的位置信息写入访问记录表。
[0014]再进一步,所述访问装置还包括:清空控制单元,用于控制访问记录表内容的清空,即把所有表项置为无效,清空单元在以下两种情况下会清空访问记录表,包括:(1)数据高速缓存发生了回填行为;(2)虚拟地址对物理地址的映射关系发生变动。
[0015]清空控制单元对访问记录表的写权限最高,当清空单元需要清空访问记录表的信息时,创建控制单元和反馈单元对访问记录表的写操作均失效。
[0016]所述访问记录表的表项由有效位字段、地址字段、位置信息字段以及锁定字段四部分组成:所述有效位字段表征此表项所存信息是否有效;所述地址字段用于表征高速缓存行的地址信息,并与输入的数据地址进行比较;所述位置信息字段包括M个子信息,分别存储对应的M个高速缓存行在高速缓存中的位置信息;所述锁定字段表征此表项是否能够被替换。
[0017]当所述地址比较单元的输出结果显示输入的数据地址不与任何有效表项的地址相等时,所述创建控制单元则在访问记录表中选取一个表项进行创建,即把输入的数据地址写入该表项的地址字段,同时把该表项的有效位字段置起,位置信息字段清除。
[0018]若堆栈检测单元检测到输入的数据地址是堆栈指针时,将锁定字段置起,表示该表项将一直保留,所述创建控制单元将不再选取该表项进行创建。
[0019]所述地址比较单元的输入地址以及存入访问记录表的地址为虚拟地址。
[0020]针对k路-组相联的数据高速缓存,访问记录表的表项中的位置信息记录的是该表项的地址对应的物理地址在k路-组相联数据高速缓存中的位置信息,此信息在该地址完成对数据高速缓存的k路标签访问以及标签比较后获得,由反馈单元将其写入该表项的位置信息字段的对应子信息中。
[0021]在输入的数据地址访问数据高速缓存前,访问控制单元会检测其是否同时满足以下两个条件:a、地址比较单元的输出结果显示输入的数据地址与某一有效表项的地址相等;b、该表项的位置信息显示该表项地址对应的物理地址位于数据高速缓存的某一路中;
[0022]若两个条件同时满足,对于数据高速缓存的读请求,访问控制单元只开启高速缓存中输入地址对应的访问记录表项中位置信息所指向的一路数据阵列,关闭其余(K-1)路数据阵列和k路标签阵列;对于数据高速缓存的写请求,访问控制单元则会关闭全部数据阵列和标签阵列,直接获取该输入地址的位置信息;
[0023]若两条件不同时满足时,对于数据高速缓存的读请求,访问控制单元则会开启全部数据阵列和标签阵列,对于数据高速缓存的写请求,访问控制单元则会开启k路标签阵列。
[0024]本发明的有益效果主要表现在:有效降低功耗、提升处理器性能。
【附图说明】
[0025]图1为传统的读取k路-组相联高速缓存数据的访问机制图。
[0026]图2为一种数据高速缓存的访问装置结构方块示意图。
[0027]图3为访问记录表的结构组成实例图。
[0028]图4为地址比较单元结构实例图。
[0029]图5为访问控制单元控制高速缓存访问使能信号的实例图。
【具体实施方式】
[0030]下面结合附图对本发明作进一步描述。
[0031]参照图2?图4,一种数据高速缓存的访问装置,包括:访问记录表,地址比较单元,访问控制单元,堆栈指针检测单元,仓Il建控制单元,反馈单元以及清空控制单元。其中:
[0032]访问记录表为一包含η个表项的表格,记录历史访问的地址及其在数据高速缓存中的位置信息,由创建控制单元,堆栈指针检测单元,反馈单元和清空单元共同维护。
[0033]地址比较单元包含有限个比较器,将输入的数据地址与访问记录表中记录的地址进行比较,将比较结果输出给访问控制单元、创建单元以及反馈单元。
[0034]访问控制单元根据地址比较单元的输出结果和访问记录表中相应的位置信息控制高速缓存的访问使能信号。
[0035]堆栈指针检测单元检测输入的数据地址是否为一次堆栈指针访问,并将检测结果输出给创建控制单元。
[0036]创建控制单元包含一个创建指针,始终指向访问记录表的某一表项,创建控制单元根据地址比较单元和堆栈指针检测单元返回的结果控制访问记录表的创建。
[0037]反馈单元根据地址比较单元的输出结果控制是否将此次输入的数据地址访问高速缓存所得到的位置信息写入访问记录表。
[0038]清空控制单元控制访问记录表内容的清空,即把所有表项置为无效。清空单元在以下两种情况下会清空访问记录表,包括:(I)数据高速缓存发生了回填行为;⑵虚拟地址对物理地址的映射关系发生变动。
[0039]清空控制单元对访问记录表的写权限最高,当清空单元需要清空访问记录表的信息时,创建控制单元和反馈单元对访问记录表的写操作均失效。
[0040]参照图3所示,为访问记录表的组成实施例图。访问记录表共有η个表项,每个表项的信息包括四项:有效位、地址、位置信息以及锁定位。有效位表征此表项所存信息是否有效;地址用于与输入的数据地址进行比较;位置信息包括M个子信息,分别存储对应的M个相邻缓存行的位置信息;锁定位表征此表项是否能够被替换。
[0041]本实施例中,有效位字段的位宽为1,用vld表示,vld = I表示表项有效,vld =O表示无效。清空单元在清空时将访问记录表的所有表项的有效位置0,创建控制单元在创建时将创建指针指向的表项的有效位置I。
[0042]访问记录表以缓存行为单位记录其在数据高速缓存中的位置信息,一个表项可以记录M个相邻缓存行的位置信息,这M个相邻缓存行组成一个缓存块,创建单元在创建时截取输入的数据地址中表示缓存块的一段存入到创建指针指向的表项的地址字段。本实施例中,表项的地址字段用addr表示。
[0043]位置信息字段中每个子信息的位宽为k,在表项创建时被清零,随后由反馈单元将相应访问地址访问高速缓存的位置信息结果更新到此区域的某个子信息中,通过输入的数据地址索引。在本实施例中,位置信息用P [M-1:0]
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1