| Kandidat harus mampu: | Catatan dan panduan |
|---|---|
| Tunjukkan pemahaman tentang prosesor Reduced Instruction Set Computers (RISC) dan Complex Instruction Set Computers (CISC) | Perbedaan antara RISC dan CISC Pahami penanganan interupsi pada prosesor CISC dan RISC |
| Tunjukkan pemahaman tentang pentingnya/penggunaan pipelining dan register dalam prosesor RISC | |
| Tunjukkan pemahaman tentang empat arsitektur komputer dasar | SISD, SIMD, MISD, MIMD |
| Tunjukkan pemahaman tentang karakteristik komputer paralel masif | |
| Tunjukkan pemahaman tentang konsep mesin virtual | Berikan contoh peran mesin virtual Pahami manfaat dan keterbatasan mesin virtual |
Perangkat keras dan Mesin Virtual
Ilmu Komputer A-Level · Topik 15
15:02
RISC, Pipelines & Logika
Dua desainer chip menghadapi masalah yang sama: membuat program berjalan cepat. Satu berkata — bangun instruksi yang kuat, sehingga setiap instruksi melakukan banyak pekerjaan. Yang lain berkata — pertahankan…
Narasi bahasa Inggris · Subtitle bahasa Inggris + 中文 disematkan langsung
15.1
Prosesor RISC vs CISC
Silabus
Sumber: Silabus Cambridge International
Dua gaya desain CPU. CPU itu sendiri dicolokkan ke motherboard, papan utama yang menghubungkan prosesor, memori, dan setiap bagian komputer lainnya.


CISC
Sebuah CISC (Complex Instruction Set Computers) memiliki banyak, seringkali kompleks instruksi (satu mungkin melakukan beberapa akses memori dan operasi), dengan panjang variabel, sehingga dekodingnya rumit. CISC melakukan lebih banyak per instruksi secara hardware. Contoh: Intel x86.
RISC
Sebuah RISC (Reduced Instruction Set Computers) memiliki himpunan kecil instruksi sederhana, masing-masing melakukan satu operasi dasar, semuanya berpanjang tetap (cepat didekodifikasi). Hanya load dan store yang menyentuh memori; segalanya lainnya adalah register ke register. Program menjadi lebih panjang tetapi setiap instruksi cepat dan dapat diprediksi, yang cocok untuk pipelining. Contoh: ARM, RISC-V.
| Fitur | CISC | RISC |
|---|---|---|
| Himpunan instruksi | banyak | sedikit |
| Panjang instruksi | variabel | tetap |
| Akses memori | banyak instruksi | hanya load/store |
| Ramah pipeline | lebih sulit | alami |
| Siklus per-instruksi | bervariasi | biasanya 1 |
Komprominya adalah melakukan lebih banyak per instruksi (CISC) vs melakukan setiap instruksi lebih cepat dan lebih dapat diprediksi (RISC). Chip Intel modern menerjemahkan instruksi CISC menjadi mikro-ops RISC-like yang lebih sederhana di dalam.
"Identifikasi empat fitur prosesor RISC." Empat dari: himpunan kecil instruksi sederhana; instruksi berpanjang tetap (satu kata); sebagian besar instruksi selesai dalam satu siklus clock; banyak register general-purpose; hanya instruksi load dan store yang mengakses memori (semua aritmatika register ke register); kontrol hard-wired (tanpa mikrocode); dirancang untuk pipelining; compiler melakukan lebih banyak pekerjaan, sehingga program berisi lebih banyak instruksi dan membutuhkan lebih banyak memori. "Identifikasi empat fitur prosesor CISC." Empat dari: himpunan besar instruksi, banyak di antaranya kompleks (satu instruksi mungkin melakukan beberapa operasi); instruksi berpanjang variabel; instruksi yang memakan beberapa siklus clock; lebih sedikit register; instruksi yang dapat mengakses memori langsung; kontrol microprogrammed; kurang cocok untuk pipelining; program lebih pendek, sehingga compiler lebih sederhana dan memerlukan lebih sedikit memori. "Jelaskan apa yang dimaksud dengan RISC dan CISC" (dua nilai per poin): sebutkan singkatan dan berikan ide penentu (instruksi sederhana satu-siklus yang sedikit; instruksi kompleks multi-siklus yang banyak).
Penanganan interrupt pada kedua desain. Pada prosesor CISC, instruksi saat ini, seberapa pun kompleksnya, diselesaikan sebelum interrupt dilayani; prosesor kemudian menyimpan isi register-nya (termasuk program counter) di stack, melompat ke rutinitas penanganan interrupt, dan memulihkan register setelahnya. Pada prosesor RISC dengan pipeline, beberapa instruksi berada di tengah-tengah eksekusi saat interrupt tiba, sehingga prosesor harus baik membiarkan setiap instruksi dalam pipeline selesai, atau membuang (flush) instruksi yang dieksekusi sebagian dan memulai ulang mereka setelah interrupt; dengan cara apa pun, pipeline dikosongkan, register disimpan, dan rutinitas layanan berjalan. Frasa ujian: "pipelining membuat penanganan interrupt lebih kompleks, karena isi pipeline harus ditangani sebelum interrupt dapat dilayani".
| English | Bahasa Indonesia |
|---|---|
| motherboard/ˈmʌðəbɔːd/ | motherboard |
| CISC/sɪsk/ | CISC |
| RISC/rɪsk/ | RISC |
| register/ˈredʒɪstə/ | register |
| interrupt/ˈɪntərʌpt/ | interrupt |
| pipeline/ˈpaɪplaɪn/ | pipeline |
| clock/klɒk/ | clock |
15.1
Pipelining
Sebuah pipeline memproses instruksi dalam tahap bertumpuk, seperti jalur perakitan: Fetch → Decode → Execute (di dalam ALU) → Memory access → Write back. Setiap tahap bekerja pada instruksi yang berbeda sekaligus, jadi begitu pipeline penuh, satu instruksi selesai per siklus. Instruksi RISC berpanjang tetap dan sederhana membuat setiap tahap memakan waktu yang sama. Pipeline dapat mengalami stalling pada hazard — hazard data (instruksi membutuhkan hasil yang belum siap) atau hazard kontrol (branch membuat alamat berikutnya tidak diketahui).

Chip RISC menyimpan data di banyak register karena memori lambat dan register cepat; compiler mengalokasikan nilai ke register dengan bijak.
"Jelaskan penggunaan pipelining pada prosesor RISC" (tiga nilai). (1) Siklus fetch–execute dibagi menjadi tahap-tahap (fetch, decode, execute, akses memori, write back); (2) beberapa instruksi ada dalam pipeline sekaligus, masing-masing pada tahap yang berbeda, jadi sementara satu sedang dieksekusi, yang berikutnya sedang didekodifikasi, dan yang setelahnya sedang difetch; (3) instruksi baru dimulai, dan satu selesai, dalam setiap siklus clock begitu pipeline penuh, yang meningkatkan throughput (jumlah instruksi yang diselesaikan per detik), meskipun setiap instruksi masih memakan waktu yang sama jika berdiri sendiri. Instruksi RISC berpanjang tetap satu-siklus inilah yang membuat tahap-tahap setara dan memungkinkan pipeline.
Contoh terpecahkan. Sebuah prosesor menggunakan lima tahap pipeline (IF, ID, OF, EX, WB). Empat instruksi masuk ke pipeline satu per satu. Pada siklus mana instruksi terakhir selesai, dan berapa banyak siklus yang akan dibutuhkan keempat instruksi tersebut tanpa pipelining?
Instruksi 1 menempati IF pada siklus 1, ID pada 2, OF pada 3, EX pada 4 dan WB pada 5; instruksi 2 dimulai satu siklus kemudian dan selesai pada siklus 6; instruksi 3 pada siklus 7; instruksi 4 pada siklus 8. Secara umum $n$ instruksi melalui $k$ tahap membutuhkan $n + k - 1$ siklus, di sini $4 + 5 - 1 = 8$. Tanpa pipelining setiap instruksi memerlukan kelima siklus sebelum yang berikutnya dimulai: $4 \times 5 = 20$ siklus. Tabel ujian diisi dengan menulis setiap tahap instruksi secara diagonal, satu kolom ke kanan dari instruksi sebelumnya.
Prosesor yang berjalan dengan kecepatan ini menghasilkan banyak panas, sehingga heat-sink (penyerap panas) dan kipas diletakkan di atasnya. Sirip logam menyebarkan panas dan kipas meniupnya menjauh, menjaga CPU tetap dingin agar dapat bekerja.

Bagaimana pipelining terisi penuh
Ikuti siklus clock. Setelah pipeline penuh, instruksi baru selesai setiap siklus — meskipun masing-masing masih memerlukan beberapa tahap — karena tahap instruksi yang berbeda tumpang tindih.
| English | Bahasa Indonesia |
|---|---|
| ALU/ˌeɪ el ˈjuː/ | ALU |
| hazard/ˈhæzəd/ | hazard |
| throughput/ˈθruːpʊt/ | throughput |
| heat-sink/hiːt sɪŋk/ | pendingin panas |
| Flynn's taxonomy/flɪnz tækˈsɒnəmi/ | Taksonomi Flynn |
15.1
Taksonomi Flynn
Taksonomi Flynn mengelompokkan komputer berdasarkan jumlah aliran instruksi dan data:
- SISD — satu aliran instruksi, satu aliran data (inti tunggal tradisional).
- SIMD — satu instruksi bekerja pada banyak item data sekaligus (GPU, ekstensi vektor CPU). Sangat baik untuk gambar, video, dan array ilmiah.
- MISD — beberapa operasi pada data yang sama; jarang terjadi, sebagian besar teoritis.
- MIMD — banyak prosesor menjalankan instruksi berbeda pada data berbeda (CPU multi-inti, klaster). Yang paling umum.
Mengambarkan empat arsitektur (dua nilai per poin). SISD: satu prosesor mengeksekusi satu instruksi pada satu waktu pada satu item data; tanpa paralelisme, mesin von Neumann tradisional. SIMD: satu instruksi diterapkan secara bersamaan pada banyak item data, oleh banyak elemen pemroses yang bekerja selaras; digunakan untuk pemrosesan array dan grafis. MISD: beberapa prosesor menerapkan instruksi berbeda pada data yang sama; jarang digunakan, misalnya sistem toleran kesalahan di mana beberapa prosesor memeriksa satu aliran. MIMD: banyak prosesor, masing-masing mengeksekusi instruksinya sendiri pada datanya sendiri, secara independen; komputer multi-inti dan klaster.

Kartu grafis (dengan GPU-nya) adalah contoh nyata perangkat keras SIMD: memiliki ribuan inti kecil yang menjalankan instruksi yang sama pada banyak piksel atau angka sekaligus, itulah sebabnya GPU sangat cepat untuk gambar, video, dan pembelajaran mesin.


| English | Bahasa Indonesia |
|---|---|
| SIMD/ˈsɪmdiː/ | SIMD |
| MIMD/ˈmɪmdiː/ | MIMD |
| graphics card/ˈɡræfɪks kɑːd/ | kartu grafis |
15.1
Komputer paralel masif
Sistem paralel masif menggunakan ribuan prosesor pada jaringan cepat, masing-masing dengan memori sendiri (memori terdistribusi), menukar data melalui pesan. Ini adalah MIMD, membutuhkan perangkat lunak khusus (MPI, CUDA), dan cocok untuk simulasi iklim, pelatihan pembelajaran mesin skala besar, dan astrofisika. Superkomputer terbesar bersifat paralel masif.
"Jelaskan karakteristik komputer paralel masif (tiga nilai)." Jumlah prosesor yang sangat besar (ribuan), masing-masing dengan memorinya sendiri, terhubung oleh jaringan (interkoneksi berkecepatan tinggi atau bus) sehingga mereka dapat saling mengirim pesan; mereka bekerja secara simultan pada bagian dari masalah yang sama, sehingga masalah harus ditulis sebagai program yang dapat dibagi menjadi bagian yang berjalan paralel dan menggabungkan hasilnya. Ini adalah susunan MIMD.
Prosesor-prosesor tersebut berada dalam rak server tinggi, sering kali mengisi seluruh ruangan (sebuah pusat data), yang dirangkai agar dapat bekerja pada satu masalah besar secara bersamaan.

| English | Bahasa Indonesia |
|---|---|
| server/ˈsɜːvə/ | server |
| data centre/ˈdeɪtə ˈsentə/ | pusat data |
15.1
Mesin virtual
Mesin virtual (VM) adalah emulasi perangkat lunak dari seluruh komputer — perangkat lunak di dalamnya melihat CPU, memori, dan disk yang terlihat nyata tetapi dikelola oleh perangkat lunak host.
- mesin virtual sistem menjalankan OS lengkap. Hypervisor membuat dan mengelola VM, masing-masing membajak OS tamu sendiri. Kegunaan: menjalankan OS berbeda pada satu mesin; konsolidasi server; sandboxing (perangkat lunak berisiko berjalan terisolasi); snapshot.
- mesin virtual proses (bahasa) menjalankan satu program dalam bytecode portabel — JVM (Java), CLR (.NET), CPython. Manfaat: portabilitas ("tulis sekali, jalankan di mana saja"), pemeriksaan keamanan saat runtime, dan kompilasi tepat waktu untuk kecepatan hampir natif. Biayanya adalah lapisan tambahan dan perlunya instalasi VM.

"Jelaskan apa yang dimaksud dengan mesin virtual" (dua nilai). Simulasi perangkat lunak (implementasi) dari sistem komputer yang berjalan di komputer host dan berperilaku, bagi program yang berjalan di dalamnya, seperti komputer fisik terpisah dengan prosesor, memori, dan penyimpanan sendiri. Sistem operasi host berjalan pada perangkat keras aktual, mengelola sumber daya nyata dan (melalui hypervisor) membuat serta mengendalikan mesin virtual; setiap sistem operasi tamu berjalan di dalam mesin virtual, mengelola aplikasi di dalamnya, dan tidak menyadari bahwa perangkat kerasnya bersifat virtual.
Manfaat (beri dua). Beberapa sistem operasi berbeda dapat berjalan pada satu mesin secara bersamaan; perangkat lunak dapat diuji pada banyak sistem tanpa membeli perangkat keras; sistem komputer baru dapat disimulasikan dan dicoba sebelum dibangun; setiap VM terisolasi, sehingga keruntuhan atau malware pada satu VM tidak memengaruhi host atau VM lainnya; VM dapat disalin, dipindahkan, dan dibakukan sebagai file, dan server dapat dibagi antara banyak pengguna, mengurangi biaya perangkat keras. Keterbatasan (beri dua). VM berjalan lebih lambat daripada perangkat keras asli karena setiap instruksi melewati lapisan simulasi; VM mengonsumsi memori dan daya pemrosesan host, sehingga host harus bertenaga kuat; beberapa fitur atau perangkat keras tertentu tidak disimulasikan persis, sehingga perangkat lunak yang diuji mungkin berperilaku berbeda pada mesin asli; lisensi diperlukan untuk setiap OS tamu, dan pengaturan sistem memerlukan keahlian.
Laboratorium konsep komputasi
Klasifikasikan contoh konkret berdasarkan ide komputasi yang ditunjukkannya.
| English | Bahasa Indonesia |
|---|---|
| hypervisor/ˌhaɪpəˈvaɪzə/ | hypervisor |
| sandboxing/ˈsændbɒksɪŋ/ | sandboxing |
| bytecode/ˈbaɪtkəʊd/ | bytecode |
| just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ | kompilasi just-in-time |
| host operating system/həʊst ˈɒpəreɪtɪŋ ˈsɪstəm/ | sistem operasi host |
| guest operating system/ɡest ˈɒpəreɪtɪŋ ˈsɪstəm/ | sistem operasi tamu |
| Boolean algebra/ˈbuːlɪən ˈældʒɪbrə/ | Aljabar Boolean |
15.2
Aljabar Boolean
Silabus
| Kandidat harus mampu: | Catatan dan panduan |
|---|---|
| Buang tabel kebenaran untuk sirkuit logika termasuk half adders dan full adders | Dapat mencakup gerbang logika dengan lebih dari dua input |
| Tunjukkan pemahaman tentang flip-flop (SR, JK) | Gambar sirkuit logika dan turunkan tabel kebenaran untuk flip-flop Pahami peran flip-flop sebagai elemen penyimpanan data |
| Tunjukkan pemahaman tentang aljabar Boolean | Pahami hukum De Morgan Lakukan aljabar Boolean menggunakan hukum De Morgan Sederhanakan sirkuit/logika menggunakan aljabar Boolean |
| Tunjukkan pemahaman tentang peta Karnaugh (K-map) | Pahami manfaat penggunaan peta Karnaugh Selesaikan masalah logika menggunakan peta Karnaugh |
Sumber: Silabus Cambridge International
Aljabar Boolean menyederhanakan ekspresi Boolean, yang juga dapat dijelaskan melalui tabel kebenaran. Simbol: + untuk OR, · untuk AND (sering diabaikan), garis atas untuk NOT.
Hukum-hukum utama meliputi komutatif, asosiatif, dan distributif (seperti dalam aljabar biasa), serta:
- identitas $A + 0 = A$, $A \cdot 1 = A$; nol $A + 1 = 1$, $A \cdot 0 = 0$.
- idempoten $A + A = A$; invers $A + \overline{A} = 1$, $A \cdot \overline{A} = 0$.
- Hukum De Morgan: $(A + B)' = A' \cdot B'$; $(A \cdot B)' = A' + B'$ — negasikan seluruh ekspresi, tukar AND/OR, negasikan setiap operand.
- penyerapan: $A + AB = A$.
Penyederhanaan mengurangi jumlah suku, sehingga rangkaian logika yang dihasilkan memiliki gerbang lebih sedikit. Contoh: $Z = AB + A\overline{B} = A(B + \overline{B}) = A$.
Hukum-hukum beserta namanya (tulis nama hukum pada setiap langkah ketika diminta "tunjukkan semua pekerjaan").
| Hukum | Bentuk OR | Bentuk AND |
|---|---|---|
| identitas | $A + 0 = A$ | $A \cdot 1 = A$ |
| nol (pembatalan) | $A + 1 = 1$ | $A \cdot 0 = 0$ |
| idempoten | $A + A = A$ | $A \cdot A = A$ |
| komplemen (invers) | $A + \overline{A} = 1$ | $A \cdot \overline{A} = 0$ |
| komutatif | $A + B = B + A$ | $A \cdot B = B \cdot A$ |
| asosiatif | $A + (B + C) = (A + B) + C$ | $A(BC) = (AB)C$ |
| distributif | $A + BC = (A + B)(A + C)$ | $A(B + C) = AB + AC$ |
| penyerapan | $A + AB = A$ | $A(A + B) = A$ |
| De Morgan | $\overline{A + B} = \overline{A} \cdot \overline{B}$ | $\overline{A \cdot B} = \overline{A} + \overline{B}$ |
| negasi ganda | $\overline{\overline{A}} = A$ |
Contoh terpecahkan. Sederhanakan $X = \overline{\overline{(A \cdot B)} \cdot \overline{(A + B)}}$, tunjukkan seluruh langkah pengerjaannya.
$X = \overline{\overline{(A \cdot B)}} + \overline{\overline{(A + B)}}$ (De Morgan pada garis luar) $= A \cdot B + A + B$ (negasi ganda) $= A + B$ (penyerapan, $A + AB = A$, diterapkan dengan $A + B$ menyerap $AB$).
Contoh terpecahkan. Sederhanakan $(\overline{A + B}) \cdot (\overline{A} + B)$.
$= \overline{A} \cdot \overline{B} \cdot (\overline{A} + B)$ (De Morgan) $= \overline{A}\,\overline{B}\,\overline{A} + \overline{A}\,\overline{B}\,B$ (distributif) $= \overline{A}\,\overline{B} + 0$ (idempoten, komplemen) $= \overline{A}\,\overline{B}$.
Contoh terpecahkan. Sederhanakan $Y = \overline{A}\,\overline{B}\,\overline{C} + \overline{A}\,\overline{B}\,C + A\,\overline{B}\,C$.
$= \overline{A}\,\overline{B}(\overline{C} + C) + A\,\overline{B}\,C$ (distributif) $= \overline{A}\,\overline{B} + A\,\overline{B}\,C$ (komplemen, identitas) $= \overline{B}(\overline{A} + AC)$ (distributif) $= \overline{B}(\overline{A} + C)$, menggunakan $\overline{A} + AC = (\overline{A} + A)(\overline{A} + C) = \overline{A} + C$. Menerapkan De Morgan pada suku tiga-input bekerja dengan cara yang sama: $\overline{A + B + C} = \overline{A} \cdot \overline{B} \cdot \overline{C}$.
Jumlah-perkalian dari tabel kebenaran. Ambil setiap baris yang outputnya 1, tulis AND dari input-inputnya (variabel di-baris di mana nilainya 0), dan OR-kan suku-sukunya: sebuah baris dengan $A = 1, B = 0, C = 1$ menghasilkan $A\,\overline{B}\,C$. Ini adalah bentuk jumlah-perkalian yang diminta dalam ujian, dan merupakan titik awal baik penyederhanaan aljabar maupun peta Karnaugh.
Aljabar Boolean
A·B, A+B, Ā …
Aljabar Boolean hanyalah gerbang-gerbang ini yang ditulis sebagai ekspresi — bandingkan tabel kebenarannya.
Tabel kebenaran Boolean
Pilih operator dan input untuk membangun tabel kebenarannya — aljabar di balik sirkuit logika.
| English | Bahasa Indonesia |
|---|---|
| Boolean/ˈbuːlɪən/ | Boolean |
| truth tables/truːθ ˈteɪblz/ | tabel kebenaran |
| De Morgan's laws/də ˈmɔːɡənz lɔːz/ | hukum De Morgan |
| absorption/əbˈsɔːpʃn/ | penyerapan |
| half adder/hɑːf ˈædə/ | half adder |
15.2
Peta Karnaugh
Sebuah peta Karnaugh (K-map) menyederhanakan ekspresi Boolean dengan mengelompokkan 1s yang berdekatan dari tabel kebenaran. Kolom dan baris menggunakan urutan kode Gray (00, 01, 11, 10) sehingga sel yang berdekatan berbeda hanya pada satu variabel.
Tempatkan 1 di setiap sel di mana outputnya 1. Temukan kelompok persegi panjang dari 1s yang sisinya merupakan pangkat dari 2 (1, 2, 4, 8), melingkari tepi jika itu membentuk kelompok lebih besar. Semakin besar kelompok, semakin sederhana sukunya: kelompok 2 mengurangi satu variabel, kelompok 4 mengurangi dua, dan seterusnya — variabel yang berubah di dalam kelompok akan hilang. OR-kan suku-suku kelompok bersama-sama untuk mendapatkan ekspresi yang disederhanakan. Tutupi setiap 1 menggunakan jumlah kelompok sekecil mungkin, namun sebesar mungkin.
Contoh terpecahkan. Sebuah peta Karnaugh untuk $A$ dan $B$ memiliki 1s di sel-sel $\overline{A}B$ dan $AB$. Sederhanakan. Dua 1s tersebut berdekatan — mereka berbagi kolom $B=1$ — sehingga dikelompokkan sebagai persegi panjang 2. Di dalam kelompok itu $B$ tetap 1 sepanjang waktu sementara $A$ berubah dari 0 ke 1, dan variabel apa pun yang berubah di dalam kelompok hilang. Jadi kelompok tersebut menyisakan sekadar $X = B$. Bandingkan ini dengan jumlah perkalian yang dibaca langsung dari tabel, $\overline{A}B + AB$: sirkuit yang sama, dua gerbang lebih sedikit. Dua aturan melakukan sebagian besar pekerjaan — buatlah setiap kelompok sebesar mungkin (kelompok 2 mengurangi satu variabel, 4 mengurangi dua, 8 mengurangi tiga), dan ingatlah bahwa peta melingkari tepinya, sehingga kolom paling kiri dan paling kanan saling berdekatan. Lengkungan ini adalah pengelompokan yang paling sering dilewatkan oleh para peserta ujian.

Membangun dan membaca peta K. Berilah label kolom $AB$ dan baris $C$ (atau $CD$) dalam urutan kode Gray 00 01 11 10, sehingga sel tetangga berbeda hanya pada satu variabel. Letakkan 1 di setiap sel di mana minterm-nya muncul dalam ekspresi (atau di mana baris tabel kebenarannya outputnya 1). Kemudian gambar loop terkecil dan terbesar yang menutupi setiap 1: setiap loop harus berupa persegi panjang dari $1, 2, 4$ atau $8$ sel, loop boleh tumpang tindih, boleh melingkari melintasi tepi kiri-kanan dan atas-bawah, dan keempat sudut bersama-sama membentuk satu loop. Untuk setiap loop tulis variabel yang konstan di dalamnya (di-baris jika 0), dan OR-kan suku-suku loop: itulah jumlah-perkalian optimal. Mengapa menggunakannya? Ini memberikan ekspresi paling sederhana tanpa aljabar, dalam beberapa langkah, dengan kemungkinan kesalahan lebih sedikit, dan peta yang sama cocok untuk tiga atau empat variabel.
Contoh Terpecahkan. $Z = \overline{A}\,\overline{B}\,\overline{C} + \overline{A}\,\overline{B}\,C + \overline{A}\,B\,\overline{C} + \overline{A}\,B\,C + A\,\overline{B}\,\overline{C} + A\,\overline{B}\,C$.
Pada peta tiga variabel, 1 mengisi kolom 00, 01, dan 10 di kedua baris. Loop empat di atas kolom 00 dan 01 memiliki $A = 0$ sepanjang dan $B$, $C$ keduanya berubah-ubah: suku $\overline{A}$. Loop empat di atas kolom 00 dan 10 (melilit) memiliki $B = 0$ sepanjang: suku $\overline{B}$. Jadi $Z = \overline{A} + \overline{B}$, yang dikonfirmasi aljabar Boolean: $\overline{A}(\overline{B} + B) + \ldots = \overline{A} + \overline{B}$. Dua loop dua juga akan benar tetapi tidak optimal; sebuah loop sebesar yang diizinkan oleh 1.
Contoh terpecahkan (empat variabel). Sebuah peta hanya memiliki 1s di empat sudutnya: $\overline{A}\,\overline{B}\,\overline{C}\,\overline{D}$, $A\,\overline{B}\,\overline{C}\,\overline{D}$, $\overline{A}\,\overline{B}\,C\,\overline{D}$ dan $A\,\overline{B}\,C\,\overline{D}$. Karena baris atas dan bawah berdekatan dan demikian pula kolom-kolom luar, keempat sudut tersebut adalah satu loop empat; $B = 0$ dan $D = 0$ ada di semua darinya sementara $A$ dan $C$ bervariasi, sehingga $Z = \overline{B}\,\overline{D}$.
15.2
Half adder dan full adder
Sebuah half adder menjumlahkan dua bit tunggal $A$ dan $B$, menghasilkan penjumlahan $S$ dan carry $C$:
| A | B | S | C |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Jadi $S = A \text{ XOR } B$ dan $C = A \text{ AND } B$. Ia mengabaikan carry-in apa pun — karenanya "half".

Sebuah penjumlah penuh (full adder) menjumlahkan tiga bit ($A$, $B$, carry-in), menghasilkan jumlah dan carry-out: $S = A \text{ XOR } B \text{ XOR } C_{\text{in}}$. Penjumlah penuh dapat dibangun dari dua penjumlah setengah (half adders) ditambah gerbang OR. Menghubungkan penjumlah penuh secara berantai (di mana setiap carry-out masuk ke carry-in berikutnya) membentuk penjumlah "ripple-carry" multi-bit.

Tabel kebenaran full-adder. Dengan input $A$, $B$ dan carry-in $C_{\text{in}}$: jumlah $S$ adalah 1 ketika jumlah input ganjil adalah 1, dan carry-out adalah 1 ketika dua atau lebih input adalah 1.
| $A$ | $B$ | $C_{\text{in}}$ | $S$ | $C_{\text{out}}$ |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
Pertanyaan sirkuit dalam ujian. Diberikan sirkuit XOR dan AND yang berbagi dua input, atau dua penjumlah setengah dan gerbang OR, "lengkapi tabel kebenaran (tunjukkan cara pengerjaan)" berarti menambahkan kolom untuk setiap output gerbang perantara dan mengisi baris-barisnya secara berurutan; "sebutkan nama sirkuit" adalah penjumlah setengah atau penjumlah penuh; "sebutkan tujuan setiap output" adalah sum dari bit tersebut dan carry ke kolom berikutnya. Sum-of-products untuk penjumlah setengah: $S = \overline{A}B + A\overline{B}$, $C = AB$. Rantai penjumlah penuh, di mana setiap penjumlah meneruskan carry-out-nya ke carry-in berikutnya, menjumlahkan dua angka multi-bit.
Gerbang di dalam penjumlah
Bit jumlah half-adder adalah gerbang XOR dan carry-nya adalah gerbang AND — ubah A dan B dan lihat baris tabel kebenaran menyala.
| English | Bahasa Indonesia |
|---|---|
| sum-of-products/sʌm ɒv ˈprɒdʌkts/ | jumlah dari produk |
| carry/ˈkæri/ | carry |
| full adder/fʊl ˈædə/ | full adder |
15.2
Flip-flop
Flip-flop adalah rangkaian bistable — memiliki dua keadaan stabil (0 dan 1) — yang mengingat keadaannya. Flip-flop menyimpan satu bit dan merupakan elemen dasar register dan SRAM.
Flip-flop SR
Sebuah SR flip-flop SR memiliki input S (set) dan R (reset) serta output Q dan $\overline{Q}$. S=1,R=0 set Q ke 1; S=0,R=1 meresetnya ke 0; S=0,R=0 menahan; S=1,R=1 adalah tidak valid. Dibangun dari dua gerbang NOR yang saling terhubung silang.

"Gambarlah sirkuit logika untuk flip-flop SR dan beri label pada input." Dua gerbang NOR (atau dua gerbang NAND), output masing-masing dihubungkan kembali ke salah satu input gerbang lainnya; input bebas dari satu gerbang adalah S, dari gerbang lainnya R; outputnya adalah $Q$ dan $\overline{Q}$. Umpan balik (feedback) adalah poin penting dalam penilaian: tanpa umpan balik tidak ada memori. "Sebutkan tujuan flip-flop." Untuk menyimpan satu bit data; ini adalah elemen memori dasar tempat register dan RAM statis dibangun, dan flip-flop mempertahankan nilainya hingga diubah secara sengaja. Input tidak valid $S = R = 1$ membuat kedua output menjadi 0, sehingga $\overline{Q}$ lagi bukan komplemen dari $Q$, dan keadaan setelah kedua input kembali ke 0 adalah tidak terprediksi, yang merupakan kelemahan flip-flop SR.
Flip-flop JK
Flip-flop JK JK memperbaikinya dengan menggunakan input sebelumnya tidak valid 1,1 sebagai toggle (output berbalik). Hal ini menjadikannya ideal untuk membangun counter (rantai flip-flop toggle). Flip-flop ini biasanya dikendalikan oleh clock — input hanya bekerja pada tepi clock, menjaga sinkronisasi antar flip-flop.

Flip-flop adalah blok penyusun register (n bit = n flip-flop), counter, dan sel SRAM.
Tabel kebenaran flip-flop JK. Input clock menentukan kapan input J dan K dibaca, sehingga output hanya berubah pada pulsa clock: dengan $J = K = 0$ output dipertahankan; $J = 1, K = 0$ di-set ke $Q$ = 1; $J = 0, K = 1$ di-reset ke 0; $J = K = 1$ ditoggle (Q menjadi $\overline{Q}$). Baris terakhir adalah input terlarang SR flip-flop yang diubah menjadi fungsi berguna, itulah sebabnya JK lebih disukai: setiap kombinasi input valid, dan operasi terklok menjadikannya blok bangunan counter dan shift register.
| English | Bahasa Indonesia |
|---|---|
| flip-flop/flɪp flɒp/ | flip-flop |
| bistable/baɪˈsteɪbl/ | bistabil |
| toggle/ˈtɒɡl/ | toggle |
| counters/ˈkaʊntəz/ | counter |
| SRAM/ˈesræm/ | SRAM |
| SR flip-flop/ˌes ˈɑː flɪp flɒp/ | SR flip-flop |
| JK flip-flop/ˌdʒeɪ ˈkeɪ flɪp flɒp/ | JK flip-flop |
15.2
Definisi yang diterima oleh penguji
Soal definisi dinilai berdasarkan frasa tetap. Hafalkan ini persis, dan berikan hanya satu jawaban.
| Istilah | Definisi |
|---|---|
| RISC | prosesor dengan himpunan kecil instruksi sederhana, panjang tetap, sebagian besar dieksekusi dalam satu siklus clock, menggunakan banyak register dan pipelining |
| CISC | prosesor dengan himpunan besar instruksi kompleks, panjang variabel, banyak yang memakan beberapa siklus clock dan mengakses memori langsung |
| pipelining | membagi siklus fetch–execute menjadi tahap-tahap sehingga beberapa instruksi diproses sekaligus, masing-masing berada di tahap berbeda |
| SISD / SIMD / MISD / MIMD | satu instruksi pada satu item data; satu instruksi pada banyak item data; banyak instruksi pada satu item data; banyak instruksi pada banyak item data |
| komputer paralel masif | ribuan prosesor, masing-masing dengan memorinya sendiri, terhubung melalui jaringan dan bekerja bersamaan pada satu masalah |
| virtual machine | emulasi perangkat lunak dari sistem komputer yang berjalan di host computer dan berperilaku seperti komputer fisik terpisah |
| hypervisor | perangkat lunak yang membuat virtual machine dan berbagi hardware host di antara mereka |
| truth table | tabel yang mencantumkan setiap kombinasi input ke sirkuit logika beserta output yang dihasilkan |
| sum-of-products | ekspresi Boolean yang ditulis sebagai OR dari suku AND, satu suku untuk setiap kombinasi input yang menghasilkan 1 |
| Karnaugh map | grid output tabel kebenaran, disusun dalam urutan Gray-code, di mana loop bersebelahan dari angka 1 memberikan ekspresi yang disederhanakan |
| half adder | sirkuit yang menjumlahkan dua bit, menghasilkan sum dan carry |
| full adder | sirkuit yang menjumlahkan dua bit dan carry-in, menghasilkan sum dan carry-out |
| flip-flop | sirkuit bistabil yang menyimpan satu bit, mempertahankan outputnya hingga input mengubahnya |
| English | Bahasa Indonesia |
|---|---|
| virtual machine/ˈvɜːtʃuːəl məˈʃiːn/ | mesin virtual |
| Karnaugh map/ˈkɑːnɔː mæp/ | peta Karnaugh |
| Gray code/ɡreɪ kəʊd/ | kode Gray |
15.2
Tips ujian
- RISC dan CISC dijawab sebagai daftar fitur: simple, fixed, one cycle, many registers, load/store, pipelined berbanding complex, variable, multi-cycle, fewer registers, direct memory access, microcode. Empat poin untuk masing-masing.
- Pipelining: stages, beberapa instruksi sekaligus, satu selesai per cycle, throughput lebih tinggi; $n + k - 1$ cycles untuk $n$ instruksi melewati $k$ stages; interrupt harus mengosongkan pipeline.
- Empat kategori Flynn adalah "berapa banyak aliran instruksi" oleh "berapa banyak aliran data"; jelaskan apa yang berjalan di atas apa. Massively parallel: banyak prosesor, memori sendiri, jaringan, masalah yang sama.
- Virtual machine: emulasi komputer di atas host; host OS di atas hardware, hypervisor membaginya, guest OS di dalamnya. Dua manfaat dan dua keterbatasan, masing-masing satu kalimat penuh.
- Aljabar Boolean: sebutkan nama hukum saat menggunakannya; De Morgan menukar operator dan menegasi setiap suku; cek dengan truth table jika ragu.
- K-map: urutan Gray-code, loop terbesar 1/2/4/8, wrapping diperbolehkan, satu suku per loop dengan variabel yang tidak berubah. Jelaskan mengapa: ekspresi paling sederhana tanpa aljabar.
- Half adder menghasilkan sum dan carry; full adder juga menerima carry-in; SR flip-flop terdiri dari dua gerbang NOR/NAND yang saling menyilang dan menyimpan satu bit; JK dengan input 1,1 akan toggle.
Kesalahan umum
- Menukar daftar fitur RISC dan CISC, atau menawarkan "faster" sebagai fitur; berikan fitur desain, bukan vonis.
- Mendeskripsikan pipelining sebagai "menjalankan instruksi secara paralel pada beberapa core"; itu adalah tahap-tahap satu prosesor yang tumpang tindih.
- Membingungkan SIMD (satu instruksi, banyak data) dengan MIMD (banyak keduanya), atau mendeskripsikan MISD sebagai kasus umum.
- Mendefinisikan virtual machine sebagai "salinan komputer" tanpa kata emulasi, host, dan guest.
- Menerapkan De Morgan hanya pada bagian ekspresi di bawah garis panjang, atau menghilangkan garis tanpa menukar AND dengan OR.
- Membuat loop pada kelompok tiga, atau kelompok non-persegi panjang, dalam K-map; mengurutkan kolom 00, 01, 10, 11 bukannya kode Gray.
- Menulis carry half adder sebagai XOR dan sum sebagai AND.
- Menggambar SR flip-flop sebagai dua gerbang tanpa umpan balik, atau meninggalkan state invalid dari tabel kebenarannya.
| English | Bahasa Indonesia |
|---|---|
| massively parallel/ˈmæsɪvli ˈpærəlel/ | paralel masif |
| distributed memory/ˈdɪstrɪbjuːtɪd ˈmeməri/ | memori terdistribusi |
| machine learning/məˈʃiːn ˈlɜːnɪŋ/ | pembelajaran mesin |
| supercomputers/ˌsuːpəkəmˈpjuːtəz/ | superkomputer |
Pelajaran interaktif untuk topik ini
Kerjakan langkah demi langkah, dengan latihan pengecekan instan.