多入口的全相联的高速缓冲存储器及数据管理方法

文档序号:970847 发布日期:2020-11-03 浏览:1次 >En<

阅读说明:本技术 多入口的全相联的高速缓冲存储器及数据管理方法 (Multi-entry fully associative cache memory and data management method ) 是由 谭吉来 黄涛 刘雨婷 李瑞鹏 侯子超 王东琳 于 2020-06-30 设计创作,主要内容包括:本申请公开了一种多入口的全相联的高速缓冲存储器及数据管理方法,存储器包括数据同步管理模块和片内存储管理模块,片内存储管理模块包括仲裁模块和片内存储体。该存储器在接收到多个读取请求时,如果存在至少两个具有相同读取地址的读取请求,仅读取一次即同时响应具有相同读取地址的读取请求,当该组请求命中缓冲存储器时仅读取缓冲存储器一次。在多个主设备以突发方式访问相同地址区间或访问有交叠的地址区间时,所述的缓冲存储器可以实现读一遍数据响应多个主设备,不需要为每个主设备重复访问相同地址,进而降低功耗、提高效率;所述的缓冲存储器可以并行处理多组具有相同地址的读写请求,整体访问效率高。(The application discloses a multi-entry fully-associative cache memory and a data management method. When the memory receives a plurality of read requests, if at least two read requests with the same read address exist, the memory only reads once, namely simultaneously responds to the read requests with the same read address, and only reads the buffer memory once when the group of requests hit the buffer memory. When the plurality of main devices access the same address interval in a burst mode or access overlapping address intervals, the buffer memory can read data once to respond to the plurality of main devices without repeatedly accessing the same address for each main device, so that the power consumption is reduced and the efficiency is improved; the buffer memory can process a plurality of groups of read-write requests with the same address in parallel, and the whole access efficiency is high.)

多入口的全相联的高速缓冲存储器及数据管理方法

技术领域

本申请中涉及存储器领域,尤其是一种多入口的全相联的高速缓冲存储器及数据管理方法。

背景技术

由于通信时代和社会的兴起,在越来越多的用户在使用智能设备进行日常生活和办公的背景下,数据读取技术也随之被越发频繁的使用。

其中,对于缓冲存储器来说,其是位于计算机CPU与主存储器之间一种容量较小、但速度很高的存储器。由于CPU的运算速度远高于主存,当CPU直接从主存中存取数据时要等待一定时间周期,而缓冲存储器可以保存CPU刚用过或循环使用的一部分数据。而且如果CPU需要再次使用该部分数据时可从缓冲存储器中直接调用,避免重复读写主存,减少CPU等待时间,提高了系统的效率。然而,相关技术中的缓冲存储器的实现结构比较复杂,且会存在当接收到多个用户发送的读取请求时只能依次处理每一个读取请求的问题,这样会导致出现数据读取效率不高的问题。

具体地,由于高速缓冲存储器(Cache)的结构与主存结构类似,但高速缓冲存储器除包含地址和数据外,还包含所存数据的主存地址信息(Tag),这是由于CPU发出的寻址信息都是针对主存的。一个Tag和它对应的数据组成的一行称为一个高速缓冲存储器line,为了加快寻找速度,高速缓冲存储器一般还包含一个有效位(Valid),用于标记这个高速缓冲存储器是否保存着有效数据。在相关技术中,高速缓冲存储器的缺点是接收到访问的读取请求时,每次都要依次逐个处理每个读取请求所导致的效率低下的情况,导致速度低、成本高。

发明内容

本申请实施例提供一种多入口的全相联的高速缓冲存储器以及采用高速缓冲存储器实现的数据读取方法。

根据本申请的一个方面,公开了一种多入口的全相联的高速缓冲存储器,包括数据同步管理模块和片内存储管理模块,片内存储管理模块包括仲裁模块和片内存储体,其中:所述仲裁模块与多个主设备及所述片内存储体相连接,用于并行处理所述多个主设备发出的读写请求;所述数据同步管理模块与所述仲裁模块相连接,以及所述数据同步管理模块与片外存储体相连接,用于同步数据。

进一步地,所述数据同步管理模块包括未命中检查模块以及动态地址管理模块,其中:所述未命中检查模块的输入端与所述多个主设备相连接,用于选择出未命中的读写请求地址;所述未命中检查模块的输出端与所述动态地址管理模块相连接,用于将未命中的读写请求地址发送给所述动态地址管理模块,所述动态地址管理模块用于为所述未命中的读写请求地址在所述片内存储区域中分配存储段。

进一步地,所述数据同步管理模块还包括段状态管理模块以及优先级策略模块,其中:所述段状态管理模块的输入端与所述多个主设备相连接,所述段状态管理模块的输出端与所述优先级策略模块相连接,用于根据多个主设备发出的读写请求统计段状态,给所述优先级策略模块提供段状态的信息。

进一步地,所述优先级策略模块包括第一优先级策略模块,其中,所述段状态管理模块与第一优先级策略模块、所述动态地址管理模块顺次连接;所述段状态管理模块用于给所述动态地址管理模块提供段状态信息。

进一步地,所述优先级策略模块还包括第二优先级策略模块,其中,所述段状态管理模块与第二优先级策略模块、可用空间管理模块顺次连接;所述段状态管理模块用于给可用空间管理模块提供段状态信息。

进一步地,所述数据同步管理模块包括向内同步模块,其中:所述向内同步模块与所述动态地址管理模块、仲裁模块以及片外存储体相连接,用于将所述片外存储区域的数据向所述片内存储区域进行同步。

进一步地,所述数据同步管理模块包括向外同步模块,其中:所述向外同步模块与可用空间管理模块、仲裁模块以及片外存储体相连接,用于将所述片内存储体的数据向所述片外存储体进行同步。

进一步地,所述仲裁模块包括多个子模块,所述片内存储体包括多个子存储体,其中:所述多个主设备均与各子模块相连接,各子模块与各对应的子存储体相连接,用于并行处理多个读写请求;所述仲裁模块用于并行处理多组具有相同地址的读写请求,每组包含多个主设备发出的多个读写请求,只有当不同请求都需要同一个子存储体来响应的时候,为串行依次响应,此外都为并行响应;因此子存储体的数量越多,响应冲突越少,所述的缓冲存储器的整体访问效率越高。

根据本申请的另一个方面,公开了一种数据管理方法,其采用上述高速缓冲存储器来实现,方法包括:多个主设备发起读取请求;每当存在至少两个具有相同地址的读取请求时,一次同时响应所述具有相同地址的读取请求。

根据本申请的另一个方面,公开了一种数据管理方法,其采用上述高速缓冲存储器来实现,方法包括:多个主设备发起读取请求;基于最小地址值优先级最高的策略,在多个主设备以地址递增的突发(burst)方式访问相同地址区间或访问有交叠的地址区间时,所述的缓冲存储器实现读一遍数据响应多个主设备,不需要为每个主设备重复访问相同地址。

根据本申请提出的存储器,当接收到多个读取请求时,如果存在至少两个具有相同读取地址的读取请求,仅读取一次即同时响应具有相同读取地址的读取请求,当该组请求在缓冲存储器命中时仅读取缓冲存储器一次。根据本申请提出的存储器,基于最小地址值优先级最高的策略,在多个主设备以地址递增的突发(burst)方式访问相同地址区间或访问有交叠的地址区间时,所述的缓冲存储器可以实现读一遍数据响应多个主设备,不需要为每个主设备重复访问相同地址,进而降低功耗、提高效率,可以避免现有技术中存在的存储器只能依次逐个处理每个读取请求所导致的效率低下的情况。由此,本申请可以并行处理多组具有相同地址的读写请求,每组包含由多个主设备发出的多个读写请求,只有当不同请求都需要同一个子存储体来响应的时候,为串行依次响应,此外都可以并行响应。因此子存储体的数量越多,响应冲突越少,所述的缓冲存储器的整体访问效率越高。

下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。

附图说明

构成说明书的一部分的附图描述了本申请的实施例,并且连同描述一起用于解释本申请的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本申请,其中:

图1为本申请提出的缓冲存储器架构示意图;

图2为本申请提出的缓冲存储器的片内存储管理模块架构示意图;

图3为本申请提出的缓冲存储器的数据同步管理模块架构示意图;

图4为本申请提出的缓冲存储器实现的数据管理方法流程图。

具体实施方式

现在将参照附图来详细描述本申请的各种示例性实施例。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,不作为对本申请及其应用或使用的任何限制。相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

另外,本申请各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

图1示意性地示出了一种多入口的全相联的高速缓冲存储器整体架构示意图。由图1所示,该高速缓冲存储器100包括数据同步管理模块120和片内存储管理模块110,片内存储管理模块110包括仲裁模块111和片内存储体112,其中仲裁模块111与多个主设备200及所述片内存储体112相连接,用于并行处理所述多个主设备发出的读写请求;数据同步管理模块120与仲裁模块111相连接,以及数据同步管理模块120与片外存储体300相连接,用于同步数据。其中,多个主设备200包括主设备1、主设备2……主设备N。

本申请的高速缓冲存储器中,主设备1~主设备N作为仲裁模块111的输入端以及数据同步管理模块120的输入端(图1未示出),片内存储体112为片内存储阵列(RAMArray),其与数据同步管理模块120均与仲裁模块111相连,仲裁模块111的输出端作为多入口的全相联高速缓冲存储器的输出端。数据同步管理模块120连接至片外存储体300,片外存储体可以是DDR SDRAM。

图2示意性地示出了本申请高速缓冲存储器的片内存储管理模块110架构示意图。其中,仲裁模块111包括多个子模块ARB(0)~ARB(M),片内存储体112包括多个子存储体RAM(0)~RAM(M),其中,主设备1~主设备N均与各子模块ARB(0)~ARB(M)相连接,各子模块ARB(0)~ARB(M)与各对应的子存储体RAM(0)~RAM(M)相连接,用于并行处理多个读写请求。例如,主设备1~主设备N与子模块ARB(0)相连接,用于传递请求和数据,子模块ARB(0)与对应的子存储体RAM(0)相连接,用于读写数据。

所述仲裁模块111用于并行处理读写请求,只有当多个不同请求都需要同一个子存储体来响应的时候,会出现“多对一”的资源竞争,由子存储体对应的子仲裁模块每周期仲裁出1个请求来响应,此时同一个子存储体上的多个请求是串行依次响应的。当多个请求所需要的子存储体互不相同时,每个收到请求的子存储体都处于“一对一”的状态,此时可以并发完成所有请求的响应。

每当有相同地址的读取请求,仲裁模块将其视为1个请求,可读取一次而同时响应。相同地址的读取请求可以有多组,例如A和B相同,C、D、E又相同,此时视为2个读取请求。子存储体的数量越多,响应冲突会越少,所述的缓冲存储器的整体访问效率越高。

图3示意性地示出了本申请高速缓冲存储器的数据同步管理模块120内部架构以及与***模块连接架构的示意图。本申请高速缓冲存储器的数据同步管理模块120包括未命中检查模块121、动态地址管理模块122、段状态管理模块123、第一优先级策略模块124、第二优先级策略模块125、可用空间管理模块126、向内同步模块127、向外同步模块128。其中,

数据同步管理模块120的输入端连接主设备1~主设备N,主设备1~主设备N作为未命中检查模块121及段状态管理模块123的输入端。未命中检查模块121的输出端接动态地址管理模块122,动态地址管理模块122的另一个输入端来自第一优先级策略模块124的输出,第一优先级策略模块124的输入是段状态管理模块123的其中一个输出。动态地址管理模块122的输出端接向内同步模块127,来自片外存储体300(如DDR SDRAM)的数据同步管理模块的输入端作为向内同步模块127的另一个输入端,向内同步模块127的输出端作为数据同步管理模块120的输出端连接至仲裁模块111。段状态管理模块123的另一个输出端接第二优先级策略模块125,第二优先级策略模块125的输出端接可用空间管理模块126,可用空间管理模块126的输出端接向外同步模块128,来自仲裁模块111的数据同步管理模块120的输入端作为向外同步模块128的另一个输入端,向外同步模块128的输出端作为数据同步管理模块120的输出端连接至片外存储体300(如DDR SDRAM)。

具体地,未命中检查模块121的输入端与主设备1~主设备N相连接,用于选择出未命中的读写请求地址;未命中检查模块121的输出端与动态地址管理模块122相连接,用于将未命中的读写请求地址发送给动态地址管理模块122;动态地址管理模块122用于为所述未命中的读写请求地址在片内存储区域中分配存储段。

具体地,段状态管理模块123的输入端与主设备1~主设备N相连接,段状态管理模块123的输出端与第一优先级策略模块124、第二优先级策略模块125相连接,用于根据主设备1~主设备N发出的读写请求统计段状态,给第一优先级策略模块124、第二优先级策略模块125提供段状态的信息。

具体地,段状态管理模块123与第一优先级策略模块124、动态地址管理模块122顺次连接,用于给动态地址管理模块122提供段状态信息。段状态管理模块123与第二优先级策略模块125、可用空间管理126模块顺次连接,用于给可用空间管理模块提供段状态信息。

具体地,向内同步模块127与动态地址管理模块122、仲裁模块111以及片外存储体300相连接,用于将片外存储区域的数据向片内存储区域进行同步。向外同步模块128与可用空间管理模块126、仲裁模块111以及片外存储体300相连接,用于将片内存储体的数据向片外存储体进行同步。

具体地,本申请的高速缓冲存储器的片内存储体112为存储阵列(RAM Array),其由若干个实体RAM组成,每个实体RAM划分为若干个虚拟数据段(DataSegment),每个虚拟数据段(DataSegment)有一个动态地址标签(Tag),每个虚拟数据段(DataSegment)覆盖一段连续地址的数据。

图4示意性地示出了根据本申请高速缓冲存储器的数据管理方法,包括,当主设备1~主设备N对本申请的高速缓冲存储器100发起读写请求,仲裁模块111会并行对读写请求地址与所有虚拟数据段(DataSegment)的动态地址做对比,如果是读命中,则返回请求需要的数据;如果是写命中,则在片内存储阵列(RAM Array)122中写入数据,返回写成功;如果未命中,数据同步管理模块120的未命中检查模块121会整理并选择出未命中的地址,发送给动态地址管理模块122,动态地址管理模块122将会给某个虚拟数据段(DataSegment)更新地址标签(Tag),并通知向内同步模块127把片外存储体(如DDR SDRAM)300中的数据同步到该虚拟数据段(DataSegment)所在的RAM中。段状态管理模块123根据主设备1~主设备N输入的读写请求统计高速缓冲存储器中段(segment)的使用状态,由第一优先级策略模块124选出一个具体的虚拟数据段(DataSegment)给动态地址管理模块122使用。段状态管理模块123根据主设备1~主设备N输入的读写请求统计高速缓冲存储器中段(segment)的使用状态,由第二优先级策略模块125选出一个具体的虚拟数据段(DataSegment)给可用空间管理模块126,可用空间管理模块126负责保持有足够的可用空间供动态地址管理模块122动态使用,可用空间管理模块126按策略通知向外同步模块128将该虚拟数据段(DataSegment)的数据同步到片外存储体(如DDR SDRAM)300。

根据上述数据管理方法,本申请还包括如下的数据读取方法。

根据本申请高速缓冲存储器的一种数据读取方法,包括:多个主设备发起读取请求;每当存在至少两个具有相同地址的读取请求时,一次同时响应所述具有相同地址的读取请求(“相同地址同时响应”特性)。

根据本申请高速缓冲存储器的又一种数据读取方法,包括:多个主设备发起读取请求;基于主设备访问缓存器多以地址递增的突发(Burst)访问为主,在上述“相同地址同时响应”特性的基础上,基于最小地址值优先级最高的策略,在多个主设备以地址递增的突发(burst)方式访问相同地址区间或访问有交叠的地址区间时,所述的缓冲存储器可以实现读一遍数据响应多个主设备,不需要为每个主设备重复访问相同地址。

根据本申请高速缓冲存储器的又一种数据读写方法,还包括:多个主设备发起读写请求;如果读写请求的地址未命中,则未命中检查模块将出未命中的地址发送给动态地址管理模块,动态地址管理模块为某数据段更新地址信息,并通知向内同步模块把片外存储体中的数据同步到该数据段所在的片内存储体中。

根据本申请高速缓冲存储器的又一种数据读写方法,还包括:多个主设备发起读写请求;段状态管理模块根据读写请求统计段状态,选出第一数据段给动态地址管理模块、第二数据段给可用空间管理模块,所述可用空间管理模块用于通知向外同步模块将该数据段的数据同步到片外存储体,以保持有足够的可用空间供动态地址管理模块动态使用。

由此,本申请提出的存储器,当接收到多个读取请求时,如果存在至少两个具有相同读取地址的读取请求,仅读取一次即同时响应具有相同读取地址的读取请求,当该组请求命中缓冲存储器时仅读取缓冲存储器一次。根据本申请提出的存储器,基于最小地址值优先级最高的策略,在多个主设备以突发(burst)方式访问相同地址区间或访问有交叠的地址区间时,所述的缓冲存储器可以实现读一遍数据响应多个主设备,不需要为每个主设备重复访问相同地址,进而降低功耗、提高效率,可以避免现有技术中存在的存储器只能依次逐个处理每个读取请求所导致的效率低下的情况。由此,本申请可以并行处理多组具有相同地址的读写请求,每组包含由多个主设备发出的多个读写请求,只有当不同请求都需要同一个子存储体来响应的时候,为串行依次响应,此外都可以并行响应。因此子存储体的数量越多,响应冲突越少,所述的缓冲存储器的整体访问效率越高。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:存储系统的高速缓存系统及其数据高速缓存方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类