/
Course Outline Course Outline

Course Outline - PowerPoint Presentation

giovanna-bartolotta
giovanna-bartolotta . @giovanna-bartolotta
Follow
448 views
Uploaded On 2017-07-29

Course Outline - PPT Presentation

Introduction Performance Evaluation Processor Design and Analysis Singlecycle implementation Multicycle implementation Pipelined implementation Hazards Forwarding Memory Design and Analysis ID: 574073

language memory focus 1024 memory language 1024 focus machine vehicle learn byte logic software analysis performance virtual bits bytes

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Course Outline" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Course Outline

Introduction

Performance Evaluation

Processor Design and Analysis

Single-cycle implementation

Multi-cycle implementation

Pipelined implementation

Hazards

Forwarding

Memory Design and Analysis

Cache block size and associativity

Virtual memory

I/O Design and Analysis

Parity

ECC

Scheduling

Basic OS FunctionsSlide2

Introduction

This course is all about how computers work

But what do we mean by a computer?

- Different types: desktop, servers, embedded devices - Different uses: automobiles, graphics, structural analysis, finance, genomics… - Different manufacturers: Intel, Apple, IBM, Microsoft, Sun… - Different underlying technologies and different costs!Slide3

Death of the PC?Slide4

Pedagogy

Analogy: Consider a course on “automotive vehicles”

- Many similarities from vehicle to vehicle (e.g., wheels)

- Huge differences from vehicle to vehicle (e.g., gas vs. electric)Best way to learn: - Focus on a specific instance and learn how it works

- While learning general principles and historical perspectivesSlide5

Why learn this stuff?

You want to call yourself a “computer scientist”

You want to build software people use (need performance)

You need to make a purchasing decision or offer “expert” adviceDebugging skills often benefit from understanding architecture - better understand system error messages

- better understand translators (compilers and interpreters)Both hardware and software affect performance:

- Algorithm determines number of source-level statements

- Language/Compiler/Architecture determine machine instructions (Chapters 2 and 3)

- Processor/Memory determine how fast instructions are executed (Chapters 5, 6, and 7)

Assessing and Understanding Performance in Chapter 4Slide6

Focus: the ProcessorSlide7

Focus: the Memory HierarchySlide8

Focus: I/OSlide9

Focus: Connections to the OS

Process management

Virtual memory

File systemsSlide10

Language Abstractions

Delving into the depths

reveals more information

An abstraction omits unneeded detail, helps us cope with complexityWhat are some of the details that appear in these familiar abstractions?

swap(

int

v[],

int

k) {

int

temp;

temp = v[k];

v[k] = v[k+1];

v[k+1] = temp;

}

High-level language (C)

swap:

muli

$2, $5, 4

add

$2, $4, $2

lw

$15, 0($2)

lw

$16, 4($2)

sw

$16, 0($2)

sw $16, 4($2) jr $31

Assembly language (MIPS)

00000000101000010000000000011000

000000000001100000011000001000011000110001100010000000000000000010001100111100100000000000000100101011001111001000000000000000001010110001100010000000000000010000000011111000000000000000001000

Binary machine language (for MIPS)

compiler

assemblerSlide11

Below Your Program

Application software

Written in high-level language

System softwareCompiler: translates HLL code to machine codeOperating System: service codeHandling input/outputManaging memory and storageScheduling tasks & sharing resourcesHardwareProcessor, memory, I/O controllersSlide12

How do computers work?

Need to understand abstractions such as:

- Applications software

- Systems software - Assembly Language - Machine Language - Architectural Issues: i.e., Caches, Virtual Memory, Pipelining

- Sequential logic, finite state machines - Combinational logic, arithmetic circuits - Boolean logic, 1s and 0s - Transistors used to build logic gates (CMOS)

- Semiconductors/Silicon used to build transistors

- Properties of atoms, electrons, and quantum dynamics

So much to learn!Slide13

50 Years of ProgressSlide14

Units of Measurement

nanosecond (ns) one-billionth (10

-9

) of a second

microsecond (

m

s) one-millionth (10

-6

) of a second

millisecond (ms) one-thousandth (10

-3

) of a second

Time units:

Spatial units:

byte (B) 8 bits

kilobyte (KB) 1024 or 2

10

bytes

megabyte (MB) 1024 kilobytes or 2

20

bytes

gigabyte (GB) 1024 megabytes or 2

30

bytes

traditional

byte (B) 8 bits

kilobyte (KB) 1000 or 10

3

bytes

megabyte (MB) 1000 kilobytes or 10

6

bytes

gigabyte (GB) 1000 megabytes or 10

9

bytes

secondary storage

byte (B) 8 bits

kibibyte* (KiB) 1024 or 2

10

bytes

mebibyte (MiB) 1024 kibibytes or 220 bytesgibibyte (GiB) 1024 mebibytes or 230 bytes

IEC standard

*

ki

lo

bi

nary byte