CO- Lecture 1
CO- Lecture 1
Organization
2016 - 2015
Instructors
• Course By:
• Lecturer: Shimaa Ibrahim Hassan
• TA: Eng: Moufeda Hussien
• Lecture: Wednesday @ 9:45
• Email Address: [email protected]
• Alt. Email: [email protected]
Course Objectives
Describe the general organization and architecture of computers.
Identify computers’ major components and study their functions.
Introduce hardware design issues of modern computer
architectures.
Learn assembly language programming.
Build the required skills to read and research the current
literature in computer architecture.
Text Books
• “Computer Organization and Design”, 4th Edition, Patterson
& Hennessy, © 2008
Memory
Arithmetic
Input
Instr1 & Logic
Instr2
Instr3
Data1
Output Data2 Control
I/O Processor
Stores Control unit coordinates
Output unit sends information: various actions
results of processing: •Instructions, •Input,
•To a monitor display, •Data •Output
•To a printer •Processing
9
Input Unit
• Tasks are performed by the input unit:
- Interfaces with input devices.
- Accepts binary information from the input devices.
- Presents this binary information in a format expected by the
computer.
- Transfers this information to the memory or processor.
Memory Unit
• Memory unit stores instructions and data as a series of bits.
Buses Bus
Applications software
Systems software
Hardware
Below the Program (cont.)
• System software
• Operating system – supervising program that interfaces the
user’s program with the hardware (e.g., Linux, MacOS, Windows)
• Handles basic input and output operations
• Allocates storage and memory
• Provides for protected sharing among multiple applications
• Compiler – translate programs written in a high-level language
(e.g., C, Java) into instructions that the hardware can execute
From a High-Level Language to
the Hardware Language
• A high-level programming language is composed of words
and algebraic notation that can be translated by a compiler
into assembly language
• Assembly language symbolically represents machine
instructions
• An assembler translates a symbolic version of a machine
instruction into its binary version
From a High-Level Language to
the Hardware Language (cont.)
• Machine language is the binary representation of machine
instructions
• Instructions and data are just collection of binary digits
(bits)
• Instructions are individual commands that computers
understand and obey
• Hardware executes machine instructions (extremely simple
low-level instructions)
From a High-Level Language to
the Hardware Language (cont.)
• High-level language program (in C)
swap (int v[], int k)
( int temp;
temp = v[k]; C compiler
v[k] = v[k+1];
v[k+1] = temp;
)
• Assembly language program (for MIPS)
swap: sll $2, $5, 2
add $2, $4, $2
.
. assembler
jr $31
• Machine (object, binary) code (for MIPS)
000000 00000 00101 0001000010000000
000000 00100 00010 0001000000100000
. . .
Content Coverage