CN102057359A - 高速缓冲存储器装置、高速缓冲存储器控制方法、程序及集成电路 - Google Patents
高速缓冲存储器装置、高速缓冲存储器控制方法、程序及集成电路 Download PDFInfo
- Publication number
- CN102057359A CN102057359A CN2010800017981A CN201080001798A CN102057359A CN 102057359 A CN102057359 A CN 102057359A CN 2010800017981 A CN2010800017981 A CN 2010800017981A CN 201080001798 A CN201080001798 A CN 201080001798A CN 102057359 A CN102057359 A CN 102057359A
- Authority
- CN
- China
- Prior art keywords
- row
- index
- unit
- management
- size
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
- G06F2212/6046—Using a specific cache allocation policy other than replacement policy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种高速缓冲存储器装置,在高速缓冲失败时进行的再填充处理之前,进行决定应再填充的行大小的行大小决定处理。该行大小决定处理中,取得属于某个组的管理对象行的读写次数(步骤S51),当读次数彼此以及写次数彼此全部一致时(步骤S52:是),将应再填充行大小决定为大大小(步骤54)。不完全一致时(步骤S52:否),将应再填充行大小决定为小大小(步骤55)。
Description
技术领域
本发明涉及一种再填充(refill)高速缓冲存储器的数据的技术。
背景技术
高速缓冲存储器是配置在处理器和主存储器之间的、比主存储器容量小但是可以高速访问的存储装置。
在高速缓冲存储器中,存在处理器请求的数据时称为命中(hit),不存在处理器请求的数据时称为失败(miss)。而且,失败时,进行将高速缓冲存储器上的数据替换的再填充(refill,replacement)处理。
一般来说,在存储器领域中,已知有空间局部性(spatial locality,参照某项目时,该项目附近的项目再次被参照的概率较高)这一性质,如果一定程度地增大作为再填充对象的数据的大小(以下称为“再填充大小”),则可以提高命中率(hit rate,hit ratio)。
但是,由于高速缓冲存储器的容量受到限制,如果再填充大小过大,则有时连处理器所需要的数据也被替换,于是命中率降低(失败率(miss rate)变高)。特别是当高速缓存失败的数据的后续数据不立刻被程序使用时容易发生这样的情况。
作为与这种再填充大小的优化相关的技术,已知有专利文献1。
现有技术文献:
专利文献1:(日本)特开2004-259109号公报
但是,高速缓冲存储器有通过并行动作的多种多样的程序来使用的趋势。因此,即使高速缓冲存储器上的某个项目通过程序而被参照,是否继续参照附近的项目也是难以预测的。如果该预测错误而将很多行大小(line size)再填充的话,其结果是导致再填充的数据的大部分不被使用,从而引起处理的延迟。
发明内容
本发明是基于这种背景而提出的,其目的在于,提供一种根据程序的动作、将再填充大小控制为可灵活利用空间局部性的大小的高速缓冲存储器装置。
本发明的高速缓冲存储器装置,其特征在于,具备:
存储单元,存储高速缓存数据;
地址提取单元,若接收到包含地址的指定在内的访问请求,则从该地址提取标签和索引;
命中/失败判断单元,基于地址提取单元提取的标签和索引,对上述高速缓存数据判断是命中还是非命中;
管理单元,对由排列了各个索引的值的多个行构成的多个行组,管理构成各行组的每行的访问次数;
计数单元,在上述地址提取单元提取的索引示出上述管理单元管理的行的索引、且由上述命中/非命中判断单元对该索引判断为命中时,将与该索引相对应的行的访问次数增加1次;
确定单元,在上述地址提取单元提取的索引未示出上述管理单元管理的行的索引、且由上述命中/失败判断单元对该索引判断为失败时,从上述管理单元管理的行之中确定与该索引相对应的行组;
决定单元,构成被确定的行组的全部行各自的访问次数如果不全部一致则将应再填充的行大小决定为第1行大小,如果全部一致则将应再填充的行大小决定为比上述第1行大小大的第2行大小决;以及
再填充单元,基于所决定的行大小,进行上述缓存数据的再填充。
发明效果
如果上述访问次数一致,则推测为程序局部地参照了存储器。根据本发明的高速缓冲存储器装置,以该访问次数的一致为条件,通过增大再填充大小,可以使命中率提高并降低高速缓冲存储器相关的数据传送。因此可以提高程序的动作性能。
附图说明
图1为示出包含高速缓冲存储器的信息处理装置的结构的图。
图2为示出高速缓冲存储器装置的结构的框图。
图3为示出地址分析部所取得的地址信息的一例的图。
图4为示出高速缓存数据存储部所管理的高速缓存数据的一例的图。
图5为示出读写次数管理部所管理的信息的一例的图。
图6为示出高速缓冲存储器装置的动作的流程图。
图7为示出与次数计数相关的动作的流程图。
图8为示出与次数复位相关的动作的流程图。
图9为示出与行大小决定相关的动作的流程图。
图10为用于说明对管理对象行进行设定的例子的图。
符号说明
1、11、12、13 处理器
2 存储器装置
10 高速缓冲存储器装置
21 ROM
22 RAM
25 HDD
26、35、41、46 接口(I/F)
31 存储介质
32 读取装置
33 通信线路
34 通信装置
40 输入装置
45 显示装置
50 总线
51 定时器电路
55 中断控制器
201 地址分析部(地址提取部)
202 管理行判断部
203 次数管理部
204 行大小决定部
205 命中/失败判断部
206 再填充部
207 高速缓存数据存储部
231 外部存储器
具体实施方式
以下参照附图说明具体实施方式。
(结构)
图1为示出包含高速缓冲存储器装置的信息处理装置1000的结构的图。
信息处理装置1000例如由PC(Personal Computer)等通用的计算机构成。该信息处理装置1000具备:处理器1、存储器装置2、通信装置34、输入装置40、显示装置45、定时器电路51及中断控制器55。这些装置通过总线50相互连接。
此外,HDD(Hard Disk Drive:1盘驱动器)25、读取装置32、输入装置40和显示装置45分别通过I/F(接口)26、35、41及46连接到总线50。
处理器1由3个处理器11、12、13构成。各处理器是被称作CPU(Central Processing Unit,中央运算处理装置)的装置。
存储器装置2具备ROM(Read Only Memory)21和RAM(Random Access Memory)22。
ROM21具有存储对处理器1的动作进行规定的计算机程序和数据的功能,例如由闪存ROM(flash ROM)这样的可以写入、且即使切断电源也能够保持存储内容的非易失性存储器构成。RAM22具有临时存储随着处理器1执行处理而产生的数据的功能,例如由切断电源后不保持存储内容的易失性存储器构成。此外,取代ROM21地、计算机程序和数据也可以存储于HDD25。
处理器1一边根据需要将ROM21或HDD25存储的计算机程序和数据写入RAM22,一边执行计算机程序规定的处理。
HDD25是存储计算机程序、数据的装置。
读取装置32是读取在存储介质31(例如CD、DVD、存储卡等)上存储的计算机程序或数据的装置。
通信装置34是通过电话线、网线、无线、红外线通信等通信线33而在外部和自身之间交换计算机程序、数据的装置。
输入装置40是通过用户的操作来输入数据等的装置,由键盘、鼠标和各种输入按钮构成。
显示装置45是将数据、图像等显示在画面上、或者将数据等以声音输出的装置,例如包括19英寸的液晶显示器(LCD:Liquid Crystal Display)和扬声器。
定时器电路51是以固定的周期输出定时器中断信号的装置。
中断控制器55是将从定时器电路51、输入装置40、处理器1、作为网络设备的通信装置34、HDD25、读取装置32等送来的中断请求信号向处理器1中继的装置。来自各装置的中断请求信号附有优先级。该中断控制器55具有在同时从多个装置发生中断的情况下、根据上述优先级对这些要求进行仲裁(arbitration)的功能。
图2为示出高速缓冲存储器装置10的结构的框图。高速缓冲存储器装置10与处理器1、外部存储器231协同动作。作为外部存储器231,典型地采用图1所示的存储器装置2中包含的RAM22。
高速缓冲存储器装置10具备:地址分析部201、管理行判断部202、次数管理部203、行大小决定部204、命中/失败判断部205、再填充部206、高速缓存数据存储部207。此外,高速缓存数据按照被称为高速缓存行(cache line)(以下简称为“行”)的、固定大小的数据的每一个而被管理。此外,可以根据索引(index)的值来唯一地识别并访问高速缓存数据的各行。
地址分析部201从处理器1接收表示请求的数据的存储目的地的地址。地址分析部201从接收到的地址中分离出用于判断命中的标签(tag)和表示高速缓存数据的存储偏移(offset)的索引。地址分析部201将分离得到的索引传送给管理行判断部202,将标签和索引传送给命中/失败判断部205。
管理行判断部202具有如下功能:判断对处理器1请求的数据的访问是否为对次数管理部203(如后述那样、次数管理部203管理高速缓冲存储器中全部行之中的一部分规定的行)的管理对象的行的访问。
管理行判断部202保持与管理对象行相对应的索引。管理行判断部202若从地址分析部201接收到索引,则判断该索引是否与保持着的索引匹配(あたる)。管理行判断部202的典型的结构为,具备如下电路即可,即作为高速缓冲存储器装置而事先决定管理对象的索引,在以该索引发生了访问的情况下,能够进行断言(assert)的电路。
此外,管理行判断部202若判断为是管理对象的行,则通知次数管理部203是管理对象的行这一情况。与此相对,若判断为不是管理对象的行,则通知次数管理部203和行大小决定部204不是管理对象的行这一情况。
命中/失败判断部205具有如下功能:判断处理器1请求的数据是作为高速缓存数据而存在(命中)还是不存在(失败)。命中/失败判断部205若从地址分析部201接收到标签和索引,则将索引传送给高速缓存数据存储部207。接着,命中/失败判断部205从高速缓存数据存储部207接收与传送的索引相对应的高速缓存数据的标签。命中/失败判断部205将从地址分析部201取得的标签和询问高速缓存数据存储部207而取得的标签进行比较。
然后,比较的结果为,若标签彼此一致则判断为命中,命中/失败判断部205从高速缓存数据存储部207取得相应行的数据,传送给处理器1。此外,命中/失败判断部205向次数管理部203和行大小决定部204通知命中这一情况。与此相对,比较的结果为,若标签彼此不一致则判断为失败,命中/失败判断部205向次数管理部203和行大小决定部204通知失败这一情况。
此外,无论命中还是失败,命中/失败判断部205都向次数管理部203和行大小决定部204传送从地址分析部201接收到的标签和索引。
次数管理部203具有如下功能:对高速缓冲存储器中全部行之中的一部分规定的行的访问次数(读次数和写次数)进行存储并管理。关于该作为管理对象的行的决定方法在后面叙述。
次数管理器203若从管理行判断部202接收到是对管理对象的行的访问的通知,则接下来根据从命中/失败判断部205接收到的索引,确定相应的管理对象的行。
次数管理部203连接有当存在来自处理器1的读请求或写请求时进行通知的线。次数管理部203根据经由该线而通知的读请求或写请求、以及来自命中/失败判断部205的通知是命中还是失败,对所管理的读次数或写次数进行更新。
此外,次数管理部203在从命中/失败判断部205接收到是失败的通知时,次数管理部203将从地址分析部201接收到的标签和索引传送给再填充部206。此外,次数管理部203将行大小传送给再填充部206。
此外,次数管理部203在从命中/失败判断部205接收到是失败的通知时,如果接收到判断为不是管理对象的行的通知,则根据该不是管理对象的行的索引的值,确定作为管理对象的行的替代的索引。然后,将确定后的索引通知给行大小决定部。
行大小决定部204具有如下功能:参照次数管理部203通知的索引的读写次数,决定使应再填充的行大小为单行大小还是为多行大小(例如4行)。
在行大小决定部204从管理行判断部202接收到不是管理对象的行的通知、且从命中/失败判断部205接收到是失败的通知时,进行该决定行的处理。
如详细叙述该处理,则行大小决定部204从次数管理部203取得管理对象的行的索引。接着,行大小决定部204从高速缓存数据存储部207取得与取得的全部索引相对应的标签。此外,行大小决定部204从次数管理部203取得与取得的全部索引相对应的读写次数。
在取得的标签彼此、读次数彼此和写次数彼此全部一致的情况下,行大小决定部204将应再填充的行大小决定为较大的4行大小。此外,任何一个不一致的情况下,将应再填充的行大小决定为通常的单行大小。然后,将决定的行大小和再填充的数据的地址通知给再填充部206。
再填充部206从次数管理部203或行大小决定部204取得再填充对象所存在的数据的地址和应再填充的行大小,按取得的行大小从外部存储器231读入取得的地址中存在的数据。
读入后,再填充部206将读入的数据、该数据的地址和数据的大小这三者传送给高速缓存数据存储部207。此外,再填充部206也可以从次数管理部203、行大小决定部204取得再填充的标签和索引,来代替上述数据的地址和数据的大小传送给高速缓存数据存储部207。
高速缓存数据存储部207具有存储、管理高速缓存的数据的功能。高速缓存数据存储部207以行单位对存储的数据进行管理,根据索引可以唯一地确定各行是哪一行。此外,高速缓存数据存储部207按每个行,将表示各行中的数据是外部存储器231中哪个地址的数据的标签赋予关联地进行管理。
若高速缓存数据存储部207从命中/失败判断部205接收到索引,则通过索引确定行,将与该行对应起来进行管理的标签返回给命中/失败判断部205。
高速缓存数据存储部207若从再填充部206接收到数据的大小,则根据所管理的行大小来掌握该数据是几行的数据。并且,若接收到来自再填充部206的数据的地址,则将数据的地址传送到地址分析部201并接收标签和索引,根据接收到的索引确定行,将从再填充部206接收到的数据作为确定了的行的数据来管理。此外,高速缓存数据存储部207将从地址分析部201接收到的标签作为与确定的行相对应的标签来管理。此外,高速缓存数据存储部207也可以取得再填充的标签和索引并更新高速缓存数据,来代替从再填充部206取得数据的地址和数据的大小。
高速缓存数据存储部207在从再填充部206接收到多行量的数据时,与后续索引的行相对应地管理行大小量的数据。高速缓存数据存储部207将从地址分析部201接收到的标签作为与后续索引的行相对应的标签来管理。高速缓存数据存储部207对从再填充部206接收到的全部行的数据进行上述的动作,从而管理高速缓存数据。
接着,以处理器1向地址分析部201传送的地址为例进行说明。图3中作为一例而示出了由32位构成的地址401。从0开始到31为止的数值402,是将构成地址401的各个位方便地表示为从低位第0位开始到第31位为止的数值(第31位是最高位的位)。
地址401包含从第15位到第31位的高位地址403和从第5位到第14位的低位地址404。
地址分析部201若接收到地址401,则根据行大小和高速缓存块大小(cache block size),将高位地址403作为标签从地址401取出(切り出す),将低位地址404作为索引从地址401取出。
图3作为一例,示出了行大小为32字节,高速缓存块大小为32KB的情况。但是,例举的行大小及高速缓存块大小只不过是一例,可以根据高速缓冲存储器的结构进行变更。
接着,对高速缓存数据存储部207管理的高速缓存数据的例子进行说明。
在图4的例子中,高速缓存数据存储部207管理“高速缓存数据”207c、表示该数据的行的“索引”207a、表示该数据在外部存储器231中是哪一个地址的数据的“标签”207b。
如上所述,该高速缓存数据存储部207存储的数据的行(索引)之中的一部分成为次数管理部203管理的管理对象行。具体例如图5所示。
次数管理部203包含表示管理对象行的“索引”203a、与索引相对应的“读次数”203b、“写次数”203c。
在图5的例中,索引0x000~0x003的4行的“组1”和索引0x200~0x203的4行的“组2”成为管理对象。如上所述,各组的开头的索引0x000、0x200是在程序使用的页单位上索引成为开头的行。
(动作)
以下,对实施方式的高速缓冲存储器装置的动作进行说明。
如图6所示,首先,地址分析部201若从处理器1接收到地址,则将该地址分离(提取)为标签和索引(步骤S11)。
接着,命中/失败判断部205,若从地址分析部201接收到标签和索引,则询问高速缓存数据存储部207并判断是命中还是失败(步骤S12)。该判断为,命中/失败判断部205从高速缓存数据存储部207取得与索引相对应的高速缓存数据的标签,并与地址分析部201所分离的标签比较,如果两个标签一致,则判断为命中(步骤S12:命中),如果不一致则判断为失败(步骤S12:失败)。
若判断为命中(步骤S12:命中),则命中/失败判断部205从高速缓存数据存储部207取得与在步骤S11中分离的地址相对应的高速缓存数据,并返还给处理器1(步骤S13)。
然后,管理行判断部202判断在步骤S11中分离的地址中包含的索引是否为管理对象行的索引(步骤S14)。
如果是管理对象行的索引(步骤S14:是),则转移到次数计数的处理(步骤S15,图7)。如果不是管理对象行的索引(步骤S14:否),则结束处理。
如图7所示,次数计数处理中,次数管理部203确定访问对象的行(步骤S31),如果访问是读请求(步骤S32:读),则将相应的管理对象行的读次数增加1次(步骤S33)。
如果访问是写请求(步骤S32:写),则次数管理部203将相应的管理对象行的写次数增加1次(步骤S34)。
具体举例来说,如果访问对象的行是“0x000”且访问是读请求,则次数管理部203将管理对象行的索引“0x000”的读次数2次(参照图5)增加1次而将其更新为3次。此外,如果访问对象的行是“0x001”且访问是写请求,则次数管理部203将管理对象行的索引“0x001”的写次数0次(参照图5)增加1次,从而将其更新为1次。
这样,如果高速缓存命中(步骤S12:命中)且是对管理对象行的访问(步骤S14:是),则次数管理部203对相对应的管理对象行的次数进行计数(步骤S31~步骤S34)。
接着,若命中/失败判断部205判断为失败(步骤S12:失败),则管理行判断部202判断在步骤S11中分离的地址中包含的索引是否为管理对象行的索引(步骤S16)。
如果是管理对象行的索引(步骤S16:是),则转移到次数复位的处理(步骤S17,图8)。
如图8所示,次数复位处理中,次数管理部203将访问对象的行的读写次数无效化(复位)(步骤S41)。然后,如果访问是读请求(步骤S42:读),则将相应的管理对象行的读次数设定为1次(步骤S43)。
与此相对,如果访问是写请求(步骤S42:写),则次数管理部203将相应的管理对象行的写次数设定为1次(步骤S44)。
具体举例来说,如果访问对象的行是“0x000”且访问是读请求,则次数管理部203将管理对象行的索引“0x000”的读次数2次、写次数3次(参照图5)都复位为0次,然后将读次数再次设定为1次。
这样的次数的复位处理结束后,再填充部206从外部存储器231取得相应行(与步骤S11中分离的地址中包含的索引相对应的行)的数据,并再填充高速缓存数据存储部207的高速缓存数据(步骤S19)。
具体来说,再填充部206从外部存储器231读入与从次数管理部203接收到的再填充对象的地址相对应的数据。然后,再填充部206将读入的数据传送给高速缓存数据存储部207,并使其作为高速缓存数据而被存储。接着,再填充部206将从外部存储器231读入的数据返还到处理器1。
如果不是管理对象行的索引(步骤S16:否),则管理行判断部202将这一情况通知给管理次数部203。接收到通知的次数管理部203,从自己管理的管理对象行之中确定比在步骤S11中取得的索引小、且最接近的索引的组。例如,若设在步骤S11中分离的地址中包含的索引是“0x280”(图4),则确定为比该索引“0x280”小、且最接近的索引的组2(图5:“0x200”~“0x203”的4行的组)(步骤S20)。
然后,转移到行大小决定处理(步骤S21,图9)
行大小决定处理中,行大小决定部204若从管理行判断部202接收到表示被确定的组的信息,则从次数管理部203取得与接收到的组相对应的读写次数,并且从高速缓存数据存储部207取得属于取得的组的管理对象行的标签(步骤S51)。
然后,判断取得的全部管理对象行的读次数彼此、写次数彼此是否全部一致(步骤S52)。例如,如果索引的组被确定为组2,则属于组2的“0x200”~“0x203”的4行的读次数为0次、写次数为2次,由于全部一致(参照图5),所以做出肯定的判断。与此相对,如果索引的组被确定为组1,则属于组1的“0x000”~“0x003”的4行的读次数为2次、2次、0次、1次而各不相同(参照图5),所以做出否定的判断。
若在步骤S52中判断为一致(步骤S52:是),则接下来行大小决定部204判断取得的全部管理对象行的标签彼此是否全部一致(步骤S53)。例如,如果索引的组被确定为组2,则属于组2的“0x200”~“0x203”的4行的标签全部一致,为“0x02000”(参照图4),所以作出肯定的判断。与此相对,如果索引的组被确定为组1,则属于组1的“0x000”~“0x003”的4行的标签为0x01c80、0x01c80、0x10000、0x00040,仅仅其中的一部分即2个一致,不是全部一致,因此作出否定的判断。
在取得的全部管理对象行的读次数彼此、写次数彼此全部一致(步骤S52:是)、且取得的全部管理对象行的标签彼此全部一致的情况下(步骤S53:是),行大小决定部204将应再填充的行大小决定为4行的大小(步骤S54)。
如果不满足步骤S52、S53这两个判断中的任何一个(步骤S52:否,或步骤S53:否),则行大小决定部204将通常的应再填充的行大小决定为1行的大小。
这样的行大小决定处理结束后,再填充部206从外部存储器231取得相应的行(与步骤S11中分离的地址中包含的索引相对应的行)的数据,并再填充高速缓存数据存储部207的高速缓存数据(步骤S19)。
特别是,如果再填充大小是4行(步骤S54),则再填充部206不仅对对应的行,对索引为该行后续的3行也一起进行再填充。例如,如果在步骤S11中分离的地址中包含的索引是“0x280”,则再填充部206不仅将“0x280”、也将后续的“0x281”~“0x283”这3行合计4行作为再填充对象。
一般来说,程序是以页单位来使用并管理存储器的。因此,如果与同一页单位对应的索引的读次数和写次数一致,则能够推定为程序在做连续的(顺序的)动作。因此,如果以读次数和写次数的一致为条件而再填充比通常大的行大小,则可以期待该再填充的数据在后面被使用的可能性变高(命中率变高)。
使用本实施例来说明,管理对象行“0x200”~“0x203”的读次数、写次数全部一致(参照图5),所以程序在做连续动作的可能性较高。因此,通过不仅对“0x280”而且对“0x281”~“0x283”也进行再填充,从而再填充之后,对行“0x281”~“0x283”也发生访问(程序参照“0x281”~“0x283”),能够提高成为高速缓存命中的概率。
此外,关于某同一页单位对应的索引,其开头部分的索引最能体现程序的动作。因此,将“0x200”~“0x203”等这样的开头部分作为管理对象来观察次数的一致,从而可以设定准确地反映程序的动作的再填充大小。
(补充1)
以上对本实施方式进行了说明,但是本发明不限定于上述内容,为达成本发明的目的和与其相关联或附随的目的的各种实施方式也都可以实施,例如,也可以是以下的实施方式。
(1)图9的例中,顺序为:判断次数的一致之后再判断标签的一致,但是该顺序不限于此,也可以反过来(也可以步骤S52在步骤S53之后)。
此外,步骤S53的处理为,判断表示数据在外部存储器231中是哪个地址的数据的标签彼此的一致。根据该判断,可以排除标签不一致而只是偶然地读次数、写次数一致的情况,换言之可以排除不能鲜明地反映程序的动作的次数的一致,从而能够对帮助决定更合适的再填充大小做出贡献。但是,步骤S53的处理不是必须的,也可以考虑跳过步骤S53。
(2)虽然在实施方式中没有详细叙述,但是和通常的高速缓存技术相同,高速缓存数据存储部207中,也可以按照每行来管理表示数据的有效(valid)/无效(invalid)的有效标签、及用于保证数据的一贯性(consistency)的脏(dirty)标签。
此外,特别是管理有效标签时,也可以是,命中/非命中判断部205除判断标签的一致以外,还以有效标签表示有效的情况为条件来判断为命中。
(3)实施方式中,行大小决定部204在增大再填充的行大小时将行大小决定为与管理对象行的1组中包含的行数相同的4行(图9:步骤S54),但是不限于此。例如也可以设为2行、8行。
关键是,管理对象行的读次数、写次数一致时的行大小A如果比不一致时的行大小B相对大(A>B),则能够有助于行大小的优化。
(4)实施方式中,作为外部存储器231列举了RAM22,但是作为外部存储器231要素,不限于RAM22,只要是与高速缓冲存储器装置10相比存储层次(memory hierarchy)更下位层的存储器即可。例如,从HDD25及读取装置32读入的存储介质31也可以用作外部存储器231。
(5)对如何设定管理次数部203中的管理对象行进行叙述。如实施方式所示,构成多组由索引的值连续的多个行构成的行组(line set),使行组彼此有一定间隔。该一定间隔与程序使用的存储器单位(存储器中的程序的管理单位)的间隔相对应,各行组优选设置为,相当于存储器单位的开头。此外,为了高精度地推测程序的动作,虽然设置为开头是最好的,但是根据情况也可以使各行组位于存储器单位的中部。
管理对象行的进一步的具体例在图10中示出。如图10所示,如果程序使用的存储器单位为4千字节,高速缓存行大小为32字节,则以索引0x80(128)间隔来设置行组。然后各行组将从索引0x000、0x080、0x100等分别后续的4行作为组。
此外,被设为组的行数,只要是多个(大于等于2行)即可,例如也可以是8行。
(6)图9的步骤S52的“是”,也可以是除去读次数彼此全部为0次且写次数彼此全部为0次的情况。理由是,如果两者都为0次,则有时并不适合作为推测程序的动作的材料。
(7)实施方式中,将信息处理装置1000作为PC而进行了说明,但是不限于此,也可以是PDA(Personal Digital Assistance)及便携电话等便携通信终端。此外,信息处理装置1000可以自身作为供用户使用的设备,也可以和各种电子设备组合在一起。
(8)实施方式中,将处理器1作为CPU而进行了说明,但是不限于此,也可以是媒体处理用或图像处理用的处理器、DSP(Digital Signal Processor)等,此外,处理器可以是由单一的处理器构成,也可以由多个处理器构成。
(9)图2的各功能块典型地作为处理器和外部存储器之间存在的高速缓冲存储器来实现,但是也可以是作为集成电路的LSI。它们可以分别地被单芯片化,也可以包括一部分或者全部地被单芯片化。在此,虽然被称为LSI,但是根据集成度的不同,有时也被称为IC、系统LSI、超级(super)LSI、特级(ultra)LSI。此外,集成电路化的方法不限于LSI,也可以用专用电路或通用处理器来实现。也可以利用在LSI制造后,可编程的FPGA(Field Programmable Gate Array)、可对LSI内部的电路单元的连接及设定进行重构的可重构处理器(reconfigurable processer)。进一步地,如果因半导体技术的进步或派生的其他技术而出现取代LSI的集成电路化技术,当然也可以使用该技术来进行功能块的集成化。
(10)可以将由程序代码构成的控制程序存储在存储介质中,或者通过各种通信路径等使其流通并公布,该程序代码用来使各种信息处理装置的处理器、及连接于该处理器的各种电路执行实施方式中示出的动作等。这样的存储介质包括IC卡、HDD、光盘、软磁盘、ROM等非暂时(non-transitory)存储介质。流通、公布的控制程序通过存储于可由处理器读取的存储器等中以供使用,该处理器通过执行该控制程序来实现实施方式中示出的各种功能。
(11)实施方式和本补充1举出的具体规格值(行大小,高速缓存块大小等)不过是一例,根据高速缓冲存储器的结构可以适当变更。
(补充2)
本实施方式包括下面的形态。
(1)本实施方式的高速缓冲存储器装置,其特征在于,具备:
存储单元,存储高速缓存数据;
地址提取单元,若接收到包含地址的指定在内的访问请求,则从该地址提取标签和索引;
命中/失败判断单元,基于地址提取单元提取的标签和索引,对上述高速缓存数据判断是命中还是非命中;
管理单元,对由排列了各个索引的值的多个行构成的多个行组,管理构成各行组的每行的访问次数;
计数单元,在上述地址提取单元提取的索引示出上述管理单元管理的行的索引、且由上述命中/非命中判断单元对该索引判断为命中时,将与该索引相对应的行的访问次数增加1次;
确定单元,在上述地址提取单元提取的索引未示出上述管理单元管理的行的索引、且由上述命中/失败判断单元对该索引判断为失败时,从上述管理单元管理的行之中确定与该索引相对应的行组;
决定单元,构成被确定的行组的全部行各自的访问次数如果不全部一致则将应再填充的行大小决定为第1行大小,如果全部一致则将应再填充的行大小决定为比上述第1行大小大的第2行大小;以及
再填充单元,基于所决定的行大小,进行上述缓存数据的再填充。
(2)也可以为,上述多个行组分别由索引以连续的值排列的多个行构成,上述确定单元确定行组,该行组包含比上述地址提取单元提取的索引的值小、且为最接近的值的规定索引。
(3)也可以为,上述存储单元存储的高速缓存数据是,用于程序进行读取和写入的、以页单位管理的主存储器的数据,
上述多个行组的每一个与上述主存储器中的每一个页单位一对一地对应,各行组的开头的索引的值是与上述主存储器中的页单位的开头相对应的值。
(4)也可以为,上述存储单元将上述高速缓存数据与表示该数据在主存储器中的所在地的标签赋予关系,并以行单位存储上述高速缓存数据,上述索引指定上述存储单元中的行,上述决定单元从上述存储单元取得构成所确定的行组的全部行各自所对应的全部标签,在上述构成所确定的行组的全部行各自的访问次数全部一致的情况下,如果取得的全部标签不完全一致,则将应再填充行大小决定为上述第1行大小,如果取得的全部标签完全一致,则将应再填充行大小决定为上述第2行大小。
根据该结构,可以更可靠地推测程序的动作,决定合适的再填充大小。
(5)也可以为,上述访问请求有读请求和写请求2个种类,上述管理单元管理的上述访问次数包括读次数和写次数,在由上述命中判断单元判断为命中的情况下,如果作为该判断的基础的访问请求是读请求,则上述计数单元将对应的索引的读次数增加1次,如果作为该判断的基础的访问请求是写请求,则上述计数单元将对应的写次数增加1次,在构成被确定的行组的全部行各自的写次数全部一致、且构成被确定的行组的全部行各自的读次数全部一致的情况下,上述决定单元将应再填充行大小决定为上述第2行大小,在构成被确定的行组的全部行各自的写次数不全部一致的情况下,或者在构成被确定的行组的全部行各自的读次数不全部一致的情况下,将应再填充行大小决定为上述第1行大小。
(6)也可以为,若上述地址提取单元提取的索引示出上述管理单元管理的行的索引、且对该索引由上述命中/失败判断单元判断为失败,则上述计数单元将包含与上述访问请求中包含的索引相对应的行的读次数和写次数的访问次数复位,复位之后根据访问请求是读请求还是写请求,将对应的索引的读次数或写次数增加1次。
(7)也可以为,上述存储单元将上述高速缓存数据与表示该数据在主存储器中的所在地的标签赋予关系,并以行单位存储上述高速缓存数据,上述索引指定上述存储单元中的行,上述命中判断单元从上述存储单元所存储的数据之中确定由上述地址提取单元提取出的索引所对应的索引,将被与所确定的索引赋予了关系的标签和由地址提取单元提取的标签相比较,如果两个标签一致则判断为命中,如果不一致则判断为失败。
(8)本发明的实施方式的高速缓冲存储器控制方法,其特征在于,具备:
存储步骤,存储高速缓存数据;
地址提取步骤,若接收到包含地址的指定在内的访问请求,则从该地址提取标签和索引;
命中/失败判断步骤,基于地址提取步骤提取的标签和索引,对上述高速缓存数据判断是命中还是非命中;
管理步骤,对由排列了各个索引的值的多个行构成的多个行组,管理构成各行组的每行的访问次数;
计数步骤,在上述地址提取步骤提取的索引示出上述管理步骤管理的行的索引、且由上述命中/非命中判断步骤对该索引判断为命中时,将与该索引相对应的行的访问次数增加1次;
确定步骤,在上述地址提取步骤提取的索引未示出上述管理步骤管理的行的索引、且由上述命中/失败判断步骤对该索引判断为失败时,从上述管理步骤管理的行之中确定与该索引相对应的行组;
决定步骤,构成被确定的行组的全部行各自的访问次数如果不全部一致则将应再填充的行大小决定为第1行大小,如果全部一致则将应再填充的行大小决定为比上述第1行大小大的第2行大小;以及
再填充步骤,基于所决定的行大小,进行上述缓存数据的再填充。
(9)本实施方式的程序,使高速缓冲存储器装置执行高速缓冲存储器控制处理,其特征在于,上述高速缓冲存储器控制处理包括:
存储步骤,存储高速缓存数据;
地址提取步骤,若接收到包含地址的指定在内的访问请求,则从该地址提取标签和索引;
命中/失败判断步骤,基于地址提取步骤提取的标签和索引,对上述高速缓存数据判断是命中还是非命中;
管理步骤,对由排列了各个索引的值的多个行构成的多个行组,管理构成各行组的每行的访问次数;
计数步骤,在上述地址提取步骤提取的索引示出上述管理步骤管理的行的索引、且由上述命中/非命中判断步骤对该索引判断为命中时,将与该索引相对应的行的访问次数增加1次;
确定步骤,在上述地址提取步骤提取的索引未示出上述管理步骤管理的行的索引、且由上述命中/失败判断步骤对该索引判断为失败时,从上述管理步骤管理的行之中确定与该索引相对应的行组;
决定步骤,构成被确定的行组的全部行各自的访问次数如果不全部一致则将应再填充的行大小决定为第1行大小,如果全部一致则将应再填充的行大小决定为比上述第1行大小大的第2行大小;以及
再填充步骤,基于所决定的行大小,进行上述缓存数据的再填充。
(10)本实施方式的集成电路,其特征在于,具备:
存储单元,存储高速缓存数据;
地址提取单元,若接收到包含地址的指定在内的访问请求,则从该地址提取标签和索引;
命中/失败判断单元,基于地址提取单元提取的标签和索引,对上述高速缓存数据判断是命中还是非命中;
管理单元,对由排列了各个索引的值的多个行构成的多个行组,管理构成各行组的每行的访问次数;
计数单元,在上述地址提取单元提取的索引示出上述管理单元管理的行的索引、且由上述命中/非命中判断单元对该索引判断为命中时,将与该索引相对应的行的访问次数增加1次;
确定单元,在上述地址提取单元提取的索引未示出上述管理单元管理的行的索引、且由上述命中/失败判断单元对该索引判断为失败时,从上述管理单元管理的行之中确定与该索引相对应的行组;
决定单元,构成被确定的行组的全部行各自的访问次数如果不全部一致则将应再填充的行大小决定为第1行大小,如果全部一致则将应再填充的行大小决定为比上述第1行大小大的第2行大小;以及
再填充单元,基于所决定的行大小,进行上述缓存数据的再填充。
工业上利用的可能性
本发明的高速缓冲存储器装置具有根据程序的动作即时变更再填充的行大小的功能,作为信息处理装置而是有用的。此外,在信息设备、AV设备、通信设备、家用电器等嵌入设备等的搭载计算机的设备中有用。
Claims (10)
1.一种高速缓冲存储器装置,其特征在于,具备:
存储单元,存储高速缓存数据;
地址提取单元,若接收到包含地址的指定在内的访问请求,则从该地址提取标签和索引;
命中/失败判断单元,基于地址提取单元提取的标签和索引,对所述高速缓存数据判断是命中还是非命中;
管理单元,对由排列了各个索引的值的多个行构成的多个行组,管理构成各行组的每行的访问次数;
计数单元,在所述地址提取单元提取的索引示出所述管理单元管理的行的索引、且由所述命中/非命中判断单元对该索引判断为命中时,将与该索引相对应的行的访问次数增加1次;
确定单元,在所述地址提取单元提取的索引未示出所述管理单元管理的行的索引、且由所述命中/失败判断单元对该索引判断为失败时,从所述管理单元管理的行之中确定与该索引相对应的行组;
决定单元,构成被确定的行组的全部行各自的访问次数如果不全部一致则将应再填充的行大小决定为第1行大小,如果全部一致则将应再填充的行大小决定为比所述第1行大小大的第2行大小;以及
再填充单元,基于所决定的行大小,进行所述缓存数据的再填充。
2.如权利要求1所述的高速缓冲存储器装置,其特征在于,
所述多个行组分别由索引以连续的值排列的多个行构成,
所述确定单元确定行组,该行组包含比所述地址提取单元提取的索引的值小、且为最接近的值的规定索引。
3.如权利要求2所述的高速缓冲存储器装置,其特征在于,
所述存储单元存储的高速缓存数据是用于程序进行读取和写入的、以页单位管理的主存储器的数据,
所述多个行组的每一个与所述主存储器中的每一个页单位一对一地对应,各行组的开头的索引的值是与所述主存储器中的页单位的开头相对应的值。
4.如权利要求1所述的高速缓冲存储器装置,其特征在于,
所述存储单元将所述高速缓存数据与表示该数据在主存储器中的所在地的标签建立关系,并以行单位存储所述高速缓存数据,所述索引指定所述存储单元中的行,
所述决定单元从所述存储单元取得构成所确定的行组的全部行各自所对应的全部标签,在所述构成所确定的行组的全部行各自的访问次数全部一致的情况下,如果取得的全部标签不全部一致,则将应再填充的行大小决定为所述第1行大小,如果取得的全部标签全部一致,则将应再填充的行大小决定为所述第2行大小。
5.如权利要求1所述的高速缓冲存储器装置,其特征在于,
所述访问请求有读请求和写请求2个种类,
所述管理单元管理的所述访问次数包括读次数和写次数,
在由所述命中判断单元判断为命中的情况下,如果作为该判断的基础的访问请求是读请求,则所述计数单元将对应的索引的读次数增加1次,如果作为判断的基础的访问请求是写请求,则所述计数单元将对应的写次数增加1次,
在构成被确定的行组的全部行各自的写次数全部一致、且构成被确定的行组的全部行各自的读次数全部一致的情况下,所述决定单元将应再填充的行大小决定为所述第2行大小,
在构成被确定的行组的全部行各自的写次数不全部一致的情况下,或者在构成被确定的行组的全部行各自的读次数不全部一致的情况下,所述决定单元将应再填充的行大小决定为所述第1行大小。
6.如权利要求5所述的高速缓冲存储器装置,其特征在于,
若所述地址提取单元提取的索引示出所述管理单元管理的行的索引、且对该索引由所述命中/失败判断单元判断为失败,则所述计数单元将包含与所述访问请求中包含的索引相对应的行的读次数和写次数的访问次数复位,
复位之后,根据访问请求是读请求还是写请求,将对应的索引的读次数或写次数增加1次。
7.如权利要求1所述的高速缓冲存储器装置,其特征在于,
所述存储单元将所述高速缓存数据与表示该数据在主存储器中的所在地的标签建立关系,并以行单位存储所述高速缓存数据,所述索引指定所述存储单元中的行,
所述命中判断单元从所述存储单元所存储的数据之中确定由所述地址提取单元提取出的索引所对应的索引,将与被确定的索引建立了关系的标签和由地址提取单元提取的标签相比较,如果两个标签一致则判断为命中,如果不一致则判断为失败。
8.一种高速缓冲存储器控制方法,其特征在于,包括:
存储步骤,存储高速缓存数据;
地址提取步骤,若接收到包含地址的指定在内的访问请求,则从该地址提取标签和索引;
命中/失败判断步骤,基于地址提取步骤提取的标签和索引,对所述高速缓存数据判断是命中还是非命中;
管理步骤,对由排列了各个索引的值的多个行构成的多个行组,管理构成各行组的每行的访问次数;
计数步骤,在所述地址提取步骤提取的索引示出所述管理步骤管理的行的索引、且由所述命中/非命中判断步骤对该索引判断为命中时,将与该索引相对应的行的访问次数增加1次;
确定步骤,在所述地址提取步骤提取的索引未示出所述管理步骤管理的行的索引、且由所述命中/失败判断步骤对该索引判断为失败时,从所述管理步骤管理的行之中确定与该索引相对应的行组;
决定步骤,构成被确定的行组的全部行各自的访问次数如果不全部一致则将应再填充的行大小决定为第1行大小,如果全部一致则将应再填充的行大小决定为比所述第1行大小大的第2行大小;以及
再填充步骤,基于所决定的行大小,进行所述缓存数据的再填充。
9.一种程序,使高速缓冲存储器装置执行高速缓冲存储器控制处理,其特征在于,所述高速缓冲存储器控制处理包括:
存储步骤,存储高速缓存数据;
地址提取步骤,若接收到包含地址的指定在内的访问请求,则从该地址提取标签和索引;
命中/失败判断步骤,基于地址提取步骤提取的标签和索引,对所述高速缓存数据判断是命中还是非命中;
管理步骤,对由排列了各个索引的值的多个行构成的多个行组,管理构成各行组的每行的访问次数;
计数步骤,在所述地址提取步骤提取的索引示出所述管理步骤管理的行的索引、且由所述命中/非命中判断步骤对该索引判断为命中时,将与该索引相对应的行的访问次数增加1次;
确定步骤,在所述地址提取步骤提取的索引未示出所述管理步骤管理的行的索引、且由所述命中/失败判断步骤对该索引判断为失败时,从所述管理步骤管理的行之中确定与该索引相对应的行组;
决定步骤,构成被确定的行组的全部行各自的访问次数如果不全部一致则将应再填充的行大小决定为第1行大小,如果全部一致则将应再填充的行大小决定为比所述第1行大小大的第2行大小;以及
再填充步骤,基于所决定的行大小,进行所述缓存数据的再填充。
10.一种集成电路,其特征在于,具备:
存储单元,存储高速缓存数据;
地址提取单元,若接收到包含地址的指定在内的访问请求,则从该地址提取标签和索引;
命中/失败判断单元,基于地址提取单元提取的标签和索引,对所述高速缓存数据判断是命中还是非命中;
管理单元,对由排列了各个索引的值的多个行构成的多个行组,管理构成各行组的每行的访问次数;
计数单元,在所述地址提取单元提取的索引示出所述管理单元管理的行的索引、且由所述命中/非命中判断单元对该索引判断为命中时,将与该索引相对应的行的访问次数增加1次;
确定单元,在所述地址提取单元提取的索引未示出所述管理单元管理的行的索引、且由所述命中/失败判断单元对该索引判断为失败时,从所述管理单元管理的行之中确定与该索引相对应的行组;
决定单元,构成被确定的行组的全部行各自的访问次数如果不全部一致则将应再填充的行大小决定为第1行大小,如果全部一致则将应再填充的行大小决定为比所述第1行大小大的第2行大小;以及
再填充单元,基于所决定的行大小,进行所述缓存数据的再填充。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009095808 | 2009-04-10 | ||
JP2009-095808 | 2009-04-10 | ||
PCT/JP2010/002551 WO2010116735A1 (ja) | 2009-04-10 | 2010-04-07 | キャッシュメモリ装置、キャッシュメモリ制御方法、プログラムおよび集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102057359A true CN102057359A (zh) | 2011-05-11 |
Family
ID=42936029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010800017981A Pending CN102057359A (zh) | 2009-04-10 | 2010-04-07 | 高速缓冲存储器装置、高速缓冲存储器控制方法、程序及集成电路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9026738B2 (zh) |
JP (1) | JP5347019B2 (zh) |
CN (1) | CN102057359A (zh) |
WO (1) | WO2010116735A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207927A (zh) * | 2011-05-27 | 2011-10-05 | 清华大学 | 动态可重构处理器之间的数据传输方法、处理器和系统 |
CN107992433A (zh) * | 2017-12-19 | 2018-05-04 | 北京云知声信息技术有限公司 | 二级缓存检测方法及装置 |
CN109766327A (zh) * | 2015-05-29 | 2019-05-17 | 北京奇虎科技有限公司 | 数据库访问请求的分析方法和装置 |
CN112711383A (zh) * | 2020-12-30 | 2021-04-27 | 浙江大学 | 用于电力芯片的非易失性存储读取加速方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5978814B2 (ja) * | 2012-07-09 | 2016-08-24 | 富士通株式会社 | メモリ装置、演算処理装置、及びキャッシュメモリの制御方法 |
GB2538055B (en) | 2015-04-28 | 2017-04-19 | Advanced Risc Mach Ltd | Data processing apparatus having a cache |
GB2538054B (en) | 2015-04-28 | 2017-09-13 | Advanced Risc Mach Ltd | Data processing apparatus, controller, cache and method |
US10430349B2 (en) * | 2016-06-13 | 2019-10-01 | Advanced Micro Devices, Inc. | Scaled set dueling for cache replacement policies |
US10956432B2 (en) * | 2017-08-30 | 2021-03-23 | Gsi Technology Inc. | One by one selection of items of a set |
US10891228B2 (en) | 2018-02-12 | 2021-01-12 | International Business Machines Corporation | Cache line states identifying memory cache |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1267024A (zh) * | 1999-03-10 | 2000-09-20 | 国际商业机器公司 | 用于多线程处理机的指令高速缓存器 |
CN1797371A (zh) * | 2004-12-27 | 2006-07-05 | 英特尔公司 | 用于基于填充缓冲器命中来预取的装置和方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04189402A (ja) | 1990-11-21 | 1992-07-07 | Seibu Electric & Mach Co Ltd | インデックス刄物台装置 |
US6446164B1 (en) * | 1991-06-27 | 2002-09-03 | Integrated Device Technology, Inc. | Test mode accessing of an internal cache memory |
JP3515333B2 (ja) * | 1997-08-26 | 2004-04-05 | 株式会社東芝 | 情報処理装置 |
US6349364B1 (en) | 1998-03-20 | 2002-02-19 | Matsushita Electric Industrial Co., Ltd. | Cache memory system with variable block-size mechanism |
JP4071886B2 (ja) * | 1998-03-20 | 2008-04-02 | 松下電器産業株式会社 | ブロック・サイズを変更可能なキャッシュ・メモリ・システム |
JPH11345167A (ja) * | 1998-05-29 | 1999-12-14 | Toshiba Corp | キャッシュ制御方法ならびに装置 |
JP3556556B2 (ja) * | 2000-02-08 | 2004-08-18 | 株式会社東芝 | 命令コード変換装置及び情報処理システム |
JP2002149488A (ja) * | 2000-11-15 | 2002-05-24 | Hitachi Ltd | 集積回路装置およびキャッシュメモリの制御方法 |
JP2002163150A (ja) * | 2000-11-28 | 2002-06-07 | Toshiba Corp | プロセッサ |
US20030007442A1 (en) * | 2001-07-09 | 2003-01-09 | Henrichs Joseph Reid | Light intensity modulated direct overwrite magneto-optical microhead array chip hard disk drive |
US7782731B2 (en) * | 2001-07-23 | 2010-08-24 | Joseph Reid Henrichs | Optical hard disk drive having a phase-change microhead array chip |
US7359890B1 (en) * | 2002-05-08 | 2008-04-15 | Oracle International Corporation | System load based adaptive prefetch |
JP2004259109A (ja) | 2003-02-27 | 2004-09-16 | Toshiba Corp | マイクロプロセッサ及びキャッシュ制御方法 |
JP4803983B2 (ja) | 2004-09-14 | 2011-10-26 | パナソニック株式会社 | 演算処理装置 |
JP4189402B2 (ja) | 2005-02-21 | 2008-12-03 | パナソニック株式会社 | キャッシュ回路 |
JP2008225914A (ja) * | 2007-03-13 | 2008-09-25 | Fujitsu Ltd | プリフェッチ制御装置、記憶装置システムおよびプリフェッチ制御方法 |
US9390018B2 (en) * | 2012-08-17 | 2016-07-12 | Advanced Micro Devices, Inc. | Data cache prefetch hints |
-
2010
- 2010-04-07 WO PCT/JP2010/002551 patent/WO2010116735A1/ja active Application Filing
- 2010-04-07 US US12/997,093 patent/US9026738B2/en active Active
- 2010-04-07 CN CN2010800017981A patent/CN102057359A/zh active Pending
- 2010-04-07 JP JP2011508245A patent/JP5347019B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1267024A (zh) * | 1999-03-10 | 2000-09-20 | 国际商业机器公司 | 用于多线程处理机的指令高速缓存器 |
CN1797371A (zh) * | 2004-12-27 | 2006-07-05 | 英特尔公司 | 用于基于填充缓冲器命中来预取的装置和方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207927A (zh) * | 2011-05-27 | 2011-10-05 | 清华大学 | 动态可重构处理器之间的数据传输方法、处理器和系统 |
CN102207927B (zh) * | 2011-05-27 | 2016-01-13 | 清华大学 | 动态可重构处理器之间的数据传输方法、处理器和系统 |
CN109766327A (zh) * | 2015-05-29 | 2019-05-17 | 北京奇虎科技有限公司 | 数据库访问请求的分析方法和装置 |
CN107992433A (zh) * | 2017-12-19 | 2018-05-04 | 北京云知声信息技术有限公司 | 二级缓存检测方法及装置 |
CN112711383A (zh) * | 2020-12-30 | 2021-04-27 | 浙江大学 | 用于电力芯片的非易失性存储读取加速方法 |
CN112711383B (zh) * | 2020-12-30 | 2022-08-26 | 浙江大学 | 用于电力芯片的非易失性存储读取加速方法 |
Also Published As
Publication number | Publication date |
---|---|
US9026738B2 (en) | 2015-05-05 |
JP5347019B2 (ja) | 2013-11-20 |
JPWO2010116735A1 (ja) | 2012-10-18 |
WO2010116735A1 (ja) | 2010-10-14 |
US20120096213A1 (en) | 2012-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102057359A (zh) | 高速缓冲存储器装置、高速缓冲存储器控制方法、程序及集成电路 | |
US10156988B2 (en) | Composite solid state drive identification and optimization technologies | |
CN106874211B (zh) | 存储器系统及非易失性存储器的控制方法 | |
CN105607721B (zh) | 用于设备中的电源管理的资源分配和重新分配 | |
CN106372001B (zh) | 内存系统 | |
CN102473135B (zh) | 存储器管理系统及其使用的方法 | |
CN1926616B (zh) | 使用存储器地址映射表的便携式数据存储设备 | |
TWI596480B (zh) | 記憶體儲存系統及其中控裝置、管理方法與斷電復原方法 | |
TW200947211A (en) | Memory system | |
CN104636181A (zh) | 用于迁移虚拟机的方法和系统 | |
CN103455429A (zh) | 对存储器进行群组式耗损平均的方法及设备 | |
KR20140033099A (ko) | 용도에 따른 플래시 기반 저장소 상의 데이터 배치의 관리 기법 | |
CN109901794A (zh) | 使用主机空闲来操作垃圾收集的设备和方法 | |
CN105378682A (zh) | 持久存储器中数据的观察 | |
CN104346290A (zh) | 存储装置、计算机系统及其操作方法 | |
CN103164346A (zh) | Lba位图使用 | |
JP2013502647A (ja) | インサイチュでのメモリのアニール | |
CN101681307A (zh) | 存储器系统 | |
TW201118569A (en) | Data storing method for a flash memory, and flash memory controller and flash memory storage system using the same | |
CN102341803A (zh) | 响应于触发事件而优化所存储内容的传送的系统 | |
CN103959258A (zh) | 背景重排序——具有有限开销的预防性的磨损控制机制 | |
TW201120898A (en) | Mehtod for wear-leveling and apparatus thereof | |
CN107665098B (zh) | 信息处理方法、存储设备及计算机存储介质 | |
CN104781797A (zh) | 多处理器架构中的高速缓存一致性目录 | |
CN109508142A (zh) | 数据存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110511 |