The CHERI capability model Revisiting RISC in an age of risk
|
|
- Daniella Sharp
- 5 years ago
- Views:
Transcription
1 CTS CTSRDCRASH-worthy Trustworthy Systems Research and Development The CHERI capability model Revisiting RISC in an age of risk Jonathan Woodruff, Robert N. M. Watson, David Chisnall, Simon W. Moore, Jonathan Anderson, Brooks Davis, Ben Laurie, Peter G. Neumann, Robert Norton, Michael Roe University of Cambridge, SRI International, Google ISCA June 2014 Approved for public release. This research is sponsored by the Defense Advanced Research Projects Agency (DARPA) and the Air Force Research Laboratory (AFRL), under contract FA C The views, opinions, and/or findings contained in this article/presentation are those of the author/presenter and should not be interpreted as representing the official views or policies, either expressed or implied, of the Defense Advanced Research Projects Agency or the Department of Defense.
2 Memory Safety Crisis ~82% of exploited vulnerabilities in 2012 Software Vulnerability Exploitation Trends, Microsoft How are processors responding? 2
3 Memory Safety Deprecation & Demand Burroughs B5000 IBM System/38 Consensus on paged virtual memory Burroughs Corporation IBM Corporation Cambridge CAP computer RISC Security becoming marketable Hardware support for fine-grained memory safety was the future! Intel MPX 3
4 We ve Built A Real Open Source System CHERI processor + peripherals on FPGA Extension of FreeBSD OS (Including Capsicum software capabilities) Clang & LLVM 4
5 Capability: Unforgeable token of authority. Some capabilities : File descriptors (Capsicum, L4) Segment descriptors (CAP, Intel iapx) Pointers in a virtual machine (Java,.Net) Bounded pointers (M-Machine) 5
6 CHERI Capabilities are Unforgeable Fat Pointers Fat Pointer = Base + Length + Permissions 6
7 Build a RISC Capability Machine Single-cycle instructions Load/Store architecture Compiler & OS manage capabilities 7
8 Build A Useful RISC Capability Machine Keep page-table for virtualisation and backward compatibility Constrain existing loads and stores with implied capability register Integrate with 64-bit MIPS ISA (Applicable to any RISC ISA) 8
9 Paged Memory OS managed Enables swapping Centralized Allows revocation Address validation 9
10 Capabilities Compiler managed Precise Can be delegated Many domains Pointer safety 10
11 Paged Memory + Capabilities OS managed Enables swapping Centralized CHERI Allows revocation Address validation 11 Compiler managed Precise Can be delegated Many domains Pointer safety
12 A CHERI Capability Base of memory of region base [64] Length of region Permissions [16] Access permissions length [64] Experimental [112] 256 bits 12
13 Capability Register File Both Implicit and Explicit Use Implicit Program Counter Capability base length perms C0 (Implicit Data Capability) base length perms C1 base length perms C2 base length perms... C31 base length perms 13
14 Address calculation Instruction Fetch Data Access PC Rn V i r t u a l A d d r e s s TLB P h y s i c a l A d d r e s s Physical Memory 14
15 Address calculation Instruction Fetch Legacy Data Access PC O f f s e t Rn PCC C0 V i r t u a l A d d r e s s TLB P h y s i c a l A d d r e s s Physical Memory 15
16 Address calculation Instruction Fetch Legacy Data Access Capability Data Access PC Rn O f f s e t Rn PCC C0 Cn V i r t u a l A d d r e s s TLB P h y s i c a l A d d r e s s Physical Memory 16
17 Capabilities can Replace Pointers Unprivileged capability manipulation instructions Capability loads and stores for all required memory operations 17
18 Capability Transformations Strictly Reduce Privilege Mnemonic Function CIncBase Increase base and decrease length CSetLen Reduce length CAndPerm Restrict permissions CClearTag Invalidate a capability register Full Instruction Set Reference:
19 LWC2 Complete Set of Capability Loads and Stores Width 0x32 rd cb rt o set 1 0 CLB rd, rt, offset(cb) Mnemonic Function CSC Store capability register CLC Load capability register CL[BHWD][U] Load byte-double via capability register CS[BHWD] Store byte-double via capability register CLLD Load-linked via capability register CSCD Store conditional via capability register Signed Full Instruction Set Reference:
20 Tags to Protect Capabilities in Memory 1 bit 256 bits TAGS DATA Capabilities on the stack and in data structures 20
21 Tag Table in Commodity DRAM TAGS <0.5% Tag Lookup (with cache) DRAM DATA L2 Cache Tags on physical memory Cache line is tag + data 21
22 OS Support is Simple Preserve per-process capability state Deliver capability exception signals Result: Capability machine in each address space 22
23 C-language Support is Straightforward Clang extension to implement pointers as capabilities capability qualifier on pointers Used almost like any other pointer (no subtraction) 23
24 C-language Support is Straightforward! capability char *mystring = ( capability char*)malloc(size);!!! mystring[size] = d ;!!! jalr malloc cincbase $ c1, $c0, returnvalue csetlen $c1, $c1, size csb d, size, 0($c1) 24
25 C-language Support is Straightforward! capability char *mystring = ( capability char*)malloc(size);!!! mystring[size] = d ; 25!!! jalr malloc cincbase $ c1, $c0, returnvalue csetlen $c1, $c1, size csb Run-time Trap! d, size, 0($c1)
26 Program Compartmentalisation is Flexible Coarse-grained using C0, the implicit data capability Fine-grained using native capability addressing 26 Asa Wilson - CC BY-SA 2.0
27 CHERI is Built on BERI Bluespec Extensible RISC Implementation Capability! Unit Mul/Div 64-bit MIPS R4000 ISA 6-stage pipeline FPU Debug Main! Pipeline Single issue, in order >100 MHz on Altera Stratix IV Open source at 27 Tag! Controller Branch Predictor 16k L1D 16k L1I 64k L2 TLB! & CP0
28 Address Calculation Pipeline IF/ID ID/EX EX/MEM MEM/WB PC Instruction Memory General Purpose Registers ALU Data Memory 28
29 Address Calculation Pipeline IF/ID ID/EX EX/MEM MEM/WB PC PCC + Instruction Memory General Purpose Registers ALU + Data Memory PC offset via PCC Capability Registers Data Access offset via arbitrary capability register 29
30 Address Calculation Pipeline IF/ID ID/EX EX/MEM MEM/WB PCC + PC Instruction Memory Use absolute PC instead General Purpose Registers Capability Registers ALU + Data Access offset via arbitrary capability register Data Memory 30
31 See Paper for Limit Study Conclusions: CHERI is competitive Our capability size is the only notable overhead A hypothetical 128-bit CHERI has leading performance
32 CHERI vs. CCured 32 Running in userspace under FreeBSD on CHERI FPGA prototype We ported CCured, an automatic memory-safe transform for C
33 Olden Bounds-checking Overhead(Percentage( 140& 120& 100& 80& 60& 40& 20& 0&,20& & 23.6& 23.72& 23.45& 8.99& 5.19& 29.66& CCured& CHERI&,6.06& Bisort& MST& TreeAdd& Perimeter& 33
34 Protection Slowdown vs. Working Set Size Percent'Run*me'Overhead' 25" 20" 15" 10" 5" 0" TreeAdd" L1 L2 TLB 2" 4" 8" 16" 32" 64" 128" 256" 512" 1024" CHERI'working'set'size'in'Kilobytes' 34
35 Protection Slowdown vs. Working Set Size Percent'Overhead' 25" 20" 15" 10" 5" 0" TreeAdd" BiSort" MST" Perimeter" 2" 4" 8" 16" 32" 64" 128" 256" 512" 1024" CHERI'working'set'size'in'Kilobytes' 35
36 Conclusions Memory safety needs hardware support Current approaches are too weak or too disruptive A hybrid capability approach is compatible and scalable 36
37 Questions? CHERI & SoC RTL, LLVM, & FreeBSD are open source! Thanks to DARPA and Google for support! 37
Beyond the PDP-11: Architectural support for a memory-safe C abstract machine
Trustworthy Systems Research and CTSRDCRASH-worthy Development Beyond the PDP-11: Architectural support for a memory-safe C abstract machine David Chisnall, Colin Rothwell, Brooks Davis, Robert N.M. Watson,
More informationCHERI A Hybrid Capability-System Architecture for Scalable Software Compartmentalization
CHERI A Hybrid Capability-System Architecture for Scalable Software Compartmentalization Robert N.M. Watson *, Jonathan Woodruff *, Peter G. Neumann, Simon W. Moore *, Jonathan Anderson, David Chisnall
More informationCheriBSD: a research fork of FreeBSD
Trustworthy Systems Research and CTSRDCRASH-worthy Development CheriBSD: a research fork of FreeBSD Brooks Davis SRI International BSDCan, Ottawa, Canada June 12, 2015 Approved for public release; distribution
More informationThe CHERI capability model: Revisiting RISC in an age of risk
The CHERI capability model: Revisiting RISC in an age of risk Jonathan Woodruff Robert N. M. Watson David Chisnall Simon W. Moore Jonathan Anderson Brooks Davis Ben Laurie Peter G. Neumann Robert Norton
More informationCHERI C/C++-language and compiler support
CHERI C/C++-language and compiler support David Chisnall, Khilan Gudka, Robert N. M. Watson, Simon W. Moore, Peter G. Neumann, JonathanWoodruff, Jonathan Anderson, Hadrien Barral, Ruslan Bukin, Nirav Dave,
More informationMemory Segmentation to Support Secure Applications
Memory Segmentation to Support Secure Applications Student: Jonathan Woodruff Supervisor: Simon W. Moore Project Lead: Robert N. M. Watson University of Cambridge, Computer Laboratory 1 Introduction Abstract.
More informationAdventures with LLVM in a magical land where pointers are not integers
Adventures with LLVM in a magical land where pointers are not integers David Chisnall Approved for public release; distribution is unlimited. This research is sponsored by the Defense Advanced Research
More informationRobert N. M. Watson Peter G. Neumann. DARPA CRASH PI Meeting Arlington, VA, USA 8 November 2011
Trustworthy Systems Research and CTSRDCRASH-worthy Development Robert N. M. Watson Peter G. Neumann DARPA CRASH PI Meeting Arlington, VA, USA 8 November 2011 Approved for public release. This research
More informationCTSRD Project Briefing
CTSRD Project Briefing Robert N. M. Watson (Cambridge) Peter G. Neumann (SRI) Simon W. Moore (Cambridge) DARPA CRASH PI Meeting San Diego, California, USA 14 January 2014 Approved for public release; distribution
More informationFreeBSD/RISC-V project
FreeBSD/RISC-V project Ruslan Bukin University of Cambridge Computer Laboratory August 25, 2016 Approved for public release; distribution is unlimited. This research is sponsored by the Defense Advanced
More informationProcessor Architecture. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Processor Architecture Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Moore s Law Gordon Moore @ Intel (1965) 2 Computer Architecture Trends (1)
More informationCHERI: A Hybrid Capability Architecture
CHERI: A Hybrid Capability Architecture Robert N.M. Watson, Simon W. Moore, Peter G. Neumann, Jonathan Anderson, John Baldwin, Hadrien Barrel, Ruslan Bukin, David Chisnall, Nirav Dave, Brooks Davis, Lawrence
More informationProcessor Architecture
Processor Architecture Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu)
More informationBaggy bounds checking. Periklis Akri5dis, Manuel Costa, Miguel Castro, Steven Hand
Baggy bounds checking Periklis Akri5dis, Manuel Costa, Miguel Castro, Steven Hand C/C++ programs are vulnerable Lots of exis5ng code in C and C++ More being wrieen every day C/C++ programs are prone to
More informationCHERI: A Hybrid Capability-System Architecture for Scalable Software Compartmentalization
CHERI: A Hybrid Capability-System Architecture for Scalable Software Compartmentalization Robert N. M. Watson, Jonathan Woodruff, Peter G. Neumann, Simon W. Moore, Jonathan Anderson, David Chisnall, Nirav
More informationSecure Virtual Architecture: Using LLVM to Provide Memory Safety to the Entire Software Stack
Secure Virtual Architecture: Using LLVM to Provide Memory Safety to the Entire Software Stack John Criswell, University of Illinois Andrew Lenharth, University of Illinois Dinakar Dhurjati, DoCoMo Communications
More informationCapability Hardware Enhanced RISC Instructions: CHERI Instruction-Set Architecture
Technical Report UCAM-CL-TR-876 ISSN 1476-2986 Number 876 Computer Laboratory Capability Hardware Enhanced RISC Instructions: CHERI Instruction-Set Architecture Robert N. M. Watson, Peter G. Neumann, Jonathan
More informationIF1/IF2. Dout2[31:0] Data Memory. Addr[31:0] Din[31:0] Zero. Res ALU << 2. CPU Registers. extension. sign. W_add[4:0] Din[31:0] Dout[31:0] PC+4
12 1 CMPE110 Fall 2006 A. Di Blas 110 Fall 2006 CMPE pipeline concepts Advanced ffl ILP ffl Deep pipeline ffl Static multiple issue ffl Loop unrolling ffl VLIW ffl Dynamic multiple issue Textbook Edition:
More informationDomain and Type Enforcement for Legacy File Systems. Robert Grimm
Domain and Type Enforcement for Legacy File Systems Robert Grimm Background I Domain and Type Enforcement (DTE) Core security in SPIN based on DTE Coarse-grained control over extensions Framework for fine-grained
More informationISA and RISCV. CASS 2018 Lavanya Ramapantulu
ISA and RISCV CASS 2018 Lavanya Ramapantulu Program Program =?? Algorithm + Data Structures Niklaus Wirth Program (Abstraction) of processor/hardware that executes 3-Jul-18 CASS18 - ISA and RISCV 2 Program
More informationRISC Pipeline. Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University. See: P&H Chapter 4.6
RISC Pipeline Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University See: P&H Chapter 4.6 A Processor memory inst register file alu PC +4 +4 new pc offset target imm control extend =? cmp
More informationECE 2300 Digital Logic & Computer Organization. More Caches Measuring Performance
ECE 23 Digital Logic & Computer Organization Spring 28 More s Measuring Performance Announcements HW7 due tomorrow :59pm Prelab 5(c) due Saturday 3pm Lab 6 (last one) released HW8 (last one) to be released
More informationTranslation Buffers (TLB s)
Translation Buffers (TLB s) To perform virtual to physical address translation we need to look-up a page table Since page table is in memory, need to access memory Much too time consuming; 20 cycles or
More informationMath 230 Assembly Programming (AKA Computer Organization) Spring MIPS Intro
Math 230 Assembly Programming (AKA Computer Organization) Spring 2008 MIPS Intro Adapted from slides developed for: Mary J. Irwin PSU CSE331 Dave Patterson s UCB CS152 M230 L09.1 Smith Spring 2008 MIPS
More informationLecture 5: Instruction Set Architecture : Road Map
S 09 L5-1 18-447 Lecture 5: Instruction Set Architecture James C. Hoe Dept of ECE, CMU February 2, 2009 Announcements: HW 1 due Midterm in 2 weeks Make sure you find lab partners for Lab2, no exceptions
More informationECE260: Fundamentals of Computer Engineering
ECE260: Fundamentals of Computer Engineering Pipelined Datapath and Control James Moscola Dept. of Engineering & Computer Science York College of Pennsylvania ECE260: Fundamentals of Computer Engineering
More informationFull Datapath. Chapter 4 The Processor 2
Pipelining Full Datapath Chapter 4 The Processor 2 Datapath With Control Chapter 4 The Processor 3 Performance Issues Longest delay determines clock period Critical path: load instruction Instruction memory
More informationEverything you ever wanted to know about hello, world *
Everything you ever wanted to know about hello, world * (*but were afraid to ask) Brooks Davis SRI International November 17 th, 2017 Whitman College Walla Walla, WA Approved for public release; distribution
More informationChapter 13 Reduced Instruction Set Computers
Chapter 13 Reduced Instruction Set Computers Contents Instruction execution characteristics Use of a large register file Compiler-based register optimization Reduced instruction set architecture RISC pipelining
More informationPipelining Analogy. Pipelined laundry: overlapping execution. Parallelism improves performance. Four loads: Non-stop: Speedup = 8/3.5 = 2.3.
Pipelining Analogy Pipelined laundry: overlapping execution Parallelism improves performance Four loads: Speedup = 8/3.5 = 2.3 Non-stop: Speedup =2n/05n+15 2n/0.5n 1.5 4 = number of stages 4.5 An Overview
More informationTopics in computer architecture
Topics in computer architecture Sun Microsystems SPARC P.J. Drongowski SandSoftwareSound.net Copyright 1990-2013 Paul J. Drongowski Sun Microsystems SPARC Scalable Processor Architecture Computer family
More informationCOMPUTER ORGANIZATION AND DESIGN
COMPUTER ORGANIZATION AND DESIGN 5 Edition th The Hardware/Software Interface Chapter 4 The Processor 4.1 Introduction Introduction CPU performance factors Instruction count CPI and Cycle time Determined
More informationECE 2300 Digital Logic & Computer Organization. Caches
ECE 23 Digital Logic & Computer Organization Spring 217 s Lecture 2: 1 Announcements HW7 will be posted tonight Lab sessions resume next week Lecture 2: 2 Course Content Binary numbers and logic gates
More informationSpectre and Meltdown. Clifford Wolf q/talk
Spectre and Meltdown Clifford Wolf q/talk 2018-01-30 Spectre and Meltdown Spectre (CVE-2017-5753 and CVE-2017-5715) Is an architectural security bug that effects most modern processors with speculative
More informationInstruction Set Architecture of MIPS Processor
CSE 3421/5421: Introduction to Computer Architecture Instruction Set Architecture of MIPS Processor Presentation B Study: 2.1 2.3, 2.4 2.7, 2.10 and Handout MIPS Instructions: 32-bit Core Subset Read:
More informationPipelining. Pipeline performance
Pipelining Basic concept of assembly line Split a job A into n sequential subjobs (A 1,A 2,,A n ) with each A i taking approximately the same time Each subjob is processed by a different substation (or
More informationChapter 4. The Processor
Chapter 4 The Processor Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle time Determined by CPU hardware We will examine two MIPS implementations A simplified
More informationECE331: Hardware Organization and Design
ECE331: Hardware Organization and Design Lecture 27: Midterm2 review Adapted from Computer Organization and Design, Patterson & Hennessy, UCB Midterm 2 Review Midterm will cover Section 1.6: Processor
More informationPutting the Checks into Checked C. Archibald Samuel Elliott Quals - 31st Oct 2017
Putting the Checks into Checked C Archibald Samuel Elliott Quals - 31st Oct 2017 Added Runtime Bounds Checks to the Checked C Compiler 2 C Extension for Spatial Memory Safety Added Runtime Bounds Checks
More informationSyscalls, exceptions, and interrupts, oh my!
Syscalls, exceptions, and interrupts, oh my! Hakim Weatherspoon CS 3410 Computer Science Cornell University [Altinbuken, Weatherspoon, Bala, Bracy, McKee, and Sirer] Announcements P4-Buffer Overflow is
More informationHA2lloc: Hardware-Assisted Secure Allocator
HA2lloc: Hardware-Assisted Secure Allocator Orlando Arias, Dean Sullivan, Yier Jin {oarias,dean.sullivan}@knights.ucf.edu yier.jin@ece.ufl.edu University of Central Florida University of Florida June 25,
More informationEC-801 Advanced Computer Architecture
EC-801 Advanced Computer Architecture Lecture 5 Instruction Set Architecture I Dr Hashim Ali Fall 2018 Department of Computer Science and Engineering HITEC University Taxila!1 Instruction Set Architecture
More informationLECTURE 3: THE PROCESSOR
LECTURE 3: THE PROCESSOR Abridged version of Patterson & Hennessy (2013):Ch.4 Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle time Determined by CPU
More informationPage 1. Structure of von Nuemann machine. Instruction Set - the type of Instructions
Structure of von Nuemann machine Arithmetic and Logic Unit Input Output Equipment Main Memory Program Control Unit 1 1 Instruction Set - the type of Instructions Arithmetic + Logical (ADD, SUB, MULT, DIV,
More informationVirtual Memory 3. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. P & H Chapter 5.4
Virtual Memory 3 Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University P & H Chapter 5.4 Project3 available now Administrivia Design Doc due next week, Monday, April 16 th Schedule
More informationHakim Weatherspoon CS 3410 Computer Science Cornell University
Hakim Weatherspoon CS 3410 Computer Science Cornell University The slides are the product of many rounds of teaching CS 3410 by Deniz Altinbuken, Professors Weatherspoon, Bala, Bracy, and Sirer. C practice
More informationAdapted from instructor s. Organization and Design, 4th Edition, Patterson & Hennessy, 2008, MK]
Review and Advanced d Concepts Adapted from instructor s supplementary material from Computer Organization and Design, 4th Edition, Patterson & Hennessy, 2008, MK] Pipelining Review PC IF/ID ID/EX EX/M
More informationSlides for Lecture 15
Slides for Lecture 15 ENCM 501: Principles of Computer Architecture Winter 2014 Term Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary 6 March,
More informationHakim Weatherspoon CS 3410 Computer Science Cornell University
Hakim Weatherspoon CS 3410 Computer Science Cornell University The slides are the product of many rounds of teaching CS 3410 by Professors Weatherspoon, Bala, Bracy, McKee, and Sirer. Prelim today Starts
More informationARMv8-A Software Development
ARMv8-A Software Development Course Description ARMv8-A software development is a 4 days ARM official course. The course goes into great depth and provides all necessary know-how to develop software for
More informationEvaluation of RISC-V RTL with FPGA-Accelerated Simulation
Evaluation of RISC-V RTL with FPGA-Accelerated Simulation Donggyu Kim, Christopher Celio, David Biancolin, Jonathan Bachrach, Krste Asanovic CARRV 2017 10/14/2017 Evaluation Methodologies For Computer
More informationComputer Systems Architecture I. CSE 560M Lecture 3 Prof. Patrick Crowley
Computer Systems Architecture I CSE 560M Lecture 3 Prof. Patrick Crowley Plan for Today Announcements Readings are extremely important! No class meeting next Monday Questions Commentaries A few remaining
More informationLatches. IT 3123 Hardware and Software Concepts. Registers. The Little Man has Registers. Data Registers. Program Counter
IT 3123 Hardware and Software Concepts Notice: This session is being recorded. CPU and Memory June 11 Copyright 2005 by Bob Brown Latches Can store one bit of data Can be ganged together to store more
More informationPortland State University ECE 587/687. Virtual Memory and Virtualization
Portland State University ECE 587/687 Virtual Memory and Virtualization Copyright by Alaa Alameldeen and Zeshan Chishti, 2015 Virtual Memory A layer of abstraction between applications and hardware Programs
More informationConfinement (Running Untrusted Programs)
Confinement (Running Untrusted Programs) Chester Rebeiro Indian Institute of Technology Madras Untrusted Programs Untrusted Application Entire Application untrusted Part of application untrusted Modules
More informationProcessor (II) - pipelining. Hwansoo Han
Processor (II) - pipelining Hwansoo Han Pipelining Analogy Pipelined laundry: overlapping execution Parallelism improves performance Four loads: Speedup = 8/3.5 =2.3 Non-stop: 2n/0.5n + 1.5 4 = number
More informationVirtual Memory. P & H Chapter 5.4 (up to TLBs) Hakim Weatherspoon CS 3410, Spring 2013 Computer Science Cornell University
Virtual Memory P & H Chapter 5.4 (up to TLBs) Hakim Weatherspoon CS 3410, Spring 2013 Computer Science Cornell University Big Picture: (Virtual) Memory 0xfffffffc top system reserved 0x80000000 0x7ffffffc
More informationInstruction Set Architecture (ISA)
Instruction Set Architecture (ISA)... the attributes of a [computing] system as seen by the programmer, i.e. the conceptual structure and functional behavior, as distinct from the organization of the data
More informationLecture 4: Review of MIPS. Instruction formats, impl. of control and datapath, pipelined impl.
Lecture 4: Review of MIPS Instruction formats, impl. of control and datapath, pipelined impl. 1 MIPS Instruction Types Data transfer: Load and store Integer arithmetic/logic Floating point arithmetic Control
More informationECE 331 Hardware Organization and Design. UMass ECE Discussion 10 4/5/2018
ECE 331 Hardware Organization and Design UMass ECE Discussion 10 4/5/2018 Today s Discussion Topics Direct and Set Associative Cache Midterm Review Hazards Code reordering and forwarding Direct Mapped
More information(Basic) Processor Pipeline
(Basic) Processor Pipeline Nima Honarmand Generic Instruction Life Cycle Logical steps in processing an instruction: Instruction Fetch (IF_STEP) Instruction Decode (ID_STEP) Operand Fetch (OF_STEP) Might
More informationThe Processor. Z. Jerry Shi Department of Computer Science and Engineering University of Connecticut. CSE3666: Introduction to Computer Architecture
The Processor Z. Jerry Shi Department of Computer Science and Engineering University of Connecticut CSE3666: Introduction to Computer Architecture Introduction CPU performance factors Instruction count
More informationThe Pipelined RiSC-16
The Pipelined RiSC-16 ENEE 446: Digital Computer Design, Fall 2000 Prof. Bruce Jacob This paper describes a pipelined implementation of the 16-bit Ridiculously Simple Computer (RiSC-16), a teaching ISA
More informationCN310 Microprocessor Systems Design
CN310 Microprocessor Systems Design Micro Architecture Nawin Somyat Department of Electrical and Computer Engineering Thammasat University 28 August 2018 Outline Course Contents 1 Introduction 2 Simple
More informationCOSC 6385 Computer Architecture. Instruction Set Architectures
COSC 6385 Computer Architecture Instruction Set Architectures Spring 2012 Instruction Set Architecture (ISA) Definition on Wikipedia: Part of the Computer Architecture related to programming Defines set
More informationVirtual Memory Review. Page faults. Paging system summary (so far)
Lecture 22 (Wed 11/19/2008) Virtual Memory Review Lab #4 Software Simulation Due Fri Nov 21 at 5pm HW #3 Cache Simulator & code optimization Due Mon Nov 24 at 5pm More Virtual Memory 1 2 Paging system
More informationHardBound: Architectural Support for Spatial Safety of the C Programming Language
HardBound: Architectural Support for Spatial Safety of the C Programming Language Joe Devietti *, Colin Blundell, Milo Martin, Steve Zdancewic * University of Washington, University of Pennsylvania devietti@cs.washington.edu,
More informationFull Datapath. Chapter 4 The Processor 2
Pipelining Full Datapath Chapter 4 The Processor 2 Datapath With Control Chapter 4 The Processor 3 Performance Issues Longest delay determines clock period Critical path: load instruction Instruction memory
More informationLecture 2: Instruction Set Architecture. How to specify what a computer does?
18 447 Lecture 2: Instruction Set Architecture S 10 L2 1 James C. Hoe Dept of ECE, CMU January 13, 2010 Announcements: Everyone must hand in a course survey on 1/20 Read P&H Ch2 and optionally Appendix
More informationCOMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. 5 th. Edition. Chapter 4. The Processor
COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition Chapter 4 The Processor Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle
More informationThe lowrisc project Alex Bradbury
The lowrisc project Alex Bradbury lowrisc C.I.C. 3 rd April 2017 lowrisc We are producing an open source Linux capable System-on-a- Chip (SoC) 64-bit multicore Aim to be the Linux of the Hardware world
More informationInstruction Set Principles. (Appendix B)
Instruction Set Principles (Appendix B) Outline Introduction Classification of Instruction Set Architectures Addressing Modes Instruction Set Operations Type & Size of Operands Instruction Set Encoding
More informationTypical Processor Execution Cycle
Typical Processor Execution Cycle Instruction Fetch Obtain instruction from program storage Instruction Decode Determine required actions and instruction size Operand Fetch Locate and obtain operand data
More informationVirtual Memory. Patterson & Hennessey Chapter 5 ELEC 5200/6200 1
Virtual Memory Patterson & Hennessey Chapter 5 ELEC 5200/6200 1 Virtual Memory Use main memory as a cache for secondary (disk) storage Managed jointly by CPU hardware and the operating system (OS) Programs
More informationP & H Chapter 5.7 (up to TLBs) Prof. Hakim Weatherspoon CS 3410, Spring 2015 Computer Science Cornell University
P & H Chapter 5.7 (up to TLBs) Prof. Hakim Weatherspoon CS 3410, Spring 2015 Computer Science Cornell University Where did you go? a) Home b) Caribbean, Hawaii, Florida, California, South America, etc
More informationCS 352H Computer Systems Architecture Exam #1 - Prof. Keckler October 11, 2007
CS 352H Computer Systems Architecture Exam #1 - Prof. Keckler October 11, 2007 Name: Solutions (please print) 1-3. 11 points 4. 7 points 5. 7 points 6. 20 points 7. 30 points 8. 25 points Total (105 pts):
More informationLecture 29 Review" CPU time: the best metric" Be sure you understand CC, clock period" Common (and good) performance metrics"
Be sure you understand CC, clock period Lecture 29 Review Suggested reading: Everything Q1: D[8] = D[8] + RF[1] + RF[4] I[15]: Add R2, R1, R4 RF[1] = 4 I[16]: MOV R3, 8 RF[4] = 5 I[17]: Add R2, R2, R3
More informationCISC 662 Graduate Computer Architecture Lecture 13 - Limits of ILP
CISC 662 Graduate Computer Architecture Lecture 13 - Limits of ILP Michela Taufer http://www.cis.udel.edu/~taufer/teaching/cis662f07 Powerpoint Lecture Notes from John Hennessy and David Patterson s: Computer
More informationCPU Project in Western Digital: From Embedded Cores for Flash Controllers to Vision of Datacenter Processors with Open Interfaces
CPU Project in Western Digital: From Embedded Cores for Flash Controllers to Vision of Datacenter Processors with Open Interfaces Zvonimir Z. Bandic, Sr. Director Robert Golla, Sr. Fellow Dejan Vucinic,
More informationThe Nios II Family of Configurable Soft-core Processors
The Nios II Family of Configurable Soft-core Processors James Ball August 16, 2005 2005 Altera Corporation Agenda Nios II Introduction Configuring your CPU FPGA vs. ASIC CPU Design Instruction Set Architecture
More informationConstructing Virtual Architectures on Tiled Processors. David Wentzlaff Anant Agarwal MIT
Constructing Virtual Architectures on Tiled Processors David Wentzlaff Anant Agarwal MIT 1 Emulators and JITs for Multi-Core David Wentzlaff Anant Agarwal MIT 2 Why Multi-Core? 3 Why Multi-Core? Future
More informationComputer Systems A Programmer s Perspective 1 (Beta Draft)
Computer Systems A Programmer s Perspective 1 (Beta Draft) Randal E. Bryant David R. O Hallaron August 1, 2001 1 Copyright c 2001, R. E. Bryant, D. R. O Hallaron. All rights reserved. 2 Contents Preface
More informationCPU Structure and Function. Chapter 12, William Stallings Computer Organization and Architecture 7 th Edition
CPU Structure and Function Chapter 12, William Stallings Computer Organization and Architecture 7 th Edition CPU must: CPU Function Fetch instructions Interpret/decode instructions Fetch data Process data
More informationComputer Architecture 计算机体系结构. Lecture 2. Instruction Set Architecture 第二讲 指令集架构. Chao Li, PhD. 李超博士
Computer Architecture 计算机体系结构 Lecture 2. Instruction Set Architecture 第二讲 指令集架构 Chao Li, PhD. 李超博士 SJTU-SE346, Spring 27 Review ENIAC (946) used decimal representation; vacuum tubes per digit; could store
More informationCOMPUTER ORGANIZATION & ARCHITECTURE
COMPUTER ORGANIZATION & ARCHITECTURE Instructions Sets Architecture Lesson 5a 1 What are Instruction Sets The complete collection of instructions that are understood by a CPU Can be considered as a functional
More informationISA: The Hardware Software Interface
ISA: The Hardware Software Interface Instruction Set Architecture (ISA) is where software meets hardware In embedded systems, this boundary is often flexible Understanding of ISA design is therefore important
More informationARM Ltd. ! Founded in November 1990! Spun out of Acorn Computers
ARM Architecture ARM Ltd! Founded in November 1990! Spun out of Acorn Computers! Designs the ARM range of RISC processor cores! Licenses ARM core designs to semiconductor partners who fabricate and sell
More informationCOMP2611: Computer Organization. The Pipelined Processor
COMP2611: Computer Organization The 1 2 Background 2 High-Performance Processors 3 Two techniques for designing high-performance processors by exploiting parallelism: Multiprocessing: parallelism among
More informationLecture 11: Interrupt and Exception. James C. Hoe Department of ECE Carnegie Mellon University
18 447 Lecture 11: Interrupt and Exception James C. Hoe Department of ECE Carnegie Mellon University 18 447 S18 L11 S1, James C. Hoe, CMU/ECE/CALCM, 2018 Your goal today Housekeeping first peek outside
More informationChapter 2. Parallel Hardware and Parallel Software. An Introduction to Parallel Programming. The Von Neuman Architecture
An Introduction to Parallel Programming Peter Pacheco Chapter 2 Parallel Hardware and Parallel Software 1 The Von Neuman Architecture Control unit: responsible for deciding which instruction in a program
More informationSeveral Common Compiler Strategies. Instruction scheduling Loop unrolling Static Branch Prediction Software Pipelining
Several Common Compiler Strategies Instruction scheduling Loop unrolling Static Branch Prediction Software Pipelining Basic Instruction Scheduling Reschedule the order of the instructions to reduce the
More informationComputer Systems Architecture Spring 2016
Computer Systems Architecture Spring 2016 Lecture 01: Introduction Shuai Wang Department of Computer Science and Technology Nanjing University [Adapted from Computer Architecture: A Quantitative Approach,
More informationAddress Translation. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University
Address Translation Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics How to reduce the size of page tables? How to reduce the time for
More informationVirtual Machines and Dynamic Translation: Implementing ISAs in Software
Virtual Machines and Dynamic Translation: Implementing ISAs in Software Krste Asanovic Laboratory for Computer Science Massachusetts Institute of Technology Software Applications How is a software application
More informationNon 8-bit byte support in Clang and LLVM Ed Jones, Simon Cook
Non 8-bit byte support in Clang and LLVM Ed Jones, Simon Cook CHAR_BIT From C99 standard 6.2.6.1 A byte contains CHAR_BIT bits, and the values of type unsigned char range from 0 to 2^CHAR_BIT 1 CHAR_BIT
More informationVirtual memory. Hung-Wei Tseng
Virtual memory Hung-Wei Tseng Why virtual memory How VM works VM and cache Outline 4 Virtual memory 5 Scenario I An application is design on machine A with memory size X. Can we safely execute the same
More informationAdvanced Computer Architecture
Advanced Computer Architecture Chapter 1 Introduction into the Sequential and Pipeline Instruction Execution Martin Milata What is a Processors Architecture Instruction Set Architecture (ISA) Describes
More informationChecked C. Michael Hicks The University of Maryland joint work with David Tarditi (MSR), Andrew Ruef (UMD), Sam Elliott (UW)
Checked C Michael Hicks The University of Maryland joint work with David Tarditi (MSR), Andrew Ruef (UMD), Sam Elliott (UW) UM Motivation - Lots of C/C++ code out there. - One open source code indexer
More informationInstruction Set Design
Instruction Set Design software instruction set hardware CPE442 Lec 3 ISA.1 Instruction Set Architecture Programmer's View ADD SUBTRACT AND OR COMPARE... 01010 01110 10011 10001 11010... CPU Memory I/O
More informationCOSC 6385 Computer Architecture - Pipelining
COSC 6385 Computer Architecture - Pipelining Fall 2006 Some of the slides are based on a lecture by David Culler, Instruction Set Architecture Relevant features for distinguishing ISA s Internal storage
More information