TUGAS MAKALAH
PENGANTAR TEKNOLOGI INFORMASI
“CPU dan Memory Internal”
Nama : Rias Indah P
NIM : L200100149
CPU DAN MEMORY INTERNAL
A. CPU ( Central Processing Unit)
1. Pengantar CPU
CPU(central processing unit) adalah komponen utama dari PC (personal computer). Merupakan otak yang mengatur kegiatan di dalam PC. Semua pekerjaan yang dikerjakan dengan komputer ditampilkan secara langsung atau secara tidak langsung oleh processor. Processor memainkan suatu peranan penting dalam aspek-aspek penting dari sistem komputer. Processor mungkin menjadi faktor penentu tunggal performance sistem dalam PC. Ketika komponen lain juga berperan dalam menentukan performance, kemampuan processor-lah yang sangat menentukan performance maksimum dari suatu sistem. Perangkat-perangkat lain hanya sebagai pendukung processor dalam mencapai potensi maksimalnya. PENGANTAR CPU
Sebuah CPU (Central Processing Unit) atau seringkali disederhanakan secara bahasa menjadi prosesor, merupakan komponen digital dari komputer yang menterjemahkan instruksi dari program komputer dan bertugas memproses data. CPU memperlengkapi komputer digital sehingga mereka dapat diprogram, dan CPU (bersamaan dengan media penyimpanan utama dan fasilitas input/output) merupakan komponen penting disemua masa perkembangan komputer. Sebuah CPU yang dibangun sebagai satu komponen terintergrasi dikenal dengan mikroprosessor (microprocessor). Pada awal pertengahan tahun 1970an, secara bertahap mikroprosesor lama tergantikan oleh rancangan mikroprosesor yang lebih kompleks dan berkemampuan hitung lebih tinggi, dan sekarang istilah "CPU" biasanya ditujukan kepada beberapa tipe mikroprosesor. Istilah "central processing unit" sebenarnya merupakan gambaran dari kelas logic tertentu dari mesin yang mengeksekusi program komputer. Definisi yang luas ini telah diterapkan pada banyak komputer jauh sebelum istilah "CPU" menjadi terkenal seperti sekarang. Bagaimanapun juga, istilah tersebut telah dipergunakan pada industri per-komputer-an setidaknya sejak awal tahun 1960an (weik 1961). Bentuk, rancangan dan implementasi dari CPU telah berubah secara dramatis sejak awal peluncurannya, tetapi operasi dasarnya masih tetap sama.
CPU setelahnya, dibuat secara mandiri sebagai bagian dari -biasanya satu jenis- komputer yang lebih besar. Bagaimanapun juga, metode perancangan mandiri yang mahal dan hanya ditujukan untuk beberapa aplikasi, dilepaskan untuk mengembangkan prosesor secara masal dengan kegunaan yang lebih luas. Standarisasi yang sedang populer ini dimulai di era mainframe transistor dan mini komputer yang dikembangkan secara terpisah, dan percepatan perkembanganya ditambah dengan perkembangan IC (Integrated Circuit) yang semakin populer. IC memungkinkan perancangan dan produksi CPU yang lebih komplek dengan ukuran yang sangat kecil (milimeter). Keduanya, pe-mini-an dan standarisasi dari CPU telah mempercepat kehadiran perangkat digital didunia moderen jauh melampaui perkembangan komputer terdedikasi (dedicated computer) dengan aplikasi terbatas. Mikroprosesor moderen ada hampir disemua perangkat dari automobile hingga ponsel bahkan hingga mainan anak-anak.
Pada mulanya Perkembangan mesin yang menyerupai CPU seperti sekarang, salah satu contohnya ENIAC, mengharuskan melakukan pengkabelan ulang untuk setiap tugas yang diberikan. Mesin dengan pola kerja seperti ini sering disebut sebagai "fixed-program computers", karena komputer tersebut mengharuskan pengaturan secara fisik untuk menjalankan program yang berbeda. Istilah "CPU" seringkali diartikan sebagai piranti peng-eksekusi perangkat lunak (program komputer), perangkat selanjutnya yang lebih cocok disebut sebagai CPU merupakan komputer dengan konsep "stored-program computer".
Ide dari stored-program computer telah ada semenjak perancangan ENIAC, tetapi langsung ditinggalkan untuk mempercepat penyelesaian ENIAC. Pada tanggal 30 Juni 1945, sebelum ENIAC selesai dibangun, John Von Neumann seorang pakar matematik menyebarkan tulisannya yang berjudul "First Draft of a report on the EDVAC". Didalamnya terdapat poin-poin penting rancangan dari stored-program computer yang nantinya akan selesai pada bulan Agustus 1949 (Von Neumann 1945). EDVAC dirancang untuk menampilkan beberapa instruksi (atau operasi) dengan variasi tipe instruksi yang sangat beragam. Instruksi ini dapat dikombinasikan untuk menghasilkan program yang diperlukan oleh pengoprasian EDVAC. Perubahan ini sangat signifikan, karena program yang ditulis untuk EDVAC disimpan pada memori komputer berkecepatan tinggi daripada melakukan pengkabelan secara fisik untuk setiap instruksi yang berbeda. Hal ini menjawab keterbatasan dari ENIAC, yang menyita waktu dan tenaga yang cukup banyak hanya untuk mengatur komputer dalam menyelesaikan sebuah tugas. Dengan rancangan Von Neumann, program, atau perangkat lunak, yang dijalankan oleh (atau pada) EDVAC dapat diubah dengan mudah hanya dengan mengubah isi dari memori computer.
Digitalisasi perangkat elektronik membuat semua CPU beroprasi dengan pengkondisian instruksi secara terpisah, oleh karena itu dibutuhkan sebuah elemen pengubah (switcher) yang bertugas membedakan antara pergantian kondisi (state) instruksi. Sebelum CPU komersial muncul, transistor, electrical relay dan tabung hampa (vacuum tubes/thermionic valves) lazim digunakan sebagai elemen pengubah (switcher) state instruksi.
Di bawah ini adalah contoh gambar dari CPU dan diagram CPU unit (cache) :
2. CPU Processing
Komputer awal mempunyai CPU tunggal yang mengeksekusi instruksi satu demi satu pada setiap waktu, tentu saja disain selanjutnya lebih mengedepankan efektifitas kecepatan komputasi dengan melewatkan beberapa instruksi untuk dieksekusi pada waktu yang sama.
Contoh CPUs :
Name CPU Manufacturer Word Length (Bit) Data Bus Width
(Bit) Clock Speed (Mhz) Used In
Pentium Intel 32 64 75-200 IBM and other PC
Pentium (MMX) Intel 32 64 166-233 Multimedia PCs & workstation
Pentium II Intel 32 64 233-450 High-end PCs & workstation
Pentium III Intel 32 64 450-1500 High-end business PCs, server, and workstation
Power PC Motorola, IIBM, APPLE 32 or
64 64 100-400 High-end PCs & workstation
Alpha DEC/COMPACT 64 64 600+ Compaq & DEC Workstation
Ada empat arsitektur CPU yaitu : Multiple CPU, Array Processor, Multiple functional units, dan Pipelining.
1. Multiple CPU
Berikut ini diagram dari Multiple CPU:
2. Array Processor
Berikut ini diagram dari Array Processor :
3. Multiple Functional Units
Berikut ini diagram dari Multiple Functional Units :
4. Pipelining
Berikut ini diagram dari Pipelining:
3. Komponen CPU
Komponen CPU terbagi atas :
1. Unit kontrol
Unit control 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:
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 serta mengawasi kerja dari ALU.
e. Menyimpan hasil proses ke memori utama.
2. 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. 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.
3. ALU
ALU 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 (<), kurang atau sama dengan (=), lebih besar dari (>), dan lebih besar atau sama dengan (= ).
4. CPU Interconnections
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 /keluaran
4. Fungsi CPU
CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya. Fungsi utama dari CPU adalah melakukan operasi aritmatika dan logika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti papan ketik, pemindai, tuas kontrol, maupun tetikus. CPU dikontrol menggunakan sekumpulan instruksi perangkat lunak komputer. Perangkat lunak tersebut dapat dijalankan oleh CPU dengan membacanya dari media penyimpan, seperti cakram keras, disket, cakram padat, maupun pita perekam. Instruksi-instruksi tersebut kemudian disimpan terlebih dahulu pada memori fisik (RAM), yang mana setiap instruksi akan diberi alamat unik yang disebut alamat memori. Selanjutnya, CPU dapat mengakses data-data pada RAM dengan menentukan alamat data yang dikehendaki.
Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan bus, yang menghubungkan antara CPU dengan RAM. Data kemudian didekode dengan menggunakan unit proses yang disebut sebagai pendekoder instruksi yang sanggup menerjemahkan instruksi. Data kemudian berjalan ke unit aritmatika dan logika (ALU) yang melakukan kalkulasi dan perbandingan. Data bisa jadi disimpan sementara oleh ALU dalam sebuah lokasi memori yang disebut dengan register supaya dapat diambil kembali dengan cepat untuk diolah. ALU dapat melakukan operasi-operasi tertentu, meliputi penjumlahan, perkalian, pengurangan, pengujian kondisi terhadap data dalam register, hingga mengirimkan hasil pemrosesannya kembali ke memori fisik, media penyimpan, atau register apabila akan mengolah hasil pemrosesan lagi. Selama proses ini terjadi, sebuah unit dalam CPU yang disebut dengan penghitung program akan memantau instruksi yang sukses dijalankan supaya instruksi tersebut dapat dieksekusi dengan urutan yang benar dan sesuai. 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.
Siklus fetch-eksekusi bisa dijelaskan sebagai berikut :
a. Di awal setiap siklus, CPU akan membaca dari memori utama,
b. Sebuah register, yang disebut Program Counter (PC), akan mengawasi dan menghitung instruksi selanjutnya,Mengambil data dari memori utama (jika diperlukan) untuk diproses.
c. Ketika CPU membaca sebuah instruksi, Program Counter akan menambah satu hitungannya,Menyimpan hasil proses ke memori utama.
d. Lalu instruksi-instruksi yang dibaca tersebut akan dimuat dalam suatu register yang disebut register instruksi (IR), dan akhirnya
e. CPU akan melakukan interpretasi terhadap instruksi yang disimpan dalam bentuk kode binari, dan melakukan aksi yang sesuai dengan instruksi tersebut.
5. 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 akan ditampilkan ke output-devices.
6. Mengukur Ukuran dan Kecepatan CPU
a. Mengukur ukuran CPU
Tata cara dalam mengukur ukuran CPU diantaranya:
1. Ukuran CPU mengacu pada banyaknya bytes yang dapat dimanipulasi pada satu waktu oleh Arithmetic and Logic Unit (ALU).
2. Sistem dengan CPU lebih besar biasanya akan lebih cepat dari yang lebih kecil.
3. Semua sistem operasi memerlukan ukuran CPU minimum agar bisa dijalankan.
4. Ukuran CPU adalah dalam word (kata), atau bit. Sebagai contoh, 16-bit CPU mempunyai satu word terdiri dari 2 byte.
5. Pentingnya ukuran CPU adalah bahwa CPU dapat memproses hanya sejumlah bytes dan dapat menyimpan pada waktu yang sama.
6. Suatu CPU 16-bit dapat mengambil dan memproses 2 bytes, tetapi suatu CPU 32-bit dapat mengambil dan memproses dua kali lebih banyak.
b. Mengukur Kecepatan CPU
Tata cara dalam mengukur kecepatan CPU diantaranya:
1. Kecepatan CPU mengacu pada banyaknya instruksi yang dapat dieksekusi oleh CPU dalam waktu tertentu– biasanya satu detik/second.
2. Workstation terkini mampu mengeksekusi instruksi diatas 100 juta instruksi per detik.
3. Sistem komputer mempunyai suatu pulsa clock/jam internal yang membangkitkan pulsa elektrik.
4. Pulsa/denyut elektrik ini, di samping memelihara semua pengoperasian sistem tepat waktu, juga menentukan seberapa banyak instruksi dapat dieksekusi dalam waktu satu detik.
5. Waktunya diantara pulsa/denyut elektrik disebut satu cycle, dan banyaknya clock cycle per detik diukur dalam Megahertz– berjuta-juta cycle per detik.
6. Selama setiap clock cycle, CPU dapat melaksanakan paling banyak satu instruksi. Sebagai contoh, jika suatu instruksi software/perangkat lunak memerlukan 2.7 clock cycle untuk dieksekusi, maka total waktu akan menjadi 3 clock cycle.
7. Cara Memilih CPU yang benar
a. Berikut ini adalah cara memilih CPU yang benar :
1. Memilih CPU yang benar adalah agak rumit.
2. Pembelian CPU yang tepat merupakan suatu langkah penghematan.
3. Pembelian CPU yang terlalu kecil/sederhana dapat membatasi kinerja.
b. Berikut adalah beberapa petunjuk untuk memilih suatu CPU.
1. Interface Software Aplikasi
a. Banyak tipe software aplikasi yang tidak dirancang untuk memanfaatkan kelebihan CPU, namun juga tidak akan menampilkan performansi yang baik jika CPU yang dihadirkan tidak bagus.
b. Secara umum, pengembangan software aplikasi mengeksploitasi/manfaatkan setiap generasi terbaru dari CPU dan menawarkan fitur-fitur baru serta kemudahan dalam penggunaan.
2. Interface software Sistem Operasi
a. Beberapa sistem operasi memerlukan suatu CPU yang tentu saja dilihat dari ukuran, kecepatan, atau teknologinya( RISC atau CISC).
b. Pengalaman, merupakan guru yang baik untuk menentukan software aplikasi apa yang dibutuhkan, sistem operasi apa yang mampu mensupport software aplikasi tersebut dan CPU yang terbaik untuk sistem operasi yang digunakan.
c. Dalam banyak kejadian, orang akan memilih OS berdasar pada OS yang digunakan oleh koleganya/temannya atau OS yang digunakan oleh perusahaan dimana orang tersebut bekerja.
3. Merek
a. Jika telah memutuskan suatu merek ( yang sebagian besar, Apple atau IBM compatible), berarti kita telah menentukan pilihan tentang CPU yang akan kita miliki tanpa memperhatikan kecepatan atau ukurannya.
b. Sebagai contoh, keluarga IBM compatible dari mikro komputer menggunakan CPU Intel x86, dan Apple menggunakan CPU Motorola dan PowerPC.
8. Scalar dan Superscalar CPU
a. Scalar CPU adalah CPU yang dapat mengeksekusi paling banyak satu instruksi per cycle. Scalar CPU meliputi keluarga Intel x86 ( keluarga PC IBM) dan keluarga Motorola 68000 (Apple Macintosh).
b. Superscalar CPU : CPU yang dapat mengeksekusi lebih dari satu instruksi per cycle, meliputi Intel Pentium, Power PC, AMD K5, Cyrix MJ. Superscalar CPU mempunyai dua atau lebih ALU yang dapat memproses informasi secara serempak.
c. Berikut ini adalah contoh diagram yang menunjukkan perbedaan antara Scalar CPU dengan Superscalar CPU :
9. Teknologi CPU CISC & RISC
a. Pengantar CISC dan RISC
Sudah sering kita mendengar debat yang cukup menarik antara komputer personal IBM dan kompatibelnya yang berlabel Intel Inside dengan komputer Apple yang berlabel PowerPC. Perbedaan utama antara kedua komputer itu ada pada tipe prosesor yang digunakannya. Prosesor PowerPC dari Motorola yang menjadi otak utama komputer Apple Macintosh dipercaya sebagai prosesor RISC, sedangkan Pentium buatan Intel diyakini sebagai prosesor CISC. Kenyataannya komputer personal yang berbasis Intel Pentium saat ini adalah komputer personal yang paling banyak populasinya. Tetapi tidak bisa pungkiri juga bahwa komputer yang berbasis RISC seperti Macintosh, SUN adalah komputer yang handal dengan sistem pipelining, superscalar, operasi floating point dan sebagainya.
Apakah memang RISC lebih lebih baik dari CISC atau sebaliknya. Tetapi tahukah kita dimana sebenarnya letak perbedaan itu. Apakah prosesor dengan instruksi yang lebih sedikit akan lebih baik dari prosesor yang instruksinya kompleks dan lengkap. Apakah memang perbedaan prosesor itu hanya dari banyak atau tidaknya instruksi saja. Bukankah jumlah instruksi tidak berhubungan dengan ke-handal-an suatu prosesor. Pertanyaan-pertanyaan ini yang hendak dijawab melalui tulisan berikut. Namun supaya lebih dekat dengan elektronika praktis, ElectronicLab akan lebih fokus pada mikrokontroler low-cost yang berbasis RISC dan CISC. Sebagai contoh dari mikrokontroler CISC adalah 68HC11 buatan Motorola dan 80C51 dari Intel. Kita juga mengenal keluarga PIC12/16CXX dari Microchip dan COP8 buatan National Semiconductor sebagai mikrokontroler yang berbasis RISC.
CISC adalah singkatan dari Complex Intruction Set Computer dimana prosesor tersebut memiliki set instruksi yang kompleks dan lengkap. Sedangkan RISC adalah singkatan dari Reduced Instruction Set Computer yang artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit. Karena perbedaan keduanya ada pada kata set instruksi yang kompleks atau sederhana (reduced), maka mari kita bahas sedikit tentang intruksi itu sendiri.
Sistem mikrokontroler selalu terdiri dari perangkat keras (hardware) dan perangkat lunak (software). Perangkat lunak ini merupakan deretan perintah atau instruksi yang dijalankan oleh prosesor secara sekuensial. Instruksi itu sendiri sebenarnya adalah bit-bit logik 1 atau 0 (biner) yang ada di memori program. Angka-angka biner ini jika lebarnya 8 bit disebut byte dan jika 16 bit disebut word. Deretan logik biner inilah yang dibaca oleh prosesor sebagai perintah atau instruksi. Supaya lebih singkat, angka biner itu biasanya direpresentasikan dengan bilangan hexa (HEX). Tetapi bagi manusia, menulis program dengan angka biner atau hexa sungguh merepotkan. Sehingga dibuatlah bahasa assembler yang direpresentasikan dengan penyingkatan kata-kata yang cukup dimengerti oleh manusia.
Bahasa assembler ini biasanya diambil dari bahasa Inggris dan presentasinya itu disebut dengan Mnemonic. Masing-masing pabrik mikroprosesor melengkapi chip buatannya dengan set instruksi yang akan dipakai untuk membuat program.
Biner Hexa Mnemonic
10110110 B6 LDAA ...
10010111 97 STAA ...
01001010 4A DECA ...
10001010 8A ORAA ...
00100110 26 BNE ...
00000001 01 NOP...
01111110 7E JMP ...
Sebagian set instruksi 68HC11
Pada awalnya, instruksi yang tersedia amat sederhana dan sedikit. Kemudian desainer mikroprosesor berlomba-lomba untuk melengkapi set instruksi itu selengkap-lengkapnya. Jumlah instruksi itu berkembang seiring dengan perkembangan desain mikroprosesor yang semakin lengkap dengan mode pengalamatan yang bermacam-macam. Mikroprosesor lalu memiliki banyak instruksi manipulasi bit dan seterusnya dilengkapi dengan instruksi-instruksi aritmatik seperti penjumlahan, pengurangan, perkalian dan pembagian. Seperti contohnya 68HC11 banyak sekali memiliki set instruksi untuk percabangan seperti BNE, BLO, BLS, BMI, BRCLR, BRSET dan sebagainya.
Perancang mikroprosesor juga memperkaya ragam instruksi tersebut dengan membuat satu instruksi tunggal untuk program yang biasanya dijalankan dengan beberapa intruksi. Misalnya pada 80C51 untuk contoh program berikut ini.
LABEL ...
...
DEC R0
MOV A,R0
JNZ LABEL
Program 'decrement' 80C51
Program ini adalah program pengulangan yang mengurangi isi register R0 sampai register R0 menjadi kosong (nol). Intel menambah set instruksinya dengan membuat satu instruksi khusus untuk keperluan seperti ini :
LABEL ....
DJNZ R0,LABEL
Instruksi 'decrement jump not zero' 80C51
Kedua contoh program ini hasilnya tidak berbeda. Namun demikian, instruksi kompleks seperti DJNZ mempermudah pembuat program. Set instruksi yang lengkap diharapkan akan semakin membuat pengguna mikroprosesor leluasa menulis program dalam bahasa assembler yang mendekati bahasa pemrograman level tinggi. Intel 80C51 yang dikembangkan dari basis prosesor 8048 dirilis pada tahun 1976 memiliki tidak kurang dari 111 instruksi. Tidak ketinggalan, 68HC11 dari Motorola yang populer di tahun 1984 dilengkapi dengan 145 instruksi. Karena banyak dan kompleksnya instruksi yang dimiliki 68HC11 dan 80C51, kedua contoh mikrokontroler ini disebut sebagai prosesor CISC.
Debat CISC versus RISC dimulai ketika pada tahun 1974 IBM mengembangkan prosesor 801 RISC. Argumen yang dipakai waktu itu adalah mengapa diperlukan instruksi yang kompleks. Sebab pada prinsipnya, instruksi yang kompleks bisa dikerjakan oleh instruksi-instruksi yang lebih sederhana dan kecil. Ketika itu penggunaan bahasa tingkat tinggi seperti Fortran dan kompiler lain (compiler/interpreter) mulai berkembang. Apalagi saat ini compiler seperti C/C++ sudah lazim digunakan. Sehingga sebenarnya tidaklah diperlukan instruksi yang kompleks di tingkat prosesor. Kompiler yang akan bekerja men-terjemahkan program dari bahasa tingkat tinggi menjadi bahasa mesin.
Untuk melihat bagaimana perbedaan instruksi RISC dan CISC, mari kita lihat bagaimana keduanya melakukan perkalian misalnya c = a x b. Mikrokontroler 68HC11 melakukannya dengan program sebagai berikut :
LDAA #$5
LDAB #$10
MUL
Program 5x10 dengan 68HC11
Cukup tiga baris saja dan setelah ini accumulator D pada 68HC11 akan berisi hasil perkalian dari accumulator A dan B, yakni 5 x 10 = 50. Program yang sama dengan PIC16CXX, adalah seperti berikut ini.
MOVLW 0x10
MOVWF Reg1
MOVLW 0x05
MOVWF Reg2
CLRW
LOOP ADDWF Reg1,0
CFSZ Reg2,1
GOTO LOOP
…
…
Program 5x10 dengan PIC16CXX
Prosesor PIC16CXX yang RISC ini, tidak memiliki instruksi perkalian yang khusus. Tetapi perkalian 5x10 itu sama saja dengan penjumlahan nilai 10 sebanyak 5 kali. Kelihatannya membuat program assembly dengan prosesor RISC menjadi lebih kompleks dibandingkan dengan prosesor CISC. Tetapi perlu diingat, untuk membuat instruksi yang kompleks seperti instruksi MUL dan instruksi lain yang rumit pada prosesor CISC, diperlukan hardware yang kompleks juga. Dibutuhkan ribuan gerbang logik (logic gates) transistor untuk membuat prosesor yang demikian. Instruksi yang kompleks juga membutuhkan jumlah siklus mesin (machine cycle) yang lebih panjang untuk dapat menyelesaikan eksekusinya. Instruksi perkalian MUL pada 68HC11 memerlukan 10 siklus mesin dan instruksi pembagiannya memerlukan 41 siklus mesin.
Pendukung RISC berkesimpulan, bahwa prosesor yang tidak rumit akan semakin cepat dan handal. Hampir semua instruksi prosesor RISC adalah instruksi dasar (belum tentu sederhana), sehingga instruksi-instruksi ini umumnya hanya memerlukan 1 siklus mesin untuk menjalankannya. Kecuali instruksi percabangan yang membutuhkan 2 siklus mesin. RISC biasanya dibuat dengan arsitektur Harvard, karena arsitektur ini yang memungkinkan untuk membuat eksekusi instruksi selesai dikerjakan dalam satu atau dua siklus mesin.
Sebagai perbandingan jumlah instruksi pada prosesor RISC, COP8 hanya dilengkapi dengan 58 instruksi dan PIC12/16CXX hanya memiliki 33 instruksi saja. Untuk merealisasikan instruksi dasar yang jumlah tidak banyak ini, mikroprosesor RISC tidak memerlukan gerbang logik yang banyak. Karena itu dimensi dice IC dan konsumsi daya prosesor RISC umumnya lebih kecil dibanding prosesor CISC. Bukan karena kebetulan, keluarga mikrokontroler PICXX banyak yang dirilis ke pasar dengan ukuran mini. Misalnya PIC12C508 adalah mikrokontroler DIP 8 pin.
CISC dan RISC perbedaannya tidak signifikan jika hanya dilihat dari terminologi set instruksinya yang kompleks atau tidak (reduced). Lebih dari itu, RISC dan CISC berbeda dalam filosofi arsitekturnya. Filosofi arsitektur CISC adalah memindahkan kerumitan software ke dalam hardware. Teknologi pembuatan IC saat ini memungkinkan untuk menamam ribuan bahkan jutaan transistor di dalam satu dice. Bermacam-macam instruksi yang mendekati bahasa pemrogram tingkat tinggi dapat dibuat dengan tujuan untuk memudahkan programmer membuat programnya. Beberapa prosesor CISC umumnya memiliki microcode berupa firmware internal di dalam chip-nya yang berguna untuk menterjemahkan instruksi makro. Mekanisme ini bisa memperlambat eksekusi instruksi, namun efektif untuk membuat instruksi-instruksi yang kompleks. Untuk aplikasi-aplikasi tertentu yang membutuhkan singlechip komputer, prosesor CISC bisa menjadi pilihan.
Sebaliknya, filosofi arsitektur RISC adalah arsitektur prosesor yang tidak rumit dengan membatasi jumlah instruksi hanya pada instruksi dasar yang diperlukan saja. Kerumitan membuat program dalam bahasa mesin diatasi dengan membuat bahasa program tingkat tinggi dan compiler yang sesuai. Karena tidak rumit, teorinya mikroprosesor RISC adalah mikroprosesor yang low-cost dalam arti yang sebenarnya. Namun demikian, kelebihan ruang pada prosesor RISC dimanfaatkan untuk membuat sistem-sistem tambahan yang ada pada prosesor modern saat ini. Banyak prosesor RISC yang di dalam chip-nya dilengkapi dengan sistem superscalar, pipelining, caches memory, register-register dan sebagainya, yang tujuannya untuk membuat prosesor itu menjadi semakin cepat.
b. Perkalian Dua Bilangan dalam Memori
Pada bagian kiri terlihat sebuah struktur memori (yang disederhanakan) suatu komputer secara umum. Memori tersebut terbagi menjadi beberapa lokasi yang diberi nomor 1 (baris): 1 (kolom) hingga 6:4. Unit eksekusi bertanggung-jawab untuk semua operasi komputasi. Namun, unit eksekusi hanya beroperasi untuk data-data yang sudah disimpan ke dalam salah satu dari 6 register (A, B, C, D, E atau F). Misalnya, kita akan melakukan perkalian (product) dua angka, satu disimpan di lokasi 2:3 sedangkan lainnya di lokasi 5:2, kemudian hasil perkalian tersebut dikembalikan lagi ke lokasi 2:3.
c. Persamaan Unjuk-kerja (Performance) CISC dan RISC
Persamaan berikut biasa digunakan sebagai ukuran unjuk-kerja suatu komputer:
Pendekatan CISC bertujuan untuk meminimalkan jumlah instruksi per program, dengan cara mengorbankan kecepatan eksekusi sekian silus/detik. Sedangkan RISC bertolak belakang, tujuannya mengurangi jumlah siklus/detik setiap instruksi dibayar dengan bertambahnya jumlah instruksi per program.
d. Perbedaan antara CISC dengan RISC.
CISC RISC
Penekanan pada Hardware Penekanan pada Software
Termasuk Instruksi kompleks multi-clock Single-clock, hanya sejumlah kecil instruksi
Memori ke memori: “LOAD” dan “STORE” saling bekerjasama. Register ke register: “LOAD” dan “STORE” adalah instruksi terpisah
Ukuran kode kecil, kecepatan rendah Ukuran kode besar, kecepatan (relatif) tinggi
Transistor digunakan untuk menyimpan instruksi kompleks Transistor banyak dipakai untuk register memori
B. Memory Internal
1. Apa sich Memori Internal itu???
Memori adalah bagian dari komputer tempat program – program dan data – data disimpan. Istilah store atau storage untuk memori, meskipun kata storage sering digunakan untuk menunjuk ke penyimpanan disket. Sedangkan yang dimaksud dengan memori internal itu sendiri adalah memori yang dapat diakses langsung oleh prosesor, register yang terdapat di dalam prosesor, cache memori dan memori utama berada di luar prosesor.
2. Karakteristik Sistem Memori Secara Umum
a. Lokasi Memori
Ada tiga lokasi keberadaan memori di dalam sistem komputer, yaitu:
1. Memori Lokal
a. Memori ini built-in berada dalam CPU (mikroprosesor),
b. Memori ini diperlukan untuk semua kegiatan CPU,
c. Memori ini disebut register.
2. Memori Internal
a. Berada di luar CPU tetapi bersifat internal terhadap sistem komputer,
b. Diperlukan oleh CPU untuk proses eksekusi (operasi) program, sehingga dapat diakses secara langsung oleh prosesor (CPU) tanpa modul perantara,
c. Memori internal sering juga disebut sebagai memori primer atau memori utama.
d. Memori internal biasanya menggunakan media RAM
3. Memori Eksternal
a. Bersifat eksternal terhadap sistem komputer dan tentu saja berada di luar CPU,
b. Diperlukan untuk menyimpan data atau instruksi secara permanen.
c. Tidak diperlukan di dalam proses eksekusi sehingga tidak dapat diakses secara langsung oleh prosesor (CPU). Untuk akses memori eksternal ini oleh CPU harus melalui pengontrol/ modul I/O.
d. Memori eksternal sering juga disebut sebagai memori sekunder.
e. Memori ini terdiri atas perangkat storage peripheral seperti : disk, pita magnetik, dll
b. Kapasitas Memori
Kapasitas register (memori lokal) dinyatakan dalam bit. Kapasitas memori internal biasanya dinyatakan dalam bentuk byte(1 byte = 8 bit) atau word. Panjang word umum adalah 8, 16, dan 32 bit. Kapasitas memori eksternal biasanya dinyatakan dalam byte.
c. Satuan Transfer
Satuan transfer sama dengan jumlah saluran data yang masuk ke dan keluar dari modul memori. Bagi memori internal (memori utama), satuan transfer merupakan jumlah bit yang dibaca atau yang dituliskan ke dalam memori pada suatu saat. Bagi memori eksternal, data ditransfer dalam jumlah yang jauh lebih besar dari word, dalam halini dikenal sebagai block.
d. Metode Akses Memori
Terdapat empat jenis pengaksesan satuan data, sebagai berikut :
1. Sequential Access
Memori diorganisasikan menjadi unit-unit data, yang disebut record. Akses dibuat dalam bentuk urutan linier yang spesifik. Informasi pengalamatan dipakai untuk memisahkan record-record dan untuk membantu proses pencarian. Mekanisme baca/tulis digunakan secara bersama (shared read/write mechanism), dengan cara berjalan menuju lokasi yang diinginkan untuk mengeluarkan record. Waktu access record sangat bervariasi. Contoh sequential access adalah akses pada pita magnetik.
2. Direct Access
Seperti sequential access, direct access juga menggunaka shared read/write mechanism, tetapi setiap blok dan record memiliki alamat yang unik berdasarkan lokasi fisik. Akses dilakukan secara langsung terhadap kisaran umum (general vicinity) untuk mencapai lokasi akhir. Waktu aksesnya bervariasi. Contoh direct access adalah akses pada disk.
3. Random Access
Setiap lokasi dapat dipilih secara random dan diakses serta dialamati secara langsung. Waktu untuk mengakses lokasi tertentu tidak tergantung pada urutan akses sebelumnya dan bersifat konstan. Contoh random access adalah sistem memori utama.
4. Associative Access
Setiap word dapat dicari berdasarkan pada isinya dan bukan berdasarkan alamatnya. Seperti pada RAM, setiap lokasi memiliki mekanisme pengalamatannya sendiri. Waktu pencariannya tidak bergantung secara konstan terhadap lokasi atau pola access sebelumnya. Contoh associative access adalah memori cache.
e. Kinerja Memori
Ada tiga buah parameter untuk kinerja sistem memori, yaitu :
1. Waktu Akses (Access Time)
Bagi RAM, waktu akses adalah waktu yang dibutuhkan untuk melakukan operasi baca atau tulis. Sedangkan bagi non RAM, waktu akses adalah waktu yang dibutuhkan untuk melakukan mekanisme baca tulis pada lokasi tertentu.
2. Waktu Siklus (Cycle Time)
Waktu siklus adalah waktu akses ditambah dengan waktu transien hingga sinyal hilang dari saluran sinyal atau untuk menghasilkan kembali data bila data ini dibaca secara destruktif.
3. Laju Pemindahan (Transfer Rate)
Transfer rate adalah kecepatan pemindahan data ke unit memori atau ditransfer dari unit memori. Bagi RAM, transfer rate sama dengan 1/(waktu siklus).
f. Tipe Fisik Memori
Ada dua tipe fisik memori, yaitu :
1. Memori semikonduktor, memori ini memakai teknologi LSI atau VLSI (very large scale integration). Memori ini banyak digunakan untuk memori internal misalnya RAM.
2. Memori permukaan magnetik, memori ini banyak digunakan untuk memori eksternal yaitu untuk disk atau pita magnetik.
g. Karakteristik Fisik
Ada dua kriteria yang mencerminkan karakteristik fisik memori, yaitu:
1. Volatile dan Non-volatile
Pada memori volatile, informasi akan rusak secara alami atau hilang bila daya listriknya dimatikan. Pada memori non-volatile, sekali informasi direkam akan tetap berada di sana tanpa mengalami kerusakan sebelum dilakukan perubahan. Pada memori ini daya listrik tidak diperlukan untuk mempertahankan informasi tersebut. Memori permukaan magnetik adalah non volatile. Memori semikonduktor dapat berupa volatile atau non volatile.
2. Erasable dan Non-erasable
Erasable artinya isi memori dapat dihapus dan diganti dengan informasi lain. Memori semikonduktor yang tidak terhapuskan dan non volatile adalah ROM.
h. Organisasi
Yang dimaksud dengan organisasi adalah pengaturan bit dalam menyusun word secara fisik
3. Hirarki Memori
Untuk mendapatkan kinerja terbaik, memori harus mampu mengikuti CPU. Artinya apabila CPU sedang mengeksekusi instruksi, kita tidak perlu menghentikan CPU untuk menunggu datangnya instruksi atau operand. Untuk mendapatkan kinerja terbaik, memori menjadi mahal, berkasitas relatif rendah, dan waktu access yang cepat.
Untuk memperoleh kinerja yang optimal, perlu kombinasi teknologi komponen memori. Dari kombinasi ini dapat disusun hirarki memori sbb.:
Register
Cache
Semakin menurun hirarki, maka hal-hal di bawah ini akan terjadi :
a) Penurunan harga per bit
b) Peningkatan kapasitas
c) Peningkatan waktu akses
d) Penurunan frekuensi akses memori oleh CPU
»» read more