亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

集成pci至pci橋的i/o處理器的體系結(jié)構(gòu)的制作方法

文檔序號:6411131閱讀:251來源:國知局
專利名稱:集成pci至pci橋的i/o處理器的體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機系統(tǒng)體系結(jié)構(gòu)領(lǐng)域。更確切地說,本發(fā)明涉及一種用于實現(xiàn)計算機和服務(wù)器系統(tǒng)中的智能輸入/輸出子系統(tǒng)的智能總線橋。
高性能計算機系統(tǒng)普遍包括獨立的輸入/輸出子系統(tǒng)。這種輸入/輸出子系統(tǒng)一般包括一個獨立于主微處理器、執(zhí)行輸入/輸出功能的微處理器。例如,這種輸入/輸出子系統(tǒng)可以為計算機系統(tǒng)執(zhí)行復(fù)雜的通信網(wǎng)絡(luò)接口功能或磁盤控制功能。
一般來說,輸入/輸出子系統(tǒng)中連接有用于在部件總線上通信的一組專用輸入/輸出設(shè)備。這種輸入/輸出子系統(tǒng)的處理器一般是通過總線來執(zhí)行輸入/輸出功能地,它不干涉計算機系統(tǒng)中其它處理器的操作??偩€上輸入/輸出事務(wù)處理的這種分離,使這種計算機系統(tǒng)中的主處理器(組)能改進(jìn)性能。這種體系結(jié)構(gòu)普遍存在于主機計算機系統(tǒng)中,其中該處理器和輸入/輸出子系統(tǒng)被稱為I/O通道。
隨著采用微處理器的計算機系統(tǒng)、特別是服務(wù)器/客戶機系統(tǒng)的出現(xiàn),越來越要求有功能更強的微處理器來實現(xiàn)功能更強的服務(wù)器/客戶機系統(tǒng)。如附

圖1所示的單系統(tǒng)11中多微處理器的組合部分地滿足了這種需要。隨著為實現(xiàn)功能更強的服務(wù)器/客戶機系統(tǒng)所需I/O設(shè)備數(shù)量的增加而遇到的另一個問題是,連接輸入/輸出子系統(tǒng)與計算機系統(tǒng)中其它元素的標(biāo)準(zhǔn)部件總線具有電力負(fù)載限制。這種電力負(fù)載限制,限制了連接到標(biāo)準(zhǔn)部件總線的部件的數(shù)目。例如,現(xiàn)有技術(shù)水平的一個總線標(biāo)準(zhǔn),要求系統(tǒng)部件互聯(lián)總線上的連接器只有一種電力負(fù)載。這種電力負(fù)載限制保證滿負(fù)荷總線上信號的質(zhì)量足以用來進(jìn)行可靠的操作。
這一方面,由于有些輸入/輸出子系統(tǒng)需要的通過本地部件總線通信的部件的數(shù)量大,有可能會突破標(biāo)準(zhǔn)部件總線上各連接器的規(guī)定電力負(fù)載要求,所以輸入/輸出子系統(tǒng)也可以包括一個將本地部件總線17連接到計算機系統(tǒng)中通過網(wǎng)絡(luò)I/O卡21與諸如局域網(wǎng)的網(wǎng)絡(luò)連接或通過SCSI控制器23與存儲設(shè)備連接的其它部件總線19的總線橋電路13。這種總線橋?qū)⑽⑻幚砥?組)25、存儲器27和輸入/輸出子系統(tǒng)的部件與其它部件總線電隔離開來。這種總線橋電路使輸入/輸出子系統(tǒng)能容納實現(xiàn)輸入/輸出功能所需的大量部件,同時又滿足對其它部件總線的電力負(fù)載要求。
此外,系統(tǒng)11中的微處理器(組)一般來說一定會與連接到部件總線的其它總線代理(agents)進(jìn)行競爭。一般來說,這種對總線的爭奪會降低微處理器(組)為輸入/輸出子系統(tǒng)執(zhí)行輸入/輸出功能時的性能。
本發(fā)明是一種將高性能處理器集成到PCI至PCI總線橋(P2P)的多功能設(shè)備。參見附圖2,本發(fā)明將諸如英特爾公司的80960 JF處理器的高性能處理器(本地處理器)、PCI至PCI總線橋32、PCI總線-處理器地址翻譯單元、直接存儲器訪問(DMA)控制器、存儲器控制器、次級PCI總線仲裁單元、互連集成電路(I2C)總線接口單元、高級可編程中斷(APIC)總線接口單元、報文傳遞單元,組成一個使用本地存儲器33的單一系統(tǒng)31。該系統(tǒng)是一種集成處理器,它既照顧了智能I/O應(yīng)用的各種需要,又有助于降低智能I/O系統(tǒng)的成本。
PCI總線是一種符合工業(yè)標(biāo)準(zhǔn)(PCI本地總線標(biāo)準(zhǔn)2.1版)的高性能、低遲滯系統(tǒng)總線。PCI至PCI橋為兩個獨立的32位PCI總線之間提供了一條連接通路,提供了克服電力負(fù)載限制的能力。本地處理器的加入則為PCI橋增添了智能。附圖3內(nèi)虛框31所示的本地處理器和其它功能塊,表示以下將稱為P2P處理器的一個框圖。
P2P處理器是一種多功能PCI設(shè)備。功能元件0是PCI至PCI橋單元。功能元件1是地址翻譯單元。P2P處理器中含有可通過初級PCI總線訪問的PCI配置空間。
較佳實施例中的本地處理器34,是英特爾i960系列中的一個80960 JF處理器。在P2P處理器中實現(xiàn)的80960 JF處理器無需功能性的改動。本文提供了實施本發(fā)明所需的本地處理器有關(guān)部分的全部資料,英特爾公司的《i960 Jx微處理器用戶手冊》中還有更詳細(xì)的資料。
本地處理器是以其自身的32位地址空間而不是PCI地址空間進(jìn)行操作的。本地處理器上的存儲器可以
·對PCI地址空間可見的
·保持對本地處理器專用的
·這兩者的結(jié)合
本地處理器總線41
本地處理器總線連接到P2P處理器的I/O接插引線,提供對外部設(shè)備的總線訪問。P2P處理器為本地總線仲裁提供支持。
地址翻譯單元43a、43b和報文傳遞單元45
地址翻譯單元允許PCI事務(wù)處理直接訪問本地處理器的本地存儲器33。本地處理器34可直接訪問兩個PCI總線。地址翻譯被提供用于PCI地址空間與本地處理器地址空間之間的事務(wù)處理。地址翻譯是通過可編程寄存器控制的,可編程寄存器既可從PCI接口訪問,又可從本地處理器訪問,使得兩種地址空間的映射靈活。報文傳遞單元45提供了一種在PCI系統(tǒng)與本地處理器之間傳送數(shù)據(jù)的機制,它通過中斷通知各系統(tǒng)有新數(shù)據(jù)到來。報文傳遞單元可用于發(fā)送和接收報文。
PCI至PCI橋單元32
PCI至PCI橋單元連接兩個獨立的PCI總線。該橋允許某些總線事務(wù)處理被從一個PCI總線轉(zhuǎn)移到另一個PCI總線上。它還允許完全獨立的PCI總線操作,包括獨立的時鐘。專用數(shù)據(jù)隊列支持PCI總線的高性能帶寬。PCI 64位雙地址周期(DAC)尋址得到支持。
PCI至PCI橋單元有可通過初級PCI總線訪問的專門的PCI配置空間。
P2P處理器中的PCI至PCI橋單元完全符合PCI專業(yè)組(SpecialInterest Group)出版的PCI橋體系結(jié)構(gòu)標(biāo)準(zhǔn)(1.0版)。
專用PCI設(shè)備
P2P處理器設(shè)計上明確支持可使用次級PCI總線而又避開PCI配置軟件檢測的專用PCI設(shè)備。PCI至PCI橋和次級地址翻譯單元43b合作,在PCI配置周期隱藏專用設(shè)備,并允許這些設(shè)備使用專用的PCI地址空間。這些設(shè)備可由次級地址翻譯單元通過PCI配置周期進(jìn)行配置。
集成存儲器控制器47
集成存儲器控制器為外部存儲器系統(tǒng)提供直接控制。它支持DRAM、SRAM、ROM和Flash存儲器。集成存儲器控制器為通常不需要外部邏輯的存儲器33提供一種直接連接接口。其特點是具有可編程的芯片選擇、等待狀態(tài)發(fā)生器、字節(jié)奇偶校驗。
可將外部存儲器配置為PCI可尋址存儲器或作為專用本地處理器存儲器。
DMA控制器51a和51b
DMA控制器允許在PCI總線代理與本地存儲器之間進(jìn)行等待時間短、通量高的數(shù)據(jù)傳輸。
有三個分離的DMA通道可用于數(shù)據(jù)傳輸。其中兩個通道專門用于初級PCI總線的數(shù)據(jù)傳輸、一個通道專門用于次級PCI總線的數(shù)據(jù)傳輸。DMA控制器支持鏈接式數(shù)據(jù)傳輸和非對齊(unaligned)數(shù)據(jù)傳輸。只有通過本地處理器34才可被編程。
次級PCI仲裁單元53
次級PCI仲裁單元為次級PCI總線提供PCI仲裁。它執(zhí)行一個具有可編程優(yōu)先權(quán)的公平算法。設(shè)有6個PCI請求和同意信號對。該仲裁單元可被鎖閉,以允許進(jìn)行外部仲裁。
內(nèi)部PCI和本地總線仲裁單元55a、55b、57
P2P處理器中含有兩個內(nèi)部仲裁單元,控制對設(shè)備內(nèi)的內(nèi)部PCI總線的訪問,它們是為初級橋接口、初級ATU、DMA通道0、DMA通道1進(jìn)行仲裁的初級內(nèi)部PCI仲裁單元55a,為次級橋接口、次級ATU、DMA通道2進(jìn)行仲裁的次級內(nèi)部PCI仲裁單元55b。每個內(nèi)部仲裁單元使用一種固定的輪式仲裁方案,總線上的每個設(shè)備具有相同的優(yōu)先權(quán)。
P2P處理器也要求有一種仲裁機制來控制本地總線的所有權(quán)。本地總線仲裁單元(LBAU)57執(zhí)行的公平算法,使每個總線主有獲得本地總線控制權(quán)的機會。該算法綜合采用了輪式仲裁方案和優(yōu)先權(quán)機制。
I2C總線接口單元61
I2C總線(互連集成電路)接口單元允許本地處理器擔(dān)當(dāng)駐留在I2C總線上的主控設(shè)備和從屬設(shè)備的角色。I2C總線是Philips公司開發(fā)的一種串行總線,由一個兩針接口組成。該總線允許P2P處理器為了系統(tǒng)管理功能而與其它I2C外圍設(shè)備和微控制器進(jìn)行對接。它以最低的硬件要求為經(jīng)濟性的系統(tǒng)在I/O子系統(tǒng)上將狀態(tài)信息和可靠性信息中轉(zhuǎn)到外部設(shè)備。
APIC總線接口單元63
APIC總線接口單元提供了對允許進(jìn)行I/O高級可編程中斷控制器(APIC)軟件模擬的三線APIC總線的接口。可以在總線上發(fā)送中斷報文,也可以接收EOI報文。
中斷路由分配67
提供了4個PCI中斷輸入,它們可被選擇路由到本地處理器中斷輸入端,也可被選擇路由到PCI中斷輸出接插引線。
術(shù)語與約定
表示數(shù)字
本文所有數(shù)字均為十進(jìn)制,除非另加注明。文本中的十六進(jìn)制數(shù)表示為“nnnH”,其中的H表示十六進(jìn)制。二進(jìn)制數(shù)以下標(biāo)2標(biāo)注。

數(shù)據(jù)結(jié)構(gòu)中的保留域,是處理器不使用的域。保留域可以被軟件使用,處理器不改變這些域。
保留域是一種可以被一個實現(xiàn)所使用的域。如果保留域的初始值由軟件提供,則該值必須為0。軟件不得修改保留域或依賴保留域中的任何值。
只讀域可被讀取以返回當(dāng)前值。對只讀域的寫操作將被作為空(no-op)操作對待,既不改變當(dāng)前值,也不產(chǎn)生出錯條件。
讀/清除域也可被讀取以返回當(dāng)前值。以數(shù)值0對讀/清除域進(jìn)行寫操作不會改變該域的內(nèi)容;以數(shù)值1對讀/清除域進(jìn)行寫操作會使該域的內(nèi)容被清除(復(fù)位到0值)。例如,假設(shè)某讀/清除域的值為F0H,用數(shù)據(jù)值55H寫入,結(jié)果,域的內(nèi)容變?yōu)锳0H。
術(shù)語
為便于討論P2P體系結(jié)構(gòu),使用了下列術(shù)語
下游(Downstream) 位于或朝向編號較高(配置后的)的PCI總線
雙字(DWORD) 32位數(shù)據(jù)字
主處理器 位于P2P處理器上游的處理器
本地總線 本地處理器總線
本地存儲器本地總線上的存儲器子系統(tǒng)
上游 位于或朝向(配置后)編號較低的PCI總線
附圖簡要說明
附圖1是表示使用現(xiàn)有技術(shù)PCI至PCI橋的一個系統(tǒng)的方框圖。
附圖2是表示使用按照本發(fā)明方法發(fā)明的帶處理器的PCI至PCI橋的一個系統(tǒng)的方框圖。
附圖3是表示所發(fā)明的P2P處理器的方框圖。
附圖4表示PCI至PCI橋的初級地址空間與次級地址空間之間事務(wù)處理流的方向。
附圖5是表示PCI至PCI橋的方框圖。
附圖6是表示初級地址翻譯單元和次級地址翻譯單元的方框圖。
附圖7是表示直接存儲器訪問控制器與各種總線的連接的方框圖。
附圖8是存儲器控制器的方框圖。
附圖9是表示本地處理器與PPIC之間的連接的方框圖。
附圖10是表示內(nèi)部PCI仲裁單元的連接的方框圖。
附圖11是表示I2C總線接口單元及其與本地總線的接口的方框圖。
發(fā)明的詳細(xì)說明
現(xiàn)在就按附圖3中的功能方框?qū)Ρ景l(fā)明加以說明。本地處理器
下面描述在P2P處理器中用作本地處理器的80960 JF微處理器。文中表述了80960 JF處理器的配置方法和與《i960 Jx微處理器用戶手冊》中的描述不同的部分。概述
80960 JF微處理器在P2P處理器中的實現(xiàn)無需作功能性的改動,即不改變內(nèi)部邏輯。有關(guān)80960 JF微處理器的更詳細(xì)資料請參閱《i960 Jx微處理器用戶手冊》。性質(zhì)
80960 JF微處理器有如下基本性質(zhì)
·高性能指令執(zhí)行內(nèi)核
·4K字節(jié)的兩路組相聯(lián)(2-way set associative)指令高速緩沖存儲器
·2K字節(jié)的直接映射數(shù)據(jù)高速緩沖存儲器
·32個32位整數(shù)寄存器
·可編程總線控制器
·1K字節(jié)的內(nèi)部數(shù)據(jù)隨機存取存儲器(RAM)
·本地寄存器高速緩沖存儲器,它提供多達(dá)8個本地寄存器組的存儲空間
·高級中斷控制器
·2個32位定時器差異點
以下描述系統(tǒng)設(shè)計中對P2P處理器中使用的80960 JF微處理器有影響的決定。
存儲器區(qū)域
因為P2P處理器的外圍存儲器映射寄存器寬度為32位,存儲器區(qū)0和1必須被指定是一個32位的區(qū)域。因而,PMCON0_1寄存器中必須設(shè)置總線寬度位為102,指示32位寬的總線。
總線
為使DMA訪問的性能最優(yōu),允許本地總線上本地處理器之外的總線主在本地處理器總線上具有無限制的脈沖串長度。然而,長度超過4個字的脈沖串的地址不作遞增。這其中的含義是,本地總線上存儲器控制器必須對脈沖串中的每個訪問遞增地址。PCI至PCI橋單元概述
PCI至PCI橋單元32是一個允許擴展PCI總線至其10個電氣PCI負(fù)荷的物理限度以上的設(shè)備。該橋單元使用分層體系總線的概念,分層體系總線中的每個總線是一個電獨立的單位,但分層體系內(nèi)的所有總線邏輯上構(gòu)成一個總線。PCI至PCI橋單元不增加PCI總線的帶寬,它只允許為需要超過電力標(biāo)準(zhǔn)允許數(shù)目的I/O部件的應(yīng)用對總線進(jìn)行擴展。
PCI至PCI橋單元提供
·支持任一方向上的并發(fā)操作的獨立的32位初級PCI總線和次級PCI總線;
·位于橋的次級端的分離的存儲器和I/O地址空間;
·用于上游、下游事務(wù)處理的2個64字節(jié)投遞緩沖器(postingbuffers);
·VGA調(diào)色板探測(palette snooping)和次級總線上VGA兼容的尋址;
·從次級PCI接口的64位尋址模式;
·專用設(shè)備配置及次級PCI總線上專用PCI設(shè)備的地址空間;
·允許在初級接口和次級接口上正解碼(positive decoding)的特別操作模式。操作原理
橋單元起著初級PCI總線和次級PCI總線之間的地址過濾器的作用。PCI支持3種分離的地址空間·4G字節(jié)的存儲器地址空間·64K字節(jié)的I/O地址空間(16位尋址)·單獨的配置空間
PCI至PCI橋以存儲器和I/O地址空間內(nèi)的連續(xù)的地址范圍編程,這些存儲器和I/O地址空間然后變成次級PCI地址空間。出現(xiàn)在其范圍在程序設(shè)置的次級空間內(nèi)的橋的初級端上任何地址均被從初級端傳遞到次級端,而范圍在該次級空間之外的地址則被橋忽略。橋的次級端的工作與初級端相反,如附圖4所示,它忽略程序設(shè)置的次級空間范圍內(nèi)的地址,而將該次級空間之外的所有地址傳遞到初級端。
PCI橋的初級和次級接口各自實現(xiàn)符合PCI 2.1標(biāo)準(zhǔn)的主和目標(biāo)設(shè)備。在橋的一端被啟動的PCI事務(wù)處理將把啟動事務(wù)處理的總線橋接口當(dāng)作目標(biāo),該事務(wù)處理將由按主設(shè)備操作的該目標(biāo)總線接口完成。橋?qū)Τ跫壎撕痛渭壎松系腜CI設(shè)備都是透明的。
P2P處理器的PCI至PCI橋單元至少具有《PCI至PCI橋體系結(jié)構(gòu)規(guī)范》(1.0版)和《PCI本地總線規(guī)范》(2.1版)中所要求的性質(zhì)。以下說明橋的功能,適當(dāng)時要引用《PCI至PCI橋和PCI總線規(guī)范》的內(nèi)容。體系結(jié)構(gòu)說明
PCI至PCI橋單元邏輯上可劃分以下4個主要部分
·初級PCI接口
·次級PCI接口
·投遞緩沖器
·配置寄存器
附圖5中橋的框圖顯示了這些主要功能單元。初級PCI接口
PCI至PCI橋的初級PCI接口71既可以作為PCI總線事務(wù)處理的目標(biāo)也可以作為PCI總線事務(wù)處理的啟動器。在大多數(shù)系統(tǒng)中,初級接口與一般來說是系統(tǒng)分層體系中最低編號PCI總線的主機/PCI橋的PCI側(cè)相連。初級接口由50個在《PCI至PCI橋體系結(jié)構(gòu)規(guī)范》(1.0版)中定義的必須信號接插引線和4個可選中斷接插引線組成。
初級接口既實現(xiàn)啟動器(主)又實現(xiàn)目標(biāo)(從)PCI設(shè)備。當(dāng)次級總線上有事務(wù)處理被啟動時,初級主狀態(tài)機(the primary master statemachine—《PCI本地總線規(guī)范》(2.1版)對其有描述)就如同啟動設(shè)備一樣完成該事務(wù)處理(讀或?qū)?。初級PCI接口作為需要在次級總線上完成的事務(wù)處理的PCI目標(biāo)設(shè)備,接收事務(wù)處理并將請求傳遞到次級端。作為目標(biāo)設(shè)備,初級PCI接口用正解碼(positive decoding)要求在橋的下方提出的PCI事務(wù)處理,然后將該事務(wù)處理傳遞到次級主接口(secondary master interface)上。
初級PCI接口負(fù)責(zé)所有命令解釋、地址解碼及出錯處理。
初級接口與次級接口的PCI配置、中斷路由選擇邏輯(下文描述)、次級PCI總線仲裁是通過初級接口完成的。配置空間寄存器支持這些功能。
次級PCI接口
PCI至PCI橋單元的次級PCI接口73的作用方式幾乎與初級接口的一樣。它既包括一個PCI主設(shè)備也包括一個PCI從設(shè)備,并用系統(tǒng)使用的一組新的PCI電氣負(fù)載實現(xiàn)“第二”PCI總線。次級PCI接口由49個必須信號接插引線組成。S_RST#是次級端上的一個輸出而不是輸入。
次級PCI接口作為從(目標(biāo))設(shè)備,負(fù)責(zé)要求在橋的次級存儲器或I/O地址空間中安置不下的PCI事務(wù)處理,將這些事務(wù)處理向上傳遞過橋,給初級端的主設(shè)備。次級PCI接口作為主設(shè)備(啟動器),負(fù)責(zé)完成在橋的初級側(cè)上啟動的事務(wù)處理。次級PCI接口使用橋地址寄存器的逆解碼(inverse decoding),只將范圍在初級地址空間內(nèi)的地址傳遞過橋。
次級PCI接口還為次級總線上的專用PCI設(shè)備實現(xiàn)一個單獨的地址空間,這時次級PCI接口忽略并且不傳遞由本地處理器在配置時定義的初級地址范圍。
作為一種特殊的操作模式,次CPI接口根據(jù)其自有的存儲器和I/O地址寄存器執(zhí)行正地址解碼。這種操作模式是通過二級解碼選通寄存器(SDER)得以實現(xiàn)的,具有鎖閉次級接口上標(biāo)準(zhǔn)橋地址寄存器的逆解碼的副作用。
投遞緩沖器
為了對橋的對面隱蓋在讀和寫事務(wù)處理期間仲裁PCI目標(biāo)和獲得PCI目標(biāo)中產(chǎn)生的遲滯,PCI至PCI橋單元實行兩個64字節(jié)的投遞緩沖器77和79。橋既支持延遲事務(wù)處理(Delayed transactions)又支持投遞事務(wù)處理(Posted transactions)。
延遲事務(wù)處理中,完成事務(wù)處理所需的信息被鎖存,事務(wù)處理被重試信號中止。然后,橋就代表啟動器執(zhí)行事務(wù)處理。要求啟動器重復(fù)被用重試信號中止的原始事務(wù)處理,以便完成該事務(wù)處理。
投遞事務(wù)處理中,允許事務(wù)處理在目標(biāo)總線上完成之前,在啟動總線上先行完成。
下面詳細(xì)討論延遲事務(wù)處理和投遞事務(wù)處理。
橋使用兩個投遞緩沖器
·用于寄存自初級接口流向次級接口的數(shù)據(jù)的下游投遞緩沖器77;
·用于寄存自次級接口流向初級接口的數(shù)據(jù)的上游投遞緩沖器79。
各緩沖器均有關(guān)聯(lián)的地址/控制寄存器,用來保存有關(guān)事務(wù)處理的信息。
配置寄存器
每個PCI設(shè)備實現(xiàn)一個獨立的配置地址空間及配置寄存器81。橋配置首部格式的前16個字節(jié)實現(xiàn)所有PCI設(shè)備所要求的公用配置寄存器。只讀首部類型寄存器中的值定義了首部內(nèi)其余48個字節(jié)的格式,對PCI至PCI橋返回01H。
初級總線上的設(shè)備只能以0類型的配置命令訪問PCI至PCI橋的配置空間。次級PCI總線上的設(shè)備不能以PCI配置周期訪問橋的配置空間。配置寄存器中存放著橋的兩邊均需要的地址譯碼、出錯條件和狀態(tài)信息。地址解碼
P2P處理器提供3個獨立的地址區(qū)間,它們被用于確定以任一方向通過P2P處理器的橋部分被發(fā)送的是哪些存儲器和I/O地址。用于存儲器事務(wù)處理的地址區(qū)間有2個,用于I/O事務(wù)處理的地址區(qū)間有1個。橋用一個基地址寄存器和界限寄存器來實現(xiàn)一個地址區(qū)間。在初級接口上的地址區(qū)間被正解碼,將區(qū)間內(nèi)的任何地址認(rèn)為是次級地址,因此能被向下游發(fā)送過橋。在次級接口上的地址區(qū)間被逆解碼。這意味著程序設(shè)置的地址區(qū)間之外的任何地址均能被向上游發(fā)送過橋。
標(biāo)準(zhǔn)橋單元地址解碼也能被次級解碼選通寄存器(SDER)修改。這個寄存器內(nèi)的數(shù)據(jù)位允許次級橋接口的正地址解碼,禁止PCI至PCI橋所使用的基本逆地址解碼。
I/O地址空間
PCI至PCI橋單元實現(xiàn)一個用于PCI I/O事務(wù)處理的可編程地址區(qū)間。橋配置空間中的I/O基址寄存器(IOBR)和I/O界限寄存器(IOLR)定義一個連續(xù)的I/O地址空間。IOBR的高4位對應(yīng)I/O地址的AD[1512],低12位總是000H,促使I/O地址空間的4K字節(jié)對齊。IOLR的高4位也對應(yīng)I/O地址的AD[1512],低12位為FFFH,促使粒度為4K字節(jié)。
橋單元將從初級接口向次級接口發(fā)送一個具有在IOBR和IOLR(含)定義的地址區(qū)間之內(nèi)的地址的I/O事務(wù)處理,在這種情況下,對于該橋接I/O事務(wù)處理來說,初級接口起著PCI目標(biāo)的作用,次級接口起著PCI啟動器的作用。
次級總線上出現(xiàn)一個I/O讀或?qū)懯聞?wù)處理時,如果事務(wù)處理的地址在IOBR和IOLR定義的地址區(qū)間之外,橋單元就將該事務(wù)處理發(fā)送至初級接口。在這種情況下,次級接口起著PCI目標(biāo)的作用,初級接口起著PCI啟動器的作用。
P2P處理器只支持16位的地址用于I/O事務(wù)處理,因此,地址大于64K字節(jié)的I/O事務(wù)處理既不會被發(fā)送到初級接口也不會被發(fā)送到次級接口。即使數(shù)據(jù)位AD[3116]沒有在IOBR和IOLR中被實現(xiàn),橋也要假設(shè)AD[3116]=000H。橋單元仍然必須在I/O事務(wù)處理期間執(zhí)行一個完整的32位譯碼操作,按《PCI本地總線規(guī)范》檢驗AD[3116]=000H。
ISA模式
P2P設(shè)備的PCI至PCI橋單元在橋控制寄存器(BCR)中實現(xiàn)一個ISA模式位,用于為從屬PCI總線上的ISA I/O卡提供ISA指示。ISA模式只影響IOBR和IOLR寄存器定義的地址區(qū)間之內(nèi)的那些I/O地址。當(dāng)通過對ISA模式位置位啟動ISA模式時,對于地址在各個自然對齊的1K字節(jié)塊的高768字節(jié)(300H)的I/O事務(wù)處理,橋?qū)⑵錇V除而不發(fā)送;與其相反,次級總線上的I/O事務(wù)處理則逆解碼這些ISA地址,因而發(fā)送地址在各個自然對齊的1K字節(jié)塊的高768字節(jié)(300H)的I/O事務(wù)處理。
存儲器地址空間
PCI至PCI橋單元支持兩個用于從初級接口向下游發(fā)送存儲器訪問至次級接口的獨立地址區(qū)間。存儲器基址寄存器(MBR)和存儲器界限寄存器(MLR)定義一個地址區(qū)間,可預(yù)取存儲器基址寄存器(PMBR)和可預(yù)取存儲器界限寄存器(PMLR)定義另一個地址區(qū)間。可預(yù)取地址區(qū)間用于確定哪些存儲器空間可以預(yù)取而無副作用。這兩對寄存器都確定橋何時將發(fā)送“存儲器讀”、“存儲器讀行”(Memory Read Line)、“存儲器讀多次”(Memory Read Multiple)、“存儲器寫”、“存儲器寫及無效”事務(wù)處理過橋。如果兩對寄存器重疊,則產(chǎn)生一個地址區(qū)間,該地址區(qū)間是與優(yōu)先于橋讀事務(wù)處理響應(yīng)的可預(yù)取區(qū)間組合的兩個寄存器的和。
寄存器MBR、MLR、PMBR、PMLR的高12位對應(yīng)主存儲器地址或次級存儲器地址的地址位D[3120]。為譯碼目的,橋假設(shè)兩個存儲器基址寄存器的AD[190]均為00000H,兩個存儲器界限寄存器的AD[190]均為FFFFFH。這促使由橋單元支持的各存儲器地址區(qū)間被對齊在1M字節(jié)的邊界上并具有1M字節(jié)的大小粒度(size granularity)。所有4個寄存器的低4位均為只讀型,被讀時返回零。
地址范圍處于兩對寄存器(MBR-MLR與PMBR-PMLR)所定義地址區(qū)間之內(nèi)的任何PCI存儲器事務(wù)處理(而不是I/O事務(wù)處理),均被從初級接口向下游發(fā)送過橋至次級接口。在曾被初級總線上初級從接口要求(claimed)的次級總線上,次級主接口(secondary master interface)總是使用相同的命令類型(在“存儲器寫及無效”事務(wù)處理期間的某些情況除外)。所有的雙地址周期(dual address cycles)(64位地址的事務(wù)處理)總是被次級接口要求。
地址范圍處于兩對寄存器(MBR-MLR與PMBR-PMLR)所定義地址區(qū)間之外的任何PCI存儲器事務(wù)處理,均被從次級接口向上游發(fā)送過橋至初級接口。次級接口從次級總線將所有的雙地址周期發(fā)送到初級總線。雙地址周期被限制在64位地址空間的高4G字節(jié)。
通過橋配置空間中的下列寄存器位可修改橋?qū)Τ跫?、次級接口中任一接口的響?yīng)
·初級命令寄存器(PCMD)中的主啟動位
·初級命令寄存器(PCMD)中的存儲器啟動位
·橋控制寄存器(BCR)中的VGA啟動位
·次級解碼啟動寄存器(SDER)中的次級正存儲器解碼啟動位
次級解碼啟動寄存器(SDER)中的次級正存儲器解碼啟動位修改次級地址解碼。它啟動一對地址區(qū)間寄存器、次級存儲器基址寄存器(SMBR)與次級存儲器界限寄存器(SMLR),這些寄存器為次級總線上要求存儲器事務(wù)處理及發(fā)送過橋而定義一個地址窗。該解碼和事務(wù)處理要求的工作方式與MBR/MLP和PMBR/PMLR地址對在初級總線上的正解碼方式一樣。次級正存儲器解碼啟動位也鎖閉在要求地址范圍超出MBR/MLP和PMBR/PMLR規(guī)定地址區(qū)間的存儲器事務(wù)處理的次級接口上執(zhí)行的逆解碼。在代表MBR/MLP和PMBR/PMLR地址對的初級接口上不執(zhí)行逆解碼。
64位地址解碼—雙地址周期
橋單元僅支持在橋單元的次級接口上進(jìn)行64位尋址的雙地址周期命令。雙地址周期允許通過使用兩個PCI地址階段(phases)進(jìn)行64位尋址—第一階段為低32位,第二階段為高32位。
一般來說,橋單元解碼所有雙地址周期并將其從初級接口發(fā)送至次級接口,而不管在寄存器對MBR/MLP和PMBR/PMLR中定義的地址區(qū)間如何。如果SDER寄存器中的次級差解碼啟動位置位,雙地址周期將不被發(fā)送。
橋單元用減解碼定時(在FRAME#被確立的5個時鐘之后確立DELSEL#)要求雙地址周期。這就使得次級總線上的其它代理能在橋單元之前要求雙地址周期。
初級接口不發(fā)送雙地址周期。
保存和發(fā)送64位地址的高32位的機制是將與次級至初級數(shù)據(jù)路徑關(guān)聯(lián)的32位地址寄存器相加。這些寄存器存儲雙地址周期的第二地址階段期間傳輸?shù)?4位地址的高32位。此外,主和從狀態(tài)機必須能夠支持雙地址周期和DAC命令。
通過橋配置空間中的下列寄存器位可修改對次級接口上DAC周期的響應(yīng)
·初級命令寄存器(PCMD)中的主啟動位
·初級命令寄存器(PCMD)中的存儲器啟動位
要允許橋使橋能夠響應(yīng)無論32位還是64位的任何種類的存儲器周期,PCMD寄存器中的存儲器啟動位必須被置位。
要允許初級接口對主PCI事務(wù)處理,PCMD寄存器中的主啟動位必須被置位。橋操作
P2P處理器的橋單元能夠從一個PCI接口向另一個PCI接口發(fā)送所有類型的存儲器、IO和配置命令。表1中定義了PCI至PCI橋單元及其兩個PCI接口所支持和所不支持的PCI命令。PCI命令是編碼在任一接口的C/BE〔30〕#插接引線上的。為避免兩個接口的不同所引起的死鎖,當(dāng)兩個接口上同時出現(xiàn)事務(wù)處理時,橋?qū)?yōu)先權(quán)賦予初級接口。
表1.PCI命令 PCI接口
P2P的橋單元有一個初級PCI接口和一個次級PCI接口。當(dāng)事務(wù)處理在初級總線上被啟動并由橋要求時,初級接口就起著PCI目標(biāo)設(shè)備的作用,次級接口則起著對次級總線上真正的PCI目標(biāo)的啟動設(shè)備的作用。初級總線為啟動總線,次級總線為目標(biāo)總線。該序列對于次級總線上啟動的事務(wù)處理被顛倒。對各接口定義如下
初級接口
橋單元的初級PCI接口71是連接到P2P設(shè)備橋接的兩個PCI總線之間編號較低的PCI總線的接口。
初級PCI接口必須遵守《PCI本地總線規(guī)范》和《PCI至PCI橋體系結(jié)構(gòu)規(guī)范》中規(guī)定的對PCI主和從設(shè)備的定義。
次級接口
橋單元的次級PCI接口73是連接到P2P設(shè)備橋接的兩個PCI總線之間編號較高的PCI總線的接口。
次級PCI接口必須遵守《PCI本地總線規(guī)范》和《PCI至PCI橋體系結(jié)構(gòu)規(guī)范》中規(guī)定的對PCI主和從設(shè)備的定義。投遞緩沖器
PCI至PCI橋有兩個投遞緩沖器用于延遲事務(wù)處理和投遞事務(wù)處理。下游投遞緩沖器77位于從初級接口至次級接口的數(shù)據(jù)路徑中;上游投遞緩沖器79位于從次級接口至初級接口的數(shù)據(jù)路徑中。附圖5表示了位于初級接口和次級接口之間的兩個投遞緩沖器。
使用下游投遞緩沖器的有
·初級總線的“投遞寫”
·初級總線的“延遲寫請求”
·返回到次級總線的“延遲讀完成”
·返回到次級總線的“延遲寫完成”
使用上游投遞緩沖器的有
·次級總線的“投遞寫”
·次級總線的“延遲寫請求”
·返回到初級總線的“延遲讀完成”
·返回到初級總線的“延遲寫完成”
寫投遞允許橋達(dá)到其全部帶寬潛力,與此同時又掩蓋了穿越橋所關(guān)聯(lián)的等待和獲取目標(biāo)總線所關(guān)聯(lián)的等待。兩組投遞緩沖器可同時被使用。投遞緩沖器的組織
每個投遞緩沖器能存放組織成4字節(jié)長度的16項數(shù)據(jù)(16個雙字)的64個字節(jié)。每個緩沖器能存放
·多達(dá)64字節(jié)的一個“投遞寫”事務(wù)處理,或者
·多達(dá)64字節(jié)的一個“延遲完成”事務(wù)處理,或者
·多達(dá)4字節(jié)的一個“延遲寫”事務(wù)處理
每個投遞緩沖器與一個地址寄存器和一組標(biāo)記位(tag bits)及有效位(valid bits)相關(guān)聯(lián)。
橋也可以在投遞緩沖器之外存儲一個“延遲讀請求”。
投遞緩沖器的內(nèi)部尋址以一種循環(huán)方式進(jìn)行,其方法是,當(dāng)有事務(wù)處理進(jìn)入一個空緩沖器時,它立即被發(fā)送到緩沖器的頂部。移動緩沖器中的一項數(shù)據(jù)到下一項不需要PCI時鐘。投遞緩沖器的操作
兩個投遞緩沖器都被用于幫助橋達(dá)到其全部的帶寬潛力并掩蓋為每個穿越橋的事務(wù)處理獲取兩個總線所產(chǎn)生的等待。要允許緩沖器投遞事務(wù)處理,EBCR寄存器中的“投遞禁止”位必須被清零。
投遞緩沖器的性質(zhì)為從初級接口到次級PCI接口和從次級接口到初級PCI接口的同時操作創(chuàng)造了條件。這就是說,兩個PCI接口上向?qū)γ娼涌诘氖聞?wù)處理可以同時發(fā)生。從事務(wù)處理被啟動到橋的時刻起,目標(biāo)接口就試圖獲得對目標(biāo)總線的主控權(quán)。這所用的機制就是在初級接口和次級接口上所用的標(biāo)準(zhǔn)PCI仲裁機制。
作為缺省的復(fù)位狀態(tài),投遞緩沖器將被標(biāo)記為無效。隨后的任何PCI復(fù)位事件都會迫使所有緩沖器通過被標(biāo)記無效而被清零。事務(wù)處理定序規(guī)則
因為橋能處理多重事務(wù)處理,所以必須進(jìn)行適當(dāng)?shù)亩ㄐ蛞员苊獍l(fā)生死鎖條件,提高通量。表2中的內(nèi)容是多重事務(wù)處理的定序規(guī)則。表中第1欄是剛剛被鎖存的事務(wù)處理。該表指出了新的事務(wù)處理能超越(pass)上一個被接受的事務(wù)處理(用“是”表示)、新的事務(wù)處理不能超越上一個被接受的事務(wù)處理(用“非”表示)、新的事務(wù)處理不應(yīng)被接受(用“不接受”表示)等情形。未被接受的事務(wù)處理,應(yīng)當(dāng)向其發(fā)送一個Retry信號。
表2.事務(wù)處理的超越寄存器定義
以下描述PCI至PCI橋配置寄存器。配置空間由按預(yù)定格式安排的8位、16位24位、32位寄存器組成。對配置寄存器的訪問要通過橋的初級端上的0類型的配置讀與寫和本地處理器的本地操作。
下文詳細(xì)介紹了除《PCI本地總線規(guī)范》和《PCI至PCI橋體系結(jié)構(gòu)規(guī)范》定義的寄存器之外的每個寄存器的功能、訪問類型(讀/寫、讀/清零、只讀)以及復(fù)位缺省條件。前文已說過,要求初級端上帶活躍的IDSEL或存儲器映射的本地處理器訪問的0類型配置命令對這些寄存器進(jìn)行讀或?qū)憽ξ灰屏窟_(dá)3EH的寄存器的格式,《PCI至PCI橋體系結(jié)構(gòu)規(guī)范》(1.0版)中有所定義,因此本文不再贅述。位移量大于3EH的寄存器特定于P2P處理器的具體實現(xiàn)。
要允許本地處理器訪問橋配置空間,還有另外一個要求。有些只被0類型配置讀寫命令讀取的寄存器是由本地處理器可寫的寄存器。這允許在PCI配置開始之前對某些配置寄存器進(jìn)行初始化。
本地處理器按照存儲器映射寄存器讀寫橋配置空間。表3顯示了寄存器及其在PCI配置命令中使用的相關(guān)位移量以及其在本地處理器地址空間中的存儲器映射地址。
在橋的初級端上確立P_RST#信號影響橋配置空間中含有的大多數(shù)寄存器的狀態(tài)。除非另加注明,否則,當(dāng)進(jìn)行初級復(fù)位時,所有數(shù)據(jù)位及寄存器都要返回到其業(yè)已申明的缺省狀態(tài)值。除非明確注明,否則次級S_RST#輸出的復(fù)位狀態(tài)不影響寄存器的狀態(tài)。
表3.PCI至PCI橋配置寄存器地址
如前文所述,從銷售商標(biāo)識符寄存器到橋控制寄存器BCR中的各數(shù)據(jù)位遵守《PCI本地總線規(guī)范》中的定義,因此本文不必敘述。下文描述的對象是按照本發(fā)明為實現(xiàn)PCI至PCI橋而添加到《PCI本地總線規(guī)范》的寄存器。如表3所示,添加的寄存器的地址位移量從40H開始。
擴展的橋控制寄存器—EBCR
擴展的橋控制寄存器用于控制橋所執(zhí)行的《PCI至PCI橋體系結(jié)構(gòu)規(guī)范》中規(guī)定的基本功能以外的擴展功能。寄存器中有啟動位和鎖閉位,用于控制橋的擴展功能。
表4a 擴展的橋控制寄存器—EBCR
初級橋中斷狀態(tài)寄存器—PBISR
初級橋中斷狀態(tài)寄存器用于向本地處理器告知初級橋接口中斷的中斷源。此外,對該寄存器進(jìn)行寫操作可以清除向P2P處理器的中斷單元的中斷的中斷源。該寄存器所有數(shù)據(jù)位對PCI是只讀的,對本地總線是讀/清零的。
位40(分別)是初級狀態(tài)寄存器的第8位和位1411的直接反映(這些位由硬件同時設(shè)置,但必須單獨清除)。通過向該寄存器中適當(dāng)?shù)哪承┪粚懭?,就可以清除產(chǎn)生初級橋中斷的條件。
表4b 初級橋中斷狀態(tài)寄存器—PBISR 次級橋中斷狀態(tài)寄存器—SBISR
次級橋中斷狀態(tài)寄存器用于向本地處理器告知次級橋接口中斷的中斷源。此外,對該寄存器進(jìn)行寫操作可以清除對P2P處理器的中斷單元的中斷的中斷源。該寄存器所有數(shù)據(jù)位對PCI是只讀的,對本地總線是讀/清零的。
位40(分別)是次級狀態(tài)寄存器的第8位和位1411的直接反射(這些位由硬件同時設(shè)置,但必須單獨清除)。通過向該寄存器中適當(dāng)?shù)哪承┪粚懭?,就可以清除產(chǎn)生次級橋中斷的條件。
表4c 次級橋中斷狀態(tài)寄存器—PBISR 次級IDSEL選擇寄存器—SISR
次級IDSEL選擇寄存器控制從初級接口到次級接口的類型1至類型0轉(zhuǎn)換中的S_AD[2016]的使用。在缺省條件下的操作中,類型1至類型0轉(zhuǎn)換期間,對地址P_AD[1511]一種獨特編碼,會導(dǎo)致在次級地址總線S_AD[3116]上確立一個數(shù)據(jù)位。這被用于在由類型0配置命令設(shè)定為目標(biāo)的設(shè)備上確立IDSEL。這個寄存器允許用次級地址位S_AD[2016]來配置專用PCI設(shè)備,而不管初級地址P_AD[1511](類型1配置命令中的設(shè)備號)的狀態(tài)如何,具體方法是在類型1至類型0轉(zhuǎn)換期間,將次級地址位S_AD[2016]全部清零。
如果S_AD[2016]內(nèi)有任何地址位要被用于專用次級PCI設(shè)備,本地處理器必須保證在主機試圖配置分層結(jié)構(gòu)的PCI總線之前,將SISR寄存器中的對應(yīng)位置位。
表4d 次級IDSEL選擇寄存器—SISR 次級仲裁控制寄存器—SACR
次級仲裁控制寄存器用于設(shè)置使用次級PCI總線的各個設(shè)備的仲裁優(yōu)先級。寫一個值設(shè)置仲裁優(yōu)先級,讀寄存器則返回編程的值。每個設(shè)備被賦予一個2位的優(yōu)先級值。優(yōu)先級如表4e所示。
表4e 編程的優(yōu)先級控制
SACR寄存器中也有用于次級總線仲裁單元的次級仲裁器啟動位。該位清零時,次級總線仲裁器被禁止,橋?qū)⒃赟_GNT0#上驅(qū)動S_REQ0#,并在S_REQ0#上抽樣S_GNT#。缺省狀態(tài)是內(nèi)部次級仲裁單元啟動(次級仲裁單元啟動位置位)。
PCI中斷路由選擇寄存器—PIRSR
以下參照PCI和外部中斷控制器(PPIC)說明PCI中斷路由選擇寄存器。
次級I/O基址寄存器—SIOBR
當(dāng)次級PCI接口被啟動用于正解碼時,要使用次級I/O基址中的位。次級I/O基址寄存器為用于確定何時從橋的次級接口向初級接口發(fā)送I/O事務(wù)處理的正解碼地址區(qū)間定義底部地址(含底部地址)。該寄存器必須在次級解碼啟動寄存器(SDER)被置位之前用一個有效值編程。橋僅支持由寄存器的最低4位有效位為0H所表示的16位尋址方式。高4位被編程為地址區(qū)間的底部的S_AD[1512]的值,基址的S_AD[110]總為000H,促使次級I/0地址區(qū)間是4K字節(jié)對齊的。
為了地址解碼的目的,橋假設(shè)I/O地址的高16位地址位S_AD[3116]為0。橋仍然必須按照《PCI本地總線規(guī)范》對全部的32位地址進(jìn)行地址解碼,并查驗高16位為0000H。
正次級I/O地址區(qū)間(由SIOBR與SIOLR定義)不受橋控制寄存器(BCR)中的ISA啟動位狀態(tài)的影響。
表4f 次級I/O基址寄存器—SIOBR 次級I/O界限寄存器—SIOLR
當(dāng)次級PCI接口被啟動用于正解碼時,要使用次級I/O界限寄存器中的位。次級I/O界限寄存器為用于確定何時從橋的次級接口向初級接口發(fā)送I/O事務(wù)處理的正解碼地址區(qū)間定義高地址(含高地址)。該寄存器必須在橋命令寄存器中的I/O空間啟動位和次級解碼啟動寄存器(SDER)中次級I/O解碼啟動位的被置位之前用一個大于或等于SIOBR的有效值編程。如果SIOBR的值大于SIOLR的值,則從次級接口發(fā)送到次級接口(正解碼)的I/O周期(cycles)無定義。橋僅支持由寄存器的最低4位有效位為0H所表示的16位尋址方式。高4位被編程為S_AD[1512]的值,作為地址區(qū)間的頂部地址?;返腟_AD[110]總為0000H,促使I/O地址區(qū)間具有4K字節(jié)的粒度(granularity)。
為了地址解碼的目的,橋假設(shè)I/O地址的高16位地址位S_AD[3116]為0。橋仍然必須按照《PCI本地總線規(guī)范》對全部的32位地址進(jìn)行地址解碼,并查驗高16位為0000H。
(由SIOBR與SIOLR定義的)次級I/O地址區(qū)間不被橋控制寄存器(BCR)中的ISA啟動位修改。
表4g 次級I/O界限寄存器—SIOLR 次級存儲器基址寄存器—SMBR
當(dāng)次級PCI接口被啟動用于正地址解碼時,要使用次級存儲器基址寄存器中的位。如果SDER中的專用地址空間啟動位置位,也要用次級存儲器基址寄存器中的位在次級PCI總線上定義一個專用地址空間。次級存儲器基址寄存器為用于確定何時從橋的次級接口向初級接口發(fā)送事務(wù)處理的內(nèi)存映射地址區(qū)間定義底部地址(含底部地址)。該寄存器必須在寄存器SDER中的次級正存儲器解碼啟動位被置位之前用一個有效值編程。高12位對應(yīng)32位地址的S_AD[3120]。為了地址解碼的目的,橋假設(shè)存儲器基址的低20位地址位S_AD[190]為0。這意味被定義的地址區(qū)間的底部地址將被對齊在1M字節(jié)的邊界上。
表4h 次級存儲器基址寄存器—SMBR 次級存儲器界限寄存器-SMLR
當(dāng)橋單元的次級接口被啟動用于正地址解碼時,要使用次級存儲器界限寄存器中的位。次級存儲器界限寄存器為用于確定何時從橋的次級接口向初級接口發(fā)送事務(wù)處理的內(nèi)存映射地址區(qū)間定義頂部地址(含底部地址)。次級存儲器界限寄存器必須在存儲器空間啟動位和次級正存儲器解碼啟動位被置位之前用一個大于或等于SMBR的有效值編程。一旦存儲器空間啟動位和次級正存儲器解碼啟動位被置位時,如果SMLR的值不是大于或等于SMBR的值,則從次級接口發(fā)送到初級接口的正解碼事務(wù)處理不確定。高12位對應(yīng)32位地址的S_AD[3120]。為了地址解碼的目的,橋假設(shè)存儲器基址的低20位地址位S_AD[190]為FFFFFH。這就促使在存儲器地址區(qū)間產(chǎn)生1M字節(jié)的粒度。
表4i 次級存儲器界限寄存器—SMLR 次級解碼啟動寄存器—SDER
次級解碼啟動寄存器用于控制橋單元的次級PCI接口上的地址解碼功能。次級正I/O解碼啟動位一旦置位,就致使橋?qū)τ蒘IOBR/SIOLR地址對定義的地址區(qū)間內(nèi)的事務(wù)處理進(jìn)行解碼、要求取得控制權(quán)并將事務(wù)處理發(fā)送過橋單元。次級存儲器解碼啟動位雖然與次級正I/O解碼啟動位的功能相同,但只在由SMBR/SMLR地址對定義的地址區(qū)間內(nèi)起作用。對這些寄存器位中無論哪一位置位,會禁止次級接口上的所有逆解碼。
次級差解碼啟動位允許在次級接口上進(jìn)行差橋解碼,以支持初級接口上的標(biāo)準(zhǔn)總線擴展。該位允許次級接口上差解碼的條件是,或者次級正I/O解碼啟動位置位,或者次級正存儲器解碼啟動位置位。
專用(private)存儲器空間啟動位允許在次級PCI總線上創(chuàng)建專用存儲器空間。該位與SMBR/SMLR寄存器對聯(lián)合使用。如果該位置位,則對于地址在SMBR/SMLR地址區(qū)間內(nèi)的事務(wù)處理,橋就不予處理。
表4j 次級解碼啟動寄存器—SMLR地址翻譯單元
以下說明初級、次級PCI總線與本地總線之間連接的方法。描述了接口的操作方式、建立和實現(xiàn)。概述
P2P處理器提供PCI總線與本地總線之間的接口。該接口由2個地址翻譯單元(ATU)43a/43b和1個報文傳遞(messaging)單元45組成。地址翻譯單元既支持向內(nèi)(inbound)地址翻譯,也支持向外(outbound)地址翻譯。第一個地址翻譯單元稱為初級ATU43a,它提供初級PCI總線與本地總線之間的直接訪問。第二個地址翻譯單元稱為次級ATU43b,它提供次級PCI總線與本地總線之間的直接訪問。用這種方式使用兩個ATU比現(xiàn)有技術(shù)具有明顯的優(yōu)點。
在向內(nèi)事務(wù)處理期間,ATU將(PCI總線主啟動的)PCI地址轉(zhuǎn)換為本地處理器的地址并啟動本地處理器上的數(shù)據(jù)傳遞。在向外事務(wù)處理期間,ATU將本地處理器的地址轉(zhuǎn)換為PCI地址并啟動各PCI總線上的數(shù)據(jù)傳遞。
這2個地址翻譯單元與報文傳遞單元表現(xiàn)為初級PCI總線上的單一PCI設(shè)備。這幾個單元結(jié)合起來就是多功能P2P處理器中的第二個功能單元。附圖6中表示了地址翻譯單元與報文傳遞單元。
下面說明地址翻譯單元與報文傳遞單元的功能。所有被表示的單元都有一個內(nèi)存映射的寄存器接口,無論對于PCI接口91或本地總線接口還是這二者同時來說,該接口是可見的。地址翻譯單元數(shù)據(jù)流
初級地址翻譯單元和次級地址翻譯單元從兩個方向經(jīng)過P2P處理器的事務(wù)處理。初級ATU允許初級PCI總線上的PCI主向本地處理器啟動事務(wù)處理,也允許本地處理器向初級PCI總線啟動事務(wù)處理。次級ATU執(zhí)行同樣的功能,不過這是對次級PCI總線和次級PCI總線主而言。我們把在PCI總線上啟動、目標(biāo)是本地總線的事務(wù)處理稱為向內(nèi)事務(wù)處理,而將在本地總線上啟動、目標(biāo)是PCI總線的事務(wù)處理稱為向外事務(wù)處理。ATU地址翻譯
地址翻譯單元執(zhí)行一個地址開窗口方案(address windowingscheme)來決定要求與翻譯哪些地址到適當(dāng)?shù)目偩€。
初級ATU中有一條連接初級PCI總線和本地總線的數(shù)據(jù)通路。以這種方式連接初級ATU使得無需用次級PCI總線上的資源就能傳遞數(shù)據(jù)。次級ATU中有一條連接次級PCI總線和本地總線的數(shù)據(jù)通路。次級ATU允許次級PCI總線主直接訪問本地總線和存儲器。這些事務(wù)處理由一個次級總線主啟動,不需要占用初級PCI總線上的任何帶寬。
ATU單元能識別和生成多種類型的PCI周期。表5顯示了向內(nèi)ATU與向外ATU均支持的PCI命令。向內(nèi)ATU所見的操作類型由啟動事務(wù)處理的(初級總線或者次級總線上的)PCI主所決定。要求向內(nèi)事務(wù)處理取決于地址在編程的向內(nèi)翻譯窗口內(nèi)。向外ATU所能使用的操作類型由本地地址和固定的向外開窗口方案所決定。
表5.ATU命令支持
兩個ATU都支持《PCI本地總線規(guī)范》所規(guī)定的64位尋址擴展。64位尋址擴展只用于向外數(shù)據(jù)事務(wù)處理(即由本地處理器啟動的數(shù)據(jù)傳遞)。
向內(nèi)地址翻譯
地址翻譯單元提供了使PCI總線主能直接訪問本地總線的機制。這些PCI總線主能對P2P處理器內(nèi)存映射寄存器或本地存儲器空間進(jìn)行讀或者寫。PCI總線主正在訪問本地總線的事務(wù)處理稱作向內(nèi)事務(wù)處理。
向內(nèi)地址翻譯涉及兩個步驟
1.地址查驗
·確定32位PCI地址是否在為向內(nèi)(初級或次級)ATU定義的地址窗口范圍內(nèi)。
·用快速DEVSEL#定時要求PCI事務(wù)處理。
2.地址翻譯
·將32位PCI地址翻譯成32位本地地址
初級ATU在向內(nèi)地址翻譯時使用下述寄存器
·初級向內(nèi)ATU基址寄存器
·初級向內(nèi)ATU界限寄存器
·初級向內(nèi)ATU翻譯值寄存器
次級ATU在向內(nèi)地址翻譯時使用下述寄存器
·次級向內(nèi)ATU基址寄存器
·次級向內(nèi)ATU界限寄存器
·次級向內(nèi)ATU翻譯值寄存器
一般來說,初級向內(nèi)ATU地址就是初級PCI地址,次級向內(nèi)ATU地址就是次級PCI地址。如果某地址既能被ATU要求,又能被橋要求,則向內(nèi)ATU的PCI接口享有優(yōu)先權(quán)。
向內(nèi)地址查驗是通過32位PCI地址、基址寄存器和界限寄存器確定的,查驗算法是
如果(PCI地址&界限寄存器==基址寄存器)
則向內(nèi)ATU要求PCI地址
該算法將32位的輸入PCI地址與關(guān)聯(lián)的向內(nèi)界限寄存器逐位進(jìn)行邏輯“與”運算。如果運算結(jié)果與基址寄存器的值匹配,查驗結(jié)果就是該向內(nèi)PCI地址在向內(nèi)翻譯窗口范圍內(nèi),因而由該ATU要求。
一旦事務(wù)處理被要求,就必須將IAQ中的地址從32位PCI地址翻譯成32位本地處理器地址。翻譯的算法是
本地地址=(PCI地址&~界限寄存器)|值寄存器
該算法首先將32位的輸入PCI地址與界限寄存器的“反”逐位進(jìn)行邏輯“與”運算,再將結(jié)果與值寄存器逐位進(jìn)行邏輯“或”運算,結(jié)果就是本地地址。這個翻譯機制可用于除向內(nèi)配置讀命令和向內(nèi)配置寫命令之外的所有向內(nèi)存儲器讀命令和向內(nèi)存儲器寫命令。多個PCI地址對同一物理本地地址的地址混淆問題,可將向內(nèi)值寄存器編程在與所關(guān)聯(lián)的界限寄存器值相匹配的界限上而加以避免,但這只是通過應(yīng)用程序設(shè)計而進(jìn)行的。
向外地址翻譯
地址翻譯單元除了提供向內(nèi)翻譯機制,還提供了將由本地處理器啟動的周期翻譯到PCI總線所需的硬件。這就是向外地址翻譯。向外事務(wù)處理就是以某個(初級或次級)PCI總線作為目標(biāo)的處理器讀或處理器寫。ATU本地總線從接口將要求本地處理器總線周期并代表本地處理器完成PCI總線上的周期。初級和次級ATU支持兩種不同的向外翻譯方式
·地址翻譯窗口
·直接尋址窗口 擴展ROM翻譯單元
初級向內(nèi)ATU支持一個用于放置擴展ROM的(由基址/界限寄存器對定義的)地址區(qū)間?!禤CI本地總線規(guī)范》中對擴展ROM的格式和用法有詳細(xì)說明。
在對關(guān)聯(lián)設(shè)備進(jìn)行初始化的通電序列期間,主處理器只執(zhí)行一次來自擴展ROM的初始化碼。該初始化碼一經(jīng)執(zhí)行,就可棄之不用。
向內(nèi)初級ATU支持一個按照向內(nèi)翻譯窗口的方式工作的向內(nèi)擴展ROM窗口翻譯。來自擴展ROM的讀命令將被傳遞到本地總線和存儲器控制器。其地址翻譯算法與向內(nèi)翻譯的相同。支持8位和32位這兩種不同寬度的擴展ROM。要用軟件在ATUCR中對擴展ROM寬度位進(jìn)行編程,以反映擴展ROM的物理配置。該位確定了ATU訪問擴展ROM的方式(見下文)。
向內(nèi)ATU執(zhí)行下述功能
·初級ATU查驗對擴展ROM的一次“命中”(hit)。
·初級ATU用寄存器ERTVR和ERLR來翻譯(IAQ中的)地址。
·為適應(yīng)8位設(shè)備,向內(nèi)ATU在本地總線上要執(zhí)行4次獨立的讀操作,以向初級PCI總線返回一個32位的值。每次度操作由一個以字節(jié)啟動位BE10#用作字節(jié)地址的8位周期構(gòu)成。每次讀操作向初級ATU內(nèi)部的地址拼裝硬件(在AD70字節(jié)通路(byte lane)上)返回一個數(shù)據(jù)字節(jié)。
·P2P存儲器控制器對來自初級ATU的每一個本地總線請求作出響應(yīng),執(zhí)行一次讀操作。因為訪問的是8位的設(shè)備,所以存儲器控制器用一個8位周期執(zhí)行一次8位讀操作。存儲器控制器(根據(jù)字節(jié)啟動位)將數(shù)據(jù)返回給適當(dāng)?shù)淖止?jié)通路。
·在完成了四個周期時,ATU內(nèi)的拼裝硬件將(來自延時讀事務(wù)處理的)整個32位字返回給初級PCI總線。拼裝硬件負(fù)責(zé)保證這些字節(jié)在正確的通路上。
如果初級PCI總線請求的小于4個字節(jié),初級ATU就相應(yīng)地調(diào)整進(jìn)行字節(jié)讀操作的次數(shù)。如果訪問的地址與本地總線地址位置不對齊,就會導(dǎo)致讀操作尋址到邊界對齊的地址。寄存器定義
每個PCI設(shè)備實現(xiàn)自己單獨的配置地址空間和配置寄存器?!禤CI本地總線規(guī)范》(2.1版)要求,配置空間應(yīng)具有256個字節(jié)的長度,其中的前64個字節(jié)要具有預(yù)定的首部格式。
初級和次級ATU都是通過初級接口上的0類型配置命令而編程的。可以通過次級向內(nèi)配置周期對次級ATU編程。ATU和報文發(fā)送單元配置空間是P2P處理器多功能PCI設(shè)備的首要功能。
除了所要求的64字節(jié)首部格式外,ATU和報文發(fā)送單元配置空間具有支持其單元功能的擴展寄存器空間。《PCI本地總線規(guī)范》中對如何訪問配置寄存器空間和編程配置寄存器空間有詳細(xì)的說明。
配置空間由以預(yù)定格式安排的8位、16位、24位、32位寄存器組成。表6是對PCI功能1配置地址空間內(nèi)的所有寄存器的概括。
表中列出了每個寄存器的功能、訪問類型(讀/寫、讀/清零、只讀)和復(fù)位缺省條件。表6中還為每個寄存器給出了PCI寄存器號。本文曾經(jīng)指出,要對這些寄存器進(jìn)行讀或?qū)?,需要使用具有活躍的IDSEL或內(nèi)存映射本地處理器訪問的初級或次級總線上的0類型配置命令。
表6.地址翻譯單元PCI配置寄存器總匯
由于ATU銷售商(Vendor)標(biāo)識符寄存器至ATU最大等待寄存器遵守《PCI本地總線規(guī)范》中的定義,因此本文不再贅述。
初級向內(nèi)ATU界限寄存器—PIALR
初級向內(nèi)地址翻譯出現(xiàn)在從PCI總線(起源于初級PCI總線)到本地總線發(fā)生的數(shù)據(jù)傳遞上。地址翻譯部件將PCI地址轉(zhuǎn)換成本地處理器地址。所有數(shù)據(jù)傳遞被直接翻譯,這樣,啟動數(shù)據(jù)傳遞的總線主就要將沒有對齊的數(shù)據(jù)傳遞分解成多次數(shù)據(jù)傳遞。各字節(jié)啟動位要對哪些數(shù)據(jù)路徑有效作出規(guī)定。
初級向內(nèi)翻譯的基址在“初級向內(nèi)ATU基址寄存器—PIABAR”中規(guī)定。確定塊大小的要求時,初級翻譯界限寄存器提供初級基址寄存器的塊大小要求。用于這些地址翻譯的其它寄存器在上文的“向內(nèi)地址翻譯”中作了討論。
本地處理器值寄存器中所含的編程值必須與基址寄存器中的編程值自然對齊。界限寄存器被用作屏蔽寄存器,這使得本地處理器值寄存器中編程的低地址位無效?!禤CI本地總線規(guī)范》中有關(guān)于編程基址寄存器的其它資料。
表7a.初級向內(nèi)ATU界限寄存器—PIALR 初級向內(nèi)ATU翻譯值寄存器—PIATVR
初級向內(nèi)ATU翻譯值寄存器(PIATVR)中含有用于轉(zhuǎn)換初級PCI總線地址的本地地址。作為初級向內(nèi)ATU地址翻譯的結(jié)果,轉(zhuǎn)換成的地址將被驅(qū)動到本地總線上。
表7b.初級向內(nèi)ATU翻譯值寄存器—PIATVR 次級向內(nèi)ATU基址寄存器—SIABAR
次級向內(nèi)ATU基址寄存器(SIABAR)定義次級向內(nèi)翻譯窗口起始處的內(nèi)存地址塊。向內(nèi)ATU對總線請求進(jìn)行解碼,并將其連同映射到本地存儲器的翻譯地址傳遞到本地總線。SIABAR定義基址并描述所需內(nèi)存塊的大小。對基址寄存器的影響是,如果有值FFFF.FFFFH被寫到SIABAR,則下一個對該寄存器的讀操作返回的是初級向內(nèi)ATU界限寄存器(SIALR)的數(shù)據(jù),而不是SIABAR的數(shù)據(jù)。
在基址寄存器中的編程值必須符合對PCI編程關(guān)于地址對齊的要求。《PCI本地總線規(guī)范》中有關(guān)于編程基址寄存器的其它資料。
表7c.次級向內(nèi)ATU基址寄存器—SIBADR 次級向內(nèi)ATU界限寄存器—SIALR
次級向內(nèi)地址翻譯出現(xiàn)在從次級PCI總線向本地總線發(fā)生數(shù)據(jù)傳遞時。地址翻譯塊將PCI地址翻譯成本地處理器地址。所有數(shù)據(jù)傳遞被直接翻譯,這樣,啟動數(shù)據(jù)傳遞的總線主就要將沒有對齊的數(shù)據(jù)傳遞分解成多次數(shù)據(jù)傳遞。各字節(jié)啟動位規(guī)定哪些數(shù)據(jù)路徑有效。
確定塊大小的要求時,次級翻譯界限寄存器提供次級基址寄存器的塊大小要求。用于這些地址翻譯的其它寄存器在上文的“向內(nèi)地址翻譯”中作了討論。
本地處理器值寄存器中所含的編程值必須與基址寄存器中的編程值自然對齊。界限寄存器被用作屏蔽寄存器,這使得本地處理器值寄存器中編程的低地址位無效。
表7d.次級向內(nèi)ATU界限寄存器—SIALR 次級向內(nèi)ATU翻譯值寄存器—SIATVR
次級向內(nèi)ATU翻譯值寄存器(SIATVR)中含有用于將次級PCI總線地址轉(zhuǎn)換成本地地址的本地地址。作為次級向內(nèi)ATU地址翻譯的結(jié)果,轉(zhuǎn)換成的地址將被驅(qū)動到本地總線上。
表7e.次級向內(nèi)ATU翻譯值寄存器—SIATVR 初級向外存儲器窗口值寄存器—POMWVR
初級向外存儲器窗口值寄存器(POMW0VR)中含有用于為向外事務(wù)處理轉(zhuǎn)換本地地址的初級PCI地址。該地址作為初級向外ATU地址翻譯的結(jié)果,將被驅(qū)動到初級PCI總線上。
初級存儲器窗口0在本地處理器地址8000.000H~807F.FFFFH,固定長度為8M字節(jié)。
表7f.初級向外存儲器窗口值寄存器—POMW0VR 初級向外I/O窗口值寄存器—POIOWVR
初級向外I/O窗口值寄存器(POIOWVR)中含有ATU將要把本地總線訪問轉(zhuǎn)換成的、初級PCI I/O讀或?qū)憽?br> 初級I/O窗口在本地處理器地址8200.000H~8200.FFFFH,固定長度為64K字節(jié)。
表7g.初級向外I/O窗口值寄存器—POIOWVR 初級向外DAC窗口值寄存器—PODWVR
初級向外DAC窗口值寄存器(PODWVR)中含有用于轉(zhuǎn)換本地地址的初級PCI的DAC地址。該地址作為初級向外ATU地址翻譯的結(jié)果,將被驅(qū)動到初級PCI總線上。該寄存器與初級向外高64位DAC寄存器聯(lián)合使用。
初級DAC窗口在本地地址8080.000H~80FF.FFFFH,固定長度為8M字節(jié)。
表7h.初級向外DAC窗口值寄存器—PODWVR 初級向外高64位DAC寄存器—POUDR
初級向外高64位DAC寄存器(POUDR)定義雙地址周期期間所用地址的高32位。這使得初級向外ATU能夠?qū)ぶ返?4位主機地址空間內(nèi)的任何位置。
表7i.初級向外高64位DAC寄存器—POUDR 次級向外存儲器窗口值寄存器—SOMWVR
次級向外存儲器窗口值寄存器(SOMWVR)中含有用于為向外事務(wù)處理轉(zhuǎn)換本地地址的次級PCI地址。該地址作為次級向外ATU地址翻譯的結(jié)果,將被驅(qū)動到次級PCI總線上。
次級存儲器窗口來自本地地址8100.000H~817F.FFFFH,固定長度為8M字節(jié)。
表7i.次級向外存儲器窗口值寄存器—SOMWVR 次級向外I/O窗口值寄存器—SOIOWVR
次級向外I/O窗口值寄存器(SOIOWVR)中含有用于轉(zhuǎn)換本地地址的次級PCI I/O地址。該地址作為次級向外ATU地址翻譯的結(jié)果,將被驅(qū)動到次級PCI總線上。
如果ATUCR中的次級PCI引導(dǎo)模式位被置位,則該寄存器被用于翻譯訪問區(qū)間在FE00.0000H~FFFF.FFFFH范圍的本地地址。如果該位被清零,則該寄存器被用于翻譯訪問次級I/O窗口中FE00.0000H~FFFF.FFFFH范圍的本地地址。
次級I/O窗口在本地地址8201.0000H~8201.FFFFH,固定長度為64K字節(jié)。
表7k.初級向外I/O窗口值寄存器—POIOWVR 擴展ROM界限寄存器—ERLR
擴展ROM界限寄存器(ERLR)定義初級ATU將要定義為擴展ROM地址空間的地址的塊大小。塊大小是通過從本地處理器將一個值寫入ERLR而編程的??赡艿木幊讨档姆秶菑?K字節(jié)(FFFF.F800H)到16M字節(jié)(FF00.0000H)。
表7l.擴展ROM界限寄存器—ERLR 擴展ROM翻譯值寄存器—ERTVR
擴展ROM翻譯值寄存器(ERTVR)中含有初級ATU要轉(zhuǎn)換的、初級PCI總線訪問的本地地址。該地址作為初級擴展ROM地址翻譯的結(jié)果,將被驅(qū)動到本地總線上。
表7m.擴展ROM翻譯值寄存器—ERTVR ATU配置寄存器—ATUCR
ATU配置寄存器(ATUCR)中含有的控制位,允許或禁止由門鈴寄存器生成的中斷。ATU配置寄存器還控制初級和次級向外翻譯單元的向外地址翻譯,它含有一個定義擴展ROM寬度的位。
表7n.ATU配置寄存器—ATUCR 初級ATU中斷狀態(tài)寄存器—PATUISR
初級ATU中斷狀態(tài)寄存器(PATUISR)用于向本地處理器告知初級ATU或門鈴中斷的中斷源。此外,可以對該寄存器進(jìn)行寫操作以清除對P2P處理器的中斷單元的中斷的中斷源。該寄存器的所有位對PCI是只讀的,對本地總線是讀/清零的。
寄存器位40的內(nèi)容是初級ATU狀態(tài)寄存器的位8和位1411的直接反映(這些位的設(shè)置是由硬件同時作出的,但清除時則需分別進(jìn)行)。寄存器位65由出現(xiàn)與存儲器控制器關(guān)聯(lián)的錯誤時置位。位8用于軟件BIST,位109用于報文傳遞單元。通過在該寄存器中的適當(dāng)?shù)奈粚懭?可以清除引起初級ATU中斷或門鈴中斷的中斷條件。
表7o.初級ATU中斷狀態(tài)寄存器—PATUISR 次級ATU中斷狀態(tài)寄存器—SATUISR
次級ATU中斷狀態(tài)寄存器(SATUISR)用于向本地處理器告知次級ATU中斷的中斷源。此外,可以對該寄存器進(jìn)行寫操作以清除對P2P處理器的中斷單元的中斷的中斷源。該的所有寄存器位對PCI是只讀的,對本地總線是讀/清零的。
通過在該寄存器中的適當(dāng)?shù)奈粚懭?可以清除引起次級ATU中斷的中斷條件。
表7p.次級ATU中斷狀態(tài)寄存器—SATUISR 次級ATU命令寄存器—SATUCMD
次級ATU命令寄存器(SATUCMD)中的位遵守《PCI本地總線規(guī)范》的定義,大多數(shù)情況下,它們影響次級PCI總線上設(shè)備的狀態(tài)
表7q.次級ATU命令寄存器—SATUCMD 次級向外DAC窗口值寄存器—SODWVR
次級向外DAC窗口值寄存器(SODWVR)中含有用于轉(zhuǎn)換本地地址的次級PCI DAC地址。該地址作為次級向外ATU地址翻譯的結(jié)果,將被驅(qū)動到次級PCI總線上。該寄存器與次級向外高64位DAC寄存器聯(lián)合使用。
次級DAC窗口在本地處理器地址8180.0000H-81FF.FFFFH,固定長度為8M字節(jié)。
表7r.初級向外DAC窗口值寄存器—PODWVR 次級向外高64位DAC寄存器—SOUDR
次級向外高64位DAC寄存器(SOUDR)定義雙地址周期期間所用地址的高32位。這使得次級向外ATU能夠?qū)ぶ返?4位主機地址空間內(nèi)的任何位置。
表7s.次級向外高64位DAC寄存器—SOUDR 初級向外配置周期地址寄存器—POCCAR
初級向外配置周期地址寄存器(POCCAR)用于存放32位PCI配置周期地址。本地處理器寫入允許進(jìn)行初級向外配置讀或?qū)懖僮鞯腜CI配置周期地址。然后,本地處理器對初級向外配置周期數(shù)據(jù)寄存器執(zhí)行讀或?qū)懖僮?,在初級PCI總線上啟動配置周期。
表7t. 初級向外配置周期地址寄存器—POCCAR 次級向外配置周期地址寄存器—SOCCAR
次級向外配置周期地址寄存器(SOCCAR)用于存放32位PCI配置周期地址。本地處理器寫入允許進(jìn)行次級向外配置讀或?qū)懖僮鞯腜CI配置周期地址。然后,本地處理器對次級向外配置周期數(shù)據(jù)寄存器執(zhí)行讀或?qū)懖僮?,在次級PCI總線上啟動配置周期。
表7u.次級向外配置周期地址寄存器—SOCCAR 初級向外配置周期數(shù)據(jù)寄存器—POCCDR
初級向外配置周期數(shù)據(jù)寄存器(POCCDR)用于啟動初級PCI總線上的配置讀或?qū)懖僮?。該寄存器只有邏輯意義而沒有物理意義,就是說,它是一個地址而不是寄存器。本地處理器用POCCAR中找到的地址讀出或?qū)懭朐摂?shù)據(jù)寄存器的內(nèi)存映射地址,啟動初級PCI總線上的配置周期。對于配置寫操作,從本地總線上鎖存該數(shù)據(jù),而被直接傳遞到ATU的ODQ。對于讀操作,該數(shù)據(jù)被直接從ATU的IDQ返回給本地處理器,根本不存入數(shù)據(jù)寄存器(該寄存器物理上不存在)。
POCCDR只對本地處理器地址空間有用并表現(xiàn)為ATU配置空間內(nèi)的一個保留值。
次級向外配置周期數(shù)據(jù)寄存器—SOCCDR
次級向外配置周期數(shù)據(jù)寄存器(SOCCDR)用于啟動次級PCI總線上的配置讀或?qū)懖僮?。該寄存器只有邏輯意義而沒有物理意義,就是說,它是一個地址而不是寄存器。本地處理器用SOCCAR中找到的地址讀出或?qū)懭霐?shù)據(jù)寄存器的內(nèi)存映射地址,啟動次級PCI總線上的配置循環(huán)。對于配置寫操作,從本地總線鎖存該數(shù)據(jù),并被直接傳遞到ATU的ODQ。對于讀操作,該數(shù)據(jù)被直接從ATU的IDQ返回給本地處理器,根本不存入數(shù)據(jù)寄存器(該寄存器物理上不存在)。
SOCCDR只對本地處理器地址空間有用并表現(xiàn)為ATU配置空間內(nèi)的一個保留值。報文傳遞單元
以下描述P2P處理器的報文傳遞單元,報文傳遞單元與上述的初級地址翻譯單元(PATU)有密切關(guān)系。概述
報文傳遞單元提供了一種在PCI系統(tǒng)與本地處理器之間傳遞數(shù)據(jù)并通過中斷向各系統(tǒng)通報新數(shù)據(jù)到達(dá)的機制。報文傳遞單元可用于發(fā)送和接收報文。
報文傳遞單元有5個不同的報文傳遞機構(gòu)。各機構(gòu)都允許主處理器或外部PCI代理與P2P處理器通過報文傳送和中斷生成進(jìn)行通信。這5個機構(gòu)是
·報文寄存器
·門鈴寄存器
·環(huán)形隊列
·索引寄存器
·APIC寄存器
報文寄存器允許P2P處理器與外部PCI代理通過用4個32位報文寄存器的其中一個傳送報文而進(jìn)行通信。本文中所說的報文,是指32位長度的任意數(shù)據(jù)值。報文寄存器綜合了郵箱寄存器和門鈴寄存器的特點。向報文寄存器寫數(shù)據(jù),可以有選擇地引起中斷。
門鈴寄存器允許P2P處理器確定PCI中斷信號,允許外部PCI代理向本地處理器生成一個中斷。
環(huán)型隊列支持使用4個環(huán)形隊列的報文傳送方案。
索引寄存器支持用P2P處理器的部分本地存儲器來實現(xiàn)大的寄存器組的報文傳送方案。
APIC寄存器用提供用于訪問APIC寄存器的外部PCI接口的方法支持APIC總線接口單元。操作原理
報文傳遞單元有5個獨特的報文傳遞機構(gòu)。
報文寄存器類似于是郵箱寄存器與門鈴寄存器的組合。
門鈴寄存器支持硬件中斷,也支持軟件中斷。門鈴寄存器有兩個用途
·被寫時產(chǎn)生中斷。
·保留其它報文傳遞機構(gòu)生成的中斷的狀態(tài)。
報文傳遞單元使用初級地址翻譯單元(PATU)中初級向內(nèi)翻譯窗口的前4K字節(jié)。初級向內(nèi)翻譯窗口的地址存于初級向內(nèi)ATU基址寄存器中。
表8概括報文傳遞單元中所用的5個報文傳遞機構(gòu)。
表8.報文傳遞單元概述報文寄存器
P2P處理器可以通過報文寄存器傳送和接收報文。向報文寄存器寫入數(shù)據(jù)時,會導(dǎo)致向本地處理器或PCI中斷信號生成中斷。向內(nèi)的報文由主處理器發(fā)送,P2P處理器接收。向外的報文由P2P處理器發(fā)送,主處理器接收。
向外報文的中斷狀態(tài)被記錄在向外門鈴寄存器中,向內(nèi)報文的中斷狀態(tài)被記錄在向內(nèi)門鈴寄存器中。向外報文
向外報文寄存器被本地處理器寫入數(shù)據(jù)時,中斷可能生成在中斷線P_INTA#、P_INTB#、P_INTC#、P_INTD#上。究竟用的是哪個中斷線,由ATU中斷接插線寄存器的值決定。
PCI中斷被記錄在向外門鈴寄存器中。中斷使向外門鈴寄存器的向外報文位置位。該位是讀/清零的,由報文傳遞單元硬件置位,軟件清零。
當(dāng)外部PCI代理將數(shù)值1寫到向外門鈴寄存器的向外報文位來清除該位時,中斷被清除。向內(nèi)報文
向內(nèi)報文寄存器被外部PCI代理寫入數(shù)據(jù)時,就可能向本地處理器生成一個中斷。該中斷可以被向內(nèi)門鈴屏蔽寄存器中的屏蔽位屏蔽。
本地處理器中斷記錄向內(nèi)門鈴寄存器中。中斷使向內(nèi)門鈴寄存器的向內(nèi)報文位置位。該位是讀/清零的,由報文傳遞單元硬件置位,軟件清零。
當(dāng)外部本地處理器將數(shù)值1寫到向內(nèi)門鈴寄存器的向內(nèi)報文中斷位時,中斷被清除。門鈴寄存器
門鈴寄存器有兩個向內(nèi)門鈴寄存器和向外門鈴寄存器。向內(nèi)門鈴寄存器允許外部PCI代理向本地處理器生成中斷。向外門鈴寄存器允許本地處理器生成PCI中斷。兩個寄存器都保存硬件生成的中斷與軟件生成的中斷的組合。它們包含來自其它報文傳遞單元機構(gòu)的中斷狀態(tài),也允許軟件對寄存器位進(jìn)行個別設(shè)置來產(chǎn)生中斷。
向外門鈴
向外門鈴寄存器被本地處理器寫入數(shù)據(jù)時,中斷可能生成在中斷插接線P_NTA#、P_INTB#、P_NTC#、P_NTD#上。如果門鈴寄存器中有寄存器位被寫上數(shù)值1,就有中斷生成。向寄存器的任何一位寫入數(shù)值0,不會改變該位的值,也不會導(dǎo)致中斷的生成。門鈴寄存器中的寄存器位一旦被置位,就不能被本地處理器清零。
究竟用的是哪個中斷插接線,由ATU中斷接插線寄存器決定。
中斷可以被向外門鈴屏蔽寄存器中的屏蔽位屏蔽。如果某特定位對應(yīng)的屏蔽位被置位,則該位就不會生成中斷。向外門鈴屏蔽寄存器只影響中斷的生成,并不改變已經(jīng)寫到向外門鈴寄存器中的值。
當(dāng)外部PCI代理將數(shù)值1寫到向外門鈴寄存器中已經(jīng)置位的寄存器位時,中斷被清除。向寄存器位寫0不會改變該位的值,也不清除中斷。
總之,本地處理器通過對向外門鈴寄存器中寄存器位的設(shè)置來生成中斷,外部PCI代理也是通過對相同的寄存器中寄存器位的設(shè)置來清除中斷。
向內(nèi)門鈴
向內(nèi)門鈴寄存器被外部PCI代理寫入數(shù)據(jù)時,會對本地處理器生成中斷。如果門鈴寄存器中有寄存器位被寫上數(shù)值1,就有中斷生成。向寄存器的任何一位寫入數(shù)值0,不會改變該位的值,也不會導(dǎo)致中斷的生成。向內(nèi)門鈴寄存器中的寄存器位一旦被置位,就不能被任何外部PCI代理清零。
中斷可以被向內(nèi)門鈴屏蔽寄存器中的屏蔽位屏蔽。如果某特定位對應(yīng)的屏蔽位被置位,則該位就不會生成中斷。門鈴屏蔽寄存器只影響中斷的生成,并不改變已經(jīng)寫到向內(nèi)門鈴寄存器中的值。
向內(nèi)門鈴寄存器中為NMI(非屏蔽中斷)中斷保留了一個寄存器位。該中斷不能被向內(nèi)門鈴屏蔽寄存器屏蔽。
當(dāng)本地處理器將數(shù)值1寫到向內(nèi)門鈴寄存器中已經(jīng)置位的寄存器位時,中斷被清除。向寄存器位寫0不會改變該位的值,也不清除中斷。
環(huán)形隊列
報文傳遞單元中實現(xiàn)4個環(huán)形隊列2個向外環(huán)形隊列,2個向內(nèi)環(huán)形隊列。在此,向外或向內(nèi)表示報文的流動方向。向內(nèi)報文或者是其它處理器投遞的、供本地處理器處理的新報文,或者是可被其它處理器再使用的空的或空閑報文。向外報文或者是本地處理器投遞的、供其它處理器處理的報文,或者是可被本地處理器再使用的空閑報文。
這4個環(huán)形隊列被用于按下述方式傳送報文。2個向內(nèi)隊列用于處理向內(nèi)報文,向外隊列則用于處理向外報文。向內(nèi)隊列中的一個被指定為空閑隊列,它包含向內(nèi)空閑報文;另一個向內(nèi)隊列被指定為投遞隊列,它包含向內(nèi)投遞報文。與此類似,向外隊列中的有一個被指定為空閑隊列,另一個向外隊列被指定為投遞隊列。次級PCI總線仲裁單元
下文描述次級PCI總線仲裁單元53,內(nèi)容是仲裁的操作模式、建立和實現(xiàn)。概述
PCI本地總線需要有一個為系統(tǒng)環(huán)境內(nèi)每個PCI總線服務(wù)的中央仲裁資源。PCI采用基于存取的仲裁概念而不是傳統(tǒng)的時隙法。PCI總線上的每個設(shè)備每當(dāng)作為總線主要求總線進(jìn)行存取時,都要為總線作出仲裁。
PCI仲裁利用了一種簡單的REQ#和GNT#握手協(xié)議。當(dāng)設(shè)備要求總線時,它就確立它的REQ#輸出。仲裁單元53通過確立該代理的GNT#輸入,允許發(fā)出請求的該代理訪問總線。PCI仲裁是一種“隱藏式”的仲裁方案,其中的仲裁序列發(fā)生在后臺,此時其它某個總線主正控制著總線。其優(yōu)點是,總線仲裁開銷不占用PCI的帶寬。對仲裁器的唯一要求是必須實現(xiàn)一種公平的仲裁算法。所選擇的仲裁算法必須保證,任何時刻單個PCI總線上不會有一個以上的GNT#活躍。操作原理
次級總線仲裁器53支持多達(dá)6個次級總線主,加上次級總線接口自身。各個請求可以編程到三個優(yōu)先級之一,也可以禁止。用應(yīng)用軟件編程的內(nèi)存映射控制寄存器,確定每個總線主的優(yōu)先級。對各優(yōu)先級的處理是按輪式調(diào)度法進(jìn)行的。輪式調(diào)度法是這樣一種機制,即其中的每個設(shè)備輪流充當(dāng)總線主,輪流順序按環(huán)形排列。下一個可能的總線主直接排在當(dāng)前總線主的前面,上一個總線主直接排在當(dāng)前總線主的后面。
輪式仲裁方案支持3個級別的輪式仲裁。這三個級別是低、中、高優(yōu)先級。用輪式機制保證了各優(yōu)先級都有一個排列在前的設(shè)備。為了實現(xiàn)公平仲裁的思想,在次高級優(yōu)先權(quán)中為各優(yōu)先級(不含最高優(yōu)先級)的在前設(shè)備保留一個位置。如果在某個仲裁序列中,某優(yōu)先級的在前設(shè)備未獲得總線,就將其提升到次高級優(yōu)先權(quán)隊列中。一旦該設(shè)備獲得了總線,就恢復(fù)其編程的優(yōu)先級。這種保留位置的方法保證了算法的公平性,原因在于它允許較低優(yōu)先級的請求通過優(yōu)先級機制被提升到最高優(yōu)先級設(shè)備的位置上并在下一開啟中被授予總線。
仲裁器通過REQ#-GNT#協(xié)議與總線上所有發(fā)出請求的代理聯(lián)絡(luò)??偩€主確立REQ#輸出,等待GNT#輸入的確立。代理可以在前一個總線控制者仍然控制著總線的狀態(tài)下就獲得總線。仲裁器只負(fù)責(zé)確定下一次將總線分配給哪個PCI設(shè)備。各單個PCI設(shè)備則負(fù)責(zé)確定何時總線被釋放,自己能開始訪問總線。
通過編程接口可以將次級總線仲裁器53關(guān)閉,以實行例行仲裁算法。當(dāng)次級仲裁器53被關(guān)閉時,一組REQ#-GNT#信號充當(dāng)P2P的次級PCI接口的仲裁信號。優(yōu)先級機制
優(yōu)先級機制可以用BIOS碼或應(yīng)用軟件進(jìn)行編程。單個總線主的優(yōu)先級將決定該設(shè)備在輪式調(diào)度中被置于的位置的級別。該優(yōu)先級確定的是設(shè)備的起始優(yōu)先級或最低優(yōu)先級,如果應(yīng)用軟件為設(shè)備編程了低優(yōu)先級,該設(shè)備可以被提升到中優(yōu)先級,再被提升到高優(yōu)先級,直到獲得本地總線。一旦獲得了總線,其優(yōu)先級就被重新設(shè)置為編程的優(yōu)先級,于是又可以再次重新啟動仲裁。本發(fā)明領(lǐng)域的熟練人員應(yīng)完全能夠掌握實現(xiàn)適當(dāng)?shù)拇渭塒CI總線仲裁單元所需的進(jìn)一步細(xì)節(jié)。DMA控制器
以下描述本發(fā)明使用的集成的直接存儲器存取(DMA)控制器,內(nèi)容有DMA控制器的操作模式、建立、外部接口和實現(xiàn)。概述
DMA控制器提供低等待、高通量的數(shù)據(jù)傳輸能力。DMA控制器優(yōu)化了PCI總線與本地處理器存儲器之間數(shù)據(jù)的塊傳輸。作為PCI總線上的啟動器的DMA具有提供33MHz上最大為132M字節(jié)/秒通量的PCI猝發(fā)能力。
DMA控制器的硬件負(fù)責(zé)執(zhí)行數(shù)據(jù)傳輸及提供編程接口,其特點是
·3個獨立通道
·使用P2P存儲器控制接口
·本地處理器接口上的尋址范圍是232
·使用PCI雙地址周期(DAC),在初級和次級PCI接口上的尋址范圍是264
·對初級和次級PCI總線的獨立PCI接口
·PCI總線和本地處理器本地總線的不對齊數(shù)據(jù)傳輸?shù)挠布С?br> ·對PCI總線和P2P本地總線的完整的132M字節(jié)/秒猝發(fā)支持
·對PCI總線的雙向直接尋址
·由本地處理器完全可編程
·支持?jǐn)?shù)據(jù)塊集結(jié)和擴散的自動數(shù)據(jù)鏈接
·需求模式支持DMA通道0上的外部設(shè)備
附圖7表示了DMA通道到PCI總線的連接線路。操作原理
DMA控制器51a和51b提供3個高通量的PCI—存儲器傳輸通道。通道0與通道1傳輸初級PCI總線和本地處理器本地存儲器之間的數(shù)據(jù)塊。通道2傳輸次級PCI總線和本地處理器本地存儲器之間的數(shù)據(jù)塊。除通道0外的其它通道完全相同。通道0多了支持需求模式傳輸。各個通道都有一個PCI總線接口和一個本地處理器本地總線接口。
各個DMA通道對PCI總線和本地處理器本地總線實行直接尋址。它們雙向支持PCI總線的全部64位地址區(qū)間的數(shù)據(jù)傳輸,這包括用PCI DAC命令的64位尋址。通道提供一個專用寄存器存放64位地址的高32位地址。DMA通道不支持跨越32位地址邊界的數(shù)據(jù)傳輸。
本發(fā)明領(lǐng)域的熟練人員應(yīng)完全能夠掌握實現(xiàn)供本發(fā)明中使用的適當(dāng)?shù)腄MA機制所需的進(jìn)一步細(xì)節(jié)。存儲器控制器
以下描述本發(fā)明使用的集成的存儲器控制器47,內(nèi)容有控制器的操作模式、建立、外部接口和實現(xiàn)。概述
P2P處理器中集成一個主存儲器控制器47,為P2P處理器和存儲器系統(tǒng)33之間提供一個直接接口。存儲器控制器支持
·容量達(dá)256M字節(jié)的32位或36位(32位內(nèi)存數(shù)據(jù)加4個奇偶校驗位)DRAM
·交錯的或非交錯的DRAM
·快速頁-模式(FPM)的DRAM
·擴展數(shù)據(jù)外出(EDO)的DRAM
·猝發(fā)擴展數(shù)據(jù)外出(BEDO)的DRAM
·兩個獨立的SRAM/DRAM存儲器體
·容量達(dá)16M字節(jié)(每存儲器體)的8位或32位SRAM/ROM
存儲器控制器為DRAM陣列生成行地址選通(RAS#)、列地址選通(CAS#)、寫啟動(WE#)和12位多路復(fù)用地址(MA[110])。DRAM地址鎖存啟動(DALE#)和LEAF#信號用于交錯的DRAM中的地址和數(shù)據(jù)鎖存。
存儲器控制器支持兩個DRAM、ROM體或快速存儲器,每一個體支持64K字節(jié)至16M字節(jié)的存儲容量。每一個存儲器體能被獨立地配置成寬度8位或32位的存儲器。存儲器控制器提供芯片啟動(CE#)信號、存儲器寫啟動(MWE#)信號和遞增猝發(fā)地址。
附圖8是P2P處理器中集成的存儲器控制器的概略圖。操作原理
存儲器控制器47以最佳方式將本地總線主的猝發(fā)存取協(xié)議翻譯成被尋址存儲器所支持的存取協(xié)議。地址解碼單元101對內(nèi)部地址/數(shù)據(jù)總線上的本地總線地址進(jìn)行解碼,生成適當(dāng)?shù)牡刂泛涂刂菩盘柕脚c存儲器控制器相連的存儲器陣列33。本地總線主生成的猝發(fā)存取提供第一個地址。存儲器控制器提供遞增地址,送到MA[110]插線上的存儲器陣列。地址的遞增要進(jìn)行到本地總線主結(jié)束周期(表現(xiàn)為BLAST#信號的確立),或者到(DRAM讀周期)發(fā)生一個本地總線奇偶校驗錯誤。一個單一數(shù)據(jù)傳輸周期的最大猝發(fā)量是2K字節(jié)。本地總線主負(fù)責(zé)跟蹤遞增猝發(fā)的計數(shù)并在達(dá)到2K字節(jié)地址邊界時結(jié)束數(shù)據(jù)傳輸。
在MA[110]總線103上出現(xiàn)的地址取決于被尋址的存儲器體的類型。如果是DRAM,MA[110]就提供多路復(fù)用的行地址和列地址。列地址遞增到最接近的2K字節(jié)地址邊界。如果是SRAM與FLASH/ROM存儲器體,MA[110]總線上的地址就取決于地址相位期間出現(xiàn)在AD[132]信號上的地址。對于猝發(fā)數(shù)據(jù),猝發(fā)計數(shù)器將地址遞增到最接近的2K字節(jié)地址邊界。
存儲器控制器生成編程到存儲器控制器的寄存器107中的,用于控制連接到存儲器陣列的信號等待狀態(tài)的數(shù)目。此外,在存儲器存取期間,要求為(本地處理器之外的)本地總線主提供WAIT#信號,以指示等待狀態(tài)生成器109生成的其它等待狀態(tài)。
可以為DRAM陣列啟動字節(jié)寬數(shù)據(jù)奇偶校驗生成和校驗單元111。奇偶校驗檢測到奇偶校驗錯誤時發(fā)出存儲器故障錯誤。發(fā)生錯誤的字地址被俘獲入寄存器中。
存儲器控制器提供總線監(jiān)控器113來檢測不返回外部RDYRCV#信號的地址區(qū)間,其目的是對向未定義地址區(qū)間的訪問進(jìn)行檢測。當(dāng)檢測發(fā)現(xiàn)錯誤時,等待狀態(tài)生成器就生成一個內(nèi)部LRDYRCV#去完成總線訪問,并可選擇地生成一個總線故障信號。
本發(fā)明領(lǐng)域的熟練人員應(yīng)完全能夠掌握實現(xiàn)供本發(fā)明使用的適當(dāng)?shù)拇鎯ζ骺刂破魉璧倪M(jìn)一步細(xì)節(jié)。PCI和外圍設(shè)備中斷控制器
以下描述P2P處理器中斷控制器支持,內(nèi)容有中斷的操作模式、建立、外部存儲器接口和實現(xiàn)。概述
PCI和外圍設(shè)備中斷控制器(PPIC)67具有向本地處理器和PCI總線兩者生成中斷的能力。P2P處理器中有許多可能向本地處理器產(chǎn)生中斷的外圍設(shè)備,它們有
·DMA通道0
·初級ATU
·DMA通道1
·次級ATU
·DMA通道2
·I2C總線接口單元
·橋初級接口
·APIC總線接口單元
·橋次級接口
·報文傳遞單元
除內(nèi)部設(shè)備之外,外部設(shè)備也會向本地處理器生成中斷。外部設(shè)備可通過插接線XINT70#和NMI#插接線生成中斷。
PCI和外圍設(shè)備中斷控制器提供直接PCI中斷的能力。路由選擇邏輯在軟件控制下,啟動截獲外部次級PCI中斷并把它們傳遞到初級PCI中斷線的能力。
《I960 Jx微處理器用戶手冊》進(jìn)一步描述了本地處理器中斷和中斷優(yōu)先權(quán)機制。該用戶手冊還徹底說明了本地處理器中斷控制器的各種不同操作模式。操作原理
PCI和外圍設(shè)備中斷控制器有兩個功能
·內(nèi)部的外圍設(shè)備中斷控制
·PCI中斷路由選擇
外圍設(shè)備中斷控制機構(gòu)將給定外圍設(shè)備的多個中斷源綜合成一個中斷,送給本地處理器。為了向執(zhí)行中的軟件提供中斷源信息,使用一個內(nèi)存映射狀態(tài)寄存器來描述中斷源。所有外圍設(shè)備中斷都由各自的外圍設(shè)備控制寄存器來單獨啟動。
PCI中斷路由選擇機構(gòu)允許主機軟件(或本地處理器軟件)為PCI中斷選擇路由,或者通向本地處理器,或者通向P_INTA#、P_INTB#、P_INTC#和P_INTD#輸出插接線。路由選擇機構(gòu)是通過一個可從初級PCI橋配置空間或P2P處理器本地總線訪問的內(nèi)存映射寄存器被控制的。本地處理器中斷
本地處理器的中斷控制器有8個外部中斷插接線及一個非屏蔽中斷插接線用于監(jiān)測外部中斷請求。這8根外部中斷插接線可被配置為專用、擴展或混合模式中的一種。在專用模式中,可單個地將插接線映射到中斷矢量上。擴展模式的中斷線可解釋為能代表一個中斷向量的位域,用采用這種模式的中斷線可以直接請求240個中斷向量?;旌夏J街?個插接線在擴展模式中工作,并能請求32個不同中斷,另外還有3插接線在專用模工中工作。
本地處理器的9個中斷線的定義和編程選擇如下
XINT70#外部中斷(輸入)—這些線產(chǎn)生中斷請求。插接線可由軟件配置為3種模式專用、擴展或混合模式。各線可編程成邊沿檢測輸入或級檢測輸入。此外,也可以在程序控制下為這些線選擇去抖動(debouncing)模式。
NMI#非屏蔽中斷(輸入)—它導(dǎo)致一個非屏蔽中斷事件的發(fā)生。NMI是識別出的優(yōu)先級最高的中斷。NMI#線是邊沿激活的輸入??梢栽诔绦蚩刂葡聻镹MI#選擇去抖動模式。該線是內(nèi)部同步的。
為使P2P處理器操作正確,本地處理器外部中斷線必須編程成只用于直接模式操作、電平敏感中斷和快速取樣模式。這是通過本地處理器的內(nèi)存映射寄存器空間中的中斷控制寄存器(ICON)完成的。《I960 Jx微處理器用戶手冊》中有關(guān)于對本地處理器中斷控制器編程的完備資料。
對P2P中斷機構(gòu)的利用依賴于對本地處理器中斷控制器和PCI中斷路由選擇寄存器中XINT選擇位的配置。表9描述了本地處理器中斷控制器啟動的操作模式和功能,表9描述了XINT選擇位的用法。
表9.P2P中斷控制器編程概要操作框
PCI和外圍設(shè)備中斷控制器與本地處理器連接,連接線路如附圖9所示。
PCI中斷路由選擇
4個PCI中斷輸入可由多路轉(zhuǎn)換器121選擇路徑由本地處理器的中斷輸入端或PCI的中斷輸出端。中斷輸入的路由選擇由PCI中斷路由選擇寄存器中的XINT選擇位控制。PCI中斷路由選擇寄存器由表10所示。
表10.PCI中斷路由選擇寄存器概要
前面說過,本地處理器的XINT0#~XINT3#必須編程為電平敏感的以供應(yīng)PCI中斷。此外當(dāng)XINT選擇位置位時,本地處理器輸入的外部邏輯必須驅(qū)動一個不活躍電平(‘1’)。
內(nèi)部外圍設(shè)備中斷路由選擇
本地處理器的中斷輸入XINT6#、XINT7#、NMI#從多個內(nèi)部中斷源接受輸入。在這三個輸入端的各個之前有一個內(nèi)部鎖存器來對這些不同的中斷源進(jìn)行必要的多路轉(zhuǎn)換。應(yīng)用軟件可以通過讀相應(yīng)的中斷鎖存器來確定中斷是由哪個外圍設(shè)備引起的。讀取該外圍設(shè)備的狀態(tài)信息可以更詳細(xì)地確定中斷的確切原因。
本地處理器的中斷XINT6#接受來自外部線和3個DMA通道的中斷。各DMA通道中斷要么是DMA傳輸結(jié)束的中斷,要么是DMA鏈結(jié)束的中斷。XINT6中斷鎖存器123接收DMA通道的中斷輸入也接收外部線XINT6#。這些中斷源的任何有效中斷將鎖存器內(nèi)的位置位,向本地處理器的XINT6#輸入輸出一個電平敏感中斷。只要中斷鎖存器中有1,它就應(yīng)該不停地向該處理器的中斷輸入端驅(qū)動一個有效低輸入。XINT6中斷鎖存器可以通過XINT6中斷狀態(tài)寄存器被讀取。清除內(nèi)部外圍設(shè)備處的中斷源就能清除XINT6中斷鎖存器。
向XINT6中斷鎖存器驅(qū)動輸入的單元中斷源的詳細(xì)情況如表11所示。
表11.XINT6的中斷源
本地處理器的XINT7#中斷接受來自外部中斷線、APIC總線接口單元、初級ATU、I2C總線接口單元和報文傳遞單元的中斷。XINT7中斷鎖存器125既接收上述4個單元的各個的一個中斷輸入,也接收外部線XINT7#。這些中斷源的任何有效中斷將鎖存器內(nèi)的寄存器位置位并向本地處理器的XINT7#輸入輸出一個電平敏感中斷。只要中斷鎖存器中有1,它就應(yīng)該不停地向該處理器的中斷輸入端驅(qū)動一個有效低輸入。XINT7中斷鎖存器可以通過XINT7中斷狀態(tài)寄存器被讀取。清除內(nèi)部外圍設(shè)備處的中斷源就能清除XINT7中斷鎖存器。
向XINT7中斷鎖存器驅(qū)動輸入的單元中斷源的詳細(xì)情況如表12所示。
表12.XINT7的中斷源
本地處理器的非屏蔽中斷(NMI)接受來自外部線、初級和次級ATU、初級和次級橋接口、本地處理器和三個DMA通道中各個通道的中斷。這8個中斷的各個表示外圍設(shè)備上出現(xiàn)了錯誤條件。NMI中斷鎖存器127既接收上述8個源中各個的中斷輸入,也接收外部線NMI#。這些中斷源的任何有效中斷將鎖存器內(nèi)的位置位,向本地處理器的NMI#輸入輸出一個邊沿觸發(fā)中斷。NMI中斷鎖存器可以通過NMI中斷狀態(tài)寄存器被讀取。清除內(nèi)部外圍設(shè)備處的中斷源就能清除NMI中斷鎖存器。
向NMI中斷鎖存器驅(qū)動輸入的單元中斷源的詳細(xì)情況如表13所示。
表13.NMI的中斷源
下面描述路由選擇寄存器、XINT6中斷狀態(tài)寄存器、XINT7中斷狀態(tài)寄存器、NMI中斷狀態(tài)寄存器。
P2P處理器外部中斷接口P2P處理器的外部中斷輸入接口由以下引線組成
表14.中斷輸入線描述 PCI向外門鈴中斷
P2P處理器具有在任意一個初級PCI中斷線上生成中斷的能力。這是通過對初級ATU內(nèi)部門鈴端口寄存器中的一個位進(jìn)行置位來完成的。位0至3分別對應(yīng)P_INTA#至P_INTD#。對某個寄存器位進(jìn)行置位就生成對應(yīng)的PCI中斷。寄存器定義
PCI和外圍設(shè)備中斷控制器有4個控制和狀態(tài)寄存器
·PCI中斷路由選擇寄存器
·XINT6中斷狀態(tài)寄存器
·XINT7中斷狀態(tài)寄存器
·NMI中斷狀態(tài)寄存器
每個寄存器都是一個32位寄存器,并且是本地處理器存儲器空間中的內(nèi)存映射寄存器。
所有寄存器作為P2P的內(nèi)存映射寄存器都是可見的,可以通過內(nèi)部存儲器總線進(jìn)行存取。PCI中斷路由選擇寄存器可以從內(nèi)部存儲器總線及通過PCI配置寄存器空間訪問(功能0#)。
PCI中斷路由選擇寄存器—PIRSR
PCI中斷路由選擇寄存器(PIRSR)決定外部輸入線的路由選擇。輸入線由4個次級PCI中斷輸入組成,它們被選擇路徑到初級PCI中斷或本地處理器中斷。PCI中斷線被定義為“電平敏感”中斷,確立電平是低電平。中斷線的確立和撤銷與PCI或處理器時鐘是異步的。
如果次級PCI中斷輸入被選擇路徑到初級PCI中斷線,本地處理器的中斷輸入線XINT30#必須被置于不活躍狀態(tài)。
XINT6中斷狀態(tài)寄存器—X6ISR
XINT6中斷狀態(tài)寄存器(X6ISR)表示當(dāng)前掛起的XINT6中斷。XINT6的中斷源可以是通過XINT6中斷鎖存器或外部XINT6#輸入線連接的內(nèi)部外圍設(shè)備。上文中內(nèi)部外圍設(shè)備中斷路由選擇部分描述了可以在XINT6#輸入上生成的那些中斷。
X6ISR被應(yīng)用軟件用于確定XINT6#輸入上中斷的中斷源以及清除該中斷。該寄存器中的所有位都是定義為只讀的。寄存器中的所有位都在對應(yīng)的中斷源(表11中所示的狀態(tài)寄存器源)被清除時清零。X6ISR反映著XINT6中斷鎖存器的輸入的當(dāng)前狀態(tài)。
由于P2P外圍設(shè)備單元的異步性,當(dāng)應(yīng)用軟件讀X6ISR寄存器時,可能有多個中斷處于活躍狀態(tài)。應(yīng)用軟件必須恰當(dāng)?shù)貙Υ@些多重中斷條件。此外,應(yīng)用軟件可以隨后讀X6ISR寄存器,以確定在上個中被處理期間是否又有中斷發(fā)生。來自X6ISR寄存器的所有中斷在本地處理器中都具有相同的優(yōu)先級(《i960 JX微處理器用戶手冊》中有對優(yōu)先級機制設(shè)置的說明)。
表15詳細(xì)定義了X6ISR。
表15.XINT6中斷狀態(tài)寄存器—X6ISRXINT7中斷狀態(tài)寄存器—X7ISR XINT7中斷狀態(tài)寄存器(X7ISR)表示當(dāng)前掛起的XINT7中斷。XINT7的中斷源可以是通過XINT7中斷鎖存器或外部XINT7#輸入線連接的內(nèi)部外圍設(shè)備。
X7ISR被應(yīng)用軟件用于確定XINT7#輸入上中斷的中斷源以及清除該中斷。該寄存器中的所有位都定義為只讀的。寄存器中的所有位都在對應(yīng)的中斷源(表12中所示的狀態(tài)寄存器源)被清除時清零。X7ISR反映著XINT7中斷鎖存器的輸入的當(dāng)前狀態(tài)。
由于P2P外圍設(shè)備單元的異步性,當(dāng)應(yīng)用軟件讀X7ISR寄存器時,可能有多個中斷處于活躍狀態(tài)。應(yīng)用軟件必須恰當(dāng)?shù)貙Υ@些多重中斷條件。此外,應(yīng)用軟件可以隨后讀X7ISR寄存器,以確定在上個中被處理期間是否又有中斷發(fā)生。來自X7ISR寄存器的所有中斷在本地處理器中都具有相同的優(yōu)先級。
表16詳細(xì)定義了X7ISR。
表16.XINT7中斷狀態(tài)寄存器—X7ISR NMI中斷狀態(tài)寄存器—NISR
NMI中斷狀態(tài)寄存器(NISR)表示當(dāng)前掛起的NMI中斷。NMI的中斷源可以是通過NMI中斷鎖存器或外部NMI#輸入線連接的內(nèi)部外圍設(shè)備。
NISR被應(yīng)用軟件用于確定NMI#輸入上中斷的中斷源以及清除該中斷。該寄存器中的所有位都是只讀的。寄存器中的所有位都在對應(yīng)的中斷源(表13中所示的狀態(tài)寄存器源)被清除時清零。NISR反映著NMI中斷鎖存器的輸入的當(dāng)前狀態(tài)。
由于P2P外圍設(shè)備單元的異步性,當(dāng)應(yīng)用軟件讀NISR寄存器時,可能有多個中斷處于活躍狀態(tài)。應(yīng)用軟件必須恰當(dāng)?shù)貙Υ@些多重中斷條件。此外,應(yīng)用軟件可以隨后讀NISR寄存器,以確定在上個中被處理期間是否又有中斷發(fā)生。來自NISR寄存器的所有中斷在本地處理器中都具有相同的優(yōu)先級。
表17示出了NMI中斷狀態(tài)寄存器的各定義位。
表17.NMI中斷狀態(tài)寄存器—NISR內(nèi)部仲裁
以下描述P2P處理器的內(nèi)部仲裁—包括對處理器中內(nèi)部本地總線的仲裁以及對處理器內(nèi)各個PCI接口的仲裁,描述的內(nèi)容有仲裁的操作模式、建立、外部存儲器接口和實現(xiàn)。本地總線仲裁
P2P處理器需要有一個仲裁機構(gòu)來控制本地總線的所有權(quán)。連接到本地總線的總線主由3個DMA通道、初級PCI地址翻譯單元、次級PCI地址翻譯單元、本地處理器和外部總線主所組成
本地總線仲裁單元(LBAU)57實現(xiàn)一種公平算法,允許每一個總線主有機會取得對本地總線的控制權(quán)。該算法在輪式調(diào)度方案中加入了一種優(yōu)先化的機制。在最佳實施例中,實現(xiàn)應(yīng)允許應(yīng)用軟件獨立地向各個本地總線主分配優(yōu)先權(quán)。
本地總線仲裁單元的責(zé)任是將本地總線授予總線主。所有總線主都有一個邏輯,一旦它們已經(jīng)失去自己的內(nèi)部GNT#信號,就要從本地總線上卸任自己作為總線主。有一個可編程的12位計數(shù)器,用于限制總線主控制本地總線的時間量,它指示總線主在有其它總線主請求總線的情況下,何時必須交出占有權(quán)。
外部總線主可以用于本地總線上,方法是增加控制HOLD/HOLDA的外部邏輯。P2P處理器允許有一個外部總線主加入公平算法。如果本地總線上使用的外部總線主不止一個,就需要用外部邏輯將所有外部設(shè)備當(dāng)作一個設(shè)備來對待(檢測HOLD,驅(qū)動HOLDA)。
本地總線仲裁單元控制本地處理器的補償單元(backoff unit)。補償單元允許本地處理器被“補償”,以防止可能發(fā)生的死鎖現(xiàn)象。處理器補償時,保持在等待狀態(tài)(L_RDYRCV#不活躍)。內(nèi)部緩沖器使多路轉(zhuǎn)換地址/數(shù)據(jù)總線處于三穩(wěn)態(tài),使其它本地總線主(ATU、DMA等)控制總線,因而就避免出現(xiàn)發(fā)生向外事務(wù)處理要求使用正被向內(nèi)事務(wù)處理使用的資源這種情況。此外,補償單元使本地總線的性能在所有向外的處理器讀操作期間達(dá)到最優(yōu)。
除了本地總線仲裁單元之外,P2P處理器還有兩個本地PCI仲裁單元。本地初級仲裁單元55a控制對內(nèi)部初級PCI總線的訪問。仲裁在PCI至PCI橋單元的初級ATU、DMA通道0與1、初級接口之間爭奪初級PCI總線時發(fā)生。本地次級仲裁單元55b控制對內(nèi)部次級PCI總線的訪問。仲裁在PCI至PCI橋單元的次級ATU、DMA通道2、次級接口之間爭奪次級PCI總線時發(fā)生。這兩個本地PCI仲裁單元都以相似的方式工作。理想的情況是,仲裁邏輯被設(shè)計成允許多個總線主控制本地總線。當(dāng)有總線主對本地總線提出請求時,本地總線仲裁單元首先應(yīng)通過確立一個HOLD請求信號,從本地處理器得到本地總線的控制權(quán)。本地處理器應(yīng)將總線交給仲裁邏輯,方法是確立HOLDA信號并將處理器信號線置于三態(tài)模式。仲裁邏輯接著就應(yīng)將本地總線交給其它總線主,方法是返回對應(yīng)的內(nèi)部GNT#信號。內(nèi)部PCI總線仲裁
P2P處理器中有兩個內(nèi)部仲裁單元??刂茖υO(shè)備內(nèi)的內(nèi)部PCI總線的訪問。附圖10表示這些內(nèi)部仲裁單元以及它們所控制的資源。
初級內(nèi)部PCI仲裁單元為下列內(nèi)部單元進(jìn)行仲裁
·初級橋接口
·初級ATU
·DMA通道0
·DMA通道1
次級內(nèi)部PCI仲裁單元為下列內(nèi)部單元進(jìn)行仲裁
·次級橋接口
·次級ATU
·DMA通道2
各內(nèi)部PCI仲裁單元采用固定的輪式仲裁方案,總線上的每個設(shè)備具有相同的優(yōu)先權(quán)。
對固定的輪式仲裁的解釋如下
·復(fù)位后,仲裁令牌屬于各內(nèi)部PCI仲裁單元內(nèi)的設(shè)備#1。
·在有設(shè)備向仲裁單元確立內(nèi)部REQ#的每個時鐘上執(zhí)行仲裁。
·令牌的下一個所有者(例如總線)是設(shè)備號與當(dāng)前令牌所有者(總線空閑時則為上一個令牌所有者)最接近的設(shè)備。例如,如果設(shè)備#3是當(dāng)前所有者,當(dāng)設(shè)備#4、設(shè)備#1都提出總線請求,則設(shè)備#4贏出。
·當(dāng)仲裁單元向內(nèi)部總線主控啟動內(nèi)部授權(quán)時,傳遞令牌。這是仲裁單元的授權(quán)信號。向該內(nèi)部總線主的實際輸出仍然用外部GNT#輸入屏蔽著。操作原理
內(nèi)部PCI總線上的各單元都要請求使用總線進(jìn)行主控操作。每當(dāng)附屬于內(nèi)部總線的資源發(fā)出請求(REQ#)時,便出現(xiàn)仲裁。向下一個資源的授權(quán)是按照輪式方案作出的。內(nèi)部PCI總線的授予與外部PCI總線的狀態(tài)關(guān)系密切。外部中斷請求線(P_REQ#或S_REQ#)的狀態(tài)是各內(nèi)部PCI總線上請求線的邏輯“或”的直接反映。
內(nèi)部PCI總線主可以在任何時候接受內(nèi)部PCI仲裁單元的內(nèi)部GNT#(幕后仲裁)。內(nèi)部總線主仍然負(fù)責(zé)繼續(xù)監(jiān)視FRAME#、IRDY#、和它們的內(nèi)部GNT#輸入以保證在開始訪問總線之前保持對總線的所有權(quán)。在時鐘脈沖的上升沿,F(xiàn)RAME#、IRDY#必須是高電平,授權(quán)輸入信號必須是低電平,就是這個上升沿確定了總線主然后驅(qū)動FRAME#低電平以開始一個周期的那個時鐘周期。內(nèi)部PCI仲裁單元對外部授權(quán)信號(P_REQ#或S_REQ#)進(jìn)行監(jiān)控,僅當(dāng)在外部授權(quán)信號為真的基礎(chǔ)上進(jìn)行內(nèi)部授權(quán)。
內(nèi)部PCI仲裁單元在下列情形撤銷內(nèi)部總線主的GNT#
·外部授權(quán)信號(P_GNT#或S_GNT#)轉(zhuǎn)為不活躍狀態(tài)。
·內(nèi)部仲裁單元將內(nèi)部總線主的內(nèi)部授權(quán)信號變?yōu)椴换钴S狀態(tài)。
·當(dāng)前的總線所有者撤銷其REQ#輸出。
各總線主的授權(quán)輸入可被視為外部授權(quán)和來自內(nèi)部PCI總線仲裁單元內(nèi)部的內(nèi)部授權(quán)的邏輯“或”。仲裁單元根據(jù)誰是輪式方案決定的贏者向內(nèi)部總線主激活內(nèi)部授權(quán)信號,但驅(qū)動到內(nèi)部總線主的授權(quán)輸入的實際GNT#信號是從外部授權(quán)和內(nèi)部授權(quán)輸入的邏輯“或”得出的。
內(nèi)部仲裁單元負(fù)責(zé)保證,任何時刻只有一個內(nèi)部GNT#是激活的。一旦某個內(nèi)部總線主失去了內(nèi)部GNT#信號,它最終就必須要釋放總線的所有權(quán)。內(nèi)部GNT#信號遵守《PCI本地總線規(guī)范》關(guān)于GNT#信號撤銷的規(guī)則(仲裁信號協(xié)議)。本發(fā)明領(lǐng)域的熟練人員顯然完全能夠掌握實現(xiàn)內(nèi)部PCI仲裁單元所需的其它細(xì)節(jié)。I2C總線接口單元
以下描述P2P處理器的I2C(互連集成電路)總線接口單元,內(nèi)容是I2C總線接口單元的操作模式、建立和實現(xiàn)。概述
I2C總線接口單元61允許本地處理器34擔(dān)當(dāng)I2C總線上的主和從設(shè)備。I2C總線是Philips公司開發(fā)的一種串行總線,由一種雙插線接口組成。SDA是數(shù)據(jù)線,用于實現(xiàn)輸入輸出功能;SCL是時鐘線,用于對I2C總線的參照與控制。
I2C總線允許P2P處理器與其它I2C外圍設(shè)備和微控制器接口,實現(xiàn)系統(tǒng)的管理功能。該串行總線能以最少的硬件構(gòu)造一個經(jīng)濟的系統(tǒng),用于向外部設(shè)備傳遞P2P子系統(tǒng)上的狀態(tài)和可靠性數(shù)據(jù)。
I2C總線接口單元是一種位于內(nèi)部P2P本地總線上外圍設(shè)備。I2C總線接受或發(fā)送出去的數(shù)據(jù)是經(jīng)由一個緩沖接口傳輸?shù)?。控制和狀態(tài)數(shù)據(jù)是通過本地處理器的一組內(nèi)存映射寄存器傳遞的?!禝2C總線規(guī)范》對I2C總線的操作有內(nèi)容完備的說明。操作原理
I2C總線為在僅使用雙線接口的總線上的代理之間交換信息定義了一個完整的串行協(xié)議??偩€上的各個設(shè)備均由唯一的7位地址識別,既可以作為信息的發(fā)送方,也可以作為接收方。I2C總線除了在發(fā)送方和接收方之間起作用外,還在主/從模式中發(fā)揮功能。
舉一個I2C總線操作的例子,假設(shè)微處理器擔(dān)當(dāng)總線上主。作為主的微處理器可能要尋址作為從設(shè)備的接收寫數(shù)據(jù)的EEPROM。此時微處理器就是主—發(fā)送方,EEPROM就是從—接收方。假若微處理器想要讀數(shù)據(jù),則微處理器就是主—接收方,EEPROM就是從—發(fā)送方。在這兩種情況下,都是由主來啟動和結(jié)束事務(wù)處理。
I2C總線允許系統(tǒng)有多個主,就是說,可以同時有多個設(shè)備試圖啟動數(shù)據(jù)傳輸。I2C總線為處理這種情況定義仲裁過程。如果有兩個或兩個以上的主同時驅(qū)動總線,當(dāng)其它主產(chǎn)生一個0時產(chǎn)生一個1的第一個主就會在仲裁中失敗。這取決于SDA和SCL I2C總線線路的“線-與”(wired-AND)操作。
I2C總線的串行操作使用一種線—與總線結(jié)構(gòu)。這是用于多個設(shè)備驅(qū)動總線線路及互相之間發(fā)信號,告知諸如有關(guān)仲裁結(jié)果、等待狀態(tài)、出錯條件等事件的方法。例如,當(dāng)一個主在數(shù)據(jù)傳輸期間驅(qū)動時鐘(SCL)線路時,它在每個時鐘脈沖的高電平時刻傳輸一個數(shù)據(jù)位。如果從設(shè)備不能按主要求的速率接收或驅(qū)動數(shù)據(jù),它可以將時鐘線的電平在高電平之間保持在低電平上以實質(zhì)上插入等待狀態(tài)。線-與操作在設(shè)備的輸出階段執(zhí)行的。I2C總線上的最大數(shù)據(jù)傳輸速度是每秒400K位。
I2C總線事務(wù)處理由本地處理器作為主而啟動或者由本地處理器作為從設(shè)備而接收。這兩個條件都會導(dǎo)致處理器對I2C總線進(jìn)行讀操作、寫操作或者讀、寫操作兼有。
操作框
P2P處理器的I2C總線接口單元是一個與本地總線相連的從外圍設(shè)備。該單元用P2P處理器的中斷機制來向本地處理器通知I2C總線上的活動。附圖11是I2C總線接口單元及其與本地總線接口的方框圖。
組成I2C總線接口單元的是兩個連接到I2C總線的線接口61、用于對本地處理器來回傳輸數(shù)據(jù)的8位緩沖器61a,一組控制和狀態(tài)寄存器61b、一組用于并行/串行轉(zhuǎn)換的移位寄存器61c。
I2C中斷的信號是通過處理器中斷XINT7#和XINT7中斷狀態(tài)寄存器(X7ISR)發(fā)出的。在緩沖器滿、緩沖器空、檢測到從地址、仲裁失敗或總線出錯等情況發(fā)生時,I2C總線接口單元將寄存器X7ISR內(nèi)的一位置位。所有中斷條件都是由本地處理器明確地清除的。
I2C數(shù)據(jù)緩沖寄存器IDBR是一個8位數(shù)據(jù)緩沖器,它從一端接收來自I2C總線的移位寄存器接口的一個字節(jié)的數(shù)據(jù),并從另一端接收來自P2P處理器本地總線的并行數(shù)據(jù)。用戶不可以訪問串行移位寄存器。APIC總線接口單元
以下描述APIC總線接口單元63。該單元提供本地總線與3線的APIC總線之間的通信機構(gòu),它有兩個基本功能
它使本地處理器能夠?qū)⒅袛鄨笪陌l(fā)送到APIC總線,并可以有選擇地在該報文發(fā)出后被中斷。本地處理器然后就能讀取報文傳輸?shù)慕Y(jié)果狀態(tài),檢查是否出現(xiàn)錯誤。
它也能接收APIC總線的EOI報文,并可以選擇中斷本地處理器,向本地處理器報告已經(jīng)有了EOI向量。
下面敘述該接口的操作模式、建立和實現(xiàn)。APIC體系結(jié)構(gòu)概述
APIC中斷體系結(jié)構(gòu)被規(guī)定為所有與《多處理器規(guī)范(MPS)》兼容的系統(tǒng)的中斷體系結(jié)構(gòu)。Intel公司出版了MPS1.1版,訂購號為242016-003。APIC體系結(jié)構(gòu)的主要特點是
1.APCI為Intel體系結(jié)構(gòu)的CPU-例如90和100MHZ的奔騰處理器-提供多處理器中斷管理,提供跨越所有處理器的靜態(tài)和動態(tài)的對稱中斷分配。
2.對稱中斷分配包括將中斷向最低優(yōu)先級處理器的路由選擇。
3.APIC在具有多個I/O子系統(tǒng)的系統(tǒng)中工作,每個子系統(tǒng)都可以有自己的中斷集。
4.APCI提供處理器間中斷,允許處理器中斷包括其自身的任何處理器或處理器組。
5.各個APIC中斷輸入線都可以獨立地由軟件編程為邊沿觸發(fā)型或電平觸發(fā)型。中斷向量和中斷導(dǎo)引(steering)信息可以按管腳引線作規(guī)定。
6.APIC支持由軟件來裁剪成適應(yīng)不同的系統(tǒng)體系結(jié)構(gòu)和不同使用模型的命名/尋址方案。
7.APIC支持與NMI、INIT和系統(tǒng)管理中斷(SMI)有關(guān)的全系統(tǒng)的處理器控制功能。
8.APIC與8259A型PIC共存,保持了PC的兼容性。
9.APIC為每個中斷輸入線提供可編程的中斷優(yōu)先級(向量)。因為APIC編程接口由兩個32位的內(nèi)存單元組成,可以用P2P處理器中的本地處理器模擬I/O APIC的功能。
本發(fā)明領(lǐng)域的熟練人員顯然完全能夠掌握適合與本發(fā)明一起使用的I/O APIC的具體實現(xiàn)細(xì)節(jié)。
權(quán)利要求
1.一種連接第一外部總線與第二外部總線的集成電路,包括
a〕連接到所述第一外部總線的第一內(nèi)部總線;
b〕連接到所述第二外部總線的第二內(nèi)部總線;
c〕具有連接到所述第一內(nèi)部總線的第一總線接口和連接到所述第二內(nèi)部總線的第二總線接口的總線橋裝置,所述總線橋用于允許事務(wù)處理在所述第一與第二外部總線之間被傳遞;
d〕連接到所述總線橋裝置、用于處理從外部源接收的事務(wù)處理和輸入到所述第一總線接口與所述第二總線接口的事務(wù)處理的本地處理器裝置;
e〕在所述處理器裝置與外部存儲器之間傳遞數(shù)據(jù)的本地總線。
2.權(quán)利要求1定義的集成電路,進(jìn)一步包括
a〕連接到所述本地總線和所述第一內(nèi)部總線的第一地址翻譯電路,該翻譯電路適用于將所述第一內(nèi)部總線上的向內(nèi)事務(wù)處理地址轉(zhuǎn)換成所述本地處理器裝置可用的地址,及將所述本地總線上的向外事務(wù)處理地址轉(zhuǎn)換成連接到所述第一外部總線的設(shè)備可用的地址;
b〕連接到所述本地總線和所述第二內(nèi)部總線的第二地址翻譯電路,該翻譯電路適用于將所述第二內(nèi)部總線上的向內(nèi)事務(wù)處理地址轉(zhuǎn)換成所述本地處理器裝置可用的地址,及將所述本地總線上的向外事務(wù)處理地址轉(zhuǎn)換成連接到所述第二外部總線的設(shè)備可用的地址。
3.權(quán)利要求2定義的集成電路,進(jìn)一步包括
連接到所述第一地址翻譯電路的報文傳遞單元,該報文傳遞單元適用于在新數(shù)據(jù)被放置到所述第一內(nèi)部總線上時產(chǎn)生一個供所述本地處理器裝置使用的中斷,及在所述本地處理器裝置在所述本地總線上放置數(shù)據(jù)時在所述第一內(nèi)部總線的至少一條中斷線上產(chǎn)生一個供連接到所述第一外部總線的設(shè)備使用的中斷。
4.權(quán)利要求1定義的集成電路,進(jìn)一步包括
連接到所述本地總線和所述第一內(nèi)部總線、用于在所述第一內(nèi)部總線與所述本地存儲器之間傳輸數(shù)據(jù)塊的第一DMA控制器裝置;
連接到所述本地總線和所述第二內(nèi)部總線、用于在所述第二內(nèi)部總線與所述本地存儲器之間傳輸數(shù)據(jù)塊的第二DMA控制器裝置。
5.權(quán)利要求2定義的集成電路,進(jìn)一步包括
a〕控制對所述第一總線接口與所述第一地址翻譯電路之間的所述第一內(nèi)部總線進(jìn)行訪問的第一總線仲裁裝置;
b〕控制對所述第二總線接口與所述第二地址翻譯電路之間的所述第二內(nèi)部總線進(jìn)行訪問的第二總線仲裁裝置。
6.權(quán)利要求2定義的集成電路,進(jìn)一步包括
控制對所述本地處理器、所述第一地址翻譯電路、所述第二地址翻譯電路之間的所述本地總線進(jìn)行訪問的本地總線仲裁裝置。
7.權(quán)利要求1定義的集成電路,進(jìn)一步包括
控制用所述本地總線上的數(shù)據(jù)和地址向所述外部存儲器寫入數(shù)據(jù)、從所述外部存儲器讀取數(shù)據(jù)的存儲器控制器裝置。
8.權(quán)利要求1定義的集成電路,進(jìn)一步包括
a〕為多個中斷源選擇路由到所述本地處理器裝置的一個單一中斷輸入端的外圍設(shè)備中斷控制器;
b〕定義所述多個中斷源中的哪個中斷源引起所述單一中斷的狀態(tài)寄存器。
9.權(quán)利要求1定義的集成電路,進(jìn)一步包括
a〕連接到適合于管理采用所述集成電路的系統(tǒng)的外部傳感器的I2C總線;
b〕允許所述本地處理器裝置擔(dān)當(dāng)位于所述I2C總線上的主和從設(shè)備的I2C接口裝置。
10.權(quán)利要求1定義的集成電路,進(jìn)一步包括
a〕連接外部處理器的APIC總線;
b〕使所述外部處理器與所述本地處理器之間能夠進(jìn)行通信的APIC接口裝置。
11.一個包括至少一個與一個初級PCI總線相連的主處理器、至少有一個與一個次級PCI總線相連的外圍設(shè)備的系統(tǒng),該系統(tǒng)在一塊單一集成電路上含有
a〕連接到所述初級PCI總線的第一內(nèi)部總線;
b〕連接到所述次級PCI總線的第二內(nèi)部總線;
c〕具有連接到所述第一內(nèi)部總線的第一總線接口和連接到所述第二內(nèi)部總線的第二總線接口的總線橋裝置,所述總線橋用于允許在所述初級PCI總線與所述次級PCI總線之間傳遞事務(wù)處理;
d〕連接到所述總線橋裝置、處理從外部源接收的事務(wù)處理和輸入到所述第一總線接口和所述第二總線接口的事務(wù)處理的本地處理器裝置;
e〕在所述處理器裝置與外部存儲器之間傳遞數(shù)據(jù)的本地總線。
12.權(quán)利要求11定義的系統(tǒng),其中,所述集成電路進(jìn)一步包括
a〕連接到所述本地總線和所述第一內(nèi)部總線的第一地址翻譯電路,該翻譯電路適用于將所述第一內(nèi)部總線上的向內(nèi)事務(wù)處理地址轉(zhuǎn)換成可被所述本地處理器裝置使用的地址,及將所述本地總線上的向外事務(wù)處理地址轉(zhuǎn)換成可被與所述初級PCI總線相連的設(shè)備使用的地址;
b〕連接到所述本地總線和所述第二內(nèi)部總線的第二地址翻譯電路,該翻譯電路適用于將所述第二內(nèi)部總線上的向內(nèi)事務(wù)處理地址轉(zhuǎn)換成可被所述本地處理器裝置使用的地址,及將所述本地總線上的向外事務(wù)處理地址轉(zhuǎn)換成可被與所述次級PCI總線相連的設(shè)備使用的地址。
13.權(quán)利要求12定義的系統(tǒng),其中,所述集成電路進(jìn)一步包括
連接到所述第一地址翻譯電路的報文傳遞電路,該報文傳遞單元適用于在新數(shù)據(jù)被放置到所述第一內(nèi)部總線上時產(chǎn)生一個由所述本地處理器裝置使用的中斷,及在所述本地處理器向所述本地總線上放置數(shù)據(jù)時在所述第一內(nèi)部總線的至少一條中斷線上產(chǎn)生一個由連接到所述初級PCI總線的設(shè)備使用的中斷。
14.權(quán)利要求11定義的系統(tǒng),其中,所述集成電路進(jìn)一步包括
連接所述本地總線和所述第一內(nèi)部總線、用于在所述第一內(nèi)部總線和所述本地存儲器之間傳輸數(shù)據(jù)塊的第一DMA控制器裝置;
連接所述本地總線和所述第二內(nèi)部總線、用于在所述第二內(nèi)部總線和所述本地存儲器之間傳輸數(shù)據(jù)塊的第二DMA控制器裝置。
15.權(quán)利要求12定義的系統(tǒng)電路,其中,所述集成電路進(jìn)一步包括
控制對所述第一總線接口和所述第一地址翻譯電路之間的所述第一內(nèi)部總線訪問的第一總線仲裁裝置;
控制對所述第二總線接口和所述第二地址翻譯電路之間的所述第二內(nèi)部總線訪問的第二總線仲裁裝置;
16.權(quán)利要求12定義的系統(tǒng),其中,所述集成電路進(jìn)一步包括
控制對所述本地處理器、所述第一地址翻譯電路、所述第二地址翻譯電路之間的所述本地總線訪問的本地總線仲裁裝置。
17.權(quán)利要求11定義的系統(tǒng),其中,所述集成電路進(jìn)一步包括存儲器控制器裝置,用于控制用所述本地總線上的數(shù)據(jù)和地址對所述外部存儲器進(jìn)行的讀寫。
18.權(quán)利要求11定義的系統(tǒng),其中,所述集成電路進(jìn)一步包括
a〕外圍設(shè)備中斷控制器裝置,用于為多個中斷源選擇路由到所述本地處理器裝置的單一的中斷輸入端;
b〕定義所述多個中斷源中哪個中斷源引起了所述單一中斷的狀態(tài)寄存器。
19.權(quán)利要求11定義的系統(tǒng),其中,所述集成電路進(jìn)一步包括
a〕用于連接適合于對使用所述集成電路的系統(tǒng)進(jìn)行管理的外部傳感器的I2C總線;
b〕使所述本地處理器裝置能夠擔(dān)當(dāng)位于所述I2C總線上的主和從設(shè)備作用的I2C接口裝置。
20.權(quán)利要求11定義的系統(tǒng),其中,所述集成電路進(jìn)一步包括
a〕連接到外部處理器的APIC總線;
b〕使所述外部處理器與所述本地處理器之間能夠進(jìn)行通信的APIC接口裝置。
21.權(quán)利要求1定義的集成電路,其中,所述總線橋裝置進(jìn)一步包括
a〕連接在所述第一總線接口與所述第二總線接口之間的下游投遞緩沖器;
b〕連接在所述第一總線接口與所述第二總線接口之間的上游投遞緩沖器;
c〕一組與所述第一總線接口連接的配置寄存器。
22.權(quán)利要求1定義的集成電路,其中,所述本地處理器裝置包括一個微處理器。
23.權(quán)利要求11定義的系統(tǒng),其中,所述總線橋裝置進(jìn)一步包括
a〕在所述第一總線接口與所述第二總線接口之間連接的下游投遞緩沖器;
b〕在所述第一總線接口與所述第二總線接口之間連接的上游投遞緩沖器;
c〕一組與所述第一總線接口連接的配置寄存器。
24.權(quán)利要求11定義的系統(tǒng),其中,所述本地處理器裝置包括一個微處理器。
25.權(quán)利要求4定義的集成電路,進(jìn)一步包括
a〕控制所述第一總線接口、所述第一地址翻譯電路、所述第一DMA控制器裝置之間對所述第一內(nèi)部總線訪問的第一總線仲裁裝置;
b〕控制所述第二總線接口、所述第二地址翻譯電路、所述第二DMA控制器裝置之間對所述第二內(nèi)部總線訪問的第二總線仲裁裝置。
26.權(quán)利要求14定義的系統(tǒng),其中,所述集成電路進(jìn)一步包括
a〕控制所述第一總線接口、所述第一地址翻譯電路、所述第一DMA控制器裝置之間訪問所述第一內(nèi)部總線的第一總線仲裁裝置;
b〕控制所述第二總線接口、所述第二地址翻譯電路、所述第二DMA控制器裝置之間訪問所述第二內(nèi)部總線的第二總線仲裁裝置。
全文摘要
一種集成了高性能處理器到PCI至PCI總線橋(32)的多功能設(shè)備(31)。本發(fā)明用高性能處理器、PCI至PCI總線橋(32)、PCI總線—處理器之間的地址翻譯單元(43a、43b)、直接內(nèi)存存取(DMA)控制器(51a、51b)、存儲器控制器(47)、次級PCI總線仲裁單元(53)、互連集成(I2C)電路總線接口單元(61)、高級可編程中斷(APIC)總線接口單元(63)、報文傳遞單元(45)組成一個使用本地存儲器(33)的單一系統(tǒng)。PCI總線是一種符合工業(yè)標(biāo)準(zhǔn)的高性能、低等待系統(tǒng)總線。PCI至PCI總線橋(32)為兩個獨立的32位PCI總線提供連接通路,并使它們具有克服PCI電氣負(fù)載限制的能力。本地處理器(34)的加入,為PCI總線橋(32)增添了智能。
文檔編號G06F13/14GK1193393SQ96196300
公開日1998年9月16日 申請日期1996年6月17日 優(yōu)先權(quán)日1995年6月15日
發(fā)明者E·加爾布斯, P·桑哈高埃特, M·戈爾德施米特, N·伊斯坎德爾埃 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1