Isla: Integrating Full-Scale ISA Semantics and Axiomatic Concurrency Models

被引:8
作者
Armstrong, Alasdair [1 ]
Campbell, Brian [2 ]
Simner, Ben [1 ]
Pulte, Christopher [1 ]
Sewell, Peter [1 ]
机构
[1] Univ Cambridge, Cambridge, England
[2] Univ Edinburgh, Edinburgh, Midlothian, Scotland
来源
COMPUTER AIDED VERIFICATION (CAV 2021), PT I | 2021年 / 12759卷
基金
英国工程与自然科学研究理事会;
关键词
D O I
10.1007/978-3-030-81685-8_14
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Architecture specifications such as Armv8-A and RISC-V are the ultimate foundation for software verification and the correctness criteria for hardware verification. They should define the allowed sequential and relaxed-memory concurrency behaviour of programs, but hitherto there has been no integration of full-scale instruction-set architecture (ISA) semantics with axiomatic concurrency models, either in mathematics or in tools. These ISA semantics can be surprisingly large and intricate, e.g. 100k+ lines for Armv8-A. In this paper we present a tool, Isla, for computing the allowed behaviours of concurrent litmus tests with respect to full-scale ISA definitions, in Sail, and arbitrary axiomatic relaxed-memory concurrency models, in the Cat language. It is based on a generic symbolic engine for Sail ISA specifications, which should be valuable also for other verification tasks. We equip the tool with a web interface to make it widely accessible, and illustrate and evaluate it for Armv8-A and RISC-V. By using full-scale and authoritative ISA semantics, this lets one evaluate litmus tests using arbitrary user instructions with high confidence. Moreover, because these ISA specifications give detailed and validated definitions of the sequential aspects of systems functionality, as used by hypervisors and operating systems, e.g. instruction fetch, exceptions, and address translation, our tool provides a basis for developing concurrency semantics for these. We demonstrate this for the Armv8-A instruction-fetch model and self-modifying code examples of Simner et al.
引用
收藏
页码:303 / 316
页数:14
相关论文
共 32 条
[1]  
Alglave Jade, 2013, Computer Aided Verification. 25th International Conference, CAV 2013. Proceedings. LNCS 8044, P141, DOI 10.1007/978-3-642-39799-8_9
[2]  
Alglave J., 2016, ABS160807531 CORR
[3]  
Alglave J., DIY7 TOOL
[4]   Herding Cats: Modelling, Simulation, Testing, and Data Mining for Weak Memory [J].
Alglave, Jade ;
Maranget, Luc ;
Tautschnig, Michael .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 36 (02)
[5]  
Alglave J, 2011, LECT NOTES COMPUT SC, V6605, P41, DOI 10.1007/978-3-642-19835-9_5
[6]  
[Anonymous], 2020, tech. rep.
[7]  
Arm, 2020, ARM MEMORY MODEL TOO
[8]  
Arm, 2020, ARM ARCHITECTURE REF
[9]  
ARM Ltd, 2017, 0487BA ARM LTD
[10]   ISA Semantics for ARMv8-A, RISC-V, and CHERI-MIPS [J].
Armstrong, Alasdair ;
Bauereiss, Thomas ;
Campbell, Brian ;
Reid, Alastair ;
Gray, Kathryn E. ;
Norton, Robert M. ;
Mundkur, Prashanth ;
Wassell, Mark ;
French, Jon ;
Pulte, Christopher ;
Flur, Shaked ;
Stark, Ian ;
Krishnaswami, Neel ;
Sewell, Peter .
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (POPL)