CN1862517A - 虚拟化通用异步接收器-发送器接口 - Google Patents

虚拟化通用异步接收器-发送器接口 Download PDF

Info

Publication number
CN1862517A
CN1862517A CNA2006100799819A CN200610079981A CN1862517A CN 1862517 A CN1862517 A CN 1862517A CN A2006100799819 A CNA2006100799819 A CN A2006100799819A CN 200610079981 A CN200610079981 A CN 200610079981A CN 1862517 A CN1862517 A CN 1862517A
Authority
CN
China
Prior art keywords
uart
interface
data
virtual
uart interface
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
CNA2006100799819A
Other languages
English (en)
Inventor
A·罗斯坦普尔
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN1862517A publication Critical patent/CN1862517A/zh
Pending legal-status Critical Current

Links

Images

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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Systems (AREA)

Abstract

与数据处理装置的一个或多个操作系统传递外部数据包括经由在操作系统的控制之外工作的数据处理装置的组件虚拟化(502)一个或多个通用异步接收器-发送器(UART)接口。UART接口中的每个与一个或多个操作系统中的至少一个操作系统关联(504)。经由对关联操作系统的标准化软件的调用,在UART接口与关联操作系统之间传递(506)数据。然后,在UART接口与数据处理装置的非UART装置之间传递(508)数据。

Description

虚拟化通用异步接收器-发送器接口
技术领域
本公开涉及数据处理,具体来说,涉及虚拟化装置接口。
背景技术
现代个人计算机(PC)获益于过去数十年的许多技术创新。通过增加处理器速度以及增加输入-输出(I/O)总线上的数据传输速度来实现性能增益。I/O速度的发展在很大程度上通过实现新的接口标准而产生,但是,向后兼容性要求许多遗留接口仍然包括在PC中。
在x86处理器世界中,原始标准I/O接口包括用于外部的外设的串行和并行端口、用于插接卡的工业标准体系结构(ISA)总线以及用于软盘和硬盘驱动器的集成驱动电子设备(IDE)接口。现代PC可能仍然包含这些接口中的一些,但是已经开始向用于外部外设的通用串行总线(USB)和IEEE 1394、用于板卡的外围部件互连(PCI)总线、增强IDE和AT配件(ATA)硬盘驱动器稳定过渡。已经研制其它专用接口用于各种硬件和环境,例如用于便携计算机的个人计算机存储卡国际联盟(PCMCIA)装置以及用于视频卡的高级图形处理器(AGP)总线接口。
随着计算机I/O标准的所有进展,操作系统可能仍然需要访问众所周知的普通接口。这些普通接口表示可在许多环境下安全使用的最小共同点。例如,许多操作系统内核对双向内核端口进行读取和写入。对这些端口的访问可由控制台装置来提供。在历史上,这些控制台装置是连接到计算机的串行端口的“哑”终端。在这类系统中,某种关键数据、如内核调试输出被送往这种终端。
哑终端通常连接到主机的通用异步接收器-发送器(UART)。UART通过串行传输线发送和接收数据。UART使输出数据串行化,以及将输入串行数据组装成字节,并将那些字节放入缓冲器中。虽然许多常用UART在传输线上异步通信,但是,存在类似的装置,它们同步通信,例如两种通信装置同步到某个时钟信号的情况。
内核日志及其它低级组件采用UART,因为它们是简单可靠的,并且得到广泛支持。内核所使用的UART软件经过全面测试,并且在系统出故障期间、例如在内核处于混乱状态时极可能保持可工作。虽然存在最小共同点的视频和键盘接口,但是在一些系统(如服务器)中,不希望安装监视器和键盘。例如,在大的数据中心,包括访问数百个机器中每个的内核控制台所需的接线和开关不一定是可行的。
在许多情况中,使用连接到UART的终端仍然是访问内核的最佳方式。但是,许多计算机系统可具有在相同机器上运行的操作系统的多个示例。操作系统的每个示例应当具有对至少一个UART的独占控制权,以便访问内核。虽然这可通过为各分区提供UART装置来实现,但是,这种解决方案增加成本、所需空间以及功耗。在许多密集封装的数据中心,所有这三种因素都受到重视。因此,希望在计算机上提供多个UART接口,而没有增加硬件尺寸、成本和功耗。
发明内容
与数据处理装置的一个或多个操作系统传递数据涉及经由在操作系统的控制之外工作的数据处理装置的组件来虚拟化一个或多个通用异步接收器-发送器(UART)接口。UART接口中的每一个与一个或多个操作系统中的至少一个操作系统关联。数据经由对关联操作系统的标准化软件的调用在UART接口与关联操作系统之间传递。然后,数据在UART接口与数据处理装置的非UART装置之间传递。
附图说明
图1说明根据本发明的实施例、配置用于提供虚拟UART访问的软件体系结构;
图2说明根据本发明的实施例、配置成利用虚拟UART访问的系统;
图3说明根据本发明的实施例、配置用于提供虚拟UART访问的计算装置;
图4说明根据本发明的实施例、配置用于提供虚拟UART访问的可分区计算装置;以及
图5说明根据本发明的实施例、用于提供虚拟UART访问的程序。
具体实施方式
在以下对各种实施例的描述中,参照构成其组成部分的附图,附图中作为说明,给出可实施本发明的各种示范方式。要理解,可采用其它实施例,因为可进行结构和操作变更而没有背离本发明的范围。
一般来说,本公开涉及系统固件和/或硬件的虚拟化和/或UART。虚拟UART可用于经由另一个数据传输装置、例如经由网卡、通用串行总线(USB)适配器、IEEE 1394(火线)、无线接口等来发送数据。采用高带宽数据传输装置允许将大量低数据率终端输出组合在单连接中。以这种方式虚拟化/仿真UART的优点可包括关键软件组件的向后兼容性、更低成本以及提供采用最少接线的远程访问。
大家会理解,许多计算系统可通过利用根据本发明的实施例的虚拟UART来获益。特别是,在单个装置上要求多个串行接口的系统可获益于这种方法。可能获益于多个串行接口的一种类型的系统包括可分区系统。可分区系统由节点(或小区)组成,在其中,分区是分配给独立作业的子系统。这种系统中的各个分区运行可能不同的操作系统的包含故障示例。每个活动分区可能有至少一个调试端口。
在分区系统中,可能变得难以根据固件和OS设定来分配端口。另外,跟踪到分区系统的多个串行端口的接线可能变得麻烦。当分区可手动或自动重新分配或者重新配置时,情况更是如此。然而,向分区系统和类似计算装置提供UART接口存在许多优点。这些优点包括兼容性和可靠性。另外,OS可利用现有遗留驱动程序来访问UART,从而消除对于专门装置驱动程序的需要。
不是采用多个硬件UART,计算装置可采用利用虚拟UART接口来仿真多个UART的接口。计算机科学领域中使用的术语“虚拟”一般适用于通过计算机模拟的事物。例如,虚拟存储器是不由存储器芯片提供而由诸如硬盘驱动器等的其它数据存储装置提供的存储器。术语“虚拟”可用来描述模仿其“现实”等效物的事物。本文所使用的、应用于UART和UART接口的术语“虚拟”一般表示不采用传统UART电路来提供UART访问和UART功能性。虚拟UART接口仿真UART电路所提供的处理器接口逻辑,但是不需要仿真其它UART接口、如串行线接口。
如本文下面所表示的,虚拟化UART接口表示由非UART硬件或软件仿真的UART到处理器接口。计算装置可经由在操作系统(OS)的控制之外工作的计算装置的组件来虚拟化UART接口。
一般来说,可在没有加载OS时工作的、或者可在操作系统崩溃或重新引导时继续工作的任何软件或硬件组件可被认为独立于OS运行。这类组件可包括BIOS/固件,它能够在加载OS之前运行。独立于操作系统进行工作的其它组件包括管理服务处理器。管理服务处理器是可用来远程管理计算机(例如经由网络连接)的装置(通常为扩展卡)。服务处理器可独立于操作系统控制计算硬件,因此可实现远程控制的服务任务,例如升级BIOS、加载OS、加载其它任何软件或者重新引导系统。
独立于OS的组件提供的虚拟UART接口可用于即使在OS具有内核混乱或重新引导时也应当工作的诸如内核调试之类的任务。虚拟UART接口所处理的数据可经由另一个数据接口、如网络接口卡(NIC)传递给外部实体。
现在参照图1,说明计算体系结构100,它采用根据本发明的实施例的虚拟UART接口102。本例中的计算体系结构100包括OS104,可使它能够与虚拟UART接口102交互,好像虚拟接口102是基于硬件的UART一样。通过映射由独立于OS的组件控制的存储器的一部分,使得存储器的这部分提供与基于硬件的UART关联的结构和行为,可创建虚拟UART接口102。
就OS 104而言,虚拟UART接口102看起来与基于硬件的UART相同,并且可通过完全相同的方式来使用。例如,在OS 104包括WindowsTM OS的某些版本时,虚拟UART接口102可用作Windows调试端口。Windows调试端口允许Windows内核/软件与如耦合到UART的终端之类的数据传输装置之间的双向数据传输。
OS 104在引导时以及运行时与固件接口106交互。往往作为设计成与具体平台特定的硬件110配合工作的存储器芯片(例如EPROM)包含系统固件。固件接口106有助于在OS 104的引导时和运行时经由固件访问平台特定的硬件112的各个部分。一个或多个抽象层110也可驻留在固件中。抽象层110封装对于平台特定的硬件112是唯一的特征。
固件接口106可包括OS 104到系统硬件112之间的通用和可扩展接口,例如由可扩展固件接口(EFI)规范所提供的。EFI提供OS加载器、引导服务以及运行时服务。EFI定义抽象,允许再用遗留OS加载器(例如遗留BIOS代码),而无需装置的终端用户担心基础实现。EFI运行时服务还提供在运行时由OS 104使用的基础硬件资源的抽象。
抽象层110提供对于在硬件实现之间可能不同的处理器和系统功能的统一访问。在Itanium体系结构中,抽象层110包括系统抽象层(SAL)。SAL包括用于初始化、测试和配置平台特定的硬件112的功能性。由SAL访问的平台特定的硬件112包括存储器114、I/O子系统116、引导装置118以及诸如高速数据接口120等的其它硬件。OS 104可能是能够与固件抽象层110交互的现在已知或者将来开发的任何OS。具体来说,本文所述的概念适用于能够与诸如SAL等的抽象层110兼容的WindowTM OS(例如Windows Server 2003)。另外,本文所述的概念可适用于其它抽象层110,例如高级配置和电源接口(ACPI)和可扩展固件接口(EFI)。
抽象层110和固件接口106为OS 104提供与系统硬件112交互的通用和可扩展方式。系统制造商通常可修改固件组件106、110,而没有影响OS 104或硬件112。易于修改固件的能力允许部分或者完全以固件实现虚拟UART接口102。
虚拟UART接口102可通过所述体系结构100的硬件和固件层的任一个来实现。一般来说,虚拟UART接口102通过表现为标准UART接口、如16550兼容UART来处理OS 104进行的物理访问。这些访问由虚拟UART接口102转换到不同类型的硬件的接口。可配置成经由虚拟UART接口102交换数据的硬件包括有线和无线网络接口、有线和无线点到点接口、非易失性固态存储器、盘驱动器、显示器、USB、火线、光纤信道等。例如,高速数据接口120可包括网络接口卡、如耦合到TCP/IP网络的以太网卡。因此,虚拟化软件可将虚拟化UART接口102上的访问转换到TCP-IP网络上的基于套接字的访问。
虚拟UART接口102还可配置成处理从纯软件的OS所接收的数据。例如,虚拟UART接口102可配置成在终端用户不想跟踪所记录数据的情况下只是丢弃数据。在这种情况中,为了满足最小要求,虚拟UART接口102可充当空设备。在另一种配置中,虚拟UART接口102可包含跟踪某些内核消息的状态机。例如,虚拟UART接口102可对于内核混乱来扫描调试文本。
虚拟UART接口102可完全或部分在与计算体系结构100关联的任何带外装置124中实现。带外装置124一般是独立于OS 104运行的装置,但它可在OS运行时与OS 104接口。这种装置124可能是系统固件、硬件、附加硬件和/或管理服务处理器的组成部分。一般来说,带外装置124在OS 104的控制之外工作,因此可与OS 104无关地提供虚拟UART接口102。
在图2中,示例计算装置200包括根据本发明的实施例、用于将UART访问转换为基于套接字的访问的虚拟UART 201。虚拟UART201可包括多个分立虚拟UART接口202A-D,与图1中的UART接口102相似。虚拟UART 201不一定仿真UART的全部功能,而是仅仿真使UART接口202A-D响应OS 204A-C、好像它们是实际的UART接口一样所需的那些功能。
每个虚拟UART接口202A-D可能能够作为分立物理装置提供给OS 204A-C并且由其访问。OS 204A-C可同时访问多个接口202A-D。OS 204A-C可能一次运行一个(例如多引导系统)或者同时运行(例如分区系统)。在OS 204A-C同时运行的情况下,虚拟UART接口202A-D可在OS 204A-C之间划分,以便防止对资源的争用。
多个UART接口202A-D所处理的数据可能组合成更少数量的输出数据流206。例如,这可能在来自所有UART接口202A-D的数据组合成单套接字连接的情况中发生。在这种情况中,应用级数据(例如首标)可被添加到数据,以便标识特定数据段属于UART接口202A-D的哪一个。这种添加的数据可在以后用于将数据分离为各个UART流。
在来自UART接口202A-D的数据组合成更少数量的数据流206的配置中,可采用复用器/解复用器208。复用器/解复用器208将多个UART数据流组装为更少数量的输出流206,以及分离来自流的组合数据,用于传送到适当的UART接口202A-D。
大家会理解,在存在UART接口202A-D到数据流206的一对一映射的配置中,不需要复用器/解复用器208。例如,这可能在每个UART接口202A-D被映射它自己的TCP/IP套接字连接的情况下发生。在每个UART接口202A-D具有其自己的TCP/IP套接字连接的情况下,TCP/IP处理栈执行复用/解复用。
在虚拟UART接口202A-D与其它接口之间传递数据时,可能需要其它数据处理。这些处理可由转换器组件210来执行。转换器210可执行诸如从输出数据剥离控制字符以及将控制字符插入输入数据之类的任务。其它转换任务可涉及交换字节中的比特顺序以及字中的字节顺序,调节包/帧大小,管理串行数据传输状态等。
为了处理外部数据传输硬件,虚拟UART 201可包括外部读取器/写入器组件212。外部读取器/写入器组件212可配置成处理多个硬件接口,用于在计算装置200外部传递数据。如前面所述,这些接口之一可包括网络接口214。网络接口214可包括用来与远程计算机共享数据的任何已知的或者将来的硬件。公共网络接口214包括以太网、FDDI、ISDN、DSL、令牌环网、调制解调器等。各种通信协议也可与诸如TCP/IP、UDP/IP、ATM、X.25、VPN、PPP之类的网络接口214关联。网络接口214可与计算装置200的主处理板(例如主板)耦合,或者可能是独立于操作系统204A-C运行的装置、如管理服务处理器的组成部分。
读取器/写入器212可配置成通过一个以上外部接口进行通信。这由通用数据接口216和连接路径218表示。通用数据接口216可包括附加网络接口或者其它数据传输技术、如点到点和广播。通用数据接口216可与网络接口214并行操作,使得来自所有UART接口202A-D的数据转到接口214以及216。或者,UART接口202A-D的一部分可分配给网络接口214,其余部分分配给普通接口216(和/或附加接口)。
虚拟UART 201通常包括输入和输出缓冲器。这是因为从UART接口202A-D的读取将由外部读取器/写入器212上的读取填充,这可能以高得多的数据速率进行。类似地,对于更理想的传输大小可聚结对UART接口202A-D的写入。例如,在分组交换网络224上经由网卡214发送的数据可聚结为适合网络224的分组大小。
当虚拟UART 201配置成通过网络接口214进行通信时,可经由网络224对其它数据处理装置、如220、222等发送/接收数据。数据处理装置220可包括与始发计算装置200相似的硬件和软件组件。那些组件包括网络接口226、通用接口228、复用器/解复用器230、转换器组件232以及可提供与图1的UART接口102相似的功能性的虚拟UART接口234。由于数据处理装置220正使用虚拟化UART接口234,因此,可经由串行线进行通信的本领域已知的任何软件可用来与计算装置200进行通信。例如,基本终端应用236(例如xterms)可用于通过虚拟UART接口234进行通信,而无需任何修改。专用客户机应用237、如调试器客户机还可访问虚拟UART接口234,而没有特殊修改。
其它数据处理装置222还包含网络接口238,但是采用专用客户机应用240,它处理交换数据所需的所有功能性,而无需虚拟化UART。专用读取器应用240可结合存储、查看、分析从计算装置200及相似设备接收的所有数据的功能。专用读取器应用240还可具有用于发送针对计算装置200的一个或多个虚拟UART接口202A-D的命令的工具。
现在参照图3,说明计算装置302,它提供根据本发明的实施例、经由TCP/IP耦合的虚拟UART接口。计算装置302包括耦合到各种形式的存储器的一个或多个处理器304。处理器304设置成运行这种存储器存储或提供的指令。处理器可访问的存储器可包括随机存取存储器(RAM)306、只读存储器(ROM)308、盘驱动器310、光存储装置312(例如CD-ROM、DVD)等。处理器304还可经由可移动媒体314上可用的存储器、例如软盘、Zip盘、闪速存储器、CD-ROM/R/RW、DVD等来访问数据。处理器304还可执行经由网络接口316接收的指令。
网络接口316可能是耦合到任何数据传输网络、例如局域网(LAN)、广域网(WAN)或者如因特网之类的全球网(GAN)的数据。网络接口316可与计算装置302的主处理板(例如主板)、管理服务处理器357或其它带外装置355耦合。
计算装置302可包括和/或耦合到用户输入接口320和输出装置322(例如监视器),用于与用户交互。数据处理硬件302包括可采取处理器304可执行的指令的形式来提供的软件。一般来说,软件包括用于硬件302的控制和管理以及基本系统操作的OS 326以及在运行的应用程序。OS 326可包括任何类型的内核(例如单块内核、微内核、exokernel等)和用户接口软件、如命令解释程序和/或图形用户界面(GUI)。
计算装置302包括OS/内核326使用的固件328,用于在引导时和运行时访问硬件和处理器功能性。固件328可包括基本输入-输出系统(BIOS),用于在系统引导期间提供基本硬件访问。固件328可包括用于提供硬件访问的高级特征,例如具有EFI接口。具体来说,固件328可包括SAL 330,用于抽象各种硬件接口、如PCI配置接口332。
在所示装置302中,包括虚拟UART组件334。虚拟UART组件334可具有与图2中的虚拟UART 201相似的特征。虚拟UART组件334提供四个虚拟UART接口336、338、340和342。所示组件334中的四个虚拟UART接口的使用是任意的;任何数量的虚拟UART接口可由组件334提供,以及接口的数量和名称可静态或动态确定。
四个虚拟UART接口336、338、340和342经由网络接口344分别直接映射到四个TCP/IP套接字346、348、350和352。在这个实例中,在虚拟UART接口336、338、340、342与套接字346、348、350、352之间存在一对一映射。管理终端356配置成连接到TCP/IP套接字346、348、350和352,以便与计算装置302交换数据。
所示装置302的一个用途是向多分区系统的各分区提供虚拟UART接口336、338、340和342。多分区系统可包括有多个OS镜像正在运行的单个系统,和/或可包括在单复合体/机架、如刀片服务器系统中运行的多个计算机。该装置可经过配置,使得各分区被分配由IP地址和TCP端口定义的预定套接字。例如,分区0可能在端口2000成为可用,分区1在端口2001可用,分区2在端口2002可用,等等。
虚拟UART组件334可通过硬件、固件和软件的任何组合来实现。例如,虚拟UART组件可能采用EFI和SAL完全以固件来实现。在这种实现中,虚拟UART接口336、338、340和342可在PCI配置空间332中作为众所周知的UART接口(例如16550兼容)来提供。
在其它方案中,虚拟UART组件334可通过硬件来实现。虚拟UART组件334可包含在操作系统326的控制之外的带外装置355、如管理服务处理器357或其它某种中间装置上。管理服务处理器357通常是独立于主机OS运行的并且可与主机OS无关地被访问的独立运行的装置(例如板载电路、扩展插槽卡)。
在另一实例中,虚拟UART组件334可在标准总线接口卡358(例如PCI卡)上提供,它将自身作为一个或多个UART来提供,并且包括网络接口316和物理网络连接器(例如以太网双绞线)。提供UART数据到网络数据的转换的功能性可完全包含在这种卡358上,使得无需专用OS驱动程序或内核软件与装置358通信。
应当理解,硬件302、固件328、虚拟UART组件334和操作系统326的配置和组成可能与结合图3所述的不同。本领域的技术人员非常清楚,本文提供的虚拟UART组件334及相关软件的描述与计算装置302或其操作环境的任何具体配置无关。
根据本发明的实施例、可利用虚拟UART的设备的一个具体实例在图4中表示为可分区数据处理装置400。示例装置400包括四个分区402A-D,但是要理解,可提供任何数量的分区。各分区402A-D分别具有在那个分区402A-D中运行的操作系统404A-D的关联示例。
各分区402A-D具有硬件资源的分开分配的部分。这些资源可包括一个或多个处理器406、存储器408和I/O装置410。可分区数据处理装置400可包括有多个OS镜像正在运行的计算装置,和/或装置400可包括在单复合体/机架、如刀片服务器系统中运行的多个计算机。分区402A-D可在可包括与图2中的虚拟UART 201相似的能力的仿真组件412中被定义/创建。仿真组件412可包括固件或专用硬件(例如管理服务处理器)的任何组合。在这种配置中,仿真组件412在分区402A-D之间分配硬件资源。
仿真组件412为每个分区402A-D及其关联操作系统404A-D提供虚拟UART接口414A-D。虚拟UART接口414A-D其中还可用于分别发送/接收来自操作系统404A-D的双向数据。虚拟UART接口414A-D可映射到仿真组件412的地址空间。TCP/IP适配器模块416设置成接收来自虚拟UART接口414A-D的双向数据,并经由网络接口卡418传递该数据。TCP/IP适配器模块416可在仿真组件412中实现。
TCP/IP适配器模块416配置成将各操作系统404A-D分别与TCP/IP套接字420A-D关联。这些套接字420A-D可用于经由网络422将操作系统404A-D之间的双向数据交换到配置成访问与分区402A-D中每个关联的双向数据的客户机424。一般来说,客户机可允许来自各分区402A-D和操作系统404A-D的双向数据被分开访问。客户机424可能是读取器或应用,例如发送/接收数据、设置断点等的内核调试器。
现在参照图5,说明过程500,它用于提供根据本发明的实施例的虚拟UART接口。提供一个或多个UART接口,以便经由数据处理装置的带外组件来仿真UART(502)。这个带外组件例如可包括配置为UART接口的固件存储空间的一部分。或者,组件可包括虚拟化UART接口的管理服务处理器。虚拟UART接口可在遗留UART地址空间中实现,或者它可能是在新的地址空间中实现的标准UART接口。OS可配置成支持典型地址空间中的标准接口以及在那个地址空间中实现的虚拟接口。例如在仅采用固件的解决方案中可按照这种实现,在其中,八字节UART地址空间在ACPI或者在固件仿真PCI配置空间中定义。
UART接口中的每个与OS关联(504)。在可分区系统中,可能存在虚拟UART接口到OS的一对一映射。虚拟UART接口到OS的其它映射也是可行的。这种映射例如可通过响应来自一个或多个OS中每个的查询而向虚拟UART接口提供固件访问器来实现。OS可访问存储器范围,用于经由对关联OS的遗留软件的调用在各UART接口上传递(506)数据。这种遗留软件例如可能是设备驱动程序和/或关联OS的内核软件。响应虚拟UART接口上的数据传输,数据在UART接口与数据处理装置的非UART装置之间传递(508)。
从本文提供的描述中,本领域的技术人员易于能够将按照所述方式创建的硬件和/或软件与适当的通用或系统和/或本发明的计算机子组件实施例结合,以及创建用于执行本发明的方法实施例的系统和/或计算机子组件。本发明的实施例可通过硬件和软件的任何组合来实现。
大家会理解,用于实现本发明的实施例的基于处理器的指令能够以指令的计算机可读介质的形式以及各种其它形式来分发。本文中这类基于处理器的指令的描述同样适用,而不管实际用于执行分发的信号承载媒体的具体类型。计算机可读媒体的实例包括诸如EPROM、ROM、磁带、纸张、软盘、硬盘驱动器、RAM和CD-ROM之类的媒体以及诸如数字和模拟通信链路之类的传输类型媒体。
提供本发明的示例实施例的以上描述用于说明和描述目的。它不是意在涵盖本发明的各个方面或者将本发明仅限制于所公开的精确形式。根据以上理论,许多修改及变更都是可行的。本发明的范围不是意在用这个详细描述来限制,本发明的范围而是由所附权利要求来定义。

Claims (9)

1.一种为数据处理装置的一个或多个操作系统提供外部数据通信的基于处理器的方法,包括:
经由在所述操作系统的控制之外工作的所述数据处理装置的组件虚拟化(502)一个或多个通用异步接收器-发送器(UART)接口;
将所述UART接口中的每个与从所述一个或多个操作系统中选取的操作系统关联(504);
经由对所述关联操作系统的标准化硬件访问软件的调用,在所述UART接口与所述关联操作系统之间传递(506)数据;以及
在所述UART接口与所述数据处理装置的非UART装置之间传递(508)所述数据。
2.如权利要求1所述的方法,其特征在于,虚拟化所述一个或多个UART接口包括经由所述数据处理装置的管理服务处理器(357)来虚拟化所述一个或多个UART接口。
3.如权利要求2所述的方法,其特征在于,在所述UART接口与所述非UART装置之间传递所述数据包括在所述UART接口与所述管理服务处理器的网络接口(418)之间传递所述数据。
4.如权利要求3所述的方法,其特征在于,还包括将所述UART接口(414A-D)中的每个映射到所述网络接口(420A-D)的不同TCP/IP套接字。
5.如权利要求1所述的方法,其特征在于,虚拟化所述一个或多个UART接口包括经由所述数据处理装置的固件(328)来虚拟化所述一个或多个UART接口。
6.如权利要求1所述的方法,其特征在于,在所述UART接口与非UART装置之间传递所述数据包括在所述UART接口与网络接口(214,316,418)之间传递所述数据。
7.如权利要求6所述的方法,其特征在于,还包括将所述UART接口(414A-D)中的每个映射到所述网络接口(420A-D)的不同TCP/IP套接字。
8.如权利要求1所述的方法,其特征在于,在所述UART接口与所述关联操作系统之间传递数据包括在所述UART接口与所述关联操作系统(104)之间传递操作系统调试数据。
9.如权利要求8所述的方法,其特征在于,在所述UART接口与所述关联操作系统之间传递操作系统调试数据包括在所述UART接口与所述关联操作系统(104)之间传递Windows调试端口数据。
CNA2006100799819A 2005-04-28 2006-04-27 虚拟化通用异步接收器-发送器接口 Pending CN1862517A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/116,556 US20060245533A1 (en) 2005-04-28 2005-04-28 Virtualizing UART interfaces
US11/116556 2005-04-28

Publications (1)

Publication Number Publication Date
CN1862517A true CN1862517A (zh) 2006-11-15

Family

ID=37234410

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006100799819A Pending CN1862517A (zh) 2005-04-28 2006-04-27 虚拟化通用异步接收器-发送器接口

Country Status (4)

Country Link
US (1) US20060245533A1 (zh)
JP (1) JP2006309764A (zh)
CN (1) CN1862517A (zh)
TW (1) TW200705190A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567071A (zh) * 2010-12-15 2012-07-11 中兴通讯股份有限公司 一种虚拟串口系统及其通信方法
CN102622261A (zh) * 2010-06-25 2012-08-01 英特尔公司 准许多个虚拟机分开配置和访问物理资源的方法和系统
CN106716392A (zh) * 2014-09-25 2017-05-24 高准公司 用于串行通信的栈定时调整
CN109508310A (zh) * 2017-09-14 2019-03-22 北京忆芯科技有限公司 虚拟uart
CN112069112A (zh) * 2020-09-04 2020-12-11 龙芯中科技术有限公司 Uart控制器配置方法和系统
CN112231074A (zh) * 2020-05-06 2021-01-15 青岛鼎信通讯股份有限公司 一种单通道多任务共享复用的方法
CN113064749A (zh) * 2021-04-26 2021-07-02 山东英信计算机技术有限公司 一种通过bios控制运行时阶段调试信息输出的方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011507A1 (en) * 2005-06-03 2007-01-11 Intel Corporation System and method for remote system support
US20060294517A1 (en) * 2005-06-28 2006-12-28 Zimmer Vincent J Network interface sharing among multiple virtual machines
JP4940478B2 (ja) * 2005-12-23 2012-05-30 エスティー‐エリクソン、ソシエテ、アノニム 同期シリアルtdmaバス上のフロー制御方法
US8171174B2 (en) * 2006-01-19 2012-05-01 Dell Products L.P. Out-of-band characterization of server utilization via remote access card virtual media for auto-enterprise scaling
US7409478B2 (en) * 2006-04-21 2008-08-05 At&T Delaware Intellectual Property Inc. Peripheral hardware devices providing multiple interfaces and related systems and methods
US7562162B2 (en) 2007-04-25 2009-07-14 At&T Intellectual Property I, L.P. Systems and methods for distributed computing utilizing a smart memory apparatus
US7925794B2 (en) * 2007-08-17 2011-04-12 At&T Intellectual Property I, L.P. Systems and methods for localizing a network storage device
US8069449B2 (en) * 2007-12-27 2011-11-29 Nvidia Corporation Method and system for enabling a device to support enhanced features
US8032354B2 (en) * 2007-12-27 2011-10-04 Nvidia Corporation Method and system for communicating between two independent software components of a device
JP2009278261A (ja) * 2008-05-13 2009-11-26 Toshiba Corp 情報処理装置および通信制御方法
JP4410294B1 (ja) * 2008-12-25 2010-02-03 株式会社東芝 情報処理装置およびエミュレーション方法
US8762698B2 (en) * 2009-12-14 2014-06-24 Intel Corporation Virtual bus device using management engine
CN102158350B (zh) * 2011-02-12 2012-11-21 华为终端有限公司 一种移动宽带设备及管理移动宽带设备的方法
CN103605306B (zh) * 2013-11-18 2016-07-06 四川长虹电器股份有限公司 基于uart通讯接口扩展的通讯装置
US9842072B2 (en) 2015-03-27 2017-12-12 Toshiba Global Commerce Solutions Holdings Corporation Systems and methods for implementing a user mode virtual serial communications port emulator
US9558086B2 (en) * 2015-06-02 2017-01-31 Aspeed Technology Inc. System on chip with debug controller and operating method thereof
US9723384B2 (en) 2015-08-21 2017-08-01 King Abdulaziz City For Science And Technology Single synchronous FIFO in a universal asynchronous receiver/transmitter system
TW201933131A (zh) * 2018-01-30 2019-08-16 旺玖科技股份有限公司 支援usb主機對主機傳輸的虛擬通訊埠橋接器
US20210397526A1 (en) * 2020-06-18 2021-12-23 General Electric Company Systems and methods of providing an abstraction layer between an application layer and hardware components of a computing device
US11841809B1 (en) * 2021-09-21 2023-12-12 Kioxia Corporation System and method for in situ debug
US11989152B1 (en) * 2023-01-13 2024-05-21 Endress+Hauser SE+Co. KG Self-configuring UART interface and method of operation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812820A (en) * 1995-09-29 1998-09-22 Pacific Commware, Inc. Virtual UART
US6357003B1 (en) * 1998-10-21 2002-03-12 Silicon Graphics, Inc. Advanced firmware boot sequence x86 computer system that maintains legacy hardware and software compatibility
US6401183B1 (en) * 1999-04-01 2002-06-04 Flash Vos, Inc. System and method for operating system independent storage management
US6668374B1 (en) * 1999-07-08 2003-12-23 Axis Ab Method and apparatus for upgrading firmware in an embedded system
DE19935429C2 (de) * 1999-07-28 2002-01-17 Daimler Chrysler Ag Verfahren zur Bestimmung der Winkelposition eines Drehbewegungen ausführenden rotatorischen Teils

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622261A (zh) * 2010-06-25 2012-08-01 英特尔公司 准许多个虚拟机分开配置和访问物理资源的方法和系统
CN102959515A (zh) * 2010-06-25 2013-03-06 英特尔公司 用以实现物理装置来区分主计算机系统的多个虚拟机的方法和系统
CN102622261B (zh) * 2010-06-25 2015-07-29 英特尔公司 准许多个虚拟机分开配置和访问物理资源的方法和系统
US9396000B2 (en) 2010-06-25 2016-07-19 Intel Corporation Methods and systems to permit multiple virtual machines to separately configure and access a physical device
CN102959515B (zh) * 2010-06-25 2016-11-16 英特尔公司 用以实现物理装置来区分主计算机系统的多个虚拟机的方法和系统
CN102567071A (zh) * 2010-12-15 2012-07-11 中兴通讯股份有限公司 一种虚拟串口系统及其通信方法
CN106716392A (zh) * 2014-09-25 2017-05-24 高准公司 用于串行通信的栈定时调整
CN106716392B (zh) * 2014-09-25 2021-06-08 高准公司 用于串行通信的栈定时调整
CN109508310A (zh) * 2017-09-14 2019-03-22 北京忆芯科技有限公司 虚拟uart
CN109508310B (zh) * 2017-09-14 2021-10-22 北京忆芯科技有限公司 虚拟uart
CN112231074A (zh) * 2020-05-06 2021-01-15 青岛鼎信通讯股份有限公司 一种单通道多任务共享复用的方法
CN112069112A (zh) * 2020-09-04 2020-12-11 龙芯中科技术有限公司 Uart控制器配置方法和系统
CN113064749A (zh) * 2021-04-26 2021-07-02 山东英信计算机技术有限公司 一种通过bios控制运行时阶段调试信息输出的方法
CN113064749B (zh) * 2021-04-26 2023-02-28 山东英信计算机技术有限公司 一种通过bios控制运行时阶段调试信息输出的方法

Also Published As

Publication number Publication date
US20060245533A1 (en) 2006-11-02
JP2006309764A (ja) 2006-11-09
TW200705190A (en) 2007-02-01

Similar Documents

Publication Publication Date Title
CN1862517A (zh) 虚拟化通用异步接收器-发送器接口
JP4476238B2 (ja) ファームウェアを介して仮想デバイスアクセスを提供する方法
CN1212574C (zh) 使用本地标识符的端节点分区
CN1647054B (zh) 双模网络设备驱动设备、系统和方法
CN1262930C (zh) 由管理单元对操作系统控制台和操作员面板进行虚拟化
US7926054B2 (en) System, method, and computer-readable medium for virtual machine instantiation from an external peripheral device
EP3009940B1 (en) Unified connector architecture
US6987961B1 (en) Ethernet emulation using a shared mailbox between two processors in a feature phone
US8316377B2 (en) Sharing legacy devices in a multi-host environment
US7458075B2 (en) Virtual USB port system and method
US7502865B2 (en) Addresses assignment for adaptor interfaces
US20060092928A1 (en) System and method for providing a shareable input/output device in a PCI express environment
US20100082874A1 (en) Computer system and method for sharing pci devices thereof
US20110060859A1 (en) Host-to-host software-based virtual system
CN101102305A (zh) 管理网络信息处理的系统和方法
CN110780858A (zh) 一种基于嵌入式操作系统的软件分层架构
KR20080032257A (ko) 비고유 프로그램 모듈을 위한 에뮬레이터, 컴퓨터 판독가능 매체 상의 운영 시스템, 데이터 정렬 시스템, 비고유프로그램 모듈 및 고유 환경의 상호 운영 가능성 및호환성을 용이하게 하는 방법, 컴퓨터 및 컴퓨터 판독 가능매체
JP5469081B2 (ja) 制御パス入出力仮想化方法
US9195495B2 (en) Configuration space with pseudo device identifier
CN117221050A (zh) 存储网关、芯片及电子设备
US8612662B2 (en) Queue sharing and reconfiguration in PCI express links
CN115903569A (zh) 一种全数字综合模块化航电系统
CN110622144B (zh) 中继装置和信息处理系统
CN1932760A (zh) 开发和执行平台
US9658970B1 (en) Interconnection of peripheral devices on different electronic devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication