Senin, 19 November 2012

CPU


A. Pengertian CPU

CPU (Central Processing Unit) adalah otak atau sumber dari komputer yang mengatur dan memproses seluruh kerja komputer. CPU ini berbentuk IC yang diberi nama sesuai dengan tipenya, misalnya 8088 untuk PC XT dan 80286 untuk PC AT,Pentium IV dan sebagainya. Karena CPU ini berada pada suatu board (papan) yang disebut motherboard dan terletk dalam kotak (casing), sekarang ini orang jadi cenderung menyebut kotak berisi catu daya, disk drive dan motherboard sebagai CPU/ kotak CPU. Di dalam kotak CPU biasanya terdapat 2 buah disket drive yang diberi nama disket drive A dan disket drive B. selain disket drive ada juga yang mempunyai hard disk dan CD ROM.
B. Fungsi CPU

Fungsi utama CPU adalah menjalankan program-program yang disimpan di memori utama. Hal ini dilakukan dengan cara mengambil instruksi-instruksi dari memori utama dan mengeksekusinya satu persatu sesuai dengan alur perintah. Pekerjaan ini dilakukan dalam dua tahapan yaitu membaca instruksi (fetch) dan melaksanakan instruksi tersebut (execute). Proses membaca dan melaksankan ini dilakukan berulang-ulang sampai semua instruksi yang terdapat di memori utama dijalankan atau komputer dimatikan. Proses ini dikenal juga sebagai siklus fetch-eksekusi.

a) Siklus fetch-eksekusi bisa dijelaskan sebagai berikut
i.       di awal setiap siklus, CPU akan membaca dari memori utama,
ii.      sebuah register, yang disebut Program Counter (PC), akan mengawasi dan menghitung instruksi selanjutnya,
iii.     ketika CPU membaca sebuah instruksi, Program Counter akan menambah satu hitungannya,
iv.     lalu instruksi-instruksi yang dibaca tersebut akan dimuat dalam suatu register yang disebut register instruksi (IR), dan akhirnya
v.      CPU akan melakukan interpretasi terhadap instruksi yang disimpan dalam bentuk kode binari, dan melakukan aksi yang sesuai dengan instruksi tersebut.

b) Siklus Intruksi
i. Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya. Misalnya, bila panjang setiap instruksi 16 bit padahal memori memiliki panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya.
ii. Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU.
iii. Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan.
iv. Operand Address Calculation (OAC), yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori.
v. Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul I/O.
vi. Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi.
vii. Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori

Sub Siklus Intruksi
a. Fetch : membaca instruksi berikutnya dari memori ke dalam CPU
b. Execute : menginterpretasikan opcode dan melakukan operasi yang diindikasikan
c. Interrupt : Apabila interrupt diaktifkan dan interrupt telah terjadi, simpan status proses saat itu dan layani interrupt.

Aksi – Aksi CPU

i. CPU Memori, perpindahan data dari CPU ke memori dan sebaliknya
ii. CPU – I/0, perpindahan data dari CPU ke modul I/0 dan sebaliknya
iii. Pengolahan Data, CPU membentuk sejumlah operasi aritmatika dan logika terhadap data
iv. Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja. Misalnya instruksi pengubahan urusan eksekusi

C. Komponen – Komponen CPU
a) Control Unit 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.

Tugas dari control unit ini adalah:

1. Mengatur dan mengendalikan alat-alat input dan output

2. Mengambil instruksi-instruksi dari memori utama.

3.     Mengambil data dari memori utama (jika diperlukan) untuk diproses.

4.            Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU
5.             Menyimpan hasil proses ke memori utama.

b) 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 di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi,register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika
c) Aritmetic Logic Unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.
Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan , kurang dari, dan lebih besar atau sama dengan.
d) CPU Interconnections 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.
D. Cara Kerja CPU
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di RAM (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Accumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan.

Sumber : http://fujhyzhu.wordpress.com/2010/05/22/central-processing-unit-cpu/

Senin, 12 November 2012

ARSITEKTUR SET INSTRUKSI


ARSITEKTUR SET INSTRUKSI


KARAKTERISTIK DAN FUNGSI SET INSTRUKSI

n     Operasi dari CPU ditentukan oleh instruksi-instruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut sebagai instruksi mesin (mechine instructions) atau instruksi komputer (computer instructions).
n     Kumpulan dari instruksi-instruksi yang berbeda yang dapat dijalankan oleh CPU disebut set Instruksi (Instruction Set).

ELEMEN-ELEMEN DARI INSTRUKSI MESIN (SET INSTRUKSI)

§        Operation Code (opcode) : menentukan operasi yang akan dilaksanakan
§        Source Operand Reference : merupakan input bagi operasi yang akan dilaksanakan
§        Result Operand Reference : merupakan hasil dari operasi yang dilaksanakan
§        Next instruction Reference : memberitahu CPU untuk mengambil (fetch) instruksi berikutnya setelah instruksi yang dijalankan selesai.

Source dan result operands dapat berupa salah Satu diantara tiga jenis berikut ini:
n     Main or Virtual Memory
n     CPU Register
n     I/O Device

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 compatibility
    - Object code Compatibility
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
FORMAT INSTRUKSI
n     Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format).


JENIS-JENIS OPERAND
n     Addresses (akan dibahas pada addressing modes)
n     Numbers :  - Integer or fixed point
                                   -  Floating point
                                   -  Decimal (BCD)
n     Characters : - ASCII
                                     - EBCDIC
n     Logical Data : Bila data berbentuk binary: 0 dan 1
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 instructions
TRANSFER DATA
n     Menetapkan lokasi operand sumber dan operand tujuan.
n     Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack.
n     Menetapkan panjang data yang dipindahkan.
n     Menetapkan mode pengalamatan.
n     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 :
n     MOVE : memindahkan word atau blok dari sumber ke tujuan
n     STORE : memindahkan word dari prosesor ke memori.
n     LOAD : memindahkan word dari memori ke prosesor.
n     EXCHANGE : menukar isi sumber ke tujuan.
n     CLEAR / RESET : memindahkan word 0 ke tujuan.
n     SET : memindahkan word 1 ke tujuan.
n     PUSH : memindahkan word dari sumber ke bagian paling atas stack.
n     POP : memindahkan word dari bagian paling atas sumber
ARITHMETIC
n     Tindakan CPU untuk melakukan operasi arithmetic :
     1. Transfer data sebelum atau sesudah.
     2. Melakukan fungsi dalam ALU.
     3. Menset kode-kode kondisi dan flag.
n     Operasi set instruksi untuk arithmetic :
    1. ADD : penjumlahan                            5. ABSOLUTE
    2. SUBTRACT : pengurangan      6. NEGATIVE
    3. MULTIPLY : perkalian             7. DECREMENT
    4. DIVIDE : pembagian                8. INCREMENT
    Nomor 5 sampai 8 merupakan instruksi operand tunggal.
LOGICAL
n     Tindakan CPU sama dengan arithmetic
n     Operasi set instruksi untuk operasi logical :
     1. AND, OR, NOT, EXOR
     2. COMPARE : melakukan perbandingan logika.
     3. TEST : menguji kondisi tertentu.
     4. SHIFT : operand menggeser ke kiri atau kanan menyebabkan
                    konstanta pada ujung bit.
     5. ROTATE : operand menggeser ke kiri atau ke kanan dengan
                       ujung yang terjalin.
CONVERSI
n     Tindakan CPU sama dengan arithmetic dan logical.
n     Instruksi yang mengubah format instruksi yang beroperasi terhadap format data.
n     Misalnya pengubahan bilangan desimal menjadi bilangan biner.
n     Operasi set instruksi untuk conversi :
    1. TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian
                            memori berdasrkan tabel korespodensi.
     2. CONVERT : mengkonversi isi suatu word dari suatu bentuk
                          ke bentuk lainnya.
INPUT / OUPUT
n     Tindakan CPU untuk melakukan INPUT /OUTPUT :
     1. Apabila  memory mapped I/O maka menentukan alamat
        memory mapped.
      2. Mengawali perintah ke modul I/O
n     Operasi set instruksi Input / Ouput :
     1. INPUT : memindahkan data dari pernagkat I/O tertentu ke
                     tujuan
     2. OUTPUT : memindahkan data dari sumber tertentu ke
                        perangkat I/O
     3. START I/O : memindahkan instruksi ke prosesor I/O untuk
                           mengawali operasi I/O
     4. TEST I/O : memindahkan informasi dari sistem I/O ke tujuan





Sumber  :   http://id.scribd.com/doc/34681874/2-Set-Instruksi

Set Instruksi


Set Instruksi (bahasa Inggris: Instruction Set, atau Instruction Set Architecture (ISA)
Didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi,eksepsi, dan operasi I/O eksternalnya (jika ada).
ISA merupakan sebuah spesifikasi dari kumpulan semua kode – kode biner (opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesortertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin (machine language) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain.
ISA kadang-kadang digunakan untuk membedakan kumpulan karakteristik yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan teknik desain prosesor untuk mengimplementasikan set instruksi
 (mencakup microcode, pipeline, sistem cache, manajemen daya, dan lainnya). Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon mengimplementasikan versi yang hampir identik dari set instruksi Intel x86, tetapi jika ditinjau dari desain internalnya, perbedaannya sangat radikal. Konsep ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai mesin virtual. TIMI didesain untuk meningkatkan masa hidup sebuah platform dan aplikasi yang ditulis untuknya, sehingga mengizinkan platform tersebut agar dapat dipindahkan ke perangkat keras yang sama sekali berbeda tanpa harus memodifikasi perangkat lunak (kecuali yang berkaitan dengan TIMI). Hal ini membuat IBM dapat memindahkan platform AS/400 dari arsitektur mikroprosesor CISC ke arsitektur mikroprosesor POWER tanpa harus menulis ulang bagian-bagian dari dalam sistem operasi atau perangkat lunak yang diasosiasikan dengannya.
Ketika mendesain mikroarsitektur, para desainer menggunakan Register Transfer Language (RTL) untuk mendefinisikan operasi dari setiap instruksi yang terdapat dalam ISA.
Sebuah ISA juga dapat diemulasikan dalam bentuk perangkat lunak oleh sebuah interpreter. Karena terjadi translasi tambahan yang dibutuhkan untuk melakukan emulasi, hal ini memang menjadikannya lebih lambat jika dibandingkan dengan menjalankan program secara langsung di atas perangkat keras yang mengimplementasikan ISA tersebut. Akhir-akhir ini, banyak vendor ISA atau mikroarsitektur yang baru membuat perangkat lunak emulator yang dapat digunakan oleh para pengembang perangkat lunak sebelum implementasi dalam bentuk perangkat keras dirilis oleh vendor.
Daftar ISA di bawah ini tidak dapat dikatakan komprehensif, mengingat banyaknya arsitektur lama yang tidak digunakan lagi saat ini atau adanya ISA yang baru dibuat oleh para desainer.

Bagian dari instruksi

Satu instruksi mungkin memiliki beberapa bidang, yang mengidentifikasi operasi logis untuk dilakukan, dan bisa juga menyertakan alamat sumber dan tujuan dan nilai-nilai konstan. Ini adalah MIPS "Tambahkan Segera" instruksi yang memungkinkan pemilihan register sumber dan tujuan dan inklusi dari sebuah konstanta kecil. pada arsitektur tradisional, instruksi mencakup pop code  menentukan operasi yang akan dilakukan, seperti "isi menambah memori untuk mendaftar", dan nol atau lebih operan penspesifikasi, yang dapat menentukan register, memori lokasi, atau data harfiah. Para penspesifikasi operan mungkin memilikimode pengamatan menentukan makna mereka atau mungkin dalam bidang tetap. Dalam (VLIW) arsitektur, yang mencakup banyak microcode arsitektur, opkode simultan dan operan yang ditentukan dalam sebuah instruksi.
Beberapa set instruksi eksotis tidak memiliki bidang opcode (seperti Transportasi Dipicu Arsitektur (TTA) atau mesin Forth maya), hanya operan (s). Lainnya tidak biasa " 0-operan" set instruksi kekurangan dalam suatu operan bidang specifier, seperti beberapa mesin tumpukan termasuk NOSC / balik / NOSC /.

ISA yang diimplementasikan dalam bentuk perangkat keras

§                    Alpha AXP (DEC Alpha)
§                    ARM (Acorn RISC Machine) (Advanced RISC Machine now ARM Ltd)
§                    IA-64 (Itanium/Itanium 2)
§                    MIPS
§                    Motorola 68k
§                    PA-RISC (HP Precision Architecture)
§                    IBM POWER
§                    IBM PowerPC
§                    SPARC
§                    SuperH (Hitachi)
§                    System/360
§                    Tricore (Infineon)
§                    Transputer (STMicroelectronics)
§                    VAX (Digital Equipment Corporation)
§                    x86 (IA-32, Pentium, Athlon) (AMD64, EM64T)

ISA yang diimplementasikan dalam bentuk perangkat lunak lalu dibuat perangkat kerasnya

§                    p-Code (UCSD p-System Version III on Western Digital Pascal Micro-Engine)
§                    Java virtual machine (ARM Jazelle, PicoJava)
§                    FORTH

ISA yang tidak pernah diimplementasikan dalam bentuk perangkat keras

§                    SECD machine
§                    ALGOL Object Code


 Sumber : http://id.wikipedia.org/wiki/Set_instruksi