Organisasi Sistem Komputer
Bagian 1 Pengantar Sistem Komputer Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung 2008 1
Pembahasan e ge t a ssistem ste komputer o pute Pengertian Sistem kompilasi Organisasi perangkat keras Bus, Devais I/O, Memori Utama, Prosesor
Memory Sistem operasi Arsitektur dan Organisasi Komputer
2
Definisi Komputer Istilah komputer mempunyai arti yang luas dan berbeda untuk orang yang berbeda. Istilah komputer diambil dari bahasa Latin Computare yang berarti menghitung (to compute). Terdapat beberapa definisi, menurut beberapa b k sebagai buku b i berikut b ik t :
3
Computer Annual Robert H. Blissmer
o pute adalah ada a suatu alat a at elektronik ee t o ya g Komputer yang mampu melakukan tugas-tugas :
menerima input, mengolah input tadi sesuai dengan programnya, menyimpan perintah dan hasil pengolahan, menyediakan output dalam bentuk informasi.
4
Computer Today Donald H. Sanders
o pute adalah ada a sistem s ste e e to u tu : Komputer elektronik untuk memanipulasi data yang cepat dan tepat, dirancang dan diorganisasikan supaya secara otomatis menerima dan menyimpan data input, mengolah data tersebut untuk menghasilkan output, bekerja b k j berdasarkan b d k langkah-langkah l k hl k h instruksi i t k i program yang tersimpan di memori (stored program).
5
Computer Organization
V.C. Hamacher, Z.G. Vranesic, S.G. Zaky
o pute adalah ada a : Komputer mesin penghitung elektronik yang cepat dapat menerima informasi input digital, mengolah sesuai dengan suatu program yang tersimpan di memorinya (stored program), menghasilkan output informasi. informasi
6
Introduction to The Computer William M. Fuori
o pute adalah ada a : Komputer suatu pengolah data (data processor) yang dapat melakukan perhitungan yang besar dan cepat, t termasuk k perhitungan hit aritmatika it tik yang b besar atau t operasi logika, tanpa campur tangan manusia yang melakukan operasi p selama pengolahan. p g
7
Introduction to Computer Gordon B. Davis
o pute adalah ada a : Komputer tipe khusus alat penghitung yang mempunyai sifat tertentu yang pasti.
8
Definisi Komputer Kesimpulan
Komputer o pute ada adalah a : Alat elektronik Dapat menerima input data Dapat memberikan informasi Menggunakan suatu program yang tersimpan di memorii komputer k t (stored ( t d program)) Dapat menyimpan program dan hasil pengolahan. Bekerja secara otomatis
9
Sistem Pengolahan Informasi g g) adalah manipulasi p Pengolahan data (data p processing data menjadi suatu bentuk yang lebih berguna dan berarti, berupa suatu informasi. Informasi (information) adalah hasil dari kegiatan pengolahan data yang memberikan bentuk yang lebih berarti dari suatu kejadian. Sistem pengolahan informasi - SPI (information processing system) adalah manipulasi data menjadi suatu bentuk yang lebih berarti, berarti berupa suatu informasi, informasi dengan menggunakan komputer.
10
Siklus Pengolahan Informasi
Storage Data dan Informasi
Program
Data
Input
Program
Prosesor
Informasi
Output
11
Sistem Komputer g komputer p p digunakan g g Agar dapat untuk mengolah informasi, harus berbentuk sistem komputer (computer system). Sistem komputer adalah kumpulan dari komponenkomponen komponen yang tersusun untuk melaksanakan suatu tujuan tertentu. Komponen tersebut adalah : hardware software f firmware
12
Komponen Sistem Komputer Hardware Software D t Data User Prosedur Komunikasi
13
Pentingnya Memahami Komputer Menjadi pemrogram yang andal, dengan memahami sistem komputer dan pengaruhnya pada program aplikasi Mempelajari keahlian praktis tentang bagaimana menghindari error numerik yang terjadi akibat cara komputer merepresentasikan bilangan Belajar untuk mengoptimalkan kode C menggunakan trik yang cerdas dengan mengeksploitasi prosesor dan system y memori modern Belajar untuk mengerti apa yang terjadi dan mengapa, ketika sistem komputer menjalankan suatu program 14
Program hello Program hello merupakan program klasik yang dibuat ketika pemrogram pertama kali membuat kode Program hello dimulai dari source program yang dibuat menggunakan editor dan disimpan sebagai file teks (umumnya diberi nama hello.c) Source program ini merupakan urutan bit, masing-masing bernilai 0 dan 1, dikelompokkan dalam potongan 8-bit disebut byte Setiap byte merepresentasikan karakter teks program Program hello.c disimpan dalam file sebagai urutan byte.
15
Program hello Program hello dibuat menggunakan program C bahasa tingkat tinggi agar dapat dibaca dan dimengerti oleh manusia Kode program : 1 2 3 4 5 6
#include <stdio.h> int main() { printf(“hello, world\n”); }
16
Program hello Agar kode program hello.c dapat berjalan pada sistem, setiap pernyataan C harus diterjemahkan menjadi urutan instruksi bahasa mesin tingkat rendah Instruksi tersebut kemudian dipaketkan menjadi suatu bentuk disebut executable object program dan disimpan sebagai file biner Penerjemahan ini dilakukan dalam empat tahap secara berurutan, yaitu preprocessor, compiler, assembler, linker disebut sistem kompilasi linker,
17
Sistem Kompilasi
Tahap preprocessing preprocessor (cpp) memodifikasi program C berdasarkan directive yang diawali dengan karakter # mis. i #include #i <stdio.h> i meminta i t preprocessor untuk t k membaca b isi file header stdio.h dan menyelipkannya secara langsung pada teks program
T h Tahap k kompilasi il i compiler (ccl) menerjemahkan file teks hello.i menjadi file teks hello.s yang mengandung bahasa pemrograman assembly. Bahasa assembly merupakan bahasa yang umum digunakan oleh berbagai compiler bahasa tingkat tinggi 18
Sistem Kompilasi
Tahap assembly assembler (as) menerjemahkan hello.s menjadi instruksi bahasa mesin. File hello.o merupakan file biner yang merupakan kode bahasa mesin
Tahap linking linker (ld) menggabungkan program hello.o dengan fungsi f printf yang berada dalam standar C library. Hasilnya berupa file eksekusi yang siap dimuat ke memori dan dieksekusi oleh sistem
19
Manfaat Sistem Kompilasi Sistem kompilasi membantu pemrogram untuk menghasilkan kode mesin i yang baik b ik dan d efisien fi i Mengerti bagaimana sistem kompilasi bekerja dapat lebih mengoptimalkan kinerja program Pemrogram harus h mengerti dasar d bahasa b h assembly bl dan d bagaimana b compiler menerjemahkan kode-kode program bahasa C menjadi bahasa assembly
Contoh : Apakah pernyataan switch selalu lebih efisien dari urutan if-thenelse ? Apakah p loop p while lebih efisien dari loop p do ? Apakah referensi pointer lebih efisien dari array berindeks Mengapa dua loop yang sama fungsinya memiliki waktu eksekusi berbeda ?
20
Organisasi Perangkat Keras Untuk mengerti apa yang terjadi pada program hello ketika dijalankan, kita harus mengerti organisasi perangkat keras sistem yang digunakan Secara umum umum, perangkat keras sistem komputer tersusun dari :
Bus Devais I/O Memory utama Prosesor
21
Organisasi Perangkat Keras Personal Computer
Computer Processor (active) Control (“brain”) Datapath (“brawn”)
Memory (passive) (where programs, d t data live when running)
Devices Input
Output
Keyboard, Mouse Disk (where programs, d t data live when not running)
Display, Printer
Organisasi Perangkat Keras CPU chip
register file ALU
system bus
memory bus
main memory
I/O bridge
bus interface
I/O bus USB controller mouse keyboard
graphics adapter
Hard disk controller
Expansion p slots untuk devais lain seperti LAN, dll
monitor disk
23
Organisasi Perangkat Keras Bus Kumpulan jalur yang membawa byte-byte data dan informasi antar t kkomponen Data dan informasi di-transfer dalam potongan byte berukuran tetap yang disebut word (word size) Sistem Intel Pentium Pentium, word size = 4 byte Sistem server Intel Itanium, word size = 8 byte Sistem embedded, word size = 1 atau 2 byte
Devais I/O Koneksi sistem dengan dunia luar Contoh devais I/O : keyboard dan mouse sebagai user input, display sebagai user output output, disk drive (disk) sebagai penyimpan data dan program jangka panjang.
Setiap devais I/O terhubung dengan bus I/O melalui controller atau adapter Controller : chip set dalam devais tersebut atau pada motherboard Adapter : card yang dipasang pada slot motherboard 24
Organisasi Perangkat Keras Memori utama Tempat penyimpanan sementara program dan data yang sedang digunakan ketika prosesor mengeksekusi program tsb Secara fisik, memori utama terdiri dari kumpulan chip Dynamic Random Access Memory (DRAM) Secara logika, memori disusun sebagai urutan byte, yang masingmasing memiliki alamat unik
Prosesor (Central Processing Unit – CPU) Mesin yang menginterpretasikan (atau mengeksekusi) instruksi yang tersimpan dalam memori Sejak komputer dinyalakan hingga dimatikan kembali, prosesor selalu melakukan hal yang sama : membaca instruksi dari memori, menginterpretasikan bit-bit instruksi, mengeksekusi operasi sederhana yang direpresentasikan oleh instruksi, mengambil instruksi berikutnya dari memori, dan seterusnya 25
Organisasi Perangkat Keras Prosesor Operasi prosesor terjadi di antara memori utama, register dan arithmetic/logic unit (ALU) Register g : devais penyimpan p y p berukuran kecil dalam chip p CPU ALU : menghitung data dan alamat
Operasi CPU sederhana : Load : menyalin byte atau word dari memori utama ke register Store : menyalin byte atau word dari register ke memori utama Update : menyalin word dari dua register ke ALU, menjumlahkan kedua word tersebut dan menyimpan y p hasilnya y ke register g I/O Read : menyalin byte atau word dari devais I/O ke register I/O Write : Menyalin byte atau word dari register ke devais I/O
26
Menjalankan Program hello (1) CPU chip
register file
Membaca perintah y hello dari keyboard
ALU system bus
memory bus main memory
I/O bridge
bus interface
I/O bus USB controller
user mengetik “hello” keyboard mouse
graphics adapter
Hard disk controller
“hello”
Expansion p slots untuk devais lain seperti LAN, dll
monitor disk
27
Menjalankan Program hello (2) CPU chip
register file ALU
system bus
Memindahkan file eksekusi dari disk ke memori utama memory bus main “hello, world\n” memory kode hello
I/O bridge
bus interface
I/O bus USB controller keyboard mouse
graphics adapter monitor
Hard disk controller
Expansion p slots untuk devais lain seperti LAN, dll
File eksekusi hello disk berada dalam disk
28
Menjalankan Program hello (3) CPU chip
register file
Menulis string dari memori ke display
ALU system bus
memory bus main “hello, world\n” memory kode hello
I/O bridge
bus interface
I/O bus USB controller keyboard mouse
graphics adapter monitor
“hello, world”
Hard disk controller
disk
Expansion p slots untuk devais lain seperti LAN, dll
29
Hirarki Memori Ukuran semakin kecil, kecepatan semakin tinggi, harga per bit semakin mahal
L0: register
Register pada CPU menyimpan word data yang diambil dari L1 cache cache.
L1: on-chip L1 cache (SRAM) L2:
L3: Semakin besar, lambat dan murah L4:
L5:
off-chip L2 cache (SRAM)
L1 cache menyimpan baris-baris cache yang diambil dari L2 cache memory. L2 cache menyimpan baris-baris cache yang diambil dari main memory
main memory (DRAM)
Penyimpan cadangan lokal (h d disk) (hard di k)
Main memory menyimpan blok-blok data yang diambil dari hard disk
Hard disk menyimpan file yang diambil dari server jaringan jarak jauh
Penyimpan cadangan jarak jauh (distributed file systems, Web servers) 30
Cache Memory Untuk mengatasi kesenjangan antara prosesor dan memori, pada sistem komputer terdapat penyimpan kecil berkecepatan tinggi disebut cache memory Tempat penyimpanan sementara informasi yang sering diperlukan oleh prosesor L1 cache terdapat dalam chip prosesor, dapat menyimpan puluhan hingga ribuan byte, kecepatan hampir mendekati kecepatan register L2 cache berkapasitas ratusan ribu hingga jutaan byte, terhubung ke prosesor melalui bus khusus CPU
register file L1 cache
cache bus
L2 cache
ALU system bus memory bus
bus interface
I/O bridge
main memory 31
Virtual Memory Cara pandang dimana setiap proses menggunakan memori utama secara eksklusif
k kernel l virtual i t l memory stack
%esp
Setiap proses memiliki cara memandang memori yang sama, disebut ruang alamat virtual
Memory mapped region forshared libraries
Ruang alamat R l virtual i l tersusun dari :
Program dan data Heap Shared library Stack Kernel virtual memo memory
memory y invisible to user code
the “brk” ptr runtime heap (via malloc)
0
uninitialized data (.bss) initialized data (.data) program text (.text) forbidden
Ruang alamat virtual proses Linux
32
Arsitektur dan Organisasi p Komputer
Arsitektur dan Organisasi a a menjelaskan e je as a ssistem ste komputer, o pute , suatu Dalam perbedaan seringkali dibuat antara Arsitektur Komputer dan Organisasi Komputer
Arsitektur Komputer p y g Arsitektur adalah atribut-atribut komputer yang terlihat oleh pemrogram, atau atribut-atribut yang memiliki pengaruh langsung pada d eksekusi k k i logika l ik suatu t program. Contoh atribut arsitektural : instruction set, set jumlah bit yang digunakan untuk merepresentasikan suatu jenis data (mis. bilangan atau karakter), mekanisme I/O, dan teknik pengalamatan memori.
Organisasi Komputer Organisasi O ganisasi komputer komp te adalah unit nit operasional ope asional dan interkoneksinya yang merealisasikan spesifikasi arsitektural atau arsitektural, bagaimana unit arsitektural ini diimplementasikan. Atribut organisasi merupakan detail perangkat keras yang tidak terlihat oleh pemrogram, mis : sinyal kontrol, interface antara komputer dan periferal, teknologi memori yang digunakan.
Arsitektur dan Organisasi Contoh : Sisi arsitektural : apakah p ada instruksi untuk melakukan proses p perkalian p
Sisi organisasi : apakah terdapat perangkat keras khusus untuk melakukan proses perkalian, perkalian atau menggunakan instruksi penjumlahan (add instruction) secara berulang. Perangkat keras khusus perlu dibuat dengan pertimbangan : frekuensi penggunaan instruksi perkalian, perkalian kecepatan masingmasing masing metoda perkalian, biaya dan ukuran fisik unit perkalian.
Arsitektur dan Organisasi y manufaktur komputer p Banyak menawarkan berbagai model komputer, yang semuanya memiliki arsitektur yang sama dengan organisasi yang berbeda Seluruh keluarga Intel x86 memiliki arsitektur dasar yang sama Keluarga IBM System/370 memiliki arsitektur dasar yang sama
Hal ini memberikan adanya kompatibilitas kode pada setiap model.
Abstraksi Komputer Application (Netscape)
Software Hardware
Operating O i System Compiler Assembler (Windows 98) Processor Memory I/O system
II5161 IInstruction t ti Set S t Architecture
Datapath & Control Digital Design Circuit Design transistors
Both Software and Hardware consist of hierarchical layers. Each lower layer hides the complexity from the layer above This abstraction principle is the way to cope with complexity
The Big g Picture Both hardware and software consist of hierarchical layers, with each lower layer hiding details from the level above. This principle of abstraction is the way
both hardware designers and software designers cope with the complexity of computer systems. One
key interface between the levels of abstraction is the instruction set architecture: the interface between the hardware and low-level software. This abstract interface enables many implementations of varying cost and performance to run identical software. software John L. Hennessy David A. A Patterson 40
Materi Perkuliahan 1. 2. 3. 4.
5. 6. 6 7. 8 8. 9. 10.
Repersentai p Data dalam Bit dan Byte y Representasi dan Operasi Integer Representasi dan Operasi Floating Point Pemrograman Bahasa Mesin, Kode Level Mesin Condition Code, Aliran kontrol dan percabangan P Prosedur, d St Struktur kt Stack St k FFrame Struktur Data, Alokasi dan Pengaksesan Array Teknologi Penyimpanan, Penyimpanan Locality, Hirarki Memori Memori Cache Memori Virtual
Referensi a da E. Bryant ya t and a d David a d O’Hallaron, O a ao , Randal Computer Systems; A Programmers Perspective, Prentice Hall, 2003 John L. Hennessy and David A. Patterson, Computer Organization and Design, Morgan Kaufman f William Stalling, Computer Organization and A hit t Architecture, Prentice P ti Hall H ll