Git Product home page Git Product logo

peregrine's Introduction

Some notes on specific aspects of line-rate (highest speed at any given point in time) routers, which are typically implemented using dedicated hardware. Here's a tentative list of topics. There's no particular order or reason to these topics.

  1. Performance requirements for a line-rate router. Router evolution over time.

  2. Motivating the match-action or lookup model of routers.

  3. The architecture of a line-rate router: Why are routers architected as a pipeline? (this is the area and power argument)

  4. The cost of a line-rate router: Why is the pipeline model in silicon more effective than throwing an array of processors at the problem.

  5. Memory performance models.

  6. Why bypassing or operand forwarding doesn't work at line rate?

  7. Building multi-ported memories from single-ported memories.

  8. Dictionaries in hardware and their implementations (hash tables, cuckoo hashing, d-left, CAMs)

  9. Dictionaries with inserts and deletes in the data-plane

    • MAC learning
    • d-left hash tables used for caching
  10. TCAM implementations in hardware.

  11. The partitioned Bloom Filter idea.

  12. Using permutation networks in lieu of a multiplexer.

  13. Some basics, required for building actual hardware.

    • Writing hardware in Verilog.
    • Using a silicon compiler like Synopsys DC.
    • (maybe) writing hardware in Chisel.
    • (maybe) formal verification of hardware.
  14. Predication vs. branches in hardware

  15. Dynamic vs. static data dependencies (x86 vs. VLIW/dataflow)

  16. Parsing vs. lookup: Why do we need more parsers than pipelines for the same aggregate throughput?

  17. The "market" case for programmability: Can we document the number of RFCs that routers are expected to implement, year on year? http://stanford.edu/~lavanyaj/papers/compiling15.pdf says it's 7000 RFCs, but it isn't clear how they get that number.

  18. How does this compare to using delay slots in the MIPS architecture?

  19. A first-order model for SRAM and DRAM cells. Ideally, a HSPICE simulation for these cells.

peregrine's People

Contributors

anirudhsk avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.