PSD Series #3: Register
1. Definisi
Setelah belajar mengenai komponen penyimpanan pada rangkaian sekuensial, ada pula yang namanya Register. Register itu pada intinya gabungan dari flip-flop tadi yang membentuk semacam vektor (Vektor disini semacam matriks ukuran 1 $\times$ N).
Sebenarnya saat kita belajar sequential circuit juga kita secara tidak langsung membuat register ini.
Tapi kalau N nya mulai membesar, tidak mungkin sampai membuat state diagram $2^n$, kalau N = 5, oke bisa buat K-Maps. Kalau N = 8, 🤔 Kalau N = 100 ? 🤔
Register ini pada intinya mempermudah operasi-operasi tersebut untuk N yang besar. Caranya dengan :
- Menggabungkannya dengan circuit combinational yang sudah pre-made Misalnya subtractor atau adder.
- Mungkin juga spesifikasi yang dibutuhkan sebetulnya bisa didapatkan dari individual cell registernya masing-masing (Setiap flip-flop hampir tidak berhubungan equationnya), sehingga bisa kita desain untuk satu saja, kemudian tinggal lakukan hal yang sama untuk setiap cellnya
- profit.
Flip-Flop upgrade
Register yang diinginkan harus bisa digunakan untuk baca tulis, sehingga komponennya perlu diberi enable. Salah satu solusi : Menggunakan 2 to 1 Multiplexer pada D Flip-Flop.
2. Register Transfers
Register ialah komponen penyimpanannya, kita juga bisa melakukan operasi pada data di dalam register tersebut, operasi-operasi dasar yang dapat dilakukan pada register disebut microoperations Contohnya :
- Load
- Count
- Shift
- Add
- OR / AND
- .
- .
- dsb
Register Notation
- Angka dan huruf menunjukkan register (Contoh : R1)
- Tanda kurung ( ) menunjukkan interval dalam register
- R1(1) artinya bit register ke-1
- R1(7:0) artinya bit register dari 0 sampai 7
- R1(L) artinya setengah yang penomoran lebih kecil
- R1(H) artinya setengah yang penomoran lebih besar
- Panah ← menunjukkan assignment
- R1 ← R2 artinya R1 diisi dengan data R2
- Koma , menunjukkan ada beberapa operasi disaat bersamaan
- R1 ← R2, R2 ← R1 artinya tukar R1 dan R2
- Kurung Siku [ ] menunjukkan alamat memori khusus

Conditional
Pada register, ada bagian Data path yaitu proses operasi registernya dan control yang menentukan kapan operasi tertentu dilakukan. Dinotasikan dengan titik dua :
K1 : (R1 ← R2) artinya Jika K1 = 1, maka R1 diisi dengan data R2.
Bagian contorl dapat pula berupa operasi boolean lain, apabila true, maka microoperation di kanan dilakukan, apabila tidak, maka sebaliknya.
More on Microoperations
Jenis-jenisnya ialah sebagai berikut.
- Transfer - Memindahkan data
- Arithmetic - Operasi aritmetika (+ - * /)
- Logic - Menggunakan operasi bitwise (∨ ∧ ⊕ ~)
- Shift - Shift left atau right
4. Data movement for Single Register
Untuk mengoperasikan register dibutuhkan komponen tambahan, yaitu struktur transfer.
Multiplexer Based Transfers
Multiplexer meruapakan komponen yang istilahnya bisa memilih, semacam switch case apabila diibaratkan dalam mata kuliah DDP. Design yang paling sering kita gunakan karena intuitif dan sederhana, termasuk saat membuat shift register dan counter ialah struktur yang ini.
Shift Register
Shift register cukup intuitif, pada intinya seperti passing state saja. Dibutuhkan latihan untuk memahaminya. Ada pula parallel load shift register. Parallel load artinya setiap komponen cell register, yaitu flip-flopnya bisa diisi dengan data dari luar. Triknya dengan memanfaatkan multiplexer ini.

Counter
Sesuai namanya, counter bisa menghitung naik, turun atau urutan lain. Counter dibagi menjadi dua jenis

- Ripple counter
- Clock hanya terhubung pada LSB bit nya (Paling kecil)
- Sisanya, outputnya terhubung ke clock dari flip-flopnya (Memanfaatkan properti edge triggered clock)
- Agak delay, tapi power consumptionnya ringan
- Synchronous Counter
- clock terhubung ke semua flip-flop.
- Menggunakan combinational logic.
- Memanfaatkan properti bahwa suatu bit menyala pada clock selanjutnya apabila bit-bit sebelumnya menyala semua.
- Berikut ialah contoh Synchronous Counter yang disusun secara serial dan paralel.


Register Cell Design
Perhatikan bahwa dalam mendesain register dengan ukuran N-Bit akan sangat sulit, sehingga kita tentu saja dalam beberapa kasus dapat mendesain cell registernya (1 Bit) dan kemudian membuat desain yang sama untuk bit-bit lainnya dalam sebuah register.
Control Input pada sebuah Register biasanya diberikan pada spesifikasi. Misalnya ada Load, Shift, Add (3 Jenis Operasi). Dapat dibuat beberapa alternatif control design. (Sebagai pemisah untuk menentukan operasi mana yang harus dilakukan sebuah register)
- Non Encoded Control inputs: Load, Shift, Add, Hold dapat diberikan semacam assignment seperti one hot, misal (000 untuk hold, 001 untuk Load, 010 untuk Shift, dan 100 untuk add)
- Encode: Dapat diberikan seperti counting order, misal (00 untuk Hold, 01 untuk Load dan 10 untuk Shift, dan 11 untuk Add)
Sisanya sama seperti mendesain flip-flop, dapat dicari state table dan excitation table. Berbeda pada tahap optimisasi. Karena akan dibuat desain yang sama untuk N-Bit serupa, dapat dibuat optimisasi menggunakan K-Maps, maupun Shared decoder. (Saran bacaan : Lab 7)
5. Data movement for Multiple Registers
Dedicated Multiplexer-Based Transfers

- Setiap register diberi satu N to 1 multiplexer dan satu wire keluar untuk menentukan mana register yang akan dibaca.
- Paling fleksibel, tapi costnya paling tinggi, bisa melakukan semua operasi paralel.
Multiplexer Bus-Based Transfers

- Setiap register dihubungkan kepada sebuah N to 1 multiplexer.
- Memiliki cost lebih rendah dari Dedicated Multiplexer tetapi lebih tinggi dari Three-state Bus
- Tidak bisa melakukan operasi paralel yang harus membaca atau meload lebih dari satu register. Namun bisa apabila satu register datanya distore ke beberapa register lain.
Three-State Bus

- Memiliki cost paling rendah, memanfaatkan properti Hi-Impedance yang tidak memiliki value, seperti sebuah open circuit.
- Tidak bisa melakukan operasi paralel yang harus membaca atau meload lebih dari satu register. Namun bisa apabila satu register datanya distore ke beberapa register lain.
6. Serial Transfers and Microoperations
Pada dasarnya, konsep serial transfer ialah mengerjakan setiap bit satu per satu, secara bergiliran, untuk mengerti konsepnya, dapat dimisalkan dengan serial adder. Cost gatenya murah untuk dapat menambahkan 2 bilangan yang sangat panjang.

Perhatikan bahwa FA akan menambahkan A0 dan B0, serta meletakkan hasilnya pada A3 di clock selanjutnya, sembari menggeser A dan B ke kanan (Shift Right, konsepnya ialah menambahkan A dan B hanya melalui input satu arah saja) (Saran Tontonan : Video 25)
Leave a Comment