CN1930553A - 访问逻辑分区中的存储器 - Google Patents
访问逻辑分区中的存储器 Download PDFInfo
- Publication number
- CN1930553A CN1930553A CNA2005800080077A CN200580008007A CN1930553A CN 1930553 A CN1930553 A CN 1930553A CN A2005800080077 A CNA2005800080077 A CN A2005800080077A CN 200580008007 A CN200580008007 A CN 200580008007A CN 1930553 A CN1930553 A CN 1930553A
- Authority
- CN
- China
- Prior art keywords
- logical partition
- striding
- expansion
- remote memory
- storage descriptor
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
Abstract
提供了用于在服务器分区环境中使用扩展跨存储器描述符的系统和方法,以便它可以用于描述另一个分区的存储器,例如,客户端分区的存储器(下面被称为“远程”存储器)。利用该系统和方法,当初始化在逻辑上分区的计算系统中的操作系统时,调用操作系统内核服务,这些操作系统内核服务检查计算系统的设备树并生成扩展的跨存储器描述符,该描述符描述了另一个逻辑分区的本地存储器,对于当前逻辑分区,该存储器是远程存储器。当执行某一操作需要对远程存储器进行访问时,服务器分区的操作系统使用存储的扩展的跨存储器描述符,以执行远程存储器访问。
Description
技术领域
一般来说,本发明涉及一种改进的数据处理系统。具体来说,本发明涉及用于扩展跨存储器描述符以便它可以用于描述来自在逻辑上分区的计算环境中的另一个分区的存储器的系统和方法。
背景技术
高级交互执行(ADC)操作系统在International BusinessMachine(IBM)公司的pSeries机器上支持逻辑分区(LPAR)。LPAR允许在单个处理器复合体上运行多个系统映像。每一个这样的映像都具有CPU(专用或共享的)、中央存储器、扩充存储器和通道的完全补充。利用LPAR,在各个分区之间资源有清晰的隔离,以便一个分区不会使任何其他分区的系统环境不稳定。在IBM公司的机器中,实现各个分区的资源的这种清晰的分离的功能是系统管理程序。
由于每一个分区都具有其自己的隔离的资源集,因此,每一个分区都具有其自己的“本地”存储器,该“本地”存储器对周围的分区不可见。直到创建虚拟输入/输出(VIO),一个分区没有任何合法理由直接对另一个分区的存储器进行访问。
利用VIO,引入了各个分区之间的点对点直接存储器访问(DMA)操作和存储器复制操作的概念。DMA操作允许将数据从一个存储器直接传输到另一个存储器,无需使用中央处理单元(CPU)来执行数据传输。DMA操作允许进行比在必须使用CPU来传输数据的情况下更快的数据传输。存储器复制操作允许存储器的某些部分直接从一个存储器复制到另一个存储器。
如此,VIO允许在各个分区之间共享物理资源,例如,I/O适配器等等。由于某一个资源可以只属于一个分区(叫做“服务器”分区),其他分区必须经过服务器分区才能使用该资源(其他分区被称为“客户端”分区)。
在共享资源是I/O适配器的情况下,为了使用服务器分区的I/O适配器,服务器分区必须建立从I/O适配器到客户端的存储器的DMA操作。然而,为了建立DMA操作,服务器分区必须知道有关客户端分区的存储器的结构的信息。此外,服务器分区需要能够将有关客户端分区的存储器结构的信息以可使用的格式沿着其自己的I/O堆栈即,软件层的规定的层次结构传递,通过该层次结构,数据必须经过处理才能执行I/O操作(例如,逻辑卷管理器(LVM)、磁头驱动程序、适配器驱动程序、总线驱动程序、内核等等)。如此,最好有用于以这样的方式在服务器分区的环境中描述客户端分区的存储器,以便该描述可以轻松地沿着服务器分区的I/O堆栈传递的系统和方法。
发明内容
本发明提供了用于在服务器分区环境中扩展跨存储器描述符的使用,以便它可以用于描述另一个分区的存储器,例如,客户端分区的存储器(下面被称为“远程”存储器)的系统和方法。利用该系统和方法,当初始化在逻辑上分区的计算系统中的操作系统时,如在逻辑分区的引导过程中,调用操作系统内核服务,以便执行诸如加载设备驱动程序之类的启动操作。作为这些操作系统内核服务的一部分,调用内核服务,该内核服务将其他逻辑分区的远程存储器附加到当前操作系统,以便可以利用其他逻辑分区的远程存储器执行远程存储器复制和DMA操作。
附加内核服务审查计算系统的可能由公开固件等等创建的并维护在服务器分区的存储器中的设备树,以便它可被服务器分区中的操作系统访问。每个逻辑分区有一个设备树实例。设备树包括该分区中资源的节点。这些资源包括每一个分区的本地存储器、PCI/ISA I/O插槽、处理器,受支持的固件调用等等。
当VIO在计算环境中得到支持时,在典型的实施例中,服务器分区的设备树中的/vdevice节点或其子节点包含客户端分区的本地存储器的描述。该描述包括客户端的本地存储器的逻辑标识符、本地存储器的起始地址以及本地存储器的长度。根据该信息,可以生成每一个逻辑分区的每一个本地存储器的扩展的跨存储器描述符。然后,由当前分区的操作系统维护这些扩展的跨存储器描述符,供在执行远程存储器复制和DMA操作时使用。
当执行某一操作需要对远程存储器进行访问时,服务器分区的操作系统使用扩展的跨存储器描述符,该描述符描述了作为远程存储器操作的主体的客户端分区的“远程”存储器。本发明的扩展的跨存储器描述符是对现有的跨存储器描述符的扩展,现有的跨存储器描述符是通常用于只描述其中使用了跨存储器描述符的某一个分区的本地存储器的数据结构。
在本发明中,跨存储器描述符的字段被扩展,以便它们被用来存储有关另一个分区的本地存储器(即,“远程”存储器)的信息。具体来说,扩展的跨存储器描述符的字段包括地址空间标识符、远程存储器的大小、标识哪一个远程存储器的标识符(在有多个客户端分区的情况下)以及在远程存储器内的起始地址。当使用跨存储器描述符来代表“远程”存储器时,地址空间标识符将跨存储器描述符标识为远程存储器描述。如此,I/O堆栈或存储器管理服务中的检查跨存储器描述符的任何接口现在可以查看地址空间标识符,并识别这是远程存储器描述。结果,接口可以采取合适的操作,以便设置DMA操作来访问“远程”存储器。
本发明的这些及其他特征和优点将在下面描述,或者考虑下面的对优选实施例的详细描述,这些及其他特征和优点对于本领域普通技术人员将变得显而易见。
附图说明
现在将参考下面的附图,只作为示例,对本发明的优选实施例进行描述:
图1是可以在其中实现本发明的实施例的数据处理系统的框图;
图2是其中可以实现本发明的实施例的示范性逻辑分区平台的框图;
图3是说明了根据本发明的一个示范性实施例的用于生成扩展的跨存储器描述符的机制的示例的示范图;
图4是说明了根据本发明的一个示范性实施例的使用扩展跨存储器描述符来执行需要进行远程存储器访问的操作的机制的示例的示范图;
图5是概述了根据本发明的一个示范性实施例的用于生成扩展的跨存储器描述符的示范性过程的流程图;以及
图6是概述了根据本发明的一个示范性实施例的使用扩展的跨存储器描述符的示范性过程的流程图。
具体实施方式
提供了一种机制,用于扩展第一分区环境中的跨存储器描述符,以便它描述另一个分区的本地存储器,以便促进需要直接存储器访问或远程存储器复制操作的操作。如此,优选情况下,本发明的实施例在其中资源是使用逻辑分区机制进行分区的计算设备中实现。
现在参考附图,具体来说,参考图1,该图描述了其中可以实现本发明的实施例的数据处理系统的框图。数据处理系统100可以是包括连接到系统总线106的多个处理器101、102、103和104的对称多处理器(SMP)系统。例如,数据处理系统100可以是IBMeServer,该系统是位于纽约Armonk的IBM公司的产品,被实现为网络内的服务器。或者,也可以使用单个处理器系统。连接到系统总线106的还有:存储器控制器/高速缓存108,它提供了到多个本地存储器160-163的接口。I/O总线桥路110连接到系统总线106,并提供到I/O总线112的接口。如本文所述,存储器控制器/高速缓存108和I/O总线桥路110也可以集成在一起。
数据处理系统100是逻辑分区(LPAR)数据处理系统。如此,数据处理系统100可以具有同时运行的多个异构操作系统(或单个操作系统的多个实例)。这些多个操作系统中的每一个操作系统都可以具有任意数量的软件程序在其内执行。数据处理系统100是在逻辑上分区的,以便不同的PCI I/O适配器120-121、128-129和136、图形适配器148和硬盘适配器149可以分配给不同的逻辑分区。在此情况下,图形适配器148提供了到显示设备(未显示)的连接,而硬盘适配器149提供了连接,以控制硬盘150。
如此,例如,假设数据处理系统100被分成三个逻辑分区,P1、P2和P3。每一个PCI I/O适配器120-121、128-129、136,图形适配器148、硬盘适配器149、每一个主机处理器101-104以及本地存储器160-163中的存储器,被分配给三个分区中的每一个分区。在这些示例中,存储器160-163可以采用双列直插式存储器模块(DIMM)的形式。DIMM通常不每个DIMM地分配到分区。相反,分区将获得由平台所看到的总存储器的一部分。例如,处理器101、本地存储器160-163中的部分存储器以及I/O适配器120、128和129可以分配给逻辑分区P1;处理器102-103,本地存储器160-163中的部分存储器以及PCI I/O适配器121和136可以分配给分区P2;处理器104,本地存储器160-163中的部分存储器,图形适配器148和硬盘适配器149可以分配给逻辑分区P3。
在数据处理系统100内执行的每一个操作系统都分配给不同的逻辑分区。如此,在数据处理系统100内执行的每一个操作系统只能访问其逻辑分区内的那些I/O单元。如此,例如,高级交互执行(AIX)操作系统的一个实例可以在分区P1内执行,AIX操作系统的第二个实例(映像)可以在分区P2内执行,Linux或OS/400操作系统可以在逻辑分区P3内操作。
连接到I/O总线112的外围组件互连(PCI)主机桥路114提供了到PCI本地总线115的接口。许多PCI输入/输出适配器120-121可以通过PCI到PCI桥路116、PCI总线118、PCI总线119、I/O插槽170和I/O插槽171连接到PCI总线115。PCI到PCI桥路116提供了到PCI总线118和PCI总线119的接口。PCI I/O适配器120和121分别被插入I/O插槽170和171。典型的PCI总线实现方式将支持四个到八个I/O适配器(即,插入式连接器的扩展槽)。每一个PCI I/O适配器120-121提供数据处理系统100和输入/输出设备(如,作为数据处理系统100的客户端的其他网络计算机)之间的接口。
其他PCI主机桥路122提供其他PCI总线123的接口。PCI总线123连接到多个PCI I/O适配器128-129。PCI I/O适配器128-129可以通过PCI到PCI桥路124、PCI总线126、PCI总线127、I/O插槽172和I/O插槽173连接到PCI总线123。PCI到PCI桥路124提供到PCI总线126和PCI总线127的接口。PCI I/O适配器128和129分别被插入I/O插槽172和173。如此,诸如调制解调器或网络适配器之类的其他I/O设备可以通过每一个PCI I/O适配器128-129中的每一个得到支持。如此,数据处理系统100允许连接到多个网络计算机。
插入到I/O插槽174的存储器映射图形适配器148可以通过PCI总线144、PCI到PCI桥路142、PCI总线141和PCI主机桥路140连接到I/O总线112。硬盘适配器149可以插入I/O插槽175中,该插槽175连接到PCI总线145。而此总线又连接到PCI到PCI桥路142,该桥路142通过PCI总线141连接到PCI主机桥路140。
PCI主机桥路130为PCI总线131提供了接口,以连接到I/O总线112。PCI I/O适配器136连接到I/O插槽176,该I/O插槽176通过PCI总线133连接到PCI到PCI桥路132。PCI到PCI桥路132连接到PCI总线131。此PCI总线还将PCI主机桥路130连接到服务处理器邮箱接口和ISA总线访问通路逻辑194和PCI到PCI桥路132。服务处理器邮箱接口和ISA总线访问通路逻辑194将转发发往到PCI/ISA桥193的PCI访问。NVRAM存储器192连接到ISA总线196。服务处理器135通过其本地PCI总线195连接到服务处理器邮箱接口和ISA总线访问通路逻辑194。服务处理器135还通过多个JTAG/I2C总线134连接到处理器101-104。JTAG/I2C总线134是JTAG/扫描总线(请参见IEEE 1149.1)和Phillips I2C总线的组合。然而,或者,JTAG/I2C总线134只可以被Phillips I2C总线或只可以被JTAG/扫描总线替代。主机处理器101、102、103和104的所有SP-ATTN信号一起连接到服务处理器的中断输入信号。服务处理器135具有其自己的本地存储器191,并可以访问硬件OP面板190。
当数据处理系统100最初被通电时,服务处理器135使用JTAG/I2C总线134询问系统(主机)处理器101-104、存储器控制器/高速缓存108以及I/O桥路110。在完成此步骤时,服务处理器135具有数据处理系统100的库存和拓扑理解。服务处理器135还在通过查询主机处理器101-104、存储器控制器/高速缓存108和I/O桥路110查找到的所有元素上执行内部自测(Built-In-Self-Test(BIST))、基本保证测试(BAT)和存储器测试。在BIST、BAT和存储器测试期间检测到的故障的任何错误信息都由服务处理器135收集和报告。
如果有意义的/有效的系统资源配置在提取了在BIST、BAT和存储器测试期间发现有故障的元件之后仍是可能的,那么,数据处理系统100被允许继续将可执行代码加载到本地(主机)存储器160-163中。然后,服务处理器135释放主机处理器101-104,以便执行加载到本地存储器160-163中的代码。当主机处理器101-104执行来自数据处理系统100内的相应的操作系统的代码时,服务处理器135进入监视和报告错误的模式。被服务处理器135监视的项目的类型包括,例如,冷风扇的速度和操作、热传感器、电源调节器、处理器101-104报告的可恢复的和不可恢复的错误、本地存储器160-163以及I/O桥路110。
服务处理器135负责保存和报告与数据处理系统100中的所有被监视的项目相关的错误信息。服务处理器135还基于错误类型和定义的阈值执行操作。例如,服务处理器135可能会注意到处理器的高速缓存存储器上有过多的可恢复的错误,并判断这是硬件故障的前兆。基于此判断,服务处理器135可以标记该资源,以便在当前运行会话和未来的初始程序加载(IPL)期间取消配置。IPL有时也被称为“启动”或“自举”。
数据处理系统100可以使用各种市场上买得到的计算机系统来实现。例如,数据处理系统100可以使用IBM公司所提供的IBMeServer iSeries Model 840系统来实现。这样的系统可以支持使用OS/400操作系统(这也是IBM公司所提供的)的逻辑分区。
那些本领域普通技术人员将认识到,图1所描述的硬件可以改变。例如,除了所描述的硬件,也可以使用诸如光盘驱动器之类的其他外围设备,或者代替所描述的硬件。所描述的示例并不意味着对本发明的体系结构作出限制。
现在参考图2,框图描述了在其中可以实现本发明的实施例的示范性逻辑分区平台的框图。逻辑分区平台200中的硬件可以作为例如图1中的数据处理系统100来实现。逻辑分区平台200包括分区硬件230、操作系统202、204、206、208和分区管理固件210。操作系统202、204、206和208可以是同时在逻辑分区平台200上运行的单个操作系统的多个副本或多个异构操作系统。这些操作系统可以使用OS/400来实现,这些操作系统是为与诸如系统管理程序之类的分区管理固件连接而设计的。OS/400在这些说明性实施例中只起到示例的作用。当然,诸如AIX和linux之类的其他操作系统类型,也可以使用,具体情况视特定的实现方式而定。操作系统202、204、206和208位于分区203、205、207和209中。系统管理程序软件是可以用来实现分区管理固件210的软件的示例,是IBM公司所提供的。固件是存储在没有通电的情况下仍能保存其内容的存储器芯片(如只读存储器、可编程序只读存储器(PROM)、可擦可编程序只读存储器(EPROM)、电可擦可编程序只读存储器(EEPROM)以及非易失性随机存取存储器(非易失性RAM))中的“软件”。
另外,这些分区也包括分区固件211、213、215和217。分区固件211、213、215和217可以使用初始自举程序代码、IEEE-1275标准公开固件以及运行时抽象软件(RTAS)(这是IBM公司所提供的)来实现。当分区203、205、207和209被实例化时,自举程序代码的一个副本被平台固件210加载到分区203、205、207和209上。此后,控制被传输到自举程序代码,然后,自举程序代码加载公开固件和RTAS。然后,将与分区关联的处理器或分配给分区的处理器派遣到分区的存储器,以执行分区固件。
分区硬件230包括多个处理器232-238、多个系统存储器单元240-246、多个输入/输出(I/O)适配器248-262和存储单元270。可以将处理器232-238、存储器单元240-246、NVRAM 298和I/O适配器248-262中的每一个分配给逻辑分区平台200内的多个分区中的某一个,其中每一个都对应于操作系统202、204、206和208中的某一个。
分区管理固件210为分区203、205、207和209执行许多功能和服务,以创建和实施逻辑分区平台200的分区。分区管理固件210是与基础硬件相同的固件实现的虚拟机。如此,分区管理固件210通过虚拟化逻辑分区平台200的所有硬件资源,允许同时执行独立的OS映像202、204、206和208。
可以使用服务处理器290来提供各种服务,如处理分区中的平台错误。这些服务还可以充当服务代理,来将错误报告回诸如IBM公司之类的供应商。不同的分区的操作可以通过诸如硬件管理控制台280之类的硬件管理控制台来进行控制。硬件管理控制台280是单独的数据处理系统,系统管理员可以从该系统执行各种功能,包括将资源重新分配到不同的分区。
在这样的在逻辑上分区的环境中,每当将要在内核和当前进程地址空间之外的地址空间之间移动数据时,都使用跨存储器内核服务来执行此数据的移动。通过调用xmattach内核服务(该服务附加到跨存储器操作的用户缓冲器中),附加地址空间的一个区域内的数据区域。当调用xmattach内核服务时,xmattach内核服务生成跨存储器描述符。此后,可以使用其他跨存储器内核服务来将数据从内核移动或复制到当前进程地址之外的地址空间。例如,xmemin内核服务通过将数据从指定的地址空间复制到内核全局存储器中来执行跨存储器移动。xmemout内核服务通过将数据从内核全局存储器复制到指定的地址空间中来执行跨存储器移动。xmemdma内核服务为DMA I/O准备存储器的一个页面或在DMA I/O完成之后处理一个页面。
在已知计算系统中,跨存储器描述符是用于描述本地存储器的数据结构。从操作系统的虚拟存储器管理(VMM)组件维护的信息来生成本地存储器跨存储器描述符。
由内核服务基于操作系统在引导时生成和分析的设备树来生成根据本发明的优选实施例的扩展的跨存储器描述符。设备树类似于公开固件设备树,它是描述系统硬件和用户配置选择的分级数据结构。公开固件设备树还包含硬件驱动程序和供这些驱动程序使用的支持例程。下面是公开固件设备树的示例:
root/
ff8885f8/rtas
ff866bf4/rom@ff000000
ff8627c0/flash@fff00000
ff8513d0/cpus
ff88alc8/PowerPC,604ev@()
ff88a788/12-cache
ff84d8e0/pci
ff89552c/ethernet@4
ff8952e0/display
ff88cf44/mac-io@2
ff893e68/misc@0
ff894688/iic
ff893d7c/via@16000
ff8939fc/escc@13000
ff893c2c/ch-b@13000
ff893af4/ch-a@13020
ff88fd08/scsi@10000
ff892elc/taDe
ff8924d0/disk
ff88f944/escc-legacy@12000
ff88fba8/ch-b@12000
ff88fa60/ch-a@12002
ff88d78c/adb@11000
ff88f364/mouse@3
ff88e6dc/keyboard@2
ff88d638/open-pic@40000
ff88aad8/ide@1,1
ff88c504/disk
ff85a534/isa@1
ff864208/sound@i534
ff8640e8/midi@i330
ff863ff8/game@i200
ff863368/gpio@i800
ff863008/nvram@me0000
ff862aa4/rtc@i70
ff85f644/8042@i60
ff86l8b0/mouse@aux
ff860260/keyboard@
ff85d804/floppy@i3f0
ff85d3b4/parallel@i3bc
ff85c704/serial@i2f8
ff85b9f4/serial@i3f8
ff85b490/timer@i40
ff85b01c/interrupt-controller@i20
ff85ae08/dma-controller@i00
ff84a650/mmu
ff83f2e4/memory@0
对于本发明的实施例,使用类似的设备树表示来获取用于生成扩展的跨存储器描述符的信息。设备树是面向对象的,以便设备树中的每一个条目都具有可以被检查的关联的属性。下面说明了设备树中的有关远程存储器的信息可以呈现给操作系统的节点的示例:
/devicenode
…
remote-memory-info10000000 0020000000040000
20000000 003D0000 00020000
…
…
其中,“remote-memory-info”是节点“/devicenode”的属性。在客户端-服务器虚拟I/O模式的典型的实现方式中,节点“/devicenode”将代表服务器设备的节点。如下面所讨论的,可以对此节点进行分析,通过分析此节点所获得的信息可以用来生成根据本发明的优选实施例的扩展的跨存储器描述符。如此,对于第一客户端,“10000000”条目是存储器的逻辑标识符,“00200000”条目是存储器的起始地址,而“00040000”条目是存储器的以字节为单位的大小。同样,对于第二客户端,“20000000”是存储器的逻辑标识符,“03D00000”是存储器内的起始地址,而“00020000”是存储器的以字节为单位的大小。对于服务器所服务的每一个客户端,可以重复此三元组(逻辑id、起始地址、大小)。
根据该设备树信息,可以获取系统硬件和用户配置选择的详细描述。具体来说,如上所述,设备树的存储器节点包括指定了存储器的逻辑标识符、存储器的起始地址和存储器的长度的属性。此信息可以被内核服务用来生成计算系统的本地存储器资源的跨存储器描述符。
跨存储器描述符被用作从两个不相关的上下文中访问存储器以便不需要知道所涉及的存储器的所有者的方式。例如,当中断处理程序需要向一个进程传递数据时,它使用跨存储器描述符来获取有关进程的存储器空间信息,以将数据复制到进程的存储器空间。这是必需的,因为在拥有其数据的进程的上下文中中断处理程序不一定运行,因此不知道该数据属于哪一个进程。中断处理程序所知道的一切是应该在哪里复制数据的存储器的描述,即,跨存储器描述符。
磁盘I/O是使用本地存储器跨存储器描述符的另一个示例。例如,用户级别的应用程序可以调用IOCTL来读取有关磁盘的信息。信息将存储在应用程序提供的缓冲器中,而该缓冲器位于用户空间。当调用磁盘驱动程序时,磁盘驱动程序调用xmattach以附加应用程序的缓冲器。所有这一切都是由磁盘驱动程序的前半部执行的。
将来某个时间,当I/O请求完成,数据变得可用,磁盘驱动程序的位于磁盘驱动程序的后半部的“iodone”例程,调用xmout以使用跨存储器描述符将数据复制到用户空间。磁盘驱动程序存储跨存储器描述符,以便它能够被前半部和后半部访问。
在操作系统初始化时,由内核服务生成跨存储器描述符,并在需要时,将它在计算设备的I/O堆栈中从一个接口传递到另一个接口(或存储器管理服务)。I/O堆栈的接口和存储器管理服务检查跨存储器描述符以获取执行跨存储器操作所需要的信息。
操作系统在另一个分区的远程存储器方面面临着类似的问题,因为远程存储器复制/DMA操作对另一个分区中的所有者设备没有任何了解。如此,这里所描述的方法利用了跨存储器描述符的扩展版本来在执行远程存储器复制/DMA操作时提供有关另一个分区的远程存储器的信息。
本地跨存储器描述符包括四个主要字段:地址空间标识符、段的数量、开始段标识符以及段内的起始地址。地址空间标识符提供了将向其中复制数据的存储器的唯一标识符。段的数量提供了由地址空间标识符标识的地址空间的段的总数。开始段标识符标识了所有段内的被复制数据将开始在其中写入的段。段内的起始地址标识了由开始段标识符标识的被复制数据将开始在其中写入的段内的地址。
下面是其中说明了这些主要字段的跨存储器数据结构的示例:
enum asid={LOCAL=0,REMOTE=1}; struct cross_memory{ enum asid address_space_Id;/*LOCAL, REMOTE, _etc.*/ int number_of_segments;/*number of segments if address_space_id=LOCAL*/ long segmen_Id;/*segment number if address_space_id=LOCAL*/ char*vaddr;/*starting address within the segment if address_space_id=LOCAL*/ uint flags;/*any special attributes of the segment or address range*/ }; #define remote_size(number_of_segments)/*size of remote memory if address_space_id=REMOTE*/ #define remote_logical_id(segment_id)/* remote memory′s logical identifier*/ #define remote_start_addr(vaddr)/* starting address within the remote memory*/
如此,从上述字段可以看出,跨存储器描述符提供了具有这样的特征的存储器的描述,即,为了访问特定地址空间,该存储器描述可以用来执行跨存储器操作而无需知道所述特定地址空间的所有者并进而将数据传递到该所有者。本发明的实施例使用此已知数据结构来实现不同的操作,其中不需要有关资源的所有权的信息即可完成此操作。即,跨存储器描述符的扩展版本用于实现从一个分区到另一个分区的远程存储器复制/DMA操作(其中,“远程”存储器是与当前执行的进程所在的分区不同的另一个分区中的存储器)。利用这样的操作,作为虚拟输入/输出(VIO)进程的一部分,一个分区中的进程可以访问另一个分区的存储器,而无需将数据传递到拥有该远程存储器的特定进程。结果,通过使用扩展的跨存储器描述符,可以实现跨多个分区的远程存储器复制和DMA操作。
跨存储器描述符字段用于存储有关远程存储器的信息。跨存储器描述符的四个原始字段被覆盖,以描述远程存储器,从而生成具有下列四个字段的扩展的跨存储器描述符:地址空间标识符、远程存储器的大小、标识远程存储器的标识符以及远程存储器内的起始地址。扩展的跨存储器描述符的地址空间标识符类似于原始跨存储器描述符的地址空间标识符,例外是,此字段中可以存储预先确定的值,以指出扩展的跨存储器描述符对应于客户端分区的远程存储器。
远程存储器的大小可以以字节为单位或存储器大小的任何其他单位来表示,并指定可以用来执行访问的远程存储器的总大小。远程存储器标识符标识特定客户端分区中的特定远程存储器。在有多个客户端分区并且必须指定正在访问哪一个远程存储器的情况下,这是重要的。远程存储器内的起始地址提供了远程存储器内的由远程存储器标识符指定的将要在哪里开始访问的位置。根据这四个字段,可以获取远程存储器的全貌,以便执行远程存储器复制/DMA操作。
扩展的跨存储器描述符可以以与原始跨存储器描述符同样的方式通过I/O堆栈从一个接口传递到另一个接口。可以加强需要检查扩展的跨存储器描述符的那些接口和存储器管理服务,以包括用于处理扩展的跨存储器描述符的代码。即,加强那些接口和存储器管理服务,以包括识别何时地址空间标识符包括预先确定的值的代码,所述预先确定的值在描述远程存储器访问请求的远程存储器时标识扩展的跨存储器描述符。然后,接口和存储器管理服务可以基于由扩展的跨存储器描述符提供的远程存储器的大小、远程存储器的身份以及远程存储器中的起始地址执行适当的操作。例如,d_map_page和d_map_list接口使用远程跨存储器描述符来正确地建立从由服务器分区所拥有的物理设备到远程存储器的DMA。如此,远程跨存储器描述符由物理设备的驱动程序传递到d_map_page/list接口以建立DMA。按照服务器分区的定义,物理设备属于服务器分区。结果,可以跨多个分区地执行远程存储器复制/DMA操作。
通过覆盖现有的跨存储器描述符以成为与原始跨存储器描述符基本上具有相同格式的扩展的跨存储器描述符,只是在跨存储器描述符的字段中存储不同数据,以及与此不同数据关联的不同内涵,本发明的实施例允许许多需要跨存储器描述符但不检查跨存储器描述符的内容的接口和存储器管理服务在不进行修改的情况下操作。即,扩展的跨存储器描述符允许操作系统维持与需要跨存储器描述符但不实际对它进行检查的接口和存储器管理服务的二进制兼容性。例如,大多数设备驱动程序需要跨存储器描述符,但不对它进行检查。它们只需将跨存储器描述符传递到内核或PCI总线驱动程序。由于对跨存储器描述符的更改,不需要对这样的设备驱动程序进行重新编译,它们可以如往常那样继续进行操作。
图3是说明了根据本发明的一个示范性实施例的用于生成扩展的跨存储器描述符的机制的示例的示范图。如图3所示,当初始化在逻辑上分区的计算系统中的逻辑分区310的操作系统320时,如在逻辑分区310的引导过程中,调用操作系统内核服务325,以便执行诸如加载设备驱动程序之类的引导操作。作为这些操作系统内核服务325的一部分,调用内核服务,该内核服务将其他逻辑分区312-316的远程存储器附加到当前操作系统,以便可以利用其他逻辑分区的远程存储器执行远程存储器复制和DMA操作。在本发明的一个示范性实施例中,附加远程存储器的内核服务被称为xmattach_remio,是已知xmattach跨存储器内核服务的扩展版本。xmattach_remio附加跨存储器操作的远程存储器,这些操作可以由已知xmemout和xmemin跨存储器内核服务和d_map_page和d_map_list内核服务的扩展版本执行。
扩展的附加内核服务检查计算系统的可以在系统管理程序330等等中维护的设备树332-338。系统管理程序330是在逻辑上分区的计算系统中提供和管理多个虚拟机的程序。在系统管理程序330中维护了每一个逻辑分区的单个设备树332-338。此外,逻辑分区的设备树332-338的副本可以存储在该逻辑分区的本地存储器中,以便它可被逻辑分区中的操作系统内核访问。操作系统提供了内核扩展(例如,设备驱动程序)和用户级别代码可以使用的功能库,以便对设备树332-338进行分析。
设备树332-338包括计算系统的每一个分区的节点和它们的资源。这些资源包括每一个分区的本地存储器340-360。设备树332-338的代表分区的这些本地存储器的节点包括本地存储器的属性,这些属性包括本地存储器的逻辑标识符、本地存储器的起始地址和本地存储器的长度。根据该信息,可以获取每一个逻辑分区的本地存储器(相对于当前逻辑分区,是“远程”存储器)的大小、每一个逻辑分区的本地存储器的身份以及每一个逻辑分区的本地存储器内的起始地址。可以将此信息封装到每一个逻辑分区的每一个本地存储器的扩展的跨存储器描述符370-390中。然后,由当前逻辑分区310的操作系统320维护这些扩展的跨存储器描述符370-390,供在对其他逻辑分区312-316执行远程存储器复制和DMA操作时使用。
图4是说明了根据本发明的一个示范性实施例的使用扩展跨存储器描述符来执行需要进行远程存储器访问的操作的机制的示例的示范图。如图4所示,当诸如客户端设备400的应用程序410之类的进程例如通过read()系统调用向操作系统内核空间420生成要求执行远程存储器访问操作的输入/输出(I/O)请求时,通过I/O堆栈422处理I/O请求,直到客户端虚拟设备驱动程序424。客户端虚拟设备驱动程序424将该请求转发到服务器480的对应物,即,服务器虚拟驱动程序430。
服务器虚拟驱动程序430已经在引导时为存储器415的远程分区(例如,逻辑分区2)创建了扩展的跨存储器描述符440。例如,服务器虚拟驱动程序430可以在引导时调用xmattach_remio内核服务,以生成扩展的跨存储器描述符。服务器虚拟驱动程序430在服务器端将I/O请求与扩展的跨存储器描述符440一起沿着I/O堆栈450传递。
I/O请求最后沿着I/O堆栈450传递到物理设备驱动程序460,例如,SCSI适配器驱动程序,该驱动程序利用其I/O适配器470安排DMA操作。当由I/O适配器470完成DMA时,将数据写入到远程存储器415中。如此,如上述示例中所说明的,除了数据本身之外,进行远程直接存储器访问所需的唯一的其他必需的元素是通过扩展的跨存储器描述符所提供的远程存储器的描述。
图5和6是说明了根据本发明的示范性实施例的生成和使用扩展的跨存储器描述符的示范性过程的流程图。可以理解,流程图中的每一个方框,以及流程图中的方框的组合可以通过计算机程序指令来实现。这些计算机程序指令可以提供给处理器或其他可编程数据处理设备,以产生一个机器,以便在处理器或其他可编程数据处理设备上执行的指令创建用于实现流程图方框中指定的功能的装置。这些计算机程序指令也可以存储在计算机可读的存储器或存储介质中,该存储器或存储介质可以指示处理器或其他可编程数据处理设备以特定方式运行,以便存储在计算机可读的存储器或存储介质中的指令产生一种包括可以实现流程图方框中指定的功能的指令装置的产品。
相应地,流程图的方框支持用于执行指定的功能的装置的组合、用于执行指定的功能的步骤以及用于执行指定的功能的程序指令装置的组合。还应该理解,流程图的每一个方框,以及流程图中的方框的组合,可以通过执行指定的功能或步骤的基于专用硬件的计算机系统或专用硬件和计算机指令的组合来实现。
图5是概述了根据本发明的一个示范性实施例的用于生成扩展的跨存储器描述符的示范性过程的流程图。如图5所示,操作开始时是初始化操作系统(步骤510)。然后,操作系统内核服务对计算机系统的设备树进行分析,寻找代表其他逻辑分区的远程存储器的节点(步骤520)。然后,检索这些远程存储器节点的属性(步骤530),并用这些属性判断其他分区的每一个远程存储器的标识符、大小和起始地址(步骤540)。然后,利用远程标识符将标识符、大小和起始地址封装到每一个其他逻辑分区的每一个远程存储器的扩展的跨存储器描述符中(步骤550)。然后,存储这些扩展的跨存储器描述符,供以后在执行远程存储器访问时使用(步骤560)。
图6是概述了根据本发明的一个示范性实施例的使用扩展的跨存储器描述符的示范性过程的流程图。如图6所示,操作开始时,接收需要远程存储器访问的请求(步骤610)。然后,检索该请求所指向的远程存储器的扩展的跨存储器描述符(步骤620)。然后,将扩展的跨存储器描述符与该请求一起传递到I/O堆栈(步骤630),该I/O堆栈相应地对扩展的跨存储器描述符和请求进行处理。然后,使用扩展的跨存储器描述符通过I/O适配器执行远程存储器访问(步骤640)。
如此,提供了用于扩展已知的跨存储器描述符的机制,以便它可以描述不同于进程当前正在其中运行的分区的另一个分区的远程存储器。由于本发明的实施例所提供的扩展与已知的跨存储器描述符使用相同格式,但具有不同的数据和与数据关联的内涵,不必为处理扩展的跨存储器描述符而修改计算设备中存在的许多接口和存储器管理服务。可以加强检查跨存储器描述符的其他接口和存储器管理服务,以包括用于处理扩展的跨存储器描述符的代码,以便提供用于执行远程存储器访问的功能。
虽然是在典型的DMA操作的上下文中描述本发明的示范性实施例的,但是,应该理解,本发明的实施例不仅限于这样的情况。例如,扩展的跨存储器描述符也可以用于远程复制操作。可以由系统管理程序或其他硬件和/或软件机制来实现复制操作,其中,服务器分区通过操作系统和系统管理程序之间的很好地描述的接口向该机制(例如,系统管理程序)提供信息。所提供的信息来自扩展的跨存储器描述符(例如,标识客户端分区的远程存储器的标识符)。然后,系统管理程序可以执行从服务器到客户端或从客户端到服务器的实际复制操作。
操作可以由服务器端启动,因此,服务器要么可以拉数据(如利用xmemin系统调用),要么可以向客户端分区推数据(如利用xmemout系统调用)。系统管理程序可以执行实际复制操作,因为它比在它上面运行的操作系统具有更高的监督权限。这就使得系统管理程序访问任何分区的任何存储器。这种特性的远程复制操作促成了服务器和客户端之间的更先进的数据交换协议的设计和实现。
值得注意的是,尽管是在具有完全功能的数据处理系统的上下文中描述本发明的实施例,本领域普通技术人员将认识到,进程能够以存储了指令的计算机可读的介质的形式和各种各样的形式进行分发,这里所描述的方法同样适用,不管实际用于进行分发的承载信号的介质的特定类型是什么。计算机可读的介质的示例包括可记录类型的介质,如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM、传输类型的介质,例如使用诸如射频和光波传输的传输形式的数字和模拟通信链路、有线或无线通信链路。计算机可读的介质可以采取编码格式的形式,这些编码在特定数据处理系统中实际使用时被解码。
说明书只作说明,而不是穷尽性的或限于所说明的形式。那些本领域普通技术人员将认识到,可以进行许多修改。所选择和描述的实施例是为了最好地说明本发明的原理,实际应用,并使本领域普通技术人员懂得,带有各种修改的各种实施例也是可以接受的。
Claims (12)
1.数据处理系统中用于第一逻辑分区中的第一进程访问第二逻辑分区中的远程存储器的方法,包括:检索远程存储器的扩展的跨存储器描述符,其中,扩展的跨存储器描述符提供远程存储器的描述;以及,第一逻辑分区中的第一进程基于扩展的跨存储器描述符访问第二逻辑分区中的远程存储器。
2.根据权利要求1所述的方法,其中,扩展的跨存储器描述符包括将扩展的跨存储器描述符指定为描述不同逻辑分区中的远程存储器的第一字段。
3.根据权利要求2所述的方法,其中,扩展的跨存储器描述符进一步包括标识第二逻辑分区中的远程存储器的第二字段,指定远程存储器的大小的第三字段以及指定远程存储器中的起始地址的第四字段。
4.根据权利要求1所述的方法,其中,当初始化第一逻辑分区中的操作系统时生成扩展的跨存储器描述符。
5.根据权利要求1所述的方法,其中,由将其他逻辑分区的远程存储器附加到第一逻辑分区的操作系统的操作系统内核服务来生成扩展的跨存储器描述符。
6.根据权利要求5所述的方法,其中,当初始化第一逻辑分区中的操作系统时,操作系统内核服务基于由操作系统内核服务分析的第二逻辑分区的设备树生成扩展的跨存储器描述符。
7.根据权利要求6所述的方法,其中,由系统管理程序维护设备树。
8.根据权利要求1所述的方法,其中,第一逻辑分区位于服务器计算设备中,而第二逻辑分区位于客户端计算设备中。
9.根据权利要求1所述的方法,其中,访问第二逻辑分区中的远程存储器包括使用扩展的跨存储器描述符来执行直接存储器访问操作。
10.根据权利要求1所述的方法,其中,基于扩展的跨存储器描述符来访问第二逻辑分区中的远程存储器包括:沿着输入/输出(I/O)堆栈将扩展的跨存储器描述符传递到物理设备驱动程序;基于扩展的跨存储器描述符来生成直接存储器访问操作;以及将直接存储器访问操作提交到I/O适配器,其中,I/O适配器将直接存储器访问操作传输到第二逻辑分区。
11.包括存储在计算机可读取的存储介质上的计算机程序代码的计算机程序产品,当在数据处理系统上执行时,指示数据处理系统执行根据权利要求1所述的方法。
12.用于第一逻辑分区中的第一进程访问第二逻辑分区中的远程存储器的系统,包括:用于检索远程存储器的扩展的跨存储器描述符的装置,其中,扩展的跨存储器描述符提供远程存储器的描述;以及,用于供第一逻辑分区中的第一进程基于扩展的跨存储器描述符访问第二逻辑分区中的远程存储器的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/855,726 | 2004-05-27 | ||
US10/855,726 US7249208B2 (en) | 2004-05-27 | 2004-05-27 | System and method for extending the cross-memory descriptor to describe another partition's memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1930553A true CN1930553A (zh) | 2007-03-14 |
CN100442237C CN100442237C (zh) | 2008-12-10 |
Family
ID=34968547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800080077A Active CN100442237C (zh) | 2004-05-27 | 2005-05-18 | 访问逻辑分区中的存储器的方法和系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7249208B2 (zh) |
EP (1) | EP1769348A1 (zh) |
JP (1) | JP4288295B2 (zh) |
CN (1) | CN100442237C (zh) |
CA (1) | CA2568747C (zh) |
TW (1) | TWI336836B (zh) |
WO (1) | WO2005119444A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103502926A (zh) * | 2011-04-29 | 2014-01-08 | 美国网域存储技术有限公司 | 基于扩展区的存储架构 |
CN104679662A (zh) * | 2013-04-25 | 2015-06-03 | 国际商业机器公司 | 用于管理共享存储器的方法和系统 |
CN109471642A (zh) * | 2018-11-15 | 2019-03-15 | 北京行易道科技有限公司 | 固件生成存储方法及装置、固件启动方法及装置 |
CN109643290A (zh) * | 2016-10-01 | 2019-04-16 | 英特尔公司 | 用于具用扩展分段的面向对象的存储器管理的技术 |
CN110168502A (zh) * | 2017-01-13 | 2019-08-23 | Arm有限公司 | 存储器划分 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7299336B2 (en) * | 2004-08-18 | 2007-11-20 | International Business Machines Corporation | Scaling address space utilization in a multi-threaded, multi-processor computer |
US8327353B2 (en) * | 2005-08-30 | 2012-12-04 | Microsoft Corporation | Hierarchical virtualization with a multi-level virtualization mechanism |
US9189291B2 (en) | 2005-12-12 | 2015-11-17 | International Business Machines Corporation | Sharing a kernel of an operating system among logical partitions |
US7610481B2 (en) * | 2006-04-19 | 2009-10-27 | Intel Corporation | Method and apparatus to support independent systems in partitions of a processing system |
US20070282928A1 (en) * | 2006-06-06 | 2007-12-06 | Guofang Jiao | Processor core stack extension |
US8769168B2 (en) * | 2006-10-17 | 2014-07-01 | International Business Machines Corporation | Method for communicating with a network adapter using a queue data structure and cached address translations |
JP4792434B2 (ja) * | 2007-08-31 | 2011-10-12 | 株式会社日立製作所 | 仮想計算機の制御方法 |
US8141092B2 (en) | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition |
US8141093B2 (en) * | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in an IOV management partition |
US8141094B2 (en) | 2007-12-03 | 2012-03-20 | International Business Machines Corporation | Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions |
US8359415B2 (en) * | 2008-05-05 | 2013-01-22 | International Business Machines Corporation | Multi-root I/O virtualization using separate management facilities of multiple logical partitions |
US8144582B2 (en) * | 2008-12-30 | 2012-03-27 | International Business Machines Corporation | Differentiating blade destination and traffic types in a multi-root PCIe environment |
US20100223419A1 (en) * | 2009-03-02 | 2010-09-02 | International Business Machines Corporation | Copy circumvention in a virtual network environment |
US9792136B2 (en) * | 2011-04-28 | 2017-10-17 | Microsoft Technology Licensing, Llc | Hardware assisted inter hypervisor partition data transfers |
US9244798B1 (en) * | 2011-06-20 | 2016-01-26 | Broadcom Corporation | Programmable micro-core processors for packet parsing with packet ordering |
US9455598B1 (en) | 2011-06-20 | 2016-09-27 | Broadcom Corporation | Programmable micro-core processors for packet parsing |
US9886312B2 (en) | 2011-09-28 | 2018-02-06 | Microsoft Technology Licensing, Llc | Dynamic provisioning of virtual video memory based on virtual video controller configuration |
US8615614B2 (en) | 2011-11-30 | 2013-12-24 | Freescale Semiconductor, Inc. | Message passing using direct memory access unit in a data processing system |
GB2502121B (en) * | 2012-05-17 | 2014-07-02 | Displaylink Uk Ltd | Operation of a display system |
CN103440202B (zh) * | 2013-08-07 | 2016-12-28 | 华为技术有限公司 | 一种基于rdma的通信方法、系统及通信设备 |
US10691310B2 (en) * | 2013-09-27 | 2020-06-23 | Vmware, Inc. | Copying/pasting items in a virtual desktop infrastructure (VDI) environment |
US10884945B2 (en) | 2015-06-30 | 2021-01-05 | International Business Machines Corporation | Memory state indicator check operations |
US10635307B2 (en) | 2015-06-30 | 2020-04-28 | International Business Machines Corporation | Memory state indicator |
US10404797B2 (en) * | 2017-03-03 | 2019-09-03 | Wyse Technology L.L.C. | Supporting multiple clipboard items in a virtual desktop infrastructure environment |
US20230385227A1 (en) * | 2022-05-27 | 2023-11-30 | Nvidia Corporation | Remote descriptor to enable remote direct memory access (rdma) transport of a serialized object |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590313A (en) * | 1994-06-30 | 1996-12-31 | International Business Machines Corporation | Multiple protocol device interface subsystem and method |
US5931925A (en) * | 1996-12-02 | 1999-08-03 | International Business Machines Corporation | System and method for efficiently transferring datastreams in a multimedia system |
US6381682B2 (en) * | 1998-06-10 | 2002-04-30 | Compaq Information Technologies Group, L.P. | Method and apparatus for dynamically sharing memory in a multiprocessor system |
US6658469B1 (en) * | 1998-12-18 | 2003-12-02 | Microsoft Corporation | Method and system for switching between network transport providers |
US7007276B1 (en) * | 1999-09-28 | 2006-02-28 | International Business Machines Corporation | Method, system and program products for managing groups of partitions of a computing environment |
US6904599B1 (en) * | 1999-11-29 | 2005-06-07 | Microsoft Corporation | Storage management system having abstracted volume providers |
US20020071450A1 (en) * | 2000-12-08 | 2002-06-13 | Gasbarro Dominic J. | Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network |
US7085827B2 (en) * | 2001-09-20 | 2006-08-01 | Hitachi, Ltd. | Integrated service management system for remote customer support |
US6751783B1 (en) * | 2001-10-30 | 2004-06-15 | Lsi Logic Corporation | System and method for optimizing an integrated circuit design |
US6854032B2 (en) * | 2001-12-04 | 2005-02-08 | Sun Microsystems, Inc. | System for accessing a region of memory using remote address translation and using a memory window table and a memory region table |
US7088735B1 (en) * | 2002-02-05 | 2006-08-08 | Sanera Systems, Inc. | Processing data packets in a multiple protocol system area network |
US6725284B2 (en) * | 2002-04-25 | 2004-04-20 | International Business Machines Corporation | Logical partition hosted virtual input/output using shared translation control entries |
AU2003278350A1 (en) * | 2002-11-18 | 2004-06-15 | Arm Limited | Secure memory for protecting against malicious programs |
JP2004258840A (ja) * | 2003-02-25 | 2004-09-16 | Hitachi Ltd | 仮想化されたi/oデバイスをもつ計算機システム |
US7574708B2 (en) * | 2004-03-04 | 2009-08-11 | International Business Machines Corporation | Mechanism for enabling the distribution of operating system resources in a multi-node computer system |
US7299336B2 (en) * | 2004-08-18 | 2007-11-20 | International Business Machines Corporation | Scaling address space utilization in a multi-threaded, multi-processor computer |
US20060080514A1 (en) * | 2004-10-08 | 2006-04-13 | International Business Machines Corporation | Managing shared memory |
-
2004
- 2004-05-27 US US10/855,726 patent/US7249208B2/en active Active
-
2005
- 2005-05-02 TW TW094114079A patent/TWI336836B/zh not_active IP Right Cessation
- 2005-05-18 CN CNB2005800080077A patent/CN100442237C/zh active Active
- 2005-05-18 CA CA2568747A patent/CA2568747C/en not_active Expired - Fee Related
- 2005-05-18 EP EP05747467A patent/EP1769348A1/en not_active Withdrawn
- 2005-05-18 WO PCT/EP2005/052279 patent/WO2005119444A1/en active Application Filing
- 2005-05-18 JP JP2007513913A patent/JP4288295B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103502926A (zh) * | 2011-04-29 | 2014-01-08 | 美国网域存储技术有限公司 | 基于扩展区的存储架构 |
CN103502926B (zh) * | 2011-04-29 | 2015-06-03 | 美国网域存储技术有限公司 | 基于扩展区的存储架构 |
CN104679662A (zh) * | 2013-04-25 | 2015-06-03 | 国际商业机器公司 | 用于管理共享存储器的方法和系统 |
CN109643290A (zh) * | 2016-10-01 | 2019-04-16 | 英特尔公司 | 用于具用扩展分段的面向对象的存储器管理的技术 |
CN109643290B (zh) * | 2016-10-01 | 2024-03-19 | 英特尔公司 | 用于具用扩展分段的面向对象的存储器管理的技术 |
CN110168502A (zh) * | 2017-01-13 | 2019-08-23 | Arm有限公司 | 存储器划分 |
CN109471642A (zh) * | 2018-11-15 | 2019-03-15 | 北京行易道科技有限公司 | 固件生成存储方法及装置、固件启动方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1769348A1 (en) | 2007-04-04 |
CN100442237C (zh) | 2008-12-10 |
TWI336836B (en) | 2011-02-01 |
US7249208B2 (en) | 2007-07-24 |
US20050268047A1 (en) | 2005-12-01 |
JP4288295B2 (ja) | 2009-07-01 |
WO2005119444A1 (en) | 2005-12-15 |
CA2568747A1 (en) | 2005-12-15 |
JP2008500619A (ja) | 2008-01-10 |
CA2568747C (en) | 2010-11-02 |
TW200617666A (en) | 2006-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1930553A (zh) | 访问逻辑分区中的存储器 | |
US5938765A (en) | System and method for initializing a multinode multiprocessor computer system | |
US6665759B2 (en) | Method and apparatus to implement logical partitioning of PCI I/O slots | |
CN100339780C (zh) | 包括可通过安全通信路径连接中央处理器与安全服务处理器的安全执行模式的计算机系统 | |
CN1784663A (zh) | 无效存储器,清除缓冲区表项 | |
CN101031893A (zh) | 使用分层转换表对输入/输出设备的地址转换 | |
CN1653425A (zh) | 在逻辑分区数据处理系统中动态分配和解除分配处理器的方法和装置 | |
CN1834922A (zh) | 程序变换方法及程序变换系统 | |
CN1737780A (zh) | 从一个设备驱动程序向另一个传送信息的系统和方法 | |
JP4405435B2 (ja) | 動的なホスト区画ページ割り当てのための方法および装置 | |
CN1801740A (zh) | 资源动态再配置的方法、系统和设备 | |
CN1492323A (zh) | 多处理器地址转换的高效仿真方法和系统 | |
CN1975679A (zh) | 用于优化分段资源分配的方法和设备 | |
CN1924812A (zh) | 用于i/o适配器的方法和装置 | |
CN1589431A (zh) | 基于pmi和smi的调度执行框架中用于并发处理程序执行的方法和系统 | |
JP2007133901A (ja) | 論理分割された(lpar)計算機でシステム・ファームウェア更新を安全に実行する機構 | |
TW200809514A (en) | Stalling of DMA operations in order to do memory migration using a migration in progress bit in the translation control entry mechanism | |
JP2004318873A (ja) | 異種分割システムにおけるグローバル・エラーを報告するための方法および装置 | |
CN1924842A (zh) | 用于i/o适配器的方法和装置 | |
CN101079083A (zh) | 一种对访存操作进行权限检查的系统、装置及方法 | |
US20100100892A1 (en) | Managing hosted virtualized operating system environments | |
JP2004318880A (ja) | ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを同時更新及び活動化するための方法及び装置 | |
US7089411B2 (en) | Method and apparatus for providing device information during runtime operation of a data processing system | |
JP5431621B2 (ja) | I/oメッセージの影響を受ける1つ又は複数個のパーティション化可能なエンドポイントを決定するデータ処理システム | |
US8139595B2 (en) | Packet transfer in a virtual partitioned environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |