Arsitektur sistem komputer membahas konsep perencanaan dan struktur dasar sistem komputer serta komponen-komponennya seperti CPU, memori utama, I/O, dan sistem interkoneksi. Dokumen ini juga membedah konsep abstraksi arsitektur komputer dan hubungannya dengan perangkat keras, perangkat lunak, serta membandingkan pendekatan RISC dan CISC dalam implementasi set instruksi komputer.
2. Arsitektur Komputer
• Arsitektur Komputer adalah konsep perencanaan dan
struktur pengoperasian dasar dari suatu sistem
komputer
• Arsitektur komputer juga dapat didefinisikan dan
dikategorikan sebagai ilmu dan sekaligus seni mengenai
cara interkoneksi komponen-komponen perangkat keras
untuk dapat menciptakan sebuah komputer yang
memenuhi kebutuhan fungsional, kinerja, dan target
biayanya.
• Implementasi arsitektur komputer :
Adalah mengenai bagaimana cara kerja CPU, dan
mengenai cara pengaksesan data dan alamat dari dan
ke cache memori, RAM, ROM, Hard disk, dll.
3. Abstraksi Arsitektur Komputer
Abstraksi dari sebuah
arsitektur komputer dan
hubungannya dengan bagian
perangkat keras, firmware,
assembler, kernel, sistem
operasi, dan perangkat lunak
aplikasinya
4. Struktur Utama Arsitektur Komputer
•
•
•
•
Central Processing Unit
Memori Utama / Main Memory
I/O
Computer
System Interconnection
CPU
Main
Memory
Systems
Interconnection
Input
Output
5. Fungsi
• Central Processing Unit (CPU)
Berfungsi sebagai pengontrol operasi komputer
dan pusat pengolahan fungsi – fungsi komputer.
• Memori Utama
Berfungsi sebagai penyimpan data.
• I/O
Berfungsi memindahkan data ke lingkungan luar
atau perangkat lainnya.
• System Interconnection
merupakan sistem yang menghubungkan CPU,
memori utama dan I/O.
6. Set Instruksi
• Set Instruksi/Instruction Set, atau Instruction Set
Architecture (ISA)
Adalah suatu aspek dalam arsitektur komputer dari
sudut pandang seorang programmer.
• Secara umum, ISA ini mencakup jenis data yang
didukung, jenis instruksi yang dipakai, jenis register,
mode pengalamatan, arsitektur memori, penanganan
interupsi, eksepsi, dan operasi I/O eksternalnya (jika
ada).
• ISA merupakan sebuah spesifikasi dari kumpulan semua
kode-kode biner (opcode) yang diimplementasikan
dalam bentuk aslinya (native form) dalam sebuah desain
prosesor tertentu. Kumpulan opcode tersebut, umumnya
disebut sebagai bahasa mesin (machine language)
untuk ISA yang bersangkutan.
7. Implementasi ISA
•
ISA yang diimplementasikan dalam bentuk perangkat keras
–
–
–
–
–
–
–
–
–
–
•
ARM (Acorn RISC Machine) (Advanced RISC Machine now ARM Ltd)
IA-64 (Itanium/Itanium 2)
MIPS
Motorola 68k
PA-RISC (HP Precision Architecture)
IBM POWER & PowerPC
SPARC
SuperH (Hitachi)
System/360
x86 (IA-32, Pentium, Athlon) (AMD64, EM64T)
ISA yang diimplementasikan dalam bentuk perangkat lunak lalu dibuat
perangkat kerasnya
– p-Code (UCSD p-System Version III on Western Digital Pascal Micro-Engine)
– Java virtual machine (ARM Jazelle, PicoJava)
– FORTH
•
ISA yang tidak pernah diimplementasikan dalam bentuk perangkat
keras
– SECD machine
– ALGOL Object Code
8. Konsep Dasar
• 2 KONSEP DESAIN CPU & SET
INSTRUKSI
– Complex Instruction Set Computing (CISC)
– Reduce Instruction Set Computing (RISC)
9. Teknologi CISC
• Set instruksi dibuat lebih efisien dengan
memasukkan sejumlah complex
instruction (instruksi kompleks)
• Sebuah instruksi kompleks ekuivalen
dengan tiga atau empat simple instruction.
• Diperlukan kompiler efisiensi tinggi untuk
menggunakan instruksi kompleks, lebih
sering pada saat translasi program
bahasa tingkat tinggi ke program bahasa
mesin.
10. Skenario CISC
Set instruksi (besar)
referensi
Source
Code
Compiler
Program bahasa
mesin
Object Code
CPU
(complex)
(kecil)
Memori
utama
(lambat)
Instruksi
(powerful)
10
11. Kelemahan CISC
•
Kompleksitas CPU
Desain unit kontrol (pengkodean instruksi) menjadi kompleks karena
mempunyai set instruksi yang besar
•
Ukuran sistem dan biaya
mempunyai banyak sirkuit hardware menyebabkan CPU menjadi kompleks.
Sehingga menyebabkan meningkatnya biaya hardware dan kebutuhan daya
listrik
•
Kecepatan clock
siklus CPU yang besar menyebabkan kecepatan clock menurun
•
Keandalan
hardware yang besar menyebabkan mudah terjadi kegagalan
•
Mantainability
troubleshooting dan pendeteksian suatu kegagalan mengakibatkan
pekerjaan menjadi besar karena besarnya sirkuit yang ada. Namun
penemuan microprogramming membantu menurunkan beban tersebut
13. Teknologi RISC
• Instruksi sederhana
• Set instruksi kecil
• Panjang instruksi sama untuk semua
instruksi
• Eksekusi instruksi yang lebih cepat
14. Skenario RISC
Set instruksi (besar)
referensi
Source
Code
Compiler
Program bahasa
mesin
Object Code
CPU
(complex)
(besar)
Memori
utama
(cepat)
Instruksi
(simple)
14
16. Perbandingan CISC dan RISC
RISC
Penekanan pada perangkat lunak
CISC
Penekanan pada perangkat keras
Single-clock,hanya sejumlah kecil instruksi Termasuk instruksi kompleks multi-clock
Register to Register :”LOAD”&”STORE”
adalah instruksi2 terpisah
Memori ke Memori: ”LOAD”&”STORE”
saling bekerjasama
Ukuran kode besar(kecepatan relatif
tinggi)
Ukurang kode kecil,kecepatan rendah
Transistor banyak dipakai untuk register
memori
Transistor digunakan untuk menyimpan
instruksi2 kompleks
17. Membandingkan RISC dan CISC
•
Perkalian dua bilangan dalam
Memory
– Pada bagian kiri terlihat sebuah
struktur memori (yang
disederhanakan) suatu komputer
secara umum
– Memori tersebut terbagi menjadi
beberapa lokasi yang diberi nomor
1 (baris): 1 (kolom) hingga 6:4.
Unit eksekusi bertanggung-jawab
untuk semua operasi komputasi.
Namun, unit eksekusi hanya
beroperasi untuk data-data yang
sudah disimpan ke dalam salah
satu dari 6 register (A, B, C, D, E
atau F).
– Misalnya, kita akan melakukan
perkalian (product) dua angka,
satu disimpan di lokasi 2:3
sedangkan lainnya di lokasi 5:2,
kemudian hasil perkalian tersebut
dikembalikan lagi ke lokasi 2:3.
18. Menggunakan pendekatan CISC
•
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu
perintah cukup dengan beberapa baris bahasa mesin sedikit
mungkin. Hal ini bisa tercapai dengan cara membuat perangkat
keras prosesor mampu memahami dan menjalankan beberapa
rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah
prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus,
yang kita beri nama MULT. Saat dijalankan, instruksi akan
membaca dua nilai dan menyimpannya ke 2 register yang berbeda,
melakukan perkalian operan di unit eksekusi dan kemudian
mengambalikan lagi hasilnya ke register yang benar. Jadi instruksinya
cukup
satu
saja...
MULT 2:3, 5:2
• MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau
instruksi yang kompleks. Bekerja secara langsung melalui memori
komputer dan tidak memerlukan instruksi lain seperti fungsi baca
maupun menyimpan.
• Satu kelebihan dari sistem ini adalah kompailer hanya
menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam
sebuah bahasa mesin. Karena panjang kode instruksi relatif
pendek, hanya sedikit saja dari RAM yang digunakan untuk
menyimpan instruksi-instruksi tersebut.
19. Menggunakan Pendekatan RISC
•
Prosesor RISC hanya menggunakan instruksi-instruksi sederhana
yang bisa dieksekusi dalam satu siklus.
• Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan
sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu
“LOAD”, yang digunakan untuk memindahkan data dari memori ke
dalam register, “PROD”, yang digunakan untuk melakukan operasi
produk (perkalian) dua operan yang berada di dalam register (bukan
yang ada di memori) dan "STORE", yang digunakan untuk
memindahkan data dari register kembali ke memori.
• Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang
terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4
baris bahasa mesin) :
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
• Awalnya memang terlihat kurang efisien, hal ini dikarenakan
semakin banyak baris instruksi, semakin banyak lokasi RAM yang
dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer
juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk
kode instruksi 4 baris tersebut.
20. Menggunakan Pendekatan RISC
• Bagaimanapun juga, strategi pada RISC memberikan
beberapa kelebihan. Karena masing-masing instruksi
hanya membutuhkan satu siklus detak untuk eksekusi,
maka seluruh program (yang sudah dijelaskan
sebelumnya) dapat dikerjakan setara dengan kecepatan
dari eksekusi instruksi “MULT”.
• Secara perangkat keras, prosesor RISC tidak terlalu
banyak membutuhkan transistor dibandingkan dengan
CISC, sehingga menyisakan ruangan untuk registerregister serbaguna (general purpose registers). Selain
itu, karena semua instruksi dikerjakan dalam waktu yang
sama (yaitu satu detak), maka dimungkinkan untuk
melakukan pipelining.
21. Arsitektur processor 32bit VS 64bit
• Istilah 32-bit dan 64-bit itu sendiri adalah
dimana arsitektur 32-bit memiliki register
prosesor yang berukuran 32-bit dan begitu
pula dengan arsitektur 64-bit memiliki
register prosesor berukuran 64-bit.
• Register prosesor inilah yang digunakan
untuk melakukan macam2 operasi.
Misalnya c = a + b, maka register “eax”
akan me-load nilai dari “a” (di memory),
kemudian pada register “eax”
ditambahkan nilai dari “b”, lalu “eax” ditulis
ke memory pada posisi variabel “c”
22. Arsitektur processor 32bit VS 64bit
•
Register terbagi dalam berbagai kelas:
– Register Data, digunakan untuk menyimpan angka-angka dalam bilangan
bulat (integer)
– Register Alamat, digunakan untuk menyimpan alamat dan mengakses
memori
– Regiser General Purpose, digunakan untuk menyimpan angka dan alamat
sekaligus
– Register Floating-Point, digunakan untuk menyimpan angka bilangan titik
mengambang ( floating-point )
– Register Konstanta, digunakan untuk menyimpan angka-angka tetap yang
hanya dapat dibaca ( bersifat read-only )
– Register Vektor, digunakan untuk menyimpan hasil pemrosesan vektor
yang dilakukan oleh prosesor SIMD ( Single Instruction, Multiple Data )
– Register Special Purpose, digunakan untuk menyimpan data internal
prosesor
– Register Spesifik, digunakan untuk menyimpan data atau pengaturan yang
berkaitan dengan prosesor itu sendiri
23. Arsitektur processor 32bit VS 64bit
• Pengaruh ukuran register terhadap
kecepatan:
– secara teori, pada saat memori melakukan
proses baca-tulis ( load-store ) maka register
64-bit mampu melakukan proses 2x
kecepatan register 32-bit, tetapi ini hanya
teoritis saja, pada kenyataannya prosesor
juga menghabiskan waktu untuk melakukan
hal-hal lain selain baca-tulis, proses
matematis, proses vector, dll.
24. Arsitektur processor 32bit VS 64bit
• Pengaruh ukuran register terhadap
presisi:
– Simple-nya, makin panjang register, maka
makin banyak angka-angka dibelakang koma
yang dapat dihitung secara akurat.
Sebagai gambaran misalkan resolusi bilangan
real pada 32-bit adalah 0.0001, maka resolusi
bilangan real pada 64-bit bisa mencapai
0.0000001 ( jauh lebih presisi ).
25. Arsitektur processor 32bit VS 64bit
• Pengaruh ukuran register terhadap ukuran
memori:
– Pada arsitektur 32-bit, register alamat mampu
menunjukkan posisi memori dari 0 s/d
4’294’967’295 (4 GiB – 1). Maka dari itu pada
arsitektur 32-bit muncul batasan 4 GiB pada
sistem arsitektur.
– Pada arsitektur 64-bit, register alamat mampu
menunjukkan posisi memori dari 0 s/d
18’446’744’073’709’551’615 (16 EiB – 1).
sehingga bisa dikatakan tidak ada lagi
batasan 4 GiB pada sistem berbasis arsitektur
64-bit.
26. Arsitektur processor 32bit VS 64bit
• Pengaruh ukuran register terhadap dataset:
– Dataset adalah istilah ukuran seperangkat data
yang diload ke dalam memory untuk diproses dan
ditulis kembali ke harddisk. System 32-bit terbatas
pada dataset sebesar ( 2^32 ) – 1 , atau ( 4GiB –
1 ) . Mengingat sebagian memory harus digunakan
untuk OS dan program database ybs, maka
biasanya dataset hanya sebesar 1-2 Gib saja.
Artinya, sebuah database yang berukuran 20 Gib
harus diproses 10-20x, sedangkan pada sistem 64bit tidak memiliki batasan di atas dan dapat meload
dataset sebesar ketersediaan memory, maka
database yang berukuran 20 Gib dapat diload
keseluruhnya ( tergantung dari kapasitas memory ).
27. Arsitektur processor 32bit VS 64bit
• Perbedaan 32-bit dan 64-bit pada
dasarnya mengacu pada teknologi
pemrosesan (processor) pada komputer
mengenai bagaimana menangani
informasi. Processor 64-bit akan mampu
mereferensikan pengalamatan data pada
memory dibanding processor 32-bit, dan
secara teori ini akan dapat memproses
data lebih cepat dan performance
komputer menjadi lebih baik.