用于诸如硬件设备的资源的选择性地址转换的制作方法

文档序号:6454181阅读:183来源:国知局
专利名称:用于诸如硬件设备的资源的选择性地址转换的制作方法
技术领域
本发明涉及可用于协同集中式转换硬件在硬件设备中选择性执行地址转 换的方法和机制。具体地,本发明涉及允许控制软件来选择性地允许硬件设备 使用经转换的地址的这样的方法和机制。扭旦 冃眾如应理解,计算机系统釆用了用于控制为其本身执行直接存储器访问(DMA)的硬件设备对系统存储器的访问而非使用中央处理器上的程序将数 据从系统存储器复制到硬件设备或者将数据从硬件设备复制到系统存储器的 机制。存在这种转换机制以支持应用程序、虚拟机等对硬件的直接控制等。计算设备上的特定实体、设备或构造(后文中,称之为"实体")可要求对 与该计算设备相关联的资源的访问权等。如可以理解的,这一资源可以是可与 计算设备相关联的任何种类的资源。例如,资源可以是储存和检索数据的存储 设备,且一般将用于采用存储设备的任何目的。同样,资源可以是诸如网络、 打印机、扫描仪、网络驱动器、虚拟驱动器、服务器等的任何其它资产。因此, 不管资源是什么,该实体实际上都可具有对由这些资源提供的服务的访问权。运行在典型物理硬件系统上的典型物理操作系统允许其上运行的应用程 序采用虚拟存储器地址和寻址,且物理操作系统在这样的虚拟存储器地址和相 应的物理存储器的物理存储器地址之间执行地址转换。使用这样的虚拟存储器 寻址的理由是已知的,从而无需在此处详细描述。 一般,虚拟存储器寻址将运 行在操作系统上的应用程序从涉及干涉运行在该操作系统上的另一程序所采 用的物理存储器的情况中解放出来,还将应用程序从过于紧密连系至任何特定 的物理存储器结构的情况中解放出来。相反,采用虚拟存储器寻址,采用操作 系统的地址转换器来经由适当的数据库等在相应的物理和虚拟存储器地址之 间执行地址转换。这样做,这样的地址转换器也确保一个应用程序所釆用的存
储器不会干涉任何其他应用程序或被任何其他应用程序更改,还确保每一应用 程序具有向其分配的适当的物理存储器量。当执行DMA等的硬件设备由实体采用以访问相应的资源时,该实体所采用的地址是虚拟地址。应认识到,这些虚拟地址不直接对应于物理地址,因此通常,在DMA设备和系统存储器之间引入转换机制。该转换机制使用数据库 等将DMA设备提供的虚拟地址转化成物理地址。转换机制一般被称为DMA 重新映射(DAMr)或IO存储器管理单元(IOMMU)。对大多数系统,IOMMU将服务多个DMA设备。即,将向IOMMU发送 来自多个设备的DMA请求以便处理。IOMMU将使用适于特定设备以将来自 设备的DMA请求中的虚拟地址转换成适当物理地址的数据库。IOMMU—般将具有所谓的转换后备缓冲区(IOTLB),其中它可保存最 近使用的转换的高速缓存。该IOTLB允许IOMMU当对众多DMA操作使用 相同地址时避免耗时的数据库访问。正常地,转换应用于存储器的大部分,诸 如页,使得将对多个DMA操作使用相同的页地址。对某些实体,集中式IOTLB的行为不足以最小化对DMA访问的等待时 间影响。对这些实体,建议允许它们具有自己的IOTLB,使得它们可在请求被 发送给存储器之前本地转换地址。本地转换的高速缓存的优点在于,设备能更 好地了解正将要访问存储器的方式,从而可能更高效地管理其IOTLB,而 IOMMU中的中央IOTLB将纯粹是反应性的且仅响应于即时情况而非能够预 测设备将来的需求。使用设备的IOTLB (后文中被称为地址转换高速缓存即"ATC")的一个示 例是等时设备。等时设备具有特定的等待时间要求,使其能够维持稳定的信息 流。为了防止因对IOMMU数据库不合时、长等待时间的访问引起的对流的中 断,等时设备可在传送之前请求将用于传送的地址的转换。然而,ATC将能够 提供虚拟到物理地址转换供数据实际可用时的等时传送。由于ATC包含来自IOMMU数据库的信息的高速缓存,当对数据库作出 了可能使得ATC中高速缓存的值不再有效的改变时,必须通知ATC。使用无 效协议来确保中央IOMMU数据库和ATC之间的这种同步。当对数据库中可 能位于ATC中的值作出改变时,必须向该ATC发送指示改变了哪些GPA转 换的无效命令。ATC然后可清除其任何相应转换的高速缓存,并向IOMMU 发回指示以指示己清除了条目。该协议是耗时的,且优选地它不被无意义地使 用。在使用远程ATC时,众多不同的编程模型是可能的。在一个模型中,实 体可具有连续用于存储设备的命令的小缓冲区。这所谓的环缓冲区在初始化实体时建立,且缓冲区的地址不会改变直到设备复位。缓冲区中的命令可用命令 中表达为虚拟地址的地址来引用存储器数据缓冲区。尽管命令缓冲区可能连续 重用,但数据缓冲区可能很少重用。因此,尽管设备可受益于具有用于命令缓 冲区地址的ATC,但数据缓冲区转换的本地高速缓存是不值得的。本申请示出 ATC的主要问题。命令缓冲区地址从不改变,且它们被高速缓存在ATC中。 数据缓冲区地址改变相当多,且它们不被高速缓存在设备的ATC中。然而,IOMMU数据库的管理器并不知道数据缓冲区地址不被高速缓存在 设备中,因此每当它改变了数据库中用于数据缓冲区的条目时,它将向设备的 ATC发送无效指示。这导致众多无用的无效指示被发送给ATC。如果控制 IOMMU数据库的软件了解哪些转换可能位于设备的ATC中,哪些不位于其 中,则它可避免发送不需要的无效指示。概述本发明至少部分满足前述需求,本发明中计算系统具有用于提供资源服务 的资源,其中经由系统地址(SA)访问每一资源服务。计算系统的设备经由请 求来请求资源的资源服务,其中每一请求包括远程地址(RA)。计算机系统 的集中式地址转换器(CAT)具有设备的RA/SA转换的数据库,其中数据库 中的每一RA/SA转换对应于相应的RA和SA。 CAT从设备对资源的请求,并 对每一请求根据数据库中的相应的RA/SA转换将其RA转换成相应的SA,并将请求以及经转换的地址转发给资源。设备具有带有用于存储从CAT获取的RA/SA转换的高速缓存的远程地址 转换器(RAT)。被存储在CAT的数据库中的每一 RA/SA转换包括优先标志, 设置以指示RA/SA转换是否被RAT视为优先转换。RAT高速缓存中的每一优 先转换的有效性标志一开始当从CAT获取优先转换时被设置,以指示该优先
转换有效。RAT高速缓存中的每一优先转换的有效性标志随后被设置,以指示 如果CAT向RAT通知与RA相关联的SA已改变则这样的优先转换无效。RAT从设备接收对访问资源的请求,且对每一请求确定其高速缓存中是 否有有效的RA/SA转换对应于该请求的RA。如果是,则RAT确定相应的转 换是否是优先转换。如果是,则RAT将RA转换成相应的SA,并在请求中设 置标志以指示它包含SA,并将经转换的请求转发给CAT。 CAT将检査请求, 且如果它发现请求包含SA,则它将请求转发给资源而不进一步转换。否则, 如果请求不指示它包含经转换的地址,则CAT将把请求中的RA转换成SA。如果RAT在高速缓存中找到对应于该RA的有效条目,但优先标志未设 置,则RAT将请求以及RA而非SA发送给CAT,且将不设置指示请求包含 SA的标志。在由CAT使用的数据库中维护优先标志。当控制软件改变数据库中的条 目时,它检査以查看设备是否具有RAT,且如果是则检查以查看优先标志是否 被设置。如果设备具有RAT且优先标志被设置,则控制软件将向RAT发送无 效命令以确保RAT中的高速缓存不再包含不再有效的RA至SA的转换。如果 优先标志未设置,则控制软件无需发送无效指示,因为RAT不会试图使用不 再有效的转换。设备可使用任何数目的方案来确保CAT中的高速缓存不会充满未将优先 标志设置的条目。示例方案供设备周期性无效未将优先标志设置的所有有效条 目。另一示例供设备跟踪其因缓冲区访问而对RA的使用。当不再需要RA时, 诸如当相关联的DMA传送完成时,RAT高速缓存中对应于该RA的任何有效 条目将被无效。附图以上概述以及以下本发明实施例的详细描述在结合附图阅读时能够被更 好地理解。出于说明本发明的目的,在附图中示出目前优选的实施例。然而, 如应理解的,本发明不限于所示的精确安排和手段。在附图中

图1是表示其中可实现本发明的示例性非限制计算环境的框图;图2是表示具有其中可实现本发明的各种计算设备的示例性网络环境的 框图;图3是根据本发明的一个实施例示出具有一种设备的计算设备的框图,该 设备采用不同于系统地址的远程地址并包括与该计算设备的系统地址转换器 分开的远程地址转换器,其中远程地址转换器在高速缓存中存储转换;图4是根据本发明的一个实施例示出图3的远程地址转换器的高速缓存以 及系统地址转换器的数据库的框图;以及图5和6是根据本发明的一个实施例示出结合图3的远程地址转换器的高 速缓存以及系统地址转换器的数据库执行的关键步骤的流程图。详细描述 计算机环境图1及以下讨论旨在提供对其中可实现本发明的合适的计算环境的简要 概括描述。然而,应当理解,构想了所有种类的手持式、便携式和其它计算设 备来结合本发明使用。尽管以下描述了通用计算机,但这仅是一个示例。由此, 本发明可在其中蕴含了极少或最小客户机资源的联网的主存服务的环境,例如 其中客户机设备仅用作浏览器或到万维网的接口的联网环境中实现。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执 行特定任务或实现特定抽象数据类型。通常,程序模块的功能可以在各个实施 例中按需进行组合或分布。此外,本领域的技术人员可以理解,本发明可以用 其它计算机系统配置来实施。适用于本发明的其它众所周知的计算系统、环境 和/或配置包括但不限于,个人计算机(PC)、自动提款机、服务器计算机、 手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费者电 子设备、网络PC、小型机、大型计算机等等。本发明也可以在其中任务由通 过通信网络链接或其它数据传输介质的远程处理设备来执行的分布式计算环 境中实践。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内 的本地和远程计算机存储介质中。因此,图1示出了其中可实现本发明的合适的计算系统环境100的一个示 例,尽管如上所述,计算系统环境100仅为合适的计算环境的一个示例,并非 对本发明的使用范围或功能提出任何局限。也不应该把计算环境100解释为对
示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。参见图1,用于实现本发明的示例性系统包括计算机110形式的通用计算 设备。计算机110的组件可以包括,但不限于,处理单元120、系统存储器130 和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线 121。系统总线121可以是若干类型总线结构中的任一种,包括存储器总线或 存储器控制器、外围总线以及使用各类总线体系结构中的任一种的局部总线。 作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、 微通道体系结构(MCA)总线、增强型ISA (EISA)总线、视频电子技术标 准协会(VESA)局部总线、外围部件互连(PCI)总线(也称为小背板(Mezzanine) 总线)以及PCI Express。计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计 算机110访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可 移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和 通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机 可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移 动和不可移动介质。计算机存储介质包括但不限于,RAM、 ROM、 EEPROM、 闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、 磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可 由计算机110访问的任一其它介质。通信介质通常具体化为诸如载波或其它传 输机制等己调制数据信号中的计算机可读指令、数据结构、程序模块或其它数 据,且包含任何信息传递介质。术语"已调制数据信号"指的是这样一种信号, 其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例而非局 限,通信介质包括诸如有线网络或直接线连接或光纤连接等有线介质,以及诸 如声学、rf、红外、光学、以任何波长工作的相控阵天线、以任何波长工作的定向或非定向电磁发射机和接收机以及其它无线介质等无线介质。以上的任何 组合也应包括在计算机可读介质的范围内。系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质, 如只读存储器(ROM) 131和随机存取存储器(RAM) 132。基本输入/输出系 统133 (BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基 本例程,它通常被存储在ROM131中。RAM132通常包含处理单元120可以 立即访问和/或目前正在操作的数据和/或程序模块。作为示例,而非限制,图 1示出了操作系统B4、应用程序135、其它程序模块136和程序数据137。计算机110也可以包括其它可移动/不可移动、易失性/非易失性的计算机 存储介质。仅作示例,图l示出了对不可移动、非易失性磁介质进行读写的硬 盘驱动器141,对可移动、非易失性磁盘152进行读写的磁盘驱动器151,以 及对可移动、非易失性光盘156,如CDROM或其它光介质进行读写的光盘驱 动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非 易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、 数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由不可移动存 储器接口,诸如接口 140连接至系统总线121,磁盘驱动器151和光盘驱动器 155通常由可移动存储器接口,诸如接口 150连接至系统总线121。上文讨论并在图1中示出的驱动器及其关联的计算机存储介质为计算机 110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如, 在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序 模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、 其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、 其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明至少 它们是不同的副本。用户可以通过输入设备,诸如键盘162和定点设备161 (通 常指鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。其它输入设备(未 示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些 和其它输入设备通常由耦合至系统总线121的用户输入接口 160连接到处理单 元120,但是也可由诸如并行端口、游戏端口或通用串行总线(USB)之类的 其它接口和总线结构连接。监视器191或其它类型的显示设备也经由诸如视频接口 190等接口连接到 系统总线121。诸如北桥(Northbridge)等图形接口 182也可连接到系统总线 121。北桥是与CPU或主机处理单元120通信的芯片组,并承担了加速图形端 口 (AGP)通信的责任。 一个或多个图形处理单元(GPU) 184可以与图形接 口 182通信。在这一点上,GPU184—般包括诸如寄存器存储等片上存储器存 储,并且GPU 184与视频存储器186通信。然而,GPU 184仅是协处理器的一 个示例,且因此计算机110中可包括各种协处理设备。监视器191或其它类型 的显示设备也通过接口,如视频接口 190连接至系统总线121,而视频接口 l卯 又与视频存储器186通信。除监视器191之外,计算机也可包括其它外围输出 设备,如扬声器197和打印机196,它们通过输出外围接口 195连接。计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑 连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由 器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机 IIO描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1 中所示逻辑连接包括局域网(LAN) 171和广域网(WAN) 173,但也可以包 括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特 网中是常见的。当在LAN联网环境中使用时,计算机IIO通过网络接口或适配器170连 接至LAN171。当在WAN联网环境中使用时,计算机HO通常包括调制解调 器172或用于通过诸如因特网等WAN 173建立通信的其它装置。调制解调器 172可以是内置或外置的,它可以通过用户输入接口 160或其它合适的机制连 接至系统总线121。在网络化环境中,相对于计算机IIO所描述的程序模块或 其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图l示出了 远程应用程序185驻留在存储器设备181上。可以理解,示出的网络连接是示 例性的,并且可以使用在计算机之间建立通信链路的其它手段。本领域的普通技术人员可以理解,计算机110或其它客户机设备可作为计 算机网络的一部分来部署。在这一点上,本发明涉及具有任意数量的存储器或 存储单元以及在任意数量的存储单元或巻上发生的任意数量的应用程序和进 程的任何计算机系统。本发明可应用于具有部署在具有远程或本地存储的网络 环境中的服务器计算机和客户计算机的环境。本发明也可应用于具有编程语言 功能、解释和执行能力的独立计算设备。分布式计算便于通过计算设备和系统之间的直接交换共享计算机资源和 服务。这些资源和服务包括信息交换、高速缓存存储和文件的盘存储。分布式 计算利用网络连接,允许客户机利用它们的集体力量来使整个企业受益。在这
一点上,各种设备可具有可交互以蕴含用于可信图形流水线的本发明的认证技 术的应用程序、对象或资源。图2提供了示例性的网络化或分布式计算环境的示意图。分布式计算环境包括计算对象10a、 10b等,以及计算对象或设备110a、 110b、 110c等。这些对象可包括程序、方法、数据存储、可编程逻辑等等。这些对象可包括诸如 PDA、电视机、MP3播放器、电视机、个人计算机等的相同或不同设备的各部 分。每一对象可通过通信网络14与另一对象通信。该网络本身可包括向图2 的系统提供服务的其它计算对象和计算设备。根据本发明的一个方面,每一对 象10或110可包含可以请求用于可信图形流水线的本发明的认证技术的应用 程序。还可以理解,诸如110c等对象可以主存在另一计算设备10或110上。因 此,尽管所示的物理环境可以将所连接的设备示为计算机,但是这样的说明仅 是示例性的,并且该物理环境可以被替换地描述或描绘成含有诸如PDA、电视 机、MP3播放器等的各种数字设备,以及诸如接口、 COM对象等软件对象。存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统 可以由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多 网络耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的 网络。在家庭网络环境中,有至少四个全异的网络传输媒体,其每一个可支持一 种唯一的协议,这些媒体如电力线、数据(无线和有线)、语音(如,电话) 和娱乐媒体。诸如电灯开关和电器设备等大多数家庭控制设备可使用电力线来 连接。数据服务可通过宽带(如,DSL或电缆调制解调器)进入家庭,并可在 家庭内使用无线(如,HomeRF或802.11B)或有线(如,家庭PNA、 Cat 5、 甚至是电力线)连接来访问。语音话务可通过有线(如,Cat3)或无线(如, 蜂窝电话)进入家庭,并可在家庭中使用Cat3连线来分布。娱乐媒体可通过 卫星或电缆进入家庭,并通常在家庭中使用同轴电缆来分布。IEEE 1394和DVI 也作为用于媒体设备群集的数字互联而浮现。可作为协议标准浮现的所有这些 网络环境和其它环境可被互联来形成可通过因特网连接到外部世界的内联网。 简言之,存在各种全异的源用于数据的存储和传输,并因此向前发展,计算设
备需要走在数据处理流水线的所有部分处保护内容的方式。"因特网"通常指使用TCP/IP协议套件的网络和网关的集合,该协议在计算机联网领域中是公知的。TCP/IP是"传输控制协议/网际协议"的縮写。因特网可被描述为由处理允许用户通过网络交互和共享信息的联网协议的计算机 互连的地理上分布的远程计算机网络的系统。由于这类广泛分布的信息共享, 诸如因特网等远程网络至今发展成一种开放式系统,开发者可对该开放式系统 设计用于执行专用操作或服务的软件应用程序,在本质上没有限制。由此,网络基础结构启用了诸如客户机/服务器、对等或混合体系结构等 大量网络拓朴结构。"客户机"是使用与它无关的另一类或组的服务的一个类或 组中的成员。由此,在计算时,客户机是进程,即,粗略地而言是一组请求由 另一程序提供的服务的指令或任务。客户机进程利用所请求的服务,而不必"知 道"有关其它程序或服务本身的任何工作细节。在客户机/服务器体系结构中, 尤其是网络化系统中,客户机通常是访问由另一计算机,如服务器提供的共享网络资源的计算机。在图2的示例中,计算机110a、 110b等可以被认为是客 户机,而计算机10a、 10b等可以被认为是服务器,其中服务器10a、 10b等维 护随后在客户机计算机110a、 110b等中复制的数据。服务器通常是可通过诸如因特网的远程网络访问的远程计算机系统。客户 机进程可以在第一计算机系统中活动,而服务器进程可以在第二计算机系统中 活动,它们通过通信介质彼此通信,从而提供分布式功能并允许多个客户机利 用服务器的信息收集能力。客户机和服务器可使用由协议层提供的功能彼此通信。例如,超文本传输 协议(HTTP)是一种结合万维网(WWW)使用的常见协议。通常,计算机 网络地址,如统一资源定位符(URL)或网际协议(IP)地址,可用于彼此标 识服务器或客户机计算机。网络地址可被称为统一资源定位符地址。例如,通 信可在通信介质上提供。特别地,客户机和服务器可经由TCP/IP连接而彼此 耦合,以便进行高容量通信。由此,图2示出了其中可采用本发明的具有通过网络/总线与客户机计算 机通信的服务器的示例性网络化或分布式环境。更详细地,根据本发明,多个 服务器10a、10b等经由通信网络/总线14互连,通信网络/总线14可以是LAN、
WAN、内联网、因特网等,它具有多个客户机或远程计算设备U0a、 110b、 110c、 110d、 110e等,如便携式计算机、手持式计算机、瘦客户机、联网设备 或其它设备,如VCR、 TV、烤箱、灯、加热器等等。由此可以构想,本发明 可应用于对于其希望处理、储存或呈现来自可信源的安全内容的任何计算设 备,以及对于其希望呈现由虚拟机生成的高性能图形的任何计算设备。例如,在其中通信网络/总线14是因特网的网络环境中,服务器10可以 是客户机110a、 U0b、 110c、 110d、 110e等通过诸如HTTP等多种已知协议 中的任一种与其通信的web服务器。服务器10也可用作客户机110,这可以 是分布式计算环境的特征。通信可以在适当时是有线或无线的。客户机设备110 可以通过或不通过通信网络/总线14通信,并可具有与其相关联的独立通信。 例如,在TV或VCR的情况下,可以有或没有其控制的网络化方面。每一客 户机计算机110以及服务器计算机IO可以具备各种应用程序模块或对象135, 并具有对各种类型的存储元件或对象的连接或访问,在这些存储元件或对象上 可储存文件,或者可向其下载或迁移文件的各部分。由此,本发明可以用于具 有可访问计算机网络/总线14或与其交互的客户机计算机110a、 110b等,以及 可与客户机计算机110a、 110b等交互的服务器计算机10a、 10b等,以及其它 设备111和数据库20的计算机网络环境中。选择性地址转换当计算设备上的实体访问资源以及其上地址处的数据时,诸如存储器、硬 盘驱动器等,该实体可包括在实体的虚拟或远程地址(RA)和相应的资源的 物理或系统存储器地址(SA)之间远程执行地址转换的远程地址转换器(RAT)。 如可以理解地,RAT实际上是基于从计算设备的集中式地址转换器(CAT)获 取的转换为实体执行转换的卫星地址转换器,借此,RAT可为该实体执行至少 一些CAT功能从而至少对于该实体减轻CAT的工作负载。经由RAT或CAT等进行地址转换是众所周知的。在这样的地址转换中, 转换器保持并参考相应地址的数据库,并按需更新数据库。这样的数据库可被 组织成表、树或任何其他逻辑形式,且在这样的形式中可包括每个可转换的地 址或仅所需的某些可转换地址。
因此,对于从实体对数据的请求中所引用的RA,请求中的SA必须由RAT 转换成相应的SA,使得RA的数据可从相应SA的资源访问。然而,如应理解, 计算设备实体的RAT代表计算设备的CAT进行地址转换存在问题。具体地, 如果CAT向RAT提供对应于特定RA的第一 SA,且RAT在其高速缓存等中 存储RA/第一 SA,且如果CAT之后决定将该数据从第一 SA移动至第二 SA, 则必须以某种方式向RAT通知如存储在其高速缓存中的第一 SA不再有效。否 则,如果RAT相信第一SA仍对应于特定的RA,试图使用这样的第一SA, 则会发生数据错误。或者,RAT必须假定不能相信高速缓存中的至少某些存储 的SA为有效的。现在参考图3,应理解,此时可概括前述计算设备10。具体地,计算设备 10可以是作为单个装置或装置的联网集合的任何计算系统10,实体可以是计 算设备10中具有带高速缓存36的远程地址转换器(RAT) 34的任何适当设备 32,且计算设备10具有前述集中式地址转换器(CAT 38)。然后,在这样的 情况中,具有高速缓存36的RAT34将在设备32处采用的远程地址(RA)转 换成系统地址(SA),诸如用于基于在高速缓存36高速缓存的RA/SA对等访 问计算设备资源12处的数据的SA。注意到,如果在高速缓存36找到特定的 RA,则RAT34采用相应的高速缓存的SA,而CAT 38无需为RA/SA转换而 费心。当然,如果未在高速缓存36中找到这样的特定RA,则可通过RAT34 向CAT 38请求同样内容找到相应的SA,之后这样的RA/SA对等等可新近存 储在RAT 34的高速缓存36中。对于图3的设备32,问题可如下重述如果CAT38向设备32的RAT34 提供对应于特定RA的第一 SA,且如果CAT 38在其高速缓存36中存储了 RA/ 第一SA,且如果CAT 38之后决定将数据从第一SA移至第二SA,则必须以 某种方式通知RAT 34如存储在其高速缓存36中的第一 SA不再有效。否则, 如果RAT34相信第一SA仍对应于特定的RA,试图使用这样的第一 SA,则 会发生数据错误。或者,RAT34必须假定不能相信高速缓存36中的至少某些 存储的SA为有效的。因此,为了避免这样的数据错误,且为了以其他方式向RAT34提供必要 的功能,RAT 34必须能够按需访问CAT 38以向其请求RA/SA转换,且CAT 38必须能够实际上以这样的RA/SA转换来响应。更具体地,CAT38必须能够 当如由RAT 34存储在其高速缓存36中的特定RA/SA转换因改变或其他而无 效时通知RAT 34,且RAT 34必须能够告诉CAT 38已经在高速缓存36中注 意了无效RA/SA 。然而,注意CAT 38可能难以承担每当如由RAT 34在其高速缓存36中存 储的特定RA/SA转换变为无效时即通知RAT 34的任务,尤其当RAT 34存储 相对大量的这样的转换和/或当CAT 38使相对大量的这样的转换无效时。在任 一情况中,实现这样的通知所必需的资源可能是过度的,以致于CAT38不能 为RAT 38执行正常的转换功能。从而,在本发明的一个实施例中,RA/SA转换的子集被标识为重要或优 先转换,且CAT 38仅当如由RAT 34在其高速缓存36中存储的优先转换变为 无效时才通知RAT34。相应地,当如由RAT34在其高速缓存36中存储的非 优先转换变为无效时,CAT 38不通知RAT 34。当然,对于CAT38当由RAT 34在其高速缓存36中存储的特定优先RA/SA转换变为无效时通知RAT 34, CAT 38必须了解这样的RA/SA转换实际上是优先转换。从而,必须将RAT 34 构造成包括或具有对哪些RA/SA转换是优先转换的知识的访问权,且RAT 34 将这样的知识传输给CAT38。或者,RAT34可具有相应的驱动器等,驱动器 包括或具有对哪些RA/SA转换是优先转换的这样的知识的访问权,且驱动器 (未示出)将这样的知识传输给CAT38。注意到,确定哪些RA/SA转换是优先转换并不一定是困难的,尤其因为 作为优先转换的RA/SA转换应主要包括更频繁使用的RA。更频繁使用的这样 的RA对应于同样更频繁使用的存储器位置,应理解,这样存储器位置应已知。 例如,如果特定设备32频繁使用给定特定RA的环缓冲区,则对应于这样的 环缓冲区RA的RA/SA转换应是优先转换,当它被存储在高速缓存36时应被 视为有效。因此,在开发员设计和开发设备32期间,其RA,诸如相对频繁使用的 RA被标识为优先RA,且将这样标识的优先RA提供给RAT 34、驱动器或与 设备32相关的另一单元,使得这样的优先RA可被传输给CAT38。当然,优 先RA可以是任何适当的RA,包括频繁使用的RA或其他RA,而不背离本发 。从而,且如图4所示,CAT 38在操作中将对应于所标识的优先RA的优 先RA/SA转换以及该RA是优先RA且该RA/SA转换是优先RA/SA转换的标 识存储在其数据库40中。如可以理解地,这样的优先标识例如可以是设置或 清零的优先标志(PFLAG)或位等。相应地,如果CAT38在操作中将对应于 非优先RA的非优先RA/SA转换存储在数据库40中,这样的非优先转换与RA 是非优先RA且RA/SA转换是非优先RA/SA转换的标识一起存储。如可以理 解地,这样的非优先标识例如可以是设置或清零的标志或位等,或仅由优先标 志的负值推断。至此概述,在本发明的一个实施例中,对于RAT34,向CAT38提供优 先RA和RA/SA转换的标识,其中这样的优先RA是来自高速缓存36由RAT 34频繁使用或以其他方式采用的。因此,RAT34需要了解高速缓存中每一这 样的优先转换是否仍有效。在本发明这样的实施例中,然后CAT38通过诸如 设置优先标志等适当的机制注意其数据库40中的每一优先RA。因此,CAT 38 的数据库40中以及也在RAT 34的高速缓存36中的每一 RA及相应的RA/SA 转换或者被标识为优先RA或者被标识为非优先RA。此外,且在本发明的一个实施例中,且如图4中所示,RAT34的高速缓 存36中的至少每一优先RA和相应的优先RA/SA转换以类似于关于优先标志 的方式经由有效性标志(VFLAG)等被标识为有效或非有效。因此,当对CAT 38的数据库40的优先RA的相应SA改变时,这样的CAT 38通知RAT 34等, 并基于这样的通知,改变RAT 34的高速缓存36中的相应的RA/SA转换的有 效性标志,以示出这样的优先转换现在是非有效的,且不应由RAT34采用。现在转向图5,可见在正常操作过程中,需要特定RA/SA转换的RAT 34 可检査来査看是否有同样内容被存储在高速缓存36中(步骤501)。如果不在 高速缓存36中,则RAT34可向CAT38请求并从中接收这一内容,并将这样 接收到的RA/SA转换存储在高速缓存36 (步骤503)中,尤其当这样的转换 是优先转换时。值得注意的是,CAT 38发送RA/SA转换以及从其数据库40 获取的相应的优先标志,且这样的优先标志随转换一起存储在高速缓存36内。 这样做,且尤其当RA/SA转换是优先转换时,这样的优先转换和相应的优先
标志被存储,如步骤503所示,相应的有效性标志被设置以指示该优先转换是 有效的,且未被CAT38或任何其他适当的当局取消或以其他方式无效。因此,在步骤501,如果在检查时发现转换实际上被存储在高速缓存36 中,则RAT 34检査相应的优先和有效性标志以确定转换是否是优先转换且可 被视为有效(步骤505)。如果优先且有效,则可采用来自高速缓存36的转换 而无需从CAT 38获取同一转换(步骤507)。如果不是优先的或如果优先但 不是有效的,则可能不能采用来自高速缓存36的转换,相反这样的转换必须 从CAT38获取(步骤509)。注意到,尽管可在高速缓存36中存储非优先转换,当然优先标志被如此 设置以指示这样的存储不被认为是必需的,因为这样的非优先转换的非有效性 不由CAT38提供。因此,这样的非优先转换将不被RAT34采用,至少根据 步骤615。现在转向图6,可见如果在正常操作过程中,CAT 38对于其数据库40中 的任何RA/SA转换使SA改变(步骤601),则CAT 38必须改变数据库40 中的RA/SA转换,且也必须确定相应的标志是否将RA/SA转换标记为优先 RA/SA转换(步骤603)。如果否,则这样的改变不必被传输给RAT 34,因 为RAT34应不会期望这样的非优先RA/SA转换有效。然而,如果是,则这样 的改变必须被传输给RAT 34,因为RAT 34实际上确实期望这样的优先RA/SA 转换有效(步骤605)。注意到,至RAT34的通信可包括新的优先RA/SA转 换,或可仅包括RAT 34改变高速缓存36中相应有效性标志以反映其中的优先 RA/SA转换不再有效的命令(步骤607)。因此,当下一次设备32要求这样 的优先RA/SA转换时,当审阅高速缓存36之后,RAT 34将根据相应的有效 性标志确定其中的RA/SA转换不是有效的,且因此将向CAT38请求同一内容。再次参考图4,可见数据库40具有RA/SA转换RA799, SA799,相应的优 先标志被设置以指示该转换是优先转换。相应地,如图所示,RA799,SA799随 这样设置的优先标志被存储在高速缓存36中。这对RA802,SA802和 RA803,SA803也一样。然而,注意尽管RA799,SA799和RA802,SA802各自被 存储在高速缓存36处,且相应的有效性标志被设置以指示该优先转换有效, 但这对RA803,SA803不成立,它显然是无效的,因为有效性标志被清零,意
味着SA803在CAT 38的数据库40已改变,且从而在高速缓存36不再有效。 因此,RAT 34将不会采用这样的来自高速缓存36的SA803,而是将改为从 CAT38获取同一内容。也注意到,RA800,SA800以及RA801,SA801被存储在数据库40,优先标 志被清零,且因此不是优先转换。然而,尽管RAT 34己选择在高速缓存36 存储RA800,SA800,且优先标志清零,但RA801,SA801并不同样存储在这样 的高速缓存36中。显然,RAT34或者已选择不存储这样的RA801,SA801,或 者还未向CAT38请求这一内容。最后注意到,对于RAT 34的高速缓存36的RA/SA转换,具有RAT 34 的设备32可或者基于数据的RA或者数据的SA来请求资源12的一地址处的 数据。从而,来自设备32对一地址处的数据的请求必须包括地址类型的标识, 即RA或SA。如应理解,如果是RA,则请求并定向到CAT38以转换RA并 进一步转发给资源12,如果是SA,则请求绕过CAT38。结论实现结合本发明执行的过程所需的编程相当直接,且应对相关编程公众是 显而易见的。具体地,实现图5和6的步骤所需的编程基于每一这样的步骤所 需的功能应是显然的。从而,这样的编程不附在此。因此,可采用任何特定的 编程来实现本发明,而不背离其精神和范围。在本发明中,提供了以更高效的方式执行设备32的地址转换无效的方法 和机制。该方法和机制基于在设备32处高速缓存至少某些RA/SA来为设备32 执行地址转换。当在设备32高速缓存的RA/SA因定义RA/SA转换的数据库 中的条目已改变而不再有效时,从CAT有条件地发送通知,向设备标识所高 速缓存的转换不是有效的。应当理解,可对上述实施例作出改变而不脱离其发明概念。例如,尽管根 据具有在地址存储的数据的资源12描述了本发明,但资源12也可以是采用供 访问的地址的任何其他类型的资源。从而应理解,本发明不限于所公开的具体 实施例,而是旨在覆盖落入如由所附权利要求书定义的本发明的精神和范围内 的修改。
权利要求
1. 一种计算系统,包括提供资源服务的资源,每一资源服务经由系统地址(SA)访问;用于经由请求来请求所述资源的资源服务的设备,每一请求包括对应于所述资源的SA的远程地址(RA);以及集中式地址转换器(CAT),具有用于所述资源和设备的RA/SA转换的数据库,所述数据库中的每一RA/SA转换对应于相应的RA和SA,CAT用于从所述设备接收对所述资源的请求,且对每一请求根据所述数据库中所述相应的RA/SA转换将其RA转换成相应的SA,并将经转换的请求转发给所述资源;所述设备具有带有用于存储从所述CAT获取的RA/SA转换的高速缓存的远程地址转换器(RAT),存储在所述CAT的数据库中的每一RA/SA转换包括优先标志,所述标志被设置以指示所述RA/SA转换是否被所述RAT视为优先转换,存储在所述RAT的高速缓存中的每一RA/SA转换包括有效性标志,所述标志被设置以指示所述转换是否有效,所述RAT的高速缓存中的每一优先转换的有效性标志一开始当从所述CAT获取所述转换时被设置,以指示所述优先转换有效,所述RAT高速缓存中的每一转换的有效性标志随后被设置,以指示如果所述CAT向所述RAT通知这样的转换的SA已改变则这样的转换无效,所述RAT用于从所述设备接收对所述资源的请求,并对每一请求,确定所述高速缓存中是否有RA/SA转换对应于所述请求的RA,且如果是则确定所述相应的转换是否是优先转换,且如果是则确定所述相应优先转换的相应有效性标志是否被设置以指示这样的转换有效,且如果是则根据所述高速缓存中的所述有效优先RA/SA转换将所述RA转换成相应的SA,并将所转换的请求转发给所述资源,否则所述RAT将所述请求发送给所述CAT进行地址转换。
2. 如权利要求1所述的计算系统,其特征在于,所述资源是存储并提供数 据的数据源,且每一数据经由相应的SAT访问。
3. 如权利要求1所述的计算系统,其特征在于,对应于所述RAT的驱动 器向所述CAT标识每一优先转换。
4. 如权利要求1所述的计算系统,其特征在于,所述RAT向所述CAT 请求所述高速缓存的每一 RA/SA转换,其中所述CAT用所请求的转换以及设 置以指示所请求的转换是优先转换的相应的优先标志来响应对RA/SA转换的 每一请求,且其中所述RAT在所述高速缓存中存储所请求的转换和所述相应 的优先标志以及所述优先转换的相应的有效标志。
5. 如权利要求4所述的计算系统,其特征在于,所述CAT在转换的SA 改变且所改变的转换是如由所述CAT的数据库中的相应的优先标志指示的优 先转换时通知所述RAT,且其中所述RAT的高速缓存中所改变的转换的有效 性标志从而被设置以指示这样的转换不再有效。
6. 如权利要求1所述的计算系统,其特征在于,所述RAT向所述CAT 请求所述高速缓存的每一 RA/SA转换,其中,如果所请求的转换不是优先转 换,则所述CAT用所请求的转换以及设置以指示所请求的转换不是优先转换 的相应的优先标志来响应对RA/SA转换的每一请求,且其中所述RAT在所述 高速缓存中存储所请求的转换和所述相应的优先标志。
7. 如权利要求6所述的计算系统,其特征在于,所述CAT在所请求的转 换的SA改变且所改变的转换由所述CAT的数据库中的相应优先标志所指示不 是优先转换时不通知所述RAT。
8. 如权利要求1所述的系统,其特征在于,每一优先转换是相对更频繁使 用的转换,其中不是优先转换的每一转换相对较不频繁地使用。
9. 一种结合计算系统执行的方法,包括 提供资源服务的资源,每一资源服务经由系统地址(SA)访问; 用于经由请求来请求所述资源的资源服务的设备,每一请求包括对应于所述资源的SA的远程地址(RA);以及集中式地址转换器(CAT),具有用于所述资源和设备的RA/SA转换的 数据库,所述数据库中的每一RA/SA转换对应于相应的RA和SA, CAT用于 从所述设备接收对所述资源的请求,且对每一请求根据所述数据库中所述相应 的RA/SA转换将其RA转换成相应的SA,并将经转换的请求转发给所述资源;所述设备具有带有用于存储从所述CAT获取的RA/SA转换的高速缓存的 远程地址转换器(RAT),存储在所述RAT的高速缓存中的每一 RA/SA转换包括被设置以指示所述 转换是否是优先转换的优先标志,且每一转换包括被设置以指示所述转换是否 有效的有效性标志,所述方法包括-所述RAT从所述设备接收对所述资源的请求; 所述RAT确定随所接收的请求包括的RA;所述RAT确定在所述高速缓存中存在对应于所接收的请求的RA的 RA/SA转换;所述RAT之后确定所述高速缓存中所述现存转换的相应的优先标志是否 被设置以指示这样的转换是优先转换,且如果是则确定所述高速缓存中所述优 先转换的相应的有效标志是否被设置以指示这样的优先转换有效;如果所述转换是有效优先转换,则所述RAT根据所述高速缓存中的有效 优先RA/SA转换将所接收请求中的RA转换成相应的SA,并将经转换的请求 转发给所述资源而不将所述请求转发给所述CAT;以及如果所述转换不是有效优先转换,则所述RAT将所接收的请求转发给所 述CAT进行地址转换。
10.如权利要求9所述的方法,其特征在于,所述资源是存储并提供数 据的数据源,且每一数据经由相应的SAT访问。
11. 如权利要求9所述的方法,其特征在于,还包括所述RAT向所述CAT请求RA/SA转换;所述CAT用所请求的转换以及设置以指示所请求的转换是优先转换的相 应的优先标志来响应所述对RA/SA转换的请求;以及所述RAT在所述高速缓存中存储所请求的转换和相应的优先标志以及相 应的有效性标志。
12. 如权利要求ll所述的方法,其特征在于,还包括 所述CAT当优先转换的SA改变时通知所述RAT;以及所述RAT为所述RAT的高速缓存中所改变的转换设置有效性标志,以指 示这样的优先转换不再有效。
全文摘要
计算系统具有用于提供资源服务的资源,其中每一资源服务经由系统地址(SA)访问。设备经由请求来请求资源的资源服务,其中每一请求包括对应于资源的SA的远程地址(RA)。集中式地址转换器(CAT)具有资源和设备的RA/SA转换的数据库,其中数据库中的每一RA/SA转换对应于相应的RA和SA。设备具有带有用于存储从CAT获取的RA/SA转换的高速缓存的远程地址转换器(RAT)。RAT高速缓存中的每一优先RA/SA转换包括基于是否在CAT改变了SA而设置以指示优先转换是否有效的有效性标志。
文档编号G06F15/16GK101401085SQ200780008359
公开日2009年4月1日 申请日期2007年3月8日 优先权日2006年3月10日
发明者D·R·伍藤 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1