My Link

Photobucket

Mengintip proses data di CPU

Pembahasan
1. Komponen-komponen CPU
2. Instruksi kode mesin
3. Mode-mode Pengalamatan

I. Komponen-komponen CPU
Anda telah mengetahui bahwa terdapat 3 komponen dasar di
dalam central processing unit (CPU), yaitu :
* Kumpulan register-register
* arithmetic and logic unit (ALU)
* control unit
Tulisan ini akan melihat operasi pada bagian register dan ALU.
Operasi pada control unit lebih rumit dan akan dibahas pada
bagian beritkutnya.
Register-register
CPU mempunyai sekumpulan register. Anda telah mengenal dan
mengetahui fungsi dari program counter (PC) dan instruction
register (IR). Beberapa tipe register lain adalah
Accumulator
Register ini merupakan register "scratchpad" yang digunakan oleh
ALU selama perhitungan aritmatika dan logika.
Register-register Index
Register ini digunakan untuk mengontrol perulangan program.
Stack pointer
Register digunakan mengelola stack dari data temporer yang
terdapat di dalam memory untuk setiap proses.
Register-register Status

Register ini digunakan untuk menyimpan status atau mode
operasi. Sebagian besar dari register ini bekerja dengan hasil
kalkulasi aritmatikan dan logika terakhir. Misalnya : carry,
overflow, zero, sign.
Register-register General purpose
Register-register ini disediakan untuk digunakan oleh para
pemrogram.
Arithmetic and Logic Unit (ALU)
# ALU biasanya mempunyai dua data input dan menghasilkan
satu hasil tunggal.
# Sebagai tambahan, bit-bit di dalam register status dapat diset
untuk menunjukkan apakah operasi disebabkan suatu
verflow, carry atau lainnya.
# Banyak operasi juga menggunakan bit carry dari instruksi
sebelumnya.
# ALU diberitahu apa yang dikerjakannya oleh sinyal-sinyal
kontrol dari control unit.

II. Instruksi-instruksi kode mesin
Umumnya komputer modern dapat melaksanakan 50 sampai 100
instuksi. Instruksi-instruksi ini dapat dikelompokkan ke dalam
beberapa tipe, yaitu :
# Aritmatika dan logika
# Perpindahan Data
# Aliran Program
Aritmatika dan Logika
Instruksi-instruksi ini digunakan untuk memanipulasi data. Tipe
ini selanjutnya dapat dibagi ke dalam 2 :

1. Monadic
Operasi-operasi yang hanya memerlukan satu operan, mencakup
a. Set dan clear
b. Complement dan negasi
c. Increment dan decrement
d. Shift dan rotate

2. Dydadic
Operasi-operasi yang memerlukan dua operan.
a. Aritmatika : add, subtract, dan lain-lain.
b. Logika : AND, OR, dan lain-lain.

Perpindahan Data
Instruksi-instruksi ini menggerakkan data di dalam sistem,
antara register-register, memory utama, stack, input dan output.
Jenis instruksi ini dapat dibagi menjadi beberapa bagian, yaitu :

Memory dan register
Digunakan untuk perpindahan data antara :
a. Register-register
b. Memory-register
c. Memory-memory

Operasi Stack
Operasi yang dilakukan adalah Push dan pop
Operasi Input/output
Terdapat dua mekanisme yang sering digunakan :
* Isolated I/O – Instruksi-instruksi tertentu tersedia untuk
memindahkan data ke dan dari interface input/output.
* Memory-mapped I/O - Interface input/output diperlakukan
sebagai lokasi-lokasi memory, sehingga tidak diperlukan
instruksi-instruksi I/O khusus.

Program Flow
Normalnya program berjalan secara urut (sequential) – suatu
instruksi dieksekusi setelah instruksi lain sesuai dengan
urutannya di dalam memory. Namun begitu, urutan aliran
normal ini dapat diubah sesuai dengan kebutuhan.
Unconditional branches
Melompat ke suatu intruksi selain intruksi berikutnya, misalnya
melangkahi 10 instruksi menuju instruksi tertentu.
Conditional branches

Kadang kala intruksi berikutnya dieksekusi secar anormal,
kadang-kadang melakukan percabangan. Normalnya, keputusan
didasarkan pada nilai bit-bit di dalam register status, misalnya,
percabangan jika instruksi terakhir memberikan hasil nol.
Perulangan
Suatu variasi dari conditional branch, dimana eksekusi
bercabang kembali ke awal loop (perulangan), tergantung pada
nilai refgister index.
Subroutine calls
Sub-rutin ini menyimpan nilai dari program counter (PC) dan
register-regfister lain yang sedang digunakan sebelum
percabangan ke suatu dereten intruksi yang mengimplemetasikan
suatu procedure aau function. Setelah deretan instruksi,
eksekusi kembali ke alamat yang sebelumnya di simpan di dalam
PC, dan nilai-nilai register yang disimpan di-restore.

III. Mode-mode pengalamatan
Sebagian besar instruksi yang sesungguhnya dieksekusi oleh
komputer selama menjalankan suatu program terfokus pada
pergerakan (perpindahan) data ke dan dari memory. Adalah tidak
mudah menentukan alamat-alamat pasti (fix) di dalam setiap
instruksi, misalnya memerlukan lokasi data diketahui pada saat
program ditulis. Ini tidak mungkin karena beberapa alasan :

# Pada saat sebuah program membaca dari disk, program
tersebut akan ditempatkan di memory pada posisi yang tidak
dapat diperkirakan sebelumnya. Karena itu, lokasi suatu data
di dalam program tidak dapat diketahui sebelumnya.

# Demikian pula, data yang sebelumnya telah disimpan ke file
pada disk atau tape akan dimuat kembali ke memory (jika
diperlukan) pada posisi yang tidak dapat diketahui, dapat
tidak sama dengan sebelumnya.

# Jika data yang ingin digunakan akan dibaca dari peralatan
input, maka anda tidak mengetahui dimana posisinya di
dalam memory nanti.

# Banyak kalkulasi melibatkan operasi yang sama yang
diulang-ulang terhadap data dalam jumlah besar, misalnya
perubahan suatu gambar yang terdiri dari jutaan pixel. Jika
setiap instruksi beroperasi pada suatu lokasi memory pasti,
maka program harus berisi instruksi yang sama banyak kali,
sekali untuk setiap pixel.
Karena itu kita memerlukan strategi untuk menentukan lokasi
data.
Immediate addressing (pengalamatan langsung segera)
Pengalamatan langsung terhadap data, bukan alamat dimana
data tersebut berada, diberikan sebagai operan instruksi.
Direct atau Absolute addressing (pengalamatan langsung atau
absolut)
Mengakses suatu alamat pasti yang ditentukan.
Implied addressing
Lokasi data sudah tersirat di dalam instruksi, jadi tidak perlu
diberikan operan. misalnya, komputer yang mempunyai instruksi
INCA (increment the accumulator, menaikkan nilai accumulator).
Relative addressing (Pengalamatan Relatif)
Lokasi data ditentukan relatif terhadap nilai yang sedang
dipegang oleh program counter (PC). Ini bermanfaat untuk
penentuan lokasi data yang diberikan sebagai bagian dari
program.
Indirect addressing (Pengalamatan tidak langsung)
Suatu lokasi memory diberikan yang memegang lokasi memory
lain. Lokasi memory kedua ini memegang data sesungguhnya.
Mekanisme ini memecahkan masalah yang disebabkan oleh
pembacaan data dari file atau peralatan input selama program
berjalan (eksekusi).
Indexed addressing (Pengalamatan Berindeks)
Lokasi data dikalkulasi sebagai jumlah total (sum) dari suatu
alamat yang ditentukan oleh salah satu metode sebelumnya, dan
nilai dari suatu register index. Ini memungkinkan suatu array
data (misalnya gambar) diakses secara berulang-ulang oleh
deretan instruksi yang sama.

0 komentar: