CN101221552B - 隔离i/o适配器单元的系统和方法 - Google Patents

隔离i/o适配器单元的系统和方法 Download PDF

Info

Publication number
CN101221552B
CN101221552B CN2008100017488A CN200810001748A CN101221552B CN 101221552 B CN101221552 B CN 101221552B CN 2008100017488 A CN2008100017488 A CN 2008100017488A CN 200810001748 A CN200810001748 A CN 200810001748A CN 101221552 B CN101221552 B CN 101221552B
Authority
CN
China
Prior art keywords
adapter unit
processor
tvt
group
data handling
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.)
Expired - Fee Related
Application number
CN2008100017488A
Other languages
English (en)
Other versions
CN101221552A (zh
Inventor
T·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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101221552A publication Critical patent/CN101221552A/zh
Application granted granted Critical
Publication of CN101221552B publication Critical patent/CN101221552B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种数据处理系统和在该系统中隔离多个I/O适配器的方法。数据处理系统也包括一组使用PCIe协议与I/O适配器通信的处理器。每个I/O适配器具有各自的ID。在优选实施例中,I/O适配器发出的命令包括定义了PCIe(PCIe defined)的请求方ID字段,该请求方ID字段包括一个或多个I/O适配器请求方ID。请求方ID能用作对CAM的输入,CAM提供到TVT的索引,以识别针对I/O适配器的唯一且独立的系统存储器空间。

Description

隔离I/O适配器单元的系统和方法 
技术领域
本发明一般地涉及在数据处理系统中隔离输入/输出适配器寻址域。更特别地,本发明涉及在实现HyperTransport(超传输)的逻辑分区的数据处理系统中隔离输入/输出适配器寻址域。这里使用的术语“隔离”是指验证I/O适配器确实拥有或具有访问它请求访问的特定的系统存储位置的权限。因此,如果I/O适配器被正确地隔离到预先分配的存储器空间,它将只能请求访问该存储器区域。 
背景技术
在逻辑分区的数据处理系统中,多个操作系统或同一个操作系统的多个副本运行在单个数据处理系统平台上。在数据处理系统内执行的每个操作系统或操作系统副本被分配给不同的逻辑分区(“LPAR”),而且给每个分区分配平台资源的非重叠子集。因此,每个操作系统或操作系统副本直接地控制平台内截然不同的一组可分配资源。 
在可以分配给不同分区的平台资源中,包括处理器或处理器的时间分片,系统存储器的区域,以及I/O适配器(“IOA”)或IOA的各部分。因此,系统存储器的不同区域和不同IOA或IOA的不同部分可以分配给不同的分区,即每个IOA“属于”一个分区。在这一环境中,重要的是平台提供如下机制,该机制使得IOA或IOA的各部分能够得以访问它们需要用来正确地为它们所属的一个或多个分区提供服务的所有物理存储器;而同时阻止IOA或IOA的各部分访问并未分配给它们的关联分区的物理存储器。 
在逻辑分区的数据处理系统中,可以使用各种通信技术经由物理媒介和以无线方式来将系统的电子设备链接在一起。一些通信技术对成对 的设备进行接口连接,另一些通信技术对形成较小群组的设备进行接口连接,并且还有一些通信技术对形成较大群组的设备进行接口连接。 
一种相对较新的用于连接形成相对较小的群组的设备的通信技术是HyperTransport(HT)技术。HT标准提出针对高速、低延迟协议的定义,高速、低延迟协议能接口连接当今的总线,诸如AGP、外围组件互连(“PCI”)、1394、USB 2.0和1Gbit以太网,以及下一代总线,包括AGP 8x、InfiniBand(无限带宽)、PCI-X、PCI 3.0、PCIe和10Gbit以太网。HT互连在所连接的设备之间提供高速数据链路。大部分支持HT的设备包括至少一对HT端口,以便可以对支持HT的设备进行菊花链连接(daisy chained)。在HT链或架构中,每个所连接的设备可以使用合适的寻址和控制来与相互连接的设备通信。可以进行HT链连接的设备的例子包括分组数据路由器、服务器计算机、数据存储设备和其他计算机外围设备。 
因此,HT提供了很多重要的优点。然而,在逻辑分区的数据处理系统中使用附有HyperTransport的I/O桥,需要有隔离到所属LPAR的IOA直接存储器存取(“DMA”)和中断请求的方法。 
重要的是,一个LPAR能够通过IOA影响另一个LPAR。利用逻辑分区,一个分区中的OS不能通过IOA与另一个分区中的OS通信。例如,一个OS可以发送命令和地址到IOA,而该IOA将使用这些地址执行DMA。不存在检查OS提供给IOA的地址的机制。作为替代,当IOA将地址提供给主机时,BAR/Limit(以及后面的转换确认表(TVT))验证该地址。 
发明内容
本发明的一个目的是提供用于IOA和LPAR隔离以及IOA识别的方法和系统。 
本发明进一步的目的是分配单元ID(定义了HyperTransport的)给I/O适配器,并且使用分配的单元ID来将每个IOA识别到它所属的LPAR。 
本发明进一步的目的是分配多个单元ID给PCIe桥以使得桥下的多个IOA或使得IOA内的多个功能可以被各自分配给不同的LPAR。 
这些和其他目的利用数据处理系统和隔离该系统的多个IOA的方法来实现。除多个IOA外,数据处理系统包括一组处理器,该组处理器包括具有转换确认表(“TVT”)和内容可寻址存储器(“CAM”)的系统存储器。每个IOA连接到主机桥并具有各自的标识符。 
在优选实施例中,这些标识符是定义了PCIe(PCIe defined)的请求方ID,并且这里描述了创新的转换确认表(“TVT”)实现,用于使得每个I/O适配器可以具有它自己的存储器空间。IOA发出的命令包括用于识别一个或多个IOA的请求方ID字段。请求方ID用作对CAM的输入,CAM提供进入TVT的索引。其中使用所述索引值作为指向转换确认条目TVE的进入TVT的索引,所述TVE包含转换基地址寄存器TAR,所述TAR包括基地址。TVT指定针对IOA的唯一且独立的系统存储器空间。 
当结合以下描述和附图来考虑时,将更好地明白和理解本发明的这些和其他方面和目的。然而,应当理解,尽管以下描述指出了本发明的优选实施例及其大量特定细节,但该描述是以说明而不是限制的方式给出的。在不脱离本发明本质的情况下,可以在本发明的范围内进行很多改变和修改,并且本发明包括所有这种修改。 
附图说明
图1是其中可以实现本发明的数据处理系统的框图。 
图2是其中可以实现本发明的示例性逻辑分区平台的框图。 
图3是针对I/O的LPAR的逻辑视图。 
图4图示了本发明的插槽标识方案。 
图5示出了将隔离功能移到处理器的方案。 
图6示出了HyperTransport环境中的DMA/MSI访问控制。 
图7示出了使用单元ID作为进入TVT的索引的替代性TVT实现。 
图8示出了使用单元PCIe请求方ID作为进入CAM的输入的替代性TVT实现。 
具体实施方式
现在参照附图,图1描绘了其中可以实现本发明的数据处理系统的框图。数据处理系统100可以是对称多处理器(SMP)系统,包括多个连接到系统总线106的处理器101、102、103和104。例如,数据处理系统100可以是IBM eServer,即纽约阿芒克的国际商业机器公司的一款产品,实现为网络内的服务器。作为替代,也可以使用单处理器系统。存储器控制器/高速缓存108也连接到系统总线106,存储器控制器/高速缓存108提供到多个本地存储器160-163的接口。I/O总线桥110连接到系统总线106并且提供到I/O总线112的接口。可选地,可以对存储器控制器/高速缓存108和I/O总线桥110进行集成。 
数据处理系统100是逻辑分区的数据处理系统,然而,应当理解,本发明并不限于LPAR系统,而是也可以在其他数据处理系统中实现。LPAR数据处理系统100具有同时运行的多个异种操作系统(或同一个操作系统的多个副本)。这些多个操作系统中的每一个可以具有在其内执行的任意数目的软件程序。数据处理系统100是逻辑分区的,以便可以将不同的PCIIOA 120、121、122、123和124,图形适配器148和硬盘适配器149,或其各部分分配给不同的逻辑分区。在这种情况中,图形适配器148提供用于显示设备(未示出)的连接,而硬盘适配器149提供用于控制硬盘150的连接。 
多个分区能够运行在同一个物理处理器中。因此,例如,假设数据处理系统100被分为三个逻辑分区P1、P2和P3。可以将每个PCIIOA 120-124、图形适配器148、硬盘驱动器149、每个主机处理器101-104、以及来自本地存储器160-163的存储器分配给三个分区中的每一个。在本例中,存储器160-163可以采取双列直插存储器模块(DIMM)的形式。通常并不在每DIMM的基础上将DIMM分配给分区。作为替代,分区将使整个存储器的一部分对平台可见。例如,可以将处理器101、来自本地存储器160-163的存储器、以及PCIIOA 121、123和124分配给逻辑分区P1;可以将处理器102-103、来自本地存储器160-163的存储器的某些部分,以及PCIIOA 120和122分配给分区P2;并且可以将 处理器104、来自本地存储器160-163的存储器的某些部分、图形适配器148和硬盘适配器149分配给逻辑分区P3。 
将在逻辑分区的数据处理系统100内执行的每个操作系统分配给不同的LPAR。因此,在数据处理系统100内执行的每个操作系统只可以访问在它的逻辑分区内的那些IOA。例如,高级交互执行(“AIX”,)操作系统的一个实例可以在分区P1内执行,AIX操作系统的第二个实例(副本)可以在分区P2内执行,并且例如Linux或OS/400操作系统可以在逻辑分区P3内运行。 
PCI主机桥(“PHB”)130、131、132和133连接到I/O总线112,并且分别提供到PCI本地总线140、141、142和143的接口。PCI IOA120-121通过I/O架构180连接到PCI本地总线140,I/O架构180包括路由器和桥。以类似的方式,PCIIOA 122通过I/O架构181连接到PCI本地总线141,PCIIOA 123和124通过I/O架构182连接到PCI本地总线142,并且图形适配器148和硬盘适配器149通过I/O架构183连接到PCI本地总线143。I/O架构180-183提供到PCI总线140-143的接口。典型的PCI主机桥将支持四到八个IOA(例如,针对插入式连接器的扩展插槽)。每个PCI IOA 120-124提供数据处理系统100和输入/输出设备之间的接口,输入/输出设备诸如作为数据处理系统100的客户端的其他网络计算机。 
PCI主机桥130提供用于使PCI总线140连接到I/O总线112的接口。这一PCI总线也将PCI主机桥130连接到“服务处理器邮箱接口和ISA总线访问传递”逻辑194和I/O架构180。“服务处理器邮箱接口和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/scan(JTAG/扫描)总线(见IEEE1149.1)和飞利浦公司I2C总线的结合。然而,作为替代,JTAG/I2C总线134可以仅由I2C总线或仅由JTAG/scan总线代替。主机处理器101、 102、103和104的所有SP-ATTN信号都连接在一起并连接到服务处理器的中断输入信号。服务处理器135具有它自己的本地存储器191,并且能访问硬件OP-panel(OP面板)190。 
当数据处理系统100初始开机时,服务处理器135使用JTAG/I2C总线134来询问系统(主机)处理器101-104、存储器控制器/高速缓存108和I/O桥110。在这一步骤完成时,服务处理器135就具有了对该数据处理系统100的设备清单和拓扑的理解。服务处理器135也对通过询问主处理器101-104、存储控制器/高速缓存108和I/O桥110而找到的所有元件执行内置自测试(BIST)、基本保证测试(BAT)和存储器测试。服务处理器135收集和报告针对在BIST、BAT和存储器测试期间检测到的故障的任意错误信息。 
如果移除在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)期间解除配置。 
数据处理系统100可以使用市面上有售的各种计算机系统来实现。例如,数据处理系统100可以使用可从国际商业机器公司获得的IBMeServer iSeries Model 840系统来实现。这样的系统可以支持使用OS/400 操作系统的逻辑分区,该操作系统同样可以从国际商业机器公司获得。 
本领域的普通技术人员应当意识到,图1中描述的硬件可以改变。例如,作为对所描述的硬件的补充或替代,也可以使用诸如光盘驱动器等其他外围设备。所描述的例子并非旨在暗示对本发明进行体系结构上的限制。 
现在参照图2,描绘了其中可以实现本发明的示例性逻辑分区平台的框图。可以将逻辑分区平台200中的硬件实现为例如图1中的数据处理系统100。逻辑分区平台200包括分区的硬件230,操作系统202、204、206、208,以及分区管理固件210。操作系统202、204、206、208可以是同时在逻辑分区平台200上运行的同一个操作系统的多个副本或多个异构操作系统。这些操作系统可以使用OS/400来实现,OS/400被设计为与诸如Hypervisor(系统管理程序)之类的分区管理固件进行接口连接。OS/400只用作这些说明性实施例中的一个例子。根据特定实现,可以使用诸如AIX和Linux之类的其他类型的操作系统。操作系统202、204、206、208位于分区203、205、207和209中。Hypervisor是可以用于实现分区管理固件210并可以从国际商业机器公司获得的软件产品的一个例子。固件是存储在非易失性存储器中的程序代码,该非易失性存储器诸如只读存储器(ROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)以及非易失性随机存取存储器(非易失性RAM)。 
另外,这些分区也包括分区固件211、213、215和217。分区固件211、213、215和217可以通过使用初始引导程序代码、IEEE-1275标准公开固件,以及可以从国际商业机器公司获得的运行时抽象软件(RTAS)来实现。当将分区203、205、207和209实例化时,分区管理固件210将引导程序代码的副本下载到分区203、205、207和209上。其后,控制转移到引导程序代码,其中该引导程序代码随后下载开放固件和RTAS。然后,将与分区相关联或分配给分区的处理器指派给分区的存储器,以执行分区固件。 
分区的硬件230包括多个处理器232-238、多个系统存储器单元 240-246、多个IOA 248-262、以及存储单元270。可以将每个处理器232-238、存储器单元240-246、NVRAM存储装置298以及IOA 248-262或其各部分分配给逻辑分区平台200内的多个分区中的一个,其中每个分区对应于操作系统202、204、206和208中的一个。 
分区管理固件210针对分区203、205、207和209执行多种功能和服务,以创建和加强对逻辑分区平台200的分区。分区管理固件210是与底层硬件相同的用固件实现的虚拟机。这样,分区管理固件210使得可以通过对逻辑分区平台200的所有硬件资源进行虚拟化而同时执行独立OS映像202、204、206和208。 
服务处理器290可以用于提供各种服务,诸如处理分区中的平台错误。这些服务也可以用作服务代理以将错误报告给供应商,诸如国际商业机器公司。可以通过诸如硬件管理控制台280之类的硬件管理控制台来控制不同分区的运行。硬件管理控制台280是独立的数据处理系统,系统管理员可以从中执行各种功能,包括重新分配资源给不同分区。 
在LPAR环境中,不允许一个分区中的资源或程序影响另一个分区中的操作。而且,为了能够有用,需要细化资源分配。例如,将某个特定PHB下的所有IOA都分配给同一个分区通常是不可接受的,因为那将限制系统的可配置性,包括在分区之间动态移动资源的能力。 
因此,在桥中需要某些将IOA连接到I/O总线的功能以便能够分配资源,诸如各个IOA或IOA的各部分将各分区分开;以及同时,防止所分配的资源诸如通过得以访问对其他分区的资源来影响其他分区。 
这些功能中的多种功能在本领域是公知的,例如,用于隔离输入/输出寻址的若干步骤在美国专利申请公开No.2006/0010276中进行了描述。然而,以前还不能获得用于利用了HyperTransport技术的数据处理系统的这些功能,如前所述,HyperTransport技术是用于连接形成相对较小的群组的设备的通信技术。 
图3示出了针对I/O的LPAR的逻辑视图。特别地,在图3的逻辑视图中,处理器和存储器以302示出,I/O子系统以304示出。如前所述的逻辑分区将处理器和存储器资源分配给多个独立的系统映像 (LPAR),每个系统映像都能够运行独立的操作系统。每个LPAR与所有其他LPAR都是逻辑上独立的,并且一个LPAR不允许直接访问另一个LPAR的存储器。必须对由IOA生成的所有存储器地址进行验证和/或转换,以确保它们只访问被允许的存储器地址。 
一个LPAR不允许直接访问另一个LPAR的IOA,并且在4K页边界上经由TLB机制控制MMIO空间访问。一个LPAR也不能使IOA向另一个LPAR发送中断,并且由属于一个LPAR的IOA产生的错误不允许影响另一个LPAR。LPAR之间的通信使用普通的处理器间通信(“IPC”)方法或Hypervisor,并且IOA之间的通信(端对端)是不允许的。 
Hypervisor是特殊的可信映像并且执行多种重要的功能。Hypervisor控制所有资源(处理器、存储器和IOA)的对LPAR的访问;Hypervisor控制所有全局逻辑、复用器、扇出(fanout)、开关、实时存储器地址寄存器、存储器地址转换表等。 
Hypervisor可以代表LPAR执行I/O操作。这需要Hypervisor例行诸如hCall、数据副本和中断路由。例如,如图3所示,Hypervisor映像拥有IOA g。高性能I/O给LPAR分配IOA;并且,例如,如图3所示,LPAR 0拥有IOA a和b,并且LPAR 1拥有IOA c。 
图4示出了插槽标识方案。从图4看来,处理器和存储器以402示出,I/O集线器以404示出,一系列开关以406示出,一组IOA以408示出。根据这一方案,每个PCI插槽和所附的IOA都属于单个LPAR。开关包括基于地址范围(BAR/Limit)的隔离逻辑。根据图4所示的方案,I/O集线器和处理器并不隔离IOA。 
图4也示出了物理(PCI)插槽。作为对比,本发明使用“插槽ID”。如图5所示,与图4相比,这一方案将隔离功能移动得离处理器更近了。特别地,处理器和存储器以502示出,I/O集线器以504示出,一组IOA以506示出。是处理器而不是I/O集线器执行DMA地址转换和保护512、中断控制514、DMA地址转换高速缓存516和错误状态控制520。尽管如此,但这里每个PCI插槽和它所附的IOA也属于单个LPAR。图5的 方案需要最小化北/南桥中的隔离逻辑。 
根据本发明的包括转换确认条目(“TVE”)、DMA和中断的TVT设计,PCI地址范围仍然用作首要的隔离方法。PCI地址的某些更高阶比特用作进入TVT的索引以提取TVE。TVE包括请求方ID(“bus/dev/func”)字段,其能用来与发出请求的IOA请求方ID进行比较。如果请求方ID比较是有效的,则转换确认条目(“TVE”)中的转换基地址寄存器(TAR)用来寻找系统存储器中(或转换单元高速缓存中)的转换单元。 
根据本发明的优选实施例,通过五比特的HyperTransport单元ID字段来识别IOA。图6图示了HT环境中的这种访问控制。从图6看来,处理器和存储器以602示出,I/O桥以604示出,一组IOA以606示出。I/O桥604中的每个PCI桥610具有一个单元ID 612,并且PCI桥下的所有IOA都属于单个LPAR。将单元ID插入HT请求614中,并将请求方ID 620插入PCIe请求622中。请求方ID是如下的16比特字段:总线(8)、设备(5)、功能(3)(“Bus/dev/func”)。PCIe请求622的请求方ID 620也存储在PCI桥中并在PCIe完成步骤中返回给IOA。 
在操作中,IOA生成PCIe请求622(DMA读或写),并且PCI桥存储请求方ID并生成HT命令以满足PCIe请求。PCI桥将它的单元ID插入它生成的HT请求中,通过逻辑总线625将它发送到HT桥,然后通过HT链接,并且处理器接收HT请求并使用地址字段624中的某些高阶比特作为进入TVT 626的索引。每个TVE包括单元ID,并且在630将TVE的单元ID与HT请求614进行比较。如果这些单元ID是相等的,则检测通过,并且处理请求。然后,从处理器向PCI桥返回HT响应。单元ID将响应路由到适合的PCI桥,并且在PCIe完成(PCIeCompletion)中,PCI桥将请求方ID插入发送给发出请求IOA的PCIe响应分组中。 
参照图7,根据本发明的优选实施例,提供或继续给出了上面描述的前面的实施例的若干特征:是单元ID 707而不是高阶地址比特被用作进入TVT 702的索引;每个单元ID(和每个IOA)指向它自己的TCE 表(TAR-TCE地址寄存器);每个IOA具有整个地址空间的完整所有权——直至完全的64比特;注意,使用高阶地址比特作为TVT索引限制了对地址空间的使用;在不需要使用高阶地址比特作为进入TVT的索引的情况下,可以更高效地使用40比特HT模式,并且这节省了定义了HT的预地址扩展报头的开销;如果要求使用可选的基地址寄存器(BAR)/Limit比较703来作为类似于上面描述的比较验证步骤的进一步验证的话,则该可选的基地址寄存器(BAR)/Limit比较703限制了对IOA来说可用的地址,除非BAR/Limit用在比较步骤中;并且可通过但并非必须通过针对每个单元ID的多个TAR限制和BAR/Limit组合708来获得多页面大小支持。 
在操作中,IOA生成PCIe请求622(DMA读或写),并且PCI桥存储请求方ID并生成HT命令以满足PCIe请求。完全如前所述,PCI桥将它的单元ID插入它生成的HT请求,然而,在这种实现中,处理器接收HT请求706并且使用单元ID 707作为进入TVT 702的索引。如果可选的BAR/Limit比较没有实现,则处理请求。HT包括其中地址可以是40比特的模式。这一40比特模式在节省总线周期方面是有利的,但在高阶地址比特对于对TVT进行索引来说必不可少时不能实现。每个TVT条目704包括TVT的基地址/限制范围和BAR/Limit,并且在703对HT请求706进行比较。这是如上所述的可选的比较步骤,如果对这些地址进行比较,则在实现了可选比较时,检测通过,并且处理请求。处理请求后,从处理器向PCI桥返回HT响应。单元ID将响应路由到适合的PCI桥,并且在PCIe完成(PCIe Completion)中,PCI桥将请求方ID插入发送给发出请求的IOA的PCIe响应分组中。 
参照图8,根据本发明的优选实施例,提供或继续给出了上面描述的实施例的若干特征:使用PCIe请求方ID 807作为进入内容可寻址存储器(CAM)808的输入;CAM 809提供的索引在TVT 802中进行索引;每个IOA指向它自己的转换控制单元(TCE)表(TAR-TCE地址寄存器);每个IOA具有整个地址空间的完整所有权——直至完全的64比特;注意,使用高阶地址比特作为TVT索引限制了对地址空间的使 用;如果要求使用可选的基地址寄存器(BAR)/Limit比较803来作为类似于上面描述的比较验证步骤的进一步验证的话,则该可选的基地址寄存器(BAR)/Limit比较803限制了对IOA来说可用的地址,除非BAR/Limit用在比较步骤中;并且可通过但并非必须通过多个TAR限制和BAR/Limit组合810来获得多页面大小支持。 
在操作中,如上所述,IOA生成PCIe请求622(DMA读或写),然而,在这一实现中,处理器接收PCIe请求分组806并使用它的请求方ID 807作为进入CAM 808的索引,其标识了进入TVT 802的索引809。如果可选的BAR/Limit比较没有实现,则处理请求。每个TVT条目804包括TVT的基地址/限制范围和BAR/Limit,并且在803对PCIe请求806进行比较。这是如上所述的可选的比较步骤。如果对这些地址进行比较,则在实现了可选比较时,检测通过,并且处理请求。处理请求后,从处理器向PCIe开关返回PCI响应。请求方ID将响应路由到发出请求的IOA。 
应当注意的是,本发明或本发明的各方面能够体现在计算机程序产品中,该计算机程序产品包括使得能够实现这里描述的方法的特征,并且当被加载在计算机系统中时能够执行这些方法。在本上下文的意义下,计算机程序、软件程序、程序或软件是指以任意语言、代码或符号编写的对一组指令的任意表达,该组指令用于使得具有信息处理能力的系统直接地或者在以下一个操作或两个操作之后执行特定功能:(a)转换为另一种语言、代码或符号;以及/或者(b)以不同的材料形式重现。出于本说明书的目的,计算机程序产品或计算机可读介质可以是任何能够包含、存储、传送、传播或传输程序以供指令执行系统使用或结合指令执行系统而使用的设备。该介质可以是电子、磁、光、电磁、红外或半导体系统(或者装置或设备)或传播媒介。计算机可读介质的例子包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬盘和光盘。当前的光盘例子包括压缩光盘——只读存储器(CD-ROM)、压缩光盘——读/写(CD-R/W)和DVD。 
尽管这里所公开的发明显然非常适合于实现上述目的,但应当理解,本领域技术人员可以设计大量修改和实施例,并且所附权利要求书旨在覆盖在本发明的真实本质和范围内的所有这些修改和实施例。 

Claims (13)

1.一种数据处理系统,包括:
一组处理器和系统存储器;
多个I/O适配器单元,每个所述I/O适配器单元都具有各自的标识符;
所述一组处理器和系统存储器使用PCIe协议与所述多个I/O适配器单元通信;
所述多个I/O适配器单元包括用于经由PCIe协议向所述一组处理器和系统存储器发送请求的功能,所述请求包括所述各自的标识符,以识别其中一个I/O适配器单元;以及
所述处理器和系统存储器包括CAM,用于基于所述各自的标识符来生成索引值,以便在由所述其中一个I/O适配器单元请求的定义了转换确认表TVT的系统存储器空间中进行索引,其中使用所述索引值作为指向转换确认条目TVE的进入TVT的索引,所述TVE包含转换基地址寄存器TAR,所述TAR包括基地址,其中所述TVT标识了系统存储器中与一个所述I/O适配器单元相关联的唯一且独立的存储器空间。
2.根据权利要求1所述的数据处理系统,其中从所述一组处理器发送的响应分组包括所述各自的标识符,用于识别所述其中一个I/O适配器单元。
3.根据权利要求1所述的数据处理系统,其中所述一组处理器使用所述各自的标识符从CAM生成索引值并且使用所述索引值作为进入所述TVT的索引,以识别针对所述各自的标识符的其中一个I/O适配器单元。
4.根据权利要求3所述的数据处理系统,其中所述一组处理器包括多个逻辑分区,并且所述多个I/O适配器单元中的每个I/O适配器单元能够基于所述每个I/O适配器单元的所述各自的标识符被分配给所述分区的不同分区。
5.根据权利要求4所述的数据处理系统,其中所述一组处理器包括比较电路,用于验证由所述其中一个I/O适配器单元请求的所述存储器空间在分配给所述其中一个I/O适配器单元的逻辑分区中。
6.根据权利要求5所述的数据处理系统,其中所述比较电路包括用于将BAR/Limit值与和所述其中一个I/O适配器单元相关联的地址比特进行比较的电路。
7.一种在数据处理系统中隔离多个I/O适配器单元的方法,所述数据处理系统包括一组处理器,内容可寻址存储器,以及转换确认表TVT,所述方法包括以下步骤:
给每个I/O适配器单元分配各自的标识符;
所述I/O适配器单元发送存储器请求到所述一组处理器,每个请求包括所述的各自的标识符;
作为对所述各自的标识符的响应,基于由CAM提供的索引值在TVT中对由所述每个请求所请求的存储器空间进行索引,其中使用所述索引值作为指向转换确认条目TVE的进入TVT的索引,所述TVE包含转换基地址寄存器TAR,所述TAR包括基地址,其中所述TVT标识了系统存储器中与一个所述I/O适配器单元相关联的唯一且独立的存储器空间。
8.根据权利要求7所述的方法,进一步包括以下步骤:所述处理器发送包括用于识别发出请求的I/O适配器单元的所述各自的标识符的响应分组。
9.根据权利要求7所述的方法,进一步包括以下步骤:所述一组处理器使用所述各自的标识符作为进入所述CAM的索引以生成索引值,并且使用所述索引值作为进入TVT的索引以识别其中一个I/O适配器单元。
10.根据权利要求7所述的方法,进一步包括以下步骤:其中所述一组处理器包括多个逻辑分区,基于多个I/O适配器单元中的每个I/O适配器单元各自的标识符而将该I/O适配器单元分配给所述分区的不同分区。
11.根据权利要求10所述的方法,进一步包括以下步骤:验证由所述其中一个I/O适配器单元请求的所述存储器空间在它的所分配的逻辑分区中。
12.根据权利要求11所述的方法,其中所述验证步骤进一步包括以下步骤:将BAR/Limit值与和所述其中一个I/O适配器单元相关联的地址比特进行比较。
13.根据权利要求12所述的方法,其中所述地址比特包括和所述其中一个I/O适配器单元相关联的高阶地址比特,用于限制所述其中一个I/O适配器单元对所述存储器空间的使用。
CN2008100017488A 2007-01-09 2008-01-08 隔离i/o适配器单元的系统和方法 Expired - Fee Related CN101221552B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/621,334 2007-01-09
US11/621,334 US7617340B2 (en) 2007-01-09 2007-01-09 I/O adapter LPAR isolation with assigned memory space

Publications (2)

Publication Number Publication Date
CN101221552A CN101221552A (zh) 2008-07-16
CN101221552B true CN101221552B (zh) 2010-12-08

Family

ID=39595234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100017488A Expired - Fee Related CN101221552B (zh) 2007-01-09 2008-01-08 隔离i/o适配器单元的系统和方法

Country Status (2)

Country Link
US (1) US7617340B2 (zh)
CN (1) CN101221552B (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4788124B2 (ja) * 2004-09-16 2011-10-05 株式会社日立製作所 データ処理システム
US7660912B2 (en) * 2006-10-18 2010-02-09 International Business Machines Corporation I/O adapter LPAR isolation in a hypertransport environment
US7617340B2 (en) 2007-01-09 2009-11-10 International Business Machines Corporation I/O adapter LPAR isolation with assigned memory space
US20080168208A1 (en) * 2007-01-09 2008-07-10 International Business Machines Corporation I/O Adapter LPAR Isolation In A Hypertransport Environment With Assigned Memory Space Indexing a TVT Via Unit IDs
US20080168207A1 (en) * 2007-01-09 2008-07-10 International Business Machines Corporation I/O Adapter LPAR Isolation In A Hypertransport Envikronment Employing A Content Addressable Memory
US8560782B2 (en) * 2009-09-21 2013-10-15 Freescale Semiconductor, Inc. Method and apparatus for determining access permissions in a partitioned data processing system
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8671287B2 (en) 2010-06-23 2014-03-11 International Business Machines Corporation Redundant power supply configuration for a data center
US8615622B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Non-standard I/O adapters in a standardized I/O architecture
US8505032B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Operating system notification of actions to be taken responsive to adapter events
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8645767B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Scalable I/O adapter function level error detection, isolation, and reporting
US8416834B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Spread spectrum wireless communication code for data center environments
US8504754B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Identification of types of sources of adapter interruptions
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8918573B2 (en) 2010-06-23 2014-12-23 International Business Machines Corporation Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment
US8683108B2 (en) 2010-06-23 2014-03-25 International Business Machines Corporation Connected input/output hub management
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US8745292B2 (en) 2010-06-23 2014-06-03 International Business Machines Corporation System and method for routing I/O expansion requests and responses in a PCIE architecture
US8656228B2 (en) 2010-06-23 2014-02-18 International Business Machines Corporation Memory error isolation and recovery in a multiprocessor computer system
US8417911B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Associating input/output device requests with memory associated with a logical partition
US8478922B2 (en) 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8639858B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US8510599B2 (en) 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
US8677180B2 (en) 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8645606B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Upbound input/output expansion request and response processing in a PCIe architecture
US8261128B2 (en) 2010-08-04 2012-09-04 International Business Machines Corporation Selection of a domain of a configuration access
US8549202B2 (en) 2010-08-04 2013-10-01 International Business Machines Corporation Interrupt source controller with scalable state structures
US8495271B2 (en) 2010-08-04 2013-07-23 International Business Machines Corporation Injection of I/O messages
US9336029B2 (en) 2010-08-04 2016-05-10 International Business Machines Corporation Determination via an indexed structure of one or more partitionable endpoints affected by an I/O message
CN102694717B (zh) * 2011-03-23 2017-04-12 华为数字技术(成都)有限公司 在pcie总线上传输报文的方法、设备和系统
WO2013048483A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Platform storage hierarchy with non-volatile random access memory having configurable partitions
US9378133B2 (en) 2011-09-30 2016-06-28 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
CN103946811B (zh) 2011-09-30 2017-08-11 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
WO2013048491A1 (en) 2011-09-30 2013-04-04 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
WO2013048490A1 (en) 2011-09-30 2013-04-04 Intel Corporation Non-volatile random access memory (nvram) as a replacement for traditional mass storage
US9229884B2 (en) * 2012-04-30 2016-01-05 Freescale Semiconductor, Inc. Virtualized instruction extensions for system partitioning
US9152587B2 (en) 2012-05-31 2015-10-06 Freescale Semiconductor, Inc. Virtualized interrupt delay mechanism
US9436626B2 (en) 2012-08-09 2016-09-06 Freescale Semiconductor, Inc. Processor interrupt interface with interrupt partitioning and virtualization enhancements
US9442870B2 (en) 2012-08-09 2016-09-13 Freescale Semiconductor, Inc. Interrupt priority management using partition-based priority blocking processor registers
US10241923B2 (en) 2012-11-06 2019-03-26 International Business Machines Corporation Configurable I/O address translation data structure
US9639478B2 (en) 2014-01-17 2017-05-02 International Business Machines Corporation Controlling direct memory access page mappings
US10241817B2 (en) 2014-11-25 2019-03-26 Red Hat Israel, Ltd. Paravirtualized access for device assignment by bar extension
US10719474B2 (en) * 2017-10-11 2020-07-21 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
CN109167772A (zh) * 2018-08-22 2019-01-08 深圳市星火电子工程公司 一种跨网交换数据计算机及方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736175B2 (ja) 1991-10-11 1995-04-19 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムのシステム構成設定方法、データ処理システム、及びデータ処理システム用拡張ユニット
US6002883A (en) 1996-07-18 1999-12-14 International Business Machines Corporation System with intersystem information links for intersystem traffic having I/O traffic being transmitted to and from processor bus via processor means
US6311255B1 (en) 1999-04-29 2001-10-30 International Business Machines Corporation System and method for selectively restricting access to memory for bus attached unit IDs
US6523140B1 (en) * 1999-10-07 2003-02-18 International Business Machines Corporation Computer system error recovery and fault isolation
US6662242B2 (en) * 2001-04-17 2003-12-09 International Business Machines Corporation Method for PCI IO using PCI device memory mapping in a logically partitioned system
US6792514B2 (en) * 2001-06-14 2004-09-14 International Business Machines Corporation Method, system and computer program product to stress and test logical partition isolation features
US20030145136A1 (en) 2002-01-31 2003-07-31 Tierney Gregory E. Method and apparatus for implementing a relaxed ordering model in a computer system
US6721816B1 (en) 2002-02-27 2004-04-13 Advanced Micro Devices, Inc. Selecting independently of tag values a given command belonging to a second virtual channel and having a flag set among commands belonging to a posted virtual and the second virtual channels
US6976191B2 (en) * 2002-03-07 2005-12-13 International Business Machines Corporation Method and apparatus for analyzing hardware errors in a logical partitioned data processing system
US7403525B2 (en) 2002-05-15 2008-07-22 Broadcom Corporation Efficient routing of packet data in a scalable processing resource
US20030236852A1 (en) 2002-06-20 2003-12-25 International Business Machines Corporation Sharing network adapter among multiple logical partitions in a data processing system
US7249308B2 (en) 2003-04-21 2007-07-24 International Business Machines Corporation Algorithm to test LPAR I/O subsystem's adherence to LPAR I/O firewalls
US7007125B2 (en) 2003-06-24 2006-02-28 International Business Machines Corporation Pass through circuit for reduced memory latency in a multiprocessor system
US7398427B2 (en) * 2004-07-08 2008-07-08 International Business Machines Corporation Isolation of input/output adapter error domains
US20060010276A1 (en) * 2004-07-08 2006-01-12 International Business Machines Corporation Isolation of input/output adapter direct memory access addressing domains
JP4295184B2 (ja) 2004-09-17 2009-07-15 株式会社日立製作所 仮想計算機システム
US7886086B2 (en) 2005-02-03 2011-02-08 International Business Machines Corporation Method and apparatus for restricting input/output device peer-to-peer operations in a data processing system to improve reliability, availability, and serviceability
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
US7225287B2 (en) * 2005-06-01 2007-05-29 Microsoft Corporation Scalable DMA remapping on a computer bus
US7363404B2 (en) 2005-10-27 2008-04-22 International Business Machines Corporation Creation and management of destination ID routing structures in multi-host PCI topologies
US20070136554A1 (en) * 2005-12-12 2007-06-14 Giora Biran Memory operations in a virtualized system
US7548999B2 (en) 2006-01-17 2009-06-16 Advanced Micro Devices, Inc. Chained hybrid input/output memory management unit
US7673116B2 (en) 2006-01-17 2010-03-02 Advanced Micro Devices, Inc. Input/output memory management unit that implements memory attributes based on translation data
US7613898B2 (en) 2006-01-17 2009-11-03 Globalfoundries Inc. Virtualizing an IOMMU
US7660912B2 (en) 2006-10-18 2010-02-09 International Business Machines Corporation I/O adapter LPAR isolation in a hypertransport environment
US7617340B2 (en) 2007-01-09 2009-11-10 International Business Machines Corporation I/O adapter LPAR isolation with assigned memory space
US20080168207A1 (en) 2007-01-09 2008-07-10 International Business Machines Corporation I/O Adapter LPAR Isolation In A Hypertransport Envikronment Employing A Content Addressable Memory
US20080168208A1 (en) 2007-01-09 2008-07-10 International Business Machines Corporation I/O Adapter LPAR Isolation In A Hypertransport Environment With Assigned Memory Space Indexing a TVT Via Unit IDs

Also Published As

Publication number Publication date
CN101221552A (zh) 2008-07-16
US7617340B2 (en) 2009-11-10
US20080168186A1 (en) 2008-07-10

Similar Documents

Publication Publication Date Title
CN101221552B (zh) 隔离i/o适配器单元的系统和方法
CN101165676B (zh) 隔离数据处理系统的多个输入/输出适配器单元的方法和系统
US20080168208A1 (en) I/O Adapter LPAR Isolation In A Hypertransport Environment With Assigned Memory Space Indexing a TVT Via Unit IDs
CN101206632B (zh) 用套接字连接和共享存储器在主机系统间通信的系统和方法
CN101206633B (zh) 用事务协议和共享存储器在主机系统间通信的系统和方法
CN101206634B (zh) 用于初始化共享存储器的系统和方法
US7398427B2 (en) Isolation of input/output adapter error domains
JP4157710B2 (ja) Pci入出力スロットの論理分割を実施する方法および装置
CN101206622B (zh) 基于指定的有效功能组合配置端点的系统和方法
US7707465B2 (en) Routing of shared I/O fabric error messages in a multi-host environment to a master control root node
US7398328B2 (en) Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification
US7051180B2 (en) Masterless building block binding to partitions using identifiers and indicators
JP4160925B2 (ja) 分散型ノード・トポロジにおけるクロス・チップ通信機構を含むマルチプロセッサ・コンピュータ・システム内の処理ユニット間の通信方法およびシステム
US7908457B2 (en) Retaining an association between a virtual address based buffer and a user space application that owns the buffer
CN104346304A (zh) 使用存储器控制器来请求资源的方法和系统
CN101206587A (zh) 用于单根无状态虚拟功能迁移的系统和方法
CN101206629A (zh) 在运行的PCIe架构中热插/拔新组件的系统和方法
US10425275B2 (en) Centralized distribution of configuration parameters for a cluster server
JP4723470B2 (ja) 計算機システムおよびそのチップセット
US20060010276A1 (en) Isolation of input/output adapter direct memory access addressing domains
CN100385404C (zh) 用于监视数据处理系统中的输入/输出性能的方法和系统
JP2005327288A (ja) パーティション間の隠れストレージ・チャネル及びパーティション分析を排除する方法及び装置
CN103038756B (zh) 确定受i/o消息影响的一个或者多个可分区端点
US20080168207A1 (en) I/O Adapter LPAR Isolation In A Hypertransport Envikronment Employing A Content Addressable Memory
US8364871B2 (en) Providing virtual functions after an input/output adapter is moved from a first location to a second location

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: 20101208