專利名稱:具有雙總線體系結(jié)構(gòu)的計算機的總線控制邏輯的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及雙總線體系結(jié)構(gòu)的計算機系統(tǒng)中的總線至總線接口,更具體地講是涉及在競爭系統(tǒng)存貯器存取的中央處理單元和輸入/輸出設(shè)備之間進行仲裁的總線至總線接口裝置和方法。
通常,在計算機系統(tǒng)且尤其是個人計算機系統(tǒng)中,數(shù)據(jù)在諸如中央處理單元(CPU)、存貯裝置、及直接存貯器存取(DMA)控制器的各種系統(tǒng)裝置間傳送。另外,數(shù)據(jù)也在諸如輸入/輸出(I/O)設(shè)備的擴展元件之間及這些I/O設(shè)備與各個系統(tǒng)裝置之間傳送。I/O設(shè)備和系統(tǒng)裝置通過計算機總線來相互通信,此總線包括一系列導(dǎo)體,通過這些導(dǎo)體信息被從幾個源傳至幾個目的地。許多系統(tǒng)裝置及I/O設(shè)備都可被用作總線控制器(即控制計算機系統(tǒng)的裝置)及總線從屬器(即被總線控制器所控制的元件)。
已知的有帶有一條以上總線的個人計算機系統(tǒng)。一般,設(shè)置一本地總線,CPU通過它與高速緩沖存貯器或存貯控制器通信;還設(shè)置一條系統(tǒng)I/O總線,通過它系統(tǒng)總線裝置(如DMA控制器或I/O設(shè)備)經(jīng)存貯控制器與系統(tǒng)存貯器進行通信。系統(tǒng)I/O總線包括由一總線接口單元連接的I/O總線和系統(tǒng)總線。I/O設(shè)備通過I/O總線相互通信。通常還要求I/O設(shè)備與諸如系統(tǒng)存貯器的系統(tǒng)總線裝置進行通信。這種通信必須經(jīng)總線接口單元在I/O總線和系統(tǒng)總線傳遞。
在雙總線體系結(jié)構(gòu)計算機系統(tǒng)中,諸如CPU的本地總線裝置與系統(tǒng)I/O總線設(shè)備就經(jīng)存貯控制器對系統(tǒng)存貯器的存取而進行爭用。系統(tǒng)總線裝置及I/O設(shè)備經(jīng)系統(tǒng)總線對存貯控制器進行存取。CPU通過本地總線對存貯控制器進行存取。在此,在經(jīng)存貯總線對系統(tǒng)存貯器進行存取之前,這些相互競爭的裝置須先得到存貯控制器的控制。通常,在高速數(shù)據(jù)傳送中,系統(tǒng)I/O總線設(shè)備及本地總線裝置會同時希望控制存貯器總線控制器。高速I/O設(shè)備和微處理器對系統(tǒng)存貯器要求很高,從而在彼此間造成爭用,進而降低了系統(tǒng)性能。因此,計算機系統(tǒng)須提供一方案或仲裁,以確定本地總線裝置或系統(tǒng)I/O總線設(shè)備是否應(yīng)對系統(tǒng)存貯器進行存取。
一種通常的仲裁方案包括一仲裁程序,它根據(jù)先到先服務(wù)的原則給予系統(tǒng)總線的控制。這樣,如I/O總線設(shè)備及本地總線裝置均希求對系統(tǒng)存貯器進行存取,就把存貯控制器的控制給予先送出控制請求的裝置。在該特定裝置作為存貯器總線控制器完成經(jīng)存貯總線把數(shù)據(jù)串讀出或?qū)懭胂到y(tǒng)存貯器之后,即把存貯控制器的控制給予等待的裝置。只要諸如CPU等本地總線裝置及系統(tǒng)I/O設(shè)備對存貯控制器的控制有待處理的請求,這個進程就將無限地進行下去。
各種I/O設(shè)備總線控制器以不同的速度對系統(tǒng)存貯器進行讀出和寫入。有些高速I/O設(shè)備經(jīng)I/O總線把數(shù)據(jù)傳至總線接口單元的速度可以同總線接口單元把這些數(shù)據(jù)在系統(tǒng)總線上轉(zhuǎn)送的速度一樣地快。經(jīng)常,這些高速設(shè)備以一系列數(shù)據(jù)串或包的形式傳送數(shù)據(jù),這些包在系統(tǒng)存貯器中有相鄰的地址。在上述的通常仲裁方案下,若本地總線裝置,在這些多個包傳送之一中,有等待的系統(tǒng)總線控制請求,則仲裁程序?qū)⒃贗/O設(shè)備傳送了第一個包后,立即把存貯器總線控制授予該本地裝置。在此本地總線裝置完成其操作之后,存貯器總線控制又被授給I/O設(shè)備。
這類系統(tǒng)運行的效率不高,因為諸如CPU的本地總線裝置及I/O設(shè)備通常在系統(tǒng)存貯器的不同區(qū)域工作。因此,當(dāng)在CPU和I/O裝置之間來回授予存貯器總線控制時,通常隨著每個依次的操作,存貯器的地址是在其不同的頁上,從而需要較長的存貯器存取時間。如果,如上所述,I/O設(shè)備正把在存貯器中有相鄰地址的大塊數(shù)據(jù)讀出或?qū)懭朐摯尜A器,則允許此I/O設(shè)備在把存貯器總線控制交給CPU之前完成其多包數(shù)據(jù)傳送將是有利的。
以此方式,在存貯器存取被授予CPU之前,存貯控制器能讀出或?qū)懭雽ο到y(tǒng)存貯器的相鄰的地址(即在同一信息“頁”上)的多個傳送。系統(tǒng)存貯器和I/O設(shè)備間的下一個及隨后的數(shù)據(jù)傳送所需的時間被降到最小,因為當(dāng)尋址到系統(tǒng)存貯器的同一頁上時,存貯器存取得以優(yōu)化。在完成系統(tǒng)存貯器和I/O設(shè)備的最后一個數(shù)據(jù)傳送時,CPU被授予存貯器總線控制,以完成其讀出或?qū)懭氩僮?。總之,這種系統(tǒng)運行節(jié)省了數(shù)據(jù)傳送時間。
因而,本發(fā)明的一個目的,是在雙總線體系結(jié)構(gòu)計算機系統(tǒng)中提供一種總線接口單元。它提供了優(yōu)化I/O總線上的I/O設(shè)備和本地總線上的本地裝置間的存貯器總線控制所需的仲裁邏輯。
根據(jù)本發(fā)明,為具有雙總線體系結(jié)構(gòu)的計算機提供了一種總線至總線控制邏輯系統(tǒng)和方法。該邏輯是通過建立在總線接口單元內(nèi)的算法來實現(xiàn)的,該單元位于計算機中的I/O總線和系統(tǒng)總線之間。該邏輯在中央處理單元和一I/O設(shè)備之間進行仲裁,以確定哪一個應(yīng)被給予對系統(tǒng)存貯器的優(yōu)先存取。該邏輯輸出一控制信號,該信號被作為對一般存貯器控制仲裁的替代,以使一I/O設(shè)備優(yōu)選對系統(tǒng)存貯器進行存取。
該控制邏輯被用來通過動態(tài)地控制I/O設(shè)備對系統(tǒng)存貯器的存取,來改善I/O總線把數(shù)據(jù)送入和送出系統(tǒng)存貯器的能力。通過在某些預(yù)定條件下鎖定控制著I/O總線的I/O設(shè)備對系統(tǒng)存貯器的存取,改善了系統(tǒng)的性能??偩€控制邏輯從而使I/O控制器的速度優(yōu)化地匹配于系統(tǒng)存貯器的數(shù)據(jù)傳送能力。系統(tǒng)總線支持一脈沖串協(xié)議,其中數(shù)據(jù)以16字節(jié)信息包的形式傳送。根據(jù)控制著I/O總線的I/O設(shè)備的類型,I/O總線以1、2或4字節(jié)的帶寬處理數(shù)據(jù)傳送。
I/O設(shè)備被授予對系統(tǒng)存貯器的存取優(yōu)先權(quán)的預(yù)定條件如下(1)控制I/O總線的I/O設(shè)備發(fā)出的讀取請求未與系統(tǒng)存貯器中的預(yù)定16字節(jié)地址邊界相對準,(2)控制I/O總線的I/O設(shè)備以一讀取周期緊接著一個寫入周期,(3)控制I/O總線的I/O設(shè)備完成了一數(shù)據(jù)傳送周期,(4)控制I/O總線的I/O設(shè)備正在以流模式讀取或?qū)懭霐?shù)據(jù),或者,(5)總線接口單元超過一半的緩沖空間已被待寫入系統(tǒng)存貯器的數(shù)據(jù)所占滿或待從系統(tǒng)存貯器中預(yù)取的數(shù)據(jù)占有還不到一半的緩沖空間。
在本發(fā)明的最佳實施例中,總線至總線控制邏輯在三種模式下運行。這些模式中的第一種是缺省模式,它確定上列頭三種條件下總線控制的步調(diào)。這些模式的第二種(選擇1)確定上列第四種條件下的步調(diào),而這些模式的第三種(選擇2)確定上列第五種條件下的步調(diào)。除了系統(tǒng)自動提供的缺省步調(diào)模式之外,系統(tǒng)用戶可選擇任一步調(diào)模式(選擇1或選擇2)。該選擇是通過編程總線接口單元中的可編程寄存器的內(nèi)容而作出的。
在第一種缺省條件下,一I/O設(shè)備請求讀取未與特定的16字節(jié)包邊界對準的系統(tǒng)存貯器為補償這種不對準,此I/O設(shè)備對系統(tǒng)存貯器的存取被鎖定至自動預(yù)取了足夠的數(shù)據(jù)而達到16字節(jié)邊界。小于16字節(jié)的該讀取數(shù)據(jù)隨后被同步至I/O總線的定時,且I/O設(shè)備控制器開始讀這些數(shù)據(jù)。總線接口單元隨后預(yù)取相鄰的下一16字節(jié)包。由于該16字節(jié)包在預(yù)定的邊界開始,16字節(jié)脈沖串傳送是可能的。
在第二種條件下,當(dāng)I/O設(shè)備從寫入轉(zhuǎn)換到讀取請求時,在總線接口單元緩沖器空間中可能有殘留的緩沖寫入數(shù)據(jù)。一旦I/O設(shè)備總線控制器從寫入轉(zhuǎn)換到讀取,總線控制邏輯確定周期已終結(jié)、即已不再有寫入數(shù)據(jù)要存入緩沖器空間中,以及現(xiàn)在正從系統(tǒng)存貯器請求讀取數(shù)據(jù)。由于已知不再有相鄰的寫入數(shù)據(jù)會馬上到來,故在一個原子操作中把緩沖數(shù)據(jù)寫入系統(tǒng)存貯器并從系統(tǒng)存貯器中預(yù)取讀取數(shù)據(jù)。
在第三種條件下,當(dāng)I/O控制器裝置在一個數(shù)據(jù)傳送周期之后放棄I/O總線的控制時,在總線接口單元緩沖空間中也可能有殘留的緩沖數(shù)據(jù)。此時,這種殘留數(shù)據(jù)被自動寫入系統(tǒng)存貯器中。若一半以上的緩沖器空間包括這種殘留數(shù)據(jù),在I/O裝置控制器一放棄I/O總線控制后,總線控制邏輯將給存貯器產(chǎn)生一信號,表示在緩沖器中的長度超過一個傳送長度(即大于16字節(jié))的數(shù)據(jù)需要被寫入到系統(tǒng)存貯器中。相應(yīng)地,該緩沖數(shù)據(jù)將被給予經(jīng)系統(tǒng)總線對系統(tǒng)存貯器的存取。
用于實施選擇1(與上述第四種條件有關(guān))的總線控制邏輯部分包括一定時S-R鎖存器(置“1”置“0”鎖存器),它給存貯控制器提供一LOCK信號。該LOCK信號當(dāng)I/O設(shè)備以流模式把數(shù)據(jù)讀出或?qū)懭胂到y(tǒng)存貯器時,為控制I/O總線的I/O設(shè)備提供對系統(tǒng)存貯器的連續(xù)存取。在檢測到流數(shù)據(jù)寫入操作且總線接口單元緩沖器之一充滿被緩沖存儲的寫入數(shù)據(jù)時,一鎖定脈沖串寫入序列經(jīng)系統(tǒng)總線被發(fā)送給系統(tǒng)存貯器,并將維持在有效狀態(tài)直至I/O設(shè)備終止此流序列,或直至在緩沖器空間中沒有數(shù)存留為止。類似地,在檢測到流數(shù)據(jù)讀取操作時,一鎖定脈沖串讀取序列被發(fā)往系統(tǒng)存貯器,并將保持有效狀態(tài),只要緩沖器空間還有容量,或直至I/O裝置終止了流序列。
用于實施選擇2(與上述第五種條件相關(guān))的總線控制邏輯部分包括分開的邏輯電路,各個邏輯電路均與一用于向存貯控制器輸出LOCK信號的鎖存器相關(guān)聯(lián)。在超過一半的總線接口單元緩沖器空間充滿待寫入到系統(tǒng)存貯器中的數(shù)據(jù)或少于一串的緩沖空間還待充滿將從系統(tǒng)存貯器預(yù)取出的數(shù)據(jù)時,此LOCK信號為控制I/O總線的I/O設(shè)備提供對系統(tǒng)存貯器的連續(xù)存取。
圖1是包括根據(jù)本發(fā)明原理構(gòu)造的總線接口單元的計算機系統(tǒng)的示意框圖;
圖2是圖1的計算機系統(tǒng)的總線接口單元的示意框圖;
圖3是圖2的總線接口單元的FIFO緩沖器的示意框圖;
圖4是用于實施圖3的總線至總線調(diào)步邏輯的一種實施例的控制邏輯的電路圖;
圖5是用于實施圖3的總線至總線調(diào)步邏輯的另一實施例的控制邏輯的電路圖。
參見圖1,以10總括地表示的計算機系統(tǒng)包括系統(tǒng)板12和處理器復(fù)合體14。處理器復(fù)合體包括處理器部分16和經(jīng)本地總線連接器22與處理器本地總線20相連的基板部分18。處理器部分16以50MHz運行,而基板部分18以40MHz運行。
系統(tǒng)板12包括交錯的系統(tǒng)存貯器24和26及輸入/輸出(I/O)設(shè)備28。存貯器24和26與處理器復(fù)合體14之間的通信由存貯總線30處理,而I/O設(shè)備28和處理器復(fù)合體14間的通信由I/O總線32傳送。I/O設(shè)備與存貯器24和26間的通信由I/O總線32、系統(tǒng)總線76及存貯總線30處理。I/O總線32可遵照MICRO CHANNEL
(注冊商標)計算機體系結(jié)構(gòu)。存貯總線30和I/O總線32經(jīng)處理器復(fù)合體連接器34與處理器復(fù)合體基板部分18相連。諸如存貯器擴充裝置等I/O設(shè)備可經(jīng)I/O總線32與計算機系統(tǒng)10相連。系統(tǒng)板12還可包括可在通常操作中為計算機系統(tǒng)10所用的傳統(tǒng)視頻電路、定時電路、鍵盤控制電路及中斷電路(圖中均未顯示)。
處理器復(fù)合體14的處理器部分16包括中央處理單元(CPU)38,在最佳實施例中,CPU38是可從Intel公司獲得的、商業(yè)代號為i486的32位微處理器。處理器部分16還包括靜態(tài)隨機存貯器(SRAM)40、高速緩沖存貯控制模塊42、頻率控制模塊44、地址緩沖器46及數(shù)據(jù)緩沖器48。本地總線20包括數(shù)據(jù)信息路徑50、地址信息路徑52及控制信息路徑54。數(shù)據(jù)信息路徑50設(shè)在CPU38、SRAM40及數(shù)據(jù)緩沖器48之間,地址信息路徑52設(shè)在CPU38、高速緩沖存貯控制模塊42和地址緩沖器46之間??刂菩畔⒙窂?4設(shè)在CPU38、高速緩沖存貯控制模塊42和頻率控制模塊44之間。另外,地址和控制信息路徑設(shè)在高速緩沖存貯控制模塊42和SRAM40之間。
SRAM40通過短期存貯來自存貯器24或26或來自位于I/O設(shè)備28上的擴展存貯器的存儲器信息,提供了高速緩沖存貯功能。高速緩沖存貯控制模塊42包括存貯存貯器24和26的地址位置的隨機存取存貯器(RAM)56。CPU38可通過本地總線20,直接存取貯存在SRAM40中的信息。頻率控制模塊44使50MHz處理器部分16的操作與40MHz基板部分18同步,并控制緩沖器46和48的操作。相應(yīng)地,頻率控制模塊44確定緩沖器46和48獲取信息的時間或改寫存在這些緩沖器中的信息的時間。緩沖器46和48的配置,使得能夠同時在它們中存入兩個來自存貯器24和26的寫入。緩沖器46和48是雙向的,即它們能鎖存由CPU38提供的信息和提供給CPU38的信息。由于緩沖器46和48是雙向的,可在維持標準的基板部分18的同時,升級或替換處理器復(fù)合體14的處理器部分16,基板部分18包括存貯控制器58、直接存貯器存取(DMA)控制器60、中央仲裁控制點(CACP)電路62、總線接口單元64和緩沖/糾錯碼(ECC)電路66?;宀糠?8還包括驅(qū)動電路68、只讀存貯器(ROM)70、自測電路72和緩沖器74。系統(tǒng)總線76包括數(shù)據(jù)信息路徑78、地址信息路徑80和控制信息路徑82。數(shù)據(jù)信息路徑將緩沖器74連接到總線接口單元64;將接口單元64連接到DMA控制60及緩沖器/ECC電路66;并將緩沖器/ECC電路66連接到系統(tǒng)存貯器24和26。地址信息路徑和控制信息路徑都將存貯控制器58連接到DMA控制器60及總線接口單元64;并將總線接口單元64連接到緩沖器74。
存貯控制器58位于CPU本地總線20和系統(tǒng)總線76上,并為CPU38、DMA控制器60或總線接口單元64(代表一臺I/O設(shè)備28)提供經(jīng)存貯器總線30對系統(tǒng)存貯器24和26的存取。存貯控制器58經(jīng)存貯器總線30,給系統(tǒng)存定器24和26啟動系統(tǒng)存貯周期。在一個系統(tǒng)存貯周期中,CPU38、DMA控制器60或總線接口單元64(代表一臺I/O設(shè)備28)三者之一具有經(jīng)存貯控制器58對系統(tǒng)存貯器24和26的存取。CPU38經(jīng)本地總線20、存貯控制器58和存貯器總線30與系統(tǒng)存貯器通信,而DMA控制器60或總線接口單元64(代表一個I/O設(shè)備28)經(jīng)系統(tǒng)總線76、存貯控制器58和存貯器總線30對系統(tǒng)存貯器進行存取。
對CPU38至I/O總線32的讀或?qū)懼芷?,對照系統(tǒng)存貯地址邊界對地址信息進行檢查。若地址信息對應(yīng)于一I/O擴展存貯器地址或I/O端口地址,則存貯控制器58通過I/O總線32啟動一I/O存貯周期或帶有一I/O設(shè)備28的I/O端口周期(經(jīng)總線接口單元64)。在一CPU至I/O存貯周期或I/O端口周期中,提供給存貯控制器58的地址,經(jīng)介于系統(tǒng)總線76和I/O總線32之間的總線接口單元64從系統(tǒng)總線76傳送至I/O總線32。包括與地址相對應(yīng)的擴展存貯器的I/O設(shè)備28從I/O總線32接收存貯器地址。DMA控制器60和總線接口單元64控制著系統(tǒng)存貯器24和26與包括在一臺I/O設(shè)備28中的擴展存貯器之間的信息交換。DMA控制器60還代表處理器復(fù)合體14提供三種功能。首先,DMA控制器60利用小計算機子系統(tǒng)控制塊(SCB)體系結(jié)構(gòu)來配置DMA通道,從而避免用編程I/O來配置DMA通道的必要性。第二,DMA控制器提供一緩沖功能,以優(yōu)化慢速存貯器擴展裝置和一般較快的系統(tǒng)存貯器間的傳送。第三,DMA控制器60提供8通道、32位、直接系統(tǒng)存貯存取功能。在提供直接系統(tǒng)存貯存取功能時,DMA控制器60可以兩種模式之一工作。在第一種模式下,DMA控制器以一編程模式工作,其中DMA控制器60在功能上是CPU38的從屬器。在第二模式下,DMA控制器60本身起系統(tǒng)總線控制者的作用,其中DMA控制器60為I/O總線32進行仲裁并控制總線32。在第二模式中,DMA控制器60采用了一先進先出(FIFO)寄存器電路。
CACP電路62起DMA控制器、I/O設(shè)備總線控制器及CPU(若存取I/O設(shè)備的話)的仲裁器的作用。CACP電路62從DMA控制器60、存貯控制器58及I/O設(shè)備接收仲裁控制信號,并確定哪個裝置可控制I/O總線32及該特定裝置控制I/O總線的時間長度。
驅(qū)動電路68向系統(tǒng)存貯器24和26提供來自存貯控制器58的控制信息和地址信息。驅(qū)動電路68,根據(jù)用于構(gòu)成系統(tǒng)存貯器24和26的單個在線存貯模塊(singlein-linememorymodules)(SIMMs)的數(shù)目,來驅(qū)動此信息。因此,驅(qū)動電路68根據(jù)系統(tǒng)存貯器24和26的大小,改變提供給這些存貯器的控制和地址信息的信號密度。
緩沖電路74提供了放大和處理器復(fù)合體基板部分18和系統(tǒng)板12之間的隔離。緩沖電路74利用了能實時獲取I/O總線32和總線接口單元64之間的邊界信息的緩沖器。因此,若計算機系統(tǒng)10出現(xiàn)故障,計算機修理人員可存取緩沖器電路74,以確定在系統(tǒng)出現(xiàn)故障時出現(xiàn)在連接器34的信息。
ROM70在接上電源時通過初始加入來自擴展存貯器的系統(tǒng)存貯器數(shù)據(jù),配置系統(tǒng)10。自測電路72與基板部分18中的多處相連,并提供了多種自測特征。自測電路72對緩沖電路74進行存取,以確定是否存在故障,并在系統(tǒng)10接通電源時檢測基板部分18的其他主要部分,以確定系統(tǒng)是否已準備就緒運行。
參見圖2,它顯示了圖1的系統(tǒng)的總線接口單元64的示意框圖。總線接口單元64,通過在系統(tǒng)總線76和I/O總線32間提供雙向高速接口,提供了實施本發(fā)明的基礎(chǔ)。
總線接口單元64包括系統(tǒng)總線驅(qū)動器/接收器電路102、I/O總線驅(qū)動器/接收器電路104和電連接在它們之間的控制邏輯電路。驅(qū)動器/接收器電路102包括導(dǎo)引邏輯;該邏輯把從系統(tǒng)總線76收到的信號引至適當(dāng)?shù)目偩€接口單元控制邏輯電路,并從這些總線接口單元控制邏輯電路接收信號且把該信號引到系統(tǒng)總線76。I/O總線驅(qū)動器/接收器電路104包括導(dǎo)引邏輯;該邏輯把從I/O總線32收到的信號引到適當(dāng)?shù)目偩€接口單元控制邏輯電路,并從這些總線接口單元控制邏輯電路接收信號并把此信號導(dǎo)引到I/O總線32。
總線接口單元控制邏輯電路包括系統(tǒng)總線至I/O總線的轉(zhuǎn)換邏輯106、I/O總線至系統(tǒng)總線轉(zhuǎn)換邏輯108、存貯器地址比較邏輯110、錯誤恢復(fù)支持邏輯112、及高速緩沖存貯窺探邏輯114。編程I/O電路116也電耦合至系統(tǒng)驅(qū)動器/接收器電路102。
系統(tǒng)總線至I/O總線轉(zhuǎn)換邏輯106,提供了DMA控制器60或存貯控制器58(代表CPU38)作為系統(tǒng)總線控制器去對I/O總線32進行存取并借此與作為I/O總線上的從屬裝置的I/O設(shè)備28通信所必須的裝置。轉(zhuǎn)換邏輯106把系統(tǒng)總線76上的控制、地址和數(shù)據(jù)線轉(zhuǎn)換成I/O總線32上的相同的線。大多數(shù)控制信號及所有的地址信號都從系統(tǒng)總線76流向I/O總線32,而數(shù)據(jù)信息的流動則是雙向的。作為系統(tǒng)總線從屬器的邏輯監(jiān)測系統(tǒng)總線76并檢測供給I/O總線32的周期。在檢測到這種周期時,系統(tǒng)總線從屬器把系統(tǒng)總線上的信號定時轉(zhuǎn)換成I/O總線定時、在I/O總線32上啟動該周期、等待此周期的結(jié)束、并在系統(tǒng)總線76上終止此周期。
I/O總線至系統(tǒng)總線轉(zhuǎn)換邏輯108包括系統(tǒng)總線地址發(fā)生電路118、I/O總線預(yù)期地址發(fā)生電路120、系統(tǒng)總線控制接口122、FIFO緩沖器124、I/O總線從屬接口126和總線至總線調(diào)步控制邏輯128。系統(tǒng)總線控制接口122支持在40MHz運行的高性能32位(4字節(jié))i486脈沖串協(xié)議。提供了脈沖串模式的四、八和十六字節(jié)的非脈沖串模式的1至4字節(jié)的數(shù)據(jù)傳送。I/O總線從屬接口126以系統(tǒng)總線76上的從屬裝置為目的地的操作對I/O總線32進行監(jiān)測,并忽略那些以I/O總線32為目的地的操作。I/O總線從屬接口126所拾取的所有周期均被送至FIFO緩沖器124和系統(tǒng)總線控制接口122。
I/O總線至系統(tǒng)總線轉(zhuǎn)換邏輯108,為I/O設(shè)備28作為一I/O總線控制器去存取系統(tǒng)總線76并借此讀取或?qū)懭胂到y(tǒng)存貯器24和26,提供了必需的裝置。在這些操作的任一個中,一I/O設(shè)備控制著I/O總線。異步的I/O總線接口126以I/O設(shè)備的速度運行,并使總線接口單元64能作為I/O總線32上的I/O設(shè)備控制器的從屬器,去譯碼存貯器地址并確定讀或?qū)懼芷谑且韵到y(tǒng)存貯器24或26為目的地的。同時,系統(tǒng)總線控制器接口122使總線接口單元64能作為系統(tǒng)總線74上的一控制器。存貯器控制器58(圖2)作為總線接口單元64的從屬器,并且要么給接口64提供從系統(tǒng)存貯器讀出的數(shù)據(jù),要么把數(shù)據(jù)寫入系統(tǒng)存貯器。對系統(tǒng)存貯器的讀出或?qū)懭胧墙?jīng)FIFO緩沖器124實現(xiàn)的,在圖3中顯示了緩沖器124的框圖。
如圖3中所示,F(xiàn)IFO緩沖器124是一雙端口、異步、雙向存貯器單元,它在系統(tǒng)及I/O總線76和32之間提供了臨時的數(shù)據(jù)信息存貯。FIFO緩沖器124包括四個16字節(jié)緩沖器125A-125D和FIFO控制電路123。四個緩沖器125A-125D緩沖來往于I/O總線控制器和系統(tǒng)總線從屬器的數(shù)據(jù),從而使I/O總線32和系統(tǒng)總線76能同時運行。FIFO緩沖器124在實體上由兩個32字節(jié)緩沖器(125A/125B和125C/125D)構(gòu)成。系統(tǒng)總線控制接口122和I/O總線從屬接口126各控制一個32字節(jié)緩沖器,而另一32位緩沖器則對它們透明地運行。兩個32字節(jié)緩沖器均被用于讀和寫操作。
各FIFO125A、125B、125C、125D均有與其或是在實體上相聯(lián)或是在邏輯上相聯(lián)的地址寄存器段。當(dāng)數(shù)據(jù)從I/O總線32被傳送至FIFO125A時,只要地址是鄰接的,數(shù)據(jù)就將被累積起來,直至16字節(jié)緩沖器中充滿16字節(jié)數(shù)據(jù)。若地址行動檢測到非鄰接的地址,F(xiàn)IFO125A將把存貯的數(shù)據(jù)傳送到FIFO125C,同時FIFO125B將開始從新的非鄰接地址接收該數(shù)據(jù),F(xiàn)IFO125B將象125A那樣繼續(xù)工作,直到它被充滿16字節(jié)數(shù)據(jù),或檢測到另一非鄰接的地址。此時FIFO125B將把存貯的數(shù)據(jù)傳送到125D,崦FIFO125A再次開始存貯數(shù)據(jù);這樣,可存貯多達4個16字節(jié)塊的非鄰接地址數(shù)據(jù)。
另外,通過兩個并聯(lián)的32字節(jié)緩沖器,數(shù)據(jù)的讀寫可在它們之間反復(fù)進行,從而給出基本上連續(xù)的讀或?qū)懝δ堋?br>
另外,通過把32字節(jié)緩沖器分成兩個耦合到其他I/O總線32或系統(tǒng)總線26的16字節(jié)緩沖器段,則可在與信號脈沖數(shù)據(jù)輸入或輸出存儲器寄存器時的容量負載有關(guān)的方面對FIFO性能影響最小的情況下,增加存貯緩沖器的數(shù)目。這是因為每(并聯(lián)地)加上兩個緩沖器,只有一半容量負載被加到各總線上的時鐘信號的負載上。
還有,通過在每一支路中加上兩個串聯(lián)的16字節(jié)緩沖器,一旦一個16字節(jié)緩沖器充滿了數(shù)據(jù)(如在讀操作中),則可把數(shù)據(jù)傳送到與其串聯(lián)的另一16字節(jié)緩沖器中,同時另一并聯(lián)支路仍在積累數(shù)據(jù)。這樣,在積累數(shù)據(jù)或把數(shù)據(jù)從一條總線傳送到另一條時都沒有浪費時間。
控制FIFO124的運行的邏輯由FIFO控制電路123提供。
一具體的I/O設(shè)備28,可經(jīng)I/O總線,以1、2或4字節(jié)(即8、16或32位)的帶寬,對系統(tǒng)存貯器24或26進行寫入。在由I/O設(shè)備28寫入系統(tǒng)存貯器時,寫入數(shù)據(jù)的第一個傳送原先存在FIFO緩沖器125A或125B中的。I/O總線預(yù)期地址發(fā)生電路120計算下一個預(yù)期或鄰接的地址。此下一鄰接的地址與隨后的I/O地址進行對照檢查,以確定隨后的傳送是否是鄰接的。若是鄰接的,則寫入數(shù)據(jù)的第二字節(jié)或多個字節(jié)就被送到相同的FIFO緩沖器125A或125B。FIFO以高達每秒40兆字節(jié)(megabytes)的異步速度從I/O總線32接收數(shù)據(jù)。
此過程持續(xù)進行,直到緩沖器125A或125B充滿了16字節(jié)的信息包或者檢測到非鄰接的地址。在下一時鐘周期,假設(shè)緩沖器125A已滿,則緩沖器125A中的數(shù)據(jù)將被傳送到緩沖器125C。類似地,當(dāng)緩沖器125B滿了時,基全部內(nèi)容都在一個時鐘周期中被傳送到緩沖器125D。隨后存在緩沖器125C和125D中的數(shù)據(jù),以系統(tǒng)總線運行速度,通過一i486脈沖串傳送,被寫入系統(tǒng)存貯器。這樣在I/O設(shè)備對系統(tǒng)存貯器的寫入過程中,F(xiàn)IFO緩沖器124的運行是連續(xù)的,并在緩沖器125A和125B間交替,當(dāng)每一個向相鄰緩沖器125C或125D分別進行傳送時,另一個則接收待寫入系統(tǒng)存貯器的數(shù)據(jù)。然后,F(xiàn)IFO緩沖器124,通過(ⅰ)預(yù)計待寫入存貯器的下一可能數(shù)據(jù)字節(jié)的地址及(ⅱ)提供最大的速度從FIFO緩沖器經(jīng)系統(tǒng)總線76把數(shù)據(jù)寫入系統(tǒng)存貯器,優(yōu)化了數(shù)據(jù)寫入系統(tǒng)存貯器的速度。
在把數(shù)據(jù)從系統(tǒng)存貯器讀出到一I/O設(shè)備28時,F(xiàn)IFO緩沖器124的運行是不同的。系統(tǒng)總線地址發(fā)生電路118利用初始讀取地址來產(chǎn)生隨后的讀取數(shù)據(jù)的讀取地址,并把數(shù)據(jù)累積在緩沖器125C和125D中。由于系統(tǒng)總線支持16字節(jié)帶寬的傳送,系統(tǒng)總線控制器接口122可在I/O總線32不實際提供隨后的地址的情況下,預(yù)取16字節(jié)的鄰接數(shù)據(jù)包并將其存在緩沖器125C或125D中,從而降低傳送間的等待時間。當(dāng)緩沖器125C充滿預(yù)取數(shù)據(jù)時,它在一個時鐘周期中將其內(nèi)容傳送到緩沖器125A。類似地,緩沖器125D在滿時把數(shù)據(jù)轉(zhuǎn)給緩沖器125B。緩沖器125A和125B中的數(shù)據(jù)隨后可由一特定的I/O設(shè)備控制器以1、2或4字節(jié)的帶寬進行讀取。這樣,系統(tǒng)總線地址發(fā)生電路118起增量計數(shù)器的作用,直至I/O控制裝置命令它停止預(yù)取數(shù)據(jù)。
總線至總線調(diào)步控制邏輯128為高速I/O設(shè)備產(chǎn)生對系統(tǒng)存貯器的更快存取??偩€至總線調(diào)步控制邏輯128,通過使控制I/O總線32的I/O設(shè)備在需要多個周期的更快的設(shè)備傳送數(shù)據(jù)時不中斷對系統(tǒng)存貯器的存貯,而不是在I/O設(shè)備和CPU間交替改變對存貯控制器58的存取,從而取代了系統(tǒng)10的正常存貯控制器仲裁方案。這樣,即使諸如CPU的本地裝置在I/O設(shè)備的多周期傳送期間有等待的存貯總線控制請求,總線至總線調(diào)步控制邏輯128仍將授予該I/O設(shè)備對存貯器總線的連續(xù)控制。
編程I/O電路116是總線接口單元64的一部分,它包含可在總線接口單元64內(nèi)編程的所有寄存器。這些寄存器有與其相關(guān)聯(lián)的位,以確定一特定的寄存器是否有效。其中,這些寄存器確定總線接口單元64將響應(yīng)的系統(tǒng)存貯器和擴展存貯器地址范圍、可高速緩沖存貯或不可高速緩沖存貯的擴展存貯器地址、系統(tǒng)存貯器或高速緩站存貯器地址范圍、及總線接口單元是否支持奇偶或錯誤校驗。因此,編程I/O電路116為總線接口單元64識別它所在的環(huán)境及它所配置成的選擇。編程I/O電路116中的寄存器不能直接經(jīng)I/O總線32編程。因而,為給系統(tǒng)10編程,用戶必須具有能對經(jīng)系統(tǒng)總線與編程I/O電路116在CPU級上進行通信的I/O設(shè)備的存取能力。
存貯器地址比較邏輯110確定一存貯地址是否對應(yīng)于系統(tǒng)存貯器或?qū)?yīng)于位于耦合到I/O總線32的I/O設(shè)備28上的擴展存貯器。由于系統(tǒng)存貯器及擴展存貯器可在不鄰接的地址塊中,存貯器地址比較邏輯110包括多個比較器,它們被加有來自編程I/O電路116中的寄存器的邊界信息,以表示哪個邊界對應(yīng)于哪個存貯器。在存貯器地址比較邏輯把一特定存貯器地址與邊界信息比較之后,總線接口單元即準備作相應(yīng)的反應(yīng)。例如,若控制I/O總線32的I/O設(shè)備正在讀取或?qū)懭霐U展存貯器,則總線接口電路不必把此地址傳給存貯控制器58,從而節(jié)省了時間和存貯器帶寬。
錯誤恢復(fù)支持邏輯112使系統(tǒng)10即使在檢測到數(shù)據(jù)奇偶性錯誤時仍能繼續(xù)運行。在I/O設(shè)備28對系統(tǒng)存貯器24或26的所有讀取或?qū)懭氪嫒≈校紮z測數(shù)據(jù)的奇偶性。支持邏輯112與編程I/O電路116中的寄存器互相作用,以捕獲檢測到的奇偶性錯誤的地址和時間。隨后可由適當(dāng)?shù)南到y(tǒng)軟件來對該寄存器的內(nèi)容起作用。例如,CPU38可編程一個高級別中斷以在檢測到奇偶錯誤時把該地址拉出寄存器。CPU隨后根據(jù)系統(tǒng)軟件指令,決定是否系統(tǒng)繼續(xù)運行,還是僅終止識別出的奇偶性錯誤源的運行。
高速緩沖存貯器窺探邏輯114使總線接口單元64能就I/O設(shè)備經(jīng)I/O總線32對擴展存貯器的寫入進行監(jiān)測。該窺探邏輯首先確定對擴展存貯器的寫入是否發(fā)生在SRAM40中可高速緩沖存貯的擴展存貯器中。若它不是可高速緩沖存貯的擴展存貯器,則不會損壞高速緩沖存貯的數(shù)據(jù)。然而,若表明寫入是發(fā)生在可高速緩沖存貯的擴展存貯器中,則通過系統(tǒng)總線76啟動一高速緩沖存貯無效周期。因而該CPU被指示使SRAM40中的相應(yīng)地址無效。高速緩沖存貯器窺探邏輯114提供了存貯具有肯定比較結(jié)果的地址的裝置,從而在檢測到第一個肯定比較結(jié)果后對I/O總線的窺探能立即繼續(xù),從而允許對I/O總線32的連續(xù)監(jiān)測。
本發(fā)明一般地涉及上述的總線接口單元64,并具體地涉及該總線接口單元的總線至總線調(diào)步控制邏輯128。采用調(diào)步控制邏輯128,是為了通過動態(tài)地控制I/O裝置對系統(tǒng)存貯器的存取,改善I/O總線32把數(shù)據(jù)移入或移出系統(tǒng)存貯器24或26的能力。通過在一定預(yù)定條件下鎖定控制I/O總線32的I/O設(shè)備28對系統(tǒng)存貯器的存取,改善了系統(tǒng)的性能。
總線至總線調(diào)步控制邏輯128,與FIFO緩沖器124一起,被用來使I/O總線控制器的數(shù)據(jù)傳送速度最佳地匹配于系統(tǒng)存貯器的數(shù)據(jù)傳送能力。例如,若一高速I/O控制器寫入系統(tǒng)存貯器的速度快于系統(tǒng)存貯器可接受這些寫入數(shù)據(jù)的速度,則被緩沖的寫入數(shù)據(jù)在可被寫入系統(tǒng)存貯器之前將完全充滿FIFO緩沖器125A-125B。若同一高速I/O控制器從系統(tǒng)存貯器讀出數(shù)據(jù)的速度快于系統(tǒng)存貯器能提供讀取數(shù)據(jù)的速度,是將無法從FIFO緩沖存貯器125C-125D得到預(yù)取的數(shù)據(jù)。在任一情況下,都將導(dǎo)致從I/O總線32這方面來看的數(shù)據(jù)傳送等待時間增加和性能下降。
通常,I/O設(shè)備控制器將啟動一讀或?qū)懖僮?,并?jīng)I/O總線32向總線接口單元64提供一存貯器地址??偩€接口單元的電路110把該地址與編程在電路116中的一定范圍的地址相比較,以確定該操作是否是針對擴展存貯器或系統(tǒng)存貯器的。若確定該操作是針對擴展存貯器的,總線至總線調(diào)步控制邏輯128就什么都不做,因為在此情況下需要優(yōu)先存取系統(tǒng)存貯。然而,若確定讀或?qū)懖僮魇轻槍ο到y(tǒng)存貯器24或26的,且預(yù)定的條件已滿足,則調(diào)步控制邏輯128發(fā)出一信號,它授權(quán)控制著I/O總線32的I/O設(shè)備28連續(xù)優(yōu)先存取系統(tǒng)存貯器。這種信號取代了正常仲裁程序中存貯控制器58的仲裁授予信號輸出。
在下列預(yù)定情況下I/O設(shè)備被授權(quán)優(yōu)先存取系統(tǒng)存貯器(1)控制I/O總線32的I/O設(shè)備發(fā)出的讀請求(預(yù)取)未對準系統(tǒng)存貯器中的預(yù)定16字節(jié)地址邊界,(2)控制I/O總線32的I/O設(shè)備在一寫周期之后緊接著一讀周期,(3)控制I/O總線32的I/O設(shè)備完成了一數(shù)據(jù)傳送周期,(4)控制I/O總線32的I/O設(shè)備正在以流模式(每秒40兆字節(jié))讀取或?qū)懭霐?shù)據(jù),或者,(5)FIFO緩沖器124中的四個16字節(jié)緩沖器中有兩個以上已充滿待寫入系統(tǒng)存貯器的數(shù)據(jù)或四個16字節(jié)緩沖器中有不到兩個還未充滿待從系統(tǒng)存貯器讀出的預(yù)取數(shù)據(jù)。
在本發(fā)明的最佳實施例中,總線至總線調(diào)步控制邏輯128在三種模式下操作。這些模式的第一種是缺省模式,它為上列的前三種情況確定總線控制調(diào)步。這些模式的第二種(選擇1)為上列情況的第四種確定調(diào)步,而這些模式的第三種(選擇2)為上列情況的第五種確定調(diào)步。除了系統(tǒng)自動提供的缺省調(diào)步模式之外,系統(tǒng)用戶還可選擇兩種模式(選擇1或2)中的一種。這種選擇是通過對編程的I/O電路116中的2位寄存器(未顯示)的內(nèi)容進行編程而作出的。缺省模式被定義為0-0-0寄存器內(nèi)容;選擇1被定義為0-0-1寄存器內(nèi)容;而選擇2被定義為1-0-0寄存器內(nèi)容。
如上所述,缺省調(diào)步邏輯為前三種調(diào)步情況處理調(diào)步。在第一種情況下,I/O設(shè)備28請求一個未對準特定的16字節(jié)邊界的系統(tǒng)存貯器讀取,表明該讀取請求是針對開始于16字節(jié)包邊界之內(nèi)某處的數(shù)據(jù)地址的。若讀取數(shù)據(jù)與一特定16字節(jié)包的邊界相對準,系統(tǒng)總線地址發(fā)生電路118將只作數(shù)據(jù)進入緩沖器125C或125D的標準16字節(jié)脈沖串傳送。然而,若讀取數(shù)據(jù)包未對準,數(shù)據(jù)必須用多個1、2、3、4字節(jié)周期預(yù)取。為保證以最有效的方式預(yù)取這些數(shù)據(jù),I/O設(shè)備對系統(tǒng)存貯器的存取被鎖定,同時足夠的數(shù)據(jù)被自動預(yù)取以到達一16字節(jié)邊界。這一少于16字節(jié)的讀取數(shù)據(jù)隨即被同步到I/O總線32的定時,而I/O設(shè)備控制器則開始讀取該數(shù)據(jù)。與I/O裝置控制器讀取數(shù)據(jù)相并行,系統(tǒng)總線地址發(fā)生電路118將在向系統(tǒng)存貯器發(fā)出鎖定信號之前,預(yù)取下一個鄰接的16字節(jié)包。由于該16字節(jié)包始于一預(yù)定邊界,脈沖串傳送是可能的。這樣,不中斷地進行了兩個數(shù)據(jù)傳送。在此情況下采用圖4中的鎖定信號,保證了在I/O總線32上的一個設(shè)備請求數(shù)據(jù)與總線接口單元64預(yù)控制數(shù)據(jù)之間的等待時間為最短,以及頁模式系統(tǒng)存貯器的最有效利用。
在第二種情況下,當(dāng)I/O設(shè)備28從寫入傳送轉(zhuǎn)到讀取請求時,在FIFO緩沖器125A-125D中含有殘留的被緩沖的寫入數(shù)據(jù)。一旦I/O設(shè)備總線控制器從寫入轉(zhuǎn)到讀取,調(diào)步控制邏輯128確定已出現(xiàn)了周期結(jié)束、在FIFO緩沖器124中不再存有寫入數(shù)據(jù)、且正在從系統(tǒng)存貯器24或26中請求讀取的數(shù)據(jù)。由于已知不再有鄰接的寫入數(shù)據(jù)會馬上到來,在一個原子操作中將緩沖器125A-125D中被緩沖的數(shù)據(jù)被寫入系統(tǒng)存貯器且從系統(tǒng)存貯器預(yù)取讀取請求。
在第三種情況下,當(dāng)I/O控制裝置放棄對I/O總線32的控制時,在FIFO緩沖器125A-125D中也可能有殘留的緩沖數(shù)據(jù)。此時,必須在釋放系統(tǒng)總線76之前把這些殘留數(shù)據(jù)寫入系統(tǒng)存貯器。若多于一個FIFO緩沖器125A-125D含有這種殘留數(shù)據(jù),則I/O設(shè)備控制器一放棄對I/O總線32的控制,調(diào)步邏輯128將馬上向系統(tǒng)控制器發(fā)出一信號,表明FIFO緩沖器124中的數(shù)據(jù)超過了一個傳送的長度(即大于16字節(jié))并需要被寫入到系統(tǒng)存貯器24或26中。在此情況下采用鎖定信號140,確保了在I/O控制器釋放對I/O總線32的控制與總線接口單元64釋放對系統(tǒng)總線76的控制之間的待待時間為最短。
響應(yīng)前三種情況的缺省邏輯是由固化在總線接口單元64的硬件中的算法實現(xiàn)的。一般,如先有技術(shù)中已知的,狀態(tài)機可被用來實現(xiàn)所要求的邏輯。響應(yīng)上述第四和第五種情況的調(diào)步邏輯也是由固化在總線接口單元硬件中的算法實現(xiàn)的。圖4和5分別顯示了實現(xiàn)用于選擇1和2的總線至總線調(diào)步控制邏輯128的具體實施例的電路圖。
參見圖4,實現(xiàn)選擇1(涉及上述第四種情況)的總線至總線調(diào)步控制邏輯包括定時S-R鎖存器132、“與”門134和136、以及“或”門138。只要置位鎖存器(S輸入有效),鎖存器就輸出一“LOCK”信號140。“LOCK”信號140,當(dāng)控制I/O總線32的I/O設(shè)備28正在以流模式把數(shù)據(jù)讀出或?qū)懭胂到y(tǒng)存貯器24或26時,為該I/O設(shè)備28提供對系統(tǒng)存貯器的連續(xù)存取。流是指具有鄰接地址的數(shù)據(jù)流的數(shù)據(jù)傳送,其中只需對第一個地址解碼,而后面的地址被認為是鄰接的。
在圖4的邏輯檢測到流數(shù)據(jù)寫入操作,且FIFO緩沖器125C或125D充滿16字節(jié)的被緩沖的寫入數(shù)據(jù)包時,該鎖定信號被啟動,且一脈沖串寫入序列被通過系統(tǒng)總線76發(fā)向系統(tǒng)存貯器,該鎖定信號將保持有效,直到I/O設(shè)備28結(jié)束流序列,或直到不再有數(shù)據(jù)留在FIFO緩沖器中。類似地,在檢測到流數(shù)據(jù)讀取操作時,鎖定信號被啟動,并且一脈沖串讀取序列被發(fā)向系統(tǒng)存貯器并將保持有效,只要FIFO中還有空間,或直到I/O設(shè)備28結(jié)束流序列。響應(yīng)流讀取或?qū)懭氲目偩€控制邏輯128,是通過將3位寄存器130編程為0-0-1寄存器內(nèi)容而確定的。因此,若3位寄存器被編程成0-0-1,“與”門134將對寄存器內(nèi)容進行譯碼并提供一“高”選擇1啟動線142。只要總線接口單元64檢測到控制I/O總線32的特定I/O設(shè)備28正以流模式寫入或讀出數(shù)據(jù),線144將也是“高”的。由于此時線142和144是“高”的,“與”門136將置位鎖存器132,以在“或”門138的輸出146為“高”時輸出“LOCK”信號140。
當(dāng)(ⅰ)控制I/O總線32的I/O設(shè)備28發(fā)出一流數(shù)據(jù)讀取請求(讀取操作)或(ⅱ)FIFO124中的16字節(jié)緩沖器125C或125D二者之一充滿時(寫入操作),“或”門138的輸出146是“高”。在這些情況之任一者下,且當(dāng)線142和144如上所述為“高”時,鎖存器132將通過為存貯控制器58提供一“LOCK”信號140而取代該存貯控制器的仲裁方案。每當(dāng)I/O設(shè)備28表明它不再能流模式傳輸讀取或?qū)懭霐?shù)據(jù)時,線148就變成“高”,從而復(fù)位鎖存器132并有效地停用圖4的邏輯。
參見圖5,用于實現(xiàn)選擇2(與上述第五種條件相關(guān))的總線至總線控制邏輯包括定時S-R鎖存器150和152,在讀取和寫入周期中它們每個均由獨立的邏輯路徑獨立地控制。每當(dāng)這些定時鎖存器150和152之一被置位時,“LOCK”信號得到允許并被輸出到存貯控制器58。這些鎖存器通過啟動R輸入端復(fù)位,從而禁止鎖存器輸出“LOCK”信號。
在上列第五種情況下,或者(ⅰ)數(shù)據(jù)由I/O控制器58經(jīng)I/O總線32正以快于它可被經(jīng)系統(tǒng)總線76寫入系統(tǒng)存貯器的速度寫入總線接口單元64時,或者(ⅱ)數(shù)據(jù)正被I/O控制器28以快于總線接口單元可從系統(tǒng)存貯器預(yù)取數(shù)據(jù)的速度從總線接口單元64讀出。若數(shù)據(jù)正在被一I/O控制器過快地寫入,在FIFO緩沖器125A-125D中開始累積殘留數(shù)據(jù)。若一半以上的FIFO緩沖器空間包含這類殘留數(shù)據(jù),鎖存器152發(fā)出一“LOCK”信號140,以允許向系統(tǒng)存貯器的原子傳送。若I/O控制器28經(jīng)I/O總線32從總線接口單元64讀取數(shù)據(jù)的速度過快,F(xiàn)IFO存貯器125A或125B將變空,表明緩沖器125C和125D中可預(yù)取的鄰接數(shù)據(jù)已耗盡。因此鎖存器150輸出一“LOCK”信號,以便總線接口單元能把數(shù)據(jù)預(yù)取進緩沖器125C和125D。因而,至少一半FIFO緩沖器124保持充滿預(yù)取數(shù)據(jù)。
響應(yīng)于第五種情況的總線控制邏輯,是通過將3位寄存器130編程為1-0-0寄存器內(nèi)容來確定的。因此,若3位寄存器被編為1-0-0,“或非”門154將譯碼寄存器的內(nèi)容并提供“高”選擇2啟動線156。選擇2啟動線156是用于響應(yīng)數(shù)據(jù)讀取操作(圖5邏輯的上半部)和數(shù)據(jù)寫入操作(圖5邏輯的下半部)來啟動控制邏輯的。
在寫入操作中,只要緩沖器125A-125D中至少有兩個是滿的,“或”門160的輸出158也是“高”的。一般,這表明緩沖器125A或125B之一已滿并已分別向緩沖器125C或125D傳送數(shù)據(jù),而緩沖器125A或125B中的另一個正在被充滿。此時,數(shù)據(jù)在緩沖器125C或125D之一或二者中,并可被立即寫入系統(tǒng)存貯器。當(dāng)線156和158為高時,“與”門162將置位鎖存器152,后者隨后向存貯控制器58輸出“LOCK”信號。此“LOCK”信號將保持有效,直至鎖存器152的R輸入端被“與”門164的輸出驅(qū)成“高”?!芭c”門164的輸出在緩沖器125C和125D均變空時變?yōu)椤案摺?,從而表示不必立即把?shù)據(jù)從這些緩沖器寫入系統(tǒng)存貯器。
在讀取操作中,當(dāng)鎖存器150被“與”門166的“高”輸出置位時,鎖存器150將向存貯控制器58輸出“LOCK”信號。當(dāng)(ⅰ)線156由于選擇2有效而是“高”時、(ⅱ)線168由于總線接口單元64檢測到從系統(tǒng)存貯器的讀取而為“高”時、以及(ⅲ)線170線當(dāng)緩沖器125A或125B之一變空時被“或非”門172驅(qū)成“低”時,“與”門166的輸出被驅(qū)成“高”。在此情況下,發(fā)出了一“LOCK”信號,因為當(dāng)緩沖器125A或125B之一是空的時,可將緩沖器125C或125D的內(nèi)容謄到其中,從而在緩沖器125C或125D中為來自系統(tǒng)存貯器的預(yù)取鄰接數(shù)據(jù)留出空間。
在讀取操作中的“LOCK”信號保持為有效,直到鎖存器150的R輸入被“或”門174啟動。每當(dāng)(ⅰ)總線接口單元64檢測到?jīng)]有來自系統(tǒng)存貯器的讀取或(ⅱ)緩沖器125C和125D之一是滿的且緩沖器125A和125B都不空時,“或”門174經(jīng)“或”門176、“或非”門172和“與”門178被驅(qū)成“高”。在這兩種情況之任一種下,“LOCK”信號都不是必需的,因而鎖存器150被復(fù)位。此時對系統(tǒng)存貯器24和26的存取由存貯控制器58實現(xiàn)的正常仲裁方案控制。
至此,已描述了用于有雙總互體系結(jié)構(gòu)的計算機的總線控制邏輯系統(tǒng)的最佳實施方案。然而,應(yīng)理解的是,上面的描述只是以舉例的方式進行的,而且本發(fā)明也不限于這里描述的具體實施例,而且在不脫離所附權(quán)利要求書所請求的本發(fā)明的精神和前提下,可進行各種調(diào)整、修改、以及替換。
權(quán)利要求
1.一種計算機系統(tǒng),包括系統(tǒng)存貯器;用于控制對系統(tǒng)存貯器的存取的存貯控制器,所述系統(tǒng)存貯器和所述存貯控制器由存貯器總線連接;與所述存貯控制器相電連接的中央處理單元,所述中央處理單元可通過所述存貯器總線把數(shù)據(jù)讀出或?qū)懭胨鱿到y(tǒng)存貯器;經(jīng)系統(tǒng)總線與所述存貯控制器相電連接的總線接口單元;經(jīng)輸入/輸出總線與所述總線接口單元相電連接的輸入/輸出設(shè)備;所述計算機系統(tǒng)的特征在于所述存貯控制器包括用于在所述中央處理單元與所述輸入/輸出設(shè)備之間進行仲裁以確定所述中央處理單元與所述輸入/輸出設(shè)備中哪一個應(yīng)被授予經(jīng)所述存貯總線對所述系統(tǒng)存貯器的存取的邏輯;以及所述總線接口單元包括用于取代所述存貯控制器仲裁邏輯的邏輯,所述總線接口邏輯響應(yīng)于一系列預(yù)定的操作情況來取代所述存貯控制器仲裁邏輯并把對系統(tǒng)存貯器的獨占性存取授予所述輸入/輸出設(shè)備。
2.權(quán)利要求1的計算機系統(tǒng),其特征在于所述總線接口邏輯是由固化在所述總線接口單元的硬件中的算法來實現(xiàn)的。
3.權(quán)利要求2的計算機系統(tǒng),其特征在于所述總線接口單元對所述一系列預(yù)定情況的響應(yīng)是可由計算機的用戶編程的。
4.權(quán)利要求2的計算機系統(tǒng),其特征在于所述總線接口單元確定對應(yīng)于一讀出或?qū)懭氩僮鞯牡刂肥欠駥?yīng)于系統(tǒng)存貯器中的一個地址或?qū)?yīng)于處在位于所述輸入/輸出總線上的輸入/輸出設(shè)備之中的擴展存貯器中的一個地址。
5.權(quán)利要求2的計算機系統(tǒng),其特征在于所述系統(tǒng)總線支持讀出或?qū)懭霐?shù)據(jù)在所述總線接口單元和所述系統(tǒng)存貯器之間以高達16字節(jié)帶寬進行的脈沖串傳送,且其中所述輸入/輸出總線支持讀出或?qū)懭霐?shù)據(jù)在所述輸入/輸出設(shè)備和所述總線接口單元之間以1、2或4字節(jié)帶寬進行的傳送。
6.權(quán)利要求4的計算機系統(tǒng),其特征在于所述總線接口單元包括一個雙端口、異步、雙向的存貯單元,該單元在所述系統(tǒng)總線和所述輸入/輸出總線間提供了數(shù)據(jù)信息的臨時存貯。
7.權(quán)利要求6的計算機系統(tǒng),其特征在于所述存貯單元包括至少兩對16字節(jié)緩沖器,所述緩沖器均被用于讀取和寫入操作。
8.權(quán)利要求1的計算機系統(tǒng),其特征在于所述預(yù)定的一系列操作情況之一發(fā)生在當(dāng)所述輸入/輸出設(shè)備收到所述系統(tǒng)存貯器的讀取請求未對準系統(tǒng)存貯器中的預(yù)定16字節(jié)地址邊界時。
9.權(quán)利要求1的計算機系統(tǒng),其特征在于所述預(yù)定的一系列操作情況之一發(fā)生在當(dāng)所述輸入/輸出設(shè)備在對所述系統(tǒng)存貯器的寫入操作之后有對所述系統(tǒng)存貯器的讀取操作的時候。
10.權(quán)利要求1的計算機系統(tǒng),其特征在于所述的預(yù)定一系列操作情況之一發(fā)生在當(dāng)所述輸入/輸出設(shè)備完成一數(shù)據(jù)傳送操作時。
11.權(quán)利要求1的計算機系統(tǒng),其特征在于所述的預(yù)定一系列操作情況之一發(fā)生在當(dāng)所述輸入/輸出設(shè)備正以流模式對所述系統(tǒng)存貯器進行讀取或?qū)懭霑r。
12.權(quán)利要求7的計算機系統(tǒng),其特征在于所述的預(yù)定一系列操作情況之一發(fā)生在當(dāng)所述雙向存貯單元的一半以上的緩沖空間充滿了待寫入系統(tǒng)存貯器的數(shù)據(jù)或在讀取系統(tǒng)存貯器的過程中所述的雙向存貯單元的一半以上緩沖空間是空的的時候。
13.一種用于控制對計算機系統(tǒng)中的系統(tǒng)存貯器的存取的方法,其特征在于下述步驟提供一存貯控制器,該控制器用于在中央處理單元和輸入/輸出設(shè)備間進行仲裁以確定所述中央處理單元和所述輸入/輸出設(shè)備中的哪一個應(yīng)被授予對系統(tǒng)存貯器的存取以執(zhí)行對所述系統(tǒng)存貯器的讀取或?qū)懭氩僮?以及提供與所述存貯控制器相電連接的總線接口單元,該單元包括用于取代所述存貯控制器的邏輯,所述總線接口邏輯響應(yīng)于一系列預(yù)定操作情況來取代所述存貯控制器邏輯并授予所述輸入/輸出設(shè)備對系統(tǒng)存貯器的獨占存取。
14.權(quán)利要求13的方法,其特征在于所述總線接口單元確定對應(yīng)于一讀取或?qū)懭氩僮鞯牡刂肥欠駥?yīng)于系統(tǒng)存貯器中的一個地址或?qū)?yīng)于位于處在所述輸入/輸出總線上的輸入/輸出設(shè)備中的擴展存貯器中的地址。
15.權(quán)利要求14的方法,其特征在于所述系統(tǒng)總線在所述總線接口單元和所述系統(tǒng)存貯器間以高達16字節(jié)的帶寬傳送讀取或?qū)懭霐?shù)據(jù),且其中所述輸入/輸出總線在所述輸入/輸出設(shè)備和所述總線接口單元之間以1、2或4字節(jié)的帶寬傳送讀出或?qū)懭霐?shù)據(jù)。
16.權(quán)利要求13的方法,其特征在于所述總線接口單元包括一個雙端口、異步、雙向的存貯單元,該單元暫時存貯在所述系統(tǒng)總線和所述輸入/輸出總線之間傳送的數(shù)據(jù)信息。
17.權(quán)利要求16的方法,其特征在于所述存貯單元包括至少兩對16字節(jié)緩沖器,兩對所述緩沖器均被用于讀取和寫入操作。
18.權(quán)利要求13的方法,其特征在于所述預(yù)定系列操作情況之一發(fā)生在當(dāng)所述輸入/輸出裝置發(fā)給所述系統(tǒng)存貯器的讀取請求未與系統(tǒng)存貯器中的預(yù)定16字節(jié)地址邊界對準時。
19.權(quán)利要求13的方法,其特征在于所述預(yù)定系列操作情況之一發(fā)生在當(dāng)所述輸入/輸出設(shè)備在對所述系統(tǒng)存貯器的寫入操作之后有對所述系統(tǒng)存貯器的讀取操作的時候。
20.權(quán)利要求13的方法,其特征在于所述預(yù)定系列操作情況之一發(fā)生在當(dāng)所述輸入/輸出設(shè)備完成一數(shù)據(jù)傳送操作時候。
21.權(quán)利要求13的方法,其特征在于所述預(yù)定系列操作情況之一發(fā)生在當(dāng)所述輸入/輸出設(shè)備正在以流模式讀取或?qū)懭胨鱿到y(tǒng)存貯器時。
22.權(quán)利要求17的方法,其特征在于所述預(yù)定系列操作情況之一發(fā)生在當(dāng)所述雙向存貯單元中一半以上的緩沖空間充滿了待寫入到系統(tǒng)存貯器中的數(shù)據(jù)或所述雙向存貯單元中一半以上的緩沖空間在讀取存貯器期間為空的的時候。
全文摘要
計算機系統(tǒng),包括系統(tǒng)存貯器及控制通過存貯總線對其存取的存貯控制器、與之電連接并通過存貯總線把數(shù)據(jù)讀出或?qū)懭胂到y(tǒng)存貯器的CPU、經(jīng)系統(tǒng)總線與存貯控制器相電連接的總線接口單元、及I/O設(shè)備。存貯控制器包括在CPU和I/O設(shè)備間進行仲裁的邏輯,以確定二者中那個應(yīng)被授權(quán)經(jīng)所述存貯器總線對系統(tǒng)存貯器存取??偩€接口單元包括據(jù)一系列預(yù)定操作情況取代存貯控制器邏輯并把對系統(tǒng)存貯器的獨占存取授予I/O設(shè)備的邏輯。
文檔編號G06F13/16GK1074050SQ9211447
公開日1993年7月7日 申請日期1992年12月17日 優(yōu)先權(quán)日1992年1月2日
發(fā)明者納德爾·阿米尼, 貝卡拉·法德·伯利, 舍伍德·布蘭農(nóng), 理查德·路易斯·霍恩, 特倫斯·約瑟夫·郎曼 申請人:國際商業(yè)機器公司