CN104769561A - 能够实现不同物理域地址空间的节点间的聚类的存储总线协议 - Google Patents

能够实现不同物理域地址空间的节点间的聚类的存储总线协议 Download PDF

Info

Publication number
CN104769561A
CN104769561A CN201380057937.6A CN201380057937A CN104769561A CN 104769561 A CN104769561 A CN 104769561A CN 201380057937 A CN201380057937 A CN 201380057937A CN 104769561 A CN104769561 A CN 104769561A
Authority
CN
China
Prior art keywords
node
rkey
data
coprocessor
remote node
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.)
Granted
Application number
CN201380057937.6A
Other languages
English (en)
Other versions
CN104769561B (zh
Inventor
S·卡皮尔
Z·拉多维克
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 CN104769561A publication Critical patent/CN104769561A/zh
Application granted granted Critical
Publication of CN104769561B publication Critical patent/CN104769561B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/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/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
    • 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

公开一种在集群中的节点之间传送数据和消息的系统和方法。集群中的各个节点是单独的物理域,但是通过点对点高速链路而连接到集群中的其它节点。链路的每一侧被耦接到帮助数据在节点之间移动的协处理器。由于各个物理域与任何其它域分开,因此物理域中的协处理器利用称为RKey的证书获得将数据传送给另一个物理域的许可。当从另一个物理域收到RKey时,接收域中的协处理器验证该密钥,获得与该密钥关联的物理地址,使得它能够提供或接收远程数据。也允许集群中的各对远程节点之间的数据传送。

Description

能够实现不同物理域地址空间的节点间的聚类的存储总线协议
相关申请的交叉引用;优先权要求
本申请要求2012年10月2日提交的美国申请61/709,142,“TECHNIQUES FOR ACCELERATING DATABASEOPERATIONS”的优先权,该申请的整个内容通过引用并入于此,如同在此被完整地阐述一样。
本申请通过引用包含与本申请同日提交的美国申请(卷号No.50277-4091)“REMOTE-KEY BASED MEMORY BUFFERACCESS CONTROL MECHANISM”的整个内容,如同该申请在此被完整地阐述一样。
技术领域
本发明一般地涉及改善集群中的节点间通信的协处理器,并且更具体地,涉及处理用于改善节点间通信的链路到链路协议的协处理器。
背景技术
单个处理系统的性能已极大地增强。然而,利用处理系统或节点的集群,可获得更高的性能。获得高性能集群的关键因素是节点间的通信。图1描述一种早期技术,其中每个都具有自己的CPU 108a-c和本地存储器110a-c的处理节点102、104、106通过公共总线110经由接口112a-c被相互耦接。各个节点102、104、106被允许访问其它节点的存储器,使得这些处理节点可被看作共享一个大型存储器。这种共享总线体系结构的一个缺点在于总线很快变成性能限制要素,因为所有的节点间通信列队竞争使用总线。一旦总线110变得饱和或几乎饱和,增加额外的节点几乎不能带来改善。
在认识到共享总线体系结构的缺点的情况下,采用了图2中描述的另一种技术。图2中,集群中包含CPU 216a-e和存储器218a-e的节点202、204、206、208、210通过专用高速点对点通信链路220a-j互连。如果使用足够的点对点连接220a-j来创建链路的架构,则可实现更高的性能,因为不存在共享总线争用。然而,点对点通信链路220a-j遵守复杂的分层通信协议,以保证通信的正确性和鲁棒性。这种体系结构要求接口214a-t中的I/O处理器执行这种复杂协议以及转换和验证源地址和目的地地址。因为在执行所述协议和地址转换方面,I/O处理器通常比主CPU慢得多,并且因为接口和相应节点的存储器之间的耦接不良,因而执行这些通信任务会降低性能。从而,尽管在集群中实现较高的性能,但是通信开销和不良的耦接导致性能增益达到上限。
本节中说明的方法是可推行的方法,不过不一定是以前已构思或推行的方法。于是,除非另有说明,否则应认为在本节中说明的任何方法仅仅由于被包含在本节中而被当作现有技术。
发明内容
实施例提供一种集群中的节点间通信,它具有很低的开销,并且允许节点之间的直接存储器到存储器通信,其中每个节点驻留于单独的物理地址空间。所述实施例改善了通信延迟和带宽,并提供物理地址空间之间的硬件认证访问和错误检验。所述实施例提高集群的性能,允许集群表现得更像单一系统。所述实施例还允许更大数目的节点,因为性能与节点的数目成比例。
所述实施例使得能够包含在节点本地的高速非易失性存储器,比如PCM(相变存储器)或者NVRAM,并能够在分布式集群环境中高带宽地共享存储器。
一个实施例是一种计算机系统,所述计算机系统包括多个计算节点和多个点对点物理通信链路。所述多个计算节点中的每个计算节点包括协处理器和与该协处理器耦接的存储器,其中每个存储器驻留于单独并且不同的物理域中。所述多个链路中的一个或多个通信链路耦接在所述多个节点中的每对节点之间,其中节点中的每个协处理器耦接到所述一个或多个通信链路,以通过至少一个通信链路传送数据。每个协处理器被配置成利用准许访问另一个节点中的存储器的一部分的证书,在耦接到协处理器的存储器和该协处理器通过一个或多个通信链路所耦接到的所述另一个节点的存储器之间传送数据,或者利用授予对另外两个节点中的第一个节点之中的存储器的一部分的访问权限的第一证书以及授予对另外两个节点中的第二个节点之中的存储器的一部分的访问权限的第二证书,在集群中该协处理器通过一个或多个通信链路所耦接到的另外两个节点之间传送数据。
附图说明
图1表示共享总线体系结构;
图2表示交换架构体系结构;
图3描述实施例在其中工作的集群;
图4A描述图3的集群中的一对节点;
图4B描述协处理器及其接口;
图5描述节点之间的地址空间的模型;
图6描述管理程序和协处理器之间的同步;
图7描述本地节点和远程节点之间的命令操作;
图8描述两个远程节点之间的命令操作;以及
图9是示例的计算机系统。
具体实施方式
在下面的说明中,为了解释起见,阐述了众多的具体细节,以便提供对本发明的透彻理解。然而,显然可在没有这些具体细节的情况下实践本发明。在其它情况下,以框图形式示出公知的结构和设备,以避免不必要地使本发明变得晦涩难懂。
图3描述实施例在其中工作的示例集群。集群中的各个节点302、304、306、308、310包括主CPU 312a-e、协处理器314a-e和存储器316a-e。图3在每个节点中示出单一CPU和单一协处理器,以简化附图;实际上,节点通常包含许多CPU,而且每个CPU通常包含许多协处理器。每个协处理器314a-e直接对接点对点链路320a-j,并直接耦接到相应节点的物理存储器316a-e。在此使用的术语协处理器指的是不同的处理实体,但是不一定是与CPU或其它处理器分离的不同物理设备。例如,协处理器可以是CPU中的核。有利的是,随着集群中CPU的数目的增大,节点中的协处理器和可寻址存储器的数目也增大。这带来随着节点中CPU的数目的增大,节点维持其性能,尤其是与通过链路的通信有关的性能的好处。唯一的限制是节点之间的点对点连接的带宽。更高速的连接或者更多的连接可减轻这种限制。
节点体系结构和协处理器接口
图4A描述图3的集群中的一对示例节点402、404。图4A中简化了该对节点和它们之间的连接;实际上,考虑到可靠性,每个节点经由多个链路连接到自冗余交换机,使得即使多个链路发生故障或者交换机发生故障,系统也可维持运转。分别在各个节点402、404中的协处理器406a-b通过高速点对点链路408互连,在各端由缓冲器410a、410b缓存。每个节点402、404的主处理器412a-b(实际上是许多多核CPU)和协处理器406a-b(实际上是许多协处理器)都包括到每个节点402、404中的相应物理存储器418a-b的存储器接口414a-b、416a-b。如果主处理器412a-b具有L3高速缓存420a、b,那么协处理器406a、b可以访问该高速缓存,使得它能够更新其内容。这种情况下,高速缓存一致性协议维持主存储器418a、b和存在的任何其它L3高速缓存之间的一致性。作为选择,如果协处理器406a、b直接更新主存储器,那么高速缓存一致性协议维持任何存在的L3高速缓存420a、b和主存储器418a、b之间的一致性。各个协处理器406a-b的物理存储器接口416a-b提供对如下所述的管理程序接口和用户接口的访问,所述管理程序接口和用户接口都驻留于物理存储器418a-b中。
图4B描述协处理器406a-b及其接口416a-b、452、454。协处理器406a-b包括存储器接口416a-b、处理协处理器命令的流式管道456、在协处理器管道456中调度命令的命令调度器458,和按照向协处理器发布的数据移动命令在物理域内或在物理域之间移动数据的数据传送机466。
存储器接口416a-b将协处理器406a-b耦接到管理程序接口452和耦接到用户接口454,管理程序接口452和用户接口454都驻留于物理存储器418a-b中。
协处理器406a-b中的数据传送机466通过存储器接口416a-b被耦接到物理存储器418a-b,并执行进出协处理器406a-b所耦接到的任何物理链路和物理存储器418a-b的数据传送,而不涉及节点中的处理器412a-b。
管理程序接口
图4B中描述的特定节点的管理程序接口452支持多线程软件管理程序460,多线程软件管理程序460是提供在节点中的主CPU上运行的操作系统(OS)和/或用户代码与协处理器之间的API接口,从而提供对协处理器的安全访问的特殊多线程驱动器。管理程序通过管理程序接口452向协处理器406a-b发布命令,并且包括命令队列462、用于协处理器406a-b的状态寄存器csr 464和协处理器用来验证RKey以及查寻它们的关联物理地址的RKey表468,其中RKey是授予对远程节点(即,通过点对点链路连接到图4B中的节点的一个节点)的物理存储器的访问权限的证书。由于在不增加任何硬件的情况下,RKey表以及由此RKey的数目随着节点数而增大,因此集群的可扩展性只受节点之间的通信链路的带宽限制。
命令队列462包含命令,每个命令均采取下面说明的协处理器控制块(CCB)的形式。在一个实施例中,命令队列462是循环队列(也称为环形缓冲器),包含最多16个条目。在一个实施例中,对于流式管道456,协处理器406a-b支持8个命令队列和1个优先队列。
协处理器状态寄存器csr 464提供用于配置协处理器406a-b和同步协处理器406a-b的信息。管理程序460可以访问内部协处理器状态寄存器csr 464中的一个或多个,比如管理程序460用来使向协处理器406a-b的命令的发布同步的门铃寄存器,和在启动时配置协处理器406a-b以及读取错误日志和状态的状态寄存器。
用户接口
用户接口454支持用户代码区470,用户代码区470提供用于数据移动命令的一个或多个数据区472,和用于命令结果的完成数据结构474。完成数据结构474是由管理协处理器的管理程序分配的公共区。公共区的位置被传送给OS,并且为可以访问该公共区的所有软件可见。由协处理器406a-b使用以用于输入和输出数据的每个数据区472可由存在于物理域中的任意协处理器访问以用于数据传送,并且永久驻留(即免于被调页或交换到物理存储器之外)于存储器418a-b的物理相邻区域中。访问用于远程节点的输入和输出数据区需要RKey。
在命令结束时,协处理器更新完成数据结构474,以与可以访问完成数据结构474的管理程序460再同步。完成数据结构474用于以下功能:用信号向用户通知完成、将命令返回值传送给用户、与用户建立流控制、用信号通知用户可见错误、记录用户可见命令统计信息。
流式管道
流式管道456是多线程的,并且执行将数据从一个存储器位置移动到另一个存储器位置的命令。源和/或目的地可以是非本地的,即,在远程节点中。流式管道还帮助其它远程流式管道移动数据。
命令调度器
在假定命令将被并行执行的情况下,命令调度器458为流式管道456的可用线程调度命令。在一个实施例中,串行化标记使两个命令被顺序执行。
物理域
图4A中的各个节点402、404在单独的物理域中工作,所述物理域是只有本地处理器和协处理器有权访问的隔离的不同地址空间。从而,使节点中的操作和地址空间与其它节点隔开。物理点对点链路408提供物理域之间的通信机构,使得集群能够作为一体化单元工作。
图5描述节点之间的地址空间的模型。图5中包括两个示例的物理域PDOMl 502和PDOM2504,不过物理域的数目和集群中的节点的数目相同。每个物理域502、504包括多个本地密钥(LKey)506、508、510,本地密钥是提供对在物理域本地的唯一物理地址空间的访问权限的密钥。本地密钥与物理域的物理地址空间的较大物理相邻部分关联,并被分配给在物理域本地的用户过程。在图5中,PDOM1具有本地密钥LKey1506、LKey2508、LKey3510。PDOM2504具有本地密钥LKey4512、LKey5514、LKey6516。
远程密钥(RKey)与具有LKey的存储区域的窗口关联。每个LKey可包括一个或多个RKey以及关联的存储区域。RKey将远程访问权限从物理域中的一个给定的本地密钥授予远程物理域中的另一个本地密钥。受RKey保护的存储器的一部分的远程用户提供RKey,以访问存储器的所述部分。当收到RKey时,协处理器验证该密钥,并且如果验证成功,则继续进行所述命令。图5将PDOM1中的LKey1描述成包括RKey1520和RKey2522。LKey2508包括RKey3524,LKey3510包括RKey4526。在PDOM2504中,LKey4512包括RKey5528和RKey6530,而LKey5514包括RKey7534,而LKey6516包括RKey8536。图5另外描述了被PDOM1502中的RKey2522覆盖的区域和被PDOM2504中的RKey7534覆盖的区域之间的请求540。
在一个实施例中,RKey包括以下数据项。
RKey={Hash,Size,PA,SecretNo,Flags},其中
Hash={Encrypt(Size,Flags,Address,SecretNo)};Encrypt可以是任意流行的快速加密模式;PA是与RKey关联的物理地址;Size是其中RKey有效的区域的大小;Address包含远程物理域中的物理地址;SecretNo是用来生成Hash的16个数之一;并且Flags指示存储区是可读、可写还是高速缓存更新。
在一个实施例中,如在Size字段中指定的一样,RKey可覆盖小到1KB或者大至1TB的存储区域。
密钥设置
集群中的集中配置程序监督为集群的运转所需的所有源和目的地密钥的建立。在初始化时刻,集中配置程序向各个节点中的管理程序发送命令,所述命令指定LKey、驻留于LKey中的RKey、RKey覆盖的区域的大小以及指定可读、可写或者高速缓存更新的访问模式。当收到用户命令时,管理程序创建RKey,执行加密以创建散列,并在管理程序所工作的节点的物理存储器中填充RKey表。拥有包含特定RKey表的存储器的节点被称为表中的密钥的“归属节点”。“归属节点”通过网络将其RKey发送给其它节点,使得该节点能够参与数据传送。操作中,在其归属节点中的RKey表被归属节点中的协处理器用于验证接收的RKey以及将RKey转换成物理地址。
在一个实施例中,利用命令rkey_create(lkey,off,len,ttl,mode)创建RKey,其中lkey是包含新创建的RKey的LKey,off是供转换用的RKey表内偏移量,len是新创建的区域的大小,ttl是存活时间参数,mode是读取或写入访问模式。存活时间参数ttl限制密钥的寿命,以增加安全性。在密钥到期之后,授予被RKey覆盖的区域的权限被取消,并且访问该同一区域需要新的密钥。不仅存活时间参数有助于维持安全性,RKey表本身也有助于维持安全性。具体地,为了使节点免于接收外部传送,节点可使它自己的RKey表无效。无效的表导致对具有这种表的节点的所有传送都验证失败。每个尝试的传送接收指示验证失败的否定确认。
协处理器命令队列操作
协处理器在物理地址空间中工作,使得发送给协处理器的任何命令只包含物理地址。对协处理器可见的所有数据结构驻留于相邻物理位置中,并被期望驻存于存储器中(即,不被换出或调页出)
图6描述管理程序和协处理器之间的同步。当在步骤602,管理程序将命令写入命令队列时,管理程序写入协处理器“门铃”寄存器(协处理器状态寄存器之一)。在步骤604,对门铃寄存器(协处理器的引起注意设备)的写入递增指向命令队列的头部的指针,从而向协处理器通知在命令队列中存在新的命令。如果在门铃寄存器被写入时,命令队列为空,那么在步骤606,协处理器执行新命令。然而,在队列中存在多个命令的情况下,协处理器可按任何顺序执行命令,除非受串行化标记约束。优先队列中的命令通常是在非优先队列中的命令之前执行的。在协处理器执行命令之后,在步骤608,它更新完成区域,从而在步骤610,通知管理程序命令已完成,然后在步骤602,通知管理程序队列具有用于新命令的空位置。如果在步骤612判定门铃寄存器被再次写入,那么协处理器执行进行下一个命令,并在该命令完成时,在步骤608更新完成区域。当协处理器检测到命令队列为空时,协处理器停止,等待门铃寄存器被写入。外部请求仍然被处理。
协处理器命令执行
当协处理器收到来自管理程序的命令时,它与多线程管理程序中发出该命令的线程异步地执行该命令。如果管理程序发送多个命令,那么协处理器调度所述多个命令,以便轮询地执行所述多个命令。协处理器可并行地执行一些命令。
图7描述本地节点和远程节点之间的命令操作。图7中,在步骤702,PDOM1中的协处理器接收并解码新的命令。在步骤704,协处理器在本地物理地址获得数据,并在步骤706,将数据连同RKey一起传送给PDOM2中的存储器。在步骤708,PDOM2中的协处理器利用密钥中的散列,验证RKey。如果验证成功,那么在步骤710,协处理器将RKey转换成其物理地址,并且在步骤712,将传送的数据写入与RKey关联的物理存储器。如果RKey验证不成功,那么在向请求者回送出错通知之后,丢弃该请求。在数据被写入之后,在步骤714,PDOM2中的协处理器向PDOM1中的协处理器回送确认,当收到所述确认时,在步骤716,PDOM1中的协处理器更新命令块中的完成状态,然后在步骤718,使环形缓冲器中的命令块退出队列。由于PDOM2中的协处理器(最终目的地)提供确认(否定或肯定确认),因此发送者PDOM(这种情况下,PDOM1)知道数据实际被传送到最终目的地。这意味如果PDOM2中的最终目的地是永久存储器,比如任何非易失性存储器,那么发送者根据来自PDOM2的肯定确认,知道数据驻留于该永久存储器中,而不是在缓冲器或高速缓存中等待被写入永久存储器。
图8描述在请求来自发起者节点(即,和两个远程节点不同的节点)的情况下,两个远程节点之间的命令操作。在图8中,在步骤802,在源端点的PDOM1中的协处理器从发起者接收将数据从PDOM1传送给PDOM2中的目的地端点的命令。由于发起者既不是PDOM1,也不是PDOM2,所述请求指定从源RKey到目的地RKey的传送。当在步骤802收到源RKey时,在步骤804,源端点的协处理器利用密钥中的散列验证源RKey。该协处理器随后在步骤806访问本地密钥表,以获得密钥的关联物理地址,之后,该协处理器在步骤808获得请求的数据。协处理器随后在步骤810将获得的数据传送给发起者,发起者在步骤812将数据转发给PDOM2中的目的地端点,并在步骤814将目的地RKey与数据一起转发给PDOM2中的目的地端点。在步骤816,在PDOM2中的目的地端点的协处理器验证目的地RKey,如果成功,那么在步骤818,在PDOM2中查找密钥的关联物理地址。在步骤820,PDOM2接受数据,并将数据写入由RKey和命令指定的物理地址中。当所有数据被写入PDOM2中的物理存储器时,在步骤822,在PDOM2的目的地端点的协处理器向发起者回传确认,发起者在步骤824更新命令块中的完成状态,然后在步骤826使命令块从环形缓冲器退出队列。在目的地端点是永久地址空间,比如任何非易失性存储器的空间的情况下,该确认保证数据驻留于所述永久地址空间中。
在备选实施例中,发起者将目的地RKey连同转发指令一起发送给PDOM1中的源端点。和图8的步骤804、806及808中一样,源端点依然验证源RKey,并利用验证的源RKey访问请求的数据。PDOM1中的源端点随后将数据连同源端点被指示来转发的目的地RKey一起,从源端点本身直接发送给PDOM2中的目的地端点。在这个实施例中,源接收来自目的地的确认,并将接收的确认转发给发起者。
协处理器命令
协处理器支持各种数据移动和维护命令。数据移动命令包括复制类、填充类、存储类、比较类和修改类命令。
复制类命令将数据从源地址移动到目的地地址,或者将立即数据移动到目的地地址。如果源地址或目的地地址不在本地,那么RKey指定目的地地址。当该命令完成时,它在完成数据结构中公布结果。
填充类命令采用立即数据值,并利用所述立即数据值填充起始于目的地地址的数据值。如果目的地地址不在本地,那么RKey指定目的地地址。
存储类命令采用立即数据值,并将其存储在目的地地址中。如果目的地地址不在本地,那么RKey指定目的地地址。
比较类命令采用比较值和交换值。该命令比较在目的地地址的内容和比较值。如果两者相等,那么该命令将交换值写入目的地内容中,并返回目的地的旧内容。如果目的地不在本地,那么RKey指定目的地地址。
另一种比较命令采用立即值和比较值,并比较所述比较值和目的地内容。如果比较值严格更大,那么该命令用立即值更新目的地内容,并返回目的地的旧内容。如果目的地不在本地,那么RKey指定目的地地址。
修改类命令采用立即值,并相加该值和目的地地址的内容,或者将该值与目的地地址的内容进行或运算,然后返回目的地的旧内容。如果目的地不在本地,那么RKey指定目的地地址。
硬件概述
按照一个实施例,这里说明的技术是利用一个或多个专用计算设备实现的。所述专用计算设备可被硬连线以实现所述技术,或者可包括被永久编程来实现所述技术的、比如一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的数字电子设备,或者可包括一个或多个通用硬件处理器,所述通用硬件处理器被编程来按照固件、存储器、其它存储器或它们的组合中的程序指令执行所述技术。这种专用计算设备还可结合定制的硬连线逻辑、ASIC或FPGA与定制的编程,以实现所述技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备、或者包含硬连线和/或程序逻辑来实现所述技术的任何其它设备。
例如,图9是示出可在其上实现本发明的实施例的计算机系统900的框图。计算机900包括总线902或者用于传输信息的其它通信机构,以及与总线902耦接用于处理信息的硬件处理器904。例如,硬件处理器904可以是通用微处理器。
计算机系统900还包括耦接到总线902用于存储信息和待由处理器904执行的指令的主存储器906,比如随机存取存储器(RAM)或其它动态存储设备。主存储器906也可用于在待由处理器904执行的指令的执行期间,存储临时变量或其它中间信息。当被存储在处理器904可访问的非瞬时存储介质中时,这样的指令使计算机系统900成为执行在指令中指定的操作而定制的专用机器。
计算机系统900还包括耦接到总线902用于为处理器904存储静态信息和指令的只读存储器(ROM)908或其它静态存储设备。提供诸如磁盘或光盘的存储设备910,并将其耦接到总线902,用于存储信息和指令。
计算机900可通过总线902耦接到显示器912,比如阴极射线管(CRT),用于向计算机用户显示信息。包括字母数字键和其它键的输入设备914被耦接到总线902,用于将信息和命令选择传输给处理器904。另一种用户输入设备是光标控制器916,比如鼠标、跟踪球或光标方向键,用于向处理器904传输方向信息和命令选择,以及用于控制显示器912上的光标移动。这种输入设备一般在两个轴,即第一轴(例如x)和第二轴(例如y)上具有使该设备可以指定平面中的位置的两个自由度。
计算机系统900可利用下列设备来实现这里说明的技术:定制硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑,它们与计算机系统结合来使计算机系统900成为或者将计算机系统900编程为专用机器。按照一个实施例,响应处理器904执行包含在主存储器906中的一个或多个指令的一个或多个序列,计算机系统900执行这里的技术。这种指令可从比如存储设备910的另一个存储介质读入主存储器906。包含在主存储器906中的指令序列的执行使得处理器904执行这里说明的处理步骤。在备选实施例中,硬连线电路可以代替软件指令或者与其结合而被使用。
这里使用的术语“存储介质”指的是存储使机器按具体方式工作的数据和/或指令的任何非瞬时介质。这种存储介质可包含非易失性介质和/或易失性介质。例如,非易失性介质包括光盘或磁盘,比如存储设备910。易失性介质包括动态存储器,比如主存储器906。例如,存储介质的常见形式包括软盘、硬盘、固态驱动器、磁带、或者任何其它磁数据存储介质、CD-ROM、任何其它光数据存储介质、具有各种孔图形的任何物理介质、RAM、PROM、以及EPROM、FLASH-EPROM、NVRAM、任何其它存储芯片或盒式磁带。
存储介质不同于传输介质,但是可以和传输介质结合起来使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,包括构成总线902的导线。传输介质还可采取声波或光波的形式,比如在无线电波和红外数据通信期间生成的声波或光波。
各种形式的介质可以参与将一个或多个指令的一个或多个序列输送给处理器904以用于执行。例如,指令最初可被载存于远程计算机的磁盘或固态驱动器上。远程计算机能够将指令加载到其动态存储器中,并且利用调制解调器通过电话线路发送所述指令。计算机系统900本地的调制解调器能够在电话线路上接收所述数据,并利用红外发射器将数据转换成红外信号。红外探测器能够接收携带在红外信号中的数据,适当的电路可将所述数据放置于总线902上。总线902将所述数据输送到主存储器906,处理器904从主存储器906检索并执行指令。主存储器906接收的指令可选择性地在由处理器904执行之前或之后,被存储于存储设备910上。
计算机系统900还包括耦接到总线902的通信接口918。通信接口918提供耦接到网络链路920的双向数据通信,网络链路920连接到本地网络922。例如,通信接口918可以是综合业务数字网(ISDN)卡、线缆调制解调器、卫星调制解调器、或者用于提供到对应类型的电话线路的数据通信连接的调制解调器。再例如,通信接口918可以是提供到兼容LAN的数据通信连接的局域网(LAN)卡。也可实现无线链路。在任意这样的实现中,通信接口918发送和接收承载表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。
网络链路920一般通过一个或多个网络提供到其它数据设备的数据通信。例如,网络链路920可提供通过本地网络922提供到主机计算机924或者到由因特网服务提供商(ISP)926运营的数据设备的连接。ISP 926又通过现在通常称为“因特网”928的全球分组数据通信网络来提供数据通信服务。本地网络922和因特网928两者都利用输送数字数据流的电信号、电磁信号或光信号。通过各种网络的信号,以及在网络链路920上并通过通信接口918的信号是传输介质的示例形式,该通信接口将数字数据送入和送出计算机系统900。
计算机系统900可通过网络、网络链路920和通信接口918来发送消息和接收数据,包括程序代码。在因特网示例中,服务器930可通过因特网928、ISP 926、本地网络922和通信接口918来传送应用程序的请求代码。
接收的代码可在被接收时由处理器904执行,和/或被存储于存储设备910或者其它非易失性存储器中,供以后执行。
在上面的说明书中,已经参考可因实现而异的众多具体细节,说明了本发明的实施例。因此,说明书和附图应被认为是说明性的,而不是限制性的。本发明的范围的独有指标以及本申请人想要其成为本发明的范围的内容,是本申请按照此类权利要求书发布的具体形式来发布的权利要求书的字面及等效范围,包括任何后续更正。

Claims (20)

1.一种计算机系统,包括:
多个计算节点,
其中所述多个计算节点中的每个计算节点包括协处理器和与所述协处理器耦接的存储器,以及其中每个存储器驻留于单独并且不同的物理域中;和
多个点对点物理通信链路,其中所述多个点对点物理通信链路中的一个或多个通信链路耦接在所述多个计算节点中的每对节点之间,其中节点中的每个协处理器被耦接到所述一个或多个通信链路,以通过至少一个通信链路传送数据,以及
其中每个协处理器被配置成:
在耦接到该协处理器的存储器和该协处理器通过所述一个或多个通信链路所耦接到的另一个节点的存储器之间,利用准许访问所述另一个节点中的存储器的一部分的证书传送数据,或者
在集群中该协处理器通过所述一个或多个通信链路所耦接到的另外两个节点之间,利用授予对所述另外两个节点中的第一个节点之中的存储器的一部分的访问权限的第一证书,以及授予对另外两个节点中的第二个节点之中的存储器的一部分的访问权限的第二证书,传送数据。
2.按照权利要求1所述的系统,
其中协处理器是数据传送的目的地节点,该目的地节点包括永久地址空间;和
其中目的地节点传送指示传送的数据驻留于永久地址空间中的确认。
3.按照权利要求1所述的系统,其中节点中的每个协处理器还包括将数据从一个存储器位置移动到另一个存储器位置的数据传送机。
4.按照权利要求1所述的系统,其中每个证书是其它节点中的每一个节点所拥有的RKey。
5.按照权利要求4所述的系统,
其中每个节点具有运行于该节点上的软件管理程序;和
其中每个节点的协处理器在软件管理程序的控制之下工作。
6.按照权利要求5所述的系统,其中每个软件管理程序在节点的存储器中维护密钥表,所述密钥表将RKey映射到存储器的物理地址。
7.按照权利要求4所述的系统,
其中每个RKey包括用于验证所述RKey的散列字段;和
其中其它节点中的协处理器利用RKey中的散列字段,验证在其它节点中接收的任何RKey。
8.按照权利要求4所述的系统,其中每个RKey在指定时间之后到期,到期的RKey取消该RKey授予的访问权限。
9.按照权利要求1所述的系统,
其中每个节点具有运行于该节点上的软件管理程序;
其中每个节点中的协处理器响应由管理程序发布的命令来传送数据;和
其中所述命令是控制块的一部分,所述控制块包括
包括数据传送的大小的控制字,和
指定将在耦接到协处理器的存储器中公布的传送的完成数据的位置的完成地址。
10.按照权利要求9所述的系统,其中所述命令选自:复制类命令、填充类命令、存储类命令、比较类命令和修改类命令。
11.一种在集群中的节点之间传送数据的方法,所述方法包括:
本地节点接收和解码用于数据传送的命令;
根据解码的命令确定所述数据传送具有在本地节点中的源位置和在不同于本地节点的远程节点中的目的地位置,本地节点和远程节点通过一个或多个点对点通信链路相互耦接;
获得授予将数据传送给远程节点的权限的证书;
将所述证书从本地节点传送给远程节点,
其中所述证书在远程节点被成功验证;
利用所述证书,将数据从本地节点传送给远程节点;
从远程节点接收传送完成的确认;和
更新指示命令成功的完成状态。
12.按照权利要求11所述的方法,
其中远程节点是包括永久地址空间的目的地节点;和
其中所述确认保证传送的数据驻留于永久地址空间中。
13.按照权利要求11所述的方法,其中所述证书是远程节点拥有的RKey。
14.按照权利要求13所述的方法,
其中RKey包括帮助验证RKey的散列字段;和
其中远程节点利用RKey中的散列字段验证接收的RKey。
15.按照权利要求13所述的方法,
其中远程节点包括存储器;和
其中远程节点维护密钥表,所述密钥表将任何接收的RKey映射到所述存储器中的物理地址。
16.一种在集群中的节点之间传送数据的方法,所述方法包括:
本地节点接收和解码用于数据传送的命令;
根据解码的命令确定所述数据传送具有在第一远程节点中的源位置和在第二远程节点中的目的地位置,各个远程节点彼此不同,并且不同于本地节点,并通过一个或多个点对点通信链路耦接到本地节点;
获得授予在第一远程节点和第二远程节点之间传送数据的权限的第一证书和第二证书;
将第一证书和第二证书从本地节点传送给第一远程节点和第二远程节点,其中第一证书和第二证书分别在第一远程节点和第二远程节点被成功验证;
利用所述证书,将数据从第一远程节点传送给第二远程节点;
从第二远程节点接收传送完成的确认;和
更新指示命令成功的完成状态。
17.按照权利要求16所述的系统,
其中第二远程节点是包含永久地址空间的目的地节点;和
其中来自第二远程节点的所述确认指示传送的数据驻留于永久地址空间中。
18.按照权利要求16所述的系统,其中每个证书是远程节点拥有的RKey。
19.按照权利要求18所述的系统,
其中RKey包括帮助验证RKey的散列字段;和
其中远程节点利用RKey中的散列字段验证接收的RKey。
20.按照权利要求18所述的方法,
其中每个远程节点包括存储器;和
其中每个远程节点维护密钥表,所述密钥表将任何接收的RKey映射到相应远程节点的存储器中的物理地址。
CN201380057937.6A 2012-10-02 2013-10-01 能够实现不同物理域地址空间的节点间的聚类的存储总线协议 Active CN104769561B (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/838,542 US9400821B2 (en) 2012-10-02 2013-03-15 Memory bus protocol to enable clustering between nodes of distinct physical domain address spaces
US13/838,542 2013-03-15
PCT/US2013/062880 WO2014055526A1 (en) 2012-10-02 2013-10-01 Memory bus protocol to enable clustering between nodes of distinct physical domain address spaces

Publications (2)

Publication Number Publication Date
CN104769561A true CN104769561A (zh) 2015-07-08
CN104769561B CN104769561B (zh) 2018-01-12

Family

ID=50386190

Family Applications (7)

Application Number Title Priority Date Filing Date
CN201380049301.7A Active CN104662534B (zh) 2012-10-02 2013-06-14 用于表扫描加速的硬件
CN201810434459.0A Active CN108664596B (zh) 2012-10-02 2013-06-14 用于表扫描加速的硬件
CN201380049816.7A Active CN104662538B (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 分布式节点之间的存储器共享
CN201380051672.9A Active CN104756091B (zh) 2012-10-02 2013-10-01 基于远程密钥的存储器缓冲区访问控制机制
CN201380057937.6A Active CN104769561B (zh) 2012-10-02 2013-10-01 能够实现不同物理域地址空间的节点间的聚类的存储总线协议

Family Applications Before (6)

Application Number Title Priority Date Filing Date
CN201380049301.7A Active CN104662534B (zh) 2012-10-02 2013-06-14 用于表扫描加速的硬件
CN201810434459.0A Active CN108664596B (zh) 2012-10-02 2013-06-14 用于表扫描加速的硬件
CN201380049816.7A Active CN104662538B (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 分布式节点之间的存储器共享
CN201380051672.9A Active CN104756091B (zh) 2012-10-02 2013-10-01 基于远程密钥的存储器缓冲区访问控制机制

Country Status (6)

Country Link
US (10) US9292569B2 (zh)
EP (6) EP2904513B1 (zh)
JP (1) JP6320393B2 (zh)
CN (7) CN104662534B (zh)
ES (1) ES2880268T3 (zh)
WO (6) WO2014055138A1 (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
EP2652590A1 (en) * 2011-06-30 2013-10-23 Hitachi, Ltd. Computer system and access restriction method
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
EP2788902B1 (en) 2011-12-08 2019-04-17 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
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
US9122873B2 (en) 2012-09-14 2015-09-01 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
BR112015018946A2 (pt) * 2013-03-15 2017-07-18 Intel Corp desempenho de partida de coprocessador de segurança
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
US9740718B2 (en) 2013-09-20 2017-08-22 Oracle International Corporation Aggregating dimensional data using dense containers
US9836519B2 (en) 2013-09-20 2017-12-05 Oracle International Corporation Densely grouping dimensional data
US9990398B2 (en) * 2013-09-20 2018-06-05 Oracle International Corporation Inferring dimensional metadata from content of a query
US9378232B2 (en) 2013-09-21 2016-06-28 Oracle International Corporation Framework for numa affinitized parallel query on in-memory objects within the RDBMS
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
WO2015065449A1 (en) * 2013-10-31 2015-05-07 Hewlett-Packard Development Company, L.P. 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
WO2016068941A1 (en) 2014-10-30 2016-05-06 Hewlett Packard Enterprise Development Lp Secure transactions in a memory fabric
WO2016068942A1 (en) 2014-10-30 2016-05-06 Hewlett Packard Enterprise Development Lp Encryption for 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
US11449452B2 (en) 2015-05-21 2022-09-20 Goldman Sachs & Co. LLC General-purpose parallel computing architecture
ES2929626T3 (es) * 2015-05-21 2022-11-30 Goldman Sachs & Co Llc Arquitectura de computación paralela de propósito general
US10025822B2 (en) 2015-05-29 2018-07-17 Oracle International Corporation Optimizing execution plans for in-memory-aware joins
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
US10783142B2 (en) 2015-10-23 2020-09-22 Oracle International Corporation Efficient data retrieval in staged use of in-memory cursor duration temporary tables
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
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
US10061832B2 (en) 2016-11-28 2018-08-28 Oracle International Corporation Database tuple-encoding-aware data partitioning in a direct memory access engine
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
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
US10176114B2 (en) 2016-11-28 2019-01-08 Oracle International Corporation Row identification number generation in database direct memory access engine
US10459859B2 (en) 2016-11-28 2019-10-29 Oracle International Corporation Multicast copy ring for database direct memory access filtering 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
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
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
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
US10515046B2 (en) 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10445234B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10467183B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods for pipelined runtime services in a spatial array
US10515049B1 (en) 2017-07-01 2019-12-24 Intel Corporation Memory circuits and methods for distributed memory hazard detection and error recovery
US10469397B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods with configurable network-based dataflow operator circuits
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
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
CN107835203B (zh) * 2017-08-09 2020-07-10 平安壹钱包电子商务有限公司 消息分组投递的方法、装置、存储介质及终端
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US10496574B2 (en) 2017-09-28 2019-12-03 Intel Corporation Processors, methods, and systems for a memory fence in 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
US10380063B2 (en) 2017-09-30 2019-08-13 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
US10445098B2 (en) * 2017-09-30 2019-10-15 Intel Corporation Processors and methods for privileged configuration in a spatial array
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无线网络通讯系统
US10452547B2 (en) 2017-12-29 2019-10-22 Oracle International Corporation Fault-tolerant cache coherence over a lossy network
US10467139B2 (en) 2017-12-29 2019-11-05 Oracle International Corporation Fault-tolerant cache coherence over a lossy network
US10445250B2 (en) 2017-12-30 2019-10-15 Intel Corporation Apparatus, methods, and systems with a configurable spatial accelerator
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
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 中国平安人寿保险股份有限公司 分布式数据计算方法、装置、计算机设备及可读存储介质
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
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
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
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
US11204898B1 (en) 2018-12-19 2021-12-21 Datometry, Inc. Reconstructing database sessions from a query log
US11403282B1 (en) 2018-12-20 2022-08-02 Datometry, Inc. Unbatching database queries 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
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
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
WO2020214757A1 (en) * 2019-04-17 2020-10-22 John Rankin 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
US20220245150A1 (en) * 2019-07-31 2022-08-04 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
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
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
US11741073B2 (en) 2021-06-01 2023-08-29 Alibaba Singapore Holding Private Limited Granularly timestamped concurrency control for key-value store
US11829291B2 (en) 2021-06-01 2023-11-28 Alibaba Singapore Holding Private Limited Garbage collection of tree structure with page mappings
US11755427B2 (en) 2021-06-01 2023-09-12 Alibaba Singapore Holding Private Limited Fast recovery and replication of key-value stores
US20220382760A1 (en) * 2021-06-01 2022-12-01 Alibaba Singapore Holding Private Limited High-performance key-value store
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN100579108C (zh) * 2001-03-26 2010-01-06 英特尔公司 一种远程密钥验证的方法和主机结构适配器
CN101313309B (zh) * 2005-12-21 2011-12-21 英特尔公司 对加密数据进行访问控制和入侵检测的方法、装置和系统

Family Cites Families (135)

* 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 分散共有仮想メモリーとその構成方法
EP0629960B1 (en) 1993-06-17 2000-05-24 Sun Microsystems, Inc. Extendible file system
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
EP1337926A1 (en) 2000-08-14 2003-08-27 Jae-Hak Lee The multi-functional pda
US6898693B1 (en) * 2000-11-02 2005-05-24 Intel Corporation Hardware loops
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
US7698552B2 (en) * 2004-06-03 2010-04-13 Intel Corporation Launching a secure kernel in a multiprocessor system
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
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
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
EP2092440B1 (en) * 2006-11-13 2019-01-09 IP Reservoir, LLC 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
EP2192764B1 (en) * 2007-09-05 2015-05-20 Tohoku University Solid state imaging element and imaging device
US20090070786A1 (en) 2007-09-11 2009-03-12 Bea Systems, Inc. Xml-based event processing networks for event server
EP2040180B1 (en) 2007-09-24 2019-01-16 Hasso-Plattner-Institut für Digital Engineering gGmbH ETL-less zero-redundancy system and method for reporting OLTP data
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
US8108361B2 (en) 2008-07-31 2012-01-31 Microsoft Corporation Efficient column based data encoding for large-scale data storage
US8626725B2 (en) * 2008-07-31 2014-01-07 Microsoft Corporation Efficient large-scale processing of column based data encoded structures
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
US20110196900A1 (en) * 2010-02-09 2011-08-11 Alexandre Drobychev 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
JP5971635B2 (ja) * 2011-01-25 2016-08-17 エヌエックスピー カナダ インコーポレイテッド ベクトルユニット共有の装置および方法
US20120303633A1 (en) 2011-05-26 2012-11-29 International Business Machines Corporation Systems and methods for querying column oriented databases
CN102184365B (zh) * 2011-06-07 2013-05-29 郑州信大捷安信息技术股份有限公司 基于SoC芯片外部数据安全存储系统及存取控制方法
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
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
EP2788902B1 (en) 2011-12-08 2019-04-17 Oracle International Corporation Techniques for more efficient usage of memory-to-cpu bandwidth
US9454507B2 (en) 2011-12-23 2016-09-27 Intel Corporation Systems, apparatuses, and methods for performing a conversion of a writemask register to a list of index values in a vector register
CN104126166A (zh) 2011-12-23 2014-10-29 英特尔公司 用于执行使用掩码的向量打包一元编码的系统、装置和方法
US20150227414A1 (en) 2012-08-31 2015-08-13 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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100579108C (zh) * 2001-03-26 2010-01-06 英特尔公司 一种远程密钥验证的方法和主机结构适配器
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
CN101313309B (zh) * 2005-12-21 2011-12-21 英特尔公司 对加密数据进行访问控制和入侵检测的方法、装置和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
H.FRANKE,ET AL: "《Introduction to the wire-speed processor and architecture》", 《IBM JOURNAL OF RESEARCH AND DEVELOPMENT》 *
QI GAO, ET AL: "《Application-Transparent Checkpoint/Restart for MPI Programs over InfiniBand》", 《PARALLEL PROCESSING,2006,ICPP 2006,INTERNATIONAL CONFERENCE ON,IEEE,PI》 *

Also Published As

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

Similar Documents

Publication Publication Date Title
CN104769561A (zh) 能够实现不同物理域地址空间的节点间的聚类的存储总线协议
CN104620564B (zh) 用于经由利用数据隧道的接口的多协议数据元素的传输的装置和方法
TWI234371B (en) A method of performing iSCSI commands and a data processing system using the method
CN100579108C (zh) 一种远程密钥验证的方法和主机结构适配器
CN101535958B (zh) 用于跨越保护域边界的对象调用的方法、系统和设备
JP6444405B2 (ja) ソフトウェア更新方法、システム及びデバイス
CN100462947C (zh) 用于实现卸载发起方功能的方法和系统
CN104937904B (zh) 用于卸载的方法、系统和计算机存储介质
CN104052789A (zh) 用于虚拟联网系统的负载平衡
WO2022062976A1 (zh) 用于执行交易的跨区块链的系统、跨链交易方法及设备
WO2020093887A1 (zh) 用于片上网络noc的数据传输方法、装置及电子设备
US20070041383A1 (en) Third party node initiated remote direct memory access
CN105408880A (zh) 对共享存储装置的持久存储器的直接访问
CN104252375A (zh) 用于位于不同主机的多个虚拟机共享USB Key的方法和系统
WO2013136522A1 (ja) 計算機システム及び計算機間のデータ通信方法
CN101095125A (zh) 基于RNIC的iSCSI目标方数据移动功能卸载
CN102446073A (zh) 延迟对操作的确认直至操作完成的方法和系统
CN110597839A (zh) 交易数据处理方法、装置、设备以及存储介质
CN103597456A (zh) 用于在分布式存储器环境中实施存储器段访问控制的方法和装置
CN105379209A (zh) 利用分段队列远程存储访问的低延迟装置互联
CN101924696A (zh) 用于有效实现增强型路由器设备的系统和方法
CN103957210B (zh) 智能卡及其安全控制方法、装置和系统
CN114244537B (zh) 一种基于跨链通信和多链融合的信息处理系统
KR101668441B1 (ko) 이기종 장치의 데이터 수집을 위한 미들웨어 간 인터페이스 장치 및 방법
JP2015216450A (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