>> TUJUAN INSTRUKSIONAL
UMUM
Setelah mempelajari mata kuliah Arsitektur
Setelah mempelajari mata kuliah Arsitektur
Komputer, mahasiswa dapat memahami bentuk
arsitektur komputer secara menyeluruh dan
rinci, fungsi komponen-komponen komputer,
dan fungsi keseluruhan dalam satu kesatuan
sistemkomputer.
>> TUJUAN INSTRUKSIONAL
KHUSUS
•
TUJUAN INSTRUKSIONAL KHUSUS
1.
Mahasiswa memahami tentang organisasi dan
1.
Mahasiswa memahami tentang organisasi dan
arsitektur komputer
>> ORGANISASI DAN ARSITEKTUR KOMPUTER
•
Organisasi komputer mempelajari bagian yang terkait
dengan unit-unit operasional komputer dan hubungan
antara komponen sistem komputer,contoh : sinyal
kontrol, prosesor, interface komputer dan peripheral,
kontrol, prosesor, interface komputer dan peripheral,
teknologi memori yang digunakan.
•
Arsitektur
komputer
mempelajari
atribut-atribut
>> KOMPUTER SEBAGAI MESIN MULTI LEVEL
Bahasa atau level yang terletak paling bawah adalah
yang paling sederhana dan dapat diproses dengan
cepat oleh mesin komputer, tetapi sulit untuk
dipahami oleh manusia.
Bahasa atau level yang paling atas adalah yang paling
rumit dan mesin akan lebih lama melakukan proses
instruksinya karena memerlukan interpreter, tetapi
manusia lebih mudah memahami bahasa level
tersebut.
Pada level 1 – 3 merupakan bahasa mesin bersifat
numerik. Program-program didalamnya terdiri
dari deretan angka yang panjang, yang tidak
menjadi masalah untuk mesin tapi merupakan
persoalan untuk manusia. Mulai pada level 4
persoalan untuk manusia. Mulai pada level 4
bahasa berisi kata/singkatan yang mempunyai arti
bagi manusia.
Komputer dirancang sebagai suatu rangkaian
level, dimana setiap level dibangun diatas level
level, dimana setiap level dibangun diatas level
sebelumnya.
Setiap level
memiliki
abstraksi
•
Kumpulan jenis data, operasi dan sifat dari setiap level
disebut arsitektur dari level tersebut.
•
Sifat-sifat yang dipahami oleh programmer,seperti
berapa besar memori yang tersedia, adalah bagian dari
berapa besar memori yang tersedia, adalah bagian dari
arsitektur.
•
Sedangkan aspek implementasi seperti jenis teknologi
chip
apa
yang
digunakan
untuk
mengimplementasikan memori bukan bagian dari
arsitektur.
•
Studi tentang cara merancang bagian-bagian suatu
•
Studi tentang cara merancang bagian-bagian suatu
>> Komputer Generasi Pertama 1940 -1959
ENIAC (Electronic Numerical Integrator and Calculator)Komputer ENIAC ini diciptakan oleh Dr John Mauchly dan J. Presper Eckert pada tahun 1946 (one year after the war was over)
EDVAC (Electronic Discrete Variable Automatic Computer)
Penggunaan tiub tiub vakum juga telah dikurangi di dalam EDVAC, di mana proses perhitungan telah menjadi lebih cepat dibandingkan ENIAC
EDSAC (Electronic Delay Storage Automatic Calculator) the world’s first stored-program computer. Diciptakan oleh Maurice Wilkes
EDSAC telah memperkenalkan penggunaan raksa (merkuri) dalam tube untuk menyimpan memori. was based on the discovery of the matematician John von Neumann.
UNIVAC I (Universal Automatic Calculator)P
>>Komputer Generasi Ke Dua ( 1959-1964 )
Komputer-komputer generasi kedua telah menggunakan transistor dan
diode untuk menggantikan saluran-saluran vakum dan menjadikan
ukuran komputer lebih kecil dan murah.
ukuran komputer lebih kecil dan murah.
Cara baru menyimpan memori juga diperkenalkan melalui teknologi
magnetik. Keupayaan pemprosesan dan ukuran memori utama
komputer juga bertambah dan manjadikan ia lebih efisien.
Kemunculan FORTRAN dan COBOL menandakan permulaan bahasa
tingkat tinggi untuk menggantikan bahasa pengantar dalam mesin yang
lebih sukar.
lebih sukar.
Minikomputer juga telah diperkenalkan yaitu yang kedua terbesar di
>> Komputer Generasi Ke Tiga (1964-awal 80-an)
Chip mulai menggantikan transistor sebagai bahan logis
komputer dengan terhasilnya Integrated Circuit atau lebih
dikenal dengan sebutan chip.
Jenis komputer terkecil mikrokomputer telah muncul dan paling
cepat menjadi popular seperti Apple II, IBM PC dan Sinclair.
Banyak bahasa pemrograman telah muncul seperti BASIC, Pascal
dan PL/1.
Kebanyakan mikrokomputer didasari dengan tafsiran bahasa
Kebanyakan mikrokomputer didasari dengan tafsiran bahasa
Komputer Generasi Ke Empat (awal 80-an-??)
Chip masih digunakan untuk memproses dan menyimpan
memori. Ia lebih canggih, dilengkapi hingga ratusan ribu
komponen transistor yang disebut pengamiran skala amat besar
komponen transistor yang disebut pengamiran skala amat besar
(very large scale intergartion,VLSI).
Pemprosesan dapat dilakukan dengan lebih tepat,sampai jutaan
bit per detik.
Memori utama komputer menjadi lebih besar sehingga
menyebabkan memori sekunder kurang penting.
menyebabkan memori sekunder kurang penting.
Teknologi chip yang maju ini telah mewujudkan satu lagi kelas
Komputer Generasi Ke Lima (masa depan)
Generasi kelima dalam sejarah evolusi komputer merupakan
komputer impian masa depan. Ia diperkirakan mempunyai lebih
banyak unit pemprosesan yang berfungsi bersamaan untuk
banyak unit pemprosesan yang berfungsi bersamaan untuk
menyelesaikan lebih daripada satu tugas dalam satu masa.
Komputer ini juga mempunyai ingatan yang amat besar sehingga
memungkinkan penyelesaian lebih dari satu tugas dalam waktu
bersamaan.
Unit pemprosesan pusat juga dapat berfungsi sebagai otak
3. ALU
Tugas utama adalah melakukan semua perhitungan
Tugas utama adalah melakukan semua perhitungan
aritmatika dan melakukan keputusan dari suatu
4. I/O Interconection
Input-Output (/O) Interconection merupakan sistem
koneksi yang menghubungkan antar komponen
internel dalam sebuah CPU, yaitu ALU, unit kontrol,
dan register serta menghubugkan CPU dengan
>> SIKLUS INSTRUKSI
Program yang ada di memori komputer terdiri dari sederetan
instruksi. Setiap instruksi dieksekusi melalui suatu siklus. Setiap
siklus instruksi terdiri dari tahap-tahap :
siklus instruksi terdiri dari tahap-tahap :
1. Instruction fetch, yaitu mengambil instruksi dari memori dan
mentransfernya ke unit kontrol.
2. Mengartikan (decode) instruksi dan menentukan apa yang harus
dikerjakan serta data apa yang digunakan.
3. Baca alamat efektif, jika instruksi beralamat indirect.
4. Proses eksekusi instruksi dengan memilih operasi yang
diperlukan dan mengendalikan perpindahan data yang terjadi.
5. Terdapat register dalam CPU yang berfungsi mengawasi dan
5. Terdapat register dalam CPU yang berfungsi mengawasi dan
menghitung instruksi selanjutnya yaitu Program Counter
6. PC akan menambah satu hitungan setiap kali CPU membaca
instruksi
Berikut ini beberapa istilah yang digunakan di dalam aktifitas atau proses-proses pada siklus tersebut :
Instruction Address Calculation (IAC), yaitu proses mengkalkulasi
atau menentukan alamat
instruksi berikutnya yang akan dieksekusi
instruksi berikutnya yang akan dieksekusi
Instruction Fetch (IF) yaitu membaca atau mengambil instruksi
dari lokasi memorinya ke CPU
Instruction Operation Decoding (IOD) yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan.
Operand Address Calculation (OAC) yaitu menentukan alamat
operand, hal ini dilakukan apabila melibatkan referensi operand pada memori
pada memori
Operand Fetch (OF) yaitu mengambil operand dari memori atau
dari modul I/O
Data Operation (DO) yaitu proses membentuk operasi yang
diperintahkan dalam instruksi.
Operand Store (OS) yaitu proses menyimpan hasil eksekusi ke
5. INTERUPSI
Fungsi interupsi adalah mekanisme penghentian atau
pengalihan pengolahan instruksi dalam CPU kepada
routine interupsi.
routine interupsi.
Hampir semua modul (memori dan I/O) memiliki
mekanisme yang dapat menginterupsi kerja CPU.
Tujuan
interupsi
secara
umum
untuk
manajemen
pengeksekusian routine instruksi agar efektif dan efisien
antar CPU dan modul-modul I/O maupun memori.
Setiap komponen komputer dapat menjalankan tugasnya
Dalam CPU terdapat sinyal-sinyal interupsi sebagai berikut :
Program
nterupsi yang dibangkitkan dengan beberapa kondisi yang
terjadi pada hasil eksekusi program,
terjadi pada hasil eksekusi program,
contoh : aritmatika overflow, pembagian nol, operasi ilegal
Timer
Interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal
ini memungkinkan sistem operasi menjalankan fungsi
tertentu secara reguler
I/O
Sinyal interupsi yang dibangkitkan oleh modul I/O
Sinyal interupsi yang dibangkitkan oleh modul I/O
sehubungan pemberitahuan kondisi error dan penyelesaian
suatu operasi.
Hardware failure
Tahap eksekusi program :
Tahap 1
PC (Program Counter) berisi alamat 300 untuk instruksi
pertama. Instruksi yang berada di alamat 300 dimuatkan ke IR
pertama. Instruksi yang berada di alamat 300 dimuatkan ke IR
(Instruction
Register).Tentunya
proses
ini
melibatkan
penggunaan MAR (Memory Address Register) dan MBR
(Memory Buffer Register)
Tahap 2
Instruksi dalam IR : untuk 4 bit pertama menunjukkan opcode,
bit berikutnya yaitu 12 bit menunjukkan alamat. Jadi instruksi
1940 maksudnya 1 = opcode 0001 = isi AC dari memori alamat
1940 maksudnya 1 = opcode 0001 = isi AC dari memori alamat
940
Tahap 3
Tahap 4
Tahap 4
Instruksi dalam IR yaitu 5941 maksudnya 5 = opcode
0101 = tambahkan AC dengan isi memori alamat 941
dan hasilnya disimpan dalam AC.
Tahap 5
PC bertambah nilainya dan instruksi berikutnya
diambil yaitu di alamat 302 dan dimasukkan di dalam
diambil yaitu di alamat 302 dan dimasukkan di dalam
IR.
Tahap 6
>> CISC BANDING RISC
Ada dua buah konsep popuker yang berhubungan sengan
desain cpu dan set instruksi:
1.
Complex Instruction Set Computing (CISC)
2.
Reduce Instruction Set Computing (RISC)
Semua sistem yang lama ( komputer mainframe,
komputer mini atau komputer mikro) relatif saat ini
lebih populer karena tingkat kinerjanya, dibandingkan
dengan sistem CISC.
dengan sistem CISC.
1. Trend Teknologi CISC
Umumnya set instruksi pada sistem CISC dibuat efisien
dengan memasukkan sejumlah besar
complex instruction
(instruksi kompleks).
(instruksi kompleks).
Tujuannya adalah mengurangi ukuran program yang telah
terkompilasi (bahasa mesin) dengan instruksi-instruksi
yang terbatas.
Keuntungan Instruksi Kompleks antara lain:
1.
Jumlah instruksi di dalam sebuah program (terkompilasi)
lebih sedikit,hal tersebut bisa mengurangi harga sistem
(penggunaan memori kecil).
2.
Waktu yang digunakan CPU untuk pengambilan (
fetching)
2.
Waktu yang digunakan CPU untuk pengambilan (
fetching)
instruksi lebih sedikit, sehingga bisa mengurangi waktu
eksekusi program.
Diperlukan compiler efisiensi tinggi untuk menggunakan
instruksi kompleks yang lebih sering pada saat translasi
program bahasa tingkat tinggi ke program bahasa mesin.
Karena itu, software sistem
(compiler)
menjadi sangat besar
Karena itu, software sistem
(compiler)
menjadi sangat besar
untuk membuat kode objek yang kecil.
>> Kelemahan CISC
>> Beberapa kelemahan sistem CISC adalah:
1. Komplesitas CPU: desainunit kontrol (utamanya pendekodean instruksi) menjadi kompleks karena mempunyai set instruksi yang instruksi) menjadi kompleks karena mempunyai set instruksi yang besar.
2. Ukuran sistem dan biaya: mempunyai banyak sirkuit hardware yang menyebabkan CPU manjadi kompleks. Hal ini meningkatkan biaya hardware pada sistem dan juga kebutuhan daya listrik.
3. Kecepatan Clock: karena sirkuit yang besar maka progagation delay (tunda propagasi) lebih besar dan waktu siklus CPU yang besar sehingga kecepatan clock efektif menurun.
sehingga kecepatan clock efektif menurun.
4. Keandalan: dengan hardware yang besar maka cenderung mudah menjadi kegagalan.
2. Konsep RISC
Istilah “KISS” sering digunakan dalam konsep RISC yang merupakan
singkatan dari “ Keep Is short and simple)”.
Arsitektur RISC mempunyai fitur sebagai berikut:
1. Instruksinya sederhana
1. Instruksinya sederhana
2. Set instruksi kecil
3. Panjang instruksinya sama untuk semua instruksi
4. Register untuk penyimpanan operand jumlahnya besar
5. Arsitektur Load/Store: operand untuk instruksi aritmatika seperti “ADD” tersedia di register dan bukan di memori. Demikian halnya hasil instruksi “ADD” disimpan di register bukan di memori. Jadi Instruksi “LOAD” akan mendahului instruksi “ADD” dan instruksi “STORE” akan mengikuti instruksi “ADD”, jika diperlukan. Karena itu compiler akan memberikan banyak instruksi “LOAD” dan itu compiler akan memberikan banyak instruksi “LOAD” dan “STORE”.
CPU RISC yang berbasis mikroprosesor maupun yang
non-mikroprosesor hingga saat ini telah didesain dan
dipasarkan. Berikut beberapa CPU RISC:
1.
IBM RS/6000 atau Arsitektur POWER
1.
IBM RS/6000 atau Arsitektur POWER
2.
Keluarga Sun’s SPARC
3.
HP’s PA (precision architecture)
4.
Keluarga Motorola 88000
5.
Intel 860
6.
Seri MIPS
6.
Seri MIPS
>> Mikroprosesor RISC
Pabrik mikroprosesor dari dulu tidk memberikan prioritas
pengembangan prosesor.
Salah satu alasannya adalah ketersediaan kompatibilitas
(pada
mikroprosesor
baru)
terhadap
mikroprosesor
sebelumnya yaitu CPU tipe CISC.
Pada umumnya mikroprosesor keluarga Intel (8008 sampai
pentium 4) adalah tipe CISC kecuali Intel 860.
Keluarga Motorola 88000 termasuk dalam tipe RISC.
Sedangkan powerPC merupakan CPU tipe RISC yang
Sedangkan powerPC merupakan CPU tipe RISC yang
dikembangkan bersama oleh IBM, Motorola dan Apple.
>> KLASIFIKASI ARSITEKTURAL
Ada 3 skema klasifikasi arsitektural sistem komputer,
yaitu:
yaitu:
1. Klasifikasi Flynn
Didasarkan pada penggandaan alur instruksi dan alur
data dalam sistem komputer.
2. Klasifikasi Feng
Didasarkan pada pemrosesan paralel dan serial
Didasarkan pada pemrosesan paralel dan serial
3. Klasifikasi H ndler
>> KLASIFIKASI FLYNN
Klasifikasi sistem komputer yang didasarkan pada
penggandaan
alur
instruksi
dan
alur
data
penggandaan
alur
instruksi
dan
alur
data
diperkenalkan oleh Michael J. Flynn
Alur instruksi (instruction stream) adalah urutan
instruksi yang dilaksanakan oleh mesin
Alur data adalah urutan data yang dipanggil oleh
alur instruksi
Baik instruksi maupun data diambil dari modul
Baik instruksi maupun data diambil dari modul
memori
Instruksi didecode (diartikan) oleh Control Unit.
Ada 4 kategori sistem komputer dalam klasifikasi
Flynn:
1. Single Instruction stream – Single Data stream (SISD)
1. Single Instruction stream – Single Data stream (SISD)
2. Single Instruction stream – Multiple Data stream
(SIMD)
3. Multiple Instruction stream – Single Data stream
(MISD)
4. Multiple Instruction stream – Multiple Data stream
4. Multiple Instruction stream – Multiple Data stream
>> Tabel klasifikasi Flynn
Instruksi Tunggal Instruksi Majemuk Instruksi Tunggal
(Single instruction)
Instruksi Majemuk
(multiple instruction) Data Tunggal
(single data)
SISD
(Single instructin single data)
MISD
(multiple instruction single data)
Data majemuk (multiple data) SIMD (Single instruction multiple data) MIMD
(multiple instruction multiple data )
1. Single Instruction Single Data Stream
Sebuah komputer yang instruksi-instruksinya
dijalankan satu per satu dan sebuah instruksi tunggal
berhubungan dengan paling banyak satu operasi data.
berhubungan dengan paling banyak satu operasi data.
Dapat juga menggunakan pipelining untuk
mempercepat pemrosesan dan kebanyakan komputer
SISD di-pipelin-kan ke beberapa saluran tambahan.
Karakteristik SISD yang penting adalah pelaksanaan
instruksi secara sekuensial (secara berurut) dalam arti
instruksi secara sekuensial (secara berurut) dalam arti
instruksi dan data diproses secara serial.
>> ilustrasi Single Instruction Single Data Stream
Keterangan:
Keterangan:
2. Multiple Instruction stream – Single Data stream (MISD)
Sebuah komputer yang dapat melakukan banyak
instruksi terhdap satu aliran data.
instruksi terhdap satu aliran data.
Ada dua kategori:
Ada dua kategori:
1.Mesin dengan Unit pemroses berbeda dengan
instruksi yang berbeda dengan data yang sama
(sampai sekarang tidak ada mesin yang seperti ini)
>> lanjutan
Keterangan gambar:
CU1,CU2,..Cu-n : Control Unit
CU1,CU2,..Cu-n : Control Unit
PU1,PU2,PU-n : Processor Unit
MM : Memory Module
Sejumlah PU, masing-masing menerima instruksi
yang berbeda dan mengoperasikan data yang sama.
Output salah satu prosesor menjadi input bagi
Output salah satu prosesor menjadi input bagi
prosesor berikutnya.
Struktur komputer ini tidak praktis, sehingga tidak
3. Single Instruction stream – Multiple Data stream (SIMD)
Sebuah komputer yang mampu memproses banyak
aliran data dengan hanya satu instruksi.
Operasi yang dilakukan adalah paralel.
Contoh dari SIMD adalah prosesor larik (array
processor) atau GPU.
>> Ilustrasi Single Instruction stream – Multiple Data stream (SIMD)
PE : Processing Element
CU : Control Unit
CU : Control Unit
PU : Processor Unit
MM : Memory Modul
SM : Shared Memory
IS : Instruction Stream
Beberapa Processor Unit (Processing Element) disupervisi
oleh Control Unit yang sama.
Semua Processing Element menerima instruksi yang sama
Semua Processing Element menerima instruksi yang sama
dari control
unit tetapi mengeksekusi data yang berbeda dari alur data
yang berbeda pula.
Subsistem memori berisi modul-modul memori.
Processor vektor dan processor array termasuk dalam
1. Desain Set Instruksi
Pekerjaan
yang
paling
signifikan/penting
dan
kompleks
dalam
mendesain
komputer
adalah
kompleks
dalam
mendesain
komputer
adalah
membuat set instruksi.
Komputer
era
sebelumnya
tidak
melakukan
perencanaan set instruksi.
Seorang arsitektur komputer harus mempertimbangkan aspek-aspek berikut sebelum menyelesaikan set instruksi:
1. Kenyamanan Pemrograman: Jumlah instruksi; pemrogram lebih suka mempunyai sebanyak mungkin instruksi supaya operasi yang suka mempunyai sebanyak mungkin instruksi supaya operasi yang tepat dapat dikerjakan oleh rangkaian instruksi. Tetapi mempunyai terlalu banyak instruksi dalam set instruksi menghasilkan desain unit kontrol yang kompleks. Pendekokean instruksi memerlukan sirkuit dan waktu yang besar.
2. Pengalamatan yang fleksibel: pemrogram senang jika memungkinkan semua mode pengalamatan operand ada di dalam arsitektur. Hal ini memberikan fleksibilas yang banyak kepada pemrogram. Walaupun desain unit kontrol menjadi kompleks.
pemrogram. Walaupun desain unit kontrol menjadi kompleks.
>> Lanjutan
4
. Target Segmen Pasar: sasaran bidang aplikasi untuk komputer memerlukan operasi-operasi khusus untuk pemrosesan data yang efisien. Komputer saintifk harus mempunyai aritmetika floating-pointyang tingkat presisinya baik/tidak terlalu jelek. Sedangkan komputer yang tingkat presisinya baik/tidak terlalu jelek. Sedangkan komputer bisnis harus mendukung aritmetika desimal, komputer iburan harus mempunyai operasi-operasi multimedia.
2
. CPU berbasis Akumulator
Pada mulanya komputer adalah berbasis akumulator. Hal ini
merupakan CPU yang sederhana, dimana akumulator berisi satu
operand pada instruksi, demikian juga hasilnya disimpan pada
operand pada instruksi, demikian juga hasilnya disimpan pada
akumulator. Isi akumulator disertakan di dalam operasi-0perasi
aritmetika seperti penjumlahan, pengurangan dan sebagainya.
Hal ini dikenal sebagai
mesin satu-alamat.
PDP-8 merupakan minicomputer pertama yang mempunyai
jenis CPU seperti ini dan digunakan untuk kendali proses dan
aplikasi-aplikasi laboratorium.
Komputer Mark I juga merupakan komputer khas yang berbasis
akumulator.
Keuntungan CPU berbasis akumulator adalah:
1.
Isi akumulator diperuntukkan bagi satu operand. Karena
itu tidak memerlukan medan alamat operand (untuk
itu tidak memerlukan medan alamat operand (untuk
satu operand) dalam instruksi. Hal ini menghasilakn
instruksi yang pendek dan ruang memori yang sedikit.
Karena tidak adanya medan alamat, maka jenis CPU ini
mendukung instruksi-instruksi non-alamat dan
satu-alamat. Instruksi satu-alamat mempunyai satu operand
di dalam memori utama dan yang lainnya di dalam
akumulator.
akumulator.
Kekurangan CPU berbasis akumulator adalah:
1.
Ukuran programnya menjadi panjang karena banyak
menggunakan
instruksi
dalam
ekspresi-ekspresi
kompleks. Karena itu ukuran memori bertambah.
kompleks. Karena itu ukuran memori bertambah.
>> Contoh1:
Tuliskan sebuah program bahasa rakitan dalam arsitektur CPU berbasis akumulator untuk menyelesaikan statement X=(A+B)-(C+D)
Solusi:
Solusi:
LOAD A : Salin A ke dalam akumulator
ADD B : Jumlahkan B dengan isi akumulator dan
hasilnya disimpan di akumulator ( akumulator berisi A+B) STORE T : simpan hasil AB dalam T, suatu lokasi memori sementara LOAD C : salin C ke dalam akumulator
ADD D : Jumlahkan D ke dalam akumulator dan simpan hasilnya ADD D : Jumlahkan D ke dalam akumulator dan simpan hasilnya
dalam akumulator (akumulator berisi C+D)
SUB T : Perkurangkan isi akumulator dari T dan simpan hasilnya dalam akumulator
3. CPU Berbasis Register
Pada CPU jenis ini, banyak register yang digunakan sebagai
akumulator. Dengan kata lain, ada lebih dari satu
akumulator. Dengan kata lain, ada lebih dari satu
akumulator.
CPU seperti ini mempunyai organisasi register umum GPR
(general purpose register). Penggunaan register-register
tersebut menghasilkan program yang pendek dengan
instruksi yang sedikit. IBM System/360 dan PDP-11
merupakan contoh khas.
>> Contoh2:
Tuliskan sebuah program bahasa rakitan dalam arsitektur CPU
berbasis register untuk menyelesaikan statement
X=(A+B)-(C+D)
X=(A+B)-(C+D)
Solusi:
LOAD R1,A :
salin A ke dalam registerADD R1,B
:
Jumlahkan B dengan isi R1 dan hasilnya disimpan di R1LOAD R2,C :
salin C ke dalam R2ADD R2,D
:
Jumlahkan D ke dalam R2 dan simpan hasilnya di R2SUB R1,R2
:
SUB R1,R2
:
perkurangkan isi R2 dan R1 dan simpan hasilnya dalam R1
Dibandingkan dengan contoh1 terlihat bahwa CPU
berbasis register (arsitektur GPR) menghasilkan ukuran
program yang lebih pendek daripada CPU berbasis
program yang lebih pendek daripada CPU berbasis
akumulator.
Dan juga program pada CPU yang berbasis akumulator
memerlukan lokasi memori untuk menyimpan asil
sementara(parsial).
Karena itu diperlukan akses memori tambahan selama
eksekusi program.
eksekusi program.
3.CPU Berbasis Stack
Stack merupakan daftar yang didorong ke bawah dengan mekanisme akses LIFO (Last In Firs Out).
Stack yang menyimpan operand-operand. Stack yang menyimpan operand-operand.
Penggunaan stack dapat berada di dalam CPU atau merupakan bagian dari memori.
Suatu register(atau lokasi memori) digunakan untuk menunjuk ke alamat lokasi kosong pada puncak stack. Register ini dikenal dengan
Stack Pointer (SP).
Bila tidak ada yang tersimpan dalam stack, berarti stack kosong dan SP menunjuk ke bagian stack terbawah.
menunjuk ke bagian stack terbawah.
Bila suatu item disimpan di dalam stack, maka dinamakan oerasi
PUSH; dan isi SP diturunkan (decrement)
Bila stack penuh, SP menunjuk ke bagian stack teratas.
Keterangan konsep stack & operasi stack:
Item yang terakhr didorong ke dalam stack, akan
keluar pertama jika ada operasi POPberikutnya.
keluar pertama jika ada operasi POPberikutnya.
Pada CPU berbasis stack, semua operasi oleh CPU
dikerjakan pada isi stack.
Demikian halnya,hasil suatu operasi juga disimpan
pada stack.
Pada eksekusi suatu instruksi aritmetika seperti ADD,
Pada eksekusi suatu instruksi aritmetika seperti ADD,
operand-operand teratas yang di-
pop
Contoh3:
Tuliskan sebuah program bahasa rakitan dalam arsitektur CPU berbasis stack untuk menyelesaikan statement X=(A+B)-(C+D)
Statement Isi Stack setelah Lokasi stack yang Statement Isi Stack setelah
eksekusi instruksi
Lokasi stack yang diduduki
PUSH A A 1
PUSH B A,B 2
ADD A+B 1
PUSH C (A+B),C 2
PUSH D (A+B),C,D 3
PUSH D (A+B),C,D 3
ADD (A+B),(C+D) 2
SUB (A+B),(C+D) 1
Dari isi stack, dapat dilihat bahwa stack berubah bil
beberapa operasi PUSH mendapat tempat.
Bila suatu instruksi dieksekusi, operand dipindahkan
Bila suatu instruksi dieksekusi, operand dipindahkan
dari stack dan hasilnya menempati posisi pada puncak
stack.
Contoh3 menunjukkan bahwa ukuran program untuk
Keuntungan CPU berbasis Stack adalah:
1.
Pemrograman mudah/efisiensi compiler tinggi
2.
Sangat cocok untuk bahasa-bahasa blok-terstruktur
(block-structered language)
(block-structered language)
3.
Instruksi tidak mempunyai fieldalamat; instruksi
pendek.
Kelemahan CPU berbasis Stack:
1.
Diperlukan sirkuit hardware
tambahan
untuk
implementasi stack
implementasi stack
4. Panjang Istruksi
Intruksi yang terlalu panjang mempunyai kekurangan:
1.
Instruksi menempati ruang memori yang lebih besar, yang
meningkatkan kebutuhan memori sistem
meningkatkan kebutuhan memori sistem
2.
lebar luas data besar atau pengambilan instruksi lebih
memakan waktu. Kondisi pertama menambah biaya hardware
sedangkan yang kedua menambah waktu siklus instruksi.
Instruksi yang terlalu pendek mempunyai kekurangan:
1.
Terlalu banyak instruksi di dalam program. Karena itu banyak
waktu yang terbuang untuk fase pengambilan
waktu yang terbuang untuk fase pengambilan
5. Format Instruksi
Umumnya format instruksi terdiri dari kode operasi dan operand.
Suatu instruksi memberikan palng banyak empat informasi pada CPU :
Suatu instruksi memberikan palng banyak empat informasi pada CPU :
1. Operasi yang akan dikerjakan oleh instruksi
2. Operand (data) yang harus dioperasikan
3. Lokasi (memori atau register) di mana hasil operasi harus disimpan
4. Lokasi memori dimana instruksi berikutnya harus diambil
contoh4
Medan panjang instruksi dan medan alamat operand
masing-masing adalah 36 bit dan 14 bit. Jika instruksi
masing-masing adalah 36 bit dan 14 bit. Jika instruksi
dua-operand yang digunakan sebanyak 240, berapa
banyak instruksi satu-operand yang memungkinkan?
Solusi:
Panjang instruksi = 36 bit
sebuah instruksi dua-operand membutuhkan 28 bit
untuk alamat operand (2x14 bit).karena itu
untuk alamat operand (2x14 bit).karena itu
Ukuran opcode=36-28 = 8bit
Total instruksi yang mungkin =
2pangkat 8 = 256
5. Pengalamatan Register
Format instruksi perngalamatan register
Secara konseptual, pengalamatan register mirip dengan
pengalamatan langsung kecuali lokasi memori digantikan
dengan register untuk menyimpan operand.
dengan register untuk menyimpan operand.
Instruksi berisi nomor register yang mempunyai operand.
Mode pengalamatan ini sangat berguna untuk suatu
>> Lanjutan:
Contoh berikut adalah ilustrasi mode pengalamatan
register:
register:
ADD R1,R2
Jumlah isi register R1 dan R2 dan
hasilnya
disimpan
di
R1.
Kedua
operand
menggunakan pengalamatan register.
STORE
R1,MEM1
isi
dari
register
R1
disimpan/disalin ke alamat memori MEM1; operand
pertama menggunakan pengalamatan register dan
pertama menggunakan pengalamatan register dan
operand
kedua
menggunakan
pengalamatan
>> Keuntungan dan Kelemahan Pengalamatan Register
Keuntungan:
pengambilan operand lebih cepat tanpa akses
pengambilan operand lebih cepat tanpa akses
memori
Kelemahan:
Jumlah register terbatas dan karena itu utilisasi
efektif oleh programmer merupakan hal yang
esensial.
6. Pengalamatan Indeks
Format instruksi pengalamatan Indeks
Pada mode pangalamatan indeks, alamat operand diperoleh dengan
menambahkan sebuah konstanta ke suatu register, yang disebut menambahkan sebuah konstanta ke suatu register, yang disebut register indeks.
Instruksi ini mengisi register Ri dengan isi lokasi memori yang alamatnya adalah hasil jumlah isi register Rind dan nilai X
Contoh:
>> lanjutan 1:
Mode ini berbeda sedikti dengan mode pengalamatan
base
register.
Register
indeks
berisi
sebuah
offset
atau
perpindahan
(
displacement).
(
displacement).
Instruksi berisi alamat yang akan ditambahkan pada offset
dalam register indeks, untuk mendapatkan alamat operand
efektif.
Umumnya medan alamat dalam instruksi memberikan alamat
awal array dalam memori.
Register indeks berisi ‘
nilai indeks’
untuk operand yaitu selisih
antara alamat awal dan alamat operand.
antara alamat awal dan alamat operand.
Dengan mengubah register indeks, maka operand dalam array
dapat diakses.
Umumnya
operand-operand(elemen-elemen
array)
berada
dalam lokasi yang berurutan. Mereka diakses dengan
increment
>> lanjutan2:
Beberapa CPU mendukung fitur ‘
autoindexing’
, yang
melibatkan
auto-increment
(dengan hardware) pada
melibatkan
auto-increment
(dengan hardware) pada
register indeks kapanpun sutu instruksi dengan
pengalamatan indeks dieksekusi.
Hal ini mengurangi penggunaan instruksi terpisah
dalam menambah(increment) isi register indeks.
Hal ini juga lebih mempercepat aksi serta lebih
mengurangi ukuran program. Namun memberikan
mengurangi ukuran program. Namun memberikan
tanggungjawab tambahan ‘
autoindexing’
pada unit
7. Pengalamatan Relatif
Format instruksi pengalamatan relatif
Pengalamatan relatif sama seperti pengalamatan indeks
kecuali register indeks diganti dengan program counter
kecuali register indeks diganti dengan program counter
(PC).
>> Lanjutan3:
Pada mode ini,instruksi menetapkan alamat operand
(lokasi memori) sebagai posisi relatif dari alamat
instruksi sekarang yaitu isi PC. Karena itu operand
instruksi sekarang yaitu isi PC. Karena itu operand
terletakpada ‘jarak pendek’ dari isi PC.
Jumlah mode ini digunakan untuk menetapkan alamat
pencabangan dalam instruksi branch, alamat
pencabangan berada dekat dengan alamat instruksi.
Contoh:
Contoh:
>> Keuntungan Pengalamatan Relatif
Keuntungan:
Keuntungan:
8. Pengalamatan Base Register
Mode ini digunakan untuk relokasi program di dalam memori
(dari satu area ke area lain).
Pada mode pengalamatan
base register,
instruksi tidak berisi
Pada mode pengalamatan
base register,
instruksi tidak berisi
alamat. Dia memberikan perpindahan relatif terhadap area
memori sekarang ke area memori yang lain,
base register
diisi
dengan alamat
base
baru.
Instruksi tidak perlu dimodifikasi/diubah. Dengan cara ini,
keseluruhan program atau suatu segment dri program dapat
dipindahkan dari satu area di memori ke yang lain tanpa
mempengaruhi instruksi, dengan perubahan sederhana ini
base
register.
register.
Hal ini penting untuk sistem multiprogramming karena waktu
yang berbeda (
run)
, area berbeda dari memori tersedia untuk
sebuah program.
>>Format Instruksi & keuntungan Pengalamatan Base Register
Format instruksi pengalamatan
base register
Keuntungan:
medan alamat operand dalam instruksi sangat
medan alamat operand dalam instruksi sangat
pendek
karena
dia
hanya
memberikan
9. Pengalamatan Stack
Pada pengalamatan stack(tumpukan), semua operand
untuk suatu instruksi diambl dari bagian teratas stack.
untuk suatu instruksi diambl dari bagian teratas stack.
Instruksi tidak mempunyai medan operand.
Misalnya, sebuah instruksi ADD hanya memberikan
opcode (ADD). Kedua operand dalam stack, di dalam
lokasi yang berurutan. Bila instruksi ADD dieksekusi,
dua operand di-pop-off dari stack satu persatu.
Setelah penjumlahan, hasilnya di-push ke dalam stack.
Setelah penjumlahan, hasilnya di-push ke dalam stack.
Keuntungan:
Tidak ada menda operand dalam instruksi, karena itu