国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在可劃分計(jì)算機(jī)中把資源分配給劃分的制作方法

      文檔序號:6632787閱讀:169來源:國知局
      專利名稱:在可劃分計(jì)算機(jī)中把資源分配給劃分的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及可劃分計(jì)算機(jī),更準(zhǔn)確地說,涉及在可劃分計(jì)算機(jī)中把資源分配給劃分的方法和設(shè)備。
      背景技術(shù)
      計(jì)算機(jī)系統(tǒng)擁有者和操作者不斷地尋求改進(jìn)計(jì)算機(jī)運(yùn)行效率并由此降低提供計(jì)算服務(wù)的成本。例如,近年來企業(yè)中各種不同種類的服務(wù)器激增,例如數(shù)據(jù)庫服務(wù)器、web服務(wù)器、email服務(wù)器和文件服務(wù)器。單個(gè)企業(yè)可能擁有或相反地雇用這些種類的服務(wù)器中大量的各類服務(wù)器的服務(wù)。購買(或租用)和維護(hù)這種服務(wù)器的成本會非常巨大。因此,降低企業(yè)必須使用的服務(wù)器的數(shù)量而不降低系統(tǒng)性能會相當(dāng)有益。
      減少服務(wù)器數(shù)量的一個(gè)途徑是通過“服務(wù)器整合”方法,在這種方法中多個(gè)獨(dú)立的服務(wù)器由單個(gè)服務(wù)器代替,這里稱為“統(tǒng)一服務(wù)器”。統(tǒng)一服務(wù)器通常是具有相當(dāng)多的計(jì)算資源(例如多個(gè)處理器和大量存儲器)的強(qiáng)大的計(jì)算機(jī)系統(tǒng)。統(tǒng)一服務(wù)器可在邏輯上細(xì)分為多個(gè)“劃分”,給每個(gè)劃分分配了一部分服務(wù)器資源。多-劃分統(tǒng)一服務(wù)器是“可劃分計(jì)算機(jī)”的一種實(shí)例。每個(gè)劃分可以執(zhí)行它自己的操作系統(tǒng)和軟件應(yīng)用程序,并且類似于獨(dú)立的物理計(jì)算機(jī)那樣運(yùn)作。
      與獨(dú)立服務(wù)器的集合不同,通??梢詣?dòng)態(tài)地調(diào)整統(tǒng)一服務(wù)器中每個(gè)劃分/應(yīng)用程序可用的資源。很多應(yīng)用程序經(jīng)歷了工作負(fù)載要求的變化,而工作負(fù)載要求常常取決于一天中的時(shí)刻以及一個(gè)月中的某天,等等。高工作負(fù)載要求的周期常常是不一致的。將可用資源應(yīng)用到目前的高要求工作負(fù)載實(shí)現(xiàn)了資源利用率的提高,整體資源需求的下降,以及由此帶來的整體成本的下降。
      隨著可劃分計(jì)算機(jī)變得更加強(qiáng)大,它們的趨勢是包括進(jìn)數(shù)量越來越多的處理器。特別的,單個(gè)可劃分計(jì)算機(jī)通常包括若干(例如4)個(gè)”單元板(cell board)”,每個(gè)單元板包括若干(例如2、4、8或16)個(gè)處理器。單元板通過交換結(jié)構(gòu)互連并且共同提供接近它們包含的單個(gè)處理器的處理能力之和的有效處理能力。每下一代單元板都趨向于包括比前一代數(shù)量更多的處理器。
      早期的處理器,像很多已有的處理器那樣,只包括單個(gè)處理器核心。相反,“多核心”處理器可以在單個(gè)芯片上包括一個(gè)或多個(gè)處理器核心。多核心處理器的運(yùn)轉(zhuǎn)就好像它是多個(gè)處理器一樣。多個(gè)處理器核心中的每一個(gè)實(shí)質(zhì)上都可以獨(dú)立運(yùn)轉(zhuǎn),同時(shí)共享特定的公共資源,例如高速緩沖存儲器。因此,多核心處理器為處理效率的提高提供了額外的機(jī)會。
      隨著可劃分計(jì)算機(jī)硬件的尺寸、功率和復(fù)雜度繼續(xù)增加,越來越希望提供劃分之間的計(jì)算機(jī)資源(例如處理器和I/O設(shè)備)分配上的靈活性。例如,資源分配上靈活性不足會導(dǎo)致分配給第一劃分的資源利用不足,而以最大利用率運(yùn)轉(zhuǎn)的第二劃分又缺少資源。因此,需要一種改進(jìn)的技術(shù)給可劃分計(jì)算機(jī)系統(tǒng)中的劃分分配計(jì)算機(jī)資源。

      發(fā)明內(nèi)容
      在本發(fā)明的一個(gè)方面,提供了一種被劃分成多個(gè)劃分的可劃分計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)包括集成電路,該集成電路包括分配給多個(gè)劃分中的第一劃分的第一硬件資源和分配給多個(gè)劃分中不同于第一劃分的第二劃分的第二硬件資源。
      在本發(fā)明的又一個(gè)方面,提供了一種用在被劃分成多個(gè)劃分的可劃分計(jì)算機(jī)系統(tǒng)中的設(shè)備,該設(shè)備包括用于接收第一事務(wù)的裝置,該事務(wù)包括分配給了在該多個(gè)劃分中所選擇的一個(gè)劃分的地址空間中的一個(gè)物理地址;和用于通過將劃分標(biāo)識值存儲在該物理地址的至少部分空間中而產(chǎn)生一個(gè)劃分-標(biāo)識地址的裝置。
      在本發(fā)明的又一個(gè)方面,提供了一種用在被劃分成多個(gè)劃分的可劃分計(jì)算機(jī)系統(tǒng)中的設(shè)備,其中該多個(gè)劃分中的第一劃分與第一劃分標(biāo)識值相關(guān)聯(lián),該多個(gè)劃分中的第二劃分與第二劃分標(biāo)識值相關(guān)聯(lián),該設(shè)備包括用于接收包括源終端標(biāo)識符的事務(wù)的裝置,該源終端標(biāo)識符標(biāo)識從其接收到進(jìn)入的事務(wù)的那個(gè)源設(shè)備;用于根據(jù)該源終端標(biāo)識符識別第三劃分標(biāo)識值的裝置,第三劃分標(biāo)識值標(biāo)識該多個(gè)劃分中的第一劃分和第二劃分之一;用于在該第三劃分標(biāo)識值等于第一劃分標(biāo)識值的情況下將事務(wù)的至少一些發(fā)送到分配給了該多個(gè)劃分中的第一劃分的第一硬件資源的裝置;用于在該第三劃分標(biāo)識值等于第二劃分標(biāo)識值的情況下將事務(wù)的至少一些發(fā)送到分配給了該多個(gè)劃分中的第二劃分的第二硬件資源的裝置。
      在本發(fā)明的再一個(gè)方面,提供了一種用在被劃分成多個(gè)劃分的可劃分計(jì)算機(jī)系統(tǒng)中的方法,其中該多個(gè)劃分中的第一與第一劃分標(biāo)識值相關(guān)聯(lián),該多個(gè)劃分中的第二與第二劃分標(biāo)識值相關(guān)聯(lián),該方法包括(A)接收一包括源終端標(biāo)識符的事務(wù),該源終端標(biāo)識符標(biāo)識從其接收到進(jìn)入的事務(wù)的那個(gè)源設(shè)備;(B)根據(jù)該源終端標(biāo)識符識別第三劃分標(biāo)識值,第三劃分標(biāo)識值標(biāo)識該多個(gè)劃分中的第一劃分和第二劃分之一;(C)如果該第三劃分標(biāo)識值等于第一劃分標(biāo)識值,將事務(wù)的至少一些發(fā)送到分配給了該多個(gè)劃分的第一劃分的第一硬件資源;(D)如果該第三劃分標(biāo)識值等于第二劃分標(biāo)識值,將事務(wù)的至少一些發(fā)送到分配給了該多個(gè)劃分的第二劃分的第二硬件資源。


      圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的多處理器計(jì)算機(jī)系統(tǒng)的框圖;圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的圖1中的計(jì)算機(jī)系統(tǒng)中的CPU之一的框圖;圖3是由根據(jù)本發(fā)明的一個(gè)實(shí)施例的圖2中的位代替電路執(zhí)行的一種方法的流程圖;圖4A是由根據(jù)本發(fā)明的一個(gè)實(shí)施例的圖2中的高速緩沖存儲器執(zhí)行的一種方法的流程圖;圖4B是由根據(jù)本發(fā)明的一個(gè)實(shí)施例的圖2中的地址映射器執(zhí)行的一種方法的流程圖。
      圖5是在根據(jù)本發(fā)明的一個(gè)實(shí)施例的可劃分計(jì)算機(jī)系統(tǒng)中的處理器核心和硬件劃分之間的映射的圖示;圖6A-6B示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的I/O控制器;圖7是根據(jù)本發(fā)明的一個(gè)實(shí)施例的可劃分計(jì)算機(jī)系統(tǒng)中I/O端口和劃分之間的映射的圖示;圖8是根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法的流程圖,該方法是由圖6A-6B的目的地譯碼器執(zhí)行以譯碼即將到來的事務(wù)中的物理地址;圖9是由根據(jù)本發(fā)明的一個(gè)實(shí)施例由圖6A-6B中的位代替電路執(zhí)行的一種方法的流程圖;圖10是由根據(jù)本發(fā)明的一個(gè)實(shí)施例由圖6A-6B中的高速緩沖存儲器執(zhí)行的一種方法的流程圖;
      圖11是由根據(jù)本發(fā)明的一個(gè)實(shí)施例由圖6A-6B中的地址映射器執(zhí)行的一種方法的流程圖;圖12A是根據(jù)本發(fā)明的一個(gè)實(shí)施例的劃分-標(biāo)識地址的圖示;圖12B是根據(jù)本發(fā)明的另一個(gè)實(shí)施例的劃分-標(biāo)識地址的圖示。
      具體實(shí)施例方式
      在說明本發(fā)明的實(shí)施例之前,將描述多處理器計(jì)算機(jī)體系結(jié)構(gòu)的一般特性。盡管有多種多處理器計(jì)算機(jī)體系結(jié)構(gòu),但對稱多處理器(symmetric multiprocessing,SMP)體系結(jié)構(gòu)是其中應(yīng)用最廣泛的體系結(jié)構(gòu)之一。參考圖1,以框圖形式示出了具有對稱多處理SMP體系結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng)100。計(jì)算機(jī)系統(tǒng)100包括多個(gè)單元板102a-d,用交換結(jié)構(gòu)116互連,交換結(jié)構(gòu)也稱為“系統(tǒng)結(jié)構(gòu)”或簡稱“結(jié)構(gòu)(fabric)”。單元板102a-d中的每一個(gè)都包括多個(gè)CPU、系統(tǒng)總線及主存儲器。
      為說明和闡述方便起見,圖1中更詳細(xì)地示出了單元板102a,并將更詳細(xì)地對其進(jìn)行說明。但是,其它單元板102b-d也可以包括與單元板102a相同或相似的部件和結(jié)構(gòu)。單元板102a包括多個(gè)CPU104a-n,這里n是像2、4、8或16這樣的數(shù)字。CPU 104a-n分別包括板上高速緩沖存儲器106a-n。單元板102a還包括系統(tǒng)總線108、主存儲器112a和存儲器控制器110a。CPU 104a-n與系統(tǒng)總線108直接耦合,而主存儲器112a通過存儲器控制器110a與系統(tǒng)總線108相耦合。本領(lǐng)域中的技術(shù)人員眾所周知的,CPU 104a-n可以在系統(tǒng)總線108上彼此通信并且可以在系統(tǒng)總線108上通過存儲器控制器110a訪問存儲器112a。
      盡管單元板102a-d包括它們自己的、與對應(yīng)的存儲器控制器110a-d耦合的本地系統(tǒng)存儲器112a-d,但存儲器112a-d可由單元板102a-d中的CPU用單一的組合物理地址空間尋址。結(jié)構(gòu)116為單元板102a-d之間的通信提供了一種機(jī)制以進(jìn)行這樣的共享存儲器訪問和其它單元板之間的通信。
      例如,結(jié)構(gòu)116可以包括一個(gè)或多個(gè)縱橫開關(guān)(crossbarswitch)??v橫開關(guān)是有多個(gè)可以與設(shè)備相連的輸入/輸出端口的設(shè)備。連接到縱橫開關(guān)的一對輸入/輸出端口的一對設(shè)備可以在連接該對輸入/輸出端口的開關(guān)范圍內(nèi)形成的通路上彼此通信。可以固定在設(shè)備之間建立起來的通路一段時(shí)間或者在需要時(shí)改變它們。多個(gè)通路可以在縱橫開關(guān)中同時(shí)有效的,由此允許多對設(shè)備同時(shí)通過縱橫開關(guān)彼此通信而不會相互干擾。
      可以用不同于縱橫開關(guān)的部件實(shí)現(xiàn)結(jié)構(gòu)116。例如,可以用一個(gè)或多個(gè)總線實(shí)現(xiàn)結(jié)構(gòu)116。
      單元板102a還包括一個(gè)與結(jié)構(gòu)116相耦合的結(jié)構(gòu)代理芯片114a,它充當(dāng)單元板102a和系統(tǒng)100中的其它單元板102b-d之間的接口。其它單元板102b-d同樣分別包括它們自已的結(jié)構(gòu)代理芯片114b-d。盡管在圖1中結(jié)構(gòu)代理芯片114a-d被示為獨(dú)立的部件,但也可將它們看作是系統(tǒng)結(jié)構(gòu)116的一部分。
      如上所述,可以用單一的物理地址空間訪問單元板102a-d中的本地存儲器112a-d。在如圖1所示的系統(tǒng)100這樣的SMP中,通過結(jié)構(gòu)代理芯片114a-d可以實(shí)現(xiàn)這一點(diǎn)。例如,考慮一種情況,CPU 104a向存儲器控制器110a發(fā)出一個(gè)存儲器訪問請求,該請求尋址共享物理地址空間中的一個(gè)存儲單元(或存儲單元范圍)。如果存儲器控制器110a不能滿足來自本地存儲器112a的存儲器訪問請求,那么存儲器控制器110a就轉(zhuǎn)發(fā)該請求到結(jié)構(gòu)代理芯片114a。結(jié)構(gòu)代理芯片114a將該請求中的物理地址轉(zhuǎn)換成指定所請求存儲器的單元的一個(gè)新的存儲器地址(稱為“結(jié)構(gòu)地址”),并用該新的結(jié)構(gòu)地址發(fā)送一個(gè)新的存儲器訪問請求到結(jié)構(gòu)116。結(jié)構(gòu)116將該存儲器訪問請求轉(zhuǎn)發(fā)給合適的單元板中的結(jié)構(gòu)代理芯片。
      如果可以,用接收單元板的本地存儲器執(zhí)行所請求的存儲器訪問,并在結(jié)構(gòu)116上將結(jié)果傳回結(jié)構(gòu)代理芯片114a、通過存儲器控制器110a、最終傳回CPU 104a。單元板102a-d中的CPU可以由此用單元板102a-d中的結(jié)構(gòu)代理芯片114a-d在結(jié)構(gòu)116上訪問其它單元板102a-d中的任意一個(gè)中的主存儲器。從CPU 104a-d可以用相同的方式發(fā)送存儲器訪問請求并接收對存儲器訪問請求的響應(yīng),而不管這種請求是由板上存儲器還是由板外存儲器來滿足的這個(gè)意義上講,這種系統(tǒng)的一個(gè)目標(biāo)是使存儲器訪問的實(shí)現(xiàn)對CPU 104a-d是透明的。
      在本發(fā)明的一個(gè)實(shí)施例中,提供了在可劃分計(jì)算機(jī)系統(tǒng)中把單個(gè)芯片上的多個(gè)物理資源分配給多個(gè)劃分的技術(shù)。在這一實(shí)施例中,當(dāng)資源之一產(chǎn)生了包含一個(gè)物理地址的事務(wù)時(shí),劃分標(biāo)識值(標(biāo)識該資源被分配給的那個(gè)劃分)被存儲在該物理地址中以創(chuàng)建劃分-標(biāo)識地址。包括該劃分-標(biāo)識地址的事務(wù)在結(jié)構(gòu)116上被發(fā)送并由此被傳送到合適的目的地。
      將用一個(gè)例子解釋這個(gè)實(shí)施例,在這個(gè)例子中單個(gè)微處理器中的多個(gè)微處理器核心被分配給了多個(gè)劃分。例如,參考圖2,示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的CPU 104a的功能框圖。在圖2中所示實(shí)施例中,CPU 104a是一個(gè)多核心處理器。特別地,CPU 104a在單個(gè)芯片上包括多個(gè)處理器核心204a-n,這里n可以是像2、4、8、或16這樣的任意數(shù)字。例如,核心204a-n可以是常規(guī)的處理器核心,就像存在于常規(guī)的多核心處理器中的那樣。在圖1所示出的實(shí)施例中,所有的核心204a-n共享單個(gè)高速緩沖存儲器208。但是,核心204a-n不需要共享單個(gè)高速緩沖存儲器。更確切地講,例如每個(gè)核心可以有它自己的高速緩沖存儲器,或者不同的核心組可以共享不同的高速緩沖存儲器。
      在常規(guī)的可劃分計(jì)算機(jī)系統(tǒng)中,多核心處理器中的所有核心都需要被分配給一個(gè)單獨(dú)的劃分。此外,如果CPU 104a是常規(guī)的多核心處理器,核心204a-n就可以和高速緩沖存儲器208直接通信。例如,核心204a可以直接發(fā)送存儲器寫請求(包括要寫的存儲器地址的地址)給高速緩沖存儲器208,如果可以高速緩沖存儲器208就可以在本地滿足該請求,或者另外通過執(zhí)行到主存儲器的板外寫來滿足該請求。
      相反,圖2中所示的多核心處理器104a使得核心204a-n可以被分配給多個(gè)劃分。例如,參考圖5,示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的在處理器核心506a-h和可劃分計(jì)算機(jī)系統(tǒng)100的劃分504a-d之間的映射。圖5中的核心506a-h在n=8的情況下代表圖2中的核心204a-n。例如,在n=8時(shí)核心506a代表核心204a,而核心506h代表核心204n。
      注意劃分504a-d中的任一個(gè)自身都不是計(jì)算機(jī)系統(tǒng)100的一個(gè)物理部件。更確切地講,劃分504a-d中的每一個(gè)都是一個(gè)由分配給它的資源(例如,處理器核心)定義的邏輯構(gòu)成。分配給一個(gè)特定劃分的資源可以隨時(shí)間而改變。
      在圖5所示的例子中,核心506b被分配給劃分504a(由映射502b表示),核心506a和506b被分配給劃分504b(分別由映射502a和502b表示),核心506c、506e和506f被分配給劃分504(分別由映射502c、502e和502f表示),核心506g-h被分配給劃分504d(分別由映射502g-h表示)。
      圖5中所示的特定映射502僅僅是為了示例目的而示出,并不構(gòu)成對本發(fā)明的限制。可以有任意數(shù)量的劃分,核心也可被以任意排列分配給這些劃分。
      為了使核心204a-n能夠被分配給多個(gè)劃分,CPU 104a包括多個(gè)劃分ID寄存器210a-n,這些寄存器分別與該多個(gè)核心204a-n相關(guān)聯(lián)。例如,劃分ID寄存器210a與核心206a相關(guān)聯(lián)并且存儲代表映射502a(圖5)的值。同樣,劃分ID寄存器210n與核心204n相關(guān)聯(lián)并且存儲代表映射502h的值。劃分ID寄存器210a-n中的每一個(gè)都包括至少足夠的位來表示計(jì)算機(jī)系統(tǒng)100中劃分的數(shù)量。特別地,如果P是計(jì)算機(jī)系統(tǒng)100中劃分的數(shù)量,劃分ID寄存器210a-n中的每一個(gè)都包括至少log2P位。例如,如果有四個(gè)劃分(如圖5中所示的示例中那樣),劃分ID寄存器210a-n中的每一個(gè)都包括至少兩位(log24)。
      劃分ID寄存器210a-n中的每一個(gè)都存儲一個(gè)唯一的劃分ID值,它唯一標(biāo)識核心204a-n中對應(yīng)的那個(gè)核心被分配到的劃分。例如,讓PIRi是索引為i的劃分ID寄存器,并讓Ci是對應(yīng)的索引為i的處理器核心,這里i從0到n-1。如果核心Ci被分配給了劃分j,那么劃分ID寄存器PIRi中的劃分ID值中存儲的就是值j。這樣,一個(gè)唯一的值標(biāo)識系統(tǒng)100中的每個(gè)劃分。例如,劃分ID寄存器210a-n中存儲的值可以由在計(jì)算機(jī)系統(tǒng)100中運(yùn)行的配置軟件來設(shè)置。
      例如,再次參考圖5中所示的示例,劃分ID寄存器210a中可以存儲值1(二進(jìn)制01),由此表示核心204a(由圖5中的核心506a代表)被分配給了劃分1(504b)。同樣,劃分ID寄存器210n中可以存儲值3(二進(jìn)制11),由此表示核心204n(由圖5中的核心506h代表)被分配給了劃分3(504d)。
      可以配置CPU 104a以使劃分ID寄存器210a-n中存儲的劃分ID值不能由在計(jì)算機(jī)系統(tǒng)100上運(yùn)行的操作系統(tǒng)改變。例如,通過多種硬件安全機(jī)制中的任意一種或者簡單地通過配置軟件和操作系統(tǒng)之間的協(xié)議就可以實(shí)現(xiàn)劃分ID值的這種固定。
      為了實(shí)現(xiàn)核心204a-n到多個(gè)劃分504a-d的分配,在劃分504a-d之間分配計(jì)算機(jī)系統(tǒng)100的主存儲器112a-d,以使每個(gè)劃分都分配到了主存儲器112a-d的一部分。主存儲器112a-d可以被以任意大小的塊分配給劃分504a-d。例如,可以每個(gè)地址、每一頁或每一控制器為基礎(chǔ)分配主存儲器112a-d給劃分504a-d。
      在本發(fā)明的一個(gè)實(shí)施例中,發(fā)送存儲器訪問請求的核心不必指出所請求的存儲器地址被分配給了哪個(gè)劃分。更確切地講,該核心只需用與該核心被分配到的劃分相關(guān)聯(lián)的地址空間(稱為“物理地址空間”)中的一個(gè)存儲器地址(稱為“物理地址”)來指定所請求的存儲器地址。通常主存儲器112a-d被邏輯地劃分為多個(gè)物理地址空間。每個(gè)物理地址空間通常都是以零為基址,這意味著每個(gè)物理地址空間中的地址通常都是從地址零開始編號。
      為了實(shí)現(xiàn)這個(gè)結(jié)果,提供了區(qū)別一個(gè)劃分中的特定地址和其它劃分中的相同地址的機(jī)制。特別是,CPU 104a包括位代替電路212a-n,它們被分別耦合在核心204a-n和劃分ID寄存器210a-n之間。
      為了理解由位代替電路212a-n執(zhí)行的功能,考慮一個(gè)例子,核心204a在線路214a上發(fā)送一個(gè)寫命令230a到位代替電路212a。寫命令230a包括要寫的存儲器位置的物理地址和要寫到那個(gè)位置的值。該物理地址在圖2中被示為“a[54:0]”以表明該地址的0-54位包含有用(地址-標(biāo)識)的信息。
      術(shù)語“系統(tǒng)空間”在這里指為整個(gè)主存儲器112a-d中的每個(gè)存儲單元包含唯一地址的地址空間。為舉例起見,假定系統(tǒng)地址空間是4GB(0x100000000)并且有四個(gè)大小(1GB)相同的劃分。這個(gè)例子中每個(gè)劃分的物理存儲空間就可以有0-1GB(0x00000000-0x40000000)的地址范圍。第一個(gè)劃分可以被分配(映射)到該系統(tǒng)地址空間的第一個(gè)G,第二個(gè)劃分可以被分配到該系統(tǒng)地址空間的第二個(gè)G,等等。當(dāng)分配到一個(gè)特定劃分的核心產(chǎn)生一個(gè)物理存儲地址作為存儲器訪問請求的一部分時(shí),必須將該物理存儲地址轉(zhuǎn)換成系統(tǒng)存儲地址。現(xiàn)在將說明根據(jù)本發(fā)明的一個(gè)實(shí)施例執(zhí)行這種轉(zhuǎn)換的技術(shù)的例子。
      為舉例起見,假定在線路214a上發(fā)送的寫命令230a中的物理地址是64-位的值,但只需要低55位來完全尋址分配給單個(gè)劃分的地址空間。這種情況下,不需要用最高的9個(gè)地址位來指定物理地址。在多-劃分計(jì)算機(jī)系統(tǒng)啟動(dòng)時(shí),運(yùn)行在每個(gè)劃分上的操作系統(tǒng)都被通知分配給它的物理地址空間的大小。結(jié)果,行為正常的操作系統(tǒng)將不會產(chǎn)生使用了多于尋址分配給它的存儲器劃分的位(例如55)的地址。但是,如同下面所更詳細(xì)地描述的那樣,即使某個(gè)特定劃分中的操作系統(tǒng)行為不正常并且產(chǎn)生了超出分配給它的地址范圍之外的地址,這里所公開的技術(shù)也能防止操作系統(tǒng)訪問這種被禁止的地址,由此加強(qiáng)了劃分間的安全性。
      參考圖3,示出了由根據(jù)本發(fā)明的一個(gè)實(shí)施例的位代替電路212a在由核心204a在線路214a上發(fā)送寫命令230a時(shí)執(zhí)行的方法300的流程圖。位代替電路212a接收到寫命令230a(或者其它存儲器訪問請求,例如讀命令)(步驟302)。響應(yīng)接收到寫命令230a,位代替電路212a在線路216a上從劃分ID寄存器210a讀取劃分ID值(步驟304)。位代替電路212a將劃分ID值寫入該物理地址,由此產(chǎn)生一個(gè)劃分-標(biāo)識地址,它包括初始物理地址以及該劃分ID值(步驟306)。
      參考圖12A,示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例在步驟306中產(chǎn)生的劃分-標(biāo)識地址1200的一個(gè)示例圖。圖12A中示出的示例劃分-標(biāo)識地址1200是64位寬。劃分-標(biāo)識地址1200的1202部分(位0-52)包含初始寫命令230a中包含的物理地址的0-52位。在本發(fā)明的一個(gè)實(shí)施例中,位代替電路212a將從寫命令230a獲得的劃分ID值寫入劃分-標(biāo)識地址1200的1204部分(步驟306),由此覆蓋1204部分中存儲的初始值。包括1202及1204兩個(gè)部分的1208部分因此無歧義地標(biāo)識出了由初始的寫命令230a表示的系統(tǒng)存儲地址。劃分-標(biāo)識地址1200的1206部分(位55-63)沒有使用。1208部分因此代表地址1200的“使用部分”,因?yàn)閯澐諭D部分1204和物理地址部分1202的組合被用來指定系統(tǒng)100中的一個(gè)唯一地址。
      前面曾說明行為良好的操作系統(tǒng)將不會試圖訪問具有超出已經(jīng)分配給它的地址空間之外的地址的存儲單元,因此也不會設(shè)置1204或1206部分中的任一位。但是,如果操作系統(tǒng)真地設(shè)置了1204部分中的任何位,這種位將在步驟306中被位代替電路212a覆蓋??梢赃M(jìn)一步配置位代替電路212a以便用零或一些其它值覆蓋1206部分。由此位代替電路212a可以防止操作系統(tǒng)訪問超出它的劃分之外的地址,并由此實(shí)現(xiàn)劃分間的安全性。
      圖12A僅是為了舉例起見示出了劃分-標(biāo)識地址1200的特定布局,但并不構(gòu)成對本發(fā)明的限制。更確切地講,可以結(jié)合本發(fā)明的實(shí)施例使用任意大小具有任意布局的劃分-標(biāo)識地址。例如,劃分-標(biāo)識地址的布局可以從劃分到劃分都有所不同。例如,可以為一個(gè)劃分分配兩倍于另一劃分的地址空間,這種情況下較大劃分中的地址空間將比較小劃分中的地址在劃分ID(1204部分)中少一位,并且在物理地址(1202部分)中多出一位。因此,可對位代替電路212a-n分別編程以在由核心204a-n產(chǎn)生的地址中插入可變大小的劃分ID。
      位代替電路212a產(chǎn)生(步驟308)第一個(gè)更改過的寫命令232a(或其它存儲器訪問請求),它包含步驟306中生成的劃分-標(biāo)識地址空間。位代替電路212a在線路218a上將該第一個(gè)更改過的寫命令232a(或其它存儲器訪問請求)發(fā)送給高速緩沖存儲器208(步驟310)。
      采用以上相對于圖2描述并說明的方式對核心、劃分ID寄存器和位代替電路的組合這里被稱為“擴(kuò)展核心”。例如,CPU 104a包括擴(kuò)展核心206a-n。擴(kuò)展核心206a包括核心204a、劃分ID寄存器210a和位代替電路212a,而擴(kuò)展核心206n包括核心204n、劃分ID寄存器210n和位代替電路212n。盡管核心204a、位代替電路212a和劃分ID寄存器210a在圖2中被示為不同的部件,但由位代替電路212a和/或劃分ID寄存器206a執(zhí)行的功能可以集成到核心204a中,以使核心204a可以和高速緩沖存儲器208直接通信。
      參考圖4A,示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例由高速緩沖存儲器208響應(yīng)接收第一更改過的寫命令232a而執(zhí)行的方法400的流程圖。高速緩沖存儲器208從位代替電路212a接收第一更改過的寫命令232a(步驟402)。高速緩沖存儲器208確定是否能夠在本地滿足該寫請求,即該第一更改過的寫命令232a中包含的劃分-標(biāo)識地址在高速緩沖存儲器行234中是否存在命中(步驟404)。換句話說,高速緩沖存儲器208確定由第一更改過的寫命令232a中包含的劃分-標(biāo)識地址所尋址的存儲單元的值是否存儲在高速緩沖存儲器線234中。高速緩沖存儲器208可以通過使用第一更改過的寫命令232a中包含的劃分-標(biāo)識地址作為索引和標(biāo)記并接著用多種眾所周知的技術(shù)中的任意一種根據(jù)該索引和標(biāo)記確定是否有高速緩沖存儲器命中而執(zhí)行步驟404。
      注意存儲了劃分ID值的地址位可以占據(jù)高速緩沖存儲器208的索引或標(biāo)記字段。如果劃分ID值被存儲在高速緩沖存儲器208的索引字段,就分配高速緩沖存儲器208的固定和獨(dú)立(無重疊)的部分給劃分504a-d。但是,如果劃分ID值被存儲在高速緩沖存儲器208的標(biāo)記字段,那么整個(gè)高速緩沖存儲器208由劃分504a-d共享,并且由任意劃分使用的特定的高速緩沖存儲器單元是動(dòng)態(tài)的,并且取決于任意特定時(shí)間點(diǎn)上核心204a-n的工作負(fù)載。
      如果高速緩沖存儲器命中,高速緩沖存儲器208就在本地執(zhí)行寫操作(即在高速緩沖存儲器行234中)(步驟406),然后方法400終止。高速緩沖存儲器208可以在線路224a上發(fā)送確認(rèn)給核心204a。如果核心204a發(fā)送一個(gè)讀命令給高速緩沖存儲器208,高速緩沖存儲器208可以在線路224a上將讀出的值發(fā)送給核心204a。
      如果存在高速緩沖存儲器未命中,高速緩沖存儲器208就將第二更改過的寫命令236發(fā)送給地址映射器222(步驟408)。在本發(fā)明的一個(gè)實(shí)施例中,第二更改過的寫命令236包括(1)源終端ID(例如,服務(wù)CPU 104a的存儲器控制器110a的終端ID),在圖2中標(biāo)記為“S”;(2)事務(wù)ID(唯一的事務(wù)標(biāo)識符),圖2中標(biāo)記為“I”;(3)請求類型(例如,存儲器讀或?qū)?,圖2中標(biāo)記為“R”;和(4)從第一更改過的寫命令232a提取出的劃分-標(biāo)識地址1200,圖2中標(biāo)記為“p1,a[n:0]”。
      盡管上面為舉例起見關(guān)于核心206a對特定的事務(wù)進(jìn)行了說明,但其它核心206b-n也可以用相同的方式完成事務(wù)。例如,核心204n可以在線路214n上產(chǎn)生一個(gè)寫命令230n,響應(yīng)這個(gè)寫命令位代替電路212n可以在線路216n上讀取劃分ID寄存器210n的值。位代替電路212n可以在線路218n上發(fā)送第一更改過的寫命令232n,該命令由高速緩沖存儲器208以上述方式處理。高速緩沖存儲器208可以在線路224n上直接和核心204n通信。
      在本發(fā)明的一個(gè)實(shí)施例中第二更改過的寫命令236中包含的劃分-標(biāo)識地址被轉(zhuǎn)換成了系統(tǒng)地址。參考圖4B,示出了在本發(fā)明的一個(gè)實(shí)施例中執(zhí)行以進(jìn)行這種轉(zhuǎn)換的方法420的流程圖。例如,方法420可以在方法400(圖4A)的步驟408后執(zhí)行。
      CPU 104a包括地址映射器222,地址映射器222在線路220上與高速緩沖存儲器208相耦合并因此接收到第二更改過的寫命令236(步驟422)。地址映射器222將第二更改過的寫命令236中包含的劃分-標(biāo)識地址1200映射為(1)目的地終端ID(例如,控制對所請求的存儲器地址的訪問的存儲器控制器的終端ID),和(2)事務(wù)類型(步驟424)。事務(wù)類型的目的與初始的請求類型(例如,存儲器讀或?qū)?的目標(biāo)類似,不同之處在于請求類型用于結(jié)構(gòu)116上的事務(wù)。轉(zhuǎn)換請求類型為事務(wù)類型的技術(shù)對本領(lǐng)域的技術(shù)人員來說是眾所周知的。
      在本發(fā)明的一個(gè)實(shí)施例中,系統(tǒng)100中的每個(gè)CPU(例如,CPU104a-n)和系統(tǒng)100中的每個(gè)存儲器控制器110a-d都有唯一的終端標(biāo)識符(終端ID)。在這種實(shí)施例中,特定劃分中的特定物理地址可由物理地址、劃分的劃分ID以及控制存儲了該物理地址的存儲器的存儲器控制器的終端ID三者的組合唯一定址。進(jìn)一步注意到因?yàn)樵诮Y(jié)構(gòu)116上傳輸?shù)牡刂肥莿澐?標(biāo)識地址(即,包括物理地址和劃分ID兩者的地址),所以目標(biāo)存儲器控制器可以區(qū)分不同劃分中相同的物理地址。因此,在圖2中所示的實(shí)施例中,單個(gè)存儲器控制器可以控制分配給任意數(shù)量的劃分的存儲器。
      但是,應(yīng)該理解這種特定機(jī)制僅僅是一個(gè)示例,并不構(gòu)成對本發(fā)明的限制。其它尋址技術(shù)也可以和這里公開的技術(shù)結(jié)合在一起使用,這樣可能會需要終端標(biāo)識符、物理地址、系統(tǒng)地址、劃分標(biāo)識符或其它數(shù)據(jù)的不同組合來唯一定址特定的存儲單元。
      例如,地址映射器222可以維護(hù)一個(gè)將劃分-標(biāo)識地址映射到目的地終端ID和事務(wù)類型的地址映射238。地址映射器222可以用映射238(例如,可以實(shí)現(xiàn)成查找表)來執(zhí)行步驟424中的轉(zhuǎn)換。地址映射238不需要為每個(gè)劃分-標(biāo)識地址包含一條目。更確切地講,例如地址映射238可以將劃分-標(biāo)識地址的范圍(由它們的最高位標(biāo)識)映射到存儲頁或存儲器控制器。地址映射器222可以保證通過將這種請求映射到一個(gè)空條目而使得分配到一個(gè)劃分的處理器核心不能訪問另一個(gè)劃分中的存儲單元,并因此導(dǎo)致地址映射器222生成一個(gè)映射故障。
      地址映射器222產(chǎn)生第三更改過的寫命令240并將其發(fā)送到系統(tǒng)結(jié)構(gòu)116(步驟426)。第三更改過的寫命令240包括(1)源終端ID(S),事務(wù)ID(I),請求類型(R),以及來自第二更改過的命令236的劃分-標(biāo)識地址(p1,a[n:0]);和(2)步驟424中識別出的目的地終端ID(D)和事務(wù)類型(T)。系統(tǒng)結(jié)構(gòu)116包括一個(gè)路由器228,它使用本領(lǐng)域的技術(shù)人員眾所周知的技術(shù)將第三更改過的命令240發(fā)送給擁有指定的目的地終端ID的存儲器控制器。例如,路由器228可以維護(hù)一個(gè)將輸入端口和目的地終端ID對映射到輸出端口的映射244。
      當(dāng)路由器228在特定的輸入端口上接收到第三更改過的寫命令240時(shí),路由器使用輸入端口標(biāo)識和該第三更改過的寫命令240中包含的目的地終端ID來識別與存儲器控制器相耦合的輸出端口,該存儲器控制器控制對所請求的存儲器地址的訪問。路由器228在線路242上將第三更改過的寫命令240(或其中的變體)發(fā)送到識別出的存儲器控制器。隨后可以由目的地存儲器控制器用本領(lǐng)域的技術(shù)人員眾所周知的技術(shù)滿足第三更改過的寫命令240。
      當(dāng)路由器228在線路246上接收到一個(gè)進(jìn)入的事務(wù)時(shí),路由器228可以用本領(lǐng)域的技術(shù)人員眾所周知的技術(shù)在線路226上將該事務(wù)發(fā)送到高速緩沖存儲器。隨后可以由高速緩沖存儲器208處理進(jìn)入的事務(wù),并且如果必要的話,可以由核心206a-n中的一個(gè)或多個(gè)用常規(guī)技術(shù)加以處理。
      在本發(fā)明的另一個(gè)實(shí)施例中,提供了在可劃分計(jì)算機(jī)系統(tǒng)中把多個(gè)硬件資源分配給多個(gè)劃分的技術(shù)。將用一個(gè)示例闡明這個(gè)實(shí)施例,在這個(gè)示例中單個(gè)I/O控制器中的多個(gè)資源被分配給了多個(gè)劃分。例如,參考圖6A-6B示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的I/O控制器602的功能框圖。I/O控制器602分別通過I/O端口630a-b為與其相耦合的兩個(gè)I/O設(shè)備604a-b提供服務(wù)。現(xiàn)在將說明用于將第一I/O端口628a分配給第一劃分、將第二I/O端口628b分配給第二劃分、并由此將第一I/O設(shè)備604a分配給第一劃分、將第二I/O設(shè)備604b分配給第二劃分的技術(shù)的示例。
      例如,參考圖7,示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例在I/O端口628a-b和可劃分計(jì)算機(jī)系統(tǒng)100中的硬件劃分704a-d之間的映射702。映射702包括分別在I/O端口628a-b和劃分704a-b之間的映射702a-b。注意有兩個(gè)沒有映射到I/O端口628a-b的劃分704c-d。但是,其它I/O控制器(未示出)中的其它I/O端口可以被映射到劃分704c-d。盡管在圖7中所示的特定示例中有兩個(gè)I/O端口628a-b被分配給了兩個(gè)劃分704a-b,但在任意配置中可以有任意數(shù)量的I/O端口和任意數(shù)量的劃分被互相映射。
      I/O控制器602包括目的地譯碼器608,它驗(yàn)證(在線路610上)進(jìn)入的事務(wù)被定址到由I/O控制器602控制的I/O設(shè)備604a-b其中的一個(gè)。如果進(jìn)入的事務(wù)沒有被定址到I/O設(shè)備604a-b中的一個(gè),目的地譯碼器608不會進(jìn)一步在I/O控制器602內(nèi)傳送該事務(wù)。
      參考圖8,示出了在本發(fā)明的一個(gè)實(shí)施例中當(dāng)在線路610上接收到到來的事務(wù)612時(shí)由目的地譯碼器608執(zhí)行的方法800的流程圖。目的地譯碼器608接收到來的事務(wù)612(步驟802)。在本發(fā)明的一個(gè)實(shí)施例中,事務(wù)612包括(1)源終端標(biāo)識符(例如,發(fā)起事務(wù)612的設(shè)備的終端ID),在圖6A中表示為“S”;(2)要訪問的物理地址,在圖6A中表示為“a”;(3)事務(wù)類型(例如,讀或?qū)?,在圖6A中表示為“T”;以及(4)與該事務(wù)相關(guān)聯(lián)的數(shù)據(jù)(例如,如果事務(wù)612是一個(gè)寫命令則是要寫的數(shù)據(jù)),在圖6A中表示為“d”。
      目的地譯碼器608檢查事務(wù)612中的源終端ID以確定發(fā)送事務(wù)612的設(shè)備是否被分配給了I/O端口628a-b被分配到的劃分中的任意一個(gè)(步驟804)。如果事務(wù)612不是由這樣的設(shè)備發(fā)送,該事務(wù)不被授權(quán)訪問設(shè)備604a-b,并且目的地譯碼器608不會發(fā)送事務(wù)612到I/O設(shè)備604a-b(步驟806)。
      更具體地說,目的地譯碼器608可以維護(hù)有效源終端ID的一個(gè)列表614。列表614可以包含系統(tǒng)100中分配給了把I/O端口628a-b分配到的劃分704a-b中的任意一個(gè)的那些設(shè)備的源終端ID。目的地譯碼器608可以通過確定事務(wù)612中的源終端ID是否在列表614中并且如果該源終端ID不在列表614中隨即確定事務(wù)612不是來自適當(dāng)?shù)膭澐侄瓿刹襟E804。
      如果目的地譯碼器608在步驟804確定事務(wù)612來自適當(dāng)?shù)脑O(shè)備,目的地譯碼器608將源終端I D映射到與發(fā)送事務(wù)612的設(shè)備處在相同劃分中的I/O端口628a-b其中之一的劃分ID值(步驟808)。目的地譯碼器608可以維護(hù)一張表616或源終端標(biāo)識符到劃分ID寄存器值的其它映射。目的地譯碼器608因此可以通過用事務(wù)612中的源終端ID作為表616的索引并由此識別出對應(yīng)的劃分ID寄存器值而執(zhí)行步驟808。
      目的地譯碼器608產(chǎn)生第一更改過的事務(wù)620,它包括(1)步驟808中識別出的劃分ID寄存器值(p);(2)事務(wù)612中包含的物理地址(a);和(3)事務(wù)612中包含的數(shù)據(jù)(d)。目的地譯碼器608在線路618上發(fā)送第一更改過的事務(wù)620到事務(wù)路由器622(步驟810)。
      事務(wù)路由器622將事務(wù)620發(fā)送到I/O端口628a-b中被分配給了第一更改過的事務(wù)620中標(biāo)識出的劃分的那一個(gè)端口(步驟812)。更具體地說,事務(wù)路由器622識別出I/O端口628a-b中分配給第一個(gè)更改過的事務(wù)620中包含的劃分ID的一個(gè)端口(步驟814)。例如,事務(wù)路由器622可以包含一個(gè)將劃分ID映射到I/O端口628a-b的查找表,并且可以用該查找表完成步驟814。事務(wù)路由器622可以通過將劃分ID從第一更改過的事務(wù)620去掉而生成第二更改過的事務(wù),并隨后將第二更改過的事務(wù)發(fā)送給步驟814中識別出的設(shè)備(步驟816)。
      在本發(fā)明的一個(gè)實(shí)施例中,I/O端口628a-b可以(1)都分配給劃分704a;或(2)以圖7中所示的方式分別分配給劃分704a-b。為了使I/O控制器602也能夠?qū)崿F(xiàn)I/O端口628a-b的這種劃分,I/O控制器602包括了開關(guān)632。I/O設(shè)備604a通過線路630a與開關(guān)632相耦合,I/O設(shè)備604b通過線路630b與開關(guān)632相耦合。開關(guān)632接著通過線路630c與I/O端口628a相耦合。在本發(fā)明的一個(gè)實(shí)施例中,開關(guān)632在I/O設(shè)備604a和I/O端口628a之間創(chuàng)建了持久的直通連接。結(jié)果是,I/O設(shè)備604a通過I/O端口628a和I/O控制器602通信??梢耘渲檬聞?wù)路由器622以將與劃分704a相關(guān)聯(lián)的事務(wù)發(fā)送到I/O端口628a,并由此實(shí)現(xiàn)將I/O設(shè)備604a分配到劃分704a。
      如果端口628a-b都被分配給劃分704a,可以禁止I/O端口628b并設(shè)置開關(guān)632為第一設(shè)置,該設(shè)置將所有進(jìn)出I/O設(shè)備604b的通信的路線設(shè)定為通過I/O端口628a。如果I/O端口628a被分配給了劃分704a而I/O端口628b被分配給了劃分704b(如圖7中所示),那么可以啟用I/O端口628a并將開關(guān)632設(shè)置為第二設(shè)置,該設(shè)置將所有進(jìn)出I/O設(shè)備604b的通信的路線都設(shè)定為經(jīng)過I/O端口628b。注意以上述方式使用開關(guān)632僅僅是對事務(wù)譯碼并將其路由到一個(gè)特定端口的方式的一種示例,并不構(gòu)成對本發(fā)明的限制。
      返回方法800的步驟812,事務(wù)路由器622可以維護(hù)劃分ID值和相關(guān)聯(lián)的I/O端口的映射。例如,考慮I/O端口604a被映射到劃分704a并且I/O設(shè)備604b被映射到劃分704b的情況(如圖7所示)。這種情況下,如果第一更改過的事務(wù)620中的劃分ID標(biāo)識劃分704a,事務(wù)路由器622可以產(chǎn)生第二更改過的命令626a并在線路624a上將其發(fā)送給I/O端口628a,由此可以在線路630c上、通過開關(guān)632、然后在線路630a上將第二更改過的事務(wù)626a轉(zhuǎn)發(fā)給I/O設(shè)備604a。同樣,如果第一更改過的事務(wù)620中的劃分ID標(biāo)識劃分704b,事務(wù)路由器622可以產(chǎn)生第二更改過的命令626b并在線路624b上將第二更改過的事務(wù)626b發(fā)送給I/O端口628b,由此可以將第二更改過的事務(wù)626b在線路630b上轉(zhuǎn)發(fā)給I/O設(shè)備604b。注意圖7中所示的映射700,其中在端口628a-b和劃分702a-b之間存在一一映射,提供它僅僅是作為示例,并不構(gòu)成對本發(fā)明的限制。例如,這里公開的技術(shù)可以結(jié)合多端口到單劃分的映射一起使用,并且可以用物理地址的附加位作為劃分ID的一部分來實(shí)現(xiàn)。
      現(xiàn)在將描述用于啟用I/O設(shè)備604a-b以在I/O設(shè)備604a-b被分配給不同劃分時(shí)通過I/O控制器602執(zhí)行輸出通信的技術(shù)的示例。再次假定I/O端口628a(并且因此I/O設(shè)備604a)被映射到劃分704a而I/O端口628b(并由此I/O設(shè)備604b)被映射到劃分704b(如圖7所示)?,F(xiàn)在考慮由I/O設(shè)備604a在線路634a上產(chǎn)生一個(gè)輸出的事務(wù)636a(通過I/O端口628a)。事務(wù)636a包括物理地址(a)和數(shù)據(jù)(d)。
      I/O控制器602包括多個(gè)分別與I/O端口628a-b相關(guān)聯(lián)的劃分ID寄存器606a-b。尤其,劃分ID寄存器606a與I/O端口628a相關(guān)聯(lián)并代表映射702a(圖7)。同樣,劃分ID寄存器606b與I/O端口628b相關(guān)聯(lián)并代表映射702b。劃分ID寄存器606a-b中的每一個(gè)都包括至少足夠的位以區(qū)別I/O端口628a-b被分配到的劃分。
      劃分ID寄存器606a-b中的每一個(gè)都存儲一個(gè)唯一的劃分ID值,它唯一地標(biāo)識I/O端口628a-b中對應(yīng)的那一個(gè)被分配的劃分。例如,再次參考圖7中所示的示例,可以在劃分ID寄存器606a中存儲值0(二進(jìn)制00),由此表示I/O端口628a被分配給了劃分0(704a)。同樣,可以在劃分ID寄存器606b中存儲值1(二進(jìn)制01),由此表示I/O端口628b被分配給了劃分1(704b)??梢耘渲肐/O控制器602以使劃分ID寄存器606a-b中存儲的劃分ID值不能由運(yùn)行在計(jì)算機(jī)系統(tǒng)100上的操作系統(tǒng)改變。
      參考圖9,示出了當(dāng)由設(shè)備604a在線路636a上發(fā)送一個(gè)輸出事務(wù)636a時(shí)由根據(jù)本發(fā)明的一個(gè)實(shí)施例由位代替電路638a執(zhí)行的方法900的流程圖。位代替電路638a接收到該輸出事務(wù)636a(步驟902)。響應(yīng)接收到事務(wù)636a,位代替電路638a在線路640a上從劃分ID寄存器606a讀取劃分ID值(步驟904)。位代替電路638a將該劃分ID值寫入物理地址,由此產(chǎn)生一個(gè)劃分-標(biāo)識地址(步驟906)。
      例如,步驟906中產(chǎn)生的劃分-標(biāo)識地址可以有如圖12B所示的布局。圖12B中所示的示例性劃分-標(biāo)識地址1210是64位寬度。劃分-標(biāo)識地址1210的1212部分(位0-54)包含初始事務(wù)636a中包含的物理地址。在本發(fā)明的一個(gè)實(shí)施例中,位代替電路638a將從事務(wù)636a獲得的劃分ID值寫入劃分-標(biāo)識地址1210的1214部分(位55)(步驟906)。換句話話,位代替電路638a將劃分ID值追加到初始的物理地址上。因此包括1212和1214這兩個(gè)部分的1218部分無歧義地標(biāo)識由初始事務(wù)636a所指示的系統(tǒng)存儲器地址。劃分-標(biāo)識地址1200的1216部分(56-63位)不使用。1218部分因此表示地址1210的“使用部分”,因?yàn)閯澐諭D部分1214和物理地址1212部分的組合被用來指定系統(tǒng)100中的唯一地址。
      注意地址1210的劃分ID字段1214僅是1位寬,與地址1200(圖12A)的劃分ID字段1204(兩位)相反。地址1210的劃分ID字段1214的寬度只需要足以區(qū)別I/O端口628a-b被分配到的劃分。因?yàn)樵趫D6A-6B所示的例子中I/O端口628a-b被分配給了兩個(gè)端口,所以劃分ID字段1214只需要一位寬度。相反,地址1200(圖12A)的劃分ID字段1204是兩位寬,因?yàn)樗仨毮軌騾^(qū)分系統(tǒng)中的所有劃分504a-d。當(dāng)然,劃分ID字段1204和1214的所需最小寬度可以隨其需要表示的唯一劃分的數(shù)量而變化。
      圖12B中劃分-標(biāo)識地址1210的特定布局僅是出于示例目的而示出的,并不構(gòu)成對本發(fā)明的限制。更確切地講,任意大小、有任意布局的劃分-標(biāo)識地址都可以和本發(fā)明的實(shí)施例結(jié)合在一起使用。位代替電路638a產(chǎn)生第一更改過的事務(wù)642a,包括步驟906中產(chǎn)生的劃分-標(biāo)識地址(步驟908)。位代替電路638a在線路644a上發(fā)送第一更改過的事務(wù)642a給高速緩沖存儲器646(步驟910)。
      參考圖10,示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例由高速緩沖存儲器646響應(yīng)收到第一更改過的事務(wù)642a而執(zhí)行的方法1000的流程圖。高速緩沖存儲器646從位代替電路638a接收到第一更改過的事務(wù)642a(步驟1002)。高速緩沖存儲器646確定用高速緩沖存儲器行648中本地存儲的高速緩沖存儲器數(shù)據(jù)是否能夠滿足第一更改過的事務(wù)642a(步驟1004)。如果高速緩沖存儲器命中,高速緩沖存儲器646就在本地(即,在高速緩沖存儲器行648中)完成該事務(wù)(步驟1006)并且方法1000結(jié)束。數(shù)據(jù)被通過線路650從IO卡寫入高速緩沖存儲器。如果事務(wù)636a是一個(gè)讀命令,高速緩沖存儲器646可以在線路650上將讀出的值發(fā)送給設(shè)備604a。
      如果存在高速緩沖存儲器未命中,高速緩沖存儲器646就在線路654上將第二更改過的命令654發(fā)送給地址映射器656(步驟1008)。在本發(fā)明的一個(gè)實(shí)施例中,第二更改過的事務(wù)652包含來自第一更改過的事務(wù)642a的劃分ID值和物理地址。
      參考圖11,示出了在本發(fā)明的一個(gè)實(shí)施例中當(dāng)?shù)刂酚成淦?56接收到第二更改過的事務(wù)652時(shí)由它所執(zhí)行的方法1100的流程圖。地址映射器656在線路654接收到第二更改過的事務(wù)652(步驟1102)。地址映射器656維護(hù)地址劃分ID對到目的地終端ID的映射658。地址映射器656用映射658將第二更改過的事務(wù)652中的劃分ID和地址映射為目的地終端ID(步驟1104)。
      地址映射器656產(chǎn)生第三更改過的事務(wù)670并在線路672上將其發(fā)送到系統(tǒng)結(jié)構(gòu)116(步驟1106)。第三更改過的事務(wù)670包括(1)在步驟1104中識別出的目的地終端ID;(2)來自第二更改過的事務(wù)652的物理地址;和(3)來自第二更改過的事務(wù)652的數(shù)據(jù)(如果有的話)。注意第三更改過的事務(wù)670不包括在步驟904中識別出的劃分ID(圖9),因?yàn)樵趫D6A-6B中所示的實(shí)施例中劃分ID只用來在不同劃分間作內(nèi)部區(qū)分(即,在I/O控制器602的范圍內(nèi))。
      如上所述,路由器228用上面關(guān)于圖2所描述的技術(shù)將第三更改過的事務(wù)670路由到存儲器控制器或者路由到具有第三更改過的事務(wù)670中包含的目的地終端ID的其它設(shè)備。
      盡管上述示例涉及劃分704a和對應(yīng)的I/O端口628a,但相同或相似的技術(shù)也可以和劃分704b和對應(yīng)的I/O端口628b結(jié)合在一起使用。例如,位代替電路638b可以在線路634b上從設(shè)備604b接收輸出事務(wù)636b,并在其中替換劃分ID寄存器606b的值,由此產(chǎn)生第一更改過的事務(wù)642b并在線路644b上發(fā)送它。隨后可以上述方式處理第一更改過的事務(wù)642b。
      下面是本發(fā)明的一個(gè)或多個(gè)優(yōu)勢。
      現(xiàn)有的可劃分計(jì)算機(jī)體系結(jié)構(gòu)通常以每個(gè)芯片為基礎(chǔ)給劃分分配資源。換句話說,在常規(guī)的可劃分計(jì)算機(jī)中,單個(gè)芯片上的所有資源(例如處理器核心)必須被分配給最多一個(gè)劃分。隨著單個(gè)芯片上資源的數(shù)量和能力的增長,這種按芯片資源分配對可劃分計(jì)算機(jī)系統(tǒng)中可以給劃分分配資源的粒度強(qiáng)加了局限性。這種局限性限制了以對資源進(jìn)行最佳利用的方式給劃分動(dòng)態(tài)分配資源的程度。
      這里公開的技術(shù)通過提供以子-芯片為基礎(chǔ)分配資源的能力而解決了這個(gè)問題。將單個(gè)芯片上的多個(gè)資源分配給多個(gè)劃分的能力提高了響應(yīng)變化的條件而最優(yōu)地分配這種資源的水平。子-芯片劃分能夠讓可劃分計(jì)算機(jī)系統(tǒng)充分利用計(jì)算機(jī)芯片設(shè)計(jì)的當(dāng)前趨勢(即在單個(gè)芯片上提供越來越多功能)帶來的成本降低和尺寸減少的優(yōu)勢,同時(shí)仍然提供用戶所需的細(xì)致的資源分配。
      此外,本發(fā)明的實(shí)施例使得對現(xiàn)有的電路進(jìn)行相對局部化的更改就能夠?qū)崿F(xiàn)子-芯片劃分,由此使得現(xiàn)有電路的實(shí)質(zhì)性部分不用修改就能和本發(fā)明的實(shí)施例結(jié)合在一起使用。例如,在圖2中所示的系統(tǒng)中,核心204a-n、高速緩沖存儲器208和結(jié)構(gòu)116可以是現(xiàn)有技術(shù)的部件。結(jié)果是,可以相對簡單、快速、廉價(jià)地實(shí)現(xiàn)本發(fā)明的實(shí)施例。
      這里所公開的技術(shù)的另一個(gè)優(yōu)勢是位代替電路212a-n和638a-b可以通過防止對應(yīng)劃分中的操作系統(tǒng)訪問其它劃分中的地址而加強(qiáng)劃分間的安全性。如上所述,可以通過覆蓋操作系統(tǒng)向它產(chǎn)生的地址的高位(例如,地址1200中的1204和1206部分,圖12A;以及地址1210中1214和1216部分,圖12B)中寫入的任何值而提供這種安全性。這里所公開的技術(shù)由此提供了一定程度的由硬件保證的劃分間安全性,這種安全性不會被惡意的或設(shè)計(jì)不當(dāng)?shù)能浖茐摹?br> 將會理解盡管前面已經(jīng)根據(jù)特定的實(shí)施例說明了本發(fā)明,但僅僅是為說明起見而提供了前面的實(shí)施例,它們并不限制或定義本發(fā)明的范圍。各種不同的其它實(shí)施例,包括但不限于下列實(shí)施例,也在權(quán)利要求的范圍內(nèi)。例如,這里所描述的元件和部件可以被進(jìn)一步劃分成額外的部件或結(jié)合在一起形成更少的部件而用于完成相同功能。
      這里術(shù)語“資源”指的是計(jì)算機(jī)系統(tǒng)中的硬件資源,例如處理器核心(圖2)和I/O端口(圖6A-6B)。一個(gè)芯片可以包含一個(gè)或多個(gè)硬件資源。盡管這里提供了處理器核心和I/O端口作為本發(fā)明的實(shí)施例中可以被單獨(dú)分配給實(shí)施例劃分的硬件資源的例子,但也可以使用本發(fā)明的實(shí)施例在以子芯片為基礎(chǔ)上分配其它種類的硬件資源給劃分。此外,由圖2中的示例說明的技術(shù)被應(yīng)用到了多個(gè)CPU核心206a-n,但這種技術(shù)也可以應(yīng)用到I/O端口或任意其它種類的資源。同樣,盡管由圖6A-6B中的示例說明的技術(shù)被應(yīng)用到了多個(gè)I/O端口628a-b,但這種技術(shù)也可以應(yīng)用到CPU核心或任意其它種類的資源。
      通常,這里所公開的技術(shù)可以用在包括高速緩沖存儲器的系統(tǒng)中以在多個(gè)劃分之間分配高速緩沖存儲器。此外,可以用這里所公開的技術(shù)將用存儲映射事務(wù)訪問的任意資源分配給可劃分計(jì)算機(jī)系統(tǒng)中的特定劃分。
      例如,通用事件寄存器(general purpose event,GPE)通常被分配給特定的劃分。因此,一個(gè)特定的GPE通常在它被分配到的劃分的地址空間范圍內(nèi)是可尋址的??梢圆捎眠@里所公開的技術(shù)使得能夠以唯一的系統(tǒng)(結(jié)構(gòu))地址在系統(tǒng)結(jié)構(gòu)116上訪問每個(gè)劃分的GPE。
      盡管上面提供的特定示例涉及分配單個(gè)芯片(集成電路)上的多個(gè)資源給多個(gè)劃分,但這里所公開的技術(shù)并不限于只和單個(gè)芯片上的資源一起使用。更確切地講,更普遍的是,這里所公開的技術(shù)可以用來分配一個(gè)計(jì)算機(jī)系統(tǒng)中的多個(gè)資源給該計(jì)算機(jī)系統(tǒng)中的多個(gè)劃分。
      盡管在圖1的單元板102a-d中的每一個(gè)當(dāng)中只示出了單個(gè)存儲器控制器,但這并不是本發(fā)明的必要條件。更確切地講,一個(gè)單元板可以包含多個(gè)存儲器控制器,每個(gè)存儲器控制器可以有它自己的終端ID。本領(lǐng)域的技術(shù)人員將理解如何在單個(gè)單元板上包括多個(gè)存儲器控制器的系統(tǒng)中實(shí)現(xiàn)本發(fā)明的實(shí)施例。
      盡管在圖2所示的示例中,核心204a發(fā)出一個(gè)存儲器寫命令230a,但存儲器寫命令230a只是存儲器訪問請求的一個(gè)示例,而存儲器訪問請求又僅僅是這里所公開的技術(shù)可以應(yīng)用的事務(wù)的一個(gè)示例。
      盡管劃分ID值被存儲在圖2中的劃分ID寄存器值210a-n,但可以任何方式表示和存儲劃分ID值。例如,劃分ID值不需要被各個(gè)存儲在單獨(dú)的寄存器中,并且不需要用這里所描述的特定的編號方案表示。
      盡管這里結(jié)合對稱多處理器計(jì)算機(jī)體系結(jié)構(gòu)(SMP)說明了本發(fā)明的多個(gè)實(shí)施例,但本發(fā)明的實(shí)施例并不限于只和SMP一起使用。例如,本發(fā)明的實(shí)施例可以和NUMA(none-uniform memory access,非均勻存儲器訪問)多處理器計(jì)算機(jī)體系結(jié)構(gòu)一起使用。
      盡管圖3中示出了四個(gè)單元板102a-d,但這并不是本發(fā)明的必要條件。更確切地說,這里所公開的技術(shù)可以和有任意數(shù)量單元板的多處理器計(jì)算機(jī)系統(tǒng)結(jié)合在一起使用。此外,系統(tǒng)中的每個(gè)單元板可以有任意數(shù)量的處理器(包括1個(gè))。這里所用的術(shù)語“單元板”不限于任何特定種類的單元板,相反,通常指的是允許一組一個(gè)或多個(gè)處理器通過像代理芯片這樣的接口在系統(tǒng)結(jié)構(gòu)上通信的電子和/或機(jī)械部件的任意集合。
      盡管在圖1中結(jié)構(gòu)代理芯片114a和存儲器控制器110被描繪成獨(dú)立且不同的部件,但這并不是本發(fā)明的必要條件。更確切地講,可以將結(jié)構(gòu)代理芯片114a和存儲器控制器110集成到單個(gè)芯片封裝中。
      權(quán)利要求
      1.一種被劃分成多個(gè)劃分(504a-b,704a-b)的可劃分計(jì)算機(jī)系統(tǒng)(100),該計(jì)算機(jī)系統(tǒng)包括集成電路(104a,602),該集成電路(104a,602)包括分配給多個(gè)劃分中的第一劃分(504a,704a)的第一硬件資源(206a,628a)和分配給多個(gè)劃分中不同于第一劃分(504a,704a)的第二劃分(504b,704b)的第二硬件資源(206b,628b)。
      2.權(quán)利要求1的計(jì)算機(jī)系統(tǒng)(100),其中該集成電路包括處理器(104a),并且其中第一和第二硬件資源分別包括第一(206a)和第二(206b)處理器核心。
      3.權(quán)利要求1的計(jì)算機(jī)系統(tǒng)(100),其中該集成電路包括輸入/輸出控制器(602),并且其中第一和第二硬件資源分別包括第一(628a)和第二(628b)輸入/輸出端口。
      4.權(quán)利要求1的計(jì)算機(jī)系統(tǒng)(100),其中第一硬件資源包括用于輸出分配給多個(gè)劃分中的第一劃分(504a,704a)的第一地址空間中的第一物理地址的裝置(204a,604a),并且其中該計(jì)算機(jī)系統(tǒng)(100)進(jìn)一步包括第一劃分標(biāo)識裝置(210a,606a),用于存儲標(biāo)識該多個(gè)劃分中的第一劃分(504a,704a)的第一劃分標(biāo)識值;和第一位代替裝置(212a,638a),其與第一硬件資源(206a,628a)以及第一劃分標(biāo)識裝置(210a,606a)相耦合,用于通過將第一劃分標(biāo)識地址存儲在該第一物理地址中至少一個(gè)部分而產(chǎn)生第一劃分-標(biāo)識地址。
      5.一種用在被劃分成多個(gè)劃分(504a-d,704a-d)的可劃分計(jì)算機(jī)系統(tǒng)(100)中的設(shè)備,該設(shè)備包括用于接收第一事務(wù)(230a,636a)的裝置(212a,638a),該事務(wù)包括分配給了在該多個(gè)劃分(504a-d,704a-d)中所選擇的一個(gè)劃分的地址空間中的物理地址;和用于通過將劃分標(biāo)識值存儲在該物理地址的至少部分空間中而產(chǎn)生劃分-標(biāo)識地址的裝置(212a,638a)。
      6.一種用在被劃分成多個(gè)劃分(704a-d)的可劃分計(jì)算機(jī)系統(tǒng)(100)中的設(shè)備,其中該多個(gè)劃分(704a-d)中的第一劃分(704a)與第一劃分標(biāo)識值相關(guān)聯(lián),該多個(gè)劃分(704a-d)中的第二劃分(704b)與第二劃分標(biāo)識值相關(guān)聯(lián),該設(shè)備包括用于接收包括源終端標(biāo)識符的事務(wù)(612)的裝置(608),該源終端標(biāo)識符標(biāo)識從其接收到進(jìn)入的事務(wù)(612)的那個(gè)源設(shè)備;用于根據(jù)該源終端標(biāo)識符識別第三劃分標(biāo)識值的裝置(608,616),第三劃分標(biāo)識值標(biāo)識該多個(gè)劃分(704a-d)中的第一劃分(704a)和第二劃分(704b)之一;用于在該第三劃分標(biāo)識值等于第一劃分標(biāo)識值的情況下將事務(wù)的至少一些(626a)發(fā)送到分配給了該多個(gè)劃分中的第一劃分(704a)的第一硬件資源(604a)的裝置(622);用于在該第三劃分標(biāo)識值等于第二劃分標(biāo)識值的情況下將事務(wù)的至少一些(626b)發(fā)送到分配給了該多個(gè)劃分中的第二劃分(704b)的第二硬件資源(604b)的裝置(622)。
      7.一種用在被劃分成多個(gè)劃分(704a-d)的可劃分計(jì)算機(jī)系統(tǒng)(100)中的方法(800),其中該多個(gè)劃分中的第一(704a)與第一劃分標(biāo)識值相關(guān)聯(lián),該多個(gè)劃分中的第二(704b)與第二劃分標(biāo)識值相關(guān)聯(lián),該方法包括(A)接收(802)一包括源終端標(biāo)識符的事務(wù)(612),該源終端標(biāo)識符標(biāo)識從其接收到進(jìn)入的事務(wù)(612)的那個(gè)源設(shè)備;(B)根據(jù)該源終端標(biāo)識符識別(808)第三劃分標(biāo)識值,第三劃分標(biāo)識值標(biāo)識該多個(gè)劃分(704a-d)中的第一劃分(704a)和第二劃分(704b)之一;(C)如果該第三劃分標(biāo)識值等于第一劃分標(biāo)識值,將事務(wù)(612)的至少一些(626a)發(fā)送(816)到分配給了該多個(gè)劃分(704a-d)的第一劃分(704a)的第一硬件資源(628a);(D)如果該第三劃分標(biāo)識值等于第二劃分標(biāo)識值,將事務(wù)(612)的至少一些(626b)發(fā)送(816)到分配給了該多個(gè)劃分(704a-d)的第二劃分(704b)的第二硬件資源(628b)。
      全文摘要
      提供了用于在可劃分計(jì)算機(jī)系統(tǒng)(100)中將芯片上的多個(gè)資源分配給多個(gè)劃分的技術(shù)。在一個(gè)實(shí)施例中,分配給了第一劃分的資源(206a)產(chǎn)生一分配給該第一劃分的地址空間(302)中的物理地址。劃分標(biāo)識值(210a)標(biāo)識該第一劃分。該第一劃分劃分值(210a)存儲在該第一物理地址中以產(chǎn)生一劃分-識別地址(306),它可被發(fā)送(426)給系統(tǒng)結(jié)構(gòu)(116)。在另一個(gè)實(shí)施例中,接收(802)事務(wù)(612),包括標(biāo)識發(fā)送該事務(wù)的源設(shè)備的源終端標(biāo)識符。根據(jù)該源終端標(biāo)識符確定(802)該源設(shè)備是否和該多個(gè)資源中的任何資源被分配給了相同的劃分。如果該源設(shè)備被這樣分配了,就將該事務(wù)發(fā)送到與該源設(shè)備分配給了相同的劃分的資源(816)。
      文檔編號G06F9/46GK1725183SQ20051008753
      公開日2006年1月25日 申請日期2005年7月22日 優(yōu)先權(quán)日2004年7月23日
      發(fā)明者R·赫雷爾, G·J·小考夫曼, J·A·莫里森 申請人:惠普開發(fā)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1