IKI20210 Pengantar Organisasi Komputer Kuliah no. 1b: Basic Operations 6 September 2002 Bobby Nazief (
[email protected]) Johny Moningka (
[email protected]) bahan kuliah: http://www.cs.ui.ac.id/~iki20210/ 1
Agenda ° Review: Struktur Komputer ° Operasi dasar komputer hanya pada “numbers” => binary ° Komputer Dijital: Representasi data … “sesuatu” (apa-pun) ° Bits: data, instruksi dll. ° Konsep Kunci: Memori, Instruksi Mesin ° Konsep Kunci: Stored Program Concept ° To Remember
2
Fasilkom UI – IKI20210
1
Review: 5 Komponen Komputer
Keyboard, Mouse
Computer Processor
Memory
(active)
(passive)
Control (“brain”)
Datapath (“brawn”)
Devices
Disk
Input (where programs, data live when running)
(where programs, data live when not running)
Output
Display, Printer
3
Review: Levels of Representation High Level Language Program (e.g., C)
c = a + b; IKI20210
Compiler Assembly Language Program (e.g.,MIPS)
Load Load Add Store
Assembler Machine Language Program (MIPS)
0000 1010 1100 0101
1001 1111 0110 1000
1100 0101 1010 0000
LocA, R1 LocB, R0 R1, R0 R0, LocC 0110 1000 1111 1001
1010 0000 0101 1100
1111 1001 1000 0110
0101 1100 0000 1010
1000 0110 1001 1111
Control Signal Specification °
Machine Interpretation
° 4
Fasilkom UI – IKI20210
2
Digital Computer ° Komputer Dijital: • Hanya mengenal dua status (mis. ada / tidak ada tegangan) • Sangat sederhana hanya dapat bernilai: 1 atau 0 => biner • Operasi hanya dapat dilakukan pada bits ; yang dapat bernilai 1 atau 0. • Contoh operasi mengubah (flip, switch) nilai bit, menjadikan bit tertentu 0; test bit jika 0 atau switch bit ini Test bit ini jika 0, bukan. menjadi 0
switch bit pertama 0
100101
100001
100001
100000 5
Computer & “things” ° … so, apakah komputer (yang hanya mengenal bits dengan nilai: 0 dan 1) demikian “powerful”? ° Apakah komputer dapat merepresentasikan “sesuatu”, apa saja?
..hello buzz simulasi mobil 6
Fasilkom UI – IKI20210
3
Bits is numbers ° Apakah dengan bits, komputer dapat mewakili: • Bilangan (numerik)? Alfabet ? Kata? Alamat? Gambar? ° Contoh: Bilangan • Manusia lebih mudah menggunakan representasi / notasi desimal. • 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? 7
Example: Numbers! ° 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 90 = 9x101 + 0x100
• Binary: 0,1 1011010 = 1x26 + 0x25 + 1x24 + 1x23 + 0x22 + 1x2 + 0x20 = 64 + 16 + 8 +2 = 90
8
Fasilkom UI – IKI20210
4
Bits: Represent “anything” !!! ° Bits dapat mewakili apapun! • Karakter? Latin: -
26 huruf => 5 bits Huruf besar/kecil + tanda lain => 7 bits, berapa simbol huruf? Karakter, bahasa lain => 16 (unicode)
• Logical values? -
0 -> False, 1 => True
• Warna ? Berapa banyak warna => berapa bits? • Alamat? (berapa karakter alfabet ..) ° .. Tapi N bits => hanya 2N sesuatu
9
So, what else is useful? ° Apa yang dapat dilakukan (manipulasi) dengan “bilangan”? • .. Ya, yang umumnya kita lakukan operasi (instruksi) dengan bilangan! -
Tambahkan, Kurangkan, Kalikan, Bagikan, Bandingkan!
• Contoh: 10 + 7 = 17 Apakah instruksi +, dapat diwakili oleh bits?
+
1
1
1
0
1
0
=> 10
0
1
1
1
=> 7
------------------------1
0
0
0
1
=> 17
10
Fasilkom UI – IKI20210
5
Instructions: bits ° Instruksi (Operasi). Apakah dapat diwakili oleh bit? • Contoh: -
0 => tepuk tangan 1 => snap jari jempol dan telunjuk Eksekusi Instruksi: 1 0 1 1 0 0
° Jadi instruksi operasi bilangan (sebagai contoh!) • Misalkan 3 bits (berapa banyak instruksi?): -
000 => tambahkan 010 => kalikan 100 => bandingkan dst.
001 => kurangkan 011 => bagikan
° Jadi bits (data) dapat diartikan sebagai instruksi!
11
Numbers are stored at addresses Alamat
° Memory adalah tempat menyimpan bits data ° Suatu “word” adalah sejumlah data bits tetap, (mis. 16, atau 32 bits) pada 01110 satu lokasi di memori ° Alamat menunjuk ke lokasi “word” disimpan. • Alamat dapat diwakili oleh bits mewakili lokasi k 11111 = 2 - 1 • Alamat sebagai “bilangan” (increment) 00000
data
101101100110
Logical view: memory
12
Fasilkom UI – IKI20210
6
What can be stored ° Apa yang dapat disimpan? • Bilangan (numbers) • Karakter • Alamat data (numbers juga) • Representasi “sesuatu” di dunia luar • ..
00000
101101100110
01110
11111 = 2k - 1
anything Big Idea: Komputer dapat menyimpan apapun. 13
Machine Instructions ° Bagaimana memberikan instruksi ke mesin komputer? • Beberapa bits untuk jenis instruksi/operasi • Beberapa bits untuk alamat sumber dari operand • Beberapa bits untuk alamat hasil operand Bits
N-1 operation
d = x + y -----> Add
jenis instruksi
0 result addr
d
op1 addr
x
op2 addr
y
alamat operand / variabel
° Dimana bits instruksi harus disimpan? 14
Fasilkom UI – IKI20210
7
The Stored Program Computer 0 1 2 3 4 5 6 7 8 9
0 7 4 5 1 8 7 6 0 9 8 6 0061 0017 0003 0000 0000 0000
data instruksi
° Memory menyimpan instruksi dan data sebagai bits. ° Instruksi diambil oleh prosesor dari memori, diartikan, dan, • Operands (data) diambil, diolah, dan disimpan ke memori. ° Contoh Instruksi 4-digit • Operasi: 0 => add, 1 => sub • Alamat hasil • Alamat op1 instruksi 0: 0745 0=add (jenis instruksi), • Alamat op2
Apa yang berada di lokasi 9 setelah eksekusi instruksi 0, 1, 2?
7=addr. result, 4=addr op1, 5=addr op2
15
Stored Program (Summary) ° Konsep Kunci: Data dapat diartikan sebagai instruksi! • 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). 16
Fasilkom UI – IKI20210
8
So what’s it all mean? ° Kita dapat menulis sebuah program yang dapat “menerjemahkan” untaian karakter ke “instruksi komputer (bits)”. • Program tersebut disebut: compiler atau assembler. ° Kita dapat me-load hasil pola bits ke memori dan dijalankan oleh prosesor. • Mampu mengolah/manipulasi bilangan, karakter, pixels … (Aplikasi, Software) • Mampu melakukan penerjemahan perintah ke instruksi komputer (Compiler) • Dapat mengontrol komputer => load dan jalankan program (Operating Systems)
17
Bicycle Computer (Embedded)
Heart Rate
° P. Brain • wireless heart monitor strap • record 5 measures: speed, Speed time, current distance, Altitude elevation and heart rate • Every 10 to 60 sec. • 8KB data => 33 hours • Stores information so can be uploaded through a serial port Dramatic change !!! into PC to be analyzed
18
Fasilkom UI – IKI20210
9
To Remember
° Komputer “manipulasi” representasi dari sesuatu! ° Apa yang dapat anda wakili dengan N bits? • 2N sesuatu! ° Apa saja? … ya, apa saja .. anything! • Bilangan! Karakter! Pixels! Dollars! Posisi! Instruksi DLL. • Tergantung intrepetasi dan operasi apa saja yang anda inginkan terhadap “sesuatu” (bits) tersebut. 19
To remember ° Kita dapat mengubah “sesuatu” dan diwakili oleh data bits ke dalam komputer: • Bilangan, Karakter, ... (data) • Alamat (where to find it) • Instruksi (what to do) ° Operasi komputer direpresentasikan sesuai dengan operasi sebenarnya (real thing). • (Representasi dari 2) ditambah (Representasi dari 3) = (Representasi dari 5) ° Konsep Kunci: • Intrepetasi Data: Program yang menentukan “data” • Stored program concept: Instruksi dapat disimpan sebagai data. 20
Fasilkom UI – IKI20210
10