Architecture as Interface

Similar documents
Lecture-14 (Memory Hierarchy) CS422-Spring

CSE380 - Operating Systems. Communicating with Devices

LECTURE 11. Memory Hierarchy

CPU Pipelining Issues

CS252 S05. Main memory management. Memory hardware. The scale of things. Memory hardware (cont.) Bottleneck

CSE502: Computer Architecture CSE 502: Computer Architecture

Review: Performance Latency vs. Throughput. Time (seconds/program) is performance measure Instructions Clock cycles Seconds.

CSE 380 Computer Operating Systems

This Unit: Main Memory. Building a Memory System. First Memory System Design. An Example Memory System

EEC 483 Computer Organization

Slide Set 9. for ENCM 369 Winter 2018 Section 01. Steve Norman, PhD, PEng

Cache Optimisation. sometime he thought that there must be a better way

Today. ESE532: System-on-a-Chip Architecture. Message. Intel Xeon Phi Offerings. Preclass 1 and Intel Xeon Phi Offerings. Intel Xeon Phi Offerings

CPE300: Digital System Architecture and Design

MEMORY AND PROGRAMMABLE LOGIC

Alternate definition: Instruction Set Architecture (ISA) What is Computer Architecture? Computer Organization. Computer structure: Von Neumann model

EECS 470. Lecture 16 Virtual Memory. Fall 2018 Jon Beaumont

Caching Basics. Memory Hierarchies

Lecture 8: Synthesis, Implementation Constraints and High-Level Planning

Chapter Seven. Memories: Review. Exploiting Memory Hierarchy CACHE MEMORY AND VIRTUAL MEMORY

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2014 Lecture 14

CS 31: Intro to Systems Caching. Martin Gagne Swarthmore College March 23, 2017

L2: Design Representations

Slide Set 5. for ENCM 501 in Winter Term, Steve Norman, PhD, PEng

Mass-Storage. ICS332 - Fall 2017 Operating Systems. Henri Casanova

Computer Architecture Spring 2016

Announcement. Computer Architecture (CSC-3501) Lecture 20 (08 April 2008) Chapter 6 Objectives. 6.1 Introduction. 6.

falling edge Intro Computer Organization

Memory. Lecture 22 CS301

CS 61C: Great Ideas in Computer Architecture. Lecture 23: Virtual Memory. Bernhard Boser & Randy Katz

CS 61C: Great Ideas in Computer Architecture. Direct Mapped Caches

Memory Hierarchies. Instructor: Dmitri A. Gusev. Fall Lecture 10, October 8, CS 502: Computers and Communications Technology

Topics. Computer Organization CS Improving Performance. Opportunity for (Easy) Points. Three Generic Data Hazards

Database Systems II. Secondary Storage

CS 3510 Comp&Net Arch

Lecture 17 Introduction to Memory Hierarchies" Why it s important " Fundamental lesson(s)" Suggested reading:" (HP Chapter

Very Large Scale Integration (VLSI)

Memory Hierarchy, Fully Associative Caches. Instructor: Nick Riasanovsky

CS 61C: Great Ideas in Computer Architecture. The Memory Hierarchy, Fully Associative Caches

MEMORY. Objectives. L10 Memory

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2017 Lecture 13

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Memory Hierarchy Y. K. Malaiya

COE 561 Digital System Design & Synthesis Introduction

Chapter 6 Memory 11/3/2015. Chapter 6 Objectives. 6.2 Types of Memory. 6.1 Introduction

CS650 Computer Architecture. Lecture 9 Memory Hierarchy - Main Memory

Page 1. Goals for Today" TLB organization" CS162 Operating Systems and Systems Programming Lecture 11. Page Allocation and Replacement"

and data combined) is equal to 7% of the number of instructions. Miss Rate with Second- Level Cache, Direct- Mapped Speed

What Comes Next? Reconfigurable Nanoelectronics and Defect Tolerance. Technology Shifts. Size Matters. Ops/sec/$

Overview ECE 753: FAULT-TOLERANT COMPUTING 1/21/2014. Recap. Fault Modeling. Fault Modeling (contd.) Fault Modeling (contd.)

CPU issues address (and data for write) Memory returns data (or acknowledgment for write)

Digital Design Methodology

Let!s go back to a course goal... Let!s go back to a course goal... Question? Lecture 22 Introduction to Memory Hierarchies

Page 1. Multilevel Memories (Improving performance using a little cash )

Memory Hierarchy. Memory Flavors Principle of Locality Program Traces Memory Hierarchies Associativity. (Study Chapter 5)

Spring 2018 :: CSE 502. Cache Design Basics. Nima Honarmand

Outline. Parity-based ECC and Mechanism for Detecting and Correcting Soft Errors in On-Chip Communication. Outline

Overview. Memory Classification Read-Only Memory (ROM) Random Access Memory (RAM) Functional Behavior of RAM. Implementing Static RAM

TDT Coarse-Grained Multithreading. Review on ILP. Multi-threaded execution. Contents. Fine-Grained Multithreading

FFS: The Fast File System -and- The Magical World of SSDs

I/O CANNOT BE IGNORED

Virtual Memory. Reading. Sections 5.4, 5.5, 5.6, 5.8, 5.10 (2) Lecture notes from MKP and S. Yalamanchili

Algorithm Performance Factors. Memory Performance of Algorithms. Processor-Memory Performance Gap. Moore s Law. Program Model of Memory I

Chapter 5. Large and Fast: Exploiting Memory Hierarchy

Question?! Processor comparison!

Topics. Digital Systems Architecture EECE EECE Need More Cache?

Caches and Memory Hierarchy: Review. UCSB CS240A, Winter 2016

Where We Are in This Course Right Now. ECE 152 Introduction to Computer Architecture. This Unit: Main Memory. Readings

CENG4480 Lecture 09: Memory 1

SRAMs to Memory. Memory Hierarchy. Locality. Low Power VLSI System Design Lecture 10: Low Power Memory Design

ECE 250 / CS250 Introduction to Computer Architecture

Where Have We Been? Ch. 6 Memory Technology

Course web site: teaching/courses/car. Piazza discussion forum:

Introduction to CMOS VLSI Design (E158) Lecture 7: Synthesis and Floorplanning

CSE 153 Design of Operating Systems

Lecture 4: ISA Tradeoffs (Continued) and Single-Cycle Microarchitectures

Topic Notes: Building Memory

ESE532: System-on-a-Chip Architecture. Today. Message. Project. Expect. Why MPEG Encode? MPEG Encoding Project Motion Estimation DCT Entropy Encoding

!! What is virtual memory and when is it useful? !! What is demand paging? !! When should pages in memory be replaced?

CS 31: Intro to Systems Caching. Kevin Webb Swarthmore College March 24, 2015

5. Memory Hierarchy Computer Architecture COMP SCI 2GA3 / SFWR ENG 2GA3. Emil Sekerinski, McMaster University, Fall Term 2015/16

ECE 571 Advanced Microprocessor-Based Design Lecture 10

CS370 Operating Systems

Memory. From Chapter 3 of High Performance Computing. c R. Leduc

Memory. Objectives. Introduction. 6.2 Types of Memory

Computer Architecture Review. ICS332 - Spring 2016 Operating Systems

Key Point. What are Cache lines

Cycle Time for Non-pipelined & Pipelined processors

High Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Chapter 5B. Large and Fast: Exploiting Memory Hierarchy

CENG3420 Lecture 08: Memory Organization

Thomas Polzer Institut für Technische Informatik

Spring 2016 :: CSE 502 Computer Architecture. Caches. Nima Honarmand

Lecture 24: Multiprocessing Computer Architecture and Systems Programming ( )

Multilevel Memories. Joel Emer Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology

Introduction to Computer Systems and Operating Systems

Lecture 18: DRAM Technologies

Caches and Memory Hierarchy: Review. UCSB CS240A, Fall 2017

Course Administration

1/19/2009. Data Locality. Exploiting Locality: Caches

Transcription:

Architecture as Interface André DeHon <andre@cs.caltech.edu> Friday, June 21, 2002 Previously How do we build efficient, programmable machines How we mix Computational complexity W/ physical landscape To engineer computations 1

First 20 years For the first 20 years of computing That was all that mattered Built machine Machines were scarce Wrote software for that machine Each machine required new software OK, for small programs Small uses of computation But Technology advanced Relays, tubes, discrete transistors, TTL, VLSI. The uses for automated computing grew We had a Software Problem Couldn t (re)write software fast enough 2

Questions How do we produce a growing amount of software for increasingly new generations of machines? How do we preserve software while exploiting new technology? Ideas Define model abstracted from the details of the machine Write software to that model: 1. Translate from model to machine (compiler) 2. Preserve abstraction while changing technology (architecture) 3

Today Architecture the visible interface between the software and the hardware What the programmer (compiler) sees the machine as The model of how the machine behaves Abstracted from the details of how it may accomplish its task What should be exposed vs. hidden? Level Different level than first three lectures Complexity management Vs. existential and engineering 4

Today Architecture Examples Nor2 Memory Fault Model: nor2 netlist Model of Computation: Acyclic graph of nor2 gates Repeat: Receive input vector to the graph Produce an output some time later Signal completion 5

Represent Represent computation as a set of input pairs I0 I2 I1 I3 I2 I3 1 2 2 3 4 5 4 3 Give each gate a number For each gate, list its pair of inputs nor2 architecture This is the visible interface List of gate inputs Maybe the hardware reads this directly But, hardware free to implement in any fashion I0 I2 I1 I3 I2 I3 1 2 2 3 4 5 4 3 6

Microarchitecture Microarchitecture organization of the machine below the visible level Must provide same meaning (semantics) as the visible architecture model But can implement it any way that gets the job done nor2-µarch: Temporal Temporal gate µarch satisfies arch: 7

nor2-µarch: Spatial As does our spatial array: nor2-µarch: Superscalar Or even 2-gate, time-multiplexed: 8

Satisfying Architectures All provide the same meaning Support the same abstraction Produce the same visible results Abstract away Timing done in 20 nanoseconds done in 2 milliseconds Internal structure (placement, parallelism) Traditional Traditional architecture model ISA Instruction Set Architecture (e.g. x86) Model: sequential evaluation of instructions Define meaning of the instructions 9

Model says: Arch vs. µarch issue one instruction at a time Modern machines: Issue more than one instruction at a time Like superscalar nor2 Superscalar = faster than single issue But preserves the semantics of sequential issue Benefit Preserve our software investment Same programs continue to run While exploiting more and faster hardware which technology provides More parallelism over time 10

Note Conventional model is of a sequential machine Model serves to limit parallelism, use of more hardware nor2 model was of a parallel evaluation Parallelism exposed Admits to large-hardware implementation Perhaps harder to optimize for small/sequential implementations Memory Models 11

Memory Abstraction Give it: operation, address, data(?) Changes data at address (if write) Gives back data at address (if read) Allow memory to signal when done Abstract out timing Memory Abstraction Memory abstraction simple But we do many things behind the scenes to optimize Size/speed Organization failure 12

Issue: Memory Size Larger memories are slower: Simple physics: In M-bit memory Some bits are M distance from interface In fact most are that far Speed of light limits travel speed As M increases, memory delay increases But, we want to address more stuff Solve larger problems Memory Acceleration Idea Since: Small memories are fast Large memories are slow Need access to large amount of data Use both: Small memory to hold some things Responds quickly Large memory to hold the rest Response more slowly 13

Cache µarch Memory Acceleration Exploit Model Signal when operation complete Access to small memory returns quickly Access to large memory returns more slowly Always get correct result To the extent commonly accessed stuff in fast memory runs faster 14

Cache µarch More complicated implementation But implementation details invisible to program Size of small/large memory Access speeds Memory Optimization May do this several levels Modern machines have 3 4 levels of memory Use this to pretend have more memory Virtual memory -- use disk as largest memory Can get very complicated But offers a single, simple, visible architecture 15

Issue: Perfection Large memories more likely to have faulty components Simple probability Assume some probability of a defect per memory cell Increase memory cells Probability all are functional? But we want larger memories And our model says the device is perfect General Idea Provide extra memories Program device to substitute good resources for bad Export device which meets model Appears perfect 16

Row Redundancy Provide extra memory rows Mask faults by avoiding bad rows Rows with bad bits Trick: have address decoder substitute spare rows in for faulty rows use fuses to program Spare Row 17

Row Redundancy [diagram from Keeth&Baker 2001] Memory Arch vs. µarch Microarchitecture more complicated Changes from implementation to implementation Number of spares Increase with device size Decrease with process maturity Invisible to architecture 18

Issue: Dynamic Faults What happens if a bit changes dynamically? Hit by an alpha particle? Deplete charge in cell Memory gives wrong answer Not providing model Fault Approach Keep redundant information in memory Simplest case: keep multiple copies Read values and take majority Return majority from memory Probability of m-simultaneous faults low Pick redundancy appropriately 19

Redundant Memory Memory Arch vs. µarch Model remains simple Perfect memory Microarchitecture complex Write multiple copies Compare copies Correct Microarchitecture addresses/hides physical challenges Non-zero probability of bit faults 20

Better Encodings In practice, don t have to keep many copies Encode many bits sparsely E.g. use 5 bit codes for 4 bits E.g. parity code Detect single bit errors Better: error correcting codes which will Correct single bit errors Detect many multi-bit errors E.g. conventional memory systems 64b in 72b Alternate Fault Model 21

Two Common Defect Models Memory Model (just discussed) Disk Drive Model Memory Chips Provide model in hardware of perfect component Model of perfect memory at capacity X Use redundancy in hardware to provide perfect model Yielded capacity fixed discard part if not achieve rated capacity 22

Disk Drives Expose faults to software software model expects faults manages by masking out in software Don t expect to be able to use all sectors (bytes) OS only allows you to to access the good ones Bad ones look like they are in use by someone else yielded capacity varies with defects Wrapping Up 23

Architecture attributes of a system as seen by the programmer conceptual structure and functional behavior Defines the visible interface between the hardware and software Defines the semantics of the program (machine code) Architectural Abstraction Define the fixed points Stable abstraction to programmer Admit to variety of implementation Ease adoption/exploitation of new hardware Reduce human effort Reduces the software problem 24

Enables Allow devices to scale Allow software to survive across and benefit from device scaling Allow us to optimize implementations Allow us to hide physical challenges from software 25