本发明涉及地址变换系统,特别涉及用于虚拟存储系统的地址变换系统。该虚拟存储系统需地址变换以实现对主存的访问。此项发明还特别简化了输入/输出设备对主存的访问。 在需要地址变换以便访问主存设备的虚拟存储系统中,一个基本的问题是决定地址变换的位置。
在传统实例中,例如在数字设备公司的VAX-11中(以下简称为VAX方法“VAX硬件手册”1980,202,203,206,207,316和317页)。如图1所示,中央处理单元(CPU)1输出的一个逻辑地址经CPU1的地址变换器2变换为物理地址,当输入/输出设备5无需CPU1的帮助直接访问存储设备3时,即在直接存储器访问(DMA)操作中,输入/输出设备5输出的逻辑地址经输入/输出地址变换器4变换为物理地址,如此获得的物理地址通过地址总线10提供给主存储器。
根据VAX方法,在使用大量输入/输出设备时,对每个输入/输出设备或设备组都需要一个专用变换器并将它们连结在输入/输出设备5和存储器地址总线10之间。
在如上所述的VAX方法中,如果访问存储设备的物理地址的地址变换是在每一输入/输出设备的出口实现地话,则需为每个输入/输出设备配备一个专用的地址变换器,这将引起由此而产生的成本问题。
作为VAX方法的改进,地址变换方法可认为是从图的系统配置中,将输入/输出地址变换器4撤除,从而使输入/输出设备一侧的成本降低,CPU1的地址变换器2仍然保留。
然而,在这一省去输入/输出设备的地址变换器而仅配置CPU1的地址变换器的方法中,主存的物理地址必须直接从每个输入/输出设备输出。结果,例如当涉及在磁盘单元和主存设备之间进行多个页面的数据传输时,存储设备3物理空间中连续的存储区域必须分配给磁盘以便于产生磁盘单元的地址。这导致虚拟存储系统的有利特性不能得到有效的利用,其结果,意味着使用DMA的数据传输只能限于一页一页地操作。
输入/输出设备出口端没有地址变换器的数据处理系统的一个例子已在“MC68851页式存储管理单元的设计与实现”(IEEE micro杂志,卷6,号2 1986年4月,13~18页,13页图1)一文中叙述。可参考USP4,550,386关于含地址变换计算机存储系统的结构。
本发明的目的是提供一地址变换系统,在此系统中每个输入/输出设备都可按逻辑地址访问存储设备,而无需为每个输入/输出设备配置地址变换器。大量的数据页面可在DMA操作中连续地传送。
为了实现这一目的,根据本发明,提供一数据处理系统,它包括一个中央处理单元,至少一个输入/输出设备,如磁带或转磁盘,一个存储设备,一条地址总线,第一地址变换装置,第二地址变换装置和地址选择装置,其中,中央处理单元的输出地址经第一地址变换装置变换后作为结果地址提供给地址总线,输入/输出设备的输出地址直接供给地址总线,地址总线上的地址传送给地址选择装置,地址选择装置有选择地将第一变换装置产生的送往总线的输出地址提供给存储设备;或通过第二地址变换装置将输入/输出设备产生的输出地址变换后获得的结果地址提供给存储设备。
根据本发明,对输入/输出设备产生的地址作变换的第二地址变换装置位于存储设备的入口端。因此,在每个输入/输出设备侧不再需要变换器。每个输入/输出设备输出的逻辑地址原封不动地提供给地址总线,即并不加以转换,尔后由位于存储设备之前的第二地址变换装置变换为物理地址,以作为对存储设备的访问地址。经第一地址变换装置由CPU提供的物理地址和由输入/输出设备直接产生的逻辑地址在地址总线上同时存在。这些地址仅需按如下方式分离,总线上的地址空间予先分为CPU的地址空间和输入/输出设备的地址空间,从而地址选择装置对地址的选择取决于地址总线上予先已确定的地址位的值。
以下的评述及相配合的图示将对目前的发明作一清晰的说明。
图1表示采用先有技术地址变换方法的数据处理系统的示意框图。
图2表示根据本发明实施例的一个数据处理系统的框图。
图3为解释地址空间配置的说明图。
图4为用于详细解释CPU的地址变换器的示意图。
图5是详细表示基本部分的示意图。该基本部分包括基于目前发明的另一实施方案的数据处理系统的输入/输出地址变换部分。
图6为图5中实施方案的框图。
本发明的实施方案及其对应图示的描述如下。
图2是根据本发明,实现地址变换的数据处理系统的基本配置图。CPU1输出的逻辑地址11a被地址变换器2变换为物理地址11b,物理地址11b通过地址总线10和地址路径10′输入至地址选择器6。此外,输入/输出设备5输出的逻辑地址原封不动地供给地址总线10,此地址未经任何变换,通过地址路径10′输入至地址选择器6。
若输入的地址是CPU1地址变换器2产生的物理地址,则地址选择器6通过CPU1的地址路径12将该地址送至存储设备3。当输入的地址是输入/输出设备5输出的逻辑地址时,则地址选择器6通过输入/输出路径13a将该地址送至地址变换器4′,尔后再将该地址变换为物理地址并经路径13b输至存储设备3。
地址选择器6的选择操作与随后将要说明的在图5(或图6)中的实施方案所进行的操作相类似。例如,一些特定的位,即CPU1的地址变换器2输出地址的两个高位,和对应的特定位,即输入/输出设备5输出地址的两个高位,可用来决定对主存的访问是来自CPU1还是来自输入/输出设备5。
本实施方案中的数据处理系统含三类地址空间,即在CPU内部对待的逻辑地址空间A,在总线10上的地址空间B和含有实存区域C1和输入/输出控制寄存器区域C2的物理地址空间C。
图3示意性地表示这三个地址空间A-C之间的关系。在这个例子中,逻辑地址空间A有4GB,由32位逻辑地址11a表示。逻辑地址空间A分配如下。例如,地址0-1.0GB分配给用户程序的文本和数据区域A1,地址1.0~2.0GB用于用户区域A2,地址2.0~3.0GB为系统域A3保留,此区域存有操作系统,操作系统和多个用户间共享的程序和数据,地址3.0~3.5GB分配给区域A4用于不加变换地访问主存区域C1,地址3.5~4.0GB分配给区域A5,用于访问控制输入/输出设备的控制寄存器区域C2。区域A1~A3的每一地址通过地址变换,变换到主存区域C1。对非变换区域A4,逻辑地址减去区域A4(3GB)的顶地址对应于主存区域C1中的物理内存地址。即用非变换区域A4中的地址,从它简单地减去3GB以实现对主存的访问。
总线10上的地址空间B,例如有64MB的大小。相应地,总线10的位宽为25位,分成4个16MB的区域B1~B4。OMB到16MB的区域B1用于从逻辑区域A1~A4访问主存区域C1,在逻辑空间中的地址区域A1,A2和A3的每个逻辑地址通过地址变换映射到区域B1。此外,在逻辑空间中的非变换区域A4通过平行位移关系以对应于区域B1。从16MB到32MB的区域B2用于通过地址变换器4′来自输入/输出设备5的对主存区域C1的访问。当从主存的角度观察时,总线空间中的区域B1和B2分别为物理和逻辑地址区域。从32MB到48MB的区域B3提供对控制输入/输出设备的寄存器区域C2的访问。从48MB到64MB的区域B4在本实施方案中为未使用的区域。根据系统中已安装的主存容量的最大值,物理空间C的大小,总线空间B可置到不是如上所述的16MB的其它值。
图4表示CPU1地址变换器2的一个特定电路配置例子的示意图。
CPU1提供逻辑地址11a给地址变换器2,该逻辑地址含32位A31~A0,表示读或写操作的一个读/写信号和表示CPU是否在系统态还是用户态的状态信号S。逻辑地址11a输入寄存器21并被分为高二位A31~A30作为区域字段R,18位A29~A12为页字段PG和低12位A11-A0为页内位移字段OF。区域字段R寻址区域表22,从而读出页区域地址22S,参照号23表示含大量记录的页表存储区。页表中的每一表项含有一个合法位V,表示相应表项是合法还是非法。保护信息PR限制对相应页的访问,实页号PFN表示主存中的一个物理页,在页表内存区23中,根据页区域地址22S与页字段PG相加所得的地址读取其内容,而把这样读得的内容中的A′25-A′12位PFN与寄存器21输出的12位A11~A0的位移相结合形成寄存器24的内容。输出的结果地址作为已变换的26位总线地址11b。内存23读出的合法位V和保护信息PR输入控制电路25,来自CPU1的控制信号S和读/写信号也输给控制电路25。当合法位V为“1”时,控制电路才执行地址变换操作。否则,异常地址用错误信号ER通知CPU1。对主存的访问分为四种情况,即在系统和用户态下的读和写操作。保护信息PR包括一个4位的信息,表示该页是否允许这四种访问。在地址变换操作之前,控制电路根据控制信号S和读/写辨认当前的访问情况并检查保护信息PR。仅当检查结果正确时,才可输出总线地址11b。如果访问对该页来讲是不许可的,则不进行地址变换,此情况用错误信号ER报告CPU1。偶而,区域表22和页表23的内容由在控制程序中的操作系统控制。
图5为一示意图,表示根据本发明的数据处理系统的另一实施方案。同样的参照数码赋于与图2中相似的部件所以只在必要时才作说明。
首先说明在总线10上的26位地址信号B0~B25和24位主存地址C0~C23之间的关系。
来自CPU1的32位逻辑地址(A31~A0)被地址变换电路2变换为26位地址(A′25~A′12,A11~A0)11b。在地址11b中各位的位置与总线10上的地址位B25~B0各位对应。总线10上的地址位,低12位B11~B0直接输入给内存地址C11~C0而高12位B23~B12输入给输入/输出地址变换器4′和第一簇双输入与门423和412。在地址变换器4′中经地址变换的12位地址(B′23~B′12)输入给第二簇双输入与门323~312。第一和第二簇与门的输出,输入给或门223~212,各对应位保持不变,这些或门的输出形成内存地址(C23~C12)。
在这一实施方案中,第一和第二簇与门323-312,或门223~212,反相器41~42和与门43~44构成一选择电路6′,两组与门中的任一组都能用含反相器41~42的与门选择电路加以选择。反相器41~42分别连到地址总线的高位B25~B24和与门43~44。当B25~B24二者均为“0”时,第一簇与门423~412打开,地址位B23~B12直接输给主存地址(C23~C12)。当B25=“0”和B24=“1”时,第二簇与门323~312打开,将已变换的地址位B′23~B′12提供给内存地址(C23~C12)。
结果,在此实施方案中,当CPU1访问主存3时,地址变换器2影响地址变换,从而使输出地址的两个高位A′25~A′24被置到“0”(总线空间0~16MB的选择方式)。在CPU1访问输入/输出设备5时所进行的地址变换使两个地址位A′25~A′24分别被置为“1”和“0”(总线空间32~48MB的选择方式)。
在这一情况下,总线上的地址被输入/输出设备5中的地址译码器(DEC)51译码,并根据译码操作的结果对输入/输出控制寄存器5中事先确定的内容进行访问。
对于输入/输出设备5访问主存3的情况,输入/输出设备5分别置B25~B24到“0”和“1”(总线空间16~32MB的选择方式)并输出一随机地址给位B23~B0。在输入/输出设备5按直接存储器访问(DMA)方式访问主存3时,地址的低24位被不断更新,但B25~B24的值保持不变,位B11~B0被直接提供给存储设备3。位B23~B12服从于地址变换器4′中的地址变换并将结果位提供给主存3。地址变换器4′事实上具有同CPU1的地址变换器2相等的功能和按一页一页的方式将从输入/输出设备5的DMA52产生的连续地址输出变换为主存3的物理地址。在此情况下,通过操作系统改写地址变换器4′中的各表,可以任意改变主存3中各页面的分配。因而保留了虚拟存储系统的优异特性。
图6是表示图5实施方案的示意框图,其细节与已在图5中描述的相同。与图2实施方案的不同处如下。在图2实施方案中,通过地址总线10接收的地址首先进入地址选择电路6,依据地址选择电路6的选择结果,如果地址是来自CPU1地址变换器2的物理地址,则直接送到存储设备3。如地址是来自输入/输出设备5的逻辑地址,则送到输入/输出地址变换器4′以便变换为物理地址。该物理地址然后提供给存储设备3。简言之,在图5(即图6)实施方案中,通过地址总线10接收的地址被直接送到地址选择器6′和输入/输出地址变换器4′。地址选择器6′检查该地址以决定该地址是来自CPU1的地址变换器2的物理地址还是来自输入/输出设备5的逻辑地址。根据判断的结果,如地址是来自CPU1地址变换器2的物理地址,则直接送到存储设备3,如地址是来自输入/输出设备5逻辑地址,则经输入/输出地址变换器4′对逻辑地址进行地址变换后获得的物理地址有选择地提供给存储设备3。
在如上所述的实施方案,虽然只代表性地表示了一个输入/输出设备,但实际上,可连结大量输入/输出设备,对于有大量输入/输出设备的系统,这一发明特别有效。在这种情况下,在总线空间B中的输入/输出寄存器区域和图3物理空间C中的输入/输出域必须互相无覆盖地分配给每一个输入/输出设备。只有当区域的分配正确无误时,含大量输入/输出设备的系统的操作才能完成。自然,本发明也可用于仅含一个输入/输出设备的系统。
前述说明可见,根据本发明,在每个输入/输出设备侧并不需要一专用的设备来完成地址变换。结果可使输入/输出设备硬件部件的数量和开发的人工降到最小。此外,以此方法和输入/输出设备用物理地址而不需要用地址变换的DMA操作比较,在占据大量页面的大量存储数据连续传送时本发明也更为优越。
本发明用示范实施方案来进行说明,但本发明并不限于这些实施方案,对实施方案可作各种修改,这对精于此技术的人来讲是显而易见的。本发明的重点之一在于一个输入/输出地址变换器和一个地址选择部分2例如,地址选择器的特定电路可与说明正文中所述的不同。因此后面所附的权利要求将包括在本发明范围内所作的任何修改和实施方案。