Chapter 1
INTRODUCTION TO THE MICROPROCESSOR AND COMPUTER
1. A Historical Background [kembali]
Perkembangan komputer dimulai dari alat hitung sederhana seperti abacus hingga mesin mekanik yang dirancang oleh tokoh-tokoh seperti Blaise Pascal dan Charles Babbage. Babbage memperkenalkan konsep Analytical Engine, yang menjadi dasar komputer modern karena menggunakan prinsip pemrograman. Perjalanan ini berlanjut ke era komputer elektronik pertama seperti ENIAC, yang menggunakan ribuan tabung vakum dan membutuhkan ruang sangat besar. Selanjutnya, transistor menggantikan tabung vakum, dan integrated circuit (IC) membawa kemajuan signifikan menuju mikroprosesor. Mikroprosesor pertama Intel, 4004 (1971), menandai era komputer kecil, murah, dan serbaguna. Kemudian muncul keluarga Intel 8086/8088 yang digunakan dalam IBM PC (1981) dan menjadi dasar arsitektur x86 yang masih digunakan hingga saat ini. Perkembangan mikroprosesor terus berlanjut dengan peningkatan kecepatan, efisiensi, dan kemampuan pengolahan data, dari generasi awal hingga prosesor modern seperti Pentium dan Core.
1. Awal Perhitungan dan Mesin Mekanik
-
Abacus (Sempoa): Alat hitung paling awal digunakan oleh manusia, berbentuk batang dengan manik-manik yang dapat digeser untuk membantu operasi matematika sederhana.
-
Kalkulator Mekanik:
-
Blaise Pascal (1642) menciptakan kalkulator mekanik yang mampu melakukan penjumlahan dan pengurangan secara otomatis.
-
Gottfried Wilhelm Leibniz mengembangkan mesin yang mampu mengalikan dan membagi, memperluas konsep kalkulasi otomatis.
Abacus (Sempoa): Alat hitung paling awal digunakan oleh manusia, berbentuk batang dengan manik-manik yang dapat digeser untuk membantu operasi matematika sederhana.
Kalkulator Mekanik:
-
Blaise Pascal (1642) menciptakan kalkulator mekanik yang mampu melakukan penjumlahan dan pengurangan secara otomatis.
-
Gottfried Wilhelm Leibniz mengembangkan mesin yang mampu mengalikan dan membagi, memperluas konsep kalkulasi otomatis.
2. Konsep Komputer yang Dapat Diprogram
-
Charles Babbage (abad ke-19):
-
Memperkenalkan Difference Engine dan Analytical Engine yang menggunakan kartu berlubang (punch card) untuk memasukkan instruksi dan data.
-
Konsep ini menjadi cikal bakal arsitektur komputer modern (disebut juga stored-program concept oleh John von Neumann).
-
Ada Lovelace menulis algoritma pertama untuk mesin Babbage, sehingga dianggap sebagai programmer pertama.
Charles Babbage (abad ke-19):
-
Memperkenalkan Difference Engine dan Analytical Engine yang menggunakan kartu berlubang (punch card) untuk memasukkan instruksi dan data.
-
Konsep ini menjadi cikal bakal arsitektur komputer modern (disebut juga stored-program concept oleh John von Neumann).
Ada Lovelace menulis algoritma pertama untuk mesin Babbage, sehingga dianggap sebagai programmer pertama.
3. Era Komputer Elektronik Awal
-
ENIAC (1946): Komputer elektronik pertama berskala besar.
-
Menggunakan tabung vakum (18.000 buah) untuk proses logika.
-
Memiliki ukuran ruangan yang besar, boros daya, dan sulit diprogram karena program diatur dengan mengubah sambungan kabel.
-
Kelemahan ENIAC → sulit digunakan untuk berbagai aplikasi, memerlukan konsep pemrograman yang fleksibel.
ENIAC (1946): Komputer elektronik pertama berskala besar.
-
Menggunakan tabung vakum (18.000 buah) untuk proses logika.
-
Memiliki ukuran ruangan yang besar, boros daya, dan sulit diprogram karena program diatur dengan mengubah sambungan kabel.
Kelemahan ENIAC → sulit digunakan untuk berbagai aplikasi, memerlukan konsep pemrograman yang fleksibel.
4. Transisi ke Transistor dan IC
-
Transistor ditemukan oleh Bell Labs (1947), menggantikan tabung vakum: lebih kecil, hemat daya, dan tahan lama.
-
Integrated Circuit (IC): Dikembangkan oleh Jack Kilby dan Robert Noyce (akhir 1950-an), memungkinkan penggabungan banyak transistor dalam satu chip, mengurangi ukuran dan biaya.
Transistor ditemukan oleh Bell Labs (1947), menggantikan tabung vakum: lebih kecil, hemat daya, dan tahan lama.
Integrated Circuit (IC): Dikembangkan oleh Jack Kilby dan Robert Noyce (akhir 1950-an), memungkinkan penggabungan banyak transistor dalam satu chip, mengurangi ukuran dan biaya.
5. Lahirnya Mikroprosesor
-
Intel 4004 (1971):
-
Mikroprosesor pertama di dunia, 4-bit, digunakan dalam kalkulator Busicom.
-
Memiliki sekitar 2.300 transistor dan beroperasi pada 740 kHz.
-
Intel 8008 (1972): Prosesor 8-bit pertama.
-
Intel 8080 (1974): Digunakan dalam komputer Altair 8800, memicu era komputer pribadi (PC).
-
Intel 8086 (1978): Prosesor 16-bit pertama dalam keluarga x86.
-
Intel 8088 (1979): Versi 8-bit bus dari 8086, digunakan dalam IBM PC (1981), menjadikan arsitektur x86 sebagai standar industri.
Intel 4004 (1971):
-
Mikroprosesor pertama di dunia, 4-bit, digunakan dalam kalkulator Busicom.
-
Memiliki sekitar 2.300 transistor dan beroperasi pada 740 kHz.
Intel 8008 (1972): Prosesor 8-bit pertama.
Intel 8080 (1974): Digunakan dalam komputer Altair 8800, memicu era komputer pribadi (PC).
Intel 8086 (1978): Prosesor 16-bit pertama dalam keluarga x86.
Intel 8088 (1979): Versi 8-bit bus dari 8086, digunakan dalam IBM PC (1981), menjadikan arsitektur x86 sebagai standar industri.
6. Evolusi Mikroprosesor Intel
-
80286 (1982): Memperkenalkan mode protected, mendukung multitasking.
-
80386 (1985): Prosesor 32-bit, mendukung mode virtual 8086.
-
80486 (1989): Mengintegrasikan FPU (Floating Point Unit).
-
Pentium (1993): Memperkenalkan superscalar architecture, pipeline lebih dalam.
-
Core Series (2006-sekarang): Multi-core, efisiensi tinggi, dan dukungan instruksi canggih.
80286 (1982): Memperkenalkan mode protected, mendukung multitasking.
80386 (1985): Prosesor 32-bit, mendukung mode virtual 8086.
80486 (1989): Mengintegrasikan FPU (Floating Point Unit).
Pentium (1993): Memperkenalkan superscalar architecture, pipeline lebih dalam.
Core Series (2006-sekarang): Multi-core, efisiensi tinggi, dan dukungan instruksi canggih.
7. Indeks Performa dan Benchmark
-
Intel memperkenalkan iCOMP (Intel Comparative Microprocessor Performance) untuk membandingkan performa antar generasi prosesor.
-
Evolusi kecepatan: dari kHz pada 4004 → MHz pada 486 → GHz pada prosesor modern.
2. The Microprocessor-Based Personal Computer System
Sistem komputer berbasis mikroprosesor terdiri dari CPU, memori, dan perangkat input/output yang saling terhubung melalui tiga jenis bus: bus alamat (address bus), bus data (data bus), dan bus kontrol (control bus). CPU bertugas mengambil instruksi dari memori, memproses data, dan mengontrol perangkat I/O. Memori dibagi menjadi beberapa area, misalnya TPA (Transient Program Area) untuk program pengguna dan system area untuk BIOS dan perangkat keras. Pada PC modern, memori diperluas melalui konsep extended memory dan expanded memory. Selain itu, komunikasi antar komponen dilakukan melalui sistem bus seperti ISA, PCI, dan USB, yang memungkinkan penghubungan perangkat eksternal dengan kecepatan berbeda. Dengan adanya sistem ini, mikroprosesor mampu menjalankan fungsi pemrosesan data secara otomatis berdasarkan prinsip stored-program concept, sehingga fleksibel dan dapat digunakan untuk berbagai aplikasi.
1. Konsep Dasar Sistem Komputer Berbasis Mikroprosesor
-
Sebuah personal computer (PC) adalah sistem berbasis mikroprosesor yang mengintegrasikan beberapa komponen utama:
-
CPU (Central Processing Unit) → pusat pengolahan instruksi.
-
Memori → tempat penyimpanan data dan program.
-
I/O Devices (Input/Output) → perangkat untuk interaksi dengan pengguna (keyboard, mouse, monitor, printer).
-
-
Semua komponen ini saling terhubung melalui system bus, sehingga dapat saling bertukar data.
2. Struktur Bus dalam Sistem Komputer
-
Terdapat tiga jenis bus utama:
-
Address Bus → digunakan untuk mengirimkan alamat memori atau alamat I/O. Bersifat unidirectional (dari CPU ke memori/I/O).
-
Data Bus → digunakan untuk transfer data antara CPU, memori, dan I/O. Bersifat bidirectional.
-
Control Bus → mengirim sinyal kontrol seperti read, write, clock, dan interrupt untuk mengatur operasi.
-
-
Semua bus ini bekerja secara sinkron dengan sinyal clock dari prosesor.
3. Elemen Utama dalam Sistem PC
-
Mikroprosesor (CPU):
-
Melakukan fetch (pengambilan instruksi), decode (penerjemahan), dan execute (eksekusi).
-
Terdiri dari ALU (Arithmetic Logic Unit), register, dan control unit.
-
-
Memori:
-
ROM (Read Only Memory) → berisi BIOS (Basic Input Output System) dan program awal saat booting.
-
RAM (Random Access Memory) → tempat menyimpan program dan data sementara.
-
-
I/O Devices: Menghubungkan sistem dengan pengguna dan perangkat eksternal.
-
Chipset & Controller: Mengatur aliran data antara CPU, memori, dan perangkat I/O.
4. Arsitektur Memori PC
-
Pada PC berbasis Intel 8086/8088, memori awal terbagi sebagai berikut:
-
TPA (Transient Program Area) → 640 KB untuk program pengguna dan sistem operasi.
-
System Area → 384 KB untuk BIOS, memori video, dan perangkat lainnya.
-
-
Memori di atas 1 MB disebut Extended Memory, digunakan pada sistem 80286 ke atas.
-
Sistem lama juga mengenal Expanded Memory (EMS) yang digunakan dengan cara paging untuk melewati batas 1 MB.
5. Konsep Input/Output (I/O)
-
Terdapat dua metode utama untuk akses I/O:
-
Isolated I/O → alamat I/O terpisah dari alamat memori (menggunakan instruksi IN dan OUT).
-
Memory-Mapped I/O → perangkat I/O diberi alamat dalam ruang memori.
-
-
Peripheral dihubungkan melalui controller (misalnya disk controller, video controller).
6. Bus dan Slot Ekspansi
-
Untuk menghubungkan perangkat eksternal, digunakan bus ekspansi.
-
Jenis bus yang digunakan dalam evolusi PC:
-
ISA (Industry Standard Architecture) → bus 8/16-bit, digunakan pada PC awal.
-
EISA (Extended ISA) → mendukung 32-bit.
-
PCI (Peripheral Component Interconnect) → bus modern berkecepatan tinggi untuk kartu grafis, jaringan, dll.
-
USB (Universal Serial Bus) → mendukung kecepatan tinggi (USB 1.0 = 12 Mbps, sekarang hingga Gbps).
-
VESA Local Bus → digunakan untuk mempercepat akses video dan disk pada era 486.
-
7. Fungsi Utama Mikroprosesor dalam Sistem
-
Data Transfer → memindahkan data antara register, memori, dan I/O.
-
Arithmetic and Logic Operations → melakukan operasi matematika (penjumlahan, pengurangan) dan logika (AND, OR, XOR).
-
Decision Making → berdasarkan flag (misalnya Zero, Carry, Sign), prosesor dapat memutuskan alur program (conditional jump).
-
Program Control → mengatur urutan eksekusi instruksi melalui program counter.
8. Karakteristik Penting Sistem PC
-
Modularitas → memungkinkan upgrade komponen (misal menambah RAM atau mengganti prosesor).
-
Compatibility → harus mendukung software dan hardware lama (backward compatibility).
-
Interkoneksi Standar → menggunakan protokol universal seperti USB, PCIe.
3. Number Systems
Sistem bilangan merupakan dasar dalam pemrograman mikroprosesor. Intel menggunakan sistem biner (basis 2) untuk representasi internal data karena sesuai dengan sifat elektronik yang hanya mengenal dua keadaan: 0 dan 1. Selain biner, terdapat sistem oktal (basis 8) dan heksadesimal (basis 16) yang sering digunakan untuk mempermudah representasi biner. Konversi antar basis bilangan dijelaskan, seperti mengubah bilangan desimal ke biner dengan metode pembagian berulang dan sebaliknya. Contoh sederhana: bilangan biner 1011 sama dengan 11 desimal atau B heksadesimal. Pengetahuan ini penting karena alamat memori, instruksi, dan data pada mikroprosesor ditulis dalam bentuk biner atau heksadesimal. Selain itu, konsep endianness (urutan byte) diperkenalkan, dengan Intel menggunakan format little-endian, di mana byte paling rendah disimpan lebih dahulu dalam memori.
1. Pentingnya Sistem Bilangan dalam Mikroprosesor
-
Mikroprosesor bekerja menggunakan logika digital, yang hanya mengenal dua keadaan: 0 (low) dan 1 (high).
-
Oleh karena itu, sistem bilangan biner menjadi dasar dalam representasi data dan instruksi.
-
Namun, untuk mempermudah manusia membaca dan menulis angka biner, digunakan sistem lain seperti desimal, oktal, dan heksadesimal.
2. Jenis-Jenis Sistem Bilangan
a) Sistem Desimal (Base 10)
-
Digunakan oleh manusia sehari-hari.
-
Memiliki 10 simbol: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
-
Setiap digit memiliki bobot pangkat 10 (misal: 452 = 4×10² + 5×10¹ + 2×10⁰).
b) Sistem Biner (Base 2)
-
Digunakan oleh komputer karena sesuai dengan kondisi ON/OFF transistor.
-
Simbol: 0 dan 1.
-
Contoh: (1011)₂ = (1×2³) + (0×2²) + (1×2¹) + (1×2⁰) = (11)₁₀.
c) Sistem Oktal (Base 8)
-
Simbol: 0–7.
-
Sering digunakan karena 1 digit oktal = 3 bit biner.
-
Contoh: (101101)₂ = (55)₈.
d) Sistem Heksadesimal (Base 16)
-
Simbol: 0–9 dan A–F (A=10, B=11, ..., F=15).
-
Sangat umum digunakan dalam pemrograman karena 1 digit hex = 4 bit biner.
-
Contoh: (1011 1110)₂ = (BE)₁₆.
3. Konversi Antar Basis Bilangan
-
Desimal ke Biner: Dengan pembagian berulang oleh 2.
Contoh: 13 → 1101 (bagi 2 hingga habis, tulis sisa dari bawah ke atas).
Contoh: 11011101 → 1101 (D), 1101 (D) = DD₁₆. -
Biner ke Desimal: Kalikan setiap bit dengan 2ⁿ sesuai posisinya.
-
Biner ke Heksadesimal: Kelompokkan 4 bit, ubah ke digit hex.
-
Heksadesimal ke Biner: Setiap digit hex diubah ke 4 bit.
4. Bilangan Bertanda dan Tak Bertanda
-
Unsigned Integer: Semua bit digunakan untuk nilai (positif).
-
Signed Integer: Bit paling signifikan (MSB) digunakan sebagai tanda:
-
0 = positif, 1 = negatif (menggunakan metode Two’s Complement).
-
-
Contoh:
-
(+5)₁₀ = 00000101₂,
-
(-5)₁₀ = 11111011₂ (komplemen dua dari +5).
-
5. Pecahan Biner (Fractional Binary)
-
Pecahan ditulis dengan bobot negatif:
Contoh: (0.101)₂ = (1×2⁻¹) + (0×2⁻²) + (1×2⁻³) = 0.625.
6. Endianness (Urutan Byte)
-
Intel menggunakan format Little-Endian:
-
Byte paling rendah disimpan di alamat memori paling kecil.
-
Contoh: 1234H disimpan sebagai 34H di alamat pertama, kemudian 12H.
-
-
Berbeda dengan Big-Endian (digunakan oleh Motorola), di mana byte paling signifikan disimpan lebih dulu.
7. Notasi dan Representasi
-
Notasi biner biasanya diberi akhiran B atau subscript 2 (misal: 1010₂ atau 1010B).
-
Notasi hex diberi akhiran H atau awalan 0x (misal: 1AH atau 0x1A).
-
Penting untuk membedakan karena instruksi mikroprosesor sering menggunakan nilai hex untuk alamat memori dan instruksi.
8. Relevansi dalam Pemrograman Mikroprosesor
-
Instruksi assembly banyak menggunakan hexadecimal karena lebih ringkas dibanding biner.
-
Contoh: Opcode MOV AX, BX mungkin direpresentasikan sebagai 89D8H.
-
Pemahaman sistem bilangan memudahkan dalam:
-
Membaca alamat memori,
-
Menulis konstanta,
-
Debugging program.
4. Computer Data Formats
Data dalam komputer disimpan dalam berbagai format untuk memenuhi kebutuhan berbeda. Format yang umum adalah integer (bilangan bulat), floating-point (bilangan pecahan), dan BCD (Binary-Coded Decimal) untuk perhitungan desimal presisi tinggi. Selain angka, data karakter diwakili dengan kode ASCII (American Standard Code for Information Interchange), di mana setiap karakter direpresentasikan oleh kode biner 7 atau 8 bit. Pemahaman format ini penting karena instruksi mikroprosesor harus mengetahui jenis data yang sedang diproses agar operasi aritmetika dan logika berjalan dengan benar. Kesalahan interpretasi format data dapat menyebabkan hasil perhitungan yang salah atau kegagalan eksekusi program.
1. Pentingnya Format Data
-
Mikroprosesor tidak hanya memproses bilangan bulat, tetapi juga teks, pecahan, dan berbagai tipe data.
-
Agar CPU dapat mengolah data dengan benar, data harus memiliki format tertentu.
-
Format ini menentukan ukuran (bit) dan cara interpretasi bit-bit tersebut (misalnya, apakah angka bertanda, karakter ASCII, atau floating point).
2. Jenis-Jenis Format Data dalam Komputer
Format data yang umum dalam mikroprosesor Intel antara lain:
a) Integer (Bilangan Bulat)
-
Unsigned Integer: Semua bit digunakan untuk nilai (positif).
-
Contoh: 8-bit unsigned dapat merepresentasikan 0 sampai 255.
-
-
Signed Integer (Two’s Complement): Bit paling signifikan (MSB) digunakan sebagai tanda.
-
0 = positif, 1 = negatif.
-
Range 8-bit signed: -128 sampai +127.
-
-
Digunakan untuk operasi aritmetika dan logika.
b) Packed BCD (Binary-Coded Decimal)
-
Setiap digit desimal (0–9) direpresentasikan oleh 4 bit.
-
Contoh: 59 desimal = 0101 1001 dalam BCD.
-
Intel mendukung instruksi BCD seperti DAA (Decimal Adjust after Addition) untuk menangani perhitungan desimal presisi tinggi.
-
Umum digunakan di aplikasi keuangan yang memerlukan ketelitian.
c) ASCII Characters
-
ASCII (American Standard Code for Information Interchange) merepresentasikan karakter dengan kode biner.
-
Setiap karakter = 7-bit (sering disimpan dalam 8-bit byte dengan bit paling signifikan = 0).
-
Contoh:
-
‘A’ = 41H (0100 0001₂)
-
‘0’ = 30H (0011 0000₂)
-
-
Digunakan untuk teks dalam program dan komunikasi data.
d) Floating-Point (Bilangan Pecahan)
-
Intel mendukung format floating-point sesuai standar IEEE 754:
-
32-bit (single precision):
-
1 bit tanda, 8 bit eksponen, 23 bit mantissa.
-
-
64-bit (double precision):
-
1 bit tanda, 11 bit eksponen, 52 bit mantissa.
-
-
-
Digunakan untuk perhitungan ilmiah dan teknik.
-
Floating Point Unit (FPU) pada prosesor Intel mengolah format ini (contohnya pada 80486 dan seterusnya).
e) Packed dan Unpacked Data
-
Packed: Data disimpan rapat dalam byte/word tanpa spasi.
-
Contoh: 2 digit BCD dalam 1 byte (4 bit + 4 bit).
-
-
Unpacked: Setiap digit disimpan dalam satu byte (misalnya angka ‘5’ = 35H, angka ‘9’ = 39H).
-
Instruksi tertentu pada Intel (seperti BCD) bekerja dengan format ini.
3. Urutan Penyimpanan Data (Endianness)
-
Little Endian (digunakan oleh Intel): Byte paling rendah disimpan di alamat memori paling kecil.
-
Contoh: 12345678H disimpan sebagai 78 56 34 12.
-
-
Berbeda dengan Big Endian, di mana byte paling signifikan disimpan lebih dulu.
-
Penting untuk programmer ketika bekerja dengan pointer atau transfer data antar sistem.
4. Alignment (Penyelarasan Data)
-
Data disimpan di memori dengan alignment tertentu untuk efisiensi:
-
Word (16-bit) biasanya disimpan pada alamat genap.
-
Double word (32-bit) disimpan pada alamat kelipatan 4.
-
-
Kesalahan alignment dapat menyebabkan penurunan kinerja atau exception pada beberapa arsitektur.
5. Relevansi dalam Pemrograman
-
Pemrogram harus tahu format data agar:
-
Instruksi yang digunakan sesuai (misalnya ADD untuk integer, FADD untuk floating-point).
-
Tidak terjadi kesalahan interpretasi (contoh: menafsirkan kode ASCII sebagai integer).
-
-
Pada level assembly, pemrogram menggunakan directive seperti:
-
DB (Define Byte) → data 8-bit,
-
DW (Define Word) → data 16-bit,
-
DD (Define Double Word) → data 32-bit.
-
Comments
Post a Comment