WHAT'S NEW?
Loading...

STRUKTUR ALU, REGISTER, dan CPU INTERCONNECTION


Aritmetic Logic Unit (ALU)



PENGERTIAN 
Arithmatic Logical Unit (ALU), adalah salah satu bagian/komponen dalam sistem di dalam sistem komputer yang berfungsi melakukan operasi/perhitungan aritmatika dan logika (Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. ALU bekerja besama-sama memori, di mana hasil dari perhitungan di dalam ALU di simpan ke dalam memori.
Perhitungan dalam ALU menggunakan kode biner, yang merepresentasikan instruksi yang akan dieksekusi (opcode) dan data yang diolah (operand). ALU biasanya menggunakan sistem bilangan biner (two’s complement). ALU mendapat data dari register. Kemudian data tersebut diproses dan hasilnya akan disimpan dalam register tersendiri yaitu ALU.


STRUKTUR DAN CARA KERJA PADA ALU
ALU akan bekerja setelah mendapat perintah dari Control Unit yang terletak pada processor. Control Unit akan memberi perintah sesuai dengan komando yang tertulis(terdapat) pada register. Jika isi register memberi perintah untuk melakukan proses penjumlahan, maka PC akan menyuruh ALU untuk melakukan proses penjumlahan. Selain perintah, register pun berisikan operand-operand. Setelah proses ALU selesai, hasil yang terbentuk adalah sebuah register yang berisi hasil atau suatu perintah lainnya. Selain register, ALU pun mengeluarkan suatu flag yang berfungsi untuk memberi tahu kepada kita tentang kondisi suatu processor seperti apakah processor mengalami overflow atau tidak.
ALU (Arithmethic and Logic Unit) adalah bagian dari CPU yang bertanggung jawab dalam proses komputasi dan proses logika. Semua komponen pada CPU bekerja untuk memberikan asupan kepada ALU sehingga bisa dikatakan bahwa ALU adalah inti dari sebuah CPU. Perhitungan pada ALU adalah bentuk bilangan integer yang direpresentasikan dengan bilangan biner. Namun, untuk saat ini, ALU dapat mengerjakan bilangan floating point atau bilangan berkoma, tentu saja dipresentasikan dengan bentuk bilangan biner. ALU mendapatkan data (operand, operator, dan instruksi) yang akan disimpan dalam register. Kemudian data tersebut diolah dengan aturan dan sistem tertentu berdasarkan perintah control unit. Setelah proses ALU dikerjakan, output akan disimpan dalam register yang dapat berupa sebuah data atau sebuah instruksi. Selain itu, bentuk output yang dihasilkan oleh ALU berupa flag signal. Flag signal ini adalah penanda status dari sebuah CPU. Bilangan integer (bulat) tidak dikenal oleh komputer dengan basis 10. Agar komputer mengenal bilangan integer, maka para ahli komputer mengkonversi basis 10 menjadi basis 2. Seperti kita ketahui, bahwa bilangan berbasis 2 hanya terdiri atas 1 dan 0. Angka 1 dan 0 melambangkan bahwa 1 menyatakan adanya arus listrik dan 0 tidak ada arus listrik. Namun, untuk bilangan negatif, computer tidak mengenal simbol (-). Komputer hanya mengenal simbol 1 dan 0. Untuk mengenali bilangan negatif, maka digunakan suatu metode yang disebut dengan Sign Magnitude Representation. Metode ini menggunakan simbol 1 pada bagian paling kiri (most significant) bit. Jika terdapat angka 18 = (00010010)b, maka -18 adalah (10010010)b. Akan tetapi, penggunaan sign-magnitude memiliki 2 kelemahan. Yang pertama adalah terdaptnya -0 pada sign magnitude[0=(00000000)b; -0=(10000000)b]. Seperti kita ketahui, angka 0 tidak memiliki nilai negatif sehingga secara logika, sign-magnitude tidak dapat melakukan perhitungan aritmatika secara matematis. Yang kedua adalah, tidak adanya alat atau software satupun yang dapat mendeteksi suatu bit bernilai satu atau nol karena sangat sulit untuk membuat alat seperti itu. Oleh karena itu, penggunaan sign magnitude pada bilangan negatif tidak digunakan, akan tetapi diganti dengan metode 2′s complement. Metode 2′s complement adalah metode yang digunakan untuk merepresentasikan bilangan negatif pada komputer. Cara yang digunakan adalah dengan nilai terbesar dari biner dikurangin dengan nilai yang ingin dicari negatifnya. Contohnya ketika ingin mencari nilai -18, maka lakukan cara berikut:
1. ubah angka 18 menjadi biner (00010010)b
2. karena biner tersebut terdiri dari 8 bit, maka nilai maksimumnya adalah 11111111
3. kurangkan nilai maksimum dengan biner 18 -> 11111111 – 00010010 = 11101101
4. kemudian, dengan sentuhan terakhir, kita tambahkan satu -> 11101101 + 00000001 = 11101110
Dengan metode 2′s complement, kedua masalah pada sign magnitude dapat diselesaikan dan komputer dapat menjalankan. Namun, pada 2′s complement, nilai -128 pada biner 8 bit tidak ditemukan karena akan terjadi irelevansi.


Struktur Register 

Pengertian Register
Register merupakan sebagian memori dari mokroprosesor yang dapat diakses dengan kecepatan yang sangat tinggi.Sebuah register adalah sebuah tempat penampungan semantara untuk data-data yang akan diolah oleh prosesor, dan dibentuk oleh 16 titik elektronis didalam chip mikroprosesor itu sendiri.dengan adanya penampungan data sementara ini,proses pengolahan akan bisa dilakukan secara cepat di bandingkan apabila data-data tersebut harus diambil langsung dari lokasi-lokasi memori. Register adalah sebagian kecil memory komputer yang dipakai untuk tempat penampungan data.Data yang terdapat dalam register dapat diproses dalam berbagai operasi dengan melihat berapa besar kemampuan register tersebut (8 atau 16 bit).
Jenis-Jenis Register
Register yang di gunakan oleh mikroprosesor di bagi menjadi 4 bagian dengan tugasnya yang berbeda-beda  yaitu:
Segment Registers
Merupakan registers 16 bit yang berguna mencatat alamat sebagaii penunjuk lokasi data di memory. Registers ini terdiri dari 20 jalur alamat external tetapi memiliki 16 bit alamat internal.
Segmen register ini memiliki empat bagian yaitu :
·         Register CS (Code Segment)
Code segmen berfungsi untuk mencatat segmen dari kode program/ instruksi atau digunakan untuk menunjukkan tempat dari segmen yang sedang aktif.  Register CS berpasangan dengan register IP (Instruction Pointer) dalam format CS:IP.
·         Register DS (Data Segment)
Data segmen biasanya digunakan untuk menunjukkan tempat segmen dimana data-data disimpan atau Menyimpan alamat dari segment dimana data terletak.
·         Register SS (Stack Segment)
Stack segmen adalah berfungsi untuk menyimpan alamat dari segmen dimana data terletak atau  Menyimpan alamat segment memori yang dipergunakan sebagai stack.
·         Register ES (Extra Segment)
Extra segmen adalah sesuai dengan namanya adalah suatu register bonus yang tidak yang menpunyai suatu tugas khusus, yang berfungsi untuk menyimpan alamat tambahan: misalnya alamat display, alamat sistem operasi, dan sebagainya.
Pointer dan Index Register
Merupakan register yang digunakan sebagai penunjuk(pointer) terhadap suatu lokasi di memory. Register-register ini berukuran 16 bit.
·         Register SP (Stack Pointer, 16 bit)
Fungsi: Digunakan untuk operasi stack seperti menyimpan alamat return saat memanggil subroutine. SP merupakan register yang secara implisit digunakan oleh perintah PUSH dan POP yaitu menyimpan dan mengambil kembali dari stack.
·         Register BP (Base Pointer, 16 bit)
Fungsi: Sebagai penunjuk base dalam stack yang disediakan untuk penyimpanan data. BP juga digunakan dalam komunikasi dengan bahasa pemrograman misalnya Assembler dan C.
·         Register SI dan DI (Source Index dan Destination index, 16 bit)
Fungsi: Menyimpan nilai-nilai offset dalam segment data memori pada saat bersangkutan.

General Purpose Register
Register 16 bit yang terdiri dari AX, BX, CX dan DX. Sebagai pilihan lain dapat digunakan AH, BH, CH dan DH (bagian tertinggi) yang masing-masing 8 bit dan juga bisa digunakan AL, BL, CL, dan DL (bagian terendah) yang masing-masing 8 bit.
·         Accumulator Register AX
Fungsi: Sebagai akumulator dan berhubungan dengan jenis-jenis operasi khusus seperti Aritmetika, In/Out, Shift, Logic, Rotate, dan operasi desimal berkode biner.
·         Base Register BX
Fungsi: Sebagai register base untuk mereferensi alamat memori. Operasi yang dapat dilakukan adalah Rotate, Logic, Shift, dan Aritmetika.
·         Counter Register CX
Fungsi: Sebagai pencacah implisit dengan instruksi tertentu, misalnya terhadap perintah Loop dan operasi string. Counter naik jika direction flag bernilai 0, dan counter turun jika direction flag bernilai 1.
·         Data Register DX
Fungsi: Menyimpan alamat port I/O selama operasi I/O tertentu, baik alamat port 8 bit maupun 16 bit. Digunakan juga dalam operasi perkalian dan pembagian.
Flag Registers
Merupakan register berukuran 1 bit yang menunjukkan kondisi dari suatu keadaan (ya/tidak atau 0/1)
·         (Carry Flag)
Tugasnya: Dimana sebuah carry out atau borrow, jika hasilnya adalah bit tertinggi (nilai 1).
·         PF (Parity Flag)
Yaitu tugasnya Menset (nilai 1), jika instruksi menghasilkan sebuah angka genap (even parity).
·         AF (Auxiliary Flag)
Tugas: Digunakan oleh instruksi pegaturan desimal.
·         ZF(Zero Flag)
Tugasnya: Menset (nilai 1), jika hasil instruksi adalah 0.
·         SF (Sign Flag)
Tugasnya: Menset (nilai 1), jika hasilnya adalah negatif dan bernilai 0 jika positif. Kontrol Flag terdiri dari:
·         OF (Overflow Flag)
Tugasnya: Menunjukkan sebuah operasi yang tidak benar yaitu merubah hasil daripada tanda bit..
·         IF (Interrupt Enable Flag)
Tugasnya: Jika diset (nilai 1) dapat melakukan operasi interupsi dan sebaliknya bila bernilai 0, maka interupsi tidak dapat dilakukan.
·         DF (Direction Flag)
Tugasnya yaitu: Mengontrol arah dari operasi string. Jika DF=1, maka register SI dan DI nilainya menurun (decrement); jika DF=0, maka register DI dan SI nilai menaik (increment). Register ini digunakan untuk instruksi-instruksi MOVS, MOVSB, MOVSW, CMPS, CMPSB, dan CMPSW.
·         TF (Trap Flag)
Di gunakan terutama untuk Debugging, dengan operasi step by step.
·         Flag A (auxiliary)
Digunakan untuk menyesuaikan nilai AL  pada penjumlahan atu pengurangan suatu bunary code desimal apkah terjadi carry atau borrow.
·   Flag C (carry)  bernilai 1 bila carry pada operasi penjumlahan atau terjadi borrow pada operasi pengurangan.
·         Flag D (direction) digunakan pada operasi string untuk menunjukkan orah proses .
·         Flag I (interrupt) bila bit bernilai 0 maka cpu akan mengabaikan interrupt yang terjadi.
·         Flag O (overlow) bernilai 1 bila terjadi overlow pada operasi aritmatika.

CPU Interconnection
CPU interconnection, adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register – register dan juga dengan bus – bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan/keluaran  
Ini merupakan contoh  Strukteu Detail Internal CPU.

1 komentar: Leave Your Comments