team to seed project • Engage early and build a community • Share ideas, SW and RTL early and often • Permissive open source license • Multiple volume silicon runs • Expose interesting new features (new toys!)
of hardware features/primitives • Free from commercial influences and release cycles – Cores are free and customisable (one ISA) – Aim to maximise functionality (no product range!) – Clean sheet design
open ISA standard for industry – Explicitly designed to be extensible – Simple base integer ISA (~40 instructions) – 32-bit, 64-bit, 128-bit (!) variants • Simple SoC generator available (incl. cores) • Open source HDL - Chisel
• Initial motivation is prevention of control-flow hijacking attacks (still a major attack surface) • Provide protection for code-pointers – i.e. set tag bit = read only – One subtlety is need to check tag is present upon load (prior to branch) in case of use-after- free
L1/L2 + on-chip tag cache • Exploring 2-bit tags (~3% storage overhead) • ISA support • Ability to use tags simply as data • Configurable policy triggers interrupt
Better version of traditional canaries • Garbage collection • Accelerate debug tools (e.g. Google *Sanitizer) – e.g. use-after-free detection • Per-word locks, full/empty bits for synchronization • Mark valid targets of indirect branches
for precise timing • I/O 'shim' – Logic to aid shift in/out, parallel load, buffer data, provide clocks, assign pins to minions.. • Low-latency path between main cores and minions – May carry cache misses, branch mispredicts..