数据存储器高速缓存装置及数据存储器高速缓存系统制造方法及图纸

技术编号:2869198 阅读:196 留言:0更新日期:2012-04-11 18:40
一种数据存储器高速缓存装置,其高速缓存单元(117),以16字节宽的行单位对主存储装置(131)进行数据的读写,以各行所含的4字节宽的小区域单位对MPU(113)进行数据的读写。在MPU(113)执行push命令时,若包含保持应向MPU(113)输入的数据之小区域的行中产生高速缓存错误(S1中为“否”),则高速缓存单元(117)释放该行(S301)。在应写入从MPU(113)送来的数据的小区域与地址大的侧即写入早侧的行边界相邻时(S56中为“是”),则高速缓存单元(117)不进行回填,在该小区域与行边界不相邻时(S56中为“否”),则进行回填(S21)。这样,可以使存储器存取速度提高。

【技术实现步骤摘要】

本专利技术涉及一种以在CPU对主存储装置存取时避免由于主存储装置的存取速度慢而导致的额外开销,提高性能为目的的数据存储器高速缓存装置及系统。本专利技术特别涉及一种存储数据的数据存储器的高速缓冲,更涉及所谓堆栈式存储器,即根据压入弹出命令对地址连续存取(数据的读出或写入)的数据存储器的高速缓存。
技术介绍
以往,在为了减少压入弹出(push·pop)命令所需时间,在高速缓存中不保持压入弹出后不需要数据的堆栈式(stack)高速缓存的控制方式及堆栈式高速缓存中,例如提出了一种堆栈式高速缓存的控制方式,是在包括作为主存储装置上的数据结构支持最后输入的数据最先输出的堆栈结构、以向堆栈的数据输入作为压入、从上述堆栈的数据输出作为弹出、区别于其他的数据写入/读出而进行数据处理的微计算机的微计算机系统中,所具有的特征是上述微计算机在压入时,取代上述主存储装置而保持该地址与数据的数组,将未被压入到上述主存储装置的保持数据,瞄准上述微计算机未向外部存取时压入到上述主存储装置中;上述微计算机在弹出时如果保持有该数据,则取代上述主存储装置将该数据向上述微计算机输出,由于将上述微计算机的弹出后不需要的数据置换为后来有弹出可能性的堆栈底部的数据,瞄准上述微计算机未向外部存取时,而从上述主存储装置中弹出(例如,参照专利文献1)。然而,在上述以往的堆栈式高速缓存系统及堆栈式高速缓存控制方法中,丝毫没有改变以针对通常的数据存储器的随机存取为前提的存储器存取高速化方法,不能活用具有所谓堆栈式存储器的规则性的存取特征,在达到高速化的方面存在问题。该情况尤其在适合近年普时计算(Ubiquitous Computing)等的需求正在增大的Java(注册商标)系统等堆栈式存取的比重大的存储器系统中,成为特别大的问题。接下来对具体问题进行说明。(第1问题)例如,假设针对堆栈的数据压入在主存储装置上的存储器地址的增加方向进行,再有假设该堆栈已被高速缓存到于高速缓冲存储器内。而且假设由某数据A的压入导致高速缓存错误发生。在该条件下,从主存储装置向高速缓冲存储器读入由发生了高速缓存错误的存储器地址构成的1个高速缓存单位量的新数据存储器的内容。在图35中表示该状态。图35表示地址90的存储区域内有堆栈指针913,并已将数据A压入该地址90的存储区域内的状态。此时,如图35所示,利用数据A的压入,堆栈指针913自地址89的存储区域向地址90的存储区域移动。而且,再如同图35所示,地址90、91、92、93的存储区域为1个高速缓存单位,由于该1个高速缓存单位的地址90的存储区域首次被存取,故由该地址90、91、92、93的存储区域构成的1个高速缓存单位被从主存储装置读入到高速缓冲存储器内。然而,读入该高速缓冲存储器内的1高速缓存单位量的新数据存储器的内容,只要遵从堆栈存取的规则性,则是根据接下来进行的数据压入而进行改写的内容,而决不是没有读出过的数据。而且,这样将决不是没有读出过的数据从主存储装置读入高速缓冲存储器内,成为实现高速化的障碍。(第2问题)与上述情况相反,假设针对堆栈的数据弹出在主存储装置上的存储器地址的减少方向上进行,再有假设该堆栈已被高速缓存于高速缓冲存储器内。而且假设由某数据A的弹出导致高速缓存错误发生。在该条件下,从高速缓冲存储器向主存储装置回写(write back)由比发生了高速缓存错误的存储器地址还大的存储器地址构成的1个高速缓存单位量的数据存储器的内容。在图36中表示该状态。如图36所示,通过数据B的弹出,堆栈指针923从地址90的存储区域向地址89的存储区域移动。而且,又如同图36所示,地址90、91、92、93的存储区域为1个高速缓存单位,由于堆栈指针向该1个高速缓存单位以外的地址89的存储区域移动,故由该地址90、91、92、93的存储区域构成的1个高速缓存单位被从高速缓冲存储器回写到主存储装置内,释放高速缓冲存储器。然而,回写到该主存储装置内的1高速缓存单位量的数据存储器的内容,只要遵从堆栈存取的规则性,为通过已进行的数据弹出而读出的内容,决不会再被读出。而且将这种决不会读出的数据从高速缓冲存储器回写到主存储装置的操作,成为实现高速化的障碍。(第3问题)另外,假设针对堆栈的数据压入在主存储装置上的存储器地址的增加方向进行,再有假设该堆栈已被高速缓存于高速缓冲存储器内。而且,假设某数据C、D、··、E的压入连续执行。在该条件下,在作为针对目前的堆栈进行压入·弹出的区域的比堆栈指针所表示的地址还低的存储区域内,存储有大量的被堆栈压入的数据,在本例中为C或D,该低地址的存储区域内存储的数据在短暂的时间内利用弹出而被读出的可能性非常低。在图37中表示该状态。图37表示地址194的存储区域内有堆栈指针933,从远在下方的例如地址80的存储区域到该地址194的存储区域,连续压入C、D、··、E等数据的状态。此时如图37所示,通常从地址80到地址83的1个高速缓存单位只要高速缓冲存储器未满,就直接占据高速缓冲存储器区域,不回写到主存储装置内。而且,当高速缓冲存储器满了时才开始向主存储装置回写,为了其他的存储区域而将高速缓冲存储器腾出。这样,高速缓冲存储器为零,产生对新的高速缓冲存储器的要求之后才进行回写,成为实现高速化的障碍。例如,如图37所示,比作为目前堆栈指针933位置的地址194的存储区域远在下方的存储区域,例如地址80~83的存储区域暂时由弹出而被读出的可能性非常低。因此,与专利文献1所揭示的以往技术不同,例如可以将作为地址80~83的存储区域的1个高速缓存单位的高速缓冲存储器的内容预先回写到主存储装置内的操作,可以设想作为一种解决方法。由此,比在高速缓冲存储器没有余量的阶段,匆忙将高速缓冲存储器的内容写入到主存储装置中,以在高速缓冲存储器内形成空余区域的方法可以期待提高存储器的存取速度。(第4问题)假设针对堆栈的数据弹出在主存储装置上的存储器地址的减少方向上进行,再有假设该堆栈已被高速缓存于高速缓冲存储器内。而且,假设某数据F、G、··、H的弹出连续执行。在该条件下,被堆栈压入作为针对目前的堆栈进行压入·弹出的区域的比堆栈指针所表示的地址还低的存储区域,例如在本例中为84~87的存储区域内的数据,连续通过弹出而马上被读出的可能性非常高。在图38中表示该状态。图38表示地址91的存储区域内有堆栈指针943,从较上面例如地址196的存储区域到该地址91的存储区域,连续弹出F、G、··、H等数据的状态。此时如图38所示,通常从地址84到地址87为止的1个高速缓存单位只要属于该区域的1个存储器,例如地址87的存储区域只要没有通过弹出的执行进行存取,就不从主存储装置向高速缓冲存储器区域读入。而且,例如在该地址87的存储区域通过弹出的执行进行存取时才开始从主存储装置向高速缓冲存储器上读出的操作。这样,在属于1个新的高速缓存单位的区域开始存取,发生了针对1个新的高速缓存区域的数据要求之后,从存储区域向高速缓冲存储区域进行数据的读入,成为实现高速化的障碍。例如,如图38所示,作为紧接目前堆栈指针943的位置的地址91的存储区域之下的存储区域,例如占据地址84~87的存储区域的1个高速缓存单位,利用连续弹出而被马上读出的可能性非本文档来自技高网...

【技术保护点】
一种数据存储器高速缓存装置,其介于运算单元与该运算单元存取的主存储装置之间使用,其特征在于,包括:数据保持部,其具有用于保持数据的多个数据区域,所述多个数据区域每一个所保持的数据对所述主存储装置临时读写,所述多个数据区域每一个被分割 成多个小区域,所述多个小区域每一个所保持的数据对所述运算单元临时读写;和控制部,在有来自所述运算单元的、对所述主存储装置的连续地址进行数据写入的连续写入请求,且作为与所述运算单元输出的地址对应的数据区域的对象数据区域中产生高速缓存错 误时,释放所述对象数据区域之后,在作为所述对象数据区域中的与所述运算单元输出的地址对应的小区域之对象小区域,与作为按照地址的顺序位于所述连续写入的先写方向的所述对象数据区域的边界的数据区域边界相邻时,不进行从所述主存储装置向所述对象数据区域的数据读入,将所述运算单元输出的数据写入所述对象小区域,而在所述对象小区域与所述数据区域边界不相邻时,进行从所述主存储装置向所述对象数据区域的数据读入,并将所述运算单元输出的数据写入所述对象小区域。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:川本琢二
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1