Anda di halaman 1dari 106

MODUL AJAR

ARSITEKTUR DAN ORGANISASI KOMPUTER

Oleh:
Djoni H. Setiabudi

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS KRISTEN PETRA
SURABAYA
2012

i
DAFTAR ISI

DAFTAR ISI ............................................................................................................................. i


MODUL 1 - PENDAHULUAN ............................................................................................ 1
TUJUAN .............................................................................................................................. 1
PRASYARAT ...................................................................................................................... 1
DESKRIPSI .......................................................................................................................... 1
URAIAN .............................................................................................................................. 1
RINGKASAN.................................................................................................................... 15
LATIHAN/TUGAS .......................................................................................................... 15
MODUL 2 – STRUKTUR DASAR KOMPUTER.............................................................. 16
TUJUAN ............................................................................................................................ 16
PRASYARAT .................................................................................................................... 16
DESKRIPSI ........................................................................................................................ 16
URAIAN ............................................................................................................................ 16
RINGKASAN.................................................................................................................... 22
LATIHAN/TUGAS .......................................................................................................... 22
MODUL 3 – METODE ADDRESSING ............................................................................. 23
TUJUAN ............................................................................................................................ 23
PRASYARAT .................................................................................................................... 23
DESKRIPSI ........................................................................................................................ 23
URAIAN ............................................................................................................................ 23
RINGKASAN.................................................................................................................... 42
LATIHAN/TUGAS .......................................................................................................... 42
MODUL 4 –PROSES ARITHMETIC DI KOMPUTER .................................................... 43
TUJUAN ............................................................................................................................ 43
PRASYARAT .................................................................................................................... 43
DESKRIPSI ........................................................................................................................ 43
URAIAN ............................................................................................................................ 43
RINGKASAN.................................................................................................................... 70
LATIHAN/TUGAS .......................................................................................................... 71
MODUL 5 – CENTRAL PROCESSING UNIT (CPU) ..................................................... 72
TUJUAN ............................................................................................................................ 72
PRASYARAT .................................................................................................................... 72
DESKRIPSI ........................................................................................................................ 72
URAIAN ............................................................................................................................ 72
RINGKASAN.................................................................................................................... 84
LATIHAN/TUGAS .......................................................................................................... 85
MODUL 6 – INPUT/OUTPUT (I/O) .................................................................................. 86
TUJUAN ............................................................................................................................ 86

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 :

• Memami perbedaan antara arsitektur komputer dan organisasi computer.


• Memahami model abstrak dari suatu komputer
• Memahami cara kerja dari Turing Machine
• Mengenal sejarah perkembangan komputer.

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

ARSITEKTUR DAN ORGANISASI KOMPUTER.


Dalam mempelajari sistem komputer, arsitektur komputer dan organisasi komputer
merupakan dua hal yang tidak bisa dipisahkan dan perlu dimengerti perbedaan
diantara keduanya. Meskipun sulit untuk mendapatkan definisi yang tepat, paling
tidak ada suatu kesepakatan mengenai pembahasan materi apa yang dicakup oleh
masing-masing. (Stallings, 2000)
Arsitektur komputer membahas mengenai atribut-atribut dari sistem
computer yang dilihat oleh seorang programmer, atau dengan kata lain adalah
atribut yang memberikan efek langsung pada eksekusi suatu program. Organisasi
computer membahas operational unit dan hubungan antar unit tersebut yang

1
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan

merealisasikan spesifikasi dari arsitektur computer. Contoh atribut yang


berhubungan dengan arsitektur computer adalah instruction set, jumlah bit yang
digunakan untuk merepresentasikan berbagai macam tipe data (number, character),
mekanisme I/O dan addressing mode. Atribut yang berhubungan dengan organisasi
adalah detil hardware yang terlihat oleh programmer, yaitu sinyal control, interface
antara komputer dan peripheral dan teknologi memory.
Sebagai contoh, apabila komputer mempunyai instruksi multiply, ini adalah
arsitektur, tetapi apabila instruksi multiply tersebut diimplementasikan berupa
multiply unit atau penggunaan rangkaian adder yang berulang, itu adalah
organisasi komputer.
Berdasarkan sejarah, perbedaan antara arsitektur dan organisasi computer
merupakan hal yang penting. Banyak pengembang komputer menawarkan
beberapa prosesor/komputer yang masih dalam satu family, semuanya dengan
arsitektur yang sama, tetapi organisasinya berbeda. Konsekuensinya, model yang
berbeda dalam satu family mempunyai harga yang berbeda dan performance yang
berbeda. Selain itu, arsitektur dapat bertahan bertahun-tahun, tetapi organisasi
dengan cepat berubah dengan berkembangnya teknologi. Serbagai contoh adalah
arsitektur dari computer IBM System/370. Komputer ini diperkenalkan pada tahun
1970 dengan menawarkan beberapa model. Customer dengan kebutuhan yang
sederhana awalnay memilih model yang murah meskipun kerjanya lambat, tetapi
kemudian melakukan upgrade ke model yang lebih mahal dengan performance
yang lebih tinggi, dengan tetap menggunakan software yang sudah terlanjur
dikembangkan, tanpa membuang software tersebut. Bertahun-tahun kemudian, IBM
memperkenalkan banyak model baru dengan teknologi baru yang menawarkan
kecepatan yang lebih tinggi, harga lebih murah. Semua model tersebut
mempertahankan arsitekturnya, sehingga investasi customer untuk softwarenya
akan diproteksi. Untuk diketahui, arsitektur dari System/370, dengan beberapa
pengembangan, masih survive saat ini karena IBM mempertahankan arsitektur
komputernya.
Pada kelas mikroprosesor, hubungan antara arsitektur dan organisasi sangat dekat.
Perubahan pada teknologi tidak hanya mempengaruhi organisasi, tetapi juga
memperkenalkan arsitektur baru yang lebih canggih dan kaya arsitektur. Secara
unum, pada computer yang lebih kecil, kebutuhan akan kompatibilitas kurang
diperlukan dari generasi ke generasi. Contohnya adalah teknologi RISC (Reduced
Instruction Set Computer).

Dapat disimpulkan sebagai berikut :


Arsitektur Komputer :
Karakteristik / atribut komputer dilihat dari pandangan seorang programmer.
Atribut ini memberikan pengaruh langsung pada bagaimana program
dieksekusikan.

2
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan

Atribut tsb diantaranya :


 Instruction set
 Jumlah bit yang digunakan untuk data representation / information format
 Mekanisme I/O
 Teknik pengalamatan memory
 General organization dari CPU register

Organisasi Komputer :
Unit-unit operasional dan hubungan / interkoneksi antar unit-unit tsb yang
digunakan untuk merealisasikan spesifikasi dari arsitektur komputer.

Atribut organisasi komputer adalah detail hardware yang transparan bagi


programmer, misal :
 Control signal
 Memory technology
 Ukuran memory
 Interface antara komputer dan peripheral device
Bagian-bagian fisik suatu komputer, organisasi, serta integrasinya menjadi suatu
sistem, termasuk kontrol komunikasi serta aliran data antar bagian-bagian tsb.

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.

Pada mikrocomputer, hubungan antara arsitektur dan organisasi sangat dekat,


perubahan teknologi tidak hanya mempengaruhi organisasi tetapi juga
menghasilkan arsitektur yang baru. Contoh : RISC.

Apabila suatu komputer mempunyai instruksi (misal : multiply) merupakan suatu


hal yang berhubungan dengan arsitektur, tetapi bagaimana instruksi tersebut
diimplementasikan (dengan menggunakan rangkaian multiplier dan adder)
merupakan hal yang berhubungan dengan organisasi.

3
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan

ABSTRACT MODEL KOMPUTER

Proses komputasi dapat berupa evaluasi dari suatu fungsi f(x) dimana ‘x’ adalah

data input, ‘z’ adalah data output, sehingga

z = f(x).

x dan z dan berupa bilangan, statement, file dsb.


f dapat berupa kalkulasi numerik, bukti suatu teorema dsb.

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)

dianggap sebagai formal definition suatu komputer

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

Tetapi karyanya ini diabaikan hingga sekitar 1 abad kemudian.

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

 Informasi diproses dengan kecepatan yang terhingga (finite)

4
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan

Bentuk turing machine :


Processor
P

read-write head

memory tape M dengan


panjang tak berhingga

Gambar 1.1 Blok Diagram Turing Machine

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

Turing machine mempunyai finite set dari instruksi dengan format :


sh ti oj sk
sh = current state dari processor
ti = symbol ti saat ini dibawah R/W head
oj = melakukan operasi oj
sk = mengubah state dari P ke sk

Operasi oj dapat berupa salah satu dari 4 kemungkinan :


1. oj = tj ; write tj ke tape (hapus simbol ti sebelumnya)

2. oj = R ; pindahkan R/W head ke kotak di kanan current square (move tape

ke kiri)

3. oj = L ; pindahkan R/W head ke kotak di kiri current square (move tape ke

kanan)

4. oj = H ; halt computation

Hanya satu kotak yang dipindah pada satu saat.


Komputasi z=f(x) dilakukan oleh turing machine dengan cara :
• Pertama data input x ditempatkan pada blank tape

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

Contoh : penambahan (add) dua angka pada turing machine


Misalkan n1 dan n2 dinyatakan berupa sequence dari n buah 1
Tape hanya perlu dua simbol alfabet, 1 dan b (blank)
b 11…111 b 11 … 111 b -> bb 11 … 111 … 11 b
n1 n2 n1 + n2
R/W head diletakkan pada posisi blank di sebelah kiri leftmost 1
Machine akan menghitung n1 + n2 dengan mengganti blank yang memisahkan n1
dan n2 dengan simbol 1 dan kemudian menghapus leftmost 1

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

 Posisi awal head dari turing machine

 Initial state dari turing machine

 Bentuk dari jawaban pada saat turing machine dihentikan (halt)

 Machine program

6
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan

Turing machine dapat diprogram untuk melaksanakan penambahan, pengurangan,


perkalian, pembagian dsb.
Turing machine algorithm yang dijamin untuk berhenti dalam suatu selang waktu
yang tertentu, memenuhi definisi dari algorithm.

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.

Limitation turing machine :


Turing machine mempunyai memory yang tak berhingga (infinite length tape).
Tetapi real computer merupakan finite state machine.

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 ?

- Berapa lama waktu 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

 Mengembangkan heuristic procedure untuk menghasilkan solusi yang dapat

diterima

Karena ada keterbatasan peningkatan speed dengan kemajuan teknologi, dilakukan


peningkatan speed dengan mengembangkan algorithm / heuristic.
Cara yang tepat untuk meningkatkan speed dari komputer adalah menggunakan
paralel processing.

7
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan

Pada umumnya komputer conventional melakukan operasi dasarnya secara


berurutan (in sequence), hanya satu operasi yang dilakukan pada satu saat
(sequential processing).
Parallel processing melakukan n sequential step dengan menggunakan n
independent sub computation yang dapat dilakukan bersamaan, secara paralel hal
ini dapat mengurangi waktu untuk komputasi.

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.

SEJARAH PERKEMBANGAN KOMPUTER

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.

⇒ Generasi pertama sekitar th 1943 – 1953 (Vacuum Tubes)

Ciri-ciri komputer generasi pertama :


 Komponen utama yang digunakan ialah tabung hampa udara (vacuum tubes).

 Program hanya dapat dibuat dengan bahasa mesin.

 Menggunakan konsep stored program dengan memori utamanya adalah

magnetic core storage.

 Menggunakan simpanan luar magnetic tape dan magnetic disc.

 Ukuran fisik komputer besar, memerlukan ruangan yang luas.

 Cepat panas, sehingga diperlukan alat pendingin.

 Prosesnya kurang cepat.

 Daya tampung penyimpanan data kecil.

 Membutuhkan daya listrik yang besar.

 Orientasinya terutama pada aplikasi bisnis ruangan yang luas.

 Cepat panas, sehingga diperlukan alat pendingin.

 Prosesnya kurang cepat.

8
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan

 Daya tampung penyimpanan data kecil.

 Membutuhkan daya listrik yang besar.

 Orientasinya terutama pada aplikasi bisnis.

Jenis-jenis komputer yang termasuk pada generasi pertama :


1. ENIAC (Electronic Numberical Integrator and Computer) dibuat 1943 oleh
Dr. John W. Mauchly dan J. Presper Eckert (Pennsylvania).
2. Eniac merupakan generasi pertama dari sejarah komputer yang
menggunakan tabung hampa dan merupakan general purpose electronic
digital computer yang pertama dibuat di dunia. Asal mula adanya ENIAC
berawal dari kebutuhan alat perang Amerika Serikat dalam pembuatan tabel
lintasan dan jarak senjata peluru kendali yang dibuat oleh Army’s Ballistics
Research Laboratory (BRL). Tahun 1943, proposal disetujui oleh Army dan
dimulailah pembuatan ENIAC.

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

- Input dan Output (I/O), dikontrol oleh control unit.

Gambar 1.2 Struktur Komputer IAS


Dengan beberapa perbedaan kecil, semua komputer dewasa ini mempunyai
struktur dasar dan fungsi yang sama dengan komputer Von Neumann.
Spesifikasi IAS Computer :
 Mempunyai 1000 storage location (word), masing-masing 40 bit, data dan
program disimpan di sini (diberi nomor 0-999).
 Bilangan dinyatakan dengan bilangan biner.
 Tiap bilangan dinyatakan dengan sign bit, 39 bit value.(Gambar 1.3a)
 Satu word dapat juga berisi dua instruksi 20 bit, dengan tiap instruksi
terdiri dari : 8 bit instruksi (op-code) dan 12 bit address.(Gambar 1.3b)

Gambar 1.3 Format Data dan Instruksi dari Komputer IAS (Stallings, 2006)

Struktur control unit dan ALU didefinisikan sbb :

10
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan

• Memory Buffer Register (MBR) : berisi satu word untuk disimpan di


memory atau untuk menyimpan data dari memory.
• Memory Address Register (MAR) : menentukan address di memory
untuk word yang akan ditulis atau dibaca ke MBR.
• Instruction Register (IR) : berisi instruksi 8 bit yang akan di-eksekusikan.
• Instruction Buffer Register (IBR) : untuk menyimpan sementara instruksi
bagian kanan.
• Program Counter (PC) : berisi alamat next-instruction yang di-fetch dari
memory.
• Accumulator (AC) dan Multiplier Quetient (MQ) : untuk menyimpan
sementara operand dan hasil perhitungan dari ALU. Contoh : perkalian
40 bit bilangan adalah 80 bit bilangan, most significant 40 bit disimpan di
AC dan least significant disimpan di MQ.

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.

IAS memiliki total 21 instruksi, yang dibagi menjadi beberapa group :


Θ Data transfer, move data antar ALU-register atau memory– ALU-register.
Θ Unconditional branch, branch tanpa kondisi.
Θ Conditional branch, branch dengan kondisi.
Θ Arithmetic, operasi ALU.
Θ Address modify, address dihitung di ALU, dan disisipkan ke instruksi
yang tersimpan di memory.

5. Harvard Mark II (1947)


6. Transistor (1947) oleh Dr. John Bardeen, Dr. Walter H. Brattan dan Dr.
William Shockley.
7. UNIVAC I (Universal Automatic Computer) (1947) dibuat oleh Eckert-
Mauchly Computer Corporation. Komputer ini merupakan komputer
commercial pertama yang sukses dibuat, digunakan untuk aplikasi scientific
& komersial (matrix, statistik, billing, logistik dsb).
8. IBM Selective Sequence Electronic Calculator (1948).
9. EDSAC (Electronic Delayed Storage Automatic Company) (1949) oleh John
Von Neumann, H.H Goldstine dan A.W. Burks.

11
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan

10. Harvard Mark III (1949).


11. UNIVAC II (Universal Automatic Computer). Mempunyai memory lebih
besar dari UNIVAC I dan performance yang lebih tinggi.
Ciri-ciri :
Θ Advanced in technology.
Θ Upward compatible dengan mesin lama – memelihara customer.
12. ACE (Automatic Calculating Engine) (1950) oleh Alan M. Turing.
13. SEC (Simple Electronic Computer) (1950) di Electronic Computation
Laboratory of Birkbeck College, University of London.
14. LEO (Lyon Electronic Office) (1951) di Inggris.
15. Whirlwind I (1952) oleh Dr. Jay W. Forrester.
16. IBM 701 (1953). Komputer stored program pertama yang dibuat oleh IBM
untuk scientific application. Selain itu juga ada seri 702 yang dikhususkan
untuk business application.
17. IBM 650 (1954).
18. RAMAC 305 (Random Access Methods for Accounting and Control) (1956).
19. IBM 705 (1959).

⇒ Generasi kedua sekitar th 1959 – 1965 (Transistor)


Komputer generasi kedua mempunyai ciri-ciri sebagai berikut :
1. Komponen yang digunakan adalah transistor untuk sirkuitnya.
2. Program dapat dibuat dengan bahasa tingkat tinggi.
3. Dilengkapi dengan system software.
4. Kapasitas memori utama cukup besar.
5. Menggunakan simpanan luar magnetic tape dan magnetic disk yang
berbentuk removable disk atau disk pack.
6. Mempunyai kemampuan proses real-time dan time-sharing.
7. Ukuran fisik komputer lebih kecil dibanding komputer generasi pertama.
8. Proses operasi sudah cepat, dapat memproses jutaan operasi perdetik.
9. Membutuhkan lebih sedikit daya listrik.
10. Orientasi tidak hanya pada aplikasi bisnis, tetapi juga ke aplikasi teknik.

Jenis-jenis komputer generasi kedua :


1. PDP-1 (1959) oleh perusahaan DEC (Digital Equipment Corporation) dengan
pendirinya Ken Olsen, Stan Olsen dan Harlan Anderson.
2. Virtual Memory (1961).
3. PDP-5 (1963) oleh perusahaan DEC.
4. IBM 7094. Dilengkapi dengan :
∆ Instruction Backup Register (IBR) untuk buffer dari next instruction. Untuk
tiap instruksi Control unit mem-fetch dua word berurutan dari memory.
Kecuali terjadi branching, control unit hanya memerlukan waktu ke memory

12
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan

setengah dari instruction cycle – sehingga mengurangi rata-rata instruction


cycle time.
∆ Data channel, berupa independent I/O modul yang mempunyai prosesor dan
instruction set sendiri, sehingga tidak perlu dieksekusikan secara khusus
oleh CPU. CPU meng-inisialisasi I/O transfer dengan mengirimkan sinyal
kontrol ke data channel, untuk mengeksekusikan instruksi di memory. Data
channel melakukan tugasnya tanpa keterlibatan CPU dan memberi sinyal ke
CPU apabila tugasnya selesai.
∆ Multiplexor, yaitu terminal pusat dari data channel, CPU dan memory.
Multiplexor men-schedule akses ke memory dari CPU dan data channel.

⇒ Generasi ketiga sekitar th 1965 – 1970 (Integrated Circuit)

Dengan menggunakan transistor, perkembangan industri komputer menjadi sulit,


karena jumlah transistornya selalu bertambah. Pada tahun 1958 ditemukan
Integrated Circuit, yang merupakan awal dari komputer generasi ketiga.
Komputer generasi ketiga mempunyai ciri-ciri sebagai berikut :
1. Komponen yang digunakan adalah IC (Integrated Circuits)
2. Peningkatan dari software.
3. Lebih cepat dan lebih tepat.
4. Kapasitas memori komputer lebih besar.
5. Menggunakan penyimpanan luar yang sifatnya ramdom access yaitu disk
magnetik.
6. Penggunaan listrik lebih hemat dibanding komputer generasi sebelumnya.
7. Memungkinkan untuk melakukan multiprocessing yaitu dapat memproses
sejumlah data dari sumber-sumber yang berbeda pada waktu yang
bersamaan.
8. Pengembangan dari alat input output yang menggunakan visual display
terminal yang bisa menampilkan gambar-gambar dan grafik, dapat menerima
dan mengeluarkan suara, serta penggunaan alat pembaca tinta magnetic yaitu
MICR (Magnetik Ink Character Recognition) reader.
9. Harga semakin murah dibandingkan dengan komputer generasi sebelumnya.
10. Kemampuan melakukan komunikasi data dari satu komputer dengan
komputer lainnya.

Jenis-jenis komputer generasi ketiga :


1. IBM S/360 (1964).

System/360 merupakan komputer untuk industri yang pertama yang


menerapkan family concept. Family concept meliputi range yang luas untuk
performance dan cost. Semua model dalam family dapat menjalankan program
yang dibuat untuk salah satu model.

13
Modul Ajar Arsitektur dan Organisasi Komputer Modul 1- Pendahuluan

Karakteristik dari family :


∆ Similar / Identical Instruction Set
∆ Similar / Identical Operating System
∆ Increasing Speed
∆ Increasing Number of I/O Port
∆ Increasing Memory Size
∆ Increasing Cost.
Implementasi :
Menggunakan rangkaian yang lebih komplex untuk ALU – operasi paralel.
Menambah jumlah data path antara main memory dan ALU (contoh model 30
hanya 8 bits, tapi model 70 bisa 8 bytes)
2. Nova (1969).

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).

⇒ Generasi berikutnya – sejak tahun 1970 (Microprocessor)


Setelah generasi ketiga, tidak ada kesepakatan nama yang digolongkan ke generasi keempat
atau kelima. Hal ini tergantung dari berapa banyak komponen yang dapat dimasukkan ke
suatu chip.
LSI (Large Scale Integration) -> 3.000-100.000 komponen per chip (1971-1977).
VLSI (Very Large Scale Integration) -> 100.000-100.000.000 komponen per chip (1978-
sekarang).
ULSI (Ultra Large Scale Integration) -> lebih dari 100.000.000 komponen per chip.

Tahun 1971 Intel mengembangkan microprocessor yang pertama dimana semua


komponen CPU berada pada satu chip yaitu 4004. Microprocessor 4004 ini adalah
microprocessor 4 bit, dapat menjumlahkan 2 buah bilangan 4 bit dan perkalian
dengan penjumlahan yang dilakukan berulang-ulang.

Indikator untuk mengukur evolusi microprocessor :


- Jumlah bit yang dapat diproses pada satu saat
- Data bus width
- Jumlah bit di accumulator

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

2. Buatlah ringkasan mengenai komputer Von Neumann atau komputer IAS

15
Modul Ajar Arsitektur dan Organisasi Komputer Modul 2 – Struktur Dasar 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

Yang disebut digital komputer :


Mesin hitung yang bekerja secara elektronik yang menerima informasi digital,
memprosesnya sesuai dengan kumpulan instruksi program yang tersimpan di
dalamnya (memory) dan menghasilkan informasi output. (Hamacher, 1996)

Beberapa tipe komputer :


Microcomputer
Minicomputer
Mainframe
Supercomputer

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

Gambar 2. 1. Blok Diagram Komputer

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

Beberapa format encoding :


BCD (Binary Code Decimal) -> 4 bit code.
ASCII (American Standard Code for Information Interchange) -> 8 bit code.

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)

Secondary storage / external memory :


Memory yang dipakai untuk menyimpan sejumlah besar data dan tidak perlu
terlalu sering diakses (magnetic disk, tape, drum, harddisk)

18
Modul Ajar Arsitektur dan Organisasi Komputer Modul 2 – Struktur Dasar Komputer

Arithmetic and Logic Unit (ALU) :


Berfungsi untuk melakukan operasi aritmatik dan logika (penjumlahan, perkalian,
pembagian, perbandingan)

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.

Pada blok diagram, control unit terpisah, tetapi kenyataannya tersebar.


Operasi suatu komputer dapat diringkas sbb :
Komputer menerima informasi (program dan data) melalui input unit dan
mentransfernya ke memory.
Informasi yang tersimpan dalam memory di-fetch di bawah kontrol program,
dikirim ke ALU untuk diproses.
Informasi yang selesai diproses keluar dari komputer melalui output unit.
Semua aktifitas di dalam komputer dikerjakan oleh control unit.

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.

Program Counter (PC)


Untuk mengatur eksekusi dari program dan untuk menyimpan Memory address
dari instruksi yang sedang dieksekusikan.
Selama proses eksekusi dari current instruction, PC ditambahkan untuk
menunjukan ke instruksi selanjutnya yang akan diekskusikan / di-fetch dari
memory.

Memory Address Register (MAR)


Untuk menyimpan address dari lokasi memory dimana data akan dikirim / diambil.

20
Modul Ajar Arsitektur dan Organisasi Komputer Modul 2 – Struktur Dasar Komputer

Memory Data Register (MDR)


Untuk menyimpan data yang akan ditulis / dibaca dari lokasi memory yang
ditunjuk oleh MAR.

KONSEP DASAR PENGOPERASIAN KOMPUTER :

Semua aktifitas di dalam komputer diatur oleh instruksi / program.Untuk


melaksanakan suatu tugas, program disimpan dalam main memory. Setiap instruksi
diambil dari memory, dibawa ke prosesor untuk dieksekusikan.
Contoh instruksi :
Add Loc A, R0

Instruksi tersebut menambahkan operand dari lokasi memory A ke operand dalam


register R0 di dalam prosesor dan menyimpan hasilnya di dalam register R0.

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.

Langkah-langkah operasi secara umum :


1. PC diset untuk menunjuk ke instruksi yang pertama dari program.
2. Isi PC ditransfer ke MAR dan sinyal control read di kirim ke memory.
3. Setelah beberapa waktu (tergantung memory access time), instruksi tersebut
dibaca dari memory dan dimasukkan ke MDR, setelah itu ditransfer ke IR untuk
di-decode dan dieksekusikan.
4. Jika instruksi tersebut melibatkan operasi yang dilakukan oleh ALU, perlu
diambil dahulu operand-nya.
5. Operand di fetch dari memory / general purpose register dengan mengirimkan
addressnya ke MAR dan memberikan sinyal control read.
6. Operand dibaca dari memory / register ke MDR.
7. Operand dikirim ke ALU.
Proses 5-7 diulang sesuai dengan banyaknya operand.
8. ALU melaksanakan operasi yang diinginkan.
9. Jika hasil operasi akan disimpan dalam memory, hasil tersebut dikirim ke MDR.
10. Address dari lokasi dimana hasil tersebut akan disimpan dikirim ke MAR dan
diberikan sinyal write.

21
Modul Ajar Arsitektur dan Organisasi Komputer Modul 2 – Struktur Dasar Komputer

Selama proses berlangsung, isi PC ditambahkan untuk menunjuk ke instruksi


selanjutnya yang akan dieksekusikan.

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

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.

Lokasi memory, address, encoding information

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

1 kelompok / group = n bit

1 word word length


Untuk meng-akses 1 word dari main memory, harus diketahui addressnya. Lihat
Gambar 3.1.
Range dari address : 0 s/d M-1

M : Address space

Dengan menggunakan binary encoding untuk address, untuk menyatakan semua


address, diperlukan m bit, dimana 2m = M. Yang dimaksud dengan address space
adalah kemampuan maksimum dari suatu prosesor untuk memberikan address untuk
pengalamatan memory.

n bits
Address

0 word 0

1 word 1

'
' '
' '
' '
'
'
' bn-1 --- b1 b0 word i
'
'
'

'
'
'
'

M-1 word M-1

Gambar 3.1 Main Memory Address


Ada 3 cara untuk menyatakan 32 bit word informasi :

 Number (sign integer)

Representasi bilangan integer dapat dilihat pada Gambar 3.2.

24
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing

32 bit

b31 b30 --- b1 b0

sign bit : b31 = 0 bilangan positif


b31 = 1 bilangan negatif

Gambar 3.2 Sign Integer

Magnitude : b30 x 230 + . . . + b1 x 21 + b0 x 20

Range : 0 s/d 231-1

Ada 3 macam representation :

 Sign and magnitude

 1’s complement

 2’s complement

Ketiga skema tersebut sama untuk bilangan positif, berbeda hanya untuk bilangan
negatif.

Untuk implementasi ke komputer : 2’s complement paling sesuai.

 Character

32 bit = 4 char

8 bit 8 bit 8 bit 8 bit

ASCII / EBCDIC

Gambar 3.3 Representasi Character

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

operation field addressing field

Gambar 3.4 Format Instruksi

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.

Main Memory Operation


Dua operasi dasar yang melibatkan main memory :
 Fetch (atau read)
 Store (atau write)
Operasi fetch mentransfer isi lokasi memory yang tertentu ke CPU. Isi main
memorynya sendiri tidak berubah.
Operasi store mentransfer informasi dari CPU ke lokasi main memory yang tertentu.
Isi lokasi yang lama akan dihapus.

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

Untuk lokasi memory : LOC, PLACE, A, VAR2


Untuk register : R0, R5, IOREAD
Isi lokasi memory / register dinyatakan dalam tanda kurung: R1 <- [LOC].
Operasi penjumlahan : C <- [A] + [B]
Artinya :
Operand dari lokasi memory A dan B di fetch dari memory, kemudian di transfer ke
CPU untuk dijumlahkan (proses penjumlahan pada ALU), akhirnya hasilnya
disimpan di lokasi memory C.

Three address instruction


Add A, B, C

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.

Two Address Instruction


Add A, B
Operasi yang dilaksanakan : B <- [A] + [B]. Hasil disimpan di B, operand asli di B
terhapus.
Untuk menyelesaikan persoalan untuk menjumlahkan isi memory A dan B,
menyimpan hasilnya di C tanpa menghapus operand A dan B, maka memerlukan
lebih dari 1 instruksi.
Penyelesaian :
Move B, C artinya : C <- [B]
Add A, C

One Address Instruction


Add A ; menambahkan isi lokasi memory A ke accumulator dan jumlahnya
disimpan di accumulator.
Load A; menyalin isi lokasi A ke accumulator.
Store A; menyalin isi accumulator ke lokasi memory A.

Untuk melaksanakan operasi C <- [A] + [B], urutan instruksinya :


Load A

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

Zero Address Instruction


Yang dimaksud dengan zero address instruction adalah satu instruksi yang tidak
menspesifikasikan address pada address fieldnya, yang ada hanya operation field.
Sebenarnya ada address yang digunakan, tetapi tidak terlihat pada instruksinya
(implicit). Zero address ini digunakan pada satu lokasi memory yang disebut dengan
stack. Definisi stack adalah suatu tumpukan data dimana pengisian dan pengambilan
datanya selalu dilakukan pada bagian atas dari stack., seringkali dikenal dengan
istilah Last In First Out (LIFO) .Instruksi untuk one address :
PUSH (untuk meletakkan data pada bagian atas stack)
POP (untuk mengambil data pada bagian atas stack)
Instruksi Add, Sub dan lainnya dilakukan dengan mengambil dua data yang paling
atas dari stack, kemudian dialkukan operasinya dan hasilnya dikembalikan lagi ke
bagian atas stack. Ilustrasinya dapat dilihat pada Gambar 3.5.

28
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing

1.

Gambar 3.5 Ilustrasi Pengoperasian Stack (Stallings)

Instruction Execution (yang berurutan)


Untuk melaksanakan tugas : C <- [A] + [B], salah satu kemungkinan programnya
dapat dilihat pada Gambar 3.6.
Address

i move A, R 0

i+1 move B, R 0

i+2 move R 0, C

'
'
'
'
'

'
'
'
'
'

B data untuk program

'
'
'
'
'

Gambar 3.6 Program untuk melaksanakan C <- [A] + [B]


Eksekusi program tersebut adalah sebagai beikut :
Address dari instruksi pertama diletakkan di PC. Secara otomatis rangkaian control
CPU akan mem-fetch dan mengeksekusi instruksi.
Pada saat sebuah instruksi dieksekusikan, isi PC ditambah untuk menunjuk ke
instruksi berikutnya. Ini dinamakan straight-line-sequencing.

29
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing

Ada 2 fase eksekusi :


1. Instruction fetch

Instruksi di-fetch dari lokasi memory yang addressnya di PC dan kemudian


disimpan dalam instruction register (IR) di CPU.
2. Instruction execute

Instruksi di IR diteliti untuk menentukan operasi apa yang akan dilaksanakan.


Beberapa kemungkinan operasi:
• Fetch operand dari main memory ke CPU
• Operasi aritmetik dan logika
• Menyimpan hasil operasi ke main memory

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

i+1 add NUM2, R0

i+2 add NUM3, R0


'
'
'
i+n-1 add NUMn, R 0

i+n move R0, SUM

'
'
'
'

SUM

NUM1

NUM2

'
'
'

NUMn

Gambar 3.7 Program untuk menjumlahkan n Bilangan


NUM1, NUM2, … , NUMn : address dari lokasi memory yang berisi n bilangan.
SUM : lokasi memory tempat hasil penjumlahan.

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

LOOPSTART menentukan address bil


"next" dan menjumlah bil program loop
"next" ke R 0

decrement R1

branch > 0 LOOPSTART

move R0, SUM

'
'
'

SUM

NUM1

NUM2

'
'
'

NUMn

Gambar 3.8 Penggunaan Loop untuk Menjumlahkan n Bilangan


Di sini terlihat bahwa straight line sequencing dapat dieksekusikan beberapa kali.
Jumlah pengulangan dikontrol oleh register R1 sebagai counter. Pertama kali register
R1 diisi dengan harga n dari lokasi memory N.
Instruksi decrement R1 mengurangi isi R1 tiap kali loop diulangi 1x. Untuk kembali ke
instruksi awal dari loop, digunakan instruksi branch :
branch > 0 LOOPSTART
Bila kondisi tertentu dipenuhi -> jump ke lokasi LOOPSTART, jika tidak -> straight
line sequencing dilanjutkan.
Mekanisme :
Jika terjadi branching, PC di load dengan address name dari instruksi, jika tidak PC
ditambah seperti biasa.

31
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing

Kondisi branch berhubungan dengan hasil perhitungan arithmetic / logic tepat


sebelum instruksi branch tersebut.
Pada contoh :
Branch ke LOOPSTART terjadi selama isi R1 masih > 0. Setelah loop dieksekusi n x, R1
akan dikurangi sampai 0 dan branch tidak terjadi.
Dengan asumsi bahwa operand address dituliskan langsung pada instruksi, instruksi
add pada loop harus diubah setiap kali loop dilewati -> tidak praktis.
Persoalan ini diatasi dengan skema yang lain -> addressing mode.
Dengan beberapa skema tsb, dimungkinkan untuk menunjuk pada operand yang
berbeda pada saat dieksekusikan beberapa kali. Instruksinya sendiri tidak berubah.

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

Address dari lokasi operand merupakan bagian dari instruksi.


Ada 2 versi :
Memory absolute mode (operand berada di memory, address memory berada
di instruksi)
Register mode (operand berada di register, nama register berada di instruksi)

2. Immediate mode

Operand berada didalam instruksi.


Contoh : move 200immediate, R0 , menempatkan nilai 200 di register R0
Mode ini sering digunakan untuk menentukan address dan konstanta di dalam
program.
Biasanya dituliskan : move #200, R0

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.

Add (A), R 0 Add (Rj), R0

'
' main memory
'
'
'
'
A B B Operand

'
'
'

B Operand Rj B register

melalui lokasi melalui


memory register

Gambar 3.9. Indirect Address


Umumnya indirect dinyatakan dengan memberikan tanda kurung pada nama
register atau memory address seperti pada Gambar 3.9.
Eksekusi dari instruksi add tersebut adalah sbb :
Fetch isi B dari main memory (pointer location A).
B digunakan untuk mem-fetch operand.
Operand ditambahkan ke register R0.
Dengan menggunakan indirect addressing mode, loop program pada Gambar 3.8
menjadi sbb :

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

Register R2 digunakan sebagai pointer ke bilangan-bilangan pada list, operand diakses


secara tidak langsung melalui R2.

4. Index mode

Effective address dari operand dihasilkan dengan menambahkan sebuah


konstanta ke isi sebuah register.
Register yang digunakan : general purpose register, special purpose register (index
register).
Simbol index mode : Value (R)

Konstanta Nama register


Value dapat berupa bilangan atau berupa nama yang mewakili harga numerik.
Pada proses untuk menghasilkan effective address, isi register tidak berubah.

Add 20(R 1), R 2

'
'
' index register

R1 1050
1050

'
20 = offset
'
'
offset berupa konstanta
1070 Operand

34
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing

Add 1050(R 1), R 2

'
'
' index register

R1 20
1050

20 = offset '
'
'
offset pada index register
1070 Operand

Gambar 3.10 Mode Index


Ada 2 kemungkinan :
1. Isi dari index register R1 digunakan untuk menentukan address di memory.

Konstanta pada instruksi menentukan harga offset (displacement) di antara


address yang diberikan dan lokasi sebenarnya dari operand yang diinginkan.
2. Konstanta berhubungan dengan memory address.

Isi register menentukan offset ke 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

'
'
'

Gambar 3.11. List dari Nilai Siswa


Penyelesaian :
Move #LIST, R0
Move N, R1 Initialization
Clear R2
Clear R3
LOOPSTART Add 2(R0), R2
Add 3(R0), R3
Add #4, R0
Decrement R1
Branch > 0 LOOPSTART
Move R2, SUM2
Move R3, SUM3

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.

Secara umum dapat disimpulkan :


Index mode digunakan untuk mengakses sebuah operand yang lokasinya ditentukan
relatif ke bagian awal dari struktur data dimana data tersebut berada.

5. Autoincrement mode.

36
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing

Autoincrement pada dasarnya adalah pengembangan dari moe indirect. Effective


address dari operand adalah isi register yang dinyatakan pada instruksi. Setelah
operand selesai diakses, isi register ditambah satu untuk menunjuk ke item
berikutnya pada list.
Contoh penulisan dengan menggunakan register R4 :
(R4)+
Dengan menggunakan autoincrement mode, maka instruksi increment pada
program di mode indirect dapat digabungkan dengan instruksi add sebelumnya,
sbb :
Clear R0
Move N, R1
Move #NUM1, R2
LOOPSTART Add (R2)+, R0
Decrement R1
Branch > 0 LOOPSTART
Move R0, SUM
6. Autodecrement mode

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

Source program Object program


(Assembly language) assembler (Bhs mesin)

Opcode : kode yang menentukan operasi yang dimaksudkan oleh mnemonic.


Contoh :
Move R0, SUM destination operand
opcode source
operand
Add #5, SUM absolute
Immediate
Add #5, 1000
Add #5, (R2) indirect

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

102 Move #NUM 1, R2

103 Add (R2), R0

104 Increment R 2

105 Decrement R 1

106 Branch > 0 LOOP

107 Move R 0, SUM

'
'
'

SUM = 200

N = 201 300

NUM1 = 202

NUM2 = 203

'
'
'
NUMn = 501

Gambar 3.12. Penyimpanan Program dalam Bahasa Assembly

Penyederhanaan :
Diasumsikan instruksi dan data menempati satu word di main memory.
Untuk dapat menghasilkan object program, assembler perlu mengetahui :
 Bagaimana menginterpretasikan nama-nama.

 Dimana menempatkan object program di dalam memory.

 Berapa banyak lokasi memory yang diperlukan untuk menyimpan data.

Untuk memenuhi hal-hal tsb, source program dapat dituliskan sbb :

Memory Address Operation Addressing


Label

39
Modul Ajar Arsitektur dan Organisasi Komputer Modul 3 – Metode Addressing

Assembler SUM EQU 200


Command
ORIGIN 201
N DATA 300
NUM1 RESERVE 300
ORIGIN 100

Statement START Clr R0


Move N, R1
Move #NUM1, R2
LOOP Add (R2), R0
Inc R2
Dec R1
Bgtz LOOP
Move R0, SUM
Return

Assembler END START


Command

ORIGIN : memberitahu assembler dimana instruksi dan data berikutnya


harusdisimpan.
DATA : digunakan untuk menyatakan bahwa data (300) tsb akan disimpan
pada memory dengan address 201 dan address ini diberi nama N.
RESERVE : menyatakan bahwa address berikutnya diberi nama NUM1 dan 300
data word yang berurutan mulai dari address ini dicadangkan untuk
menyimpan data.

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

Operation field : berisi mnemonic dari instruksi / assembler command.


Operand field : berisi 1 operand atau lebih.
Comment field : diabaikan oleh assembler, digunakan untuk dokumentasi.

Proses Assembly & Eksekusi Program


Pada proses assembly yang penting adalah menentukan suatu harga sebagai
pengganti nama.
Untuk suatu harga yang dispesifikasikan dengan EQU command dilakukan proses
langsung.
Bila nama didefinisikan pada label field dari instruksi, harga pengganti nama
ditentukan oleh lokasi dari instruksi ini pada program yang di-assemble.
Contoh :
ORIGIN 201
201 -> N DATA 300
202 -> NUM1 RESERVE 300

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

2. Buat program assembly language untuk menghitung :

C <- A1 X B1 + A2 X B2 + A3 X B3

a) Dengan straight line program (tanpa loop)


b) Dengan program loop

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...

MODUL 4 – PROSES ARITHMETIC DI KOMPUTER

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.

control unit flag


ALU

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

Sign And Magnitude


Merupakan representasi yang paling sederhana dengan menggunakan sign bit.
Dengan menggunakan N-Bit Word, bilangan N-1 bit paling kanan menyatakan
magnitude dari bilangan integer.
00010010 = +18
10010010 = -18
Maka 8 Bit word dapat menyatakan bilangan dengan range –127 s/d 127
Ada 2 kerugian dari sistem ini :
• Untuk operasi penambahan dan pengurangan, diperlukan sign and magnitude dari
kedua bilangan.
• Ada 2 representasi untuk 0 :
00000000 = 010
10000000 = - 010 (sign and magnitude)
Karena ada dua kemungkinan, maka akan mempersulit pengetesan untuk nilai 0

1’s Complement Representation


Untuk melakukan operasi 1’s complement, digit 0 diganti 1, digit 1 diganti 0
X = 01010001
1’s complement dari X = 10101110
Penggunaan 1’s complement representation dari binary integer sbb :
• Bilangan positif sama dengan sign dan magnitude
• Bilangan negatif didapat dengan menggunakan 1’s complement dari bilangan
integer positif.

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

2’s Complement Representation


Operasinya terdiri dari 2 step :
1. Lakukan operasi 1’s complement
2. Hasilnya dianggap sebagai unsign binary integer, tambahkan 1.

• 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.

Contoh : - 128 = 10000000


1’s complement = 01111111
1+
10000000 = - 128

Leftmost bit tetap berfungsi sebagai sign bit.


Anomali yang tidak dapat dihindari :
• Untuk sign and magnitude dan 1’s complement, jumlah bilangan integer positif dan
negatif sama, tetapi ada 2 representasi untuk 0.
• Untuk 2’s complement hanya ada satu representasi untuk 0, tetapi jumlah bilangan
negatif lebih banyak 1 dari bilangan positif.

REPRESENTASI FIXED POINT


Disebut fixed point sebab radix point / binary point selalu fix dan diasumsikan terletak
disebelah kanan rightmost digit.

INTEGER ARITHMETIC

45
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...

Addition dan Subtraction


Untuk proses penambahan dan pengurangan, sign and magnitude representation dapat
menghasilkan perhitungan yang salah :
0011 = +3 0001 = +1
+ 1011 = -3 + 1110 = -6
1110 = -6 (S&M) 1111 = -7 (S&M)

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.

Penambahan dengan 1’s complement :


0011 = +3 0001 = +1
+ 1100 = - 3 + 1001 = -6
1111 = 0 (1’s comp) 1010 = -5 (1’s comp)

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.

Penambahan dengan 2’s complement :


a. (-7) + (+5) b. (- 4) + (+4)
1001 1100
0101 0100
1110 = - 2 0000

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

Overlow Flag Adder

A Register

Gambar 4.2 Blok Diagram Rangkaian Adder

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.

Untuk pengurangan, maka subtrahend (B register) dilewatkan ke sebuah complementer,


sehingga harga 2’s complement-nya dikirim ke adder.

Perkalian
Perkalian merupakan proses yang kompleks jika dibandingkan dengan penambahan
dan pengurangan.

Unsign integer
Contoh perkalian unsign binary integer, dengan menggunakan pensil dan kertas :

1011 multiplicand (11)


x 1101 multiplier (13)
1011
0000 partial products
1011
1011
10001111 product (143)

Beberapa hal penting yang perlu dicatat :


1. Perkalian menggunakan partial product, 1 untuk setiap digit pada multiplier.
Partial product dijumlahkan untuk menghasilkan final product.
2. Bila multiplier bit = 0, partial product = 0. Bila multiplier bit = 1, partial product
adalah multiplicand-nya sendiri.

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.

Untuk meningkatkan efisiensi :


 Penambahan dari partial product tidak perlu menunggu sampai selesai, sehingga
tidak diperlukan tempat penyimpanan untuk semua partial product, cukup
beberapa register.
 Dapat menghemat waktu untuk menghasilkan partial product. Untuk setiap 1 pada
multiplier, diperlukan operasi penambahan dan shift, tetapi untuk tiap 0 pada
multiplier, hanya diperlukan shift.

Implementasi hardware dapat dilihat pada Gambar 4.3.


multiplicand
Mn-1 .... M0

add
n-bit adder shift and add control logic

shift right

C An-1 .... A0 Qn-1 .... Q0


multiplier

Gambar 4.3 Blok Diagaram Hardware untuk Perkalian Unsign Integer

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.

Operasi multiplier dapat dilihat pada flowchart Gambar 4.4.


Control logic membaca bit-bit multiplier, satu setiap saat. Jika Q0 = 1, maka multiplicand
ditambahkan ke register A dan hasilnya disimpan dalam register A.
Kemudian semua bit-bit dari register C, A dan Q digeser ke kanan 1 bit, sehingga bit C
pindah ke An-1, A0 ke Qn-1 dan Q0 hilang.
Jika Q0 = 0, tidak ada penjumlahan, hanya shift. Proses ini diulangi untuk setiap bit dari
multiplier yang asli. Hasil dari 2n product terdapat di dalam register A dan Q.

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

Shift right C,A,Q


Count = Count - 1

No Count = 0
?

Yes

end

Gambar 4.4 Flowchart Perkalian Unsign Integer

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)

1001 (-7) 2’s complement integer


x 0011 (3)
11111001 (-7) x 20 = (-7)
11110010 (-7) x 21 = (-14)
11101011 (-21)

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.

Untuk menyelesaikan masalah ini :


Multiplier & multiplicand dirubah ke bilangan positif, melakukan perkalian dan
kemudian 2’s complement dari hasilnya hanya jika sign dari dua bilangan asalnya
berbeda.
Penyelesaian lain adalah dengan Booth’s Algorithm. Algorithm ini mempercepat proses
perkalian relatif terhadap perkalian langsung. Lihat Gambar 4.5.

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

=10 Q0, Q-1 =01

A=A-M A=A+M

Arithmetic shift right :


A, Q, Q-1
Count = Count -1

No Count = 0
?

Yes

end

Gambar 4.5 Flowchart Booths Algorithm

Contoh : sequence dari Booth’s algorithm untuk perkalian 7 dengan 3.

M = 0111

A Q Q-1

0000 0011 0 Initial value


1001 0011 0 A=A-M
1100 1001 1 Shift right First cycle
1110 0100 1 Shift right Second cycle
0101 0100 1 A=A+M
0010 1010 0 Shift right Third cycle
0001 0101 0 Shift right Fourth cycle

53
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...

Hasil kali disimpan di A, Q.

Operasi yang sama dapat dilakukan sbb :


a. (7) x (3) = (21)
0111
x 0011 (0)
11111001 1-0
0000000 1-1
000111 0-1
00010101 (21)

b. (7) x (-3) = (-21)


0111
x 1101 (0)
11111001 1-0
0000111 0-1
111001 1-0
11101011 (-21)

c. (-7) x (3) = (-21)


1001
x 0011 (0)
00000111 1-0
0000000 1-1
111001 0-1
11101011 (-21)

d. (-7) x (-3) = (+21)


1001
x 1101 (0)
00000111 1-0
1111001 0-1
000111 1-0
00010101 (+21)

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.

Divisor disimpan dalam register M, dividend dalam register Q.


Pada tiap step, register A dan Q bersama-sama digeser ke kiri 1 bit, M dikurangkan
dari A untuk menentukan apakah A dapat membagi partial remainder.
Jika demikian, Q0 mendapatkan bit 1, jika tidak, Q0 mendapat bit 0 dan M harus
ditambahkan kembali ke register A untuk mendapatkan harga sebelumnya. Counter
dikurangi dan proses dilanjutkan untuk n step.

Akhirnya, quotient berada pada register Q dan remainder berada pada register A.

Proses ini dapat diterapkan untuk bilangan negatif. Pendekatan di sini


menggunakan sistem 2’s complement.

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

Gambar 4.6 Flowchart untuk pembagian unsign binary integer

Algorithm dapat diringkas sbb :


1. Load divisor ke register M dan dividend ke register A,Q. Dividend harus
dinyatakan berupa 2n bit 2’s complement. Contoh : 4 bit 0111 menjadi 0000 0111
1001 menjadi 1111 1001
2. Geser A, Q ke kiri 1 bit.
3. Jika M, A mempunyai tanda yang sama, laksanakan A=A-M, jika tidak A=A+M.
4. Operasi di atas berhasil jika sign A sama sebelum dan sesudah operasi.
a. Jika operasinya berhasil atau A=0, maka Q0=1.
b. Jika operasinya tidak berhasil dan A≠0, maka Q0=0 dan restore harga A
sebelumnya.
5. Ulangi langkah 2 sampai 4 selama masih ada bit-bit di Q.

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

0000 1110 Shift left


1101 Substract
00 1110 Restore

0001 1100 Shift left


1110 Substract
0001 1100 Restore

0011 1000 Shift left


0000 Substract
0000 1001 Set Q0=1

0001 0010 Shift left


1110 Substract
0001 0010 Restore

b. (7) : (-3)
M = 1101
A Q
0000 0111 Initial value

0000 1110 Shift left


1101 Add
0000 1110 Restore

57
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...

0001 1100 Shift left


1110 Add
0001 1100 Restore

0011 1000 Shift left


0000 Add
0000 1001 Set Q0=1

0001 0010 Shift left


1110 Substract
0001 0010 Restore

c. (-7) : (3)
M = 0011
A Q
1111 1001 Initial value

1111 0010 Shift left


0010 Add
1111 0010 Restore

1110 0100 Shift left


0001 Add
1110 0100 Restore

1100 1000 Shift left


1111 Add
1111 1001 Set Q0=1

1111 0010 Shift left


0010 Add
1111 0010 Restore

d. (-7) : (-3)
M = 1101
A Q
1111 1001 Initial value

1111 0010 Shift left


0010 Substract

58
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...

1111 0010 Restore

1110 0100 Shift left


0001 Substract
1110 0100 Restore

1100 1000 Shift left


1111 Substract
1111 1001 Set Q0=1

1111 0010 Shift left


0010 Substract
1111 0010 Restore

REPRESENTASI FLOATING POINT

Dengan menggunakan 2’s complement dapat direpresentasikan suatu range dari


bilangan integer positif dan negatif yang tengahnya adalah 0.
Dengan asumsi fixed binary / radix point, format ini juga dapat merepresentasikan
bilangan-bilangan pecahan.
Keterbatasannya adalah :
Tidak dapat merepresentasikan bilangan yang sangat besar atau bilangan pecahan yang
sangat kecil. Bilangan pecahan dari quotient pada operasi pembagian dua bilangan yang
besar akan hilang.

Untuk bilangan desimal 976,000,000,000,000 dapat direpresentasikan menjadi 9.76*1014


dan 0.0000000000000976 dapat direpresentasikan menjadi 9.76*10-14.
Hal ini dilakukan dengan menggeser titik desimal ke lokasi yang tepat dan
menggunakan pangkat 10 untuk menetapkan titik desimal, sehingga memungkinkan
range bilangan yang sangat besar atau sangat kecil untuk direpresentasikan dengan
hanya beberapa digit.

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

Gambar 4.7 Format Representasi Bilangan Floating Point 32 bit

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.

Significand disebut juga mantissa.


Bilangan floating point dapat dinyatakan dengan beberapa cara, contoh :
0.110 * 25
110 * 22 equivalent
0.110 * 2 6

Untuk mempermudah perhitungan dengan menggunakan floating point, dilakukan


normalisasi dalam bentuk :
± 0.1bbb … b * 2±E

Dimana b adalah binary digit ( 0 atau 1 ).


Dapat disimpulkan bahwa leftmost bit dari significand selalu 1, karena itu bit ini tidak
perlu disimpan. Karena itu untuk menyimpan 24 bit significand cukup diperlukan 23 bit
dengan harga antara 0.5 dan 1.

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

Dengan menggunakan 32 bit dan bilangan integer 2’s complement, dapat


direpresentasikan bil integer dari –231 s/d 231 –1, total 232 bilangan yang berbeda.
Dengan contoh format floating point sebelumnya, dapat dinyatakan bilangan dengan
range sbb :
• Bilangan negatif antara –(1-2-24) * 2127 dan –0.5 * 2-128
• Bilangan positif antara 0.5 * 2-128 dan (1-2-24) * 2127
Lima range bilangan yang tidak termasuk pada range di atas :
• Bilangan negatif kurang dari –(1-2-24) * 2127 (negatif overflow)
• Bilangan negatif lebih dari –0.5 * 2-128 (negatif underflow)
• Nol
• Bilangan positif kurang dari 0.5 * 2-128 (positif underflow)
• Bilangan positif lebih dari (1-2-24) * 2127 (positif overflow)

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...

Untuk menyimpan exponent dipakai 5 dan bukan 20.


Keuntungan penggunaan base yang lebih besar adalah diperolehnya range yang
lebih besar untuk jumlah bit exponent yang sama.
IBM S/370 menggunakan jumlah exponent bit yang sama untuk format 32 bit dan 64
bit. Exponent menggunakan bias representation. Sehingga dapat dinyatakan harga
dari 16-64 sampai 16+63.

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

Significand S Exp Sig

63 16 15 14 7 6 0

Significand S Exp Sig

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.

• IEEE Standard 754 (dikembangkan oleh IEEE computer society)


Tujuannya adalah untuk portabilitas dari program dari satu komputer ke komputer
yang lain. Focusnya adalah microprocessor environment. Lihat Gambar 4.11.
Format standard adalah 32 bit dan 64 bit dengan exponent 8 bit dan 11 bit, base 2.
Harga exponent dalam range 1 s/d 254, dengan bias representation, sehingga
didapatkan binary exponent dari
–126 s/d 127.
Dengan normalisasi, 1 bit ditambahkan pada significand, sehingga memberikan
effective 24 bit significand.
Harga exponent 0 dan 255 digunakan untuk menyatakan harga-harga khusus, misal : 0
dan ∼

Gambar 4.11 Format IEEE 32 bit dan 64 bit

Floating point arithmetic

Operasi dasar untuk floating point arithmetic :

X+Y = ( Xs BXe-Ye + Ys ) * BYe Xe ≤ Ye


X-Y = ( Xs BXe-Ye - Ys ) * BYe
X*Y = ( Xs * Ys ) * BXe+Ye
X:Y = ( Xs : Ys ) * BXe-Ye

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

Penjumlahan dan pengurangan Floating Point

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

Untuk penjumlahan / pengurangan, dua operand harus ditransfer ke register (ALU).


Bila ada implicit bit, harus dibuat explicit. Umumnya exponent dan significand
disimpan pada register yang berbeda. Setelah hasil didapatkan baru digabungkan lagi.
Proses dimulai dengan mengubah tanda bila operasinya adalah pengurangan. Bila salah
satu operand = 0, operand yang lain merupakan hasilnya.

Langkah selanjutnya adalah mengubah exponent supaya sama.

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

exp sama Yes


A
?

No

increment smaller
exponent

shift significand
right

No
significand = 0
?

Yes

letakkan bilangan
yang lain di Z

return

Gambar 4.12 Flowchart Penambahan dan Pengurangan Floating Point

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

Gambar 4.12 Flowchart Penambahan dan Pengurangan Floating Point (Lanjutan)

66
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...

Perkalian Floating Point


Untuk mengalikan dua operand, jika salah satu operand = 0, laporkan hasilnya = 0.
Langkah selanjutnya adalah menambahkan exponent. Jika exponent disimpan dalam
bentuk bias, harga bias harus dikurangkan dari penjumlahan. Jika ada overflow /
underflow harus dilaporkan.
Langkah selanjutnya adalah mengalikan significand (sama dengan integer). Setelah itu
hasilnya harus dinormalisasi dan dibulatkan (rounded). Lihat Gambar 4.13.

perkalian

X=0 No Y=0 No tambahkan


? ? exponent

Yes Yes

Z=0
kurangkan
bias

return

exponent Yes report


overflow
overflow
?

No

exponent Yes report


underflow
underflow
?

No
return
kalikan
significand

normalisasi

rounding

return

Gambar 4.13 Flowchart Perkalian Bilangan Floating Point

67
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...

Pembagian Floating Point


Langkah pertama adalah testing harga 0. Jika divisor = 0 -> error, dilaporkan atau diset
∼. Jika dividend = 0 -> hasilnya = 0. Kemudian divisor exponent dikurangkan dari
dividend exponent. Selanjutnya harga bias harus ditambahkan. Selanjutnya diadakan
test untuk exponent, underflow atau overflow. Terakhir pembagian significand,
normalisasi dan rounding. Lihat Gambar 4.14.

pembagian

X=0 No Y=0 No kurangkan


? ? exponent

Yes Yes

Z=0 Z=~
tambahkan
bias

return

exponent Yes report


overflow
overflow
?

No

exponent Yes report


underflow
underflow
?

No
return
bagi
significand

normalisasi

rounding

return

Gambar 4.14 Flowchart Pembagian Bilangan Floating Point

68
Modul Ajar Arsitektur dan Organisasi Komputer Modul 4 – Proses Arithmetic...

Pembulatan Bilangan Floating Point

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)

Untuk radix 16, ketelitian berbeda cukup besar, faktor 16.

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...

Ada beberapa metode untuk membuang bit-bit tersebut :


1. Chopping
Membuang bit-bit yang berlebih / guard bit, tanpa merubah bit-bit yang tak
terbuang (retain bit)
Contoh : pembulatan dari 6 bit ke 3 bit
0. b1 b2 b3 000 …. 0. b1 b2 b3 111
akan dibulatkan ke 0. b1 b2 b3
Error : range antara 0 s/d 0.000111 atau 0 s/d 1 pada least significand bit (LSB)
dari bit-bit retain bit.
Metode ini disebut biased approximation -> error tidak simetris terhadap 0.
2. Von Neumann Rounding
Jika bit-bit yang akan dibuang semuanya 0 -> didrop, retain bit tidak berubah.
Jika salah satu bit yang akan dibuang berharga 1 -> LSB dari retain bit diset ke 1.
Contoh : pembulatan dari 6 bit ke 3 bit.
0. b1 b2 b3 b4 b5 b6
dimana b4 b5 b6 ≠ 000 -> 0. b1 b2 1
Error range antara –1 s/d 1 dari LSB retain bit.
Maximum magnitude sama dengan Chopping.
Metode ini disebut unbiased approximation, karena error simetris terhadap 0.
3. Rounding
Bila MSB dari bit yang akan dibuang bernilai 1 -> LSB dari retain bit ditambah 1.
0. b1 b2 b3 1 … -> 0. b1 b2 b3 + 0.001
0. b1 b2 b3 0 … -> 0. b1 b2 b3
Error : approximation –½ s/d ½ dari LSB retain bit -> best approximation.
Teknik rounding dari IEEE floating point format menggunakan teknik ini.
Kasus khusus :
Bila bit-bit yang akan dibuang 100 … 00
0. b1 b2 b3 0100 -> 0. b1 b2 0
0. b1 b2 b3 1100 -> 0. b1 b2 1 + 0.001

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

2. Hitung perkalian sign interger sbb dengan menggunakan Booth Algorithm


5 x -4
-5 x 4

3. Hitung pembagian bilangan sign integer sbb dengan algoritma perkalian unsign :
9 / -4
-9 / 4

4. Tentukan range untuk representasi bilangan floating point dari komputer-komputer


dibawah ini :
Komputer Beta
spesifikasi : base 2, sign 1 bit, menggunakan normalisasi dan implied bit
format 32 bit : exponent 9 bit, significant 22 bit
Harga exponent 0 dan 255 dipakai untuk menyatakan bil. 0 dan 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

MODUL 5 – CENTRAL PROCESSING UNIT (CPU)

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.

Mem-fetch satu word dari lokasi memory.


Untuk mem-fetch data/instruksi, CPU mentransfer address dari word yang
diinginkan ke MAR (Memory Address Register), kemudian ditransfer ke main
memory lewat memory bus.
Pada saat yang sama, CPU mengirim sinyal read melalui control line dari memory
bus. Setelah beberapa saat, CPU menerima sinyal kontrol MFC (Memory Function
Completed) dari memory melalui memory bus. Memory akan menset sinyal kontrol
ke logic 1 yang menyatakan bahwa isi dari lokasi tertentu di memory sudah dibaca
dan tersedia pada data line di memory bus dan sudah diload ke MDR.
Contoh :
Apabila address dari lokasi memory yang diakses berada pada register R1 dan data
akan diload ke R2, diperlukan urutan operasi sebagai berikut :
1. MAR <- [R1]
2. READ
3. WAIT FOR MFC SIGNAL
4. R2 <- [MDR]

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.

Untuk pebahasan berikutnya, akan diasumsikan menggunakan asynchronous


transfer.

Menyimpan 1 word kelokasi memory.


Bila data (word) yang akan disimpan ke memory berada dalam R2 dan memory
address disimpan dalam R1, urutan operasinya adalah sebagai berikut :
1. MAR <- [R1]
2. MDR <- {R2], write
3. Wait for MFC

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

Gambar 5.1 Block Diagram CPU satu bus

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

Operasi Arithmetic and Logic


Untuk melaksanakan pernjumlahan, dua bilangan yang ditambahkan terebut harus
tersedia pada dua input dari ALU secara bersamaan. Register Y digunakan untuk
menyimpan salah satu dari dua bilangan/operand, sedangkan bilangan/operand
yang lain dikirim ke bus. Hasilnya disimpan sementara dalam register Z.

Contoh : menambahkan isi register R1 ke R2 dan menyimpan hasilnya di register R3.


Urutan operasinya :
Step Proses
1 R1out, Yin
2 R2out, Add, Zin
3 Zout, R3in

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

Implementasi Register Gating


Tiap bit dari register di implementasikan berupa satu rangkaian flip-flop seperti
pada gambar 5.3. Sebagai contoh pada gambar tersebut adalah register Z.

76
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit

Gambar 5.2 Input/Output Gating

Gambar 5.3 Satu Bit Dari Isi Register

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)

Gambar 5.4 Rangkaian Open Collectior atau Open Drain

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.

EKSEKUSI DARI INSTRUKSI SECARA LENGKAP

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

1. Fetch instruksi, selama proses fetch juga dilakukan penambahan isi PC


dengan satu (PC=PC+1)
2. Fetch operand yang pertama (isi lokasi memory yang ditunjuk oleh address
field dari instruksi) dan dikirim ke ALU
3. Fetch isi register R1 yang juga dikirim ke ALU
4. Penambahan di ALU
5. Hasil penjumlahan di load ke R1

Urutan step-step penulisan signal control yang diperlukan untuk melaksanakan


proses diatas untuk organisasi CPU single bus adalah :

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 :

Branch address = update PC + offset X

Dimana : update PC adalah isi PC yang sudah ditambah 1


Offset X adalah nilai konstanta yang terdapat pada field address dari
instruksi branch

Ada dua macam proses branching, yaitu Unconditional dan Conditional.

Contoh :

79
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit

Proses unconditional branch dengan menggunakan organisasi memory single bus,


control sequence nya adalah sebagai berikut :

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.

Contoh : Bila instruksinya Branch on Negative (BRN), step 4 diganti dengan :


4. PCout, Yin, If N then End
Keterangan : isi PC dicopykan ke register Y, sementara itu bit N dicek, jika N=0
maka akan dikeluarkan sinyal END, jika N=1 maka akan dilaksanakan step 5 step 6.

IMPLEMENTASI CONTROL SIGNAL

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.

Instruction Register (IR) akan mengeluarkan instruksi yang dimasukkan dalam


Instruction Decoder. Instruction decoder akan memilih salah satu dari kemungkinan
ratusan instruksi yang dikeluarkan oleh IR (INS1 …. INSn). Clock akan
mengeluarkan signal untuk menggerakkan control step counter untuk menghasilkan
signal untuk diberikan ke step decoder. Step decoder akan memilih satu dari signal
tersebut dan dikeluarkan berupa timing signal T1, T2 … atau Tn secara bergantian.

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.

Gambar 5.5 Rangkaian Hardwired Control

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.

Contoh struktur dari rangkaian encoder yang mengimplementasikan fungsi logic


dapat dilihat pada Gambar 5.6.

81
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit

Gambar 5.6 Rangkaian Encoder yang Men-generate Control signal Zin.

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 + …..

Gambar 5.7 Generation Control Signal END

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.

Gambar 5.8. Contoh Microinstruction Proses “ADD LOC,R1”

Sequence dari CW membentuk microroutine untuk instruksi. Control Word disebut


juga dengan microinstruction.
Microroutine disimpan dalam suatu lokasi memory yang khusus yang disebut
dengan Microprogrammed Memory. Control Unit akan menghasilkan control signal
untuk suatu instruksi dengan membaca CW dari microroutine dari dalam
mocroprogrammed memory. Untuk membaca control word secara sequential dari
microprogrammed memory digunakan Microprogram Counter (µPC). Lihat
Gambar 5.9.
Setiap kali instruksi baru di load ke IR, output dari block “starting address
generator” diload ke µPC. µPC secara otomatis ditambah oleh clock untuk membaca
microinstruction secara berurutan dari memory.

83
Modul Ajar Arsitektur dan Organisasi Komputer Modul 5 – Central Processing Unit

Gambar 5.9 Organisasi Microprogrammed Control 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

a. Add (R4)+, (R3)


b. Move R2, M(R1)
c. Add R4, K
d. Kerjakan soal no 2 untuk instruksi dengan 2 word (tetap pada single bus)

2. Tuliskan control signal lengkap untuk melaksanakan proses-proses di bawah ini,


meliputi fase fetch & fase eksekusi, Pada organisasi cpu double bus,
Diasumsikan 1 instruksi menempati lokasi memory sebesar 1 word

a. Add R2, (R5)+


b. Add R5, M
c. Move R3, N(R4)
d. Kerjakan soal berikut untuk instruksi dengan 2 word : Add M, (R3)+

85
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)

MODUL 6 – INPUT OPUTPUT (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).

Akses dari/ke I/O device


Untuk menghubungkan I/O device dengan computer digunakan bus, yang terdiri dari 3
line: Address, Data dan Control. Lihat Gambar 6.1.

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.

Intruksi khusus untuk I/O transfer :


OUT data, device dari CPU ke OUTPUT
IN data, device dari INPUT ke CPU

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

Address input buffer dari keyboard

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

BUS Data line

Control

Address Data dan Status


Decoder register

I/O
Control Interface
I / O interface untuk input device
Circuit

Input Device

Gambar 6.2 Input Output Interface

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.

DIRECT MEMORY ACCESS (DMA)


DMA adalah suatu rangkaian / control unit yang digunakan untuk mentransfer satu
block data langsung antara external device & main memory, tanpa melibatkan CPU,
dengan kecepatan tinggi.
Program-controlled I / O tidak cocok untuk High-Speed data transfer, karena :
1. Untuk mentransfer 1 word data, diperlukan beberapa intruksi.
2. High-speed device dikontrol oleh clock dengan fixed-frequency (synchronous
operation).

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)

Buffer register : LPR out

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

Gambar 6.3 DMA Controlled Dengan 2 Channel

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)

Perbedaan ISR dengan subroutine :


Subroutine melaksanakan fungsi yang di perlukan calling program, sedangkan ISR
tidak ada hubungannya. Sebelum melaksanakan ISR , CPU harus menyimpan isi status
word (condition code + status indicator) dan register dan di-restore sebelum kembali ke
program yang di interrupt. Proses ini dapat dilakukan otomatis oleh CPU atau oleh ISR.
Timbul time overhead untuk tiap interrupt yang diterima oleh CPU sehingga
menyebabkan adanya memory access. Untuk meminimumkan tidak semua isi register
disimpan.

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

ENABLE & DISABLE INTERRUPT

Ada beberapa situasi dimana CPU harus mengabaikan interrupt request.


Contoh pada computer-print program. Apabila tidak ada data yang akan dicetak,
interrupt harus dibuat disable. Ada situasi dimana beberapa intruksi harus
dieksekusikan tanpa diputus, sebab ISR dapat mengubah data yang dipergunakan.
Harus ada fasilitas enable & disable interrupt → intruksi interrupt-enable & interrupt-
disable.

Untuk single interrupt - request


Apabila device memberikan interrupt-request, sinyal ini harus tetap aktif sampai CPU
menerima request. Interrupt-request ini tidak boleh menimbulkan interupsi yang kedua,
dapat menimbulkan multiple interrupt → infinite loop.

91
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)

Ada 3 cara untuk mengatasi masalah ini :


o CPU mengabaikan interrupt request sampai intruksi pertama ISR selesai
dieksekusikan. Intruksi interrupt-disable sebagai intruksi pertama ISR. Intruksi
interrupt-enable sebagai intruksi terakhir ISR eksekusi return-form-interrupt harus
selesai sebelum interrupt lain terjadi.
o CPU otomatis disable interrupt sebelum mulai mengeksekusi ISR, setelah
menyimpan isi PC dan processor status ke stack. Satu bit pada register PC (interrupt
mask) menunjukkan interrupt disable / enable. CPU menset disable, sebelum
mengeksekusikan ISR. CPU menset enable, setelah eksekusi return-form-interrupt.
o Interrupt handling circuit pada CPU dibuat hanya memberi response pada leading
edge dari sinyal. Interrupt-request, disebut edge-triggering.

Ringkasan Handling Interrupt Dari 1 Device :


1. intruksi pada program membuat enable interrupt di CPU.
2. Device mengirimkan interrupt – request.
3. CPU meng-interrupt program yang sedang dieksekusikan.
4. interrupt dibuat disable.
5. device diberi informasi bahwa request diterima, sebagai response interrupt request
di nonaktifkan.
6. fungsi yang diminta oleh interrupt dilaksanakan.
7. interrupt dibuat enable.
8. eksekusi program yang di interrupt dilanjutkan.

Beberapa Masalah Pada Interrupt Oleh Multiple Device :


o Bagaimana CPU dapat mengenali device yang meminta interrupt.
o Apabila device yang berbeda memerlukan ISR yang berbeda, bagaimana CPU
mendapatkan starting addres s yang tepat untuk tiap device.
o Apabila 1 device sedang menerima service, apakah device lain diperbolehkan
menginterrupt CPU.
o Bagaimana menangani interrupt request yang terjadi bersamaan.

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

Gambar 6.6 Rangkaian Multiple Level Priority dengan Priority Arbitration

Multiple priority dapat diimplementasikan dengan menggunakan line interrupt request


& interrupt acknowledge yang berbeda untuk tiap device. Tiap interrupt request line
diberi level priority yang berbeda. Interrupt request yang diterima dari line dikirim ke
rangkaian priority arbitration. Lihat Gambar 6.6.

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

Gambar 6.7 Rangkaian Daisy Chain

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

Gambar 6.8 Kombinasi Daisy Chain dan Priority Arbitration Circuit


Organisasi ini memungkinkan sebuah device dihubungkan ke beberapa priority level
seperti pada Gambar 6.8. Lebih flexible, tetapi memerlukan rangkaian pengontrol yang
lebih complex.

95
Modul Ajar Arsitektur dan Organisasi Komputer Modul 6 – Input Output (I/O)

STRUKTUR INTERRUPT PDP-11

PDP-11 menggunakan vectored interrupt, I/O device diorganisir dengan priority


group (4). Untuk tiap group digunakan daisy chain. Prioritas CPU ditentukan oleh 3 bit
pada PS register. Lihat Gambar 6.9.

15 14 12 8 7 5 4 3 2 1 0

T N Z V C

Priority Condition Code

Gambar 6.9 Processor Status Register

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.

Ada 2 macam fasilitas : Trace dan Breakpoint


1. Trace :
Interrupt terjadi setelah eksekusi tiap instruksi dari program yang di-debug. ISR
memungkinkan user untuk memeriksa isi register, lokasi memory DSD. Kembali
dari debugging routine, dieksekusikan next instruction dan ISR diaktifkan lagi.
2. Breakpoint :
Interrupt terjadi hanya pada point-point tertentu yang dipilih oleh user. Untuk ini
digunakan instruksi yang disebut trap atau software interrupt.
Jika user akan meng-interrupt program setelah instruksi i, debugging routine akan
mengganti instruksi i + 1 dengan instruksi software interrupt.
Bila program mencapai titik ini program di-interrupt dan debugging routine
diaktifkan. Bila program akan dilanjutkan, debugging routine akan me-restore
instruksi pada i + 1 dan RTI akan dieksekusikan.

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.

Ada 2 macam timing untuk data transfer :

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

Address device &


mode →
read/write

Data

t0
t3
t1 Bus t2

Gambar 6.10. Timing untuk Proses Input Pada Synchronous Bus

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.

Synchronous bus merupakan simple design untuk device interface :


- Clock speed harus disesuaikan dengan delay terpanjang dan interface yang paling
lambat.
- CPU tidak mengetahui apakah data diterima atau tidak. Jika ada kesalahan tidak
dapat dideteksi.

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

Gambar 6.11 Timing Diagram untuk Proses Input Asynchronous

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)

- Kemampuan untuk mendeteksi error

Address
& Mode

Data

Ready

Accept

t0 t1 t2 t3 t4 t5

Bus Cycle

Gambar 6.11 Timing Diagram untuk Proses Input Asynchronous

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.

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

Hamacher (1996) . Computer Organization, 4th ed, Mc.Graw-Hill.

Stallings, W. (2000) Computer Organization & Architecture, Prentice Hall

102

Anda mungkin juga menyukai