专利名称:存储器分体同时运行多平台计算机的制作方法
技术领域:
本发明,是一种能同时运行多个操作系统平台及其应用软件的计算机。本发明,在一台计算机中,把主机随机存储器系统(主要是内存)分开成几个分立的空间结构相同的存储体,每个存储体分别可互不相干地独立启动运行一套操作系统及其应用软件。在软开关切换控制下,CPU分时运行各个存储体的软件系统,并且它们分时共用一套外部设备。对于计算机用户看来,它们好象是多个互不相干的软件系统在分别同时运行,就象多台计算机在同时工作,每台启动运行各自的一套软件一样。这样使一台计算机同时做多台计算机的工作,一机发挥多机的效用。
在本发明中,在计算机总的随机存储空间中,各分立存储体在操作系统及其应用软件看来,其存储空间结构、管理规则、使用方式是和目前的现有技术同类型计算机中的存储系统是一样的,其结构和容量是满足计算机运行所需要的完整存储系统;它们和计算机中其它共用硬件及ROM程序等的关系,分别均构成一台结构完整的计算机。同一套操作系统及其应用软件不论在哪一个存储分体启动运行,其启动过程及对存储器空间的占用区域、使用情况及访问方式都完全一样,就象在现有技术的存储器不分体的一台单独的物理计算机中启动运行的情形一样。
例如在IBM PC/AT个人微机中,由于80x86系列CPU把中断指针表安排在内存最低地址00000H开始的1K字节中,所以其基本内存RAM的空间结构都是从00000H开始的一段足够运行DOS或WINDOWS操作系统及其应用软件的连续存储空间;对于容量为16兆的内存,其编址从00000H到3FFFFFFH。在本发明中,把内存RAM分成几个内存体,例如把总内存扩充到64兆字节,分成四个16兆的分立空间,每个分立空间的编址都是从00000H到3FFFFFFH(对于在其中运行的软件而言),它们分别都和现有技术PC/AT微机中的16兆内存完全一样,分别都可独立地、互不相干地启动装入运行DOS、WINDOWS、UNIX或LINUX。同一套操作系统平台例如DOS及其应用软件,不论运行在哪一个16兆分立空间,它对内存的使用情况及访问方式都完全一样,都和在现有技术的同样16兆内存的PC/AT微机中启动运行的情形完全一样。
但如在DOS环境下通过地址映射到高位内存(UMB)而被存取的一个16K大小的内存页,则它在地址空间结构上不足以构成满足计算机运行所需要的完整内存,它只是计算机完整内存中的一部分,一个内存块。
从应用的需要来说,各存储分体可以是不同容量的,即可以是非等分的。例如可以把总内存64兆分成三个分体,第一个32兆,第二、三个各16兆。各存储分体容量是否一致,这是与本发明的实质无关的。
本发明的实质(一)计算机的随机存储器系统被分成几个分立的存储体;在操作系统及其应用软件看来,各分立存储体的空间结构(除容量以外)、管理规则和使用方式是和目前现有技术计算机中不分体的存储器是一样的。
(二)每个存储分体的空间结构和容量大小,都是满足计算机运行所需要的完整存储系统,而不是该完整存储系统中的一部分;它们和计算机中其它共用硬件(包括共用的存储器子系统)及共用的ROM程序等的关系,分别均构成一台结构完整的计算机。
(三)在存储体切换软开关及其切换处理程序驱动控制下,每个存储分体都可互不相干地独立启动运行一套操作系统及其应用软件;其启动过程及运行的情形都和在现有技术的存储器不分体的一台单独的物理计算机中启动运行的情形一样。
(四)各分立存储体是分别管理和使用的,是由各自内存分体中运行的软件系统分别管理和使用的;各存储分体及其中运行的软件系统无法互相寻址访问,它们是互无关系、互不相干、分别运行、互不影响的。
计算机随机存储器系统有几个子系统,包括内存系统,显示缓冲存储器,高速缓存CACHE,系统参数存储器CMOS等。在本发明中,主机存储器的分体一般指内存系统的分体;在现有技术中就是插在主板内存槽上的一条或数条内存条,例如EDORAM或SDRAM。显示缓存和CACHE可以做为共用硬件使用,也可以增设分体。此外,如果要求比较高的话,分别管理这些存储分体所需要的管理和控制电路、外设I/O端口等也可以扩充分体,它们分别配合不同的内存分体工作。
对于CPU而言,各个存储分体的软件系统当然是分时运行的。通过软开关切换控制(也可在CPU内增加专门电路来直接控制存储体选通),可以使CPU在某一段时间与某一个存储分体接通运行,而与别的存储分体断开。那些断开的存储体,其中的软件程序并没有退出或结束运行,而是保存着断开处的现场状况,暂时中断运行;当它重新接通时,将恢复现场并接下去继续运行。存储体的软开关切换,可以由操作者从键盘输入命令进行,也可以由计算机按照操作者事先设定的自动切换要求自动进行。各个存储分体的软件系统都没有退出或结束运行,更没有关机,而是均处于运行过程中的某个时刻,就象它们在同时运行一样。
在现有技术中,美国微软公司的WINDOWS系统,是一种多任务操作系统,它可以同时运行多个应用软件,但这些多个应用软件是在同一个WINDOWS操作系统中运行的,受同一个操作系统程序的管理和制约。如果有某个应用软件不是运行在WINDOWS系统中,而是运行在UNIX中,那它们就不能同时运行了。再如一个应用软件只能在老的DOS环境中运行,或只能在较低的WINDOWS版本中运行,那也不能和较高的WINDOWS版本软件同时运行。
对于单任务的DOS操作系统,情况更是这样。例如字处理软件CCED和WPS,它们都是在DOS环境下运行的,但是由于DOS是单任务系统,每次只能运行一套软件,它们一般不能同时运行。要从CCED转为WPS,必须退出CCED,装入WPS,或者干脆重新启动计算机。
在现有技术中,在一台计算机中基于保护的虚模式下的多任务操作,它们会互相影响,如果一个应用软件程序错误或系统硬件驱动程序配置不当导致死机,将使所有任务都不能运行,必须重新启动计算机。
在实际工作中,我们经常会碰到这样的情况,为了运行其它软件而不得不退出当前运行的软件。例如当前正在WINDOWS下用WORD编写文稿,突然来一位朋友或顾客要立即打印一份文件,要用金山WPS6.0版,由于它是在旧版DOS下运行,这时就只有保存当前的WORD文档,退出WORD和WINDOWS,重新启动计算机,装入WPS。打印完文件后,又要再次启动计算机,重新进入WINDOWS系统,运行WORD软件,才能继续原来的工作,这样很费时间,很不方便。
在本发明中,就不要这么麻烦了。在本发明中,要同时运行其它软件系统,只需要在另一个内存分体启动运行另一套操作系统和应用软件就可以了,不必把原来的工作结束和退出。这就象启动另一台计算机,做另一件工作一样。所启动的操作系统的种类不受限制,可以是不同的操作系统,也可以是相同的操作系统但不同的应用软件;也可以是相同的操作系统,相同的应用软件,但不同的工作对象,例如相同的字处理软件,编辑不同的文稿。其多平台多任务操作的灵活性,比WINDOWS单平台多任务系统更加灵活;同时也更加稳定可靠,因为它们互不相干,如遇死机,可以分别重启动,不影响其它存储分体软件运行。
在现有技术中,计算机内存的分体切换技术早已普遍采用。例如最早的个人微机——美国苹果电脑公司的苹果Ⅱ型8位微计算机,其6502CPU直接可寻址范围只有64K字节空间。为了能应用于我国的汉字处理,需要加大内存,因为一套16点阵汉字库需要256K,不能全部直接寻址,这就需要采用内存分体切换技术。既使是64K的随机内存,由于计算机固化程序只读ROM占了内存一部分地址空间,与ROM地址相重叠的那一部分随机内存并不能直接寻址,而要用软开关切换选通,才能访问。再如IBM-PC微机,从80386以来的各种32位、64位CPU直接可寻址范围高达4000兆字节空间,标准配置内存的容量也已经高达32兆字节以上,但是由于16位软件DOS操作系统直接可管理的内存只能达到1兆,因此对1兆以上的内存就要用内存分体切换技术来分块访问。
实际上,任何微机都有一些固化的系统ROM程序,这些ROM程序必须要由CPU直接寻址,因而占用了一部分地址空间;而随机内存地址分布都是连续的,往往都有一部分地址区段和ROM程序地址相重叠,因此都毫无例外地都需要有内存分体切换。
存储分体的切换一般由程序控制硬件来完成。硬件的实现有两种,一种是由存储器管理电路来实现;一种是由CPU(中央处理机)实现。例如在现有技术中,在IBM PC/AT微机中,扩充内存EMS(1兆以上的内存空间),就是通过分块进行地址切换,映射到1兆以下的地址空间,并用软件HIMEM.SYS及EMM386.EXE驱动内存管理电路实现EMS的分块映射和使用,使得DOS及其用户应用程序可以访问多达32兆的内存。
但是在现有技术中,内存分体(分块)切换技术都是应用在单个系统平台的运行上,是在单平台范围内,用于满足目前越来越大的大型软件对内存的需求。在本发明中,则把现有技术的内存分体切换技术应用到多平台存储器分体同时运行上,以实现一机能做多机的工作。
在下面的实施例中,本发明采用内存控制电路实现内存分体的设置和切换,并用固化的BIOS ROM程序来驱动分体设置和切换。
为了把本发明所称的存储分体和现有技术的存储分体(分块)区别开来,在以下的叙述中,把本发明所称的存储分体称为“存储分体”、“存储体”、“内存分体”等等,其主要特征是所称的“存储分体”,就它所担负的系统功能范围内,是满足计算机运行所需要的完整存储系统;例如PC微机内存系统,是从最低地址00000H开始编址的一段足够运行操作系统及其应用软件的连续存储空间;各“存储分体”是分别由各自分体中运行的软件系统管理和使用的,它们之间互无关系、互不影响,无法互相寻址访问。把现有技术的存储分体(分块)称为“存储分块”、“存储块”、“内存块”等等,其特征是,它们各自不构成满足计算机运行所需要的完整存储系统,而仅仅是其中的一部分,各“存储块”服从于同一平台下的程序系统的管理与使用,各“存储块”中的程序或数据通过同一平台程序系统互相联系,是会互相影响的。
下面以PC/AT个人微机为例分五个部分介绍本发明的实施例子。
一、内存分体选通控制电路以64兆内存总容量为例,等分成4个16兆的内存体,它们的切换选通只需要控制RAM地址总线第25、26两根即A24、A25地址线就可以了。当A24、A25地址线无效(为“00”,高位A25,低位A24,以下同)时,选通第一个16兆体,即对于RAM存储器总空间的地址是从00000H到3FFFFFFH。当A24、A25两根地址线为“01”时,选通第二个16兆体,即RAM总空间地址是4000000H到7FFFFFFH。为“10”时,选通第三个16兆体;为“11”时,选通第四个16兆体。
内存分体切换程序通过对I/O空间两对I/O端口地址的访问,驱动两对开关电路,两对开关电路的输出控制两根RAM地址线的选通。每对开关电路中,一个开关控制地址线有效(置“1”),另一个开关控制地址线无效(置“0”)。
当内存RAM的A24、A25地址线受开关电路的控制时,它们和CPU地址总线是断开的,即此时CPU失去对RAM的A24、A25地址线的控制权,这时CPU所能访问的RAM空间只是由24根地址线即A0~A23所能寻址的16兆内存。这16兆内存是4个16兆内存分体当中的某一个。对于CPU而言,每个16兆内存体都是完全一样的;对于其中所运行的软件系统而言,每个16兆内存体也是完全一样的。至于各内存分体的软件系统如何管理、使用它们所占用的那部分16兆内存体,那是各个软件系统的事。
如果RAM总容量有256兆,欲分成8个32兆体,则控制RAM地址总线A25、A26、A27三根地址线。相应需要设置三对I/O端口单元,驱动三对开关电路。其余依此类推。
这样的软开关控制电路是很简单的,可以用几个中小规模集成电路搭接,不必和现有技术计算机内已有的内存管理电路做在一起。如果和已有的内存管理电路做在一起,反而更麻烦,因为需要重新设计制造内存管理集成电路块。
为了避免因程序错误而误触动这些软开关,每个软开关应该用多个I/O端口地址的访问输出“与”来控制。例如用八个I/O端口的访问输出来控制一个开关,则只有当八个I/O端口的访问输出都为有效(都为“1”)时,其“与”的结果才为有效(即为“1”),才能触动一个开关电路。程序错误而误访问八个I/O端口的几率是很小的。
在下面的叙述中,本发明把决定内存分体切换选通的地址线叫做内存分体选通线。对于64兆总内存分成4个16兆体,其内存分体选通线就是内存RAM的A24、A25两根地址线;对于256兆总内存分成8个32兆体,则内存分体选通线是内存RAM的A25、A26、A27三根地址线。
二、内存分体设置程序及分体设置过程内存分体设置程序可以和系统上电启动自检程序及硬盘引导程序BOOT BIOS做在一起,其程序地址在640K至1M之间的高端(这部分空间系计算机保留的BIOS ROM共用空间)。该程序的功能是计算机上电启动时计算确定内存分体选通线和设置内存分体,它可以衔接在计算机上电自检程序后面,当计算机上电自检通过,接着就做这件事。
当计算机上电启动时,内存分体尚未确定和设置,因此内存分体切换控制电路还不能控制内存分体选通线,这时候的内存RAM的内存分体选通线是和CPU地址总线联系在一起的,CPU可以访问全部内存。
在现有技术中,当计算机上电启动时,会进行机器自检,其中有一项目是内存的检测,从检测结果可知计算机内存总容量的大小。在计算机自检中,有许多项目是根据系统参数存储器CMOS中所设置的值进行检测和设置工作方式的。在本发明中,可以把内存分体的个数作为一个新增项目参数由计算机用户设置到CMOS中。
当计算机自检通过全部项目后,转入内存分体设置程序。内存分体设置程序根据计算机自检所知的内存总容量,以及CMOS中所设置的内存分体数,可以计算确定内存分体的大小、以及内存分体选通线是哪几根。接着,内存分体设置程序就访问这些选通线所对应的软开关地址(设在I/O空间中,见前文),使开关控制电路接管对内存分体选通线的控制权,同时取消CPU对这几根选通线的控制权,并缺省设置选通内存分体第一体,初始化内存分体启用标志(增设在I/O空间中)置第一体启用标志为“1”(标志着第一体已经启用);其它分体启用标志置“0”(标志着其它分体尚未启用)。以后,当硬盘引导装入软件(例如DOS)再次检测当前启用的内存时,只能检测到一个分体的内存容量。
内存分体选通线确定后,应该把它保存起来,可以在I/O空间中设置几个端口寄存器来保存,以供以后分体切换时据以作为访问软开关的根据。以64兆总内存分为4个16兆分体为例,选通线是A24、A25,当要从第一体(选通线取值为“00”)切换到第三体(选通线取值为“10”,A25高位,A24低位),内存分体切换驱动程序首先访问I/O检测选通线开关状态,检测A24、A25线当前取值为“00”,确认处在第一体,然后根据I/O端口寄存器中保存的选通线参数,把第一根A24置“0”,第二根A25置“1”,实现第一体到第三体的切换。
内存分体设置后,计算机应有一个设置标志,表示已经经过上电启动,并已设置内存分体。这可以用一个简单的双稳态开关来做成,它的置“0”端由RC电容延迟电路控制,电容由电源通过电阻充电,当计算机上电时,主板工作电压稳定后,电容上的电平由于充电延迟作用,先处于低电平,使双稳态开关置“0”,标志着上电启动。当内存分体设置完成后,由设置程序给双稳态开关置“1”,表示已经设置内存分体。该双稳态开关的置“1”端及其状态输出端分别接入I/O空间中增设的两个I/O端口,使设置程序可以给它置“1”,也能读出检测它的状态。该双稳态开关的状态就是内存分体设置标志。
当计算机上电启动时,BIOS自检通过之后,内存分体设置程序先检测内存分体设置标志,如为上电启动,则接着进行内存分体设置工作。设置完成后,把标志置位,标志着已经设置内存分体。当下一次计算机按复位键冷启动时,已经不是上电启动了,内存分体设置程序检测内存分体设置标志,系非上电启动,将跳过设置程序,不再重复设置。
在本发明中,当计算机某分体内存因程序错误而死机时,按复位键重启动,计算机重新进行机器自检,包括内存重新自检,并清除内存。由于这时内存分体已经建立,分体选通控制电路已经取得对内存RAM分体选通线的控制权,CPU不再能控制选通线,它所能检测到的内存空间已经不是象第一次上电启动时那样的全部内存(在本例中为64兆),而仅仅是4个分体中的当前工作分体的16兆容量,被清除的内存也是当前工作分体的16兆空间,其它分体中运行的软件数据安然无恙。因此,一个内存分体因死机复位重启动不会影响其它内存分体的安全正常运行。
三、分体切换时的现场保存在本发明中,多个内存分体中运行着多个操作系统平台及其应用软件,但是使用的硬件只有一套(除内存RAM以外)。这共用的硬件中包括外部设备显示卡与显示缓存RAM、软驱及硬盘、光驱、打印机、键盘、鼠标、声卡、调制解调器等;主机设备CPU、ROM BIOS程序、系统参数存储器CMOS、二级高速缓存CACHE、内存管理电路等。
各分体内存中运行的软件系统对硬件设备的使用情况可能是很不相同的,除了CPU寄存器数据不同以外,显示卡的显示模式、分辨率可能不同,显示缓存的内容不同,二级高速缓存CACHE的内容不同,内存管理驱动状态不同。因此,当计算机从当前工作的分体内存切换到另一个分体内存之前,必须先把当前工作的分体内存的程序暂时中断运行,保存所有可能不同的软件、硬件现场状况,以备以后切换回来时恢复原来的运行状态用,然后才能切换到另一个分体内存。切换到新的分体内存中后,也要先恢复那个分体内存先前保存的中断运行时的软件、硬件现场状况,才能接下去继续运行。
每个内存分体大约需要1兆到4兆存储空间,作为中断现场保存用。所需保存区的大小依被保存的数据的多寡而定;其中,数据量最大的是显示缓存RAM的内容和二级高速缓存CACHE的内容。目前显示卡缓存RAM最小512K,最大2兆;二级CACHE最小256K,最大1兆。加上其它现场数据,包括CPU内各数据寄存器的现场数据、内存管理驱动状态、CACHE使用状态等,最少需1兆,最多4兆。
中断现场保存用的存储器,可以有两种方案,一种是采用专用存储器RAM,相应等分成四个分体,用来保存各内存分体的中断现场。当内存分体切换时,相应同时切换对应的现场保存专用RAM分体。这种方案会增加主板成本。
另一种是保存在各内存分体高端,这一段空间应使用存储体分块切换技术控制其接入或断开。当计算机上电、内存分体设置后,应将保存区与内存其它部分断开,使CPU不能访问它,操作系统软件检测内存时只能检测到它下端的内存部分,以避免操作系统和用户软件使用该区域。当需要保存或恢复中断现场时,再接入,使CPU能访问。
对于16兆的分体内存容量,划出高端4兆的空间用作现场保存区,尚存12兆剩余空间,足够WINDOWS95使用。至于WIN98、WIN2000,可能不够用,但更大容量内存不久将很快降价成为主流标准配置,那时候每个分体内存容量将相当于甚至超过目前标准配置32兆。
不过,高速缓存CACHE的内容也可以不保存,因为它本来就是内存中的数据复制到CACHE中去的;并且,目前已成主流机型的586以上PC机未来将普遍采用SDRAM闪速内存,不使用CACHE也能高速工作。此外,CACHE可以扩充容量,设置分体,例如原来二级CACHE容量256K,可扩充到1兆,等分成4个分体。而显示缓存RAM也可以扩充容量,例如原为2兆,扩充到8兆,分成4个分体。切换内存分体时,不需保存CACHE和显示缓存RAM的内容,只需相应同时切换CACHE和显示缓存RAM分体。但对于显示卡,仍需保存显存分体显示模式、分辨率,可以保存在显示缓存的各自分体内,并由显示卡ROM BIOS程序自己进行。这样可以加快切换速度,不过会增加主板和显示卡成本。
略去显示缓存和CACHE的数据,保存区大约只需100Kb就够了。中断现场总共有哪些可能不同的现场数据有必要保存?以及到底需要多大保存区?这留给计算机制造商具体开发设计时决定。
计算机上电启动时,主板BIOS内存分体设置程序应检测显示卡是否有缓存RAM分体设置,如果有,则不必在内存RAM中开辟太大的保存区。显示缓存RAM分体的设置与切换规定应与主板内存分体切换驱动程序协调,这需要由显示卡制造商和主板制造商共同制定接口操作规约。
四、内存分体的共用空间在现有技术中,PC机内存640K至1M之间地址空间是系统保留给开机启动自检、引导装入程序及外部设备使用的ROM BIOS程序区。由于一台计算机只有一套启动自检、引导装入程序及一套内存分体设置、切换控制程序,并且一台计算机一般只配备一套外部设备,无论计算机工作在哪个内存分体空间中、哪个系统平台软件上,CPU都要访问使用这一块底层控制程序区。因此,这一段ROM BIOS程序区应该是共用空间。此外,与外部设备ROM BIOS程序工作有关的输入输出I/O空间也应是共用空间。不论计算机工作在哪个分体内存中,这一段ROM共用程序区及I/O空间都要接通CPU地址总线。这由现有技术的内存管理电路即可完成。
不过,由于ROM程序运行速度慢,RAM程序运行速度快,未来更多采用的SDRAM闪速内存工作速度更快,计算机用户往往把ROMBIOS程序拷贝到影子内存(即与ROM地址相重叠的RAM空间)中运行。然而影子内存隶属于各个分体内存。由于本实施例所采用的内存分体开关控制电路的原因,各分体内的内存RAM空间是无法映射成各分体的共用空间的,它们也无法互相寻址访问,就象它们分属于不同的物理计算机一样。各分体内存的软件系统对影子内存的使用要求可能有所不同,因此,各分体内存中影子内存的使用情况应在CMOS中分别设置,这样,CMOS中将多一项有关各分体内存的影子内存设置项。
各分体内存的外部设备BIOS程序即可以在共用的ROM空间内运行,也可以在隶属于各分体内存的影子内存中运行,因而可以拷贝到影子内存中。但内存分体设置及切换驱动程序却不允许拷贝到影子内存中运行,因为它必须是和各分体内存都连接的公共可访问的程序区,以实现内存分体之间的平滑安全切换。这由现有技术的内存管理电路完成。
五、内存分体切换处理程序及切换过程计算机的运行从一个内存分体切换到另一个内存分体,可以有两种方式(一)一种是手动键盘输入命令切换。当由于需要在另一个内存分体启动另一套软件系统或需要实时切换到另一个内存分体的软件系统下工作时,采用手动从键盘输入命令切换。
(二)另一种是事先设置的自动切换。如果当前正在A内存分体进行一种一般事务的时停时续的操作,例如编写WPS文档文件,经常会停顿思考,有许多临时停止操作的间歇时间,而需要同时兼顾B内存分体正在运行的需要长时间连续运算的科技工程计算,那么可以利用当前工作的A分体的停顿间歇时间,当计算机检测到键盘操作空闲时,自动切换到B分体。而有键盘输入操作时,计算机又自动切换回A分体。
本实施例仅以手动键盘命令切换为例说明切换操作技术及过程。
在现有技术中,PC机键盘输入处理程序由硬件中断处理程序和软件中断处理程序二者构成。其中,软件中断处理程序隶属操作系统和应用软件,与操作系统有关。硬件中断处理程序则和操作系统无关,除非计算机用户修改中断指针指到改编的硬件中断处理程序。
在本发明中,在现有键盘硬件中断处理程序基础上,添加内存分体切换处理程序。这一程序是各内存分体共用程序,其程序地址应当是各内存分体公共可访问空间。它可以和键盘硬件中断处理程序一起,以及和系统上电开机自检引导程序、内存分体设置程序一起,做成供各内存分体公共使用的ROM程序。
在现有技术中,当键盘有键按下时,键盘单片计算机把它转为扫描码表示的键位置编码或特殊键状态码,输入到主机键盘接口,并给主机CPU发硬件中断,启动主机键盘硬件中断处理程序。键盘硬件中断处理程序接收已在键盘接口中的键盘扫描码,结合已经接收记录的特殊键状态,把输入扫描码转换为由扫描码和ASCII码组成的两字节扩展码,并存入内存键盘缓冲区;然后再检测是否有它有权处理的键盘命令。
在本发明中,当键盘硬件中断处理程序完成上述操作后,检测存入的两字节扩展码是否为内存分体切换命令(具体命令码组成由计算机制造商开发设计时决定)?若不是,继续键盘硬件中断处理程序的其余操作;若是,则按下述步骤转入内存分体切换处理过程(一)内存分体切换处理程序首先把分体切换操作要用到的CPU寄存器数据压栈,然后(二)在屏幕提示
“(1)内存分体总数 ×(2)已经启动内存分体 ×,×,×,……(3)当前工作的内存分体号 ×切换到N号内存分体?(按数字键×)(退出操作,按ESC键)”(三)输入一位数字键(目标分体号),按回车确认。内存分体切换处理程序首先判断输入的分体号是否合法,即是否在内存分体总数范围内?若是,驱动内存分块软开关,使接通中断现场保存区,继续下一步。若不合法,则提示“输入目标分体号不在总数范围内,请重新输入!”,然后转回第二步。
(四)保存CPU其余全部寄存器的数据(不包括预取指令队列寄存器),保存内存管理电路驱动状态及当前工作分体中有必要保存的其它现场数据。接着,判断主板上CACHE及显示卡缓冲存储器是否有分体设置?若无,则保存CACHE内容及显示缓存内容,保存显示卡显示模式,跳到第六步;若有,则仅保存显示卡显示模式,继续下一步。
(五)驱动主板CACHE与显示卡缓冲存储器分体切换软开关,切断当前工作分体,接通目标分体,实现从当前分体切换到目标分体。
(六)驱动主板内存分体切换软开关,切断当前工作分体,接通目标分体,实现从当前内存分体切换到目标内存分体。
(七)这时目标分体已经转变成当前工作分体。首先判断当前分体是否已经启动使用?若尚未启用,先驱动内存分块软开关,使当前分体的现场保存区与内存其它部分断开,然后,跳转到计算机冷启动程序入口,就象复位启动计算机一样,启动装入运行另外一套操作系统及其应用软件。若已经启动使用,继续下一步。
(八)从现场保存区依顺序读数据恢复CPU全部寄存器数据,恢复内存管理电路驱动状态及当前工作分体的其它现场数据,恢复CACHE及显卡缓存内容(若先前有保存的话),恢复显示模式。然后驱动内存分块软开关,使现场保存区与内存其它部分断开。
(九)从堆栈弹出恢复分体切换操作前压栈的CPU寄存器数据(见前述第一步操作)。清除键盘缓冲区(即使键盘缓冲区首指针、尾指针相等),清除特殊键状态记录。然后跳转到中断返回指令,从断点开始继续先前被中断的原程序。
权利要求
1.在计算机中,把主机随机存储器系统(主要是内存)分成几个分立的空间结构相同的存储体,在存储体切换软开关及其存储分体设置与切换处理程序驱动控制下,每个存储体可以互不相干地分别启动运行一套操作系统及其应用软件,从而构成一种在用户使用角度看来,可以同时运行多个操作系统平台及其应用软件的同时多平台计算机。其特征是①所称的同时多平台计算机,其主机随机存储器系统(主要是内存)可以分成几个空间结构相同、但管理和使用互不相干的存储分体;②所称的同时多平台计算机,在其主机系统固化程序ROM BIOS中固化了对存储分体的选通与切换逻辑(叫做存储体切换软开关,见说明书)进行控制的存储分体设置与切换处理程序。③所称的同时多平台计算机,在存储体切换软开关及其存储分体设置与切换处理程序驱动控制下,可以在每个存储分体中分别启动运行一套操作系统及其应用软件,即具有同时运行多个平台软件系统的功能。
2.根据权利要求1,所称的“几个空间结构相同、但管理和使用互不相干的存储分体”,各存储分体在操作系统及其应用软件看来,其空间结构、管理规则和使用方式是一样的,并和现有技术同类型计算机中不分体的存储系统是一样的;每个存储分体,其空间结构和容量大小,就其所担负的系统功能范围内,均是满足计算机运行所需要的完整存储系统;它们和计算机中其它共用硬件(包括共用的存储器子系统)及共用ROM程序等的关系,分别均构成一台完整的计算机。其特征是①所称的存储分体,其空间结构和容量大小,就其所担负的系统功能范围内,是满足计算机运行所需要的完整存储系统,而不是该完整存储系统中的一部分。例如PC个人微机内存系统,每个内存分体都是从最低地址00000H开始的一段足够运行DOS或WINDOWS操作系统及其应用软件的连续存储空间。反之,如在DOS环境下通过地址映射到高位内存(UMB)而被存取的一个16K大小的内存页,则它只是计算机完整内存系统中的一部分,一个内存块。②所称的存储分体,各存储分体空间结构(除存储容量以外,见说明书)、管理规则、使用方法是一样的,并和现有技术同类型计算机中的存储空间结构及管理、使用规则是一样的。例如在IBM PC/AT个人微机中,由于80x86系列CPU把中断指针表安排在内存最低地址00000H开始的1K字节中,所以其基本内存RAM的空间结构都是从00000H开始编址的;各内存分体的存储单元编址对于在其中运行的软件系统看来,都是从00000H开始编址,并因而是互相重叠的。
3.根据权利要求1及权利要求2,所称的同时多平台计算机,其主机系统固化了存储分体设置与切换处理程序;所称的存储分体,是在存储分体设置与切换处理程序控制下工作的。其特征是①在计算机开机启动程序中,续含有存储分体设置与初始化程序,其功能是计算确定存储分体的容量及存储分体的选通控制线,取得程序对存储分体选通与切换的控制权,并初始化存储分体工作状态及标志;计算机操作者可以通过键盘输入命令(或通过CMOS参数)设定存储分体的个数及其它工作要求。②在计算机键盘硬件中断处理程序中,包含有存储分体切换处理程序,其功能是判别和处理操作者从键盘输入的存储分体切换即平台软件系统的切换命令;计算机操作者可以从键盘输入命令,通过键盘硬件中断处理程序中的存储分体切换处理程序从一个存储分体(当前工作分体)切换到另一个分体(目标分体),从而实现从一个平台软件系统到另一个平台软件系统的切换。
4.根据权利要求1、权利要求2及权利要求3,所称的存储分体,在存储体切换软开关及其切换处理程序驱动控制下,每个存储分体可以互不相干地分别启动运行一套操作系统及其应用软件;同一套操作系统及其应用软件不论在哪一个存储分体启动运行,其启动运行过程及对存储器空间的使用情况及访问方式都完全一样,就象在现有技术的存储器不分体的一台单独的物理计算机中启动运行的情形一样。其特征是①所称的存储分体,每个存储分体都可以启动装入运行一套操作系统及其应用软件;启动的情形就象一台单独的物理计算机开机启动一样。②被启动运行的操作系统及其应用软件,不论在哪个存储分体启动装入运行,其启动过程及运行情形都是一样的;换言之,一个操作系统及其应用软件,在哪一个存储分体启动都一样。③所称的存储分体,是在存储体切换软开关及其切换处理程序(见说明书)驱动控制下,实现其与其它存储分体不相干地单独启动运行一套操作系统及其应用软件的。
5.根据权利要求1、权利要求2及权利要求4,各个存储分体是分别管理和使用的,是由各个内存分体中运行的软件系统分别管理和使用的;各存储分体中运行的软件系统(程序及数据)是互无关系、互不相干、分别运行、互不影响的。其特征是①所称的存储分体及其中运行的软件系统无法互相寻址访问,就象它们分属于不同的物理计算机,在不同的物理计算机中运行一样;②所称的存储分体及其中运行的软件系统,可以分别重启动(复位冷启动或热启动),重启动过程不影响其它存储分体中软件系统的原有正常运行。
6.根据权利要求1、权利要求2及权利要求4,所称的“可以分成几个空间结构相同、但管理和使用互不相干的存储分体”的存储器系统,及包含有这种存储器系统的计算机或计算机设备、部件,是用于(在用户使用角度看来,见说明书)同时运行多个平台软件系统的用途或目的的。其特征是①所称的存储器系统,其中的每个存储分体,在计算机同时多平台运行时,可以一一对应地由多个平台软件系统分别支配和使用。例如显示缓冲存储器,分成几个缓存分体,每个缓存分体分别由计算机中同时运行的多个平台软件系统中的某一个支配和使用。②所称的存储器系统,其存储管理部件中包含有存储分体选通控制逻辑(电路),并相应在固化的驱动程序中包含有相应的存储分体设置与切换驱动处理程序,行使对存储分体的选通切换控制。例如可以应用于分体运行多平台的显示缓冲存储器,其显示卡上包含有分体选通控制逻辑电路,并在固化的BIOS程序中包含有分体设置与切换驱动程序。③所称的存储器系统,其分体设置与切换驱动程序可以由操作者从键盘输入命令以使其执行分体设置与切换操作。例如显示缓冲存储器,其显示卡上的分体设置与切换驱动程序可以由主机调用以执行分体切换操作,而主机调用命令则可以由操作者键盘输入命令驱动其调用过程。
全文摘要
本发明,是一种能同时运行多个操作系统平台及其应用软件的计算机。本发明,在一台计算机中,把主机随机存储器系统(主要是内存)分成几个分立的空间结构相同的存储体,每个存储体分别可互不相干地独立启动运行一套操作系统及其应用软件。在软开关切换控制下,CPU分时运行各个存储体的软件系统,并且它们分时共用一套外部设备。对于计算机用户看来,它们好象是多个互不相干的软件系统在分别同时运行,就象多台物理计算机在同时工作,每台运行各自的一套软件一样。这样使一台计算机同时做多台计算机的工作,一机发挥多机的效用。
文档编号G06F12/00GK1236922SQ99106699
公开日1999年12月1日 申请日期1999年5月27日 优先权日1999年5月27日
发明者林光荣 申请人:林光荣