SlideShare a Scribd company logo
Computer Organization
• All computers perform IPOS
• Here, we concentrate on how
IPOS is carried out through
the fetch-execute cycle
• This requires that we study
– the structure of the components
in the computer
– the function of those
components
• how the CPU works
• the role of memory
• the role of I/O devices
The Structure of the Computer
To execute a program, the CPU
performs the fetch-execute cycle
Fetch next instruction from memory
Decode the instruction
Execute the instruction
Store the result
The Bus
• Address bus:
– CPU sends address to memory or I/O subsystem
– Address is the location of the item being moved
• Control bus:
– CPU sends out commands to other devices
• read, write for memory
• input, output, are you available for I/O devices
– Devices send signals back to the CPU such as interrupt
• Data bus:
– Used to send data and program instructions
• from memory to the CPU
• from the CPU to memory
• between I/O device and the CPU
• between I/O device and memory
– Size of data bus is often size of computer’s word
Memory Read & Write
Example: A Program
• We use the following C program to better
understand the fetch-execute cycle
#include <stdio.h> // input/output library
void main( ) // start of the program
{
int a, b, c; // use 3 integer variables
scanf(“%d”, &a); // input a
scanf(“%d”, &b); // input b
if(a < b) // compare a to b, if a is less then b
c=a + b; // then set c to be their sum
else c=a - b; // otherwise set c to be their difference
printf(“%d”, c); // output the result, c
}
Program in Assembly Language
Input 33 // assume 33 is the keyboard, input a value from keyboard
Store a // and store the value in the variable a
Input 33 // repeat the input for b
Store b
Load a // move a from memory to CPU, a location called the accumulator
Subt b // subtract b from the accumulator (accumulator = a – b)
Jge else // if the result is greater than or equal to 0, go to location “else”
Load a // otherwise, here we do the then clause, load a into accumulator
Add b // add b (accumulator is now a + b)
Store c // store the result (a + b) in c
Jump next // go to the location called next
else: Load a // here is the else clause, load a into the accumulator
Subt b // subtract b (accumulator is now a – b)
Store c // store the result (a – b) into c
next: Load c // load c into the accumulator
Output 2049 // send the accumulator value to the output device 2049, assume
// this is the monitor
Halt // end the program
Program in Machine Language
• Assembly language version of our C program
is stored in the computer in machine language
– The first four instructions might look like this:
1000100 0000000000000000000100001 – input (from keyboard)
1000111 0010011000100101101010001 – store the datum in a
1000100 0000000000000000000100001 – input (from keyboard)
1000111 0010011000100101101010010 – store the datum in b
op code operand (datum)
Fetch-Execute Cycle
Registers
• Temporary storage in the CPU
– Store values used during the fetch execute cycle
– PC – program counter
• Memory location of next instruction, used during instruction fetch
– Data registers
• To store temporary results during execution
• Some computers have one, the accumulator (AC), others have
several, maybe dozens (eax, ebx, ecx, edx or R0, R1, R2, …, R31)
• IR – instruction register
– Current instruction, used during decoding
• Status flags
– To store information about the result of the previous ALU
operation
• positive, negative, zero, even or odd parity, carry, overflow,
interrupt
Fetch-Execute Cycle: Details
• Fetch:
– PC stores address of next instruction
– Fetch instruction at PC location
– Increment PC
– Instruction sent over data bus
– Store instruction in IR
• Decode:
– Decode opcode portion in IR
– Determine operand(s) from instruction
in IR
• Execute:
– Issue command(s) to proper circuits
– Use data register(s)
• Store result
– In AC (or data register), or memory
Input 33
Store a
Input 33
Store b
Load a
Subt b
Jge else
Load a
Add b
Store c
Jump next
else: Load a
Subt b
Store c
next: Load c
Output 2049
Halt
Fetch-Execute Cycle: Example
• Assume our program starts at location 5,000,000
– PC: 5,000,000
– IR: -------
• Fetch instruction
– PC: 5,000,000
– IR: 1000100 0000000000000000000100001
– Increment PC to 5,000,001
• Decode instruction
– Input operation (obtain input from keyboard)
• Execute:
– Take input value from keyboard
– Move to AC
Continued
• Fetch instruction
– PC: 5,000,001
– IR: 1000111 0010011000100101101010001
– Increment PC to 5,000,002
• Decode instruction
– Store datum to memory location
0010011000100101101010001 (memory location storing
variable a)
• Execute:
– Move datum from AC over data bus to memory location a
• NOTE: the next two instructions are almost identical except
that the second input’s datum (from the third instruction) is
sent to memory location b instead of a)
Continued
• Load a
– Fetch instruction at 5,000,004
– Increment PC to 5,000,005
– Decode – load instruction, operand is a
from memory
– Execute – loads datum at location a into AC
• Subt b
– Fetch instruction at 5,000,005
– Increment PC to 5,000,006
– Decode – subtract instruction, operands are
AC register and b from memory
– Execute – fetch b from memory, send AC
and b to subtracter circuit
– Store result in AC
– Set status flags as appropriate (negative,
positive, zero, carry, overflow)
Input 33
Store a
Input 33
Store b
Load a
Subt b
Jge else
Load a
Add b
Store c
Jump next
else: Load a
Subt b
Store c
next: Load c
Output 2049
Halt
Continued
• Jge else –a branch instruction
– Fetch instruction at 5,000,006
– Increment PC to 5,000,007
– Decode instruction
– Execute instruction – if positive or zero flag are set
(1) reset PC to 5,000,011 (branches to “else”)
otherwise, end instruction
• Next instruction fetch is 5,000,007 or 5,000,011
• Next few instructions executed depend on the
previous conditional branch
– Either “Load a”, “Add b”, “Store c”, “Jump next”
– Or “Load a”, “Subt b”, “Store c”
• Jump next – PC altered to 5,000,014 (location of
“next”)
• Output 2049 – outputs value in AC to device
2049 (the monitor)
• Halt – ends the program
Input 33
Store a
Input 33
Store b
Load a
Subt b
Jge else
Load a
Add b
Store c
Jump next
else: Load a
Subt b
Store c
next: Load c
Output 2049
Halt
The Components of the CPU
• Control Unit
– Operates the
fetch-execute
cycle
– Decodes
instructions
– Sends out
control signals
• Registers
– Data register(s)
– Control unit
registers
• Arithmetic-Logic Unit
– Contains circuits to perform
arithmetic and logic operations
• adder/subtracter
• negater (convert + to -, - to +)
• multiplier
• divider
• shifter
• rotate
• comparator
– Sets status flags
Microcode and System Clock
• Each clock cycle, the control unit issues instructions to the
devices in the computer (1 part of the fetch-execute cycle,
not a full instruction)
• These instructions are in the form of microcode
– 1 bit per line on the control bus
• Example: instruction fetch
– Move PC to address bus, Signal memory read, might look like
• 10000000000000100000000000000000000000000000000000
– 1 clock cycle = 1 microinstruction executed
• Fetch-execute cycle might have between 5 and 30 steps
depending on architecture
• Clock speeds are given in GHz
– 1 GHz = 1 billion clock cycles per second, or 1 clock cycle
executes in 1 billionth of a second (1 nanosecond)
Measuring CPU Performance
• A faster clock does not necessarily mean a faster CPU
– CPU1 2.5 GHz, 12 stage fetch-execute cycle requiring 20 cycles
to complete 1 instruction
– CPU2 1 GHz, 5 stage fetch-execute cycle requiring 8 cycles to
complete 1 instruction
– CPU1 = 20 / 2.5 GHz = 8 nanoseconds / instruction
– CPU2 = 8 / 1 GHz = 8 nanoseconds / instruction
• Other impacts of CPU performance include
– Word size – size of datum being moved/processed
– Cache performance (amount and usage of cache)
– The program being run (some programs are slower than others)
– How loaded the OS is
– Virtual memory performance
– Any parallel processing hardware?
• Best measure of CPU performance is to examine benchmark
results
Role of Memory
• Memory is referenced
every instruction
– 1 instruction fetch
– Possibly 1 or more data
accesses
• data read as in Subt b
• data write as in Store a
– In Intel x86 architecture,
Add x, 5 involves 3
memory references
• instruction fetch
• load x for addition
• store result in x
• Random Access Memory
– There are several types of RAM
– DRAM – “main memory”
• made of capacitors
• requires timely refreshing
• slow but very cheap
– SRAM – cache and registers
• much faster
• but more expensive
– ROM – read only memory
• used to store boot program, BIOS
• information permanent (cannot be
altered)
• even more expensive
Memory Hierarchy
Using The Memory Hierarchy
• The goal is to access only the highest levels of the hierarchy
– On a miss, move down to the next level
• cache hit rates are as high as 98-99%
• misses happen in 1 to 2 of every 100 accesses
– Bring item up to higher level
– Bring its neighbors up as well in hopes of using them
• Lower levels act as “backstops”
– On-chip caches are 32KB to 64KB today
– Off-chip cache might be as large as 8MB
– Main memory (DRAM) up to 8GB
– Use hard disk space for memory’s backstop, known as swap space or
virtual memory
• When something is not in memory
– Need to swap it from disk
– May require discarding something from memory
The Role of I/O
• I/O – input and output
– All I/O takes place in the I/O
subsystem
– Devices connect to computer
by expansion cards and ports
• Earliest form of I/O was
punch cards (input) and
printer (output) with
magnetic tape used as
intermediate storage
– No direct interaction with
computer
• Today, we expect to interact
directly with the computer
– Pointing devices, keyboard,
microphone, monitor,
speakers
• To improve interactivity,
human computer interaction
(HCI) combines
– Computer science
– Psychology
– Design
– Health
• And ergonomics
– Reduce stress on the body
(repetitive stress injuries very
prevalent, particularly Carpal
Tunnel Syndrome)
– Improve accessibility for people
with handicaps through larger
monitors, speech recognition,
Braille output devices
– See for instance Rehabilitation
Act section 508
The Portable Computer
• We no longer view the computer as a stationary
device
– Laptops, notebooks
– Handheld devices
• Recent and near-future I/O devices
– Wearables
– Touch screens
– Virtual reality interfaces
– Sensor networks
– Plug and play
• With wireless access we have
– Interaction anywhere

More Related Content

PPT
Introduction to C programing for problem
PPT
Data path of Computer Architecture ALU and other components
PPTX
UNIT -1 COMPUTER ORGANIZATION (1).pptxxc
PPT
lecture 1(1).ppt
PPTX
B.sc cs-ii -u-1.2 digital logic circuits, digital component
PPTX
chapter 1 -Basic Structure of Computers.pptx
PPTX
digital logic circuits, digital component
PPTX
Bca 2nd sem-u-1.2 digital logic circuits, digital component
Introduction to C programing for problem
Data path of Computer Architecture ALU and other components
UNIT -1 COMPUTER ORGANIZATION (1).pptxxc
lecture 1(1).ppt
B.sc cs-ii -u-1.2 digital logic circuits, digital component
chapter 1 -Basic Structure of Computers.pptx
digital logic circuits, digital component
Bca 2nd sem-u-1.2 digital logic circuits, digital component

Similar to lecture2.pptx (20)

PDF
3. IICT_Lecture 03_Computer Org Personal
PPT
Memory & the fetch decode-execute cycle
PPTX
ch 2_Component and function of computer .pptx
PPT
Computer organisation Module 1.ppt
PPTX
3.1 - CPU Architecture and Fetch Execute - JR.pptx
PPTX
Chapter 3 Assembly level machine organization Assembly level machine organiza...
PPTX
Unit2fit
PPTX
oLecture09-Internal Organization of CPU.pptx
PDF
computer organization and architecturebec306c
PPT
chapter1-basic-structure-of-computers.ppt
PPTX
basicfunctionalunit-190124043726555.pptx
PPT
Al2ed chapter2
PPT
Principle of Computer Operation.ppt
PDF
CO Unit 3.pdf (Important chapter of coa)
PPT
chapter1 -Basic co.pptjsjjsjdjxjdjdjdjjsjsjd
PPTX
Computer arch
PPTX
bms_complete_co_ppt.aaaaaaaaaaaaaaaaaaaaa
PPT
chapter1-basicstructureofcomputers.ppt
PPT
UNIT I.ppt
PPT
chapter 1 -Basic Structure of Computers.ppt
3. IICT_Lecture 03_Computer Org Personal
Memory & the fetch decode-execute cycle
ch 2_Component and function of computer .pptx
Computer organisation Module 1.ppt
3.1 - CPU Architecture and Fetch Execute - JR.pptx
Chapter 3 Assembly level machine organization Assembly level machine organiza...
Unit2fit
oLecture09-Internal Organization of CPU.pptx
computer organization and architecturebec306c
chapter1-basic-structure-of-computers.ppt
basicfunctionalunit-190124043726555.pptx
Al2ed chapter2
Principle of Computer Operation.ppt
CO Unit 3.pdf (Important chapter of coa)
chapter1 -Basic co.pptjsjjsjdjxjdjdjdjjsjsjd
Computer arch
bms_complete_co_ppt.aaaaaaaaaaaaaaaaaaaaa
chapter1-basicstructureofcomputers.ppt
UNIT I.ppt
chapter 1 -Basic Structure of Computers.ppt

More from EidTahir (20)

PPT
Servlets+JSP.ppt
PPT
servlets.ppt
PDF
005428058.pdf
PDF
005428055.pdf
PPTX
DNS.pptx
PPT
2.J2EE_Overview.ppt
PDF
009458666.pdf
PDF
009921362.pdf
PDF
009577496.pdf
PDF
009478419.pdf
PDF
009445185.pdf
PDF
009705432.pdf
PDF
009694598.pdf
PDF
enterprisejavaunit-1chapter-2-210914075956.pdf
PDF
010118565.pdf
PDF
005528214.pdf
PDF
005432796.pdf
PDF
009586150.pdf
PDF
009551323.pdf
PDF
009723779.pdf
Servlets+JSP.ppt
servlets.ppt
005428058.pdf
005428055.pdf
DNS.pptx
2.J2EE_Overview.ppt
009458666.pdf
009921362.pdf
009577496.pdf
009478419.pdf
009445185.pdf
009705432.pdf
009694598.pdf
enterprisejavaunit-1chapter-2-210914075956.pdf
010118565.pdf
005528214.pdf
005432796.pdf
009586150.pdf
009551323.pdf
009723779.pdf

Recently uploaded (20)

PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
Complications of Minimal Access Surgery at WLH
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PDF
Classroom Observation Tools for Teachers
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
RMMM.pdf make it easy to upload and study
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
TR - Agricultural Crops Production NC III.pdf
Complications of Minimal Access Surgery at WLH
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
Microbial disease of the cardiovascular and lymphatic systems
VCE English Exam - Section C Student Revision Booklet
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Classroom Observation Tools for Teachers
Supply Chain Operations Speaking Notes -ICLT Program
2.FourierTransform-ShortQuestionswithAnswers.pdf
102 student loan defaulters named and shamed – Is someone you know on the list?
PPH.pptx obstetrics and gynecology in nursing
Module 4: Burden of Disease Tutorial Slides S2 2025
STATICS OF THE RIGID BODIES Hibbelers.pdf
Week 4 Term 3 Study Techniques revisited.pptx
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
RMMM.pdf make it easy to upload and study
Renaissance Architecture: A Journey from Faith to Humanism

lecture2.pptx

  • 1. Computer Organization • All computers perform IPOS • Here, we concentrate on how IPOS is carried out through the fetch-execute cycle • This requires that we study – the structure of the components in the computer – the function of those components • how the CPU works • the role of memory • the role of I/O devices
  • 2. The Structure of the Computer To execute a program, the CPU performs the fetch-execute cycle Fetch next instruction from memory Decode the instruction Execute the instruction Store the result
  • 3. The Bus • Address bus: – CPU sends address to memory or I/O subsystem – Address is the location of the item being moved • Control bus: – CPU sends out commands to other devices • read, write for memory • input, output, are you available for I/O devices – Devices send signals back to the CPU such as interrupt • Data bus: – Used to send data and program instructions • from memory to the CPU • from the CPU to memory • between I/O device and the CPU • between I/O device and memory – Size of data bus is often size of computer’s word
  • 5. Example: A Program • We use the following C program to better understand the fetch-execute cycle #include <stdio.h> // input/output library void main( ) // start of the program { int a, b, c; // use 3 integer variables scanf(“%d”, &a); // input a scanf(“%d”, &b); // input b if(a < b) // compare a to b, if a is less then b c=a + b; // then set c to be their sum else c=a - b; // otherwise set c to be their difference printf(“%d”, c); // output the result, c }
  • 6. Program in Assembly Language Input 33 // assume 33 is the keyboard, input a value from keyboard Store a // and store the value in the variable a Input 33 // repeat the input for b Store b Load a // move a from memory to CPU, a location called the accumulator Subt b // subtract b from the accumulator (accumulator = a – b) Jge else // if the result is greater than or equal to 0, go to location “else” Load a // otherwise, here we do the then clause, load a into accumulator Add b // add b (accumulator is now a + b) Store c // store the result (a + b) in c Jump next // go to the location called next else: Load a // here is the else clause, load a into the accumulator Subt b // subtract b (accumulator is now a – b) Store c // store the result (a – b) into c next: Load c // load c into the accumulator Output 2049 // send the accumulator value to the output device 2049, assume // this is the monitor Halt // end the program
  • 7. Program in Machine Language • Assembly language version of our C program is stored in the computer in machine language – The first four instructions might look like this: 1000100 0000000000000000000100001 – input (from keyboard) 1000111 0010011000100101101010001 – store the datum in a 1000100 0000000000000000000100001 – input (from keyboard) 1000111 0010011000100101101010010 – store the datum in b op code operand (datum)
  • 9. Registers • Temporary storage in the CPU – Store values used during the fetch execute cycle – PC – program counter • Memory location of next instruction, used during instruction fetch – Data registers • To store temporary results during execution • Some computers have one, the accumulator (AC), others have several, maybe dozens (eax, ebx, ecx, edx or R0, R1, R2, …, R31) • IR – instruction register – Current instruction, used during decoding • Status flags – To store information about the result of the previous ALU operation • positive, negative, zero, even or odd parity, carry, overflow, interrupt
  • 10. Fetch-Execute Cycle: Details • Fetch: – PC stores address of next instruction – Fetch instruction at PC location – Increment PC – Instruction sent over data bus – Store instruction in IR • Decode: – Decode opcode portion in IR – Determine operand(s) from instruction in IR • Execute: – Issue command(s) to proper circuits – Use data register(s) • Store result – In AC (or data register), or memory Input 33 Store a Input 33 Store b Load a Subt b Jge else Load a Add b Store c Jump next else: Load a Subt b Store c next: Load c Output 2049 Halt
  • 11. Fetch-Execute Cycle: Example • Assume our program starts at location 5,000,000 – PC: 5,000,000 – IR: ------- • Fetch instruction – PC: 5,000,000 – IR: 1000100 0000000000000000000100001 – Increment PC to 5,000,001 • Decode instruction – Input operation (obtain input from keyboard) • Execute: – Take input value from keyboard – Move to AC
  • 12. Continued • Fetch instruction – PC: 5,000,001 – IR: 1000111 0010011000100101101010001 – Increment PC to 5,000,002 • Decode instruction – Store datum to memory location 0010011000100101101010001 (memory location storing variable a) • Execute: – Move datum from AC over data bus to memory location a • NOTE: the next two instructions are almost identical except that the second input’s datum (from the third instruction) is sent to memory location b instead of a)
  • 13. Continued • Load a – Fetch instruction at 5,000,004 – Increment PC to 5,000,005 – Decode – load instruction, operand is a from memory – Execute – loads datum at location a into AC • Subt b – Fetch instruction at 5,000,005 – Increment PC to 5,000,006 – Decode – subtract instruction, operands are AC register and b from memory – Execute – fetch b from memory, send AC and b to subtracter circuit – Store result in AC – Set status flags as appropriate (negative, positive, zero, carry, overflow) Input 33 Store a Input 33 Store b Load a Subt b Jge else Load a Add b Store c Jump next else: Load a Subt b Store c next: Load c Output 2049 Halt
  • 14. Continued • Jge else –a branch instruction – Fetch instruction at 5,000,006 – Increment PC to 5,000,007 – Decode instruction – Execute instruction – if positive or zero flag are set (1) reset PC to 5,000,011 (branches to “else”) otherwise, end instruction • Next instruction fetch is 5,000,007 or 5,000,011 • Next few instructions executed depend on the previous conditional branch – Either “Load a”, “Add b”, “Store c”, “Jump next” – Or “Load a”, “Subt b”, “Store c” • Jump next – PC altered to 5,000,014 (location of “next”) • Output 2049 – outputs value in AC to device 2049 (the monitor) • Halt – ends the program Input 33 Store a Input 33 Store b Load a Subt b Jge else Load a Add b Store c Jump next else: Load a Subt b Store c next: Load c Output 2049 Halt
  • 15. The Components of the CPU • Control Unit – Operates the fetch-execute cycle – Decodes instructions – Sends out control signals • Registers – Data register(s) – Control unit registers • Arithmetic-Logic Unit – Contains circuits to perform arithmetic and logic operations • adder/subtracter • negater (convert + to -, - to +) • multiplier • divider • shifter • rotate • comparator – Sets status flags
  • 16. Microcode and System Clock • Each clock cycle, the control unit issues instructions to the devices in the computer (1 part of the fetch-execute cycle, not a full instruction) • These instructions are in the form of microcode – 1 bit per line on the control bus • Example: instruction fetch – Move PC to address bus, Signal memory read, might look like • 10000000000000100000000000000000000000000000000000 – 1 clock cycle = 1 microinstruction executed • Fetch-execute cycle might have between 5 and 30 steps depending on architecture • Clock speeds are given in GHz – 1 GHz = 1 billion clock cycles per second, or 1 clock cycle executes in 1 billionth of a second (1 nanosecond)
  • 17. Measuring CPU Performance • A faster clock does not necessarily mean a faster CPU – CPU1 2.5 GHz, 12 stage fetch-execute cycle requiring 20 cycles to complete 1 instruction – CPU2 1 GHz, 5 stage fetch-execute cycle requiring 8 cycles to complete 1 instruction – CPU1 = 20 / 2.5 GHz = 8 nanoseconds / instruction – CPU2 = 8 / 1 GHz = 8 nanoseconds / instruction • Other impacts of CPU performance include – Word size – size of datum being moved/processed – Cache performance (amount and usage of cache) – The program being run (some programs are slower than others) – How loaded the OS is – Virtual memory performance – Any parallel processing hardware? • Best measure of CPU performance is to examine benchmark results
  • 18. Role of Memory • Memory is referenced every instruction – 1 instruction fetch – Possibly 1 or more data accesses • data read as in Subt b • data write as in Store a – In Intel x86 architecture, Add x, 5 involves 3 memory references • instruction fetch • load x for addition • store result in x • Random Access Memory – There are several types of RAM – DRAM – “main memory” • made of capacitors • requires timely refreshing • slow but very cheap – SRAM – cache and registers • much faster • but more expensive – ROM – read only memory • used to store boot program, BIOS • information permanent (cannot be altered) • even more expensive
  • 20. Using The Memory Hierarchy • The goal is to access only the highest levels of the hierarchy – On a miss, move down to the next level • cache hit rates are as high as 98-99% • misses happen in 1 to 2 of every 100 accesses – Bring item up to higher level – Bring its neighbors up as well in hopes of using them • Lower levels act as “backstops” – On-chip caches are 32KB to 64KB today – Off-chip cache might be as large as 8MB – Main memory (DRAM) up to 8GB – Use hard disk space for memory’s backstop, known as swap space or virtual memory • When something is not in memory – Need to swap it from disk – May require discarding something from memory
  • 21. The Role of I/O • I/O – input and output – All I/O takes place in the I/O subsystem – Devices connect to computer by expansion cards and ports • Earliest form of I/O was punch cards (input) and printer (output) with magnetic tape used as intermediate storage – No direct interaction with computer • Today, we expect to interact directly with the computer – Pointing devices, keyboard, microphone, monitor, speakers • To improve interactivity, human computer interaction (HCI) combines – Computer science – Psychology – Design – Health • And ergonomics – Reduce stress on the body (repetitive stress injuries very prevalent, particularly Carpal Tunnel Syndrome) – Improve accessibility for people with handicaps through larger monitors, speech recognition, Braille output devices – See for instance Rehabilitation Act section 508
  • 22. The Portable Computer • We no longer view the computer as a stationary device – Laptops, notebooks – Handheld devices • Recent and near-future I/O devices – Wearables – Touch screens – Virtual reality interfaces – Sensor networks – Plug and play • With wireless access we have – Interaction anywhere