The von Neumann Model The von Neumann Model The von Neumann Model The von Neumann Model The von Neumann Model

 NO T Simbol yang menunjukkan operasi NO T adalah “ NO T, “ ’” , atau “  ” Konvensional IEC Masukan Keluaran A Q = NO T A 1 1 G erbang Turunan  NAND NOT AND Konvensional IEC Masukan Keluaran A B Q = A NAND B 1 1 1 1 1 1 1  NO R NOT O R Konvensional IEC Masukan Keluaran A B Q = A NO R B 1 1 1 1 1 XO R EXCLUSIVE O R  G erbang XO R adalah rangkaian elektronik yang mengeluarkan nilai tinggi 1 jika salah satu, tapi tidak keduanya, masukannya bernilai 1.  Logika proses gerbang XO R adalah sbb:  Logika proses gerbang XO R adalah sbb: Q = A  B = A’.B+ A.B’ Konvensional IEC Masukan Keluaran A B Q = A XO R B 1 1 1 1 1 XNO R EXCLUSIVE NOT O R  G erbang XO R adalah rangkaian elektronik yang mengeluarkan nilai rendah 0 jika salah satu, tapi tidak keduanya, masukannya bernilai 1.  Logika proses gerbang XO R adalah sbb:  Logika proses gerbang XO R adalah sbb: Q = A  B ’= A’.B’+ A.B Konvensional IEC Masukan Keluaran A B Q = A XO R B 1 1 1 1 1 1 4. ALU 4.1. ALU Arithmetic and Logic Unit Unit Aritmetika dan Logika merupakan bagian pengolah bilangan dari sebuah komputer. Di dalam operasi aritmetika ini sendiri terdiri dari berbagai macam operasi diantaranya adalah operasi penjumlahan, pengurangan, perkalian, dan pembagian. Mendesain ALU juga memiliki cara yang hampir sama dengan mendesain enkoder, dekoder, multiplexer, dan demultiplexer. Rangkaian utama yang digunakan untuk melakukan perhitungan ALU adalah Adder. 4.1.1. Adder Rangkaian ALU Arithmetic and Logic Unit yang digunakan untuk menjumlahkan bilangan dinamakan dengan Adder. Karena Adder digunakan untuk memproses operasi aritmetika, maka Adder juga sering disebut rangkaian kombinasional aritmetika. ALU akan dijelaskan lebih detail pada bab 3. Ada 2 jenis Adder : 1. Rangkaian Adder yang hanya menjumlahkan dua bit disebut Half Adder. 2. Rangkaian Adder yang menjumlahkan tiga bit disebut Full Adder. 3. Rangkaian Adder yang menjumlahkan banyak bit disebut paralel Adder 4.1.1.1. Half Adder Rangkaian half adder merupakan dasar penjumlahan bilangan biner yang masing­ masing hanya terdiri dari satu bit, oleh karena itu dinamakan penjumlah tak lengkap. 1. Jika A=0 dan B=0 dijumlahkan, hasilnya S Sum = 0. 2. Jika A=0 dan B=1 dijumlahkan, hasilnya S Sum = 1. 3. Jika A=1 dan B=1 dijumlahkan, hasilnya S Sum = 0. dengan nilai pindahan CyCarry Out = 1. Dengan demikian, half adder memiliki 2 masukan A dan B dan dua keluaran S dan Cy. A B S Cy 1 1 1 1 1 1 1 Tabel 4.1. 2 Dari tabel diatas, terlihat bahwa nilai logika dari Sum sama dengan nilai logika dari gerbang XOR, sedangkan nilai logika Cy sama dengan nilai dari gerbang logika AND. Dari tabel tersebut, dapat dibuat rangkaian half adder seperti pada gambar berikut: Gambar 4.1. 4.1.1.2. Full Adder Full adder mengolah penjumlahan untuk 3 bit bilangan atau lebih bit tidak terbatas, oleh karena itu dinamakan rangkaian penjumlah lengkap. Perhatikan tabel kebenaran dari Full adder berikut : A B C S Cy 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Tabel 4.2. Dari tabel diatas dapat dibuat persamaan boolean sebagai berikut : C B A C B A C B A C B A S + + + = C B A S Å Å = C B A C B A C B A C B A Cy + + + = Dengan menggunakan peta karnaugh, Cy dapat diserhanakan menjadi : Cy = AB + AC + BC 3 Gambar 4.2. 4.1.1.3. Parallel Adder Parallel Adder adalah rangkaian Full Adder yang disusun secara parallel dan berfungsi untuk menjumlah bilangan biner berapapun bitnya, tergantung jumlah Full Adder yang diparallelkan. Gambar berikut menunjukkan Parallel Adder yang terdiri dari 4 buah Full Adder yang tersusun parallel sehingga membentuk sebuah penjumlah 4 bit. FA FA FA FA S1 S2 S3 S4 Cy Cy Cy Over Flow Cin Cin Cin Cin A1 A2 A3 A4 B1 B2 B3 B4 Gambar 4.3. 4 4.2.1. Penjumlahan Komputer hanya dapat melakukan proses aritmetika menggunakan bilangan biner. Semua sistem bilangan harus diubah terlebih dahulu ke biner agar dapat diproses. Proses yang biasa dilakukan oleh komputer untuk menjumlahkan sistem bilangan desimal biasanya adalah menyandikan ke 8421BCD terlebih dahulu sebelum dijumlahkan. Sebelum mempelajari tentang penjumlahan pada 8421BCD, ada baiknya mengetahui cara menjumlahkan bilangan biner. a. Penjumlahan Biner Ada 4 kondisi yang terjadi pada penjumlahan biner yaitu apabila 0 + 0, 0 + 1, 1 + 0, dan 1 + 1. Jika yang terjadi adalah 1 + 1, kita tidak dapat menyatakan hasil jumlah dalam satu digit. Tetapi kita harus melakukan penyimpanan Carry Out kedalam kolom yang lebih tinggi. Ini berlaku untuk seluruh sistem bilangan. Sebagai contoh pada bilangan desimal 2 + 5 = 7 dengan carry out = 0, 9 + 9 = 8 dengan carry out = 1. Contoh : 1. 10 2 + 10 2 1 Carry out 10 10 + 100 2. 0100 2 + 0111 2 1 Carry 0100 0111 + 1011 3. 11111 2 + 1111 2 + 11101 2 + 10111 2 3 3 3 2 2 Carry out 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 + 1 1 0 0 0 1 0 2 5 b. Penjumlahan 8421BCD Sandi 8421BCD hanya menggunakan bilangan biner untuk 0 sampai 9, karena yang disandikan hanya 1 digit angka desimal. Dalam penjumlahan yang perlu diperhatikan adalah jika hasilnya lebih dari 9 sehingga akan dihasilkan auxillary carry Carry dari bilangan keempat LSB maupun carry dari MSB. Berikut adalah aturan penjumlahan sandi 8421BCD: ­ Jika jumlah biner dan jumlah BCD sama, yaitu AC Auxillary Carry = 0 dan Carry = 0 maka tidak diperlukan aturan tambahan. Contoh : Bilangan 1 = 0 1 1 0 0 0 1 0 BCD = 6 2 desimal Bilangan 2 = 0 0 1 0 0 1 0 1 BCD = 2 5 desimal + Biner = 1 0 0 0 0 1 1 1 Cy=0; AC = 0 BCD = 1 0 0 0 0 1 1 1 = 8 7 desimal ­ Jika jumlah biner tidak sama dengan jumlah desimal maka memerlukan pengaturan tambahan : Jika Auxillary Carry AC = 0 atau AC = 1 dan Carry Cy = 0 dimana hasil penjumlahan binernya lebih dari 9 desimal, maka perlu ditambahkan 6 pada nible rendah tersebut, dan tambahkan 1 pada nible yang lebih tinggi. Contoh : 1 1 1 Bilangan 1 = 0 0 1 1 0 1 1 1 BCD = 3 7 desimal Bilangan 2 = 0 0 1 0 0 1 1 0 BCD = 2 6 desimal + Biner = 0 1 0 1 1 1 0 1 + 1 + 6 = 0 0 0 1 0 1 1 0 Cy=0; AC = 0 BCD = 0 1 1 0 0 0 1 1 = 6 3 desimal 4.2.2. Pengurangan Pengurangan pada dasarnya merupakan penjumlahan, yaitu penjumlahan dengan bilangan negatif. 6 500 – 255 = 245 Pengurangan 500 + ­255 = 245 Penjumlahan Komputer hanya bekerja pada bilangan “0” dan “1” dan tidak mengenal bilangan negatif. Untuk menunjukkan bilangan negatif, komputer menggunakan tanda modulus Modulus Sign. Pada penjumlahan desimal tanda modulus yang digunakan adalah “0” untuk bilangan positif dan “9” untuk bilangan negatif. Untuk bilangan negatif, pada operasi penjumlahannya, harus dikomplemen. Komplemen yang digunakan pada bilangan desimal adalah komplemen­10 dan komplemen­9. Pengurangan Bilangan Desimal ­ Komplemen­10 Pada komplemen­10, bilangan negatif dikurangkan 9, kemudian ditambahkan 1 pada bit terakhir. Pada penjumlahannya, bila ada carry, carry tersebut dapat dihilangkan. Tanda modulus ikut dijumlahkan. Contoh : Komplemen­10 dari ­255. ­ 2 5 5 10 = 9 7 4 5 10 angka 9 menunjukkan tanda modulusnya. 5 0 0 0 5 0 0 2 5 5 ­ 9 7 4 5 + 2 4 5 1 0 2 4 5 Cy Dihilangkan ­ Komplemen­9 Pada komplemen­9, bilangan negatif dikurangkan 9. Bila ada carry, maka carry ikut dijumlahkan pada hasil akhir. Contoh : Komplemen­9 dari ­255. ­ 2 5 5 10 = 9 7 4 4 10 angka 9 menunjukkan tanda modulusnya. 5 0 0 0 5 0 0 2 5 5 ­ 9 7 4 4 + 2 4 5 1 0 2 4 4 1 +Cy 0 2 4 5 Cy Ditambahkan 7 Bila hasil akhir bernilai negatif, maka nilainya harus dikomplemen lagi Berlaku untuk komplemen­10 dan komplemen­9. Jika komplemen­10, maka hasil akhir setelah dikomplemen harus ditambah 1. Jika komplemen­10, hasil akhirnya merupakan hasil sebenarnya tidak perlu ditambah 1. Contoh : Komplemen­10 dari ­500. ­ 5 0 0 10 = 9 5 0 0 10 angka 9 menunjukkan tanda modulusnya. 2 5 5 0 2 5 5 5 0 0 ­ 9 5 0 0 + ­ 2 4 5 9 7 5 5 9 menunjukkan negatif 2 4 4 + 1 9 2 4 5 Komplemen­9 dari ­500. ­ 5 0 0 10 = 9 4 9 9 10 angka 9 menunjukkan tanda modulusnya. 2 5 5 0 2 5 5 5 0 0 ­ 9 4 9 9 + ­ 2 4 5 9 7 5 4 9 menunjukkan negatif 2 4 5 9 2 4 5 Pengurangan Bilangan Biner Pada penjumlahan biner, komplemen yang digunakan adalah komplemen­2 dan komplemen­1. Untuk mendapatkan komplemen bilangan biner, cukup dengan membalik angkanya saja. Jika “0” dibalik menjadi “1”, dan jika “1” dibalik menjadi “0”. Komplemen­2 mirip dengan komplemen­10 pada bilangan desimal Carry dihilangkan, sedangkan komplemen­1 mirip dengan komplemen­9 Carry ditambahkan pada hasil akhir. · Komplemen­2 Contoh : Pengurangan antara 9 10 1001 2 dengan 5 10 0101 2 Komplemen­2 dari –5 0101. 8 0 1 0 1 = 1 1 0 1 1 angka 1 menunjukkan tanda modulusnya. 9 0 1 0 0 1 5 ­ 1 1 0 1 1 + 4 1 0 0 1 0 0 Cy Dihilangkan · Komplemen­1 Contoh : Komplemen­1 dari –5 0101. 0 1 0 1 = 1 1 0 1 0 angka 1 menunjukkan tanda modulusnya. 9 0 1 0 0 1 5 ­ 1 1 0 1 0 + 4 1 0 0 0 1 1 1 0 0 1 0 0 Cy Ditambahkan Bila hasil akhir bernilai negatif, maka nilainya harus dikomplemen lagi Berlaku untuk komplemen­2 dan komplemen­1. Jika komplemen­2, maka hasil akhir setelah dikomplemen harus ditambah 1. Jika komplemen­1, hasil akhirnya merupakan hasil sebenarnya tidak perlu ditambah 1. Contoh : Pengurangan antara 5 10 dengan 9 10 Komplemen­2 dari –9. 1 0 0 1 = 1 0 1 1 1 angka 1 menunjukkan tanda modulusnya. 5 0 0 1 0 1 9 ­ 1 0 1 1 1 + ­ 4 1 1 1 0 0 1 menunjukkan negatif 1 1 + 1 1 0 1 0 0 9 Komplemen­1 dari –9. 1 0 0 1 = 1 0 1 1 0 angka 1 menunjukkan tanda modulusnya. 5 0 0 1 0 1 9 ­ 1 0 1 1 0 + ­ 4 1 1 1 1 1 menunjukkan negatif 1 0 0 1 0 1 0 0 4.2.3. Perkalian Perkalian antara bilangan biner adalah perkalian yang paling mudah diantara sistem bilangan lainnya. 9 1 0 0 1 10 x 1 0 1 0 x 90 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 + 1 0 1 1 0 1 0 64 0 16 8 0 2 0 = 90 Pada Teknik Komputer, perkalian dilakukan menggunakan register geser kanan Shift Right Register. Perhatikan contoh berikut : Register A untuk menyimpan data yang akan dikalikan Multiplicand. Register B untuk menyimpan data pengali Multiplier. Register P untuk menyimpan hasil perkalian. 10 9 X 10 Register A Register B Register P 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 M M = 0, Reg. P tidak diubah Geser Reg B P 1 bit kekanan 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 M M = 1, Reg A ditambahkan pada P di MSBnya. 1 0 0 1 0 0 0 0 Geser Reg B P 1 bit kekanan 1 0 0 1 1 0 0 1 0 0 1 0 0 0 M M = 0, Reg. P tidak diubah Geser Reg B P 1 bit kekanan 1 0 0 1 1 0 0 1 0 0 1 0 0 M M = 1, Reg A ditambahkan pada P di MSBnya 1 0 1 1 0 1 0 0 Reg. P geser lagi 0 1 0 1 1 0 1 0 0 64 0 16 8 0 2 0 =90 4.2.4. Pembagian Kebalikan dari perkalian, pembagian Division adalah suatu bentuk dari pengurangan yang dilakukan berulang­ulang. Dan proses ini juga dapat dilakukan pada rangkaian logika dengan cara pengurangan dan penggeseran ke kiri menggunakan shift­left register. Berikut adalah aturan dari pembagian: Kurangkan bilangan pembagi Divisor dari MSB bilangan yang akan dibagi Dividend, lihat hasil pengurangan. Bila hasilnya 1 atau positif : Berarti hasil pembagian Product adalah 1. Setelah itu hasil pengurangan digeser kekiri satu bit, dan dimulai lagi pengurangan oleh bilangan pembagi Divisor. 11 Bila hasilnya 0 atau negatif : Berarti hasil pembagian Product adalah 0. Dalam hal ini sebelum digeser ke kiri harus ditambah dulu dengan bilangan pembagi Divisor. Setelah digeser ke kiri satu bit, dimulai lagi proses pengurangan oleh bilangan pembagi. Pengurangan oleh bilangan pembagi dilakukan dengan penjumlahan komplemen­2. Bila dalam penjumlahan tersebut terdapat pindahan Carry, maka carry tersebut diabaikan. Perhatikan contoh berikut : 10 10 : 4 10 = 1010 2 : 100 4 Pembagi Yang Dibagi Hasil Bagi Keterangan 0 1 0 0 0 1 0 1 0 ­ Kurangkan bil. pembagi 1 1 0 0 1 0 0 0 1 0 1 ­ Hasil positif, hasil bagi = 1 0 0 1 0 0 1 ­ Digeser ke kiri satu bit 1 1 0 0 ­ Kurangkan bil. pembagi 1 1 1 0 0 1 0 ­ Hasil negatif, hasil bagi = 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 ­ Digeser ke kiri satu bit 1 1 0 0 ­ Kurangkan bil. pembagi 1 0 0 0 0 0 1 0 1 ­ Hasil positif, hasil bagi = 1 Catatan : Karena ada hasil pengurangan yang negatif, maka digit yang dihasilkan setelah itu adalah digit pecahan, sehingga hasil yang benar 10,1 2 atau 2,5 10 . ARITHMETIC LO G ICAL UNIT ALU Arsitektur Komputer PENDAHULUAN  Empat metoda komputasi dasar yang dilakukan oleh ALU komputer : penjumlahan, pengurangan, perkalian, dan pembagian.  Rangkaian ALU dasar terdiri ata s gerbang O R, AND, dan rangkaian f ull adder 1 bit. dan rangkaian f ull adder 1 bit.  Rangkaian f ull adder 1 bit pada rangkaian ALU dasar pada a walnya hanya melakukan penjumlahan unsigned number.  Pengembangan lebih lanjut pada rangkaian ALU dasar mampu melakukan operasi pengurangan. RANGKAIAN ALU DASAR KOMPUTER A B Op + 1 2 C Cin Cout Tanpa Fungsi Pengurangan Dengan Fungsi Pengurangan O perasi Aritmatika Dasar  Addition Penjumlahan  Complements  Subtraction Pengurangan  Subtraction Pengurangan Penjumlahan Biner + 0 + 1 1 a b 1 + 0 1 1 + 1 1 0 Carry Bit c d Contoh Penjumlahan Biner dengan operand lebih dari 1 bit 1011 + 101 1010 + 100 1011 + 1100 a b c 10011001 + 101100 11000101 101 + 1001 1110 10000 1110 10111 d e Binary Complement Operasi 1s Complement 1 1 Example 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 Two’s Complement Nilai Two’s complement bilangan biner diperoleh dengan menambahkan nilai ‘1’ pada hasil One’s Complement. 1001110 1001110 0110001 + 1 0110010 One’s Complement Tw o’s Complement Pengurangan Biner Pengurangan Biner diimplementasikan dengan menjumlahkan Two’s complement bilangan yang akan dikurangkan. Example Tw o’s complement of 1001 1101 1101 - 1001 + 0111 10100 Carry yang dihasilkan dapat diabaikan. Sehingga, hasilnya adalah 0100. of 1001 RANGKAIAN PERKALIAN  Dua Buah bilangan biner dapat dikalikan dengan metoda yang sama dengan metoda perka lian pada bilangan desimal.  Sebagai pengantar akan ditunjukkan operasi perkalian konvensional dengan bilangan tak perkalian konvensional dengan bilangan tak bertanda unsigned number.  Sebagai contoh akan ditunjukkan operasi perkalian untuk operand Multiplicand M = 1110 dan Multiplier Q = 1011. Gambaran Proses Perkalian 4 Bit Konsep dasar perkalian konvensional Perkalian Konvensional Implementasi HW ARRAY MULTIPLIER UNTUK BILANGAN UNSIGNED m 3 m 2 m 1 m q q 1 q 2 q 3 p p 1 p 2 p 3 p 4 p 5 p 6 p 7 Struktur Rangkaian FA q j c in c out m k Bit of PPi Blok Pada Baris Kedua dan Ketiga FA m k m k+1 q q 1 c in c out Blok Pada Baris Pertama Perkalian Bilangan Bertanda 1110 1011 x 00 01110 01110 Multiplicand M Multiplier Q +14 +11 + Partial Product 0 1 0010 1011 x 11 10010 1 10010 Multiplicand M Multiplier Q -14 +11 + Partial Product 0 01110 00000 + 010101 + 001010 01110 + 0010011010 Partial Product 1 Partial Product 2 Product P +154 010011 00000 + Partial Product 3 1 10010 00000 + 1 101011 + 1 110101 1 10010 + 1101100110 Partial Product 1 Partial Product 2 Product P -154 1 101100 00000 + Partial Product 3 Critical Delay Path Pada Array Multiplier m 3 m 2 m 1 m q qq 1 q 2 q 3 p p 1 p 2 p 3 p 4 p 5 p 6 p 7 Masalah Pemecahan Pada Array Multiplier  Critical Delay Path nya besar  Untuk meningkatkan perf ormansi multiplier digunakan konsep pipelining  Pipelining mampu mengurangi waktu siklus tetapi tidak mengurangi waktu total proses perkallian.  Salah satu algoritma untuk mempercepat perkalian ini adalah Booth encoding algorithm. Booth Encoding Algorithm  Merupakan salah satu a lgoritma untuk meningkatkan kecepatan proses perkalian  Algoritma ini menggunakan ide dasar bahwa proses adder-subtractor secara kecepatan dan tingkat kesederhanaan rangkaian ha mpir sama dengan adder sederhana.  Bentuk umum algoritma ini berhubungan dengan 3 bit pengali pada satu waktu yang membentuk proses perkalian dua tingkat. Jika dinyatakan representasi 2’s complement multiplier y : y = -s n y n + 2 n-1 y n-1 +2 n-2 y n-2 + … Dengan ide dasar : 2 a = 2 a+1 – 2 a Dua item awal persamaan pertama dapat dinyatakan sebagai : Algoritma Booth Dua item awal persamaan pertama dapat dinyatakan sebagai : 2 n y n-1 –y n + 2 n-1 y n-2 – y n-1 Setiap bentuk merupakan satu tahapan pada algoritma perkalian dasar. Tabel Recoding Bits i i-1 i-2 0 0 0 0 0 1 x 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 x 2x -2x -x -x Algoritma Perkalian Multioperand Dengan Fungsi Logaritmik dan MSB First BIT Adder  Salah satu algoritma untuk mengatasi masalah waktu proses dalam multiplikasi.  Merupakan algoritma per kalian paralel yang menggabungkan Logarithmic Multiplier dan Multioperand MSB f irst add er.  Pada algoritma Logaritmik, perkalian dilakukan dengan menjumlahkan operand satu sama lain.  Penjumlahan multioperand dengan metode MSB First Adder adalah suatu konsep metoda penjumlahan sejumlah bilangan dengan dimulai dari bit MSB nya terlebih dahulu. Algoritma dan Model Arsitektur Perkalian Logaritmik 2 O perand  Ide dasar perkalian dengan metode logaritmik dilakukan dalam bentuk penjumlahan sesuai dengan persamaan sebagai berikut :  LogAxB = Log A + Log B  Log 2 AxB = Log 2 A + Log 2 B  AxB = Antilog 2 Log 2 A + Log 2 B  Yang perlu diperhatikan dalam operasi perkalian logaritmik ini adalah error yang dapat muncul pada saat konversi ke bentuk logaritmik dan antilogaritmik. Perkalian Logaritmik 2 O perand Algoritma Perkalian Logaritmik antara 2 buah bilangan  Berdasarkan persamaan di atas, langkah yang harus ditempuh adalah sebagai berikut :  Ambil 2 buah bilangan biner, masukkan kedua bilangan ke dalam register A dan B.  Konversikan kedua bilangan tersebut dalam nilai logaritma Konversikan kedua bilangan tersebut dalam nilai logaritma basis 2 dan masukkan ke dalam register C dan D.  Lakukan penjumlahan isi register C dan D, simpan hasilnya pada Accumulator.  Konversikan hasil penjumlahan tersebut dengan menggunakan antilog2 dan simpan hasilnya pada suatu register. Algoritma dan Model Arsitektur Penjumlahan Multioperand Dengan MSB First Bit Process  Diaplikasikan untuk sistem waktu nyata.  Perbedaan dengan algoritma penjumlahan konvensional terletak pada urutan penjumlahan yang dilakukan.  Pada algoritma ini bit yang pertama kali dijumlahkan  Pada algoritma ini bit yang pertama kali dijumlahkan adalah bit MSB  MSB-1  LSB. Tenggat waktu yang ditetapkan dapa t dipenuhi.  Dengan algoritma ini, sebelum penjumlahan sampai bit LSB, hasil yang tersimpan pada accumulator telah dapat digunakan. Arsitektur Penjumlahan Multioperand MSB First Bit Counter Register d d 1 d 2 d 9 d 10 16 bit Bit Placer Counter Pulsa 4 bit synch. Binary counter 20 bit Accumulator Adder d 11 CLK 20 bit 19 Tahapan Algoritma yang dilakukan  Masukkan semua operand n bit ke dalam N register.  Untuk N operand dengan n bit data, lakukan langkah-langkah berikut :  Jumlahkan semua MSB dari setiap operand dan letakkan hasilnya pada accumulator. hasilnya pada accumulator.  Jumlahkan semua MSB-1 dan jumlahkan hasilnya dengan yang tersimpan pada accumulator lalu simpan hasilnya kembali pada accumulator.  Lakukan langkah kedua tersebut sampai bit LSB dari setiap operand selesai dijumlahkan. Algoritma Perkalian Logaritmik Multioperand  Secara konsep akan melakukan perkalian dengan banyak operand dengan cara menjumlahkan nilai logaritmik setiap operand.  Konsep dasar secara matematis :  Log 2 AxBx… xN = Log 2 A + Log 2 B + … + Log 2 N Jadi secara umum CPU hanya melakukan proses penjumlahan  Jadi secara umum CPU hanya melakukan proses penjumlahan untuk sejumlah operand. Namun untuk mempercepat hasil penjumlahan, digunakan algoritma penjumlahan dengan dimulai dari MSB  LSB.  Untuk mendapatkan hasil logaritma basis 2 dari tiap operand, dan mengembalikannya ke bentuk asal, digunakan look up table yang digabungkan dengan konsep segmentasi. Lanjutan Algoritma  Arsitektur sistem ini dibatasi untuk operand 8 bit dan jumlah operand maksimal yang terlibat dalam operasi perkalian sebanyak 8 operand juga.  O perasi maksimal yang dapat dilakukan adalah 255 8 . 255 8 .  Berarti bit data maksimum yang dihasilkan dari perkalian 8 operand 8 bit dengan look up table adalah 13 bit. Algoritma Perkalian 8 operand 8 bit adalah :  Cocokkan isi register 1 s.d 8 dengan LUT nilai logaritmik basis 2.  Ambil data dari LUT dan masukkan ke dalam register 9 s.d 16.  Lakukan penjumlahan multioperand dengan dimulai dari MSB.  Hasil penjumlahan yang tersimpan pada accumulator dicocokkan dengan LUT antilog basis 2 untuk mendapatkan nilai sebenarnya. Tabel 1 : Proses perkalian manual Langkah iterasi Operand A Operand B Hasil Accumulator 1 : 8 00000001 00000010 00000010 2 : 8 00000010 00000011 00000110 3 : 8 00000110 00000100 00011000 4 : 8 00011000 00000101 01111000 5 : 8 01111000 00000010 11110000 6 : 8 11110000 00000001 11110000 7 : 8 11110000 00000001 11110000 Tabel 2 : Clock Operand A dan B Accumulator 1 A : 1000000000000 1000000000000 B : 0000000000000 2 A : 0100000000000 1100000000000 B : 1000000000000 3 A : 0010000000000 1110000000000 B : 1100000000000 4 A : 0001000000000 1111000000000 B : 1110000000000 5 A : 0000100000000 1111100000000 B : 1111000000000 6 A : 0000010000000 1111110000000 B : 1111100000000 7 A : 0000001000000 1111111000000 B : 1111110000000 8 A : 0000000100000 1111111100000 B : 1111111000000 9 A : 0000000010000 1111111110000 B : 1111111100000 10 A : 0000000001000 1111111111000 B : 1111111110000 KESIMPULAN  Perkalian dengan menggunakan algoritma perkalian dengan logaritmik lebih cepat dan ef isien, karena hanya membutuhkan proses penjumlahan.  Faktor error merupakan ekses yang muncul saat terjadi proses konversi nilai logaritmik dan antilogaritmik yang dilakukan. REPRESENTASI DATA Arsitektur Komputer Abstraksi Data  Raw data kehidupan manusia - Personal data input [lewat 5 indra] - Mass media [audio visual] data input [populer, ilmiah, f iksi, riset, dll.]  Pengertian Dasar - Data  Inf ormasi - Komunikasi - Kode notasi simbol Icon  Bentuk Kode - Karakter umum: Numerik Alf abet - Karakter khusus Lanjutan …  Jenis Representasi - Eksternal human-readable a. notasi dalam bahasa pemrograman b. f asilitas untuk: pemrogram, desainer b. f asilitas untuk: pemrogram, desainer bahasa, pemakai c. berbasis notasi aljabar desimal, sign magnitude Lanjutan … - Internal machine readable a. notasi aktual dalam komputer b. f asilitas untruk konstruksi HW c. meningkatkan ef isiensi d. HW menjadi handal Konsep Tipe Data  Def inisi matematik - cardinal unsigned numbers integer: 0,1,2, … ] - signed numbers integer: -2, -1, 0, 1, 2, … ] - real number [4.5, -8.47, -0.6 107 ] - real number [4.5, -8.47, -0.6 107 ] - character - string - boolean [true, f alse] - beragam struktur gabungan 6 tipe tersebut Lanjutan…  ADT abstract data type [a specif ied set of items which certa in properties operations]: boolean, rate, time, speed, area, ..  Variabel, konstanta, atau ADT Format Dasar  Format Dasar - Tipe inf ormasi : a instruksi, b data : numbers numerical : f ixed-point f loating point, nonnumerical - Length : bit, byte,word, double long word - Storage bit order : most lef t - least right signif icant Sistem Bilangan  Biner : basis 2; {0, 1}  O ktal: basis 8; {0, 1, 2, 3, 4, 5, 6, 7}  Desimal: basis 10; {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}  Heksadesimal: basis 16;  Heksadesimal: basis 16; {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} Lanjutan…  Contoh: - Bilangan biner: 11101 2 - Bilangan oktal: 54731 8 - Bilangan desimal: 1250910 - Bilangan desimal: 1250910 - Bilangan heksadesimal: A18E616 Konversi Bilangan  Satu sistem bilangan bisa dialih bentuk ke sistem bilangan lain.  Contoh, biner dan oktal ke desimal: a. 1 1 1 0 12 = d4 d3 d2 d1 d0 a. 1 1 1 0 12 = d4 d3 d2 d1 d0 = 1 x 2 4 + 1 x 2 3 + 1 x 2 2 + 0 x 2 1 + 1 x 2 = 16 + 8 + 4 + 0 + 1 = 29 10 b. 668 = 6 x 8 1 + 6 x 8 = 48 + 6 = 54 10 Lanjutan…  Contoh, desimal ke oktal:  Berapa konversi: 1492 10 = … … . 2 ? Lanjutan …  Algoritma konversi dari desimal place = 0; number = number to be converted w hile number 0 { digit[place] = number mod B ; number = number div B ; place = place + 1 ; } Unsigned Integer – Unsigned integer hanya untuk bilangan positif, jika negatif perlu f ormat baru. – Kelebihan biner • mud ah dibuat • tidak ambigu noise immunity • bisa dicopy dengan sempurna f lawlessly • untuk bilangan 8-bit memungkinkan 256 pola 0 1, sejumlah: 128 negatif + 128 positif. Unsigned Integer  Unsigned variable disimpan lansung dalam format biner No. of Binary No. of bits Binary Min Max n 2 n - 1 Unsigned Integer Type No. of bytes No. of bits Range unsigned char 1 8 0 … 255 unsigned short 2 16 0 … 65,535 unsigned int 4 32 0 … 4,294,967,295 unsigned long 4 32 0 … 4,294,967,295 • Representasi – Signed Integer direpresentasikan selain oleh nilai bilangan juga dengan adanya tambahan tanda [negatif ]. Signed Integer • Tipe – Sign and Magnitude SM – O ne’s Complement O C – Two’s Complement TC Signed Integer • Notasi Sign Magnitude SM – Format: – Bila digit pada posisi terkiri sign  Nol maka bilangan tersebut positif,  Satu maka bilangan tersebut negatif [negatif nol =positif nol = nol]. – Rentang SM untuk integer m dan I: Signed Integer • Sign Magnitude SM: – Penjumlahan, aturan:  sign tidak dijumlahkan, hanya magnitude  buang carry out dari msb magnitude  jumlahkan yang sign-nya sama + ke + atau - ke -  sign hasil = sign penambah – Contoh Signed Integer • Sign Magnitude SM: – Pengurangan, aturan:  lakukan jika sign sama, jika sign berbeda, ubah soal ke penjumlahan  perbandingkan magnitude, lakukan: a - b menjadi a + -b a + b menjadi a - -b – Contoh – Contoh Signed Integer • One’s complement OC – Definisi • 2 n - 1 → memberikan jumlah n digit • komplementasi bilangan biner ubah 1 ke 0 dan 0 ke 1 – Contoh • OC dari 00101110 adalah 11010001 • OC dari 00101110 adalah 11010001 – Rentang nilai Signed Integer  Signed integers are generally stored in 2’s complement format.  Most Significant Bit MSB is considered the sign bit  1 for negative numbers -- 0 for positive numbers  1 for negative numbers -- 0 for positive numbers No. of bits Binary 2’s compliment Min Max n -2 n-1 2 n-1 - 1 Signed Integers  To change the sign of any number 1. Invert all the bits 2. Add 1 2 10 == 0010 2 = 1101 + 1 ---- 1110 2 = -2 10 -2 10 == 1110 2 = 0001 + 1 ---- 0010 2 = 2 10  BILANGAN FLOATING-POINT  Representasi bilangan floating-point mempunyai tiga bagian: 1. Mantissa 2. Basis 3. Eksponen  Contoh : Bilangan Mantissa Basis Eksponen 3 x 10 6 3 10 6 110 x 2 8 110 2 8 6132.784 0.6132784 10 4 34.58 0.3458 10 2  Mantissa dan eksponen direpresentasikan secara eksplisit dalam komputer. Tetapi basisnya base adalah yg digunakan oleh komputer tersebut.  Umumnya komputer mengikuti basis 2.  Umumnya sebuah bilangan f direpresentasikan sebagai f = m x r e  Umumnya sebuah bilangan f direpresentasikan sebagai f = m x r di mana m adalah mantissa, r adalah basis dari sistem bilangan dan e adalah eksponen pangkat dari basis yg digunakan.  Format umum bilangan floating-point: S Eksponen Mantissa  Semula penggunaan format berbeda antar pabrik komputer untuk merepresentasikan bilangan floating-point. Tetapi saat ini telah digunakan format standar ANSIIEEE secara luas format IEEE 754. IBM mempunyai standar khusus  Ada dua format standar IEEE 754 yg dikeluarkan yaitu untuk presisi tunggal single precision dan format standar untuk bilangan presisi ganda double precision bilangan presisi ganda double precision S Eksponen, 8 bit Mantissa, 23 bit Format floating-point presisi tunggal 32 bit S Eksponen, 11 bit Mantissa, 52 bit Format floating-point presisi ganda 64 bit NORMALISASI FLOATING-POINT  Bilangan floating-point dapat direpresentasikan dgn banyak cara seperti yg ditunjukkan untuk bilangan desimal 110 x 28: 110 x 2 8 , 11 x 2 9 , 1100 x 2 7 , 1.1 x 2 10 , 0.11 x 2 11 , .011 x 2 12 .... dst.  Suatu bilangan floating-point berada dalam bentuk ternormalisasi jika Most Significant Digit dari mantissa bukan-nol non-zero. jika Most Significant Digit dari mantissa bukan-nol non-zero.  Untuk mengubah menjadi bilangan yg ternormalisasi, mantissa harus digeser ke kanan atau ke kiri dgn tepat, menaikkan atau menurunkan eksponen. Jika semua bilangan floating-point direpresentasikan dalam komputer dgn bentuk ternormalisasi, maka posisi bit satu dapat disimpan dengan mengabaikan MSB selalu 1. Ini disebut hidden 1 principle. 1. Pertama ubah menjadi bilangan biner. 2. Normalisasikan bilangan tsb sehingga terdapat satu digit nonzero di ujung terkiri, lakukan adjust exponent sesuai kebutuhan. Konversi format saintifik ke format standar IEEE 3. Simpan digit biner mantissa ke sisi kanan 4. Tambahkan 127 ke bagian exponent dan ubah hasil penjumlahan tersebut ke biner untuk nilai exponent yg akan disimpan. Untuk double precision, tambahkan 1023 ke exponent. 5. Sign bit = 1 untuk bilangan negatip dan sign bit = 0 untuk bilangan positip. S E’ M Representasi nilai = ±1.M x 2 E’  127 Bit tanda: 0 = + 1 =  representasi 8-bit excess -127 exponent 23-bit mantissa fraction Single precision biased exponent S E’ M Representasi nilai = ±1.M x 2 E’  1023 representasi 11-bit excess -1023 exponent 52-bit mantissa fraction Double precision Bit tanda: 0 = + 1 =  biased exponent Contoh: Tuliskan +0.0010110… x 2 9 dalam format single precision standar IEEE 754 Solusi: Setelah dinormalisasi : +1.0110… x 2 6 E’ = 6 + 127 = 133 = 10000101 10000101 0110… Contoh: Tuliskan 0.75 10 dalam format single precision standar IEEE Solusi:  Sign bit, S = 1 negatip 0.75 x 2 = 1.5 → 1 0.5 x 2 = 1.0 → 1 0.0 x 2 = 0.0 → 0 0.11000000 = 0.11000000 x 2 dinormalisasi: 1.10 x 2 1 M = 10000000000000000000000000 1 01111110 10000000000000000000000 M = 10000000000000000000000000 E’ = E + 127 =  1 + 127 = 126 = 01111110 E =  1 Sehingga representasi single precision 0.75 10 : Typical 32-bit floating-point format +1.638125 X 2 20 = Latihan: 1 10010011 10100011010111011001100 10010011 101000110101110…. 1.638125 X 2 20 = 1 01101011 10100011010111011001100 01101011 10100011010111011001100 +1.638125 X 2 ―20 = 1.638125 X 2 ―20 = Latihan: A. Tuliskan dalam format single precision standar IEEE 754: 1. + 5.375 x 10 3 10 2. + 200.0 10 3. - 13.275 3. - 13.275 10 4. - 0.05375 x 10 2 10 10000101 01100000000000000000000 B. Tuliskan dalam format notasi saintifik desimal Instruction Set Architecture Arsitektur Komputer Instruction Set Architecture • simplified DLX – A RISC architecture with only two instruction formats. • 32 general purpose registers , each 32 bits wide: R0-R31. • Register R0 always stores the value of 0. • Load and Store operations move data between the general purpose registers and the main memory. • All instructions are represented by a word = 4 bytes = 32 bits. • All instructions are represented by a word = 4 bytes = 32 bits. • The DLX architecture also has a few special purpose registers mainly used for handling interrupts. Special move instructions transfer data between general and special purpose registers. The Simplified DLX An overview of the execution cycle ©Dr. Guy Even Tel Aviv Univ. The Registers Registers are clock-enabled flip-flops. Their goal is to store binary data. The registers are divided into two major groups: General Purpose Registers Special Registers In the Special Registers environment In other environments In the General Purpose Registers GPR environment The General Purpose Registers The General Purpose Registers R0-R31: •The GPR environment contains 32 registers; each 32 bits long. • Store data arguments and results of instructions. • GPR environment functionality: in every clock cycle: • may read the values of 2 registers values appear in A B. • may write the value of 1 register value given via C. • implemented via a dual-port RAM. • implemented via a dual-port RAM. • registers A,B,C are not part of ISA they are part of datapath. GPR Env. A B C Responsible for storing information that is essential for running DLX programs. List of special registers: 1. Program Counter PC - stores the address of the current instruction. 2. Instruction Register IR - stores the current instruction. 3. More Special Purpose Registers – needed to support interrupt handling. Special Registers Datapath registers not part of ISA: 1. Memory Data Register MDR - stores data that is written to the memory or read from the memory. The MDR holds data for storeload instructions. 2. Memory Address Register MAR -stores the memory address that is accessed in loadstore instructions. The Instruction Formats Two formats of instructions I-Type Immediate R-Type Register Opcode, two registers a 16-bit constant Opcode, three registers an additional 6-bit opcode function Opcode RS1 RD Immediate 6 5 5 16 Opcode RS1 RS2 RD Function 6 5 5 5 5 6 The Instruction Formats Cont. Let’s see some examples: 1 001011 00110 01001 0000000000111111 This is an I-type instruction because IR[31:26] is not 000000. 001011 is the opcode of the addi instruction. 00110 is the binary representation of 6. 01001 is the binary representation of 9. 0000000000111111 – 2’s complement representation of 63. Opcode RS1 RD Immediate 0000000000111111 – 2’s complement representation of 63. The instruction is: addi R6 R9 63 and in other words: [ R9 ]  [R6] + 63 representation: 2’s complement representation is used for the immediate field and for the general purpose registers. Assembly Semantics The Instruction Formats Cont. 2 011010 00011 11001 0000000000000011 Again, This is an I-type instruction because IR[31:26] is not 000000. 011010 is the opcode of the seqi instruction. 00011 is the binary representation of 3. 11001 is the binary representation of 25. Opcode RS1 RD Immediate 0000000000000011 – 2’s complement representation of 3. The instruction is: seqi R3 R25 3 and in other words: Assembly Semantics [R25] [R3] = 3 ? 1 : 0 The Instruction Formats Cont. 3 000000 00101 00111 01101 100011 This is a R-type instruction because IR[31:26] is 000000. 000000 is the opcode of the R-Type instructions. 00101 is the binary representation of 5. 100011 is the representation of the add instruction. Opcode RS1 RS2 RD Function The instruction is: add R5 R7 R13 and in other words: [R13]  [R5] + [R7] Assembly Semantics The Instructions’ Types Several Types of instructions LoadStore Immediate ShiftCompute Test Jump LoadStore Immediate ShiftCompute Test Jump Simplified DLX instruction set From the programmer’s point of view ISA: DLX is a universal machine that executes programs stored in the main memory written in the DLX instructions set. What is the DLX? The DLX Implementation The general idea: Fetch Decode IR M[PC] decode the instruction stored in the IR. prepare the operands from the GPR if necessary P C Execute Memory Access Write- Back A calculation e.g. add, compare Memory access in loadstore instructions Store the result of the operation in the destination register in the GPR Env. In cr e m e n t P C The Datapath the Control Datapath - A collection of functional units, registers and multiplexers connected by buses. Control – A state machine that manages: operation of functional units, drivers that write to buses, clock-enable signals. The Control produces signals whose name is: “Control Signals”. The Control produces signals whose name is: “Control Signals”. Datapath Control The Datapath the Control Signals An example of data-flow: C opA,B - control is in state ALU - ALU inputs are fed from registers A B. corresponding drivers are enabled - write result in register C. driver of ALU output is enabled - timing : within one clock cycle. A B CLK ALU Env. C C CE Sampling C stable X,Y-ALU’s inputs not stable stable ALU’s output stable C CE The DLX Commands Implementation General Remarks: 1 Execution of an instruction requires more than one clock cycle. 2 Instructions do not have equal running time. The DLX The Datapath The Control The Datapath • General Purpose Registers • Functional Units ALU • Main Memory interface • buses Notes: • Very few Control states. • Even in modern processors: states 200. Controls the data flow in the datapath. A reminder: What is the RAM? RAM = Random Access Memory The term “Random” means that one may access any word as oppose to tape in which only next previous word may be accessed. The memory is modeled as an array of words. The index of each word is called the address of the word. M[i] is the word stored in the address of i. RAM Write Adr. Input Output ports: 1 A bit indicating if reading or writing A reminder: What is the RAM Cont. ? Data in Data out The functionality is: Write = 0 Reading operation: Data out M[Adr.] Write = 1 Writing operation: M[Adr.] Data in Data out Logical In the following slides we will zoom into each of the five types of Control states, describing what happens in each type. Let’s get deeper What happens during Fetch state? Din Adr Dout W Busy Memory Env. Control IR Env. IR PC MR Was the mission completed? IR Env. Sample 1 The PC register contains the address. 2 The desired functionality: IR M[PC] Fetch The Control usually stays in fetch state for more than one clock cycle 3 The memory is very slow. It announces: “I’m busy” after getting a read write request. When busy, no new requests are allowed. As Dout stablizes, the memory announces: “I’m done”. Only then the control asks the IR Env. to sample Dout’s value and update the IR register. The string dealt with is the one located in the IR register and may be of two types: 1 I-Type: Opcode RS1 RD Immediate 6 5 5 16 What happens during Decode state? Determine: • I-Type? • Next state. General Purpose Registers GPR Env. A B A operand Copy of RS1 Read Sign-Extension The constant sign-extended 2 R-Type: Opcode RS1 RS2 RD Function 6 5 5 5 5 6 Not use d What happens during Decode state Cont.? A continuation of the Opcode field. Determine: 1 R-Type? 2 Next state. General Purpose Registers GPR Env. A B A operand Copy of RS1 B operand Copy of RS2 Read Notes: 1 IR[25:21] represent RS1. IR[20:16] represent RS2. 2 The GPR Env. Is able to perform two read operations at the same clock period Dual Port RAM. What happens during Decode state Cont.? Opcode RS1 RS2 RD Function 3 The PC register is advanced in the decode stage: PC PC+1. This is done in order to avoid the use of another Control state and because this increment can be done in the decode stage buses and ALU are free. Some kinds of instructions: 1 Instructions which use the ALU Arithmetic instructions, Logic instructions and TestSet instructions: A reminder: RD RS1 + SextImm RD RS1 + RS2 RD RS1 SextImm ? 1 : 0 RD RS1 RS2 ? 1 : 0 R-Type I-Type What happens during Execute state? 2 operands: The first is always RS1 and the second is either RS2 or SextImm. GPR Env. A B C Cce IR Env. A. ArithmeticLogic instructions: What happens during Execute state Cont.? Sext Imm. 0 1 ITYPE ALU Env. ALU Control signals Result B. TestSet instructions: Sgri: RD RS1 SextImm ? 1 : 0 GPR Env. A B C Cce IR Env. Sext Imm. What happens during Execute state Cont.? 0 1 ITYPE ALU Env. TEST Result Two stages: 1 execute C RS1 RS2 ? 1:0 2 writeback RD C In this way the period time is shorter. Alway s 0 1 2 Shift instructions: These instructions are always in R-Type structure. Slli: RD RS1 1 Srli: RD RS1 1 The word to be shifted is stored in The shift amount is 1 GPR Env. C Cce IR Env. What happens during Execute state Cont.? stored in RS1 GPR Env. A B Cce Shifter RIGHT Result 1 From The PC Env. IR Env. A cco rd in g to F u n c. Generally, the “1” constant may be any other constant and the shift may be of more than one place 3 Jump instructions: A. Unconditional jump: Jump Reg jr: PC A What happens during Execute state Cont.? No direct path from A to PC. Instead: GPR Env. A IR Env. A ALU Env. ADD PC Env. PC Cce B. Branch: “Jump only if a condition is satisfied” beqz: PC PC+1+RS1=0 ? Sext Imm. : 0 bnez: PC PC+1+RS1=0 ? 0 : Sext Imm. We’ll demonstrate the beqz instruction. Two states are needed: State I - Branch: Check the condition – RS1=0 ? Sext Imm. : 0 What happens during Execute state Cont.? GPR Env. A IR Env. ALU Env. TEST Comparison result To the Control The next state BTaken Fetch State II - BTaken: Calculating the jump – PC PC+1+SextImm What happens during Execute state Cont.? State II - BTaken: Calculating the jump – PC PC+1+SextImm IR Env. ALU Env. PC Env. PC PCce PC ADD C. Calling a routine: ”Jump, remember your address so it will be possible to get back to this address” jalr: R31 PC+1 PC RS1 We use two Control states in order to execute this instruction because we want to avoid a collision in the buses to be elaborated. What happens during Execute state Cont.? State I: Copying the PC 2 clock cycles GPR Env. C PC Env. PC Cce Clock cycle 1: What happens during Execute state Cont.? GPR Env. C R31 Clock cycle 2 like in the Write-Back state: Write The address=31 State II: Calculating the jump address PC Env. PC IR Env. GPR Env. A Cce What happens during Execute state Cont.? ALU Env. ADD Load - Reading From Memory Load Word lw: RD MSextimm. + RS1 Four states are needed for finishing the load instruction: State I: Effective Address Computation – MAR A+C0 GPR Env. A IR Env. C0 A ALU Env. MAR ADD Sextimm + RS1 State II: Memory Access Load. This state lasts till the value is returned – MDR MMAR Load Cont. – Reading From Memory Adr Dout W Memory Env. MAR Read MDR Busy Tells the Control MDR Notes: 1 Busy signal informs the Control when the operation is over Dout is stable. 2 MDR samples Dout every clock cycle, no need to compute CE Simplifies Control. 3 Dout must be logical even if its value is incorrect Tells the Control when readung is over State III: Writing MDR’s value to C in the GPR – C MDR Load Cont. – Reading From Memory MDR GPR Env. C Cce State IV: Write-Back: RD C Store - Writing To Memory Store Word sw: MSextimm. + RS1 RD Three states are needed for finishing the store instruction: State I: Effective Address Computation – MAR A+C0 GPR Env. A IR Env. C0 A ALU Env. MAR ADD Sextimm. + RS1 GPR Env. B Store Cont. – Writing To Memory MDR State II: Copying the B register’s this is RD value to the MDR – MDR B State III: Memory Access Store – MMAR MDR Adr W Memory Env. MAR Write MDR Din Busy Tells the Control when writing is over Back - Write The Write-Back stage occur in the following instruction types: Arithmetic Logic Shift Test Set Load In this stage, the following happens: RD C GPR Env. C R0-31 Write RD RD’s value is determined according to a I-TypeR-Type structure. This is the reason for having two different Write-Back states WBI WBR. 5 5 1 0 ITYPE IR Back Cont. - Write The RD’s field may be either one of two candidates, according to the instruction’s type I-TypeR-Type. The decision is based on the string located in the IR register: 1 0 RD ITYPE The RD field possibilities 1 11. MEMORI Memori RAM Semikonduktor Memori semikonduktor tersedia dalam rentang kecepatan yang luas. Waktu siklusnya berada pada rentang 100ns hingga kurang dari 10ns. Pada saat diperkenalkan pertama kali pada akhir tahun 1960­an, memori tersebut lebih mahal daripada memori inti magnetik. Karena perkembangan teknologi VLSI Very Large Scale Integration yang sangat cepat, biaya memori semikonduktor telah menurun secara drastis. Akibatnya, teknologi tersebut sekarang digunakan secara eksklusif dalam menerapkan memori. Organisasi Internal Chip Memori Sel Memori biasanya diatur dalam bentuk array, dengan tiap sel dapat menyimpan satu bit informasi. Organisasi yang mungkin diilustrasikan pada gambar berikut. Add res s D ec od er A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 1 2 3 4 5 6 65534 65535 Control Buffer W MEMR D0 D1 D2 D3 D4 D5 D6 D7 Gambar 11.1. 2 Blok diatas adalah blok memori yang menggunakan 16 jalur alamat dan 8 jalur data. Karena terdapat 8 jalur data, maka jumlah word register tiap alamat dapat menyimpan 8 bit 1 byte data. Untuk 16 jalur alamat, maka jumlah word total yang dapat dialamati adalah 65535. Sehingga kapasitas memori total pada blok diatas adalah 65535 byte 64 Kilobyte. Jalur alamat biasanya ditunjukkan oleh bilangan heksadesimal untuk mempermudah analisa. Jika seluruh bit pada jalur alamat bernilai 0, maka bilangan heksadesimal yang ditunjukkan adalah 0000 1 bit bilangan heksadesimal mewakili 4 bit bilangan biner. Jika seluruh bit pada jalur alamat bernilai 1, maka bilangan heksadesimal yang ditunjukkan adalah FFFF. Dengan 16 jalur alamat, prosessor dapat mengalamati 65535 2 16 lokasi memori. Untuk itu diperlukan Address Decoder. Saat alamat berada pada jalur alamat, address decoder memilih lokasi memori yang sesuai. Setelah meletakkan sebuah alamat pada bus alamat, prosessor akan membaca isi dari lokasi memori, atau menulis data kedalam memori. Untuk menulis lokasi memori, prosessor mengirim sinyal Memory Read MEMR. Untuk menyimpan byte data pada lokasi memori, prosessor mengirim sinyal kontrol Memory Write MEMW. Untuk jalur data yang lebih dari 8bit, maka pengalamatannya menggunakan model byte addressable lihat modul pengalamatan memori. Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan, harus melalui memori terlebih dahulu. CPU mengambil instruksi dari memori sesuai yang ada pada Program Counter. Instruksi dapat berupa menempatkanmenyimpan darike alamat di memori, penambahan, dan sebagainya. Tugas sistem operasi adalah mengatur peletakan banyak proses pada suatu memori. Memori harus dapat digunakan dengan baik, sehingga dapat memuat banyak proses dalam suatu waktu. Satuan pokok memori adalah bit. Sejumlah bit dapat berisi 0 atau 1. Memori terdiri dari sejumlah cell­cell yang masing­masing dapat menyimpan informasi. Semua cell dalam sebuah memori berisi jumlah bit yang sama. Tiap cell mempunyai alamat, yang dipakai program sebagai acuan. Komputer­komputer menggunakan sistem bilangan biner termasuk notasi oktal dan heksa untuk bilangan biner. Memori komputer kadang dapat membuat kesalahan karena tekanan­tekanan voltase pada arus listrik atau sebab­sebab lain. Untuk menghindari kesalahan­ 3 kesalahan semacam itu, beberapa memori menggunakan kode­kode pendeteksi kesalahan. Ketika kode­kode ini digunakan, bit­bit ekstra ditambahkan pada setiap word memori dengan suatu cara khusus.. Ketika sebuah worddata muncul dari memori, bit­bit tambahan tersebut diperiksa untuk melihat apakah terjadi sebuah kesalahan. Memori berfungsi untuk menyimpan data dan program. Terdapat beberapa tipe memori, mulai yang tercepat aksesnya sampai yang terlambat. Hirarki memori berdasarkan kecepatan akses adalah seperti berikut: Gambar 11.2.

11.1. REGISTER

Adalah tempat penyimpanan beberapa buah data volatile yang akan diolah langsung di prosesor yang berkecepatan sangat tinggi. Register ini berada di dalam prosesor dengan jumlah yang sangat terbatas karena fungsinya sebagai tempat perhitungankomputasi data. Atau bisa dikatakan bahwa register berfungsi sebagai tempat penyimpanan sementara hasil dari tahapan­tahapan operasi aritmatika dan logika.. 4 11.2. CACHE MEMORY Cache memory adalah memori berkapasitas terbatas, berkecepatan tinggi yang lebih mahal dibanding memori utama. Cache memori terletak diantara memori utama dan register CPU, dan berfungsi agar CPU tidak langsung mengacu ke memori utama tetapi di cache memori yang kecepatan aksesnya lebih tinggi. Metode ini akan meningkatkan kinerja system. Dahulu cache disimpan di luar prosesor dan dapat ditambahkan. Untuk meningkatkan kinerja, saat ini cache ditanamkan di prosesor. Kecepatan memori utama sangat rendah dibandingkan kecepatan prosessor modern. Untuk performa yang baik, prosessor tidak dapat membuang waktunya dengan menunggu untuk mengakses instruksi dan data pada memori utama. Karenanya sangat penting untuk memikirkan suatu skema yang mengurangi waktu dalam mengakses informasi. Karena kecepatan memori utama dibatasi oleh batasan elektronik dan packaging, maka solusinya harus dicari pada sistem arsitektur yang berbeda. Solusi yang efisien adalah menggunakan memori cache cepat yang sebenarnya membuat memori utama tampak lebih cepat bagi prosesor daripada sebenarnya. Keefektifan mekanisme cache didasarkan pada properti program komputer yang disebut locality of reference. Analisa program menunjukkan bahwa sebagian besar waktu eksekusinya digunakan sebagai routine dimana banyak instruksi dieksekusi secara berulangkali. Instruksi tersebut dapat merupakan loop sederhana, nested loop, atau beberapa prosedur yang berulang kali saling memanggil. Pola detail aktual dari rangkaian instruksi tidaklah penting – yang utama adalah banyak instruksi dalam area program yang terlokalisasi dieksekusi berulangkali selama beberapa periode, dan bagian program yang lain relatif jarang diakses. Disebut locality of reference. Hal ini memanifestasikan dirinya dalam dua cara: temporal dan spasial. Yang pertama berarti bahwa instruksi yang baru dieksekusi tampaknya akan dieksekusi lagi dengan segera. Aspek spasial berarti instruksi yang dekat dengan instruksi yang baru saja dieksekusi dengan mengacu pada alamat instruksi tampaknya juga akan dieksekusi dengan segera. Jika segmen program aktif dapat diletakkan dalam memori cache dengan cepat, maka waktu eksekusi total dapat direduksi secara signifikan. Secara konseptual, operasi memori cache sangat sederhana. Sirkuit kontrol memori didesain untuk memanfaatkan properti locality of reference. Aspek temporal locality of reference 5 menyatakan bahwa kapanpun suatu item informasi instruksi atau data pertama kali diperlukan, maka item tersebut sebaiknya dibawa kedalam cache dimana item tersebut akan tetap tinggal hingga diperlukan lagi. Aspek spasial menyatakan daripada mengambil hanya satu item dari memori utama ke cache, akan berguna untuk mengambil juga beberapa item yang terletak pada alamat yang berdekatan. Digunakan istilah blok untuk mengacu pada set lokasi alamat beberapa ukuran yang berdekatan. Istilah lain yang sering digunakan untuk mengacu pada blok cache adalah jalur cache. Perhatikan pengaturan sederhana pada gambar berikut. Pada saat request Read diterima dari prosessor, isi blok word memori yang berisi lokasi tertentu ditransfer ke cache satu word tiap satu waktu. Selanjutnya, pada saat program mengacu pada suatu lokasi pada blok ini, maka isi yang dimaksud dibaca langsung dari cache. Biasanya, memori cache dapat menyimpan sejumlah blok pada tiap waktu tertentu, tetapi jumlah ini kecil dibandingkan dengan jumlah total blok dalam memori utama. Hubungan antara blok memori utama dan yang ada di dalam cache ditentukan dengan fungsi mapping. Pada saat cache penuh dan word memori instruksi atau data yang tidak berada di dalam cache direferensi, hardware control cache harus memutuskan blok mana yang harus dihapus untuk menghasilkan ruang bagi blok baru yang berisi word tereferensi. Kumpulan aturan untuk menentukan keputusan tersebut merupakan algoritma pergantian replacement algorithm. Gambar 11.3. Prosessor tidak perlu tahu pasti tentang keberadaan cache tersebut. Prosessor cukup hanya mengeluarkan request Read dan Write menggunakan alamat yang mengacu ke lokasi dalam memori. Sirkuit kontrol cache menentukan apakah word yang diminta saat ini berada dalam cache. Jika ya, operasi Read atau Write dilakukan pada lokasi cache yang sesuai. Dalam hal ini, dinyatakan telah terjadi Read atau Write hit. Pada operasi Read, memori utama tidak terlibat. Untuk operasi Write, sistem 6 dapat berjalan dengan dua cara. Pada teknik pertama, yang disebut protokol write­ through, lokasi cache dan lokasi memori utama di­update secara bersamaan. Teknik kedua adalah hanya meng­update lokasi cache dan menandainya sebagai ter­update dengan bit flag yang sesuai, sering disebut bit dirty atau modified. Lokasi memori word diupdate kemudian, pada saat blok yang berisi word bertanda ini dipindahkan dari cache untuk memberi ruang baru bagi blok baru. Teknik ini disebut protokol write back, atau copy back. Protokol write through lebih sederhana, tetapi menghasilkan operasi Write yang tidak perlu dalam memori utama pada saat word cache tertentu di­update beberapa kali selama cache recidencynya. Perhatikan bahwa protokol write back dapat pula menghasilkan operasi Write yang tidak perlu karena pada saat blok cache dituliskan kembali ke memori maka semua word pada blok dituliskan kembali, bahkan jika hanya word tunggal yang diubah pada saat blok berada di dalam cache. Pada saat word yang dituju dalam operasi Read tidak berada di dalam cache, terjadi Read miss. Blok word yang berisi word yang diminta di­copy dari memori utama ke dalam cache. Setelah seluruh blok di­load ke dalam cache, maka word yang diminta diteruskan ke prosessor. Kemungkinan lain, word ini dapat dikirim ke prosessor segera setelah dibaca dari memori utama. Pendekatan yang terakhir, yang disebut load through, atau early restart, mengurangi periode tunggu prosessor, tetapi menghasilkan sirkuit yang lebih kompleks. Selama operasi Write, jika word yang dituju tidak berada di dalam cache, maka terjadi write miss. Kemudian, jika protokol write through digunakan, maka informasi tersebut ditulis ke langsung ke memori utama. Dalam protokol write back, blok yang berisi word yang dituju mula­mula dibawa ke dalam cache, dan kemudian word di dalam cache yang dimaksud di over­write dengan informasi baru.

11.3. MEMORI EXTENSI

Tambahan memori yang digunakan untuk membantu proses­proses dalam komputer, biasanya berupa buffer. Peranan tambahan memori ini sering dilupakan akan tetapi sangat penting artinya untuk efisiensi. Biasanya tambahan memori ini memberi gambaran kasar kemampuan dari perangkat tersebut, sebagai contoh misalnya jumlah memori VGA, memori soundcard. 7 11.4. ROM Read Only Memory Chip SRAM dan DRAM volatile, artinya chip tersebut kehilangan informasi yang disimpannya jika daya di­off. Terdapat banyak aplikasi yangmemerlukan perangkat memori yang mempertahankan informasi tersimpan jika daya di­off. Misalnya dalam komputer biasa drive­harddisk digunakan untuk menyimpan sejumlah besar informasi, termasuk software sistem operasi. Pada saat komputer di­on, software sistem operasi harus diload dari disk ke dalam memori. Hal ini memerlukan eksekusi program yang ”boot” sistem operasi. Karena program boot cukup besar, sebagian besar disimpan dalam disk. Prosessor harus mengeksekusi beberapa instruksi yang me­load program boot ke dalam memori. Jika seluruh memori hanya terdiri dari chip memori volatile, maka prosessor tidak akan memiliki sarana untuk mengakses instruksi tersebut. Solusi praktisnya adalah dengan menyediakan sejumlah kecil memori non volatile yang menyimpan instruksi yang eksekusinya menghasilkan loading program boot dari disk. Memori non volatile digunakan secara luas dalam sistem embedded. Sistem semacam ini biasanya tidak menggunakan perangkat penyimpanan disk. Programnya disimpan dalam perangkat memori semikonduktor non volatile. Tipe memori non volatile yang berbeda telah dikembangkan. Umumnya, isi memori semacam itu dapat dibaca seakan sebagai memori SRAM atau DRAM. Tetapi proses penulisan khusus diperlukan untuk meletakkan informasi tersebut dalam memori ini. Karena operasi normalnya melibatkan hanya pembacaan data yang tersimpan, maka memori tipe ini disebut read­only memory. Data ditulis ke dalam ROM pada saat fabrikasi. Beberapa desain ROM memungkinkan data diload oleh user, sehingga menghasilkan programmable ROM PROM. PROM menyediakan fleksibilitas dan kemudahan yang tidak dimiliki ROM. Yang terakhir lebih menarik secara ekonomi untuk menyimpan program dan data tetap pada saat ROM volume tinggi diproduksi. Akan tetapi, biaya untuk mempersiapkan mask yang diperlukan untuk menyimpan pola informasi tertentu dalam ROM menjadikannya sangat mahal pada saat hanya sejumlah kecil yang diperlukan. Dalam hal ini, PROM menyediakan pendekatan yang lebih cepat dan lebih murah karena dapat diprogram langsung oleh user. 8 Tipe lain chip ROM memungkinkan data yang disimpan dihapus dan diload data baru. ROM yang erasable dan programmable biasanya disebut EPROM. Tipe ini menyediakan fleksibilitas selama fase pengembangan sistem digital. Karena EPROM mampu mempertahankan informasi yang tersimpan untuk waktu yang lama, maka dapat digunakan untuk menggantikan ROM pada saat software dikembangkan. Dengan cara ini, perubahan dan update memori dapat dilakukan dengan mudah. Kentungan yang penting dari chip EPROM adalah isinya dapat dihapus dan diprogram ulang, dilakukan dengan menyinari chip pada sinar ultraviolet. Untuk alasan ini, chip EPROM dipasang pada unit yang memiliki jendela transparan. Kerugian EPROM yang signifikan adalah chip tersebut harus dipindahkan dari sirkuit untuk pemrograman ulang dan seluruh isinya dihapus oleh sinar ultraviolet. Dimungkinkan untuk menerapkan versi lain erasable PROM yang dapat diprogram dan dihapus secara elektrik. Chip semacam ini, yang disebut EEPROM, tidak harus dipindahkan untuk penghapusan. Lagipula dimungkinkan untuk menghapus isi sel secara selektif. Satu­satunya kerugian dari EEPROM adalah diperlukan tegangan yang berbeda untuk penghapusan, penulisan, dan pembacaan data yang tersimpan. Jenis terbaru dari EEPROM adalah memory flash. Terdapat perbedaan substansial dalam beberapa hal antara EEPROM dan flash memory. Dalam EEPROM dapat dimungkinkan untuk membaca dan menulis sel tunggal. Pada perangkat flash mungkin untuk membaca sel tunggal, tetapi hanya mungkin untuk menulis seluruh blok sel. Sebelum penulisan, isi blok sebelumnya akan dihapus. Perangkat flash memiliki densitas yang lebih besar, yang menghasilkan kapasitas yang lebih tinggi dan biaya lebih rendah per bit. Perangkat tersebut memerlukan supply daya tunggal, dan mengkonsumsi daya lebih rendah dalam operasinya. Konsumsi daya yang rendah pada memori flash membuatnya menarik untuk digunakan dalam perangkat portable yang dikendalikan dengan batere. Aplikasi yang umum antara lain komputer hand­held, telepon seluler, kamera digital, dan player musik MP3. Pada komputer hand­held dan telepon seluler, memori flash menyimpan software yang diperlukan untuk mengoperasikan peralatan tersebut, sehingga meniadakan perlunya disk drive. Pada kamera digital, memori digunakan untuk menyimpan data gambat, sedangkan pada player MP3 digunakan untuk menyimpan file audio. Terdapat dua pilihan yang populer untuk implementasi modul flash memori yaitu kartu flash flash card dan drive flash flash drive. 9 Kartu Flash Salah satu cara untuk mengkonstruksi modul yang lebih besar adalah dengan memasang chip flash pada kartu kecil. Kartu flash semacam ini memiliki antar muka standar yang membuatnya dapat digunakan dalam berbagai produk. Suatu kartu chip dicolokkan ke dalam slot yang sesuai. Kartu flash memiliki berbagai ukuran memori. Ukuran yang umum adalah 8, 16, 32, 64, 128, 256, hingga 1Gbyte bahkan lebih. Drive Flash Modul memori flash yang lebih besar telah dikembangkan untuk menggantikan drive harddisk. Fakta bahwa drive flash adalah perangkat elektronik solid state yang tidak memiliki bagian yang dapat dipindahkan menghasilkan keuntungan penting. Perangkat tersebut memiliki waktu pencarian dan akses yang lebih singkat, sehingga menghasilkan respon yang lebih cepat. Drive tersebut memiliki konsumsi daya yang lebih rendah, yang menjadikannya atraktif untuk aplikasi yang diatur dengan batere, dan perangkat tersebut juga tidak sensitif terhadap goncangan. Kerugian drive flash dibandign drive harddisk adalah kapasitasnya yang lebih rendah dan biaya per bit yang lebih tinggi. Disk menyediakan biaya per bit yang jauh lebih rendah. Kerugian lain adalah kemampuan flash memori akan menurun setalah ditulis berulang kali. Sedangkan pada harddisk, jumlah penulisan lebih tinggi, paling sedikit jutaan kali.

11.5. KONFIGURASI SISTEM OPERASI DAN MANAJEMEN MEMORI

Antara manajemen memori dan konfigurasi system operasi merupakan dua hal yang tidak bisa dipisahkan. Pada dasarnya pengkonfigurasian system operasi adalah mengatur pemanfaatan memori komputer yang ada. Dalam pengkonfigurasian system operasi dikenal dua bentuk memori yaiti: 1. Physical memory 2. Virtual memori Phisycal memory adalah memori yang terdapat pada komputer secara fisik, yaitu berbentuk modul memori RAM. Memori ini digunakan untuk mengolah data. Instruksi dan data yang akan ditampilkam ke layar monitor. Sedangkan virtual memori merupakan memori bayangan karena secara fisik memori ini tidak ada di 10 mainboard komputer. Virtual memori merupakan memori yang dibentuk oleh system operasi dengan memanfaatkan sebagian kapasitas Hard Disk Drive. Virtual memory dibuat oleh system operasi sesuai kebutuhan akan memori yang diperlukan oleh program aplikasi. Selanjutnya sistem operasi akan mengatur proses swapping data dan instruksi antara virtual memori dengan physical memori. Dalam proses multitasking ini keseluruhan memori physical memori akan digunakan untuk menjalankan program secara bersamaan. Jika memori tersebut kurang maka beberapa bagian kapasitas hard disk drive untuk dipergunakan sebagai virtual memory sebesar kekurangan memori yang ada . Gagasan utama dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian­bagian proses yang sedang digunakan di memori fisik memori utama dan sisanya diletakkan di disk. Begitu bagian yang berada di disk diperlukan, maka bagian di memori yang tidak diperlukan akan dikeluarkan dari memori fisik swap­out dan diganti swap­in oleh bagian disk yang diperlukan itu. Sedangkan untuk physical memory, dalam penggunaannya membutuhkan pengaturan tersendiri. Physical memory akan dibagi menjadi beberapa bagian memori.

11.5.1. Conventional base memory

Conventional memory adalah 640 KB pertama dari seluruh kapasitas RAM pada komputer. Seluruh system operasi akan secara otomatis menggunakan memori ini sehingga memori ini tidak memerlukan pengaturan khusus. Memori inilah yang digunakan oleh system operasi.

11.5.2. UMA Upper Memory Area

UMA adalah memori sebesar 384 KB setelah memori konvensional. UMA digunakan oleh komputer untuk mendukung perangkat keras yang ada, seperti display adapter. Untuk pembagian 384 K upper memori: 128 K yang pertama disebut video ram dengan alamat A0000­BFFFF 128 K berikutnya digunakan untuk adapter bios dengan alamat C0000­DFFFF 11 128 K berikutnya digunakan untuk motherboard BIOs yang digunakan untuk POST dan boot strap leaders dengan alamat E0000­FFFFF

11.5.3. Entended Memory XMS

Extended memory adalah memori komputer diatas MB. Sistem opersii Windows dan system aplikasi berbasis Windows dan system aplikasi berbasis Windows merupakan system yang membutuhkan memori ini.

11.5.4. High Memory Area HMA

HMA adalah 64 KB pertama dari XMS. Pada komputer dengan extended memory, setup system operasi bisa menempatkam system operasimisalnya dos pada high memory area. Dengan demikian akan menambah sisa ruang pada memori konvensional.

11.5.5. EXPANDED MEMORY EMS

Beberapa sistem aplikasi berbasis DOS tidak mampu menggunakan extended memory yang ada. Sistem aplikasi tersebut menggunakan kapasitas memori yang lebih tersebut dalam bentuk expanded memory. Untuk bisa mengakses expanded memory dibutuhkan expanded memory manajer seperti EMM386. Program akan menggunakan expanded memory sebesar 64Kbytes pada satu saat dan mengalamatkanya ke upper memory area yang disebut EMS page frame. Karena expanded memory manager memberi batas penggunaan expanded memory pada satu saat, maka penggunaan expanded memory menjadi lebih lambat dibandingkan dengan extended memory. Meskipun Windows dan sistem aplikasinya tidak membutuhkan expanded memory, namun Windows mampu mengemulasikan expanded memory untuk sistem aplikasi berbasis DOS. Itulah sebabnya beberapa sistem aplikasi berbasis DOS mampu berjalan normal di Windows. Sebagaimana telah diuraikan di atas, bahwa untuk menggunakan memori­ memori yang ada tersebut dibutuhkan device driver untuk manajemen memori kecuali memori konvensional yang memang langsung bisa dipakai. Pengaturan device drive tersebut dilakukan oleh sistem operasi. Dengan demikian untuk bisa mengatur pemanfaatan memori, harus mengatur konfigurasi pada sistem informasi, yaitu dengan memanipulasi file konfigurasi sistem. Karena pengaturan memori tersebut 12 akan digunakan sejak awal hingga akhir pengoperasian komputer, maka pengaturan sistem konfigurasi tersebut juga harus memungkinkan hal ini terjadi.

11.6. Memori map

Gambar 11.4. 11.7. Rangkuman Sejarah Sekitar 1990, kemajuan sisitem operasi, seperti windows, muncul pada pasaran, saat itulah dimulainya persaingan RAM. Windows pertama dioperasikan pada PC dengan kapasitas memori yang dapat dialamati sebesar 2 MB, tetapi tidak lama kemudian memori berukuran 4 MB juga dapat dialamati dan kemudian menjadi standart saat itu. Perkembangan ini berlangsung selama tahun 90­an, harga RAM pun semakin turun drastis. TIPE RAM RAM tipe lama adalah DRAM dynamic RAM. Tipe yang lain adalah SRAM static RAM. Kemudian DRAM diperbaharuhi kembali dengan menambah kecepatan selama beberapa mili detik. DRAM terdiri dari mikro kapasitor, sedangkan SRAM 512 K 256 K 0 K EXTENDED MEMORI HMA MOTHERBOARD ROM BIOS EMS WINDOWS ADAPTER ROM VIDEO RAM CONVENTIONAL BASE MEMORI 896 K 768 K 640 K nMB 1M+64 K 1M EXPANDED MEMORI UMA CONVENTIONAL BASE MEMORT 13 terdiri dari tombol off atau on. Oleh karena itu, SRAM dapat merespoan lebih cepat daripada DRAM. SRAM dapat digunakan dengan waktu yang cepat selama 4 ns. DRAM jauh lebih mudah untuk dibuat. Tipe DRAM lebih baru dan lebih cepat dikembangkan secara terus­menerus. Berikut adalah tipe­tipe DRAM : ­ FPM Fast Page Mode ­ ECC Error Correcting Code ­ EDO Extended Data Output ­ SDRAM Synchronous Dynamic RAM ­ RDRAM Rambus Direct RAM ­ DDRRAM Double Data Rate RAM Penjelasan singkat tipe DRAM FPM adalah RAM model lama untuk PC sebelum EDO diperkenalkan. Dengan menggunakan modul SIMM Single Inline Memory Module 2, 4, 8, 16, atau 32 MB. Khususnya, ditemukan dalam versi 60 ns atau 70 ns. 60 ns paling cepat dan yang pertama digunakan. Pengguna komputer tidak dapat mencampur modul memori dengan kecepatan berbeda dalam satu motherboard yang sama. EDO Extended Data Out RAM adalah perbaikan FPM RAM. Data dibaca lebih cepat. Data keluaran yang valid dari EDO memerlukan waktu yang lama. Dengan perubahan dari FPM ke EDO, dapat diharapkan sebuah peningkatan hasil 2­5 . EDO RAM biasanya tersedia dalam versi 60 ns. Versi 50 ns tersedia dengan biaya yang lebih mahal. Berikutnya, EDO digantikan oleh SDRAM Synchronous DRAM, salah satu jenis DRAM yang operasinya disinkronisasikan langsung dengan sinyal clock.. SDRAM muncul dipasaran dengan ukuran 64 bit sepanjang 168 pin DIMMs. SDRAM hanya mengakses 6­12 ns Pada frekuensi kerja 66 MHz. Kemudian muncul pula pada frekuensi kerja 100 dan 133 MHz. Standar SDRAM melakukan operasi pada sisi sinyal clock tinggi. Tersedia perangkat memori serupa, yang mengakses sel array dengan cara yang sama, tetapi mentransfer data pada kedua sisi clock saat kondisi tepi. Latency perangkat ini sama dengan standar SDRAM. Tetapi karena mentransfer data pada kedua sisi clock, maka bandwidth perangkat tersebut pada dasarnya lipat dua untuk transfer burst panjang. 14 Perangkat tersebut dikenal dengan nama double data rate SDRAM. DDR SDRAM Double data rate SDRAM adalah versi clock ganda SDRAM, yang mengganti SDRAM mulai 2001 hingga sekarang. Gambar 11.5. 9 bits per byte Normalnya suatu sistem komputer menggunakan 8 bit dalam satu byte. Pada beberapa tahun belakangan 1 bit ditambah sebagai keseimbangan, sehingga menjadi 9 bit dalam blok RAM. 1 bit tersebut digunakan untuk membuktikan transmisi yang benar atau digunakan sebagai pendeteksi kesalahan. Jika motherboard memerlukan modul 36 bit, sebenarnya modul yang digunakan adalah 32 bit. RAM dan motherboard Pada sistem board modern, RAM terpasang pada modul SIMM atau DIMM, sebelum DRAMs kecil sendiri digunakan. Biasanya ada ruang untuk 36 chips kecil pada sistem board. Sebenarnya, seorang pengguna telah dimudahkan untuk memasang memori RAM dengan mudah. SIPP modul pertama kali hadir. Modul ini mempunyai banyak pin, yang sesuai dengan pin yang ada pada motherboard. Sampai dengan SIMM modul muncul kemudian. Modul ini ada pada sebuah kartu, yang mempunyai sebuah edge connector. Modul ini menyesuaikan dengan soket pada motherboard, diharapkan semua orang dapat menginstallnya dengan mudah. 15 Kecepatan RAM Satuan kecepatan RAM diukur dalam ns nano seconds. Beberapa tahun lalu RAM muncul dengan kecepatan 120, 100 dan 80 ns. Sekarang ini, kecepatannya telah mencapai 6 ns dan terus bertambah cepat. Clock speed Time per clock tick 20 MHz 50 ns 25 MHz 40 ns 33 MHz 30 ns 50 MHz 20 ns 66 MHz 15 ns 100 MHz 10 ns 133 MHz 6 ns Tabel 11.1. Peak Bandwidth Pada tabel berikut dapat dilihat peak bandwidth secara maksimum dalam 3 tipe RAM. RAM type Max. peak bandwidth FPM 176 MBsec EDO 264 MBsec SD 528 MBsec Tabel 11.2. SIMM RAM SIMM Single Inline Memory Modules pertama dibuat dalam edisi 8 bit. Modul ini adalah kartu kecil dengan 1, 2 atau 4 MB RAM. Perangkat ini dihubungkan ke motherboard dengan penghubung 30 pin dan memiliki 8 bit. Ini 16 berarti bahwa 16 bit prosesor 286 dan 386SX membutuhkan 2 SIMMs dalam satu pasang. Jadi, tersedia ruangan untuk 2 modul yang juga disebut sebagai sebuah bank. Prosesor 32 bit 386DX dan 486 membutuhkan 4 SIMMs kecil 8 bit dalam sebuah bank. Tentu saja lebar banknya 32 bit. Khusus pada generasi pertama 486 motherboard, pengguna dapat menginstal 4 X 1 MB, 4 X 2 MB, atau 4 X 4 MB pada setiap bank. 32 bit modules Dengan munculnya prosesor 486, diperlukan modul RAM yang lebih baik. Kemudian muncul modul terbesar yaitu 32 bit dalam penggunaannya. Sebuah motherboard 486 masih mempunyai soket 4 SIMM, tetapi modul yang lebarnya 32 bit muncul, modul tersebut dapat dipasang dalam waktu yang tidak terlalu lama. Hal itu sudah menjadi keunggulan saat itu. Pengguna dapat menambah tipe modul yang berbeda dan masih menggunakan barang yang lama. Sejak motherboard 486 dijalankan hanya pada 33 Mhz pada sistem bus, kualitas modul RAM tidak terlalu buruk. Pengguna bahkan dapat mencampur 60 ns dan 70 ns yang berbeda jenis tanpa masalah. Pada gambar berikut terlihat sepasang modul SIMM. Pada ukuran 64 bit 168 pin. Kemudian ukuran 32 bit dengan 72 pin penghubung. Dibawah ini modul 8 bit dengan pin penghubung : 64bit SDRAM: 17 32bit DRAM: dan 16bit DRAM: Gambar 11.6. Pentium motherboard dengan SIMMs Pada pentium motherboard, sistem bus lebarnya 64 bit. Oleh karena itu, SIMMs 32 bit diinstal dalam satu pasang. Sejak motherboard umumnya hanya mempunyai dua tepi dengan jumlah 4 SIMM soket, kemungkinan perkembangan RAM dibatasi. Catatan : Modul kecepatan RAM yang berbeda tidak pernah dapat digunakan pada satu Pentium motherboard. Semua modul harus mempunyai kecepatan yang sama. Pada tabel berikut dapat terlihat konfigurasi pada Pentium motherboard yang lama dengan 4 SIMM socket. Bank 1 Bank 2 Total RAM 16 MB + 16 MB ­ 32 MB 16 MB + 16 MB 32 MB + 32 MB 96 MB 32 MB + 32 MB 32 Mb + 32 MB 128 MB Tabel 11.3. DIMMs RAM tipe modern paling banyak digunakan, SDRAM yang dibuat dalam modul yang lebarnya 64 bit disebut DIMMs Dual Inline Memory Module. 18 Modul tersebut mempunyai sebuah panghubung sebanyak 168 pin edge connector. Berikut adalah gambar modul memori. Gambar 11.7. Keuntungan meningkatkan kecepatan SDRAM menyediakan peningkatan kecepatan sistem Bus. Dengan 60 ns EDO­RAM, dapat dijalankan dengan kecepatan maksimum 75 MHz pada sistem bus. Kecepatan SDRAM dapat meningkat sampai 133 MHz. Kebanyakan chipset dibuat untuk SDRAM. Beberapa motherboard mempunyai kedua SIMM dan DIMM sockets. Memberi pilihan pada pengguna komputer untuk dapat menggunakan kembali EDO RAM dalam SIMM sockets, atau memilih menginstall SDRAM dalam DIMM socket. Kedua modul tersebut tidak dirancang untuk mencampur tipe RAM walaupun bekerja pada board yang sama. Gambar 11.8. 19 Diatas : 64 MB DIMM­module mempunyai 32 chips setiap 16 Mbit 32 X 16 Mbit 8 bit = 64 MB. PC133 PC133 RAM dijalankan pada 133 MHz adalah versi terakhir dari SDRAM. Spesifikasinya dibuat oleh VIA, Micron, NEC, Samsung, SIS, Acer Labs dan vendor lainnya. Produksi pertama dari Corsair, June 1999 menggunakan ukuran kecepatan 7.5 ns RAM dari micron. Model intelligent Rambus Performa memori dinamik ditentukan dengan latensi dan bandwidth­nya. Karena semua chip memori dinamik menggunakan organisasi yang serupa untuk array selnya, maka latensi cenderung mirip jika chip diproduksi menggunakan proses fabrikasi yang sama. Sebaliknya, bandwidth efektif sistem memori tergantung tidak hanya pada struktur chip memori, tetapi juga pada sifat jalur penghubung ke prosessor. DDR SDRAM dan SDRAM standar dihubungkan ke bus prosessor. Sehingga kecepatan transfer bukan hanya fungsikecepatan perangkat memori – juga tergantung pada kecepatan bus. Bus di­clock pada 133 MHz memungkinkan paling banyak satu transfer setiap 7,5 ns, atau dua transfer jika kedua sisin clock digunakan. Satu­satunya cara untuk meningkatkan jumlah data yang dapat ditransfer pada bus berkecepatan terbatas adalah untuk meningkatkan lebar bus dengan menyediakan lebih banyak jalur data, sehingga memperlebar bus. Bus yang sangat lebar banyak dan memerlukan banyak ruang di motherboard. Pendekatan alternatif adalah mengimplementasikan bus sempit yang lebih cepat. Pendekatan ini digunakan oleh Rambus Inc. Untuk mengembangkan desain proprierty yang disebut Rambus. Fitur utama teknologi Rambus adalah metode signalling cepat yang digunakan untuk mentransfer informasi antar chip. Sebagai pengganti penggunaan sinyal yang memiliki level tegangan 0 atau Vsupply untuk menyatakan nilai logika, maka sinyal tersebut terdiri dari ayunan tegangan yang lebih kecil disekitar tegangan referensi Vref. Tegangan referensi adalah sekitar 2V, dan dua nilai logika dinyatakan dengan ayunan 0,3V diatas dan dibawah Vref, Tipe signalling ini biasanya dikenal sebagai signalling diferensial. Ayunan tegangan kecil 20 memungkinkan waktu transisi singkat, sehingga memungkinkan transmisi kecepatan tinggi. Signalling diferensial dan kecepatan transmisi tinggi memerlukan teknik khusus untuk desain koneksi kabel yang berfungsi sebagai link komunikasi. Persyaratan ini mempersulit pembuatan bus lebar. Juga perlu mendesain antar muka sirkuit khusus untuk menangani sinyal diferensial. Rambus menyediakan spesifikasi lengkap untuk desain link komunikasi, disebut saluran Rambus. Desain Rambus saat ini memungkinkan frekuensi clock 400MHz. Lagipula, data ditransmisikan pada kedua sisi, sehingga kecepatan transfer data efektif adalah 800MHz. Rambus memerlukan chip memori yang didesain secara khusus. Chip ini menggunakan array sel berbasis pada teknologi DRAM standar. Banyak bank array sel digunakan untuk mengakses lebih dari satu word pada satu waktu. Sirkuti yang diperlukan untuk antar muka ke saluran Rambus disertakan pada chip. Chip semacam itu dikenal sebagai Rambus DRAM RDRAM. Spesifikasi asli Rambus disediakan untuk saluran yang terdiri dari 9 jalur data dan sejumlah jalur kontrol dan supply daya. Delapan jalur dimaksudkan untuk mentransfer byte data. Jalur data kesembilan dapat digunakan untuk tujuan seperti pemeriksaan paritas. Spesifikasi selanjutnya memungkinkan saluran tambahan. Rambus dua­saluran, juga disebut Direct RDRAM, memiliki 18 jalur data yang dimaksudkan untuk mentransfer dua byte data pada satu waktu. Tidak ada jalur alamat terpisah. Komunikasi antara prosessor, atau beberapa perangkat lain yang dapat berfungsi sebagai master, dan modul RDRAM, yang berfungsi sebagai slave, dilakukan dengan menggunakan paket yang ditransmisikan pada jalur data. Terdapat tiga paket: request, acknowledge, dan data. Paket request dikeluarkan oleh master mengindikasikan tipe operasi yang akan dilakukan . Paket tersebut berisi alamat lokasi memori yang diinginkan dan menyertakan 8­bit count yang menyatakan jumlah byte yang terlibat di dalam transfer. Tipe operasi tersebut menyertakan baca dan tulis memori, dan juga membaca dan menulis berbagai register kontrol dalam chip RDRAM. Pada saat master menyatakan paket request, slave yang dituju merespon dengan mengembalikan paket acknowledge positif jika dapat memenuhi request tersebut dengan segera. Sebaliknya, slave mengindikasikan bahwa dia ”sibuk” dengan mengembalikan paket acknowledge negatif, dalam hal ini master akan mencoba lagi.