Kamis, 02 Oktober 2014

EKSEKUSI INTRUKSI



PENELASAN  :

Siklus  eksekusi  sebuah  instruksi  yang terdiri dari 6 tahap, yaitu :

1.  Karena  pc  (program  counter)  berisi  angka  300,  maka  instruksi  yang  akan diambil adalah  instruksi  yang  terletak  di  memori  alamat  300,  yaitu  instruksi dengan kode 1940. Instruksi tersebut diambil dari memori kemudian disimpan di register instruksi (instruction register).

2.  Misalkan kode 1940 merupakan instruksi dengan kode operasi (operation code, opcode) 1, diikuti  dengan  940  yang  merupakan  alamat  operand.  Opcode 1 berarti instruksi untuk mengcopy data dari alamat operand (dalam hal ini 940) ke akumulator. Maka data yang terletak di alamat 940 dicopy ke accumulator untuk diproses dalam siklus eksekusi ini.

3.  Setelah  itu  isi  pc  ditambah  satu  (incremented)  sehingga  isinya  menjadi  301. Artinya, instruksi  berikutnya  yang  harus  diambil  dari  memori  dan  dieksekusi terletak  di  memori alamat  301,  yaitu  instruksi  dengan  kode  5941.  Instruksi tersebut mengandung opcode 5 dan alamat operand 941.

4.  Karena  5  berarti  penjumlahan  antara  isi  akumulator  dengan  isi  memori  yang alamatnya  diberikan  di  sebelah  angka  5,  maka  isi  akumulator  dijumlahkan  dengan  isi memori  alamat  941.  Kemudian  hasil  penjumlahannya  dikembalikan ke akumulator.

5.  Setelah  pc  ditambah  satu,  maka  isinya  menjadi  302,  sehingga  instruksi berikutnya yang diambil dari  memori  adalah 2941, yaitu opcode 2 dan operand 941.

6.  Arti 2941 adalah perintah untuk mengcopy isi akumulator ke memori alamat 941.

Jumat, 26 September 2014

CISC, RISC, Von Neumenn , Harvard, x84, dan ARM


VON NEUMANN VS HARVARD

Ada dua kelas utama dari arsitektur komputer yaitu ‘arsitektur Havard’ dan ‘arsitektur Von  Neumann (atau Princeton).  Banyak desain khusus mikrokontroler dan DSP (Digital Signal Processor) menggunakan arsitektur Havard.

Pada Dasarnya yang membedakan Asitektur Komputer Menurut Von Neumenn dan Arsitekur komputer menurut Harvard adalah  Memori dan BUS






ARSITEKTUR VON NEUMENN
Pada arsitektur von neumann, program dan data dibagi pada ruang memori yang sama. Arsitektur von neumann menyediakan fitur penyimpanan dan modifikasi program secara mudah. Bagaimanapun, penyimpanan program tidak mungkin optimal dan membutuhkan berbagai pengumpulan program dan data untuk membentuk instruksi. Pengumpulan program dan data  diselesaikan menggunakan time division multiplexing yang akan berpengaruh pada performa mikrokontroler itu sendiri.  Salah satu contoh mikrokontroler yang menggunakan arsitektur von neumann (princeton) adalah motorola 68hc11.





KELEBIHAN DAN KELEMAHAN

1.  Kelebihan
Pada fleksibilitas pengalamatan program dan data. Biasanya program selalu ada di (rom=read only memory ) dan data selalu ada di (ram=random access memory). Arsitektur von neumann memungkinkan prosesor untuk menjalankan program yang ada didalam memori data (ram). Misalnya pada saat power on, dibuat program inisialisasi yang mengisi byte di dalam ram. Data di dalam ram ini pada gilirannya nanti akan dijalankan sebagai program. Sebaliknya data juga dapat disimpan di dalam memori program (rom).

2.  Kekuranga
Bus tunggalnya itu sendiri. Sehingga instruksi untuk mengakses program dan data harus dijalankan secara sekuensial dan tidak bisa dilakukan overlaping untuk menjalankan dua isntruksi yang berurutan. Selain itu bandwidth program harus sama dengan banwitdh data. Jika memori data adalah 8 bits maka program juga harus 8 bits. Satu instruksi biasanya terdiri dari opcode (instruksinya sendiri) dan diikuti dengan operand (alamat atau data). Karena memori program terbatas hanya 8 bits, maka instruksi yang panjang harus dilakukan dengan 2 atau 3 bytes. Misalnya byte pertama adalah opcode dan byte berikutnya adalah operand. Secara umum prosesor von neumann membutuhkan jumlah clock cpi (clock per instruction) yang relatif lebih banyak dan walhasil eksekusi instruksi dapat menjadi relatif lebih lama.


ARSITEKTUR HARVARD

Mikrokontroler yang menggunakan arsitektur ini memiliki dua bus yang berbeda. Satu bus 8-bit dan menghubungkan cpu ke ram. Yang lain terdiri dari beberapa jalur (12, 14 atau 16) dan menghubungkan cpu ke rom. Dengan demikian, cpu dapat membaca instruksi dan mengakses memori data pada saat yang bersamaan. Karena semua register memori ram lebarnya 8-bit, semua pertukaran data dalam mikrokontroler menggunakan format yang sama, sehingga selama eksekusi penulisan data, hanya 8-bit yang diperhatikan. Dengan kata lain, yang perlu anda perhatikan saat merancang program adalah lebar data yang bisa dipertukarkan atau diproses hanya selebar 8-bit, ya hanya selebar 8-bit saja.

Program yang anda buat untuk beberapa mikrokontroler ini akan tersimpan di dalam rom internal (flash rom) setelah dilakukan kompilasi ke bahasa mesin. Lokasi memori ini dinyatakan dalam 12, 14 atau 16-bit. Sebagian dari bit, 4, 6 atau 8-bit digunakan sebagai instruksinya sendiri dan diikuti dengan data 8-bit.

Sebagai contoh, mikrokontroler Intel keluarga MCS-51 menggunakan arsitektur Havard karena ada perbedaan kapasitas memori untuk program dan data, dan bus terpisah (internal) untuk alamat dan data.  Begitu juga dengan keluarga PIC dari Microchip yang menggunakan arsitektur Havard.


KELEBIHAN DAN KEKURANGAN

1.   Kelebihan

Semua data di dalam program selebar 1 byte (8-bit). Karena bus data yang digunakan dalam pembacaa program memiliki beberapa jalur (12, 14 atau 16), instruksi dan data dapat dibaca dibaca sekaligus. Dengan demikian, semua instruksi dapat dieksekusi hanya dengan satu siklus instruksi, kecuali instruksi lompat (jump) yang dieksekusi dalam dua siklus.

Kenyataan bahwa program (ROM) dan data sementara (RAM) terpisah, CPU dapat mengeksekusi dua instruksi sekaligus. Gampangnya, selama proses pembacaan dan penulisan RAM (akhir dari suatu instruksi), instruksi berikutnya dibaca melalui bus yang lain.

Jika menggunakan mikrokontrole menggunakan arsitektur Von-Neumann kita tidak bisa tahu seberapa banyak memori yang dibutuhkan oleh beberapa instruksi. Pada dasarnya, masing-masing instruksi program membutuhkan dua lokasi memori (satu mengandung instruksi APA yang harus dilakukan, sedangkan sisanya mengandung informasi data YANG MANA akan diproses).

2.  Kekurangan

Arsitektur Harvard tidak memungkinkan untuk menempatkan data pada ROM. Kedengarannya aneh, tetapi arsitektur ini memang tidak memungkinkan untuk mengakses data yang ada di ROM. Namun hal ini bisa diatasi dengan cara membuat instruksi dan mekanisme khusus untuk pengalamatan data di ROM. Mikroprosesor yang memiliki instruksi seperti ini biasanya disebut ber-arsitektur Modified Harvard. Instruksi yang seperti ini dapat ditemukan pada keluarga MCS-51 termasuk Intel 80C51, P87CLXX dari Philips dan Atmel AT89LSXX


PERBEDAAN ARSITEKTUR VON NEUMANN dengan HARVARD:

Arsitektur Von Neumann adalah arsitektur komputer yang menempatkan program (ROM=Read Only Memory) dan data (RAM=Random Access Memory) dalam peta memori yang sama. Arsitektur ini memiliki address dan data bus tunggal untuk mengalamati program (instruksi) dan data. Contoh dari mikrokontroler yang memakai arsitektur Von Neumann adalah keluarga 68HC05 dan 68HC11 dari Motorola.

Sebaliknya, arsitektur Harvard memiliki dua memori yang terpisah satu untuk program (ROM) dan satu untuk data (RAM). Intel 80C51, keluarga Microchip PIC16XX, Philips P87CLXX dan Atmel AT89LSXX adalah contoh dari mikroprosesor yang mengadopsi arsitektur Harvard. Kedua jenis arsitektur ini masing-masing memiliki keungulan tetapi juga ada kelemahannya.Dengan arsitektur Von Neuman prosesor tidak perlu membedakan program dan data. Prosesor tipe ini tidak memerlukan control bus tambahan berupa pin I/O khusus untuk membedakan program dan data. Karena kemudahan ini, tidak terlalu sulit bagi prosesor yang berarsitektur Von Neumann untuk menambahan peripheral eksternal seperti A/D converter, LCD, EEPROM dan devais I/O lainnya. Biasanya devais eksternal ini sudah ada di dalam satu chips, sehingga prosesor seperti ini sering disebut dengan nama mikrokontroler (microcontroller).

ARSITEKTUR CISC DAN RISC 

           PENGERTIAN CISC

Complex instruction-set computing (cisc) atau “kumpulan instruksi komputasi kompleks” adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi.

KARAKTERISTIK
Sarat informasi memberikan keuntungan di mana ukuran program-program yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena cisc inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat.

Dimaksudkan untuk meminimumkan jumlah perintah yang diperlukan untuk mengerjakan pekerjaan yang diberikan. (jumlah perintah sedikit tetapi rumit) konsep cisc menjadikan mesin mudah untuk diprogram dalam bahasa rakitan

CIRI-CIRI
  • Jumlah instruksi banyak
  • Banyak terdapat perintah bahasa mesin
  • Instruksi lebih kompleks 
  • Pengaplikasian cisc yaitu pada amd dan intel

PENGERTIAN RISC

Rics singkatan dari reduced instruction set computer. Merupakan bagian dari arsitektur mikroprosessor, berbentuk kecil dan berfungsi untuk negeset istruksi dalam komunikasi diantara arsitektur yang lainnya.

KARAKTERISTIK RISC

Siklus mesin ditentukan oleh waktu yang digunakan untuk mengambil dua buah operand dari register
Operasi berbentuk dari register-ke register yang hanya terdiri dari operasi load dan store yang mengakses memori
Penggunaan mode pengalamatan sederhana
Penggunaan format-format instruksi sederhana

CIRI-CIRI
  • Instruksi berukuran tunggal
  • Ukuran yang umum adalah 4 byte
  • Jumlah pengalamatan data sedikit,
  • Tidak terdapat pengalamatan tak langsung
  • Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika
  • Tidak terdapat lebih dari satu operand beralamat memori per instruksi
  • Tidak mendukung perataan sembarang bagi data untuk operasi load/ store.
  • Jumlah maksimum pemakaian memori manajemen bagi suatu alamat data adalah sebuah instruksi .
Pengaplikasian risc yaitu pada cpu apple


PERBEDAAN CISC dan RISC
RISC ( Reduced Instruction Set Computer )
  • Menekankan pada perangkat lunak, dengan sedikit transistor
  • Instruksi sederhana bahkan single
  • Load / Store atau memory ke memory bekerja terpisah
  • Ukuran kode besar dan kecapatan lebih tinggi
  • Transistor didalamnya lebih untuk meregister memori

CISC ( Complex Instruction Set Computer )
  • Lebih menekankan pada perangkat keras, sesuai dengan takdirnya untuk pragramer.
  • Memiliki instruksi komplek. Load / Store atau Memori ke Memori bekerjasama
  • Memiliki ukuran kode yang kecil dan kecepatan yang rendah.
  • Transistor di dalamnya digunakan untuk menyimpan instruksi – instruksi bersifat komplek


VON NEUMENN dan CISC

Berdasarkan penjelasan dari CISC dan RISC di atas. Kita dapat mengetahui bahwa CISC itu merupakan arsitektur yang akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory. Dari penjelasan tersebut bila dikaitkan dengan arsitertur von Neumenn bisa dikatakan jika arsitelktur oleh von Neumenn mempunyai kemiripan dengan CISC yaitu Arsitektur von Neumenn memiliki struktur yang komplek. Selain itu pada arsitektur yang dibuat oleh John von Neumann Kunci utamanya adalah unit pemrosesan sentral (CPU), yang memungkinkan seluruh fungsi komputer untuk dikoordinasikan melalui satu sumber tunggal. Sedangkan pada CISC adalah arsitektur dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, Jumlah instruksi banyak, Banyak terdapat perintah bahasa mesin, Instruksi lebih kompleks . karakteristik dari CISC yang sama ini lah yang menyebabkan Arsitektur Von Neumenn juga bisa dikatakan CISC.


HARVARD dan RISC

Siklus mesin ditentukan oleh waktu yang digunakan untuk mengambil dua buah operand dari register,Operasi berbentuk dari register-ke register yang hanya terdiri dari, operasi load dan store yang mengakses memori, Penggunaan mode pengalamatan, sederhana, dan Penggunaan format-format instruksi sederhana. Berdasarkan karakteristik yang dimiliki oleh RISC mengingatkan pada arsitektur HARVAR yang pada dasarnya arsitektur ini memiliki beberapa bus yang berbeda. Karena bus data yang digunakan dalam pembaca program memiliki beberapa jalur (12, 14 atau 16), instruksi dan data dapat dibaca sekaligus. Dengan demikian, semua instruksi dapat dieksekusi hanya dengan satu siklus instruksi. Sehingga sistem kerja dari harvard ini juga bersifat sederhana.


X86 DAN ARM

X86

Arsitektur x86 adalah rancangan set instruksi komputer kompleks (complex instruction set computer) dengan panjang instruksi yang bervariasi. Word disimpan dengan urutan endian-kecil. Kompatibilitas mundur menjadi motivasi terkuat dalam pengembangan arsitektur x86 (keputusan ini menjadi sangat penting dan sering dikritik, terutama oleh pesaing dari pendukung arsitektur prosesor lainnya, yang dibuat frustasi oleh sukses yang berkelanjutan dari arsitektur ini yang secara umum dipandang memilki banyak kelemahan). Prosesor-prosesor terkini dari x86 menerapkan beberapa langkah penerjemah (dekoder) “tambahan” untuk (saat eksekusi) memecah (sebagian besar) instruksi x86 kedalam potongan-potongan kecil instruksi (dikenal dengan “micro-ops”) yang selanjutnya dieksekusi oleh arsitektur setara dengan arsitektur risc.
Bahasa rakitan dari x86 dibahas secara lebih terperinci di artikel bahasa rakitan x86.

mode real (real mode)

Intel 8086 dan 8088 dilengkapi dengan 14 16-bit register. Empat diantaranya (ax, bx, cx, dx) dirancang sebagai fungsi umum (general purpouse) (meskipun masing-masing juga memiliki fungsi khusus tambahan; misalnya hanya register cx yang dapat digunakan sebagai penghitung (counter) dalam instruksi loop). Setiap register dapat diakses sebagai dua byte (8-bit) terpisah (jadi byte-atas bx’s dapat diakses sebagai bh dan byte-bawah-nya sebagai bl). Selain itu, terdapat juga empat register segmen (cs, ds, ss dan es). Register ini digunakan untuk membangun alamat memori. Ada juga dua register penunjuk (pointer) (sp yang menunjuk pada titik awal stack, dan bp yang dapat menunjuk pada titik manapun dalam stack atau memori). Ada dua register indeks (si dan di) yang dapat digunakan sebagai penunjuk dalam array. Dan terakhir, ada sebuah register penanda (register flag) yang terdapat didalamnya penanda-penanda seperti carry, overflow, zero dan lain-lain, dan juga sebuah penunjuk instruksi (instruction pointer – ip) yang menunjuk ke alamat instruksi yang sedang dieksekusi.

 Dalam mode real, memori diakses secara tersegmentasi. Hal ini dilakukan dengan menggeser (shifting) alamat segmen 4 bit ke kiri dan menambah sebuah ofset untuk menghasilkan alamat akhir sepanjang 20-bit. Contohnya, jika ds berisi nilai a000h dan si berisi nilai 5677h, ds:si akan mengacu pada titik alamat real ds × 16 + si = a5677h. Jadi jumlah total alamat memori yang dapat diakses dalam mode real adalah 220 byte, atau 1 mib, jumlah yang sangat mengesankan di tahun 1978. Seluruh alamat memori terbagi dalam segmen dan ofset; dan setiap tipe akses (kode, data, atau stack) memiliki register segmen tertentu (untuk data register yang digunakan ds, untuk kode digunakan register cs, dan untuk stack digunakan ss). Untuk mengakses data, register segmen dapat secara langsung dipilih (dengan melakukan ubah-paksa (override) prefik segmen) dari empat register segmen yang tersedia.

Dengan aturan ini, dua pasang segmen/ofset yang berbeda bisa mengacu ke lokasi memori absolut yang sama. Jadi bila ds berisi a111h dan si 4567h, ds:si akan menunjuk ke alamat a56777h seperti di atas. Lebih lanjut, cs dan ss berperan vital bagi program agar berfungsi secara benar, sehingga hanya ds dan es yang dapat dipakai untuk mengacu ke segmen data diluar program (atau lebih tepatnya, diluar segmen program yang sedang dieksekusi) atau stack. Skema ini, yang semula bertujuan mempertahankan kompatibilitas dengan intel 8085, sering dikeluhkan oleh para programer (walaupun beberapa programer tidak terlalu mempedulikannya, dan popularitas x86 sebelum tahun-tahun mode proteksi diperkenalkan membuktikan bahwa hal ini bukan cacat yang sangat serius).

Selain itu, 8086 juga memiliki 64 kb alamat i/o 8-bit (atau 32 k-word dari 16-bit), dan satu 64 kb (satu segmen) stack di memori yang didukung oleh hardware (memakai register-register ss, sp, dan bp). Hanya word (2 byte) yang bisa di-push ke stack. Stack tumbuh ke bawah (ke arah alamat yang lebih rendah secara numerik), dengan ujung bawah diacu oleh ss:sp. Ada 256 interrupt yang dapat diaktifkan oleh hardware maupun software. Interrupt tersebut bisa bertingkat, memanfaatkan stack untuk menyimpan alamat balik.

Cpu x86 32-bit yang modern masih mendukung real mode, bahkan memulai operasi pada real mode setelah reset. Kode real mode yang dijalankan pada prosesor-prosesor tersebut bisa memanfaatkan register 32-bit dan register segmen tambahan (fs dan gs) yang mulai tersedia sejak 80386.

Mode terproteksi 16-bit (16-bit protected mode)

Prosesor 80286 dapat menjalankan operating system yang menggunakan mode real 16-bit prosesor 8086 tanpa perubahan pada os, namun prosesor ini juga mempunyai mode lain, yaitu mode terproteksi. Mode terproteksi memungkinkan program untuk mengakses ram yang berukuran 16mb, dan memiliki memori virtual hingga 1gb. Hal ini dimungkinkan karena mode terproteksi menggunakan register segmen untuk menyimpan index ke sebuah tabel segmen. Pada 80286, terdapat dua buah tabel segmen, yaitu tabel gdt dan tabel ldt, masing-masing dapat menyimpan hingga 8192 perinci segmen, tiap segment memberi akses untuk memori sebesar hingga 64kb. Tabel segmen ini menyimpan alamat dasar yang berukuran 24-bit, yang akan digunakan untuk menghitung alamat absolut dari memori yang akan digunakan. Selain itu, segmen-segmen ini dapat diberikan salah satu dari empat jenis level akses.


Walaupun dibuatnya prosesor ini merupakan pengembangan yang baik, prosesor ini sangat jarang digunakan karena mode terproteksi tidak dapat menjalankan program-program yang berjalan mode real yang sudah ada sebagai proses, karena program-program mode real sering mengakses perangkat keras secara langsung dan beberapa ada yang melakukan aritmatika segmen, sehingga tidak dapat dijalankan pada mode terproteksi.




ARM 


ARM adalah prosesor dengan arsitektur set instruksi 32­bit RISC (Reduced Instruction Set Computer) yang dikembangkan oleh ARM Holdings. ARM merupakan singkatan dari Advanced RISC Machine (sebelumnya lebih dikenal dengan kepanjangan Acorn RISC Machine). Pada awalnya ARM prosesor dikembangkan untuk PC (Personal Computer) oleh Acorn Computers, sebelum dominasi Intel x86 prosesor­ Microsoft di IBM PC kompatibel menyebabkan Acorn Computers bangkrut.

Setelah Acorn Computers bangkrut, Apple Computers (sekarang Apple Inc) dan VLSI Technology Inc membeli kekayaan intelektual Acorn Computer, dan mendirikan ARM Ltd. ARM Ltd kemudian melanjutkan proyek Acorn Computer untuk mengembangkan prosesor 32­bit dengan arsitektur RISC yang sederhana dan hemat energi.

Prosesor yang dikembangkan ARM Ltd ternyata tidak diminati oleh kalangan produsen PC, dengan alasan tidak kompatibel dengan arsitektur Intel x86. ARM Ltd kemudian memutuskan untuk tidak memproduksi ARM prosesor, tetapi melisensikan desain prosesor tersebut untuk digabungkan dengan ASIC (Application Specific IC) yang membutuhkan kontroler embedded (contoh: kontroler printer, kontroler mesin cuci, kontroler video dekoder, kontroler ethernet hub/router, dan sebagainya).

Saat ini, selain digunakan untuk ASIC, ARM prosesor juga diproduksi oleh berbagai perusahaan semikonduktor sebagai mikroprosesor terpisah (sebelumnya ARM prosesor selalu di­embeddedkan dengan ASIC) maupun mikrokontroler (dengan pengurangan berbagai fitur yang diperlukan mikroprosesor).

Perusahaan yang dulu ataupun saat ini menggunakan lisensi ARM prosesor meliputi Alcatel­Lucent, Apple Inc., Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation (DEC), Freescale, Intel (melalui akuisisi DEC), LG, Marvell Technology Group, Microsoft, NEC, Nuvoton, Nvidia, NXP (dulu Philips), Oki, Qualcomm, Samsung, Sharp, stmicroelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamaha and ziilabs.


Berbagai macam kontroler berbasis ARM yang terkenal meliputi DEC strongarm (digunakan Intel untuk prosesor PDA), Marvell Xscale (desain Xscale dibeli Marvell dari Intel), Nintendo (untuk prosesor Gameboy, dsi, dan 3DS), Nvidia Tegra, ST­Ericsson Nomadik, Qualcomm Snapdragon, Texas Instruments OMAP product line, Samsung Hummingbird and Apple A4.

Sumber ::
http://id.wikipedia.org/wiki/Arsitektur_ARM
http://riznugraha.wordpress.com/2011/12/23/arsitektur-komputer-von-neumann/
http://maulanaihsan-jarkom.blogspot.com/2013/03/pengertian-risc-dan-cisc.html
http://blog.ub.ac.id/tantiola/category/arsitektur-dan-organisasi-komputer-aok/
http://aldimaulana58.wordpress.com/risc-and-cisc.html