Transfer Register dan Mikrooperasi
Bahasa Transfer Register Sistem digital merupakan interkoneksi modul-modul perangkat keras digital yang melakukan tugas-tugas khusus. Sistem digital bervariasi dalam ukuran dan kompleksitas, dari rangkaian dengan sedikit IC sampai rangkaian yang kompleks (komputer digital) Perancangan dilakukan secara modular modul-modul tersebut terdiri atas register, dekoder, modul-modul aritmetik, rangkaian pengendali, dll)
Bahasa Transfer Register Modul-modul digital dengan baik didefinisikan oleh register yang dimilkinya dan operasi-operasi yang dilakukan pada register tersebut Operasi-operasi yang dilakukan terhadap data yang tersimpan dalam register disebut dengan mikrooperasi Mikrooperasi merupakan operasi dasar yang terjadi pada informasi yang disimpan pada satu atau lebih register
Bahasa Transfer Register Organisasi perangkat keras internal dari suatu komputer digital didefinisikan dengan menentukan Serangkaian register yang ada dan fungsinya Urutan mikrooperasi dilakukan pada informasi biner yang disimpan pada register Pengendali yang menginisiasikan urutan mikrooperasi
Transfer Register Register komputer disimbolkan dengan huruf kapital (kadang-kadang diikuti dengan angka indeks) untuk menunjukkan fungsi dari register Contoh: MAR (memory address register) yang digunakan untuk menyimpan alamat memori PC (Program Counter), IR (Instruction Register), R1 (register prosesor), dll
Transfer Register Flip-flop dalam register n-bit dinomori dengan 0 hingga n-1. Dengan indeks 0 adalah pada flip-flop yang paling kanan
Transfer Register Transfer informasi antara satu register ke register yang lain ditunjukkan dengan simbol Pernyataan R2 R1 menunjukkan bahwa terjadi transfer isi register R1 ke register R2. Isi register R1 tidak berubah
Transfer Register Transfer yang terjadi di bawah kendali sinyal kontrol dapat dinyatakan dengan pernyataan if-then If (P=1) then (R2 R1) dengan P adalah sinyal kendali yang dibangkitkan oleh bagian pengendali Variabel kendali P sering disebut dengan control function Control function berupa variabel Boolean yang bernilai 0 atau 1
Transfer Register Operasi transfer register yang melibatkan control function dapat dicontohkan sbb P: R2 R1 Pernyataan di atas menunjukkan bahwa operasi transfer register dieksekusi hanya jika P=1
Register Transfer
Register Transfer N-output register R1 dihubungkan dengan n-input register R2 Register R2 mempunyai load input yang diaktifkan oleh variabel kendali P Variabel kendali disinkronisasi dengan clock yang masuk ke register P diaktifkan pada saat terjadi pulsa naik pada saat t. Pada saat transisi berikutnya pada t+1, terjadi transfer data dari R1 ke R2
Register Transfer Pernyataan T: R2 R1, R1 R2 menunjukkan operasi penukaran data pada dua register pada clock yang bersamaan hanya terjadi pada saat T=1
Transfer Bus dan Memori Komputer digital mempunyai banyak register diperlukan jalur yang memungkinkan terjadinya pertukaran data antar register Jumlah jalur akan semakin banyak jika tiap register saling dihubungkan secara fisik Cara yang efisien untuk transfer informasi antar register digunakan sistem common bus (bus bersama)
Transfer Bus dan Memori Struktur bus terdiri atas set jalur bersama, satu untuk tiap bit register, hanya satu transfer bit yang diijinkan pada saat tertentu Sinyal kendali akan menentukan register mana yang dipilih oleh bus pada saat transfer Salah satu cara untuk membentuk sistem common-bus adalah dengan menggunakan multiplekser. Multiplekser akan menyeleksi register sumber dan kemudian meletakkan informasi biner pada bus
Transfer Bus dan Memori Sistem bus untuk 4 register
Transfer Bus dan Memori Masing-masing register terdiri atas 4-bit, dengan indeks 0 .. 3 Bus terdiri atas empat multiplekser 4x1, masing-masing mempunyai 4 input data dengan indeks 0 .. 3, dan 2-bit input selektor S1 dan S0 Jalur seleksi S1S0 akan memilih 4-bit pada salah satu register dan menempatkannya pada common-bis 4 jalur. Saat S1S0 = 00, semua data berindeks 0 akan terpilih dan diletakkan pada sistem bus sehingga terpilih register A
Transfer Bus dan Memori
Transfer Bus dan Memori Sistem bus akan memilih k register dengan masing-masing berukuran n-bit untuk menghasilkan common bus n-jalur Jumlah multiplekser yang diperlukan adalah n (jumlah bit tiap-tiap register) Ukuran multiplekser adalah kx1 Contoh Common bus untuk 8 register 16 bit, memerlukan 16 buah multiplekser dengan ukuran 8x1
Transfer Bus dan Memori Transfer informasi dari bus ke register tujuan dapat dilakukan dengan cara: menghubungkan jalur bus ke input register tujuan mengaktifkan kendali pada register yang terpilih Transfer register dapat disimbolkan sebagai BUS C, R1 BUS Register C diletakkan di bus, dan isi BUS dimuat ke register R1 dengan cara mengaktifkan input kendalinya. Jika tidak memperhatikan sistem bus, pernyataan diatas dapat ditulis sebagai R1 C
Bus 3-State Sistem bus dapat dibangun dari gerbang 3-keadaan Gerbang 3-keadaan adalah rangkaian digital yang mempunyai 3-keadaan. 2 keadaan adalah logika 0 dan 1, dan keadaan ke-3 adalah keadaan high impedance Keadaan high impedance sepeti rangkaian terbuka, yang berarti output terputus dan tidak dalam keadaan 0 atau 1
Bus 3-State Simbol Buffer 3-state Bagian input: input normal dan input kendali. Input kendali menentukan keadaan output. Input kontrol berlogika ‘1’, output dalam kondisi enable, dan akan berlaku seperti buffer konvensional. Jika input kontrol berlogika ‘0’, maka output akan dalam kondisi disable dan gerbang dalam keadaan high impedance
Bus 3-State Konstruksi sistem bus dengan buffer 3-state
Bus 3-State Untuk membentuk common bus 4-register n-bit menggunakan buffer 3-state, diperlukan n rangkaian dengan empat buffer masing-masing (seperti pada gambar sebelumnya). Masing-masing grup 4 buffer menerima satu significant bit dari empat register
Transfer Memori Transfer informasi dari memori disebut dengan operasi READ Transfer informasi baru dan kemudian disimpan pada memori disebut dengan operasi WRITE Memori disimbolkan dengan M Unit memori menerima alamat dari register yang disebut dengan address register (AR). Data ditransfer ke register, disebut dengan data register (DR). Operasi baca dapat disimbolkan: Read: DR M(AR) Terjadi transfer informasi ke register DR dari memori dengan alamat yang tersimpan dalam register AR
Transfer Memori Operasi write mentransfer isi data register ke memori M pada alamat yang terpilih Anggap input data adalah register R1 dan alamat tersimpan pada AR. Operasi write dapat disimbolkan sebagai: Write: M(AR) R1 Yang akan menyebabkan transfer informasi dari R1 ke memori dengan alamat yang ditentukan oleh register AR
Mikrooperasi Aritmetik Mikrooperasi merupakan operasi dasar yang terdapat pada data yang tersimpan dalam register Mikrooperasi diklasifikasikan dalam 4 kategori: Mikrooperasi transfer register Mikrooperasi aritmetika Mikrooperasi logika Mikrooperasi penggeseran (Shift)
Mikrooperasi Aritmetik Mikrooperasi aritmetika dasar: penjumlahan, pengurangan, increment, decrement, dan shift Mikrooperasi penjumlahan disimbolkan sebagai: R3 R1 + R2 menyatakan bahwa isi register R1 dijumlahkan dengan isi register R2 dan hasilnya ditransfer di register R3
Mikrooperasi Aritmetik Tabel Mikrooperasi Aritmetika Dasar tidak termasuk operasi perkalian dan pembagian karena lebih kompleks
Binary Adder Untuk mengimplementasikan mikroopersi penjumlahan dengan hardware, diperlukan register untuk menyimpan data sementara dan komponen digital yang membentuk operasi penjumlahan. Rangkaian digital yang digunakan untuk penjumlahan adalah full-adder. Rangkaian digital yang digunakan untuk menjumlahakan dua bilangan biner disebut dengan binary adder Binary adder dibentuk dari rangkaian full-adder yang di-kaskade-kan (disusun secara paralel). Carry output dari full-adder dihubungkan dengan input carry full-adder berikutnya
Binary Adder Rangkaian Binary Adder 4-bit
Binary Adder-Subtractor Pengurangan bilangan biner dapat dilakukan dengan komplemen Pengurangan A - B dapat dilakukan dengan penjumlahan A dengan 2’s complement dari B Penjumlahan dan pengurangan dapat dikombinasikan menjadi satu rangkaian bersama dengan menggunakan gerbang XOR pada tiap full-adder
Binary Adder-Subtractor Rangkaian Input M sebagai pengendali operasi
Binary Adder-Subtractor M = 0 sebagai adder Saat M = 0, diperoleh B 0 = B. Full adder menerima B dengan carry input 0 sehingga akan mengerjakan A plus B M = 1 sebagai subtractor Saat M = 1, diperoleh B 1 = B’ dan C0 = 1. Karena B’ + 1 merupakan operasi 2’s complement dari B, maka full adder akan mengerjakan operasi A - B
Binary Incrementer Mikrooperasi increment menambah satu ke bilangan yang ada pada register Contoh: nilai 0110 akan menjadi 0111 setelah diincrement Mikrooperasi dapat diimplementasikan dengan counter biner Cara yang lain: dapat diimplementasikan dengan menggunakan half-adder
Binary Incrementer Rangkaian Binary Incrementer
Rangkaian Aritmetik Mikrooperasi aritmetik dapat diimplentasikan dalam sebuah rangkaian aritmetik. Komponen dasar penyusunnya adalah paralel adder. Dengan mengontrol input data ke adder, memungkinkan untuk memperoleh operasi aritmetika yang berbeda
Rangkaian Aritmetik
Rangkaian Aritmetik Terdiri dari 4 full-adder dan 4 buah multiplekser untuk memilih operasi yang berbeda Terdapat 2 input 4 bit A dan B dan 4-bit output D. Input A terhubung langsung dengan input X pada adder. 4 bit input B terhubung dengan input multiplekser. Multiplekser juga menerima data komplemen B, logika ‘0’ dan ‘1’. Multiplekser dikendalikan oleh input selektor S1 dan S0.
Rangkaian Aritmetik Keluaran binary adder dihitung dari penjumlahan aritmetik berikut D = A + Y + Cin dengan A adalah bilangan biner 4-bit, Y adalah bilangan biner 4 bit. Cin adalah carry input. Dengan mengatur Y dan input seleksi S1 dan S0 dan membuat Cin ‘1’ atau ‘0’, dimungkinkan untuk membuat 8 mikrooperasi aritmetik
Rangkaian Aritmetik
Mikrooperasi Logika Merupakan operasi biner terhadap string atau bit yang disimpan pada register Sebagai contoh, mikrooperasi XOR terhadap register R1 dan R2 disimbolkan dengan pernyataan: P: R1 R1 R2 yang menyatakan bahwa mikrooperasi logika dieksekusi untuk setiap bit individual jika variabel kendali P = 1
Mikrooperasi Logika Contoh: Digunakan simbol spesial untuk mikrooperasi OR, AND, dan komplemen, yaitu ,
Mikrooperasi Logika Contoh: P + Q: R1 R2 + R3, R4 R5 R6 + menunjukkan penjumlahan aritmetik menunjukkan operasi OR
Mikrooperasi Logika
Mikrooperasi Logika Tabel Kebenaran untuk 16 Fungsi
Rangkaian Unit Logika S1 S0 Output (E) A AND B 1 A OR B A EXOR B NOT A
Aplikasi Mikrooperasi logika berguna untuk memanipulasi bit-bit secara individual atau sebagaian bit yang tersimpan pada register Dapat digunakan untuk memanipulasi nilai bit, delete kelompok bit tertentu, atau meng-insert-kan bit tertentu pada register Contoh-contoh berikut menunjukkan bit pada register A akan dimanipulasi dengan menggunakan mikrooperasi. Register A adalah register prosesor
Aplikasi - Selective-set Operasi selective-set membuat nilai bit pada register A bernilai ‘1’ dengan cara membuat bit ‘1’ pada register B Kedua operand dioperasikan OR
Aplikasi - Selective-complement Membalik (mengkomplemenkan) bit-bit register A dengan bit ‘1’ pada register B Kedua operand dioperasikan XOR
Aplikasi - Selective-clear Meng-clear bit-bit register A dengan nilai ‘1’ pada register B Mikrooperasi logika sebagai berikut
Aplikasi - Operasi Mask Meng-clear bit-bit register A dengan nilai bit ‘0’ pada register B Kedua operand dioperasikan AND
Aplikasi - Operasi Insert Memasukkan nilai baru ke dalam kelompok bit Dilakukan dengan cara masking dan kemudian meng-OR-kan dengan nilai yang diinginkan
Aplikasi - Clear Membandingkan dua register A dan B dan menghasilkan 0 jika dua bilangan sama
Mikrooperasi Geser Mikrooperasi geser digunakan untuk transfer data serial Juga digunakan bersama-sama dengan operasi aritmetika, logika dan pengolahan data lain Data pada register dapat digeser kiri atau kanan
Mikrooperasi Geser - Geser Logika Geser logika adalah transfer 0 melalui input serial Simbol: shl dan shr Contoh: R1 shl R1 R2 shl R2 merupakan mikrooperasi yang menggeser 1 langkah ke kiri isi register R1 atau menggeser 1 langkah ke kanan isi register R2
Mikrooperasi Geser - Geser Circular (rotasi) Merotasikan bit register melalui kedua ujungnya tanpa mengalami kehilangan informasi Dilakukan dengan menghubungkan output serial dengan input serialnya Menggunakan simbol: cil dan cir
Mikrooperasi Geser - Tabel
Mikrooperasi Geser - Penggeseran Aritmetik Merupakan mikrooperasi yang menggeser bilangan biner bertanda ke kiri atau ke kanan Arithmetic shift-left: mengalikan dengan 2 Arithmetic shift-right: membagi dengan 2 harus tidak mengubah bit tanda karena tanda bilangan harus sama saat dibagi atau dikalikan dua
Mikrooperasi Geser - Penggeseran Aritmetik Arithmetic Shift-Right Arithmetic Shift-Left: insert bit ‘0’ ke R0, dan geser demua bit ke kiri. Jika terjadi perubahan bit tanda berarti terjadi overflow. Overflow Vs dapat dideteksi dengan: Vs = 0 tidak overflow, Vs =1 overflow
Mikrooperasi Geser - Implementasi Hardware Implementasi dilakukan dengan menggunakan paralel load Informasi dapat ditransfer melalui register secara paralel dan kemudian digeser ke kiri ataupun ke kanan Dalam konfigurasi ini, diperlukan pulsa clock untuk memuat data ke register, dan clock lain untuk menginisiasi pergeseran
Mikrooperasi Geser - Implementasi Hardware
Arithmetic Logic Shift Unit Aritmetik, logika dan rangkaian penggeseran dapat dikombinasikan menjadi sebuah ALU dengan variabel selektor bersama
Arithmetic Logic Shift Unit
Arithmetic Logic Shift Unit
Diskusi Any Questions??