能够管理虚拟存储器处理方案 的数据处理系统 【技术领域】
本发明一般地涉及数据处理系统,特别是涉及具有存储器层次结构的数据处理系统。更具体地说,本发明涉及能管理虚拟存储器处理方案而无需操作系统协助的数据处理系统。
背景技术
现有技术的存储器层次结构通常包括一级或多级高速缓存存储器,一个系统存储器(也称作实存储器)以及经由输入/输出通道转换器与处理器复合体连接的硬盘(也称作物理存储器)。当有多级高速缓存存储器时,第一级高速缓存存储器(通常称作一级“L1”高速缓存)具有最快的存取(访问)时间和最高的每位成本。其余级别的高速缓存存储器,如二级“L2”高速缓存、三级“L3”高速缓存等,具有相对较慢的存取时间,但也有相对较低的每位成本。通常每个更低的高速缓存存储器级别具有更加慢的存取时间。
系统存储器通常用于保存利用虚拟存储器处理方案的数据处理系统最常用的那部分进程地址空间。进程地址空间地其他部分被存储在硬盘上并在需要时被检索(取回)。在执行一个软件应用程序的过程中,操作系统把虚拟地址转换成实地址。借助系统存储器中存储的页帧表(PFT),以存储页为粒度(单位)进行这种转换。处理器高速缓存通常包括一个转换旁视缓冲区(TLB),它用作最近使用的PFT条目(PTE)的高速缓存。
当发起一个数据装入、数据存储或指令提取请求时,在TLB中查找与该请求关联的数据的虚拟地址,以找出含有该虚拟地址所对应的实地址的PTE。如果在TLB中找到该PTE,则以相应的实地址向存储器层次结构发出数据装入、数据存储或指令提取请求。如果在TLB中未找到该PTE,则利用系统存储器内的PFT去定位相应的PTE。然后该PTE被重新装入到TLB中并重新开始转换过程。
因为空间的限制,不是全部虚拟地址都能被纳入系统存储器内的PFT。如果在PFT中不能找到虚拟地址到实地址的转换,或者如果找到了转换但与该页关联的数据没有驻留在系统存储器中,则将发生缺页(page fault)以中断转换过程,以便操作系统能为新的转换更新PFT。这样的更新涉及从系统存储器向硬盘移动要被替换的页面,使在所有处理器的TLB中的被替换的PTE的全部副本无效,把与新的转换关联的数据页从硬盘移动到系统存储器,更新PFT以及重新开始转换过程。
如上所述,对虚拟存储器的管理通常由操作系统完成,管理PFT并管理在系统存储器和硬盘之间数据换页(paging)的那部分操作系统通常被称作虚拟存储器管理器(VMM)。然而,有若干问题伴随由操作系统管理的虚拟存储器。例如,VMM通常忽略硬件结构,因此由VMM指定的替换策略通常不很有效。此外,VMM代码很复杂,而且跨多个硬件平台或甚至具有许多不同可能存储器配置的单个硬件平台去维护它是昂贵的。本发明提供了对上述问题的解决方案。
【发明内容】
根据本发明的优选实施例,一种能利用虚拟存储器处理方案的数据处理系统包括多个处理单元。这些处理单元具有在虚拟地址空间中操作的易失性高速缓存存储器,该虚拟地址空间大于实地址空间。这些处理单元和各自的易失性存储器与一个在物理地址空间中操作的存储控制器耦合。这些处理单元及存储控制器经由互连与硬盘耦合。该硬盘含有虚拟地址到物理地址转换表,用于把来自一个所述易失性高速缓存存储器的虚拟地址转换成指向硬盘中存储位置的物理盘地址,无需通过实地址进行转换。与物理存储器高速缓存耦合的存储器控制器允许把来自一个易失性高速缓存存储器的虚拟地址映射到指向硬盘内存储位置的物理盘地址,无需通过实地址进行转换。该物理存储器高速缓存含有硬盘内信息的子集。
在下文的详细书面描述中,本发明的全部目的、特点和优点将变得显而易见。
【附图说明】
结合附图参考下文中对说明性实施例的详细描述将会更好地理解发明本身及其优选使用方式、进一步的目的和优点,这些附图是:
图1是根据现有技术的多处理器数据处理系统的方框图;
图2是在其中纳入本发明优选实施例的多处理器数据处理系统的方框图;
图3是在图2所示多处理器数据处理系统内处理来自处理器的虚拟存储器存取请求的方法的高级逻辑流程图;
图4是在其中纳入本发明第二优选实施例的多处理器数据处理系统的方框图;
图5是在图4所示多处理器数据处理系统内处理来自处理器的虚拟存储器存取请求的方法的高级逻辑流程图;
图6是根据本发明一个优选实施例的叠替表(aliasing table)的方框图;
图7是在其中纳入本发明第三优选实施例的多处理器数据处理系统的方框图;
图8是根据本发明一个优选实施例在图7的多处理器数据处理系统内的虚拟地址到物理地址转换表的方框图;
图9是在图7所示多处理器数据处理系统内处理来自处理器的虚拟存储器存取请求的方法的高级逻辑流程图;
图10是根据本发明一个优选实施例来自处理器的虚拟存储器存取请求的方框图;以及
图11是根据本发明一个优选实施例发给请求处理器的一个中断包的方框图。
【具体实施方式】
为便于说明,这里使用一个具有单级高速缓存存储器的多处理器数据处理系统来演示本发明。应该理解,本发明的特性可以适用于具有多级高速缓存存储器的数据处理系统。
I.现有技术
现在参考附图,特别是图1,图中描绘根据现有技术的一个多处理器数据处理系统的方框图。如图中所示,多处理器数据处理系统10包括多个中央处理单元(CPU)11a-11n,CPU 11a-11n中的每一个含有一个高速缓存存储器。例如,CPU 11a含有高速缓存存储器12a,CPU 116含有高速缓存存储器12b,以及CPU 11n含有高速缓存存储器12n。CPU 11a-11n和高速缓存存储器12a-12n通过互连14与存储器控制器15和系统存储器16耦合。互连14用作高速缓存存储器12a-12n和输入/输出通道转换器(IOCC)17之间的通信事务的管道。
多处理器数据处理系统10采用虚拟存储器处理方案,这意味着同时使用三种地址类型。这三种地址类型是虚拟地址、实地址和物理地址。虚拟地址被定义为在利用虚拟地址处理方案的数据处理系统内的软件应用中直接引用的地址。实地址被定义为当数据处理系统内的系统存储器(或主存储器)要被存取时所引用的地址。物理地址被定义为当数据处理系统内的硬盘要被存取时所引用的地址。
在虚拟存储器处理方案下,操作系统把CPU 11a-11n使用的虚拟地址转换成系统存储器16和高速缓存存储器12a-12n使用的相应的实地址。硬盘适配器18在其设备驱动程序软件的控制下把系统存储器16和高速缓存存储器12a-12n使用的实地址转换成硬盘101使用的物理地址(或盘地址)。
在操作过程中,系统存储器16保存进程数据和指令的最常用的部分,而进程数据和指令的其余部分被存储在硬盘101上。在系统存储器16中存储的页帧表(PFT)19用于定义虚拟地址到实地址的映射。每个在相应CPU中的转换旁视缓冲区(TLB)13a-13n用作最近使用的PFT条目(PTE)的高速缓存。
如果在PFT 19中未找到虚拟地址到实地址的转换,或者如果找到了虚拟地址到实地址的转换,但相关联的数据并未驻留在系统存储器16中,则将发生缺页以中断转换过程,使得操作系统必须更新PFT 19和/或把被请求的数据从硬盘101转移到系统存储器16。PFT更新涉及从系统存储器16向硬盘101移动要被替换的页面,使在TLB 13a-13n中的被替换的PTE的全部副本无效,把与新的转换关联的数据页从硬盘101移动到系统存储器16,更新PFT19以及重新开始转换过程。对缺页的处理传统上由操作系统控制,而这种安排有前述的那些缺陷。
II.新的配置
根据本发明的一个优选实施例,图1中的系统存储器16被完全地从数据处理系统10中去除。因为系统存储器16被完全地从数据处理系统中去除,所有数据和指令必须直接从硬盘中取出,于是利用一个存储控制器来管理向硬盘传送数据和指令以及从硬盘传送数据和指令。本质上,在本发明下系统存储器被“虚拟化”了。
在本发明的最简单实施例中,不允许虚拟地址到物理地址的叠替(aliasing)。叠替被定义为将一个以上的虚拟地址映射到单个物理地址。因为当没有叠替时一个虚拟地址总是仅映射到一个物理地址,所以不需要虚拟地址到物理地址的转换。
现在参考图2,图中描绘在其中纳入本发明一个优选实施例的多处理器数据处理系统的方框图。如图中所示,多处理器数据处理系统20包括多个中央处理单元(CPU)21a-21n,CPU 21a-21n的每一个含有一个高速缓存存储器。例如,CPU 21a含有高速缓存存储器22a,CPU 21b含有高速缓存存储器22b,以及CPU 21n含有高速缓存存储器22n。CPU 21a-21n和高速缓存存储器22a-22n通过互连24与存储控制器25耦合。互连24用作高速缓存存储器22a-22n和IOCC 27之间的通信事务的管道。IOCC 27通过硬盘适配器28与硬盘102耦合。
在现有技术中(见图1),硬盘适配器18以及与硬盘适配器18关联的设备驱动程序软件把高速缓存存储器22a-22n和系统存储器16使用的实地址转换成由硬盘101使用的相应物理地址。在本发明中,存储控制器25管理虚拟地址到相应物理地址的转换(因为传统的实地址空间已被去除)。但当不允许叠替时,根本不需要虚拟地址到物理地址的转换,因为在虚拟地址和物理地址之间存在直接的一对一对应关系。
在图2的实施例中,硬盘102的大小决定多处理器数据处理系统20的虚拟地址范围。换言之,硬盘102的物理地址范围与多处理器数据处理系统20的虚拟地址范围相同。然而,也能定义一个大于硬盘102的物理地址范围的虚拟地址范围。在这种情况中,软件试图访问硬盘102的物理地址范围以外的虚拟地址的尝试将被认为是一个异常,需要由异常中断进行处置。提供大于硬盘102物理地址范围的虚拟地址范围的另一方法是利用虚拟地址到物理地址转换表,如图7中描绘的虚拟地址到物理地址转换表29。
现在参考图3,图中显示根据本发明一个优选实施例在多处理器数据处理系统20内处理来自处理器的虚拟存储器存取请求的方法的高级逻辑流程图。响应来自处理器的一个虚拟存储器存取请求,确定该存取请求所请求的数据是否驻留在与该处理器关联的高速缓存存储器中,如块31中所示。如果所请求的数据是驻留在与该处理器关联的高速缓存存储器中,则所请求的数据被从相关联的高速缓存存储器发送到该处理器,如块35中描绘的那样。否则,如果所请求的数据没有驻留在与该处理器关联的高速缓存存储器中,则所请求数据的虚拟地址被转发到存储控制器,如图2中的存储控制器25,如块32中所示。然后由存储控制器把所请求数据的虚拟地址映射到相应的物理地址,如块33中描绘的那样。接下来,所请求的数据随后被从硬盘(如图2中的硬盘102)中取出,如块34中所示,然后所请求的数据被发送到该处理器,如块35中描绘的那样。
现在参考图4,图中描绘在其中纳入本发明第二优选实施例的多处理器数据处理系统的方框图。如图中所示,多处理器数据处理系统40包括多个中央处理单元(CPU)41a-41n,CPU 41a-41n中的每一个含有一个高速缓存存储器。例如,CPU 41a含有高速缓存存储器42a,CPU 41b含有高速缓存存储器42b,以及CPU 41n含有高速缓存存储器42n。CPU41a-41n和高速缓存存储器42a-42n通过互连44与存储控制器45及物理存储器高速缓存46耦合。优选地,物理存储器高速缓存46是基于动态随机存取存储器(DRAM)的存储设备;然而,也可以采用其他相似类型的存储设备也能被利用。存储控制器45包括物理存储器高速缓存目录49,用于跟踪物理存储器高速缓存。互连44用作高速缓存存储器42a-42n和IOCC 47之间通信事务的管道。IOCC 47通过硬盘适配器48与硬盘103耦合。
与图2中的存储控制器25相似,存储控制器45管理虚拟地址到相应物理地址的转换(因为传统的实地址空间已被去除)。再一次地,因为硬盘103的物理地址范围优选地与多处理器数据处理系统40的虚拟地址范围相同,还因为在多处理器数据处理系统40中不允许叠替,所以不需要虚拟地址到物理地址的转换。
物理存储器高速缓存46含有存储在硬盘103中的信息的子集。优选地,存储在物理存储器高速缓存46内的该信息子集是最近由CPU 41a-41n之中任何一个访问过的信息。在物理存储器高速缓存46的每个高速缓存行优选地包括一个基于物理地址的标记和一个相关联的数据页。尽管在物理存储器高速缓存46内的每个高速缓存行的数据粒度(单位)是一页,但也可采用其他数据粒度。物理存储器高速缓存目录49利用任何公知的高速缓存管理技术,如关联性、一致性、替换等,来跟踪物理存储器高速缓存46。在物理存储器高速缓存目录49中的每个条目优选地代表驻留在物理存储器高速缓存46中的一个或多个物理存储器页。如果在对一个数据页的虚拟存储器存取请求之后在物理存储器高速缓存46中存在一个“缺失(miss)”,则从硬盘103中提取所请求的数据页。根据预先确定的算法或虚拟存储器存取请求中的提示,也能从硬盘103中提取附加的数据页。
现在参考图5,图中描绘根据本发明的一个优选实施例在多处理器数据处理系统40内处理来自处理器的虚拟存储器存取请求的方法的高级逻辑流程图。响应来自处理器的一个虚拟存储器存取请求,确定存取请求所请求的数据页是否驻留在与该处理器关联的高速缓存存储器中,如块50中所示。如果所请求的数据页是驻留在与该处理器关联的高速缓存存储器中,则所请求的数据页被从相关联的高速缓存存储器发送到该处理器,如块58中描绘的那样。否则,如果所请求的数据页没有驻留在与该处理器关联的高速缓存存储器中,则所请求的数据页的虚拟地址被转发到存储控制器,如图4中的存储控制器45,如块51中所示。然后所请求数据页的虚拟地址被映射到相应的物理地址,如块52中描绘的那样。
接下来,确定所请求的数据页是否驻留在物理存储器高速缓存中,如图4中的物理存储器高速缓存46中,如块53中描绘的那样。如果所请求页是驻留在物理存储器高速缓存中,则所请求的数据页从物理存储器高速缓存发送到该处理器,如块58中描绘的那样。否则,如果所请求的数据页没有驻留在物理存储器高速缓存,则在物理存储器高速缓存中选出一个“受害者”(victim)页,如块54中所示。然后,该“受害者”页被写回硬盘,如图4中的硬盘103,如块55中描绘的那样。向硬盘回写数据页的详细情况将在下文中描述。所请求的数据页被从硬盘中取出,如块56中所示。接下来,物理存储器高速缓存被以所请求的数据页更新,如块57中描绘的那样,其后所请求的数据页随后被发送到该处理器,如块58中描绘的那样。
当由处理器请求的数据页没有存储在物理存储器高速缓存46中时,存储控制器45执行如下步骤序列:
1.首先,选择要以所请求数据页替换的“受害者”数据页。
2.然后存储控制器45发起一个猝发(burst)输入/输出(I/O)写操作,以把选定的“受害者”数据页写入硬盘103。可替代地,存储控制器45能向硬盘适配器48发送一个命令,指示硬盘适配器48启动直接存储器存取(DMA)传输,以把选定的“受害者”数据页从物理存储器高速缓存46传输到硬盘103。
3.接下来,存储控制器45发起一个猝发I/O读操作,以把所请求的数据页从硬盘103取出。可替代地,存储控制器45能向硬盘适配器48发送一个命令,指示硬盘适配器48启动一个DMA传输,以把所请求的页从硬盘103传输到物理存储器高速缓存46。
4.然后存储控制器45把所请求的数据页写入物理存储器高速缓存46并把所请求的数据页返回给发请求的处理器。
上述所有步骤的执行都无需操作系统软件的任何协助。
III.叠替
为了改善图4中的多处理器数据处理系统的效率并允许在各进程之间共享数据,允许虚拟地址到物理地址的叠替。因为当存在虚拟地址叠替时,一个以上的虚拟地址可能映射到单个物理地址,所以需要虚拟地址到物理地址的转换。根据本发明的一个优选实施例,使用一个叠替表以支持虚拟地址到物理地址的转换。
现在参考图6,图中描绘根据本发明的一个优选实施例的叠替表的方框图。如图所示,一个叠替表60的每个条目包括三个字段,即虚拟地址字段61、虚拟地址字段62以及有效位字段63。虚拟地址字段61含有主虚拟地址,而虚拟地址字段62含有副虚拟地址。对于叠替表60内的每个条目,主虚拟地址和副虚拟地址二者都被映射到一个物理地址。有效位字段63表明该特定字段是否有效。
为使叠替表60控制在一个合理的大小,未与另一虚拟地址叠替的任何虚拟地址在叠替表60中都没有条目。每次由处理器执行装入/存储指令或指令提取时都将搜索叠替表60。如果在叠替表60中找到一个匹配的虚拟地址,则该匹配条目的主虚拟地址(在虚拟地址字段61中)被转发到存储器层次结构。例如,如果请求在叠替表60中的虚拟地址C,则虚拟地址A,即该条目的主虚拟地址,被转发到与发送请求的处理器关联的高速缓存存储器,因为虚拟地址A和虚拟地址C二者指向同一个物理地址。这样,就存储器层次结构而言,在叠替表60内的副虚拟地址在实际上并不存在。
现在参考图7,图中描绘在其中纳入本发明第三优选实施例的多处理器数据处理系统的方框图。如图所示,多处理器数据处理系统70包括多个中央处理单元(CPU)71a-71n,CPU 71a-71n中的每一个含有一个高速缓存存储器。例如,CPU 71a含有高速缓存存储器72a,CPU 71b含有高速缓存存储器72b,以及CPU 71n含有高速缓存存储器72n。CPU 71a-71n和高速缓存存储器72a-72n通过互连74与存储控制器75及物理存储器高速缓存76耦合。优选地,物理存储器高速缓存76是基于DRAM的存储设备,但也可以采用其他相似类型的存储设备。互连74用作高速缓存存储器72a-72n和IOCC 77之间通信事务的管道。IOCC 77通过硬盘适配器78与硬盘104耦合。
在多处理器数据处理系统70中,虚拟地址到物理地址的叠替是允许的。这样,CPU71a-71n中的每一CPU分别包括一个相应的叠替表38a-38n,以协助虚拟地址到物理地址的转换。此外,在硬盘104中提供一个虚拟地址到物理地址转换表(VPT)29,用于执行虚拟地址到物理(盘)地址的转换。具体地说,盘空间104的一个区域被保留,用于包含要由多处理器数据处理系统70利用的整个虚拟地址范围的VPT 29。VPT 29的存在允许多处理器数据处理系统70的虚拟地址范围大于硬盘104的物理地址范围。利用VPT 29,操作系统可以从管理地址转换的负担中解脱出来。
现在参考图8,图中描绘根据本发明的一个优选实施例的VPT 29的方框图。如图所示,VPT 29的每个条目包括三个字段,即虚拟地址字段36、物理地址字段37以及有效位字段38。VPT 29为多处理器数据处理系统70(见图7)中使用的每个虚拟地址包含一个条目。对VPT 29中的每个条目,虚拟地址字段36含有一个虚拟地址,物理地址字段37含有虚拟地址字段36中的虚拟地址所对应的一个物理地址,而有效位字段38指出该特定字段是否有效。如果存储控制器75(见图7)接收到对一个虚拟地址条目的虚拟地址存取请求,而该条目中的有效位字段38是无效的,则存储控制器75可执行如下两个选项之一:
1.向发送请求的处理器发送一个异常中断(即把该存取请求作为错误情况处理);或
2.以未使用的物理地址(如果可用的话)更新该条目,设置有效位字段38为有效,并继续处理。
回来参考图7,存储控制器75与物理存储器高速缓存76耦合。物理存储器高速缓存76含有存储在硬盘104中的信息的子集。优选地,存储在物理存储器高速缓存76内的信息子集是最近被任何一个CPU 71a-71n访问过的信息。优选地,物理存储器高速缓存76的每个高速缓存行包括一个基于物理地址的标记和相关联的数据页。存储控制器75还管理虚拟地址到相应的物理地址的转换。存储控制器75包括VPT高速缓存39和物理存储器目录79。VPT高速缓存39存储硬盘104内VPT 29的最近使用过的部分。在VPT高速缓存39内的每个条目是一个VPT条目(对应于来自VPT29的最近使用过的条目之一)。物理存储器高速缓存目录79利用任何公知的高速缓存管理技术,如关联性、一致性、替换等,来跟踪物理存储器高速缓存76。在物理存储器高速缓存目录79中的每个条目优选地代表驻留在物理存储器高速缓存76中的一个或多个物理存储器页。如果在对一个数据页的虚拟存储器存取请求之后在物理存储器高速缓存76中存在一个“缺失”,则从硬盘104中提取所请求的数据页。根据预先确定的算法或该页请求中的提示,也能从硬盘104中提取附加的数据页。
存储控制器75被配置成知道VPT 29位于硬盘104上什么地方,还能把VPT 29的一部分高速缓存到物理存储器高速缓存76,还能把该子集的一部分高速缓存到存储控制器75中的一个更小的专用VPT高速缓存39中。这样的二级VPT高速缓存层次结构可以防止存储控制器75必须访问物理存储器高速缓存76才能获得最近使用过的VPT条目。它还防止存储控制器75必须访问硬盘104才能获得较大的最近使用的VPT条目池。
现在参考图9,图中显示根据本发明一个优选实施例在多处理器数据处理系统70内处管理来自处理器的存取请求的方法的高级逻辑流程图。响应来自处理器的一个虚拟存储器存取请求,确定访问请求所请求的虚拟地址是否驻留在与该处理器关联的一个叠替表中,如块80中所示。如果所请求的虚拟地址是驻留在与该处理器关联的叠替表中,则从与该处理器关联的叠替表中选出主虚拟地址,如决81中描绘的那样。否则,如果所请求的虚拟地址没有驻留在与该处理器关联的叠替表中,则所请求的虚拟地址被直接送到高速缓存存储器。接下来,确定该存取请求所请求的数据是否驻留在与该处理器关联的高速缓存存储器中,如块82中所示。如果该存取请求所请求的数据是驻留在与该处理器关联的高速缓存存储器中,则所请求的数据被从相关联的高速缓存存储器发送到该处理器。如块99中描绘的那样。否则,如果所请求的数据没有驻留在与该处理器关联的高速缓存存储器中,则所请求数据的虚拟地址被转发到存储控制器,如图7中的存储控制器75,如块83中所示。然后,确定所请求数据的虚拟页地址是否驻留在VPT高速缓存中,如图7中的VPT高速缓存39,如块84中描绘的那样。
如果所请求数据的虚拟页地址是驻留在一个VPT高速缓存中,则该虚拟地址被转换为相应的物理地址,如块85中所示。然后确定所请求的页是否驻留在一个物理存储器高速缓存中,如图7中的物理存储器高速缓存76,如块86中描绘的那样。如果所请求的页是驻留在该物理存储器高速缓存中,则所请求的数据被从物理存储器高速缓存发送到该处理器,如块99中描绘的那样。否则,如果所请求的页没有驻留在该物理存储器高速缓存中,则在该物理存储器高速缓存中选出一个“受害者”页,它将被包含所请求数据的数据页替换,如块87中所示。然后该“受害者”页被写回硬盘,如图7中的硬盘104,如块88中描绘的那样。所请求的数据页被从硬盘中取出,如块89中所示。该物理存储器高速缓存被以所请求的数据页更新,如块98中描绘的那样,其后所请求的数据页被发送到该处理器,如块99中描绘的那样。
如果所请求的数据页的虚拟地址没有驻留在VPT高速缓存中,则在该VPT高速缓存中选择一个“受害者”VPT条目(VPE),如块65中所示。然后,该“受害者”VPE被写回硬盘,如果它已被存储管理器修改过的话,如块66中描绘的那样。所请求的VPE被从硬盘内的VPT(如图7中的VPT 29)中取出,如块67中所示,该VPT高速缓存被以所请求的VPE更新,如块68中描绘的那样,然后处理过程返回到块84。
IV.存储存取请求限定符
现在参考图10,图中显示根据本发明的一个优选实施例来自一个处理器的虚拟存储器存取请求格式的方框图。虚拟存储器存取请求能从一个处理器发送到存储控制器,如图2中的存储控制器25、图4中的存储控制器45或图7中的存储控制器75。如图10中所示,一个虚拟存储器存取请求90包括五个字段,即虚拟地址字段91、不取消分配(not-deallocate)字段92、不分配(not-allocate)字段93、预取指示符(prefetch indicator)字段94以及预取页数(number of page to prefetch)字段95。字段92-95之值可由用户级应用软件编程。这允许应用软件把“提示”传送给管理“虚拟化”存储器的存储控制器。
虚拟地址字段91含有由处理器请求的数据或指令的虚拟地址。不取消分配字段92(优选地为1位宽)含有关于该数据是否应从物理存储器高速缓存(如图2中的物理存储器高速缓存25、图4中的物理存储器高速缓存46或图7中的物理存储器高速缓存76)中取消分配的指示。在物理存储器高速缓存内的每个目录条目也有一个与不取消分配字段92中的位类似的不取消分配位。访问请求90能用于设置或重置(reset)物理存储器高速缓存的目录条目中的不取消分配位。在自加电以来存储控制器首次接收来自一个处理器的对一地址的存取请求之后,并且如果在不取消分配字段92中的位被设为逻辑“1”,则存储控制器从硬盘中读取所请求的数据。然后该存储控制器把所请求的数据写入物理存储器高速缓存,并在存储控制器更新相关联的物理存储器高速缓存目录条目时设置其不取消分配字段中的位。在其后物理存储器高速缓存中出现“缺失”时,存储控制器的高速缓存替换方案(scheme)检查可能的替换候选者的目录条目中不取消分配字段中的位。其不取消分配字段中的位被设为逻辑“1”的任何可能受害者将不被考虑作为替换候选者。结果,在其相应的不取消分配字段中的位被设为逻辑“1”的那些高速缓存行被迫保存在物理存储器高速缓存中,直至其后接收对该高速缓存行的存取,而该存取将该高速缓存行的不取消分配字段中的位重设为逻辑“0”为止。
不分配字段93、预取字段94和预取页数字段95是可选提示位字段的实例。这些提示位字段允许存储控制器在已处理了所请求的数据之后进行某些操作,例如预取。不分配字段93含有1位,指出所请求的数据是否只被发请求的处理器需要一次,因而不需要物理存储器高速缓存存储该请求的数据。预取字段94含有1位,指出是否需要预取。如果设置了预取字段94中的位,则预取请求数据随后的更多数据。预取页数字段95含有需被预取的页数。
V.VPT中断
在图7的多处理器数据处理系统中,当所请求的VPE没有驻留在物理存储器高速缓存76中,或所请求的物理页没有在物理存储器高速缓存76中时,存储控制器75不得不访问硬盘104以取出所请求的数据和/或VPE。对硬盘104的此类存取所占用的时间比存取物理存储器高速缓存76要长得多。由于应用软件进程不知道会发生较长的存取延迟,由存储控制器75通知操作系统满足该数据请求需存取硬盘是有好处的,这样操作系统能保存当前进程的状态并切换到另一个进程。
存储控制器75在收集了诸如发送请求的处理器所请求数据的所在位置等信息之后编译VPT中断包。以图7所示实施例为例,多处理器数据处理系统70的存储区能被分成三个区,即区1、区2和区3。优选地,区1包括不与发送请求的处理器关联的所有对等高速缓存存储器。例如,如果发送请求的处理器是CPU 71a,则对等高速缓存存储器包括高速缓存72b-72n。区2包括全部物理存储器高速缓存,如图7中的物理存储器高速缓存76。区3包括全部物理存储器,如硬盘29。区1中的存储设备的存取时间约为100ns,区2中的存储设备的存取时间约为200ns,而区3中的存储设备的存取时间约为1ms或更长。
一旦存储控制器75确定了所请求数据的区位置,存储控制器75便编译一个VPT中断包并将它发送到发送请求的处理器。由用于请求该数据的总线标记中包含的处理器标识(ID)可知道发送请求的处理器。
现在参考图11,图中描绘根据本发明的一个优选实施例对发送请求的处理器发送的中断包的方框图。如图中所示,中断包100包括一个地址字段101、一个标记字段102以及区字段103-105。中断包100是一种特殊的总线事务,其中地址字段101是引起该中断的存取请求的虚拟地址。总线标记102是引起该中断的存取请求所使用的同一标记。优选地,每个区字段103-105为1位长,用以表明所请求数据的位置。例如,如果所请求的数据位于物理存储器高速缓存76中,则区2字段104中的位将被设置,而区字段103和105中的位将不被设置。类似地,如果所请求的数据位于硬盘104中,则区3字段105中的位将被设置而区字段103和104中的位将不被设置。这样,发送请求的处理器能识别中断包并找出所请求数据的位置。
发送请求的处理器在收到一个VPT中断包后便把该VPT中断包中的虚拟地址与所有未完成的装入/存储操作的虚拟地址进行比较。如果发现一个匹配,则该处理器有选择,集可以产生一个中断以保存当前进程的状态并在所请求的VPE条目和/或相关联的数据页被从硬盘104中取出时切换到另一进程。
对于更精巧的实现,CPU 71a-71n中的每一个包括一组区槽(zoneslot)。例如,在图7中,CPU 71a包括区槽组5a,CPU 71b包括区槽组5b,以及CPU 71n包括区槽组5n。在每个区槽组中的区槽个数应对应于先前定义的、在中断包中的区字段数。例如,中断包100有三个区字段,这意味着区槽组5a-5n中的每个有三个相应的区槽。发送请求的处理器在收到一个中断包(如中断包100)之后,以一时间戳设置一个相应区槽。例如,在接收到中断包100之后,该中断包100是要给CPU 71b的,它在区字段105中的位被设置,CPU 71b便把区槽组5b的第三区槽加上时间戳。这样,CPU 71b就知道所请求的数据存储在硬盘104上。此时,CPU71b能比较时间戳信息和当前处理信息,以决定是否等待所请求的数据或在从硬盘104中取出所请求的VPE条目和/或相关联的数据页的同时保存当前进程状态并切换到另一进程,因为在所请求的数据可用之前这种取出过程将占用约1ms。在请求的数据可用之前,另一进程完成之后,可由CPU71b再次进行这种时间比较以便做出另一个决定。
如前所述,本发明提供了一种方法,用以改进能利用虚拟存储器处理方案的现有技术的数据处理系统。本发明的优点包括去除了为直接连接的存储装置进行的散列处理(hashing)。如果在处理器中不需要虚拟地址到实地址的转换,则能更快速的存取较高级的高速缓存存储器。如果在处理器中不发生虚拟地址到实地址的转换,则处理器的实现将更加简单,因为需要较小的硅面积和较少的功耗。利用本发明,物理存储器高速缓存的高速缓存行大小甚至页大小对操作系统都是不可见的。
本发明也解决了利用操作系统的虚拟存储器管理器(VMM)管理虚拟存储器所伴随的问题。PFT(如现有技术中定义的)在本发明的数据处理系统中是不存在的。这样,操作系统的VMM能被显著地简化或完全去除。
尽管已经参考一优选实施例具体示出和描述了本发明,但本领域技术人员将会理解,可在形式和细节上对其进行各种修改而不偏离本发明的精神和范围。