專利名稱::通過外殼支持多操作系統(tǒng)的橋接設(shè)備的制作方法本發(fā)明一般地涉及計(jì)算機(jī)系統(tǒng),特別是有多處理器的計(jì)算機(jī)系統(tǒng),其中每個(gè)處理器能夠在各自獨(dú)立的操作系統(tǒng)支持下進(jìn)行工作,其中計(jì)算機(jī)系統(tǒng)具有一種完善了的初始程序裝入程序(引導(dǎo)裝入程序)的方法與硬件。本發(fā)明的參考文獻(xiàn)為1.直接型多路控制設(shè)施,序列號503,963,1983年6月13日。2.具有獨(dú)立運(yùn)行系統(tǒng)的微計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)一般由硬件與軟件組成。沒有必要的軟件,計(jì)算機(jī)硬件本身是不能完成任何的計(jì)算機(jī)任務(wù)的。需要各種類型的軟件以使計(jì)算機(jī)有條不紊地完成其作業(yè)與任務(wù)。這些程序通常分為兩大類一操作系統(tǒng)程序和應(yīng)用程序。操作系統(tǒng)通常由諸如管理程序(也稱為執(zhí)行程序或監(jiān)督程序)、作業(yè)操作程序、匯編程序、編譯程序、編輯程序等程序組成。應(yīng)用程序是用戶程序,用來完成用戶的任務(wù),例如工資單程序,存貨清單程序等等。應(yīng)用程序通常是由操作系統(tǒng)進(jìn)行管理的;亦即可以對它們進(jìn)行編譯、調(diào)度、編輯等等。操作系統(tǒng)也對應(yīng)用程序進(jìn)行翻譯或編譯,以便計(jì)算機(jī)理解它們。然而在執(zhí)行某個(gè)程序之前,首先必須將它送入計(jì)算機(jī)的存儲器中。因?yàn)闆]有任何程序的機(jī)器是“啞巴”機(jī)器,那么怎樣才能將必要的程序送入計(jì)算機(jī)的存儲器中呢?一般利用機(jī)器操作臺上的一個(gè)裝入按鈕啟動一個(gè)程序,由這個(gè)微程序進(jìn)行控制,將很少量的數(shù)據(jù)從零地址開始送入存儲器中。通常這種初始程序裝入抗張過程只送入很少量的數(shù)據(jù),例如一張卡片或七個(gè)字。于是這就開始了一個(gè)程序,它的第一條指令是由初始程序裝入微程序讀入的。由這個(gè)微程序?qū)氲男畔脕韺⒏嗟男畔⒆x入存儲器的指令,它是一個(gè)更通用的裝入程序的一部分。用這種方法,機(jī)器“引導(dǎo)”自己首先送入一個(gè)裝入程序,然后利用它從外部設(shè)備將其它的數(shù)據(jù)與程序裝入計(jì)算機(jī)系統(tǒng)的主存儲器中。雖然引入的初始信息塊可能相當(dāng)小,然而一般包含有能夠引入更多指令的一些指令,直到引入能夠控制一般性的程序及數(shù)據(jù)輸入的裝入程序。在一個(gè)多道程序多處理系統(tǒng)中,當(dāng)發(fā)出了“引導(dǎo)”操作信號后,輸入/輸出(I/O)處理器就進(jìn)行控制。通常它必須停止所有正在進(jìn)行中的I/O操作、將包含在它的I/O存儲器中的全部通道寄存器復(fù)位、此外它必須使主處理器將其全部寄存器與存儲管理單元復(fù)位,并將其主存儲區(qū)清零。(通常是在小于裝入一個(gè)新的操作系統(tǒng)時(shí)執(zhí)行這個(gè)初始化過程。)然后這個(gè)利用“引導(dǎo)裝入”程序的I/O處理器將“裝入操作系統(tǒng)與應(yīng)用程序。然后計(jì)算機(jī)系統(tǒng)便準(zhǔn)備好執(zhí)行程序并完成指定給它的作業(yè)與任務(wù)。在一個(gè)多道程序多處理系統(tǒng)中,一個(gè)計(jì)算機(jī)系統(tǒng)可以在任何規(guī)定的時(shí)間在一個(gè)操作系統(tǒng)的控制運(yùn)行。如果需要改變操作系統(tǒng),一般還需要進(jìn)行上述初始化過程??梢?,這是耗時(shí)的。此外,當(dāng)操作系統(tǒng)改變時(shí),沒有辦法從原先的操作系統(tǒng)將信息傳給當(dāng)前的操作系統(tǒng)。因此,停止一個(gè)操作系統(tǒng)并“引導(dǎo)裝入”另一個(gè)操作系統(tǒng)的過程便變成無能為力了。因此為了提高從一個(gè)操作系統(tǒng)轉(zhuǎn)到另一個(gè)操作系統(tǒng)的效能,所需要的是一種能夠?qū)⑿畔囊粋€(gè)操作系統(tǒng)傳送到另一個(gè)操作系統(tǒng),從而“橋接”引導(dǎo)裝入過程的方法與手段。本發(fā)明的第一個(gè)目的是提出一種改進(jìn)了的數(shù)字計(jì)算機(jī)系統(tǒng)。本發(fā)明的另一個(gè)目的是為一個(gè)計(jì)算機(jī)系統(tǒng)提出一種改善了的“引導(dǎo)”裝入方法與裝置。本發(fā)明還有一個(gè)目的是提出一種改善了的“引導(dǎo)”裝入方法與裝置,利用它將計(jì)算機(jī)系統(tǒng)從一個(gè)操作系統(tǒng)轉(zhuǎn)換到另一個(gè)操作系統(tǒng)。本發(fā)明還有一個(gè)目的是提出一種改善了的方法與裝置,它用來在“引導(dǎo)”裝入操作期間或其后將信息從一個(gè)操作系統(tǒng)傳送給另一個(gè)操作系統(tǒng)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,上述這些目的是利用硬件和固件來實(shí)現(xiàn)的,這種硬件和固件用來在一個(gè)操作系統(tǒng)即將從主存中被撤消并用另外一個(gè)操作系統(tǒng)來代替它時(shí)存貯一些必要的信息(例如時(shí)刻)并把這些信息從一個(gè)操作系統(tǒng)傳遞給另一操作系統(tǒng)。在本發(fā)明的一個(gè)實(shí)施例中,利用了一個(gè)管理通道定時(shí)器(以下是指SCT226)。這個(gè)SCT是一個(gè)分辨度為1秒的32位實(shí)時(shí)計(jì)數(shù)器。裝入軟件時(shí),它便啟動,但是不能用軟件使它停止。一旦已經(jīng)啟動,它就(向上)計(jì)數(shù),直到停電下降。經(jīng)過軟件“引導(dǎo)”鍵的操作,SCT便有了準(zhǔn)確的時(shí)間。在微系統(tǒng)6/10上SCT有兩組如下所示的I/O功能碼對功能碼(十六進(jìn)制)功能FC-10輸入SCT高位字FC-12輸入SCT低位字FC-11輸出SCT高位字FC-13輸出SCT低位字FC-14輸入G.P.(通用寄存器)高位字FC-16輸入G.P.低位字FC-15輸出G.P.高位字FC-17輸出G.P.低位字為了使SCT能夠不被中斷地更新狀態(tài),則當(dāng)發(fā)出輸入高SCT(FC-10)與輸出低STC(FC-13)時(shí)SCT正處在更新過程中的話,上述的輸入與輸出就成為NAK(也就是說將CPUi指示器201a復(fù)位并防止I/O中斷更新過程;因此I/O必須再次試行中斷)*。*此處術(shù)語ACK不嚴(yán)格地作為成功地達(dá)到了I/O指令目的同義詞,而NAK則用來指示其失敗。為了給SCT提供相關(guān)聯(lián)的裝入/卸載功能,實(shí)現(xiàn)了下述機(jī)構(gòu)。對于輸入,執(zhí)行FC-10時(shí),SCT的兩半部分都由固件讀出,高位字返回,低位字保存在固件的某個(gè)工作單元中。執(zhí)行FC-12時(shí)只是將這個(gè)工作單元中的當(dāng)前內(nèi)容送回。FC-12永遠(yuǎn)不會被NAK,即能夠發(fā)生中斷。對于輸出操作,執(zhí)行FC-11時(shí),只是將輸出數(shù)據(jù)保存固件的某個(gè)工作存儲單元中。FC-11也永遠(yuǎn)不會被NAK。執(zhí)行FC-13時(shí),這個(gè)工作存儲單元中的內(nèi)容被裝入SCT的高位字,F(xiàn)C-13輸出字被裝入SCT的低位字,如果SCT尚未在運(yùn)行的話,它就被啟動。在另一個(gè)實(shí)施例中,在I/O處理器的RAM(隨機(jī)存儲器)空間中提供兩個(gè)附加字。這些字用來將信息從一個(gè)操作系統(tǒng)傳送給另一個(gè)正被導(dǎo)入計(jì)算機(jī)的操作系統(tǒng),這里因?yàn)樵谝龑?dǎo)操作中并不對這些字進(jìn)行初始化而且當(dāng)?shù)?個(gè)操作系統(tǒng)被引導(dǎo)裝入計(jì)算機(jī)時(shí),它可以利用這些字中的信息。這些字利用功能碼FC-14至FC-17。此外,這些字不需要不可分割地進(jìn)行更新或是對低位與高位寄存器做出上述那樣的反應(yīng)。因此本發(fā)明提出一種方法與硬件,用來將時(shí)刻從一個(gè)操作系統(tǒng)傳送另一個(gè);它也將其它有用的信息,例如調(diào)用它并把它引導(dǎo)裝入到計(jì)算機(jī)中的目的傳送給第2個(gè)系統(tǒng)。圖1是體現(xiàn)本發(fā)明的計(jì)算機(jī)系統(tǒng),微系統(tǒng)6/10的高級框圖。圖2是本發(fā)明的高級框圖。圖3是位于I/O處理器的RAM空間中的信箱圖。圖4A,4B,4C是被LSI-6處理器在輸入/輸出(I/O)操作中所用的指令格式。圖5是SCT計(jì)數(shù)器的格式。圖6A,6B是在本發(fā)明中所用的通用寄存器的格式。圖6C-6D是本發(fā)明中所用的寄存器格式?,F(xiàn)在參看圖1,它是數(shù)據(jù)處理系統(tǒng)100的總體圖,它包含一個(gè)固件控制的作為應(yīng)用處理器的中央處理單元(CPU)102與一個(gè)作為輸入/輸出處理器的I/O微處理器104。CPU102是HoneywellLSI-6型,它運(yùn)行HoneywellMOD200或,MOD400操作系統(tǒng),或者任何其它的操作系統(tǒng)。由CPU102執(zhí)行存在一個(gè)64k×16bit(位)字或更大的主存貯器106內(nèi)的軟件程序來完成系統(tǒng)應(yīng)用工作。CPU102執(zhí)行軟件指令時(shí)用到的微程序存在一個(gè)4k×48位字的只讀存貯器(ROM)102-2中。與I/O微處理器104配合的是一個(gè)8k×8位字的只讀存貯器(ROM)104-2與一個(gè)32k×8位字節(jié)的隨機(jī)存儲器(RAM)104-6。ROM104-2存儲了為使數(shù)據(jù)處理系統(tǒng)100啟動和初始化所必需的固件程序。RAM104-6存儲了表格通信控制程序以及用來對一個(gè)通用異步接收/發(fā)送控器(UART)144進(jìn)行仿真的固件、用來控制一些設(shè)備的固件,這些設(shè)備包括通過UART134控制的鍵盤134-2、通過軟磁盤控制器(FDC)138控制的軟磁盤138-12,138-14、通過UART146控制的打印機(jī)146-2以及陰極射線管控制器(CTRC)120。RAM104-6也包括一些由CPU102以及I/O微處理器104用作“信箱區(qū)”以便相互間進(jìn)行通信的存儲單元。CPU102與主存儲器106之間通過21位地址總線108和16位數(shù)據(jù)總線116進(jìn)行耦合。根據(jù)CPU102所規(guī)定的地址,通過數(shù)據(jù)總線116在CPU102與主存儲器106之間傳送數(shù)據(jù)。數(shù)據(jù)總線116耦合到總線交換寄存器118。耦合到總線交換寄存器118的還有8位數(shù)據(jù)總線114。總線交換寄存器118從數(shù)據(jù)總線116接收16位數(shù)據(jù)字,并通過數(shù)據(jù)總線114將其作為兩個(gè)8位字節(jié)發(fā)送,同時(shí)它也從數(shù)據(jù)總線114接收8位字節(jié),并通過數(shù)據(jù)總線116將其發(fā)送。I/O微處理器104,RAM104-6,CRTC120,UART134、144、146,以及FDC138都耦合到數(shù)據(jù)總線114上。16位I/O地址總線112通過收發(fā)機(jī)110耦合到地址總線108,它也耦合到I/O微處理器104以及I/ORAM104-6,以此方式能夠使CPU102以及I/O微處理器104二者都能對主存儲器106和RAM104-6尋址。耦合到數(shù)據(jù)總線114的還有一個(gè)用來控制一個(gè)磁盤驅(qū)動器152-2的外圍接口適配器152,還有用來通過一個(gè)異步端口148接收與發(fā)送數(shù)據(jù)字符的異步線路UART144,還有用來存儲那些在CRT120-10上顯示的字符的一個(gè)2k×8位字的數(shù)據(jù)隨機(jī)存儲器(RAM)120-4,還有用來存儲屬性字符的一個(gè)2k×8位字的屬性隨機(jī)存儲器(RAM)120-6。屬性字符通常用來完成CRT120-10的這些顯示功能如加下線字符或字符域以便使某些選定的字符或字符域閃爍或以較強(qiáng)亮度顯示。存儲在RAM120-4中的字符代碼加給一個(gè)4k×8位字的字符發(fā)生器隨機(jī)存取存儲器(RAM)120-2,后者為在CRT120-10屏幕上顯示出字符,產(chǎn)生與數(shù)據(jù)的光柵條相對應(yīng)的代碼。一個(gè)圖象支持邏輯120-8與CRTC120、字符發(fā)生器RAM120-2以及屬性RAM120-6相耦合以便在CRT120-10表面產(chǎn)生字符的線條。FDC138一般是一臺NECuPD765單/雙密度軟磁盤控制器,在NECElectronicsU.S.A.Inc.(美國NEC電子公司),MicrocomputerDivision微計(jì)算機(jī)部,1NativeExecutivePark,Natick,Massachusetts01760出版的NEC1982年的目錄中對它作了敘述。I/O微處理器104通常是一個(gè)MotorolaMC68BO98位微處理單元。PIA152通常是一個(gè)MotorolaMC68B21外國接口適配器。CRTC120通常是一個(gè)MotorolaMC68B45CRT控制器。對I/O微處理器104,PIA152與CRTC120在由MotorolaSemiconductorProductsInc.(Motorola半導(dǎo)體產(chǎn)品公司),3501BluesteinBoulevard,Austin,Texas78721出版的MotoralaMicroprocessorDataManual(Motorola微處理器數(shù)據(jù)手冊),1981年版中有所敘述。UART134,144與146是Synertics2661通用異步接收/發(fā)送控制器,SynerticsCorporation(Synertics公司),811EastArguesAvenue,Sunnyvale,California94086出版的SynerticsMOSMicroprocessorDataProcessorManual(SynerticsMOS微處理器數(shù)據(jù)處理器手冊)中對它們作了敘述。在大容量存儲器和主存儲器之間傳送數(shù)據(jù)時(shí)涉及到邏輯元件與固件稱為數(shù)據(jù)多路控制(DMC)裝置。在其時(shí)間內(nèi)數(shù)據(jù)進(jìn)行發(fā)送的總線周期稱為DMC周期。微系統(tǒng)6/10系統(tǒng)以及這些結(jié)構(gòu)在1983年6月13日發(fā)布的,題為“直接型多路控制設(shè)施”的美國專利No.503,963中有更詳細(xì)的敘述,該專利也是授給本發(fā)明的同一受讓人的。現(xiàn)在參看圖2,這是本發(fā)明的結(jié)構(gòu)框圖。不包括8086個(gè)人機(jī)的基本Honeywell微系統(tǒng)6/10系統(tǒng)方案包含一個(gè)主存儲器205,它可以由一個(gè)HoneywellLSI-6處理器201與一個(gè)Motorola6809型處理器203存取。與Motorola6809型處理器耦合的還有隨機(jī)存儲器(RAM)204。由于LSI-6處理器是一個(gè)16位處理器,隨機(jī)存儲器205是通過一條16位總線211與它耦合的。Motorola6809處理器是一個(gè)8位機(jī),RAM204也是8位寬度的,它們與主存儲器是通過一條雙總線208耦合的,該雙總線由兩條8位型式的總線組成。從而LSI-6處理器201可以對主存儲器205與RAM204進(jìn)行存取;Motorola6809型處理器203也能對主存儲器205與RAM204進(jìn)行存取。這個(gè)由LSI-6處理器201、主存儲器205、RAM204以及Motorola6809型處理器203組成的系統(tǒng),是基本的微系統(tǒng)6/10系統(tǒng)。它是固件驅(qū)動的,因而動作很快,只利用主存儲器205的大約20-25%的存儲周期;即利用可用存儲器帶寬的25%。LSI-6處理器201是這個(gè)計(jì)算機(jī)系統(tǒng)的主力部件。它基本上是在HoneywellMOD400或MOD200操作系統(tǒng),或任何其它的操作系統(tǒng)的管理下進(jìn)行工作的,并執(zhí)行與這些操作系統(tǒng)兼容的用戶系統(tǒng)。另一方面,Motorola6809型處理器203作為一個(gè)輸入/輸出處理器工作,在99%時(shí)間內(nèi),它利用其自己的局部存儲器204進(jìn)行工作。根據(jù)設(shè)計(jì),當(dāng)LSI-6處理器201不使用主存儲砌205時(shí),它可以利用主存儲器205。一個(gè)Intel8086型微處理器202通過總線210也與主存儲器205耦合。Intel8086處理器202能夠利用MSDOS或CPM-86操作系統(tǒng),它們可以執(zhí)行為IBM個(gè)人計(jì)算機(jī)寫的商品軟件,與此相應(yīng),作為選用部件微系統(tǒng)6/10系統(tǒng)具有IBM個(gè)人計(jì)算機(jī)仿真器板。8086處理器202是軟件驅(qū)動的,慢得多,大約需用主存儲器周期的70-75%。因此,如果處理器201、202和203中的每一個(gè)在它們各自的操作系統(tǒng)控制下獨(dú)立而并行地運(yùn)行并處理獨(dú)立的用戶程序的話,就有必要使各個(gè)處理器之間對于主存儲器帶寬的要求保持一定的關(guān)系。除這個(gè)要求外,必須在主存儲器205中給處理器201與202配給各自的存儲器空間。這是利用一個(gè)地址寄存器A223以及與加法器22耦合的一個(gè)基地址寄存器225和比較器229實(shí)現(xiàn)的。這個(gè)基地址寄存器存有偏移量,它是與從8086處理器202來的、并存在地址寄存器A223的地址通過加法器224相加。因此主存儲器中所有被Intel8086處理器202請求的地址,都偏離主存儲器205的基地址一個(gè)予定的偏移量。比較器209要確定分配給各個(gè)處理器的予定的RAM空間的邊界不被超過。由于LSI-6處理器201是直接請求存儲器的地址,并設(shè)有偏移量,所以處理器201與202在主存儲器中有其各自的工作空間。另外,在8086存儲器205基地址的下面還有一個(gè)ROM空間。這個(gè)ROM空間由8086處理器201來的負(fù)地址尋址。在這個(gè)空間,數(shù)據(jù)只能由8086從主存儲器205讀出,但是在執(zhí)行期間數(shù)據(jù)不能寫入這個(gè)區(qū)域。因此在這個(gè)空間只存儲只讀程序,諸如為8086處理器201的BIOS。僅受Intel8086型的處理器202由于通過比較器229確定了邊界而不能對留給LSI-6處理器201的存儲空間進(jìn)行存取,然而,LSI-6處理器卻不同,它在這方面并不受限制,它可以對主存儲器空間205中包括8086空間在內(nèi)的任何區(qū)域進(jìn)行訪問。因此,為了使8086型處理器202與LSI-6處理器201進(jìn)行通信,在留給8086處理器202的RAM空間中配有一個(gè)信號燈/信箱212。對RAM存儲器204與其它外圍設(shè)備,如USART、軟磁盤等進(jìn)行存取的操作是通過在LSI-6處理器中201中執(zhí)行的一個(gè)程序完成的。LSI-6處理器201通過ROM201-2中的一個(gè)固件程序,利用位于I/ORAM空間204的信箱213對諸如上面提到的一些物理設(shè)備進(jìn)行尋址,而不對它們直接尋址。(對系統(tǒng)這一方面的情況在下面敘述圖3時(shí)還要進(jìn)一步加以說明。)然而主存儲器空間205中的信箱區(qū)212是用來在處理器201與202間進(jìn)行通信聯(lián)系的。在運(yùn)行中LSI-6處理器負(fù)責(zé)對輸入/輸出(I/O)操作初始化。因此當(dāng)Intel8086型處理器202希望對一個(gè)I/O設(shè)備進(jìn)行存取時(shí),需要給信箱212送一個(gè)信息。正常運(yùn)行時(shí),LSI-6處理器201對信箱212進(jìn)行管理,并根據(jù)請求著手為8086服務(wù)。在LSI-6與I/O設(shè)備之間的所有通信是由LSI-6處理器201通過在ROM201-2中的LSI-6固件,以及由I/O處理器203完成的。LSI-6處理器201-2通過位于I/O處理器RAM204中的信箱213順序地與I/O處理器203通信。(信箱213的結(jié)構(gòu)如圖3所示,下面將對它的用途與結(jié)構(gòu)進(jìn)行說明。)這個(gè)硬件及方法,與輔助的硬件和固件以及與輔助的功能代碼一起共同用來將信息從一個(gè)操作系統(tǒng)傳送給另一個(gè),因而便于從一個(gè)操作系統(tǒng)轉(zhuǎn)換到另一個(gè)。相應(yīng)地加上一個(gè)管理通道定時(shí)器(SCT)226與固件(下面說明),用來存儲時(shí)刻,并使定時(shí)器以一種的間隔更新內(nèi)容。此外還擁有一些G.P.寄存器225,用于存儲由一個(gè)操作系統(tǒng)使用,并在引導(dǎo)裝入過程中被傳送到另一個(gè)操作系統(tǒng)的其它信息。計(jì)算機(jī)系統(tǒng)初始化以及引導(dǎo)裝入時(shí),這些硬件寄存器不被清零。因此可見在Level6軟件與I/O的一些裝置之間的所有內(nèi)部通信是通過在ROM201-2中的LSI-6固件,以及通過I/O處理器203實(shí)現(xiàn)的,的,二者通過在I/O處理器的RAM204中的信箱區(qū)213進(jìn)行相互通信?,F(xiàn)在參看圖3,該圖示出了信箱區(qū)213的信箱圖。信箱圖有13個(gè)字節(jié),每一個(gè)字節(jié)有8位。偶數(shù)字節(jié)存在信箱左側(cè),奇數(shù)字節(jié)存在右側(cè)。每個(gè)字所完成的功能表示在右側(cè)。信箱的字節(jié)1-7用來在ROM201-2中的LSI-6固件與I/O處理器203之間傳送為執(zhí)行I/O指令所需的信息。LSI-6處理器201將信息裝入字節(jié)2-7,并裝入一個(gè)硬件寄存器(未示出),然后置上一個(gè)中斷I/O處理器的硬件位(未示出)。當(dāng)I/O處理器將I/O命令處理完畢后,它在字節(jié)1中置一個(gè)響應(yīng)碼,然后使硬件位復(fù)位。字節(jié)0-1字節(jié)0的第2-7位定義LSI-6處理201的當(dāng)前中斷級。由LSI-6固件保持這個(gè)數(shù)據(jù)的當(dāng)前狀態(tài)。如果當(dāng)前中斷級在數(shù)值上低于或等于某個(gè)I/O子系統(tǒng)的中斷級,則不接收該I/O子系統(tǒng)來的中斷。只要所請求的中斷尚未被應(yīng)用處理器服務(wù),I/O處理器還將在以后某一時(shí)刻重新試圖中斷。這個(gè)重新要求中斷的操作將一直延續(xù)到中斷被接受或中斷條件復(fù)位為止。字節(jié)1的第9位是I/O處理器的忙位。如果一個(gè)附屬的I/O子系統(tǒng)(即打印機(jī)、終端等)與level6系統(tǒng)軟件請求一個(gè)附加的功能,而該功能并不能立即被處理的話,便由I/O處理器給忙位置1。這個(gè)動作是與在一標(biāo)準(zhǔn)的lecel6總線上的NAK應(yīng)答同一類型的信息響應(yīng)。字節(jié)1的第10位是不存在的資源位。當(dāng)Level6系統(tǒng)軟件對某個(gè)在所用的微系統(tǒng)6/10結(jié)構(gòu)中所沒有子系統(tǒng)或設(shè)備進(jìn)行尋址時(shí),便由I/O處理器將它置1。字節(jié)1的其余位與本發(fā)明無關(guān),在此不作討論。字節(jié)2與3第0-9位對由I/O命令進(jìn)行尋址的設(shè)備定義通道數(shù)。如果應(yīng)用處理器(LSI-6)201插入一個(gè)無效的通道號的話,字節(jié)1中的N位便由I/O處理器置位。字節(jié)3的第10-15位定義I/O命令的功能代碼。對用來實(shí)現(xiàn)本發(fā)明的功能代碼,將在以后較詳細(xì)地討論。字節(jié)4與5這些字節(jié)包含I/O命令數(shù)據(jù)。字節(jié)6與7這些位定義了20位地址中的最低的16位。4位最高地址以及字節(jié)偏移量通過一個(gè)硬件寄存器(未示出)被傳送給I/O處理器。中斷字節(jié)9,A,B出現(xiàn)中斷請求時(shí),I/O處理器203便將信息裝入字節(jié)A和B,并給LSI-6處理器201送一個(gè)硬件中斷位。LST-6處理器取出字節(jié)A與B,在字節(jié)9中置入它的響應(yīng)值并清除硬件中斷位。字節(jié)9是中斷信箱區(qū)用的控制字節(jié)。字節(jié)9的第8位是標(biāo)記位(F),當(dāng)它由I/O處理器置1時(shí)表示有一個(gè)需要服務(wù)的外部中斷。當(dāng)LSI-6處理器取走了中斷數(shù)據(jù),它就將標(biāo)記(F)位復(fù)位。如果中斷不被接受(NAK),LSI-6處理器便將第9位置位。字節(jié)A,字節(jié)B的第8、9位字節(jié)A,以及字節(jié)B中的第8、9位包含了產(chǎn)生中斷的設(shè)備的通道號。字節(jié)B的第10-15位包含了指定給該通道的中斷等級。寄存器與暫存存儲器下面對包含數(shù)據(jù)多路控制(DMC)寄存器以及暫存存儲器的字節(jié)進(jìn)行定義。字節(jié)C第0-3位定義準(zhǔn)備將哪個(gè)Lenvel寄存器的信息傳送給I/O信箱或從I/O信箱將信息傳給哪個(gè)Lenvel6寄存器。如果第0-3位的內(nèi)容是數(shù)值0至7,則在LSI-6處理器201中的一個(gè)16位的CPUR寄存器的信息將被送到字節(jié)E與F,或者后者的信息將被傳送給前者。如果第0-3位的數(shù)值是A至F,則一個(gè)20位的CPUB寄存器的信息將被送到字節(jié)10,11和13,或者后者的信息將被傳送給前者。字節(jié)C的(S)位是傳送方向標(biāo)記位。0狀態(tài)表示方向是進(jìn)入信箱;而1狀態(tài)則表示方向是進(jìn)入LSI-6處理器。字節(jié)C的(T)位表示在紫節(jié)E到11與13中存儲了哪一類型的信息。當(dāng)它為0時(shí),這個(gè)信息便是數(shù)據(jù)多路控制(DMC)信息,當(dāng)它為1時(shí),這個(gè)信息便是Lenvel6寄存器信息,在這種情況下,由字節(jié)E、F、11與13傳送一個(gè)范圍與地址。字節(jié)D(F)位-當(dāng)它被置為1時(shí)-表示有一個(gè)寄存器的傳送操作正在進(jìn)行中。RFU是備用空間。字節(jié)E和F這些字節(jié)用來傳送數(shù)據(jù)。它們或者包含了一次DMC操作的范圍,或者包含了16位Level6寄存器的內(nèi)容。字節(jié)10,11和13這些字節(jié)用在數(shù)據(jù)傳送中。它們包含或者是一次DMC操作的地址或者是一個(gè)20位Level6寄存器的內(nèi)容。字節(jié)10和11包含了最低的16位地址位,字節(jié)13包含最高的4位?,F(xiàn)在參看圖5,圖中是SCT計(jì)數(shù)器。SCT計(jì)數(shù)器由兩個(gè)寄存器401、402組成;每個(gè)寄存器能夠存兩個(gè)36位字,總共32位。SCT寄存器的分辨度為1秒。SCT寄存器位于I/ORAM205中,用數(shù)字226標(biāo)示。SCT的內(nèi)容是由LSI-6軟件裝入的,該軟件利用了以后要敘述的I/O指令。一旦被軟件裝入后,它就不能由軟件停止,而由下面要敘述的固體每秒維護(hù)一次。因此SCT在整個(gè)軟件“引導(dǎo)裝入”操作中保持了以秒為單位的準(zhǔn)確的時(shí)間。參看圖4A,4B與4C,它們表示了通常存放在主存儲器105中的典型的指令格式,這些指令供LSI-6處理器在輸入/輸出(I/O)操作中使用。圖4A與4B的第0至8位表示I/O指令的類型,而第9至15位表示正在傳送的信息從何處來或到何處去的地址。在本發(fā)明中,作為例子,需要傳送的信息是時(shí)刻,它被從SCT226傳送到主存儲器205或傳送到LSI-6處理器201中的一個(gè)寄存器以供新裝入的操作系統(tǒng)使用。進(jìn)行傳送的方向由功能碼表示。功能碼及其功能如下如示功能代碼(十六進(jìn)制)功能FC-10輸入SCT高位字FC-11輸出SCT高位字FC-12輸入SCT低位字FC-13輸出SCT低位字如果需要將信息根據(jù)I/O指令中的地址字節(jié)傳送到主存儲器中的某個(gè)位置的話,就利用代碼10或者12。功能代碼10將SCT的高位字信息傳送出去;而功能代碼12則將SCT的低位字信息傳送出去。這個(gè)信息首先被送到信箱區(qū)213,然后通過I/O指令的數(shù)據(jù)字被送到LSI-6處理器。如果需要反向傳送信息,例如當(dāng)SCT由LSI-6設(shè)定為某一日期時(shí),就在I/O指令中利用功能代碼11和13,過程就反向。為了給SCT提供相關(guān)聯(lián)的裝入/卸載功能,需要根據(jù)下述過程。對于輸入,執(zhí)行FC-10時(shí),將由固件讀出SCT的兩半部分,高位字返回,而低位字則保存在固件的一個(gè)工作單元中。執(zhí)行FC-12時(shí),只有將該工作單元的當(dāng)前內(nèi)容返回。FC-12始終不被NAK。對于輸出,執(zhí)行FC-11時(shí),只是將輸出數(shù)據(jù)保存在固件工作單元中。FC-11始終不被NAK。執(zhí)行FC-13時(shí)將該工作單元的內(nèi)容裝入SCT的高位字中,F(xiàn)C-13輸出字裝入SCT低位字,SCT被啟動,如果尚未在運(yùn)行中的話。現(xiàn)在參看圖4C,這是另一種類型I/O指令的格式,其中前10位用來存通道號。這個(gè)號數(shù)表示信息來去的通道。(在這是結(jié)構(gòu)中,典型的通道是信箱212,213,對它們每一個(gè)都予先指定了通道號。)上面所述的功能碼表示本發(fā)明中的信息流向,它位于執(zhí)行用指令的第10-15位。參看圖6A與6B,它們表示通用寄存器225的格式。兩個(gè)寄存器都有相似的格式,都是16位長。這些寄存器在引導(dǎo)裝入之前、之中或之后都是不可擦的。這些寄存器是由I/O指令利用適當(dāng)?shù)墓δ艽a裝入的,它們包含可以傳送給新裝入的操作系統(tǒng)的編碼信息,而傳送操作也是通過I/O指令利用適當(dāng)?shù)墓δ艽a實(shí)現(xiàn)的??梢詡魉徒o一個(gè)新操作系統(tǒng)的典型信息是,為了確定正確的固件(rightfirmware)是否位于該參照系統(tǒng)關(guān)鍵表(operatingsystem′skeytable)所在的位置信息。傳送給新操作系統(tǒng)的另一個(gè)典型信息是需要執(zhí)行的功能;即字處理、計(jì)算等。用來將信息傳送到G.P.寄存器225或從那里傳送來的信息代碼如下如示功能代碼(十六位)功能FC-14輸入G.P.高位字FC-16輸入G.P.低位字FC-15輸出G.P.高位字FC-17輸出G.P.低位字現(xiàn)在參看圖6C,這是位于RAM204中的SCT-LOCK226a的格式。SCT-LOCK是一個(gè)8位的單字節(jié)字。當(dāng)SCT-LOCK被置為0時(shí),I/O指令在傳送信息時(shí)便不成功,軟件必須再次爭取進(jìn)行這項(xiàng)操作,如果SCT-LOCK被置為1,I/O指令便可成功地完成其目標(biāo)。如果I/O指令成功的話,便通過一個(gè)稱為ACK的過程而將i指示器201a置位;而如果I/O指令不能達(dá)到目標(biāo)的話,便通過一個(gè)稱為NAK的過程而將i指示器201a復(fù)位。(因而必須指出,在這里術(shù)語ACK是成功的同義詞;而術(shù)語NAK是I/O指令的目標(biāo)不能完成的同義詞)?,F(xiàn)在參看圖6D與6E,這里分別表示了SCT-IN-SAVE與SCT-OUT-SAVE寄存器的格式。每個(gè)格式由兩個(gè)8位的字節(jié)組成。二者都位于6809處理器的RAM204中,各自用來保留輸入或輸出信息。與上述硬件組合相聯(lián)系,有如下三個(gè)相關(guān)的固件程序A.分別對SCT-HIGH和SCT-LOW實(shí)施輸入/輸出的固件程序(I/Os)。I/Os是在不可屏蔽中斷(NMI)級中被執(zhí)行的,這表示I/Os可以中斷SCT固件處理程序(SCThandlerfimwareroutine)(將在下面敘述),但反之不然。因此對SCT固件處理程序,將SCT-LOCK置位便足夠了,而對于I/Os則只要對它進(jìn)行檢查就足夠了。B.SCT固件處理程序,它每秒將SCT定時(shí)器226增值一次。C.Start-SCT(啟動SCT)調(diào)用一個(gè)通用啟動定時(shí)器程序(GrneralPurpose-STARTTIMERROUTINE。這個(gè)程序給16個(gè)通用定時(shí)器226d中的一個(gè)裝入某個(gè)給定值并作出它在運(yùn)行的標(biāo)志。它也為這個(gè)定時(shí)器在一張表格中存入處理程序的地址。所有標(biāo)志出在運(yùn)行中的定時(shí)器或者60赫茲(標(biāo)準(zhǔn)的)或者以50赫茲可選擇的(如果電源頻率為50赫茲的話)的速率連續(xù)減值。到定時(shí)器達(dá)到0時(shí),便作出它不在運(yùn)行的標(biāo)志,并使指定給此定時(shí)器的處理程序是工作,此處理程序是一個(gè)子程序。下面詳細(xì)列出實(shí)際的固件程序。它們的功能流程如下所示I/O固件過程過程-Input-SCT-HIGH如果SCT-LOCK被鎖住,即等于(0)NACKI/O(I/O未完成的軟件將再試)如果SCT-LOCK未被鎖住;即等于1(1),于是便復(fù)制SCT-LOW,并將它保存在SCT-IN-SAVE中SCT-HIGH返回到I/O并調(diào)用ACK結(jié)束Input-SCT-HIGH過程-Input-SCT-LOW返回SCT-IN-SAVE到I/O并ACK(即,給i指示器置位)結(jié)束Input-SCT-LOW過程-Output-SCT-HIGH復(fù)制I/O字到SCT-OUT-SAVE并ACK結(jié)束Output-SCT-HIGH過程-output-SCT-LOW如果SCT-LOCK被鎖住,即等于(0)NAKI/O(軟件將再試)復(fù)制SCT-OUT-SAVE并保存在SCT-HIGH中復(fù)制I/O字到SCT-LOW啟動SCTACKI/O結(jié)束Output-SCT-LOWSCT-HANDLER過程SCT-LOCK被封鎖,即等于(0)(這將SCT-LOCK置0)SCT-LOW等于SCT-LOW+1(這使SCT-LOW定時(shí)器增值)如果SCT-LOW等于0,則SCT-HIGH等于SCT-HIGH+1SCT-LOCK不被封鎖,等于(1)新的start-SCT過程結(jié)束SCT-HANDLERStart-SCT過程利用下列參數(shù)調(diào)GeneralPurposestarttimerroutine(通用啟動定時(shí)器程序)定時(shí)器數(shù)等于SCT-TIMER處理程序等于SCT-HADLER(上述過程)如果是60赫茲的機(jī)器的話,頻率等于60如果是50赫茲的機(jī)器的話,頻率等于50結(jié)束Start-SCT在說明了本發(fā)明的一個(gè)最佳實(shí)施例后,本技術(shù)的行家們可以知道,對所述的發(fā)明尚可有許多形式與變動,然而仍然在申請權(quán)利要求的本發(fā)明的范圍之內(nèi)。因此只能根據(jù)本權(quán)利要求所指范圍限定本發(fā)明。權(quán)利要求1、在一個(gè)計(jì)算機(jī)系統(tǒng)中,該系統(tǒng)具有至少一個(gè)處理器,一個(gè)與所說的處理器以及與一個(gè)諸如磁盤存儲器那樣的檔案式存儲器系統(tǒng)相耦合的主存儲器,所說的計(jì)算機(jī)系統(tǒng)是在一個(gè)從所說的擋案式存儲器裝入到所說的主存儲器中的第一操作系統(tǒng)的管理下運(yùn)行的,一個(gè)用于自動地將一個(gè)所謂第二操作系統(tǒng)從所說的檔案式存儲器引導(dǎo)裝入到所說主存儲器的引導(dǎo)裝入裝置包括(a)用來存儲被所說第一和第二操作系統(tǒng)使用的信息的第一裝置;(b)與所說第一裝置耦合的用來引導(dǎo)裝入第一與第二操作系統(tǒng)的第二裝置;(c)與所說第一和第二裝置耦合的用來自動地將信息從所說第一操作系統(tǒng)傳送給所說第二操作系統(tǒng)的第三裝置。2、如權(quán)利要求1中所述的計(jì)算機(jī)系統(tǒng),包括與所說第三裝置耦合的用作從所說主儲存器卸下所說第一操作系統(tǒng)的第四裝置。3、如權(quán)利要求2中所述的計(jì)算機(jī)系統(tǒng),包括與所說第一裝置耦合的所說計(jì)算機(jī)系統(tǒng)中的管理通道定時(shí)器裝置(SCT)。4、如權(quán)利要求3中所述的計(jì)算機(jī)系統(tǒng),包括與所說SCT耦合的用來更新所說SCT的第五裝置。5、如權(quán)利要求4中所述的計(jì)算機(jī)系統(tǒng),包括與所說第五裝置耦合的用來防止對所說SCT的更新操作進(jìn)行中斷的第六裝置。6、如權(quán)利要求5中所述的計(jì)算機(jī)系統(tǒng),其中所說SCT由兩個(gè)寄存器,一個(gè)高位字與一個(gè)低位字組成,并包括向所說寄存器裝入信息和從所說寄存器卸下信息的固件裝置。7、在一個(gè)計(jì)算機(jī)系統(tǒng)中,該系統(tǒng)具有至少一個(gè)處理器,一個(gè)與所說處理器耦合的主存儲器,一個(gè)諸如磁盤存儲器那樣的檔案式儲存器系統(tǒng),所說的計(jì)算機(jī)系統(tǒng)是由一個(gè)從所說的檔案式儲存器系統(tǒng)裝入到所說的主儲存器中的第一操作系統(tǒng)管理的,所說的計(jì)算機(jī)系統(tǒng)還包括用來存放被所說的第一操作系統(tǒng)在所說的計(jì)算機(jī)系統(tǒng)中工作時(shí)所用的信息的操作系統(tǒng)寄存器,用來自動地將一個(gè)第二操作系統(tǒng)從所說的檔案式儲存器引導(dǎo)裝入到所說主儲存器的引導(dǎo)裝入方法包括下列步驟(a)在所說的被第一操作系統(tǒng)使用的操作系統(tǒng)寄存器中存入關(guān)鍵信息;(b)將從所說的操作系統(tǒng)寄存器存入的第一信息加以保存;(c)對操作系統(tǒng)寄存器進(jìn)行初始化,以使它們不含信息;(d)將第一操作系統(tǒng)從所說計(jì)算機(jī)系統(tǒng)的主儲存器卸下;(e)將第二操作系統(tǒng)引導(dǎo)裝入所說計(jì)算機(jī)系統(tǒng)的主儲存器;(f)將所保存的關(guān)鍵信息裝入所說操作系統(tǒng)寄存器以為第二操作系統(tǒng)所用。8、如權(quán)利要求7中所述的方法,其中有一個(gè)管理通道定時(shí)器(SCT)包含在所說的計(jì)算機(jī)系統(tǒng)中供存儲時(shí)刻用,此外還包含將所說SCT更新為準(zhǔn)確時(shí)刻的步驟。9、如權(quán)利要求8所述的方法,包括防止在所說的SCT的更新過程中對它進(jìn)行中斷的步驟。10、在由一個(gè)第一操作系統(tǒng)控制下執(zhí)行程序的計(jì)算機(jī)系統(tǒng)中,一個(gè)用來自動地引導(dǎo)裝入第二操作系統(tǒng)的方法包括下列步驟(a)保存被所說第一操作系統(tǒng)使用的預(yù)定信息;(b)引導(dǎo)裝入所說第二操作系統(tǒng);以及(c)自動地將先前保存的預(yù)定信息傳送給所說第二操作系統(tǒng)。專利摘要披露了用于自動地從一個(gè)操作系統(tǒng)轉(zhuǎn)換到另一個(gè)引導(dǎo)裝入裝置與方法。本發(fā)明提出了一種用于自動地將信息,例如時(shí)刻,從一個(gè)操作系統(tǒng)傳送給另一個(gè)的方法與硬件。文檔編號G06F9/48GK86102261SQ86102261公開日1986年11月12日申請日期1986年4月2日發(fā)明者加里·J·格斯,索馬斯·S·黑施,霍馬斯·O·霍爾蒂申請人:霍尼韋爾信息系統(tǒng)公司導(dǎo)出引文BiBTeX,EndNote,RefMan