Mikroprosesor dan Komputer
Data numerik umumnya direpresentasikan dalam bentuk integer, floating-point, maupun binary-coded decimal (BCD), sedangkan data alfanumerik disimpan menggunakan standar kode ASCII dan Unicode. Dengan demikian, studi mengenai mikroprosesor tidak hanya berfokus pada perangkat keras, tetapi juga mencakup aspek representasi data yang mendukung pengembangan perangkat lunak.
Tujuan
Penulisan ini bertujuan untuk:
- Menjelaskan sejarah singkat perkembangan komputer beserta aplikasinya.
- Menggunakan istilah-istilah komputer secara tepat, seperti bit, byte, data, sistem memori nyata, sistem memori mode terlindung, Windows, DOS, dan I/O.
- Memberikan gambaran umum mengenai keluarga mikroprosesor 80X86 dan Pentium.
- Menguraikan diagram blok sistem komputer serta fungsi masing-masing blok.
- Mendeskripsikan fungsi dan operasi dasar mikroprosesor.
- Melakukan konversi bilangan biner, desimal, dan heksadesimal.
- Membedakan serta merepresentasikan data numerik dan alfanumerik dalam bentuk integer, floating-point, BCD, dan ASCII.
A. Sejarah Singkat Perkembangan Komputer [kembali]
Pada abad ke-19, penemuan motor listrik oleh Michael Faraday melahirkan kalkulator mekanik bertenaga listrik yang digunakan hingga awal 1970-an, sebelum digantikan kalkulator elektronik portabel seperti Bomar Brain. Tahun 1889, Herman Hollerith memperkenalkan kartu berlubang untuk penyimpanan data dan mendirikan Tabulating Machine Company yang kemudian berkembang menjadi IBM.
Komputer elektromekanik pertama, Z3, diciptakan oleh Konrad Zuse pada tahun 1941 di Jerman untuk mendukung perancangan pesawat dan rudal. Dua tahun kemudian, Inggris mengoperasikan komputer elektronik pertama bernama Colossus (1943) yang digunakan untuk memecahkan kode rahasia Jerman, meskipun hanya bersifat khusus. Selanjutnya, lahirlah komputer elektronik serbaguna pertama, ENIAC (1946) di Universitas Pennsylvania, yang berisi lebih dari 17.000 tabung vakum, memiliki bobot 30 ton, dan mampu melakukan sekitar 100.000 operasi per detik. Meskipun menjadi terobosan besar, ENIAC masih sulit diprogram dan membutuhkan perawatan intensif. Perkembangan komputer kemudian dipercepat dengan penemuan transistor (1947), sirkuit terpadu (1958), hingga munculnya mikroprosesor Intel 4004 pada tahun 1971 yang dikembangkan oleh Federico Faggin, Ted Hoff, dan Stan Mazor, menandai awal revolusi mikroprosesor yang terus berlanjut hingga saat ini.
B. Istilah-Istilah pada Komputer [kembali]
1. Bit
Bit (binary digit) adalah unit data terkecil dalam sistem komputer, yang hanya memiliki dua nilai, yaitu 0 atau 1. Bit digunakan untuk merepresentasikan logika dasar dalam komputasi digital.
2. Byte
Byte terdiri dari 8 bit dan merupakan satuan dasar penyimpanan data di komputer. Satu byte dapat merepresentasikan 256 kombinasi nilai (0–255), biasanya digunakan untuk menyimpan satu karakter.
3. Data
Data adalah sekumpulan informasi dalam bentuk angka, huruf, simbol, maupun sinyal yang dapat diproses oleh komputer. Data dapat berupa numerik, teks, gambar, audio, maupun video.
4. Sistem Memori Nyata (Real Memory System)
Sistem memori nyata adalah mode operasi prosesor yang hanya dapat mengakses memori hingga kapasitas tertentu (misalnya 1 MB pada prosesor Intel awal). Mode ini sering digunakan pada sistem operasi lama seperti DOS.
5. Sistem Memori Mode Terlindung (Protected Mode Memory System)
Mode terlindung memungkinkan prosesor mengakses memori lebih besar (hingga gigabyte) dan memberikan perlindungan antar program, sehingga satu aplikasi tidak dapat merusak memori aplikasi lain. Mode ini digunakan pada sistem operasi modern seperti Windows.
6. Windows
Windows adalah sistem operasi berbasis GUI (Graphical User Interface) yang dikembangkan oleh Microsoft. Windows mengelola perangkat keras, perangkat lunak, serta menyediakan antarmuka yang memudahkan pengguna berinteraksi dengan komputer.
7. DOS (Disk Operating System)
DOS adalah sistem operasi berbasis teks yang digunakan pada komputer pribadi sebelum Windows populer. DOS menjalankan perintah melalui command line dan memiliki keterbatasan dalam manajemen memori serta multitasking.
8. I/O (Input/Output)
I/O adalah mekanisme pertukaran data antara komputer dengan perangkat luar. Input adalah data yang masuk ke sistem (misalnya keyboard, mouse, sensor), sedangkan output adalah hasil yang dikeluarkan (misalnya monitor, printer, aktuator).
C. Perkembangan Mikroprosessor Intel [kembali]
1. Generasi Awal (8-bit)
Mikroprosesor generasi awal, seperti Intel 8048 dan 8051, menggunakan bus data 8-bit dengan memori internal terbatas (2K–8K). Prosesor ini banyak dipakai pada perangkat sederhana dan sistem tertanam (embedded system).
2. Peralihan ke 16-bit
Memasuki awal 1980-an, hadir mikroprosesor 8086, 80186, dan 80286 dengan bus data 16-bit serta kapasitas memori hingga 16 MB. Hal ini memungkinkan komputer menjalankan aplikasi yang lebih kompleks.
3. Era 32-bit
Akhir 1980-an hingga awal 1990-an ditandai dengan hadirnya 80386 dan 80486 yang memiliki bus data 32-bit dan mendukung akses memori hingga 4 GB. Pada masa ini juga diperkenalkan cache memory untuk meningkatkan kinerja.
4. Seri Pentium (64-bit)
Generasi Pentium hingga Pentium 4 menggunakan bus data 64-bit dan menambahkan cache L1 dan L2. Peningkatan ini membuat performa komputer jauh lebih cepat dan mendukung sistem operasi modern.
5. Arsitektur Multicore
Memasuki 2000-an, Intel merilis Pentium4D dan Core 2 dengan teknologi multi-core, yang memungkinkan beberapa prosesor bekerja bersamaan. Kapasitas memori meningkat hingga terabyte.
6. Revolusi 128-bit
Prosesor Itanium (Dual Core) memperkenalkan bus data 128-bit dengan dukungan cache besar (hingga puluhan MB), menjadi tonggak penting dalam komputasi berskala besar.
D. Diagram Blok Sistem Komputer [kembali]
Diagram ini menunjukkan hubungan antara mikroprosesor (µP) dengan berbagai perangkat melalui address bus, data bus, dan control bus.
1. Mikroprosesor (µP)
Mikroprosesor adalah pusat kendali sistem komputer yang bertugas mengolah data, mengatur aliran informasi, serta mengirim sinyal kontrol ke perangkat memori maupun I/O agar dapat berfungsi sesuai instruksi program.
2. Address Bus
Address bus digunakan oleh mikroprosesor untuk menentukan alamat lokasi memori atau perangkat I/O yang hendak diakses. Bus ini bersifat satu arah, hanya dari mikroprosesor menuju perangkat tujuan.
3. Data Bus
Data bus merupakan jalur dua arah yang memungkinkan pertukaran data antara mikroprosesor, memori (RAM/ROM), serta perangkat input/output seperti keyboard dan printer.
4. Control Bus
Control bus berfungsi membawa sinyal kendali untuk mengatur operasi baca dan tulis. Sinyal ini mencakup MWTC (Memory Write Control), MRDC (Memory Read Control), IOWC (I/O Write Control), dan IORC (I/O Read Control) yang memastikan data ditulis atau dibaca dengan benar.
5. ROM (Read-Only Memory)
ROM menyimpan instruksi atau program permanen yang tidak dapat diubah. Mikroprosesor membaca data dari ROM untuk menjalankan fungsi dasar sistem.
6. RAM (Read/Write Memory)
RAM adalah memori sementara yang dapat dibaca dan ditulis, digunakan untuk menyimpan data dan instruksi selama program dijalankan.
7. Keyboard (Input Device)
Keyboard berfungsi sebagai perangkat input yang mengirimkan data atau perintah ke mikroprosesor melalui bus, untuk kemudian diproses sesuai program.
8. Printer (Output Device)
Printer adalah perangkat output yang menerima data dari mikroprosesor melalui bus dan mengubahnya menjadi bentuk cetak.
E. Fungsi dan Operasi Dasar Mikroprosesor [kembali]
Mikroprosesor melakukan tiga tugas utama dalam sistem komputer: (1) transfer data antara dirinya dengan memori atau sistem I/O, (2) operasi aritmatika dan logika sederhana, serta (3) pengendalian alur program melalui keputusan-keputusan sederhana. Meskipun tugas-tugas ini terlihat sederhana, melalui mekanisme inilah mikroprosesor dapat menjalankan hampir semua rangkaian operasi atau tugas.
Tabel 1–4 memperlihatkan operasi aritmatika dan logika yang digunakan oleh keluarga mikroprosesor Intel. Meskipun tergolong dasar, operasi ini menjadi fondasi untuk menyelesaikan berbagai permasalahan komputasi yang kompleks.
Data yang diproses dapat berasal dari memori maupun register internal, dengan ukuran bervariasi, yaitu byte (8 bit), word (16 bit), dan doubleword (32 bit). Mikroprosesor 80386 hingga Core2 mampu memanipulasi bilangan 8-, 16-, dan 32-bit secara langsung. Sebaliknya, generasi sebelumnya (8086–80286) hanya dapat menangani bilangan 8- dan 16-bit. Sejak 80486, mikroprosesor mulai dilengkapi dengan koprosesor numerik untuk mendukung operasi aritmatika kompleks berbasis floating-point.
Koprosesor numerik, yang berfungsi layaknya chip kalkulator, awalnya merupakan komponen tambahan pada sistem berbasis 8086 hingga 80386. Selain itu, koprosesor ini juga mendukung operasi bilangan bulat hingga quadword (64 bit). Pada generasi berikutnya, unit MMX dan SIMD dalam Pentium hingga Core2 memungkinkan pemrosesan paralel baik untuk bilangan bulat maupun floating-point, dengan SIMD yang membutuhkan data dalam bentuk octalword (128 bit).
Salah satu keunggulan yang menjadikan mikroprosesor begitu andal adalah kemampuannya melakukan pengambilan keputusan sederhana berdasarkan data numerik. Misalnya, mikroprosesor dapat mengevaluasi apakah suatu nilai bernilai nol, positif, atau kondisi lainnya. Melalui keputusan sederhana ini, mikroprosesor mampu menyesuaikan alur eksekusi program, sehingga program tampak seolah memiliki kemampuan “berpikir”. Tabel 1–5 memperlihatkan berbagai kemampuan pengambilan keputusan pada mikroprosesor Intel.
F. Konversi Bilangan Biner, Desimal, dan Heksadesimal [kembali]
Penggunaan mikroprosesor menuntut pemahaman mengenai sistem bilangan biner, desimal, dan heksadesimal. Pemahaman ini mencakup proses konversi antar sistem bilangan, seperti antara desimal dengan biner, desimal dengan heksadesimal, maupun biner dengan heksadesimal.
Konversi ke Desimal
Contoh 1–1 menunjukkan bilangan biner 110.101 (sering ditulis sebagai 110.101₂) beserta nilai bobot dari setiap posisi digitnya. Untuk mengonversi bilangan biner ke desimal, bobot dari setiap digit dijumlahkan sehingga diperoleh nilai desimalnya. Bilangan 110.101₂ setara dengan 6,625 dalam desimal. Nilai tersebut merupakan hasil penjumlahan 2² (4) ditambah 2¹ (2), sedangkan 2⁰ (1) tidak dihitung karena tidak ada digit pada posisi tersebut. Bagian pecahannya terdiri dari 2⁻¹ (0,5) ditambah 2⁻³ (0,125), sementara 2⁻² (0,25) tidak dihitung karena tidak ada digit pada posisi tersebut.
Bilangan heksadesimal sering digunakan dalam komputer.
Sebagai contoh, 6A.CH (H menunjukkan heksadesimal) ditunjukkan dengan nilai bobotnya pada Contoh 1–5. Jumlah dari digit-digitnya adalah 106,75 atau 106¾. Bagian bilangan bulat direpresentasikan sebagai 106, sedangkan bagian pecahannya berasal dari 12 (C) sebagai pembilang dan 16 (16⁻¹) sebagai penyebut, yaitu 12/16 yang dapat disederhanakan menjadi 3/4.
Konversi dari Desimal
Sebagai contoh, untuk mengonversi bilangan desimal 10 ke biner, bilangan tersebut dibagi dengan 2. Hasilnya adalah 5 dengan sisa 0. Sisa pertama ini menjadi posisi satuan dari hasil (dalam contoh ini adalah 0). Selanjutnya, 5 dibagi 2 menghasilkan 2 dengan sisa 1, yang merepresentasikan nilai pada posisi dua (2¹). Proses pembagian ini dilanjutkan hingga hasil baginya menjadi nol. Contoh 1–6 menunjukkan proses konversi ini, dengan hasil akhir dituliskan sebagai 1010₂ dari bawah ke atas.
Misalkan bilangan desimal 0,125 dikonversi ke biner. Proses ini dilakukan dengan perkalian berturut-turut dengan 2, sebagaimana ditunjukkan pada Contoh 1–9. Perkalian dilanjutkan hingga sisa pecahannya bernilai nol. Bagian bilangan bulat dari hasil perkalian dituliskan sebagai pecahan biner, yang dalam contoh ini adalah (0.001).
Binary-Coded Hexadecimal
Sebuah Binary-Coded Hexadecimal (BCH) number adalah bilangan heksadesimal yang ditulis dengan merepresentasikan setiap digitnya menggunakan bilangan biner 4-bit. Nilai dari digit-digit BCH ditunjukkan pada Tabel 1–7.
Bilangan heksadesimal direpresentasikan dalam kode BCH dengan cara mengonversi setiap digit ke dalam kode BCH dan memberikan spasi di antara setiap digit yang telah dikodekan.
Tujuan dari kode BCH adalah untuk memungkinkan versi biner dari sebuah bilangan heksadesimal ditulis dalam bentuk yang dapat dengan mudah dikonversi antara BCH dan heksadesimal. Contoh 1–13 menunjukkan sebuah bilangan yang dikodekan dalam BCH kemudian dikonversi kembali menjadi kode heksadesimal.
ASCII and Unicode Data
ASCII (American Standard Code for Information Interchange) adalah sistem pengkodean yang digunakan untuk merepresentasikan karakter alfanumerik dalam memori sebuah komputer (lihat Tabel 1–8).
Kode ASCII standar menggunakan 7-bit, sedangkan bit kedelapan (paling signifikan) pada beberapa sistem lama digunakan sebagai bit paritas. Jika data ASCII digunakan pada printer, maka bit paling signifikan bernilai 0 untuk pencetakan alfanumerik, dan 1 untuk pencetakan grafik. Pada komputer pribadi, terdapat extended ASCII yang menggunakan 8-bit penuh, di mana bit paling kiri diisi dengan 1.
Data ASCII biasanya disimpan dalam memori menggunakan directive khusus pada assembler yang disebut define byte(s) (DB). (Assembler adalah program yang digunakan untuk menulis instruksi komputer dalam bahasa mesin biner aslinya). Alternatif lain dari DB adalah kata BYTE.
Directive DB dan BYTE, beserta contoh penggunaannya dengan string karakter yang dikodekan ASCII, ditunjukkan pada Contoh 1–18. Perhatikan bahwa setiap string karakter ditulis diapit oleh apostrof (’) — bukan tanda kutip ("). Assembler akan menampilkan nilai ASCII dari setiap karakter di sisi kiri string karakter, sedangkan di paling kiri ditunjukkan alamat memori dalam format heksadesimal tempat string pertama kali disimpan.
Sebagai contoh, string WHAT disimpan mulai dari alamat memori 001D, dengan huruf pertama W disimpan sebagai 57H, diikuti oleh 68H (H), dan seterusnya.