Arsitektur Set
Instruksi
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).Kumpulan dari instruksi-instruksi
yang berbeda yang dapat dijalankan oleh CPU disebut set Instruksi (Instruction
Set).
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
- 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 :
- 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
INPUT / OUTPUT
- Tindakan CPU untuk melakukan INPUT /OUTPUT :
1.
Apabila memory mapped I/O maka
menentukan alamat memory mapped.
2.
Mengawali perintah ke modul I/O
- 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
LOGICAL
- Tindakan CPU sama
dengan arithmetic
- 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.
ARITHMETIC
Tindakan CPU untuk
melakukan operasi arithmetic :
1. Transfer data sebelum atau sesudah.
2.
Melakukan fungsi dalam ALU.
3. Menset
kode-kode kondisi dan flag.
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.
Teknik Pengalamatan
Mode
pengalamatan merujuk pada bagaimana pemrogram mengalamati suatu lokasi memori.
Setiap mode pengalamatan memberikan fleksibilitas khusus yang sangat penting.
Mode pengalamatan ini meliputi immediate addressing, direct addressing, dan
indirect addressing.
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.
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.
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
mengisikannya ke akumulator.
DESAIN SET INSTRUKSI
Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya adalah:
1. Kelengkapan set instruksi
Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya adalah:
1. Kelengkapan set instruksi
2. Ortogonalitas (sifat independensi nstruksi)
3. Kompatibilitas :
- Source code compatibility
- Object code Compatibility
3. Kompatibilitas :
- Source code compatibility
- Object code Compatibility
Selain
ketiga aspek tersebut juga melibatkan hal-hal
sebagai berikut:
1.Operation Repertoire
2.Data Types
3.Register
4.Addressing
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.
Sistem BUS
1. Penghubung bagi keseluruhan komponen
komputer dalam menjalankan tugasnya
2. Komponen komputer :
1. CPU
2. Memori
3. Perangkat I/O
4. BUS adalah
Bus
adalah Jalur komunikasi yang dibagi pemakai Suatu set kabel tunggal yang
digunakan untuk menghubungkan berbagai
subsistem
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 dikatagorikan 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 data dikatakan lebar bus, dengan satuan bit,
misal lebar bus 16 bit
Saluran Alamat (Address Bus)
- Digunakan untuk menspesifikasi
sumber dan tujuan data pada bus data.
- Digunakan untuk mengirim alamat word
pada memori yang akan diakses CPU.
- Digunakan untuk saluran alamat perangkat modul komputer saat
CPU mengakses suatu modul.
- 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 hardware-nya
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 kontrol ini.
Sinyal –
sinyal kontrol terdiri atas
- Sinyal pewaktuan adalah Sinyal
pewaktuan menandakan validitas data dan alamat
- Sinyal–sinyal perintah adalah Sinyal
perintah berfungsi membentuk suatu operasi
Type BUS
1.
Dedicated
Penggunaan
alamat terpisah dan jalur Keuntungan : Throughtput yang tinggi, karena
kemacetan lalulintas kecil
Kerugian : meningkatnya ukuran dan biaya sistem
2.
Multiplexed
Penggunnan
saluran yang sama untuk berbagai
keperluan Keuntungan : Memerlukan saluran yang lebih sedikit, uang
menghemat ruang dan biaya
Kerugian : Diperlukan rangkaian yang lebih
kompleks untuk setiap modul .
ALU (Arithmetic and
Logical Unit)
ALU melaksanakan seluruh perhitungan (penambahan, pengurangan, perkalian atau pembagian) dan operasi logika. ALU berfungsi melakukan operasi aritmatik dan logik yang terbagi menjadi empat kelas, yaitu decimal arithmetic, fixed point arithmetic, floating point aritmetic dan logic operation. Terdapat dua macam bilangan yang ditangani oleh prosesor, yaitu bilangan fixed point dan bilangan floating point.
Bilangan fixed point adalah bilang yang
memiliki nilai digit spesifik pada salah satu titik desimalnya, Hal ini akan
membatasi jangkauan nilai yang mungkin untuk angka-angka tersebut, namun, hal
ini justru dapat dihitung oleh prosesor.
Sedangkan 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 aritmatika 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
paralel dengan prosesor. Dengan demikian proses penghitungan bilangan floating
point dapat berjalan lebih cepat. Keberadaan FPU integrated (bersatu dengan
prosesor) sudah menjadi kebutuhan standart komputer masa kini, karena banyak
sekali aplikasi-aplikasi yang beroperasi menggunakan bilangan floating point.
Unit kontrol (Control Unit)
Unit kontrol ini adalah bagian dari prosesor 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. 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 (Aritmathic Logic Unit). 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.
• Mengawasi kerja dari ALU.
• Menyimpan hasil proses ke memori utama.
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 di gunakan untuk
menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. jika
dianalogikan, 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.
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.
Register register Kontrol
-
Register register untuk komunikasi dengan unit unit diluar CPU
MAR
(Memory Address Register) untuk menyatakan alamat lokasi operand dalam memory
yang akan dibaca atau ditulisi oleh CPU.
MBR
atau MDR (Memory Buffer atau Data Register) merupakan tempat penyimpanan
(sementara) data yang baru saja dibaca dari atau data yang akan dituliskan ke
memory
PC
(Program Counter) untuk menyatakan alamat lokasi instruksi yang akan dibaca
oleh CPU dari memory.
Reference :
http://gha-ronk.blogspot.com/