ARSITEKTUR KOMPUTER LANJUTAN - Hafizh Hilman Asyhari 202331206 TUGAS 04-08-2025
ARSITEKTUR KOMPUTER LANJUTAN
Nama : Hafizh Hilman Asyhari
NIM : 202331206
Kelas : A
Mata Kuliah : Organisasi dan Arsitektur Komputer
Prodi : S1 Teknik Informatika
Tanggal 04 Agustus 2025
Sesi : Minggu ke 6
Halo, Sobat Teknologi! 👋
Pernahkah kamu bertanya-tanya, “Sebenarnya, apa sih yang ada di dalam otak komputer itu?” 🤔
Yap, yang dimaksud adalah CPU — si jantung dan otak dari setiap perangkat pintar yang kita gunakan.
Di blog ini, kita akan membongkar rahasia Arsitektur Komputer Lanjutan, mulai dari komponen CPU, siklus instruksi, hingga bagaimana komputer bisa memahami perintah kita. Siap? Yuk, kita mulai! 🚀
A. KOMPONEN CPU
Register, penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi yang digunakan untuk menyimpan data dan instruksi yang sedang diproses
MBR (Memory Buffer Register), Untuk menampung data yang akan ditulis ke memori yang alamatnya ditunjuk MAR
Input Output AR (I/O Address Register), Untuk mencatat alamat port I/O yang akan diakses(ditulisi/ dibaca).
- UNIVAC I – salah satu komputer komersial awal, memproses instruksi secara serial.
- IBM System/360 – arsitektur mainframe dengan eksekusi instruksi sekuensial.
- CDC 7600 – meski terkenal cepat untuk zamannya, masih berbasis eksekusi instruksi seri (dengan beberapa teknik pipelining dan overlapped).
- Cray-1 – superkomputer yang menggabungkan vektor (jadi ada aspek SIMD di internalnya), tetapi dasarnya eksekusi instruksi terhadap data satu per satu.
- PDP-1 – komputer interaktif awal dengan model eksekusi tradisional.
- Pipelining: memecah eksekusi instruksi menjadi tahap (fetch, decode, execute, writeback) sehingga beberapa instruksi “tumpang tindih” dalam siklus yang berbeda.
- Cache: mengurangi latensi memori dengan menyimpan data/instruksi yang sering dipakai di memori cepat.
- Branch prediction: memperkirakan percabangan agar pipeline tidak berhenti.
- Bagi array menjadi 5 segmen masing-masing 20 elemen.
- Kelima prosesor menjalankan instruksi "cek apakah elemen == 27" secara bersamaan pada segmen mereka.
- Setelah pengecekan, hasil (misal bendera ditemukan atau tidak) digabungkan untuk menentukan apakah ada minimal satu kecocokan.
- Satu instruksi ditulis sekali (misal: compare_vector_with_value(27)), namun mengeksekusinya terhadap banyak elemen sekaligus.
- Overhead sinkronisasi minimal dalam kasus data independen (setiap lane/prosesor bekerja sendiri kecuali pada penggabungan hasil akhir).
- Tidak perlu dispatch instruksi berbeda per elemen—cukup satu instruksi vektor.
- CPU vector extensions (SSE, AVX): misal, bandingkan 8 angka sekaligus dengan 27 dalam satu instruksi, menghasilkan bitmask dari elemen yang cocok.
- GPU kernels: ribuan thread menjalankan instruksi yang sama pada subset data berbeda.
- Multiprocessor cluster sederhana: tiap node/prosesor punya bagian array dan menjalankan kode yang identik.
- Kecepatan: lima prosesor yang bekerja bersamaan bisa (ideal) mempercepat hingga ~5x dibanding satu prosesor yang memeriksa 100 elemen serial.
- Efisiensi instruksi: satu instruksi vektor bisa memproses banyak data sekaligus.
- Skalabilitas pada tugas data-paralel (semakin banyak data, bisa ditambah lane/prosesor).
- Pembagian data: harus bisa membagi data secara independen; data dependency (misal operasi yang tergantung pada hasil sebelumnya) tidak cocok.
- Edge case (remainder): jika jumlah data tidak habis dibagi jumlah lane, perlu logika tambahan untuk sisa (misal 103 elemen dengan 5 prosesor → 3 elemen extra).
- Penggabungan hasil: meskipun biasanya ringan, tetap perlu mekanisme reduction yang benar.
- Masking & Divergence: dalam beberapa implementasi (misal GPU), jika path eksekusi berbeda antar elemen, efisiensi bisa menurun.
| Aspek | SISD | SIMD |
|---|---|---|
| Instruksi | Satu instruksi untuk satu data | Satu instruksi untuk banyak data |
| Prosesor | Satu unit (serial) | Banyak lane/core menjalankan instruksi yang sama |
| Paralelisme | Tidak (kecuali pipelining dan superscalar) | Data-level parallelism eksplisit |
| Overhead pembagian | Minimal (tidak ada) | Perlu pembagian data dan reduction |
| Cocok untuk | Algoritma sekuensial / kontrol kompleks | Operasi berulang pada elemen independen (vektor, matriks, pencarian) |
| Contoh | Loop biasa menjumlahkan array | Bandingkan/operasi matematika vektor, pencarian paralel |
- SISD seperti satu tukang kayu yang memotong satu papan, satu per satu, mengikuti instruksi langkah demi langkah.
- SIMD seperti satu instruksi “potong semua papan panjang 2 meter” yang dijalankan secara bersamaan oleh lima tukang di lima meja berbeda—semua memotong papan berbeda tapi dengan instruksi yang sama.
- Serial: 100 elemen → 100 waktu.
- SIMD dengan 5 prosesor (ideal, pembagian merata, tidak ada overhead): ~100 / 5 = 20 waktu → speedup teoritis 5×.
- Total ≈ 20 (komputasi) + 2 (reduction) = 22 → speedup ≈ 100 / 22 ≈ 4.5×.
- Dikembangkan oleh University of Illinois di akhir 1960-an.
- Memiliki 64 prosesor yang berjalan paralel, cocok untuk komputasi sains besar seperti simulasi numerik.
- Salah satu pionir superkomputer SIMD, walau terkenal karena keterlambatan dan biaya tinggi.
- Dirilis awal 1990-an, memiliki hingga 16.384 unit pemroses kecil (processing elements) yang bisa dieksekusi serentak.
- Cocok untuk pemrosesan citra, analisis data besar, dan simulasi fisika.
- Superkomputer vektor yang memanfaatkan teknik SIMD untuk operasi pada vektor panjang.
- Cray X-MP muncul di 1982, sedangkan Y-MP di 1988 dengan performa lebih tinggi.
- Superkomputer dengan ribuan prosesor sederhana yang menjalankan instruksi sama terhadap data berbeda.
- Banyak digunakan di bidang penelitian AI awal dan pemrosesan citra.
- Digunakan di PlayStation 3, menggabungkan prosesor umum (PPE) dengan beberapa Synergistic Processing Elements (SPE) yang bekerja SIMD.
- Desain hybrid yang sangat efisien untuk tugas grafis dan fisika real-time.
- Menjalankan ribuan “thread” dengan model eksekusi SIMD/SIMT (Single Instruction, Multiple Threads).
- Cocok untuk deep learning, rendering grafis, dan komputasi ilmiah masif.
- Multiple Instruction, Single Data berarti ada banyak prosesor yang mengambil data sama, namun masing-masing mengeksekusi instruksi berbeda terhadap data tersebut.
- Model ini sangat jarang digunakan dalam komputer komersial karena sebagian besar aplikasi memerlukan data berbeda untuk instruksi berbeda.
- Biasanya ditemukan di sistem stream processing atau fault-tolerant computing.
- Satu sumber data → dikirim ke semua prosesor.
- Instruksi tiap prosesor bisa sangat berbeda.
- Tidak umum untuk tujuan komputasi umum (general-purpose computing).
- Sistem kontrol avionik pada pesawat tempur: sensor memberikan data ke berbagai modul, yang masing-masing melakukan analisis berbeda (deteksi ancaman, navigasi, kontrol penerbangan).
- Beberapa prototipe sistem berbasis pipeline processing di superkomputer eksperimen.
- Multiple Instruction, Multiple Data adalah model di mana setiap prosesor mengeksekusi instruksi berbeda pada data berbeda.
- Ini adalah model paling fleksibel dan paling banyak digunakan di komputer modern multi-core atau sistem terdistribusi.
- Shared Memory MIMD: Semua prosesor berbagi ruang memori yang sama. Contoh: server multi-core modern.
- Distributed Memory MIMD: Tiap prosesor punya memori sendiri dan komunikasi melalui jaringan. Contoh: superkomputer cluster.
- Cocok untuk task parallelism (tugas berbeda bisa dijalankan di prosesor berbeda).
- Sangat fleksibel—bisa meniru model SISD, SIMD, atau MISD tergantung kebutuhan.
- Digunakan pada komputer sehari-hari (laptop multi-core), server cloud, hingga superkomputer HPC.
- IBM POWER5 – prosesor multi-core dengan simultaneous multithreading.
- HP/Compaq AlphaServer – server dengan prosesor Alpha yang mendukung multiprocessing.
- Intel IA-32 – arsitektur x86 umum (misalnya Core i7, Xeon) yang mendukung multi-thread dan multi-core.
- AMD Opteron – prosesor server yang mendukung MIMD dengan memori terdistribusi.
- Cray XT3 – superkomputer berbasis prosesor AMD, setiap node jalankan instruksi/data berbeda.
- IBM Blue Gene/L – superkomputer dengan puluhan ribu prosesor, masing-masing bekerja pada bagian data dan instruksi berbeda.
- Misalnya sistem simulasi cuaca:
- Prosesor A memodelkan suhu udara.
- Prosesor B memodelkan kelembapan.
- Prosesor C menghitung pergerakan angin.
- Semua prosesor bekerja bersamaan, tetapi dengan instruksi dan data yang berbeda, lalu hasilnya digabungkan untuk membuat prediksi cuaca.
1. Multicore Computers
1.1. Konsep
-
Multicore adalah prosesor tunggal (single physical CPU chip) yang di dalamnya memiliki lebih dari satu core (inti pemrosesan).
-
Setiap core berfungsi layaknya prosesor independen yang bisa menjalankan instruksi secara paralel.
-
Dibuat untuk meningkatkan performa tanpa menaikkan clock speed (karena peningkatan clock speed berisiko panas berlebih dan konsumsi daya tinggi).
1.2. Alasan Munculnya Multicore
-
Batasan fisik clock speed (sekitar 4-5 GHz pada CPU modern) membuat peningkatan kecepatan linear tidak efisien.
-
Solusi: menambah jumlah core, sehingga lebih banyak instruksi dapat diproses secara bersamaan (parallel processing).
1.3. Contoh Implementasi
-
Intel Core i3, i5, i7, i9: 2–24 core tergantung seri.
-
AMD Ryzen: dari 4 hingga 96 core di seri server (EPYC).
-
Apple M1/M2/M3: System-on-Chip dengan core CPU, GPU, dan AI accelerator.
1.4. Kelebihan
-
Kinerja tinggi untuk aplikasi multi-threaded.
-
Efisiensi daya lebih baik dibandingkan meningkatkan clock speed tunggal.
2. Multiprocessor Computers
2.1. Konsep
-
Multiprocessor adalah komputer dengan lebih dari satu CPU fisik.
-
Dapat dikombinasikan dengan multicore, sehingga dalam satu sistem bisa terdapat banyak CPU dan masing-masing CPU punya beberapa core.
2.2. Contoh
-
Server 4-way atau 8-way dengan CPU multicore, misalnya server database besar atau render farm.
-
Superkomputer yang memiliki ratusan hingga ribuan CPU.
2.3. Kelebihan
-
Skalabilitas tinggi untuk beban kerja masif.
-
Cocok untuk komputasi ilmiah, AI training berskala besar, dan layanan cloud.
3. UMA (Uniform Memory Access)
3.1. Konsep
-
Semua prosesor berbagi memori fisik yang sama dengan waktu akses yang seragam (uniform).
-
Disebut juga Tightly Coupled Multiprocessor atau Symmetric Multiprocessor (SMP).
-
Setiap prosesor bisa mengakses memori apa pun dengan kecepatan sama.
3.2. Contoh
-
Balance system
-
VAX 8800 dari Digital Equipment Corporation.
3.3. Kelebihan
-
Model pemrograman lebih sederhana karena memori dibagi rata.
-
Efektif untuk aplikasi shared-memory.
3.4. Kekurangan
-
Bottleneck jika banyak prosesor mengakses memori bersamaan.
-
Tidak cocok untuk skala sangat besar (ratusan prosesor).
4. NUMA (Non-Uniform Memory Access)
4.1. Konsep
-
Memori dibagi menjadi beberapa “node” yang dekat dengan prosesor tertentu.
-
Prosesor mengakses memori lokal lebih cepat dibanding memori milik node lain (remote memory).
-
Mengurangi bottleneck memori pada sistem multiprosesor besar.
4.2. Contoh
-
HP AlphaServer
-
IBM NUMA-Q
4.3. Kelebihan
-
Skalabilitas lebih baik daripada UMA untuk sistem besar.
-
Akses memori lokal sangat cepat.
4.4. Kekurangan
-
Pemrograman lebih rumit, harus mempertimbangkan lokasi data (data locality).
-
Performa turun jika sering mengakses memori remote.
5. NORMA (No Remote Memory Access)
5.1. Konsep
-
Tidak ada memori bersama; setiap prosesor punya memori sendiri yang tidak bisa diakses langsung oleh prosesor lain.
-
Komunikasi antar prosesor hanya lewat jaringan atau pertukaran pesan (message passing).
-
Sering disebut Distributed System atau Loosely Coupled System.
5.2. Contoh
-
Hypercube system dari Intel.
-
Beberapa superkomputer berbasis cluster seperti Beowulf.
5.3. Kelebihan
-
Skalabilitas sangat tinggi.
-
Tidak ada bottleneck memori terpusat.
5.4. Kekurangan
-
Pemrograman kompleks (harus mengatur komunikasi manual).
-
Latensi komunikasi lebih tinggi dibanding sistem memori bersama.
- Address bus (mengindikasikan lokasi memori/perangkat),
- Data bus (mengangkut data aktual),
- Control bus (mengatur siapa boleh bicara kapan, sinyal baca/tulis, interupsi, dsb.).
- Membawa data yang dibaca dari memori atau ditulis ke memori.
- Bersifat dua arah (read/write).
- Lebar (width) menentukan berapa banyak bit sekaligus bisa dipindahkan: 8, 16, 32, 64 bit, dst. Lebih lebar = throughput tinggi.
- Mengangkut sinyal seperti: Read, Write, Clock, Interrupt, Bus Request, Bus Grant, Memory/IO select.
- Koordinasi: siapa yang sedang menggunakan bus, apakah data valid, apakah operasi sedang berlangsung.
- CPU meletakkan alamat di address bus.
- Mengemisi sinyal kontrol “read”.
- Memori menyiapkan data dan menaruhnya di data bus.
- CPU membaca data.
- Clock rate: berapa banyak siklus per detik (MHz/GHz).
- Cycle per transfer: bisa satu atau lebih siklus untuk menyelesaikan transfer penuh.
- Width: berapa bit per transfer.
- Diperkenalkan pada era PC awal (IBM PC).
- Lebar awal 8-bit (4.77 MHz), lalu 16-bit (sekitar 8 MHz).
- Lambat, tanpa plug-and-play otomatis, latensi tinggi, dan berbagi interrupt secara manual.
- Contoh: kartu suara atau modem era 1990-an memakai bus ISA.
- Diperkenalkan Intel sebagai peningkatan; awalnya 32-bit pada 33 MHz, kemudian berkembang ke 64-bit dan clock lebih tinggi.
- Mendukung bus mastering: perangkat bisa meminta kontrol bus dan berkomunikasi langsung dengan memori tanpa CPU menengahi.
- Plug-and-play, auto-configuration, multiple devices bisa dihubungkan di satu bus secara terstruktur (slot)
- PCI mengurangi bottleneck dibanding ISA dengan throughput lebih tinggi dan manajemen perangkat yang lebih canggih.
- Menggantikan PCI paralel dengan serial point-to-point link.
- Setiap “lane” adalah duplex (dua arah) dan dapat digabung (x1, x4, x16) untuk bandwidth tinggi.
- Skalabilitas: tiap perangkat punya jalur dedicated, tidak bersaing dengan perangkat lain di satu bus tunggal.
- Single shared bus: semua perangkat terhubung di satu jalur fisik (typical di ISA/PCI klasik).
- Hierarchical / bridged bus: ada jembatan (bridge) antar segmen (misal PCI → PCIe bridge) untuk memperluas dan mengisolasi lalu lintas.
- Centralized arbitration: satu pengendali (arbiter) memutuskan siapa mendapat akses.
- Distributed arbitration: perangkat bernegosiasi sendiri sesuai protokol.
- Sinyal seperti Bus Request (BRQ) dan Bus Grant (BG) dipakai agar perangkat bisa minta dan mendapat hak memakai bus.
- Bus mastering memungkinkan perangkat (misal NIC, disk controller) mengendalikan bus sendiri untuk membaca/menulis memori langsung tanpa beban CPU.
- DMA adalah bentuk spesifik; perangkat minta akses, transfer data langsung ke/ dari memori, lalu memberi tahu CPU saat selesai.
- Ini meningkatkan efisiensi CPU karena tidak terjebak menunggu transfer selesai.
- Di arsitektur Intel lama, FSB menghubungkan CPU dengan memory controller (dan chipset utamanya).
- Lebar dan kecepatan FSB memengaruhi bandwidth antara CPU dan RAM.
- Digantikan di desain modern dengan integrated memory controller (misal di AMD) atau interkoneksi point-to-point (Intel QuickPath Interconnect).
- Khusus untuk CPU ↔ RAM.
- Sering kali memiliki jalur tersendiri, lebih cepat, dan teroptimasi untuk latensi rendah.
- Sinkron: transfer diikat ke clock global; semua peserta mengikuti siklus waktu yang sama.
- Asinkron: tidak bergantung clock tunggal; perangkat menandai siap dan transfer terjadi saat siap, cocok untuk sistem heterogen dan kecepatan variatif.
- Lebar & kecepatan bus (lebih banyak bit, clock lebih tinggi),
- Topologi pintar (bridge, point-to-point),
- Protokol manajemen (arbitration, cache coherency),
- Desain terpisah (NUMA, PCIe) untuk skala besar tanpa bottleneck terpusat.
Komentar
Posting Komentar