CN100445944C - 控制电路以及控制方法 - Google Patents
控制电路以及控制方法 Download PDFInfo
- Publication number
- CN100445944C CN100445944C CNB2004100821423A CN200410082142A CN100445944C CN 100445944 C CN100445944 C CN 100445944C CN B2004100821423 A CNB2004100821423 A CN B2004100821423A CN 200410082142 A CN200410082142 A CN 200410082142A CN 100445944 C CN100445944 C CN 100445944C
- Authority
- CN
- China
- Prior art keywords
- data
- mentioned
- cache
- unit
- stored
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明的高速缓冲存储器的控制电路以及控制方法对存储在高速缓冲存储器中的访问概率低的数据进行替换,可以预取访问概率更高的数据。高速缓存命中判断单元(2)当判断出在运算处理单元(1)进行的运算处理中使用的对象数据的高速缓存未命中的情况下,从主存储单元(7)中取出对象数据。另外,无效数据判断单元(4)当高速缓存命中判断单元(2)判断出高速缓存命中的情况下,判断包含对象数据的高速缓存行和包含在前次运算处理中使用的数据的高速缓存行是否相同。而后,预取控制单元(5)当无效数据判断单元(4)判断为包含对象数据的高速缓存行和包含在前次运算处理中使用的数据的高速缓存行不同的情况下,把被存储在主存储单元(7)中的数据与包含在前次运算处理中使用的数据的高速缓存行替换进行预取。
Description
技术领域
本发明涉及高速缓冲存储器控制中的控制电路以及控制方法。
背景技术
在把数据事先存储在高速缓冲存储器中的以往的预取(prefetch)控制电路中,因为进行不把已参照过一次的数据设置为无效而保持的预取控制,所以在再次参照已参照过一次的数据的概率低的系统中,高速缓存的命中率低,数据提供花费时间。
另外,在置换时舍弃已参照过一次的数据的例子有专利文献1。专利文献1记载的预取方法及其电路采取在把预取的数据从预取缓冲器中去掉时,不舍弃还未参照的数据而舍弃已参照过的数据的预取高速缓存方式。
[专利文献1]特开平8-292913号公报
在专利文献1的方式中,因为从预取缓冲器中舍弃已参照过的数据而不从指令高速缓存器中舍弃,所以即使在再次参照的概率低的情况下数据也被保持在高速缓冲存储器中。另外,因为不能不使用预取缓冲器而以少的硬件资源实现,所以存在使用很多的硬件资源,LSI(Large Scale Integration:大规模集成电路)芯片成本大的问题。另外在专利文献1的方式中,存在即使因分支而未参照并跳过的数据将来被参照的概率低的情况下也作为未参照数据保持的问题。
发明内容
本发明鉴于上述问题,其目的在于提供一种预取控制电路,例如,它在由于在高速缓冲存储器中存储现在或者将来读出的数据,因而在参照一次后再次参照的概率低的数据多的系统中特别有效,可以用更少的硬件资源实现。
本发明的控制电路其特征在于具备:存储数据的主存储单元;以特定大小单位把已存储在上述主存储单元中的数据作为高速缓存行读入并存储的高速缓冲存储器;输入已存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理的运算处理单元;判断是表示作为在上述运算处理单元进行的运算处理中使用的数据的对象数据已经存储在上述高速缓冲存储器中的高速缓存命中还是表示对象数据未被存储在上述高速缓冲存储器中的高速缓存未命中,当判断为高速缓存未命中的情况下,从上述主存储单元中以特定大小单位取得对象数据并作为高速缓存行存储在上述高速缓冲存储器中的高速缓存命中判断单元;当上述高速缓存命中判断单元判断为高速缓存命中的情况下,判断包含对象数据的高速缓存行和包含在前一次计算处理中使用的数据的高速缓存行的异同的数据判断单元;控制单元,它进行以下控制,当上述数据判断单元判断为包含对象数据的高速缓存行和包含在前次运算处理中使用的数据的高速缓存行不同的情况下,控制以特定大小单位取得被存储在上述主存储单元中的数据,把取得的特定大小单位的数据与包含在前次计算处理中使用的数据的高速缓存行进行替换并作为高速缓存行存储在上述高速缓冲存储器中,当上述数据判断单元判断为包含对象的数据的高速缓存行和包含在前次计算处理中使用的数据的高速缓存行相同的情况下,控制不替换被存储在上述高速缓冲存储器中的包含在前次运算处理中使用的数据的高速缓存行。
上述控制单元其特征在于:在把存储在上述主存储单元中的数据与高速缓存行进行替换并存储在上述高速缓冲存储器中时,相对与用存储于上述主存储单元中的数据替换的高速缓存行以外的高速缓存行对应的上述主存储单元的数据,取得被存储在连续的区域上的数据,把取得的数据与高速缓存行进行替换并存储在上述高速缓冲存储器。
上述高速缓冲存储器其特征在于:把被存储在上述主存储单元的连续区域上的数据以特定大小单位作为高速缓存行多次读入并存储为连续的入口(entry),上述控制单元当上述数据判断单元判断为包含对象数据的高速缓存行和包含在前次运算处理中使用的数据的高速缓存行不同的情况下,以特定大小单位多次取得被存储在上述主存储单元中的数据,对已取得的特定大小单位的多个数据与从包含在前次运算处理中使用的数据的高速缓存行的入口到包含对象数据的高速缓存行的入口的前一个入口的高速缓存行进行替换,存储在上述高速缓冲存储器中。
本发明的控制电路其特征在于:进一步具备指令禁止单元,它分析包含于被存储在上述高速缓冲存储器中的高速缓存行中的数据,当分析的结果是检测出表示分支指令的数据和表示结束指令的数据的至少一个数据的情况下,上述控制单元禁止把被存储在上述主存储单元中的数据和已存储在上述高速缓冲存储器中的高速缓存行进行替换并存储在上述高速缓冲存储器。
上述运算处理单元其特征在于:具备,从上述高速缓冲存储器输入数据的高速缓存访问单元;译码上述高速缓存访问单元输入的数据的译码单元;根据上述译码单元译码的数据进行运算处理的运算单元,上述高速缓存访问单元从上述高速缓冲存储器输入已输入完的数据以后的数据,分析已输入的数据,当分析的数据是表示分支指令的数据的情况下,与上述运算单元的运算处理并行地从上述主存储单元中取得被存储在已分析了的数据所表示的分支目标的地址中的数据,并存储到上述高速缓冲存储器中。
本发明的控制电路其特征在于具备:存储数据的主存储单元;以特定大小单位作为高速缓存行读入所已存储在上述主存储单元中的数据并存储的高速缓冲存储器;输入已存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理的运算处理单元;判断是表示作为在上述运算处理单元进行的运算处理中使用的数据的对象数据已存储在上述高速缓冲存储器中的高速缓存命中还是表示对象数据未被存储在上述高速缓冲存储器中的高速缓存未命中,当判断为高速缓存未命中的情况下,从上述主存储单元中以特定大小单位取得对象数据并作为高速缓存行存储在上述高速缓冲存储器中的高速缓存命中判断单元;控制单元,进行以下控制,当上述高速缓存命中判断单元判断为高速缓存未命中的情况下,上述高速缓存命中判断单元以特定大小单位取得被存储在与存储在上述高速缓冲存储器中的高速缓存行对应的上述主存储单元的数据连续的区域上的数据,把已取得的特定单位的数据与上述高速缓存命中判断单元存储的高速缓存行以外的高速缓存行进行替换,并作为高速缓存行存储在上述高速缓冲存储器中。
本发明的控制电路其特征在于具备:存储数据的主存储单元;以特定大小单位作为高速缓存行读入被存储在上述主存储单元中的数据并存储,对于已存储的高速缓存行管理有效或者无效的高速缓冲存储器;输入已被存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理的运算处理单元;在上述运算处理单元进行的运算处理前,控制以特定大小单位取得已被存储在上述主存储单元中的数据,把已取得的特定大小的数据与无效的高速缓存行进行替换,并作为高速缓存行存储在上述高速缓冲存储器中的控制单元;存储对上述高速缓冲存储器的访问频度的基准值和被存储在上述高速缓冲存储器中的有效高速缓存行数的基准值的至少一种的基准值存储单元;测定对上述高速缓冲存储器的访问频度和被存储在上述高速缓冲存储器中的有效高速缓存行数的至少一种的测定单元;当上述测定单元测定的对上述高速缓冲存储器的访问频度在已存储在上述基准值存储单元中的访问频度的基准值以下的情况下,和当上述测定单元测定的上述高速缓存行数在已存储在上述基准值存储单元中的有效的高速缓存行数的基准值以上的情况下的至少一个情况下,禁止上述控制单元进行的控制的测定禁止单元。
本发明的控制电路其特征在于:具备存储数据的主存储单元;读入被存储在上述主存储单元中的数据并存储的高速缓冲存储器;从上述高度缓冲存储器输入数据的高速缓存访问单元;译码上述高速缓存访问单元输入的数据的译码单元;根据上述译码单元译码的数据进行运算处理的运算单元,上述高速缓存访问单元与上述运算单元的运算处理并行地,从上述主存储单元中取得被存储于在上述运算单元进行的运算处理中生成的地址中的数据并存储到上述高速缓冲存储器。
本发明的控制方法其特征在于:在主存储单元中存储数据,以特定大小单位作为高速缓存行读入已存储在上述主存储单元中的数据并存储在高速缓冲存储器,输入已存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理,判断是表示作为在上述运算处理中使用的数据的对象数据已存储在上述高速缓冲存储器中的高速缓存命中,还是表示对象数据未被存储在上述高速缓冲存储器中的高速缓存未命中,当判断为高速缓存未命中的情况下,从上述主存储单元中以特定大小单位取得对象数据作为高速缓存行并存储在上述高速缓冲存储器中,当判断为高速缓存命中的情况下,判断包含对象数据的高速缓存行和包含在前一次计算处理中使用的数据的高速缓存行的异同,当判断为包含对象数据的高速缓存行和包含在前次运算处理中使用的数据的高速缓存行不同的情况下,控制以特定大小单位取得被存储在上述主存储单元中的数据,把取得的特定大小单位的数据与包含在前次运算处理中使用的数据的高速缓存行进行替换并作为高速缓存行存储在上述高速缓冲存储器中,当判断为包含对象数据的高速缓存行和包含在前次运算处理中使用的数据的高速缓存行相同的情况下,控制不替换包含被存储在上述高速缓冲存储器中的前次运算处理中使用的数据的高速缓存行。
本发明的控制方法其特征在于:在主存储单元中存储数据,以特定大小单位作为高速缓存行读入已存储在上述主存储单元中的数据并存储在高速缓冲存储器中,输入已存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理,判断是表示作为在上述运算处理中使用的数据的对象数据已存储在上述高速缓冲存储器中的高速缓存命中,还是表示对象数据未被存储在上述高速缓冲存储器中的高速缓存未命中,当判断为高速缓存未命中的情况下,从上述主存储单元中以特定大小单位取得对象数据并作为高速缓存行存储在上述高速缓冲存储器中,当判断为高速缓存未命中的情况下,以特定大小单位取得被存储在与存储在上述高速缓冲存储器中的高速缓存行对应的上述主存储单元的数据连续的区域上的数据,把已取得的特定大小单位的数据与从上述主存储单元中以特定大小单位取得对象数据并存储在上述高速缓冲存储器中的高速缓存行以外的高速缓存行进行替换,并作为高速缓存行存储在上述高速缓冲存储器中。
本发明的控制方法其特征在于具备:在主存储单元中存储数据,以特定大小单位作为高速缓存行读入存储在上述主存储单元中的数据并存储在高速缓冲存储器中,对已存储的高速缓存行管理有效或者无效,输入已被存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理,在运算处理前,控制以特定大小单位取得已被存储在上述主存储单元中的数据,把已取得的特定大小的数据与无效的高速缓存行进行替换,作为高速缓存行存储在上述高速缓冲存储器中,在基准值存储单元中存储对上述高速缓冲存储器的访问频度的基准值和被存储在上述高速缓冲存储器中的有效高速缓存行数的基准值的至少一种,测定对上述高速缓冲存储器的访问频度和被存储在上述高速缓冲存储器中的有效的高速缓存行数的至少一种,在测定出的对上述高速缓冲存储器的访问频度小于等于已存储在上述基准值存储单元中的访问频度的基准值的情况,和上述测定单元测定的有效高速缓存行数大于等于已存储在上述基准值存储单元中的有效高速缓存行数的基准值的情况的至少一个下,禁止在运算处理前,以特定大小单位取得被存储在上述主存储单元中的数据,把已取得的特定单元大小的数据与无效高速缓存行进行替换,并作为高速缓存行存储在上述高速缓冲存储器中。
本发明的控制方法其特征在于:把数据存储在主存储单元中,读入已存储在上述主存储单元中的数据并存储在高速缓冲存储器中,从上述高速缓冲存储器输入数据,译码输入的数据,根据译码后的数据进行运算处理,在从上述高速缓冲存储器输入数据时,与运算处理并行地从上述主存储单元中取得被存储在运算处理中生成的地址所示的地址目标中的数据并存储在上述高速缓冲存储器中。
如果采用本发明,则例如可以提供在参照过一次后再参照的概率低的数据多的系统中特别有效,可以以更少的硬件资源实现的预取控制电路。
附图说明
图1是展示实施例1中的预取控制电路100的构成的构成框图。
图2是展示实施例1中的预取控制电路100的动作的流程图。
图3是实施例4的运算处理单元1的构成图。
图4是展示实施例4中的运算处理单元1的动作的图。
图5是展示实施例5中的预取控制电路100的构成的构成框图。
图6是展示实施例5中的测定预取禁止单元8的动作的流程图。
图7是展示实施例6中的预取控制电路100的构成的构成框图。
图8是实施例中的预取控制电路100的硬件框图。
具体实施方式
图1是展示实施例1中的预取控制电路100构成的构成框图。
在图1中,1是访问高速缓冲存储器3读入数据,对读入的数据进行运算的运算处理单元。
2是在运算处理单元1访问高速缓冲存储器3时判断在高速缓冲存储器3内是否存在成为对象的数据的高速缓存命中判断单元。
3是以高速缓存行单位存储数据的高速缓冲存储器。
4是根据对高速缓冲存储器3的访问状况把存储在高速缓冲存储器3中的高速缓存行设置为无效的无效数据判断单元。
5是当在高速缓冲存储器3内存在有效高速缓存行和无效高速缓存行的情况下,从有效高速缓存行的地址求出预取对象数据的存储元的地址,从主存储单元7读出预取对象的数据并存储在高速缓冲存储器3中的预取控制单元。
6是在高速缓存未命中时和有预取请求时从主存储单元7读出数据的主存储控制单元。
7是存储指令数据和运算数据等各种数据的主存储单元。另外,指令数据是表示运算处理单元1进行的运算处理的运算指令的内容的数据,运算数据是指令数据表示的运算对象的数据。
在此,所谓高速缓存行是指高速缓冲存储器3存储管理的特定大小的数据。
一般,为了弥补CPU(中央处理单元)和主存储单元7的处理速度的差异而使用的高速缓冲存储器3在入口中设定并管理高速缓存行,各入口具有有效位、标记地址、高速缓存行。
有效位表示入口的有效、无效,标记地址表示在主存储单元7内的高速缓存行的存储元地址。
而后,高速缓冲存储器3通过对有效的入口检索与访问对象数据的存储元地址对应的标记地址,确定并输出包含在高速缓存行中的访问对象数据。
以下说明有关动作。
图2是展示实施例1中的预取控制电路100的动作的流程图。
在此,假设在高速缓冲存储器3中存储在主存储单元7中在连续的地址表示的区域中存储的数据,并且是前次访问主存储单元7存储的数据。另外,假设各入口的有效位表示有效,数据读出是有效状态。
首先,运算处理单元1访问高速缓冲存储器3,进行数据的读出(步骤S1)。
在此,高速缓存命中判断单元2把运算处理单元1的访问对象数据的存储元地址输出到高速缓冲存储器3,根据高速缓冲存储器3的输出结果,判断在高速缓冲存储器3内是否存在访问对象数据(步骤S2)。
当访问对象数据存在于高速缓冲存储器3中的情况下,高速缓存命中判断单元2判断为高速缓存命中,从高速缓冲存储器3取出访问对象数据并输出到运算处理单元1(步骤S3)。
而后,无效数据判断单元4判断包含运算处理单元1的访问对象数据的高速缓存行是否是与前次访问的数据相同的高速缓存行(步骤S4)。
当无效数据判断单元4的判断结果是此次访问的数据和前次访问的数据是同样的高速缓存行的情况下,结束处理。因而预取动作不发生(步骤S9)。
当无效数据判断单元4的判断结果是此次访问对象数据和前次访问的数据是不同的高速缓存行的数据的情况下,无效数据判断单元4把包含前次访问的数据的高速缓存行的有效位设定为无效并使入口无效。在此,假设包含此次访问对象数据的高速缓存行是被存储在包含前次访问的数据的高速缓存行的下一入口中的高速缓存行(步骤S5)。
以下,预取控制单元5判断在高速缓冲存储器3中是否存在有效高速缓存行和无效高速缓存行双方(步骤S6)。
此时,因为在前次访问中的高速缓存行在步骤S5中为无效,除此此外的高速缓存行保持有效,所以预取控制单元5检测出存在有效高速缓存行和无效高速缓存行双方。
以下,预取控制单元5为了对于无效高速缓存行从主存储单元7读出数据,而从有效高速缓存行的地址生成预取对象的地址(步骤S7)。
预取控制单元5对在前次访问中的无效高速缓存行进行数据的替换。因而首先,预取控制单元5为了把主存储单元7中连续的地址所示的区域上存储的数据存储在高速缓冲存储器3中,而对于被存储在无效高速缓存行的前一个入口中的有效高速缓存行,把存储有与高速缓存行对应的数据的主存储单元7内的存储元地址的下一地址作为预取对象的地址。
以下,预取控制单元5为了读出与在步骤S7中生成的预取对象地址对应的数据,而向主存储控制单元6发出访问请求。而后,主存储控制单元6从主存储单元7中读出数据,把数据存储在高速缓冲存储器3中,把已存储的高速缓存行的有效位设置为有效(步骤S8)。
通过执行该预取,可以把与新的地址对应的连续的数据存储在高速缓冲存储器3中。
预取控制单元5在执行步骤S8的预取后,再次判断在高速缓冲存储器3中是否存在有效高速缓存行和无效高速缓存行双方(步骤S6)。
因为包含前次访问的数据的高速缓存行在步骤S8中与新的高速缓存行替换并变为有效,所以在高速缓冲存储器3中不存在无效的高速缓存行。因而不进行以上的预取动作结束处理(步骤S9)。
如上所述,实施例1中的预取控制电路100在运算处理单元1访问的数据的高速缓存行变化时,不需要此前参照的高速缓存行,可以把将来有可能参照的新的数据存储在高速缓冲存储器3中。
另外,在描绘显示和图像显示中用于显示的数据具有在一次从主存储单元7被读出并画面显示后再次被参照的概率低的特征。因此,在进行描绘显示和图像显示的系统中,可以使存储新的数据一方的操作与把已参照的数据保持在高速缓冲存储器3中相比高速缓存命中率更高。
因而,通过在例如进行描绘显示和图像显示的系统中使用在实施例1说明的预取控制电路,可以使数据访问高速动作,可以提高系统的处理性能。
进而,实施例1中的预取控制电路100通过在主存储单元7中把位于与有效高速缓存行对应的数据的下一位置的数据与无效高速缓存行进行替换,可以把被存储在主存储单元7的连续区域上的数据作为将来可能被参照的新的数据存储在高速缓冲存储器3中。
另外,在进行描绘显示和图像显示的系统中,因为大多是把一画面部分的一连串的数据存储在主存储单元7的连续区域中,所以通过把被存储在主存储单元7的连续区域上的数据存储在高速缓冲存储器3上,可以提高高速缓存命中率。
因而,通过例如在进行描绘显示和图像显示的系统中使用在实施例1中说明的预取控制电路100,可以使数据访问高速动作,可以提高系统的处理性能。
另外,在实施例1中的预取控制电路100中,在进行预取控制时,不需要为了使用高速缓冲存储器3的有效位而多余的标志。进而,因为也不需要为了把预取的数据存储在高速缓冲存储器3中的多余的存储器,所以可以实现以更少的硬件资源控制高速缓冲存储器3的电路。
但是,与高速缓冲存储器3的有效位分开设置标志也可以,与高速缓冲存储器3分开设置存储器也可以。
实施例2
在以上的实施例1中,说明了当运算处理单元1访问高速缓冲存储器3并且高速缓存命中的情况下进行预取的动作。
在实施例2中,根据图2说明运算处理单元1访问高速缓冲存储器3并且高速缓存未命中的情况下的预取动作。
在图2中与上述实施例1一样,运算处理单元1访问高速缓冲存储器3(步骤S1),高速缓存命中判断单元2判断在高速缓冲存储器3内是否存在运算处理单元1的访问对象数据(步骤S2)。
当在高速缓冲存储器中不存在访问的数据而高速缓存未命中的情况下,无效数据判断单元4把全部的高速缓存行判断为无效,使全部的高速缓存行的有效位无效(步骤S10)。
以下,高速缓存命中判断单元2为了读出与高速缓存未命中的地址对应的高速缓存行的数据,而向主存储控制单元发出访问请求。主存储控制单元6从主存储单元7中读出数据并存储到高速缓冲存储器3,把该高速缓存行的有效位设置为有效(步骤S11)。
另外,高速缓存命中判断单元2在步骤S11中从主存储单元7读出数据后,把读出的访问对象的数据输出到运算处理单元1(步骤S12)。
以下,进行与上述实施例1一样的处理。
预取控制单元5判断在高速缓冲存储器3中是否存在有效高速缓存行和无效高速缓存行的双方(步骤S6)。
此时,在高速缓存未命中后因为在步骤S11中从主存储单元7中只读入数据的高速缓存行有效而除此以外无效,所以预取控制单元5检测出存在有效高速缓存行和无效高速缓存行的双方。
预取控制单元5从有效高速缓存行的地址中生成预取对象的地址(步骤S7)。
预取控制单元5从主存储单元7中读出接着与有效高速缓存行对应的数据后面的数据,为了把它与无效高速缓存行替换并存储在高速缓冲存储器3中,而生成预取对象的地址。在此,作为替换对象的无效高速缓存行选择有效的高速缓存行的下一输入的高速缓存行。另外,对于有效高速缓存行的数据,把在主存储单元7内位于下一位置的数据地址设置为预取对象的地址。
以下,预取控制单元5为了读出在步骤S7中生成的与预取对象地址对应的数据,向主存储控制单元6发出地址请求。而后,主存储控制单元6从主存储器7读出数据并在高速缓冲存储器3中存储数据,把存储的高速缓存行的有效位设置为有效(步骤S8)。
通过该预取的执行,可以把与新的地址对应的连续的数据存储在高速缓冲存储器3中。
预取控制单元5在步骤S8的预取执行后,再次判断在高速缓冲存储器3中是否存在有效高速缓存行和无效高速缓存行双方(步骤S6)。
此时,在高速缓存未命中判断后从主存储单元7读入数据的高速缓存行和在预取中读入的高速缓存行的2个有效,而除此外的无效。因此,预取控制单元5检测出存在有效高速缓存行和无效高速缓存行的两方。
预取控制单元5从主存储单元7中读出接着与有效高速缓存行对应的数据后面的数据,为了把它与无效高速缓存行替换并存储在高速缓冲存储器3中,而生成预取对象的地址。在此,作为替换对象的无效高速缓存行选择接着2个有效高速缓存行的下一入口的高速缓存行。另外,对于第2个有效高速缓存行的数据,把在主存储单元7内位于下一位置的数据地址作为预取对象的地址。
以下,预取控制单元5为了读出与在步骤S7中生成的预取对象的地址对应的数据,向主存储控制单元6发出地址请求。而后,主存储控制单元6从主存储单元7中读出数据并在高速缓冲存储器3中存储数据,把已存储的高速缓存行的有效位设置为有效(步骤S8)。
通过该预取的执行,可以把与新的地址对应的连续的数据存储在高速缓冲储存器3中。
如上所述直至无效高速缓存行没有为止重复执行步骤S6至步骤S8的一连串的预取处理。当无效高速缓存行没有了的情况下,不进行以上的预取动作而结束处理(步骤S9)。
通过这样进行预取处理,可以在高速缓冲存储器3中存储在主存储单元7的连续的区域上存储着的数据。
如上所述,当在高速缓冲存储器3中不存在运算处理单元1的访问请求的数据而高速缓冲未命中的情况下,判断为在高速缓冲存储器3内不存在运算处理单元1访问请求的数据和在主存储单元7中连续的区域上存储的数据的概率高,把全部的高速缓存行设置为无效,通过执行预取可以把存储在上述连续的区域上的数据取入高速缓冲存储器3。
由此,例如在进行描绘显示和图像显示的系统中,因为大多是把一画面部分的一连串的数据存储在主存储单元7内的连续的区域中,所以通过把被存储在主存储单元7的连续区域上的数据存储在高速缓冲存储器3上,来提高高速缓存命中率,可以使运算处理单元1的数据访问高速动作。
实施例3
在上述实施例1中,说明了运算处理单元1对于前次访问的高速缓存行的下一入口的高速缓存行的数据进行访问时进行预取的动作。
在实施例3中,根据图2说明不是运算处理单元1前次访问的高速缓存行的下一入口的高速缓存行,而是对已离开多个的入口的高速缓存行的数据进行访问而高速缓存命中时的预取动作。
在此,假设在高速缓冲存储器3中在有效状态下存储与主存储单元7中前次访问的数据连续存储的数据。
运算处理单元1访问高速缓冲存储器3(步骤S1),高速缓存命中判断单元2判断在高速缓冲存储器3内是否存在运算处理单元1的访问对象数据(步骤S2)。
当在高速缓冲存储器中不存在访问对象数据而高速缓存未命中的情况下,无效数据判断单元4把全部的高速缓存行设置为无效(步骤S10),其后的处理进行上述实施例2所示的动作。
当访问对象数据存在于高速缓冲存储器3中的情况下,高速缓存命中判断单元2输出从高速缓冲存储器3中取出数据并取出到运算处理单元1的数据(步骤S3)。
以下,无效数据判断单元4判断运算处理单元1的访问对象数据是否是与前次访问的数据同样的高速缓存行(步骤S4)。
当无效数据判断单元4的判断结果是此次访问的数据是与前次访问的数据相同的高速缓存行的情况下结束处理。因而预取动作不发生(步骤S9)。
当无效数据判断单元4的判断结果是此次访问的数据与前次访问的高速缓存行不同,进而也不是前次访问的高速缓存行的下一入口的高速缓存行,而是已离开多个的入口的高速缓存行的数据的情况下,无效数据判断单元4将从前次访问的高速缓存行直至此次访问的高速缓存行的前一个为止设置为无效,把这些高速缓存行的有效位设置为无效。在上述实施例1中因为把前次访问的高速缓存行的下一高速缓存行作为访问对象(步骤S5),所以把前次访问的高速缓存行设置为无效。在实施例3中因为把从前次访问的高速缓存行已离开多个的高速缓存行作为访问对象,所以在运算处理单元1中跳过的高速缓存行也和前次访问过的高速缓存行一样设置为无效。
以下,预取控制单元5判断在高速缓冲存储器3中是否存在有效高速缓存行和无效高速缓存行双方(步骤S6)。
因为从前次访问过的高速缓存行到此次访问过的高速缓存行的前一个为止的高速缓存行无效,除此此外的高速缓存行有效,所以预取控制单元5检测出有效高速缓存行和无效高速缓存行双方存在。
以下,预取控制单元5从有效高速缓存行的地址中生成预取对象的地址(步骤S7)。
预取控制单元5从主存储单元7中读出接着与有效高速缓存行对应的数据后面的数据,为了把它与无效高速缓存行替换并存储在高速缓冲存储器3中,而生成预取对象的地址。在此,作为替换对象的无效高速缓存行选择前次访问过的高速缓存行。另外,对于被存储在替换对象的无效高速缓存行的前一个入口中的有效高速缓存行的数据,把在主存储单元7内位于下一位置上的数据的地址作为预取对象的地址。
以下,预取控制单元5为了从主存储单元7读出与在步骤S7中生成的预取对象的地址对应的数据,而向主存储控制单元6发出访问请求。主存储控制单元6从主存储单元7中读出数据并在高速缓冲存储器3中存储数据,把该高速缓存行的有效位设置为有效(步骤S8)。
通过该预取的执行,可以把与新的地址对应的连续的数据存储在高速缓冲存储器3中。
预取控制单元5在步骤S8的预取执行后,再次判断在高速缓冲存储器3中是否存在有效高速缓存行和无效高速缓存行双方(步骤S6)。
在步骤S5中在把从前次访问过的高速缓存行到此次访问过的高速缓存行的前一个为止的高速缓存行设置为无效后,因为在步骤S8中只把一个高速缓存行设置为有效,所以预取控制单元5检测出存在有效高速缓存行和无效高速缓存行双方。
以下,预取控制单元5为了从主存储单元7中读出被存储在与有效高速缓存行的数据连续的区域上的数据,并把它与无效的高速缓存行替换而存储在高速缓冲存储器3中,而生成预取对象的地址。在此,作为替换对象的无效的高速缓存行选择在上述步骤S8中成为有效的高速缓存行的下一入口的高速缓存行。另外,对于被存储在作为替换对象的无效高速缓存行的前一个入口中的有效高速缓存行的数据,把在主存储单元7内位于下一位置的数据的地址设置为预取对象的地址。
以下,预取控制单元5为了从主存储单元7中读出与生成的预取对象地址对应的数据,而向主存储控制单元6发出访问请求。主存储控制单元6从主存储单元7读出数据并在缓冲存储器3中存储数据,把该高速缓存行的有效位设置为有效(步骤S8)。
通过执行该预取,可以把在主存储单元7中与有效高速缓存行数据连续存储的数据存储在高速缓冲存储器3中。
以后,如上所述在到无效高速缓存行没有为止,重复执行从步骤S6到步骤S8的一连串的预取处理。当无效的高速缓存行没有了的情况下,结束预取动作(步骤S9)。
通过这样进行预取处理,可以在高速缓冲存储器3中存储在主存储单元7的连续区域上存储着的数据。
运算处理单元1并不是把前次访问过的高速缓存行的下一高速缓存行作为访问对象,而是把已离开多个的高速缓存行的数据作为访问对象,当高速缓存命中判断单元2判断为高速缓存命中的情况下,判断为对在运算处理单元1中跳过的高速缓存行进行访问的概率低。因而,在本实施例3中,把从前次访问过的高速缓存行到此次访问过的高速缓存行的前一个为止的高速缓存行设置为无效,其后,通过执行预取,在主存储单元7中,可以把与此次访问过的数据连续的区域上存储的数据读入高速缓冲储存器3。
例如在进行描绘显示和图像显示的系统中,因为大多是把一画面份的一连串数据存储在主存储单元7的连续的区域上,所以对连续存储的数据访问的概率高,对于已跳过的高速缓存行的数据访问的概率低。因而,因为通过从高速缓冲存储器3除去已跳过的数据,把与新访问的数据连续的区域上存储的数据存储到高速缓冲存储器3中,可以提高命中率,所以运算处理单元1可以高速地进行数据访问。
实施例4
在以上的实施例中,说明了运算处理单元1根据运算处理结果在访问高速缓冲储存器时进行预取的情况。
在实施例4中,说明运算处理单元1在运算处理中根据分支指令和运算处理数据计算下一需要的数据地址,对高速缓冲存储器进行预读访问时的预取动作。
图3是本实施例4中的运算处理单元1的构成图。
在图3中,11是从高速缓冲存储器3读入数据,分成指令数据和运算数据的高速缓存访问单元。
12是对高速缓存访问单元11分出的指令数据进行指令的译码处理的指令译码单元。
13是根据指令译码单元12译码的指令对运算指令进行运算处理的运算单元。
14是根据分支指令和运算处理数据计算下一需要的数据的地址,对高速缓存访问单元11进行预读访问请求的预读访问单元。
图4是展示实施例4中的运算处理单元1的动作的图。
关于实施例4中的运算处理单元1的动作,根据图4说明从运算处理单元1向高速缓冲存储器3进行通常访问的情况和进行预读访问的情况。
首先说明不是从运算处理单元1向高速缓冲存储器3进行预读访问而是进行通常的访问时的动作。
在运算处理单元1中,高速缓存访问单元11读入取出到高速缓冲存储器3中的数据,把读入的数据输出到指令译码单元12(步骤S101)。
指令译码单元12译码处理已读入的指令数据,把译码处理后的指令数据输出到运算单元。另外,当译码处理的结果是指令数据是需要运算数据的指令的情况下,向高速缓存访问单元11请求运算数据的读入(步骤S102)。
高速缓存访问单元11在运算数据读入后,从高速缓冲存储器3读入下一(第2)数据(步骤S103)。
另外,运算单元13如果读入指令数据和运算数据而可以运算,则进行运算处理(步骤S104)。
在运算单元13的运算处理中,指令译码单元12进行下一(第2)指令数据的译码处理。而后,当指令数据是需要运算数据的指令的情况下,对高速缓存访问单元11进行运算数据的读入请求(步骤S105)。
高速缓存访问单元11在运算数据读入后,从高速缓冲存储器3读入下一(第3)数据(步骤S106)。
运算单元13在对第1指令数据的运算处理结束时,输入指令译码单元12译码的下一(第2)指令并开始运算处理(步骤S107)。
而后,指令译码单元12进行下一(第3)数据的译码处理。另外,当指令数据是需要运算数据的指令的情况下,向高速缓存访问单元11请求读入运算数据(步骤S108)。
在高速缓存访问单元11进行运算数据读入后,从高速缓冲存储器3进行下一(第4)数据的读入。
这样运算处理单元1从高速缓冲存储器3中读入指令数据和运算数据继续处理。如果运算处理单元1读入结束指令或者收到结束信号,则结束来自高速缓冲存储器3的指令数据和运算数据的读入。
以下说明从运算处理单元1向高速缓冲存储器3进行预读访问时的动作。
在上述通常访问的实施例3中假设在第3指令数据中存储分支指令。
在上述通常访问的实施例中,第3指令数据在运算单元1对第1指令的运算处理中从高速缓冲存储器3被读入高速缓存访问单元11(步骤S1061)。
其后,预读访问单元14在直至运算单元13结束第1指令运算为止的期间,从第3指令数据中识别分支指令,进行包含在指令数据中的分支地址所示的数据的预读访问请求(步骤S1062)。
对于包含在运算处理单元1的预读地址单元14发出的预读访问请求中的分支地址,当高速缓存命中判断单元2判断为高速缓存未命中的情况下,如上述实施例2所示那样进行预取动作,把在分支地址以后的连续区域上存储的数据存储在高速缓冲存储器3中(步骤S1063)。
运算单元13在对第1指令的运算处理结束时,对第2指令数据开始运算处理(步骤S107)。
与其并行地,指令译码单元12进行下一(第3)数据的译码处理。译码处理的结果,指令译码单元12识别分支指令。而后,向高速缓冲访问单元11请求分支地址的数据读取,访问高速缓冲存储器3(步骤S108)。
在此,与分支地址对应的数据因为全部由预读访问单元14存储在高速缓冲存储器3中,所以高速缓存命中判断单元2在高速缓存命中后,可以立即向运算处理单元1的高速缓存访问单元11取入分支地址的数据。
进行上述预读访问的情况下的实施例就是预读分支指令所示的分支地址的数据,但对于在运算处理过程中生成的地址的数据,运算处理单元1也可以从高速缓冲存储器3中进行预读访问。
如上所述,因为运算处理单元1在运算处理中从分支指令和运算处理数据计算下一个需要数据的地址,对高速缓冲存储器3进行预读访问,所以在运算处理后的分支目的的数据读入前,可以在高速缓冲存储器3内取入下一个必要的数据。因而对于来自运算处理单元1的访问,因为可以减少因高速缓存未命中引起的延迟发生所以可以高速动作。
实施例5
在以上的实施例中,说明了预取控制单元5直至无效高速缓冲行没有为止进行预取动作的情况。
在本实施例5中说明当来自运算处理单元1的读入访问频度少的情况下,被存储在高速缓冲储存器3中的有效高速缓冲行数多时禁止预取动作的情况。
图5是展示实施例5中的预取控制电路100的构成的构成框图。
在图5中,从1至7与在上述实施例1中说明的一样。但是当预取控制单元5有预取禁止请求的情况下,即使存在有效高速缓存行和无效高速缓存行也不进行预取动作。
8是在从运算处理单元1到高速缓冲存储器3的读入访问频度少,并且,当有在基准值以上的有效高速缓冲行数时禁止预取动作的测定预取禁止单元。
80时具备频度测定单元81和有效数测定单元82的测定单元。
81是测定从运算处理单元1向高速缓冲存储器3的读入访问频度的频度测定单元。
82是测定高速缓冲存储器3的有效高速缓存行数的有效数测定单元。
83是存储用于判断访问频度少的访问频度基准值和有效高速缓存行数的基准值的基准值存储单元。
图6是展示实施例5中的测定预取禁止单元8的动作的流程图。
根据图6说明本实施例5中的测定预取禁止单元8的动作。
在此在基准值存储单元83中,假设设定有判断从运算处理单元1到高速缓冲存储器3的读入访问少的访问频度基准值、相对访问频度的基准值表示具有充分的有效高速缓存行数的有效数基准值。
当频度测定单元81测定的值比被存储在基准存储单元83中的访问频度的基准值大的情况下,测定预取禁止单元8对预取控制单元5不进行预取禁止请求(步骤S201)。
当频度测定单元81测定的值小于等于访问频度的基准值的情况下,测定预取禁止单元8判断有效数测定单元82测定的值是否大于等于被存储于基准值存储单元83中的有效数基准值,在不大于等于有效数基准值时对预取控制单元5不进行预取禁止请求(步骤S202)。
当频度测定单元81测定的值小于等于访问频度的基准值,进而有效数测定单元82测定的值大于等于有效数基准值的情况下,测定预取禁止单元8对预取控制单元5进行预取禁止请求(步骤S203)。
当预取控制单元5有来自测定预取禁止单元8的预取禁止请求的情况下,即使检测出在图2的步骤S6中有效的高速缓存行和无效的高速缓存行,也不生成预取地址,不进行预取动作。
另外,在测定预取禁止单元8对预取禁止单元5进行预取禁止请求后,当频度测定单元81测定的值比访问频度的基准值还大的情况,和有效数测定单元82测定的值比有效数基准值少的情况下,测定预取禁止单元8对预取控制单元5进行预取禁止解除请求。
在此,上述访问频度的基准值和有效数基准是任意的值。
另外,在上述说明中,说明了当访问频度小于等于基准值并且高速缓存行的有效数大于等于基准值的情况下禁止预取的情况。但是,也可以是访问频度小于等于基准值,或者高速缓存行的有效数大于等于基准值时进行预取禁止。
因为当访问频度少的情况下从主存储单元7中读出多个数据并存储在高速缓冲存储器3中的必要性低,所以理想的是如上所述禁止因预取动作对主存储单元7的访问。
例如,当在相对分支指令的分支地址目的的数据读入中高速缓存未命中的情况下,因为被存储在高速缓冲存储器7中的数据全部无效,所以可以把此前无效地进行从主存储单元7预取取入的处理抑制为最小限度。
由此,因为可以减少因预取动作对主存储单元7的访问,所以可以减少在预取动作中消耗的电力。
实施例6
在以上的实施例5中,说明了当来自运算处理单元1的读入访问的频度少的情况下,高速缓存行的有效数多时禁止预取动作的情况。
在实施例6中,说明从高速缓冲存储器3由主存储单元7中读入的数据中识别分支指令和结束指令,当有这些指令的情况下禁止预取动作的情况。
图7是展示实施例6中的预取控制电路100的构成的构成框图。
在图7中,1至7与在实施例1中说明的一样。但是当预取控制单元5有预取禁止请求的情况下,即使在存在有效高速缓存行和无效缓冲行的情况下也不进行预取动作。
9是从高速缓冲存储器3由主存储单元7读入的数据中识别分支指令和结束指令,当有这些指令的情况下禁止预取动作,另外,当高速缓冲存储器3存储了与分支指令、结束指令不同的指令的情况下结束禁止控制的指令预取禁止单元。
91是从由主存储单元7读入的数据中识别分支指令和结束指令的分支结束检测单元。
以下说明动作。
主存储控制单元6在从主存储单元7中读入数据时,把该数据发送到高速缓冲存储器3和指令预取禁止单元9。
分支结束检测单元91分析发送给指令预取禁止单元9的数据,进行是否有分支指令或者结束指令的识别。
当在送到指令预取禁止单元9的数据中分支指令和结束指令哪个都不存在的情况下,指令预取禁止单元9对预取控制单元5不进行预取禁止请求。
在发送到指令预取禁止单元9的数据中存在分支指令和结束指令的至少一方的情况下,指令预取禁止单元9对预取控制单元5进行预取禁止请求。
预取控制单元5当有来自指令预取禁止单元9的预取禁止请求的情况下,即使检测出在图2的步骤S6中有效的高速缓存行和无效的高速缓冲行也不生成预取地址,不进行预取动作。
另外,在指令预取禁止单元9对预取控制单元5进行了预取禁止请求后,当高速缓冲存储器3存储与分支指令和结束指令哪个都不一样的指令数据的情况下,指令预取禁止单元9对预取控制单元5进行预取禁止解除请求。
当高速缓冲储存器3存储有分支指令和结束指令的情况下,即使在高速缓冲存储器3中存储有与此后的连续的地址对应的数据,从运算处理单元1访问的概率也低。通过以上方法,可以禁止因预取动作对主存储单元7的无效访问。
例如当在对分支指令的分支地址的数据读入中高速缓存未命中的情况下,因为被存储在高速缓冲存储器7中的数据全部无效,所以可以把此前无效地进行从主存储单元7预取取入的处理抑制为最小限度。由此,因为可以减少因预取动作对主存储单元7的访问,所以可以减少因预取动作引起的消耗电力。
图8是上述各实施例中的预取控制电路100的硬件构成图。
在图8中,预取控制电路100具备执行程序的CPU911。CPU911经由总线912与ROM913、RAM914、磁盘装置920连接。
RAM914是非易失性存储器的一例。ROM913、磁盘装置920是非易失性存储器的一例。这些是存储装置或者存储单元的一例。
上述高速缓冲存储器3主要把Static RAM作为存储介质,主存储单元7把Dynamic RAM和磁盘装置920作为存储介质。
另外,上述运算处理单元1把寄存器915作为存储介质进行运算处理。
另外,在上述各实施例的说明中作为“~单元”说明的当然也可以用存储在ROM913中的固件实现。或者,也可以只用软件,或者只用硬件,或者软件和硬件的组合,进而,通过与固件的组合实现。
另外,也可以使用采用磁盘装置920、FD、光盘、CD、MD、DVD等其它记录介质的记录装置存储实施上述各实施例的程序。
Claims (12)
1、一种高速缓冲存储器的控制电路,其特征在于包括:
存储数据的主存储单元;
以特定大小单位作为高速缓存行读入已存储在上述主存储单元中的数据并存储的高速缓冲存储器;
输入已存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理的运算处理单元;
判断是表示作为在上述运算处理单元进行的运算处理中使用的数据的对象数据已存储在上述高速缓冲存储器中的高速缓存命中,还是表示上述对象数据未被存储在上述高速缓冲存储器中的高速缓存未命中,当判断为高速缓存未命中的情况下,从上述主存储单元中以特定大小单位取得上述对象数据并作为高速缓存行存储在上述高速缓冲存储器中的高速缓存命中判断单元;
当上述高速缓存命中判断单元判断为高速缓存命中的情况下,判断包含对象数据的高速缓存行和包含在前次计算处理中使用的数据的高速缓存行的异同的数据判断单元;
当上述数据判断单元判断为包含上述对象数据的高速缓存行和包含在前次的运算处理中使用的数据的高速缓存行不同的情况下,控制以特定大小单位取得被存储在上述主存储单元中的数据,把取得的特定大小单位的数据与包含在前次的计算处理中使用的数据的高速缓存行进行替换,作为高速缓存行存储在上述高速缓冲存储器中,当上述数据判断单元判断为包含上述对象数据的高速缓存行和包含在前次计算处理中使用的数据的高速缓存行相同的情况下,控制不替换被存储在上述高速缓冲存储器中的包含在前次运算处理中使用的数据的高速缓存行的控制单元。
2、根据权利要求1所述的高速缓冲存储器的控制电路,其特征在于:
在上述控制单元,在把存储在上述主存储单元中的数据与在前次计算处理中使用的前次的高速缓存行进行替换并存储在上述高速缓冲存储器中时,从上述主存储单元取得被存储在与存储于上述高速缓冲存储器中的高速缓存行的最后的数据连续的地址区域中的数据,把取得的数据与上述前次的高速缓存行进行替换并存储在上述高速缓冲存储器中。
3、根据权利要求1所述的高速缓冲存储器的控制电路,其特征在于:
上述高速缓冲存储器以特定大小单位作为高速缓存行多次读入在上述主存储单元的连续区域上存储的数据并存储在连续的入口中,
上述控制单元当上述数据判断单元判断为包含上述对象数据的高速缓存行和包含在前次运算处理中使用的数据的高速缓存行不同的情况下,以特定大小单位多次取得被存储在上述主存储单元中的数据,把已取得的特定大小单位的多个数据与从包含在前次运算处理中使用的数据的高速缓存行的入口到包含上述对象数据的高速缓存行的入口的前一个入口为止的高速缓存行进行替换,存储在上述高速缓冲存储器中。
4、根据权利要求1所述的高速缓冲存储器的控制电路,其特征在于还包括:
指令禁止单元,它分析包含在被存储于上述高速缓冲存储器中的高速缓存行中的数据,当分析的结果是检测出表示分支指令的数据和表示结束指令的数据的两者中的至少一方的数据的情况下,上述控制单元禁止把被存储在上述主存储单元中的数据与已存储在上述高速缓冲存储器中的高速缓存行进行替换,存储在上述高速缓冲存储器中的操作。
5、根据权利要求1所述的高速缓冲存储器的控制电路,其特征在于:
上述运算处理单元具备:
从上述高速缓冲存储器输入数据的高速缓存访问单元;
译码上述高速缓存访问单元输入的数据的译码单元;
根据上述译码单元译码的数据进行运算处理的运算单元,其中
上述高速缓存访问单元输入使上述译码单元译码的下一个数据,当输入的上述下一个数据是分支指令的情况下,与上述运算单元的运算处理并行地,从上述主存储单元中取得被存储在上述下一个数据所指示的分支目标的地址中的数据,存储到上述高速缓冲存储器中。
6、根据权利要求1所述的高速缓冲存储器的控制电路,其特征在于:
还包括:从上述高速缓冲存储器取得数据的高速缓存访问单元,其中
与上述运算处理单元的运算处理并行地,上述高速缓存访问单元根据在上述运算处理单元的运算处理中生成的生成地址,从上述主存储单元中取得上述生成地址中的数据,并存储到上述高速缓冲存储器中。
7、一种高速缓冲存储器的控制电路,其特征在于包括:
存储数据的主存储单元;
以特定大小单位作为高速缓存行读入已存储在上述主存储单元中的数据并存储的高速缓冲存储器;
输入已存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理的运算处理单元;
判断是表示作为在上述运算处理单元进行的运算处理中使用的数据的对象数据已存储在上述高速缓冲存储器中的高速缓存命中,还是表示对象数据未被存储在上述高速缓冲存储器中的高速缓存未命中,当判断为高速缓存未命中的情况下,从上述主存储单元中以特定大小单位取得对象数据并作为高速缓存行存储在上述高速缓冲存储器中的高速缓存命中判断单元;
当上述高速缓存命中判断单元判断为高速缓存未命中的情况下,以特定大小单位取得与上述对象数据连续的上述主存储单元的数据,把已取得的特定大小单位的数据与不包含上述对象数据的高速缓存行进行替换,作为高速缓存行存储在上述高速缓冲存储器中的控制单元。
8、一种高速缓冲存储器的控制电路,其特征在于包括:
存储数据的主存储单元;
以特定大小单位作为高速缓存行读入被存储在上述主存储单元中的数据并存储,对于已存储的高速缓存行的有效或者无效进行管理的高速缓冲存储器;
输入已被存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理的运算处理单元;
在上述运算处理单元进行的运算处理前,控制以特定大小单位取得被存储在上述主存储单元中的数据,把已取得的特定大小的数据与无效的高速缓存行进行替换,作为高速缓存行存储在上述高速缓冲存储器中的控制单元;
存储对上述高速缓冲存储器的访问频度和被存储在上述高速缓冲存储器中的有效的高速缓存行数的两者的基准值中的至少一方的基准值存储单元;
测定对上述高速缓冲存储器的访问频度和被存储在上述高速缓冲存储器中的有效高速缓存行数的两者中的至少一方的测定单元;
当上述测定单元测定的对上述高速缓冲存储器的访问频度小于等于存储在上述基准值存储单元中的访问频度的基准值的情况,和上述测定单元测定的有效高速缓存行数大于等于存储在上述基准值存储单元中的有效高速缓存行数的基准值的情况的至少一个下,使上述控制单元禁止上述控制的测定禁止单元。
9、一种高速缓冲存储器的控制方法,其特征在于包括:
在主存储单元中存储数据,
以特定大小单位作为高速缓存行读入已存储在上述主存储单元中的数据,并存储在高速缓冲存储器中,
输入已存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理,
判断是表示作为在运算处理中使用的数据的对象数据已存储在上述高速缓冲存储器中的高速缓存命中,还是表示上述对象数据未被存储在上述高速缓冲存储器中的高速缓存未命中,当判断为高速缓存未命中的情况下,从上述主存储单元中以特定大小单位取得上述对象数据,并作为高速缓存行存储在上述高速缓冲存储器中,
当判断为高速缓存命中的情况下,判断包含上述对象数据的高速缓存行和包含在前次计算处理中使用的数据的高速缓存行的异同,
当判断为包含上述对象数据的高速缓存行和包含在前次运算处理中使用的数据的高速缓存行不同的情况下,控制以特定大小单位取得被存储在上述主存储单元中的数据,把取得的特定大小单位的数据与包含在前次运算处理中使用的数据的高速缓存行进行替换,并作为高速缓存行存储在上述高速缓冲存储器中,当判断为包含上述对象数据的高速缓存行和包含在前次运算处理中使用的数据的高速缓存行相同的情况下,控制不替换被存储在上述高速缓冲存储器中的包含在前次运算处理中使用的数据的高速缓存行。
10、根据权利要求9所述的高速缓冲存储器的控制方法,其特征在于:
在从上述高速缓冲存储器输入数据时,与运算处理并行地,根据在运算处理中生成的生成地址,从上述主存储单元中取得上述生成地址中的数据,并存储在上述高速缓冲存储器中。
11、一种高速缓冲存储器的控制方法,其特征在于包括:
在主存储单元中存储数据,
以特定大小单位作为高速缓存行读入已存储在上述主存储单元中的数据,并存储在高速缓冲存储器中,
输入已存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理,
判断是表示作为在上述运算处理中使用的数据的对象数据已存储在上述高速缓冲存储器中的高速缓存命中,还是表示对象数据未被存储在上述高速缓冲存储器中的高速缓存未命中,当判断为高速缓存未命中的情况下,从上述主存储单元中以特定大小单位取得对象数据,并作为高速缓存行存储在上述高速缓冲存储器中,并以特定大小单位取得与上述对象数据连续的上述主存储单元的数据,把已取得的特定大小单位的数据与不包含上述对象数据的高速缓存行进行替换,并作为高速缓存行存储在上述高速缓冲存储器中。
12、一种高速缓冲存储器的控制方法,其特征在于包括:
在主存储单元中存储数据,
以特定大小单位作为高速缓存行读入被存储在上述主存储单元中的数据并存储在高速缓冲存储器中,对已存储的高速缓存行的有效或者无效进行管理,
输入已被存储在上述高速缓冲存储器中的数据,根据已输入的数据进行运算处理,
在运算处理前,控制以特定大小单位取得已被存储在上述主存储单元中的数据,把已取得的特定大小的数据与无效的高速缓存行进行替换,并作为高速缓存行存储在上述高速缓冲存储器中,
在基准值存储单元中存储对上述高速缓冲存储器的访问频度和被存储在上述高速缓冲存储器中的有效的高速缓存行数的两者的基准值中的至少一方,
测定对上述高速缓冲存储器的访问频度和被存储在上述高速缓冲存储器中的有效高速缓存行数的两者中的至少一方,
当测定出的对上述高速缓冲存储器的访问频度小于等于存储在上述基准值存储单元中的访问频度的基准值的情况,和测定的有效高速缓存行数大于等于存储在上述基准值存储单元中的有效高速缓存行数的基准值的情况的至少一个下,在运算处理前,禁止控制使得将被存储在上述主存储单元中的数据与无效的高速缓存行进行替换并作为高速缓存行存储在上述高速缓冲存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100821423A CN100445944C (zh) | 2004-12-21 | 2004-12-21 | 控制电路以及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100821423A CN100445944C (zh) | 2004-12-21 | 2004-12-21 | 控制电路以及控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1797326A CN1797326A (zh) | 2006-07-05 |
CN100445944C true CN100445944C (zh) | 2008-12-24 |
Family
ID=36818377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100821423A Expired - Fee Related CN100445944C (zh) | 2004-12-21 | 2004-12-21 | 控制电路以及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100445944C (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100426261C (zh) * | 2006-09-08 | 2008-10-15 | 华为技术有限公司 | 一种高速存储器预读方法及装置 |
US7640400B2 (en) * | 2007-04-10 | 2009-12-29 | International Business Machines Corporation | Programmable data prefetching |
CN101594420B (zh) * | 2008-05-26 | 2011-09-21 | 中兴通讯股份有限公司 | 一种手机应用模块快速访问方法 |
JP2013008094A (ja) * | 2011-06-22 | 2013-01-10 | Sony Corp | メモリ管理装置、メモリ管理方法、制御プログラム、および、記録媒体 |
CN102543187B (zh) * | 2011-12-30 | 2015-10-28 | 泰斗微电子科技有限公司 | 一种高效读取的串行Flash缓冲器控制电路 |
US9342461B2 (en) * | 2012-11-28 | 2016-05-17 | Qualcomm Incorporated | Cache memory system and method using dynamically allocated dirty mask space |
EP2979189B1 (en) * | 2013-03-28 | 2019-12-25 | Hewlett-Packard Enterprise Development LP | Storing data from cache lines to main memory based on memory addresses |
CN106030520A (zh) * | 2014-03-27 | 2016-10-12 | 英特尔公司 | 用于软件预获取指令的过滤的指令和逻辑 |
KR20160018204A (ko) * | 2014-08-08 | 2016-02-17 | 삼성전자주식회사 | 전자 장치, 온 칩 메모리 장치 및 온 칩 메모리의 운영 방법 |
JP6838029B2 (ja) * | 2018-10-31 | 2021-03-03 | ファナック株式会社 | 数値制御装置 |
CN114721726B (zh) * | 2022-06-10 | 2022-08-12 | 成都登临科技有限公司 | 一种多线程组并行获取指令的方法、处理器及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08292913A (ja) * | 1995-04-11 | 1996-11-05 | Lg Semicon Co Ltd | 未参照先取りキャッシュを利用した命令語先取り方法およびその回路 |
JPH10105463A (ja) * | 1996-09-27 | 1998-04-24 | Mitsubishi Electric Corp | キャッシュシステム及びリプレース判定方法 |
JPH10269028A (ja) * | 1997-03-28 | 1998-10-09 | Nec Corp | 外部記憶装置とキャッシュメモリの制御方法 |
US6016545A (en) * | 1997-12-16 | 2000-01-18 | Advanced Micro Devices, Inc. | Reduced size storage apparatus for storing cache-line-related data in a high frequency microprocessor |
JP2004240811A (ja) * | 2003-02-07 | 2004-08-26 | Mitsubishi Electric Corp | 情報処理装置及びプリフェッチ方法 |
-
2004
- 2004-12-21 CN CNB2004100821423A patent/CN100445944C/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08292913A (ja) * | 1995-04-11 | 1996-11-05 | Lg Semicon Co Ltd | 未参照先取りキャッシュを利用した命令語先取り方法およびその回路 |
JPH10105463A (ja) * | 1996-09-27 | 1998-04-24 | Mitsubishi Electric Corp | キャッシュシステム及びリプレース判定方法 |
JPH10269028A (ja) * | 1997-03-28 | 1998-10-09 | Nec Corp | 外部記憶装置とキャッシュメモリの制御方法 |
US6016545A (en) * | 1997-12-16 | 2000-01-18 | Advanced Micro Devices, Inc. | Reduced size storage apparatus for storing cache-line-related data in a high frequency microprocessor |
JP2004240811A (ja) * | 2003-02-07 | 2004-08-26 | Mitsubishi Electric Corp | 情報処理装置及びプリフェッチ方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1797326A (zh) | 2006-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100517274C (zh) | 高速缓冲存储器及其控制方法 | |
CN100445944C (zh) | 控制电路以及控制方法 | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
US20070005889A1 (en) | Method, device, and system to avoid flushing the contents of a cache by not inserting data from large requests | |
US20140108740A1 (en) | Prefetch throttling | |
CN102169429A (zh) | 预取单元、数据预取方法以及微处理器 | |
US8832416B2 (en) | Method and apparatus for instruction completion stall identification in an information handling system | |
US7941633B2 (en) | Hash optimization system and method | |
US9052910B2 (en) | Efficiency of short loop instruction fetch | |
CN104317791A (zh) | 汇聚和散布多个数据元素 | |
CN102981944B (zh) | 一种基于文件系统的日志存储方法 | |
US20090217004A1 (en) | Cache with prefetch | |
CN104461470A (zh) | 微处理器以及微处理器操作方法 | |
CN101645034B (zh) | 用于检测数据存取违例的方法和装置 | |
CN1279443C (zh) | 服务器总体性能的测试方法 | |
CN102163144A (zh) | 嵌入式处理器的硬件数据预取方法 | |
US20090006036A1 (en) | Shared, Low Cost and Featureable Performance Monitor Unit | |
CN101336419A (zh) | 存储器访问控制装置及存储器访问控制方法 | |
US6173410B1 (en) | Microprocessor circuits, systems and methods for conditioning information prefetching based on resource burden | |
US20050160203A1 (en) | Method to maintain order between multiple queues with different ordering requirements in a high frequency system | |
JP4669244B2 (ja) | キャッシュメモリ装置およびメモリ制御方法 | |
CN109656479A (zh) | 一种构建存储器命令序列的方法及装置 | |
US9507725B2 (en) | Store forwarding for data caches | |
CN112767978B (zh) | 一种ddr命令调度方法、装置、设备及介质 | |
US6401212B1 (en) | Microprocessor circuits, systems, and methods for conditioning information prefetching based on resource burden |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081224 Termination date: 20161221 |