用于固件虚拟化的方法和装置与流程

文档序号:14685979发布日期:2018-06-14 22:27

本发明的实施方式一般涉及用于固件虚拟化的方法和装置。



背景技术:

在电子系统和计算中,固件是永久存储器与存储在存储器中的程序代码和数据的组合。包含固件的设备的典型实施例是嵌入式固件系统(例如,交通灯、消费者电器和数字手表、计算机、计算机外设、数字照相机等)。包含在这些设备中的固件提供了用于设备的控制程序。固件典型地被保持在常被嵌入设备中的非易失性存储设备(例如,ROM、EEPROM或闪存)中。设备的固件可能在其经济寿命期间几乎不会或绝不会进行更换。一些固件存储器设备被永久安装并且在制造之后不能被更换。更新固件的通常原因包括在设备为用户可用之后修复错误或向设备添加特征。这可能需要物理更换ROM集成电路或用需要擦除和替换存储在固件中的所有指令的特殊程序重新编程闪存。诸如个人计算机的ROMBIOS的固件可仅包含设备的基础单元功能并且可仅向更高级软件提供服务。诸如嵌入系统存储器的程序的固件可以仅是运行在系统上且提供其所有功能的程序。

然而,网络连接性和基于CLOUD的部署的扩散已经改变的应用/软件被虚拟化的方式。网络连接的设备能够经由互联网闪现或安装固件更新。然而,更新需要被限制于嵌入式存储器的尺寸并且常常需要手动发起、重启设备、闪现固件ROM、下载时间、以及其它中断电子设备操作的不便步骤。

因此,本领域需要固件虚拟化以更快部署新固件和扩展固件能力。



技术实现要素:

本发明的实施方式一般涉及用于用户设备的固件虚拟化的方法、装置,其使用对远程存储的固件的调用以执行远程进程并且将进程的结果返回用户设备固件,其中其在至少一个附图中基本示出并结合至少一个附图进行了描述以及在权利要求中进行了更完整的阐述。

本公开的这些和其它特征和优点可通过结合附图回顾本公开的以下详细描述来理解,在全文中相似的附图标记指示相似的组件。

附图说明

因此本发明的上述特征可被详细理解的方式、上面简要概括的本发明的更具体的描述可参考实施方式得到,其中一些实施方式在附图中示出。然而,应注意,附图仅示出了本发明的典型实施方式,因此不被认为限制本发明的范围,本发明可准许其它同等有效的实施方式。

图1是根据本发明的一个或多个实施方式的固件虚拟化系统的图示;

图2是根据本发明的一个或多个实施方式的固件虚拟化系统的图示;

图3是根据本发明的一个或多个实施方式的使用与用户设备的嵌入式固件通过接口连接的图2中公开的虚拟化固件提供者的概述方法的流程图;

图4是根据本发明的一个或多个实施方式在平台上生成虚拟化固件的方法的流程图;

图5是根据本发明的一个或多个实施方式的使用虚拟化固件平台的用户设备的独立操作的方法的流程图;以及

图6是根据本发明的一个或多个实施方式的示例性计算服务器内的模块的框图。

具体实施方式

在下面描述的实施方式中,“进程”指存储在执行计算机(例如,服务器、个人计算机、移动设备等)上的随时可运行的代码基或预生成的用于函数的进程代码。每个进程通过名称、进程ID、图标、或标识进程功能的其它标识符被集成开发环境(IDE)的用户唯一识别。进程包括在用户设备的嵌入式固件之间通信的固件数据。执行是指进程在计算机(本地或远程、或基于CLOUD)上的启动。部署是发送或存储在晚些时候根据条件被执行的最终代码。“包”指通过公共属性(API名称、公共参数、SDK、参数名称、远程服务等)组织的进程的集合。函数(例如,进程)是用于呈现给用户描述与进程相关联的代码操作的描述性术语和/或图像。在一些时候方式中,函数可包括进程代码。

“固件”指存储在嵌入于用户设备中的非易失性存储器中的代码,其包括用于基本函数的代码以向更高级软件提供服务。如下面所讨论的,用户设备是能够连接至远程服务器以访问虚拟化固件的电子设备。用户设备的非限制性实施例包括笔记本电脑、平板电脑、蜂窝电话、计算机、电器、游戏系统、打印机、扫描仪、外设、电动车、处理器、微控制器和存储有固件的其它电子设备。

本文公开的实施方式涉及远程服务器或服务器组(即,“CLOUD中”)上的固件库,其中用户设备可远程选择或自动连接至远程服务器以从用户设备上的固件访问进程。在一些实施方式中,远程进程调用被下载和安装到用户设备的固件中用于从用户设备直接调用远程服务器上的进程。计算平台包括硬件体系结构和软件框架(包括应用程序框架),其中它们的结合允许软件运行。典型的平台包括计算机体系结构、操作系统和运行时库。

图1是根据本发明的一个或多个实施方式的固件虚拟化系统100的图示。系统100包括至少一个用户设备(102a…102n)、网络110和至少一个远程服务器(104a…104n)。至少一个用户设备(102a…102n)被统称为用户设备102,包括能够存储和执行程序的电子设备,例如个人计算机、外设、电器、游戏系统、服务器、虚拟服务器、微控制器(MCU)和控制器、传感器、致动器、与网关连接的边缘设备、专用集成电路(ASIC)、微处理器和处理器、蜂窝电话、智能电话、平板电脑、笔记本电脑等。

每个用户设备(102a…102n)包括相应的存储器(112a…112n),存储器(112a…112n)存储嵌入的固件(103a…103n)以及连接和认证到网络110以连接至至少一个远程服务器(104a…104n)所必要的代码。固件利用连接代理便于连接至网络110和远程服务器104。

网络110可包括诸如局域网(LAN)、广域网(WAN)、无线局域网WLAN、蜂窝网、Wi-Fi、因特网或内联网的有线和/或无线网络中的至少一个或组合。至少一个远程服务器(104a…104n)可包括远程应用服务器、网页服务器、邮件服务器、主机服务器、数据库服务器、存储服务器等。

至少一个远程服务器(104a…104n)包括远程固件虚拟化平台(下文“平台”)108和存储器(114a…114n)以通过使用固件集合120、设备概要文件122和执行引擎124存储和执行用于虚拟化固件的具体进程调用。设备概要文件122可包括关于用户设备的附加信息(例如,固件更新历史、已知错误、扩展、库等。

存储器114a…114n还可存储用户接口模块、用户概要文件/账户的数据库、进程集合(即,进程库)、SDK和相关联的参数以跨网络110上的其它服务器(104n)链接和执行进程。

如下面进一步讨论的,执行引擎124基于虚拟化固件和从用户设备102接收的固件数据部署远程进程。在远程进程调用被存储在用户设备102的固件中的实施方式中,执行引擎124通过关联被调用的识别例程以及通过使用固件参数和调用参数运行/执行进程,处理对进程库中的例程的调用。调用参数存储在用户设备102a或远程服务器104a上,在一些实施方式中经由与用户设备102a的固件的交互(例如,经由图形用户界面或按钮按下)由用户直接指定。进程调用参数从来自用户设备102a的固件数据通信解析得到。在一些实施方式中,执行引擎126可在将进程结果返回用户设备102a的固件之前将输出发送至另一进程调用或存储在远程服务器104上的源进程调用。

图2是根据本发明的一个或多个实施方式的固件虚拟化系统200的图示。系统200包括用户设备102n、固件虚拟化的固件平台108和虚拟化固件服务(2021…202N)。用户设备102n至少包括CPU203N、支持电路204N以及包含指令和算法的存储器112n。CPU203N处理用户设备102n的输入和输出。CPU203N可以是市场上可买到的处理器、微处理器、微控制器等。在其它实施方式中,CPU203N是微控制器,例如PIC。支持电路204N包括向CPU203N提供例如时钟电路、网络通信、缓存、电源、I/O电路等功能的公知电路。替换实施方式可使用定制专用集成电路(ASIC)上的控制算法。

存储器112n可以是用于存储数据和可执行软件的任意形式的数字存储。这种存储器包括但不限于随机存取存储器、只读存储器、磁盘存储、光存储等。存储器112n存储与接口211N、嵌入式固件215N和网络连接管理器220N对应的计算机可读指令。

在一些实施方式中,用户接口211N包括键盘、电子按钮、扬声器、触摸屏、显示器、或其它用户交互机构。在一些实施方式中,用户接口211N可与嵌入式固件215N通信使得用户可与用户设备102n交互。

嵌入式固件215N包括用于用户设备102n操作的指令。在一些实施方式中,嵌入式固件215N可以是用于执行以更高级语言写的程序的基本指令集。在其它实施方式中,嵌入式固件215N可以是可执行程序。嵌入式固件215N与网络连接管理器220N通信使得嵌入式固件可耦接至外部虚拟化固件服务(2021…202N)。嵌入式固件215N还包括允许用户设备102n的绝大部分基本输入信号和输出信号可用于通过网络连接管理器220N通信的代码。在用户设备102n为打印机的实施例中,嵌入式固件215N选择性地允许用于按钮、指示器(例如LED)、显示屏的固件数据、或缓存的打印文件数据被传输至网络连接管理器220。

网络连接管理器220N准备用于从用户设备102n传送的固件数据,以及接收来自虚拟化固件平台108的固件数据。网络连接管理器220N可经由有线或无线网络耦接并且起网桥作用以访问网络110和平台108。

虚拟化固件平台108编码和解码去往和来自网络连接管理器220N的信号。虚拟化固件平台108包括至少一个虚拟固件提供者(VFP)202N,虚拟固件提供者(VFP)202N被统称为VFP202。VFP202包括虚拟化固件库102N、执行引擎124N、设备认证模块228N、固件虚拟化模块230N、进程扩展模块235N和设备概要文件数据库122N。在一些实施方式中,虚拟化固件平台108包括与其它VFP202一起执行进程的代码、以及调用经典服务组件(CSC)2101…210N提供的远程服务和与其通过接口连接的代码。

设备认证模块228N通过比较固件与存储在虚拟化固件库120N和/或设备概要文件122N中的虚拟化固件确定用户设备102n的嵌入式固件。在一些实施方式中,设备概要文件122N还包括用户账户信息以及虚拟化固件定制的偏好和基于偏好的虚拟化固件的执行。例如,用户账户偏好可规定当与固件和用户的所有权匹配的打印机连接至虚拟化固件平台108时,PDF文档被生成并且被邮寄至被打印的每份文档的指定用户邮件账户。例如邮件账户的邮寄地址的账户信息可被存储为用户账户的一部分。

在一些实施方式中,设备认证模块228N验证与对应于特定CSC210的特定用户账户的虚拟化固件服务(2021...202N)相关联的令牌和证书。例如,设备认证模块228N还可检索存储的邮件证书以登录到CSC210,即POP3邮件服务器,以基于来自进程扩展模块235N的进程执行发送邮件进程。

固件虚拟化模块230N处理来自用户设备102n的固件数据并且生成虚拟化固件。为了生成虚拟化固件,固件虚拟化模块230N接收(例如,来自用户设备102n的软件开发者或制造商的)固件。固件指令和参数被解析。参数的值的来源基于值源自用户设备102n、来自VFP202的进程、或CSC210提供的服务被确定。参数还被检查以确定与固件中的其它参数的相对关联性。参数然后被分配和链接至对应的数据来源。固件的链接和关联格式被存储为虚拟化固件库120N中的虚拟化固件指令集。

在一些实施方式中,虚拟化固件库120N包括用于用户设备102n的更新的固件指令。通过包括最新的固件版本,开发者可快速分发和确定被部署在用户设备102上的固件版本而不需要在用户设备102n上安装新固件。换句话说,用户设备102n可通过网络110在扩展嵌入式固件215N能力的虚拟化固件上操作。如下面进一步详细讨论的,在网络110不可用期间,用户设备102与安装有固件的工厂合作直到网络110和虚拟化固件再次可用。

进程扩展模块235N与固件虚拟化模块230N协调以执行平台108提供的虚拟化固件和被部署在CSC210上的服务之间的处理。进程扩展模块235N协调虚拟化固件参数和参数值来源的链接以执行由用户或设备概要文件122N中的开发者指定的进程。进程扩展模块235N还生成代码以链接固件与相应的API和SDK来实现CSC210所必要的特定进程。例如,打印机(即,用户设备102n)可具有制造商编程的取消和删除当前文件的打印机缓存的“取消打印”按钮。如平台108上的进程所规定的,以及通过使用虚拟化固件,按两次同一个按钮可触发打印机将打印机缓存数据发送至VFP202以随后提取缓存数据并且生成文件的数字PDF图像。PDF图像然后被邮寄至存储器设备概要文件122N中的邮件地址。因此,扩展打印机的固件能力而不需要修改或要求嵌入式固件215N的附加处理。

CSC210被云客户205N虚拟化并且与平台108通过接口连接,使得进程被部署在CSC210上。在一些实施方式中,CSC210经由网络110通信地耦接至平台108。CSC210N包括远程接口206N、应用层208N、虚拟化层212N和物理装备214N。每个CSC210代表由平台108提供的特定远程服务。例如,CSC210N可以是因特网服务和相应的服务器(例如,FACEBOOK、EBAY、POP3邮件、TWITTER、AMAZON、SMS、FTP、HTTP等),CSC2102可以是提供传统本地数据信息处理(例如,图像渲染、代码编译、数据分析、数据存储等)的计算机。

物理装备214N或机器(CPU、存储器、网络路由器等)在虚拟化层212N被虚拟化以进行处理并存储应用层208N可用的资源。虚拟化在单个计算机中建立了冗余和增加的操作带宽,在多个机器被虚拟化的实施方式中更甚。在这些实施方式中,处理工作量也可基于物理位置的优先级和独立性被分配给各个装备。

应用层208N允许虚拟化机器上的诸如数据库操作(例如,存储账户档案、入库数据等)的程序和功能的执行运行时间。远程接口层206N包括代码以访问网页服务器和利用API。远程接口层206N与云客户205N(例如,瘦客户、网页浏览器、移动应用程序、终端仿真器程序等)通信。

云客户205N便于去往和来自的VCP245的数据与应用层2081的通信。云客户205N通过呈现网页浏览器、终端仿真器或其它客户界面简化了层接口2061、2081、2121和2151。本发明的上述实施方式可利用云客户205以通过使用虚拟化固件便于基于来自用户设备102n的固件数据的远程进程调用代码生成。虚拟化固件将VFP202生成和提供的进程调用链接至应用层208N。

在一些实施方式中,虚拟化固件平台108可包括扩展嵌入式固件215能力的附加代码库。例如,如果用户设备102n是数字视频记录仪(DVR),则DVR嵌入式固件包括用于记录的电视节目的远程网络存储的网络连接管理器220N。在该实施例中,嵌入式固件215N包括仅与远程平台108通信的指令。远程平台108的VFP202随后处理固件数据以通过使用虚拟化固件平台108接收视频并协调网络110上的额外和/或冗余存储,重定向来自嵌入式固件215N的记录。在另一实施例中,VFP202可包括虚拟化固件以独立地调谐至频道来存储用于在机顶盒触发下记录的频道。在该实施例中,机顶盒嵌入式固件215N发送触发参数并且记录进程被传递至VFP202使得机顶盒固件具有扩展能力作为DVR。

图3是根据本发明的一个或多个实施方式的使用与用户设备102N的嵌入式固件215N通过接口连接的图2中公开的虚拟化固件提供者的概述方法300的流程图。

方法300从步骤305开始,并且继续进入步骤310。在步骤310,用户设备102N接收输入的固件数据。固件数据包括用户输入的数据以及用于远程服务器104N提供的进程的参数。固件数据还包括设备操作数据、处理器指令和来自外设的被转换为数字信号的模拟信号(例如,传感器数据、开关、按钮等)。

接下来,在步骤315,方法300协调嵌入式固件215N与连接代理(例如,网络连接管理器220)以将固件数据传送至平台108。方法然后继续进入步骤320。在步骤320,远程服务器104N上的平台108认证用户设备102N。认证包括验证在用户设备102N上操作的固件以及与用户设备102N相关联的预定的用户概要文件。

在步骤325,方法300将嵌入式固件215N匹配至存储在虚拟化固件库120N中的相应虚拟化固件。在图4中进一步描述了用于对应用户设备102的固件的虚拟化。在任选实施方式中,方法300可继续进入步骤335,在步骤335,发送网页链接或远程进程调用并将其存储在嵌入式固件215N中。在该实施方式中,用户设备102N存储指令以直接触发远程服务器104上的进程的远程进程调用,并且不需要协调步骤315。待存储的远程进程的类型由远程服务器104上的虚拟化固件的用户或软件开发者指定。

在步骤330,将来自用户设备102N的固件数据解析为对应的参数并且根据上下文被映射到虚拟化固件。因此,源自用户设备的特定输入或输出的参数被分配到相应的虚拟化固件。例如,指示电视电源灯为开的嵌入式固件参数由此被关联至虚拟化固件中的等效参数。

替换实施方式包括预解析固件数据并且仅将一部分(即,参数)传送给远程服务器104N。在该实施方式中,基于步骤325中的映射将预解析的固件数据分配给等效的虚拟化固件。

在步骤340,基于步骤325和330的匹配和映射将解析的固件数据插入虚拟化固件。接下来,在步骤345,平台108基于虚拟化固件和从用户设备102N接收的固件数据执行远程进程。

在步骤350,平台将进程部署到相应的CSC210。继续该实施例,用户可指定平台108上的进程以在电视电源灯为开时向他们的蜂窝电话发送SMS文本消息来监视他们家的电视观看情况。在该实施例中,固件数据为电视的电源灯,其由虚拟化固件解释且随后触发执行代码以在SMS服务器(即,CSC210)上发送SMS消息的进程。文本消息包括TV使用的通知,并且被发送给基于与用户账户相关联的数据在进程中定义或存储在远程服务器104上的用户蜂窝电话的指定的电话号码。

在步骤355,将来自CSC210的处理结果数据返回给平台108。结果数据包括进程已经被成功部署的确认信号。另外,结果数据包括主动收听和接收来自CSC210的附加响应。继续该实施例,平台108收听来自用户的蜂窝电话号码的SMS文本消息以及文本消息的内容。用户因此可编辑与用户概要文件一起存储在远程服务器104N上的预定进程命令以控制电视监视:例如电源开、电源关、重置观看计时器等。

在步骤360,基于虚拟化固件库和远程进程参数转换从CSC接收的数据。VFP202还利用相应的API和SDK生成对用户设备102的嵌入式固件215N而言为本地的代码或信号。

在步骤365,通过连接代理接收结果数据并且将其传送至嵌入式固件215N以完成远程进程的执行。接收的数据因此为嵌入式固件215N的本机语言使得用户设备102N操作为就像远程进程数据源自嵌入式固件215N且由其生成一样。方法300然后在步骤370结束。

图4是根据本发明的一个或多个实施方式的在平台108上生成虚拟化固件的方法400的流程图。用于用户设备的每个固件版本被单独存储在远程服务器104上。另外,固件版本可包括具有修改参数的多个子迭代以便于用于所提供的各个服务的远程进程的执行。

方法从步骤405开始并且继续进入步骤410。在步骤410,从软件开发者或用户接收固件集。接下来,在步骤415,比较固件与之前通过VFP202接收且存储的固件。比较减少了存储在远程服务器104上的相同固件的非必要副本的数量。在步骤420,如果方法400确定固件已经被虚拟化,则方法400在步骤445结束。然而如果固件不同或是预先存在的虚拟化固件的修改,则方法400进入步骤425。

在步骤425,将固件指令解析为对应的变量参数。解析是基于参数的上下文映射(即,一个参数值如何与另一参数相关)进行的。还关于给定参数代表的上下文解析参数。例如,对于扫描仪的固件,解析和识别来自某一引脚的信号是否代表启动按钮的物理按钮按下被接收到的参数值用于远程进程。

接下来在步骤430,方法400确定具体参数值的来源。参数值可由用户输入、在用户设备102的操作期间生产、存储在用户设备的特定存储块中、与设备的用户概要文件一起存储在远程服务器104上、或者从远程源(例如,CSC210)接收。

在步骤435,将参数分配给相应值来源。分配包括将参数链接至网络参数以使固件收听来自进程的固件数据或路由数据用于插入固件中。

在步骤440,将固件存储为虚拟化固件库120N中的虚拟化固件指令集。如上所述,库为平台108可用以执行远程进程并且确保更新的固件工作在给定用户设备上。方法400然后在步骤445结束。

在一些实施方式中,虚拟化固件以实时执行被调用和操作,并且嵌入式固件命令与远程固件集成,经由用户接口211提供虚拟化固件的实时执行。实时执行可包括远程进程调用和远程服务器104a上更新的服务的询问或命令的解码使得除了比如当用户设备102n被开发时提供的服务以外的在用户设备102n之后开发的服务可被调用。例如,可向用户呈现对电视上的按键远程赋值的选项以发用户正在看哪个节目的TWEET。虚拟化固件平台108允许发送TWEET而不管TWITTER社交服务器在远程控制之后被开发的事实。因此,固件能力受限于虚拟化固件平台108所提供的能力,不纯受限于用户设备102n上嵌入式固件215的能力。

图5是根据本发明的一个或多个实施方式的使用虚拟化固件平台108的用户设备102N的独立操作的方法500的流程图。方法500是处理实例的示例性方法,其中用户设备可不访问虚拟化固件平台108。方法500从步骤505开始并且继续进入步骤510,在步骤510,连接管理器220确定网络连接中断或不可用。任选地,在步骤515,方法500可通知用户断开的连接和减少的固件能力。接下来,在步骤520,用户设备102N工作在减少的指令集。在一些实施方式中,减少的嵌入指令集是用户设备102N的默认固件指令集。在步骤520,用户设备102N嵌入式固件以不需要由嵌入式固件执行的虚拟化固件的能力工作。

在步骤525,用户设备102N建立和存储需要虚拟化固件功能和查询的能力队列。方法500继续进入步骤530以确定如果与远程服务器104N的连接可用则返回步骤525创建队列列表直到有连接。如果连接可用,则方法500继续进入步骤535,将存储的查询传递至远程服务器104N以访问虚拟化固件平台108。

接下来在步骤540,解码和解析传递的查询用于远程服务器104N上的远程进程。在步骤545,方法执行、部署和返回来自远程服务的结果数据,如上面在方法300中描述的。方法500然后在步骤550结束。

本文公开的方法是实现图1的系统100的示例性方法的实施例并且不对范围造成限制。附加的实施方式可包括所公开的各个方法的步骤的次序颠倒或组合执行的方法步骤。

图6是根据本发明的一个或多个实施方式的示例性计算服务器内的模块的简化框图。计算机系统600包括与前述实施方式中的结构基本类似的包括服务器和电子设备的结构。

用于虚拟化固件的方法和装置的各个实施方式。一个这种计算机系统是图6所示的计算机系统600,计算机系统600可在各个实施方式中实现图1至图5中所示的任一元件或功能。在各个实施方式中,计算机系统600可被配置为实现上述的方法。计算机系统600可用于实现上述实施方式的任意其它系统、设备、元件、功能或方法。在所示实施方式中,计算机系统600可被配置为在各个实施方式中作为处理器可执行的可执行程序指令622(例如,处理器610可执行的程序指令)实现方法300、400和500。

在所示实施方式中,计算机系统600包括经由输入/输出(I/O)接口630耦接至系统存储器620的一个或多个处理器610a-610n。计算机系统600还包括耦接至I/O接口630的网络接口640、以及一个或多个输入/输出设备660,例如光标控制设备660、键盘670和显示器680。在一些实施方式中,键盘670可以是触摸屏输入设备。

在各个实施方式中,任一组件可由系统利用以虚拟化如上所述的固件。在各个实施方式中,用户接口可在显示器680上生成和显示。在一些情况下,可想到,实施方式可使用计算机系统600的单个示例实现,而在其它实施方式中多个这种系统、或构成计算机系统600的多个节点可被配置为主持各个实施方式的一部分或示例。例如,在一个实施方式中,一些元件可经由计算机系统600的一个或多个节点实现,所述一个或多个节点不同于实现其它元件的节点。在另一实施方式中,多个节点可以分布式实现计算机系统600。

在不同的实施方式中,计算机系统600可以是包括但不限于个人计算机系统、主框架计算机系统、手持式计算机、工作站、网络计算机、应用服务器、存储设备、外设(如变换器、调制解调器、路由器)、或通常任意类型的计算或电子设备的多种类型的设备中的一种。

在各种实施方式中,计算机系统600可以是包括一个处理器610的单处理器系统、包括若干处理器610(例如,两个、四个、八个或其它合适的数量)的多处理器系统。包括一个处理器710的单处理器系统可划分单个处理器的功能以表现为用于处理和执行程序的同步数据的多个处理器。处理器610可以是能够执行指令的任意合适的处理器。例如,在各个实施方式中,处理器610可以是实现各种指令集体系结构(ISA)中的任一种的通用处理器或嵌入处理器。在多处理器系统中,处理器610中的每个可通常地,但非必要,实现相同的ISA。

系统存储器620可被配置为存储处理器610可访问的程序指令622和/或数据632。在各个实施方式中,系统存储器620可使用任意合适的存储器技术实现,存储器技术例如,静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器、或任意其它类型存储器。在所示的实施方式中,实现上述实施方式的任一元件的程序指令和数据可被存储在系统存储器620中。在其它实施方式中,程序指令和/或数据可被接收、发送或存储在不同类型的计算机可访问媒介上或与系统存储器620或计算机系统600分离的类似媒介上。

在一个实施方式中,I/O接口630可被配置为协调处理器610、系统存储器620和设备中的任意外设之间的业务,包括网络接口640或其它外围接口,例如输入/输出设备650。在一些实施方式中,I/O接口630可执行任意必要的协议、时序或其它数据转变以将来自一个组件(例如,系统存储器620)的数据信号转换成适于由另一组件(例如,处理器610)使用的格式。在一些实施方式中,I/O接口630可包括对通过各种类型的外围总线附接的设备的支持,例如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变型。在一些实施方式中,I/O接口630的功能可被划分成两个或更多个单独的组件,例如,北桥和南桥。此外,在一些实施方式中,I/O接口630的一些或所有功能(例如,对系统存储器620的接口)可被直接并到处理器610中。

网络接口640可被配置为允许在计算机系统700与附接至网络(例如网络690)的其它设备(例如,一个或多个外部系统)之间或计算机系统600的节点之间交换数据。在各个实施方式中,网络690可包括一个或多个网络,包括但不限于局域网(LAN)(例如,以太网或企业网)、广域网(WAN)(例如,因特网)、无线数据网、蜂窝网、Wi-Fi、一些其它电子数据网、或它们的一些组合。在各个实施方式中,网络接口640可经由有线或无线通用数据网络(例如,任意合适类型的以太网)、经由电信/电话网络(例如,模拟语言网络或数字光纤网络)、经由存储区域网络(例如,光纤通道SAN)、或经由任意其它合适类型的网络和/或协议支持通信。

在一些实施方式中,输入/输出设备650可包括一个或多个显示终端、键盘、小键盘、触摸板、触摸屏、扫描设备、语音或光学识别设备、或适于通过一个或多个计算机系统600输入或访问数据的任意其它设备。多个输入/输出设备650可存在于计算机系统600中或者可分布在计算机系统600的各个节点上。在一些实施方式中,类似的输入/输出设备可与计算机系统600分离并且可通过有线或无线连接(例如,通过网络接口640)与计算机系统600的一个或多个节点交互。

在一些实施方式中,所示的计算机系统可实现上述任一方法,例如图3至图5的流程图所示的方法。在其它实施方式中,可包括不同的元件和数据。

本领域技术人员将理解,计算机系统600仅是说明性的并且并非旨在限制实施方式的范围。具体地,计算机系统和设备可包括可执行各个实施方式所指示的功能的硬件或软件的任意组合,包括计算机、网络设备、因特网装置、智能电话、平板电脑、PDA、无线电话、寻呼机等。计算机系统600还可连接至未示出的其它设备,或者可取代地作为独立系统操作。另外,在一些实施方式中,所示组件提供的功能可被组合到更少的组件中或分布到附加的组件中。类似地,在一些实施方式中,可能未提供所示组件中的一些的功能和/或其它附加的功能可能是可用的。

本领域技术人员还将理解,尽管各个项被说明为在被使用时存储在存储器或存储设备中,但是这些项或它们的一部分可在存储器与其它存储设备之间转移以用于存储器管理和数据完整性目的。替换地,在其它实施方式中,一些或所有软件组件可在另一设备的存储器中执行并且经由计算机间通信与所示的计算机系统通信。一些或所有系统组件或数据结构还可(例如,作为指令或结构数据)被存储在计算机可存取介质或便携式物体中以由合适的驱动器读取,它们的各个实施例已在上面描述。在一些实施方式中,存储在与计算机系统600分离的计算机可存取介质上的指令可经由传输媒介或通过通信介质(例如,网络和/或无线链路)传送的信号(例如,电信号、电磁信号或数字信号)被发送给计算机系统600。各个实施方式还可包括基于计算机可存取介质或经由通信介质接收、发送或存储根据上面描述实现的指令和/或数据。通常,计算机可存取介质可包括存储介质或存储器介质,例如磁性或光学媒介(例如磁盘或DVD/CD-ROM)、易失性或非易失性媒介(例如,RAM(例如SDRAM、DDR、RDRAM、SRAM等)、ROM等。

在不同的实施方式中,本文描述的方法可以软件、硬件或它们的组合实现。另外,可改变方法的次序,可添加、重新排序、组合、省略或以其它方式修改各种元件。本文描述的所有实施例以非限制的方式给出。对本领域技术人员显而易见的是可对本公开进行各种修改和改变。已经在具体实施方式的背景下描述了根据实施方式的实现。这些实施方式是说明性的而非限制性的。许多变型、修改、添加和改进是可行的。由此,可为本文作为单个示例描述的组件提供多个示例。各个组件、操作和数据存储之间的边界一定程度上是任意的,具体的操作是在特定说明性配置的背景下被说明的。可预想到功能的其它分配,并且其落入下面权利要求的范围内。最后,示例性配置中的作为独立组件给出的结构和功能可作为组合结构或组件实现。这些和其它变型、修改、添加和改进可落入下面权利要求限定的实施方式的范围内。

尽管前面是针对本发明的实施方式,但是在不偏离本发明的基本范围的情况下可想到本发明的其它实施方式,本发明的范围由所附权利要求确定。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1