Struktur dan fungsi CPU
CPU (prosesor) merupakan komponen terpenting dari sistem komputer.CPU adalah komponen pengolah data berdasarkan instruksi – instruksi yang diberikan kepadanya.Dalam mewujudkan fungsi dan tugasnya, CPU tersusun atas beberapa komponen sebagai bagian dari struktur CPU, seperti terlihat pada gambar komponen CPU dan struktur internal CPU. CPU tersusun atas beberapa komponen, yaitu :
- Arithmetic and Logic Unit (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.
- Control Unit, bertugas mengontrol operasi CPU dan secara keselurahan mengontrol computer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi – fungsi operasinya. Termasuk dalam tanggung jawab unit kontrol adalah mengambil instruksi – instruksi dari memori utama dan menentukan jenis instruksi tersebut.
- 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.
- 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.
Tugas dari CU adalah sebagai berikut:
- Mengatur dan mengendalikan alat-alat input dan output.
- Mengambil instruksi-instruksi dari memori utama.
- Mengambil data dari memori utama kalau diperlukan oleh proses.
- Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandinganlogika serta mengawasi kerja.
- Menyimpan hasil proses ke memori utama.
- Menentukan elemen dasar prosesor
- Menjelaskan operasi mikro yang akan dilakukan prosesor
- Menentukan fungsi-fungsi yang harus dilakukan unit control agar menyebabkan pembentukan operasi mikro
- Clock / pewaktu
Pewaktu adalah cara unit control dalam menjaga waktunya. Unit control menyebabkan sebuah operasi mikro (atau sejumlah operasi mikro yang bersamaan) dibentuk bagi setiap pulsa waktu.Pulsa ini dikenal sebagai waktu siklus prosesor. - Register instruksi
Opcode instruksi saat itu digunakan untuk menentukan operasi mikro mana yang akan dilakukan selama siklus eksekusi. - Flag
Flag ini diperlukan oleh unit control untuk menentukan status prosesor dan hasil operasi ALU sebelumnya. - Sinyal control untuk mengontrol bus
Bagian bus control bus system memberikan sinyal-sinyal ke unit control, seperti
Sinyal-sinyal interupsi dan acknowledgement.
Keluaran-keluaran unit control:
Sinyal control didalam prosesor terdiri dari dua macam:
- Sinyal-sinyal yang menyebabkan data dipindahkan dari register yang satu keregister yang lainnya,
- Sinyal-sinyal yang dapat mengaktifasi fungsi-fungsi ALU tertentu.
Register
Sistem Komputer menggunakan hirarki memori pada tingkatan yang atas, memori lebih cepat, lebih kecil, lebih mahal. Di dalam CPU, terdapat sekumpulan register yang tingkatan memorinya berada di atas hirarki memori utama dan cache. Register dalam CPU memiliki dua fungsi:
1. User-visible Register
User-visible Register adalah register yang dapat direferensikan dengan menggunakan bahasa mesin yang dieksekusi CPU, User-visible terdiri dari :
A. General Purpose Register
- Digunakan untuk mode pengalamatan dan data.
- Akumulator ( aritmatika, Shift, Rotate)
- Base Register (Rotate,Shift, aritmatika)
- Counter Register ( Looping)
- Data Register (menyimpan alamat I/O device).
B. Register Alamat
- Digunakan untuk mode pengalamatan
- Segment Register (Code Segment, Data Segment, Stack Segment, Extra Segment)
- Register Index / Stack Index, Data Index (untuk menyimpan alamat-alamat yang terindeks)
- Stack Pointer (register yang dedicated menunjuk kebagian teratas stack)
C. Register Data
- Digunakan untuk menampung data
D. Register Kode Status Kondisi (Flag)
- Kode yang menggambarkan hasil operasi sebelumnya
2. Control and Register
Control and register adalah register-register yang digunakan oleh unit kontrol untuk mengontrol operasi CPU dan oleh program sistem operasi untuk mengntrol eksekusi program. Terdapat empat register yang penting adalah :
A. Program Counter (PC)
- Berisi alamat instruksi yang akan diambil
B. Instruction Register (IR)
- Berisi alamat instruksi terakhir
C. Memory Address Register (MAR)
- Berisi alamat penyimpanan dalam memorid.
D. Memori Buffer Register (MBR)
- Berisi data yang dibaca dari memori atau yang diyliskan ke memori
E. Memori Data Register (MDR)
- Merupakan register yang digunakan untuk menampung data atau instruksi hasil pengiriman dari memori utama ke CPU atau menampung
Data yang akan direkam ke momori utama dari hasil pengolahan CPU. Fungsi CPU
1. Menjalankan program – program yang disimpan dalam memori utama dengan cara mengambil instruksi – instruksi, menguji instruksi tersebut dan mengeksekusinya satu persatu sesuai alur perintah.
2. Sehingga langkah-langkah pada operasi CPU, yaitu operasi :
- Pembacaan instruksi (fetch) dan
- Pelaksanaan instruksi (execute)
Bab 2 – Memahami Karakteristik set Instruksi
Elemen Instruksi
Agar dapat dieksekusi, setiap instruksi harus berisi informasi yang diperlukan oleh CPU. Informasi itu dituangkan dalam elemen-elemen instruksi:
Representasi Instruksi
Dalam komputer, instruksi direpresentasikan oleh sekumpulan bit. Dalam penulisan format instruksi (instruction format) biasanya dibagi dalam beberapa kolom berkaitan dengan elemen-elemen yang akan mengisi instruksi.
Apa Itu Mnemonic? Adalah singkatan-singkatan yang mengindikasikan suatu operasi yang merupakan representasi dari opcode. Contoh:
Mnemonic
ADD Add (penambahan)
SUB Substract (pengurangan)
LOAD Muatkan data dari memori
INC Increment (penambahan dengan satu)
Mnemonic Operand
ADD A
Artinya menambah secara langsung 8 bit data ke dalam isi akumulator dan menyimpan hasil di akumulator.
Operand juga dapat direpresentasikan secara simbolik.
Misalnya:
Mnemonic Operand
ADD R,Y
Artinya tambahkan nilai lokasi Y ke isi register R F'emrogram dapat mendahului dengar definisi-definisi: X = 513,Y = 514, dst. Program akan mengkonversikan opcode dan refercnsi operand menjadi bentuk biner, akhirnya akan membentuk instruksi mesin biner.
2.1.3. Rangkuman
Elemen-elemen instruksi yang diperlukan oleh CPU, antara lain; Operation Code/Kode Operasi; Operasi dispesifikasikan oleh kode biner; Source Operand Reference/Referensi Operand Sumber; Result Operand Reference/Reference Operand Hasil; Next Instruction Reference/Reference Operand Selanjutnya.
Sumber dan hasil operand dapat berada di salah satu dari tiga daerah, yaitu:
Memori utama atau memori virtual; Register CPU; Perangkat I/O.
Dalam komputer, instruksi direpresentasikan oleh sekumpulan bit.Mnemonic adalah singkatan-singkatan yang mengindikasikan suatu operasi yang merupakan representasi dari opcode. Contoh: ADD; SUB; LOAD; INC.
Tipe atau jenis-jenis instruksi
Data movement terdiri dari 2 bagian besar yaitu :
Load berfungsi untuk memasukan data / transaksi ke sebuah table. Dapat dikatakan juga insert, replace, atau update. Sedangkan upload berfungsi untuk membuat dari data table ke fisik / file. Kelemahan load adalah dalam prosesnya bisa saja terjadi data yang tidak berpindah secara sempurna. Upload Parameter
Distribution Database
Dalam distribution database terdapat 3 istilah yaitu :
terpusat memang diuntungkan dalam sisi maintenance sedangkan server terdistribusi lebih rumit dalam proses integrasinya.
Jika database terdistribusi paling tidak membutuhkan Sumber Daya Manusia [SDM] yang baik, network yang lebih baik karena permasalahan network itu sangat fatal dan biasanya permasalahannya tidak jauh – jauh dari permasalahan traffic network.Dan yang tidak boleh dilupakan adalah request dan respon.
4. Control: Test and branch instructions
Unit kendali (bahasa Inggris: Control Unit - CU) adalah salah satu bagian dari CPU yang bertugas untuk memberikan arahan/kendali/ kontrol terhadap operasi yang dilakukan di bagian ALU (Arithmetic Logical Unit) di dalam CPU tersebut. Output dari CU ini akan mengatur aktivitas dari bagian lainnya dari perangkat CPU tersebut.
Pada awal-awal desain komputer, CU diimplementasikan sebagai ad-hoc logic yang susah untuk didesain. Sekarang, CU diimplementasikan sebagai sebuah microprogram yang disimpan di dalam tempat penyimpanan kontrol (control store). Beberapa word dari microprogram dipilih oleh microsequencer dan bit yang datang dari word-word tersebut akan secara langsung mengontrol bagian-bagian berbeda dari perangkat tersebut, termasuk di antaranya adalah register, ALU, register instruksi, bus dan peralatan input/output di luar chip. Pada komputer modern, setiap subsistem ini telah memiliki kontrolernya masing-masing, dengan CU sebagai pemantaunya (supervisor).
2.3 Kegiatan belajar 3 – Tipe – tipe operand
Tipe-tipe Operand
A. Tipe dasar adalah tipe data yang selalu tersedia pada setiap bahasa pemograman, antara lain :
a. Bilangan bulat
Karakter adalah data tunggal yang mewakili semua huruf, simbol baca dan juga simbol angka yang tidak dapat dioperasikan secara sistematis.Tipe ini dapat dituliskan sebagai char.
B. Tipe bentukan adalah tipe data yang dibentuk dari kombanisasi tipe dasar, antara lain :
a. Array (larik)
Selama ini kita menggunakan satu variabel untuk menyimpan 1 buah nilai dengan tipe data tertentu. misalnya : int a1,a2,a3,a4,a5;
Deklarasi variabel diatas menggunakan menyimpan 5 data integer dimana masing-masing variabel diberi nama a1,a2,a3,a4,a5. Jika kita memiliki 10 data integer atau mungkin 100 data integer bahkan mungkin kita tidak ketahui atau mungkin bersifat dinamis.Saat ini lah kita menggunakan tipe bentukan Array.
Array adalah tipe data bentukan yang merupakan wadah untuk menampung beberapa nilai data yang sejenis
b. String
String adalah tipe data bentukan yang merupakan deretan karakter yang membentuk satu kata atau satu kalimat, yang biasanya dapat dua tanda kutip.
c. Variabel
Variabel adalah nama yang mewakili sutau elemen data seperti : jenkel untuk jenis kelamin, t4lahir untuk tempat lahir, alamat unutk alamat dan sebagainya.
Ada aturan tertentu yang wajib diikuti dalam pemberian nama variabel, antara lain :
a. Harus dimulai dengan abjad tidak boleh dengan angka atau simbol.
b. Tidak boleh ada spasi diantaranya
c. Jangan menggunakan simbol-simbol yang bisa membingungkan seperti titik dua, titik koma, kima, dan sebagainya.
d. Sebaiknya memiliki arti yang sesuai dengan elemen data
Sebaiknya tidak terlalu panjang
Contoh variabel yang bernar : Nama, Alamat, Nilai_Ujian
Contoh Variabel yang salah : 4XYZ,IP rata, Var :+xy,458;
C. Operator dan Operand
Operand adalah data, tetapan, perubah atau hasil dari suatu fungsi sedangkan Operator merupakan simbol-simbol yang memiliki fungsi untuk menghubungkan operand sehingga menjadi tranformasi.
Jenis-jenis operator adalah sebagai berikut :
a. Operator Aritmetika
Operator untuk melakukan fungsi aritmetika seperti : +(penjumlahan), – (mengurangkan), * (mengalikan), / (membagi).
b.Operator relational
Operator untuk menyatakan relasi atau perbandingan antara dua operand, seperti > (lebih besr), =(lebih besar atau sama), <= (lebih kecil atau sama), == (sama), != (tidak sama).
c.Operator Logik
Operator untuk merelasikan operand secara logis seperti && (and), || (or), !(not).
2.4 Kegiatan belajar 4 – Tipe – tipe operasi data
TRANSFER DATA
ARITHMETIC
Tindakan CPU untuk melakukan operasi arithmetic :
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 :
Tindakan CPU untuk melakukan INPUT /OUTPUT :
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.
Agar dapat dieksekusi, setiap instruksi harus berisi informasi yang diperlukan oleh CPU. Informasi itu dituangkan dalam elemen-elemen instruksi:
- Operation Code/Kode Operasi: menspesifikasikan operasi yang akan dilakukan (misalnya, ADD).
- Operasi dispesifikasikan oleh kode biner, yang dikenal sebagai kode operasi, atau opcode.
- Source Operand Reference/Referensi Operand Sumber: operasi dapat mencakup satu atau lebih sumber, operand merupakan input bagi operasi.
- Result Operand Reference/Reference Operand Hasil: operasi dapat membuat hasil operasi.
- Next Instruction Reference/Reference Operand Selanjutnya: elemen ini memberitahu CPU posisi instruksi berikutnya yang harus diambil setelah menyelesaikan eksekusi suatu instruksi.
- Memori utama atau memori virtual: dengan referensi alamat berikutnya, maka alamat memori utama atau virtual harus diketahui.
- Register CPU: instruksi harus diberi nomor register yang dimaksud.
- Perangkat I/O: instruksi harus menspesifikasikan modul I/O yang diperlukan oleh operasi.
Representasi Instruksi
Dalam komputer, instruksi direpresentasikan oleh sekumpulan bit. Dalam penulisan format instruksi (instruction format) biasanya dibagi dalam beberapa kolom berkaitan dengan elemen-elemen yang akan mengisi instruksi.
Apa Itu Mnemonic? Adalah singkatan-singkatan yang mengindikasikan suatu operasi yang merupakan representasi dari opcode. Contoh:
Mnemonic
ADD Add (penambahan)
SUB Substract (pengurangan)
LOAD Muatkan data dari memori
INC Increment (penambahan dengan satu)
Mnemonic Operand
ADD A
Artinya menambah secara langsung 8 bit data ke dalam isi akumulator dan menyimpan hasil di akumulator.
Operand juga dapat direpresentasikan secara simbolik.
Misalnya:
Mnemonic Operand
ADD R,Y
Artinya tambahkan nilai lokasi Y ke isi register R F'emrogram dapat mendahului dengar definisi-definisi: X = 513,Y = 514, dst. Program akan mengkonversikan opcode dan refercnsi operand menjadi bentuk biner, akhirnya akan membentuk instruksi mesin biner.
2.1.3. Rangkuman
Elemen-elemen instruksi yang diperlukan oleh CPU, antara lain; Operation Code/Kode Operasi; Operasi dispesifikasikan oleh kode biner; Source Operand Reference/Referensi Operand Sumber; Result Operand Reference/Reference Operand Hasil; Next Instruction Reference/Reference Operand Selanjutnya.
Sumber dan hasil operand dapat berada di salah satu dari tiga daerah, yaitu:
Memori utama atau memori virtual; Register CPU; Perangkat I/O.
Dalam komputer, instruksi direpresentasikan oleh sekumpulan bit.Mnemonic adalah singkatan-singkatan yang mengindikasikan suatu operasi yang merupakan representasi dari opcode. Contoh: ADD; SUB; LOAD; INC.
Tipe atau jenis-jenis instruksi
- Data procecessing: Arithmetic dan Logic Instructions
Data processing adalah jenis pemrosesan yang dapat mengubah data menjadi informasiatau pengetahuan.Pemrosesan data ini sering menggunakan komputer sehingga bisa berjalan secara otomatis.Setelah diolah, data ini biasanya mempunyai nilai yang informatif jika dinyatakan dan dikemas secara terorganisir dan rapi, maka istilah pemrosesan data sering dikatakan sebagai sistem informasi.
Kedua istilah ini mempunyai arti yang hampir sama, pemrosesan data mengolah dan memanipulasi data mentah menjadi informasi (hasil pengolahan), sedangkan sistem informasi memakai data sebagai bahan masukan dan menghasilkan informasi sebagai produk keluaran. - Data storage: Memory instructions
Sering disebut sebagai memori komputer, merujuk kepada komponen komputer, perangkat komputer, dan media perekaman yang mempertahankan data digital yang digunakan untuk beberapa interval waktu.Penyimpanan data komputer menyediakan salah satu tiga fungsi inti dari komputer modern, yakni mempertahankan informasi.Ia merupakan salah satu komponen fundamental yang terdapat di dalam semua komputer modern, dan memiliki keterkaitan dengan mikroprosesor, dan menjadi model komputer yang digunakan semenjak 1940-an.
Dalam penggunaan kontemporer, memori komputer merujuk kepada bentuk media penyimpanan berbahan semikonduktor, yang dikenal dengan sebutan Random Access Memory (RAM), dan kadang-kadang dalam bentuk lainnya yang lebih cepat tapi hanya dapat menyimpan data secara sementara. Akan tetapi, istilah "computer storage" sekarang secara umum merujuk kepada media penyimpanan massal, yang bisa berupa cakram optis, beberapa bentuk media penyimpanan magnetis (seperti halnya hard disk) dan tipe-tipe media penyimpanan lainnya yang lebih lambat ketimbang RAM, tapi memiliki sifat lebih permanen, seperti flash memory. - Data Movement: I/O instructions
Proses data movement ini adalah memindahkan (dapat diakatakan membackup juga) data – data dari database yang berupa data, indeks, grand, schema, dan lain – lain ketempat baru. Tempat baru ini bisa ke dalam database baru atau memang untuk dibackup saja.
Data movement terdiri dari 2 bagian besar yaitu :
- Load & Upload [difokuskan untuk memindahkan data yang berupa indeks atau data itu sendiri alias isi dari database tersebut]
- Export & Import [memindahkan data secara lengkap, mulai dari grand, schema, dan seluruhnya]
Load berfungsi untuk memasukan data / transaksi ke sebuah table. Dapat dikatakan juga insert, replace, atau update. Sedangkan upload berfungsi untuk membuat dari data table ke fisik / file. Kelemahan load adalah dalam prosesnya bisa saja terjadi data yang tidak berpindah secara sempurna. Upload Parameter
- Limit [membatasi beberapa record]
- Sample [mencari sample yang telah ditentukan]
- When [berdasarkan kondisi]
- ETL [Extrat Transform Load], software yang focus terhadap data warehouse
- Replication and Propagation, software yang memonitoring source database dan target, dan yang dihasilkan oleh software ini adalah pencatatatn log.
Distribution Database
Dalam distribution database terdapat 3 istilah yaitu :
- Autonomi [idependent], untuk tabel umum akses yang diberikan berbeda dari setiap user.
- Isolation [stand alone], untuk tabel khusus (privacy) itu terpisah dari user.
- Transparancy [all user], akses tabel terpisah dari user tetapi user masih dapat mengaksesnya.
terpusat memang diuntungkan dalam sisi maintenance sedangkan server terdistribusi lebih rumit dalam proses integrasinya.
Jika database terdistribusi paling tidak membutuhkan Sumber Daya Manusia [SDM] yang baik, network yang lebih baik karena permasalahan network itu sangat fatal dan biasanya permasalahannya tidak jauh – jauh dari permasalahan traffic network.Dan yang tidak boleh dilupakan adalah request dan respon.
4. Control: Test and branch instructions
Unit kendali (bahasa Inggris: Control Unit - CU) adalah salah satu bagian dari CPU yang bertugas untuk memberikan arahan/kendali/ kontrol terhadap operasi yang dilakukan di bagian ALU (Arithmetic Logical Unit) di dalam CPU tersebut. Output dari CU ini akan mengatur aktivitas dari bagian lainnya dari perangkat CPU tersebut.
Pada awal-awal desain komputer, CU diimplementasikan sebagai ad-hoc logic yang susah untuk didesain. Sekarang, CU diimplementasikan sebagai sebuah microprogram yang disimpan di dalam tempat penyimpanan kontrol (control store). Beberapa word dari microprogram dipilih oleh microsequencer dan bit yang datang dari word-word tersebut akan secara langsung mengontrol bagian-bagian berbeda dari perangkat tersebut, termasuk di antaranya adalah register, ALU, register instruksi, bus dan peralatan input/output di luar chip. Pada komputer modern, setiap subsistem ini telah memiliki kontrolernya masing-masing, dengan CU sebagai pemantaunya (supervisor).
2.3 Kegiatan belajar 3 – Tipe – tipe operand
Tipe-tipe Operand
- Pengertian Operand
Operand adalah sebuah objek yang ada pada operasi matematika yang dapat digunakan untuk melakukan operasi. Operand atau operator dalam bahasa C berbentuk simbol bukan berbentuk keyword atau kata yang biasa ada di bahasa pemrograman lain. Simbol yang digunakan bukan karakter yang ada dalam abjad tapi ada pada keyboard kita seperti = ,* dan sebagainya. - Tipe Operand a. Tipe Data
Tipe Data setiap data memiliki tipe data, apakah merupakan angka bulat (integer), angka biasa (real), atau berupa karakter (char), dan sebagainya.
A. Tipe dasar adalah tipe data yang selalu tersedia pada setiap bahasa pemograman, antara lain :
a. Bilangan bulat
- Integer (-32768 s/d +32768)
Bilangan atau angka yang tidak memiliki titik desimal atau pecahan seperti +10,-1024,+32767,+255. Tipe data ini dapat ditulisakan sebagai integer atau int. Operasi aritmatiknya terdiri dari : tambah +, kurang -, kali *, bagi /, sisa hasil bagi %. Operasi Pembandingan terdiri dari : lebih kecil <, lebih kecil atau sama , lebih besar atau sama >= - Long (-16 juta s/d16 juta)
- Byte (0 s/d 255)
- Double (3,7×10-308 s/d 3,7×10+308)
- Float (3,4×10-38 s/d 3,4×10+38)
Karakter adalah data tunggal yang mewakili semua huruf, simbol baca dan juga simbol angka yang tidak dapat dioperasikan secara sistematis.Tipe ini dapat dituliskan sebagai char.
B. Tipe bentukan adalah tipe data yang dibentuk dari kombanisasi tipe dasar, antara lain :
a. Array (larik)
Selama ini kita menggunakan satu variabel untuk menyimpan 1 buah nilai dengan tipe data tertentu. misalnya : int a1,a2,a3,a4,a5;
Deklarasi variabel diatas menggunakan menyimpan 5 data integer dimana masing-masing variabel diberi nama a1,a2,a3,a4,a5. Jika kita memiliki 10 data integer atau mungkin 100 data integer bahkan mungkin kita tidak ketahui atau mungkin bersifat dinamis.Saat ini lah kita menggunakan tipe bentukan Array.
Array adalah tipe data bentukan yang merupakan wadah untuk menampung beberapa nilai data yang sejenis
b. String
String adalah tipe data bentukan yang merupakan deretan karakter yang membentuk satu kata atau satu kalimat, yang biasanya dapat dua tanda kutip.
c. Variabel
Variabel adalah nama yang mewakili sutau elemen data seperti : jenkel untuk jenis kelamin, t4lahir untuk tempat lahir, alamat unutk alamat dan sebagainya.
Ada aturan tertentu yang wajib diikuti dalam pemberian nama variabel, antara lain :
a. Harus dimulai dengan abjad tidak boleh dengan angka atau simbol.
b. Tidak boleh ada spasi diantaranya
c. Jangan menggunakan simbol-simbol yang bisa membingungkan seperti titik dua, titik koma, kima, dan sebagainya.
d. Sebaiknya memiliki arti yang sesuai dengan elemen data
Sebaiknya tidak terlalu panjang
Contoh variabel yang bernar : Nama, Alamat, Nilai_Ujian
Contoh Variabel yang salah : 4XYZ,IP rata, Var :+xy,458;
C. Operator dan Operand
Operand adalah data, tetapan, perubah atau hasil dari suatu fungsi sedangkan Operator merupakan simbol-simbol yang memiliki fungsi untuk menghubungkan operand sehingga menjadi tranformasi.
Jenis-jenis operator adalah sebagai berikut :
a. Operator Aritmetika
Operator untuk melakukan fungsi aritmetika seperti : +(penjumlahan), – (mengurangkan), * (mengalikan), / (membagi).
b.Operator relational
Operator untuk menyatakan relasi atau perbandingan antara dua operand, seperti > (lebih besr), =(lebih besar atau sama), <= (lebih kecil atau sama), == (sama), != (tidak sama).
c.Operator Logik
Operator untuk merelasikan operand secara logis seperti && (and), || (or), !(not).
2.4 Kegiatan belajar 4 – Tipe – tipe operasi data
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.
- Memindahkan data dari satu lokasi ke lokasi lain.
- Apabila memori dilibatkan :
- Menetapkan alamat memori.
- Menjalankan transformasi alamat memori virtual ke alamat memori aktual. o Mengawali pembacaan / penulisan memori - 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
Tindakan CPU untuk melakukan operasi arithmetic :
- Transfer data sebelum atau sesudah.
- Melakukan fungsi dalam ALU.
- Menset kode-kode kondisi dan flag.
- ADD : penjumlahan
- SUBTRACT : pengurangan
- MULTIPLY : perkalian
- DIVIDE : pembagian
- ABSOLUTE
- NEGATIVE
- DECREMENT
- INCREMENT
- 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.
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 berdasrkan tabel korespodensi.
- CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
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
- 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 danmemuat 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 instruksi
- 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.
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.
Bab 3 – Mode dan format pengalamatan
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. Contoh: 0200 4C INCA ; increment akumulator
Pertama CPU membaca kode operasi $4C yang menginstruksikan CPU untuk menambah harga dari isi akumulator. Kemudian CPU akan menyimpan harga baru ke dalam akumulator dan mengeset bitflag jika dibutuhkan. Tabel 5.2 menampilkan semua instruksi M68HC05 yang dapat menggunakan mode pengalamatan inherent.
Instruksi
|
Mnemonic
|
||||
Arithmetic Shift Left
|
ASLA, ASLX
|
||||
Arithmetic Shift Right
|
ASRA, ASRX
|
||||
Clear Carry Bit
|
CLC
|
||||
Clear Interrupt Mask Bit
|
CLI
|
||||
Clear
|
CLRA, CLRX
|
||||
Complement (invert all bits)
|
COMA, COMX
|
||||
Decrement
|
DECA, DECX
|
||||
Increment
|
INCA, INCX
|
||||
Logical Shift Left
|
LSLA, LSLX
|
||||
Logical Shift Right
|
LSRA, LSRX
|
||||
Multiply
|
MUL
|
||||
Negate (two’s complement)
|
NEGA, NEGX
|
||||
No Operation
|
NOP
|
||||
Rotate Left thru Carry
|
ROLA, ROLX
|
||||
Rotate Right thru Carry
|
RORA, RORX
|
||||
Reset Stack Pointer
|
RSP
|
||||
Return from Interrupt
|
RTI
|
||||
Return from Subroutine
|
RTS
|
||||
Set Carry Bit
|
SEC
|
||||
Set Interrupt Mask Bit
|
SEI
|
||||
Enable IRQ, STOP Oscillator
|
STOP
|
||||
Software Interrupt
|
SWI
|
||||
Transfer Accumulator to Index Register
|
TAX
|
||||
Test for Negative Zero
|
TSTA, TSTX
|
||||
Transfer Index Register to Accumulator
Wait for Interrupt
|
TXA
WAIT
|
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.
Contoh: 0200 A6 02 LDA #$02 ; Load konstanta ke akumulator
Pertama CPU akan
membaca kode operasi $A6 yang menginstruksikan CPU untuk me-load akumulator dengan nilai immediate yang mengikuti kode operasi.
Kemudian CPU akan membaca dataimmediate
$02 dari lokasi memori dengan
alamat $0201 ke dalam
akumulator. Tabel 5.1 menampilkan semua instruksi keluarga M68HC05 yang dapat
menggunakan mode pengalamatan immediate
ini.
Tabel
3.2.Instruksi-instruksi Mode Pengalamatan IMMEDIATE
Instruksi
|
Mnemonic
|
||||
Add with Carry
|
ADC
|
||||
Add (without carry)
|
ADD
|
||||
Logical AND
|
AND
|
||||
Bit Test Memory with Accumulator
|
BIT
|
||||
Compare Accumulator with Memory
|
CMP
|
||||
Compare Index Register with Memory
|
CPX
|
||||
Exclusive OR Memory with Accumulator
|
EOR
|
||||
Load Accumulator from Memory
|
LDA
|
||||
Load Index Register from Memory
|
LDX
|
||||
Inclusive OR
|
ORA
|
||||
Substract with Carry
|
SBC
|
||||
Substract (without borrow)
|
SUB
|
||||
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 operan. Contoh: 0200 B6 E0 LDA $E0
Pertama CPU akan
membaca kode operasi $B6 yang menginstruksikan CPU untuk menggunakan mode
pengalamatan direct. Kemudian CPU membaca $E0 dari lokasi memori dengan alamat
$0201.Harga $E0 ini diterjemahkan sebagai low-order
dari alamat dalam direct page ($0000
sampai $00FF).Setelah itu CPU menyusun
alamat lengkap $00E0 dengan menganggap high-order
byte alamat sebagai $00. Alamat lengkap $00E0 ini kemudian diletakkan dalam bus
alamat dan kemudian proses pembacaan data pun dikerjakan. Tabel 5.4 menampilkan
semua instrusi yang bisa dikerjakan dengan mode pengalamatan direct ini.
Tabel
3.3.Instruksi-instruksi Mode Pengalamatan DIRECT
Instruksi
|
Mnemonic
|
||||
Add with Carry
|
ADC
|
||||
Add (without carry)
|
ADD
|
||||
Logical AND
|
AND
|
||||
Arithmetic Shift Left
|
ASL
|
||||
Arithmetic Shift Right
|
ASR
|
||||
Clear Bit in Memory
|
BCLR
|
||||
Bit Test Memory with Accumulator
|
BIT
|
||||
Branch if Bit n is Clear
|
BRCLR
|
||||
Branch if Bit n is Set
|
BRSET
|
||||
Set Bit in Memory
|
BSET
|
||||
Clear
|
CLR
|
||||
Compare Accumulator with Memory
|
CMP
|
||||
Complement (invert all bits)
|
COM
|
||||
Compare Index Register with Memory
|
CPX
|
||||
Decrement
|
DEC
|
||||
Exclusive OR Memory with Accumulator
|
EOR
|
||||
Increment
|
INC
|
||||
Jump
|
JMP
|
||||
Jump to Subroutine
|
JSR
|
||||
Load Accumulator from Memory
|
LDA
|
||||
Load Index Register from Memory
|
LDX
|
||||
Logical Shift Left
|
LSL
|
||||
Logical Shift Right
|
LSR
|
||||
Negate (two’s complement)
|
NEG
|
||||
Inclusive OR
|
ORA
|
||||
Rotate Left thru Carry
|
ROL
|
||||
Rotate Right thru Carry
|
ROR
|
||||
Substract with Carry
|
SBC
|
||||
Store Acuumulator in Memory
|
STA
|
||||
Strore Index Register in Memory
|
STX
|
||||
Substract (without borrow)
|
SUB
|
||||
Test for Negative or Zero
|
TST
|
||||
3.4 Kegiatan belajar 4
– 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.Contoh : 0200 C6 03 65 LDA $0365
Pertama CPU akan
membaca kode operasi C6 yang menginstruksikan akumulator untuk menggunakan mode
pengalamatan extended. Kemudian CPU akan membaca $03 dari lokasi memori
$0201dan diterjemahkan sebagai alamat high-order.
Setelah itu CPU membaca $65 dari lokasi $0202 dan diterjemahkan sebagai low-order dari alamat. Terakhir, CPU
membangun alamat lengkap $0365 dan meletakkannya dalam bus alamat dan kemudian
melakukan operasi read sehingga isi memori dengan alamat $0365 akan tersedia
dalam bus data. Tabel 5.3 di bawah ini akam memperlihatkan semua instruksi yang
dapat digunakan dalam mode pengalamatan extended.
Tabel
3.4.Instruksi-instruksi Mode Pengalamatan EXTENDED
Instruksi
|
Mnemonic
|
||||
Add with Carry
|
ADC
|
||||
Add (without carry)
|
ADD
|
||||
Logical AND
|
AND
|
||||
Bit Test Memory with Accumulator
|
BIT
|
||||
Compare Accumulator with Memory
|
CMP
|
||||
Compare Index Register with Memory
|
CPX
|
||||
Exclusive OR Memory with Accumulator
|
EOR
|
||||
Jump
|
JMP
|
||||
Jump to Subroutine
|
JSR
|
||||
Load Accumulator from Memory
|
LDA
|
||||
Exclusive OR Memory with Accumulator
|
LDX
|
||||
Jump
|
ORA
|
||||
Substract with Carry
|
SBC
|
||||
Store Accumulator in Memory
|
STA
|
||||
Store Index Register in Memory
|
STX
|
||||
Substract (without borrow)
|
SUB
|
||||
3.5 Kegiatan belajar 5
– 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. Contoh: 0200 F6 LDA 0,X
Pertama CPU akan
membaca kode operasi $F6 yang menginstruksikan CPU untuk menggunakan mode
pengalamatan indexed-no offset.
Kemudian CPU menyusun alamat lengkap dengan menjumlahkan $0000 ke isi dari
index register 8-bit (X). Alamat ini kemudian diletakkan dalam bus alamat dan
setelah itu dilakukan proses pembacaan data. Tabel 5.5 menampilkan semua
instruksi yang dapat menggunakan mode pengalamatan ini.
Tabel
3.5.INDEXED-NO OFFSET dan INDEXED-8 BIT OFFSET
Instruksi
|
Mnemonic
|
Add with Carry
|
ADC
|
Add (without carry)
|
ADD
|
Logical AND
|
AND
|
Arithmetic Shift Left
|
ASL
|
Arithmetic Shift Right
|
ASR
|
Bit Test Memory with Accumulator
|
BIT
|
Clear
|
CLR
|
Compare Accumulator with Memory
|
CMP
|
Complement (invert all bits)
|
COM
|
Compare Index Register with Memory
|
CPX
|
Decrement
|
DEC
|
Exclusive OR Memory with Accumulator
|
EOR
|
Increment
|
INC
|
Jump
|
JMP
|
Jump to Subroutine
|
JSR
|
Load Accumulator from Memory
|
LDA
|
Load Index Register from Memory
|
LDX
|
Logical Shift Left
|
LSL
|
Logical Shift Right
|
LSR
|
Negate (two’s complement)
|
NEG
|
Inclusive OR
|
ORA
|
Rotate Left thru Carry
|
ROL
|
Rotate Right thru Carry
|
ROR
|
Substract with Carry
|
SBC
|
Store Acuumulator in Memory
|
STA
|
Strore Index Register in Memory
|
STX
|
Substract (without borrow)
|
SUB
|
Test for Negative or Zero
|
TST
|
Dalam mode
pengalamatan indexed-8 bit offset, alamat efektif dicapai dengan menambahkan
data byte yang mengikuti kode operasi dengan isi dari index register. Harga
byte offset yang disediakan dalam instruksi adalah integer tak bertanda 8-bit.
Karena itu operasi ini adalah dua byte instruksi di mana offset
terkandung dalam byte
yang mengikuti kode operasi. Isi dari index register tidak akan dirubah.
Contoh: 0200 E6 05 LDA 5,X
Pertama CPU akan
membaca kode operasi $E6 yang menginstruksikan CPU menggunakan mode
pengalamatan indexed 8-bit offset.
Kemudian CPU akan membaca 8-bit offset ($05) dari alamat $0201. CPU akan
menyusun alamat lengkap dengan menambahkan nilai offset $05 ke isi dari index
register 8-bit (X). Setelah itu, alamat diletakkan dalam bus alamat dan opersi
pembacaan data ke akumulator dikerjakan.Tabel 5.5 menunjukkan semua instruksi
yang mampu menggunakan mode pengalamatan ini. Dalam mode pengalamatan indexed-16
bit offset, alamat efektif dari operan suatu instruksi adalah hasil
penjumlahan antara isi dari index register 8-bit dengan dua byte alamat yang
mengikuti kode operasi. Isi dari kode operasi tidak dirubah. Instruksi ini
memakan tiga byte, satu untuk kode operasi dan dua byte untuk offset 16-bit.
Contoh: 0200 D6 03 77 LDA $377,X
Pertama CPU akan
membaca kode operasi $D6 yang menginstruksikan CPU untuk menggunakan mode
pengalamatan indexed –16 bit offset. Kemudian CPU akan
membaca high order alamat ($03) dari
alamat memori $0201 dan membaca low order
alamat ($77) dari alamat $0202. CPU akan menyusun alamat lengkap dengan
menambahkan isi dari index register 8-bit dengan 16-bit alamat yang baru saja
dibaca. Alamat ini diletakkkan dalam bus alamat dan kemudian operasi pembacaan
data dilakukan.
Tabel
3.6.Instruksi-instruksi Mode Pengalamatan INDEXED-16 BIT OFFSET
Instruksi
|
Mnemonic
|
||||
Add with Carry
|
ADC
|
||||
Add (without carry)
|
ADD
|
||||
Logical AND
|
AND
|
||||
Bit Test Memory with Accumulator
|
BIT
|
||||
Compare Accumulator with Memory
|
CMP
|
||||
Compare Index Register with Memory
|
CPX
|
||||
Exclusive OR Memory with Accumulator
|
EOR
|
||||
Jump
|
JMP
|
||||
Jump to Subroutine
|
JSR
|
||||
Load Accumulator from Memory
|
LDA
|
||||
Exclusive OR Memory with Accumulator
|
LDX
|
||||
Jump
|
ORA
|
||||
Substract with Carry
|
SBC
|
||||
Store Accumulator in Memory
|
STA
|
||||
Store Index Register in Memory
|
STX
|
||||
Substract (without borrow)
|
SUB
|
||||
Mode pengalamatan relative ini digunakanhanya dalam
instruksi percabangan. Instruksi percabangan, selain percabangan instruksi
manipulasi bit, membangkitkan dua byte kode mesin: satu untuk kode operasi dan
satu untuk offset relatifnya. Karena kemampuannya untuk bercabang ke dua arah,
byte offset adalah bilangan bertanda dengan jangkauan –128 sampai +127. Jika
kondisi percabangan TRUE, isi dari byte bertanda 8-bit yang mengikuti kode
operasi akan ditambahkan dengan isi dari PC untuk membentuk alamat efektif
percabangan; jika FALSE maka kontrol program akan terus ke instruksi di bawah
instruksi percabangan. Programmer akan menspesifikasikan tujuan dari
percabangan sebagai alamat absolute
(dengan label atau alamat langsung). Kemudianassembler akan mengkalkulasi offset relatif 8-bit yang akan
diletakkan di belakang kode memori dalam memori. Contoh: 0200 27 rr BEQ DEST
Pertama CPU akan
membaca kode operasi $27. Bit CCR Z akan set jika hasil dari operasi aritmatika
atau logika sebelumnya adalah nol. CPU kemudian akan membaca harga offset $rr
dari alamat $0201. Setelah siklus ini, PC akan menunjukkan ke byte pertama dari
instruksi berikutnya ($0202). Jika bit Z nol, maka tidak ada aksi apa-apa.
Program akan terus ke instruksi berikutnya pada alamat $0202. Jika bit Z satu,
CPU akan menambahkan nilai offset $rr ke isi dari PC sekarang untuk mendapatkan
alamat tujuan dari percabangan. Hal ini menyebabkan eksekusi program berlanjut
ke alamat baru (DEST).Tabel 5.7 menunjukkan instruksi yang dapat menggunakan
mode pengalamatan relative.
Instruksi-instruksi
Mode Pengalamatan RELATIVE
Instruksi
|
Mnemonic
|
||||
Branch if Carry Clear
|
BCC
|
||||
Branch if Carry Set
|
BCS
|
||||
Branch if Equal
|
BEQ
|
||||
Branch if Half-Carry Clear
|
BHCC
|
||||
Branch if Half-Carry Set
|
BHCS
|
||||
Branch if Higher
|
BHI
|
||||
Branch if Higher or Same
|
BHS
|
||||
Branch if Interrupt Line is High
|
BIH
|
||||
Branch if Interrupt Line is Low
|
BIL
|
||||
Branch if Lower
|
BLO
|
||||
Branch if Lower or Same
|
BLS
|
||||
Branch if Interrupt Mask is Clear
|
BMC
|
||||
Branch if Minus
|
BMI
|
||||
Branch if Interrupt Mask is Set
|
BMS
|
||||
Branch if Not Equal
|
BNE
|
||||
Branch if Plus
|
BPL
|
||||
Branch Always
|
BRA
|
||||
Branch if Bit n is Clear
|
BRCLR
|
||||
Branch if Bit n is Set
|
BRSET
|
||||
Branch Never
|
BRN
|
||||
Branch to Subroutine
|
BSR
|
RANGKUMAN
1.
Bab 1 – Memahami Struktur dan fungsi CPU
1.1 Kegiatan belajar 1 – Struktur dan fungsi CPU
Rangkuman
CPU adalah komponen
pengolah data berdasarkan instruksi – instruksi yang diberikan kepadanya, yang
tersusun atas beberapa komponen, yaitu:
1.
Arithmetic and Logic Unit (ALU) atau language
machine, bertugas membentuk fungsi
– fungsi pengolahan data computer, yang terdiri
dari dua bagian, yaitu unit arithmetika dan unit logika Boolean.
2. Control Unit, bertugas mengontrol operasi CPU
dan secara keselurahan mengontrol computer, termasuk mengambil instruksi –
instruksi dari memori utama dan menentukan jenis instruksi tersebut.
3. Registers, adalah media penyimpan internal CPU
yang digunakan saat proses pengolahan data, yang bersifat sementara.
4. 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.
Hal-hal yang dilakukan CPU adalah sebagai
berikut :
1.
Fetch instruction (mengambil instruksi).
2.
Interpret instruction (menterjemahkan
instruksi).
3.
Fetch data (mengambil data).
4.
Process data (mengolah data).
5.
Write data (menulis data).
1.2 Kegiatan belajar 2
– Control Unit
Rangkuman
Tugas dari CU :
Mengatur dan mengendalikan alat-alat input dan output, Mengambil
instruksi-instruksi dari memori utama, Mengambil data dari memori utama kalau
diperlukan oleh proses, Mengirim instruksi ke ALU bila ada perhitungan
aritmatika atau perbandinganlogika serta mengawasi kerja serta Menyimpan hasil
proses ke memori utama.
Masukan-masukan unit
control: Clock / pewaktu, Register instruksi, Flag, Sinyal control untuk
mengontrol bus
1.3 Kegiatan belajar 3
– Register
Rangkuman
Sistem Komputer
menggunakan hirarki memori pada tingkatan yang atas, memori lebih cepat, lebih
kecil, lebih mahal. Di dalam CPU, terdapat sekumpulan register yang tingkatan
memorinya berada di atas hirarki memori utama dan cache.
Register dalam CPU memiliki dua fungsi:
1. User-visible Register, yaitu register yang dapat
direferensikan dengan menggunakan bahasa mesin yang dieksekusi CPU,
User-visible terdiri dari: General Purpose Register; Register Alamat; Register
Data; dan Register Kode Status Kondisi (Flag)
2. Control and Register, yaitu register-register
yang digunakan oleh unit kontrol untuk mengontrol operasi CPU dan oleh program
sistem operasi untuk mengntrol eksekusi program. Terdapat empat register yang
penting, yaitu: Program Counter (PC); Instruction Register (IR); Memory Address
Register (MAR); Memori Buffer Register
(MBR); Memori Data Register (MDR)
Fungsi CPU, yaitu Menjalankan program – program
yang disimpan dalam memori utama dengan cara mengambil instruksi – instruksi,
menguji instruksi tersebut dan mengeksekusinya satu persatu sesuai alur
perintah.
2.
Bab 2 – Memahami Karakteristik set Instruksi
2.1 Kegiatan belajar 1 – Elemen elemen instruksi
Rangkuman
Elemen-elemen
instruksi yang diperlukan oleh CPU, antara lain; Operation Code/Kode Operasi;
Operasi dispesifikasikan oleh kode biner; Source Operand Reference/Referensi
Operand Sumber; Result Operand Reference/Reference Operand Hasil; Next
Instruction Reference/Reference Operand Selanjutnya.
Sumber dan hasil
operand dapat berada di salah satu dari tiga daerah, yaitu: Memori utama atau
memori virtual; Register CPU; Perangkat I/O.
Dalam komputer,
instruksi direpresentasikan oleh sekumpulan bit.Mnemonic adalah
singkatan-singkatan yang mengindikasikan suatu operasi yang merupakan
representasi dari opcode. Contoh: ADD; SUB; LOAD; INC.
2.1 Kegiatan belajar 2
– Tipe – tipe Instruksi
Rangkuman
Tipe atau jenis-jenis instruksi, antara lain:
1. Data
procecessing: Arithmetic dan Logic Instructions
Data processing adalah
jenis pemrosesan yang dapat mengubah data menjadi informasi atau
pengetahuan.Setelah diolah, data ini biasanya mempunyai nilai yang informative,
maka istilah pemrosesan data sering dikatakan sebagai sistem informasi.
2. Data
storage: Memory instructions
Sering disebut sebagai
memori komputer, merujuk kepada komponen komputer, perangkat komputer, dan
media perekaman yang mempertahankan data digital yang digunakan untuk beberapa
interval waktu.
Dalam penggunaan
kontemporer, memori komputer merujuk kepada bentuk media penyimpanan berbahan
semikonduktor, yang dikenal dengan sebutan Random Access Memory (RAM).Akan
tetapi, istilah "computer storage" sekarang secara umum merujuk
kepada media penyimpanan massal seperti halnya hard disk.
3. Data
Movement: I/O instructions
Proses data movement
ini adalah memindahkan (dapat dikatakan membackup juga) data – data dari
database yang berupa data, indeks, grand, schema, dan lain – lain ketempat
baru.
Data movement terdiri
dari 2 bagian besar yaitu: Load & Upload dan Export & Import. Load
berfungsi untuk memasukan data / transaksi ke sebuah table. Sedangkan upload berfungsi
untuk membuat dari data table ke fisik / file. Upload Parameter, antara lain:
limit, sample, dan when.
Bulk Data Movement
(Software Pendukung), antara lain: ETL [Extrat Transform Load] dan Replication
and Propagation. Hak akses dalam load & unload, import & export minimal
adalah akses select.
Dalam distribution
database terdapat 3 istilah yaitu: Autonomi [idependent]; Isolation [stand
alone]; dan Transparancy [all user]. Lawan dari database terdistribusi adalah
database terpusat.
4. Control:
Test and branch instructions
CU diimplementasikan
sebagai sebuah microprogram yang disimpan di dalam tempat penyimpanan kontrol
(control store).Control Unit - CU) adalah salah satu bagian dari CPU yang
bertugas untuk memberikan arahan/kendali/ kontrol
2.2 Kegiatan belajar 3
– Tipe – tipe operand
Rangkuman
Operand adalah sebuah
objek yang ada pada operasi matematika yang dapat digunakan untuk melakukan
operasi. Operand atau operator dalam bahasa C berbentuk symbol yang berupa
karakter yang ada pada keyboard seperti = , * dan sebagainya. Tipe Operand,
antara lain:
a. Tipe Data, dapat berupa angka bulat (integer),
angka biasa (real), atau berupa karakter (char), dan sebagainya. Ada dua
kategori dari tipe data yaitu tipe dasar (berupa Bilangan bulat Integer, Long,
Byte; Bilangan pecahan double dan float; dan karakter) dan tipe bentukan
(berupa Array (larik) dan string).
b. Variabel, yaitu nama yang mewakili sutau elemen
data seperti : jenkel untuk jenis kelamin, t4lahir untuk tempat lahir. Aturan
yang wajib diikuti dalam pemberian nama variabel, antara lain: Harus dimulai
dengan huruf abjad; Tidak boleh ada spasi diantaranya; tidak menggunakan
simbol-simbol; Sebaiknya memiliki arti yang sesuai dengan elemen data;
Sebaiknya tidak terlalu panjang
c. Operator dan Operan. Operand adalah data,
tetapan, perubah atau hasil dari suatu fungsi sedangkan Operator merupakan
simbol-simbol yang memiliki fungsi untuk menghubungkan operand sehingga menjadi
tranformasi. Jenis-jenis operator adalah: Operator Aritmetika; Operator
relational; Operator Logik.
2.3 Kegiatan belajar 4
– Tipe – tipe operasi data
Rangkuman
Transfer data,
meliputi kegiatan: 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: Memindahkan
data dari satu lokasi ke lokasi lain; Menetapkan alamat memori, Menjalankan
transformasi alamat memori virtual ke alamat memori actual, Mengawali pembacaan
/ penulisan memori (Apabila memori dilibatkan). Operasi set instruksi untuk
transfer data, antara lain: MOVE, STORE, LOAD, EXCHANGE, CLEAR / RESET, SET,
PUSH, POP.
ARITHMETIC. Tindakan
CPU untuk melakukan operasi arithmetic, antara lain: Transfer data sebelum atau
sesudah; Melakukan fungsi dalam ALU; dan Menset kode-kode kondisi dan flag.
Operasi set instruksi untuk arithmetic, yaitu: ADD, SUBTRACT, DIVIDE, ABSOLUTE,
NEGATIVE, DECREMENT, INCREMENT.
LOGICAL. Tindakan CPU
untuk melakukan operasi logical, sama dengan arithmetic. Operasi set instruksi
untuk operasi logical, yaitu: AND, OR, NOT, EXOR; COMPARE; TEST; SHIFT; ROTATE.
CONVERSI. Tindakan CPU
untuk melakukan operasi Conversi, sama dengan arithmetic dan logical. Operasi
set instruksi untuk conversi, yaitu: TRANSLATE dan CONVERT.
I/O. Tindakan CPU
untuk melakukan INPUT /OUTPUT, yaitu: Apabila memory mapped I/O maka menentukan
alamat memory mapped , dan Mengawali perintah ke modul I/O. Operasi set
instruksi Input / Ouput, antara lain: INPUT, OUTPUT, START I/O, TEST I/O.
TRANSFER
CONTROL. Tindakan CPU untuk transfer control, yaitu Mengupdate program counter
untuk subrutin , call / return. Operasi set instruksi untuk transfer control,
meliputi: JUMP (cabang); JUMP BERSYARAT; JUMP SUBRUTIN; RETURN; EXECUTE; SKIP;
SKIP BERSYARAT; HALT; WAIT (HOLD); NO OPERATION.
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.
2.4 Kegiatan belajar 5
– Instruksi percabangan
Rangkuman
Struktur Branching (Percabangan)
1. IF. Instruksi IF digunakan untuk memeriksa suatu
kondisi dan melaksanakan instruksi lain jika kondisi tersebut terpenuhi atau
bernilai true.
2. If Else. Apabila evaluasi terhadap kondisi
memberikan nilai true maka statement dikerjakan, sebaliknya jika false maka
statement tidak dikerjakan. Statement dapat berupa instruksi kosong, instruksi
tunggal atau beberapa instruksi yang dilingkup dengan { }. Tidak diperbolehkan
ada klausa else tanpa instruksi if.
3. Nested If (Struktur If bersarang), yaitu pada
suatu instruksi if, statement yang dikerjakan apabila kondisi bernilai true
dapat berupa instruksi if yang lain. Hal yang sama juga berlaku untuk statement
yang dikerjakan pada bagian klausa else.
3.
Bab 3 – Mode dan format pengalamatan
3.1 Kegiatan belajar 1 – Inherent
Rangkuman
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.Karena itu
operasi ini hanyalah terdiri dari satu byte instruksi. Contoh: 0200 4C INCA ;
increment akumulator.
Pertama CPU membaca
kode operasi $4C, kemudian CPU akan menyimpan harga baru ke dalam akumulator
dan mengeset bitflag jika dibutuhkan.
Instruksi-instruksi
Mode Pengalamatan inherent, antara
lain: ASLA, ASRA, CLC, CLI; CLRA, COMA, DECA, INCA; LSLA, LSRA, MUL, NEGA; NOP,
ROLA, RORA, RSP; RTI, RTS, SEC, SEI; STOP, SWI, TAX, TSTA; TXA, WAIT.
3.2 Kegiatan belajar 2
– Immediate
Rangkuman
Dalam mode
pengalamatan immediate, operan
terkandung di dalam byte yang langsung mengikuti kode operasi.Operasi dengan
mode ini membutuhkan dua byte instruksi, satu untuk kode operasi dan satu lagi
untuk data byte. Contoh: 0200 A6 02 LDA #$02 ; Load konstanta ke akumulator.
Pertama CPU akan
membaca kode operasi $A6, kemudian CPU akan membaca dataimmediate $02 dari lokasi memori dengan alamat $0201 ke dalam
akumulator.
Instruksi-instruksi
Mode Pengalamatan immediate, antara
lain: ADC, ADD, AND, BIT; CMP, CPX, EOR, LDA; LDX, ORA, SBC, SUB.
3.3 Kegiatan belajar 3
– Direction
Rangkuman
Mode pengalamatan direct menyebabkan efisiensi alamat
dalam 256 byte pertama dalam memori. 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 operan. Contoh: 0200
B6 E0 LDA $E0
Pertama CPU akan
membaca kode operasi $B6, kemudian CPU membaca $E0 dari lokasi memori dengan
alamat $0201. Harga $E0 ini diterjemahkan sebagai low-order dari alamat dalam
direct page ($0000 sampai $00FF).Setelah itu CPU menyusun alamat lengkap $00E0 dengan menganggap high-order byte alamat sebagai
$00.Alamat lengkap $00E0 ini kemudian diletakkan dalam bus alamat dan diproses.
Instruksi-instruksi
Mode Pengalamatandirect, antara lain:
ADC, ADD, AND, ASL; ASR, BCLR, BIT, BRCLR; BRSET, BSET, CLR, CMP; COM, CPX,
DEC, EOR; INC, JMP, JSR, LDA; LDX, LSL, LSR, NEG; ORA, ROL, ROR, SBC; STA, STX,
SUB, TST.
3.4 Kegiatan belajar 4
– Extended
Rangkuman
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.Contoh : 0200 C6 03 65 LDA $0365
Pertama CPU akan
membaca kode operasi C6, kemudian CPU akan membaca $03 dari lokasi memori $0201
dan diterjemahkan sebagai alamat high-order.
Setelah itu CPU membaca $65 dari lokasi $0202 dan diterjemahkan sebagai low-order dari
alamat.Terakhir, CPU membangun alamat lengkap
$0365 dan meletakkannya dalam bus alamat dan kemudian melakukan operasi read.
Instruksi-instruksi
Mode Pengalamatan extended, antara
lain: ADC, ADD, AND, BIT; CMP, CPX, EOR, JMP; JSR, LDA, LDX, ORA; SBC, STA,
STX, SUB.
Rangkuman
Terdapat tiga jenis pengalamatan indexed yang
didukung oleh CPU keluarga
M68HC05, yaitu:
1. Mode pengalamatan indexed-no offset. Dalam
mode pengalamatan ini, 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.
Contoh: 0200 F6 LDA 0,X
Pertama CPU akan
membaca kode operasi $F6, kemudian CPU menyusun alamat lengkap dengan
menjumlahkan $0000 ke isi dari index register 8-bit (X). Alamat ini kemudian
diletakkan dalam bus alamat dan setelah itu dilakukan proses pembacaan data.
Indexed-no offset dan
Indexed-8 bit offset, antara lain: ADC, ADD, AND, ASL; ASR, BIT, CLR, CMP; COM,
CPX, DEC, EOR; INC, JMP, JSR, LDA; LDX, LSL, LSR, NEG; ORA, ROL, ROR, SBC; STA,
STX, SUB, TST.
2. Mode pengalamatan indexed-8 bit offset.
Dalam mode pengalamatan ini,alamat efektif dicapai dengan menambahkan data byte
yang mengikuti kode operasi dengan isi dari index register. Operasi ini adalah
dua byte instruksi di mana offset terkandung dalam byte yang mengikuti kode
operasi. Isi dari index register tidak akan dirubah. Contoh: 0200 E6 05 LDA 5,X
Pertama CPU akan
membaca kode operasi $E6, kemudian CPU akan membaca 8-bit offset ($05) dari
alamat $0201, lalu menyusun alamat lengkap dengan menambahkan nilai offset $05
ke isi dari index register 8-bit (X). Setelah itu, alamat diletakkan dalam bus
alamat dan diproses.
3. Mode pengalamatan indexed-16 bit offset.
Dalam mode pengalamatan ini,alamat efektif dari operan suatu instruksi adalah
hasil penjumlahan antara isi dari index register 8-bit dengan dua byte alamat
yang mengikuti kode operasi. Instruksi ini memakan tiga byte, satu untuk kode
operasi dan dua byte untuk offset 16-bit. Contoh: 0200 D6 03 77 LDA $377,X
Pertama CPU akan
membaca kode operasi $D6, kemudian CPU akan membaca high order alamat ($03) dari alamat memori $0201 dan membaca low order
alamat ($77) dari alamat $0202. CPU akan menyusun alamat lengkap dengan menambahkan isi dari index register
8-bit dengan 16-bit alamat yang baru saja dibaca. Alamat ini diletakkkan dalam
bus alamat dan diproses.
Instruksi-instruksi
Mode Pengalamatan indexed-16 bit offset, antara lain: ADC, ADD, AND, BIT; CMP,
CPX, EOR, JMP; JSR, LDA, LDX, ORA; SBC, STA, STX, SUB.
3.6 Kegiatan belajar 6
– Relative
Rangkuman
Mode pengalamatan relative ini digunakan hanya dalam instruksi
percabangan. Karena kemampuannya untuk bercabang ke dua arah, byte offset
adalah bilangan bertanda dengan jangkauan –128 sampai +127. Jika kondisi
percabangan TRUE, isi dari byte bertanda 8-bit; jika FALSE
maka kontrol program akan terus ke instruksi di bawah instruksi percabangan.
Contoh: 0200 27 rr BEQ DEST
Pertama CPU akan
membaca kode operasi $27. Bit CCR Z akan set jika hasil dari operasi aritmatika
atau logika sebelumnya adalah nol. CPU kemudian akan membaca harga offset $rr
dari alamat $0201. Setelah siklus ini, PC akan menunjukkan ke byte pertama dari
instruksi berikutnya ($0202). Jika bit Z nol, maka tidak ada aksi apa-apa.
Program akan terus ke instruksi berikutnya pada alamat $0202. Jika bit Z satu,
CPU akan menambahkan nilai offset $rr ke isi dari PC sekarang untuk mendapatkan
alamat tujuan dari percabangan. Hal ini menyebabkan eksekusi program berlanjut
ke alamat baru (DEST).
Sumur : Klik Disini