TW201250460A - Bridge logic device for use in a heterogeneous computer system - Google Patents

Bridge logic device for use in a heterogeneous computer system Download PDF

Info

Publication number
TW201250460A
TW201250460A TW100143129A TW100143129A TW201250460A TW 201250460 A TW201250460 A TW 201250460A TW 100143129 A TW100143129 A TW 100143129A TW 100143129 A TW100143129 A TW 100143129A TW 201250460 A TW201250460 A TW 201250460A
Authority
TW
Taiwan
Prior art keywords
processor
virtual
high performance
logic unit
bridge
Prior art date
Application number
TW100143129A
Other languages
English (en)
Other versions
TWI453580B (zh
Inventor
Teng-Chang Chang
Original Assignee
Inst Information Industry
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 Inst Information Industry filed Critical Inst Information Industry
Publication of TW201250460A publication Critical patent/TW201250460A/zh
Application granted granted Critical
Publication of TWI453580B publication Critical patent/TWI453580B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • 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/22Microcontrol or microprogram 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/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • 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
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Description

201250460 六、發明說明: 【發明所屬之技術領域】 本發明在概念上係關於綠能運算(Green Computing)及運算耗 能之最小化。具體而言,本發明係關於用於一異質性電腦系統之 一橋接邏輯裝置,橋接邏輯裝置係將一低耗能之主要處理器増加 至標準x86架構,使一異質性系統能以最小的運算耗能來執行運 算。 【先前技術】 在現代社會中,各式各樣的電腦已經成不可或缺的設備。Intel x86架構(其原始架構係由美國加利福尼亞州聖塔克拉拉市的intel 公司所設計’而最新的64-bit CISC架構則是由美國加利福尼亞州 桑尼維爾市的Advanced Micro Devices公司逐步開發的)在主流的 運算架構中長期地佔有支配性的地位。另一方面,目前非x86架 構運算在商業界裡是由行動運算(包含智慧型手機及觸控式螢幕 裝置)中的ARM處理器(RISC ARM的架構是由英國的ARM Holding pic of Cambridge所研發)所主導。由綠能運算的角度觀 之,x86及非x86運算具有如下之問題。 為實現綠能運算,因此有必要減少採用x86架構之桌上型電腦 於閒置(idling)時之耗能。對那些需要運算資源的應用程式而言, 採用x86運算較為合適。在全球已安裝了數以百萬計的家用型及 辦公室桌上型電腦及攜帶式電腦、專業高性能工作站電腦及各種 基於電子商務所設置之伺服器電腦之情況下,運算耗能已然成為 環保的議題。這些議題之一便是與電腦運算閒置(亦即,電腦未 4 201250460 被使用’亦未被關機的時間)相關。 目前已有—些降低耗能之方案,例如能源之星(Energy Star )— 一個起源於美國且被許多其他國家所採用的國際標準,這些方案 實現了某種程度的運算節能。以x86架構為基礎的主流電腦工業 亦有標準的電源管理。舉例而言,進階組態及電源介面(Advanced
Configuration and Power Interface > ACPI)--個開放的工業標準 —便允許一作業系統對電腦硬體的節省功能作直接的控制。 然而’由於不便及内建的電源管理有限,對使用者而言,以χ86 架構為基礎的主流桌上型及筆記型電腦要達成真正的綠能運算有 其難度。對於多數電腦用戶來說,ACPI的睡眠/待機/休眠的電源 管理模式過於複雜,讓使用者難以輕易地找到能讓電腦既方便操 作又能節省耗能的最佳參數設定。另外,對於那些更複雜的運算, 例如涉及多重連線(multiple session)的虛擬運算,ACPI往往不 能提供平穩的電源管理,反而是容易造成電腦當機或是無法處理 虛擬機器連線(VM session ) 〇 因此’由於存在為數眾多的桌上型電腦,要達成顯著的節能仍 有相當大的空間。 為了使以x86架構為基礎的智慧型行動裝置更加實用,有需要 採行綠能運算。此外’由於在標準x86架構的領域裡可使用的能 源管理技術並不完善,以x86架構為基礎的智慧型個人裝置(例 如’ x86架構的手機)也因為電池的壽命過短而不實用。事實上, 目前並不存在採用x86架構的精密商業智慧型手機。在外出使用 電池的情況下’大部份採用x86架構的筆記型電腦無法一整天持 201250460 續辛勤地運作。這造成的結果便是’當離開辦公室或外出時,要 存取χ86應用程式就變得格外的不方便。 非χ86架構的裝置亦有存取χ86應用程式的需求。ARM處理器 已發展出行動裝置所需要之節能應用程式’特別是智慧型手機之 應用程式。然而,它們不是針對需要嚴峻運算之應用程式而設計 的,此外,在本質上,它們並無法實際地直接存取x86軟體的核 心。由於Windows軟體在曰常生活及商業界的許多方面仍佔有主 導地位,非x86架構在存取χ86應用程式的困難確實會造成不便。 無論外出或是在辦公室,使用者需要同時擁有二種電腦硬體才能 存取ARM所支配的行動裝置應用程式以及χ86所支配的Windows 應用程式。 為同步、整合及無縫(seamless)地存取混合的應用程式,需要 一種跨作業系統的電腦系統。當存取x86架構的Windows及ARM 智慧型手機的應用程式為許多人的日常生活需求時,對於一種能 同時存取二種架構的電腦的需求就變得非常實際 。目前以x86為 基礎的架構(和其他-些非χ86的架構)能透過虛擬運算技術, 在同電腦硬體上同步地執行wind⑽s及非驗d〇ws的電腦軟體 應用程式例h X86電腦能安裝Linux、Windows或其他能支 援多個客體電腦之主作蜚么w A , I糸統’各執行所支援的不同數量的支援 作業系統之一。然而,:t 4也上 王機處理器模擬其他非x86客體作業系統 的指令集會消耗處理電六 ^ ^ ^ ^ ± 。儘管這種情形對桌上型電腦是可被接 受的,但對智慧型行動奘¥ ^ ^ ^ 初展置而言,考慮到電池壽命的因素,便無 法被接受了。 201250460
Cupps等人試圖整合手機及個人電腦的功能於其他裝置中,他們 在一系列的美國專利案及專利申請案中揭露一種電子裝置,此種 電子裝置結合了 一個以x86為基礎的架構及一個ARM架構處理器 的嵌入式系統。例如,在美國專利公開案第US 2002/0173344號 所揭露的「新穎的個人電子裝置(Novel personal electronic device)」中,Cupps等人描述了一種裝置,此裝置使用一種低耗 能之系統處理器(例如:ARM)作為整個裝置的系統控制器,而 此裝置實質上是一個採用x86架構的電腦。
Cupps等人的作法實際上是將一種具有行動運算功能的嵌入式 ARM處理器插入一個具有PC處理器的χ86電腦。此ARM採用與 原PC處理器一樣的方式,連接至χ86架構的北橋及南橋。Cupps 等人指出低耗能的ARM系統處理器能因此作為電子裝置之主處 理器於x86架構的尚性能PC處理器之上運作。 然而’採用與x86架構的顯示控制器及記憶體子系統相同的配 置方式’亦即,將ARM處理器配置於北橋的高速匯流排 (high-speed buses ’ PCI-e)上,Cupps等人所提出之技術對於裝 置整體的「主要控制」會有所限制。事實上,由於arm處理器係 以匯流排的方式於裝置内連接,因此會被歸類為標準χ86架構下 的匯流排控制裝置(bus master device )’而非整個電子裝置的最高 主要處理器。在此系統架構下,因為在PC處理器控制下的主要 x86架構必須在控制之下(例如:在ACPI的控制下)維持一個完 整且健全的電源管理狀態,若有任何絲毫的干擾會破壞此完整健 全的狀態,將會造成資料的損失且電子裝置需要完整的重新啟 201250460 -動。更常見的情況是,Cupps等人所提供的裝置裡的ARM處理器 會重新啟動以PC處理器為基礎的x86系統,以便執行那些需要 PC處理器的處理能力的重度任務。 【發明内容】 有鑑於前述因素,確實需要一種用於一異質性電腦系統之橋接 邏輯裝置,使異質性電腦系統在不犧牲運算能力的情況下,將運 算耗能最小化,藉此成為一綠能x86電腦。 另外,也需要一種用於一異質性電腦系統之橋接邏輯裝置,使 異質性電腦系統之運算耗能最小化,以便讓一採用x86架構的智 慧型行動裝置之電池在每次充電後都能支援至少一整天的工作。 另需要一種用於一異質性電腦系統之橋接邏輯裝置,以使一非 x86架構的智慧型行動裝置能存取x86電腦軟體庫。 另需要一種用於一異質性電腦系統之橋接邏輯裝置,以便使跨 作業系統的異質性電腦系統能對不同作業系統的軟體應用程式進 行同步、整合及無縫整合的存取。 本發明藉由提供一異質性電腦系統以實現上述及其他目的。該 異質性電腦系統包含一 x86核心、一虛擬處理器(Hypervisor )及 一橋接邏輯單元,其中該x86核心具有一 x86處理器及一 x86運 算架構,該虛擬處理器之運算能力低於該x86處理器,該橋接邏 輯單元透過該x86處理器之該區域匯流排,將該虛擬處理器連接 至該x86核心。其中,該虛擬處理器執行那些它有足夠電力執行 的電腦軟體之任務,並使該x86處理器處於省電狀態(睡眠/休眠/ 201250460 關機),且該虛擬處理器使該x86處理器脫離省電狀態,以便執行 那些虛擬處理器未具足夠電力執行的電腦軟體的任務。 另外,本發明更藉由提供用於一異質性電腦系統之一橋接邏輯 裝置,來實現上述及其他目的。該異質性電腦系統包含至少一高 性能處理器、一處理器支援邏輯單元及一虛擬處理器,其中,該 處理器支援邏輯單元支援該至少一高性能處理器執行該電腦軟體 之任務,且該虛擬處理器較該至少一高性能處理器省電。該橋接 邏輯裝置包含一虛擬處理器操作邏輯單元、一處理器語言轉換邏 輯單元及一高速匯流排切換器,其中,該虛擬處理器操作邏輯單 元於該至少一高性能處理器之控制下維持該系統之狀態,該處理 器語言轉換邏輯單元於該至少一高性能處理器及該虛擬處理器所 使用之處理器語言之間進行轉換,該高速匯流排切換器具有一第 一、第二及第三埠,用以跨越該第一、第二及第三崞之任二埠進 行雙向的資料轉發(relay)。該高速匯流排交換器以該第一埠與該 至少一高性能處理連接、以該第二埠透過該處理器語言轉換邏輯 單元與該虛擬處理器連接,且以第三埠與該處理器支援邏輯單元 連接。 透過本發明之一橋接邏輯裝置裡,能實現上述及其他目的。虛 擬處理器於該處理器支援邏輯單元之支援且於該高速匯流排切換 器跨越地連接該第二埠及該第三埠之情形下,利用由該處理器語 言轉換邏輯單元轉換而來之本機語言(native language),執行那 些該虛擬處理器有足夠電力執行之該電腦軟體之任務,並使該至 少一高性能處理器處於一省電狀態。 201250460 本發明之一橋接邏輯裝置裡能實現上述及其他目的。虛擬處理 器使用該維持的系統狀態,且於該高速匯流排切換器跨越地連接 該第一埠及第三瑋之情形下,使該至少一高性能處理器脫離該省 電狀態以執行該虛擬處理器未具足夠電力執行之該電腦軟體之任 務。 本發明之另一橋接邏輯裝置裡亦能實現上述及其他目的。至少 一高性能處理器及該虛擬處理器於該高速匯流排切換器跨越地連 接對應之該第一埠、第二埠及第三埠之情形下,同步地執行那些 需要全部處理器之電力執行之該電腦軟體之任務。 【實施方式】 本發明的電腦系統是建構於一種能執行綠能運算(深度綠能運 算)之異質性處理器系統。低耗能的主「虛擬(hypervisor )」處 理器透過一橋接邏輯電路被增加至主流的標準x86架構,透過此 種方式,能使一異質性電腦系統在執行綠能運算上,不僅具有強 大的運算能力,且能達成節能的效果。 本發明之異質性電腦系統在進行x86運算時,儘可能地減少電 源的消耗,以便(1)使整個x86主導之主流運算能大量地減少二氧 化碳的釋放,以及(2)使大量的x86電腦軟體庫能被行動用戶依其 行動需求進行實際的存取。本發明之異質性電腦系統更執行跨作 業系統之運算,藉此能對來自不同作業系統的軟體應用程式進行 同步的、整合的及無縫的存取。 換句話說,本發明之異質性電腦系統旨在解決這些問題,並達 成至少二個主要目標。首先,本發明之電腦系'統為可攜式智慧型 201250460 裝置提供一種解決方案,具體來說,為一種新類型之智慧型手機, 其能存取現有大量的x86電腦軟體庫,同時也能充分地節省電力 以維持至少工作一整天所需要之電池電力。對眾多的商務旅客而 言,這整新類型的行動裝置將會取代累贅的智慧型手機及筆記型 電腦組合。 其次,且更重要的是’本發明電腦系統能夠在主流電腦(包含 桌上型'工作站及伺服器電腦)上實現深度的綠能運算。考慮到 所有的電腦所節約的電源之總和’整體的電腦運算耗能確實會被 大幅地降低。 在實現這些目標的同時’本發明之異質性電腦系統能在使用同 樣硬體的情形下,同步、整合及無縫地存取不同作業系統之電腦 軟體應用程式。 需注意的是,本案說明書之用語「x86應用程式」泛指所有能在 x86電腦硬體架構下以各種不同作業系統執行之χ86電腦軟體應 用程式。因此,此用語係指針對x86架構目前所支援之作業系統 (例如:Windows、Linux、Mac OS及Solaris等)而寫的所有的 軟體應用程式。 此外,用語「虛擬處理器」在運异領域裡通常是指虛擬機器監 控器(Virtual Machine Monitor ’ VMM )’與其將之視為電腦硬體, 更應將之視為電腦軟體技術。然而,此用語在此亦指主處理器、 低耗能ARM,在本發明的不對稱異質性處理器系統裡監控χ86處 理器’其中’ χ86處理器於本系統為有效率但耗能的元件,其在主 處理器ARM的控制干為從屬處理器。選擇此用語之原因在於,主 11 201250460 -處理器確實會監控及控制嵌入於本發明之電腦軟體系統所需之虛 擬機器。 會如此命名亦是因為ARM主處理器相較於監控x86硬體(一異 質性電腦系統中之主要硬體)的χ86處理器,在概念上高—階, 此意味著主要的ARM係「虛擬使用」其附屬的且用以監控主要 x86電腦硬體的χ86處理器。 此外’用語「高性能處理器」係指標準χ86架構中的主要χ86 處理器。此命名係用以反應χ86處理器在本發明之異質性電腦系 統中係用以負責大量危急的任務。 在不犠牲電腦的運算能力的前提下,為電腦耗能最小化尋求解 決之道,確實為一既有的議題。在行動運算裡(筆記型電腦、觸 控式電腦及智慧型手機等),必須聰明地處理電源管理,以儘可能 地延長能執行運算的時間—至少一工作天。在主流的桌上型電腦 運算中,由於全球大量地加以安裝,因此電源管理亦非常重要, 相較輪車上的MPG效能,亦為一個全球的環境議題。 仁疋對些外出使用的應用程式而言,傳統的電源管理方式 並無法使一 χ86架構有在省電的狀態下有效率地運作。這是現今 6架構的限制’因為它們並非在這樣的理念下被設計出來的。 解决之道落在異質性處理器這樣的概念上。若要使這樣的異質 性電腦系統在商場上成功’電腦系統必須儘可能的與現在的工業 標準㈣。以Wintel目前所達成之成就觀之,要對之進行改變乃 不刀實際的事。異質性電腦系統解決方法必須適用現有的系統/方 12 201250460 法。w味著對電腦硬鮮軟體所作的調整越輕微越好。 生電腦系統 從系統硬體架構的角度來看,本發明之一異質性 (Heterogeneous )電腦系統具有_「虚擬」處理器,其係配置於 心準x86架構之區域(前側)s流排。請參考帛μ目,本發明 的架構在基礎上便與Cupps等人所提出之電子裝置不同,他們的 電子裝置疋將系統處理H透過系統匯流排連接至湯架構之北橋。 第1圖係描繪本發明之異質性電腦系統之—實施方式之示意 圖’此異質性電腦系統透過橋接電路晶片將—虛擬處理器增加至 標準x86架構上。於本發明之較佳實施例中,異質性電腦系統1〇〇 具有一標準x86架構160 ’此標準χ86架構16〇包含χ86 cpu 120 及支援x86晶片組162,因此能作為一完整的χ86電腦。 虛擬處理器110係透過一橋接晶片HO被增加至標準x86架構 160。橋接晶片體140包含數位電子電路,以便使虛擬處理器11〇、 一 ARM或一低耗能x86處理器(例如386或甚至286)能透過χ86 CPU之前側匯流排(front-side bus ; FSB ) 134而被插至Χ86架構 160。 第7圖係描繪利用橋接邏輯單元以建構本發明之異質性電腦系 統之概念之示意圖。「橋接邏輯單元」係指一種能讓虛擬ARM處 理器110連接至一現有x86架構電腦系統160之橋接裝置(邏輯 單元),如第1圖所繪示。在本發明之脈絡裡’如第7圖所描繪, 13 201250460 橋接裝置407係作為一個三方資料切換器408。換句'話說,資料切 換器408於此為一多方切換器,一個三方T型或Y型切換裝置, 其能讓資料由任一埠傳遞至其餘二埠之一。以下將詳述橋接邏輯 單元係如何運作以使虛擬處理器被安插至一 x86架構。 第2圖係描繪本發明之異質性電腦系統之另一實施方式之示意 圖,此異質性電腦系統包含一虛擬處理器核心及其必要之橋接邏 輯單元。此橋接邏輯單元與虛擬處理器核心係配置於同一半導體 晶片上,且發揮將虛擬處理器核心增加至標準x86架構之功能。 在本發明之此實施例裡,異質性電腦系統200包含一標準x86架 構260,此標準x86架構260包含一 x86 CPU 220及支援x86晶片 組262,因此能作為一完整的x86電腦。 虛擬處理器210可為一 ARM或一 x86核心,並會透過橋接邏輯 單元240被加至標準x86架構。橋接邏輯單元240包含數位電子 電路,其功能在於透過x86 CPU之前側匯流排234,將虛擬處理 器210插至x86架構260。在一具體範例中,虛擬處理器210及必 要的橋接邏輯單元240被配置在同一整合晶片上,例如:虛擬處 理器晶片242。 第3圖係描繪本發明之異質性電腦系統之另一實施方式之示意 圖。此異質性電腦系統包含一虛擬處理器核心及其必要之橋接邏 輯單元,二者與一多核心x86處理器被配置於同一半導體上,以 方便將之直接地插入一標準x86電腦主機板之CPU插槽。 於本實施例中,異質性電腦系統300本身為一標準x86架構, 其係包含x86 CPU 344及支援x86晶片組362,因此能作為一完整 14 201250460 的 x86 電腦。x86 CPU 344 為傳統 x86 CPU 的變形。x86 CPU 344 包含一 xg6高性能處理器(例如:最新的多核心x86 320)、一虛 擬ARM或〆低階x86核心310及橋接邏輯單元340於同一半導體 晶片上,其中橋接邏輯單元340透過前側匯流排334橋接虛擬處 理器至高性能核心。 第4圖係描繪本發明之異質性電腦系統之另一種實施態樣之示 意圖。此異質性電腦系統包含一作為虛擬處理器之省電x86核心, 其與一多核心χ86處理器被配置於同一半導體上,以方便將之直 接地插入〆標準χ86電腦主機板之CPU插槽。 於本實施例中’異質性電腦系統400符合一標準χ86架構,其 係包含x86 CPU 446及支援χ86晶片組462,因此能做為一完整的 x86電腦。X86CPU446為傳統CPU的變形,其係包含χ86高性能 處理器核心421、422及一虛擬省電χ86核心410於同一半導體晶 片上。由於虛擬核心410採用高性能核心421及422之簡化的指 令集,且共享相同的内部匯流排,因此無配置橋接邏輯單元之必 要。配有虛擬處理器之高性能處理器446,以與標準χ86架構電腦 主機板相同之方式,透過一正規的前側匯流排434連接至χ86晶 片組462。 就字面意義而言,如第1-4圖所示,本發明建構一異質性電腦 系統之概念為,增加一低耗能(power-sipping)之主處理器(目 前最可能者為ARM )至一 x86電腦。此概念係使低耗能之虛擬處 理器總是處於清醒模式(awake mode ),以便將過度耗電之χ86高 性能核心虛擬化。在此概念下,χ86處理器純粹是ARM虛擬處理 15 201250460 器之附屬處理器,x86會處於深層休眠的狀態以便節省電源,直到 遇到低效能處理器無法或未具足夠能力去處理的系統任務,x86 才被唤醒。 視本發明之異質性電腦系統之使用目的而定,若使用目的為例 妒CAD/CAM等工作站,則其X86系統可為以最新的Intel第二代 核心(Intel 2nd Generation Core1 M )技術處理器為基礎的高性能系 麻。又,假設使用目的為行動裝置,用以取代使用者出差需同時 搞帶智慧型手機及筆記型電腦的情形,則χ86可為一以AtomTM為 基礎之低耗能系統。 使用現有的x86架構’可簡單地建造這樣的異質性電腦系統的 硪體。對商業上的應用程式,第卜4圖所繪示之解決方法適用於 不同電腦工業供應鏈上的不同電腦硬體製造商。 第1-2圖所繪示之電腦系統架構適用於目前的商業電腦主機板 及系統製造商。他們能將ARM處理器及橋接晶片引入他們製造的 農品。至於第3圖所繪示之架構,則需視現今χ86及相容處理器 厶製造商是否願意採用,並調整他們的處理器半導體,以便製造 出他們自己具有異質性電腦系統概念的處理器。 從商業的觀點來看,確實有可能成真。對於現今任何的^^口製 造商而言,若要採用這樣的概念,僅需對他們的多核心產品做極 小的半導體改變,且具有此新概念(亦即,綠能運算)的高性能 cpU卻能帶來極大又極深遠的影響。第4圖所描繪之架構則最適 舍當今主流的桌上型電腦/工作站的運算。 201250460 第5及6圖係描繪本發明之電腦系統作為一 χ86架構智慧型行 動裝置之一實施例之示意圖。此χ86智慧型裝置同時具有手機及 x86架構電腦的功能,且能被用以取代使用者出差時需同時攜帶的 智慧型手機及筆記型電腦。 與第1圖所示之範例相似,在此具體範例中,智慧型手機聯合 筆記型電腦這種型態的異質性電腦系統5〇〇包含—χ86架構%〇, 此x86架構560包含x86 CPU 520及支援χ86晶片組562,因此能 作為一完整的Χ86電腦。為提供行動通訊的功能,能於χ86架構 内設置一蜂巢式通訊單元570。 虛擬處理器510透過橋接晶片540連接至χ86架構56〇,此橋接 晶片540包含數位電子電路,以便讓虛擬處理器51〇(亦即, 透過x86 CPU的前側匯流排534被插至χ86架構560上。 由第5圖所示之虛線可知,當x86智慧型行動裝置5〇〇執行其 手機功能時,包含X86CPU 520及主要x86晶片組562之整體χ86 核心560會進入省電狀態,例外的部份則是蜂巢式通訊單位57〇, 其仍在虛擬ARM處理器510的控制下運作。 另一方面,當裝置500使其可攜式電腦的那部份運作,例如執 行Windows應用程式’如第6圖所示,則裝置500中除了蜂巢式 通訊單位570之外的所有元件皆會被喚醒。舉例而言,若有—網 路銀行應用程式,其便是由x86系統在ARM的監控下執行。低耗 能的ARM會持續地監控,以判斷是否讓設備裡的χ86部份進入休 眠的狀態,藉此節省電池的電力。 17 201250460 為了實現綠能運算,以使如第1-4圖所示之桌上型電腦型態的 異質性電腦系統節省能源,也使如第5-6圖所示之x86智慧型行 動裝置僅消耗一點點的電源以維持一整天工作的電力,並使二者 能以同步、整合及無縫的方式執行混合作業系統的電腦軟體應用 程式,前述的電腦硬體必須搭配一個相應的系統軟體。以下將詳 述符合這些需求的系統軟體。 B:用於異質電腦系統之橋接邏輯單元 第8圖係描繪本發明之異質性電腦系統之連接方式一透過橋接 邏輯單元6400,將虛擬處理器610與主要的x86處理器620連接 於x86晶片組662之前側匯流排。本發明之異質性電腦系統之概 念是將一監控微處理器(虛擬處理器)引至一高性能的電腦,此 高性能的電腦本身已具有具運算能力的微處理器(x86處理器)。 本發明的概念是,當異質性電腦系統啟動時,虛擬處理器儘可能 地以消耗極微電力之方式,維持在總是可運作(active )的狀態, 並管理本發明之裝置中的高性能x86子系統的運算工作。在這樣 的異質性電腦系統裡,只有在虛擬處理器判斷所分配到運算任務 已超出低耗能虛擬處理器之能力時,高性能x86子系統才會脫離 省電狀態來工作。 為實現這部份,如先前針對第1-4圖之實施例之描述内容及針 對第8圖之更詳細說明,橋接邏輯電路6400配置於前側匯流排上 且介於x86高性能處理器620及標準x86電腦之x86晶片組662 之間。如字面上所言,x86處理器透過標準-x86電腦裡之前側匯流 18 201250460 排而與x86晶片組之北橋間的直接連結方式,被橋接邏輯單元 6400所中斷。原先被配置於x86處理器62〇及北橋6624之間的前 側匯流排仍在,但卻被分成二個部分,亦即,在χ86處理器端的 前側匯流排6452及在晶片組端的前側匯流排634,它們皆被橋接 邏輯電路6400控制《另一方面’橋接邏輯電路6400亦界於新增 的虛擬處理器610及連接至Χ86晶片組662的北橋6624的前侧匯 流排634之間。 橋接邏輯單元6400 .包含一虛擬處理器運算邏輯單元6410, 一處 理器指令集/電腦命令轉換邏輯單元(或概要地稱之為處理器語言 轉換邏輯單元6430),以及一高速匯流排切換器6407。匯流排切 換器6407之切換率與χ86處理器之前側匯流排相容。如第7圖所 示,匯流排切換器6407之較佳實施態樣為一個三方切換器,其中 一埠(如第7圖之元件符號a)直接地連接至χ86處理器620之 前側匯流排6452。匯流排切換器6407之一第二埠(如第7圖之元 件符號Β)透過處理器語言轉換邏輯單元6430,連接至虛擬處理 器610之處理器匯流排6454。匯流排切換器6407之第三埠(如第 7圖之元件符號C)則直接地連接至晶片組662之北橋之前側匯流 排 634。 高速匯流排切換器6407所提供之連接方式,讓χ86高性能處理 器620及低耗能虛擬處理器610接能透過前側匯流排634存取Χ86 架構的北橋6624。每當切換器6407被設定為連接其埠Α及崞C, 高性能x86處理器620便能直接地連接至北橋,就如同一標準χ86 電腦一樣。 19 201250460 -另一方面’當切換器6407被設定為連接其埠B及埠C,低耗能 虛擬處理器610能存取x86晶片組662。在此情形中’虛擬處理器 610為另一低耗能χ86處理器,其使用與高性能χ86處理器相同之 χ86處理器指令集或使用該χ86處理器指令集之一子集,因此,處 理器語言轉換邏輯單元6430只需在不同位階的χ86指令集之間進 行轉換。 然而’如果低耗能虛擬處理器610為一個使用完全不同指令集 的處理器(例如:ARM或MIPS) ’虛擬處理器610需要利用處理 器語言轉換邏輯單元6430來摸擬或模仿高性能χ86處理器。於此 情形下’處理器語言轉換邏輯單元6430會對虛擬處理器610的本 機命令進行翻譯或轉換,使之變為高性能χ86處理器620所使用 之本機指令中的相對應的部份。 本質上’語言轉換邏輯單元6430在χ86及虛擬處理器(例如 ARM)所使用的語言(指令)間進行轉換,使虛擬處理器61〇能 了解並徹底地監控電腦系統裡的χ86的活動狀態,且x86處理器 620能自虛擬處理器610接收命令。語言轉換邏輯單元6430亦會 對在高速χ86前側匯流排634及低耗能虛擬處理器610所使用之 典型低速匯流排(例如,ΑΜΒA ; Advanced Microcontroller Bus
Architecture,通常被ARM裝置採用)間交換的資料進行同步。 換言之,為使低耗能虛擬處理器能正常地存取高性能x86架構, 橋接邏輯電路6400必須具有如下的轉換功能:(丨)處理器「語言」 間的轉換,以及(2)匯流排通訊電子訊號間的轉換。舉例而言,第 9及10圖所繪示之匯流排封裝器6414係負責匯流排協定轉換及與 20 201250460 資料匯流排寬度、位址匯流排長度、匯流排訊號電子位準及時序 相關的轉換。 如第8圖所描繪之較佳實施例,所有的轉換能在虛擬處理器操 作邏輯單元6410内完成,其係監控在x86處理器下的所有χ86活 動,維持一份x86休眠時的系統狀態,如此一來,χ86處理器被喚 醒後便能無縫地接著運作。當x86處理器620處於省電狀態且ARm 透過類似虛擬機器及即時命令/指令轉換之技術來執行χ86核心 時,虛擬處理器操作邏輯單元6410也可以將ARM命令轉換為χ86 命令。 須說明者’橋接邏輯電路64〇〇可為由低耗能虛擬處理器(arm) 所设置之被動式數位邏輯單元,或者,其本身可為一以微處理器 為基礎的主動邏輯單元。此外,高性能x86處理器可以是一 lntel、 AMD或一cyrix處理器,且低耗能虛擬處理器可以是一 arm、 - MIPS或-簡化的χ86核心。 〜而。之,橋接邏輯元件切換器6407、邏輯單元6410及邏輯單 元 起運作以提供一橋接功能,使χ86處理器620能在虛擬 處理器61〇的松生丨卞一 制下存取χ86架構662,以便執行分配給異質性電 腦系統之住務。2 + 丄 另一方面’當χ86處理器620不需存取χ86架構 662時虛擬處理器610能間接地存取Χ86架構662。 另須說明者,& r f 用。〇丨指令集」(Instruction Set)及用語「微處理 写指令华位 ° 7 /、」糸用於本發明異質性電腦系統之虛擬處理器或高性能 處理器,其·你扭& ^ 、電腦架構中與編程有關的部份,包含本機資料型 態、指令、暫在gg W仔器 '疋址模式、記憶體架構、中斷與例外處理及· 21 201250460 外部輸入/輸出。此外,用語「命令」(Commands )及用語「電腦 命令」係用於本發明異質性電腦系統之虛擬處理器或高性能處理 器,其係指那些用來表示可被電腦系統執行的運算的語言。 第9圖係描繪本發明之較佳實施例中的橋接邏輯單元的基本功 能元件。橋接邏輯單元6400中之處理器指令集轉換邏輯單元6430 之功能係由週邊狀態維持器6436、週邊狀態表6432及週邊IRQ 控制器6434所提供。這樣便能持續地記錄連接於異質性電腦系統 之週邊裝置之狀態。 同時,橋接邏輯單元6400之虛擬處理器操作邏輯單元6410之 功能是由被前側匯流排命令處理器6412及匯流排封裝器6414所 提供。實質上,前側匯流排命令處理器6412監控著由高性能處理 器620所執行之電腦命令,以便如前所述地維持週邊的狀態,以 追蹤異質性電腦系統的週邊裝置(通常被連接至x86晶片組662 之南橋),如此一來,當高性能x86由省電狀態被唤醒時,便能回 覆最適當的狀態。 另一方面,當高性能x86處理器620處於省電狀態時,虛擬處 理器610藉由前側匯流排命令處理器6412及匯流排封裝器6414 將其本身的命令轉換為x86命令,以便存取x86晶片組。本質上, 匯流排封裝器6414係扮演非x86虛擬處理器610之翻譯員的角 色,它使非x86虛擬處理器610能使用x86的本機命令語言。透 過這樣的設計,不論高效能處理器620是否處於省電的狀態,虛 擬處理器610都能直接存取x86架構的資源。 第11圖係描繪本發明之較佳實施例之-異質性電腦系統之電路示 22 201250460 意圖。於本實施例中,橋接邏輯單元7400之邏輯電路配置稍有不 同。匯流排切換器7407是一個四方切換器,但其仍能虛擬處理器 710及高性能χ86處理器皆直接地存取χ86架構。然而,作為指令 轉換邏輯單元的命令處理器7412及作為虛擬操作邏輯單元的週邊 狀態對映器(Peripheral Status Mapper ) 7438係位於匯流排切換器 7407之第四埠上。於本實施例中,命令處理器74丨2負責以下任務: 1 ·命令仔例及命令解析。 2·將X 86命令轉換為相對應的ARM命令。 3·將ARM命令轉換為相對應的x86命令。 4·維持χ86的狀態。 5’直接或間接地存取週邊裝置。 週邊狀態對映器7438負責以下任務: I為ARM處理器進行週邊裝置之對映。 2·維持週邊裝置之狀態。 匯流排切換器7407具有以下任務: L橋接高速的前侧匯流排(其係屬於Intd、AMD及Via-Cyrix 而性能處理器)及低速AMBA匯流排(其係屬於ARM)。 2·為x86提供橋接的功能,使χ86能直接或間接地存取x86架 構。 此外,高性能x86處理器可具有自己的工作用隨機存取記憶體 23 201250460 (麵)724’虛擬處理器71〇為_嵌入式處理器7i2,且叙入式 處理器712也具有自己的工作用隨機存取記憶體714及一内建啟 動載入器716。 第12圖U田、”曰本發明之較佳實施例之橋接邏輯單元之邏輯電路 元件。橋接邏輯單元屬係用以與系統中的撕晶片組及二個處 起運Φ橋接邏輯單元74〇〇包含如第11圖所繪示之命令 處理器74】2纟係將X86程式碼轉換為低耗能ARM之程式碼, 反之亦然。命令處理 2可為在ARM控制下的基本型邏輯單 το (dumb logic)或—以處理器為基礎的命令處理器。 第12圖所tf之週邊狀4維持n 7436之實作方式與第u圖所示 之週邊狀態對映器7438摘有不同。由於具有自己的記憶體及/或暫 存器,PSM 7436為-同步裝置,其能讓ARM虛擬處理器完全地 掌握主要系統之實際的狀態。狀態維持使(l)ARM㊣根據正確 的系統狀態,於任何時間點繼續χ86的任務(例如,透過虛擬運 算技術),以及(2)當χ86處理器在脫離省電狀態(待機/睡眠/休眠) 時,能根據正確的狀態,繼續ARM的任務(例如,在某些情況下, ARM處於供電不足的狀態)。同樣的’週邊狀態維持器觸可為 在ARM控制下的基本型邏輯單元或一以處理器為基礎的維持器。 第10圖係描繪第9圖之橋接邏輯單元之邏輯電路元件之詳細_ 意圖。 、、’不 第8-12圖所繪示之本發明之異質性電腦系統皆能以第α 所繪示之3種模式其中之—進行運作。第13圖所繪示之第i種模 式與傳統桌上型電腦之運作方式極為相像。高性能伽處理器^ 24 201250460 可能會被分配到-個複雜且極為耗電之cad任務,或高畫質之遊 戲操作’在這些情況下’ X86處理器620會處於工作滿載的狀態。 同時,虛擬處理器_也處於可運作的狀態(Wive),監控及維 持電腦系統狀態,使得高性能χ86隨時都能進人省㈣狀態時。 在圖中’以實線呈現的雙箭頭沿著前側匯流排指向處理器_ 及Χ86晶片、组662,此意味著處理器62〇能對χ86系統進行一般的 存取。同時’以虛線呈現的雙箭頭沿著前舰流排指向虛擬處理 器6Η)及Χ86晶片、组662,此意味著虛擬處理器61〇能維持在監控 整個系統的狀態。 異質性電腦系統之第二種操作模式如第14圖繪示,其係描繪_ 種情境,舉例而言,-個具有行動通訊功能之_智慧型行喊 置,其能以内建虛擬ARM處理器之方式來實5見。當這種智慧型裝 置使用其ARM來進行行動通訊時,高性能χ86處理器則能進入^ 電狀態。 異質性電腦系統之第三種操作模式如第15圖所繪示,其係描繪 -種情境’同樣的舉例而言,- χ86架構智慧型行動裝置同時使 用其ARM來進行行動通訊,且執行—需要Α_·χ之遠端銀行 視窗應用程式。在此範射,虛擬處理器⑽處在能運作的狀態 且執行請較輕的行動通絲務,且_監控及維㈣統狀態: 另-方面,高性能x86處理器620也處在能運作的狀態,並執行 分派給它的遠端銀行交易任務。位於Andn)id作業系統(舉例說 明而已)之ARM及位於Windows作業系統下的_應用程式被 同時地執行,異質性電腦系統之同一顯示螢幕上,而且甚至能彼 25 201250460 此交換資料。以下將描述一種能於同一硬體上無縫地且同步地執 行之混合式作業系統之軟體應用程式。 c:啟動異質性系統之演 第16-19圖分別地描述啟動異質性系統之控制演算法。四種將 本發明之電腦系統從關機中啟動之方法如下: 模式A :只有低耗能之虛擬處理器系統被啟動。 模式B :於虛擬處理器系統被啟動後,啟動高性能χ86處理器。 模式C :只有高性能χ86處理器系統被啟動。 模式D :於高性能χ86系統被啟動後,啟動虛擬處理器系統。 模式A : 第16圖係描繪僅啟動虛擬處理器之運行順序。 步驟1 : 1 a :首先’週邊狀態維持器(Peripheral Status Maintainer,PSM ) 存取BIOS。 1 b ·接者’根據糸統BIOS貢訊’更新週邊裝置清單(peripheral list)及對映表(Mapping table)。 lc :之後,啟動低耗能虛擬處理器,於内部匯流排將週邊裝置 初始化,並開始提供週邊裝置之中斷艰務。 26 201250460 步驟2 : 2a.首先,週邊狀態維—發送irq至低耗能虛擬處理器。 2b之後低耗月匕虛擬處理器開始提供維持週邊裝置狀態之服 務。 步驟3 : 3a :低耗能虛擬處理器對連接至系統之週邊骏置進行初始化。 模式B : 第17圖係描繪於虛擬處理器系統被啟動後,啟動高性能χ86處 理器之運行順序。 步驟1 : la .低耗能虛擬處理器發送啟動訊號至前側匯流排命令處理器 (FSB Command Handler)。 1 b :前側匯流排發送重置(restset)指令至高性能。 步驟2 : 2 a .前側匯流排命令處理β向週邊狀態維持器(ρ § μ本身可作 為χ86處理器之BIOS )請求必要系統資訊。 2b :在啟動高性能x86時,前側匯流排命令處理器提供必要資 訊給高性能x86處理器。 步驟3-1 :間接存取 3-la :高隹能x86傳送前側匯流排命令以進行間接存取。 27 201250460 3 ib低U擬處理器扮演—代理伺服器的角色, 且執行高速χ86間接存取命令。 步驟3-2 :直接存取 3-2a :咼性能χ86傳送前側匯流排命令以進行直接存取。 3-2b :週邊狀態維持器監控直接存取。 模式C : 第18圖係描繪僅啟動高性能χ86處理器之運行順序。若異質電 腦系統只啟動高性能χ86,則此模式可作為預設的模式,且可藉由 純硬體來加以實現’不需要韌體的控制。 步驟1 : la:高速資料交換器(High-speed Data Switch)將模式重設, 以作為一分流混合橋接子系統(Bypass hybrid bridge sub system)。(如果異質性電腦系統先/僅啟動高性能x86,這可作為 預設模式’且能以純硬體來實現,不需要韌體的控制。) 步驟2 : 2a :正常地啟動高性能χ86。 模式D : 第19圖係描繪於高性能χ86系統被啟動後,啟動虛擬處理器系 統之運行順序。 步驟1 : 28 201250460 la :週邊狀態維持器將其賢訊與BIOS同步。 lb :週邊狀態維持器更新週邊裝置清單及對應表。 步驟2 : 2a :啟動低耗能虛擬處理器,對連接至内部匯流排之週邊裝置 進行初始化,並對中斷服務進行初始化。 步驟3 : 3a :週邊狀態維持器發送IRQ至低耗能虛擬處理器。 3b :低耗能虛擬處理器開始提供週邊裝置之維持服務。 步驟4 : 4a:低耗能虛擬處理器通知並請求橋接邏輯單元接管系統服務。 D:用於異質性電腦系統之超級作業系統 由電腦軟體的角度觀之,本發明之異質性電腦系統之一種實現 方式係於軟體系統的異質性虛擬層執行x86 (例如:Windows或 Linux)及ARM (例如:Android)作業系統之原始版本。此異質 性虛擬層的功能便是使在本發明之電腦系統上執行的二個運行中 的作業系統能夠共存,並使二個系統所對應之環境中所運行的應 用程式能進行無縫地聯繫。 為達此目的,針對各種能執行於X86-ARM異質性電腦系統之常 用的作業系統,數種異質虛擬層(Layer)電腦軟體之實驗版本已 29 201250460 被發展出來且已測試成功。目前異質虛擬層的版本涵蓋χ86架構 的Windows及ARM的Android,且已經通過測試。這些經測試過 的異質性虛擬層電腦軟體之修正版本,從字面上來說,可稱之為 一超級作業系統,可讓ARM及x86處理器能平行地於整個異質性 電腦系統之電腦硬體運作’且在二個不同作業系統上執行的應用 程式能彼此支援。 因此,二個不同的作業系統能在本發明之異質性電腦系統上被 同時地啟動及執行,各自支援其本身應用程式。一個作業系統的 應用程式甚至能在其他的作業系統裡執行,且二個不同作業系統 中的應用程式能夠彼此直接地及無縫地互相溝通。 第20圖係描繪用於本發明異質性電腦系統之超級作業系統之示 意圖。本發明之超級作業系統可以取代傳統的作業系統,例如 Windows、Linux、Solaris及用於智慧型行動裝置之Android,這 些習知的作業系統能作為超級作業系統的「子作業系統」。運作於 超級作業系統下時,這些傳統的作業系統不需要被改變。對這些 作業系統而言,他們所賴以執行的異質性電腦系統硬體與傳統x86 體並無不同。一旦超級作業系統啟動於異質性電腦系統上,二種 不同的作業系統能夠同步地存在於相同的電腦硬體上,並同時無 縫地支援二個作業系統上的多個電腦軟體應用程式,並允許交換 彼此之間的資料。 為建構超級作業系統,必須在作業系統層及硬體層之間開發一 異質性虛擬層,且此異質性虚擬層需橫跨二種作業系統。藉由本 發明之異質性電腦系統之軟體架構:無縫且跨作業系統的電腦軟 30 201250460 體應用程式確實可行。舉例而言,Windows Word可以直接在χ86 硬體中的Windows作業系統來執行,或是透過異質性虛擬層内的 虛擬運算來使ARM執行。達成此目的後,現有的電腦軟體技術, 例如開放原始碼的虛擬運算技術便能被加以使用。 第21-24圖係分別描繪第8_12圖之本發明異質性電腦系統之操 作模式之示意圖’其能支援無縫的跨作業系統電腦軟體應用程 式。第20圖所繪示之超級作業系統能以4種模式加以啟動並部署 自己,這4種模式包含: 模式A :只有低耗能虛擬處理器系統被啟動。 模式B :於虛擬處理器系統被啟動後,啟動高性能χ86處理器。 模式C :只有高性能χ86處理器系統被啟動。 模式D :於高性能χ86系統被啟動後,啟動虛擬處理器系統。 第21圖係描繪僅啟動虛擬處理器作業系統之運行程序。此模式 僅會操作適用於虛擬處理器之軟體應用程式。啟動程序使本發明 之異質性電腦系統處於準備好的狀態,使軟體應用程式,例如 Android或Linux ’能被執行。啟動程序包含: 1.打開虛擬處理器(ARM)的電源。 2·橋接單元對所有直接連接至其本身之週邊裝置(例如:工作 用的RAM)進行初始化,此用來與其他連接至χ86晶片組之 南橋之電腦週邊裝置進行區別。 3.虛擬處理器(ARM)載入啟動載入器。 31 201250460 4. 啟動載入器載入異質性虛擬層part_A。 5. 異質性虛擬層part_A載入作業系統i。 第22圖係描繪於虛擬處理器作業系統被啟動後,啟動高性能 x86處理器作業系統之運行程序。此模式會操作適用於虛擬處理器 及高性能x86處理器作業系統的電腦軟體應用程式。啟動程序使 本發明之異質性電腦系統處於準備好的狀態,因此,同步及無縫 的跨作業系統之應用程式能被實現。啟動程序包含: 1. 打開虛擬處理器的電源。 2. 橋接單元對所有直接連接至其本身之週邊裝置進行初始化。 3. 虛擬處理器(ARM)載入啟動載入器。 4. 啟動載入器載入異質性虛擬層part-A。 5. 異質性虛擬層part_A載入作業系統 6. 異質性虛擬層part-A打開高速x86的電源。 7. 高速χ86載入異質性虛擬層Part-B。 8·異質性虛擬層part_B載入作業系統2。 第23圖係描繪僅啟動高性能x86處理器作業系統之運行程序。 啟動程序包含: 1 ·打開南性能x86的電源。 2.橋接單元作為一分流混合橋接子系統。 3·高性能x86載入BIOS、EFI或UEFI。 32 201250460 4. 高性能x86載入異質性虛擬層Part_B。 5·異質性虛擬層Part-B載入作業系統2。 第24圖係描繪於高性能χ86處理器作業系統被啟動後,啟動虛 擬處理器作業系統之運行程序。此模式操作適用於虛擬處理器及 鬲性能χ86處理器作業系統的電腦軟體應用程式。啟動程序始本 發明之異質性電腦系統處於準備好的狀態,因此’同步及無縫跨 作業系統之軟體應用程式確實能被實現。啟動程序包含: 1. 打開高性能χ86的電源。 2. 橋接單元作為一分流混合橋接子系統。 3. 高性能χ86載入BIOS、EFI或UEFI。 4·高性能x86載入異質性虛擬層Part_B。 5. 異質性虛擬層Part-B载入作業系統2。 6. 橋接單元(週邊狀態維持器)肖BI〇s 0步且對所有連接 至其本身之週邊裝置,除x86晶片組外,進行初始化。 7·異質性虛擬層Part-B打開虛擬處理器的電源。 8.虛擬處理器載入啟動栽入器。 9·啟動載入器載入異質性虛擬層以…八。 10.異質性虛擬層Part-A通知簋哲,卜士旁撼麻Λ 逋知異質性虛擬層Part_B接管虛擬服 務。 n.異質性虛擬層Part-Α載入作業系統丨。 33 201250460 12.作業系統,接管系統所提供的服務。 ~ 上述内容僅為多個具體實施例的完整描述,本發明亦涵蓋其他 各種修改、替代架構及具有相對應功能之系統。因此,上述内容 及圖式不應用來限制本發明之範圍。 【圖式簡單說明】 第1圖係描繪本發明之異質性電腦系統之一種實現方式之方塊 示意圖,其中一虛擬處理器係透過橋接電路晶片被增加至標準x86 架構; 第2圖係描繪本發明之異質性電腦系統之另一種實現方式之方 塊示意圖,其中一虛擬處理器核心及其必要之橋接邏輯單元被配 置在同一半導體晶片上,以便被增加至標準x86架構; 第3圖係描繪本發明之異質性電腦系統之又一種實現方式之方 塊示意圖,其中一虛擬處理器核心及其必要之橋接邏輯單元配置 與一多核心x86處理器被配置在同一半導體上,以便被直接地插 入一標準x86電腦主機板之CPU插槽; 第4圖係描繪本發明之異質性電腦系統之另一種實現方式之方 塊示意圖,一省電x86核心作為虛擬處理器,且與一多核心x86 處理器被配置於同一半導體上,以便被直接地插入一標準x86電 腦主機板之CPU插槽; 第5及6圖係描繪本發明之電腦系統之另一實施例之示意圖, 其中電腦系統為一 x86架構智慧型行動裝置; 第7圖係描繪用以建構本發明之異質性電腦系統之橋接邏輯單 34 201250460 兀之概念不意圖; 第8圖係描繪橋接邏輯單元所提供之連接方式之示意圖,其係 將虛擬處理器及X86架構之主要處理器連接於χ86晶片組之前側 匯流排; 第9圖係描繪本發明之較佳實施例之橋接邏輯單元之基本功能 元件; 第10圖係描繪第9圖之橋接邏輯單元之邏輯電路元件之詳細示 意圖; 第11圖係描繪本發明之較佳實施例之異質性電腦系統之電路方 塊示意圖; 第12圖係描繒·本發明之較佳實施例之橋接邏輯單元之邏輯電路 元件之示意圖; 第13 -15圖係分別描繪第8 ·丨2圖之異質性電腦系統之操作模式; 第16-19圖係分別描繪使異質性電腦系統啟動之不同的控制演 算法之示意圖; 第20圖係描繪操作異質性電腦系統之超級作業系統之示意圖, 其能實現無縫的跨作業系統電腦軟體應用程式:以及 第21-24圖係分別描繪第8_12圖之異質性電腦系統之操作模 式’用以支援無縫的跨作業系統電腦軟體應用程式。 【主要元件符號說明】 100、異質性電腦系統 35 201250460 110 ' 虛擬處理器 120 x86 CPU 134 前側匯流排 140 橋接晶片 160 標準x86架構 162 x86晶片組 200 異質性電腦系統 210 虛擬處理器 220 x86 CPU 234 前側匯流排 240 橋接邏輯單元 242 虛擬處理裔晶片 260 標準x86架構 262 x86晶片組 300 異質性電腦系統 310 低階x86核心 320 最新的多核心x86 334 前側匯流排 340 橋接邏輯單元 344 x86 CPU 362 x86晶片組 400 異質性電腦系統 407 橋接裝置 408 三方資料切換器 36 201250460 410 虛擬省電x86核心 、 421 x86高性能處理器核心 422 x86高性能處理器核心 434 前側匯流排
446 x86 CPU 462 x86晶片組 500 異質性電腦系統 510 虛擬處理器
520 x86 CPU 534 前側匯流排 540 橋接晶片 560 x86架構 562 x86晶片組 570 蜂巢式通訊單元 610 虛擬處理器 620 x86處理器 634 前側匯流排 662 x86晶片組 6400 橋接邏輯電路 6407 高速匯流排切換器 6410 虛擬處理器操作邏輯單元 6412 前側匯流排命令處理器 6414 匯流排封裝器 6430 處理器語言轉換邏輯單元 37 週邊狀態表 週邊IRQ控制器 週邊狀態維持器 前側匯流排 處理器匯流排 北橋 虛擬處理器 嵌入式處理器 隨機存取記憶體 内建啟動載入器 隨機存取記憶體 橋接邏輯單元 匯流排切換器 命令處理器 週邊狀態維持器 週邊狀態對映器 38

Claims (1)

  1. 201250460 七、申請專利範圍: 1. 用於一異質性電腦系統(heterogeneous computer system )執 行一電腦軟體,該異質性電腦系統包含至少一高性能處理 器、一處理器支援邏輯單元及一虛擬處理器(hypervisor processor),該處理器支援邏輯單元支援該至少一高性能處理 器執行該電腦軟體之任務,該虛擬處理器較該至少一高性能 處理器省電,一種橋接邏輯裝置包含: 一虛擬處理器操作邏輯單元,於該至少一高性能處理器 之控制下,維持該系統之狀態; —處理器語言轉換邏輯單元,於該至少一高性能處理器 及該虛擬處理器所使用之處理器語言之間進行轉換; —高速匯流排切換器,具有一第一、第二及第三埠,用 以跨越該第一、第二及第三埠之任二埠進行雙向的資料轉發 (relay),該高速匯流排切換器以該第一埠與該至少一高性 能處理連接、以該第二埠透過該處理器語言轉換邏輯單元與 該虛擬處理器連接,且以第三埠與該處理器支援邏輯單元連 接。 2. 如請求項1所述之橋接邏輯裝置,其中該虛擬處理器於該處 理器支援邏輯單元之支援且於該高速匯流排切換器跨越地連 接該第二埠及該第三埠之情形下,利用由該處理器語言轉換 邏輯單元轉換而來之本機語言(native language),執行該虛 擬處理器有足夠電力執行之該電腦軟體之任務,並使該至少 一南性能處理器處於一省電狀態。 3. __如請求項1所述之橋接邏輯裝置,其中該虛擬處理器使用該 39 201250460 維持'的系統狀態,且於該高速匯流排切換器跨越地連接該第 一埠及第三埠之情形下,使該至少一高性能處理器脫離該省 電狀態以執行該虛擬處理器未具足夠電力執行之該電腦軟體 之任務。 4. 如請求項1所述之橋接邏輯裝置,其中該至少一高性能處理 器及該虛擬處理器於該高速匯流排切換器跨越地連接對應之 該第一埠、第二埠及第三埠之情形下,同步地執行需要全部 處理器之電力執行之該電腦軟體之任務。 5. 如請求項1所述之橋接邏輯裝置,其中該處理器語言轉換邏 輯單元更包含: 一週邊中斷請求控制器,用以控制附屬於該異質性電腦 系統之週邊裝置之中斷請求; 一週邊狀態表,用以保留該等週邊裝置之狀態;以及 一週邊狀態維持器,用以基於該週邊中斷請求控制器之 控制,更新保留於該週邊狀態表之狀態。 6. 如請求項1所述之橋接邏輯裝置,其中該虛擬處理器操作邏 輯單元更包含: 一前側匯流排指令處理器,用以監控被該至少一高性能 處理器為維持該系統狀態所執行之電腦指令;以及 一匯流排封裝器,用以於該至少一高性能處理器及該虛 擬處理器所使用之語言間進行轉換,以允許該虛擬處理器直 接存取該處理器支援邏輯單元以執行該電腦軟體之任務。 7. 如請求項1所述之橋接邏輯裝置,其中各該至少一高性能處 理器及該虛擬處理器係一 x86處理器且被配置於同一半導體 201250460 晶片上。 8. 如請求項1所述之橋接邏輯裝置,其中各該至少一高性能處 理器係一 x86處理器,該虛擬處理器係一 ARM處理器,且該 至少一高性能處理器及該虛擬處理器被配置於同一半導體晶 片上。 9. 如請求項1所述之橋接邏輯裝置,其中該橋接邏輯裝置被配 置於一獨立的半導體晶片上。 10. 如請求項1所述之橋接邏輯裝置,其中該橋接邏輯裝置及該 虛擬處理器被配置於同一半導體晶片上。 11. 如請求項1所述之橋接邏輯裝置,其中該橋接邏輯裝置、該 虛擬處理器及該至少一高性能處理器被配置於同一半導體晶 片上。 41
TW100143129A 2011-06-08 2011-11-24 用於一異質性電腦系統之橋接邏輯裝置 TWI453580B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201161494587P 2011-06-08 2011-06-08

Publications (2)

Publication Number Publication Date
TW201250460A true TW201250460A (en) 2012-12-16
TWI453580B TWI453580B (zh) 2014-09-21

Family

ID=45444284

Family Applications (4)

Application Number Title Priority Date Filing Date
TW100143127A TW201250459A (en) 2011-06-08 2011-11-24 Method of operating a heterogneous computer system
TW100143129A TWI453580B (zh) 2011-06-08 2011-11-24 用於一異質性電腦系統之橋接邏輯裝置
TW100143131A TWI456500B (zh) 2011-06-08 2011-11-24 用於一異質性電腦系統之超級作業系統
TW100143696A TW201250461A (en) 2011-06-08 2011-11-29 Green computing heterogeneous computer system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW100143127A TW201250459A (en) 2011-06-08 2011-11-24 Method of operating a heterogneous computer system

Family Applications After (2)

Application Number Title Priority Date Filing Date
TW100143131A TWI456500B (zh) 2011-06-08 2011-11-24 用於一異質性電腦系統之超級作業系統
TW100143696A TW201250461A (en) 2011-06-08 2011-11-29 Green computing heterogeneous computer system

Country Status (6)

Country Link
US (4) US20120317429A1 (zh)
JP (4) JP2012256306A (zh)
KR (4) KR20120136271A (zh)
CN (4) CN102819292A (zh)
GB (4) GB2491665B (zh)
TW (4) TW201250459A (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423216B2 (en) 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
US9596077B2 (en) * 2013-04-22 2017-03-14 Unisys Corporation Community of interest-based secured communications over IPsec
US9996400B2 (en) 2013-05-23 2018-06-12 Renesas Electronics Corporation Multi-CPU system and multi-CPU system scaling method
TWI483103B (zh) * 2013-05-28 2015-05-01 Acer Inc 電源管理方法
WO2015061731A1 (en) * 2013-10-27 2015-04-30 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge
US10860366B2 (en) * 2014-04-30 2020-12-08 Hewlett-Packard Development Company, L.P. Multi architecture manager
KR20160054850A (ko) * 2014-11-07 2016-05-17 삼성전자주식회사 다수의 프로세서들을 운용하는 장치 및 방법
JP6285853B2 (ja) * 2014-12-05 2018-02-28 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および情報処理方法
US20170052799A1 (en) * 2015-08-21 2017-02-23 Microchip Technology Incorporated Integrated Circuit Device With Selectable Processor Core
JP6891680B2 (ja) * 2017-07-12 2021-06-18 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
CN109213717B (zh) * 2018-08-31 2022-04-05 北京计算机技术及应用研究所 国产飞腾处理器的双桥片架构
EP4009160A1 (en) * 2020-12-07 2022-06-08 F5, Inc. Methods for application deployment across multiple computing domains and devices thereof

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6513057B1 (en) * 1996-10-28 2003-01-28 Unisys Corporation Heterogeneous symmetric multi-processing system
US6021484A (en) * 1997-11-14 2000-02-01 Samsung Electronics Co., Ltd. Dual instruction set architecture
US6480952B2 (en) * 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
JP2000222080A (ja) 1999-01-28 2000-08-11 Canon Inc 情報機器およびpcmciaカード管理方法
US7098899B1 (en) * 1999-09-21 2006-08-29 Intel Corporation Dual form low power, instant on and high performance, non-instant on computing device
US6631474B1 (en) * 1999-12-31 2003-10-07 Intel Corporation System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
JP2001290665A (ja) * 2000-04-11 2001-10-19 Nec Software Hokuriku Ltd プロセッサシステム
CA2335561A1 (en) * 2000-05-31 2001-11-30 Frank J. Degilio Heterogeneous client server method, system and program product for a partitioned processing environment
US20030153353A1 (en) * 2001-03-16 2003-08-14 Cupps Bryan T. Novel personal electronics device with simultaneous multi-processor operation
US20020173344A1 (en) 2001-03-16 2002-11-21 Cupps Bryan T. Novel personal electronics device
JP2002312335A (ja) 2001-04-10 2002-10-25 Toshiba Corp 非対称型マルチプロセッサ
JP2002312180A (ja) * 2001-04-11 2002-10-25 Hitachi Ltd 動的命令変換機能を有するプロセッサシステム、該プロセッサシステムを備えたコンピュータにて実行されるバイナリートランスレーションプログラム及びそのプロセッサシステムを実装した半導体デバイス
US6920573B2 (en) * 2001-05-23 2005-07-19 Smartpower Corporation Energy-conserving apparatus and operating system having multiple operating functions stored in keep-alive memory
JP2004157865A (ja) 2002-11-07 2004-06-03 Sony Corp マルチプロセッサシステム
JP2004280378A (ja) 2003-03-14 2004-10-07 Handotai Rikougaku Kenkyu Center:Kk 半導体装置
US7093147B2 (en) * 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US20050132239A1 (en) * 2003-12-16 2005-06-16 Athas William C. Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
US7152171B2 (en) * 2004-04-28 2006-12-19 Microsoft Corporation Task-oriented processing as an auxiliary to primary computing environments
CN1324430C (zh) * 2004-06-09 2007-07-04 宏碁股份有限公司 电脑系统的电源管理系统及方法
CN100474214C (zh) * 2004-08-05 2009-04-01 松下电器产业株式会社 信息处理装置
US7729900B2 (en) * 2004-09-29 2010-06-01 Microsoft Corporation Method and computer-readable medium for consistent configuration of language support across operating system and application programs
EP1996993B1 (en) 2006-01-10 2015-03-11 Cupp Computing As Dual mode power-saving computing system
US9015501B2 (en) * 2006-07-13 2015-04-21 International Business Machines Corporation Structure for asymmetrical performance multi-processors
US7987464B2 (en) * 2006-07-25 2011-07-26 International Business Machines Corporation Logical partitioning and virtualization in a heterogeneous architecture
US20080263324A1 (en) * 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US7676683B2 (en) * 2006-08-24 2010-03-09 Sony Computer Entertainment Inc. Method and system for rebooting a processor in a multi-processor system
CN101689106B (zh) * 2007-06-12 2013-10-09 松下电器产业株式会社 多处理器控制装置、多处理器控制方法以及多处理器控制电路
US8160247B2 (en) * 2007-09-27 2012-04-17 Adobe Systems Incorporated Providing local storage service to applications that run in an application execution environment
US7826841B2 (en) * 2008-02-11 2010-11-02 Wei Lu Open wireless architecture virtualization system for wireless mobile terminal device
US8615647B2 (en) * 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
JP2009230220A (ja) 2008-03-19 2009-10-08 Fuji Xerox Co Ltd 情報処理装置、及び画像処理装置
US9058483B2 (en) * 2008-05-08 2015-06-16 Google Inc. Method for validating an untrusted native code module
US8510577B2 (en) * 2008-07-28 2013-08-13 Microsoft Corporation Reducing power consumption by offloading applications
US8352952B2 (en) * 2008-12-01 2013-01-08 Citrix Systems, Inc. Systems and methods for facilitating virtualization of a heterogeneous processor pool
US20100169884A1 (en) * 2008-12-31 2010-07-01 Zohar Bogin Injecting transactions to support the virtualization of a physical device controller
US8364857B2 (en) 2009-08-31 2013-01-29 Qualcomm Incorporated Wireless modem with CPU and auxiliary processor that shifts control between processors when in low power state while maintaining communication link to wireless network
JP4644747B1 (ja) * 2009-11-02 2011-03-02 パナソニック株式会社 情報処理装置、制御方法および制御プログラム
US20110113426A1 (en) * 2009-11-09 2011-05-12 Hsiang-Tsung Kung Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
JP5310588B2 (ja) * 2010-02-04 2013-10-09 ブラザー工業株式会社 通信装置

Also Published As

Publication number Publication date
GB2491915A (en) 2012-12-19
JP2012256308A (ja) 2012-12-27
GB201119879D0 (en) 2011-12-28
CN102819311A (zh) 2012-12-12
TWI453580B (zh) 2014-09-21
TW201250595A (en) 2012-12-16
KR101479590B1 (ko) 2015-01-06
GB201119861D0 (en) 2011-12-28
US20120317405A1 (en) 2012-12-13
TW201250461A (en) 2012-12-16
GB2491914A (en) 2012-12-19
KR20120136271A (ko) 2012-12-18
GB2491665B (en) 2014-02-26
US9383811B2 (en) 2016-07-05
CN102819292A (zh) 2012-12-12
GB2491665A (en) 2012-12-12
GB201119865D0 (en) 2011-12-28
CN102819291A (zh) 2012-12-12
JP2012256309A (ja) 2012-12-27
CN102819312B (zh) 2016-02-24
US20120317321A1 (en) 2012-12-13
GB201119875D0 (en) 2011-12-28
CN102819312A (zh) 2012-12-12
KR20120136276A (ko) 2012-12-18
US9098287B2 (en) 2015-08-04
KR20120136274A (ko) 2012-12-18
KR20120136275A (ko) 2012-12-18
TW201250459A (en) 2012-12-16
US20120317429A1 (en) 2012-12-13
JP2012256306A (ja) 2012-12-27
US20120317571A1 (en) 2012-12-13
JP5557857B2 (ja) 2014-07-23
TWI456500B (zh) 2014-10-11
GB2491666A (en) 2012-12-12
JP5734211B2 (ja) 2015-06-17
JP2012256310A (ja) 2012-12-27

Similar Documents

Publication Publication Date Title
TWI453580B (zh) 用於一異質性電腦系統之橋接邏輯裝置
US8839238B2 (en) Dynamic virtual machine shutdown without service interruptions
US9069553B2 (en) Switching tasks between heterogeneous cores
EP1591909B1 (en) Task-oriented processing as an auxiliary to primary computing environments
US8195968B2 (en) System and method for power reduction by sequestering at least one device or partition in a platform from operating system access
US9280379B2 (en) Hibernation via paravirtualization
US9672055B2 (en) Information processing system having two sub-systems with different hardware configurations which enable switching therebetween
CN101901159B (zh) 一种多核CPU加载Linux操作系统的方法及系统
CN107077175A (zh) 提供针对多芯片封装的热参数报告的装置和方法
WO2019028854A1 (zh) 一种虚拟机的状态管理方法、装置和智能终端
JP2022527749A (ja) 低電力プロセッサ状態のための自律コアペリメータ
TW201617863A (zh) 雙處理器電子裝置及其快速開機啟動的方法