Nasdaq Itch Ticker Plant Miles Sherman, Kevin Wong, Pranav - - PowerPoint PPT Presentation

nasdaq itch ticker plant
SMART_READER_LITE
LIVE PREVIEW

Nasdaq Itch Ticker Plant Miles Sherman, Kevin Wong, Pranav - - PowerPoint PPT Presentation

Nasdaq Itch Ticker Plant Miles Sherman, Kevin Wong, Pranav Sood, Naman Parashar, Artyom Yakovlev What is Itch? Why hardware? Itch is the Nasdaqs


slide-1
SLIDE 1

Nasdaq ¡Itch ¡Ticker ¡Plant ¡

Miles ¡Sherman, ¡Kevin ¡Wong, ¡Pranav ¡ Sood, ¡Naman ¡Parashar, ¡Artyom ¡ Yakovlev ¡

slide-2
SLIDE 2

What ¡is ¡Itch? ¡Why ¡hardware? ¡

  • Itch ¡is ¡the ¡Nasdaq’s ¡protocol ¡for ¡informaDon ¡
  • transfer. ¡
  • Big ¡firms ¡require ¡lowest ¡latency. ¡Time ¡is ¡

money! ¡

– TradiDonal ¡soJware ¡methods ¡work, ¡but ¡hardware ¡ can ¡provide ¡large ¡decrease ¡in ¡latency. ¡

  • An ¡untouched ¡market. ¡

2 ¡

slide-3
SLIDE 3

The ¡Concept ¡

3 ¡

Packetizer MoldUDP Packetizer & Parser L3 Book Builder L3 Book RAM L2 Book Builder L2 Book RAM Broadcaster Ethernet Packet UDP Payload ITCH Message ITCH Order L2 Book Changes L2 Book Ethernet Packet ITCH Order

slide-4
SLIDE 4

Module ¡Level ¡DescripDons ¡

slide-5
SLIDE 5

UDP ¡PackeDzer ¡ When ¡packets ¡are ¡being ¡received, ¡ the ¡payload ¡is ¡encapsulated ¡within ¡ 3 ¡headers: ¡ 1> ¡Ethernet ¡Header ¡ 2> ¡IP ¡Header ¡ 3> ¡UDP ¡Header ¡

slide-6
SLIDE 6

MoldUDP ¡PackeDzer ¡& ¡Parser ¡

  • Purpose ¡

– To ¡receive ¡and ¡accumulate ¡IP ¡Payload ¡data ¡from ¡ the ¡packeDzer ¡ – Outputs ¡full ¡relevant ¡messages ¡to ¡FIFO ¡to ¡be ¡read ¡ by ¡L3 ¡book ¡

slide-7
SLIDE 7

UDP ¡Packet ¡Payload ¡

  • Upon ¡reaching ¡the ¡payload ¡of ¡every ¡packet, ¡a ¡

data_valid_out ¡signal ¡is ¡given ¡to ¡the ¡next ¡ stage ¡( ¡MOLD_UDP), ¡which ¡is ¡an ¡indicaDon ¡ this ¡is ¡the ¡relevant ¡data ¡that ¡needs ¡to ¡be ¡read ¡

  • in. ¡
  • Payload ¡data ¡is ¡given ¡out ¡in ¡bursts ¡of ¡8 ¡bytes ¡

per ¡clock ¡cycle ¡Dll ¡the ¡payload ¡is ¡exhausted. ¡

  • The ¡FSM ¡diagram ¡on ¡next ¡slide ¡makes ¡it ¡much ¡

more ¡comprehensible. ¡ ¡

slide-8
SLIDE 8

UDP ¡PackeDzer ¡FSM ¡

slide-9
SLIDE 9

FuncDonality ¡

  • MoldUDP ¡Module ¡contains ¡two ¡components ¡

– MoldUDPPackeDzer_DataReg.vhd ¡

  • Handles ¡incoming ¡data ¡from ¡the ¡PackeDzer ¡module ¡
  • Accumulates ¡data ¡unDl ¡a ¡single ¡message ¡is ¡reacheds, ¡

then ¡sends ¡out ¡enDre ¡message ¡to ¡parser. ¡

– Msg_Parser.vhd ¡

  • Serves ¡to ¡parse ¡incoming ¡messages ¡from ¡the ¡Data ¡Reg ¡
  • module. ¡ ¡
  • Filters ¡out ¡irrelevant ¡messages ¡and ¡crop ¡unneeded ¡

porDons ¡of ¡certain ¡messages, ¡then ¡sends ¡to ¡FIFO ¡

slide-10
SLIDE 10

L3 ¡Book ¡Builder ¡

  • Large ¡database ¡controller. ¡
  • Extremely ¡low ¡latency ¡requirements. ¡
  • Implemented ¡using ¡two ¡ternary ¡trees. ¡
slide-11
SLIDE 11

11 ¡

L3 ¡Book ¡Builder ¡

  • The ¡ternary ¡tree ¡must ¡stay ¡rebalanced. ¡

– If ¡successfully ¡balanced ¡at ¡all ¡Dme, ¡a ¡consistent ¡ O(logn) ¡operaDon ¡Dme ¡is ¡observed ¡for ¡lookups. ¡

11 ¡

slide-12
SLIDE 12

12 ¡

Ternary ¡Tree ¡

  • Added ¡funcDonality ¡in ¡the ¡form ¡of ¡a ¡center ¡
  • node. ¡Not ¡involved ¡in ¡rotaDon ¡
  • Address ¡of ¡node ¡to ¡be ¡deleted ¡is ¡provided ¡by ¡

the ¡search ¡module. ¡ ¡

  • PosiDon ¡of ¡the ¡node ¡is ¡checked ¡in ¡the ¡tree, ¡

deleted ¡and ¡balance ¡factors ¡are ¡updated ¡

  • RotaDon ¡done ¡to ¡balance ¡tree ¡if ¡required ¡
  • Root ¡Sharing. ¡

12 ¡

slide-13
SLIDE 13

13 ¡

Ternary ¡Tree ¡

  • Thoroughly ¡validated ¡with ¡a ¡5 ¡level ¡deep ¡tree. ¡ ¡
  • Validated ¡with ¡trees ¡of ¡1000 ¡randomly ¡

generated ¡nodes. ¡

  • Encountered ¡bugs ¡aJer ¡integraDon. ¡

13 ¡

slide-14
SLIDE 14

14 ¡

L3 ¡Book ¡Builder ¡

  • The ¡ternary ¡tree ¡is ¡parameterized, ¡top ¡level ¡

can ¡recurse ¡on ¡it ¡for ¡different ¡purposes. ¡

14 ¡

slide-15
SLIDE 15

L2 ¡Book ¡Builder ¡-­‑ ¡Design ¡

slide-16
SLIDE 16

Broadcaster ¡

  • Purpose ¡

– To ¡send ¡snapshots ¡of ¡the ¡L2 ¡books ¡to ¡a ¡display ¡ every ¡Dme ¡there ¡is ¡an ¡update. ¡

slide-17
SLIDE 17

FuncDonality ¡

  • L2 ¡sends ¡“update”, ¡“execute” ¡and ¡

“execute_data” ¡signal ¡to ¡Broadcaster ¡

  • Broadcaster ¡reads ¡in ¡data ¡from ¡the ¡updated ¡

L2 ¡RAM ¡and ¡stores ¡it ¡into ¡a ¡buffer. ¡

  • Buffer ¡wrapped ¡in ¡UDP ¡frame, ¡then ¡sent ¡as ¡
  • utput ¡to ¡ethernet ¡port ¡64-­‑bits ¡at ¡a ¡Dme. ¡
slide-18
SLIDE 18

Top ¡Level ¡FuncDonality ¡

slide-19
SLIDE 19

19 ¡

IntegraDon ¡

  • The ¡system ¡is ¡funcDonal ¡in ¡simulaDon ¡and ¡

validated ¡except ¡for ¡the ¡L2 ¡which ¡must ¡be ¡

  • integrated. ¡
  • The ¡current ¡system ¡has ¡a ¡bug ¡in ¡the ¡MoldUDP ¡

packeDzer ¡which ¡requires ¡a ¡day ¡or ¡two ¡to ¡

  • correct. ¡

– Packets ¡are ¡passing ¡but ¡the ¡data ¡is ¡oJen ¡

  • incorrect. ¡

19 ¡