Organisasi Sistem Komputer Materi III Binary Digit (Number System) Dr. Hary Budiarto Program Pasca Sarjana Universitas Putra Indonesia YPTK Padang
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. 100101 switch bit ini menjadi 0 100001 Test bit ini jika 0, switch bit pertama 0 100001 100000
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 2 N sesuatu
Bit Bilangan Bilangan Basis B B simbol per digit: Basis 10 (Decimal): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Basis 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 = 9x10 1 + 0x10 0 Binary: 0,1 1011010 = 1x2 6 + 0x2 5 + 1x2 4 + 1x2 3 + 0x2 2 + 1x2 + 0x2 0 = 64 + 16 + 8 + 2 = 90
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 Bagaimana instruksi +, diwakili oleh bits? 1 1 1 0 1 0 + 0 1 1 1 ------------------------- 1 0 0 0 1 10 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!
Bit Pengalamatan Memori Alamat 0 1 n bits Byte 0 Byte 1 k menentukan besarnya ruang alamat (address space) memori: k = 16 ruang alamat = 2 16 (64536) lokasi i 2 k -1 Byte i Byte 2 k -1 k = 32 ruang alamat = 2 32 (4 Giga) lokasi n menentukan besarnya suatu word (jumlah bit) n = 8, 16, 32, 64 Umumnya ukuran pengalamatan terkecil adalah dalam orde byte byte addressable
Kumpulan bit disimpan di memori data 101101100110 Alamat 00000 01110 11111 = 2 k -1 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)
Pengalamatan Data: Endianess Pengalamatan data multi-byte adalah: Big Endian: alamat dari most significant byte IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA 0 msb lsb 4 1 5 0 0 Little Endian: alamat dari least significant byte Intel 80x86, DEC Vax, DEC Alpha 0 lsb msb 4 0 0 5 1
Pengalamatan Data: Endianess Big Endian 1500 Little Endian Alamat 0 1 2 3 4 5 6 7 i 1 5 0 0 2 6 0 0 Alamat 0 1 2 3 i 0 0 5 1 2 k -1 2 k -1
Apa saja yang dapat disimpan? 101101100110 00000 01110 11111 = 2 k -1 Apa yang dapat disimpan? Bilangan Karakter Alamat data Representasi sesuatu di dunia luar.. anything Big Idea: Komputer dapat menyimpan apapun.
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 data instruksi 0: 0846 0=add (jenis instruksi), 8=addr. result, 4=addr op1, 6=addr op2 The Stored Program Computer 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
Stored-program Computer operasi yang dilakukan oleh komputer ditentukan oleh instruksi & data yang tersimpan di memori IP IP IP 0 0 8 4 6 2 1 6 8 6 4 0 0 6 1 6 0 0 1 7 8 0 0 0 7 0 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 0846 1686 0061 0017 0078 Processor (active) Control ( brain ) Datapath ( brawn ) 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 = 1x2 6 + 0x2 5 + 1x2 4 + 1x2 3 + 0x2 2 + 1x2 1 + 0x2 0 = 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 = 5x16 1 + 10x16 0 = 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
Tabel Bilangan 0111 0110 0101 0100 0011 0010 0001 0000 Biner 7 6 5 4 3 2 1 0 Heksa F 1111 15 7 E 1110 14 6 D 1101 13 5 C 1100 12 4 B 1011 11 3 A 1010 10 2 9 1001 9 1 8 1000 8 0 Heksa Biner Desimal Desimal 1.048.576 65.536 4.096 2.048 1.024 Nilai 1M 64K 4K 2K 1K Sebutan 2 20 2 16 2 12 2 11 2 10 2 k
Pengelompokkan Bit Bit String: INTEL MIPS 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 = 2 16 ) dinyatakan dengan alamat: 0x005A jika ruang memori sebesar 2 32 (4G) : 0x0000005A
Penyimpanan data multi-byte (Little Endian) int i = 90; 90 = 0x5A = 0000 0000 0000 0000 0000 0000 0101 1010 int j = 987700; i j 00000000 00000001 00000002 00000003 00000004 00000005 00000006 00000007 0101 1010 0000 0000 0000 0000 0000 0000 0011 0100 0001 0010 0000 1111 0000 0000 987700 = 0x000F1234 = 0000 0000 0000 1111 0001 0010 0011 0100 FFFFFFFF Alamat (32 bit)
One-Bit Full Adder Example Binary Addition: a: 0 0 1 1 b: 0 1 0 1 Sum: 1 0 0 0 Carries Thus for any bit of addition: The inputs are a i, b i, CarryIn i The outputs are Sum i, CarryOut i Note: CarryIn i+1 = CarryOut i
One-Bit Full Adder To create one-bit full adder: implement gates for Sum CarryIn implement gates for CarryOut connect all inputs with same name A B + Sum CarryOut
Ripple-Carry Adders: adding n-bits numbers CarryIn0 A0 B0 A1 B1 A2 B2 A3 B3 1-bit FA CarryIn1 CarryOut0 1-bit FA CarryIn2 CarryOut1 1-bit FA CarryIn3 CarryOut2 1-bit FA CarryOut3 Sum0 Sum1 Sum2 Sum3 Kinerja operasi penjumlahan (dan juga operasi-operasi aritmatika lainnya) akan bergantung pada besar unit data dan konfigurasi Adder (Arithmetic & Logical Unit) yang digunakan
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
Another try: complement the bits Example: 7 10 = 00111 2-7 10 = 11000 2 Called one s Complement Note: positive numbers have leading 0s, negative numbers have leadings 1s. 00000 00001... 01111 10000... 11110 11111 What is -00000? How many positive numbers in N bits? How many negative ones?
Two s Complement Number line 11111 11110... -2 10001 00000 00001 0 00010-1 1 2-15 -16 15 10000 01111... 2 N-1 non-negatives 2 N-1 negatives one zero how many positives? comparison? overflow?
Addition & Subtraction Operations Addition: Just add the two numbers Ignore the Carry-out from MSB Result will be correct, provided there s no overflow Subtraction: Form 2 s complement of the subtrahend Add the two numbers as in Addition 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 0 0 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 0 1 0 1 1 (-5) +0 1 0 1 (+5) 10 0 1 1 (+3)
Overflow Decimal Binary 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 Examples: 7 + 3 = 10 but... - 4 5 = - 9 but... 0 1 1 1 Decimal 0-1 -2-3 -4-5 -6-7 -8 1 2 s Complement 0000 1111 1110 1101 1100 1011 1010 1001 1000 + 0 1 1 1 0 0 1 1 7 3 + 1 1 0 0 1 0 1 1 4 5 1 0 1 0 6 0 1 1 1 7