Spec and Design - sora/kvs_hdl GitHub Wiki

Spec

  • KVS protocol
  • Ethernet standard compatibility
    • IEEE 802.3ab 1000BASE-T (GMII)
  • Transport protocol
    • UDP
    • port: 11211
  • Hash function
    • CRC (12 bit)
  • Key length
    • variable length
  • Value size
    • 32 byte
  • Memory type
    • Dual-Port BRAM
    • 131,072 byte
  • Commands
    • Set and Get

Block diagram

ブロックダイアグラム


Memory

memory

memory address design

Initial implementation doesn't store key


Hashkey

Convert CRC16 to 12 bit hashkey

wire [11:0] hashkey = hashkey_out[11:0] ^ hashkey_out[15:12];

Value data structure

Value data structure


Timing to start sending a replay packet

Internal delay

Internal delay: 416 ns (52 clock)

Ethernet preamble + SFD   |  9 clock
Ethernet header           | 14 clock
IPv4 header               | 20 clock
UDP header                |  8 clock
Memcache magic code field |  1 clock
------------------------------------
                    Total | 52 clock