CN103246542B - 智能缓存及智能终端 - Google Patents

智能缓存及智能终端 Download PDF

Info

Publication number
CN103246542B
CN103246542B CN201210022513.3A CN201210022513A CN103246542B CN 103246542 B CN103246542 B CN 103246542B CN 201210022513 A CN201210022513 A CN 201210022513A CN 103246542 B CN103246542 B CN 103246542B
Authority
CN
China
Prior art keywords
data
intelligent
cache
memory
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210022513.3A
Other languages
English (en)
Other versions
CN103246542A (zh
Inventor
元西西
毛二坤
陈前
汪坚
田学红
曾代兵
田万廷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201210022513.3A priority Critical patent/CN103246542B/zh
Priority to US14/375,720 priority patent/US9632940B2/en
Priority to EP12867234.2A priority patent/EP2808783B1/en
Priority to PCT/CN2012/077953 priority patent/WO2013113206A1/zh
Publication of CN103246542A publication Critical patent/CN103246542A/zh
Application granted granted Critical
Publication of CN103246542B publication Critical patent/CN103246542B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1012Design facilitation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6032Way prediction in set-associative cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种智能缓存及智能终端,智能缓存包括:通用接口,用于接收来自内核或总线的配置信息、和\或控制信息、和\或数据信息,并返回目标数据;软件定义和重构单元,用于根据配置信息将存储器定义为所需的缓存存储器;控制单元,用于控制读写Cache,以及,实时监控指令或数据流;存储单元,由大量的存储模块构成,用于缓存数据;以及,根据所述软件定义和重构单元的定义,由所述存储模块组合成所需的Cache存储器;智能处理单元,用于处理输入输出数据,将数据在所述控制单元中定义的多个结构之间进行转移、变换和运算。本发明能根据软件的运行状态、执行任务的特征、数据结构的特性,在控制单元灵活的组织、管理下以及智能处理单元的紧密配合下,实现高效的存储系统。

Description

智能缓存及智能终端
技术领域
本发明智能缓存技术,尤其涉及一种利用软硬件紧密结合的方法实现灵活的、可配置的软件定义的智能缓存,以及具有上述智能缓存的智能终端。
背景技术
传统的高速缓存(Cache Memory)利用处理器程序执行的时间或空间局部性,通过将最近和/或经常执行的指令和数据暂存在靠近处理器单元的Cache Memory内,当需要访问某个指令或数据时先访问Cache Memory,如果Cache Memory缺失(Miss),则访问速度较慢、存储空间较大的下一级存储器。
图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,SoftwareDefine and Reconfiguration Unit)、控制单元(CU,Control Unit)、存储单元(MU,MemoryUnit)和智能处理单元(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等,这些不同属性的同类结构的Cache Memory可以和其他不同种类的存储结构同时存在,例如TCM、TCAM等。也可以在工作过程中动态重构闲置Memory,达到充分利用系统存储资源的目的;控制单元(CU)除了控制读写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最少可以只需1个存储块,读写周期最少为1个时钟周期,当然也可以通过选用数目不同的存储块来组合得到不同大小的TCM。
本发明中,还可以将SDCM定义成具有简单数据处理能力的存储系统,如比特操作、数据搜索、矩阵运算等,但SDCM的处理能力不限于此。
在IPU的控制下,在SDCM内部进行前导‘0’或前导‘1’、位反转(最高位与最低位,次高位与次低位等以此类推的所有位交换)等数据位的操作比较方便。需要说明的是,上述的数据位的操作是数据存储处理中常规的处理方式,本发明不再赘述其实现细节。
图7为本发明实施例五的智能缓存的组成结构示意图,为SDCM定义的能进行比特操作的智能缓存结构示例,如图7所示,将待处理的数据存储在Cache中,内核只需要发送一条读取数据的前导‘0’或前导‘1’、位反转命令,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控制单元的所有智能终端。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

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所述的智能终端,其特征在于,所述智能终端包括计算机、或笔记本、或手机、或个人数字助理、或游戏机。
CN201210022513.3A 2012-02-01 2012-02-01 智能缓存及智能终端 Active CN103246542B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201210022513.3A CN103246542B (zh) 2012-02-01 2012-02-01 智能缓存及智能终端
US14/375,720 US9632940B2 (en) 2012-02-01 2012-06-29 Intelligence cache and intelligence terminal
EP12867234.2A EP2808783B1 (en) 2012-02-01 2012-06-29 Smart cache and smart terminal
PCT/CN2012/077953 WO2013113206A1 (zh) 2012-02-01 2012-06-29 智能缓存及智能终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210022513.3A CN103246542B (zh) 2012-02-01 2012-02-01 智能缓存及智能终端

Publications (2)

Publication Number Publication Date
CN103246542A CN103246542A (zh) 2013-08-14
CN103246542B true CN103246542B (zh) 2017-11-14

Family

ID=48904397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210022513.3A Active CN103246542B (zh) 2012-02-01 2012-02-01 智能缓存及智能终端

Country Status (4)

Country Link
US (1) US9632940B2 (zh)
EP (1) EP2808783B1 (zh)
CN (1) CN103246542B (zh)
WO (1) WO2013113206A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102317248B1 (ko) * 2014-03-17 2021-10-26 한국전자통신연구원 캐시의 부분연관 재구성을 이용한 캐시 제어 장치 및 캐시 관리 방법
CN103902502B (zh) * 2014-04-09 2017-01-04 上海理工大学 一种可扩展的分离式异构千核系统
WO2015198356A1 (en) * 2014-06-23 2015-12-30 Unicredit S.P.A. Method and system for database processing units
CN105830038B (zh) * 2014-06-30 2019-03-05 华为技术有限公司 一种访问存储设备的方法和主机
US9658963B2 (en) * 2014-12-23 2017-05-23 Intel Corporation Speculative reads in buffered memory
CN106708747A (zh) * 2015-11-17 2017-05-24 深圳市中兴微电子技术有限公司 一种存储器切换方法及装置
US10915453B2 (en) * 2016-12-29 2021-02-09 Intel Corporation Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures
CN106936901B (zh) * 2017-02-27 2019-09-17 烽火通信科技股份有限公司 一种基于msa协议的双向通信系统及其实现方法
CN107229722A (zh) * 2017-06-05 2017-10-03 商丘医学高等专科学校 一种智能数学运算处理系统
EP3924832A4 (en) * 2019-02-14 2022-11-23 Telefonaktiebolaget Lm Ericsson (Publ) MEMORY MANAGEMENT CONTROL METHODS AND DEVICES
CN112306558A (zh) * 2019-08-01 2021-02-02 杭州中天微系统有限公司 处理单元、处理器、处理系统、电子设备和处理方法
CN111090393A (zh) * 2019-11-22 2020-05-01 Oppo广东移动通信有限公司 存储数据处理方法、存储数据处理装置及电子装置
CN113419709B (zh) * 2021-06-22 2023-03-24 展讯通信(上海)有限公司 软件优化方法及装置、电子设备、可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1045307A2 (en) * 1999-04-16 2000-10-18 Infineon Technologies North America Corp. Dynamic reconfiguration of a micro-controller cache memory
US6334177B1 (en) * 1998-12-18 2001-12-25 International Business Machines Corporation Method and system for supporting software partitions and dynamic reconfiguration within a non-uniform memory access system
WO2003038626A2 (en) * 2001-10-30 2003-05-08 Sun Microsystems, Inc. Reconfigurable cache
CN1783034A (zh) * 2004-12-02 2006-06-07 富士通株式会社 存储系统及其控制方法和其程序

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367653A (en) * 1991-12-26 1994-11-22 International Business Machines Corporation Reconfigurable multi-way associative cache memory
US6678790B1 (en) 1997-06-09 2004-01-13 Hewlett-Packard Development Company, L.P. Microprocessor chip having a memory that is reconfigurable to function as on-chip main memory or an on-chip cache
US6347346B1 (en) 1999-06-30 2002-02-12 Chameleon Systems, Inc. Local memory unit system with global access for use on reconfigurable chips
US20050138264A1 (en) 2003-02-27 2005-06-23 Fujitsu Limited Cache memory
US7039756B2 (en) * 2003-04-28 2006-05-02 Lsi Logic Corporation Method for use of ternary CAM to implement software programmable cache policies
US7653912B2 (en) * 2003-05-30 2010-01-26 Steven Frank Virtual processor methods and apparatus with unified event notification and consumer-producer memory operations
US7257678B2 (en) 2004-10-01 2007-08-14 Advanced Micro Devices, Inc. Dynamic reconfiguration of cache memory
CN1746865A (zh) 2005-10-13 2006-03-15 上海交通大学 数字信号处理器可重构指令高速缓存部分的实现方法
US7467280B2 (en) 2006-07-05 2008-12-16 International Business Machines Corporation Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache
CN101788927B (zh) * 2010-01-20 2012-08-01 哈尔滨工业大学 一种基于fpga的自适应星载计算机实现内部资源动态分配的方法
CN101814039B (zh) * 2010-02-02 2011-05-18 北京航空航天大学 一种基于GPU的Cache模拟器及其空间并行加速模拟方法
US8443376B2 (en) * 2010-06-01 2013-05-14 Microsoft Corporation Hypervisor scheduler

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6334177B1 (en) * 1998-12-18 2001-12-25 International Business Machines Corporation Method and system for supporting software partitions and dynamic reconfiguration within a non-uniform memory access system
EP1045307A2 (en) * 1999-04-16 2000-10-18 Infineon Technologies North America Corp. Dynamic reconfiguration of a micro-controller cache memory
WO2003038626A2 (en) * 2001-10-30 2003-05-08 Sun Microsystems, Inc. Reconfigurable cache
CN1783034A (zh) * 2004-12-02 2006-06-07 富士通株式会社 存储系统及其控制方法和其程序

Also Published As

Publication number Publication date
CN103246542A (zh) 2013-08-14
EP2808783A4 (en) 2015-09-16
US9632940B2 (en) 2017-04-25
WO2013113206A1 (zh) 2013-08-08
EP2808783A1 (en) 2014-12-03
EP2808783B1 (en) 2019-11-27
US20150309937A1 (en) 2015-10-29

Similar Documents

Publication Publication Date Title
CN103246542B (zh) 智能缓存及智能终端
Loh et al. Supporting very large dram caches with compound-access scheduling and missmap
CN103617150B (zh) 一种基于gpu的大规模电力系统潮流并行计算的系统及其方法
CN109522254A (zh) 运算装置及方法
CN105393227B (zh) 存储器控制的数据移动及时序
CN105468439B (zh) 在cpu-gpu异构框架下遍历固定半径内邻居的自适应并行方法
CN102446159B (zh) 多核处理器的数据管理方法及装置
CN105393210B (zh) 用于处理数据存储器引用的存储器单元和方法
CN104317770A (zh) 用于众核处理系统的数据存储结构及数据访问方法
WO2013112124A1 (en) Managing addressable memory in heterogeneous multicore processors
Syu et al. High-endurance hybrid cache design in CMP architecture with cache partitioning and access-aware policy
CN103116555A (zh) 基于多体并行缓存结构的数据访问方法
Savage et al. A unified model for multicore architectures
Zhang et al. Fuse: Fusing stt-mram into gpus to alleviate off-chip memory access overheads
Hameed et al. Architecting STT last-level-cache for performance and energy improvement
CN117234720A (zh) 动态可配置的存算融合数据缓存结构、处理器及电子设备
CN105718990B (zh) 细胞阵列计算系统以及其中细胞之间的通信方法
CN106293491B (zh) 写请求的处理方法和内存控制器
Wang et al. Shift-optimized energy-efficient racetrack-based main memory
Egloff et al. Storage class memory with computing row buffer: A design space exploration
CN112817639B (zh) Gpu读写单元通过操作数收集器访问寄存器文件的方法
CN105718993B (zh) 细胞阵列计算系统以及其中的通信方法
Lee et al. Excavating the hidden parallelism inside DRAM architectures with buffered compares
CN110244933A (zh) 一种基于cuda的矩阵转置方法
KR101831226B1 (ko) 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20221116

Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong

Patentee before: ZTE Corp.

TR01 Transfer of patent right