CN1260656C - 能够使用虚拟存储器处理模式的数据处理系统 - Google Patents
能够使用虚拟存储器处理模式的数据处理系统 Download PDFInfo
- Publication number
- CN1260656C CN1260656C CNB2003101030010A CN200310103001A CN1260656C CN 1260656 C CN1260656 C CN 1260656C CN B2003101030010 A CNB2003101030010 A CN B2003101030010A CN 200310103001 A CN200310103001 A CN 200310103001A CN 1260656 C CN1260656 C CN 1260656C
- Authority
- CN
- China
- Prior art keywords
- hard disk
- address
- physical
- cache memory
- virtual
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本发明公开了一种用于支持不具备系统存储器的数据支持系统的别名支持方法。数据处理系统包括多个处理单元。处理单元包括在比实地址空间更大的虚拟地址空间中运行的易失性高速缓冲存储器。将处理单元以及相应的易失性高速缓冲存储器耦合到在物理地址空间中运行的存储控制器。通过互连,将处理单元和存储控制器耦合到硬盘。处理单元包括一个别名表,后者把至少两个虚拟地址与指向硬盘中的一个存储单元的物理盘地址联系起来。硬盘包含一个虚拟物理转换表,该转换表将一个所述易失性高速缓冲存储器的虚拟地址,转换为指向硬盘中的一个存储单元的物理磁盘地址,而无需通过实地址转换。
Description
技术领域
本发明一般涉及数据处理系统,确切地说,涉及具有存储器层次结构的数据处理系统。更确切地说,本发明涉及无需操作系统的协助就能管理虚拟存储器处理模式的数据处理系统。
背景技术
现有存储器层次结构通常包括经由输入/输出通道转换器与处理器组件相连的一级或多级高速缓冲存储器、系统存储器(也称为实存储器)和硬盘(也称为物理存储器)。当存在多级高速缓冲存储器时,通常称为一级(L1)高速缓冲存储器的第一级高速缓冲存储器的存取时间最快,每比特的成本最高。诸如二级(L2)高速缓存和三级(L3)高速缓存之类的其他级别的高速缓冲存储器的存取时间较慢,每比特的成本也相对较低。通常,高速缓冲存储器的级别越低,其存取时间越慢。
通常,利用系统存储器保存采用虚拟存储器处理模式的数据处理系统的处理地址空间的最常用部分。在硬盘上保存处理地址空间的其他部分,并且在需要时进行检索。在执行软件应用时,操作系统将虚拟地址转换为实地址。在系统存储器中存储的页帧表(PFT)的协助下,以存储页面的粒度进行转换。处理器高速缓存通常包括后备式转换缓冲器(TLB),TLB作为最近使用的PFT条目(PTE)的高速缓存。
当发起数据加载、数据存储或取指令请求时,在TLB中查找与该请求关联的数据的虚拟地址,以查找包含该虚拟地址之相应实地址的PTE。如果在TLB中找到该PTE,则利用相应的实地址向存储器层次结构发送数据加载、数据存储或取指令请求。如果在TLB中找不到该PTE,则利用系统存储器内的PFT定位相应的PTE。然后将该PTE重新加载到TLB中,并且转换处理重新开始。
由于空间限制,不可能将全部虚拟地址装到系统存储器内的PFT中。如果在PFT中找不到虚实地址转换,或者如果能够找到转换但是与该页面关联的数据并未驻留在系统存储器中,将产生缺页以中断转换处理,从而操作系统能够更新一个新转换的PFT。此类更新处理包括:将替换页面从系统存储器移动到硬盘;使得所有处理器的TLB中的替换PTE的所有副本无效;将与新转换关联的数据页面从硬盘移动到系统存储器;更新PFT;以及重新开始转换处理。
如上所述,通常由操作系统管理虚拟存储器,管理PFT以及系统存储器与硬盘之间的数据页面调度的操作系统部分称为虚拟存储器管理器(VMM)。然而,利用操作系统管理虚拟存储器有许多问题。例如,VMM通常并不了解硬件结构,因此受VMM控制的替换策略通常并不是非常有效。另外,VMM代码非常复杂,并且维护跨多个硬件平台或具有多种不同存储器配置的单硬件平台的VMM代码都是非常复杂和十分昂贵的。本公开提供上述问题的解决方案。
发明内容
根据本发明的一个优选实施例,一种能够利用虚拟存储器处理模式的数据处理系统,所述数据处理系统包括:
多个处理单元,其中所述多个处理单元包括在比实地址空间更大的虚拟地址空间中运行的易失性高速缓冲存储器;
与所述多个处理单元和易失性高速缓冲存储器相耦合的互连;
经由所述互连与所述多个处理单元相耦合的硬盘;
与所述多个处理单元中的至少一个单元相耦合的别名表存储单元,所述别名表用于把至少两个虚拟地址与指向所述硬盘中的一个存储单元的物理盘地址联系起来;
在所述硬盘内存储的虚拟物理转换表存储单元,所述虚拟物理转换表用于将一个所述易失性高速缓冲存储器的虚拟地址,转换为指向所述硬盘中的一个存储单元的物理盘地址,而无需通过实地址转换;以及与所述互连相耦合的存储控制器,用于将某个易失性高速缓冲存储器的虚拟地址,映射为指向所述硬盘内之存储单元的物理盘地址,而无需通过实地址转换。
根据本发明的一个优选实施例,能够利用虚拟存储器处理模式的数据处理系统包括众多处理单元。处理单元包括在比实地址空间更大的虚拟地址空间中运行的易失性高速缓冲存储器。将处理单元以及相应的易失性高速缓冲存储器耦合到在物理地址空间中运行的存储控制器。通过互连,将处理单元和存储控制器耦合到硬盘。处理单元包括一个别名表,后者把至少两个虚拟地址与指向硬盘中之存储单元的物理盘地址联系起来。硬盘包含一个虚拟物理转换表,该转换表将某个所述易失性高速缓冲存储器的虚拟地址,转换为指向硬盘中之存储单元的物理盘地址,而无需通过实地址转换。与物理高速缓冲存储器相耦合的存储控制器,能够将某个易失性高速缓冲存储器的虚拟地址,映射为指向硬盘内之存储单元的物理盘地址,而无需通过实地址转换。物理高速缓冲存储器包含硬盘内的信息的子集。
通过阅读详细说明书,本发明的所有目的、特征和优点将更加明显。
附图说明
通过连同附图阅读所述实施例的详细说明,将更加了解本发明,其最佳使用方式,其他目的以及其优点。其中附图为:
图1表示根据现有技术的多处理器数据处理系统的框图;
图2表示包含本发明一个优选实施例的多处理器数据处理系统的框图;
图3表示用于处理图2所示多处理器数据处理系统内的一个处理器的虚拟存储器存取请求的方法的高级逻辑流程图;
图4表示包含本发明第二实施例的多处理器数据处理系统的框图;
图5表示用于处理图4所示多处理器数据处理系统内的一个处理器的虚拟存储器存取请求的方法的高级逻辑流程图;
图6表示根据本发明一个优选实施例的别名表的框图;
图7表示包含本发明第三实施例的多处理器数据处理系统的框图;
图8表示图7所示的、根据本发明一个优选实施例的多处理器数据处理系统内的虚拟物理地址转换表的框图;
图9表示用于处理图7所示多处理器数据处理系统内的一个处理器的虚拟存储器存取请求的方法的高级逻辑流程图;
图10表示根据本发明一个优选实施例的处理器的虚拟存储器存取请求的框图;以及
图11表示根据本发明一个优选实施例的请求处理器的中断数据包的框图。
具体实施例
为说明的目的,利用具有单级高速缓冲存储器的多处理器数据处理系统描述本发明。可以理解,本发明的特征适用于具有多级高速缓冲存储器的数据处理系统。
I.现有技术
现在参照附图,特别地,参照图1,该图表示根据现有技术的多处理器数据处理系统的框图。如图所示,多处理器数据处理系统10包括多个中央处理单元(CPU)11a-11n,各CPU 11a-11n均包含一个高速缓冲存储器。例如,CPU 11a包含高速缓冲存储器12a,CPU 11b包含高速缓冲存储器12b,CPU 11n包含高速缓冲存储器12n。通过互连14,将CPU 11a-11n和高速缓冲存储器12a-12n连接到存储器控制器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;更新PFT 19;以及重新开始转换处理。通常由操作系统控制缺页处理,此类装置具有上述缺陷。
II.新配置
根据本发明一个优选实施例,从数据处理系统10中彻底除去图1中的系统存储器16。由于从数据处理系统中彻底除去系统存储器16,所以必须直接从硬盘上取全部数据和指令,并利用存储控制器管理将数据和指令传送到硬盘,以及从硬盘上传送数据和指令。本质上,在本发明中系统存储器是“虚拟化的”。
在本发明的最简单实施例中,并不提供虚拟物理地址别名。将别名定义为多个虚拟地址到单一物理地址的映射。由于没有别名时虚拟地址只能映射到单一物理地址,因此,不需要虚拟物理地址转换。
现在参照图2,该图表示包含本发明一个优选实施例的多处理器数据处理系统的框图。如图所示,多处理器数据处理系统20包括多个中央处理单元(CPU)21a-21n,各CPU 21a-21n均包含一个高速缓冲存储器。例如,CPU 21a包含高速缓冲存储器22a,CPU 21b包含高速缓冲存储器22b,CPU 21n包含高速缓冲存储器22n。通过互连24,将CPU 21a-21n和高速缓冲存储器22a-22n连接到存储控制器25。互连24充当高速缓冲存储器22a-22n与IOCC 27之间的通信处理通道。经由硬盘适配器28,将IOCC27连接到硬盘102。
在现有技术(见图1)中,硬盘适配器18以及与硬盘适配器18关联的设备驱动软件将高速缓冲存储器22a-22n和系统存储器16使用的实地址,转换为硬盘101使用的对应物理地址。在本发明中,存储控制器25管理虚拟地址到对应物理地址的转换(由于已经消除了传统的实地址空间)。但是当不提供别名时,完全不需要虚拟地址到物理地址的转换,因为虚拟地址与物理地址之间存在一一对应。
在图2的实施例中,硬盘102的大小规定多处理器数据处理系统20的虚拟地址范围。换句话说,硬盘102的物理地址范围与多处理器数据处理系统20的虚拟地址范围相同。然而,也可以定义比硬盘102的物理地址范围更大的虚拟地址范围。此时,如果软件访问硬盘102之物理地址范围以外的虚拟地址,将视为例外,并需要由例外中断进行处理。提供比硬盘102的物理地址范围更大的虚拟地址范围的另一种方法是利用虚拟物理转换表,如图7所示的虚拟物理转换表29。
现在参照图3,该图表示用于处理根据本发明的一个优选实施例的多处理器数据处理系统内的一个处理器的虚拟存储器存取请求的方法的高级逻辑流程图。响应一个处理器的虚拟存储器存取请求,确定存取请求的请求数据是否驻留在与该处理器关联的高速缓冲存储器中,如框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。通过互连44,将CPU 41a-41n和高速缓冲存储器42a-42n连接到存储控制器45和物理高速缓冲存储器46。物理高速缓冲存储器46最好为基于动态随机存取存储器(DRAM)的存储设备;然而,也可以使用其他类似种类的存储设备。存储控制器45包括用于跟踪物理高速缓冲存储器46的物理高速缓冲存储器目录49。互连44充当高速缓冲存储器42a-42n与IOCC 47之间的通信处理通道。经由硬盘适配器48,将IOCC 47连接到硬盘103。
与图2所示的存储控制器25类似,存储控制器45管理虚拟地址到对应物理地址的转换(因为已经消除了传统的实地址空间)。此外,由于硬盘103的物理地址范围与多处理器数据处理系统40的虚拟地址范围相同,并且由于多处理器数据处理系统40中不提供别名,所以不需要虚拟地址到物理地址的转换。
物理高速缓冲存储器46包含硬盘103中存储的信息的子集。物理高速缓冲存储器46中存储的信息子集最好为CPU 41a-41n中任一CPU最近访问的信息。物理高速缓冲存储器46中各高速缓存线最好包括基于物理地址的标记以及关联数据页面。尽管物理高速缓冲存储器46中的各高速缓存线的数据粒度为一个页面,但是也可以采用其他数据粒度。物理高速缓冲存储器目录49利用众所周知的高速缓存管理技术,如结合性,相关性,替换等,跟踪物理高速缓冲存储器46。物理高速缓冲存储器目录49中的各条目优选地表示驻留在物理高速缓冲存储器46中的一个或多个物理存储器页面。如果在某个数据页面的虚拟存储器存取请求后物理高速缓冲存储器46中出现“缺页”,则从硬盘103中取出请求的数据页面。同时,基于预定算法或虚拟存储器存取请求的提示,从硬盘103中取出其他数据页面。
现在参照图5,该图表示用于处理根据本发明的一个优选实施例的多处理器数据处理系统40内的一个处理器的虚拟存储器存取请求的方法的高级逻辑流程图。响应一个处理器的虚拟存储器存取请求,确定存取请求的请求数据页面是否驻留在与该处理器关联的高速缓冲存储器中,如框50所示。如果请求数据页面驻留在与该处理器关联的高速缓冲存储器中,则将请求数据页面从关联的高速缓冲存储器中发送到该处理器,如框58所示。否则,如果请求数据页面没有驻留在与该处理器关联的高速缓冲存储器中,则将请求数据页面的虚拟地址转发到诸如图4所示的存储控制器45之类的存储控制器,如框51所示。然后,将请求数据页面的虚拟地址映射到对应物理地址,如框52所示。
接着,确定请求数据页面是否驻留在诸如图4所示的物理高速缓冲存储器46之类的物理高速缓冲存储器中,如框53所示。如果请求页面驻留在物理高速缓冲存储器中,则将请求数据页面从物理高速缓冲存储器中发送到该处理器,如框58所示。否则,如果请求数据页面没有驻留在物理高速缓冲存储器中,则在物理高速缓冲存储器中选择一个“牺牲”页面,如框54所示。然后将“牺牲”页面写回到诸如图4所示的硬盘103之类的硬盘上,如框55所示。下文叙述将数据页面写回到硬盘上的细节。从硬盘上取出请求数据页面,如框56所示。接着,利用请求数据页面更新物理高速缓冲存储器,如框57所示,随后将请求数据页面发送到该处理器,如框58所示。
如果物理高速缓冲存储器46中并未存储某个处理器请求的数据页面,则存储控制器46执行以下步骤:
1.首先,选择利用请求数据页面进行替换的“牺牲”数据页面;
2.接着,存储控制器45发起突发输入/输出(I/O)写操作,以将选定的“牺牲”数据页面写回到硬盘103上。作为选择,存储控制器45也可以向硬盘适配器48发送一条命令,指示硬盘适配器48将选定的“牺牲”数据页面,从物理高速缓冲存储器46直接存储器存取(DMA)传送到硬盘103。
3.接着,存储控制器45发起突发I/O读操作,以从硬盘103中取出请求数据页面。作为选择,存储控制器45也可以向硬盘适配器48发送一条命令,以指示硬盘适配器48将请求页面,从硬盘103DMA传送到物理高速缓冲存储器46。
4.然后,存储控制器45将请求数据页面写到物理高速缓冲存储器46中,并向请求处理器返回请求数据页面。
无需操作系统软件的协助,就能执行以上所有步骤。
III.别名
为了提高图4所示的多处理器数据处理系统40的效率,为了支持各种处理之间的数据共享,允许虚拟物理地址别名。由于存在虚拟地址别名时多个虚拟地址可以映射到单一物理地址,所以需要虚拟物理地址转换。根据本发明的一个优选实施例,利用别名表支持虚拟物理地址转换。
现在参照图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。通过互连74,将CPU 71a-71n和高速缓冲存储器72a-72n连接到存储控制器75和物理高速缓冲存储器76。物理高速缓冲存储器76最好为基于DRAM的存储设备;然而,也可以使用其他类似种类的存储设备。互连74充当高速缓冲存储器72a-72n与IOCC77之间的通信处理通道。经由硬盘适配器78,将IOCC 77连接到硬盘104。
多处理器数据处理系统70允许虚拟物理地址别名。因此,各CPU71a-71n均包含一个别名表38a-38n,以协助虚拟物理地址转换。另外,在硬盘104内提供虚拟物理转换表(VPT)29,以执行虚拟物理(盘)地址转换。特别地,保留盘空间104的一个区域,以包含多处理器数据处理系统70使用的全部虚拟地址范围的VPT 29。存在VPT 29允许多处理器数据处理系统70的虚拟地址范围大于硬盘104的物理地址范围。借助VPT29,能够减轻操作系统管理地址转换的负担。
现在参照图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中任一CPU最近访问的信息。物理高速缓冲存储器76中各高速缓存线最好包括基于物理地址的标记以及关联数据页面。存储控制器75还管理虚拟地址对相应的物理地址的转换。存储控制器75包括一个VPT高速缓存39和一个物理存储器目录79。VPT高速缓存39存储硬盘104内最近使用的部分VPT 29。VPT高速缓存39内的每个条目均是一个VPT条目(与VPT 29中最近使用的某个条目相对应)。物理高速缓冲存储器目录79利用众所周知的高速缓冲管理技术,如结合性,相关性,替换等,跟踪物理高速缓冲存储器76。物理高速缓冲存储器目录79中的各条目表示驻留在物理高速缓冲存储器76中的一个或多个物理存储器页面。如果在某个数据页面的虚拟存储器存取请求后物理高速缓冲存储器76中出现“缺页”,则从硬盘104中取出请求的数据页面。同时,基于预定算法或页面请求的提示,从硬盘104中取出其他数据页面。
配置存储控制器75,以了解VPT 29在硬盘104上的位置,并将VPT29的一部分高速缓存到物理高速缓冲存储器76中,并将该子集的一部分高速缓存到存储控制器75内的容量较少的专用VPT高速缓存39中。上述两级VPT高速缓存层次结构,能够防止存储控制器75为获得最近使用的VPT条目而访问物理高速缓冲存储器76。同时,能够防止存储控制器75为获得最近使用的VPT条目的更大缓冲池而访问硬盘104。
现在参照图9,该图表示用于处理根据本发明的一个优选实施例的多处理器数据处理系统70内的一个处理器的存取请求的方法的高级逻辑流程图。响应处理器的虚拟存储器存取请求,确定存取请求的请求虚拟地址是否驻留在与该处理器关联的别名表中,如框80所示。如果请求的虚拟地址驻留在与该处理器关联的别名表中,则从与该处理器关联的别名表中选择主虚拟地址,如框81所示。否则,如果请求的虚拟地址没有驻留在与该处理器关联的别名表中,则将请求的虚拟地址直接传送给高速缓冲存储器。接着,确定存取请求的请求数据是否驻留在与该处理器关联的高速缓冲存储器中,如框82所示。如果存取请求的请求数据驻留在与该处理器关联的高速缓冲存储器中,则将请求的数据从关联的高速缓冲存储器中发送到该处理器,如框99所示。否则,如果请求的数据没有驻留在与该处理器关联的高速缓冲存储器中,则将请求的数据的虚拟地址转发到诸如图7所示的存储控制器75之类的存储控制器,如框83所示。然后确定请求的数据的虚拟页面地址是否驻留在诸如图7所示的VPT高速缓存39之类的VPT高速缓存中,如框84所示。
如果请求数据的虚拟页面地址驻留在VPT高速缓存中,则将虚拟地址转换为对应的物理地址,如框85所示。然后确定请求页面是否驻留在诸如图7所示的物理高速缓冲存储器76之类的物理高速缓冲存储器中,如框86所示。如果请求页面驻留在物理高速缓冲存储器中,则将请求的数据从物理高速缓冲存储器发送到该处理器,如框99所示。否则,如果请求页面没有驻留物理高速缓冲存储器中,则在物理高速缓冲存储器中选择一个“牺牲”页面,以替换为包含请求数据的数据页面,如框87所示。然后将“牺牲”页面写回到诸如图7所示的硬盘104之类的硬盘上,如框88所示。从硬盘上取出请求数据页面,如框89所示。利用请求数据页面更新物理高速缓冲存储器,如框98所示,随后将请求数据页面发送到该处理器,如框99所示。
如果请求数据页面的虚拟地址没有驻留在VPT高速缓存中,则在VPT高速缓存中选择一个“牺牲”VPT条目(VPE),如框65所示。然后将“牺牲”VPE写回到硬盘上,前提是存储控制器已经修改了该条目,如框66所示。从诸如图7所示的VPT 29之类的硬盘内的VPT中取出所需的VPE,如框67所示。利用所需的VPE更新VPT高速缓存,如框68所示,然后该处理返回到框84。
IV.存储访问请求限定符
现在参照图10,该图表示根据本发明的一个优选实施例的处理器的虚拟存储器存取请求格式的框图。处理器向诸如图2所示的存储控制器25,图4所示的存储控制器45或图7所示的存储控制器75之类的存储控制器发送虚拟存储器存取请求。正如图10所示,虚拟存储器存取请求90包含五个字段,即,虚拟地址字段91,非解除分配字段92,不分配字段93,预取标识符字段94,以及预取页数字段95。可以使用用户级的应用软件对字段92-95的数值进行编程。从而允许应用软件向管理“虚拟”存储器的存储控制器传送“提示”。
虚拟地址字段91包含处理器请求的数据或指令的虚拟地址。其长度最好为1比特的非解除分配字段92包含一个标识符,后者涉及是否解除分配诸如图2所示的物理高速缓冲存储器25,图4所示的物理高速缓冲存储器46,或图7所示的物理高速缓冲存储器76之类的物理高速缓冲存储器中的数据。物理高速缓冲存储器内的各目录条目具有与非解除分配字段92中的数据位类似的非解除分配位。利用存取请求90设置或复位物理高速缓冲存储器中的目录条目内的非解除分配位。在由于加电而首次收到处理器对某个地址的存取请求后,如果非解除分配字段92中的数据位为逻辑“1”,则存储控制器从硬盘上读取请求的数据。然后存储控制器将请求的数据写到物理高速缓冲存储器中,并且在存储控制器更新有关物理高速缓冲存储器目录条目时,设置非解除分配字段中的数据位。当物理高速缓冲存储器中后续出现“缺页”时,存储控制器的高速缓存替换模式检查可能替换选项的目录条目中的非解除分配字段的数据位。从替换选项中去除其非解除分配字段之数据位为逻辑“1”的可能牺牲页面。因此,在物理高速缓冲存储器中强行保留其相应非解除分配字段之数据位为逻辑“1”的高速缓存线,直至收到将高速缓存线的非解除分配字段之数据位复位成逻辑“0”的后续高速缓冲线存取请求。
不分配字段93,预取标识符字段94以及预取页数字段95为可选提示位字段。提示位字段允许存储控制器在处理请求的数据后执行某些操作,如预取操作。不分配字段93包含一个比特,表示请求处理器是否只需存取请求的数据一次,因此无需利用物理高速缓冲存储器存储请求的数据。预取字段94包含一个比特,表示是否需要预取操作。如果已经设置预取字段94的数据位,则将预取请求的数据之后的多个连续数据。预取页数字段95包含需要预取页数。
V.VPT中断
在图7所示的多处理器数据处理系统70中,如果所需的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中断数据包中的虚拟地址与所有未完成的加载/存储操作的虚拟地址。如果发现匹配,则处理器可以选择生成一个中断以保存当前进程状态,并且在从硬盘104中取出请求的VPE条目和/或有关数据页面时,切换到另一个进程。
为了获得更精致的实现,各CPU 71a-71n均包括一组区域位置(zoneslot)。例如,在图7中,CPU 71a包括区域位置集合5a,CPU 71b包括区域位置集合5b,CPU 71n包括区域位置集合5n。各区域位置集合中的区域位置数与中断数据包中先前定义的区域字段数一致。例如,中断数据包100具有三个区域字段,意味着各区域位置集合5a-5n具有三个对应区域位置。在收到诸如中断数据包100之类的中断数据包后,请求处理器利用时戳设置对应区域位置。例如,在收到用于CPU 71b的中断数据包100(已设置区域字段105的数据位)后,CPU 71b利用时戳设置区域位置集合5b的第三个区域位置。同样,CPU 71b了解在硬盘104上存储的请求的数据。此时,CPU 71b比较以上时戳信息与当前处理信息,以确定是等待请求的数据,还是在从硬盘104中取出请求的VPE条目和/或有关数据页面的同时保存当前进程的状态并切换到另一个进程,因为在获得请求的数据之前大约需要等待1ms。如果在获得请求的数据之前完成上述另一个进程,则CPU 72b可以再次进行此类时间比较,以便再次决策。
如上所述,本发明提供用于改善能够利用虚拟存储器处理模式之现有数据处理系统的方法。本发明的优点在于无需对直接连接的存储器进行散列处理。如果无需在处理器中进行虚实地址转换,则对上一级高速缓冲存储器的存取会更快。如果处理器中不出现虚实地址转换,则处理器的实现将更简单,因为需要更少的硅区域和更低功耗。借助本发明,物理高速缓冲存储器的高速缓存线的大小,甚至页面大小,对操作系统都是不可见的。
同时,本发明解决了与利用操作系统的虚拟存储器管理(VMM)来管理虚拟存储器有关的问题。本发明的数据处理系统不存在PFT(现有技术定义)。同样,可以大大简化或完全消除操作系统的VMM。
尽管参照最佳实施例详细说明、描述本发明,但是熟练技术人员可以理解,可以在形式或细节方面做出各种变更,而并不背离本发明的实质和范围。
Claims (10)
1.一种能够利用虚拟存储器处理模式的数据处理系统,所述数据处理系统包括:
多个处理单元,其中所述多个处理单元包括在比实地址空间更大的虚拟地址空间中运行的易失性高速缓冲存储器;
与所述多个处理单元和易失性高速缓冲存储器相耦合的互连;
经由所述互连与所述多个处理单元相耦合的硬盘;
与所述多个处理单元中的至少一个单元相耦合的别名表存储单元,所述别名表用于把至少两个虚拟地址与指向所述硬盘中的一个存储单元的物理盘地址联系起来;
在所述硬盘内存储的虚拟物理转换表存储单元,所述虚拟物理转换表用于将一个所述易失性高速缓冲存储器的虚拟地址,转换为指向所述硬盘中的一个存储单元的物理盘地址,而无需通过实地址转换;以及
与所述互连相耦合的存储控制器,用于将某个易失性高速缓冲存储器的虚拟地址,映射为指向所述硬盘内之存储单元的物理盘地址,而无需通过实地址转换。
2.权利要求1的数据处理系统,其中所述别名表内的条目包括第一虚拟地址字段,第二虚拟地址字段和有效位字段。
3.权利要求1的数据处理系统,其中所述虚拟物理转换表内的条目包括虚拟地址字段,物理地址字段和有效位字段。
4.权利要求1的数据处理系统,其中所述数据处理系统还包括与所述存储控制器相耦合的物理高速缓冲存储器,用于存储所述硬盘内的信息的子集。
5.权利要求4的数据处理系统,其中所述物理高速缓冲存储器为动态随机存取存储器。
6.权利要求4的数据处理系统,其中所述存储控制器包括物理存储器目录,用于跟踪所述物理高速缓冲存储器的内容。
7.权利要求4的数据处理系统,其中所述存储控制器包括虚拟物理转换表高速缓存,用于存储所述虚拟物理转换表内的信息的子集。
8.权利要求1的数据处理系统,其中所述多个处理单元的虚拟地址范围大于所述硬盘的物理盘地址范围。
9.权利要求1的数据处理系统,其中通过输入/输出通道转换器将所述硬盘耦合到所述互连。
10.权利要求1的数据处理系统,其中通过适配器将所述硬盘耦合到所述输入/输出通道转换器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/318,530 US20040117590A1 (en) | 2002-12-12 | 2002-12-12 | Aliasing support for a data processing system having no system memory |
US10/318,530 | 2002-12-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1506843A CN1506843A (zh) | 2004-06-23 |
CN1260656C true CN1260656C (zh) | 2006-06-21 |
Family
ID=32506380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101030010A Expired - Fee Related CN1260656C (zh) | 2002-12-12 | 2003-10-29 | 能够使用虚拟存储器处理模式的数据处理系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20040117590A1 (zh) |
CN (1) | CN1260656C (zh) |
TW (1) | TWI226540B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10761995B2 (en) | 2018-04-28 | 2020-09-01 | International Business Machines Corporation | Integrated circuit and data processing system having a configurable cache directory for an accelerator |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7516298B2 (en) * | 2004-11-15 | 2009-04-07 | Platform Solutions Incorporated | Sparse table compaction method |
TWI395102B (zh) * | 2009-10-02 | 2013-05-01 | Via Tech Inc | 資料儲存裝置與方法 |
JP5579003B2 (ja) * | 2010-09-22 | 2014-08-27 | 三菱重工業株式会社 | アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法 |
CN102043731A (zh) * | 2010-12-17 | 2011-05-04 | 天津曙光计算机产业有限公司 | 一种存储系统的缓存系统 |
EP2696289B1 (en) * | 2011-04-07 | 2016-12-07 | Fujitsu Limited | Information processing device, parallel computer system, and computation processing device control method |
US10474369B2 (en) * | 2012-02-06 | 2019-11-12 | Vmware, Inc. | Mapping guest pages to disk blocks to improve virtual machine management processes |
US9117086B2 (en) | 2013-08-28 | 2015-08-25 | Seagate Technology Llc | Virtual bands concentration for self encrypting drives |
DE102014112329A1 (de) * | 2013-08-28 | 2015-03-05 | Lsi Corporation | Konzentration von virtuellen Bändern für selbst-verschlüsselnde Laufwerk-Einrichtungen |
CN105138481B (zh) * | 2014-05-30 | 2018-03-27 | 华为技术有限公司 | 存储数据的处理方法、装置和系统 |
KR101830136B1 (ko) * | 2016-04-20 | 2018-03-29 | 울산과학기술원 | 경량 아키텍쳐를 이용한 에일리어스 메모리 연산 방법 |
EP3255550B1 (en) * | 2016-06-08 | 2019-04-03 | Google LLC | Tlb shootdowns for low overhead |
CN113934655B (zh) * | 2021-12-17 | 2022-03-11 | 北京微核芯科技有限公司 | 解决高速缓冲存储器地址二义性问题的方法和装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5119290A (en) * | 1987-10-02 | 1992-06-02 | Sun Microsystems, Inc. | Alias address support |
US4982402A (en) * | 1989-02-03 | 1991-01-01 | Digital Equipment Corporation | Method and apparatus for detecting and correcting errors in a pipelined computer system |
US4974167A (en) * | 1989-02-28 | 1990-11-27 | Tektronix, Inc. | Erasable data acquisition and storage instrument |
US5497355A (en) * | 1994-06-03 | 1996-03-05 | Intel Corporation | Synchronous address latching for memory arrays |
WO1996027832A1 (en) * | 1995-03-03 | 1996-09-12 | Hal Computer Systems, Inc. | Parallel access micro-tlb to speed up address translation |
US5960463A (en) * | 1996-05-16 | 1999-09-28 | Advanced Micro Devices, Inc. | Cache controller with table walk logic tightly coupled to second level access logic |
US6438663B1 (en) * | 1996-12-11 | 2002-08-20 | Steeleye Technology, Inc. | System and method for identifying shared virtual memory in a computer cluster |
US6061774A (en) * | 1997-05-23 | 2000-05-09 | Compaq Computer Corporation | Limited virtual address aliasing and fast context switching with multi-set virtual cache without backmaps |
US8122344B2 (en) * | 2000-03-01 | 2012-02-21 | Research In Motion Limited | System and method for rapid document conversion |
US6772315B1 (en) * | 2001-05-24 | 2004-08-03 | Rambus Inc | Translation lookaside buffer extended to provide physical and main-memory addresses |
US6961804B2 (en) * | 2001-07-20 | 2005-11-01 | International Business Machines Corporation | Flexible techniques for associating cache memories with processors and main memory |
US7404015B2 (en) * | 2002-08-24 | 2008-07-22 | Cisco Technology, Inc. | Methods and apparatus for processing packets including accessing one or more resources shared among processing engines |
US7093166B2 (en) * | 2002-10-08 | 2006-08-15 | Dell Products L.P. | Method and apparatus for testing physical memory in an information handling system under conventional operating systems |
-
2002
- 2002-12-12 US US10/318,530 patent/US20040117590A1/en not_active Abandoned
-
2003
- 2003-10-29 CN CNB2003101030010A patent/CN1260656C/zh not_active Expired - Fee Related
- 2003-11-28 TW TW092133608A patent/TWI226540B/zh not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10761995B2 (en) | 2018-04-28 | 2020-09-01 | International Business Machines Corporation | Integrated circuit and data processing system having a configurable cache directory for an accelerator |
US10846235B2 (en) | 2018-04-28 | 2020-11-24 | International Business Machines Corporation | Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator |
US11030110B2 (en) | 2018-04-28 | 2021-06-08 | International Business Machines Corporation | Integrated circuit and data processing system supporting address aliasing in an accelerator |
US11113204B2 (en) | 2018-04-28 | 2021-09-07 | International Business Machines Corporation | Translation invalidation in a translation cache serving an accelerator |
Also Published As
Publication number | Publication date |
---|---|
US20040117590A1 (en) | 2004-06-17 |
TW200419352A (en) | 2004-10-01 |
TWI226540B (en) | 2005-01-11 |
CN1506843A (zh) | 2004-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1261884C (zh) | 能够管理虚拟存储器处理方案的数据处理系统 | |
CN1261886C (zh) | 能够利用虚拟存储器处理方案的数据处理系统 | |
US20210042238A1 (en) | Memory management for a hierarchical memory system | |
CN1306420C (zh) | 利用永久历史页表数据预取数据到高速缓存的装置和方法 | |
KR101894132B1 (ko) | 메모리를 적응적으로 제어하는 장치 및 방법 | |
US8627040B2 (en) | Processor-bus-connected flash storage paging device using a virtual memory mapping table and page faults | |
KR101457825B1 (ko) | 마이크로 페이지 테이블을 구현하기 위한 장치, 방법, 및 시스템 | |
CN1260656C (zh) | 能够使用虚拟存储器处理模式的数据处理系统 | |
US7966455B2 (en) | Memory compression implementation in a multi-node server system with directly attached processor memory | |
US9063866B1 (en) | Page table data structure for online classification of memory pages based on activity level | |
US20090228635A1 (en) | Memory Compression Implementation Using Non-Volatile Memory in a Multi-Node Server System With Directly Attached Processor Memory | |
CN1755636A (zh) | 用于在实时与虚拟化操作系统之间共享资源的系统和方法 | |
US7930483B2 (en) | Associativity implementation in a system with directly attached processor memory | |
MX2007003679A (es) | Sistema y metodo para la virtualizacion de recursos de procesador. | |
CN1261885C (zh) | 没有系统存储器的数据处理系统 | |
US20160147670A1 (en) | Page cache device and method for efficient mapping | |
US20050055528A1 (en) | Data processing system having a physically addressed cache of disk memory | |
US20070266199A1 (en) | Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache | |
US20090228664A1 (en) | Memory Compression Implementation in a System With Directly Attached Processor Memory | |
CN1740994A (zh) | 具有多维行行走功能的dma控制器的系统和方法 | |
US20040117583A1 (en) | Apparatus for influencing process scheduling in a data processing system capable of utilizing a virtual memory processing scheme | |
CN1567245A (zh) | 远程数据存取方法及使用该方法的计算机 | |
US20040117589A1 (en) | Interrupt mechanism for a data processing system having hardware managed paging of disk data |
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 |
Granted publication date: 20060621 Termination date: 20151029 |
|
EXPY | Termination of patent right or utility model |