Selasa, 16 Januari 2018



Struktur dan Fungsi CPU
Komputer adalah sebuah sistem yang berinteraksi dengan cara tertentu dengan dunia luar. Interaksi dengan dunia luar dilakukan melalui perangkat peripheral dan saluran komunikasi. Dalam artikerl kali ini akan banyak dikaji seputar struktur internal komputer. Perhatikan gambar dibawah ini terdapat empat struktur utama:
Komponen yang paling menarik namun paling kompleks adalah CPU. Struktur CPU terlihat pada gambar diatas, dengan struktur utamanya adalah :
1.    Control Unit
Control unit berfungsi untuk mengontrol operasi CPU dan mengontrol komputer secara keseluruhan. Unit kontrol yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU.CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi 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. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah :
·         Mengatur dan mengendalikan alat-alat input dan output.
·         Mengambil instruksi-instruksi dari memori utama.
·         Mengambil data dari memori utama (jika diperlukan) untuk diproses.
·         Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
·         Menyimpan hasil proses ke memori utama.
2.    Arithmetic And Logic Unit (ALU)
ALU bertugas membentuk fungsi – fungsi pengolahan data komputer. ALU sering disebut  mesin bahasa  (machine language) karena bagian ini mengerjakan instruksi – instruksi bahasa mesin yang diberikan padanya. Seperti istilahnya, ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean, yang masing – masing memiliki spesifikasi tugas tersendiri.
ALU dapat melakukan 4 macam operasi arithmetika matematika yaitu : penjumlahan, pengurangan, pembagian dan perkalian, selain itu juga dapat melakukan operasi logika yang biasannya berisi operasi perbandingan.
Tiga kondisi yang dapat ditest oleh operasi logika :
·         Equal-to condition (=)
·         Less-than condition (<)
·         Greather-than condition (>)
3.    Register
Register berfungsi sebagai penyimpan internal bagi CPU. Registers, adalah media penyimpan internal CPU yang digunakan saat proses pengolahan data. Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data saat diolah ataupun data untuk pengolahan selanjutnya. Register dapat dikategorikan menjadi 2 : register yg terlihat pemakai (pemrogram) dan register untuk kendali & status.
a.       Register yang Terlihat Pemakai (Pemogram)
Pemrogram dapat memeriksa isi dari register-register tipe ini. Beberapa instruksi disediakan untuk mengisi (memodifikasi) register tipe ini. Terdiri dari 2 jenis:
-Register Data : menyimpan suatu nilai untuk beragam keperluan
  1. General purpose register, digunakan untuk beraneka ragam keperluan pada suatu instruksi mesin yang melakukan suatu operasi terhadap data.
  2. Special purpose register, digunakan untuk menampung operasi floating point, menampung limpahan operasi penjumlahan atau perkalian.
 -Register Alamat: berisi alamat data di memori utama, alamat instruksi di memori utama,bagian alamat yang digunakan dalam penghitungan alamat lengkap:
  1. Register Indeks (index register)
Pengalamatan berindeks merupakan salah satu mode pengalamatan popular. Pengalamatan melibatkan penambahan indeks ke nilai dasar untuk memperoleh alamat efektif
  1. Register penunjuk segmen (segment pointer register)
Pada pengalamatan bersegmen, memori dibagi menjadi segmen-segmen. Segmen berisi satu blok memori yang panjangnya dapat bervariasi.Untuk mengacu memori bersegmen digunakan pengacuan terhadap segmen dan offset di segmen itu. Register pengalamatan bersegmen sangat penting dalam manajemen memori.
  1. Register penunjuk stack (stack pointer register)
Instruksi yang tak memerlukan alamat karena alamat operan ditunjuk register penunjuk stack. Operasi-operasi terhadap stack :
·         instruksi pop : mengambil data dari puncak stack.
·         instruksi push : menyimpan data pada stack, dengan meletakkan data di puncak stack
  1. Register penanda (flag register)
Isi register merupakan hasil operasi dari pemroses. Register berisi kondisi-kondisi yang dihasilkan pemroses berkaitan dengan operasi yang baru saja dilaksanakan. Register ini terlihat oleh pemakai tapi hanya dapat diperbaharui oleh peroses sebagai dampak (efek) operasi yang dijalankannya.
b. Register untuk Kendali & Status
Digunakan untuk mengendalikan operasi pemroses, kebanyakan tidak terlihat oleh pemakai. Sebagian dapat diakses dengan instruksi mesin yang dieksekusi dalam mode kontrol atau kernelsistem operasi.
  • Register untuk alamat dan buffer
Register untuk alamat dan buffer, terdiri dari :
  1. MAR (Memory Address Register) : Untuk mencatat alamat memori yang akan diakses (baik yang akan ditulisi maupun dibaca)
  2. MBR (Memory Buffer Register) : Untuk menampung data yang akan ditulis ke memori yang alamatnya ditunjuk MAR atau untuk menampung data dari memori (yang alamatnya ditunjuk oleh MAR) yang akan dibaca.
  3. I/O AR (I/O Address Register) : Untuk mencatat alamat port I/O yang akan diakses(baik akan ditulisi / dibaca).
  4. I/O BR (I/O Buffer Register) : Untuk menampung data yang akan dituliskan ke port yang alamatnya ditunjuk I/O AR atau untuk menampung data dari port (yang alamatnya ditunjuk oleh I/O AR) yang akan dibaca.
  • Register untuk eksekusi instruks
    1. PC (Program Counter) : mencatat alamat memori dimana instruksi di dalamnya akandieksekusi
    2. IR (Instruction Register) : menampung instruksi yang akan dilaksanakan
  • Register untuk informasi status
Register ini berupa satu register / kumpulan register. Kumpulan register ini disebut PSW (Program Status Word). PSW berisi kode-kode kondisi pemroses ditambah informasi-informasi status lain, yaitu :
  • Sign. Flag ini mencatat tanda yang dihasilkan operasi yang sebelumnya dijalankan
  • Zero. Flag ini mencatat apakah operasi sebelumnya menghasilkan nilai nol
  • Carry. Flag ini mencatat apakah dihasilkan carry (kondisi dimana operasi penjumlahan/ perkalian menghasilkan bawaan yang tidak dapat ditampung register akumulator)
  • Equal. Flag ini mencatat apakah operasi menghasilkan kondisi sama dengan
  • Interupt enable/disable. Flag ini mencatat apakah interrupt sedang dapat diaktifkan atau tidak
  • Supervisor. Flag ini mencatat mode eksekusi yang dilaksanakan, yaitu mode supervisor atau bukan. Pada mode supervisor maka seluruh instruksi dapat dilaksanakan sedang untuk mode bukan mode supervisor (mode user) maka beberapa instruksi kritis tidak dapat diaktifkan.

4.   CPU Interconnection
CPU Interconnection berfungsi menghubungkan seluruh bagian dari CPU.
Fungsi Komputer
Pada prinsipnya terdapat empat buah fungsi operasi, yaitu :
1.      Fungsi Operasi Pengolahan Data
2.      Fungsi Operasi Penyimpanan Data
3.      Fungsi Operasi Pemindahan Data
4.      Fungsi Operasi Kontrol
Komputer harus dapat  memproses data. Representasi data di sini bermacam–macam, akan tetapi nantinya data harus disesuaikan dengan mesin pemrosesnya. Dalam pengolahan data, komputer memerlukan unit penyimpanan sehingga diperlukan suatu mekanisme  penyimpanan data. Walaupun hasil komputer digunakan saat itu, setidaknya komputer memerlukan media penyimpanan untuk data prosesnya. Dalam interaksi dengan dunia luar sebagai fungsi pemindahan data diperlukan antarmuka (interface), proses ini dilakukan oleh unit  Input/Output (I/O) dan perangkatnya disebut peripheral. Saat interaksi dengan perpindahan data yang jauh atau dari remote device, komputer melakukan proses komunikasi data. Gambar 3 mengilustrasikan operasi–operasi komputer. Gambar 3a adalah operasi pemindahan data, gambar 3b adalah operasi penyimpanan data, gambar 3c dan gambar 3d adalah operasi pengolahan data.
Register Internal
  • Program Counter (PC) adalah register yang digunakan untuk menyimpan alamat lokasi dari memori utama yang berisi instruksi yang sedang diproses. Selama pemrosesan instruksi oleh CPU, isi dari PC diubah menjadi alamat dari memori utama yang berisi instruksi berikutnya yang mendapat giliran akan diproses, sehingga bila pemrosesan sebuah instruksi selesai maka jejak instruksi selanjutnya di memori utama dapat dengan mudah didapatkan
  • Accumulator (A) adalah register yang memiliki kemapuan khusus dalam opersi aritmatika dan logika. Bial dilihat dari instruksi-instruksi dari assembly Language Z80 maka operasi-operasi aritmatika dan logika selalu melibtkan accumulator A. Bial dibandingkan dengan register-register yang lain maka accumulator ini paling sering digunakan oleh programmer.
  • Index register adalah Register yang dipakai untuk melakukan operasi string dan sering digunakan  untuk menulis dan membaca ke atau dari memory seperti halnya BX dan BP (Base Pointer), yang terdiri dari register :
  1. SI (Source Index)
Dipakai sebagai pointer atau tempat penyimpan data. Registerini sering  dipakai sebagai pointer untuk menunjuk sebuah item (indexing) dalam  satu kesatuan data. Pada operasi string, SI dipakai untuk menunjuk ke  byte atau word dalam sebuah source string.
2. DI (Destination Index)
Dipakai sebagai pointer atau tempat penyimpanan data. Sering dipakai  sebagai pointer untuk menunjuk sebuah item (indexing) dalam satu  kesatuan data.  Pada operasi string, DI dipakai untuk menunjuk ke byte atau word dalam sebuah destination string.
  • Stack Pointer :register yang memiliki fungsi operasi Push & Pop, Operasi push menambah bagian atas daftar, menyembunyikan semua item yang sudah di stack, atau menginisialisasi stack jika kosong. Operasi pop menghapus item dari bagian atas daftar, dan mengembalikan nilai ini ke pemanggil.Sebuah pop mengungkapkan baik yang sebelumnya telah tersembunyi, atau hasil dalam daftar kosong.

Karakteristik Set Instruksi

Pengertian Set Instruksi
Set instruksi adalah kumpulan dari instruksi yang dapat dijalankan oleh CPU. Pada bahasa mesin, setiap instruksi berbentuk pola bit biner. Disebut juga machine code (bahasa mesin), aslinya juga berbentuk biner atau bahasa assembly. Agar dapat dimengerti manusia, dibuatlah representasi simbolik yang biasanya berupa singkatan (disebut mnemonic). Misal ADD, SUB, LOAD, dll. Sedangkan alamat operand direpresentasikan seperti : ADD A,B Beberapa contoh simbolik instruksi dalam bahasa manusia :
  • ADD : Add (Jumlahkan)
  • SUB : Substract (Kurangkan)
  • MUL : Multiply (kalikan)
  • DIV : Devide (bagi)
  • LOAD : Load (mengambil data dari register / memori)
  • STOR : Store (simpan data ke register / memori)
  • MOVE : Move (pindakhan data dari satu tempat ke tempat lain)
  • SHR : shift kanan data
  • SHL : shift kiri data,
  • Dll
Elemen-Elemen Instruksi:
Sebuah instruksi harus terdiri dari:
  1. Operation Code (Opcode)
Merupakan kode operasi yang menspesifikasikan operasi yang akan dilakukan. Kode operasi berbentuk kode biner.
  1. Source Operand Reference
Merupakan sumber dari operand (input instruksi).
  1. Result Operand Reference
Merupakan hasil atau keluaran operasi.
  1. Next Instruction Reference
elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekusi
 Tipe-Tipe Instruksi
  1. Pengolahan data (data processing)
Merupakan tipe instruksi yang meliputi operasi-operasi aritmatika dan logika. Operasi aritmatika memiliki kemampuan komputasi untuk pengolahan data numerik. Sedangkan instruksi logika beroperasi terhadap bit-bit word sebagai bit, bukannya sebagai bilangan, sehingga instruksi ini memiliki kemampuan untuk pengolahan data lain.
  1. Perpindahan data (data movement)
Merupakan tipe instruksi yang berisi instruksi perpindahan data antar register maupun modul I/O. untuk  dapat diolah oleh CPU maka diperlukan instruksi-instruksi yang bertugas memindahkan data operand yang diperlukan.
  1. Penyimpanan data (data storage)
Merupakan tipe instruksi yang 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.
  1. Kontrol aliran program (program flow control)
Merupakan tipe instruksi yang Berisi instruksi pengontrolan operasi dan percabangan. Instruksi ini berfungsi untuk pengontrolan status dan mengoperasikan percabangan ke set instruksi lain.
Tipe-Tipe Operand
  1. Addresses :Merupakan tipe inputan instruksi berupa alamat dari instruksi.
  1. Numbers : Merupakan tipe inputan instruksi berupa
–   Integer or fixed point => sebuah integer yang skala dengan faktor tertentu. Penting untuk dicatat bahwa faktor skala ditentukan oleh jenis, itu adalah sama untuk semua nilai dari jenis fixed-titik tertentu.
–   Floating point => sebuah bilangan yang digunakan untuk menggambarkan sebuah nilai yang sangat besar atau sangat kecil
–   Decimal (BCD) => sistem pengkodean bilangan desimal yang metodenya mirip dengan bilangan biner biasa; hanya saja dalam proses konversi, setiap simbol dari bilangan desimal dikonversi satu per satu, bukan secara keseluruhan seperti konversi bilangan desimal ke biner biasa.
  1. Characters :
Merupakan tipe inputan instruksi berupa
– ASCII (American Standard Code for Information Interchange) => suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk karakter “|”. Ia selalu digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks.
–   EBCDIC (Extended Binary Coded Decimal Interchange Code) => kode 8 bit untuk huruf yang dipakai pada sistem operasi komputer merk IBM, seperti z/OS, OS/390, VM, VSE, OS/400, serta i5/OS
  1. Logical Data :
Merupakan tipe inputan instruksi bila data berbentuk binary: 0 dan 1
Tipe-Tipe Operasi
  1. Transfer Data
  • Tindakan CPU untuk melakukan transfer data adalah :
  • Menetapkan mode pengalamatan.
  • Menetapkan panjang data yang dipindahkan.
  • Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack.
  • Menetapkan lokasi operand sumber dan operand tujuan.
    • Memindahkan data dari satu lokasi ke lokasi lain.
    • 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 :
  • MOVE : memindahkan word atau blok dari sumber ke tujuan
  • STORE : memindahkan word dari prosesor ke memori.
  • LOAD : memindahkan word dari memori ke prosesor.
  • EXCHANGE : menukar isi sumber ke tujuan.
  • CLEAR / RESET : memindahkan word 0 ke tujuan.
  • SET : memindahkan word 1 ke tujuan.
  • PUSH : memindahkan word dari sumber ke bagian paling atas stack.
  • POP : memindahkan word dari bagian paling atas sumber
  1. Arithmetic
Tindakan CPU untuk melakukan operasi arithmetic :
  • Transfer data sebelum atau sesudah.
  • Melakukan fungsi dalam ALU.
  • Menset kode-kode kondisi dan flag.
Operasi set instruksi untuk arithmetic :
  • ADD : penjumlahan
  • SUBTRACT : pengurangan
  • MULTIPLY : perkalian
  • DIVIDE : pembagian
  • ABSOLUTE
  • NEGATIVE
  • DECREMENT
  • INCREMENT
Absolute, Negative, Decreament, dan Increament merupakan instruksi operand tunggal.
  1. Logical
Tindakan CPU sama dengan arithmetic.
Operasi set instruksi untuk operasi logical :
  • AND, OR, NOT, EXOR
  • COMPARE    : melakukan perbandingan logika.
  • TEST              : menguji kondisi tertentu.
  • SHIFT        : operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung bit.
  • ROTATE         : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
  1. Conversi
Tindakan CPU sama dengan arithmetic dan logical. Instruksi yang mengubah format instruksi yang beroperasi terhadap format data. Misalnya pengubahan bilangan desimal menjadi bilangan biner.
Operasi set instruksi untuk conversi :
  • TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori berdasarkan tabel   korespodensi.
  • CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
  1. Input / Output
Tindakan CPU untuk melakukan INPUT /OUTPUT :
  • Apabila  memory mapped I/O maka menentukan alamat memory mapped
  • Mengawali perintah ke modul I/O
Operasi set instruksi Input / Ouput :
  • INPUT : memindahkan data dari pernagkat I/O tertentu ke tujuan
  • OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
  • START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
  • TEST I/O : memindahkan informasi dari sistem I/O ke tujuan
  1. Transfer Control
Tindakan CPU untuk transfer control yaitu mengupdate program counter untuk subrutin , call / return.
Operasi set instruksi untuk transfer control :
  • JUMP (cabang) : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
  • JUMP BERSYARAT : menguji persyaratan tertentu dan memuat PC dengan alamat tertentu atau tidak melakukan apa tergantung dari persyaratan.
  • JUMP SUBRUTIN : melompat ke  alamat tertentu.
  • RETURN : mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu.
  • EXECUTE : mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruk
  • SKIP : menambah PC sehingga melompati instruksi berikutnya.
  • SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan
  • HALT : menghentikan eksekusi program.
  • WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
  • NO OPERATION : tidak ada operasi yang dilakukan
  1. Control System
Hanya dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu atau sedang mengeksekusi suatu program yang berada dalam area khusus, biasanya digunakan dalam sistem operasi.Contoh : membaca atau mengubah register kontrol.
Mode dan Format Pengalamatan
Mode pengalamatan adalah bagaimana cara menunjuk dan  mengalamati suatu lokasi memori pada  sebuah alamat di mana operand akan diambil. Mode pengalamatan diterapkan pada set instruksi, dimana pada umumnya instruksi terdiri dari opcode (kode operasi) dan alamat. Setiap mode pengalamatan memberikan fleksibilitas khusus yang sangat penting. Mode pengalamatan ini meliputi direct addressing, indirect addressing, dan immediate addressing.
Macam-macam mode pengalamatan:
  1. Mode Pengalamatan Inherent
Dalam mode pengalamatan inherent, semua informasi yang dibutuhkan untuk operasi telah diketahui otomatis oleh CPU, dan tidak dibutuhkan operan eksternal dari memori atau dari program. Operan yang digunakan hanyalah register internal dari CPU atau data dalam stack. Karena itu operasi ini hanyalah terdiri dari satu byte instruksi.
  1. Mode Pengalamatan Immediate
Dalam mode pengalamatan immediate, operan terkandung di dalam byte yang langsung mengikuti kode operasi. Mode ini digunakan saat suatu harga atau konstanta diketahui saat program dibuat dan tidak akan dirubah selama eksekusi program. Operasi dengan mode ini membutuhkan dua byte instruksi, satu untuk kode operasi dan satu lagi untuk data byte.
Bentuk pengalamatan ini yang paling sederhana. Operand benar – benar ada dalam instruksi atau bagian dari instruksi artinya operand sama dengan field alamat. Dalam penggunaan pengalamatan ini memiliki keuntungan dan kerugian, yaitu :
Keuntungan :
  • Mode ini adalah tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand.
  • Menghemat siklus instruksi sehingga proses keseluruhan akan cepat.
Kerugiannya :
  • Ukuran bilangan dibatasi oleh ukuran field alamat
Contoh : ADD 5 artinya tambahkan 5 pada akumulator
  1. Mode Pengalamatan Direct
Mode pengalamatan direct mirip dengan mode pengalamatan extended kecuali bahwa upper byte dari alamat operan selalu dianggap $00. Karena itu, hanya lower-byte dari operan yang diperlukan untuk dimasukkan dalam instruksi. Pengalamatan direct menyebabkan efisiensi alamat dalam 256 byte pertama dalam memori. Area ini dinamakan dengan direct page dan mengandung on-chip RAM dan register I/O. Pengalamatan direct ini efisien bagi memori program dan waktu eksekusi. Dalam mode ini instruksi terdiri dari dua byte, satu untuk kode operasi dan satu lagi untuk alamat operand.
Kelebihan :
  • Field alamat berisi efektif address sebuah operand.
  • Teknik ini banyak digunakan pada komputer lama dan komputer kecil.
  • Hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulasi khusus.
Kelemahan :
Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkan panjang word
Contoh : ADD A artinya tambahkan isi pada lokasi alamat A ke akumulator
  1. Mode Pengalamatan Extended
Dalam mode pengalamatan extended, alamat dari operan terkandung dalam dua byte yang mengikuti kode operasi. Pengalamatan extended ini dapat digunakan untuk mengakses semua lokasi dalam memori mikrokontroler termasuk I/O, RAM, ROM, dan EPROM. Karena itu operasi ini membutuhkan tiga byte, satu untuk kode operasi, dan dua untuk alamat dari operan.
  1. Mode Pengalamatan Indexed
Dalam mode pengalamatan indexed, alamat efektif adalah variabel dan tergantung pada dua faktor: 1) isi index register saat itu dan 2) nilai offset yang terkandung dari byte yang mengikuti kode operasi. Terdapat tiga jenis pengalamatan indexed yang didukung oleh CPU keluarga M68HC05, yaitu: no-offset, 8-bit offset, dan 16-bit offset. Dalam mode pengalamatan indexed-no offset, alamat efektif dari operan terkandung dalam index register 8-bit. Karena itu, mode pengalamatan ini dapat mengakses 256 lokasi memori (dari $0000 sampai $00FF). Instruksi mode ini membutuhkan satu byte instruksi.

DAFTAR PUSTAKA:
Rahmadhani, Suci. 2016. MODUL SISTEM KOMPUTER KELAS XI SEMESTER 2. Batam.

RINGKASAN MATERI SEMESTER 2 BAB 1 Hal- hal yang dilakuakan CPU adalah sebagai berikut: 1.        Fetch Instruction (mengambil inst...