CN102819291A - 用于一异质性电脑系统的桥接逻辑装置 - Google Patents

用于一异质性电脑系统的桥接逻辑装置 Download PDF

Info

Publication number
CN102819291A
CN102819291A CN2011104083160A CN201110408316A CN102819291A CN 102819291 A CN102819291 A CN 102819291A CN 2011104083160 A CN2011104083160 A CN 2011104083160A CN 201110408316 A CN201110408316 A CN 201110408316A CN 102819291 A CN102819291 A CN 102819291A
Authority
CN
China
Prior art keywords
processor
virtual
performance
virtual processor
port
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN2011104083160A
Other languages
English (en)
Inventor
张登章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute for Information Industry
Original Assignee
Institute for 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 Institute for Information Industry filed Critical Institute for Information Industry
Publication of CN102819291A publication Critical patent/CN102819291A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • 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 or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or 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)

Abstract

一种用于一异质性电脑系统的桥接逻辑装置。该异质性电脑系统具有至少一高性能处理器、一处理器支援逻辑单元及一虚拟处理器。该桥接逻辑装置包含一虚拟处理器操作逻辑单元、一能在该至少一高性能处理器及该虚拟处理器所使用的处理器语言间进行转换的处理器语言转换逻辑单元,及一具有第一、第二及第三埠的高速总线切换器,其能跨越该第一、第二及第三埠的任二埠进行双向的数据转发。该切换器以该第一埠与至少一高性能处理器连接、以该第二埠通过该处理器语言转换逻辑单元与该虚拟处理器连接,且以第三埠与该处理器支援逻辑单元连接。

Description

用于一异质性电脑系统的桥接逻辑装置
技术领域
本发明在概念上关于绿能运算(Green Computing)及运算耗能的最小化。具体而言,本发明关于用于一异质性电脑系统的一桥接逻辑装置,桥接逻辑装置将一低耗能的主要处理器增加至标准x86架构,使一异质性系统能以最小的运算耗能来执行运算。
背景技术
在现代社会中,各式各样的电脑已经成不可或缺的设备。Intel x86架构(其原始架构由美国加利福尼亚州圣塔克拉拉市的Intel公司所设计,而最新的64-bitCISC架构则是由美国加利福尼亚州桑尼维尔市的Advanced Micro Devices公司逐步开发的)在主流的运算架构中长期地占有支配性的地位。另一方面,目前非x86架构运算在商业界里是由移动运算(包含智慧型手机及触控式屏幕装置)中的ARM处理器(RISC ARM的架构是由英国的ARM Holding plc of Cambridge所研发)所主导。由绿能运算的角度观之,x86及非x86运算具有如下的问题。
为实现绿能运算,因此有必要减少采用x86架构的桌上型电脑于闲置(idling)时的耗能。对那些需要运算资源的应用程序而言,采用x86运算较为合适。在全球已安装了数以百万计的家用型及办公室桌上型电脑及携带式电脑、专业高性能工作站电脑及各种基于电子商务所设置的服务器电脑的情况下,运算耗能已然成为环保的议题。这些议题的一便是与电脑运算闲置(亦即,电脑未被使用,亦未被关机的时间)相关。
目前已有一些降低耗能的方案,例如能源之星(Energy Star)-一个起源于美国且被许多其他国家所采用的国际标准,这些方案实现了某种程度的运算节能。以x86架构为基础的主流电脑工业亦有标准的电源管理。举例而言,进阶组态及电源接口(Advanced Configuration and Power Interface,ACPI)-一个开放的工业标准-便允许一作业系统对电脑硬件的节省功能作直接的控制。
然而,由于不便及内建的电源管理有限,对使用者而言,以x86架构为基础的主流桌上型及笔记型电脑要达成真正的绿能运算有其难度。对于多数电脑用户来说,ACPI的睡眠/待机/休眠的电源管理模式过于复杂,让使用者难以轻易地找到能让电脑既方便操作又能节省耗能的最佳参数设定。另外,对于那些更复杂的运算,例如涉及多重连线(multiple session)的虚拟运算,ACPI往往不能提供平稳的电源管理,反而是容易造成电脑当机或是无法处理虚拟机器连线(VM session)。
因此,由于存在为数众多的桌上型电脑,要达成显著的节能仍有相当大的空间。
为了使以x86架构为基础的智慧型移动装置更加实用,有需要采行绿能运算。此外,由于在标准x86架构的领域里可使用的能源管理技术并不完善,以x86架构为基础的智慧型个人装置(例如,x86架构的手机)也因为电池的寿命过短而不实用。事实上,目前并不存在采用x86架构的精密商业智慧型手机。在外出使用电池的情况下,大部份采用x86架构的笔记型电脑无法一整天持续辛勤地运作。这造成的结果便是,当离开办公室或外出时,要存取x86应用程序就变得格外的不方便。
非x86架构的装置亦有存取x86应用程序的需求。ARM处理器已发展出移动装置所需要的节能应用程序,特别是智慧型手机的应用程序。然而,它们不是针对需要严峻运算的应用程序而设计的,此外,在本质上,它们并无法实际地直接存取x86软件的核心。由于Windows软件在日常生活及商业界的许多方面仍占有主导地位,非x86架构在存取x86应用程序的困难确实会造成不便。无论外出或是在办公室,使用者需要同时拥有二种电脑硬件才能存取ARM所支配的移动装置应用程序以及x86所支配的Windows应用程序。
为同步、整合及无缝(seamless)地存取混合的应用程序,需要一种跨作业系统的电脑系统。当存取x86架构的Windows及ARM智慧型手机的应用程序为许多人的日常生活需求时,对于一种能同时存取二种架构的电脑的需求就变得非常实际。目前以x86为基础的架构(和其他一些非x86的架构)能通过虚拟运算技术,在同一电脑硬件上同步地执行Windows及非Windows的电脑软件应用程序。例如,一x86电脑能安装Linux、Windows或其他能支援多个客体电脑的主作业系统,各执行所支援的不同数量的支援作业系统之一。然而,主机处理器模拟其他非x86客体作业系统的指令集会消耗处理电力。尽管这种情形对桌上型电脑是可被接受的,但对智慧型移动装置而言,考虑到电池寿命的因素,便无法被接受了。
Cupps等人试图整合手机及个人电脑的功能于其他装置中,他们在一列的美国专利案及专利申请案中揭露一种电子装置,此种电子装置结合了一个以x86为基础的架构及一个ARM架构处理器的嵌入式系统。例如,在美国专利公开案第US2002/0173344号所揭露的「新颖的个人电子装置(Novel personal electronic device)」中,Cupps等人描述了一种装置,此装置使用一种低耗能的系统处理器(例如:ARM)作为整个装置的系统控制器,而此装置实质上是一个采用x86架构的电脑。
Cupps等人的作法实际上是将一种具有移动运算功能的嵌入式ARM处理器插入一个具有PC处理器的x86电脑。此ARM采用与原PC处理器一样的方式,连接至x86架构的北桥及南桥。Cupps等人指出低耗能的ARM系统处理器能因此作为电子装置的主处理器-于x86架构的高性能PC处理器之上运作。
然而,采用与x86架构的显示控制器及存储器子系统相同的配置方式,亦即,将ARM处理器配置于北桥的高速总线(high-speed buses,PCI-e)上,Cupps等人所提出的技术对于装置整体的「主要控制」会有所限制。事实上,由于ARM处理器以总线的方式于装置内连接,因此会被归类为标准x86架构下的总线控制装置(bus master device),而非整个电子装置的最高主要处理器。在此系统架构下,因为在PC处理器控制下的主要x86架构必须在控制之下(例如:在ACPI的控制下)维持一个完整且健全的电源管理状态,若有任何丝毫的干扰会破坏此完整健全的状态,将会造成数据的损失且电子装置需要完整的重新启动。更常见的情况是,Cupps等人所提供的装置里的ARM处理器会重新启动以PC处理器为基础的x86系统,以便执行那些需要PC处理器的处理能力的重度任务。
发明内容
有鉴于前述因素,确实需要一种用于一异质性电脑系统的桥接逻辑装置,使异质性电脑系统在不牺牲运算能力的情况下,将运算耗能最小化,藉此成为一绿能x86电脑。
另外,也需要一种用于一异质性电脑系统的桥接逻辑装置,使异质性电脑系统的运算耗能最小化,以便让一采用x86架构的智慧型移动装置的电池在每次充电后都能支援至少一整天的工作。
另需要一种用于一异质性电脑系统的桥接逻辑装置,以使一非x86架构的智慧型移动装置能存取x86电脑软件库。
另需要一种用于一异质性电脑系统的桥接逻辑装置,以便使跨作业系统的异质性电脑系统能对不同作业系统的软件应用程序进行同步、整合及无缝整合的存取。
本发明经由提供一异质性电脑系统以实现上述及其他目的。该异质性电脑系统包含一x86核心、一虚拟处理器(Hypervisor)及一桥接逻辑单元,其中该x86核心具有一x86处理器及一x86运算架构,该虚拟处理器的运算能力低于该x86处理器,该桥接逻辑单元通过该x86处理器的该区域总线,将该虚拟处理器连接至该x86核心。其中,该虚拟处理器执行那些它有足够电力执行的电脑软件的任务,并使该x86处理器处于省电状态(睡眠/休眠/关机),且该虚拟处理器使该x86处理器脱离省电状态,以便执行那些虚拟处理器未具足够电力执行的电脑软件的任务。
另外,本发明更经由提供用于一异质性电脑系统的一桥接逻辑装置,来实现上述及其他目的。该异质性电脑系统包含至少一高性能处理器、一处理器支援逻辑单元及一虚拟处理器,其中,该处理器支援逻辑单元支援该至少一高性能处理器执行该电脑软件的任务,且该虚拟处理器较该至少一高性能处理器省电。该桥接逻辑装置包含一虚拟处理器操作逻辑单元、一处理器语言转换逻辑单元及一高速总线切换器,其中,该虚拟处理器操作逻辑单元于该至少一高性能处理器的控制下维持该系统的状态,该处理器语言转换逻辑单元于该至少一高性能处理器及该虚拟处理器所使用的处理器语言之间进行转换,该高速总线切换器具有一第一、第二及第三埠,用以跨越该第一、第二及第三埠的任二埠进行双向的数据转发(relay)。该高速总线交换器以该第一埠与该至少一高性能处理连接、以该第二埠通过该处理器语言转换逻辑单元与该虚拟处理器连接,且以第三埠与该处理器支援逻辑单元连接。
通过本发明的一桥接逻辑装置里,能实现上述及其他目的。虚拟处理器于该处理器支援逻辑单元的支援且于该高速总线切换器跨越地连接该第二埠及该第三埠的情形下,利用由该处理器语言转换逻辑单元转换而来的本机语言(nativelanguage),执行那些该虚拟处理器有足够电力执行的该电脑软件的任务,并使该至少一高性能处理器处于一省电状态。
本发明的一桥接逻辑装置里能实现上述及其他目的。虚拟处理器使用该维持的系统状态,且于该高速总线切换器跨越地连接该第一埠及第三埠的情形下,使该至少一高性能处理器脱离该省电状态以执行该虚拟处理器未具足够电力执行的该电脑软件的任务。
本发明的另一桥接逻辑装置里亦能实现上述及其他目的。至少一高性能处理器及该虚拟处理器于该高速总线切换器跨越地连接对应的该第一埠、第二埠及第三埠的情形下,同步地执行那些需要全部处理器的电力执行的该电脑软件的任务。
附图说明
图1描绘本发明的异质性电脑系统的一种实现方式的方块示意图,其中一虚拟处理器通过桥接电路芯片被增加至标准x86架构;
图2描绘本发明的异质性电脑系统的另一种实现方式的方块示意图,其中一虚拟处理器核心及其必要的桥接逻辑单元被配置在同一半导体芯片上,以便被增加至标准x86架构;
图3描绘本发明的异质性电脑系统的又一种实现方式的方块示意图,其中一虚拟处理器核心及其必要的桥接逻辑单元配置与一多核心x86处理器被配置在同一半导体上,以便被直接地插入一标准x86电脑主机板的CPU插槽;
图4描绘本发明的异质性电脑系统的另一种实现方式的方块示意图,一省电x86核心作为虚拟处理器,且与一多核心x86处理器被配置于同一半导体上,以便被直接地插入一标准x86电脑主机板的CPU插槽;
图5及6描绘本发明的电脑系统的另一实施例的示意图,其中电脑系统为一x86架构智慧型移动装置;
图7描绘用以建构本发明的异质性电脑系统的桥接逻辑单元的概念示意图;
图8描绘桥接逻辑单元所提供的连接方式的示意图,其将虚拟处理器及x86架构的主要处理器连接于x86芯片组之前侧总线;
图9描绘本发明的较佳实施例的桥接逻辑单元的基本功能元件;
图10描绘图9的桥接逻辑单元的逻辑电路元件的详细示意图;
图11描绘本发明的较佳实施例的异质性电脑系统的电路方块示意图;
图12描绘本发明的较佳实施例的桥接逻辑单元的逻辑电路元件的示意图;
图13-15分别描绘图8-12的异质性电脑系统的操作模式;
图16-19分别描绘使异质性电脑系统启动的不同的控制演算法的示意图;
图20描绘操作异质性电脑系统的超级作业系统的示意图,其能实现无缝的跨作业系统电脑软件应用程序;以及
图21-24分别描绘图8-12的异质性电脑系统的操作模式,用以支援无缝的跨作业系统电脑软件应用程序。
主要元件符号说明:
100异质性电脑系统
110虚拟处理器
120x86CPU
134前侧总线
140桥接芯片
160标准x86架构
162x86芯片组
200异质性电脑系统
210虚拟处理器
220x86CPU
234前侧总线
240桥接逻辑单元
242虚拟处理器芯片
260标准x86架构
262x86芯片组
300异质性电脑系统
310低阶x86核心
320最新的多核心x86
334前侧总线
340桥接逻辑单元
344x86CPU
362x86芯片组
400异质性电脑系统
407桥接装置
408三方数据切换器
410虚拟省电x86核心
421x86高性能处理器核心
422x86高性能处理器核心
434前侧总线
446x86CPU
462x86芯片组
500异质性电脑系统
510虚拟处理器
520x86CPU
534前侧总线
540桥接芯片
560x86架构
562x86芯片组
570蜂巢式通信单元
610虚拟处理器
620x86处理器
634前侧总线
662x86芯片组
6400桥接逻辑电路
6407高速总线切换器
6410虚拟处理器操作逻辑单元
6412前侧总线命令处理器
6414总线封装器
6430处理器语言转换逻辑单元
6432周边状态表
6434周边IRQ控制器
6436周边状态维持器
6452前侧总线
6454处理器总线
6624北桥
710虚拟处理器
712嵌入式处理器
714随机存取存储器
716内建启动载入器
724随机存取存储器
7400桥接逻辑单元
7407总线切换器
7412命令处理器
7436周边状态维持器
7438周边状态对映器
具体实施方式
本发明的电脑系统是建构于一种能执行绿能运算(深度绿能运算)的异质性处理器系统。低耗能的主「虚拟(hypervisor)」处理器通过一桥接逻辑电路被增加至主流的标准x86架构,通过此种方式,能使一异质性电脑系统在执行绿能运算上,不仅具有强大的运算能力,且能达成节能的效果。
本发明的异质性电脑系统在进行x86运算时,尽可能地减少电源的消耗,以便(1)使整个x86主导的主流运算能大量地减少二氧化碳的释放,以及(2)使大量的x86电脑软件库能被移动用户依其移动需求进行实际的存取。本发明的异质性电脑系统更执行跨作业系统的运算,藉此能对来自不同作业系统的软件应用程序进行同步的、整合的及无缝的存取。
换句话说,本发明的异质性电脑系统旨在解决这些问题,并达成至少二个主要目标。首先,本发明的电脑系统为可携式智慧型装置提供一种解决方案,具体来说,为一种新类型的智慧型手机,其能存取现有大量的x86电脑软件库,同时也能充分地节省电力以维持至少工作一整天所需要的电池电力。对众多的商务旅客而言,这整新类型的移动装置将会取代累赘的智慧型手机及笔记型电脑组合。
其次,且更重要的是,本发明电脑系统能够在主流电脑(包含桌上型、工作站及服务器电脑)上实现深度的绿能运算。考虑到所有的电脑所节约的电源的总和,整体的电脑运算耗能确实会被大幅地降低。
在实现这些目标的同时,本发明的异质性电脑系统能在使用同样硬件的情形下,同步、整合及无缝地存取不同作业系统的电脑软件应用程序。
需注意的是,本案说明书的用语「x86应用程序」泛指所有能在x86电脑硬件架构下以各种不同作业系统执行的x86电脑软件应用程序。因此,此用语指针对x86架构目前所支援的作业系统(例如:Windows、Linux、Mac OS及Solaris等)而写的所有的软件应用程序。
此外,用语「虚拟处理器」在运算领域里通常是指虚拟机器监控器(VirtualMachine Monitor,VMM),与其将之视为电脑硬件,更应将之视为电脑软件技术。然而,此用语在此亦指主处理器、低耗能ARM,在本发明的不对称异质性处理器系统里监控x86处理器,其中,x86处理器于本系统为有效率但耗能的元件,其在主处理器ARM的控制下为从属处理器。选择此用语的原因在于,主处理器确实会监控及控制嵌入于本发明的电脑软件系统所需的虚拟机器。
会如此命名亦是因为ARM主处理器相较于监控x86硬件(一异质性电脑系统中的主要硬件)的x86处理器,在概念上高一阶,此意味着主要的ARM「虚拟使用」其附属的且用以监控主要x86电脑硬件的x86处理器。
此外,用语「高性能处理器」指标准x86架构中的主要x86处理器。此命名用以反应x86处理器在本发明的异质性电脑系统中用以负责大量危急的任务。
在不犠牲电脑的运算能力的前提下,为电脑耗能最小化寻求解决之道,确实为一既有的议题。在移动运算里(笔记型电脑、触控式电脑及智慧型手机等),必须聪明地处理电源管理,以尽可能地延长能执行运算的时间-至少一工作天。在主流的桌上型电脑运算中,由于全球大量地加以安装,因此电源管理亦非常重要,相较轿车上的MPG效能,亦为一个全球的环境议题。
但是,对一些外出使用的应用程序而言,传统的电源管理方式并无法使一x86架构有在省电的状态下有效率地运作。这是现今x86架构的限制,因为它们并非在这样的理念下被设计出来的。
解决之道落在异质性处理器这样的概念上。若要使这样的异质性电脑系统在商场上成功,电脑系统必须尽可能的与现在的工业标准相容。以Wintel目前所达成的成就观之,要对之进行改变乃不切实际的事。异质性电脑系统解决方法必须适用现有的系统/方法。这意味着对电脑硬件和软件所作的调整越轻微越好。
A:具有一桥接逻辑单元的异质性电脑系统
从系统硬件架构的角度来看,本发明的一异质性(Heterogeneous)电脑系统具有一「虚拟」处理器,其配置于标准x86架构的区域(前侧)总线。请参考图1-4,本发明的架构在基础上便与Cupps等人所提出的电子装置不同,他们的电子装置是将系统处理器通过系统总线连接至x86架构的北桥。
图1描绘本发明的异质性电脑系统的一实施方式的示意图,此异质性电脑系统通过桥接电路芯片将一虚拟处理器增加至标准x86架构上。于本发明的较佳实施例中,异质性电脑系统100具有一标准x86架构160,此标准x86架构160包含x86CPU 120及支援x86芯片组162,因此能作为一完整的x86电脑。
虚拟处理器110通过一桥接芯片140被增加至标准x86架构160。桥接芯片体140包含数字电子电路,以便使虚拟处理器110、一ARM或一低耗能x86处理器(例如386或甚至286)能通过x86 CPU之前侧总线(front-side bus;FSB)134而被插至x86架构160。
图7描绘利用桥接逻辑单元以建构本发明的异质性电脑系统的概念的示意图。「桥接逻辑单元」指一种能让虚拟ARM处理器110连接至一现有x86架构电脑系统160的桥接装置(逻辑单元),如图1所绘示。在本发明的脉络里,如图7所描绘,桥接装置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 CPU344及支援x86芯片组362,因此能作为一完整的x86电脑。x86 CPU 344为传统x86 CPU的变形。x86 CPU 344包含一x86高性能处理器(例如:最新的多核心x86320)、一虚拟ARM或一低阶x86核心310及桥接逻辑单元340于同一半导体芯片上,其中桥接逻辑单元340通过前侧总线334桥接虚拟处理器至高性能核心。
图4描绘本发明的异质性电脑系统的另一种实施方面的示意图。此异质性电脑系统包含一作为虚拟处理器的省电x86核心,其与一多核心x86处理器被配置于同一半导体上,以方便将的直接地插入一标准x86电脑主机板的CPU插槽。
于本实施例中,异质性电脑系统400符合一标准x86架构,其包含x86 CPU 446及支援x86芯片组462,因此能做为一完整的x86电脑。x86 CPU 446为传统CPU的变形,其包含x86高性能处理器核心421、422及一虚拟省电x86核心410于同一半导体芯片上。由于虚拟核心410采用高性能核心421及422的简化的指令集,且共享相同的内部总线,因此无配置桥接逻辑单元的必要。配有虚拟处理器的高性能处理器446,以与标准x86架构电脑主机板相同的方式,通过一正规的前侧总线434连接至x86芯片组462。
就字面意义而言,如图1-4所示,本发明建构一异质性电脑系统的概念为,增加一低耗能(power-sipping)的主处理器(目前最可能者为ARM)至一x86电脑。此概念使低耗能的虚拟处理器总是处于清醒模式(awake mode),以便将过度耗电的x86高性能核心虚拟化。在此概念下,x86处理器纯粹是ARM虚拟处理器的附属处理器,x86会处于深层休眠的状态以便节省电源,直到遇到低效能处理器无法或未具足够能力去处理的系统任务,x86才被唤醒。
视本发明的异质性电脑系统的使用目的而定,若使用目的为例如CAD/CAM等工作站,则其x86系统可为以最新的Intel第二代核心(Intel 2nd Generation CoreTM)技术处理器为基础的高性能系统。又,假设使用目的为移动装置,用以取代使用者出差需同时携带智慧型手机及笔记型电脑的情形,则x86可为一以AtomTM为基础的低耗能系统。
使用现有的x86架构,可简单地建造这样的异质性电脑系统的硬件。对商业上的应用程序,图1-4所绘示的解决方法适用于不同电脑工业供应链上的不同电脑硬件制造商。
图1-2所绘示的电脑系统架构适用于目前的商业电脑主机板及系统制造商。他们能将ARM处理器及桥接芯片引入他们制造的产品。至于图3所绘示的架构,则需视现今x86及相容处理器的制造商是否愿意采用,并调整他们的处理器半导体,以便制造出他们自己具有异质性电脑系统概念的处理器。
从商业的观点来看,确实有可能成真。对于现今任何的CPU制造商而言,若要采用这样的概念,仅需对他们的多核心产品做极小的半导体改变,且具有此新概念(亦即,绿能运算)的高性能CPU却能带来极大又极深远的影响。图4所描绘的架构则最适合当今主流的桌上型电脑/工作站的运算。
图5及6描绘本发明的电脑系统作为一x86架构智慧型移动装置的一实施例的示意图。此x86智慧型装置同时具有手机及x86架构电脑的功能,且能被用以取代使用者出差时需同时携带的智慧型手机及笔记型电脑。
与图1所示的范例相似,在此具体范例中,智慧型手机联合笔记型电脑这种型态的异质性电脑系统500包含一x86架构560,此x86架构560包含x86 CPU 520及支援x86芯片组562,因此能作为一完整的x86电脑。为提供移动通信的功能,能于x86架构内设置一蜂巢式通信单元570。
虚拟处理器510通过桥接芯片540连接至x86架构560,此桥接芯片540包含数字电子电路,以便让虚拟处理器510(亦即,ARM)通过x86 CPU的前侧总线534被插至x86架构560上。
由图5所示的虚线可知,当x86智慧型移动装置500执行其手机功能时,包含x86 CPU 520及主要x86芯片组562的整体x86核心560会进入省电状态,例外的部份则是蜂巢式通信单位570,其仍在虚拟ARM处理器510的控制下运作。
另一方面,当装置500使其可携式电脑的那部份运作,例如执行Windows应用程序,如图6所示,则装置500中除了蜂巢式通信单位570之外的所有元件皆会被唤醒。举例而言,若有一网络银行应用程序,其便是由x86系统在ARM的监控下执行。低耗能的ARM会持续地监控,以判断是否让设备里的x86部份进入休眠的状态,藉此节省电池的电力。
为了实现绿能运算,以使如图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电脑里之前侧总线而与x86芯片组的北桥间的直接连结方式,被桥接逻辑单元6400所中断。原先被配置于x86处理器620及北桥6624之间的前侧总线仍在,但却被分成二个部分,亦即,在x86处理器端的前侧总线6452及在芯片组端的前侧总线634,它们皆被桥接逻辑电路6400控制。另一方面,桥接逻辑电路6400亦界于新增的虚拟处理器610及连接至x86芯片组662的北桥6624的前侧总线634之间。
桥接逻辑单元6400包含一虚拟处理器运算逻辑单元6410,一处理器指令集/电脑命令转换逻辑单元(或概要地称之为处理器语言转换逻辑单元6430),以及一高速总线切换器6407。总线切换器6407的切换率与x86处理器之前侧总线相容。如图7所示,总线切换器6407的较佳实施方面为一个三方切换器,其中一埠(如图7的元件符号A)直接地连接至x86处理器620之前侧总线6452。总线切换器6407的一第二埠(如图7的元件符号B)通过处理器语言转换逻辑单元6430,连接至虚拟处理器610的处理器总线6454。总线切换器6407的第三埠(如图7的元件符号C)则直接地连接至芯片组662的北桥之前侧总线634。
高速总线切换器6407所提供的连接方式,让x86高性能处理器620及低耗能虚拟处理器610接能通过前侧总线634存取x86架构的北桥6624。每当切换器6407被设定为连接其埠A及埠C,高性能x86处理器620便能直接地连接至北桥,就如同一标准x86电脑一样。
另一方面,当切换器6407被设定为连接其埠B及埠C,低耗能虚拟处理器610能存取x86芯片组662。在此情形中,虚拟处理器610为另一低耗能x86处理器,其使用与高性能x86处理器相同的x86处理器指令集或使用该x86处理器指令集的一子集,因此,处理器语言转换逻辑单元6430只需在不同位阶的x86指令集之间进行转换。
然而,如果低耗能虚拟处理器610为一个使用完全不同指令集的处理器(例如:ARM或MIPS),虚拟处理器610需要利用处理器语言转换逻辑单元6430来摸拟或模仿高性能x86处理器。于此情形下,处理器语言转换逻辑单元6430会对虚拟处理器610的本机命令进行翻译或转换,使之变为高性能x86处理器620所使用的本机指令中的相对应的部份。
本质上,语言转换逻辑单元6430在x86及虚拟处理器(例如ARM)所使用的语言(指令)间进行转换,使虚拟处理器610能了解并彻底地监控电脑系统里的x86的活动状态,且x86处理器620能自虚拟处理器610接收命令。语言转换逻辑单元6430亦会对在高速x86前侧总线634及低耗能虚拟处理器610所使用的典型低速总线(例如,AMBA;Advanced Microcontroller Bus Architecture,通常被ARM装置采用)间交换的数据进行同步。
换言之,为使低耗能虚拟处理器能正常地存取高性能x86架构,桥接逻辑电路6400必须具有如下的转换功能:(1)处理器「语言」间的转换,以及(2)总线通信电子讯号间的转换。举例而言,图9-10所绘示的总线封装器6414负责总线协定转换及与数据总线寬度、位址总线长度、总线讯号电子位准及时序相关的转换。
如图8所描绘的较佳实施例,所有的转换能在虚拟处理器操作逻辑单元6410内完成,其监控在x86处理器下的所有x86活动,维持一份x86休眠时的系统状态,如此一来,x86处理器被唤醒后便能无缝地接着运作。当x86处理器620处于省电状态且ARM通过类似虚拟机器及即时命令/指令转换的技术来执行x86核心时,虚拟处理器操作逻辑单元6410也可以将ARM命令转换为x86命令。
须说明者,桥接逻辑电路6400可为由低耗能虚拟处理器(ARM)所设置的被动式数字逻辑单元,或者,其本身可为一以微处理器为基础的主动逻辑单元。此外,高性能x86处理器可以是一Intel、一AMD或一Cyrix处理器,且低耗能虚拟处理器可以是一ARM、一MIPS或一简化的x86核心。
总而言之,桥接逻辑元件切换器6407、逻辑单元6410及逻辑单元6430一起运作以提供一桥接功能,使x86处理器620能在虚拟处理器610的控制下存取x86架构662,以便执行分配给异质性电脑系统的任务。另一方面,当x86处理器620不需存取x86架构662时,虚拟处理器610能间接地存取x86架构662。
另须说明者,用语「指令集」(Instruction Set)及用语「微处理器指令集」用于本发明异质性电脑系统的虚拟处理器或高性能处理器,其指电脑架构中与编程有关的部份,包含本机数据型态、指令、暂存器、定址模式、存储器架构、中断与例外处理及外部输入/输出。此外,用语「命令」(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描绘本发明的较佳实施例的异质性电脑系统的电路示意图。于本实施例中,桥接逻辑单元7400的逻辑电路配置稍有不同。总线切换器7407是一个四方切换器,但其仍能虚拟处理器710及高性能x86处理器皆直接地存取x86架构。然而,作为指令转换逻辑单元的命令处理器7412及作为虚拟操作逻辑单元的周边状态对映器(Peripheral Status Mapper)7438位于总线切换器7407的第四埠上。于本实施例中,命令处理器7412负责以下任务:
1.命令伫例及命令解析。
2.将x86命令转换为相对应的ARM命令。
3.将ARM命令转换为相对应的x86命令。
4.维持x86的状态。
5.直接或间接地存取周边装置。
周边状态对映器7438负责以下任务:
1.为ARM处理器进行周边装置的对映。
2.维持周边装置的状态。
总线切换器7407具有以下任务:
1.桥接高速的前侧总线(其属于Intel、AMD及Via-Cyrix高性能处理器)及低速AMBA总线(其属于ARM)。
2.为x86提供桥接的功能,使x86能直接或间接地存取x86架构。
此外,高性能x86处理器可具有自己的工作用随机存取存储器(RAM)724,虚拟处理器710为一嵌入式处理器712,且嵌入式处理器712也具有自己的工作用随机存取存储器714及一内建启动载入器716。
图12描绘本发明的较佳实施例的桥接逻辑单元的逻辑电路元件。桥接逻辑单元7400用以与系统中的x86芯片组及二个处理器一起运作。桥接逻辑单元7400包含如图11所绘示的命令处理器7412,其将x86程序码转换为低耗能ARM的程序码,反之亦然。命令处理器7412可为在ARM控制下的基本型逻辑单元(dumblogic)或一以处理器为基础的命令处理器。
图12所示的周边状态维持器7436的实作方式与图11所示的周边状态对映器7438稍有不同。由于具有自己的存储器及/或暂存器,PSM 7436为一同步装置,其能让ARM虚拟处理器完全地掌握x86主要系统的实际的状态。状态维持使(1)ARM能根据正确的系统状态,于任何时间点继续x86的任务(例如,通过虚拟运算技术),以及(2)当x86处理器在脱离省电状态(待机/睡眠/休眠)时,能根据正确的状态,继续ARM的任务(例如,在某些情况下,ARM处于供电不足的状态)。同样的,周边状态维持器7436可为在ARM控制下的基本型逻辑单元或一以处理器为基础的维持器。
图10描绘图9的桥接逻辑单元的逻辑电路元件的详细示意图。
图8-12所绘示的本发明的异质性电脑系统皆能以图13-15所绘示的3种模式其中之一进行运作。图13所绘示的第1种模式与传统桌上型电脑的运作方式极为相像。高性能x86处理器620可能会被分配到一个复杂且极为耗电的CAD任务,或高画质的游戏操作,在这些情况下,x86处理器620会处于工作满载的状态。同时,虚拟处理器610也处于可运作的状态(active),监控及维持电脑系统状态,使得高性能x86随时都能进入省电的状态时。
在图中,以实线呈现的双箭头沿着前侧总线指向处理器620及x86芯片组662,此意味着处理器620能对x86系统进行一般的存取。同时,以虚线呈现的双箭头沿着前侧总线指向虚拟处理器610及x86芯片组662,此意味着虚拟处理器610能维持在监控整个系统的状态。
异质性电脑系统的第二种操作模式如图14绘示,其描绘一种情境,举例而言,一个具有移动通信功能的x86智慧型移动装置,其能以内建虚拟ARM处理器的方式来实现。当这种智慧型装置使用其ARM来进行移动通信时,高性能x86处理器则能进入省电状态。
异质性电脑系统的第三种操作模式如图15所绘示,其描绘一种情境,同样的举例而言,一x86架构智慧型移动装置同时使用其ARM来进行移动通信,且执行一需要Active-X的远端银行视窗应用程序。在此范例中,虚拟处理器610处在能运作的状态且执行负担较轻的移动通信任务,且同时监控及维持系统状态。另一方面,高性能x86处理器620也处在能运作的状态,并执行分派给它的远端银行交易任务。位于Android作业系统(举例说明而已)的ARM及位于Windows作业系统下的x86应用程序被同时地执行,异质性电脑系统的同一显示屏幕上,而且甚至能彼此交换数据。以下将描述一种能于同一硬件上无缝地且同步地执行的混合式作业系统的软件应用程序。
C:启动异质性系统的演算法
图16-19分别地描述启动异质性系统的控制演算法。四种将本发明的电脑系统从关机中启动的方法如下:
模式A:只有低耗能的虚拟处理器系统被启动。
模式B:于虚拟处理器系统被启动后,启动高性能x86处理器。
模式C:只有高性能x86处理器系统被启动。
模式D:于高性能x86系统被启动后,启动虚拟处理器系统。
模式A:
图16描绘仅启动虚拟处理器的运行顺序。
步骤1:
1a:首先,周边状态维持器(Peripheral Status Maintainer,PSM)存取BIOS。
1b:接着,根据系统BIOS信息,更新周边装置清单(Peripheral list)及对映表(Mapping table)。
1c:之后,启动低耗能虚拟处理器,于内部总线将周边装置初始化,并开始提供周边装置之中断服务。
步骤2:
2a:首先,周边状态维持器发送IRQ至低耗能虚拟处理器。
2b:之后,低耗能虚拟处理器开始提供维持周边装置状态的服务。
步骤3:
3a:低耗能虚拟处理器对连接至系统的周边装置进行初始化。
模式B:
图17描绘于虚拟处理器系统被启动后,启动高性能x86处理器的运行顺序。
步骤1:
1a:低耗能虚拟处理器发送启动讯号至前侧总线命令处理器(FSB CommandHandler)。
1b:前侧总线发送重置(restset)指令至高性能x86。
步骤2:
2a:前侧总线命令处理器向周边状态维持器(PSM本身可作为x86处理器的BIOS)请求必要系统信息。
2b:在启动高性能x86时,前侧总线命令处理器提供必要信息给高性能x86处理器。
步骤3-1:间接存取
3-1a:高性能x86传送前侧总线命令以进行间接存取。
3-1b:低耗能虚拟处理器扮演一代理服务器(Proxy)的角色,且执行高速x86间接存取命令。
步骤3-2:直接存取
3-2a:高性能x86传送前侧总线命令以进行直接存取。
3-2b:周边状态维持器监控直接存取。
模式C:
图18描绘仅启动高性能x86处理器的运行顺序。若异质电脑系统只启动高性能x86,则此模式可作为预设的模式,且可经由纯硬件来加以实现,不需要韧体的控制。
步骤1
1a:高速数据交换器(High-speed Data Switch)将模式重设,以作为一分流混合桥接子系统(Bypass hybrid bridge sub system)。(如果异质性电脑系统先/仅启动高性能x86,这可作为预设模式,且能以纯硬件来实现,不需要韧体的控制。)
步骤2
2a:正常地启动高性能x86。
模式D:
图19描绘于高性能x86系统被启动后,启动虚拟处理器系统的运行顺序。
步骤1
1a:周边状态维持器将其信息与BIOS同步。
1b:周边状态维持器更新周边装置清单及对应表。
步骤2
2a:启动低耗能虚拟处理器,对连接至内部总线的周边装置进行初始化,并对中断服务进行初始化。
步骤3
3a:周边状态维持器发送IRQ至低耗能虚拟处理器。
3b:低耗能虚拟处理器开始提供周边装置的维持服务。
步骤4
4a:低耗能虚拟处理器通知并请求桥接逻辑单元接管系统服务。
D:用于异质性电脑系统的超级作业系统
由电脑软件的角度观之,本发明的异质性电脑系统的一种实现方式于软件系统的异质性虚拟层执行x86(例如:Windows或Linux)及ARM(例如:Android)作业系统的原始版本。此异质性虚拟层的功能便是使在本发明的电脑系统上执行的二个运行中的作业系统能够共存,并使二个系统所对应的环境中所运行的应用程序能进行无缝地联。
为达此目的,针对各种能执行于x86-ARM异质性电脑系统的常用的作业系统,数种异质虚拟层(Layer)电脑软件的实验版本已被发展出来且已测试成功。目前异质虚拟层的版本涵盖x86架构的Windows及ARM的Android,且已经通过测试。这些经测试过的异质性虚拟层电脑软件的修正版本,从字面上来说,可称之为一超级作业系统,可让ARM及x86处理器能平行地于整个异质性电脑系统的电脑硬件运作,且在二个不同作业系统上执行的应用程序能彼此支援。
因此,二个不同的作业系统能在本发明的异质性电脑系统上被同时地启动及执行,各自支援其本身应用程序。一个作业系统的应用程序甚至能在其他的作业系统里执行,且二个不同作业系统中的应用程序能够彼此直接地及无缝地互相沟通。
图20描绘用于本发明异质性电脑系统的超级作业系统的示意图。本发明的超级作业系统可以取代传统的作业系统,例如Windows、Linux、Solaris及用于智慧型移动装置的Android,这些习知的作业系统能作为超级作业系统的「子作业系统」。运作于超级作业系统下时,这些传统的作业系统不需要被改变。对这些作业系统而言,他们所赖以执行的异质性电脑系统硬件与传统x86体并无不同。一旦超级作业系统启动于异质性电脑系统上,二种不同的作业系统能够同步地存在于相同的电脑硬件上,并同时无缝地支援二个作业系统上的多个电脑软件应用程序,并允许交换彼此之间的数据。
为建构超级作业系统,必须在作业系统层及硬件层之间开发一异质性虚拟层,且此异质性虚拟层需横跨二种作业系统。经由本发明的异质性电脑系统的软件架构,无缝且跨作业系统的电脑软件应用程序确实可行。举例而言,Windows Word可以直接在x86硬件中的Windows作业系统来执行,或是通过异质性虚拟层内的虚拟运算来使ARM执行。达成此目的后,现有的电脑软件技术,例如开放原始码的虚拟运算技术便能被加以使用。
图21-24分别描绘图8-12的本发明异质性电脑系统的操作模式的示意图,其能支援无缝的跨作业系统电脑软件应用程序。图20所绘示的超级作业系统能以4种模式加以启动并部署自己,这4种模式包含:
模式A:只有低耗能虚拟处理器系统被启动。
模式B:于虚拟处理器系统被启动后,启动高性能x86处理器。
模式C:只有高性能x86处理器系统被启动。
模式D:于高性能x86系统被启动后,启动虚拟处理器系统。
图21描绘仅启动虚拟处理器作业系统的运行程序。此模式仅会操作适用于虚拟处理器的软件应用程序。启动程序使本发明的异质性电脑系统处于准备好的状态,使软件应用程序,例如Android或Linux,能被执行。启动程序包含:
1.打开虚拟处理器(ARM)的电源。
2.桥接单元对所有直接连接至其本身的周边装置(例如:工作用的RAM)进行初始化,此用来与其他连接至x86芯片组的南桥的电脑周边装置进行区别。
3.虚拟处理器(ARM)载入启动载入器。
4.启动载入器载入异质性虚拟层Part-A。
5.异质性虚拟层Part-A载入作业系统1
图22描绘于虚拟处理器作业系统被启动后,启动高性能x86处理器作业系统的运行程序。此模式会操作适用于虚拟处理器及高性能x86处理器作业系统的电脑软件应用程序。启动程序使本发明的异质性电脑系统处于准备好的状态,因此,同步及无缝的跨作业系统的应用程序能被实现。启动程序包含:
1.打开虚拟处理器的电源。
2.桥接单元对所有直接连接至其本身的周边装置进行初始化。
3.虚拟处理器(ARM)载入启动载入器。
4.启动载入器载入异质性虚拟层Part-A。
5.异质性虚拟层Part-A载入作业系统1
6.异质性虚拟层Part-A打开高速x86的电源。
7.高速x86载入异质性虚拟层Part-B。
8.异质性虚拟层Part-B载入作业系统2
图23描绘仅启动高性能x86处理器作业系统的运行程序。启动程序包含:
1.打开高性能x86的电源。
2.桥接单元作为一分流混合桥接子系统。
3.高性能x86载入BIOS、EFI或UEFI。
4.高性能x86载入异质性虚拟层Part-B。
5.异质性虚拟层Part-B载入作业系统2
图24描绘于高性能x86处理器作业系统被启动后,启动虚拟处理器作业系统的运行程序。此模式操作适用于虚拟处理器及高性能x86处理器作业系统的电脑软件应用程序。启动程序始本发明的异质性电脑系统处于准备好的状态,因此,同步及无缝跨作业系统的软件应用程序确实能被实现。启动程序包含:
1.打开高性能x86的电源。
2.桥接单元作为一分流混合桥接子系统。
3.高性能x86载入BIOS、EFI或UEFI。
4.高性能x86载入异质性虚拟层Part-B。
5.异质性虚拟层Part-B载入作业系统2
6.桥接单元(周边状态维持器)与BIOS同步,且对所有连接至其本身的周边装置,除x86芯片组外,进行初始化。
7.异质性虚拟层Part-B打开虚拟处理器的电源。
8.虚拟处理器载入启动载入器。
9.启动载入器载入异质性虚拟层Part-A。
10.异质性虚拟层Part-A通知异质性虚拟层Part-B接管虚拟服务。
11.异质性虚拟层Part-A载入作业系统1
12.作业系统1接管系统所提供的服务。
上述内容仅为多个具体实施例的完整描述,本发明亦涵盖其他各种修改、替代架构及具有相对应功能的系统。因此,上述内容及图式不应用来限制本发明的范围。

Claims (11)

1.一种用于一异质性电脑系统的桥接逻辑装置,所述桥接逻辑装置用于该异质性电脑系统,以执行一电脑软件,其特征在于,该异质性电脑系统包含至少一高性能处理器、一处理器支援逻辑单元及一虚拟处理器,该处理器支援逻辑单元支援该至少一高性能处理器执行该电脑软件的任务,该虚拟处理器较该至少一高性能处理器省电,所述桥接逻辑装置包含:
一虚拟处理器操作逻辑单元,于该至少一高性能处理器的控制下,维持该系统的状态;
一处理器语言转换逻辑单元,于该至少一高性能处理器及该虚拟处理器所使用的处理器语言之间进行转换;
一高速总线切换器,具有一第一、第二及第三埠,用以跨越该第一、第二及第三埠的任二埠进行双向的数据转发,该高速总线切换器以该第一埠与该至少一高性能处理连接、以该第二埠通过该处理器语言转换逻辑单元与该虚拟处理器连接,且以第三埠与该处理器支援逻辑单元连接。
2.如权利要求1所述的桥接逻辑装置,其特征在于,该虚拟处理器于该处理器支援逻辑单元的支援且于该高速总线切换器跨越地连接该第二埠及该第三埠的情形下,利用由该处理器语言转换逻辑单元转换而来的本机语言,执行该虚拟处理器有足够电力执行的该电脑软件的任务,并使该至少一高性能处理器处于一省电状态。
3.如权利要求1所述的桥接逻辑装置,其特征在于,该虚拟处理器使用该维持的系统状态,且于该高速总线切换器跨越地连接该第一埠及第三埠的情形下,使该至少一高性能处理器脱离该省电状态以执行该虚拟处理器未具足够电力执行的该电脑软件的任务。
4.如权利要求1所述的桥接逻辑装置,其特征在于,该至少一高性能处理器及该虚拟处理器于该高速总线切换器跨越地连接对应的该第一埠、第二埠及第三埠的情形下,同步地执行需要全部处理器的电力执行的该电脑软件的任务。
5.如权利要求1所述的桥接逻辑装置,其特征在于,该处理器语言转换逻辑单元更包含:
一周边中断请求控制器,用以控制附属于该异质性电脑系统的周边装置之中断请求;
一周边状态表,用以保留该等周边装置的状态;以及
一周边状态维持器,用以基于该周边中断请求控制器的控制,更新保留于该周边状态表的状态。
6.如权利要求1所述的桥接逻辑装置,其特征在于,该虚拟处理器操作逻辑单元更包含:
一前侧总线指令处理器,用以监控被该至少一高性能处理器为维持该系统状态所执行的电脑指令;以及
一总线封装器,用以于该至少一高性能处理器及该虚拟处理器所使用的语言间进行转换,以允许该虚拟处理器直接存取该处理器支援逻辑单元以执行该电脑软件的任务。
7.如权利要求1所述的桥接逻辑装置,其特征在于,各该至少一高性能处理器及该虚拟处理器一x86处理器且被配置于同一半导体芯片上。
8.如权利要求1所述的桥接逻辑装置,其特征在于,各该至少一高性能处理器一x86处理器,该虚拟处理器一ARM处理器,且该至少一高性能处理器及该虚拟处理器被配置于同一半导体芯片上。
9.如权利要求1所述的桥接逻辑装置,其特征在于,该桥接逻辑装置被配置于一独立的半导体芯片上。
10.如权利要求1所述的桥接逻辑装置,其特征在于,该桥接逻辑装置及该虚拟处理器被配置于同一半导体芯片上。
11.如权利要求1所述的桥接逻辑装置,其特征在于,该桥接逻辑装置、该虚拟处理器及该至少一高性能处理器被配置于同一半导体芯片上。
CN2011104083160A 2011-06-08 2011-11-29 用于一异质性电脑系统的桥接逻辑装置 Pending CN102819291A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161494587P 2011-06-08 2011-06-08
US61/494,587 2011-06-08

Publications (1)

Publication Number Publication Date
CN102819291A true CN102819291A (zh) 2012-12-12

Family

ID=45444284

Family Applications (4)

Application Number Title Priority Date Filing Date
CN2011104083438A Pending CN102819292A (zh) 2011-06-08 2011-11-29 异质性电脑系统
CN201110408326.4A Active CN102819312B (zh) 2011-06-08 2011-11-29 用于一异质性电脑系统的超级作业系统
CN2011104083160A Pending CN102819291A (zh) 2011-06-08 2011-11-29 用于一异质性电脑系统的桥接逻辑装置
CN201110408300XA Pending CN102819311A (zh) 2011-06-08 2011-11-29 操作一异质性电脑系统的方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN2011104083438A Pending CN102819292A (zh) 2011-06-08 2011-11-29 异质性电脑系统
CN201110408326.4A Active CN102819312B (zh) 2011-06-08 2011-11-29 用于一异质性电脑系统的超级作业系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201110408300XA Pending CN102819311A (zh) 2011-06-08 2011-11-29 操作一异质性电脑系统的方法

Country Status (6)

Country Link
US (4) US9098287B2 (zh)
JP (4) JP2012256306A (zh)
KR (4) KR20120136271A (zh)
CN (4) CN102819292A (zh)
GB (4) GB2491666A (zh)
TW (4) TWI453580B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105247486A (zh) * 2013-05-23 2016-01-13 瑞萨电子株式会社 多cpu系统及多cpu系统的调整方法

Families Citing this family (11)

* 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
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
WO2015167563A1 (en) * 2014-04-30 2015-11-05 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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20100005474A1 (en) * 2008-02-29 2010-01-07 Eric Sprangle Distribution of tasks among asymmetric processing elements

Family Cites Families (37)

* 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
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
US20020173344A1 (en) * 2001-03-16 2002-11-21 Cupps Bryan T. Novel personal electronics device
US20030153353A1 (en) * 2001-03-16 2003-08-14 Cupps Bryan T. Novel personal electronics device with simultaneous multi-processor operation
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 宏碁股份有限公司 电脑系统的电源管理系统及方法
WO2006013857A1 (ja) * 2004-08-05 2006-02-09 Matsushita Electric Industrial Co., Ltd. 情報処理装置
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
WO2007081218A1 (en) 2006-01-10 2007-07-19 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
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 ブラザー工業株式会社 通信装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20100005474A1 (en) * 2008-02-29 2010-01-07 Eric Sprangle Distribution of tasks among asymmetric processing elements

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105247486A (zh) * 2013-05-23 2016-01-13 瑞萨电子株式会社 多cpu系统及多cpu系统的调整方法
CN105247486B (zh) * 2013-05-23 2019-05-21 瑞萨电子株式会社 多cpu系统及多cpu系统的调整方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN102819312B (zh) 用于一异质性电脑系统的超级作业系统
EP1996993B1 (en) Dual mode power-saving computing system
CN104024980B (zh) 连接的待机睡眠状态
US20160299559A1 (en) Power efficient processor architecture
US8938568B2 (en) Multi-processor electronic systems
CN102566739A (zh) 多核处理器系统及其动态电源管理方法与控制装置
WO2004061686A2 (en) Mechanism for processor power state aware distribution of lowest priority interrupts
CN102736595A (zh) 一种基于32位微处理器和rtos的智能配电终端统一平台
CN109564526A (zh) 使用封装和线程提示信息的组合来控制处理器的性能状态
CN102117099A (zh) 一种计算机内置式网络存储装置
CN101639814B (zh) 面向多核平台和网络化操作系统的输入输出系统及方法
US10860083B2 (en) System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
CN201622521U (zh) 一种带内置式网络存储装置的计算机

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20121212