專(zhuān)利名稱(chēng):多處理器系統(tǒng)及其進(jìn)入省電模式方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種多處理器(咖lti-processor)系統(tǒng),且特別是有關(guān)于 一種多處理器系統(tǒng)及其進(jìn)入省電^t式的方法。
背景技術(shù):
計(jì)算機(jī)系統(tǒng)的電源管理向來(lái)是重要課題。為了實(shí)現(xiàn)電源管理的功能,便 發(fā)展出許多電源管理的技術(shù)與工業(yè)標(biāo)準(zhǔn)。例如,1992年美國(guó)環(huán)保署 (Environmental Protection Agency, EPA)所4,4亍的負(fù)fe源之星(Energy Star) 計(jì)劃、先進(jìn)電源管理(Advanced Power Management, APM)、或是先進(jìn)配置與 電源接口 (Advanced Configuration and Power Interface, ACPI)等規(guī)范各 自定義了各種不同的省電模式,都是為了實(shí)現(xiàn)電源管理的功能。
以ACPI為例,此工業(yè)標(biāo)準(zhǔn)制定了 r ACPI Processor Power State」作為 其省電模式。 一般系統(tǒng)要支持ACPI Processor Power State,必須要在單一 處理器的系統(tǒng)下才能運(yùn)行ACPI Processor Power State。對(duì)于傳統(tǒng)技術(shù)而言, 多處理器系統(tǒng)是無(wú)法支持ACPI Processor Power State。以下"i兌明其原因。
圖1是說(shuō)明傳統(tǒng)多處理器系統(tǒng)無(wú)法支持ACPI Processor Power State的 示意圖。為求圖式清晰,圖1中省略了功率源、頻率源等周邊電路。另外, 圖1是以單一封裝的雙核心中央處理單元(Central Processing Unit, CPU) 110作為說(shuō)明范例。多封裝的多處理器系統(tǒng)(例如處理器111與處理器112各 自單獨(dú)封裝) 一樣有類(lèi)似的問(wèn)題。
請(qǐng)參照?qǐng)D1,當(dāng)操作系統(tǒng)(Operating System, OS)檢測(cè)到處理器111處 于閑置(IDLE)狀態(tài),代表處理器111可以進(jìn)入省電沖莫式「 ACPI Processor Power State」,此時(shí)操作系統(tǒng)會(huì)讓處理器111發(fā)出一個(gè)地址為P_LVLx的讀取 要求(1/0 read cycle)給芯片組120。芯片組120接到這筆讀取要求后,就 會(huì)觸發(fā)(trigger) r ACPI Processor Power State J的相關(guān)信號(hào)到歡核心中央 處理單元110。這些「ACPI Processor Power State」的相關(guān)信號(hào)是用來(lái)降 低雙核心中央處理單元110的電壓或是停止時(shí)鐘頻率。換言之,處理器111
與處理器112的電壓都會(huì)因此而降低;處理器111與處理器112的時(shí)鐘頻率 會(huì)因此而停止。然而,處理器112此時(shí)可能是處于忙碌(busy)的狀態(tài),所以 若是降低電壓或是停止時(shí)鐘頻率就會(huì)造成處理器112無(wú)法繼續(xù)完成工作。在 處理器112處于忙碌狀態(tài)下驟然降低電壓或是停止時(shí)鐘頻率,會(huì)使系統(tǒng)發(fā)生 不可預(yù)期的結(jié)果。上述是多處理器系統(tǒng)受到硬件限制而無(wú)法完整地支持省電 模式rACPI Processor Power State J的原因。
基于上述原因,必須改變硬件上的設(shè)計(jì),才能支持省電模式r ACPI Processor Power State」,例如在處理器111與處理器112之間配置邏輯芯 片,分別對(duì)處理器111與處理器112作電源管理。然而,改動(dòng)硬件需要額外 的成本,也必須承擔(dān)變更石更件的風(fēng)險(xiǎn)。
發(fā)明內(nèi)容
本發(fā)明提供一種多處理器系統(tǒng)及其進(jìn)入省電模式方法,可以在不改動(dòng)硬 件的情況下,以軟件或固件的方式在多處理器系統(tǒng)下依然可以支持諸如ACPI Processor Power State等省電模式,來(lái)達(dá)到省電的功能。
本發(fā)明提出一種多處理器系統(tǒng)的進(jìn)入省電模式方法,包括下述步驟。首 先檢測(cè)多個(gè)處理器;若其中一個(gè)處理器進(jìn)入閑置狀態(tài),則前述進(jìn)入閑置狀態(tài) 的處理器發(fā)出第 一讀取要求,以使發(fā)出第 一讀取要求的處理器獲得辨識(shí)值, 并觸發(fā)中斷事件,使每一處理器各自進(jìn)入「系統(tǒng)管理模式J。檢查每一處理器 是否具有辨識(shí)值,其中若具有辨識(shí)值,則使具有辨識(shí)值的處理器保持于系統(tǒng)
管理模式中;反之若不具有辨識(shí)值,則使不具有辨識(shí)值的處理器結(jié)束系統(tǒng)管 理模式。若每一個(gè)處理器皆具有辨識(shí)值,則依第二讀取要求,觸發(fā)全部處理 器進(jìn)入省電模式。
本發(fā)明還提出一種多處理器系統(tǒng),包括多個(gè)處理器以及芯片組。若這些 處理器的 一者進(jìn)入閑置狀態(tài),則進(jìn)入閑置狀態(tài)的處理器發(fā)出第 一讀取要求。 芯片組依據(jù)第一讀取要求,提供辨識(shí)值給發(fā)出第一讀取要求的處理器,并觸 發(fā)中斷事件,使每一處理器各自進(jìn)入系統(tǒng)管理模式,以檢查每一處理器是否 具有該辨識(shí)值。其中,若具有該辨識(shí)值,則使具有辨識(shí)值的處理器保持于系 統(tǒng)管理模式中;若不具有該辨識(shí)值,則使不具有辨識(shí)值的處理器結(jié)束系統(tǒng)管 理模式;以及若這些處理器的全部皆具有辨識(shí)值,則依第二讀取要求,觸發(fā) 全部處理器進(jìn)入省電模式。本發(fā)明因當(dāng)檢測(cè)到某一處理器處于閑置狀態(tài)時(shí),讓處于閑置狀態(tài)的處理 器發(fā)出一個(gè)第一讀取要求給芯片組,直到所有處理器均處于閑置狀態(tài),才依 第二讀取要求,觸發(fā)該些處理器進(jìn)入省電模式。因此可以在不改動(dòng)硬件的情
況下,以軟件或固件的方法在多處理器系統(tǒng)下依然可以支持諸如ACPI Processor Power State等省電模式,來(lái)達(dá)到省電的功能。
為讓本發(fā)明的上迷特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并 配合所附圖式,作詳細(xì)說(shuō)明如下。
圖1是說(shuō)明傳統(tǒng)多處理器系統(tǒng)無(wú)法支持ACPI Processor Power State的 示意圖。
圖2是依據(jù)本發(fā)明實(shí)施例說(shuō)明一種多處理器系統(tǒng)的進(jìn)入省電模式方法的 流程圖。
圖3A~ 3E是依據(jù)本發(fā)明實(shí)施例說(shuō)明多處理器系統(tǒng)支持ACPI Processor Power State的示意圖。
圖4是依據(jù)本發(fā)明另一實(shí)施例說(shuō)明一種多處理器系統(tǒng)的進(jìn)入省電模式方 法的流程圖。
[主要元件標(biāo)號(hào)說(shuō)明〗
110:單一封裝的雙核心中央處理單元
m、 112:處理器
120:芯片組
S205 S245、 S220' S245'、 S405 S440:本發(fā)明實(shí)施例的步驟 330:基本輸入輸出系統(tǒng)(BI0S) 340:系統(tǒng)存儲(chǔ)器
具體實(shí)施例方式
圖2是依據(jù)本發(fā)明實(shí)施例說(shuō)明一種多處理器系統(tǒng)的進(jìn)入省電模式方法的 流程圖。前述省電模式可以是符合任何標(biāo)準(zhǔn)規(guī)范書(shū)所定義的省電模式、睡眠 模式、或待機(jī)模式等,或是任何非標(biāo)準(zhǔn)定義的省電模式、睡眠模式、或待機(jī) 才莫式等。W、""n夸v乂先進(jìn)酉己置與電源、4妻口 (Advanced Configuration and Power Interface, ACPI)失見(jiàn)范所定義的「 ACPI Processor Power State」作為前述r省電才莫式」的應(yīng)用例。
圖3A-3E是依據(jù)本發(fā)明實(shí)施例說(shuō)明多處理器系統(tǒng)支持ACPI Processor Power State的示意圖。為求圖式清晰,圖M ~ 3E中省略了功率源、頻率源 等周邊電路。另外,圖^~兆是以單一封裝的雙核心中央處理單元110作為 說(shuō)明范例。本領(lǐng)域技術(shù)人員,可以將本實(shí)施例的教示類(lèi)推應(yīng)用至四核心或其 它類(lèi)型的多核心中夾處理單元。另外,本發(fā)明的應(yīng)用亦不限于單一封裝。多 封裝的多處理器系統(tǒng)(例如處理器111與處理器112各自單獨(dú)封裝)一樣適用 本發(fā)明所揭露的技術(shù)。圖3A-3E包含雙核心中央處理單元110(內(nèi)含處理器 111與112)、芯片組120、基本輸入輸出系統(tǒng)(Basic Input/Output System, BIOS)330、以及系統(tǒng)存儲(chǔ)器340。雙核心中央處理單元110可以通過(guò)芯片組 HO去提取/執(zhí)行BIOS 330所存放的指令。在計(jì)算機(jī)正常運(yùn)作過(guò)程中,雙核 心中央處理單元110可以通過(guò)芯片組120去存取系統(tǒng)存儲(chǔ)器340。
請(qǐng)同時(shí)參照?qǐng)D2與圖3A,在計(jì)算機(jī)正常運(yùn)作過(guò)程中,圖3A的計(jì)算機(jī)系 統(tǒng)在步驟S205中去檢測(cè)多個(gè)處理器111與112的運(yùn)行狀態(tài)。前述檢測(cè)各個(gè)處 理器的步驟,可以由操作系統(tǒng)(Operating System, 0S)來(lái)進(jìn)行。在其它實(shí)施 例中,可能會(huì)以硬件方式檢測(cè)各個(gè)處理器的運(yùn)行狀態(tài)。若操作系統(tǒng)檢測(cè)到各 處理器111與112中有任何一個(gè)進(jìn)入閑置狀態(tài),則操作系統(tǒng)會(huì)使前述進(jìn)入閑 置狀態(tài)的處理器(在此假設(shè)是處理器111)發(fā)出第一讀取要求(1/0 read cycle) 給芯片組120 (步驟S210),以使發(fā)出第一讀取要求的處理器111獲得辨識(shí)值 (步驟S215)。在本實(shí)施例中,假設(shè)第一讀取要求帶有觸發(fā)地址,并假設(shè)此觸 發(fā)地址為r偽電源管理觸發(fā)地址」。前述r偽電源管理觸發(fā)地址」可以是任何 預(yù)設(shè)地址,只要是不同于用來(lái)觸發(fā)處理器進(jìn)入省電模式的r真電源管理觸發(fā) 地址」且不會(huì)與系統(tǒng)中其它裝置地址相沖突即可。
在本實(shí)施例芯片組120是南北橋集成的芯片組;而在另一實(shí)施例中,芯 片組120可以是針對(duì)具有電源管理功能的南橋芯片。芯片組120在接獲帶有 「?jìng)坞娫垂芾碛|發(fā)地址J的第一讀取要求后,會(huì)回傳對(duì)應(yīng)的辨識(shí)值給處理器 111。前述辨識(shí)值可以是任何默認(rèn)值,例如可以將辨識(shí)值設(shè)定為rl23」。此外, 前述辨識(shí)值是存放于芯片組120中的存儲(chǔ)空間121。當(dāng)芯片組120在接獲帶 有r偽電源管理觸發(fā)地址J的第一讀取要求,會(huì)對(duì)具有r偽電源管理觸發(fā)地 址」的存儲(chǔ)空間中,所存放的辨識(shí)值進(jìn)4亍讀取,并回傳對(duì)應(yīng)的辨識(shí)值i合發(fā)出 r偽電源管理觸發(fā)地址」讀耳又要求的處理器111。
接下來(lái)請(qǐng)同時(shí)參照?qǐng)D2與圖3B,芯片組nO依據(jù)帶有f偽電源管理觸發(fā) 地址」的第一讀取要求,除了會(huì)回傳對(duì)應(yīng)的辨識(shí)值給對(duì)應(yīng)的處理器111之外, 芯片組120還會(huì)觸發(fā)中斷事件(步驟S22 0)。此中斷事件可以是任何一種形式 的中斷,在本實(shí)施例中例如系統(tǒng)管理中斷事件(SystemManagement Interrupt SMI)等。在步驟S225中,前述系統(tǒng)管理中斷事件SMI會(huì)使每一處理器111與 112分別進(jìn)入各自的系統(tǒng)管理模式(System Management Mode, S薩),以各自 進(jìn)行中斷服務(wù)程序(SMI handler)。另外,處理器111與112在進(jìn)入系統(tǒng)管理 模式S隨之前,會(huì)各自將其內(nèi)部各個(gè)暫存器的內(nèi)容備份在專(zhuān)用的系統(tǒng)管理存 儲(chǔ)器SMRAM1與SMRAM2中,其中SMRAM是指系統(tǒng)管理隨機(jī)存取存儲(chǔ)器。于本 實(shí)施例中,可以在系統(tǒng)存儲(chǔ)器340中定義二塊存儲(chǔ)空間作為前述系統(tǒng)管理存 儲(chǔ)器SMRAM1與S歐AM2,以便分別存放處理器111與112的內(nèi)容。然而,系 統(tǒng)管理存儲(chǔ)器的實(shí)施方式不應(yīng)因本實(shí)施例而受限制。
因此,BIOS 330可以利用存放在芯片組120的存儲(chǔ)空間121中的辨識(shí)值, 從系統(tǒng)存儲(chǔ)器340中的系統(tǒng)管理存儲(chǔ)器SMRAM1與SMRAM2檢查處理器111與 112中何者具有辨識(shí)值,而進(jìn)一步判定是否所有的處理器都進(jìn)入系統(tǒng)管理模 式S麗(步驟S230)。若BIOS 33(U全查處理器111與112的一者具有辨識(shí)值, 表示具有辨識(shí)值的處理器為閑置狀態(tài),則使此閑置的處理器保持于系統(tǒng)管理 模式S畫(huà)中。反之,若BIOS 330檢查處理器111與112的一者不具有辨識(shí)值, 表示不具有辨識(shí)值的處理器為非閑置狀態(tài)(例如忙碌狀態(tài)),則使此非閑置的 處理器結(jié)束系統(tǒng)管理模式S醒(步驟S235)。
接下來(lái)請(qǐng)同時(shí)參照?qǐng)D2與圖3C,由于先前是處理器lll發(fā)出帶有r偽電 源管理觸發(fā)地址」的第一讀取要求給芯片組120,因此只有處理器111會(huì)將 由芯片組120回傳的辨識(shí)值存放于暫存器中,并于觸發(fā)系統(tǒng)管理中斷事件SMI 之后、進(jìn)入系統(tǒng)管理模式S畫(huà)之前,將存放于暫存器中的辨識(shí)值存放在對(duì)應(yīng) 的系統(tǒng)管理存儲(chǔ)器S織AM1中。由于BIOS 330可以從系統(tǒng)存儲(chǔ)器340中的系 統(tǒng)管理存儲(chǔ)器SMRAM1檢查到處理器111具有辨識(shí)值,因此在步驟S235中, 因?yàn)樘幚砥?11有該辨識(shí)值,所以BIOS 330會(huì)使處理器111保持于系統(tǒng)管理 模式S薩中。反之,由于系統(tǒng)管理存儲(chǔ)器SMRAM2不具有辨識(shí)值(也就是處理 器112不具有辨識(shí)值),則BIOS 330會(huì)使處理器112結(jié)束系統(tǒng)管理模式S固。 離開(kāi)系統(tǒng)管理模式SMM的處理器112會(huì)從系統(tǒng)管理存儲(chǔ)器SMRAM2中載回原先 的內(nèi)容,然后繼續(xù)進(jìn)行中斷前的工作(回復(fù)至忙碌狀態(tài))。
完成步驟S235后,回到步驟S205以繼續(xù)^r測(cè)多個(gè)處理器111與112的 運(yùn)行狀態(tài)。請(qǐng)同時(shí)參照?qǐng)D2與圖3D,若在完成步驟S235后,操作系統(tǒng)^r測(cè) 到另一處理器112進(jìn)入閑置狀態(tài)(步驟S210),則操作系統(tǒng)會(huì)使處理器112發(fā) 出第一讀取要求給芯片組120 (步驟S215),此第一讀取要求例如是與上述相 同的帶有r偽電源管理觸發(fā)地址J的讀取要求。芯片組120在接獲帶有r偽 電源管理觸發(fā)地址」的第一讀取要求后,會(huì)回傳對(duì)應(yīng)的辨識(shí)值給處理器112。 然后再一次進(jìn)行了步驟S220 -S230,其過(guò)程與上述類(lèi)似,故不再贅述。
由于先前處理器112發(fā)出帶有「?jìng)坞娫垂芾碛|發(fā)地址」的第一讀取要求 給芯片組120,因此處理器112也會(huì)將辨識(shí)值存放在對(duì)應(yīng)的系統(tǒng)管理存儲(chǔ)器 SMRAM2中。此時(shí),BIOS 330便可以從系統(tǒng)存儲(chǔ)器340中的系統(tǒng)管理存儲(chǔ)器 SMRAM1與SMRAM2檢查出處理器111與112都具有辨識(shí)值(步驟S230)。更進(jìn) 一步的說(shuō)明是,由于處理器111已因先前具有辨識(shí)值,而保持于系統(tǒng)管理模 式SMM (亦即表示處理器111處于閑置狀態(tài)),所以若在步驟S230中,當(dāng)檢 查出處理器112也具有辨識(shí)值時(shí),則表示處理器111與112此時(shí)皆具有辨識(shí) 值,即處理器111與112皆處于閑置狀態(tài)。
當(dāng)全部處理器111與112皆具有辨識(shí)值,表示處理器111與112皆處于 閑置狀態(tài),則BIOS 330會(huì)發(fā)出第二讀取要求給芯片組120 (步驟S240)。在本 實(shí)施例中,假設(shè)第二讀取要求帶有另 一觸發(fā)地址(不同于第一讀取要求帶有的 觸發(fā)地址),并々H殳此觸發(fā)地址為「真電源管理觸發(fā)地址J。如前所述,「真電 源管理觸發(fā)地址」可以觸發(fā)所有處理器進(jìn)入省電模式。在此r真電源管理觸 發(fā)地址j可以是P-LVLx。換言之,在芯片組1M接到地址為P-LVLx的第二 讀取要求后,就會(huì)觸發(fā)(trigger)包含處理器111與112的系統(tǒng)進(jìn)入省電模式 「ACPI Processor Power State」(步驟S245)。更進(jìn)一步的說(shuō)明是,芯片組 120會(huì)傳送「ACPI Processor Power State」的相關(guān)信號(hào)到雙核心中央處理 單元110。這些「ACPI Processor Power State」的相關(guān)信號(hào)是用來(lái)降低雙 核心中央處理單元110的電壓或是停止時(shí)鐘頻率。換言之,處理器lll與處 理器112的電壓都會(huì)因此而降低;處理器111與處理器112的時(shí)鐘頻率會(huì)因 jt匕而〗亭止。因jt匕,系纟克S奪進(jìn)入省-電才莫式「ACPI Processor Power State J。
本領(lǐng)域技術(shù)人員可以依其應(yīng)用需求而修改上述實(shí)施例。例如,圖4是依 據(jù)本發(fā)明另 一 實(shí)施例說(shuō)明 一 種多處理器系統(tǒng)的進(jìn)入省電模式方法的流程圖。 前述省電模式可以是符合任何標(biāo)準(zhǔn)規(guī)范書(shū)所定義的省電模式、睡眠模式、或
待機(jī)模式等,或是任何非標(biāo)準(zhǔn)定義的省電模式、睡眠模式、或待機(jī)模式等。
以下亦以先進(jìn)配置與電源接口 (ACPI)規(guī)范所定義的「ACPI Processor Power State」作為前述「省電模式」的應(yīng)用例。
請(qǐng)同時(shí)參照?qǐng)D4與圖3A。于開(kāi)機(jī)后,在步驟S405中,BIOS 330于芯片 組120中設(shè)定輸入輸出陷阱(1/0 Trap),此輸入輸出陷阱的觸發(fā)地址例如是 某個(gè)預(yù)設(shè)的M為電源管理觸發(fā)地址」。在本實(shí)施例中,這個(gè)預(yù)設(shè)的M為電源管 理觸發(fā)地址」同時(shí)也是預(yù)設(shè)的「中斷事件觸發(fā)地址」。此「?jìng)坞娫垂芾碛|發(fā)地 址」可以是任何預(yù)設(shè)地址,只要是不同于用來(lái)觸發(fā)處理器進(jìn)入省電模式的r真 電源管理觸發(fā)地址」,且不會(huì)與系統(tǒng)中其它裝置地址相沖突即可。因此,只要 系統(tǒng)中有此地址的讀取要求(cycle)時(shí),就會(huì)發(fā)生1/0Trap而產(chǎn)生中斷事件。 在本實(shí)施例中,中斷事件例如是系統(tǒng)管理中斷事件SMI。
另外在步驟S405中,BIOS 330亦在芯片組120中設(shè)定r第一讀取要求J 的回傳值為「辨識(shí)值」。此「第一讀取要求」的讀取地址是r偽電源管理觸發(fā) 地址」。前述「辨識(shí)值J可以是任何默認(rèn)值,例如可以將r辨識(shí)值」設(shè)定為r 456 J。 此外,前述「辨識(shí)值」是存放于芯片組120中的存儲(chǔ)空間121。在對(duì)芯片組 120完成設(shè)定后,芯片組120在接獲帶有r偽電源管理觸發(fā)地址」的第一讀 取要求時(shí),會(huì)回傳此辨識(shí)值。
接下來(lái)在步驟S410中執(zhí)行ACPI原始語(yǔ)言(ACPI Source Language, ASL) 碼,通過(guò)BI0S 330中的ASL碼去將系統(tǒng)中「觸發(fā)電源管理地址」設(shè)定為r偽 電源管理觸發(fā)地址」。因此,當(dāng)操作系統(tǒng)(OS)檢測(cè)到其中一顆處理器為閑置 (idle)狀態(tài)時(shí),可以發(fā)出帶有r偽電源管理觸發(fā)地址」的第一讀取要求給芯 片組120。在完成步驟S410后,接下來(lái)繼續(xù)進(jìn)行其它的開(kāi)機(jī)程序。
在完成開(kāi)機(jī)后,操作系統(tǒng)會(huì)去檢測(cè)多個(gè)處理器111與112的運(yùn)行狀態(tài), 確認(rèn)是否有任一個(gè)處理器進(jìn)入閑置狀態(tài)(步驟S415)。若操作系統(tǒng)檢測(cè)到各處 理器中有任何一個(gè)進(jìn)入閑置狀態(tài),則進(jìn)行步驟S420。于步驟S420中,基于 步驟S410的設(shè)定,操作系統(tǒng)會(huì)使前述進(jìn)入閑置狀態(tài)的處理器(在此假設(shè)是處 理器111)發(fā)出帶有「?jìng)坞娫垂芾碛|發(fā)地址」的第一讀取要求(1/0 read cycle) 給芯片組120。芯片組120在接獲帶有「?jìng)坞娫垂芾碛|發(fā)地址」的第一讀取 要求后,基于步驟S405的設(shè)定,會(huì)回傳對(duì)應(yīng)的辨識(shí)值給發(fā)出第一讀取要求的 處理器111 (步驟S425)。因此,前述進(jìn)入閑置狀態(tài)的處理器111可以獲得辨 識(shí)值,并將此辨識(shí)值存放在其內(nèi)部EAX暫存器中。此處的步驟S420與S425
除了可以參照上述說(shuō)明外,也可以參照?qǐng)D2的步驟S210與S215的相關(guān)說(shuō)明, 在此不予贅述。
另外,芯片組120在接獲帶有「?jìng)坞娫垂芾碛|發(fā)地址」的第一讀取要求 后,基于前述步驟S405所設(shè)定的輸入輸出陷阱而產(chǎn)生系統(tǒng)管理中斷事件SMI (步驟S220,)。此處的圖4的步驟S220'類(lèi)似圖2的步驟S220。此時(shí)因?yàn)?r偽電源管理觸發(fā)地址」不是「真電源管理觸發(fā)地址」,所以芯片組120不會(huì) 去觸發(fā)rACPI Processor Power State J的相關(guān)信號(hào)。
請(qǐng)同時(shí)參照?qǐng)D4與圖3B,因?yàn)橄到y(tǒng)產(chǎn)生系統(tǒng)管理中斷事件SMI,所以所 有的處理器(例如圖3B的處理器111與112)會(huì)進(jìn)入各別相對(duì)應(yīng)的系統(tǒng)管理模 式S畫(huà)中。處理器111與112在進(jìn)入系統(tǒng)管理模式SMM之前,會(huì)各自將其內(nèi) 部各個(gè)暫存器的內(nèi)容存放于相對(duì)應(yīng)的系統(tǒng)管理存儲(chǔ)器SMRAM1與SMRAM2中。 更進(jìn)一步的說(shuō)明是,處理器111內(nèi)的EAX暫存器的內(nèi)容會(huì)被存放在系統(tǒng)管理 存儲(chǔ)器SMRAM1中(即系統(tǒng)存儲(chǔ)器340中的SMBASE1 + 7FF0H的地址),而處理 器112內(nèi)的EAX暫存器的內(nèi)容則會(huì)被存放在系統(tǒng)管理存儲(chǔ)器SMRAM2中(即系 統(tǒng)存儲(chǔ)器340中的SMBASE2 + 7FF0H的地址(步驟S225')。此處的圖4的步 驟S225'類(lèi)似圖2的步驟S225。另外,前述地址中的"SMBASE1"與"SMBASE2" 分別是指向系統(tǒng)管理存儲(chǔ)器SMRAM1與SMRAM2的基底指標(biāo)。由于每一個(gè)處理 器需要有專(zhuān)屬的系統(tǒng)管理存儲(chǔ)器(SMRAM),因此需要利用基底指標(biāo)SMBASE1與 SMBASE2定義出各個(gè)處理器相對(duì)應(yīng)的系統(tǒng)管理存儲(chǔ)器的基地址。
接下來(lái)進(jìn)行步驟S230',確認(rèn)是否所有的處理器處于閑置狀態(tài)。此處步 驟S230'類(lèi)似圖2的步驟S230,因此可以參照?qǐng)D2的步驟S230與其相關(guān)說(shuō) 明,在此不予贅述。于本實(shí)施例中,步驟S230,可包含子步驟S430與S435。 在步驟S430中,BIOS 330從系統(tǒng)存儲(chǔ)器340中SMBASE1 + 7FF0H與SMBASE2 + 7FF0H的地址檢查各個(gè)處理器中何者具有辨識(shí)值。在步驟S435中,BIOS 330 將會(huì)判斷是否所有的處理器中EAX暫存器的內(nèi)容(即系統(tǒng)存儲(chǔ)器340中 SMBASE1 + 7FF0H與SMBASE2 + 7FF0H的地址的內(nèi)容)是否皆為辨識(shí)值。若尚 有部分處理器的EAX暫存器的內(nèi)容不是辨識(shí)值,則進(jìn)行步驟S440。
由于BIOS 330可以從系統(tǒng)管理存儲(chǔ)器SMRAM1與SMRAM2檢查到各個(gè)處理 器111與112是否具有該辨識(shí)值,因此在步驟S440中,BIOS 330會(huì)使閑置 狀態(tài)的處理器(即EAX暫存器的內(nèi)容是辨識(shí)值的處理器)保持于系統(tǒng)管理模式 S薩中。相反地,在步驟S440中,BIOS 330會(huì)使其它處理器(EAX暫存器的
內(nèi)容不是辨識(shí)值的處理器)結(jié)束系統(tǒng)管理模式S固。離開(kāi)系統(tǒng)管理模式S固的
處理器(例如處理器112)會(huì)從系統(tǒng)管理存儲(chǔ)器(例如SMRAM2)中載回原先的內(nèi) 容,然后繼續(xù)進(jìn)行中斷前的工作(回復(fù)至忙碌狀態(tài)),如圖3C所示。完成步驟 S440后,回到步驟S415以繼續(xù)檢測(cè)每一個(gè)處理器的運(yùn)行狀態(tài)。完成步驟S440 后,再重復(fù)步驟S415-S435的進(jìn)行過(guò)程類(lèi)似圖3D及上述相關(guān)說(shuō)明所述,故 不再贅述。
如前述假設(shè),在前一次步驟S435的判斷中,處理器111已因具有辨識(shí)值, 而持續(xù)處于系統(tǒng)管理模式S畫(huà)。因此當(dāng)步驟S415檢測(cè)到處理器112處于閑置 狀態(tài)時(shí),會(huì)再一次進(jìn)行步驟S420 -S430,使得系統(tǒng)存儲(chǔ)器340中SMBASE1 + 7FF0H與SMBASE2 + 7FF0H的地址都具有辨識(shí)值。由于步驟S435的判斷結(jié)果 為全部處理器111與112皆具有辨識(shí)值,表示處理器111與112皆處于閑置 狀態(tài),所以接下來(lái)進(jìn)行步驟S240'。類(lèi)似圖2的步驟S240,在圖4的步驟S240, 中,BIOS 330會(huì)發(fā)出帶有「真電源管理觸發(fā)地址」的第二讀取要求給芯片組 120,其中r真電源管理觸發(fā)地址」可以是P-LVLx。芯片組接到地址為 P一LVLx的讀取要求后,芯片組120會(huì)傳送r ACPI Processor Power State J 的相關(guān)信號(hào)到雙核心中央處理單元110,如圖犯所示。這些r ACPI Processor Power State」的相關(guān)信號(hào)是用來(lái)降低雙核心中央處理單元110的電壓或是停 止時(shí)鐘頻率。換言之,處理器111與處理器112的電壓都會(huì)因此而降低;處 理器111與處理器112的時(shí)鐘頻率會(huì)因此而停止。因此,會(huì)觸發(fā)所有處理器 進(jìn)入省電模式「 ACPI Processor Power State」(步驟S245')。此處步驟S245' 類(lèi)似圖2的步驟S245,因此可以參照?qǐng)D2的步驟與其相關(guān)說(shuō)明,在此 不予贅述。
綜上所述,上述實(shí)施例中操作系統(tǒng)檢測(cè)到某一處理器處于閑置狀態(tài)時(shí), 會(huì)讓該處理器發(fā)出第 一讀取要求給芯片組,以使發(fā)出第一讀取要求的處理器 獲得辨識(shí)值,并觸發(fā)中斷事件,使得所有處理器都進(jìn)入系統(tǒng)管理模式S固中。 然后,檢查每一處理器是否具有該辨識(shí)值。具有該辨識(shí)值的處理器保持在系 統(tǒng)管理模式S薩中,而其它處理器則結(jié)束S薩去繼續(xù)進(jìn)行之前未完成的工作。 重復(fù)上述過(guò)程,直到所有處理器均具有辨識(shí)值,才依第二讀取要求,觸發(fā)全 部處理器進(jìn)入省電模式。因此,上述實(shí)施例可以在不改動(dòng)硬件的情況下,以 軟件或固件的方法在多處理器系統(tǒng)下依然可以支持諸如ACPI Processor Power State等省電模式,來(lái)達(dá)到省電的功能。此外,上述實(shí)施例僅以?xún)蓚€(gè)
處理器作說(shuō)明,但并非限定于此。本發(fā)明的方法亦可應(yīng)用于兩個(gè)以上的處理 器。
本領(lǐng)域技術(shù)人員可以依其需求,而以任何形式實(shí)現(xiàn)上述諸實(shí)施例。例如, 可以?xún)?nèi)儲(chǔ)程序的計(jì)算機(jī)可讀取儲(chǔ)存媒體來(lái)實(shí)現(xiàn)上述諸實(shí)施例。也就是說(shuō),上 述諸實(shí)施例可以用程序(計(jì)算機(jī)軟件)形式實(shí)現(xiàn)之,而將此程序儲(chǔ)存在硬盤(pán)、
軟盤(pán)、CD-ROM等計(jì)算機(jī)可讀取儲(chǔ)存媒體中。
由于網(wǎng)絡(luò)的普及,上述程序(計(jì)算機(jī)軟件)除可儲(chǔ)存于計(jì)算機(jī)可讀取儲(chǔ)存 媒體外,亦可在網(wǎng)絡(luò)上直接傳輸提供,而無(wú)須通過(guò)儲(chǔ)存于儲(chǔ)存媒體上提供該 程序。因此,本領(lǐng)域技術(shù)人員可以依其需求,而以「計(jì)算機(jī)程序產(chǎn)品」型式 實(shí)現(xiàn)上述諸實(shí)施例。所謂計(jì)算機(jī)程序產(chǎn)品,是載有計(jì)算機(jī)可讀取的程序且不 限外在形式之物。
雖然本發(fā)明已以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明,任何 本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動(dòng)與潤(rùn) 飾,因此本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求范圍所界定者為準(zhǔn)。
權(quán)利要求
1.一種多處理器系統(tǒng)的進(jìn)入省電模式方法,包括檢測(cè)多個(gè)處理器;若該些處理器的一者進(jìn)入閑置狀態(tài),則進(jìn)入該閑置狀態(tài)的該處理器發(fā)出第一讀取要求,以使發(fā)出該第一讀取要求的該處理器獲得辨識(shí)值,并觸發(fā)中斷事件,使每一該些處理器各自進(jìn)入系統(tǒng)管理模式;以及檢查每一該些處理器是否具有該辨識(shí)值,其中若具有該辨識(shí)值,則使具有該辨識(shí)值的該處理器保持于該系統(tǒng)管理模式中;若不具有該辨識(shí)值,則使不具有該辨識(shí)值的該處理器結(jié)束該系統(tǒng)管理模式;以及若該些處理器的全部皆具有該辨識(shí)值,則依第二讀取要求,觸發(fā)全部該些處理器進(jìn)入省電模式。
2. 根據(jù)權(quán)利要求1所述的多處理器系統(tǒng)的進(jìn)入省電模式方法,其中該第 一讀取要求帶有觸發(fā)地址,在檢測(cè)該些處理器之前,還包括于一芯片組中,設(shè)定對(duì)應(yīng)該觸發(fā)地址的陷阱;以及于該芯片組中,將該第一讀取要求的回傳值設(shè)定為該辨識(shí)值。
3. 根據(jù)權(quán)利要求1所述的多處理器系統(tǒng)的進(jìn)入省電模式方法,其中該第 一讀耳又要求中帶有觸發(fā)地址,而獲得該辨識(shí)值的步驟包括使進(jìn)入該閑置狀態(tài)的該處理器發(fā)出帶有該觸發(fā)地址的該第一讀取要求給 一芯片組;以及該芯片組回傳該辨識(shí)值給發(fā)出該第 一讀取要求的該處理器。
4. 根據(jù)權(quán)利要求1所述的多處理器系統(tǒng)的進(jìn)入省電模式方法,其中觸發(fā) 該中斷事件的步驟包括依據(jù)該第一讀取要求, 一芯片組觸發(fā)系統(tǒng)管理中斷; 將每一該些處理器的內(nèi)容存放于系統(tǒng)管理存儲(chǔ)器中;以及 使每一該些處理器各自進(jìn)入該系統(tǒng)管理模式。
5. 根據(jù)權(quán)利要求4所述的多處理器系統(tǒng)的進(jìn)入省電模式方法,其中該第 一讀取要求中帶有觸發(fā)地址,且依據(jù)帶有該觸發(fā)地址的該第一讀取要求,該 芯片組觸發(fā)該系統(tǒng)管理中斷。
6. 根據(jù)權(quán)利要求4所述的多處理器系統(tǒng)的進(jìn)入省電模式方法,其中在檢查每一該些處理器是否具有該辨識(shí)值的步驟中是由基本輸入輸出系統(tǒng)從該系 統(tǒng)管理存儲(chǔ)器中檢查該些處理器中何者具有該辨識(shí)值。
7. 根據(jù)權(quán)利要求1所述的多處理器系統(tǒng)的進(jìn)入省電模式方法,其中該第 一讀取要求帶有偽電源管理觸發(fā)地址,該第二讀取要求帶有真電源管理觸發(fā) 地址。
8. —種多處理器系統(tǒng),包括處理單元,具有多個(gè)處理器,若該些處理器的一者進(jìn)入閑置狀態(tài),則進(jìn) 入該閑置狀態(tài)的該處理器發(fā)出第一讀取要求;以及芯片組,與該處理單元連接,該芯片組依據(jù)該第一讀取要求,提供辨識(shí) 值給發(fā)出該第一讀取要求的該處理器,并觸發(fā)中斷事件,使每一該些處理器 各自進(jìn)入系統(tǒng)管理模式,以檢查每一該些處理器是否具有該辨識(shí)值,其中 若具有該辨識(shí)值,則使具有該辨識(shí)值的該處理器保持于該系統(tǒng)管理模式中;若不具有該辨識(shí)值,則使不具有該辨識(shí)值的該處理器結(jié)束該系統(tǒng)管理模式;以及若該些處理器的全部皆具有該辨識(shí)值,則依第二讀取要求,觸發(fā)全部 該些處理器進(jìn)入省電模式。
9. 根據(jù)權(quán)利要求8所述的多處理器系統(tǒng),其中該第一讀取要求帶有觸發(fā) 地址,而在該芯片組中,設(shè)定對(duì)應(yīng)該觸發(fā)地址的陷阱以及將該第一讀取要求 的回傳值設(shè)定為該辨識(shí)值。
10. 根據(jù)權(quán)利要求8所述的多處理器系統(tǒng),其中該第一讀取要求中帶有 觸發(fā)地址,而進(jìn)入該閑置狀態(tài)的該處理器發(fā)出帶有該觸發(fā)地址的該第一讀取 要求給該芯片組,以及該芯片組回傳該辨識(shí)值給發(fā)出該第 一讀取要求的該處 理器。
11. 根據(jù)權(quán)利要求8所述的多處理器系統(tǒng),其中該中斷事件包括系統(tǒng)管 理中斷事件,而該多處理器系統(tǒng)還包括系統(tǒng)管理存儲(chǔ)器,與該芯片組連接,其中若發(fā)生該系統(tǒng)管理中斷時(shí),每 一該些處理器將其內(nèi)容存放于該系統(tǒng)管理存儲(chǔ)器中,以及每一該些處理器各 自進(jìn)入該系統(tǒng)管理模式。
12. 根據(jù)權(quán)利要求11所述的多處理器系統(tǒng),其中該第一讀取要求中帶有 觸發(fā)地址,且依據(jù)帶有該觸發(fā)地址的該第一讀取要求,該芯片組觸發(fā)該系統(tǒng) 管理中斷。
13. 根據(jù)權(quán)利要求11所述的多處理器系統(tǒng),還包括基本輸入輸出系統(tǒng),該基本輸入輸出系統(tǒng)從該系統(tǒng)管理存儲(chǔ)器中檢查該 些處理器中何者具有該辨識(shí)值。
14. 根據(jù)權(quán)利要求8所述的多處理器系統(tǒng),其中該第一讀取要求帶有偽電源管理觸發(fā)地址,該第二讀取要求帶有真電源管理觸發(fā)地址。
全文摘要
一種多處理器系統(tǒng)及其進(jìn)入省電模式方法。此方法首先檢測(cè)多個(gè)處理器;若其中一個(gè)處理器進(jìn)入閑置狀態(tài),則前述進(jìn)入閑置狀態(tài)的處理器發(fā)出第一讀取要求以獲得辨識(shí)值,并觸發(fā)中斷事件,使每一處理器進(jìn)入「系統(tǒng)管理模式」。然后檢查每一處理器是否具有該辨識(shí)值。若具有該辨識(shí)值,則使具有辨識(shí)值的處理器保持于系統(tǒng)管理模式中;若反之,則使不具有辨識(shí)值的處理器結(jié)束系統(tǒng)管理模式。若每一個(gè)處理器皆具有辨識(shí)值,則依第二讀取要求,觸發(fā)全部該些處理器進(jìn)入省電模式。
文檔編號(hào)G06F1/32GK101349939SQ20081021519
公開(kāi)日2009年1月21日 申請(qǐng)日期2008年9月12日 優(yōu)先權(quán)日2008年9月12日
發(fā)明者張欽漢, 黃宗慶 申請(qǐng)人:威盛電子股份有限公司