Anda di halaman 1dari 29

MODUL PERKULIAHAN 12 (DUA BELAS)

Nama Mata Kuliah : Arsitektur dan Organisasi Komputer


Kode Mata Kuliah : 06330001
Pengampu Mata Kuliah : Sukenda
Semester : III (Tiga)
Waktu : 4 x 50 menit (bobot 4 SKS)
Pertemuan ke : 12
Tempat : Ruang kelas (online/e-learning)

12.1. Manfaat Mata Kuliah


Setelah menyelesaikan mata kuliah ini, mahasiswa akan mampu
mengaplikasikan isi yang telah dipelajari sehubungan dengan rangkaian logika
digital, komponen digital, model komputer dari SAP 1 – SAP 3, Model Komputer
8085 – 8088, Memori, representasi informasi, serta teori yang terkait dengan
arsitektur dan organisasi komputer. Sehingga mahasiswa diharapkan belajar
sungguh untuk mencapai nilai yang maksimal.
Pengaplikasian yang bisa dilakukan pada pertemuan dua belas ini yaitu
bagaimana mahasiswa mampu menerapkan materi yang diterangkan pada
pertemuan dua belas ini, adapun materi yang disampaikan yaitu cakupan materi
CU (Control Unit), Input / Output, dan media penyimpanan yang bisa diterapkan
dalam kehidupan sehari-hari.

12.2. Deskripsi Mata Kuliah


Pada pertemuan keduabelas ini, masih mempelajari tentang CU (Control
Unit), Input / Output, dan media penyimpanan. Matakuliah arsitektur dan
organisasi komputer mempunyai materi yang terkait dengan CU (Control Unit),
Input / Output, dan media penyimpanan, nantinya bisa diaplikasikan dalam
kehidupan sehari-hari. Sub materi yang akan dipelajari merupakan sub materi CU
(Control Unit), Input / Output, dan media penyimpanan yaitu sebagai berikut :
a. CU (Control Unit),
b. Input / Output, dan Media Penyimpanan.
Materi kuliah, yang akan disampaikan nanti, disampaikan dalam proses
belajar mengajar (perkuliahan) secara online. Penyampaian ini diharapkan dapat
mempermudah mahasiswa untuk mempelajari materi CU (Control Unit), Input /
Output, dan media penyimpanan, sehingga mahasiswa dapat belajar secara online
dengan baik. Begitu juga pengampu matakuliah dapat menyampaikan materi
kuliah secara online, sehingga proses belajar mengajar berjalan dengan baik.
Sekiranya penyampaian materi secara sistematis dan juga pembelajaran
mahasiswa secara baik maka tujuan atau manfaat dari materi kuliah bisa dirasakan
dan diaplikasikan dalam kehidupan sehari-hari.
Materi diatas merupakan garis besar yang akan disampaikan pada pertemuan
kedua belas perkuliahan, yang memungkinkan materi tersebut mempunyai sub-
sub materi. Materi yang akan diajarkan bisa saja disampaikan dalam perkuliahan
selama 4 x 50 menit, atau dalam kurun 4 sks, mungkin saja bisa lebih dari 4 x 50
menit jika perkuliahan secara online ini berjalan dengan baik.

12.3. Tujuan Instruksional Khusus


Setelah menyelesaikan pokok bahasan ini, mahasiswa akan dapat
menjelaskan tentang CU (Control Unit), Input / Output, dan media penyimpanan,
baik secara konsep maupun teori yang terimplementasikan dalam kehidupan nyata
di dunia informatika.

12.4. Strategi Perkuliahan


Keterlibatan 2 entitas yaitu mahasiswa dan pengampu matakuliah (dosen),
merupakan hal penting dalam proses pembelajaran. Pada pertemuan kedua belas
ini, proses perkuliahan dilakukan secara online (e-learning). Dimana, 2 entitas
tersebut saling berinteraksi antara satu dengan yang lainnya dalam proses
pembelajaran melalui media internet. Interaksi dua entitas tersebut bisa searah
atau dua arah secara bersama-sama, tentunya masih dalam konteks pembelajaran
matakuliah yang akan disampaikan ke mahasiswa. Mahasiswa sebagai penerima
informasi atau bisa juga sebagai pemberi informasi, informasi yang diterima atau
diberikan berupa materi kuliah. Sedangkan pengampu matakuliah (dosen) sebagai
sumber informasi (sebagai pemateri) yang disebarkan atau dikirimkan ke
mahasiswa, akan tetapi bisa juga pengampu matakuliah sebagai penerima
informasi dari mahasiswa.
Dua entitas yang saling memberi dan menerima informasi materi matakuliah
maka perlu strategi penyampaian yang baik, sehingga transfer informasi bisa
berjalan dengan baik. Strategi penyampaian informasi materi matakuliah dalam
proses pembelajaran disebut juga strategi perkuliahan. Strategi yang diterapkan
kepada mahasiswa akan berbeda dengan pengampu matakuliah. Berikut strategi
perkuliahan pengampu matakuliah yaitu :
a. Menjelaskan tujuan instruksional umum (TIU) dan tujuan instruksional khusus
(TIK) yang harus dicapai,
b. Memberi beberapa pertanyaan untuk mengetahui seberapa jauh mahasiswa
mengetahui mengenai CU (Control Unit), Input / Output, dan media
penyimpanan,
c. Menjelaskan tentang CU (Control Unit), Input / Output, dan media
penyimpanan, dengan macam-macam sub pokok bahasan yaitu yang telah
dijelaskan pada point deskripsi mata kuliah,
d. Menjelaskan tentang penggunaan CU (Control Unit), Input / Output, dan
media penyimpanan dalam kasus (berupa contoh kasus),
e. Menerapkan dalam bentuk studi kasus untuk latihan dan pekerjaan rumah,
f. Memberi softcopy atau link file pdf untuk buku yang dipakai,
g. Memberikan kuis untuk mengetahui tingkat pemahaman mahasiswa.
h. Menutup pertemuan dan menanyakan apakah ada hal-hal yang ingin
ditanyakan, dikomentari, atau dijadikan bahan diskusi,
i. Menyimpulkan materi yang telah dibahas,
j. Memberi gambaran materi yang akan dibahas minggu depan.

12.5. Kriteria Penilaian


Penilaian yang dilakukan terhadap pertemuan kedua belas ini, yaitu dosen
pengampu menilai mahasiswa terhadap aktivitas perkuliahan yang telah dilakukan
secara online (e-learning). Dimana mahasiswa menerima nilai selama proses
pembelajaran yang telah dilakukannya. Sedangkan dosen memberi nilai terhadap
mahasiswa yang mengikuti matakuliah yang diampunya pada saat proses
pembelajaran berlangsung. Sehingga mahasiswa bisa mengetahui nilai yang
diperoleh pada saat perkuliahan selesai. Berikut kriteria penilaian pada saat
perkuliahan berjalan (khususnya pertemuan kedua belas) yaitu :
a. Aktivitas mahasiswa pada saat perkuliahan berjalan, baik berupa pertanyaan
ataupun jawaban. Pertanyaan atau jawaban yang diutarakan oleh mahasiswa
tentunya berkaitan dengan materi yang akan dibahas atau yang telah dibahas.
b. Mahasiswa yang mengumpulkan jawaban atas quiz yang dilontarkan oleh
dosen pengampu.
c. Mahasiswa yang mengumpulkan tugas yang diberikan oleh dosen pengampu.
d. Mahasiswa yang mengikuti proses perkuliahan yang dilakukan secara online
(e-learning).

12.6. Materi Perkuliahan


Pada pertemuan kedua belas kuliah akan dibahas mengenai materi
perkuliahan yang akan dilaksanakan yaitu materi CU (Control Unit), Input /
Output, dan media penyimpanan. Biasanya materi tersebut dikemas dalam pokok
bahasan dan juga sub pokok bahasan. Berikut pokok bahasan yaitu : CU (Control
Unit), Input / Output, dan media penyimpanan, dengan sub pokok bahasan sebagai
berikut :
a. CU (Control Unit),
b. Input / Output, dan Media Penyimpanan.
Berikut penjelasan dari masing-masing sub pokok bahasan akan disampaikan
pada perkuliahan kedua belas ini.
A. Control Unit (CU)
Sub sistem dari CPU, yaitu unit fungsional yang melaksanakan pengendalian
terhadap semua aktivitas yang terdapat pada sistem komputer. Dengan format
instruksi, yang ada maka aktivitas tersebut bisa dilaksanakan oleh sistem
komputer. Format instruksi dikenal istilah instruction set atau machine language,
dan dituliskan dalam sebuah format yaitu instruction format.

1. Format Instruksi
Format instruksi bahasa mesin yang mempunyai 2 komponen dasar, yaitu :
operasi kode sering disebut opcode, dan pilihan address fields. Secara nyata
instruksi bahasa mesin berisi fields lain yang disebut modifiers. Semua op code
yang dibisa dieksekusi langsung oleh prosesor disebut instruction set atau
machine language.

Struktur umum :
Opcode Address Field Address Field …

Opcode Operand 1 Operand 2 …

 Address field disebut juga operand yaitu pengalamatan informasi pada


prosesor yang akan dilaksanakan operasi secara spesifik.
 opcode (kode operasi) : biner tak bertanda yang unik yang berguna untuk
menerangkan operasi yang harus dieksekusi. Contoh : (+, - , /, *)
 Set instruksi : Set dari seluruh kode operasi dari komputer dapat langsung
 Kolom operand : Menyimpan nilai-nilai yang diperlukan processor pada
waktu mengekskusi kaode operasi. Kolom operan disebut juga address field,
dapat berisi :
1. Data / konstanta yang langsung dipakai pada operasi kode operasi
2. alamat lokasi dimana data tersebut disimpan
 Jumlah maksimum operan menunjukan organisasi mesin tersebut.

Format 4 alamat
 Pengalamatan digunakan untuk mengindentifikasi lokasi berikut :
1. Left operand dari operasi biner
2. Right operand dari operasi biner
3. Result / hasil
4. Instruksi berikut untuk eksekusi ketika satu proses selesai
Format Instruksi 4 Alamat :
Op code Left operand Right operand Result Next Instruction
Opcode Operand 1 Operand 2 Hasil Next order

Contoh :
Pengeksekusian assignment : A := B + C – D
Jawab : a. B + C  Temp; kemudian ke langkah 2
b. Temp – D  A
Address Op code Left operand Right operand Result Next Instruction
100 ADD B C Temp 101

101 SUB Temp D A Next address

Format 3 Alamat
 Pengalamatan digunakan untuk mengindentifikasi lokasi berikut :
1. Left operand dari instruksi biner
2. Right operand dari instruksi biner
3. Result / hasil

Format Instruksi 3 Alamat :


Opcode Left Operand Right Operand Result
Opcode Operand 1 Operand 2 Hasil

Contoh : A := B + C – D
Address Opcode Left Operand Right Operand Result
100 ADD B C Temp

101 SUB T D A

 Konsekuensi :
 Instruksi harus ditulis secara berurut
 Diperlukan komponen untuk menyimpan alamat instruksi berikutnya
berupa register yang disebut program counter (PC)

Format 2 alamat
 Format 2-address mengizinkan 2 alamat per instruksi secara khas dari address
berikut :
1. Left operand dari instruksi biner
2. Right operand dari instruksi biner

Format Instruksi 2 Alamat :


Op Code Left Operand Right Operand
Opcode Operand 1 Operand 2

Contoh : eksekusi assigment : A := B + C – D


Address Op Code Left Operand Right Operand
100 MOVE C Temp1 {Temp1  C}

101 ADD B Temp1 {Temp1  B + C}

102 MOVE D Temp2 {Temp2  D}

103 SUB Temp1 Temp2 {Temp2  (B + C) – D}

104 MOVE Temp2 A {A  Temp2}

 Konsekuensi :
 Instruksi harus berurut
 Diperlukan program counter
 Harus ditetapkan program penyimpanan hasil operasi, misalnya hasil
operasi disimpan pada operand 1

Format 1 Alamat
 Satu address field dalam masing-masing instruksi
 Operasi biner, mengimplikasikan lokasi dari kedua operand dan hasil.
 Biasanya operand kedua dan field hasil diimplikasikan ke dalam register
spesifik general-maksud,tujuan,kegunaan.

Format Instruksi 1 Alamat :


Opcode Operand
Op code Operand

Contoh :
ADD Operand A
 Berarti : CON(lokasi memori A) + CON(register R0)  CON(register R0)

Contoh : eksekusi assigemnt A := B + C – D


Address Op code Operand
100 LOAD B {R0  B}

101 ADD C {R0  B + C}

102 SUB D {R0  (B + C) – D}

103 STORE A { A  R0 }

 Konsekuensi :
 Instruksi ditulis secara berurut
 Diperlukan program counter
 Operand kiri dan hasil operasi disimpan dalam suatu register dengan
fungsi umum (specific genaeral-purpose register) salah satunya adalah
akumulator (accumulator).

Format 0 - Alamat
 Instruksi 0-address tidak ada address field.
 Semua operand diasumsikan dalam lokasi spesifik, lokasi spesifik untuk
operand dan hasil dispesialkan dalam kumpulan register yang disebut stack.
 Instruksi dengan format ini mengasumsikan operand-operand sudah ada di
stack. Hasil operasi akan diletakan di stack juga.
 Ekspresi aritmatika yang dijalankan di mesin harus dalam bentuk / notasi
polish.
 Penambahan dan penghapusan hanya bisa dilakukan pada TOP yang disebut
stack pointer.

Contoh mesin 0 alamat adalah kalkulator

C  TOP
B
A
Stack
 Dasar operasi ada 2 yang bisa dilakukan pada stack, untuk penambahan item
baru pada TOP dengan “PUSH” dan penghapusan item pada TOP dengan
“POP”.

Contoh :
PUSH (X) :

X  TOP
C  TOP C
B B
A A
Sebelum Sesudah

POP (X) :

C  TOP
B B  TOP
A A
Sebelum sesudah

Contoh :
Penugasan assigment A := B + C – D
PUSH D
PUSH C
PUSH B {sekarang stack berisi D, C, B}
ADD {sekarang stack berisi D, B + C}
SUB {sekarang stack berisi B + C – D}
POP A {sekarang stack kosong}

2. Penyimpanan Instruksi
Instruksi bahasa mesin disimpan secara berurutan di dalam memori. Bersama-
sama, mereka membangun program bahasa mesin, yang juga disebut object
program. Program sumber yang ditulis dalam Pascal atau FORTRAN, program
sumber tersebut diterjemahkan ke dalam instruksi bahasa mesin. Penterjemahan
ini merupakan tugas dari program yang disebut compiler. Kompilasi merupakan
tugas yang sulit, dan perancangan serta pengembangan kompiler untuk bahasa
tingkat tinggi seperti Ada, Pascal, atau FORTRAN bisa bertahun-tahun.
Contoh :
Pascal Source Program Object Program
LOAD B
if a > b then SUB A (Is A > B?)
c := c + d Compiler BNEG YES
else LOAD C (No, It is not)
c := c – d SUB D
STORE C (C : = C – D)
BR DONE
Yes : LOAD C (Yes, It is)
ADD D
STORE C (C := C + D)

Setelah instruksi bahasa mesin sudah diproduksi oleh kompiler, instruksi


disimpan dalam memori. Satu aspek yang lebih fundamental dari perancangan
sebuah komputer Von Neumann yaitu aturan (rule) dari interchangeability of
instruction and data :
There is no distinction in memory between instructions and data.
An instruction may become a piece of data, and a data value may
be executed as if it were an instruction.
Aturan ini secara efektif mengatakan bahwa sebuah string biner dalam memori
tidak mempunyai suatu priori interpretation atau preset meaning. Sekumpulan
digit biner mengandung sebuah pengertian hanya ketika kita menggunakannya.
Kemudian digit biner mengasumsikan interprestasi apa saja yang tepat untuk
menggunakan digit biner. Jika kita menggunakan nilai biner berikut :
10010000
sebagai address, biner tersebut akan diinterprestasikan sebagai nilai biner tidak
bertanda 144. Jika kita menggunakan biner tersebut sebagai operand dalam
sebuah integer ADD (asumsi representasi 2-komplemen), biner tersebut akan
menjadi kuantitas desimal bertanda –112. Jika kita mencoba untuk mengeksekusi
nilai ini, biner tersebut akan menjadi sebuah instruksi; bagian dari biner tersebut
akan menjadi op code, dan bagian dari biner tersebut akan menjadi kolom
address.
Mengapa ini demikian suatu instruksi yang sebenarnya merupakan tipe data
lain, dan format instruksi pada semua komputer merupakan uraian format lain
untuk merepresentasikan informasi. Kita sekarang bisa, dalam suatu isi,
menyelesaikan diskusi mulai pada bagian I dan daftar 5 klas dasar data yang ada
pada tingkat mesin :
1. Unsigned binary
2. Signed integers
3. Characters
4. Floating point
5. Instructions
Ini sungguh berbeda dari bahasa tingkat tinggi, yang melaksanakan perbedaan
dengan kuat diantara instruksi dan data. Dalam lingkungan bahasa tingkat tinggi,
itu merupakan kebodohan untuk dibicarakan tentang pengeksekusian konstanta
+3, atau pengurangan 1 dari suatu if statement. Ini perbedaan diantara instruksi
dan data yaitu pelayanan yang berlainan yang disediakan untuk kita oleh bahasa
tingkat tinggi untuk membuat suatu lingkungan yang kondusif untuk
pemrograman. Bahasa mengijinkan kita untuk memikirkan tema secara
konseptual perbedaan kode dan data, dan menghadirkan kita dari intermixing
keduanya, secara kebetulan atau dengan disengaja.
Pertama dari semua, kesalahan bahwa akan fatal dalam bahasa tingkat tinggi
tidak secara cepat fatal dalam bahasa mesin. Untuk contoh, dalam bahasa mesin,
jika kita gagal untuk stop pada end of dari program kita, kita boleh memulai untuk
eksekusi struktur data kita dengan hasil yang tidak bisa diprediksi. Sama halnya,
jika kita melewati batas dari suatu array, kita bisa secara kebetulan mengambil
instruksi dan proses array sama dengan jika array tersebut data. Dalam bahasa
mesin, tidak ada situasi demikian akan segera disusun sebagai kesalahan karena
ketidak adaan “watchdog” atau “proofreader” dalam bentuk bahasa penterjemah
yang meyakinkan bahwa instruksi kita dilaksanakan penuh dengan arti dan
konsisten.
Kedua implikasi yang luas yaitu kita bisa dengan sengaja memodifikasi
sebuah program sama dengan jika program tersebut merupakan sebagian kecil
dari data. Untuk contoh :
LOAD X
ADD Z
STORE X
.
.

X: SUB Y
Kelompok pertama dari instruksi yang dirubah oleh perintah SUBtract ke dalam
sesuatu yang tidak ada. Ketika instruksi yang sebenarnya dieksekusi, instruksi
tidak dioperasikan secara luas pada alamat Y; dalam fakta, instruksi tidak secara
luas suatu instruksi subtract.

3. Penyimpanan Instruksi
Komponen dari control unit yaitu : program counter, yang berisi alamat dari
instruksi selanjutnya untuk dieksekusi. Selama kita mengeksekusi instruksi secara
sekuensial, PC biasanya akan menambahkan dengan 1 (atau dengan suatu
konstanta, k, jika konstanta mengambil lokasi memori k untuk memegang satu
instruksi). Oleh karena itu, PC diasosiasikan dengan suatu incremental, unit
fungsional yang menambahkan 1 ke nilai yang dikirimkan kepadanya. Kita
representasikan unit fungsional ini ke dalam cara berikut :
Incrementor
+1

PC
Program Counter
Jika membutuhkan register untuk memegang instruksi aktual yang sedang
dieksekusi. Ini disebut dengan instruction register (IR). Layout dari IR akan
diidentikasi ke struktur dari suatu instruksi bahasa mesin. Itu merupakan, jika
bahasa mesin terdiri dari 2 kolom alamat, IR yang beralamat 2 register.

IR OP Code Address 1 Address 2

Penyelesaiannya, kita membutuhkan unit fungsional yang menentukan tipe


operasi yang berjalan dalam IR dan mengirimkan waktu yang diperlukan dan
sinyal kendali untuk mengimplementasikan operasi tersebut. peralatan ini disebut
instruction decoder. Instruksi dekoder dihubungkan ke porsi op-code IR, dan itu
menentukan op-code yang diindikasikan. Organisasi ini ditunjukan dalam gambar
12.8 : Instruction Decoder.

IR Op code Address field(s)

ADD
Instruction SUB
decoder MOVE To the logic circuits

Gambar 12.8 : Instruksi Dekoder

Satu dan hanya satu dari lines output dekoder dalam gambar 12.8 yang akan
di “ON”, tergantung pada keadaan line output yaitu ADD, SUB, MOVE, dst. Line
output ini akan dihubungkan ke rangkaian hardware aktual yaitu gerbang open
dan close, yang melaksanakan transfer diantara bus-bus, dan instruksi yang
lainnya carry out ADD, SUBtract, atau MOVE.
Sama dengan memori dekoder, suatu instruksi dekoder secara inisial bisa
dipandang sama dengan komponen fungsional yang sangat kompleks, tetapi
merupakan sesuatu yang sungguh sederhana. Semua itu merupakan kenyataan
yang bisa diimplementasikan secara berulang statement if / then / else berikut :
If op-code = 0 then
We have an ADD {assume ADD = op code 0}
Else
If op-code = 1 then
We have a SUB {assume SUB = op code 1}
Else
If op-code = 2 then
We have a MOVE {assume MOVE = op code 2}
Else
.
.
.
jika kita mengasumsikan 3-bit kolom op-code (yang tidak secara realistik kecil
selama 3-bit hanya akan memberikan 8 op code yang unik), beberapa kode operasi
ditunjukkannya, dan simbol-simbol untuk gerbang AND, OR, dan NOT, maka
instruksi dekoder akan diimplementasikan seperti ditunjukkan dalam gambar 12.9
berikut :
Op code
IR Address field(s)

ADD (op code = 000)

SUB (op code = 001)

MOVE (op code = 010)

Instruction decoder

Gambar 12.9 : Instruksi Dekoder (secara Internal)

Dengan penelusuran ke dalam logika dari rangkaian dekoder kita akan melihat
bahwa satu dan hanya satu dari lines outputi yang akan “true” yang terhubung ke
kode operasi yang berjalan dalam IR.

4. Seluruh Operasi pada Komputer


Pengeksekusian program komputer tidak lain hanya suatu urutan yang
berulang pengambilan dan pengeksekusian satu instruksi, sampai suatu program
mengeksekusi sebuah instruksi berhenti atau sampai program menjumpai sebuah
kesalahan fatal yang menghadirkan program dari keberlanjutan. Dengan
Algoritma, sebagai berikut :
Repeat
Fetch phase
Execute phase
Until (halt) or (fatal error)
Selama fetch phase, kita mengambil instruksi berikutnya untuk dieksekusi
dan phase tersebut dalam IR (bagaimana alamat dari instruksi pertama dalam
program dengan inisialisasi dipanggil ke dalam PC, dan bagaimana ketika proses
dari pengeksekusian program dimulai). Fetch phase merupakan sebagian untuk
semua instruksi. Kita menuju ke memori dan mengambil instruksi ketika suatu
alamat berjalan dalam PC, karena PC terdiri dari alamat instruksi selanjutnya
untuk dieksekusi. Ketika memori READ diselesaikan, instruksi sedang diletakkan
dalam MBR. Kita kemudain memindahkan instruksi ke dalam IR. Dengan akhir,
kita menambahkan PC dengan 1 dan juga PC akan memperbolehkan instruksi
selanjutnya ketika kita mengambil fetch phase berikutnya.
Jika kita menggunakan notasi A  B yang berarti bahwa kita mentransfer isi
register B ke dalam register A, dan READ, WRITE yang berarti memori dibaca
dan ditulis yang mensinyalkan diantara control line read/write, operasi fetch
phase bisa diringkas secara singkat berikut ini (catatan : kita telah mencakup
hanya transfer data, bukan timing signals. Keterurutan menunjukkan tergantungan
timing) :
Gambaran formal dari fetch phase
1. MAR  PC {move the PC to the MAR}
2. READ {fetch the instruction}
3. IR  MBR {move it into the IR}
4. Incrementor  PC
5. PC  Incrementor {incrementor PC}
Selama execution phase, kita menentukan instruksi apa yang di dalam IR dan
isu perintah yang dibutuhkan untuk carry out instruksi. Secara alamiah, urutan
yang nyata dari sinyal akan berbeda untuk setiap instruksi. Untuk contoh,
instruksi 1 alamat :
LOAD address {CON(address)  CON(R0)}
Bisa bermasalah keterurutan transfer yang ditunjukkan (dimana indeks yang
menunjukan berbagai sub kolom dari IR) berikut :
Execution phase dari pemanggilan instruksi
1. MAR  IRaddress
2. READ
3. R0  MBR
Kolom address dari IR ditransfer ke MAR, dan isi dari sel di-READ dan
ditempatkan dalam MBR. Dengan akhir, MBR dipindahkan ke register R0,
penyelesaian LOAD instruksi.
1-alamat menambahkan instruksi :
ADD address {CON(address) + CON(R0)  CON(R0)}
yang bisa menghasilkan dalam urutan transfer yang ditunjukan berikut :
Execution Phase dari suatu Instruksi Add
1. MAR  IRaddress
2. READ
3. Adder  MBR
4. Adder  R0
5. ADD
6. R0  adder
Akhirnya, bukan kondisi instruksi pencabangan :
JUMP address
akan di-carry out-kan dengan satu transfer berikut :
Execution Phase dari sebuah instruksi JUMP
1. PC  IRaddress
Untuk carry out instruksi pencabangan, kita secara singkat memindahkan
address pencabangan ke PC. Kemudian selama fetch phase berikutnya, kita akan
mengambil instruksi yang alamat ada dalam PC, yang sekarang alamat dimana
kita menginginkan pencabangan (Gambaran Formal dari Fetch Phase).
Ada 2 cara yang mendasar untuk mengimplementasikan urutan sinyal yang
terjadi selama execution phase. Satu merupakan pekerjaan sinyal dalam hardware.
Yaitu semua urutan transfer dan kendali yang ditunjukan dalam Execution phase
dari pemanggilan instruksi, Execution Phase dari suatu Instruksi Add, dan
Execution Phase dari sebuah instruksi JUMP diimplementasikan dalam istilah
fixed electrical circuits. Hasilnya disebut hard-wired processor, dan komputer
lebih mudah dibangun dengan cara ini.
Bagaimanapun juga, komputer modern mengimplementasikan prosesor dalam
cara yang berbeda. Diuraikan sebagai bahasa tingkat tinggi yang diterjemahkan ke
dalam bahasa mesin, bahasa mesin bisa diterjemahkan ke dalam sesuatu bahasa
tingkat lebih rendah lagi yang disebut microcode, suatu saat disebut dengan
firmware karena firmware merupakan cara tengah diantara hardware dn software.
Pengertian dari sebuah instruksi bahasa mesin dispesifikasikan oleh sebuah
program yang ditulis dalam microcode yang mendefinisikan dengan jelas apa
yang terjadi diantara mesin ketika instruksi bahasa mesin dipertemukan.
Macam-macam instruksi yang ada dalam microcode yang merupakan
tingkatan yang sangat rendah dan secara langsung dihubungkan ke rangkaian
komputer.
1. Open gerbang / tutup gerbang (dari register ke bus)
2. Transfer data diantara bus
3. Inisialisasi sinyal kendali (seperti READ, WRITE, ADD)
4. Pengiriman sinyal timing
5. Menunggu unit tetap dari waktu
6. Pengujian yang terdiri dari bit-bit ke dalam sebuah register.
Urutan instruksi microcode yang mendefinisikan instruksi bahasa mesin
disebut microprograms, dan sebuah prosesor yang mengerjakan cara ini disebut
microprogrammed processor. Microprogram disimpan dalam sebuah control
memory yang spesifik, yang biasanya sebuah ROM. Ketika sebuah instruksi
ditempatkan dalam IR, kita menyandikan instruksi dan kemudian mengambil dan
mengeksekusi microprogram yang mendefinisikan instruksi tersebut. Organisasi
ini didiagramkan dalam gambar 12.10.

IR Op code

To the microcontroller,
Microprogram which will execute this
Instruction microporgam
decoder Microprogram

Control memory

Gambar 12.10 : Struktur dari sebuah Microprogrammed

Jika mengingat kembali pada abstraksi level organisasi fungsional dan level
hardware maka level ini sering disebut microprogramming atau level firmware.
Primitif pada level ini yaitu : microprogams, control memory, dan
microcontrollers yang mengeksekusi microprograms ini. Dan uraian yang untuk
bisa dimengerti dengan primitif bahasa tingkat tinggi seperti if/then, assignment,
dan pengulangan while dengan mempelajari lapisan bahasa mesin, juga kita mulai
untuk memahami primitif bahasa mesin dengan mempelajari lapisan microcode.
Lihat tabel 12.4 berikut ini :

Tabel 12.4 : Level Tiga dari Abstraksi Komputer


High-Level Language Machine-Language Firmware
Abstraction Abstraction Abstraction

A := B + C LOAD B MAR  IRaddress


ADD C READ
STORE R0  MBR

Di kemudian hari microprogramming, keberadaan microprogram ini diselesaikan


secara sembunyi dari user, yang tidak bisa membicarakan apakah komputer
mereka merupakan hardwire atau microprogrammed. Mesin yang lebih baru,
bagaimanapun, suatu saat mengijinkan user untuk punya mengakses ke
microcode. Malahan bisa mengimplementasikan penggunaan ROM, control
memory yang sering diimplementasikan penggunaan RAM, dan itu disebut
writable control store (WCS). Pengguna di kemudian hari bisa menulis,
mengembangkan, dan menyimpan microporgram milik mereka. Ini mengijinkan
mereka untuk :
1. Optimalisasi eksekusi yang terdiri dari operasi-operasi untuk memberikan
keunggulan hardware baru.
2. Mensimulasi, dalam firmware, sekumpulan instruksi pada komputer yang
berbeda. (ini disebut emulasi).
3. Mendefinisikan kode operasi yang baru.
B. Input / Output dan Media Penyimpanan
Input / output merupakan topik yang sulit untuk dibicarakan dalam istilah
umum karena I/O merupakan mekanik yang tergantung pada operasi yang
dilakukan oleh sebuah komputer. Tetapi yang akan dibicarakan disini pada
struktur organisasi komputer yang umum. Perkembangan I/O juga terus
berkembang dengan cepat pada kurun setiap waktu, produk I/O yang berbeda
terus membanjiri pasar.
Pada kesempatan ini, I/O diperkenalkan dari sisi karakteristik umum untuk
semua peralatan I/O, bukan pada pembuatan produksi, dan yang akan
berkontribusi dalam sebuah pengertian standar I/O. Berikut merupakan klas
peralatan I/O :
a. Peralatan yang mencatat informasi dalam bentuk mesin yang bisa dibaca
(machine-readable), seperti magnetic encoding, untuk tujuan menyimpan
informasi dalam jangka waktu yang lama. Peralatan ini biasanya disebut mass
storage devices dan meliputi disks, tapes, dan cassettes.
b. Peralatan yang mencatat informasi dalam bentuk yang mudah dipahami oleh
manusia : alphabetic, pictorial atau spoken. Peralatan ini merupakan sesuatu
yang dihubungkan ke, dengan sendirinya, sebuah peralatan I/O.
Macam-macam peratalan I/O
Input Output
Keyboard Video display terminal
Touch Panel Hard-copy terminal
Light Pen Graphics terminal
Voice input unit Plotter
Digitizer Voice output unit
Analog input device Environmental control
Punch card Analog output
Mark sense reader Phototypesetter
Optical scanner Line printer
Badge reader Braille printer
Fingerprint reader Disk (input and output)
Telephone buttons Tape (input and output)
Cash register controls Cassette (input and output)

1. Mekanisme Akses
Secara umum, peralatan I/O tidak secara random access. Peralatan I/O
menggunakan 2 tipe yang berbeda dalam mekanisme akses, disebut direct acces
dan sequential access. Direct access mempunyai karakteristik yaitu :
a. Semua data yang diperlukan bisa diakses pada setiap saat.
b. Informasi yang disimpan dialamatkan secara unik.
c. Alamat bisa secara langsung diakses, tetapi waktu yang dibutuhkannya untuk
mengambil sebuah informasi tidak konstan; itu tergantung pada kedalaman
lokasi informasi.
Beberapa macam peralatan penyimpanan direct-access (DASD) yang ada seperti :
a. Floppy disks
b. Hard disks
c. Drums
d. Cassettes yang bisa dialamati.
Piringan disk dilapisi dengan ferric oxide, dan informasi dicatat secara
magnetis dalam lingkaran sejajar (konsentrik), disebut track, pada piringan disk.
Masing-masing track dibagi ke dalam sejumlah unit dengan ukuran yang tetap
disebut sector, yang masing-masing mempunyai address yang unik.
Contoh jika disk mempunyai 100 tracks (00 – 99), dan 500 sectors per track (000
– 499), maka alamat sector 23456 yang berarti 23 track, 456 sector dari awal
tracknya. (masing-masing track terdiri dari indikator awal dimana kita memulai
hintungan sector). Biasanya disk mempunyai beberapa piringan, dan masing-
masing piringan bisa mempunyai 100 – 500 tracks dengan 10 – 100 sectors per
track. Sector sendiri (individual) bisa terdiri dari 128 – 1.024 bytes informasi.
Kapasitas disk cukup lumayan lebar.
Pengambilan seluruh sector pada disk mencakup tiga langkah yaitu :
a. Pindahkan head read/write ke track yang dituju/benar (seek time)
b. Tunggu untuk berputur ke sector yang benar dibawa head read/write (latency)
c. Baca sector yang masuk (transfer time)
Total waktu yang dibutuhkan untuk membaca salah satu sector pada disk yaitu :
Total waktu = seek time + latency + transfer time
Biasanya total waktu yang dibutuhkan tergantung pada sector yang ada untuk
diakses. Jika total waktu merupakan lokasi sebuah sector pada track sama posisi
yang berjalan dari head read/write, maka pergerakan head tidak diperlukan dan
seek time akan bernilai 0. Sama halnya, jika mengakses sebuah sector yang
dibutuhkan kebetulan dibawah head read/write, maka latency akan diperkirakan 0.
Berikut ini merupakan gambar piringan pada disk :
Read / write
arm
Read / write
Tracks heads

recording surface
(ferric oxide)

Invidual sectors

Stepper motor to move read


Rotation / write heads back and forth

Gambar 12.11 : Layout Piringan Disk


Tabel 12.5 berikut menunjukkan waktu sederhana best-sace/worst-cast untuk
jenis disk, dengan asumsi 100 tracks, 1 msec untuk lintasan track, 50 sectors per
track, dan kecepatan rotasi 1.200 rpm. Satuan waktu milliseconds (ribuan second).

Tabel 12.5 : Berbagai macam Kebutuhan Waktu (msec) untuk Disk


Seek Time Latency Transfer Time Total Time
Best case 0 0 1 1
Worst case 100 50 1 151
Average case 50 25 1 76

Peralatan lainnya yaitu : drum, drum dengan satu head read/write untuk
masing-masing track. Oleh karena itu, tidak pernah memindahkan head read/write
dan seek time pada drum selalu 0. Drum akan bersih dari waktu tunggu akibat
rotasi dan transfer, karena seek time berkurang, drum biasanya mempunyai waktu
akses yang lebih rendah daripada disk.
Lebih ringkas mekanik dari peralatan DASD selalu mempunyai 2
karakteristik berikut :
a. Semua informasi diidentifikasikan dan diakses pada alamat (address) yang
unik.
b. Waktu akses tergantung pada lokasi dari informasi yang diambil.
Tracks

Sectors
Rotation

Read/Write Head

Gambar 12.12 : Drum Magentik

Mekanisme akses dasar yang kedua untuk peralatan I/O disebut sequential
access. Dengan akses sekuensial, bisa dihubungkan dari kedua kebutuhan dasar
dari akses secara acak. Tidak perlu banyak bahwa informasi diakses ke dalam
alamat yang unik. Perhatian, untuk mengalokasikan suatu lokasi data, kita
mencari secara sekuensial semua informasi yang disimpan pada sebuah peratalan
sampai kita menemukan lokasi yang dicari. Contoh pengetahuan yang baik dari
sebuah sequential-access storage device (SASD) yaitu tape magnetic reel-to-reel.
Piringan tape dilapisi dengan ferric oxide, dan informasi secara magnetis direkam
dalam baris yang disebut channels. Tape modern terdiri dari 9 channel, untuk
memberikan penyimpanan suatu karakter 8 bit dan sebuah bit parity untuk
pengecekan kesalahan. Banyaknya karakter yang bisa dipaket bersama dalam
sejumlah tempat yang spesifik yang disebut tape density, dan pada mesin yang
berjalan atau yang lainnya yaitu sekitar 800 atau 1.600 karakter per inch. Panjang
tape 2.200 feet, secara teoritis menyimpan :
2.200 ft x 12 in/ft x 1.600 chars/in = 42.240.000 chars
Tempat yang tidak digunakan untuk penyimpanan disebut interrecord gap atau
tape gap diantara masing-masing chunk (blok) data yang dibaca.

One character (1018 = ‘A’)


Ferric oxide coating Channels
0
0
1
0
0
0
0
0
1

Number of characters per inch = tape density


Gambar 12.13 : Layout Informasi pada Tape Magnetik

Blok 1 Blok 2

Record gap 1 Record gap 2

Gambar 12.14 : Record Gap pada Tape Magnetik


Gap 1 dalam gambar 12.14 akan memberikan tempat untuk tape drive berhenti
setelah membaca blok 1, dan untuk memulai kembali membaca blok 2. Ukuran
gap tergantung pada karakteristik dari tape drive, tetapi untuk lebih mudah
“kelipatan” 30, 50 atau setiap 70 persen dari masukan tape, mengurangi
efektivitas storage per reel untuk 10 sampai 20 juta karakter lebih baik dari pada
42 juta karakter untuk memudahkan perhitungan.

2. Ukuran Record dan Blocking Factor


Bahasa tingkat tinggi seperti PASCAL, FORTRAN, dan BASIC,
menspesifikasikan operasi I/O hanya dalam istilah bagaimana banyaknya
informasi yang dibutuhkan dalam sebuah program. Contoh, jika kita sedang
membaca sebuah integer 3-digit dari sebuah file disk, kita berpikir bahwa hanya 3
digit yang kita butuhkan, bukan ukuran atau layout fisik sectors suatu disk :
read(textfile, i:3)

read(1,100) i
100 format(13)
Format informasi, sesuai penglihatan oleh user, disebut logical records. Bahasa
tingkat tinggi memberikan kita untuk memperkirakan sesuatu dan program dalam
istilah logical record.
Dalam organisasi komputer tidak memperpanjang pembahasan logical
records. Semua peralatan I/O bekerja dalam unit yang fixed-size yang disebut
physical records yang ukurannya merupakan turunan karakteristik fisik dari
semua peralatan. Seperti :
a. Tape magnetik : sudah tidak bekerja pada ukuran record fisik yang tetap,
tetapi memberikan user untuk menspesifikasi ukuran record fisik ketika
penulisan pertama pada tape.
b. Semua transfer ke dan dari sebuah peralatan I/O mengambil tempat dalam unit
dari satu atau lebih record fisik. Seperti sectors pada Disk.
c. Card reader/punch 80 karakter (satu card)
d. Line printer 132 (atau 136) karakter (satu baris)
e. VDT (line oriented) 80 karakter (satu baris)
f. VDT (screen oriented) 1.920 karakter (80 x 24 screen)
Kita tidak pernah melaksanakan operasi I/O pada level ini, kita sebaiknya bekerja
dalam tema ukuran record fisik peralatan, lebih sering ukuran record logical yang
ada ke dalam program kita. Kita selalu mentransfer unit record fisik satu ke atau
dari peralatan I/O. Contoh lagi untuk mencetak integer 3-digit pada satu baris dari
132 karakater baris printer, dalam bahasa tingkat tinggi, kita akan menuliskan :
writeln(textfile, i:3)

write(1,100) i
100 format(13)
Tetapi pada tingkat organisasi fungsional, itu akan menghasilkan sebagai berikut :
a. Alokasi tempat 132 karakter untuk baris ini.
b. Pindahkan sebanyak 3 karakter ke dalam posisi baris 1, 2, dan 3.
c. Pindahkan blanks ke dalam posisi 4, 5, …, 132.
d. Print baris 132 karakter.
Beberapa record logical terdiri dari sebuah record fisik yang disebut blocking
factor. Ada beberapa keuntungan mempunyai blocking factor yang luas, contoh
bahwa kita mempunyai 5 blocking factor sebagai berikut :
One physical record

LR LR LR LR LR
1 2 3 4 5

An individual logical record

a. Pertama-tama program kita meminta sebuah record logikal (lewat operasi


read), kita akan menuju peralatan input dan mengamil satu record fisik, yang
terdiri dari 5 record logikal. Kita akan meloloskan record logikal LR 1 untuk
program. 4 waktu berikutnya program kita meminta input, kita tidak
memerlukan pelaksanaan operasi input sebab data sudah siap di memori dan
bisa diberikan ke program secara cepat. Selagi masukan data dari disk
operasinnya relatif lambat, pengurangan operasi input ini akan menghasilkan
kecepatan yang signifikan terhadap eksekusi program.
b. Bisa menambah utilisasi sebuah peralatan tape magnetik. Untuk rujukan bisa
lihat gambar 12.15, kita lihat masing-masing record fisik dibatasi atas kedua
side oleh interrecord gaps. Seandainya kita asumsikan bahwa gap = ¾ in.
Nilai umum density tape yaitu 800 karakter per inch, dan record logikal
masing-masing 80 karakter, maka jika kita simpan record logikal tanpa block,
masing-masing satunya akan menerima 1/10 in. Utilisasi tape mencapai 12
persen.
1/10” ¾” 1/10” ¾”
LR LR
1 2
Record gap Record gap
Blocking factor = 1
Gambar 12.15 : Interrecord Gap

c. Ada keterbatasan untuk menambahkan blocking factor yaitu menyediakan


sejumlah memori pada komputer dan sejumlah tempat yang bisa dialokasikan
untuk operasi input. Perlu diingat bahwa menyelesaikan read atau write
memerlukan satu record fisik.

3. Modus Transfer
Bagaimana informasi ditransfer di antara dua peralatan yaitu peralatan I/O
dan memori komputer ?, semua peralatan I/O disusun dari 2 bagian yang terpisah
yaitu mekanik I/O dan kontroler I/O. Mekanika merupakan mekanik sederhana,
elektrikal, dan/atau komponen optik yang membangun peralatan ini : keys, paper
feeders, screen, tape heads, dan sebagainya. Kontroler I/O merupakan komponen
yang mengatur aliran informasi diantara peralatan I/O dan komputer.
Kontroler I/O terdiri dari sebuah buffer sementara yang menyimpan data yang
ditransfer ke atau dari komputer. Kontroler juga menerima signal kontrol (seperti
START) dari komputer dan mengaktifkan kegiatan mekanika I/O dalam
merespon. Ketikas operasi selesai, kontroler bisa mentransfer isi dari buffer ke
memori utama komputer. Kontroler juga memasukan sekumpulan signal kontrol
sederhana, seperti DONE atau ERROR, menjelaskan status operasi I/O sudah
selesai. Lihat Gambar 12.16.
START
Signal from the processor

Buffer Data to or from memory


I/O mechanism
I/O controller

Signals to processor
DONE
ERROR

The I/O device Data path


Control signal

Gambar 12.16 : Struktur Umum Peralatan I/O

Ada beberapa yang lebih baik dan klas-klas yang terstandarisasi dari kontroler
I/O. Akronim PIO (parallel input/output) yang menunjukan klas kontroler yang
luas yang menangani transfer secara paralel sebuah byte 8-bit antara bus data dan
peralatan I/O, ini ditunjukkan pada gambar 12.17, Akronim USART dan UART –
untuk universal (Synchronous and) Asynchronous Receiver and Transmitter
menunjukkan klas kontroler yang bisa membawa byte data 8-bit dan
mengirimkannya secara serial ke peralatan I/O, satu bit ssetiap saat, seperti
gambar 12.18

(PIO)
To/from data bus Parallel input-output To/from I/O device
and memory controller

Other control and timing signals such as START, DONE, and ERROR

Gambar 12.17 : Kontroler I/O Paralel


(USART)
To/from data bus Serial input-output To/from I/O device
and memory controller

Other control and timing signals such as START, DONE, and ERROR

Gambar 12.18 : Kontroler I/O Serial

Teknik yang sederhana untuk mentransfer data antara peralatan I/O dan
komputer disebut programmed input/output. Dengan teknik ini, proses sederhana
mengaktif peralatan I/O secar langsung (secara umum dengan beberapa jenis
signal START), dan menunggu sampai signal DONE peralatan I/O, pada waktu
karakter di register spesial ke dalam kontroler I/O atau prosesor. Prosesor
mengecek kesalahan dan memindahkan karakter ke dalam memori jika kesalahan
tidak diketemukan.
Masalah dengan programmed I/O (gambar 12.19) yaitu operasi I/O sangat
umum, sangat lambat dalam perbandingan dengan kecepatan internal komputer.
Komputer mengeksekusi instruksi dalam 1 atau 2 microsecond atau kurang lebih
100 nanosecond, ketika operasi I/O bisa mencapai milisecond, second, atau satuan
menit untuk penyelesaian.
1
I/O START
Processor Memory
I/O mechanism controller 3
DONE
2
Data path
Control signals
Gambar 12.19 : I/O Program

a. Prosesor membangkitkan sebuah perintah START untuk memulai operasi I/O.


b. Prosesor menunggu sampai kontroler I/O membangkitkan signal DONE, yang
berarti bahwa operasi diselesaikan.
c. (jika input) Prosesor memindahkan karakter ke dalam lokasi memori yang
ada.
Satu solusi yang lebih umum dari pemanggilan masalah ini untuk
menggunakan interrupts. Interupsi yaitu signal ke prosesor bahwa suatu kejadian
yang spesifik telah terjadi. Ketika signal interupsi dibangkitkan, prosesor harus
memberhentikan apa saja yang sedang dilakukan prosesor dan menangani
kejadian tersebut. Prosesor suka tidak suka menseting sebuah clock alarm untuk
mengingatkannya guna menyelesaikan tugas pada waktu yang tersedia, berhenti
bekerja pada sesuatu yang tidak diperlukan, dan masuk dengan cepat untuk
menyelesaikan tugas sesungguhnya (sebelumnya) ketika alarm berbunyi.
Secara spesifik, ketika signal interupsi datang, prosesor mengerjakan berikut
ini :
a. Interupsi tugas T dimana pengeksekusian prosesor berjalan.
b. Simpan status mesin (register-register, memori, dsb) selanjutnya T bisa
dimulai kembali pada waktu berikutnya.
c. Pengecekan untuk melihat kejadian apa yang menyebabkan interupsi.
d. Pengeksekusian sekumpulan program spesial dengan kejadian yang spesifik
ini (disebut interrupt handler).
e. Ketika interrupt handler selesai, pengembalian status mesin ke kondisi
sebelum terjadi interupsi.
f. Mulai kembali tugas T dari titik yang sudah ada ketika diinterupsi.
Dalam kasus ini, kita ditunjukkan tentang penyelesaian operasi I/O, dan signal
interupsi akan dihubungkan ke kedatangan signal DONE dibangkitkan oleh
kontroler I/O. Interrupt-driven I/O akan ditunjukkan pada gambar 12.20.
1
I/O START Processor
2 Memory
I/O mechanism controller 4
Interrupt
signal Data path
3
Control signals

Gambar 12.20 : Interrupt-Driven I/O

Keterangan :
a. Isu perintah START untuk operasi I/O.
b. Prosesor mengosongkan untuk menangani komputasi lain.
c. Ketika signal interupsi terjadi, prosesor menceritakan bahwa I/O dikerjakan,
berhenti apa yang pernah dilakukan.
d. Pindahkan karakter ke memori.
Sekarang tidak ada menunggu dan waktu terbuang kecuali untuk kebutuhan
waktu overhead guna pelayanan interupsi. Overhead ini akan dikorespondenkan
ke langkah 2 dan 5 dalam penjelasan pengolahan interupsi: penamaan,
penyimpanan dan pengembaliam status dari tugas T.
Interupsi merupakan salah satu konsep penting dalam arsitektur komputer,
dan interupsi digunakan dalam area yang lebih luas dalam pengolahan I/O.
Interupsi digunakan untuk signal yang rusak total (fatal error) yang terjadi dalam
sebuah program, yang telah mempunyai kerusakan yang kuat, atau clock yang
rendah membutuhkan kelonggaran.
Satu masalah yang tersisa diselesaikan dengan kedua-duanya programmed
dan interrupt-driven I/O. Dari kedua kasus ini prosesor bertanggung jawab untuk
memindahkan penerimaan karakter baru ke dalam memori, karena hanya path ke
dalam memori ke prosesor. Jika pembacaan sebuah sektor yang terdiri dari
informasi 512 byte, prosesor akan diinterupsi pada waktu 512, satu untuk masing-
masing byte. Jika byte yang datang secara moderat cepat, prosesor bisa
menghentikan bagian yang signifikan dari waktu pengerjaan interupsi pengolahan
yang relatif lambat dan menyimpan karakter dalam buffer.
Sebuah path yang ada dalam komputer yang disebut port. Port yang
digunakan untuk ke dalam memori terdiri dari register MAR dan register MBR,
dan sebuah Decoder. Port yang hanya ke dalam memori dilanjutkan ke prosesor
yaitu Programmed I/O dan Interrupt-Driven I/O. Kita bisa menambahkan kedua
port ke dalam memori secara langsung menuju kontroler I/O (Controller I/O).
kontroler I/O jenis ini, disebut Direct Memory Access (DMA) Controller.

Memory
3
DMA
I/O 1 Data path
I/O mechanism controller 2
ST

Control signals
AR

In
T

te
sig rru
na pt Processor
4 l

Gambar 12.21 : Input/Output via Peralatan DMA

Keterangan :
a. Panggil alamat memori buffer ke dalam kontroler I/O.
b. Isu perintah START untuk inisialisasi operasi I/O.
c. Kontroler DMA mentransfer sebuah masukan record fisik secara langsung ke
dalam alamat memori yang spefisik.
d. Prosesor diinterupsi ketika masukan record fisik sudah ditransfer dan operasi
I/O diselesaikan.
Peralatan DMA bisa menempatkan satu karakter ke dalam memori secara
langsung dan juga mengurangi overhead dari prosesor. Ada register spesial dalam
kontroler DMA yang disebut DMA address register (DAR). Ini merupakan
address byte pertama memori buffer yang akan menyimpan data. Sekarang ketika
kita membicarakan operasi START, peralatan DMA akan menyebabkan sebuah
record fisik dibaca, dan tanpa bantuan prosesor. DMA akan menyimpan karakter
dalam lokasi memori A, A + 1, A + 2, …., dimana A adalah alamat di dalam
DAR. Kontroler DMA terdiri dari 2 register, disebut word count (WC) yang
memberikan spesifikasi yang jelas bagaimana byte disimpan dalam memori. Satu
record fisik dibaca, tetapi hanya byte WC yang disimpan dalam buffer. Sisanya
ditunda. Ketika semua karakter i sudah ditransfer (dimana i merupakan ukuran
record fisik dari peralatan), sebuah interupsi diisukan ke prosesor dimana transfer
masukan diselesaikan. Ini mengurangi beberapa interupsi yang bisa ditangani oleh
prosesor dari i (banyaknya karakter per record fisik) ke 1.
Jika keduanya kontroler I/O dan prosesor berusaha untuk akses memori pada
beberapa saat, unit memori akan memberikan ke peralatan I/O, dan prosesor sudah
menunggu untuk satu siklus. Ini menyebabkan I/O sangat tergantung waktu
operasi. Ada yang punched card, tape, atau lengan disk dalam mosi yang tidak
bisa dihentikan. Kegagalan melayani peralatan dalam periode waktu yang tetap
bisa menyebabkan kehilangan informasi. Metode transfer ini disebut cycle
stealing karena kontroler DMA secara berangsur “steal” sebuah siklus memori
dari prosesor. Lihat gambar 12.22 berikut ini :

Memory

BUS

DMA
Processor
controller

I/O mechanism

Gambar 2.22 : Kontroler DMA Meggunakan Cycle-Stealing

Kita bisa teruskan proses ini lebih “off-loading” dan lebih ke arah pekerjaan
I/O dari prosesor dan sebagian ke kontroler I/O. Contoh peralatan DMA
menangani masalah penyimpanan karakter ke dalam memori, tetapi I/O lainnya
berhubungan dengan tugas yang ditangani oleh prosesor yang bisa menangani
dimanapun, leaving kekosongan prosesor untuk mengerjakan pekerjaan yang
berdaya guna. Beberapa mundane I/O ini meliputi tugas-tugas :
a. Code conversion: contoh konversi kode punch-card atau kode paper tape ke
ASCII.
b. Echoing: menampilkan pada layar jenis karakter yang ada pada keboard.
c. Parity checking: pengecekan paritas karakter yang masuk dan penanganan
karakter jika karakter tersebut tidak benar.
d. Editing: penanganan khusus karakter editing (seperti : BACKSPACE,
DELETE, RUBOUT).
e. Optimization: pengoperasian peralatan I/O untuk meyakinkan bahwa peralatan
tersebut digunakan seefisien mungkin.
Kontroler I/O yang bisa melakukan pelebaran daerah operasi I/O yang kompleks
disebut I/O channels. Channel ini bisa mengeksekusi program I/O yang spesial
dan, dalam berbagai cara, disukai oleh sebagian komputer spesial-purpose. Jika
sebuah peralatan I/O secara ekstrim lebih cepat, maka hanya satu peralatan pada
setiap saat bisa menggunakan channel. Untuk memperpendek periode waktu,
channel akan sungguh-sungguh memasukan kapasitas transmisi untuk melayani
satu peralatan I/O.
Channel yang mengendalikan peralatan yang relatif lambat, seperti VDTs,
ada alternatif yang bisa menangani beberapa peralatan secara simultan. Contoh
jika sebuah VDT bisa mentransfer karakter pada setiap 2 msec (ekuivalen 500
karakter per second), dan VDT mengambil 100 channel untuk seluruh proses dan
menyimpan karakter tersebut, maka channel bisa menangani 20 terminal setiap
kali rotasi, dan menjamin bahwa channel bisa diambil kembali untuk terminal
pertama sebelum channel mempunyai karakter lainnya untuk ditransmit (sejak 20
x 100 sec = 2 msec). Ini disebut multiplexor channel, dan proses interleaving
transmisi dari beberapa peralatan disebut multiplexing. Jika interleaving
dikerjakan pada basis byte per byte, interleaving tersebut disebut character
multiplexing. Jika interleaving didasarkan pada data unit yang luas, interleaving
tersebut disebut block multiplexing. Berikut gambar 12.23 merupakan diagram
multiplexed channel.

Multiplexor Control
I/O mechanisms
Channel Data

Gambar 12.23 : Multiplexor Channels

Perhatian dari pembuatan peralatan special-purposechannel I/O, kita bisa


membuat channel I/O pada komputer general-purpose dalam kebenaran yang
dimilikinya.; akibatnya, tidak tergantung pada I/O komputer. Penghilangan untuk
beberapa sistem komputer besar yaitu satu atau lebih minikomputer atau
mikrokomputer untuk menangani setiap facet dari input/output. Ini membebaskan
prosesor utama untuk bekerja secara solely pada program user tanpa kekhawatiran
pada semua input/output.

12.7. Ringkasan
Pengenalan ALU merupakan komponen kedua dari tiap-tiap pertumbuhan
komputer hipotesis kami. Tetapi ada beberapa eksplorasi prinsip dasar dari
struktur bus yang diasosiasikan dengan komponen interconnecting. Dalam
kehidupan nyata, kita akan mempunyai sekumpulan unit fungsional untuk
mengimplementasikan operasi-operasi aritmetika dan logika.
Kita telah membahasa model arsitektur Von Neumann, kemudian komputer
nyata kita menjumpai ke depan yang tidak melihat atau berprilaku yang secara
nyata seperti model yang idealis ini (seperti mereka bisa mempunyai regsiter yang
banyak, bus-bus tambahan, atau format instruksi yang lain). Struktur alternatif
lainnya disebut pipeline processor. Dalam tipe ini prosesor suatu instruksi
dikodekan dan carried out dalam stage.
Kita sudah mensurvai beberapa prinsip dasar dari pengolahan I/O dan sudah
mempresentasikan wacana dari daerah subjek. Di dalam bukan area dari
organisasi komputer yang ada sedikit konsep dasar dan juga ketergantungan pada
rancangan spesifikasi dari satu mesin yang spesifik.
Ketika kita memulai untuk belajar struktur I/O dari sistem yang spesifik,
kemungkinan kita akan menemukan I/O yang berbeda pada mesin yang berbeda
karena setiap mesin memungkinkan untuk mempunyai peralatan I/O yang lain.
Tetapi setidak-tidaknya apa yang telah kita bahas merupakan dasar peralatan I/O
yang dipakai pada mesin komputer.

12.8. Referensi Bacaan


Pertemuan kuliah yang kesebelas akan dilakukan secara online, dengan
menggunakan teknologi internet beserta software aplikasi yang mendukung ke
arah pembelajaran secara online. Pada petermuan kesebelas sekiranya perlu
referensi untuk bacaan bagi mahasiswa agar tercipta suatu kondisi pembelajaran
yang baik, walaupun pembelajaran tersebut melalui online (e-learning). Adapun
referensi bacaan untuk mahasiswa yaitu :
a. Malvino, “Digital Computer Electronics”, TMH Editing.
b. Andrew S. Tanembaum, “Structured Computer Organization Third Edition”,
Prentice Hall International, London.
c. Hamacher, Vranesic, Zaky, “Computer Organization Fourth Edition”,
McGraw-Hill, Singapore, 1996.

12.9. Quiz / Tugas


Pada pertemuan kesebelas perkuliahan yang kita lakukan, sekiranya perlu
diadakan quiz untuk mengetahui tingkat pemahaman mahasiswa terhadap materi
perkuliahan yang telah disampaikan. Adapun soal quiz yaitu sebagai berikut :
Soal nomor 1 sampai nomor 7 mengasumsikan bahwa sebuah disk dengan
karakteristik fisik sebagai berikut :
2 piringan (1 platter, top dan bottom)
64 tracks per piringan
64 sectors per track
256 characters per sector
1.200 revolusi per menit
untuk memindahkan lengan read/write x tracks (x  1) mengambil (5 +
0.5x) msec
1. Berapa karakter yang bisa disimpan pada unit disk tersebut ?
2. Apa ukuran record fisik dari unit disk tersebut ?
3. Berapa unit alamat yang ada pada disk tersebut ?
4. berapakah waktu pengambilan tercepat yang mungkin untuk satu sektor ?
5. berpakah waktu pengambilan terlambat yang mungkin untuk satu sektor ?
6. Berpakah waktu rata-rata pengambilan ?
7. Asumsikan bahwa kita menambahkan head read/write untuk setiap track
(dalam esensi, pembuatan sebuah drum). Hitung kembali kondisi best-
case/worst-case dan waktu rata-rata pengambilan untuk satu sektor.

Soal nomor 8 sampai nomor 10 mengasumsikan sebuah tape magnetik dengan


karakteristik sebagai berikut :
Tape density: 1.600 karakter per inch
Tape length: 2.200 feet
Physical block size: 800 karakter
Record gap: 1 inch.
8. Berapa karakter yang bisa disimpan pada tape tersebut ?
9. Apakah prosentase tape yang diutilisasikan untuk menyimpan informasi yang
meaningful ?
10. Asumsikan bahwa ukuran block ditigakan. Hitung kembali banyaknya
karakter yang disimpan dan prosentase utilisasi. Apakah konsekuensi negatif
dari perubahan tersebut ?

Z := A + B – C, selesaikan instruksi (rumus) tersebut dengan format instruksi dari


4 sampai dengan 0 alamat pada control unit di sistem komputer !

Sebutkan dan jelaskan fungsi dari komponen yang membentuk Central


Processing Unit !

Anda mungkin juga menyukai