智能缓存及智能终端的制作方法

文档序号:6364090阅读:172来源:国知局
专利名称:智能缓存及智能终端的制作方法
技术领域
本发明智能缓存技术,尤其涉及一种利用软硬件紧密结合的方法实现灵活的、可配置的软件定义的智能缓存,以及具有上述智能缓存的智能终端。
背景技术
传统的高速缓存(Cache Memory)利用处理器程序执行的时间或空间局部性,通过将最近和/或经常执行的指令和数据暂存在靠近处理器单元的Cache Memory内,当需要访问某个指令或数据时先访问Cache Memory,如果Cache Memory缺失(Miss),贝U访问速度较慢、存储空间较大的下一级存储器。图1为典型的cache结构示意图,如图1所示,由于载入Cache的指令或数据只能根据程序动态执行的情况来实时更新,因此处理器核每次访存时首先要搜索Cache中的标签(Tag)阵列,以确认所需指令或数据是否在Cache之中,一旦Cache Miss,查找Tag和数据比较操作都将无效,然后再去访问下一级存储器,这样浪费掉了多个处理器执行周期和Cache功耗。为了增加Cache的命中(Hit)率,通常采用组相联、复杂的替换算法、预取、推测读以及层次化的多级Cache结构等,显然这些性能提升完全是依靠增加硬件复杂度与芯片面积开销来换取的。由于图1所示的缓存结构为现有典型的cache结构,这里不再赘述其各部分的功能及其工作原理。Cache还有一个缺点是Hit与Miss的访问延迟完全不一样,无法预测访存的延迟大小,很多场合引入了紧稱合存储器(TCM, Tightly Coupled Memory)。TCM是靠近处理器内核的静态随机存储器(SRAM, Static Random Access Memory),其特点是速度快且延迟固定。TCM的内容不能实时替换、容量固定且一般较小。TCM的刷新完全依赖于软件调度,刷新TCM之前软件需要找出何时刷新并进行相应的配置操作,且配置过程中TCM不能被访问,这都限制了 TCM的应用。内容寻址存储器(CAM, Content Addressable Memory)是一种专用存储器,作为通用模块在针对某些具体应用场景时不能最大限度地发挥其性能,而且是通过将所有存储条目与输入条目同时并行比较的方式查询,这种方式的硬件代价非常大,成本高。综上,完全依靠硬件复杂度和功耗或完全依靠软件的干预来提升性能都是比较困难的,而且处理器执行与访存的粒度(按指令)比较细,资源被固定的分类和划分,不仅效率低,且浪费系统的存储资源。如果将软硬件紧密结合,根据程序执行情况和数据结构的特征进行灵活的、智能的处理,性能提升空间会更大,性能、功耗、成本等会更平衡。

发明内容
有鉴于此,本发明的主要目的在于提供一种智能缓存及智能终端,能针对具体应用,由软件灵活定义 、配置和重构,能解决传统Cache的高复杂度、高开销、高能耗以及延迟不可预测等的弊端,也能解决TCM数据更新的低效以及存储单元灵活度低、应用面窄的问题。
为达到上述目的,本发明的技术方案是这样实现的:一种智能缓存,包括通用接口、软件定义和重构单元、控制单元、存储单元和智能处理单元;其中:通用接口,用于接收来自内核或总线的配置信息、和\或控制信息、和\或数据信息,并返回目标数据;软件定义和重构单元,用于根据配置信息将存储器定义为所需的缓存Cache存储器;控制单元,用于控制读写Cache存储器,以及,实时监控指令或数据流,根据系统信息、将要执行的任务的特征以及使用到的数据结构的特性,控制所述存储单元提前装载所需数据;存储单元,由大量的存储模块构成,用于缓存数据;以及,根据所述软件定义和重构单元的定义,由所述存储模块组合成所需的Cache存储器;智能处理单元,用于处理输入输出数据,将数据在所述控制单元中定义的多个结构之间进行转移、变换和运算。优选地,所述所需的Cache存储器可以配置为包括以下种类存储器中的至少一个:紧耦合存储器TCM、内容寻址存储器CAM、高速缓存Cache。优选地,所述通用接口中还包括多核环境下的一致性接口。

优选地,所述软件定义和重构单元还用于定义多个不同属性的同类结构的Cache存储器,所述不同属性的同类结构Cache存储器包括以下结构存储器的至少一种:全相联的Cache、16路相联的Cache、4路相联的Cache、2路相联的Cache、直接映射的Cache。优选地,所述软件定义和重构单元还用于在工作过程中动态重构闲置存储模块。优选地,所述智能处理单元将数据在所述控制单元中定义的多个结构之间进行转移、变换和运算,具体包括:矩阵运算、比特级操作、数据查找、数据排序、数据比较、逻辑操作、置位/复位、读-修改-写的操作,以及增减量、加减的运算。优选地,所述智能处理单元还用于对数据进行填充和更新,以及将数据转移到下
一级存储器。优选地,所述控制单元根据所述软件定义和重构单元定义的数据块大小进行数据装载或自动进行数据装载;并在所述存储单元中定义专门的存储区域,装载异常或杂乱的控制程序。一种智能终端,包括前述的智能缓存。所述智能终端包括计算机、或笔记本、或手机、或个人数字助理、或游戏机等。本发明的智能缓存,可以让内核仅需要处理复杂的运算和杂乱的控制,而将频繁使用且处理简单的大量数据提交给智能缓存的智能处理单元来处理,且智能处理单元对数据的处理不仅针对于简单的单个数据,同时也针对整个特定数据结构的处理等,尽量将数据处理靠近存储器,从而减少了对总线的依赖,减轻了内核的负担,从而达到性能、功耗、成本等间的平衡。在与软件的密切配合下,即使没有预取、推测读、复杂的替换算法,但根据软件的运行状态、执行任务的特征、数据结构的特性,在控制单元灵活的组织、管理下以及智能处理单元的紧密配合下,能够实现高效的存储系统。


图1为典型的cache结构示意图;图2为本发明实施例的智能缓存的组成结构示意图;图3为本发明实施例一的智能缓存的组成结构示意图;图4为本发明实施例二的智能缓存的组成结构示意图;图5为本发明实施例三的智能缓存的组成结构示意图;图6为本发明实施例四的智能缓存的组成结构示意图;图7为本发明实施例五的智能缓存的组成结构示意图;图8为本发明实施例六的智能缓存的组成结构示意图;图9为本发明实施例七的智能缓存的组成结构示意图;图10为本发明实施例八的智能缓存的组成结构示意图;图11为本发明实施例九的智能缓存的组成结构示意图。
具体实施例方式本发明的基本思 想为:提供一种智能缓存,其包括通用接口、软件定义和重构单元、控制单元、存储单元和智能处理单元;其中:通用接口,用于接收来自内核或总线的配置信息、和\或控制信息、和\或数据信息,并返回目标数据;软件定义和重构单元,用于根据配置信息将存储系统定义为所需的缓存Cache存储器;控制单元,用于控制读写Cache存储器,以及,实时监控指令或数据流,根据系统信息、将要执行的任务的特征以及使用到的数据结构的特性,控制所述存储单元提前装载所需数据;存储单元,由大量的存储模块构成,用于缓存数据;以及,根据所述软件定义和重构单元的定义,而承担缓存数据的关联阵列(例如Cache TAG)功能并和数据缓存存储单元组合成所需的存储系统结构;智能处理单元,用于处理输入输出数据,将数据在所述控制单元中定义的多个结构之间进行转移、变换和运算。为使本发明的目的,技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。图2为本发明实施例的智能缓存的组成结构示意图,需要说明的是,本发明实施例的智能缓存也称为软件定义的缓存(SDCM, Software Define Cache Memory);在本申请文件中,SDCM即表示本发明实施例的智能缓存。如图2所示,本发明智能缓存主要包括五个处理单元,分别为通用接口(GI, General Interface)、软件定义和重构单元(SDRU,Software Define and Reconfiguration Unit)、控制单兀(CU, Control Unit)、存储单兀(MU, Memory Unit)和智能处理单兀(IPU, Intelligence Processing Unit);其中:通用接口(GI)用于接收来自内核和/或总线的配置、控制与数据信息,并向内核和/或总线返回目标数据,同时包含数据直接加载接口,如直接内存存取(DMA, Direct Memory Access)接口等,也包括多核环境下的一致性接口。软件定义和重构单元(SDRU)根据配置信息将SDCM的Memory定义为需要的存储系统结构,如定义为TCM、TCAM或Cache等,可以同时定义多个不同属性的同类结构的Cache Memory,如全相联的Cache、4路相联的Cache、16路相联的Cache、2路相联的Cache、直接映射的Cache等,这些不同属性的同类结构的CacheMemory可以和其他不同种类的存储结构同时存在,例如TCM、TCAM等。也可以在工作过程中动态重构闲置Memory,达到充分利用系统存储资源的目的;控制单元(⑶)除了控制读写Memory外,还实时监控指令或数据流,根据系统信息、将要执行的任务的特征、使用到的数据结构的特性,在智能处理单元的密切配合下,提前装载需要的数据,以最大限度地提高命中率;存储单元(MU)由大量的存储模块构成,这些存储模块的功能完全可根据需要而定义,可用于存储索引、Tag、标识、数据或者其他信息,这些存储模块间可以自由组合,以实现复杂的存储结构,如实现前述的TCM、TCAM或Cache等;智能处理单元(IPU)可以处理SDCM的输入输出数据,也可以将数据在MU中定义的几个结构之间进行转移、变换和运算,如进行矩阵运算、比特级操作、数据查找、数据排序、比较、逻辑操作、置位/复位、读-修改-写等操作,以及增减量、加减等简单的运算。IPU还能配合CU实现进行数据的填充和更新,以及将数据转移到下一级存储器。基于SDCM,根据软件的需求,可以将整个存储系统定义成Cache、TCM、CAM或其他存储结构,并且这些存储结构的属性都可以配置,例如Cache的大小、相联度、行尺寸、分配策略、写回方式等;也可以将Cache接口配置成一致性接口,以适用于多核架构;甚至可以为Cache定义一个页表缓冲器(TLB, Translation Lookaside Buffer),实现虚实地址的转换。TCM、CAM的大小也可配置,甚至可以配置为同时有多种Cache结构和TCM并存的存储系统结构。下述的实施例中,由于结构相对简单,本发明不再一一赘述各功能单元之间的连接关系,本领域技术人员应当理解,上述各处理单元之间可以通过总线或专用接口实现连接。图3为本发明实施 例一的智能缓存的组成结构示意图,如图3所示,SDCM定义了全相联Cache、4路相联的Cache、CAM、TCM以及其他类型的存储结构。本发明中,所有SDCM定义的存储结构的输入或输出的数据或索引等,都可以通过智能处理单元在存储系统内部直接进行处理,包括变换、位插入、位提起、置复位、移位、位反转、增减量、加减等简单的运算,不必将所有数据处理任务都交给内核,而且数据可以在一个存储系统内各个存储结构之间进行流动,以达到节省总线带宽,减轻处理器负担的目的,内核仅负责复杂的运算和控制,从而提高处理性能。本发明的技术方案能实现各种所需的存储系统结构,即可以根据实际需要而自由定义存储系统结构,以下再给出比较常用的几种应用实施方式。在图4至图8中,使用IF_CU表示本发明实施例的SDCM的除Memory和智能处理单元以外的其他所有单元。图4为本发明实施例二的智能缓存的组成结构示意图,如图4所示,通过简单的定义命令即可将SDCM定义为图4所示的Cache结构,在控制单元的组合控制下,上述定义的Cache可以像一般的Cache那样地工作,当然为了降低处理复杂度,以及尽可能与软件紧密配合,这里定义的Cache将不采用复杂的替换算法,也不采用预取和推测读等提高性能的方法,而是根据软件提供的信息、任务和数据的特征,由控制单元完成对数据的组织和管理,完成数据从下一级存储系统的装载和更新下一级存储系统。数据的装载和更新到下一级的粒度是按任务进行的,不会在任务还在处理时将需要的数据替换出去。本领域技术人员应当理解,根据本发明提供的智能缓存结构,实现图4所示的缓存配置是容易实现的。
图5为本发明实施例三的智能缓存的组成结构示意图,如图5所示,在将SDCM定义成TCAM时,需要用到较多的存储块(Block)来并行读出数据记录,数据的读出由IF_CU控制,并行读出的数据(Parallel Data)在智能处理单元(IPU)中与关键字(Key)同时进行比较,IPU通过输出结果(Result)来表示是否成功找到数据。如果成功找到该数据,则IF_CU会从数据记录(Data Record)的存储块中读出相应的索引数据并输出。图6为本发明实施例四的智能缓存的组成结构示意图,如图6所示,将SDCM定义成TCM时,控制单元只需完成简单的读写ram操作类似的功能,TCM最少可以只需I个存储块,读写周期最少为I个时钟周期,当然也可以通过选用数目不同的存储块来组合得到不同大小的TCM。本发明中,还可以将SDCM定义成具有简单数据处理能力的存储系统,如比特操作、数据搜索、矩阵运算等,但SDCM的处理能力不限于此。在IPU的控制下,在SDCM内部进行前导‘0’或前导‘I’、位反转(最高位与最低位,次高位与次低位等以此类推的所有位交换)等数据位的操作比较方便。需要说明的是,上述的数据位的操作是数据存储处理中常规的处理方式,本发明不再赘述其实现细节。图7为本发明实施例五的智能缓存的组成结构示意图,为SDCM定义的能进行比特操作的智能缓存结构示例,如图7所示,将待处理的数据存储在Cache中,内核只需要发送一条读取数据的前导‘0’或前导‘I’、位反转命令,SDCM就可以将结果返回给内核或仍然存放在Cache中,SDCM如何计算对于内核来说是透明的。还可以利用图7所示的结构实现数据搜索,内核只需通知SDCM待搜索的数组和感兴趣的数据,再通过一个简单的搜索任务指令即可由IF_CU负责从Cache中读取数组中的数据并提交给IPU,由IPU比较判别是否为目标数据,如果找到目标数据,则通过接口返回数据所在的地址。本发明的这种结构,不但减轻了处理器的负担,并且节省了处理器总线带宽,可以使处理器关注于其他任务的处理。 SDCM还可以承担一些大数据量的数据变换,例如矩阵转置。图8为本发明实施例六的智能缓存的组成结构示意图,为SDCM定义的能进行矩阵运算的智能缓存结构示例,如图8所示,可以将SDCM定义成图8所示的结构。在进行矩阵转置时,内核只需给出初始矩阵的存储位置信息以及矩阵数据块的大小,然后给出启动计算的命令即可由SDCM完成转置,SDCM首先通过IF_CU将初始矩阵的列向量从Cache读出到TCM中并作为行向量写回Cache中。这里,TCM由多个小Block组成,写入单个Block,而在IPU的控制下,可以实现对多个Block的同时读,这样从读出的数据中进行位提取,即可实现倒置。另外,所有的地址偏移量计算均由IPU完成,转移完所有列向量数据后即在Cache中形成初始矩阵的转置矩阵。这种转置需要花费的处理时间与矩阵的大小有关,软件需要知道完成转置的延迟。图9为本发明实施例七的智能缓存的组成结构示意图,是SDCM作为共享式存储器使用的示例,SDCM通过通用接口与操作系统相连接,连接方式可为标准总线或片上网络,其在系统中的位置可以为如图9所示的共享存储系统,另外,SDCM除了具有从(slave)接口夕卜,还具有主(master)接口的功能,SDCM可以在任何时候和位置发起数据传输。当然,SDCM也可以作为内核的私有存储器,也可以形成层次化的存储结构。图10为本发明实施例八的智能缓存的组成结构示意图,图11为本发明实施例九的智能缓存的组成结构示意图,如图10、图11所示,为SDCM作为核内私有存储器或多层次的存储系统使用的不例;既可以将SDCM连接成对称多处理(SMP, Symmetrical Multiple Processor)结构,如图10所不;也可以连接成非对称多处理器(AMP, Asymmetric Multiple Processor)结构,如图11所示;无论是SMP或AMP,都可以实现SDCM间的一致性。本领域技术人员应当理解,还可以根据应用需要,将SDCM连接成很多结构,甚至可以在现有的其他存储结构中添加一个或多个SDCM。本发明还记载了一种智能终端,该智能终端中包括上述的智能缓存。上述智能终端包括计算机、或笔记本、或手机、或个人数字助理、或游戏机等具有CPU控制单元的所有智能终端。以上所述,仅 为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种智能缓存,其特征在于,所述智能缓存包括通用接口、软件定义和重构单元、控制单元、存储单元和智能处理单元;其中: 通用接口,用于接收来自内核或总线的配置信息、和\或控制信息、和\或数据信息,并返回目标数据; 软件定义和重构单元,用于根据配置信息将存储器定义为所需的缓存Cache存储器; 控制单元,用于控制读写Cache存储器,以及,实时监控指令或数据流,根据系统信息、将要执行的任务的特征以及使用到的数据结构的特性,控制所述存储单元提前装载所需数据; 存储单元,由大量的存储模块构成,用于缓存数据;以及,根据所述软件定义和重构单元的定义,由所述存储模块组合成所需的Cache存储器; 智能处理单元,用于处理输入输出数据,将数据在所述控制单元中定义的多个结构之间进行转移、变换和运算。
2.根据权利要求1所述的智能缓存,其特征在于,所述所需的Cache存储器可以配置为包括以下种类存储器中的至少一个: 紧耦合存储器TCM、内容寻址存储器CAM、高速缓存Cache。
3.根据权利要求1所述的智能缓存,其特征在于,所述通用接口中还包括多核环境下的一致性接口。
4.根据权利要求1所述的智能缓存,其特征在于,所述软件定义和重构单元还用于定义多个不同属性的同类结构的Cache存储器,所述不同属性的同类结构Cache存储器包括以下结构存储器的至少一种:全相联的Cache、16路相联的Cache、4路相联的Cache、2路相联的Cache、直接映射的Cache。
5.根据权利要求1所述的智能缓存,其特征在于,所述软件定义和重构单元还用于在工作过程中动态重构闲置存储模块。
6.根据权利要求1所述的智能缓存,其特征在于,所述智能处理单元将数据在所述控制单元中定义的多个结构之间进行转移、变换和运算,具体包括: 矩阵运算、比特级操作、数据查找、数据排序、数据比较、逻辑操作、置位/复位、读-修改-写的操作,以及增减量、加减的运算。
7.根据权利要求1所述的智能缓存,其特征在于,所述智能处理单元还用于对数据进行填充和更新,以及将数据转移到下一级存储器。
8.根据权利要求1所述的智能缓存,其特征在于,所述控制单元根据所述软件定义和重构单元定义的数据块大小进行数据装载或自动进行数据装载;并在所述存储单元中定义专门的存储区域,装载异常或杂乱的控制程序。
9.一种智能终端,其特征在于,所述智能终端包括权利要求1至8中任一项所述的智能缓存。
10.根据权利要求9所述的智能终端,其特征在于,所述智能终端包括计算机、或笔记本、或手机、或个人数字助理、或游戏机。
全文摘要
本发明公开了一种智能缓存及智能终端,智能缓存包括通用接口,用于接收来自内核或总线的配置信息、和\或控制信息、和\或数据信息,并返回目标数据;软件定义和重构单元,用于根据配置信息将存储器定义为所需的缓存存储器;控制单元,用于控制读写Cache,以及,实时监控指令或数据流;存储单元,由大量的存储模块构成,用于缓存数据;以及,根据所述软件定义和重构单元的定义,由所述存储模块组合成所需的Cache存储器;智能处理单元,用于处理输入输出数据,将数据在所述控制单元中定义的多个结构之间进行转移、变换和运算。本发明能根据软件的运行状态、执行任务的特征、数据结构的特性,在控制单元灵活的组织、管理下以及智能处理单元的紧密配合下,实现高效的存储系统。
文档编号G06F9/455GK103246542SQ20121002251
公开日2013年8月14日 申请日期2012年2月1日 优先权日2012年2月1日
发明者元西西, 毛二坤, 陈前, 汪坚, 田学红, 曾代兵, 田万廷 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1