CN105637524A - 硬件平台中的资产管理设备和方法 - Google Patents
硬件平台中的资产管理设备和方法 Download PDFInfo
- Publication number
- CN105637524A CN105637524A CN201480054765.1A CN201480054765A CN105637524A CN 105637524 A CN105637524 A CN 105637524A CN 201480054765 A CN201480054765 A CN 201480054765A CN 105637524 A CN105637524 A CN 105637524A
- Authority
- CN
- China
- Prior art keywords
- address
- data
- kernel
- order
- memory
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000015654 memory Effects 0.000 claims abstract description 92
- 238000007726 management method Methods 0.000 claims abstract description 76
- 238000013500 data storage Methods 0.000 claims description 40
- 230000004044 response Effects 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 11
- 230000004913 activation Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 29
- 230000006870 function Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 8
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000004148 unit process 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Mathematical Physics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明的实施方案提供一种用于管理资产的资产管理方法,该方法实施在集成电路上。该资产管理方法使用密钥存储器(102)以存储密钥,每个密钥与各自的资产标识符相关联,并且使用数据存储器(103)以存储资产信息。所述方法包括:-接收关于资产的输入指令,其包括资产标识符以及与资产相关联的资产信息的集合,-根据所述资产标识符计算指向所述密钥存储器(102)的地址的集合,计算地址的集合的步骤包括根据资产标识符计算散列,-依据输入指令,基于计算出的地址的集合,对于资产在密钥存储器(102)中找到或定位条目,-根据密钥存储器(102)中的对于资产所找到或定位了的条目的地址和位置,计算指向用于资产的数据存储器(103)的数据地址;-在计算出的数据地址读取在数据存储器(103)中的数据;以及-基于在所述数据地址读取的在数据存储器中的数据,执行输入指令。本发明尤其应用于金融订单的管理。
Description
技术领域
概括而言,本发明涉及数据处理***,更具体而言,本发明涉及用于在硬件平台中管理资产(例如金融订单)的方法和***。
背景技术
随着在金融业中对于更快地处理大量数据的需求的增长,基于依赖通用CPU的集群(cluster)的数据处理***显示出了很多限制。实际上,如果集群方法涉及廉价的硬件并且提供简化发展的工具,随着对于高性能计算的需求增加其具有很多更加显著的限制:高电力消耗、昂贵的维护成本、数据中心所需的大量空间。此外,利用集群所获得的整体性能并不随集群数量成比例地增加。不同于集群方法,使用有限数量的配备有FPGA的机器,基于FPGA的数据处理***能够以大吞吐量来并行执行复杂的任务。因此,该硬件方法对于金融和投资业领域中的应用软件的研发尤其适用,在这些领域中,快速计算是保持竞争力的关键。
FPGA(现场可编程门阵列的缩写)指的是可以在制造之后进行配置的集成电路。该配置一般使用硬件描述语言(HDL)来指定。FPGA包含大量的可编程逻辑部件(“逻辑块”),以及使得块能够“连接在一起”的可重复配置的互联的体系。逻辑块可以被配置为执行复杂组合功能,或仅执行简单的基本逻辑运算(布尔AND、OR、NAND、XOR等)。因为FPGA可以执行并行计算,所以仅仅在几个时钟周期内,对于多个独立的输入可以同时执行相同的算法。因此,FPGA尤其适于非常快速地执行复杂计算。
出于这些原因,越来越多的市场数据处理***使用FPGA来设计。
市场数据处理***一般包括订单管理设备,其用于以一定的数据结构(例如散列表)存储关于在输入指令中识别出的每个金融订单的细节。订单管理设备进一步依据输入指令而管理对该数据结构的访问。例如,如果接收到了识别订单的增加指令,则订单管理结构可以向数据结构增加订单;或者如果接收到了删除指令,则订单管理结构可以从数据结构中删除订单。
然而,当前的订单管理设备提供的性能很差,而且不能符合与最新的网络连接的10Gb/s吞吐量相关联的操作速率。一个已知的克服这样的不足的方法是,将负载分散在多个服务器上,每个服务器仅处理数据供给的一部分。然而,这增加了整体***的延迟,而这是不符预期的。
因此,存在着对于基于硬件方案(硬件加速)的改进了的订单管理设备的需求,尤其是基于围绕FPGA建立的方案。
发明内容
为了解决这些问题和其他问题,提供如所附独立权利要求1所限定的资产管理方法,以及如所附权利要求8所限定的资产管理设备。从属权利要求中限定了优选的实施方案。
本发明允许处理比现有技术更多的每单位时间消息。
更概括而言,根据本发明的实施方案的资产管理设备和方法进一步允许快速的指令执行。此外,使用可重复配置平台优化了数据处理所需的空间,并且节约了能源。
本发明的其他益处将通过下面的参考所附附图的具体描述而变得更加明显。
附图说明
参考所附附图,现在将通过示例的方式来描述本发明的实施方案,在附图中,相似的附图标记表示相似的元素,而且在附图中:
-图1表示示例性的市场数据处理架构;
-图2示出散列表的操作;
-图3表示根据本发明的某些实施方案的订单管理设备的架构;
-图4是示出根据本发明的某些实施方案的散列产生的函数图;
-图5是根据本发明的某些实施方案的流程图,
-图6显示根据本发明的某些实施方案的示例性资产管理设备,以及
-图7是示出根据本发明的某些实施方案的示例性的FPGA实施的框图。
具体实施方式
本发明的实施方案提供了可以用于数据处理***(例如市场数据处理***)的资产管理设备和方法,其用于存储和检索与资产识别符相关联的资产。图1显示了示例性的市场数据处理***100,其用于获取和处理从一个或多个数据源(例如,金融交易所)传递的市场数据,在该***中,可以使用根据本发明的某些实施方案的资产管理设备10。本文使用的术语“市场数据”指的是从多个外部源接收的以数据流形式的数据,包括报价以及与交易相关的数据(权益、固定收入、金融衍生产品和其他投资工具)。
数据处理架构100包括至少一个解码单元3(也称为“市场数据包解码器”),该解码单元与馈送源交互,以便处理以给定的特定于源的协议(例如,FAST或FIX)接收的市场数据流,并且将其解码。解码单元3被配置为,将数据流从其特定于源的格式转换为内部格式(数据标准化过程)。根据每个数据馈送中的消息结构,解码单元3以特定的操作处理每个字段值(fieldvalue),将缺失数据填充以其缓存记录的值和状态,并且将其映射到***所使用的格式。解码单元3然后可以基于所解码的消息来调用所选择的订单管理程序。
资产管理设备10(在下面的描述中也称为“订单管理设备”)被配置为,存储关于每个接收到的订单的细节,从而在需要订单时对其进行检索。限制项聚类和账簿建立设备4,其用于将等待进入订单账簿的订单聚类,对于每个工具呈现可能聚类到限制项中并且按价格排序的订单的列表。
如同本文所使用的,订单账簿指的是金融工具(例如,股票)的未付款限制项订单的电子集合。术语“订单”或“限制项订单”或“市场订单”指的是以特定的限制项价格或更好的价格,或以市场订单的市场价格来买入或卖出给定数目的金融工具的订单。此外,如同本文所使用的,术语“限制项”指的是对应于一个或几个订单的订单账簿中的“横排”或“条目”。当其对应于几个订单时,其还称为“聚类的限制项”。限制项是根据价格而聚类的,即,具有相同价格的订单的数目相加,形成限制项数目。聚类的限制项还可以具有“订单计数”属性,该属性反映被聚类在该限制项中的订单的数量。
限制项聚类和账簿建立设备4取得在订单管理设备10的存储器中混合的订单,并且使用在每个指令中传递的工具标识符来对其按账簿(也称为“订单账簿”)排序。订单账簿可以包括来自若干工具的订单,或者包括来自不同市场中的相同工具(合并账簿)的订单。此外,限制项聚类和账簿建立设备4取得相同的账簿中的每个单独订单,并且对其按价格进行分侧(出价或分价侧)和匹配,增加其数目。如同本文中所使用的,订单的大小或数目表示待买入或卖出的股份的数量。
然后,消息分发和传输单元5将经处理的数据格式化为消息,并且将其分发到所选择的客户端应用程序6以供进一步的处理和决策。当客户端应用程序6位于不同的服务器时,消息传输可以在网络上完成。
订单管理设备10的功能为,存储并检索金融订单。来自交易所的消息有时并不承载对于立即使用它们而言全部的必要信息。例如,增加消息(其表示用于在订单账簿中增加订单的指令)包含全部所需信息,而删除消息(其表示用于删除在订单账簿中的订单的指令)仅承载订单的标识符。在这样的情况下,消息并没有承载足够的信息,消息的接收方需要对订单、其相关联的价格和数目进行检索,甚至在某些市场中,还对其工具和侧(出价侧或要价侧)进行检索,然后再执行操作,例如删除订单。
现有的订单管理设备10是以软件实施的。其一般使用散列表或散列图。
散列表表示一种标准软件部件,其在多种库和语言中都是可用的。这些散列表的密钥是订单标识符(订单ID),值是完整的订单或指向这些订单的指针。散列表将每个密钥(订单ID)关联到使用散列函数计算出的地址,如图2所示。该地址则用于在存储器中对值(完整的订单)进行检索。订单ID不能直接用作地址,因为订单ID在比存储器地址位更多的位上进行编码,因此其过长。此外,一般而言,可能的ID比可用的存储器位置多。使用这样的数据结构,当散列函数对多于一个的订单ID产生相同的地址时,经常出现“冲突”。为了克服冲突问题,某些现有的订单管理设备使用了多个散列函数,以便在出现冲突时拥有替选地址,或者在每个散列表条目中将多个订单链表化。其他方案基于这样的有效散列函数:该散列函数试图在整个存储器中均匀地分散订单,以避免冲突。
然而,这些类型的数据结构产生了大量的随机存储器访问,因为订单ID在市场数据流中并不以顺序的方式出现,而散列函数将这些已然是随机的ID均匀地分布到整个存储器上。此外,在数据集类似于对于存储大量工具的实时订单所需的数据集的情况下,这产生了大量的CPU(“中央处理器”的缩写)缓存未中(cachemiss),导致性能不佳。
所有技术领域中的大量现有硬件***使用下列两种类型的散列表:只读散列表以及基于状态机或计数器的散列表。
对于只读散列表,硬件***不修改散列表的内容。存储器的静态性质降低了整体复杂度,并且使得整个算法能够容易流水线化。US7921046描述了使用这样的散列表的***。然而,这样的***不适用于订单管理设备,因为其需要随着从市场接收的数据而增加和更新其条目。
基于状态机或计数器的散列表被配置为,增加和修改条目,但是一次仅处理一个消息。消息的处理时间取决于所用的存储器的类型。例如,对于内部FPGA存储器,处理时间花费5至6个时钟周期;对于类似QDR(“四倍速率”的缩写)的低延迟外部存储器,处理时间花费10至15个时钟周期。由于处理消息所花费的时间,现有的使用这样的散列表的方案不能符合10Gb/s的市场数据带宽。实际上,在最多每2个时钟周期内接收消息而且一次仅处理一个消息的情况下(对于普通的以200MHz运行的FPGA内核),这需要每2个时钟周期处理一个消息。
因此,常规的订单管理设备不允许在每单位时间内处理足够的消息。
发明人首先发现,每单位时间处理的消息的数量可以通过提高散列表的时钟频率而相对于常规方法得到提高。这样的方法将需要提供较短的周期,同时维持处理消息所需的相同时钟周期的数量保持不变。然而,实施这样的方法很复杂,因为所使用的FPGA和存储器在频率上受到限制。从而,通过这样的方法可以获得的益处只会少量地增强性能。
另一个设想的方法是,修改散列表算法,以便使用更小的每消息时钟周期(clockcyclespermessage)。然而,实施该方法也是复杂的,因为用户不能改变存储器的延迟,而且FPGA需要几个周期来将数据时钟输入和输出其输入/输出块。利用这种占据基于状态的散列表所需要的15个周期之外的几个周期的方法所预期的益处仅仅是少量地增强性能。
本发明提供一种基于类似于用于管理由外部源接收的订单的结构的散列表而得到改进的订单管理设备。
尽管本发明呈现对于管理金融订单的特定益处,但是本发明也应用到在不同应用领域中的其他类型资产的管理,其中所述资产与资产标识符相关联。仅出于示意的目的,下面的描述将参考金融订单(作为资产)的管理作出。
图3示出了根据本发明的某些实施方案的资产管理设备10(下文中称为“订单管理设备”)的架构。
订单管理设备10围绕由外部存储器和网络接口环绕的并行处理设备(例如FPGA)建立。仅出于示意的目的,下面的描述将参考FPGA类型的并行处理设备而作出。
作为图1的市场数据处理***的一部分,订单管理设备10一般从数据包解码设备3接收标准化了的输出指令。更具体而言,数据包解码设备3接收市场数据流,并且基于市场数据流而对于每个消息输出标准化的在所有市场上都相同的指令100,这使得之后的内核(订单管理设备10、限制项聚类和账簿建立设备4等)是独立于市场的,并且可以仅研发一次这些内核。
每个标准化的指令100可以包括指示要执行的操作类型的操作代码(或“操作码”)、订单ID以及对于订单的每个特性(工具ID、侧、价格、数目等)的字段。当该指令在串流总线上传输时,可以使用额外的“有效”信号来将指令标记为有效的,并且可以使用“就绪”信号来指示反压(标准AvalonST)。
根据本发明的订单管理设备10基于流水线方法,其能够同时执行多个消息。流水线处理分为更小的处理步骤,每个部分一次处理一个消息,使得整个订单管理设备10可以同时处理若干消息。根据本发明的订单管理设备10尤其被设置为解决下述情况:正在并行处理的消息中的一些指向相同的订单。有利地,尽管这些消息是同时受到处理的,但结果就和这些消息受到顺序处理一样。
通过将订单管理设备10流水线化,由于同步化以及不同子内核之间的通信问题,对于每个指令使用了更多的周期。然而,提升时钟频率变得简单了,因为可以在不损害性能的情况下***更多的寄存器级。因此,可以在更高的频率下使用订单管理设备10,对外部存储器的频率进行匹配以使用其全部的潜力,并且消除由用于同步和通信的时钟周期所导致的性能恶化。根据本发明的订单管理设备的整体延迟从而与假设其不是流水线化的相同,而同时能够以更高的吞吐量处理指令。
根据本发明的流水线化的订单管理设备尤其被布置为,解决具有相同标识符的多重指令的问题。
在图3中,F1箭头表示主数据路径,F2箭头表示存储器读取,F3箭头表示存储器写入。
应当注意,图3仅是订单管理设备10的功能性表示,而且为了便于理解该图,没有显示某些较小的支持内核(子内核之间的FIFO、适配器、存储器控制器等)。
订单管理设备10的内部数据结构中的每个条目与给定的订单标识符相关联。
关于每个订单的信息保存在数据存储器103中。保存在数据存储器103中的信息可以包括工具、侧(出价/卖出)、价格以及订单的数目。
根据本发明的一个方面,涉及订单的信息存储在数据存储器103中基于订单标识符而根据散列计算出的地址。
输入消息中的订单标识符(ID)被订单管理设备用作识别订单的密钥。通过将市场标识符添加到订单标识符,订单标识符在相同***所处理的所有市场中是唯一的。订单ID(从而,密钥)可以例如为64位的整数。
订单管理设备10可以包括密钥存储器102,其用于存储关于与订单标识符相关联的密钥的信息。
密钥存储器102存储数据的字,每个数据的字包括{密钥,存在位}对。与密钥相关联的存在位识别在密钥存储器102中的密钥已经被分配了订单ID(例如,在该激活状态下,存在位=1)或者在密钥存储器102中的密钥没有被分配订单ID(例如,存在位=0)。具体而言,密钥存储器102包括的尽可能多的{密钥,存在位}对,以便适合物理存储器。这使得在搜索条目时能够完全使用存储器带宽。
密钥存储器102和数据存储器103可以设置在内部FPGA存储器或外部存储器芯片上。在本发明的特定实施方案中,密钥和数据存储器102和103可以设置在相同的物理存储器中。在这样的实施方案中,密钥存储器102和数据存储器103共用总存储器带宽,并且可以设置仲裁器实体以在并发的访问之间进行仲裁。具体而言,仲裁器实体可以以下述方式处理其中一个地址:防止两个存储器区域重叠。
仲裁器实体可以进一步被配置为,允许其输入中的一个的指令通过,并且反压其他输入。其包括可配置功能,该功能用于选择允许指令通过的输入(可以基于优先级或基于轮询(roundrobin)执行该配置)。在仲裁器实例化时,仲裁器的输入中的一个的地址可以加上偏移(相加),从而实现避免存储器区域之间的重叠的功能。
如图3所示,订单管理设备10包括四个主要部件(下文中也称为“内核”),这四个主要部件与密钥存储器102和数据存储器103交互:
-第一地址产生内核101,其接收标准化的指令100,其用于产生密钥存储器读取指令(F2),以从密钥存储器102读取密钥信息并且根据读取的密钥计算密钥地址;
-条目定位内核104,其用于确定对应于待删除或修改的订单的条目的位置,或者用于基于由内核101计算出的地址以及在存储器102中读取的密钥而为新接收的订单定位条目;其可以进一步向其他内核转发(表示为箭头F1)找到了条目或定位了条目的地址和位置;
-第二地址产生内核106,其用于产生指向数据存储器103的读取指令(F2),以便基于条目定位内核104所提供的地址来读取与给定订单(其在密钥存储器102中已经具有了对应的定位了的条目)相关联的数据;以及
-执行内核107,其用于基于在输入指令中识别出的条目地址、从在其输入接口上的之前的内核转发的输入指令的类型、以及与从存储器103接收的所考虑的订单相关联的数据来执行每个接收到的指令(订单增加指令、订单删除指令等)。执行内核107将结果写回(箭头F3)密钥存储器102(如果指令执行涉及对密钥信息的改变)和/或数据存储器103(如果指令执行涉及对订单数据信息的改变)。
从而,订单管理设备10包括两个部分:第一部分负责密钥管理,其包括第一地址产生内核101以及条目定位内核104;而第二部分负责资产值管理,其包括第二地址产生内核106和执行内核107。
更具体而言,第一地址产生内核101包括散列函数,并且被配置为产生指向密钥存储器102的密钥存储器读取指令(F2)。每个产生的指令包括要读取的存储器字的地址。根据本发明的一个方面,订单ID由可配置数量的散列函数进行散列,产生一个或多个用作地址的散列。
在本发明的一个实施方案中,散列函数表示通过使用FPGA硬件乘法器而获得的乘法散列(硬件乘法器是专用于乘法的逻辑电路,一般在FPGA中都可用)。硬件乘法器能够在使用较少的通用逻辑的情况下有效地做乘法。其进一步能够达到比乘法由通用逻辑完成时更高的时钟速度。更具体而言,FPGA硬件乘法器被配置为,将订单ID乘以给定的系数。从而可以去掉乘法所得的较高和较低的位,以便保持适合的位数来寻址整个密钥存储器。选择的是中间的位,因为其对于任何给定的输入位提供最大的差异。
乘法散列的一个益处是,不需要额外的资源(硬件乘法器已经是可用的),并且提供了质量令人满意的散列。然而,本领域技术人员易于理解,本发明不限于乘法散列,并且散列计算可以不同地执行,具体而言可以基于逻辑函数、算数运算来执行。
图4是示出根据本发明的某些实施方案的从订单ID40产生散列46的函数图。
通过变化乘法所用的系数可以获得不同的散列46。内核101可以包括系数41的列表,该系数是(使用乘法器42)随机选择的。可以顺序使用系数41,从而提供预期的散列数46。因此流水线化通过对乘法器45实现流水线以及在对应于不同散列计算的周期中对订单ID进行锁存(latch)而实现。订单标识符的锁存可以使用锁存器44来执行,该锁存器可以受到计数器或有限状态机FSM43的控制。
在本发明的某些实施方案中,可以并行使用若干存储器芯片(102和/或103)。在这些实施方案中,第一地址产生内核101对于每个存储器产生不同的散列,从而减小散列冲突效应。此外,通过在相同的物理芯片上设置密钥存储器102和数据存储器103,以及通过并行访问这些芯片,可以获得更高的性能。
回到图3,条目定位内核104被布置为,依据订单管理设备10接收到的输入指令的类型执行条目定位,并且向其他内核(106、107)转发找到或定位条目所在的地址和位置。响应于增加指令,条目定位内核104可以将密钥存储器中的新条目定位到订单ID。条目定位内核104被配置为,响应于其他类型的指令(例如删除或修改指令),在密钥存储器中定位(或找到)条目。
依据输入指令的类型(增加、修改、删除等),条目定位内核104从密钥存储器102接收数据字,如同之前第一地址产生内核101所请求的。
为了增加条目,条目定位内核104可以在接收到的由存储器102返回的数据字中取得第一可用槽位。更具体而言,响应于用于为订单ID增加条目的指令,条目定位内核104可以在每个数据字中查找可用的条目槽位,如果找到了这样的空槽位,则在输出发送该可用条目的地址,连同槽位在数据字中的位置和原始输入指令一起。如果没有找到可用槽位(存储器满),则可以发送错误代码。
当接收到用于修改或删除订单的指令时,条目定位内核104可以从第一地址产生内核101接收请求。响应于该请求,条目定位内核104被配置为,在由密钥存储器102返回的每个数据字中的输入指令中查询匹配订单ID的条目。如果找到了该条目,则在输出发送该条目的地址,连同条目在数据字中的位置和原始输入指令一起。如果无法找到与订单ID相关联的条目(条目不存在),则可以发送错误代码。
在本发明的优选实施方案中,内核104并不直接将已定位的条目写入存储器,因此数据读取可以是过时的。
在本发明的其他实施方案中,条目定位内核104可以直接将已修改的条目写入存储器102。然而,即使在这样的实施方案中,数据也可能是过时的。实际上,读取指令由密钥存储器102发送,使得读取指令可以在条目定位内核104完成对之前的指令的处理之前发出。如果两个指令(当前的读取指令和之前的读取指令)涉及相同的订单,或者订单由于散列函数中的冲突而存储在相同的地址,则数据读取可能是过时的。
为避免这样的情况,订单管理设备10可以进一步包括缓存105,其用于保持对上一个处理的订单标识符的踪迹,以及对应的订单标识符所放置的地址和位置。缓存105可以被包括在条目缓存和密钥比较内核104中,并且可以视作寄存器的集合,所述寄存器在每次条目在密钥存储器中定位时(增加)更新。当通过内核104的输入接口而接收了缓存105中的地址时,使用缓存105中的数据而不是从存储器接收到的数据,缓存105中的数据必定是较新的,因为其是即时更新的。
第二地址产生内核106被设置为,产生指向数据存储器103的读取指令,该数据存储器用于存储与密钥存储器的条目相关联的订单信息(例如,工具、侧(出价/卖出)、价格以及订单数目)。由第二地址产生内核106读取的数据由数据存储器103发送至内核107。涉及订单的信息存储在数据存储器103中从条目定位内核104提供的密钥的数据字中的地址和位置推导出的地址。当密钥存储器102和数据存储器103设置在相同的物理存储器中时,订单管理设备10可以被布置为,(使用仲裁器实体)保证在使用相同的存储器来存储密钥和订单数据时,两个存储器区域不会重叠。
执行内核107被设置为执行每个指令。执行内核107将获得的结果写回密钥存储器102和数据存储器103。
执行内核107接收实际处理指令所需的数据。其接收在输入指令中识别出的条目的地址、从之前的内核在其输入接口上转发的输入指令、以及来自数据存储器103的所考虑订单的属性(价格、数目等)。
执行内核107尤其被配置为,执行下列类型的操作:
-响应于增加指令,执行内核107以内部数据结构102和103生成订单。密钥存储器102中的订单的条目已经之前由条目定位内核104定位。订单的属性从输入指令复制。
-响应于删除指令,通过将与密钥存储器102中的订单ID相关联的存在位设定为零,执行内核107从内部数据结构102和103中移除订单。
-响应于对于给定订单ID的减少指令,执行内核107对应地将与该订单ID相关联的数目减少指定的量。该量是在减少指令中指定的。执行内核107从与该订单相关联的存储在存储器中的数目减去在减小指令中指定的量。如果剩余的与该订单ID相关联的数目等于零,则直接删除该订单,就像该指令是删除指令一样。
-响应于与数目和/或价格相关联的修改指令,对应于订单标识符的数目和/或价格替换为在输入指令中指定的数目和/或价格,同时保存在内部数据结构(102、103)中的其他信息保持不变。工具ID和侧得以保存。
-执行内核107还负责处理从市场接收到的“执行”指令的若干版本。执行消息依据发送该执行消息的市场而具有不同的格式。多数市场甚至同时使用执行指令的若干变体。具体而言,为了减小网络带宽,市场在可能时使用更严格的变体。该指令的一些变体从而给出剩余的数目,而其他的则像减小指令(其仅发送要移除的数目)一样工作。在所有情况下,当剩余的数目是空时,删除订单。
-响应于替换消息,执行内核107将替换指令转换为“删除并存储”指令,其跟随着“增加存储”指令,所述替换指令请求删除订单标识符所引用的给定订单,并且生成与被替换的订单不同的订单ID、价格和数目相关联但是具有相同的工具和侧的新的订单。两个指令都包括订单ID,从而类似于常规的删除和增加指令而动作。然而,“删除和存储”指令还存储工具和侧,而“增加存储”指令使用该额外的信息而不是从输入指令取得该信息。
一旦执行,该操作的结果被写回密钥存储器102和数据存储器103。
从而,执行内核107可以执行两个写入操作:
-向密钥存储器102写入的操作,以存储订单ID以及存在位,或者删除订单ID以及存在位;
-向数据存储器103写入的操作,以存储订单的属性。
根据本发明的一个实施方案,在最终数目取决于存储器中的数目时,执行内核107是唯一一个可以触发订单的删除的内核,因此所有的写入操作在该内核中完成,尤其是向密钥存储器102的写入。
执行内核107可以进一步包括缓存,因为产生对于数据存储器103的读取指令(表示为箭头F2)的内核106放置在执行内核107之前。执行内核107的缓存包括标识符以及上一个处理的订单的属性。在实际处理订单之前,当订单ID匹配时,缓存信息用于替换从数据存储器103读取的属性。
由于内核107是流水线化的,接受的指令速率不取决于处理所需时钟周期的数量。因此,对于4个内核101、104、106和107所需的时钟周期的数量没有限制。这使得频率能够容易地提高。
图5显示了根据本发明的订单管理方法的不同步骤。
在步骤500,接收关于订单ID的指令,其包括订单标识符以及订单信息的集合。
在步骤501,使用例如FPGA乘法器,通过对订单ID进行散列来计算一个或多个地址。
在步骤502,在于步骤501计算出的地址发出读取指令。
在步骤503,在密钥存储器102中被请求的地址处读取数据字。
在步骤504,将读取数据中的{密钥,存在位}对中的密钥与输入指令中的订单ID进行比较。
如果在存在位等于1的情况下找到了匹配(步骤505),并且如果输入指令是增加指令(506),则在步骤507中设定“存储器满”代码。然后,在步骤508,发送包括输入指令以及可能的旧的以及更新了的订单信息的输出指令和/或错误代码。
或者,如果输入指令不是增加指令(506),在步骤509,向数据地址产生内核106传送找到了密钥的地址和位置。
在步骤510,使用在步骤509中传送的地址和位置信息来计算订单的数据部分的地址。然后,在步骤511,在被请求的地址,从数据存储器103读取数据字。然后在步骤512,可以使用输入指令来生成或更新订单数据,并且可以将更新了的订单数据写回数据存储器103。
如果输入指令是增加指令(514),则在步骤515,将{密钥,存在位}对(存在位=1)写入密钥存储器102。然后,在步骤508,发送包括输入指令以及可能的旧的以及更新了的订单信息的输出指令和/或错误代码。
如果输入指令不是增加指令(514),则在步骤516,确定更新的数目是否为空,如果更新的数目为空,则在步骤517在密钥存储器102中将存在位设定为零。在两种情况下,在步骤508,发送包括输入指令以及可能的旧的以及更新了的订单信息的输出指令和/或错误代码。
在步骤505,如果没有找到匹配(或者如果找到了匹配但是存在位不同于1),并且如果输入指令是增加指令(518),则在步骤519定位对应于订单ID的条目(通过更新内核104的本地缓存),并且在步骤509将已经定位了密钥的地址和位置传送至数据地址产生内核106。然后可以执行步骤510、511、512、513、514、515、508、516和517。
如果在步骤518确定输入指令不是增加指令,则设定“订单未找到”代码(520),然后执行步骤508以便发送包括输入指令以及旧的以及更新了的订单信息的输出指令和/或错误代码(如果有的话)。
如图5所示:
-步骤500、501和502可以由第一地址产生内核101实施;
-步骤503可以通过访问密钥存储器102而执行;
-步骤504、505、506、507、509、518、519和520可以由条目定位内核104执行;
-步骤510可以由第二地址产生内核106执行;
-步骤511可以通过访问数据存储器103而执行;并且
-步骤510、511、512、513、514、515、508、516和517可以由执行内核107执行。
图6表示根据本发明的某些实施方案的示例性资产管理设备。更具体而言,其表示密钥存储器102和数据存储器103的局部视图。存储器102或103中的每个横排表示数据字。密钥存储器102每字包括两个{存在位,密钥}对。数据存储器103每字包括一个值。密钥存储器102中的存在位未显示。
在该示例中,数据地址与密钥的地址和位置之间的关系为:
数据地址=密钥地址×2+位置
其中,位置在左侧为0(订单6951、7569和4589),在右侧为1(订单5035和6548)。然而,该关系可以取决于存储器的数据宽度以及订单的密钥和数据的数据宽度。
订单4589的数据未显示。其将在订单6548的数据之下,被表示的区域之外。
使用所描述的本发明的实施方案,资产管理设备10可以比常规的资产管理设备每单位时间处理更多的消息。资产管理设备10的四重结构(内核101、104、106和107)以及内核之间的互相作用也有利于所获得的性能。
通过将密钥存储器102与数据存储器103分开,能够使用全部的存储器带宽来获得密钥,而不会影响数据存储器。当使用在FPGA外部的存储器时,这尤其有益。
此外,资产管理设备的流水线设计使得更容易提高频率,并从而允许令人满意的性能。
本发明的另一益处涉及:条目定位内核104每时钟周期可以读取最大数量的密钥,从而完全使用了存储器带宽。
在条目定位内核104和执行内核107中使用缓存能够实现有效的流水线设计。
根据所描述的本发明的实施方案的资产管理设备10(尤其是执行内核107)适应于直接集成商用逻辑。这避免了标准散列表与将散列表实例化的商用内核之间的往返。例如,对于涉及空数目的修改,在内核中并入商用逻辑免除了对于下列步骤的需求:
-首先,向散列表发送请求以获得订单细节,
-然后,一旦检测到了空数目,向散列表发送第二请求,以删除对应于该数目的订单;
这样的步骤非常影响性能,因为在发出第二请求之前必须等待直到第一请求遍历了散列表。
应当注意,商用逻辑可以仅集成到资产管理设备10的一部分中:在市场数据处理应用程序的示例中,其可以仅集成到关于金融应用程序的内核107的一部分中。从而,可以包含并且容易地维持或修改特异性。
图7显示了市场数据处理***100的示例性实施,其位于标准服务器(主机***)71内部的PCIe主板70上的FPGA中。图1表示的链表(网络/UDP获取2、解码单元3、订单信息管理器10、订单账簿管理设备4、消息分发和传输单元5)可以通过下列各项补足:
-UDP&以太网堆栈700,其被配置为在标准以太网上发送输出消息。为了优化性能,该内核可以通过与在所述网络上的客户端一样多的以太网连接而连接至客户端网络。在相同网络上的其他计算机***72中的客户端应用程序可以以软件实施、由硬件加速或者完全由硬件实施。或者,客户端应用程序可以直接连接至***的输出端口,以便节省网络装置所累积的延迟。
-PCIe互联端点701,其被配置为连接至主机***。
-DMA(“直接存储器访问”)702,其被配置为通过主板的PCIe连接而向主机***的RAM73发送输出消息;客户端应用从而可以在主机***的CPU707上运行,并且使用(consume)由DMA发送的消息。
-第二“NIC”DMA704(“NIC”是网络接口卡的缩写),其被配置为,通过通常由市场数据处理***的硬件使用的以太网端口,从主机***的软件接收/向主机***的软件发送以太网包。PCIe主板70从而可以***作***视作普通的网络接口卡。这对于各种实际的目的(例如,发送多路群组订阅、登陆到市场交易所的***、能够检查连接性)可能是需要的。在某些实施方案中,主要的、对于延迟敏感的数据可以由硬件直接处理,而剩余部分可以以软件处理。这样的配置还使得能够直接连接至交易所的网络1,而无需通过网络交换机或路由器的额外跃点。
-配置&监控逻辑706,其用于配置其他内核,包括例如订阅至金融工具更新,以及通过PCIe连接来监控***的状态和性能。为利用该配置&监控逻辑,可以通过软件API提供软件以在主机的CPU707上执行。
除了FPGA,PCIe主板70提供可以被市场数据处理***100用作“外部存储器”的存储器芯片,以及各种支持功能,例如电源调节,以便以主板上部件所需的各种电压向这些部件供电。其还可以包括物理连接器,其用于多重以太网连接。
若干这样的主板可以***主机***的PCIe插槽。这使得能够增减处理能力,以便例如支持更多的市场交易所。主板可以通过主机的PCIe互联而彼此通信。
主机***71可以是标准的计算机服务器。CPU707可以被选择为具有指向托管市场数据处理***的PCIe主板的直接PCIe连接,以便最大化其上运行的客户端应用程序的性能。主机***还可以装备有网络接口708,其用于连接至配置和管控网络709。这使得能够具有用于配置和管控服务器的专用网络。该服务器还可以装备有任何的标准部件,例如大容量存储设备(硬盘)。
将市场交易所网络、客户端网络以及配置和管控网络在物理上分开具有在安全性以及性能方面的益处。
即使本发明不限于使用PCIe作为FPGA到主机***的接口,PCIe由于特定的益处而是当前使用最广泛的用于在服务器与外插卡之间高速传送的总线。然而,本领域技术人员易于理解,市场数据处理***100可以以任何其他的总线作为接口。
应当认为,前述的描述仅为本发明原理的说明。此外,由于本领域技术人员易于想到大量修改和变化,其无意将本发明限制为所显示和描述的精确结构和操作,因此,可以采取的所有适当的修改和等同形式落入本发明的范围内。具体而言,本发明不限于“订单”类型的资产管理,也不限于金融应用程序。通过改变包括在执行内核107中的商用逻辑,或者甚至移除包括在执行内核107中的商用逻辑,本发明可以应用到其他应用程序。此外,本发明不限于乘法散列。本领域技术人员易于理解,可以将任何能够充分混合位的函数用作散列函数。
Claims (14)
1.一种资产管理方法,其用于管理资产,所述方法在集成电路上实施,其中,所述方法使用密钥存储器(102)以存储密钥,每个密钥与各自的资产标识符相关联,并且使用数据存储器(103)以存储资产信息,所述方法包括:
-接收关于资产的输入指令,其包括资产标识符以及与所述资产相关联的资产信息的集合,
-根据所述资产标识符计算指向所述密钥存储器(102)的地址的集合,计算地址的集合的所述步骤包括根据所述资产标识符计算散列,
-依据输入指令,基于所述地址的集合在用于所述资产的所述密钥存储器(102)中找到或定位条目,
-根据在密钥存储器(102)中的对于所述资产所找到或定位了条目的地址和位置,计算指向用于所述资产的所述数据存储器(103)的数据地址,
-在所述计算出的数据地址,读取在数据存储器(103)中的数据,以及
-基于在所述数据地址读取的在数据存储器中的数据字,执行输入指令,
-将结果写回密钥存储器(102)和数据存储器(103)。
2.根据权利要求1所述的方法,其中,所述方法使用并行使用的多个存储器芯片,并且计算地址的所述步骤包括对于每个存储器计算不同的散列。
3.根据前述权利要求中的任一项所述的方法,其中,所述密钥存储器(102)中的每个密钥与存在位相关联,所述方法进一步包括,响应于条目的定位,将与条目密钥相关联的存在位设定为激活状态。
4.根据权利要求3所述的方法,其中,在密钥存储器(102)中布置了由每个密钥和相关联的存在位形成的对,从而在每个存储器数据字中打包尽可能多的对。
5.根据前述权利要求中的任一项所述的方法,其中,所述方法进一步包括,响应于所述条目的定位,将所述资产信息与所述资产标识符相关联地存储在所述数据存储器(103)中。
6.根据前述权利要求中的任一项所述的方法,其中,通过使用集成电路硬件乘法器来将资产标识符乘以提供数据字的给定系数,以及选择所述数据字的一些位来获得所述散列。
7.根据前述权利要求中的任一项所述的方法,其中,所述集成电路进一步包括至少一个缓存(105),其用于保存上一个处理的资产标识符的踪迹,以及对应的资产标识符所放置的地址和位置。
8.一种资产管理设备(10),其实施在集成电路上,该资产管理设备用于管理资产,其中,所述设备包括密钥存储器(102)和数据存储器(103),所述密钥存储器用于与各自的资产标识符相关联地存储密钥,所述数据存储器用于存储资产信息,该设备进一步包括:
-地址产生内核(101),其被配置为,响应于包括资产标识符和资产信息的集合的输入指令的接收,根据所述资产标识符计算指向所述密钥存储器(102)的地址的集合,计算地址的集合的所述步骤包括根据所述资产标识符计算散列,
-条目定位内核(104),其用于,依据输入指令,基于所述地址的集合,在用于所述资产的所述密钥存储器中找到或定位条目,
-第二地址产生内核(106),其被配置为,根据在所述密钥存储器(102)中的找到或定位了条目的地址和位置,计算指向用于所述资产的所述数据存储器(103)的数据地址,在所述数据地址读取在数据存储器(103)中的数据,
-执行内核(107),其用于基于在所述数据地址读取的在数据存储器中的数据,执行输入指令,并且将结果写回。
9.根据权利要求8所述的资产管理设备,其中,所述条目定位内核(104)被配置为,向所述第二地址产生内核(106)转发辅助指令,所述辅助指令包括对于所述资产所找到或定位了条目的地址和位置,所述第二地址产生内核(106)被配置为,从所述辅助指令检索所述地址和位置。
10.根据前述权利要求8和9中的任一项所述的资产管理设备,其中,第一和第二地址产生内核(101、106)、条目定位内核(104)以及执行内核(107)是流水线化的。
11.根据前述权利要求8至10中的任一项所述的资产管理设备,其中,所述密钥存储器(102)被配置为,响应于对应于与存在位相关联的条目密钥的条目定位,与存在位相关联地存储每个密钥,所述存在位被设定为激活状态。
12.根据权利要求11所述的资产管理设备,其中,在密钥存储器中布置了由每个密钥存储器与相关联的存在位形成的对,从而在每个存储器数据字中打包尽可能多的对。
13.根据前述权利要求8至12中的任一项所述的资产管理设备,其中,密钥存储器(102)和数据存储器(103)设置在相同的物理存储器上,所述资产管理设备进一步包括仲裁器实体,以便从包括第一地址产生内核(101)和条目定位内核(104)的负责密钥管理的第一部分以及包括第二地址产生内核(106)和执行内核(107)的负责资产值管理的第二部分访问物理存储器,所述仲裁器实体被进一步配置为,防止密钥存储器(102)与数据存储器(103)重叠。
14.根据前述权利要求8至13中的任一项所述的资产管理设备,其中,通过使用集成电路硬件乘法器来将资产标识符乘以提供数据字的给定系数,并且选择所述数据字的一些位来获得散列。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13306356.0A EP2858024A1 (en) | 2013-10-01 | 2013-10-01 | An asset management device and method in a hardware platform |
EP13306356.0 | 2013-10-01 | ||
PCT/EP2014/071071 WO2015049304A1 (en) | 2013-10-01 | 2014-10-01 | An asset management device and method in a hardware platform |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105637524A true CN105637524A (zh) | 2016-06-01 |
CN105637524B CN105637524B (zh) | 2019-06-07 |
Family
ID=49328475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480054765.1A Active CN105637524B (zh) | 2013-10-01 | 2014-10-01 | 硬件平台中的资产管理设备和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9535702B2 (zh) |
EP (1) | EP2858024A1 (zh) |
CN (1) | CN105637524B (zh) |
AU (1) | AU2014331142B2 (zh) |
CA (1) | CA2925805A1 (zh) |
HK (1) | HK1225462A1 (zh) |
SG (1) | SG11201602342PA (zh) |
WO (1) | WO2015049304A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130752A (zh) * | 2016-06-10 | 2016-11-16 | 北京数盾信息科技有限公司 | 一种基于gdoi协议下大规模网络管理*** |
CN110036369A (zh) * | 2017-07-20 | 2019-07-19 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10452971B2 (en) * | 2015-06-29 | 2019-10-22 | Microsoft Technology Licensing, Llc | Deep neural network partitioning on servers |
US10880211B2 (en) | 2019-05-06 | 2020-12-29 | Seth Gregory Friedman | Transaction encoding and verification by way of data-link layer fields |
US10868707B1 (en) | 2019-09-16 | 2020-12-15 | Liquid-Markets-Holdings, Incorporated | Zero-latency message processing with validity checks |
CN111177476B (zh) * | 2019-12-05 | 2023-08-18 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备及可读存储介质 |
US11935120B2 (en) | 2020-06-08 | 2024-03-19 | Liquid-Markets GmbH | Hardware-based transaction exchange |
CN113609136B (zh) * | 2021-08-26 | 2022-04-26 | 深圳市链融科技股份有限公司 | 业务编号稳定保持方法、装置、计算机设备及存储介质 |
US11915065B2 (en) | 2022-01-20 | 2024-02-27 | Vmware, Inc. | Brokerless reliable totally ordered many-to-many interprocess communication on a single node that uses shared memory and multicast |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0411691A2 (en) * | 1989-07-31 | 1991-02-06 | Koninklijke Philips Electronics N.V. | Memory architecture and circuit for hashing |
US5032987A (en) * | 1988-08-04 | 1991-07-16 | Digital Equipment Corporation | System with a plurality of hash tables each using different adaptive hashing functions |
CN1653455A (zh) * | 2002-03-20 | 2005-08-10 | 英特尔公司 | 用于低存储器开销数据库的方法和数据结构 |
US20080243675A1 (en) * | 2006-06-19 | 2008-10-02 | Exegy Incorporated | High Speed Processing of Financial Information Using FPGA Devices |
-
2013
- 2013-10-01 EP EP13306356.0A patent/EP2858024A1/en active Pending
-
2014
- 2014-09-30 US US14/502,963 patent/US9535702B2/en active Active
- 2014-10-01 SG SG11201602342PA patent/SG11201602342PA/en unknown
- 2014-10-01 AU AU2014331142A patent/AU2014331142B2/en not_active Ceased
- 2014-10-01 WO PCT/EP2014/071071 patent/WO2015049304A1/en active Application Filing
- 2014-10-01 CA CA2925805A patent/CA2925805A1/en active Pending
- 2014-10-01 CN CN201480054765.1A patent/CN105637524B/zh active Active
-
2016
- 2016-11-30 HK HK16113657A patent/HK1225462A1/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5032987A (en) * | 1988-08-04 | 1991-07-16 | Digital Equipment Corporation | System with a plurality of hash tables each using different adaptive hashing functions |
EP0411691A2 (en) * | 1989-07-31 | 1991-02-06 | Koninklijke Philips Electronics N.V. | Memory architecture and circuit for hashing |
CN1653455A (zh) * | 2002-03-20 | 2005-08-10 | 英特尔公司 | 用于低存储器开销数据库的方法和数据结构 |
US20080243675A1 (en) * | 2006-06-19 | 2008-10-02 | Exegy Incorporated | High Speed Processing of Financial Information Using FPGA Devices |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130752A (zh) * | 2016-06-10 | 2016-11-16 | 北京数盾信息科技有限公司 | 一种基于gdoi协议下大规模网络管理*** |
CN106130752B (zh) * | 2016-06-10 | 2023-04-07 | 北京数盾信息科技有限公司 | 一种基于gdoi协议下大规模网络管理*** |
CN110036369A (zh) * | 2017-07-20 | 2019-07-19 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
CN110036369B (zh) * | 2017-07-20 | 2023-11-24 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
AU2014331142A1 (en) | 2016-04-21 |
CA2925805A1 (en) | 2015-04-09 |
CN105637524B (zh) | 2019-06-07 |
SG11201602342PA (en) | 2016-04-28 |
HK1225462A1 (zh) | 2017-09-08 |
AU2014331142B2 (en) | 2020-05-21 |
US9535702B2 (en) | 2017-01-03 |
WO2015049304A1 (en) | 2015-04-09 |
US20150095613A1 (en) | 2015-04-02 |
EP2858024A1 (en) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105637524A (zh) | 硬件平台中的资产管理设备和方法 | |
US10346404B2 (en) | Efficient partitioned joins in a database with column-major layout | |
EP1561175B1 (en) | A method for configurable address mapping | |
CN105684020B (zh) | 硬件平台中的订单账簿管理设备 | |
US8234267B2 (en) | Hardware accelerated reconfigurable processor for accelerating database operations and queries | |
US8880551B2 (en) | Field oriented pipeline architecture for a programmable data streaming processor | |
US8108367B2 (en) | Constraints with hidden rows in a database | |
CN110019292B (zh) | 一种数据的查询方法及装置 | |
CN107810482A (zh) | 指令块到处理器指令窗口的批量分配 | |
US20230289343A1 (en) | Allocating partitions for executing operations of a query | |
US7440956B2 (en) | Enforcing constraints from a parent table to a child table | |
CN116561051B (zh) | 一种硬件加速卡和异构计算*** | |
US20120324149A1 (en) | Methods and apparatus for data access by a reprogrammable circuit module | |
CN116243959A (zh) | 大规模对象版本控制和一致性的实现方式 | |
US10244017B2 (en) | Processing of streaming data with a keyed join | |
CN108268596A (zh) | 搜索存储在存储器中的数据的方法和*** | |
CN105426119A (zh) | 一种存储设备及数据处理方法 | |
Werner et al. | Accelerated join evaluation in Semantic Web databases by using FPGAs | |
CN109815295A (zh) | 分布式集群数据导入方法及装置 | |
US20090216991A1 (en) | Method and apparatus to combine scattered buffer addresses into a contiguous virtual address space | |
US20240037037A1 (en) | Software Assisted Hardware Offloading Cache Using FPGA | |
CN116414917A (zh) | 基于Myhouse数据库的数据传输方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1225462 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |