欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

計算系統(tǒng)的命令傳遞的制作方法

文檔序號:6405851閱讀:323來源:國知局
專利名稱:計算系統(tǒng)的命令傳遞的制作方法
技術領域
本發(fā)明屬于計算系統(tǒng)領域,特別是以命令傳遞機制為其目標。明確地說,本發(fā)明的目標是從個人計算機一類機器向一組可以帶有附加設備的智能子系統(tǒng)傳遞命令。
本發(fā)明中參考了序號 ,申請日 ,其題目是“計算系統(tǒng)的中斷處理”,的美國專利申請。該項申請已轉讓給本專利申請的受讓人,它指述的中斷處理機制可以被用于本項申請中的命令傳遞系統(tǒng)。
在一個由主系統(tǒng)及至少一個子系統(tǒng)構成的數(shù)據(jù)處理系統(tǒng)或計算系統(tǒng)中,通常需要經(jīng)過輸入/輸出(I/O)通被將直接命令和間接命令傳送給一個單個的子系統(tǒng)。
直接命令(direct command)是指能夠在一次操作中直接送給一個子系統(tǒng)的命令,它是完全獨立和完整的,完整地指定了要由子系統(tǒng)完成的一個操作。與此相反,一個間接命令(indirect command)為了指定一個操作所需要的數(shù)據(jù)量超過了一個I/O通道周期所能提供的數(shù)據(jù)量。間接命令本身是一個指向系統(tǒng)存貯器中一塊(block)的指針(Pointer),這一塊中包含了要完整地指定由子系統(tǒng)完成的一個操作所需要的全部參數(shù)。這一個存貯塊常被稱作“控制塊(Control block)”。
在所有的計算機系統(tǒng)中,都至少存在一個I/O指令(instruction),它使主系統(tǒng)中運行的程序能夠通過外部接口或通道發(fā)送數(shù)據(jù)和/或命令。每次I/O操作所能發(fā)送的數(shù)據(jù)量以及從通道或子系統(tǒng)收到的與接收或完成操作有關的狀態(tài)都是取決于系統(tǒng)的。
“系列/1操作原理”(IBM出版物號GA34-0152-0)描述了屬于IBM系列/1的那一類計算機中的操作,每個I/O操作把下述信息傳送給安裝在系列/1 I/O通道中的外部設備附加插件(1)命令所指向的子系統(tǒng)的地址。
(2)一個8位(bit)命令字段,用于指出該操作是直接的或是間接的。
(3)一個18位數(shù)據(jù)字,它或者包含了關于一個直接命令的數(shù)據(jù),或者在間接命令情況下的一個設備控制塊(DCB)的地址。
此外,在通道上執(zhí)行每個I/O指令周期期間,還通過各種指示代碼表示出狀態(tài),記錄下代表I/O操作狀態(tài)的狀態(tài)代碼。這種立即反映的實時的狀態(tài)指示使主程序能夠確定該命令是否被子系統(tǒng)成功地接收,或者是否出現(xiàn)誤操作,例如“設備未聯(lián)接”或“立即命令拒絕”在出錯情況下,主程序能夠在稍后再送入這個命令。
因為系列/1子系統(tǒng)能夠立即接收或拒絕一個I/O命令,所以不需要使用優(yōu)先中斷或其他機制來向主程序報告立即狀態(tài)。
為了保證整個系統(tǒng)的完整性,總是必須有一種機制來報告一個I/O命令是否為子系統(tǒng)接收去執(zhí)行。主系統(tǒng)不能假定一個命令被子系統(tǒng)成功地接受,因為有很多種失敗方式(mode of failure),它們不能被檢側出來,因而也不能被修復。
現(xiàn)代化計算系統(tǒng)中使用的I/O子系統(tǒng)的復雜性不斷增長,這表明在個人計算機一類機器上也需要有復雜的命令。
根據(jù)本發(fā)明,這種需要是這樣滿足的提供一種以子系統(tǒng)控制塊(SCB)的形式在主系統(tǒng)和一組子系統(tǒng)之間傳送命令的機制。不象在系列/1中那樣用一個獨特的處理器指令來傳遞地址段和命令類型段,而是把這些字段提供給一個單一端口,稱作“引起注意端口”(attention port)“,以適應于一般以Intel 80286/386/486為基礎的處理器系統(tǒng)中當前使用的指令集。值得稱道的是,本發(fā)明的實際應用中可以使用以其它處理器為基礎的系統(tǒng)。
再有,如在系列/1類型機器中那樣,在個人計算機類機器中不存在用于報告經(jīng)I/O通道傳送直接或間接命令時的立即狀態(tài)的機制。
為滿足這一需要,在每個子系統(tǒng)內(nèi)部提供了一個“命令忙/狀態(tài)端口(Command Busy/status Port)”,由它提供前一個I/O操作的狀態(tài)以及子系統(tǒng)的當前狀態(tài)。這個端口可以由主程序使用一個I/O讀命令來讀出,而該命令不會修改或更新該端口中的狀態(tài)。只有指向子系統(tǒng)內(nèi)其它端口的輸出(寫)命令才會影響“命令忙/狀態(tài)端口”的狀態(tài)。
本發(fā)明的一個目的是為計算系統(tǒng)提供一種命令傳遞機制。
本發(fā)明的又一目的是提供一種計算系統(tǒng),其中的一個系統(tǒng)向至少一個可能帶有附加設備的子系統(tǒng)提供直接或間接命令。
本發(fā)明的一個目的是提供一種計算系統(tǒng),其中的主處理器向至少一個可能帶有附加設備的子系統(tǒng)提供一個立即命令(immediate Command)或子系統(tǒng)控制塊(SCB)地址,于是子系統(tǒng)執(zhí)行這個立即命令或者取回SCB供下一步去執(zhí)行。
本發(fā)明的再一個目的是提供一種計算系統(tǒng)。其中一個命令接口(Command interface)在主處理器和至少一個智能子系統(tǒng)之間傳送信息,該能子系統(tǒng)可能帶有一組附加設備。這個命令接口包括一個“命令接口端口”和一個“引起注意端口”,命令接口端口接收一個立即命令或者存儲在系統(tǒng)存儲器中的SCB的地址,而引起注意端口接收來自主處理器的代碼,它指出在命令接口端口接收的是立即命令還是SCB地址,它還指出是該智能子系統(tǒng)還是一個設備要去執(zhí)行這一命令。一個初始命令和一個初始代碼分別被鎖存在命令接口端口和引起注意端口,這樣,在初始命令被處理之前,下一個命令和代碼便不能夠重寫各自的端口。
本發(fā)明還有一個目的是提供一個計算系統(tǒng),其中的命令接口在主處理器和至少一個可能帶有附加設備的智能子系統(tǒng)之間傳送信息。該命令接口包括命令接口端口、引起注意端口和命令忙/狀態(tài)端口。命令接口端口接收一個立即命令或存貯在系統(tǒng)存貯器中的SCB的地址。引起注意端口接收來自主處理器的代碼,指出在命令接口端口接收的是立即命令還是SCB地址,還指出是該智能子系統(tǒng)還是一個設備要執(zhí)行該命令。命令忙/狀態(tài)端口接收來自一個子系統(tǒng)的代碼,指出命令接口端口和引起注意端口是否處于智狀態(tài),還指出該智能子系統(tǒng)是否是在接收或拒絕命令。這個端口能由主處理器讀出而不改變或更新該端口狀態(tài)。
本發(fā)明還有一個目的是提供一種計算系統(tǒng),其中的命令接口在主處理器和至少一個可能帶有附加設備的智能子系統(tǒng)之間傳送信息。該命令接口包括一個命令接口端口和一個引起注意端口。命令接口端口接收一個立即命令或存貯在系統(tǒng)存貯器中的SCB的地址。引起注意端口接收來自主處理器的代碼,指出在命令接口端口接收的是立即命令還是SCB地址,還指出是該智能子系統(tǒng)還是一個設備要去執(zhí)行這一命令。SCB命令可以按一種特定的順序鏈接,并作為一個邏輯請求(logical request)來處理。SCB命令的鏈接使智能子系統(tǒng)接收和執(zhí)行這些命令時不必引起與主處理器操作的過多的交接(interfacing)。對一個具體的命令,還可能有多個數(shù)據(jù)緩存器的鏈接。緩存器的鏈接是用間接表(indirectlist)來構成的。每個SCB包含一個“終止狀態(tài)塊(Ter-mjnation Status Block)”(TSB)在系統(tǒng)存貯器中的地址,正在處理SCB的那個子系統(tǒng)把SCB的完成或終止狀態(tài)存貯到TSB之中。
本發(fā)明的目標是一個命令接口,它包括若干端口用于在主處理器和至少一個可能帶有附加設備的智能子系統(tǒng)之間傳送信息。一個命令接口端口接收來自主處理器的一個直接命令或一個間接命令,這里所說的直接命令包含了一個智能子系統(tǒng)要立即執(zhí)行該命令所必需的全部信息,而間接命令是一個子系統(tǒng)控制塊(SCB)的地址,該子系統(tǒng)控制塊存貯在主處理器中系統(tǒng)存貯器的一個可尋地區(qū)間。一個引起注意端口接收來自主處理器的代碼,代碼的第一部分指出在命令接口端口所接收的是直接命令還是間接命令,代碼的第二部分指出是這個智能子系統(tǒng)還是一個附加設備要去執(zhí)行這一命令,一個命令忙/狀態(tài)端口包含可由主處理器讀出的信息,這些信息反映了要下一步執(zhí)行命令的子系統(tǒng)或其附加設備是立即接收了還是拒絕了一個命令。根據(jù)寫在引起注意端口的代碼的第二部分,由一個智能子系統(tǒng)或所附加的設備來直接執(zhí)行一個直接命令,如果是一個間接命令,該智能子系統(tǒng)便按照所指出的SCB地址直接訪問系統(tǒng)存貯器。然后該智能子系統(tǒng)或一個設備去完成由被訪問的SCB所指定的操作。


圖1是一個計算系統(tǒng)的框圖,該系統(tǒng)包括一個主系統(tǒng)聯(lián)接一組智能子系統(tǒng),每個子系統(tǒng)又可能聯(lián)接一組設備;
圖2的框圖給出主系統(tǒng)和一個智能子系統(tǒng)的詳細情況;
圖3是在主系統(tǒng)和一個智能子系統(tǒng)之間交換信息的命令接口的框圖;
圖4是給出引起注意端口詳細情況的框圖;
圖5是給出命令忙/狀態(tài)端口詳細情況的框圖;
圖6具體說明了用于立即命令的命令接口端口與引起注意端口的(信息)一般格式;
圖7具體說明了用于子系統(tǒng)控制塊(SCB)的命令接口端口和引起注意端口的(信息)一般格式;
圖8具體說明了用于本發(fā)明的計算系統(tǒng)中的控制塊SCB的詳細格式;
圖9給出一個詳細的擴展SCB格式;
圖10給出詳細的SCB終止狀態(tài)塊(TSB)格式;
圖11給出詳細的擴展TSB格式;
圖12是計算系統(tǒng)的框圖,詳細給出系統(tǒng)存貯器中的SCB格式;
圖13是在提供命令期間子系統(tǒng)狀態(tài)變換過程的狀態(tài)圖;
圖14是本發(fā)明的命令傳遞系統(tǒng)的流程圖;
圖15A、15B和15C放在一起示于圖15,圖15和圖16是寫子系統(tǒng)控制端口過程的詳細流程圖,它的概況已示于圖1410;
圖17A和18B一起放在圖18中,給出寫引起注意端口過程的詳細流程圖,它的概況已示于圖14;
圖19是寫接口端口過程的詳細流程圖,它的概況已示于圖14;
圖20A和20B合起來作為圖20,圖21A和21B合起來作為圖21,它們給出命令譯碼處理的詳細流程圖。
本發(fā)明的總體目標是為主計算機系統(tǒng)中運行的程序提供一個命令傳遞系統(tǒng)。直接或間接命令經(jīng)由命令接口傳遞給至少一個可能帶有一組附加設備的智能子系統(tǒng)。為便于描述,把本發(fā)明置于在IBM個人系統(tǒng)/2(PS/2)計算機上運行的程序所使用的命令傳遞系統(tǒng)范圍內(nèi)來描述。個人系統(tǒng)2(Personal System 2)和PS/2各為IBM公司的注冊商標。直接命令(諸如立即命令)和間接命令(諸如存貯在PS/2系統(tǒng)存貯器中的子系統(tǒng)控制塊的地址)經(jīng)由IBM微通道(Micro Channel(微通道)是IBM公司的注冊商標)傳送給一個智能子系統(tǒng)的命令接口,這個子系統(tǒng)可能有一組附加設備,例如磁帶驅(qū)動器、磁盤驅(qū)動器、打印機、通訊設備和顯示設備等等。然而,值得稱道的是,本發(fā)明可以在其它主計算機系統(tǒng)中實現(xiàn),經(jīng)由接口網(wǎng)絡把命令傳遞給智能子系統(tǒng)。
定義了一種子系統(tǒng)控制塊(SCB)結構,它提供了主處理器和具有存貯器直接存取(DMA)能力以及處理命令級操作能力的子系統(tǒng)之間的一個控制塊級接口。一個SCB內(nèi)包含了一個單個命令。而命令鏈接可以把一個SCB指向一個或多個其它SCB的地址,而把這個鏈作為一個邏輯命令來處理。還有伴隨一個給定命令的多個緩存器的數(shù)據(jù)鏈接。用一個間接表(indirect list)來構成這種緩存器鏈。
一個SCB包含系統(tǒng)存貯器中一個終止狀態(tài)塊(TSB)的地址址,由處理命令的子系統(tǒng)把給定SCB的完成或終止狀態(tài)放到TSB中。為了能在命令鏈中的任何一點處理終止操作,對鏈中的每個SCSCB都定義了一個TSB。
在下面對命令傳遞系統(tǒng)做一般性描述之后,將詳細描述SCB和TSB。
現(xiàn)在參考圖1,它是根據(jù)本發(fā)明繪出的一個計算系統(tǒng)的總體框。一個主計算機系統(tǒng)100通過總線結構110與一組智能子系統(tǒng)102、104、106和108交換信息??偩€結構110把主計算機系統(tǒng)100的通道112與每個子系統(tǒng)的一個接口(例如子系統(tǒng)102中的接口114)連接起來。子系統(tǒng)104、106、108的每一個都與子系統(tǒng)102相似。總線結構包括一個用于交換控制信號的控制總線116、交換數(shù)據(jù)信號用的數(shù)據(jù)總線118以及交換地址的地址總線120。
圖2給出系統(tǒng)100和子系統(tǒng)102的細節(jié),其它子系統(tǒng)的構成方式與子系統(tǒng)102相似。
主系統(tǒng)100包括一個系統(tǒng)處理器組合或主處理器122,它經(jīng)由總線126與系統(tǒng)存貯器124相連。系統(tǒng)處理器組合122與一個個人計算機類微處理器組成,例如所提到的PS/2,由微通道126連到系統(tǒng)存貯器124上。PS/2和微通道的操作在“PS/2硬件接口技術參考書”(IBM出版序號68X-2330-0)描述。存貯器124可由主處理器122訪問,也可由子系統(tǒng)102通過存貯器直接存取(OMA)訪問。
子系統(tǒng)102包含一個附加器(attachmend)或適配器,它包括一個與微通道126相連的微通道接口。該接口包含一組輸入/輸出(I/O)端口,它們的詳細情況將由參考圖3來描述,這個接口使系統(tǒng)主處理器能直接向子系統(tǒng)發(fā)出命令和接受來自系統(tǒng)的回答。這些端口可以被映射(map)到系統(tǒng)存貯器空間或I/O空間。這個接口還向微通道提供適配器所需要的主控和/或受控功能。
命令包括直接(或立即)命令(如系統(tǒng)存貯器124中的子系統(tǒng)控制塊(SCB)的地址)。SCB傳遞支持邏輯130把SCB命令提供給一個本機微處理器132,例如Intel 80188類微處理器(其操作在“Intel微處理器和外圍設備手冊”中描述)在那里處理該SCB命令。SCB傳遞邏輯130還把本機處理器中斷提供給處理器132中的中斷邏輯134。圖17-23中給出了詳細的流程圖來解釋包含在SCB傳遞邏輯130和微處理器132中的命令處理器和譯碼處理器功能。
微處理器132響應SCB命令,通過附加設備接口146(例如,它可以是小型計算機系統(tǒng)接口(SCSI))對附加設備136138、140和142的各項任務安排時間順序。對SCSI接口操作的描述見“信息系統(tǒng)美國國家標準研究所(ANSI)-小型計算機系統(tǒng)接口(SCSI)”,其出版號為ANSI×3.131-1986。附加設備可以是磁盤驅(qū)動器、磁帶驅(qū)動器、直接存貯器存取設備(DASD)、打印機、顯示器以及其他類似設備。設備D(O)136用于把命令指向子系統(tǒng)。智能子系統(tǒng)136和設備13138、140、142的每一個都被主處理器看作是一個邏輯設備對每一個都指定一個設備標識號,分別為D(0)、D(1)、D(2)和D(3)、這些設備便借助這些標識號被訪問。
圖3給出微通道接口128的I/O端口。定義為控制一個子系統(tǒng)的端口必須按如下順序分配在I/O地址空間中(1)命令接口端口148。
(2)引起注意端口150。
(3)子系統(tǒng)控制端口152。
(4)中斷狀態(tài)端口154。
(5)命令狀態(tài)/忙端口156。
這些端口能映射到系統(tǒng)存貯器地址空間而不放在I/O地址空間但為了便于描述,所以選擇了I/O地址空間。因此,在本文中使用“OUT(輸出)”或“IN(輸入)”命令的地方,如果各端口被映射到系統(tǒng)存貯器空間,則應該用“系統(tǒng)寫”或“系統(tǒng)讀”命令代替替。
命令接口端口148也可以稱作命令端口,它是一個“子系統(tǒng)讀/系統(tǒng)寫”寄存器,這個32位寄存器用于把一個雙字(32位)指示(Direct)從系統(tǒng)傳送到子系統(tǒng)。該雙字指示可以是一個立即命令或者一個間接命令(如SCB地址)。該立即命令或SCB指定了要由子系統(tǒng)完成的操作。
系統(tǒng)程序把一個立即命令或一個SCB地址寫入命令接口端口1148,然后去寫引起注意端口150。子系統(tǒng)在命令忙/狀態(tài)端口156寫入“忙(busy)”位。當系統(tǒng)已經(jīng)寫入引起注意端口1150時,便通過中斷134向本機級處理器132發(fā)出了信號(圖2)。子系統(tǒng)響應中斷,讀引起注意端口和命令接口端口,然后確定要完成的操作的類型,以及命令指向的設備,子系統(tǒng)或者將按命令接口端口提供的地址去取出SCB,或者執(zhí)行立即命令。
引起注意端口150是一個“子系統(tǒng)讀/系統(tǒng)寫”寄存器。這個8位或16位寄存器由系統(tǒng)程序用于要求子系統(tǒng)注意去完成一個命令令。寄存器中的各位指出所要求的動作及相應的設備號。換句話說,引起注意端口接收的代碼有兩部分,第一部分指出在命令接口端口148接收的是立即命令還是SCB地址,第二部分指出是子系統(tǒng)還是一個附加設備要去完成在命令接口端口148所接收的命令。當引起注意端口150由系統(tǒng)寫入時,在命令忙/狀態(tài)端口156中的“忙”位立即由子系統(tǒng)置1。這個“忙”位將一直保持置位,直到子系統(tǒng)讀出注意請求(attention request)及相應的命令接口端口內(nèi)容,并確定了它能否接受此命令時為止。在“忙”位為零時,子系統(tǒng)必須在任何時候都能接收新的命令?!懊Α蔽灰矊⒈3种梦恢钡阶酉到y(tǒng)完成“子系統(tǒng)復位”時為止。
現(xiàn)在參考圖4來說明引起注意端口(AP)的詳細情況。主處理器具有對AP的讀/寫訪問。當對AP進行“系統(tǒng)軟件寫(SSW)”或(系統(tǒng)軟件讀(SSR)”操作時,微通道I/O地址必須等于“建立(set up)”微通道來選定子系統(tǒng)時賦予AP的值。
AP在AP寄存器143的輸入端接收8位引起注意命令141。當“與(AND)”門153為有效(active)時。輸入的引起注意命令被記錄在寄存器143中,其引起注意命令被提供給寄存器輸出端157。每當門153有效時,便在線155上提供一個“置AP中斷(SET-AP-INTRPT”信號。這個信號是對子系統(tǒng)本機處理器的一個中斷,通知它已經(jīng)由主處理器向AP寫入了一個命令。每當門153失效時,引起注意命令便不能被記錄寄存器143,因而被子系統(tǒng)忽略。
有4個輸入端來控制門153是否有“1”輸出。用正號(+)代表正邏輯輸入,用負號(-)代表負邏輯輸入。線145上的第一輸入是一個+MC-AP-SEL信號,當它為1時,指出AP的微通道地址有效,而且主處理器已選定了該子系統(tǒng)的AP。在線147上的第二輸入是一個+SSW-REG-CLK信號,當它為1時,指出對于這個子系統(tǒng)I/O地址空間其微通道I/O寫是有效的。第三和第四個信號是由命令忙/狀態(tài)端口(CBSP)提供的。在線149上的第三信號是一個-CDSP-BITO-2B信號,它是一個“忙”位(B)信號。由于它是一個負邏輯信號,當B為零時線149上的信號為1,當B為1時線149上的信號是零。線151上的第四輸入是一個-CBSP-BIT4-(REJ)信號,它是拒絕(REJ)信號。由于這是一個負邏輯信號,當REJ為零時在線151上的信號為1,而當REJ為1時在線151上的信號為零可以看到,每當線145、147、149和151均為1時,線141上的引起注意命令便被記入寄存器143,而線155上的SSET-AP-INTRPT信號便通知本機處理器在AP上已寫入了一個命令。反之,如果這些線上有任意個為零,則門153提供一個零輸出,它禁止把命令寫入AP寄存器143。具體地說,如果BBusy(忙)位或REG位有任一個為1,則對AP寄存器143的命令寫被封鎖。
子系統(tǒng)控制端口152是一個子系統(tǒng)讀/系統(tǒng)寫寄存器。這是一個8位讀/寫端口,它提供了對子系統(tǒng)范圍內(nèi)幾個功能的直接硬件控制。在這個端口包括的各位用于控制子系統(tǒng)和全部附加設備的復位,允許或不允許子系統(tǒng)向主處理器呈現(xiàn)物理中斷,子系統(tǒng)DMA允許/不允許功能,以及使命令被拒絕因而沒有被子系統(tǒng)執(zhí)行時所引起的錯誤復位的功能。子系統(tǒng)控制端口152的格式和功能示于圖3中的位0-7,其功能如下位O-EI-使子系統(tǒng)允許中斷。這一位置1時允許子系統(tǒng)向系統(tǒng)發(fā)出物理中斷。當子系統(tǒng)被接通電源或由“子系統(tǒng)復位”命令使子系統(tǒng)復位時,EI位被初始化成零。當EI位為零時,子系統(tǒng)不允許物理中斷,不允許向主處理器發(fā)送一個物理中斷。這一位保持不變,直到由發(fā)給該端口的“OUT(輸出)”命令或子系統(tǒng)復位命令來明確復位時為止。
位1-DMA-允許DMA。當這一位置零時,不允許子系統(tǒng)起動任何DMA操作。當置該位為零時,便把該子系統(tǒng)置于這樣的狀態(tài)態(tài)它不能執(zhí)行任何SCB命令或存貯任何SCB邏輯中斷狀態(tài)((TSB)。當子系統(tǒng)接通電源時,這一位被置零。當執(zhí)行“子系統(tǒng)復位”操作時這一位被復位為零。這一位保持置位,直到被發(fā)給該端口的“OUT”命令或“子系統(tǒng)復位”來明確復位為止。(DMA位預定作為硬件查錯的手段,它也可以用作強迫子系統(tǒng)停止微通道活動的手段。)位2和位3-S.D.-子系統(tǒng)獨立。該端口的位2和位3被保留用于子系統(tǒng)的獨立功能。
位4和位6-R-保留位。位4和位6被保留而且必須置零。
位5-RR-拒絕(狀態(tài))復位。當主處理器置這一位置為1,而同時子系統(tǒng)又處于拒絕(Reject)狀態(tài)時,通過對RR位置“通(ON)”(也就是置4)將清除拒絕狀態(tài)。當拒絕狀態(tài)被清除時,在“命令忙狀態(tài)”中的“忙”(B)位和拒絕(RET)位被置零。如果子系統(tǒng)不是處于拒絕狀態(tài),那么對RR寫入1時會引起效應。當子系統(tǒng)接通電源或被子系統(tǒng)復位操作來復位時,RR位被置成零。這一位的設置將保持不變,直到由特定的“OUT”命令發(fā)到該端口或由子系統(tǒng)復位操作才明確地收該位復位。對RR位寫入零不會影響子系統(tǒng)的內(nèi)部狀態(tài)。
位7-RST-子系統(tǒng)復位,這一位用于提供一個由硬件控制的子系統(tǒng)及其附加的全部設備的復位。當該位被置1時,子系統(tǒng)進入復位未決狀態(tài)(Reset Pending State),并對命令忙狀態(tài)端口中的忙位(B)置1。在子系統(tǒng)上的全部設備的活動均被停止。程序必須在子系統(tǒng)指定的時間周期內(nèi)對RST寫入一個零。如果在復位未決狀態(tài)時RST位從1轉換到零值便把子系統(tǒng)放到“進行置位狀態(tài)(Reset in Progress State)”。在這一狀態(tài),子系統(tǒng)完成對它本身及它的所有附加設備的復位。當復位完成時,“忙”位將置零,并將申請主處理器中斷。
中斷狀態(tài)端口154是一個系統(tǒng)讀/子系統(tǒng)寫寄存器、這個8位或16位寄存器被子系統(tǒng)用于向程序呈送中斷數(shù)據(jù)。在這一端口呈送的中斷有立即命令中斷、SCB命令帶有嚴重硬件失效中斷、無任何SCB命令中斷以及SCB命令中斷。在伴隨每個SCB的終止狀態(tài)塊(TSB)區(qū)域提供了附加的SCB完成狀態(tài)指示。TSB的功能在下文中描述。在ISP被系統(tǒng)軟件明確復位之前,任何新的中斷都不能通過ISP呈交給系統(tǒng)。
這個用于中斷狀態(tài)端口154的8位寄存器的構成示于圖3,其各個位的定義如下位7-4-中斷標識碼(Interrupt ID)。這些位以一個數(shù)字編碼,用以識別提交的中斷的原因。程序借助檢查TSB狀態(tài)能夠得到有關SCB中斷的更多信息。
位3-0-設備地址。這是引起所提出的中斷的設備地址。
16位中斷狀態(tài)端口(未畫出)的格式如下位15-12-中斷標識碼。這些位以一個數(shù)字編碼,用以識別提交的中斷的原因。程序借助檢查TSB狀態(tài)能夠得到有關SCB中斷的更多信息。
位11-0-設備地址,這是引起所提出中斷的設備地址。
命令忙/狀態(tài)端口156是一個子系統(tǒng)寫/系統(tǒng)讀寄存器。這個8位端口有兩個功能第一,在每個命令被提交之前必須由系統(tǒng)讀這個端口,以確定先前提交的命令的狀態(tài)。在提交一個命令之后,程序必須允許子系統(tǒng)有一個規(guī)定的延遲時間段,然后再試圖讀此端口來獲得命令狀態(tài)。
第二、該端口指出子系統(tǒng)是否有一個有效的中斷值呈交給中斷狀態(tài)端口ISP154。除非命令忙/狀態(tài)端口指出所呈交的是有效值即IV(中斷有效標志)為1,這個ISP不應被程序讀出。
命令忙狀態(tài)端口156的格式和功能如下位O-B-忙位。這一位指出當前命令接口和引起注意端口是否被使用。當忙(B)位為1時,程序不應該試圖向子系統(tǒng)寫入命令或引起注意端口。如果子系統(tǒng)處于下述狀態(tài),則忙位(B)為1復位未決(Reset Pending),復位正在進行、拒絕、或譯碼(下文將解釋這些狀態(tài))。如果主程序在忙位(B)為1的情況下去寫引起注意端口和/或命令端口,那些向這些端口寫的企圖被子系統(tǒng)所忽略,而且最新的試圖執(zhí)行的命令被子系統(tǒng)忽略而不給出任何出錯指示。
當子系統(tǒng)進入如下狀態(tài)時這一位置1復位未決、復位正在進行拒絕或譯碼。當子系統(tǒng)控制端口的RST位置1時,該子系統(tǒng)進入復位未決狀態(tài)。如果子系統(tǒng)處于復位未決狀態(tài),而子系統(tǒng)控制端口的RRST位被置零,那么子系統(tǒng)便進入“復位正在進行”狀態(tài)。當向設備O(即子系統(tǒng)本身)發(fā)出一個“設備復位命令”時,該子系統(tǒng)也進入“復位正在進行”狀態(tài)。
當子系統(tǒng)完成了子系統(tǒng)復位命令后退出“復位正在進行”狀態(tài)之后,忙位被置零。
當程序利用寫引起注意端口而提交一個新命令時,如果該子系統(tǒng)又不處于復位未決、復位已在進行或譯碼狀態(tài),那么該子系統(tǒng)便進入譯碼狀態(tài)。當子系統(tǒng)接收一個命令而退出譯碼狀態(tài)時,忙位也被置零當在譯碼狀態(tài)被處理的命令遭到拒絕時,子系統(tǒng)退出譯碼狀態(tài)而進入拒絕狀態(tài)。在拒絕狀態(tài),拒絕位(REJ)和忙位(B)均被置1,狀態(tài)位S將指出該命令被子系統(tǒng)拒絕的原因。當子系統(tǒng)進入復位未決狀態(tài)時,拒絕狀態(tài)或譯碼狀態(tài)便被清除掉。
位1-IV-中斷有效,在子系統(tǒng)向該子系統(tǒng)的中斷狀態(tài)端口((ISP)寫入一個中斷值之后,這一位便被置1。當IV為零時,ISP中不包含一個有效的中斷值。當IV為1時,讀ISP將給出一個有效的中斷標識(ID)和設備號。
位2-保留位3-保留位4-REJ位,當子系統(tǒng)決定拒絕經(jīng)由命令接口端口和引起注意端口提交的一個命令時,這一位將被置1。于是子系統(tǒng)退出譯碼狀態(tài)而進入拒絕狀態(tài)。在命令忙狀態(tài)端口的狀態(tài)(S)位將包含一個編碼值,用以指出命令被拒絕的原因。當子系統(tǒng)接受了提交給它的命令而退出譯碼狀態(tài)時,在命令忙狀態(tài)端口的拒絕(REJ)位和忙(B)位都被置零。
當子系統(tǒng)處于拒絕狀態(tài)時,程序不能靠向命令端口或引起注意端口寫入來提交新的命令。這些寫的企圖均被忽略,而這些端口繼續(xù)保持被拒絕的命令的那些值。當子系統(tǒng)處于拒絕態(tài)時,拒絕(REJ)位和忙(B)位都被子系統(tǒng)置1。
對子系統(tǒng)控制端口的RST位置1可以便子系統(tǒng)脫離拒絕狀態(tài),這時執(zhí)行了一個硬件控制的子系統(tǒng)復位;或者可以對子系統(tǒng)控制端口的RR位置1,這時發(fā)出一個硬件控制的“清除拒絕狀態(tài)(Reset Reject)”。使用RR位是清除拒絕狀態(tài)的通常方法。當子系統(tǒng)脫離拒絕狀態(tài)之后,拒絕(REJ)位和忙(B)位都被子系統(tǒng)置零。
位5-7-狀態(tài)位。當通過引起注意端口提交的命令在譯碼狀態(tài)被拒絕之后,便在命令忙/狀態(tài)端口置入一個三位編碼值。于是子系統(tǒng)退出譯碼狀態(tài)并進入拒絕狀態(tài),其拒絕(REJ)位和忙(B)位等于1。除非REJ位為1,否則狀態(tài)(S)的各位之值是沒有定義的,因而應該由主程序忽略。
S位的編碼值是S=000被保留S=001“得不到設備,因而拒絕”。當子系統(tǒng)能夠確定一個設備的功能不足以執(zhí)行這個命令時,便出現(xiàn)這一狀態(tài)。對于“設備復位”和“子系統(tǒng)復位”命令不能產(chǎn)生這一狀態(tài)。這一狀態(tài)可以被這兩個命令之一來清除。
S=010無效命令。當子系統(tǒng)不能認出引起注意端口的引起注意代碼,或者在命令端口提交的一個立即命令的0至7位指定的立即命令代碼無效的時候,便出現(xiàn)這一狀態(tài)。
S=011設備忙。當設備忙于執(zhí)行一個命令而不能在此時接受一個新命令時,便出現(xiàn)這一狀態(tài)?!皩Α霸O備復位”和“子系統(tǒng)復位”命令不能產(chǎn)生這一狀態(tài)。
S=100設備拒絕執(zhí)行SCB。當程序發(fā)出“掛起”命令,從而把設備置于不允許執(zhí)行任何SCB命令的狀態(tài)時,便出現(xiàn)這一情況。這一狀態(tài)可由“恢復(Resume)”、“設備復位”或“子系統(tǒng)復位”命令來清除。
S=101設備地址無效。當系統(tǒng)在引起注意端口放入一個無效的、不存在的設備號時便出現(xiàn)這一狀態(tài)。如果引起注意端口是8位寬的,則表明位3至位0包含一個無效的設備號。對于16位寬的引起注意端口,則是位11至位0包含了一個無效設備號。
S=110被保留。
S=111設備中斷排隊滿。設備為那些尚未存入子系統(tǒng)中斷狀態(tài)端口的那些中斷保持了供中斷排隊用的內(nèi)部存貯器。當設備已經(jīng)把這些內(nèi)部存貯器全部用完時,便出現(xiàn)這一狀態(tài)。如果處于這一狀態(tài),那么除了“設備復位”、“子系統(tǒng)復位”和“由清除中斷”命令之外,所有其它命令都將被該設備拒絕。一旦該設備能夠從它的中斷排隊向子系統(tǒng)中斷狀態(tài)端口寫入數(shù)據(jù)。該設備的這一狀態(tài)便被清除。
現(xiàn)在參考圖5,它詳細說明了命令忙/狀態(tài)端口(CBSP)156的各個位是怎樣產(chǎn)生的。
忙位(B),即CBSP-BITO-(B)(CBSP的第0位),是由S/R寄存器302與極性(PH)寄存器300的寄存器組合來來實現(xiàn)的。如果忙位是零或者是無效的(inactive)那少由如下三個特定動作之一能把它置成1。
1.如果在線314上的微通道CHRESET信號為1,那么在或(OR)門310的輸出便為1,它被提供給寄存器302的置位(S)輸入端,這樣便把寄存器302置為1,它被加到寄存器3300的D輸入端。來自反向器312的反向MC_AP_SEL信號被加到寄存器300的計時(C)輸入端,于是其輸出端+CBSP-BITO-(B),即忙位(B),被置成1。
2、如果系統(tǒng)程序?qū)ψ映绦蚩刂贫丝?SCP)的位7寫入一個1,其表現(xiàn)是在線316上的+SCP-BIT7(RST)信號為1,“或”門310的輸出變?yōu)?,于是如上述第一項動作那樣,寄存器302、300以及忙位(B)都被置1。
3、如果由軟件向AP“寫”,則在線304上的信號+MC-AP-SEL及線306上的信號+SSW-REG-CLK都成為1,從而使“與”門308的輸出為1。來自門308的這個1使““或”門310輸出為1,于是如上述第一項和第二項動作那樣,寄存器302、300以及忙位(B)都被置1。
如果忙位(B)是1,那么它可以由下述兩種方式之一來清掉,即置成零。
1、由系統(tǒng)程序向子系統(tǒng)控制端口(SCP)的位5(RR)寫入1,便清除了忙位(B)。這也同時清掉拒絕(REJ)位(見下述)。當SCP中的RR位為1時,線328上的信號+PIC-SSCP-SEL、線326上的信號+IC-BUS-RCVR-BBIT5信號以及線306上的+SSW-REG-CIK信號都變?yōu)?,于是在“與/或”門318的輸出端產(chǎn)生一個1。這個1被加到寄存器302的“復位”(R)位,它的輸出變成零,這個零又加到寄存器300的D輸入端。此時在線304上的信號+MC-AP-SEL為零,這個零由反向器312變換成1。這個1被加到寄存器300的C輸入端,而在D輸入端此時記入的是零,因此是寄存器300為零。當寄存器300被置零時,忙位(B),即輸出信號+CBSP-BITO-(B)變?yōu)榱恪?br> 2、在命令處理器從譯碼狀態(tài)退出而進入“接受(Accept)”狀態(tài)之后,忙位(B)也由子系統(tǒng)清掉,子系統(tǒng)的局部處理器對CBSP的位,寫入一個零。在線320上的信號-IC-BVS-BITO、線322上的信號+LP-CBSP-SEL以及線324上的信號+LPW-REG-CLK都變?yōu)?,于是在“與/或”門318的輸出端產(chǎn)生一個1。這使寄存器302和寄存器300被置成零,與前述情況相同,當寄存器300被置零時,忙位(B)變?yōu)榱恪?br> 如果系統(tǒng)把SSCP位7寫成1,即指出子系統(tǒng)正在進行子系統(tǒng)復位,當子系統(tǒng)已完成子系統(tǒng)復位時,忙位(B)將被子系統(tǒng)復位。假定忙位為ON(即置為1)而且子系統(tǒng)先處于譯碼狀態(tài)然后進入拒絕狀態(tài)。這時將由拒絕位(CBSP位4)經(jīng)過SCP中的“拒絕復位”位5以如下方式來使忙位復位系統(tǒng)把1寫入SCP的位5(RR)位置。一旦由子系統(tǒng)檢測到了向SCP的寫入,線326(IC-BUS-RCVR-BIT5)即變?yōu)橛行В€328(M(MC-SCP-SEL)和線306(SSW-REG-CLK)也變?yōu)橛行?。這些線處于有效狀態(tài)使門318開啟(ON),從而使寄存器302復位為“關閉(OFF)”。寄存器302變?yōu)镺FF的同時反向器312變?yōu)镺N,如前所述,便使寄存器300復位為OFF,置忙位(B)為OFF。
CBSP REJ位(4)和CBSP狀態(tài)位(5,6,7)分別由寄存器330和332代表。當子系統(tǒng)已進入拒絕狀態(tài),CBSP位4便被置1,而CBSP的位5,6,7(狀態(tài))被置成拒絕代碼。當線334、332和324為有效時,S/R寄存器被置成1。這是由線334、332和324使“與”門336變成OON,它又置S/R寄存器330為ON,使REJ位變成ON。把狀態(tài)代碼置于線326、336和338,使寄存器332的狀態(tài)位被置成ON。線322和324為有效時使“與”門340變成ON從而使寄存器332的C輸入端變?yōu)橛行?,于是狀態(tài)代碼被記入寄存器332。
每當“或”門346為ON時拒絕(REJ)位便被置成OFF當線326(CHRSET)為有效,或線316(RST)為有效或“與”門342為ON,都會使“或”門346為ON,如果線326和線328和線306都為有效,則“與”門342為ON。這表示系統(tǒng)已把“拒絕復位”位5(SCP)置成1,使子系統(tǒng)從拒絕狀態(tài)解脫出來。
CBSP-BIT1-IV是作為S/R寄存器348的輸出來實現(xiàn)的。每當“與”門350為ON,寄存器348便被置1。如果線322和324和352均為有效的,則“與”門350變?yōu)镺N。當子系統(tǒng)向中斷狀態(tài)端口(ISP)寫入之后,IV位被置1。
主處理器讀出IV位,作為由子系統(tǒng)要求的微通道中斷的結果;或者可以用IV位來登記(p·ll)要求中斷的子系統(tǒng)。在主處理器已讀出ISP而且主中斷處理器已處理了中斷之后,主處理器經(jīng)由引起注意端口向子系統(tǒng)發(fā)出清除中斷注意代碼(1110h)命令。
每當“或”門354為ON時S/R寄存器348被置成OFF如果線314(CHRESET)或線316(CORESET)或“與”門356或“與”門358為ON,則“或”門354變?yōu)镺ON。
如果在線360、362、364和366上的IC-BUS-RCVR-位(7-4)分別由引起注意端口位7-4置成二進位值“0000”(立即設備復位),而且線304和306為有效,則“與”門356為ON。
如果線338、336、326和366上的IC-BUS-RRCVR位(7-4)為置成2進位值“1110”(中斷復位),而且線304和306為有效,則“與”門358變?yōu)镺N。
CBSP保留(R)位由寄存器368代表。當線370和372,IC-BUS-Bits(位)(2,3)為有效時,兩個數(shù)據(jù)(D)輸入端被置位。當“與”門374為ON時這些位被記入寄存器368。當線322和324為ON時,“與”門374為ON。
命令接口端口和引起注意端口使用的格式取決于主系統(tǒng)向子系統(tǒng)提供的是立即命令還是SCB命令。
立即命令主要是指向設位的而且是控制定向的。參照圖6來看一看由160指出的命令接口端口的一般格式以及由162、164和166分別指出的在引起注意端口三種類型立即命令的代碼。如果一個命令是指向一個設備的,那么設備在執(zhí)行該立即命令之前要確認接收了完整的命令。為確定命令類型,要檢驗引起注意端口的位7至位4。如果接受的是設備復位命令型,則代碼如162處所指出的那樣如果接受了一個立即命令(命令型),則代碼如164處指出的那樣;如果接受的是中斷復位(EOI)命令型,則代碼如166處指出的那樣。
命令接口端口的位7-0指定了操代碼,如160處所指出的那樣。當接受命令時,設備使命令忙/狀態(tài)端口(圖中未畫出)的忙位置位。在執(zhí)行子系統(tǒng)復位命令時,子系統(tǒng)必須使端口保持忙狀態(tài),直至完成了復位為止。
對于立即命令,其命令接口端口的定義如下IC位8-指定立即命令格式。IC位8用于指定所使用的立即命令格式類型?!叭绻鸌C位8=1”,則該立即命令的格式定義為類型1。
IC位31-16-保留(在發(fā)出命令之前由軟件置成零)?!叭绻鸌C位8=0”,則立即命令格式定義為類型2。
“如果IC位8=0”,IC位8用于指定使用的是立即命令格式類型2。
下文中將說明按位不同的定義。
IC位31-16-依賴于OP代碼IC位15-使不能命令中斷。如果位15=0,則在完成立即命令后中斷并在中斷狀態(tài)端口(ISP)報告狀態(tài)。如果位15=1,則在立即命令完成時不中斷,除非出現(xiàn)了錯誤,某些命令忽略這一指示。
IC位14-使不能設備中斷。如果位14=0,則能使系統(tǒng)為指定設備中斷。如果位14=1,則使系統(tǒng)能為指定設備中斷。
IC位13-9-依賴于OP代碼位。這些位允許修改命令字段,當前,位13和12用于設備復位命令。位12-9用于立即清除SSCB中斷命令來指定要清除的中斷號。
IC位7-0-立即命令代碼。它們的編碼如下位7654321000000000 -立即設備復位00000001 -保留00000010 -空操作(no-op)00000011 -保留00000100 -中斷狀態(tài)端口復位00000101 -保留00000110 -保留00000111 -保留00001000 -SCB中斷清除00001001 -保留
00001010 -保留00001011 -保留00001100 -取決于設備00001101 -取決于設備00001110 -取決于設備00001111 -取決于設備00010000 -保留00010001 -保留00010010 -運行立即診斷00010011 -取決于設備00010100 -保留00010101 -保留00010110 -保留00010111 -取決于設備00011000 -保留00011001 -保留00011010 -保留00011011 -保留00011100 -保留00011101 -保留00011110 -保留00011111 -掛起00100000 -恢復在發(fā)出命令之前,要由系統(tǒng)軟件使所有被保留位置零。位0-7的所有其它編碼都是被保留的。
參照圖7,來看一看對于SCB命令在168處指出的命令接口端口一般格式及在170處指出的引起注意端口的一般格式。命令接口端口包含了SCB的起始地址。這個起始地址是一個物理地址,它必須處在雙字邊界。為起動SCB注意請求(SCB attention request),引起注意端口的格式在170處指出。
如前面所說明的,間接命令包含在SCB內(nèi)。多個SCB可以按指定順序鏈接并被當作一個邏輯請求來處理。數(shù)據(jù)緩存區(qū)可以用一個間接表(indirect list)來鏈接。在處理一個請求時如果出現(xiàn)錯誤,這個結構還能夠用于處理復雜的狀態(tài)信息。狀態(tài)信息放在終止狀態(tài)塊(TSB)中。為了能在命令鏈中的任何一點處理終止,在鏈中為每個SCB定義了一個TSB。
對于一個SCB配置,有兩個細節(jié)不同的形態(tài)。它們稱作基本格式(見圖8)和擴展格式(見圖9)。擴展格式是由基本格式在其末端增加若干字段構成的。這些字段的簡要定義及所使用的簡稱如下1.命令字用于定義正在被傳遞的SCB命令類型。這個字有三個字段。
-OP代碼-包含該SCB命令的8位操作碼。
-A-一位指示位,指明該SCB包含的命令代碼是有結構的(architected)還是無結構的(unarchitected)。所展示的格式適用于有結構的和無結構的兩種命令代碼。
-保留段2.使能字(enable word)
SCB中的各字段允許用于多種由命令指定的操作。使能字包含若干字段,用以指出SCR中的這些字段對該命令的用途。它還有一些指示位,用以定義要使用的回答指示的類型。
-CH-如果無錯誤則鏈接到下一個SCB(下一個SCB的地址是在鏈地址的1字段)。
-COND CH-位1指出在由位2、3和4定義的某些條件下鏈接的SCB的地址在鏈地址2之中。
-A1-指出這個命令使用地址1來指向一個緩存區(qū)還是指向一個間接表(它有一組指向各緩存區(qū)的指針)(具體用途由該命令規(guī)定)。
-A2-指出這個命令使用地址2來指向一個緩存區(qū)還是指向一個間接表(它有一組指向各緩存區(qū)的指針)(具體用途由該命令規(guī)定)。
-I-當命令完成而無差錯時清除中斷。
-EXT-指出該SCB有擴展格式。
-R-保留-SES-刪除異常短(Suppress Exception Short)、(當讀入數(shù)據(jù)少于所提供的緩存區(qū)時)。
-SEL-刪除異常長(Suppress Exception Long)(當從一個設備讀入的數(shù)據(jù)超過該命令所提供的緩存區(qū)大小時)。
-PT-指出該命令使用一個間接表指向一個緩存區(qū)鏈(數(shù)據(jù)鏈起用命令)。
-TSB-指出只有在出錯時才去存貯TSB狀態(tài)。
3.使能字2
當使用擴展格式時,位于擴展段的使能字2當中提供了附加指針。這些指針是-PT2-指出地址2指向一個間接表(表長度由字節(jié)計數(shù)1給出)-DEC1-指出存貯器地址1應該被減量而不是被增量。
-DEC2-指出存貯器地址2應該被減量而不是被增量。
4.地址1它包含32位地址,指向數(shù)據(jù)緩存區(qū)或間接表。其使用由該命令規(guī)定。一個使能字指針(PT)指出正在使用的是哪一種地址形式。
5.地址2它包含32位地址,指向數(shù)據(jù)緩存區(qū)或間接表。其使用由該命令規(guī)定,一個使能字指針(PT2)指出正在使用的是哪一種地址形式式。
6.字節(jié)計數(shù)1包含一個四字節(jié)計數(shù),它規(guī)定了由地址1或地址2中的地址所指示的緩存區(qū)或間接表的長度。
7.字節(jié)計數(shù)2包含一個四字節(jié)計數(shù),它規(guī)定了由地址2中的地址向指示的緩存區(qū)或間接表的長度。這一字段位于擴展部。
8.TSB地址包含一個伴隨該SCB的32位地址。
9.鏈地址1在使用命令鏈接的請求中,用來指向下一個SCB。
10.鏈地址2
當條件鏈接所要求的條件被滿足時,用來指向一個SCB。
11.鏈接標識符包含該鏈的16位標識符。該值對一個鏈請求中的所有SCB都是相同的。
12.擴展長度除了在中斷狀態(tài)端口154中的有錯/無錯指示外,本發(fā)明還提供了對SCB鏈中的每個命令要由子系統(tǒng)向計算機報告的詳細狀態(tài)信息。這是在終止狀態(tài)塊(TSB)中報告的。每個SCB包括系統(tǒng)存貯器中的一個TSB地址,子系統(tǒng)向該地址指示的位置寫入該SCB的完成或終止狀態(tài)。TSB的基本格式示于圖10,而其擴展格式示于圖11。當對基本格式加上擴展部分時,用于指出依賴于設備的信息長度的計數(shù)在TSB中的位置改變了。
下面是在基本TSB格式和擴展TSB中使用的各字段的簡要定義1.結束狀態(tài)字該字包含若干個指針,它們確定了與指向該TSB的那個SCB中所包含的命令的執(zhí)行情況有關的具體狀態(tài)信息。
-D-指出“請求被正確完成”。
-SES-指出“短長度”-伴隨SCB使能字中的SES指針。
-R-保留-SC-指示對SCB進行規(guī)格檢查,SCB無效。
-SEL-指出“長長度”-伴隨SCB使能字中的SEL控制。
-HLD-指出SCB命令鏈被停止了。
-INT-指出邏輯中斷請求。
-ASA-指出可得到結構狀態(tài)。
-DSA-指出可得到取決于設備的狀態(tài)(使用ASA和DSA共同指出是擴展格式)。
-DO-指出設備運行過量(over run)。
-INI-指出設備未初始化。
-ERR-指出已發(fā)生了主要錯誤。
-CD-指出鏈接方向(遵循正常鏈還是條件鏈)。
-SUS-指出對SCB掛起的命令完成了。
-ES-指出使用了擴展狀態(tài)。
2.擴展結束狀態(tài)這個字有增加的狀態(tài)指針。當前只有一個指針被納入結構。
-CT-指出命令類型(SCB或立即命令)3.剩余緩存區(qū)計數(shù)這是一個4字節(jié)計數(shù),包含由剩余緩存區(qū)地址所指示的緩存區(qū)中剩余字節(jié)數(shù)。
4.剩余緩存區(qū)地址這是在“請求”終止時使用的緩存區(qū)的32位地址。它可能是由這最后一個SCB給出的地址1或地址2緩存區(qū)地址,也可能是由這最后一個SCB中的地址1或地址2指向的一個間接表中的一個地址。其具體意義由命令指定。
5.剩余緩存區(qū)計數(shù)2這是一個4字節(jié)計數(shù)(在TSB擴展部中),包含由剩余緩存區(qū)地址2所指示的緩存區(qū)的剩余字節(jié)數(shù)。
6、剩余緩存區(qū)地址2這是在“請求”終止時使用的緩存區(qū)的32位地址(在TSB擴展部中)。它可能是由該最后一個SCB給出的地址2緩存區(qū)地址,也可能是由該最后一個SCB中的地址2指向的一個間接表中的一個地址。它是在一個命令使用二個地址時使用的。
7.與設備有關的狀態(tài)信息區(qū)尺度(SIZE OF DEVICE DEPENDENT AREA)除了一組納入結構的狀態(tài)外,還采取措施提供更多的信息。這些附加信息量取決于使用的是基本格式還是擴展格式。這一字段在基本格式和擴展格式中的位置不同。附加信息是與子系統(tǒng)有關的。
8.與設備有關的(狀態(tài)信息)數(shù)據(jù)這一信息區(qū)包含了與設備有關的狀態(tài)信息。這一信息區(qū)的最大尺度取決于使用哪一種格式。
使用剛才描述的SCB格式的本發(fā)明的計算系統(tǒng)的詳細情況顯示于圖12。如前面描述的那樣,主系統(tǒng)200與至少一個智能子系統(tǒng)通道總線結構(如微通道204)交換信息。
主系統(tǒng)200中的系統(tǒng)程序206經(jīng)過線210在系統(tǒng)存貯器2208中建立各SCB塊。在下列資料中描述了系統(tǒng)程序的操作“PS/2 BIOS接口技術參考書”(IBM出版物號68×-2341-00”;“IBM PS/2操作系統(tǒng)指南”(IBN出版物號為GG24-3225-0)。如前文所述,一個SCB格式提供了緩存區(qū)地址、鏈地址和TSB地址。在分頁存貯器系統(tǒng)中,SCB、緩存區(qū)地址、鏈地址及TSB地址都是被操作系統(tǒng)“釘(pinned)”在系統(tǒng)存貯器中的。就是說,有一段系統(tǒng)存貯器為此目的而被鎖住。為便于描述,圖中給出一個SCB 212,它包括一個TSB 214、一個指向數(shù)據(jù)緩存區(qū)218和220的間接表216以及指向SCB 222的鏈地址。需要理解,根據(jù)圖8-11所示的格式,在系統(tǒng)存貯器208中可以格式化一組類似的SSCB。
子系統(tǒng)202與圖2中的子系統(tǒng)102相似,其唯一差別是子系統(tǒng)202顯示得更詳細些,以便于描述命令的傳遞。子系統(tǒng)202包括一個總線接口和控制單元228,它有一個命令傳遞邏輯230和總線控制器(bus master)232;子系統(tǒng)202還包括一個帶有中斷(I)邏輯236的本機(local)微處理器234本機存貯器238、以及設備接口和控制邏輯240,它與一組設備242、244、246及248相連。
下面先參照圖12來概括描述命令處理系統(tǒng),它包括命令處理器和譯碼過程。然后再參照圖19-25以流程圖形式詳細描述其功能能。
系統(tǒng)程序讀出命令忙/狀態(tài)端口(圖中未畫)以確認引起注意端口和命令接口端口空閉。系統(tǒng)程序206通過命令接口端口(未畫出出)向總線接口與控制單元228的命令傳遞邏輯230提供一個SSCB的地址,通過線250向引起注意端口(未畫出)提供命令類型和要執(zhí)行命令的設備。
作為譯碼處理的一部分,該命令要被進行有效性檢驗進而被接受或被拒絕。假定該命令被接受了,則子系統(tǒng)把該狀態(tài)寫入命令忙/狀態(tài)端口(圖中未畫出),并指向要執(zhí)行的命令。
子系統(tǒng)利用總線控制器232中的總線控制功能啟動微通道204上的總線周期。此時系統(tǒng)存貯器是一個受控微通道存貯器(Mrcro Channel memory slave),其微通道控制和地址線均由總線控制器232來驅(qū)動。系統(tǒng)存貯器驅(qū)動微通道數(shù)據(jù)總線線,而總線控制器功能把SCB(一個或多個)傳送給子系統(tǒng)的本機存貯器238。一旦子系統(tǒng)接受了一個SCB,在微處理器中運行的程序便對命令譯碼并把它指向指令的設備。這個程序操作將參考圖119-25中的流程圖來詳細解釋。為完成傳送,要把緩存區(qū)地址裝入總線控制器232。
具體地說,一旦SCB地址被譯碼,該地址便被提供給系統(tǒng)存貯器208,而SCB被取到子系統(tǒng)202。例如,如果SCB212要被尋址,則總線控制器232以SCB地址來啟動地址線252,同時通過線254將SCB的第一部分返回。在對地址增量之后再重復這一過程,直到整個SCB被取完為止。對要處理的數(shù)據(jù)的訪問(access)是通過地址線256和258實現(xiàn)的,它們指向由間接表216指定的數(shù)據(jù)緩存區(qū)218和220。數(shù)據(jù)經(jīng)線260和262從緩存區(qū)218和220返回。然后,總線控制器232按照引起注意端口(未畫出)中的命令第二部分的規(guī)定,經(jīng)接口240將數(shù)據(jù)傳送給本機存貯器238或者設備之一,SCB的完成或終止狀態(tài)經(jīng)線264和266存貯于TSB214中,其狀態(tài)數(shù)據(jù)經(jīng)線268和270提供給TSB214。
SCB212指向SCB222,它經(jīng)由線272尋址,而SCB222經(jīng)線274返回信息。來自緩存區(qū)226的要處理的數(shù)據(jù)經(jīng)由地址線256來訪問,經(jīng)線262將數(shù)據(jù)返回總線控制器232,然后總線控制器232經(jīng)接口240(如前所述)將數(shù)據(jù)傳送給本機存貯器238或設備之一。SCB222的完成或終止狀態(tài)經(jīng)由線2264尋址存貯于TSB224,其狀態(tài)數(shù)據(jù)經(jīng)線268提供給TSB224。
子系統(tǒng)202還把SCB或SCB鏈的中斷狀態(tài)裝入中斷狀態(tài)端口(未畫出),它經(jīng)由線264向主系統(tǒng)提供了一個物理中斷返回((back)。
在給出命令處理系統(tǒng)的流程圖描述之前,先作一般性描述,以便使圖19-25的流程圖中使用的術語更易于理解。
提交命令方法與命令類型本發(fā)明規(guī)定了兩種向子系統(tǒng)傳遞命令的方法。某些子系統(tǒng)范圍內(nèi)的硬件規(guī)定功能可由硬件控制來調(diào)用,這個硬件控制可借助子系統(tǒng)控制端口中的程序修改位來訪問。硬件控制提供了改變子系統(tǒng)狀態(tài)的一種快速高優(yōu)先級方式,以這種方式提出的子系統(tǒng)復位命令的優(yōu)先級超過把數(shù)據(jù)寫入命令端口和引起注意端口而提交給子系統(tǒng)的所有其它命令。
利用發(fā)給子系統(tǒng)控制端口的OUT(輸出)命令和修改某些規(guī)定位,可啟動硬件控制。
對于RR、DMA以及EI位的修改不能由某些具體命令來說明但這些位對子系統(tǒng)也具有子系統(tǒng)范圍內(nèi)的效用它們將在下文中的“主處理器試圖設置I/O端口的結果”一節(jié)以及圖14中的表中概要地描述。
通過寫命令端口和引起注意端口來提交的命令歸于兩大類間接命令(以SCB為基礎)和直接命令。由引起注意請求代碼3來區(qū)分以SCB為基礎的命令。在SCB命令情況下,命令接口端口包含SCB起點的實際存貯器地址。直接命令有三種類型,由唯一的引起注意代碼設置來決定。所有的直接命令在命令端口中有一個32位的值,它與引起注意代碼一起定義了要由子系統(tǒng)完成的動作。提供了兩個引起注意代碼0(復位)和E(中斷復位),以便能在具有引起注意代碼“01h”的其他直接命令之上來對這些命令進行特殊情況處理。有時把直接命令用術語“立即命令”來描述,以指出命令端口中包含的32位值完全定義了必須完成的操作。這與SCB命令相反,SCB命令必須從命令端口給出的系統(tǒng)存貯器地址中取出來,以確定要完成的動作。
在體系結構中定義了一個為1的引起注意代碼F(與設備有關的注意(device dependent attention)。提供引起注意代碼F是為了使一個實際應用能為希望最優(yōu)化的命令提供特殊情況處理。
提交命令過程中的子系統(tǒng)狀態(tài)轉換。
這一節(jié)中定義使用硬件控制或通過引起注意端口提交一個命令值所發(fā)生的那些狀態(tài)變換與動作。在圖13中的狀態(tài)轉換圖里提供了這些資料。當子系統(tǒng)處于譯碼狀態(tài)時,它對所提交命令的接受或拒絕將在下文中“命令處理與譯碼過程”一節(jié)中詳細討論,它對譯碼過程給出了更多的細節(jié),并在附表2,3中提供了一套決策表,說明命令是這樣被譯碼過程接受或拒絕的。
下述狀態(tài)是為提交命令轉換中的應用而定義的,關于子系統(tǒng)狀態(tài)和譯碼過程的更多細節(jié)可參見有關“命令處理與譯碼過程的討論。
子系統(tǒng)狀態(tài)
1、“接受命令”或ACCEPT。
子系統(tǒng)處于能夠接受經(jīng)命令端口和引起注意端口提交的命令的狀態(tài),在這一狀態(tài),在命令忙/狀態(tài)端口中的拒絕位和忙位雙雙為零。
主處理器的引起注意端口寫入將使子系統(tǒng)脫離這一狀態(tài)而進入““進行譯碼”狀態(tài),在這一狀態(tài)將決定該命令將是否被接受。
2、“子系統(tǒng)復位未決開始”或PENDS。
子系統(tǒng)控制端口的RST位已被主程序置1,而子系統(tǒng)已開始了對它的微處理器進行硬件控制的復位。在這一狀態(tài)期間,主處理器對命令端口和引起注意端口的寫入被忽略。子系統(tǒng)控制端口的由主系統(tǒng)寫入的各位被忽略,而RST位不被忽略。當完成了硬件復位,子系統(tǒng)進入“子系統(tǒng)復位過程完成”狀態(tài)。
當在這一狀態(tài)時,命令忙/狀態(tài)端口的忙(B)位為1,拒絕位(R)為零。
3、“子系統(tǒng)復位未決完成”或PENDC,此時子系統(tǒng)已經(jīng)完成了它的微處理器的硬件控制復位,正在等待主處理器向子系統(tǒng)控制端口的RST位寫入一個零位。在這一狀態(tài)時主處理器向命令端口和引起注意端口的寫入均被忽略。但允許主處理器向子系統(tǒng)控制端口寫寫。向子系統(tǒng)控制端口的RST位寫入零將使子系統(tǒng)進入“子系統(tǒng)復位正在進行”狀態(tài)。
在這一狀態(tài),命令忙/狀態(tài)端口的忙位(B)為1,而拒絕位(R)為零。
某種實施方案中也許不能區(qū)分“復位未決開始”與“復位未決完成”兩個狀態(tài)的差別,因而可能只有一個“復位未決”狀態(tài),在這種情況下,如果對RST位置零將把子系統(tǒng)從未決狀態(tài)轉換到“復位正在進行”狀態(tài)。
4、“子系統(tǒng)復位正在進行”或RESETS子系統(tǒng)控制端口的RST位已經(jīng)置零,在“子系統(tǒng)復位未決開始始”狀態(tài)之后經(jīng)過了一段由具體實際系統(tǒng)所決定的延遲時間,便進入這一狀態(tài)。一旦進入這一狀態(tài),子系統(tǒng)便完成了它對子系統(tǒng)的復位。當子系統(tǒng)處于這一狀態(tài)時,主處理器被允許去修改子系統(tǒng)控制端口的內(nèi)容。主處理器向命令端口和引起注意端口的寫入均被忽略。
在這一狀態(tài)的命令忙/狀態(tài)端口的忙位是1,而拒絕位是零。
一旦子系統(tǒng)復位完成了,子系統(tǒng)便進入“接受命令”狀態(tài)。這時命令忙/狀態(tài)端口的忙位和拒絕位均是零。這時IV位置1,以指出ISP中包含有完成的子系統(tǒng)復位的中斷值。
5、“子系統(tǒng)拒絕”或REJECT經(jīng)過命令端口和引起注意端口提交的命令以被譯碼過程拒絕。在拒絕狀態(tài)被清除之前,不會通過命令端口和引起注意端口再接收任何命令。當在這一狀態(tài)時,主處理器向命令端口與引起注意端口的寫入被忽略。而主處理器向子系統(tǒng)控制端口寫入是允許的。命令忙/狀態(tài)端口將使拒絕位和忙位都是成1。在命令忙/狀態(tài)端口的S位將給出命令被譯碼過程拒絕的理由。
當子系統(tǒng)控制端口的RR位被置1,或者由硬件控制的子系統(tǒng)復位來置子系統(tǒng)控制端口的RSP位為1,可以使子系統(tǒng)退出拒絕狀態(tài)態(tài)。
6、“譯碼在進行”或DECODE當檢測到主處理器向引起注意端口寫入時,子系統(tǒng)便從接受命令狀態(tài)進入這一狀態(tài)。在這一狀態(tài)子系統(tǒng)決定它將是否接收該命令。
當子系統(tǒng)進入這一狀態(tài),命令忙/狀態(tài)端口的忙位便被置1,而拒絕位被置零。當在這一狀態(tài)時主處理器向命令端口和引起注意端口的寫入被忽略。主系統(tǒng)向子系統(tǒng)控制端口的寫入除了改變RST位之外也被忽略。
如果譯碼過程接受了該命令,子系統(tǒng)進入“接受命令”狀態(tài)。如果命令未被接受執(zhí)行,則子系統(tǒng)進入“拒絕”狀態(tài)。
各個動作是a、主處理器向子系統(tǒng)控制端口RST位寫入1,或者說RST=1。
主處理器向子系統(tǒng)控制端口發(fā)出“OUT(輸出)”命令,使RST位之值置1。
b、主處理器向子系統(tǒng)控制端口RST位寫入零,或者說RST=0。
主處理器向子系統(tǒng)控制端口發(fā)出“OUT”命令,使RST位之值置零。
c、主處理器向引起注意端口寫,或者說W/AP。
主處理器以一個OUT命令向引起注意端口寫。
d、主處理器對子系統(tǒng)控制端口RR位寫入1,或者說RR=1。
主處理器向子系統(tǒng)控制端口發(fā)出“OUT”命令,使RR位之值置1。
e、“復位未決完成”,或PEND COMPLETE。
子系統(tǒng)已經(jīng)完成了對它的微處理器復位動作以及允許它等待完成子系統(tǒng)復位所需要的任何其它動作。
f、“子系統(tǒng)復位完成”或RESET COMPLETE。子系統(tǒng)已經(jīng)完成了子系統(tǒng)復位動作。
g、“譯碼接受命令”或DECODE ACCEPT。
子系統(tǒng)譯碼過程已經(jīng)接受了通過命令端口和引起注意端口提交的命令。
h、“譯碼拒絕命令”或DECODE REJECT。
子系統(tǒng)譯碼過程已經(jīng)拒絕了通過命令端口和引起注意端口提交的命令。
在圖13的狀態(tài)圖中以這些狀態(tài)和動作定義了各狀態(tài)的轉換。
主處理器試圖置I/O端口的結果在圖14的決策表中,概括了子系統(tǒng)處于不同狀態(tài)時主處理器試圖置I/O端口的結果。各狀態(tài)是在圖12中的狀態(tài)圖里所使用的那些,其中SSCP的意義是“子系統(tǒng)控制端口”。
對圖14中表的注釋所作的解釋1、系統(tǒng)把RSP置1,使子系統(tǒng)處于“復位未決開始”狀態(tài)。
2、如果RST被置1,則在子系統(tǒng)控制端口中的所有其他位均被子系統(tǒng)置1,這是進入“復位未決開始”狀態(tài)的一部分。
3、當子系統(tǒng)處于“接受命令”狀態(tài)時,系統(tǒng)對引起注意端口寫把子系統(tǒng)帶入“譯碼”狀態(tài)。
4、當子系統(tǒng)處在“復位未決完成”狀態(tài)時,系統(tǒng)對RST置零把子系統(tǒng)放入“復位正在進行”狀態(tài)。
5、當子系統(tǒng)處于“拒絕”狀態(tài)時,若系統(tǒng)置RR為1則把子系統(tǒng)置于“接受命令”狀態(tài),除非置RR的輸出(OUT)命令也置RST為1。如果RST被置1,則RR的改變被忽略,于是子系統(tǒng)被置于“復位未決開始”狀態(tài)。當子系統(tǒng)處于“拒絕”狀態(tài)時,RR被置零將不會清除“拒絕”狀態(tài)。
命令處理和譯碼處理過程這一節(jié)中關于命令處理部分的討論集中于譯碼過程。與譯碼過程中的接受命令有關的決策表示于圖15、與譯碼過程中的拒絕命令有關的決策表示于圖16、17和18。
需要存在一個硬件控制的處理,子系統(tǒng)用它來監(jiān)視主處理器對命令,引起注意及子系統(tǒng)控制三個端口的寫入。這個處理稱作命令處理器,它對寫子系統(tǒng)控制端口的RST位這一類動作的反應是調(diào)用硬件控制來對子系統(tǒng)復位。命令處理器還負責調(diào)用一個在硬件或固件(firmnare)中的一個處理過程,子系統(tǒng)用它來確定是否接受一個經(jīng)引起注意和命令端口提交的命令。當子系統(tǒng)處于“接受命令令”狀態(tài)并檢測到一個主處理器對引起注意端口的寫入時,命令處理器便調(diào)用這一處理過程。命令處理器把子系統(tǒng)放在“譯碼”狀態(tài),并調(diào)用“譯碼處理過程”來決定它是否能接受這個新提交的命令。當當處于譯碼狀態(tài)時,命令處理器還負責保證主處理器通過寫命令端口或引起注意端口來試圖提交的新命令被鎖存起來。命令處理器還響應主程序?qū)ψ酉到y(tǒng)控制器的寫入,保證子系統(tǒng)在任何狀態(tài)都允許由主程序來改變RST位。正是這一功能使來自主處理器的硬件控制的“子系統(tǒng)復位”命令能被接受。根據(jù)子系統(tǒng)的狀態(tài),命令處理器還允許進行其他硬件控制。
由于譯碼處理過程有確定子系統(tǒng)是否能接受一個指向設備的命令的任務,需要注意下列各類數(shù)據(jù)*命令類型,命令的引起注意代碼決定了一個命令將被如何處理。命令被分成如下各類設備復位、中斷復位、SCB、立即命令。如果一個實際應用系統(tǒng)中支持“依賴設備的注意(Device Dependent Attention)”,它將根據(jù)該實際應用的規(guī)定,列入SCB類或立即命令類。不被支持的引起注意代碼被譯碼處理過程所拒絕,這些不是SCB命令的無效命令注意代碼被稱作直接命令。
*設備號。命令指向的設備包含在引起注意端口。為了確定命令指向哪一個設備,故需要這個數(shù)據(jù)。譯碼處理過程還利用這個數(shù)據(jù)來設備狀態(tài)信息,它使子系統(tǒng)確定這個新命令是否能被接受或拒絕。無效設備地址會使命令被拒絕。
*命令代碼,當處理直接命令時,該命令的位0-7中的8位命令代碼被檢驗,以確認命令代碼。不能辨認的8位立即命令代碼會使命令作為無效命令被拒絕。
*設備狀態(tài),這是設備的當前狀態(tài),它規(guī)定了在給定的當前設備狀態(tài)下該命令能否被接受。本發(fā)明定義了一組狀態(tài),并指出了在一個給定狀態(tài)下一個命令是否可以被接受。這一數(shù)據(jù)將在下文中的“譯碼處理過程決策表”中詳細陳述。
當譯碼處理過程決定接受一個命令時,它需要保證設備狀態(tài)被更新以表明接受了新命令,還要使該設備定時開始執(zhí)行新命令。譯碼處理過程還必須保證命令處理器把子系統(tǒng)從譯碼狀態(tài)脫出并進入“接受命令”狀態(tài)。本發(fā)明并不堅持要求設備狀態(tài)復位及新命令定時要在譯碼處理過程中完成,但認為是這種情況在概念上較為簡單。
譯碼過程必須使所要求的新命令被安排好預定時間以便在所要求的設備上執(zhí)行,認識到這一點也很重要?!鞍才蓬A定時間(scheduled)”這個詞用于“設備O復位”以外的所有其它命令,因為子系統(tǒng)處理器周期的使用需要在其它設備正在完成的各任務之間分。在“設備零復位”的情況下,這是一個特殊情況,因為這一動作產(chǎn)生一個由軟件調(diào)用的子系統(tǒng)復位,并要求子系統(tǒng)當前為其它設備安排的所有活動全部停止。
當一個命令被告知已經(jīng)接受時,是命令處理器把命令忙/狀態(tài)端口置位,從而使忙位和拒絕位都被置0。
當譯碼過程拒絕一個命令時,命令處理器便得到拒絕的理由。子系統(tǒng)從譯碼狀態(tài)過渡到拒絕狀態(tài)。在命令忙/狀態(tài)端口的忙位和拒絕位被置1。在拒絕位被置1的同時,該端口的S位被設置,使其包含的代碼值指出命令被拒絕的原因。
在完成譯碼處理過程時,若干目標得到了滿足*被譯碼處理過程接受的立即命令將不會在以后要求拒絕命令中斷。除非有硬件故障,否則該立即命令由譯碼處理過程接受之后將正確地執(zhí)行。
*任何由于當前設備狀態(tài)的原因而不能被執(zhí)行的命令都盡可能快地被拒絕而不引起子系統(tǒng)中斷。拒絕狀態(tài)和拒絕理由被保持下來共主程序使用,直至明確地清除掉時為止。
*“設備復位”之類的特殊引起注意代碼盡可能快地被安排執(zhí)行行。
*SCB命令被安排時間取出。譯碼處理過程不檢查SCB中字段值的有效性。
對于當各種命令呈交給一個設備時該設備如何作出反應的描述都定義在“譯碼處理過程決策表”中的一組決策表里,對它將作簡要討論。作為總概括,這些規(guī)則可描述如下1.硬件控制的子系統(tǒng)復位總會被子系統(tǒng)接受。
2.子系統(tǒng)處于下列狀態(tài)時,指向引起注意端口的命令將被忽略略譯碼在進行、子系統(tǒng)拒絕、子系統(tǒng)復位在進行、子系統(tǒng)復位未決開始、或子系統(tǒng)復位未決完成。
3.即使一個設備正忙于執(zhí)行其它命令,該設備也將接受“設備復位”命令。對這條規(guī)則有三個例外。
-在引起注意端口指定的設備號無效。
-在位0-7中的8位立即命令代碼不等于零。
一個系統(tǒng)處于上述第二款所規(guī)定的狀態(tài)之一,就是說,它忽略靠試圖寫入引起注意端口所提交的任何命令。
4.當一個設備正忙于執(zhí)行一個命令,它將以設備忙代碼拒絕一個新命令,但下列情況例外-新命令是“設備復位”。
-設備在忙于執(zhí)行一個SCB,而該新命令是“掛起”的。(這種情況下,在設備被置于“以不能執(zhí)行SCB”狀態(tài)之前允許完成正在執(zhí)行的SCB。一個“掛起”總是使該設備中被執(zhí)行的最后一個SSCB請求中斷。)-設備在忙于執(zhí)行一個SCB,而新命令是“SCB中斷復位”。(當前執(zhí)行的SCB立即停止,轉而執(zhí)行SCB中斷復位功能。被停止的SCB允許繼續(xù)執(zhí)行。)5.當設備的中斷排隊滿時,它將拒絕一個新命令,除非有下列情況-設備復位
-中斷復位(SCB或“立即的”)-子系統(tǒng)復位(硬件或軟件控制的)6、當一個設備沒有忙于執(zhí)行一個命令時,如果該設備已經(jīng)被置于“因先前掛起的命令而不能執(zhí)行SCB”的狀態(tài)時,它將拒絕一個SSCB命令。
7、如果設備處于不能可靠地執(zhí)行命令的狀態(tài)時,它將拒絕所有命令,除非是-設備復位-子系統(tǒng)復位(硬件或軟件控制)-如果在引起注意端口的設備地址無效,該命令被拒絕。
譯碼處理過程決策表譯碼處理過程的結構規(guī)定了進行拒絕檢驗的順序,因此當存在多種拒絕理由時,它會指出要給定的是那一個拒絕理由。這一點在下表中給出譯碼處理過程步驟步驟1-檢查引起注意代碼和命令的有效性。拒絕代碼=010拒絕原因不可識別的注意代碼 無效注意代碼引起注意復位代碼(00) 無效8位立即命令代碼中斷注意復位代碼(OE) 無效8位立即命令代碼立即命令注意代碼(01) 無效8位立即命令代碼步驟2-檢查“引起注意端口給出的設備有效”的有效性。拒絕代碼=101拒絕理由設備復位 在引起注意端口的設備號無效SCB或與設備有關的 在引起注意端口的設備號無效注意碼作為SCB立即掛起、恢復空操作 在引起注意端口的設備號無效(NOOP)立即診斷 在引起注意端口的設備號無效中斷狀態(tài)端口復位 在引起注意端口的設備號無效SCB中斷復位 在引起注意端口的設備號無效與設備有關的注意碼作 在引起注意端口的設備號無效為非SCB立即命令 在引起注意端口的設備號無效步驟3-檢驗“設備處于可得到狀態(tài)”的有效性拒絕代碼=001拒絕理由SCB或與設備有關的 設備處于不可得到狀態(tài)注意碼作為SCB立即、掛起、恢復空操 設備處于不可得到狀態(tài)作立即診斷 設備處于不可得到狀態(tài)SCB中斷復位 設備處于不可得到狀態(tài)中斷復位 設備處于不可得到狀態(tài)狀態(tài)端口 設備處于不可得到狀態(tài)與設備有關的注意碼作 設備處于不可得到狀態(tài)為非SCB
立即命令 設備處于不可得到狀態(tài)(上述任何一個)步驟4-檢驗“設備非忙”的有效性拒絕代碼=011拒絕原因SCB或與設備有關的 設備忙注意碼作為SCB立即、恢復、空操作 設備忙立即診斷中斷狀態(tài)端口復位 設備忙設備中斷復位、掛起 設備忙,(沒有在執(zhí)行SCB)與設備有關的注意碼作 設備忙為非SCB立即命令(非上述任何 設備忙一個)步驟5-檢查“設備中斷排隊未滿”的有效性拒絕代碼=111拒絕理由SCB或與設備有關的 中斷排隊滿注意碼作為SCB恢復、掛起、立即空操 中斷排隊滿作立即診斷 中斷排隊滿與設備有關的注意作為 中斷排隊滿非SCB立即命令(非上述任何 中斷排隊滿一個)步驟6-檢查“使能執(zhí)行SCB”的有效性拒絕代碼=100拒絕理由SCB或與設備有關的 由掛起使不能執(zhí)行SCB注意碼作為SCB首先由于規(guī)定了詳細的設備和子系統(tǒng)狀態(tài),然后又有一套決策表從而使譯碼結構體系被完全地確定了。
子系統(tǒng)及設備狀態(tài)定義子系統(tǒng)有如下狀態(tài)組分*子系統(tǒng)執(zhí)行狀態(tài)有ACCEPT,PENDS,PENDC,RESETS,REJECT,DECODE。這些狀態(tài)確定了該子系統(tǒng)是否能接受一個新命令或硬件控制。
*“可得到”狀態(tài),確定該子系統(tǒng)是否已進入了可以預料它能可靠地執(zhí)行命令的狀態(tài)。如果它的值是YES(是),該子系統(tǒng)是可得到的,若為NO(否),則該子系統(tǒng)為不能得到的。
*使能DMA,這一狀態(tài)指出該子系統(tǒng)是否允許DMA活動,為YES或NO。當不允許DMA活動時,對于該子系統(tǒng)便不允許取出SCB命令、存貯TSB狀態(tài),或按SCB命令傳送數(shù)據(jù)。這一狀態(tài)相應于子系統(tǒng)控制端口中的DMA位。
*使能中斷。這一狀態(tài)指出該子系統(tǒng)能否在一個命令要求中斷時向主處理器發(fā)出一個物理中斷。它相應于子系統(tǒng)控制端口中的EI位當其值為YES時,可以發(fā)出物理中斷信號。當其值為NO時,則不能發(fā)出物理中斷信號。
*IV有效。這一狀態(tài)相應于命令忙/狀態(tài)端口中的IV位。如果其值為YES,則該子系統(tǒng)的中斷狀態(tài)端口在其中有一個有效中斷值,它尚未被主程序清除。如果其值為NO,則中斷狀態(tài)端口清除了任何中斷值。
*任何設備有效(Any Device Active)。這一狀態(tài)分量由子系統(tǒng)用于確定在它已經(jīng)處理了一個來自主處理器的請求之后如何恢復處理過程。這個主處理器請求或者是要處理一個硬件控制或者要處理一個通過引起注意端口提交的命令。例如,當子系統(tǒng)處處于ACCEPT狀態(tài)時寫入RR位,而該狀態(tài)分量為YES,則意味著子系統(tǒng)應該返回到在RR被置位之前所進行的訪問。如果這一狀態(tài)分量之值為NO,則子系統(tǒng)沒有要完成的設備動作,于是它進入等待下一個主處理器動作的發(fā)生。
設備狀態(tài)設備被規(guī)定有如下狀態(tài)分量1、忙狀態(tài)。這一狀態(tài)確定了設備當前是否忙于執(zhí)行一個命令。這個狀態(tài)有兩個值忙(busy)和閉(idle)。如果值為“閉”,表明該設備當前沒有執(zhí)行任何命令。如果其值為“忙”,則表明設備正在執(zhí)行一個命令,而“忙”狀態(tài)的子狀態(tài)”及CMD狀態(tài)將進一步確定在該設備上正在進行的命令或硬件控制。
2、忙狀態(tài)的子狀態(tài)(Busy Substates),如果一個設備正忙于執(zhí)行一個命令,則這個狀態(tài)分量指出正在進行的命令的類型如下立即命令,SCB、子系統(tǒng)復位(硬件控制的)、子系統(tǒng)復位(軟件控制的)、設備復位、掛起、以及SCB中斷復位。
當“忙狀態(tài)的子狀態(tài)”為立即命令或SCB時,則CMD段確定了在設備中將要執(zhí)行的顯式命令。當“忙狀態(tài)的子狀態(tài)”是子系統(tǒng)復位(硬設備控制的)、子系統(tǒng)復位(軟件控制的)、設備復位、掛起或SCB中斷復位時,則CMD狀態(tài)分量指出這些命令之一被接受的時候在該設備中正在進行的那個命令。
當“忙狀態(tài)的子狀態(tài)”是子系統(tǒng)復位(硬件控制的)、子系統(tǒng)復位(軟件控制的)、設備復位、掛起、或SCB中斷復位時,設備狀態(tài)分量“舊有的(old)忙狀態(tài)子狀態(tài)”包含有這些命令之一被接受時“忙狀態(tài)的子狀態(tài)”的行為。
當設備的忙狀態(tài)是“閉”時,則對該設備不確定“忙狀態(tài)的子狀態(tài)”。
3、CMD狀態(tài),它給出設備中正在執(zhí)行的命令的詳細情況如下如果設備的“忙狀態(tài)的子狀態(tài)”是立即命令,則CMD狀態(tài)給出在該設備中正在執(zhí)行的命令。這時,它的值是立即運行診斷測試立即空操作中斷狀態(tài)端口復位立即命令如果“SCB忙子狀態(tài)”,那么CMD狀態(tài)是從主處理器存貯器中取下一個SCB,作為單個SCB。
從主處理器存貯器中取下一個SCB作為SCB鏈中的元素。
檢驗單個SCB的有效性(完成SCB的規(guī)格測試)。
檢驗SCB鏈元素的有效性(完成SCB的規(guī)格測試)。
執(zhí)行單個SCB。
執(zhí)行SCB鏈元素這些CMD狀態(tài)是在設備執(zhí)行一個SCB時由設備任務來設置的就是說,命令狀態(tài)從取SCB起持續(xù)到執(zhí)行單個SCB或執(zhí)行SCB鏈元素。當一個單個SCB在執(zhí)行時,一旦SCB完成了執(zhí)行,設備便進入“閉”狀態(tài)。當設備執(zhí)行一個SCB鏈時,從取出和執(zhí)行SCSCB命令狀態(tài)直到該鏈全部完成或SCB執(zhí)行被“掛起”命令掛起為止,命令狀態(tài)一直保持?!皰炱稹泵羁偸窃谕瓿伞皰炱稹眲幼骱笃仁乖O備進入“閉”狀態(tài)。
如果該設備的“忙狀態(tài)的子狀態(tài)”等于子系統(tǒng)復位(硬件控制的)、子系統(tǒng)復位(軟件控制的)、設備復位、掛起、或SCB中斷復位,CMD段的使用依賴于狀態(tài)分量“舊有的忙狀態(tài)子狀態(tài)”。如果其值為立即命令或SCB,那么CMD段反映的是當子系統(tǒng)復位、設備復位、掛起或SCB中斷復位終接受執(zhí)行的時候曾經(jīng)在動作的那個命令如果該設備的舊有的忙狀態(tài)子狀態(tài)是子系統(tǒng)復位(硬件或軟件控制的)設備復位、掛起、或SCB中斷復位,則CMD被忽略,因為在接受時動作的命令完全由狀態(tài)分量”舊有的忙狀態(tài)子狀態(tài)”所確定了。
4、“設備中斷排隊端”或“中斷排隊滿”。這個狀態(tài)分量指出該設備的中斷排隊空間是否滿了。若值為“是(YES)”,則表明當前排隊滿,若值為“否(NO)”,則表明設備中斷排隊還有空間可供使用。當一個中斷被設備排隊時,被分配中斷排隊空間,而在這一點上中斷排隊可能變成滿的了。
5、“使能執(zhí)行SCB”,或“SCB Exec Enable”。這一狀態(tài)分量指出該設備是否允許執(zhí)行SCB。如果已經(jīng)不允許執(zhí)行SCB,這個分量為“否”。這是由執(zhí)行“掛起”命令引起的。如果允許執(zhí)行SCB,這個分量之值為“是”。這個“是”是由恢復、設備或子系統(tǒng)復位命令設置的。
6、“SCB鏈掛起”或“鏈掛起”,只有當對設備發(fā)出“掛起”命令時,這一狀態(tài)的值才有效。如果發(fā)出了一個“掛起”命令,而且對鏈中的下一個SCB的提取被“掛起”命令停止。則這一狀態(tài)分量的值為“是(YES)”。這意味著在這一狀態(tài)下向設備發(fā)出“恢復(Resume)”命令將使該設備重新進入SCB忙子狀態(tài),并且利用掛起命令時在“SCB取地址”中保存的SCB地址來恢復執(zhí)行被掛起的鏈。如果在一個SCB鏈未曾活動(active)時發(fā)生了“掛起”命令,或者如果該鏈被當前SCB的完成所停止,則這一狀態(tài)分量之值將為“否(NO)”。在這種狀態(tài)下向設備發(fā)出“恢復”命令將不會使設備重新進入SCB忙子狀態(tài),它將退出“恢復”而進入“閉”狀態(tài)。
7、SCB取地址。當一個SCB命令是首次被一個設備接受時在命令端口的地址被譯碼處理過程送到這一個區(qū)。當鏈中的下一個SSCB要被設備任務取出時,這一狀態(tài)分量便被更新為那個SCB的地址。設備任務根據(jù)SCB的結束狀態(tài)來決定從SCB中選擇哪一個鏈地址。
8、“設備可得到”或“Device Avail”。如果設備處于能夠可靠地執(zhí)行命令的狀態(tài),則這個狀態(tài)分量有值“是”。如果設備處于不能可靠地執(zhí)行命令的狀態(tài),則這一狀態(tài)值為“否”。
9、“立即命令值”或“IC”。當譯碼處理過程接受一個直接命令時,在命令端口的值便被傳送到這一狀態(tài)分量。它能被設備任務用于取直接命令中的值。當前只有位15-0影響直接命令的執(zhí)行。
10、“使能設備中斷”,這一狀態(tài)分量確定一個設備是否能要求一個物理中斷。如果這一分量的值為“使能(enable)”,則一個中斷能夠被請求。如果值為“使不能(disable)”,則不能有物理中斷被請求。一個設備總是被要求把一個中斷排列設備內(nèi)部中斷排隊之中,而與這一分量之值無關。這一分量或者由發(fā)給該設備的立即命令的位14設置,或者由子系統(tǒng)復位命令設置。
11、“后中斷(intenupt after”。這一狀態(tài)分量確定一個立即命令在成功地完成之后是否將要求一個中斷。對于子系統(tǒng)復位、SCB中斷復位、及立即中斷復位,這一狀態(tài)被忽略。這一狀態(tài)分量有“是”和“否”兩個值,由指向該設備的立即命令的位15來設置。
12、“舊有忙子系統(tǒng)”(old Busy Substate)”這一狀態(tài)分量包含著當接受了“掛起”、子系統(tǒng)復位(軟件控制的)設備復位、子系統(tǒng)復位(硬件控制的)、或SCB中斷復位時曾經(jīng)作用的“忙子狀態(tài)”值。
13、舊有的CMD狀態(tài)。這一狀態(tài)分量包含的內(nèi)容是當因為設備中斷排隊已滿而不能取出一個SCB時曾經(jīng)有效的SCBCMD值,當產(chǎn)生這一狀態(tài)時設備被置于“閉”狀態(tài)。SCB中斷復位或立即中斷復位能使該設備重新進入SCB狀態(tài),如果在執(zhí)行這些之后中斷排隊不再滿的話。
14、“中斷排隊滿使SCB掛起”。如果因為設備中斷排隊已滿而把該設備從SCB狀態(tài)脫出而置于“閉”狀態(tài),則這一狀態(tài)分量有值“是”。當中斷復位使設備中斷排隊退出這一狀態(tài)等于“是”時的排隊狀態(tài)時,狀態(tài)分量“舊的CMD狀態(tài)”和“SCB取地址”被用于重新啟動SCB的執(zhí)行。當設備不處于因中斷排隊滿而使SCB執(zhí)行被“掛起”的狀態(tài)時,這一分量之值為“否”。
15、“在執(zhí)行SCB的接受SCB中斷復位”。當一個設備正忙于執(zhí)行一個SCB時接受了SCB中斷復位命令,則這一狀態(tài)分量等于“是”。當該設備處于“閉”狀態(tài)時接受了SCB中斷復位,則該值等于“否”。
16、設備中斷排隊,這一狀態(tài)分量為設備的內(nèi)部中斷排隊分配空間。它得要包括當前最老的中斷元素的位置以及為其后的中斷所能提供的條目的位置和數(shù)量。
17、SCB邏輯中斷計數(shù)。每當設備產(chǎn)生一個SCB邏輯中斷這一狀態(tài)分量便增1。
利用這些狀態(tài)分量中的一些,譯碼處理過程按圖15、16、117、18所示決策表來接受或拒絕一個命令。在這些表中,符號DC意思是“不必管它(Don′t Care)”,于是這個狀態(tài)不被測試來確定譯碼處理過程的輸出。符號NA意思是“不能應用的(Not Applicable)”,意思是說這一狀態(tài)不能作為譯碼處理過程所需要測試的一部分而存在。
命令傳遞系統(tǒng)包括一個命令處理器和一個譯碼處理器。這些功能可以在硬件和/或軟件中實現(xiàn)。因此,它們的實施以流程圖形式示于圖19-25,作為前文中用于解釋系統(tǒng)操作的圖2和圖12所示框圖的補充。特別是,在圖12中,命令處理器和譯碼處理器是以硬件形式作為舉例包含在子系統(tǒng)202的命令傳遞邏輯230和微處理器234中。命令處理器處理在I/O端口接受的命令,而譯碼處理器對命令譯碼以供子系統(tǒng)或其附加設備之一去執(zhí)行。
圖19是命令傳遞系統(tǒng)的總流程圖。當子系統(tǒng)檢測到主處理器向下列任何一個I/O地址的寫入時,便以中斷方式進入命令處理器。這些I/O地址是子系統(tǒng)控制端口(SSCP),引起注意端口((AP),或命令接口端口(CP),(如塊500所示)。如塊5502所指出的,如果命令處理器能這樣做了,它便使其處理主處理器對命令接口端口和引起注意端口的寫入過程不能受任何中斷。如果這類中斷不能被阻止,那么對這些端口的寫入便被忽略,直至其后命令處理器重新進入它的處理過程。在決策塊504,確定進入命令處理器是否是試圖寫SSCP的結果。如果是,則此邏輯繼續(xù)前進到塊506去處理對SSCP的寫入。這一過程參考圖21和圖22詳細描述。在寫完SSCP之后,該邏輯進入塊508,在那里命令處理器重新使能處理主處理器對引起注意端口和命令接口端口的寫入,然后循環(huán)返回塊500。
如果在決策塊504發(fā)現(xiàn)不是對SSCP寫入,則進入決策塊5510以確定主計算機是否是試圖寫命令接口端口。如果是這樣,則該邏輯進入塊512去處理對命令接口端口的寫入。這一過程參照圖23詳細描述。在寫入命令接口端口之后,該邏輯再次進入塊508在那里命令處理器重新使能處理主處理器對引起注意端口的寫入,然后循環(huán)返回塊500。
如果決策塊500處發(fā)現(xiàn)不是寫命令接口端口,便進入塊514去處理對引起注意端口的寫入,這一過程參照圖22詳細描述。
下關對照圖20和圖21來詳細描述圖19中的塊506。對照圖20,主處理器寫入SSCP的值在塊516被讀入。在塊518確定是否是試圖對子系統(tǒng)復位。如果是,則進入塊520,在那里對SSCP的RST位置1。再進入決策塊522,在那里確定子系統(tǒng)執(zhí)行狀態(tài)是否接受命令狀態(tài)。如果是,則子系統(tǒng)狀態(tài)被置于“子系統(tǒng)復位未決開始”狀態(tài),如塊524所指出的那樣。然后,如塊526所指出的那樣,調(diào)用子系統(tǒng)硬件功能來執(zhí)行子系統(tǒng)復位未決。當執(zhí)行子系統(tǒng)復位未決功能的硬件功能完成時,子系統(tǒng)執(zhí)行狀態(tài)被置于“子系統(tǒng)未決完成”狀態(tài),如塊528所示。然后返回圖19中的塊50508使能主處理器中斷,如前面所解釋的那樣。
如果在決策塊522確定該子系統(tǒng)執(zhí)行狀態(tài)不是接受命令狀態(tài),則進入決策塊530以確定子系統(tǒng)執(zhí)行狀態(tài)是否是“子系統(tǒng)復位未決開始”。如果是,則進行塊532、重新使主處理器能夠?qū)懭朊罱涌诙丝诤鸵鹱⒁舛丝?。然后命令處理器把控制轉向硬件處理過程,執(zhí)行復位未決功能,如塊534所示。
如果在決策塊530確定了子系統(tǒng)執(zhí)行狀態(tài)不是“子系統(tǒng)復位未決開始”,則進行決策塊536,以確定子系統(tǒng)執(zhí)行狀態(tài)是否是“子系統(tǒng)復位未決完成”。如果是,則返回圖19中的決508,使能主處理器中斷,如前面描述的那樣。如果不是,則進入決策塊538以確定子系統(tǒng)執(zhí)行狀態(tài)是否是“拒絕”狀態(tài)。如果是,進入決524,把子系統(tǒng)放在“復位未決開始”狀態(tài),然后繼續(xù)前面描述過的過程。如果不是,則進行決策塊540以確定子系統(tǒng)執(zhí)行狀態(tài)是否等于“譯碼”。如果是,進入決542。在那里,當主計算機把RST置1的時候正在進行的譯碼處理過程的執(zhí)行被放棄了。對RST置1使子系統(tǒng)放棄了“復位在進行”狀態(tài),如果546所示。繼續(xù)進行決524把子系統(tǒng)放入“復位未決開始”狀態(tài),如前已解釋那樣。
如果在決策塊578確定了不曾試圖使子系統(tǒng)復位,則進入塊548,那里使SSCP的RST位置0。繼續(xù)進入決策塊550,在那里確定確定是否子系統(tǒng)的執(zhí)行狀態(tài)是“譯碼”。如果是,則進入塊552,在那里命令處理器重新使能處理主處理器寫命令端口和引起注意端口。然后命令處理器把控制轉向譯碼處理過程,如塊554所示。
如果在決策塊550確定子系統(tǒng)執(zhí)行狀態(tài)不是“譯碼”,則進入決策塊556,以確定子系統(tǒng)執(zhí)行狀態(tài)是否是“子系統(tǒng)復位未決開始”如果是,則進入塊558去迫使所有SSCP位除RST位外均置零然后進入塊532使能寫入命令接口端口和引起注意端口,再繼續(xù)如前面解釋的過程。
如果在決策塊556所作的判定是子系統(tǒng)執(zhí)行狀態(tài)不是“子系統(tǒng)復位未決開始”,則繼續(xù)進入決策塊560,在那里確定子系統(tǒng)決策狀態(tài)是否是“復位未決結束”。如果是,則進入塊562,在那里子系統(tǒng)執(zhí)行狀態(tài)被設置為“子系統(tǒng)復位在進行”狀態(tài)。在塊564,命令處理器重新使能處理主處理器寫命令接口端口和引起注意端口。然后命令處理器調(diào)用“子系統(tǒng)復位在進行”功能,如塊566所示。在此時,子系統(tǒng)執(zhí)行狀態(tài)是“準備好接受命令”,如塊568所示,然后返回圖19中的塊508使能主處理器中斷,如前面解釋的那樣。
如果在決策塊560確定子系統(tǒng)執(zhí)行狀態(tài)不是“復位未決完成”則進入塊570,在那里子系統(tǒng)執(zhí)行為“拒絕”或“接受”。在塊5572,SSCP的位。被置成SSCP的EI位。子系統(tǒng)執(zhí)行狀態(tài)的中斷使能分量就置成“是(YES)”,如塊574所示。在塊5576,檢測中斷功能被調(diào)用來確定是否有任何設備(從設備0開始)能發(fā)生中斷。SSCP的位1被置入子系統(tǒng)控制端口的DMA,如塊578所示。SSCP的位6、4、3和2被置入SSCP中的相應位置,如塊580所示。SSCP的位5被置入SSCP的RR位,如塊582所示。
寫SSCP過程在圖21中在決策塊584處繼續(xù),在那里確定SSCP中的RR位是否等于零。如果是,則進入決策塊586,在那里確定子系統(tǒng)執(zhí)行狀態(tài)是否為“接受命令”。如果是,則進入決策塊588以確定子系統(tǒng)是否有任何“設備在活動(active)”分量等于“否(NO)”。如果是,則進入圖19中的塊508使能主處理器中斷,如前文解釋的那樣。如果任何“設備在活動”分量等于“是(YES)”,則進入塊590,在那里命令處理器重新使能處理器寫命令接口端口和引起注意端口。在塊592,命令處理器從處理它的活動返回,把控制轉向子系統(tǒng)的被中斷了的活動。
如果在決策塊586確定子系統(tǒng)執(zhí)行狀態(tài)不是“接受命令”,則進入決策塊594,在那里確定子系統(tǒng)執(zhí)行狀態(tài)是否是“系統(tǒng)復位在進行”狀態(tài)。如果是,則進入塊596,在那里命令處理器重新使能處理主處理器寫命令接口端口和引起注意端口。然后命令處理器從““中斷”轉向塊598所指出的“子系統(tǒng)復位在進行”功能。
如果在決策塊594確定子系統(tǒng)執(zhí)行狀態(tài)不是“復位在進行”,則進入決策塊588,進而繼續(xù)前面解釋過的過程。
如果在決策塊584確定RR位不等于零,則進入決策塊600在那里確定子系統(tǒng)執(zhí)行狀態(tài)是否等于“拒絕”。如果是,則進入塊602,在那里子系統(tǒng)被從拒絕態(tài)脫出而放入接受命令狀態(tài),下一步進入決策塊588,然后按前面解釋的那樣進行。如果在決策塊600確定子系統(tǒng)執(zhí)行狀態(tài)。不等于“拒絕”,則進入決策塊588并按前面解釋的那樣繼續(xù)進行。
下面對照圖22詳細描述圖19中的塊514,這是處理對引起注意端口寫。在決策塊604,確定子系統(tǒng)執(zhí)行狀態(tài)是否等于“譯碼”如果是,則如塊606所示忽略主處理器寫引起注意端口,并返回圖20A所示塊552繼續(xù)進行前面解釋的過程。如果在決策塊604確定子系統(tǒng)執(zhí)行狀態(tài)不等于“譯碼”,則進入決策塊608確定子系統(tǒng)執(zhí)行狀態(tài)是否等于“拒絕”。如果是,則如塊610所示忽略主計算機寫引起注意端口,并返回圖21中的塊588,繼續(xù)前面解釋的過程。
如果在決策塊608確定子系統(tǒng)執(zhí)行狀態(tài)不等于“拒絕”,則進入決策塊612,在那里確定子系統(tǒng)狀態(tài)是否等于“復位未決開始”如果是,則如塊614所示忽略主計算機寫引起注意端口并返回圖221C中的塊532,繼續(xù)前面解釋的過程。
如果在決策塊612確定子系統(tǒng)執(zhí)行狀態(tài)不等于“復位未決”,則進入決策塊616,以確定子系統(tǒng)狀態(tài)是否等于“復位未決完成”如果是,則如塊618所指示,主計算機對引起注意端口寫被忽略,然后返回圖19中的塊508,使能主處理器中斷,如前面解釋的那樣。
如果在決策塊616確定子系統(tǒng)執(zhí)行狀態(tài)不等于“復位未決完成”則進入決策塊620,在那里確定子系統(tǒng)執(zhí)行狀態(tài)是否等于“子系統(tǒng)復位在進行”。如果是,則如塊622所示忽略主計算機對引起注意端口的寫入,然后返回圖21中的塊596,繼續(xù)前面解釋過的過程。
如果在塊620確定子系統(tǒng)執(zhí)行狀態(tài)不等于“子系統(tǒng)復位在進行”則繼續(xù)進行塊624,在那里子系統(tǒng)執(zhí)行狀態(tài)是在“接受”狀態(tài),引起注意端口在塊626中更新。然后子系統(tǒng)執(zhí)行狀態(tài)被設置成“譯碼”如塊628所示。然后命令處理器在塊630調(diào)用譯碼處理過程,其細節(jié)將在下文中參考圖24和25來描述。
在決策塊632確定譯碼處理過程是否接受了該命令。如果是,則進入塊634,在那里子系統(tǒng)執(zhí)行狀態(tài)被設置成“接受命令”,然后返回圖21中的決策塊588去進行前已解釋的過程。
如果在決策塊632中確定譯碼處理過程未曾接受命令,則進入塊636,在那里將子系統(tǒng)執(zhí)行狀態(tài)置成“拒絕”。在塊638,命令忙/狀態(tài)端口中的B位和REJ位均被置1,而S位的設置由譯碼處理過程來確定。然后返回決策塊圖21中的決策塊588,繼續(xù)前面解釋的過程。
下面對照圖23詳細描述圖19中的塊512,即處理對命令接口端口的寫入。在決策塊640,確定子系統(tǒng)執(zhí)行狀態(tài)是否等于“譯碼”。如果是,則如塊642所示,忽略主計算機寫命令接口端口,然后返回圖20A中的塊552,繼續(xù)前面已解釋的過程。如果在塊640確定子系統(tǒng)執(zhí)行狀態(tài)不等于“譯碼”,則進入決策塊644,在那里確定子系統(tǒng)執(zhí)行狀態(tài)是否等于“拒絕”。如果是,主計算機對命令接口端口的寫入被忽略,如塊646所示,然后返回圖21中的塊588去繼續(xù)前面解釋過的過程。
如果在決策塊644中確定子系統(tǒng)執(zhí)行狀態(tài)不等于“拒絕”,進入決策塊648,在那里確定子系統(tǒng)執(zhí)行狀態(tài)是否等于“復位未決開始”。如果是,例如塊650所示,忽略主計算機寫命令接口端口,然后返回圖20C中的塊532,繼續(xù)前面解釋的過程。
如果在決策塊648確定子系統(tǒng)執(zhí)行狀態(tài)不等于“復位未決開始”進入決策塊652,在那里確定子系統(tǒng)執(zhí)行狀態(tài)是否等于“復位未決完成”。如果是,則如塊654所示,忽略主計算機寫命令接口端口然后返回圖19中的塊508,繼續(xù)前面解釋過的過程。
如果在決策塊652確定子系統(tǒng)執(zhí)行狀態(tài)不等于“復位未決完成”則進入決策塊656,在那里確定子系統(tǒng)執(zhí)行狀態(tài)是否等于“子系統(tǒng)復位在進行”。如果是,則如塊658所示忽略主計算機寫命令接口端口,而返回圖21中的塊596去繼續(xù)前面已解釋的過程。
如果在決策塊656確定子系統(tǒng)執(zhí)行狀態(tài)不等于“子系統(tǒng)復位在進行”,則進入塊660,在那里子系統(tǒng)執(zhí)行狀態(tài)是“接受”狀態(tài)。于是如塊662所示,命令接口端口被主計算機提供之值更新。然后返回圖21中的決策塊588,繼續(xù)前面解釋過的過程。
命令處理器使用一個“與調(diào)用(call)相似的“過程來調(diào)用“譯碼處理過程”,以確定一個命令是否能被接受。如果該命令被接受了,則譯碼處理過程安排一個設備任務,在它把控制轉向由命令處理器指出一個命令是否被接受或拒絕之后,該設備任務便去執(zhí)行該命令。如果一個命令被接受去執(zhí)行,則譯碼過程相應地設置設備狀態(tài)。如果一個命令被拒絕,則譯碼過程回送一個值,命令處理器把它作為S位之怎寫入命令忙/狀態(tài)端口。
譯碼過程是通過來自命令處理器的調(diào)用而進入的。一旦進入了譯碼過程,則可以命令接口端口得到要被處理的命令。引起注意端口包含命令類型,并識別出命令所指向的設備。
下面參照圖24和圖25來詳細描述譯碼處理過程。在決策塊664,確定該命令的引起注意代碼是否是“設備復位”。如果是,則進入決策塊666來確定命令接口端口的位7-0中的立即命令代碼是否等于零。如果不是,則進入塊672,在那里譯碼過程設定它的回送值以指出命令被拒絕。如果決策塊698或700的回答為“否(NO)”,也會發(fā)生這種情況,這些操作還將簡要地解釋。
如果在決策塊666確定命令接口端口的位7-0中的立即命令代碼等于零,進入決策塊668,在那里確定如果被訪問的設備地址為“0”(即子系統(tǒng)地址),則該命令為一個軟件控制的子系統(tǒng)復位。如果是這樣,則進入塊680,在那里子系統(tǒng)的執(zhí)行狀態(tài)被設置為“子系統(tǒng)復位在進行”。這個軟件控制的子系統(tǒng)復位功能是在塊682中由譯碼處理過程調(diào)用的。在塊684,譯碼處理過程把它的回送代碼設為“命令接受”。然后返回塊676,返回命令處理器。
如果在決策塊668確定設備地址不是地址“0”(子系統(tǒng)地址)則進入塊670,在那里確定在引起注意端口的設備標識碼(ID)是否有效。如果是,則進入塊686,在那里被命令指定的設備的當前“忙子狀態(tài)”被保存在設備狀態(tài)分量”舊有的(OLD)忙子狀態(tài)之中。在塊688,該命令指定的設備的設備狀態(tài)分量IC被設置成命令接口端口中的值。然后,在塊690,被訪問的設備的忙狀態(tài)被設置成“忙”。然后,在塊692調(diào)用子系統(tǒng)任務排序功能,把命令ICMD安排給被訪問的設備供其后去執(zhí)行。然后返回塊684去繼續(xù)前面解釋過的過程。
如果在決策塊670確定在引起注意端口的設備標識符(ID)無效,則進入塊671,在那里命令回送碼被設為“拒絕”,且說明理由為無效設備標識符。然后進入塊676返回命令處理器。
如果在決策塊664確定該命令的引起注意代碼不是“設備復位”,則進入決策塊694,在那里確定該命令的引起注意代碼是否等于“中斷復位”。如果不是,則進入決策塊696,確定新命令的引起注意代碼是否為立即命令。如果是,則進入決策塊700,這一塊將再簡要地描述;如果不是,則進入決策塊698,在那里確定新命令的引起注意代碼是否是SCB。如果是,則進入決策塊702,這也將再簡要描述;如果不是,則進入塊672,繼續(xù)前面解釋的過程。
如果在決策塊694確定該命令的引起注意代碼等于“中斷復位”則進入決策塊700,在那里確定命令接口端口中的命令的位7-0中的立即命令代碼是否有效。如果該命令是無效的,則進入塊672并繼續(xù)前面解釋過的過程。如果該命令有效,則進入決策塊702,在那里確定在引起注意端口的設備標識符是否有效。如果不是,則進入塊671并進行前面解釋過的過程。如果是,則進入決策塊704在那里確定該設備是否處于“可得到”狀態(tài)。如果不是,則進入塊7706,在那里把回送代碼設為“拒絕”。具體的拒絕代碼為“設備不可得到”,如塊708所示。然后返回塊676繼續(xù)前面解釋過的過程。
如果在決策塊704確定該設備處于“可得到”狀態(tài),現(xiàn)在參考圖25A,繼續(xù)進入決策塊710,在那里確定該設備是否處于“忙”狀態(tài)。如果是,則進入決策塊712,在那里確定這個新命令是否是“中斷復位”。如果不是,則進入決策塊714以確定新命令是否為“掛起”。如果不是,則在塊716把回送碼設為拒絕”,其理由為“設備忙”,如塊718所示。然后返回圖24B中的塊676,繼續(xù)前面解釋過的過程。
如果在決策塊712或714中有一個的決策結果為“是”,則進入決策塊720,在那里確定當前該設備是否在執(zhí)行一個SCB。如果不是,則返回塊716去繼續(xù)前面解釋過的過程。如果是,則進入決策塊722。如果在決策塊710確定設備“不忙”,則邏輯過程也進入決策塊722,在決策塊722確定該新命令的引起注意代碼是否為“中斷復位”。如果是,則返回圖24A的塊686。如果不是,則進入決策塊724,在那里確定該設備中斷排隊是否滿。如果是,則譯碼處理過程在塊726中把它的回送代碼設置為“拒絕”。具體拒絕代碼為“中斷排隊滿”,如塊728中所示。然后返回圖24B中的塊676去繼續(xù)前面解釋過的過程。
如果在決策塊724確定設備中斷排隊不滿,則進入決策塊73730,在那里確定新命令是否是“掛起”。如果是,則返回圖24A中的塊686并繼續(xù)前面解釋過的過程。如果不是,則新命令必定是SCB,如塊732所示。接下來,在決策塊734確定設備狀態(tài)是否允許SCB的執(zhí)行。如果是,則返回圖24A中的塊688,并繼續(xù)前面解釋過的過程。如果不是,則在塊736中把回送代碼置成“拒絕”。拒絕原因是“SCB執(zhí)行被拒絕”。然后返回圖24B中的塊676去繼續(xù)前面解釋過的過程。
總之,已經(jīng)描述了在主計算機和至少一個可能有附加設備的智能子系統(tǒng)之間傳送信息的命令接口。以主處理器發(fā)送的信息包括直接命令和間接命令,后者如子系統(tǒng)控制塊(SCB)的地址,該SCB中包含了指定要由識別出的一個智能子系統(tǒng)或設備來完成的操作。從一個智能子系統(tǒng)傳回主處理器的信息包括“忙信號”和狀態(tài)信號。忙信號指示出一個智能子系統(tǒng)的命令接口端口和引起注意端口是否“忙”而狀態(tài)信號指出這個智能子系統(tǒng)及其附加設備的操作狀態(tài)。
權利要求
1.一種數(shù)據(jù)處理系統(tǒng),包括主系統(tǒng)和至少一個可能有附加設備的子系統(tǒng),其特點是一個命令接口,用于在所述主系統(tǒng)和所述一個子系統(tǒng)之間傳送信息,該命令接口包括第一端口,用于接受來自所述主系統(tǒng)的直接命令或間接命令,這些命令指出要由該子系統(tǒng)或一個附加設備來完成的操作的類型;和第二端口,用于接收來自所述主系統(tǒng)的代碼,指出在所述第一端口接受的是所述直接命令還是所述間接命令,還指出是所述一個子系統(tǒng)還是一個附加設備要去執(zhí)行在所述第一端口接受的命令。
2.如權利要求1所述的數(shù)據(jù)處理系統(tǒng),其特點是所述直接命令是一個立即命令,它包含了所述一個子系統(tǒng)或一個設備立即去執(zhí)行該命令所必須的全部信息;而間接命令是一個子系統(tǒng)控制塊(SCB)的地址,子系統(tǒng)要從主系統(tǒng)取出這個SCB供其后去執(zhí)行。
3.權利要求2中的數(shù)據(jù)處理系統(tǒng),其特點是在所述第二端口接收的代碼不僅指示出是否為間接命令,還編碼指出所接收的是一組不同的立即命令中的哪一個。
4.權利要求2中的數(shù)據(jù)處理系統(tǒng),其特點是有一個第三端口用于從所述一個子系統(tǒng)向所述主系統(tǒng)提供代碼,以指出所述三端口(*)和第二端口是否為“忙”,還指出是否一個子系統(tǒng)在接受或拒絕命令。
5.權利要求4中的數(shù)據(jù)處理系統(tǒng),其特點是有一個第四端口用于從所述主系統(tǒng)向所述子系統(tǒng)提供控制信號,所述控制信號包括一個子系統(tǒng)復位信號。
6.權利要求5中的數(shù)據(jù)處理系統(tǒng),其特點是有一個第五端口,用于從所述子系統(tǒng)向所述主系統(tǒng)提供一個代碼,指出是所述一個子系統(tǒng)還是一個設備在向主系統(tǒng)提供中斷。
7.一個計算機系統(tǒng),包括一個具有系統(tǒng)存貯器的主處理器,以及至少一個可能有附加設備的智能子系統(tǒng),其特點是在每個這類子系統(tǒng)中有一個命令接口,用于在所述主處理器和所述一個智能子系統(tǒng)之間傳送信息,所述命令接口包括一個命令接口端口,用于從所述主處理器接受一個直接命令或一個間接命令,這些命令指出了要由一個智能子系統(tǒng)或一個附加設備所完成的操作的類型;以及一個引起注意端口,用于從所述主處理器接受一個代碼,它的第一部分指出在所述命令接口端口接受的是所述直接命令還是所述間接命令;代碼的第二部分指出是一個智能子系統(tǒng)還是一個附加設備要去執(zhí)行在所述命令接口端口接受的命令。
8.權利要求7中的計算系統(tǒng),其特征是所述直接命令是一個立即命令,它包含了該子系統(tǒng)立即去執(zhí)行該命令所必須的全部信息;而間接命令是存貯在所述系統(tǒng)存貯器中的一個子系統(tǒng)控制塊(SCB)的地址,該子系統(tǒng)從主處理器取出這個SCB供其后執(zhí)行。
9.權利要求8中的計算系統(tǒng),其特點是在所述引起注意端口接受的代碼不僅指出是否是間接命令,還編碼指出接受的是一組不同類型立即命令中的哪一個。
10.權利要求9中的計算系統(tǒng),其特點是所述SCB包括主處理器要求子系統(tǒng)從系統(tǒng)存貯器取出的至少一個另外的SCB的地址
11.權利要求10中的計算系統(tǒng),其特點是所述SCB包括一個地址,它指向一個間接表,在表中有一組指示字,指向所述系統(tǒng)存貯器中的若干個緩存區(qū),緩存區(qū)中包含了為執(zhí)行SCB包含的各操作所必需的數(shù)據(jù)。
12.權利要求10中的計算系統(tǒng),其特點是所述SCB包括系統(tǒng)存貯器中一個終止狀態(tài)塊(TSB)的地址,這個TSB地址被子系統(tǒng)或一個設備用作存貯所述SCB的完成狀態(tài)或終止狀態(tài)的地點點。
13.一個計算系統(tǒng)由下列各項組成一個主處理器;一個系統(tǒng)存貯器,用于在一組可尋址空間存貯信息;至少一個可能帶有附加設備的智能子系統(tǒng)。其特點是一個命令接口,用于在所述主處理器和所述一個智能子系統(tǒng)之間傳遞信息。所述命令接口包括一個命令接口寄存器,所述主系統(tǒng)向它寫入一個直接命令,該直接命令包含了所述一個智能子系統(tǒng)去立即執(zhí)行該命令所必需的全部信息;或者所述主系統(tǒng)向它寫入一個間接命令,該間接命令是存貯在所述系統(tǒng)存貯器中一個可尋址區(qū)間的子系統(tǒng)控制塊(SCB)的地址;一個引起注意寄存器,所述主處理器向它寫入一個代碼,其第一部分指出是所述直接命令還是所述間接命令被寫入了所述命令接口寄存器,其第二部分指出是所述一個智能子系統(tǒng)還是一個附加設備要去執(zhí)行寫入所述命令接口寄存器的命令;以及包括在所述一個智能子系統(tǒng)中的手段,用于讀出寫在所述引起注意寄存器中的代碼及寫入所述命令接口寄存器中的命令,若為直接命令,則根據(jù)寫入所述引起注意寄存器的代碼的第二部分的指示,由所述智能子系統(tǒng)或一個附加設備來直接執(zhí)行;如果是間接命令,則根據(jù)所指出的SCB地址直接訪問所述系統(tǒng)存貯器,再根據(jù)寫入所述引起注意寄存器中的代碼的第二部分的指示,由所述智能子系統(tǒng)或一個附加設備來執(zhí)行這個SCB。
14.權利要求13中的計算機系統(tǒng),其特點是在所述引起注意寄存器接受的代碼不僅指出是否是間接命令,還編碼指出接受的是不同立即命令類型中的哪一個。
15.權利要求13中的計算機系統(tǒng),其特點是有一個命令忙/狀態(tài)寄存器,它包括一個“忙”位,為響應所述主處理器對引起注意端口的寫入,該位被置成第一狀態(tài),當已經(jīng)響應了寫入所述命令接口寄存器的命令時,該位被置成第二狀態(tài);命令忙/狀態(tài)寄存器還包括一個“拒絕”位,當初始命令被寫入所述命令接口寄存器或所述引起注意寄存器時,該位被置成第一狀態(tài),用于禁止后后續(xù)命令向所述命令接口寄存器或所述引起注意寄存器的寫入。在初始命令已經(jīng)被處理了之后,該位被置成第二狀態(tài),以允許后續(xù)命令被寫入所述命令接口寄存器和所述引起注意寄存器。
16.權利要求15中的計算機系統(tǒng),其特點是有一個中斷狀態(tài)寄存器,所述一個智能子系統(tǒng)可以向其中寫入標識代碼和關于該智能子系統(tǒng)執(zhí)行來自所述主處理器的命令的完成情況的信息,而主處理器包括有讀取所述中斷狀態(tài)寄存器內(nèi)容的手段。
17.權利要求16中的計算機系統(tǒng),其特點是有一個子系統(tǒng)控制寄存器,所述主處理器向其中寫入信息來控制子系統(tǒng)功能,所述一個智能子系統(tǒng)讀出這一信息并對它作出響應。
18.權利要求17中的計算機系統(tǒng),其特點是所述SCB包括至少一個其它SCB的地址,那個其它的SCB也是主處理器要該智能子系統(tǒng)從系統(tǒng)存貯器中取出的。
19.權利要求18中的計算機系統(tǒng),其特點是SCB包括一個地址,指向一個間接表,表中有一組指示字,指向所述系統(tǒng)存貯器中的若干緩存區(qū),在這些緩存區(qū)中含有要完成SCSCB中所包含的操作必須的數(shù)據(jù)。
20.權利要求17中的計算機系統(tǒng),其特點是SCB中包括一個在系統(tǒng)存貯器中終止狀態(tài)塊(TSB)的地址,這個TSB地址被該子系統(tǒng)或一個設備用于存放給定SCB的完成或終止狀態(tài)。
21.操作一個數(shù)據(jù)處理系統(tǒng)的方法,該系統(tǒng)包括一個主系統(tǒng)和至少一個可能帶有附加設備的子系統(tǒng),還有一個在所述主系統(tǒng)和所述一個子系統(tǒng)之間傳遞信息的命令接口。該方法以下述步驟為特征從所述主系統(tǒng)向所述命令接口上的第一端口提供一個直接命令或間接命令,這些命令指出要由所述子系統(tǒng)或一個附加設備完成的操作類型;以及從所述主系統(tǒng)向所述命令接口的第二端口提供一個代碼,它指出在所述第一端口接受的是所述直接命令還是所述間接命令,該代碼指出是所述子系統(tǒng)還是某個附加設備要去完成在所述第一端口接受的命令。
22.權利要求21中的方法,其特征在于所述直接命令是一個立即命令,它包含為所述子系統(tǒng)或某一設備要立即執(zhí)行該命令所必須的全部信息,而間接命令是一個子系統(tǒng)控制塊(SCB)的地址,子系統(tǒng)從主系統(tǒng)中取出這個SCB供其后執(zhí)行。
23.權利要求22中的方法,其特點在于在所述第二端口接受的代碼不僅指出是否為間接命令,還編碼指出是一組不同立即命令類型中的哪一個。
24.權利要求22中的方法,以下述步驟為其特征從所述一個子系統(tǒng)向所述命令接口上的第三個端口提供一個代碼由所述主系統(tǒng)使用,該代碼指示出所述一個子系統(tǒng)是否在接受或拒絕命令。
25.權利要求24中的方法,以下述步驟為特征從所述子系統(tǒng)向所述命令接口的第四個端口提供所述子系統(tǒng)需要的控制信號,這些控制信號包括一個子系統(tǒng)復位信號。
26.權利要求25中的方法,以下述步驟為特征從所述一個子系統(tǒng)向所述命令接口的第五個端口提供一個代碼,指出是哪些設備正在向所述主系統(tǒng)提供中斷。
27.操作一個計算系統(tǒng)的方法,該系統(tǒng)包括一個具有系統(tǒng)存貯器的主處理器,至少一個可能帶有附加設備的智能子系統(tǒng),以及一個命令接口,用于在所述主處理器和所述智能子系統(tǒng)之間傳送信息,該方法以下步驟為特點從所述主處理器向所述命令接口上的命令端口提供一個直接命令或間接命令,這些命令指出要由所述智能子系統(tǒng)或某一附加設備完成的操作的類型;以及從所述主處理器向所述命令接口的引起注意端口提供一個代碼,它指出是所述直接命令還是所述間接命令在所述命令接口端口被接受,還指出是所述智能子系統(tǒng)還是某個附加設備要去完成在所述命令接口端口的接受命令。
28.權利要求27中的方法,其特點是所述直接命令是一個立即命令,它包含為所述一個智能子系統(tǒng)或附加設備要立即執(zhí)行該命令所必需的全部信息,而間接命令是一個子系統(tǒng)控制塊(SCB)的地址,所述一個智能子系統(tǒng)從系統(tǒng)存貯器中取出這個SCB供其后執(zhí)行。
29.權利要求28中的方法,以如下步驟為其特征從所述一個智能子系統(tǒng)向所述命令接口上的命令忙/狀態(tài)端口提供一個代碼,指出所述給定智能子系統(tǒng)是否是在接受或拒絕命令。
30.權利要求29中的方法,以如下步驟為其特征從所述主處理器向所述命令接口的子系統(tǒng)控制端口提供所述給定智能子系統(tǒng)使用的控制信號,所述控制信號包括子系統(tǒng)復位信號。
31.權利要求30中的方法,以下述步驟為其特征從所述一個智能子系統(tǒng)向中斷狀態(tài)端口提供代碼以提供給所述主處理器,該代碼指出是所述智能子系統(tǒng)還是一個設備在向所述主處理器提供中斷,還指出該中斷的理由。
32.權利要求28中的方法,其特點是所述SCB包括至少一個其他SCB的地址,那個其他的SCB是主處理器要該智能子系統(tǒng)從系統(tǒng)存貯器中取出的。
33.權利要求32中的方法,其特點是所述SCB包括一個地址,指向一個間接表,表中有一組指示字,指向所述系統(tǒng)存貯器中的若干緩存區(qū),在這些緩存區(qū)中含有要完成SCB中包含的操作所必需的數(shù)據(jù)。
34.權利要求28中的方法,其特點是所述SCB包括一個在系統(tǒng)存貯器中終止狀態(tài)塊(TSB)的地址,這個TSB地址被該子系統(tǒng)或一個設備用于存放給定SCB的完成或終止狀態(tài)。
35.操作一個計算機系統(tǒng)的一種方法,該系統(tǒng)包括一個主處理器、一個系統(tǒng)存貯器用于在多個可尋址區(qū)間存貯信息,至少一個可能帶有若干附加設備的智能子系統(tǒng),以及一個命令接口用于在所述主處理器和所述一個智能子系統(tǒng)之間傳送信息。該方法以下述步驟為特征由所述主處理器向所述命令接口中的一個命令接口寄存器提供一個直接命令或一個間接命令,直接命令包含為所述智能子系統(tǒng)立即執(zhí)行該命令所必需的全部信息,間接命令是存貯在所述系統(tǒng)存貯器中的可尋址分區(qū)之一的一個子系統(tǒng)控制塊(SCB)的地址;由所述主處理器向所述命令接口中的引起注意寄存器提供一個代碼,它的第一部分指出提供給所述命令接口寄存器的是所述直接命令還是間接命令,該代碼的第二部分指出是所述智能子系統(tǒng)還是某個附加設備要去執(zhí)行由所述命令接口寄存器提供的命令;以及由所述一個智能子系統(tǒng)讀出提供給所述引起注意寄存器的代碼,讀出提供給所述命令接口寄存器的命令,然后根據(jù)所述引起注意寄存器中寫入的代碼的第二部分的指示,由所述智能子系統(tǒng)或某一附加設備來直接執(zhí)行一個直接命令;如果是一個間接命令,則按所指出的SSCB地址直接訪問所述系統(tǒng)存貯器,并根據(jù)所述引起注意寄存器中寫入的代碼的第二部分的指示,由所述智能子系統(tǒng)或某一附加設備來執(zhí)行該SCB。
36.權利要求35中的方法,并以下述步驟為特征為響應正在由所述主處理器向引起注意寄存器提供一個命令,將所述命令接口中的命令忙/狀態(tài)寄存器中的一個忙位置成第一狀態(tài)當提供給所述命令接口寄存器的命令已經(jīng)得到響應之后將該忙位置成第二狀態(tài);以及當一個初始命令被提供給所述命令接口寄存器或引起注意寄存器時,對所述命令忙/狀態(tài)寄存器中的一個“拒絕”位置成第一狀態(tài),以禁止向所述命令接口寄存器或所述引起注意寄存器提供后續(xù)命令,而在初始命令已經(jīng)被處理之后,對該“拒絕位”置成第二狀態(tài),以允許后續(xù)命令提供給所述命令接口寄存器和所述引起注意寄存器。
37.權利要求36中的方法,以下述步驟為特征由所述一個智能子系統(tǒng)向所述命令接口中的一個中斷狀態(tài)寄存器提供標識碼和關于來自所述主處理器的命令被所述智能子系統(tǒng)完成情況的信息,所述主處理器讀取這個中斷狀態(tài)寄存器的內(nèi)容。
38.權利要求37中的方法,以下述步驟為特征由所述主處理器向所述命令接口中的子系統(tǒng)控制寄存器提供控制子系統(tǒng)功能的信息,該信息由所述智能子系統(tǒng)讀出和作出響應。
39.權利要求38中的方法,其特點是所述SCB包括至少一個其他SCB的地址,那個其他的SCB是主處理器要該智能子系統(tǒng)從系統(tǒng)存貯器中取出的。
40.權利要求39中的方法,其特點是所述SCB包括一個地址,指向一個間接表,表中有一組指示字,指向所述系統(tǒng)存貯器中的若干緩存區(qū),在這些緩存區(qū)中含有要完成SCB中包含的操作所必需的數(shù)據(jù)。
41.權利要求35中的方法,其特點是所述SCB包括一個在系統(tǒng)存貯器中終止狀態(tài)塊(TSB)的地址,這個TSB地址被該子系統(tǒng)或一個設備用于存放給定SCB的完成或終止狀態(tài)。
42.操作一個計算機系統(tǒng)的方法,該系統(tǒng)包括一個主處理器和至少一個可能帶有若干附加設備的子系統(tǒng),以及一個在所述主處理器與所述一個子系統(tǒng)之間傳遞信息的命令接口,該命令接口包括一個命令接口端口(它在從所述主處理器接受命令時處于活動(active)狀態(tài))、一個引起注意端口(當從所述主處理器接受一個代碼以指示在所述命令接口端口接受命令的是所述智能子系統(tǒng)還是一個設備的時候,該端口處于活動狀態(tài))、一個命令忙/狀態(tài)端口(它包括一個““忙”位和一個“拒絕”位)以及一個子系統(tǒng)控制端口(它包括一個子系統(tǒng)復位位和一個拒絕狀態(tài)復位位)。該方法以下述步驟為特點為響應所述引起注意端口處于活動狀態(tài),設置所述命令忙/狀態(tài)端口的忙位為“通(ON)”狀態(tài),否則所述子系統(tǒng)控制端口的子系統(tǒng)復位位處于“通(ON)”狀態(tài);為響應所述子系統(tǒng)控制端口處于“通(ON)”狀態(tài),設置所述命令忙/狀態(tài)端口的拒絕位為“通(ON)”狀態(tài),否則所述子系統(tǒng)控制端口的拒絕狀態(tài)復位位處于“通(ON)”狀態(tài)。
43.操作一個計算機系統(tǒng)的一種方法,該系統(tǒng)包括一個主處理器和至少一個可能帶有附加設備的子系統(tǒng),以及一個用于所述主處理器和所述一個子系統(tǒng)之間傳遞信息的命令接口,該命令接口包括一個命令接口端口(它在從所述主處理器接受命令時處于活動狀態(tài))、一個引起注意端口(當從主處理器接受一個代碼來指示在所述命令接口端口接受命令的是所述一個智能子系統(tǒng)還是一個附加設備)、以及一個子系統(tǒng)控制端口(它包括使子系統(tǒng)復位和使子系統(tǒng)能或不能中斷的控制)。該方法以下述步驟為特征等待所述主處理器去寫所述命令接口端口、所述引起注意端口和所述子系統(tǒng)控制端口之一;使不能來自主處理的中斷,從而使所述主處理器能寫入所述命令接口端口、所述引起注意端口和所述子系統(tǒng)控制端口;確定是否是向所述子系統(tǒng)控制端口寫,如果是,則處理對所述子系統(tǒng)控制端口的寫;如果不是,則,確定是否是向所述命令接口端口寫,如果是,則處理所述寫;如果不是,則處理向引起注意端口寫。
44.權利要求44的方法,其特點是對于寫所述命令接口端口的處理包括以下步驟確定是否在處理一個先前向所述命令接口端口寫入,如果是,則忽略當前正在被接受的命令;如果不是,則,處理當前正在接受的命令。
45.權利要求44的方式,其特點是對引起注意端口寫的處理包括如下步驟確定是否正在處理一個先前的向所述引起注意端口的寫入,如果是,則忽略當前正在被接受的命令,如果不是,則,處理當前正在接受的命令。
46.權利要求45的方法,以下述步驟為特征在處理了向所述子系統(tǒng)控制端口或所述命令接口端口或所述引起注意端口的寫入之后,使能由所述主處理器中斷。
全文摘要
一個命令接口包括若干端口用于在一個主處理器和一個可能帶有若干附加設備的智能子系統(tǒng)之間傳遞信息,一個命令接口端口從主處理器接受一個直接命令或間接命令,這些命令指出要由該子系統(tǒng)或某一附加設備完成的操作的類型。一個引起注意端口從主處理器接受一個代碼,它指出在命令接口端口接受的是直接命令還是間接命令,它還指出是這個智能子系統(tǒng)還是一個設備要去執(zhí)行該命令。一個命令忙/狀態(tài)端口從該智能子系統(tǒng)接受一個代碼。
文檔編號G06F13/12GK1048938SQ90103808
公開日1991年1月30日 申請日期1990年5月28日 優(yōu)先權日1989年6月9日
發(fā)明者弗朗西斯·邁克爾·博內(nèi)維托, 道格拉斯·羅德里克·奇澤姆, 薩邁·戴維斯·多茲, 迪魯維克昂阿·M·德薩伊, 歐內(nèi)斯特·納爾遜·曼德斯, 安德魯·博伊斯·麥克尼爾, 理查德·尼爾·門德爾斯奧 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
临海市| 琼结县| 五华县| 马边| 海城市| 瑞金市| 左云县| 长泰县| 府谷县| 丰镇市| 铁力市| 哈尔滨市| 合山市| 松原市| 察隅县| 偏关县| 平安县| 陈巴尔虎旗| 乌拉特前旗| 江油市| 南汇区| 米易县| 嵊州市| 潞城市| 永州市| 莎车县| 汝城县| 曲麻莱县| 高邑县| 大荔县| 林西县| 上饶县| 类乌齐县| 屏山县| 广南县| 苍南县| 东乡族自治县| 视频| 安福县| 菏泽市| 曲周县|