CN1601498A - 存储器映射输入/输出构造中存储器资源的基于位置的分配 - Google Patents
存储器映射输入/输出构造中存储器资源的基于位置的分配 Download PDFInfo
- Publication number
- CN1601498A CN1601498A CN200410082667.7A CN200410082667A CN1601498A CN 1601498 A CN1601498 A CN 1601498A CN 200410082667 A CN200410082667 A CN 200410082667A CN 1601498 A CN1601498 A CN 1601498A
- Authority
- CN
- China
- Prior art keywords
- memory
- pci
- groove
- mapped
- terminal point
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/206—Memory mapped I/O
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Storage Device Security (AREA)
Abstract
一种装置、程序产品、以及方法,其中根据IO资源所耦合的各个IO终点的位置将存储器地址空间非均一地分配给存储器映射IO构造中这些IO资源。例如在基于PCI的环境中,根据其中安装了PCI适配器的特定槽的位置,向该PCI适配器分配PCI总线地址空间中的存储器地址范围。
Description
技术领域
本发明涉及计算机与计算机软件,具体而言,涉及在存储器映射输入/输出构造中向输入/输出资源分配存储器。
背景技术
由于当代社会对计算机的不断增加的倚赖性,计算机技术已经在许多领域取得了进展,以满足提高的性能需求,以及给予计算机的越来越显著的信任的地位。具体地,计算机越来越用于高性能与任务关键应用,其中必须在恒定的基础上执行处理,并且根本不允许任何故障时间。
性能的提高经常要求使用越来越快、越来越复杂的硬件组件。另外,在许多应用中,多个硬件组件,诸如处理器与诸如存储设备、网络连接等等的外设部件,并行运行以提高系统的总体性能。
研制计划所致力的一个具体领域是管理计算机所使用的外围硬件组件,例如存储设备、网络连接、工作站、以及适配器、控制器与其他用来将此类组件连接到计算机中心处理单元的互连硬件设备。外设部件,此后称为输入/输出(I/O)资源,一般通过一个或多个形成“构造”(fabric)的中间互连硬件设备组件耦合至计算机,在中央处理单元与IO资源之间的通信通过所述构造。
在较低性能的计算机设计中,例如在单一用户计算机,诸如台式计算机、膝上计算机等等中,此类设计中所使用的IO构造可能只需要相对简单的设计,例如使用支持集成驱动电子(IDE)、外设部件互连(PCI)、或通用串行总线等几种互连技术的IO芯片组。在另一方面,在较高性能计算机设计中,IO需求可以使之需要互连硬件设备的复杂配置,以处理此类设计的所有必需的通信需求。在一些情况下,通信需求可能大得需要使用一个或多个附加的封闭体(enclosure),这些封闭体与计算机中央处理器所在的封闭体分离并且耦合。
在更复杂的设置中,诸如IO适配器等外设部件经常被置于印刷电路板或卡上,这些板或卡使用“槽”被安装在并耦合至IO构造上,所述槽排列在计算机的主封闭体或附加封闭体中的一个或者两者中。其他组件可能以其他方式被安装在并耦合至IO构造上,例如通过电缆和其他类型的连接器,然而,为了方便,这些其他类型的连接器经常被称为“槽”。因此不管使用哪种类型的连接,IO槽都表示IO资源用来通过IO构造与计算机通信的连接点,或者IO终点。在一些情况下,名词“IO槽”也用来指安装到IO构造中特定连接点的实际的外围硬件组件,在这种情况下,IO槽或者耦合其上的IO资源此后也被称为终点IO资源。
从最小化系统故障时间的目标出发,许多IO构造也支持“热插入”IO终点资源的能力,从而IO终点资源可以不用关闭系统就脱离IO构造或连接到IO构造。复杂系统经常支持动态配置IO构造的能力,以允许运行时间中IO终点资源的移除/添加。
在许多计算机系统中,尤其是那些使用PCI兼容IO总线与适配器的系统中,诸如设备驱动器等计算机程序经常使用存储器映射输入/输出(MIMO),以与IO终点资源通信。这就使得在计算机系统上运行的诸如设备驱动器等计算机程序能够将诸如适配器等IO资源当作它们好象直接逻辑连接到系统的处理器/存储器总线,并且只是占据了特定存储器地址范围的系统存储器扩展。然后,设备驱动器可以使用目标为直接与内部适配器设备相关的“存储器”地址的处理器载入或存储指令与适配器通信。在此类模型中,设备驱动器大部分不知道IO构造元件的构成与排列,并且响应存储器映射载入或存储,倚赖于IO构造与适配器来表现得好象设备驱动器只是访问存储器区域。
然而,向诸如IO适配器等IO资源的存储器地址范围的分配可能出问题,尤其在支持在系统运行时IO资源的动态重新配置的复杂计算机系统中。在诸如单拥护计算机等较不复杂的计算机中,系统固件一般在启动时为每个IO槽选择存储器范围,并且只有在特定槽中实际检测到IO适配器并且可以确定该特定适配器模型的实际存储器需求时才分配存储器范围给该槽。
然而,人们发现在可能需要重新配置在活跃系统上的IO构造的计算机中,在启动时只向检测到的IO适配器分配存储器具有明显的缺点。例如,如果IO适配器最初配置在需要16MB存储器的槽中,并且固件就分配了那么多,如果后来该适配器被需要更多存储器的适配器替换,则固件必须找到容纳新IO适配器所需尺寸的未使用的存储器空间范围,或者重新启动计算机以向所有已配置IO适配器重新分配存储器空间。
在另一方面,高性能多用户计算机经常需要这样一种能力:以对系统可用性的最小影响或者无影响地并发地替换或者添加IO适配器。作为IO适配器配置变化的结果,此类计算机重启整个平台以重新划定存储器大小一般是不可行的。因此,平台固件一般必须在知道每个所安装的IO适配器的存储器需求之前选择整个IO构造中的存储器分配。对于提供诸如当客户需要时可添加的IO适配器等可热插入的IO终点或者槽的多重性的IO构造,这一点更重要。
热插入与按需求意味着IO适配器可以无干扰地添加。为了达到这一点,因为如果在平台启动时IO槽为空或者IO适配器被解除配置就无法知道IO适配器的特定存储器需求,所以固件必须采用在知道每个可能IO适配器的实际需求之前为每个IO槽确定PCI存储器的“适当”量的某种方法。
另外,在一些计算机设计中,可用来分配给IO资源的存储器地址空间的量在本质上是有限的。在这种情况下,简单地从一开始就向每个IO槽分配更多的存储器地址空间,而不管已安装或将安装在该槽中的特定IO适配器为何,一般不是可以接收的解决方案。
已经有些设计试图根据连接器类型来分配存储器地址空间。例如,在一些基于PCI的环境中,IO槽与适配器可以支持32位或64位连接器。在此类设计中,简单地根据连接器类型就可以向每个IO槽分配不同量的存储器空间地址(例如对于32位连接器位128MB,对于64位连接器位256MB)。这些选择基于以下不精确的法则:与64位适配器相比,32位适配器功能更少,复杂度更低,并且这些值(128MB与256MB)表示了对于“大部分”IO适配器所需要的存储器地址空间量的“较有把握的猜测”。
然而,从这些先验分配的“较有把握的猜测”的选择出发,显然作为此类对存储器地址空间的固定分配的结果,即使是几个选择模型的某些适配器也根本不可能在特定平台上运行。随着适配器的复杂度越来越高,预期某些适配器将超出这些“较有把握的猜测”的值不是不合理的。在另一方面,虽然为不同连接器类型选择更高的分配可能使平台能够容纳其他类型的IO适配器,此类更高的分配将降低那些不需要那么多存储器地址空间的适配器的效率,并且可能限制可在固定存储器空间中共存的适配器数目。
另外,一些系统支持使用将IO构造扩展到外部封闭体的桥式适配器,以容纳附加的IO终点与适配器。然而,桥式适配器自身一般不能报告其所管理的IO适配器的存储器需求。因此,可能的情况是:虽然没有可以插入IO槽的单个IO适配器需要超过对于该槽的“较有把握的猜测”的选择,但是在该槽中放置这样的“扩展”桥式适配器可以致使该槽需要在该桥式适配器下多个IO适配器的综合存储器地址空间,从而大大超过“较有把握的猜测”的选择。
因此,在本领域中明显需要一种更有效率更灵活的方式来分配存储器地址空间给存储器映射IO构造中的IO资源。
发明内容
本发明通过提供一种装置、程序产品、以及方法来处理与现有技术相关联的这些以及其他问题,其中根据IO资源所耦合的各个IO终点的位置将存储器地址空间非均一地分配给存储器映射IO构造中这些IO资源。换而言之,分配给IO资源的存储器地址空间的量基于该IO资源所连接的IO构造中的IO终点。
在根据本发明的许多实施方式中,将被分配给特定IO构造元件(例如IO封闭体或桥)中每个IO终点存储器地址空间量可以供给客户与系统管理人员,例如通过公布,从而根据IO资源的存储器需求,这些IO资源最终可以被安装在适当的IO终点内。由此,可以用分配给这些资源的实际存储器空间更好地匹配不同IO资源的特定存储器需求,从而导致全系统内存储器资源的更高效率的分配。
因此,根据本发明,通过以下方式可以将存储器地址空间分配给耦合至存储器映射IO构造中多个IO终点的多个IO资源:确定存储器映射IO构造中多个终点中的每个IO终点的位置;以及根据所确定的存储器映射IO构造中IO终点的位置,向多个IO终点非均一地分配存储器地址范围。
作为本发明特征的这些以及其他优点与特征在权利要求中列出,并且权利要求构成本文的一部分。然而,为了更好地理解本发明、通过其使用而取得的优点与目标,需要参照附图、以及相伴随的描述,其中描述了本发明的示例性实施方式。
附图说明
图1为包含根据本发明的基于位置的存储器分配的逻辑分区计算机中主要硬件组件的方框图。
图2为能够与根据本发明的基于位置的存储器分配相关联地使用的示例性存储器映射IO构造的方框图。
图3为显示图2的存储器映射IO构造的初始化的流程图。
具体实施方式
此后所述的实施方式使用基于位置的存储器分配,从存储器映射IO构造的存储器地址空间中分配存储器范围给耦合至该构造的各种IO资源,例如,诸如网络连接、存储设备、打印机、工作站、和/或适配器和/或其控制器等外围硬件组件。
以下将会明白,根据本发明的实施方式可以使用包括PIC兼容IO构造等等的存储器映射IO构造。另外,根据本发明的实施方式可以在存储器映射IO构造中并入无限数目与类型的IO构造元件,包括(例如)桥设备、集线器设备、交换机、连接器、主机设备、从属设备、控制设备、电缆、调制解调器、串性化器/解串性化器、光电收发器等等。应该理解各种此类设备可以通过提供一个或多个IO终点支持到IO资源的连通性,例如IO适配器可以耦合的IO槽。然而,同样应该理解本发明既不局限于基于PCI的IO构造,也不局限于基于槽的体系结构。
现在转到附图,其中在所有附图中类似的标记表示类似的部件,图1显示能够实现根据本发明的基于位置的存储器分配的计算机10中的主要硬件组件。计算机10被显示为被逻辑分区的计算机,并且可以一般地表示(例如)多种多用户计算机中的任何一种,诸如网络服务器、中型计算机、大型计算机等等,例如IBM eServer iSeriese或者pSeries计算机。然而,应当理解本发明可以实现于其他计算机与数据处理系统,例如,在单用户计算机中,诸如工作站、台式计算机、膝上计算机、便携计算机等等,或者实现于其他可编程电子设备(例如包括嵌入式控制器等等),以及包括非逻辑分区计算机的其他多用户计算机。
计算机10一般包含通过总线16耦合至存储器14的一个或多个处理器12。每个处理器12可以实现为单线程处理器或实现为多线程处理器,诸如处理器12a,其被显示包含多个硬件线程18。对于大部分部件,多线程处理器12a中的每个硬件线程18都被驻留在该计算机中的软件当做独立的处理器。
另外,图1还显示一个或多个处理器12(例如处理器12b)可以被实现为服务处理器,其被用来运行专门的固件代码以管理系统初始程序载入(IPL),并且用来监视、诊断、并配置系统硬件。一般地,计算机10将包括一个服务处理器与多个系统处理器,所述多个系统处理器被用来执行驻留在该计算机中的操作系统与应用,但是本发明并不限于该特定实施方式。在某些实现中,服务处理器可能以不同于通过总线16的方式耦合至计算机中的各种其他硬件组件。
存储器14可能包括一级或更多级的存储器设备,例如基于DRAM的主存储器,以及一级或更多级数据、指令和/或组合高速缓存,其中某些高速缓存服务于单个的处理器或者多个处理器,如现有技术所知。另外,存储器14通过IO构造20耦合至许多种类型的外部设备,例如一个或多个网络适配器22(用于将计算机连接到(多个)网络24),一个或多个存储控制器26(用于将计算机连接到一个或多个存储设备28)以及一个或多个工作站控制器30(用于通过多个工作站适配器连接到一个或多个终端或工作站32)。
图1还详细描绘了用于在计算机10上实现逻辑分区计算环境的主要软件组件与资源,包括由分区管理器或者超级管理器36管理的多个逻辑分区34。如现有技术所知,可以支持任意数目的逻辑分区,并且在任意时刻驻留在计算机中的逻辑分区的数目在向该计算机添加或者从其移除分区时可以动态改变。
在所描绘的基于IBM eServer的实现中,分区管理器36包括两层程序代码。第一层,此后称为不可调度部分38,实现在计算机10的固件、或者特许内部代码(LIC)之中,其被用来提供到各种硬件组件的低级接口,同时将较高层,例如操作系统与硬件访问的细节隔离。固件也可以与诸如服务处理器12b等服务处理器通信。不可调度部分38提供了计算机10的许多低级分区管理功能,例如页表管理等等。不可调度部分38还没有任务的概念,并且主要通过来自较高层的软件函数调用或者来自硬件的中断来访问。
分区管理器36中程序代码的第二层此处称为可调度部分40。与没有任务概念、在存储器重定位关闭的情况下运行、并且主要通过来自较高层软件的超级管理器函数调用来访问的不可调度部分38不同,可调度部分40具有任务的概念(与任何操作系统相同),并且在存储重定位开通的情况下运行。可调度部分一般以与分区大致相同的方式运行,只是可调度部分对于用户是隐藏的。可调度部分一般管理较高级的分区管理操作,诸如生成或消除分区,并发硬件维护,分配处理器、存储器、以及其他硬件资源给各个分区34等等。
每个逻辑分区34一般被静态地和/或动态地分配计算机10中可用资源的一部分。例如,每个逻辑分区可以被分配一个或多个处理器12和/或一个或多个硬件线程18,以及可用存储器空间的一部分。逻辑分区可以共享诸如处理器等特定硬件资源,从而给定处理器被多于一个逻辑分区使用。可替换地,硬件资源可以一次只被分配给一个逻辑分区。
附加的资源,例如海量存储、备份存储、用户输入、网络连接、显示设备、及其IO适配器,一般以本领域公知的方式分配给一个或多个逻辑分区。在其他实施方式中,例如在非逻辑分区计算机中,所有的IO资源一般在全系统的基础上可用。
每个逻辑分区34使用操作系统34,该操作系统以与非逻辑分区计算机的操作系统相同的方式控制该逻辑分区的主要操作。例如,每个操作系统42都可以使用可从国际商用机器公司得到的OS/4000操作系统,以及诸如AIX、UNIX、Linux等其他操作系统来实现。
每个逻辑分区34运行于分离的、或者独立的存储器空间中,并且因此从运行于每个此类逻辑分区中的每个用户应用44的角度来看,每个逻辑分区都与独立的非分区计算机同样的方式动作。这样,用户应用一般不需要任何特殊的配置以用于分区环境。
考虑到逻辑分区34作为分离的虚拟计算机的本质,可能希望支持分区间通信,以允许逻辑分区相互通信,就好象逻辑分区在分离的物理机器上。这样,在一些实现中,可能希望在不可调度部分38中支持虚拟局域网(LAN)46,以允许逻辑分区34通过诸如以太网协议等网络协议相互通信。根据本发明可能还支持其他支持分区之间通信的方式。
应该理解根据本发明可以使用其他逻辑分区环境。例如,分区管理器的可调度部分可能驻留于特定逻辑分区(一般被称为主逻辑分区)。
一般地,在本文中将运行来实现本发明的例程称为“计算机程序代码”或简单地“程序代码”,而不管所述例程被实现为操作系统的部分、特定应用、组件、程序、对象、模块或指令序列,甚或其子集。程序代码一般包括一个或多个指令,这些指令在各个时间驻留于计算机中的各种存储器与存储设备之中,并且这些指令当被计算机中一个或多个处理器读取并执行时使得该计算机执行施展实现本发明各个方面的步骤或者元素所必须的步骤。另外,虽然本发明一直并且此后都在功能齐备的计算机与计算机系统的环境下描述,但是本领域技术人员应该理解本发明的各种实施方式能够被分布为各种形式的程序产品,并且本发明同样适用,而不管被用来实现所述分布的计算机可读信号承载介质的特定类型。计算机可读信号承载介质的例子包括但不局限于可记录类型介质,诸如易失性与非易失性存储器设备、软盘与其他可移除盘、硬盘驱动器、磁带、光盘(例如CD-ROM、DVD等等),等等,以及传输类型介质,诸如数字与模拟通信链接。
另外,此后所述的各种程序代码可以根据其在本发明特定实施方式中所实现的应用或软件组件来识别。然而,应该理解此后任何特定的程序术语只是为了方便而被使用,因此本发明不应该局限于只在由这些术语所标识和/或暗示的任何特定应用中使用。另外,考虑到计算机可以被组织为例程、过程、方法、模块、对象等等的一般为无限多的方式以及程序功能可能在驻留于一般计算机中的各个软件层(例如操作系统、库、API、应用、applet等等)中分配的各种方式,应该理解本发明并不局限于此处所述的程序功能的特定组织与分配。
本领域技术人员应理解图1所示的示例性环境不是用来局限本发明。本领域技术人员应理解在不脱离本发明范围的前提下可以使用其他的可替换的硬件和/或软件环境。
现在转到图2,显示了示例性的具有IO构造52的计算机系统50,所述IO构造52用来将系统的中央电子综合装置(CEC)54通过多个IO终点56(例如IO槽)耦合至多个IO资源57。CEC 54所示为包括耦合至处理器/存储器或者系统总线62的一个或多个处理器58与存储器60,并且可以对应(例如)图1中IO构造20以上的计算机10的部分。在所示实施方式中,CEC 54位于与IO槽56分离的封闭体中,并且这样一来,IO槽以成组的方式位于一个或多个IO封闭体64中。应该理解在一些实现中,图2所示的组件可以被包含在同一封闭体中。
IO构造52包括一个或多个远程IO(RIO)网络66,其中每个网络66为环形拓扑构造,包括位于CEC 54中的、并且耦合至处理器/存储器总线62的RIO集线器68,以及安装在IO封闭体64中的一个或多个RIO桥70。每个RIO桥70进而耦合至一个或多个PCI主机桥(PHB)72,以支持PCI兼容的接口,例如PCI、PCI-X或PCI Express。每个PHB 72都含有主PCI总线,其耦合至多个PCI-PCI桥74,每个PCI-PCI桥74进而将相关的IO槽56连接到辅PCI总线。可替换地,一个或多个PHB 72的主PCI总线可以直接耦合至IO槽(例如,如图2中IO封闭体64A中的PHB 72A所示,其直接耦合至IO槽56A)。
IO槽56可以实现为(例如)接收PCI兼容的适配器卡的连接器,或者直接嵌入(焊接)到包含PCI-PCI桥和/或PHB的电子平面的PCI适配器芯片。
如上所述,基于PCI的接口支持存储器映射输入/输出(MMIO)。这样,当计算机50初始化IO构造52时,可以允许计算机将处理器地址“绑定”到特定PCI适配器存储器,用于从处理器58到适配器的MMIO,以及从存储器60到适配器的地址,以使适配器能够与存储器60进行来往的DMA。
在所示实施方式中,使用在PHB 72与IO槽56之间的PCI-PCI桥74允许在各个适配器与PHB 72、RIO元件68、70、处理器58、以及存储器60之间的附加信令与适配器绑定隔离。附加隔离可以用来(例如)允许将各个IO槽分配给驻留在计算机中的不同逻辑分区(如果此处实现了逻辑分区)。
另外,在所示实施方式中,热插入控制器最好与每个IO槽相关联,并且并入PHB 72或者PCI-PCI桥74中,以允许选择性地向每个IO槽56施加电气功率,而不管到系统中其他IO槽56的功率状态。另外,在一些实施方式中,成组的IO构造元件可以集成到公共集成电路或卡中。例如,多个PCI-PCI桥74可以安装在公共集成电路中。
应该理解,根据本发明,IO构造可以使用无数种可替换配置,这些配置支持在计算机中终点IO资源与处理器之间的通信。例如,多种不同的基于存储器映射IO的互连标准,包括但不限于USB、IDE、EISA、PCI-Express、MicroChannel、以及Infiniband,可以用来替换PCI或者在PCI之外使用。另外,根据本发明,在存储器映射IO构造中可以融入其他数目与配置的桥、交换机、主机、集线器、封闭体、适配器、连接器、通信协议、控制器、以及其他类型的硬件设备。因此,应该理解图2的配置实质上只是示例性的,并且本发明并不局限于此处所公开的特定配置。
在基于PCI的IO构造被用来将IO适配器耦合至诸如iSeries或pSeries等逻辑分区计算机的、所示的实施方式中,基于位置的存储器分配导致PCI存储器空间中地址范围向PCI总线槽的非均一分配,其可以被用来(例如)向在每个物理PCI总线封闭体上所选择的槽提供大的PCI存储器区域。另外,此类存储器分配也可以用来为安装在计算机中的(多个)操作系统提供由体系结构所要求的最小量(例如,对于AIX操作系统为每个32位槽128MB、每个64位槽256MB)。
在此实施方式中,当检测到IO封闭体并且确定了其特定类型或者IO槽配置时,由计算机配置固件(例如驻留在逻辑分区计算机的分区管理器中)选择分配。结果是每个封闭体类型或者PCI总线背板(bachplane)都能够提供可以在客户配置指令或者软件中指定的所选择的槽,以允许特定适配器型号或者PCI扩展配置的动态PCI存储器需求。
这样一来,此后详细讨论的实施方式通过以下方式运行:根据IO槽所在的PCI背板、以及在给定PCI背板上的槽号,向该IO槽分配PCI存储器地址的不同范围。分配的给定背板上每个槽的PCI存储器地址范围的大小应该公布,从而允许客户将要求更大PCI存储器范围的适配器(例如配置多个设备的适配器)插入被分配了适当量的PCI存储器地址的槽中,或者允许自动客户定制定位配置程序来选择槽(例如,根据已知或存储的客户配置)。
从以下可以明显看出,在所示实施方式中,在配置固件发现并配置每个PCI主机桥(PHB)时,PCI存储器地址范围被分配给该PHB。该范围随后在PHB之下的PCI辅总线(IO槽)之间分割。通过查询称为重要产品数据(VPD)的配置数据,固件能够确定PHB所在的PCI背板,以及其下的槽配置。根据此位置信息,固件根据该背板的槽配置为每个槽预定的存储器映射IO操作分配预定量的PCI地址空间。注意,每当配置数据没有为槽预定特定分配时,可能希望缺省为这样的配置:32位槽分配PCI存储器的128MB,而64位槽分配PCI存储器的256MB。
现在转到图3,显示了示例性初始化构造例程100。例如当希望初始化IO构造时,例如在系统初始化期间,可以调用例程100。应该理解例程100的功能也可以在计算机运行的不同阶段实现,(例如)以在运行时为已经被添加到IO构造的IO封闭体或其他IO构造元件动态分配存储器地址范围。
例程100开始于方框102,访问IO配置数据以确定IO构造中RIO总线、以及由此的RIO环的数目。然后,方框104开始FOR循环以处理每个RIO集线器/环。
对于每个这样的集线器/环,方框106向RIO集线器分配存储器映射IO范围。应该理解RIO集线器将使用地址转换,由此允许不同环中的IO终点使用同样的地址范围。
接着,方框108遍历RIO环,方框110试图确定在该环上是否检测到RIO桥(一般为其总线适配器)。如果没有检测到这样的RIO桥,则控制返回方框104以处理另外的RIO集线器/环。否则,如果检测到RIO桥,则控制传给方框111,以从分配给RIO集线器/环的范围中分配存储器映射IO范围给RIO桥。然后,控制传给方框112,以读取总线配置数据(表示对于背板/封闭体的配置数据),从而确定在相关背板/封闭体中PHB的数目。
接着,在方框114中开始FOR循环以处理在该背板/封闭体中的每个PHB。对于每个这样的PHB,控制传给方框116,以从分配给该RIO桥的范围中分配存储器映射IO范围给该PHB。
一般,向PHB分配存储器地址是基于位于背板/封闭体中PHB的数目。例如,假定向RIO桥分配了4GB存储器空间,则当有驻留了两个PHB时可能希望分配2GB给每个PHB,而当驻留了三个PHB时,可能希望将存储器地址范围分配到1GB、1GB、与2GB的划分中。一般地,此种PHB之间的分配是基于PHB所耦合的背板的背板标识符。应该理解来自RIO桥的地址空间的特定存储器地址也可以被分配给总线适配器,以存储器映射其寄存器与其他内务管理目的。
接着,一旦向PHB分配了存储器映射IO范围,则控制传给方框118,以读取总线配置数据,从而确定在该PHB下的槽配置。接着,方框120启动FOR循环以处理耦合至该PHB的的每个槽。对于每个这样的槽,根据在耦合至PHB的总线上该槽位置向该槽分配存储器映射IO范围(方框122)。在方框112种向槽分配了存储器地址范围之后,控制返回方框120以处理其他槽。一旦处理了每个槽,则方框120将控制返回方框114以处理该封闭体/背板中的其他PHB。一旦处理了每个这样的PHB,则方框114将控制返回方框108以继续遍历RIO环,寻找其他RIO桥。一旦找完了所有这样的桥,则方框110将控制返回方框104以处理其他RIO集线器。一旦处理完了所有这样的RIO集线器,则例程100完成。
应该理解确定槽的位置的方式可以至少部分基于总线上的槽号,或者基于槽标识符的某些其他形式(例如字母数字式)。另外,用来存储槽与其他标识符的配置数据可以驻留于计算机的各种元件中。例如,配置数据可以与IO封闭体相关联,并且因此存储在RIO桥中。配置数据也可以存储器在特定PHB中。另外,配置数据可以对于IO构造是全局性的,并存储在CEC中。配置数据也可以存储在文件系统中,在专用设备上,或者在非易失性固态存储器中等等。考虑到在计算机上存储并访问配置数据的无数种方式,应该理解本发明并不局限于此处所讨论的特定实现。
另外,应该理解,除了槽标识符外,槽或者其他IO终点的位置可以基于其他位置信息,例如,总线标识符、封闭体标识符、PHB标识符、桥标识符等等。
另外,根据本发明,为背板或者封闭体提供的配置数据可以用来以不同方式标识向每个IO槽分配的存储器地址范围的大小。例如,配置数据可以简单地标识特定封闭体或者背板的型号,其中型号被用来访问位于计算机内部或外部的数据库,以取得向该型号封闭体或背板分配的合适的存储器地址分配范围。可替换地,配置数据自身可以为该特定封闭体指定所希望的存储器地址分配范围。
向总线上的特定槽分配存储器地址范围的方式可以在不同的实现中有所变化。例如,在所示实现中,辅总线上的每个槽可以分配从“1”开始的索引,其中索引“0”表示为PCI到PCI桥MMIO寄存器保留的PCI总线存储器。PHB的固件构件可以用存储器与IO空间分配来初始化槽存储器表,其被用来跟踪实的与PCI基地址以及每个槽PCI存储器与IO空间分配的总的大小。对于每个特有的背板(例如对于封闭体的背板),配置数据可以与该背板相关联,并且访问配置数据以识别PHB的数目、辅总线的数目、以及每个辅总线上槽的数目。例如,可能希望向不附带服务处理器的PHB槽0分配名义存储器地址范围,例如1MB,而向附带服务处理器的PHB槽0分配较大的存储器地址段,例如256MB。然后可以根据槽位置分配已被分配到每个PHB的存储器地址空间的剩余部分。对于特定背板型号可以预定这些分配,或者可以由启发式程序在运行时确定。
在不存在向特定槽分配特定分配的配置数据的情况下,可能希望缺省为基于数据总线宽度/连接器类型(例如32位对64位)的分配映射。另外,为最小化对于型号的倚赖性,即被唯一识别并被不同分配的背板型号的数目,可能希望为PHB提供缺省映射。例如表1显示了示例性缺省PBH分配,其可以用来为连接到具有四个特有槽的辅总线的PHB分配存储器地址范围。
表1:示例性缺省PHB分配
槽 | PCI存储器大小 | 分配基PCI地址 |
0 | 1MB | 4GB-1MB |
1 | 255MB | 4GB-256MB |
2 | 256MB | 4GB-512MB |
3 | 512MB | 3GB |
4 | 1GB | 2GB |
应该理解在所安装的PHB配置将成对64位分割为两个32位槽的情况下,缺省映射可以将相关联的PCI存储器地址分配分割为两个相等的区域。
如上所述,对于特定背板或封闭体,一般希望根据槽位置预定分配范围到槽的映射。例如,表II显示了示例性公布分配表,其可以用于包含两个PHB的特定背板,其中一个PHB具有四个特有槽,而另一个具有十个特有槽。
表II:示例性公布分配表
槽 | PHB | PCI存储器大小 | 分配基PCI地址 |
0 | 1 | 1MB | 4GB-1MB |
1 | 1 | 255MB | 4GB-256MB |
2 | 1 | 256MB | 4GB-512MB |
3 | 1 | 512MB | 3GB |
4 | 1 | 1GB | 2GB |
0 | 2 | 1MB | 4GB-1MB |
5 | 2 | 255MB | 4GB-256MB |
6 | 2 | 128MB | 4GB-384MB |
7 | 2 | 128MB | 4GB-512MB |
9 | 2 | 256MB | 4GB-768MB |
10 | 2 | 256MB | 3GB |
11 | 2 | 256MB | 3GB-256MB |
12 | 2 | 128MB | 3GB-384MB |
13 | 2 | 128MB | 3GB-512MB |
14 | 2 | 256MB | 3GB-768MB |
15 | 2 | 256MB | 2GB |
应该注意每个PHB都显示具有2GB存储器地址范围,从而导致对于每个PHB所耦合的封闭体/背板的总数为4GB的存储器地址范围。另外,应该理解每个辅总线的槽0都分配1MB,而其余槽根据槽位置分配了不同的范围。另外注意基地址允许重复,这是因为每个PHB可以进行地址转换。
另外,应该理解在许多实现中可能希望向由特定PHB管理的槽中的最后一个分配未被在先槽使用的、分配给该PHB的剩余的存储器地址。例如对于表II的PHB1,根据先前槽0-3的分配,向槽4分配2GB地址空间中的剩余的1GB。
在使用中,希望在特定IO槽或IO终点中安装IO资源的客户可以参照由制造商提供的公布表,以确定分配给IO构造中可用槽的存储器地址分配范围。这样一来,如果IO适配器只有中等存储器地址范围需求,则该IO适配器可以安装在具有中等分配大小的槽中。对于具有较大存储器需求的IO适配器,客户可以寻找具有适当存储器地址分配的可用槽。
结果,IO适配器与其他IO资源可以以有效利用存储器地址空间中存储器资源的方式安装在槽或其他终点中。另外,此实现允许向具有相同数据总线宽度与连接器类型(例如32位/64位)的IO适配器分配不同的存储器地址范围大小。
应该理解此处所讨论的特定存储器分配可以在不同的实现中有所变化。对于本领域技术人员来说,其他改进是显而易见的。因此,本发明蕴涵在所附权利要求之中。
Claims (31)
1.一种向耦合至外设部件互连(PCI)总线中多个槽的多个PCI适配器分配存储器地址空间的方法,所述方法包括:
访问与每一个所述多个槽的槽标识符相关联的配置信息,以确定与每个槽相关联的存储器范围大小;以及
根据与每个槽相关联的存储器范围大小,向所述多个PCI适配器非均一地分配存储器地址范围。
2.一种向耦合至存储器映射输入/输出(IO)构造中多个IO终点的多个IO资源分配存储器地址的方法,所述方法包括:
确定所述存储器映射IO构造中所述多个终点中的每个IO终点的位置;以及
根据所确定的存储器映射IO构造中IO终点的位置,向所述多个IO终点非均一地分配存储器地址范围。
3.如权利要求2所述的方法,其中确定位置以及非均一地分配存储器地址范围的步骤在所述存储器映射IO构造的初始化期间执行。
4.如权利要求3所述的方法,其中确定位置以及非均一地分配存储器地址范围的步骤在所述存储器映射IO构造所耦合的计算机的初始化期间执行。
5.如权利要求3所述的方法,其中所述计算机包括逻辑分区计算机,并且其中确定位置以及非均一地分配存储器地址范围的步骤由所述逻辑分区计算机中的分区管理器执行。
6.如权利要求2所述的方法,其中向多个IO终点分配存储器地址范围的步骤包括向具有相同连接器类型的第一与第二IO终点分配不同大小的存储器地址范围。
7.如权利要求6所述的方法,其中所述第一与第二IO终点每个都包含IO槽,并且其中所述第一与第二IO终点的连接器类型具有相同的数据总线宽度。
8.如权利要求2所述的方法,其中所述存储器映射IO构造包括PCI兼容的构造。
9.如权利要求8所述的方法,其中所述存储器映射IO构造包括至少一个PCI兼容总线,其中至少IO终点的子集为耦合至所述PCI兼容总线的IO槽,并且其中每个IO槽的位置都由对于所述PCI兼容总线上的此IO槽的槽标识符限定。
10.如权利要求8所述的方法,其中所述存储器映射IO构造包括多个PCI兼容总线,其中至少IO终点的子集为耦合至所述多个PCI兼容总线的IO槽,并且其中每个IO槽的位置都由对于耦合此IO槽的所述PCI兼容总线的总线标识符,以及对于耦合此IO槽的所述PCI兼容总线上的此IO槽的槽标识符限定。
11.如权利要求10所述的方法,其中所述存储器映射IO构造包括多个IO封闭体,每个IO封闭体包括所述多个PCI兼容总线中的至少一个PCI兼容总线,其中确定IO终点位置的步骤包括访问与其中安装了此IO终点的IO封闭体相关联的配置数据。
12.如权利要求10所述的方法,其中所述多个PCI兼容总线中的PCI兼容总线包括PCI兼容主机桥,所述方法进一步包括向所述PCI兼容主机桥分配存储器地址范围,其中向多个IO终点非均一地分配存储器地址范围的步骤包括从分配给所述PCI兼容主机桥的存储器地址范围中向耦合至所述PCI兼容主机桥的多个IO槽分配存储器地址范围。
13.如权利要求12所述的方法,其中向多个IO终点非均一地分配存储器地址范围的步骤包括向所述多个IO槽中的最后一个IO槽分配剩余存储器地址范围,其中所述剩余存储器地址范围包括分配给所述PCI兼容主机的存储器地址范围的、没有被分配给所述多个IO槽中每个其他IO槽的部分。
14.如权利要求2所述的方法,其中所述IO构造包括至少一个IO构造元件,该IO构造元件允许到所述多个IO终点的子集的连通性,并且其中将被分配给耦合至所述多个IO终点中每个IO终点的IO资源的存储器地址范围可以从在安装所述IO终点子集中的IO资源之前可用的公布来确定。
15.一种装置,包括:
至少一个处理器;
程序代码,被配置来由所述至少一个处理器来执行,以通过以下方式向耦合至存储器映射输入/输出(IO)构造中多个IO终点的多个IO资源分配存储器地址:确定所述存储器映射IO构造中所述多个终点中的每个IO终点的位置;以及根据所确定的存储器映射IO构造中IO终点的位置,向所述多个IO终点非均一地分配存储器地址范围。
16.如权利要求15所述的装置,其中所述程序代码被配置来在所述存储器映射IO构造的初始化期间确定位置以及非均一地分配存储器地址范围。
17.如权利要求16所述的装置,其中所述程序代码被配置来在所述装置的初始化期间确定位置以及非均一地分配存储器地址范围。
18.如权利要求17所述的装置,其中所述装置包括逻辑分区计算机,并且其中所述程序代码驻留于所述逻辑分区计算机中的分区管理器。
19.如权利要求15所述的装置,其中所述程序代码被配置来通过向具有相同连接器类型的第一与第二IO终点分配不同大小的存储器地址范围,向所述多个IO终点分配存储器地址范围。
20.如权利要求19所述的装置,其中所述第一与第二IO终点每个都包含IO槽,并且其中所述第一与第二IO终点的连接器类型具有相同的数据总线宽度。
21.如权利要求15所述的装置,其中所述存储器映射IO构造包括PCI兼容的构造。
22.如权利要求21所述的装置,其中所述存储器映射IO构造包括至少一个PCI兼容总线,其中至少IO终点的子集为耦合至所述PCI兼容总线的IO槽,并且其中每个IO槽的位置都由对于所述PCI兼容总线上的此IO槽的槽标识符限定。
23.如权利要求21所述的装置,其中所述存储器映射IO构造包括多个PCI兼容总线,其中至少IO终点的子集为耦合至所述多个PCI兼容总线的IO槽,并且其中每个IO槽的位置都由对于耦合此IO槽的所述PCI兼容总线的总线标识符,以及对于耦合此IO槽的所述PCI兼容总线上的此IO槽的槽标识符限定。
24.如权利要求23所述的装置,其中所述存储器映射IO构造包括多个IO封闭体,每个IO封闭体包括所述多个PCI兼容总线中的至少一个PCI兼容总线,其中所述程序代码被配置来通过访问与其中安装了此IO终点的IO封闭体相关联的配置数据来确定IO终点位置。
25.如权利要求24所述的装置,其中所述与多个IO封闭体中的第一IO封闭体相关联的配置数据被存储在驻留于所述第一IO封闭体中的非易失存储器中。
26.如权利要求23所述的装置,其中所述多个PCI兼容总线中的PCI兼容总线包括PCI兼容主机桥,所述程序代码被进一步配置来向所述PCI兼容主机桥分配存储器地址范围,并且其中所述程序代码被配置来通过从分配给所述PCI兼容主机桥的存储器地址范围中向耦合至所述PCI兼容主机桥的多个IO槽分配存储器地址范围,来向多个IO终点非均一地分配存储器地址范围。
27.如权利要求26所述的装置,其中所述程序代码被配置来通过向所述多个IO槽中的最后一个IO槽分配剩余存储器地址范围来向所述多个IO终点非均一地分配存储器地址范围,并且其中所述剩余存储器地址范围包括分配给所述PCI兼容主机的存储器地址范围的、没有被分配被所述多个IO槽中每个其他IO槽的部分。
28.如权利要求15所述的装置,其中所述IO构造包括至少一个IO构造元件,该IO构造元件允许到所述多个IO终点的子集的连通性,并且其中分配给耦合至所述多个IO终点中每个IO终点的IO资源的存储器地址范围可以从在安装所述IO终点子集中的IO资源之前可用的公布来确定。
29.如权利要求15所述的装置,进一步包括多个IO资源与存储器映射IO构造。
30.一种程序产品,包括:
程序代码,被配置来通过以下方式向耦合至存储器映射输入/输出(IO)构造中多个IO终点的多个IO资源分配存储器地址:确定所述存储器映射IO构造中所述多个终点中的每个IO终点的位置;以及根据所确定的存储器映射IO构造中IO终点的位置,向所述多个IO终点非均一地分配存储器地址范围;以及
承载了所述程序代码的计算机可读信号承载介质。
31.如权利要求30所述的程序产品,其中所述计算机可读信号承载介质包括传送介质和可读介质中的至少之一。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/671,365 US7200687B2 (en) | 2003-09-25 | 2003-09-25 | Location-based non-uniform allocation of memory resources in memory mapped input/output fabric |
US10/671,365 | 2003-09-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1601498A true CN1601498A (zh) | 2005-03-30 |
CN100562861C CN100562861C (zh) | 2009-11-25 |
Family
ID=34376124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100826677A Expired - Fee Related CN100562861C (zh) | 2003-09-25 | 2004-09-27 | 用于分配存储器地址的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7200687B2 (zh) |
CN (1) | CN100562861C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1323362C (zh) * | 2005-09-21 | 2007-06-27 | 杭州华为三康技术有限公司 | 网络设备及其外围器件互连资源的分配方法 |
CN100429636C (zh) * | 2005-07-07 | 2008-10-29 | 国际商业机器公司 | 管理共享输入/输出结构的地址空间的方法、系统和设备 |
CN101206622B (zh) * | 2006-12-19 | 2010-12-08 | 国际商业机器公司 | 基于指定的有效功能组合配置端点的系统和方法 |
CN101243414B (zh) * | 2005-08-25 | 2012-05-09 | St电子有限公司 | 配置被分为多个存储体的存储空间的方法 |
CN104298182A (zh) * | 2013-07-18 | 2015-01-21 | 上海宝信软件股份有限公司 | 基于vme总线嵌入式系统i/o板卡驱动设计方法及装置 |
CN104737130A (zh) * | 2012-08-22 | 2015-06-24 | 英派尔科技开发有限公司 | 多核架构中的资源分配 |
CN106648878A (zh) * | 2015-10-29 | 2017-05-10 | 华为技术有限公司 | 一种系统及其动态分配mmio资源的方法 |
CN106815101A (zh) * | 2015-11-27 | 2017-06-09 | 中国科学院沈阳自动化研究所 | 嵌入式系统外部易失性存储器高可靠性存储与诊断方法 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539190B2 (en) * | 2004-01-05 | 2009-05-26 | Topside Research, Llc | Multicasting in a shared address space |
US8250330B2 (en) * | 2004-12-11 | 2012-08-21 | International Business Machines Corporation | Memory controller having tables mapping memory addresses to memory modules |
US7496790B2 (en) * | 2005-02-25 | 2009-02-24 | International Business Machines Corporation | Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization |
US7398337B2 (en) * | 2005-02-25 | 2008-07-08 | International Business Machines Corporation | Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization |
US20060212870A1 (en) * | 2005-02-25 | 2006-09-21 | International Business Machines Corporation | Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization |
US8762592B2 (en) * | 2006-08-30 | 2014-06-24 | Dell Products L.P. | System and method for automatic module selection |
US7685401B2 (en) * | 2006-12-27 | 2010-03-23 | Intel Corporation | Guest to host address translation for devices to access memory in a partitioned system |
JP5100133B2 (ja) * | 2007-01-19 | 2012-12-19 | 株式会社東芝 | 情報処理装置 |
JP5045229B2 (ja) * | 2007-05-14 | 2012-10-10 | 富士ゼロックス株式会社 | ストレージシステム及びストレージ装置 |
JP5368687B2 (ja) * | 2007-09-26 | 2013-12-18 | キヤノン株式会社 | 演算処理装置および方法 |
US8549657B2 (en) | 2008-05-12 | 2013-10-01 | Microsoft Corporation | Owner privacy in a shared mobile device |
JP5180729B2 (ja) * | 2008-08-05 | 2013-04-10 | 株式会社日立製作所 | 計算機システム及びバス割当方法 |
US20110047313A1 (en) * | 2008-10-23 | 2011-02-24 | Joseph Hui | Memory area network for extended computer systems |
JP5434929B2 (ja) * | 2008-11-13 | 2014-03-05 | 日本電気株式会社 | I/oバスシステム |
US8650349B2 (en) * | 2010-05-26 | 2014-02-11 | International Business Machines Corporation | Memory mapped input/output bus address range translation for virtual bridges |
US9027117B2 (en) | 2010-10-04 | 2015-05-05 | Microsoft Technology Licensing, Llc | Multiple-access-level lock screen |
US8825981B2 (en) * | 2011-01-25 | 2014-09-02 | International Business Machines Corporation | Allocating addressable memory regions to an adapter |
US9880604B2 (en) | 2011-04-20 | 2018-01-30 | Microsoft Technology Licensing, Llc | Energy efficient location detection |
US8756360B1 (en) * | 2011-09-26 | 2014-06-17 | Agilent Technologies, Inc. | PCI-E compatible chassis having multi-host capability |
US8732822B2 (en) | 2011-12-16 | 2014-05-20 | Microsoft Corporation | Device locking with hierarchical activity preservation |
US9363250B2 (en) | 2011-12-23 | 2016-06-07 | Microsoft Technology Licensing, Llc | Hub coordination service |
US20130305354A1 (en) | 2011-12-23 | 2013-11-14 | Microsoft Corporation | Restricted execution modes |
US9467834B2 (en) | 2011-12-23 | 2016-10-11 | Microsoft Technology Licensing, Llc | Mobile device emergency service |
US9325752B2 (en) | 2011-12-23 | 2016-04-26 | Microsoft Technology Licensing, Llc | Private interaction hubs |
US8874162B2 (en) | 2011-12-23 | 2014-10-28 | Microsoft Corporation | Mobile device safe driving |
US9420432B2 (en) | 2011-12-23 | 2016-08-16 | Microsoft Technology Licensing, Llc | Mobile devices control |
KR20140020031A (ko) * | 2012-08-07 | 2014-02-18 | 삼성전자주식회사 | 병렬 입출력 특성이 개선된 컴퓨팅 장치 |
US9230076B2 (en) | 2012-08-30 | 2016-01-05 | Microsoft Technology Licensing, Llc | Mobile device child share |
US9998866B2 (en) | 2013-06-14 | 2018-06-12 | Microsoft Technology Licensing, Llc | Detecting geo-fence events using varying confidence levels |
US9820231B2 (en) | 2013-06-14 | 2017-11-14 | Microsoft Technology Licensing, Llc | Coalescing geo-fence events |
US9355052B2 (en) | 2013-08-23 | 2016-05-31 | International Business Machines Corporation | Dynamically resizing direct memory access (DMA) windows |
US11853209B2 (en) * | 2020-06-30 | 2023-12-26 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Shared memory workloads using existing network fabrics |
CN118056191A (zh) * | 2021-06-09 | 2024-05-17 | 安法布里卡公司 | 具有可配置传输的多平面、多协议存储器交换机构造 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2644554B2 (ja) * | 1988-11-15 | 1997-08-25 | 株式会社日立製作所 | 情報処理システム |
JP3454294B2 (ja) * | 1994-06-20 | 2003-10-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプル・バス情報処理システム及びブリッジ回路 |
JPH11513150A (ja) * | 1995-06-15 | 1999-11-09 | インテル・コーポレーション | Pci間ブリッジを統合する入出力プロセッサ用アーキテクチャ |
US5999743A (en) * | 1997-09-09 | 1999-12-07 | Compaq Computer Corporation | System and method for dynamically allocating accelerated graphics port memory space |
US6094699A (en) * | 1998-02-13 | 2000-07-25 | Mylex Corporation | Apparatus and method for coupling devices to a PCI-to-PCI bridge in an intelligent I/O controller |
US6526459B1 (en) * | 1999-11-10 | 2003-02-25 | Ati International Srl | Allocation of input/output bus address space to native input/output devices |
US6594712B1 (en) * | 2000-10-20 | 2003-07-15 | Banderacom, Inc. | Inifiniband channel adapter for performing direct DMA between PCI bus and inifiniband link |
US6947970B2 (en) * | 2000-12-19 | 2005-09-20 | Intel Corporation | Method and apparatus for multilevel translation and protection table |
US6658521B1 (en) * | 2000-12-22 | 2003-12-02 | International Business Machines Corporation | Method and apparatus for address translation on PCI bus over infiniband network |
US6823418B2 (en) * | 2001-06-29 | 2004-11-23 | Intel Corporation | Virtual PCI device apparatus and method |
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 |
US6907510B2 (en) * | 2002-04-01 | 2005-06-14 | Intel Corporation | Mapping of interconnect configuration space |
-
2003
- 2003-09-25 US US10/671,365 patent/US7200687B2/en not_active Expired - Fee Related
-
2004
- 2004-09-27 CN CNB2004100826677A patent/CN100562861C/zh not_active Expired - Fee Related
-
2006
- 2006-08-31 US US11/469,012 patent/US7366798B2/en not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100429636C (zh) * | 2005-07-07 | 2008-10-29 | 国际商业机器公司 | 管理共享输入/输出结构的地址空间的方法、系统和设备 |
CN101243414B (zh) * | 2005-08-25 | 2012-05-09 | St电子有限公司 | 配置被分为多个存储体的存储空间的方法 |
CN1323362C (zh) * | 2005-09-21 | 2007-06-27 | 杭州华为三康技术有限公司 | 网络设备及其外围器件互连资源的分配方法 |
CN101206622B (zh) * | 2006-12-19 | 2010-12-08 | 国际商业机器公司 | 基于指定的有效功能组合配置端点的系统和方法 |
CN104737130A (zh) * | 2012-08-22 | 2015-06-24 | 英派尔科技开发有限公司 | 多核架构中的资源分配 |
CN104737130B (zh) * | 2012-08-22 | 2018-08-03 | 英派尔科技开发有限公司 | 多核架构中的资源分配 |
CN109032791A (zh) * | 2012-08-22 | 2018-12-18 | 英派尔科技开发有限公司 | 多核架构中的资源分配 |
CN109032791B (zh) * | 2012-08-22 | 2022-10-21 | 汞王国资产有限公司 | 多核架构中的资源分配 |
CN104298182A (zh) * | 2013-07-18 | 2015-01-21 | 上海宝信软件股份有限公司 | 基于vme总线嵌入式系统i/o板卡驱动设计方法及装置 |
CN106648878A (zh) * | 2015-10-29 | 2017-05-10 | 华为技术有限公司 | 一种系统及其动态分配mmio资源的方法 |
CN106815101A (zh) * | 2015-11-27 | 2017-06-09 | 中国科学院沈阳自动化研究所 | 嵌入式系统外部易失性存储器高可靠性存储与诊断方法 |
CN106815101B (zh) * | 2015-11-27 | 2019-09-06 | 中国科学院沈阳自动化研究所 | 嵌入式系统外部易失性存储器高可靠性存储与诊断方法 |
Also Published As
Publication number | Publication date |
---|---|
US7366798B2 (en) | 2008-04-29 |
US20050071521A1 (en) | 2005-03-31 |
CN100562861C (zh) | 2009-11-25 |
US7200687B2 (en) | 2007-04-03 |
US20060294261A1 (en) | 2006-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1601498A (zh) | 存储器映射输入/输出构造中存储器资源的基于位置的分配 | |
US9411654B2 (en) | Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation | |
US8347063B2 (en) | Method and system for device address translation for virtualization | |
US9864614B2 (en) | Mapping virtual devices to computing nodes | |
RU2571366C2 (ru) | Виртуальная архитектура неоднородного доступа к памяти для виртуальных машин | |
JP5071913B2 (ja) | 同時物理プロセッサ再割り当て方法、システム、およびプログラム | |
US8301806B2 (en) | Configuring an input/output adapter | |
US7657688B2 (en) | Dynamically allocating lanes to a plurality of PCI express connectors | |
US9092022B2 (en) | Systems and methods for load balancing of modular information handling resources in a chassis | |
JP5160103B2 (ja) | 論理区画の一意識別子生成方法、装置、およびコンピュータ・プログラム | |
CN1737780A (zh) | 从一个设备驱动程序向另一个传送信息的系统和方法 | |
MXPA04011088A (es) | Metodo y aparato para asignar y desasignar dinamicamente procesadores en un sistema de procesamiento particionado logico de datos. | |
CN1274123A (zh) | 分区系统的带有动态配置的外围元件互联槽控制装置 | |
CN104767838A (zh) | 微服务器、分配mac地址的方法、以及计算机可读记录介质 | |
CN104657305A (zh) | 用于实现支持sriov的sas适配器的动态虚拟化的方法和系统 | |
CN112698871A (zh) | 在多cpu设备中使用option-rom的网络适配器配置 | |
US20140149658A1 (en) | Systems and methods for multipath input/output configuration | |
CN101779196B (zh) | Pci设备的i/o空间请求抑制方法 | |
EP1703413A1 (en) | Partition allocation method and computer system | |
US10838861B1 (en) | Distribution of memory address resources to bus devices in a multi-processor computing system | |
TWI616759B (zh) | 設備分配控制器以及設備分配方法 | |
US8386659B2 (en) | Configuration adaptation layer for mapping I/O device resources | |
JP2002140283A (ja) | データ処理システムの複数の拡張スロットにメモリを割り振る方法 | |
US7039733B2 (en) | Method, system, and apparatus for eliminating bus renumbering in a computer system | |
CN105335228A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091125 Termination date: 20200927 |