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

文档序号:9872454阅读:来源:国知局
器103写入的操作,以存储订单的属性。
[0088]根据本发明的一个实施方案,在最终数目取决于存储器中的数目时,执行内核107是唯一一个可以触发订单的删除的内核,因此所有的写入操作在该内核中完成,尤其是向密钥存储器102的写入。
[0089]执行内核107可以进一步包括缓存,因为产生对于数据存储器103的读取指令(表示为箭头F2)的内核106放置在执行内核107之前。执行内核107的缓存包括标识符以及上一个处理的订单的属性。在实际处理订单之前,当订单ID匹配时,缓存信息用于替换从数据存储器103读取的属性。
[0090]由于内核107是流水线化的,接受的指令速率不取决于处理所需时钟周期的数量。因此,对于4个内核101、104、106和107所需的时钟周期的数量没有限制。这使得频率能够容易地提尚。
[0091]图5显示了根据本发明的订单管理方法的不同步骤。
[0092]在步骤500,接收关于订单ID的指令,其包括订单标识符以及订单信息的集合。
[0093]在步骤501,使用例如FPGA乘法器,通过对订单ID进行散列来计算一个或多个地址。
[0094]在步骤502,在于步骤501计算出的地址发出读取指令。
[0095]在步骤503,在密钥存储器102中被请求的地址处读取数据字。
[0096]在步骤504,将读取数据中的{密钥,存在位}对中的密钥与输入指令中的订单ID进行比较。
[0097]如果在存在位等于I的情况下找到了匹配(步骤505),并且如果输入指令是增加指令(506),则在步骤507中设定“存储器满”代码。然后,在步骤508,发送包括输入指令以及可能的旧的以及更新了的订单信息的输出指令和/或错误代码。
[0098]或者,如果输入指令不是增加指令(506),在步骤509,向数据地址产生内核106传送找到了密钥的地址和位置。
[0099]在步骤510,使用在步骤509中传送的地址和位置信息来计算订单的数据部分的地址。然后,在步骤511,在被请求的地址,从数据存储器103读取数据字。然后在步骤512,可以使用输入指令来生成或更新订单数据,并且可以将更新了的订单数据写回数据存储器103。
[0100]如果输入指令是增加指令(514),则在步骤515,将{密钥,存在位}对(存在位=1)写入密钥存储器102。然后,在步骤508,发送包括输入指令以及可能的旧的以及更新了的订单信息的输出指令和/或错误代码。
[0101]如果输入指令不是增加指令(514),则在步骤516,确定更新的数目是否为空,如果更新的数目为空,则在步骤517在密钥存储器102中将存在位设定为零。在两种情况下,在步骤508,发送包括输入指令以及可能的旧的以及更新了的订单信息的输出指令和/或错误代码。
[0102]在步骤505,如果没有找到匹配(或者如果找到了匹配但是存在位不同于I),并且如果输入指令是增加指令(518),则在步骤519定位对应于订单ID的条目(通过更新内核104的本地缓存),并且在步骤509将已经定位了密钥的地址和位置传送至数据地址产生内核106。然后可以执行步骤510、511、512、513、514、515、508、516和517。
[0103]如果在步骤518确定输入指令不是增加指令,则设定“订单未找到”代码(520),然后执行步骤508以便发送包括输入指令以及旧的以及更新了的订单信息的输出指令和/或错误代码(如果有的话)。
[0104]如图5所示:
[0105]-步骤500、501和502可以由第一地址产生内核101实施;
[0106]-步骤503可以通过访问密钥存储器102而执行;
[0107]-步骤504、505、506、507、509、518、519和520可以由条目定位内核104执行;
[0108]-步骤510可以由第二地址产生内核106执行;
[0109]-步骤511可以通过访问数据存储器103而执行;并且
[0110]-步骤510、511、512、513、514、515、508、516和517可以由执行内核107执行。
[0111]图6表示根据本发明的某些实施方案的示例性资产管理设备。更具体而言,其表示密钥存储器102和数据存储器103的局部视图。存储器102或103中的每个横排表示数据字。密钥存储器102每字包括两个{存在位,密钥}对。数据存储器103每字包括一个值。密钥存储器102中的存在位未显示。
[0112]在该示例中,数据地址与密钥的地址和位置之间的关系为:
[0113]数据地址=密钥地址X 2+位置
[0114]其中,位置在左侧为0(订单6951、7569和4589),在右侧为I (订单5035和6548)。然而,该关系可以取决于存储器的数据宽度以及订单的密钥和数据的数据宽度。
[0115]订单4589的数据未显示。其将在订单6548的数据之下,被表示的区域之外。
[0116]使用所描述的本发明的实施方案,资产管理设备10可以比常规的资产管理设备每单位时间处理更多的消息。资产管理设备10的四重结构(内核101、104、106和107)以及内核之间的互相作用也有利于所获得的性能。
[0117]通过将密钥存储器102与数据存储器103分开,能够使用全部的存储器带宽来获得密钥,而不会影响数据存储器。当使用在FPGA外部的存储器时,这尤其有益。
[0118]此外,资产管理设备的流水线设计使得更容易提高频率,并从而允许令人满意的性能。
[0119]本发明的另一益处涉及:条目定位内核104每时钟周期可以读取最大数量的密钥,从而完全使用了存储器带宽。
[0120]在条目定位内核104和执行内核107中使用缓存能够实现有效的流水线设计。
[0121]根据所描述的本发明的实施方案的资产管理设备10(尤其是执行内核107)适应于直接集成商用逻辑。这避免了标准散列表与将散列表实例化的商用内核之间的往返。例如,对于涉及空数目的修改,在内核中并入商用逻辑免除了对于下列步骤的需求:
[0122]-首先,向散列表发送请求以获得订单细节,
[0123]-然后,一旦检测到了空数目,向散列表发送第二请求,以删除对应于该数目的订单;
[0124]这样的步骤非常影响性能,因为在发出第二请求之前必须等待直到第一请求遍历了散列表。
[0125]应当注意,商用逻辑可以仅集成到资产管理设备10的一部分中:在市场数据处理应用程序的示例中,其可以仅集成到关于金融应用程序的内核107的一部分中。从而,可以包含并且容易地维持或修改特异性。
[0126]图7显示了市场数据处理系统100的示例性实施,其位于标准服务器(主机系统)71内部的PCIe主板70上的FPGA中。图1表示的链表(网络/UDP获取2、解码单元3、订单信息管理器10、订单账簿管理设备4、消息分发和传输单元5)可以通过下列各项补足:
[0127]-UDP&以太网堆栈700,其被配置为在标准以太网上发送输出消息。为了优化性能,该内核可以通过与在所述网络上的客户端一样多的以太网连接而连接至客户端网络。在相同网络上的其他计算机系统72中的客户端应用程序可以以软件实施、由硬件加速或者完全由硬件实施。或者,客户端应用程序可以直接连接至系统的输出端口,以便节省网络装置所累积的延迟。
[0128]-PCIe互联端点701,其被配置为连接至主机系统。
[0129]-DMA( “直接存储器访问”)702,其被配置为通过主板的PCIe连接而向主机系统的RAM 73发送输出消息;客户端应用从而可以在主机系统的CPU 707上运行,并且使用(consume)由DMA发送的消息。
[0130]-第二“NIC”DMA704( “NIC”是网络接口卡的缩写),其被配置为,通过通常由市场数据处理系统的硬件使用的以太网端口,从主机系统的软件接收/向主机系统的软件发送以太网包。PCIe主板70从而可以被操作系统视作普通的网络接口卡。这对于各种实际的目的(例如,发送多路群组订阅、登陆到市场交易所的系统、能够检查连接性)可能是需要的。在某些实施方案中,主要的、对于延迟敏感的数据可以由硬件直接处理,而剩余部分可以以软件处理。这样的配置还使得能够直接连接至交易所的网络I,而无需通过网络交换机或路由器的额外跃点。
[0131]
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1