硬件平台中的资产管理设备和方法_2

文档序号:9872454阅读:来源:国知局
上。此外,在数据集类似于对于存储大量工具的实时订单所需的数据集的情况下,这产生了大量的CPU( “中央处理器”的缩写)缓存未中(cache miss),导致性能不佳。
[0030]所有技术领域中的大量现有硬件系统使用下列两种类型的散列表:只读散列表以及基于状态机或计数器的散列表。
[0031]对于只读散列表,硬件系统不修改散列表的内容。存储器的静态性质降低了整体复杂度,并且使得整个算法能够容易流水线化。US7921046描述了使用这样的散列表的系统。然而,这样的系统不适用于订单管理设备,因为其需要随着从市场接收的数据而增加和更新其条目。
[0032]基于状态机或计数器的散列表被配置为,增加和修改条目,但是一次仅处理一个消息。消息的处理时间取决于所用的存储器的类型。例如,对于内部FPGA存储器,处理时间花费5至6个时钟周期;对于类似QDR(“四倍速率”的缩写)的低延迟外部存储器,处理时间花费10至15个时钟周期。由于处理消息所花费的时间,现有的使用这样的散列表的方案不能符合lOGb/s的市场数据带宽。实际上,在最多每2个时钟周期内接收消息而且一次仅处理一个消息的情况下(对于普通的以200MHz运行的FPGA内核),这需要每2个时钟周期处理一个消息。
[0033]因此,常规的订单管理设备不允许在每单位时间内处理足够的消息。
[0034]发明人首先发现,每单位时间处理的消息的数量可以通过提高散列表的时钟频率而相对于常规方法得到提高。这样的方法将需要提供较短的周期,同时维持处理消息所需的相同时钟周期的数量保持不变。然而,实施这样的方法很复杂,因为所使用的FPGA和存储器在频率上受到限制。从而,通过这样的方法可以获得的益处只会少量地增强性能。
[0035]另一个设想的方法是,修改散列表算法,以便使用更小的每消息时钟周期(clockcycles per message)。然而,实施该方法也是复杂的,因为用户不能改变存储器的延迟,而且FPGA需要几个周期来将数据时钟输入和输出其输入/输出块。利用这种占据基于状态的散列表所需要的15个周期之外的几个周期的方法所预期的益处仅仅是少量地增强性能。
[0036]本发明提供一种基于类似于用于管理由外部源接收的订单的结构的散列表而得到改进的订单管理设备。
[0037]尽管本发明呈现对于管理金融订单的特定益处,但是本发明也应用到在不同应用领域中的其他类型资产的管理,其中所述资产与资产标识符相关联。仅出于示意的目的,下面的描述将参考金融订单(作为资产)的管理作出。
[0038]图3示出了根据本发明的某些实施方案的资产管理设备10(下文中称为“订单管理设备”)的架构。
[0039]订单管理设备10围绕由外部存储器和网络接口环绕的并行处理设备(例如FPGA)建立。仅出于示意的目的,下面的描述将参考FPGA类型的并行处理设备而作出。
[0040]作为图1的市场数据处理系统的一部分,订单管理设备10—般从数据包解码设备3接收标准化了的输出指令。更具体而言,数据包解码设备3接收市场数据流,并且基于市场数据流而对于每个消息输出标准化的在所有市场上都相同的指令100,这使得之后的内核(订单管理设备10、限制项聚类和账簿建立设备4等)是独立于市场的,并且可以仅研发一次这些内核。
[0041]每个标准化的指令100可以包括指示要执行的操作类型的操作代码(或“操作码”)、订单ID以及对于订单的每个特性(工具ID、侧、价格、数目等)的字段。当该指令在串流总线上传输时,可以使用额外的“有效”信号来将指令标记为有效的,并且可以使用“就绪”信号来指示反压(标准Ava I on ST)。
[0042]根据本发明的订单管理设备10基于流水线方法,其能够同时执行多个消息。流水线处理分为更小的处理步骤,每个部分一次处理一个消息,使得整个订单管理设备10可以同时处理若干消息。根据本发明的订单管理设备10尤其被设置为解决下述情况:正在并行处理的消息中的一些指向相同的订单。有利地,尽管这些消息是同时受到处理的,但结果就和这些消息受到顺序处理一样。
[0043]通过将订单管理设备10流水线化,由于同步化以及不同子内核之间的通信问题,对于每个指令使用了更多的周期。然而,提升时钟频率变得简单了,因为可以在不损害性能的情况下插入更多的寄存器级。因此,可以在更高的频率下使用订单管理设备10,对外部存储器的频率进行匹配以使用其全部的潜力,并且消除由用于同步和通信的时钟周期所导致的性能恶化。根据本发明的订单管理设备的整体延迟从而与假设其不是流水线化的相同,而同时能够以更高的吞吐量处理指令。
[0044]根据本发明的流水线化的订单管理设备尤其被布置为,解决具有相同标识符的多重指令的问题。
[0045]在图3中,Fl箭头表示主数据路径,F2箭头表示存储器读取,F3箭头表示存储器写入。
[0046]应当注意,图3仅是订单管理设备10的功能性表示,而且为了便于理解该图,没有显示某些较小的支持内核(子内核之间的FIFO、适配器、存储器控制器等)。
[0047]订单管理设备10的内部数据结构中的每个条目与给定的订单标识符相关联。
[0048]关于每个订单的信息保存在数据存储器103中。保存在数据存储器103中的信息可以包括工具、侧(出价/卖出)、价格以及订单的数目。
[0049]根据本发明的一个方面,涉及订单的信息存储在数据存储器103中基于订单标识符而根据散列计算出的地址。
[0050]输入消息中的订单标识符(ID)被订单管理设备用作识别订单的密钥。通过将市场标识符添加到订单标识符,订单标识符在相同系统所处理的所有市场中是唯一的。订单ID(从而,密钥)可以例如为64位的整数。
[0051]订单管理设备10可以包括密钥存储器102,其用于存储关于与订单标识符相关联的密钥的信息。
[0052]密钥存储器102存储数据的字,每个数据的字包括{密钥,存在位}对。与密钥相关联的存在位识别在密钥存储器102中的密钥已经被分配了订单ID(例如,在该激活状态下,存在位=I)或者在密钥存储器102中的密钥没有被分配订单ID(例如,存在位= 0)。具体而言,密钥存储器102包括的尽可能多的{密钥,存在位}对,以便适合物理存储器。这使得在搜索条目时能够完全使用存储器带宽。
[0053]密钥存储器102和数据存储器103可以设置在内部FPGA存储器或外部存储器芯片上。在本发明的特定实施方案中,密钥和数据存储器102和103可以设置在相同的物理存储器中。在这样的实施方案中,密钥存储器102和数据存储器103共用总存储器带宽,并且可以设置仲裁器实体以在并发的访问之间进行仲裁。具体而言,仲裁器实体可以以下述方式处理其中一个地址:防止两个存储器区域重叠。
[0054]仲裁器实体可以进一步被配置为,允许其输入中的一个的指令通过,并且反压其他输入。其包括可配置功能,该功能用于选择允许指令通过的输入(可以基于优先级或基于轮询(round robin)执行该配置)。在仲裁器实例化时,仲裁器的输入中的一个的地址可以加上偏移(相加),从而实现避免存储器区域之间的重叠的功能。
[0055]如图3所示,订单管理设备10包括四个主要部件(下文中也称为“内核”),这四个主要部件与密钥存储器102和数据存储器103交互:
[0056]-第一地址产生内核101,其接收标准化的指令100,其用于产生密钥存储器读取指令(F2),以从密钥存储器102读取密钥信息并且根据读取的密钥计算密钥地址;
[0057]-条目定位内核104,其用于确定对应于待删除或修改的订单的条目的位置,或者用于基于由内核101计算出的地址以及在存储器102中读取的密钥而为新接收的订单定位条目;其可以进一步向其他内核转发(表示为箭头Fl)找到了条目或定位了条目的地址和位置;
[0058]-第二地址产生内核106,其用于产生指向数据存储器103的读取指令(F2),以便基于条目定位内核104所提供的地址来读取与给定订单(其在密钥存储器102中已经具有了对应的定位了的条目)相关联的数据;以及
[0059]-执行内核107,其用于基于在输入指令中识别出的条目地址、从在其输入接口上的之前的内核转发的输入指令的类型、以及与从存储器103接收的所考虑的订单相关联的数据来执行每个接收到的指令(订单增加指令、订单删除指令等)。执行内核107将结果写回(箭头F3)密钥存储器102(如果指令执
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1