TWI275945B - Optimization of SMI handling and initialization - Google Patents

Optimization of SMI handling and initialization Download PDF

Info

Publication number
TWI275945B
TWI275945B TW093130020A TW93130020A TWI275945B TW I275945 B TWI275945 B TW I275945B TW 093130020 A TW093130020 A TW 093130020A TW 93130020 A TW93130020 A TW 93130020A TW I275945 B TWI275945 B TW I275945B
Authority
TW
Taiwan
Prior art keywords
smi
processor
code
smbase
processing
Prior art date
Application number
TW093130020A
Other languages
English (en)
Other versions
TW200525365A (en
Inventor
Barnes Cooper
Grant Kobayashi
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW200525365A publication Critical patent/TW200525365A/zh
Application granted granted Critical
Publication of TWI275945B publication Critical patent/TWI275945B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)

Description

1275945 (1) 九、發明說明 【發明所屬之技術領域】 本發明有關電腦系統的領域,特別是關於系統管理模 式的最佳化。 【先前技術】 電腦系統在我們的社會中變得愈來愈普遍,其包含來 自如個人數位資料助理和行動電話的小型手持電子裝置的 ’如機上盒和其他消費性電子之特定應用的電子元件,和 所有的行動、桌上型電腦和伺服器系統。然而,隨著系統 在尺寸和價格上的減少,對於高效能的記憶體配置和系統 管理變得更爲重要。 傳統伺服器系統特徵爲在相同系統(多處理器系統) 中有相當數量的傳統記憶體和多個實體處理器,其中實體 處理器意指單一處理器晶粒或單一封裝。多個伺服器系統 之記憶體導致非常沒效率之記憶體空間配置及執行時間之 浪費。 通常在多處理器系統中,在開機時,每一個處理器對 於喚醒仲裁,可包含分配記憶體和重置處理器的基底位址 (SMBase )。在初始化每一個處理器的過程中,會產生 系統管理岔斷(SMI ),其對於每一個處理器由預設SMI 處理常式所處理。通常,開始處理SMI之第一處理器可 以開始初始化。初始化一般包含對於每一個處理器配置分 隔和獨特4kB對正記憶體空間,其驅使分配比所需更多之 (2) Ϊ275945 記憶體給系統管理。 再者,當系統管理岔斷(SMI )發生,不論處於開機 或一般操作,多處理器系統之每一個處理器會進行分開且 獨特的 SMI處理常式以服務/處理SMI。有兩種型式的 SMI。第一種型式爲可由系統硬體產生之非同步岔斷,諸 如當低電量。既然服務要求不需要了解另一處理器的儲存 狀態區域,非同步岔斷可由任何處理器所分開處理。第二 種型式之岔斷爲由軟體所產生之同步SMI,需由每一個處 理器來處理。一般軟體產生SMI在操作系統(0S )要處 理器進入系統管理模式(SMM)時發生。SMM爲一種不 會妨礙0S或應用程式,用來執行軟體例程/處理常式之 環境。 在現行多處理器系統中,每一個處理器進入SMM然 後逐一執行獨特SMI處理常式以檢查其暫存器來找出哪 一個處理器產生SMI。這個需要對於每一個處理器執行分 開的SMI處理常式,此會引起資源衝突問題,這也讓更 新SMI處理常式碼變得困難。 然而,這些無效的初始化和處理方法並不拘限於多處 理器伺服器系統,而存在於其他系統中,如行動多處理器 系統。超線程技術(HT )爲從加州聖克拉拉之英特爾公 司的技術,使得可使用信號實體處理器來執行平行之線程 。HT在一個實體處理器(相同晶粒)上包含兩個邏輯處 理器。邏輯處理器爲操作系統(〇 S )顯而易見之獨立處 理器,可以從系統之其他處理器執行碼及保持單一架構狀 -5- (3) (3)1275945 態。HT藉由具有分享一組執行資源之多架構狀態來達成 〇 因此’ HT讓多(邏輯)處理器系統可應用於行動平 台。如上所示,無效記憶體配置、處理器初始化及SMI 處理存在於傳統的多處理器系統,如伺服器系統。再者, 隨著多處理器系統開始滲入行動領域中,諸如記憶體之資 源被限制,使得上述沒有效率之最佳化需求變得更加重要 【發明內容及實施方式】 在以下說明中,提出如特定記憶體位址、記憶體大小 和元件組態的例子之數個特定詳述是爲了提供對本發明完 整的了解。然而對於熟習該領域之人,不需要使用這些特 定細節來實踐本發明。在其他例子中,爲了避免不必要的 混淆模糊本發明,已知元件或方法,如例行開機方塊(例 如系統開機自我偵測(POST ))、特定系統管理模式( SMM )實現、及特定系統管理岔斷處理常式碼並沒有在此 詳細地描述。 在此所描述之方法和裝置是爲了喚醒處理器時記億體 配置之最佳化及在多處理器系統處理的系統管理岔斷( SMI )之最佳化。發生喚醒處理器之方法可因任何數目之 正常操而導致。例如,當電腦開機或重置時,可喚醒有作 用/休眠處理器。再者,當系統從低電量狀態恢復,如休 眠、待命、中止、冬眠、等待SIPI、睡眠、深層睡眠、重 (4) 1275945 置、或任何其他第二處理器不會回應於岔斷之模式時,可 喚醒有作用處理器。 對於熟習此領域之人,可以淸楚了解所揭露喚醒第二 處理器之方法可應用於任何層級的電腦系統(個人數位助 理、行動平台、桌上型電腦平台、及伺服器平台),並同 樣對於任何數目之處理器。例如,四個以上處理器之多處 理器系統可使用此方法來喚醒無作用處理器及有作用處理 器。 圖1 - 3描述說明一些可實施在此所描述之方法的硬 體例子。所描述之方法可使用於任何多處理器系統;因此 ,爲了不以沒必要的細節混淆本發明,將只參考圖3來描 述此方法。 圖1說明具有多重邏輯處理器之裝置i 05的方塊圖。 實體處理器參照實體處理器晶粒或單一封裝。邏輯處理器 爲可看見作業系統(Ο S )的獨立處理器,能執行碼和自 系統內的其他處理器保持單一架構狀態。超線程技術( HT )爲來自加州聖克拉拉之英特爾公司的技術,其啓動 使用信號實體處理器的線程平行地執行。HT在實體處理 器包含兩邏輯處理器,且達成複製具有分享一組處理器執 行資源之每一架構狀態(architecture state )的架構指揮 φ ( architectural state)。 裝置105可包含第一處理器120和第二處理器125。 裝置105可爲實體處理器。裝置105亦可爲內嵌式系統或 具有至少兩處理器的其他裝置。處理器120和125可爲邏 (4) (4)1275945 置、或任何其他第二處理器不會回應於岔斷之模式時,可 喚醒有作用處理器。 對於熟習此領域之人,可以淸楚了解所揭露喚醒第二 處理器之方法可應用於任何層級的電腦系統(個人數位助 理、行動平台、桌上型電腦平台、及伺服器平台),並同 樣對於任何數目之處理器。例如,四個以上處理器之多處 理器系統可使用此方法來喚醒無作用處理器及有作用處理 器。 圖1 - 3描述說明一些可實施在此所描述之方法的硬 體例子。所描述之方法可使用於任何多處理器系統;因此 ,爲了不以沒必要的細節混淆本發明,將只參考圖3來描 述此方法。 圖1說明具有多重邏輯處理器之裝置105的方塊圖。 實體處理器參照實體處理器晶粒或單一封裝。邏輯處理器 爲可看見作業系統(OS )的獨立處理器,能執行碼和自 系統內的其他處理器保持單一架構狀態。超線程技術( HT )爲來自加州聖克拉拉之英特爾公司的技術,其啓動 使用信號實體處理器的線程平行地執行。HT在實體處理 器包含兩邏輯處理器,且達成複製具有分享一組處理器執 行資源之每一架構狀態(architecture state)的架構指揮 中心(architectural state ) 〇 裝置105可包含第一處理器120和第二處理器125。 裝置105可爲實體處理器。裝置105亦可爲內嵌式系統或 具有至少兩處理器的其他裝置。處理器120和125可爲邏 -7- (5) 1275945 輯處理器。例如,處理器1 〇 5可包含各持有單一架構狀態 的架構狀態暫存器1 3 0和1 3 5。顯然地,裝置1 05可包含 超過兩個邏輯處理器,各具有與其結合的架構狀態暫存器 ,以保持各別的架構狀態。兩處理器1 20和1 25分享相同 執行資源140、快取記億體145、匯流排150、記憶體155 〇 裝置1 05亦可包含控制器1 1 0。控制器1 1 0可以爲高 級可程式岔斷控制器(ΑΡIC )控制器。控制器1 1 0可用 於產生系統管理岔斷(SMI )。控制器1 10亦可用於在 APIC匯流排上通訊,在此並未描述,並將第一處理器 1 2 0和第二處理器1 2 5耦接在一起。 裝置1 0 5亦可包含記憶體1 5 5。記憶體可以是任何型 式可儲存資料之儲存器。例如,記憶體1 5 5可以是儲存資 訊之暫存器。記憶體1 55亦可是另一層級之快取記億體 145。記憶體155亦可是一種置於裝置105上之系統記憶 體形式。 記憶體1 5 5至少有第一記憶體位置1 60和第二記億體 位置1 6 5。第一記憶體位置1 60可含有預設系統管理處理 常式碼。第一記憶體位置1 6 0亦可爲1 k對正。第二記憶 體位置1 6 5可爲另一個非1 k對正位址。第一記憶體位置 160和第二記憶體位置165亦可爲第一處理器120和第二 處理器125之各別基底位址。第二記憶體位置165亦可在 重置第一處理器1 2 0的基底位址時,被當作暫時的儲存器 空間使用。第一和第二記憶體位置將參考圖4 - 9所描述 (6) 1275945 ;^方法來更詳細地討論。 圖2說明具有多處理器之系統的例子。系統可包含第 一處理器20 5和第二處理器210。處理器2 05和210可以 是實體處理器,其中每一個處理器在其本身之封裝內。系 統亦可包含系統匯流排2 1 5以耦接處理器2 05和2 1 0來控 制集線器220。控制集線器220亦可藉由匯流排225來耦 接至記憶體23 0。 圖3說明具有多處理器之系統的例子。處理器3 05可 包含處理器3 1 0和處理器3 1 5,其共享執行資源3 3 0、快 取記憶體3 3 5、及系統匯流排3 4 0。架構狀態暫存器3 2 0 和3 2 5持有處理器3 2 0和3 2 5各別之獨特架構狀態。系統 匯流排3 4 0將處理器3 0 5耦接至控制集線器3 4 5。控制集 線器3 4 5可藉由第二匯流排3 5 0耦接至系統記憶體。系統 記憶體可具有多個記憶體位置,如第一記憶體位置3 65和 第二記憶體位置3 70。 將使用圖3說明之系統來敘述圖4 - 9所描述之方法 。雖然藉由參考圖3來敘述有效的記憶體配置和系統管理 岔斷(SMI )處理之方法,但可淸楚知道圖!、圖2、及 其他未描述之硬體組態之硬體可應用在此所描述之方法。 圖4說明喚醒第二處理器之第一處理器的高階流程圖 。第一和第二處理器可以是位於處理器晶粒上之邏輯處理 器、如圖2所示位在不同封裝上之分開處理器、或其他多 處理器組態之處理器。當多處理器系統從低電量狀態起來 ,如休眠、待命、中止、冬眠、等待SIPI、睡眠、深層睡 -9- (7) 1275945 眠、重置、或任何其他第二處理器不會回應於岔斷之模式 時,第一處理器應該開始到有作用狀態,而第二處理器應 該開始到無作用狀態。有作用狀態可包含執行碼或回應於 岔斷。相反地,無作用狀態可包含不回應於岔斷。無作用 狀態亦可包含不執行碼。 在方塊405,接收第一系統管理岔斷(SMI )。通常 產生SMI以從處理器要求服務。一旦接收SMI,處理器 會進入系統管理模式(SMM )以藉由進行傳統記憶體之 SMI處理常式碼和例程來服務要求,除非處理器爲無作用 且不回應於岔斷。 如例子所示,可由如圖3所描述控制集線器3 4 5之控 制集線器來產生方塊40 5之第一 SMI。如另一個例子所示 ,可由如圖1控制器1 10之AP 1C,或分開位於系統(在 此未描述)之控制器來產生方塊405之第一 SMI。再如另 一個例子所示,可由改變處理器上接腳之邏輯位準來產生 方塊405之第一 SMI,如處理器3 05或如控制器3 4 5之控 制集線器。 方塊40 5之第一 SMI可以是一服務要求以初始化 S Μ Μ、對於系統管理分配位址空間、及/或重置處理器基 底位址(SMBase ) 。S Μ B a s e可以是記憶體系統管理部分 開始之位址。SMBase亦可爲參考記憶體系統管理部分之 位址。例如,S Μ B a s e之値可爲 0x3 0000。對於該部分之 記憶體的SMI處理常式可以SMBase作爲參考偏移。舉例 來說,SMI處理常式可從SMBase偏移0x8000 ( SMBase + -10- (8) (8)1275945 0x8000),在此例子中SMI處理常式即爲0x38000。 當在多處理器系統中產生 SMI時,第一處理器和第 二處理器兩者應該接收/閂鎖SMI。然而’在此時第二處 理器不可進入SMM及處理SMI,既然其處於無作用狀態 (不回應於岔斷)。相反地,在方塊410,第一處理器可 以是有作用且可處理在方塊405中接收之第一 SMI。當第 一 SMI由第一處理器接收,則第一處理器可進入系統管 理模式(SMM)以服務/處理SMI。 如圖5所示,第一處理器可藉由來處理SMI在方塊 505初始化SMM及在方塊510執行預設SMI處理常式。 預設SMI處理常式可以是位於預設記憶體位置之預設碼 ,如第一記憶體位置3 6 5。第一記憶體位置可爲1 k、4k、 或任何其他對正記憶體範圍。 回到圖4,在方塊415由第一處理器產生喚醒信號。 在方塊4 1 5之喚醒信號可以是任何傳送來將第二處理器從 無作用狀態喚醒之信號。既然第二處理器可能不回應於岔 斷或在無作用狀態執行碼,則喚醒信號可以是匯流排信號 ,該第二處理器在無作用狀態等待開始喚醒過程。在一實 施例中,喚醒信號可以是在匯流排(在此未描述)上傳送 之開始內部處理器岔斷(SIPI )信息,如耦接第一和第二 處理器之APIC匯流排。 如圖5所述在方塊5 1 5,喚醒信號可以是根據預設 SMI處理常式之記憶體位置之向量。喚醒信號可以是記憶 體中之任何位址或記憶體中之任何參考位址位置。在一實 -11 - (9) (9)1275945 施例中,預設SMI處理常式位於第一記憶體位置3 6 5,其 中喚醒信號爲根據第一記億體位置3 6 5之向量。在另一實 施例中,喚醒信號根據第一記憶體位置3 6 5,其爲1 k、4k 、或其他對正記憶體位址範圍。第二處理器可要求對正喚 醒信號並在傳統系統記憶體中。再另一實施例中,第一記 憶體位置3 65可爲第二處理器3 1 5開始執行之位址位置。 再回到圖4,方塊420顯示正喚醒第二處理器。方塊 420可包含喚醒第二處理器以允許其處理在方塊405接收 之第一 SMI,或進行基本喚醒例程,諸如開機自我偵測( POST)。 在下一個方塊,方塊425,在方塊405接收之第一 SMI由第二處理器所處理。雖然,第二處理器可能在第一 SMI於方塊405被接收時爲無作用,也因此無法在當時服 務SMI ;但第二處理器仍可在無作用狀態下閂鎖SMI。一 旦甦醒,則第二處理器可處理事先被閂鎖之第一 SMI。 移到圖5來看,方塊520和525說明用第二處理器處 理第一 SMI之一實施例。在方塊5 20,第二處理器開始 SMM。另外,在方塊5 25第二處理器之指令指標可被修補 至第二記憶體位址,如圖3之第二記憶體位址3 70。第二 記憶體位址3 70可以是非對正位址,而不再拘限於傳統記 憶體。一旦第二處理器將指令指標修補至第二記憶體位址 3 7 0,將不再需要分配傳統對正記憶體以執行開始碼。在 完成初始化及重新開始之後,如方塊5 3 0所示,第二處理 器可重新開始修補指向第二記憶體位址3 7 0之指令指標, -12- (10) (10)1275945 並開始執彳了其開始碼。 參考圖6 ’描述一種不論開機或正常操作下處理及 SMI之方法,其中SMi可使用相同SMi處理常式在多處 理器上處理。在方塊6 0 5,接收S ΜI。S ΜI可以是硬體( 非同步)’諸如低電量,或軟體,諸如要求處理器改變頻 率或功率位準之OS。通常,硬體SMI可在不了解其他處 理器的儲存狀態區域下由任一處理器處理。軟體SMI卻 相反’在SMI產生時,通常需依賴處理器之架構狀態, 因此會要求進入產生SMI之處理器的儲存狀態區域。因 此’軟體產生SMI可能會要求所有多處理器系統中之處 理器進入S Μ Μ並執行處理常式。 在方塊610,第一處理器執行SMI碼(SMI處理常式 )以處理第一處理器之SMI。處理SMI可包含執行SMI 碼以決定是否現行處理器的儲存狀態區域被檢查產生SMI 。處理SMI亦可包含服務SMI要求。 如上所述,參考圖4,第一處理器可具有第一 SMBase位址。SMI碼(SMI處理常式)可位於從第一 SMBase位址之預設偏移。而且,SMI碼可參考目標 SMBase位址。目標SMBase可以是SMI碼對準存取處理 器的系統管理區域之位址(在記憶體之範圍)。 如例子所示,目標SMBase可藉由預設來設定以參考 第一 SMBase位址,其爲第一處理器的系統管理區域之開 始位址。因此,當接收SMI及執行SMI處理常式碼,SMI 處理常式碼可藉由參考目標SMBase來存取包含第一處理 -13- (11) (11)1275945 器的儲存狀態區域之第一處理器系統管理區域。 在方塊610執行SMI碼以處理第一處理器之SMI之 後,如方塊6 1 5所示,可執行相同的S ΜI碼/處理常式 以處理第二處理器之SMI。圖7爲方塊615之說明實施例 ,並以流程圖來描述執行SMI處理常式以處理第二處理 器之SMI。在方塊705,SMI處理常式之目標SMBase位 址從第一處理器之第一 SMBase位址改變爲第二處理器之 第二SMBase位址。 延續上述之例子,在以目標SMBase對準第一 SMBase來執行SMI處理常式碼之後,目標SMBase可改 爲對準第二SMBase位址。第二SMBase位址可以是第二 處理器的系統管理區域(記憶體空間)之開始位址。因此 ,如方塊710所示,當使用第二處理器的SMBase作爲目 標SMBase來執行SMI處理常式時,相同SMI碼/處理 常式可以藉由參考第二處理器的SMBase位址來處理第二 處理器之SMI。 圖8描述假若所處理之SMI爲軟體產生,另一個執 行多處理器之相同SMI處理常式碼之說明實施例。如上 所述,硬體S MI可在不影響其他處理器下藉由任何處理 器來處理。因此,在方塊8 05,第一處理器執行SMI碼。 在方塊810,第一處理器或第二處理器均可檢查是否SMI 爲軟體產生。可淸楚了解任一處理器均可在任何暫時次序 下檢查是否處理之SMI爲軟體產生。例如,第一處理器 可在方塊8 0 5之前檢查是否SMI爲軟體產生,然後在方 -14- (12) (12)1275945 塊8 0 5執行SMI處理常式碼。如另一個例子所示,第二 處理器可檢查是否軟體產生SMI在方塊805之後存在。 假若軟體SMI不存在,則第一處理器將在方塊815離開 SMM並回到正常操作。 然而,假若SMI爲軟體產生,則第二處理器應該同 樣地處理SMI。在方塊820,第二處理器可執行與第一處 理器在方塊805所執行相同之SMI碼。 圖9以流程圖來描述執行相同SMI碼之例子。很像 圖6和7,位於第一記憶體位置3 6 5之第一處理器的 SMBase,可爲目標SMBase位址。在用第一處理器執行 SMI碼來處理第一處理器之SMI之後,目標SMBase可在 方塊9 0 5改變爲對準第二處理器的SMBase位址。在方塊 910,使用第二處理器的SMBase作爲目標SMBase來執行 SMI碼。此外,如方塊 915所示,可重新儲存目標 SMBase以$^[準第一處理器的SMBase位址。 可淸楚知道第一和第二處理器之任何組合均可執行 SMI碼。例如,第一處理器可執行第一處理器之SMI碼 。然後,在目標SMBase改變爲第二處理器的SMBase之 後,第一處理器可再次執行SMI碼以處理第二處理器之 SMI。如另一個例子所示,第二處理器可執行SMl碼兩次 。再另一個例子中,第一處理器可在第一次執行SMI碼 時執行SMI碼以處理第一處理器之SMI,而第二處理器 可在第二次執行SMI碼以處理第二處理器之SMI。
因此’不像現行之系統,這些最佳化可只用一個SMI (13) (13)1275945 來喚醒並開始執行第二處理器。再者,不像傳統方法,在 不同預設記憶體位址開始各處理器,記憶體可藉由傳送可 在第一記憶體位址開始第二處理器之喚醒信號來儲存,其 可爲預設SMI處理常式之位置。此外,藉由在第二處理 器處理第一 .SMI時修補指令指標,使得第二處理器可在 非對正之第二記憶體位址重新開始。允許第二處理器在第 二記憶體位址重新開始可節省各處理器之分開對正記憶體 空間之配置。 此外,可先藉由第一處理器再由第二處理器執行相同 處理常式碼來用相同的處理常式處理SMI。藉由檢查是否 所處理之 SMI爲軟體產生且在SMI非軟體產生下離開 SMM,可節省相當的執行時間。再者,既然軟體SMI處 理常式所需之所有改變可在不要求對軟體SMI處理常式 例程作修改下輕易地含在包裝碼中,讓此成就允許更容易 之平台開發。 本發明得由熟悉技藝之人任施匠思而爲諸般修飾,然 皆不脫如申請專利範圍所欲保護者。 【圖式簡單說明】 圖1說明具有分享執行資源、快取記億體和記憶體之 多重處理器之裝置的方塊圖。 圖2說明具有多重處理器之系統的方塊圖。 圖3說明具有含多重邏輯處理器之實體處理器之系統 的方塊圖。 -16- (14) (14)1275945 圖4說明喚醒第二處理器之第一處理器的流程圖。 圖5描述用於喚醒具有第一處理器之第二處理器之說 明實施例的流程圖。 圖6說明處理在具有相同SMI處理常式之第一和第 二處理器上之SMI的流程圖。 圖7描述用於處理在具有SMI處理常式之第一和第 二處理器上的SMI之說明實施例的流程圖。 圖8說明假如產生的SMI爲軟體SMI,則在第一和 第二處理器上執行相同系統管理岔斷碼的流程圖。 圖9描述假如被處理的SMI爲產生的軟體,則執行 相同SMI處理常式之第一和第二處理器之說明實施例的 流程圖。 【主要元件符號說明】 105 :裝置 1 1 〇 :控制器 120 :第一處理器 125 :第二處理器 1 3 0 :架構狀態暫存器 1 3 5 :架構狀態暫存器 140 :執行資源 145 :快取記憶體 1 5 0 :匯流排 1 5 5 :記憶體 -17- (15) (15)1275945 160 :第一記憶體位置 165 :第二記憶體位置 205 :第一處理器 2 1 0 :第二處理器 2 1 5 :系統匯流排 220 :控制集線器 225 :匯流排 23 0 :記憶體 3 0 5 :處理器 3 1 0 :處理器 3 1 5 :處理器 3 20 :架構狀態暫存器 3 25 :架構狀態暫存器 3 3 0 :執行資源 3 3 5 :快取記憶體 3 4 0 :系統匯流排 3 45 :控制集線器 3 5 0 :第二匯流排 3 5 5 :記憶體 3 65 :第一記憶體位置 3 70 :第二記億體位置

Claims (1)

1275945 9^10.?^ r,rΛ,, ^v,,-:·! 十 ….....——.…—.:r’. . . . . 十、申請專利範圍 附件2 ·· 第93 1 30020號專利申請案 中文申請專利範圍替換本 民國95年10月26日修正 K 一種系統管理岔斷(SMI )處理和初始化之最佳 化的方法,包括: 接收第一 S ΜI ; 用第一處理器處理第一 SMI ; 用第一處理器產生喚醒信號; 根據來自第一處理器的喚醒信號喚醒第二處理器;以 及 用第二處理器處理第一SMI。 2 ·如申請專利範圍第1項之方法,其中第一和第二 處理益爲邏輯處理器。 3 ·如申請專利範圍第1項之方法,其中第一和第二 處理器爲實體處理器。 4 ·如申§靑專利範圍第1項之方法,其中用第一處理 器處理第一 S M1包括:執行位於第〜記憶體位址的預設 SMI處理常式。 5 ·如申5P9專利軸圍第4項之方法,其中喚醒信號包 括根據第一記憶體位址的向量。 6 ·如申請專利範圍第5項之方法,其中第一記憶體 位址被對正。 7 ·如申請專利範圍第6項之方法,其中第一記憶體 95. 10:2^ 1275945 位址被4k對正。 8 ·如申請專利範圍第5項之方法,其中用第二處理 器處理第一 SMI包括執行位在第一記憶體位址的預設 SMI處理常式。 9. 如申請專利範圍第8項之方法,其中用第二處理 器處理第一 SMI進一步包括將指令指標修補至第二記憶 體位址。 10. 如申請專利範圍第9項之方法,其中第二記憶體 位址爲非對正位址。 1 1 ·如申請專利範圍第1 〇項之方法,進一步包括: 在第二處理器處理第一 SMI後執行在第二記憶體位址的 碼。 12. —種SMI處理和初始化之最佳化的方法,包括 接收第一系統管理岔斷(SMI ); 回應第一 SMI用第一處理器執行在第一記憶體位址 的碼; 用第一處理器產生喚醒信號; 根據來自第一處理器的喚醒信號喚醒第二處理器;以 及 用第二處理器執行在第一記憶體位址的碼。 1 3 ·如申請專利範圍第1 2項之方法,其中喚醒信號 爲根據弟一記憶體位址。 14·如申請專利範圍第13項之方法,其中第一記憶 -2- 1275945 --*— 年月日修(秦^正替換頁 *^"*^*^*1 Γ"*-ΤΐΐΐΊ<|^~ I -1|- I I » .»·· %· 體位址爲預設SMI處理碼的位置。 1 5 ·如申請專利範圍第1 4項之方法,其中第一記憶 體位址位於傳統記憶體。 1 6·如申請專利範圍第1 5項之方法,其中第一記憶 體位址爲對正。 17·如申請專利範圔第12項之方法,其中第一和第 二處理器皆爲位於相同晶粒的邏輯處理器。 1 8 ·如申請專利範圍第1 2項之方法,其中第一和第 二處理器爲位於不同封裝的實體處理器。 1 9 ·如申§靑專利軔圍第1 2項之方法,進一步包括: 對於第二處理器將指令指標修補至第二記憶體位址。 2 0.如申請專利軔圍第1 9項之方法,其中第二記憶 體位址爲非對正位址。 2 1.如申i靑專利軺圍第2 0項之方法,進一步包括: 將指令指標修補至第二記憶體位址後執行在第二記憶 體位址的碼。 2 2·如申請專利範圍第1 2項之方法,進一步包括在 用第一和第二處理器接收SMI前產生SMI。 23·如申請專利範圍第22項之方法,其中產生SMI 包括改變耦接至控制集線器之接腳的邏輯位準。 24·如申請專利範圍第22項之方法,其中APIC用 於產生SMI。 25.如申請專利範圍第24項之方法,其中AP 1C位 於第一處理器。 -3- 1275945
月R修 ..替換頁丨 2 6.—種S ΜI處理和初始化之最佳化的方法,包括 接收系統管理岔斷; 執行S ΜI處理常式以用第一處理器處理s ΜI ;以及 執行SMI處理常式以用第二處理器處理SMI。 27·如申請專利範圍第26項之方法,其中SMI爲產 生SMI的軟體。 28. 如申請專利範圍第27項之方法,其中第一處理 器執行SMI處理常式以處理第一和第二處理器的SMI。 29. 如申請專利範圍第26項之方法,其中SMI處理 常式位於第一記憶體位址。 3 0·如申請專利範圍第29項之方法,其中第一記憶 體位址從第一處理器的第一系統管理基底(SMBase )位 址爲預設偏移。 3 1 .如申請專利範圍第3 0項之方法,其中用第一 SMI處理常式處理第二SMI包括: 對於第二處理器將SMI處理常式的目標SMBase從第 一 SMBase改變爲第二SMBase;以及 執行使用第二處理器之SMBase作爲目標SMBase的 第一 SMI處理常式。 32. 一種SMI處理和初始化之最佳化的方法,包括 用第一處理器執行系統管理岔斷(SMI )碼以用第一 處理器處理SMI ; 1275945
檢查是否SMI爲產生SMI的軟體;以及 假如SMI爲產生的軟體,則執行SMI碼以處理第二 處理器的SMI。 33. 如申請專利範圍第32項之方法,其中假如SMI 爲產生的軟體,則第一處理器執行SMI碼以處理第二處 理器的S ΜI。 34. 如申請專利範圍第32項之方法,其中假如SMI 爲產生的軟體,則第二處理器執行SMI碼以處理第二處 理器的SMI。 3 5 ·如申請專利範圍第3 2項之方法,其中第一處理 器具有第一系統管理基底(SMBase)位址。 3 6.如申請專利範圍第33項之方法,其中第二處理 器具有第二SMBase位址。 37.如申請專利範圍第36項之方法,其中SMI碼位 於第一記憶體位置,從第一 SM基底位址具有偏移。 3 8.如申請專利範圍第37項之方法,其中執行SMI 碼以處理第二處理器的SMI包括: 將SMI處理常式的目標SMBase從第一 SMBase改變 爲第二SMBase ;以及 執行使用第二處理器的SMBase作爲目標SMBase的 S MI 碼。 3 9.如申請專利範圍第3 8項之方法,進一步包括在 執行SMI碼以處理第二處理器的SMI後,將SMI處理常 式的目標SMBase回傳至第一 SMBase。
1275945 40· —種SMI處理和初始化之最佳化的裝置,包括 產生第一系統管理岔斷(S ΜI )的控制器; 第一邏輯處理器,耦接至控制器,以產生第一 SMI 來處理第一 SMI並產生喚醒信號;以及 第二邏輯處理器,耦接至控制器,在從第一邏輯處理 器接收喚醒信號後處理第一 S ΜΙ。 41·如申請專利範圍第40項之裝置,其中用第一邏 輯處理器處理第一 SMI,第一邏輯處理器在第一記憶體位 置執行碼。 42·如申請專利範圍第41項之裝置,其中第一記憶 體位址爲1 k對正。 4 3.如申請專利範圍第41項之裝置,其中用第二邏 輯處理器處理第一 SMI進一步包括在第一記憶體位置執 行碼。 44·如申請專利範圍第43項之裝置,其中用第二邏 輯處理器處理第一 SMI進一步包括將指令指標修補至第 二記憶體位址。 45· —種SMI處理和初始化之最佳化的系統,包括 產生第一系統管理岔斷(SMI )的控制集線器; 具含有碼的第一記憶體位址之記憶體; 第一處理器耦接至控制集線器以處理第一 SMI,其中 第一處理器執行在第一記憶體位址的碼並產生喚醒信號; • 6 - 1275945
以及 第二處理器耦接至控制集線器,在接收喚醒信號後處 理第一 SMI,其中第二處理器執行在第一記憶體位址的碼 〇 4 6·如申請專利範圍第4 5項之系統,其中第一和第 二處理器爲在相同晶粒上的邏輯處理器。 47.如申請專利範圍第45項之系統,其中第一和第 二處理器爲位於不同封裝上的實體處理器。 48·如申請專利範圍第45項之系統,其中接腳在控 制集線器上觸發以產生第一 SMI。 4 9·如申請專利範圍第45項之系統,其中碼在控制 集線器執行以產生第一 SMI。 5 0 .如申請專利範圍第4 5項之系統,其中在第一記 憶體位址的碼爲SMI處理碼。 5 1 .如申請專利範圍第5 0項之系統,其中喚醒信號 爲含有第一記憶體位址的向量。 5 2.如申請專利範圍第5 1項之系統,其中在接收喚 醒信號後用第二處理器處理第一 SMI進一步包括將指標 設定至第二記憶體位址。 5 3 .如申請專利範圍第5 2項之系統,其中第二處理 器在重新開始處理SMI後,執行在第二記億體位址的碼 54. 一種SMI處理和初始化之最佳化的系統,包括
1275945 具有第一記憶體位址的記憶體具有系統管理岔斷( SMI )碼; 第一處理器,當SMI被接收時執行SMI碼;以及 第二處理器,假如SMI爲產生的軟體則執行SMI碼 〇 55·如申請專利範圍第54項之系統,其中第一處理 器具有第一系統管理基底(SMBase)位址。 56·如申請專利範圍第55項之系統,其中第二處理 器具有第二SMBase位址。 5 7·如申請專利範圍第5 6項之系統,其中第一記憶 體位址具有來自第一 SMBase的偏移。 5 8 .如申請專利範圍第5 7項之系統,其中預設的目 標 SMBase 爲第 一 SMBase。 59·如申請專利範圍第58項之系統,其中目標 SMBase在第二處理器執行SMI碼前改改變爲第二 SMBase。 60·如申請專利範圍第54項之系統,其中第一和第 二處理器爲邏輯處理器。 6 1 ·如申請專利範圍第54項之系統,其中第一和第 二處理器爲實體處理器。
TW093130020A 2003-10-06 2004-10-04 Optimization of SMI handling and initialization TWI275945B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/681,446 US7493435B2 (en) 2003-10-06 2003-10-06 Optimization of SMI handling and initialization

Publications (2)

Publication Number Publication Date
TW200525365A TW200525365A (en) 2005-08-01
TWI275945B true TWI275945B (en) 2007-03-11

Family

ID=34465445

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093130020A TWI275945B (en) 2003-10-06 2004-10-04 Optimization of SMI handling and initialization

Country Status (7)

Country Link
US (1) US7493435B2 (zh)
CN (1) CN1890634B (zh)
DE (1) DE112004001887B4 (zh)
GB (1) GB2422230B (zh)
HK (1) HK1086097A1 (zh)
TW (1) TWI275945B (zh)
WO (1) WO2005038652A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533097B2 (en) * 2004-06-29 2009-05-12 International Business Machines Corporation Dynamic user interface creation based on user responsibilities and company policies
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
CN100474214C (zh) * 2004-08-05 2009-04-01 松下电器产业株式会社 信息处理装置
US7810083B2 (en) * 2004-12-30 2010-10-05 Intel Corporation Mechanism to emulate user-level multithreading on an OS-sequestered sequencer
US7797555B2 (en) * 2006-05-12 2010-09-14 Intel Corporation Method and apparatus for managing power from a sequestered partition of a processing system
US7647509B2 (en) * 2006-05-12 2010-01-12 Intel Corporation Method and apparatus for managing power in a processing system with multiple partitions
US7464211B2 (en) * 2006-09-14 2008-12-09 International Business Machines Corporation Method of detecting and recovering a lost system management interrupt (SMI) in a multiprocessor (MP) environment
US20090037932A1 (en) * 2007-08-01 2009-02-05 Clark Michael T Mechanism for broadcasting system management interrupts to other processors in a computer system
US7613861B2 (en) * 2007-08-14 2009-11-03 Dell Products, Lp System and method of obtaining error data within an information handling system
KR100932920B1 (ko) * 2007-12-17 2009-12-21 한국전자통신연구원 센서노드의 웨이크업 장치 및 방법
US20090172232A1 (en) * 2007-12-28 2009-07-02 Zimmer Vincent J Method and system for handling a management interrupt event
US7802042B2 (en) * 2007-12-28 2010-09-21 Intel Corporation Method and system for handling a management interrupt event in a multi-processor computing device
US7725637B2 (en) * 2007-12-31 2010-05-25 Intel Corporation Methods and apparatus for generating system management interrupts
US7797473B2 (en) * 2008-06-05 2010-09-14 Dell Products, Lp System for executing system management interrupts and methods thereof
US8024504B2 (en) * 2008-06-26 2011-09-20 Microsoft Corporation Processor interrupt determination
US20090327556A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Processor Interrupt Selection
WO2012106954A1 (zh) * 2011-08-31 2012-08-16 华为技术有限公司 多处理器的基本输入输出系统存储器刷写方法、及装置
WO2013057769A1 (ja) * 2011-10-20 2013-04-25 富士通株式会社 情報処理装置、情報処理装置の制御方法および制御プログラム
US9208113B2 (en) 2013-01-15 2015-12-08 Apple Inc. Deferred inter-processor interrupts
US11086658B2 (en) * 2013-11-20 2021-08-10 Insyde Software Corp. System performance enhancement with SMI on multi-core systems
US9529410B2 (en) * 2014-07-14 2016-12-27 American Megatrends, Inc. Service processor (SP) initiated data transaction with BIOS utilizing power off commands
US9529750B2 (en) * 2014-07-14 2016-12-27 American Megatrends, Inc. Service processor (SP) initiated data transaction with bios utilizing interrupt
CN111133414A (zh) * 2017-12-25 2020-05-08 英特尔公司 存储器初始化前多线程并行计算平台
US11481206B2 (en) * 2019-05-16 2022-10-25 Microsoft Technology Licensing, Llc Code update in system management mode

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04346127A (ja) * 1991-05-23 1992-12-02 Sony Corp 電子装置
US5530891A (en) * 1994-05-31 1996-06-25 Advanced Micro Devices System management interrupt mechanism within a symmetrical multiprocessing system
US5627962A (en) 1994-12-30 1997-05-06 Compaq Computer Corporation Circuit for reassigning the power-on processor in a multiprocessing system
US5613071A (en) * 1995-07-14 1997-03-18 Intel Corporation Method and apparatus for providing remote memory access in a distributed memory multiprocessor system
US5768585A (en) * 1995-11-21 1998-06-16 Intel Corporation System and method for synchronizing multiple processors during power-on self testing
US5761516A (en) 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus
US5842026A (en) 1996-07-01 1998-11-24 Sun Microsystems, Inc. Interrupt transfer management process and system for a multi-processor environment
US5860002A (en) 1996-07-12 1999-01-12 Digital Equipment Corporation System for assigning boot strap processor in symmetric multiprocessor computer with watchdog reassignment
US5996058A (en) 1996-08-19 1999-11-30 Samsung Electronics Company, Ltd. System and method for handling software interrupts with argument passing
US6116767A (en) * 1997-04-30 2000-09-12 Compaq Computer Corporation Displaying audio disk track number in portable computer system
US5978903A (en) * 1997-08-19 1999-11-02 Advanced Micro Devices, Inc. Apparatus and method for automatically accessing a dynamic RAM for system management interrupt handling
US5938765A (en) * 1997-08-29 1999-08-17 Sequent Computer Systems, Inc. System and method for initializing a multinode multiprocessor computer system
JP3943665B2 (ja) * 1997-09-01 2007-07-11 株式会社東芝 スリープ制御方法、およびイベント通知方法
US6308278B1 (en) * 1997-12-29 2001-10-23 Intel Corporation Supplying standby voltage to memory and wakeup circuitry to wake a computer from a low power mode
US6065121A (en) * 1998-03-31 2000-05-16 Compaq Computer Corporation Control of computer system wake/sleep transitions
US6192442B1 (en) * 1998-04-29 2001-02-20 Intel Corporation Interrupt controller
US6158000A (en) * 1998-09-18 2000-12-05 Compaq Computer Corporation Shared memory initialization method for system having multiple processor capability
US6272618B1 (en) * 1999-03-25 2001-08-07 Dell Usa, L.P. System and method for handling interrupts in a multi-processor computer
US6282601B1 (en) * 1999-03-31 2001-08-28 International Business Machines Corporation Multiprocessor data processing system and method of interrupt handling that facilitate identification of a processor requesting a system management interrupt
US6374338B1 (en) * 1999-06-25 2002-04-16 International Business Machines Corporation Method for performing configuration tasks prior to and including memory configuration within a processor-based system
US6584573B1 (en) * 1999-08-30 2003-06-24 Intel Corporation Placing a computer system into a sleeping state
US6571333B1 (en) * 1999-11-05 2003-05-27 Intel Corporation Initializing a memory controller by executing software in second memory to wakeup a system
US6968412B1 (en) * 1999-12-30 2005-11-22 Intel Corporation Method and apparatus for interrupt controller data re-direction
US6611911B1 (en) * 1999-12-30 2003-08-26 Intel Corporation Bootstrap processor election mechanism on multiple cluster bus system
US20020099893A1 (en) * 2001-01-24 2002-07-25 Nguyen Tuyet-Huong Thi System and method for the handling of system management interrupts in a multiprocessor computer system
US6925556B2 (en) * 2001-02-14 2005-08-02 Intel Corporation Method and system to determine the bootstrap processor from a plurality of operable processors
US6968410B2 (en) * 2001-02-28 2005-11-22 Intel Corporation Multi-threaded processing of system management interrupts
US6836849B2 (en) * 2001-04-05 2004-12-28 International Business Machines Corporation Method and apparatus for controlling power and performance in a multiprocessing system according to customer level operational requirements
US6842857B2 (en) * 2001-04-12 2005-01-11 International Business Machines Corporation Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine
TW498213B (en) * 2001-04-18 2002-08-11 Via Tech Inc Method and chipset for supporting interrupts of system management mode in multiple-CPU system
TW515959B (en) * 2001-05-10 2003-01-01 Via Tech Inc Method for memory data access by system management interrupt and computer system thereof
US6848046B2 (en) * 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
US20030009654A1 (en) * 2001-06-29 2003-01-09 Nalawadi Rajeev K. Computer system having a single processor equipped to serve as multiple logical processors for pre-boot software to execute pre-boot tasks in parallel
US6615329B2 (en) * 2001-07-11 2003-09-02 Intel Corporation Memory access control system, apparatus, and method
US6775728B2 (en) * 2001-11-15 2004-08-10 Intel Corporation Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework
GB0212143D0 (en) * 2002-05-27 2002-07-03 Sendo Int Ltd Processor Monitor
GB0212260D0 (en) 2002-05-28 2002-07-10 Sendo Int Ltd System wakeup
US7146515B2 (en) * 2002-06-20 2006-12-05 International Business Machines Corporation System and method for selectively executing a reboot request after a reset to power on state for a particular partition in a logically partitioned system
US7043729B2 (en) * 2002-08-08 2006-05-09 Phoenix Technologies Ltd. Reducing interrupt latency while polling
US7698689B2 (en) * 2002-08-13 2010-04-13 Phoenix Technologies Ltd. Method for meeting SMI duration limits by time slicing SMI handlers
US7152169B2 (en) * 2002-11-29 2006-12-19 Intel Corporation Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state

Also Published As

Publication number Publication date
GB0606958D0 (en) 2006-05-17
DE112004001887B4 (de) 2011-06-22
HK1086097A1 (en) 2006-09-08
US20050086547A1 (en) 2005-04-21
DE112004001887T5 (de) 2006-09-14
GB2422230A (en) 2006-07-19
GB2422230B (en) 2007-07-11
TW200525365A (en) 2005-08-01
WO2005038652A1 (en) 2005-04-28
CN1890634B (zh) 2011-03-16
CN1890634A (zh) 2007-01-03
US7493435B2 (en) 2009-02-17

Similar Documents

Publication Publication Date Title
TWI275945B (en) Optimization of SMI handling and initialization
TWI283370B (en) System controlling method, microprocessor, information storage apparatus, and controlling system
US10248568B2 (en) Efficient data transfer between a processor core and an accelerator
KR101516109B1 (ko) 프로세서의 언코어 회로의 전력 소비 감소
JP3136257B2 (ja) コンピュータメモリインタフェース装置
JP2002517034A (ja) エミュレーションコプロセッサ
TWI454905B (zh) 在多核心平台中之受限制的啓動技術
JP2007035058A (ja) コンピュータシステム中の複数のエージェントをコンフィギュレーションする方法及びそのための装置
JP2015079542A (ja) 割り込み分配スキーム
US8364862B2 (en) Delegating a poll operation to another device
EP3588288B1 (en) A multithreaded processor core with hardware-assisted task scheduling
KR20120061938A (ko) 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템
CN116049053A (zh) 向用户级应用传递中断
US20180349288A1 (en) Input/output translation lookaside buffer prefetching
US10474596B2 (en) Providing dedicated resources for a system management mode of a processor
CN112306652A (zh) 带有上下文提示的功能的唤醒和调度
TWI259979B (en) Method and apparatus for processing hot key input using operating system visible interrupt handling
TWI502361B (zh) 加速信息發信中斷處理的處理器、方法及系統
US20070234098A1 (en) Self-timed clock-controlled wait states
JP2003085153A (ja) 制御レジスタ及びプロセッサ
JP2006040224A (ja) マルチプロセッサシステム及びプロセッサの制御方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees