Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will...

32
© ARM 2017 Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ARM Ltd 27/06/2017

Transcript of Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will...

Page 1: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

Title 44pt sentence case

Affiliations 24pt sentence case

20pt sentence case

© ARM 2017

Verification by the book: ISA Formal at ARM

Will Keen

TVS Formal Verification Conference

Senior Engineer, CPU Group

ARM Ltd

27/06/2017

Page 2: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 2

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Roadmap

Problem:

CPU verification is really hard!

Verification by the book:

What is ‘ISA Formal’?

Success to date:

What has ISA Formal achieved?

Future aspirations:

Where is ISA Formal going next?

Page 3: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 3

Text 54pt sentence case Problem: CPU verification is really hard!

Page 4: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 4

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

CPU pipelines

ARM is always looking to optimise execution pipelines for performance

Deep pipelining

Data forwarding

Out-of-order execution

Multi-issue/superscalar execution

Instruction fusing

Great for performance…

Best-in-class cores

… but increased design complexity |->

Greater likelihood of design errors

Greater number of pathological corner cases

Page 5: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 5

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

E.g. Cortex-M7

Aggressive Data Forwarding:

Great for performance

Nightmare for verification

Page 6: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 6

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

E.g. Cortex-A75

(Artist’s impression)

No, seriously though:

Speculative state

Out-of-order

Dependencies

between

instructions

Page 7: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 7

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Verification impact

Verification becomes much harder:

Hard to think of all corner cases

Very hard to stimulate/test all corner cases

… all adds up to increased likelihood of errata

Our worst nightmare

Not an option when partners ship billions of units

Can formal methods help?

‘Breadth-first’ search of BMC will find corner cases…

… but needs suitable properties as checkers…

ISA Formal to the rescue!

Page 8: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 8

Text 54pt sentence case Verification by the book: What is ‘ISA Formal’?

Page 9: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 9

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Verification by the book

… where ‘The Book’ is the ARM ARM

Architecture defines precise

semantics of software/hardware

contract

The Dream: Processors verified

robustly against ARM Architecture

using formal

… all 5740 pages of it?!

Page 10: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 10

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

ARM ARM by area

AArch64 Instruction Set

AArch32 Instruction Set

Common pseudocode

Around 50% of spec

ISA Formal focuses just

on ISA (surprisingly

enough…)

Page 11: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 11

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Pseudocode definition

Architecture sees instructions very simply

Instruction is a function mapping state to next state

Every instruction specified by executable pseudocode

E.g. ADD x0,x1,x2 (N.B. the below is heavily simplified)

State0 State1

Instr0 State2

Instr1 …

Instr2 StateN+1

InstrN

State0 State1

ADD x0,x1,x2

State1.x0 = State0.x1 + State0.x2

Page 12: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 12

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Implementation of architecture

Real implementation not so straightforward!

Many instructions simultaneously, ‘speculative’ views of architectural state

But can we extract architectural state from real pipeline?

StateN: state before InstrN executes

InstrN: opcode of instruction

StateN+1: state after InstrN executes

Page 13: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 13

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

E.g. Cortex-M7 Architectural values for integer registers in register file

Register file writes occur here in WR stage

What do we need for

‘architectural view’?

Don’t care about pipeline

All we need is:

InstrN: Observed opcode in WR (tracked down

pipeline)

StateN: Observed register values (from register file)

StateN+1: Observed register writes

Logic to give expected values

Page 14: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 14

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Architecture Explorer (ArchEx)

ARM in-house tool developed by Alastair Reid, ARM Research

Originally interpreter to execute ARM ARM pseudocode

Translates pseudocode to combinational SystemVerilog

(no flops, no persistent state)

StateN (PRE), InstrN

StateN+1

(POST)

Autogenerated

SystemVerilog

ARM Architecture

ArchEx

Page 15: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 15

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

ArchEx VIP

ISA Formal in practice

Bridge Component

StateN+1 (POST)

StateN (PRE)

Properties

StateN+1 (ARCH)

InstrN DUT

(CPU RTL)

Autogenerated

SystemVerilog

ARM Architecture

Page 16: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 16

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Extracting architectural state (bridge)

Difficult – μArch often obscures architecture for performance

E.g. view of memory, Out-of-Order completion, multi-issue, fusion etc…

But possible – lots of low-hanging fruit

E.g. values in register file are architecturally committed x/w[0-30] values

Everything possible with hard work and tracking logic

Demonstrated to be possible on different ARM cores

A-class – big/LITTLE, in-order/out-of-order

R-class – subset of A-class

M-class – hardware-level exception/interrupt handling, security

Page 17: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 17

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

ISA Formal – why it works

Checks architectural functionality

E.g. does an ADD work properly?

Useful for bringup

Finds architectural corners (e.g. ARMv8-M on Cortex-M33)

By implication, checks μArchitectural functionality

E.g. integer arithmetic with data forwarding

In CPU pipeline, done based on forwarding (speculative architectural state)

In ISA Formal, done based on register file (committed architectural state)

If final register write mismatches due to bad forwarding, we get a counterexample

Works the same way for all ‘committed’ vs ‘speculative’ architectural state

E.g. branch prediction/resolution, conditional execution, pointer-chasing, fusion, OoO, etc.

Page 18: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 18

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

ISA Formal – why it works (contd.)

ArchEx architectural model

Autogenerated – straight from spec to checker, no human misinterpretation

Stateless – good for formal tool

Reusable – many projects work off same VIP generation flow

Coverage – auto-generate required coverage tracking information for signoff

Applying formal verification

Corner cases – tool using ‘breadth-first’ search finds bugs dynamic TBs don’t

Incremental checks – can begin applying checks as instructions are brought up

Assume/guarantee – properties per-instruction, based on current state of RTL

Page 19: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 19

Text 54pt sentence case Success to date: What has ISA Formal achieved?

Page 20: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 20

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

A-class

Cortex-A53

Cortex-A32

Cortex-A35

Cortex-A55

Next generation

Rolling out globally to other design centres

Sophia, France – Cortex-A75 (partial)

Austin, USA – TBA

Chandler, USA – TBA

R-class

Cortex-R52

Next generation

M-class

Cortex-M4

Cortex-M7

Cortex-M33

Next generation

ARM CPUs with ISA Formal

Cambridge projects

Page 21: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 21

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

ISA Formal case study

Example project: Cortex-M33

New Architecture (ARMv8-M)

New μArchitecture

Effort: one Graduate Engineer

Applied mid-project cycle

Successes:

Many unique bugs, not found by simulation TB

Compute-efficient

Resource-efficient (team size)

Page 22: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 22

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Cortex-M33 ISA Formal bug curve

Page 23: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 23

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Cortex-M33 bugs/week per methodology

Page 24: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 24

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Cortex-M33 CPU hours/bug per methodology

Page 25: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 25

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Further thoughts

Quality of bugs, not just quantity

Lots of horrible architectural (and μArchitectural) corner cases

End-to-end nature finds many issues you wouldn’t expect

High RoI

Mostly done by less experienced engineers, who become ‘experts’

Also boosts Sim TB guys with cross-communication on issues found

Highly portable

All ARM architecture profiles covered

Very small to very large cores (M4–A75)

Page 26: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 26

Text 54pt sentence case Future aspirations: Where is ISA Formal going next?

Page 27: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 27

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Sharing our success

Deployment to all ARM CPU projects

Happening as we speak!

‘Democratising’ ISA Formal expertise

Experts providing training/mentoring

Goal – ‘push-button’ flow

Enable non-experts to deploy on future projects

Consolidating ISA Formal collateral

Tool is maintained by ARM Technology Services Group (Daryl Stewart)

Enables easier deployment on projects

Enables leveraging improvements

Page 28: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 28

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Broadening our horizons…

ISA is just one part of architecture

Can we deploy further?

‘Architecture Formal’

Identifying other candidates for similar treatment

Memory model

MMU

Decoders

Debug

Etc.

Spreading out to other groups within ARM

Encourage automated spec formal VIP work across the company

Page 29: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 29

Text 54pt sentence case Summary

Page 30: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017 30

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

ISA Formal summary

Verification by the book

Automatically generate Formal VIP from the architecture

Proven bug-hunting track record

Has found bugs on all applications before product release

Vast scope of possibility

‘Architecture Formal’ could be far-reaching in impact

Page 31: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

© ARM 2017

Questions?

Page 32: Verification by the book: ISA Formal at ARM · Verification by the book: ISA Formal at ARM Will Keen TVS Formal Verification Conference Senior Engineer, CPU Group ... Verification

The trademarks featured in this presentation are registered and/or unregistered trademarks of ARM Limited

(or its subsidiaries) in the US and/or elsewhere. All rights reserved. All other marks featured may be

trademarks of their respective owners.

Copyright © 2017 ARM Limited

© ARM 2017