Formal Methods (i.e. mathematical, algorithmic) for Software and Hardware Designs and, more generally, Design Tools and Technologies Research @KU.

Slides:



Advertisements
Similar presentations
Catching Bugs in Software Rajeev Alur Systems Design Research Lab University of Pennsylvania
Advertisements

EECE **** Embedded System Design
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
What are Formal Verification Methods Mathematically based languages, techniques and tools for specifying and verifying systems Language – Clear unambiguous.
© Dr. Ernest CachiaSlide 1 Consider the nature of a computer as a tool –Non conventional in that it’s universal –Reasons for it being so (separation.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Leveraging Assertion Based Verification by using Magellan Michal Cayzer.
1 Basic Definitions: Testing What is software testing? Running a program In order to find faults a.k.a. defects a.k.a. errors a.k.a. flaws a.k.a. faults.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Define Embedded Systems Small (?) Application Specific Computer Systems.
Transaction Processing IS698 Min Song. 2 What is a Transaction?  When an event in the real world changes the state of the enterprise, a transaction is.
Logic Design Outline –Logic Design –Schematic Capture –Logic Simulation –Logic Synthesis –Technology Mapping –Logic Verification Goal –Understand logic.
EET 4250: Chapter 1 Performance Measurement, Instruction Count & CPI Acknowledgements: Some slides and lecture notes for this course adapted from Prof.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
ECI 2007: Specification and Verification of Object- Oriented Programs Lecture 0.
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Data Structures and Programming.  John Edgar2.
Using a Formal Specification and a Model Checker to Monitor and Guide Simulation Verifying the Multiprocessing Hardware of the Alpha Microprocessor.
CS 153 Design of Operating Systems Spring 2015 Final Review.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
Digitaalsüsteemide verifitseerimise kursus1 Digitaalsüsteemide verifitseerimine IAF0620, 5.0 AP, E Jaan Raik IT-208,
EECS 318 CAD Computer Aided Design LECTURE 1: Introduction.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Axiomatic Methods for Software Verification Hongseok Yang.
ESL and High-level Design: Who Cares? Anmol Mathur CTO and co-founder, Calypto Design Systems.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
1 Levent Yilmaz COMP7730: Formal Methods in Software Engineering.
SEN 460 Software Quality Assurance. Bahria University Karachi Campus Waseem Akhtar Mufti B.E(UIT), M.S(S.E) AAU Denmark Assistant Professor Department.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 05/06 Universität Dortmund Validation - Formal verification -
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
Operating Systems: Wrap-Up Questions answered in this lecture: What is an Operating System? Why are operating systems so interesting? What techniques can.
1 IAF0620, 5.0 AP, Exam Jaan Raik ICT-524, , Digital systems verification.
System-on-Chip Design Hao Zheng Comp Sci & Eng U of South Florida 1.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO CS 219 Computer Organization.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Introduction to Hardware Verification ECE 598 SV Prof. Shobha Vasudevan.
Winter 2007SEG2101 Chapter 121 Chapter 12 Verification and Validation.
September 1999Compaq Computer CorporationSlide 1 of 16 Verification of cache-coherence protocols with TLA+ Homayoon Akhiani, Damien Doligez, Paul Harter,
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2012.
Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.
Formal Methods. Objectives To introduce formal methods including multiple logic based approaches for software modelling and reasoning 2.
EMT 351/4 DIGITAL IC DESIGN Week # 1 EDA & HDL.
Sub-fields of computer science. Sub-fields of computer science.
System-on-Chip Design
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Albert M. K. Cheng Embedded Real-Time Systems
Formal Methods for Finding Bugs in Concurrent Software
CS 21a: Intro to Computing I
Human Resource Management By Dr. Debashish Sengupta
IP – Based Design Methodology
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Unit Test Pattern.
Gabor Madl Ph.D. Candidate, UC Irvine Advisor: Nikil Dutt
Foundations of Computer Science
Group Truck Technology, Powetrain Engineering, Control Systems dept.
Operating Systems : Overview
Baisc Of Software Testing
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
OPERATING SYSTEMS MEMORY MANAGEMENT BY DR.V.R.ELANGOVAN.
Advanced OS COMP 755.
Presentation transcript:

Formal Methods (i.e. mathematical, algorithmic) for Software and Hardware Designs and, more generally, Design Tools and Technologies Research @KU http://designtech.ku.edu.tr

Concurrency bug in Boxwood cache Caught using a tool that Tayfun Elmas (PhD Student) developed Write(AB) starts Flush() starts handle T Z Chunk Manager X Y Cache handle X Z Chunk Manager A Y Cache handle A Y Chunk Manager Cache Write(AB) ends Flush() ends handle A Y Chunk Manager A B Cache handle A Y Chunk Manager A B Cache Corrupted data in persistent storage Very tricky bug Developers had not caught it after several years PLDI 2005, June 12-15, Chicago, U.S.

Don Knuth says ... What were the lessons I learned from so many years of intensive work on the practical problem of setting type by computer? One of the most important lessons, perhaps, is the fact that SOFTWARE IS HARD. From now on I shall have significantly greater respect for every successful software tool that I encounter. During the past decade I was surprised to learn that the writing of programs for TeX and Metafont proved to be much more difficult than all the other things I had done (like proving theorems or writing books). The creation of good software demands a significantly higher standard of accuracy than those other things do, and it requires a longer attention span than other intellectual tasks. —Donald Knuth, Keynote address to 11th World Computer Congress (IFIP Congress 89).

Bill Gates says ... "Things like even software verification, this has been the Holy Grail of computer science for many decades but now in some very key areas, for example, driver verification we’re building tools that can do actual proof about the software and how it works in order to guarantee the reliability." Bill Gates, April 18, 2002. Keynote address at WinHec 2002

French Guyana, June 4, 1996 $800 million software failure

Mars, July 4, 1997 Lost contact due to real-time priority inversion bug

Faulty division algorithm (Intel Pentium) $475 million replacement cost Faulty floppy disk controller (Toshiba) $2.1 billion court settlement

$4 billion development effort > 50% system integration & validation cost

400 horses 100 microprocessors

Cost of Finding Flaws Late Feb. 17, 2003 Comp 302, Spring 2003

SCIENCE Natural Systems ENGINEERING Artificial Systems ANALYSIS PURE Abstract Systems THEORY Veri/Falsification APPLIED Concrete Systems EXPERIMENT DESIGN

DESIGN VERI/FALSIFICATION by simulation by test INFORMAL (ad hoc) Poor coverage High recovery cost by proof by algorithm FORMAL (systematic)

Design Process Design : specify and enter the design intent Verify: verify the correctness of design and implementation Implement: refine the design through all phases

Flavors of Verification System (Behavioral) Level Design Verification: Does the design make sense? If I implemented it as designed, would it satisfy the design requirements? Register Transfer Level (RTL) Gate Level Implementation Verification: Is the implementation at the lower layer of abstraction consistent with the higher level? Transistor Level Layout Level

Systems Design and Verification Challenges Heterogeneity (analog, digital, HW/SW) Complexity (~billion transistors, ~millions of lines of code) Time-to-market

Role of Computer-Aided Design and Verification Tools: Helping humans cope Intelligence Quotient Transistors PPC603 10M Pentium 50 80 120 140 160 180 100 80486 Pentium Pro 1M 80386 PPC601 68020 68040 MIPS R4000 68000 100K 8086 10K 4004 8080 1K 100 10 1 1975 1980 1985 1990 1995 Processor Complexity Avg. Human IQ

Simulation/Testing vs. Formal Verification Not complete Need to generate expected behavior Difficult to cover corner cases CPU intensive have to run billions of cycles Can handle large systems Formal Verification Complete wrt specification No need to generate expected behavior Corner cases are automatically taken care of Most of the state-of-the-art methods are memory intensive Memory usage is strongly related with the size of systems to be verified

Exploring the State Space of an FSM Implicit methods: Represent sets of states with decision diagrams Representation size not proportional to number of states But still memory limited

11 10 stars 7 10 transistors 100,000 10 states