CN104704491A - 用于集群内通信的硬件消息队列 - Google Patents
用于集群内通信的硬件消息队列 Download PDFInfo
- Publication number
- CN104704491A CN104704491A CN201380051875.8A CN201380051875A CN104704491A CN 104704491 A CN104704491 A CN 104704491A CN 201380051875 A CN201380051875 A CN 201380051875A CN 104704491 A CN104704491 A CN 104704491A
- Authority
- CN
- China
- Prior art keywords
- queue
- hmq
- coprocessor
- circuit
- rkey
- 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
Links
- 238000004891 communication Methods 0.000 title abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 abstract description 12
- 230000007246 mechanism Effects 0.000 abstract description 3
- 230000001360 synchronised effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
- G06F15/7889—Reconfigurable logic implemented as a co-processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
提供用于在计算集群上的节点之间发送和接收消息的方法和装置。通过在I/O子系统上转送消息,执行不共享物理存储器的计算集群上的节点之间的通信。典型地,各节点可包含同步机构、准备好接收连接的线程以及处理和重新组装消息的其它线程。往往对向接收节点发送消息的I/O子系统上的各节点在存储器中保持单独的队列。这种开销增加了等待时间并且限制了消息通过量。由于在各节点上运行的专用协处理器,因此以更快的速率和更低的等待时间发送、接收、验证、同步化和重新组装I/O子系统上的消息。另外,使用的存储器结构可通过在同一存储器结构中存储来自多个来源的消息从而不需要每个源的队列,来减少存储器消耗。
Description
优先权要求和相关申请
本申请要求在2013年2月27日提交的美国专利申请No.13/783307的优先权,该美国专利申请No.13/783307要求在2012年10月2日提交的美国临时申请No.61/709142的优先权,它们的内容通过引用被并入这里。
技术领域
本发明涉及使用专用电路以从计算集群上的一个或更多个节点发送和接收消息。
背景技术
为了提高性能并且提供可扩展性,数据库系统在集群中的几个节点上分布数据库的多个部分。集群以两种方式(相干存储集群或计算集群)中的一种被配置。
相干存储集群上的节点共享物理存储器。共享存储器允许集群上的各节点非常迅速地通信。要在共享的存储集群上的两个节点之间发送和接收消息,一个节点将数据写入到共享的存储器并且另一节点从共享的存储器读取数据。
不幸的是,相干存储集群的构建是十分昂贵的,并且,可存储于相干存储集群上的共享存储器的大小受到限制。
计算集群上的节点不共享物理存储器。可通过通常在I/O子系统上传输的消息执行计算集群上的节点之间的通信。I/O子系统可在接收节点上包含I/O链接、同步化机构和服务器线程以处理到来的消息。并且,计算节点可能需要重新组装到来的消息并且在节点的主存储器中存储经重新组装的消息。这种IO子系统引起性能损失,这增加消息等待时间并且限制了消息通过量。
在本部分中描述的方法是可探求的方法,但未必是以前构想或探求的方法。因此,除非另外陈述,否则,在本部分中描述的方法中的任一个不应仅由于包含于本部分中就被视为现有技术。
附图说明
在附图中,作为例子而不是限制示出本发明,在这些附图中,类似的附图标记表示类似的要素,并且,
图1是示出根据本发明的实施例的使用HMQ协处理器以从计算集群上的其它节点接收消息的多HMQ系统上的节点的框图;
图2是根据实施例的HMQ RKEY的框图;
图3是根据本发明的实施例的硬件信令(messaging)队列的框图;
图4是示出根据实施例的HMQ的初始化的流程图;
图5是示出根据实施例的命令的验证的流程图;
图6是示出根据实施例的在HMQ中以原子方式(atomically)将消息加入队列的流程图;
图7是示出根据实施例的读取存储于特定条目(entry)中的消息和使条目退出队列的流程图;
图8示出在其上可实现实施例的计算机系统。
具体实施方式
在以下的描述中,出于解释的目的,为了使得能够彻底地理解本发明,阐述大量的特定细节。但是,很显然,可以在没有这些特定细节的情况下实现本发明。在其它的情况下,为了避免不必要地混淆本发明,以框图形式表示公知的结构和设备。
概述
通过在I/O子系统上转送消息,执行不共享物理存储器的计算集群上的节点之间的通信。使用I/O子系统的各节点的开销高。每一节点可包含同步化机构、准备好接收连接的接收节点上的线程、以及处理和重新组装消息的其它线程。接收节点还常常在存储器中为向接收节点发送消息的I/O子系统上的各节点保持单独的队列。这种开销引起性能损失,这增加了等待时间并且限制了消息通过量。
给出用于在计算集群上的节点之间发送和接收消息的高效系统,该系统在这里被称为多HMQ系统。多HMQ系统提供了用于存储器复制和消息传送的功能。多HMQ系统上的每一节点包含硬件消息队列(“HMQ”)、硬件消息队列协处理器(“HMQ协处理器”)、和连接每一HMQ协处理器与多HMQ系统上的其它HMQ协处理器的通信链接。
HMQ包含头部和有效载荷。HMQ中的头部包含关于HMQ的状态的元数据和指向有效载荷中的特定条目或地址的指针。HMQ协处理器基于HMQ协处理器接收的命令存储有效载荷中的条目。有效载荷中的每一条目还可包含关于特定条目的状态的标记。
HMQ协处理器向其它HMQ协处理器发送命令以及从其它HMQ协处理器接收命令。接收HMQ协处理器通过原子方式地增加HMQ头部中的分配指针来在目标HMQ中分配条目。分配的条目被填充有到来的消息,并且在条目中设定专门的完成标记。HMQ协处理器能够在没有其它软件介入的情况下对到来的消息进行发送、接收、验证、排队(queue)、同步化和重新组装。
由于HMQ协处理器,多HMQ系统上的消息以更快的速率和更低的等待时间被交换。更快的信令使得多HMQ系统和计算集群能够实现更高性能。另外,通过在同一HMQ上存储来自多个源的消息从而消除对每个源的队列的需要,与一般的信令应用相比,HMQ可减少存储器消耗。
HMQ协处理器
HMQ协处理器是专用电路。术语“专用电路(specializedcircuitry)”指的是执行一组功能并且被硬接线以执行该组功能或者被永久编程以执行该组功能的数字电路。永久编程数字电路包含数字电子专用集成电路(ASIC)或现场可编程门阵列(FPGA)。专用电路不包含被配置为通过执行可驻留于存储器中的软件指令集或程序来执行功能的通用处理器。
相反,术语“软件”指的是在通用处理器上执行广泛的一组功能的数字电路所执行的指令集或程序。软件既不被硬接线也不被永久编码以执行特定的功能。虽然软件可被用于实现广泛的功能,但是,与由专用电路执行的功能相比,软件典型地执行较慢并且需要更多的开销。为了便于表达,当软件被描述为执行动作时,在通用处理器上执行指令以执行该动作。
HMQ协处理器处理有限的一组命令。例如,HMQ协处理器可以但不限于在不执行软件的情况下处理以下的命令:Copy、Copy和Signal、Fill、Store、Atomic Add、Atomic Or、Atomic Message Push、Interrupt、Sync和No-op。
HMQ协处理器在不借助于软件的情况下向其它HMQ协处理器发送命令和从其它HMQ协处理器接收命令。例如,第一HMQ协处理器可命令第二HMQ协处理器存储消息。第二HMQ协处理器验证命令,在目标HMQ中分配条目,并且在目标HMQ中存储有效载荷。分配的条目填充有与命令相关联的到来的消息,并且,在条目中设定专门的完成标记。HMQ协处理器在没有软件辅助的情况下执行这些操作。
如这里描述的那样,在没有软件介入的情况下,HMQ协处理器可以但不限于向其它的HMQ协处理器发送命令、从其它HMQ协处理器接收命令、验证接收的命令、将条目入队(enqueue)至HMQ中、使接收的消息同步化、重新组装到来的消息和报告错误。
多HMQ系统
图1是示出根据实施例的多HMQ系统100的框图。虽然图1示出实施例,但其它的实施例可省略、添加、重新安排和/或修改所示出的要素中的任一个。多HMQ系统从一个存储器位置向另一存储器移动数据。例如,HMQ协处理器115-1可命令协处理器115-M在节点105-M上的存储器120-M中存储消息。在图1所示的实施例中,多HMQ系统100包含但不限于节点105-1~105~M(统称为“节点105”),其中,节点105分别包含HMQ协处理器115-1~115-M(统称为“HMQ协处理器115”)。
在图1所示的实施例中,HMQ协处理器115分别位于处理器110-1~110-M(统称为“处理器110”)的芯片上。在另一实施例中,HMQ协处理器115分别是位于处理器110上的核心。HMQ协处理器115可分别与处理器115位于同一板上,但不位于同一芯片上。作为替代方案,HMQ协处理器115可位于任何其它位置,而仅分别与处理器110通信耦合。
在图1所示的实施例中,HMQ协处理器115-1与总线15-1、存储器120-1、软件130-1、HMQ 140-1和其它的HMQ协处理器115通信耦合。HMQ 140-1~140-M(统称为“HMQ 140”)分别是HMQ 300的每一实例。此外,HMQ协处理器115分别通过链接160-1~160-M(统称为“链接160”)和开关170交换耦合。但是,在其它的实施例中,HMQ协处理器可被直接连接,或者通过本领域技术人员已知的其它手段被通信耦合。
如上面描述的那样,统称为130的软件130-1~130-M指的是分别存储于节点105上并且分别在通用处理器110上执行的指令集或程序。软件130-1~130-M(统称为“软件130”)不被硬接线或者被永久编程以执行特定功能。为了便于表达,当软件130被描述为执行动作时,分别正在处理器110上执行包含软件130的指令,以执行该动作。
HMQ远程访问密钥(“HMQ RKEY”)
HMQ协处理器可以不被操作系统约束并且可不受限制地对存储器进行访问。HMQ RKEY可与各命令一起被发送并且指定HMQ协处理器应访问哪个HMQ。此外,HMQ RKEY可包含对于相应的HMQ分配的存储器的位置和大小,并且将HMQ协处理器局限于访问对HMQ分配的存储器。确保HMQ RKEY有效且不被伪造或篡改是重要的。因此,为了确保HMQ协处理器写入到存储器中的授权的空间中,HMQ协处理器查验与各命令一起发送的HMQ RKEY。例如,可对多HMQ系统中的每一节点上的每一HMQ创建HMQ RKEY。在同一节点上分配的多个HMQ可分别具有唯一HMQ RKEY,该唯一HMQ RKEY指定了HMQ协处理器对于给定命令应访问的特定HMQ。
图2是根据实施例的HMQ RKEY 200的框图。虽然图2示出实施例,但其它的实施例可省略、添加、重新安排和/或修改示出的要素中的任一个。HMQ RKEY 200可包含但不限于散列(hash)210、大小220、地址230和许可240。
根据实施例,HMQ RKEY 200包含由物理存储器的块的所有者向远程用户授予的证书。例如,使用图1所示的实施例,软件130-M可通过向节点105-1发送由软件130-M产生的HMQ RKEY 200的实例授权节点150-1访问存储器120-M中的特定块。当HMQ协处理器115-1向HMQ协处理器115-M发送命令时,HMQ协处理器115-1也可发送更早接收的HMQ RKEY 200的实例的副本。HMQ协处理器115-M可查验HMQ RKEY以确保命令不被从授权的HMQ协处理器发送而是正存储于适当分配的存储器中。作为替代方案,软件130-M可直接或通过HMQ协处理器115-1向HMQ协处理器115-M发送命令。HMQ RKEY的大小可以为16字节长,但是,HMQ RKEY不需要为16字节长。要减少存储器印迹和网络拥塞,较小的HMQ RKEY可能是优选的,但是,较大的HMQ RKEY可允许更长和更安全的散列。
散列210是源自基本秘密(base secret)的加密散列。散列210也可源自但不限于以下参数:大小220、地址230和许可240。为了在接收到HMQ RKEY 200的实例时解密散列210,HMQ协处理器115中的每一个包含分别通过软件130-1~130-M产生的基本秘密。还可实现使用公共密钥/私人秘钥加密、散列、种子、秘密或代码的其它的安全模型。
大小220是HMQ RKEY被授权访问的区域的大小。地址230包含HMQ RKEY产生器(例如,软件140-M)被授权访问的区域的物理地址。作为替代方案,地址230可仅包含识别存储器中的特定HMQ的编号,但不是HMQ的存储器地址。此外,HMQ RKEY 200可识别HMQ协处理器控制块(“CCB”)而不是目的地地址。
许可240是给予呈现者(例如,HMQ协处理器115-1)的许可。例如,HMQ RKEY可给予关于在特定的HMQ中写入消息但不从HMQ读取的许可。在实施例中,许可240可包含但不限于可读、可写和高速缓存更新。
硬件消息队列(“HMQ”)
图3是根据实施例的HMQ 300的框图。HMQ 300包含头部310和有效载荷330。虽然图3示出实施例,但其它的实施例可省略、添加、重新安排和/或修改示出的要素中的任一个。头部310包含关于HMQ 300的状态的元数据和指向有效载荷330内的特定地址的指针。头部310可包含但不限于有效载荷330的大小、条目332-1~332-N(统称为条目332)的数量和条目332-1~332-N中的每一个的大小。头部310还可包含但不限于使能标记311、未准备好标记312、错误标记313、保留字段314、接收区域315和中断标记316。头部310还可包含但不限于头指针320和分配指针322。例如,HMQ 140分别是HMQ 300的每一实例。分配HMQ 300的实例的HMQ协处理器115和软件130-1~130-M分别能够访问HMQ 140。
条目大小是条目332中的每一个的大小。在实施例中,条目大小为64字节。作为替代方案,条目大小可以为2的幂,但是,其它的大小也可是合适的。此外,存储于头部310中的有效载荷大小和条目大小均为4字节。在另一实施例中,条目大小可以为零以指示条目332可以为任何大小。
使能标记311指定HMQ 300的实例是被启用还是被禁用。在实施例中,使能标记311是1个字节。例如,如果使能标记311被设定为零,那么HMQ 300被禁用,否则,HMQ 300被启用。
未准备好标记312被复制到特定条目的第一字节以指示特定的条目是无效的。在实施例中,未准备好标记312是1个字节。例如,如果接收到命令以存储超过条目332-1的长度的消息,那么存储于未准备好标记312中的值被复制到条目332-1的第一字节,从而指示该条目是无效的。
错误标记313被复制到条目的第一字节中以指示在处理命令时存在错误。在实施例中,错误标记313是1个字节。例如,如果HMQ 140-1满,那么HMQ协处理器115-1可将错误标记313设定为1,以指示它不能将任何新的消息加入队列。
保留字段314存储头部310与有效载荷330之间的偏移。在实施例中,保留字段314是4字节,并且,如果在头部310与有效载荷330之间不存在偏移,那么为零。作为替代方案,保留字段314是指向有效载荷330的指针。例如,如果头部310与有效载荷330不连续,那么保留字段314可包含存储器120-1中的有效载荷330的地址。
接收区域315可用于被同一节点上的HMQ处理器使用。在实施例中,接收区域315为32字节。例如,HMQ协处理器115-1可使用接收区域315以重新组装消息的16字节的块(在下文中详细讨论)。
中断标记316指示是否应在成功的条目推送之后触发中断。在实施例中,中断标记316是单个比特,并且被设定为零以指示应在成功的条目推送之后触发中断。例如,当HMQ协处理器115-1向有效载荷330成功写入条目332-1时,HMQ协处理器115-1向处理器110-1发送中断。
头指针320是被原子更新的指针并且指向准备好读取的有效载荷330中的下一条目。在实施例中,头指针320是64字节的倍数并且从头部310的端部偏移。例如,如果头指针320的值是零,那么头指针320有效地指向有效载荷330的条目332-1。
分配指针322是以原子方式更新的指针。在实施例中,分配指针322是64字节的倍数并且从头部310的端部偏移。例如,如果分配指针322的值为零,那么分配指针322有效地指向有效载荷330的条目332-1。如果头指针320等于分配指针322,那么有效载荷330被视为空。但是,如果头指针320减分配指针322等于1,那么有效载荷330被视为满。
另外,在其它的实施例中,头部310可包含高效地执行这里描述的功能所需要的其它标记或值。标记和指针可被存储在一个或更多个位、位字段或字节中。
根据图3中的实施例,有效载荷330包含但不限于分别包含信号标记334-1~334~N(统称为“信号标记334”)的条目332。条目332中的各条目可以具有固定大小,并且,条目332的大小的和可等于存储于头部310中的有效载荷大小。例如,在图3中的实施例中,条目332均为64字节长,并且,有效载荷330的大小为64×N字节。
信号标记334可被用于指示特定的条目332没有被读取;存在写入条目的错误;或者,条目没有准备好。例如,HMQ 140-1中的条目332-1可以为条目332-1中的最后的字节,并且可被设定为1以指示有效的消息被存储于条目332-1中,但还没有被读取。在实施例中,信号标记334分别被存储于条目332中的每一个中的最后的字节中。在另一实施例中,信号标记334分别是条目332中的每一个中的第一字节。
HMQ的初始化
图4是示出根据实施例的HMQ的初始化的流程图。虽然图4示出根据实施例的示例性步骤,但其它的实施例可省略、添加、重新排序和/或修改示出的步骤中的任一个。虽然本实施例描述了从多HMQ系统上的多个节点以原子方式接收消息的软件所进行的HMQ的初始化,但其它的实施例可包含基于应用和设备的许多其它步骤。
如图4所示,使用图1所示的实施例作为例子,在步骤410中,软件130-1分配作为HMQ 300的实例的HMQ 140-1。例如,分配HMQ140-1包含连续地分配头部310和有效载荷330。但是,在其它的实施例中,头部310和有效载荷330可以不连续。
在步骤420中,软件130-1初始化HMQ 140-1头部310。例如,初始化头部310可包含但决限于将使能标记311设定为1、将未准备好标记312设定为1、将错误标记313设定为0、将保留字段314设定为1、对接收区域315分配32字节、将中断标记316设定为零、将头指针320设定为0、设定分配指针322。
在步骤430中,软件130-1创建HMQ RKEY 200的实例。创建HMQ RKEY 200的实例可包含但不限于软件130-1:将大小220设定为在步骤410中分配的有效载荷330的大小;将地址230指定为有效载荷330的地址。步骤430还可包含但不限于:产生基本秘密;在HMQ协处理器115-1中存储基本秘密;和基于基本秘密、大小220、地址230和许可240产生散列210。
在步骤440中,软件130-1向多HMQ系统100上的所有节点105发送从步骤430创建的HMQ RKEY 200的实例,该实例授权节点105向HMQ协处理器115-1发送命令并且在HMQ 140-1中存储数据。
在步骤450中,信号标记334可被设定为指示HMQ协处理器可写入各条目。例如,将信号标记334设定为0可向HMQ协处理器115-1指示HMQ协处理器自由开始写入HMQ 140-1中的各条目332。
多HMQ系统的验证命令
图5是使用多HMQ系统100作为例子示出根据实施例的命令验证的流程图。虽然图5示出根据实施例的示例性步骤,但其它的实施例可省略、添加、重新排序和/或修改示出的步骤中的任一个。虽然本实施例描述了验证HMQ协处理器115之间的命令,但其它的实施例可包含基于应用和设备的许多其它步骤。
在步骤510中,HMQ协处理器115-1向HMQ协处理器115-M发送节点105-1在HMQ 140-M的初始化过程中从软件130-M接收的HMQ RKEY的副本以及命令。在步骤520中,HMQ协处理器115-M接收来自步骤510的命令和HMQ RKEY。HMQ协处理器115-1可启动命令发送。此外,HMQ协处理器115-M可以是发送和接收HMQ协处理器。
在步骤530中,HMQ协处理器115-M查验由HMQ协处理器115-1发送的HMQ RKEY。由于HMQ RKEY基于地址230被加密,因此,如果地址230没有被修改,那么HMQ RKEY可以是有效的。例如,如上面讨论的那样,HMQ协处理器115-M具有由软件130-M在HMQ140-M的初始化过程中产生的基本秘密的副本(步骤430)。HMQ协处理器115-M解密HMQ RKEY散列210。如果散列210是有效的,那么地址230是有效的,并且,HMQ协处理器115-M前进到步骤540,否则,HMQ协处理器115-M前进到步骤595。
在图5的步骤540中,为了防止在分配的HMQ 140-M的界限内开始但在分配的HMQ 140-M的界限外结束的消息写入,HMQ协处理器115-M进行检查以确保消息的大小不超过HMQ RKEY大小220。如果要写入的消息的大小超过HMQ RKEY大小220,那么HMQ协处理器115-M中止,并且前进到步骤595;否则,HMQ协处理器前进到步骤590。如上面描述的那样,HMQ协处理器115-M不受操作系统约束,并且关于HMQ协处理器115-M可写入到存储器120-M中的哪个位置不受限制。例如,HMQ协处理器115可中止这种命令以防止未授权地写入存储器120-1。
在图5的步骤590中,HMQ协处理器115-M基于通过HMQ协处理器115-M接收的命令使条目332-1加入队列。例如,HMQ协处理器115-M可使用图6所示的排队方法。
在图5的步骤595中,HMQ协处理器115-M拒绝命令并且向HMQ协处理器115-1返回错误。在另一实施例中,HMQ协处理器115-M可简单地拒绝命令并且不向HMQ协处理器115-1返回任何错误。
在另一实施例中,诸如在发送器全部受信任的情况下,发送的命令可以不包含HMQ RKEY,或者接收HMQ协处理器115-M可在不首先验证HMQ RKEY的情况下简单地执行命令。在又一实施例中,HMQ RKEY可包含HMQ的地址和要存储的条目。
HMQ中的消息排队
当HMQ协处理器115-M接收到以原子方式将消息入队到HMQ140-M中的命令时,HMQ协处理器115-M以原子方式将消息输入到在与命令一起发送的HMQ RKEY中指定的HMQ 140-M中。通过保持原子分配指针322以原子方式存储该消息。
图6是示出根据实施例的以原子方式将消息入队到HMQ 140-M中的流程图。虽然图6示出根据实施例的步骤,但其它的实施例可省略、添加、重新排序和/或修改示出的步骤中的任一个。虽然本实施例描述了以原子方式将消息入队到HMQ中,但其它的实施例可包含基于应用和设备的许多其它步骤。
在图6的步骤610中,继续以上的例子,HMQ协处理器115-M接收并且验证以原子方式将消息入队到HMQ 140-M中的命令。
在步骤610中,HMQ协处理器115-M确定HMQ 140-M是否是满的。HMQ协处理器115-M基于头指针320、分配指针322和HMQ140-M中的条目的大小确定指定的HMQ 140-M是否是满的。如果HMQ 140-M是满的,那么HMQ协处理器115-M前进到“是”分支步骤695,否则,HMQ协处理器115-M前进到“否”分支步骤620。在实施例中,如果分配指针322等于头指针320减去条目的大小的量,那么HMQ 140-M是满的。在另一实施例中,头指针320和分配指针322是条目大小的倍数,因此,如果头指针320减分配指针322等于1,那么HMQ 140-M是满的。注意,图3所示的实施例中,条目332为相同的固定大小;但是,在其它实施例中,条目332的大小可以不为相同或固定的大小。
在步骤620中,HMQ协处理器115-M更新原子分配指针332以指向有效载荷330中的下一条目。例如,如果分配指针322存储条目大小的倍数,那么,以有效载荷330中的条目332的数目为模,分配指针322简单地加1。
在步骤630中,HMQ协处理器115-M执行命令以通过将消息存储在原子分配指针332指向的条目332-1中来以原子方式将该消息加入队列。例如,HMQ协处理器115-M可通过设定信号标记334-1以指示条目332-1没有准备好读取,将条目332-1初始化。在将消息写入到条目332-1之后,HMQ协处理器115-M可将信号标记224-1清零,以指示条目332-1完成,并且,HMQ协处理器115-M不再写入它。HMQ协处理器115-M然后前进到步骤640。
在步骤640中,HMQ协处理器115-M确定中断标记316是否被设定。如果是,那么HMQ协处理器115-M前进到步骤650。在步骤650中,HMQ协处理器115-M向节点105-M上的操作系统发送指示新消息已被加入队列的中断。例如,HMQ协处理器115-M向处理器110-M发送具有存储于中断标记316中的值的中断。此外,HMQ协处理器115-M可写入处理器110-M上的L3高速缓存器,指示消息已被加入队列。
如果在步骤640中中断没有被设定,或者,在步骤650之后,HMQ协处理器115-M前进到步骤690。在步骤690中,HMQ协处理器向例如为HMQ协处理器115-1的发送器告知接收的命令已被执行。在另一实施例中,在步骤690中,HMQ协处理器115-M不向例如为HMQ协处理器115-1的发送器发送任何应答,而是,HMQ协处理器115-M仅等待接收另一命令。
在步骤695中,HMQ协处理器115-M不执行在HMQ 140-M中存储消息的命令,并且向例如为HMQ协处理器115-1的发送器返回错误。在另一实施例中,HMQ协处理器115-M不向HMQ协处理器115-1返回错误,而仅仅拒绝接收的命令,并且等待接收新的命令。在又一实施例中,HMQ协处理器115-M等待特定的时间量并且重新尝试存储从HMQ协处理器115-1接收的命令,从而返回到步骤610。
HMQ的条目的退出队列(dequeue)
图7是示出根据实施例的读取存储于特定的条目中的消息并且使条目退出队列的流程图。虽然图7示出根据实施例的步骤,但其它的实施例可省略、添加、重新排序和/或修改示出的步骤中的任一个。虽然本实施例描述了读取存储于特定的条目中的消息并且使条目退队,但其它的实施例可包括基于应用和器件的许多其它的步骤。
在图7的步骤700中,继续前面的例子,软件130-M接收指示条目332-1被加入队列的中断。在另一实施例中,软件130-M轮询HMQ协处理器115-M以确定新的条目是否加入队列。如果HMQ协处理器115-M是空的,那么软件130-M不会尝试读取该条目。
在图7的步骤710中,软件130-M检查头指针320指向的条目332-1的信号标记334-1,以确保存储于条目332-1中的消息准备好被读取。如果条目332-1准备好被读取,那么软件130-M分支到“是”步骤720,否则,软件130-M分支到“否”步骤795。在另一实施例中,处理器110-M上的L3高速缓存可包含要读取的条目的地址。
在图7的步骤720中,通过软件130,读取条目332-1中的消息。软件然后前进到步骤790。例如,软件130可将条目332-1复制到存储器中或文件或文件套接字中的另一位置。
在图7的步骤790中,软件130-M更新头指针320以指向有效载荷330中的下一条目。例如,如果头指针320是条目大小的倍数,那么,以有效载荷330中的条目332的数目为模,头指针320加1。在另一实施例中,软件130-M以原子方式更新头指针320到有效载荷330中的下一条目的地址。软件130-M也可更新信号标记334-1以指示条目332-1被读取并且是自由的。
在步骤795中,软件130-M可停止其读取头指针320所指向的条目332-1的尝试。在另一实施例中,软件130-M可返回到步骤710。作为替代方案,软件130-M可等待特定的时间量并且返回到步骤710。
接收的消息的同步化
向HMQ协处理器发出的命令可被同步化。例如,HMQ协处理器115-M可通知HMQ协处理器115-M发送的命令HMQ协处理器115-1被成功执行,并且,一旦命令被执行,就可终止HMQ协处理器115-1与115-M之间的连接。
可通过HMQ协处理器115-M串行处理命令。例如,在HMQ协处理器115-M忙时接收的命令可被加入队列以便随后执行。例如,HMQ协处理器可具有串行标记,该串行标记如果被设定为1,那么串行执行命令。
命令也可被强制在成功完成前一命令之后有条件地执行。因此,各命令可具有条件标记。例如,如果第二命令是以第一命令为条件的,那么第二命令的条件标记可被设定为使得如果第一命令在没有错误的情况下被执行,那么第二命令可被执行。
重新组装消息
为了防止多HMQ系统拥塞,与命令相关的消息可被分解。接收HMQ协处理器可在执行命令之前重新组装消息。注意,接收器可以按与发送块的次序不同的次序接收块。因此,HMQ协处理器可以不只是对于特定的命令和消息重新组装块,而且还可以在重新组装之前将块排序。在实施例中,消息部分可分解成块。作为替代方案,命令和消息均可分解成块。
例如,使用图1所示的实施例,HMQ协处理器115-1可通过为128字节的消息向HMQ协处理器115-M发出命令。作为一次发送整个128字节消息的替代,HMQ协处理器115-1将消息分解成16字节的块,向各块分配序号,并且将各被标号的块发送到HMQ协处理器115-M。HMQ协处理器115-M基于块序号依次重新组装被标号的块,然后执行接收的命令并且存储伴随的重新组装的消息。
错误报告
接收HMQ协处理器可被配置为触发特定的错误,或者向发送HMQ协处理器返回特定的错误。例如,如果在HMQ协处理器115-M正在处理从HMQ协处理器115-1发送的命令时出现错误,那么HMQ协处理器115-M可触发一个或更多个特定的错误,并且也可向HMQ协处理器115-1返回该一个或更多个错误。
HMQ协处理器可触发包含但不限于以下错误的错误:HMQRKEY查验;队列与页边界或HMQ RKEY区域相交;消息大小不等于在头部310中规定的条目大小;使能标记311被设定为零或者不匹配期望值;消息大小不是2的幂;有效载荷330大小不是消息大小的倍数;分配指针322不位于0到条目332的数目的范围中;或者,HMQ300或者具体是有效载荷330是满的。此外,如果在尝试写入条目332-1的同时触发错误,那么代表特定错误的值可被写入信号标记334-1。此外,如果触发错误,那么可设定错误标记313。
硬件概要
根据实施例,通过一个或更多个特殊用途计算装置实现这里描述的技术。特殊用途计算装置可被硬接线以执行技术,或者可包含被永久编程以执行技术的诸如一个或更多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的数字电子器件,或者可包含被编程为根据固件、内存、其它存储器或组合中的程序指令执行技术的一个或更多个通用硬件处理器。这种特殊用途计算装置也可组合定制硬接线逻辑、ASIC或FPGA与定制编程以实现该技术。特殊用途计算装置可以是台式计算机系统、便携式计算机系统、手持装置、联网装置或结合硬接线和/或程序逻辑以实现该技术的任何其它装置。
例如,图8是示出可实现本发明的实施例的计算机系统800的框图。计算机系统800包含用于传送信息的总线802或其它通信机构和与总线802耦合的用于处理信息的硬件处理器804。例如,硬件处理器804可以为通用微处理器。
计算机系统800还包括与总线802耦合的用于存储要通过处理器804执行的信息和指令的主存储器806,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器806也可被用于在要通过处理器804执行的指令的执行过程中存储临时变量或其它的中间信息。这种指令在存储于处理器804可访问的非暂时性存储介质中时,使得计算机系统800变为被定制以执行在指令中规定的操作的特殊用途机器。
计算机系统800还包括与总线802耦合的用于存储处理器804的静态信息和指令的只读存储器(ROM)808或其它的静态存储设备。用于存储信息和指令的诸如磁盘、光盘或固态驱动的存储设备810被设置并且与总线802耦合。
计算机系统800可通过总线802与用于向计算机用户显示信息的诸如阴极射线管(CRT)的显示器812耦合。输入装置814(包括数字字母和其它键)与总线802耦合以向处理器804传送信息和命令选择。其它类型的输入装置是用于向处理器804传送方向信息和命令选择并且用于控制显示器812上的光标移动的光标控制816,诸如鼠标、跟踪球或光标方向键。该输入装置典型地在两个轴(即第一轴(例如,x)和第二轴(例如,y))上具有两个自由度,这两个自由度允许装置规定平面中的位置。
计算机系统800可通过使用与计算机系统组合以导致计算机系统800成为或者将其编程为特殊用途机器的定制的硬接线逻辑、一个或更多个ASIC或FPGA、固件和/或程序逻辑实现这里描述的技术。根据实施例,响应处理器804执行包含于主存储器806中的一个或更多个指令的一个或更多个序列,由计算机系统800执行这里的技术。这种指令可从诸如存储设备810的另一存储介质被读入到主存储器806中。执行包含于主存储器806中的指令的序列导致处理器804执行这里描述的处理步骤。在替代性实施例中,硬接线电路可作为软件指令的替代被使用或者与其组合使用。
这里使用的术语“存储介质”指的是存储导致机器以特定的方式操作的数据和/或指令的任何非暂时性介质。这种存储介质可包含非易失性介质和/或易失性介质。非易失性介质包含例如光盘、磁盘或固态驱动,诸如存储设备810。易失性介质包含动态内存,诸如主存储器806。存储介质的常见形式包含例如软盘、柔性盘、硬盘、固态驱动、磁带或任何其它的磁数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它的内存芯片或盒子。
存储介质与传送介质明显不同但可与其组合使用。传送介质参与在存储介质之间传送信息。例如,传送介质包含同轴电缆、铜导线和光纤,包括包含总线802的导线。传送介质也可采取声波或光波的形式,诸如在无线电波和红外-红数据通信中产生的那些。
各种形式的介质可参与向处理器804运载一个或更多个指令的一个或更多个序列以便执行。例如,可首先在远程计算机的磁盘或固态驱动上运载指令。远程计算机可将指令加载到其动态内存中并且通过使用调制解调器在电话线上发送指令。计算机系统800本地的调制解调器可接收电话线上的数据并且使用红外-红传送器以将数据转换成红外-红信号。红外-红检测器可接收在红外-红信号中运载的数据并且,适当的电路可将该数据放置在总线802上。总线802将数据运载到主存储器806,从该主存储器806,处理器804检索并且执行指令。通过主存储器806接收的指令可以可选地在被处理器804执行之前或之后存储于存储设备810上。
计算机系统800可包括与总线802耦合的通信接口818。通信接口818提供与和局域网822连接的网络链接820的双向数据通信耦合。例如,通信接口818可以是集成服务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器或向相应类型的电话线提供数据通信连接的调制解调器。作为另一例子,通信接口818可以是向兼容LAN提供数据通信连接的局域网络(LAN)卡。也可实现无线链接。在任何这种实现中,通信接口818发送和接收运载代表各种类型的信息的数字数据流的电气、电磁或光学信号。
网络链接820典型地通过一个或更多个网络向其它数据装置提供数据通信。例如,网络链接820可通过局域网822向主机计算机824或向通过因特网服务提供商(ISP)826操作的数据设备提供连接。ISP826又通过现在常称为“因特网”828的世界范围分组数据通信网络提供数据通信服务。局域网822和因特网828均使用运载数字数据流的电气、电磁或光学信号。运载去往和来自计算机系统800的数字数据的、通过各种网络的信号和网络链接820上以及通过通信接口818的信号是传送介质的示例性形式。
计算机系统800可通过网络、网络链接820和通信接口818发送消息并且接收数据,包含程序代码。在因特网的例子中,服务器830会通过因特网828、ISP 826、局域网络822和通信接口818传送对应用程序的请求代码。
接收的代码可在其被接收时由处理器804执行,并且/或者,存储于存储设备810或其它的非易失性存储器中,以供以后执行。
在以上的说明书中,已经参照可因实现而改变的大量具体细节描述了实施例。因此,说明书和附图应被视为解释性的,而不是限制性的。本发明的范围的唯一的和排他的指示以及申请人意图成为本发明的范围的是本申请发布的表现为发布权利要求的特定形式的权利要求书的字面和等同范围,包含任何后续的校正。
Claims (14)
1.一种设备,包括:
排队电路,
所述排队电路与存储器耦合,
所述排队电路被配置为:
接收识别所述存储器中的队列的排队命令;
响应接收到所述排队命令,将队列条目加入通过所接收到的排队命令识别的队列。
2.根据权利要求1所述的设备,其中,所述设备包含集成电路芯片,该集成电路芯片包含与所述排队电路分开的处理器,所述处理器与所述排队电路耦合。
3.根据权利要求1所述的设备,还包括:
其中,所述排队命令包含RKEY,
其中,所述RKEY识别所述存储器中的所述队列。
4.根据权利要求3所述的设备,其中,所述排队电路进一步被配置为:
响应接收到所述排队命令,在将条目加入通过所述RKEY识别的队列之前,验证所述RKEY;
如果所述RKEY被成功验证,那么,响应接收到所述排队命令,将队列条目加入通过所述RKEY识别的所述队列。
5.根据权利要求1所述的设备,其中,所述排队电路进一步被配置为串行执行排队命令。
6.根据权利要求1所述的设备,其中,所述排队命令包含在多个块中接收的有效载荷,并且,所述排队电路进一步被配置为响应接收到所述排队命令和所述多个块而重新组装所述多个块。
7.根据权利要求1所述的设备,其中,所述排队命令包含在多个块中接收的有效载荷,其中,以与发送所述多个块的次序不同的次序接收所述多个块,并且,所述排队电路进一步被配置为响应接收到所述排队命令和所述多个块而重新组装所述多个块。
8.一种包括包含软件指令的机器执行操作的方法,其中,所述软件指令在通过计算设备被执行时导致执行包括以下步骤的步骤:
向排队电路传送特定排队命令,以将队列条目加入存储于与所述排队电路耦合的存储器中的特定队列,所述特定排队命令识别所述特定队列,
其中,所述排队电路进一步被配置为:
接收识别所述存储器中的队列的排队命令;
响应接收到排队命令,将队列条目加入通过所接收到的排队命令识别的队列;
使队列条目退出所述队列。
9.根据权利要求8所述的方法,其中,所述排队电路位于集成电路芯片上,该集成电路芯片包含与所述排队电路分开的处理器,所述处理器与所述排队电路耦合。
10.根据权利要求8所述的方法,其中,使队列条目退出所述队列包含设定所述队列条目中的值以指示该队列条目已被读取。
11.根据权利要求8所述的方法,其中,使队列条目退出所述队列包含以原子方式设定指针指向没有被读取的队列条目。
12.根据权利要求8所述的方法,还包括接收响应所述队列条目已被加入队列的中断。
13.根据权利要求8所述的方法,其中,使队列条目退出所述队列包含在存储器中复制所述队列条目。
14.一种包括用于执行根据权利要求8~13中的任一项中所述的方法的装置的系统。
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/778,307 US9158810B2 (en) | 2012-10-02 | 2013-02-27 | Hardware message queues for intra-cluster communication |
US13/778,307 | 2013-02-27 | ||
PCT/US2013/048110 WO2014055145A1 (en) | 2012-10-02 | 2013-06-27 | Hardware message queues for intra-cluster communication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104704491A true CN104704491A (zh) | 2015-06-10 |
CN104704491B CN104704491B (zh) | 2018-04-10 |
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 (3)
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 | 半连接加速 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 | 能够实现不同物理域地址空间的节点间的聚类的存储总线协议 |
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)
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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN1640089A (zh) * | 2001-03-26 | 2005-07-13 | 英特尔公司 | 用于NGIO/InfiniBandTM应用的远程密钥验证的方法和机制 |
CN101227689A (zh) * | 2007-12-27 | 2008-07-23 | 华为技术有限公司 | 信息上报方法及装置 |
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 |
Family Cites Families (134)
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 |
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 |
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 |
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 |
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 |
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 |
-
2013
- 2013-02-26 US US13/778,013 patent/US9292569B2/en active Active
- 2013-02-26 US US13/778,009 patent/US9063974B2/en active Active
- 2013-02-27 US US13/778,307 patent/US9158810B2/en active Active
- 2013-03-07 US US13/789,524 patent/US9251272B2/en active Active
- 2013-03-14 US US13/828,555 patent/US10223116B2/en active Active
- 2013-03-15 US US13/839,525 patent/US9372813B2/en active Active
- 2013-03-15 US US13/838,542 patent/US9400821B2/en active Active
- 2013-06-14 EP EP13733171.6A patent/EP2904513B1/en active Active
- 2013-06-14 CN CN201380049301.7A patent/CN104662534B/zh active Active
- 2013-06-14 WO PCT/US2013/045881 patent/WO2014055138A1/en active Application Filing
- 2013-06-14 CN CN201810434459.0A patent/CN108664596B/zh active Active
- 2013-06-14 CN CN201380049816.7A patent/CN104662538B/zh active Active
- 2013-06-14 JP JP2015534471A patent/JP6320393B2/ja active Active
- 2013-06-14 WO PCT/US2013/045873 patent/WO2014055137A1/en active Application Filing
- 2013-06-14 EP EP13734557.5A patent/EP2904514B1/en active Active
- 2013-06-27 CN CN201380051875.8A patent/CN104704491B/zh active Active
- 2013-06-27 EP EP13737064.9A patent/EP2904515B1/en active Active
- 2013-06-27 ES ES13737064T patent/ES2880268T3/es active Active
- 2013-06-27 WO PCT/US2013/048110 patent/WO2014055145A1/en active Application Filing
- 2013-07-22 US US13/947,674 patent/US9557997B2/en active Active
- 2013-09-30 WO PCT/US2013/062718 patent/WO2014055443A1/en active Application Filing
- 2013-09-30 EP EP13777395.8A patent/EP2904521B1/en active Active
- 2013-09-30 CN CN201380057680.4A patent/CN104769591B/zh active Active
- 2013-10-01 CN CN201380051672.9A patent/CN104756091B/zh active Active
- 2013-10-01 EP EP13777400.6A patent/EP2904499B1/en active Active
- 2013-10-01 CN CN201380057937.6A patent/CN104769561B/zh active Active
- 2013-10-01 WO PCT/US2013/062859 patent/WO2014055512A1/en active Application Filing
- 2013-10-01 EP EP13783718.3A patent/EP2904500B1/en active Active
- 2013-10-01 WO PCT/US2013/062880 patent/WO2014055526A1/en active Application Filing
-
2015
- 2015-05-11 US US14/709,302 patent/US9542443B2/en active Active
- 2015-12-10 US US14/964,805 patent/US10055224B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN1640089A (zh) * | 2001-03-26 | 2005-07-13 | 英特尔公司 | 用于NGIO/InfiniBandTM应用的远程密钥验证的方法和机制 |
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 |
CN101227689A (zh) * | 2007-12-27 | 2008-07-23 | 华为技术有限公司 | 信息上报方法及装置 |
Non-Patent Citations (1)
Title |
---|
ERIC A. BREWER ,FREDERIC T. CHONG: "Remote Queues: Exposing Message Queues for Optimization and Atomicity", 《7TH. ANNUAL ACM SYMPOSIUM ON PARALLEL ALGORITHMS AND ARCHITECTURES》 * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104704491A (zh) | 用于集群内通信的硬件消息队列 | |
US20210390063A1 (en) | Technologies for Secure I/O with Accelerator Devices | |
CN104620564B (zh) | 用于经由利用数据隧道的接口的多协议数据元素的传输的装置和方法 | |
US9986028B2 (en) | Techniques to replicate data between storage servers | |
AU2005223193B2 (en) | Digital rights management structure, portable storage device, and contents management method using the portable storage device | |
KR101780634B1 (ko) | 가상 화폐를 이용하여 주식을 발행하여 분배하고 발행된 주식의 소유권을 이전하는 방법 및 서버 | |
CN109949155A (zh) | 用于经由区块链的基于信任的支付的方法和系统 | |
CN108370345A (zh) | 用于存储消息数据的系统和方法 | |
CN108923909A (zh) | 区块链生成方法、装置、计算机设备及存储介质 | |
US20210311629A1 (en) | Trusted memory sharing mechanism | |
WO2013109640A1 (en) | Techniques for command validation for access to a storage device by a remote client | |
CN102193886A (zh) | 能够进行并发数据操纵的dma引擎 | |
CN101095125A (zh) | 基于RNIC的iSCSI目标方数据移动功能卸载 | |
US20180337904A1 (en) | System, methods and software application for sending secured messages on decentralized networks | |
CN101103628A (zh) | 主机装置、便携式存储装置以及用于更新关于存储在便携式存储装置中的版权对象的元信息的方法 | |
US11281579B2 (en) | Cryptographic separation of MMIO on device | |
JP4326189B2 (ja) | 自律型icカード及び通信システム | |
CN103597456A (zh) | 用于在分布式存储器环境中实施存储器段访问控制的方法和装置 | |
CN111339201B (zh) | 基于区块链的测评方法及系统 | |
JP5139028B2 (ja) | コンテンツデータ管理システム及び方法 | |
CN116635820A (zh) | 用于控制计算存储处理器的方法和装置 | |
US20060156413A1 (en) | Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device | |
US20080313468A1 (en) | Information terminal and user domain management method | |
CN117121037A (zh) | 使用临时密钥对进行区块链资产的原子交换的方法和系统 | |
US20130036160A1 (en) | License issuing system, client terminal, server, and license issuing method |
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 |