一种支持数据快速获取的存储访问方法和装置与流程

文档序号:16208106发布日期:2018-12-08 07:22阅读:209来源:国知局
一种支持数据快速获取的存储访问方法和装置与流程

本发明涉及微处理器存储领域,具体涉及一种支持数据快速获取的存储访问方法和装置。

背景技术

微处理器设计中,存储访问部件是设计的重点和难点,存储部件需要执行指令系统中的数据获取和存储指令,为其它指令部件提供操作的数据来源,并将操作完成的数据存入存储器中。处理器核心和存储系统之间由于速度差异造成的“存储墙”问题日益严重,也就是存储系统数据供应难以适应处理器核心的数据处理速度,存储部件成为系统性能提升的“瓶颈”。当前微处理器的存储访问部件的设计中通过多级cache来缓解存储压力,减小数据获取的延迟。

如图1所示,存储访问的数据获取过程一般要经过虚拟地址生成、虚拟地址翻译成物理地址(访问tlb)、cache访问仲裁、访问cache、判断是否命中、数据写回等阶段。这一列操作需要多个时钟周期,而普通的整数算术运算操作一般只需要1个时钟周期,所以存储访问延迟优化仍是处理器性能提升的关键。在处理器设计中,可以通过多种方式优化存储访问的延迟,例如,可以通过将cache设计为虚拟地址寻址、物理地址标记,通过虚拟地址来访问cache,从而将tlb的访问和cache访问并行,减小访问cache带来的延迟。但是,即便在这样的设计下,当前主流高性能处理器在一级cache命中的情况下仍需要3~4个周期才能返回数据。

存储访问延迟无法进一步压缩的原因是要等虚拟地址生成后才能够访问cache和tlb。同时cache体一般比较大,无法进一步压缩访问所需的延迟。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种支持数据快速获取的存储访问方法和装置,本发明具有能够减少数据访问延迟、降低存储访问功耗、使用灵活方便的优点。

为了解决上述技术问题,本发明采用的技术方案为:

一种支持数据快速获取的存储访问方法,实施步骤包括:

1)跟踪存储访问的基地址和cache行信息,并根据基地址寄存器号查询快速访问缓存中所有项,通过比较寄存器号确定快速访问缓存中是否有命中的项,若没有命中的项,则跳转执行步骤4);否则跳转执行步骤2);

2)将快速访问缓存中命中项的数据读出,所述快速访问缓存中命中项存储的内容包括有效位、寄存器号、虚拟地址和存储的cache数据;

3)将地址产生模块生成的虚拟地址和在快速访问缓存中读出的cache行的虚拟地址进行比较,若地址一致则判定在快速访问缓存中读取的数据是正确的,直接将在快速访问缓存中读取的数据写结果到目的寄存器中,跳转执行步骤1);若地址不一致,则跳转执行步骤4);

4)进行普通的tlb和cache访问,在cache中读取数据并写入到目的寄存器中,根据cache访问更新快速访问缓存中的存储项;跳转执行步骤1)。

优选地,步骤4)中根据cache访问更新快速访问缓存中的存储项的详细步骤包括:

4.1)跟踪当前cache访问的基地址寄存器号和cache行号;

4.2)将当前cache访问的基地址寄存器号和本地的地址追踪缓存中的信息进行比较,判断是否有匹配的缓存项目,如果有匹配的缓存项目则跳转执行步骤4.3);否则如果没有匹配的缓存项目则跳转执行步骤4.6);

4.3)将当前cache访问的cache行号和匹配的缓存项目的cache行号进行比较,判断是否有cache行号也匹配的缓存项目,如果有cache行号也匹配的缓存项目,则跳转执行步骤4.4);否则,如果没有cache行号也匹配的缓存项目,则跳转执行步骤4.5);

4.4)不做任何操作;结束并退出;

4.5)在本地的地址追踪缓存中将匹配的缓存项目的cache行号修改为当前cache访问的cache行号;结束并退出;

4.6)在本地的地址追踪缓存中新分配一个缓存项,并将新分配的缓存项中写入当前cache访问的基地址寄存器号和cache行号;结束并退出。

本发明还提供一种支持数据快速获取的存储访问装置,包括支持数据快速获取的存储访问功能的微处理器,微处理器被编程以执行本发明支持数据快速获取的存储访问方法的步骤。

本发明还提供一种支持数据快速获取的存储访问装置,包括:

快速访问缓存,包括寄存器号比较逻辑和多个缓存项,存储访问时寄存器号比较逻辑使用基地址寄存器号查找多个缓存项,确定当前基地址寄存器号对应的缓存项,再从对应的缓存项中读取数据,包括有效位、寄存器号、虚拟地址和存储的cache数据;

快速访问判断逻辑,将地址产生模块生成的虚拟地址和在快速访问缓存中读出的cache行的虚拟地址进行比较,若地址一致则判定在快速访问缓存中读取的数据是正确的,否则判定在快速访问缓存中读取的数据是不正确的;

数据写回模块,用于在判定快速访问缓存中读取的数据正确时直接将在快速访问缓存中读取的数据写结果到目的寄存器中,在判定快速访问缓存中读取的数据不正确时进行普通的tlb和cache访问,在cache中读取数据并写入到目的寄存器中;

快速访问跟踪单元,用于根据cache访问更新快速访问缓存中的存储项

和现有技术相比,本发明具有下述优点:

1、减小数据获取的延迟。快速访问缓存通过寄存器号访问,无需虚拟地址或者物理地址。可以和地址产生单元并行,通过从快速访问缓存获取数据,可以避免tlb和cache访问的延迟,在命中快速访问存储的情况下,最快只需要1个时钟周期就能获取到需要的数据,从而数据获取操作可以节省1~3个时钟周期。

2、减小数据访问功耗。由于快速访问缓存只存少量的数据(几百字节),与访问cache(几万字节)相比,在命中的情况下,访问的功耗大大降低。

3、使用灵活。由于本发明的快速访问方法可以不修改原有存储访问的数据读取路径,通过在现有部件的基础上增加相应的模块进行即可实现,可以广泛应用于不同结构的存储部件。

附图说明

图1为现有存储部件的结构示意图。

图2为本发明实施例方法的基本实施流程示意图。

图3为应用本发明在现有存储部件上实施的结构示意图。

图4为本发明实施例中快速访问缓存和快速访问判断逻辑结构示意图。

图5为本发明实施例中快速访问缓存项的结构示意图。

具体实施方式

如图2所示,本实施例支持数据快速获取的存储访问方法的实施步骤包括:

1)跟踪存储访问的基地址和cache行信息,并根据基地址寄存器号查询快速访问缓存中所有项,通过比较寄存器号确定快速访问缓存中是否有命中的项,若没有命中的项,则跳转执行步骤4);否则跳转执行步骤2);

2)将快速访问缓存中命中项的数据读出,所述快速访问缓存中命中项存储的内容包括有效位、寄存器号、虚拟地址和存储的cache数据;

3)将地址产生模块生成的虚拟地址和在快速访问缓存中读出的cache行的虚拟地址进行比较,若地址一致则判定在快速访问缓存中读取的数据是正确的,直接将在快速访问缓存中读取的数据写结果到目的寄存器中,跳转执行步骤1);若地址不一致,则跳转执行步骤4);

4)进行普通的tlb和cache访问,在cache中读取数据并写入到目的寄存器中,根据cache访问更新快速访问缓存中的存储项;跳转执行步骤1)。

本实施例中,步骤4)中根据cache访问更新快速访问缓存中的存储项的详细步骤包括:

4.1)跟踪当前cache访问的基地址寄存器号和cache行号;

4.2)将当前cache访问的基地址寄存器号和本地的地址追踪缓存中的信息进行比较,判断是否有匹配的缓存项目,如果有匹配的缓存项目则跳转执行步骤4.3);否则如果没有匹配的缓存项目则跳转执行步骤4.6);

4.3)将当前cache访问的cache行号和匹配的缓存项目的cache行号进行比较,判断是否有cache行号也匹配的缓存项目,如果有cache行号也匹配的缓存项目,则跳转执行步骤4.4);否则,如果没有cache行号也匹配的缓存项目,则跳转执行步骤4.5);

4.4)不做任何操作;结束并退出;

4.5)在本地的地址追踪缓存中将匹配的缓存项目的cache行号修改为当前cache访问的cache行号;结束并退出;

4.6)在本地的地址追踪缓存中新分配一个缓存项,并将新分配的缓存项中写入当前cache访问的基地址寄存器号和cache行号;结束并退出。

本实施例还提供一种支持数据快速获取的存储访问装置,包括支持数据快速获取的存储访问功能的微处理器,该微处理器被编程以执行本实施例支持数据快速获取的存储访问方法的步骤,同样能够减小存储访问的延迟、降低存储访问的功耗,并具有使用灵活的特点。

如图3所示,本实施例还提供一种支持数据快速获取的存储访问装置,包括:

快速访问缓存,包括寄存器号比较逻辑和多个缓存项,存储访问时寄存器号比较逻辑使用基地址寄存器号查找多个缓存项,确定当前基地址寄存器号对应的缓存项,再从对应的缓存项中读取数据,包括有效位、寄存器号、虚拟地址和存储的cache数据;

快速访问判断逻辑,将地址产生模块生成的虚拟地址和在快速访问缓存中读出的cache行的虚拟地址进行比较,若地址一致则判定在快速访问缓存中读取的数据是正确的,否则判定在快速访问缓存中读取的数据是不正确的;

数据写回模块,用于在判定快速访问缓存中读取的数据正确时直接将在快速访问缓存中读取的数据写结果到目的寄存器中,在判定快速访问缓存中读取的数据不正确时进行普通的tlb和cache访问,在cache中读取数据并写入到目的寄存器中;

快速访问跟踪单元,用于根据cache访问更新快速访问缓存中的存储项。

如图3所示,本发明和现有的存储部件是松耦合的,可以灵活地应用到各种类型的现有存储部件上。通过在现有部件上增加相应的逻辑,即可支持数据快速获取,不影响现有存储部件的通路,并且在不需要数据快速获取方式时,可以随时关闭。

快速访问跟踪单元跟踪存储访问的基地址和cache行信息。基本结构为包含多个项的缓存,每个项的内容为基地址寄存器号和cache行号。每次进行访问的追踪判断时,通过基地址寄存器号查找对应的缓存项,然后读出对应的cache行号信息。若没有查到相应的基地址寄存器号,则新分配一个项,并写入当前访问的基地址寄存器号和cache行号。若查到相应的基地址寄存器号,且cache行号不匹配,则修改缓存中的cache行号。如基地址寄存器号和cache行号都能匹配,则不做任何操作。

如图4所示,快速访问缓存的结构包括寄存器号比较逻辑和多个缓存项,存储访问时,使用基地址寄存器号进行缓存项的查找,确定当前基地址寄存器号对应的缓存项,再从缓存项中读取信息。每个缓存项的内容如图5所示,存储包括有效位、cache行数据、cache行虚拟地址。快速访问判断逻辑比较快速缓存中保存的虚拟地址和当前访问的虚拟地址,判断快速缓存中的数据是否命中,具体实现是一个简单的地址比较逻辑,如图4所示。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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