trusting large specifications the virtuous cycle
play

Trusting Large Specifications: The Virtuous Cycle Alastair Reid - PowerPoint PPT Presentation

Trusting Large Specifications: The Virtuous Cycle Alastair Reid alastair.reid@arm.com @alastair_d_reid ARM Research Applica'on Library OS Compiler Processor ARM Research 2 Qualities of a Specification Applicability Scope


  1. Trusting Large Specifications: The Virtuous Cycle Alastair Reid alastair.reid@arm.com @alastair_d_reid ARM Research

  2. Applica'on Library OS Compiler Processor ARM Research 2

  3. Qualities of a Specification Applicability Scope Trustworthiness ARM Research 3

  4. Applicability v6 (1997) A -class (phones/tablets/servers) v7 (2005) R -class (real-time, lock-step support) v8.0 (2013) v8.1 (2015) M -class (microcontroller) v8.2 (2016) ARM Research 4

  5. Scope Compiler targeted instructions? User-level instructions? User+Supervisor? User+Supervisor+Hypervisor+Secure Monitor? ARM Research 5

  6. ISA Specification - ASL Opcode Check Validity Get Operands Set Result Register Set Flags ARM Research 6

  7. System Architecture Specification ARM Research 7

  8. ARM Spec (lines of code) v8-A v8-M Instructions 26,000 6,000 Int/FP/SIMD Exceptions 4,000 3,000 Memory 3,000 1,000 Debug 3,000 1,000 5,500 2,000 Misc (Test support) 1,500 2,000 Total 43,000 15,000 ARM Research 8

  9. System Register Spec v8-A v8-M 586 186 Registers Fields 3951 622 Constant 985 177 aoe Reserved 940 208 Impl. Defined 70 10 Passive 1888 165 68 62 Active Operations 112 10 ARM Research 9

  10. Trustworthiness ARM Research 10

  11. Trustworthiness ARM’s specification is correct by definition ARM Research 10

  12. Trustworthiness ARM’s specification is correct by definition ARM Research 10

  13. Trustworthiness Does the specification match the behaviour of all ARM processors? ARM Research 11

  14. ARM Spec Test S'mulus =?= Oracle ARM Research 12

  15. ARM Spec Directed Tests Random Tests … =?= Memory Tests IRQ Generators Oracle ARM Research 13

  16. ARM Spec Directed Tests Random Tests Self-checking … Bus monitors Memory Tests Trace compare IRQ Generators Oracle ARM Research 14

  17. Architecture Conformance Suite Processor architectural compliance sign-off Large v8-A 11,000 test programs, > 2 billion instructions v8-M 3,500 test programs, > 250 million instructions Thorough Tests dark corners of specification ARM Research 15

  18. v8-A v8-M 100% 100% 75% 75% 50% 50% 25% 25% 0% 0% ARM Research 16

  19. Trustworthy Specifica'ons of ARM v8-A and v8-M System Level Architecture, FMCAD 2016 Pass / Fail ARM Spec ASL Interpreter ELF Test Implementa'on Defined ARM Research 17

  20. End to End Verifica'on of ARM Processors with ISA-Formal, CAV 2016 Counterexample ARM Spec Model Checker ARM CPU Counterexample ARM Research 18

  21. (Work by Jon French and Nathan Chong) ARM Spec ASL Interpreter mbedOS Implementa'on Defined ARM Research 19

  22. (Work by Jon French and Nathan Chong) ARM Spec AFL Fuzzer mbedOS Bugs ARM Research 20

  23. Creating a Virtuous Cycle ARM Informa'on Conformance Testcase Flow TestSuite Genera'on Analysis Processor So_ware ARM Spec Verifica'on Verifica'on Random Boot Instruc'on AFL OS Sequences Fuzzer ARM Research 21

  24. Preparing public release of ARM v8-A specification • Enable formal verification of software and tools • Public release planned for 2016 Q4 • Liberal license • REMS group currently translating to SAIL Talk to me about how I can help you use it ARM Research 22

  25. CPU Specifications Basis of a lot of formal verification Too large to be “obviously correct” Reusable specs enable “virtuous cycle” Greater effort to produce Share testing / maintenance effort More likely to be correct Preparing public release of machine readable ARM Specification ARM Research 23

  26. End Alastair Reid ARM Research alastair.reid@arm.com @alastair_d_reid

Recommend


More recommend