iki10230 pengantar organisasi komputer kuliah no. 02: stored program computers

of 46 /46
1 IKI10230 Pengantar Organisasi Komputer Kuliah no. 02: Stored Program Computers Sumber : 1. Paul Carter, PC Assembly Language 2. Hamacher. Computer Organization, ed-5 3. Materi kuliah CS61C/2000 & CS152/1997, UCB 18 Februari 2004 L. Yohanes Stefanus ([email protected]) Bobby Nazief ([email protected]) bahan kuliah: http://www.cs.ui.ac.id/kuliah/POK/

Author: cathal

Post on 12-Jan-2016

55 views

Category:

Documents


0 download

Embed Size (px)

DESCRIPTION

IKI10230 Pengantar Organisasi Komputer Kuliah no. 02: Stored Program Computers. Sumber : 1. Paul Carter, PC Assembly Language 2. Hamacher. Computer Organization , ed-5 3. Materi kuliah CS61C/2000 & CS152/1997, UCB. 18 Februari 2004 - PowerPoint PPT Presentation

TRANSCRIPT

AT90S8515Sumber:
2. Hamacher. Computer Organization, ed-5
3. Materi kuliah CS61C/2000 & CS152/1997, UCB
18 Februari 2004
I/O system
Assembly Language Program
°
°
“CPU”
Processor
(active)
Computer
Control
(“brain”)
Datapath
(“brawn”)
Memory
(passive)
(where
programs,
data
live when
not running)
That is, any computer, no matter how primitive or advance, can be divided into five parts:
1. The input devices bring the data from the outside world into the computer.
2. These data are kept in the computer’s memory until ...
3. The datapath request and process them.
4. The operation of the datapath is controlled by the computer’s controller.
All the work done by the computer will NOT do us any good unless we can get the data back to the outside world.
5. Getting the data back to the outside world is the job of the output devices.
*
read instructions & input data
Exposed register
Size of register determines processor smallest data unit (i.e., 8-bit, 16-bit, 32-bit, 64-bit computers)
Hidden register
define processsor’s ‘language’ complexity (e.g., RISC vs. CISC)
*
Hanya mengenal dua status (mis. ada / tidak ada tegangan)
Sangat sederhana hanya dapat bernilai: 1 atau 0 biner
Operasi hanya dapat dilakukan pada bit; yang dapat bernilai 1 atau 0.
Contoh operasi mengubah (flip, switch) nilai bit, menjadikan bit tertentu 0; test bit jika 0 atau bukan.
100101
switch bit pertama 0
Komputer & “things”
… jadi, apa yang membuat komputer (yang hanya mengenal bits dengan nilai: 0 dan 1) demikian “powerful”?
Apakah (dengan “mengandalkan” 0 & 1) komputer dapat merepresentasikan apa saja?
simulasi mobil
..hello buzz
Contoh: Bilangan
Misalkan: 1, 25, 125, 3896754321
Disebut basis 10, dengan simbol:
Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
..tapi komputer hanya mengenal 2 simbol (0 dan 1)
Bagaimana melakukan representasi bilangan yang dikenal manusia?
*
Bilangan Basis B B simbol per digit:
Basis 10 (Decimal): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Basis 2 (Binary): 0, 1
Komputer menyimpan dan beroperasi dalam “binary” Basis 2
Dapat melakukan konversi (representasi) bilangan dari basis 10 ke basis 2 (dan sebaliknya).
Decimal: 0,1,2,3,4,5,6,7,8,9
= 64 + 16 + 8 + 2 = 90
*
Bits dapat merepresentasikan apapun!
berapa simbol huruf?
Logical values?
Alamat? (berapa karakter alfabet ..)
*
Apa yang dapat dilakukan dengan “bilangan”?
… umumnya semua operasi (instruksi) yang biasa dilakukan pada bilangan!
Tambahkan, Kurangkan, Kalikan, Bagikan, Bandingkan!
Contoh: 10 + 7 = 17
1 0 1 0
+ 0 1 1 1
1
1
Contoh:
Eksekusi Instruksi: 1 0 1 1 0 0
Contoh instruksi operasi bilangan:
000 => tambahkan 001 => kurangkan
010 => kalikan 011 => bagikan
*
k = 16 ruang alamat = 216 (64536) lokasi
k = 32 ruang alamat = 232 (4 G) lokasi
n menentukan besarnya suatu word (jumlah bit)
n = 8, 16, 32, 64
Umumnya ukuran peng-alamatan terkecil adalah dalam orde byte
byte addressable
Memori adalah tempat menyimpan bit data
Suatu “word” adalah sejumlah bit data tetap, (mis. 16, atau 32 bit) pada satu lokasi di memori
Byte-addressable memory menyimpan data multi-byte pada lokasi memori yang berurutan
Alamat menunjuk ke lokasi “word” (byte-1) disimpan.
Alamat dapat direpresen-tasikan oleh bit
Alamat juga sebagai “bilangan” (yang dapat dimanipulasikan)
101101100110
00000
IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA
Little Endian: alamat dari least significant byte
Intel 80x86, DEC Vax, DEC Alpha
msb
lsb
0
1
0
4
5
0
lsb
msb
0
1
0
4
0
5
Apa yang dapat disimpan?
..
anything
Konsep Kunci:
Data di komputer mampu merepresentasikan sesuatu (thing, anything)! Tergantung intrepetasi dan operasi yang diinginkan.
BIG IDEA: STORED PROGRAM program dapat disimpan sebagai data dan dijalankan oleh komputer
Merupakan konsep awal komputer
Von Neumann Architecture (1955).
Memori menyimpan instruksi dan data sebagai bit.
Instruksi diambil oleh prosesor dari memori, diartikan, dan, dieksekusi (operands/data diambil, diolah, dan disimpan ke memori).
Contoh Instruksi 4-digit (á 4 bit)
16 bit (2 byte) ≈ 2 lokasi memori
digit-1: Operasi: 0 => add, 1 => sub, ...
digit-2: Alamat hasil
digit-3: Alamat op1
digit-4: Alamat op2
data
instruksi
4=addr op1,
6=addr op2
*
Instruction Fetch
Data Read
Processor
(active)
Control
(“brain”)
Datapath
(“brawn”)
Program adalah kumpulan bit yang tersimpan di memori merepresentasikan instruksi & data
Program tersebut dijalankan oleh prosesor:
untuk mengolah/manipulasi bilangan, karakter, pixels … (Aplikasi, Software)
*
Bahasa Rakitan representasi dari Bahasa Mesin dalam bahasa (kumpulan huruf & angka) yang lebih mudah dimengerti oleh manusia
mnemonic
*
0000 0846 Add 8,4,6 ; M[8] M[4] + M[6]
; M[8] = 61 + 17 = 78
0002 1686 Sub 6,8,6 ; M[6] M[8] – M[6]
; M[6] = 78 – 17 = 61
Data:
*
argumen input operand
produk output operand
*
3-address instruction
Operation Destination,Source1,Source2
Operation Destination,Source
1-address instruction
0-address instruction
Add ; tos [tos] + [next]
GPR = last 20 years
*
Data Transfers
memory-to-memory move
register-to-register move
memory-to-register move
Arithmetic & Logic
Add, Subtract, Multiply, Divide
shift left/right, rotate left/right
Input/Output Transfers
Instruksi umumnya dijalankan secara berurut (sekuensial)
Urutan ini menjamin logika alur program: terdapat urutan perintah ke mesin.
Instruksi disimpan secara berurut pada lokasi di memori
Eksekusi instruksi dilakukan mulai dari alamat terkecil
Bagaimana mengetahui “posisi” instruksi saat ini (berikutnya?)
Gunakan register khusus: Program Counter
*
Eksekusi Instruksi (2/2)
PC (Program Counter)
Program couter (PC) berisi alamat lokasi instruksi yang akan dieksekusi pada siklus berikutnya. Setelah instruksi dieksekusi, maka PC akan “increment” dan menunjuk pada instruksi berikutnya (next location)
PC = PC + 2; dst
0 0 8 4 6
2 1 6 8 6
4 0 0 6 1
6 0 0 1 7
8 0 0 0 0
10 0 0 0 0
12 0 0 0 0
14 0 0 0 0
16 0 0 0 0
18 0 0 0 0
0 0 8 4 6
2 1 6 8 6
4 0 0 6 1
6 0 0 1 7
8 0 0 7 8
10 0 0 0 0
12 0 0 0 0
14 0 0 0 0
16 0 0 0 0
18 0 0 0 0
0
2
4
*
Sama seperti “kalkulator”
Untuk sebuah komputer, maka diperlukan kemampuan untuk memilih, “make decisions” ..
Analogi HLL: assembly language harus mendukung statement:
if (condition == true)
Dampak dari pengambilan keputusan yang bergantung pada suatu kondisi tertentu adalah terjadinya pencabangan (branching):
Instruksi tidak lagi diambil dari lokasi memori yang “berurut”, tetapi “meloncat” ke lokasi memori tertentu PC diisi dengan nilai baru, tidak di-increment
*
memeriksa Condition Code Flags yang berada di Status Register:
N: hasil operasi sebelumnya menghasilkan bil. negatif
Z: hasil operasi sebelumnya menghasilkan 0
V: hasil operasi sebelumnya menghasilkan overflow
C: hasil operasi sebelumnya menghasilkan carry
>0: hasil ≠ 0 (kondisi Z-flag == FALSE)
Jika ya, loncat ke LOOP (PC lokasi LOOP)
Jika tidak, lanjutkan eksekusi
Pada prinsipnya sama dengan data transfer (memori/register), bedanya peranti I/O lebih lambat
Perlu mekanisme pemeriksaan kesiapan peranti I/O:
Baca informasi status di SIN/SOUT untuk memastikan peranti I/O siap
Jika “siap” lakukan operasi transfer data dari/ke peranti I/O ybs.
Prosesor
SOUT
DATAOUT
Display
SIN
DATAIN
Keyboard
Bus
I/O Speed: bytes transferred per second
(from mouse to display: million-to-1)
Device Behavior Partner Data Rate (Kbytes/sec)
Keyboard Input Human 0.01
Mouse Input Human 0.02
Network-LAN I or O Machine 10,000.00
Graphics Display Output Human 30,000.00
Here are some examples of the various I/O devices you are probably familiar with.
Notice that most I/O devices that has human as their partner usually has relatively low peak data rates because human in general are slow relatively to the computer system.
The exceptions are the laser printer and the graphic displays.
Laser printer requires a high data rate because it takes a lot of bits to describe high resolution image you like to print by the laser writer.
The graphic display requires a high data rate because as I will show you later in today’s lecture, all the color objects we see in the real world and taken for granted is very hard to replicate on a graphic display.
Let’s take a closer look at one of the most popular storage device, magnetic disks.
+2 = 28 min. (Y:08)
komputer dapat diprogram untuk memenuhi kebutuhan pengguna dengan jalan mengisi memori dengan instruksi & data yang sesuai
operasi yang dilakukan oleh komputer ditentukan oleh instruksi & data yang tersimpan di memori
0 0 8 4 6
2 1 6 8 6
4 0 0 6 1
6 0 0 1 7
8 0 0 0 0
10 0 0 0 0
12 0 0 0 0
14 0 0 0 0
16 0 0 0 0
18 0 0 0 0
0 0 8 4 6
2 1 6 8 6
4 0 0 6 1
6 0 0 1 7
8 0 0 7 8
10 0 0 0 0
12 0 0 0 0
14 0 0 0 0
16 0 0 0 0
18 0 0 0 0
Processor
(active)
Control
(“brain”)
Datapath
(“brawn”)
*
Computer is ...
The great Richard Feynman, in his Lectures on Computation, summed up von Neumann computers by saying,
"the inside of a computer is as dumb as hell, but it goes like mad!"
Year
Transistors
1000
10000
100000
1000000
10000000
100000000
1970
1975
1980
1985
1990
1995
2000
i80386
i4004
i8080
Pentium
i80486
i80286
i8086