Oleh:
Djoni H. Setiabudi
i
DAFTAR ISI
ii
PRASYARAT .................................................................................................................... 86
DESKRIPSI ........................................................................................................................ 86
URAIAN ............................................................................................................................ 86
RINGKASAN.................................................................................................................. 101
LATIHAN/TUGAS ........................................................................................................ 101
DAFTAR PUSTAKA ........................................................................................................ 1021
iii
iv
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
MODUL 1 - PENDAHULUAN
TUJUAN
Setelah selesai mempelajari modul ini Anda mempunyai kemampuan :
PRASYARAT
-
DESKRIPSI
Pada awal dari modul ini anda akan diperkenalkan perbedaan antara arsitektur
komputer dan organisasi komputer, kemudian anda akan diperkenalkan dengan
abstract model computer yang menjelaskan bagaimana ide asal mulanya komputer
itu diciptakan. Berikutnya anda akan mempelajari mengenai Turing Machine yang
merupakan komputer abstrak yang menjelaskan ide awal bagaimana cara kerja
algoritma dari suatu program. Terakhir anda akan belajar histori perkembangan
komputer sejak berhasil diciptakan oleh manusia.
URAIAN
1
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
2
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
Organisasi Komputer :
Unit-unit operasional dan hubungan / interkoneksi antar unit-unit tsb yang
digunakan untuk merealisasikan spesifikasi dari arsitektur komputer.
Sebagai contoh :
IBM System / 370 Architecture.
Semua model mempunyai arsitektur yang sama, tetapi organisasinya berbeda, harga
dan performance dari model-model tsb berbeda.
Suatu arsitektur dapat bertahan, tetapi organisasi berubah sesuai dengan
perkembangan teknologi.
Suatu komputer dapat menggunakan control unit berupa hardware yang cepat,
tetapi yang lain menggunakan microprogramming untuk mengimplementasikan
instruction set.
3
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
Proses komputasi dapat berupa evaluasi dari suatu fungsi f(x) dimana ‘x’ adalah
z = f(x).
Untuk mengevaluasi f(x) pada sebuah komputer tiap f harus diekspresikan berupa
sequence dari sub function f1, f2, …, fn. sedemikian rupa sehingga tiap sub function fi
dapat dinyatakan dalam bentuk instruction set dari komputer.
f1, f2, …, fn dapat dilihat sebagai sebuah program untuk mengevaluasi f(x), dan secara
umum :
y1 = f1(x)
y2 = f2(y1)
-----------------
yn-1 = fn-1(yn-2)
z = fn(yn-1)
Konsep komputer pertama kali dikemukakan oleh Charles Babbage, dimana pada
tahun 1834 dia membuat analytical engine yang memuat :
♥ Program dan data input berupa punched card
♥ Memory dengan menggunakan mechanical
♥ CPU menggunakan mechanical dengan decimal arithmatic
♥ Output device menggunakan printed output atau punched card
TURING MACHINE
Pada th 1936 Alan M Turing menemukan Turing Machine yang digunakan untuk
mengimplementasikan abstract model komputer tetapi dengan batasan :
Mesin tidak harus menyimpan jawaban dari semua kemungkinan masalah
4
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
read-write head
Tape M dibagi menjadi kotak-kotak yang sama. Tiap kotak dapat blank atau berisi
simbol dari suatu finite set. Processor adalah suatu mesin digital dengan jumlah
state yang berhingga.
Mempunyai read/write head yang dapat :
Read satu kotak
Write ke satu kotak
Move tape satu kotak ke kiri
Move tape satu kotak ke kanan
ke kiri)
kanan)
4. oj = H ; halt computation
5
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
• Kemudian turing machine di start dan melaksanakan instruksi f1, f2, …, fn secara
berurutan
• Pada akhir fn, machine berhenti dan tape berisi hasil perhitungan
Instruksi Comment
S0 b R S0
S0 1 R S1 ; move R/W head ke kanan melalui n1
S1 1 R S1
S1 b 1 S2 ; mengganti blank diantara n1 dan n2 dengan 1
S2 1 L S3 ; move R/W head ke kiri
S3 1 L S3
S3 b R S4 ; mencapai akhir dari 1 : backspace
S4 1 b S5 ; menghapus leftmost 1
S5 b H S0 ; hasil n1 + n2 pada tape
Turing machine algorithm terdiri dari satu set rule yang meliputi pergerakan head,
tape operation dan perubahan state. Hal ini didefinisikan dengan 4 tuple :
sh ti oj sk
Perhitungan dengan turing machine dilakukan dengan menyatakan :
Tape alphabet
Bentuk untuk menyatakan parameter pada tape
Machine program
6
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
Algorithm adalah satu set aturan (rule) yang secara tepat mendefinisikan sequence
dari suatu operasi sedemikian rupa sehingga tiap aturan selalu efektif dan
terdefinisi dan sequence-nya akan selesai dalam selang waktu yang tertentu.
Tiap algorithm untuk semua alat hitung mempunyai turing machine algorithm yang
equivalent.
Dugaan : semua perhitungan dapat dihitung oleh turing machine. Hal ini belum
dapat dibuktikan benar atau salah.
Beberapa problem yang dapat diselesaikan pada turing machine tidak dapat
diselesaikan pada real komputer.
Misalkan algorithm A akan dieksekusikan pada sebuah komputer. Sesuai dengan
tingkat kesulitan dari algorithm, ada 2 parameter yang penting :
- Berapa banyak memory space yang diperlukan ?
Jawaban dari pertanyaan tsb, dinyatakan dengan space complexity dan time
complexity. Dua hal tsb sulit diukur, dan tergantung dari data input yang diberikan.
Limit waktu lebih kritis dibandingkan memory space
Kompromi :
Penerimaan solusi yang kurang akurat, hanya berupa approximation
diterima
7
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
Tetapi tidak semua masalah dapat diselesaikan dengan teknik ini, karena algorithm
dasarnya sequential. Contoh : step i+1 tidak dapat dilakuan sampai step i selesai
dihitung.
Pada tahun 1938 telah dibuat komputer dimana komputer ini menggunakan
rangkaian analog.
Untuk generasi komputer dengan rangkaian digital, dimulai pertama pada th 1943
yang diberi nama ENIAC, dan menggunakan vacuum tubes sebagai komponen
utama.
8
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
Hasilnya :
Mesin dengan berat 30 ton, berukuran 15.000 square-feet, berisi 1800 vacuum
tubes, mengkonsumsi daya 140 KiloWatts, serta mampu menghitung 5000
penjumlahan per detik.
ENIAC menggunakan sistem bilangan desimal, memory-nya berisi 20
Accumulator, masing-masing dapat menangani 10 digit bilangan desimal.
Kekurangan yang utama dari ENIAC adalah bahwa mesin ini harus
diprogram secara manual dengan cara menyetel swicth dan memasang serta
menanggalkan kabel, sehingga sulit untuk memasukkan serta mengubah
program.
ENIAC selesai tahun 1946, terlalu lambat untuk dimanfaatkan Army. Sebagai
gantinya digunakan untuk mendesain H-Bomb, berarti bisa digunakan untuk
general purpose.
3. EDVAC (Electronic Discrete Variable Automatic Computer) (1945) di
Amerika Serikat. Dari ide EDVAC ini lah dibuat komputer IAS.
4. Von Neumann Machine (IAS) (1946). Pencetus ide ini ialah John Von
Neumann, konsultan dari proyek ENIAC. Ide ini juga dikembangkan dalam
kurun waktu yang sama oleh Turing. Desain dimulai tahun 1946, diberi
nama IAS Computer, di Princeton Institute for Advanced Studies. Selesai
tahun 1952 dan menjadi cikal bakal general purpose computer yang dipakai
saat ini.
Struktur IAS computer (Gambar 1.2) terdiri dari :
- main memory, untuk menyimpan data dan instruksi.
- ALU (Arithmetic and Logic Unit) untuk mengolah data binary.
- Control Unit, menterjemahkan instruksi di memory dan dieksekusikan.
9
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
Gambar 1.3 Format Data dan Instruksi dari Komputer IAS (Stallings, 2006)
10
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
Pengoperasian IAS :
Instruction cycle terdiri dari 2 subcycle :
◊ Fetch cycle, op-code dari next instruction di load ke IR, address di load ke
MAR. Instruksi dapat berasal dari IBR atau dari memory (load word ke
MBR kemudian ke IBR, IR dan MAR)
◊ Execute cycle, rangkaian control menterjemahkan op-code dan
mengeksekusikan instruksi dengan mengirim signal control untuk move
data atau operasi ALU.
11
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
12
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
13
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
3. DEC PDP-8
Size lebih kecil dan harga lebih murah dari System/360. Produsen komputer lain
(disebut OEM – Original Equipment Manufacturer) membeli PDP-8 dan
menjualnya lagi berupa integrated system.
Perbedaan dengan System/360 ialah PDP-8 menggunakan bus structure
(sekarang digunakan oleh minicomputer dan microcomputer), disebut PDP-8
bus atau Omnibus, terdiri dari 96 signal path yang terpisah (untuk data, address
dan control).
14
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan
Tahun 1972 Intel membuat microprocessor 8 bit yang pertama dan dua kali lebih
kompleks dari 4004 yaitu 8008. Baik 4004 ataupun 8008 didesain untuk specific
application.
Tahun 1974 Intel membuat microprocessor 8080, merupakan general purpose
microprocessor yang pertama, 8 bit tetapi lebih cepat, jumlah instruction set dan
addressing lebih banyak.
RINGKASAN
Pada bab ini anda telah mempelajari konsep dasar tentang komputer, perbedaan
arsitektur dan organisasi komputer dan bagaimana komputer itu diciptakan beserta
sejarah perkembangannya dilihat dari sisi algoritma dan perangkat kerasnya.
LATIHAN/TUGAS
1. Ubahkan algoritma turing machine untuk menyelesaikan penjumlahan dua
bilangan,
POSISI AWAL :
b1111b1111b
↑
Posisi awal head
dimana setelah hasil diperoleh, posisi head berada pada blank space dikanan
hasil penjumlahan
(bbbb1111111111bbbbb)
↑
Posisi akhir head
15
Modul Ajar Arsitektur dan Organisasi Komputer Modul 2 – Struktur Dasar Komputer
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Memahami blok diagram dasar komputer, bagian-bagiannya beserta cara
kerjanya untuk memproses data.
2. Mengetahui macam-macam register yang terdapat pada prosesor dan
fungsinya masing-masing.
3. Memahasi cara eksekusi instruksi mulai dari saat masuknya instruksi di
computer sampai didapatkan hasil eksekusi dengan memperhatikan peranan
register yang ada di prosesor.
4. Memahami satuan penyimpanan data di computer : bit, byte, word.
PRASYARAT
Mahasiswa telah mengerti prinsip kerja dari komputer yang pertama : komputer
Von Neumann /IAS
DESKRIPSI
Pada modul ini akan dibahas mengenai cara mengeksekusikan instruksi yang
dimasukkan pda input unit, kemudian dimasukkan dalam memory dan selanjutnya
dieksekusikan di prosesor dengan memanfaatkan register yang ada didalam
prosesor. Hasilnya akan ditampilkan pada output unit.
URAIAN
Blok diagram dasar suatu komputer dapat dilihat pada Gambar 2.1.
16
Modul Ajar Arsitektur dan Organisasi Komputer Modul 2 – Struktur Dasar Komputer
Input ALU
Memory
Output Control
I/O Processor
Informasi yang dapat diproses didalam computer terdiri dari 2 macam, yaitu :
• Instruksi
• Data
Instruksi :
Mentransfer informasi di dalam komputer dan antara I/O dengan komputer.
Menspesifikasikan operasi aritmatik dan logika yang akan dilaksanakan.
Program : kumpulan dari instruksi
Data :
Number Operand
Encoded Character
Program dapat dianggap data jika diproses oleh program lain, contoh : compilation.
Informasi harus di encode ke format yang sesuai
Number
Character Encode Bit (binary digit)
Instruksi
17
Modul Ajar Arsitektur dan Organisasi Komputer Modul 2 – Struktur Dasar Komputer
EBCDIC (Extended Binary Coded Decimal Interchange Code) -> 8 bit code.
Input Unit :
Komputer menerima informasi yang di-encode melalui input unit, suatu device
yang dapat membaca data tsb.
Contoh input unit :
Keyboard
Joystick
Trackballs
Mouse
Output Unit :
Berfungsi untuk mengirim hasil proses ke luar komputer.
Contoh output unit :
Video display
Printer
Memory Unit :
Fungsi memory adalah menyimpan program dan data.
Dua jenis memory :
Primary storage / main memory
Secondary storage / external memory
Primary storage / main memory :
Fast memory, terdiri dari semiconductor storage cells, tiap cell dapat menyimpan 1
bit informasi. Cell-cell dikelompokkan menjadi word (1 word = n bit). Tiap word
memiliki alamat (address) yang berbeda sesuai dengan lokasinya.
Address adalah bilangan yang mengidentifikasi lokasi yang berurutan.
Suatu word dapat diakses dengan memberikan addressnya dan control command
yang berfungsi untuk memulai proses pengambilan data.
Word length : jumlah bit dalam tiap word (8-32 bit).
RAM (Random Access Memory) : suatu memory yang untuk mengakses data pada
sebarang lokasi diperlukan waktu yang pendek dan tertentu setelah address
diberikan.
Memory access time : waktu yang diperlukan untuk mengakses 1 word (50-500 ns)
18
Modul Ajar Arsitektur dan Organisasi Komputer Modul 2 – Struktur Dasar Komputer
Proses : operand dibawa ke ALU dari register/memory, diolah dan hasilnya dikirim
ke register/memory.
Register : memory yang terletak di CPU dan mempunyai kecepatan 5-10x memory
access time.
Control Unit :
Berfungsi untuk mengkoordinasikan semua proses di dalam komputer, mengirim
sinyal control ke unit-unit yang lain dan mendeteksi state dari unit-unit tersebut.
Contoh :
Untuk mencetak satu baris pada printer, prosesor memberikan instruksi “write”.
Untuk memproses instruksi ini, control unit mengirim “timing signal” ke / dari
printer.
I/O transfer dan data transfer antara CPU dan memory dikontrol dengan instruksi,
tetapi timing signal yang mengatur tranfer selama proses eksekusi dihasilkan oleh
rangkaian pengontrol.
Blok diagram hubungan antara prosesor dan main memory secara lebih detail dapat
dilihat pada gambar 2.2.
19
Modul Ajar Arsitektur dan Organisasi Komputer Modul 2 – Struktur Dasar Komputer
Main Memory
MAR MDR
Control
PC R0
R1
IR
ALU
n general
purpose
register Rn-1
PROCESSOR
Gambar 2. 2. Blok Diagram Dasar Komputer
Bagian-bagian dari prosesor adalah sebagai berikut :
Instruction Register (IR)
Untuk menyimpan instruksi yang akan dieksekusikan. Output IR dikirim ke Control
Unit.
20
Modul Ajar Arsitektur dan Organisasi Komputer Modul 2 – Struktur Dasar Komputer
Untuk melaksanakan instruksi tersebut sesuai dengan blok diagram pada Gambar
2.2, diperlukan beberapa langkah sebagai berikut :
Instruksi harus ditransfer dari main memory ke processor.
Operand pada Loc A harus di-fetch dan ditambahkan ke R0.
Akhirnya hasil penjumlahan disimpan dalam register R0.
21
Modul Ajar Arsitektur dan Organisasi Komputer Modul 2 – Struktur Dasar Komputer
RINGKASAN
Pada bagian ini anda telah belajar bagaimana blok diagram dasar suatu komputer,
bagian-bagiannya berikut hubungannya dengan main memory. Anda juga telah
belajar bagaimana proses ekesekusi suatu instruksi didalam blok diagram tersebut
termasuk peranan masing-masing register didalam prosesor.
LATIHAN/TUGAS
Perhatikan blok diagram komputer pada Gambar 2.2. Tuliskan step-step untuk
mengeksekusikan instruksi sebagai berikut : tambahkan isi register R1 ke isi lokasi
memory yang alamatnya berapa pada register R3. Simpan hasilnya pada lokasi
memory yg. alamatnya berada pada register R3. Step-step dituliskan mulai saat
instruksi di fetch dari main memory sampai dihasilkan hasil penjumlahan.
22
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
TUJUAN
Mempelajari bagaimana instruksi (yang berurutan) diambil dari main memory untuk
dibawa ke CPU dan dieksekusikan untuk melaksanakan tugas yang diberikan
Mempelajari penggunaan addressing mode untuk mengakses operand dari lokasi
memory dengan beberapa macam cara.
Memahami cara kerja program dan dapat membuat suatu program sederhana dalam
bahasa assembly dengan menggunakan macam-macam addressing mode
PRASYARAT
Mahasiswa telah memahami blok diagram dasar komputer beserta
penggunaan macam-macam register yang ada di prosesor, khususnya MAR,
MDR, PC dan IR
Mahasiswa telah mengerti representasi bilangan biner (basis 2)
DESKRIPSI
Pada modul ini dipelajari bagaimana membuat satu program sederhana dalam bahasa
assembly dengan memvariasi penggunaan adressing mode, dan pemanfaatan loop
untuk proses sequential yang berulang.
URAIAN
KONSEP DASAR
Pada modul ini akan dipelajari pengenalan konsep pemrograman dalam bahasa
assembly dan bahasa mesin. Tujuan utama untuk mempelajari bahasa assembly
adalah untuk mengerti dan bagaimana suatu komputer dibuat dan bagaimana cara
pengoperasiannya. Untuk mengeksekusikan high level program, pertama kali harus di
terjemahkan dulu ke bahasa assembly.
Main memory terdiri dari jutaan storage cell, dimana tiap cell dapat menyimpan data
1 bit. Tetapi biasanya digunakan dalam 1 kelompok dengan size tertentu.
23
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
M : Address space
n bits
Address
0 word 0
1 word 1
'
' '
' '
' '
'
'
' bn-1 --- b1 b0 word i
'
'
'
'
'
'
'
24
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
32 bit
1’s complement
2’s complement
Ketiga skema tersebut sama untuk bilangan positif, berbeda hanya untuk bilangan
negatif.
Character
32 bit = 4 char
ASCII / EBCDIC
Character dapat berupa abjad, decimal digit, tanda baca dan sebagainya. Character
direpresentasikan dengan code yang panjangnya 8 bit. Pada Gambar 3.3 dapat dilihat
empat character dalam code ASCII disimpan dalam word yang panjangnya 32 bit.
Instruction
25
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
8 bit 24 bit
Pada Gambar 3.4 dapat dilihat format suatu instruksi. Operation field menentukan
operasi atau perintah yang akan dilaksanakan, sedangkan addressing field
menentukan address dari operand yang akan digunakan.
8 bit operation field dapat mengkode 28 = 256 instruction
24 bit address field dapat mengkode 224 bit lokasi dari 0 s/d 224-1 (16777215).
Operand dapat direferensi pada addressing field dengan berbagai cara, ini disebut
dengan addressing mode.
Secara umum, isi lokasi memory tidak bisa dibedakan, apakah berupa instruksi atau
data dengan hanya melihat isinya, karena bilangan biner dapat di interpretasikan
dengan format yang berbeda-beda, apakah bilangan, character ataukah instruksi.
Semua memory word yang ditunjuk oleh PC akan diinterpretasikan sebagai instruksi.
Memory word yang addressnya dispesifikasikan oleh instruksi akan diinterpretasikan
sebagai operand.
Untuk membedakan operand, berupa karakter atau numerik, ditentukan oleh
operation field dari instruksi.
Instruksi
Beberapa jenis instruksi :
Transfer data antara main memory dan CPU register.
Operasi aritmetik dan logika.
Program sequencing dan control.
Transfer I/O.
Tiap lokasi memory / register diberi nama.
Contoh :
26
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
Source Destination
Problem yang muncul untuk three address, adalah diperlukannya sejumlah besar bit.
Jika m bit digunakan untuk menspesifikasikan addressnya, instruksi tsb harus berisi
3m bit untuk addressing + bit-bit untuk op-code.
27
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
Add B
Store C
Untuk memberi address pada general purpose register :
8 register -> 3 bit
16 register -> 4 bit
Relatif lebih sedikit dari bit-bit yang digunakan untuk memberi address pada lokasi
memory.
1 ½ Address Instruction
Load A, Ri
Store Ri, A
Add A, Ri
1 ½ address artinya dari 2 operand yang digunakan, salah satu menunjuk ke lokasi
memory dan yang kedua menunjuk ke register.
Dapat juga dilakukan operasi : Add Ri, Rj
Proses dengan 2 address format, dapat menggunakan register sebagai pengganti
lokasi memory pada address fieldnya.
Contoh :
Move A, Ri atau Load A, Ri 1½ address
Move Ri, A atau Store Ri, A format
28
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
1.
i move A, R 0
i+1 move B, R 0
i+2 move R 0, C
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
29
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
Bersamaan dengan kedua fase tersebut, isi PC ditambah untuk menunjuk ke next
instruction.
Branching
Perhatikan proses untuk menjumlahkan n bilangan pada Gambar 3.7.
i move NUM 1, R0
'
'
'
'
SUM
NUM1
NUM2
'
'
'
NUMn
30
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
Sebagai pengganti beberapa instruksi add, dapat digunakan satu instruksi add di
dalam sebuah loop dan dieksekusikan beberapa kali seperti pada Gambar 3.8.
clear R0
move N, R1
decrement R1
'
'
'
SUM
NUM1
NUM2
'
'
'
NUMn
31
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
ADDRESSING MODE
Addressing mode adalah suatu cara untuk mengakses operand yang dispesifikasikan
oleh instruksi. Addressing mode meliputi :
1. Absolute mode
2. Immediate mode
3. Indirect mode
4. Index mode
5. Autoincrement mode
6. Autodecrement mode
1. Absolute mode
2. Immediate mode
32
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
3. Indirect mode
Mode ini tidak memberikan operand atau addressnya secara explicit. Tetapi mode
ini memberikan informasi darimana memory address dari operand bisa
didapatkan. Address ini disebut effective address dari operand.
Effective address dari operand terletak pada register / lokasi memory yang
addressnya terletak pada instruksi.
Yang dimaksud dengan effective address adalah : address dari lokasi operand.
Lokasi tsb dinamakan pointer ke lokasi operand.
'
' main memory
'
'
'
'
A B B Operand
'
'
'
B Operand Rj B register
33
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
Clear R0
Move N, R1
Move #NUM1, R2
LOOPSTART Add (R2), R0
Increment R2
Decrement R1
Branch >0 LOOPSTART
Move R0, SUM
4. Index mode
'
'
' index register
R1 1050
1050
'
20 = offset
'
'
offset berupa konstanta
1070 Operand
34
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
'
'
' index register
R1 20
1050
20 = offset '
'
'
offset pada index register
1070 Operand
Contoh :
Ada suatu daftar nilai test suatu mata kuliah. Untuk tiap student ada 4 word item,
berupa ID Number dan 3 nilai test. Ada n student dalam kelas. Harga n diberikan
pada bagian awal dari daftar. Lihat Gambar 3.11.
Persoalan : hitung jumlah nilai test 2 dan test 3.
35
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
N n
LIST StudentID
Test 1
Student 1
Test 2
Test 3
StudentID
Test 1
Student 2
Test 2
Test 3
'
'
'
Register R0 : index register, diset untuk menunjuk ke lokasi ID dari record pertama.
Register R1 : loop counter, diinisialisasi dengan jumlah siswa dalam kelas.
Register R2 dan R3 : untuk akumulasi nilai test 2 dan test 3.
Isi dari index register R0 tidak diubah pada saat word ke 3 dan ke 4 diakses, hanya
berubah oleh instruksi terakhir di dalam loop.
SUM2, SUM3 : lokasi memory tempat hasil penjumlahan.
5. Autoincrement mode.
36
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
Mode ini adalah kebalikan dari mode autoincrement. Pertama kali isi register yang
dinyatakan pada instruksi akan dikurangi satu.. Kemudian setelah itu isinya
digunakan sebagai effective address dari operand.
Penulisan : - (R4)
Isi register dikurangi sebelum digunakan sebagai address, merupakan kebalikan
dari autoincrement mode.
Bahasa Assembly
Untuk menuliskan instruksi, digunakan simbol-simbol :
Move -> MOVE
Add -> ADD
Register R3 -> R3
Assembly language :
Satu set simbol-simbol lengkap dengan aturannya.
Mnemonic Syntax
37
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
Assembler Command
Statement-statement yang dituliskan pada program bukan sebagai instruksi yang akan
dieksekusikan, tetapi hanya untuk memberikan informasi yang diperlukan untuk
proses assemble program.
Contoh : SUM EQU 200
Nama SUM digunakan untuk menyatakan lokasi memory yang
addressnya 200. Pada saat proses assemble, setiap nama SUM pada
program diganti dengan bilangan 200.
Program pada mode indirect dapat disimpan pada main memory bersama dengan
datanya sebagai berikut :
38
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
100 Clear R0
101 Move N, R 1
104 Increment R 2
105 Decrement R 1
'
'
'
SUM = 200
N = 201 300
NUM1 = 202
NUM2 = 203
'
'
'
NUMn = 501
Penyederhanaan :
Diasumsikan instruksi dan data menempati satu word di main memory.
Untuk dapat menghasilkan object program, assembler perlu mengetahui :
Bagaimana menginterpretasikan nama-nama.
39
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
Instruksi-instruksi object program akan di-load ke memory mulai address 100 dengan
menggunakan command ORIGIN yang kedua.
END : menyatakan akhir dari source program.
Label START adalah address dari lokasi dimana program akan mulai dieksekusikan.
Statement-statement pada source program biasanya dituliskan dengan bentuk sbb :
LABEL OPERATION OPERAND(s) COMMENT
Min 1 spasi
Label field : berisi nama yang berhubungan dengan memory address dari instruksi /
data.
40
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
Ada kasus dimana assembler tidak langsung mengganti nama yang menyatakan
address dengan address yang sebenarnya. Contoh pada instruksi branch, target tidak
akan diganti dengan actual address.
Instruksi branch diimplementasikan ke kode mesin dengan menentukan jarak antara
instruksi tsb dengan instruksi pada branch target. Jarak ini disebut branch offset.
Branch offset dapat terjadi dengan arah forward atau backward. Pada saat assembler
men-scan source program, semua nama dan harga address yang berhubungan dengan
nama tsb disimpan dalam symbol table.
Untuk melaksanakan backward branch tidak ada masalah.
Untuk melaksanakan forward branch, assembler tidak dapat menentukan harga
offsetnya karena address dari branch target belum disimpan dalam symbol table.
Penyelesaiannya adalah assembler melakukan scanning source program 2x.
Pada pass I dihasilkan symbol table untuk semua nama dan offset untuk instruksi
branch. Tipe assembler ini dinamakan two-pass assembler.
Loader :
Program yang digunakan untuk me-load object program dari disk ke main memory
dan kemudian mengeksekusikan program tsb dengan branch ke instruksi pertamanya.
Debugger :
Program untuk mencari error dalam object program yang bukan berupa syntax error.
Program ini dapat menghentikan eksekusi object program pada beberapa titik tertentu
untuk memeriksa isi register dan lokasi memory.
41
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing
RINGKASAN
Pada modul ini anda telah belajar mengenai macam-macam data yang bisa diberikan
kedalam komputer. Anda juga belajar instruksi yang bisa diberikan ke komputer,
mulai dari 3 address, 2 address, 1 address dan 0 address.
Anda juga belajar hal yang sangat penting didalam arsitektur komputer, yaitu
addressing mode, yaitu macam-macam mode pengalamatan untuk mengakses data
dari memory. Terakhir anda belajar sedkit mengenai bahasa assembly.
LATIHAN/TUGAS
1. Tulis program dalam assembly language untuk : three, two, one, zero address
machine untuk menghitung persamaan sbb :
A− B AC
F= −
C*D B + E
Catatan :
• Nilai/ isi lokasi memory A,B,C,D,E tidak boleh diubah
• Boleh menggunakan 2 lokasi memory T1 dan T2 sebagai temporary result
C <- A1 X B1 + A2 X B2 + A3 X B3
Catatan :
• Isi lokasi memory A1 s/d A3 , B1 s/d B3 tidak boleh diubah
• Diperbolehkan menggunakan register: R0, R1, ….. , R5
• Penulisan instruksi multiply : MUL Ai, Ri (1 ½ address)
42
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
TUJUAN
Setelah selesai mempelajari modul ini Anda akan memahami dan dapat melakukan hal-
hal berikut:
1. Mengerti dan memahami representasi bilangan integer/fixed point dan bilangan
floating point.
2. Mampu melakukan perhitungan arithmetic (penjumlahan, pengurangan,
perkalian dan pembagian) untuk bilangan integer dan floating point.
PRASYARAT
Mahasiswa sudah mengerti representasi bilangan biner.
Mampu melakukan perhitungan perkalian dan pembagian dengan
menggunakan pensil dan kertas (secara manual).
DESKRIPSI
Pada modul ini dibahas cara representasi bilangan integer dan floating point.
Kemudian cara perhitungan arithmetic untuk bilangan integer meliputi penjumlahan
dan perkalian 2’as complement. Selain itu juga dipelajari arithmetic untuk bilangan
floating point meliputi penjumlahan, pengurangan, perkalian dan pembagian.
URAIAN
Proses arithmetic pada komputer umumnya menggunakan dua jenis bilangan yang
sangat berbeda : integer dan floating point.
Proses perhitungan arithmetic dilakukan didalam CPU pada bagian yang disebut
dengan ALU (Arithmetic and Logic Unit)
ALU adalah bagian dari komputer yang melaksanakan proses arithmetic dan logic pada
data. Lihat Gambar 4.1. Semua elemen yang lain dari komputer mengirim data ke ALU
untuk diproses dan mendapat hasil output.
register register
Gambar 4.1 Blok Diagram ALU
Data diberikan ke ALU dari register dan hasil operasi juga disimpan di register. ALU
juga men-set flag sebagai hasil dari operasi, misalnya overflow flag.
43
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
Control unit memberikan sinyal yang mengontrol operasi dari ALU dan pemindahan
data ke dalam dan keluar ALU.
INTEGER ARITHMETIC
Dengan menggunakan simbol ( - ) dan ( . ) sembarang bilangan dapat dinyatakan
sebagai berikut :
- 101.01012 = -11.312510
Untuk penyimpanan data di komputer, hanya bilangan 0 dan 1 yang dipakai.
8 bit word dapat dipakai untuk menyatakan bilangan dari 0 sampai dengan 255 non-
negative.
Contoh : 00000000 = 0 00101001 = 41
00000001 = 1 10000000 = 128
untuk menyatakan bilangan negative, digunakan sign-bit (leftmost Bit)
Leftmost Bit = 0 Bilangan positif
Leftmost Bit = 1 Bilangan negatif
Contoh : 18 = 00010010
-18 = 11101101
44
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
sign bit
Untuk 1’s complement, negatif dari bilangan negatif menjadi bilangan semula.
Contoh : - 18 = 11101101
18 = 1’s Complement dari –18 = 00010010
• Representasi 2’s complement dari bilangan positif sama dengan sign and magnitude
dan 1’s complement.
• Representasi 2’s complement dari bilangan negatif didapat dari 2’s complement dari
bilangan positif.
Contoh : 18 = 00010010
1’s complement = 11101101
1+
- 18 = 2’s complement dari 18 = 11101110
Representasi 2’s complement mempunyai anomali yang tidak terdapat pada sign and
magnitude atau 1’s complement.
Bit pattern 1 diikuti N-1 nol sama dengan 2’s complementnya. Untuk kesepakatan, bit
pattern ini diberi harga –2n.
INTEGER ARITHMETIC
45
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
Untuk S&M, perhitungan yang benar relatif komplex, harus dilakukan perbandingan
tanda dan magnitude relatif dari 2 bilangan.
Dengan complement, bilangan dapat diperlakukan sebagai unsign integer untuk
penambahan dan pengurangan.
Jika ada carry out dari leftmost bit, tambahkan 1 ke jumlahnya (end – around carry).
Contoh :
1101 = - 2 0111 = + 7
+ 1011 = - 4 + 1100 = - 3
(1)1000 (1)0011
1 1
1001 = - 6 (1’s comp) 0100 = 4 (1’s comp)
Dengan 1’s representation, dapat digunakan binary adder yang beroperasi pada unsign
integer.
Kerugian : memerlukan end – around – carry untuk beberapa penambahan.
c. (+3) + (+4) d. (- 4) + (- 1)
0011 1100
0100 1111
0111 = 7 1011 = - 5
e. (+5) + (+4) f. (- 7) + (- 6)
0101 1001
46
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
0100 1010
1001 = overflow 0011 = overflow
Jika hasil operasi negatif, didapatkan bilangan negatif dalam 2’s complement. Apabila
ada carry bit, diabaikan.
Overflow Rule
Jika dua bilangan ditambahkan dan keduanya positif atau keduanya negatif, overflow
akan terjadi jika dan hanya jika hasilnya mempunyai tanda yang berlawanan.
Substraction Rule
Untuk mengurangkan satu bilangan (subtrahend) dari yang lain (minuend), lakukan 2’s
complement dari subtrahend dan tambahkan pada minuend.
Contoh :
a. M = 2 = 0010 b. M = 5 = 0101
S = 7 = 0111 S = 2 = 0010
S’ = 1001 S’ = 1110
0010 0101
+ 1001 + 1110
1011 = -5 0011 = 3
c. M = -5 = 1011 d. M = 5 = 0101
S = 2 = 0010 S = -2 = 1110
S’ = 1110 S’ = 0010
1011 0101
+ 1110 + 0010
1001 = -7 0111 = 7
e. M = 7 = 0111 f. M = -6 = 1010
S = -7 = 1001 S = 4 = 0100
S’ = 0111 S’ = 1100
0111 1010
0111 + 1100
1110 = overflow 0110 = overflow
Block diagram hardware untuk penjumlahan dan pengurangan dapat dilihat pada
Gambar 4.2.
47
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
B Register
Complementer
A Register
Untuk penjumlahan, dua bilangan dikirimkan ke adder dari 2 register (A dan B).
Hasilnya disimpan pada salah satu dari dua register ini. Tanda overflow disimpan
dalam overflow flag (1 bit); 0 = tidak overflow; 1 = overflow.
Perkalian
Perkalian merupakan proses yang kompleks jika dibandingkan dengan penambahan
dan pengurangan.
Unsign integer
Contoh perkalian unsign binary integer, dengan menggunakan pensil dan kertas :
48
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
3. Untuk penjumlahan partial product, tiap partial product yang berurutan digeser
satu posisi ke kiri relatif terhadap partial product sebelumnya.
4. Perkalian 2 buah n-bit binary integer memberikan hasil kali sampai 2n bit.
add
n-bit adder shift and add control logic
shift right
Multiplier dan multiplicand di load ke dua register (Q dan M). Register ketiga (A) di-
inisialisasi dengan 0. Ada juga register C (1 bit) yang di-inisialisasi dengan 0, untuk
menyimpan carry bit dari hasil penjumlahan.
49
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
start
C,A = 0
M = multiplicand
Q = multiplier
Count = n
Q0 = 1
Yes
?
No C, A = A + M
No Count = 0
?
Yes
end
Contoh :
Multiplicand = 1011
C A Q
0 0000 1101 Initial value
0 1011 1101 Add
0 0101 1110 Shift right First cycle
0 0010 1111 Shift right Second cycle
0 1101 1111 Add
0 0110 1111 Shift right Third cycle
1 0001 1111 Add
0 1000 1111 Shift right Fourth cycle
Hasil kali disimpan di A, Q
Perkalian 2’s complement
Penambahan dan pengurangan dapat dilakukan dengan 2’s complement (unsign
integer). Tetapi tidak berlaku untuk pengurangan.
50
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
Bila 11 (1011) dikalikan dengan 13 (1101), dihasilkan 143 (10001111). Jika dianggap
sebagai bilangan 2’s complement, didapatkan :
-5 (1011) x –3 (1101) = -113 (10001111)
Perkalian tidak berhasil jika multiplicand dan multiplier negatif.
Penjelasan :
Unsign binary number dapat dituliskan berupa penjumlahan dari pangkat 2.
Contoh :
1101= 1x23 + 1x22 + 0x21 + 1x20
= 23 + 22 + 20
Perkalian dengan bilangan biner 2n berarti menggeser bilangan ke kiri n bit.
1011
x 1101
00001011 1011 x 1 x 20
00000000 1011 x 0 x 21
00101100 1011 x 1 x 22
01011000 1011 x 1 x 23
10001111
Partial product harus dilihat sebagai 2n bit number yang dihasilkan dari n bit
multiplicand.
Unsign integer 4 bit multiplicand 1011 disimpan berupa 8 bit word : 00001011.
Tiap partial product (selain untuk 20) terdiri dari bilangan tersebut yang sudah digeser
ke kiri dengan posisi di sebelah kanan yang tidak terisi, diisi dengan 0. Contoh :
pergeseran ke kiri 2 kali menghasilkan 00101100.
Jika multiplicand negatif, perkalian langsung tidak berfungsi, contoh :
1001 (9) unsign integer
x 0011 (3)
00001001 (1001) x 20
00010010 (1001) x 21
00011011 (27)
Setiap kontribusi negative multiplicand sebagai partial product harus berupa bilangan
negatif pada field 2n bit. Sign bit harus 1.
Jika multiplier negatif, perkalian langsung juga tidak berfungsi.
Contoh : -3 = 1101
= - ( 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 )
51
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
= - 21 – 20
Bit-bit dari multiplier tidak berhubungan dengan shift atau perkalian yang harus
dilakukan.
Penjelasan :
Multiplier & multiplicand ditempatkan di register Q & M. Digunakan juga 1-bit register
yang ditempatkan di kanan least significant bit dari register Q dan dinamakan Q-1.
Hasil perkalian ditempatkan pada register A & Q. Register A & Q-1 diinisialisasi ke 0.
Seperti sebelumnya, control logic men-scan bit-bit dari multiplier, satu setiap saat.
Tetapi pada saat satu bit diteliti, bit di kanannya juga diteliti.
Jika dua bit tersebut sama (1-1 atau 0-0), maka semua bit-bit dari register A, Q dan Q-1
digeser ke kanan 1 bit.
Jika dua bit tersebut berbeda, maka multiplicand ditambahkan atau dikurangkan dari
register A, tergantung apakah dua bit tersebut 0-1 atau 1-0. Setelah penambahan /
pengurangan, terjadi pergeseran ke kanan.
Pada setiap kasus, pergeseran ke kanan dari leftmost bit dari A, yaitu An-1, tidak hanya
digeser ke An-2, tetapi juga tetap berada di An-1 (preserved).
Hal ini digunakan untuk menyimpan sign dari bilangan di A dan Q.
52
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
start
A = 0, Q-1 = 0
M = multiplicand
Q = multiplier
Count = n
A=A-M A=A+M
No Count = 0
?
Yes
end
M = 0111
A Q Q-1
53
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
Algorithm ini berfungsi dengan sebarang kombinasi bilangan positif dan negatif. Block
1 dan 0 akan diskip dengan hanya penambahan / pengurangan tiap block.
Pembagian
Dasar dari algorithm untuk pembagian adalah perhitungan menggunakan kertas dan
pinsil dan prosesnya meliputi pengulangan shift, penambahan / pengurangan. Proses
pembagian unsign binary integer adalah sebagai berikut :
54
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
00001101 Quotient
1011 10010011 dividend
divisor 1011
001110
1011 partial reminder
001111
1011
100 remainder
Proses :
1. Bit-bit dari dividend diteliti dari kiri ke kanan, sampai ditemukan satu set bit-bit
yang berharga lebih besar atau sama dengan divisornya (divisor dapat membagi
bilangan tersebut) sampai dengan event ini terjadi, 1 dituliskan pada quotient
dan divisor dikurangkan dari partial dividend. Hasilnya disebut partial
remainder.
2. Setelah ini, bit-bit tambahan dari dividend digabungkan dengan pertial
remainder sampai hasilnya lebih besar atau sama dengan divisor. Seperti
sebelumnya, divisor dikurangkan dari bilangan ini untuk menghasilkan partial
remainder yang baru.
3. Proses dilanjutkan sampai semua bit-bit dividend habis digunakan.
Akhirnya, quotient berada pada register Q dan remainder berada pada register A.
55
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
start
A=0
M = divisor
Q = dividend
Count = n
Shift left A, Q
A=A-M
A<0
No Yes
?
Q0 = 0
Q0 = 1
A=A+M
Count = Count -1
No Count = 0
?
Yes
end
56
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
6. Sisa berada di A. Jika sign dari divisor dan dividendnya sama, maka quotient
berada di Q, jika tidak maka quotient adalah 2’s complement dari Q.
Contoh :
(-7) : (3) dan (7) : (-3) menghasilkan remainder yang berbeda.
Hal ini karena remainder didefinisikan sbb :
D=Q*V+R
dimana :
D = dividend
Q = quotient
V = divisor
R = remainder
Contoh :
a. (7) : (3)
M = 0011
A Q
0000 0111 Initial value
b. (7) : (-3)
M = 1101
A Q
0000 0111 Initial value
57
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
c. (-7) : (3)
M = 0011
A Q
1111 1001 Initial value
d. (-7) : (-3)
M = 1101
A Q
1111 1001 Initial value
58
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
Untuk binary digit dapat dilakukan hal yang sama. Bilangan dapat direpresentasikan
dalam bentuk :
± S * B±E
Bilangan ini dapat disimpan dengan menggunakan 3 field :
Sign : + / -
Significand S
Exponent E
Bilangan dasar (base) tidak perlu disimpan karena sama untuk semua bilangan.
59
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
Contoh :
0 1 8 9 31
sign dari
bias exponent significand
significand
32 bit floating point format
Bit yang paling kiri (1 bit) untuk menyimpan sign (0=positif, 1=negatif).
Exponent disimpan pada bit 1 s/d 8, disebut biased representation. Untuk mendapatkan
harga exponent yang sebenarnya, bias/fixed value dikurangkan dari field ini. Pada
contoh ini, field 8 bit menyatakan 0 s/d 255.
Dengan bias 128, harga exponent yang sebenarnya antara –128 s/d 127. Base = 2.
Beberapa contoh :
0.11010001 * 210100 = 0 1001 0100 1010 0010 0000 0000 0000 0000
-0.11010001 * 210100 = 1 1001 0100 1010 0010 0000 0000 0000 0000
0.11010001 * 2-10100 = 0 0110 1100 1010 0010 0000 0000 0000 0000
-0.11010001 * 2-10100 = 1 0110 1100 1010 0010 0000 0000 0000 0000
Beberapa keistimewaan :
• Sign disimpan pada bit pertama dari word
• Bit pertama dari significand selalu 1 dan tidak perlu disimpan
• Harga 128 ditambahkan ke harga exponent yang sebenarnya untuk disimpan di
exponent field.
• Base = 2
60
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
Range bilangan yang dapat direpresentasikan dalam 32 bit word seperti pada Gambar
4.8.
integer (2's complement)
-231 0 231-1
neg. neg. pos. pos.
bil. negatif bil. positif
overflow underflow underflow overflow
-(1-2 -24) x 2127 -0.5 x 2-128 0 0.5 x 2-128 (1-2 -24) x 2127
Gambar 4.8 Representasi Bilangan Floating Point 32 bit
Tidak ada representasi untuk harga 0, tetapi floating point representation menggunakan
special bit pattern untuk menyatakan zero.
Overflow : apabila operasi arithmetic dengan exponent lebih besar dari 127
Underflow : apabila operasi arithmetic dengan exponent lebih kecil dari –128
Untuk setiap format bilangan, ada trade off antara range dan precision.
Jika jumlah bit pada exponent ditambah, range bilangan ditambah. Tetapi akibatnya
precision akan dikurangi, karena jumlah bitnya fix.
Untuk meningkatkan range dan precision sekaligus, harus digunakan jumlah bit yang
lebih banyak. Biasanya pada komputer terdapat single precision (32 bit) atau double
precision (64 bit).
Beberapa contoh :
• Arsitektur IBM S/370 menggunakan base 16, formatnya terdiri dari 7 bit exponent, 24
bit significand. Lihat Gambar 4.9.
Mis : 0.11010001 * 210100 = 0.11010001 * 16101
61
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
S Exponent Significand
0 1 7 8 31
S Exponent Significand
0 1 7 8 63
Gambar 4.9 Representasi Bilangan 32 bit dan 64 bit dari Komputer IBM S/370
Karena menggunakan base 16, perubahan 1 bit pada exponent equivalent dengan
perubahan 4 bit pada significand. Lebih mudah melihat significand yang terdiri dari
6 hexadecimal digit daripada 24 bit.
Harga 0 pada format 370 berupa word yang semua digitnya 0.
Digunakan normalisasi, leftmost hexadecimal digit tidak sama dengan 0.
• VAX
Format 32 bit VAX menggunakan 8 bit exponent dengan base 2 dan 23 bit
significand untuk normalisasi. Bit 1 harus diletakkan di kanan radix point. Karena
bit ini tidak perlu dituliskan, berarti total ada 24 bit significand.
Significand menempati bit 16 sampai 31 dan 0 sampai 6
Significand S Exp Sig
31 16 15 14 7 6 0
63 16 15 14 7 6 0
63 16 15 14 43 0
Gambar 4.10 Representasi Bilangan 32 bit dan 64 bit Komputer VAX
Untuk harga exponent dari 1 s/d 255 dinyatakan dengan bias, sehingga binary
exponent yang sebenarnya adalah dari –127 s/d 127.
Harga 0 yang tersimpan bersama dengan sign bit = 0 menyatakan harga 0.
62
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
VAX menawarkan 2 macam format 64 bit, memberikan trade off antara range dan
precision. Format pertama dengan 8 bit exponent, format kedua dengan 11 bit
exponent.
Dimana :
X = Xs BXe
Y = Ys BYe
Untuk penjumlahan dan pengurangan, kedua operand harus mempunyai exponent
yang sama, untuk menyamakan exponent diperlukan pergeseran radix point.
63
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
Problem :
Exponent overflow ( + ∼ atau - ∼ )
Exponent underflow (≅ 0)
Significand underflow -> perlu rounding
Significand overflow -> perlu alignment
Pada floating point arithmetic penjumlahan dan pengurangan lebih kompleks dari
perkalian dan pembagian. Lihat flowchart pada Gambar 4.12.
Ada 4 step untuk proses penjumlahan / pengurangan :
1. Cek untuk 0
2. Align significand
3. Penjumlahan / pengurangan significand
4. Normalisasi hasil perhitungan
Contoh :
123 x 100 + 456 x 10-2
= 123 x 100 + 4.56 x 100
= 237.56 x 100
Alignment didapat dengan menggeser bilangan yang lebih kecil ke kanan (menaikkan
exponent) -> digit yang hilang relatif lebih kecil. Proses alignment dilakukan dengan
mengulangi pergeseran significand 1 digit ke kanan dan menambah exponent sampai
kedua exponent sama. Jika hasilnya 0, bilangan yang lain merupakan hasilnya.
Kemudian dua significand ditambahkan. Apabila overflow 1 digit, significand digeser
ke kanan dan exponent ditambah. Selanjutnya proses normalisasi, yaitu pergeseran
significand digit ke kiri sampai most significand digit menjadi non zero. Tiap pergeseran
menyebabkan pengurangan harga exponent. Akhirnya, hasil harus dibulatkan
(rounded).
64
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
substract
ubah sign Y
X=0 No Y=0 No
add
? ?
Yes Yes
Z=Y Z=X
return
No
increment smaller
exponent
shift significand
right
No
significand = 0
?
Yes
letakkan bilangan
yang lain di Z
return
65
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
hasil Yes
tambahkan rounding
A ternormalisasi
significand result
?
No
return
Yes significand = 0
Z=0 geser significand
?
ke kiri
No
return
significand decrement
No
overflow exponent
?
Yes
No exponent
geser significand
underflow
ke kanan
?
Yes
increment laporkan
exponent underflow
return
exponent No
overflow
?
Yes
laporkan
overflow
return
66
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
perkalian
Yes Yes
Z=0
kurangkan
bias
return
No
No
return
kalikan
significand
normalisasi
rounding
return
67
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
pembagian
Yes Yes
Z=0 Z=~
tambahkan
bias
return
No
No
return
bagi
significand
normalisasi
rounding
return
68
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
Guard Bit
Sebelum dilakukan operasi floating point, exponent dan sign disimpan dalam register.
Panjang register > panjang sign + implied bit, register berisi guard bit, untuk menambah
sisi kanan significand dengan 0.
Contoh :
Format IEEE dengan 24 bit significand, termasuk implied bit.
X = 1.00 … 00 * 21
Y = 1.11 … 11 * 20
Bilangan yang lebih kecil digeser 1 bit ke kanan untuk exponent alignment.
X = 1.000 … 00 * 21
- Y = 0.111 … 11 * 21
Z = 0.000 … 01 * 21
= 1.000 … 00 * 2-23
(tanpa guard bit)
Y kehilangan 1 bit significand -> hasil = 2-23.
X = 1.000 … 00 0000 * 21
- Y = 0.111 … 11 1000 * 21
Z = 0.000 … 01 1000 * 21
= 1.000 … 00 0000 * 2-24
(dengan guard bit)
Tidak ada bit yang hilang pada saat alignment -> hasil=2-24.
Beda dengan faktor 2 terhadap hasil sebelumnya.
X = .100000 * 161
- Y = .0FFFFF * 161
Z = .000001 * 161
= .100000 * 16-4
(hexadecimal, tanpa guard bit)
X = .100000 00 * 161
- Y = .0FFFFF F0 * 161
Z = .000000 10 * 161
= .100000 00 * 16-5
(hexadecimal, dengan guard bit)
Rounding (truncation)
Apabila hasil perhitungan akan disimpan dalam format floating point, kelebihan bit
harus dibuang.
69
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
RINGKASAN
Pada modul ini anda mempelajari dua macam representasi bilangan, yaitu bilangan
integer/fixed-point dan bilangan floating point.
Untuk bilangan fixed point, anda mempelajari empat macam proses arithmetic, yaitu
penjumlahan, pengurangan, perkalian dan pembagian. Bilangan biner dipakai
representasi 2’s complement. Untuk perkalian, ada mempelajari dua macam perkalian,
yaitu unsign integer dan perkalian 2’s complement. Untuk pembagaian, anda langsung
mempelajari pembagian dengan 2’s complement.
Untuk bilangan floating point, anda mempelajari dua macam representasi bilangan,
yaitu dengan base 2 dan base 16. Untuk arithmeticnya, ada empat macam proses, yaitu
penjumlahan/pengurangan, perkalian dan pembagian. Terakhir anda mempelajari
proses pembulatan bilangan floating point.
70
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...
LATIHAN/TUGAS
1. Hitung perkalian unsign integer sbb dengan algoritma perkalian unsign :
9 x 12
3. Hitung pembagian bilangan sign integer sbb dengan algoritma perkalian unsign :
9 / -4
-9 / 4
5. Nyatakan bilangan di bawah ini dalam format 32 bit floating point, dimana
exponent base =2, exponent size = 8 bit, sign = 1 bit, significant size = 22 bit,
digunakan bias, normalisasi dan implicit bit
a). -0.5 b). 1.25 c). 3/128 d). 12
71
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
TUJUAN
Setelah selesai mempelajari modul ini anda dapat :
1. Memahami proses eksekusi instruksi didalam prosesor sampai pada level
machine language.
2. Mampu menuliskan signal control/microinstruction untuk suatu instruksi
bahasa assembly
3. Memahami proses implementasi signal control dengan dua macam cara,
yaitu hardwired (secara hardware) dan microinstruction (secara software).
PRASYARAT
Mahasiswa telah memahami addressing mode
Mahasiswa telah memahami beberapa rangkaian logika sederhana.
DESKRIPSI
Pada modul ini akan dibahas mengenai langkah-langkah penulisan signal control
yang diperlukan untuk menjalankan hardware dari perintah yang diberikan
programmer dalam bahasa assemby. Setelah itu akan dibahas bagaimana cara
implementasi signal control itu dengan cara hardwired (menggunakan hardware)
dan dengan microprogrammed (cara software).
URAIAN
Pada Modul 3 anda telah mempelajari komputer dari sudut pandang seorang
programmer. Sekarang kita akan melanjutkan untuk mempelajari organisasinya dan
cara pengoperasian beberapa komponen yang membangun suatu sistem komputer,
yaitu Central Processing Unit (CPU), Input Output(I/O) dan Memory.
Dalam bentuk yang paling sederhana, sistem komputer mempunyai suatu
unit yang mengeksekusikan instruksi dari suatu program. Unit ini berkomunikasi
dan mengontrol operasi dari sistem yang lain didalam komputer, disebut dengan
Central Processing Unit (CPU).
Fungsi yang penting dari CPY adalah melakukan fetch dan eksekusi instruksi.
Algoritma untuk menyelesaikan suatu masalah terdiri dari beberapa step yang
harus dilaksanakan dengan urutan yang tertentu. Untuk implementasi pada
komputer, step-step dibagi menjadi sejumlah step-step yang lebih kecil, dimana tiap
step ini menyatakan satu instruksi dalam bahasa mesin. Hasilnya adalah program
dalam bahasa mesin yang menggantikan algorithm itu.
72
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
KONSEP DASAR
Suatu program terdiri dari instruksi-instruksi yang disimpan dalam lokasi
memory yang berurutan. Untuk mengeksekusikan program ini, CPU mem-fetch
instruksi satu persatu dan melaksanakan fungsi yang dispesifikasikan. Semua
instruksi akan dieksekusikan secara berurutan, kecuali ada instruksi branch atau
jump. Diasumsikan bahwa tiap instruksi menempati satu word didalam memory.
Untuk mengeksekusikan instruksi, CPU melaksanakan tiga step :
1. Fetch isi lokasi memory yang ditunjuk oleh PC (program counter). Lokasi ini
berisi instruksi yang akan dieksekusikan dan diload ke IR (instruction
register) :
IR [[PC]]
2. PC [PC] + 1
3. Melaksanakan tugas yang dispesifikasikan oleh instruksi di IR.
Step 1 dan 2 disebut dengan fetch phase, step 3 disebut dengan execution phase.
Secaraumum, 3 step diatas digunakan untuk melaksanakan funsgi-fungsi sebagai
berikut :
1. Fetch isi lokasi memory dan diload ke register CPU.
2. Menyimpan satu word data dari register CPU ke lokasi memory.
3. Mentransfer 1 word data dari register CPU ke register yang lain atau ke
ALU.
4. Melaksanakan operasi arithmetic dan logic dan menyimpan hasilnya dalam
register CPU.
73
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
Selang waktu untuk menunggu MFC dapat dimanfaatkan untuk operasi lain di CPU
yang tidak melibatkan MDR dan MAR, contoh : menambah isi PC.
Catatan :
Ada dua macam cara transfer antara dua device (misalnya antara CPU dan main
memory), yaitu : synchronous transfer dan asynchronous transfer.
Asynchronous transfer : adalah suatu mekanisme transfer dimana satu device
menginisialisasi transfer data (read request signal) dan menunggu device lain
memberikan respon berupa acknowledgement signal, contoh : MFC signal. Dengan
diterimanya acknowledgement signal, dipastikan bahwa data sudah diterima
ditujuan. Mekanisme ini memungkinkan transfer data antara dua device yang
berbeda kecepatan transfernya.
Synchronous transfer : adalah suatu mekanisme transfer,dimana salah satu control
line akan menghasilkan pulsa dari suatu clock yang mempunyai frekuensi yang
tetap. Pulsa ini akan memberikan timing signal yang sama ke CPU dan main
memory . Operasi memory diselesaikan dalam satu periode clock. Diasumsikan
bahwa dalam satu periode clock data yang dikirim sudah diterima ditujuan. Sistem
ini lebih mudah diimplementasikan. Masalahnya, mekanisme ini tidak bisa dipakai
untuk device yang berbeda jauh kecepatannya, jadi harus mengikuti device yang
paling lambat kecepatannya.
Step 1 dan 2 dapat dilaksanakan bersama-sama, jika dua transfer tersebut tidak
menggunakan data path yang sama.
Register Transfer
Untuk melaksanakan data transfer antar block, harus disediakan gate input dan
output. Gate tersebut dapat dibuat enable dan disable dengan memberi sinyal logic
1 dan logic 0. Lihat Gambar 5.1.
74
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
Input dan output gate untuk register Ri dikontrol oleh sinyal Ri in dan Ri out. Jika Ri
in diset ke 1, data yang terdapat pada bus di load ke Ri. Jika Ri out diset ke 1, isi Ri
ditempatkan pada bus. (isi Ri yang lama masih berada didalam Ri). Jika Ri out =0,
bus dapat digunakan untuk transfer data dari register yang lain.
Contoh :
Untuk mentrasfer isi register R1 ke R4 diperlukan operasi sebagai berikut :
- Enable output gate dari register R1 (R1out=1) -> isi R1 ditempatkan ke CPU bus.
- Enable input gate register R4 (R4in =1) -> data dari CPU bus diload ke register
R4.
75
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
Sinyal yang namanya dituliskan, akan diaktifkan (diset ke 1), sinyal yang lain tidak
aktif (diset ke 0)
Keterangan :
Step1 : isi R1 ditransfer ke register Y
Step 2 : isi R2 dikirim ke Bus (input B dari ALU), Isi register Y selalu tersedia
pada input A dari ALU, sinyal ADD diset ke 1, terjadi penjumlahan dua
bilangan pada input A dan B, dari ALU, penjumlahan di load ke register Z
(Zin enable)
Step 3 : isi register Z ditransfer ke register R3
76
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
Bila Zin = 1, state dari flip-flop berubah sesuai dengan data pada bus. Bila Zin
berubah dari 1 ke 0, data tetap tersimpan. Untuk hubungan dengan bus, digunakan
77
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
electroic switch yang mempunyai tiga state, yaitu : 1, 0 atau open, karena itu disebut
dengan Three State Output. Lihat Gambar 5.4
Sebagai alternatif dapat digunakan open collector (untuk bipolar) atau open drain
(untuk MOS)
Switch akan open apabila gate output pada state 1 dan akan close apabila gate
output pada state 1 dengan pull up resistor. Bila salah satu gate output berubah ke
state 0, makan switch akan close dan bus di pulldown ke state 0. Hubungan ini
disebut dengan hubungan WIRED-AND.
Untuk menggantikan Three State Output gate dapat digunakan Open Collector
Nand Gate.
Bila Zout =1, maka bit yang tersimpan dikirim ke bus.
Bila Zout = 0, bus berada pada State 1, maka bus dapat digunakan oleh register yang
lain.
Kalau pada bagian sebelumnya, anda baru mempelajari penulisan control signal
untuk proses eksekusi, maka pada bagian ini anda akan mempelajari penulisan
control signal untuk keseluruhan proses mulai fase fetch sampai selesai fase
eksekusi.
Contoh :
Instruksi untuk menambahkan isi lokasi memory LOC ke register R1. Diasumsikan
bahwa address LOC terdapat pada address field dari instruksi (mode Absolute).
Untuk mengeksekusikan instruksi tersebut, maka operasinya secara garis besar
adalah :
78
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
Step Action
1. PCout, MARin, Read, Clear Y, Set Carry in to ALU, Add, Zin
2. Zout, PCin, Wat for MFC
3. MDRout, IRin
4. Address-field-of Irout, MARin, Read
5. R1out, Yin, Wait for MFC
6. MDRout, Add, Zin
7. Zout, R1in, End
Keterangan :
Step 1 s/d step 3 : fase fetch, proses ini akan sama untuk semua instruksi
Step 4 s/d step 7 : execution phase
Pada step 4, field address dari IR yang berisi address LOC, dikirim ke MAR dan
diberikan sinyal Read ke memory.
Branching
Proses branching adalah proses dimana eksekusi instruksi dilaksanakan tidak
sequential (berurutan). Mekanismenya : isi PC sebelumnya diganti dengan branch
address., dimana branch address dihitung dengan :
Contoh :
79
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
Step Action
1. PCout, MARin, Read, Clear Y, Set Carry in to ALU, Add, Zin
2. Zout, PCin, Wat for MFC
3. MDRout, IRin
4. PCout, Yin
5. Address-field-of-IRout, Add, Zin
6. Zout, PCin, End
Pada step 4 isi PC ditransfer ke register Y, pada step 5 offset X dikirim ke bus dan
dilakukan proses penambahan.
Untuk conditional branch, perbedaannya adalah adanya pengecekan status dari
condition code sebelum meload harga yang baru ke PC.
Ada dua cara untuk menghasilkan control signal, yaitu dengan cara hardware,
disebut dengan hardwired dan dengan cara software, disebut dengan
microprogramed control.
Hardwired Control
Inti dari rangkaian hardwired ini adalah rangkaian encoder. Lihat Gambar 5.5.
Encoder merupakan rangkaian combinational yang menghasilkan control signal
sesuai dengan state yang diberikan dari semua input.
80
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
Time slot T yang dihasilkan harus cukup panjang untuk melaksanakan fungsi yang
ditentukan oleh instruksi yang diberikan. Diasumsikan semua time slot mempunyai
duration yang sama.
Encoder akan menggabungkan inputan berupa INS, T, status flag dan condition
code untuk menghasilkan signal control. Signal control ini akan dikeluarkan oleh
encoder satu signal pada satu saat. Status flag adalah sinyal yang menyatakan state
dari berbagai bagian CPU dan control line yang dihubungkan ke CPU, misalnya :
MFC signal.
Untuk masing-masing instruksi yang diload ke IR, salah satu output line INS1 s/d
INSn diset ke 1, sedangkan yang lain diset ke 0.
Semua sinyal input ke block encoder haris dikombinasikan untuk menghasilkan
sinyal kontrol Yin, PCout, Add, End dan sebagainya.
81
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
Artinya adalah control signal Zin akan di-on-kan selama time slot T1 untuk semua
instruksi, selama T6 untuk instruksi ADD dan seterusnya.
T1 sama untuk semua instruksi, sebag terjadi pada saat fetch phase.
Contoh lain : control signal End pada Gambar 5.7 dihasilkan dari fungsi logic :
END = T7.ADD + T6.BR + (T6.N + T4.N). BRN + …..
Microprogrammed Control
Pada microprogrammed control, control signal dinyatakan berupa bit-bit yang
membentuk satu word yang dinamakan Control Word (CW). Tiap Control Step
82
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
pada control sequence dari instruksi dinyatakan berupa kombinasi digit 1 dan 0
pada CW.
Contoh : CW untuk step 5,6 dan 7 dari instruksi “menambahkan isi lokasi memory
LOC ke register R1” dapat dilihat pada Gambar 5.8.
83
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
Kesimpulan :
1. Microprogramm mendefinisikan instruction set dari komputer. Untuk
mengubah instruction set, cukup diubah isi dari microprogram memory,
sehingga hal ini memberikan fleksibilitas yang tinggi.
2. Isi dari microprogram memory jarang diubah, sehingga biasanya disimpan
dalam ROM.
3. Eksekusi instruksi memerlukan fetch yang berulangkali ke microprogram
memory, sehingga speed dari computer sangat dipengaruhi oleh speed dari
microprogram memory.
4. Jika keseluruhan CPU dibuat berupa single chip, microprogram ROM
merupakan bagian dari chip tersebut.
RINGKASAN
Pada modul ini anda telah belajar cara menuliskan control signal untuk suatu
instruksi mulai dari fase fetch sampai fase eksekusi. Selain itu anda telah belajar
bagaimana mengimplementasikan control signal tersebut baik menggunakan
hardware maupun menggunakan software.
84
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit
LATIHAN/TUGAS
1. Tuliskan control signal lengkap untuk melaksanakan proses-proses di bawah ini,
meliputi fase fetch & fase eksekusi pada organisasi cpu single bus,
diasumsikan 1 instruksi menempati lokasi memory sebesar 1 word
85
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
TUJUAN
Pada modul ini anda akan belajar untuk memahami proses transfer data antara CPU
dengan I/O device, bagaimana caranya proses tersebut dapat dilaksanakan dengan 3
metode transfer data :
– Program controlled I/O
– Interrupt
– Direct Memory Access (DMA)
PRASYARAT
Mahasiswa telah mengerti prinsip addressing mode dan pemahaman bahasa assembly
DESKRIPSI
Pada modul ini akan dibahas tiga cara untuk melakukan transfer data antara komputer
dengan Input Output device, yaitu Programmed Control I/O, Interrupt dan Direct
Memory Access. Khusus untuk interrupt akan dibahas mendalam untuk single line
interrupt dan multiple line interrupt.
Akan dibahas pula timing diagram untuk rangkaian interface yang menghubungkan
komputer dan Input Output device
URAIAN
PENDAHULUAN
General purpose computer harus mempunyai kemampuan untuk berhubungan dengan
berbagai macam device pada berbagai environment :
o Standard I/O : video terminal, printer, plotter, magnetic disk, disk drive, tape drive.
o Industrial control : digital output voltmeter, temperature sensor, fire alarm (input),
motor, valve, robot (output).
86
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
MEMORY
I/O BUS
CPU
DEVICE 1 DEVICE h
Gambar 6.1 Hubungan Antara Memory, CPU dan I/O Device Melalui Bus
Tiap device diberi kode identifikasi (ADDRESS), sehingga CPU dapat memilih device
dengan menempatkan address-nya pada address line. Hanya device yang mengenali
address tersebut dapat memberi respons pada command dari CPU yang diberikan pada
control line.
Pada single-bus, memory dan I/O menggunakan bus yang sama. Untuk membedakan
digunakan I/O control line pada bus.
Bila line aktif, hubungan dengan I/O. Bila line tidak aktif, hubungan dengan memory.
Sebagai alternatif (untuk single-bus), I/O device diberi address di dalam memory
address space dari computer. → Memungkinkan untuk mengakses I/O device sama
seperti lokasi memory. Metode ini disebut memory-mapped I/O. tidak diperlukan
intruksi I/O yang khusus, cukup intruksi move ke/dari lokasi memory.
Contoh : untuk 68000
Move . B INBUF, MEM Lokasi memory
Memory-mapped I/O lebih fleksibel, untuk operasi I/O dan memory digunakan intruksi
dan addressing mode yang sama.
PDP-11 dan 68000 menggunakan memory-mapped I/O. Intel microprocessor dapat
menggunakan memory – mapped I/O atau mapped I/O.
87
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
Address
Control
I/O
Control Interface
I / O interface untuk input device
Circuit
Input Device
Pada Gambar 6.2 ditunjukkan hubungan antara input device misalnya keyboard ke CPU
bus melalui rangkaian interface yang berupa hardware. Dimana dalam interface
tersebut terdapat beberapa bagian sebagai berikut :
Address Decoder : Untuk mendeteksi address dari CPU.
Data Register : Untuk menyimpan (HOLD) data dari / ke CPU.
Status Register : Untuk mendeteksi status dari device.
Contoh :
Program untuk mentransfer 80 character dari memory ke printer mulai lokasi memory
loc.
Register R0 (A0) sebagai POINTER
Register R1 (B0) sebagai COUNTER
Status register : LPR status
88
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
PDP-11 PROGRAM :
MEMORY CYCLE
Mov # LOC, R0 2
Mov # -80, R1 2
Wait : TSTB @# LPR status 3
BPL wait 1
Mov B (R0)+, @# LPR out 4
INC R1 1
BNE wait 1
Untuk mentransfer 1 karakter diperlukan banyak intruksi & memory cycle → overhead
untuk device yang memerlukan sinkronisasi dan transfer data yang cepat
(contoh : disk drive), tidak dapat digunakan program-controlled I / O.
Fungsi-fungsi pada program-controlled I / O harus diganti dengan hardwired controller.
→ DMA.
Pada contoh diatas , DMA menggunakan :
o Dua counter register untuk generate memory address & word count.
o Register untuk menyimpan perintah untuk melaksanakan fungsi yang diperlukan.
Register tersebut harus dihubungkan ke BUS dan diberi address, karena controller
register tersebut perlu diinisialisasi oleh CPU di bawah control program.
Untuk memulai transfer data antara disk drive program memberikan informasi ke
register DMA sebagai berikut :
o Memory address
o Word count
o Address dari data pada disk
o Fungsi yang akan dilaksanakan ( read / write ).
Kemudian DMA controller melaksanakan fungsi yang dispesifikasikan secara
independent. Pada saat DMA mentransfer data program yang meminta transfer tidak
dapat diteruskan. CPU dapat digunakan untuk mengeksekusikan program lain. Setelah
DMA transfer selesai, CPU dapat kembali ke program yang meminta transfer. Untuk
mengatur program dan inisialisasi DMA digunakan operation fetch. Setelah transfer
DMA selesai DMA controller memberikan sinyal control (berupa interrupt) ke CPU dan
ready bit dari status register diset ke 1.
Bila CPU dan DMA controller mencoba untuk mengakses main memory pada saat yang
sama, terjadi konflik. Harus ada prioritas, dengan prioritas tertinggi pada high speed
device. Bila mayoritas memory access pada CPU dan DMA dilanggar “mencuri”
memory cycle dari CPU. Hal ini dinamakan CYCLE STEALING . Pada Gambar 6.3
ditunjukkan suatu DMA controller yang menghubungkan Input Output yang berupa
disk dan printer dengan main memory melalui bus.
89
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
DMA
CONTROLLER
DISK HIGH-SPEED
UNIT PRINTER
BUS
MAIN
CPU
MEMORY
INTERRUPT
Diperlukan metode untuk mengatur aktivitas device yang terhubung ke computer.
Status dari device dinyatakan dengan ready bit, yang diset bila device ready untuk
transfer data. Program harus melakukan POLL untuk mentest status bit. Perlu wait
loop, CPU tidak dimanfaatkan maksimal. Supaya CPU dapat melaksanakan hal lain
sementara menunggu device ready, I / O harus memberitahu CPU jika ready →
INTERRUPT SIGNAL
Untuk ini digunakan control line : INTERRUPT REQUEST LINE.
I / O device akan mengaktifkan line ini bersamaan dengan ready bit di status register.
Wait loop dapat dimanfaatkan untuk hal lain yang berguna.
Routine yang memberi response pada interrupt – request disebut interrupt service
routine. Lihat Gambar 6.4
Interrupt mirip dengan pemanggilan subroutine. Misalkan interrupt terjadi pada saat
eksekusi intruksi i. CPU menyelesaikan eksekusi intruksi i. PC di load dengan address
awal dari ISR. Isi update PC ( i + 1 ) di simpan di stack . intruksi return form interrupt
pada akhir ISR reload PC. Dari stack dan melanjutkan eksekusi i+1. untuk memberi
informasi pada device bahwa request sudah diterima, CPU mengirimkan sinyal
interrupt–acknowledge dan interrupt-request dihentikan.
Alternatif : eksekusi instruksi pada ISR yang mengakses status / data register pada
interface sekaligus memberi informasi pada device bahwa interrupt request diterima.
90
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
PROGRAM 1 PROGRAM 2
Compute Routine Print Routine
1
2
i .
i+1 .
.
m
Gambar 6.4 Proses Calling Interrupt Service Routine dari Main Program
INTERRUPT HANDLING
91
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
IDENTIFIKASI DEVICE
Gambar 6.5 Beberapa I/O Device Sharing satu Interrupt Request Line
92
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
Semua device terhubung ke interrupt request line yang sama. Digunakan open collector
organization. Bila interrupt request signal INTR1 …. INTRn tidak aktif (Ø state),
interrupt request line berada pada high-voltage disebut inactive state. Lihat Gambar 6.5.
Bila 1 device meminta interrupt disebut switch close.
Line ke low state (active state).
INTR = INTR 1 + . . . . + INTRn
Interrupt request signal diberi symbol INTR, karena signal low pada saat aktif. Untuk
mengenali device, perlu dilihat status register dari device apakah sudah ready bit. ISR
melakukan polling pada device dengan order yang tertentu. Device pertama yang
dijumpai dengan ready bit diset akan di service. Polling merupakan metode yang
sederhana. Kerugiannya adalah waktu yang terbuang untuk mencek status bit dari
semua device.
VECTORED INTERRUPT
Device yang meminta interrupt dapat mengirimkan identifikasinya dengan
mengirimkan special code ke CPU melalui BUS. Hal ini biasa disebut dengan
identifikasi individual device. Kode yang diberikan device merupakan address awal
dari ISR untuk device tersebut. Untuk komputer kecil hanya berbeda bit dari address
yang diberikan, sisanya fix. Sehingga jumlah device yang dapat diidentifikasi terbatas.
Contoh : 4 bit code → 16 device yang dapat dikenali, tiap kode dapat diberikan pada 1
group device. ISR akan melakukan polling pada anggota group yang dinyatakan oleh
code tersebut. Metode diatas, dimana CPU akan melaksanakan eksekusi ISR sesuai
dengan kode yang diberikan device disebut VECTORED INTERRUPT.
ISR untuk device tertentu selalu mulai dari lokasi yang sama.
Untuk mendapat flexibilitas :
Code yang diterima oleh CPU digunakan sebagai indirect address dari starting address
ISR. Code ini adalah address dari lokasi memory yang berisi starting address. Isi dari
lokasi ini (harga PC yang baru ) disebut interrupt vector. Setelah menerima interrupt,
CPU melakukan delay dan setelah ready, akan mengaktifkan interrupt acknowledge
(INTA). Setelah itu device interface akan menempatkan interrupt vector pada data line
dan mematikan sinyal INTR.
INTERRUPT NESTING
Interrupt harus dibuat diable selama eksekusi ISR, supaya tidak mengakibatkan lebih
dari satu interrupt. Apabila ada beberapa device, ISR harus selesai dulu sebelum
interrupt request yang kedua diterima CPU. Umumnya delay oleh ISR tidak lama
(acceptable).
Untuk beberapa device, long delay dapat menyebabkan error. Contoh : real time clock
yang mengirimkan interrupt request ke CPU pada interval tertentu. Untuk setiap
request, CPU melaksanakan ISR yang pendek untuk mengubah counter di memory
(jam, menit, detik). Interrupt request dari clock harus diterima selama eksekusi ISR dari
device lain (harus ada prioritas). Interrupt request dari high priority device harus
93
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
diterima pada saat CPU memberi service pada device dengan prioritas lebih rendah.
Multiple level priority, selected device, tergantung dari prioritas device. CPU diberi
priority level yang dapat diubah oleh control program. Priority level dari CPU adalah
prioritas dari program yang sedang dieksekusikan. CPU hanya menerima interrupt dari
device yang lebih tinggi prioritasnya dari priority level. Priority level diubah sesuai
dengan prioritas dari device tersebut. Disable interrupt dari device dengan level sama
atau lebih rendah. Priority CPU di encode pada beberapa bit dari processor status word.
Processor dapat diubah oleh intruksi yang hanya dapat dieksekusikan oleh operating
system, tidak oleh user program.
INTRp
CPU
INTR INTR
DEVICE 1 DEVICE 2 DEVICE
INTA INTA p
INTA
Priority Arbitration
SIMULTANEOUS REQUEST
Apabila ada 2 device memberikan interrupt request secara simultan, salah satu
mendapat service dan yang lain diabaikan. Dengan priority arbitration circuit, CPU
menerima request dengan highness priority. Apabila beberapa device share 1 interrupt
request line perlu mekanisme yang berbeda. Dengan polling, prioritas diberikan secara
otomatis sesuai dengan order dari polling. Dengan vectored interrupt, prioritas
ditentukan dari connection ke CPU. Cara yang digunakan secara luas adalah daisy
chain. Lihat Gambar 6.7.
94
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
INTR
CPU
DEVICE 1 DEVICE 2 DEVICE n
Interrupt request line sama untuk semua device (INTR). Interrupt acknowledge line
(INTA) dihubungkan dengan daisy chain. Bila beberapa device memberikan INTR
bersamaan, CPU menset INTA line ke 1, diterima oleh device 1. jika device 1
memerlukan service, ia memblock INTA, meletakkan kode identifikasi ke data line. Jika
device 1 tidak memerlukan service, INTA dilewatkan ke device 2. berarti highnest
priority dimiliki oleh device yang terdekat ke CPU (secara electrical). Keuntungan daisy
chain adalah kabel yang diperlukan lebih sedikit dari individual connection. Kedua
skema dapat digabungkan untuk mendapatkan struktur yang lebih umum, digunakan
di PDP-11 dan 68000.
INTR1
CPU
DEVICE DEVICE
DEVICE DEVICE
95
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
15 14 12 8 7 5 4 3 2 1 0
T N Z V C
Interrupt request diterima bila I/O device mempunyai prioritas lebih tinggi dari
prioritas pada CPU.
Urutan proses :
- CPU menerima Int. Request dari device
- CPU mengirim Int. Acknowledge ke device
- Device turn-off Int. Request
- Device mengirimkan It-Bit Address dasri interrupt vector
- CPU menyimpan isi PC & PS ke stack
- Word I dari Int. Vector di Load ke PC
- Word II dari Int. Vector di Load ke PS
- Instruksi return-FRLM-Interrupt (RTI) mengembalikan return address dan isi PS
(yang lama) dan stack ke PC dan PS.
- Interrupted program dilanjutkan.
JENIS-JENIS INTERRUPT
Ada beberapa penggunaan interrupt selain untuk mengontrol I/O transfer.
- Recovery From Error
Bila terjadi error pada hardware, control hardware akan mendeteksi dan
memberikan informasi ke CPU dengan memberikan interrupt.
Contoh : Parity check code pada main memory
Bila terjadi error pada saat mengeksekusi instruksi, CPU akan meng-interrupt program.
Contoh : Opcode Field Ilegal, Division By Zero
CPU akan menangani jenis interrupt ini sama dengan pada I/O Int. Request.
ISR akan memperbaiki error atau memberi informasi pada user.
Pada I/O Interrupt : Current Instruction diselesaikan dahulu eksekusinya.
Pada error Interrupt : CPU langsung memberikan service
96
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
- Debugging
Debugger program : untuk menemukan error pada program.
I/O Interface
Fungsi I/O Interface adalah mengkoordinasi transfer data antara CPU dan external
device.
Fungsi-fungsi tersebut :
- Menyimpan status dari device pada device status register.
- Menyediakan tempat penyimpanan (data buffer register) untuk 1 char / 1 word.
- Mendeteksi device address.
- Memberikan sinyal timing dan gating untuk melengkapi transfer data / status
information.
Control line digunakan untuk :
- Koordinasi data transfer melalui bus
- Menangani request untuk interrupt dan DMA
- Mendeteksi catu daya, instalasi system
Sinyal control untuk transfer data antara CPU dan I/O Device digunakan untuk 2 hal :
- Mode Transfer
Menentukan operasi read atau write yang akan dilaksanakan.
Read / waite line :
Diset 1 untuk Read
Diset 0 untuk Write
- Timing Information
Sinyal ini menentukan saat dimana CPU dan I/O Device dapat menempatkan data
pada bus atau menerima data dari bus.
97
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
- Synchronous
- Asynchronous (read / write → request ; WMFC → acknowledge)
SYNCHRONOUS
Semua device mendapatkan timing information dari clock yang sama. Tiap interval
(yang sama) merupakan 1 “bus-cycle”, pada interval tersebut terjadi 1 data transfer.
Bus
Data
t0
t3
t1 Bus t2
Address dan data line dapat high and low pada saat yang sama. Ada yang high ada
yang low. Pattern berubah tiap perpotongan.
Operasi input
Timing diagram untuk proses input synchronous dapat dilihat pada Gambar 6.10.
Time t0 :
- CPU mengirimkan address dari device pada address line
- Mode diset ke operasi input
Lebar pulsa clock t1 – t0 harus > max propagation delay antara CPU dan Dence yang
terhubung ke bus dan harus cukup waktu untuk mend-decode address dan control
signal, sehingga device siap pada t1.
Time t1 :
Addressed device, mengirimkan data input ke data line.
Time t2 – t1 :
CPU me-load data ke input buffer (MDR)
Delay ini harus > max bus propagation time + set up time untuk input buffer CPU.
Time t2:
Bus line di-clear untuk bus cycle yang baru.
98
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
Operasi Output
Sama dengan operasi input CPU mengirimkan data output ke data line, bersamaan
dengan address dan mode information.
Pada time t1, addressed device menerima data dalam data buffer.
Asynchronous
Tidak ada clock, tetapi berdasarkan “handshake” antara CPU dan device yang
digunakan.
Clock line diganti dengan 2 timing control line :
- Ready
- Accept
Proses data transfer dengan menggunakan handshake protocol :
- CPU mengirim address dan mode information ke bus
- CPU mengirim pulsa pada ready line
- Bila device menerima sinyal ready, akan mengirim pulsa pada accept line
- CPU menerima sinyal accept, clear bus dan menyimpan data ke input buffer
Addres
s &
Ready dari
Accept
Data
t0 t1 t2 t3 t4 t5
Bus Cycle
99
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
Timing diagram untuk proses input asynchronous dapat dilihat pada Gambar 6.11.
Prosesnya adalah sebagai berikut :
t0 : CPU menempatkan address dan mode information ke bus.
t1 : CPU menset ready line ke 1 → address dan mode ready
Delay t1 – t0 untuk mengantisipasi adanya skew pada bus
Skew : dua signal dikirim bersamaan dari 1 source tetapi sampai di tujuan pada
waktu yang berbeda. Ini akibat adanya perbedaan propagation speed.
Supaya sinyal ready tidak mendahului address dan mode, t1 – t0 harus > max bus
skew.
Bila address diterima oleh device → di decode dengan delay termasuk periode t1
– t0.
t2 : Setelah interface men-decode address dan mode information, data dikirim dan
internal buffer ke data line. Accept signal diset ke 1. Delay t2 – t1 tergantung dari
jarak CPU dan device interface.
t3 : Accept signal sampai di CPU → input data tersedia line data dan accept signal
dikirim bersamaan max bus skew. Setelah delay CPU menerima data di input buffer
dan ready signal diset ke 0 → data diterima.
t4 : CPU mementingkan address dan mode information max. bus delay t4 – t3 untuk
bus skew.
t5 : Transisi ready signal dari 1 bus diterima device interface data dan accept
dihentikan.
Untuk operasi output, timing hampir sama dengan operasi input. CPU menempatkan
data output ke data line bersamaan dengan pengiriman address dan mode information.
Bila ready signal diterima, device memasukkan data ke buffer output. Setelah proses ini
selesai, accept signal di set ke 1. Proses selanjutnya sama dengan operasi input.
Banyak alternatif penggunaan metode untuk transfer data. Pemilihan design tergantung
banyak faktor, antara lain :
- Kesederhanaan device interface
- Kemampuan device interface untuk memberikan delay yang berbeda
- Total time untuk bus transfer
- Kemampuan untuk mendeteksi error
Metode asynchronous memberikan flexibility dan reliability yang tinggi, tetapi
rangkaian interface lebih kompleks.
Error detection dengan interlock sinyal ready dan accept. Bila sinyal accept tidak
diterima setelah sinyal ready diberikan beberapa saat → diasumsikan terjadi error →
interrupt.
Banyak alternatif penggunaan metode untuk transfer data. Pemilihan design tergantung
banyak faktor, antara lain :
- Kesederhanaan device interface
- Kemampuan device interface untuk memberikan delay yang berbeda
- Total time untuk bus transfer
100
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)
Address
& Mode
Data
Ready
Accept
t0 t1 t2 t3 t4 t5
Bus Cycle
RINGKASAN
Ada tiga metode untuk melakukan transfer data antara komputer dengan I/O device,
yaitu : Programmed Control I/O, Interrupt dan Direct Memory Access (DMA)
LATIHAN/TUGAS
1. Berikan penjelasan mekanisme proses polling.
2. Berikan penjelasan apa yang dimaksud dengan vectored interrupt & jelaskan
mekanismenya
3. Jelaskan apa yang dimaksud dengan daisy chain & mekanisme kerjanya. Jelaskan
juga bedanya dengan multiple level priority
4. Gambarkan timing diagram untuk proses output untuk synchronous transfer.
101
Modul Ajar Arsitektur dan Organisasi Komputer Daftar Pustaka
DAFTAR PUSTAKA
102