320 likes | 607 Views
Organisasi Sistem Komputer. Materi III Binary Digit (Number System). switch bit ini menjadi 0. Test bit ini jika 0, switch bit pertama 0. 100 1 01. 100 0 01. 100 0 01. 10000 0. Komputer Digital. Hanya mengenal dua status (mis. ada / tidak ada tegangan)
E N D
Organisasi Sistem Komputer Materi III Binary Digit (Number System)
switch bit inimenjadi 0 Test bit ini jika 0, switch bit pertama 0 100101 100001 100001 100000 Komputer Digital • Hanya mengenal dua status (mis. ada / tidak ada tegangan) • Sangat sederhana hanya dapat bernilai: 1 atau 0 biner • Operasi hanya dapat dilakukan pada bit; yang dapat bernilai 1 atau 0. • Contoh operasi mengubah (flip, switch) nilai bit, menjadikan bit tertentu 0; test bit jika 0 atau bukan.
Binary Digit (Bit) • Dengan bit, bagaimana komputer dapat merepresentasikan: • Bilangan (numerik)? Alfabet ? Kata? Alamat? Gambar? • Contoh: Bilangan • Manusia lebih mudah menggunakan representasi/ notasi desimal. • Misalkan: 1, 25, 125, 3896754321 • Disebut basis 10, dengan simbol:Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 • Komputer hanya mengenal 2 simbol (0 dan 1)Bagaimana komputer merepresentasikan bilangan yang dikenal manusia?
Representasi Bit • Bits dapat merepresentasikan apapun! • Karakter Latin: • 26 huruf => 5 bits • Huruf besar/kecil + tanda lain => 7 bits, • Logical values : • 0 -> False, 1 => True • Warna ? Berapa banyak warna => berapa bits? • Alamat? (berapa karakter alfabet ..) • Maka N bits hanya dapat merepresentasikan 2N sesuatu
Bit Bilangan • Bilangan Basis B B simbol per digit: • Basis 10 (Decimal): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9Basis 2 (Binary): 0, 1 • Komputer menyimpan dan beroperasi dalam “binary” Basis 2 • Dapat melakukan konversi (representasi) bilangan dari basis 10 ke basis 2 (dan sebaliknya). • Decimal: 0,1,2,3,4,5,6,7,8,9 90 = 9x101 + 0x100 • Binary: 0,1 1011010 = 1x26 + 0x25 + 1x24 + 1x23 + 0x22 + 1x2 + 0x20 = 64 + 16 + 8 + 2 = 90
1 1 1 0 1 0 + 0 1 1 1 ------------------------- 1 0 0 0 1 Bit Bilangan • Apa yang dapat dilakukan dengan “bilangan”? • semua operasi (instruksi) yang biasa dilakukan pada bilangan! • Tambahkan, Kurangkan, Kalikan, Bagikan, Bandingkan! • Contoh: 10 + 7 = 17 10 Bagaimana instruksi +, diwakili oleh bits? 7 17
Bit Instruksi • Instruksi (Operasi). Apakah dapat diwakili oleh bit? • Contoh: • 0 => tepuk tangan • 1 => snap jari jempol dan telunjuk • Eksekusi Instruksi: 1 0 1 1 0 0 • Contoh instruksi operasi bilangan: • Misalkan 3 bit (berapa banyak instruksi?): • 000 => tambahkan 001 => kurangkan • 010 => kalikan 011 => bagikan • 100 => bandingkan dst. • Jadi bit (data) dapat diartikan sebagai instruksi!
n bits Alamat 0 1 i 2k-1 Byte 0 Byte 1 Byte i Byte 2k-1 Bit Pengalamatan Memori • k menentukan besarnya ruang alamat (address space) memori: • k = 16 ruang alamat = 216 (64536) lokasi • k = 32 ruang alamat = 232 (4 Giga) lokasi • n menentukan besarnya suatu word (jumlah bit) • n = 8, 16, 32, 64 • Umumnya ukuran peng-alamatan terkecil adalah dalam orde byte byte addressable
Kumpulan bit disimpan di memori Alamat • Memori adalah tempat menyimpan kumpulan bit (instruksi/data) • Suatu “word” adalah sejumlah bit data tetap, (mis. 16, atau 32 bit) pada satu lokasi di memori • Byte-addressable memory menyimpan data multi-byte pada lokasi memori yang berurutan • Alamat menunjuk ke lokasi “word” (byte-1) disimpan. • Alamat dapat direpresen-tasikan oleh bit • Alamat juga sebagai “bilangan” (yang dapat dimanipulasikan) 00000 data 01110 101101100110 11111 = 2k - 1
0 4 0 5 0 1 lsb msb msb 0 lsb 0 5 1 0 4 Pengalamatan Data: Endianess Pengalamatan data multi-byte adalah: • Big Endian: alamat dari most significant byte • IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA • Little Endian: alamat dari least significant byte • Intel 80x86, DEC Vax, DEC Alpha
Alamat 0 1 2 3 i 2k-1 0 0 5 1 Pengalamatan Data: Endianess 1500 Big Endian Little Endian Alamat 0 1 2 3 4 5 6 7 i 2k-1 1 5 0 0 2 6 0 0
Apa saja yang dapat disimpan? 00000 • Apa yang dapat disimpan? • Bilangan • Karakter • Alamat data • Representasi “sesuatu” di dunia luar • .. 01110 101101100110 11111 = 2k - 1 anything Big Idea: Komputer dapat menyimpan apapun.
The Stored Program Computer 0 0 8 4 6 2 1 6 8 6 40 0 6 1 6 0 0 1 7 8 0 0 0 0 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 • Memori menyimpan instruksi dan data sebagai bit. • Instruksi diambil oleh prosesor dari memori, diartikan, dan, dieksekusi (operands/data diambil, diolah, dan disimpan ke memori). • Contoh Instruksi 4-digit (á 4 bit) 16 bit (2 byte) ≈ 2 lokasi memori digit-1: Operasi: 0 => add, 1 => sub, ... digit-2: Alamat hasil digit-3: Alamat op1 digit-4: Alamat op2 data instruksi 0: 0846 0=add (jenis instruksi), 8=addr. result, 4=addr op1, 6=addr op2
0 0 8 4 6 2 1 6 8 6 4 0 0 6 1 6 0 0 1 7 8 0 0 0 0 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 0 0 8 4 6 2 1 6 8 6 4 0 0 6 1 6 0 0 1 7 8 0 0 7 8 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 0 0 8 4 6 2 1 6 8 6 4 0 0 6 1 6 0 0 1 7 8 0 0 7 8 10 0 0 0 0 12 0 0 0 0 14 0 0 0 0 16 0 0 0 0 18 0 0 0 0 Processor (active) Control (“brain”) Datapath (“brawn”) Stored-program Computer • operasi yang dilakukan oleh komputer ditentukan oleh instruksi & data yang tersimpan di memori 0846 IP 1686 IP 0061 IP 0017 0078 • komputer dapat diprogram untuk memenuhi kebutuhan pengguna dengan jalan mengisi memori dengan instruksi & data yang sesuai
Representasi Data : Bilangan Biner • Harga/Nilai suatu bilangan biner: 1011010 = 1x26 + 0x25 + 1x24 + 1x23 + 0x22 + 1x21 + 0x20 = 64 + 16 + 8 + 2 = 90 Penulisan: 1011010b • Konversi: Desimal Biner 90 / 2 = 45 sisa 0 45 / 2 = 22 sisa 1 22 / 2 = 11 sisa 0 11 / 2 = 5 sisa 1 5 / 2 = 2 sisa 1 2 / 2 = 1 sisa 0 1 / 2 = 0 sisa 1
Bilangan Heksa-Desimal • Simbol: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F • Harga/Nilai suatu bilangan heksa-desimal: 5A = 5x161 + 10x160 = 80 + 10 = 90 Penulisan: 5Ah atau 0x5A • Konversi: Desimal Heksa-desimal 90 / 16 = 5 sisa 10 (A) 5 / 16 = 0 sisa 5 • Konversi: Heksa-desimal Biner 5A = 101 1010 • Konversi: Biner Heksa-desimal 1011010 = 101 1010 = 5 A = 5A
Pengelompokkan Bit • Bit String: INTELMIPS • 4 bit nibble nibble • 8 bit byte byte • 16 bit word half-word • 32 bit double-word word • 64 bit quad-word double-word • Alamat lokasi memori • umumnya dinyatakan dengan bilangan heksa desimal • contoh: • lokasi memori 90 pada memori dengan ruang memori sebesar 64K (65536 = 216) dinyatakan dengan alamat: 0x005A • jika ruang memori sebesar 232 (4G) : 0x0000005A
Penyimpanan data multi-byte (Little Endian) i 00000000 00000001 00000002 00000003 00000004 00000005 00000006 00000007 FFFFFFFF int i = 90; 90 = 0x5A = 0000 00000000 00000000 00000101 1010 0101 1010 0000 0000 0000 0000 0000 0000 j 0011 0100 0001 0010 0000 1111 int j = 987700; 987700 = 0x000F1234 = 0000 00000000 11110001 00100011 0100 0000 0000 Kapasitas Memori (8 bit) Alamat Memori (32 bit)
a: 0 0 1 1 b: 0 1 0 1 Sum: 1 0 0 0 One-Bit Full Adder • Example Binary Addition: Carries • Thus for any bit of addition: • The inputs are ai, bi, CarryIni • The outputs are Sumi, CarryOuti • Note: CarryIni+1 = CarryOuti
CarryIn A + Sum B CarryOut One-Bit Full Adder • To create one-bit full adder: • implement gates for Sum • implement gates for CarryOut • connect all inputs with same name
Ripple-Carry Adders: adding n-bits numbers CarryIn0 • Kinerja operasi penjumlahan (dan juga operasi-operasi aritmatika lainnya) akan bergantung pada “besar” unit data dan konfigurasi Adder (Arithmetic & Logical Unit) yang digunakan A0 1-bit FA Sum0 B0 CarryOut0 CarryIn1 A1 1-bit FA Sum1 B1 CarryOut1 CarryIn2 A2 1-bit FA Sum2 B2 CarryOut2 CarryIn3 A3 1-bit FA Sum3 B3 CarryOut3
How to Represent Negative Numbers? • So far, unsigned numbers • Obvious solution: define leftmost bit to be sign! • 0 => +, 1 => - • Rest of bits can be numerical value of number • Representation called sign and magnitude 0000 0011 = + 3 1000 0011 = - 3
00000 00001 ... 01111 11111 10000 ... 11110 Another try: complement the bits • Example: 710 = 001112 -710 = 110002 • Called one’s Complement • Note: positive numbers have leading 0s, negative numbers have leadings 1s. • What is -00000 ? • How many positive numbers in N bits? • How many negative ones?
Two’s Complement Number line 00000 11111 • 2N-1 non-negatives • 2N-1 negatives • one zero • how many positives? • comparison? • overflow? 00001 11110 00010 0 -1 1 2 -2 . . . . . . 15 -15 -16 01111 10001 10000
Addition & Subtraction Operations • Subtraction: • Form 2’s complement of the subtrahend • Add the two numbers as in Addition • Addition: • Just add the two numbers • Ignore the Carry-out from MSB • Result will be correct, provided there’s no overflow 0 1 0 1 (+5)+0 0 1 0 (+2) 0 1 1 1 (+7) 0 1 0 1 (+5)+1 0 1 0 (-6) 1 1 1 1 (-1) 0 0 1 0 (+2) 0 0 1 00 1 0 0 (+4) +1 1 0 0 (-4) 1 1 1 0 (-2) 1 0 1 1 (-5)+1 1 1 0 (-2)11 0 0 1 (-7) 0 1 1 1 (+7)+1 1 0 1 (-3)10 1 0 0 (+4) 1 1 1 0 (-2) 1 1 1 01 0 1 1 (-5) +0 1 0 1 (+5)10 0 1 1 (+3)
Decimal Binary Decimal 2’s Complement 0 0000 0 0000 1 0001 -1 1111 2 0010 -2 1110 3 0011 -3 1101 4 0100 -4 1100 5 0101 -5 1011 6 0110 -6 1010 7 0111 -7 1001 -8 1000 Overflow • Examples: 7 + 3 = 10 but ... • - 4 – 5 = - 9 but ... 0 1 1 1 1 0 1 1 1 7 1 1 0 0 – 4 3 – 5 + 0 0 1 1 + 1 0 1 1 1 0 1 0 – 6 0 1 1 1 7