Selasa, 13 Januari 2015

CPU dan SISTEM BUS

CPU (Central Processing Unit)

Pengertian CPU
CPU berfungsi sebagai pusat pengolahan dan eksekusi data berdasarkan routine-routine program yang diberikan padanya. CPU mengendalikan seluruh sistem komputer sehingga sebagai konsekuensinya memiliki koneksi ke seluruh modul yang menjadi bagian sistem komputer.

ALU (Arithmatic and Logical Unit)
            ALU melaksanakan seluruh perhitungan (penambahan, pengurangan, perkalian atau pembagian) dan operasi logika. ALU berfungsi melakukan operasi aritmatik dan logika yang terbagi menjadi 4 kelas, yaitu desimal arithmatic, fixed point arithmatic, floating point arithmatic, dan logic operation. Terdapat 2 macam bilangan yang ditangani oleh prosesor, yaitu bilangan fixed point dan bilangan floating point.
Tugas ALU antara lain:
1.      Bertugas untuk membentuk fungsi-fungsi pengolahan data komputer
2.      ALU sering disebut mesin bahasa (machine language) karena bagian ini mengerjakan instruksi-instruksi bahasa mesin yang diberikan padanya
3.      ALU terdiri dari dua bagian, yaitu unit aritmatika dan unit logika boolean, yang masing-masing memiliki spesifikasi tugas tersendiri.

Bilangan Fixed Point
            Bilangan fixed point adalah bilangan yang memiliki nilai digit spesifik pada salah satu titik desimalnya. Hal ini akan membatasi jangkauan nilai yang mungkin untuk angka-angka tersebut. Namum, hal ini justru dapat dihitung oleh prosesor.

Bilangan Floating Point
            Bilangan floating point adalah bilangan yang diwujudkan dalam notasi ilmiah. Yaitu berupa angka pecahan desimal dikalikan dengan angka 10 pangkat bilangan tertentu, misalnya: 705,2944 x 109, atau 4,3 x 10-7. Cara penulisan angka seperti ini merupakan cara singkat untuk menuliskan angka yang nilainya sangat besar maupun sangat kecil. Bilangan seperti ini banyak digunakan dalam pemrosesan grafik dan kerja ilmiah. Proses arithmatika bilangan floating point memang lebih rumit dan prosesor membutuhkan waktu yang lebih lama untuk mengerjakannya, karena mungkin akan menggunakan beberapa siklus detak (clock cycle) prosesor.
            Oleh karena itu, beberapa jenis komputer menggunakan prosesor sendiri untuk menangani bilangan floating point. Prosesor yang khusus menangani bilangan floating point disebut Floating Point Unit (FPU) atau disebut juga dengan nama math co-processor. FPU dapat bekerja secara pararel dengan prosessor. Dengan demikian proses perhitungan bilangan floating point dapat berjalan lebih cepat. Keberadaan FPU integrated (bersatu dengan prosessor) sudah menjadi kebutuhan standart komputer masa kini, karena banyak sekali aplikasi-aplikasi yang beroperasi menggunakan bilangan floating point.

CU (Control Unit)
            Unit kontrol adalah bagian dari prosessor yang mampu mengatur jalannya program. Komponen ini terdapat dalam semua CPU. CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. Tanggungjawab unit kontrol adalah mengambil instruksi-instruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU (Arithmatic Logic Unit). Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output.
Tugas dari unit kendali (control unit) ini adalah:
a)      Mengatur dan mengendalikan alat-alat input dan output
b)      Mengambil instruksi-instruksi dari memori utama
c)      Mengambil data dari memori utama (jika diperlukan)untuk diproses
d)     Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika
e)      Mengawasi kerja ALU
f)       Menyimpan hasil proses ke memori utama

Macam-macam CU (Control Unit):
1.      Single-Cycle CU (Control Unit)
Proses di CU ini hanya terjadi dalam satu clock cycle, artinya setiap instruksi ada pada satu cycle. Maka dari itu tidak memerlukan state. Clock cycle harus mempunyai panjang yang sama untuk setiap jenis instruksi. Ada dua bagian pada unit control ini, yaitu proses men-decode opcode untuk mengelompokkannya menjadi 4 macam instruksi (yaitu di gerbang AND), dan pemberian sinyal kontrol berdasarkan jenis instruksinya (yaitu gerbang OR). Sinyal kontrol yang dihasilkan bergantung pada jenis instruksinya.
Empat jenis instruksi ini adalah:
·         R-format ( berhubungan dengan register)
·         lw ( membaca memori)
·         sw (menulis memori)
·         beg (branching)

2.      Multi-Cycle CU (Control Unit)
Berbeda dengan unit control yang single-cycle, unit control multi-cycle lebih memiliki banyak fungsi. Dengan memperhatikan state dan opcode, fungsi boolean dari masing-masing output control line dapat ditentukan. Masing-masing akan menjadi fungsi dari 10 buah input logic. Pada cycle ini, sinyal kontrol tidak lagi ditentukan dengan melihat pada bit-bit instruksinya. Bit-bit opcode memberitahukan operasi apa yang selanjutnya akan dijalankan CPU, bukan instruksi cycle selanjutnya.

REGISTER
            Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data saat diolah ataupun data untuk pengolahan selanjutnya. Jika dianalogikan, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak bisa diibaratkan sebagai CPU, yang berisi ingatan-ingatan, suatu kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.

a.      Set register
Apabila bit ini bernilai 0, maka register data dapat diupdate setiap detiknya, namun apabila bit ini bernilai 1, maka register data tidak dapat diupdate. Bit ini tidak akan berpengaruh terhadap kondisi RESET

b.      Register-register kontrol
Register-register untuk komunikasi dengan unit-unit diluar CPU:
·         MAR (Memory Address Register)
Digunakan untuk menyatakan alamat lokasi operand dalam memori yang akan dibaca atau ditulis oleh CPU
·         MBR /  MDR (Memory Buffer atau Data Register)
Merupakan tempat penyimpanan (sementara) data yang baru saja dibaca atau data yang akan dituliskan ke memori
·         PC (Program Counter)
Digunakan untuk menyatakan alamat lokasi instruksi yang akan dibaca oleh CPU dari memori

Jenis-jenis register:
a)      Register data
Digunakan untuk menyimpan angka-angka dalam bilangan bulat  (integer)
b)     Register alamat
Digunakan untuk menyimpan alamat-alamat memori dan juga untuk mengakses memori
c)      Register general purpose
Digunakan untuk menyimpan angka dan alamat secara sekaligus
d)     Register floating point
Digunakan untuk mnyimpan angka-angka bilangan titik mengambang (floating point)
e)      Register konstanta (constant register)
Digunakan untuk menyimpan angka-angka tetap yang hanya dapat dibaca (bersifat read – only)
f)       Register vektor
Digunakan untuk menyimpan hasil pemprosesan vektor yang dilakukan  oleh prosesor SIMD) 
g)      Register special purpose
Digunakan untuk menyimpan data internal prosesor, seperti halnya instruction pointer, stack pointer, dan status 
h)     Register yang spesifik terhadap model mesin (mechine specific register)
digunakan untuk menyimpan data internal prosesor  atau pengaturan yang berkaitan dengan prosesor itu sendiri

CACHE MEMORY

            Cache berasal dari kata cash yakni sebuah tempat penyimpanan atau tempat penyimpanan sementara. Sesuai definisi tersebut Cache Memory adalah tempat menyimpan data sementara. Cache Memory ini terletak antara register dan memory utama sehingga pemrosesan data tidak langsung mengacu pada memory utama. Penggunaan cache digunakan untuk meminimalisir terjadinya bottleneck dalam aliran data antara prosesor dan RAM. Sedangkan dalam terminologi software, istilah ini merujuk pada tempat penyimpanan sementara untuk beberapa file yang sering diakses (biasanya diterapkan dalam network).

Jenis-jenis cache memory
Cache umumnya terbagi menjadi beberapa jenis seperti L1 cache, L2 cache dan L3 cache. Che yang dibangun kedalam CPU itu sendiri disebut sebagai level 1 (L1) cache. Cache yang berada dalam sebuah chip yang terpisah yang terpisah disebelah CPU disebut Level 2 (L2) cache. Beberapa CPU memiliki keduanya, L1 cache dan L2 built-in dan menugaskan chip terpisah sebagai cache Level 3 (L3) cache. Cache yang dibangun dalam CPU lebih cepat daripada cache yang terpisah. Namun, cache terpisah masih sekitar dua kali lebih cepat dari Random Access Memory (RAM). Cache lebih mahal daripada RAM tetapi mother board dengan built-in cache sangat baik untuk memaksimalkan kinerja sistem.

Fungsi dan manfaat cache memory
            Cache berfungsi sebagai tempat penyimpanan sementara untuk data atau instruksi yang diperlukan oleh prosessor. Cache juga berfungsi untuk mempercepat akses data pada komputer karena cache menyimpan data/informasi yang telah diakses oleh suatu buffer, sehingga meringankan kerja prosesor. Manfaat lain dari cache memory adalah bahwa CPU tidak harus menggunakan sistem bus motherboard untuk mentransfer data.setiap kali data harus melewati bus sistem, kecepatan transfer data memperlambat kemampuan motherboard. CPU dapat memproses data lebih cepat dengan menghindari hambatan yang diciptakan oleh sistem bus.

VIRTUAL MEMORY
Virtual memory adalah sebuah sistem yang digunakan oleh sistem operasi untuk menggunakannya sebagai memori sekunder yaitu hard-disk seolah-olah ia menggunakannya sebagai memori internal/utama (RAM) fisik yang terpasang didalam sebuah sistem komputer. Sistem ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas di dalam hard drive yang disebut dengan page file. Proses pemakaian virtual memory di windows umumnya dapat dilihat di task manager.


SISTEM BUS
Inti sebuah Motherboard (chipset) adalah beberapa bus yang menghantarkan sinyal antar masing-masing komponen. Bus dapat disebut sebagai lintasan umum / bersama yang digunakan untuk transfer data. Untuk komunikasi data, jalur ini dapat juga untuk komunikasi dua buah komputer atau lebih. Prosesor, memori utama, dan perangkat I/O dapat diinterkoneksikan dengan menggunakan bersama, yang fungsi utamanya adalah menyediakan jalur komunikasi untuk transfer data. Bus tersebut menyediakan jalur yang diperlukan untuk mendukung interupt dan arbitrasi.
1.      Penghubung keseluruh komponen komputer dalam menjalankan tugasnya
2.      Komponen komputer:
·         CPU
·         Memori
·         Perangkat I/O
·         BUS
Bus adalah jalur komunikasi suatu set kabel tunggal yang digunakan untuk menghubungkan berbagai sub sistem.

Bus Arbitrasi
Bus arbitrasi adalah proses memilih perangkat berikutnya sebagai bus master (perangkat yang diijinkan untuk menginisiasi data pada bus setiap saat) dan menstransfer bus mastership kepsds perangkat tersebut, bus arbiter dapat berupa prosesor atau unit terpisah yang terhubung ke bus. Terdapat dua pendekatan yang dapat diterapkan untuk bus arbi trasi. Pertama, Centralized Arbitration merupakan sebuah bus arbital tunggal melakukan arbitration yang diperlukan. Kedua, Distributed Arbitration yakni semua perangkat berpartisipasi dalam pemilihan bus master berikutnya.

Bus Prosesor
Bus yang diidentifikasikan oleh sinyal pada sinyal chip prosesor tersebut. Perangkat yang memerlukan koneksi dengan cepat dengan kecepatan sangat tinggi ke prosesor, seperti main memory dapat dihubungkan langsung ke bus ini. Motherboard biasanya menyediakan bus lain yang lebih banyak perangkat. Dua bus yang dapat diinterkoneksikan oleh satu circuit yaitu bridge yang mentranslasikan sinyal dan protokol satu bus menjadi lainnya. Struktur bus terikat erat dengan arsitektur prosesor, serta juga tergantung pada karakteristik chip prosesor.

Interkoneksi Bus – Struktur Bus
            Sebuah bus biasanya terdiri atas beberapa saluran. Sebagai contoh: bus data terdiri atas 8 saluran sehingga dalam satu waktu dapat mentransfer data 8 bit. Secara umum fungsi saluran bus dikategorikan dalam tiga bagian, yaitu:
·         Saluran data
·         Saluran alamat
·         Saluran kontrol

Saluran Data
            Lintasan bagi perpindahan data antar modul. Secara kolektif lintasan ini disebut bus data. Umumnya, jumlah saluran terkait dengan panjang word, misalnya 8, 16, 32 saluran. Tujuan: agar mentransfer word dalam sekali waktu. Jumlah saluran dalam bus dapat dikatakan lebar bus, dengan satuan bit, misal lebar bus 16 bit.

Saluran Alamat (Address Bus)
a)      Digunakan untuk menspesifikasikan sumber dan tujuan data pada bus data
b)      Digunakan untuk mengirim alamat word pada memori yang akan diakses CPU
c)      Digunakan untuk saluran alamat perangkat modul komputer saat CPU mengakses suatu modul
d)     Semua peralatan yang terhubung dengan sistem komputer, agar dapat diakses harus memiliki alamat
Contoh: mengakses port I/O, maka port I/O harus memiliki alamat hardwarenya

Saluran Kontrol (Control Bus)
            Digunakan untuk mengontrol bus data, bus alamat dan seluruh modul yang ada. Karena bus data dan bus alamat digunakan oleh semua komponen maka diperlukan suatu mekanisme kerja yang dikontrol melalui bus kontro            l ini.
Sinyal-sinyal kontrol terdiri atas:   
·         Sinyal pewaktuan berfungsi untuk menandakan validitas data dan alamat
·         Sinyal perintah berfungsi membentuk suatu operasi

Type Bus
1.      Dedicated
Penggunaan alamat terpisah dari jalur
Keuntungan    : Throughtput yang tinggi, karena kemacetan lalu lintas kecil
Kerugian         : meningkatnya ukuran dan biaya sistem

2.      Multiplexed
Penggunaan saluran yang sama untuk berbagai keperluan
Keuntungan    : memerlukan saluran yang lebih sedikit, menghemat ruang dan biaya
Kerugian         : diperlukan rangkaian yang lebih komplek untuk setiap modul


Sumber:


ARSITEKTUR SET INSTRUKSI



Karakteristik  dan fungsi set instruksi
Operasi dari CPU ditentukan oleh instruksi-instruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut sebagai instruksi mesin (mechine instruction) atau instruksi komputer (computer instruction).
Kumpulan dari instruksi-instruksi yang berbeda yang dapat dijalankan oleh CPU disebut set instruksi (instruction set).

Elemen-elemen dari set instruksi mesin
1.      Operation Code (opcode)     : menentukan operasi yang akan dilaksanakan
2.      Source Operand Reference  : merupakan input bagi operasi yang akan dilaksanakan
3.      Result Operand Reference   : merupakan hasil dari operasi yang dilaksanakan
4.      Nex Instruction reference     : memberitahu CPU untuk mengambil (fetch) instruksi
   Berikutnya setelah instruksi yang dijalankan selesai

Jenis-jenis Instruksi:
1.      Data Processing         : Arithmetic dan logic Instructions
2.      Data storage               : Memory Instructions
3.      Data movement         : I/O Instructions
4.      Control                       : Test and Branch Instruction

Transfer Data
·         Menetapkan lokasi operand sumber dan operand tujuan
·         Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack
·         Menetapkan panjang data yang dipindahkan
·         Menetapkan mode pengalamatan

Tindakan CPU untuk melakukan transfer data adalah:
a.       Memindahkan data dari satu lokasi ke lokasi lain.
b.      Apabila memori dilibatkan:
·         Menetapkan alamat memori
·         Menjalankan transformasi alamat memori virtual ke alamat memori aktual
·         Mengawali pembacaan/penulisan memori

Operasi set instruksi untuk transfer data:
a.       MOVE                        : memindahkan word atau blok dari sumber ke tujuan
b.      STORE                      : memindahkan word dari prosesor ke memori
c.       LOAD                                    : memindahkan word dari memori ke prosesor
d.      EXCHANGE                        : menukar isi sumber ke tujuan
e.       CLEAR/RESET       : memindahkan word 0 ke tujuan
f.       SET                            : memindahkan word 1 ke tujuan
g.      PUSH                         : memindahkan word dari sumber ke bagian paling atas stack
h.      POP                            : memindahkan word dari bagian paling atas sumber

INPUT/OUTPUT
1.      Tindakan CPU untuk melakukan Input/Output:
a.       Apabila memori mapped I/O maka menentukan alamat memory mapped
b.      Mengawali perintah ke modul I/O

2.      Operasi set instruksi Input/Output:
a.       INPUT                 : memindahkan data dari perangkat I/O tertentu ke tujuan
b.      OUTPUT             : memindahkan data dari sumber tertentu ke perangkat I/O
c.       START I/O          : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
d.      TEST I/O             : memindahkan informasi dari sistem I/O ke tujuan

LOGICAL
1.      Tindakan CPU sama dengan arithmetic
2.      Operasi set instruksi untuk operasi logical:
a.      AND, OR, NOT, EXOR
b.      COMPARE         : melakukan perbandingan logika
c.       TEST                    : menguji kondisi tertentu
d.      SHIFT                  : operand menggeser ke kiri atau kanan menyebabkan kostanta pada ujung bit
e.       ROTATE             : operand menggeser ke kiri atau kanan dengan ujung yang terjalin

ARITHMETIC
1.      Tindakan CPU untuk melakukan operasi arithmetic
a.       Transfer data sebelum atau sesudah
b.      Melakukan fungsi dalam ALU
c.       Menset kode-kode kondisi dan flag

2.      Operasi set instruksi untuk arithmetic
a.       ADD                     : penjumlahan
b.      SUBTRACT        : pengurangan
c.       MULTIPLY        : perkalian
d.      DEVIDE              : pembagian
e.       ABSOLUTE
f.       NEGATIVE
g.      DECREMENT
h.      INCREMENT
Huruf e sampai h merupakan instruksi operand tunggal

Unit Set Instruksi
a.      Pengolahan data (data processing)
Meliputi operasi-operasi aritmatika dan logika, operasi aritmatika memiliki kemampuan komputansi untuk pengolahan data numerik, sedangkan instruksi logika beroperasi terhadap bit-bit, bukannya sebagai bilangan, sehingga instruksi ini memiliki kemampuan untuk pengolahan data lain.

b.      Perpindahan data (data movement)
Berisi instruksi perpindahan data antar register maupun modul I/O untuk dapat diolah oleh CPU maka diperlukan operasi-operasi yang bertugas memindahkan data operand yang diperlukan.

c.       Penyimpanan data (data storage)
Berisi instruksi-instruksi penyimpanan ke memori, instruksi penyimpanan sangat penting dalam operasi komputasi. Karena data tersebut akan digunakan untuk operasi berikutnya, minimal untuk ditampilkan pada layar harus diadakan penyimpanan walaupun sementara.

d.      Control aliran program (program flow control)
Berisi instruksi pengontrolan operasi dan percabangan, instruksi berguna untuk pengontrolan status dan mengoperasikan percabangan ke set instruksi lain.

Teknik Pengalamatan
            Mode pengalamatan merujuk pada bagaimana pemrogram mengalamati suatu lokasi memori. Setiap mode pengalamatan memberikan memberikan fleksibilitas khusus yang sangat penting. Mode pengalamatan ini meliputi immediate addressing, direct addressing, dan indirect addressing.
1.      Immediate Addressing
Mode pengalamatan immediate addressing sangat umum dipakai karena harga yang akan disimpan dalam memori langsung mengikuti kode operasi dalam memori. Dengan kata lain, tidak diperlukan pengambilan harga dari alamat lain untuk disimpan. Contohnya: MOV A, #20h dalam instruksi tersebut, akumulator akan diisi dengan harga yang langsung mengikutinya, dalam hal ini 20h. Mode ini sangatlah cepat karena harga yang dipakai langsung tersedia.  

2.      Direct Addressing  
Dalam mode pengalamatan direct addressing, harga yang akan dipakai diambil langsung dalam alamat memori lain. Contohnya: MOV A, 30h dalam instruksi ini akan dibaca data dari RAM internal dengan alamat 30h dan kemudian disimpan dalam akumulator. Mode pengalamatan ini cukup cepat, meskipun harga yang didapat tidak langsung seperti immediate, namun cukup cepat karena disimpan dalam RAM internal. Demikian pula akan lebih mudah menggunakan mode ini daripada mode immediate karena harga yang didapat bisa dari lokasi memori yang mungkin variabel.

3.      Indirect Addressing
Mode pengalamatan indirect addressing sangat berguna karena dapat memberikan fleksibilitas tinggi dalam mengalamati suatu harga. Mode ini pula satu-satunya cara untuk mengakses 128 byte lebih dari RAM internal pada keluarga 8052. Contoh: MOV A, @R0 dalam instruksi tersebut, 89C51 akan mengambil harga yang berada pada alamat memori yang ditunjukkan oleh isi dari R0 dan kemudian mengisikannyake akumulator.





DESAIN SET INSTRUKSI

            Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya adalah:
1.      Kelengkapan set instruksi
2.      Ortogonalitas (sifat independensi instruksi)
3.      Kompatibilitas:
·         Source Code Compability
·         Object Code Compability

Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut:
1.      Operation Repertoire
Berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit operasinya
2.      Data Types
Tipe/jenis data yang dapat olah instruction format: panjangnya, banyaknya alamat, dsb.
3.      Register
Banyaknya register yang dapat digunakan
4.      Addressing
Mode pengalamatan untuk operand

Jenis-jenis Operand
a.      Addresses
b.     Numbers :
·         Integer or fixed point
·         Floating point
·         Decimal (BCD)                                  
c.      Characters :
·         ASCII
·         EBCDIC
d.     Logical data : bila data berbentuk binary 0 dan 1


Sumber :