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

分區(qū)系統(tǒng)的帶有動(dòng)態(tài)配置的外圍元件互聯(lián)槽控制裝置的制作方法

文檔序號(hào):6373914閱讀:245來(lái)源:國(guó)知局
專利名稱:分區(qū)系統(tǒng)的帶有動(dòng)態(tài)配置的外圍元件互聯(lián)槽控制裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及多處理器計(jì)算機(jī)系統(tǒng),更具體地涉及在分區(qū)多處理器系統(tǒng)的處理器中資源分配。更進(jìn)一步,最佳實(shí)施例涉及分區(qū)和分配多處理器計(jì)算機(jī)系統(tǒng)中的各個(gè)PCI槽的系統(tǒng)。
多處理器計(jì)算機(jī)系統(tǒng)在現(xiàn)有技術(shù)中是眾所周知的,并用于通過(guò)允許將處理任務(wù)在幾個(gè)不同系統(tǒng)處理器中分割而提高處理能力。在傳統(tǒng)系統(tǒng)中,每個(gè)處理器能夠訪問(wèn)所有系統(tǒng)資源;即,例如存儲(chǔ)器和I/O設(shè)備的所有系統(tǒng)資源在所有系統(tǒng)處理器中共享。典型的,系統(tǒng)資源的一些部分在處理器中被分區(qū),例如,每個(gè)處理器將可以訪問(wèn)一個(gè)共享存儲(chǔ)器,該存儲(chǔ)器被分割成使每個(gè)處理器有自己的工作區(qū)。
近來(lái),對(duì)稱多處理器(SMP)系統(tǒng)被分區(qū)成象多個(gè)獨(dú)立計(jì)算機(jī)系統(tǒng)一樣工作。例如,一個(gè)有八個(gè)處理器的系統(tǒng)可以配置成將八個(gè)處理器(或一個(gè)或多個(gè)處理器的多個(gè)組)的每一個(gè)看作一個(gè)為了處理目的獨(dú)立的系統(tǒng)。這些“虛擬”系統(tǒng)的每一個(gè)將有自己的操作系統(tǒng)副本,并可以被獨(dú)立分配任務(wù),或作為一個(gè)處理簇一起運(yùn)行,這提供了高速處理和更高的可靠性。典型的,在多處理器系統(tǒng)中,還有一個(gè)“服務(wù)”處理器,它管理整個(gè)系統(tǒng)的啟動(dòng)和運(yùn)行,包括系統(tǒng)配置和在共享總線和設(shè)備上從和向特定處理器路由數(shù)據(jù)。
當(dāng)一個(gè)多處理器系統(tǒng)中多個(gè)虛擬系統(tǒng)被配置成作為一個(gè)簇運(yùn)行時(shí),必須提供軟件支持允許每個(gè)簇節(jié)點(diǎn)與多處理器中的每個(gè)其他節(jié)點(diǎn)通信以進(jìn)行法定人數(shù)談判(quorum negotiation)和確認(rèn),發(fā)送“心跳”(heartbeat),并使用任何簇通信技術(shù)進(jìn)行其他法定人數(shù)功能。當(dāng)它完成時(shí),如果其中一個(gè)處理器失敗,這將使那個(gè)處理器在這個(gè)簇中不可用,則使用標(biāo)準(zhǔn)簇技術(shù)將分配給那個(gè)節(jié)點(diǎn)的工作能夠重分配給剩余的處理器(節(jié)點(diǎn))。
典型的,當(dāng)多處理器系統(tǒng)被分成多個(gè)虛擬系統(tǒng)時(shí),每個(gè)虛擬系統(tǒng)有它自己的操作系統(tǒng)副本,并且每個(gè)虛擬系統(tǒng)使用相同的操作系統(tǒng)。由于每個(gè)處理器運(yùn)行相同的操作系統(tǒng),在處理器中提供資源分配將相對(duì)較容易。
但是,當(dāng)前,市場(chǎng)有這樣的需求,即有在多個(gè)虛擬系統(tǒng)中運(yùn)行多于一個(gè)操作系統(tǒng)的能力。例如,用戶可能希望在一個(gè)分區(qū)中運(yùn)行UNIX型的操作系統(tǒng),而在第二個(gè)分區(qū)中運(yùn)行基于“視窗”的操作系統(tǒng)。這種需求帶來(lái)與資源分配相關(guān)的特定問(wèn)題;而在一個(gè)多處理器系統(tǒng)中在分區(qū)間分割存儲(chǔ)器一般由硬件支持,例如外圍元件互聯(lián)(PCI)槽的其他資源分配由操作系統(tǒng)管理。由于多個(gè)分區(qū)可以每個(gè)運(yùn)行一種不同的操作系統(tǒng),這就需要一種不基于操作系統(tǒng)分配系統(tǒng)資源的方法。具體地,需要一種獨(dú)立于操作系統(tǒng)的方案,它允許例如PCI槽的系統(tǒng)資源在多處理器計(jì)算機(jī)系統(tǒng)中的多個(gè)分區(qū)中分配。
本發(fā)明的一個(gè)目的是提供一種用于操作多處理器計(jì)算機(jī)系統(tǒng)的系統(tǒng)。
本發(fā)明的另一個(gè)目的是提供一種在多處理器計(jì)算機(jī)系統(tǒng)中改進(jìn)的資源分配的系統(tǒng)。
本發(fā)明的另一個(gè)目的是提供一種在多處理器計(jì)算機(jī)系統(tǒng)中分區(qū)和分配各個(gè)PCI槽的系統(tǒng)。
現(xiàn)在說(shuō)明上述目的的實(shí)現(xiàn)。提供了一種在分區(qū)計(jì)算機(jī)系統(tǒng)中在基本主機(jī)橋(PHB)內(nèi)分區(qū)和分配各個(gè)PCI槽的系統(tǒng)。包含了一個(gè)革新的PHB系統(tǒng),它允許一個(gè)PCI槽在給定時(shí)間被動(dòng)態(tài)地分配給一個(gè)或多個(gè)分區(qū),使得更高效地進(jìn)行系統(tǒng)資源分配。
以下的詳細(xì)描述使本發(fā)明的上述目的和其他目的、特征和優(yōu)點(diǎn)更清楚。
在權(quán)利要求書中限定了本發(fā)明的新穎性特征。但是,參考以下對(duì)示意性實(shí)施例的詳細(xì)描述并結(jié)合附圖可以更好的理解本發(fā)明本身,最佳使用方式,進(jìn)一步的目的和它的優(yōu)點(diǎn),其中

圖1是根據(jù)本發(fā)明的最佳實(shí)施例的示意性計(jì)算機(jī)系統(tǒng)的方框圖;圖2描述根據(jù)本發(fā)明的最佳實(shí)施例的分區(qū)計(jì)算機(jī)系統(tǒng)的高層的方框圖;圖3是根據(jù)本發(fā)明的最佳實(shí)施例的八個(gè)處理器計(jì)算機(jī)系統(tǒng)的更詳細(xì)的方框圖;圖4描述根據(jù)本發(fā)明的最佳實(shí)施例的改進(jìn)的PCI主機(jī)橋;圖5是根據(jù)本發(fā)明的最佳實(shí)施例的分區(qū)描述符表;
圖6是根據(jù)本發(fā)明的最佳實(shí)施例的系統(tǒng)配置過(guò)程的流程圖;圖7A示出根據(jù)本發(fā)明的最佳實(shí)施例的處理器發(fā)起的PCI寫入;圖7B示出根據(jù)本發(fā)明的最佳實(shí)施例的PCI設(shè)備發(fā)起的存儲(chǔ)器寫入;圖8A示出根據(jù)本發(fā)明的最佳實(shí)施例的獨(dú)占所有槽移去操作;圖8B示出根據(jù)本發(fā)明的最佳實(shí)施例的獨(dú)占所有槽添加操作;圖9示出根據(jù)本發(fā)明最佳實(shí)施例的多所有槽移去操作;圖10A和10B示出根據(jù)本發(fā)明最佳實(shí)施例的多所有槽添加操作;以下參考附圖,特別是參考圖1,描述根據(jù)本發(fā)明最佳實(shí)施例的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)100可以是,例如,一個(gè)臺(tái)式個(gè)人計(jì)算機(jī),它可以由紐約州Armonk的國(guó)際商業(yè)機(jī)器公司提供。數(shù)據(jù)處理系統(tǒng)100包括處理器101和102,在這個(gè)示意性實(shí)施例中,每個(gè)處理器分別連接至第二級(jí)(L2)高速緩存103和104,它們依次連接至系統(tǒng)總線106。
連接至系統(tǒng)總線106的還有系統(tǒng)存儲(chǔ)器108和基本主機(jī)橋(PHB)122。PHB122將I/0總線連接至系統(tǒng)總線106,從一個(gè)總線向另一個(gè)轉(zhuǎn)發(fā)和/或發(fā)送數(shù)據(jù)交易。在一個(gè)示意性實(shí)施例中,數(shù)據(jù)處理系統(tǒng)100包括圖形適配器118,連接至I/O總線112,從顯示器120接收用戶接口信息。外圍設(shè)備,如可以是硬盤驅(qū)動(dòng)器的非易失型存儲(chǔ)器114,和可以是傳統(tǒng)鼠標(biāo),跟蹤球,或其他的鍵盤/指示設(shè)備116,通過(guò)一個(gè)工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)橋連接至I/O總線112。PHB122還通過(guò)I/O總線112連接至PCI槽124。
圖1示出的示意性實(shí)施例只是用于說(shuō)明目的,本領(lǐng)域的技術(shù)人員可以理解在形式和功能上都可以有多種變化。例如,數(shù)據(jù)處理系統(tǒng)100可以還包括一個(gè)光盤只讀存儲(chǔ)器(CD-ROM)或數(shù)字視頻盤(DVD)驅(qū)動(dòng)器,聲卡和音頻揚(yáng)聲器,和多個(gè)其他可選部件。所有這些變化都被認(rèn)為是在本發(fā)明的實(shí)質(zhì)和范圍內(nèi)。以下的數(shù)據(jù)處理系統(tǒng)100和示意性分區(qū)計(jì)算機(jī)系統(tǒng)只是用于說(shuō)明目的,并不用于限制本發(fā)明。
參考圖2,示出了根據(jù)本發(fā)明最佳實(shí)施例的分區(qū)計(jì)算機(jī)系統(tǒng)的高層方框圖。在該圖中,示出了一個(gè)有三個(gè)微處理器(uP)204-206和五個(gè)PCI槽208-212的計(jì)算機(jī)系統(tǒng)200。PCI子系統(tǒng)207由五個(gè)PCI槽和PCI主機(jī)橋(PHB)201組成。在該圖中,系統(tǒng)被分為兩個(gè)分區(qū);分區(qū)207包括微處理器204和205,PCI槽208和209,和PHB201。分區(qū)203包括微處理器206,PCI槽210-212,和PHB201。請(qǐng)注意,這兩個(gè)分區(qū)共享相同的PHB,它控制PCI槽的分區(qū)。
現(xiàn)參考圖3,描述根據(jù)本發(fā)明最佳實(shí)施例的八個(gè)處理器可分區(qū)計(jì)算機(jī)系統(tǒng)的更詳細(xì)的方框圖。在該方框圖中,示出了八個(gè)處理器301-308,它們使用內(nèi)核芯片集320以對(duì)稱多處理器方式連接,內(nèi)核芯片集320包括一個(gè)地址控制器321和數(shù)據(jù)控制器322,數(shù)據(jù)控制器322通過(guò)地址總線323,325和數(shù)據(jù)總線324,326的一個(gè)交叉(crossbar)連接至處理器301-308。在最佳實(shí)施例中,這些處理器是英特爾PentiumII類的處理器。
內(nèi)核邏輯320為每個(gè)處理器的前端總線至存儲(chǔ)器子系統(tǒng)330,331和至包括地址總線327和數(shù)據(jù)總線328的I/O總線350提供接口。內(nèi)核邏輯還包括一個(gè)監(jiān)聽(snoop)濾波器329,它用于限制任何兩個(gè)處理器總線間的監(jiān)聽交易的數(shù)量。示出的中央存儲(chǔ)器子系統(tǒng)330,331有分開的兩個(gè)部分,它們可以獨(dú)立地且同時(shí)地被訪問(wèn)。
I/O總線350提供附加很多數(shù)量的PCI槽314-317的能力,以支持可升級(jí)高性能系統(tǒng)??芍С肿疃?個(gè)PCI主機(jī)橋310-313,都連接至對(duì)等總線段。
在最佳實(shí)施例中,所有PCI槽有熱插拔能力。通過(guò)在PHS310-313中集成PCI熱插拔控制邏輯和分區(qū)控制邏輯,在最佳實(shí)施例中是FET的外部隔離電路可以用于在逐交易的基礎(chǔ)上隔離PCI槽,以實(shí)現(xiàn)精細(xì)顆粒(fine-grained)I/O分區(qū)。每個(gè)分區(qū)可以擁有一個(gè)至所有系統(tǒng)處理器,和零至所有PCI槽。
在圖中還示出通過(guò)PHB310連接的不同的I/O設(shè)備。它們包括SCSI控制器340,LAN連接器341,和圖形適配器342。一個(gè)ISA橋343被用于連接任何傳統(tǒng)I/O設(shè)備344,可以包括鍵盤,鼠標(biāo),串口,并口,音頻設(shè)備,軟驅(qū),CDROM,和實(shí)時(shí)時(shí)鐘,還有其他設(shè)備。
參考圖4-6,示出了一種改進(jìn)的PCI主機(jī)橋,它提供根據(jù)本發(fā)明最佳實(shí)施例的逐槽PCI分區(qū)的能力。
PHB400提供分開的請(qǐng)求隊(duì)列以輸出和輸入在任意方向上同時(shí)發(fā)生的交易。輸出交易是在I/O總線410上由一個(gè)代理發(fā)出的,也就是從內(nèi)核邏輯(代表八個(gè)處理器之一)或者從另一個(gè)在一個(gè)對(duì)等應(yīng)用程序中轉(zhuǎn)發(fā)一個(gè)PCI存儲(chǔ)器交易。輸入交易在PCI總線403上由一個(gè)代理發(fā)出,并指向系統(tǒng)存儲(chǔ)器或指向位于另一個(gè)PHB后的對(duì)等PCI總線段上的PCI存儲(chǔ)器。在其他主要功能中,PHB還提供它的總線段上所有起始器代理的PCI仲裁,熱插拔PCI插入/取出支持,和PCI槽分區(qū)。
PHB在從I/O總線發(fā)起的輸出交易上被實(shí)現(xiàn)發(fā)送(posted)寫入和延遲響應(yīng)和在從PCI總線發(fā)出的輸入交易上實(shí)現(xiàn)被發(fā)送寫入和延遲交易。輸出存儲(chǔ)器寫入總是被發(fā)送,I/O寫入可有選擇地發(fā)送或延遲,I/O和存儲(chǔ)器讀取兩者都引起一個(gè)延遲響應(yīng)。延遲響應(yīng)是指交易從處理器按順序隊(duì)列移出并置于延遲交易隊(duì)列,通知處理器該交易將在以后完成。PHB400將放置延遲交易至它的輸出請(qǐng)求隊(duì)列426,并當(dāng)讀或?qū)懡灰自赑CI總線上完成時(shí),PHB將向發(fā)起交易的處理器發(fā)送一個(gè)交易已完成的延遲響應(yīng)。輸入存儲(chǔ)器寫入總是被發(fā)送,和存儲(chǔ)器讀取被延遲。輸入讀取上的延遲交易是指PHB將放置交易至它的PCI輸入緩沖區(qū)429并終止PCI發(fā)出的帶重試的交易。交易被轉(zhuǎn)發(fā)至I/O總線401以讀取數(shù)據(jù)并被置于輸入請(qǐng)求隊(duì)列428直至PCI交易被重試。一旦交易被重試,PHB完成帶有數(shù)據(jù)的交易。
I/O總線交易從八個(gè)處理器之一發(fā)起的I/O總線交易將包括資源地址(I/O或存儲(chǔ)器),總線交易類型信息,和邊帶信號(hào)450,稱為起始器分區(qū)ID。這些邊帶信號(hào)是在內(nèi)核邏輯中基于前端總線上的哪個(gè)處理器發(fā)起指向該P(yáng)CI的交易而生成的,并為PHB400標(biāo)識(shí)起始器所屬的分區(qū)。請(qǐng)求代理的前端總線(FSB)使用一個(gè)分布式轉(zhuǎn)動(dòng)優(yōu)先總線仲裁方式,內(nèi)核邏輯跟蹤以識(shí)別每個(gè)前端總線交易的起始器。每個(gè)處理器被分配至一個(gè)由它的分區(qū)ID定義的分區(qū)。分區(qū)ID是一個(gè)內(nèi)核邏輯內(nèi)新的可編程寄存器文件,以支持邊帶信號(hào)的生成,以實(shí)現(xiàn)本發(fā)明的分區(qū)技術(shù)。
分區(qū)ID寄存器文件在系統(tǒng)初始化時(shí)或之前進(jìn)行配置,并且在運(yùn)行期間可以被改變。內(nèi)核邏輯將連接生成的起始器分區(qū)ID邊帶信號(hào)和I/O總線上的正常的交易。
PHB400接收有I/O總線交易的起始器分區(qū)ID邊帶信號(hào),以確定在其對(duì)等的PCI總線段上哪個(gè)PCI槽資源應(yīng)當(dāng)開啟作為目標(biāo)分區(qū)中的一個(gè)成員。PHB包括一個(gè)PCI槽分區(qū)描述符,作為它的PCI配置空間的一部分,該P(yáng)CI槽分區(qū)描述符包括以下可編程信息,并在系統(tǒng)初始化時(shí)或之前進(jìn)行配置。
PCI槽的目標(biāo)分區(qū)ID目標(biāo)分區(qū)ID支持零至“n”個(gè)分區(qū),“n”是系統(tǒng)支持的處理器的個(gè)數(shù)。每個(gè)分區(qū)可以被分配少到?jīng)]有PCI槽或多到所有PCI槽。一個(gè)PCI槽和它的所有目標(biāo)資源可以在任何給定時(shí)間被動(dòng)態(tài)分配到一個(gè)或多個(gè)分區(qū)。
PCI槽的I/O和存儲(chǔ)器地址資源解碼范圍寄存器PHB使用這些范圍寄存器以正解碼由PCI槽聲明為一個(gè)交易目標(biāo)的地址資源。每組范圍寄存器將包括一個(gè)起始(基本)地址和一個(gè)終止地址。I/O寄存器將支持系統(tǒng)地址映射中256-字節(jié)可分配范圍的最小間隔,而存儲(chǔ)器寄存器將支持系統(tǒng)地址映射中1MB可分配范圍的最小間隔。非連續(xù)地址資源支持的美國(guó)PCI槽的個(gè)數(shù)要求最小兩個(gè)I/O和兩個(gè)存儲(chǔ)器范圍寄存器對(duì)。這些寄存器被用于正解碼目的以使PHB接受在I/O總線上發(fā)起并指向特定I/O分區(qū)的交易。
以下條件必須在PHB正確接收和作為目標(biāo)響應(yīng)I/O總線發(fā)出的輸出交易以前發(fā)生。以下是輸出交易的正分區(qū)響應(yīng)(PPR)的參考。
1.當(dāng)前交易的I/O總線起始器分區(qū)ID邊帶必須與PHB支持的目標(biāo)分區(qū)ID之一相匹配;和2.I/O總線交易資源地址(I/O或存儲(chǔ)器)必須位于與匹配目標(biāo)分區(qū)相關(guān)的正解碼資源目標(biāo)的地址范圍內(nèi)。
如果正分區(qū)響應(yīng)未滿足以上條件之一,PHB將忽略給I/O總線交易,并假設(shè)I/O總線上的另一個(gè)PHB是預(yù)期的目標(biāo)。內(nèi)核邏輯在軟件和硬件失敗而接收不到響應(yīng)的情況下有實(shí)現(xiàn)總線交易看門狗定時(shí)器的要求。在總線交易超時(shí)的情況下,內(nèi)核邏輯將轉(zhuǎn)發(fā)目標(biāo)終止硬失敗(hard fail)響應(yīng)返回前端總線上的初始處理器。
以下參考圖4總結(jié)由PHB發(fā)出的輸出I/O總線發(fā)起的帶有正分區(qū)響應(yīng)的交易的不同響應(yīng)。
輸出存儲(chǔ)器寫入存儲(chǔ)器寫入被發(fā)出在輸出請(qǐng)求隊(duì)列426中,之后,一旦有入口可用就被移入PCI輸出緩沖區(qū)427。交易在此時(shí)從輸出請(qǐng)求隊(duì)列426移出。當(dāng)交易通過(guò)PCI仲裁器421被置于PCI輸出緩沖區(qū)427時(shí)PCI起始器/目標(biāo)控制邏輯425請(qǐng)求PCI的所有權(quán),并且它還轉(zhuǎn)發(fā)PCI輸出起始器分區(qū)ID至分區(qū)控制邏輯423以確定哪個(gè)PCI槽資源是該分區(qū)的成員并使它們相應(yīng)的PCI槽啟動(dòng)。分區(qū)內(nèi)在相同PCI總線上的所有槽都被啟動(dòng),因?yàn)橐恍┰O(shè)備可能不是所希望的目標(biāo),但可能要求探聽按次序的一個(gè)特定設(shè)備的交易以遮蔽(shadow)它的環(huán)境。PCI分區(qū)控制邏輯423將PCI輸出起始器分區(qū)ID與附加到PHB的PCI對(duì)等總線段上的每個(gè)PCI槽的目標(biāo)分區(qū)ID進(jìn)行比較。由于PCI仲裁沒(méi)有周期被浪費(fèi);仲裁器在當(dāng)前交易期間將總線授權(quán)給下一個(gè)所有者,但它不取走所有權(quán)直至它檢測(cè)到PCI總線是空閑的。
應(yīng)注意,在本發(fā)明最佳實(shí)施例中,PCI總線需要在交易之間最少一個(gè)空閑總線狀態(tài),如果它能夠保證沒(méi)有爭(zhēng)用發(fā)生,從而進(jìn)行快速背對(duì)背(back-to-back)交易。PCI標(biāo)準(zhǔn)定義了兩種類型的背對(duì)背交易;第一種是當(dāng)當(dāng)前交易的主控機(jī)目標(biāo)與前一個(gè)寫入交易的目標(biāo)相同時(shí)而實(shí)現(xiàn),第二種要求快速背對(duì)背目標(biāo)保證在目標(biāo)響應(yīng)信號(hào)上沒(méi)有沖突。PCI標(biāo)準(zhǔn)要求第二種機(jī)制只能通過(guò)PCI命令寄存器中的配置位而被支持。本發(fā)明最佳實(shí)施例要求第二種機(jī)制始終不被啟動(dòng),但可以支持相同設(shè)備的第一種機(jī)制,快速背對(duì)背交易。
要求PCI空閑時(shí)鐘作為一個(gè)轉(zhuǎn)向周期以在一個(gè)PCI代理停止驅(qū)動(dòng)信號(hào)而另一個(gè)代理開始驅(qū)動(dòng)信號(hào)時(shí)避免爭(zhēng)用。最佳實(shí)施例要求在每個(gè)總線交易之間有一個(gè)空閑總線時(shí)鐘,因?yàn)镕ET隔離開關(guān)410-414在這個(gè)轉(zhuǎn)向周期期間被啟動(dòng)/關(guān)閉,以實(shí)現(xiàn)相同對(duì)等PCI總線段上的槽的精細(xì)(fine grained)PCI分區(qū)。分區(qū)控制邏輯423在逐個(gè)交易的基礎(chǔ)上為PCI熱插拔控制邏輯指示哪個(gè)PCI槽被啟動(dòng)。FET開關(guān)在空閑轉(zhuǎn)向時(shí)鐘周期在PHB取得PCI總線的所有權(quán)之前被啟動(dòng)。PHB發(fā)起一個(gè)存儲(chǔ)器寫入交易并且被在啟動(dòng)的PCI槽上的目標(biāo)設(shè)備接收數(shù)據(jù)。如果數(shù)據(jù)由于PCI目標(biāo)終止或奇偶錯(cuò)誤沒(méi)有被成功地傳送至PCI目標(biāo),則生成一個(gè)機(jī)器檢查終止(MCA)。
被可選發(fā)送的輸出I/O寫入有與輸出存儲(chǔ)器寫入相同的PHB響應(yīng)。
輸出I/O寫入被可選地延遲
I/O寫入在輸出請(qǐng)求隊(duì)列426中被可選地延遲,之后,一旦有入口可用被移入PCI輸出緩沖區(qū)427。在此時(shí)交易未從輸出請(qǐng)求隊(duì)列426移出,但保留在隊(duì)列直至寫入在PCI總線403上完成并且PHB400已發(fā)出一個(gè)延遲響應(yīng)交易至I/O總線401。PCI起始器/目標(biāo)控制邏輯425在交易通過(guò)PCI仲裁器421被置于PCI輸出緩沖區(qū)427時(shí)請(qǐng)求PCI總線403的所有權(quán),并且它還轉(zhuǎn)發(fā)PCI輸出起始器分區(qū)ID至發(fā)起控制邏輯423以確定哪個(gè)PCI槽資源是該分區(qū)的成員并使它們相應(yīng)的PCI槽440-444啟動(dòng)。PCI分區(qū)控制邏輯423將PCI輸出起始器分區(qū)ID與附加至PHB的PCI對(duì)等總線段的每個(gè)PCI槽的目標(biāo)分區(qū)ID進(jìn)行比較。PCI仲裁器421將總線授權(quán)給PHB并在它檢測(cè)到PCI總線是空閑的時(shí)候取得所有權(quán)。FET開關(guān)410-414在空閑轉(zhuǎn)向時(shí)鐘循環(huán)在PHB400取得PCI總線403的所有權(quán)以前被啟動(dòng)。PHB發(fā)起I/O寫入交易而啟動(dòng)的PCI槽上的目標(biāo)設(shè)備接收該數(shù)據(jù)。如果數(shù)據(jù)成功發(fā)送至PCI目標(biāo),則返回延遲響應(yīng)交易的正常完成。如果數(shù)據(jù)由于PCI目標(biāo)終止或奇偶錯(cuò)誤而未被成功傳送至PCI目標(biāo),則延遲響應(yīng)交易的響應(yīng)段將指示一個(gè)硬失敗響應(yīng)并生成機(jī)器檢測(cè)終止(MCA)。
輸出存儲(chǔ)器或I/O讀取被延遲所有讀交易在輸出請(qǐng)求隊(duì)列426中被延遲,并且,一旦有入口可用即被移入PCI輸出緩沖區(qū)427。在此時(shí)交易未從輸出請(qǐng)求隊(duì)列426移出,但保留在隊(duì)列直至寫入在PCI總線403上完成并且PHB400已發(fā)出一個(gè)帶有數(shù)據(jù)的延遲響應(yīng)交易至I/O總線401。PCI起始器/目標(biāo)控制425邏輯在交易通過(guò)PCI仲裁器421被置于PCI輸出緩沖區(qū)427時(shí)請(qǐng)求PCI總線403的所有權(quán),并且它還轉(zhuǎn)發(fā)PCI輸出起始器分區(qū)ID至發(fā)起控制邏輯423以確定哪個(gè)PCI槽資源是該分區(qū)的成員并使它們相應(yīng)的PCI槽440-444啟動(dòng)。PCI分區(qū)控制邏輯423將PCI輸出起始器分區(qū)ID與附加至PHB的PCI對(duì)等總線段的每個(gè)PCI槽440-444的目標(biāo)分區(qū)ID進(jìn)行比較。PCI仲裁器421將總線授權(quán)給PHB并在它檢測(cè)到PCI總線是空閑的時(shí)候取得所有權(quán)。FET開關(guān)410-414在空閑轉(zhuǎn)向時(shí)鐘循環(huán)在PHB400取得PCI總線403的所有權(quán)以前被啟動(dòng)。PHB發(fā)起讀取交易而啟動(dòng)的PCI槽上的目標(biāo)設(shè)備提供數(shù)據(jù)。如果成功地從PCI目標(biāo)讀取數(shù)據(jù),在數(shù)據(jù)段內(nèi)提供延遲響應(yīng)交易的正常完成和被讀取的數(shù)據(jù)。如果數(shù)據(jù)由于PCI目標(biāo)終止或奇偶錯(cuò)誤而未成功讀取,則延遲響應(yīng)交易的響應(yīng)段將指示一個(gè)硬失敗響應(yīng)并生成機(jī)器檢測(cè)終止(MCA)。
正分區(qū)響應(yīng)(PPR)作為PCI總線發(fā)起的輸入交易的目標(biāo)比作為輸出交易的目標(biāo)要簡(jiǎn)單的多。PCI總線起始器分區(qū)ID在PHB的PCI仲裁器421內(nèi)部生成。PCI仲裁器421有信號(hào)REQ04和GNTO4,分別點(diǎn)對(duì)點(diǎn)連接,即,沒(méi)有中間邏輯或隔離FET410-414,至PCI槽440-444。REQ04分別是槽440-444的PCI總線請(qǐng)求線,而GNT04是這些槽的PCI總線授權(quán)信號(hào)。這些信號(hào)必須沒(méi)有被轉(zhuǎn)移或隔離,因?yàn)橹俨闷鞅仨毤词乖诮o定槽被關(guān)閉或與PHB隔離時(shí)也能夠接收請(qǐng)求,授權(quán)所有權(quán),和進(jìn)行對(duì)每個(gè)槽的其它檢測(cè)。仲裁器在當(dāng)前交易期間將總線授權(quán)給下一個(gè)所有者,但它不取走所有權(quán)直至它檢測(cè)到PCI總線是空閑的。PCI總線起始器分區(qū)ID簡(jiǎn)單的基于哪個(gè)PCI槽440-444被授權(quán)獲得總線所有權(quán)和基于PCI槽分區(qū)描述符它是哪個(gè)I/O分區(qū)的成員而生成。分區(qū)控制邏輯423接收PCI總線起始器分區(qū)ID并將其與PHB支持的所有目標(biāo)分區(qū)ID比較。一個(gè)分區(qū)內(nèi)相同PCI總線上的所有槽都被啟動(dòng),以支持點(diǎn)對(duì)點(diǎn)交易通信。分區(qū)控制邏輯423為PCI熱插拔控制邏輯指示哪個(gè)PCI槽被啟動(dòng)。FET開關(guān)410-414在空閑時(shí)鐘周期在PCI總線起始器取得PCI總線的所有權(quán)以前被啟動(dòng)。
輸入存儲(chǔ)器寫入被發(fā)送存儲(chǔ)器寫入在PCI輸入緩沖區(qū)429中發(fā)出,一旦有入口可用就移入輸入請(qǐng)求隊(duì)列428中。交易在此時(shí)從PCI輸入緩沖區(qū)429中移去。I/O總線或起始器/目標(biāo)控制424邏輯在交易被置于輸入請(qǐng)求隊(duì)列428時(shí)請(qǐng)求I/O總線的所有權(quán)。PHB在I/O總線上起動(dòng)存儲(chǔ)器讀取交易,一旦總線所有權(quán)被授權(quán),指向目標(biāo)系統(tǒng)存儲(chǔ)器或另一個(gè)PHB上的PCI存儲(chǔ)器。
輸入存儲(chǔ)器讀取被延遲在本實(shí)施例中,存儲(chǔ)器讀取由延遲交易機(jī)制支持,該機(jī)制是由PCI2.1標(biāo)準(zhǔn)定義,從PCI SIG,2575 NE Kathryn St #17 Hillsboro,OR 97124可以得到PCI 2.1標(biāo)準(zhǔn),這里用于參考。PHB將閂鎖所有PCI總線交易信息并將輸入存儲(chǔ)器讀取置于它的PCI輸入緩沖區(qū)429并終止帶有重試的PCI交易。該交易一旦有入口可用就被移入輸入請(qǐng)求隊(duì)列428,并且該P(yáng)CI交易在此時(shí)從PCI輸入緩沖區(qū)429中移去。I/O總線起始器/目標(biāo)控制邏輯424在交易被置于輸入請(qǐng)求隊(duì)列428時(shí)請(qǐng)求I/O總線401的所有權(quán)。一旦PHB被授權(quán)總線的所有權(quán),它在I/O總線上發(fā)起一個(gè)指向系統(tǒng)存儲(chǔ)器或PCI存儲(chǔ)器的存儲(chǔ)器讀取交易。當(dāng)讀數(shù)據(jù)被返回時(shí),PHB將在輸入請(qǐng)求隊(duì)列428中維護(hù)該數(shù)據(jù)的連貫性。當(dāng)PCI總線代理再次試圖讀取相同存儲(chǔ)器位置作為延遲交易時(shí),PHB將該數(shù)據(jù)移入PCI輸入緩沖區(qū)429以響應(yīng)該數(shù)據(jù),并在PCI總線上完成延遲交易。
系統(tǒng)初始化和配置初始化和配置本分區(qū)計(jì)算機(jī)系統(tǒng)的最佳方法是為系統(tǒng)服務(wù)處理器建立初始分區(qū)。分區(qū)描述符在基本系統(tǒng)配置期間被初始編程。在這個(gè)最佳方法中,如圖6所示,在開機(jī)復(fù)位或硬引導(dǎo)以后(步驟610),服務(wù)處理器開始系統(tǒng)初始化而其它處理器還保持復(fù)位(步驟620)。服務(wù)處理器進(jìn)行的任務(wù)之一是建立系統(tǒng)的分區(qū)。根據(jù)它是否被配置成使用缺省分區(qū)配置(步驟630),服務(wù)處理器或者使用存儲(chǔ)的信息(步驟640)或者與操作員交互中獲得分區(qū)信息(步驟650)。服務(wù)處理器建立系統(tǒng)基本存儲(chǔ)器映象(步驟660),它包括PHB的位置并將分區(qū)信息編入分區(qū)描述符寄存器(步驟670)。之后,系統(tǒng)處理器被啟動(dòng)(步驟680),其后,每個(gè)處理器在分配給它的分區(qū)中運(yùn)行(步驟690),使用分配給它的PCI槽。
分區(qū)描述符如圖5所示,分區(qū)描述符包括分區(qū)成員信息。在這個(gè)表中,每個(gè)槽入口含有多個(gè)一位標(biāo)志以標(biāo)識(shí)該槽所屬的分區(qū)。每個(gè)槽,在此示為0N,有一個(gè)入口,系統(tǒng)中的每一個(gè)分區(qū)有一個(gè)一位標(biāo)志;因?yàn)榉謪^(qū)的個(gè)數(shù)不是固定的但可以在系統(tǒng)引導(dǎo)時(shí)被設(shè)定,所以該表的大小是動(dòng)態(tài)分配的。對(duì)于每個(gè)槽入口,相應(yīng)于每個(gè)分區(qū)的一位包含“0”,表示該槽當(dāng)前不是該分區(qū)的成員,或“1”,表示該槽當(dāng)前是該分區(qū)的成員。
現(xiàn)參考圖7A和7B,示出了根據(jù)本發(fā)明最佳實(shí)施例的PHB過(guò)程的一個(gè)例子的簡(jiǎn)化流程圖(更詳細(xì)的過(guò)程在以下進(jìn)行描述)。圖7A示出一個(gè)處理器發(fā)起的PCI寫入。在處理器發(fā)起該寫入后(步驟700),PHB接收寫入請(qǐng)求(步驟705)和發(fā)起處理器的分區(qū)標(biāo)識(shí)符(步驟710)。之后,PHB將該分區(qū)描述符與它的每一個(gè)槽的分區(qū)描述符進(jìn)行比較(步驟715)。PHB接通(啟動(dòng))其分區(qū)描述符表示它屬于該與發(fā)起處理器相同分區(qū)的每個(gè)PCI槽(步驟720)并關(guān)閉不屬于該分區(qū)的每個(gè)PCI槽(步驟725)。在本發(fā)明的最佳實(shí)施例中,這是通過(guò)使用圖4中的FET而完成的。最后,寫入請(qǐng)求被傳遞至目標(biāo)PCI設(shè)備(步驟730)。
圖7B示出由PCI設(shè)備發(fā)起的存儲(chǔ)器寫入。在該圖中,在PCI設(shè)備發(fā)起寫入后(步驟750),PHB接收該請(qǐng)求(步驟755)并且讀取該P(yáng)CI槽的分區(qū)描述符(步驟760)以確定它屬于哪個(gè)分區(qū)。在它完成后,PHB開啟所有屬于該分區(qū)的PCI槽(步驟765)并關(guān)閉不屬于該分區(qū)的所有槽(步驟770)。最后,寫入請(qǐng)求由PHB傳遞至I/O總線(步驟775)。
動(dòng)態(tài)槽分配PCI槽還可以被動(dòng)態(tài)分配,并且可以有多個(gè)所有者。以下描述使在獨(dú)占槽所有權(quán)和多個(gè)所有權(quán)兩種情況下的動(dòng)態(tài)分配和從一個(gè)分區(qū)移去槽的過(guò)程具體化。獨(dú)占所有權(quán)是當(dāng)一個(gè)槽在一個(gè)時(shí)間由一個(gè)或只有一個(gè)分區(qū)所有但該槽在運(yùn)行時(shí)間可被動(dòng)態(tài)地移到另一個(gè)分區(qū)的情況。多個(gè)所有權(quán)是一個(gè)槽在一個(gè)時(shí)間由多于一個(gè)分區(qū)所有并且該槽可以在運(yùn)行時(shí)間被分配或不被分配分區(qū)所有權(quán)的情況。
移去-獨(dú)占所有權(quán)現(xiàn)參考圖8A,當(dāng)一個(gè)分區(qū)決定不再需要一個(gè)特定的槽的所有權(quán)時(shí)(步驟800),操作系統(tǒng)選擇該槽以從分區(qū)中移去(步驟805)。之后,操作系統(tǒng)起始一個(gè)熱插拔事件,它發(fā)出I/O總線上變化開始的信號(hào)(步驟810)。之后,操作系統(tǒng)停頓從分區(qū)所有權(quán)被移去的槽中的設(shè)備(步驟815)。這個(gè)步驟包括完成所有掛起工作和防止從該設(shè)備發(fā)生任何新的工作。一旦這個(gè)槽中的設(shè)備完成所有掛起活動(dòng),如果沒(méi)有任何其它設(shè)備需要該設(shè)備驅(qū)動(dòng)程序,則操作系統(tǒng)可以選擇卸載相應(yīng)的設(shè)備驅(qū)動(dòng)程序。之后,操作系統(tǒng)通過(guò)PCI配置寄存器停止該槽中的設(shè)備(步驟820)。在本文中,PCI停止是指對(duì)PCI命令寄存器位進(jìn)行編程以防止該設(shè)備參與總線的活動(dòng)。停止設(shè)備是保證設(shè)備在槽將來(lái)被再次激活的情況下是不活動(dòng)的。最后,操作系統(tǒng)對(duì)相應(yīng)的槽分區(qū)描述符進(jìn)行編程以移去該槽的分區(qū)的所有權(quán)(步驟825)。這樣完成了移去操作(步驟830)。
雖然該過(guò)程依照由操作系統(tǒng)進(jìn)行的動(dòng)作來(lái)描述的,這些功能可以由所述分區(qū)內(nèi)的任何其它軟件進(jìn)行。這可以包括能夠進(jìn)行該操作并影響該設(shè)備的軟件。
添加-獨(dú)占所有權(quán)現(xiàn)參考圖8B,示出添加一個(gè)獨(dú)占所有的槽至一個(gè)分區(qū)的過(guò)程。當(dāng)分區(qū)請(qǐng)求一個(gè)槽時(shí)(步驟835),一個(gè)槽被選擇以包含至該分區(qū)中(步驟840)。操作系統(tǒng)檢查以確定該槽當(dāng)前是否被擁有或該槽未被擁有(步驟845)。這個(gè)檢測(cè)是通過(guò)讀取目標(biāo)槽的槽描述符來(lái)進(jìn)行的。如果槽被擁有,則該槽不可用于包含至該分區(qū)并指示一個(gè)錯(cuò)誤發(fā)生,如“錯(cuò)誤-槽不可用”(步驟850)。如果槽當(dāng)前未被擁有(可用),則操作系統(tǒng)可選擇地在槽上進(jìn)行硬復(fù)位(步驟855)。進(jìn)行硬復(fù)位是操作系統(tǒng)作出的策略性選擇以保證槽中的設(shè)備被復(fù)位和不活動(dòng)。之后,操作系統(tǒng)對(duì)相應(yīng)的槽分區(qū)描述符進(jìn)行編程以將該槽包含至該分區(qū)(步驟860)。一旦該槽包含至分區(qū)內(nèi),該槽中的設(shè)備對(duì)操作系統(tǒng)是可見的。
之后,操作系統(tǒng)發(fā)起一個(gè)熱插拔事件,它發(fā)出I/O總線變化開始的信號(hào)(步驟865)。操作系統(tǒng)(特別是操作系統(tǒng)中PCI總線驅(qū)動(dòng)程序)配置該適配器(設(shè)備)和潛在的總線(步驟870)。在本文中,配置過(guò)程包括分配非沖突(唯一)資源(例如存儲(chǔ)器空間)至該設(shè)備。配置總線是指總線驅(qū)動(dòng)程序檢查整個(gè)總線以確定配置參數(shù)并且可能重分配其它設(shè)備的資源以容納新設(shè)備的添加。
現(xiàn)在該設(shè)備被配置并在線,操作系統(tǒng)調(diào)入相應(yīng)的設(shè)備驅(qū)動(dòng)程序或通知一個(gè)已調(diào)入的驅(qū)動(dòng)程序該設(shè)備已被添加并是可用的(步驟875)。這就完成了添加操作(步驟880)。
移去-多個(gè)所有者現(xiàn)參考圖9,當(dāng)一個(gè)分區(qū)確定它不再需要一個(gè)特定的槽的所有權(quán)時(shí)(步驟900),它指示從槽從分區(qū)中移去(步驟905)。操作系統(tǒng)發(fā)起一個(gè)熱插拔事件,它發(fā)出I/O總線上變化開始的信號(hào)(步驟910)。之后,操作系統(tǒng)停頓從分區(qū)所有權(quán)被移去的槽中的設(shè)備(步驟915)。這個(gè)步驟包括完成所有掛起工作和防止從該設(shè)備發(fā)生任何新的工作。
一旦這個(gè)槽中的設(shè)備完成所有掛起活動(dòng),如果沒(méi)有任何其它設(shè)備需要該設(shè)備驅(qū)動(dòng)程序,則操作系統(tǒng)可以選擇卸載相應(yīng)的設(shè)備驅(qū)動(dòng)程序。進(jìn)行一個(gè)檢測(cè)以確定該槽是否是多所有的(步驟920)。如果該槽不是多所有的,操作系統(tǒng)通過(guò)PCI配置寄存器停止該槽中的設(shè)備(步驟935)。這里,“PCI停止”是指對(duì)PCI命令寄存器位進(jìn)行編程以防止該設(shè)備參與總線的活動(dòng)。停止設(shè)備是保證設(shè)備在槽將來(lái)被再次激活的情況下是不活動(dòng)的。如果槽是多所有的,則操作系統(tǒng)不能停止該設(shè)備,因?yàn)樵撛O(shè)備在其它分區(qū)內(nèi)還是活動(dòng)的。
最后,操作系統(tǒng)對(duì)相應(yīng)的槽分區(qū)描述符進(jìn)行編程移去該槽的分區(qū)的所有權(quán)(步驟925)。這樣完成了移去操作(步驟930)。
添加-多所有者現(xiàn)參考圖10A和10B,這是最復(fù)雜的情況,因?yàn)楸环峙滟Y源的當(dāng)前活動(dòng)設(shè)備(例如存儲(chǔ)器地址)被引入總線(步驟1000)。在一個(gè)活動(dòng)設(shè)備被包含至一個(gè)分區(qū)總線段之前,必須建立一個(gè)非沖突配置。如果沖突設(shè)備被引入總線,將產(chǎn)生錯(cuò)誤。
一個(gè)槽被選擇包含至分區(qū)(步驟1002)。操作系統(tǒng)檢查以確定該槽當(dāng)前是否被擁有或該槽未被擁有(步驟1004)。這個(gè)檢測(cè)是通過(guò)讀取目標(biāo)槽的槽描述符來(lái)進(jìn)行的。如果槽被擁有,則過(guò)程進(jìn)行到以下參考圖10B描述的多所有者方案。
如果槽當(dāng)前未被擁有(可用),則操作系統(tǒng)可選擇地在槽上進(jìn)行硬復(fù)位(步驟1006)。進(jìn)行硬復(fù)位是操作系統(tǒng)作出的策略性選擇以保證槽中的設(shè)備被復(fù)位和不活動(dòng)。之后,操作系統(tǒng)對(duì)相應(yīng)的槽分區(qū)描述符進(jìn)行編程以將該槽包含至該分區(qū)(步驟1008)。一旦該槽包含至分區(qū)內(nèi),該槽中的設(shè)備對(duì)操作系統(tǒng)是可見的。之后,操作系統(tǒng)發(fā)起一個(gè)熱插拔事件,它發(fā)出I/O總線變化開始的信號(hào)(步驟1010)。由于多所有權(quán)(即,在當(dāng)前分區(qū)和其它分區(qū)兩者都活動(dòng)的設(shè)備)增加的復(fù)雜性,設(shè)備和總線配置必須考慮可見(槽可被該分區(qū)訪問(wèn))多所有的設(shè)備。操作系統(tǒng)嘗試配置該設(shè)備,它知道只能對(duì)獨(dú)占所有的設(shè)備的配置寄存器進(jìn)行修改(步驟1012)。其它設(shè)備作為固定和不變的來(lái)對(duì)待。
如果實(shí)現(xiàn)適合的配置,則設(shè)備被配置和在線,并且操作系統(tǒng)調(diào)入相應(yīng)的驅(qū)動(dòng)程序或通知一個(gè)已調(diào)入的驅(qū)動(dòng)程序該設(shè)備已被添加并是可用的(步驟1014)。這就完成了添加操作(步驟1016)。
如果未實(shí)現(xiàn)適合的配置,則在簡(jiǎn)單的情況下操作失敗。但是,在較高級(jí)的情況下,試圖在所有擁有分區(qū)(和在它們內(nèi)執(zhí)行的操作系統(tǒng))間進(jìn)行協(xié)調(diào)以建立一個(gè)適合的相互兼容的一組設(shè)備配置值(步驟1018)。如果,在協(xié)調(diào)中,操作系統(tǒng)能夠?qū)崿F(xiàn)一組適合的設(shè)備配置值,則這些值被應(yīng)用(步驟1020)。操作系統(tǒng)如前所述進(jìn)入調(diào)入或通知驅(qū)動(dòng)程序步驟(步驟1014),并且操作完成(步驟1016)。
如果不能實(shí)現(xiàn)協(xié)調(diào)配置,則操作系統(tǒng)必須通過(guò)對(duì)分區(qū)描述符進(jìn)行編程將槽從該分區(qū)移去(步驟1022),并發(fā)出槽不能被添加的錯(cuò)誤信號(hào)(步驟1024)。
在操作系統(tǒng)間進(jìn)行協(xié)調(diào)以決定適合的總線配置,要求連續(xù)分區(qū)去聲明(de-assert)設(shè)備所有權(quán)并重試總線配置,直至獲得一個(gè)可接受的配置或停止設(shè)備所有權(quán)過(guò)程被窮舉。
現(xiàn)參考圖10B,在槽已經(jīng)被另一個(gè)分區(qū)所擁有的情況下,也就是槽中的設(shè)備已經(jīng)被配置并且是可運(yùn)行的,過(guò)程到達(dá)步驟1026。
操作系統(tǒng)檢查以確定被添加的槽中的設(shè)備是否有一組兼容的配置值(即,非沖突資源分配)(步驟1026)。這個(gè)檢查是通過(guò)向擁有的分區(qū)(在其中執(zhí)行的操作系統(tǒng))之一詢問(wèn)配置數(shù)據(jù)或從例如服務(wù)處理器的中心位置檢索配置數(shù)據(jù)而完成的。這個(gè)選擇是與實(shí)現(xiàn)方式無(wú)關(guān)的,并且是本領(lǐng)域的技術(shù)人員可以完成的。
如果配置值是兼容的,之后,操作系統(tǒng)對(duì)相應(yīng)的槽分區(qū)描述符進(jìn)行編程以包含該槽至該分區(qū)(步驟1028)。一旦槽被包含至分區(qū),該槽中的任何設(shè)備對(duì)操作系統(tǒng)是可見的。之后,操作系統(tǒng)起始一個(gè)熱插拔事件,它發(fā)出I/O總線上變化開始的信號(hào)(步驟1030)。此時(shí),設(shè)備被配置和在線,并且操作系統(tǒng)調(diào)入相應(yīng)的驅(qū)動(dòng)程序或通知一個(gè)已調(diào)入的驅(qū)動(dòng)程序該設(shè)備已被添加并是可用的(步驟1032)。這就完成了添加操作(步驟1042)。
如果被添加的槽中的設(shè)備沒(méi)有兼容的配置值,則操作系統(tǒng)試圖將總線配置在多所有設(shè)備“周圍”(“around”)(步驟1034)。也就是,重新計(jì)算配置,使多所有的設(shè)備配置保持固定和不改變。如果這個(gè)重新計(jì)算成功,則應(yīng)用這些新的配置值(步驟1036)并且過(guò)程恢復(fù)操作到步驟1028。如果重新計(jì)算不成功,則操作簡(jiǎn)單的失敗。
在高級(jí)的情況下,嘗試與步驟1018相似的“協(xié)調(diào)重配置”(步驟1038)。如果協(xié)調(diào)重配置成功,則配置被應(yīng)用而過(guò)程恢復(fù)(步驟1036)。
如果協(xié)調(diào)重配置失敗,則沒(méi)有適合的配置可用,槽添加失敗并且相應(yīng)地報(bào)告一個(gè)錯(cuò)誤(步驟1040)。
應(yīng)注意,在復(fù)雜的情況下,只有在一個(gè)適合的配置被確定之后,活動(dòng)的卡才被包含至分區(qū)。在過(guò)程中過(guò)早地對(duì)分區(qū)描述符進(jìn)行編程會(huì)引起總線上的設(shè)備間的資源沖突。
多所有權(quán)的考慮當(dāng)一個(gè)設(shè)備在物理層有多個(gè)所有者時(shí),需要有特殊編程考慮。為了對(duì)比,在邏輯層共享設(shè)備的一個(gè)例子是共享網(wǎng)絡(luò)打印機(jī)。在共享打印機(jī)的情況下,還只有一個(gè)打印機(jī)的物理所有者;系統(tǒng)實(shí)際上通過(guò)并口電纜而連接該打印機(jī)。這個(gè)服務(wù)器系統(tǒng)(它發(fā)信息給打印機(jī))管理和控制該設(shè)備的物理運(yùn)行。
物理共享,與邏輯共享相反,要求在擁有的操作系統(tǒng)間有更多的協(xié)調(diào)。操作系統(tǒng)必須保證物理共享設(shè)備的訪問(wèn)在分立的單元中發(fā)生。分立操作根據(jù)共享設(shè)備的特性而變化。在以上討論的打印機(jī)例子的情況下,一個(gè)分立操作是完成打印作業(yè)。一個(gè)活動(dòng)的打印作業(yè)必須在第二個(gè)作業(yè)被引入該設(shè)備前允許完成。如果不符合這個(gè)分立協(xié)議,這兩個(gè)打印作業(yè)都會(huì)損壞。操作系統(tǒng)可以選擇任何標(biāo)準(zhǔn)方法以保證在分立操作期間獨(dú)占所有權(quán),包括“令牌傳遞”或共享信號(hào)標(biāo)志,這是本領(lǐng)域的技術(shù)人員能夠完成的。
修改和變化當(dāng)然,在不背離本發(fā)明的實(shí)質(zhì)和范圍的情況下對(duì)公開的系統(tǒng)和方法作出許多修改和變化。例如,以上描述特別討論了外圍元件互連(PCI)連接,包括獨(dú)占分區(qū)和槽連接的可選隔離的這些技術(shù)可應(yīng)用于多種不同計(jì)算機(jī)結(jié)構(gòu)和系統(tǒng)中。
還有,在不同的實(shí)施例中,一個(gè)單一的PHB可以被用于每個(gè)槽。這樣,可以避免一些更復(fù)雜的配置問(wèn)題,因?yàn)橐粋€(gè)總線段只有一個(gè)設(shè)備(即,槽)消除了在已有設(shè)備周圍進(jìn)行配置的需要。其它形式的變化和細(xì)節(jié)當(dāng)然是本領(lǐng)域的技術(shù)人員可以實(shí)現(xiàn)的,并且落入權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng),包括多個(gè)系統(tǒng)處理器,被分成多個(gè)處理分區(qū),每個(gè)分區(qū)有至少一個(gè)系統(tǒng)處理器和一個(gè)唯一的分區(qū)描述符;至少一個(gè)存儲(chǔ)器,可操作連接,由所述處理器寫入和讀出;一個(gè)輸入/輸出控制器,連接用于與所述系統(tǒng)處理器的通信;多個(gè)輸入/輸出連接器,由所述輸入/輸出控制器管理,每個(gè)輸入/輸出連接器能夠被所述處理分區(qū)之一分配;多個(gè)輸入/輸出設(shè)備,連接至所述輸入/輸出連接器;其中所述輸入/輸出控制器只允許系統(tǒng)處理器與屬于相同處理分區(qū)的輸入/輸出連接器之間的通信,和其中所述輸入/輸出連接器能夠被動(dòng)態(tài)地分配至所述處理分區(qū)或從所述處理分區(qū)移去。
2.如權(quán)利要求1的系統(tǒng),其中當(dāng)屬于一個(gè)給定處理分區(qū)的一個(gè)處理器與一個(gè)輸入/輸出設(shè)備通信時(shí),不屬于那個(gè)分區(qū)的所有輸入/輸出連接器與所述處理器隔離。
3.如權(quán)利要求1的系統(tǒng),其中所述隔離是使用場(chǎng)效應(yīng)晶體管實(shí)現(xiàn)。
4.如權(quán)利要求1的系統(tǒng),其中所述輸入/輸出連接器可以同時(shí)屬于多個(gè)分區(qū)。
5.一種計(jì)算機(jī)系統(tǒng),包括至少一個(gè)系統(tǒng)處理器;一個(gè)存儲(chǔ)器,連接用于由所述系統(tǒng)處理器寫入和讀出;一個(gè)輸入/輸出控制器,連接用于與所述存儲(chǔ)器和所述處理器進(jìn)行通信;至少一個(gè)外圍設(shè)備,連接用于通過(guò)多個(gè)設(shè)備連接器之一與所述輸入/輸出控制器進(jìn)行通信;其中所述系統(tǒng)進(jìn)行以下步驟在所述輸入/輸出控制器中從一個(gè)系統(tǒng)處理器接收一個(gè)請(qǐng)求,以寫入所述外圍設(shè)備;在所述輸入/輸出控制器中接收一個(gè)相應(yīng)于所述系統(tǒng)處理器的分區(qū)標(biāo)識(shí)符;根據(jù)所述連接器是否屬于一組相應(yīng)的所述分區(qū)標(biāo)識(shí)符而接通至少一個(gè)所述多個(gè)連接器;和傳遞所述寫入請(qǐng)求至所述設(shè)備,其中所述輸入/輸出連接器可以被動(dòng)態(tài)地分配至或離開所述相應(yīng)于所述分區(qū)標(biāo)識(shí)符的所述組。
6.如權(quán)利要求5的系統(tǒng),其中所述設(shè)備連接器是PCI插槽。
7.如權(quán)利要求5的系統(tǒng),其中當(dāng)所述設(shè)備連接器關(guān)閉時(shí),它們被一個(gè)場(chǎng)效應(yīng)晶體管與所述輸入/輸出控制器隔離。
8.如權(quán)利要求5的系統(tǒng),其中不屬于所述組的所有所述連接器是關(guān)閉的。
9.如權(quán)利要求5的系統(tǒng),其中所述設(shè)備連接器可以同時(shí)屬于多個(gè)所述組。
10.一種計(jì)算機(jī)系統(tǒng),包括多個(gè)系統(tǒng)處理器;至少一個(gè)存儲(chǔ)器,連接用于由所述系統(tǒng)處理器寫入或讀出;一個(gè)輸入/輸出控制器,連接用于與所述存儲(chǔ)器和所述處理器進(jìn)行通信;和至少一個(gè)外圍設(shè)備,連接用于通過(guò)多個(gè)設(shè)備連接器之一與所述輸入/輸出控制器通信;其中所述系統(tǒng)進(jìn)行以下步驟在所述輸入/輸出控制器中從所述設(shè)備接收一個(gè)請(qǐng)求以寫入存儲(chǔ)器;在所述輸入/輸出控制器中讀出相應(yīng)于所述設(shè)備連接器的一個(gè)分區(qū)描述符;根據(jù)所述設(shè)備連接器是否屬于相應(yīng)于所述分區(qū)描述符的一個(gè)組,接通至少一個(gè)所述設(shè)備連接器;關(guān)閉不屬于所述組的所有所述設(shè)備連接器;和從所述設(shè)備傳遞所述寫請(qǐng)求至所述存儲(chǔ)器,其中所述設(shè)備連接器能夠被動(dòng)態(tài)地分配至或離開相應(yīng)于所述分區(qū)標(biāo)識(shí)符的所述組。
11.如權(quán)利要求10的系統(tǒng),其中所述設(shè)備連接器是PCI插槽。
12.如權(quán)利要求10的系統(tǒng),其中當(dāng)所述設(shè)備連接器關(guān)閉時(shí),它們被一個(gè)場(chǎng)效應(yīng)晶體管與所述輸入/輸出控制器隔離。
13.如權(quán)利要求10的系統(tǒng),其中所述設(shè)備連接器可以同時(shí)屬于多個(gè)所述組。
14.一種計(jì)算機(jī)系統(tǒng),包括多個(gè)系統(tǒng)處理器;至少一個(gè)存儲(chǔ)器,連接用于由所述系統(tǒng)處理器寫入和讀出;一個(gè)輸入/輸出控制器,連接用于與所述存儲(chǔ)器和所述處理器進(jìn)行通信;和至少一個(gè)外圍設(shè)備,連接用于通過(guò)多個(gè)設(shè)備連接器之一與所述輸入/輸出控制器進(jìn)行通信;其中所述系統(tǒng)進(jìn)行以下步驟分配每個(gè)所述多個(gè)系統(tǒng)處理器至一個(gè)處理分區(qū);分配一個(gè)所述處理分區(qū)一個(gè)獨(dú)立的分配標(biāo)識(shí)符;分配每個(gè)所述設(shè)備連接器至至少一個(gè)所述處理分區(qū);在存儲(chǔ)器中存儲(chǔ)標(biāo)識(shí)每個(gè)設(shè)備連接器所屬哪一個(gè)處理分區(qū);和傳遞系統(tǒng)處理器與屬于相同處理分區(qū)的設(shè)備連接器之間的通信,并且不傳遞系統(tǒng)處理器與不屬于相同處理分區(qū)的設(shè)備連接器之間的通信,其中所述設(shè)備連接器能夠被動(dòng)態(tài)地分配至或離開所述處理分區(qū)。
15.如權(quán)利要求14的系統(tǒng),其中屬于一個(gè)給定的處理分區(qū)的一個(gè)系統(tǒng)處理器通過(guò)屬于相同處理分區(qū)的一個(gè)設(shè)備連接器進(jìn)行通信,不屬于那個(gè)處理分區(qū)的所有設(shè)備連接器被關(guān)閉。
16.如權(quán)利要求14的系統(tǒng),其中當(dāng)所述設(shè)備連接器被關(guān)閉時(shí),它們被一個(gè)場(chǎng)效應(yīng)晶體管與所述輸入/輸出控制器隔離。
17.如權(quán)利要求14的系統(tǒng),其中所述設(shè)備連接器能夠同時(shí)屬于多個(gè)處理分區(qū)。
全文摘要
提供了一種在分區(qū)計(jì)算機(jī)系統(tǒng)中在基本主機(jī)橋(PHB)內(nèi)分區(qū)和分配各個(gè)外圍元件互聯(lián)槽的系統(tǒng)。包括了一個(gè)革新的PHB系統(tǒng),它允許PCI槽在給定時(shí)間被動(dòng)態(tài)地分配給一個(gè)或多個(gè)分區(qū),允許更高效地分配系統(tǒng)資源。
文檔編號(hào)G06F9/46GK1274123SQ0010474
公開日2000年11月22日 申請(qǐng)日期2000年3月24日 優(yōu)先權(quán)日1999年3月31日
發(fā)明者R·貝爾寇斯基, P·M·布蘭德 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
科尔| 曲周县| 交城县| 日照市| 华阴市| 翁源县| 翁牛特旗| 莆田市| 建阳市| 新沂市| 巫山县| 大冶市| 乌审旗| 无为县| 长顺县| 中西区| 榆树市| 临泉县| 安福县| 青浦区| 河北区| 吉木萨尔县| 兴业县| 南澳县| 湖口县| 平乡县| 萨迦县| 铜鼓县| 那坡县| 合作市| 綦江县| 富蕴县| 苍山县| 怀宁县| 茂名市| 乡城县| 湘乡市| 抚顺市| 治多县| 资溪县| 湛江市|