预载控制器、由处理器控制将数据预载至临时存储器的预载控制方法和程序的制作方法

文档序号:6627226阅读:170来源:国知局
专利名称:预载控制器、由处理器控制将数据预载至临时存储器的预载控制方法和程序的制作方法
技术领域
本发明涉及计算机系统、控制至临时存储器的数据预载访问的预载控制器和预载控制方法,以及程序。
背景技术
随着流水线处理的内部体系结构的发展和半导体技术的发展,处理器进行算术处理的性能已经得到了快速的提高。相反地,在数据提供速度方面,存储用于算术处理的数据的主存储器的性能改进却滞后于处理器性能的改进,向处理器提供数据的速度跟不上算术处理的速度。由于这个原因,很多计算机系统通常都包含一个被称之为“高速缓存”的数据临时存储器,以消除处理器和主存储器设备之间的速度差。
高速缓存是这样的设备,其每电路尺寸制造成本要高于主存储器,但数据提供速度高于主存储器,是凸现处理器的算术处理性能所不可或缺的设备。
当对存储在主存储器的数据进行访问(读请求)时,首先访问高速缓存,而不是主存储器。这时候,如果请求的数据被高速缓存了,数据就被从高速缓存中读取出来,并发送到处理器。相反,如果请求的数据还没有被高速缓存,请求的数据通过系统总线从主存储器传送到高速缓存,然后提供给处理器。为什么数据要首先传送到高速缓存呢?其原因是要为下一次访问相同的数据做准备。指示当对存储在主存储器的数据进行访问发生时数据是否被高速缓存的比率被称之为高速缓存命中率(Cache Hit Ratio)。高速缓存命中率是反映高速缓存性能的参数之一。
在最近几年,对高速缓存性能的要求更加苛刻了。尤其在高速处理大量数据的应用领域,这样的趋势更加明显,比如科学计算,多媒体处理等诸如此类。如前所述,由于高速缓存的造价较高,高速缓存的存储空间必然会因为费用的问题而被缩减。不可避免地,高速缓存的用途被局限于数据的临时存储。因而,所需要的数据不会总是被高速缓存。例如,如果与访问请求相关的数据不总是被高速缓存,也就是说,如果高速缓存命中率太低,数据提供速度会低于没有高速缓存时的同等水平。
按照惯例,通过增加一个新的方案,构造一个所谓的“预载”进程,将一个进程所需的数据事先读取至高速缓存,可以改进高速缓存的性能。现在已知了一些预载处理的实现方法;例如,(1)使用预取命令的方法,(2)预测访问类型的方法。
在使用预取命令的方法一中,一个指定被访问数据的地址的预取命令被插入一个程序中。预取命令是将指定地址的数据预先读取至高速缓存的命令。当在使用数据的命令之前执行预取命令时,数据就在实际使用前被预取了,并且预先在高速缓存中做好了准备。
在预测访问类型的方法二中,基于过去的数据访问类型(历史)预测出未来的访问类型,然后执行预载进程。当基于地址连续地进行数据访问时(例如访问序列数据),被访问数据的地址被监控,然后预测下一被访问数据的地址。根据这个预测结果,未来所需的数据的预载进程被执行。与前一种方法相同,当实际使用数据时,数据已经被临时存储了,并在高速缓存中准备好了。
如上所述,性能可以通过为临时存储应用预载方案得以改进,但是,下面的问题出现了。
在上述的插入预取命令到程序中的方法一中,调整和提供一个处理每个计算机系统的不同性能水平的程序都是不现实的。因而,程序一定会不可避免地根据一个给定的性能值进行优化。这样,在计算机系统中的性能差异便不能被考虑在其中,性能的改进程度根据计算机系统的性能而不同。
在上述的基于访问类型预测的方法二中,预测有局限。例如,哪些数据访问对算术处理是重要的,数据访问连续进行多少次,等等,诸如此类信息都不能被预知。换言之,除了访问类型能够容易预知外,在其它方面还存在明显的瓶颈。

发明内容
本发明的目的是提供在计算机系统中控制数据预载访问至临时存储器的预载控制器和预载控制方法,以及程序,从而提供稳定和有效的性能改进。
根据本发明的一方面,本发明提供了一种预载控制器,用以控制总线访问设备,总线访问设备通过总线从主存储器读出数据,并将读出数据传送到临时存储器。该控制器包含如下设备第一获取设备,用以获取访问提示信息,该信息表示至主存储器的数据访问间隔;第二获取设备,用以获取系统信息,该信息表示由总线访问设备通过总线传送数据的传送时延;确定设备,用以基于访问提示信息所表示的数据访问间隔和系统信息所表示的传送时延来确定预载单元计数;管理设备,用以指示总线访问设备从主存储器读出用于预载单元计数的数据,并在该数据的数据访问之前将读出的数据传送到临时存储器。
根据本发明的另一方面的预载控制器是用于控制地址转换设备的预载控制器,地址转换设备通过总线连接至主存储器,通过总线从主存储器读出地址转换信息,并将读出的地址转换信息传送到临时存储器。该控制器包含如下设备第一获取设备,用以获取访问提示信息,该信息表示至主存储器的数据访问间隔;第二获取设备,用以获取系统信息,该信息表示由地址转换设备通过总线传送地址转换信息的传送时延;确定设备,用以基于访问提示信息所表示的数据访问间隔和系统信息所表示的传送时延来确定预载单元计数;管理设备,用以指示地址转换设备从主存储器读出用于预载单元计数的地址转换信息,并在使用地址转换信息进行地址转换之前将读出的地址转换信息传送到临时存储器。


图1是表示根据本发明第一实施例的计算机系统的结构图;图2是在图1中显示的预载控制器的结构图;图3显示了一个从处理器接收到的访问提示信息的例子;图4显示了一个访问提示信息表的例子;图5显示了一个数据预载状态表的例子;图6是表示根据本发明第一实施例的数据预载进程的完整程序的流程图;图7是在图6中显示的数据预载进程的预处理的流程图;图8是在图6中显示的数据预载进程的连续处理的流程图;图9是表示根据本发明第二实施例的计算机系统的结构图;图10是表示根据本发明第二实施例的另一个计算机系统的结构图;图11是在图9中显示的预载控制器的结构图;图12显示了一个地址转换信息预载状态表的例子;图13是表示根据本发明第二实施例的地址转换信息预载进程的完整程序的流程图;图14是在图13中显示的地址转换信息预载进程的预处理的流程图;图15是在图13中显示的地址转换信息预载进程的连续处理的流程图;图16是表示根据本发明第三实施例的预载控制器的结构图;图17是表示根据本发明第四实施例的计算机系统的结构图。
具体实施例方式
(第一个实施例)图1是表示根据本发明第一实施例的计算机系统的结构图。计算机系统101包含处理器102、高速缓存103、总线访问单元104、总线105、主存储器106和预载控制器107。处理器102访问高速缓存103以获取在算术处理中使用的数据。如果所需的数据没有被高速缓存,高速缓存103指示总线访问单元104传送数据。总线访问单元104通过总线105传送来自主存储器106的指定数据。预载控制器107基于从处理器102得到的访问提示信息和系统信息控制预载进程,并且指示总线访问单元104传送所需的数据。访问提示信息和系统信息将稍后予以描述。
注意,总线访问单元104可以包含DMA控制器,以便进行连续地数据传送。
也可以利用本地存储器代替高速缓存103,本地存储器不具备在高速缓存和主存储器之间的数据传送功能。与高速缓存103一样,本地存储器也是一个高速存储器,其数据提供速度高于主存储器的数据提供速度。由于本地存储器不具备与主存储器进行自动数据传送的功能,所以相应地减小了电路尺寸。但是,在对主存储器进行数据访问之前,本地存储器和主存储器之间的数据传送必须被明确地指示。
当利用本地存储器代替高速缓存103时,在本地存储器和主存储器106之间的数据传送由总线访问单元104基于来自处理器102或者预载控制器107的指令来执行。
图2是在图1中显示的预载控制器107的结构图。预载控制器107包含一个预载管理单元201、访问提示信息表202、数据预载状态表203和系统信息204。
预载管理单元201执行用于从处理器102获取访问提示信息、并将它存储在访问提示信息表202中的进程、以及用于获取系统信息204的进程,然后通过识别数据访问的起始和终止来执行数据预载进程。访问提示信息表202存储访问提示信息。数据预载状态表203存储与正在执行的数据预载进程相关的信息。
预载控制器107可以被实现为由有别于处理器102的处理器执行特定程序的软件。注意,预载控制器107也可以通过一个运行在处理器102而不是另一个处理器上的软件来实现。
图3显示了一个从处理器102接收到的访问提示信息的例子。在该实施例中,访问提示信息301包括ID(标识符)、起始地址、访问单元、步幅、访问间隔和访问数据计数。ID用以标识访问提示信息。起始地址表示访问起始的地址。访问单元表示每次数据访问一起访问的数据大小。步幅表示给定访问单元和下一访问单元之间的地址间隔。例如,如果起始地址是0x4000,步幅是8,第一组数据位于0x4000,那么,下一组数据位于0x4008,第二个下一组数据位于0x4010。当步幅被赋予负值时,访问就在起始地址的递减方向进行。访问间隔表示给定的访问单元与下一个访问单元之间的时间间隔。作为时间单位,访问提示信息301使用时钟计数,但也可以直接指定时间。访问数据计数表示与该访问提示信息相关的数据访问的数量。
图4显示了一个访问提示信息表的例子。访问提示信息表存储从处理器102接收的多个访问提示信息。访问提示信息表202的每个条目401、402等表示单独的访问提示信息,其项目与在访问提示信息301中的项目相同。
图5显示了一个数据预载状态表的例子。数据预载状态表203包括ID、预载目标地址,访问单元,步幅,预载单元计数和剩余预载数据计数。数据预载状态表的条目501对应着访问提示信息表的条目401,数据预载状态表的条目502对应着访问提示信息表的条目402。数据预载状态表的条目501表明当8个预载访问完成后的状态,数据预载状态表的条目502表明当512个预载访问完成后的状态。
ID、访问单元和步幅是从访问提示信息表对应的条目中复制而来的。注意,访问单元和步幅可以不被复制到数据预载状态表。例如,访问提示信息表的条目可以利用ID检索,并且可以使用存储在此条目中的访问单元和步幅。
预载目标地址表示要进行下一个预载进程的数据的地址。由于数据预载状态表的条目501表示当8个预载访问完成后的状态,它将访问提示信息表中的条目401的起始地址向前推进128个字节(十六进制表示为0x80)-16个字节(步幅)乘以8的乘积。同样,数据预载状态表的条目502将条目402的起始地址向前推进了8192个字节(十六进制表示为0x2000)。
预载单元计数是由预载管理单元201基于对应的访问提示信息和系统信息而计算出来的。
剩余预载数据计数表示要进行预载进程的数据的剩余数量。由于数据预载状态表的条目501表示当8个预载访问完成之后的状态,那么,剩余预载数据计数被赋予了从访问提示信息表的条目401中的数据访问计数减去8所得到的值。同样,在数据预载状态表的条目502中的剩余预载数据计数被赋予了从条目402中的数据访问计数减去512所得到的值。
至于系统信息,在本发明的第一实施例中,系统信息204表示处理器102的时钟和总线访问单元104的数据传送时延,并被用来计算预载单元计数(稍后描述)。系统信息204反映该计算机系统的性能,可以从处理器102、总线访问单元104等直接获得,或者可以通过操作系统等获得。
图6是表示根据本发明第一实施例的数据预载进程的完整程序的流程图。处理器102预先向预载控制器107通告访问提示信息301(第S601步骤)。在这种情况下,预载控制器107接收访问提示信息301,并且将它存储在访问提示信息表202中。预载控制器107还获得系统信息204。
接下来,执行预载进程的预处理(第S602步骤)。在预载进程的预处理中,进行预载进程开始的识别、向数据预载状态表203的条目添加处理,等等。
随后,执行预载进程的连续处理(第S603步骤)。在预载进程的连续处理中,识别数据访问的终止,以及基于由预处理加入到数据预载状态表203的条目继续剩余数据预载进程。
图7是在图6中显示的数据预载进程的预处理的流程图。首先,识别与存储在访问提示信息表202中的信息相对应的数据访问的起始(第S701步骤)。为了识别数据访问的起始,处理器102可以向预载控制器107通告附带有访问提示信息ID或起始地址的访问起始信息。或者,可以监控至总线访问单元104的数据传送指令,当该地址与访问提示信息表202中的起始地址相同时,就可以识别相应的访问已经开始了。
从访问提示信息表202中读出对应的访问提示信息(第S702步骤)。基于处理器102的时钟和总线访问单元104的数据传送时延确定预载单元计数(第S703步骤)。当确定了预载单元计数之后,用于从起始地址开始的预载单元计数的数据获取指令被发布给总线访问单元104(第S704步骤)。
依据预载单元计数,从对应的访问提示信息的起始地址和步幅计算出预载目标地址,并根据数据访问计数计算出剩余预载数据计数(第S705步骤)。检测剩余预载数据计数是否为零(第S706步骤)。如果剩余预载数据计数不为零,那么,基于计算出的预载开始地址、预载单元计数、剩余预载数据计数,以及对应的访问提示信息的访问单元和步幅,向数据预载状态表203添加一条新条目(第S707步骤)。
下面,将列举一个计算预载单元计数的实际例子。预载单元计数例如由下面的公式确定预载单元计数=数据传送时延/数据访问时间 ............(1)作为数据传送时延,可以使用总线访问单元104的数据传送时延。作为数据访问时间,可以使用访问提示信息的访问间隔除以处理器102的时钟所得到的值。此外,作为数据访问时间,也可以使用从在数据访问期间要执行的命令序列中获得处理器102的行为并估算处理时间的方法、通过将命令序列中包括的命令数量乘以平价处理时间来供给的方法等等。
如果在图7中显示的数据预载进程的预处理中的第S707步骤中向数据预载状态表203增加了新条目,那么,执行数据预载进程的连续处理。
图8是在图6中的数据预载进程的连续处理的流程图。
首先,识别与数据预载状态表的条目相对应的数据访问的终止(第S801步骤)。为了识别数据访问终止,处理器102可以向预载控制器107通告附带有数据地址和已经终止的访问的访问终止信息。或者,也可以监控从高速缓存103至总线访问单元104的数据传送指令,当该地址与预载指令地址相同时,可以识别对应的访问已经终止了。
读出数据预载状态表的对应条目(第S802步骤),并且将用于从该条目的预载目标地址开始的数据访问终止计数的数据获取指令发布给总线访问单元104(第S803步骤)。随后,根据第S803步骤中的预载指令数目,更新预载目标地址和剩余预载数据计数(第S804步骤)。检测作为更新的结果,剩余预载数据计数是否变成了零(第S805步骤)。如果剩余预载数据计数不为零,就重复从第S801步骤开始的处理;否则,删除数据预载状态表203的对应条目(第S806步骤)。
根据上述的本发明第一实施例,预载控制器基于预先提供的数据访问提示信息和系统信息来执行数据预载进程,兼顾了系统性能等因素,并能够预先在临时存储器(高速缓存)中分配处理器所需的数据。
也就是说,由于提供了与连续的数据访问,而不是单个的数据访问相关的信息作为访问提示信息,可以通过预载进程有效的改善性能。还有,由于计算机系统的性能被当作为系统信息,所以性能的改善是稳定的和并具有高灵活性。
(第二个实施例)本发明的第二个实施例涉及地址转换信息的预载访问。除了在第一个实施例中描述的数据临时存储(高速缓存)之外,本发明同样可以适用于地址转换方案。
首先,大致地解释一下地址转换方案。在一个计算机系统上同时执行了多个程序的在多进程方法中,为了有利于开发各个进程所使用的程序,通常使用为各个进程提供同一个地址空间的方法。在这种情况下,为各个进程提供一个虚拟地址空间,能够好像一个给定的进程正在占用那个地址空间一样去使用它。在提供这样的功能的计算机系统中,配置诸如内存管理单元(MMU)的地址转换单元以实现虚拟地址空间,并执行在计算机系统的虚拟地址空间与实际(物理)地址空间之间的转换处理。这也被称为“地址转换进程”。
在地址转换进程中,使用了表明虚拟地址和实际(物理)地址之间的关系的地址转换信息。通常的做法是,准备用于每个地址转换单元的地址转换信息,例如页面尺寸等。在该地址转换单元中,使用单一的地址转换信息进行地址转换。
由于计算机系统使用了大量的地址信息,这样的信息可以被存储在主存储器中。所有的数据访问都需要地址转换,地址转换信息被每个访问所要求。但是,如果为每次访问都从主存储器读出地址转换信息,那么数据访问的性能就会恶化。因而,地址转换信息被临时存储在诸如翻译后援缓冲器(TLB)等的高速地址转换信息高速缓存中,使用高速缓存的地址转换信息,从而实现高速地址转换。
较之于主存储器,地址转换信息高速缓存与用于数据的高速缓存一样需要高的每单位电路面积成本等,但是其数据提供速度高于主存储器。因而,地址转换信息高速缓存是凸现数据访问性能所不可或缺的,处理器的算术处理能力也取决于此性能。
在第二个实施例中,基于预先提供的数据访问提示信息和系统信息,预载控制器控制兼顾了系统性能等因素的预载进程,从而预先在临时存储器(地址转换信息高速缓存)分配地址转换单元所需的地址转换信息。
图9是表示根据本发明第二实施例的计算机系统的结构图。
计算机系统901包括处理器902、高速缓存903、总线访问单元904、总线905、主存储器906、预载控制器907、地址转换单元908和地址转换信息高速缓存909。
处理器902访问高速缓存903以获取在算术处理中使用的数据。如果所需的数据没有被高速缓存,那么高速缓存903指示总线访问单元904传送数据。总线访问单元904指示地址转换单元908转换指定数据的地址。数据转换单元908基于地址转换信息高速缓存909中的信息转换地址,并且将结果返回给总线访问单元904。总线访问单元904使用转换后的地址通过总线905传送来自主存储器906的数据。预载控制器907基于从处理器902得到的访问提示信息和系统信息控制预载进程,并且指示地址转换单元908传送所需的数据。
注意,总线访问单元904可能包含DMA控制器,以便执行连续的数据传送。
也可以利用本地存储器代替高速缓存903,前者不具备在高速缓存和主存储器之间的数据传送功能。在这种情况下,本地存储器和主存储器之间的数据传送是由总线访问单元904基于来自处理器902或者预载控制器907的指令而完成的。
在计算机系统901中,总线访问单元904和预载控制器907是连接在一起的,但是,他们不需要一定得连接在一起。
图10是表示根据本发明第二实施例的另一个计算机系统的结构图。与图9中计算机系统不同,地址转换信息高速缓存是插入在处理器和高速缓存之间的。
计算机系统1001包括处理器1002、高速缓存1003、总线访问单元1004、总线1005、主存储器1006、预载控制器1007、地址转换单元1008和地址转换信息高速缓存1009。
处理器1002指示地址转换单元1008获取在算术处理中使用的数据。地址转换单元1008使用在地址转换信息高速缓存1009上的信息转换数据地址,并且使用转换后的地址访问高速缓存1003。如果所需的数据没有被高速缓存,高速缓存1003指示总线访问单元1004传送数据。总线访问单元1004通过总线1005传送来自主存储器1006的数据。预载控制器1007基于从处理器1002得到的访问提示信息和系统信息去控制预载进程,并且指示传送地址转换单元1008所需的地址转换信息。
注意,总线访问单元1004可以包含一个DMA控制器,以执行连续地数据传送。
也可以利用本地存储器代替高速缓存1003,前者不具备在高速缓存和主存储器之间的数据传送功能。在这种情况下,本地存储器和主存储器之间的数据传送是由总线访问单元1004基于来自处理器1002或者预载控制器1007的指令而完成的。
在计算机系统1001中,总线访问单元1004和预载控制器1007是连接在一起的,但是,他们也不必连接在一起。
使用计算机系统901和1001的地址转换信息预载进程具有同样的处理内容,预载控制器907和1007也具有同样的结构和处理内容。因而,将利用计算机系统901给出下面的描述。
图11是显示在图9中的预载控制器的结构图。预载控制器907具有一个预载管理单元1101、访问提示信息表1102、地址转换信息预载状态表1103和系统信息1105。预载管理单元1101执行用于从处理器902接收访问提示信息并且将其存储在访问提示信息表格1102中的进程,并且通过识别数据访问的起始和结束而执行地址转换信息预载进程。访问提示信息表1102具有与访问提示信息表202相同的结构,并存储访问提示信息。地址转换信息预载状态表1103存储与正在执行的地址转换信息预载进程相关的信息。
预载控制器907的处理方法可以通过有别于处理器902的处理器实现为软件。或者,预载控制器907也可以实现为一个运行在处理器902上的软件。
在该实施例中使用的访问提示信息和访问提示信息表1102使用在第一个实施例中解释的访问提示信息和访问提示信息表202。
图12显示了一个地址转换信息预载状态表的例子。地址转换信息预载状态表包括ID、预载目标地址、步幅、预载单元计数和剩余预载信息计数。
该实施例的地址转换信息预载状态表的条目1201与访问提示信息表中的条目401相对应,地址转换信息预载状态表的条目1202与访问提示信息表中的条目402相对应。地址转换信息预载状态表中的条目1201表示当完成1个预载访问后的状态,地址转换信息预载状态表中的条目1202表示当完成2个预载访问后的状态。
预载目标地址表示要进行下一个预载进程的地址转换信息的预转换地址。由于地址转换信息预载状态表的条目1201表示当1个预载访问完成后的状态,它将访问提示信息表的条目401中的起始地址向前推进0x1000个字节,它是0x1000个字节(步幅)乘以1的乘积。同样,地址转换信息预载状态表的条目1202将条目402的起始地址向前推进了0x2000个字节。
预载管理单元1101基于相应的访问提示信息和系统信息计算出步幅和预载单元计数。
剩余预载数据计数表示要进行预载进程的剩余地址转换信息。
至于系统信息,在本发明第二个实施例中,系统信息1105表明了地址转换单元、处理器902的时钟和总线访问单元904的数据传送时延,并被用来计算步幅和预载单元计数(稍后描述)。系统信息1105反映了该计算机系统的性能,并可以直接从处理器902、总线访问单元904等获得,或者可以通过操作系统等获得。
图13是表示根据本发明第二实施例的地址转换信息预载进程的全部程序的流程图。处理器902向预载控制器907预先通告访问提示信息301(第S1301步骤)。在这种情况下,在预载控制器907中的预载管理单元1101接收访问提示信息301,并且将它存储在访问提示信息表1102中。预载控制器907还获得系统信息1105。
接下来,执行预载进程的预处理(第S1302步骤)。在预载进程的预处理中,进行预载进程起始的识别、,到地址转换信息预载状态表1103的条目添加进程等等。
随后,执行预载进程的连续处理(第S1303步骤)。在预载进程的连续处理中,识别数据访问的终止,基于由预处理向地址转换信息预载状态表1103添加的条目继续剩余地址转换信息预载进程。
图14是在图13中显示的地址转换信息预载进程的预处理流程图。首先,识别与存储在访问提示信息表1102中的信息相对应的数据访问的起始(第S1401步骤)。为了识别数据访问的起始,处理器902可以向预载控制器907通告附有访问提示信息ID或者起始地址的访问开始信息的ID。或者,也可以监控至总线访问单元904的数据传送指令,当该地址与访问提示信息表1102的起始地址相同时,就识别对应的访问已经开始了。
从访问提示信息1102中读出对应的访问提示信息(第S1402步骤)。基于地址转换单元、作为系统信息1105的处理器902的时钟和总线访问单元904的数据传送时延确定步幅和预载单元计数(第S1403步骤)。确定预载单元计数之后,一个用于从起始地址开始的预载单元计数的地址转换信息获取指令被发布给地址转换单元908(第S1404步骤)。
根据预载单元计数由相应的访问提示信息的起始地址和步幅计算出预载目标地址,并根据数据访问计数和地址转换单元计算出剩余预载信息计数(第S1405步骤)。检测剩余预载信息计数是否为零(第S1406步骤)。如果剩余预载信息计数不为零,那么,基于计算出的预载起始地址、步幅、预载单元计数和剩余预载信息计数向地址转换信息预载状态表1103添加一条新条目(第S1407步骤)。
下面,将列举一个计算步幅和预载单元计数的实际例子。
步幅由下面的公式确定步幅=数据访问的步幅/地址转换单元*地址转换单元.........(2)当数据访问的步幅小于地址转换单元时,在一些情况下,可以在多个数据访问中使用相同的地址转换信息。因而,地址转换信息的使用间隔通常要长于数据访问间隔。为了这个目的,计算地址转换信息使用间隔。
地址转换信息使用间隔由下面的公式确定地址转换信息使用间隔=地址转换单元/数据访问的步幅*数据访问间隔 ......(3)
利用计算出的地址转换信息使用间隔的值,确定地址转换信息的预载单元计数预载单元计数=数据传送时延/地址转换信息使用时间............(4)作为数据传送时延,可以使用总线访问单元904的数据传送时延。作为地址转换信息使用时间,可以使用地址转换信息使用间隔除以处理器902的时钟所得到的值。
如果在图14中显示的地址转换信息预载进程的预处理中的第S707步骤中向地址转换信息预载状态表1103添加了新条目,那么,执行地址转换信息预载进程的连续处理。
图15是在图13中的地址转换信息预载进程的连续处理的流程图。首先,识别与地址转换信息预载状态表的条目相对应的数据访问的终止(第S1501步骤)。
为了识别数据访问终止,处理器902可以向预载控制器907通告附有数据地址和终止的访问的访问终止信息。或者,也可以监控从高速缓存903至总线访问单元904的数据传送指令,当该地址与预载指令地址相同时,可以识别对应的访问已经终止了。
读出地址转换信息预载状态表中的对应条目(第S1502步骤),并且将用于从该条目的预载目标地址开始的数据访问终止计数的数据获取指令发布给地址转换单元908(第S1503步骤)。随后,根据在第S1503步骤中的预载指令的数目更新预载目标地址和剩余预载信息计数(第S1504步骤)。检测作为更新的结果,剩余预载信息计数是否变成了零(第S1505步骤)。如果剩余预载信息计数不为零,就重复从第S1501步骤开始的处理;否则,删除地址转换信息预载状态表1103的对应条目(第S1506步骤)。
下面解释一个根据数据访问终止计数计算出所需地址转换信息的预载指令的数目的实际方法。要进行预载进程的地址转换信息的数量使用当数据访问终止后所使用的地址转换信息的数量。地址转换信息的预载指令的数目由如下公式确定
地址转换信息预载指令计数=数据访问终止计数*步幅/地址转换单元
.........(5)代替每个数据访问终止计数,可以从所有数据终止计数的总和计算出已使用的地址转换信息计数,并且可以使用通过从预载指示的地址转换信息计数减去已使用的地址转换信息计数所得到的值作为预载指示的地址转换信息计数。如果该值小于预载单元计数,可以使用通过从预载单元计数减去预载指示的地址转换信息计数所得到的值作为地址转换信息预载指令计数。
根据上述的本发明的第二个实施例,预载控制器基于预先提供的数据访问提示信息和系统信息执行地址转换信息预载进程,兼顾了系统性能等因素,能够预先在临时存储器(地址转换信息高速缓存)中分配地址转换单元所需的地址转换信息。
(第三个实施例)图16是表示根据本发明第三实施例的预载控制器的结构图。
显示在图9和图10中的计算机系统能够与地址转换信息预载进程同步地执行数据预载进程。第三个实施例展示了应用在这种情况中的预载控制器907(1007)的内部组成。
如图16所示,向预载管理单元1101提供数据预载状态表1103和地址转换信息预载状态表1104。使用与在第一个实施例中描述的访问提示信息301和访问提示信息表202相同的访问提示信息和访问提示信息表1102,作为访问提示信息和访问提示信息表1102。
当预载控制器如图16中所示进行配置时,可以同时执行在第一个实施例中描述的数据预载进程和在第二个实施例中描述的地址转换信息预载进程。
(第四个实施例)图17是表示根据本发明第四个实施例的计算机系统的结构图。如图17所示,根据该实施例的计算机系统具有多个处理器单元901a,901b,901c,...,这些处理器单元通过总线905连接至主存储器906。在图17中,每个处理器单元的结构与在第二个实施例中描述的计算机系统901的结构相同。同样,不包含地址转换单元等、而仅包含数据高速缓存的结构是可用的。
根据第四个实施例的计算机系统,可以为每个处理器单元单独实现本发明,随着处理器单元数的增加,本发明的优点就更加突出了。
发明的更多优点和修改对于本领域的技术人员为是显然的。所以,本发明在其宽的方面不局限于在本文中展示和描述的具体细节和典型实施例。因此,在不偏离由附加的权利要求书及其等价物所定义的一般发明概念的精髓和范围的前提下,可以进行多种修改。
权利要求
1.一种预载控制器,用于控制通过总线从主存储器读出数据、且将所述读出的数据传送到临时存储器的总线访问设备,所述预载控制器包括第一获取设备,被配置成获取访问提示信息,所述访问提示信息表示对于所述主存储器的数据访问间隔;第二获取设备,被配置成获取系统信息,所述系统信息表示由所述总线访问设备通过总线传送数据的传送时延;确定设备,被配置成基于由所述访问提示信息表示的数据访问间隔以及由所述系统信息表示的传送时延而确定预载单元计数;以及第一管理设备,被配置成指示所述总线访问设备从所述主存储器读出所述预载单元计数的数据,并且在所述数据的数据访问之前,将所述读出的数据传送到所述临时存储器。
2.根据权利要求1的预载控制器,其中所述临时存储器包括数据高速缓存。
3.根据权利要求1的预载控制器,还包含地址转换信息高速缓存,被配置成存储地址转换信息;地址转换单元,被配置成基于所述地址转换信息而转换所述数据的地址;第二管理设备,被配置成指示所述总线访问设备或所述地址转换单元从所述主存储器读出所述预载单元计数的地址转换信息,并且在使用所述地址转换信息的地址转换之前,将所述读出的地址转换信息传送到所述地址转换信息高速缓存。
4.一种用于控制地址转换设备的预载控制器,所述地址转换设备通过总线连接到主存储器,通过所述总线从所述主存储器读出地址转换信息,并且将所述读出的地址转换信息传送到临时存储器,所述预载控制器包含第一获取设备,被配置成获取访问提示信息,所述访问提示信息表示对于所述主存储器的数据访问间隔;第二获取设备,被配置成获取系统信息,所述系统信息表示由所述地址转换设备通过总线传送地址转换信息的传送时延;确定设备,被配置成基于由所述访问提示信息表示的数据访问间隔以及由所述系统信息表示的传送时延而确定预载单元计数;第一管理设备,被配置成指示所述地址转换设备从所述主存储器读出所述预载单元计数的地址转换信息,并且在使用所述地址转换信息进行地址转换之前,将所述读出的地址转换信息传送到所述临时存储器。
5.根据权利要求4的预载控制器,其中所述临时存储器包含地址转换信息高速缓存。
6.根据权利要求4的预载控制器,还包含用于存储数据的数据高速缓存;总线访问单元,被配置成通过所述总线从所述主存储器读出数据,并且将所述读出的数据传送到所述数据高速缓存;第二管理设备,被配置成指示所述总线访问设备从所述主存储器读出所述预载单元计数的数据,并且在所述数据的数据访问之前,将所述读出的数据传送到所述数据高速缓存。
7.一种用于将数据预载指令发布给总线访问设备的预载控制方法,所述总线访问设备通过总线连接至主处理器,通过所述总线从所述主存储器读出数据,并且将所述读出的数据传送到临时存储器,所述方法包含以下步骤获取访问提示信息,所述访问提示信息表示对于所述主存储器的数据访问间隔;获取系统信息,所述系统信息表示由所述总线访问设备通过所述总线传送数据的传送时延;基于由所述访问提示信息表示的数据访问间隔以及由所述系统信息表示的传送时延而确定预载单元计数;以及指示所述总线访问设备从所述主存储器读出所述预载单元计数的数据,并且在所述数据的数据访问之前,将所述读出的数据传送到所述临时存储器。
8.根据权利要求7的预载控制方法,其中所述临时存储器包含数据高速缓存。
9.根据权利要求7的预载控制方法,还包含如下步骤基于所述地址转换信息转换所述数据的地址;指示所述总线访问设备从所述主存储器读出所述预载单元计数的地址转换信息,并且在使用所述地址转换信息进行地址转换之前,将所述读出的地址转换信息传送到地址转换信息高速缓存。
10.一种将地址转换信息的预载指令发布给地址转换设备的预载控制方法,所述地址转换设备通过总线连接至主存储器,通过所述总线从所述主存储器读出地址转换信息,并且将所述读出的地址转换信息传送到临时存储器,所述方法包含以下步骤获取访问提示信息,所述访问提示信息表示对于所述主存储器的数据访问间隔;获取系统信息,所述系统信息表示由所述地址转换设备通过所述总线传送地址转换信息的传送时延;基于由所述访问提示信息表示的数据访问间隔以及由所述系统信息表示的传送时延而确定预载单元计数;指示所述地址转换设备从所述主存储器读出所述预载单元计数的地址转换信息,并且在使用所述地址转换信息进行地址转换之前,将所述读出的地址转换信息传送到所述临时存储器。
11.根据权利要求10的预载控制方法,其中所述临时存储器包含地址转换信息高速缓存;
12.根据权利要求10的预载控制方法,还包含指示总线访问设备从所述主存储器读出所述预载单元计数的数据,并且在所述数据的数据访问之前,将所述读出的数据传送到所述数据高速缓存。
13.一种存储在计算机可读媒介中、用于控制总线访问设备的程序,所述总线访问设备通过总线连接至主存储器,通过所述总线从所述主存储器读出数据,并且将所述读出的数据传送到临时存储器,所述程序包括用于指令计算机获取访问提示信息的单元,所述访问提示信息表示对于所述主存储器的数据访问间隔;用于指令所述计算机获取系统信息的单元,所述系统信息表示由所述总线访问设备通过所述总线传送数据的传送时延;用于指令所述计算机基于由所述访问提示信息表示的数据访问间隔以及由所述系统信息表示的传送时延而确定预载单元计数的单元;用于指令所述计算机指示所述总线访问设备从所述主存储器读出所述预载单元计数的数据,并且在所述数据的数据访问之前,将所述读出的数据传送到所述临时存储器的方法。
14.一种存储在计算机可读媒介中、用于控制地址转换设备的程序,所述地址转换设备通过总线连接至主存储器,通过所述总线从所述主存储器读出地址转换信息,并且将所述读出的地址转换信息传送到临时存储器,所述程序包括用于指令计算机获取访问提示信息的单元,所述访问提示信息表示对于所述主存储器的数据访问间隔;用于指令所述计算机获取系统信息的单元,所述系统信息表示由所述地址转换设备通过所述总线传送地址转换信息的传送时延;用于指令所述计算机基于由所述访问提示信息表示的数据访问间隔以及由所述系统信息表示的传送时延而确定预载单元计数的单元;用于指令所述计算机指示所述地址转换设备从所述主存储器读出所述预载单元计数的地址转换信息,并且在使用所述地址转换信息进行地址转换之前,将所述读出的地址转换信息传送到所述临时存储器的单元。
15.一种计算机系统,包括主存储器;临时存储器;总线;总线访问设备,所述总线访问设备通过所述总线从所述主存储器读出数据,并且将所述读出的数据传送到所述临时存储器;用于控制所述总线访问设备的预载控制器,包括第一获取设备,被配置成获取访问提示信息,所述访问提示信息表示至所述主存储器的数据访问间隔;第二获取设备,被配置成获取系统信息,所述系统信息表示由所述总线访问设备通过所述总线传送数据的传送时延;确定设备,被配置成基于由所述访问提示信息表示的数据访问间隔以及由所述系统信息表示的传送时延而确定预载单元计数;第一管理设备,被配置成指示所述总线访问设备从所述主存储器读出所述预载单元计数的数据,并且在所述数据的数据访问之前,将所述读出的数据传送到所述临时存储器。
16.一种总线系统,包括总线访问设备,所述总线访问设备通过总线从主存储器读出数据,并且将所述读出的数据传送到临时存储器;以及用于控制所述总线访问设备的预载控制器,包括第一获取设备,被配置成获取访问提示信息,所述访问提示信息表示对于所述主存储器的数据访问间隔;第二获取设备,被配置成获取系统信息,所述系统信息表示由所述总线访问设备通过所述总线传送数据的传送时延;确定设备,被配置成基于由所述访问提示信息表示的数据访问间隔以及由所述系统信息表示的传送时延而确定预载单元计数;第一管理设备,被配置成指示所述总线访问设备从所述主存储器读出所述预载单元计数的数据,并且在所述数据的数据访问之前,将所述读出的数据传送到所述临时存储器。
全文摘要
一种用于控制经由总线从主存储器读出数据、并将读出的数据传送到临时存储器的总线访问设备的预载控制器,包括第一获取设备,用以获取访问提示信息,该信息描述对于主存储器的数据访问间隔;第二获取设备,用以获取系统信息,该信息描述由总线访问设备通过总线传送数据的传送时延;确定设备,用以基于由访问提示信息表示的数据访问间隔和由系统信息表示的传送时延确定预载单元计数;管理设备,用以指示总线访问设备从主存储器读出用于预载单元计数的数据,并且在该数据的数据访问前将读出的数据传送到临时存储器。
文档编号G06F12/08GK1716187SQ20051008182
公开日2006年1月4日 申请日期2005年6月30日 优先权日2004年6月30日
发明者前田诚司, 城田祐介 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1