專利名稱:用于測(cè)試實(shí)時(shí)軟件的熱調(diào)節(jié)控制的方法、系統(tǒng)和處理器的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)一般地涉及對(duì)熱管理的使用。更特別地,本申請(qǐng)涉及一種用于測(cè)試實(shí)時(shí)軟件的熱調(diào)節(jié)控制的計(jì)算機(jī)實(shí)現(xiàn)的方法、數(shù)據(jù)處理系統(tǒng)和處理器。
背景技術(shù):
第一代異質(zhì)Cell Broadband EngineTM(BE)處理器是包括一個(gè)64比特的Power PC處理器內(nèi)核和八個(gè)單指令多數(shù)據(jù)(SIMD)協(xié)處理器內(nèi)核的多內(nèi)核芯片,能夠進(jìn)行大規(guī)模浮點(diǎn)處理,針對(duì)運(yùn)算密集型工作負(fù)載和寬帶富媒體應(yīng)用而進(jìn)行了優(yōu)化。高速存儲(chǔ)控制器和高帶寬總線接口也集成到芯片上。Cell BE的突破性多內(nèi)核體系結(jié)構(gòu)和超高速通信能力在很多情況下以最新PC處理器性能的10倍遞送大大改善的實(shí)時(shí)響應(yīng)。Cell BE是操作系統(tǒng)中立的并同時(shí)支持多個(gè)操作系統(tǒng)。這種類型的處理器的應(yīng)用的范圍可以從具有顯著增強(qiáng)的真實(shí)感的下一代游戲系統(tǒng),到形成家庭數(shù)字媒體和流式傳送內(nèi)容中心(hub)的系統(tǒng),到用于開發(fā)和分布數(shù)字內(nèi)容的系統(tǒng),并且到加速可視化和超級(jí)計(jì)算應(yīng)用的系統(tǒng)。
現(xiàn)在的多內(nèi)核處理器常常受到熱考慮的限制。典型的解決方案包括冷卻和電源管理。冷卻可能是昂貴的并且/或者難以整合。功率管理一般是粗略的措施,作為對(duì)達(dá)到熱限度的響應(yīng),對(duì)處理器的很大一部分或整個(gè)處理器進(jìn)行“調(diào)節(jié)”。諸如熱管理之類的其他技術(shù)通過(guò)只調(diào)節(jié)超過(guò)給定溫度的單元來(lái)幫助實(shí)現(xiàn)這些粗略措施。但是,多數(shù)熱管理技術(shù)會(huì)影響應(yīng)用的實(shí)時(shí)保證。因此,提供熱管理解決方案是有益的,該解決方案為處理器提供一種方法,用以在即使出現(xiàn)需要調(diào)節(jié)處理器的熱狀況的情況下也保證應(yīng)用的實(shí)時(shí)性。在不能滿足實(shí)時(shí)保證的情況下,通知應(yīng)用管理者使得可以實(shí)現(xiàn)糾正措施。
發(fā)明內(nèi)容
說(shuō)明性實(shí)施例的不同方面提供了一種用于測(cè)試實(shí)時(shí)軟件的熱調(diào)節(jié)控制的計(jì)算機(jī)實(shí)現(xiàn)的方法、數(shù)據(jù)處理系統(tǒng)和處理器。說(shuō)明性實(shí)施例接收至少一個(gè)熱控制設(shè)置。說(shuō)明性實(shí)施例使用該至少一個(gè)熱控制設(shè)置將熱管理系統(tǒng)設(shè)置為測(cè)試模式,其中測(cè)試模式表明使用熱控制設(shè)置的熱調(diào)節(jié)控制。說(shuō)明性實(shí)施例在測(cè)試模式下執(zhí)行實(shí)時(shí)軟件,并且測(cè)試在該測(cè)試模式下是否滿足與該實(shí)時(shí)軟件相關(guān)聯(lián)的實(shí)時(shí)期限。作為對(duì)實(shí)時(shí)軟件滿足實(shí)時(shí)期限的響應(yīng),說(shuō)明性實(shí)施例將該至少一個(gè)熱控制設(shè)置記錄為通過(guò)的熱控制設(shè)置。
說(shuō)明性實(shí)施例確定是否還存在至少一個(gè)可以測(cè)試實(shí)時(shí)軟件的具有增加的調(diào)節(jié)的熱控制設(shè)置。作為對(duì)存在增加的熱控制設(shè)置的響應(yīng),說(shuō)明性實(shí)施例使用增加的調(diào)節(jié)設(shè)置第二次執(zhí)行并測(cè)試實(shí)時(shí)軟件。
作為對(duì)軟件程序不滿足實(shí)時(shí)期限的響應(yīng),說(shuō)明性實(shí)施例將至少一個(gè)熱控制設(shè)置記錄為失敗的熱控制設(shè)置。
說(shuō)明性實(shí)施例確定是否還存在至少一個(gè)可以測(cè)試實(shí)時(shí)軟件的具有減少的調(diào)節(jié)設(shè)置的熱控制設(shè)置。作為對(duì)存在減少的熱控制設(shè)置的響應(yīng),說(shuō)明性實(shí)施例使用減少的調(diào)節(jié)設(shè)置第二次執(zhí)行并測(cè)試實(shí)時(shí)軟件。
說(shuō)明性實(shí)施例中的測(cè)試模式可以指定熱管理系統(tǒng)的始終調(diào)節(jié)狀態(tài)或熱管理系統(tǒng)的隨機(jī)調(diào)節(jié)狀態(tài)。隨機(jī)調(diào)節(jié)狀態(tài)注入隨機(jī)熱事件以更真實(shí)地模擬調(diào)節(jié)的相互作用和軟件的執(zhí)行。
熱控制設(shè)置可以包括要被初始化的調(diào)節(jié)量和針對(duì)要被初始化的測(cè)試模式的持續(xù)時(shí)間。該要被初始化的調(diào)節(jié)量可以是單元停止的時(shí)間與該單元運(yùn)行的時(shí)間的百分比。單元停止的時(shí)間和該單元運(yùn)行的時(shí)間可以是根據(jù)比例寄存器的值來(lái)縮放的。針對(duì)要被初始化的調(diào)節(jié)模式的持續(xù)時(shí)間可以是單元停止和運(yùn)行的實(shí)際時(shí)鐘周期數(shù)。
通過(guò)或失敗的熱控制設(shè)置可以存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)中。測(cè)試模式可以在熱管理控制寄存器中設(shè)置。集成電路可以是異質(zhì)多內(nèi)核處理器。
在所附權(quán)利要求中闡明了確信是說(shuō)明性實(shí)施例所特有的新穎特征。但是,在結(jié)合附圖閱讀時(shí),參考下面對(duì)說(shuō)明性實(shí)施例的詳細(xì)描述,可以最好地理解說(shuō)明性實(shí)施例本身以及其優(yōu)選的使用模式、進(jìn)一步的目的及優(yōu)勢(shì),其中圖1描述了可以實(shí)現(xiàn)說(shuō)明性實(shí)施例各方面的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)的圖示;圖2描述了可以實(shí)現(xiàn)說(shuō)明性實(shí)施例各方面的數(shù)據(jù)處理系統(tǒng)的框圖;圖3描述了可以實(shí)現(xiàn)說(shuō)明性實(shí)施例各方面的Cell BE芯片的示例性示圖;圖4示出了根據(jù)說(shuō)明性實(shí)施例的示例性熱管理系統(tǒng);圖5描述了根據(jù)說(shuō)明性實(shí)施例的溫度曲線圖以及可能發(fā)生中斷和動(dòng)態(tài)調(diào)節(jié)的各個(gè)點(diǎn);圖6描述了根據(jù)說(shuō)明性實(shí)施例的用于記錄最大溫度的操作的流程圖;圖7描述了根據(jù)另一個(gè)說(shuō)明性實(shí)施例的用于通過(guò)性能監(jiān)控來(lái)跟蹤熱數(shù)據(jù)的操作的流程圖;圖8A和圖8B描述了根據(jù)另外的說(shuō)明性實(shí)施例的針對(duì)高級(jí)熱中斷產(chǎn)生的操作的流程圖;圖9描述了根據(jù)另外的說(shuō)明性實(shí)施例的用于在熱管理系統(tǒng)中支持深度節(jié)能模式和部分良好的操作的流程圖;圖10描述了根據(jù)另外的說(shuō)明性實(shí)施例的針對(duì)使熱感知軟件應(yīng)用的實(shí)時(shí)測(cè)試能夠與溫度相獨(dú)立的熱調(diào)節(jié)控制特征的操作的流程圖;圖11描述了根據(jù)另外的說(shuō)明性實(shí)施例的用于實(shí)現(xiàn)對(duì)中斷等待時(shí)間影響最小的熱調(diào)節(jié)控制的操作的流程圖;圖12描述了根據(jù)另外的說(shuō)明性實(shí)施例的用于熱調(diào)節(jié)中的滯后的操作的流程圖;以及圖13描述了根據(jù)另外的說(shuō)明性實(shí)施例的用于實(shí)現(xiàn)熱調(diào)節(jié)邏輯的操作的流程圖。
具體實(shí)施例方式
說(shuō)明性實(shí)施例涉及用于測(cè)試實(shí)時(shí)軟件的熱調(diào)節(jié)控制。圖1-圖2被提供為可以實(shí)現(xiàn)說(shuō)明性實(shí)施例的數(shù)據(jù)處理環(huán)境的示例性示圖。應(yīng)當(dāng)理解,圖1-圖2只是示例性的,并非旨在明確或暗示任意關(guān)于可以實(shí)現(xiàn)實(shí)施例各方面的環(huán)境的限制。在不偏離說(shuō)明性實(shí)施例的精神和范圍的情況下,可以對(duì)所描述的環(huán)境進(jìn)行很多修改。
現(xiàn)在參考附圖,圖1描述了可以實(shí)現(xiàn)說(shuō)明性實(shí)施例各方面的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)的圖示。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是可以實(shí)現(xiàn)說(shuō)明性實(shí)施例的計(jì)算機(jī)網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)102,該網(wǎng)絡(luò)102是一種用于在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起的各種設(shè)備和計(jì)算機(jī)之間提供通信鏈路的媒介。網(wǎng)絡(luò)102可以包括諸如線纜、無(wú)線通信鏈路或光纖電纜之類的連接。
在所描述的示例中,服務(wù)器104和服務(wù)器106連接到網(wǎng)絡(luò)102和隨之的存儲(chǔ)單元108。另外,客戶端110、112和114連接到網(wǎng)絡(luò)102。這些客戶端110、112和114可以是例如個(gè)人計(jì)算機(jī)或網(wǎng)絡(luò)計(jì)算機(jī)。在所描述的示例中,服務(wù)器104向客戶端110、112和114提供諸如啟動(dòng)文件、操作系統(tǒng)映像和應(yīng)用之類的數(shù)據(jù)。在該示例中,客戶端110、112和114是服務(wù)器104的客戶端。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100可以包括附加的服務(wù)器、客戶端和沒(méi)有示出的其他設(shè)備。
在所描述的示例中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是具有網(wǎng)絡(luò)102的因特網(wǎng),網(wǎng)絡(luò)102表示使用傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)協(xié)議組來(lái)相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的全球集合。在因特網(wǎng)的中心是主節(jié)點(diǎn)或主機(jī)之間的高速數(shù)據(jù)通信線路骨干,包括數(shù)以千計(jì)的商業(yè)計(jì)算機(jī)系統(tǒng)、政府計(jì)算機(jī)系統(tǒng)、教育計(jì)算機(jī)系統(tǒng)和其他對(duì)數(shù)據(jù)和消息進(jìn)行路由的計(jì)算機(jī)系統(tǒng)。當(dāng)然,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100還可以實(shí)現(xiàn)為多種不同類型的網(wǎng)絡(luò),諸如內(nèi)網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。圖1旨在作為一個(gè)示例,而不是作為對(duì)不同說(shuō)明性實(shí)施例的體系結(jié)構(gòu)限制。
現(xiàn)在參考圖2,示出了可以實(shí)現(xiàn)說(shuō)明性實(shí)施例各方面的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是諸如圖1中的服務(wù)器104或客戶端110之類的計(jì)算機(jī)的示例,實(shí)現(xiàn)說(shuō)明性實(shí)施例的處理的計(jì)算機(jī)可用代碼或指令可以位于該計(jì)算機(jī)中。
在所描述的示例中,數(shù)據(jù)處理系統(tǒng)200采用中心體系結(jié)構(gòu),包括北橋和存儲(chǔ)控制器中心(MCH)202以及南橋和輸入/輸出(I/O)控制器中心(ICH)204。處理單元206、主存儲(chǔ)器208和圖形處理器210連接到北橋和存儲(chǔ)控制器中心202。圖形處理器210可以通過(guò)加速圖形端口(AGP)連接到北橋和存儲(chǔ)控制器中心202。
在所描述的示例中,LAN適配器212連接到南橋和I/O控制器中心204。音頻適配器216、鍵盤和鼠標(biāo)適配器220、調(diào)制解調(diào)器222、只讀存儲(chǔ)器(ROM)224、硬盤驅(qū)動(dòng)器(HDD)226、CD-ROM驅(qū)動(dòng)器230、通用串行總線(USB)端口和其他通信端口232、以及PCI/PCIe設(shè)備234通過(guò)總線238和總線240連接到南橋和I/O控制器中心204。PCI/PCIe設(shè)備可以包括例如以太網(wǎng)適配器、插入卡和筆記本計(jì)算機(jī)的PC卡。PCI使用卡總線控制器,而PCIe則不使用。ROM 224可以是例如閃速二進(jìn)制輸入/輸出系統(tǒng)(BIOS)。
硬盤驅(qū)動(dòng)器226和CD-ROM驅(qū)動(dòng)器230通過(guò)總線240連接到南橋和I/O控制器中心204。硬盤驅(qū)動(dòng)器226和CD-ROM驅(qū)動(dòng)器230可以使用例如集成驅(qū)動(dòng)電子設(shè)備(IDE)或串行高級(jí)技術(shù)附件(SATA)接口。超級(jí)I/O(SIO)設(shè)備236可以連接到南橋和I/O控制器中心204。
操作系統(tǒng)在處理單元206上運(yùn)行并且調(diào)整和提供對(duì)圖2中的數(shù)據(jù)處理系統(tǒng)200內(nèi)的各種組件的控制。作為客戶端,操作系統(tǒng)可以是市面上有售的操作系統(tǒng),諸如MicrosoftWindowsXP(Microsoft和Windows是微軟公司在美國(guó)、其他國(guó)家或同時(shí)在美國(guó)和其他國(guó)家的商標(biāo))。諸如JavaTM編程系統(tǒng)之類的面向?qū)ο缶幊滔到y(tǒng)可以結(jié)合操作系統(tǒng)而運(yùn)行,并提供從在數(shù)據(jù)處理系統(tǒng)200上執(zhí)行的Java程序或應(yīng)用對(duì)操作系統(tǒng)的調(diào)用(Java是Sun微系統(tǒng)公司在美國(guó)、其他國(guó)家或同時(shí)在美國(guó)和其他國(guó)家的商標(biāo))。
作為服務(wù)器,數(shù)據(jù)處理系統(tǒng)200可以是例如運(yùn)行高級(jí)交互執(zhí)行(AIX)操作系統(tǒng)或LINUX操作系統(tǒng)的IBM eServerTMpSeries計(jì)算機(jī)系統(tǒng)(eServer、pSeries和AIX是國(guó)際商業(yè)機(jī)器公司在美國(guó)、其他國(guó)家或同時(shí)在美國(guó)和其他國(guó)家的商標(biāo),而Linux是Linux Torvalds在美國(guó)、其他國(guó)家或同時(shí)在美國(guó)和其他國(guó)家的商標(biāo))。數(shù)據(jù)處理系統(tǒng)200可以是在處理單元206中包括多個(gè)處理器的對(duì)稱多處理器(SMP)系統(tǒng)。作為選擇,可以采用單處理器系統(tǒng)。
操作系統(tǒng)、面向?qū)ο蟮木幊滔到y(tǒng)以及應(yīng)用或程序的指令位于諸如硬盤驅(qū)動(dòng)器226之類的存儲(chǔ)設(shè)備上,并且可以被載入主存儲(chǔ)器208以供處理單元206執(zhí)行。說(shuō)明性實(shí)施例的處理由處理單元206使用計(jì)算機(jī)可用程序代碼來(lái)執(zhí)行,這些代碼可以位于諸如主存儲(chǔ)器208、只讀存儲(chǔ)器224之類的存儲(chǔ)器中,或位于一個(gè)或多個(gè)外圍設(shè)備226和230中。
本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,根據(jù)不同的實(shí)現(xiàn),圖1-圖2中的硬件可以變化??梢允褂弥T如閃速存儲(chǔ)器、等效非易失性存儲(chǔ)器或光盤驅(qū)動(dòng)器等其他內(nèi)部硬件或外圍設(shè)備來(lái)補(bǔ)充或代替圖1-圖2中所描述的硬件。同樣,說(shuō)明性實(shí)施例的處理還可以應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。
在一些說(shuō)明性示例中,數(shù)據(jù)處理系統(tǒng)200可以是個(gè)人數(shù)字助理(PDA),該個(gè)人數(shù)字助理配置有閃速存儲(chǔ)器以提供用于存儲(chǔ)操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)的非易失性存儲(chǔ)器。
總線系統(tǒng)可以包括一個(gè)或多個(gè)總線,諸如圖2中示出的總線238或總線240。當(dāng)然,可以使用任意類型的通信架構(gòu)或體系結(jié)構(gòu)來(lái)實(shí)現(xiàn)總線系統(tǒng),該架構(gòu)或體系結(jié)構(gòu)提供對(duì)附在該架構(gòu)或體系結(jié)構(gòu)上的不同組件或設(shè)備之間的數(shù)據(jù)的傳送。通信單元可以包括一個(gè)或多個(gè)用于發(fā)送或接收數(shù)據(jù)的設(shè)備,諸如圖2的調(diào)制解調(diào)器222或網(wǎng)絡(luò)適配器212。存儲(chǔ)器可以是例如主存儲(chǔ)器208、只讀存儲(chǔ)器224或諸如在圖2中的北橋和存儲(chǔ)控制器中心202中見(jiàn)到的高速緩存。圖1-圖2中所描述的示例及上述示例并非意味著暗示體系結(jié)構(gòu)限制。例如,除了采取PDA的形式之外,數(shù)據(jù)處理系統(tǒng)200還可以是寫字板計(jì)算機(jī)、膝上型計(jì)算機(jī)或電話設(shè)備。
圖3描述了可以實(shí)現(xiàn)說(shuō)明性實(shí)施例各方面的Cell BE芯片的示例性示圖。Cell BE芯片300是針對(duì)分布式處理的單芯片多處理器實(shí)現(xiàn),該分布式處理的目標(biāo)在于諸如游戲控制臺(tái)、桌面系統(tǒng)和服務(wù)器之類的富媒體應(yīng)用。
Cell BE芯片300可以在邏輯上分成以下功能組件Power PC處理器單元(PPE)301、協(xié)處理器單元(SPU)310、311和312、以及存儲(chǔ)器流控制器(MFC)305、306和307。盡管通過(guò)示例示出了協(xié)處理器單元(SPE)302、303和304以及PPE 301,但是可以支持任意類型的處理器單元。盡管圖3只示出了三個(gè)SPE 302、303和304,但示例性的Cell BE芯片300的實(shí)現(xiàn)包括一個(gè)PPE 301和八個(gè)SPE。CELL處理器的SPE是設(shè)計(jì)為加速媒體和數(shù)據(jù)流工作負(fù)載的新處理器體系結(jié)構(gòu)的第一實(shí)現(xiàn)。
Cell BE芯片300可以是片上系統(tǒng),使得可以在單個(gè)微處理器芯片上提供圖3所示的每一個(gè)單元。此外,Cell BE芯片300是一種異質(zhì)處理環(huán)境,其中每個(gè)SPU 310、311和312可以從系統(tǒng)中的每個(gè)其他SPU接收不同的指令。此外,SPU 310、311和312的指令集與Power PC處理器單元(PPU)308的指令集不同,例如,PPU 308可以在PowerTM體系結(jié)構(gòu)中執(zhí)行基于精簡(jiǎn)指令集計(jì)算機(jī)(RISC)的指令,而SPU 310、311和312執(zhí)行向量化的指令。
每個(gè)SPE包括一個(gè)SPU 310、311或312,它自己的本地存儲(chǔ)(LS)區(qū)域313、314或315和具有關(guān)聯(lián)的存儲(chǔ)管理單元(MMU)316、317或318的專用MFC 305、306或307保存并處理存儲(chǔ)器保護(hù)和訪問(wèn)許可信息。同樣,盡管通過(guò)示例示出了SPU,但是可以支持任意類型的處理器單元。另外,Cell BE芯片300實(shí)現(xiàn)單元互連總線(EIB)319和其他I/O結(jié)構(gòu)以實(shí)現(xiàn)片上和外部數(shù)據(jù)流。
EIB 319用作PPE 301以及SPE 302、303和304的主片上總線。另外,EIB 319與專用于片外(off-chip)訪問(wèn)的其他片上接口控制器進(jìn)行接口連接。片上接口控制器包括存儲(chǔ)接口控制器(MIC)320和Cell BE接口單元(BEI)323,其中MIC 320提供兩個(gè)極速數(shù)據(jù)速率I/O(XIO)存儲(chǔ)通道321和322,BEI 323為Cell BE 300提供兩個(gè)高速外部I/O通道和內(nèi)部中斷控制。BEI 323實(shí)現(xiàn)為總線接口控制器(BIC,標(biāo)注為BIC0和BIC1)324和325以及I/O接口控制器(IOC)326。兩個(gè)高速外部I/O通道連接到Redwood RambusAsic Cell(RRAC)接口的一端,該接口為Cell BE 300提供靈活的輸入和輸出(FlexIO_0和FlexIO_1)353。
每個(gè)SPU 310、311或312都有對(duì)應(yīng)的LS區(qū)域313、314或315以及協(xié)執(zhí)行單元(SXU)354、355或356。每個(gè)單獨(dú)的SPU 310、311或312只能從與它關(guān)聯(lián)的LS區(qū)域313、314或315內(nèi)執(zhí)行指令(包括數(shù)據(jù)加載和存儲(chǔ)操作)。由于這個(gè)原因,MFC直接存儲(chǔ)器訪問(wèn)(DMA)操作通過(guò)SPU的310、311和312專用的MFC 305、306和307來(lái)執(zhí)行所有需要的去往或來(lái)自系統(tǒng)中其他地方的存儲(chǔ)器的數(shù)據(jù)傳送。
在SPU 310、311或312上運(yùn)行的程序只使用LS地址來(lái)引用它自己的LS區(qū)域313、314或315。但是,還為每個(gè)SPU的LS區(qū)域313、314或315分配一個(gè)在整個(gè)系統(tǒng)的存儲(chǔ)映射內(nèi)的真實(shí)地址(RA)。該RA是設(shè)備將響應(yīng)的地址。在Power PC中,應(yīng)用通過(guò)有效地址(EA)來(lái)引用存儲(chǔ)位置(或設(shè)備),然后該EA被映射成存儲(chǔ)位置(或設(shè)備)的虛擬地址(VA),然后該VA被映射為RA。EA是由應(yīng)用用來(lái)引用存儲(chǔ)器和/或設(shè)備的地址。這種映射使操作系統(tǒng)能夠分配比系統(tǒng)中物理上更多的存儲(chǔ)器(也就是稱為VA的虛擬存儲(chǔ)器)。存儲(chǔ)映射是系統(tǒng)中所有設(shè)備(包括存儲(chǔ)器)和它們對(duì)應(yīng)的RA的列表。存儲(chǔ)映射是對(duì)標(biāo)識(shí)設(shè)備或存儲(chǔ)器將響應(yīng)的RA的真實(shí)地址空間的映射。
這使特權(quán)軟件能夠?qū)S區(qū)域映射到處理器的EA以在一個(gè)SPU的LS和另一個(gè)SPU的LS區(qū)域之間實(shí)現(xiàn)直接存儲(chǔ)器訪問(wèn)傳送。PPE 301還可以使用EA來(lái)直接訪問(wèn)任意SPU的LS區(qū)域。在Power PC中有三個(gè)狀態(tài)(問(wèn)題、特權(quán)和管理)。特權(quán)軟件是在特權(quán)或管理狀態(tài)下運(yùn)行的軟件。這些狀態(tài)有不同的訪問(wèn)特權(quán)。例如,特權(quán)軟件可以訪問(wèn)用于將真實(shí)存儲(chǔ)器映射成應(yīng)用的EA的數(shù)據(jù)結(jié)構(gòu)寄存器。問(wèn)題狀態(tài)是在運(yùn)行應(yīng)用并通常被禁用訪問(wèn)系統(tǒng)管理資源(諸如用于映射真實(shí)存儲(chǔ)器的數(shù)據(jù)結(jié)構(gòu))時(shí)處理器通常所處的狀態(tài)。
MFC DMA數(shù)據(jù)命令始終包括一個(gè)LS地址和一個(gè)EA。DMA命令將存儲(chǔ)內(nèi)容從一個(gè)位置復(fù)制到另一個(gè)位置。在這種情況下,MFC DMA命令在EA和LS地址之間復(fù)制數(shù)據(jù)。LS地址直接指向與MFC命令隊(duì)列對(duì)應(yīng)的關(guān)聯(lián)的SPU 310、311或312的LS區(qū)域313、314或315。命令隊(duì)列是MFC命令的隊(duì)列。有一個(gè)隊(duì)列用來(lái)保存來(lái)自SPU的命令,一個(gè)隊(duì)列用來(lái)保存來(lái)自PXU或其他設(shè)備的命令。但是可以安排或映射EA以訪問(wèn)系統(tǒng)中的任意其他存儲(chǔ)器存儲(chǔ)區(qū)域,包括其他SPE 302、303和304的LS區(qū)域313、314和315。
主存儲(chǔ)器(沒(méi)有示出)由諸如圖2所示出的系統(tǒng)之類的系統(tǒng)中的PPU 308、PPE 301、SPE 302、303和304以及I/O設(shè)備(沒(méi)有示出)共享。所有保存在主存儲(chǔ)器中的信息對(duì)系統(tǒng)中的所有處理器和設(shè)備來(lái)說(shuō)是可見(jiàn)的。程序使用EA來(lái)引用主存儲(chǔ)器。由于MFC代理命令隊(duì)列、控制和狀態(tài)設(shè)施具有RA,并且使用EA來(lái)映射RA,所以Power處理器單元可能在關(guān)聯(lián)的SPE 302、303和304的主存儲(chǔ)器和本地存儲(chǔ)器之間使用EA來(lái)初始化DMA操作。
作為示例,當(dāng)在SPU 310、311或312上運(yùn)行的程序需要訪問(wèn)主存儲(chǔ)器時(shí),SPU程序生成具有適當(dāng)?shù)腅A和LS地址的DMA命令并將其放置到它的MFC 305、306或307的命令隊(duì)列中。在命令被SPU程序放置到隊(duì)列中之后,MFC 305、306或307執(zhí)行該命令并在LS區(qū)域和主存儲(chǔ)器之間傳送所需要的數(shù)據(jù)。MFC 305、306或307為由諸如PPE 301之類的其他設(shè)備生成的命令提供第二代理命令隊(duì)列。MFC代理命令隊(duì)列典型地用于在啟動(dòng)SPU之前將程序存儲(chǔ)到本地存儲(chǔ)中。MFC代理命令還可以用于上下文存儲(chǔ)操作。
EA地址為MFC提供了一個(gè)可以由MMU轉(zhuǎn)換為RA的地址。轉(zhuǎn)換處理考慮到系統(tǒng)存儲(chǔ)器的虛擬化和對(duì)在真實(shí)地址空間中的存儲(chǔ)器和設(shè)備的訪問(wèn)保護(hù)。由于LS區(qū)域被映射成真實(shí)地址空間,因此EA還可以指向所有的SPU LS區(qū)域。
Cell BE芯片300上的PPE 301包括64比特的PPU 308和Power PC存儲(chǔ)子系統(tǒng)(PPSS)309。PPU 308包含處理器執(zhí)行單元(PXU)329、一級(jí)(L1)高速緩存330、MMU 331和替換管理表(RMT)332。PPSS309包括可高速緩存接口單元(CIU)333、不可高速緩存單元(NCU)334、二級(jí)(L2)高速緩存328、RMT 335和總線接口單元(BIU)327。BIU 327將PPSS 309連接到EIB 319。
SPU 310、311或312以及MFC 305、306和307通過(guò)具有容量的單向通道相互通信。通道實(shí)質(zhì)上是使用34個(gè)SPU指令中的一個(gè)指令來(lái)訪問(wèn)的FIFO,讀通道(RDCH)、寫通道(WRCH)和讀通道計(jì)數(shù)(RDCHCNT)。RDCHCNT返回通道中的信息量。容量是FIFO的深度。通道對(duì)去往和來(lái)自MFC 305、306和307,SPU 310、311和312的數(shù)據(jù)進(jìn)行傳送。BIU 339、340和341將MFC 305、306和307連接到EIB 319。
MFC 305、306和307為SPU 310、311和312提供兩個(gè)主要功能。MFC 305、306和307在SPU 310、311或312,LS區(qū)域313、314或315和主存儲(chǔ)器之間移動(dòng)數(shù)據(jù)。另外,MFC 305、306和307在SPU 310、311和312與系統(tǒng)中的其他設(shè)備之間提供同步設(shè)施。
MFC 305、306和307的實(shí)現(xiàn)具有四個(gè)功能單元直接存儲(chǔ)器訪問(wèn)控制器(DMAC)336、337和338,MMU 316、317和318,原子單元(ATO)342、343和344,RMT 345、346和347以及BIU 339、340和341。DMAC 336、337和338維護(hù)并處理MFC命令隊(duì)列(MFC CMDQ)(沒(méi)有示出),其包括MFC SPU命令隊(duì)列(MFC SPUQ)和MFC代理命令隊(duì)列(MFC PrxyQ)。十六條目的MFC SPUQ處理從SPU通道接口接收的MFC命令。八條目的MFC PrxyQ通過(guò)存儲(chǔ)映射輸入和輸出(MMIO)加載以及存儲(chǔ)操作來(lái)處理來(lái)自諸如PPE 301或SPE 302、303和304之類的其他設(shè)備的MFC命令。典型的直接存儲(chǔ)器訪問(wèn)命令在LS區(qū)域313、314或315與主存儲(chǔ)器之間移動(dòng)數(shù)據(jù)。MFC DMA命令的EA參數(shù)用于指向主存儲(chǔ)設(shè)備,包括主存儲(chǔ)器、本地存儲(chǔ)器和所有具有RA的設(shè)備。MFC DMA命令的本地存儲(chǔ)器參數(shù)用于指向關(guān)聯(lián)的本地存儲(chǔ)器。
在虛擬模式中,MMU 316、317和318提供地址轉(zhuǎn)換和存儲(chǔ)器保護(hù)設(shè)施以處理來(lái)自DMAC 336、337和338的EA轉(zhuǎn)換請(qǐng)求并送回已轉(zhuǎn)換的地址。每個(gè)SPE的MMU維護(hù)區(qū)段監(jiān)視緩沖器(SLB)和轉(zhuǎn)換監(jiān)視緩沖器(TLB)。SLB將EA轉(zhuǎn)換為VA,TLB將從SLB出來(lái)的VA轉(zhuǎn)換為RA。EA由應(yīng)用使用并且通常是32比特或64比特的地址。不同的應(yīng)用或一個(gè)應(yīng)用的多個(gè)副本可以使用相同的EA來(lái)引用不同的存儲(chǔ)位置(例如,均使用相同EA的一個(gè)應(yīng)用的兩個(gè)副本,需要兩個(gè)不同的物理存儲(chǔ)位置)。為了完成這一點(diǎn),EA首先被轉(zhuǎn)換成一個(gè)更大的VA空間,其對(duì)在操作系統(tǒng)下運(yùn)行的所有應(yīng)用來(lái)說(shuō)是公共的。EA到VA的轉(zhuǎn)換由SLB執(zhí)行。然后使用TLB來(lái)將VA轉(zhuǎn)換成RA,該TLB是包含VA到RA的映射的頁(yè)表或映射表的高速緩存。該表由操作系統(tǒng)維護(hù)。
ATO 342、343和344提供了維護(hù)與系統(tǒng)中其他處理單元的同步所必需的數(shù)據(jù)高速緩存的級(jí)別。原子直接存儲(chǔ)器訪問(wèn)命令提供了使協(xié)處理器單元執(zhí)行與其他單元的同步的手段。
BIU 339、340和341的主要功能是為SPE 302、303和304提供到EIB的接口。EIB 319在Cell BE芯片300上的所有處理器內(nèi)核和附在EIB 319上的外部接口控制器之間提供通信路徑。
MIC 320在EIB 319與XIO 321和322中的一個(gè)或兩個(gè)之間提供接口。極速數(shù)據(jù)速率(XDRTM)動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)是由Rambus提供的高速高度串行存儲(chǔ)器。由Rambus提供的宏訪問(wèn)極速數(shù)據(jù)速率動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,該存儲(chǔ)器在本文中稱為XIO 321和322。
MIC 320只是EIB 319上的從設(shè)備。MIC 320對(duì)在它的配置地址范圍內(nèi)的命令進(jìn)行確認(rèn),該范圍與所支持的中心中的存儲(chǔ)器對(duì)應(yīng)。
BIC 324和325管理片上或片外的從EIB 319到兩個(gè)外部設(shè)備中的任意一個(gè)的數(shù)據(jù)傳送。BIC 324和325可以和I/O設(shè)備交換非一致性業(yè)務(wù),或者它可以將EIB 319擴(kuò)展到另一個(gè)設(shè)備,該設(shè)備甚至可以是另一個(gè)Cell BE芯片。當(dāng)用于擴(kuò)展EIB 319時(shí),總線協(xié)議維護(hù)Cell BE芯片300中的高速緩存和附帶的外部設(shè)備中的高速緩存之間的一致性,該外部設(shè)備可以是另一個(gè)Cell BE芯片。
IOC 326處理在I/O接口設(shè)備中發(fā)起并發(fā)往相關(guān)EIB 319的命令。I/O接口設(shè)備可以是附到I/O接口上的任意設(shè)備,諸如附帶多個(gè)I/O設(shè)備或用非一致性的方式訪問(wèn)的另一個(gè)Cell BE芯片300的I/O橋芯片。IOC 326還截取EIB 319上針對(duì)存儲(chǔ)映射寄存器的訪問(wèn),并將它們路由到正確的I/O接口,這些寄存器駐留在I/O橋芯片或非一致性Cell BE芯片300之中或之后。IOC 326還包括內(nèi)部中斷控制器(IIC)349和I/O地址轉(zhuǎn)換單元(I/O Trans)350。
普適邏輯(pervasive logic)351是為Cell BE芯片300提供時(shí)鐘管理、測(cè)試特征和上電序列的控制器。普適邏輯可以為處理器提供熱管理系統(tǒng)。普適邏輯包含通過(guò)本領(lǐng)域公知的聯(lián)合測(cè)試行動(dòng)小組(JTAG)或SPI(串行外圍接口)接口到系統(tǒng)中其他設(shè)備的連接。
盡管已經(jīng)提供了如何實(shí)現(xiàn)不同組件的特定示例,但這并不意味著對(duì)可以使用說(shuō)明性實(shí)施例各方面的體系結(jié)構(gòu)構(gòu)成限制??梢越Y(jié)合任意多內(nèi)核處理器系統(tǒng)而使用說(shuō)明性實(shí)施例的各方面。
在應(yīng)用或軟件的執(zhí)行期間,Cell BE芯片內(nèi)的區(qū)域的溫度可能上升。如果不加抑制,溫度可能上升到最大指定結(jié)溫度(junction temperature)之上,導(dǎo)致不正確的運(yùn)行或物理?yè)p害。為了避免這些情形,Cell BE芯片的數(shù)字熱管理單元在運(yùn)行期間監(jiān)控并試圖控制Cell BE芯片內(nèi)的溫度。數(shù)字熱管理單元包括此處描述的一個(gè)熱管理控制單元(TMCU)和十個(gè)分布式數(shù)字熱傳感器(DTS)。
一個(gè)傳感器位于八個(gè)SPE中的一個(gè)SPE中,一個(gè)傳感器位于PPE中,并且一個(gè)傳感器與線性熱二極管相鄰。線性熱二極管是計(jì)算溫度的片上二極管。這些傳感器位于與關(guān)聯(lián)的單元內(nèi)的各區(qū)域相鄰的位置,該關(guān)聯(lián)的單元典型地在執(zhí)行大多數(shù)應(yīng)用期間經(jīng)歷溫度的最大上升。熱控制單元監(jiān)控來(lái)自每個(gè)這些傳感器的反饋。如果傳感器的溫度上升到可編程的點(diǎn)之上,熱控制單元就可以配置為引起對(duì)PPE或一個(gè)或多個(gè)SPE的中斷并且動(dòng)態(tài)地調(diào)節(jié)關(guān)聯(lián)的PPE或SPE的執(zhí)行。
將PPE或SPE停止和運(yùn)行可編程數(shù)量的周期提供了必需的調(diào)節(jié)。中斷使特權(quán)軟件能夠采取正確的措施,同時(shí)動(dòng)態(tài)調(diào)節(jié)在沒(méi)有軟件介入的情況下試圖將broadband engine(寬帶引擎)芯片內(nèi)的溫度保持在可編程級(jí)別以下。特權(quán)軟件將調(diào)節(jié)級(jí)別設(shè)置為等于或低于應(yīng)用所提供的推薦設(shè)置。每個(gè)應(yīng)用可能會(huì)不同。
如果調(diào)節(jié)PPE或SPE沒(méi)有有效地管理溫度并且溫度繼續(xù)上升,則普適邏輯351在溫度達(dá)到熱過(guò)載溫度(由可編程配置數(shù)據(jù)限定)時(shí)停止Cell BE芯片的時(shí)鐘。熱過(guò)載特征保護(hù)Cell BE芯片不受物理?yè)p害。從這種情形恢復(fù)需要硬重啟(hard reset)。由DTS監(jiān)控的區(qū)域的溫度并不一定是關(guān)聯(lián)的PPE或SPE內(nèi)的最熱點(diǎn)。
圖4示出了根據(jù)說(shuō)明性實(shí)施例的示例性熱管理系統(tǒng)。熱管理系統(tǒng)可以實(shí)現(xiàn)為集成電路,諸如圖3的普適邏輯單元351所提供的集成電路。熱管理系統(tǒng)可以是專用集成電路、處理器、多處理器或異質(zhì)多內(nèi)核處理器。熱管理系統(tǒng)被分在十個(gè)分布式DTS和熱管理控制單元(TMCU)402之間,為簡(jiǎn)單起見(jiàn)只示出了DTS 404、406、408和410。每個(gè)在SPU傳感器440中的DTS 404和406、在PPU傳感器442中的DTS 408、以及在與線性熱二極管(沒(méi)有示出)相鄰的傳感器444中的DTS 410提供當(dāng)前溫度檢測(cè)信號(hào)。該信號(hào)表明溫度等于或小于由TMCU 402設(shè)置的當(dāng)前溫度檢測(cè)范圍。TMCU 402使用來(lái)自DTS 404、406、408和410的信號(hào)的狀態(tài)來(lái)連續(xù)地跟蹤每個(gè)PPE或SPE的DTS 404、406、408或410的溫度。隨著對(duì)溫度的跟蹤,TMCU 402將當(dāng)前溫度提供為表示關(guān)聯(lián)的PPE或SPE內(nèi)的溫度的數(shù)值。校準(zhǔn)單獨(dú)的傳感器的制造廠設(shè)置內(nèi)部校準(zhǔn)存儲(chǔ)器428。
除了上述TMCU 402的單元之外,TMCU 402還包括復(fù)用器446和450、工作寄存器448、比較器452和454、串行器456、熱管理控制狀態(tài)機(jī)458和數(shù)據(jù)流(DF)單元460。復(fù)用器446和450對(duì)各種發(fā)出的和進(jìn)入的信號(hào)進(jìn)行組合以便在單個(gè)媒介上傳送。工作寄存器448保存在TMCU 402中執(zhí)行的乘法的結(jié)果。比較器452和454提供了對(duì)兩個(gè)輸入的比較功能。比較器452是大于或等于比較器。比較器454是大于比較器。串行器456將來(lái)自源的低速并行數(shù)據(jù)轉(zhuǎn)換為用于傳送的高速串行數(shù)據(jù)。串行器456結(jié)合SPU傳感器440上的解串器462和464而工作。解串器462和464將接收的高速串行數(shù)據(jù)轉(zhuǎn)換為低速并行數(shù)據(jù)。熱管理控制狀態(tài)機(jī)458啟動(dòng)TMCU 402的內(nèi)部初始化。DF單元460控制去往和來(lái)自熱管理控制狀態(tài)機(jī)458的數(shù)據(jù)。
TMCU 402可以配置為使用中斷邏輯416來(lái)引發(fā)對(duì)PPE的中斷以使用調(diào)節(jié)邏輯418來(lái)動(dòng)態(tài)地調(diào)節(jié)PPE或SPE的執(zhí)行。
TMCU 402將表示溫度的數(shù)值與可編程的中斷溫度和可編程的調(diào)節(jié)點(diǎn)進(jìn)行比較。每個(gè)DTS具有一個(gè)獨(dú)立的可編程的中斷溫度。如果該溫度在已編程的中斷溫度范圍之內(nèi),那么如果已啟用,則TMCU 402產(chǎn)生對(duì)PPE的中斷。如果溫度在依賴于下述方向比特的已編程級(jí)別以上或以下,則產(chǎn)生中斷。另外,第二可編程的中斷溫度可以引發(fā)對(duì)系統(tǒng)控制器的注意信號(hào)。系統(tǒng)控制器在系統(tǒng)面板上并且連接到在SPI端口上的CellBE。
如果由與PPE或SPE關(guān)聯(lián)的DTS感應(yīng)的溫度等于或高于調(diào)節(jié)點(diǎn),則TMCU 402通過(guò)獨(dú)立地開始和停止PPE或一個(gè)或多個(gè)SPE來(lái)調(diào)節(jié)該P(yáng)PE或SPE的執(zhí)行。軟件可以使用諸如熱管理停止時(shí)間寄存器和熱管理比例寄存器之類的熱管理寄存器來(lái)控制調(diào)節(jié)的比率和頻率。
圖5描述了根據(jù)說(shuō)明性實(shí)施例的溫度曲線圖以及可能發(fā)生中斷和動(dòng)態(tài)調(diào)節(jié)的各個(gè)點(diǎn)。在圖5中,線500可以表示PPE或SPE的溫度。如果PPE或SPE正常運(yùn)行,那么在用“N”標(biāo)記的區(qū)域中不進(jìn)行調(diào)節(jié)。當(dāng)PPE或SPE的溫度達(dá)到調(diào)節(jié)點(diǎn)時(shí),TMCU開始調(diào)節(jié)關(guān)聯(lián)的PPE或SPE的執(zhí)行。調(diào)節(jié)發(fā)生的區(qū)域用“T”標(biāo)記。當(dāng)PPE或SPE的溫度下降到結(jié)束調(diào)節(jié)點(diǎn)以下時(shí),執(zhí)行返回到正常操作。
如果由于任意原因溫度繼續(xù)上升并達(dá)到在全面調(diào)節(jié)點(diǎn)處或之上的溫度時(shí),TMCU 402停止PPE或SPE直到溫度下降到全面調(diào)節(jié)點(diǎn)以下。停止PPE或SPE的區(qū)域用“S”標(biāo)記。在溫度在全面調(diào)節(jié)點(diǎn)處或之上時(shí)停止PPE或SPE稱為內(nèi)核停止安全性。
在該示例性圖示中,將中斷溫度設(shè)置在調(diào)節(jié)點(diǎn)以上;因此,TMCU402產(chǎn)生中斷,該中斷是對(duì)軟件的通知,即關(guān)于因?yàn)闇囟仍?jīng)在或仍在內(nèi)核停止溫度以上所以相應(yīng)的PPE或SPE被停止的通知;假設(shè)熱中斷屏蔽寄存器(TM_ISR)設(shè)置為活動(dòng)的,參見(jiàn)圖4中的422,使PPE或SPE在未決中斷(pending interrupt)期間能夠繼續(xù)。如果動(dòng)態(tài)調(diào)節(jié)被禁用,則特權(quán)軟件管理熱狀況。不管理熱狀況可能導(dǎo)致關(guān)聯(lián)的PPE或SPE的不正確運(yùn)行或由熱過(guò)載功能引起的熱關(guān)閉。
返回到圖4,熱傳感器狀態(tài)寄存器包括熱傳感器當(dāng)前溫度狀態(tài)寄存器412和熱傳感器最大溫度狀態(tài)寄存器414。這些寄存器使軟件能夠讀取每個(gè)DTS的當(dāng)前溫度,確定在一段時(shí)間期間達(dá)到的最高溫度,并在溫度達(dá)到可編程的溫度時(shí)引發(fā)中斷。熱傳感器狀態(tài)寄存器具有關(guān)聯(lián)的可以標(biāo)記為享有管理特權(quán)的真實(shí)地址頁(yè)。
熱傳感器當(dāng)前溫度狀態(tài)寄存器412包含每個(gè)DTS的當(dāng)前溫度的編碼值或數(shù)字值。由于傳感器溫度檢測(cè)中的等待時(shí)間、讀取這些寄存器的等待時(shí)間和正常的溫度波動(dòng),在這些寄存器中報(bào)告的溫度是較早時(shí)間點(diǎn)的溫度,可能不能反映軟件接收數(shù)據(jù)時(shí)的實(shí)際溫度。由于每個(gè)傳感器都有專用的控制邏輯,因此DTS 404、408和410內(nèi)的控制邏輯并行地對(duì)所有的傳感器進(jìn)行采樣。TMCU 402在采樣周期結(jié)束時(shí)更新熱傳感器當(dāng)前溫度狀態(tài)寄存器412的內(nèi)容。TMCU 402將熱傳感器當(dāng)前溫度狀態(tài)寄存器412中的值改變?yōu)楫?dāng)前溫度。TMCU 402每個(gè)SenSampTime周期都輪詢新的當(dāng)前溫度。SenSampTime配置字段控制采樣周期的長(zhǎng)度。
熱傳感器最大溫度狀態(tài)寄存器414包含從熱傳感器最大溫度狀態(tài)寄存器414最后被讀取的時(shí)間開始,每個(gè)傳感器達(dá)到的數(shù)字地編碼的最大溫度。通過(guò)軟件或諸如片外設(shè)備472或片外I/O設(shè)備474之類的任意片外設(shè)備讀取這些寄存器使TMCU 402將每個(gè)傳感器的當(dāng)前溫度復(fù)制進(jìn)寄存器。在讀取之后,TMCU 402從該點(diǎn)開始繼續(xù)跟蹤最大溫度。每個(gè)寄存器的讀取是獨(dú)立的。對(duì)一個(gè)寄存器的讀取不影響另一寄存器的內(nèi)容。
每個(gè)傳感器都具有專用的控制邏輯,因此DTS 404、406、408和410內(nèi)的控制邏輯并行地對(duì)所有的傳感器進(jìn)行采樣。TMCU 402將熱傳感器最大溫度狀態(tài)寄存器414中的值改變?yōu)楫?dāng)前溫度。TMCU 402每個(gè)SenSampTime周期都輪詢新的當(dāng)前溫度。SenSampTime配置字段控制采樣周期的長(zhǎng)度。
中斷邏輯416中的熱傳感器中斷寄存器控制對(duì)PPE的熱管理中斷的產(chǎn)生。這組寄存器包括熱傳感器中斷溫度寄存器420(TS_ITR1和TS_ITR2)、熱傳感器中斷狀態(tài)寄存器422(TS_ISR)、熱傳感器中斷屏蔽寄存器424(TS_IMR)和熱傳感器全局中斷溫度寄存器426(TS_GITR)。熱傳感器中斷溫度寄存器420和熱傳感器全局中斷溫度寄存器426包含引起對(duì)PPE的熱管理中斷的溫度的編碼。
當(dāng)熱傳感器當(dāng)前溫度狀態(tài)寄存器412中的針對(duì)傳感器的用數(shù)字格式編碼的溫度大于或等于熱傳感器中斷溫度寄存器420中的相應(yīng)傳感器的中斷溫度編碼時(shí),TMCU 402設(shè)置熱傳感器中斷狀態(tài)寄存器422中的相應(yīng)狀態(tài)比特(TS_ISR[Sx])。當(dāng)熱傳感器當(dāng)前溫度狀態(tài)寄存器412中的針對(duì)任意傳感器的溫度編碼大于或等于熱傳感器全局中斷溫度寄存器426中的全局中斷溫度編碼時(shí),TMCU 402設(shè)置熱傳感器中斷狀態(tài)寄存器422中的相應(yīng)狀態(tài)比特(TS_ISR[Gx])。
如果設(shè)置了任意熱傳感器中斷狀態(tài)寄存器422比特(TS_ISR[Sx])并且還設(shè)置了熱傳感器中斷屏蔽寄存器424中的相應(yīng)屏蔽比特(TS_IMR[Mx]),那么TMCU 402引發(fā)對(duì)PPE的熱管理中斷信號(hào)。如果設(shè)置了任意熱傳感器中斷狀態(tài)寄存器422比特(TS_ISR[Gx])并且還設(shè)置了熱傳感器中斷屏蔽寄存器424中的相應(yīng)屏蔽比特(TS_IMR[Cx]),那么TMCU 402引發(fā)對(duì)PPE的熱管理中斷信號(hào)。
為了清除中斷條件,特權(quán)軟件應(yīng)當(dāng)將熱傳感器中斷屏蔽寄存器中的任意相應(yīng)的屏蔽比特設(shè)置為“0”。為了啟用熱管理中斷,特權(quán)軟件保證溫度在相應(yīng)傳感器的中斷溫度以下,然后執(zhí)行以下序列。在溫度不在中斷溫度以下時(shí)啟用中斷可能導(dǎo)致產(chǎn)生立即熱管理中斷。
1.將“1”寫到熱傳感器中斷狀態(tài)寄存器422中的相應(yīng)狀態(tài)比特。
2.將“1”寫到熱傳感器中斷屏蔽寄存器424中的相應(yīng)屏蔽比特。
熱傳感器中斷溫度寄存器420包含位于SPE、PPE中且與線性熱二極管相鄰的傳感器的中斷溫度級(jí)別。TMCU 402將該寄存器中已編碼的中斷溫度級(jí)別與熱傳感器當(dāng)前溫度狀態(tài)寄存器412中的相應(yīng)中斷溫度編碼進(jìn)行比較。這些比較的結(jié)果產(chǎn)生熱管理中斷。每個(gè)傳感器的中斷溫度級(jí)別是獨(dú)立的。
除了在熱傳感器中斷溫度寄存器420中設(shè)置的獨(dú)立的中斷溫度級(jí)別之外,熱傳感器全局中斷溫度寄存器426包含第二中斷溫度級(jí)別。該級(jí)別適用于Cell BE芯片中的所有傳感器。TMCU 402將該寄存器中的已編碼的全局中斷溫度級(jí)別與每個(gè)傳感器的當(dāng)前溫度編碼進(jìn)行比較。這些比較的結(jié)果產(chǎn)生熱管理中斷。
全局中斷溫度的目的是提供對(duì)Cell BE芯片中的溫度上升的早期指示。特權(quán)軟件和系統(tǒng)控制器可以使用該信息來(lái)啟動(dòng)措施以控制溫度,例如,增加扇入速度、在單元之間重新平衡應(yīng)用軟件等等。
熱傳感器中斷狀態(tài)寄存器422標(biāo)識(shí)哪些寄存器滿足中斷條件。中斷條件是指每個(gè)熱傳感器中斷狀態(tài)寄存器422比特所具有的特定條件,當(dāng)滿足該特定條件時(shí)中斷可能發(fā)生。如果設(shè)置了相應(yīng)的屏蔽比特,那么實(shí)際中斷只提交給PPE。
熱傳感器中斷狀態(tài)寄存器422包含三組狀態(tài)比特,即數(shù)字傳感器全局門限中斷狀態(tài)比特(TS_ISR[Gx])、數(shù)字傳感器門限中斷狀態(tài)比特(TS_ISR[Sx])和數(shù)字傳感器全局門限以下中斷狀態(tài)比特(TS_ISR[Gb])。
當(dāng)熱傳感器當(dāng)前溫度狀態(tài)寄存器412中的傳感器溫度編碼大于或等于熱傳感器中斷溫度寄存器420中的相應(yīng)的傳感器的中斷溫度編碼并且熱傳感器中斷屏蔽寄存器424中的相應(yīng)方向比特TM_IMR[Bx]=’0’時(shí),TMCU 402設(shè)置熱傳感器中斷狀態(tài)寄存器422中的狀態(tài)比特(TS_ISR[Sx])。另外,當(dāng)熱傳感器當(dāng)前溫度狀態(tài)寄存器412中的傳感器溫度編碼低于熱傳感器中斷溫度寄存器420中的相應(yīng)的傳感器的中斷溫度編碼并且熱傳感器中斷屏蔽寄存器424中的相應(yīng)方向比特TM_IMR[Bx]=’1’時(shí),TMCU 402設(shè)置熱傳感器中斷狀態(tài)寄存器422,即TS_ISR[Sx]。
當(dāng)任意參與的傳感器的當(dāng)前溫度大于或等于熱傳感器全局中斷溫度寄存器426的當(dāng)前溫度并且熱傳感器中斷屏蔽寄存器424TM_IMR[BG]=‘ 0’時(shí),TMCU 402設(shè)置熱傳感器中斷狀態(tài)寄存器422,即TS_ISR[Gx]。單獨(dú)的熱傳感器中斷狀態(tài)寄存器422的TS_ISR[Gx]比特表明哪些單獨(dú)的傳感器滿足這些條件。
當(dāng)熱傳感器中斷屏蔽寄存器424 TM_IMR[Cx]中的所有參與的傳感器的當(dāng)前溫度低于熱傳感器全局中斷溫度寄存器426的當(dāng)前溫度并且熱傳感器中斷屏蔽寄存器424 TM_IMR[BG]=‘1’時(shí),TMCU 402設(shè)置熱傳感器中斷狀態(tài)寄存器422,即TS_ISR[Gb]。由于所有參與的傳感器的當(dāng)前溫度低于熱傳感器全局中斷溫度寄存器426的當(dāng)前溫度,因此對(duì)于全局門限以下中斷條件,只出現(xiàn)熱傳感器中斷狀態(tài)寄存器422中的一個(gè)狀態(tài)比特(TS_ISR[Gb])。
一旦將熱傳感器中斷狀態(tài)寄存器422中的一個(gè)狀態(tài)比特(TS_ISR[Sx]、TS_ISR[Gx]或TS_ISR[Gb])設(shè)置為‘1’,TMCU 402就維護(hù)該狀態(tài)直到由特權(quán)軟件重置為‘0’。特權(quán)軟件通過(guò)將‘1’寫到熱傳感器中斷狀態(tài)寄存器422中的相應(yīng)比特而將狀態(tài)比特重置為‘0’。
熱傳感器中斷屏蔽寄存器424包含單獨(dú)傳感器的兩個(gè)字段和全局中斷條件的多個(gè)字段。中斷條件是指每個(gè)熱傳感器中斷狀態(tài)寄存器422比特所具有的特定條件,當(dāng)滿足該特定條件時(shí)中斷可能發(fā)生。如果設(shè)置了相應(yīng)的屏蔽比特,那么實(shí)際中斷只提交給PPE。
單獨(dú)傳感器的兩個(gè)熱傳感器中斷屏蔽寄存器的數(shù)字熱門限中斷字段是TS_IMR[Mx]和TS_IMR[Bx]。熱傳感器中斷屏蔽寄存器424的屏蔽比特TS_IMR[Mx]防止中斷狀態(tài)比特產(chǎn)生對(duì)PPE的熱管理中斷。熱傳感器中斷屏蔽寄存器424的方向比特TS_IMR[Bx]將中斷條件的溫度方向設(shè)置為高于或低于熱傳感器中斷溫度寄存器420中的相應(yīng)溫度。將熱傳感器中斷屏蔽寄存器424的TS_IMR[Bx]設(shè)置為‘1’將中斷條件的溫度設(shè)置為低于熱傳感器中斷溫度寄存器420中的相應(yīng)溫度。將熱傳感器中斷屏蔽寄存器424的TS_IMR[Bx]設(shè)置為‘0’將中斷條件的溫度設(shè)置為等于或高于熱傳感器中斷溫度寄存器420中的相應(yīng)溫度。
針對(duì)全局中斷條件的熱傳感器中斷屏蔽寄存器424字段是TS_IMR[Cx]、TS_IMR[BG]、TS_IMR[Cgb]和TS_IMR[A]。熱傳感器中斷屏蔽寄存器424的屏蔽比特TS_IMR[Cx]防止全局門限中斷并且選擇哪些傳感器參與全局門限以下中斷條件。熱傳感器中斷屏蔽寄存器424的方向比特TS_IMR[BG]選擇針對(duì)全局中斷條件的溫度方向。熱傳感器中斷屏蔽寄存器424的屏蔽比特TS_IMR[Cgb]防止全局門限以下中斷。熱傳感器中斷屏蔽寄存器424 TS_IMR[A]引發(fā)對(duì)系統(tǒng)控制器的注意信號(hào)。注意信號(hào)是一種對(duì)系統(tǒng)控制器的信號(hào),表明普適邏輯需要注意或具有針對(duì)系統(tǒng)控制器的狀態(tài)??梢詫⒆⒁庑盘?hào)映射到系統(tǒng)控制器中的中斷。系統(tǒng)控制器在系統(tǒng)面板(planer)上并且連接到在SPI端口上的CellBroadband Engine。
將熱傳感器中斷屏蔽寄存器424的TS_IMR[BG]設(shè)置為‘1’,就將針對(duì)全局中斷條件的溫度范圍設(shè)置為當(dāng)在熱傳感器中斷屏蔽寄存器424的TS_IMR[Cx]中設(shè)置的所有參與傳感器的溫度都低于全局中斷溫度級(jí)別時(shí)發(fā)生。將熱傳感器中斷屏蔽寄存器424的TS_IMR[BG]設(shè)置為‘0’,就將針對(duì)全局中斷條件的溫度范圍設(shè)置為當(dāng)任意參與傳感器的溫度大于或等于熱傳感器全局中斷溫度寄存器426中的相應(yīng)溫度時(shí)發(fā)生。如果熱傳感器中斷屏蔽寄存器424的TS_IMR[A]設(shè)置為‘1’,那么當(dāng)任意熱傳感器中斷屏蔽寄存器424 TS_IMR[Cx]比特和它相應(yīng)的熱傳感器中斷狀態(tài)寄存器422狀態(tài)比特(TS_ISR[Gx])都設(shè)置為‘1’時(shí)TMCU 402引發(fā)注意信號(hào)。另外,當(dāng)熱傳感器中斷屏蔽寄存器424的TS_IMR[Cgb]和熱傳感器中斷狀態(tài)寄存器422的TS_ISR[Gb]都設(shè)置為‘1’時(shí),TMCU402引發(fā)注意信號(hào)。
當(dāng)任意熱傳感器中斷屏蔽寄存器424 TS_IMR[Mx]比特和它相應(yīng)的熱傳感器中斷狀態(tài)寄存器422狀態(tài)比特(TS_ISR[Sx])都設(shè)置為‘1’時(shí),TMCU 402將熱管理中斷提交給PPE。當(dāng)任意熱傳感器中斷屏蔽寄存器424 TS_IMR[Cx]比特和它相應(yīng)的熱傳感器中斷狀態(tài)寄存器422狀態(tài)比特(TS_ISR[Gx])都設(shè)置為‘1’時(shí),TMCU 402產(chǎn)生熱管理中斷。另外,當(dāng)熱傳感器中斷屏蔽寄存器424的TS_MR[Cgb]和熱傳感器中斷狀態(tài)寄存器422的TS_ISR[Gb]都設(shè)置為‘1’時(shí),TMCU 402將熱管理中斷提交給PPE。
調(diào)節(jié)邏輯418中的動(dòng)態(tài)熱管理寄存器包含用于控制PPE或SPE的執(zhí)行調(diào)節(jié)的參數(shù)。動(dòng)態(tài)熱管理寄存器是一組寄存器,包括熱管理控制寄存器430(TM_CR1和TM_CR2)、熱管理調(diào)節(jié)點(diǎn)寄存器432(TM_TPR)、熱管理停止時(shí)間寄存器434(TM_STR1和TM_STR2)、熱管理調(diào)節(jié)比例寄存器436(TM_TSR)和熱管理系統(tǒng)中斷屏蔽寄存器438(TM_SIMR)。
熱管理調(diào)節(jié)點(diǎn)寄存器432設(shè)置傳感器的調(diào)節(jié)溫度點(diǎn)??梢栽跓峁芾碚{(diào)節(jié)點(diǎn)寄存器432中設(shè)置兩個(gè)獨(dú)立的調(diào)節(jié)溫度點(diǎn),即ThrottlePPE和ThrottleSPE,一個(gè)用于PPE并且另一個(gè)用于SPE。該寄存器中還包含用于禁用調(diào)節(jié)和停止PPE或SPE的溫度點(diǎn)。PPE或SPE的執(zhí)行調(diào)節(jié)在溫度等于或高于調(diào)節(jié)點(diǎn)時(shí)開始。調(diào)節(jié)在溫度下降到用以禁用調(diào)節(jié)的溫度(TM_TPR[EndThrottlePPE/EndThrottleSPE])以下時(shí)停止。如果溫度達(dá)到全面調(diào)節(jié)溫度或停止溫度(TM_TPR[FullThrottlePPE/FullThrottleSPE]),則TMCU 402停止PPE或SPE的執(zhí)行。熱管理控制寄存器430控制調(diào)節(jié)行為。
熱管理停止時(shí)間寄存器434和熱管理調(diào)節(jié)比例寄存器436控制調(diào)節(jié)頻率和調(diào)節(jié)量。當(dāng)溫度達(dá)到調(diào)節(jié)點(diǎn)時(shí),TMCU 402將相應(yīng)的PPE或SPE停止一定時(shí)鐘數(shù),該時(shí)鐘數(shù)由熱管理停止時(shí)間寄存器434中的相應(yīng)值中的停止時(shí)間乘以熱管理調(diào)節(jié)比例寄存器436中的相應(yīng)比例值來(lái)指定。然后TMCU 402使PPE或SPE能夠運(yùn)行一定的時(shí)鐘數(shù),該時(shí)鐘數(shù)由運(yùn)行時(shí)間乘以相應(yīng)的比例值來(lái)指定,其中運(yùn)行時(shí)間是依賴于實(shí)現(xiàn)方式的固定時(shí)間量減去停止時(shí)間之間的差值。熱管理調(diào)節(jié)比例寄存器436中的可編程的比例值是停止時(shí)間和運(yùn)行時(shí)間的乘數(shù)。一個(gè)示例可以是(Stop×Scale)/(Run×Scale)((停止時(shí)間×比例)/(運(yùn)行時(shí)間×比例))。內(nèi)核停止的時(shí)間百分比保持相同,但是周期增大或頻率減小。該序列繼續(xù)直到溫度下降到禁用調(diào)節(jié)(TM_TPR[EndThrottlePPE/EndThrottleSPE])以下。
熱管理系統(tǒng)中斷屏蔽寄存器438選擇哪個(gè)PPE中斷將使TMCU 402禁用調(diào)節(jié)。當(dāng)這些中斷仍然未決并且屏蔽仍然選擇未決中斷時(shí)TMCU402將繼續(xù)阻止調(diào)節(jié)。如果取消選定屏蔽或中斷不再是未決的,則TMCU402將不再阻止中斷。
熱管理控制寄存器430獨(dú)立地為每個(gè)PPE或SPE設(shè)置調(diào)節(jié)模式。在兩個(gè)寄存器之間拆分控制比特。下面是可以獨(dú)立地為每個(gè)PPE或SPE設(shè)置的五個(gè)不同的模式禁用動(dòng)態(tài)調(diào)節(jié)(包括內(nèi)核停止安全性);正常操作(啟用動(dòng)態(tài)調(diào)節(jié)和內(nèi)核停止安全性);始終調(diào)節(jié)PPE或SPE(啟用內(nèi)核停止安全性);禁用內(nèi)核停止安全性(啟用動(dòng)態(tài)調(diào)節(jié)并且禁用內(nèi)核停止安全性);始終調(diào)節(jié)PPE或SPE并且禁用內(nèi)核停止安全性。
特權(quán)軟件應(yīng)當(dāng)針對(duì)運(yùn)行應(yīng)用或操作系統(tǒng)的PPE或SPE而將控制比例設(shè)置為正常操作。如果PPE或SPE沒(méi)有運(yùn)行應(yīng)用代碼,則特權(quán)軟件應(yīng)當(dāng)將控制比特設(shè)置為禁用?!笆冀K調(diào)節(jié)PPE或SPE”模式擬用于應(yīng)用開發(fā)。這些模式對(duì)確定應(yīng)用是否能夠在極限調(diào)節(jié)條件下運(yùn)行是有用的。應(yīng)當(dāng)只在特權(quán)軟件主動(dòng)地管理熱事件時(shí)才使PPE或SPE能夠在禁用動(dòng)態(tài)調(diào)節(jié)或內(nèi)核停止安全性的情況下執(zhí)行。
熱管理系統(tǒng)中斷屏蔽寄存器438控制哪個(gè)PPE中斷使熱管理邏輯暫時(shí)停止調(diào)節(jié)PPE。TMCU 402在中斷未決的同時(shí)暫時(shí)掛起對(duì)這兩個(gè)線程的調(diào)節(jié),而不管中斷所指向的線程。當(dāng)中斷不再未決時(shí),只要調(diào)節(jié)條件仍然存在調(diào)節(jié)就可以繼續(xù)。從不基于系統(tǒng)中斷條件而禁用對(duì)SPE的調(diào)節(jié)??梢詢?yōu)先于調(diào)節(jié)條件的PPE中斷條件如下外部減量器管理程序(Hypervisor)減量器系統(tǒng)錯(cuò)誤熱管理熱管理調(diào)節(jié)點(diǎn)寄存器432包含PPE或SPE的執(zhí)行調(diào)節(jié)開始和結(jié)束時(shí)的已編碼溫度點(diǎn)。該寄存器還包含PPE或SPE的執(zhí)行被全面調(diào)節(jié)時(shí)的已編碼溫度點(diǎn)。
軟件使用熱管理調(diào)節(jié)點(diǎn)寄存器中的值來(lái)設(shè)置用于在三個(gè)熱管理狀態(tài)之間改變的三個(gè)溫度點(diǎn),這三個(gè)狀態(tài)是正常運(yùn)行(N)、調(diào)節(jié)PPE或SPE(T)以及停止PPE或SPE(S)。TMCU 402支持針對(duì)PPE和SPE的獨(dú)立溫度點(diǎn)。
當(dāng)熱傳感器當(dāng)前溫度狀態(tài)寄存器412中的已編碼的傳感器當(dāng)前溫度等于或大于調(diào)節(jié)溫度(ThrottlePPE/ThrottleSPE)時(shí),如果已經(jīng)啟用,那么相應(yīng)的PPE或SPE的執(zhí)行調(diào)節(jié)就會(huì)開始。執(zhí)行調(diào)節(jié)繼續(xù)到相應(yīng)的傳感器的已編碼當(dāng)前溫度小于結(jié)束調(diào)節(jié)(EndThrottlePPE/EndThrottleSPE)的已編碼溫度為止。作為一種安全措施,如果已編碼的當(dāng)前溫度等于或大于全面調(diào)節(jié)點(diǎn)(FullThrottlePPE/FullThrottleSPE),那么TMCU 402停止相應(yīng)的PPE或SPE。
熱管理停止時(shí)間寄存器434控制在熱管理調(diào)節(jié)狀態(tài)下應(yīng)用于特定PPE或SPE的調(diào)節(jié)量。熱管理停止時(shí)間寄存器434中由軟件設(shè)置的值表示內(nèi)核將停止的時(shí)間量相對(duì)于允許內(nèi)核運(yùn)行的時(shí)間量的比值(stop/run)或者內(nèi)核停止的時(shí)間百分比。熱管理調(diào)節(jié)比例寄存器436控制PPE或SPE停止和運(yùn)行的實(shí)際時(shí)鐘數(shù)(NClks)。
熱管理調(diào)節(jié)比例寄存器436控制PPE或SPE在熱管理調(diào)節(jié)狀態(tài)期間停止和運(yùn)行的實(shí)際周期數(shù)。該寄存器中的值是配置環(huán)設(shè)置TM_config[MinStopSPE]的倍數(shù)。下面的等式計(jì)算實(shí)際的停止和運(yùn)行周期數(shù)SPE運(yùn)行和停止時(shí)間SPE_StopTime=(TM_STR1[StopCore(x)]*TM_Config[MinStopSPE])*TM_TSR[ScaleSPE]SPE_RunTime=(32-TM_STR1[StopCore(x)])*TM_Config[MinStopSPE])*TM_TSR[ScaleSPE]Power PC單元運(yùn)行和停止時(shí)間PPE_StopTime=(TM_STR2[StopCore(8)]*TM_Config[MinStopPPE])*TM_TSR[ScalePPE]PPE_RunTime=(32-TM_STR2[StopCore(8)])*TM_Config[MinStopPPE])*TM_TSR[ScalePPE]運(yùn)行和停止時(shí)間可以通過(guò)中斷和對(duì)各種熱管理寄存器進(jìn)行寫入的特權(quán)軟件來(lái)改變。
片上性能監(jiān)控器466可以提供可以跟蹤由諸如DTS 404、406、408和410之類的溫度感應(yīng)設(shè)備提供的熱數(shù)據(jù)的性能監(jiān)控??梢詫釘?shù)據(jù)存儲(chǔ)在存儲(chǔ)器470中或者寫到諸如圖2的主存儲(chǔ)器208之類的片外設(shè)備472或?qū)懙街T如圖2的南橋和輸入/輸出(I/O)控制器中心(ICH)204之類的片外I/O設(shè)備474。位于性能監(jiān)控器466中的控制器468控制確定將熱數(shù)據(jù)發(fā)送到哪里。
盡管以下描述針對(duì)一個(gè)指令流和一個(gè)處理器,但是該指令流可以是一組指令流并且該處理器可以是一組處理器。也就是說(shuō),一組可以是單個(gè)指令流和單個(gè)處理器或者兩個(gè)或更多指令流和處理器。
利用上述體系結(jié)構(gòu),針對(duì)Cell BE芯片的熱管理和熱調(diào)節(jié)進(jìn)行了很多改進(jìn)并添加了可編程性。這些改進(jìn)和所添加的可編程性中的一些使得可以實(shí)現(xiàn)關(guān)鍵特征而另一些增強(qiáng)了可用性。
圖6描述了根據(jù)說(shuō)明性實(shí)施例的用于記錄最大溫度的操作的流程圖。隨著操作開始,包含諸如圖3的Cell BE芯片300之類的Cell Be芯片的計(jì)算機(jī)系統(tǒng)啟動(dòng)或重啟(步驟602)。如以前所述,Cell BE芯片包括通過(guò)圖3的普適邏輯單元351提供的熱管理系統(tǒng)。對(duì)于諸如圖4的DTS 404、406、408和410之類的每個(gè)DTS,該熱管理系統(tǒng)包括一組最大溫度狀態(tài)寄存器和一組當(dāng)前溫度狀態(tài)寄存器,諸如圖4的最大溫度狀態(tài)寄存器414和當(dāng)前溫度狀態(tài)寄存器412。當(dāng)前溫度狀態(tài)寄存器存儲(chǔ)它的目標(biāo)DTS自諸如圖4的熱管理控制狀態(tài)機(jī)458之類的熱管理控制狀態(tài)機(jī)最后一次感應(yīng)DTS之后的當(dāng)前溫度。最大溫度狀態(tài)寄存器存儲(chǔ)它的目標(biāo)DTS自計(jì)算機(jī)系統(tǒng)最后一次讀取最大溫度狀態(tài)寄存器或計(jì)算機(jī)系統(tǒng)重啟之后的最大溫度??梢允褂萌我鈹?shù)量的諸如處理器、集成電路之類的設(shè)備或通過(guò)使用串行外圍接口(SPI)端口或聯(lián)合測(cè)試行動(dòng)小組(JTAG)端口的設(shè)備來(lái)讀取最大溫度狀態(tài)寄存器。但是,通過(guò)JTAG端口讀取寄存器不會(huì)導(dǎo)致重啟。
說(shuō)明性地將以下討論限于一個(gè)DTS,計(jì)算機(jī)系統(tǒng)啟動(dòng)或重啟(步驟602)之后的最大溫度是零。一旦熱管理控制狀態(tài)機(jī)感應(yīng)到DTS的溫度,該熱管理控制狀態(tài)機(jī)就將感應(yīng)的DTS的溫度發(fā)送到諸如圖4的比較器454之類的比較器(步驟604)。該比較器將感應(yīng)溫度與最大溫度狀態(tài)寄存器中存儲(chǔ)的針對(duì)該DTS的當(dāng)前最大溫度進(jìn)行比較(步驟606)。如果在步驟606感應(yīng)溫度高于最大溫度狀態(tài)寄存器中存儲(chǔ)的當(dāng)前最大溫度,那么感應(yīng)溫度變成新的最大溫度并且熱管理控制狀態(tài)機(jī)將新的最大溫度記錄到最大溫度狀態(tài)寄存器中(步驟608)。也就是說(shuō),熱管理控制狀態(tài)機(jī)覆蓋或替換最大溫度狀態(tài)寄存器中存儲(chǔ)的當(dāng)前最大溫度。如果在步驟606感應(yīng)溫度低于或等于最大溫度狀態(tài)寄存器中存儲(chǔ)的當(dāng)前最大溫度,那么最大溫度狀態(tài)寄存器保持最大溫度狀態(tài)寄存器中現(xiàn)有的當(dāng)前最大溫度(步驟610)。
最大溫度狀態(tài)寄存器中的當(dāng)前最大溫度停留在最大溫度直到計(jì)算機(jī)系統(tǒng)以讀取請(qǐng)求的形式讀取最大溫度狀態(tài)寄存器(步驟612)或計(jì)算機(jī)系統(tǒng)重啟為止。如果沒(méi)有讀取當(dāng)前最大溫度,那么操作返回到步驟604。如果在步驟612計(jì)算機(jī)系統(tǒng)讀取當(dāng)前最大溫度,那么熱管理控制狀態(tài)機(jī)將當(dāng)前最大溫度重置為當(dāng)前溫度狀態(tài)寄存器中的當(dāng)前溫度(步驟614),然后操作返回到步驟604。
對(duì)于該操作的一個(gè)示例,如果諸如處理器內(nèi)核或處理器本身之類的特定單元的DTS在一段時(shí)間上要感應(yīng)67℃、70℃、75℃、72℃和74℃的溫度,那么最大溫度狀態(tài)寄存器中的最大溫度將是75℃。如果在對(duì)DTS的第四次感應(yīng)之后,計(jì)算機(jī)系統(tǒng)發(fā)出讀取請(qǐng)求,那么返回的最大溫度將是75℃。但是,此時(shí)熱管理控制狀態(tài)機(jī)將最大溫度重置為當(dāng)前溫度,并且在由DTS執(zhí)行的最后一次感應(yīng)之后,最大溫度狀態(tài)寄存器中的最大溫度將是74℃。
這樣,最大溫度狀態(tài)寄存器的目的是記錄DTS自最大溫度寄存器最后一次被讀取之后達(dá)到的最大溫度。該最大溫度信息幫助操作系統(tǒng)在不用連續(xù)輪詢當(dāng)前溫度寄存器的情況下確定DTS在應(yīng)用或程序執(zhí)行期間達(dá)到的最大溫度。連續(xù)輪詢將影響系統(tǒng)的性能,因此可能影響最大溫度。另外,輪詢當(dāng)前溫度不能保證讀取到最大溫度。如果最大溫度發(fā)生在對(duì)當(dāng)前溫度的多次讀取之間,就屬于這種情況。
圖7描述了根據(jù)另一個(gè)說(shuō)明性實(shí)施例的用于通過(guò)性能監(jiān)控來(lái)跟蹤熱數(shù)據(jù)的操作的流程圖。如前所述,Cell BE芯片包括通過(guò)圖3的普適邏輯單元351提供的熱管理系統(tǒng)??梢酝ㄟ^(guò)諸如圖4的性能監(jiān)控器466之類的性能監(jiān)控器提供性能監(jiān)控。性能監(jiān)控可以跟蹤由諸如圖4的DTS404、406、408和410之類的溫度感應(yīng)設(shè)備提供的在諸如圖4的存儲(chǔ)器470之類的其內(nèi)部存儲(chǔ)器中的熱數(shù)據(jù),寫到諸如圖2的主存儲(chǔ)器208之類的主存儲(chǔ)器或圖4的片外設(shè)備472,或?qū)懙街T如圖2的南橋和輸入/輸出(I/O)控制器中心(ICH)204或圖4的片外I/O設(shè)備474之類的I/O設(shè)備。
性能監(jiān)控支持兩種主要的跟蹤模式跟蹤固定時(shí)間段和持續(xù)跟蹤。對(duì)熱性能的跟蹤可以是諸如圖5的跟蹤500之類的跟蹤。性能監(jiān)控還可以規(guī)定采樣頻率的配置以控制兩個(gè)連續(xù)的采樣之間的時(shí)間段。此外,可以使用熱信息壓縮來(lái)增大采樣間隔。一種壓縮技術(shù)是只在發(fā)生變化時(shí)存儲(chǔ)熱信息。對(duì)相同的熱采樣的數(shù)量的計(jì)數(shù)還可以與熱信息一起存儲(chǔ)。因?yàn)闊嵝畔⒌湫偷刈兓徛赃@是一種有用的技術(shù)。
隨著用于通過(guò)性能監(jiān)控器來(lái)跟蹤熱數(shù)據(jù)的操作開始,諸如圖4的熱管理控制狀態(tài)機(jī)458之類的熱管理控制狀態(tài)機(jī)將性能監(jiān)控器設(shè)置為跟蹤模式(步驟702)。說(shuō)明性地將以下討論限于一個(gè)DTS,熱管理控制狀態(tài)機(jī)感應(yīng)DTS的溫度(步驟704)并將感應(yīng)到的DTS的溫度發(fā)送到當(dāng)前溫度狀態(tài)寄存器和/或其他數(shù)據(jù)結(jié)構(gòu)以進(jìn)行存儲(chǔ)(步驟706)。此時(shí)熱管理控制狀態(tài)機(jī)確定性能監(jiān)控器是否還在運(yùn)行(步驟708)。一旦性能監(jiān)控器在步驟702中啟動(dòng),則該性能監(jiān)控器將運(yùn)行用戶指定的時(shí)間段或運(yùn)行到由用戶通過(guò)用戶輸入而停止。但是,性能監(jiān)控器還可以基于特定的熱狀況而停止。該特定的熱狀況稱為觸發(fā)器,諸如在一組信號(hào)上尋找特定條件的邏輯分析器。觸發(fā)器的使用在軟件調(diào)試中很有用。例如,用戶可以將性能監(jiān)控器設(shè)置為在達(dá)到熱狀況時(shí)停止或檢停(checkstop)系統(tǒng)。這可以使用戶能夠準(zhǔn)確地確定哪條代碼或代碼組合在引發(fā)熱狀況。如果性能監(jiān)控器在步驟708仍然在運(yùn)行,則操作返回到步驟704。
返回到步驟708,如果性能監(jiān)控器不再運(yùn)行,則熱管理控制狀態(tài)機(jī)讀取存儲(chǔ)在存儲(chǔ)器中的溫度信息并以圖形形式為用戶顯示所存儲(chǔ)的信息(步驟710),之后操作結(jié)束。在步驟706發(fā)送到當(dāng)前溫度狀態(tài)寄存器和/或其他數(shù)據(jù)結(jié)構(gòu)的感應(yīng)溫度還可以在操作仍然在箭頭712所表明的處理(步驟710)中時(shí)同時(shí)顯示,而不是等待跟蹤結(jié)束。
這樣,性能監(jiān)控器跟蹤由DTS提供的熱數(shù)據(jù)。自動(dòng)跟蹤熱數(shù)據(jù)消除了對(duì)軟件持續(xù)輪詢當(dāng)前溫度寄存器的需要。性能監(jiān)控對(duì)于收集工作負(fù)載的熱數(shù)據(jù)很重要,原因是性能監(jiān)控不需要插入附加代碼來(lái)輪詢熱數(shù)據(jù),這種插入可能會(huì)改變工作負(fù)載的行為。換句話說(shuō),性能監(jiān)控提供非侵入的方法來(lái)實(shí)時(shí)跟蹤軟件應(yīng)用的熱特征數(shù)據(jù)。將熱信息發(fā)送到性能監(jiān)控器的另外的好處是能夠觸發(fā)或停止對(duì)預(yù)先指定的熱狀況上的熱信息的記錄。另外,性能監(jiān)控器還可以用于在滿足熱狀況時(shí)停止系統(tǒng)(或檢停)。這樣做使用戶能夠確定哪個(gè)代碼段或代碼段組合正在產(chǎn)生熱狀況。然后用戶可以重寫代碼段或避免特定的組合,從而避免了熱事件。
圖8A和圖8B描述了根據(jù)另外的說(shuō)明性實(shí)施例的針對(duì)高級(jí)熱中斷產(chǎn)生的操作的流程圖。如前所述,Cell BE芯片包括通過(guò)圖3的普適邏輯單元351提供的熱管理系統(tǒng)。高級(jí)熱中斷產(chǎn)生是幫助操作系統(tǒng)處理熱事件的另一個(gè)特征。高級(jí)熱中斷邏輯是諸如圖4的TMCU 402之類的熱管理控制單元的一部分。當(dāng)有熱狀況時(shí)(也就是芯片溫度上升到一定的門限以上),熱中斷警告操作系統(tǒng)。在這種情況下,操作系統(tǒng)應(yīng)當(dāng)采取正確措施來(lái)降低芯片溫度。正確措施可以由軟件中斷處理程序處理,軟件中斷處理程序是一條處理熱狀況并初始化正確措施的代碼。然后操作系統(tǒng)等待熱狀況在繼續(xù)正常操作之前消失。這通常需要操作系統(tǒng)等待特定的時(shí)間量,然后輪詢處理器的溫度以確定繼續(xù)正常操作是否安全。使用高級(jí)熱中斷產(chǎn)生,操作系統(tǒng)可以設(shè)置中斷以檢測(cè)溫度何時(shí)下降到一定的門限以下,從而消除了對(duì)輪詢當(dāng)前溫度寄存器的需要。圖4的熱傳感器中斷屏蔽寄存器424(TS_IMR)和熱傳感器中斷狀態(tài)寄存器422(TS_ISR)的組合使操作系統(tǒng)處理熱事件更加容易。
高級(jí)熱中斷產(chǎn)生可以在局部級(jí)別或全局級(jí)別上執(zhí)行。也就是說(shuō),高級(jí)熱中斷產(chǎn)生可以單獨(dú)地(局部)在特定DTS上執(zhí)行或在諸如圖4的DTS 404、406、408和410之類的所有(全局)DTS上執(zhí)行。熱傳感器中斷屏蔽寄存器的方向比特是BG和BX。中斷方向定義了產(chǎn)生中斷的條件。中斷可以在溫度從低于中斷溫度變到等于或高于中斷溫度時(shí),或在溫度從高于或等于中斷溫度變到低于中斷溫度時(shí)產(chǎn)生。熱管理控制狀態(tài)機(jī)用中斷屏蔽寄存器中的方向比特BG和BX來(lái)標(biāo)識(shí)條件。BG是全局方向比特。當(dāng)BG設(shè)置為‘0’時(shí),熱管理控制狀態(tài)機(jī)在任意DTS的溫度大于或等于全局中斷溫度時(shí)產(chǎn)生中斷。當(dāng)BG設(shè)置為‘1’時(shí),熱管理控制狀態(tài)機(jī)在所有DTS的溫度都低于全局中斷溫度時(shí)產(chǎn)生中斷。BX是局部方向比特,其中X是單獨(dú)關(guān)聯(lián)的DTS的數(shù)量。當(dāng)BX設(shè)置為‘0’時(shí),熱管理控制狀態(tài)機(jī)在單獨(dú)DTS的溫度大于或等于DTS中斷溫度時(shí)產(chǎn)生中斷。當(dāng)BX設(shè)置為‘1’時(shí),熱管理控制狀態(tài)機(jī)在單獨(dú)DTS的溫度低于DTS中斷溫度時(shí)產(chǎn)生中斷。熱中斷狀態(tài)寄存器(TS_ISR)記錄哪個(gè)傳感器引起了高級(jí)熱中斷。軟件讀取該寄存器以確定發(fā)生了哪種狀況以及哪個(gè)傳感器或哪些傳感器引起了中斷。一旦被軟件讀取,熱管理控制狀態(tài)機(jī)就重置熱中斷狀態(tài)寄存器中的狀態(tài)比特。
因此,針對(duì)高級(jí)熱中斷產(chǎn)生的操作可以從全局和局部角度示出。圖8A描述了全局高級(jí)熱中斷產(chǎn)生,圖8B描述了局部高級(jí)熱中斷產(chǎn)生。隨著操作在圖8A的全局高級(jí)熱中斷產(chǎn)生中開始,熱管理控制狀態(tài)機(jī)將全局中斷溫度T設(shè)置為溫度T1并將全局中斷方向BG設(shè)置為‘0’(步驟802)。熱管理控制狀態(tài)機(jī)感應(yīng)DTS的溫度(步驟804)。熱管理控制狀態(tài)機(jī)確定是否有任意從DTS感應(yīng)的溫度大于或等于溫度T1(步驟806)。如果沒(méi)有感應(yīng)溫度大于或等于溫度T1,那么操作返回到步驟804。如果在步驟806任意一個(gè)感應(yīng)溫度大于或等于溫度T1,那么熱管理控制狀態(tài)機(jī)產(chǎn)生中斷并設(shè)置熱中斷狀態(tài)寄存器中的相應(yīng)狀態(tài)比特以記錄哪個(gè)傳感器或哪些傳感器引起了中斷(步驟808)。然后操作系統(tǒng)將為中斷提供服務(wù)并且可以減緩處理器上的工作負(fù)載或?qū)⑻幚砥鞯牟糠止ぷ髫?fù)載卸載到系統(tǒng)中的另一個(gè)處理器。
在產(chǎn)生中斷之后,熱管理控制狀態(tài)機(jī)將全局中斷溫度T設(shè)置為溫度T2并將全局中斷方向BG設(shè)置為‘1’(步驟810)。溫度T2應(yīng)當(dāng)設(shè)置為小于或等于溫度T1。熱管理控制狀態(tài)機(jī)再次感應(yīng)DTS的溫度(步驟812)。熱管理控制狀態(tài)機(jī)確定是否所有從DTS感應(yīng)的溫度都低于溫度T2(步驟814)。如果沒(méi)有感應(yīng)溫度低于溫度T2,那么操作返回到步驟812。如果在步驟814所有感應(yīng)溫度都低于溫度T2,那么熱管理控制狀態(tài)機(jī)產(chǎn)生中斷并設(shè)置熱中斷狀態(tài)寄存器中的相應(yīng)狀態(tài)比特以記錄哪個(gè)傳感器或哪些傳感器引起了中斷(步驟816)。此時(shí),操作系統(tǒng)繼續(xù)正常操作現(xiàn)在是安全的。然后操作系統(tǒng)將為中斷提供服務(wù)并且將系統(tǒng)恢復(fù)到正常操作。下一步,操作返回到步驟802,其中全局中斷溫度T設(shè)置為溫度T1并且全局中斷方向BG設(shè)置為‘0’。
該操作的一個(gè)示例是所有DTS都具有全局中斷溫度80℃和全局中斷方向‘0’。一旦諸如處理器內(nèi)核或處理器本身之類的關(guān)聯(lián)的單元的任意DTS感應(yīng)到大于或等于80℃的溫度,熱管理控制狀態(tài)機(jī)就產(chǎn)生中斷并設(shè)置熱中斷狀態(tài)寄存器中的相應(yīng)狀態(tài)比特以記錄哪個(gè)傳感器或哪些傳感器引起了中斷。然后操作系統(tǒng)將為中斷提供服務(wù)并且可以減緩處理器上的工作負(fù)載或?qū)⑻幚砥鞯牟糠止ぷ髫?fù)載卸載到系統(tǒng)中的另一個(gè)處理器。同樣,此時(shí)熱管理控制狀態(tài)機(jī)可以將全局中斷溫度重置為示例性的77℃并將全局中斷方向設(shè)置為‘1’。工作負(fù)載將繼續(xù)在慢模式下操作或保持不被處理器處理直到DTS感應(yīng)到對(duì)于所有DTS都低于77℃的溫度。一旦熱管理控制狀態(tài)機(jī)確定感應(yīng)溫度低于77℃,該熱管理控制狀態(tài)機(jī)就產(chǎn)生另一個(gè)中斷。熱管理控制狀態(tài)機(jī)將全局中斷溫度設(shè)置為80℃,將全局中斷方向設(shè)置為‘0’,然后操作系統(tǒng)繼續(xù)對(duì)工作負(fù)載的正常操作。
轉(zhuǎn)到圖8B,將說(shuō)明性實(shí)施例限于一個(gè)DTS,但該說(shuō)明性實(shí)施例對(duì)于每個(gè)DTS都是相同的。隨著針對(duì)局部高級(jí)熱中斷產(chǎn)生的操作開始,熱管理控制狀態(tài)機(jī)將局部中斷溫度T設(shè)置為溫度T3并將局部中斷方向BX設(shè)置為‘0’(步驟852)。熱管理控制狀態(tài)機(jī)感應(yīng)DTS的溫度(步驟854)。熱管理控制狀態(tài)機(jī)確定從DTS感應(yīng)的溫度是否大于或等于溫度T3(步驟856)。如果感應(yīng)溫度并不大于或等于溫度T3,那么操作返回到步驟854。如果感應(yīng)溫度大于或等于溫度T3,那么熱管理控制狀態(tài)機(jī)產(chǎn)生中斷并設(shè)置熱中斷狀態(tài)寄存器中的相應(yīng)狀態(tài)比特以記錄哪個(gè)傳感器或哪些傳感器引起了中斷(步驟858)。然后操作系統(tǒng)將為中斷提供服務(wù)并且可以減緩處理器上的工作負(fù)載或?qū)⑻幚砥鞯牟糠止ぷ髫?fù)載卸載到處理器內(nèi)其他單元或卸載到系統(tǒng)中的另一個(gè)處理器。
在熱管理控制狀態(tài)機(jī)產(chǎn)生中斷之后,熱管理控制狀態(tài)機(jī)將局部中斷溫度T設(shè)置為溫度T4并將全局中斷方向BX設(shè)置為‘1’(步驟860)。溫度T4應(yīng)當(dāng)設(shè)置為小于或等于溫度T3。熱管理控制狀態(tài)機(jī)再次感應(yīng)DTS的溫度(步驟862)。熱管理控制狀態(tài)機(jī)確定從DTS感應(yīng)的溫度是否低于溫度T4(步驟864)。如果感應(yīng)溫度不低于溫度T4,那么操作返回到步驟862。如果感應(yīng)溫度低于溫度T4,那么熱管理控制狀態(tài)機(jī)產(chǎn)生中斷并設(shè)置熱中斷狀態(tài)寄存器中的相應(yīng)狀態(tài)比特以記錄哪個(gè)傳感器或哪些傳感器引起了中斷(步驟866)。此時(shí),操作系統(tǒng)繼續(xù)正常操作現(xiàn)在是安全的。然后操作系統(tǒng)將為中斷提供服務(wù)并且將系統(tǒng)恢復(fù)到正常操作。下一步,操作返回到步驟852,其中熱管理控制狀態(tài)機(jī)將全局中斷溫度T設(shè)置為溫度T3并且全局中斷方向BX設(shè)置為‘0’。
該操作的一個(gè)示例是給定的DTS具有局部中斷溫度80℃和局部中斷方向‘0’。一旦關(guān)聯(lián)的單元的DTS感應(yīng)到大于或等于80℃的溫度,熱管理控制狀態(tài)機(jī)就產(chǎn)生中斷并設(shè)置熱中斷狀態(tài)寄存器中的相應(yīng)狀態(tài)比特以記錄哪個(gè)傳感器或哪些傳感器引起了中斷。然后操作系統(tǒng)將為中斷提供服務(wù)并且可以減緩處理器上的工作負(fù)載或?qū)⑻幚砥鞯牟糠止ぷ髫?fù)載卸載到系統(tǒng)中的另一個(gè)處理器。同樣,此時(shí)熱管理控制狀態(tài)機(jī)可以將局部中斷溫度重置為示例性的77℃并將局部中斷方向設(shè)置為‘1’。工作負(fù)載將繼續(xù)在慢模式下運(yùn)行或保持在處理器單元之外直到DTS感應(yīng)到低于77℃的溫度。一旦熱管理控制狀態(tài)機(jī)確定感應(yīng)溫度低于77℃,該熱管理控制狀態(tài)機(jī)就產(chǎn)生另一個(gè)中斷。熱管理控制狀態(tài)機(jī)將局部中斷溫度設(shè)置為80℃,將局部中斷方向設(shè)置為‘0’,然后操作系統(tǒng)繼續(xù)對(duì)工作負(fù)載的正常操作。
這樣,高級(jí)熱中斷產(chǎn)生使操作系統(tǒng)能夠?qū)χ袛喈a(chǎn)生進(jìn)行編程以跟隨溫度變化的方向,并且消除了對(duì)中斷處理程序的需要以在熱中斷的情況下持續(xù)輪詢當(dāng)前溫度。
圖9描述了根據(jù)另外的說(shuō)明性實(shí)施例的用于在熱管理系統(tǒng)中支持深度節(jié)能模式和部分良好的操作的流程圖。如前所述,Cell BE芯片包括通過(guò)圖3的普適邏輯單元351提供的熱管理系統(tǒng)。在圖3的Cell BE芯片300中,存在多種節(jié)能模式。根據(jù)每種節(jié)能模式的實(shí)現(xiàn)方式,一些節(jié)能模式可以限制諸如圖4的DTS 404、406、408和410之類的DTS的可訪問(wèn)性。例如,如果諸如圖3的SPU 310、311和312之類的SPU處于時(shí)鐘關(guān)閉的節(jié)能模式,也就是說(shuō)諸如圖4的解串器462之類的解串器被禁用,那么諸如圖4的串行器456之類的串行器與諸如圖4的DTS 404之類的DTS之間的路徑不起作用。節(jié)能模式的另一個(gè)示例可以是電源關(guān)閉的情況。在這種情況下,實(shí)際的DTS可能被禁用。另一個(gè)示例是熱管理控制狀態(tài)機(jī)確定處理器內(nèi)的傳感器或單元在制造測(cè)試期間是否壞掉的情況。如果傳感器或單元是多余的,制造商可以將該傳感器或單元標(biāo)記為不合格,從而產(chǎn)生將只有有限數(shù)量的單元或傳感器起作用的部分良好的處理器。在任一情況下,諸如圖4的熱管理控制狀態(tài)機(jī)458之類的熱管理控制狀態(tài)機(jī)需要監(jiān)控這些電源模式的狀態(tài)并屏蔽掉不起作用的DTS使其不能參與熱管理任務(wù)(調(diào)節(jié)、中斷等)。
返回到圖9,其描述了用于在熱感應(yīng)和熱管理系統(tǒng)中支持深度節(jié)能模式和部分良好的操作的流程圖。隨著操作開始,熱管理控制狀態(tài)機(jī)使用來(lái)自各DTS的數(shù)據(jù)跟蹤DTS的狀態(tài)(步驟902)。熱管理控制狀態(tài)機(jī)將這些數(shù)據(jù)存儲(chǔ)到內(nèi)部校準(zhǔn)存儲(chǔ)器中,諸如圖4的內(nèi)部校準(zhǔn)存儲(chǔ)器428中。如前所述,節(jié)能模式、不合格的DTS或通過(guò)諸如圖4的數(shù)據(jù)流460之類的數(shù)據(jù)流與熱管理控制狀態(tài)機(jī)通信的SPU可以禁止特定DTS的操作。由制造工藝報(bào)告的部分良好狀況的效果與節(jié)能模式類似,只不過(guò)部分良好是永久條件并且應(yīng)當(dāng)永久地屏蔽掉DTS。在SPU被標(biāo)記為不合格的情況下,熱管理控制狀態(tài)機(jī)關(guān)閉整個(gè)SPU,并禁用串行器。在DTS被標(biāo)記為不合格的情況下,熱管理控制狀態(tài)機(jī)屏蔽掉該DTS。熱管理控制狀態(tài)機(jī)確定DTS或SPU是不合格還是在起作用(步驟904)。如果DTS或SPU不合格,則熱管理控制狀態(tài)機(jī)屏蔽掉DTS(步驟906),之后操作結(jié)束。
為了屏蔽掉處于電源管理狀態(tài)的DTS,熱管理控制狀態(tài)機(jī)將諸如圖4的當(dāng)前溫度狀態(tài)寄存器412之類的當(dāng)前溫度狀態(tài)寄存器中的相關(guān)的當(dāng)前溫度狀態(tài)寄存器重置為0x0,0x0是最低溫度設(shè)置。另一種方法還可以是通過(guò)設(shè)置狀態(tài)比特來(lái)分配相關(guān)的當(dāng)前溫度狀態(tài)寄存器的編碼,以表明DTS被屏蔽,這可以比只重置傳感器讀數(shù)更加精確。然后熱管理控制狀態(tài)機(jī)從當(dāng)前溫度狀態(tài)寄存器停止去往和來(lái)自DTS的通信。停止通信是一個(gè)可選步驟,主要用于節(jié)能和不執(zhí)行無(wú)用的開銷工作。然后熱管理控制狀態(tài)機(jī)產(chǎn)生表明DTS現(xiàn)在被屏蔽并且不應(yīng)當(dāng)參與熱管理任務(wù)的信號(hào)。最后,熱管理控制狀態(tài)機(jī)重置DTS的狀態(tài)。當(dāng)諸如處理器內(nèi)核或處理器本身之類的與DTS相關(guān)的單元退出節(jié)能模式時(shí),熱管理控制狀態(tài)機(jī)繼續(xù)與DTS通信,繼續(xù)對(duì)當(dāng)前溫度狀態(tài)寄存器進(jìn)行更新,并發(fā)送DTS可以參與熱管理任務(wù)的信號(hào)。
返回步驟904,如果DTS和SPU都起作用,則熱管理控制狀態(tài)機(jī)開始與DTS通信(步驟908)。熱管理控制狀態(tài)機(jī)監(jiān)控SPU的電源管理狀態(tài)以確定SPU何時(shí)進(jìn)入節(jié)能模式(步驟910)。在SPU進(jìn)入節(jié)能模式之前,操作返回到步驟908。如果SPU進(jìn)入節(jié)能模式并且DTS被禁用,那么熱管理控制狀態(tài)機(jī)用上面結(jié)合步驟906而討論的方法屏蔽掉DTS(步驟912)。由于表明了DTS是禁用還是在起作用,熱管理控制狀態(tài)機(jī)繼續(xù)監(jiān)控SPU的電源管理狀態(tài)(步驟914)。在SPU退出節(jié)能模式之前,操作返回到步驟912。當(dāng)SPU退出節(jié)能模式并且DTS不再被禁用時(shí),熱管理控制狀態(tài)機(jī)開始與DTS通信,繼續(xù)對(duì)當(dāng)前溫度狀態(tài)寄存器進(jìn)行更新,并發(fā)送DTS可以參與熱管理任務(wù)的信號(hào)(步驟916),然后操作返回到步驟908。
這樣,對(duì)部分良好、不合格或處于節(jié)能模式的DTS的溫度讀數(shù)的屏蔽隔離了不工作的或禁用的DTS使其不能參與熱管理任務(wù)。
圖10描述了根據(jù)另外的說(shuō)明性實(shí)施例的針對(duì)使熱感知軟件應(yīng)用的實(shí)時(shí)測(cè)試能夠與溫度相獨(dú)立的熱調(diào)節(jié)控制特征的操作的流程圖。如前所述,Cell BE芯片包括通過(guò)圖3的普適邏輯單元351提供的熱管理系統(tǒng)。諸如圖4的熱管理控制寄存器430之類的熱管理控制寄存器為各種熱調(diào)節(jié)控制特征提供訪問(wèn)和配置。將熱調(diào)節(jié)設(shè)計(jì)為通過(guò)在使用調(diào)節(jié)的熱事件的情況下消減性能來(lái)降低溫度。
諸如圖4的熱管理停止時(shí)間寄存器434之類的熱管理停止時(shí)間寄存器,和諸如圖4的熱管理調(diào)節(jié)比例寄存器436之類的熱管理調(diào)節(jié)比例寄存器一起設(shè)置調(diào)節(jié)量和調(diào)節(jié)行為。在實(shí)時(shí)系統(tǒng)中,需要保證實(shí)時(shí)期限。軟件開發(fā)者和質(zhì)量保證團(tuán)隊(duì)知道并測(cè)試最大調(diào)節(jié)量很重要,最大調(diào)節(jié)量是程序或代碼段能夠容忍并仍然保證實(shí)時(shí)系統(tǒng)的實(shí)時(shí)期限的熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的最大設(shè)置。作為對(duì)調(diào)節(jié)硬件的實(shí)際溫度以引發(fā)熱事件并且因此觸發(fā)調(diào)節(jié)條件的替代,熱管理控制狀態(tài)機(jī)提供了不管溫度如何都始終提供調(diào)節(jié)的模式。熱管理控制狀態(tài)機(jī)在熱管理控制寄存器中設(shè)置該模式,這將芯片設(shè)置為恒定調(diào)節(jié)狀態(tài)。該特征幫助軟件開發(fā)者進(jìn)行測(cè)試并確保他們的代碼滿足實(shí)時(shí)標(biāo)準(zhǔn)。
隨著操作開始,接收熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的熱控制設(shè)置(步驟1002)。熱管理控制狀態(tài)機(jī)使用熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的設(shè)置來(lái)確定如何執(zhí)行調(diào)節(jié)。然后,熱管理控制狀態(tài)機(jī)設(shè)置測(cè)試模式并將熱管理控制寄存器設(shè)置為始終調(diào)節(jié)設(shè)置(步驟1004)。然后程序運(yùn)行以進(jìn)行實(shí)時(shí)確認(rèn),即軟件或程序?qū)⒃跓峁芾硗V箷r(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的熱控制設(shè)置下滿足實(shí)時(shí)期限(1006)。測(cè)試模式可以是任意類型的調(diào)節(jié)模式,諸如始終調(diào)節(jié)或隨機(jī)調(diào)節(jié)。然后熱管理控制狀態(tài)機(jī)確定是否滿足實(shí)時(shí)期限(步驟1008)。如果不滿足實(shí)時(shí)期限,則熱管理控制狀態(tài)機(jī)將當(dāng)前熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的熱控制設(shè)置記錄為失敗(步驟1010)。然后熱管理控制狀態(tài)機(jī)確定是否有將降低調(diào)節(jié)量的任意新的熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的熱控制設(shè)置(步驟1012)。如果有新的熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的熱控制設(shè)置,則操作返回到步驟1002。如果在步驟1002沒(méi)有任何新的熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的熱控制設(shè)置,則操作結(jié)束。
返回到步驟1008,如果滿足實(shí)時(shí)期限,則熱管理控制狀態(tài)機(jī)將當(dāng)前熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的熱控制設(shè)置記錄為通過(guò)(步驟1014)。熱管理控制狀態(tài)機(jī)確定是否有將增加調(diào)節(jié)量的任意新的熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的熱控制設(shè)置(步驟1016)。如果有新的熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的熱控制設(shè)置,則操作返回到步驟1002。如果在步驟1016沒(méi)有任何新的熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器的熱控制設(shè)置,則操作結(jié)束。
這樣,提供始終調(diào)節(jié)的操作模式幫助軟件開發(fā)者進(jìn)行測(cè)試并確保他們的代碼在最壞情況的熱狀況下也能滿足實(shí)時(shí)期限。軟件開發(fā)者和質(zhì)量保證團(tuán)隊(duì)可以使用該特征來(lái)確定程序或代碼段能夠容許并仍然保證滿足實(shí)時(shí)系統(tǒng)的實(shí)時(shí)期限的最大調(diào)節(jié)量。一旦熱管理控制狀態(tài)機(jī)確定并確認(rèn)了最大調(diào)節(jié)量,軟件就可以將中斷設(shè)置為在全面調(diào)節(jié)發(fā)生的狀況下發(fā)生。如果熱管理控制狀態(tài)機(jī)總是產(chǎn)生該中斷,那么熱管理控制狀態(tài)機(jī)通知應(yīng)用可能存在違反或不滿足實(shí)時(shí)保證的情況。
除了始終調(diào)節(jié)控制設(shè)置,實(shí)現(xiàn)方式還可以提供注入隨機(jī)熱事件或定向隨機(jī)熱事件的模式以對(duì)調(diào)節(jié)與軟件執(zhí)行的更具有真實(shí)感的交互進(jìn)行仿真。該技術(shù)類似于在總線上隨機(jī)注入錯(cuò)誤以測(cè)試錯(cuò)誤恢復(fù)代碼。
圖11描述了根據(jù)另外的說(shuō)明性實(shí)施例的用于實(shí)現(xiàn)對(duì)中斷等待時(shí)間影響最小的熱調(diào)節(jié)控制的操作的流程圖。如前所述,Cell BE芯片包括通過(guò)圖3的普適邏輯單元351提供的熱管理系統(tǒng)。當(dāng)計(jì)算機(jī)系統(tǒng)的任意部分被放置在調(diào)節(jié)條件下,該調(diào)節(jié)條件會(huì)降低整個(gè)系統(tǒng)的性能。性能的降低會(huì)根據(jù)要多久才能為該中斷提供服務(wù)以及將為該中斷提供多久的服務(wù)而增加中斷等待時(shí)間。中斷等待時(shí)間的增加在總體上對(duì)系統(tǒng)有嚴(yán)重的影響,因此期望并且有必要最小化熱調(diào)節(jié)對(duì)中斷等待時(shí)間的影響。最小化熱調(diào)節(jié)因中斷等待時(shí)間而產(chǎn)生的影響是針對(duì)諸如由圖3的PPU 308進(jìn)行的PPU調(diào)節(jié)控制的特征。諸如圖3的SPU 310、311和312之類的SPU不會(huì)獲得中斷,因此不會(huì)被該特征影響。
隨著操作開始,諸如圖4的熱管理控制狀態(tài)機(jī)458之類的熱管理控制狀態(tài)機(jī)監(jiān)控所有的PPU中斷狀態(tài)比特和熱管理系統(tǒng)中斷屏蔽寄存器,諸如圖4的熱管理系統(tǒng)中斷屏蔽寄存器438(步驟1102)。熱管理系統(tǒng)中斷屏蔽寄存器控制對(duì)中斷的屏蔽。熱管理控制狀態(tài)機(jī)確定是否有任意未屏蔽的未決中斷(步驟1104)。如果沒(méi)有未決中斷或者有未決中斷但是被屏蔽了,則操作返回到步驟1102。
如果在步驟1104有未屏蔽的未決中斷,則熱管理控制狀態(tài)機(jī)暫時(shí)禁用任何調(diào)節(jié)模式,不管是部分調(diào)節(jié)還是全面調(diào)節(jié)狀態(tài)(步驟1106)。禁用調(diào)節(jié)模式使PPU能夠在沒(méi)有熱調(diào)節(jié)效果引起的任何延遲的情況下暫時(shí)以全性能運(yùn)行并處理任意未決中斷。同樣,熱管理控制狀態(tài)機(jī)監(jiān)控所有的PPU中斷狀態(tài)和熱管理系統(tǒng)中斷屏蔽寄存器(步驟1108)。熱管理控制狀態(tài)機(jī)確定是否有任意未屏蔽的未決中斷(步驟1110)。如果沒(méi)有未決中斷或者有未決中斷但是被屏蔽了,則操作返回到步驟1108。當(dāng)在步驟1110中斷狀態(tài)清除時(shí),熱管理控制狀態(tài)機(jī)將PPU恢復(fù)到初始調(diào)節(jié)模式(步驟1112),并且操作返回到步驟1102。
中斷處理程序可以選擇在中斷處理程序例程的開頭或結(jié)尾清除中斷狀態(tài)比特。中斷處理程序可以位于諸如圖3的Power處理器單元301之類的Power處理器單元或由Power處理器單元執(zhí)行的軟件中。如果中斷處理程序選擇在開頭清除中斷狀態(tài)比特并且還希望避免PPU的任意性能降低,則中斷處理程序可以在清除中斷狀態(tài)比特之前禁用熱調(diào)節(jié)。也就是說(shuō),中斷不引發(fā)控制寄存器中的變化。因此,調(diào)節(jié)仍然是啟用的,但是在出現(xiàn)未屏蔽中斷時(shí)由諸如圖4的TMCU 402之類的熱管理控制單元掛起。如果中斷處理程序應(yīng)當(dāng)在對(duì)中斷進(jìn)行處理之前重置中斷狀態(tài),則該處理程序應(yīng)當(dāng)將控制寄存器設(shè)置為禁用調(diào)節(jié)(或?qū)⒄{(diào)節(jié)量減小到可接受的級(jí)別),重置中斷,為中斷提供服務(wù),然后重新啟用調(diào)節(jié)或?qū)⒄{(diào)節(jié)量設(shè)回以前的級(jí)別??梢酝ㄟ^(guò)將諸如圖4的熱管理控制寄存器430之類的熱管理控制寄存器設(shè)置為0XX來(lái)執(zhí)行對(duì)熱調(diào)節(jié)的示例性禁用,其中X是“無(wú)關(guān)位”(does not care)。在中斷例程的結(jié)尾,中斷處理程序應(yīng)當(dāng)將熱管理控制寄存器設(shè)回它的初始值。如果中斷處理程序在中斷例程結(jié)尾清除中斷狀態(tài)比特,那么就不需要額外的工作,并且只要中斷狀態(tài)比特是激活的,熱管理控制狀態(tài)機(jī)就會(huì)將PPU保持在調(diào)節(jié)模式之外。
圖1 2描述了根據(jù)另外的說(shuō)明性實(shí)施例的用于熱調(diào)節(jié)中的滯后的操作的流程圖。如前所述,Cell BE芯片包括通過(guò)圖3的普適邏輯單元351提供的熱管理系統(tǒng)。熱調(diào)節(jié)中的滯后是做出諸如調(diào)節(jié)或結(jié)束調(diào)節(jié)之類的改變與該變化的響應(yīng)或效果之間的遲滯。例如,如果將調(diào)節(jié)點(diǎn)設(shè)置為75℃并將結(jié)束調(diào)節(jié)點(diǎn)設(shè)置為72℃,那么滯后范圍是從75℃到72℃。
圖5描述了熱調(diào)節(jié)滯后。
諸如圖4的熱管理調(diào)節(jié)點(diǎn)寄存器432之類的熱管理調(diào)節(jié)點(diǎn)寄存器提供兩個(gè)溫度設(shè)置調(diào)節(jié)溫度和結(jié)束調(diào)節(jié)溫度。調(diào)節(jié)溫度應(yīng)當(dāng)設(shè)置為高于結(jié)束調(diào)節(jié)溫度。溫度差異定義了調(diào)節(jié)溫度和結(jié)束調(diào)節(jié)溫度之間的滯后量,從而提供了可編程的滯后量。
說(shuō)明性地將以下討論限于一個(gè)DTS,隨著滯后熱調(diào)節(jié)的操作開始,熱管理控制狀態(tài)機(jī)設(shè)置熱管理調(diào)節(jié)點(diǎn)寄存器中的調(diào)節(jié)溫度和結(jié)束調(diào)節(jié)溫度(步驟1202)。熱管理控制狀態(tài)機(jī)感應(yīng)DTS的溫度(步驟1204)。熱管理控制狀態(tài)機(jī)確定從DTS感應(yīng)的溫度是否大于或等于調(diào)節(jié)溫度(步驟1206)。如果感應(yīng)溫度并不大于或等于調(diào)節(jié)溫度,則操作返回步驟1204。如果在步驟1206感應(yīng)溫度大于或等于調(diào)節(jié)溫度,則熱管理控制狀態(tài)機(jī)初始化調(diào)節(jié)模式(步驟1208)。
同樣,熱管理控制狀態(tài)機(jī)感應(yīng)DTS的溫度(步驟1210)。熱管理控制狀態(tài)機(jī)確定從DTS感應(yīng)的溫度是否大于或等于結(jié)束調(diào)節(jié)溫度(步驟1212)。如果感應(yīng)溫度不小于結(jié)束調(diào)節(jié)溫度,則操作返回步驟1210。如果在步驟1212感應(yīng)溫度小于結(jié)束調(diào)節(jié)溫度,則熱管理控制狀態(tài)機(jī)禁用調(diào)節(jié)模式(步驟1214),操作返回到步驟1204。
這樣,假定正確配置了熱管理控制寄存器以允許調(diào)節(jié)模式,當(dāng)溫度上升到等于或高于調(diào)節(jié)溫度時(shí),熱管理控制狀態(tài)機(jī)使單元進(jìn)入調(diào)節(jié)模式。熱管理控制狀態(tài)機(jī)將單元保持在調(diào)節(jié)模式下直到溫度下降到結(jié)束調(diào)節(jié)溫度以下。如果結(jié)束調(diào)節(jié)溫度小于調(diào)節(jié)溫度,那么所標(biāo)識(shí)的滯后使單元能夠在禁用調(diào)節(jié)模式之前充分冷卻。沒(méi)有滯后,單元可能會(huì)很頻繁地進(jìn)入和退出調(diào)節(jié)模式并降低調(diào)節(jié)的整體效率和處理器的效率。
可以通過(guò)阻斷指令的分派來(lái)完成示例性處理器調(diào)節(jié)方法。如果調(diào)節(jié)被頻繁地啟動(dòng)和禁用,那么可能會(huì)經(jīng)常刷新處理器的流水線,從而降低處理能力。另一個(gè)示例性處理器調(diào)節(jié)方法可以通過(guò)減緩時(shí)鐘頻率來(lái)完成。
圖13描述了根據(jù)另外的說(shuō)明性實(shí)施例的用于實(shí)現(xiàn)熱調(diào)節(jié)邏輯的操作的流程圖。圖13表示一個(gè)如以上附圖所述的完整的熱管理解決方案。如前所述,Cell BE芯片包括通過(guò)圖3的普適邏輯單元351提供的熱管理系統(tǒng)。諸如圖4的TMCU 402之類的TMCU包括多個(gè)動(dòng)態(tài)熱管理寄存器。動(dòng)態(tài)熱管理寄存器是熱管理控制寄存器、熱管理調(diào)節(jié)點(diǎn)寄存器、熱管理停止時(shí)間寄存器、熱管理調(diào)節(jié)比例寄存器和熱管理系統(tǒng)中斷屏蔽寄存器,諸如圖4的熱管理控制寄存器430(TM_CR1和TM_CR2)、熱管理調(diào)節(jié)點(diǎn)寄存器432(TM_TPR)、熱管理停止時(shí)間寄存器434(TM_STR1和TM_STR2)、熱管理調(diào)節(jié)比例寄存器436(TM_TSR)和熱管理系統(tǒng)中斷屏蔽寄存器438(TM_SIMR)。
熱管理調(diào)節(jié)點(diǎn)寄存器設(shè)置針對(duì)DTS的調(diào)節(jié)點(diǎn)??梢栽跓峁芾碚{(diào)節(jié)點(diǎn)寄存器中設(shè)置兩個(gè)獨(dú)立的調(diào)節(jié)點(diǎn),一個(gè)針對(duì)PPE,一個(gè)針對(duì)SPE。該寄存器中還包含用于啟用調(diào)節(jié)和禁用調(diào)節(jié)或者停止PPE或SPE的溫度點(diǎn)。當(dāng)溫度等于或關(guān)于調(diào)節(jié)點(diǎn)時(shí)開始對(duì)PPE或SPE的執(zhí)行調(diào)節(jié)。當(dāng)溫度下降到禁用調(diào)節(jié)的溫度以下時(shí)調(diào)節(jié)停止。如果溫度達(dá)到全面調(diào)節(jié)溫度或停止溫度,則停止對(duì)PPE或SPE的執(zhí)行。
熱管理控制狀態(tài)機(jī)使用熱管理停止時(shí)間寄存器和熱管理調(diào)節(jié)比例寄存器來(lái)控制調(diào)節(jié)頻率和調(diào)節(jié)量。當(dāng)溫度達(dá)到調(diào)節(jié)點(diǎn)時(shí),熱管理控制狀態(tài)機(jī)將相應(yīng)的PPE或SPE停止由在熱管理調(diào)節(jié)比例寄存器中的相應(yīng)比例值指定的時(shí)鐘數(shù)。然后熱管理控制狀態(tài)機(jī)使PPE或SPE能夠運(yùn)行由在熱管理停止時(shí)間寄存器中的運(yùn)行值乘以相應(yīng)的比例值所指定的時(shí)鐘數(shù)。該序列持續(xù)到溫度下降到禁用調(diào)節(jié)以下。
熱管理控制狀態(tài)機(jī)使用熱管理系統(tǒng)中斷屏蔽寄存器來(lái)選擇哪些中斷在中斷未決的同時(shí)禁用對(duì)PPE的調(diào)節(jié)。
熱管理控制寄存器獨(dú)立地為每個(gè)PPE或SPE設(shè)置調(diào)節(jié)模式。下面是可以獨(dú)立地為每個(gè)PPE或SPE設(shè)置的五種不同的模式禁用動(dòng)態(tài)調(diào)節(jié)(包括內(nèi)核停止安全性);正常操作(啟用動(dòng)態(tài)調(diào)節(jié)和內(nèi)核停止安全性);
始終調(diào)節(jié)PPE或SPE(啟用內(nèi)核停止安全性);禁用內(nèi)核停止安全性(啟用動(dòng)態(tài)調(diào)節(jié)并且禁用內(nèi)核停止安全性);始終調(diào)節(jié)PPE或SPE并且禁用內(nèi)核停止安全性。
作為用于實(shí)現(xiàn)熱調(diào)節(jié)邏輯的操作,熱管理控制狀態(tài)機(jī)設(shè)置熱管理調(diào)節(jié)點(diǎn)寄存器中的調(diào)節(jié)溫度和結(jié)束調(diào)節(jié)溫度(步驟1302)。熱管理控制狀態(tài)機(jī)感應(yīng)DTS的溫度(步驟1304)。熱管理控制狀態(tài)機(jī)確定從DTS感應(yīng)的溫度是否大于或等于調(diào)節(jié)溫度(步驟1306)。如果感應(yīng)溫度并不大于或等于調(diào)節(jié)溫度,則操作返回步驟1304。如果感應(yīng)溫度大于或等于調(diào)節(jié)溫度,則熱管理控制狀態(tài)機(jī)初始化調(diào)節(jié)模式(步驟1308)。
然后,熱管理控制狀態(tài)機(jī)通過(guò)如熱管理控制寄存器中所表明的值所表示的調(diào)節(jié)類型來(lái)控制調(diào)節(jié)(步驟1310)。一旦表明了調(diào)節(jié)模式,熱管理控制狀態(tài)機(jī)就通過(guò)在熱管理停止時(shí)間寄存器中所表明的調(diào)節(jié)量來(lái)限制調(diào)節(jié)(步驟1312)。停止時(shí)間寄存器設(shè)置處理器將停止的時(shí)間與將允許處理器運(yùn)行的時(shí)間之間的比值或調(diào)節(jié)百分比。最后,熱管理控制狀態(tài)機(jī)通過(guò)在熱管理比例寄存器中指定的值來(lái)縮放停止的持續(xù)時(shí)間和運(yùn)行時(shí)間(步驟1314)。此時(shí)操作分為并發(fā)的操作,即步驟1316和步驟1322。在步驟1316,熱管理控制狀態(tài)機(jī)感應(yīng)DTS的溫度。熱管理控制狀態(tài)機(jī)確定從DTS感應(yīng)的溫度是否小于調(diào)節(jié)溫度(步驟1318)。如果感應(yīng)溫度不小于結(jié)束調(diào)節(jié)溫度,則操作返回步驟1316。如果DTS小于結(jié)束調(diào)節(jié)溫度,則熱管理控制狀態(tài)機(jī)禁用調(diào)節(jié)模式(步驟1320),操作返回到步驟1304。
返回到步驟1314,在實(shí)現(xiàn)最終的調(diào)節(jié)限制之后,熱管理控制狀態(tài)機(jī)并發(fā)地監(jiān)控任意未決中斷的所有PPU中斷狀態(tài)(步驟1322)。如果在實(shí)現(xiàn)調(diào)節(jié)時(shí)遇到中斷,則熱管理控制狀態(tài)機(jī)暫時(shí)禁用任何調(diào)節(jié)模式直到中斷已被處理,于是不管是部分調(diào)節(jié)狀態(tài)還是全面調(diào)節(jié)狀態(tài)都啟用調(diào)節(jié)并且操作返回到步驟1308。參考圖11進(jìn)行對(duì)監(jiān)控中斷狀態(tài)的深入討論。
這樣,Cell BE芯片所包括的熱管理系統(tǒng)的熱中斷邏輯提供了一種動(dòng)態(tài)手段來(lái)管理Cell BE芯片的熱狀態(tài)和保護(hù)Cell BE芯片及它的組件。
說(shuō)明性實(shí)施例可以采取全硬件實(shí)施例、全軟件實(shí)施例或既包含硬件單元又包含軟件單元的實(shí)施例的形式。說(shuō)明性實(shí)施例在軟件中實(shí)現(xiàn),該軟件包括但不限于固件、駐留軟件、微代碼等。
此外,說(shuō)明性實(shí)施例可以采取可以從計(jì)算機(jī)可用或計(jì)算機(jī)可讀的介質(zhì)訪問(wèn)的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)程序產(chǎn)品提供程序代碼以供計(jì)算機(jī)或任意指令執(zhí)行系統(tǒng)使用或結(jié)合計(jì)算機(jī)或任意指令執(zhí)行系統(tǒng)而使用。為了該描述的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀的介質(zhì)可以是任意能夠包含、存儲(chǔ)、傳送、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用或結(jié)合指令執(zhí)行系統(tǒng)、設(shè)備或裝置而使用的有形設(shè)備。
介質(zhì)可以是電子、磁、光、電磁、紅外線或半導(dǎo)體系統(tǒng)(或者設(shè)備或裝置)或傳播媒介。計(jì)算機(jī)可讀介質(zhì)的示例包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)磁盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤和光盤。光盤的當(dāng)前示例包括壓縮光盤-只讀存儲(chǔ)器(CD-ROM)、光盤-讀/寫(CD-R/W)和DVD。
適合于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個(gè)直接地或通過(guò)系統(tǒng)總線間接地與存儲(chǔ)單元連接的處理器。存儲(chǔ)單元可以包括在程序代碼的實(shí)際執(zhí)行期間使用的本地存儲(chǔ)器、大容量存儲(chǔ)器和高速緩沖存儲(chǔ)器,為了減小在執(zhí)行期間從大容量存儲(chǔ)器獲取代碼的次數(shù),高速緩沖存儲(chǔ)器提供對(duì)至少一部分程序代碼的臨時(shí)存儲(chǔ)。
輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、指示設(shè)備等等)能夠直接地或通過(guò)中間I/O控制器與系統(tǒng)連接。
網(wǎng)絡(luò)適配器也可以與系統(tǒng)連接以使數(shù)據(jù)處理系統(tǒng)能夠通過(guò)中間專用網(wǎng)絡(luò)或公共網(wǎng)絡(luò)與其他數(shù)據(jù)處理系統(tǒng)或者遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備連接。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡正是幾種當(dāng)前可用類型的網(wǎng)絡(luò)適配器。
已經(jīng)為了說(shuō)明和描述的目的而提出了對(duì)說(shuō)明性實(shí)施例的描述,并且該描述并非旨在窮舉或?qū)⒈景l(fā)明限制為所公開形式的說(shuō)明性實(shí)施例。很多修改和變更對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)將是很明顯的。選擇和描述實(shí)施例是為了最好地說(shuō)明說(shuō)明性實(shí)施例的原理、實(shí)際應(yīng)用并使本領(lǐng)域的普通技術(shù)人員能夠針對(duì)具有適合于所考慮的特定用途的各種修改的各種實(shí)施例來(lái)理解說(shuō)明性實(shí)施例。
權(quán)利要求
1.一種用于在集成電路中測(cè)試實(shí)時(shí)軟件的熱調(diào)節(jié)控制的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括接收至少一個(gè)熱控制設(shè)置;使用所述至少一個(gè)熱控制設(shè)置將熱管理系統(tǒng)設(shè)置為測(cè)試模式,其中所述測(cè)試模式表明使用所述熱控制設(shè)置的熱調(diào)節(jié)控制;在所述測(cè)試模式下執(zhí)行所述實(shí)時(shí)軟件;測(cè)試在所述測(cè)試模式下是否滿足與所述實(shí)時(shí)軟件相關(guān)聯(lián)的實(shí)時(shí)期限;以及作為對(duì)所述實(shí)時(shí)軟件滿足所述實(shí)時(shí)期限的響應(yīng),將所述至少一個(gè)熱控制設(shè)置記錄為通過(guò)的熱控制設(shè)置。
2.根據(jù)權(quán)利要求1所述的方法,其中所述接收步驟、設(shè)置步驟、執(zhí)行步驟、測(cè)試步驟和記錄步驟由駐留在所述集成電路內(nèi)的熱管理控制狀態(tài)機(jī)執(zhí)行。
3.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括確定是否還存在至少一個(gè)可以測(cè)試所述實(shí)時(shí)軟件的具有增加的調(diào)節(jié)的熱控制設(shè)置;以及作為對(duì)存在所述增加的熱控制設(shè)置的響應(yīng),使用所述增加的調(diào)節(jié)設(shè)置第二次執(zhí)行并測(cè)試所述實(shí)時(shí)軟件。
4.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括作為對(duì)所述軟件程序不滿足所述實(shí)時(shí)期限的響應(yīng),將所述至少一個(gè)熱控制設(shè)置記錄為失敗的熱控制設(shè)置。
5.根據(jù)權(quán)利要求4所述的方法,進(jìn)一步包括確定是否還存在至少一個(gè)可以測(cè)試所述實(shí)時(shí)軟件的具有減少的調(diào)節(jié)設(shè)置的熱控制設(shè)置;以及作為對(duì)存在所述減少的熱控制設(shè)置的響應(yīng),使用所述減少的調(diào)節(jié)設(shè)置第二次執(zhí)行并測(cè)試所述實(shí)時(shí)軟件。
6.根據(jù)權(quán)利要求1所述的方法,其中所述測(cè)試模式指定所述熱管理系統(tǒng)的始終調(diào)節(jié)狀態(tài)。
7.根據(jù)權(quán)利要求1所述的方法,其中所述測(cè)試模式指定所述熱管理系統(tǒng)的隨機(jī)調(diào)節(jié)狀態(tài)。
8.根據(jù)權(quán)利要求7所述的方法,其中所述隨機(jī)調(diào)節(jié)狀態(tài)注入隨機(jī)熱事件以更真實(shí)地模擬調(diào)節(jié)的相互作用和軟件的執(zhí)行。
9.根據(jù)權(quán)利要求1所述的方法,其中所述熱控制設(shè)置包括要被初始化的調(diào)節(jié)量和針對(duì)要被初始化的所述測(cè)試模式的持續(xù)時(shí)間。
10.根據(jù)權(quán)利要求9所述的方法,其中所述要被初始化的調(diào)節(jié)量是單元停止的時(shí)間與所述單元運(yùn)行的時(shí)間的百分比。
11.根據(jù)權(quán)利要求10所述的方法,其中所述單元停止的時(shí)間和所述單元運(yùn)行的時(shí)間是根據(jù)比例寄存器的值來(lái)縮放的。
12.根據(jù)權(quán)利要求9所述的方法,其中所述針對(duì)要被初始化的所述調(diào)節(jié)模式的持續(xù)時(shí)間是單元停止和運(yùn)行的實(shí)際時(shí)鐘周期數(shù)。
13.根據(jù)權(quán)利要求1所述的方法,其中所述通過(guò)的熱控制設(shè)置存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)中。
14.根據(jù)權(quán)利要求4所述的方法,其中所述失敗的熱控制設(shè)置存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)中。
15.根據(jù)權(quán)利要求1所述的方法,其中所述測(cè)試模式在熱管理控制寄存器中設(shè)置。
16.根據(jù)權(quán)利要求1所述的方法,其中所述集成電路是異質(zhì)多內(nèi)核處理器。
17.一種數(shù)據(jù)處理系統(tǒng),包括總線;連接到所述總線的存儲(chǔ)器,其中所述存儲(chǔ)器包括一組指令;以及連接到所述總線的集成電路,其中所述集成電路執(zhí)行所述一組指令以便接收至少一個(gè)熱控制設(shè)置;使用所述至少一個(gè)熱控制設(shè)置將熱管理系統(tǒng)設(shè)置為測(cè)試模式,其中所述測(cè)試模式表明使用所述熱控制設(shè)置的熱調(diào)節(jié)控制;在所述測(cè)試模式下執(zhí)行所述實(shí)時(shí)軟件;測(cè)試在所述測(cè)試模式下是否滿足與所述實(shí)時(shí)軟件相關(guān)聯(lián)的實(shí)時(shí)期限;以及作為對(duì)所述實(shí)時(shí)軟件滿足所述實(shí)時(shí)期限的響應(yīng),將所述至少一個(gè)熱控制設(shè)置記錄為通過(guò)的熱控制設(shè)置。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述集成電路執(zhí)行所述一組指令以便確定是否還存在至少一個(gè)可以測(cè)試所述實(shí)時(shí)軟件的具有增加的調(diào)節(jié)的熱控制設(shè)置;以及作為對(duì)存在所述增加的熱控制設(shè)置的響應(yīng),使用所述增加的調(diào)節(jié)設(shè)置第二次執(zhí)行并測(cè)試所述實(shí)時(shí)軟件。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述集成電路執(zhí)行所述一組指令以便作為對(duì)所述軟件程序不滿足所述實(shí)時(shí)期限的響應(yīng),將所述至少一個(gè)熱控制設(shè)置記錄為失敗的熱控制設(shè)置。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中所述集成電路執(zhí)行所述一組指令以便確定是否還存在至少一個(gè)可以測(cè)試所述實(shí)時(shí)軟件的具有減少的調(diào)節(jié)設(shè)置的熱控制設(shè)置;以及作為對(duì)存在所述減少的熱控制設(shè)置的響應(yīng),使用所述減少的調(diào)節(jié)設(shè)置第二次執(zhí)行并測(cè)試所述實(shí)時(shí)軟件。
21.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述測(cè)試模式指定所述熱管理系統(tǒng)的始終調(diào)節(jié)狀態(tài)或所述熱管理系統(tǒng)的隨機(jī)調(diào)節(jié)狀態(tài)中的至少一個(gè)。
22.根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述隨機(jī)調(diào)節(jié)狀態(tài)注入隨機(jī)熱事件以更真實(shí)地模擬調(diào)節(jié)的相互作用和軟件的執(zhí)行。
23.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述熱控制設(shè)置包括要被初始化的調(diào)節(jié)量和針對(duì)要被初始化的所述測(cè)試模式的持續(xù)時(shí)間。
24.根據(jù)權(quán)利要求23所述的系統(tǒng),其中所述要被初始化的調(diào)節(jié)量是單元停止的時(shí)間與所述單元運(yùn)行的時(shí)間的百分比。
25.根據(jù)權(quán)利要求24所述的系統(tǒng),其中所述單元停止的時(shí)間和所述單元運(yùn)行的時(shí)間是根據(jù)比例寄存器的值來(lái)縮放的。
26.根據(jù)權(quán)利要求23所述的系統(tǒng),其中所述針對(duì)要被初始化的所述調(diào)節(jié)模式的持續(xù)時(shí)間是單元停止和運(yùn)行的實(shí)際時(shí)鐘周期數(shù)。
27.一種處理器,包括至少一個(gè)處理內(nèi)核;以及熱管理控制狀態(tài)機(jī);熱管理系統(tǒng);以及數(shù)字熱傳感器,其中所述處理器執(zhí)行所述一組指令以便接收至少一個(gè)熱控制設(shè)置;使用所述狀態(tài)機(jī),使用所述至少一個(gè)熱控制設(shè)置將所述熱管理系統(tǒng)設(shè)置為測(cè)試模式,其中所述測(cè)試模式表明使用所述熱控制設(shè)置的熱調(diào)節(jié)控制;使用所述狀態(tài)機(jī)在所述測(cè)試模式下執(zhí)行所述實(shí)時(shí)軟件;使用所述狀態(tài)機(jī)測(cè)試在所述測(cè)試模式下是否滿足與所述實(shí)時(shí)軟件相關(guān)聯(lián)的實(shí)時(shí)期限;以及作為對(duì)所述實(shí)時(shí)軟件滿足所述實(shí)時(shí)期限的響應(yīng),使用所述狀態(tài)機(jī)將所述至少一個(gè)熱控制設(shè)置記錄為通過(guò)的熱控制設(shè)置。
28.根據(jù)權(quán)利要求27所述的處理器,其中所述處理器執(zhí)行所述一組指令以便使用所述狀態(tài)機(jī)確定是否還存在至少一個(gè)可以測(cè)試所述實(shí)時(shí)軟件的具有增加的調(diào)節(jié)的熱控制設(shè)置;以及作為對(duì)存在所述增加的熱控制設(shè)置的響應(yīng),使用所述狀態(tài)機(jī),使用所述增加的調(diào)節(jié)設(shè)置第二次執(zhí)行并測(cè)試所述實(shí)時(shí)軟件。
29.根據(jù)權(quán)利要求27所述的處理器,其中所述處理器執(zhí)行所述一組指令以便作為對(duì)所述軟件程序不滿足所述實(shí)時(shí)期限的響應(yīng),使用所述狀態(tài)機(jī)將所述至少一個(gè)熱控制設(shè)置記錄為失敗的熱控制設(shè)置。
30.根據(jù)權(quán)利要求29所述的處理器,其中所述處理器執(zhí)行所述一組指令以便使用所述狀態(tài)機(jī)確定是否還存在至少一個(gè)可以測(cè)試所述實(shí)時(shí)軟件的具有減少的調(diào)節(jié)設(shè)置的熱控制設(shè)置;以及作為對(duì)存在所述減少的熱控制設(shè)置的響應(yīng),使用所述狀態(tài)機(jī),使用所述減少的調(diào)節(jié)設(shè)置第二次執(zhí)行并測(cè)試所述實(shí)時(shí)軟件。
31.根據(jù)權(quán)利要求27所述的處理器,其中所述測(cè)量模式指定所述熱管理系統(tǒng)的始終調(diào)節(jié)狀態(tài)或所述熱管理系統(tǒng)的隨機(jī)調(diào)節(jié)狀態(tài)中的至少一個(gè),并且其中所述隨機(jī)調(diào)節(jié)狀態(tài)注入隨機(jī)熱事件以更真實(shí)地模擬調(diào)節(jié)的相互作用和軟件的執(zhí)行。
32.根據(jù)權(quán)利要求27所述的處理器,其中所述熱控制設(shè)置包括要被初始化的調(diào)節(jié)量和針對(duì)要被初始化的所述測(cè)試模式的持續(xù)時(shí)間。
33.根據(jù)權(quán)利要求32所述的處理器,其中所述要被初始化的調(diào)節(jié)量是單元停止的時(shí)間與所述單元運(yùn)行的時(shí)間的百分比。
34.根據(jù)權(quán)利要求33所述的處理器,其中所述單元停止的時(shí)間和所述單元運(yùn)行的時(shí)間是根據(jù)比例寄存器的值來(lái)縮放的。
35.根據(jù)權(quán)利要求32所述的處理器,其中所述針對(duì)要被初始化的所述調(diào)節(jié)模式的持續(xù)時(shí)間是單元停止和運(yùn)行的實(shí)際時(shí)鐘周期數(shù)。
全文摘要
提供了一種用于測(cè)試實(shí)時(shí)軟件的熱調(diào)節(jié)控制的計(jì)算機(jī)實(shí)現(xiàn)的方法、數(shù)據(jù)處理系統(tǒng)和處理器。接收至少一個(gè)熱控制設(shè)置。使用該至少一個(gè)熱控制設(shè)置將熱管理系統(tǒng)設(shè)置為測(cè)試模式,其中測(cè)試模式表明使用熱控制設(shè)置的熱調(diào)節(jié)控制。在測(cè)試模式下執(zhí)行實(shí)時(shí)軟件,并且測(cè)試在該測(cè)試模式下是否滿足與該實(shí)時(shí)軟件相關(guān)聯(lián)的實(shí)時(shí)期限。作為對(duì)實(shí)時(shí)軟件滿足實(shí)時(shí)期限的響應(yīng),將該至少一個(gè)熱控制設(shè)置記錄為通過(guò)的熱控制設(shè)置。
文檔編號(hào)G06F1/20GK101093413SQ20071010548
公開日2007年12月26日 申請(qǐng)日期2007年6月1日 優(yōu)先權(quán)日2006年6月21日
發(fā)明者C·R·約翰斯, 王帆 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司