CN110442536B - 基于对象的存储器访问中的静态标识 - Google Patents

基于对象的存储器访问中的静态标识 Download PDF

Info

Publication number
CN110442536B
CN110442536B CN201811036644.0A CN201811036644A CN110442536B CN 110442536 B CN110442536 B CN 110442536B CN 201811036644 A CN201811036644 A CN 201811036644A CN 110442536 B CN110442536 B CN 110442536B
Authority
CN
China
Prior art keywords
address
predetermined width
computer system
identifier
predetermined
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.)
Active
Application number
CN201811036644.0A
Other languages
English (en)
Other versions
CN110442536A (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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN110442536A publication Critical patent/CN110442536A/zh
Application granted granted Critical
Publication of CN110442536B publication Critical patent/CN110442536B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

一种计算机系统,具有第一预定宽度的地址系统,其中地址系统中的第一预定宽度的每个地址包括标识了对象的第一部分和标识了相对于对象的偏移量的第二部分,其中第一部分的静态标识符被预定以标识具有小于第一预定宽度的第二预定宽度的地址空间,或者标识内核对象的空间。

Description

基于对象的存储器访问中的静态标识
相关申请
本申请要求于2018年5月2日提交的美国临时专利申请序列号62/665,936 并且题为“Static Identifications in Object-based Memory Access”的申请日的权益, 其申请的全部公开通过引用并入本文。
本申请涉及与本申请同一天提交的且题为“Securing Conditional SpeculativeInstruction Execution”(代理人案卷号120426-062101/US)的美国专利申请,其 要求于2018年5月2日提交的并且题为“Static Identifications in Object-based MemoryAccess”美国临时专利申请序列号为62/665,743的提交日的权益,其申 请全部公开在此通过引用并入本文。
技术领域
本文所公开的至少一些实施例一般涉及计算机架构,并且更具体地但不限 于涉及用于计算机处理器的存储器地址。
背景技术
计算系统中的存储器地址标识了计算系统中的存储器位置。存储器地址是 通常被显示和被操作为无符号整数的固定长度的数字序列。数字或位的序列的 长度可以被认为是存储器地址的宽度。存储器地址可以在中央处理单元(CPU) 的某些结构(诸如指令指针(或程序计数器)和存储器地址寄存器)中被使用。 CPU的这种结构的大小或宽度通常确定了在这种CPU中所使用的存储器地址的 长度。
附图说明
实施例借由示例的方式被示出而在附图中不受限制,在附图中相同的附图 标记表示类似的元件。
图1示出了根据一个实施例的使用地址系统的计算机系统。
图2示出了图1的地址系统中的静态对象标识。
图3和4示出了使用静态对象标识来映射不同地址空间的地址。
具体实施方式
本公开包括在指令集(例如,128位指令)的预定宽度(例如,128位)的 地址中使用静态对象标识号来表示某些类型的对象的技术,所述对象诸如内核 对象、使用由其他指令集(例如,64位指令、32位指令)生成和/或使用的较小 宽度(例如,64位、32位)的地址的对象等等。通常,可以使用各种处理器中 的各种指令集(例如,128位指令、64位指令、32位指令)来生成预定宽度(例 如,128位)的地址,这些处理器可以使用这样的指令集来生成和/或使用预定 宽度(例如,128位)的地址。因此,预定宽度(例如,128位)不限于特定类 型的指令集和/或特定宽度的指令。
图1示出了根据一个实施例的使用地址系统的计算机系统。
在图1中,处理器(101)(例如,微处理器或CPU)具有执行单元(103), 其用于执行根据可以生成128位虚拟存储器地址的一个或多个指令集(例如, 128位指令集)而被编程的指令(例如,105)的操作。
128位指令集的示例是由RISC-V基金会标识出的RISC-V指令集的RV128。
处理器(101)被配置有预定宽度(诸如128位)的寄存器(例如,102)。 处理器(101)可以获取预定宽度的指令(105),并使用执行单元(103)对指 令(105)中所提供的数据和/或在指令(105)中标识出的一个或多个寄存器(例 如,102)中所提供的数据执行操作,并且在适用时,将由指令(105)标识出 的操作的结果存储在指令(105)中标识出的寄存器中。
寄存器(例如,102)可以包括预定宽度(例如,128位)的存储器寄存器 和/或预定宽度(例如,128位)的指令指针(或程序计数器)。
例如,指令可以根据指令集的预定规范而被编码,以执行整数计算(例如, 加、或异或)、以执行控制传输(例如,跳转、分支)、以在使用预定宽度的地 址(例如,111)所指定的存储器位置处加载来自存储器的数据/指令、或者以将 数据存储在使用预定宽度(例如,128位)的地址(例如,111)所指定的存储 器位置处。
例如,地址(111)可被用于标识将指令存储在计算机系统中的存储器位置; 并且地址(111)可以被放置在指令指针(或程序计数器)中以标识由处理器(101) 执行的指令。
例如,地址(111)可被用于标识将数据项存储在计算机系统中的存储器位 置;并且地址(111)可以被放置在存储器寄存器中以标识要由处理器(101) 在执行指令时操作的数据。
通常,128位指令集可以寻址128位地址空间。类似地,64位指令集可以 寻址64位地址空间;以及32位指令集可以处理32位地址空间。
在某些情况下,64位指令(例如,125)(或32位指令(例如,126))也可 以生成和/或使用128位地址(例如,111)。例如,当128位地址被存储在地址 寄存器(例如,102)中时,在处理器(101)(和/或另一个处理器)中所执行的 64位指令(125)(或32位指令(126))可以对128位地址(111)进行操作或 使用128位地址(111)和/或生成另一个128位地址。因此,存储器地址的宽度 不一定受生成或使用存储器地址的指令的宽度限制。
在图1所示的计算机系统中,128位地址(111)被配置为包括两个部分: 64位对象ID(113)和相对于由对象ID(113)标识出的对象的64位偏移量(115)。 例如,偏移量(115)可以是字节偏移量。
64位偏移量(115)可被用于索引诸如程序计数器、堆栈指针,用于从存储 器位置加载数据和/或指令,或用于将数据存储在该位置处。存储器位置可以是 在经由一个通信信道(例如,存储器总线)被连接到处理器(101)的主存储器 (107)中,或者在经由另一个通信信道(例如,通过网络109)被连接到处理 器的存储装置(119)中。
图1示出了128位地址的示例结构。其他大小选择可以被实施以具有对象 ID(113)和相对于由对象ID标识出的对象的偏移量(113)的结构。例如,地 址的宽度可以不同于128位。例如,对象ID(113)和偏移量(115)可以被配 置为具有不同的位数。
通常,图1中所示的128位地址系统可以被配置为独立于指令集架构,使 得具有不同指令集的不同处理器(例如,103)的不同供应商可以使用相同的地 址系统。使用地址(128)进行的存储器访问请求可以通过存储器总线、输入/ 输出总线和/或网络(109)在计算机系统中像路由互联网协议(IP)分组那样被 路由。优选地,存储器/存储位置与地址(111)之间的关联在时间和空间上是持 久的。
响应于指令(105、125或126),处理器(101)可以访问由被存储在寄存 器(102)中的128位存储器地址(111)标识出的数据项。地址(111)的对象 ID(113)可用于标识具有不同名称的对象。这样的对象可以是具有由集中名称 服务器(117)所控制、分配、发布和/或注册的名称的软件或硬件结构。名称服 务器(117)可以经由计算机网络(109)被耦合到处理器(101);并且由对象 ID(113)表示的对象(例如,121或123)可以是在经由存储器总线而被耦合 到处理器(101)的存储器(107)中、或者是在经由网络(109)被耦合到处理 器(101)的存储装置(119)中、或者是在网络(109)上被耦合到另一个处理 器的存储器中。
由地址(111)中的对象ID(113)标识出的对象可被用于对位置和保护机 制、语言特定/架构属性(诸如分区全局地址空间(PGAS)节点)、加密的数据、 和/或区块链进行指定。
可以使用名称服务器(117)针对由可以包括因特网的网络(109)连接的 整个计算机系统创建或分配对应对象(121或123)的对象ID(113)。
优选地,使用图1所示的格式中的地址(例如,111)的地址空间在时间和 空间上是唯一的。支持地址空间的任何计算机都可由名称服务器(117)在网络 (109)上寻址。
当处理器(101)正第一次访问对象时,访问可以需要验证访问许可(例如, 下载可执行文件、访问访问控制列表(ACL)中的条目),并且验证对象的访问 权限(例如,读、写、执行、通过受保护的子对象的访问、执行域)。可以经由 用户级别(例如,黄金、铂金、执行铂金)和管理级别(例如,1、2、...、n) 的分类来标识执行域。
某些静态对象ID可被用于标识预定的对象类型或对象空间,如图2所示。
图2示出了图1的地址系统中的静态对象标识。
例如,具有零(0)的预定值的对象ID(141)可被用于标识操作系统(131) 的任何内核对象(133);并且对象ID(141)对于计算机系统中的所有节点上的 内核对象(例如,133)可以是静态的,而不管计算机系统中的内核对象(133) 的位置如何。操作系统(131)可以具有不是内核(133)的一部分的实用程序 (例如,135)。
例如,具有一(1)的预定值的对象ID(143)可被用于标识使用64位指令 (143)编程的应用(137)的任何对象;并且对象ID(143)对于计算机系统中 的所有节点上的64位指令对象(例如137)可以是静态的,而不管计算机系统 中的64位指令对象(137)的位置如何。
例如,具有二(2)的预定值的对象ID(145)可被用于标识使用32位指令 编程的应用(139)的任何对象(147);并且对象ID(145)对于计算机系统中 的所有节点上的32位指令对象(例如139)可以是静态的,而不管计算机系统 中的32位指令对象(139)的位置如何。
静态对象ID(141、143和/或145)提供关于经由具有静态对象ID(141、 143和/或145)的存储器地址(例如,111)所访问的对象的预定信息。
例如,当处理器(101)使用其中对象ID(113)是静态对象ID(141)的 地址(111)来访问存储器位置时,处理器(101)可以确定被存储在该存储器 位置中的数据或指令是用于操作系统(131)的内核对象(133)。因此,处理器 (101)可以基于所访问的存储器是用于操作系统内核(133)的信息来调整其 操作(例如,优先级、安全级)。
类似地,当处理器(101)使用其中对象ID(113)是静态对象ID(143或 145)的地址(111)来访问存储器位置时,处理器(101)可以确定被存储在该 存储器位置中的数据或指令是用于64位应用(137)或32位应用(139)。因此, 处理器(101)可以调整其操作以优化应用的性能、优先级和/或安全性。
通常,静态对象ID(例如,141、143和/或145)可被用于向处理器(101) 提供关于由包含静态对象ID(例如,141、143和/或145)的存储器地址(111) 所引用的对象的预定信息,而无需联系名称服务器(117)来查找对象(例如, 121或123)的属性。因此,计算机系统和/或处理器(101)可以使用预定信息 有效地处理使用包含静态对象ID(例如,141、143或145)的地址(111)而获 取到的数据和/或指令。例如,静态ID可被用于标识预定宽度(例如,128位或 64位)的分区全局地址空间(PGAS)地址、互联网协议地址的版本(例如,互 联网协议版本6(IPv6))、唯一ID等。例如,静态ID可被用于指示对象是用户 对象、操作系统(OS)的内核对象、还是OS/服务器对象的非内核部分。例如, 静态ID可被用于指示是否启用(invoke)系统调用、是否启用对OS/服务器的 非内核部分的调用、或者是否启用对OS的内核的调用。在某些情况下,根据预 定方案,地址可以具有在其中被编码的多于一个静态对象ID。例如,静态对象 ID可以在地址中被提供,而不限于地址的特定64位字段。
图3和图4示出了使用静态对象标识来映射不同地址空间的地址。
使用静态对象标识(143和145),计算系统可以根据预定规则自动将64位 地址空间和32位地址空间映射到128位地址空间。转换规则允许128位处理器 运行64位应用和32位应用。
例如,由使用64位指令(147)编程的应用(137)所使用的64位地址(151) 可以使用针对64位对象的预定对象ID(143)(一(1)的预定值)被转换为128 位地址,并且使用64位地址(151)作为128位地址(111)中的偏移量(115), 如图3所示。
例如,由使用32位指令(149)编程的应用(139)所使用的32位地址(153) 可以使用针对32位对象的预定对象ID(145)(例如,二(2)的预定值)被转 换为128位地址,并且使用32位地址(153)作为128位地址(111)中的偏移 量(115),如图4所示。
本文公开的技术可以至少被应用于计算机系统,其中处理器与存储器分离, 并且处理器经由通信总线和/或计算机网络与存储器和存储装置进行通信。此外, 本文公开的技术可以被应用于计算机系统,其中处理能力被集成在存储器/存储 装置中。例如,处理电路(包括典型处理器的执行单元和/或寄存器)可以在集 成电路和/或存储器介质的集成电路封装内被实施,以在存储器装置内执行处理。 因此,如上所述并在附图中所示的处理器(例如,101)不一定是冯·诺依曼结 构中的中央处理单元。处理器可以是被集成在存储器内的单元,以克服由于中 央处理单元和根据冯·诺依曼结构而单独配置的存储器之间的数据移动的延迟 而导致的吞吐量的限制而引起的限制计算性能的冯·诺伊曼瓶颈。
本公开的描述和附图是说明性的,并且不应被解释为限制性的。许多具体 细节被描述以提供透彻理解。然而,在某些情况下,众所周知的或传统的细节 不被描述以避免模糊了描述。对本公开中的一个实施例或实施例的参考不一定 是对同一实施例的参考;并且,这样的引用意味着至少一个。
在前述说明书中,已经参考本公开的特定示例性实施例描述了本公开。显 而易见的是,在不脱离所附权利要求中阐述的更广泛的精神和范围的情况下, 可以对其进行各种修改。因此,说明书和附图应被视为说明性意义而非限制性 意义。

Claims (18)

1.一种计算机系统,包括:
第一预定宽度的寄存器,所述寄存器存储具有以下的地址:
标识了对象的第一部分;和
标识了相对于所述对象的偏移量的第二部分;和
执行单元,被配置为使用所述地址执行指令;
其中,当所述第一部分具有第一静态标识符时,在执行所述指令时使用与所述第一静态标识符预先关联的第一类对象的第一预定属性,其中所述第一类对象是使用具有第二预定宽度的第一地址空间的第一应用,所述第二预定宽度小于所述第一预定宽度;
其中当所述第一部分具有第二静态标识符时,在执行所述指令时使用与所述第二静态标识符预先关联的第二类对象的第二预定属性,其中所述第二类对象是使用具有第三预定宽度的第二地址空间的第二应用,所述第三预定宽度小于所述第一预定宽度且不同于所述第二预定宽度。
2.根据权利要求1所述的计算机系统,其中,所述第一预定宽度是128位;并且所述第二预定宽度是以下中的一个:64位和32位。
3.根据权利要求2所述的计算机系统,其中,当所述第一静态标识符的值为1时,所述第二预定宽度是64位。
4.根据权利要求2所述的计算机系统,其中,当所述第一静态标识符的值为1时,所述第二预定宽度是32位。
5.根据权利要求1所述的计算机系统,其中,所述第一预定属性在执行所述对象的指令期间的地址转换中被使用。
6.根据权利要求5所述的计算机系统,其中,所述地址转换包括将地址从所述第二预定宽度转换为所述第一预定宽度。
7.根据权利要求6所述的计算机系统,其中,使用作为对象标识符的所述静态标识符以及作为偏移量的所述第二预定宽度的地址来执行将所述地址从所述第二预定宽度转换为所述第一预定宽度。
8.根据权利要求1所述的计算机系统,其中,至少部分地基于所述第一预定属性指示所述第一类对象位于所述计算机系统的操作系统的内核中而调整所述计算机系统的处理器的操作。
9.根据权利要求8所述的计算机系统,其中,所述第一静态标识符的值为零。
10.根据权利要求1所述的计算机系统,其中,使用所述地址来加载所述指令以用于执行。
11.根据权利要求1所述的计算机系统,其中,所述指令的执行对从由所述地址标识出的存储位置获取到的数据项进行操作。
12.根据权利要求1所述的计算机系统,其中,所述第一预定属性被用于在执行所述对象的指令期间调整安全操作。
13.根据权利要求1所述的计算机系统,其中,所述第一预定属性被用于在执行所述对象的指令期间调整优先级。
14.一种方法,包括:
在处理器中接收具有第一预定宽度的第一地址空间中的第一地址;
由所述处理器确定被预定义以表示所述第一地址空间的第一预定义标识符;
由所述处理器将所述第一预定义标识符和所述第一地址组合以生成具有大于所述第一预定宽度的第二预定宽度的第二地址,其中所述第二地址具有第一对象标识符部分和第一偏移部分,并且所述第二地址的所述第一对象标识符部分包含表示所述第一地址空间的所述第一预定义标识符,并且所述第二地址的所述第一偏移部分对应于所述第一地址;
在所述处理器中接收具有第三预定宽度的第二地址空间中的第三地址,所述第三预定宽度不同于所述第一预定宽度;
由所述处理器确定预定义以表示所述第二地址空间的第二预定义标识符;和
由所述处理器将所述第二预定义标识符和所述第三地址组合以生成具有大于所述第一预定宽度且大于所述第三预定宽度的第四预定宽度的第四地址,其中所述第四地址具有第二对象标识符部分和第二偏移部分,并且所述第四地址的所述第二对象标识符部分包含表示所述第二地址空间的所述第二预定义标识符,并且所述第四地址的所述第二偏移部分对应于所述第三地址。
15.根据权利要求14所述的方法,其中,所述第二预定宽度是128位;所述第一预定宽度是以下中的一个:64位和32位。
16.根据权利要求15所述的方法,其中,所述第二地址的所述第一对象标识符部分具有64位;并且所述第二地址的字节偏移部分具有64位。
17.一种计算机系统,其包括:
处理器;和
包括多个存储器地址的存储器地址系统,所述存储器地址系统经配置以致使所述处理器基于在所述多个存储器地址中的相应一者中提供的数据执行操作,
其中:
所述多个存储器地址中的每一者具有第一预定宽度,所述存储器地址系统中的所述多个存储器地址中的第一存储器地址包括第一对象标识符部分和第一偏移部分,其中在所述第一对象标识符部分中提供的第一预定值表示与所述第一预定值预先关联的第一对象属性;
所述第一对象属性识别所述多个存储器地址中具有第二预定宽度的第一子集,所述第二预定宽度小于所述第一预定宽度;
所述存储器地址系统中的所述多个存储器地址中的第二存储器地址包括第二对象标识符部分和第二偏移部分,其中在所述第二对象标识符部分中提供的第二预定值表示与所述第二预定值预先关联的第二对象属性;和
所述第二对象属性识别所述多个存储器地址中具有第三预定宽度的第二子集,所述第三预定宽度不同于所述第二预定宽度且小于所述第一预定宽度。
18.根据权利要求17所述的计算机系统,其中,至少部分地基于所述第一对象属性指示所述第一对象在所述计算机系统的操作系统的内核中而调整所述处理器的操作。
CN201811036644.0A 2018-05-02 2018-09-06 基于对象的存储器访问中的静态标识 Active CN110442536B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862665936P 2018-05-02 2018-05-02
US62/665,936 2018-05-02
US16/028,840 US11275587B2 (en) 2018-05-02 2018-07-06 Static identifications in object-based memory access
US16/028,840 2018-07-06

Publications (2)

Publication Number Publication Date
CN110442536A CN110442536A (zh) 2019-11-12
CN110442536B true CN110442536B (zh) 2023-09-19

Family

ID=68384842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811036644.0A Active CN110442536B (zh) 2018-05-02 2018-09-06 基于对象的存储器访问中的静态标识

Country Status (2)

Country Link
US (2) US11275587B2 (zh)
CN (1) CN110442536B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10761855B2 (en) 2018-05-02 2020-09-01 Micron Technology, Inc. Securing conditional speculative instruction execution
US11544069B2 (en) 2018-10-25 2023-01-03 Micron Technology, Inc. Universal pointers for data exchange in a computer system having independent processors
LU101410B1 (de) * 2019-09-25 2021-03-25 Phoenix Contact Gmbh & Co Verfahren zum Bereitstellen und Validieren alternativer Objektbezeichner sowie zum Ermitteln von Referenzen alternativer Objektbezeichner innerhalb einer OPC-UA-basierenden Kommunikationsumgebung

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520753A (zh) * 2008-02-29 2009-09-02 Arm有限公司 数据处理设备和控制虚拟机对安全存储器的访问的方法
CN101627366A (zh) * 2007-03-14 2010-01-13 高通股份有限公司 用以预加载来自除当前执行的指令集之外的指令集的指令的系统、方法及软件
CN102687126A (zh) * 2009-12-30 2012-09-19 国际商业机器公司 在多内核环境中有效分配引用的全局唯一标识符
CN102906716A (zh) * 2010-06-23 2013-01-30 国际商业机器公司 依据适配器的多个地址空间
CN103140837A (zh) * 2010-09-24 2013-06-05 Arm有限公司 数据处理装置的除错
CN104951296A (zh) * 2014-03-28 2015-09-30 英特尔公司 允许一种架构的代码模块使用另一种架构的库模块的架构间兼容模块
CN107851170A (zh) * 2015-07-20 2018-03-27 英特尔公司 支持用于存储器地址范围的可配置安全级别

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525780A (en) 1981-05-22 1985-06-25 Data General Corporation Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
US4821184A (en) 1981-05-22 1989-04-11 Data General Corporation Universal addressing system for a digital data processing system
US4514800A (en) 1981-05-22 1985-04-30 Data General Corporation Digital computer system including apparatus for resolving names representing data items and capable of executing instructions belonging to general instruction sets
US4660142A (en) 1981-05-22 1987-04-21 Data General Corporation Digital data processing system employing an object-based addressing system with a single object table
US4445177A (en) 1981-05-22 1984-04-24 Data General Corporation Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions
US4454579A (en) 1981-09-11 1984-06-12 Data General Corporation System for performing call and return operations
US5226161A (en) 1987-08-21 1993-07-06 Wang Laboratories, Inc. Integration of data between typed data structures by mutual direct invocation between data managers corresponding to data types
US6470436B1 (en) 1998-12-01 2002-10-22 Fast-Chip, Inc. Eliminating memory fragmentation and garbage collection from the process of managing dynamically allocated memory
JP4020576B2 (ja) * 2000-09-14 2007-12-12 株式会社東芝 パケット転送方法、移動端末装置及びルータ装置
US7149878B1 (en) 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US7299242B2 (en) 2001-01-12 2007-11-20 Sun Microsystems, Inc. Single-word lock-free reference counting
US7366882B2 (en) 2001-05-10 2008-04-29 Zohair Sahraoui Address calculation unit for an object oriented processor having differentiation circuitry for selectively operating micro-instructions
US6785804B2 (en) 2001-05-17 2004-08-31 Broadcom Corporation Use of tags to cancel a conditional branch delay slot instruction
US6874081B2 (en) 2001-05-17 2005-03-29 Broadcom Corporation Selection of link and fall-through address using a bit in a branch address for the selection
GB2378535A (en) 2001-08-06 2003-02-12 Ibm Method and apparatus for suspending a software virtual machine
KR100462627B1 (ko) * 2002-11-27 2004-12-23 삼성전자주식회사 IPv6 주소를 이용하여 디바이스를 식별하는 방법
US7779238B2 (en) 2004-06-30 2010-08-17 Oracle America, Inc. Method and apparatus for precisely identifying effective addresses associated with hardware events
GB2417579A (en) 2004-08-26 2006-03-01 Hewlett Packard Development Co Method for dynamically inserting code into a process by enabling taken branch traps to intercept a branch during the execution of the process
US9886532B1 (en) 2004-10-07 2018-02-06 Gregory M. Scallon Data integrity protection mechanism
US8667249B2 (en) 2004-12-22 2014-03-04 Intel Corporation Systems and methods exchanging data between processors through concurrent shared memory
US7383374B2 (en) * 2005-03-31 2008-06-03 Intel Corporation Method and apparatus for managing virtual addresses
KR101396831B1 (ko) 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
US8868844B2 (en) * 2008-06-25 2014-10-21 International Business Machines Corporation System and method for a software managed cache in a multiprocessing environment
JP5181139B2 (ja) 2008-06-30 2013-04-10 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータプログラム、共有オブジェクト制御装置及び共有オブジェクト制御方法
US8072975B2 (en) * 2008-11-12 2011-12-06 Dell Products, Lp Host discovery across different address spaces
US8375195B2 (en) 2009-03-05 2013-02-12 Oracle America, Inc. Accessing memory locations for paged memory objects in an object-addressed memory system
US8190839B2 (en) 2009-03-11 2012-05-29 Applied Micro Circuits Corporation Using domains for physical address management in a multiprocessor system
US8438341B2 (en) 2010-06-16 2013-05-07 International Business Machines Corporation Common memory programming
US8635412B1 (en) 2010-09-09 2014-01-21 Western Digital Technologies, Inc. Inter-processor communication
US8566537B2 (en) 2011-03-29 2013-10-22 Intel Corporation Method and apparatus to facilitate shared pointers in a heterogeneous platform
US8862861B2 (en) 2011-05-13 2014-10-14 Oracle International Corporation Suppressing branch prediction information update by branch instructions in incorrect speculative execution path
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US9390055B2 (en) * 2012-07-17 2016-07-12 Coho Data, Inc. Systems, methods and devices for integrating end-host and network resources in distributed memory
US9459877B2 (en) 2012-12-21 2016-10-04 Advanced Micro Devices, Inc. Nested speculative regions for a synchronization facility
US9311011B2 (en) 2013-08-07 2016-04-12 Qualcomm Incorporated Dynamic address negotiation for shared memory regions in heterogenous multiprocessor systems
US10671391B2 (en) * 2014-02-25 2020-06-02 MIPS Tech, LLC Modeless instruction execution with 64/32-bit addressing
US9830153B2 (en) 2014-06-20 2017-11-28 Netronome Systems, Inc. Skip instruction to skip a number of instructions on a predicate
WO2016118630A1 (en) 2015-01-20 2016-07-28 Ultrata Llc Utilization of a distributed index to provide object memory fabric coherency
US9910611B2 (en) 2015-05-29 2018-03-06 Intel Corporation Access control for memory protection key architecture
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
US10114958B2 (en) 2015-06-16 2018-10-30 Microsoft Technology Licensing, Llc Protected regions
US20160381050A1 (en) 2015-06-26 2016-12-29 Intel Corporation Processors, methods, systems, and instructions to protect shadow stacks
US9870466B2 (en) 2015-09-26 2018-01-16 Mcafee, Inc. Hardware-enforced code paths
US10241676B2 (en) * 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
US10255202B2 (en) 2016-09-30 2019-04-09 Intel Corporation Multi-tenant encryption for storage class memory
US9971702B1 (en) 2016-10-24 2018-05-15 Intel Corporation Nested exception handling
KR20180080552A (ko) * 2017-01-04 2018-07-12 한국전자통신연구원 IPv6 주소 중에서 IID의 구조, IID의 정의 방법, 및 이를 수행하는 통신 장치
US10761855B2 (en) 2018-05-02 2020-09-01 Micron Technology, Inc. Securing conditional speculative instruction execution
US20200073822A1 (en) 2018-08-30 2020-03-05 Micron Technology, Inc. Security Configuration for Memory Address Translation from Object Specific Virtual Address Spaces to a Physical Address Space
US11544069B2 (en) 2018-10-25 2023-01-03 Micron Technology, Inc. Universal pointers for data exchange in a computer system having independent processors

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101627366A (zh) * 2007-03-14 2010-01-13 高通股份有限公司 用以预加载来自除当前执行的指令集之外的指令集的指令的系统、方法及软件
CN101520753A (zh) * 2008-02-29 2009-09-02 Arm有限公司 数据处理设备和控制虚拟机对安全存储器的访问的方法
CN102687126A (zh) * 2009-12-30 2012-09-19 国际商业机器公司 在多内核环境中有效分配引用的全局唯一标识符
CN102906716A (zh) * 2010-06-23 2013-01-30 国际商业机器公司 依据适配器的多个地址空间
CN103140837A (zh) * 2010-09-24 2013-06-05 Arm有限公司 数据处理装置的除错
CN104951296A (zh) * 2014-03-28 2015-09-30 英特尔公司 允许一种架构的代码模块使用另一种架构的库模块的架构间兼容模块
CN107851170A (zh) * 2015-07-20 2018-03-27 英特尔公司 支持用于存储器地址范围的可配置安全级别

Also Published As

Publication number Publication date
US11275587B2 (en) 2022-03-15
US20220197648A1 (en) 2022-06-23
CN110442536A (zh) 2019-11-12
US20190339974A1 (en) 2019-11-07

Similar Documents

Publication Publication Date Title
US11307861B2 (en) Securing conditional speculative instruction execution
US11422820B2 (en) Shadow cache for securing conditional speculative instruction execution
US9195623B2 (en) Multiple address spaces per adapter with address translation
US8631222B2 (en) Translation of input/output addresses to memory addresses
US8626970B2 (en) Controlling access by a configuration to an adapter function
US8650337B2 (en) Runtime determination of translation formats for adapter functions
US20220197648A1 (en) Static Identifications in Object-based Memory Access
US8458387B2 (en) Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
EP2430556B1 (en) Enable/disable adapters of a computing environment
JP2013534666A (ja) アダプタのアドレス・スペースへのゲスト・アクセスのための方法、システム、およびコンピュータ・プログラム
US20230146488A1 (en) Universal pointers for data exchange in a computer system having independent processors

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant