專利名稱:多中央處理機(jī)互鎖裝置的制作方法
本發(fā)明總的來說涉及用于數(shù)據(jù)通信的裝置,特別是涉及無論局部區(qū)域網(wǎng)絡(luò)(LAN)體系結(jié)構(gòu)如何,都可以彼此通信的計(jì)算機(jī)的LAN。
在科學(xué)和商業(yè)多種用途中,對處理數(shù)據(jù)的數(shù)字計(jì)算機(jī)的不斷增長的使用,已經(jīng)把數(shù)據(jù)的容量擴(kuò)大到多個計(jì)算機(jī)通常都需要的程度,每個計(jì)算機(jī)專用于一個不同的任務(wù),為了完成它們各自的任務(wù),需要在計(jì)算機(jī)之間進(jìn)行通信。過去計(jì)算機(jī)用于處理某種類型的事務(wù)。在七十年代初期多數(shù)計(jì)算機(jī)成批地處理事務(wù)。在計(jì)算技術(shù)的早期,人們論及成批處理時,一般看成對成組的穿孔卡進(jìn)行處理。每個卡是一件事務(wù),計(jì)算機(jī)讀成批的卡,并成批地處理信息。在六十年代,人們開始研討交互計(jì)算,利用交互計(jì)算可以構(gòu)成程序,以便逐一地處理事務(wù),而不是成批地處理事務(wù)。通常在象打字機(jī)那樣的稱為終端的數(shù)據(jù)輸入裝置上產(chǎn)生交互處理。讀卡、磁帶或磁盤并然后把數(shù)據(jù)成批地發(fā)送給計(jì)算機(jī)的成批處理終端,通常叫作遠(yuǎn)程作業(yè)輸入終端或遠(yuǎn)程成批處理終端。在集中式或分布式網(wǎng)絡(luò)中可以進(jìn)行成批處理或交互處理。集中式網(wǎng)絡(luò)完全依靠由至少一個計(jì)算機(jī)構(gòu)成的中央計(jì)算設(shè)備,而分布式網(wǎng)絡(luò)則在一個計(jì)算設(shè)備和另一個計(jì)算設(shè)備之間分配任務(wù)。在網(wǎng)絡(luò)中每個智能實(shí)體叫作一個節(jié)點(diǎn)。一些節(jié)點(diǎn)是計(jì)算機(jī),另一些節(jié)點(diǎn)是終端,而且還有其它一些節(jié)點(diǎn)可以是某種類型的通信裝置??梢杂枚喾N方式構(gòu)成網(wǎng)絡(luò),并且能夠由單一的通信系統(tǒng)對至少兩個同時工作的計(jì)算機(jī)網(wǎng)絡(luò)提供通信。有多種類型的網(wǎng)絡(luò)結(jié)構(gòu),下面列出了一些比較通用的網(wǎng)絡(luò)1.點(diǎn)對點(diǎn)網(wǎng)絡(luò)點(diǎn)對點(diǎn)網(wǎng)絡(luò)是最簡單的網(wǎng)絡(luò),由一臺計(jì)算機(jī)、通信線路和一個終端或在該線路另一端的另一臺計(jì)算機(jī)構(gòu)成。
2.多點(diǎn)網(wǎng)絡(luò)多點(diǎn)網(wǎng)絡(luò)是點(diǎn)對點(diǎn)網(wǎng)絡(luò)的擴(kuò)展,使用多條點(diǎn)對點(diǎn)鏈路把站彼此連接起來。
3.星形網(wǎng)絡(luò)星形網(wǎng)絡(luò)是集中式網(wǎng)絡(luò),其中遠(yuǎn)程站通過各自的點(diǎn)對點(diǎn)鏈路饋送到一個唯一的完成主要計(jì)算的地點(diǎn)。
4.環(huán)形網(wǎng)絡(luò)環(huán)形網(wǎng)絡(luò)以閉環(huán)方式連接網(wǎng)絡(luò)節(jié)點(diǎn),每個節(jié)點(diǎn)都鏈接到右面和左面鄰近的節(jié)點(diǎn)上。
5.總線結(jié)構(gòu)網(wǎng)絡(luò)總線網(wǎng)絡(luò)邏輯上是用從一根中央主干向外伸展的鏈路,例如分路和支路等構(gòu)形的。當(dāng)信號通過總線時,每個連接的節(jié)點(diǎn)都收聽帶有目的地址的信號。典型的總線系統(tǒng)是Ethernet(以太網(wǎng)絡(luò))和實(shí)質(zhì)上所有的寬帶系統(tǒng)。
6.分級網(wǎng)絡(luò)在分級網(wǎng)絡(luò)中,一些計(jì)算機(jī)依次饋送到其它一些計(jì)算機(jī),而這些計(jì)算機(jī)又依次饋送到別的計(jì)算機(jī)。用作遠(yuǎn)程終端設(shè)備的計(jì)算機(jī)可以具有獨(dú)立處理能力,并利用高級的或低級的資源,如信息或其它需要的資源。
這些基本類型的網(wǎng)絡(luò)即可以是覆蓋長距離的全局網(wǎng)絡(luò)或?qū)掗焻^(qū)域網(wǎng)絡(luò)(WAN),也可以是覆蓋相對較短距離的局部區(qū)域網(wǎng)絡(luò)(LAN),例如在一兩個建筑物中的計(jì)算機(jī)。
雖然發(fā)送的數(shù)字?jǐn)?shù)據(jù)可以在若干毫秒內(nèi)容易地越過整個大陸,但是在建筑物中要傳送最后大約一英里,有時卻要花費(fèi)更長的時間。因此,對以覆蓋距離為0.1至10公里的局部區(qū)域網(wǎng)絡(luò)(LANs)的形式進(jìn)行數(shù)據(jù)局部分配中出現(xiàn)的這個瓶頸問題,提出了多種解決方案,這些解決方案能以每秒100千位至10兆位或甚至更高的速率發(fā)送數(shù)據(jù)。局部區(qū)域網(wǎng)絡(luò)(LAN)上的每個終端節(jié)點(diǎn)都可以與其它每個節(jié)點(diǎn)通信,并且該網(wǎng)絡(luò)不需要中央節(jié)點(diǎn)或中央處理機(jī)。在采用這些網(wǎng)絡(luò)之前,操作來自不同賣方的設(shè)備的辦公室工作人員必須設(shè)法彼此連接成一個系統(tǒng),在該系統(tǒng)中在各種終端之間沒有一個公共接口。近來采用的最突出的LANs是Xerox的Ethernet,一種基帶系統(tǒng)。(基帶系統(tǒng)直接在媒體上發(fā)送數(shù)據(jù)信號,而寬帶系統(tǒng)要在調(diào)制載有數(shù)據(jù)信號的甚高射頻或超高射頻載波之后才能在通信媒體上發(fā)送。)Ethernet以每秒10兆位的速度發(fā)送數(shù)據(jù),最大距離為2.5公里,該網(wǎng)絡(luò)不能用于音頻或視頻的用途。
另一方面,來自Wang Laboratories(王氏實(shí)施室)的WangNet(王氏網(wǎng)絡(luò))是一種寬帶拓?fù)浣Y(jié)構(gòu)的實(shí)例,WangNet可以適應(yīng)所有音頻、數(shù)據(jù)和視頻三種用途,其速度與EtherNet的速度相等。WangNet的帶寬覆蓋10至350兆赫的范圍。WangNet還采用了使更多的節(jié)點(diǎn)連接到更長距離電纜上的分支樹的拓?fù)浣Y(jié)構(gòu)。
美國加利福尼亞州圣約瑟市的Corvus系統(tǒng)公司推銷OMNINET(全網(wǎng)絡(luò)),OMNINET是一種建立在雙心絞合線上的總線拓?fù)浣Y(jié)構(gòu),其目的集中在用于個人計(jì)算機(jī)的連接網(wǎng)絡(luò)。OMNINET以每秒1兆位的速率發(fā)送數(shù)據(jù),并且可以適應(yīng)直到63APPle Ⅱ型計(jì)算機(jī)。計(jì)算機(jī)可以共享1至16個軟磁盤存儲器,這樣就可以把存儲器擴(kuò)充到5至10兆字節(jié)。
還有其它的LAN的可供選擇的方案,例如來自網(wǎng)絡(luò)系統(tǒng)公司的HYPER Channel(超信道);NET/ONE;ARC和其它方案。
因?yàn)檫@些基帶和寬帶系統(tǒng)都是建立在專有的不同結(jié)構(gòu)上,所以需要用于連接設(shè)備的標(biāo)準(zhǔn)。為了避免增加接口,IEEE(電氣和電子工程師學(xué)會)的標(biāo)準(zhǔn)委員會設(shè)立了一個分會,正式通過用于終端和電纜之間的接口裝置的規(guī)格,和用于通過電纜存取數(shù)據(jù)以及數(shù)據(jù)編碼方案的邏輯協(xié)議。另一個組織-國際標(biāo)準(zhǔn)協(xié)會(ISO)也特設(shè)一個委員會研究網(wǎng)絡(luò)設(shè)備的兼容性,最后導(dǎo)致公布了開放式系統(tǒng)互連參考模式(OSI)。在兼容性方面,開放式系統(tǒng)是指一種可以開放地用于來自各個竟?fàn)幹圃焐痰脑O(shè)備的網(wǎng)絡(luò)模式。OSI模式裝置接成網(wǎng)絡(luò)的結(jié)果是分成各層的功能。在OSI模式中有7層,被編號為第1層至第7層。
第1層是物理層,確定網(wǎng)絡(luò)的電氣和機(jī)械特性,例如使用調(diào)制技術(shù)的媒體、網(wǎng)絡(luò)工作的頻率和使用的電壓。
第2層是數(shù)據(jù)鏈路層,確定用于共享連接各種節(jié)點(diǎn)的物理媒體的存取策略。通用的LAN技術(shù)包括載波讀出多路存取爭用檢測(CSMA/CD)和標(biāo)記傳輸方案。此外,用于放置網(wǎng)絡(luò)特定信息和數(shù)據(jù)包,例如節(jié)點(diǎn)尋址也是第2層的功能。
第3層,并非所有LAN都需要第3層,但是在位于互連的LAN上的節(jié)點(diǎn)之間需要路經(jīng)選擇機(jī)構(gòu)的網(wǎng)絡(luò)必須有第3層。在一個單獨(dú)的LAN上,每個節(jié)點(diǎn)都能收到傳播的數(shù)據(jù),因?yàn)橐环N特殊的連接法推斷出恰當(dāng)?shù)貙ζ鋵ぶ返哪切┌?,沒有必要進(jìn)行路徑選擇。
第4層是傳送層,處理可靠性和數(shù)據(jù)傳送的基本級。該層涉及信息流控制、錯誤處理和與信息包的發(fā)送和接收有關(guān)的問題。(信息包由用戶發(fā)出的數(shù)據(jù),加上網(wǎng)絡(luò)所需的,從一個網(wǎng)絡(luò)節(jié)點(diǎn)把用戶數(shù)據(jù)傳送到另一個網(wǎng)絡(luò)節(jié)點(diǎn)的任何信息構(gòu)成。)第5層是會話層,對LAN特別重要。當(dāng)兩個設(shè)備之間形成鏈路時,就建立了會話。因此會話層提供從至少兩個LAN連接或節(jié)點(diǎn)來的數(shù)據(jù)流的建立和終止。
第6層是表示層,該層進(jìn)行協(xié)議轉(zhuǎn)換、數(shù)據(jù)析取,并在該層發(fā)生對圖形命令的展開。
最后,第7層是應(yīng)用層。所有從第1層至第6層都是設(shè)計(jì)用來支援該層。電子報(bào)文系統(tǒng)、終端仿真能力和文件傳送程序都是可以在第7層進(jìn)行操作的軟件實(shí)例。
由于設(shè)備、網(wǎng)絡(luò)和標(biāo)準(zhǔn)的增加,因此就有必要具有一個局部區(qū)域控制器系統(tǒng),以便無論對哪種物理層局部區(qū)域網(wǎng)絡(luò)(LAN)的連接,與傳送層、網(wǎng)絡(luò)層和邏輯鏈路控制層相關(guān)的軟件都將是不用變更的、透明的,并且與兩側(cè)隔離,即與屬于Level6計(jì)算機(jī)系統(tǒng)(一種從市場上可以買到的由HoneyWell信息系統(tǒng)公司生產(chǎn)的計(jì)算機(jī)系統(tǒng)。)的控制器總線側(cè)隔離,又與屬于各種類型的LAN,例如Ethernet、標(biāo)記環(huán)路或標(biāo)記總線的控制器通信適配器側(cè)隔離。
更具體地說,需要設(shè)計(jì)一種局部區(qū)域網(wǎng)絡(luò)控制器(LANS),該控制器可以提供接口軟件,以支援傳送層、網(wǎng)絡(luò)層和邏輯鏈路控制層的軟件,以便當(dāng)對其進(jìn)行某種新型的LAN連接時,將不必變更這個軟件。并且該設(shè)計(jì)應(yīng)該達(dá)到使在使用Level6處理機(jī)硬件情況下,控制器的硬件接口對該層的軟件透明。因此,必須有LAN控制器的專用總線對通信層軟件從硬件的兩側(cè)進(jìn)行隔離,從而允許使用各種適配器去處理CSMA和Ethernet,或標(biāo)記環(huán)路,或標(biāo)記總線的LAN體系結(jié)構(gòu);并且將來數(shù)據(jù)必須能夠用于支援PBX適配器。
(可以從下列原始資料中獲得部分上述情報(bào)(1)“商業(yè)通信”,Nicholas Mokhott著,在1982年1月的IEEE Spectrum上發(fā)表;
(2)“大體系結(jié)構(gòu)中的局部區(qū)域網(wǎng)絡(luò)”,Thomas Wm.Madron著,1984年由Hayden圖書公司出版;
(3)“局部區(qū)域網(wǎng)絡(luò)入門”,David D.Clark、Kenneth T.Pogran和David P.Reed著,在197811月IEEE的Proceedings V01.66,No.11發(fā)表。)下面引用了與局部區(qū)域網(wǎng)絡(luò)(LNA)相關(guān)的一些典型的現(xiàn)有技術(shù)設(shè)備,但是這并不表示已經(jīng)對現(xiàn)有技術(shù)進(jìn)行了無遺漏的檢索,也不表示這就是最接近的現(xiàn)有技術(shù)。
(1)“多計(jì)算機(jī)通信系統(tǒng)”,Anil K.Agrawal及其他人發(fā)明,1985年1月8日發(fā)表,美國專利號4493021。
(2)“根據(jù)優(yōu)先權(quán)選擇接口的系統(tǒng)”,Pierre Austray及其他人發(fā)明,1984年11月27日發(fā)表,美國專利號4485436。
(3)“用于通信總線系統(tǒng)的端口邏輯”,Kapal;P.Eswaran及其他人發(fā)明,1981年9月29日發(fā)表,美國專利號4292623。
(4)“可擴(kuò)展和可壓縮的局部區(qū)域網(wǎng)絡(luò)系統(tǒng)”,David M.BTYant及其他人發(fā)明,1984年2月7日發(fā)表,美國專利號4430651。
本發(fā)明的主要目的是提供一種改進(jìn)的LAN控制器總線。
本發(fā)明的另一個目的是對LAN控制器的專用DMA直接存儲器存取)總線提供一種LAN控制器的接口。
本發(fā)明還有一個目的是提供一種專用總線,它不僅可以與連接到該專用總線的單元通信,而且還可以與連接到該專用總線的LANS通信。
根據(jù)本發(fā)明上述的和其它的目的,對LAN控制器提供一種專用總線,該總線使各種LAN能夠連接到LAN控制器。當(dāng)在該總線之外提供其它完整性和通信功能時,該總線允許連接各種計(jì)算機(jī)單元,例如Motoro/a的68000處理器。
適配器接口可以具有多達(dá)4個子插件。每個子插件有奇數(shù)的和偶數(shù)的插頭。設(shè)計(jì)這些插頭以便處理控制線路和數(shù)據(jù)線路。這些子插件是硬件裝置,利用這些子插件通過把LAN連接到專用總線上可以實(shí)現(xiàn)對磁盤、磁帶和存儲器等的通信。
在下文描述的最佳實(shí)施例中能實(shí)現(xiàn)本發(fā)明上述的以及其它的目的和特征。一些被認(rèn)為是本發(fā)明特征的新特征,不論是結(jié)構(gòu)還是操作方法,同其它的優(yōu)點(diǎn)一起,結(jié)合以下將能較好地加以理解。但是,每一張附圖僅僅用來解釋和說明,而不是作為本發(fā)明限度的解說,這一點(diǎn),也是應(yīng)加以理解的。
圖1為一個使用本發(fā)明的LAN系統(tǒng)的示意圖。
圖2為本發(fā)明的方塊圖。
圖3為本發(fā)明操作結(jié)構(gòu)的方塊圖。
圖4,圖表1和2為本發(fā)明分離總線特征的邏輯方塊圖。
圖5為本發(fā)明LAN控制器專用總線的邏輯方塊圖。
圖6為用在LAC適配器間的具體接口。
圖7為本發(fā)明的一個多CPU互鎖裝置的邏輯方塊圖。
圖8為LAC控制塊的示意圖,用于從主存儲器裝載/轉(zhuǎn)儲LAC軟件。
圖9為LAN控制塊的示意圖,用于啟動I/O指令。
圖10為一典型信箱區(qū)的示意圖,用它請求DMA操作,以便移動一數(shù)據(jù)塊。
圖11為用于發(fā)送信息的一個硬件格式示意圖。
圖12和13表示RAM中的暫存隊(duì)列。
圖14為LAC控制器中I/O調(diào)度處理的流程圖。
圖15和16表示LAC控制器的DMA程序的流程圖。
圖17為適配器中斷程序的流程圖,用于中斷LAC控制器。
圖18為一個適配器三個不同的MAC程序的流程圖。
圖19為LAN控制塊的LAC傳送流程的示意圖。
圖20為LAN控制塊的LAC接收流程的示意圖。
局部區(qū)域控制器子系統(tǒng)(LACS)是一個可編程的通信子系統(tǒng),它連到Honeywell Level6 Megabus(大總線)系統(tǒng),參見作為即時發(fā)明的授與同一個代理人的美國專利3,993,981,3,995,258;4,000,485;4,001,790和4,050,097。LACS包括以下通信部件設(shè)備(a)局部區(qū)域控制器(LAC)母插件;
(b)媒體存取控制器(MAC)和具體層次的適配器;
(c)中斷線耦合器(TCS);
(d)RF(射頻)調(diào)制-解調(diào)器。
本發(fā)明是關(guān)于上述頭兩項(xiàng)(即LAC和適配器)的闡明和描述。
LACS確定為能夠支持任何IEEE802局部區(qū)域網(wǎng)絡(luò)標(biāo)準(zhǔn)。LACS的設(shè)計(jì)是把Honeywell Level/LACS接口的交互作用減至最小,同時按照Level6(L6)專用硬件特性和LAN適配器接口隔離借助插件通信軟件工作的LACS。一個來自Bridge通信公司的商售通信內(nèi)核在LAC中用作操作系統(tǒng)(OS)。在本發(fā)明中“CS軟件”(通信服務(wù))指的是LAC-常駐軟件,它實(shí)現(xiàn)開放系統(tǒng)相互連結(jié)(OSI)鏈路,網(wǎng)絡(luò)和轉(zhuǎn)送層;“SM軟件”(系統(tǒng)管理層實(shí)例)指的是LAC-常駐軟件,它支持IEEE802系統(tǒng)管理功能。
雖然IEEE802標(biāo)準(zhǔn)不比標(biāo)準(zhǔn)數(shù)據(jù)鏈路接口(層3/層2)更高,所提供的Level6-到-LACS的接口如此靈活,以致于能容易地適用于支持更高的(即會話/轉(zhuǎn)送)層接口。
用作所有局部區(qū)域網(wǎng)絡(luò)(LAN)的LACS裝在一標(biāo)準(zhǔn)Honeywell Level6機(jī)箱中,同時要求在Megabus(大總線)系統(tǒng)上有一個槽,它將支持更大的Level6系統(tǒng)的32位地址總線。LAN適配器從LAC到LAN提供一個接口。適配器(一個子插件)包括一媒體存取控制器(MAC)。LAC為最多四個適配器子插件的固定提供保證。適配器有多種型式(即標(biāo)記總線MAC;CSMA/CD MAC;等。)。
*Megabus是Honeywell的注冊商標(biāo)。
中斷線耦合器(TCS)是商售型的(例如,寬帶方向耦合器、標(biāo)記環(huán)、Ethernet收發(fā)報(bào)機(jī))并都分別封裝成單元。寬帶使用的RF調(diào)制解調(diào)器也是分開封裝的。
由于它的支持相同型或不同型適配器的能力,LACS不僅能用于IEEE802 LAN與level6的聯(lián)結(jié),而且將能用作IEEE802 LANS之間的網(wǎng)間連接器,或者,對于寬帶LANS的情形,能用作為寬帶信道之間的橋接裝置。LACS其它方面的應(yīng)用可以是如用作LAN通信監(jiān)控/應(yīng)用記錄和網(wǎng)路控制。通信(CS)和系統(tǒng)管理(SM)軟件當(dāng)然適合于各種應(yīng)用。
圖1表示具有同Level6系統(tǒng)聯(lián)結(jié)的LACS的一個局部區(qū)域網(wǎng)絡(luò),用于工作站LAN存取以及用作LAN之間的網(wǎng)間連接器。
在圖1中,LAC101在其輸入/輸出(I/O)接口中為多至16個處理機(jī)的多處理機(jī)中心系統(tǒng)提供保證。LAC101為Level6(L6)系統(tǒng)102和LAN100提供聯(lián)結(jié),在那里L(fēng)AC101通過Megabus 103同L6系統(tǒng)102接口。此外LAC101起到至其它LANS例如至LAN104或Ethernet105的網(wǎng)間連接器作用。在Level6 CPU的控制下,它可以服務(wù)于其它通信需要,例如服務(wù)于新的多線控制器(NMLC)107,以及主機(jī)計(jì)算機(jī)系統(tǒng),例如DPS8 106。
在圖2,這里表示LAC101的更為詳細(xì)的方塊圖。一商售微處理機(jī)(MC68000)201聯(lián)到一微處理機(jī)總線(μ/P)200并通過適配器聯(lián)接210-213同適配器相聯(lián)。一商售RAM209耦合于DMA總線214,并通過總線耦合器206接到微處理器總線(μ/P)200。RAM實(shí)際上被分為兩部分一數(shù)據(jù)緩沖RAM和一程序RAM。分成兩部分的意向在于隨著程序RAM中軟件的執(zhí)行,允許在具有Level6存儲器或LAN適配器的數(shù)據(jù)緩沖RAM中同時直接存儲器存取(DMA)??偩€耦合器206為商售收發(fā)報(bào)機(jī)型74LS245,它把μ/P總線200同DMA總線214隔開,同時允許MC68000在每側(cè)的總線200和214同時獨(dú)立地工作,還允許微處理器到整個RAM202,209中的任何單元存取。
DMA控制器208是Motorola公司生產(chǎn)的商品68440控制器,它還是兩通道器件,其一個通道由微處理器201通過Megabus接口207執(zhí)行Level6主存儲器215和數(shù)據(jù)緩沖器RAM209之間的數(shù)據(jù)DMA傳送;另一個通道用于接收來自Megabus216的I/O指令信息,并將它傳送到數(shù)據(jù)緩沖器RAM209的一個暫存隊(duì)列,以便進(jìn)一步分析并安排固件或接口(IF)軟件。
定時器203的型號是9513,它是商售的Advanced Micro Devices公司生產(chǎn)的商品;它為LAC操作系統(tǒng)提供時基信號,為LAC軟件提供定時功能(圖中未示出)。
對于適配器的DMA功能度由在適配器它們本身確定的硬件來提供,適配器DMA通常在數(shù)據(jù)緩沖器RAM之內(nèi)或之外。
程序RAM202和數(shù)據(jù)緩沖器RAM209之間數(shù)據(jù)的傳送直接由MC68000微處理器201執(zhí)行,程序RAM202和主存儲器215(象在裝載/轉(zhuǎn)儲操作中一樣)之間數(shù)據(jù)的傳送用兩步進(jìn)行首先在微處理器201控制下在程序RAM202和數(shù)據(jù)緩沖器RAM209之間傳送,然后由DMA控制器208執(zhí)行數(shù)據(jù)緩沖器RAM209和主存儲器215之間的傳送。
圖3是用來進(jìn)一步了解操作系統(tǒng)(OS)的結(jié)構(gòu)關(guān)系,了解橋接器通信內(nèi)核OS以及接口(IF)軟件和硬件,雖然這對于本發(fā)明而言是沒有必要的。
圖3反映貫穿說明書所闡述的功能度,在圖中CS和SM軟件301,302不直接控制LAC硬件,而是接口,用接口通過IF軟件304處理和例行程序。IF軟件把CS和SM軟件同硬件的專有性能隔開,從而使進(jìn)一步重新實(shí)現(xiàn)硬件(例如,具有更大尺度LSI部分)不再需要影響軟件,所有LAC軟件裝載到LAC程序RAM202。
在詳細(xì)說明中,不論按照特定的軟件由送到它的信箱信息產(chǎn)生或是通常由于存在來自LAC硬件的中斷所產(chǎn)生,IF軟件認(rèn)為是由處理或中斷程序所組成。按照OS303的見解,這些IF“中斷程序”或者與IF信箱-產(chǎn)生過程(下面說明)相關(guān)聯(lián),或者是一個基本上只由一個中斷組成的程序。
IF軟件存儲器直接存儲器存取(MEMPMA)和輸入輸出調(diào)度(IODISP)程序已經(jīng)相聯(lián)結(jié),這些程序把異常事件或故障通知大總線層管理實(shí)體(MBLME)。MBLME依次把這些事件通知系統(tǒng)管理(SM)軟件;它通常還作為SM同這些程序之間的中間體。
對于每一個具體附加的適配器,IF軟件304媒體存取控制器(MAC)程序由MAC發(fā)射、接收和層管理程序組成。
對于LAN聯(lián)結(jié)(S),通信服務(wù)(CS)軟件301提供轉(zhuǎn)送、網(wǎng)絡(luò)和鏈路層功能,每一層具有一個同執(zhí)行類似于MBLME相似功能的層相聯(lián)結(jié)的層管理實(shí)體。
系統(tǒng)管理(SM)軟件提供全部控制以及通知LACS層管理實(shí)體的系統(tǒng)狀態(tài),同時在CPU中具有系統(tǒng)管理軟件。
操作系統(tǒng)/開放系統(tǒng)(OS)內(nèi)核軟件提供例如定時和控制處理調(diào)度以及通過信箱信息。對于各種程序調(diào)用,來自內(nèi)核的誤差響應(yīng)處理由CS和IF軟件送到內(nèi)核。
LAC還包括一些PROM(程控只讀存儲器)-常駐固件(在圖上未示出),它為QLTS(質(zhì)量邏輯測試),RAM裝載/轉(zhuǎn)儲以及基本的I/O指令提供保證。
進(jìn)程通信(下面將進(jìn)一步說明)是通過使用OS SENDMSG程序調(diào)用的信箱信息來完成的,它們都是裝置,依靠它們一個處理過程可以送一個信息或另一處理過程的請求服務(wù)。它們也是這樣的裝置,依靠它們異步事件的出現(xiàn)或異步服務(wù)的完成,對軟件將是顯而易見的,因此軟件處理能繼續(xù)著手其下一個步驟。調(diào)用程序?qū)z索送到它的信箱區(qū),軟件程序可以取得它們本身的信箱的ID(識別),它們也可以取得其它程序的公眾所知的注冊信箱的ID(識別)。
對于影響信箱隊(duì)列中信息相對位置的信箱信息,橋接器OS303提供若干優(yōu)先權(quán),可以利用的信息優(yōu)先權(quán)是URGENT、NORMAL、MUST、DELIVER和FAST。
LAN控制塊(LCB)(下面說明)是Level6Cpu和LACS之間進(jìn)行通信的主要交通工具,具有大總線的OS/SM軟件接口301、302是通過接收來自IF軟件I/O調(diào)度處理304的信箱信息以及通過送到IF軟件的信箱信息得到支持的。接收到的信箱信息基本上由至主存儲器215的LAN控制塊(LCBS)的指示字所組成。至存儲器DMA處理的信箱信息通常用來傳送主存儲器215和LAC數(shù)據(jù)緩沖器RAM209之間的數(shù)據(jù),或者用來讀入LCBS,或者用來寫狀態(tài)信息至主存儲器215LCBS并中斷CPU。
具有適配器的CS/SM軟件接口是通過由IF軟件媒體存取控制器(MAC)處理產(chǎn)生的信箱信息(即數(shù)據(jù)顯示和控制顯示)以及通過送到IF軟件MAC處理的信箱信息得到支持的。
在正常運(yùn)行時,介于Level6和LACS之間的軟件接口使用送到LACS的I/O裝載(IOLD)指令以及由伴隨中斷至Level6的LAC送到主存儲器的回復(fù)狀態(tài)信息。
所有數(shù)據(jù)信息,行政的和管理的操作都是立足于使用主存儲器215中的LAN控制塊(LCBS),并且均以IOLD指令形式給定的信息加以指明。在LAC中適當(dāng)?shù)能浖幚韺?dǎo)致LCB模仿RAM,如象一個LCB LAN控制塊圖象(LCBI)那樣,而且在完成請求操作之后,將導(dǎo)致最終狀態(tài)送到LCB。在進(jìn)行操作中,將使用各種不同的處理方法。
如圖4、5和6所示,LAC基本上由三條總線組成,圖4主要包括微處理器(μ/P)總線400;直接存儲器存取(DMA)總線614a,614b。圖5主要包括適配器總線521a,521b,522a,522b以及圖6包括聯(lián)結(jié)器1和2。這些總線至多包括16個數(shù)據(jù)位,2個奇偶校驗(yàn)位和23個地址位,還包括含有數(shù)據(jù)選通,地址選通,讀/寫線以及功能碼線的控制總線。
現(xiàn)在參見圖4和圖5,這里有一個Motorola型的微處理器(μ/P)401,它是在儲存在商售動態(tài)隨機(jī)存取存儲器(DRAM)402中的操作系統(tǒng)(OS)的控制下進(jìn)行操作的。這個操作系統(tǒng)OS控制從DMA總線(614b)到適配器數(shù)據(jù)和地址總線421b以及Megabus 416B的數(shù)據(jù)流。(當(dāng)下面討論適配器總線時,這將進(jìn)一步充分討論。)商售可清除可編程只讀存儲器(EPROM)404為16K×16位寬,是商售27128型的。EPROM404包含一快速邏輯檢驗(yàn)(QLT)和到微處理器401的堆棧指示字。EPROM也配置Motorola型68440 DMA芯片408,轉(zhuǎn)送來自Level6計(jì)算機(jī)系統(tǒng)214a,214b,215的I/O指令塊,以便儲存到64K×18動態(tài)隨機(jī)存取存儲器(DRAM)411,并應(yīng)用Motorola 68000(μ/P)401執(zhí)行Level6指令。Level6Cpu214a/b也把操作系統(tǒng)(OS)裝入動態(tài)隨機(jī)存取存儲器(DRAM)402,這將應(yīng)用微處理器(μ/P)401執(zhí)行程序和指令。
對于在圖2上用參考號數(shù)214a,214b,215標(biāo)志的以及在圖4第2張圖上用參考號數(shù)414a,414b標(biāo)志的Level6系統(tǒng),為了用LAC通過Megabus 216,416a,416b進(jìn)行通信,Level6 Cpu 214a/b通過74AS867/26S10型Megabus接口407a,74AS823/26S10型接口407b發(fā)給LAC一指令。這個指令由74A823型寄存器接收作為功能碼。Level 6 Cpu 414a把地址放在地址接口407a上,而Level Cpu 414b把數(shù)據(jù)放在數(shù)據(jù)接口407b上。這樣,數(shù)據(jù)即放在先入先出(FIFO)430的輸入端上,而指令被放在控制器的輸入端上。當(dāng)指令被送到控制器408時,一信號被送到DMA芯片408a,以請求取得DMA總線614b的控制。DMA片408a回答請求并允許控制器408把數(shù)據(jù)放在DMA總線614a,614b上。之后,DMA芯片408a訪問控制器的存儲器408b并把DMA數(shù)據(jù)傳送到DRAM411。當(dāng)此程序完成時,DMA芯片408a將允許微處理器401執(zhí)行操作。之后,微處理器401將請求DMA總線,而且如果許可的話,它將傳送來自存儲器408b的數(shù)據(jù),以便進(jìn)一步進(jìn)行處理和分析。
為了通過LACS101把數(shù)據(jù)從Honeywell Level6系統(tǒng)102傳送到LAN100,μ/P68000首先把Level6開始地址裝入Megabus地址接口407a。在Megabus地址接口407a里,有一個量程計(jì)數(shù)器,它把計(jì)算的字?jǐn)?shù)裝入存儲器408b中。之后,μ/P401裝載一個DMA地址到DMA芯片408a中。這樣裝入的DMA地址尋址存儲器408b,為了計(jì)算裝入存儲器408b的字?jǐn)?shù),它也裝入一個量程計(jì)數(shù)器。之后在μ/P401的控制下,數(shù)據(jù)通過Megabus數(shù)據(jù)接口407b傳送到先入先出(FIFO)存儲器和DMA總線614b。之后DMA芯片408a把在DMA總線614b上的數(shù)據(jù)傳送到DMA緩沖存儲器408b。期間,用74LS245收發(fā)報(bào)機(jī)406b把μ/P401同DMA傳送隔開。這樣μ/P401能同時執(zhí)行一些其它的應(yīng)用DRAM402得到信息的任務(wù)。當(dāng)DMA傳送是由Level6到DMA存儲器時,DMA片408a中斷μ/P401。之后μ/P401通過74LS245型收發(fā)報(bào)機(jī)420a,420b發(fā)出指令到DMA總線614a,614以及到適配器總線421a,421b。之后接收指令的適配器讀DMA存儲器408b,并把來自DMA存儲器408b的數(shù)據(jù)傳送到適配器422a或422b同時傳送到LAN100。當(dāng)這個程序產(chǎn)生時,μ/P401通過收發(fā)報(bào)機(jī)406b,420a,420b分別同DMA總線614a,614b和適配器總線421a,421b隔開。之后μ/P401依靠它的操作系統(tǒng)OS進(jìn)行操作,同時對DMA片408a安排下一個傳送塊。收發(fā)報(bào)機(jī)406b允許微處理器總線運(yùn)行它的程序,DMA總線以及執(zhí)行從Level6存儲器215,Megabus216到DMA存儲器408b的傳送。這樣,總線的隔開允許所有三條總線同時運(yùn)行而不相互干擾。這就使LAN是非常多能的,而且通過LAC提供更大的輸入輸出信息通過量。
現(xiàn)在參見圖5和6,這里表示由適配器子插件聯(lián)結(jié)210-213(還是見圖2)和適配器的子插件216-219組成的適配器接口的方塊圖。包括適配器接口系統(tǒng)的整個LAN插件至多可具有四個子插件522a,522b,每一個子插件具有A奇偶接頭。例如,子插件#1(適配器接口#1)具有適配器聯(lián)結(jié)W01和W02;子插件#2(適配器接口#2)具有聯(lián)結(jié)W03和W04,等等。奇數(shù)聯(lián)結(jié)操縱控制線;而偶數(shù)聯(lián)結(jié)操縱數(shù)據(jù)線0-15和地址線00-23,適配器的子插件可以具有由Ethernet,標(biāo)記環(huán),標(biāo)記總線,磁盤,磁帶,存儲器等制成的任何型式。
適配器總線421a,421b,521b用商售74LS245型的收發(fā)報(bào)機(jī)420a,420b,520b,520bc,同DMA總線414b,514b隔開,在DMA總線需要送數(shù)據(jù)至適配器總線的地方,收發(fā)報(bào)機(jī)允許數(shù)據(jù)流按此方向流動;反之,當(dāng)適配器總線需要送信息到DMA總線時,收發(fā)報(bào)機(jī)指向另一方面。在聯(lián)結(jié)器(210-213)上的每一個適配器子插件216-219都適合于傳送或接收來自LAN的數(shù)據(jù);那個到DMA總線的適配器請求和一個68452型的判優(yōu)片509決定哪一個請求具有最高優(yōu)先權(quán),之后決定總線到哪個具有最高優(yōu)先權(quán)的適配器。它也通過74S20型門531送一個信號至7474觸發(fā)器型芯片。一旦設(shè)置了觸發(fā)器530,則將指示一個子插件適配器在處理中的周期。之后信號通過用讀/寫信號選通的門532、533加到收發(fā)報(bào)機(jī)520b,520bc。加到門532,533的讀/寫信號確定數(shù)據(jù)通過收發(fā)報(bào)機(jī)521b,521bc……按什么方向,即是DMA總線放在適配器總線上,還是適配器總線放在DMA總線上,當(dāng)這種數(shù)據(jù)傳送完成時,下一個最高優(yōu)先權(quán)適配器即可啟動其周期。
應(yīng)用來自收發(fā)報(bào)機(jī)406b的啟動信號,數(shù)據(jù)傳送也可以傳向適配器,也可以從適配器傳來。按照這種傳送技術(shù)μ/P401用適配器啟動信號為收發(fā)報(bào)機(jī)406b編制程序。相應(yīng)地,通過收發(fā)報(bào)機(jī)406b,μ/P401在其控制之下可以讀或送數(shù)據(jù)至適配器。因此,通過收發(fā)報(bào)機(jī)520b,520bc的隔開方式,和通過收發(fā)報(bào)機(jī)406b的選擇,允許用μ/P401編制程序的LAN在LAN上應(yīng)用任何類型的子插件(適配器)。
參見圖6,它表示LAC和連接的適配器之間的具體接口。適配器接口電聯(lián)結(jié)器W01-W08組成。圖6表示兩個典型的聯(lián)結(jié)器。所有偶數(shù)聯(lián)結(jié)器W02,W04,W06,W08包括數(shù)據(jù)位0-15和地址位1-23。所有奇數(shù)聯(lián)結(jié)器W01,W03,W05,W07操縱控制信號。在奇數(shù)聯(lián)結(jié)器上,聯(lián)結(jié)器終端10是總線清除信號;聯(lián)結(jié)器終端11是主清除信號;而聯(lián)結(jié)終端12是總線錯誤指示。聯(lián)結(jié)器終端13處理優(yōu)先權(quán)錯誤信號;而讀/寫信號加到聯(lián)結(jié)器終端18,數(shù)據(jù)應(yīng)答信號加到終端20。一較高數(shù)據(jù)選通信號加到終端22;而一較低數(shù)據(jù)選通信號加到終端24,一數(shù)據(jù)地址選通信號加加到終端26,終端29控制用于系統(tǒng)時鐘的信號,而終端31控制用于2×2系統(tǒng)時鐘的信號。終端35控制用于1/8系統(tǒng)時鐘比的信號。電源接通信號通過終端34控制。來自適配器的中斷請求信號加到終端47,至適配器的中斷應(yīng)答信號加到終端48。至適配器的啟動選通信號加到終端49。來自適配器的總線請求信號加在終端51上,而至子插件的總線允許應(yīng)答信號加在終端52上;而從適配器到LAN的總線允許應(yīng)答加到終端53。聯(lián)結(jié)終端用以識別各種數(shù)據(jù)線和地址線。
輸入/輸出(I/O)指令為了用Level6 Cpus 214a,214b提供LACS的控制,使用具有不同功能碼(FC)的一組輸入/輸出(I/O)指令。
輸出指令1.IO(FC=01)輸出LACS控制。
2.IOLD(FC=09/0D)輸出LCB指示字。
輸入指令1.IO(FC=26)輸入器件ID。
輸出LACS控制I/O(FC=01)……該指令傳送一16位控制字至LACS。所有適配器和接口都受該指令的作用。指令中使用的信道數(shù)是不重要的,定位定義如下位0硬予置(如果是1)。
位1停止I/O(如果一位是1,位O是零)。
位2-15MBZ(一定為0)。
硬予置功能由電源啟動序列開始或者由輸出LACS控制指令(是指令的第一位)是一個1;即FC=01。該予置功能引起下列反應(yīng)(a)LAC和適配器RAM202,216a-219a被請零。
(b)所有LAC中的硬件寄存器以及適配器被清零。
(c)LAC運(yùn)行其質(zhì)量邏輯測試(QLT)并確定適當(dāng)?shù)呐渲眯畔ⅰ?br>(d)LAC進(jìn)入停止?fàn)顟B(tài),這時其功能度由受PROM204支持的那些功能組成。
如果I/O指令的位1是一個1和位0是一個0,則執(zhí)行停止I/O,這將引起下列反應(yīng)(a)LAC中的硬件寄存器以及適配器被清零。
(b)依靠固件控制LAC開始或者繼續(xù)運(yùn)行。這時功能度由受PROM常駐固件204支持的那些功能所組成。
輸出LCB指示字IOLD(FC=09/0D)……IOLD指令基本上是由兩個功能碼組成。當(dāng)現(xiàn)在與一個地址的裝入有關(guān)時為功能碼09;而當(dāng)現(xiàn)在與裝載域有關(guān)時為功能碼OD。該指令包括兩個分別的總線傳送到LAC。第一傳送是一個32位字節(jié)的地址,而第二傳送是一個16位的域字,其指令高8位是翻譯,以確定LAC硬/軟功能,而其指令低8位確定LAN控制塊LCB字節(jié)的長度。地址和LCB長度一起確定Level6主存儲器215中一個LCB的位置和長度。當(dāng)Level6 Cpu 214a或214b發(fā)出一IOLD指令時,Megabus 216把09功能碼放在Megabus地址位18-23上。LAN接收該功能碼并將它存入圖2,5的母插件中。LAN將作出響應(yīng)的下一個功能碼是完成IOLD指令的OD功能碼。
關(guān)于發(fā)出IOLD指令,將呈現(xiàn)出來的一個主要問題是在多處理系統(tǒng)中,沒有一互鎖裝置,IOLD指令能夠從兩個Cpu發(fā)出,而且這些IOLD指令有可能交錯,因?yàn)長AC沒有辦法(Know how)配合從二個Cpu中送出的09加OD一對功能碼。互鎖裝置產(chǎn)生一NAK(否定應(yīng)答)到第二個Cpu,后者將阻止模糊周期并將發(fā)出所有來自同一個Cpu的IOLDs。
參見圖7,這里表示商售74S112觸發(fā)器701,它存儲來自第一IOLD指令的第一功能碼09。觸發(fā)器701的一個輸出信號加到商售16L8型可編程陣列邏輯(PAL)703;Megabus地址位18-23也加到PAL。PAL703將功能碼解碼并決定由Level6發(fā)出的功能碼是應(yīng)答(Acked)還是不應(yīng)答(NAked)。一旦作出判斷,它就存儲在74AS823型鎖存器704中。鎖存器起著信號標(biāo)作用,它能把來自總線的信息排除等候,因此,總線能釋放而信息能在適當(dāng)?shù)臅r間使用。當(dāng)LAN檢測用于LAN插件的指令時決定鎖存電路信號標(biāo)704。為終止周期,觸發(fā)器701復(fù)位至功能碼OD。觸發(fā)器701可考慮成為一括號的類型,它用功能碼09置位,而用功能碼OD復(fù)位。PAL703解碼功能位,并決定對Megabus哪個功能碼將被應(yīng)答(Acked)或不應(yīng)答(NAKed)。這樣,當(dāng)在每個Cpu接收錯誤應(yīng)答的情況下,該邏輯將阻止發(fā)生IOLD的第一Cpu和發(fā)出IOLD的第二Cpu。為了NAK,使得任何在IOLD之后的輸入指令提供控制LAN插件,使用了觸發(fā)器702。它是用作為一個信號標(biāo),這個信號標(biāo)將置位于第一IOLD功能碼09上,并且當(dāng)且僅當(dāng)有一個主清零信號加于它時方能復(fù)位。只要LAN插件已經(jīng)對IOLD指令給予控制,從而作為信號標(biāo)的702將阻止Level6的輸入指令。
一旦一個輸出LACS控制指令(FC=01)按序完成,一輸入裝置ID指令(FC=26)使LAC PROM204把16位裝置ID字送到Megabus。該ID識別LAC和連接到被訪問的適配器信道的適配器。LAC被指定到64信道編號組,對于輸入裝置ID指令(FC=26),信道地址的最后6位有效位被LAC處理成為由兩個字段組成最高2位表示適配器子插件狀態(tài),而最低4位表示同適配器216-219相聯(lián)系的子信道,用于輸入裝置ID指令的信道數(shù)編碼由使用具有0-9的10位格式完成。LAC插件地址由位于首4位的碼識別;適配器狀態(tài)由4-5位置的2位碼識別;最后,適配器上的子信道由6-9位置的4位識別。
數(shù)據(jù)傳送LAC設(shè)計(jì)的主要問題之一是在LAC中需設(shè)有不管組成何種形式的LAN系統(tǒng)均維持不變的駐留通訊層軟件。為此,相應(yīng)的就必須將此駐留軟件與L6(級6)的大總線(Megabus)側(cè)以及LAN接口相互隔離。用來完成這一任務(wù)而同時仍保持LAN和L6之間的、以及LAC控制器自身內(nèi)部的通訊層的硬件是LAC控制字塊,如圖8、圖9以及圖10-13中所表示的。
圖8所示的LAC控制字塊的功用是由主存儲器裝載或轉(zhuǎn)儲LAC軟件,將LAC RAM202的不同部分轉(zhuǎn)送入主存貯器215,和檢索某一LAC配置信息。其操作是由前面談過的輸出LCB指針I(yè)OLD啟動的。圖8中的LAC控制字塊具有16畢特寬度字的格式,其中第一字801分成數(shù)部份,起始的6畢特留作未來的硬件使用(RHU),其次4畢特指明發(fā)出裝載或轉(zhuǎn)儲命令自身的CPU 214a、214b的通道數(shù)的最低位4畢特。CPU通道數(shù)的其余高位畢特總是O,因此,只列出這后面的4畢特。801的另外6畢特標(biāo)明在接收到中斷時CPU需應(yīng)用的64個可能中斷級別中的一個。
字802指定能執(zhí)行的操作(這里僅可能有3種)之一。它表明是執(zhí)行將LAC RAM 202的內(nèi)容存入或傳送給CPU中的主存貯器215的操作,還是相反由DPS6存貯器向LAC和RAM裝載。第三個操作是將由LAC RAM得到的配置信息存入DPS6存貯器。
地址字803和804存放欲將數(shù)據(jù)傳送入(或出)的L6存貯器的地址的高、低位部份。
傳送范圍字805以字節(jié)數(shù)來限定在LAC和主存貯器間傳送的信息的范圍。
LAC RAM地址字806和807指明數(shù)據(jù)進(jìn)入(或傳出)的LAC RAM202部份的地址的高和低位部份。在信息為讀組態(tài)式時,所指明的組態(tài)信息即已隱含著該特定地址。RSU字808留給可能成為需要的軟件應(yīng)用。
狀態(tài)字809表明完成傳送操作時所運(yùn)送給CPU的信息的有關(guān)狀態(tài)。如果出現(xiàn)問題,該操作將終止,而這種狀態(tài)將在狀態(tài)字809中指出。但如果傳輸中沒有問題,此狀態(tài)字將全部為O。如果有問題,狀態(tài)字809的8個高位畢特必定仍然全為0。其后是一個無效功能畢特,它用來指出該請求因某種原因而成為無效,這多半是由于所采用的裝載或轉(zhuǎn)儲操作碼是一個未加定義的編碼。例如,下一畢特是存貯器取盡MEMEXH,并指明正一個緊跟著一個地發(fā)出了數(shù)個裝載或轉(zhuǎn)儲操作命令,從而控制器就不可能全部處理它們,因?yàn)樗看沃荒芴幚硪粋€這樣的操作。字809的下一個畢特是RAM不存在畢特,它表明字806、807中所定義的地址指向到LAC RAM中不存在的存貯區(qū)域。由此,該畢特就說明了因這種障礙傳送操作沒有完成。下一畢特RAMP表示在讀出LAC RAM 202信息將其傳送到CPU存貯器215期間出現(xiàn)了奇偶校驗(yàn)誤差。狀態(tài)字809的MY畢特代表存貯器(黃牌)予警(MeMory Yellow),它表示在由L6向LAC RAM傳送信息時,數(shù)據(jù)讀出中發(fā)生了差錯,但此差錯是可以糾正的。所以該數(shù)據(jù)已被送給LAC。這是一個表明L6存貯器中存在某種不足的警報(bào)。接下來的畢特NEM是L6存貯器不存在的縮寫詞,它指出在利用由字803、804所形成的地址時,有一部份不存在的L6存貯器215被尋址了。畢特L6B表明在由L6存貯器向LAC傳送信息期間發(fā)生了L6總線奇偶校驗(yàn)誤差,此誤差存在于L6大總線216中某處,而且被置入LAC RAM 202中的數(shù)據(jù)內(nèi)部有差錯。字809的最后一個畢特是存貯器(紅牌)警告(MeMory Red)的縮寫詞,它指明在由L6存貯器向LAC存貯器傳送中,由L6存貯器讀出的信息不正確,而且是無法由糾錯硬件糾正的,因此傳送到LAC送到LAC RAM的信息是錯誤的。MBZ810是一個供將來應(yīng)用的、必須全為0的字。最后,終結(jié)字811具有一個由LAC控制器為完成操作所設(shè)定的終結(jié)狀態(tài)畢特SC,被用來給L6軟件指明在字809中什么樣的狀態(tài)表示操作終結(jié)態(tài)。
現(xiàn)在來看圖9,這里所表示的是前面已敘述過的I/O啟動命令用的另一種LAN控制字塊格式,字901是一個16畢特的字,其中高6位畢特也留作硬件應(yīng)用(RSU),通常是全O。其后4畢特指定CPU通道,并標(biāo)明發(fā)出該命令的CPU的通道數(shù)量低位4畢特,同時,它也是在I/O啟動完成時被中斷的通道數(shù)。字901的級號是最低6畢特,它指出在64個CPU中斷級中,哪一級在操作完成時被驅(qū)動。
RSU字902是供任何所需目的的軟件應(yīng)用的備用區(qū)。字903,904表示微處理機(jī)201開始執(zhí)行某一特定程序時所使用的微處理機(jī)啟動地址。通常在微處理機(jī)啟動前,該微處理機(jī)的存貯器202將已經(jīng)為前述的與圖8相關(guān)的一個裝載操作所裝載,因之,現(xiàn)在這一命令的目的就是要告訴該微處理機(jī)從何處開始來執(zhí)行這已經(jīng)裝載3的程序。MBz字906、907是兩個必須保持為全0的字。MBZ字908含有一個由微處理機(jī)201在其完成啟動操作時所裝載的終結(jié)狀態(tài)畢特(SC),它向在被中斷中的中央處理機(jī)指出,I/O啟動命令已經(jīng)正確地完成了。MBZ字908的其它部份全部為0。
圖10所示是一個典型的信箱區(qū)信息,用來請求一DMA操作以轉(zhuǎn)移數(shù)據(jù)塊,例如將前述的LAN控制字塊在位于LAC中的存貯器和位于L6中的存貯器之間傳送,即從RAM202到RAM215。信息標(biāo)題1001通常包含一種型式碼,它精確地定義所需求的傳送類型,即如LAN控制字塊等的塊傳送。雖然圖10所示的僅僅只含有一個字,但一般信息標(biāo)題都包含有數(shù)個信息字。RHU字1002留作硬件應(yīng)用,是為將來應(yīng)用準(zhǔn)備的額外備用空間。完成一個操作后,例如傳送一字塊,請求這一傳送的CPU可能需要加以中斷,并通知所發(fā)生的事情。字1003指定當(dāng)需要這樣一個中斷時要應(yīng)用的參數(shù)。不過只有在由字1003的最低6畢特組成的級不是全0時,才能送出一個中斷。LAC通道數(shù)包含字1003的高6位畢特,它被用于中斷時為CPU提供給LAC的命令最初尋址的特定通道。字1003的CPU通道數(shù)基本上與圖8和圖9的相同,是一個指定欲被中斷的CPU通道數(shù)的4畢特字。最后,級別字是一個規(guī)定中斷級別的6畢特字。返回信箱區(qū)ID字105和106標(biāo)識LAC內(nèi)部實(shí)際要求執(zhí)行該操作的信箱區(qū)202a,因此它表述在操作本身完成時需通告的過程。當(dāng)操作終結(jié)時,狀態(tài)字1007即由存貯器DMA過程返回。各畢特的定義與圖8的狀態(tài)字809類似。L6存貯器地址字1008和1009指定傳送入或由其送出的L6存貯器的地址的高位和低位部份。量程字1010指定操作中欲傳送的字或字節(jié)數(shù)。LAC RAM地址字1011和1012標(biāo)明信息欲送入或由其取得的LAC RAM中的地址。RSU字1013留作未來的硬件使用。
現(xiàn)在來看圖11,該圖示出了一個信箱區(qū)信息,該信息是作為一個用于在LAN上傳送一個數(shù)據(jù)而使用的典型的數(shù)據(jù)傳輸請求被送往適配器接口軟件進(jìn)程的。這具有IEEE標(biāo)準(zhǔn)委員會接口的各種型式LAN。信息標(biāo)題1101含有數(shù)個信息畢特,如定義欲傳輸信息性質(zhì)的型式碼,指定欲送出該局部區(qū)域網(wǎng)絡(luò)的數(shù)據(jù)位于RAM202、214中地址的緩沖地址說明符。幀控制字1102由8低位畢特組成,用來指明記號總線中或記號環(huán)形幀的幀型式。RSU字1103是留作軟件用的區(qū)域。返回信箱區(qū)ID字1104、1105標(biāo)明要求進(jìn)行發(fā)送或傳輸?shù)倪M(jìn)程的信箱區(qū),以便將一信息加入信箱區(qū)內(nèi)從而使得在操作完成時可對進(jìn)程予以識別。
狀態(tài)字1106主要由軟件根據(jù)其所要求返回的內(nèi)容所作出的決定來定義的。型式或數(shù)據(jù)長字1107用于CSMA/CD及Ethernet網(wǎng)絡(luò)幀中。在Ethernet型LAN連接到LAC的情況下,它指明幀長;而在CSMA/CD型LAN連接到LAC時,它則表明采用的是IEEE802 3型幀。目的地址字1108指明信息將送達(dá)的站的地址,最后,RSU字1109則是一個留作軟件應(yīng)用的區(qū)域。
圖12和13所示為被指定作為I/O命令暫存隊(duì)列的RAM存貯區(qū)的地點(diǎn)和格式。圖12是存貯單元字節(jié)地址為800400-800700編號為1301-1304的不同隊(duì)列。圖13表示這些隊(duì)列中任何一個的一個典型項(xiàng)目。字1201為被暫時存貯的通道數(shù);而地址字1202、1203則表明主存中欲傳送的信息的高位和低位地址。量程字1204指明欲傳送信息中的字節(jié)數(shù)。
接口(IF)軟件圖14至18是一組較詳細(xì)說明各種IF軟件進(jìn)程和中斷子程序的高層功能職責(zé)的流程圖。
現(xiàn)在來看圖14,這里作出了LAC控制器中I/O調(diào)度過程所執(zhí)行的操作的流程圖。中斷等待時間1401代表I/O命令中斷能得到此子程序服務(wù)之前的微處理機(jī)時間長度。每當(dāng)LAC控制器接收到一個I/O命令,微處理機(jī)201總需要一定的時間來作出響應(yīng),起動操作才能對此中斷進(jìn)行處理。配置塊MBX 1402是一個對LAC控制器內(nèi)核軟件的調(diào)用,以配置一信息塊使得I/O調(diào)度進(jìn)程能向LAC控制器內(nèi)的某一其它進(jìn)程通報(bào)有關(guān)剛剛收到的IOLD命令。此調(diào)度進(jìn)程所執(zhí)行的實(shí)際操作由調(diào)度表1403的索引規(guī)定。該調(diào)度表除了由上文已討論過的、作為I/O命令的組成部份的操作碼加以檢索外,還借助I/O命令所尋址的通道數(shù)來作為索引。由此,此調(diào)度進(jìn)程將利用調(diào)度表進(jìn)行檢索以便確定什么樣的進(jìn)程需要通報(bào)。如果沒有進(jìn)程需要通報(bào),這一指令就將依賴對一調(diào)度信息進(jìn)行匯編1405并將此信息送到下一步SENDMSG1407而被調(diào)度到大總線管理層。I/O命令然后被送到層管理進(jìn)程,此進(jìn)程的職能是決定應(yīng)該怎么做。假設(shè)1404確定信箱區(qū)ID有效,進(jìn)程即對包含有IOLD信息的匯編調(diào)度信息1406進(jìn)行匯編,而此信息再由SENDMSG1408送到被認(rèn)定能對之進(jìn)行處理的某一進(jìn)程。在通常的DMA信息情況下,它一般被送到傳輸/發(fā)送進(jìn)程或者傳輸/接收進(jìn)程,這按它是輸入操作的I/O命令還是輸出操作的I/O命令而定。如果此進(jìn)程運(yùn)行當(dāng)中收到另外的命令,就象在隊(duì)列1409中有多個項(xiàng)目那樣,那么此調(diào)度進(jìn)程將返回到配置塊MBX1402,并對下面的命令重復(fù)此進(jìn)程。如果隊(duì)列1409中沒有另外的項(xiàng)目,則調(diào)度進(jìn)程進(jìn)入1410。
由圖15和16可看到由LAC控制器工作的DMA進(jìn)程的流程圖。實(shí)際上這里進(jìn)程有兩部份。圖15所示的一部份是由DMA操作完成后的中斷所啟動的存貯器DMA進(jìn)程。圖16所示的進(jìn)程的另外一部份則取決于信箱區(qū)202a是否收到了任何請求。
首先參照圖16,當(dāng)由LAC控制器中的一個進(jìn)程收到一存貯器DMA操作請求時,操作即開始。此進(jìn)程要開始執(zhí)行,首先必須交換上下文SW 1601。而后內(nèi)核軟件調(diào)用BRECV1602將確定在其輸入信箱區(qū)內(nèi)是否有任何請求。如果沒有任何要求進(jìn)程執(zhí)行什么操作的請求,那么此進(jìn)程就終止,到BRECV指令1602即不在向前進(jìn)行。如果具有對某種操作的請求,那么就要調(diào)用含有所有信號的操作系統(tǒng)內(nèi)核對中斷進(jìn)程進(jìn)行檢驗(yàn)SEMAWAIT 1603以確定中斷進(jìn)程已經(jīng)沒有正在執(zhí)行有關(guān)DMA控制器的某一另外的操作,就是說已經(jīng)有一個DMA操作在進(jìn)行。如果當(dāng)時沒有DMA操作在進(jìn)行,則進(jìn)程將前進(jìn)到步驟1604,在此它將所需的信息裝載到大總線寄存器和DMA控制器以執(zhí)行DMA傳送,完成這種裝載操作之后,進(jìn)程即將先前在步驟1603檢驗(yàn)過的記號設(shè)置一個記號畢特SEMAWAIT 1605(借助于調(diào)用操作系統(tǒng)內(nèi)核),以使得在此記號畢特被置位時將不執(zhí)行另外的DMA操作。在步驟1606,檢驗(yàn)標(biāo)志以了解是否還有任何因完成了操作而提出的中斷請求在等待CPU接受<即所謂“懸案”>。如果無懸案存在,即送出一返回信箱區(qū)信息給原請求操作的過程。在送出返回信息步驟MBX1607,為已經(jīng)完成的DMA操作發(fā)出返回信息。(它不是對剛剛開始的該特定DMA操作的返回)。然后軟件回到BRECV1602,并且如果沒有要它執(zhí)行什么操作的請求的話就停止。如果有另外一個請求在等待,它將按照SEMAWAIT1603而停止,這是在當(dāng)操作開始時在步驟1605所設(shè)定的記號。此特定的DMA操作一完成,進(jìn)程流程即轉(zhuǎn)到圖15。在中斷被識別和開始執(zhí)行前,又有一個中斷等待時間1501。該進(jìn)程一經(jīng)接受,測試1502即作出決定此進(jìn)程是否能處理在L6和LAC控制器之間作分散或集中式數(shù)據(jù)傳輸。如果這是一個分散或集中式的操作,則此操作即通過1503、1507和1511步驟進(jìn)行,由于此時DMA控制器已經(jīng)就緒,所以此進(jìn)程可以繼續(xù)進(jìn)行所需的附加傳輸?shù)姆稚⒒蚣胁僮?。如果僅只是一次傳送,因?yàn)闆]有分散或集中式數(shù)據(jù)傳送,那么,此進(jìn)程就進(jìn)到差錯檢驗(yàn)1504來確定是否存在諸如奇偶校驗(yàn)差錯或不存在存貯器等的差錯。如果存在任何差錯,則對狀態(tài)信息1505作有關(guān)所發(fā)生差錯型式的匯編。于1508設(shè)定一標(biāo)志以示可給請求進(jìn)程返回一信息(這一標(biāo)志與步驟1606所引用的是同樣標(biāo)志)?,F(xiàn)在在步驟1603中所引用的記號在步驟1509被解除了,從而就可進(jìn)行進(jìn)程的第二部份和處理下一個操作,并進(jìn)行步驟1512。如果步驟1504中無差錯,在步驟1506就要檢驗(yàn)確定在操作完成時L6是否要求被中斷。(這是由前面談過的DMA請求中優(yōu)先級編碼來決定的,它表明存在著一個中斷請求。)如果不出現(xiàn)差錯,則將按步驟1510對L6執(zhí)行(或嘗試)中斷,以便給L6系統(tǒng)指明一DMA操作無差錯地完成了。如果在操作中有差錯,將不作中斷嘗試。而代之以將狀態(tài)信息1505送回到發(fā)出請求的過程,向其指明操作中出現(xiàn)了差錯。
現(xiàn)在參看圖17,圖中所示為對LAC控制器實(shí)行中斷的適配器中斷子程序的流程圖。當(dāng)適配器216-219之一向LAC控制器送出一個中斷信號指出它已完成了某種操作或者發(fā)生了什么異常事件需要向某一軟件進(jìn)程通報(bào)有關(guān)情況,此時LAC控制器即啟動此子程序。為此,在由步驟1701,1702,1703,1705和1704所組成的循環(huán)中,有一個循環(huán)其中斷軟件將確定中斷是由哪一適配器發(fā)生的。由此,由所有的4個可能適配器出來的中斷信號是被一齊限定在一根引出線上的,軟件就必須向每一適配器查詢它是否是要求中斷的適配器。因此,該循環(huán)就說明了要依次對每一個適配器進(jìn)行測試,并作出那一適配器提出中斷請求的決定。如果它確定了中斷是由某適配器發(fā)出的,那么中斷子程序就轉(zhuǎn)到步驟1706,1707,1708,并組成由中斷原因所決定的信息。在SEND MSG MAC N TX 1707,由一個剛剛結(jié)束了曾經(jīng)要求進(jìn)行傳輸請求的適配器送出一個信息。SENDMSG MAC N RX 1708表明一個適配器已經(jīng)由LAN收到一個輸入信息,因此,此適配器希望送出一信箱區(qū)信息來處理這一具體情況。SENDMSG MAC N LM 1706說明發(fā)生了一個事件,以及送出一信箱區(qū)信息到MAC層管理進(jìn)程來處理該事件。最后,在信息發(fā)送完成后,即進(jìn)入步驟1709中斷子程序。
現(xiàn)在參看圖18,圖中列出了某些適配器專用MAC進(jìn)程,并表述了一特定適配器用的三種不同的MAC進(jìn)程的流程。此進(jìn)程再一次由上下文轉(zhuǎn)換1801初始化,1801接受所有的信箱區(qū)信息或者進(jìn)行上下文轉(zhuǎn)換來接受它。進(jìn)程BRECV MAC LM1802、BRECV MAC RX 1803或BRECV MAC TX 1804之一在其信箱區(qū)由圖17所示的適配器中斷進(jìn)程接受到一信箱區(qū)信息時即進(jìn)入活動狀態(tài)。只有其中之一按照所收到的信息被激活。MAC管理層1802,1805在活動時將根據(jù)情況采取某種行動,例如向它發(fā)送一信息來通報(bào)站管理進(jìn)程,或者僅僅是使適配器自己復(fù)位。當(dāng)已收到一信息BRECV MAC RX 1803,此進(jìn)程即替換在處理該信息中MAC適配器已用完的緩沖器1806。MAC適配器具有予定數(shù)量的,可用來存放數(shù)據(jù)的緩沖器,那些已經(jīng)為輸入信息應(yīng)用過的必須被置換,以便使適配器能準(zhǔn)備接受另外的信息。這一操作一完成,進(jìn)程就要判定信息中或適配器中是否有任何差錯1808。假如有差錯,就將該信息丟掉1811。如果無差錯,進(jìn)程即去掉MAC標(biāo)題1814,為將該信息送給邏輯連接控制層軟件進(jìn)程進(jìn)行下一步處理作準(zhǔn)備。(它是301中的CS軟件進(jìn)程之一)。在配置步1815配置一存貯器塊供建立信箱區(qū)信息之用。然后在步驟1816將此信息加以匯編,并將其送至邏輯連接控制進(jìn)程步驟1818。如果需要的話,在步驟1819和1820 MAC進(jìn)程取得備用緩沖器以便將來適配器可能需要置換緩沖器。
如果執(zhí)行了一個傳輸操作,BRECV MAC TX 1804將收到一個信息表明該傳輸操作已完成。該信息要經(jīng)檢查來確定它屬于何種類型的信息,就是說,是否此信息是從用以表明完成的適配器中斷子程序接受到的,還是此信息是從請求其作傳輸?shù)倪B接層控制(LLC)接收到的。假定是一個完成信息,則在步驟1810中對一完成返回信息進(jìn)行匯編并在步驟1813中送到LLC。這一作完,進(jìn)程就要確定在它的隊(duì)列1824中是否還有信息要傳輸。如果還有另外的信息,進(jìn)程就進(jìn)行到步驟1825,在此向適配器發(fā)送請求,使它能傳輸正等候中的信息。如果步驟1824確定了隊(duì)列中沒有信息在等候,就設(shè)定一適配器等待畢特1826,它僅僅表明,適配器已不再忙于任何工作,并且循環(huán)回到BRECV MAG TX 1804接收信箱區(qū)。相反,如果由LLC接收到一個要求傳輸?shù)恼埱?,那么為?biāo)明將執(zhí)行傳輸?shù)腗AC的原地址所需的標(biāo)題就被加入步驟1809,而適配器等待畢特將在步驟1812進(jìn)行檢驗(yàn),以確定此請求進(jìn)來時適配器是否確實(shí)不在作任何工作。如果適配器是在等待什么工作,進(jìn)程就前進(jìn)到步驟1821,并立即將傳輸請求送給適配器而將適配器等待畢特復(fù)位1823,表明現(xiàn)在適配器已在忙碌。另一方面,如果在步驟1812中確定該請求是在適配器已在忙于進(jìn)行某種工作時進(jìn)入的,那么此請求就被加到適配器的隊(duì)列1827。
現(xiàn)在看圖19,這里作出了LAC傳送流程。第一步,CPU214a/b中的LAC驅(qū)動軟件在存貯器中由IORB 1903內(nèi)的信息組成LCB1902。LCB將包含有標(biāo)明所需處理和功能以及參數(shù)的信息,它還包含指定存貯器中含有欲發(fā)送的數(shù)據(jù)的緩存的物理地址和范圍。LCB也包括供由LAC返回狀態(tài)用的空間。
第二步,LACS驅(qū)動器1901向LACS發(fā)出一輸入/輸出裝載命令(IOLD)。由此命令給出的地址指向LCB,而其“范圍”參數(shù)則有兩字段高位8畢特是功能碼字段,低位8畢特指定LCB的大小。IOLD信息為LAC硬件DMA控制器由大總線216取下并置入暫存隊(duì)列1902。這產(chǎn)生一個中斷,以啟用I/O調(diào)度進(jìn)程(IODISP)來檢查該命令。在確定此IOLD有效后,它即利用命令中的通道數(shù)來引用一個調(diào)度表,并決定命令的去向以作下步處理。此時,此子程序得到一個RAM存貯塊(通過一配置調(diào)用),將LCB指針I(yè)OLD信息存入這一存貯塊,并將其送到(通過SENDMSG調(diào)用)CS進(jìn)程信箱區(qū)。LCB指針I(yè)OLD信息塊的格式前面已經(jīng)討論過了。如果隊(duì)列中有更多的I/O命令,I/O調(diào)度進(jìn)程也將加以處理。I/O調(diào)度進(jìn)程所獲得的所有信息塊都必須通過某另一進(jìn)程返回到空白的存貯器(即步驟12)。
步驟3CS進(jìn)程1905安排為由OS執(zhí)行(因?yàn)樾畔鋮^(qū)信息尋址到它)。此進(jìn)程檢索信箱區(qū)信息,在獲得為LCB映象(LCBI)1907所需的RAM存貯塊之后,送出一信息到存貯器DMA請求進(jìn)程1906,以請求LCB進(jìn)入該LCBI的DMA。如果此時沒有其它事要做,那么,CS進(jìn)程自己就可以暫停。
步驟4存貯器DMA請求進(jìn)程1906使得DMA控制器將LCB 1902復(fù)制到LCBI 1907中。完成這一操作后,DMA控制器中斷微處理機(jī)201。這使得存貯器DMA進(jìn)程被再次調(diào)用。這一進(jìn)程將狀態(tài)信息置于CS進(jìn)程所發(fā)送的信息塊中,而后再將此信息塊(通過SENDMSG調(diào)用)返回到被指定的返回信箱區(qū)。原先由步驟3中的CS進(jìn)程置于該信息塊的RSU段中的信息使得它有可能識別已完成的特定的DMA操作。
步驟5CS進(jìn)程對步驟4的信箱區(qū)信息作出響應(yīng)。在對LCBI進(jìn)行檢查并計(jì)算出L6緩存總數(shù)后,它調(diào)用-GETBUF來取得保存數(shù)據(jù)信息足夠大的RAM緩存區(qū)。而后它發(fā)出一信箱區(qū)信息給存貯器DMA進(jìn)程,以及使數(shù)據(jù)由主存移到RAM中的這一緩存區(qū)。典型的信息塊格式如圖10和11所示。LB緩存表由LCBI1907得到,而級別字段則應(yīng)為0。
步驟6存貯器DMA進(jìn)程使DMA控制器208將主存中的數(shù)據(jù)復(fù)制到RAM緩存區(qū)209。必要時,此進(jìn)程將促成一個對主存來說是“集中”式的DMA。而對LAC RAM來說,DMA總是按照在邏輯上是單個的緩存器進(jìn)行的。在完成DMA后,存貯器DMA進(jìn)程重新被調(diào)用,將狀態(tài)放到信息塊中并將其返回到所指定的(CS進(jìn)程的)返回信箱區(qū)。
步驟7CS進(jìn)程對步驟6的信箱區(qū)信息作出響應(yīng)。它發(fā)出一信箱區(qū)信息到存貯器DMA進(jìn)程1906,使存貯器中LCB 1902中的狀態(tài)完整化,并中斷CPU214a/b。在原來某個時間,LACS驅(qū)動器將通報(bào)這一狀態(tài)的完成到IORB1903。假如欲將一信息送到IEEE802型LAN,則CS進(jìn)程必須生成標(biāo)題段,而且將作為導(dǎo)引信息加到DMA緩沖區(qū)209。CS進(jìn)程也必須在此緩存區(qū)的起始部份保留左邊的另外的空間供MAC進(jìn)程在其前面加以標(biāo)題。CS LLC進(jìn)程將信箱區(qū)信息1908加以匯編,并將其送到(1909)適當(dāng)?shù)腗AC進(jìn)程。
步驟8在具有較高優(yōu)先級請求處理時,MAC傳送進(jìn)程將對請求進(jìn)行排隊(duì)。一等一個請求成為可能,進(jìn)程即將其送到適配器216-219。適配器完成給信息幀(SA和FC)加以標(biāo)題的操作,而且在介質(zhì)存取規(guī)定允許時,將一正確編排的幀格式(包括前序、界符和FCS)通過適配器的PHYS層裝備送給LAN。當(dāng)傳送完成時,適配器DMA控制器發(fā)出一中斷信號到LAC的微處理器201。
步驟9適配器中斷子程序調(diào)用一由此適配器取得最終狀態(tài)的MAC傳送進(jìn)程。此MAC傳送進(jìn)程釋放RAM緩存器(FREEBUF調(diào)用)。如果有其它的傳送請求在等候,進(jìn)程將傳送一個到適配器。
圖19中,盡管為了清楚起見剛才敘述的傳送流程是說明一單個流程,實(shí)際各不同階段的任何瞬間都有多條流程在進(jìn)行處理中。由于每一個軟件進(jìn)程都是為解決其所有要完成的任務(wù)而編寫的,因之,如果可能的話,在自行放棄微處理機(jī)前,每一被傳送信息所執(zhí)行的上下文交換的數(shù)量,在典型的負(fù)荷下,將傾向于較之僅為考慮單個信息流程時要少。
為了處理所接收到的信息,有兩種方案可供采用,其決策依據(jù)是是否該應(yīng)用希望只有在由LAN接收到信息后才分派緩存器,還是它希望予先設(shè)想可能的輸入信息來分派緩存。在第一種或即讀取-通報(bào)的情況下,必須發(fā)出兩個IOLD,而且必須為每一信息發(fā)送兩個中斷信號給CPU。在第二種情況下,對主存空間的要求勢必會較大,因?yàn)闉榱说却畔⒍仨毶婕暗骄彌_器。
對接收流程的敘述將不如發(fā)送情況那樣詳細(xì),因?yàn)镃S軟件進(jìn)程,IF軟件進(jìn)程,硬件中斷以及中斷固件的相互作用是類似的。
對于接收操作,CS軟件不必如發(fā)送操作時那樣需由存貯管理要求數(shù)據(jù)緩沖器。而IF軟件MAC進(jìn)程則將能自動地為每一適配器提供數(shù)個可用的邏輯緩存器,它們中每一個都具有足以容納最大可能信息的空間。在收到一有效信息后,MAC進(jìn)程的數(shù)據(jù)指示子程序?qū)⑼ㄟ^緩存器傳遞給合適的CS進(jìn)程。
如圖20所示,在讀出-通報(bào)的情況下,CPU軟件通過LCB輸出指針I(yè)OLD命令向LAC發(fā)出一系列LCB,它們被叫做“讀取-通報(bào)”LCB2002。這些是用來提供CS軟件可能用以通報(bào)CPU軟件信息的到達(dá)的LCB。當(dāng)由這一措施指出了信息到達(dá)時,CPU軟件將發(fā)一讀出LCB以指明該信息應(yīng)被置于主存中的位置,而且通常還要發(fā)出另一讀取-通報(bào)LCB來替代先前應(yīng)用的那個。這種設(shè)計(jì)可以使數(shù)據(jù)直接輸入到應(yīng)用緩沖器。讀取LCB與讀取-通報(bào)LCB之間的差異在于LCB自身內(nèi)部的某些軟件定義的指出。
在步驟6,CS進(jìn)程2006查詢它的讀取-通報(bào)LCB表,了解其中是否有一個與剛收到的這一特定信息有關(guān)。如果沒有,此信息即留在RAM中(不過假如在相當(dāng)長時間過去后還沒有合適的LCB,進(jìn)程將被強(qiáng)制丟掉此信息)。通常情況下,CS進(jìn)程將欲被傳送到存貯器215中LCB的信息標(biāo)題1001中的內(nèi)容加以匯編,將信息區(qū)信息塊加以匯編,并將其送到請求將此信息內(nèi)容作DMA傳送進(jìn)讀取-通報(bào)LCB2002的存貯器DMA進(jìn)程2007。在此信息塊中,CPU通道和中斷級字段反映出原先IOLD和LCB中給出的作為通道數(shù)的信息內(nèi)容(見圖8)。
在步驟7中,DMA控制器2007將信息傳送到讀取-通報(bào)LCB2002,并中斷微處理機(jī)201使其再次調(diào)用存貯器DMA進(jìn)程2007?,F(xiàn)在這一進(jìn)程發(fā)送所請求的中斷給CPU,而在這一工作完成時將步驟6的信息塊返回到返回信箱區(qū)(CS進(jìn)程)。
在步驟8,CPU軟件響應(yīng)此中斷,由查詢未完成的IORB或由其它措施來確定該數(shù)據(jù)信息應(yīng)放在主存內(nèi)何處。然后,LACS驅(qū)動器2001在存貯器中設(shè)立一讀取LCB。此LCB將含有步驟6的識別符(以使LAC中的CS進(jìn)程能鑒別哪一數(shù)據(jù)信息需要傳送),并指定它們將被置入的主存區(qū)。
在步驟9,LACS驅(qū)動器2001針對LcB向LACS發(fā)出-IOLD。在通常狀態(tài)下,IF軟件將LCB指針信號2005傳送給CS進(jìn)程2006。
在步驟10中,CS進(jìn)程發(fā)出要存貯器DMA進(jìn)程將LCB復(fù)制進(jìn)RAM中的LCBI2008的請求。
在步驟12中,CS進(jìn)程檢查LCBI,確定一讀取操作已被調(diào)用。該進(jìn)程計(jì)算L6緩存器的總體大小,并計(jì)算LCB狀態(tài)量程余數(shù)值,將最后的狀態(tài)放入LCBI2008中。然后它發(fā)出一個請求給存貯器DMA進(jìn)程以使數(shù)據(jù)信息由RAM209轉(zhuǎn)移到主存215和將最終狀態(tài)從LCBI輸送到LCB,并中斷CPU。
在步驟13,按照需要DMA控制器將RAM緩存區(qū)中的數(shù)據(jù)2012復(fù)制入主存,以DMA進(jìn)程的控制實(shí)現(xiàn)一“分散”DMA。在成功地完成此數(shù)據(jù)傳送后,DMA進(jìn)程執(zhí)行一個塊傳送,將LCBI狀態(tài)復(fù)制進(jìn)LCB并中斷CPU。完成此操作后,存貯器DMA進(jìn)程將信箱區(qū)信息塊返回到返回信箱區(qū)(CS進(jìn)程)。
在步驟14,CS進(jìn)程可釋放數(shù)據(jù)緩存器,LCBI塊以及信箱區(qū)信息塊。
同樣,雖然為了清楚起見這里的說明和圖都只介紹了單個流程,實(shí)際在各階段任何瞬間都在進(jìn)行多個線索的處理。由于每一軟件進(jìn)程的編制都企圖在讓出微處理機(jī)前完成它的所有予定工作,每一收到的信息所執(zhí)行的上下文交換的數(shù)量在典型負(fù)荷下,均要較僅考慮單個信息流時為少。
在讀取LCB情況下(圖中未示出),CPU發(fā)出針對讀取LCB的IOLD,每一讀取LCB包含有面向系統(tǒng)存貯器中緩存器的指針,該緩存器的大小足以容納最大可能的信息。僅需給CPU送出一個中斷,即在數(shù)據(jù)和最后狀態(tài)被輸送完之后。
由對本發(fā)明的一個實(shí)施方案的圖解和說明,熟悉本技術(shù)領(lǐng)域:
的人們將可想到,可有不同的許多變型和改進(jìn)來實(shí)現(xiàn)本發(fā)明,而仍然不超出本發(fā)明權(quán)利要求
的實(shí)質(zhì)和范圍。因此,本發(fā)明領(lǐng)域僅受限于權(quán)利要求
所指出的范圍。
縮寫詞/定義ACK 肯定應(yīng)答CM 控制器管理(軟件)CRC 循環(huán)冗余校驗(yàn)CPU 中央處理單元CS 通訊服務(wù)(軟件)CSMA/CD 載體讀出多路存取/沖突檢測DMA 直接存貯器存取DA 目標(biāo)地址DRAM 動態(tài)RAMDSAP 終端服務(wù)存取點(diǎn)EPROM 可抹可編程只讀存貯器FC 功能碼/幀控FIFO 先入先出GA 群地址GFTBUF 取得緩存ICN 中斷控制字IODISP I/O通訊IORB I/O請求塊ID 標(biāo)識IF 接口(軟件)I/O 輸入/輸出IOLD I/O裝載LAC 局部區(qū)域控制器
LACS 局部區(qū)域控制器子系統(tǒng)LAN 局部區(qū)域網(wǎng)絡(luò)LCB LAN控制塊LCBI LAN控制塊映象LLC 連接層控制LME 層管理體LMI 層管理接口LSAP 連接服務(wù)存取點(diǎn)LSI 大規(guī)模集成電路MAC 媒體存取控制器MBLME 大總線層管理體MBZ 一定為0MEMDMA 存貯器DMAMSB 最高位字節(jié)MSB 最高位畢特MTBF 平均無故障時間MTTR 平均檢修時間NAK 否定應(yīng)答ORU 最佳替換單元OS 操作系統(tǒng)/開放系統(tǒng)OSI 開放系統(tǒng)互連PAL 可編程邏輯矩陣PC 個人計(jì)算機(jī)PIO 實(shí)際I/O
PROM 可編程ROMPDU 協(xié)議數(shù)據(jù)單元QLT 質(zhì)量邏輯測試RAM 隨機(jī)存取存貯器RFU 留作未來應(yīng)用RHU 留作硬件應(yīng)用RINT 恢復(fù)中斷RSU 留作軟件應(yīng)用SA 原地址/站地址SC 狀態(tài)完善/服務(wù)調(diào)用SM 系統(tǒng)管理(軟件)SMDSI 系統(tǒng)管理數(shù)據(jù)服務(wù)接口SSAP 源服務(wù)存取點(diǎn)TBD 待定義TC 總線耦合器T&V 驗(yàn)證WS 工作站
權(quán)利要求
1.由多個處理單元構(gòu)成的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),包括有(a).發(fā)送/接收信息信號用的第一網(wǎng)絡(luò)總線;(b).與所說第一網(wǎng)絡(luò)總線相耦合的第一組合處理單元;(c).與所說第一網(wǎng)絡(luò)總線相耦合,并能為所說的第一組合處理單元共享的第一存貯器,所說的第一存貯器用來存貯將由所說的第一組合處理單元中任一單元執(zhí)行的計(jì)算機(jī)指令,所說的計(jì)算機(jī)指令有輸入/輸出(I/O)命令;(d).與所說的第一網(wǎng)絡(luò)總線相耦合的第一控制器裝置,所說的這一裝置允許所說的第一組合處理單元執(zhí)行多路同時操作。
2.權(quán)利要求
1中所述的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),包括一組與所說的第一網(wǎng)絡(luò)總線相耦合的第一I/O單元,而其中所說的I/O命令包括至少具有兩個功能碼的輸入/輸出裝載命令(IOLD),第一功能碼是關(guān)于地址的裝載,第二功能碼是關(guān)于所說的第一存貯器中的裝載量程。
3.權(quán)利要求
2中所述的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),包括有耦合到所說的第一網(wǎng)絡(luò)總線,用來存貯第一功能碼的第一存貯裝置。
4.權(quán)利要求
3中所述的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),包括有第一可程編矩陣邏輯(PAL)裝置,用來確定第一功能碼是否應(yīng)予應(yīng)答(ACKed)還是不予應(yīng)答(NAKed)。
5.權(quán)利要求
4中所說的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),其中所說的PAL包括有對第一功能碼進(jìn)行譯碼的第一譯碼裝置。
6.權(quán)利要求
5中所述的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),包括有與所說的第一網(wǎng)絡(luò)總線耦合的用來存貯經(jīng)過譯碼的功能碼的第二存貯裝置。
7.權(quán)利要求
6中所述的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),包括,與所說的第一控制器裝置相耦合的LAN網(wǎng)絡(luò)。
8.權(quán)利要求
7中所述的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),其中所說的第二存貯裝置是一個鎖存器,它在所說的PAL確定第一功能碼是為LAN網(wǎng)絡(luò)應(yīng)用所發(fā)出的時候即加以鎖存。
9.權(quán)利要求
8所說的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),其中所說的第一存貯裝置是一個觸發(fā)器,它在收到第一功能碼時即置位。
10.權(quán)利要求
9中所述的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),其中所說的觸發(fā)器在PAL確定第一功能碼是為供LAN網(wǎng)絡(luò)應(yīng)用而發(fā)出的時候復(fù)位,借此,所說的第一存貯裝置即接收第二功能碼。
專利摘要
本發(fā)明為一局部區(qū)域網(wǎng)絡(luò)(LAN)控制器專用總線,它由微處理器(μP)總線,直接存儲器存取總線和一適配器總線組成。該總線在提供另外的完整通信功能時,允許把各種計(jì)算機(jī)元件聯(lián)接到超出總線范圍之外的其它的計(jì)算機(jī)元件或計(jì)算機(jī)系統(tǒng)上。所有總線包括至多具有4個子插件的適配器接口,每一個子插件具有奇偶數(shù)聯(lián)接器。有些子插件設(shè)計(jì)來操縱控制線;而另外一些子插件用來控制數(shù)據(jù)和地址線。
文檔編號G06F13/12GK87106122SQ87106122
公開日1988年8月3日 申請日期1987年7月28日
發(fā)明者愛德華·比徹明 申請人:霍尼韋爾·布爾公司導(dǎo)出引文BiBTeX, EndNote, RefMan