CN1518701A - 用于多层翻译和保护表的方法和装置 - Google Patents
用于多层翻译和保护表的方法和装置 Download PDFInfo
- Publication number
- CN1518701A CN1518701A CNA018226094A CN01822609A CN1518701A CN 1518701 A CN1518701 A CN 1518701A CN A018226094 A CNA018226094 A CN A018226094A CN 01822609 A CN01822609 A CN 01822609A CN 1518701 A CN1518701 A CN 1518701A
- Authority
- CN
- China
- Prior art keywords
- inlet
- translation
- area
- type
- main frame
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Abstract
一种主机,其包括:处理器、连结到所述处理器的主机存储器;以及主机-基础结构适配器,其连结到所述处理器,并提供与交换基础结构的接口,该交换基础结构包括一个或多个附加于基础结构的I/O控制器,主机-基础结构适配器包括用于从所述主机存储器访问翻译和保护表的逻辑,以进行数据事务,所述翻译和保护表包括多个翻译入口和至少一个区域入口。所述至少一个区域入口包括多层翻译入口。
Description
技术领域
本发明涉及一种数据网络,具体地说,涉及一种翻译和保护表(TPT)的翻译入口的排列和使用。
背景技术
在网络结构中,操作系统(OS)使网络硬件虚拟为一组逻辑通信端点,以及到这些端点(如计算机、服务器和/或I/O设备)中硬件的多路访问。操作系统(OS)还可以实现使连接端点之间通信可靠的协议(如传输控制协议,TCP)。
操作系统(OS)可接收请求,以发送消息(数据)和指定与该消息相关的数据位置的虚拟地址,将该消息复制到消息缓冲器,并翻译该虚拟地址。然后,OS安排存储器复制操作,以将来自消息缓冲器存储器中的数据复制到目标设备。可使用翻译和保护表(TPT)将以描述符或工作队列形式接收的虚拟地址翻译为物理地址,并在数据转移(移动)操作期间,在主网络适配器能够访问它们(例如用于到/从远端设备转移)之前定义存储器区域。这就需要更为有效地使用和访问翻译保护表(TPT)的技术,以在数据转移操作期间提供另外的存储器访问保护的同时,执行虚拟到物理的地址翻译。
附图简述
通过结合附图,并参照以下详细描述,使得对本发明实施例的更加全面的理解,以及本发明的很多优点变得显而易见,并被更好地理解,在附图中,使用相同编号标注相同或类似组件,其中:
图1示出了根据本发明一个实施例的数据网络;
图2示出了根据本发明一个实施例的数据网络主机的方框图;
图3示出了根据本发明另一实施例的数据网络主机的方框图;
图4示出了根据本发明一个实施例的数据网络主机的软件驱动器堆栈的一个例子;
图5示出了翻译和保护表的一个例子;
图6示出了翻译和保护表的一个例子;
图7示出了根据本发明一个实施例的翻译和保护表、以及翻译入口、和区域入口;以及
图8示出了根据本发明一个实施例的翻译和保护表、翻译入口、区域入口、以及窗口区域入口。
具体实施方式
本发明适用于所有类型的数据网络和设计为将以下各项链接到一起相互通讯的群集器(cluster):计算机、服务器、外设、存储设备、以及用于通信通信设备。该数据网络的例子包括:局域网(LAN)、广域网(WAN)、校园网(CAN)、城域网(MAN)/全球域网(GAN),存储区域网和系统区域网(SAN),包括使用下一代I/O(NGIO)的新开发的数据网络、未来I/O(FIO)、Infiniband、服务器网、以及那些随着计算机技术发展将来会变得可用的网络。LAN系统包括:以太网、FDDI(光纤分布数据接口)标志环LAN、异步传输模式(ATM)LAN、光纤信道、以及无线LAN。尽管本发明不局限于此,但是为简明起见,讨论将主要集中在示例性的简单数据网络使用,这些数据网络具有通过互连基础结构(fabric)链接到一起的几个示例性的主机和包括I/O控制器的I/O单元。
现在注意附图,特别是图1,其中示出了具有用于数据通信的几个互连端点(节点)的示例性数据网络。如图1所示,例如,数据网络100包括:互连基础结构102(以下称为“交换基础结构”),其由一个或多个交换机A、C和C、相应的物理链路构成,和对应于一个或多个I/O单元1和2的几个端点(节点),以及诸如主机110和主机112的计算机和服务器。I/O单元1包括与其连接的一个或多个控制器,其包括:I/O控制器1(IOC1)和I/O控制器2(IOC2)。类似地,I/O单元2包括与其连结的I/O控制器3(IOC3)。可操作I/O控制器1、2和3(IOC1、IOC2和IOC3)中的每一个控制器以控制一个或多个I/O设备。例如,可将I/O单元1的I/O控制器1(IOC1)连结到I/O设备122,将I/O控制器2(IOC2)连结到I/O设备124。类似地,可将I/O单元2的I/O控制器3(IOC3)连结到I/O设备132和134。I/O设备可是以下几种I/O设备中的任何一种:存储设备(例如硬盘驱动、磁盘驱动)或其他I/O设备。
可将主机和包括附加I/O控制器和I/O设备的I/O单元组织成称为群集器的组,典型地,每个群集器包括一个或多个主机和一个或多个I/O单元(每个I/O单元包括一个或多个I/O控制器)。可通过交换基础结构102主机与I/O单元互连,其中交换基础结构是交换机A、B和C、以及连接交换机A、B和C之间相应的物理链路的集合。
另外,每个I/O单元包括:一个或多个I/O控制器基础结构(IOC-基础结构)适配器,作为交换基础结构102与I/O控制器(例如IOC1、IOC2和IOC3)之间的接口。例如,IOC-基础结构适配器120可使I/O单元1的I/O控制器1和2(IOC1和IOC2)接口到交换基础结构1 02,而IOC-基础结构适配器130可将I/O单元2的I/O控制器3(IOC3)接口到交换基础结构102。
图1所示的主机、I/O单元、I/O控制器、I/O设备、交换机和链路的特定数量和排列仅作为简单数据网络的示例。在所有类型的数据网络中任何数量的主机、I/O单元、I/O控制器、I/O设备、交换机和链路实现和排列上的大范围变化也是可能的。
图2示出了主机(例如主机110或主机112)的示例性实施例。参照图2,主机110包括:连结到主机总线203的处理器202。一个I/O和存储器控制器204(或芯片集)连结到主机总线203。一个主存储器206连结到I/O和存储器控制器204。一个I/O网桥208作为I/O及存储器控制器204与I/O总线205之间的桥或接口。将包括控制器210和212的几个I/O控制器连结到I/O总线205。I/O控制器210和212(包括与其连结的任何I/O装置)提供基于总线的I/O资源。
可将一个或多个主机-基础结构适配器220连结到I/O总线205。另一选择,可将主机-基础结构适配器220直接连结到I/O和存储器控制器(或芯片集)204,以避免I/O总线205的任何限制(见图3)。在上述两种情况中的任何一种情况下,可将主机-基础结构适配器220考虑为用于将主机110接口到交换基础结构102的网络接口卡类型(例如通常包括硬件和固件的NIC)。可利用主机-基础结构适配器220来向主机110提供基础结构通信能力。例如,主机-基础结构适配器220可转换主机格式和兼容于交换基础结构102兼容格式之间的数据。对于从主机110发送的数据,主机适配器220可将数据格式化为包含一个或多个信元序列的一个或多个分组,所述信元包括信元头信息和数据信息。
根据实施例或实施的一个例子,本发明数据网络的主机或I/O单元与Infiniband结构兼容。Infiniband信息/技术规范目前正在开发中,将由Infiniband贸易协会(Infiniband Trade Association)(成立于1999年8月27日)发布,该协会的因特网网址为:http://www.infinibandta.org。数据网络I/O单元的主机还可与“下一代输入/输出(NGIO)技术规范”兼容,其是由NGIO论坛于1999年3月26日提出的。主机-基础结构适配器220可以为主信道适配器(HostChannel Adapter)(HCA),IOC基础结构适配器可以为目标信道适配器(TCA)。主信道适配器(HCA)用于经串行链路提供主机110或112与交换基础结构102之间的接口。类似地,目标信道适配器(TCA)用于经高速串行链路提供交换基础结构102与I/O单元1或2的I/O控制器、或另一个网络之间的接口,该网络包括,但不仅限于局域网(LAN)、广域网(WAN)、以太网、ATM和光纤信道网络。主信道适配器(HCA)与目标信道适配器(TCA)都可在Infiniband结构中实现,或符合由Intel Corp于1999年5月13日提出的“下一代I/O结构:主信道适配器软件技术规范,版本1.0”(Next GenerationI/O Architecture:Host Channel Adapter Specification,Revision 1.0)。而且,每个主机可包括一个或多个主机-基础结构适配器(例如HCA)。但是,Infiniband和NGIO仅作为本发明实施例或实施的举例,本发明不受此限制。相反,本发明可适用于数据网络、主机和I/O的各种变化。
如参照图2-3所进行的描述,可将I/O单元和相应的I/O控制器直接连结到交换基础结构102,而不是作为主机110的一部分。例如,可将包括I/O控制器1和2(IOC1和IOC2)的I/O单元1和包括I/O控制器3(IOC3)的I/O单元2直接(或独立地)连结到交换基础结构102。换言之,如图1-3所示,与将其作为主机110一部分的情况相反,将I/O单元(及与其相连的I/O控制器和I/O设备)作为单独的或独立的I/O资源附加到交换基础结构102。结果,能够灵活地将包括连结到交换基础结构102的I/O控制器(和I/O设备)的I/O单元分配到一个或多个主机(而不是根据物理地连结到主机的本地I/O总线,来具有预定或固定的主机分配)。因为这些组件直接附加到交换基础结构102,而不是作为主机的一部分连接,因此,附加到交换基础结构102的I/O单元、I/O控制器以及I/O设备可作为基础结构附加的I/O资源(即基础结构附加的I/O单元、基础结构附加的I/O控制器和基础结构附加的I/O设备)。
而且,主机110可检测,然后,直接寻址I/O单元和I/O控制器(和附加I/O设备),并与其交换数据,其中该I/O单元和I/O控制器通过主机-基础结构适配器220直接附加到交换基础结构102(即基础结构附加的I/O控制器)。可提供一种用于主机-基础结构适配器220的软件驱动器堆栈,以允许主机110与远程I/O控制器和I/O设备通过交换基础结构102来交换数据,同时优选地,其与许多当前可用的诸如Windows 2000的操作系统兼容。
图4示出了根据本发明实施例举例的示例性主机110的软件驱动器堆栈,其具有基础结构附加I/O资源。如图4所示,主机操作系统(OS)400包括:核心410、I/O管理器420、以及用于接口到各种I/O控制器的多个I/O控制器驱动器,其包括I/O控制器驱动器430和432。根据一个示例性实施例,主机操作系统(OS)400是Windows 2000,I/O管理器是即插即用管理器。
而且,基础结构适配器驱动器软件模块能够访问交换基础结构102、关于基础结构配置的信息、基础结构拓扑结构、以及连接信息。该驱动器软件模块包括:基础结构总线驱动器(上驱动器)440、以及基础结构适配器设备驱动器(下驱动器)442,其用来建立与目标附加代理(例如,I/O控制器)之间的通信,并执行多数驱动器共同的功能,例如,包括:信道提取、发送/接收IO事务消息、远程直接存储器存取(RDMA)事务(例如读和写操作)、队列管理、存储器注册、描述符管理、消息流控制、以及瞬时错误处理和恢复。可将该软件模块提供在诸如软盘或光盘(CD)ROM的有形媒介上,或通过互联网下载,其可用于插入到或下载到主机操作系统(OS)或其他可行方法。
主机110使用虚拟接口(VI)结构,与直接附加到交换基础结构102(即基础结构附加的I/O控制器)的I/O单元和I/O控制器(和附加的I/O装置)通信。根据Compaq Corp.、Intel Corp.和Microsoft Corp.于1997年12月16日提出的“虚拟接口(VI)结构技术规范,版本1.0”(Virtual Interface(VI)Architecture Specification,Version 1.0),VI结构包括4个基本组件:成对工作队列(发送队列和接收队列)的虚拟接口(VI)、可能是应用程序的VI使用者、可以是负责实例化的VI硬件或软件组件的VI提供者、以及完成队列(CQ)。VI是允许VI使用者直接访问VI提供者的机构。每个VI代表一个通信端点,端点对被逻辑地连接,以支持双向、点对点的数据传送。如图4所示,在VI结构中,主机-基础结构适配器220和VI核心代理构成了VI提供者,以直接地执行端点虚拟化,并包括多路复用、去多路复用、通常由主机操作系统(OS)核心410和装置驱动器442执行的数据传送调度的任务。
可使用如图5所示的翻译和保护表(TPT)230将虚拟地址翻译为物理地址,其中该虚拟地址是以成对队列(例如描述数据移动请求的数据结构)分组描述符格式接收的,并定义可被主机-基础结构适配器220访问(即对主机存储器的有效访问)的主机存储器206的存储器区域。而且,翻译和保护表(TPT)230还可用于验证主机-基础结构适配器220的访问许可权,并在访问主机110中任何其他存储器之前执行地址翻译。翻译和保护表TPT)230包括系统存储器地址空间中的多个TPT入口,例如,TPT(0)、TPT(1)、…TPT(t-1)、TPT(t-2)。每个TPT入口(以下也称为翻译入口)代表主机存储器206一个单独一页,例如物理连续的主机存储器206的4KB。如以下将要描述的,TPT表230还包括多于一层的区域入口。因此,TPT表230包括翻译入口和区域入口。每个区域入口包括多层翻译入口。可在主机存储器206内存储TPT表230,或将其存储在主机110、或主机-基础结构适配器220、或与主机基础结构相关的存储器221的不同存储器区域。
图6示出了用于将虚拟地址翻译为物理地址的另一个翻译和保护表(TPT)240。如上所讨论的,TPT表240验证主机-基础结构适配器220的访问许可权,并在访问主机110中任何其他存储器之前执行地址翻译。每个TPT 240包括与虚拟缓冲器相关的多个入口。例如,如图6所示,3个虚拟缓冲器与TPT 240相关,即虚拟缓冲器A(Vba)、虚拟缓冲器B(VBb)和虚拟缓冲器C(VBc)。每个翻译入口对应于虚拟缓冲器的一页,例如4KB或4MB数据。其他数据量也在本发明的范围内。在本例中,每个入口对应4KB数据,虚拟缓冲器A包括8KB数据,虚拟缓冲器B包括12KB数据,虚拟缓冲器C包括12KB数据。更为具体地,TPT 240包括:用于分别寻址虚拟缓冲器A第1页和第2页的入口244和246。TPT 240还包括:用于分别寻址缓冲器B第1页、第2页和第3页的入口248、250和252。TPT 240进一步包括:用于分别寻址虚拟缓冲器C第1页、第2页和第3页的入口256、258和260。TPT 240还包括分隔不同虚拟缓冲器页的未使用部分242。即,未使用部分242分隔虚拟缓冲器A与虚拟缓冲器B,类似地,未使用部分242分隔虚拟缓冲器B与虚拟缓冲器C。也可将未使用部分242提供在TPT 240的开始与结束部分。
图7显示了根据本发明示例性实施例的另一翻译和保护表(TPT)260。图7还显示了翻译入口300、区域入口400、和键入口500,将在以下对其进行描述。该TPT表206包括在单一TPT表中嵌入的两种类型的表。该两种类型的表对应于两种类型的入口(即翻译入口和区域入口)。可通过入口类型位来区分该两种类型的入口,将在以下进行描述。区域入口也可被称为(或被分类为)本地区域入口或可绑定(bindable)区域入口。本地或可绑定区域入口与一个或多个翻译入口的集合描述已注册的存储器区域。在TPT表260中,至少一个翻译入口跟随在一个区域入口之后。例如,入口261是与区域入口400类似的区域入口。因为每个区域入口都被至少一个翻译入口跟随,因此,至少262位于由区域入口261定义的区域(或表)内。入口263、264和265也可以位于由区域入口261定义的区域(或表)内。与每个翻译入口的单一入口相比较,每个区域入口对应于TPT表260内的一个特定区域。TPT表260、键入口500、翻译入口300和区域入口400代表本发明一个示例性实施例,其他实施例、配置、安排也在本发明的范围内。
翻译入口300包括以下字段:1位入口类型字段302、1位高速缓存字段304、16位保护域字段306、3位访问权字段308、1位保留字段310、1位保留字段312、以及41位物理地址字段320。翻译入口300的其他配置和各字段的位数也在本发明的范围内。翻译入口300也可以具有比图7所示字段更多的字段或更少的字段。
区域入口400包括以下字段:1位入口类型字段402、2位区域类型字段404、1位页大小字段406、1位保留字段408、1位保留字段410、6位键字段412、20位大小字段414、以及32位翻译句柄字段420。区域入口400的其他配置和各字段的位数也在本发明的范围内。区域入口400也可以具有比图7所示字段更多的字段或更少的字段。
键入口500包括:6位键字段502和26位TPT索引字段504。键入口500可被称为(或被分类为)用于远程访问的R键。另一种选择,键入口500也可被称为(或被分类为)用于本地访问的L键。在操作中,键字段502的6位可与区域入口400(或随后描述的窗口入口610的键字段622)的键字段412的6位比较,以验证以下描述的访问权。TPT索引字段504用于引用区域入口的其中之一或翻译入口的其中之一(根据其索引号码)。键入口500的其他配置和各字段的位数也在本发明的范围内。键入口500也可以具有比图7所示字段更多的字段或更少的字段。
以下将描述翻译入口300、区域入口400和键入口500的不同字段。在翻译入口300中,入口类型字段302的位(类似地,在区域入口400中入口类型字段402的位、以及窗口区域入口600的入口类型字段612的位)可以区别于:(a)入口是否为翻译入口(如翻译入口300);或(b)入口是否为区域入口(如区域入口400或窗口区域入口600)。例如,如果该位为0,则入口为翻译入口。另一方面,如果该位为1,则入口为区域入口。该位帮助提供了具有翻译入口和区域入口的2层表。高速缓存字段304的位用于确定高速缓存的属性。保护域字段306的位用于确定访问许可。访问权字段308的位用于确定允许的操作。最后,物理页地址字段320的位用于定义与由翻译入口300代表的物理页相关的向上物理地址位。
在区域入口400中,入口类型字段402的位可区别于:(a)入口是否为翻译入口(如翻译入口300);或(b)入口是否为区域入口(如区域入口400或窗口区域入口600)。区域类型字段404的2位用于区分不同类型的区域。例如,区域类型字段404的2位可区分为:本地区域(位00)、可绑定区域(位01)、窗口区域(位10)、以及窗口扩展区域(位11)。用于本地区域的“本地区域”和“可绑定区域”术语描述存储器区域和与该存储器区域相关的远程访问权。例如,本地区域是系统没有打开到特定区域的存储器窗口的区域,可绑定区域是系统打开了到特定区域的存储器区域的区域。换言之,如果一个区域是可绑定的,则打开了到该区域的存储器窗口。页大小字段406的位用于区分翻译入口的不同大小(即页大小),例如4KB页大小或4MB页大小。可将其用于确定跟随的翻译入口的数量。键字段412的位用于验证索引各自入口的键入口500(L键或R键)。大小字段414的位可确定翻译入口300的区域边界。最后,翻译句柄字段420的位可与虚拟地址一起用于确定哪个翻译入口带有页信息。
图8显示了根据本发明示例性实施例的另一个翻译和保护表(TPT)270。图8还显示了翻译入口300、区域入口400和窗口区域入口600。TPT表270和窗口区域入口600代表本发明的一个示例性实施例,其他实施例、配置和安排同样在本发明的范围内。
以下将描述窗口区域入口600。全窗口区域入口包括:类型窗口区域,跟随其后的是两个类型的窗口扩展区域(即每个存储器窗口提供3个TPT槽)。在TPT表270中,该两个窗口扩展顺序地跟随(即在TPT索引中)在窗口入口之后。例如,窗口区域入口600包括:窗口入口610,跟随其后的是窗口扩展入口入口630和窗口扩展入口640。窗口入口定义许可、访问权、以及窗口下面本地区域的位置。存储器窗口可以是能够从远程实体访问的地址范围。
窗口入口610包括以下字段:1位入口类型字段612、2位区域类型字段614、3位访问权字段616、1位边界字段618、1位页大小字段620、6位键字段622、16位保护域字段624和32位键字段626。按照与上述描述区域入口400相同的方式,入口类型字段612的位可区分翻译入口与区域入口,区域类型字段614的2位能够区分不同类型的区域入口,例如本地、可绑定、窗口或窗口扩展。访问权字段616的位用于区分允许的远程操作类型,例如远程读访问、远程写访问、远程原子访问(读修正写)。边界字段618的位用于区分窗口是有界的还是无界的。例如,0位对应于无界窗口,1位对应于有界窗口。页大小字段620的位用于区分翻译入口的不同大小(即页大小),例如4KB页大小或4MB页大小。键字段622的位用于验证索引该入口的键入口500。即,键字段622的6位与键字段502的6位比较,以检验访问权。保护域字段624的位用于验证访问许可,而键字段626的位用于将L键保持为由键入口500所描述的键,并用于指向窗口基于的本地区域(即,将窗口与下面区域相关)。窗口入口610的其他配置和各字段的位数也在本发明的范围内。窗口入口610也可以具有比图8所示字段更多的字段或更少的字段。
如上所述,窗口扩展入口630和窗口扩展入口640是能够在区域类型字段614中被识别的区域类型。窗口扩展入口630和640帮助定义映射区域的字节层起始地址和该区域的长度(以字节为单位)。窗口扩展入口630包括以下字段:1位入口类型字段632、2位区域类型字段634、24位长度字段636和32位基地址字段638。类似地,窗口扩展区域640包括以下字段:1位入口类型字段642、2位区域类型字段644、24位长度字段646和32位基地址字段648。窗口入口600的入口类型字段632和642,以及区域类型字段634和644与以上讨论的入口类型字段304和402,以及区域类型字段404类似。窗口扩展入口630和640的其他配置和各字段的位数也在本发明的范围内。窗口扩展入口630和640也可以具有比图8所示字段更多的字段或更少的字段。
可通过逐次地组合基地址字段638和648的位,来获得窗口区域的基地址。可通过逐次地组合长度字段636和646的位,来获得窗口长度。更为具体地,为获得窗口区域的长度(48位),可从长度字段636提供(48位长度的)低24位,从长度字段646提供(48位长度的)高24位。而且,为获得窗口的基地址(64位),可从基地址字段638提供(64位的)低32位,从基地址648提供(64位的)高32位。虚拟地址和长度(以字节为单位)可定义存储器区域的虚拟边界。
本发明实施例提供的存储器窗口具有以下特征:允许对现有注册存储器区域的所选部分的远程访问权。这一点可称为绑定一个窗口。以不同方式表达为,区域入口400对应于TPT表内的特定区域。例如,TPT表260包括:不同入口261、262、263、264、265和266。区域入口400对应于入口261。262-265入口中的每个入口对应于作为该区域一部分的特定翻译入口300。入口类型字段402的位可区分不同类型的入口(即翻译入口或区域入口)。而且,可通过使用窗口区域入口将远程访问权给予远程实体,以写入(或修正)区域入口内的特定范围,例如区域入口的100字节(即形成存储器窗口)。窗口扩展入口中的基地址和长度能够识别该区域入口的100字节。
如以上所讨论的,键入口500可以是分为键字段502和TPT索引字段504的R键或L键。键字段502提供唯一的键值,以区分不同阶段。键字段502定义区域的当前阶段,并在每次区域入口400的内容被修正时进行改变。索引字段504指向TPT表260中的特定区域入口。区域入口定义存储器映射区域的边界和属性。
以下将描述执行远程翻译查询的操作。其他实施例也在本发明的范围内。每个远程操作请求提供一个虚拟地址(VA)、一个R键(即键入口500)和长度。R键通过使用索引字段,用于通过利用索引字段504定位区域入口400。根据区域入口400中键字段412的位检查键入口500中键字段502的位。假设该检验是成功的,则区域类型字段404的位确定该区域是否为本地区域、可绑定区域、窗口区域或窗口扩展区域。取决于区域的类型,以下将描述可能出现的不同操作。
如果该区域是窗口区域,则根据窗口址边界检查虚拟地址(VA)和长度。也可使用窗口入口610中远程访问权字段616的位,来检查远程访问权。键字段626的位用于定位备份该窗口的存储器区域。可通过以下方式做到这一点:检查该区域的类型是可绑定的、检查键、检查虚拟地址和长度的区域边界,并使用翻译句柄和虚拟地址来定位翻译入口。定位了翻译入口300,检查入口类型字段302的位,以确定该入口是翻译入口,检查保护域字段306的位,并从物理页地址字段320确定物理页地址。
另一方面,如果区域类型被确定为可绑定的或本地的,则执行以下操作。检查TPT边界的翻译句柄,虚拟地址(VA)和长度。翻译句柄、页大小和虚拟地址用于定位翻译入口。定位了翻译入口300,检查入口类型字段302的位,以确定该入口是翻译入口,检查保护域字段306的位,从访问权字段检查远程访问权,从物理页地址字段320确定物理页地址。
以下将描述执行本地翻译的操作。其他操作也在本发明的范围内。每个本地操作指定若干(零或以上)数据段,每个段提供一个虚拟地址(VA)、一个L键(即键入口500)和一个长度。L键可用于定位区域入口400。然后,根据区域类型字段404的位来检验区域类型为可绑定的或本地的。根据区域入口400中键字段412的位检查键入口500内的键字段502的位。然后检查区域边界的虚拟地址和长度。翻译句柄字段420的位、页大小字段415和虚拟地址用于定位翻译入口。定位了翻译入口300,就检查入口类型字段302的位,以确定该入口为翻译入口,检查保护域字段306的位,从访问权字段308检查本地访问权,并从物理页地址字段320确定物理页地址。
可对窗口区域执行地址边界检查。如上所讨论的,可从基地址字段638和648、从紧随窗口入口610后的两个翻译入口的(即窗口扩展入口)的长度字段636和646,来确定窗口区域的基地址和窗口长度。窗口扩展入口630和640中的每个入口可具有ARegion@类型(在入口类型字段612中)的入口类型,以及A Window Extension@(在区域类型字段614中)的区域类型。
接收到的虚拟地址大于或等于基地址(即,基地址638和648的组合),且虚拟地址小于基地址加窗口长度(即,长度字段636和646的组合)。而且,接收到的虚拟地址加给定的窗口长度小于基地址加窗口长度。窗口长度大于零。
以下将描述对本地区域进行的地址边界检查。地址可到翻译入口层。可从区域入口400提取特定区域的若干有效的翻译地址入口。当与句柄组合(在句柄字段420中)时的接收的虚拟地址翻译为TPT索引号码。TPT索引可具有从区域入口的索引加1到区域入口的索引加1加大小(从大小字段414)的范围。对于除零以外的长度,假设的虚拟地址加长度(即,从长度字段636和646的组合)减1,当与翻译句柄结合,翻译为TPT索引号码。如上所述,TPT索引具有的范围为:从区域入口的索引加1到区域入口的索引加1加大小(从页大小字段414)。
以上示例和描述了本发明的示例性实施例,应被本领域普通技术人员所理解,而且随着技术的发展,可进行各种变化与修改,在不背离本发明范围的情况下,等效物可替代本发明中的组件。本发明适用于所有类型的冗余型网络,包括但不仅限于:Infiniband、下一代输入/输出(NGIO)、ATM、SAN(系统广域网或存储广域网)、服务器网、未来输入/输出(FIO)、光纤信道、以及以太网。而且,可由这样一种计算机处理器来执行上述过程,该处理器执行组织为程序或用户指定的状态机器的指令。适用有形地体现计算机程序指定的存储装置包括所有非易失性存储器的形式,包括但不仅限于:诸如EPROM、EEPROM的半导体存储器装置,以及高速存储装置;磁盘(固定的、软盘和可移动的);诸如磁带的其他磁性媒体;以及诸如CD-ROM盘的光媒介。本发明不受各种公开实施例的限制。相反,在不背离本发明的精神与范围的情况下,对于本领域普通技术人员来说,可有各种其他修改与变化。
Claims (30)
1.一种主机,其包括:
处理器;
连结到所述处理器的主机存储器;以及
主机-基础结构适配器,其连结到所述处理器,并提供与交换基础结构的接口,该交换基础结构包括一个或多个基础结构附加的I/O控制器,主机-基础结构适配器包括用于从所述主机存储器访问翻译和保护表的逻辑,以进行数据事务,所述翻译和保护表包括多个翻译入口和至少一个区域入口,所述至少一个区域入口包括多层翻译入口。
2.根据权利要求1所述的主机,其中所述多个翻译入口中的每个入口包括入口类型字段,以区分所述翻译入口的其中之一与所述至少一个区域入口,所述至少一个区域入口包括入口类型字段,以区分所述翻译入口的其中之一和所述至少一个区域入口。
3.根据权利要求1所述的主机,其中所述至少一个区域入口对应于包括所述翻译和保护表内所述多层翻译入口的一个特定区域。
4.根据权利要求1所述的主机,其中所述至少一个区域入口包括键字段,以验证索引所述至少一个区域入口的键入口。
5.根据权利要求1所述的主机,其中所述至少一个区域入口包括翻译句柄字段,以确定包含所需页信息的所述翻译入口。
6.根据权利要求1所述的主机,其中所述至少一个区域入口包括区域类型字段,以区分多个区域类型。
7.根据权利要求6所述的主机,其中所述多个区域类型包括:窗口区域类型和窗口扩展入口类型,每个窗口区域类型与第一窗口扩展入口类型和第二窗口扩展入口类型相关。
8.根据权利要求7所述的主机,其中在所述第一窗口扩展入口类型和所述第二扩展入口类型中的数据与映射区域的起始地址和所述映射区域长度相关。
9.根据权利要求1所述的主机,其中所述主机-基础结构适配器执行虚拟到物理地址翻译,并使用所述翻译和保护表中的入口,验证对所述主机存储器的访问。
10.一种网络,其包括:
交换基础结构;
连结到所述交换基础结构的I/O控制器;以及
主机,其包括:操作系统、主机存储器、主机-基础结构适配器,其从所述主机存储器访问翻译和保护表,以用于数据事务,所述翻译和保护表包括多个翻译入口和至少一个区域入口,所述至少一个区域入口包括多层翻译入口。
11.根据权利要求10所述的网络,其中所述翻译入口中的每个入口包括入口类型字段,以区分所述翻译入口的其中之一与所述至少一个区域入口,所述至少一个区域入口包括入口类型字段,以区分所述翻译入口的其中之一和所述至少一个区域入口。
12.根据权利要求10所述的网络,其中所述至少一个区域入口对应于包括所述翻译和保护表内所述多层翻译入口的一个特定区域。
13.根据权利要求10所述的网络,其中所述至少一个区域入口包括键字段,以验证索引所述至少一个区域入口的键入口。
14.根据权利要求10所述的网络,其中所述至少一个区域入口包括区域类型字段,以区分多个区域类型。
15.根据权利要求14所述的网络,其中所述多个区域类型包括:窗口区域类型和窗口扩展入口类型,每个窗口区域类型与第一窗口扩展入口类型和第二窗口扩展入口类型相关。
16.根据权利要求15所述的网络,其中在所述第一窗口扩展入口类型和所述第二扩展入口类型中的数据与映射区域的起始地址和所述映射区域长度相关。
17.一种装置,其存储翻译和保护表,以用于虚拟到物理的地址翻译,其验证对单个的翻译和保护表入口的访问请求,所述翻译和保护表包括多个翻译入口和至少一个区域入口,所述至少一个区域入口包括多层翻译入口。
18.根据权利要求17所述的装置,其中所述多个翻译入口中的每个入口包括入口类型字段,以区分所述翻译入口的其中之一与所述至少一个区域入口,所述至少一个区域入口包括入口类型字段,以区分所述多个翻译入口的其中之一和所述至少一个区域入口。
19.根据权利要求17所述的装置,其中所述至少一个区域入口包括键字段,以验证索引所述至少一个区域入口的键入口。
20.根据权利要求17所述的装置,其中所述至少一个区域入口包括区域类型字段,以区分多个区域类型。
21.根据权利要求20所述的装置,其中所述多个区域类型包括:窗口区域类型和窗口扩展入口类型,每个窗口区域类型与第一窗口扩展入口类型和第二窗口扩展入口类型相关。
22.根据权利要求21所述的装置,其中在所述第一窗口扩展入口类型和所述第二扩展入口类型中的数据与映射区域的起始地址和所述映射区域长度相关。
23.一种主机-基础结构适配器,其连结到所述处理器,并提供与交换基础结构的接口,主机-基础结构适配器包括用于从存储器访问翻译和保护表的逻辑,以进行数据事务,所述翻译和保护表包括多个翻译入口和至少一个区域入口,所述至少一个区域入口包括多层翻译入口。
24.根据权利要求23所述的主机-基础结构适配器,其中所述多个翻译入口中的每个入口包括入口类型字段,以区分所述翻译入口的其中之一与所述至少一个区域入口,所述至少一个区域入口包括入口类型字段,以区分所述多个翻译入口的其中之一和所述至少一个区域入口。
25.根据权利要求23所述的主机-基础结构适配器,其中所述至少一个区域入口包括键字段,以验证索引所述至少一个区域入口的键入口。
26.根据权利要求23所述的主机-基础结构适配器,其中所述至少一个区域入口包括区域类型字段,以区分多个区域类型。
27.一种验证对主机的访问请求的方法,所述主机被连结到交换基础结构,并包括处理器、连结到处理器的主机存储器,以及主机-基础结构适配器,该适配器连结到所述处理器,并提供与所述交换基础结构的接口,所述方法包括以下步骤:
从所述主机存储器访问翻译和保护表,以用于数据事务,所述翻译和保护表包括多个翻译入口和至少一个区域入口,所述至少一个区域入口包括多层翻译入口;
接收索引所述翻译入口其中之一和所述区域入口的键入口;以及
比较在所述翻译入口其中之一的与所述区域入口的键字段,以验证访问。
28.根据权利要求27所述的方法,其中所述多个翻译入口中的每个入口包括入口类型字段,以区分所述翻译入口的其中之一与所述至少一个区域入口,所述至少一个区域入口包括入口类型字段,以区分所述多个翻译入口的其中之一和所述至少一个区域入口。
29.根据权利要求27所述的方法,其中所述至少一个区域入口包括区域类型字段,以区分多个区域类型。
30.根据权利要求29所述的方法,其中所述多个类型区域包括:窗口区域类型和窗口扩展入口类型,每个窗口区域类型与第一窗口扩展入口类型和第二窗口扩展入口类型相关。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/739,233 US6947970B2 (en) | 2000-12-19 | 2000-12-19 | Method and apparatus for multilevel translation and protection table |
US09/739,233 | 2000-12-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1518701A true CN1518701A (zh) | 2004-08-04 |
CN100388242C CN100388242C (zh) | 2008-05-14 |
Family
ID=24971388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018226094A Expired - Fee Related CN100388242C (zh) | 2000-12-19 | 2001-10-29 | 用于多层翻译和保护表的方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6947970B2 (zh) |
EP (1) | EP1393186A2 (zh) |
CN (1) | CN100388242C (zh) |
AU (1) | AU2002235249A1 (zh) |
CA (1) | CA2432113C (zh) |
SG (1) | SG102020A1 (zh) |
TW (1) | TW544596B (zh) |
WO (1) | WO2002050687A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101233514B (zh) * | 2005-08-31 | 2010-09-01 | 国际商业机器公司 | 管理输入/输出的方法 |
CN109067506A (zh) * | 2018-08-15 | 2018-12-21 | 无锡江南计算技术研究所 | 一种基于多滑动窗口并发的轻量级异步消息实现方法 |
WO2022233174A1 (zh) * | 2021-05-07 | 2022-11-10 | 华为技术有限公司 | 计算机设备及内存注册方法 |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002057917A2 (en) * | 2001-01-22 | 2002-07-25 | Sun Microsystems, Inc. | Peer-to-peer network computing platform |
US6718453B2 (en) * | 2001-03-26 | 2004-04-06 | Intel Corporation | Apparatus and method for a channel adapter non-contiguous translation protection table |
US6917987B2 (en) * | 2001-03-26 | 2005-07-12 | Intel Corporation | Methodology and mechanism for remote key validation for NGIO/InfiniBand™ applications |
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 |
US7454456B2 (en) * | 2002-02-14 | 2008-11-18 | International Business Machines Corporation | Apparatus and method of improving network performance using virtual interfaces |
US7627693B2 (en) | 2002-06-11 | 2009-12-01 | Pandya Ashish A | IP storage processor and engine therefor using RDMA |
US7415723B2 (en) * | 2002-06-11 | 2008-08-19 | Pandya Ashish A | Distributed network security system and a hardware processor therefor |
US7263103B2 (en) * | 2002-07-23 | 2007-08-28 | Mellanox Technologies Ltd. | Receive queue descriptor pool |
US7290038B2 (en) * | 2002-07-31 | 2007-10-30 | Sun Microsystems, Inc. | Key reuse for RDMA virtual address space |
US7299266B2 (en) * | 2002-09-05 | 2007-11-20 | International Business Machines Corporation | Memory management offload for RDMA enabled network adapters |
JP4332116B2 (ja) * | 2002-11-01 | 2009-09-16 | 富士通株式会社 | アクセス要求制御方法、通信デバイス用ドライバプログラムおよび通信デバイス |
US8102843B2 (en) * | 2003-01-21 | 2012-01-24 | Emulex Design And Manufacturing Corporation | Switching apparatus and method for providing shared I/O within a load-store fabric |
US7698483B2 (en) * | 2003-01-21 | 2010-04-13 | Nextio, Inc. | Switching apparatus and method for link initialization in a shared I/O environment |
US7512717B2 (en) * | 2003-01-21 | 2009-03-31 | Nextio Inc. | Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture |
US7664909B2 (en) * | 2003-04-18 | 2010-02-16 | Nextio, Inc. | Method and apparatus for a shared I/O serial ATA controller |
US7917658B2 (en) * | 2003-01-21 | 2011-03-29 | Emulex Design And Manufacturing Corporation | Switching apparatus and method for link initialization in a shared I/O environment |
US7046668B2 (en) | 2003-01-21 | 2006-05-16 | Pettey Christopher J | Method and apparatus for shared I/O in a load/store fabric |
US8032659B2 (en) | 2003-01-21 | 2011-10-04 | Nextio Inc. | Method and apparatus for a shared I/O network interface controller |
US7188209B2 (en) * | 2003-04-18 | 2007-03-06 | Nextio, Inc. | Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets |
US8346884B2 (en) * | 2003-01-21 | 2013-01-01 | Nextio Inc. | Method and apparatus for a shared I/O network interface controller |
US7493416B2 (en) * | 2003-01-21 | 2009-02-17 | Nextio Inc. | Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture |
US7502370B2 (en) * | 2003-01-21 | 2009-03-10 | Nextio Inc. | Network controller for obtaining a plurality of network port identifiers in response to load-store transactions from a corresponding plurality of operating system domains within a load-store architecture |
US7953074B2 (en) * | 2003-01-21 | 2011-05-31 | Emulex Design And Manufacturing Corporation | Apparatus and method for port polarity initialization in a shared I/O device |
US7219183B2 (en) * | 2003-01-21 | 2007-05-15 | Nextio, Inc. | Switching apparatus and method for providing shared I/O within a load-store fabric |
US7103064B2 (en) * | 2003-01-21 | 2006-09-05 | Nextio Inc. | Method and apparatus for shared I/O in a load/store fabric |
US7174413B2 (en) * | 2003-01-21 | 2007-02-06 | Nextio Inc. | Switching apparatus and method for providing shared I/O within a load-store fabric |
US7836211B2 (en) * | 2003-01-21 | 2010-11-16 | Emulex Design And Manufacturing Corporation | Shared input/output load-store architecture |
US7617333B2 (en) * | 2003-01-21 | 2009-11-10 | Nextio Inc. | Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture |
US7457906B2 (en) * | 2003-01-21 | 2008-11-25 | Nextio, Inc. | Method and apparatus for shared I/O in a load/store fabric |
KR100489685B1 (ko) * | 2003-02-20 | 2005-05-17 | 삼성전자주식회사 | 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한패킷 송수신 장치와 그 방법 |
US7565504B2 (en) * | 2003-03-27 | 2009-07-21 | Hewlett-Packard Development Company, L.P. | Memory window access mechanism |
US20050108518A1 (en) * | 2003-06-10 | 2005-05-19 | Pandya Ashish A. | Runtime adaptable security processor |
US7685254B2 (en) * | 2003-06-10 | 2010-03-23 | Pandya Ashish A | Runtime adaptable search processor |
US7200687B2 (en) * | 2003-09-25 | 2007-04-03 | International Business Machines Coporation | Location-based non-uniform allocation of memory resources in memory mapped input/output fabric |
US7552436B2 (en) * | 2003-11-25 | 2009-06-23 | International Business Machines | Memory mapped input/output virtualization |
US7234037B2 (en) * | 2003-11-25 | 2007-06-19 | International Business Machines Corporation | Memory mapped Input/Output operations |
US20050144422A1 (en) * | 2003-12-30 | 2005-06-30 | Mcalpine Gary L. | Virtual to physical address translation |
US7327749B1 (en) * | 2004-03-29 | 2008-02-05 | Sun Microsystems, Inc. | Combined buffering of infiniband virtual lanes and queue pairs |
US7577707B2 (en) * | 2004-04-21 | 2009-08-18 | International Business Machines Corporation | Method, system, and program for executing data transfer requests |
US7493465B2 (en) * | 2004-05-17 | 2009-02-17 | Oracle International Corporation | Method and system for extended memory with user mode input/output operations |
US8364849B2 (en) | 2004-08-30 | 2013-01-29 | International Business Machines Corporation | Snapshot interface operations |
US7813369B2 (en) * | 2004-08-30 | 2010-10-12 | International Business Machines Corporation | Half RDMA and half FIFO operations |
US20060095690A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method, and storage medium for shared key index space for memory regions |
US9141557B2 (en) | 2006-12-08 | 2015-09-22 | Ashish A. Pandya | Dynamic random access memory (DRAM) that comprises a programmable intelligent search memory (PRISM) and a cryptography processing engine |
US7996348B2 (en) | 2006-12-08 | 2011-08-09 | Pandya Ashish A | 100GBPS security and search architecture using programmable intelligent search memory (PRISM) that comprises one or more bit interval counters |
US7835373B2 (en) * | 2007-03-30 | 2010-11-16 | International Business Machines Corporation | Method and apparatus for buffer linking in bridged networks |
US8576861B2 (en) * | 2007-05-21 | 2013-11-05 | International Business Machines Corporation | Method and apparatus for processing packets |
US8239879B2 (en) * | 2008-02-01 | 2012-08-07 | International Business Machines Corporation | Notification by task of completion of GSM operations at target node |
US8484307B2 (en) * | 2008-02-01 | 2013-07-09 | International Business Machines Corporation | Host fabric interface (HFI) to perform global shared memory (GSM) operations |
US8255913B2 (en) * | 2008-02-01 | 2012-08-28 | International Business Machines Corporation | Notification to task of completion of GSM operations by initiator node |
US8146094B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Guaranteeing delivery of multi-packet GSM messages |
US8200910B2 (en) * | 2008-02-01 | 2012-06-12 | International Business Machines Corporation | Generating and issuing global shared memory operations via a send FIFO |
US8275947B2 (en) * | 2008-02-01 | 2012-09-25 | International Business Machines Corporation | Mechanism to prevent illegal access to task address space by unauthorized tasks |
US8214604B2 (en) * | 2008-02-01 | 2012-07-03 | International Business Machines Corporation | Mechanisms to order global shared memory operations |
US8301717B2 (en) * | 2009-06-09 | 2012-10-30 | Deshpande Enterprises, Inc. | Extended virtual memory system and method in a computer cluster |
US8493863B2 (en) | 2011-01-18 | 2013-07-23 | Apple Inc. | Hierarchical fabric control circuits |
US8744602B2 (en) | 2011-01-18 | 2014-06-03 | Apple Inc. | Fabric limiter circuits |
US8649286B2 (en) | 2011-01-18 | 2014-02-11 | Apple Inc. | Quality of service (QoS)-related fabric control |
US8861386B2 (en) | 2011-01-18 | 2014-10-14 | Apple Inc. | Write traffic shaper circuits |
US20130042238A1 (en) | 2011-08-12 | 2013-02-14 | International Business Machines Corporation | Optimized Virtual Function Translation Entry Memory Caching |
US8954704B2 (en) | 2011-08-12 | 2015-02-10 | International Business Machines Corporation | Dynamic network adapter memory resizing and bounding for virtual function translation entry storage |
US9141568B2 (en) | 2011-08-25 | 2015-09-22 | Apple Inc. | Proportional memory operation throttling |
US8706925B2 (en) | 2011-08-30 | 2014-04-22 | Apple Inc. | Accelerating memory operations blocked by ordering requirements and data not yet received |
US9053058B2 (en) | 2012-12-20 | 2015-06-09 | Apple Inc. | QoS inband upgrade |
US9509641B1 (en) * | 2015-12-14 | 2016-11-29 | International Business Machines Corporation | Message transmission for distributed computing systems |
US20180004681A1 (en) * | 2016-07-02 | 2018-01-04 | Intel Corporation | Systems, Apparatuses, and Methods for Platform Security |
CN109828890A (zh) * | 2019-03-01 | 2019-05-31 | 浪潮商用机器有限公司 | 一种硬盘的测试数据整理方法、装置、设备及存储介质 |
US20220398215A1 (en) * | 2021-06-09 | 2022-12-15 | Enfabrica Corporation | Transparent remote memory access over network protocol |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US555405A (en) * | 1896-02-25 | Albert j | ||
US5255384A (en) * | 1985-02-22 | 1993-10-19 | Intergraph Corporation | Memory address translation system having modifiable and non-modifiable translation mechanisms |
EP0506236A1 (en) * | 1991-03-13 | 1992-09-30 | International Business Machines Corporation | Address translation mechanism |
US5386524A (en) * | 1992-04-16 | 1995-01-31 | Digital Equipment Corporation | System for accessing information in a data processing system |
JP3014080B2 (ja) * | 1994-12-28 | 2000-02-28 | 三菱電機株式会社 | 交換機アダプタ及び汎用計算機 |
US5915088A (en) * | 1996-12-05 | 1999-06-22 | Tandem Computers Incorporated | Interprocessor messaging system |
US6085296A (en) * | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US5991797A (en) * | 1997-12-23 | 1999-11-23 | Intel Corporation | Method for directing I/O transactions between an I/O device and a memory |
US6163834A (en) * | 1998-01-07 | 2000-12-19 | Tandem Computers Incorporated | Two level address translation and memory registration system and method |
US6487628B1 (en) * | 1999-03-31 | 2002-11-26 | Compaq Computer Corporation | Peripheral component interface with multiple data channels and reduced latency over a system area network |
US6604184B2 (en) * | 1999-06-30 | 2003-08-05 | Intel Corporation | Virtual memory mapping using region-based page tables |
US6345347B1 (en) * | 1999-09-27 | 2002-02-05 | International Business Machines Corporation | Address protection using a hardware-defined application key |
US6393544B1 (en) * | 1999-10-31 | 2002-05-21 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for calculating a page table index from a virtual address |
US6611883B1 (en) * | 2000-11-16 | 2003-08-26 | Sun Microsystems, Inc. | Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system |
US6578122B2 (en) * | 2001-03-01 | 2003-06-10 | International Business Machines Corporation | Using an access key to protect and point to regions in windows for infiniband |
US6718453B2 (en) * | 2001-03-26 | 2004-04-06 | Intel Corporation | Apparatus and method for a channel adapter non-contiguous translation protection table |
JP4250373B2 (ja) * | 2002-04-17 | 2009-04-08 | キヤノン株式会社 | 画像形成装置 |
-
2000
- 2000-12-19 US US09/739,233 patent/US6947970B2/en not_active Expired - Lifetime
-
2001
- 2001-10-29 EP EP01985614A patent/EP1393186A2/en not_active Withdrawn
- 2001-10-29 AU AU2002235249A patent/AU2002235249A1/en not_active Abandoned
- 2001-10-29 WO PCT/US2001/049994 patent/WO2002050687A2/en active Application Filing
- 2001-10-29 CN CNB018226094A patent/CN100388242C/zh not_active Expired - Fee Related
- 2001-10-29 CA CA002432113A patent/CA2432113C/en not_active Expired - Fee Related
- 2001-12-13 SG SG200107798A patent/SG102020A1/en unknown
- 2001-12-19 TW TW090131522A patent/TW544596B/zh not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101233514B (zh) * | 2005-08-31 | 2010-09-01 | 国际商业机器公司 | 管理输入/输出的方法 |
CN109067506A (zh) * | 2018-08-15 | 2018-12-21 | 无锡江南计算技术研究所 | 一种基于多滑动窗口并发的轻量级异步消息实现方法 |
WO2022233174A1 (zh) * | 2021-05-07 | 2022-11-10 | 华为技术有限公司 | 计算机设备及内存注册方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100388242C (zh) | 2008-05-14 |
CA2432113C (en) | 2009-07-07 |
EP1393186A2 (en) | 2004-03-03 |
WO2002050687A2 (en) | 2002-06-27 |
CA2432113A1 (en) | 2002-06-27 |
WO2002050687A3 (en) | 2003-12-18 |
TW544596B (en) | 2003-08-01 |
AU2002235249A1 (en) | 2002-07-01 |
SG102020A1 (en) | 2004-02-27 |
US20020078271A1 (en) | 2002-06-20 |
US6947970B2 (en) | 2005-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100388242C (zh) | 用于多层翻译和保护表的方法和装置 | |
CN1432149A (zh) | 转换保护表和使用该表验证访问请求的方法 | |
CN100361100C (zh) | 对用于单通道适配器的多个资源进行逻辑分区的方法和系统 | |
CN1310475C (zh) | 用于根据使用类来控制对设施的访问的装置和方法 | |
US8255667B2 (en) | System for managing memory | |
CN1307570C (zh) | 控制数据处理系统间经由存储器的数据流的方法和装置 | |
US6163834A (en) | Two level address translation and memory registration system and method | |
US6725296B2 (en) | Apparatus and method for managing work and completion queues using head and tail pointers | |
JP5068108B2 (ja) | メモリ・アドレスの変換およびピン止めのための方法およびシステム | |
US7299266B2 (en) | Memory management offload for RDMA enabled network adapters | |
CN102498478B (zh) | 在外围互连上对i/o和计算卸载设备使用两级地址转换的iommu | |
CN101303656B (zh) | 一种Java应用程序远程直接内存访问方法 | |
US6854032B2 (en) | System for accessing a region of memory using remote address translation and using a memory window table and a memory region table | |
US20020091841A1 (en) | Method and apparatus for managing access to memory | |
US20030061296A1 (en) | Memory semantic storage I/O | |
US20040049603A1 (en) | iSCSI driver to adapter interface protocol | |
US20030061417A1 (en) | Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries | |
WO2002041157A2 (en) | Method and apparatus for converting address information between pci bus protocol and a message passing queue-oriented bus protocol | |
WO2008118309A1 (en) | Automated information life-cycle management with thin provisioning | |
CN102473139A (zh) | 包括用于i/o和计算卸载的多层次地址转换的i/o存储器管理单元 | |
WO2000072170A1 (en) | Memory management in distributed computer system | |
CN102301671A (zh) | 消息通信技术 | |
CN113868155A (zh) | 一种内存空间扩展方法、装置及电子设备和存储介质 | |
US7269666B1 (en) | Memory utilization in a network interface | |
US20090164754A1 (en) | Hierarchical block-identified data communication for unified handling of structured data and data compression |
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: 20080514 Termination date: 20181029 |