一种缓存系统、方法及装置与流程

文档序号:14036796阅读:123来源:国知局
一种缓存系统、方法及装置与流程

本发明实施例涉及计算机网络应用技术领域,尤其涉及一种缓存系统、方法及装置。



背景技术:

一个完整的嵌入式系统包括cpu芯片(centralprocessingunit,中央处理器)处理单元、内存单元、外部存储单元、i/o(input/output,输入/输出端口)操作单元。cpu芯片处理单元处理数据时需要与内存单元进行传输数据等交互,然而cpu芯片的运行频率一般时几个ghz,即使是与cpu芯片交互效率相对较高的内存单元一次传输周期一般是几百个时钟周期。因此,内存单元存储待处理数据的内存访问速度和cpu芯片的处理速度相差悬殊,致使cpu芯片资源大部分时间处于等待状态,从而导致系统运算资源的巨大浪费。

目前,针对上述问题主要采用的解决方法为分级缓存方式,应用最广泛的是三级缓存机制。在三级缓存机制中,访问速度由cpu芯片向外依次递减,容量和访问速度依次增大。虽然分级缓存的方式可以在一定程度上提升系统的处理效率,但是cpu芯片在一段时间内处理的数据和指令都是一定范围内局部性的数据和指令。当程序中分支判断较多,单个分支处理流程较长,而且输入的数据没有规律时,cpu芯片短时间内要处理的数据超出三级缓存中其中一个缓存单元的容量后,需要在缓存单元和内存单元中频繁切换访问,会造成缓存数据反复被重新刷新,进而耗费大量额外的cpu芯片时钟周期同步数据。这种现

象被称为抖动现象,处于抖动现象中的cpu芯片处理效率受刷新缓存的影响反而会降低。



技术实现要素:

本发明提供一种缓存系统、方法及装置,以实现避免刷新、同步内存单元的操作,同时避免产生访问延时等待和抖动现象,节省数据同步、拷贝以及刷新的时间开销,从而提高整体系统的处理效率和运行效率。

第一方面,本发明实施例提供了一种缓存系统,包括,中央处理器cpu芯片和核心存储介质cmem,其中,所述cmem集成在所述cpu芯片内部,并与所述cpu芯片中的运算单元相连。

第二方面,本发明实施例还提供了一种缓存方法,应用于第一方面所述的缓存系统中,包括:

访问内部集成的cmem获取输入数据;

对所述输入数据进行处理获得处理完成的数据;

将所述处理完成的数据通过所述cmem输出至内存单元。

第三方面,本发明实施例还提供了一种缓存装置,应用于中央处理器cpu芯片,包括:

数据获取模块,用于访问内部集成的cmem获取输入数据;

数据处理模块,用于对所述输入数据进行处理获得处理完成的数据;

数据输出模块,用于将所述处理完成的数据通过所述cmem输出至内存单元。

本发明实施例中cpu芯片无需访问内存单元获取数据,因此能够避免刷新、同步内存单元的操作,同时避免产生访问延时等待和抖动现象,节省数据同步、拷贝以及刷新的时间开销,从而提高整体系统的处理效率和运行效率。

附图说明

图1是本发明实施例一提供的一种缓存系统的结构示意图;

图2a是本发明实施例二提供的一种缓存方法的流程图;

图2b是本发明实施例二提供的一种处理流程的示意图;

图3是本发明实施例三提供的一种缓存装置的示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1是本发明实施例一提供的一种缓存系统的结构示意图,该系统包括,中央处理器cpu芯片110和核心存储介质cmem120,其中,所述cmem120集成在所述cpu芯片110内部,并与所述cpu芯片110中的运算单元130相连。

其中,cmem120的容量为16kb,在32位程序中机器字长只有4b,而且在同一数据处理过程中的不同处理阶段cmem120空间能够被复用,因此cmem120的16kb的容量能够满足一般功能的程序的需要。将cmem120与运算单元130相连能够减少cmem120与运算单元130之间复杂的外部传输路径,在数据处理过程中cpu芯片110均在cmem120空间范围内进行读取和写入数据。

本发明实施例中的cmem具备访问速度快的特点,最快可以在1个时钟周期内返回所需数据,其访问速度比内存单元快很多倍,而且使用cpu芯片统一编址可以直接访问cmem获取所需数据。在cpu芯片访问cmem的过程中,不需借助tlb(translationlookasidebuffer,转换检测缓冲区)进行实际物理地址和程序虚拟地址之间的转换,所以不必消耗cpu芯片太多时钟周期进行等待数据的读取和写入,使得cpu芯片更多的处理器资源用于计算,能够避免cpu芯片直接访问内存,从而提升cpu芯片存取数据的速度,消除访问延时和抖动现象,大大提升系统的处理效率和运行效率。

进一步的,所述系统还包括,独立内存单元140和直接内存访问dma控制器150,其中,所述内存单元140通过总线160与所述cpu芯片110相连接,所述dma控制器150与所述cmem120相连接。

其中,内存单元140作为独立的存储器件,与cpu芯片110通过总线160相连接,dma控制器150集成在cpu芯片110内部,并与cmem120相连接,采用dma方式传输数据。在处理流程开始时内存单元140获取输入数据,dma控制器150采用dma方式将输入数据发送到cmem120,具体是:dma控制器将要访问的数据的存储地址发送给内存控制器,内存控制器再把相应的数据通过总线160传输到cmem120,其中,内存控制器可以集成在cpu芯片110内部并与dma控制器150相连。cpu芯片110对输入数据进行处理获得处理完成的数据后,dma控制器150采用dma方式将处理完成的数据发送到内存单元140。因此,在数据处理过程中cpu芯片110均在cmem120空间范围内进行读取和写入数据,避免与内存单元140产生频繁交互访问。

实施例二

图2a是本发明实施例二提供的一种缓存方法的流程图,图2b是本发明实施例二提供的一种处理流程的示意图,本实施例可适用于cpu芯片通过缓存单元读取数据的情况,该方法可以由缓存装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在缓存系统中,该方法包括如下操作:

s210、访问内部集成的cmem获取输入数据。

其中,输入数据为内存单元接收到的,需要cpu芯片进行处理的数据,例如待处理报文数据等。具体的,cpu芯片在处理数据的过程中,不通过直接访问内存单元来获取输入数据,而是通过方位内部集成的cmem获取输入数据。这种操作能够避免cpu芯片与内存单元140产生频繁交互访问,从而提升cpu芯片的数据处理效率。

在本发明的一个可选的实施例中,所述输入数据为直接内存访问dma控制器从所述内存单元中读取,并发送至所述cmem的。

其中,dma控制器通过dma方式对内存单元以及cmem中的数据进行发送处理。dma方式是一种完全由硬件执行外部接口i/o操作单元交换的工作方式。在这种方式中,dma控制器从cpu芯片完全接管对总线的控制,数据交换不经过cpu芯片。dma控制器工作时,由dma控制器向内存单元发出地址和控制信号,进行地址修改,对传送字的个数计数,并且以中断方式向cpu芯片报告数据传送操作的结束。

具体的,在处理流程开始时,输入数据是由内存单元通过i/o操作单元获取的。在内存单元获取到输入数据后,dma控制器通过dma方式将输入数据从内存单元发送至cmem。

在本发明的一个可选的实施例中,所述访问内部集成的cmem获取输入数据,包括:采用预设规则将所述cmem空间的地址范围进行划分,形成第一范围和第二范围,其中,所述第一范围对应所述cmem空间的地址范围作为程序栈空间,用于存储局部变量及函数返回地址;所述第二范围对应所述cmem空间的地址范围用于存储全局变量、静态全局变量以及静态局部变量数据。

其中,采用预设规则将所述cmem空间的地址范围进行划分具体是通过cpu芯片直接访问cmem的方式对cmem空间的地址范围进行划分。第一范围对应所述cmem空间的地址范围作为程序栈空间,由系统自动分配,无需干预,并且程序栈空间的大小是固定的,主要用于存储输入数据或者cpu芯片处理完成的数据中的局部变量及函数返回地址等信息;第二范围对应所述cmem空间的地址范围作为静态变量空间,主要用于存储输入数据或者cpu芯片处理完成的数据中全局变量、静态全局变量以及静态局部变量等数据。

需要说明的是,软件在程序中涉及到的全局变量需要使用特定宏cmem_var加以限定,相应的编译器也需要处理此宏,在预编译时将此宏限定的全局变量和静态变量地址指定到第二范围对应cmem空间的地址范围,即静态变量空间,而非内存虚拟地址空间范围。

s220、对所述输入数据进行处理获得处理完成的数据。

在本发明实施例中,cpu处理输入数据的过程产生的变量资源也相应的存储到程序栈空间或者静态变量空间,如此,cpu芯片不会因为资源受限而阻塞处理流程,从而提高cpu芯片的处理效率。

s230、将所述处理完成的数据通过所述cmem输出至内存单元。

在本发明实施例中,当cpu芯片对输入的数据处理完成后,不会直接将处理完成的数据发送至内存单元,而是将处理完成的数据写入到cmem,然后dma控制器通过dma方式将处理完成的数据从cmem发送至内存单元。需要说明的是,dma控制器发送数据的过程无需cpu芯片进行干预。

如图2b所示,程序只需在处理流程启动时从外部接收输入数据,并通过dma控制器将输入数据加载到cmem。此后的处理流程中cpu芯片只需要从cmem读取输入数据并处理,处理完成后将处理完成的数据写入到cmem,待处理流程完成后需要发送时再统一将处理完成的数据发送至内存单元。至此一个完整的处理流程处理完成,再依次开始下一个处理流程过程的处理。

在本发明的一个可选的实施例中,所述将所述处理完成的数据通过所述cmem输出至内存单元,包括:将所述处理完成的数据写入所述cmem;其中,所述cmem中存储的所述处理完成的数据由所述dma控制器发送至所述内存单元,并通过所述内存单元发送至外部接口i/o操作单元。

具体的,当整个流程处理完成后,生成的处理完成的数据统一由dma控制器发送至内存单元,内存单元再将处理完成的数据发送至外部接口i/o操作单元。通过dma控制器发送数据期间,dma控制器可以独立传输,所以能够从整体上减少cpu芯片资源的额外开销,使其可以将更多资源用于计算等关键操作中。

本发明实施例通过访问内部集成的cmem获取输入数据;对所述输入数据进行处理获得处理完成的数据;将所述处理完成的数据通过所述cmem输出至内存单元,解决了现有技术中分级缓存方式因抖动现象引起的cpu芯片处理效率降低的问题,能够避免刷新、同步内存单元的操作,同时避免产生访问延时等待和抖动现象,节省数据同步、拷贝以及刷新的时间开销,从而提高整体系统的处理效率和运行效率。

实施例三

图3是本发明实施例三提供的一种缓存装置的示意图,可执行本发明任意实施例所提供的缓存方法,具备执行方法相应的功能模块和有益效果,本实施例可适用于cpu芯片通过缓存单元读取数据的情况。

所述装置包括:

数据获取模块310,用于访问内部集成的cmem获取输入数据。

数据处理模块320,用于对所述输入数据进行处理获得处理完成的数据。

数据输出模块330,用于将所述处理完成的数据通过所述cmem输出至内存单元。

本发明实施例通过访问内部集成的cmem获取输入数据;对所述输入数据进行处理获得处理完成的数据;将所述处理完成的数据通过所述cmem输出至内存单元,解决了现有技术中分级缓存方式因抖动现象引起的cpu芯片处理效率降低的问题,能够避免刷新、同步内存单元的操作,同时避免产生访问延时等待和抖动现象,节省数据同步、拷贝以及刷新的时间开销,从而提高整体系统的处理效率和运行效率。

进一步的,所述输入数据为直接内存访问dma控制器从所述内存单元中读取,并发送至所述cmem的。

进一步的,数据获取模块310用于:

采用预设规则将所述cmem空间的地址范围进行划分,形成第一范围和第二范围,其中,

所述第一范围对应所述cmem空间的地址范围作为程序栈空间,用于存储局部变量及函数返回地址;

所述第二范围对应所述cmem空间的地址范围用于存储全局变量、静态全局变量以及静态局部变量数据。

进一步的,数据输出模块330用于:

将所述处理完成的数据写入所述cmem;其中,

所述cmem中存储的所述处理完成的数据由所述dma控制器发送至所述内存单元,并通过所述内存单元发送至外部接口i/o操作单元。

上述缓存装置可执行本发明任意实施例所提供的缓存方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的缓存方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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