用于动态控制地址空间分配的方法和设备的制作方法

文档序号:6409025阅读:202来源:国知局
专利名称:用于动态控制地址空间分配的方法和设备的制作方法
技术领域
本发明一般地涉及个人计算机系统,并更具体地涉及用于动态管理寻址控制的方法。
计算机系统一般利用两个主地址空间,用以规定数据位置或存储器中单元位置。一个物理地址空间利用物理地址去规定数据在存储器中的实际位置。一个虚拟地址空间利用虚拟地址去规定数据或指令在存储器结构中的位置。也就是说,软件一般能设置数据在一种存储器结构中的逻辑位置因此该软件无需知道或理解实际的存储器物理位置和限定(limitations)。存储器管理部件是通过微处理器用于将虚拟存储器地址变换为物理存储器地址,从而进一步将软件与物理存储器存储单元和边界隔开。在某些情况下,物理存储器地址也可另由诸如图形适配器之类的另一装置变换成局部物理存储器地址。
物理存储器的一个限定可为那个存储器的容量。也就是说,虚拟地址空间可大于物理地址空间。这种限定易于受大多数系统所操纵,因为在任何给定时刻,处理器仅用一小部分存储器来工作。一种技术是使页面数据进、出存储器的同时用转换后备缓冲器,分段寄存器和页面表去保留数据踪迹。这种分页技术一般用来在某一时间处理少量数据页(例如4K字节)。另一技术是用几个块地址转换寄存器去处理某一时刻的大量数据块。
然而,当发生从虚拟到物理的地址转换时,可能对某一给定的虚拟地址不存在被分配的物理地址。这在现有技术中通常为一种例外而称为分页例外或分页故降。一般,将该例外届时通知一个软件例外处理程序并由该例外处理程序负责确定为分析该例外需采取什么动作。这些动作包括分配物理存储器的一个已清除页面并将其标为有效以使被请求地址用一不同地址,或者取消已引起该例外的地址的应用程序的请求。
本发明包括一种用于管理存储器系统中的存储器地址空间的方法,该存储器系统具有多个块地址转换入口,每个入口界定一部分存储器地址空间,该方法包括以下步骤确定被接收虚拟地址引用未被任何块地址转换入口所定义的一部分存储器地址空间,重新给至少一个块地址转换入口分配地址,以确定包含所接收虚拟地址的一部分存储器地址空间,以及利用重新定址的块地址,转换入口提供与虚拟地址匹配的物理地址。此外,本发明包括用于管理存储系统中存储地址空间的设备,该存储系统有多个块地址转换入口,每个入口限定一部分存储器地址空间,该设备包括用于确定被接收虚拟地址引用的一部分存储器地址空间没有被任何块地址转换入口所定义的设备,用于对至少一个所述块地址转换入口重新定地址的设备,以定义包含所接收虚拟地址的一部分存储器地址空间,以及用于利用重新定址的块地址转换入口提供与虚拟地址匹配的物理地址的设备。
对本发明的特性和优点的进一步了解可参考说明书和附图的其余部分予以实现。


图1A是为本发明一个最佳实施例所利用的典型数字计算机的方块图;图1B是为本发明一个最佳实施例所用的上述图1A中所示一个典型存储器管理部件的方块图;图2是一种存储变换的方块图;图3是系统存储器中一组典型内容的方块图;图4是系统地址空间的分段视图的方块图5是说明在第一类型微处理器中的地址分解的流程图;图6是说明第二类型微处理器中的地址分解的流程图;图7是说明本发明概念性概要的方块图;图8是设置和初始化序列的流程图;图9是例外出现时的流程图;图10是按第一类型微处理器,本发明例外处理程序的流程图;和图11是本发明对第二类型微处理器的异常处理的流程图。
本发明公开描述的是允许虚拟寻址和分页的计算机系统。也用块地址译码记发器去定义物理地址的比例小子集(proportionallysmall subset)。页面错误用于请求异常处理程序。该异常处理程序响应页面错误动态地改变至少一个块地址译码记发器的定义状态,从而提供虚拟到物理的可寻址性。这使得在动态基础上能快速存取大部分存储器。
在最佳实施例中,将所有页面定义为无效,从而每当被请求虚拟地址没有被块地址译码记发器定义时就产生页面错误。此外,存储器某些部分被定义为具有诸如超高速缓冲存储或非超高速缓冲存储之类的不同存取特性。再者,在该最佳实施例中,地址空间稀疏被占有,因此要求一种敏捷灵巧的系统去动态处理页面错误。
现参照诸附图,特别是图1A,那显示出由本发明最佳实施例所用典型数字计算机100的方块图。该计算机包括微处理器110。微处理器110最好是PowerPC(IBM公司商标)系列的微处理器中的一种。对该PowerPC的更全面的描述是在“Power PC601 RISC微处理器的用户手册”和“power PC603微处理器的用户手册”中并在先有技术中是众所周知的。微处理器110可包括单一处理器或多台处理器。微处理器110通过总线115耦合到存储器控制器-I/O桥120,以使微处理器能与以下所述各种部件通信。MMU(存储器管理部件)150用于将译码虚拟地址处理成物理地址并在下文参照图1B更详细地加以描述。存储器控制器I/O桥120还通过总线125耦合到系统存储器130。系统存储器130一般包括RAM(随机存取存储器)。存储器控制器I/O桥还通过总线135耦合到I/O装置-I/O总线140。I/O装置-I/O总线允许各种I/O部件同处理器通信。I/O装置140可包括键盘,鼠标,图形输入卡或其他类型的输入装置,或文本监视器,绘图机或其他类型的输出装置,或磁盘驱动存储器,磁性存储器,或其他类型的I/O装置。总线115,总线125和总线135包括地址,数据和由本领域技术人员公知的控制线路。
图1B是为本发明一个最佳实施例所用的以上图1A中所示MMU(存储器管理部件)150的一个方块图。MMU包括控制逻辑180,BAT(块地址译码)记发器152,TLBs(译码后备缓冲器)154,分段寄存器156,和其他寄存器160。BATs,TLBs和位于系统存储器中的相关页面表,和分段寄存器在本领域中是众所周知的,故除了就本发明功能方面以外,不在此详细描述它们的功能。
参照图2,图中示出一种系统地址空间存储变换映象200的简化视图。在该最佳实施例中,系统地址空间存储变换映象200由总共4千兆字节(GB)的有效地址空间组成,这些空间不全都需要用诸如物理RAM130等的实际存储器和I/O装置140占据。该系统地址空间存储变换映象200还由两个2GB空间,系统RAM210和I/O空间220限定。在该最佳实施例中,系统RAM210被限定为超高速缓冲存储的而I/O空间220被限定为非超高速缓冲存储的。将系统地址空间存储变换映象200分为两个具有不同存取特性的空间的这种分法是任选的,系统地址空间存储变换映象200的其他分法也是可能的。
参照图3,图中示出存储器130中的典型的一组内容。存储器130一般包含异常入口指针310,异常处理程序320,程序码330,数据空间340,堆栈空间350,和空闲空间360。当然,存储器130的内容和使用的种种变化是可能的。
现参照图4,该图表示按本发明一个最佳实施例的系统地址空间存储变换映象200的一种分段视图400。有效地址空间被分成十六个256MB(兆字节)段。这些256MB段是段0到段F(402至432)。如图2所述,在最佳实施例中,段0至7被定义为超高速缓冲存储的而段8至F被定义为非超高速缓冲存储的。如以上所述,不是所有系统存储器需要用实际存储器来占用的。
现将参照两种不同类型微处理器描述招致页面错误和异常处理的过程。
现参见图5,该图表示一种处理器(第一类型的)地址分解方法500的流程图。最好,该地址分解方法500是Power PC601微处理器,可兼容微处理器或改进的微处理器的方法。Power PC地址分辨装置在“Power Pc 601 RISC处理器用户手册”中有完整说明并是本领域众所周知的。首先,一个指令设法对系统地址空间200(替换视图400)的某部分访问510。第一类型微处理器通过BAT(块地址译码)记发器520的所请求虚似地址的有效地址。若步骤520的存取有效(命中),则控制程序继续步骤580,对正在由微处理器存取的被请求存储器进行连续正常处理。若检查步骤520判定存取是无效(没命中)则流程继续到步骤530,在那里检查TLB(译码后备缓冲器的所请求虚似地址的实际地址。若步骤530的TLB是命中的,则流程进到步骤580。若步骤530的TLB是没命中,则控制程序进到步骤540,在那里微处理器访问(walks)页面表以寻找被请求的虚拟地址。若在页面表检查步骤550中存在命中,则程序进到步骤580。若步骤550判定存在丢失(无任何页面表项目包含被请求虚拟地址),则流程进到步骤560启动异常处理。接着步骤560的异常处理的开始便是步骤570的调用异常处理程序的子程序。在该最佳实施例中,存在无效TLB或页面表项目。因此在该最佳实施例中,步骤530和步骤550决不会引起采取走“是”的通路。
现参照图6,该图示出一种微处理器(第二类型的)地址分辨方法600的流程图。最好,该地址分辨方法600是PowerPC603微处理器,可兼容微处理器,或改进微处理器的方法。PowerPC地址分辨方式在“PowerPC603 RISC微处理器用户手册”中作了完整描述并在本领域中是众所周知的。道先,一个指令设法对系统地址空间200(替换视图400)的某部分进行存取610。第二类微处理器借助BAT记发器620检查该取存是否有效。若步骤620的存取有效,则控制程序继续步骤660,继续进行正常处理。在步骤620检查的判定结果是存取无效,则流程继续步骤630,检查TLB。若步骤630中TLB是命中的,则流程进到步骤660。若步骤630存在TLB未命中,则控制程序进到步骤640,启动异常处理。接着步骤640的异常处理的启动,是步骤650调用异常处理程序。在该最佳实施例中,存在无效TLB项目。因此,引起在该最佳实施例中步骤630将决不会采取“是”路径。
现参照图7,该图示出本发明的一个概念性视图700。再次示出图4的地址空间400。概念性视图700示出该图左侧的一组BAT设置程序702,704,706和708,表示异常或页面错误出现时的状态716。地址空间712的程序存取部分由于段A422未由BAT702-708之一定义而产生错误713。错误713启动引起待调用的异常处理管理程序714(此后称为自动批处理AUTOBAT)的除外。该图的右侧即是错误分解程序718。然后AUTOBAT(自动批处理)管理程序714对BAT3709重新编程,同样如从段D428至段A422的BAT3708程序。这些程序段产生BAT3710。该AUTOBAT管理程序还检查该被存取地址空间是否为高速缓冲存储器的,并将有那种存储器特性的BAT记发器作出标记。当AUTOBAT管理程序714完成这一过程时,便恢复程序存取存贮器712并继续执行,因为现存在一个带有匹配虚拟地址的BAT记发器。下面更详细地描述图8-11中的概念性视图700的处理流程。
现参照图8,该图示出本发明最佳实施例的建立和起始顺序的流程800。可在程序编码330中找到的诸如电源接通起始子程序之类的程序码(program code)在步骤810建立异常入口点310中的异常处理程序的指针,该指针将指向异常处理程序320和更具体的自动BAT管理程序714。然后该电源接通码在步骤820启动数据空间340中的页面表区。在该最佳实施例中,页面表因所有无效人入口启动。这确保了不是由BAT定义的任何地址将调用异常处理程序。另一些可选实施例可用有效页面入口。然后BAT记发器被装有起始值(830)。然后在步骤840允许该微处理器的译码方式(该译码方式是一种启动power PC微处理器中虚拟寻址的已知方式)。在初始化阶段完成的时间点,继续进行系统操作,即步骤850。
现参照图9,该图示出异常事件900的流程图。在步骤910,执行一程序。该程序执行一个不是由BAT寄存器920定义的存储器存取指令。微处理器由于步骤920的故障存取而产生异常930。然后在步骤940调用异常处理程序。图10和11中更全面地描述了异常处理程序的操作。于是步骤920的异常指令在步骤950被再启动。然后在步骤960以适当的批处理分解执行该指令。然后该程序在步骤970继续正常执行。
现参照图10,该图示出第一类微处理器1000的异常处理程序。更具体地说,该异常处理程序是AUTOBAT管理程序714。一旦调用异常处理程序,处理程序1000将所需状态保存在堆栈1010上。然后在步骤1020确定引起异常的地址,这是通过读出微处理器的一个寄存器来完成的。在步骤1030将BAT3的内容复制到通用寄存器。步骤1040,修改当前通用寄存器中的BAT3值以便提供对引起异常的地址空间的可寻址性。然后在步骤1050,将BAT3装以更新值。在步骤1060,重新存贮步骤1010以来的先前所存贮状态。然后在步骤1070,退出该异常处理程序,返回到异常指令。
现参照图11,该图示出用于第二类微处理器1100的异常处理程序。更具体地说,该异常处理程序是AUTOBAT管理程序714。一旦调用该异常处理程序,即在步骤1110通过读出一微处理器的寄存器确定引起该异常的地址。在步骤1120,将BAT3的内容复制到各专用寄存器。在步骤1130,修改专用寄存器中的当前BAT3值,以提供对引起异常的地址空间的可寻址性。然后在步骤1140,将BAT3装以更新值。然后在步骤1150退出异常处理程序返回到异常指令。
使用如上所述的动态BAT定位,提供了一种结构紧凑和敏捷灵巧的存储器管理系统。该系统结构紧凑是因为页面表利用率最低,还因为对BAT记发器进行管理是一项需要较少指令的操作。该系统敏捷灵巧是因为由标记定域性构思造成仅当出现一种异常和通常罕见的多种异常时才调用异常处理程序。也就是说,大多数存贮器存取一般是邻接的或接近于已由BAT定义的先前存贮器存取,因此通常不会引起由于由BAT确定的存贮器宽度造成的异常。
虽然本发明已参考特定实施例作了上述完全描述,但对本领域普通技术人员而言,有些其他可供选择的实施例是显而易见的。例如,虽然最佳实施例用了Power PC微处理器,但本发明可在其他微处理器上加以实施。同样,本领域技术人员将认识到本发明的许多要点可用硬件或软件加以实施。因此,以上说明应不是对由所附权利要求书所限定的本发明范围的限制。
权利要求
1.一种用于管理存储器系统中存贮地址空间的方法,所述存储器系统有许多块地址转换入口,每个入口定义一部分存储器地址空间,该方法包括以下步骤a)确定给不是由任何块地址转换入口定义的存储器地址空间的一部分加标记的被接收虚拟地址;b)重新对至少一个所述块地址转换入口定位,以定义包括所述被接收虚拟地址的存储器地址空间的一部分;和c)利用重新定位的块地址转换入口提供与虚拟地址匹配的物理地址。
2.如权利要求1的所述方法,其特征在于所述确定步骤包括确定被接收虚拟地址引用一部分不是由任何转换后备缓冲器入口界定的存储器地址空间。
3.如权利要求2所述的方法,其特征在于所述确定步骤包括确定被接收虚拟地址引用不是由负面表入口定义的一部分存储器地址空间。
4.如权利要求3的方法,其特征在于还包括初始确定所有转换后备缓冲器入口和页面表入口为无效的步骤。
5.如权利要求4的方法,其特征在于所述重新定位步骤包括给存储器地址空间的所述确定部分的所述块地址转换入口配置存取特性。
6.用于管理存储器系统中的存储器地址空间的设备,所述存储器系统有多个块地址转换入口,每个入口确定一部分存储器地址空间,该设备包括a)用于确定被接收虚拟地址给一部分不是由任何块地址转换入口确定的存储器地址空间加标记的装置;b)用于对至少一个所述块地址转换入口进行重新定位的装置,以界定包括所述被接收虚拟地址的一部分存储器地址空间;和c)利用重新定位的块地址转换入口提供与虚拟地址匹配的物理地址的装置。
7.如权利要求6的设备,其特征在于所述用于确定的装置包括确定被接收虚拟地址引用一部分不是由任何转换后备缓冲器入口界定的存储器地址空间的装置。
8.如权利要求7的设备,其特征在于所述用于确定装置包括确定被接收虚拟地址引用一部分不是由任何页面表入口界定的存储器地址空间的装置。
9.如权利要求8的设备,其特征在于还包括将所有转换后备缓冲器入口和页面表入口开始确定为无效的装置。
10.如权利要求9的设备,其特征在于所述用于重新定位的装置包括给所述确定的存储器地址空间部分的所述块地址转换入口配置存取特性的装置。
11.一种计算机系统,包括a)用于处理数据的微处理器;和b)用于贮存待由所述微处理器处理的数据的存储器;和c)用于管理存贮器地址空间的存储器系统,所述存储器系统有多个块地址转换入口,每个入口定义一部分存储器地址空间,所述存储器系统包括i)用于确定被接收虚拟地址引用一部分不是由任何块地址转换入口定义的存储器地址空间的装置;ii)用于对至少一个所述块地址转换入口进行重新定位的装置,以限定包含所述接收虚拟地址的一部分存储器地址空间;和iii)用于利用重新定位的块地址转换入口提供与虚拟地址匹配的物理地址的装置。
12.如权利要求11的计算机系统,其特征在于所述用于确定的装置包括确定被接收虚拟地址引用一部分不是由任何转换后备缓冲器入口定义的存储器地址空间的装置。
13.如权利要求12的计算机系统,其特征在于所述确定装置包括确定被接收的虚拟地址引用一部分不是任何页面表入口定义的存储器地址空间的装置。
14.如权利要求13的计算机系统,其特征在于还包括用于开始将所有转换后备缓冲器入口和页面表入口定义为无效的装置。
15.如权利要求14的计算机系统,其特征在于所述重新定位装置包括给存储器地址空间的所述确定部分的所述块地址转换入口配置存取特性。
全文摘要
一种用于管理存储器系统中存贮地址空间的方法,所述存储器系统有许多块地址转换入口,每个入口定义一部分存储器地址空间,该方法包括以下步骤a)确定给不是由任何块地址转换入口定义的存储器地址空间的一部分加标记的被接收虚拟地址;b)重新对至少一个所述块地址转换入口定位,以定义包括所述被接收虚拟地址的存储器地址空间的一部分;和c)利用重新定位的块地址转换入口提供与虚拟地址匹配的物理地址。
文档编号G06F12/10GK1125338SQ95104838
公开日1996年6月26日 申请日期1995年4月27日 优先权日1994年6月27日
发明者R·贝尔考斯基, D·S·克朗克, B·R·格里米斯, M·R·特纳 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1