缓冲存储器装置、存储器系统及数据传输方法

文档序号:6594986阅读:193来源:国知局
专利名称:缓冲存储器装置、存储器系统及数据传输方法
技术领域
本发明涉及缓冲存储器装置、存储器系统及数据传输方法,尤其涉及将从处理器输出的数据暂时保存在缓冲存储器中,将所保存的数据转出(清除掃t出t/flush)到主存储器的缓冲存储器装置、存储器系统及数据传输方法。
背景技术
近年来,为了使从微处理器向主存储器的存储器访问高速化,例如,采用由 SRAM (Static Random Access Memory :静态随机存取存储器)等构成的、能够快速动作的小容量的高速缓冲存储器(cache memory) 0例如,将高速缓冲存储器配置在微处理器的内部或者其附近,将在主存储器中保存的数据的一部分存储在高速缓冲存储器中,由此能够使存储器访问高速化。过去,公开了高速缓冲存储器具有用于暂时保存写入数据的缓冲存储器的一例即 STB (Store Buffer 存储缓冲器)的技术(参照专利文献1)。图18是表示现有的存储器系统的概况的框图。该图所示的存储器系统具有处理器310、主存储器320和高速缓存(cache) 330。高速缓存330具有STB331。在该图所示的存储器系统中,高速缓存330在向连续的地址进行写入数据的写入的情况下,将从处理器310发送来的写入数据合并,并暂时保存在STB331中。并且,高速缓存330将所保存的数据突发写入(burst write)到主存储器320中。例如,假设主存储器320与高速缓存330之间的数据总线宽度为1 字节。在此, 说明处理器310将多个4字节的写入数据写入主存储器320内的连续的地址所表示的连续区域中的情况。高速缓存330将4字节的写入数据合并,并保存在STB331中。并且,在被保存在STB331中的数据的大小(size)达到1 字节的情况下,高速缓存330将1 字节的数据突发写入到主存储器320中。如上所述,在现有的存储器系统中,将大小较小的写入数据合并,并且暂时保存, 将通过合并而得到的大小较大的数据突发写入到主存储器中。由此,能够有效利用数据总线等,能够提高存储器传输效率。现有技术文献专利文献专利文献1 日本特开2006-260159号公报发明概要发明要解决的问题但是,根据上述现有技术存在以下所述的问题。发出写请求的线程或者处理器等主机(master)有多个,在将来自多个主机的写入数据合并后保存的情况下,即,在属于多线程或者多处理器等多主机的情况下,对在缓冲存储器中保存的写入数据是基于由哪个主机发出的写请求的写入数据加以管理是很难的。另外,在由不同的主机执行相同线程的情况下等,将不能保持数据的一致性(coherence)。如上所述,现有的存储器系统存在如下问题,即对于将与由多个主机发出的写请求相对应的写入数据合并,并突发传输(burst transfer)所合并的写入数据的情况,不能适用。

发明内容
本发明就是为了解决上述问题而提出的,其目的在于,提供一种缓冲存储器装置、 存储器系统及数据传输方法,能够适用于将多个写入数据突发写入的情况,而且提高数据的传输效率。解决技术问题的手段为了解决上述问题,本发明的缓冲存储器装置,按照由多个处理器中的各个处理器发出的包括写请求或者读请求的存储器访问请求,在所述多个处理器与主存储器之间传输数据,所述缓冲存储器装置具有多个缓冲存储器,与所述多个处理器中的各个处理器分别对应,保存与由对应的处理器发出的写请求相对应的写入数据;存储器访问信息获取部, 获取表示所述存储器访问请求的性质的存储器访问信息;判定部,判定由所述存储器访问信息获取部获取的存储器访问信息表示的性质是否满足预先设定的条件;以及控制部,在由所述判定部判定为所述存储器访问信息表示的性质满足所述条件的情况下,将在所述多个缓冲存储器之中、与所述条件相对应的缓冲存储器中保存的数据转出到所述主存储器。由此,与多个处理器分别对应地设置缓冲存储器,而且根据规定的条件控制从缓冲存储器进行的数据的转出,由此能够容易进行从多个处理器输出的写入数据的管理、例如数据的一致性的保持等,并提高数据的传输效率。具体地讲,本发明的缓冲存储器装置具有将写入数据合并的功能,设置进行合并用的缓冲存储器,将合并后的数据突发传输给缓冲存储器,由此提高数据的传输效率。此时,设定用于确定在哪个定时从缓冲存储器转出数据的条件,所以能够在必要时或者为了保持一致性而执行数据的转出,因而能够提高数据的传输效率。并且,也可以是,所述多个处理器是多个物理处理器,所述多个缓冲存储器分别与所述多个物理处理器中的各个物理处理器对应,保存与由对应的物理处理器发出的写请求相对应的写入数据,所述存储器访问信息获取部获取表示发出了所述存储器访问请求的逻辑处理器及物理处理器的处理器信息,作为所述存储器访问信息,在与如下写请求相对应的写入数据被保存在所述多个缓冲存储器中的任意一个缓冲存储器中的情况下,所述判定部判定为满足所述条件,其中该写请求是由与所述处理器信息表示的物理处理器不同的物理处理器、而且是与所述处理器信息表示的逻辑处理器相同的逻辑处理器以前发出的写请求,在由所述判定部判定为满足所述条件的情况下,所述控制部将在满足所述条件的缓冲存储器中保存的数据转出到所述主存储器。由此,在产生了由不同的物理处理器、且相同的逻辑处理器发出的访问请求的情况下,将与以前发出的写请求对应的数据写入到主存储器中,由此能够保持数据的一致性。 因为在存储器访问请求是由相同的逻辑处理器、但却是不同的物理处理器发出的情况下, 有可能在不同的缓冲存储器中保存了从相同逻辑处理器输出的数据,在这种情况下,将不能保持各个缓冲存储器之间的数据的一致性。通过将在缓冲存储器中保存的数据转出到主存储器中,能够消除缓冲存储器之间的数据的一致性的问题。
并且,也可以是,所述判定部还判定所述存储器访问信息中是否包含命令信息,该命令信息用于将在至少一个所述缓冲存储器中保存的数据转出到所述主存储器,在由所述判定部判定为在所述存储器访问信息中包含所述命令信息的情况下,所述控制部还将在所述命令信息表示的缓冲存储器中保存的数据转出到所述主存储器。由此,能够容易根据来自处理器的指示将在缓冲存储器中保存的数据转出到主存储器中,能够将主存储器的数据更新为最新的数据。并且,也可以是,所述命令信息是用于将在所述多个缓冲存储器的全部缓冲存储器中保存的数据转出到所述主存储器的信息,在由所述判定部判定为在所述存储器访问信息中包含所述命令信息的情况下,所述控制部还将在所述多个缓冲存储器的全部缓冲存储器中保存的数据转出到所述主存储器。由此,能够将全部缓冲存储器的数据转出到主存储器,能够将主存储器的全部数据更新为最新的数据。并且,也可以是,在由所述判定部判定为在所述存储器访问信息中包含所述命令信息的情况下,所述控制部将在与发出了该存储器访问请求的处理器相对应的缓冲存储器中保存的数据转出到所述主存储器。由此,能够只指定规定的缓冲存储器,而将在该缓冲存储器中保存的数据转出到主存储器。因此,例如,能够将接下来处理器预定读出的数据等保存在主存储器中,而不是缓冲存储器中。并且,也可以是,所述主存储器包括多个属于可高速缓存属性和不可高速缓存属性中的任意一个属性的区域,所述存储器访问信息获取部还获取表示所述存储器访问请求中包含的地址示出的区域的属性的属性信息、和表示发出了该存储器访问请求的处理器的处理器信息,作为所述存储器访问信息,所述判定部还判定所述属性信息示出的属性是否是所述不可高速缓存属性、而且是否是表示保存应该突发传输的数据的不可突发属性,在由所述判定部判定为所述属性信息表示的属性是所述不可突发属性的情况下,所述控制部还将在与所述处理器信息表示的处理器相对应的缓冲存储器中保存的数据转出到所述主存储器。由此,能够保持处理器发出的写请求的顺序。因此,能够保持数据的一致性。并且,也可以是,所述多个缓冲存储器还保存与所述写入数据对应的写地址,在所述存储器访问请求包括读请求的情况下,所述存储器访问信息获取部还获取该读请求中包含的读地址,作为所述存储器访问信息,所述判定部判定与所述读地址一致的写地址是否被保存在所述多个缓冲存储器的至少一个缓冲存储器中,在由所述判定部判定为与所述读地址一致的写地址被保存在所述多个缓冲存储器的至少一个缓冲存储器中的情况下,所述控制部将在与所述写地址相对应的写入数据之前被保存在所述多个缓冲存储器中的数据转出到所述主存储器。由此,能够始终在从读地址表示的区域中读出数据之前,将该区域的数据更新为最新的数据,因而能够防止处理器读出旧的数据。并且,也可以是,在所述存储器访问请求包括写请求的情况下,所述存储器访问信息获取部还获取该写请求中包含的第1写地址,所述判定部判定所述第1写地址是否与此前刚刚输入的写请求中包含的第2写地址相连续,在由所述判定部判定为所述第1写地址
8与所述第2写地址相连续的情况下,所述控制部将在与所述第2写地址相对应的写入数据之前被保存在所述多个缓冲存储器中的数据转出到所述主存储器。由此,通常在处理器进行一系列的处理的情况下,往往向连续的地址表示的连续区域进行访问,因而在地址不连续的情况下,能够推测开始了与该一系列的处理不同的处理。因此,将与该一系列的处理相关的数据转出到主存储器。由此,能够在缓冲存储器中保存与其它处理相关的数据,能够有效利用缓冲存储器。并且,也可以是,所述判定部还判定在所述多个缓冲存储器的各个缓冲存储器中保存的数据的数据量是否达到规定的阈值,在由所述判定部判定为所述数据量达到所述阈值的情况下,所述控制部将在所述数据量达到所述阈值的缓冲存储器中保存的数据转出到所述主存储器。由此,当在缓冲存储器中保存的数据量达到合适的量的情况下,能够将数据转出。 例如,在数据量与能够在缓冲存储器中保存的数据的最大值、或者缓冲存储器和主存储器的数据总线宽度一致时,能够将数据转出。并且,也可以是,所述主存储器包括多个属于可高速缓存属性和不可高速缓存属性中任意一个属性的区域,所述缓冲存储器装置具有数据写入部,在所述写请求中包含的写地址示出的区域的属性是所述不可高速缓存属性、而且是表示保存应该突发传输的数据的不可突发属性的情况下,该数据写入部将与该写请求相对应的写入数据写入到所述多个缓冲存储器中,所述多个缓冲存储器保存由所述数据写入部写入的写入数据。由此,在向能够进行突发传输的区域写入数据的情况下,能够利用缓冲存储器。 即,能够按照主存储器的区域所属的每个属性,切换使用/不使用缓冲存储器。由此,能够有效利用缓冲存储器。并且,也可以是,所述缓冲存储器装置还具有高速缓冲存储器,在所述写地址表示的区域的属性是所述可高速缓存属性、且将与所述写请求相对应的写入数据同时写入到所述高速缓冲存储器和所述主存储器中的情况下,所述数据写入部还将与该写请求相对应的写入数据写入到所述多个缓冲存储器中,在由所述判定部判定为满足所述条件的情况下, 所述控制部将在满足所述条件的缓冲存储器中保存的数据转出到所述主存储器和所述高速缓冲存储器。由此,在进行将写入数据同时写入到高速缓冲存储器和主存储器中的处理(透写处理)的情况下,也能够利用缓冲存储器,能够进行从缓冲存储器向高速缓冲存储器的突发写入。并且,也可以是,所述缓冲存储器保存多个所述写请求中包含的多个写地址、和与该写请求对应的多个写入数据。由此,能够将多个写入数据与多个写地址相对应地保存在缓冲存储器中,因而能够管理写入数据,并且,能够将多个写入数据成批转出到主存储器。并且,也可以是,所述多个处理器是多个逻辑处理器,所述多个缓冲存储器分别与所述多个逻辑处理器中的各个逻辑处理器对应,并保存与由对应的逻辑处理器发出的写请求相对应的写入数据。并且,也可以是,所述多个处理器是与多个线程相对应的多个虚拟处理器,所述多个缓冲存储器分别与所述多个虚拟处理器中的各个虚拟处理器对应,并保存与由对应的虚拟处理器发出的写请求相对应的写入数据。由此,能够容易管理写入数据。并且,本发明也能够实现为具有上述的缓冲存储器装置、多个处理器和主存储器的存储器系统。并且,本发明也能够实现为数据传输方法,本发明的数据传输方法,按照由多个处理器中的各个处理器发出的包括写请求和读请求的存储器访问请求,在所述多个处理器与主存储器之间传输数据,所述数据传输方法包括存储器访问信息获取步骤,获取表示由所述多个处理器发出的存储器访问请求的性质的存储器访问信息;判定步骤,判定在所述存储器访问信息获取步骤中获取的存储器访问信息表示的性质是否满足预先设定的条件;以及转出步骤,在通过所述判定步骤判定为所述存储器访问信息表示的性质满足所述条件的情况下,将在多个缓冲存储器之中、与所述条件相对应的缓冲存储器中保存的数据转出到所述主存储器,其中所述多个缓冲存储器与所述多个处理器中的各个处理器分别对应,并保存着与由对应的处理器发出的写请求相对应的写入数据。并且,本发明也能够实现为使计算机执行数据传输方法中包含的步骤的程序。另外,本发明也能够实现为记录了该程序的计算机可读的⑶-ROM(Compact Disc-Read Only Memory :紧致盘只读存储器)等记录介质、以及表示该程序的信息、数据或者信号。并且,这些程序、信息、数据或者信号也可以通过因特网等通信网络进行发布。发明效果根据本发明的缓冲存储器装置、存储器系统以及数据传输方法,能够突发写入从多个主机输出的写入数据,能够提高存储器传输效率。


图1是表示包括本实施方式的处理器、主存储器及高速缓存的存储器系统的结构概况的框图。图2是表示对本实施方式的主存储器的区域设定的属性的图。图3是表示本实施方式的缓冲存储器装置的结构的框图。图4是表示本实施方式的存储器访问信息的一例的图。图5是表示本实施方式的缓冲存储器装置具有的缓冲存储器的概况的图。图6是表示示出本实施方式的多个判定条件的一例的判定表的图。图7是表示本实施方式的判定部的具体结构的框图。图8是表示本实施方式的缓冲存储器装置的动作的流程图。图9是表示本实施方式的缓冲存储器装置的写入处理的流程图。图10是表示本实施方式的缓冲存储器装置的读出处理的流程图。图11是表示本实施方式的缓冲存储器装置的属性判定处理的流程图。图12是表示本实施方式的缓冲存储器装置的命令判定处理的流程图。图13是表示本实施方式的缓冲存储器装置的读地址判定处理的流程图。图14是表示本实施方式的缓冲存储器装置的写地址判定处理的流程图。图15是表示本实施方式的缓冲存储器装置的缓冲量判定处理的流程图。图16是表示本实施方式的缓冲存储器装置的处理器判定处理的流程图。
图17是表示本实施方式的缓冲存储器装置具有的缓冲存储器的不同概况的图。图18是表示现有的存储器系统的概况的框图。
具体实施例方式下面,根据实施方式并参照附图,对本发明的缓冲存储器装置、存储器系统及数据传输方法进行详细说明。本实施方式的缓冲存储器装置暂时保存从处理器输出的用于写入到主存储器中的数据,在满足规定的条件的情况下,将所保存的数据突发写入。由此,能够有效利用数据总线,能够有效传输数据。首先,说明设有本实施方式的缓冲存储器装置的一般的存储器系统。图1是表示包括本实施方式的处理器、主存储器及高速缓存的存储器系统的结构概况的框图。如该图所示,本实施方式的存储器系统具有处理器10、主存储器20、L1 (一级) 高速缓存30、和L2 ( 二级)高速缓存40。本实施方式的缓冲存储器装置在图1所示的系统中,例如被设在处理器10和主存储器20之间。具体地讲,缓冲存储器装置具有的缓冲存储器被设于L2高速缓存40中。处理器10发出向主存储器20的存储器访问请求,并输出所发出的存储器访问请求。存储器访问请求例如是用于读出数据的读请求、或者是用于写入数据的写请求。读请求包括表示数据的读出目的地的区域的读地址,写请求包括表示数据的写入目的地的区域的写地址。另外,处理器10在输出写请求的情况下,按照该写请求输出用于写入主存储器 20的数据。主存储器20包括属于可高速缓存(cacheable)属性和不可高速缓存 (uncacheable)属性中任意一个属性的多个区域,是在该区域中存储程序或者数据等的 SDRAM (Synchronous Dynamic Random Access Memory :同步动态随机存取存储器)等大容量的主存储器。根据从处理器10输出的存储器访问请求(读请求或者写请求),执行从主存储器20读出数据或者向主存储器20写入数据。Ll高速缓存30和L2高速缓存40是存储处理器10从主存储器20读出的数据的一部分数据、以及向主存储器20写入的数据的一部分数据的SRAM等高速缓冲存储器。Ll 高速缓存30和L2高速缓存40是虽然容量比主存储器20小但是能够实现高速动作的高速缓冲存储器。并且,Ll高速缓存30是比L2高速缓存40更接近处理器10配置的优先度高的高速缓冲存储器,通常容量比L2高速缓存40小,但是能够实现高速动作。Ll高速缓存30获取从处理器10输出的存储器访问请求,并判定与所获取的存储器访问请求中包含的地址对应的数据已经保存(命中hit)还是没有保存(未命中 miss)。例如,在读请求已命中的情况下,Ll高速缓存30从Ll高速缓存30内部读出与该读请求中包含的读地址对应的数据,将所读出的数据输出给处理器10。另外,所说与读地址对应的数据是指在读地址表示的区域中存储的数据。在写请求已命中的情况下,Ll高速缓存30将与该写请求对应的数据写入Ll高速缓存30内部。所说与写请求对应的数据是指与该写请求同时从处理器10输出的数据(以下也记述为写入数据)。在读请求未命中的情况下,Ll高速缓存30从L2高速缓存40或者主存储器20读出与该读请求对应的数据,将所读出的数据输出给处理器10。所说与读请求对应的数据是
11指在该读请求中包含的读地址表示的主存储器20的区域中保存的数据(以下也记述为读出数据)。在写请求未命中的情况下,Ll高速缓存30进行重填(refill)处理,并更新标签 (tag)地址,写入与该写请求同时从处理器10输出的数据。L2高速缓存40获取从处理器10输出的存储器访问请求,并判定所获取的存储器访问请求已命中还是未命中。在读请求已命中的情况下,L2高速缓存40从L2高速缓存40 内部读出与该读请求中包含的读地址对应的数据,通过Ll高速缓存30将所读出的数据输出给处理器10。在写请求已命中的情况下,通过Ll高速缓存30将与该写请求对应的数据写入L2高速缓存40内部。在读请求未命中的情况下,L2高速缓存40从主存储器20读出与该读请求对应的数据,通过Ll高速缓存30将所读出的数据输出给处理器10。在写请求未命中的情况下, L2高速缓存40进行重填处理,并通过Ll高速缓存30更新标签地址,写入与该写请求对应的数据。另外,在图1所示的存储器系统中进行用于使主存储器20与Ll高速缓存30与L2 高速缓存40具有一致性的处理。例如,按照写请求而被写入高速缓冲存储器的数据,通过回写(write back)处理或者透写(write through)处理,被写入到主存储器20中。另外, 回写处理是指在向高速缓冲存储器写入数据后,在任意的定时将数据写入主存储器中的处理。透写处理是指同时执行向高速缓冲存储器的数据写入和向主存储器的数据写入的处理。并且,在写请求未命中的情况下,处理器10也可以向主存储器20写入数据,而不对Ll高速缓存30进行重填及更新。对于L2高速缓存40进行相同的处理。另外,在图1中示出了 Ll高速缓存30被设于处理器10的外部的结构,但也可以是处理器10具有Ll高速缓存30。并且,不限于主存储器20,也可以是与IO设备等其它外围设备之间传输数据。外围设备是指与处理器10之间进行数据的传输的设备,例如键盘、鼠标、显示器或者软盘(注册商标)驱动器等。下面,说明本实施方式的主存储器20。图2是表示对本实施方式的地址空间设定的属性的图。地址空间的区域被分配给主存储器20及其外围设备等。如该图所示,主存储器20由可高速缓存区域21和不可高速缓存区域22构成。可高速缓存区域21是指属于可高速缓存属性的区域,该可高速缓存属性表示能够保存应该在Ll高速缓存30和L2高速缓存40等高速缓冲存储器中进行高速缓存的数据。不可高速缓存区域22是指属于不可高速缓存属性的区域,该不可高速缓存属性表示能够保存不应该在Ll高速缓存30和L2高速缓存40等高速缓冲存储器中进行高速缓存的数据。不可高速缓存区域22由可突发区域23和不可突发区域M构成。可突发区域23是指属于可突发属性的区域,该可突发属性表示能够保存不应该在高速缓冲存储器中进行高速缓存、而应该突发传输的数据。突发传输是指将数据成批进行传输,是突发读出及突发写入等。可突发区域23例如是非读敏感的区域。另外,读敏感 (read sensitive)的区域是指仅仅进行读出,所保存的数据的值就发生变化的区域。不可突发区域M是指属于不可突发属性的区域,该不可突发属性表示不能保存不应该在高速缓冲存储器中进行高速缓存、而应该突发传输的数据。不可突发区域M例如是读敏感的区域。如上所述,本实施方式的主存储器20按每个区域设定3个排他性的属性中的任意一个属性。另外,对主存储器20的属性设定例如由处理器10具有的存储器管理单元(MMU Memory Management Unit)进行。也可以是,处理器10具有存储使物理地址与虚拟地址相对应的地址转换表的TLB (Translation Lookaside Buffer 翻译后备缓冲器),在该地址转换表中存储属性。下面,说明本实施方式的缓冲存储器装置的结构。图3是表示本实施方式的缓冲存储器装置的结构的框图。该图的缓冲存储器装置 100按照由多个处理器10a、IObUOc各自发出的存储器访问请求,在多个处理器10a、10b、 IOc与主存储器20之间传输数据。下面,在不需要特别区分多个处理器10a、10b、10c进行说明的情况下,记述为处理器10。另外,假设缓冲存储器装置100被设于与图1所示的L2高速缓存40相同的芯片中。并且,假设图1所示的Ll高速缓存30分别设于多个处理器10a、10b、IOc中,在图3中没有示出。但是,也可以是Ll高速缓存30被设于多个处理器10a、IObUOc与缓冲存储器装置100之间,并由多个处理器10a、10b、IOc共用。如图3所示,缓冲存储器装置100具有存储器访问信息获取部110、判定部120、控制部130、数据传输部140、缓冲存储器150a、150b、150c、以及高速缓冲存储器160。下面, 在不需要特别区分多个缓冲存储器150a、150b、150c进行说明的情况下,记述为缓冲存储器 150。存储器访问信息获取部110从处理器10获取存储器访问请求,从获取到的存储器访问请求中,获取表示由处理器10发出的存储器访问请求的性质的存储器访问请求信息。存储器访问请求信息是指存储器访问请求中包含的信息以及其附带的信息,包括命令信息、地址信息、属性信息、处理器信息等。命令信息是指表示存储器访问请求是写请求还是读请求、以及与数据传输相关的其它命令等的信息。地址信息是指表示写入数据的区域的写地址、或者表示读出数据的区域的读地址的信息。属性信息是指表示由写地址或者读地址示出的区域的属性是可高速缓存属性、可突发属性及不可突发属性中的哪种属性的信息。处理器信息是指表示发出了存储器访问请求的线程、逻辑处理器(LP=Logical Processor)及物理处理器(PP=Physical Processor)的信息。另外,属性信息也可以不包含于存储器访问请求中。在这种情况下,存储器访问信息获取部110可以保存使主存储器20的地址与该地址表示的区域的属性相对应的表,参照地址信息和该表,由此获取属性信息。在此参照图4。图4是表示本实施方式的存储器访问信息的一例的图。该图示出了存储器访问信息201及202。存储器访问信息201表示存储器访问请求是由物理处理器“PP1”的逻辑处理器 “LP1”发出的写请求,并包括表示向“写地址1”示出的属于可突发属性的区域写入数据的写入命令。并且,存储器访问信息201表示该写请求中包含“All Sync”命令。存储器访问信息202表示存储器访问请求是由物理处理器“PP1”的逻辑处理器“LP1”发出的读请求,并包括表示从“读地址1”示出的属于可突发属性的区域读出数据的读出命令。并且,存储器访问信息202表示该读请求中包含“Self Sync”命令。另外,关于“All Sync”及“Self Sync”命令将在后面进行说明。返回图3,判定部120判定由存储器访问信息获取部110获取的存储器访问信息表示的性质是否满足预先设定的条件。具体地讲,判定部120使用作为存储器访问信息而获取的命令信息、属性信息、地址信息及处理器信息等、以及通过控制部130从缓冲存储器 150获取的缓冲量信息,进行条件的判定。关于条件以及判定部120的处理的详细情况将在后面进行说明。另外,缓冲量信息是指表示在各个缓冲存储器150中保存的数据的量的信肩、ο在由判定部120判定为存储器访问信息表示的性质满足条件的情况下,控制部 130将在多个缓冲存储器150a、150b、150c中、与该条件对应的缓冲存储器中保存的数据转出到主存储器中。具体地讲,控制部130向缓冲存储器150输出转出命令。转出命令被输出给成为转出数据的对象的缓冲存储器,接收到转出命令的缓冲存储器将保存的数据输出给主存储器20。并且,控制部130向数据传输部140输出控制信息,由此控制数据传输部140。例如,控制信息至少包括属性信息,控制部130根据地址表示的区域的属性,确定写入数据的写入目的地以及读出数据的读出目的地等。另外,控制部130将在多个缓冲存储器150a、150b、150c中分别保存的数据的量即缓冲量输出给判定部120。数据传输部140按照控制部130的控制,在处理器10与主存储器20之间传输数据。具体地讲,在从处理器10输出了写请求的情况下,为了写入主存储器20中,将从处理器10输出的写入数据写入缓冲存储器150、高速缓冲存储器160及主存储器20任意一方。 并且,在从处理器10输出了读请求的情况下,从高速缓冲存储器160及主存储器20任意一方将读出数据读出,将所读出的读出数据输出给处理器10。关于利用哪个存储器,由控制部 130根据地址表示的区域的属性来确定。如图3所示,数据传输部140具有第1数据传输部141、第2数据传输部142和第 3数据传输部143。在地址表示的区域属于可突发属性的情况下,第1数据传输部141进行数据的传输。在被输入了写请求的情况下,第1数据传输部141向缓冲存储器150写入与该写请求对应的写入数据。关于向多个缓冲存储器150a、150b、150c中的哪一个缓冲存储器写入,根据控制信息中包含的处理器信息确定。具体地讲,将写入数据写入与发出了写请求的处理器相对应的缓冲存储器中。在被输入了读请求的情况下,第1数据传输部141从主存储器 20读出与该读请求对应的读出数据,将所读出的读出数据输出给处理器10。在地址表示的区域属于不可突发属性的情况下,第2数据传输部142进行数据的传输。在被输入了写请求的情况下,第2数据传输部142向主存储器20写入与该写请求对应的写入数据。在被输入了读请求的情况下,第2数据传输部142从主存储器20读出与该读请求对应的读出数据,将所读出的读出数据输出给处理器10。在地址表示的区域属于可高速缓存属性的情况下,第3数据传输部143进行数据的传输。
在被输入了写请求的情况下,根据第3数据传输部143进行回写处理和透写处理中的哪种处理,由此,写入数据的写入目的地不同。在进行回写处理的情况下,第3数据传输部143判定该写请求命中还是未命中。在该写请求已命中的情况下,将写入数据写入高速缓冲存储器160中。在该写请求未命中的情况下,第3数据传输部143将写请求中包含的地址(标签地址)和写入数据写入高速缓冲存储器160中。无论在哪种情况下,被写入高速缓冲存储器160中的写入数据,都在任意的定时被写入主存储器20中。在进行透写处理的情况下,第3数据传输部143判定该写请求命中还是未命中。在该写请求已命中的情况下,第3数据传输部143将写地址和写入数据写入缓冲存储器150 中。在由判定部120判定为后续的存储器访问请求的性质满足条件的情况下,按照控制部 130的控制,将被写入缓冲存储器150中的写入数据从缓冲存储器150突发写入到高速缓冲存储器160和主存储器20中。在该写请求未命中的情况下,第3数据传输部143同样将写地址和写入数据写入缓冲存储器150中。在由判定部120判定为后续的存储器访问请求的性质满足条件的情况下,将被写入缓冲存储器150中的写入数据和写地址从缓冲存储器150突发写入到高速缓冲存储器160和主存储器20中。在被输入了读请求的情况下,第3数据传输部143判定该读请求命中还是未命中。 在该读请求已命中的情况下,第3数据传输部143从高速缓冲存储器160将读出数据读出, 将所读出的读出数据输出给处理器10。在该读请求未命中的情况下,第3数据传输部143从主存储器20将读出数据读出,将所读出的读出数据和读地址写入高速缓冲存储器160中。并且,第3数据传输部143 从高速缓冲存储器160将读出数据读出,将所读出的读出数据输出给处理器10。另外,也可以在将从主存储器20读出的读出数据写入高速缓冲存储器160中的同时,输出给处理器 10。缓冲存储器150a、150b、150c中的各个缓冲存储器是与多个处理器10a、10b、IOc
相对应,保存与由对应的处理器发出的写请求相对应的写入数据的保存存储器(STB)。缓冲存储器150是为了将从多个处理器10输出的写入数据进行合并,暂时保存写入数据的缓冲存储器。在本实施方式中,缓冲存储器150按每个物理处理器而设置。并且,作为一例,缓冲存储器150能够保存最多1 字节的数据。在缓冲存储器150中保存的数据根据来自控制部130的控制,被突发写入主存储器20中。并且,在写请求是向属于可高速缓存属性的区域的访问,而且进行透写处理的情况下,在缓冲存储器150中保存的数据被突发写入主存储器20和高速缓冲存储器160中。在此参照图5。图5是表示本实施方式的缓冲存储器装置100具有的缓冲存储器 150的概况的图。如该图所示,缓冲存储器150a、150b、150c分别是与物理处理器(处理器 IOa (PPO)、10b (PPl)、IOc (PP2))对应设置的。即,缓冲存储器150a保存从处理器IOa输出的写地址等的缓冲控制信息和写入数据。缓冲存储器150b保存从处理器IOb输出的写地址等的缓冲控制信息和写入信息。缓冲存储器150c保存从处理器IOc输出的写地址等的缓冲控制信息和写入数据。缓冲控制信息是指写请求中包含的信息,是用于管理被写入缓冲存储器150中的数据的信息。即,缓冲控制信息至少包括写地址,包括表示输出了对应的写入数据的物理处理器及逻辑处理器等的信息。在图5所示的示例中,按每个物理处理器而设置的缓冲存储器具有能够保存64字节的数据的两个区域。例如,可以使这两个区域按每个线程建立对应。高速缓冲存储器160例如是4路组相关set associative)方式的高速缓冲存储器,具有4个路(way),该路具有作为能够保存规定字节数(例如1 字节)的数据的区域的、多个(例如16个)高速缓存条目(cache entry)。各个高速缓存条目具有有效 (valid)标志、标签地址、行(line)数据和脏(dirty)标志。有效标志是表示该高速缓存条目的数据是否有效的标志。标签地址是表示数据的写入目的地或者数据的读出目的地的地址。行数据是指利用标签地址及组索引(set index)确定的块中的规定字节数(例如1 字节)的数据的拷贝。脏标志是表示是否需要将已被高速缓存的数据回写主存储器中的标志。另外,高速缓冲存储器160的相关度、及高速缓冲存储器160具有的路的数量也可以不是4个,而是任意的值。并且,一个路具有的高速缓存条目的个数、以及一个高速缓存条目具有的行数据的字节数也可以是任何值。另外,高速缓冲存储器160也可以是其它方式的高速缓冲存储器,例如可以是直接映射(direct map)方式或者全相关(full associative)方式。在此,说明判定部120在判定处理中使用的条件。为了将合并后的数据有效地传输给缓冲存储器、而且保持数据的一致性,需要用于确定在哪个定时转出数据的条件。图6是表示示出本实施方式的多个判定条件的一例的判定表的图。作为一例,在该图中示出了属性判定条件(“Uncache”)、命令判定条件(“All Sync”和“Self Sync”)、 地址判定条件("RAW Hazard”和“Another Line Access”)、缓冲量判定条件("Slot Full”)、处理器判定条件(“相同LP、不同PP”)。属性判定条件是使用属性信息,按照存储器访问请求中包含的地址表示的区域的属性,确定从缓冲存储器150进行的数据的转出、以及成为转出对象的缓冲存储器的条件。 图6示出的“Uncache”条件是属性判定条件的一例。在“UnCaChe”(不高速缓存)条件下,由判定部120判定存储器访问请求中包含的地址表示的区域的属性是否是不可突发属性。在判定为是不可突发属性的情况下,控制部 130从保存着如下数据的缓冲存储器中将所保存的数据转出到主存储器20中,其中该数据与由和发出了该存储器访问请求的逻辑处理器相同的逻辑处理器所发出的存储器访问请求相对应。另外,控制部130也可以使用与线程对应的虚拟处理器而不是逻辑处理器,作为判定转出对象的缓冲存储器的基准。命令判定条件是使用命令信息,按照存储器访问请求中包含的命令,确定从缓冲存储器150进行的数据的转出、以及成为转出对象的缓冲存储器的条件。图6示出的“All Sync"条件和“klf Sync"条件是命令判定条件的一例。在“All Sync” (全部同步)条件下,由判定部120判定存储器访问请求中是否包含“All Sync”命令。“All Sync”命令是用于将在全部缓冲存储器150中保存的全部数据转出到主存储器20中的命令。在包含“All Sync”命令的情况下(例如图4所示的存储器访问信息201),控制部130将在全部缓冲存储器150中保存的全部数据转出到主存储器20中。在“Self Sync”(自同步)条件下,由判定部120判定存储器访问请求中是否包含 "Self Sync”命令。“klf Sync”命令是用于只将由发出了该命令的处理器所输出的数据从缓冲存储器150转出到主存储器20中的命令。在包含“Self Sync”命令的情况下(例如图4所示的存储器访问信息20 ,控制部130从保存着如下数据的缓冲存储器中将所保存的数据转出到主存储器20中,其中该数据与由和发出了该存储器访问请求的逻辑处理器相同的逻辑处理器所发出的存储器访问请求相对应。另外,控制部130也可以使用与线程对应的虚拟处理器而不是逻辑处理器,作为判定转出对象的缓冲存储器的基准。地址判定条件是使用地址信息,按照存储器访问请求中包含的地址,确定从缓冲存储器150进行的数据的转出、以及成为转出对象的缓冲存储器的条件。图6示出的“RAW Hazard”条件和“Another Line Access”条件是地址判定条件的一例。在“RAW Hazard”(先写后读冒险)条件下,由判定部120判定与读请求中包含的读地址一致的写地址是否保存在多个缓冲存储器150的至少一个缓冲存储器中。在与读地址一致的写地址被保存在缓冲存储器150中的任意一个的情况下,控制部130将截止到 Hazard行以前的全部数据、即在与该写地址对应的写入数据以前保存在缓冲存储器150中的数据,转出到主存储器20中。在“Another Line Access"(另一行访问)下,由判定部120判定写请求中包含的写地址是否与此前刚刚输入的写请求中包含的写地址相关联。具体地讲,判定这两个写地址是否是连续的地址。另外,此时假设两个写请求都是由相同物理处理器发出的。在判定为两个写地址不是连续的地址的情况下,控制部130将在与此前刚刚输入的写请求对应的写入数据以前保存在缓冲存储器150中的数据,转出到主存储器20中。缓冲量判定条件是使用缓冲量信息,按照保存在缓冲存储器150中的数据量,确定从缓冲存储器150进行的数据的转出、以及成为转出对象的缓冲存储器的条件。图6示出的“Slot Full”条件是缓冲量判定条件的一例。在“Slot Full”(槽满)条件下,由判定部120判定保存在缓冲存储器150中的数据量即缓冲量是否已满(1 字节)。在判定为缓冲量是1 字节的情况下,控制部130将该缓冲存储器的数据转出到主存储器20中。处理器判定条件是使用处理器信息,按照由哪个逻辑处理器和物理处理器发出了存储器访问请求,确定从缓冲存储器150进行的数据的转出、以及成为转出对象的缓冲存储器的条件。图6示出的“相同LP、不同PP”条件是处理器判定条件的一例。在“相同LP、不同PP”条件下,判定发出了存储器访问请求的逻辑处理器是否和发出了与保存在缓冲存储器150中的写入数据相对应的写请求的逻辑处理器相同。另外,判定发出了该存储器访问请求的物理处理器是否与发出了该写请求的物理处理器不同。艮口, 由判定部120判定与如下写请求对应的写入数据是否保存在至少一个缓冲存储器中,其中该写请求是由与处理器信息表示的物理处理器不同的物理处理器、而且是与处理器信息表示的逻辑处理器相同的逻辑处理器以前发出的。在判定为逻辑处理器相同、物理处理器不同的情况下,控制部130将与该逻辑处理器以前发出的写请求对应的数据从缓冲存储器150中转出。另外,也可以对线程而不是逻辑处理器判定是否相同。如上所述,在本实施方式中,在满足各个条件的情况下,数据被从缓冲存储器150 中转出。另外,不需要判定上述的全部条件。并且,也可以对上述的条件追加新的条件,或者将上述的条件与新的条件置换。例如,“Slot Full”条件是判定缓冲量是否已满的条件,但也可以取代该条件,而采用判定是否达到规定的缓冲量(在缓冲存储器中能够保存的缓冲量的最大值的一半等) 的条件。例如,在能够在缓冲存储器中保存的数据量的最大值是1 字节,但是缓冲存储器 150与主存储器20之间的数据总线宽度为64字节的情况下等,也可以判定缓冲量是否达到 64字节。在此参照图7。图7是表示本实施方式的判定部120的具体结构的框图。如该图所示,判定部120具有属性判定部121、处理器判定部122、命令判定部123、地址判定部124、 缓冲量判定部125、判定结果输出部126。属性判定部121从由存储器访问信息获取部110获取的存储器访问信息中获取属性信息,判定存储器访问请求中包含的地址表示的区域的属性是可高速缓存属性、可突发属性、及不可突发属性中的哪种属性。并且,属性判定部121将得到的判定结果输出给判定结果输出部126。处理器判定部122从由存储器访问信息获取部110获取的存储器访问信息中获取处理器信息,判定发出了存储器访问请求的处理器是多个逻辑处理器及物理处理器中的哪个逻辑处理器及物理处理器。并且,处理器判定部122将得到的判定结果输出给判定结果输出部口6。命令判定部123从由存储器访问信息获取部110获取的存储器访问信息中获取命令信息,判定存储器访问请求中是否包含规定的命令。另外,在存储器访问请求中包含规定的命令的情况下,命令判定部123判定该规定的命令的类别。并且,命令判定部123将得到的判定结果输出给判定结果输出部126。另外,所说规定的命令是指例如与其它条件无关地从缓冲存储器150转出数据的命令。作为一例,可以列举上述的“All Sync”命令及“Self Sync”命令。地址判定部IM从由存储器访问信息获取部110获取的存储器访问信息中获取地址信息,判定存储器访问请求中包含的地址是否已经保存在缓冲存储器150中。另外,地址判定部1 判定该存储器访问请求中包含的地址是否与此前的存储器访问请求中包含的地址相关联。具体地讲,判定两个地址是否连续。并且,地址判定部1 将得到的判定结果输出给判定结果输出部126。缓冲量判定部125通过控制部130从缓冲存储器150获取缓冲量,按每个缓冲存储器判定缓冲量是否达到规定的阈值。并且,缓冲量判定部125将得到的判定结果输出给判定结果输出部126。另外,规定的阈值是指例如缓冲存储器150的最大值、或者缓冲存储器装置110与主存储器20之间的数据总线宽度等。判定结果输出部1 根据从各个判定部输入的判定结果,判定是否满足图6所示的条件,将得到的判定结果输出给控制部130。具体地讲,判定结果输出部1 在判定为满足图6所示的条件的情况下,将表示把哪个缓冲存储器的哪个数据转出到主存储器20中的转出信息输出给控制部130。
根据以上所述的结构,本实施方式的缓冲存储器装置100具有暂时保存从多个处理器10输出的写入数据的多个缓冲存储器150,在满足规定的条件的情况下,将在缓冲存储器150中保存的数据突发写入到主存储器20中。即,为了将大小较小的多个写入数据合并,暂时保存在缓冲存储器150中,将通过合并而得到的大小较大的数据突发写入到主存储器20中。此时,根据用于进行多个处理器之间的数据的顺序保证的条件,确定可否从缓冲存储器150转出数据。由此,能够保持数据的一致性,并提高数据的传输效率。下面,使用图8 图16说明本实施方式的缓冲存储器装置100的动作。图8是表示本实施方式的缓冲存储器装置100的动作的流程图。首先,本实施方式的缓冲存储器装置100从处理器10获取存储器访问请求,由此执行本实施方式的数据传输处理。存储器访问信息获取部110从存储器访问请求中获取存储器访问信息(SlOl)。并且,将获取到的存储器访问信息输出给判定部120。并且,判定部120根据需要通过控制部 130从缓冲存储器150获取缓冲量信息。判定部120使用所输入的存储器访问信息和获取到的缓冲量信息,判定是否从缓冲存储器150转出数据(SIC)》。关于该转出判定处理的具体情况将在后面进行说明。然后,命令判定部123判定存储器访问请求是写请求还是读请求(S10;3)。在存储器访问请求是写请求的情况下(S103 “写”),数据传输部140进行从处理器10输出的写入数据的写入处理(S104)。在存储器访问请求是读请求的情况下(S103 “读”),数据传输部 140进行向处理器10读出数据的读出处理(S105)。另外,在转出判定处理610 中,在判定存储器访问请求是写请求还是读请求时,也可以在转出判定处理(Sl(^)结束之后,不进行存储器访问请求的判定处理(S103), 而是执行写入处理(S104)或者读出处理(S105)。下面,首先详细说明写入处理(S104)和读出处理(S105)。图9是表示本实施方式的缓冲存储器装置100的写入处理的流程图。在存储器访问请求是写请求的情况下,首先,属性判定部121判定该写请求中包含的写地址表示的区域的属性(Slll)。具体地讲,属性判定部121判定写地址表示的区域的属性是可突发属性、不可突发属性及可高速缓存属性中的哪种属性。在判定为写地址表示的区域的属性是可突发属性的情况下(Sill “不可高速缓存(可突发)”),第1数据传输部141将从处理器10输出的写入数据写入缓冲存储器150 中(SlU)。具体地讲,第1数据传输部141根据控制部130的控制,将写入数据写入到与发出了写请求的物理处理器(例如处理器IOa)对应的缓冲存储器(缓冲存储器150a)中。在判定为写地址表示的区域的属性是不可突发属性的情况下(S111 “不可高速缓存(不可突发)”),第2数据传输部142将从处理器10输出的写入数据写入到主存储器 20 中(S113)。在判定为写地址表示的区域的属性是可高速缓存属性的情况下(S111 “可高速缓存”),第3数据传输部143判定写请求已命中还是未命中(S114)。在写请求未命中的情况下(Si 14 否),第3数据传输部143将标签地址写入高速缓冲存储器160中(Si 15)。在写入标签地址之后或者写请求已命中的情况下(S114 是),控制部130根据基于该写请求的写入处理是回写处理还是透写处理,变更写入数据的写入目的地(S117)。在是回写处理的情况下(S116 “回写”),第3数据传输部143将写入数据写入高速缓冲存储器160中(S117)。在是透写处理的情况下(S116:“透写”),第3数据传输部143将写入数据和写地址写入缓冲存储器150中(Si 18)。如上所述,从处理器10输出的写入数据被写入主存储器20、缓冲存储器150或者高速缓冲存储器160中。另外,被写入缓冲存储器150及高速缓冲存储器160中的数据,通过在被输入了后续的存储器访问请求的情况下等执行的转出判定处理,被写入主存储器20 中。另外,在转出判定处理(S102)中,在判定写地址表示的区域的属性时,也可以在存储器访问请求的判定处理(S10;3)结束之后,不进行属性的判定处理(Slll),而是执行各个写入处理。图10是表示本实施方式的缓冲存储器装置100的读出处理的流程图。在存储器访问请求是读请求的情况下,首先,属性判定部121判定该读请求中包含的读地址表示的区域的属性(S121)。具体地讲,属性判定部121判定读地址表示的区域的属性是可高速缓存属性及不可高速缓存属性中的哪种属性。在判定为读地址表示的区域的属性是不可高速缓存属性的情况下(S121 “不可高速缓存”),第1数据传输部141或者第2数据传输部142从主存储器20读出与读请求对应的读出数据,将所读出的读出数据输出给处理器10(S122)。在判定为读地址表示的区域的属性是可高速缓存属性的情况下(S121 “可高速缓存”),第3数据传输部143判定读请求已命中还是未命中(S12!3)。在读请求未命中的情况下(S123 否),第3数据传输部143从主存储器20读出与读请求对应的读出数据
(5124)。并且,将所读出的读出数据和读地址(标签地址)写入高速缓冲存储器160中
(5125)。并且,第3数据传输部143从高速缓冲存储器160将读出数据读出,并输出给处理器10(S126)。此时,也可以同时执行读出数据向高速缓冲存储器160的写入和向处理器10 的输出。在读请求已命中的情况下(S123 是),第3数据传输部143从高速缓冲存储器160 将读出数据读出,并输出给处理器10 (S126)。如上所述,缓冲存储器装置100按照由处理器10发出的读请求,从高速缓冲存储器160或者主存储器20将读出数据读出,将所读出的读出数据输出给处理器10。另外,在转出判定处理(S102)中,在判定读地址表示的区域的属性时,也可以在存储器访问请求的判定处理(S10;3)结束之后,不进行属性的判定处理(S121),而是执行各个读出处理。下面,使用图11 图16详细说明转出判定处理(S102)。在转出判定处理中,可以按照任何顺序判定图6所示的判定表所表示的条件。但是,在诸如“All Sync”条件那样满足条件的情况下,优选地,优先进行将在全部缓冲器中保存的数据转出等、之后不需要判定其它条件的处理。图11是表示本实施方式的缓冲存储器装置100的属性判定处理的流程图。该图表示基于图6中的“Uncache”条件的转出判定处理。在存储器访问信息被输入判定部120后,属性判定部121判定存储器访问请求中包含的地址表示的区域的属性是否是不可突发属性(S201)。在该地址表示的区域的属性不是不可突发属性的情况下(S201 否),执行其它的判定处理。在判定为存储器访问请求中包含的地址表示的区域的属性是不可突发属性的情况下(S201 是),控制部130从保存着如下数据的缓冲存储器中将所保存的数据转出到主存储器120中(S202),其中该数据与由和发出了该存储器访问请求的逻辑处理器相同的逻辑处理器发出的存储器访问请求相对应。另外,控制部130使用处理器判定部122的判定结果,确定多个缓冲存储器150中成为转出对象的缓冲存储器,由此执行数据的转出。在该转出结束后,执行其它的判定处理。图12是表示本实施方式的缓冲存储器装置100的命令判定处理的流程图。该图表示基于图6中的“All Sync”条件和“Self Sync”条件的转出判定处理。在存储器访问信息被输入判定部120后,命令判定部123判定在存储器访问请求中包含的命令中、是否包含表示与其它条件无关地转出数据的命令即“Sync”命令(S301)。 在存储器访问请求中不包含“Sync”命令的情况下(S301 否),执行其它的判定处理。在存储器访问请求中包含“Sync”命令的情况下(S301 是),命令判定部123判定“Sync”命令是“All Sync”命令还是“SeIf Sync”命令(S302)。在“Sync”命令是“All Sync”命令的情况下(S302 :“A11 Sync”),控制部130从全部缓冲存储器150转出全部数据(S303)。在“Sync” 命令是 “Self Sync” 命令的情况下(S302 :“Self Sync”),控制部 130 从保存着如下数据的缓冲存储器中将所保存的数据转出到主存储器120中(S304),其中该数据与由和发出了该存储器访问请求的逻辑处理器相同的逻辑处理器发出的存储器访问请求相对应。另外,控制部130使用处理器判定部122的判定结果,确定多个缓冲存储器 150中成为转出对象的缓冲存储器,由此执行数据的转出。在数据的转出结束后,执行其它的判定处理。图13是表示本实施方式的缓冲存储器装置100的读地址判定处理的流程图。该图表示基于图6中的“RAW Hazard”条件的转出判定处理。另外,“RAW Hazard”条件是在缓冲存储器装置100接收到读请求的情况下被判定的条件。即,在命令判定部123判定为存储器访问请求是读请求的情况下被执行。地址判定部IM判定该读请求中包含的读地址是否与在缓冲存储器150中保存的写地址一致(S401)。在判定为该读地址与在缓冲存储器150中保存的写地址不一致的情况下(S401 否),执行其它的判定处理。在判定为读地址与在缓冲存储器150中保存的写地址一致的情况下(S401 是), 控制部130将截止到Hazard行的全部数据、即在与一致的写地址对应的写入数据以前保存的全部数据,从缓冲存储器150中转出640 。在数据的转出结束后,执行其它的判定处理。图14是表示本实施方式的缓冲存储器装置100的写地址判定处理的流程图。该图表示基于图6中的“Another Line Access”条件的转出判定处理。另外,“Another Line Access”条件是在缓冲存储器装置100接收到写请求的情况下被判定的条件。S卩,在命令判定部123判定为存储器访问请求是写请求的情况下被执行。地址判定部IM判定该写请求中包含的写地址是否与此前刚刚输入的写请求中包含的写地址相连续(S501)。在两个地址相连续的情况下(S501 否),执行其它的判定处理。在两个地址不连续的情况下(S501 是),控制部130将包括与此前刚刚输入的写请求所对应的写入数据在内的以前的数据,全部从缓冲存储器150中转出650 。在数据的转出结束后,执行其它的判定处理。图15是表示本实施方式的缓冲存储器装置100的缓冲量判定处理的流程图。该图表示基于图6中的“Slot Full”条件的转出判定处理。"Slot Full”条件与其它条件不同,是不根据存储器访问信息、而根据从缓冲存储器150得到的缓冲量信息进行判定的条件。因此,不限于缓冲存储器装置100接收到存储器访问请求的情况,可以在任意的定时、或者已将数据写入缓冲存储器150中等的情况下进行判定。缓冲量判定部125通过控制部130从缓冲存储器150获取缓冲量信息,按每个缓冲存储器判定缓冲量是否已满(S601)。在缓冲量未满的情况下(S601 否),在缓冲存储器装置100接收到存储器访问请求的情况下,执行其它的判定处理。在缓冲量已满的情况下(S601 是),控制部130从多个缓冲存储器150中、缓冲量已满的缓冲存储器中转出数据660 。在数据的转出结束后,执行其它的判定处理。图16是表示本实施方式的缓冲存储器装置100的处理器判定处理的流程图。该图表示基于图6中的“相同LP、不同LP”条件的转出判定处理。在存储器访问信息被输入判定部120中后,处理器判定部122判定与如下存储器访问请求对应的写入数据是否保存在缓冲存储器150中(S701),其中该存储器访问请求是由与发出了存储器访问请求的物理处理器不同的物理处理器、而且与发出了该存储器访问请求的逻辑处理器相同的逻辑处理器以前发出的。在该写入数据没有保存在缓冲存储器 150中的情况下(S701 否),执行其它的判定处理。在从相同逻辑处理器、而且是不同的物理处理器输出的写入数据被保存在缓冲存储器150中的情况下(S701 是),将数据从保存着该写入数据的缓冲存储器中转出 (S702)。在数据的转出结束后,执行其它的判定处理。在以上的图11 图16所示的判定处理全部结束后,转出判定处理(图8中的 S102)结束。在不满足以上的转出判定处理示出的条件的情况下,将与写请求对应的写入数据保存在缓冲存储器150中。即,在缓冲存储器150中将所输入的大小较小的写入数据合并, 成为大小较大的数据。并且,在满足上述的任意一个条件的时刻,该数据被突发写入主存储器20中。另外,在以上的说明中,每当满足各个判定条件时,将数据转出到主存储器20中, 但也可以在对全部判定条件进行判定后,将与满足的条件相对应的数据一并转出到主存储器20中。如上所述,本实施方式的缓冲存储器装置100具有与多个处理器10分别对应的缓冲存储器150,将从处理器10输出的写入数据合并后保存在各个缓冲存储器150中。并且, 在满足规定的条件的情况下,从缓冲存储器150将合并后的数据突发写入主存储器20中。由此,能够将通过对大小较小的写入数据进行合并而得到的较大的数据,突发写入主存储器20中,因此与逐个写入大小较小的数据的情况相比,能够提高数据的传输效率。并且,通过设定从缓冲存储器150读出数据的条件,能够保持从多个处理器输出的写入数据的一致性。尤其在存储器访问请求是由相同逻辑处理器、不同物理处理器发出的情况下,通过转出在缓冲存储器150中保存的数据,在由多个处理器执行的多线程、或者利用了多线程的存储器系统中,也能够保持数据的一致性。以上,根据实施方式说明了本发明的缓冲存储器装置及数据传输方法,但本发明不限于这些实施方式。只要不脱离本发明的宗旨,本行业人员能够想到的对该实施方式进行各种变形而得到的发明也包含在本发明的范围内。例如,本实施方式的缓冲存储器装置100具有与多个物理处理器分别对应的缓冲存储器150。与此相对,缓冲存储器装置100也可以具有与多个逻辑处理器分别对应的缓冲存储器150。图17是表示本实施方式的缓冲存储器装置100具有的缓冲存储器150的不同概况的图。该图所示的缓冲存储器150d、150e、150f分别与逻辑处理器LP0、LP1及LP2对应。 即,缓冲存储器150d、150eU50f分别保存与由各个逻辑处理器LP0、LP1及LP2发出的写请求相对应的写入数据、和缓冲控制信息。并且,也可以是,缓冲存储器装置100按照逻辑处理器与物理处理器的每个组合来设置缓冲存储器。并且,也可以是,缓冲存储器装置100具有与对应于多个线程的多个虚拟处理器分别对应的缓冲存储器150。并且,多个缓冲存储器150可以是在物理上不同的多个存储器,或者也可以是相当于对一个物理的存储器进行虚拟分割而得到的多个区域的虚拟的多个存储器。并且,本实施方式的缓冲存储器装置100在通过透写处理来向高速缓冲存储器 160进行写入时,将通过利用缓冲存储器150而合并后的数据突发写入,但是不一定利用缓冲存储器150。即,也可以是,第3数据传输部143将与写请求对应的写入数据直接写入高速缓冲存储器160中。并且,在本实施方式中,在向被划分为可高速缓存属性、可突发属性和不可突发属性的主存储器20的写入处理中,在向不可突发属性的区域的写入处理和向可高速缓存属性的区域的写入处理(透写处理的情况)中使用缓冲存储器150。与此相对,也可以在向被划分为可高速缓存属性和不可高速缓存属性的主存储器20的写入处理中使用缓冲存储器。即,也可以是,不将主存储器20的不可高速缓存区域划分为属于可突发属性的区域和属于不可突发属性的区域。但是,如上所述,由于存在不可高速缓存区域中包含读敏感的区域等的情况,所以优选将主存储器20划分为可突发属性和不可突发属性。并且,本实施方式的缓冲存储器装置100在从处理器10向主存储器20写入数据时,暂时保存数据,再突发写入所保存的数据,由此提高数据的传输效率,与此相对,也可以是重新设置读出专用的缓冲存储器(PFB (Prefetch Buffer 预取缓冲器)),从主存储器20 突发读出数据,将突发读出的数据暂时保存在PFB中。由此,在读出时也能够提高数据的传输效率。并且,本实施方式的缓冲存储器装置100如图4所示,示出了在由处理器10发出的存储器访问请求中附带有“Sync”命令的情况,但也可以是存储器访问请求中不附带“Sync”命令。例如,也可以是,缓冲存储器装置100具有被实施IO映射的寄存器,处理器 10向该寄存器进行访问,由此从对应的缓冲存储器150转出数据。并且,本发明也能够实现为具有本实施方式的缓冲存储器装置100、处理器10和主存储器20的存储器系统。此时,存储器访问请求的发出源可以是CPU等的处理器以及 DMAC(Direct Memory Access Controller 直接存储器访问控制器)等任何主机(master)。并且,在本实施方式中,对L2高速缓存40具有本实施方式的缓冲存储器150的结构进行了说明,但也可以是Ll高速缓存30具有该缓冲存储器150。此时,也可以是,存储器系统不具有L2高速缓存40。并且,也可以将本发明适用于具有三级高速缓存以上的高速缓存的存储器系统。 在这种情况下,优选最大级别的高速缓存具有本实施方式的缓冲存储器150。另外,本发明不仅能够按照上面所述实现为缓冲存储器装置、存储器系统及数据传输方法,也能够实现为用于使计算机执行本实施方式的数据传输方法的程序。并且,还能够实现为记录该程序的计算机可读的CD-ROM等记录介质。另外,还能够实现为表示该程序的信息、数据或者信号。并且,这些程序、信息、数据或者信号也可以通过因特网等通信网络进行发布。并且,在本发明中,构成缓冲存储器装置的构成要素的一部分或者全部,也可以由一个系统LSI (Large Scale htegration 大规模集成电路)构成。系统LSI是将多个构成部分集成在一个芯片上而制得的超多功能LSI,具体地讲,是由包括微处理器、ROM及RAM 等在内构成的计算机系统。产业上的可利用性本发明的缓冲存储器装置及存储器系统能够应用于在CPU等处理器与主存储器之间进行数据的传输的系统中,例如能够应用于计算机等中。标号说明10、10a、10b、10c、310处理器;20、320主存储器;21可高速缓存区域;22不可高速缓存区域;23可突发区域;对不可突发区域;30L1高速缓存;40L2高速缓存;100缓冲存储器装置;110存储器访问信息获取部;120判定部;121属性判定部;122处理器判定部;123 命令判定部;1 地址判定部;125缓冲量判定部;1 判定结果输出部;130控制部;140数据传输部;141第1数据传输部;142第2数据传输部;143第3数据传输部;150、150a、150b、 150c、150d、150e、150f缓冲存储器;160高速缓冲存储器;201、202存储器访问信息;330高速缓存;33ISTB。
权利要求
1.一种缓冲存储器装置,按照由多个处理器中的各个处理器发出的包括写请求或者读请求的存储器访问请求,在所述多个处理器与主存储器之间传输数据,所述缓冲存储器装置具有多个缓冲存储器,与所述多个处理器中的各个处理器分别对应,保存与由对应的处理器发出的写请求相对应的写入数据;存储器访问信息获取部,获取表示所述存储器访问请求的性质的存储器访问信息; 判定部,判定由所述存储器访问信息获取部获取的存储器访问信息表示的性质是否满足预先设定的条件;以及控制部,在由所述判定部判定为所述存储器访问信息表示的性质满足所述条件的情况下,将在所述多个缓冲存储器之中、与所述条件相对应的缓冲存储器中保存的数据转出到所述主存储器。
2.根据权利要求1所述的缓冲存储器装置, 所述多个处理器是多个物理处理器,所述多个缓冲存储器分别与所述多个物理处理器中的各个物理处理器对应,保存与由对应的物理处理器发出的写请求相对应的写入数据,所述存储器访问信息获取部获取表示发出了所述存储器访问请求的逻辑处理器及物理处理器的处理器信息,作为所述存储器访问信息,在与如下写请求相对应的写入数据被保存在所述多个缓冲存储器中的任意一个缓冲存储器中的情况下,所述判定部判定为满足所述条件,其中该写请求是由与所述处理器信息表示的物理处理器不同的物理处理器、而且是与所述处理器信息表示的逻辑处理器相同的逻辑处理器以前发出的写请求,在由所述判定部判定为满足所述条件的情况下,所述控制部将在满足所述条件的缓冲存储器中保存的数据转出到所述主存储器。
3.根据权利要求2所述的缓冲存储器装置,所述判定部还判定所述存储器访问信息中是否包含命令信息,该命令信息用于将在至少一个所述缓冲存储器中保存的数据转出到所述主存储器,在由所述判定部判定为在所述存储器访问信息中包含所述命令信息的情况下,所述控制部还将在所述命令信息表示的缓冲存储器中保存的数据转出到所述主存储器。
4.根据权利要求3所述的缓冲存储器装置,所述命令信息是用于将在所述多个缓冲存储器的全部缓冲存储器中保存的数据转出到所述主存储器的信息,在由所述判定部判定为在所述存储器访问信息中包含所述命令信息的情况下,所述控制部还将在所述多个缓冲存储器的全部缓冲存储器中保存的数据转出到所述主存储器。
5.根据权利要求3所述的缓冲存储器装置,在由所述判定部判定为在所述存储器访问信息中包含所述命令信息的情况下,所述控制部将在与发出了该存储器访问请求的处理器相对应的缓冲存储器中保存的数据转出到所述主存储器。
6.根据权利要求2 5中任意一项所述的缓冲存储器装置,所述主存储器包括多个属于可高速缓存属性和不可高速缓存属性中的任意一个属性的区域,所述存储器访问信息获取部还获取表示所述存储器访问请求中包含的地址示出的区域的属性的属性信息、和表示发出了该存储器访问请求的处理器的处理器信息,作为所述存储器访问信息,所述判定部还判定所述属性信息示出的属性是否是所述不可高速缓存属性、而且是否是表示保存应该突发传输的数据的不可突发属性,在由所述判定部判定为所述属性信息表示的属性是所述不可突发属性的情况下,所述控制部还将在与所述处理器信息表示的处理器相对应的缓冲存储器中保存的数据转出到所述主存储器。
7.根据权利要求2 6中任意一项所述的缓冲存储器装置, 所述多个缓冲存储器还保存与所述写入数据对应的写地址,在所述存储器访问请求包括读请求的情况下,所述存储器访问信息获取部还获取该读请求中包含的读地址,作为所述存储器访问信息,所述判定部判定与所述读地址一致的写地址是否被保存在所述多个缓冲存储器的至少一个缓冲存储器中,在由所述判定部判定为与所述读地址一致的写地址被保存在所述多个缓冲存储器的至少一个缓冲存储器中的情况下,所述控制部将在与所述写地址相对应的写入数据之前被保存在所述多个缓冲存储器中的数据转出到所述主存储器。
8.根据权利要求2 7中任意一项所述的缓冲存储器装置,在所述存储器访问请求包括写请求的情况下,所述存储器访问信息获取部还获取该写请求中包含的第1写地址,所述判定部判定所述第1写地址是否与此前刚刚输入的写请求中包含的第2写地址相连续,在由所述判定部判定为所述第1写地址与所述第2写地址相连续的情况下,所述控制部将在与所述第2写地址相对应的写入数据之前被保存在所述多个缓冲存储器中的数据转出到所述主存储器。
9.根据权利要求2 8中任意一项所述的缓冲存储器装置,所述判定部还判定在所述多个缓冲存储器的各个缓冲存储器中保存的数据的数据量是否达到规定的阈值,在由所述判定部判定为所述数据量达到所述阈值的情况下,所述控制部将在所述数据量达到所述阈值的缓冲存储器中保存的数据转出到所述主存储器。
10.根据权利要求2所述的缓冲存储器装置,所述主存储器包括多个属于可高速缓存属性和不可高速缓存属性中任意一个属性的区域,所述缓冲存储器装置具有数据写入部,在所述写请求中包含的写地址示出的区域的属性是所述不可高速缓存属性、而且是表示保存应该突发传输的数据的不可突发属性的情况下,该数据写入部将与该写请求相对应的写入数据写入到所述多个缓冲存储器中, 所述多个缓冲存储器保存由所述数据写入部写入的写入数据。
11.根据权利要求10所述的缓冲存储器装置,所述缓冲存储器装置还具有高速缓冲存储器,在所述写地址表示的区域的属性是所述可高速缓存属性、且将与所述写请求相对应的写入数据同时写入到所述高速缓冲存储器和所述主存储器中的情况下,所述数据写入部还将与该写请求相对应的写入数据写入到所述多个缓冲存储器中,在由所述判定部判定为满足所述条件的情况下,所述控制部将在满足所述条件的缓冲存储器中保存的数据转出到所述主存储器和所述高速缓冲存储器。
12.根据权利要求2所述的缓冲存储器装置,所述缓冲存储器保存多个所述写请求中包含的多个写地址、和与该写请求对应的多个写入数据。
13.根据权利要求1所述的缓冲存储器装置, 所述多个处理器是多个逻辑处理器,所述多个缓冲存储器分别与所述多个逻辑处理器中的各个逻辑处理器对应,并保存与由对应的逻辑处理器发出的写请求相对应的写入数据。
14.根据权利要求1所述的缓冲存储器装置,所述多个处理器是与多个线程相对应的多个虚拟处理器,所述多个缓冲存储器分别与所述多个虚拟处理器中的各个虚拟处理器对应,并保存与由对应的虚拟处理器发出的写请求相对应的写入数据。
15.一种存储器系统,按照由多个处理器中的各个处理器发出的包括写请求和读请求的存储器访问请求,在所述多个处理器与主存储器之间传输数据,所述存储器系统具有所述多个处理器; 所述主存储器;多个缓冲存储器,与所述多个处理器中的各个处理器分别对应,保存与由对应的处理器发出的写请求相对应的写入数据;存储器访问信息获取部,获取表示所述存储器访问请求的性质的存储器访问信息; 判定部,判定由所述存储器访问信息获取部获取的存储器访问信息表示的性质是否满足预先设定的条件;以及控制部,在由所述判定部判定为所述存储器访问信息表示的性质满足所述条件的情况下,将在所述多个缓冲存储器之中、与所述条件相对应的缓冲存储器中保存的数据转出到所述主存储器。
16.一种数据传输方法,按照由多个处理器中的各个处理器发出的包括写请求和读请求的存储器访问请求,在所述多个处理器与主存储器之间传输数据,所述数据传输方法包括存储器访问信息获取步骤,获取表示由所述多个处理器发出的存储器访问请求的性质的存储器访问信息;判定步骤,判定在所述存储器访问信息获取步骤中获取的存储器访问信息表示的性质是否满足预先设定的条件;以及转出步骤,在通过所述判定步骤判定为所述存储器访问信息表示的性质满足所述条件的情况下,将在多个缓冲存储器之中、与所述条件相对应的缓冲存储器中保存的数据转出到所述主存储器,其中所述多个缓冲存储器与所述多个处理器中的各个处理器分别对应,并保存着与由对应的处理器发出的写请求相对应的写入数据。
全文摘要
本发明能够适用于将多个写入数据突发写入的情况,而且提高数据的传输效率。缓冲存储器装置(100)按照由多个处理器(10)各自发出的存储器访问请求,在多个处理器(10)与主存储器(20)之间传输数据,该缓冲存储器装置具有多个缓冲存储器(150),保存与由对应的处理器发出的写请求相对应的写入数据;存储器访问信息获取部(110),获取表示存储器访问请求的性质的存储器访问信息;判定部(120),判定由存储器访问信息获取部(110)获取的存储器访问信息表示的性质是否满足预先设定的条件;以及控制部(130),在判定为满足所述条件的情况下,将在多个缓冲存储器(150)之中、与条件对应的缓冲存储器中保存的数据转出到主存储器(20)。
文档编号G06F12/08GK102165425SQ20098013775
公开日2011年8月24日 申请日期2009年9月15日 优先权日2008年9月25日
发明者礒野贵亘 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1