Diktat Kuliah Organisasi Komputer
BAB I ABSTRAKSI SISTEM KOMPUTER 1.1
Pendahuluan
Pelajaran Pelajaran desain, desain, struktur, struktur, dan organisasi organisasi internal sistem sistem komputer, komputer, aturan dari komputer komputer ini merupakan merupakan sekumpulan sekumpulan jumlah jumlah yang sama cepat, sistem yang kompleks kompleks seperti halnya automobile, automobile , sebuah penunjuk misil, atau jaringan telepon. Orang dengan latar belakang yang berbeda-beda dan tujuan yang akan mengecek sistem yang komplit dengan cara yang berbeda serta pemisahan sistem ke dalam perbedaan yang menyeluruh “building block ” Kita lihat lihat salah salah seoran seorang g yang yang lebih lebih baik baik penget pengetahu ahuann annya ya dan dengan dengan leluas leluasaa menggunakan sistem automobile, automobile, yaitu :
1. Dari pandangannya bahwa suatu automobile machine yaitu kumpulan dari seluruh subsis subsistem tem seper seperti ti engine engine,, transm transmiss ission ion,, electr electrica ical, l, exhaus exhaustt yang yang berfun berfungsi gsi dan berinteraksi yang selaras untuk untuk tujuan pelayanan yang sesuai. Automobile designer yaitu kepentingan dalam kumpulan beberapa subsistem, tetapi 2. Automobile juga ditunjukkan tentang bagaimana pendesainannya dan meletakkannya kemudian juga penyelesaian produk yang yang akan memenuhi kebutuhan dan keinginan keinginan pemakai.
3. Automobile Automobile engineer engineer yaitu menunjukkan menunjukkan tidak hanya dengan fungsi fungsi keseluruh keseluruhan an subsis subsistem tem,, tetapi tetapi juga juga belajar belajar desain desain dari dari yang yang lebih lebih primit primitif if dan dasar dasar rancan rancang g bangun blok automotiv seperti valves, cams, gears, gaskets, gaskets, dan seals dan seals.. Penyelesaiannya, orang kimia dan metalurgi mempertimbangkan suatu mobil pada level abstraksi yang paling bawah secara sederhana yaitu suatu kumpulan elemen dan material sepeereti besi, steel, alumunium, karet, dan kaca. Analog Analogii ini diper diperlua luass ketika ketika mempela mempelajar jarii beber beberapa apa sistem sistem yang yang besar besar serta serta kompleks, apakah itu automobile atau komputer. Pandangan dari yang kita pecah-pecah dan belajar suatu sistem disebut tingkat abstraksi, dan komponen yang kita pelajari secara umum disebut blok bangunan atau primitif dari abstraksi. Contoh : 1. Kita Kita pelajari pelajari sistem sistem S dengan dengan pelajar pelajaran an 3 kompon komponen en A, B, dan C yang yang berinter berinteraks aksii diantara mereka tanpa diketahui untuk apa A, B, dan C disusun. Jika di dalamnya bekerja dari komponen A, B, dan C dengan mementingkan kebenaran untuk pengertian sistem S, tingkat abstraksi ini tidak dipikirkan dan kita akan memilih tingkat abstraksi yang berbeda. Seperti pada contoh ke-2 Contoh 1 dari Sistem S
A
B
Contoh 2 dari Sistem S
C
A1
B1 B2
A2
A
IF - UTAMA
Versi/Revisi : 1/0
C1
B3
B
C
Halaman : 1/87
Diktat Kuliah Organisasi Komputer
2. Kita pelajar pelajarii sistem sistem S yang yang disusu disusun n dari dari komponen komponen A, B dan dan C, subkompone subkomponen n yang ada yaitu A1, A2, B1, B2, B3, C1 dan saling berhubungan. Kita sudah mendapatkan tambahan tambahan informasi informasi tentang tentang susunan susunan internal internal sistem sistem S. Bagaimana Bagaimanapun, pun, kita juga boleh menjadikan hasil dalam uraian yang terinci dari kejelasan tingkat-bawah ti ngkat-bawah yang menghalangi kita dari pengertian operasi dari beberapa sistem. A. Manfaat Sistem komputer merupakan sistem elektronika yang sangat kompleks sehingga akan mengal mengalami ami kesuli kesulitan tan dalam dalam memaha memahami mi sistem sistem terseb tersebut. ut. Salah Salah satu satu cara cara untuk untuk memudahkan dalam mempelajari sistem komputer yaitu dengan mengenalkan bentuk sistem sistem yang yang keseha keseharia rianny nnyaa sudah sudah dirasa dirasakan kan oleh oleh kita kita semua semua sepert sepertii yang yang telah telah dijela dijelaska skan n diatas diatas.. Selanj Selanjutn utnya ya diarah diarahkan kan ke bentuk bentuk yang yang memung memungkin kinkan kan untuk untuk dipelajari oleh kita semua dengan cara mengapresiasikan sistem komputer dalam abstraksi sistem. Di abstraksi sistem kita bagi dalam tingkatan yang berbeda-beda tetapi dalam satu fungsi sistem yaitu sistem komputer. Adapun manfaat yang bisa diambil dalam mempelajari abstraksi sistem komputer yaitu : 1. Kem Kemudah udahan an unt untuk mem memaham ahamii siste istem m komp komput uter er yan yang san sangat komp komple leks ks dengan mengasumsikan sistem yang kesehariannya sudah sering kita gunakan. 2. Kemudahan dalam mempelajar jari sist istem komputer dengan membagi tingkatan yang berbeda sehingga kita bisa memahami sistem komputer secara parsial. B. Pokok Bahasan Pada pembahasan materi abstraksi sistem komputer akan dijelaskan per tingkat atau level dari suatu abstraksi sistem komputer yaitu mulai level 1 sampai dengan level 5. Dimana setiap level mempunyai karakteristik sendiri-sendiri.
1.2 1.2
Abst Abstra raks ksii sec secar ara a Hir Hirar arki ki
Tidak Tidak satu satu bentuk bentuk cara cara untuk untuk mengkl mengklasi asifik fikasi asikan kan cara cara yang yang berbed berbedaa dalam dalam mempelajari sistem komputer. Sama halnya, teminologi asosiasi dengan sudut pandang yang berbeda ini yaitu bukan suatu standar yang menyeluruh. Berikut merupakan cara yang populer dalam mempelajari abstraksi sistem komputer. Gambar abstraksi sistem komputer yaitu :
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 2/87
Diktat Kuliah Organisasi Komputer
2. Kita pelajar pelajarii sistem sistem S yang yang disusu disusun n dari dari komponen komponen A, B dan dan C, subkompone subkomponen n yang ada yaitu A1, A2, B1, B2, B3, C1 dan saling berhubungan. Kita sudah mendapatkan tambahan tambahan informasi informasi tentang tentang susunan susunan internal internal sistem sistem S. Bagaimana Bagaimanapun, pun, kita juga boleh menjadikan hasil dalam uraian yang terinci dari kejelasan tingkat-bawah ti ngkat-bawah yang menghalangi kita dari pengertian operasi dari beberapa sistem. A. Manfaat Sistem komputer merupakan sistem elektronika yang sangat kompleks sehingga akan mengal mengalami ami kesuli kesulitan tan dalam dalam memaha memahami mi sistem sistem terseb tersebut. ut. Salah Salah satu satu cara cara untuk untuk memudahkan dalam mempelajari sistem komputer yaitu dengan mengenalkan bentuk sistem sistem yang yang keseha keseharia rianny nnyaa sudah sudah dirasa dirasakan kan oleh oleh kita kita semua semua sepert sepertii yang yang telah telah dijela dijelaska skan n diatas diatas.. Selanj Selanjutn utnya ya diarah diarahkan kan ke bentuk bentuk yang yang memung memungkin kinkan kan untuk untuk dipelajari oleh kita semua dengan cara mengapresiasikan sistem komputer dalam abstraksi sistem. Di abstraksi sistem kita bagi dalam tingkatan yang berbeda-beda tetapi dalam satu fungsi sistem yaitu sistem komputer. Adapun manfaat yang bisa diambil dalam mempelajari abstraksi sistem komputer yaitu : 1. Kem Kemudah udahan an unt untuk mem memaham ahamii siste istem m komp komput uter er yan yang san sangat komp komple leks ks dengan mengasumsikan sistem yang kesehariannya sudah sering kita gunakan. 2. Kemudahan dalam mempelajar jari sist istem komputer dengan membagi tingkatan yang berbeda sehingga kita bisa memahami sistem komputer secara parsial. B. Pokok Bahasan Pada pembahasan materi abstraksi sistem komputer akan dijelaskan per tingkat atau level dari suatu abstraksi sistem komputer yaitu mulai level 1 sampai dengan level 5. Dimana setiap level mempunyai karakteristik sendiri-sendiri.
1.2 1.2
Abst Abstra raks ksii sec secar ara a Hir Hirar arki ki
Tidak Tidak satu satu bentuk bentuk cara cara untuk untuk mengkl mengklasi asifik fikasi asikan kan cara cara yang yang berbed berbedaa dalam dalam mempelajari sistem komputer. Sama halnya, teminologi asosiasi dengan sudut pandang yang berbeda ini yaitu bukan suatu standar yang menyeluruh. Berikut merupakan cara yang populer dalam mempelajari abstraksi sistem komputer. Gambar abstraksi sistem komputer yaitu :
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 2/87
Diktat Kuliah Organisasi Komputer
Level
Urainnya
1
Operating System Level
2
Programming Programming Language Language Level
3
Functional Functional Organization Level
Pandangan suatu Komputer
Package, jobs, canned routines
Kotak hitam yang menyelsaikan masalah
Programs, statements, loops, condition
Kumpulan dari primitif penyelesaian masalah dalam bahasa tingkat tinggi
Memory, processors, I/O devices, registers
Kumpulan dari seluruh subsistem hardware
Gates, circuits, chips, boards
Kumpulan dari komponen elektrik yang rumit
Electrons, atoms, magnetism
Sistem fisik yang disusun dari elemen partikel
Computer Science Electrical Engineering Engineering 4
Hardware Design Electrical Engineering Engineering Level Physics
5
The Laws of Physics − Pada Pada level level abstra abstraksi ksi yang yang tertin ter tinggi ggi (level (level 1) yaitu yaitu secara secara umum umum disebu disebutt level operating system atau lebih sederhana level system. system. Pada level abstraksi ini, komputer atau mungkin mungkin jaringan jaringan komputer komputer dianggap dianggap kotak hitam yang bisa menyelesaik menyelesaikan an masa masala lah. h. Pada Pada leve levell ini ini secar secaraa sede sederh rhan anaa kita kita bisa bisa memi memint ntaa komp komput uter er untu untuk k mengeksekusi tasks seperti paket statistik, pengolahan teks, atau display grafik.
− Pada level abstraksi berikutnya (level 2), kita bisa berkomunikasi dengan komputer lewat perintah bahasa tingkat tinggi, bagian yang disebut program dari operating system atau system atau system software lainnya. Program ini menerjemahkan kebutuhan kita dan melaksanakan keinginan task atau skedul program lainnya untuk mengeksekusinya. Primitif umum pada level ini yaitu : Log on / Log off off procedures procedures Account Account number, number, password password , dan billing procedures Listing of of file directories directories Running programs dalam directory-nya directory-nya Running spesial “package “package”” programs Entering data Entering data pada keyboard Hasil cetakan dari printer Pengiriman dan penerimaan e-mail IF - UTAMA
Versi/Revisi : 1/0
Halaman : 3/87
Diktat Kuliah Organisasi Komputer
ming Language Language Level . Abstraksi ini disebut dengan Program dengan Programming
− Pada level ini (level 3) suatu kotak hitam yang tidak sesederhana, level abstraksi ini, kita bisa mengerti misteri pekerjaan level sebelumnya (level 1). Bagaimana komputer mengev mengevalu aluasi asi secara secara aktual aktual suatu suatu relasi relasi operat operator or “ yang lebih tepat ”, ”, bagaimana bagaimana komputer bisa melakukan penyelesaian konstanta 1 ke variabel integer c, dan apa yang yang terjad terjadii pada pada bagian bagian komput komputer er ketika ketika statem statement ent diekse dieksekus kusi, i, sebaga sebagaii contoh contoh statement berikut : If a > b then c := 1 Level ini disebut level functiona level functionall organization organization ( organisasi organisasi fungsional ) fungsional ) beberapa waktu yang yang lalu lalu dise disebu butt leve levell conven conventio tiona nall machi machine ne ( mesin mesin konvensio konvensional nal ). ). Yang mempel mempelajar ajarii bahwa bahwa komput komputer er sebaga sebagaii kumpul kumpulan an seluru seluruh h subsis subsistem tem yang yang secara secara langsung mengelola storage dan aliran data serta instruksi diantara jalur komunikasi komput komputer er secara secara intern internal. al. Kita mempel mempelaja ajari ri bagaim bagaimana ana komput komputer er secara secara aktual aktual melakukan operasi penyelesaian masalah pada level tertinggi ( high-level ) yang ditulis dalam FORTRAN atau Pascal. Pada level ini, primitive y ang dipelajari yaitu : Memory cell (seperti cell (seperti words atau byte) byte) Memory menjemput / store / store operations operations Registers Adders, Shifters, Multipliers Multipliers,, dan Increment ors dan Incrementors Instruksi Bahasa Mesin Teknik Pengalamatan Pengkodean instruksi Processors Representasi Binary, Representasi Binary, Octal , dan Hexadecim dan Hexadecimal al . Kontroler Input / Input / Output Level ini mengasumsikan bahwa pandangan mengenai sistem komputer. Dua tema yang menghubungk menghubungkan an level abstraksi abstraksi ini yang beberapa waktu digunakan digunakan dalam proses perubahan. Organisasi Organisasi Komputer Komputer dan Arsitektur Komputer yang tidak berarti sama. Organisasi Komputer yaitu sumber-susmber sistem komputer, yang dipelajari yaitu bagaimana komponen-komponen diorganisasi dan diintegrasi dari fungsi sistem komputer dengan benar. Arsitektur Komputer Komputer yaitu sistem komputer dan kumpulan dari sumber-sumber baik secara virtual atau nyata yang bisa dirasakan dari sistem oleh user .
− Pada level ini (level 4) akan diawali dengan suatu pertanyaan bagaimana memory, processors, registers, registers, dan adders bekerja secara aktual ?. Untuk menjawab pertanyaan ini, berarti akan masuk ke teknik elektro sehingga perpindahan level ini disebut level Hardware Design, Design, bebera beberapa pa waktu waktu lalu lalu disebu disebutt Logic Design. Design. Dalam Dalam komput komputer er modern ada penambahan level desain antara level 3 dan level 4, yang disebut level microcode atau level level firmware firmware.. Leve Levell ini ini akan akan memp mempel elaja ajari ri komp komput uter er seba sebaga gaii kumpulan kumpulan dari gerbang-ge gerbang-gerbang rbang dan komponen-k komponen-kompo omponen nen elektronik elektronik yang rumit yang mengelola aliran data, timing, dan sinyal kontrol diantara rangkaian internal. Level ini membangun suatu blok yaitu : AND-gates AND-gates Resistor OR-gates Kapasitor NOT-gates NOT-gates Sinyal Kontrol Konverter Konverter Sinyal Timing Timing dan dan Clock Transistors Voltage dan Level arus
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 4/87
Diktat Kuliah Organisasi Komputer
Level ini memberikan pengetahuan bagaimana menyusun blok bangunan khas level 3.
− Pada level ini (level 5) mempelajari laws of physic (ketentuan secara fisik), yang akan mempelajari tentang blok bangunan seperti : Electrons Kinetik Protons Thermodinamik Atoms Magnetis Forces dan force Fields Konduktivitas Juga akan dimulai pengertian prinsip-prinsip fisik pada komponen elektronik dan gerbang-gerbang yang disusun dari level 4.
1.3
Organisasi Komputer
Organisasi komputer merupakan pelajaran struktur internal sistem komputer. mengenai sumber-sumber hardware yang disediakan, melayani tujuan user , dan hubungan diantara keduanya. Suatu pertanyaan untuk mempelajari organisasi komputer sebagai berikut : 1. Bagaimanakah konstanta numerik direpresentasikan di dalam komputer ? 2. Bagaimanakah variabel direpresentasikan dan disimpan di dalam komputer ? 3. Bagaimanakah komputer mengimplementasikan aritmatika, logika, dan operator relasi ? 4. Bagaimanakah kita mengimplementasikan aliran sekuensial normal dari kontrol ?
5. Bagaimanakah kita memilih aliran dari kontrol untuk mengimplementasikan kondisi percabangan dan pengulangan dengan penggunaan diagram aliran ( flow diagram).
6. Bagaimanakah input / output diimplementasikan ? 7. Bagaimanakah statement bahasa tingkat tinggi disimpan secara internal dan bagaimanakah komputer secara aktual mengeksekusi ? Pertanyaan tadi mungkin sebagian akan kita pelajari pada bab-bab selanjutnya.
1.4
Ringkasan
Biasanya suatu sistem terdiri dari sub sistem yang menyusun sistem tersebut, sehingga satu sistem bisa memiliki lebih dari satu sub sistem. Dengan dasar bahwa sistem terdiri dari sub sistem yang membangun sistem tersebut maka memungkinkan kita dalam mempelajari suatu sistem per bagian sub sistem yang ada pada sistem tersebut. Begitu juga pada sistem komputer, sehingga kita mudah untuk mempelajari sistem komputer. Disamping itu, kita bisa mempelajari sistem komputer berdasarkan level yang sudah diklasifikasikan ke dalam 5 level. Masing-masing level memiliki karakteristik dan fungsi yang berbeda. Dengan adanya level pada tingkat abstraksi sistem komputer, kita bisa mempelajari sistem komputer tersebut secara parsial.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 5/87
Diktat Kuliah Organisasi Komputer
BAB II REPRESENTASI INFORMASI
2.1
Pengenalan Hardware Komputer
Komputer secara hardware adalah rangkaian elektronik dan perlengkapan mekanik secara elektronis yang disebut dengan komputer. Sedangkan arsitektur didefinisikan sebagai fungsi operasi dari masing-masing unit hardware dalam sistem komputer dan mengalirkan informasi serta pengendalian unit yang ada. Bentuk sederhananya, sebuah komputer yang terdiri dari 5 bagian utama yang secara fungsional berdiri sendiri, yaitu : 1. Input 2. Memory 3. Arithmetic dan logika 4. Output
5. Control unit . Kita bisa lihat dari 5 bagian utama pada gambar berikut :
Arithmetic and Logic
Input Memory
Control Unit
Output I/O
Processor
• Input adalah unit yang memasukkan kode informasi dari seorang operator, dari peralatan mekanik secara elektronik seperti keyboard pada video terminal, atau dari komputer lain dalam jalur komunikasi digital.
• Informasi disimpan pada salah satu di memory, sedangkan performansinya akan diatur oleh arithmetic and logic dalam mengoperasikannya.
• Langkah-langkah prosesnya menurut program yang disimpan dalam memory. • Setelah selesai, hasil dari proses akan dikirimkan ke unit output . • Semua aksi yang berjalan akan dikendalikan oleh control unit . Sekumpulan instruksi yang melakukan sebuah task disebut program. Biasanya program disimpan di memori. Kemudian prosesor mengambil i nstruksi yang membangun sebuah program dari memori, suatu saat, dan melakukan operasi yang diinginkannya. Data adalah bilangan atau karakter, yang di-encode, yang digunakan sebagai operand oleh instruksi. Bagaimanapun juga data digunakan oleh hampir semua informasi digital. Pendefinisian data yaitu kemungkinan besar ada didalam program yang dianggap
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 6/87
Diktat Kuliah Organisasi Komputer
data jika data diproses oleh program lain. Sebagai contoh task dari compiling bahasa tingkat tinggi dari sebuah program sumber ke dalam instruksi dan data mesin. Program sumber sebagai data input-an ke program compiler . Compiler akan menerjemahkan program sumber ke sebuah program bahasa mesin. Informasi menangani komputer dengan kode (sandi) dalam format yang cocok. Kesehariannya Hardware bekerja sesuai dengan rangkaian digital yang hanya mengenal 2 keadaan yang stabil, yaitu ON dan OFF. Masing-masing bilangan, karakter, atau instruksi dikodekan sebagai string dari digit biner yang disebut dengan bits, yang mempunyai satu dari 2 nilai yaitu 0 atau 1. Bilangan biasanya dipresentasikan dalam posisi notasi biner. A. Tujuan dan Manfaat Sesuai dengan pokok permasalahan yang dibahas bahwa sistem komputer hanya mengenal dua keadaan (bentuk) yaitu : ON dan OFF, sehingga perlu dipikirkan bagaimana cara untuk merepresentasikan sejumlah simbol yang dikenal oleh manusia bisa dikenal juga oleh sistem komputer ?. Demikian juga, hasil dari pengolahan simbol yang dimasukkan ke sistem komputer akan ditampilkan atau disampaikan dan sekaligus bisa dimengerti oleh menusia (pengguna). Dengan adanya materi ini diharapkan kita bisa memahami representasi simbol pada sistem komputer. Untuk itu, tujuan dari pokok bahasan materinya representasi informasi yaitu : 1. Memahami representasi simbol-simbol (huruf, angka, dan simbol khusus) yang harus dilakukan oleh manusia agar bisa dimengerti oleh sistem komputer. 2. Memahami sistem bilangan yang dipakai oleh manusia dan sistem komputer. Sedangkan manfaat yang bisa diambil dari pokok bahasan materi representasi informasi yaitu : 1. Memahami basis bilangan. 2. Bisa melakukan manipulasi perhitungan yang bisa dimengerti oleh manusia dan sistem komputer. B. Pokok Bahasan Pada pembahasan materi representasi informasi akan dijelaskan berdasarkan sub pokok bahasan atau materi yang berkaitan dengan representasi informasi yaitu : 1. Representasi Bilangan Biner Unsign (Tidak Bertanda). 2. Representasi Bilangan Integer Sign. 3. Representasi Bilangan Floating-Point . Bilangan Floating-Point . Kesalahan Floating-Point .
2.2
Representasi Informasi
Dalam mempelajari representasi informasi, sekiranya perlu dijelaskan tentang representasi eksternal dan representasi internal. Representasi eksternal yaitu : suatu cara dimana informasi direpresentasikan dan dimanipulasi oleh seorang programer dalam beberapa bahasa pemrograman atau notasi bahasa perintah. Representasi internal yaitu : suatu cara dimana informasi secara aktual disimpan dan dimanipulasi secara internal pada sistem komputer. Representasi eksternal biasanya didasarkan pada pengetahuan notasi aljabar standar yang telah dikenal dengan baik seperti bilangan desimal dan representasi integer bertanda/magnitude. Representasi internal, pada penjelasan lainnya, dipilih untuk
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 7/87
Diktat Kuliah Organisasi Komputer
memfasilitasi konstruksi hardware komputer, untuk efisiensi yang maksimum, untuk biaya yang minimum, dan pembuatan hardware yang handal.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 8/87
Diktat Kuliah Organisasi Komputer
Secara internal, semua bangunan komputer masa depan menyimpan informasi dengan menggunakan sistem bilangan biner . Biner adalah sistem bilangan posisi basis 2. sistem bilangan posisi yaitu : satu dimana nilai dari suatu digit yang tidak hanya tergantung pada nilai absolut tetapi juga pada posisinya dalam suatu bilangan. Jika representasi d i (i = 0, 1, …n) digit dalam suatu sistem bilangan posisional, maka interprestasi dari bilangan sebagai berikut :
d 0d 1d 2 … d n yaitu : d 0 r + d 1 r + d 2 r … d n r 0 n
n-1
n-2
(2.1) dimana r disebut radix atau basis dari sistem bilangan. Nilai r juga secara jelas lebih spesifik yang bagaimanapun juga beberapa simbol yang ada unik dalam sistem. Sistem bilangan basis r selalu terdiri dari digit r dengan jelas. Contoh : Desimal : r = 10 d i ∈ {0,1,2,3,4,5,6,7,8,9} Biner : r=2 d i ∈ {0,1} Quarnery : r=4 d i ∈ {0,1,2,3} Informasi biner dalam komputer digital disimpan di memory atau register-register prosesor. Isi register berupa :
1. Kontrol informasi, yaitu sebuah atau kumpulan bit yang menggunakan urutan tertentu dari sinyal perintah untuk kebutuhan manipulasi data dalam register-register lainnya. 2. Data, yaitu bilangan atau informasi kode biner lainnya yang dioperasikan untuk memenuhi kebutuhan hasil komputasi. Sedangkan tipe data yang ada pada komputer digital bisa diklasifikasikan sebagai salah satu dari kategori berikut : 1. Bilangan, penggunaannya dalam komputasi aritmatika. 2. Huruf pada alphabet, penggunaannya dalam pemrosesan data. 3. Simbol khusus lainnya, penggunaannya untuk tujuan tertentu.
A.
Representasi Biner Tak Bertanda (Unsigned Binary) Sebuah bilangan pada basis, atau radix, r adalah suatu sistem yang menggunakan simbol nyata untuk r digit. Bilangan direpresentasikan oleh sebuah string dari simbol-simbol digit. Untuk menerangkan kuantitas bahwa bilangan direpresentasikan, kuantitas memerlukan perkalian masing-masing digit dengan sebuah rentang integer dari r, kemudian bentuk penjumlahan lebar semua digit. Sebagai contoh :
1.
Sistem bilangan desimal yang sehari-hari menggunakan radix sistem 10. 10 simbol yang digunakan yaitu : 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9. String dari digit : 724.5 diterjemahkan ke representasi kuantitas yaitu : 7 x 10 2 + 2 x 10 1 + 4 x 10 0 + 5 x 10 -1 dimana : 7 ratusan, 2 puluhan, 4 satuan, 5 persepuluhan
2.
Sistem bilangan biner menggunakan radix 2. Ada 2 digit simbol yang digunakan yaitu 0 dan 1. String dari digit 101101 diterjemahkan ke representasi kuantitas, yaitu : 1 x 25 + 0 x 2 4 + 1 x 2 3 + 1 x 22 + 0 x 2 1 + 1 x 2 0 = 45 dimana : radix 2 dikonversikan ke radix 10, untuk penulisan sebagai berikut : (101101) 2 = (45)10
3.
Sistem bilangan oktal menggunakan radix 8. Digit simbol yang digunakan yaitu : 0, 1, 2, 3, 4, 5, 6, dan 7. String dari 736.4 diterjemahkan ke representasi kuantitas, yaitu : 7 x 82 + 3 x 8 1 + 6 x 8 0 + 4 x 8 -1 = 478.5 dimana : radix 8 dikonversikan ke radix 10, untuk penulisan sebagai berikut :
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 9/87
Diktat Kuliah Organisasi Komputer
(736.4)8
= (478.5) 10 = 7 x 8 2 + 3 x 81 + 6 x 80 + 4 x 8 -1 = 7 x 64 + 3 x 8 + 6 x 1 + 4/8 = (478.5) 10
4.
Sistem bilangan hexadesimal menggunakan radix 16. Digit simbol yang digunakan, yaitu : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F. String dari F3 diterjemahkan ke representasi kuantitas, yaitu : F x 161 + 3 x 16 0 = 243 dimana : radix 16 dikonversikan ke radix 10, untuk penulisan sebagai berikut : (F3)16 = (243)10 = F x 16 1 + 3 x 16 0 = 15 x 16 + 3 x 1 = (243)10
5.
Konversi Bilangan dari desimal ke biner atau basis lainnya, dengan menggunakan teknik yang disebut division by radix ( pembagian oleh radix) yaitu dikerjakan dengan urutan berikut : Pertama pembagian bilangan oleh radix tujuan dan sisa hasil bagi disimpan pada remainder. Kemudian hasil bagi dibagi oleh radix tujuan dan sisa hasil bagi disimpan pada remainder. Begitu seterusnya sampai hasil bagi tidak bisa dibagi oleh radix tujuan. Hasilnya dari remainder dituliskan dari bawah ke atas untuk representasi ke basis tujuan. untuk konversi secara matematis suatu bilangan dari desimal ke biner, atau ke beberapa basis lainnya, dengan menggunakan teknik yang disebut division by radix. Dengan inisialisasi mempunyai sebuah bilangan N R dalam sebuah basis R untuk sesuatu yang bisa dikerjakan secara aritmatika sederhana (desimal, atau lainnya), dan untuk penjelasan representasi dari N dalam sebuah basis r yang berbeda. Bahwa, keinginan untuk menjelaskan digit yang tidak diketahui d i dalam formula berikut :
N R = d 0 r n + d 1 r n-1 + d 2 r n-2 + …+ d n-1 r 1 + d n r 0 Untuk mengerjakan ini, pertama-tama bagi N R, dan kemudian sisa pembagian, oleh basis yang ingin kami representasikan dengan nama r . (ingat bahwa kami mengerjakan aritmetika dalam basis R. kemudian, jika kami konversikan bilangan ke dalam basis lain, kami mengerjakan aritmetika dalam basis 10) pembagian ini ditunjukan berikut : N’ R = N R / r = d 0 r n-1 + d 1 r n-2 + …+ d n-1 r 0 Remainder = d n (2.2) n-2 n-3 0 Remainder = d n-1 (2.2) N’’ R = N’ R / r = d 0 r + d 1 r + …+ d n-2 r n-3 n-4 0 Remainder = d n-2 (2.2) N’’’ R = N’’ R / r = d 0 r + d 1 r + …+ d n-3 r Remainder dari operasi pembagian yaitu sama dengan digit suatu representasi yang diharapkan oleh N dalam basis r pada representasi pengembalian perintah; bahwa : digit yang paling rendah dibangkitkan pertama kali.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 10/87
Diktat Kuliah Organisasi Komputer
Contoh :
1. 5310 = ?2 2. 9910 = ?4 Jawab : 1. 2 2 2 2 2 2
53 26 13 6 3 1 0
2. Remainder = 1 Remainder = 0 Remainder = 1 Remainder = 0 Remainder = 1 Remainder = 1 Representasi
4 4 4 4
99 24 6 1 0
Remainder = 3 Remainder = 0 Remainder = 2 Remainder = 1 Representasi Jadi 99 (10) = 1203(4)
Jadi 53(10) = 110101(2)
6.
Representasi Penulisan Cepat Bilangan Biner ke Basis Bilangan Lainnya , untuk merepresentasikan kuantitas digit bilangan biner yang lebih banyak daripada kuantitas bilangan desimal seperti bilangan desimal 5,000 direpresentasikan 4 digit sedangkan kuantitas bilangan biner 1001110001000 yang membutuhkan 13 bit. Suatu posisi sistem bilangan dengan radix R dan digit D, besar bilangan yang bisa direpresentasikan yaitu R D – 1. Jika merubah basis r yang kedua kalinya, dengan memperkirakan bagaimana r ?, sebagai jawaban untuk menyelesaikannya yaitu ekspresi berikut untuk nilai d , bilangan dari digit membutuhkan :
r d – 1 = R D – 1 r d ≈ R D d ≈ D log,R
(2.5)
dalam kasusnya R = 10 dan r = 2
d ≈ log 2 10 d ≈ 3.3D Ini berarti bahwa rata-rata, representasi cepat akan menghabiskan waktu 3.3 digitdigit untuk menyimpan sebuah nilai dalam biner seperti halnya untuk menyimpan nilai-nilai dalam desimal. Ini merupakan satu kelemahan kecil dari sistem bilangan biner. Pembentukan notasi penulisan cepat ini didasarkan pada kenyataan bahwa 2 basis r 1 dan r 2 merupakan kesatuan integral dari yang lainnya, ada hal yang sepele untuk konversi pengembalian dan sebagainya diantara bilangan r 1 dan r 2, secara spesifik yaitu : “Jika suatu basis r 1 yaitu satu kesatuan dari basis r 2 lainnya, seperti r 1 = r 2d, kemudian masing-masing group dari d digit dalam r 2 memetakan secara langsung ke dalam satu digit dalam basis r 1, dan masing-masing digit dalam basis r 1 memetakan secara langsung ke dalam d digit dalam basis”. Ini berarti bahwa secara sederhana pengelompokkan bersama d digit dalam basis lama dan menempatannya dengan satu digit dalam basis yang baru, atau sebaliknya Contoh :
1. 1100012 = ?8 jawab : 110 001 6 1
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 11/87
Diktat Kuliah Organisasi Komputer
= 618
2. 4778 = ?2 jawab : 4 7 7 100 111 111 = 100111111 2
3. 10001111 2 = ?16 jawab : 1000 1111 8 F = 8F16
4. 1D9C16 = ?2 jawab : 1 D 9 C 1 1101 1001 1100 = 1110110011100 2 B. Representasi Integer Bertanda (Signed Integer) Dengan m digit biner, kita bisa merepresentasikan 2 m pola yang unik, dari 000…0 ke 111…1. Pola 2 m menyimpan bilangan natural 0,1,…, 2 m – 1. Representasi kuantitas sign dalam m digit, kita memakai hanya 2 m sebagai pola untuk bekerja. Ada 3 ukuran menggunakan untuk pengerjaan ini yaitu : sign/magnitude, komplemen, dan BCD ( Binary Coded Decimal ) 1. Notasi Sign / Magnitude Notasi sign / magnitude secara sederhana dan lebih jelas skema penulisan untuk representasi bilangan positif dan negatif. Penempatan sign pada bit yang paling kiri. Dengan ketentuan, 0 untuk tanda (sign) positif dan 1 untuk tanda (sign) bilangan negatif. Sisa bit (m – 1) merepresentasikan magnitude dari bilangan notasi biner tidak bertanda (unsigned binary). Dengan kata lain : digit pertama dari bilangan digunakan untuk tanda, jika positif maka digit pertama diberi nilai 0 (tanda untuk positif yaitu : 0) dan jika negatif maka digit pertama diberi nilai 1 (tanda untuk negatif yaitu : 1). Contoh : -8 (desimal) = 11000 +8 (desimal) = 01000 Masalah : + 0 tidak sama dengan – 0 Karena +0 = 00000, -0 = 10000 m −1 m −1 − 1) ≤ N ≤ +( 2 − 1) Rentang nilai untuk sistem bilangan biner S/M= − ( 2 Biner = 0 < N < 1 m = Jumlah digit misal : untuk S/M = 5 rentang nilainya = -15 < N < 15 Penjumlahan dan Pengurangan pada S/M 2. Bilangan 2-komplemen Radix komplemen yaitu teknik yang digunakan untuk merepresentasikan kuantitas sign (Catatan metode biasanya ditujukan untuk penempatan kata “ radix” dengan bilangan
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 12/87
Diktat Kuliah Organisasi Komputer
dari basis yang sedang dikerjakan. Radix desimal disebut tens complement / komplemen sepuluh; radix biner disebut twos complement / 2-komplemen).
− Dalam komputer menyimpan m digit biner per sel memori, modulusnya yaitu : M = 2m.
− Nilai satu unit yang besar daripada besarnya kuantitas yang disimpan dalam single m-bit lokasi memori, yaitu : 111…1 = 2 m – 1 = M – 1 − Teknik merepresentasikan 2-komplemen didasarkan pada prinsip berikut : Bilangan positif direpresentasikan dengan hitungan atas dari 0 diantara bilangan Bilangan negatif direpresentasikan dengan hitungan bawah dari modulus M diantara bilangan Contoh + 5 direpresentasikan dengan hitungan atas 5 unit dari 0, dan – 4 direpresentasikan dengan hitungan bawah 4 unit dari modulus, atau, dalam kata lain, dengan komputasi nilai M – 4. − Representasi 2-komplemen bisa didefinisikan secara simbolik : + X = X - X = M – X contoh : asumsi m = 4 a. Apa representasi + 6 dalam 2-komplemen ? jawab : + 6 akan direpresentasikan secara sederhana dengan hitungan atas 6 unit dari 0, atau 0110
b.
Apa representasi – 7 dalam 2-komplemen ? jawab : untuk representasi bilangan negatif dengan hitungan bawah dari modulus. M = 2 m = 24 = 16 Oleh karena itu, - 7 = 16 – 7 = 9 = 1001
− contoh a dan b tadi, ada arti-dua contoh a : + 6 bisa dikatakan – 10 sehingga 16 – 10 = 6. Contoh b : – 7 bisa dikatakan + 9, tergantung dari asumsi kita yaitu hitungan atas dari 0 atau hitungan bawah dari M.
− Untuk menerjemahkan agar tidak ada arti-dua pada beberapa nilai 2-komplemen, tabel berikut bisa jadi pegangan : Decimal +0 +1 +2 +3 +4 +5 +6 +7 -0 -1 -2 -3 -4 -5 -6 -7 -8 IF - UTAMA
Twos Complement 0000 0001 0010 0011 0100 0101 0110 0111 tidak ada 1111 1110 1101 1100 1011 1010 1001 1000
Sign / Magnitude 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 tidak bisa
Versi/Revisi : 1/0
m=4
Halaman : 13/87
Diktat Kuliah Organisasi Komputer
direpresentasikan dalam 4 digit
− Operasi bilangan komplemen sama dengan menggunakan nilai negatif. Untuk bilangan komplemen ditemukan dengan – X = M – X, secara ekstrim teknik ini sulit digunakan untuk mengaplikasikan contoh b diatas, meliputi pengurangan dan peminjaman, yaitu : - X = (M – 1) – X + 1. Kuantitas (M – 1) yaitu string secara nyata m 1 bit, oleh karena itu pengurangan X dari (M – 1) akan mudah sebab tidak ada peminjaman, apa yang terjadi ketika pengurangan digit biner dari 1 : 1 1 -0 -1 1 0 jadi kuantitas ( M – 1) – X bisa dievaluasi tanpa mengurangi sedikit perubahan semua 0 ke 1 dan semua 1 ke 0. Kemudian kita harus menambahkan 1 untuk membawa hasil yang benar. Untuk ringkasnya, guna meniadakan nilai 2-komplemen, kerjakan kasus berikut ini :
a. Ubahlah semua bit dari 0 ke 1, dan dari 1 ke 0. b. Tambahkan 1 untuk hasilnya. Tranformasi bilangan dari desimal ke 2 – komplemen, yaitu : a. untuk bilangan desimal positif, representasi ke bilangan 2 – komplemen dengan bentuk yang sama seperti bilangan biner biasa yaitu +X = X Contoh : + 4 = 0100 digit yang bisa memenuhi yaitu m = 4 + 14 = 01110 digit yang bisa memenuhi yaitu m = 5 yang perlu diperhatikan yaitu rentang bilangan yang memenuhi representasi bilangan desimal dengan memperhatikan berapa digit yang dipakai, yang dinyatakan dengan banyak digit yaitu m. b. untuk bilangan desimal negatif, representasi ke bilangan 2 – komplemen dengan menggunakan ketentuan sebagai berikut : -X = M-X = ( M-1) – X + 1 = X’ + 1 Contoh : 1. + 4 = 0100 1011 1 1100 2. + 8 = 01000 10111 1 11000
komplemen -4 komplemen -8
Penjumlahan pada 2 – Komplemen Penjumlahan dapat langsung dilakukan bit per bit, dengan mengabaikan bit carry out ( Most Significant Bit / MSB) Contoh : 1. + 3 0011 +4 0100 untuk m = 4 IF - UTAMA
Versi/Revisi : 1/0
Halaman : 14/87
Diktat Kuliah Organisasi Komputer
+7
IF - UTAMA
0111
Versi/Revisi : 1/0
Halaman : 15/87
Diktat Kuliah Organisasi Komputer
2.
+7
00111
-2 +5
11110 1}00101
untuk m = 5 carry diabaikan
Pengurangan pada 2 – Komplemen D = Y – K = y + (-X) Cara mengurangkan : 1. Negasikan operand pengurang ( komplemen dan tambah 1) 2. Jumlahkan 2 operand. 3. Bilangan 1-komplemen Merupakan Variasi dari representasi 2 – Komplemen Kelebihan dengan 2 – komplemen yaitu lebih sederhana. operasi aritmetika lebih komplit. Kekurangan : ada 2 representasi untuk bilangan 0 (nol) yaitu 00000 (+0) dan 11111 (-1) Representasi bilangan positif dan negatif untuk 1 – K Bilangan positif : +X = X Bilangan negatif yaitu -X = (M – 1) – X = X’ Penjumlahan pada 1 – Komplemen Pada 1 – K bit carry tidak dapat diabaikan, akan tetapi dijumlahkan pada LSB ( end around carry) Pengurangan pada 1 – Komplemen Pengurangan 1 – Komplemen sama dengan representasi 2 – Komplemen yaitu mengubahnya ke dalam bentuk penjumlahan 4. Penjumlahan Sign / Magnitude Ada beberapa kasus yang harus diperhatikan 1. Bila tanda kedua bilangan sama tambahkan langsung kedua bilangan hasil operasi memiliki tanda yang sama dengan kedua bilangan 2. Bila tanda kedua bilangan berbeda cari bilangan yang besar kurangkan bilangan terbesar dengan bilangan terkecil hasil akan memiliki tanda sesuai dengan bilangan terbesar Tabel : Penambahan dan pengurangan pada bilangan Sign / Magnitude Pengurangan Operasi Penambahan A>B A
IF - UTAMA
Versi/Revisi : 1/0
A=B + (A – B) + (A - B) + (A - B)
Halaman : 16/87
Diktat Kuliah Organisasi Komputer
(-A) - (-B) - (A - B) + (B - A) + (A - B) 5. Bilangan Floating-Point Beberapa interpretasi posisi menunjukkan kebenaran suatu kuantitas pecahan untuk digit kebenaran dari point biner. Catatan bahwa basis 2, ketika tanda “.” muncul pada nilai bilangan floating-point dan titik tadi disebut binary point bukan point decimal .
d 0 …d n . d n+1d n+2 … = d 0 r n + … d n r 0 + d n+1 r -1 + d n+2 r -2 +… Dalam desimal, nilai posisi yang benar dari point decimal yaitu sepuluhan, ratusan, ribuan, dan sebagainya. nilai posisi yang benar dari point binary yaitu setengah, seperempat, seperdelapan, dan sebagainya. Secara umum, untuk basis r berarti nilai posisi yang benar dari radix point yaitu r –1 , r –2 , r –3 , … Contoh :
1. Berapa nilai desimal dari (110.01101)2 ? Jawab : (110.01101)2 = 1*22 + 1*21 + 0*20 + 0*2-1 + 1*2-2 + 1*2-3 + 0*2-4 + 1*2-5 = 4 + 2 + 1/4 + 1/8 + 1/32 = 613/32 = (6.40625) 10
2. Berapa nilai bilangan biner dari pecahan desimal (0.375) 10 ? Jawab : Dengan menggunakan invers dari devisi radix yaitu : mengalikan bagian bilangan pecahan dengan 2 dan menyimpan digit carry out di kiri pada point binary, kemudian ulangi sampai bilangan biner menjadi bilangan bulat (1.00 …). .375 2x 0.750 0 2x 1.500 1 representasi bilangan biner 2x 1.000 1 (0.375)10 = (0.011) 2 Notasi Scientific Pada komputer, Bilangan Floating-Point = R, tidak direpresentasikan pada posisi notasi ekspresi 5.1. Tetapi, Floating-Point diekspresikan dalam notasi scientific seperti ekspresi berikut : ± R = ± M * B E dimana : M disebut mantisa E disebut eksponen B disebut basis dari eksponen Ini juga bisa ditulis dalam format berikut : R = ( ± M, B, E ± ) ± Dimana tiga nilai M, B, dan E diterjemahkan sebagai ekspresi R = ± M * B E Bentuk pecahan dapat dinyatakan dalam bentuk pecahan biasa atau dalam bentuk bilangan bereksponen (notasi scientific) A. Transformasi biner ke desimal B. Transformasi Desimal yang mengandung pecahan ke biner. Langkah-langkahnya adalah :
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 17/87
Diktat Kuliah Organisasi Komputer
1. Ubah bilangan desimak kedalam bentuk biner sebagai bentuk transformasi. 2. Sisanya (bilangan pecahan), kalikan dengan 2 3. Sampai hasil yang bukan pecahan (bilangan bulatnya) kedalam hasil transformasi 4. Kalikan lagi sisanya dengan 2 dan simpan bilangan bulatnya kedalam hasil transformasi. 5. Ulangi terus sehingga tidak ada sisa atau ketelitian yang diingnkan tercaoai. C. Representasi Karakter Harus dipresentasikan ke dalam bentuk yang mudah disimpan dan dikenali Umumnya disimpan dalam bentuk bilangan integer tak bertanda dengan kodifikasi tertentu Ada beberapa tabel kodifikasi karakter yangs sering digunakan :
1. ASCII : American Standard Code for Information Interchange 2. BCD : Binary Code Desimal 3. EBCDIC : Extended Binary Code Decimal Interchange Code Kode ASCII
Menggunakan 8 bit yang menggambarkan sebuah karakter berupa huruf besar, huruf kecil, karakter-karakter khusus serta komando atau control operation (seperti : Cariage, return, line feed, start of message end mesagge ). Dengan 8 bit memungkinkan penggambaran sebanyak 2 ….. atau 256 karakter. Contoh : kata “KOMPUT” akan direpresentasikan sebagai biner : K 10101000 -
O 10101111
M 10101101
P 10100000
U 10110101
T 10110100
dapat pula direpresentasikan dalam heksadesimal : K AB
O AF
M AD
P BO
U
T B5
B4
Kode BCD -
Untuk menggambarkan informasi numerik yaitu desimal 0 s/d 9 Setiap digit desimal direpresentasikan dengan 4 posisi biner dengan nilai posisi 8,4,2,1 karena itu sering disebut 8421 code Tanda untuk : + = 1010 dan - = 1011 Contoh : Digit Disimal 9 3 4
8 1 0 0
Kode BCD 4 2 0 0 0 1 1 0
1 1 1 0
Desimal 437 dalam Code BCD IF - UTAMA
Versi/Revisi : 1/0
Halaman : 18/87
Diktat Kuliah Organisasi Komputer
0100 4
0011 3
0111 7
+ 437 1010 0100 0011 0111 + 4 3 7 - 437 1011 0100 0011 0111 4 3 7 D. Bit Paritas Digunakan untuk mendeteksi dan mengoreksi kesalahan dalam pengiriman data. Untuk setiap pengiriman data (bawa atau tulis) dilakukan pengkodean untuk memriksa paritas. Paritas bisa genap (even parity) atau ganjil (odd parity) untuk kepentingan pemeriksaan paritas diperlukan satu bit (paritas bit) dalam satu set pengkodean karakter. Bit paritas ganjil, jumlah bit “1” dalam satu set pengkodean karakter harus berjumlah ganjil. Bit parity akan diberi harga, sehingga jumlah bit “1” dalam satu set pengkodean karakter menjadi ganjil. Bit paritas genap, bit pariti akan diberi harga, sehingga jumlah bit “1” dalam satu set pengkodean menjadi genap. Yang dimaksud dengan pariti checking adalah pemeriksaan keberlakuan data sesuai sistem paritas yang dianut oleh sistem komputer. i. bit paritas hanya dapat digunakan untuk mendeteksi adanya satu kesalahan tunggal, bila ada kesalahan tunggal. ii. hanya mampu mendeteksi (bukan mengkoreksi kesalahan, karena tidak menunjukkan posisi bit yang salah. contoh : 1. Pengirim men-transmit karakter B (dalam pariti genap) 0100 0010 misal, bit ke 3 dari kanan berubah menjadi 1 karena derau ( noise) Penerima mendapat 0100 0110 Karena jumlah bit “1” berjumlah 3 (ganjil) maka penerima menolak karakter yang diterima 2. Pengirim men-transmit karakter B (dalam parity genap) 0100 0010 misal, bit ke 3 dan ke 4 dari kanan berubah menjadi 1 karena derau ( noise) Penerima mendapat 01001110 Karena jumlah bit “1” berjumlah genap, maka penerima menganggap karakter yang diterima valid (benar)
2.3
Ringkasan
Tipe data yang pertama yaitu unsigned binary, dan itu merupakan tipe data internal yang kita telah bahas pada bagian ini. Semua komputer mempunyai ketersediaan untuk
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 19/87
Diktat Kuliah Organisasi Komputer
proses secara langsung (seperti store, retrieve, compare, add ) representasi informasi dalam notasi unsigned binary. Tipe data dasar kedua yang ada pada semua sistem komputer yang disebut signed integer . Semua sistem komputer mempunyai instruksi bahasa mesin untuk memanipulasi ( store, retrieve, compare, add , subtract , dsb.) nilai dalam satu atau lebih dari skema notasi berikut: sign/magnitude, twos complement , ones complement , atau BCD. Masing-masing teknik mempunyai kelemahan dan keunggulan sendiri, dan itu merupakan aktualasasi perancang komputer untuk menyeleksi teknik representasi yang lebih tepat untuk kebutuhan pengguna.
2.4
Soal-Soal Latihan
Kerjakan latihan soal-soal berikut dengan benar dan soal telah disesuaikan dengan instruksi yang harus dikerjakan. 1. Convert the following values into decimal. 1332 (base 4) a. 555 (base 7) b. c. 1001110 (base 2) 2. Convert the following decimal values into the indicated base. a. 1,000 into base 8 b. 913 into base 16 c. 1,234 into base 7
3. Convert base 32 be used as a shorthand notation for binary numbers ? What would be the advantages ? and the advantages? How much shorter would the base -32 number be ?
4. Convert the following octal numbers to binary. a. 17670 4005 b. c. 1010 5. Show how to represent the following decimal values in twos-complement representation. Assume m = 10 a. -2001 b. +199 c. -15
6. Show how to represent the following decimal values in ones-complement representation. Assume m = 6. a. 1,000 into base 8 b. 913 into base 16 c. 1,234 into base 7
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 20/87
Diktat Kuliah Organisasi Komputer
BAB III MEMORI
3.1
Pendahuluan
Pada bagian organisasi fungsional dari jenis sistem komputer modern. Perhatian pada bagaimana mencari produksi mesin yang spesifik oleh seluruh perusahaan, pertamatama kita belajar suatu hipotesis komputer yang ideal yang disebut PVM ( primitive Von Neumman machine). Seorang matematikawan bernama Jhon Von Neumman, tahun 1946 menghadirkan struktur komputer yang terbukti kebenaran pada masa depan. Konsep dasar Von Neumann dikembangkan dalam mendesain sistem komputer, berikut ini : 1. Penggunaan sistem bilangan biner.
2. Single, addressing memori secara sekuensial. 3. Bagian arithmetic/logic unit yang digunakan untuk perhitungan aritmetika dan logika. 4. Konsep penyimpanan program, yaitu program dan data disimpan dalam memori.
5. Pengontrolan yaitu pergantian instruksi dari memori dan pengeksekusiannya melalui pengontrolan (control unit ). 6. Beberapa fungsi organisasi komputer, yaitu bagaimana bagian-bagian lainnya dalam sistem komputer. Sudah banyak alternatif arsitektur yang dipaparkan semenjak 1946, dan sedikitnya eksperimen komputer yang sudah dibangun, tetapi seluruh gagasan komputer modern didasarkan pada klasikal “Von Neumann architecture” yang kehadiran selama 4 dekade yang lalu. Arsitektur komputer Von Neumann membagi komputer ke dalam 5 fungsi komponen yang lebih luas, yaitu : 1. Memori 2. Arithmetic / Logic Unit 3. Interconnect Network
4. Input / Output 5. Control Unit
3.2
Struktur Umum Memori
Memori adalah subsistem yang menyimpan dan mengambil informasi. Memori dibagi ke dalam sel-sel, dan data diakses dengan menerjemahkan address unik dari sel yang di dalamnya berisi data. Memori mengambil dan menyimpan data dari address N secara simultan, pengambilan dan penyimpanan semua digit biner yang disimpan dalam lokasi N. suatu memori menyimpan ke dalan alamat N dengan secara simultan menyimpan nilai biner baru ke dalam semua lokasi posisi bit, lihat gambar 3.1 berikut.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 21/87
Diktat Kuliah Organisasi Komputer
m, the memory width Address m–1
2n memory size
…
1
0
000 001 002 . . . n 2 –1
Memory cell, memory location
Gambar 3.1 : Pandangan Logika Memori Satu sel memori atau lokasi dalam gambar 3.1 yang selanjutnya disebut memory words. Sejumlah bit di dalam lokasi masing-masing (simbol m dalam gambar 4.1) disebut memory witdh, tempo lalu disebut cell size atau word size. Satu bit dari masing-masing lokasi memori biasanya diberi nomor dari kanan ke kiri mulai dengan 0 sampai dengan m – 1. Masing-masing sel dalam komputer mempunyai alamat biner tak bertanda yang unik, mulai dengan 0. Bilangan maksimum yang mungkin dari sel memori disebut memory size atau address space; itu selalu meningkat 2 sebab representasi internal ada alamat memori yaitu biner. Jika kita menggunakan n bit untuk merepresentasikan alamat biner tak bertanda, maka kita akan mempunyai maksimum 2 n sel memori, dan pengalamatannya bernilai 0, 1, 2, …, 2n – 1. Singkat dalam komputer, semua sel memori merupakan beberapa ukuran, dan semua akses untuk pengambilan memori atau menyimpan sebuah sel pada satu ukuran yang tetap. Jika kita ingin mengakses karakter, kita mungkin menginginkan untuk mengambil 8 bit informasi. Jika ingin mengambil suatu integer, kita mungkin menginginkan 16 atau 32 bit. Seandainya kita ingin mengambil nilai floating-point , kita membutuhkan 32, 64, atau 128 bit. Jika kita hanya bisa mengakses 8 bit setiap saat, kita mempunyai pekerjaan 16 bagian pengambilan untuk mengambil informasi yang diperlukan. Untuk penyelesaian ini, kita seharusnya tidak berpikir lama-lama karena memori disusun dari unit yang hanya satu ukuran. Perhatikan, pertama-tama kita mendefinisikan minimum-sized addressable unit . Ini merupakan unit terkecil dari memori yang mempunyai address unik dan bisa diambil dan disimpan sebagai unit. Kita merujuk ke minimum addressable unit ini sebagai m. Mesin yang lebih modern, m = 8 dan minimum sized addressable unit yaitu 8-bit byte. Ada komputer yang mempunyai m = 4, address half-byte disebut nibble. Tabel 3.1 berikut merupakan terminologi untuk ukuran memorycluster .
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 22/87
Diktat Kuliah Organisasi Komputer
Tabel 3.1 : Terminologi untuk Ukuran Memory-Cluster Number of Bits
Intel 8086
Terms VAX-11/780
8
Byte
Byte
Byte
16 32 64 128
Word – – –
Word Longword Quadword Octaword
Halfword Word Doubleword –
Minimum addressable unit
3.3
IBM 370
Implementasi Memori
3.3.1 Penyimpanan Bit Individual Karena komputer selalu menyimpan data secara internal menggunakan sistem biner, memori sendiri bisa dibangun dari beberapa peralatan fisik yang mampu menyimpan 2 nilai, dikorespondensikan ke biner 0 dan 1. Secara spesifik, peralatan penyimpanan seharusnya mempunyai : 1. Dua keadaan stabil yang dibagi dengan energi barrier yang besar sesuai diagram pada gambar 3.2. 2. Kemampuan untuk memilah diantara 2 keadaan ini secara virtual banyak waktu infinitif. 3. Beberapa cara penggambaran keadaan yang tanpa penghilangan informasi secara permanen. 1 e g a t l o v t a h t
o t g n i d n o p s e r r o c t i g i D
L a r g e e n e r g y b a r r ie r
0 V o l ta g e l e v e l
Gambar 3.2 : Penambahan Kehandalan Biner Secara teorits : beberapa peralatan yang memenuhi tiga kriteria tersebut merupakan suatu kandidat untuk digunakan dalam mebangunan memori komputer. Kenyataannya, kita menyetujui tidak hanya kendala teori saja, tetapi juga seperti pragmen yang terjadi berikut : biaya produksi, kehandalan, kekuatan pasar , dan ketersediaan. Implementasi dengan magnetic care a. banyak digunakan sampai tahun 1970-an b. status 0 (nol) atau 1 (satu) dibedakan dengan arah medan magnet yang berbeda
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 23/87
Diktat Kuliah Organisasi Komputer
c.
bentuk fisik seperti donat ( ferric oxide), dengan diameter internal + 1/50
inch. mempunyai sebuah kabel yang berjalan di dalamnya, yang disebut selection wire. Selection wire bisa mengalirkan sebuah arus listrik, yang dikirimkan ke kabel secara langsung. Tergantung pada kelangsungan arus, inti menjadi magnetis dalam clockwise atau counterclockwise direction. Dua keadaan ini dihubungkan ke 0 dan 1. Aturan untuk penjelasan field magnetis disebut right-hand rule. Lihat gambar 3.3 berikut : F e r r i c o x i d e c o a ti n g
S e n s e w i re
S e l e c ti o n w i r e
1/5"
Gambar 3.3 : Peralatan untuk Membangun Memori : Inti Memori Untuk menggambarkan bahwa nilai yang disimpan dalam sebuah inti pada beberapa waktu yang diberikan, kita mengirimkan arus ke dalam selection wire dalam sebuah preset direction sebagai contoh. Dalam direction dihubungkan ke biner 0. Jika inti siap dalam keadaan 0, tidak akan terjadi apapun. Jika arus inti berisi 1, inti akan berubah ke keadaan 0. Perubahan field magnetic meliputi arus listrik lemah yang bisa ditutupi oleh kabel yang kedua, yang disebut sense wire. Kehadiran arus ini menunjukkan bahwa nilai original disimpan dalam inti yaitu 1. Dalam kasus ini, arus diperlukan dengan segera untuk menuliskan inti kembali ke nilai original keadaan 1 yang sisa tidak akan berubah. Ini merupakan pendekatan dengan pengiriman sederhana suatu arus ke dalam selection wire dalam kemampuan direction untuk menuliskan kembali 0. Inti magnetis merupakan metode yang lebih populer dalam membangun memori. Sejak 1975, teknologi inti sudah menempatkan secara sempurna dengan semiconductor memories, dimana 2 keadaan 0 dan 1 direpresentasikan oleh 2 voltage yang berbeda pada level persilangan sebuah transistor, lihat gambar 3.4.
S e l e c ti o n l in e T r a n s i s to r
Capasitor G rou n d
IF - UTAMA
D a ta l in e
Versi/Revisi : 1/0
Halaman : 24/87
Diktat Kuliah Organisasi Komputer
Gambar 3.4 : Semiconductor (Memori Satu Transistor, Satu Kapasitor) Semua komputer masa depan dibangun dengan jenis memori semicondoctor solid state. Ada kelebihan berdasarkan hasil riset tentang cara merancang memori solid-state yang lebih baik dengan kecepatan tinggi, perbaikan yang efisien dan kehandalan, dan biaya rendah. Teknologi memori “alphabet soup” telah menangani riset ini, dan akronim seperti TTL, ECL, PMOS, NMOS, dan CMOS semua direpresentasikan secara jelas dengan teknologi yang berbeda sampai selesai: efisien dan penyimpanan sederhana dari 0 dan 1.
3.3.2 Penyimpanan Bit Bersamaan Kita mengorganisasikan bit individual ini ke dalam kesatuan unit memori. Semua unit memori dibangun dari memory plane, 2 dimensi k x k array dari elemen penyimpanan biner, lihat gambar 3.5 (dimana k = 4). A d d r e s s
0 1 2
14 15
m -
B i t p o s i ti o n 2 1 0 1 A d d r e ss 0 A d d r e ss 1 A d d r e ss 2 B it 0 B it 0 B it 0 s e n i l n o i t c e l e s x
S e n s e li n e A d d r ess 1 5 B it 0 A d d r ess 1 4 B it 0 y s e l e c ti o n l i n e s
Gambar 3.5 : Organisasi dari Memory Plane Memory plane terdiri dari sejumlah bit (seperti posisi bit) dari urutan konsekutif alamat memori. Contoh jika kita mempunyai plane 4 x 4 yang ditunjukkan pada gambar 3.5, dimana plane bisa terdiri dari semua bit 0 dari 60 lokasi konsekutif (alamat 0 – 15). Organisasi ini digunakan karena memori diakses secara sel memori, dan ada yang hanya satu bit dari masing-masing sel pada sebuah plane; oleh karena itu, setiap rujukan memori (ambil dan simpan) akan merujuk satu dan hanya satu bit pada suatu plane. Karena dari struktur 2 dimensi plane memory, sekarang kita harus mempunyai 2 selection line per elemen storage, sebut saja x dan y selection line, x-selection line dan y selection line bisa diaktifkan secara simultan untuk memilih satu bit pada plane yang dimana kita ingin mengoperasikan. Hanya satu elemen storage pada irisan aktivitas (x,y) kabel yang akan diambil dan disimpan selama siklus ini. Satu sense line yang berjalan terus ke semua elemen penyimpanan yang akan digunakan untuk isi sense dari satu sel. Gambar 3.5 menunjukkan orgnisasi hanya satu plane, sehingga hanya satu bit per lokasi. Pada gambar 3.6 menunjukkan sel memori yang dibuat dengan m bit. Untuk menampung ukuran sel ini, kita harus menumpukkan ( stack up) m secara jelas dengan plane k x k ini, dan masing-masing plane dihubungkan ke satu bit ke dalam sel.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 25/87
Diktat Kuliah Organisasi Komputer
Bit Bit Bit Bit Bit Bit Bit Bit
-
7 6 5 4 3 2 1 0
p la n e p la n e p la n e p la n e m = 8 p la n e p la n e p lan e p la n e
L o c a ti o n o f a n 8 - b i t m e m o r y l o c a ti o n
Gambar 3.6 : Bank Memori Lokasi memori sekarang dihubungkan ke “vertical axis” yang memotong ke planes, yaitu satu bit dalam posisi (x,y) pada masing-masing plane m. Jika kita ingin mengakses suatu word dari memori, kita menggambarkannya posisi (x,y) ke dalam plane dan kemudian, secara simultan pada semua plane m, mengaktifkan selection line (x,y). Kedatangan sense line dari plane 0 yaitu bit 0 dari word. Kedatangan sense line dari plane 1 yaitu bit 1 dari word, dan seterusnya sampai ke plane (m –1), yang menyediakan bit (m – 1) dari word. Terselesaikan pada sekumpulan k 2 lokasi memori, masing-masing terdiri dari m bit pada gambar 3.6, yang disebut dengan bank memory. Pada tingkat teknologi yang ada, macam-macam nilai untuk k yaitu 128 dan 256, dan yang memungkinkan untuk memesan plane (biasanya disebut memory chips) dengan 16K – 64K bit per plane (K = 2 10 = 1.024). Untuk membangun jenis memori yang berorientasi byte yang kita sudah gambarkan, kita akan membutuhkan 8 chips per bank. Plane yang besar terdiri dari 256K, atau 1.024K bit dari memori yang dikembangkan. A. Wujud Memori Pendukung Proses 1. Register Register adalah suatu rangkaian berkecepatan tinggi yang digunakan untuk menyimpan sementara sejumlah bit dengan makna alamat, data, instruksi atau status. Register terdiri atas sejumlah flip-flop yang dirangkai sehingga memiliki fungsi tertentu. Sebagai contoh ditunjukan beberapa register berikut : a. register buffer = untuk menyimpan indeks base, address data b. register pencacah = berfungsi sebagai program counter c. register puter = register yang digunakan pada pembangkit fase mesin d. register geser = digunakan dalam perkalian / pembagian
2.
RAM Ram merupakan memori utama pada sistem komputer, dituntut untuk dapat mendukung secara baik unjuk kerja pemroses
- Addressable (dapat diberi alamat) yang memungkinkan setiap lokasi dapat diacu oleh proses (program maupun sistem) -
Read/write memoeri, setiap lokasi dapat ditulis dan dibaca kembali isinya
- Random access, artinya penulisan dan pembacaan dapat dilakukan pada setiap lokasi secara acak, dengan waktu yang sama
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 26/87
Diktat Kuliah Organisasi Komputer
- Reusable, setiap lokasi yang pernah digunakan dapat diginakan kembali baik oleh program / proses yang sama atau proses program yang lain RAM digunakan untuk 1. Bagian-bagian sistem operasi yang diperlukan dalam pengendalian sistem komputer 2. Program aplikasi (yang sedang dilaksanakan) 3. Data yang dibutuhkan pada proses tertentu - RAM memiliki 2 peluang wujud yaitu SRAM (Static RAM) dan DRAM ( Dynamic RAM) S RAM akan menyimpan data yang diperytahankan selama daya listrik tetap ada atau RAM tersebut belum ditulisi kembali -
D RAM, pemnyimpanan data harus mengalami proses penyegaran (refresh) secara periodek dengan membaca dan menuliskan kemabali data yang disimpannya, karena kalau tidak dilakukan data akan hilang
3. -
ROM ( Read Only Memory) hanya dapat dibaca, isinya tidak dapat diubah isi memori diisi pabrik pembuat (beberapa ROM bisa diisi oleh pemakai). Bersifat random access Informasi yang disimpan di ROM a. rutin-rutin penting
b. c. d.
louder : program yang meload program-program lain (saat start up) Compiler/interpreter Error recovery procedure
e.
-
Sebagian operating system beberapa jenis ROM
a.
PROM ( programmable ROM), yang memungkinkan pemakai menyimpan data untuk memprogram kembali ROM diperlukan pemrograman ROM
b.
c. -
4.
EPROM ( Erasable Programmable ROM) Variasi dari ROM Isi memori tidak dapat dirubah dengan write biasa Memori bisa dihapus dengan prosedur khusus dan diganti dengan yang baru Dapat diprogram dan dihapus dengan menggunakan cahaya ultraviolet dalam waktu 5 – 10 menit EEPROM ( Elektronically EPROM) mirip EPROM tetapi dapat dihapus pada bit bit tertentu bersifat ovon-valotil Cache ( buffer memory)
- adalah buffer dengan kecepatan tinggi (beberapa kali kecepatan memory) digunakan untuk menyimpan sejumlah data yang sering digunakan pada main memory. - cache menjadi buffer antara pemroses dengan memori utama sehingga memiliki efek seperti sekumpulan “enoma register ” pada pemroses.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 27/87
Diktat Kuliah Organisasi Komputer
B. Wujud Memori Pendukung Kapasitas Data − Tuntutan diatas dapat dipenuhi dengan hadirnya teknologi :
1.
Pita magnetic Untuk menangani cara akses sekuensial (berurutan) dan penyimpanan data dilakukan dalam bentuk resia record yang secara fisik disimpan berurutan dalam pita.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 28/87
Diktat Kuliah Organisasi Komputer
2.
Disk / Diskette Piringan magnetic, dapat menangani cara akses sekuensial, maka data disimpan harus dalam urutan record pada track dan sektor sedangkan untuk memenuhi akses random data tidak harus disimpan dalam urutan fisik (digunakan indeks)
3.4
Ringkasan
Komputer dibangun dengan jenis memori semicondoctor solid-state. Ada kelebihan memori solid-state yang lebih baik dengan kecepatan tinggi, perbaikan yang efisien dan kehandalan, dan biaya rendah. Teknologi memori seperti TTL, ECL, PMOS, NMOS, dan CMOS semua direpresentasikan secara jelas dengan teknologi yang berbeda efisien dan penyimpanan yang sederhana dari 0 dan 1. Pada teknologi yang ada, macam-macam nilai untuk k yaitu 128 dan 256, dan untuk memesan plane (biasanya disebut memory chips) dengan 16K – 64K bit per plane (K = 210 = 1.024). Untuk membangun jenis memori yang berorientasi byte, kita akan membutuhkan 8 chips per bank . Plane yang besar terdiri dari 256K, atau 1.024K bit dari memori yang dikembangkan.
3.5
Soal-Soal Latihan Kerjakan soal-soal latihan berikut ini :
1. Pada komputer dengan 64K (2 16) 32-bit sel memori yang dibagi ke dalam 4 bagian 16K bank, berikan ukuran yang lebih mirip dari : MAR a. MBR b. Bagaimanakah beberapa bank akan kita butuhkan untuk memori 96K ? 2. Asumsikan bahwa kita mempunyai unit memori dengan 24 bank memori yang berbeda. Masing-masing bank disusun dari 16 indentikasi plane yan terdiri dari 64 x 64 elemen simpanan biner. Nilai apa yang lebih pas dari ukruan sel komputer ini ?
3. Berapakah total number dari sel memori pada nomor 2 tadi ? 4. Bagaimanakah bank-bank yang akan kita punyai jika telah disusun memori dari plane yang terdiri dari 128 x 128 elemen penyimpanan pada nomor 2 ? 5. Coba jelaskan mengenai fungsi dari memori pendukung yang telah didiskusikan diatas !
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 29/87
Diktat Kuliah Organisasi Komputer
BAB IV INPUT / OUTPUT DAN MEDIA PENYIMPANAN
4.1 Pendahuluan 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 : 1. Peralatan yang mencatat informasi dalam bentuk mesin yang bisa dibaca (machinereadable), 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. 2. 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)
4.2 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 : 1. Semua data yang diperlukan bisa diakses pada setiap saat. 2. Informasi yang disimpan dialamatkan secara unik. 3. 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 : 1. Floppy disks
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 30/87
Diktat Kuliah Organisasi Komputer
2. Hard disks 3. Drums 4. 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 : 1. Pindahkan head read/write ke track yang dituju/benar ( seek time) 2. Tunggu untuk berputur ke sector yang benar dibawa head read/write ( latency) 3. 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 : R e a d / w r it e a rm
Tracks
R e a d / w r ite heads
r e c o rd i n g s u r fa c e ( fe r r i c o x i d e )
In v i d u a l s e c to rs
R o ta t i on
S t e p p e r m o to r t o m o v e r e a d / w r i t e h e a d s b a c k a n d f o r th
Gambar 4.1 : Layout Piringan Disk
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 31/87
Diktat Kuliah Organisasi Komputer
Tabel 4.1 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 detik). Tabel 4.1 : 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 masingmasing 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 : 1. Semua informasi diidentifikasikan dan diakses pada alamat ( address) yang unik. 2. Waktu akses tergantung pada lokasi dari informasi yang diambil. Tracks
Sectors R o ta ti o n
R e a d / W r i te H e a d
Gambar 4.2 : 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.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 32/87
Diktat Kuliah Organisasi Komputer
One character (101 8 = ‘A’) Ferric oxide coating
Channels 0 0 1 0 0 0 0 0 1
Number of characters per inch = tape density Gambar 4.3 : Layout Informasi pada Tape Magnetik Blok 1
Blok 2
Record gap 1 Record gap 2 Gambar 4.4 : Record Gap pada Tape Magnetik Gap 1 dalam gambar 4.4 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.
4.3 Ukuran Record dan Blocking Factors 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 3digit 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 : 1. Tape magnetik : sudah tidak bekerja pada ukuran record fisik yang tetap, tetapi memberikan user untuk menspesifikasi ukuran record fisik ketika penulisan pertama pada tape. 2. Semua transfer ke dan dari sebuah peralatan I/O mengambil tempat dalam unit dari satu atau lebih record fisik. Seperti sectors pada Disk . 3. Card reader/punch 80 karakter (satu card )
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 33/87
Diktat Kuliah Organisasi Komputer
4. Line printer 132 (atau 136) karakter (satu baris) 5. VDT (line oriented ) 80 karakter (satu baris) 6. 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 : 1. Alokasi tempat 132 karakter untuk baris ini. 2. Pindahkan sebanyak 3 karakter ke dalam posisi baris 1, 2, dan 3. 3. Pindahkan blanks ke dalam posisi 4, 5, …, 132. 4. 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
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. 2. Bisa menambah utilisasi sebuah peralatan tape magnetik. Untuk rujukan bisa lihat gambar 4.5, 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 4.5 : Interrecord Gap 1.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 34/87
Diktat Kuliah Organisasi Komputer
3.
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.
4.4 Modus-Modus Transfer Bagaimana informasi ditransfer diantara 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 4.6. START
Buffer
S i g n a l f r o m th e p r o c e s s o r
D a ta t o o r f r o m m e m o r y
I/O m e c h a n ism I / O c o n tr o l l e r
DONE E R R O R T h e I/ O d e v ic e
S i g n a l s to p r o c e s s o r
D a ta p a th C o n tr o l s i g n a l
Gambar 4.6 : 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 4.7, 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 4.8
T o / f r o m d a ta b u s a n d m em or y
(PIO) P a r a l l e l i n p u t- o u t p u t controller
T o / fr o m I / O d e v i c e
O th e r c o n tr o l a n d ti m i n g s i g n a l s s u c h a s S T A R T , D O N E , a n d E R R O R
Gambar 4.7 : Kontroler I/O Paralel
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 35/87
Diktat Kuliah Organisasi Komputer
(USART) S e r i a l i n p u t - o u tp u t controller
T o / f r o m d a ta b u s a n d m e m o ry
T o / fr o m I/ O d e v i c e
O th e r c o n tr o l a n d ti m i n g s i g n a l s s u c h a s S T A R T , D O N E , a n d E R R O R
Gambar 4.8 : 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 4.9) 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 m e c h a n i sm
I /O c o n tr o l l e r
START P r o c e sso r DONE 2
Gambar 4.9 : I/O Program
3
M em ory D a ta p a th C o n tr o l si g n a l s
1. Prosesor membangkitkan sebuah perintah START untuk memulai operasi I/O. 2. Prosesor menunggu sampai kontroler I/O membangkitkan signal DONE, yang berarti bahwa operasi diselesaikan. 3. (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 : 1. Interupsi tugas T dimana pengeksekusian prosesor berjalan. 2. Simpan status mesin (register-register, memori, dsb) selanjutnya T bisa dimulai kembali pada waktu berikutnya. 3. Pengecekan untuk melihat kejadian apa yang menyebabkan interupsi. 4. Pengeksekusian sekumpulan program spesial dengan kejadian yang spesifik ini (disebut interrupt handler ). 5. Ketika interrupt handler selesai, pengembalian status mesin ke kondisi sebelum terjadi interupsi. 6. Mulai kembali tugas T dari titik yang sudah ada ketika diinterupsi. IF - UTAMA
Versi/Revisi : 1/0
Halaman : 36/87
Diktat Kuliah Organisasi Komputer
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 4.10.
I /O m e c h a n i sm
I /O c o n tr o l l e r
1 START
P r o c e s so r 2
I n te r r u p t signal 3
M em or y 4 D a ta p a th C o n tr o l si g n a l s
Gambar 4.10 : Interrupt-Driven I/O Keterangan : 1. Isu perintah START untuk operasi I/O. 2. Prosesor mengosongkan untuk menangani komputasi lain. 3. Ketika signal interupsi terjadi, prosesor menceritakan bahwa I/O dikerjakan, berhenti apa yang pernah dilakukan. 4. 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 . 3
I/O m e c h a n is m
DM A I /O 1 controller
M em ory
D a t a p a th
S T 2 A R T I n
t e s i r r u g n p a l t 4
C o n tr o l s i g n a l s P r o c e sso r
Gambar 4.11 : Input /Output via Peralatan DMA
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 37/87
Diktat Kuliah Organisasi Komputer
Keterangan : 1. Panggil alamat memori buffer ke dalam kontroler I/O. 2. Isu perintah START untuk inisialisasi operasi I/O. 3. Kontroler DMA mentransfer sebuah masukan record fisik secara langsung ke dalam alamat memori yang spefisik. 4. 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 4.12 berikut ini : M em ory BU S DM A controller
P r o c e ss o r
I / O m e c h a n i sm
Gambar 4.12 : 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 : 1. Code conversion: contoh konversi kode punch-card atau kode paper tape ke ASCII. 2. Echoing : menampilkan pada layar jenis karakter yang ada pada keboard.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 38/87
Diktat Kuliah Organisasi Komputer
3. Parity checking : pengecekan paritas karakter yang masuk dan penanganan karakter
jika karakter tersebut tidak benar. 4. Editing : penanganan khusus karakter editing (seperti : BACKSPACE, DELETE, RUBOUT). 5. 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 sungguhsungguh 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 4.13 merupakan diagram multiplexed channel .
I/O m e c h a n ism s
M u l ti p l e x o r Channel
C o n tr o l D a ta
Gambar 4.13 : 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 .
4.5 Ringkasan 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 setidaktidaknya apa yang telah kita bahas merupakan dasar peralatan I/O yang dipakai pada mesin komputer.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 39/87
Diktat Kuliah Organisasi Komputer
4.6 Soal-Soal Latihan 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.5 x) 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 ?
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 40/87
Diktat Kuliah Organisasi Komputer
BAB V ARITHMETIC & LOGIC UNIT DAN CONTROL UNIT
5.1 Pendahuluan Arithmetic dan logic unit (disingkat ALU), sebuah nama yang implisit, unit fungsional yang menghasilkan semua operasi aritmetika (seperti penjumlahan, pengurangan, perkalian, pembagian, dan pergeseran) dan operasi logika (seperti AND, OR, komplemen) ke dalam komputer. ALU mempunyai 2 bagian : unit fungsionalnya sendiri (seperti penjumlahan, pengali, komplementor), yang melaksanakan operasi, dan register yang memegang operan, hasil, dan kesalahan dan status informasi. ALU dan control unit dijadikan sebagai satu subsistem, yaitu prosesor (biasanya disebut central processing unit , atau CPU). Dalam kesempatan ini kita mencoba untuk membahas dua pokok bahasan yaitu : Arithmetic and Logic Unit dan Control Unit . Pada mesin yang dulu terdapat hanya satu prosesor, perubahan terus terjadi bahwa diharapkan prosesor tidak mengalami kekosongan ( idle) sehingga utilisasi prosesor terus meningkat, bila perlu sampai 100%. Tetapi perkembangan software dan juga data atau program yang harus dieksekusi makin bertambah banyak sehingga untuk dikerjakan oleh satu prosesor memakan waktu yang cukup lama, sehingga orang terus berupaya untuk memaksimumkan kecepatan proses komputer (dalam hal ini prosesor). Sehingga pada suatu dekade tertentu dikembangkan komputer dengan prosesor yang lebih dari satu. Dan prosesor ini bisa mengalokasikan tugas ( task ) yang spesifik, seperti I/O, atau mereka bisa diindentikasi, dengan masing-masing prosesor yang mengerjakan pada program user yang berbeda. Sistem dengan satu atau lebih prosesor disebut multiprocessing system. Perkembangan selanjutnya, ketika multiproses diketemukan masih terdapat permasalahan yang baru yaitu terjadi dropping pada memori. Sehingga orang memikirkan bagaimana mengatasi hal ini. Pada akhirnya diketemukan yaitu dengan memaksimumkan kapasitas memori, dengan cara ini bararti orang sudah berorientasi pada memori. Perkembangan selanjutnya, pada informasi, bagaimana informasi tersebut dipelihara dengan baik. Berbagai teknik dilakukan dalam rangka memelihara informasi agar tetap aman dan bisa dieksekusi dengan cepat dan tepat, dengan demikian beralih pada orientasi informasi. Sesuai pembicaraan diatas yaitu multiproses, orientasi memori dan informasi, ada hal yang sangat penting yaitu bagaimana komputer mengeksekusi program atau data. Sistem komputer mengenal format instruksi yang bisa akan dimengerti dan dilaksanakan oleh komputer (prosesor) terhadap data dan program. Adapun format itu, dikenal istilah instruction set atau machine language, dan dituliskan dalam format yaitu instruction format .
5.2 Arihtmetic and Logic Unit 5.2.1 Unit Fungsional Unit fungsional yaitu kotak hitam yang melaksanakan operasi aritmetika dan logika. Jenis aritmetika dan logika unit fungsional yang ada pada komputer bisa lihat tabel 5.1 berikut :
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 41/87
Diktat Kuliah Organisasi Komputer
Tabel 5.1 : Macam-macam Aritmetika dan Logika Unit Fungsional Aritmetika Logika Integer adder AND unit Integer subtractor OR unit Integer multiplier Complementor (NOT) Integer divider Exclusive-OR unit Arithmetic shift unit Logical shift unit Incrementor/decrementor Comparator BCD arithmetic units Floating-point arithmetic units Semua dilaksanakan oleh unit pada tabel 5.1 yang bisa menghasilkan secara langsung dalam hardware komputer (BCD dan operasi floating-point dipilih terus pada komputer yang lebih kecil). Kemudian unit dalam tabel 5.1 melakukan macam-macam operasi hardware yang lebih luas, semua operasi mempercayakan pada bentuka sudah ada. Gambar 5.1 menunjukkan diagram fungsional untuk perputaran operasi biner. S t a r t /S t o p s i g n a l s
X
L e ft o p e r a n d
R e s u lt
Z
Z := Y
R ig h t o p e r a n d
X
op
Y
E r r o r /S t a t u s i n f o r m a t i o n
F u n c ti o n a l u n i t
E
T i m i n g s ig n a l s Data C o n t r o l s i g n a ls
Gambar 5.1 : Blok Diagram Unit Fungsional Biner
1. 2. 3. 4.
Langkah Umum Operasi biner dalam 5 tahapan berikut ini : Pindahkan operan kiri dari sel pegangan X ke dalam unit fungsional. Pindahkan operan kanan dari sel pegangan Y ke dalam unit fungsional. Kirim sebuah signal START diantara line kontrol START. Ini memulai komputasi yang disinyalir menghasilkan Z. Tunggu sebuah base interval yang tetap pada operasi yang dilakukan.
5. Penempatan hasil (X operator Y) dalam genggaman sel Z. (catatan : genggaman sel Z bisa identik ke X or Y, dan X or Y bisa dimodifikasi selama operasi ini). Pindahkan status and/or kesalahan informasi (seperti overflow, underflow) ke lokasi khusus yaitu E. Panjang interval waktu dalam langkah 4 sebelumnya tergantung pada operasi yang dilaksanakan dan pada jenis komputer. Tabel 5.2 memberikan penjelasan kebutuhan waktu untuk beberapa operasi tipe arithmetic and logic untuk PDP-11/44, VAX 11/780, dan mikroprosesor Intel 8086 berikut ini :
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 42/87
Diktat Kuliah Organisasi Komputer
Tabel 5.2 : Kebutuhan Waktu untuk Beberapa Tipe Operation Intel 8086 PDP-11/44 Integer Add,Subtract 3,0 µsec 1,4 µsec Integer Multiply 18 µsec 6,6 µsec Integer Compare 3,0 µsec 1,4 µsec OR 3,0 µsec 0,36 µsec Floating-Point Add Not available 8,9 µsec
VAX-11/780 0,6 µsec 1,0 µsec 0,6 µsec 0,2 µsec 2,0 µsec
Detected Error Arithmetic overflow Arithmetic overflow Arithmetic overflow None Overflow,underflow
Implementasi internal dari unit fungsional ini tidak dijelaskan disini. Subjek lebih ke arah kemampuan menangani kekhususan pada rancangan hardware. Pertama, beberapa unit fungsional tercakup dalam tabel 5.1 yang terlihat redudansi dan tidak diperlukan. Untuk contoh, mengapa mempunyai dua unit incrementor (A + 1) dan penambahan (adder ) biner yang umum (A + B) ?. Kita bisa menambahkan dengan konstanta + 1 yang tersimpan dimanapun dalam memori, dan kemudian melakukan penambahan biner regular yang menggunakan nilai yang kita inginkan ke increment dan konstanta + 1 disimpan dalam memori. Oleh sebab itu, penambahan dengan 1 layaknya operasi biasa, dan itu merupakan hal yang kritis untuk efisiensi operasi mesin, unit fungsional yang sudah disediakan untuk meminimasi kebutuhan waktu untuk increment atau decrement. Contoh pada PDP-11/44, suatu add menghabiskan 1,4 µsec, sedangkan increment menghabiskan 1,1 µsec, suatu pengurangan yang mencapai 20 persen. Termasuk unit fungsional yang melaksanakan operasi aritmetika penggeseran yang kelihatannya redudansi. Sebuah aritmetika penggeseran kiri nilai integer sama dengan perkalian dengan 2. Sebuah aritmetika penggeseran kanan nilai integer sama dengan pembagian dengan 2. Ternyata, kita dengan mudah bisa menghilangkan aritmetika penggeseran dengan penggunaan secara sederhana operasi multiply dan divide. Oleh karena itu, unit fungsional lebih efisien untuk mengimplementasikan multiply dan divide dengan kekuatan 2 dengan perintah geser daripada dengan aritmtika yang sama secara langsung. Contoh pada PDP-11/44, 1 bit aritmetika pergeseran mengambil 1,59 µsec, sedangkan multiply mengambil 6,6 µsec dan divide mengambil 11,01 µsec. Kita sebaiknya menyadari bahwa unit fungsional tidak sekedar dipilih pada basisnya yang membutuhkan atau mementingkan untuk “level aplikasi”, atau untuk mimik operator yang berdaya guna dalam bahasa tingkat tinggi seperti PASCAL atau FORTRAN. Lebih dari itu, mereka dipilih pada basis efisiensi tingkat mesin dan manfaat mereka dalam implementasi operasi yang primitif. Point kedua tentang unit fungsional yang terdaftar pada Tabel 5.1 yaitu bahwa tidak adanya suatu perbedaan dan bagian unit hardware secara fisik, atau “boks”, untuk masing-masing operasi. Untuk contoh, bagaimana pengurangan dalam notasi radixcomplement yang bisa didefinisikan dalam tema penjumlahan dan komplementasi. Kemudian, kita tidak mempunyai bayaran untuk membangun sebuah bagian “ unit pengurangan”. Kita bisa menggunakan adder dan unit complementor yang sudah siap. Seperti halnya, beberapa operasi primitif lainnya yang bisa didefinisikan dalam tema operasi fungsional yang ada. Marilah kita ambil sebuah pencarian perkalian integer. 0011 Multiplicand x 0101 Multiplier 0011 0000 0011 Intermediate products 0000 + 0001111 Final Result IF - UTAMA
Versi/Revisi : 1/0
Halaman : 43/87
Diktat Kuliah Organisasi Komputer
Ketika kita kalikan dengan 1 dalam Multiplier , intermediate product dengan jelas sama seperti multiplicand . Ketika kita kalikan dengan 0, intermediate product semua 0. Setiap saat kita memindahkan untuk digit berikutnya dalam multiplier , intermediate product digeser kiri satu posisi dan seterusnya. Final result yaitu jumlah semua intermediate product . maka, algoritma untuk perkalian integer bisa didefinisikan dengan mudah dalam tema penjumlahan integer, pergeseran aritmetika, dan perbandingan integer. Jika perkalian disebut A dan pengali disebut B (dengan masing-masing bit B berlabel B 0, B 1, B 2, …, Bn), maka algoritma yang mungkin untuk perkalian yaitu berikut ini : START result := 0 for I := 0 to N do begin digit := B I if digit = 1 then begin partial product := A shift the partial product left I bit positions result := result + the shifted partial product end {if statement} end {for loop} END OF ALGORITHM Keterangan : − Yang hanya menggunakan penjumlahan (line 10) − Pergeseran kiri (line 9) − Perbandingan (line 6)
5.2.2 Register-Register Dalam gambar 5.1 bahwa operand dan result sebuah operasi aritmetik ditempatkan pada “holding cell ”. Holding cell, atau register-regsiter, yaitu lokasi penyimpanan dengan tujuan yang spesial ( special-purpose storage location). Register serupa dengan sel memori yang bisa menyimpan dan mengambil informasi, tetapi ada perbedaan dalam cara-cara yang lebih penting. 1. Register tidak merujuk ke alamat biner tak bertanda 0, 1, 2, .., tetapi dengan suatu identifikasi alphanumeric yang khusus seperti A, R0, PSW, atau I2. 2. Register biasanya lebih cepat daripada sel memori regular (hal ini, memori mempunyai siklus waktu yang lebih rendah). Ini disebabkan register merupakan perlengkapan akhir dalam pengeksekusian setiap operasi secara virtual yang dikerjakan secara lebih cepat untuk memasukan operasi mesin secara efisien.
3. Register-register bisa ditugasi dengan tujuan khusus. Semua lokasi memori diidentikasi secara menyeluruh dan melayani beberapa tujuan: untuk menyimpan dan mengambil data. Register-register tidak diidentikasi dan ditugasi memutar secara unik dalam operasi komputer. 4. Mereka merupakan path data khusus yang terkumpul dengan register-register (lihat sesi berikutya).
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 44/87
Diktat Kuliah Organisasi Komputer
Ada tiga tipe register :
− Tipe pertama, accumulator , yang digunakan dalam pelaksanaan operasi aritmetika dan logika. Secara umum akumulator memegang operand aritmetika dan logika dan hasil, ukurannya dihubungkan ke ukuran word memori (m bit). Mereka akan selalu terurai dalam 2 akumulator, sebab perkalian dari operand 2 m- bit aka menghasilkan suatu hasil yang dinaikkan sepanjang ( 2m – 1) bit. Jika masing-masing akumulator memegang m bit, maka kita membutuhkan 2 untuk memegang hasil. Sama halnya, operasi pembagian menghasilkan 2 hasil yaitu m bit hasil bagi dan m bit sisa bagi.
− Tipe kedua, index register , memegang operand yang tidak bertanda alamat memori biner dan memegang hasil operasi aritmetika pada sebuah alamat. Ukuran index register yaitu sedikit berbeda dari ukuran sebuah akumulator. Seperti yang sudah dibicarakan, ukuran sebuah akumulator dihubungkan ke ukuran representasi data pada komputer, dimana nilai yang kita sudah kita rujukan yaitu m. Sedangkan, index register, yang memegang alamat, hanya mempunyai keterbatasan jumlah untuk memegang semua alamat yang mungkin. Kita bisa melihat bahwa pada sebuah komputer dengan lokasi memori 2 n, index register akan membutuhkan n bit saja.
− Tipe ketiga, satu klas dari general-purpose register yang memegang beberapa tipe operand: integer, character, atau alamat biner tidak bertanda. Jumlah general-purpose register merupakan paramter yang penting pada sistem komputer. Jika banyaknya register yang tersedia, banyak operand yang bisa dijaga dalam lokasi dengan kepcepatan tinggi dan sedikit transfer diantara register-register dan memori yang akan diperlukan. Contoh : evaluasi pernyataan persamaan berikut : X := (A + B) * (C + D) Mudah jika kita mempunyai 4 register yang tersedia. Kita panggil 4 operand A, B, C dan D ke dalam 4 register dan laksanakan operasi yang diperlukan. Jika kita memnpunyai hanya 2 register, maka kita akan mempunyai beberapa pekerjaan zigzag dari operand dan hasil. Untuk contoh, jika kita mempunyai hanya 2 register sebut saja R0 dan R1, kita akan mempunyai pekerjaan sebagai berikut : Move A to register R0 Move B to register R1 Add R0,R1 and put result in a temporary memory location T1 Move C to register R0 Move D to register R1 Add R0,R1 and put result in a temporary memory location T2 Move T1 to register R0 Move T2 to register R1 Multiply R0,R1 and put result in memory location X Secara umum, penambahan beberapa register akan berdampak kode hasil dan kecepatan eksekusi. Tabel 5.3 menunjukkan beberapa general-purpose registers pada beberapa komputer yang kita ketahui : Tabel 5.3 : Struktur Register pada beberapa Tipe System Number of General-Purpose Registers Register Size (bits) Intel 8086 8 8 PDP-11 8 16 Motorola MC68000 16 32 VAX-11/780 16 32 IBM 370 16 32
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 45/87
Diktat Kuliah Organisasi Komputer
Cray 1 64 64 Penambahan untuk general-purposes registers, setiap komputer mempunyai sekumpulan machine-dependent dari special-purpose registers untuk mempertemukan kebutuhan yang spesifiknya. Ini special-purpose registers secara umum diantara tipe-tipe berikut : − Overflow registers − Carry registers − Shift registers − Scratch (or temporary) registers − Floating-point registers − Status information registers
5.2.3 Jaringan Keterhubungan Kita sudah membicarakan sejumlah komponen secara signifikan yang akan mencakup dalam komputer PVM hipotesis : general-purpose registers, special-purpose regsiters, memory cells, functional units, dan seterusnya. Dalam mempelajari organisasi komputer, data path menghubungkan 2 atau lebih unit fungsional dari sebuah sistem komputer disebut bus, dan banyaknya bus yang ada, dan tipe-tipe bus, disebut bus structure dari komputer. Bus media yang menghubungkan komponen-komponen dalam komputer, yang bisa terdiri dari (berdasarkan arah transfer) : 1. Unidirectional Bus, hanya dapat dilakukan satu arah 2. Bidirectional Bus, dapat dilakukan 2 arah tetapi tidak pada saat bersamaan. Bus yang berdasarkan jumlah bit yang di transfer per unit waktu 1. Serial bus : − Transfer hanya satu bit per satuan waktu Biasanya digunakan untuk komunikasi Eksternal (misalnya: antar − komputer dan peripheral), bisa dilihat pada gambar 5.2. Satu bit 0 1 0 0 1 1 0 1 → 0 1 0 0 1 1 0 1 Sumber serial bus Tujuan Gambar 5.2 : Bus Serial 2. Paralel Bus − Transfer sekaligus sejumlah bit per unit waktu secara simultan Digunakan sebagai bus yang ada di dalam komputer untuk hubungan − antar komponen komputer untuk hubungan antar komponen komputer − Tidak digunakan sebagai komunikasi eksternal, karena mahal (pertimbangan ekonomis) − Contoh : Media kabel Twisted Pair (sepasang kabel tembaga) Bps (bit per second ) satuan kecepatan transfer pada bus − Kecepatan serial bus umumnya lebih lambat dibanding paralel bus − Sumber 0 1 0 0 1 1 0 1 Bus paralel 8 bit 0 1 Tujuan IF - UTAMA
0
0
1
1
0
1
Versi/Revisi : 1/0
Halaman : 46/87
Diktat Kuliah Organisasi Komputer
Gambar 5.3 : Bus Paralel Selagi kecepatan dianggap penting, semua bus komputer merupakan paralel. Sejumlah bit yang bisa dikirimkan secara simultan antar bus disebut bus size atau bus width, dan tergantung pada ukuran dari unit yang dihubungkannya. Bus menghubungkan 2 register m- bit yang seharusnya pada uraian lebar m bit. Dalam kenyataan, lebar bus dengan frekuensi yang lebih besar daripada ukuran dari register yang dihubungkannya. Ini dikarenakan penambahan untuk pengiriman data biner, bus secara simultan akan mengirimkan kendali dan informasi pewaktuan. Keduanya kita telah menentukan tipe-tipe bus apa yang digunakan, harus dijelaskan bagaimana beberapa bus yang kita butuhkan ?. Pendekatan straightforward yaitu untuk penempatan bus data antar tiap-tiap path dimana seuatu pengiriman yang mungkin bisa mengambil tempat. Jika register R i mungkin bisa mengirimkan isinya ke register R j, kita menempatkan sebuah bus diantaranya. Ini membuat sebuah struktur bus koneksi penuh ( fully connected bus structure), lihat gambar 5.4 berikut ini : R 0
M em ory M A R
R 1
generalpurpose registers
M BR +
Adder
Gambar 5.4 : Tipe Struktur Bus Koneksi Penuh −
Kuntungan Struktur ini : 1. Tidak pernah terjadi antrian dalam penggunaan bus 2. Lebih cepat 3. Ada proses untuk melakukan proses paralel
−
Kerugian : 1. Mahal dan rumit untuk n komponen diperlukan n bus 2. Penghamburan, hanya kurang lebih 20 % dari kapasitas tersedia, digunakan pada saat yang sama
Implementasi dari prinsip ini, disebut parallelism, yaitu satu dari sekian banyak kepentingan pengembangan dalam organisasi komputer modern, dan perancang selalu mencari cara operasi overlap 2 atau lebih untuk mengurangi total waktu yang dibutuhkan untuk performansinya. Struktur bus hubungan penuh pada gambar 5.4 menawarkan kesempatan yang lebih banyak untuk operasi overlap, selagi masing-masing bus bisa menangani suatu pengiriman selama siklus terjadi (lamanya seperti kita yang tidak mencoba untuk melakukan sebuah operasi yang bisa membawa ke perilaku yang tidak bisa diprediksi, seperti pengiriman sesuatu ke dalam dan keluar dari beberapa register pada suatu saat). Untuk contoh, mari kita coba mengeksekusi kebenaran instruksi berikut ke dalam program kami. 1. Pindahkan isi dari R0 ke dalam register R1. 2. Tambahkan +1 ke isi register R1. Dua operasi ini akan dieksekusi secara normal dengan pengambilan secara berurutan masing-masing instruksi dalam turn, dan kemudian carrying out -nya. 1. Get instruksi 1. 2. Carry out instruksi 1. 3. Get instruksi 2.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 47/87
Diktat Kuliah Organisasi Komputer
Carry out instruksi 2. Biarpun, penelusuran step 2 dan 3, kita melihat bahwa carrying out instruksi pertama (R0 → R1) dan pengambilan instruksi kedua (yang disimpan dalam memori) tidak secara langsung mempengaruhi yang lainnya. Kemungkinan kita bisa overlap 2 langkah ini dengan penggunaan bus-bus yang berbeda dalam pengimplementasiannya. Dalam fakta, ini memungkinkan, dan seandainya sebagian bus tersedia, 2 operasi bisa dikeluarkan dalam cara berikut : 1. Get instruksi 1. 2. Carry out instruksi 1 dan ambil instruksi 2. 3. Carry out instruksi 1. Total waktu yang dibutuhkan akan berkurang sekitar 25 persen. Ketika perancang komputer, kita selalu mencari keuntungan dengan melihat cara untuk melaksanakan operasi secara simultan. Bagaimanapun juga, kita sebaiknya berhatihati ketika kita melaksanakan operasi daripada secara sekuensial : sangat tidak kentara, kesalahan terhadap tergantungan waktu dimungkinkan. Untuk contoh, jika instruksi pertama dari 2 instruksi yang benar yang sudah dibicarakan, “ modify the next instruction”, dan kita kerjakan modifikasi instruksi secara simultan, kita telah mengeksekusi instruksi yang tidak dimodifikasi lebih baik daripada instruksi yang dimodifikasi. Disayangkan kelebihannya, pada struktur bus hubungan penuh mempunyai banyak kelemahan, yang jelas dari banyaknya line pada gambar 5.4. Secara teori, jika kita mempunyai n komponen, masing-masing yang harus dihubungkan ke semua atau semua komponen yang terdekat lainnya, jumlah hubungan akan tumbuh pada kisaran n 2. Dalam mesin yang nyata jumlah komponen (register-register, prosesor-prosesor, dsb) sangat banyak dan komplesitas dari potensi keterhubungan secara astronomi. Itu menjadi sangat sulit dan sangat mahal untuk membangun komputer dengan banyaknya kabel dan hubungan. Ada penggambaran lain dan itu merupakan masalah wasted capacity. Sesuatu yang seandainya paralelisme bisa diimplementasikan, yang secara umum mencakup pelaksanaan 2 atau mungkin 3 operasi secara simultan. Jika ada 20 bagian dan bus-bus yang unik, suatu utilisasi yang tinggi dimungkinkan, hanya 10 atau 15 persen dari kapasitasnya sebagian bisa diutilisasikan secara penuh di sala satunya. Maka 85 atau 90 persen kemampuan transmisi komputer akan kosong. Sekarang mari kita lihat koneksi jaringan dari gambar 5.5. Malahan mempunyai jumlah bus yang maksimum, kita bisa mempunyai jumlah yang minimum, katakan satu. Semua komponen fungsional akan hang pada bus ini, dan smeua transfer akan menempatkan diantara bus. Secara tipikal, disebut common bus structure. 4.
R 0
M em or y M AR
R 1
generalpurpose registers
M BR +
Adder
Gambar 5.5 : Struktur Bus Biasa
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 48/87
Diktat Kuliah Organisasi Komputer
Sewaktu-waktu kita menginginkan yang berakibat transfer kita harus meminta kepemilikan bus untuk suatu periode waktu tertentu. Jika operasi lainnya juga mencoba untuk meminta bus, arbitration diperlukan. Suatu keputusan bisa dibuat siapa yang akan mengambil bus dan siapa yang akan menunggu. Kemungkinan tidak overlapping , dan antrian delay terjadi dikarenakan waktu tunggu yang menyertai. Kebijakan arbitration biasanya dihasilkan oleh peralatan pusat yang disebut bus controller atau bus master dan didasarkan pada skema dalam tingkatan prioritas yang ditugaskan ke masing-masing peralatan yang ada pada sistem. Permintaan dengan prioritas tinggi selalu mengambil kontrol bus. Dengan alternatif, kita menggunakan skema arbitration desentralisasi dan unit individu menentukan diantara mereka siapa yang akan menambahkan kepemilikan bus selama siklus beriktunya. Seperti arsitektur yang mempunyai sedikit keunggulan dan biaya yang rendah. Hanya ada satu paralel bus dalam sistem masukan. Seperti peralatan yang relatif tidak mahal dan mudah untuk diproduksi. Jika salah satu yang tidak berhati-hati, bagaimanapun, dan waktu bus transfer juga lambat, common bus bisa menjadi suatu bottleneck . Dalam kasus yang ekstrim, antrian delay bisa menjadi lebih panjang daripada waktu proses yang aktual. Sebagai tambahan, tidak ada overlapping transfer data yang terjadi. Oleh karena itu, skema common bus yang mungkin cocok untuk mikro atau mini komputer yang kecil dan tidak mahal. Gambar 5.6 mempunyai 2 bus, satu dengan panjangnya m bit, digunakan sebagai data bus, dan satunya dengan panjang n bit, digunakan sebagai address bus. Pengiriman data, seperti memindahkan suatu m bit integer 2-komplemen dari R0 ke adder , bisa menempatkan tempat diantara data bus. Pengiriman address, seperti memindahkan suatu n bit address biner tidak bertanda dari R0 ke MAR, bisa menempatkan tempat diantara address bus. Selama kita mempunyai 2 bus, banyak modus paralelisme bisa terjadi. Untuk contoh, 2 pengiriman (R0 → adder dan R1 → MAR) bisa didekatkan secara simultan diantara 2 bus. M em ory Bu s 1
Bu s 2
M A R M BR R 0 R 1 general-purpose registers + Adder D a ta b u s ( m b i ts w i d e )
A d d r ess b u s ( m b i ts w i d e )
Gambar 5.6 : Struktur 2 bus Menggunakan Bus Address dan Bus Data
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 49/87
Diktat Kuliah Organisasi Komputer
Tiga bus yang ditunjukkan pada gambar 5.7 dimasukkan/digabungkan ke dalam bus input /output dan bus memori. Lihat gambar 5.7 berikut : Input Devices
Input Controller
In p u t b u s
M em or y b u s M em ory
Output Devices
O u tp u t Controller
P r o c e ss o r
O u tp u t b u s
Gambar 5.7 : Struktur Tiga Bus menggunakan Bus I/O dan Bus Memori
Sekarang ada satu bus, disebut memory bus, untuk menangani semua transfer antar memori dan komponen internal komputer, yang lebih disukai common bus. Ada juga bus kedu dan ketiga yang spesifik untuk menangani transfer langsung informasi diantara peralatan input /output dan memori. Kemudian, beberapa level modus paralelisme yang terjadi. Operasi I/O bisa mentransfer karakter ke dalam memori ketika komputer sedang mengeksekusi operasi lainnya yang tidak dihubungkan ke tempat penempatan operasi I/O. Sejalan dengan adanya perpindahan untuk standarisasi karakteristik bus secara elektronika, mekanika, dan fisika. Berikut standarisasi struktur bus secara ekstrim terkenal dan secara luas digunakan : − S-100 bus : suatu bus paralel 100 kabel yang digunakan pada beberapa mikrokomputer − Unibus : suatu bus paralel 120 kabel yang digunakan pada beberapa minikomputer. − RS-232C : suatu standarisasi antarmuka (interface) untuk transmisi data secara serial diantara paths komunikasi eksternal. − IEEE-488 : bus dengan 24 kabel yang mentransmisikan data dalam model serial byte.
5.3 Control Unit 5.3.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 Opcode
Address Field
Address Field
…
Operand 1
Operand 2
…
− Address field disebut juga operand yaitu pengalamatan informasi pada prosesor yang akan dilaksanakan operasi secara spesifik.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 50/87
Diktat Kuliah Organisasi Komputer
− 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. A. 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 Opcode Operand 1
Right operand Operand 2
Result Hasil
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 100 ADD B C 101
SUB
Temp
Next Instruction Next order
Result Temp
D
A
Next Instruction 101 Next address
B. 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 Opcode Operand 1
Contoh : A := B + C – D Address Opcode 100 ADD 101 −
IF - UTAMA
SUB
Right Operand Operand 2
Result Hasil
Left Operand B
Right Operand C
Result Temp
T
D
A
Konsekuensi : Instruksi harus ditulis secara berurut
Versi/Revisi : 1/0
Halaman : 51/87
Diktat Kuliah Organisasi Komputer
Diperlukan komponen untuk menyimpan alamat instruksi berikutnya berupa register yang disebut program counter (PC) C. 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 Opcode Operand 1
Right Operand 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+ Temp1 {Temp1 ← B + C}
102
MOVE
D
Temp2
{Temp2 ← D}
103
SUB
Temp1
Temp2
{Temp2←Temp1-Temp2 {Temp2 ← (B + C) – D}
104
MOVE
Temp2
A
−
{A ← Temp 2}
Konsekuensi : Instruksi harus berurut Diperlukan program counter Harus ditetapkan program penyimpanan hasil operasi, misalnya hasil operasi disimpan pada operand 1
D. 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 R 0) → CON(register R 0) Contoh : eksekusi assigemnt A := B + C – D Address Op code Operand
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 52/87
Diktat Kuliah Organisasi Komputer
−
100
LOAD
B
{R 0 ← B}
101
ADD
C
{R 0 ← B + C}
102
SUB
D
{R 0 ← (B + C) – D}
103
STORE
A
{ A ← R 0}
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).
E. 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 B A Stack
TOP
− 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) :
C B A Sebelum
← TOP
X C B A Sesudah
← TOP
POP (X) :
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 53/87
Diktat Kuliah Organisasi Komputer
C B A Sebelum
← TOP
B A sesudah
← TOP
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}
5.3.2 Penyimpanan Instruksi Instruksi bahasa mesin disimpan secara berurutan di dalam memori. Bersamasama, 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 beirkut : 10010000
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 54/87
Diktat Kuliah Organisasi Komputer
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. 2. 3. 4. 5.
Unsigned binary Signed integers Characters Floating point 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 .
5.3.3 Komponen Control Unit
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 55/87
Diktat Kuliah Organisasi Komputer
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 I n c r e m e n to r berikut : + 1
PC P r og r a m C o u n te r
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 56/87
Diktat Kuliah Organisasi Komputer
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 Address 1 Address 2 OP Code 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 5.8 : Instruction Decoder . IR
O p c od e
A d d r e ss fie ld ( s)
I n s tr u c t i o n decoder
ADD SU B M O V E
T o t h e l o g i c c i r c u i ts
Gambar 5.8 : Instruksi Dekoder Satu dan hanya satu dari lines output dekoder dalam gambar 5.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 5.9 berikut :
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 57/87
Diktat Kuliah Organisasi Komputer
Op code IR
A d d r e s s fi e ld ( s)
A D D ( op c o d e = 0 00 )
S U B ( op c o d e = 0 01 )
M O V E ( op c o d e = 0 1 0 )
I n s tr u c ti o n d e c o d e r
Gambar 5.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.
5.3.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 ) :
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 58/87
Diktat Kuliah Organisasi Komputer
Gambaran formal dari fetch phase {move the PC to the MAR} 1. MAR ← PC 2. READ {fetch the instruction} {move it into the IR} 3. IR ← MBR 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 ← IR address 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 ← IR address 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 ← IR address 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.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 59/87
Diktat Kuliah Organisasi Komputer
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 5.10. IR
Op code
I n s tr u c t i o n decoder
M ic r op r o g r a m
T o th e m i c r o c o n tr o ll e r , w h i c h w i l l e x e c u te t h i s m ic ro p o rg a m
M ic r op r o g r a m
C o n tr o l m e m o r y
Gambar 5.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 5.4 berikut ini : Tabel 5.4 : Level Tiga dari Abstraksi Komputer Machine-Language Firmware High-Level Language Abstraction Abstraction Abstraction A := B + C
IF - UTAMA
LOAD B ADD C STORE
Versi/Revisi : 1/0
MAR ← IR address READ R0 MBR
Halaman : 60/87
Diktat Kuliah Organisasi Komputer
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.
5.4 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.
5.5 Soal-Soal Latihan 1. 2.
3.
4.
5.
Kerjakan soal-soal berikut ini : Develop an algorithm for integer divison that uses only integer addition, subtraction, and comparison. How efficient would this algorithm be in general ? Show the sequence of operation nescessary to evaluate the expression: A := ((B + C) * D) + (E / F) With 4-format instruction a. b. With 3-format instruction With 2-format instruction c. With 1-format instruction d. With 0-format instruction e. If the execution phase of some mechine-language instruction is decribed by the following 1-line microprogram, R0 PC what type of instruction must this be ? Show the sequence of operations that would occur during the execution phase of the following hypothetical 1-address instruction. SEND val Send the value “val” directly to register R0 Rewrite the following expression in prefix notation and then show the 0-address machine-language instructions that evaluate it. A := ((B + C * (C / (D * E))) – 1
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 61/87
Diktat Kuliah Organisasi Komputer
BAB VI ORGANISASI SISTEM KOMPUTER 6.1 Pendahuluan Komputer digital berisi sistem yang saling berhubungan erat antara prosesor , memori dan peralatan I/O. Tiga komponen ini yang saling berhubungan antar komponenkomponen tersebut. Hubungan ini bisa dibentuk dengan cara menggunakan bus-bus atau interconnect antar komponen-komponen tersebut.
6.2
Prosesor
Organisasi komputer yang berorientasi pada bus secara sederhana dapat digambarkan pada gambar 6.1 berikut ini :
CPU
Control Unit ALU (Arithmetic and Logic Unit I/O Device
. .
. .
Main Memori
Disk
Printer
BUS
Gambar 6.1 : Organisasi Komputer Sederhana dengan Satu CPU dan 2 Peralatan I/O CPU merupakan otak komputer. CPU berfungsi untuk mengeksekusi program yang disimpan di memori utama dengan pengambilan intruksi program, memeriksa instruksi program, dan kemudian mengeksekusi program lainnya secara bergantian. CPU disusun dari beberapa bagian yang penting yaitu : 1. Control Unit yang bertanggung jawab untuk mengambil instruksi dari memori utama dan menentukan tipe lainnya. 2. Arithmetic and Logic Unit yang melaksanakan operasi seperti pertambahan dan logika AND yang dibutuhkan untuk instruksi carry out. 3. Register yaitu : sesuatu yang kecil, memori kecepatan tinggi yang berguna untuk menyimpan hasil sementara dan beberapa informasi pengendalian. Memori ini berisi sejumlah register, yang mempunyai suatu fungsi yang pasti. Register yang lebih
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 62/87
Diktat Kuliah Organisasi Komputer
penting adalah Program Counter ( PC ), yang menentukan untuk eksekusi instruksi berikutnya. Instruction Register , yang memegang instruksi yang berjalan yang sedang dieksekusi. Komputer mempunyai register lainnya yang sama pentingnya.
6.2.1 Eksekusi Instruksi Instruksi yaitu suatu perintah yang berisi data dari program user yang diolah oleh komputer untuk menghasilkan informasi yang bermanfaat. CPU mengeksekusi setiap instruksi dalam langkah pada setiap sesi yang sederhana, yaitu : 1. Mengambil instruksi selanjutnya dari memori ke dalam register instruksi ( IR). 2. Merubah program counter untuk menentukan instruksi berikutnya. 3. Menentukan tipe instruksi yang diambil 4. Jika instruksi menggunakan data di dalam memori, maka menentukan tempat data berada. 5. Mengambil data, jika ada, ke dalam register CPU internal. 6. Eksekusi instruksi 7. Simpan hasil di tempat tepat (sesuai). 8. Ke step 1 untuk memulai eksekusi instruksi berikutnya. 9. Ulangi langkah 1 untuk memulai eksekusi instruksi berikutnya. Urutan langkah-langkah merupakan frekuensi yang dihubungkan sebagai siklus fetchdecode-execute. Fetch-decode-execute merupakan pusat operasi dari semua komputer.
6.2.2 Organisasi CPU Organisasi internal dari bagian CPU Klasik Von Neumann ditunjukkan secara lebih detil dalam gambar 6.2 berikut ini : A+B
A Registers B
ALU Input Register
A
B
ALU
A+B
Gambar 6.2 : Data Path pada Tipikal Mesin Von Neumann IF - UTAMA
Versi/Revisi : 1/0
Halaman : 63/87
Diktat Kuliah Organisasi Komputer
Bagian ini disebut data path dan terdiri dari register-register (secara umum 1 sampai 16) dan ALU. Register-register memasukan ke dalam register-register input ALU , yang diberi label A dan B dalam gambar diatas. Register-register ini memegang input an ALU ketika ALU sedang mengkomputasikan. ALU dengan sendirinya melaksanakan berikut ini : • Pertambahan • Pengurangan Operasi sederhana lainnya pada input an operasi. • Yang kemudian hasilnya dimasukan pada register output . Register output ini bisa menyimpan kembali ke dalam suatu register, dan dari sana, kembali ke dalam memori. Instruksi bisa dibagi ke dalam 3 kategori : register-memory, register-register , dan memory-memory.
6.2.3 Eksekusi Instruksi Paralel Suatu pendekatan yang memungkinkan bahwa satu CPU kecepatan yang tinggi, yang mungkin dibangun dengan beberapa ALU yang lambat atau secara komplit CPU yang memberikan beberapa kekuatan komputasi pada biaya yang rendah. Mesin paralel bisa dibagi ke dalam tiga kategori yang didasarkan pada bagaimana beberapa intruksi dan urutan datanya yaitu : 1. SISD: Single Instruction Stream, Single Data Stream. 2. SIMD: Single Instruction Stream, Multiple Data Stream. 3. MIMD: Multiple Instruction Stream, Multiple Data Stream. Mesin Von Neumann merupakan mesin SISD. Mesin yang mempunyai : • Satu urutan instruksi (satu program). • Pengeksekusian oleh satu CPU. • Satu memori yang terdiri dari data program. Pengeksekusian mesinnya yaitu : • Instruksi pertama diambil dari memori kemudian dieksekusi • Instruksi kedua diambil dan dieksekusi.
6.3
Memori
Memori adalah bagian dari komputer yang ada program dan data disimpan di dalamnya. Scientis komputer memnggunakan istilah store atau storage lebih dikenal daripada memori. Tanpa ada memori maka prosesor tidak bisa baca dan tulis informasi, komputer digital tidak akan menyimpan program.
6.3.1 Bit Unit dasar dari memori adalah digit biner, yang disebut bit. Bit bisa berisi 0 atau 1. Memori merupakan unit yang mungkin lebih sederhana. Peralatan yang cukup hanya menerima 0 dengan bentuk tetap dari dasar system memori. Paling sedikit 2 nilai yang dibutuhkan.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 64/87
Diktat Kuliah Organisasi Komputer
6.3.2 Address Memori Memori terdiri dari beberapa cell (lokasi) yang setiap tempatnya menyimpan sebuah informasi. Setiap cell mempunyai nomor, yang disebut address, dengan address dapat menghubungi program. Jika memori mempunyai n cell, maka akan mempunyai address 0 sampai n – 1. Semua cell dalam memori berisi beberapa bit. Jika sebuah cell berisi k bits, maka cell mendapatkan salah satu dari 2 k gabungan bit yang berbeda. Lihat gambar berikut yang menunjukan perbedaan ketiga organisasi untuk memori 96-bit. Catatan cell yang berdampingan mempunyai address yang berurutan. Lihat gambar 6.3 berikut ini : Address
Address
0 1 2 3 4 5 6 7 8 9 10 11
1 cell
0 1 2 3 4 5 6 7
Address 0 1 2 3 4 5 16 bit
12 bit
8 bit Gambar 6.3 : Tiga Cara Pengorganisasian sebuah Memori 96 bit
6.3.3 Memori Kedua Sebab setiap word dalam memori utama dapat diakses secara langsung dalam yang sangat singkat, memori utama yang relatif mahal. Dengan konsekuensi, komputer lebih lambat, murah, dan biasanya memori sekunder lebih luas sebagai alternatif yang baik. Memori sekunder digunakan untuk mendapatkan sekumpulan data yang lebih banyak daripada memori utama. A. Magnetic Tapes Merupakan jenis memori yang pertama. Tape drive komputer dianalogikan dengan tape recorder rumah. Informasi diorganisasikan dengan 8-bit untuk setiap byte, masingmasing frame (kolom) berisi 1 byte tambah bit extra, bit kelebihan, bit pariti, untuk perbaikkan. Sesudah tape drive menyelesaikan penulisan record secara fisik (urutan dari frame), tape drive menemukan sebuah gap pada tape maka turun secara lambat. Jika program menuliskan record fisik lebih pendek pada tape, penempatan selebihnya akan terbuang dalam gap. Magnetic tape merupakan peralatan akses secara sequensial. B. Magnetic Disk Disk yang berupa lempengan metal, diameter antara 5 sampai 10 inci, untuk lapisan magnetis yang sudah ada dari pabriknya, secara umum ada pada dua sisi. Informasi direcordkan pada beberapa lingkaran konsentrasi yang disebut track. Banyaknya head yang dipasang untuk membaca atau menulis informasi dari satu track yang tepat.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 65/87
Diktat Kuliah Organisasi Komputer
C. Floppy Disk Perkembangan personal komputer, suatu alasan dibutuhkannya distribusi software. Solusinya ditemukan diskette atau floppy disk, ukuran kecil, disebut juga media yang dapat dipindah-pindah sebab salah satu kemudahannya yaitu fisiknya ya ng fleksibel. D. Optical Disk Tahun belakangan ini, optical (sebagai tandingan magnetic) disk telah menjadi kebutuhan. Kapasitas recording lebih tinggi daripada magnetic disk konvensional. Sebagai media penyimpanan.
6.4 Input /Output Komponen yang ketiga dari komputer yang sebelumnya telah dibicarakan yaitu peralatan Input/Output . Salah satu peralatan I/O yaitu : p rinter, scanner, dan modem.
6.4.1 BUS Pada sebagian besar komputer pribadi dan workstation memiliki struktur yang serupa. Dan biasanya memiliki sbeuah kotak logam dengan papan rangkaian cetakan (PCB) besar pada bagian bawah yang disebut motherboard ( parentboard , istilah yang sebenarnya). Pada motherboard ada soket-soket yang digunakan untuk penghubung peralatan I/O. Kadang-kadang terdapat 2 bus, yakni bus kecepatan tinggi (I/O modern) dan bus kecepatan rendah (I/O yang terdahulu). Ada beberapa hal yang menyangkut bus yaitu : − Jenis pengaturan informasi lalu lintas pada sebuah bus yaitu : 1. terpusat diatur oleh bus control 2. terdistribusi (desentralisasi) unit = pengatur bus mangatur seri dengan prosedure tersebut. − Pembagian bus menurut jenis informasi : 1. data bus untuk data 2. data bus untuk alamat − Pembagian bus menurut unit-unit yang memuat unit-unit yang dihubungkan : 1. Input / Otput bus, I/O ←→ Processor 2. Memori bus, memori ←→ Processor − Modus Transfer (antara I/O device – memory komputer) a. Perangkat mekanis ( I/O mechanism) Contoh : Keyboard : mekanisme tombol-tombol kunci ditekan (input data) Printer : mekanisme - head bergerak kiri-kanan - pita-pita head memunculkan karakter Disk : mekanisme pemutar piringan menggunakan haed pada sektor yang dituju
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 66/87
Diktat Kuliah Organisasi Komputer
b.
Perangkat pengendali ( I/O controller ) Menggunakan cairan informasi antara peralatan I/O ke komputer
I/ O Mekanisme
buffer
memory
I/O controller
Processor “START” −
Fungsi I/O Controller berisi buffer sebagai tempat penyimpanan sementara bagi data ♦ yang ditransfer ke / dari komputer menerima sinyal “ start ” dari komputer ♦ ♦ mengaktifkan I/O mechanism mengirim sinyal “done” atau “error ” ke komputer ♦ ♦ transfer data ke / dari main memory tranfer data ke / dari I/O mechanism ♦
6.4.2 Unit Input dan Output Input Unit − Input Unit adalah istilah lain dari data − Input Device adalah alat yang menerima dan kemudian membacanya dan diteruskan kepada storage unit . − Input device adalah alat pembaca input , contoh : Magnetic Tape Unit Disk Drive Unit Card Magnetic Reader − −
−
−
Output Unit Bertugas mengeluarkan hasil pengolahan dari CPU melalui main storage Ada 2 pengerian output unit 1. Output hasil pengolahan (informasi atau hasil lainnya) 2. Output device ( alat yang menerima hasil pengolahan data dari CPU melalui storage dan akan menghasilkan output Output device yang banyak digunakan adalah : 1. Card Punch Mechine 2. Line/Matrix Printers 3. Magnetic Tape Uniit 4. Disk Drive, dan sebagainya Apabila output yang dihasilkan dimasukan ke dalam magnetik tape unit dan disk drive maka tape dan disk drive tersebut merupakan Eksternal Storage.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 67/87
Diktat Kuliah Organisasi Komputer
6.5
Ringkasan
Sistem-sistem komputer dibuat dari tiga komponen : prosesor, memori, dan piranti I/O. Tugas sebuah prosesor adalah untuk menangkap instruksi-instruksi setiap satu kali dari memori, mendekodekannya, dan melasanakannya. Siklus read-decode-execution selalu bisa dijelaskan sebagai suatu algoritma dan kadang-kadang dilakukan oleh interpreter perangkat lunak yang dijalankan pada level rendah. Untuk menaikan kecepatan, pada saat ini banyak komputer memiliki satu atau lebih pipeline atau memiliki rancangan superskalar dengan satuan-satuan fungsional multipel yang beroperasi secara paralel. Memori dapat dikategorikan sebagai primer dan sekunder. Memori primer digunakan untuk menyimpan program yang saat ini sedang berjalan. Waktu akses memori primer sangat singkat, paling lama beberapa puluh nano-detik dan tidak tergantung pada alamat yang diakses. Sebagian memori diperlengkapi dengan kode-kode koreksi kesalahan yang berguna untuk mempertinggi kehandalan memori. Sedangkan memori sekunder memiliki waktu akses yang jauh lebih lama dan tergantung pada lokasi data yang sedang dibaca atau sedang ditulis. Peralatan I/O digunakan untuk mentransfer informasi ke dalam dan keluar komputer. Piranti-piranti ini dihubungkan dengan prosesor, sedangkan memori oleh satu atau lebih bus. Contoh piranti yaitu terminal, mouse, printer, dan modem. Sebagian besar piranti I/O menggunakan kode karakter ASCII, meskipun UNICODE dengan cepat akan memperoleh penerimaan ketika industri komputer mendunia.
6.6 1.
2.
3.
4. 5.
Soal-Soal Latihan Kerjakan soal-soal berikut ini : Yang manakah dianatara memori-memori berikut ini yang memungkinkan ? yang manakah yang masuk akal ? jelaskan ! 10-bit alamat, 1024 cell, 8-bit ukuran cell a. 10-bit alamat, 1024 cell, 12-bit ukuran cell b. 9-bit alamat, 1024 cell, 10-bit ukuran cell c. d. 11-bit alamat, 1024 cell, 10-bit ukuran cell 10-bit alamat, 1024 cell, 1024-bit ukuran cell e. 1024-bit alamat, 10 cell, 10-bit ukuran cell f. Sebuah komputer bisa dilengkapi dengan 268.435.456 byte memori. Mengapa produsen akan memilih nilai ganjil tersebut daripada 250.000.000 bukankah nilai (angka) genap tadi mudah diingat ? Produsen mengiklankan bahwa terminal colour bit-map mampu menampilkan 2 24 warna yang berbeda. Meskipun demikian perangkat keras ini hanya memiliki 1 byte untuk setiap pixel. Bagaimana hal ini bisa dilakukan ? Berapa lama pulsa yang berkaitan dengan satu pixel, jika suatu terminal memiliki peta-bit tampilan 1024 x 768 dan tampilan bisa digambar ulang 75 kali per detik. Berapa kapasitas data yang pasti (satuan byte) dari sebuah CD-ROM mode 2 yang berisi 74 menit nilai data standar ?
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 68/87
Diktat Kuliah Organisasi Komputer
BAB VII CHIP MICROPROCESSOR DAN BUS-BUS
7.1 Pendahuluan Pertama kali dilihat pada beberapa aspek secara umum tentang mikroprosesor sebagai pandangan dari level logika digital, yang meliputi pinout (sinyal apa pada beragam arti pin). Karena mikroprosesor sangat erat kaitannya dengan rancangan bus-bus yang digunakannya, pada bagian ini juga akan disajikan penghantar ke rancangan bus.
7.2 Chip Mikroprosesor Istilah mikroprosesor mengandung arti beberapa CPU yang digabungkan pada satu chip, pada waktu yang lewat mempunyai arsitektur dan kekuatan komputasi pada suatu mainframe kecil. Pendefinisian didasarkan pada pengepakan, yang membuat definisi sesuai untuk level logika digital yang akan dipelajari sekarang. Ciri-ciri chip mikroprosesor yaitu : • Mempunyai pin diantara 40 dan 132, • Beberapa pin sinyal output dari CPU, • Sinyal masukan lainnya dari dunia luar, Sinyal yang bekerja antara keduanya (sinyal output dan sinyal masukan). • Fungsi semua pin, yang bisa dipelajari yaitu bagaimana CPU berinteraksi dengan memory dan peralatan I/O pada level logika digital. Pin-pin pada chip mikroprosesor bisa dibagi ke dalam tiga tipe yaitu : 1. Address 2. Data 3. Kontrol Pin-pin ini dihubungkan yang serupa pin pada chip memori dan I/O lewat sekumpulan kabel paralel yang disebut BUS . Pengambilan instruksi : 1. Mikroprosesor meletakkan address memori dari suatu instruksi pada pin addressnya 2. Mikroprosesor (biasanya) memasukkan garis kendali untuk menginformasikan ke memori bahwa mikroprosesor ingin membaca suatu word . 3. Memori membalas dengan meletakan word kebutuhan pada pin data mikroprosesor 4. Memasukkan suatu sinyal perkataan bahwa kerjakanlah mikroprosesor 5. Ketika mikroprosesor mendengar (melihat) sinyal ini, mikroprosesor memasukkan instruksi word dan carries out . Dua parameter kunci yang menjelaskan performansi dari suatu mikroprosesor yaitu : 1. sejumlah pin address 2. sejumlah pin data suatu chip dengan pin m address bisa mengalamati sampai 2 m lokasi memori. Nilai yang umum dari m yaitu : 16, 20, 24, dan 32. Sama halnya, suatu chip dengan pin n data yang bisa membaca atau menulis suatu word n-bit dalam satu operasi. Nilai yang umum dari n yaitu : 8, 16, dan 32. Mikroprosesor dengan 8 pin data akan membawa empat operasi baca suatu word 32 bit, dimana satu dengan 32 pin data yang bisa mengerjakan beberapa IF - UTAMA
Versi/Revisi : 1/0
Halaman : 69/87
Diktat Kuliah Organisasi Komputer
job dalam satu operasi. Sehingga chip dengan 32 pin data jauh lebih cepat, tetapi sebagai invarian lebih mahal dan lebih baik. Masing-masing mikroprosesor mempunyai beberapa pin kontrol. Pins kontrol meregulasi aliran dan pewaktuan pada data ke dan dari mikroprosesor dan mempunyai bermacammacam penggunaan lainnya. Semua mikroprosesor mempunyai pin berikut : • untuk power (biasanya +5 volt) • ground • sinyal clock 1. 2. 3. 4. 5. 6.
Pin kontrol bisa dikelompokan ke dalam kategori umum berikut : bus kontrol interrupt bus arbitration (wasit) pensinyalan coprossesor status (keadaan) miscellaneous
Pin bus kontrol yaitu lebih banyak output dari mikroprosesor ke bus yang menceritakan sesuatu keinginan mikroprosesor untuk membaca atau menulis memori atau mengerjakan sesuatu yang lainnya. Pin Interrupt yaitu input dari peralatan I/O ke mikroprosesor. Lebih ke sistem, mikroprosesor bisa menceritakan ke peralatan I/O untuk memulai operasi, dan kemudian meninggalkan dan mengerjakan sesuau yang berguna ketika peralatan I/O lambat mengerjakan sesuatu pekerjaannya. Ketika peralatan I/O sudah selesai, chip kontroler I/O memasukkan suatu sinyal pada salah satu pin ini untuk interupsi CPU dan mikroprosesor melayani peralatan I/O. Pin bus arbitration yaitu pin yang dibutuhkan untuk meregulasi trafik pada bus, suatu perintah untuk menghadirkan dua peralatan dari percobaan menggunakan dua peralatan pada suatu saat. Tujuan arbtration yaitu CPU menghitung suatu peralatan. Beberapa chip mikroprosesor dirancang untuk beroperasi dengan coprocessor , lebih umum chip floating-point , tetapi suatu saat bisa grafik atau chip lainnya lebih baik. Untuk memfasilitasi diantara mikroprosesor dan coprocessor , pin yang disediakan secara spesial untuk pembuatan dan bantuan macam-macam permintaan. Tambahan untuk sinyal-sinyal ini, yaitu macam-macam pin lainnya yang dipunyai beberapa mikroprosesor. Ini menyediakan atau memasukkan keadaan informasi, penggunaan lainnya untuk menset ulang komputer, dan ketahanan lainnya yang menghadirkan untuk meyakinkan kompatibel dengan chip I/O yang lama.
7.3 Bus Komputer Bus yaitu jalur elektrik yang umum diantara banyak peralatan. Salah satu contoh yang umum yaitu bus sistem yang ada pada semua mikrokomputer, yang terdiri dari 50 sampai 100 pasang kabel paralel yang terpasang pada motherboard, dengan tempat penghubung pada interval regular untuk plugging (menempel) dalam memori dan board I/O. Chip microprocessor dengan sendirinya ada banyak bus untuk hubungan antar komponen dalam. Ketika perancang microprocessor yang dibebaskan menggunakan beberapa jenis bus yang mereka inginkan disisi chip, pembuatan yang memungkinkan untuk merancang board dengan tiga bagian yang tuntas untuk sistem bus, sebaiknya pendefinisian rules (aturan) yang baik tentang bagaimana :
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 70/87
Diktat Kuliah Organisasi Komputer
bus bekerja dan semua peralatan yang diselesaikan
Aturan ini disebut protokol bus. Beberapa bus yang digunakan dalam komputer yaitu :
Camac bus (nuclear physics)
EISA bus (80386)
Fastbus (high energy physics)
IBM PC dan PC/AT buses (IBM PC dan PC/AT)
Massbus (PDP-11, VAX)
Megabus (Honeywell)
Microchannel (PS/2)
dsb. Bagaimanakah bus bekerja yaitu :
peralatan yang menuntaskan (melewatkan) suatu bus yang diaktifkan dan bisa menginisialisasi bus transfer, salah satu yang aktif disebut masters.
yang lainnya yaitu dipassivekan dan menunggu untuk request, salah satu pasif yang disebut slave.
Bus masters dihubungkan ke bus oleh suatu chip yang disebut bus driver , dengan tujuan pokok menguatkan sinyal digital.
Bus slave dihubungkan ke bus oleh bus receiver .
Untuk peralatan yang bisa beraksi sebagai master dan slave, chip kombinasi yang digunakan dan disebut bus transceiver .
Tiga keadaan peralatan (bus interface chip) yaitu : Untuk mengijinkan float ketika tidak dibutuhkan, atau dibangkitkan dalam sesuatu cara yang berbeda disebut open collector , yang menerima suatu efek yang serupa. 1.
Dua atau lebih peralatan pada suatu garis open collector memasukan sebuah line pada suatu saat, hasilnya yaitu boolean OR dari semua sinyal, disebut wire-OR. 2.
3. Beberapa line yaitu tiga keadaan dan lainnya, yang membutuhkan kemampuan wire-OR, yaitu open collector. Bus juga mempunyai berikut ini :
Line Address
Line Data
Line Kontrol (pengendali)
7.3.1 Bus Sinkronisasi Bus-bus bisa dibagi ke dalam dua kategori yang bergantung pada clocking , yaitu : 1. Bus sinkronisasi mempunyai sebuah line driven oleh sebuah oscillator kristal. Sinyal pada line ini terdiri dari gelombang kuadrat dengan seluruh frekuensi diantara 5 MHz dan 50 MHz. Semua aktivitas bus berdampak sejumlah kesatuan (integral) dari siklus ini, disebut bus cycles.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 71/87
Diktat Kuliah Organisasi Komputer
2. Bus asinkronisasi, yang tidak mempunyai suatu master clock. Siklus bus bisa dari kebutuhan yang melebar, dan membutuhkan tidak semua diantara peralatan yang ada. Pembacaan suatu byte dari memori membuat tiga siklus bus, yaitu : Mulai dari T1 yang didefinisikan oleh putaran edge dari clock. T2 yaitu pemberian waktu memori untuk mengkodekan alamat dan meletakan data pada bus. T3 yaitu CPU membaca data line, menyimpan nilai dalam sebuah register internal. Bus sinkronisasi merupakan kemudahan untuk bekerja dengan pasangan waktu interval secara terbatas, disamping itu mempunyai permasalahan. Untuk satu pemikiran, sesuatu pekerjaan dalam banyak kesatuan dari clock bus.
7.3.2 Bus Asinkronisasi Bus asinkronisasi yaitu bus yang mempunyai sebuah kumpulan peralatan yang heterogen, kadang cepat dan kadang lambat. Sekumpulan sinyal yang interlock, cara ini disebut full handshake. Bagian yang penting terdiri dari 4 kejadian : Komplemen MSYN yang dimasukkan Komplemen SSYN yang dimasukkan merespon ke MSYN Komplemen MSYN yang dinegasikan merespon ke SSYN Komplemen SSYN yang dinegasikan merespon ke negasi MSYN
7.3.3 Siklus Bus Siklus bus berguna untuk mekanisme yang dibutuhkan untuk mencegah kekacauan (disebut juga bus arbitration). Mekanisme pensiklusan bisa sentralisasi atau desentralisasi. Berikut urutan dari kejadian yang menunjukkan situasi yang menyebabkan kesalahan pemikiran, yaitu : Prosesor A membaca kata x dan melihat bahwa x adalah nol (siklus bus 0). Prosesor B membaca kata x dan melihat bahwa x adalah nol (siklus bus 1). Prosesor A menulis 1 ke dalam kata x (siklus bus 2). Prosesor B menulis 1 ke dalam kata x (siklus bus 3). Jika urutan ini terjadi, 2 prosesor secara simultan memperkirakannya masing-masing mempunyai akses eksklusif untuk membagi struktur data, alhasil dalam kekacauan. Untuk mencegah situasi ini, CPU mempunyai instruksi yang membaca kata di memori, dan jika kata itu 0, mengesetnya ke 1. Masalahnya yaitu intruksi meminta siklus 2 bus, satu untuk baca dan satu untuk menulis. Solusi untuk masalah ini yaitu menambahkan suatu line extra untuk bus, katakan saja, LOCK yang dimasukkan ketika suatu instruksi dimulai. Salah satu lock yang sudah dimasukkan, prosesor lain tidak diijinkan untuk mendatangi master bus sampai lock sudah dinegasikan. Aturan ini memberikan pekerjaan yang memungkinan original CPU mempunyai banyak siklus bus tanpa terganggu.
7.4
Penanganan Interupsi
Kepentingan penggunaan bus lainnya yaitu penanganan interupsi. Ketika CPU memerintah peralatan I/O untuk melakukan sesuatu, biasanya menunjuk suatu interupsi ketika pekerjaan dilakukan. Sinyal interupsi membutuhkan bus.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 72/87
Diktat Kuliah Organisasi Komputer
Untuk 8 chip controller I/O bisa secara langsung dihubungkan ke 8 input IRx (interupt request) ke 8259A. Ketika satu atau lebih input yang dimasukkan, 8259A memasukkan INT (INTerrupt), yang secara langsung mendorong pin interrupt pada CPU. Ketika CPU bisa menagani interrupt, CPU mengirim pulsa pengembalian ke 8259A pada INTA (INTerrrupt Acknowledge). Interupsi adalah suatu kecepatan tranfer dari kontrol yang menyebabkan suatu kejadian di dalam sistem. Ada beberapa kejadian yang menyebabkan suatu interupsi dalam CRA-1 − System call, sebuah sistem instruksi call dieksekusi − Timer, interval waktu penghitungan bawah ke 0. − Disk, peralatan disk menyelesaikan sebuah pengiriman. − Kesalahan program, program membuat kesalahan.
7.5
Ringkasan
Komputer dibangun dari chip-chip rangkaian terpadu yang berisi elemen-elemen penggeser yang berukuran kecil yang disebut gerbang. Gerbang-gerbang yang paling banyak dikenal adalah AND, OR, NAND, NOR, dan NOT. Rangkaian-rangkaian sederhana dapat dibangun secara langsung menggabungkan masing-masing gerbang. Komponen-komponen dari suatu sistem komputer dihubungkan oleh bus. Sebagian besar (tidak semuanya) pin pada suatu chip mikroprosesor tertentu secara langsung menggerakkan satu jalur bus. Jalur-jalur bus dapat dibagi ke dalam jalur alamat, jalur data, dan jalur kontrol. Bus sinkron digerakkan oleh sebuah master clock . Bus asinkron menggunakan full handshake untuk mensinkronisasikan slave ke master .
7.6
Soal-Soal Latihan
Kerjakan soal-soal latihan berikut ini : 1. Apa yang dilakukan rangkaian berikut ini ?
A B
C D
2. ALU bisa melakukan penjumlahan-penjumlahan komplemen 2 dengan 8 bit. Apakah ALU bisa melakukan pengurangan komplemen 2 ?. Jika bisa, jelaskan mengapa. Jika tidak, modifikasi ALU tersebut agar bisa melakukan pengurangan. 3. Sebuah komputer dengan lebar bus data 32-bit menggunakan 1M x 1 chip-chip memori RAM dinamik. Berapa memori terkecil (dalam byte) yang dapat dimiliki komputer ini ? 4. Sebagian besar bus 32-bit memungkinkan operasi baca dan tulis 16-bit. Apakah terdapat ambiguitas menyangkut tempat untuk menempatkan data ? 5. Sebuah PC/AT berkecepatan 10MHz membutuhkan 4 siklus untuk membaca sebuah word . Berapa banyak bandwith bus yang dihabiskan CPU tersebut ?
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 73/87
Diktat Kuliah Organisasi Komputer
BAB VIII THE MICROPROGRAMMING LEVEL
8.1
Pendahuluan
Setiap komputer mempunyai instruksi untuk berikut : • aritmetika • operasi boolean • pergeseran ( shifting ) • perbandingan (comparing ) • pengulangan (looping ), sebagainya. Semunya dieksekusi oleh hardware. Untuk masing-masing instruksi, suatu rangkaian hardware yang spesifik diadakan untuk menghasilkan rangkaian keluaran ( carry it out ). Salah satu gambaran bahwa komponen elektronik yang digunakan oleh instruksi pembagian. Pada komputer multilevel modern, komputer yang tidak mungkin untuk menutup rangkaian pembagian (circuit division) yang menyebabkan tidak ada rangkaian pembagian (circuit division). Semua instruksi yang memberdaya-gunakan pada level mesin konvensional (seperti instruksi untuk aritmetika, boolean, shifting , comparing , dan looping ) yang di-carry out -kan langkah demi langkah dengan suatu interpreter yang berjalan pada level microprogramming . Oleh karena itu program pada beberapa level bisa di-carry out -kan oleh suatu interpreter, dan dengan sendirinya interpreter ini bisa juga dieksekusi oleh interpreter lainnya, hierarki ini tidak bisa berjalan secara indefintie. Pada level bawah, seharusnya ada suatu mesin hardware secara fisik, dengan IC, power supply, dan objek “keras” lainnya. Bagaimanakah komponen hardware dikendalikan oleh microprogram dan bagaimanakah microprogram menerjemahkan level mesin konvensional ?. Sebab arsitektur dari level microprogramming, disebut microarchitecture, didefinsikan oleh hardware, microprogramming biasanya primitive dan yang ramah bagi program. Definisi microprogramming menurut kesepakatan Ied Rosin (1974) sebagai : • implementasi dari harapan yang bisa bertanggungjawab (reasonable) suatu penterjemahan sistem pada mesin yang tidak bertanggungjawab (unreasonable). Level microprogramming mempunyai fungsi yang spesifik : • pengeksekusian interpreter untuk mesin virtual (penuh harapan , more reasonable) lainnya. Tujuan perancangan ini secara alami meningkatkan suatu optimasi organisasi yang baik mengenai pengambilan ( fetching ) kembali, penyandian (decoding ), dan pengeksekusian instruksi mesin konvensional, dan, dalam beberapa kasus, instruksi yang lebih nyata.
8.2
Review Level Logika Digital
Pekerjaan seorang microprogramming yaitu menulis sebuah program untuk pengendalian register mesin, bus-bus, ALU, memori, dan komponen hardware lainya.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 74/87
Diktat Kuliah Organisasi Komputer
8.2.1 Register Level microprogramming selalu mempunyai register-register yang berdaya guna untuk memegang informasi yang dibutuhkan untuk pengolahan instruksi yang sedang berjalan diterjemahkan. Register pada beberapa kelompok komputer diberi nomor 0, 1, 2, …, n – 1, yang berguna pada level microprogramming, dan disebut storage lokal atau scratchpad storage. Lihat gambar 8.1 berikut. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit Number 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 Gambar 8.1 : register 16 bit bisa menyimpan informasi 16 bit Register bisa dikarakteristikan dengan bilangan satu : bagaimana beberapa bit informasi bisa disimpan. Penempatan informasi dalam suatu register yang tersisa sampai informasi lainya menempati register. Proses pembacaan informasi yang keluar daru register tidak merusak isi dari register. Dengan kata lain, ketika suatu register dibaca, suatu kopian dibuat dari isi register dan keaslian dalam register sebelah kiri tidak terganggu.
8.2.2 Bus-Bus Beberapa peralatan yang mempunyai kemampuan untuk berhubungan dan tidak berhubungan dengan sendirinya secara elektronik dari bus-bus ke paralatan secara fisik tidak ada. Hubungan ini bisa dibuat atau tidak dalam nanosecond. Bus suatu peralatan yang mempunyai properti ini disebut bus tri-state, sebab masing-masing line bisa 0, 1, atau tidak terhubung. Bus-bus tri-state yang secara umum digunakan ketika suatu bus mempunyai beberapa perlatan yang tidak ada untuk bus, dari semua yang bisa berpotensi meletakkan informasi pada bus. Lebih ke microarchitecture, beberapa register dihubungkan ke satu atau lebih bus bus input dan satu atau lebih bus-bus output . Lihat gambar 8.2 berikut.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 75/87
Diktat Kuliah Organisasi Komputer
input bu s
D0
D1
D2
D3
D4
D5
D6
D7
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
8-bit r e g i s te r
C o n tr o l s i g n a ls
CK
OE
o u tp u t bu s
Gambar 8.2 : Register 8-bit yang Dihubungkan ke Bus Input dan Bus Output 8 bit register berhubungan ke suatu bus input dan ke bus output , register yang terdiri dari flip-flop tipe D, masing-masing dihubungkan ke bus output lewat suatu buffer non inverting . Register mempunyai 2 sinyal pengendali yaitu CK dan OE , keduanya dihubungkan ke semua flip-flop. Secara normal, kedua sinyal yang merupakan dalam keadaan mereka diam tetapi kadang-kadang mereka bisa dimasukkan, yang menyebabkan korespondensi aksi terjadi. Ketika CK dinegatifkan, isi dari register yang dirusak oleh sinyal pada bus. Ketika CK dimasukkan, register dipanggil dari bus input Ketika OE dinegatifkan, register tidak dihubungkan dari bus output dan secara efektif ceases keberadaan sama seperti far register lainnya pada bus yang ditunjuk. Ketika OE dimasukkan, isi dari register diletakkan pada bus output . Lihat gambar 8.3 berikut ini : 16 to A bus
form C bus
16
16-bit register
16
to B bus
CK OE1 OE2 Gambar 8.3 : Representasi Simbolik Register 16-bit dengan Satu Bus Input dan 2 Bus Output
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 76/87
Diktat Kuliah Organisasi Komputer
8.2.3 Multiplexer dan Decoder Rangkaian yang mempunyai satu atau lebih line input dan mengkomputasi satu atau lebih nilai-nilai otuput secara unik yang digambarkan dengan keberadaan input -input yang disebut rangkaian kombinasional . Dua dari salah satu yang lebih penting yaitu Multiplexer dan decoder . Multiplexer mempunyai 2n input data-data (line sendiri atau bus-bus), satu data output dari lebar suatu input , dan n-bit input kendali yang memilih satu dari input input dan me-routing input ke output . Lihat Gambar 8.4 berikut. Input A B
2-to-1 Multiplexer
Output Gambar 8.4 : Multiplexer 2 Input ke 1 Output
Invers dari multiplexer yaitu demultiplexer, yang me-routing satu input demultiplexer ke satu dari 2 n output demultiplexer, tergantung pada nilai dari n line kendali. Rangkaian kombinasional lainya yang penting yaitu : Decoder yang mempunyai n line input dan 2n line output , dibilangan 0 sampai 2 n – 1. Jika bilangan biner pada line input yaitu k , maka line ouput k akan berupa 1 dan semua line output lainnya berupa 0. Decoder selalu mempunyai satu line output yang diset dengan jelas ke 1, dengan mereset 0. Lihat gambar 8.5 berikut. Input
4-to-16 Decoder
Output Gambar 8.5 : Decoder 4 Input ke 16 Output
Invers dari decoder yaitu Encoder , yang mempunyai 2 n input dan n output . Hanya satu line input bisa 1, dan bilangan encoder, dalam biner, dihadirkan sebagai output .
8.2.4 ALU dan Shifter Rangkaian sederhana yang diruaikan suatu adder , yang membawa 2 n-bit input dan memproduksi penjumlahan input sebagai output .
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 77/87
Diktat Kuliah Organisasi Komputer
ALU rangkaian yang lebih umum untuk aritmetika yang mempunyai 2 data input dan satu data output , ALU juga mempunyai beberapa input kendali dan output . Lihat gambar 8.6 berikut. Gambar 8.6 : ALU ALU mempunyai 2 bit fungsi, F0 dan F1, yang meggambarkan bahwa fungsi ALU A
B
F0
N
F1
Z
F (A , B )
dilaksanakan. ALU bisa juga melaksanakan operasi shift , dikeperlukan sebagian unit shift . Rangkaian ini bisa menggeser multibit input 1 bit ke kiri atau ke kanan, atau, dengan alternatif, melaksanakan tidak semua pergeseran. Lihat gambar 8.7.
S0 S1
Shifter
Gambar 8.7 : Shifter
8.2.5 Clock Rangkaian komputer secara normal dikendalikan (dorong) oleh clock , suatu peralatan yang memancarkan suatu urutan pulsa yang periodik. Pulsa ini mendefinisikan siklus mesin. Setiap siklus mesin, beberapa aktivitas terjadi, seperti pengeksekusian suatu microinstruction. Lihat gambar 8.8 berikut. 1 s u b c y c le 1 cycle
D e la y C lo c k
Delay
D e la y C lo c k d e n g a n 4 O u tp u ts
D ia g r a m w a k tu o u tp u t
Gambar 8.8 : Clock 4 Output dan Diagram Waktu Output IF - UTAMA
Versi/Revisi : 1/0
Halaman : 78/87
Diktat Kuliah Organisasi Komputer
8.2.6 Main Memory Prosesor membutuhkan pembacaan data dari memori dan menulis data ke memori. Komputer mempunyai bus address, bus data, dan bus kontrol untuk berkomunikasi antara CPU dan memori Untuk membaca dari memori, CPU meletakkan suatu memori address pada bus address dan menset sinyal kendali secara appropriate. Contoh masukan RD (READ). Menulis ke memori, CPU meletakkan data untuk dituliskan pada pada bus data dan address disimpan ke dalam bus address dan kemudian data masuk WR (WRITE). MREQ yang mengindikasikan bahwa suatu permintaan memori diinginkan. RW yang membedakan baca dari tulis. Konsekuensinya, microprograming harus menjaga kebenaran nilai pada bus address dan bus data untuk beberapa mikroinstruksi. Secara singkat
8.2.7 Paket Komponen Macam-macam rangkaian yang bisa dikombinasikan untuk bentuk komputer. Rangkaian ini secara komersial berguna dalam sejumlah bentuk dengan konseptual yang berbeda. Cara ini yaitu dalam paket MSI (medium scale integration), dengan masingmasing chip yang terdiri dari satu komponen: contoh sebuah register, sebuah ALU, atau sebuah shifter. Untuk membangun komputer dari bagian-bagian MSI yaitu sejumlah chip yang banyak dibutuhkan, yang mencakup beberapa board, konsumsi tenaga yang banyak. Teknik lainya (cara lain) yaitu chip bit-slice, masing-masing chip bit-slice mempunyai 1 bit register, ALU, dan komponen lainnya. Pendekatan ketiga yaitu mengkombinasikan komponen yang meletakkan prosesor yang komplit pada satu chip.
8.3 Microarchitecture Semua komponen dasar dari level microprogramming disusun, suatu saat dilihat bagaimana mereka dihubungkan.
8.3.1 Data Path Data path yaitu bagian dari CPU yang berisi ALU, Input ALU, dan output ALU. Data path berisi 16 yang identik 16-bit register, yang diberi label PC, AC, SP, dan seterusnya, yang berbentuk suatu pengaksesan scratchpad memori yang hanya untuk level microprograming.
8.3.2 Microinstruction Untuk mengendalikan data path dibutuhkan 61 sinyal. Ini bisa dibagi ke dalam 9 kelompok fungsi, penjelasannya sebagai berikut : 16 sinyal untuk kendali pemanggilan bus A dari scratchpad 16 sinyal untuk kendali pemanggilan bus B dari scratchpad 16 sinyal untuk kendali pemanggilan scratchpad dari bus C 2 sinyal untuk kendali latches A dan B 2 sinyal untuk kendali fungsi ALU 2 sinyal untuk kendali shifter
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 79/87
Diktat Kuliah Organisasi Komputer
4 sinyal untuk kendali MAR dan MBR 2 sinyal untuk mengindikasikan pembacaan memori dan p enulisan memori 1 sinyal untuk kendali Amux
Microinstruksi terdiri dari 13 field, 11 diantaranya sebagai berikut : AMUX : kendali input kiri ALU; 0 = A latch, 1 = MBR ALU : fungsi ALU; 0 = A+B, 1 = A and B, 2 = A, 3 = negasi A SH : fungsi shifter; 0 = no shift, 1 = right, 2 = left MBR : pemanggilan MBR dari shifter; 0 = tidak panggil MBR, 1 = panggil MBR MAR : pemanggilan MAR dari B latch; 0 = tidak panggil MAR, 1 = panggil MAR RD : meminta pembacaan memori; 0 = tidak baca, 1 = panggil MBR dari memori WR : meminta penulisan memori; 0 = tidak tulis, 1 = tulis MBR ke memori ENC : kendali penyimpanan ke scratchpad; 0 = tidak simpan, 1 = simpan C : pilih register untuk simpan ke dalam jika ENC = 1; 0=PC, 1=AC, dsb. B : pilih sumber bus B; 0 = PC, 1 = AC, dsb. A : pilih sumber bus A; 0 = PC, 1= AC, dsb.
8.3.3 Pewaktuan Microinstruction Bagaimana sebuah microinstruction bisa mengendalikan data path selama satu siklus secara penuh, kemungkinan yang bisa yaitu timing . Untuk menerima kebenaran kejadian yang berurutan, sekarang dikenalkan 4 fase clock suatu clock dengan 4 subsiklus, 4 subsiklus tersebut sebagai berikut : Panggil microinstruction berikutnya yang dieksekusi ke dalam sebuah register yang disebut MIR (MicroInstruction Register). Gerbang register pada bus A dan bus B dan kemampuannya dalam latches A dan B. Sekarang bahwa input distabilkan, memberikan ALU dan waktu shifter untuk memproduksi output stabil dan panggil MAR jika diperlukan. Sekarang bahwa output shifter distabilkan, simpan bus C dalam scratchpad dan panggil MBR, jika keduanya diperlukan. Item yang luas dan lebih penting dalam porsi kendali mesin yaitu kendali simpan (control store).
8.3.4 Keterurutan Microinstruction Bagaimana microinstruction berikutnya dipilih yaitu diambil secara berurutan, beberapa mekanisme yang dibutuhkan untuk mengijinkan kondisi jump dalam micropogram pada perintah untuk mengaktifkan suatu kesepakatan. Ada 2 field dalam microinstruction yaitu : ADDR, yaitu sebuah address yang berpotensi sebagai successor untuk microinstruction yang berjalan. COND, yaitu menjelaskan keberadaan microinstruction yang diambil dari MPC + 1 atau ADDR.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 80/87
Diktat Kuliah Organisasi Komputer
Pemilihan microinstrution berikutnya dijelaskan oleh box yang berlabel “ micro sequencing logic” selama 4 subsiklus, ketika sinyal N output ALU dan Z ditetapkan. Penjelasan pilihan diindikasikan dengan menseting field COND sebagai berikut : 0 = tidak jump; microinstruction berikutnya dibawa dari MPC + 1. 1 = jump ke ADDR jika N = 1. 2 = jump ke ADDR jika Z = 1. 3 = jump ke ADDR secara tidak kondisional Logika urutan micro mengkombinasikan 2 bit ALU yaitu N dan Z, dan 2 bit COND yaitu yang disebut L dan R untuk Left dan Right. Yang semuanya berguna untuk membangkitkan sebuah output .
8.4 Macroarchitecture Level mesin konvensional didukung oleh interpreter yang berjalan pada mesin.
8.4.1 Stack Makroinstruksi modern sebaiknya dirancang sesuai dengan kebutuhan bahasa tingkat tinggi dalam kesesuaian (keperluan). Satu diantara isu rancangan yang penting yaitu addressing . Ilustrasi masalah yang harus diselesaikan, seperti program berikut : Program InnerProduct(output); { this program initializes two vectors, x and y, of 20 element each, then computes their inner product: x[1]* y[1] + x[2]* y[2] + … + x[20]* y[20] } const max = 20;
{size of the vector }
type SmallInt = 0..100; vec = array[1..max] of SmallInt; var
k : integer; x, y : vec;
function pmul(a,b : SmallInt) : integer; { this function multiplies its two parameters together and returns the product. it perform multiplication by repeated addition. } var p, j : integer; begin {0:reserve stack space for p and j } if (a = 0) or (b = 0) then { 1:if either one is 0. result is 0 } pmul := 0; { 2:function return 0 } else begin p : = 0; { 3:initialize p } for j := 1 to a do { 4:add b to p a times } p := p + b; { 5:do the addition } pmul := p; { 6:assign result to function } end end; { pmul } { remove locals and return value }
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 81/87
Diktat Kuliah Organisasi Komputer
procedure inner(var inner(var v : vec; vec; var ans : integer); integer); { compute compute the inner product of v of v and x and x and return it in ans.} var var sum sum, i : inte integ ger; er; begin {8:reserve stack space for sum sum and i} sum := 0; { 9: 9: sum sum will accumulate inner product } } for i := 1 to max do { 10:loop 10:loop through all the elements } elements } sum := sum + pmul(x[i],v[i]); pmul(x[i],v[i]); { 11:accumulate 11:accumulate one term } ans := sum {12:copy result to ans } ans } end; { inner inner } { 13:remove sum 13:remove sum and i and return } begin for k := 1 to max max do begin x[k] := k; y[k] := pmul(2,k)+ pmul(2,k)+1; 1; end; inner(y, k); writeln(k);
{14:reserve space for k, for k, x, and y} and y} { 15:initialization 15:initialization loop } { 16:initialize x} 16:initialize x} { 17:initialize y} 17:initialize y} {18:call inner} {19:print result } }
end. Struktur blok bahasa seperti Pascal secara normal diimplementasikan seperti cara yaitu ketika procedure atau function dikeluarkan, penyimpanannya telah menggunakan variab variabel el lokal lokal untuk untuk direle direlease ase.. Cara Cara yang yang mudah mudah untuk untuk meneri menerima ma tujuan tujuan ini yaitu yaitu menggunakan struktur data yang disebut stack . Stack yaitu blok kontigu dari memori yang terdiri dari beberapa data dan suatu stack pointer ( SP SP ) menjelaskan keberadaan top dari suatu stack. Bottom dari stack yaitu suatu address yang tetap. Beberapa operasi yang didefinsikan pada stack, yaitu dua operasi yang penting berikut ini : PUSH X, mengembangkan stack pointer (dengan pengurangannya) dan kemudian mele meleta takan kan X ke dala dalam m loka lokasi si memo memori ri seka sekara rang ng yang yang ditu ditunj njuk uk oleh oleh SP. SP. PUSH PUSH menambah ukuran stack dengan satu item. POP Y, kebalikannya, mengurangi ukuran stack dengan menyimpan item top pada stack ke dalam Y, dan kemudian memindahkannya dengan penambahan pointer stack bersama ukuran item yang di popkan. popkan.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 82/87
Diktat Kuliah Organisasi Komputer
0 1
0 1 PROGRAM
PC
ROGRAM
PUSH 5
PUSH 5 PC
SP SP 4016 4017 4018 4019 4020
7 9 2 8 4 5
STACK
Stack
4015 4016 4017 4018 4019 4020
5 7 9 2 8 4 5 Stack setelah PUSH 5
Operasi lain yang bisa dilaksanakan pada suatu stack yaitu pengembangan stack pointer secara aktual tanpa mem push beberapa data. Ini dilakukan secara normal ketika ketika suatu suatu procedure procedure atau function dimasu dimasukka kkan, n, untuk untuk reserv reservee penemp penempata atan n pengembalian bagi variabel lokal.
8.4.2 The Macroinstruction Set Pada arsitektur Mac-1’s, pada dasarnya, terdiri dari memori dengan 4096 16-bit words, dan tiga register aktif untuk programer level 2. Register-register Mac-1 yaitu : Counter (PC) Program Counter (PC) Stack Pointer (SP) Pointer (SP) Accumulator (AC) (AC) Accumulator Yang digunakan untuk berikut : Perpindahan data yang bulat Arithmetika Maksud yang lainnya. Tiga modus pengalamtan yang disediakan yaitu : Direct, instruksi yang berisi 12 bit alamat memori absolut dalam 12 bit low-order seperti instruksi yang digunakan untuk pengaksesan variabel global. Indirect, mengijinkan programer untuk menghitung alamat memori, meletakkannya dalam Accumulator dan kemudian baca atau tulis word yang dialamatkan. Bentuk pengalamatan ini lebih umum dan digunakan untuk pengaksesan elemen array, sejumlah pemikiran lainnya. Local, Local, pengal pengalamat amatan an yang yang spesif spesifik ik suatu suatu offset dari dari SP dan dan digun digunak akan an untu untuk k mengakses variabel lokal.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 83/87
Diktat Kuliah Organisasi Komputer
8.5
Pera erancan ncanga gan n Level evel Microprog Microprogramming ramming
Akan dibicarakan beberapa isu rancangan dan keterhubungan trade-offs. trade-offs. Untuk level rancangan ini biasanya didasarkan pada produsen yang membuat perangkat keras.
8.5.1 Horizontal versus versus Vertical Microprogramm Microprogramming ing Kunci Kunci permas permasala alahan han trade-o trade-off ff yaitu yaitu bagaim bagaimana ana encoding dileta diletakka kkan n dalam dalam microinstruction. Jika dibangun Mic-1 pada satu chip VLSI, satu yang bisa dilanjutkan abstrak seperti register-register, ALU, dan seterusnya, dan uraian semua gerbang. Untuk membuat mesin berjalan : Sinyal-sinyal yang dibutuhkan, seperti sinyal 16 OE untuk gerbang register-register pada bus A dan sinyal yang mengendalikan fungsi ALU. Masing-masi Masing-masing ng mesin mempunyai mempunyai sekumpulan sekumpulan n sinyal kendali yang dimasukkan pada tempat yang sesuai yang bisa bisa membuat mesin berjalan, tanpa ada encoding . Uraian membuat format dengan lebar n lebar n bit, satu bit per sinyal kendali. Perancangan microinstruksi menentukan prinsip-prinsip ini yang disebut horizontal dan representasi satu yang ekstrim dari suatu spektrum yang memungkinkan. Pada ujung lainnya dari spektrum yaitu microinstruksi dengan jumlah yang kecil dari kolom encoded yang encoded yang tinggi, ini dikatakan dikatakan vertical . Penamaa Penamaan n ini datang datang dari dari bagaim bagaimana ana suatu suatu artist artistik ik yang yang bisa bisa disketsanya menanggapi penyimpanan kendali. Horizontal memp Rancangan Horizontal mempun unya yaii juml jumlah ah yang yang rela relati tiff keci kecill dari dari ukur ukuran an microinstruksi; Satu vertical mempunyai beberapa narrow microinstruksi.
8.5.2 Nanoprogramming Nanoprogramming Rancangan dibicarakan begitu panjang mempunyai 2 memori, yaitu : main memori (digunakan untuk menyimpan program tingkat 2) dan control strore (digunakan untuk menyimpan microprogram). microprogram). Sebu Sebuah ah memo memori ri yang yang keti ketiga ga,, yait yaitu u nanostore, nanostore, yan yang membawa kepentingan trade-off diantara trade-off diantara microprogramming horizontal dan horizontal dan vertical yang vertical yang mungkin. Nanoprogramming yang tepat ketika beberapa microinstruction yang terjadi pada suatu saat. Microprogram dieksekusi sebagai berikut : 1. Word Word dia diamb mbil il dari dari con contr trol ol stor storee 2. Word yang yang kemudian kemudian diguna digunakan kan untuk untuk memilih memilih sebuah sebuah nanostor nanostoree word, yang yang diambil diambil dan ditempatkan dalam register microinstruction. 3. Bit-bi Bit-bitt dari dari regist register er terseb tersebut ut kemudi kemudian an digun digunaka akan n untuk untuk mengen mengendal dalikan ikan gerbang gerbang untuk satu siklus. 4. Pada Pada akhir siklus, siklus, word beriku berikutny tnyaa diambi diambill dari dari contro controll store store dan proses proses diulang diulang kembali. Nanoprogramming lebih efektif ketika beberapa microinstruction yang lebih banyak digunakan. Jika dua microinstruction yang lebih bagus yang ditangani secara nyata, microprogram akan berisi microinstrutions yang sedikit berbeda, masing-masing dengan frekuensi pemanfaatan yang lebih tinggi.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 84/87
Diktat Kuliah Organisasi Komputer
8.5.3 Improving Performance Performance Oleh karena itu tujuan dari nanoprogramm nanoprogramming ing yaitu untuk untuk mengurangi mengurangi ukuran control store, kendala pada harga pengeksekusian yang rendah, jumlah waktu yang tepat dan dan usah usahaa yang yang suda sudah h dila dilaku kuka kan n dala dalam m pena penang ngan anan an lang langsu sung ng : menc mencob obaa untu untuk k mempercepat pengeksekusian, kendali pada harga yang lebih ke control store. store. Dua hal ini kelihatann kelihatannya ya tidak sesuai dengan tujuan tujuan rancangan rancangan yang berhubun berhubungan gan ke perbedaan perbedaan tujuan tujuan pasar pasar dengan dengan mesin mesin produk produksi si tidak tidak mahal mahal dan produk produksi si mesin mesin lebih lebih cepat. cepat. Beberapa Beberapa cara keterkaitan keterkaitan microarchit microarchitectur ecturee contoh contoh kita yang bisa diperbaiki diperbaiki untuk untuk membuat mesin yang lebih cepat.
8.5.4 Pipelining Marilah kita gunakan cara lain untuk mempercepat mesin yaitu dibangun keluaran hardware dari beberapa unit fungsional dan kemudian pipeline mereka. Secara teknik, itu memungkinkan untuk menuliskan microprogram untuk seperti mesin dalam sebuah cara yang tanggap. Hanya suatu solusi yang diambil dari aspirasi dan mencoba untuk membuat situasi yang lebih baik. Contoh, Contoh, microprogr microprogrammer ammer bisa membuat membuat seorang seorang tamu yang memakai kondis kondisii jump jump biasany biasanyaa akan akan pergi, pergi, dan menggu menggunak nakan an microi microins nstru tructi ction on kedua kedua untuk untuk memulai pekerjaan pekerja yang mungkin dibutuhkan. Kegagalan, jika jump pergi ke cara yang lain, itu akan memerlukan pengerjaan yang sekuasing.
8.5.5 Chace Memory CPU selalu lebih cepat daripada memori. Seperti memori yang telah diperbaiki, juga pada CPU, pelayanan sebelumnya imbang. Apa ini berarti dalam praktek bahwa setelah CPU mengisukan permintaan memori, itu harus menyisakan kekosongan untuk waktu subtansi ketika menunggu untuk memori merespon. Itu merupakan hal umum pada CPU untuk menset pembacaan memori selama satu siklus bus, dan bukan mengambil data sampai terlambat 2 atau tiga siklus, seandainya tidak ada state menunggu. Memenu Memenuhi hi kepent kepenting ingan, an, teknik teknik yang yang diketa diketahui hui untuk untuk kombin kombinasi asi jumlah jumlah yang yang sedikit dari kecepatan memori dengan jumlah yang besar dari keterlambatan memori untuk mengambil kecepatan dari memori yang cepat (lebih) dan kapasitas memori yang besar pada harga y ang lebih moderat. S angat kecil, memori c epat yang disebut cache dan bawah kendali microprogram.
8.6
Ringkasan
Inti setiap komputer adalah data path. path. Data path berisi beberapa register, dua atau tiga bus, dan satu atau lebih unit fungsional seperti ALU dan Shifter. Loop eksekusi utama terdiri dari pengambilan sejumlah operand dari register-register dan mengirimnya melalui bus-bus ke ALU dan unit fungsional lainnya untuk dieksekusi. Data path dapat dikendalikan dikendalikan oleh sebuah sebuah peruntun peruntun yang mengambil mengambil instruksiinstruksiinstruksi mikro dari sebuah penyimpan kendali. Setiap instruksi mikro berisi bit-bit yang mengendalikan data path untuk satu siklus. Bit-bit ini menentukan operand-operand mana yang akan dipilih, operasi mana yang akan dijalankan, dan apa yang harus dilakukan dengan dengan hasil-hasi hasil-hasil. l. Disamping Disamping itu, setiap setiap instruksi instruksi mikro menentukan menentukan penggantin penggantinya, ya, biasanya secara eksplisit dengan memuat alamatnya. Sejumlah instruksi mikro memodifikasi alamat basis ini dengan meng-OR-kan bit-bit ke dalam alamat itu sebelum ia digunakan.
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 85/87
Diktat Kuliah Organisasi Komputer
Kinerja dapat diperbaiki dengan bermacam-macam cara. Memory cache adalah salah satu utama. Cache-cache yang dipetakan secara langsung dan cache set-asosiatif biasa digunakan untuk mempercepat referensi-referensi memori. Prediksi cabang, baik statis maupun dinamis, adalah penting, sebagaimana eksekusi berurutan dan eksekusi spekulatif.
8.7 1.
2.
3. 4.
5.
Soal-Soal Latihan Kerjakan soal-soal latihan berikut ini : Sebuah komputer dengan pipeline lima tahap berhubungan dengan cabang-cabang bersyarat dengan perlambatan tiga siklus berikutnya setelah mengenai yang pertama. Seberapa besar kinerja mengganggu jika 20% dari seluruh instruksi adalah cabangcabang bersyarat ? Tulis sebuah simulator untuk sebuah cache terpeta langsung 1 arah. Buatlah jumlah entri dan parameter ukuran jalur dari simulasi itu. Lakukan percobaan dengan simulator itu dan laporkan temuan-temuan anda ! Bagaimana cara kerja dari metode pipeline yang bertahap ? Misalkan bahwa sbeuah komputer terlebih dahulu mem-pra-ambil hingga 20 instruksi. Tetapi, secara rata-rata, empat dari instruksi ini adalah cabang-cabang bersyarat, masing-masingnya memiliki kemungkinan diprediksi secara tepat sebesar 90%. Berapa probabilitas bahwa pra-pengambilan berada pada jalur yang benar ? Biasanya, ketergantungan menimbulkan masalah dengan CPU terpipeline. Apakah terdapat optimisasi- optimisasi yang dapat dilakukan dengan ketergantunganketergantungan WAW yang benar-benar dapat memperbaiki masalah itu ? Mengapa ?
IF - UTAMA
Versi/Revisi : 1/0
Halaman : 86/87