CN102160041A - 缓冲存储器装置、存储器系统以及数据读出方法 - Google Patents

缓冲存储器装置、存储器系统以及数据读出方法 Download PDF

Info

Publication number
CN102160041A
CN102160041A CN2009801365185A CN200980136518A CN102160041A CN 102160041 A CN102160041 A CN 102160041A CN 2009801365185 A CN2009801365185 A CN 2009801365185A CN 200980136518 A CN200980136518 A CN 200980136518A CN 102160041 A CN102160041 A CN 102160041A
Authority
CN
China
Prior art keywords
mentioned
data
attribute
memory
read
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
Application number
CN2009801365185A
Other languages
English (en)
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN102160041A publication Critical patent/CN102160041A/zh
Pending legal-status Critical Current

Links

Images

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/0877Cache access modes
    • G06F12/0879Burst mode

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

不发生因数据的改写带来的不良状况等而进行成组读出,从而使存储器访问高速化。一种缓冲存储器装置(100),根据来自处理器(10)的读请求,从由可高速缓冲区域和不可高速缓冲区域构成的主存储器(20)读出数据,具备:属性取得部(110),取得读请求中包含的读地址表示的区域的属性;属性判断部(120),判断由属性取得部(110)取得的属性是否是可成组属性;数据读出部(130),在判断为由属性取得部(110)取得的属性是可成组属性的情况下,将包含读地址所表示的区域中保持的数据的数据成组读出;以及缓冲存储器(140),保持由数据读出部(130)成组读出的数据。

Description

缓冲存储器装置、存储器系统以及数据读出方法
技术领域
本发明涉及缓冲存储器装置、存储器系统以及数据读出方法,特别涉及在将保持在主存储器中的数据成组读出(burst read)时,保持被成组读出的数据的缓冲存储器装置、存储器系统及数据读出方法。
背景技术
近年来,为了使从微处理器向主存储器的存储器访问高速化,例如采用由SRAM(Static Random Access Memory:静态随机存取存储器)等构成的小容量且能够以高速动作的高速缓冲存储器。例如,通过将高速缓冲存储器配置在微处理器的内部或其附近,并使高速缓冲存储器存储主存储器中保持的数据的一部分,能够使存储器访问高速化。
以往,为了使存储器访问更高速化,示出了如下技术:根据读请求、设想从处理器向与该读请求中包含的地址连续的地址访问的可能性较高、将相应的与地址对应的数据成组读出(参照专利文献1)。
图27是表示以往的存储器访问方法的概况的图。如该图所示,在专利文献1中记载的技术中,主存储器620被划分为可高速缓冲区域621和不可高速缓冲区域622。
在从CPU(Central Processing Unit)等的处理器610有对不可高速缓冲区域622的读请求的情况下,被成组读出的数据被保存到处理器610所具备的通用寄存器612中。此外,在有对可高速缓冲区域621的读请求的情况下,被成组读出的数据被保存到高速缓冲存储器611中。
如以上这样,在专利文献1中记载的存储器访问方法中,通过将与被访问的可能性较高的地址对应的数据成组读出,能够使存储器访问更高速化。
先行技术文献
专利文献
专利文献1:日本特开2004-240520号公报
发明概要
发明要解决的问题
但是,根据上述以往技术,存在以下这样的问题。
首先,在有对不可高速缓冲区域622的读请求的情况下,如上所述,被成组读出的数据被保存到CPU具备的通用寄存器612中,但通用寄存器612与高速缓冲存储器611等相比效率非常差。此外,在不可高速缓冲区域622之中,存在仅进行读出但所保持的数据的值就变化的读敏感型的区域。在成组读出了不可高速缓冲区域622中保持的数据的情况下,会访问到读敏感型的区域,发生将数据改写的不良状况。
进而,在有对可高速缓冲区域621的读请求的情况下,如上所述,被成组读出的数据被保存到高速缓冲存储器611中,但由此,高速缓冲存储器611的内容被改写。由此,本来为了使存储器访问高速化而保存在高速缓冲存储器611中的数据消失,所以不能实现存储器访问的高速化。
发明内容
所以,本发明是为了解决上述问题而做出的,目的是提供一种不产生因数据的改写造成的不良状况等而进行成组读出,从而使存储器访问高速化的缓冲存储器装置、存储器系统及数据读出方法。
用于解决问题的手段
为了解决上述问题,本发明的缓冲存储器装置,根据来自处理器的读请求,从由属于可高速缓冲属性和不可高速缓冲属性中的某一个属性的多个区域构成的主存储器或外围设备读出数据,具备:属性取得部,取得上述读请求中包含的读地址所表示的区域的属性;属性判断部,判断由上述属性取得部取得的属性是否是第1属性,该第1属性为上述不可高速缓冲属性、并且表示保持应成组传输的数据;数据读出部,在由上述属性判断部判断为由上述属性取得部取得的属性是上述第1属性的情况下,将包含保持在上述读地址所表示的区域中的数据的数据成组读出;以及第1缓冲存储器,保持由上述数据读出部成组读出的数据。
由此,通过判断主存储器或外围设备的地址所表示的区域的属性,将数据从不可高速缓冲区域中的保持应成组传输的数据的区域成组读出,所以能够防止发生主存储器或外围设备的其他区域的数据的预想外的改写等。进而,由于能够使缓冲存储器预先保持成组读出的数据,所以能够实现存储器访问的高速化。进而,通过将成组读出的数据保存到与高速缓冲存储器不同的缓冲存储器中,能够不使用高速缓冲存储器而使能够保持数据的区域变多。
此外,也可以是,上述属性判断部判断由上述属性取得部取得的属性是第2属性还是上述第1属性,上述第2属性是上述不可高速缓冲属性、并且表示不保持应成组传输的数据;上述数据读出部还在由上述属性判断部判断为由上述属性取得部取得的属性是上述第2属性的情况下,仅将保持在上述读地址所表示的区域中的数据读出。
由此,能够防止从不应成组读出的区域将数据成组读出,所以能够防止发生预想外的数据的改写等。
此外,也可以是,上述缓冲存储器装置还具备表保持部,该表保持部保持将上述主存储器或上述外围设备的地址、与表示该地址所表示的区域的属性是上述第1属性、上述第2属性、以及表示是上述可高速缓冲属性的第3属性中的哪一个属性的属性信息对应起来的表;上述属性取得部通过参照保持在上述表保持部中的表,取得上述读地址所表示的区域的属性。
由此,能够容易地管理主存储器或外围设备的地址所表示的区域与属性之间的关系,仅通过参照表就能够取得属性,所以能够使本发明的缓冲存储器装置的结构简单化。
此外,也可以是,上述缓冲存储器装置还具备高速缓冲存储器;上述属性判断部判断由上述属性取得部取得的属性是上述第1属性、上述第2属性、以及上述第3属性中的哪一个属性;上述数据读出部还在由上述属性判断部判断为由上述属性取得部取得的属性是上述第3属性的情况下,将包含保持在上述读地址所表示的区域中的数据的数据成组读出;上述高速缓冲存储器保持由上述数据读出部成组读出的数据中的、包含保持在上述读地址所表示的区域中的数据的第1数据;上述第1缓冲存储器保持由上述数据读出部成组读出的数据中的、除上述第1数据以外的第2数据。
由此,在仅利用原来高速缓冲存储器的情况下,还能够使缓冲存储器中预先保持数据,所以能够使存储器访问更高速化。
此外,也可以是,上述缓冲存储器装置还具备属性设定部,该属性设定部将上述主存储器或上述外围设备的地址、和该地址表示的区域的属性设定为上述第1属性、上述第2属性、以及上述第3属性中的某个属性,从而生成上述表;上述表保持部保持由上述属性设定部生成的表。
由此,也能够根据需要变更属性等。
此外,也可以是,上述数据读出部在由上述属性判断部判断为由上述属性取得部取得的属性是上述第1属性的情况下,进一步判断上述读地址所表示的区域中保持的数据是否已保持在上述第1缓冲存储器中,在该数据已保持在上述第1缓冲存储器中的情况下,从上述第1缓冲存储器读出该数据,在该数据未保持在上述第1缓冲存储器中的情况下,将包含该数据的数据成组读出。
由此,能够使缓冲存储器与高速缓冲存储器同样动作,能够使存储器访问高速化。
此外,也可以是,上述属性取得部还取得来自上述处理器的写请求中包含的写地址所表示的区域的属性;上述缓冲存储器装置还具备:第2缓冲存储器,在由上述属性判断部判断为由上述属性取得部取得的属性中的、上述写地址所表示的区域的属性是上述第1属性的情况下,保持用于写入上述主存储器或上述外围设备中的与上述写请求对应的写数据;存储器访问信息取得部,取得表示来自上述处理器的上述读请求或上述写请求即存储器访问请求的性质的存储器访问信息;条件判断部,判断由上述存储器访问信息取得部取得的存储器访问信息所表示的性质、或者由上述属性取得部取得的属性是否满足预先设定的条件;以及控制部,在由上述条件判断部判断为上述存储器访问信息所表示的性质满足上述条件的情况下,将保持在上述第2缓冲存储器中的写数据转出到上述主存储器或上述外围设备。
由此,通过利用缓冲存储器,能够在写入数据时将数据合并,并将合并后的数据成组写入主存储器或外围设备,能够提高数据的传输效率。
此外,也可以是,上述存储器访问信息取得部取得表示发出了上述存储器访问请求的逻辑处理器及物理处理器的处理器信息,作为上述存储器访问信息;上述条件判断部在上述第2缓冲存储器中保持有对应于由与上述处理器信息所表示的物理处理器不同的物理处理器、并且与上述处理器信息表示的逻辑处理器相同的逻辑处理器及其以前发出的写请求的写数据的情况下,判断为满足上述条件;上述控制部在由上述条件判断部判断为满足上述条件的情况下,将满足上述条件的第2缓冲存储器中保持的数据转出到上述主存储器或上述外围设备中。
由此,通过将与以前发出的写请求对应的数据写入主存储器或外围设备,能够保持数据的相关性。这是因为,在存储器访问请求由虽然是相同的逻辑处理器、但为不同的物理处理器发出的情况下,有可能在不同的缓冲存储器中保持从相同的逻辑处理器输出的数据,在此情况下,不能保证各缓冲存储器间的数据的相关性。通过将保持在缓冲存储器中的数据转出到主存储器或外围设备中,能够消除缓冲存储器间的数据的相关性的问题。
此外,也可以是,上述条件判断部判断在上述存储器访问信息中是否包含有用来将保持在上述第2缓冲存储器中的数据转出到上述主存储器或上述外围设备中的命令信息;上述控制部在由上述条件判断部判断为在上述存储器访问信息中包含有上述命令信息的情况下,将上述命令信息所表示的第2缓冲存储器中保持的数据转出到上述主存储器或上述外围设备中。
由此,能够基于来自处理器的指示,容易地将保持在缓冲存储器中的数据转出到主存储器或外围设备中,能够将主存储器或外围设备的数据更新为最新的数据。
此外,也可以是,上述存储器访问信息取得部还取得表示发出了上述存储器访问请求的处理器的处理器信息,作为上述存储器访问信息;上述条件判断部还判断上述属性信息所表示的属性是否是上述第1属性;上述控制部还在由上述条件判断部判断为由上述属性取得部取得的属性是上述第1属性的情况下,将与上述处理器信息所表示的处理器对应的第2缓冲存储器中保持的数据转出到上述主存储器或上述外围设备中。
由此,能够保持处理器发出的写请求的顺序。由此,能够保持数据的相关性。
此外,也可以是,上述第2缓冲存储器还保持对应于上述写数据的写地址;上述存储器访问信息取得部还在上述存储器访问请求包含读请求的情况下,取得该读请求中包含的读地址,作为上述存储器访问信息;上述条件判断部判断在上述第2缓冲存储器中是否保持有与上述读地址一致的写地址;上述控制部在由上述条件判断部判断为在上述第2缓冲存储器中保持有与上述读地址一致的写地址的情况下,将与上述写地址对应的写数据及其以前保持在上述第2缓冲存储器中的数据转出到上述主存储器或上述外围设备中。
由此,能够总是在从读地址所表示的区域读出数据之前将该区域的数据更新为最新的数据,所以能够防止处理器将旧的数据读出。
此外,也可以是,上述存储器访问信息取得部还在上述存储器访问请求包含写请求的情况下,取得该写请求中包含的第1写地址;上述条件判断部判断上述第1写地址是否与紧前输入的写请求中包含的第2写地址连续;上述控制部在由上述条件判断部判断为上述第1写地址和上述第2写地址连续的情况下,将与上述第2写地址对应的写数据及其以前保持在上述第2缓冲存储器中的数据转出到上述主存储器或上述外围设备中。
由此,通常处理器在进行一系列的处理的情况下,向连续的地址所表示的连续区域访问的情况较多,所以在地址不连续的情况下,可以推测为开始了与该一系列的处理不同的处理。因此,将关于该一系列的处理的数据转出到主存储器或外围设备中。由此,能够使缓冲存储器保持关于其他处理的数据,能够高效率地利用缓冲存储器。
此外,也可以是,上述条件判断部还判断保持在上述第2缓冲存储器中的数据的数据量是否达到了规定的阈值;上述控制部还在由上述条件判断部判断为上述数据量达到了上述阈值的情况下,将保持在上述第2缓冲存储器中的数据转出到上述主存储器或上述外围设备中。
由此,当保持在缓冲存储器中的数据量成为适当的量的情况下,能够将数据转出。例如,当数据量与缓冲存储器中能够保持的数据的最大值、或者缓冲存储器和主存储器或外围设备的数据总线宽度一致时,能够将数据转出。
此外,也可以是,上述缓冲存储器装置还具备无效化部,该无效化部判断来自上述处理器的写请求中包含的写地址是否与对应于保持在上述第1缓冲存储器中的数据的地址一致,在上述写地址一致的情况下,将保持在上述第1缓冲存储器中的数据无效化。
由此,能够防止在保持在缓冲存储器中的数据与保持在主存储器或外围设备中的对应的数据不一致的情况下,处理器从缓冲存储器读出数据。
此外,本发明也可以作为存储器系统实现,本发明的存储器系统,具备处理器、以及由属于可高速缓冲属性及不可高速缓冲属性中的某一个属性的多个区域构成的主存储器或外围设备,根据来自上述处理器的读请求,从上述主存储器或上述外围设备读出数据,具备:属性取得部,取得来自上述处理器的读请求中包含的读地址所表示的区域的属性;属性判断部,判断由上述属性取得部取得的属性是否是第1属性,该第1属性是上述不可高速缓冲属性、并且表示保持应成组传输的数据;数据读出部,在由上述属性判断部判断为由上述属性取得部取得的属性是上述第1属性的情况下,将包含保持在上述读地址所表示的区域中的数据的数据成组读出;以及缓冲存储器,保持由上述数据读出部成组读出的数据;上述数据读出部在由上述属性判断部判断为由上述属性取得部取得的属性是上述第1属性的情况下,进一步判断上述读地址所表示的区域中保持的数据是否已保持在上述缓冲存储器中,在该数据已保持在上述缓冲存储器中的情况下,从上述缓冲存储器读出该数据,在该数据未保持在上述缓冲存储器中的情况下,将包含该数据的数据成组读出。
此外,也可以是,上述存储器系统还具备多个高速缓冲器;上述多个高速缓冲器之中最接近于上述主存储器或上述外围设备的高速缓冲器具备上述缓冲存储器。
另外,本发明不仅能够作为缓冲存储器装置及存储器系统实现,还能够作为以构成该存储器系统的处理部为步骤的方法实现。此外,也可以作为使计算机执行这些步骤的程序实现。还可以作为记录有该程序的计算机可读出的CD-ROM(Compact Disc-Read Only Memory)等的记录介质、以及表示该程序的信息、数据或信号实现。并且,这些程序、信息、数据及信号也可以经由因特网等的通信网络分发。
发明效果
根据本发明的缓冲存储器装置、存储器系统及数据读出方法,不发生因数据的改写造成的不良状况等而进行成组读出,从而能够使存储器访问高速化。
附图说明
图1是表示包括实施方式1的处理器、主存储器及高速缓冲存储器的系统的概略结构的模块图。
图2是表示在实施方式1的地址空间中设定的属性的图。
图3是表示实施方式1的缓冲存储器装置的结构的模块图。
图4是表示实施方式1的区域属性表的一例的图。
图5是表示实施方式1的缓冲存储器和高速缓冲存储器的详细情况的图。
图6是表示实施方式1的缓冲存储器装置的动作的流程图。
图7是表示在实施方式1中、属性是可成组属性时的传输处理的详细情况的流程图。
图8是表示在实施方式1中、属性是不可成组属性时的传输处理的详细情况的流程图。
图9是表示在实施方式1中、属性是可高速缓冲属性时的传输处理的详细情况的流程图。
图10是表示实施方式2的缓冲存储器装置的结构的模块图。
图11是表示在实施方式2中、属性是可高速缓冲属性时的传输处理的详细情况的流程图。
图12是表示实施方式3的存储器系统的结构的模块图。
图13是表示实施方式3的地址变换表的一例的图。
图14是表示实施方式4的缓冲存储器装置的结构的模块图。
图15是表示实施方式4的存储器访问信息的一例的图。
图16是表示实施方式4的缓冲存储器装置具备的缓冲存储器的概况的图。
图17是表示表示实施方式4的多个判断条件的一例的判断表的图。
图18是表示实施方式4的判断部的详细的结构的模块图。
图19是表示实施方式4的缓冲存储器装置的动作的流程图。
图20是表示实施方式4的缓冲存储器装置的写入处理流程图。
图21是表示实施方式4的缓冲存储器装置的属性判断处理的流程图。
图22是表示实施方式4的缓冲存储器装置的命令判断处理的流程图。
图23是表示实施方式4的缓冲存储器装置的读地址判断处理的流程图。
图24是表示实施方式4的缓冲存储器装置的写地址判断处理的流程图。
图25是表示实施方式4的缓冲存储器装置的缓冲量判断处理的流程图。
图26是表示实施方式4的缓冲存储器装置的处理器判断处理的流程图。
图27是表示以往的存储器访问方法的概况的图。
具体实施方式
以下,基于实施方式、利用附图详细地说明本发明。
(实施方式1)
首先,对具备本实施方式的缓冲存储器装置的一般的存储器系统进行说明。
图1是表示包括本实施方式的处理器、主存储器及高速缓冲存储器的系统的概略结构的模块图。如该图所示,本实施方式的系统具备处理器10、主存储器20、L1(level 1)高速缓冲器30、和L2(level 2)高速缓冲器40。
本实施方式的缓冲存储器装置在如图1所示的系统中,例如装备在处理器10与主存储器20之间。具体而言,缓冲存储器装置具备的缓冲存储器装备在L2高速缓冲器40中。
处理器10对主存储器20输出存储器访问请求。存储器访问请求例如是用来将数据读出的读请求、或者用来将数据写入的写请求。读请求包含表示数据的读出目的地的区域的读地址,写请求包含表示数据的写入目的地的区域的写地址。
主存储器20是由属于可高速缓冲属性和不可高速缓冲属性中的某一个的多个区域构成、在该区域中存储程序或数据等的SDRAM(Synchronous Dynamic Random Access Memory:同步动态随机存取存储器)等大容量的主存储器。根据从处理器10输出的存储器访问请求(读请求或写请求),执行从主存储器20的数据的读出、或者向主存储器20的数据的写入。
L1高速缓冲器30和L2高速缓冲器40是将处理器10从主存储器20读出的数据的一部分、以及向主存储器20写入的数据的一部分进行存储的SRAM等的高速缓冲存储器。L1高速缓冲器30和L2高速缓冲器40与主存储器20相比,是容量较小、但能够以高速动作的高速缓冲存储器。此外,L1高速缓冲器30是配置在比L2高速缓冲器40更接近于处理器10的位置上的优先级较高的高速缓冲存储器,通常与L2高速缓冲器40相比容量小,但能够以高速动作。
L1高速缓冲器30取得从处理器10输出的存储器访问请求,判断是已经保存了与所取得的存储器访问请求中包含的地址对应的数据(命中(hit))、还是没有保存(未命中(miss))。例如,在读请求命中的情况下,L1高速缓冲器30从L1高速缓冲器30内部读出与该读请求中包含的读地址对应的数据,将所读出的数据输出给处理器10。另外,所谓与读地址对应的数据,是存储在读地址表示的区域中的数据。在写请求命中的情况下,L1高速缓冲器30将与该写请求同时从处理器10输出的数据写入L1高速缓冲器30内部。
在读请求未命中的情况下,L1高速缓冲器30从L2高速缓冲器40或主存储器20读出对应于该读请求的数据,将所读出的数据输出给处理器10。在写请求未命中的情况下,L1高速缓冲器30进行再填补处理,更新标签地址,写入与该写请求同时从处理器10输出的数据。
L2高速缓冲器40取得从处理器10输出的存储器访问请求,判断所取得的存储器访问请求命中还是未命中。在读请求命中的情况下,L2高速缓冲器40从L2高速缓冲器40内部读出与该读请求中包含的读地址对应的数据,经由L1高速缓冲器30将所读出的数据输出给处理器10。在写请求命中的情况下,经由L1高速缓冲器30将与该写请求同时从处理器10输出的数据写入L2高速缓冲器40内部。
在读请求未命中的情况下,L2高速缓冲器40从主存储器20读出与该读请求对应的数据,经由L1高速缓冲器30将所读出的数据输出给处理器10。在写请求未命中的情况下,L2高速缓冲器40进行再填补处理,经由L1高速缓冲器30更新标签地址,写入与该写请求同时从处理器10输出的数据。
另外,在图1所示的系统中,进行用于带来主存储器20、L1高速缓冲器30、和L2高速缓冲器40的相关性(coherence)的处理。例如,按照写请求写入高速缓冲存储器中的数据通过直写(write through)处理或回写处理写入到主存储器20中。
此外,在写请求未命中的情况下,处理器10也可以不将L1高速缓冲器30再填补及更新,而将数据写入主存储器20。关于L2高速缓冲器40也同样。
另外,在图1中,表示了L1高速缓冲器30装备在处理器10的外部的结构,但也可以由处理器10具备L1高速缓冲器30。
此外,并不限于主存储器20,也可以在IO设备等的其他外围设备之间传输数据。所谓外围设备,是在与处理器10之间进行数据的传输的设备,例如是键盘、鼠标、显示器或软盘(注册商标)驱动器等。
接着,对本实施方式的主存储器20进行说明。
图2是表示在本实施方式的地址空间设定的属性的图。地址空间的区域被分配给主存储器20、及其他的外围设备等。如该图所示,主存储器20由可高速缓冲区域21和不可高速缓冲区域22构成。
可高速缓冲区域21是属于可高速缓冲属性的区域,该可高速缓冲属性表示能够保持应在L1高速缓冲器30及L2高速缓冲器40等的高速缓冲存储器中高速缓冲的数据。
不可高速缓冲区域22是属于不可高速缓冲属性的区域,该不可高速缓冲属性表示能够保持不应在L1高速缓冲器30及L2高速缓冲器40等的高速缓冲存储器中高速缓冲的数据。不可高速缓冲区域22由可成组区域23和不可成组区域24构成。
可成组区域23是属于可成组属性的区域,该可成组属性表示能够保持不应在高速缓冲存储器中高速缓冲、并且应成组传输的数据。成组传输是指将数据汇总起来传输,是成组读出及成组写入等。可成组区域23例如是非读敏感的区域。
不可成组区域24是属于不可成组属性的区域,该不可成组属性表示不能保持不应在高速缓冲存储器中高速缓冲、并且应成组传输的数据。不可成组区域24例如是读敏感型的区域。
以上,在本实施方式的主存储器20中,对每个区域设定了3个排他性的属性中的某1个属性。
接着,对本实施方式的缓冲存储器装置的结构进行说明。
图3是表示本实施方式的缓冲存储器装置的结构的模块图。该图的缓冲存储器装置100装备在与图1所示的L2高速缓冲器40相同的芯片上,在处理器10与主存储器20之间执行数据的传输处理。另外,在图3中,设处理器10具备L1高速缓冲器30,L1高速缓冲器30没有图示。
如图3所示,缓冲存储器装置100具备属性取得部110、属性判断部120、数据读出部130、缓冲存储器140、高速缓冲存储器150、表保持部160、和属性设定部170。缓冲存储器装置100从主存储器20、缓冲存储器140或高速缓冲存储器150读出与从处理器10输出的读请求对应的数据,将所读出的数据传输给处理器10。
属性取得部110取得读请求中包含的地址(以下也记作读地址)所表示的区域的属性。具体而言,属性取得部110通过参照保持在表保持部160中的区域属性表161,取得读地址所表示的区域的属性。
这里,在区域的属性中,如上所述,有可高速缓冲属性、可成组属性、及、不可成组属性这3个属性。可高速缓冲属性表示区域属于可高速缓冲区域21。可成组属性表示区域属于不可高速缓冲区域22的可成组区域23。不可成组属性表示区域属于不可高速缓冲区域22的不可成组区域24。
属性判断部120判断由属性取得部110取得的属性是可高速缓冲属性、可成组属性、以及不可成组属性中的哪一个属性。
数据读出部130根据属性判断部120的判断结果,从主存储器20、缓冲存储器140或高速缓冲存储器150读出与读请求对应的数据。这里,数据读出部130具备第1数据读出部131、第2数据读出部132、和第3数据读出部133。
第1数据读出部131在由属性判断部120判断为读请求中包含的地址表示的区域的属性是可成组属性的情况下,执行读地址所表示的区域中保持的数据的读出。进而,第1数据读出部131判断读请求是命中还是未命中。
在读请求命中的情况下,第1数据读出部131从缓冲存储器140读出与读地址对应的数据(以下也记作读数据),将所读出的数据输出给处理器10。在读请求未命中的情况下,第1数据读出部131从主存储器20将包含读数据的数据进行成组读出,将成组读出的数据(以下也记作成组读数据)保存到缓冲存储器140中。并且,仅将所保存的成组读数据中的读数据输出给处理器10。另外,成组读数据的向缓冲存储器140的保存、和读数据的向处理器10的输出也可以并行地执行。
这里,成组读数据例如是读数据、和与该读数据一起使用的可能性较高的数据。一般而言,是对应于与读地址连续的地址的数据等。另外,读数据及成组读数据的尺寸基于处理器10、主存储器20及缓冲存储器装置100等之间的数据总线宽度、缓冲存储器140的存储器尺寸、或来自处理器10的指示等来决定。这里,作为一例,设读数据的尺寸为4字节,成组读数据的尺寸为64字节。
另外,在本实施方式中,与高速缓冲存储器的情况同样,将对应于读地址的数据已保持在缓冲存储器140中的情况称作“读请求命中”,将对应于读地址的数据未保持在缓冲存储器140中的情况称作“读请求未命中”。
第2数据读出部132在由属性判断部120判断为读请求中包含的地址表示的区域的属性是不可成组属性的情况下执行数据的读出。具体而言,第2数据读出部132仅将对应于读地址的数据(读数据)从主存储器20读出,将所读出的读数据输出给处理器10。
第3数据读出部133在由属性判断部120判断为读请求中包含的地址表示的区域的属性是可高速缓冲属性的情况下,执行数据的读出。进而,第3数据读出部133判断读请求是命中还是未命中。
具体而言,在读请求命中的情况下,第3数据读出部133从高速缓冲存储器150读出对应于读地址的数据(读数据),将所读出的读数据输出给处理器10。在读请求未命中的情况下,第3数据读出部133从主存储器20读出读数据,将所读出的读数据保存到高速缓冲存储器150中。并且,将所保存的读数据传输给处理器10。另外,从主存储器20读出的读数据的向高速缓冲存储器150的保存、和向处理器10的输出也可以并行地执行。
缓冲存储器140是保持由第1数据读出部131从主存储器20成组读出的数据(成组读数据)的存储器等的存储部。缓冲存储器140将成组读数据与对应于各数据的地址对应起来存储。
高速缓冲存储器150是保持由第3数据读出部133从主存储器20读出的数据的高速缓冲存储器。高速缓冲存储器150包含存储地址的标签区域、和存储数据的数据区域。在本实施方式中,高速缓冲存储器150相当于图1的L2高速缓冲器40。
表保持部160是保持将主存储器的地址与区域的属性对应起来的区域属性表161的存储器等的存储部。区域属性表161由属性设定部170生成及变更。
这里,参照图4。图4是表示本实施方式的区域属性表161的一例的图。如该图所示,区域属性表161是将主存储器20的物理地址与该物理地址表所表示的区域的属性对应起来的表。该图的“可高速缓冲”表示可高速缓冲属性,“可成组”表示可成组属性,“不可成组”表示不可成组属性。例如,在图4的例子中,在读地址是“物理地址3”的情况下,属性取得部110通过参照区域属性表161,取得不可成组属性,作为该读地址所表示的区域的属性。
回到图3,属性设定部170将与主存储器20的地址对应的属性设定为可高速缓冲属性、可成组属性、及不可成组属性中的某一个。这些属性基于来自处理器10的指示、根据存储在主存储器20中的数据的特性等来设定。
例如,属性设定部170将不可高速缓冲区域中的读敏感型的区域设定为不可成组属性。或者,属性设定部170根据数据的可利用性,对各地址设定属性。具体而言,属性设定部170对于表示存储有可被连续地读出、并且被多次利用的可能性较高的数据的区域的地址,设定可高速缓冲属性。对于表示存储有虽然可被连续地读出、但仅被利用一次的可能性较高的数据的区域的地址,设定可成组属性。对于表示存储有其他数据的区域的地址设定不可成组属性。此外,对于表示没有存储数据的区域的地址任意地、或者根据需要而设定各自的属性。
这里,对本实施方式的缓冲存储器140和高速缓冲存储器150的结构进行说明。图5是表示本实施方式的缓冲存储器140和高速缓冲存储器150的详细情况的图。
如该图所示,缓冲存储器140将主存储器20的地址(物理地址)、与由第1数据读出部131从该地址表示的区域读出的数据对应起来存储。缓冲存储器140能够保持多个(例如8个)规定字节数(例如64字节)的数据。另外,在本实施方式中,缓冲存储器140仅被用于从主存储器20的数据的读出。即,不被用于向主存储器20的数据的写入。缓冲存储器140是预先保持被读出的可能性较高的数据的PFB(Prefetch Buffer:预取缓冲器)。
高速缓冲存储器150例如是如该图所示的4路组相联方式的高速缓冲存储器。高速缓冲存储器150具备具有相同的结构的4个路,各路具有多个(例如1024个)的高速缓冲条目。1个高速缓冲条目具有有效标志V、标签、行数据、和修改(dirty)标志D。
有效标志V是表示该高速缓冲条目的数据是否有效的标志。标签是标签地址的拷贝。行数据是由标签地址及组索引确定的块中的规定字节数的数据(例如64字节的数据)的拷贝。修改标志D是表示是否需要将被高速缓冲的数据写回到主存储器中的标志。
如上所示,本实施方式的缓冲存储器140将地址与数据对应起来存储,以使其与高速缓冲存储器的标签与数据的关系相同。
另外,高速缓冲存储器150所具有的路的数量并不限于4个。1个路所具有的高速缓冲条目的个数、以及1个高速缓冲条目所具有的行数据的字节数也可以为任意的值。此外,高速缓冲存储器150也可以是其他方式的高速缓冲存储器。例如,也可以是直接映射方式、或者全关联方式。
如以上的结构所示,本实施方式的缓冲存储器装置100具备保持从由可高速缓冲区域21和不可高速缓冲区域22构成的主存储器20的不可高速缓冲区域22中的、保持应成组读出的数据的不可成组区域24成组读出的数据的缓冲存储器140。
由此,根据读请求,将对应于该读请求的数据、和然后被读出的可能性较高的数据成组读出,所以能够使存储器访问高速化。
另外,设图3所示的缓冲存储器装置100为还具备进行与写请求对应的写数据的写入处理的处理部的结构。
例如,属性取得部110与读请求同样取得写请求中包含的写地址所表示的区域的属性。属性判断部120判断由属性取得部110取得的属性是可高速缓冲属性、可成组属性、及不可成组属性中的哪一个。并且,数据写入部(未图示)基于判断结果将写数据向高速缓冲存储器150、或主存储器20写入。
具体而言,在属性是可高速缓冲属性的情况下,向高速缓冲存储器150写入写数据。此外,在属性是不可高速缓冲属性的情况下,向主存储器20写入写数据。此时,在向高速缓冲存储器150写入时,判断写请求命中还是未命中,在命中的情况下向高速缓冲存储器150写入写数据,在未命中的情况下向主存储器20写入写数据。
如上所述,本实施方式的缓冲存储器装置100可以根据来自处理器10的写请求,还进行写数据的写入。
另外,此时,数据读出部130也可以判断写地址是否与对应于缓冲存储器140中保持的数据的地址一致,在写地址一致的情况下,使保持在缓冲存储器140中的数据无效化。例如,通过对对应的数据设置表示无效的标志,或者通过将对应的数据从缓冲存储器140删除,使数据无效化。
由此,能够在主存储器20与缓冲存储器140之间确保数据的相关性。即,能够防止在因最新的数据仅写入到主存储器20中而写入在缓冲存储器140中的数据变旧的情况下,从缓冲存储器140读出旧的数据。
接着,利用图6~图9对本实施方式的缓冲存储器装置100的动作进行说明。图6是表示本实施方式的缓冲存储器装置100的动作的流程图。
首先,缓冲存储器装置100通过从处理器10取得读请求,执行本实施方式的读处理。
属性取得部110通过参照区域属性表161,取得读地址所表示的区域的属性(S101)。并且,属性判断部120判断由属性取得部110取得的属性是可高速缓冲属性、可成组属性、以及不可成组属性中的哪一个(S102)。
在判断为读地址所表示的区域的属性是可成组属性的情况下(在S102中为“不可高速缓冲(可成组)”),第1数据读出部131执行第1传输处理(S103)。第1传输处理是在属性是可成组属性的情况下执行的处理,是在对处理器10传输数据时、从主存储器20将数据成组读出、并将成组读出的数据保存到缓冲存储器140中的处理。
这里,参照图7。图7是表示在本实施方式中、属性是可成组属性时的传输处理的详细情况的流程图。
第1数据读出部131判断读请求命中还是未命中(S201)。在读请求未命中的情况下(S201中否),第1数据读出部131从主存储器20成组读出包含读数据的成组读数据(S202)。并且,第1数据读出部131将所读出的成组读数据保存到缓冲存储器140中(S203)。进而,第1数据读出部131从缓冲存储器140读出读数据(S204),将所读出的读数据向处理器10输出(S205)。另外,此时,成组读数据的向缓冲存储器140的保存、和向读数据的处理器10的输出也可以同时执行。
在读请求命中的情况下(S201中是),第1数据读出部131从缓冲存储器140读出对应于读请求的读数据(S204)。并且,第1数据读出部131将所读出的读数据向处理器10输出(S205)。
回到图6,在判断为读地址所表示的区域的属性是不可成组属性的情况下(S102中“不可高速缓冲(不可成组)”),第2数据读出部132执行第2传输处理(S104)。第2传输处理是在属性是不可成组属性的情况下执行的处理,是从主存储器20读出数据、将所读出的数据向处理器10传输的处理。
这里,参照图8。图8是表示在本实施方式中、属性是不可成组属性时的传输处理的详细情况的流程图。
第2数据读出部132从主存储器20读出读数据(S301)。并且,第2数据读出部132将所读出的读数据输出给处理器10(S302)。
再次回到图6,在判断为读地址所表示的区域的属性是可高速缓冲属性的情况下(S102中“可高速缓冲”),第3数据读出部133执行第3传输处理(S105)。第3传输处理是在属性是可高速缓冲属性的情况下执行的处理,是在向处理器10传输数据时、从主存储器20读出数据、将所读出的数据保存到高速缓冲存储器150中的处理。
这里,参照图9。图9是表示在本实施方式中、属性是可高速缓冲属性时的传输处理的详细情况的流程图。
第3数据读出部133判断读请求命中还是未命中(S401)。在读请求未命中的情况下(S401中否),第3数据读出部133从主存储器20读出读数据(S402)。并且,第3数据读出部133将所读出的读数据保存到高速缓冲存储器150中(S403)。进而,第3数据读出部133从高速缓冲存储器150读出读数据(S404),将所读出的读数据向处理器10输出(S405)。另外,此时,读数据的向高速缓冲存储器150的保存和向处理器10的输出也可以同时执行。
在读请求命中的情况下(S401中是),第3数据读出部133从高速缓冲存储器150读出对应于读请求的读数据(S404)。并且,第3数据读出部133将所读出的读数据输出给处理器10(S405)。
以上,本实施方式的缓冲存储器装置100判断读地址所表示的区域是哪一个的属性的区域,根据判断结果执行数据的读出。
如上所述,本实施方式的缓冲存储器装置100具备保持从不可成组区域24成组读出的数据的缓冲存储器140,所述不可成组区域24是由可高速缓冲区域21和不可高速缓冲区域22构成的主存储器20的不可高速缓冲区域22中的、保持应成组读出的数据的区域。并且,判断读地址所表示的区域是哪种属性的区域,根据判断结果执行数据的读出。此时,在属性是可成组属性的情况下,将从主存储器20成组读出的数据保存到缓冲存储器140中。
由此,通过使用只读的缓冲存储器140,能够防止使用高速缓冲存储器,所以能够使高速缓冲存储器预先保持预想使用频度较高的数据。进而,通过在主存储器20中设定不能进行成组读出的区域,能够防止通过读出所需以上的数据而发生的不良状况,进而,通过设定能够进行成组读出的区域,能够使存储器访问高速化。
(实施方式2)
本实施方式的缓冲存储器装置在读请求中包含的地址所表示的区域的属性是可高速缓冲属性的情况下,将包含对应于该读请求的数据的数据成组读出。由此,能够使存储器访问更高速化。
图10是表示本实施方式的缓冲存储器装置的结构的模块图。该图所示的缓冲存储器装置200与图3的缓冲存储器装置100相比,不同点在于代替数据读出部130而具备数据读出部230。另外,对于与实施方式1相同的构成单元赋予相同的符号,下面以不同点为中心进行说明,省略相同点的说明。
数据读出部230根据属性判断部120的判断结果,从主存储器20、缓冲存储器140或高速缓冲存储器150读出对应于读请求的数据。这里,数据读出部230具备第1数据读出部131、第2数据读出部132和第3数据读出部233。
第3数据读出部233在由属性判断部120判断为与读请求中包含的地址对应的区域的属性是可高速缓冲属性的情况下,执行数据的读出。进而,第3数据读出部233判断读请求命中还是未命中。
具体而言,在读请求命中的情况下,第3数据读出部233从高速缓冲存储器150或缓冲存储器140读出对应于读地址的数据,将所读出的数据输出给处理器10。在读请求未命中的情况下,第3数据读出部233从主存储器20成组读出包含读数据的数据,将成组读出的数据(成组读数据)保存到高速缓冲存储器150和缓冲存储器140中。
例如,将成组读数据中的包含读数据的数据保存到高速缓冲存储器150中,将除了保存在高速缓冲存储器150中的数据以外的、成组读数据的剩余的数据保存到缓冲存储器140。并且,将所保存的成组读数据中的读数据从高速缓冲存储器150读出,将所读出的读数据输出给处理器10。另外,成组读数据的向高速缓冲存储器150及缓冲存储器140的保存、和向读数据的处理器10的输出也可以并行地执行。
例如,在从处理器10有64字节的读数据的读请求的情况下,第3数据读出部233将包含该读数据的128字节的数据成组读出。并且,第3数据读出部233将128字节的成组读数据中的64字节的该读数据保存到高速缓冲存储器150中,并且将剩余的64字节的数据保存到缓冲存储器140中。
如以上的结构所示,本实施方式的缓冲存储器装置200在判断为读地址所表示的区域的属性是可高速缓冲属性的情况下,将包含对应于该读地址的数据的数据成组读出,并将成组读出的数据保存到高速缓冲存储器150和缓冲存储器140中。
由此,在高速缓冲时,也根据读请求,将对应于该读请求的数据和在其之后被读出的可能性较高的数据成组读出,所以能够使存储器访问更高速化。
接着,对本实施方式的缓冲存储器装置200的动作进行说明。本实施方式的缓冲存储器装置200与实施方式1的缓冲存储器装置100的动作比较,判断为属性是可高速缓冲属性时的处理(图6的S105、图9)不同。因而,下面以不同的点为中心进行说明,对于相同的点省略说明。
首先,缓冲存储器装置200与实施方式1同样,通过从处理器10取得读请求,执行本实施方式的读处理。
如图6所示,属性取得部110通过参照区域属性表161,取得读地址所表示的区域的属性(S101)。并且,属性判断部120判断由属性取得部110取得的属性是可高速缓冲属性、可成组属性、以及不可成组属性中的哪一个(S102)。
在由属性判断部120判断为读地址所表示的区域的属性是可成组属性的情况下(S102中“不可高速缓冲(可成组)”),执行第1传输处理(S103:详细情况如图7所示)。在读地址所表示的区域的属性是不可成组属性的情况下(S102中“不可高速缓冲(不可成组)”),执行第2传输处理(S104:详细情况如图8所示)。
在判断为读地址所表示的区域的属性是可高速缓冲属性的情况下(S102中“可高速缓冲”),第3数据读出部233执行第3传输处理(S105)。第3传输处理是在属性是可高速缓冲属性的情况下执行的处理,是在对处理器10传输数据时、从主存储器20读出数据、将所读出的数据保存到高速缓冲存储器150中的处理。
这里,参照图11。图11是表示在本实施方式中、属性是可高速缓冲属性时的传输处理的详细情况的流程图。
第3数据读出部233判断读请求命中还是未命中(S501)。在读请求未命中的情况下(S501中否),第3数据读出部233从主存储器20中成组读出包含读数据的数据(成组读数据)(S502)。并且,第3数据读出部233将成组读数据保存在高速缓冲存储器150和缓冲存储器140中(S503)。进而,第3数据读出部233从高速缓冲存储器150读出读数据(S504),将所读出的读数据输出给处理器10(S505)。另外,此时,成组读数据的向高速缓冲存储器150的保存和读数据的向处理器10的输出也可以同时执行。
在读请求命中的情况下(S501中是),第3数据读出部233从高速缓冲存储器150或缓冲存储器140读出对应于读请求的读数据(S504)。并且,第3数据读出部233将所读出的读数据输出给处理器10(S505)。
如上所述,本实施方式的缓冲存储器装置200在判断为读地址所表示的区域的属性是可高速缓冲属性的情况下,将包含对应于该读地址的数据的数据成组读出到高速缓冲存储器150和缓冲存储器140中。
由此,即使在从处理器10输出了对可高速缓冲区域的读请求的情况下也能够利用缓冲存储器140。即,通过将比对应于读请求的数据多的数据成组读出、将成组读出的数据保存到缓冲存储器140中,能够使读出时的存储器访问高速化。
(实施方式3)
在本实施方式的存储器系统中,管理主存储器的MMU(Memory Management Unit)或OS(Operating System)设定主存储器的区域的属性。
图12是表示本实施方式的存储器系统的结构的模块图。该图的存储器系统300具备处理器310a及310b、主存储器320、和L2高速缓冲器330。另外,本实施方式的存储器系统300是具备包括处理器310a和处理器310b的多处理器的系统。
处理器310a是具备L1高速缓冲器311和TLB(Translation Look aside Buffer:转译后备缓冲器)312、并且对主存储器320输出存储器访问请求(读请求或写请求)的CPU等。进而,处理器310a使用内置的或装备在外部的MMU和OS进行主存储器320的管理。
具体而言,处理器310a进行将主存储器320的物理地址与逻辑地址对应起来的地址变换表的管理。进而,设定主存储器320的物理地址所表示的区域的属性,将所设定的属性与物理地址对应起来存储到保持地址变换表的TLB312中。另外,处理器310a相当于实施方式1及2的属性设定部170。
处理器310b是与处理器310a相同结构的处理器。另外,处理器310a及310b既可以是在物理上不同的两个处理器,也可以是将1个处理器通过OS虚拟地分割的两个虚拟处理器。
此外,L1高速缓冲器311和TLB312也可以装备在每个处理器中。或者,L1高速缓冲器311和TLB312也可以装备在处理器310a与L2高速缓冲器330之间。
L1高速缓冲器311取得处理器310a发出的存储器访问请求,判断所取得的存储器访问请求(读请求或写请求)命中还是未命中。L1高速缓冲器311相当于实施方式1及2的L1高速缓冲器30。
在读请求命中的情况下,L1高速缓冲器311从L1高速缓冲器311内部读出与该读请求中包含的读地址对应的数据,将所读出的数据输出给处理器310a。在写请求命中的情况下,L1高速缓冲器311将与该写请求同时从处理器310a输出的数据写入L1高速缓冲器311内部。
在读请求未命中的情况下,L1高速缓冲器311从L2高速缓冲器330或主存储器320读出对应于该读请求的数据,将所读出的数据输出给处理器310a。在写请求未命中的情况下,L1高速缓冲器311向L2高速缓冲器330或主存储器320写入与该写请求同时从处理器310a输出的数据。
TLB312是存储地址变换表313的高速缓冲存储器。另外,TLB312相当于实施方式1及2的表保持部160。
地址变换表313是将逻辑地址、物理地址、和该物理地址所表示的区域的属性对应起来的表。另外,地址变换表313相当于实施方式1及2的区域属性表161。
这里,参照图13。图13是表示本实施方式的地址变换表的一例的图。如该图所示,地址变换表313是将逻辑地址、物理地址、访问许可属性、和存储器属性对应起来的表。
逻辑地址是处理器310a虚拟地设定的地址,也称作虚拟地址。物理地址是表示主存储器320的实际的写入或读出区域的地址,也称作实地址。访问许可属性表示是以下两个属性中的哪一个,该两个属性分别为表示是仅由OS等的管理部能够访问的区域的“特权模式”、和表示是即使一般的程序等也能够访问的区域的“用户模式”。存储器属性表示区域是可高速缓冲区域、可成组区域、以及不可成组区域中的哪一个。
在图13的例子中,例如,“逻辑地址C”表示主存储器320内的“物理地址3”所表示的区域,该区域表示是“用户模式”、并且是“不可成组区域”。由此,从“逻辑地址C”所表示的区域不能将数据成组读出。
回到图12,主存储器320是存储程序或数据等的SDRAM等的存储部。根据从处理器310a及310b等输出的存储器访问请求(读请求或写请求),执行从主存储器320的数据的读出、或者向主存储器320的数据的写入。主存储器320相当于实施方式1及2的主存储器20。
L2高速缓冲器330取得从处理器310a及310b输出的存储器访问请求,判断所取得的存储器访问请求命中还是未命中。L2高速缓冲器330相当于实施方式1及2的L2高速缓冲器40(高速缓冲存储器150)。
另外,以下,为了简单,假设输入到L2高速缓冲器330中的存储器访问请求是由处理器310a发出的。但是,存储器访问请求也可以由其他处理器(处理器310b等)或DMAC(Direct Memory Access Controller)等发出。
在读请求命中的情况下,L2高速缓冲器330从L2高速缓冲器330内部读出与该读请求中包含的读地址对应的数据,将所读出的数据输出给处理器310a等。在写请求命中的情况下,L2高速缓冲器330将与该写请求同时从处理器310a输出的数据写入L2高速缓冲器330内部。
在读请求未命中的情况下,L1高速缓冲器311从L2高速缓冲器330或主存储器320读出对应于该读请求的数据,将所读出的数据输出给处理器310a。在写请求未命中的情况下,L1高速缓冲器311对L2高速缓冲器330或主存储器320写入与该写请求同时从处理器310a输出的数据。
L2高速缓冲器330具备队列331a及331b、属性判断部332a及332b、选择器333a及333b、PFB334、高速缓冲存储器335、和存储器接口336。
队列331a是将从处理器310a输出的存储器访问请求暂时保持的先入先出方式的存储器(FIFO存储器:First In First Out)。另外,在所保持的存储器访问请求中,与地址一起还包含该地址表示的区域的属性。
队列331b是与队列331a相同的结构,是将从处理器310b输出的存储器访问请求暂时保持的FIFO存储器。
另外,队列331a及331b相当于实施方式1及2的属性取得部110。
属性判断部332a将保持在队列331a中的存储器访问请求读出,判断所读出的存储器访问请求中包含的属性是可高速缓冲属性、可成组属性、以及不可成组属性中的哪一个。并且,按照判断结果,属性判断部332a经由选择器333a或333b和存储器接口336,对PFB334和高速缓冲存储器335、或者存储器接口336输出存储器访问请求。
具体而言,在判断为属性是可高速缓冲属性或可成组属性的情况下,属性判断部332a经由选择器333a和存储器接口336对PFB334和高速缓冲存储器335输出存储器访问请求。在判断为属性是不可成组属性的情况下,属性判断部332a经由选择器333b和存储器接口336对主存储器320输出存储器访问请求。
属性判断部332b是与属性判断部332a相同的结构,将保持在队列331b中的存储器访问请求读出,判断所读出的存储器访问请求中包含的属性。
另外,属性判断部332a及332b相当于实施方式1及2的属性判断部120。
选择器333a及333b选择对从两个队列331a及331b经由属性判断部332a或332b输入的多个存储器访问请求中的哪个进行调解,并将调解后的存储器访问请求经由存储器接口336向PFB334、高速缓冲存储器335及主存储器320中的哪一个输出。
PFB334是将主存储器320的地址、与从该地址所表示的区域读出的数据对应起来存储的缓冲存储器。PFB334根据从处理器310a等输出的读请求,利用于将由处理器310a等读出的可能性较高的数据预先保持的预取处理。另外,PFB334相当于实施方式1及2的缓冲存储器140。
高速缓冲存储器335是保持从主存储器320读出的数据的高速缓冲存储器。高速缓冲存储器335相当于实施方式1及2的高速缓冲存储器150。
存储器接口336判断读请求命中还是未命中,根据判断结果执行从主存储器320、PFB334、或高速缓冲存储器335的数据的读出。存储器接口336相当于实施方式1及2的数据读出部130(230)。
例如,存储器接口336在读请求中包含的读地址所表示的区域的属性是不可成组属性的情况下,从主存储器320读出数据,将所读出的数据输出给处理器310a。
此外,存储器接口336在读请求中包含的读地址所表示的区域的属性是可成组属性的情况下,判断该读请求命中还是未命中。在读请求命中的情况下,从PFB334读出对应的读数据,输出给处理器310a。在读请求未命中的情况下,从主存储器320成组读出包含对应的读数据的数据,将成组读出的数据写入PFB334。并且,从PFB334读出读数据,输出给处理器310a。
进而,存储器接口336在读请求中包含的读地址所表示的区域的属性是可高速缓冲属性的情况下,判断该读请求命中还是未命中。在读请求命中的情况下,从高速缓冲存储器335读出对应的读数据,输出给处理器310a。在读请求未命中的情况下,从主存储器320读出包含对应的读数据的数据,将所读出的数据写入高速缓冲存储器335。并且,从高速缓冲存储器335读出数据,输出给处理器310a。另外,此时,与实施方式2同样,也可以从主存储器320将数据成组读出,保存到高速缓冲存储器335和PFB334中。
接着,对本实施方式的存储器系统300的动作进行说明。本实施的存储器系统300的动作与实施方式1或2是同样的,所以,这里基于图6~图9的流程图简单地说明。
首先,将从处理器310a等发出的读请求保存在队列331a等中。此时,在读请求中,包含有通过参照地址变换表313而得到的属性(S101)。
属性判断部332a判断读请求中包含的属性是可高速缓冲属性、可成组属性、以及不可成组属性中的哪一个(S102)。判断结果经由选择器333a等输出至存储器接口336。
在判断为读请求中包含的属性是可成组属性的情况下(S102中“不可高速缓冲(可成组)”),存储器接口336执行第1传输处理(S103)。
如图7所示,存储器接口336判断读请求命中还是未命中(S201)。在读请求未命中的情况下(S201中否),存储器接口336从主存储器320成组读出包含读数据的成组读数据(S202)。并且,存储器接口336将所读出的成组读数据保存到PFB334中(S203)。进而,存储器接口336从PFB334读出读数据(S204),将所读出的读数据输出给处理器310a(S205)。
在读请求命中的情况下(S201中是),存储器接口336从PFB334读出读数据(S204),将所读出的读数据输出给处理器310a(S205)。
回到图6,在判断为读请求中包含的属性是不可成组属性的情况下(S102中“不可高速缓冲(不可成组)”),存储器接口336执行第2传输处理(S104)。
如图8所示,存储器接口336从主存储器320读出读数据(S301)。并且,存储器接口336将所读出的读数据输出给处理器310a(S302)。
再次回到图6,在判断为读请求中包含的属性是可高速缓冲属性的情况下(S102中“可高速缓冲”),存储器接口336执行第3传输处理(S105)。
如图9所示,存储器接口336判断读请求命中还是未命中(S401)。在读请求未命中的情况下(S401中否),存储器接口336从主存储器320读出读数据(S402)。并且,存储器接口336将所读出的读数据保存到高速缓冲存储器335中(S403)。进而,存储器接口336从高速缓冲存储器335读出读数据(S404),将所读出的读数据输出给处理器310a(S405)。
在读请求命中的情况下(S401中是),存储器接口336从高速缓冲存储器335读出读数据(S404),将所读出的读数据输出给处理器310a(S405)。
另外,在判断为读请求中包含的属性是可高速缓冲属性的情况下(S102中“可高速缓冲”)、并且在读请求未命中的情况下(S401中否),存储器接口336也可以从主存储器320成组读出包含读数据的数据(图11所示的流程图)。此时,所读出的成组读数据保存到高速缓冲存储器335和PFB334中。
以上,在本实施方式的存储器系统300中,由处理器内的MMU等设定属性,将所设定的属性存储到保持于TLB中的地址变换表中。由此,能够利用以往具备的地址变换表,不需要新的属性存储用缓冲器等,能够使结构简单化。
(实施方式4)
本实施方式的缓冲存储器装置将从处理器输出的、用来向主存储器写入的数据暂时保持,在满足规定的条件的情况下,将所保持的数据成组写入。由此,能够有效地利用数据总线,能够高效率地传输数据。
图14是表示本实施方式的缓冲存储器装置的结构的模块图。该图的缓冲存储器装置400按照多个处理器10a、10b及10c分别发出的存储器访问请求,在多个处理器10a、10b及10c与主存储器20之间传输数据。以下,在不需要将多个处理器10a、10b及10c特别区别说明的情况下,记载为处理器10。
另外,假设缓冲存储器装置400装备在与图1所示的L2高速缓冲器40相同的芯片上。此外,在图1中表示的L1高速缓冲器30分别装备在多个处理器10a、10b及10c中,在图14中没有图示。但是,L1高速缓冲器30也可以装备在多个处理器10a、10b及10c与缓冲存储器装置400之间,由多个处理器10a、10b及10c共用。
如图14所示,缓冲存储器装置400具备存储器访问信息取得部410、判断部420、控制部430、数据传输部440、STB(Store Buffer)450a、450b及450c、高速缓冲存储器460、和PFB470。另外,以下,在不需要将STB450a、450b及450c特别区别说明的情况下记载为STB450。
存储器访问信息取得部410从处理器10取得存储器访问请求,从所取得的存储器访问请求中取得表示由处理器10发出的存储器访问请求的性质的存储器访问信息。存储器访问信息是存储器访问请求中包含的信息及附属于它的信息,包括命令信息、地址信息、属性信息、和处理器信息等。
命令信息是表示存储器访问请求是写请求还是读请求、和关于数据传输的其他命令等的信息。地址信息是表示写入数据的区域的写地址、或者表示读出数据的区域的读地址的信息。属性信息是表示写地址或读地址所表示的区域的属性是可高速缓冲属性、可成组属性及不可成组属性中的哪一个属性的信息。处理器信息是表示发出了存储器访问请求的线程、逻辑处理器(LP:Logical Processor)及物理处理器(PP:Physical Processor)的信息。
另外,属性信息也可以不包含在存储器访问请求中。在此情况下,存储器访问信息取得部410也可以保持将主存储器20的地址与该地址所表示的区域的属性对应起来的表,通过参照地址信息和该表来取得属性信息。
这里,参照图15。图15是表示本实施方式的存储器访问信息的一例的图。在该图中,示出了存储器访问信息501及502。
存储器访问信息501表示存储器访问请求是由物理处理器“PP1”的逻辑处理器“LP1”发出的写请求、包含表示对“写地址1”所表示的属于可成组属性的区域写入数据的写命令。此外,表示在该写请求中包含“All Sync(全同步)”命令。
存储器访问信息502表示存储器访问请求是由物理处理器“PP1”的逻辑处理器“LP1”发出的读请求、包含表示从“读地址1”所表示的属于可成组属性的区域读出数据的读命令。此外,表示在该读请求中包含“SelfSync(自同步)”命令。
另外,关于“All Sync”及“Self Sync”命令在后面叙述。
回到图14,判断部420判断由存储器访问信息取得部410取得的存储器访问信息所表示的性质是否满足预先设定的条件。具体而言,判断部420使用作为存储器访问信息而取得的命令信息、属性信息、地址信息及处理器信息等、和经由控制部430从STB450取得的缓冲量信息进行条件的判断。条件和判断部420的处理的详细情况在后面叙述。另外,缓冲量信息是表示在各个STB450中保持的数据的量的信息。
控制部430在由判断部420判断为存储器访问信息表示的性质满足条件的情况下,将在多个STB450a、450b及450c中的、对应于该条件的STB中保持的数据转出到主存储器中。具体而言,控制部430对STB450输出转出命令。转出命令被输出给作为转出数据的对象的STB,接收到转出命令的STB将保持的数据输出给主存储器20。
此外,控制部430通过对数据传输部440输出控制信息,来控制数据传输部440。例如,控制信息至少包括属性信息,控制部430根据地址表示的区域的属性,决定写数据的写入目的地、以及读数据的读出目的地等。
进而,控制部430将作为分别保持在多个STB450a、450b及450c中的数据的量的缓冲量输出给判断部420。
数据传输部440在控制部430的控制下,在处理器10与主存储器20之间传输数据。具体而言,在从处理器10输出了写请求的情况下,为了写入主存储器20,而将从处理器10输出的写数据写入STB450、高速缓冲存储器460及主存储器20的某一个中。此外,在从处理器10输出了读请求的情况下,从高速缓冲存储器460、PFB470及主存储器20的某一个读出读数据,将所读出的读数据输出给处理器10。由控制部430根据地址表示的区域的属性来决定利用哪一个存储器。
如图14所示,数据传输部440具备第1数据传输部441、第2数据传输部442、和第3数据传输部443。
第1数据传输部441在地址所表示的区域属于可成组属性的情况下进行数据的传输。在输入了写请求的情况下,第1数据传输部441将对应于该写请求的写数据写入STB450。根据控制信息中包含的处理器信息来决定写入多个STB450a、450b及450c中的哪一个。具体而言,向与发出了写请求的处理器对应的STB写入写数据。
在输入了读请求的情况下,第1数据传输部441判断对应于该读请求的读数据是否保持在PFB470中。即,判断该读请求命中还是未命中。在该读请求命中的情况下,第1数据传输部441从PFB470读出对应的读数据,将所读出的读数据输出给处理器10。在该读请求未命中的情况下,第1数据传输部441从主存储器20成组读出包含对应于该读请求的读数据的数据,将成组读出的数据写入PFB470。并且,从PFB470读出对应于读请求的读数据,将所读出的读数据输出给处理器10。另外,也可以在将从主存储器20读出的成组读数据写入PFB470的同时,将对应于读请求的读数据输出给处理器10。
第2数据传输部442在地址所表示的区域属于不可成组属性的情况下进行数据的传输。在被输入了写请求的情况下,第2数据传输部442将对应于该写请求的写数据写入主存储器20。在被输入了读请求的情况下,第2数据传输部442从主存储器20读出对应于该读请求的读数据,将所读出的读数据输出给处理器10。
第3数据传输部443在地址所表示的区域属于可高速缓冲属性的情况下进行数据的传输。
在被输入了写请求的情况下,根据第3数据传输部443进行回写处理和直写处理中的哪一个,写数据的写入目的地不同。
在进行回写处理的情况下,第3数据传输部443判断该写请求命中还是未命中。在该写请求命中的情况下,对高速缓冲存储器460写入写数据。在该写请求未命中的情况下,第3数据传输部443对高速缓冲存储器460进行再填补处理,将写请求中包含的地址(标签地址)和写数据写入高速缓冲存储器460。在任何情况下,写入高速缓冲存储器460中的写数据都以任意的定时写入到主存储器20中。另外,在写请求未命中的情况下,也可以不将写数据写入高速缓冲存储器460,而直接将写数据写入主存储器20。
在进行直写处理的情况下,第3数据传输部443判断该写请求命中还是未命中。在该写请求命中的情况下,第3数据传输部443对STB450写入写地址和写数据。被写入STB450中的写数据在由判断部420判断为后续的存储器访问请求的性质满足条件的情况下,按照控制部430的控制、从STB450成组写入到高速缓冲存储器460和主存储器20中。
在该写请求未命中的情况下也同样,第3数据传输部443对STB450写入写地址和写数据。被写入STB450中的写数据和写地址在由判断部420判断为后续的存储器访问请求的性质满足条件的情况下,从STB450成组写入到高速缓冲存储器460和主存储器20中。
在被输入了读请求的情况下,第3数据传输部443判断该读请求命中还是未命中。在该读请求命中的情况下,第3数据传输部443从高速缓冲存储器460读出读数据,将所读出的读数据输出给处理器10。
在该读请求未命中的情况下,第3数据传输部443从主存储器20读出读数据,将所读出的读数据和读地址写入高速缓冲存储器460。并且,第3数据传输部443从高速缓冲存储器460读出读数据,将所读出的读数据输出给处理器10。另外,也可以在将从主存储器20读出的读数据写入高速缓冲存储器460的同时,输出给处理器10。
STB450a、450b及450c是分别对应于多个处理器10a、10b及10c、保持与由对应的处理器发出的写请求对应的写数据的储存缓冲器(STB)。STB450是为了将从多个处理器10输出的写数据合并而暂时保持写数据的缓冲存储器。
在本实施方式中,STB450按每个物理处理器而装备。此外,作为一例,STB450最大能够保持128字节的数据。保持在STB450中的数据基于来自控制部430的控制而成组写入到主存储器20中。此外,在写请求是向属于可高速缓冲属性的区域的访问、并且进行直写处理的情况下,保持在STB450中的数据成组写入到主存储器20和高速缓冲存储器460中。
这里,参照图16。图16是表示本实施方式的缓冲存储器装置400具备的STB450的概况的图。
如该图所示,STB450a、450b及450c分别对应于物理处理器(处理器10a(PP0)、10b(PP1)及10c(PP2))而装备。即,STB450a保持从处理器10a输出的写地址等的缓冲控制信息和写数据。STB450b保持从处理器10b输出的写地址等的缓冲控制信息和写信息。STB450c保持从处理器10c输出的写地址等的缓冲控制信息和写数据。
缓冲控制信息是写请求中包含的信息,并且是用来管理写入STB450中的数据的信息。即,缓冲控制信息至少包括写地址,并且包括表示输出对应的写数据的物理处理器及逻辑处理器等的信息。
在图16所示的例子中,按每个物理处理器而装备的STB具有两个能够保持64字节的数据的区域。例如,也可以将该两个区域与各个线程建立对应。
高速缓冲存储器460例如与实施方式1的高速缓冲存储器150同样,是4路组相联方式的高速缓冲存储器。
PFB470相当于实施方式1的缓冲存储器140,是将主存储器20的地址、与由第1数据传输部441从该地址所表示的区域读出的数据对应起来存储的缓冲存储器。
这里,对判断部420在判断处理中使用的条件进行说明。
图17是示出表示本实施方式的多个判断条件的一例的判断表的图。在该图中,作为一例,示出了属性判断条件(“Uncache”)、命令判断条件(“All Sync”和“Self Sync”)、地址判断条件(“RAW Hazard”和“Another Line Access”)、缓冲量判断条件(“Slot Full”)、和处理器判断条件(“同LP、不同PP”)。
属性判断条件是用来使用属性信息、按照存储器访问请求中包含的地址所表示的区域的属性、决定从STB450的数据的转出、以及作为转出对象的STB的条件。图17所示的“Uncache”条件是属性判断条件的一例。
在“Uncache”条件中,由判断部420判断存储器访问请求中包含的地址所表示的区域的属性是否是不可成组属性。在判断为是不可成组属性的情况下,控制部430从保持有对应于由与发出了该存储器访问请求的逻辑处理器相同的逻辑处理器发出的存储器访问请求的数据的STB中,将所保持的数据转出到主存储器20中。另外,控制部430作为判断转出对象的STB的基准,也可以不使用逻辑处理器而使用对应于线程的虚拟处理器。
命令判断条件是用来使用命令信息、按照存储器访问请求中包含的命令、决定从STB450的数据的转出、以及作为转出对象的STB的条件。图17所示的“All Sync”条件和“Self Sync”条件是命令判断条件的一例。
在“All Sync”条件中,由判断部420判断在存储器访问请求中是否包含有“All Sync”命令。“All Sync”命令是用来将保持在全部的STB450中的全部的数据转出到主存储器20中的命令。在包含有“All Sync”命令的情况下(例如,图15的存储器访问信息501),控制部430将保持在全部的STB450中的全部的数据转出到主存储器20中。
在“Self Sync”条件中,由判断部420判断在存储器访问请求是否包含有“Self Sync”命令。“Self Sync”命令是用来仅将发出了该命令的处理器输出的数据从STB450转出到主存储器20中的命令。在包含有“Self Sync”命令的情况下(例如,图15的存储器访问信息502),控制部430从保持有对应于由与发出该存储器访问请求的逻辑处理器相同的逻辑处理器发出的存储器访问请求的数据的STB中,将所保持的数据转出到主存储器20中。另外,控制部430作为判断转出对象的STB的基准,也可以不使用逻辑处理器、而使用对应于线程的虚拟处理器。
地址判断条件是用来使用地址信息、按照存储器访问请求中包含的地址、决定从STB450的数据的转出、以及作为转出对象的STB的条件。图17所示的“RAW Hazard”条件和“Another Line Access”条件是地址判断条件的一例。
在“RAW Hazard”条件中,由判断部420判断与读请求中包含的读地址一致的写地址是否保持在多个STB450的至少1个中。在与读地址一致的写地址保持在STB450的某个中的情况下,控制部430将到Hazard行为止的全部数据、即将在与该写地址对应的写数据以前保持在STB450中的数据转出到主存储器20中。
在“Another Line Access”条件中,由判断部420判断写请求中包含的写地址与紧前输入的写请求中包含的写地址是否关联。具体而言,判断这两个写地址是否是连续的地址。另外,此时,假设两个写请求都由相同的物理处理器发出。在判断为两个写地址不是连续的地址的情况下,控制部430将与紧前输入的写请求对应的写数据及其以前保持在STB450中的数据转出到主存储器20中。
缓冲量判断条件是用来使用缓冲量信息、按照保持在STB450中的数据量、决定从STB450的数据的转出、以及作为转出对象的STB的条件。图17所示的“Slot Full”条件是缓冲量判断条件的一例。
在“Slot Full”条件中,由判断部420判断保持在STB450中的数据量即缓冲量是否为满(128字节)。在判断为缓冲量是128字节的情况下,控制部430将该STB的数据转出到主存储器20中。
处理器判断条件是用来使用处理器信息、按照哪个逻辑处理器和物理处理器发出了存储器访问请求、来决定从STB450的数据的转出、以及作为转出对象的STB的条件。图17所示的“同LP、不同PP”条件是处理器判断条件的一例。
在“同LP、不同PP”条件中,判断发出了存储器访问请求的逻辑处理器是否与发出了与保持在STB450中的写数据对应的写请求的逻辑处理器相同。进而,判断发出了该存储器访问请求的物理处理器是否与发出了该写请求的物理处理器不同。即,由判断部420判断与处理器信息所表示的物理处理器不同的物理处理器、并且对应于由与处理器信息所表示的逻辑处理器所表示的逻辑处理器相同的逻辑处理器在以前发出的写请求的写数据是否保持在至少1个STB中。在判断为逻辑处理器相同、物理处理器不同的情况下,控制部430将与该逻辑处理器在以前发出的写请求对应的数据从STB450转出。另外,也可以不是逻辑处理器,而判断线程是否相同。
如上所述,在本实施方式中,在满足各个条件的情况下从STB450转出数据。另外,不需要判断上述的全部条件。此外,也可以在上述的条件中添加新的条件,或者也可以将上述的条件与新的条件替换。
例如,“Slot Full”条件是判断缓冲量是否为满的条件,但也可以代替该条件,是判断是否达到规定的缓冲量(STB中能够保持的缓冲量的最大值的一半等)的条件。例如,STB450中能够保持的数据量的最大值是128字节,但在STB450与主存储器20之间的数据总线宽度是64字节等的情况下,也可以判断缓冲量是否达到了64字节。
这里,参照图18。图18是表示本实施方式的判断部420的详细的结构的模块图。如该图所示,判断部420具备属性判断部421、处理器判断部422、命令判断部423、地址判断部424、缓冲量判断部425、和判断结果输出部426。
属性判断部421从由存储器访问信息取得部410取得的存储器访问信息取得属性信息,判断存储器访问请求中包含的地址所表示的区域的属性是可高速缓冲属性、可成组属性、以及不可成组属性中的哪一个。并且,属性判断部421将所得到的判断结果输出给判断结果输出部426。
处理器判断部422从由存储器访问信息取得部410取得的存储器访问信息取得处理器信息,判断发出了存储器访问请求的处理器是多个逻辑处理器及物理处理器中的、哪个逻辑处理器及物理处理器。并且,处理器判断部422将所得到的判断结果输出给判断结果输出部426。
命令判断部423从由存储器访问信息取得部410取得的存储器访问信息取得命令信息,判断在存储器访问请求中是否包含有规定的命令。进而,命令判断部423在存储器访问请求中包含有规定的命令的情况下,判断该规定的命令的种类。并且,命令判断部423将所得到的判断结果输出给判断结果输出部426。
另外,所谓规定的命令,例如是不论其他条件如何都从STB450转出数据的命令。作为一例,有如上所述的“All Sync”命令及“Self Sync”命令。
地址判断部424从由存储器访问信息取得部410取得的存储器访问信息取得地址信息,判断存储器访问请求中包含的地址是否已经保持在STB450中。进而,地址判断部424判断该存储器访问请求中包含的地址是否与紧前的存储器访问请求中包含的地址关联。具体而言,判断两个地址是否连续。并且,地址判断部424将得到的判断结果输出给判断结果输出部426。
缓冲量判断部425经由控制部430从STB450取得缓冲量,按每个STB判断缓冲量是否达到了规定的阈值。并且,缓冲量判断部425将得到的判断结果输出给判断结果输出部426。另外,规定的阈值例如是STB450的最大值、或者缓冲存储器装置400与主存储器20之间的数据总线宽度等。
判断结果输出部426基于从各判断部输入的判断结果,判断是否满足图17所示的条件,将得到的判断结果输出给控制部430。具体而言,判断结果输出部426在判断为满足图17所示的条件的情况下,将表示将哪个STB的哪个数据转出到主存储器20中的转出信息输出给控制部430。
通过以上的结构,本实施方式的缓冲存储器装置400具备将从多个处理器10输出的写数据暂时保持的多个STB450,在满足规定的条件的情况下,将保持在STB450中的数据成组写入主存储器20。即,为了将较小的尺寸的多个写数据合并而暂时保持在STB450中,将通过合并得到的较大的尺寸的数据成组写入主存储器20。此时,基于用来保证多个处理器间的数据的顺序的条件,决定能否从STB450转出数据。
由此,能够在保持数据的相关性的同时提高数据的传输效率。
接着,利用图19~图26对本实施方式的缓冲存储器装置400的动作进行说明。图19是表示本实施方式的缓冲存储器装置400的动作的流程图。
首先,本实施方式的缓冲存储器装置400通过从处理器10取得存储器访问请求,执行本实施方式的数据传输处理。
存储器访问信息取得部410从存储器访问请求中取得存储器访问信息(S601)。并且,将所取得的存储器访问信息输出给判断部420。此外,根据需要,判断部420经由控制部430从STB450取得缓冲量信息。
判断部420利用被输入的存储器访问信息和所取得的缓冲量信息,判断是否从STB450转出数据(S602)。关于该转出判断处理的详细情况在后面叙述。
接着,命令判断部423判断存储器访问请求是写请求还是读请求(S603)。在存储器访问请求是写请求的情况下(S603中“写”),数据传输部440进行从处理器10输出的写数据的写入处理(S604)。在存储器访问请求是读请求的情况下(S603中“读”),数据传输部440执行向处理器10的读数据的读出处理(S605)。
另外,在转出判断处理(S602)中,存储器访问请求是写请求还是读请求已被判断的情况下,在转出判断处理(S602)结束后也可以不执行存储器访问请求的判断处理(S603),而执行写入处理(S604)或读出处理(S605)。
以下,首先对写入处理(S604)的详细情况进行说明。
图20是表示本实施方式的缓冲存储器装置400的写入处理的流程图。
在存储器访问请求是写请求的情况下,首先,属性判断部421判断该写请求中包含的写地址所表示的区域的属性(S611)。具体而言,属性判断部421判断写地址所表示的区域的属性是可成组属性、不可成组属性、以及可高速缓冲属性中的哪一个。
在判断为写地址所表示的区域的属性是可成组属性的情况下(S611中“不可高速缓冲(可成组)”),第1数据传输部441将从处理器10输出的写数据写入STB450(S612)。具体而言,第1数据传输部441基于来自控制部430的控制,将写数据写入与发出了写请求的物理处理器(例如处理器10a)对应的STB(STB450a)。
在判断为写地址所表示的区域的属性是不可成组属性的情况下(S611中“不可高速缓冲(不可成组)”),第2数据传输部442将从处理器10输出的写数据写入主存储器20(S613)。
在判断为写地址所表示的区域的属性是可高速缓冲属性的情况下(S611中“可高速缓冲”),第3数据传输部443判断写请求命中还是未命中(S614)。在写请求未命中的情况下(S614中否),第3数据传输部443对高速缓冲存储器460进行再填补处理,将标签地址更新(S615)。
在更新标签地址后、或者在写请求命中的情况下(S614中是),控制部430根据基于该写请求的写入处理是回写处理还是直写处理,变更写数据的写入目的地(S617)。在回写处理的情况下(S616中“回写”),第3数据传输部443将写数据写入高速缓冲存储器460(S617)。在直写处理的情况下(S616中“直写”),第3数据传输部443将写数据写入STB450(S618)。
由此,从处理器10输出的写数据写入到主存储器20、STB450或高速缓冲存储器460中。另外,写入STB450及高速缓冲存储器460中的数据通过在输入了后续的存储器访问请求等时执行的转出判断处理而写入到主存储器20中。
另外,在转出判断处理(S602)中,写地址所表示的区域的属性已被判断了的情况下,在存储器访问请求的判断处理(S603)结束后也可以不进行属性的判断处理(S611)、而执行各自的写入处理。
接着,对读出处理(S605)进行说明。读出处理(S605)例如按照图6~图9所示的流程图来执行。
另外,在转出判断处理(S602)中,读地址所表示的区域的属性已被判断了的情况下,在存储器访问请求的判断处理(S603)结束后也可以不进行属性的取得处理(S101)及属性的判断处理(S102),而执行各自的读出处理。
接着,使用图21~图26对转出判断处理(S602)的详细情况进行说明。在转出判断处理中,将图17所示的判断表表示的条件以怎样的顺序判断都可以。但是,在如“All Sync”条件那样满足了条件的情况下,优选的是优先进行将保持在全部缓冲器中的数据转出等、之后不需要判断其他条件的处理。
图21是表示本实施方式的缓冲存储器装置400的属性判断处理的流程图。该图表示基于图17的“Uncache”条件的转出判断处理。
如果存储器访问信息输入到判断部420中,则属性判断部421判断存储器访问请求中包含的地址所表示的区域的属性是否是不可成组属性(S701)。在该地址所表示的区域的属性是不可成组属性的情况下(S701中否),执行其他判断处理。
在判断为存储器访问请求中包含的地址所表示的区域的属性是不可成组属性的情况下(S701中是),控制部430从保持有对应于由与发出了该存储器访问请求的逻辑处理器相同的逻辑处理器发出的存储器访问请求的数据的STB中,将所保持的数据转出到主存储器20中(S702)。另外,控制部430使用处理器判断部422的判断结果确定多个STB450中的、作为转出对象的STB,由此执行数据的转出。如果该转出结束,则执行其他判断处理。
图22是表示本实施方式的缓冲存储器装置400的命令判断处理的流程图。该图表示基于图17的“All Sync”条件和“Self Sync”条件的转出判断处理。
如果存储器访问信息输入到判断部420中,则命令判断部423判断在存储器访问请求中包含的命令中是否包含不论其他条件如何都将数据转出的命令即“Sync”命令(S801)。在存储器访问请求中不包含“Sync”命令的情况下(S801中否),执行其他判断处理。
在存储器访问请求中包含有“Sync”命令的情况下(S801中是),命令判断部423判断“Sync”命令是“All Sync”命令还是“Self Sync”命令(S802)。在“Sync”命令是“All Sync”命令的情况下(在S802中“All Sync”),控制部430从全部STB450转出全部数据(S803)。
在“Sync”命令是“Self Sync”命令的情况下(S802中“Self Sync”),控制部430从保持有对应于由与发出了该存储器访问请求的逻辑处理器相同的逻辑处理器发出的存储器访问请求的数据的STB,将所保持的数据转出到主存储器20中(S804)。另外,控制部430利用处理器判断部422的判断结果确定多个STB450中的、作为转出对象的STB,由此执行数据的转出。
如果数据的转出结束,则执行其他判断处理。
图23是表示本实施方式的缓冲存储器装置400的读地址判断处理的流程图。该图表示基于图17的“RAW Hazard”条件的转出判断处理。另外,“RAW Hazard”条件是在缓冲存储器装置400接收到读请求的情况下判断的条件。即,在命令判断部423判断为存储器访问请求是读请求的情况下执行。
地址判断部424判断该读请求中包含的读地址是否与保持在STB450中的写地址一致(S901)。在判断为该读地址与保持在STB450中的写地址不一致的情况下(S901中否),执行其他判断处理。
在判断为读地址与保持在STB450中的写地址一致的情况下(S901中是),控制部430将到Hazard行为止的数据全部、即将与一致的写地址对应的写数据以前保持的全部数据从STB450转出(S902)。如果数据的转出结束,则执行其他判断处理。
图24是表示本实施方式的缓冲存储器装置400的写地址判断处理的流程图。该图表示基于图17的“Another Line Access”条件的转出判断处理。另外,“Another Line Access”条件是在缓冲存储器装置400接收到写请求的情况下判断的条件。即,在命令判断部423判断为存储器访问请求是写请求的情况下执行。
地址判断部424判断该写请求中包含的写地址是否与紧前输入的写请求中包含的写地址连续(S1001)。在两个地址连续的情况下(S1001中否),执行其他判断处理。
在两个地址不连续的情况下(S1001中是),控制部430将包括与紧前输入的写请求对应的写数据的、其以前的数据全部从STB450转出(S1002)。如果数据的转出结束,则执行其他判断处理。
图25是表示本实施方式的缓冲存储器装置400的缓冲量判断处理的流程图。该图表示基于图17的“Slot Full”条件的转出判断处理。
“Slot Full”条件与其他条件不同,不是基于存储器访问信息、而是基于从STB450得到的缓冲量信息判断的条件。因而,不限于缓冲存储器装置400接收到存储器访问请求的情况,也可以以任意的定时、或向STB450写入了数据等时判断。
缓冲量判断部425经由控制部430从STB450取得缓冲量信息,按每个STB判断缓冲量是否为满(S1101)。在缓冲量不满的情况下(S1101中否),缓冲存储器装置400在接收到存储器访问请求的情况下执行其他判断处理。
在缓冲量为满的情况下(S1101中是),控制部430从多个STB450中的、缓冲量为满的STB转出数据(S1102)。如果数据的转出结束,则执行其他判断处理。
图26是表示本实施方式的缓冲存储器装置400的处理器判断处理的流程图。该图表示基于图17的“同LP、不同PP”条件的转出判断处理。
如果存储器访问信息输入到判断部420中,则处理器判断部422判断在STB450中是否保持有对应于由与发出存储器访问请求的物理处理器不同的物理处理器、并且与发出该存储器访问请求的逻辑处理器相同的逻辑处理器在以前发出的存储器访问请求的写数据(S1201)。在STB450中没有保持有该写数据的情况下(S1201中否),执行其他判断处理。
在STB450中保持有从相同的逻辑处理器、并且不同的物理处理器输出的写数据的情况下(S1201中是),从保持有该写数据的STB转出数据(S1202)。如果数据的转出结束,则执行其他判断处理。
如果以上的图21~图26所示的判断处理全部结束,则转出判断处理(图19的S602)结束。
在不满足以上的转出判断处理所示的条件的情况下,对应于写请求的写数据保持在STB450中。即,所输入的较小的尺寸的写数据在STB450中被合并,成为较大的尺寸的数据。并且,在满足上述某个条件的时点,该数据成组写入到主存储器20。
另外,在以上的说明中,每当满足各判断条件就将数据转出到主存储器20中,但也可以在判断了全部的判断条件后,将对应于满足的条件的数据一起转出到主存储器20中。
如上所述,本实施方式的缓冲存储器装置400具备分别对应于多个处理器10的STB450,使各STB450将从处理器10输出的写数据进行合并并保持。并且,在满足了规定的条件的情况下,从STB450将合并后的数据成组写入主存储器20。
由此,能够将通过将较小的尺寸的写数据合并而得到的较大的数据成组写入主存储器20,所以与将较小的尺寸的数据分别写入的情况相比,能够提高数据的传输效率。此外,通过具备从STB450读出数据的条件,能够保证从多个处理器输出的写数据的相关性。特别是,在存储器访问请求由相同的逻辑处理器、但不同的物理处理器发出的情况下,将保持在STB450中的数据转出,从而即使在利用多个处理器执行的多线程、或多处理器的存储器系统的情况下,也能够保证数据的相关性。
以上,基于实施方式对本发明的缓冲存储器装置及存储器系统进行了说明,但本发明并不限定于这些实施方式。只要不脱离本发明的主旨,对该实施方式实施了本领域的技术人员想到的各种变形的形态、将不同的实施方式的构成要素组合而构建的形态也包含在本发明的范围内。
此外,在各实施方式中,存储器访问请求的发出源也可以是CPU等的处理器、以及DMAC等任何主机。
此外,在各实施方式中,对L2高速缓冲器40具备各实施方式的缓冲存储器140、PFB334或PFB470的结构进行了说明,但L1高速缓冲器30也可以具备该缓冲存储器140、PFB334或PFB470。此时,存储器系统也可以不具备L2高速缓冲器40。
此外,也可以在具备第3级高速缓冲器以上的高速缓冲器的存储器系统中采用本发明。在此情况下,最大等级的高速缓冲器、即最接近于主存储器20的高速缓冲器优选具备各实施方式的缓冲存储器140、PFB334或PFB470。
另外,本发明不仅能够如上述那样作为缓冲存储器装置、存储器系统及数据读出方法来实现,也可以作为用来使计算机执行本实施方式的数据读出方法的程序来实现。此外,也可以作为记录该程序的计算机可读出的CD-ROM等的记录介质来实现。进而,也可以作为表示该程序的信息、数据或信号来实现。并且,也可以将这些程序、信息、数据及信号经由因特网等的通信网络分发。
此外,本发明也可以将构成缓冲存储器装置的构成要素的一部分或全部通过1个系统LSI(Large Scale Integration)构成。系统LSI是将多个构成部分集成在1个芯片上而制造的超多功能LSI,具体而言是包括微处理器、ROM及RAM等而构成的计算机系统。
工业实用性
本发明的缓冲存储器装置及存储器系统用于在CPU等的处理器与主存储器之间进行数据的传输的系统中,例如能够用在计算机等中。
符号说明
10、10a、10b、10c、310a、310b、610 处理器
20、320、620 主存储器
21、621 可高速缓冲区域
22、622 不可高速缓冲区域
23 可成组区域
24 不可成组区域
30、311 L1高速缓冲器
40、330 L2高速缓冲器
100、200、400 缓冲存储器装置
110 属性取得部
120、332a、332b、421 属性判断部
130、230 数据读出部
131 第1数据读出部
132 第2数据读出部
133、233 第3数据读出部
140 缓冲存储器
150、335、460、611 高速缓冲存储器
160 表保持部
161 区域属性表
170 属性设定部
300 存储器系统
312 TLB
313 地址变换表
331a、331b 队列
333a、333b 选择器
334、470 PFB
336 存储器接口
410 存储器访问信息取得部
420 判断部
422 处理器判断部
423 命令判断部
424 地址判断部
425 缓冲量判断部
426 判断结果输出部
430 控制部
440 数据传输部
441 第1数据传输部
442 第2数据传输部
443 第3数据传输部
450、450a、450b、450c STB
501、502 存储器访问信息
612 通用寄存器

Claims (17)

1.一种缓冲存储器装置,根据来自处理器的读请求,从由属于可高速缓冲属性和不可高速缓冲属性中的某一个属性的多个区域构成的主存储器或外围设备读出数据,具备:
属性取得部,取得上述读请求中包含的读地址所表示的区域的属性;
属性判断部,判断由上述属性取得部取得的属性是否是第1属性,该第1属性为上述不可高速缓冲属性,并且表示保持应成组传输的数据;
数据读出部,在由上述属性判断部判断为由上述属性取得部取得的属性是上述第1属性的情况下,将包含上述读地址所表示的区域中保持的数据的数据成组读出;以及
第1缓冲存储器,保持由上述数据读出部成组读出的数据。
2.如权利要求1所述的缓冲存储器装置,其中,
上述属性判断部判断由上述属性取得部取得的属性是第2属性还是上述第1属性,上述第2属性是上述不可高速缓冲属性,并且表示不保持应成组传输的数据;
上述数据读出部还在由上述属性判断部判断为由上述属性取得部取得的属性是上述第2属性的情况下,仅将上述读地址所表示的区域中保持的数据读出。
3.如权利要求2所述的缓冲存储器装置,其中,
上述缓冲存储器装置还具备表保持部,该表保持部保持将上述主存储器或上述外围设备的地址、与表示该地址所表示的区域的属性是上述第1属性、上述第2属性、以及表示是上述可高速缓冲属性的第3属性中的哪一个属性的属性信息对应起来的表;
上述属性取得部通过参照上述表保持部中保持的表,取得上述读地址所表示的区域的属性。
4.如权利要求3所述的缓冲存储器装置,其中,
上述缓冲存储器装置还具备高速缓冲存储器;
上述属性判断部判断由上述属性取得部取得的属性是上述第1属性、上述第2属性、以及上述第3属性中的哪一个属性;
上述数据读出部还在由上述属性判断部判断为由上述属性取得部取得的属性是上述第3属性的情况下,将包含上述读地址所表示的区域中保持的数据的数据成组读出;
上述高速缓冲存储器保持由上述数据读出部成组读出的数据中的、包含上述读地址所表示的区域中保持的数据的第1数据;
上述第1缓冲存储器保持由上述数据读出部成组读出的数据中的、除上述第1数据以外的第2数据。
5.如权利要求3所述的缓冲存储器装置,其中,
上述缓冲存储器装置还具备属性设定部,该属性设定部将上述主存储器或上述外围设备的地址、与该地址所表示的区域的属性设定为上述第1属性、上述第2属性、以及上述第3属性中的某一个属性,从而生成上述表;
上述表保持部保持由上述属性设定部生成的表。
6.如权利要求1所述的缓冲存储器装置,其中,
上述数据读出部在由上述属性判断部判断为由上述属性取得部取得的属性是上述第1属性的情况下,进一步判断上述读地址所表示的区域中保持的数据是否已保持在上述第1缓冲存储器中,在该数据已保持在上述第1缓冲存储器中的情况下,从上述第1缓冲存储器读出该数据,在该数据未保持在上述第1缓冲存储器中的情况下,将包含该数据的数据成组读出。
7.如权利要求1所述的缓冲存储器装置,其中,
上述属性取得部还取得来自上述处理器的写请求中包含的写地址所表示的区域的属性;
上述缓冲存储器装置还具备:
第2缓冲存储器,在由上述属性判断部判断为由上述属性取得部取得的属性中的、上述写地址所表示的区域的属性是上述第1属性的情况下,保持用于写入上述主存储器或上述外围设备中的与上述写请求对应的写数据;
存储器访问信息取得部,取得表示来自上述处理器的上述读请求或上述写请求即存储器访问请求的性质的存储器访问信息;
条件判断部,判断由上述存储器访问信息取得部取得的存储器访问信息所表示的性质、或者由上述属性取得部取得的属性是否满足预先设定的条件;以及
控制部,在由上述条件判断部判断为上述存储器访问信息所表示的性质满足上述条件的情况下,将上述第2缓冲存储器中保持的写数据转出到上述主存储器或上述外围设备。
8.如权利要求7所述的缓冲存储器装置,其中,
上述存储器访问信息取得部取得表示发出了上述存储器访问请求的逻辑处理器及物理处理器的处理器信息,作为上述存储器访问信息;
上述条件判断部在上述第2缓冲存储器中保持有对应于由与上述处理器信息所表示的物理处理器不同的物理处理器、并且与上述处理器信息所表示的逻辑处理器相同的逻辑处理器以前发出的写请求的写数据的情况下,判断为满足上述条件;
上述控制部在由上述条件判断部判断为满足上述条件的情况下,将满足上述条件的第2缓冲存储器中保持的数据转出到上述主存储器或上述外围设备中。
9.如权利要求7所述的缓冲存储器装置,其中,
上述条件判断部判断上述存储器访问信息中是否包含有用于将上述第2缓冲存储器中保持的数据转出到上述主存储器或上述外围设备中的命令信息;
上述控制部在由上述条件判断部判断为上述存储器访问信息中包含有上述命令信息的情况下,将上述命令信息所表示的第2缓冲存储器中保持的数据转出到上述主存储器或上述外围设备中。
10.如权利要求7所述的缓冲存储器装置,其中,
上述存储器访问信息取得部还取得表示发出了上述存储器访问请求的处理器的处理器信息,作为上述存储器访问信息;
上述条件判断部还判断上述属性信息所表示的属性是否是上述第1属性;
上述控制部还在由上述条件判断部判断为由上述属性取得部取得的属性是上述第1属性的情况下,将与上述处理器信息所表示的处理器对应的第2缓冲存储器中保持的数据转出到上述主存储器或上述外围设备中。
11.如权利要求7所述的缓冲存储器装置,其中,
上述第2缓冲存储器还保持对应于上述写数据的写地址;
上述存储器访问信息取得部还在上述存储器访问请求包含读请求的情况下,取得该读请求中包含的读地址,作为上述存储器访问信息;
上述条件判断部判断在上述第2缓冲存储器中是否保持有与上述读地址一致的写地址;
上述控制部在由上述条件判断部判断为在上述第2缓冲存储器中保持有与上述读地址一致的写地址的情况下,将与上述写地址对应的写数据及其以前保持在上述第2缓冲存储器中的数据转出到上述主存储器或上述外围设备中。
12.如权利要求7所述的缓冲存储器装置,其中,
上述存储器访问信息取得部还在上述存储器访问请求包含写请求的情况下,取得该写请求中包含的第1写地址;
上述条件判断部判断上述第1写地址是否与紧前输入的写请求中包含的第2写地址连续;
上述控制部在由上述条件判断部判断为上述第1写地址和上述第2写地址连续的情况下,将与上述第2写地址对应的写数据及其以前保持在上述第2缓冲存储器中的数据转出到上述主存储器或上述外围设备中。
13.如权利要求7所述的缓冲存储器装置,其中,
上述条件判断部还判断上述第2缓冲存储器中保持的数据的数据量是否达到了规定的阈值;
上述控制部还在由上述条件判断部判断为上述数据量达到了上述阈值的情况下,将上述第2缓冲存储器中保持的数据转出到上述主存储器或上述外围设备中。
14.如权利要求1所述的缓冲存储器装置,其中,
上述缓冲存储器装置还具备无效化部,该无效化部判断来自上述处理器的写请求中包含的写地址是否与对应于上述第1缓冲存储器中保持的数据的地址一致,在上述写地址与对应于上述第1缓冲存储器中保持的数据的地址一致的情况下,使上述第1缓冲存储器中保持的数据无效化。
15.一种存储器系统,具备处理器、以及由属于可高速缓冲属性及不可高速缓冲属性中的某一个属性的多个区域构成的主存储器或外围设备,根据来自上述处理器的读请求,从上述主存储器或上述外围设备读出数据,具备:
属性取得部,取得来自上述处理器的读请求中包含的读地址所表示的区域的属性;
属性判断部,判断由上述属性取得部取得的属性是否是第1属性,该第1属性是上述不可高速缓冲属性、并且表示保持应成组传输的数据;
数据读出部,在由上述属性判断部判断为由上述属性取得部取得的属性是上述第1属性的情况下,将包含上述读地址所表示的区域中保持的数据的数据成组读出;以及
缓冲存储器,保持由上述数据读出部成组读出的数据;
上述数据读出部在由上述属性判断部判断为由上述属性取得部取得的属性是上述第1属性的情况下,进一步判断上述读地址所表示的区域中保持的数据是否已保持在上述缓冲存储器中,在该数据已保持在上述缓冲存储器中的情况下,从上述缓冲存储器读出该数据,在该数据未保持在上述缓冲存储器中的情况下,将包含该数据的数据成组读出。
16.如权利要求15所述的存储器系统,其中,
上述存储器系统还具备多个高速缓冲器;
上述多个高速缓冲器之中最接近于上述主存储器或上述外围设备的高速缓冲器具备上述缓冲存储器。
17.一种数据读出方法,根据来自处理器的读请求,从由属于可高速缓冲属性和不可高速缓冲属性中的某一个属性的多个区域构成的主存储器或外围设备读出数据,该方法包括:
属性取得步骤,取得来自上述处理器的读请求中包含的读地址所表示的区域的属性;
属性判断步骤,判断在上述属性取得步骤中取得的属性是否是第1属性,该第1属性是上述不可高速缓冲属性、并且表示保持应成组传输的数据;
判断步骤,在上述属性判断步骤中判断为上述属性取得步骤中取得的属性是上述第1属性的情况下,判断上述读地址所表示的区域中保持的数据是否已保持在上述缓冲存储器中;以及
数据读出步骤,在上述判断步骤中判断为该数据已保持在缓冲存储器中的情况下,从上述缓冲存储器读出该数据,在判断为该数据未保持在上述缓冲存储器中的情况下,将包含该数据的数据成组读出,并将成组读出的数据保存到上述缓冲存储器中。
CN2009801365185A 2008-09-18 2009-09-15 缓冲存储器装置、存储器系统以及数据读出方法 Pending CN102160041A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008239927 2008-09-18
JP2008-239927 2008-09-18
PCT/JP2009/004595 WO2010032433A1 (ja) 2008-09-18 2009-09-15 バッファメモリ装置、メモリシステム及びデータ読出方法

Publications (1)

Publication Number Publication Date
CN102160041A true CN102160041A (zh) 2011-08-17

Family

ID=42039282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801365185A Pending CN102160041A (zh) 2008-09-18 2009-09-15 缓冲存储器装置、存储器系统以及数据读出方法

Country Status (5)

Country Link
US (1) US20110167223A1 (zh)
JP (1) JPWO2010032433A1 (zh)
CN (1) CN102160041A (zh)
TW (1) TW201015579A (zh)
WO (1) WO2010032433A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649138A (zh) * 2015-10-13 2017-05-10 株式会社艾库塞尔 信息处理装置以及信息处理方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019381B2 (en) 2012-05-01 2018-07-10 Nvidia Corporation Cache control to reduce transaction roll back
JP6127907B2 (ja) * 2012-11-12 2017-05-17 富士通株式会社 演算処理装置及び演算処理装置の制御方法
WO2014106871A1 (en) 2013-01-07 2014-07-10 Hitachi, Ltd. Storage system which realizes asynchronous remote copy using cache memory composed of flash memory, and control method thereof
US10366244B2 (en) * 2015-06-09 2019-07-30 International Business Machines Corporation Performing an operation on sensitive data
US10120808B2 (en) * 2016-04-22 2018-11-06 Arm Limited Apparatus having cache memory disposed in a memory transaction path between interconnect circuitry and a non-volatile memory, and corresponding method
CN113515474A (zh) * 2021-07-30 2021-10-19 上海阵量智能科技有限公司 数据处理装置、方法、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348593A (ja) * 1993-06-03 1994-12-22 Sumitomo Electric Ind Ltd データ転送制御装置
US5418755A (en) * 1993-07-07 1995-05-23 Vertex Semiconductor Corporation Memory buffer having selective flush capability
US6173368B1 (en) * 1995-12-18 2001-01-09 Texas Instruments Incorporated Class categorized storage circuit for storing non-cacheable data until receipt of a corresponding terminate signal
US6205517B1 (en) * 1996-04-10 2001-03-20 Hitachi, Ltd. Main memory control apparatus for use in a memory having non-cacheable address space allocated to DMA accesses
JP2004240520A (ja) * 2003-02-04 2004-08-26 Renesas Technology Corp ノンキャッシュ領域内高速メモリアクセス方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3820078A (en) * 1972-10-05 1974-06-25 Honeywell Inf Systems Multi-level storage system having a buffer store with variable mapping modes
US4195342A (en) * 1977-12-22 1980-03-25 Honeywell Information Systems Inc. Multi-configurable cache store system
EP0500967B1 (en) * 1990-09-18 2001-07-25 Fujitsu Limited Method of nonsynchronous access to shared memory
US6108755A (en) * 1990-09-18 2000-08-22 Fujitsu Limited Asynchronous access system to a shared storage
JP2917659B2 (ja) * 1992-03-31 1999-07-12 日本電気株式会社 情報処理装置
JP3886189B2 (ja) * 1995-12-18 2007-02-28 テキサス インスツルメンツ インコーポレイテツド バースト可でキャッシュ不可のメモリアクセスを支援するマイクロプロセッサ装置
US5911151A (en) * 1996-04-10 1999-06-08 Motorola, Inc. Optimizing block-sized operand movement utilizing standard instructions
JPH10187532A (ja) * 1996-12-19 1998-07-21 Nec Corp 2次キャッシュ装置
EP0886216A1 (en) * 1997-06-06 1998-12-23 Texas Instruments Incorporated Microprocessor comprising means for storing non-cacheable data
US7538772B1 (en) * 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
JP4024247B2 (ja) * 2002-09-30 2007-12-19 株式会社ルネサステクノロジ 半導体データプロセッサ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348593A (ja) * 1993-06-03 1994-12-22 Sumitomo Electric Ind Ltd データ転送制御装置
US5418755A (en) * 1993-07-07 1995-05-23 Vertex Semiconductor Corporation Memory buffer having selective flush capability
US6173368B1 (en) * 1995-12-18 2001-01-09 Texas Instruments Incorporated Class categorized storage circuit for storing non-cacheable data until receipt of a corresponding terminate signal
US6205517B1 (en) * 1996-04-10 2001-03-20 Hitachi, Ltd. Main memory control apparatus for use in a memory having non-cacheable address space allocated to DMA accesses
JP2004240520A (ja) * 2003-02-04 2004-08-26 Renesas Technology Corp ノンキャッシュ領域内高速メモリアクセス方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649138A (zh) * 2015-10-13 2017-05-10 株式会社艾库塞尔 信息处理装置以及信息处理方法

Also Published As

Publication number Publication date
TW201015579A (en) 2010-04-16
US20110167223A1 (en) 2011-07-07
JPWO2010032433A1 (ja) 2012-02-02
WO2010032433A1 (ja) 2010-03-25

Similar Documents

Publication Publication Date Title
CN101601019B (zh) 使用探听请求高速缓冲存储器的探听过滤
CN102165425B (zh) 缓冲存储器装置、存储器系统及数据传输方法
US6457104B1 (en) System and method for recycling stale memory content in compressed memory systems
US9489239B2 (en) Systems and methods to manage tiered cache data storage
CN103069400B (zh) 具有可动态调整的移除度量的组合写入缓冲器
CN102160041A (zh) 缓冲存储器装置、存储器系统以及数据读出方法
TWI230862B (en) Translation lookaside buffer that caches memory type information
US9075730B2 (en) Mechanisms to bound the presence of cache blocks with specific properties in caches
US20070283108A1 (en) Memory Management System
US9792221B2 (en) System and method for improving performance of read/write operations from a persistent memory device
US6578111B1 (en) Cache memory system and method for managing streaming-data
TWI393050B (zh) 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統
JP2017045457A (ja) トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
JP2012533135A (ja) Tlbプリフェッチング
JP2012533124A (ja) ブロックベースの非透過的キャッシュ
JP2009020881A (ja) 可変のページサイズのメモリ編成を実装する処理システム
CN102968386B (zh) 数据供给设备、缓存设备及数据供给方法
EP3553665B1 (en) Non-volatile memory access method, device, and system
US10564871B2 (en) Memory system having multiple different type memories with various data granularities
US8275946B1 (en) Channel tags in memory components for optimizing logical to physical address translations
CN113039530A (zh) 压缩式存储系统的空闲空间管理
CN1331060C (zh) 具有分层存储器体系结构的数据处理系统和操作该系统的方法
US7949833B1 (en) Transparent level 2 cache controller
Lersch et al. Rethinking DRAM caching for LSMs in an NVRAM environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110817