CN104756091B - 基于远程密钥的存储器缓冲区访问控制机制 - Google Patents
基于远程密钥的存储器缓冲区访问控制机制 Download PDFInfo
- Publication number
- CN104756091B CN104756091B CN201380051672.9A CN201380051672A CN104756091B CN 104756091 B CN104756091 B CN 104756091B CN 201380051672 A CN201380051672 A CN 201380051672A CN 104756091 B CN104756091 B CN 104756091B
- Authority
- CN
- China
- Prior art keywords
- secret
- stripping
- basis
- slicing
- cipher key
- 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
Links
- 230000007246 mechanism Effects 0.000 title description 18
- 239000012536 storage buffer Substances 0.000 title description 17
- 238000003860 storage Methods 0.000 claims abstract description 59
- 238000012795 verification Methods 0.000 claims abstract description 21
- 230000008859 change Effects 0.000 claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 15
- 230000015654 memory Effects 0.000 claims description 42
- 238000004891 communication Methods 0.000 claims description 9
- 238000005520 cutting process Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims 2
- 230000004048 modification Effects 0.000 claims 2
- 238000012545 processing Methods 0.000 description 14
- 238000012423 maintenance Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 101150044508 key gene Proteins 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- 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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
- G06F15/7889—Reconfigurable logic implemented as a co-processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了实现可撤销的安全远程密钥的系统和方法。多个编索引的基础秘密存储在与本地存储器耦合的本地节点的协同处理器的寄存器中。当确定所选择的基础秘密过期时,基于基础秘密索引存储在寄存器中的基础秘密改变,从而使得基于过期的基础秘密生成的远程密钥无效。具有验证数据和基础秘密索引的远程密钥从请求访问该本地存储器的节点接收。验证基础秘密基于基础秘密索引从寄存器获得。协同处理器基于验证基础秘密对验证数据执行硬件验证。如果与基础秘密索引相关联的基础秘密已经在所选择的协同处理器的寄存器中改变了,则硬件验证失败。
Description
相关申请的交叉引用;权益要求
根据35U.S.C.§119(e),本申请要求于2012年10月2日提交的临时申请61/709,142的权益,其全部内容通过引用被结合于此,如同在此作了全面阐述一样。于2013年2月27日提交的苹果公司申请No.13/778,307以及于2013年5月15日提交的发明人为Sanjiv Kapil等人、发明名称为“MEMORY BUS PROTOCOL TO ENABLE CLUSTERING BETWEEN NODES OFDISTINCT PHYSICAL DOMAIN ADDRESS SPACES”的苹果公司申请No.13/838,542(代理卷号No.50277-4032)的全部内容通过引用被结合于,如同在此作了全面阐述一样。
技术领域
本发明一般地涉及硬件计算设备。更具体地,本发明涉及基于远程密钥的存储器缓冲区访问控制机制。
背景技术
个体处理器速度伴随着新技术而持续增大。通过利用多个处理器的节点的集群还可获得更高的性能。例如,数据库系统通常将数据库的多个部分分布在集群中的若干节点上,以便提高性能和提供可升缩性。多个节点的使用要求用于在节点之间共享数据的方法。集群可以配置为相干(coherent)存储集群或计算集群。
相干存储集群上的节点共享物理存储器。共享物理存储器允许集群上的每个节点非常快速地通信。为了在共享的存储集群上的两个节点之间发送和接收消息,一个节点将会将数据写到该共享的存储器而另一节点将从该共享的存储器读取数据。然而,相干存储集群昂贵且共享存储器的大小有限。
计算集群上的节点不共享物理存储器。计算集群上的节点之间的通信可以通过消息传送来执行。并且,计算节点可能需要重新组装进入的消息并将重新组装的消息存储在节点的主存储器中。通常,计算集群上的节点通过公共的总线进行通信,诸如以访问另一节点本地的存储器。共享总线结构的一个缺点是公共的总线在节点间通信排队并竞争对公共总线的使用时变成限制性能的元件。一旦公共总线饱和或接近饱和,则通过增加额外的节点仅实现非常小的性能提升。
克服共享总线结构的缺点的一种技术涉及节点对之间的专用高速点对点通信链路。然而,需要复杂的分层通信协议来保证准确的鲁棒的通信。在通信路径上的每个节点处,接口处理器必须执行该复杂的协议以及翻译和验证源地址和目的地地址。执行这些通信任务降低性能,因为接口处理器一般比主CPU要慢得多,还因为该接口与相应节点的存储器之间的耦合较差。因此,使用共享总线结构,性能还是受限。
本节描述的方法是能够实行的方法,但不一定是之前已经构想到或实行的方法。因此,除非另外指明,不应当认定,在本节中描述的任何方法仅因为其被包括在本节中就构成现有技术。
附图说明
图1是图示出与本文描述的基于远程密钥的存储器缓冲区访问控制机制的实施例兼容的系统的节点的框图;
图2是根据本文描述的基于远程密钥的存储器缓冲区访问控制机制的远程密钥的实施例的框图;
图3是根据本文描述的基于远程密钥的存储器缓冲区访问控制机制的注册表数据的实施例的框图;
图4图示出根据本文描述的基于远程密钥的存储器缓冲区访问控制机制的节点之间的地址空间的模型;
图5是图示出根据本文描述的基于远程密钥的存储器缓冲区访问控制机制验证远程密钥的方法的实施例的流程图;
图6是图示出根据本文描述的基于远程密钥的存储器缓冲区访问控制机制使用可切块的基础秘密来验证远程密钥的方法的实施例的流程图;
图7图示出根据本文描述的基于远程密钥的存储器缓冲区访问控制机制的节点之间的命令操作;
具体实施方式
在以下描述中,为了说明的目的,阐述了大量具体细节以提供对本发明的透彻理解。但是,显而易见的是,本发明可以在没有这些具体细节的情况下实行。在其它实例中,公知的结构和设备以框图形式示出以便避免对本发明不必要的混淆。
概览
公开了实现可撤销的安全远程密钥的系统和方法。多个编索引的基础秘密存储在与本地存储器耦合的本地节点的协同处理器的寄存器中。这里使用的“基础秘密(basesecret)”是指可用作密钥的任何数据。当确定所选择的基础秘密应当被无效时,基础秘密在寄存器中被改变,从而使得基于过期的基础秘密生成的远程密钥无效。
当远程节点请求访问本地节点的本地存储器时,其包括远程密钥,远程密钥包括验证数据和基础秘密索引。该本地节点的协同处理器使用基础秘密索引从寄存器获得验证基础秘密。协同处理器基于验证基础秘密对远程密钥中的验证数据执行硬件验证,例如,不使用任何软件指令或编程API辅助来执行该验证。如果与基础秘密索引相关联的基础秘密已经在所选择的协同处理器的寄存器中改变了,则硬件验证失败。在密钥过期之后,针对与远程密钥相关联的物理存储器位置准予的权限被撤销,并且访问需要新密钥。
可撤销密钥允许具有事务级安全性的可撤销存储器访问能力。物理存储器地址空间不被暴露在本地物理域外面。这种类型的访问对于节点之间的消息传送和数据共享是有用的。协同处理器被配置为执行远程密钥的硬件验证和数据有关的命令的硬件执行,提高与节点之间的进程间通信和存储器数据访问有关的消息吞吐量。
图1是图示出与本文描述的基于远程密钥的存储器缓冲区访问控制机制的实施例兼容的系统的节点的框图。分布式共享存储系统100包括多个节点102A-102N。节点102A-102N驻留在两个或多个物理域中。在一个实施例中,每个物理域对应于节点102A-102N中的一个。节点可以具有一个或多个处理套接口,每个处理套接口包括至少一个协同处理器106A-106N。在一个实施例中,至少一个节点102A-102N可以具有另外的处理套接口。节点102A-102N每个具有每个节点102A-102N本地的存储器116A-116N。
这里使用的术语“存储器”可以指代与永久地址空间、非永久地址空间或其任意组合相关联的任何计算机存储介质,包括但不限于易失性存储器、非易失性存储器、软盘、磁存储介质、光存储介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储芯片或盒,或计算机可以读取的任何其它介质。当本地存储器116A-116N是指永久地址空间时,节点102A-102N是存储节点。当本地存储器116A-116N是指非永久地址空间时,节点102A-102N是计算节点。
每个节点102A-102N还包括至少一个主处理器108A-108N以及至少一个协同处理器106A-106N。每个节点102A-102N的主处理器108A-108N和协同处理器106A-106N被配置为访问物理域本地的本地存储器116A-116N。例如,每个处理器108A-108N可以包括到相应物理存储器116A-116N的存储器接口112A-112N,并且每个协同处理器106A-106N可以包括到相应物理存储器116A-116N的存储器接口110A-110N。存储器接口110A-112N可以经由总线114来访问相应本地存储器116A-116N。
协同处理器106A-106N包括数字电路,数字电路被硬连线来执行一组功能或被永久编程来执行该组功能。所述功能是独立于被配置为通过运行软件指令集或程序来执行功能的通用处理器诸如主处理器108A-108N而执行的。这里使用的术语“协同处理器”是指区别的处理实体,而不一定是与CPU或其它处理器分离的区别的物理设备。例如,协同处理器可以是CPU的一个核(core)。在一个实施例中,当协同处理器是CPU的核时,节点102A-102N处理数据存储和/或维护命令的能力随着节点102A-102N具有的CPU的数目而自动缩放。
协同处理器106A-106N可以但绝对不限于发送命令、接收命令、认证命令、条目入队、同步消息、重新组装进入的消息、以及报告错误,而没有软件干预。在一个实施例中,分布式共享存储系统100的协同处理器106A-106N被配置为接受命令块中指定的命令和地址。在命令块中,或者远程密钥或者物理地址位置可以作为地址而提供。当地址是指本地物理域外面的地址时,可以使用远程密钥。
协同处理器106A-106N被配置为移动数据,在客户端(例如,进程、内核和管理程序)之间发送消息,并且可以被配置为执行一个或多个其它操作,而不使用任何软件指令或编程API协助。在一个实施例中,协同处理器106A-106N被配置为执行一组支持数据移动和维护命令,而不需主处理器108A-108N的支持。协同处理器106A-106N还可以硬件配置为验证远程密钥,诸如在请求中接收的远程密钥,以执行相关联的存储器116A-116N中的一个或多个命令。
协同处理器106A-106N可以与相应的寄存器112A-112N耦合。寄存器112A-112N可以存储用于生成和验证远程密钥的基础秘密数据。远程密钥是物理存储器的块的所有者授予远程用户的凭证。在一个实施例中,远程密钥对于远程节点访问在其所属于的物理域外面的远程存储器116A-116N是必要的。例如,可以要求远程密钥来访问在所选节点外面的存储器116A-116N。远程密钥包括使用所选择的基础秘密生成的验证数据和对注册表中的基础秘密的索引。远程密钥通过使用该索引来从注册表中获取基础秘密而被认证。只要注册表中的基础秘密还没有改变,使用基础秘密发布的远程密钥就可以被协同处理器验证有效。
在一个实施例中,协同处理器106A-106N的接口110A-110N还被配置为与和相应节点102A-102N相关联的软件管理程序交互。在一个实施例中,管理程序是在操作系统和/或其它软件代码与协同处理器106A-106N之间提供API接口的特殊的多线程驱动。管理程序通过管理程序接口向协同处理器106A-106N发布命令。
管理程序可以被配置为配置协同处理器106A-106N,诸如同步存储在协同处理器106A-106N的寄存器112A-112N中的该组基础秘密。在一个实施例中,管理程序被配置为确定何时基础秘密已经过期并改变在本地物理域中的协同处理器的所有寄存器中的与具体基础秘密索引相关联的过期基础秘密。例如,管理程序可以被配置为在一个节点的协同处理器的所有寄存器中改变与具体基础秘密索引相关联的过期基础秘密。在基础秘密被改变之后,基于该基础秘密生成的远程密钥被无效。
协同处理器106A-106N可以使用互连122和外部开关120可通信地耦合以与本地和非本地存储器连接,耦合到套接口、本地/非本地最后一级高速缓存以及到远程物理域,包括远程节点。在一个实施例中,协同处理器106A-106N包括包含消息传送基础设施的硬件并且不需要除了外部开关120之外的外部辅助来方便物理域之间的消息路由。所有协同处理器存储器操作在相同的本地物理域内都是高速缓存相干的。远程密钥只需要被包含与该远程密钥相关联的物理存储器的块的目的地节点认证。与远程密钥相关联的请求不需要被任何中间节点翻译或验证。这允许远程密钥管理仍然是每个节点本地的,消除了跨远程域同步密钥有效性信息的需要和开销。此本地远程密钥管理系统允许更好的伸缩性,诸如增大系统中节点的数目。
远程密钥结构
图2是根据本文描述的基于远程密钥的存储器缓冲区访问控制机制的远程密钥的实施例的框图。远程密钥是物理存储器的块的所有者授予与远程节点相关联的远程客户端的凭证。在访问本地物理地址的请求得到服务之前,远程客户端呈交在本地节点中验证有效的远程密钥。例如,远程密钥可以与数据存储或维护命令一起被发送到与该物理存储器的该块相关联的节点。
远程密钥200包括验证数据202。验证数据202是本地节点的签名。验证数据202是使用本地节点已知的基础秘密生成的。获知用于生成远程密钥200的基础秘密对于验证远程密钥200而言是必要的。因此,仅本地节点的协同处理器能够验证远程密钥200。
在一个实施例中,一组基础秘密被存储在驻留在包含与远程密钥200相关联的物理存储器的块的本地节点上的一个或多个本地协同处理器的注册表中。远程密钥还包括基础秘密索引214,其识别与用于生成验证数据的基础秘密相关联的基础秘密位置。例如,基础秘密索引214可以识别存储在本地协同处理器的注册表中的基础秘密数组的数组索引。
在一个实施例中,远程密钥200包括切块索引204。切块索引204识别被切块的基础秘密中的一个切块。切块可以被单独用来无效与该切块相关联的远程密钥,而不必无效与可切块的远程密钥相关联的全部远程密钥。切块的基础秘密和未切块的基础秘密二者可以以相同的实现方式实现。切块验证数据可以硬件地存储,例如存储在与本地节点相关联的协同处理器寄存器中。
切块的基础秘密可以用于降低所需的远程密钥无效的频率。通过切割基础秘密的至少一部分,可以使用更少的基础秘密,减小一个或多个远程密钥字段例如切块索引204的大小。在一个实施例中,可以使用切块的基础秘密和未切块的基础秘密两者。用于生成具体远程密钥的基础秘密的类型可以被选择以最小化无效的影响。当远程密钥因基础秘密改变而被无效时,基于该基础秘密生成的每个远程密钥也被无效。单个切块的基础秘密被分割成多个切块,每个切块可以独立于与该基础秘密相关联的其它切块而被无效。
在一个实施例中,可以使用2^m个切块的基础秘密,并且每个切块的基础秘密被切割成2^n个切块。切块索引可以包含识别基础秘密和该切块两者的信息。例如,切块索引可以是m+n位,其中m位用于表示基础秘密索引并且n位用于表示该切块。尽管在该示例中,每个切块的基础秘密被切割成相同数目的切块,但切块的基础秘密可以被切割成不同数目的切块。
验证数据可以包括使用散列和/或加密算法生成的散列字段,其中所选择的基础秘密被用作密钥。该算法可以应用于包含切块索引204、大小206、高速缓存指示符208、地址210、套接口ID 212和/或任何其他数据的数据。当与基础秘密索引214相关联的基础秘密被用于生成远程密钥200时,只要存储在本地节点的协同处理器的寄存器中的与基础秘密索引214相关联地存储的基础秘密保持不变,则远程密钥200有效。
在以下非限制性示例中,通过对包括切块索引204(如果密钥是可切块的)、套接口ID 212、地址210、大小206和高速缓存指示符208的位数组应用数据加密标准(DES)算法获得验证数据202。与基础秘密索引214相关联的本地存储的基础秘密被用作密钥。
在该非限制性示例中,验证数据包括使用密钥Basesecret[SecretNum]生成的散列签名。当协同处理器验证包含该散列签名的远程密钥时,协同处理器将基于与基础秘密索引SecretNum相关联地存储的本地存储的基础秘密来解密该散列签名。解密的信息将与远程密钥的其它信息比较,其它信息诸如是切块索引204、套接口ID 212、地址210、大小205和高速缓存指示符208。如果与基础秘密索引SecretNum相关联地存储的基础秘密已经在本地节点上改变,则该验证失败。
远程密钥200还包括套接口ID 212。套接口ID 212识别包含与远程密钥200相关联的物理存储器的块的节点。远程密钥200还包括地址210。地址210识别与远程密钥200的物理存储器的块的物理地址。远程密钥200还包括大小206。大小206指示与远程密钥200相关联的物理存储器的块的大小。在一个实施例中,远程密钥200的固定位字段专用于对大小206进行编码,其中总范围和粒度取决于该位字段的大小。例如,大小206可以是在从大约1KB到大约1TB的范围内。
在一个实施例中,远程密钥200包括高速缓存指示符208。高速缓存指示符208指示与远程密钥200一起发送的命令是否应当高速缓存在硬件中,诸如存储在与套接口ID 212相关联的目的地节点的任何高速缓存中。命令可以是针对与该命令相关联的数据,包括从远程节点接收的数据,执行的数据存储或维护命令。相关联的数据也可以被高速缓存。高速缓存可以是更高级别的高速缓存和/或最后一级的高速缓存,诸如L3高速缓存,但是与目的地节点相关联的任何高速缓存都可以使用。作为非限制性示例,命令可以涉及将相关联的数据的至少一部分写入本地节点的物理存储器中的写命令,并且高速缓存指示符208允许写数据在最后一级高速缓存中被修改。作为另一非限制示例,命令可以涉及从本地物理存储器读取缓冲,并且高速缓存指示符208允许本地节点响应于来自远程节点的命令从该高速缓存读取脏的和/或干净的行。处理远程密钥200和相关联的命令的协同处理器可以被配置为基于高速缓存指示符来有选择地高速缓存命令。协同处理器可以做出本地决策来覆写远程密钥200中的高速缓存指示符208。
远程密钥200可以被配置为具有一组,其中远程密钥200的每个字段202-214都在远程密钥200内具有已知的位置。分布式共享存储系统的协同处理器可以被配置为基于远程密钥200和其相关联的字段的已知配置来接受和读取在命令块中指定的命令和地址。
寄存器数据
图3是根据本文描述的基于远程密钥的存储器缓冲区访问控制机制的寄存器数据的实施例的框图。寄存器300可以存储编码的数据以用于硬件地生成和验证远程密钥,例如,不必使用任何软件指令或编程API辅助来生成和/或验证远程密钥。
在一个实施例中,寄存器300包括一组编索引的基础秘密302。基础秘密304-308用于生成发布给远程节点的远程密钥。远程密钥包括使用所选择的基础秘密生成的验证数据以及到注册表中的基础秘密的索引。当远程密钥被用于访问相关联的物理存储器地址时,存储器本地的协同处理器通过使用该索引从注册表300获取基础秘密304-308来认证远程密钥。只要该基础秘密在注册表300中还没有改变,则使用基础秘密发布的远程密钥可以被协同处理器验证有效。在一个实施例中,编索引的基础秘密302被存储在寄存器300的固定数组中,其中i=0。
在一个实施例中,节点的协同处理器的所有寄存器300都包含相同的编索引的基础秘密302。在一个或多个本地主处理器上执行的软件指令可以使得这一个或多个本地主处理器确定所选择的基础秘密过期了并基于与所选择的基础秘密相关联的所选择的基础秘密索引来改变一个或多个本地寄存器300中的所选择的基础秘密。改变所选择的基础秘密使得在所选择的基础秘密在寄存器300中改变之前基于所选择的基础秘密生成的远程密钥无效。在一个实施例中,所述软件指令是软件管理程序的一部分。
寄存器300还可以存储切块验证数据310。切块验证数据310包括用于每个切块的基础秘密的位数组。位数组的长度可以等于与被使得与切块的基础秘密相关联的切块的数目。位数组的位值可以对应于针对相关联的切块生成的远程密钥的有效性。仅当由远程密钥指示的切块基于该切块验证数据有效时,准许对本地存储器的访问。
在一个实施例中,切块验证数据310包括与每个切块的基础秘密j,…,k相关联的有效性位数组312-314。有效性位数组312-314这样开始,数组的所有字段都指示所有切块有效。有效切块随后被指派给远程密钥。当切块和对应的远程密钥被无效时,有效性位数组312-314中对应于切块的基础秘密中的切块索引的位被翻转来指示该切块是无效的。在一个实施例中,与给定切块索引和给定的切块的基础秘密相关联的切块验证数据310在相关联的切块的基础秘密不改变的情况下不能从无效变为有效。
在一个实施例中,可以保持单个验证位数组来跟踪所有切块的基础秘密的切块有效性。例如,当存在2^m个切块的基础秘密并且每个切块的基础秘密被切割成2^n个切块时,切块索引可以是m+n位长,其中m位识别切块的基础秘密索引并且n位识别切块。以这种方式,可以保持单个验证位数组VALIDATION_DATA[2^(m+n)]来表示所有切块的基础秘密的所有切块。
在一个实施例中,节点的协同处理器的所有寄存器300包含相同的切块验证数据310。在一个或多个本地主处理器上执行的软件指令可以使得这一个或多个本地主处理器确定所选择的切块基础秘密中的所选择的切块过期了,并改变本地寄存器300中的切块验证数据310。改变切块验证数据310使得在切块验证数据310在寄存器300中改变之前基于所选择的切块生成的远程密钥无效。在一个实施例中,所述软件指令是软件管理程序的一部分。
物理域
基于远程密钥的存储器缓冲区访问控制机制可以在具有多个物理域的分布式共享存储系统中实现。节点可以在分离的物理域中操作,分离的物理域具有仅本地处理器和协同处理器被准许访问的不同地址空间。
例如,图4图示出根据本文描述的基于远程密钥的存储器缓冲区访问控制机制的节点之间的地址空间的模型。包括至少一个物理域402-404。在一个实施例中,每个物理域对应于具有一个或多个处理套接口的节点。每个物理域402-404包括多个本地密钥404-416,它们是提供对物理域本地的特有物理地址空间的访问权限的密钥。本地密钥与物理域的物理地址空间的大的物理上连续的部分相关联并且被分配用于物理域本地的用户进程。在图4中,PDOM1402具有密钥LKey1406、LKey2408、LKey3410。PDOM2404具有密钥LKey4412、LKey4414、LKey6416。
远程密钥与具有LKey的存储区域的窗口相关联。每个LKey可以包括一个或多个远程密钥和相关联的存储区域。远程密钥将来自物理域中的一个给定的本地密钥的远程访问权限给与远程物理域中的另一本地密钥。由远程密钥保护的存储器的一部分的远程用户呈交该远程密钥来访问存储器的那个部分。
每个节点可以包括至少一个协同处理器。协同处理器在接收到远程密钥时验证密钥并且如果验证成功,则继续执行该命令。图4图示出PDOM1中的LKey1406包括RKey1420和RKey2422。LKey2408包括RKey3424并且LKey3410包括RKey4426。在PDOM2404中,LKey4412包括RKey4428和RKey6430,而LKey4414包括RKey4434并且LKey6416包括RKey8436。图4另外还图示出通过PDOM1402中的Lkey1406做出的请求440,用于访问与PDOM2404中的LKey4414中的RKey4434相关联的存储器。
远程密钥验证
远程密钥由其保护的存储器位置的所有者发布。远程客户端被授权访问与该远程密钥相关联的关联存储器位置,直到远程密钥被撤销为止。当远程密钥被用来访问存储器位置时,存储器位置的所有者在允许访问之前验证该远程密钥。
图5是图示出根据本文描述的基于远程密钥的存储器缓冲区访问控制机制来验证远程密钥的方法的实施例的流程图。尽管图5图示出根据一个实施例的示例性步骤,但是其它实施例可以省略、增加、重新排序和/或修改所示出的步骤中的任何步骤。图5的一个或多个步骤可以由包括与远程密钥相关联的本地存储器的本地节点的所选择的协同处理器执行。
在步骤502中,远程密钥被接收。远程密钥可以是从请求访问本地存储器的远程节点接收的。在一个实施例中,远程密钥是在包括远程密钥和命令信息的命令块中接收的。远程密钥包括验证数据。验证数据可以是基于从一组基础秘密中选择的基础秘密生成的,该组基础秘密可以被编索引。远程密钥还包括识别包含(或之前包含了)用于生成验证数据的基础秘密的基础秘密位置的基础秘密索引。在步骤504中,远程密钥中所包含的基础秘密索引被确定。
在步骤506中,基础秘密索引被用来获取验证基础秘密,验证基础秘密将被用于验证远程密钥。在一个实施例中,该组基础秘密被存储在所选择的协同处理器的寄存器中,并且基础秘密索引识别该组基础秘密中的该验证基础秘密。
在步骤508中,验证基础秘密被用来验证远程密钥中包含的验证数据。在一个实施例中,所选择的协同处理器执行对基础秘密的硬件验证。远程密钥可以包括散列字段,散列字段包含使用硬件存储的一组可配置的基础秘密中的一个基础秘密生成的散列签名,并且验证远程密钥涉及使用存储在远程密钥中指定的基础秘密索引处的验证基础秘密来验证散列签名。在一个实施例中,散列签名使用验证基础秘密被解密,并且输出被与远程密钥中包含的其它数据比较。如果与远程密钥中的基础秘密索引相关联的基础秘密已经在硬件中改变,则验证失败。在决策步骤510中,如果确定远程密钥有效,则处理继续到步骤512。否则,如果远程密钥无效,则处理继续到步骤516。
在步骤512中,本地地址被确定。本地地址可以通过翻译远程密钥来获取本地物理地址而确定。处理继续到步骤514,在该步骤中,对本地存储器的访问被准予。在一个实施例中,准予访问涉及执行与远程密钥一起接收的命令。命令可以是从远程节点接收的数据存储或维护命令,并且还可以涉及连同远程密钥一起接收的数据。所选择的协同处理器可以硬件地执行命令,例如,不使用任何软件指令或编程API辅助来执行该命令。在一个实施例中,命令在本地地址被确定和/或命令被执行之前被高速缓存。例如,远程密钥可以包括高速缓存指示符,其指示来自远程节点的命令应当被高速缓存。
在步骤516中,确认被发送。确认可以在从远程节点接收的一个或多个命令的成功执行之后被发送。确认还可以包括指示命令没有被成功执行的一个或多个错误通知。例如,如果在决策步骤510中确定密钥是无效的,则错误通知可以被发送。
图6是图示出根据本文描述的基于远程密钥的存储器缓冲区访问控制机制使用切块的基础秘密来验证远程密钥的方法的实施例的流程图。尽管图6图示出根据一个实施例的示例性步骤,但是其它实施例可以省略、增加、重排序和/或修改所示出的步骤中的任何步骤。图6的一个或多个步骤可以被包括与远程密钥相关联的存储器的节点的所选择的协同处理器执行。
在一个或多个实施例中,该组基础秘密包括至少一个切块的基础秘密。每个切块的基础秘密可以与一组切块相关联。切块可以被单独用于验证与该切块相关联的远程密钥,而不必验证与可切块的远程密钥相关联的所有远程密钥。切块的远程密钥和未切块的远程密钥两者可以以相同的实现方式使用。
在步骤602中,远程密钥被接收。远程密钥可以是从请求访问本地存储器的远程节点接收的。在一个实施例中,远程密钥是在包括远程密钥和命令信息的命令块中接收的。远程密钥包括验证数据。验证数据可以基于从一组基础秘密选择的基础秘密而生成,该组基础秘密可以被编索引。远程密钥还包括识别基础秘密位置的基础秘密索引,基础秘密位置包含(或之前包含)用于生成该验证数据的基础秘密。在步骤604中,远程密钥中所包含的基础秘密索引被确定。在步骤606中,远程密钥中所包含的切块索引被确定。
在步骤608中,基础秘密索引被用来获取将被用于验证该远程密钥的验证基础秘密。在一个实施例中,该组基础秘密被存储在所选择的协同处理器的寄存器中,并且基础秘密索引识别该组基础秘密中的验证基础秘密。
在步骤610中,验证基础秘密被用于验证远程密钥中包含的验证数据。在一个实施例中,所选择的协同处理器执行基础秘密的硬件验证。远程密钥可以包括散列字段,该散列字段包含使用硬件存储的一组可配置基础秘密中的一个基础秘密生成的散列签名。验证远程密钥可以涉及使用存储在远程密钥中指定的基础秘密索引处的验证基础秘密来验证散列签名。在一个实施例中,散列签名利用验证基础秘密被解密,并且输出被与远程密钥中包含的其它数据比较。在一个实施例中,散列签名包括包含切块索引的编码的信息。如果与远程密钥中的基础秘密索引相关联的基础秘密已经硬件地改变,则验证失败。在决策步骤612中,如果确定远程密钥有效,则处理继续进行到步骤614。否则,如果远程密钥无效,则处理继续进行到步骤622。
在步骤614中,切块验证数据被访问来确定远程密钥中指示的切块是否有效。切块验证数据可以硬件地存储,诸如存储在与所选择的协同处理器相关联的注册表中。所选择的协同处理器可以硬件地确定切块是否有效,例如,不使用任何软件指令或编程API辅助来执行该验证。在一个实施例中,切块验证数据包括针对每个切块的基础秘密的位数组。位数组的长度可以等于被使得可用于相关联的基础秘密的切块的数目。位数组的位值可以对应于为相关联的切块生成的远程密钥的有效性。对本地存储器的访问仅在由远程密钥指示的切块基于切块验证数据有效时被准予。在决策步骤616中,如果确定切块有效,则处理继续到步骤618。否则,如果切块无效,则处理继续到步骤622。
在步骤618中,本地地址被确定。本地地址可以通过翻译远程密钥来获取本地物理地址而确定。处理继续到步骤620,在该步骤,对本地存储器的访问被准予。在一个实施例中,准予访问涉及执行与远程密钥一起接收的命令。命令可以是从远程节点接收的数据存储或维护命令,并且还可以涉及连同远程密钥一起接收的数据。所选择的协同处理器可以硬件地执行命令,例如,不使用任何软件指令或编程API辅助来执行该命令。在一个实施例中,命令在本地地址被确定和/或命令被执行之前被高速缓存。例如,远程密钥可以包括高速缓存指示符,其指示来自远程节点的命令应当被高速缓存。
在步骤622中,确认被发送。确认可以在从远程节点接收的一个或多个命令的成功执行之后被发送。确认还可以包括一个或多个错误通知,指示命令没有被成功执行。例如,如果在决策步骤612或616中确定密钥或切块无效,则错误通知可以被发送。
协同处理器命令执行
协同处理器可以执行从管理程序接收的命令。在一个实施例中,协同处理器与发布命令的多线程的管理程序中的线程异步地执行命令。如果管理程序发送多个命令,则协同处理器可以高速缓存该命令。该协同处理器可以并行执行一些命令。
协同处理器可以被设计为支持各种数据移动和维护命令而无需来自主处理器的支持。在一个实施例中,协同处理器支持数据移动命令和数据维护命令。数据移动命令可以从以下选择:Copy,CopyImmediate,CopyAndSignal,CopyAndSignalImmediate,Fill,Store,CAS和CASAndFetch,CAM/AtomicAdd/AtomicOr,和AtomicMessagePush。数据维护命令可以从以下选择:Interrupt,Sync和NoOP。
在一个实施例中,命令可以涉及源地址和/或目的地地址。源地址(“SourceAddress”)或目的地地址(“DestAddress”)位于远程物理域,则远程密钥(“RKey”)而不是物理地址被指定。
图7图示出根据本文描述的基于远程密钥的存储器缓冲区访问控制机制的节点之间的命令操作。尽管图7图示出根据一个实施例的示例性步骤,但是其它实施例可以省略、增加、重排序和/或修改所示出的任何步骤。
在步骤702中,第一物理域PDOM1种的源协同处理器接收和解码访问第二物理域PDOM 2中的远程存储器的新命令。在一个实施例中,源协同处理器从与PDOM1相关联的管理程序接收该命令。在步骤704中,源协同处理器获取物理地址处与命令相关联的本地数据。在步骤706中,源协同处理器将命令和与该命令相关联的数据连同远程密钥一起发送给第二物理域PDOM2。
PDOM2中的目的地协同处理器接收命令和与命令相关联的数据。在一个实施例中,目的地协同处理器从与PDOM2相关联的管理程序接收命令。在步骤708中,目的地协同处理器对远程密钥执行硬件验证。例如,目的地协同处理器可以执行图5-6中描述的方法的一个或多个步骤来验证远程密钥。在步骤710中,在远程密钥的成功验证之后,目的地协同处理器翻译远程密钥来获取本地物理地址。在步骤712中,目的地协同处理器执行该命令。如图7中所示,命令涉及将发送的数据写入与远程密钥相关联的本地物理地址。
在步骤714中,PDOM2中的目的地协同处理器向PDOM1中的源协同处理器发送回确认,指示命令的完成。在一个实施例中,确认可以是指示命令没有被成功执行的错误通知。例如,错误通知可以指示验证不成功。在步骤716中,源协同处理器在接收到确认时,更新命令块中的完成状态。在步骤718中,源协同处理器将命令入队。
在以上说明中,已经参考大量具体细节描述了本发明的实施例,这些细节根据实现方式不同可以不同。说明书和附图因此应该以说明性而非限制性的含义来考虑。本发明的范围的唯一的和排他性的指示并且申请人所意图作为本发明的范围的是从本申请产生的权利要求集合按照其发布的具体形式(包括任何后续补正)的字面和等同范围。
Claims (20)
1.一种用于存储器访问的设备,包括:
本地节点,包括本地存储器和与本地存储器耦合的至少一个协同处理器,每个协同处理器包括寄存器,其中每个寄存器被配置为存储用于生成和验证远程密钥的多个基础秘密,其中,所述多个基础秘密中的每个基础秘密与一基础秘密索引相关联,其中,每个寄存器被配置为基于基础秘密索引来存储所述多个基础秘密;
至少一个主处理器,被配置为执行软件指令,所述软件指令使得所述至少一个主处理器基于与所选择的基础秘密相关联的所选择的基础秘密索引来改变寄存器中的所选择的基础秘密;
其中,从所述至少一个协同处理器中选择的所选择的协同处理器被配置为:
从第一节点接收访问所述本地存储器的请求,所述请求包括第一远程密钥,第一远程密钥包括第一基础秘密索引和基于第一基础秘密生成的第一验证数据;
基于第一基础秘密索引获取存储在所选择的协同处理器的寄存器中的验证基础秘密;
基于验证基础秘密对第一远程密钥中的第一验证数据执行硬件验证而不使用任何软件指令或编程API辅助来执行所述硬件验证,其中,当与第一基础秘密索引相关联的基础秘密已经在所选择的协同处理器的寄存器中改变了时,所述硬件验证失败;
在对第一远程密钥的成功认证之后,根据所述请求访问所述本地存储器。
2.如权利要求1所述的设备,其中,第一验证数据包括使用第一基础秘密作为密钥生成的散列字段。
3.如权利要求1所述的设备,其中,所选择的协同处理器还被配置为:
生成第二远程密钥,第二远程密钥包括第二基础秘密索引和基于第二基础秘密生成的第二验证数据,第二基础秘密基于第二基础秘密索引存储在所选择的协同处理器的寄存器中;
向第二节点发送第二远程密钥以向第二节点准予对所述本地存储器的访问,
其中,只要第二基础秘密仍然没变,则第二节点被授权访问与第二远程密钥相关联的本地存储器的一部分。
4.如权利要求1所述的设备,其中,所选择的协同处理器还被配置为:
发送访问与第三节点相关联的远程存储器的请求,所述请求包括从第三节点接收的第三远程密钥。
5.如权利要求1所述的设备,其中,第一远程密钥是从第一节点的软件管理程序接收的。
6.如权利要求1所述的设备,其中,所述多个基础秘密中的至少一个基础秘密是切块式的基础秘密,其中,每个切块式的基础秘密被分割成多个切块,每个切块能够独立于所述切块式的基础秘密中的其他切块被无效。
7.如权利要求6所述的设备:
其中,所选择的协同处理器的寄存器还被配置为存储切块验证数据;
其中,第一基础秘密是切块式的基础秘密;
其中,第一远程密钥还包括识别与第一基础秘密相关联的切块的第一切块索引;
其中,第一远程密钥的所述硬件验证还基于第一切块索引和所述切块验证数据;
其中,所述软件指令还使得所述至少一个主处理器修改与所选择的切块式的基础秘密的所选择的切块对应的切块验证数据以指示与所选择的切块式的基础秘密的所选择的切块相关联的远程密钥无效。
8.如权利要求7所述的设备,其中,所述切块验证数据包括与每个切块式的基础秘密相关联的位数组,其中,每个位数组的每个位值对应于针对相关联的切块生成的远程密钥的有效性。
9.如权利要求7所述的设备,其中与给定切块索引和给定的切块式的基础秘密相关联的切块验证数据在不改变所述给定的切块式的基础秘密的情况下不能从无效变为有效。
10.如权利要求6所述的设备:
其中,所述至少一个协同处理器的每个寄存器存储相同的切块验证数据;
其中,所述软件指令还使得所述至少一个主处理器在修改所述切块验证数据之后更新存储在寄存器上的所述切块验证数据。
11.如权利要求1所述的设备:
其中,第一远程密钥还包括高速缓存指示符,其指示来自第一节点的请求中包含的命令应当被高速缓存;
其中,所选择的协同处理器还被配置为基于所述高速缓存指示符来有选择地高速缓存来自第一节点的命令和相关联的数据。
12.如权利要求11所述的设备,其中,有选择地高速缓存命令还基于覆写第一远程密钥中的高速缓存指示符的本地决策。
13.如权利要求1所述的设备,其中,所述请求包括命令,所述命令是从包括以下的组中选择的:复制命令、复制和信号命令、填充命令、存储命令、比较和交换命令、原子添加命令、原子OR命令以及中断和同步命令。
14.如权利要求1所述的设备,
其中,所述本地节点通过与所述至少一个协同处理器可通信地耦合的互连而耦合到第一节点;
其中所述协同处理器被配置为接收通信,获取验证基础秘密,并且执行硬件验证而不通过本地节点的公共总线与本地节点的另一处理器通信。
15.一种用于存储器访问的系统,包括:
第一节点,其包括第一本地存储器和与第一本地存储器耦合的第一多个协同处理器,第一多个协同处理器中的每个协同处理器包括寄存器,其中第一多个协同处理器的每个寄存器被配置为存储用于生成和验证远程密钥的第一多个基础秘密,第一多个基础秘密与第一节点相关联,其中,第一多个基础秘密中的每个基础秘密用第一多个基础秘密索引编索引,其中,第一多个协同处理器的每个寄存器被配置为基于第一多个基础秘密索引来存储第一多个基础秘密;
第二节点,其包括第二本地存储器和与第二本地存储器耦合的第二多个协同处理器,第二多个协同处理器的每个协同处理器包括寄存器;
其中,第一节点还包括被配置为执行软件指令的至少一个主处理器,所述软件指令使得所述至少一个主处理器基于与过期的基础秘密相关联的所选择的基础秘密索引来改变第一多个协同处理器的寄存器中的所述过期的基础秘密;
其中,从第一多个协同处理器中选择的所选择的第一节点协同处理器被配置为:
生成第一远程密钥,第一远程密钥包括第一基础秘密索引和验证数据,其中,所述验证数据是基于第一基础秘密生成的,第一基础秘密基于第一基础秘密索引存储在所选择的协同处理器的寄存器中;
向第二节点发送第一远程密钥以向第二节点准予对第一本地存储器的访问;
从第二节点接收请求,所述请求包括第一远程密钥和要求访问第一本地存储器的命令;
基于第一基础秘密索引获取存储在所选择的第一节点协同处理器的寄存器中的验证基础秘密;
基于验证基础秘密执行对第一远程密钥中的第一验证数据的硬件验证而不使用任何软件指令或编程API辅助来执行所述硬件验证,其中,当与第一基础秘密索引相关联的第一基础秘密已经在所选择的第一节点协同处理器的寄存器中改变了时,所述硬件验证失败;
在第一远程密钥的成功认证之后执行所述命令。
16.如权利要求15所述的系统,其中,所述验证数据包括使用第一基础秘密作为密钥生成的散列字段。
17.如权利要求15所述的系统:
其中,第一多个基础秘密中的至少一个基础秘密是切块式的基础秘密;
其中,每个切块式的基础秘密被分割成多个切块,每个切块能够独立于所述切块式的基础秘密中的其它切块被无效;
其中,所选择的第一节点协同处理器的寄存器还被配置为存储切块验证数据;
其中,第一基础秘密是切块式的基础秘密;
其中,第一远程密钥还包括识别与第一基础秘密相关联的切块的第一切块索引;
其中,第一远程密钥的所述硬件验证还基于第一切块索引和所述切块验证数据;
其中,所述软件指令还使得所述至少一个主处理器修改与所选择的切块式的基础秘密的所选择的切块对应的切块验证数据以指示与所选择的切块式的基础秘密的所选择的切块相关联的远程密钥无效。
18.如权利要求17所述的系统,其中,所述切块验证数据包括与每个切块式的基础秘密相关联的位数组,其中,每个位数组的每个位值对应于针对相关联的切块生成的远程密钥的有效性。
19.如权利要求17所述的系统,其中与给定切块索引和给定的切块式的基础秘密对应的切块验证数据在不改变所述给定的切块式的基础秘密的情况下不能从无效变为有效。
20.如权利要求15所述的系统:
其中,第一远程密钥还包括高速缓存指示符,其指示来自第二节点的命令应当被高速缓存;
其中,所选择的第一节点协同处理器还被配置为基于所述高速缓存指示符来有选择地高速缓存来自第二节点的命令和相关联的数据。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261709142P | 2012-10-02 | 2012-10-02 | |
US61/709,142 | 2012-10-02 | ||
US13/839,525 | 2013-03-15 | ||
US13/839,525 US9372813B2 (en) | 2012-10-02 | 2013-03-15 | Remote-key based memory buffer access control mechanism |
PCT/US2013/062859 WO2014055512A1 (en) | 2012-10-02 | 2013-10-01 | Remote-key based memory buffer access control mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104756091A CN104756091A (zh) | 2015-07-01 |
CN104756091B true CN104756091B (zh) | 2018-02-23 |
Family
ID=50386190
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380049816.7A Active CN104662538B (zh) | 2012-10-02 | 2013-06-14 | 半连接加速 |
CN201380049301.7A Active CN104662534B (zh) | 2012-10-02 | 2013-06-14 | 用于表扫描加速的硬件 |
CN201810434459.0A Active CN108664596B (zh) | 2012-10-02 | 2013-06-14 | 用于表扫描加速的硬件 |
CN201380051875.8A Active CN104704491B (zh) | 2012-10-02 | 2013-06-27 | 用于集群内通信的硬件消息队列 |
CN201380057680.4A Active CN104769591B (zh) | 2012-10-02 | 2013-09-30 | 分布式节点之间的存储器共享 |
CN201380057937.6A Active CN104769561B (zh) | 2012-10-02 | 2013-10-01 | 能够实现不同物理域地址空间的节点间的聚类的存储总线协议 |
CN201380051672.9A Active CN104756091B (zh) | 2012-10-02 | 2013-10-01 | 基于远程密钥的存储器缓冲区访问控制机制 |
Family Applications Before (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380049816.7A Active CN104662538B (zh) | 2012-10-02 | 2013-06-14 | 半连接加速 |
CN201380049301.7A Active CN104662534B (zh) | 2012-10-02 | 2013-06-14 | 用于表扫描加速的硬件 |
CN201810434459.0A Active CN108664596B (zh) | 2012-10-02 | 2013-06-14 | 用于表扫描加速的硬件 |
CN201380051875.8A Active CN104704491B (zh) | 2012-10-02 | 2013-06-27 | 用于集群内通信的硬件消息队列 |
CN201380057680.4A Active CN104769591B (zh) | 2012-10-02 | 2013-09-30 | 分布式节点之间的存储器共享 |
CN201380057937.6A Active CN104769561B (zh) | 2012-10-02 | 2013-10-01 | 能够实现不同物理域地址空间的节点间的聚类的存储总线协议 |
Country Status (6)
Country | Link |
---|---|
US (10) | US9292569B2 (zh) |
EP (6) | EP2904514B1 (zh) |
JP (1) | JP6320393B2 (zh) |
CN (7) | CN104662538B (zh) |
ES (1) | ES2880268T3 (zh) |
WO (6) | WO2014055137A1 (zh) |
Families Citing this family (131)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US9021224B2 (en) * | 2011-06-30 | 2015-04-28 | Hitachi, Ltd. | Method and apparatus for enhanced computer security |
US8572131B2 (en) | 2011-12-08 | 2013-10-29 | Oracle International Corporation | Techniques for more efficient usage of memory-to-CPU bandwidth |
US9697174B2 (en) | 2011-12-08 | 2017-07-04 | Oracle International Corporation | Efficient hardware instructions for processing bit vectors for single instruction multiple data processors |
US9342314B2 (en) | 2011-12-08 | 2016-05-17 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors |
US9792117B2 (en) | 2011-12-08 | 2017-10-17 | Oracle International Corporation | Loading values from a value vector into subregisters of a single instruction multiple data register |
US10534606B2 (en) | 2011-12-08 | 2020-01-14 | Oracle International Corporation | Run-length encoding decompression |
WO2013100783A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Method and system for control signalling in a data path module |
US9087095B2 (en) * | 2012-06-21 | 2015-07-21 | International Business Machines Corporation | Processing columns in a database accelerator while preserving row-based architecture |
US9063721B2 (en) | 2012-09-14 | 2015-06-23 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9292569B2 (en) | 2012-10-02 | 2016-03-22 | Oracle International Corporation | Semi-join acceleration |
US10102028B2 (en) | 2013-03-12 | 2018-10-16 | Sas Institute Inc. | Delivery acknowledgment in event stream processing |
US9679084B2 (en) | 2013-03-14 | 2017-06-13 | Oracle International Corporation | Memory sharing across distributed nodes |
EP2973139B1 (en) * | 2013-03-15 | 2020-04-22 | Intel Corporation | Security co-processor boot performance |
US10108539B2 (en) | 2013-06-13 | 2018-10-23 | International Business Machines Corporation | Allocation of distributed data structures |
US20160210237A1 (en) * | 2013-07-30 | 2016-07-21 | Nec Corporation | Storage device, data access method, and program recording medium |
US9836519B2 (en) | 2013-09-20 | 2017-12-05 | Oracle International Corporation | Densely grouping dimensional data |
US9740718B2 (en) | 2013-09-20 | 2017-08-22 | Oracle International Corporation | Aggregating dimensional data using dense containers |
US9990398B2 (en) * | 2013-09-20 | 2018-06-05 | Oracle International Corporation | Inferring dimensional metadata from content of a query |
US9606921B2 (en) | 2013-09-21 | 2017-03-28 | Oracle International Corporation | Granular creation and refresh of columnar data |
US10331583B2 (en) | 2013-09-26 | 2019-06-25 | Intel Corporation | Executing distributed memory operations using processing elements connected by distributed channels |
US10558569B2 (en) * | 2013-10-31 | 2020-02-11 | Hewlett Packard Enterprise Development Lp | Cache controller for non-volatile memory |
US20150161678A1 (en) * | 2013-12-05 | 2015-06-11 | Turn Inc. | Dynamic ordering of online advertisement software steps |
US9313029B2 (en) * | 2013-12-15 | 2016-04-12 | Cavium, Inc. | Virtualized network interface for remote direct memory access over converged ethernet |
US9306916B2 (en) * | 2013-12-25 | 2016-04-05 | Cavium, Inc. | System and a method for a remote direct memory access over converged ethernet |
US9898414B2 (en) | 2014-03-28 | 2018-02-20 | Oracle International Corporation | Memory corruption detection support for distributed shared memory applications |
DE102014207476A1 (de) * | 2014-04-17 | 2015-10-22 | Robert Bosch Gmbh | Verfahren zur Auswahl einer von mehreren Warteschlangen |
US9715345B2 (en) * | 2014-04-25 | 2017-07-25 | Micron Technology, Inc. | Apparatuses and methods for memory management |
US10838893B2 (en) * | 2014-05-30 | 2020-11-17 | Apple Inc. | Methods for mitigating system interrupts for an electronic device |
US9122651B1 (en) | 2014-06-06 | 2015-09-01 | Sas Institute Inc. | Computer system to support failover in an event stream processing system |
US9356986B2 (en) * | 2014-08-08 | 2016-05-31 | Sas Institute Inc. | Distributed stream processing |
WO2016064397A1 (en) * | 2014-10-23 | 2016-04-28 | Hewlett Packard Enterprise Development Lp | Admissions control of a device |
US10715332B2 (en) | 2014-10-30 | 2020-07-14 | Hewlett Packard Enterprise Development Lp | Encryption for transactions in a memory fabric |
US10699031B2 (en) | 2014-10-30 | 2020-06-30 | Hewlett Packard Enterprise Development Lp | Secure transactions in a memory fabric |
US9678812B2 (en) | 2014-12-22 | 2017-06-13 | International Business Machines Corporation | Addressing for inter-thread push communication |
US9766890B2 (en) * | 2014-12-23 | 2017-09-19 | International Business Machines Corporation | Non-serialized push instruction for pushing a message payload from a sending thread to a receiving thread |
US10255336B2 (en) | 2015-05-07 | 2019-04-09 | Datometry, Inc. | Method and system for transparent interoperability between applications and data management systems |
US9749319B2 (en) | 2015-05-20 | 2017-08-29 | Google Inc. | Address validation using signatures |
CA2984155A1 (en) * | 2015-05-21 | 2016-11-24 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
US11449452B2 (en) | 2015-05-21 | 2022-09-20 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
US10025823B2 (en) | 2015-05-29 | 2018-07-17 | Oracle International Corporation | Techniques for evaluating query predicates during in-memory table scans |
US10594779B2 (en) | 2015-08-27 | 2020-03-17 | Datometry, Inc. | Method and system for workload management for data management systems |
US9990308B2 (en) | 2015-08-31 | 2018-06-05 | Oracle International Corporation | Selective data compression for in-memory databases |
JP6515771B2 (ja) * | 2015-10-07 | 2019-05-22 | 富士通コネクテッドテクノロジーズ株式会社 | 並列処理装置及び並列処理方法 |
US9823871B2 (en) | 2015-10-09 | 2017-11-21 | Oracle International Corporation | Performance of coprocessor assisted memset() through heterogeneous computing |
US10642831B2 (en) | 2015-10-23 | 2020-05-05 | Oracle International Corporation | Static data caching for queries with a clause that requires multiple iterations to execute |
US10678792B2 (en) | 2015-10-23 | 2020-06-09 | Oracle International Corporation | Parallel execution of queries with a recursive clause |
US10783142B2 (en) | 2015-10-23 | 2020-09-22 | Oracle International Corporation | Efficient data retrieval in staged use of in-memory cursor duration temporary tables |
CN105426271B (zh) * | 2015-12-22 | 2018-09-21 | 华为技术有限公司 | 对分布式存储系统的锁管理的方法和装置 |
US10146681B2 (en) | 2015-12-24 | 2018-12-04 | Intel Corporation | Non-uniform memory access latency adaptations to achieve bandwidth quality of service |
CN105677812A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 一种数据查询方法及数据查询装置 |
US10061714B2 (en) | 2016-03-18 | 2018-08-28 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors |
US10402425B2 (en) | 2016-03-18 | 2019-09-03 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors |
US10055358B2 (en) | 2016-03-18 | 2018-08-21 | Oracle International Corporation | Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors |
US10061832B2 (en) | 2016-11-28 | 2018-08-28 | Oracle International Corporation | Database tuple-encoding-aware data partitioning in a direct memory access engine |
US10599488B2 (en) | 2016-06-29 | 2020-03-24 | Oracle International Corporation | Multi-purpose events for notification and sequence control in multi-core processor systems |
US10853125B2 (en) * | 2016-08-19 | 2020-12-01 | Oracle International Corporation | Resource efficient acceleration of datastream analytics processing using an analytics accelerator |
CN106354480B (zh) * | 2016-08-24 | 2019-01-29 | 长沙中部芯空微电子研究所有限公司 | 一种mpp型异构高速mcu系统 |
US10380058B2 (en) | 2016-09-06 | 2019-08-13 | Oracle International Corporation | Processor core to coprocessor interface with FIFO semantics |
US10558659B2 (en) | 2016-09-16 | 2020-02-11 | Oracle International Corporation | Techniques for dictionary based join and aggregation |
US10402168B2 (en) | 2016-10-01 | 2019-09-03 | Intel Corporation | Low energy consumption mantissa multiplication for floating point multiply-add operations |
US10783102B2 (en) | 2016-10-11 | 2020-09-22 | Oracle International Corporation | Dynamically configurable high performance database-aware hash engine |
US10459859B2 (en) | 2016-11-28 | 2019-10-29 | Oracle International Corporation | Multicast copy ring for database direct memory access filtering engine |
US10176114B2 (en) | 2016-11-28 | 2019-01-08 | Oracle International Corporation | Row identification number generation in database direct memory access engine |
US10725947B2 (en) | 2016-11-29 | 2020-07-28 | Oracle International Corporation | Bit vector gather row count calculation and handling in direct memory access engine |
US10416999B2 (en) | 2016-12-30 | 2019-09-17 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10474375B2 (en) | 2016-12-30 | 2019-11-12 | Intel Corporation | Runtime address disambiguation in acceleration hardware |
US10572376B2 (en) | 2016-12-30 | 2020-02-25 | Intel Corporation | Memory ordering in acceleration hardware |
US10558575B2 (en) | 2016-12-30 | 2020-02-11 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10606487B2 (en) * | 2017-03-17 | 2020-03-31 | International Business Machines Corporation | Partitioned memory with locally aggregated copy pools |
US20180373760A1 (en) * | 2017-06-23 | 2018-12-27 | Xilinx, Inc. | Parallel compute offload to database accelerator |
US10515049B1 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Memory circuits and methods for distributed memory hazard detection and error recovery |
US10445451B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features |
US10445234B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features |
US10515046B2 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10467183B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods for pipelined runtime services in a spatial array |
US10387319B2 (en) | 2017-07-01 | 2019-08-20 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features |
US10469397B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods with configurable network-based dataflow operator circuits |
CN107835203B (zh) * | 2017-08-09 | 2020-07-10 | 平安壹钱包电子商务有限公司 | 消息分组投递的方法、装置、存储介质及终端 |
US10496574B2 (en) | 2017-09-28 | 2019-12-03 | Intel Corporation | Processors, methods, and systems for a memory fence in a configurable spatial accelerator |
US11086816B2 (en) | 2017-09-28 | 2021-08-10 | Intel Corporation | Processors, methods, and systems for debugging a configurable spatial accelerator |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10445098B2 (en) * | 2017-09-30 | 2019-10-15 | Intel Corporation | Processors and methods for privileged configuration in a spatial array |
US10380063B2 (en) | 2017-09-30 | 2019-08-13 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator |
US10664396B2 (en) * | 2017-10-04 | 2020-05-26 | Intel Corporation | Systems, methods and apparatus for fabric delta merge operations to enhance NVMeoF stream writes |
CN107766526B (zh) * | 2017-10-26 | 2020-04-28 | 中国人民银行清算总中心 | 数据库访问方法、装置及系统 |
CN107886692B (zh) * | 2017-10-30 | 2020-08-25 | 皖西学院 | 一种生物工程用传感器LoRa无线网络通讯系统 |
US10467139B2 (en) | 2017-12-29 | 2019-11-05 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
US10452547B2 (en) | 2017-12-29 | 2019-10-22 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
US10417175B2 (en) | 2017-12-30 | 2019-09-17 | Intel Corporation | Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator |
US10565134B2 (en) | 2017-12-30 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for multicast in a configurable spatial accelerator |
US10445250B2 (en) | 2017-12-30 | 2019-10-15 | Intel Corporation | Apparatus, methods, and systems with a configurable spatial accelerator |
CN110110004B (zh) * | 2018-01-30 | 2023-05-30 | 腾讯科技(深圳)有限公司 | 一种数据操作方法、装置和存储介质 |
US10564980B2 (en) | 2018-04-03 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator |
US11307873B2 (en) | 2018-04-03 | 2022-04-19 | Intel Corporation | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging |
US10649777B2 (en) * | 2018-05-14 | 2020-05-12 | International Business Machines Corporation | Hardware-based data prefetching based on loop-unrolled instructions |
CN108776934B (zh) * | 2018-05-15 | 2022-06-07 | 中国平安人寿保险股份有限公司 | 分布式数据计算方法、装置、计算机设备及可读存储介质 |
US10853073B2 (en) | 2018-06-30 | 2020-12-01 | Intel Corporation | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator |
US10891240B2 (en) | 2018-06-30 | 2021-01-12 | Intel Corporation | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator |
US11200186B2 (en) | 2018-06-30 | 2021-12-14 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
US10459866B1 (en) | 2018-06-30 | 2019-10-29 | Intel Corporation | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator |
EP3846026A4 (en) * | 2018-09-21 | 2021-11-03 | Huawei Technologies Co., Ltd. | DATA EXTRACTION PROCESS AND DEVICE |
CN111399905B (zh) * | 2019-01-02 | 2022-08-16 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
JP7146611B2 (ja) * | 2018-12-18 | 2022-10-04 | 株式会社日立製作所 | カラムストアデータベースシステム及びデータベース処理高速化方法 |
US11294869B1 (en) | 2018-12-19 | 2022-04-05 | Datometry, Inc. | Expressing complexity of migration to a database candidate |
US11620291B1 (en) | 2018-12-19 | 2023-04-04 | Datometry, Inc. | Quantifying complexity of a database application |
US11269824B1 (en) | 2018-12-20 | 2022-03-08 | Datometry, Inc. | Emulation of database updateable views for migration to a different database |
US10678724B1 (en) | 2018-12-29 | 2020-06-09 | Intel Corporation | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator |
US10817291B2 (en) | 2019-03-30 | 2020-10-27 | Intel Corporation | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator |
US10915471B2 (en) | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator |
US11029927B2 (en) | 2019-03-30 | 2021-06-08 | Intel Corporation | Methods and apparatus to detect and annotate backedges in a dataflow graph |
US10965536B2 (en) | 2019-03-30 | 2021-03-30 | Intel Corporation | Methods and apparatus to insert buffers in a dataflow graph |
US11487674B2 (en) * | 2019-04-17 | 2022-11-01 | Rankin Labs, Llc | Virtual memory pool within a network which is accessible from multiple platforms |
CN110113395B (zh) * | 2019-04-19 | 2021-11-09 | 新华三云计算技术有限公司 | 共享文件系统维护方法及装置 |
US11372773B2 (en) | 2019-05-28 | 2022-06-28 | Rankin Labs, Llc | Supporting a virtual memory area at a remote computing machine |
US11037050B2 (en) | 2019-06-29 | 2021-06-15 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator |
EP4004758A1 (en) * | 2019-07-31 | 2022-06-01 | Sindice Limited t/a Siren | Semantic caching of semi-join operators in shared-nothing and log-structured databases |
US11222018B2 (en) | 2019-09-09 | 2022-01-11 | Oracle International Corporation | Cache conscious techniques for generation of quasi-dense grouping codes of compressed columnar data in relational database systems |
US20210109974A1 (en) * | 2019-10-13 | 2021-04-15 | Thoughtspot, Inc. | Query Execution On Compressed In-Memory Data |
CN111061760B (zh) * | 2019-10-30 | 2020-12-15 | 中科驭数(北京)科技有限公司 | 关系型数据库管理系统中的窗口聚合方法、查询方法及装置 |
US11907713B2 (en) | 2019-12-28 | 2024-02-20 | Intel Corporation | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator |
US20220166762A1 (en) * | 2020-11-25 | 2022-05-26 | Microsoft Technology Licensing, Llc | Integrated circuit for obtaining enhanced privileges for a network-based resource and performing actions in accordance therewith |
US11755355B2 (en) | 2020-11-25 | 2023-09-12 | Nxp Usa, Inc. | Systems and methods for assigning domain identifiers to remote peripheral devices using a hypervisor |
US11755427B2 (en) | 2021-06-01 | 2023-09-12 | Alibaba Singapore Holding Private Limited | Fast recovery and replication of key-value stores |
US11741073B2 (en) | 2021-06-01 | 2023-08-29 | Alibaba Singapore Holding Private Limited | Granularly timestamped concurrency control for key-value store |
US20220382760A1 (en) * | 2021-06-01 | 2022-12-01 | Alibaba Singapore Holding Private Limited | High-performance key-value store |
US11829291B2 (en) | 2021-06-01 | 2023-11-28 | Alibaba Singapore Holding Private Limited | Garbage collection of tree structure with page mappings |
CN113342480B (zh) * | 2021-06-23 | 2022-02-22 | 海光信息技术股份有限公司 | 一种事务处理系统、事务处理方法及主机系统 |
CN113420033B (zh) * | 2021-08-17 | 2021-12-07 | 北京奥星贝斯科技有限公司 | 分布式数据库的表数据查询方法、表数据查询装置及系统 |
US20230205935A1 (en) * | 2021-12-28 | 2023-06-29 | Ati Technologies Ulc | Software assisted acceleration in cryptographic queue processing |
US11927634B2 (en) | 2022-04-01 | 2024-03-12 | Samsung Electronics Co., Ltd | Systems and methods for database scan acceleration |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1704922A (zh) * | 2004-06-03 | 2005-12-07 | 英特尔公司 | 在多处理器系统中启动安全内核 |
CN102184365A (zh) * | 2011-06-07 | 2011-09-14 | 郑州信大捷安信息技术有限公司 | 基于SoC芯片外部数据安全存储架构及存取控制方法 |
Family Cites Families (136)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE34052E (en) | 1984-05-31 | 1992-09-01 | International Business Machines Corporation | Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage |
US4817140A (en) * | 1986-11-05 | 1989-03-28 | International Business Machines Corp. | Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor |
US5133053A (en) * | 1987-02-13 | 1992-07-21 | International Business Machines Corporation | Interprocess communication queue location transparency |
US5604899A (en) | 1990-05-21 | 1997-02-18 | Financial Systems Technology Pty. Ltd. | Data relationships processor with unlimited expansion capability |
US5423010A (en) | 1992-01-24 | 1995-06-06 | C-Cube Microsystems | Structure and method for packing and unpacking a stream of N-bit data to and from a stream of N-bit data words |
US5483624A (en) * | 1992-03-27 | 1996-01-09 | Monarch Marking Systems, Inc. | Programmable hand held labeler |
JPH0619785A (ja) * | 1992-03-27 | 1994-01-28 | Matsushita Electric Ind Co Ltd | 分散共有仮想メモリーとその構成方法 |
DE69424597T2 (de) | 1993-06-17 | 2001-03-01 | Sun Microsystems Inc | Erweiterbares Dateiensystem |
US5581705A (en) * | 1993-12-13 | 1996-12-03 | Cray Research, Inc. | Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system |
US5564056A (en) * | 1994-03-01 | 1996-10-08 | Intel Corporation | Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming |
DE19515020A1 (de) * | 1994-07-01 | 1996-01-04 | Hewlett Packard Co | Verfahren und Vorrichtung zum Optimieren von Abfragen mit Gruppieren-nach-Operatoren |
JP3518034B2 (ja) | 1995-03-30 | 2004-04-12 | 三菱電機株式会社 | ソート方法並びにソート処理装置並びにデータ処理装置 |
US5684977A (en) | 1995-03-31 | 1997-11-04 | Sun Microsystems, Inc. | Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system |
CA2146171C (en) * | 1995-04-03 | 2000-01-11 | Bernhard Schiefer | Method for estimating cardinalities for query processing in a relational database management system |
KR0175499B1 (ko) | 1996-09-11 | 1999-04-01 | 양승택 | 다중태그 구조의 계층 상호연결망에서의 브로드캐스트 전송방법 |
JPH10154160A (ja) * | 1996-09-25 | 1998-06-09 | Sharp Corp | 並列データ検索処理装置 |
US6148377A (en) | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
JPH10232788A (ja) * | 1996-12-17 | 1998-09-02 | Fujitsu Ltd | 信号処理装置及びソフトウェア |
US6151688A (en) | 1997-02-21 | 2000-11-21 | Novell, Inc. | Resource management in a clustered computer system |
US5822748A (en) * | 1997-02-28 | 1998-10-13 | Oracle Corporation | Group by and distinct sort elimination using cost-based optimization |
US6047081A (en) | 1997-10-24 | 2000-04-04 | Imation Corp. | Image processing software system having configurable communication pipelines |
US6292705B1 (en) | 1998-09-29 | 2001-09-18 | Conexant Systems, Inc. | Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system |
US20010049780A1 (en) | 1998-03-27 | 2001-12-06 | Shreekant Thakkar | Method and apparatus for performing integer operations in response to a result of a floating point operation |
US6230240B1 (en) | 1998-06-23 | 2001-05-08 | Hewlett-Packard Company | Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface |
WO2000008552A1 (en) | 1998-08-06 | 2000-02-17 | Koninklijke Philips Electronics N.V. | Data processor and method of processing data |
JP3583657B2 (ja) | 1998-09-30 | 2004-11-04 | 株式会社東芝 | 中継装置及び通信装置 |
US6633891B1 (en) | 1998-11-24 | 2003-10-14 | Oracle International Corporation | Managing replacement of data in a cache on a node based on caches of other nodes |
US6434545B1 (en) * | 1998-12-16 | 2002-08-13 | Microsoft Corporation | Graphical query analyzer |
JP2000261674A (ja) | 1999-03-09 | 2000-09-22 | Fujitsu Ltd | 画像伸長装置 |
US6295571B1 (en) | 1999-03-19 | 2001-09-25 | Times N Systems, Inc. | Shared memory apparatus and method for multiprocessor systems |
US6826522B1 (en) | 1999-06-21 | 2004-11-30 | Pts Corporation | Methods and apparatus for improved efficiency in pipeline simulation and emulation |
US6349310B1 (en) * | 1999-07-06 | 2002-02-19 | Compaq Computer Corporation | Database management system and method for accessing rows in a partitioned table |
US6671797B1 (en) | 2000-02-18 | 2003-12-30 | Texas Instruments Incorporated | Microprocessor with expand instruction for forming a mask from one bit |
US6697919B2 (en) | 2000-06-10 | 2004-02-24 | Hewlett-Packard Development Company, L.P. | System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system |
US7383424B1 (en) * | 2000-06-15 | 2008-06-03 | Hewlett-Packard Development Company, L.P. | Computer architecture containing processor and decoupled coprocessor |
CN1459060A (zh) | 2000-08-14 | 2003-11-26 | 李在学 | 多功能的pda |
US6898693B1 (en) * | 2000-11-02 | 2005-05-24 | Intel Corporation | Hardware loops |
US6917987B2 (en) * | 2001-03-26 | 2005-07-12 | Intel Corporation | Methodology and mechanism for remote key validation for NGIO/InfiniBand™ applications |
US6745174B2 (en) | 2001-03-29 | 2004-06-01 | Hewlett-Packard Development Company, L.P. | Method of executing before-triggers in an active database |
US7013353B2 (en) * | 2001-03-30 | 2006-03-14 | Intel Corporation | Host-fabric adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem |
US20020188830A1 (en) | 2001-06-01 | 2002-12-12 | Brian Boles | Bit replacement and extraction instructions |
US6789143B2 (en) * | 2001-09-24 | 2004-09-07 | International Business Machines Corporation | Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries |
US6748499B2 (en) * | 2001-11-15 | 2004-06-08 | International Business Machines Corporation | Sharing memory tables between host channel adapters |
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 |
US6757790B2 (en) | 2002-02-19 | 2004-06-29 | Emc Corporation | Distributed, scalable data storage facility with cache memory |
JP2003308334A (ja) * | 2002-04-15 | 2003-10-31 | Nippon Telegr & Teleph Corp <Ntt> | 情報検索方法及び装置、情報検索プログラム、情報検索プログラムを記録した記録媒体 |
US7249118B2 (en) | 2002-05-17 | 2007-07-24 | Aleri, Inc. | Database system and methods |
US7197647B1 (en) | 2002-09-30 | 2007-03-27 | Carnegie Mellon University | Method of securing programmable logic configuration data |
US6842848B2 (en) | 2002-10-11 | 2005-01-11 | Sandbridge Technologies, Inc. | Method and apparatus for token triggered multithreading |
US20060098649A1 (en) | 2004-11-10 | 2006-05-11 | Trusted Network Technologies, Inc. | System, apparatuses, methods, and computer-readable media for determining security realm identity before permitting network connection |
US7730292B2 (en) | 2003-03-31 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | Parallel subword instructions for directing results to selected subword locations of data processor result register |
US20040260182A1 (en) | 2003-06-23 | 2004-12-23 | Zuluaga Andres F. | Intraluminal spectroscope with wall contacting probe |
US7006021B1 (en) * | 2003-06-27 | 2006-02-28 | Cypress Semiconductor Corp. | Low power serializer circuit and method |
US7047252B2 (en) | 2003-12-02 | 2006-05-16 | Oracle International Corporation | Complex computation across heterogenous computer systems |
US7664938B1 (en) | 2004-01-07 | 2010-02-16 | Xambala Corporation | Semantic processor systems and methods |
JP2006004274A (ja) * | 2004-06-18 | 2006-01-05 | Nippon Telegr & Teleph Corp <Ntt> | 対話処理装置、対話処理方法及び対話処理プログラム |
US7516121B2 (en) * | 2004-06-23 | 2009-04-07 | Oracle International Corporation | Efficient evaluation of queries using translation |
US20060075236A1 (en) * | 2004-09-30 | 2006-04-06 | Marek James A | Method and apparatus for high assurance processing |
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 |
US7814104B2 (en) | 2005-05-04 | 2010-10-12 | Oracle International Corporation | Techniques for partition pruning |
US7725595B1 (en) * | 2005-05-24 | 2010-05-25 | The United States Of America As Represented By The Secretary Of The Navy | Embedded communications system and method |
US7877379B2 (en) * | 2005-09-30 | 2011-01-25 | Oracle International Corporation | Delaying evaluation of expensive expressions in a query |
US8817029B2 (en) | 2005-10-26 | 2014-08-26 | Via Technologies, Inc. | GPU pipeline synchronization and control system and method |
GB0524720D0 (en) * | 2005-12-05 | 2006-01-11 | Imec Inter Uni Micro Electr | Ultra low power ASIP architecture II |
US7861060B1 (en) | 2005-12-15 | 2010-12-28 | Nvidia Corporation | Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior |
US8024797B2 (en) * | 2005-12-21 | 2011-09-20 | Intel Corporation | Method, apparatus and system for performing access control and intrusion detection on encrypted data |
US8255922B1 (en) | 2006-01-09 | 2012-08-28 | Oracle America, Inc. | Mechanism for enabling multiple processes to share physical memory |
US8049760B2 (en) | 2006-02-06 | 2011-11-01 | Via Technologies, Inc. | System and method for vector computations in arithmetic logic units (ALUs) |
US20080010417A1 (en) * | 2006-04-28 | 2008-01-10 | Zeffer Hakan E | Read/Write Permission Bit Support for Efficient Hardware to Software Handover |
US7509460B2 (en) * | 2006-05-04 | 2009-03-24 | Sun Microsystems, Inc. | DRAM remote access cache in local memory in a distributed shared memory system |
US7783862B2 (en) | 2006-08-07 | 2010-08-24 | International Characters, Inc. | Method and apparatus for an inductive doubling architecture |
US20080065835A1 (en) * | 2006-09-11 | 2008-03-13 | Sun Microsystems, Inc. | Offloading operations for maintaining data coherence across a plurality of nodes |
US8533216B2 (en) | 2006-10-30 | 2013-09-10 | Teradata Us, Inc. | Database system workload management method and system |
WO2008063974A2 (en) * | 2006-11-13 | 2008-05-29 | Exegy Incorporated | Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors |
US7660793B2 (en) | 2006-11-13 | 2010-02-09 | Exegy Incorporated | Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors |
US20080162876A1 (en) | 2006-12-28 | 2008-07-03 | International Business Machines Corporation | dedicated hardware processor for structured query language (sql) transactions |
US8504791B2 (en) | 2007-01-26 | 2013-08-06 | Hicamp Systems, Inc. | Hierarchical immutable content-addressable memory coprocessor |
US7792822B2 (en) * | 2007-03-02 | 2010-09-07 | Microsoft Corporation | Systems and methods for modeling partitioned tables as logical indexes |
US8032499B2 (en) | 2007-05-21 | 2011-10-04 | Sap Ag | Compression of tables based on occurrence of values |
US7769729B2 (en) | 2007-05-21 | 2010-08-03 | Sap Ag | Block compression of tables with repeated values |
US20090037700A1 (en) | 2007-07-30 | 2009-02-05 | Clear Falls Pty Ltd | Method and system for reactively assigning computational threads of control between processors |
US7882210B2 (en) | 2007-08-02 | 2011-02-01 | Sap Ag | Dynamic agent formation for efficient data provisioning |
CN101796823B (zh) * | 2007-09-05 | 2012-05-23 | 国立大学法人东北大学 | 固体摄像元件以及摄影装置 |
US20090070765A1 (en) | 2007-09-11 | 2009-03-12 | Bea Systems, Inc. | Xml-based configuration for event processing networks |
HUE042697T2 (hu) | 2007-09-24 | 2019-07-29 | Hasso Plattner Inst Fuer Digital Engineering Ggmbh | ETL kisebb nulla redundancia rendszer és eljárás OLTP adatok jelentésére |
CN100495404C (zh) * | 2007-11-22 | 2009-06-03 | 中国人民解放军国防科学技术大学 | 基于流处理的生物序列数据库搜索多层次加速方法 |
US7991794B2 (en) | 2007-12-18 | 2011-08-02 | Oracle International Corporation | Pipelining operations involving DML and query |
CN101227689B (zh) * | 2007-12-27 | 2011-01-19 | 华为技术有限公司 | 信息上报方法及装置 |
US7769726B2 (en) | 2007-12-31 | 2010-08-03 | Sap, Ag | Method for verification of data and metadata in a data repository |
US8258952B2 (en) * | 2008-03-14 | 2012-09-04 | The Invention Science Fund I, Llc | System for treating at least one plant including a treatment apparatus and an electronic tag interrogator |
US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
US8732386B2 (en) * | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
US20090289861A1 (en) * | 2008-05-20 | 2009-11-26 | Infineon Technologies Ag | Radio frequency communication devices and methods |
JP2010003266A (ja) * | 2008-06-23 | 2010-01-07 | Nippon Telegr & Teleph Corp <Ntt> | クエリ生成装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体 |
US8271564B2 (en) * | 2008-07-14 | 2012-09-18 | Symbol Technologies, Inc. | Lookup table arrangement and related management method for accommodating concurrent processors |
US8626725B2 (en) * | 2008-07-31 | 2014-01-07 | Microsoft Corporation | Efficient large-scale processing of column based data encoded structures |
US8108361B2 (en) * | 2008-07-31 | 2012-01-31 | Microsoft Corporation | Efficient column based data encoding for large-scale data storage |
US8275815B2 (en) | 2008-08-25 | 2012-09-25 | International Business Machines Corporation | Transactional processing for clustered file systems |
US20100088309A1 (en) | 2008-10-05 | 2010-04-08 | Microsoft Corporation | Efficient large-scale joining for querying of column based data encoded structures |
US8725707B2 (en) | 2009-03-26 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Data continuous SQL process |
US8935223B2 (en) | 2009-04-30 | 2015-01-13 | Oracle International Corporation | Structure of hierarchical compressed data structure for tabular data |
US8285709B2 (en) | 2009-05-12 | 2012-10-09 | Teradata Us, Inc. | High-concurrency query operator and method |
US9304767B2 (en) * | 2009-06-02 | 2016-04-05 | Oracle America, Inc. | Single cycle data movement between general purpose and floating-point registers |
US8789173B2 (en) * | 2009-09-03 | 2014-07-22 | Juniper Networks, Inc. | Protecting against distributed network flood attacks |
US8356185B2 (en) * | 2009-10-08 | 2013-01-15 | Oracle America, Inc. | Apparatus and method for local operand bypassing for cryptographic instructions |
US8832142B2 (en) | 2010-08-30 | 2014-09-09 | Oracle International Corporation | Query and exadata support for hybrid columnar compressed data |
US8270967B1 (en) * | 2010-02-09 | 2012-09-18 | Sprint Spectrum, L.P. | Overriding a most-recently-used (MRU) table for system acquisition |
US8868508B2 (en) * | 2010-02-09 | 2014-10-21 | Google Inc. | Storage of data in a distributed storage system |
US8856593B2 (en) * | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US8516268B2 (en) | 2010-08-23 | 2013-08-20 | Raytheon Company | Secure field-programmable gate array (FPGA) architecture |
CN101944077B (zh) * | 2010-09-02 | 2011-10-19 | 东莞市泰斗微电子科技有限公司 | 一种主处理器和协处理器之间的通讯接口及其控制方法 |
CN201804331U (zh) * | 2010-09-21 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种基于协处理器的重复数据删除系统 |
US8260803B2 (en) * | 2010-09-23 | 2012-09-04 | Hewlett-Packard Development Company, L.P. | System and method for data stream processing |
US8938644B2 (en) | 2010-12-03 | 2015-01-20 | Teradata Us, Inc. | Query execution plan revision for error recovery |
US8972746B2 (en) | 2010-12-17 | 2015-03-03 | Intel Corporation | Technique for supporting multiple secure enclaves |
FR2969156B1 (fr) | 2010-12-21 | 2013-02-08 | Chryso | Polymere comportant une fonction hydrolysable utilisable comme fluidifiant |
US8996463B2 (en) | 2012-07-26 | 2015-03-31 | Mongodb, Inc. | Aggregation framework system architecture and method |
US8666970B2 (en) * | 2011-01-20 | 2014-03-04 | Accenture Global Services Limited | Query plan enhancement |
CA2859999A1 (en) * | 2011-01-25 | 2012-08-02 | Cognivue Corporation | Apparatus and method of vector unit sharing |
US20120303633A1 (en) | 2011-05-26 | 2012-11-29 | International Business Machines Corporation | Systems and methods for querying column oriented databases |
US8756363B2 (en) | 2011-07-07 | 2014-06-17 | Oracle International Corporation | Efficient storage of memory version data |
US8572441B2 (en) | 2011-08-05 | 2013-10-29 | Oracle International Corporation | Maximizing encodings of version control bits for memory corruption detection |
US8601473B1 (en) * | 2011-08-10 | 2013-12-03 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment |
US8572131B2 (en) | 2011-12-08 | 2013-10-29 | Oracle International Corporation | Techniques for more efficient usage of memory-to-CPU bandwidth |
US9342314B2 (en) | 2011-12-08 | 2016-05-17 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors |
US9697174B2 (en) | 2011-12-08 | 2017-07-04 | Oracle International Corporation | Efficient hardware instructions for processing bit vectors for single instruction multiple data processors |
US9792117B2 (en) | 2011-12-08 | 2017-10-17 | Oracle International Corporation | Loading values from a value vector into subregisters of a single instruction multiple data register |
US20140223140A1 (en) | 2011-12-23 | 2014-08-07 | Intel Corporation | Systems, apparatuses, and methods for performing vector packed unary encoding using masks |
CN104094218B (zh) | 2011-12-23 | 2017-08-29 | 英特尔公司 | 用于执行写掩码寄存器到向量寄存器中的一系列索引值的转换的系统、装置和方法 |
WO2014033606A2 (en) | 2012-08-31 | 2014-03-06 | Pradeep Varma | Systems and methods of memory and access management |
US9292569B2 (en) | 2012-10-02 | 2016-03-22 | Oracle International Corporation | Semi-join acceleration |
US8930409B2 (en) | 2012-10-15 | 2015-01-06 | Oracle International Corporation | System and method for supporting named operations in a distributed data grid |
US9043559B2 (en) | 2012-10-23 | 2015-05-26 | Oracle International Corporation | Block memory engine with memory corruption detection |
US9244829B2 (en) * | 2012-12-20 | 2016-01-26 | Oracle International Corporation | Method and system for efficient memory region deallocation |
US9471590B2 (en) * | 2013-02-12 | 2016-10-18 | Atlantis Computing, Inc. | Method and apparatus for replicating virtual machine images using deduplication metadata |
US9898414B2 (en) | 2014-03-28 | 2018-02-20 | Oracle International Corporation | Memory corruption detection support for distributed shared memory applications |
-
2013
- 2013-02-26 US US13/778,013 patent/US9292569B2/en active Active
- 2013-02-26 US US13/778,009 patent/US9063974B2/en active Active
- 2013-02-27 US US13/778,307 patent/US9158810B2/en active Active
- 2013-03-07 US US13/789,524 patent/US9251272B2/en active Active
- 2013-03-14 US US13/828,555 patent/US10223116B2/en active Active
- 2013-03-15 US US13/839,525 patent/US9372813B2/en active Active
- 2013-03-15 US US13/838,542 patent/US9400821B2/en active Active
- 2013-06-14 EP EP13734557.5A patent/EP2904514B1/en active Active
- 2013-06-14 CN CN201380049816.7A patent/CN104662538B/zh active Active
- 2013-06-14 WO PCT/US2013/045873 patent/WO2014055137A1/en active Application Filing
- 2013-06-14 JP JP2015534471A patent/JP6320393B2/ja active Active
- 2013-06-14 EP EP13733171.6A patent/EP2904513B1/en active Active
- 2013-06-14 WO PCT/US2013/045881 patent/WO2014055138A1/en active Application Filing
- 2013-06-14 CN CN201380049301.7A patent/CN104662534B/zh active Active
- 2013-06-14 CN CN201810434459.0A patent/CN108664596B/zh active Active
- 2013-06-27 WO PCT/US2013/048110 patent/WO2014055145A1/en active Application Filing
- 2013-06-27 CN CN201380051875.8A patent/CN104704491B/zh active Active
- 2013-06-27 ES ES13737064T patent/ES2880268T3/es active Active
- 2013-06-27 EP EP13737064.9A patent/EP2904515B1/en active Active
- 2013-07-22 US US13/947,674 patent/US9557997B2/en active Active
- 2013-09-30 EP EP13777395.8A patent/EP2904521B1/en active Active
- 2013-09-30 CN CN201380057680.4A patent/CN104769591B/zh active Active
- 2013-09-30 WO PCT/US2013/062718 patent/WO2014055443A1/en active Application Filing
- 2013-10-01 EP EP13777400.6A patent/EP2904499B1/en active Active
- 2013-10-01 CN CN201380057937.6A patent/CN104769561B/zh active Active
- 2013-10-01 EP EP13783718.3A patent/EP2904500B1/en active Active
- 2013-10-01 WO PCT/US2013/062880 patent/WO2014055526A1/en active Application Filing
- 2013-10-01 WO PCT/US2013/062859 patent/WO2014055512A1/en active Application Filing
- 2013-10-01 CN CN201380051672.9A patent/CN104756091B/zh active Active
-
2015
- 2015-05-11 US US14/709,302 patent/US9542443B2/en active Active
- 2015-12-10 US US14/964,805 patent/US10055224B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1704922A (zh) * | 2004-06-03 | 2005-12-07 | 英特尔公司 | 在多处理器系统中启动安全内核 |
CN102184365A (zh) * | 2011-06-07 | 2011-09-14 | 郑州信大捷安信息技术有限公司 | 基于SoC芯片外部数据安全存储架构及存取控制方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104756091B (zh) | 基于远程密钥的存储器缓冲区访问控制机制 | |
US20220198410A1 (en) | Providing data provenance, permissioning, compliance, and access control for data storage systems using an immutable ledger overlay network | |
JP4956292B2 (ja) | 情報セキュリティ装置およびカウンタ制御方法 | |
TWI676116B (zh) | 安全儲存系統以及用於安全儲存的方法 | |
CN104836862B (zh) | 一种智能终端数据存储方法 | |
JP6026630B2 (ja) | メモリシステム | |
US20100268936A1 (en) | Information security device and information security system | |
CN107408192A (zh) | 保护存储器 | |
US11449627B2 (en) | Tokenization in a cloud based environment | |
JP2007028502A (ja) | ストレージ装置 | |
US8284944B2 (en) | Unified and persistent system and method for automatic configuration of encryption | |
JP5330104B2 (ja) | ストレージ装置及び認証方法 | |
US20140157429A1 (en) | License management device, license management system, license management method, and program | |
US20140245427A1 (en) | Storage system in which fictitious information is prevented | |
JP2015526049A (ja) | キーローテーション情報を有するメタデータツリー | |
JP5139028B2 (ja) | コンテンツデータ管理システム及び方法 | |
US11625385B2 (en) | Method and apparatus for managing data based on blockchain | |
JP5848685B2 (ja) | ストレージシステム | |
US20130097423A1 (en) | Processing device and computer-readable recording medium having stored therein processing program | |
WO2022227799A1 (zh) | 设备注册方法及装置、计算机设备、存储介质 | |
US11509719B2 (en) | Blockchain technology in data storage system | |
CN104836816B (zh) | 一种移动设备数据存储方法 | |
JP3996022B2 (ja) | 複数サービス利用者に対するicカードサービス利用許可方法及びシステム | |
KR102526112B1 (ko) | 동형 암호 연산을 위한 키 관리 시스템 및 그 동작 방법 | |
JP7219729B2 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |