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