ARSITEKTUR DAN ORGANISASI KOMPUTER TEKNIK INFORMATIKA UNISBANK SEMARANG
Edy Winarno
1
Buku Pegangan 1. Computer Architecture, a Quantitative Approach, 2nd Edition, John L. Hennessy, David A Patterson, Morgan Kaufmann Publisher Inc., 1996 2. Computer Organization, fourth edition,V. Carl Hamacher-Zvonko G. Vranesic-Safwat G. Zaky, Mc Graw Hill International Edition, 1996
Edy Winarno
2
Bagaimana cara kerja sebuah sistem komputer Bagaimana analisis kinerja sebuah sistem komputer Aspek arsitektural yang berpengaruh pada kinerja komputer Interaksi antara hardware dan software
Edy Winarno
3
Minggu ke
Topik
(1) I.1-5 (2) I.1-3
II CPU
- Struktur CPU - Eksekusi Instruksi
(1) (2) 3.1 -2
III Instruction Set
- Klasifikasi Arsitektur - Pengalamatan - Tipe Operasi - Tipe Operand
(1) 2.1-5 (2) 2.1-4
IV Pipelining
- Konsep Dasar - Pipeline Hazard - Keparalelan Level Instruksi
(1) 3 ; 4.1 (2) 7.1 - 7
I
2
5&6
Edy Winarno
Bacaan
- Definisi Arsitektur dan Organisasi Komputer - Perkembangan Sistem Arsitektur Komputer - Struktur Dasar - Pengukuran Kinerja
1
3&4
Materi
Pendahuluan
4
7
Ujian Tengah Semester
8
V Sistem Pengingat V.1 Pengingat Hierarkis
9
V Sistem Pengingat V.2 Pengingat Cache
Materi Minggu 1 s/d 7
(lanjutan)
10
(1) 5 (2) 5
V Sistem Pengingat V.3 Pengingat Virtual (lanjutan)
11 & 12 VI Sistem I/O 13
VII Sistem Komputer Paralel
14 & 15 VII Sistem Komputer Paralel Edy Winarno
-Teknik teknik I/O - Bus
(1) 6 (2) 4.1 – 4 ; 9
- Struktur Paralel - Jaringan Interkoneksi
(1) 8 (2) 10.1 - 6
- Shared Memory Multiprosesor - Message Passing Multiprocessor
(1) 8 (2) 10.1 - 6 5
I PENDAHULUAN Apakah Arsitektur Komputer itu ? Arsitektur komputer adalah atribut atribut sebuah sistem komputer, dilihat dari sudut pandang seorang programmer. struktur konseptual dan perilaku fungsional sistem komputer. Struktur konseptual menyangkut bagaimana komponen komponen tersebut disalinghubungkan (diinterkoneksikan). Perilaku fungsional (fungsional behaviour ) menyangkut fungsi komponen2 secara individual, dan sebagai bagian dari struktur (aliran informasi dan kendali antar komponen2 dalam struktur).
Edy Winarno
6
ORGANISASI KOMPUTER adalah implementasi arsitektur komputer secara fisik, bagaimana mewujudkan arsitektur komputer secara perangkat keras cadd
contoh 1: Adder
A
B
4bit
4bit
4bit
4bit ADDER
S
cout
arsitektur organisasi
Edy Winarno
7
contoh 2 : pipeline instruksi arsitektur IF
ID
EX
Mem
WB
organisasi Edy Winarno
8
Edy Winarno
9
Tantangan : Adanya berbagai variasi produk (teknologi, harga, unjuk kerja, ukuran, aplikasi)
Fakta : konsep-konsep dasar arsitektur komputer tidak banyak berubah !
Konsep Dasar : Konsep Von Neumann (1943) Konsep ”Stored Program Computer” = Mesin yang melakukan komputasi berdasarkan pada program yang tersimpan didalamnya. Memory (2)
CPU
Program + data Memory
Program + data Edy Winarno
I/O (1)
Arsitektur von Neumann
10
Komponen Dasar Sistem Komputer
I/O Program
ALU
Data
Memory : Menyimpan program dan data ALU
: Mengerjakan operasi operasi Aritmatik (Add, subtract, …) dan Logika
Control : Mengkoordinasikan operasi operasi ALU, Memory dan I/O, sesuai dengan yang diinginkan oleh program. Input
: Memasukkan program dan data dari luar komputer
Edy Winarno Output : Mengeluarkan hasil komputasi komputer
11
• level-level diskripsi sistem komputer
Applications
Operating System
Compilers
Software Instruction set Hardware
begin read(a) a := a+1; writeln(a); end; Lw r1,32(r0) Add r2,r1,#10 Sw 32(r0),r2
Computer organization
Arsitektur & Organisasi Komputer
Digital circuits Physical level
Sebagai Edy Winarno interface antara software dan hardware
12
Perkembangan Sistem Komputer 1946: ENIAC Stored Program Computer pertama 50 x 30 feet, 30 Ton, 25 kWatt, 100 k Kalkulasi/detik
1960: Main frame Computer
1970: Mini Computer
- Penurunan : (1) Ukuran fisik (tabung transistor IC (2) Biaya - Peningkatan (1) Kapasitas memory (2) Kinerja (kecepatan)
1980: Mikrokomputer optimalisasi kinerja - biaya
200_ : Komputer meja (PC), Edy Winarno PDA, Bionic, …
Produk utama: PC, workstation. Mainframe digantikan multiprosesor. Minicomputer digantikan server.
13
Generasi Komputer berdasarkan teknologinya • Vacuum tube - 1946-1957 • Transistor - 1958-1964 • Small Scale Integration, 1965 (100 transistor/chip) • Medium Scale Integration, s/d 1971 (100-3000 transistor/chip) • Large Scale Integration, 1971-1977 (3000-100 000 transistor/chip) • Very Large Scale Integration, 1978 – sekarang (100 000 – 100 000 000 transistor/chip) • Edy Ultra Large Scale Integration > 100 000 000 transistor/chip 14 Winarno
IC
Multicore
Edy Winarno
15
10G
4 Gb 1 Gb
1G
256 Mb
Memory (DRAM)
100M
16 Mb 10M
Transistors / chip
Pentium IV
64 Mb
PIII®
4 Mb
PII® Pentium®
1 Mb 1M
256 Kb
80386
80486,680 64 Kb
100K 16 Kb 4 Kb 8086 8085
10K 4004
1K 1970
Edy Winarno
68020 80286 68000 Microprocessor
8080 1975
1980
1985
1990
1995
2000
2005 16
Peningkatan Kinerja Komputer Pendekatan Teknologis/hardware
Pendekatan Software Efisiensi program
Penggunaan komponen2 IC kecepatan tinggi,
(algoritma), struktur
Peningkatan kinerja
data
Pendekatan Arsitektural software
Arsitektur teknologi/ hardware Edy Winarno
Peningkatan aspek fungsional dan struktural
Contoh : - Arsitektur Instruction set - Struktur pipeline dalam CPU - Pengingat cache - Memory interleaving - Struktur Bus 17 - Prosesor paralel
Komponen komponen Dasar Sistem Komputer Computer Pengembangan Arsitektural pada : Central Processing Unit
Main Memory
Interconnection
Input Output
CPU pipeline, co-procesor, vectorprocessor, . . . Memory cache, pengingat interleave, . . . I/O I/O controller, I/O processor, . . . Interkoneksi Bus, multi-bus, multi-level bus,
Edy Winarno
18
Evolusi Pentium (1) •
8080 – first general purpose microprocessor – 8 bit data path – Used in first personal computer – Altair
•
8086 – much more powerful – 16 bit – instruction cache, prefetch few instructions – 8088 (8 bit external bus) used in first IBM PC
•
80286 – 16 Mbyte memory addressable – up from 1Mb
•
80386 – 32 bit
Edy Winarno
– Support for multitasking
19
Evolusi Pentium (2) •
80486 – sophisticated powerful cache and instruction pipelining – built in maths co-processor
•
Pentium – Superscalar – Multiple instructions executed in parallel
•
Pentium Pro – Increased superscalar organization – Aggressive register renaming – branch prediction – data flow analysis – speculative execution
Edy Winarno
20
Evolusi Pentium (3) •
Pentium II – MMX technology – graphics, video & audio processing
•
Pentium III – Additional floating point instructions for 3D graphics
•
Pentium 4 – Further floating point and multimedia enhancements
•
Itanium – 64 bit
•
Multicore – Multiprocessor
Edy Winarno
21
STRUKTUR DASAR Arsitektur berbasiskan Bus Lima komponen utama : ALU CPU
Control Unit
Main Memory
1. 2. 3. 4. 5.
ALU Control unit Memory Input Output
CPU
Sistem Bus I/O Unit
I/O device Edy Winarno
I/O device
I/O device Peripheral
22
CPU (Central Processing Unit) Bagian sistem komputer yang bertugas mengeksekusi program. Komponen utama CPU : (1) ALU (Arithmetic and Logic Unit) Mengerjakan operasi operasi aritmatik dan operasi operasi logika terhadap data. Operasi aritmatik : add, subtract, multiply, divide,... Operasi Logika
: AND, OR, NOT, Shift, ...
(2) Control unit Mengendalikan seluruh operasi didalam komputer, dengan - Menginterpretasikan instruksi instruksi yang terdapat didalam program,
eksekusi instruksi
- Membangkitkan sinyal sinyal kendali untuk mengendalikan aktifitas komponen komponen sistem komputer Edy Winarno
23
(Main) Memory Unit Bagian komputer yang menyimpan program dan data yang sedang atau siap dieksekusi oleh CPU. Jenis Main Memory : 1. Random Access Memory (RAM) atau Read Write Memory (RWM) Isi memory dapat dibaca (read) dan diubah (write) secara online.
n bit Address Decoder address
0 1 2 3 4 5 6
2. Read Only Memory (ROM) Isi memory hanya dapat dibaca pada saat online. Penulisan dilakukan pada saat off-line (diluar operasi komputer)
2n Edy Winarno
data
24
Input/Output Unit Bagian komputer yang bertugas menangani komunikasi dengan piranti piranti diluar sistem komputer (periferal) Format data masuk/keluar : - Bit Serial - Bit Paralel
Peripheral Devices
bit paralel
CPU
Modul I/O Paralel
MU
Modul I/O Serial
Edy Winarno
bit paralel
0 1
1 ... 0 ... 0 ... 1 ... :
1
Bus Sistem
1 0 1
0 ... 0 ...
bits serial 0
1
1 ... 0 ...
25
Disk controller
Sistem Komputer CPU
Graphics card
Monitor
Sound card
Speakers I/O Unit
MU Network card
Computer Printer Mouse Ports
Edy Winarno
bus sistem
Keyboard Modem peripheral
26
Kinerja (Performance) Perspektif pemakai : Dihadapkan pada berbagai produk, pertanyaannya “produk mana yang memiliki kinerja terbaik? Rasio kinerja/harga ?” Perspektif perancang : Dihadapkan pada berbagai alternatif rancangan, pertanyaannya “rancangan mana yang akan memberikan peningkatan kinerja terbaik? kinerja/harga terbaik ?” Untuk menjawab pertanyaan tersebut dibutuhkan dasar untuk pembandingan ukuran untuk evaluasi (metriks) Edy Winarno
27
Kinerja sebuah sistem komputer dapat diukur berdasarkan : Latency-nya (disebut juga response-time atau execution-time) Latency adalah waktu yang dibutuhkan oleh komputer tersebut untuk mengeksekusi sebuah program, misalkan program x. Throughput-nya Banyaknya program x yang dapat dieksekusi oleh komputer tersebut (dalam satu satuan waktu). komputer A
komputer B data x1
program x prosesor
prosesor 1 data x
program x
Bila latency program x = , maka throughput komputer A = 1/, Edy Winarno throughput
komputer B = 2/
prosesor 2 data x2 28
Definisi “waktu-eksekusi” (atau latency) Definisi 1 : Waktu-eksekusi adalah waktu total yang dibutuhkan oleh komputer untuk mengeksekusi sebuah program , dari start sampai selesai, (termasuk akses ke disk, memory, operasi operasi I/O, waktu yang digunakan oleh OS, . . . .) dalam lingkungan multiprogramming, termasuk juga waktu yang digunakan untuk mengeksekusi program lain Bag Progr1
Bag Progr1
Bag Progr1
t mulai Progr 1
selesai Progr 1
I/O routine Bag Progr1 Edy Winarno
I/O routine
I/O routine Bag Progr1
Bag Prog1
t 29
Definisi CPU time : CPU time adalah waktu yang dibutuhkan oleh CPU untuk mengeksekusi sebuah program, dengan asumsi CPU hanya mengeksekusi program terebut. Waktu ini disebut “CPU execution time” atau “CPU time ” I/O routine
I/O routine
I/O routine
Bag Progr1
Bag Progr1
a
b
Bag Progr1
t
c
CPU-time = a + b + c Sering dibagi menjadi “system CPU time” (waktu yang digunakan untuk eksekusi program program OS) dan “user CPU time” (waktu yang digunakan untuk eksekusi program program user) “CPU time” Edy Winarno
digunakan untuk mengukur kinerja CPU (prosesor)
30
Waktu-eksekusi CPU-time :
System-time
waktu yang dibutuhkan oleh cpu untuk eksekusi program sistem
+
User-time waktu yang dibutuhkan oleh cpu untuk eksekusi program user
CPU-time = jumlah CPU clock-cycle x periode clock
Edy Winarno
31
CPU-time = CPU Clock Cycles x Clock Cycle Time
Jumlah clock cycle yang dibutuhkan CPU untuk mengeksekusi program Periode clock Tclock CPU Clock Cycles = ----------------Clock Rate
fclock = 1/Tclock
Sinyal clock
t
Start Progr Edy Winarno
Periode Tclock
selesai Progr 32
– 500MHz P-III : clock rate = 500M cycles/sec, 1 clock cycle time = 2ns – 2GHz P-IV
: clock rate = 2G cycles/sec, 1 clock cycle time = 0.5ns
CPU Clock Cycles = Jumlah instruksi didalam program x clock cycles rata-rata per instruksi CPI CPU time = Jumlah instruksi dalam program x CPI x Clock Cycle Time
CPU time = Edy Winarno
jumlah instruksi program
X
jumlah cycles instruksi
X
detik cycle
33
Clock-cycles per Instruction (CPI) Untuk eksekusi sebuah program, jumlah clock-cycle CPU = Jumlah instruksi dalam program x clockcycles rata rata sebuah instruksi = Jumlah instruksi dalam program x CPI
Edy Winarno
34
Perhitungan CPI : CPI = (cycles per tipe instruksi x frekuensi kemunculan tipe tersebut dalam program)
tipe instruksi
cycles per tipe
frekuensi kemunculan per tipe
cycles x frekuensi kemunculan
ALU
1
50%
0,50
Load
5
20%
1,00
Store
3
10%
0,30
Branch
2
20%
0,40 CPI :
Edy Winarno
2,2
35
Ukuran lain MIPS (Millions of Instruction Per Second) Jumlah instruksi dalam program x 10 MIPS =
-6
waktu eksekusi jumlah instruksi dalam program x clock rate x 106
= jumlah instruksi dalam program x CPI
MFLOPS Jumlah instruksi floating-pointdalam program x 10-6 MFLOPS = Edy Winarno
waktu eksekusi 36
Pengujian : Dengan mengeksekusi Program tertentu, misal program perkalian matriks, program persamaan linear, ... Program standard (benchmark), misal program program SPEC (System Performance and Evaluation Cooperative), SPECINT, SPECFP, SPEC92, SPEC95int, SPEC95fp, ...
Edy Winarno
37
Pembandingan Kinerja Kinerja CPU = 1 / CPU time Perbandingan kinerja komputer x dengan komputer y n = kinerja x / kinerja y = CPU timex / CPU timey
Edy Winarno
38
Hukum Amdahl Dampak peningkatan kinerja sebuah sistem dibatasi oleh seberapa bagian dari komponen komponen sistem yang tidak ditingkatkan Peningkatan kinerja satu bagian dari sistem sebesar n kali tidak otomatis akan meningkatkan kinerja sistem (secara keseluruhan) sebesar n kali. Contoh : Sebuah program menghabiskan 40% waktu untuk kegiatan CPU, 60% waktu untuk kegiatan I/O. Bila program yang sama dieksekusi menggunakan prosesor yang kecepatannya 10x kecepatan prosesor lama, maka waktu eksekusinya tidak akan berkurang menjadi 1/10 kalinya.
Edy Winarno
39
Amdahl’s Law Equations
Wkt-eksekusinew = Wkt-eksekusiold x (1 – Fraksienhanced) +
Speedupoverall =
Wkt-eksekusiold Wkt-eksekusinew
=
Fraksienhanced Speedupenhanced
1 (1 – Fraksienhanced) +
Fraksienhanced Speedupenhanced
Edy Winarno
40