CN104756091B - 基于远程密钥的存储器缓冲区访问控制机制 - Google Patents

基于远程密钥的存储器缓冲区访问控制机制 Download PDF

Info

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
Application number
CN201380051672.9A
Other languages
English (en)
Other versions
CN104756091A (zh
Inventor
S·卡皮尔
G·F·斯沃特
A·安格冉
W·H·布瑞治
S·加拉斯
J·G·约翰逊
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN104756091A publication Critical patent/CN104756091A/zh
Application granted granted Critical
Publication of CN104756091B publication Critical patent/CN104756091B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/082Associative directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • 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/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7885Runtime interface, e.g. data exchange, runtime control
    • G06F15/7889Reconfigurable logic implemented as a co-processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/24569Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting 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
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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所述的系统:
其中,第一远程密钥还包括高速缓存指示符,其指示来自第二节点的命令应当被高速缓存;
其中,所选择的第一节点协同处理器还被配置为基于所述高速缓存指示符来有选择地高速缓存来自第二节点的命令和相关联的数据。
CN201380051672.9A 2012-10-02 2013-10-01 基于远程密钥的存储器缓冲区访问控制机制 Active CN104756091B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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

Publication number Publication date
US9400821B2 (en) 2016-07-26
US20140095805A1 (en) 2014-04-03
CN104769561B (zh) 2018-01-12
US9557997B2 (en) 2017-01-31
CN104662538B (zh) 2018-05-18
EP2904514B1 (en) 2020-03-25
US20140095651A1 (en) 2014-04-03
US20150261871A1 (en) 2015-09-17
CN104769591A (zh) 2015-07-08
US9251272B2 (en) 2016-02-02
US20140095468A1 (en) 2014-04-03
CN104769561A (zh) 2015-07-08
US20140095810A1 (en) 2014-04-03
EP2904515A1 (en) 2015-08-12
WO2014055138A1 (en) 2014-04-10
US20150026434A1 (en) 2015-01-22
US20140095534A1 (en) 2014-04-03
WO2014055137A1 (en) 2014-04-10
CN104662538A (zh) 2015-05-27
US20160098364A1 (en) 2016-04-07
CN104662534A (zh) 2015-05-27
CN104756091A (zh) 2015-07-01
US9372813B2 (en) 2016-06-21
WO2014055512A1 (en) 2014-04-10
EP2904500A1 (en) 2015-08-12
CN104769591B (zh) 2018-08-03
CN104704491B (zh) 2018-04-10
EP2904514A1 (en) 2015-08-12
EP2904521A1 (en) 2015-08-12
US10055224B2 (en) 2018-08-21
WO2014055526A1 (en) 2014-04-10
US10223116B2 (en) 2019-03-05
ES2880268T3 (es) 2021-11-24
EP2904515B1 (en) 2021-05-12
US20140095748A1 (en) 2014-04-03
CN108664596A (zh) 2018-10-16
WO2014055443A1 (en) 2014-04-10
US20140096145A1 (en) 2014-04-03
EP2904499B1 (en) 2020-04-22
CN104704491A (zh) 2015-06-10
US9063974B2 (en) 2015-06-23
US9542443B2 (en) 2017-01-10
EP2904513B1 (en) 2021-04-07
EP2904513A1 (en) 2015-08-12
EP2904499A1 (en) 2015-08-12
JP2015535999A (ja) 2015-12-17
CN104662534B (zh) 2018-05-25
EP2904500B1 (en) 2020-08-19
CN108664596B (zh) 2021-07-27
WO2014055145A1 (en) 2014-04-10
US9158810B2 (en) 2015-10-13
EP2904521B1 (en) 2018-10-24
JP6320393B2 (ja) 2018-05-09
US9292569B2 (en) 2016-03-22

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