CN1320462C - 用于翻译虚拟机环境中客户物理地址的方法和装置 - Google Patents

用于翻译虚拟机环境中客户物理地址的方法和装置 Download PDF

Info

Publication number
CN1320462C
CN1320462C CNB038045427A CN03804542A CN1320462C CN 1320462 C CN1320462 C CN 1320462C CN B038045427 A CNB038045427 A CN B038045427A CN 03804542 A CN03804542 A CN 03804542A CN 1320462 C CN1320462 C CN 1320462C
Authority
CN
China
Prior art keywords
address
logic circuitry
base value
value
physical address
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
CNB038045427A
Other languages
English (en)
Other versions
CN1639692A (zh
Inventor
劳伦斯·史密斯三世
吉尔伯特·奈格
理查德·乌利希
迈克尔·科祖克
安德鲁·格洛伊
埃里希·博林
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1639692A publication Critical patent/CN1639692A/zh
Application granted granted Critical
Publication of CN1320462C publication Critical patent/CN1320462C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Abstract

一种方法和装置被用来有效地翻译存储器地址。该翻译方案生成翻译地址、该翻译地址的存储器类型、以及该翻译的错误位。

Description

用于翻译虚拟机环境中客户物理地址的方法和装置
技术领域
本发明一般地涉及计算机,更具体而言,本发明涉及计算机存储器地址翻译。
背景技术
计算机处理器访问系统存储器来获取系统存储器中的数据或将数据存储在其中。具体而言,处理器使用存储器中数据的物理地址来识别和访问数据。但是,存储器中存储数据的物理地址并不是处理器在内部操作期间用来索引数据的地址。相反,处理器根据程序指令而将虚拟地址赋给正在处理的数据。这样,存储器访问经常需要将虚拟地址翻译成物理地址。
许多处理器使用虚拟或请求分页(demand-paged)存储器方案,其中按需要将程序的执行环境的节映射到物理存储器。虚拟存储器方案允许使用比处理器的虚拟地址空间小得多的物理存储器,并且还提供了存储器保护的机制,以使得共享相同的物理存储器的多个程序不会不利地彼此干扰。
在虚拟存储器方案中,虚拟和物理地址空间被分成多个连续地址块,使得虚拟和物理地址至多属于一个块。块可以是大小不变的,或者可以按系统和/或程序执行要求的指示而大小可变。
如果这些块具有不变的或者固定的尺寸,则其通常被称为页。如果使用可变大小的块,那么这些块被称为段。这样,虚拟地址空间可以被分成段或页。典型的页的大小可以是约4千字节。
发明内容
本发明第一方面公开了一种方法。该方法包括:将物理地址空间划分成多个段;从来自所述物理地址空间的物理地址来计算中间第一地址;从与所述物理地址相关联的基值来计算中间基值;比较所述中间第一地址和所述中间基值,以确定是否可以有效地翻译所述物理地址来得到翻译地址;以及如果所述物理地址可以被有效地翻译,那么将所述物理地址与偏移值组合来得到所述翻译地址。
本发明第二方面公开了一种装置。该装置包括:具有被划分成多个段的第一地址空间的存储器;比较逻辑电路系统,其被耦合到所述存储器,以从来自所述多个段之一的第一地址生成中间第一地址,生成中间基值,并比较所述中间第一地址和所述中间基值以确定所述第一地址是否属于可被有效翻译来得到第二地址的段;和组合逻辑电路系统,其被耦合到所述比较逻辑电路系统并被耦合到所述存储器,如果所述比较逻辑电路系统指示所述第一地址可以被有效地翻译,那么所述组合逻辑电路系统将所述第一地址与偏移值组合以得到所述第二地址。
本发明第三方面公开了一种系统。该系统包括:处理器;被耦合到所述处理器的存储器,所述存储器具有被划分成多个段的第一地址空间;比较逻辑电路系统,其被耦合到所述存储器,以从来自所述多个段之一的第一地址生成中间第一地址,生成中间基值,并比较所述中间第一地址和所述中间基值以确定所述第一地址是否属于可被有效翻译来得到第二地址的段;和组合逻辑电路系统,其被耦合到所述比较逻辑电路系统并被耦合到所述存储器,如果所述比较逻辑电路系统指示所述第一地址可以被有效地翻译,那么所述组合逻辑电路系统将所述第一地址与偏移值组合以得到所述第二地址。
附图说明
在附图的图形中作为示例而非限制地图示各个实施例,附图中类似的标号指示类似的元件。应该注意到在本公开中“实施例”、“一个实施例”或“各个实施例”并不一定指相同的实施例,这样的说法意味着至少一个实施例。
图1示出了在虚拟机环境中将第一地址翻译成第二地址的一种方法的流程图。
图2示出了各个实施例的匹配和组合功能如何相互作用来完成虚拟机翻译的逻辑图。
图3是具有位于中央处理单元中的虚拟机翻译(“VMTR”)单元的计算机系统的图。
图4示出了如何用掩码值和基值来完成实施例的按位匹配功能的逻辑图。
图5示出了如何用掩码值和偏移值来完成实施例的组合功能的逻辑图。
图6A和6B示出了一个实施例进行虚拟机翻译以得到翻译地址、该翻译地址的存储器类型以及该翻译的错误位所需要的逻辑。
图7示出了验证每一位都匹配并且合适的存储器类型范围寄存器是激活的实施例的逻辑图。
具体实施方式
这里公开的各个实施例实现了一种有效的地址翻译方案,其产生翻译地址、翻译地址的存储器类型和翻译的错误位。在以下说明中,为了解释的目的而给出大量具体细节,以提供对各个实施例的透彻理解。但是,对本领域技术人员将很清楚,没有这些具体细节中的某些也可以实现实施例。例如,可以根据各个实施例的教导来修改各个信号、布局模式和逻辑电路。
以下说明和附图提供了用于举例说明目的的示例。但是,不应在限制的意义上理解这些示例,因为其并不欲提供所有可能实现的穷尽列表。在其他情况下,省略或简化了公知的结构和设备,以避免模糊各个实施例的细节。
现在参照图1,该图示出了在虚拟机环境中将第一地址翻译成第二地址的方法的流程图。在虚拟机环境中,在操作系统(这里称为客户操作系统,guest operating system)的控制下所产生的物理地址被称为客户物理地址(例如图1中的第一地址)。由虚拟机监控器根据被赋给与物理地址相关联的存储器范围的存储器类型的内容,而将这些客户物理地址翻译成主机物理地址(例如图1中的第二地址)。
存储器类型可以被存储成多种数据结构并按需要被访问。除了其他数据之外,存储器类型指示对于来自给定地址范围的物理地址是否应该发生翻译,以及对给定地址范围的访问是否会导致错误。在各个实施例中,存储器类型中的偏移位指示翻译是否应该发生。如果不应该发生翻译,则翻译地址与物理地址相同。如果允许翻译发生,则进行下面描述的匹配和组合功能。
在图1的框10处,从第一地址计算中间第一地址。第一地址与物理地址空间(例如存储器)的多个段中的一个相关联。优选地,这些段是分开的,这意味着这些段不重叠。
分开的段是所期望的,因为每个地址只属于一个段。这消除了冲突解决的需要,而当由属于两个重叠段的地址产生两个不同映射时冲突解决是必要的。
假定第一地址的存储器类型指示翻译应该发生,则在框12处从与第一地址相关联的基值来计算中间基值。在框14处比较中间第一地址和中间基值。在判断框16,确定第一地址是否应该被翻译。
在框16处的判断是基于中间第一地址和中间基值是否“匹配”,如在框14处所执行的比较所示。如果中间第一地址和中间基值匹配,则第一地址可以被翻译。执行匹配功能来验证对第一地址存在有效的翻译。
在各个实施例中,使用下面的等式来确定中间第一地址和中间基值是否匹配:
(地址&掩码)=(基值&掩码)            等式1
等式的左侧表示中间第一地址,而等式的右侧表示中间基值。具体而言,与第一地址相关联的掩码值被分别应用(例如用逻辑“与”函数)到第一地址和基值两者。
保持由掩码指定的每一位的位置以用于比较。例如,如果掩码值是11110000,则第一地址(例如一旦应用掩码则为中间第一地址)的四个最高有效位将被保持来与中间基值(例如基值的四个最高有效位)进行比较。
如果等式各侧的值是相等的,则中间第一地址和中间基值匹配。如果不相等,则对第一地址没有有效的翻译。
值得注意的是可以使用其他匹配机制。例如,可以使用范围校验来确定第一地址是否可以被有效地翻译。
不考虑所使用的匹配机制,只要有匹配并且存储器类型指示应该应用偏移,则在框20处将第一地址与偏移值“组合”来得到第二地址(例如翻译地址)。如果没有匹配,则在框18处发出错误警告。将依次讨论在框20和框18处所做的各个动作。
如果出现匹配,则一个实施例中框20的组合功能是类似于上述匹配等式(例如等式1)的按位逻辑操作。具体而言,使用以下等式来翻译第一地址即地址1来得到第二地址即地址2
地址2=(地址1&~掩码)|(偏移&掩码)        等式2
“&”表示逻辑“与”函数,而“|”表示逻辑“或”函数。“~”表示将紧接着的值取反。
这样,由掩码所指定的偏移位将代替被指定由~掩码所代替的地址1位。例如,如果地址1是AAAAAAAA,偏移是TTTTTTTT,并且掩码是11110000,那么地址2将为TTTTAAAA。这个结果是由于这样的事实,即掩码指定了偏移的四个最高有效位应该代替地址1的四个最高有效位,以及~掩码指定了地址1的四个最低有效位应该被保持。
在其他实施例中,通过将偏移值加到第一地址而得到第二地址,来完成框20的组合功能。
各个实施例还包括对翻译地址的存储器类型的确定。此确定过程或者与翻译并行进行,或者在翻译完成之后进行。在一个实施例中,将翻译地址的存储器类型与和物理地址匹配的基值相关联。
现在集中到框18,发出错误警告来指示对物理地址不存在映射。通常,如果客户操作系统尝试访问存储器中这样的区域,即其不具有应该响应于这样的访问尝试的设备或地址时,那么对于物理地址将不存在映射。
错误警告还可以带有已尝试过访问特定段(例如该物理地址所属的段)的通知。例如,可以在检测到是否已经为该特定段设置了错误位时发出这样的通知。取决于实施例,错误位可以被设置在一个或多个值中。在一个实施例中,错误位被设置在与匹配要被翻译的物理地址的基值相关联的存储器类型中。
图2示出了上述匹配和组合功能之间的相互作用的一个实施例的逻辑图。虽然示出了32位的地址,但是这里所描述的各个实施例可以适用于多于或少于32位。32位物理地址PA的每一位都被分析来确定是否有匹配。只要所有的位都匹配,那么将产生翻译地址TA。但是,如果没有完整的匹配,那么可以取决于系统配置发出错误通知。
例如,当物理地址位匹配时,如前所述,将匹配位与来自偏移值的恰当位组合以得到翻译位。将翻译位与所有其他正确匹配和翻译的位组合来形成翻译地址。
图3示出了计算机系统22的示例,该系统具有进行上述地址翻译的虚拟机翻译(“VMTR”)单元48。具体而言,计算机系统22包括中央处理单元(“CPU”)40、耦合到中央处理单元40的存储器42、位于中央处理单元40内的虚拟机翻译单元48、以及芯片组44。虽然图3示出了位于中央处理单元40内的虚拟机翻译单元48,但是可以预想到将虚拟机翻译单元48置于计算机系统22内的其他地方,或者甚至远离计算机系统22但仍然耦合到计算机系统22的布置。计算机系统22经由输入/输出总线46来与外部设备(例如键盘、鼠标、监视器等等)通信。
在实施例中,计算机系统22包括至少一部分被分成多个段的存储器42、耦合到存储器的比较逻辑电路系统、以及耦合到比较逻辑电路系统并耦合到存储器的组合逻辑电路系统。虽然在图3中没有示出,但比较逻辑电路系统和组合逻辑电路系统都布置在虚拟机翻译单元48内。
图4和7示出了比较逻辑电路系统的逻辑表示。具体而言,比较逻辑电路系统被设计来进行上面的等式1所给出的匹配操作。如图4所示,将中间第一地址用与门24来计算,并将中间基值用与门26来计算。门28是异或非门,这意味着门28确定来自门24的输出和来自门26的输出是否相等。如果相等,则匹配。如果不相等,则不匹配。
此匹配操作是在一位一位的基础上执行的,并且可以并行执行。一旦对每一位都执行了匹配操作(例如为i的所有值都确定了BitMatch[i]),那么就如图7所示地确定了全部匹配MatchN。具体而言,与门64验证物理地址的每一位都匹配。如果每一位都匹配,并且下面详细讨论的合适的存储器类型范围寄存器是激活的(例如由ActiveN信号标识),那么与门66就生成输出MatchN来指示翻译可以发生。或者,MatchN可以指示不应该发生翻译,使得最终的物理地址与输入物理地址相同。这可能由于物理地址不匹配或者存储器类型范围寄存器未激活而发生。
图5示出了组合逻辑电路系统的逻辑表示。具体而言,组合逻辑电路系统被设计来进行上面的等式2所给出的组合操作。与门30被用来确定物理地址PA中的哪些位要在翻译地址TA中保持。与门32被用来确定偏移值中的哪些位要代替将不在翻译地址中保持的物理地址位。
通过或门34来计算翻译地址。如果MatchN(来自图7)指示物理地址应该被翻译,那么通门(pass gate)36将只允许来自或门34的信号作为翻译地址通过。如图2所示,在各个实施例中在一位一位的基础上进行匹配功能(图4和7)和组合功能(图5)。
图6A和6B示出了对英特尔32位体系结构处理器的实施例的逻辑图,其中从输入的物理地址得到翻译地址和存储器类型(“MT”)。具体而言,翻译单元50包括固定范围存储器类型范围寄存器(“MTRR”)的表52。在所示的实施例中,这些固定范围MTRR提供了范围在零到1兆字节之间的地址的存储器类型。但是,此固定范围可以变化。这里,选择零到1兆字节是因为,历史上,此范围的存储器被分段最多。
翻译单元50还包括可变范围MTRR的表54。可变范围MTRR限定了许多可变大小范围的存储器类型。这些范围由基值和掩码值限定。每个范围还与有效位、存储器类型(其可以包括错误位和偏移位,该偏移位指示是否要翻译)以及偏移值相关联。如上所述,这些值被用来确定是否要翻译第一地址,并且如果需要则用来翻译第一地址。
错误检测逻辑56表示被耦合到比较逻辑电路系统(其逻辑表示在图4和7中示出)的错误检测电路系统。错误检测逻辑56被配置来基于用户偏好检测并发出错误警告。如上所述,如果不存在映射或者尝试访问特定段,则可以发出错误警告。
MTRRdefType寄存器58控制翻译单元50的操作。具体而言,MTRRdefType寄存器58具有控制固定和可变两种MTRR是否激活的使能字段(“E”)。MTRRdefType寄存器58的固定使能字段(“FE”)控制固定范围寄存器是否被使能。这样,当使能字段指示MTRR是激活的时,翻译可以发生。如果MTRR不是激活的,则使用由来自MTRRdefType寄存器58的类型字段所指定的存储器类型。
这样,翻译单元50取走输入物理地址(例如第一地址),并且如果需要还翻译地址,并输出最终的物理地址(例如第二地址)、最终物理地址的存储器类型、以及错误位。复用器60输出来自固定范围MTRR的表52、可变范围MTRR的表54、或者来自MTRRdefType寄存器58的存储器类型。
复用器62基于是否设置了偏移位而输出地址。如果偏移位指示不应该发生翻译,那么最终物理地址将和输入物理地址相同。如果偏移位指示地址应该被翻译,那么从可变范围MTRR的表54得到的翻译地址(例如经由上述的匹配和组合)将是最终物理地址。
应该理解到即使在以上说明中已给出了各个实施例的大量特征和优点,以及结构和功能的细节,但是本公开仅仅是说明性的。可以具体做出改变,尤其是对结构和部件管理的内容做出改变,而不偏离由所附权利要求的多个权项的广泛一般意义所表述的各个实施例的范围。

Claims (20)

1.一种方法,包括:
将物理地址空间划分成多个段;
从来自所述物理地址空间的物理地址来计算中间第一地址;
从与所述物理地址相关联的基值来计算中间基值;
比较所述中间第一地址和所述中间基值,以确定是否可以有效地翻译所述物理地址来得到翻译地址;以及
如果所述物理地址可以被有效地翻译,那么将所述物理地址与偏移值组合来得到所述翻译地址。
2.如权利要求1所述的方法,还包括:
确定所述翻译地址的存储器类型。
3.如权利要求2所述的方法,其中所述确定步骤包括:
从与所述物理地址相关联的所述基值读取所述存储器类型。
4.如权利要求1所述的方法,其中计算所述中间第一地址的步骤包括:
确定所述物理地址中的哪些位应该被保持在所述中间第一地址中,来与所述中间基值进行比较,
并且其中计算所述中间基值的步骤包括:
确定基值中的哪些位应该被保持在所述中间基值中,来与所述中间第一地址进行比较。
5.如权利要求4所述的方法,其中确定所述物理地址中的哪些位以及所述基值中的哪些位应该被保持来进行比较的步骤包括:
向所述物理地址和所述基值中的每一个应用掩码值,所述掩码值与所述物理地址相关联。
6.如权利要求1所述的方法,其中所述组合步骤包括:
确定所述物理地址中的哪些位应该被保持在所述翻译地址中;以及
用来自所述偏移值的那些位,代替所述物理地址中不会被保持在所述翻译地址中的那些位。
7.如权利要求6所述的方法,其中所述确定哪些位的步骤包括:
向所述物理地址应用掩码值,所述掩码值与所述物理地址相关联。
8.如权利要求1所述的方法,还包括:
发出错误警告。
9.如权利要求8所述的方法,其中发出所述错误警告的步骤包括:
发出对所述物理地址不存在映射的通知。
10.如权利要求8所述的方法,其中发出所述错误警告的步骤包括:
发出已尝试访问特定段的通知。
11.如权利要求10所述的方法,其中发出所述通知的步骤包括:
检测是否已经为所述特定段设置了错误位。
12.如权利要求1所述的方法,其中如果所述物理地址不能被有效地翻译,那么所述翻译地址就与所述物理地址相同。
13.一种装置,包括:
具有被划分成多个段的第一地址空间的存储器;
比较逻辑电路系统,其被耦合到所述存储器,以从来自所述多个段之一的第一地址生成中间第一地址,生成中间基值,并比较所述中间第一地址和所述中间基值以确定所述第一地址是否属于可被有效翻译来得到第二地址的段;和
组合逻辑电路系统,其被耦合到所述比较逻辑电路系统并被耦合到所述存储器,如果所述比较逻辑电路系统指示所述第一地址可以被有效地翻译,那么所述组合逻辑电路系统将所述第一地址与偏移值组合以得到所述第二地址。
14.如权利要求13所述的装置,其中所述比较逻辑电路系统包括:
掩码电路系统,用于向所述第一地址应用掩码值以得到所述中间第一地址,并用于向基值应用所述掩码值以得到所述中间基值,所述掩码值与所述第一地址相关联。
15.如权利要求13所述的装置,其中所述组合逻辑电路系统包括:
掩码电路系统,用于向所述第一地址应用掩码值,以确定所述第一地址中的哪些位应该被保持在所述第二地址中;和
替换电路系统,用于用来自所述偏移值的那些位,代替所述第一地址中不会被保持在所述第二地址中的那些位。
16.如权利要求13所述的装置,还包括:
被耦合到所述比较逻辑电路系统的错误检测电路系统,所述错误检测电路系统用于检测并发出错误警告。
17.一种系统,包括:
处理器;
被耦合到所述处理器的存储器,所述存储器具有被划分成多个段的第一地址空间;
比较逻辑电路系统,其被耦合到所述存储器,以从来自所述多个段之一的第一地址生成中间第一地址,生成中间基值,并比较所述中间第一地址和所述中间基值以确定所述第一地址是否属于可被有效翻译来得到第二地址的段;和
组合逻辑电路系统,其被耦合到所述比较逻辑电路系统并被耦合到所述存储器,如果所述比较逻辑电路系统指示所述第一地址可以被有效地翻译,那么所述组合逻辑电路系统将所述第一地址与偏移值组合以得到所述第二地址。
18.如权利要求17所述的系统,其中所述比较逻辑电路系统包括:
掩码电路系统,用于向所述第一地址应用掩码值以得到所述中间第一地址,并用于向基值应用所述掩码值以得到所述中间基值,所述掩码值与所述第一地址相关联。
19.如权利要求17所述的系统,其中所述组合逻辑电路系统包括:
掩码电路系统,用于向所述第一地址应用掩码值,以确定所述第一地址中的哪些位应该被保持在所述第二地址中;和
替换电路系统,用于用来自所述偏移值的那些位,代替所述第一地址中不会被保持在所述第二地址中的那些位。
20.如权利要求17所述的系统,还包括:
被耦合到所述比较逻辑电路系统的错误检测电路系统,所述错误检测电路系统用于检测并发出错误警告。
CNB038045427A 2002-02-25 2003-02-07 用于翻译虚拟机环境中客户物理地址的方法和装置 Expired - Fee Related CN1320462C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/084,282 US7124273B2 (en) 2002-02-25 2002-02-25 Method and apparatus for translating guest physical addresses in a virtual machine environment
US10/084,282 2002-02-25

Publications (2)

Publication Number Publication Date
CN1639692A CN1639692A (zh) 2005-07-13
CN1320462C true CN1320462C (zh) 2007-06-06

Family

ID=27753454

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038045427A Expired - Fee Related CN1320462C (zh) 2002-02-25 2003-02-07 用于翻译虚拟机环境中客户物理地址的方法和装置

Country Status (7)

Country Link
US (1) US7124273B2 (zh)
JP (1) JP2005527021A (zh)
KR (1) KR100612167B1 (zh)
CN (1) CN1320462C (zh)
AU (1) AU2003215106A1 (zh)
DE (1) DE10392321T5 (zh)
WO (1) WO2003073294A2 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496495B2 (en) * 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
US20070006178A1 (en) * 2005-05-12 2007-01-04 Microsoft Corporation Function-level just-in-time translation engine with multiple pass optimization
US7370160B2 (en) * 2005-06-29 2008-05-06 Intel Corporation Virtualizing memory type
US7644258B2 (en) 2005-08-29 2010-01-05 Searete, Llc Hybrid branch predictor using component predictors each having confidence and override signals
US20070083735A1 (en) * 2005-08-29 2007-04-12 Glew Andrew F Hierarchical processor
US9176741B2 (en) 2005-08-29 2015-11-03 Invention Science Fund I, Llc Method and apparatus for segmented sequential storage
US8275976B2 (en) * 2005-08-29 2012-09-25 The Invention Science Fund I, Llc Hierarchical instruction scheduler facilitating instruction replay
US8296550B2 (en) * 2005-08-29 2012-10-23 The Invention Science Fund I, Llc Hierarchical register file with operand capture ports
US8099730B2 (en) * 2006-03-30 2012-01-17 Intel Corporation Heterogeneous virtualization of host and guest OS having different register sizes using translation layer to extract device port numbers for host OS system memory addresses
US9189195B2 (en) 2006-10-16 2015-11-17 Sandel Avionics, Inc. Integrity monitoring
CN101207604B (zh) * 2006-12-20 2012-03-28 联想(北京)有限公司 一种虚拟机系统及其通信处理方法
US7685401B2 (en) * 2006-12-27 2010-03-23 Intel Corporation Guest to host address translation for devices to access memory in a partitioned system
US8645666B2 (en) * 2006-12-28 2014-02-04 Intel Corporation Means to share translation lookaside buffer (TLB) entries between different contexts
US7984483B2 (en) * 2007-04-25 2011-07-19 Acxess, Inc. System and method for working in a virtualized computing environment through secure access
US7890657B2 (en) * 2008-06-12 2011-02-15 Genband Us Llc System and method for correct routing and enforcement policy in a network having address or port translation
GB2488980B (en) 2011-03-07 2020-02-19 Advanced Risc Mach Ltd Address generation in a data processing apparatus
US9304898B2 (en) * 2011-08-30 2016-04-05 Empire Technology Development Llc Hardware-based array compression
US9286235B2 (en) * 2012-06-29 2016-03-15 Intel Corporation Virtual memory address range register
US9792112B2 (en) 2013-08-28 2017-10-17 Via Technologies, Inc. Propagation of microcode patches to multiple cores in multicore microprocessor
US9535488B2 (en) 2013-08-28 2017-01-03 Via Technologies, Inc. Multi-core microprocessor that dynamically designates one of its processing cores as the bootstrap processor
US9465432B2 (en) 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778407A (en) * 1993-12-22 1998-07-07 Intel Corporation Methods and apparatus for determining operating characteristics of a memory element based on its physical location
CN1192009A (zh) * 1996-12-23 1998-09-02 英特尔公司 预加载不同缺省地址转换属性的方法和装置
US5819061A (en) * 1994-07-25 1998-10-06 International Business Machines Corporation Method and apparatus for dynamic storage reconfiguration in a partitioned environment

Family Cites Families (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3996449A (en) * 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4162536A (en) * 1976-01-02 1979-07-24 Gould Inc., Modicon Div. Digital input/output system and method
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4084225A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4247905A (en) * 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
JPS5576447A (en) * 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4247565A (en) * 1979-06-15 1981-01-27 American Can Company Drawable sulphur resistant can coating
US4307447A (en) * 1979-06-19 1981-12-22 Gould Inc. Programmable controller
US4307214A (en) * 1979-12-12 1981-12-22 Phillips Petroleum Company SC2 activation of supported chromium oxide catalysts
US4319323A (en) * 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
US4366537A (en) * 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
DE3034581A1 (de) * 1980-09-13 1982-04-22 Robert Bosch Gmbh, 7000 Stuttgart Auslesesicherung bei einchip-mikroprozessoren
US4521852A (en) * 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
US4759064A (en) * 1985-10-07 1988-07-19 Chaum David L Blind unanticipated signature systems
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
JPS61206057A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
FR2592510B1 (fr) * 1985-12-31 1988-02-12 Bull Cp8 Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire
FR2601535B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission
FR2601525B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique
FR2601476B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire
FR2618002B1 (fr) * 1987-07-10 1991-07-05 Schlumberger Ind Sa Procede et systeme d'authentification de cartes a memoire electronique
US5007082A (en) * 1988-08-03 1991-04-09 Kelly Services, Inc. Computer software encryption apparatus
US5434999A (en) * 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
FR2640798B1 (fr) * 1988-12-20 1993-01-08 Bull Cp8 Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable
JPH02171934A (ja) * 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
JPH02208740A (ja) * 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
US5442645A (en) * 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
JP2590267B2 (ja) * 1989-06-30 1997-03-12 株式会社日立製作所 仮想計算機における表示制御方式
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
JP2825550B2 (ja) * 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
CA2010591C (en) * 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
CA2027799A1 (en) * 1989-11-03 1991-05-04 David A. Miller Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5075842A (en) * 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
EP0473913A3 (en) 1990-09-04 1992-12-16 International Business Machines Corporation Method and apparatus for providing a service pool of virtual machines for a plurality of vm users
US5230069A (en) * 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
US5317705A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5437033A (en) * 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US5255379A (en) * 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5453003A (en) * 1991-01-09 1995-09-26 Pfefferle; William C. Catalytic method
US5551033A (en) 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
JPH04348434A (ja) 1991-05-27 1992-12-03 Hitachi Ltd 仮想計算機システム
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5574936A (en) * 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5426748A (en) 1992-01-03 1995-06-20 International Business Machines Corporation Guest/host extended addressing method and means with contiguous access list entries
US5486529A (en) * 1992-04-16 1996-01-23 Zeneca Limited Certain pyridyl ketones for treating diseases involving leukocyte elastase
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5610981A (en) 1992-06-04 1997-03-11 Integrated Technologies Of America, Inc. Preboot protection for a data security system with anti-intrusion capability
US5293424A (en) * 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
US5796835A (en) * 1992-10-27 1998-08-18 Bull Cp8 Method and system for writing information in a data carrier making it possible to later certify the originality of this information
JP2765411B2 (ja) * 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US5469557A (en) * 1993-03-05 1995-11-21 Microchip Technology Incorporated Code protection in microcontroller with EEPROM fuses
FR2703800B1 (fr) * 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
FR2704341B1 (fr) * 1993-04-22 1995-06-02 Bull Cp8 Dispositif de protection des clés d'une carte à puce.
FR2706210B1 (fr) * 1993-06-08 1995-07-21 Bull Cp8 Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants.
US5555385A (en) * 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US5459869A (en) * 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
FR2717286B1 (fr) * 1994-03-09 1996-04-05 Bull Cp8 Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant.
US5684881A (en) * 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5473692A (en) * 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5539828A (en) * 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5533123A (en) 1994-06-28 1996-07-02 National Semiconductor Corporation Programmable distributed personal security
US5978481A (en) * 1994-08-16 1999-11-02 Intel Corporation Modem compatible method and apparatus for encrypting data that is transparent to software applications
DE69534757T2 (de) * 1994-09-15 2006-08-31 International Business Machines Corp. System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
US6058478A (en) * 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
FR2725537B1 (fr) * 1994-10-11 1996-11-22 Bull Cp8 Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe
US5903752A (en) * 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US5606617A (en) * 1994-10-14 1997-02-25 Brands; Stefanus A. Secret-key certificates
US5564040A (en) * 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
US5555414A (en) * 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) * 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
FR2731536B1 (fr) * 1995-03-10 1997-04-18 Schlumberger Ind Sa Procede d'inscription securisee d'informations dans un support portable
US5717903A (en) * 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
JP3451595B2 (ja) * 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US6093213A (en) 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
JP2000503154A (ja) * 1996-01-11 2000-03-14 エムアールジェイ インコーポレイテッド デジタル所有権のアクセスと分配を制御するためのシステム
US5657445A (en) * 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5835594A (en) * 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5729760A (en) * 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
WO1998012620A1 (fr) 1996-09-20 1998-03-26 Mitsubishi Denki Kabushiki Kaisha Micro-ordinateur possedant une fonction de commande de remise a zero
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
US5901225A (en) * 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
JP4000654B2 (ja) * 1997-02-27 2007-10-31 セイコーエプソン株式会社 半導体装置及び電子機器
US6272637B1 (en) * 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US5987557A (en) * 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6175924B1 (en) 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6584565B1 (en) 1997-07-15 2003-06-24 Hewlett-Packard Development Company, L.P. Method and apparatus for long term verification of digital signatures
US6014745A (en) * 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
US5978475A (en) * 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
US6182089B1 (en) * 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US6061794A (en) * 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US5970147A (en) * 1997-09-30 1999-10-19 Intel Corporation System and method for configuring and registering a cryptographic device
US5987604A (en) 1997-10-07 1999-11-16 Phoenix Technologies, Ltd. Method and apparatus for providing execution of system management mode services in virtual mode
US6173417B1 (en) 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
DE69942712D1 (de) 1998-05-29 2010-10-14 Texas Instruments Inc Sichere Rechnervorrichtung
NZ509018A (en) 1998-06-17 2002-06-28 Aristocrat Technologies Au Software verification and authentication
JP2000076139A (ja) 1998-08-28 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 携帯型情報記憶媒体
US6463535B1 (en) 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US6282650B1 (en) * 1999-01-25 2001-08-28 Intel Corporation Secure public digital watermark
US6188257B1 (en) 1999-02-01 2001-02-13 Vlsi Technology, Inc. Power-on-reset logic with secure power down capability
US6275933B1 (en) 1999-04-30 2001-08-14 3Com Corporation Security system for a computerized apparatus
EP1056014A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company System for providing a trustworthy user interface
EP1055989A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company System for digitally signing a document
EP1085396A1 (en) 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
US6374317B1 (en) * 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
US6625715B1 (en) * 1999-12-30 2003-09-23 Intel Corporation System and method for translation buffer accommodating multiple page sizes
AU2001239854A1 (en) 2000-02-23 2001-09-03 Iridian Technologies, Inc. Tamper proof case for electronic devices having memories with sensitive information
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US20020062452A1 (en) 2000-08-18 2002-05-23 Warwick Ford Countering credentials copying
US6948065B2 (en) 2000-12-27 2005-09-20 Intel Corporation Platform and method for securely transmitting an authorization secret
JP2004537095A (ja) 2001-04-24 2004-12-09 ヒューレット・パッカード・カンパニー 情報セキュリティシステム
EP1271277A3 (en) 2001-06-26 2003-02-05 Redstrike B.V. Security system and software to prevent unauthorized use of a computing device
US6681311B2 (en) * 2001-07-18 2004-01-20 Ip-First, Llc Translation lookaside buffer that caches memory type information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778407A (en) * 1993-12-22 1998-07-07 Intel Corporation Methods and apparatus for determining operating characteristics of a memory element based on its physical location
US5819061A (en) * 1994-07-25 1998-10-06 International Business Machines Corporation Method and apparatus for dynamic storage reconfiguration in a partitioned environment
CN1192009A (zh) * 1996-12-23 1998-09-02 英特尔公司 预加载不同缺省地址转换属性的方法和装置

Also Published As

Publication number Publication date
WO2003073294A2 (en) 2003-09-04
JP2005527021A (ja) 2005-09-08
US20030163662A1 (en) 2003-08-28
KR20040086447A (ko) 2004-10-08
US7124273B2 (en) 2006-10-17
WO2003073294A3 (en) 2004-07-29
AU2003215106A8 (en) 2003-09-09
CN1639692A (zh) 2005-07-13
AU2003215106A1 (en) 2003-09-09
DE10392321T5 (de) 2005-02-17
KR100612167B1 (ko) 2006-08-14

Similar Documents

Publication Publication Date Title
CN1320462C (zh) 用于翻译虚拟机环境中客户物理地址的方法和装置
US10534727B2 (en) Apparatus and method for handling page protection faults in a computing system
US10346306B2 (en) Processor and method for memory performance monitoring utilizing a monitor flag and first and second allocators for allocating virtual memory regions
US7937534B2 (en) Performing direct cache access transactions based on a memory access data structure
TWI363967B (en) A computer hardware apparatus to utilize address window support for direct memory access translation
US7073044B2 (en) Method and apparatus for sharing TLB entries
US4797814A (en) Variable address mode cache
US8195917B2 (en) Extended page size using aggregated small pages
KR101441188B1 (ko) 가상 시스템에서 메모리 중복 제거를 위한 기술
US9112537B2 (en) Content-aware caches for reliability
CN1235148C (zh) 管理数据处理器系统中虚拟化的物理存储器的方法和系统
CN1227593C (zh) 存储控制器和处理器中管理虚拟化物理存储器方法和系统
CN1991808A (zh) 用于访客访问存储器映射的设备的方法和装置
CN1692332A (zh) 处理与虚拟机体系结构中客户软件的操作相关联的故障
CN1679001A (zh) 对在虚拟机体系结构中客户软件操作期间出现的故障的控制
CN1227594C (zh) 管理多处理器系统中虚拟化的物理存储器的方法和系统
CN1993683A (zh) 体系结构事件期间维持处理器资源
CN102947808A (zh) 用于适配器函数的转换格式的运行时确定
EP2339474A1 (en) Cache unit, arithmetic processing unit, and information processing unit
US20030225992A1 (en) Method and system for compression of address tags in memory structures
US20100011183A1 (en) Method and device for establishing an initial state for a computer system having at least two execution units by marking registers
US7607048B2 (en) Method and apparatus for protecting TLB&#39;s VPN from soft errors
EP0389886B1 (en) Ring reduction logic mechanism
CN114661629A (zh) 用于具有大代码占用的工作负载的动态共享高速缓存分区
JP2004038553A (ja) データ処理装置

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

Granted publication date: 20070606

Termination date: 20180207

CF01 Termination of patent right due to non-payment of annual fee