Diktat Kuliah: Arsitektur & Organisasi Mikroprosesor
Kajian menyeluruh 16 pertemuan akademik berbasis Rekayasa Sistem Komputer: membedah arsitektur internal silikon prosesor, logika bus interkoneksi, timing cycle tingkat gerbang, sistem memori tersegmentasi, interrupt controller, DMA, hingga komputasi multi-core modern.
Pengantar Mikroprosesor & Evolusi Arsitektur Komputer
Baca dari kiri ke kanan: tiap kotak memuat nama chip, tahun, dan lebar data. 8086 disorot karena menjadi dasar keluarga x86 yang masih hidup di PC modern.
π‘ Poin kunci: Tren utamanya: lebar data naik (4 β 64 bit), transistor naik dari 2.300 ke miliaran, dan ruang alamat membesar. Lebar data menentukan ukuran operand per instruksi; lebar bus alamat n bit menentukan kapasitas memori 2n byte.
π― Definisi Topik
Mikroprosesor adalah sirkuit terpadu (Integrated Circuit/IC) berskala sangat besar (VLSI/ULSI) yang mengintegrasikan seluruh fungsi Central Processing Unit (CPU) ke dalam satu keping semikonduktor silikon monolitik. Pertemuan ini mengkaji evolusi teknologi fabrikasi mikroprosesor dari era 4-bit (Intel 4004) hingga arsitektur 64-bit multi-core modern, serta hukum-hukum fisika dasar yang membatasi kinerja komputasi perangkat keras.
π Pokok Pembahasan
Sejarah dan Taksonomi Mikroprosesor, Hukum Moore & Dennard Scaling, Power Wall & Disipasi Termal, Arsitektur Von Neumann vs Harvard, Komparasi MPU vs MCU vs DSP vs SoC, serta Metrik Kinerja Prosesor (MIPS, MFLOPS, IPC, Clock Frequency).
1. Taksonomi Generasi Mikroprosesor & Skalabilitas Arsitektur
Dalam rekayasa sistem komputer, evolusi mikroprosesor ditandai oleh ekspansi lebar bus data internal/eksternal, kapasitas pengalamatan fisik, serta kerapatan integrasi transistor per milimeter persegi silikon:
| Prosesor & Tahun | Lebar Data / Alamat | Kapasitas Ruang Fisik | Jumlah Transistor & Litografi | Fitur Kunci Arsitektur |
|---|---|---|---|---|
| Intel 4004 (1971) | 4-bit / 12-bit (program) | 4 KB memori program + 640 byte RAM data | 2.300 (10 Β΅m PMOS) | Mikroprosesor komersial monolitik pertama, kalkulator desimal bus tunggal. |
| Intel 8080 (1974) | 8-bit / 16-bit | 64 Kilobyte | 6.000 (6 Β΅m NMOS) | CPU komputer mikro pertama (Altair 8800), clock 2 MHz, sistem bus 3-state. |
| Intel 8086 (1978) | 16-bit / 20-bit | 1 Megabyte | 29.000 (3 Β΅m HMOS) | Pondasi instruksi x86 CISC, segmentasi memori 16-bit, antrian instruksi 6-byte. |
| Intel 80386 (1985) | 32-bit / 32-bit | 4 Gigabyte | 275.000 (1 Β΅m CMOS) | Arsitektur 32-bit datar (IA-32), unit manajemen memori (MMU) paging, Protected Mode. |
| Intel Core / AMD64 (Modern) | 64-bit / 48β57 bit | Hingga Exabyte | Puluhan Milyar (3β7 nm FinFET/GAA) | Multi-core terintegrasi, Out-of-Order execution, AVX SIMD, branch predictor neural network. |
2. Batasan Fisika Komputasi: Hukum Moore, Dennard Scaling & Power Wall
Selama beberapa dekade, perkembangan mikroprosesor dipandu oleh dua prinsip empiris:
- Hukum Moore (Gordon Moore, 1965): Jumlah transistor pada keping silikon berlipat ganda kira-kira setiap 18 hingga 24 bulan dengan biaya produksi per transistor yang semakin murah.
- Dennard Scaling (Robert Dennard, 1974): Ketika transistor mengecil, kerapatan dayanya tetap konstan karena voltase (V) dan arus listrik (I) menurun sebanding dengan dimensi luas semikonduktor, memungkinkan frekuensi clock dinaikkan secara drastis tanpa melelehkan chip.
Sekitar tahun 2005, ketika fabrikasi semikonduktor menyentuh level sub-65 nm, voltase gerbang (Vdd) tidak bisa lagi diturunkan lebih jauh karena batas tegangan ambang batas (threshold voltage) dan arus bocor kuantum (quantum leakage current). Rumus disipasi daya dinamis CMOS:
P_{\text{dynamic}} = C \cdot V^2 \cdot f + P_{\text{static (leakage)}}
Jika frekuensi clock (f) dipaksa menembus 4β5 GHz, disipasi panas melonjak eksponensial (kerapatan daya mendekati batas kemampuan pendinginan udara konvensional sehingga chip terpaksa menurunkan frekuensi (thermal throttling)). Inilah yang disebut Power Wall. Akibatnya, industri beralih dari menaikkan clock tunggal (single-core scaling) ke perancangan Multi-core Parallelism dan akselerator spesifik (NPU/GPU).
3. Komparasi Komprehensif MPU, MCU, DSP, dan SoC
Arsitektur Internal CPU & Blok Diagram Fungsional
Kotak kiri (BIU) mengurus bus: register segmen, IP, antrian instruksi 6 byte, dan pembentuk alamat 20-bit. Kotak kanan (EU) mengeksekusi: register umum, pointer/indeks, ALU, flag, dan unit kendali. Panah ke kanan membawa instruksi dari antrian ke EU; panah balik membawa permintaan akses data.
π‘ Poin kunci: Keduanya bekerja bersamaan: BIU mengambil instruksi berikutnya selagi EU mengeksekusi yang sekarang, sehingga CPU tidak menunggu memori. Ini cikal bakal pipelining (P15).
π― Definisi Topik
Dekomposisi struktural dan fungsional internal Central Processing Unit (CPU) yang memisahkan arsitektur ke dalam Bus Interface Unit (BIU) dan Execution Unit (EU). Pembahasan mencakup perancangan unit logika aritmetika (ALU), mekanisme kontrol mikro (Control Unit), organisasi bank register internal, serta analisis kondisi batas matematis pada Flag Register 16-bit.
π Pokok Pembahasan
Pembagian Dua Unit Inti 8086 (BIU vs EU), Antrian Instruksi (Instruction Pre-fetch Queue), Struktur ALU, Control Unit (Hardwired Logic vs Microprogrammed), General Purpose Registers, Index & Pointer Registers, Segment Registers, dan Dekonstruksi 9 Bit Aktif Flag Register.
1. Pemisahan Bus Interface Unit (BIU) dan Execution Unit (EU)
Sebelum arsitektur Intel 8086 diciptakan, prosesor terdahulu harus berhenti mengambil instruksi berikutnya saat instruksi saat ini sedang dieksekusi (idle bus). 8086 mengatasi inefisiensi ini dengan membelah CPU menjadi dua subsistem independen yang bekerja paralel (pipelining primitif):
2. Organisasi Bank Register Internal Intel 8086
Mikroprosesor 8086 memiliki 14 register internal berukuran 16-bit yang dikelompokkan berdasarkan peran fungsionalnya:
- Data / General Purpose Registers:
Dapat diakses sebagai 16-bit utuh (AX, BX, CX, DX) atau dipecah menjadi dua register 8-bit independen (High dan Low byte):
AX (AH/AL) - Accumulator:Register utama untuk operasi aritmetika, perkalian/pembagian biner, input-output port I/O, serta pemanggilan nomor layanan interrupt.BX (BH/BL) - Base:Register serbaguna yang merupakan satu-satunya general-register yang dapat memegang alamat memori tidak langsung (base pointer indexing).CX (CH/CL) - Count:Pencacah otomatis loop software (LOOP) dan pergeseran bit (SHL/SHR dengan nilai CL).DX (DH/DL) - Data:Menampung kata bagian atas (MSW) hasil perkalian 32-bit, sisa bagi pembagian, dan nomor port I/O 16-bit pada instruksi IN/OUT.
- Pointer & Index Registers (16-bit Utuh):
SP (Stack Pointer):Menyimpan nilai offset puncak tumpukan memori stack saat ini (berpasangan dengan segmen SS).BP (Base Pointer):Menunjuk ke dasar frame fungsi stack untuk membaca variabel lokal dan argumen parameter fungsi.SI (Source Index):Penunjuk alamat memori sumber pada operasi transfer blok string.DI (Destination Index):Penunjuk alamat memori tujuan pada operasi transfer blok string.IP (Instruction Pointer):Menyimpan offset instruksi biner berikutnya yang akan dieksekusi (berpasangan mutlak dengan segmen CS).
- Segment Registers (16-bit Basis Segmen Memori):
CS(Code Segment),DS(Data Segment),SS(Stack Segment), danES(Extra Segment).
3. Analisis Mendalam Status Flag & Kondisi Batas Matematis
Flag register 16-bit pada 8086 memuat 9 bit aktif: 6 Status Flags (merekam hasil operasi ALU) dan 3 Control Flags (mengatur perilaku prosesor):
| Flag Bit | Nama Flag | Kondisi Logika Set (= 1) | Analisis Batas Rekayasa & Contoh Kasus |
|---|---|---|---|
| CF (Bit 0) | Carry Flag | Carry keluar dari MSB pada penjumlahan, atau Borrow pada pengurangan. | Digunakan untuk aritmetika Unsigned. Contoh: FFh + 01h = 00h (CF=1). |
| PF (Bit 2) | Parity Flag | Jumlah angka biner '1' pada 8-bit terbawah (LSB) berjumlah genap (Even). | Deteksi galat transmisi hardware. Misal: hasil 00000011b (2 angka '1', genap → PF=1). |
| AF (Bit 4) | Auxiliary Carry | Carry dari bit 3 ke bit 4 (perpindahan antar nibble). | Digunakan untuk konversi sandi desimal berkode biner BCD (instruksi DAA / DAS). |
| ZF (Bit 6) | Zero Flag | Hasil akhir seluruh bit operasi ALU bernilai nol (0000h). | Kunci penentu instruksi perbandingan: CMP AX, BX → jika AX=BX maka ZF=1. |
| SF (Bit 7) | Sign Flag | Bit paling signifikan (MSB) bernilai 1. | Menandakan bilangan bertanda bernilai negatif dalam sistem komplemen dua. |
| OF (Bit 11) | Overflow Flag | Hasil operasi bilangan bertanda (Signed) meluap melewati batas kapasitas rentang bit. | Contoh: Penjumlahan dua bilangan positif 8-bit menghasilkan bilangan negatif (+127 + 1 = -128). Rumus: OF = Cin(MSB) ⊕ Cout(MSB). |
| TF (Bit 8) | Trap Flag | Disetel oleh debugger untuk mode penelusuran langkah tunggal (Single Step). | Ketika TF=1, CPU secara otomatis membangkitkan interupsi internal Tipe 1 setelah setiap eksekusi 1 instruksi. |
| IF (Bit 9) | Interrupt Flag | CPU menanggapi sinyal interupsi hardware eksternal pada pin INTR. | Disetel via instruksi software STI (Set Interrupt, IF=1) dan dinonaktifkan via CLI (Clear Interrupt, IF=0). |
| DF (Bit 10) | Direction Flag | Menentukan arah auto-increment / auto-decrement pada instruksi pemrosesan string. | Jika DF=0 (CLD), register SI dan DI bertambah (maju). Jika DF=1 (STD), berkurang (mundur). |
Sistem Bus, Organisasi Memori & Perancangan Dekoder Alamat
CPU menaruh alamat di address bus 20 jalur (1 MB), data lewat data bus 16 bit, dan sinyal RD/WR lewat control bus. Dekoder 74LS138 mengubah bit alamat tinggi menjadi satu sinyal chip-select aktif, sehingga hanya satu perangkat (ROM, RAM, atau port) yang merespons.
π‘ Poin kunci: Tanpa dekoder, beberapa perangkat menjawab bersamaan (bus contention). Catatan: pada 8086 alamat dan data dimultipleks di AD0βAD15, jadi perlu latch yang diaktifkan sinyal ALE.
π― Definisi Topik
Kajian menyeluruh mengenai interkoneksi perangkat keras melalui sistem bus mikroprosesor, de-multiplexing jalur bus waktu terbagi (Time-Multiplexed Address/Data Bus) menggunakan Latch, konsep segmentasi memori 1 MB, perhitungan alamat fisik 20-bit, serta metodologi sintesis rangkaian dekoder alamat memori dan I/O menggunakan gerbang kombinasional dan IC Dekoder 74LS138.
π Pokok Pembahasan
Triad Bus Sistem, De-multiplexing Bus Alamat/Data (AD0βAD15 & ALE), Segmentasi Memori 8086, Translasi Segment:Offset ke Alamat Fisik 20-bit, Perancangan Dekoder Penuh vs Sebagian (Full vs Partial Address Decoding), Sintesis Chip Select (CS) IC 74LS138, Peta Memori (Memory Mapping).
1. Alasan Rekayasa De-multiplexing Bus Alamat & Data (AD0βAD15)
Mikroprosesor Intel 8086 dikemas dalam standar Dual In-Line Package (DIP) 40-pin. Untuk meminimalkan jumlah pin fisik, perancang Intel menggunakan teknik Time-Multiplexed Bus: pin 2 s.d. 16 dan pin 39 merangkap fungsi sebagai jalur alamat (A0βA15) pada awal siklus clock (T1), kemudian berganti fungsi menjadi jalur data (D0βD15) pada siklus clock berikutnya (T2, T3, T4).
Agar memori luar tidak kehilangan informasi alamat saat pin prosesor beralih fungsi menjadi data bus, diperlukan IC eksternal Octal Latch Transparan (74LS373). CPU memancarkan pulsa berlogika HIGH pada pin ALE tepat pada saat T1. Saat sinyal ALE bertransisi dari HIGH ke LOW, chip 74LS373 membekukan (latch) bit alamat A0βA15 sehingga alamat tetap stabil dan valid selama sisa siklus baca/tulis memori berlangsung.
2. Matematika Segmentasi Memori & Translasi Alamat Fisik 20-Bit
Bus alamat 8086 memiliki lebar 20-bit (A0βA19), yang mampu mengalamatkan memori fisik hingga:
2^{20}\text{ lokasi} = 1.048.576\text{ Byte} = 1\text{ Megabyte (MB)}
Karena seluruh register internal prosesor hanya berukuran 16-bit (hanya mampu menjangkau 216 = 64 KB), prosesor menggunakan skema Segmentasi Dua Tingkat:
Format Alamat Logika: SEGMEN : OFFSET (misal: 4A20h : 0150h)
Perhitungan Alamat Fisik 20-bit:
1. Alamat Segmen (16-bit) digeser ke kiri 4 bit (dikalikan 16 desimal / 10h):
4A20h << 4 = 4A200h (menjadi 20-bit, menambahkan angka 0 di posisi terendah)
2. Dijumlahkan dengan Alamat Offset (16-bit):
4A200h + 0150h = 4A350h (Alamat Fisik Absolut pada Pin Bus A0-A19)
3. Perancangan Dekoder Alamat Memori Menggunakan IC 74LS138
Dalam rekayasa sistem, memori 1 MB tidak pernah dipasang menggunakan keping tunggal, melainkan dipecah menjadi beberapa IC SRAM dan ROM. IC 74LS138 adalah dekoder 3-to-8 line yang memiliki 3 pin seleksi (A, B, C) dan 3 pin enable (G1, G2A, G2B) dengan keluaran aktif rendah (Y0βY7):
| Jalur Alamat CPU (A19, A18, A17) | Output Aktif (Yn) | Rentang Alamat Fisik 20-Bit | Alokasi Subsistem Komputer |
|---|---|---|---|
| 0 0 0 | Y0 = LOW | 00000h β 1FFFFh (128 KB) | SRAM Statis Sistem & Tabel Vektor Interupsi (IVT) |
| 0 0 1 | Y1 = LOW | 20000h β 3FFFFh (128 KB) | SRAM Tambahan Aplikasi Pengguna |
| 0 1 0 s.d. 1 1 0 | Y2βY6 | 40000h β DFFFFh (640 KB) | Ekspansi RAM Tambahan / Framebuffer Grafis |
| 1 1 1 | Y7 = LOW | E0000h β FFFFFh (128 KB) | ROM Flash BIOS (Memuat alamat eksekusi awal prosesor saat boot: FFFF0h) |
Mode Pengalamatan Data Komprehensif (Addressing Modes)
Tiga komponen opsional (base, index, displacement) dijumlahkan menjadi alamat efektif (EA), yaitu offset di dalam segmen. Lalu alamat fisik = segmen Γ 16 + EA.
π‘ Poin kunci: Contoh: DS = 2000h dan EA = 0150h menghasilkan 20000h + 0150h = 20150h. Perbedaan antar-mode pengalamatan hanyalah kombinasi komponen yang dipakai, misalnya [BX+SI+5] memakai ketiganya.
π― Definisi Topik
Kajian mendalam seluruh varian metode penentuan lokasi data operan dalam arsitektur mikroprosesor, formula perhitungan Alamat Efektif (Effective Address/EA), pemilihan pasangan segmen default dan override prefix, serta analisis dampak mode pengalamatan terhadap efisiensi ukuran byte kode mesin dan konsumsi siklus clock.
π Pokok Pembahasan
Immediate Addressing, Register Addressing, Direct Memory Addressing, Register Indirect ([BX], [BP], [SI], [DI]), Based Addressing, Indexed Addressing, Based-Indexed Addressing with Displacement, Segment Override Prefix (CS:, ES:, SS:), Perhitungan Alamat Efektif (EA).
1. Alur Perhitungan Alamat Efektif (Effective Address / EA)
Pada pengalamatan memori tidak langsung, Execution Unit (EU) menghitung Alamat Efektif (EA) 16-bit sebelum BIU mentranslasikannya ke alamat fisik 20-bit. Rumus matematis umum pembentukan EA:
EA = \begin{bmatrix} \text{BX} \\ \text{BP} \end{bmatrix} + \begin{bmatrix} \text{SI} \\ \text{DI} \end{bmatrix} + \text{Displacement (8-bit / 16-bit)}
2. Taksonomi Komprehensif Mode Pengalamatan Intel 8086
| Mode Pengalamatan | Format Sintaksis Assembly | Segmen Default | Kalkulasi Alamat Fisik 20-Bit | Aplikasi Rekayasa Sistem |
|---|---|---|---|---|
| Register | MOV AX, CX | None | Tidak ada (Operan di dalam register CPU) | Eksekusi tercepat (2 T-States), tanpa latensi bus. |
| Immediate | MOV BL, 7Fh | CS (Kode) | Konstanta menyatu di dalam kode instruksi mesin | Inisialisasi konstanta atau nilai mask register. |
| Direct | MOV AX, [2000h] | DS | (DS × 10h) + 2000h | Mengakses variabel global sederhana di memori data. |
| Register Indirect | MOV DL, [SI] | DS (atau SS jika BP) | (DS × 10h) + SI | Implementasi pointer memori dinamis bahasa C/C++. |
| Based Addressing | MOV AX, [BP + 4] | SS (Stack) | (SS × 10h) + (BP + 4) | Membaca parameter fungsi yang dikirim melalui stack. |
| Indexed Addressing | MOV CL, [DI + 10h] | DS | (DS × 10h) + (DI + 10h) | Mengakses elemen array linear (tabel[i]). |
| Based-Indexed | MOV AL, [BX + SI + 8] | DS | (DS × 10h) + (BX + SI + 8) | Mengakses elemen matriks 2-Dimensi atau tabel record data. |
; Standarnya: register BP selalu berpasangan dengan Stack Segment (SS)
MOV AX, [BP] ; Alamat Fisik = (SS * 10h) + BP
; Menggunakan Segment Override Prefix untuk memaksa membaca dari Data Segment (DS)
MOV AX, DS:[BP] ; Alamat Fisik = (DS * 10h) + BP (Menyisipkan byte prefix 3Eh)
Set Instruksi I: Manipulasi Data, Aritmetika Biner & Logika Bitwise
Operand sumber dari register masuk ke ALU, ALU menjalankan operasi (ADD, SUB, AND, SHR), hasilnya ditulis ke tujuan, dan efeknya tercatat di flag.
π‘ Poin kunci: Contoh: ADD AX,BX yang hasilnya 0 mengisi ZF = 1; hasil yang melebihi 16 bit mengisi CF = 1. MOV hanya menyalin dan tidak mengubah flag. Flag inilah yang dibaca instruksi lompatan bersyarat di P06.
π― Definisi Topik
Kajian operasional set instruksi transfer data (MOV, XCHG, LEA, PUSH, POP, IN, OUT), operasi hitung aritmetika bilangan bulat (ADD, ADC, SUB, SBB, MUL/IMUL, DIV/IDIV, NEG, CMP), serta manipulasi logika bitwise (AND, OR, XOR, NOT, TEST) dan operasi pergeseran bit (SHL, SHR, SAR, ROL, ROR, RCL, RCR) pada tingkat register mikroprosesor.
π Pokok Pembahasan
Kaidah Perpindahan Data Memori-ke-Memori (Larangan Khusus x86), Analisis Instruksi LEA vs MOV OFFSET, Aritmetika Multi-Presisi (ADC & SBB), Perbedaan MUL/DIV vs IMUL/IDIV, Logika Bit Masking Port I/O, Operasi Shifting vs Rotating bit.
1. Aturan Emas Transfer Data pada Arsitektur CISC x86
Instruksi MOV dest, src memiliki batasan perangkat keras ketat yang diatur oleh desain mikro-arsitektur CPU:
- Larangan Memory-to-Memory: Prosesor tidak dapat mengeksekusi MOV [alamat1], [alamat2] secara langsung dalam satu instruksi karena mikroprosesor tidak memiliki dua generator alamat bus simultan. Operasi harus melalui register perantara (MOV AX, [alamat2] lalu MOV [alamat1], AX).
- Larangan Segment-to-Segment: Tidak dapat memindahkan data langsung antar register segmen (MOV DS, ES ilegal).
- Larangan CS sebagai Tujuan: Nilai Code Segment (CS) tidak boleh diubah melalui MOV (MOV CS, AX ilegal) karena akan merusak konsistensi alur penunjuk program.
2. Aritmetika Multi-Presisi 32-Bit pada Mikroprosesor 16-Bit
Untuk menjumlahkan atau mengurangkan angka yang lebih besar dari lebar register fisik (misalnya angka 32-bit pada prosesor 16-bit 8086), digunakan instruksi ADC (Add with Carry) dan SBB (Subtract with Borrow):
; Angka Pertama 32-bit berada di pasangan DX:AX (DX = High Word, AX = Low Word)
; Angka Kedua 32-bit berada di pasangan CX:BX (CX = High Word, BX = Low Word)
ADD AX, BX ; 1. Jumlahkan Low-Word: AX = AX + BX (Bisa memicu Carry Flag CF=1)
ADC DX, CX ; 2. Jumlahkan High-Word beserta nilai Carry: DX = DX + CX + CF
; Hasil penjumlahan 32-bit tersimpan sempurna di pasangan DX:AX
3. Perbedaan Kritis Shifting Logika vs Aritmetika (SHR vs SAR)
Set Instruksi II: Kontrol Alur Program, Percabangan & Struktur Stack Frame
Stack tumbuh ke alamat rendah. Pemanggil mem-push parameter, lalu CALL menyimpan return address (pada near call hanya IP; gambar menampilkan CS:IP untuk far call). Fungsi kemudian PUSH BP dan MOV BP,SP sehingga BP menjadi acuan tetap, sedangkan SP bergerak mengikuti push/pop.
π‘ Poin kunci: Parameter diakses di [BP+4] dan seterusnya, variabel lokal di [BP-2] ke bawah. Saat selesai: MOV SP,BP; POP BP; RET.
π― Definisi Topik
Analisis percabangan aliran instruksi tak bersyarat (JMP Short, Near, Far), percabangan bersyarat berbasis status flag ALU, loop perangkat keras, pemanggilan subrutin fungsi (CALL, RET), serta manajemen struktur data Stack Frame berbasis register Base Pointer (BP) untuk alokasi variabel lokal dan parameter fungsi re-entrant.
π Pokok Pembahasan
JMP Intrasegment vs Intersegment, Conditional Jumps (Unsigned: JA, JB vs Signed: JG, JL), Instruksi LOOP dan LOOPNZ (Pencacah CX Otomatis), Karakteristik Memori Stack (LIFO & SP Auto-Decrement), Calling Convention, Pembentukan Stack Frame.
1. Klasifikasi Lompatan Bebas: Short, Near, dan Far Jump
- Short Jump (2-Byte Opcode): Jarak perpindahan relatif 8-bit bertanda (-128 hingga +127 byte dari posisi register IP saat ini). Sangat hemat memori kode.
- Near Jump (Intrasegment): Melompat ke lokasi offset mana pun di dalam segmen kode yang sama (±32 KB atau seluruh 64 KB ruang CS). Register CS tetap, hanya IP yang diperbarui.
- Far Jump (Intersegment): Melompat ke segmen kode yang berbeda secara absolut. Instruksi memuat 4-byte operan baru: 2 byte untuk IP baru dan 2 byte untuk CS baru (JMP 1000h:0500h).
2. Anatomi Lengkap Pembentukan Stack Frame Fungsi
Ketika sebuah fungsi dipanggil dalam bahasa tingkat tinggi (seperti C/C++), compiler membangkitkan struktur Stack Frame untuk memastikan variabel lokal tidak saling tumpang tindih saat fungsi memanggil dirinya sendiri (rekursi):
; ALUR PEMANGGIL (CALLER):
PUSH 0020h ; Masukkan Parameter ke-2 ke stack
PUSH 0010h ; Masukkan Parameter ke-1 ke stack
CALL hitung_nilai ; PUSH Return Address (IP) ke stack & lompat ke fungsi
ADD SP, 4 ; Bersihkan parameter dari stack setelah selesai (C-Calling Convention)
; STRUKTUR INTERNAL FUNGSI (CALLEE):
hitung_nilai:
PUSH BP ; 1. Simpan frame pointer milik fungsi pemanggil
MOV BP, SP ; 2. Tetapkan BP saat ini sebagai jangkar frame baru
SUB SP, 2 ; 3. Alokasikan 2 byte di stack untuk variabel lokal fungsi
; Akses data melalui pointer BP:
MOV AX, [BP + 4] ; Membaca Parameter 1 (alamat lebih tinggi di stack)
MOV BX, [BP + 6] ; Membaca Parameter 2
ADD AX, BX ; AX = Param1 + Param2
MOV [BP - 2], AX ; Simpan hasil ke variabel lokal (alamat lebih rendah)
; Epilog Pemulihan Frame:
MOV SP, BP ; Bebaskan memori variabel lokal
POP BP ; Pulihkan frame pointer lama
RET ; Ambil Return Address dari stack & kembali ke caller
Siklus Mesin, Eksekusi Instruksi & Analisis Diagram Pewaktuan
Satu siklus bus terdiri dari empat T-state. T1: alamat keluar dan ALE mengunci alamat. T2: sinyal RD atau WR aktif. T3: data dipindahkan (bila memori lambat, wait state disisipkan di sini). T4: siklus selesai dan bus bebas.
π‘ Poin kunci: Contoh hitung: clock 5 MHz berarti 1 T = 200 ns, sehingga satu siklus bus = 4 Γ 200 = 800 ns. Kecepatan akses memori dibatasi oleh siklus ini.
π― Definisi Topik
Dekomposisi pewaktuan internal eksekusi mikroprosesor dari satu siklus instruksi utuh menjadi siklus-siklus mesin dasar, analisis status denyut clock (T-States), pembacaan diagram pewaktuan (Timing Diagram) Memory Read dan Memory Write, serta perhitungan batasan akses waktu memori (Memory Access Time) untuk penentuan penyisipan Wait State via sinyal READY.
π Pokok Pembahasan
Pembangkit Clock IC 8284A, Anatomi 4 T-States Baku (T1, T2, T3, T4), Timing Diagram Siklus Baca Memori, Timing Diagram Siklus Tulis Memori, Peran Sinyal BHE & A0 untuk Bus 16-bit, Sinyal READY dan Perancangan Rangkaian Wait State (Tw).
1. Dekomposisi Siklus Mesin Dasar 4 T-States pada Intel 8086
Satu denyut periode clock CPU dinamakan T-State (T = 1 / fclock). Pada frekuensi kerja standar 5 MHz, durasi 1 T-State = 200 ns; pada 10 MHz, 1 T-State = 100 ns. Satu siklus mesin standar transfer bus membutuhkan 4 T-State:
| Status Pewaktuan | Aktivitas Sinyal Bus Alamat & Data | Aktivitas Sinyal Kontrol & Sinkronisasi |
|---|---|---|
| T1 (Address Output) | CPU meletakkan alamat memori 20-bit pada bus multiplexed AD0βAD15 dan A16βA19. Sinyal BHE aktif menentukan akses byte ganjil/genap. | Sinyal ALE berpulsa HIGH ke LOW untuk mengunci alamat ke IC latch 74LS373. Sinyal DT/R disetel sesuai arah baca/tulis. |
| T2 (Bus Turnaround) | Jalur AD0βAD15 dialihkan ke kondisi Tri-state (Float) pada siklus baca, atau mengeluarkan data tulis pada siklus tulis. | Sinyal kontrol baca (RD) atau tulis (WR) ditarik ke level LOW. Pin DEN aktif membuka buffer data bus 74LS245. |
| T3 (Data Transit & Sampling) | Data dari modul memori mulai stabil di jalur data bus. | Titik Kritis: Pada transisi sinyal clock di tengah T3, CPU membaca status pin masukan READY. Jika READY berlogika LOW, prosesor menyisipkan siklus tunggu (Tw). |
| T4 (Latch Data & Terminate) | CPU mengunci data masuk ke register internal (pada siklus baca) atau memori selesai menyimpan data (pada siklus tulis). | Sinyal kontrol RD atau WR ditarik kembali ke level HIGH. Sinyal DEN non-aktif. Siklus mesin berakhir. |
2. Organisasi Bank Memori Genap & Ganjil (Even & Odd Memory Banks)
Karena bus data 8086 berukuran 16-bit sedangkan memori fisik diorganisasi dalam satuan byte (8-bit), ruang memori 1 MB dibagi secara fisik menjadi Dua Bank Memori 512 KB:
- Even Bank (Bank Genap / Alamat A0 = 0): Terhubung ke jalur data bus bawah (D0βD7). Diaktifkan saat pin A0 = LOW.
- Odd Bank (Bank Ganjil / Alamat A0 = 1): Terhubung ke jalur data bus atas (D8βD15). Diaktifkan saat sinyal BHE (Bus High Enable) = LOW.
Jika prosesor membaca data word 16-bit pada alamat genap (misal alamat 0040h), CPU dapat mengaktifkan kedua bank sekaligus (A0 = 0 dan BHE = 0) dalam 1 siklus mesin tunggal (4 T-States).
Namun, jika data word berada pada alamat ganjil (misal alamat 0041h), CPU terpaksa melakukan Dua Siklus Mesin Berurutan (8 T-States): siklus pertama membaca byte dari bank ganjil (D8βD15), siklus kedua membaca byte berikutnya dari bank genap (D0βD7). Hal ini menyebabkan penurunan kecepatan akses memori hingga 50%!
Evaluasi Tengah Semester (UTS): Studi Kasus Desain Sistem Minimum & Tracing
π― Definisi Topik
Ujian komprehensif paruh semester pertama untuk menguji kecakapan analitis dan sintesis mahasiswa dalam merancang sistem minimum berbasis mikroprosesor, meliputi pemetaan dekoder alamat logika gerbang kombinasional, analisis timing bus, dan penelusuran (tracing) eksekusi instruksi tingkat rendah.
π Pokok Pembahasan
Kuis Analitis Desain Memori, Soal Rancang Bangun Dekoder IC 74LS138, Tracing Nilai Register dan Status 6 Flag, Analisis Diagram Pewaktuan Siklus Mesin dan Perhitungan Wait State.
Antarmuka Input/Output (I/O Interfacing): Isolated vs Memory-Mapped I/O
Kiri: ruang memori dan ruang port terpisah, diakses dengan IN/OUT, dan dibedakan oleh sinyal M/IO. Kanan: satu ruang alamat saja; port menempati sebagian alamat dan diakses dengan MOV biasa.
π‘ Poin kunci: Isolated I/O tidak memakan ruang memori tetapi butuh instruksi khusus. Memory-mapped lebih fleksibel (semua mode pengalamatan bisa dipakai) tetapi mengurangi alamat yang tersedia untuk memori.
π― Definisi Topik
Arsitektur penyambungan modul antarmuka input/output dengan bus sistem prosesor, perbandingan mendasar Isolated I/O (Port-Mapped I/O) vs Memory-Mapped I/O, isolasi bus kelistrikan menggunakan buffer tri-state (74LS244) untuk port input, register latch (74LS374) untuk port output, dan bus transceiver dua arah (74LS245).
π Pokok Pembahasan
Komparasi Isolated vs Memory-Mapped I/O, Sinyal Kendali M/IO dan Pembentukan IOR / IOW, Perancangan Port Masukan 8-bit (74LS244), Perancangan Port Keluaran 8-bit (74LS374), Buffer Bus Bidirectional 74LS245, Isolasi Optocoupler.
1. Perbandingan Teknis: Isolated I/O vs Memory-Mapped I/O
| Parameter Rekayasa | Isolated I/O (x86 Architecture) | Memory-Mapped I/O (ARM, RISC-V, AVR) |
|---|---|---|
| Pemisahan Jalur Sinyal | Pin M/IO = LOW. Membutuhkan sinyal kontrol terpisah: IOR (I/O Read) dan IOW (I/O Write). | Menyatu dengan sinyal memori standar (MEMR dan MEMW). |
| Kapasitas Ruang Port | Terbatas 64 KB ruang port terpisah (Port 0000h s.d. FFFFh). | Mengambil jatah ruang memori RAM utama (tidak mengurangi batasan instruksi). |
| Set Instruksi | Hanya dapat diakses melalui instruksi khusus: IN AL/AX, Port dan OUT Port, AL/AX. | Sangat fleksibel, dapat menggunakan seluruh instruksi aritmetika/logika (MOV, ADD, TEST, OR langsung pada register I/O). |
| Kecepatan & Decoding | Decoding alamat port lebih cepat karena hanya mendekode 8-bit (A0βA7) atau 16-bit (A0βA15). | Memerlukan dekoder alamat penuh selebar bus alamat fisik (32-bit atau 64-bit). |
2. Desain Rangkaian Hardware Port Sederhana 8-Bit
Arsitektur Sistem Interupsi (Hardware, Software & IVT)
Urutannya: perangkat mengaktifkan INTR; CPU menyelesaikan instruksi berjalan dan, bila flag IF = 1, mengirim INTA; PIC 8259 memberi nomor tipe n; CPU membaca vektor di alamat n Γ 4 pada IVT, memuat CS:IP milik ISR, menjalankannya, lalu kembali dengan IRET.
π‘ Poin kunci: Contoh: INT 21h (33 desimal) berarti vektornya di 21h Γ 4 = 0084h. Tiap vektor memakai 4 byte, sehingga IVT 256 entri menempati 1 KB terbawah memori.
π― Definisi Topik
Analisis komparatif metode transfer data Polling vs Interrupt-Driven, mekanisme pensinyalan interupsi hardware (maskable INTR dan non-maskable NMI), siklus pengenalan interupsi ganda (INTA), arsitektur Tabel Vektor Interupsi (IVT), penulisan rutin layanan interupsi (ISR), serta integrasi Pengontrol Interupsi Terprogram (PIC 8259A).
π Pokok Pembahasan
Polling vs Interrupt, Pin NMI vs INTR, Siklus Pengenalan Interupsi (INTA Cycle), Struktur Tabel IVT (00000hβ003FFh), Interupsi Dedicated (Tipe 0 s.d. 4), Penyusunan ISR & Instruksi IRET, Cascading Master-Slave PIC 8259A.
1. Siklus Pengenalan Interupsi Ganda Hardware (INTA Bus Cycles)
Ketika sebuah periferal luar meminta perhatian CPU melalui jalur maskable pin INTR (dan Flag Interupsi IF = 1), CPU merespons melalui dua siklus mesin interupsi khusus:
- Siklus INTA Pertama: CPU memancarkan pulsa LOW pada pin INTA untuk memberi tahu pengontrol interupsi eksternal (PIC 8259A) bahwa permintaannya diterima dan menginstruksikannya untuk mengunci prioritas tertinggi.
- Siklus INTA Kedua: CPU memancarkan pulsa INTA kedua. Pada saat ini, PIC meletakkan Byte Nomor Vektor Interupsi (Tipe 0 s.d. 255) ke jalur bus data bawah (D0βD7).
2. Struktur Tabel Vektor Interupsi (IVT) 1 KB Terbawah
Tabel IVT berlokasi tetap di alamat fisik 00000h hingga 003FFh (tepat 1.024 Byte). Setiap jenis interupsi dialokasikan 4 Byte yang memuat alamat awal ISR:
\text{Alamat Vektor di IVT} = \text{Tipe INT} \times 4
| Offset Alamat IVT | Nama Komponen Pointer | Keterangan Fungsi |
|---|---|---|
| Alamat + 0 | Offset Low Byte (IP-L) | Byte terendah dari alamat offset Instruction Pointer ISR. |
| Alamat + 1 | Offset High Byte (IP-H) | Byte tertinggi dari alamat offset Instruction Pointer ISR. |
| Alamat + 2 | Segment Low Byte (CS-L) | Byte terendah dari alamat segmen Code Segment ISR. |
| Alamat + 3 | Segment High Byte (CS-H) | Byte tertinggi dari alamat segmen Code Segment ISR. |
rutin_isr_keyboard:
; 1. Simpan seluruh register kerja yang dimanipulasi ke stack (Context Preservation)
PUSH AX
PUSH BX
PUSH DS
; 2. Jalankan pemrosesan pembacaan perangkat keras
IN AL, 60h ; Baca scan-code keyboard dari port I/O 60h
; ... logika pemrosesan data ...
; 3. Kirim sinyal End of Interrupt (EOI = 20h) ke PIC 8259A
MOV AL, 20h
OUT 20h, AL
; 4. Pulihkan register kerja dalam urutan terbalik LIFO
POP DS
POP BX
POP AX
; 5. Akhiri dengan IRET (Secara otomatis me-POP IP, CS, dan Flag Register dari stack)
IRET
Antarmuka Komunikasi Serial (UART, SPI, I2C)
UART tidak punya clock bersama, jadi kedua sisi harus sepakat pada baud rate. Satu frame: start bit 0, 8 bit data (LSB dulu), parity opsional, lalu stop bit 1. SPI memakai 4 jalur (SCLK, MOSI, MISO, CS), full duplex dan cepat. I2C hanya 2 jalur (SDA, SCL), tiap perangkat punya alamat, half duplex.
π‘ Poin kunci: Pilih SPI bila butuh kecepatan, I2C bila ingin sedikit kabel dengan banyak perangkat, UART untuk komunikasi titik-ke-titik sederhana.
π― Definisi Topik
Prinsip konversi data paralel-ke-serial dan serial-ke-paralel, protokol komunikasi serial asinkron UART (Universal Asynchronous Receiver/Transmitter), kalkulasi Baud Rate generator, level shifter RS-232, serta perancangan bus serial sinkron performa tinggi: Serial Peripheral Interface (SPI) dan Inter-Integrated Circuit (I2C).
π Pokok Pembahasan
Komunikasi Paralel vs Serial, Struktur Frame Data UART (Start, Parity, Stop Bit), Perhitungan Baud Rate, IC Driver MAX232, Topologi Bus SPI 4-Kawat (MOSI, MISO, SCK, CS), Topologi Bus I2C 2-Kawat (SDA, SCL), Open-Drain & Resistor Pull-Up, Deteksi Error Serial.
1. Anatomi Frame Komunikasi Serial Asinkron (UART)
Komunikasi asinkron tidak mentransmisikan sinyal clock bersama. Sebagai gantinya, sinkronisasi waktu clock penerima (RX) dikunci ulang pada setiap karakter data menggunakan Start Bit:
| Bagian Frame | Status Fisik Tegangan | Durasi (Bit Time) | Peran Rekayasa |
|---|---|---|---|
| Marking (Idle) | Level Logika HIGH (+5V TTL / -12V RS232) | Kontinu | Kondisi istirahat saat tidak ada data yang ditransmisikan. |
| Start Bit | Transisi ke LOW (0V TTL / +12V RS232) | Tepat 1 Bit Time | Memicu counter baud rate penerima untuk mulai mencuplik bit di tengah interval (titik 50% bit time). |
| Payload Data | Data biner LSB dikirim lebih dulu | 5 hingga 8 Bit | Karakter data biner murni (kode ASCII). |
| Parity Bit (Opsional) | Bisa HIGH atau LOW | 1 Bit | Pengecekan paritas (Odd/Even/None) untuk mendeteksi distorsi noise jalur. |
| Stop Bit | Kembali ke level HIGH | 1, 1.5, atau 2 Bit | Memberikan waktu pemulihan (recovery time) bagi register geser penerima. |
2. Perbandingan Arsitektural Bus Serial Sinkron: SPI vs I2C
| Karakteristik Teknis | SPI (Serial Peripheral Interface) | I2C (Inter-Integrated Circuit) |
|---|---|---|
| Jalur Sinyal Fisik | 4 Jalur: MOSI, MISO, SCLK, SS (Chip Select). | Hanya 2 Jalur: SDA (Serial Data) dan SCL (Serial Clock). |
| Mode Komunikasi | Full Duplex (Kirim & terima simultan bersamaan). | Half Duplex (Kirim dan terima bergantian arah). |
| Struktur Rangkaian Pin | Push-Pull CMOS (Sinyal tajam, tanpa resistor eksternal). | Open-Drain / Open-Collector (Wajib resistor Pull-Up eksternal). |
| Metode Seleksi Perangkat | Hardware: Membutuhkan 1 pin CS terpisah untuk setiap perangkat slave. | Software: Pengalamatan paket header 7-bit / 10-bit melalui jalur data SDA. |
| Kecepatan Maksimum | Sangat tinggi (10 MHz s.d. 80+ MHz). | 100 kHz (Standard), 400 kHz (Fast), 3.4 MHz (High-Speed). |
Komparasi Arsitektur RISC vs CISC & Arsitektur Prosesor Modern (x86 vs ARM)
RISC: instruksi sederhana berpanjang tetap, arsitektur load/store, banyak register, hemat daya, dan mudah di-pipeline. CISC: instruksi kompleks berpanjang variabel, operand boleh langsung dari memori, kode lebih padat.
π‘ Poin kunci: x86 modern menerjemahkan instruksi CISC menjadi micro-op bergaya RISC di dalam inti, sedangkan ARM tetap RISC. Jadi kedua pendekatan saling mendekat.
π― Definisi Topik
Komparasi filosofi perancangan arsitektur mikroprosesor: Reduced Instruction Set Computer (RISC) vs Complex Instruction Set Computer (CISC), analisis tren mikroprosesor modern berdaya rendah (ARM Cortex), arsitektur x86-64 server, penerjemahan internal CISC ke Micro-operations (Β΅ops), serta perkembangan arsitektur terbuka bebas lisensi RISC-V.
π Pokok Pembahasan
Filosofi Desain RISC vs CISC, Arsitektur Load-Store, Panjang Instruksi Tetap vs Variabel, Frontend CISC Decoder ke Internal Β΅ops Backend, Arsitektur ARMv8/v9 AArch64, Arsitektur Big.LITTLE Heterogeneous, Arsitektur Terbuka RISC-V ISA.
1. Matriks Komparasi Filosofis: RISC vs CISC
| Parameter Desain | CISC (Complex Instruction Set Computer) | RISC (Reduced Instruction Set Computer) |
|---|---|---|
| Tujuan Desain Utama | Meminimalkan jumlah instruksi per program dengan menyediakan instruksi kompleks langsung di tingkat hardware. | Menyederhanakan instruksi agar dapat dieksekusi dalam 1 siklus clock; mengandalkan compiler pintar untuk optimasi. |
| Panjang Format Instruksi | Bervariasi (Variable Length, 1 hingga 15 Byte pada Intel x86). Sulit didekode secara paralel. | Tetap dan seragam (Fixed Length, 32-bit pada ARM/RISC-V). Sangat mudah didekode secara paralel. |
| Akses Memori Operan | Instruksi komputasi dapat langsung membaca/menulis memori (misal: ADD [BX], AX). | Load-Store Architecture murni: Operasi matematika hanya boleh antar register. Akses memori hanya via LDR / STR. |
| Jumlah Register Fisik | Sedikit (8 register pada x86-16, 16 register pada x86-64). | Banyak (32 register serbaguna pada ARM64 dan RISC-V). |
| Efisiensi Daya / Watt | Relatif boros daya karena sirkuit dekoder x86 yang sangat kompleks. | Sangat efisien daya; mendominasi 99% smartphone dan perangkat embedded di dunia. |
2. Solusi Konvergensi Modern: x86 Sebagai Hibrida CISC-RISC
Prosesor desktop modern (Intel Core i9 dan AMD Ryzen) sesungguhnya adalah prosesor hibrida yang memadukan kedua dunia:
- Frontend CISC: Menerima instruksi x86 legacy yang panjangnya bervariasi demi menjaga kompatibilitas aplikasi lama (backward compatibility). Dekoder perangkat keras memecah setiap instruksi x86 yang rumit menjadi beberapa potongan instruksi sederhana bernama Micro-operations (μops).
- Backend RISC: Inti eksekusi bagian dalam menjalankan μops tersebut menggunakan pipa eksekusi bergaya RISC super cepat yang dilengkapi Out-of-Order Engine, Register Renaming (RAT), dan ALU paralel multi-issue.
Programmable Peripheral Interface (PPI 8255) & Timer/Counter (8254)
CPU mengakses kedua chip lewat bus. 8255 menyediakan tiga port 8-bit (A, B, C) yang mode kerjanya diatur oleh control word, untuk menyambung LED, saklar, atau sensor. 8254 berisi tiga pencacah 16-bit dengan pin GATE dan OUT untuk delay, penghitung, atau pembangkit gelombang.
π‘ Poin kunci: Seperti P03, keduanya dipilih lewat dekoder alamat sehingga CPU melihatnya sebagai alamat port tertentu.
π― Definisi Topik
Arsitektur dan pemrograman periferal paralel serbaguna IC Intel 8255 PPI (Programmable Peripheral Interface) untuk interfacing digital, perancangan Control Word Register (Mode 0, Mode 1 Strobed, Mode 2 Bi-directional, dan BSR), serta arsitektur pencacah/pewaktu terprogram IC Intel 8254 PIT untuk pembangkitan denyut clock, pulsa monostable, dan modulasi frekuensi.
π Pokok Pembahasan
Arsitektur Internal 8255 (Port A, B, C-Upper, C-Lower), Format Byte Control Word I/O Mode, Mode Bit Set/Reset (BSR), Interfacing Keypad Matriks & Seven Segment Display, Arsitektur 3 Counter 16-bit 8254, 6 Mode Operasi PIT (Mode 0 s.d. Mode 5), Pembangkit Gelombang Kotak.
1. Format Control Word Register IC 8255 PPI
IC 8255 menyediakan 24 pin I/O terprogram. Register kontrol (Control Word) dikonfigurasi melalui instruksi OUT pada alamat Port Kontrol:
| Bit | Fungsi Konfigurasi | Nilai 1 | Nilai 0 |
|---|---|---|---|
| D7 | Mode Definition Flag | 1 = I/O Mode (Konfigurasi Port) | 0 = Bit Set/Reset (BSR Mode untuk Port C) |
| D6, D5 | Mode Grup A (Port A & Port C-Upper) | 00 = Mode 0 (Basic I/O) | 01 = Mode 1 (Strobed) | 1X = Mode 2 (Bi-directional) |
|
| D4 | Arah Port A | 1 = Input | 0 = Output |
| D3 | Arah Port C Upper (PC7βPC4) | 1 = Input | 0 = Output |
| D2 | Mode Grup B (Port B & Port C-Lower) | 1 = Mode 1 (Strobed I/O) | 0 = Mode 0 (Basic I/O) |
| D1 | Arah Port B | 1 = Input | 0 = Output |
| D0 | Arah Port C Lower (PC3βPC0) | 1 = Input | 0 = Output |
2. Programmable Interval Timer (IC 8254)
IC 8254 memiliki tiga counter independen 16-bit (Counter 0, 1, 2) yang dapat mencacah hingga frekuensi clock masukan 10 MHz. Rumus pembangkitan frekuensi pada Mode 3 (Square Wave Generator):
f_{\text{out}} = \frac{f_{\text{clk\_in}}}{\text{Divisor Count (N)}}
; Asumsi CLK0 = 1.193180 MHz (Standar PC Timer). Target frekuensi = 1.000 Hz
; Divisor N = 1.193.180 / 1.000 = 1193 desimal = 04A9h
; 1. Kirim Control Word ke Port 43h:
; Bit: SC1=0, SC0=0 (Counter 0) | RW1=1, RW0=1 (LSB then MSB) | M2=0, M1=1, M0=1 (Mode 3) | BCD=0 (Binary)
; Biner: 00110110b = 36h
MOV AL, 36h
OUT 43h, AL
; 2. Tulis Nilai Divisor 16-bit ke Counter 0 (Port 40h):
MOV AL, 0A9h ; Kirim LSB terlebih dahulu
OUT 40h, AL
MOV AL, 04h ; Kirim MSB berikutnya
OUT 40h, AL ; Pin OUT0 sekarang berosilasi tepat 1.000 Hz
Direct Memory Access (DMA) & Pengontrol DMA (IC 8237)
Perangkat meminta layanan lewat DREQ ke DMAC. DMAC mengirim HOLD ke CPU; CPU menyelesaikan siklus bus dan membalas HLDA, lalu DMAC memegang bus dan memindahkan data langsung antara perangkat dan memori. Setelah selesai, bus dikembalikan ke CPU.
π‘ Poin kunci: Keuntungannya: CPU bebas mengerjakan hal lain dan throughput tinggi untuk blok data besar, dibanding CPU menyalin data satu per satu.
π― Definisi Topik
Mekanisme transfer data berkecepatan tinggi antara perangkat periferal I/O massal (Hard Drive, SSD, Network Controller, Sound Card) langsung menuju memori utama (RAM) tanpa membebani instruksi CPU melalui kontroler Direct Memory Access (DMA), analisis protokol perebutan bus (Bus Arbitration), dan konfigurasi IC Intel 8237 DMA Controller.
π Pokok Pembahasan
Kelemahan Programmed I/O vs DMA, Siklus Handshake Bus HOLD & HLDA, Arsitektur 4 Saluran DMA 8237, Mode Transfer (Single, Block, Demand, Cascade), Metode Transfer Fly-By, Perhitungan Throughput Bandwidth Bus.
1. Alur Protokol Perebutan Bus (Bus Arbitration: HOLD & HLDA)
Selama operasi normal, CPU adalah satu-satunya penguasa mutlak (Bus Master). Ketika transfer DMA berlangsung, kontroler DMA mengambil alih kepemilikan bus melalui jabat tangan sinyal (handshake):
- Periferal masukan/keluaran memicu pin DREQ (DMA Request) pada IC 8237.
- IC 8237 menarik pin HOLD pada CPU ke level HIGH, meminta CPU melepas kendali bus.
- CPU menyelesaikan siklus mesinnya, mengalihkan seluruh bus alamat, data, dan kontrol ke status Tri-state, lalu membalas dengan sinyal HLDA (Hold Acknowledge) = HIGH.
- IC 8237 menjadi Bus Master: memancarkan sinyal DACK (DMA Acknowledge) ke periferal, mengeluarkan alamat memori tujuan, dan mengaktifkan transfer.
2. Keunggulan Metode Transfer Fly-By DMA
Pada metode Programmed I/O biasa, transfer 1 byte membutuhkan instruksi IN AL, DX (4 T-states) dan MOV [DI], AL (9 T-states), total 13 s.d. 17 T-States per byte.
Pada transfer Fly-By DMA, kontroler DMA mengaktifkan sinyal kontrol baca I/O (IOR) dan sinyal tulis memori (MEMW) secara bersamaan dalam siklus clock yang sama. Data mengalir langsung dari periferal ke sel RAM melalui bus data tanpa mampir ke register perantara mana pun, memakan waktu hanya 2 s.d. 4 T-States per byte (peningkatan kecepatan hingga 400%!).
3. Empat Mode Transfer Operasional IC 8237
- Single Transfer Mode: DMA mentransfer 1 byte data, melepas sinyal HOLD kembali ke CPU agar CPU dapat memproses instruksi, lalu meminta bus kembali untuk byte berikutnya. Mencegah CPU "kelaparan" (CPU starvation).
- Block Transfer Mode: Sekali memperoleh bus, DMA mentransfer seluruh blok data (hingga 64 KB per channel) secara terus-menerus sampai Terminal Count (TC) tercapai sebelum mengembalikan bus ke CPU.
- Demand Transfer Mode: Data ditransfer terus-menerus selama perangkat periferal mempertahankan sinyal DREQ aktif.
- Cascade Mode: Menghubungkan beberapa chip 8237 secara hierarkis (Master-Slave) untuk menambah jumlah saluran DMA dari 4 menjadi 7 saluran (standar arsitektur IBM PC/AT).
Arsitektur Mikroprosesor Lanjut: Pipelining, Superscalar & Multi-Core
Baris I1βI3 adalah instruksi, sumbu mendatar adalah waktu. Tiap instruksi melewati IF, ID, EX, MEM, WB. Begitu I1 pindah ke ID, I2 sudah mulai IF, dan seterusnya sehingga tahap-tahap saling tumpang tindih.
π‘ Poin kunci: Setelah pipeline terisi, satu instruksi selesai tiap siklus (CPI ideal β 1). Latensi satu instruksi tetap 5 siklus; yang meningkat adalah throughput. Hazard dapat menunda aliran ini.
π― Definisi Topik
Teknik akselerasi performa komputasi perangkat keras modern: eksekusi pipelining paralel, deteksi dan mitigasi tiga jenis pipeline hazard, prosesor superscalar multi-issue, eksekusi di luar urutan (Out-of-Order Execution / OoO), hierarki memori cache multi-level, serta protokol koherensi cache pada arsitektur prosesor multi-core.
π Pokok Pembahasan
Pipelining Klasik 5-Tahap (IF, ID, EX, MEM, WB), Tiga Jenis Hazard (Structural, Data, Control), Teknik Data Forwarding, Dynamic Branch Prediction, Superscalar Multi-Execution Units, Register Renaming, Hierarki Cache (L1, L2, L3), Protokol Koherensi MESI.
1. Pipelining 5-Tahap Klasik & Analisis Throughput
Pipelining memecah siklus instruksi menjadi 5 tahapan sekuensial yang dibatasi oleh register penyangga (pipeline registers):
- IF (Instruction Fetch): Mengambil instruksi 32-bit dari L1 Instruction Cache.
- ID (Instruction Decode & Register Read): Menerjemahkan opcode dan membaca nilai operan register.
- EX (Execute / ALU Operation): Menghitung hasil aritmetika/logika atau kalkulasi alamat memori efektif.
- MEM (Memory Access): Membaca data dari atau menulis data ke L1 Data Cache.
- WB (Write Back): Menuliskan hasil akhir komputasi kembali ke register tujuan.
Jika tanpa pipelining, 5 instruksi membutuhkan 5 × 5 = 25 siklus clock. Dengan pipelining penuh, 5 instruksi selesai dalam 9 siklus clock, dan setelah pipeline terisi penuh, throughput ideal mencapai 1 instruksi per siklus (IPC = 1).
2. Deteksi & Mitigasi Tiga Jenis Pipeline Hazard
| Klasifikasi Hazard | Penyebab Konflik Hardware | Solusi Rekayasa Komputer |
|---|---|---|
| Structural Hazard | Dua instruksi berbeda membutuhkan unit hardware yang sama di siklus yang sama (misal: tahap IF dan MEM berebut port cache memori tunggal). | Pemisahan Cache (Harvard Split): Memisahkan L1 Cache menjadi L1-Instruction Cache dan L1-Data Cache secara independen. |
| Data Hazard (RAW - Read After Write) | Instruksi kedua membaca register yang nilainya sedang dihitung oleh instruksi pertama tetapi belum ditulis kembali pada tahap WB. | Data Forwarding (Bypassing): Menarik jalur konduktor langsung dari output ALU tahap EX ke input ALU instruksi berikutnya tanpa menunggu tahap WB selesai. |
| Control Hazard (Branch Hazard) | Instruksi percabangan bersyarat (misal: JNZ) belum menentukan arah lompatan pada tahap ID, sehingga CPU ragu instruksi mana yang harus di-fetch. | Branch Prediction & Speculative Execution: Menggunakan tabel 2-bit saturating counter untuk memprediksi arah lompatan. Jika prediksi meleset (misprediction), pipeline dikosongkan (Pipeline Flush) dengan penalti clock. |
3. Koherensi Cache Multi-Core & Protokol MESI
Ketika beberapa inti CPU (Core 0, Core 1) memiliki salinan cache L1 masing-masing untuk alamat RAM yang sama, modifikasi data oleh salah satu core dapat menyebabkan inkonsistensi data (Stale Data). Protokol MESI mengunci status setiap blok cache ke dalam 4 keadaan:
- M (Modified): Blok data di cache telah dimodifikasi (kotor/dirty) dan berbeda dengan RAM utama. Hanya ada di satu core.
- E (Exclusive): Blok data di cache bersih (identik dengan RAM) dan hanya disimpan di satu core tersebut.
- S (Shared): Blok data bersih dan disalin bersamaan di beberapa cache core lain (hanya untuk dibaca).
- I (Invalid): Salinan blok data di cache core ini sudah kedaluwarsa karena core lain telah menulis data baru ke alamat tersebut.
Evaluasi Akhir Semester (UAS): Sintesis Perancangan Sistem Berbasis Mikroprosesor
π― Definisi Topik
Ujian akhir semester dan presentasi proyek rekayasa komprehensif: sintesis perancangan arsitektur sistem minimum mikroprosesor terintegrasi yang memadukan CPU, subsistem memori primer (SRAM dan ROM), dekoder alamat logika penuh, pengontrol interupsi hardware, antarmuka I/O paralel (PPI 8255), pewaktu (PIT 8254), dan subsistem komunikasi serial.
π Pokok Pembahasan
Ujian Analisis Teori Komprehensif Sistem Komputer, Perancangan Skematik Sistem Minimum Lengkap, Peta Memori dan Port I/O Bebas Konflik Alamat, Penulisan Kode Driver Inisialisasi Firmware Low-Level, Pengujian Sistem.
Evaluasi akhir semester menuntut mahasiswa untuk mengintegrasikan seluruh materi perkuliahan ke dalam sebuah dokumen perancangan sistem nyata (Engineering Design Document):
| Domain Kompetensi Rekayasa | Bobot | Kriteria Capaian Teknis yang Dinilai |
|---|---|---|
| Sintesis Peta Memori & Dekoder | 25% | Ketepatan skema rangkaian dekoder alamat (IC 74LS138 + gerbang logika) dalam memetakan 256 KB SRAM, 128 KB Flash ROM, dan register periferal tanpa ada celah tumpang tindih (No Address Collisions). |
| Integrasi Antarmuka Bus Periferal | 25% | Ketepatan koneksi jalur data multiplexed/demultiplexed, sinyal kontrol (MEMR, MEMW, IOR, IOW), serta rangkaian generator Wait State pada periferal berkecepatan rendah. |
| Implementasi Driver Interupsi | 25% | Penulisan rutin layanan interupsi (ISR) yang aman terhadap preservasi konteks register stack, inisialisasi tabel IVT yang benar, dan sinyal EOI penutup. |
| Ujian Penguasaan Arsitektur Modern | 25% | Kemampuan analitis dalam memecahkan persoalan mitigasi pipeline hazard, throughput transfer DMA, koherensi cache multi-core, serta komparasi arsitektur x86 vs ARM. |
ποΈ Slide Kuliah (RPS Mikroprosesor & Mikrokontroler)
Slide 16 pertemuan (RSK-2104) dalam bentuk teks. Buka tiap pertemuan, lalu geser slide dengan tombol. Urutan pertemuan diktat di atas sudah disejajarkan dengan RPS; pertemuan 7, 14, dan 15 memakai materi pendalaman karena topiknya berbeda (lihat catatan pada pertemuan tersebut).
Pertemuan 01 β Pengantar Sistem Komputer dan Mikroprosesor (20 slide)
Pengantar Sistem Komputer dan Mikroprosesor
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Menjelaskan peran CPU, memori, dan I/O
- Menguraikan perkembangan teknologi prosesor
- Menjelaskan stored program dan membedakan instruksi dari data
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Sistem komputer
- Perangkat keras menyediakan komponen fisik.
- Program menentukan operasi dan urutannya.
Peran mikroprosesor
- Mikroprosesor mengintegrasikan fungsi pemrosesan CPU dalam chip.
- Sistem lengkap juga membutuhkan memori dan antarmuka I/O.
CPU, RAM, dan I/O
- CPU menjalankan instruksi.
- RAM menampung program dan data kerja, I/O menerima dan mengirim informasi.
RAM dan penyimpanan
- RAM utama umumnya volatil.
- SSD atau media penyimpanan mempertahankan berkas tanpa daya.
Perkembangan komponen
- Tabung vakum digantikan transistor untuk banyak fungsi elektronik.
- IC mengintegrasikan banyak komponen dalam satu chip.
Perkembangan prosesor
- Mikroprosesor mengintegrasikan fungsi CPU.
- Cache dan beberapa inti membantu kinerja pada beban yang sesuai.
Stored program
- Instruksi tersimpan dalam memori.
- CPU mengambil instruksi dan menjalankannya secara terurut atau melalui percabangan.
Instruksi dan data
- Data adalah nilai yang diolah.
- Instruksi menyatakan operasi terhadap nilai tersebut.
Peta perkuliahan
- RSK-2104: semester IV, 3 SKS, terdiri dari 2 SKS teori dan 1 SKS praktikum.
- Materi bergerak dari arsitektur ke Assembly, I/O, dan sistem tertanam.
Penilaian sesuai RPS
- Partisipasi/tugas 15%, praktikum/laporan 25%, proyek 20%.
- UTS 20% dan UAS 20%, total 100%.
Demonstrasi 1/4: Input angka
Pengguna memasukkan dua angka melalui keyboard atau tombol.
Input angka
Progres demonstrasi
A=7, B=5
Animasi bergerak: buka animasi/index.html, pilih pertemuan 01.
Demonstrasi 2/4: Instruksi tersedia
Program penjumlahan dan nilai kerja berada di memori.
Input angka
Progres demonstrasi
Program: jumlahkan A dan B
Animasi bergerak: buka animasi/index.html, pilih pertemuan 01.
Demonstrasi 3/4: Pemrosesan
CPU menjalankan operasi penjumlahan terhadap operand.
Input angka
Progres demonstrasi
7 + 5 = 12
Animasi bergerak: buka animasi/index.html, pilih pertemuan 01.
Demonstrasi 4/4: Output hasil
Sistem menampilkan nilai yang dihitung melalui perangkat output.
Input angka
Progres demonstrasi
Layar: 12
Animasi bergerak: buka animasi/index.html, pilih pertemuan 01.
Aktivitas kelas / praktikum
- Pilih satu perangkat sehari-hari.
- Tuliskan input, proses, memori, dan outputnya.
- Jelaskan program apa yang mengatur perilakunya.
Cek pemahaman
- Apa perbedaan instruksi dan data?
- Mengapa CPU membutuhkan memori?
- Apa makna stored program?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- Instruksi menyatakan operasi, data adalah nilai operand atau hasil.
- Memori menampung instruksi dan data yang akan digunakan.
- Program tersimpan dalam memori untuk diambil dan dijalankan CPU.
Inti pertemuan
CPU menjalankan instruksi.
RAM menyimpan data kerja, I/O menghubungkan sistem dengan perangkat luar.
Stored program memberi fleksibilitas melalui perubahan program.
Catatan pengajar dan referensi
Mulai dari perangkat yang dikenal mahasiswa. Gunakan kalkulator untuk membedakan data,
instruksi, dan hasil. Pertemuan berikutnya membahas organisasi internal CPU.
Acuan cakupan: RPS pengguna, minggu 1.
Microchip, AVR CPU Core
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8-bit-avr/structure/core/
Microchip, AVR Memory
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8-bit-avr/structure/memory/
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 02 β Arsitektur Internal Mikroprosesor (20 slide)
Arsitektur Internal Mikroprosesor
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Membedakan Von Neumann dan Harvard
- Menjelaskan kerja ALU dan Control Unit
- Membedakan general purpose dan special purpose register
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Organisasi CPU
- Control Unit mengatur pelaksanaan instruksi.
- ALU mengolah operand yang tersedia dalam register.
Von Neumann
- Instruksi dan data berbagi ruang memori.
- Pada model klasik, akses keduanya memakai jalur bersama.
Harvard
- Memori instruksi dan data terpisah.
- Jalur yang terpisah memungkinkan akses bersamaan.
Modified Harvard
- Cache instruksi dan data dapat terpisah.
- Memori utama tetap dapat memakai ruang atau jalur bersama.
ALU
- ALU menjalankan penjumlahan, pengurangan, dan logika bit.
- Operasi yang tersedia bergantung set instruksi.
Control Unit
- CU mendekode instruksi dan memilih operasi.
- Sinyal kontrol mengatur pembacaan serta penulisan nilai.
General purpose register
- GPR menampung operand dan hasil antara.
- Sebagian register dapat menyimpan alamat sesuai ISA.
Program Counter dan IR
- PC menyediakan informasi alamat untuk alur instruksi.
- IR menampung instruksi pada model CPU sederhana.
Stack Pointer
- SP menandai posisi stack sesuai aturan arsitektur.
- Stack mendukung penyimpanan sementara dan pemanggilan fungsi.
Status dan flags
- Flag dapat mencatat hasil nol, carry, tanda, atau overflow.
- Flag dan aturan pembaruannya mengikuti ISA.
Demonstrasi 1/4: Operand awal
Register menyediakan dua operand untuk contoh didaktik.
Operand awal
Progres demonstrasi
R0=7, R1=5, R2=0
Animasi bergerak: buka animasi/index.html, pilih pertemuan 02.
Demonstrasi 2/4: Dekode ADD
CU memilih operasi tambah dan register tujuan.
Operand awal
Progres demonstrasi
ADD R2, R0, R1
Animasi bergerak: buka animasi/index.html, pilih pertemuan 02.
Demonstrasi 3/4: Operasi ALU
ALU menghasilkan jumlah kedua operand.
Operand awal
Progres demonstrasi
Hasil sementara=12
Animasi bergerak: buka animasi/index.html, pilih pertemuan 02.
Demonstrasi 4/4: Penulisan hasil
CU mengatur hasil agar masuk ke register tujuan.
Operand awal
Progres demonstrasi
R2=12
Animasi bergerak: buka animasi/index.html, pilih pertemuan 02.
Aktivitas kelas / praktikum
- Gambarkan CU, register, dan ALU.
- Telusuri instruksi konseptual R2 = R0 - R1 dengan R0=9 dan R1=3.
- Jelaskan perbedaan GPR dan PC.
Cek pemahaman
- Apa pembeda utama Harvard dan Von Neumann?
- Siapa menghitung hasil ADD?
- Mengapa carry dan overflow signed berbeda?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- Organisasi memori serta jalur instruksi dan data.
- ALU menghitung, CU mengatur pelaksanaannya.
- Carry menunjukkan luapan unsigned, overflow signed menunjukkan hasil di luar rentang bertanda.
Inti pertemuan
Von Neumann dan Harvard mengatur akses memori dengan cara berbeda.
ALU menghitung, CU mengatur, register menyimpan.
Register khusus mengelola keadaan dan alur CPU.
Catatan pengajar dan referensi
Tekankan model konseptual dan variasi ISA. PC yang terlihat software dapat memiliki semantik
khusus. Lanjutkan ke bus dan memori pada pertemuan 3.
Acuan cakupan: RPS pengguna, minggu 2.
Arm, Developer Suite Developer Guide
https://documentation-service.arm.com/static/5e9578fe8259fe2368e2c274
Microchip, AVR CPU Core
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8-bit-avr/structure/core/
Microchip, General Purpose Registers
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8-bit-avr/structure/gpr/
Microchip, Status Register
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8-bit-avr/structure/status/
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 03 β Sistem Bus dan Memori (20 slide)
Sistem Bus dan Memori
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Membedakan data, address, dan control bus
- Menghitung ruang alamat serta rentang memori
- Menelusuri fetch, decode, dan execute
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Struktur sistem bus
- Bus menghubungkan CPU, memori, dan perangkat I/O.
- Model klasik memisahkan data, alamat, dan kontrol.
Data bus
- Data bus membawa nilai yang dibaca atau ditulis.
- Lebarnya memengaruhi jumlah bit yang dapat ditransfer per akses sederhana.
Address bus
- Address bus menentukan lokasi tujuan transaksi.
- CPU sebagai pengendali bus menempatkan alamat ke perangkat.
Lebar alamat
- n bit alamat menyediakan paling banyak 2^n kombinasi.
- Jumlah byte bergantung satuan pengalamatan.
Control bus
- Kontrol menyatakan operasi dan mengoordinasikan transaksi.
- Contoh sinyal: read, write, clock, ready, dan interrupt.
Transaksi baca
- CPU memberikan alamat dan permintaan baca.
- Perangkat mengembalikan data saat waktu akses terpenuhi.
Transaksi tulis
- CPU menyediakan alamat dan data.
- Kontrol tulis menentukan kapan perangkat menyimpan nilai.
Memory mapping
- Rentang alamat dialokasikan ke memori atau register periferal.
- Peta memori menunjukkan batas dan fungsi setiap wilayah.
Ukuran dan batas wilayah
- Ukuran = alamat akhir - alamat awal + 1.
- Hindari wilayah bertumpang tindih tanpa mekanisme yang dirancang.
Siklus instruksi dan siklus bus
- Fetch mengambil instruksi, decode mengenali, execute menjalankan.
- Satu instruksi dapat memerlukan beberapa transaksi bus.
Demonstrasi 1/4: Alamat fetch
CPU menyiapkan alamat instruksi contoh.
PC
PC=0x1000
Animasi bergerak: buka animasi/index.html, pilih pertemuan 03.
Demonstrasi 2/4: Baca instruksi
Memori merespons READ dan mengirim instruksi.
PC
IR=LOAD R0,[0x2000]
Animasi bergerak: buka animasi/index.html, pilih pertemuan 03.
Demonstrasi 3/4: Dekode
CU mengenali operasi baca data dari alamat 0x2000.
PC
Operand alamat=0x2000
Animasi bergerak: buka animasi/index.html, pilih pertemuan 03.
Demonstrasi 4/4: Eksekusi
Transaksi baca kedua memuat nilai ke R0.
PC
Mem[0x2000]=42, R0=42
Animasi bergerak: buka animasi/index.html, pilih pertemuan 03.
Aktivitas kelas / praktikum
- Buat peta 64 KiB dengan program 16 KiB dan RAM 16 KiB.
- Sisihkan wilayah I/O dan wilayah belum dipakai.
- Hitung batas setiap wilayah dengan rumus inklusif.
Cek pemahaman
- Berapa byte ruang alamat 12 bit yang byte-addressed?
- Berapa ukuran 0x4000-0x4FFF?
- Apa perbedaan address bus dan data bus?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- 2^12 = 4.096 byte atau 4 KiB.
- 0x1000 byte atau 4 KiB.
- Alamat memilih lokasi, data membawa nilainya.
Inti pertemuan
Bus membagi fungsi alamat, data, dan kontrol.
Ruang alamat bukan jaminan RAM terpasang.
Fetch dan akses operand dapat memakai transaksi terpisah.
Catatan pengajar dan referensi
Gunakan alamat heksadesimal dan sebut asumsi byte-addressed. Untuk Harvard, ruang program
dan data dapat terpisah. Detail bus perangkat harus mengikuti datasheet.
Acuan cakupan: RPS pengguna, minggu 3.
Arm, Developer Suite Developer Guide
https://documentation-service.arm.com/static/5e9578fe8259fe2368e2c274
Microchip, AVR Memory
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8-bit-avr/structure/memory/
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 04 β Mode Pengalamatan (20 slide)
Mode Pengalamatan
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Mengidentifikasi immediate, register, direct, indirect, dan indexed
- Menghitung effective address pada contoh
- Membedakan sintaks antararsitektur
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Operand dan effective address
- Operand adalah nilai sumber atau tujuan instruksi.
- Effective address (EA) menentukan lokasi operand memori.
Immediate addressing
- Nilai konstanta berada dalam instruksi.
- CPU memakai konstanta tanpa membaca operand memori terpisah.
Register addressing
- Operand berada dalam register.
- Instruksi memilih register sumber dan tujuan.
Direct addressing
- Instruksi menyebut offset lokasi memori.
- Segmen ikut menentukan alamat pada x86 real mode.
Register indirect
- Register menyimpan offset ke operand memori.
- Isi register diperlakukan sebagai alamat, bukan nilai operand.
Indexed addressing
- EA memakai indeks atau basis dan displacement.
- Mode ini membantu mengakses tabel dan array.
Ukuran elemen
- Indeks elemen harus diterjemahkan menjadi offset byte.
- Elemen word 16 bit membutuhkan 2 byte.
Segmen pada 8086
- Alamat fisik = segmen x 16 + offset.
- BP umumnya memilih SS, sedangkan BX/SI/DI umumnya DS.
Perbedaan sintaks ISA
- x86 Intel memakai tanda kurung siku untuk operand memori.
- ARM memakai LDR/STR, AVR memakai bentuk sesuai register pointer.
Kesalahan pengalamatan
- Bedakan konstanta, alamat, dan isi lokasi.
- Periksa ukuran operand serta segmen sebelum membaca hasil.
Demonstrasi 1/4: Offset basis
BX menyimpan offset awal tabel.
Offset basis
Progres demonstrasi
BX=0x2000
Animasi bergerak: buka animasi/index.html, pilih pertemuan 04.
Demonstrasi 2/4: Displacement
Tambahkan displacement 4 byte pada basis.
Offset basis
Progres demonstrasi
EA=0x2004
Animasi bergerak: buka animasi/index.html, pilih pertemuan 04.
Demonstrasi 3/4: Lokasi operand
Segmen dan offset memilih lokasi word.
Offset basis
Progres demonstrasi
DS:0x2004 berisi 42
Animasi bergerak: buka animasi/index.html, pilih pertemuan 04.
Demonstrasi 4/4: Transfer data
Instruksi memuat isi lokasi, bukan nilai alamat.
Offset basis
Progres demonstrasi
MOV AX,[BX+4], AX=42
Animasi bergerak: buka animasi/index.html, pilih pertemuan 04.
Aktivitas kelas / praktikum
- Klasifikasikan MOV AX,5; MOV AX,BX; MOV AX,[2000h]; MOV AX,[BX].
- Hitung EA untuk BX=2000h dan displacement 6.
- Jelaskan pengaruh ukuran elemen array.
Cek pemahaman
- Apa beda nilai 5 dengan alamat 5?
- Jika SI=1000h, berapa EA [SI+8]?
- Berapa offset byte elemen ke-4 pada array word, indeks mulai 0?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- Nilai adalah operand, alamat memilih lokasi berisi operand.
- EA=1008h.
- Indeks 3 x 2 byte = 6 byte.
Inti pertemuan
Mode pengalamatan menentukan sumber operand.
EA dan isi memori merupakan hal berbeda.
Ukuran data dan aturan ISA memengaruhi akses.
Catatan pengajar dan referensi
Semua contoh MOV pada bagian ini adalah potongan x86 Intel 16 bit. Inisialisasi segmen dan area
memori diperlukan sebelum praktik.
Acuan cakupan: RPS pengguna, minggu 4.
Intel, IA-32 Software Developer Manuals
https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
Arm, Developer Suite Developer Guide
https://documentation-service.arm.com/static/5e9578fe8259fe2368e2c274
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 05 β Set Instruksi dan Assembly - Bagian 1 (20 slide)
Set Instruksi dan Assembly - Bagian 1
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Membaca struktur instruksi Assembly
- Menggunakan MOV, PUSH, POP, dan aritmetika dasar
- Menelusuri perubahan register serta stack
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Set instruksi
- ISA menentukan operasi yang tersedia dan cara operand dinyatakan.
- Mnemonic membantu manusia membaca instruksi mesin.
Struktur baris Assembly
- Baris dapat memuat label, mnemonic, operand, dan komentar.
- Direktif assembler mengatur pembuatan program, bukan selalu instruksi CPU.
MOV
- MOV menyalin data dari sumber ke tujuan.
- Ukuran operand harus sesuai dan kombinasi operand harus sah.
Memori dan ukuran operand
- Byte bernilai 8 bit, word pada contoh x86 ini 16 bit.
- Tentukan ukuran saat operand memori tidak cukup jelas.
ADD dan SUB
- ADD menjumlahkan sumber ke tujuan.
- SUB mengurangkan sumber dari tujuan.
Logika bit
- AND mempertahankan bit yang sama-sama 1.
- OR memasang bit, XOR dapat membalik bit terpilih.
PUSH
- Pada 8086 PUSH menyimpan word ke stack.
- SP berkurang 2 sebelum word disimpan.
POP
- POP mengambil word teratas dari stack.
- SP bertambah 2 setelah word dibaca.
Little endian
- Pada contoh x86, byte rendah berada pada alamat lebih kecil.
- Urutan byte memori berbeda dari cara menulis angka hex.
Program penjumlahan
- Mulai dengan nilai register yang diketahui.
- Amati perubahan setelah setiap instruksi.
Demonstrasi 1/4: Inisialisasi
Instruksi pertama memasukkan nilai 7 ke AX.
Inisialisasi
Progres demonstrasi
MOV AX,7 / AX=7
Animasi bergerak: buka animasi/index.html, pilih pertemuan 05.
Demonstrasi 2/4: Sumber tambahan
Nilai 5 tersedia di BX.
Inisialisasi
Progres demonstrasi
MOV BX,5 / BX=5
Animasi bergerak: buka animasi/index.html, pilih pertemuan 05.
Demonstrasi 3/4: Penjumlahan
ADD menghitung jumlah dan menulis ke AX.
Inisialisasi
Progres demonstrasi
ADD AX,BX / AX=12
Animasi bergerak: buka animasi/index.html, pilih pertemuan 05.
Demonstrasi 4/4: Salinan hasil
MOV menyalin hasil untuk pemeriksaan.
Inisialisasi
Progres demonstrasi
MOV CX,AX / CX=12
Animasi bergerak: buka animasi/index.html, pilih pertemuan 05.
Aktivitas kelas / praktikum
- Simulasikan empat instruksi penjumlahan.
- Catat AX, BX, CX, SP sebelum dan sesudah instruksi.
- Uji PUSH AX lalu POP DX pada stack valid.
Cek pemahaman
- Apakah MOV menghapus sumber?
- Berapa perubahan SP saat PUSH word 8086?
- Bagaimana 1234h tersusun di memori x86?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- Tidak, sumber tetap sama kecuali efek khusus operand tertentu.
- SP berkurang 2.
- Byte 34h pada alamat rendah, 12h pada alamat berikutnya.
Inti pertemuan
Assembly menyatakan operasi pada register dan memori.
MOV menyalin, ALU mengolah, stack menyimpan sementara.
Ukuran operand dan keadaan awal menentukan hasil.
Catatan pengajar dan referensi
Gunakan potongan Intel 16 bit yang konsisten. Jangan memakai PUSH immediate sebagai instruksi
8086 asli. Minta mahasiswa menulis tabel perubahan, bukan hanya hasil akhir.
Acuan cakupan: RPS pengguna, minggu 5.
Intel, IA-32 Software Developer Manuals
https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 06 β Assembly - Alur Kontrol dan Flags (20 slide)
Assembly - Alur Kontrol dan Flags
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Membedakan jump tanpa syarat dan branch bersyarat
- Membangun loop yang berhenti
- Menjelaskan peran flags pada keputusan program
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Alur urut dan percabangan
- Alur urut melanjutkan instruksi berikutnya.
- Branch atau jump memilih alamat tujuan lain.
JMP
- JMP berpindah tanpa menguji kondisi hasil.
- Tujuan harus menunjuk instruksi yang valid.
CMP
- CMP menguji selisih tanpa menyimpan hasil ke operand.
- Flag berubah sesuai perbandingan.
JE dan JNE
- JE atau JZ mengambil branch ketika ZF=1.
- JNE atau JNZ mengambil branch ketika ZF=0.
Signed dan unsigned
- Interpretasi bertanda memengaruhi jenis branch.
- Gunakan kondisi signed atau unsigned yang cocok.
Loop berbasis counter
- Counter mengontrol jumlah pengulangan.
- Perbarui counter dan uji kondisi berhenti.
LOOP pada 8086
- LOOP mengurangi CX, lalu melompat bila CX tidak nol.
- LOOP tidak memperbarui flags aritmetika.
Carry dan overflow
- Carry berhubungan dengan luapan unsigned.
- Overflow berhubungan dengan rentang signed.
Manipulasi flag
- CLC, STC, dan CMC mengubah carry pada x86.
- Operasi lain dapat mengubah flag secara otomatis.
Trace loop
- Catat counter dan akumulator per iterasi.
- Bandingkan jumlah iterasi aktual dengan rancangan.
Demonstrasi 1/4: Keadaan awal
Counter dimulai dari 3, akumulator dari 0.
Keadaan awal
Progres demonstrasi
CX=3, AX=0
Animasi bergerak: buka animasi/index.html, pilih pertemuan 06.
Demonstrasi 2/4: Iterasi pertama
Tambahkan CX sebelum LOOP menguranginya.
Keadaan awal
Progres demonstrasi
AX=3, CX berikutnya=2
Animasi bergerak: buka animasi/index.html, pilih pertemuan 06.
Demonstrasi 3/4: Iterasi kedua
Tambahkan nilai counter yang baru.
Keadaan awal
Progres demonstrasi
AX=5, CX berikutnya=1
Animasi bergerak: buka animasi/index.html, pilih pertemuan 06.
Demonstrasi 4/4: Iterasi ketiga
Tambahkan 1 lalu LOOP mengakhiri perulangan.
Keadaan awal
Progres demonstrasi
AX=6, CX=0
Animasi bergerak: buka animasi/index.html, pilih pertemuan 06.
Aktivitas kelas / praktikum
- Tuliskan MOV AX,0; MOV CX,3; ulang: ADD AX,CX; LOOP ulang.
- Jalankan satu instruksi per langkah.
- Ubah nilai awal CX dan prediksi hasil.
Cek pemahaman
- Apa perubahan operand setelah CMP?
- Apa hasil jumlah saat CX awal=4?
- Mengapa branch dapat salah setelah instruksi flag lain?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- Operand tetap, flags yang berubah.
- 4+3+2+1=10.
- Instruksi lain dapat mengganti flags yang akan diperiksa branch.
Inti pertemuan
Branch memilih alur berdasarkan kondisi atau tanpa syarat.
Counter dan kondisi berhenti menentukan loop.
Interpretasi signed/unsigned menentukan branch yang benar.
Catatan pengajar dan referensi
Bedakan LOOP dari DEC/JNZ. Hindari counter awal nol dalam demonstrasi LOOP karena terjadi
wrap 16 bit dan pengulangan sangat banyak. Latihan adalah model sederhana tanpa pipeline.
Acuan cakupan: RPS pengguna, minggu 6.
Intel, IA-32 Software Developer Manuals
https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 07 β Praktikum dan Simulasi Assembly (20 slide)
Praktikum dan Simulasi Assembly
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Menyiapkan lingkungan simulasi sesuai target
- Melakukan step, breakpoint, dan inspeksi register
- Mendokumentasikan hasil serta perbaikan program
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Tujuan simulasi
- Simulator memperlihatkan perubahan keadaan CPU.
- Hasil membantu memeriksa logika sebelum memakai hardware.
Pemilihan alat
- EMU8086 cocok untuk contoh x86 16 bit.
- Keil memerlukan project dan target yang sesuai dukungan simulator.
Kerangka program
- Kerangka menetapkan entry point dan area data.
- Stack serta segmen harus diinisialisasi jika diperlukan.
Build dan diagnosis
- Assembler melaporkan sintaks atau operand yang tidak sah.
- Perbaiki pesan pertama lalu bangun ulang.
Single step
- Satu langkah membantu menghubungkan instruksi dengan efeknya.
- Periksa instruksi berikutnya dan register yang berubah.
Breakpoint
- Breakpoint menghentikan eksekusi di lokasi terpilih.
- Gunakan sebelum atau sesudah bagian yang dicurigai.
Register dan flags
- Pantau register sumber, tujuan, dan flags relevan.
- Bandingkan dengan prediksi sebelum menjalankan.
Memori dan stack
- Periksa alamat dan ukuran saat membaca memory view.
- Bandingkan SP serta isi stack untuk PUSH/POP.
Debugging sistematis
- Ubah satu dugaan penyebab pada satu waktu.
- Uji kembali kasus yang sebelumnya gagal.
Laporan praktikum
- Sertakan tujuan, kode, keadaan awal, trace, dan kesimpulan.
- Catat keterbatasan simulator atau target.
Demonstrasi 1/4: Prediksi
Tentukan hasil program sebelum menjalankannya.
Prediksi
Progres demonstrasi
Target AX=12
Animasi bergerak: buka animasi/index.html, pilih pertemuan 07.
Demonstrasi 2/4: Breakpoint awal
Hentikan program sebelum ADD untuk melihat operand.
Prediksi
Progres demonstrasi
AX=7, BX=5
Animasi bergerak: buka animasi/index.html, pilih pertemuan 07.
Demonstrasi 3/4: Single step ADD
Jalankan operasi lalu periksa register tujuan.
Prediksi
Progres demonstrasi
AX berubah menjadi 12
Animasi bergerak: buka animasi/index.html, pilih pertemuan 07.
Demonstrasi 4/4: Verifikasi
Bandingkan hasil dengan prediksi dan simpan trace.
Prediksi
Progres demonstrasi
Prediksi=aktual
Animasi bergerak: buka animasi/index.html, pilih pertemuan 07.
Aktivitas kelas / praktikum
- Simulasikan penjumlahan dan satu loop.
- Pasang breakpoint sebelum instruksi penting.
- Kumpulkan tabel trace beserta analisis satu kesalahan.
Cek pemahaman
- Apa beda step dan run?
- Mengapa target harus cocok dengan ISA?
- Bukti apa selain tangkapan layar yang diperlukan?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- Step mengeksekusi langkah terpilih, run berlanjut sampai berhenti atau breakpoint.
- Instruksi dan model hardware berbeda antar-ISA.
- Keadaan awal, kode, trace, prediksi, dan penjelasan hasil.
Inti pertemuan
Simulator membantu mengamati perubahan keadaan.
Breakpoint dan step mempersempit sumber kesalahan.
Laporan yang baik menjelaskan sebab dan hasil.
Catatan pengajar dan referensi
Instruksi menu dan target dapat berbeda menurut versi. Keil menyediakan opsi Use Simulator
hanya untuk target yang didukung. Jangan menganggap seluruh perangkat atau periferal
tersimulasi.
Acuan cakupan: RPS pengguna, minggu 7.
Keil, Debugger Simulation
https://www.keil.com/support/man/docs/uv4/uv4_dg_debug.asp
Intel, IA-32 Software Developer Manuals
https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 08 β UTS - Latihan Evaluasi Arsitektur dan Assembly (20 slide)
UTS - Latihan Evaluasi Arsitektur dan Assembly
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Meninjau konsep pertemuan 1-7
- Menyelesaikan soal arsitektur, peta memori, dan trace
- Menunjukkan langkah penalaran dalam ujian tertulis atau praktik
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Ruang lingkup UTS
- RPS mengevaluasi arsitektur, pemetaan memori, dan Assembly dasar.
- Bagian ini adalah latihan, bukan naskah ujian resmi.
Latihan CPU
- Jelaskan peran CU, ALU, GPR, dan PC.
- Hubungkan setiap komponen dengan satu operasi ADD.
Latihan arsitektur
- Bandingkan memori serta jalur pada Von Neumann dan Harvard.
- Hindari menyimpulkan kecepatan hanya dari nama arsitektur.
Latihan bus
- Tentukan bus yang membawa alamat, nilai, dan kendali.
- Sebut asumsi CPU sebagai bus master.
Latihan ruang alamat
- Hitung ruang 16 bit byte-addressed.
- Bedakan kapasitas alamat dengan RAM terpasang.
Latihan rentang memori
- Hitung ukuran 3000h-37FFh.
- Gunakan rumus batas inklusif.
Latihan addressing
- Klasifikasikan MOV AX,[BX+4].
- Hitung EA ketika BX=2000h.
Latihan transfer data
- Telusuri MOV AX,7; MOV BX,5; ADD AX,BX.
- Catat sumber dan tujuan setelah operasi.
Latihan stack
- Telusuri PUSH AX lalu POP DX pada stack valid.
- Hitung perubahan SP untuk word 8086.
Latihan loop
- Gunakan CX=3 dan AX=0 lalu ADD AX,CX; LOOP.
- Tuliskan trace setiap iterasi.
Demonstrasi 1/4: Baca soal
Kasus: ruang 16 bit, byte-addressed, RAM 8 KiB mulai 2000h.
Baca soal
Progres demonstrasi
Ruang total=64 KiB
Animasi bergerak: buka animasi/index.html, pilih pertemuan 08.
Demonstrasi 2/4: Ubah ukuran
Konversikan 8 KiB menjadi 2000h byte.
Baca soal
Progres demonstrasi
Ukuran=8192 byte
Animasi bergerak: buka animasi/index.html, pilih pertemuan 08.
Demonstrasi 3/4: Hitung batas
Alamat akhir = awal + ukuran - 1.
Baca soal
Progres demonstrasi
2000h + 2000h - 1 = 3FFFh
Animasi bergerak: buka animasi/index.html, pilih pertemuan 08.
Demonstrasi 4/4: Periksa jawaban
Hitung ulang panjang rentang dan pastikan tidak melewati FFFFh.
Baca soal
Progres demonstrasi
RAM=2000h-3FFFh
Animasi bergerak: buka animasi/index.html, pilih pertemuan 08.
Aktivitas kelas / praktikum
- Kerjakan tiga soal tanpa melihat pembahasan.
- Tuliskan asumsi, rumus, dan trace yang dipakai.
- Bandingkan dengan kunci lalu jelaskan sumber kesalahan.
Cek pemahaman
- Berapa akhir blok 4 KiB mulai 8000h?
- Apa hasil AX pada loop CX=4?
- Mengapa ukuran rentang memakai +1?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- 8FFFh.
- AX=10 untuk pola ADD AX,CX lalu LOOP.
- Alamat awal dan akhir sama-sama termasuk wilayah.
Inti pertemuan
Jawaban harus menyertakan asumsi dan langkah.
Trace lebih kuat daripada menebak hasil akhir.
Format ujian resmi tetap mengikuti dosen.
Catatan pengajar dan referensi
Gunakan sebagai ulasan dan diskusi pembahasan. Jangan menampilkan kunci saat latihan mandiri
berlangsung. UTS di RPS dapat berupa ujian tertulis dan praktik.
Acuan cakupan: RPS pengguna, minggu 8.
Intel, IA-32 Software Developer Manuals
https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
Microchip, AVR CPU Core
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8-bit-avr/structure/core/
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 09 β Sistem Input/Output dan Interfacing (20 slide)
Sistem Input/Output dan Interfacing
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Membedakan MMIO dan port-mapped I/O
- Membandingkan komunikasi paralel dan serial
- Merancang alur pertukaran data dengan periferal
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Peran antarmuka
- Antarmuka menyesuaikan prosesor dengan perangkat luar.
- Penyesuaian dapat mencakup sinyal, timing, dan format data.
Register periferal
- Register data membawa nilai, status melaporkan kondisi.
- Register kontrol mengatur operasi periferal.
Memory-Mapped I/O
- Register periferal berada dalam ruang alamat memori.
- Instruksi akses memori dapat mengakses register tersebut.
I/O-Mapped I/O
- Port I/O memakai ruang alamat tersendiri.
- x86 menyediakan instruksi IN dan OUT untuk port I/O.
Paralel dan serial
- Paralel membawa beberapa bit melalui beberapa jalur.
- Serial mengirim bit secara berurutan.
Polling status
- CPU memeriksa status sampai perangkat siap.
- Pemeriksaan berulang memakai waktu CPU.
Handshake
- Pengirim dan penerima menyepakati saat data valid.
- READY/BUSY atau protokol dapat mengatur aliran.
Level dan arah sinyal
- Konfigurasi pin sesuai arah serta fungsi alternatif.
- Periksa batas tegangan dan kemampuan arus.
Buffer dan laju data
- Buffer menyimpan data sementara saat laju berbeda.
- Overflow terjadi ketika data datang melebihi kemampuan layanan.
Praktik interfacing
- Mulai dengan satu periferal dan nilai uji yang diketahui.
- Periksa status, data, dan respons output.
Demonstrasi 1/4: Konfigurasi
Program menetapkan mode dan arah pin model generik.
Konfigurasi
Progres demonstrasi
CONTROL=mode input
Animasi bergerak: buka animasi/index.html, pilih pertemuan 09.
Demonstrasi 2/4: Periksa status
CPU menunggu tanda data tersedia.
Konfigurasi
Progres demonstrasi
STATUS.READY=1
Animasi bergerak: buka animasi/index.html, pilih pertemuan 09.
Demonstrasi 3/4: Baca data
Akses register data menerima nilai sensor.
Konfigurasi
Progres demonstrasi
DATA=42
Animasi bergerak: buka animasi/index.html, pilih pertemuan 09.
Demonstrasi 4/4: Output
Program mengirim nilai ke tampilan atau indikator.
Konfigurasi
Progres demonstrasi
Tampilan=42
Animasi bergerak: buka animasi/index.html, pilih pertemuan 09.
Aktivitas kelas / praktikum
- Gambarkan CPU, antarmuka, dan sensor.
- Pilih serial atau paralel lalu jelaskan alasannya.
- Rancang polling dengan batas waktu.
Cek pemahaman
- Apa beda MMIO dan port I/O?
- Apa guna status register?
- Mengapa buffer bisa overflow?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- MMIO berbagi ruang alamat memori, port I/O menggunakan ruang dan instruksi khusus.
- Status menunjukkan kondisi seperti ready, busy, atau error.
- Laju kedatangan lebih tinggi daripada layanan untuk waktu yang cukup lama.
Inti pertemuan
Antarmuka menyelaraskan hardware dan software.
MMIO dan port I/O berbeda pada ruang alamat serta akses.
Status, timing, dan level sinyal menentukan transfer yang benar.
Catatan pengajar dan referensi
Alamat register dalam animasi adalah model generik. MMIO memiliki efek hardware, bukan RAM
biasa. Detail interfacing elektrik mengikuti datasheet periferal.
Acuan cakupan: RPS pengguna, minggu 9.
Arm, Developer Suite Developer Guide
https://documentation-service.arm.com/static/5e9578fe8259fe2368e2c274
Intel, IA-32 Software Developer Manuals
https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 10 β Sistem Interupsi (20 slide)
Sistem Interupsi
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Menjelaskan sumber interupsi dan alur ISR
- Membandingkan polling dan interrupt-driven
- Mengaitkan tabel vektor dengan handler
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Konsep interupsi
- Interupsi meminta CPU menangani kejadian tertentu.
- Program dapat melanjutkan setelah penanganan sesuai aturan arsitektur.
Sumber eksternal dan internal
- Sumber eksternal dapat berupa pin atau perangkat.
- Timer, komunikasi, atau kondisi CPU dapat memicu sumber internal.
Polling dan interrupt-driven
- Polling memeriksa kondisi secara berkala.
- Interupsi memberitahu CPU ketika kejadian perlu dilayani.
Enable, pending, dan mask
- Sumber dapat mempunyai enable serta pending flag.
- Global mask atau prioritas dapat menunda layanan.
Tabel vektor
- Vektor membantu CPU menemukan handler sumber kejadian.
- Isi tabel dan format entry bergantung arsitektur.
IVT pada 8086
- IVT real mode berada pada alamat fisik 00000h-003FFh.
- Entry menyimpan offset IP dan segmen CS handler.
ISR
- Interrupt Service Routine menangani sumber kejadian.
- ISR harus menjaga konteks sesuai kebutuhan dan aturan toolchain.
Flag sumber
- Sumber perlu ditangani atau diakui sesuai datasheet.
- Cara menghapus flag dapat berbeda antarperiferal.
Prioritas dan latensi
- Prioritas menentukan kejadian yang didahulukan.
- Latensi adalah jeda sebelum layanan dimulai.
Data bersama
- ISR dan program utama dapat mengakses data yang sama.
- Atomicity dan sinkronisasi harus diperhatikan.
Demonstrasi 1/4: Program utama
CPU menjalankan pekerjaan normal.
Program utama
Progres demonstrasi
Main aktif, counter kejadian=0
Animasi bergerak: buka animasi/index.html, pilih pertemuan 10.
Demonstrasi 2/4: Kejadian masuk
Sumber teraktifkan menandai permintaan pending.
Program utama
Progres demonstrasi
IRQ pending=1
Animasi bergerak: buka animasi/index.html, pilih pertemuan 10.
Demonstrasi 3/4: Layanan ISR
CPU menyimpan konteks dan handler memproses kejadian.
Program utama
Progres demonstrasi
Counter kejadian=1
Animasi bergerak: buka animasi/index.html, pilih pertemuan 10.
Demonstrasi 4/4: Kembali
Konteks dipulihkan, program utama melanjutkan.
Program utama
Progres demonstrasi
Main aktif, IRQ ditangani
Animasi bergerak: buka animasi/index.html, pilih pertemuan 10.
Aktivitas kelas / praktikum
- Bandingkan membaca tombol dengan polling dan interupsi.
- Gambarkan perjalanan dari sumber ke handler.
- Rancang ISR singkat yang hanya mencatat kejadian.
Cek pemahaman
- Apa beda pending dan dilayani?
- Di mana entry vektor 21h pada IVT 8086?
- Apakah volatile membuat operasi ++ atomik?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- Pending adalah permintaan menunggu, dilayani berarti handler mulai menanganinya.
- 21h x 4 = 84h, entry 84h-87h.
- Tidak, operasi baca-ubah-tulis dapat memerlukan beberapa instruksi.
Inti pertemuan
Interupsi merespons kejadian tanpa polling terus-menerus.
Vektor menentukan tujuan handler.
Konteks, flag sumber, dan data bersama perlu dikelola.
Catatan pengajar dan referensi
Pisahkan contoh IVT 8086 dari vektor ARM/AVR. Contoh animasi hanya menjelaskan alur dan
bukan waktu layanan sebuah chip tertentu.
Acuan cakupan: RPS pengguna, minggu 10.
Microchip, AVR Interrupts
Intel, IA-32 Software Developer Manuals
https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 11 β Komunikasi Serial: UART, SPI, dan I2C (20 slide)
Komunikasi Serial: UART, SPI, dan I2C
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Mengidentifikasi sinyal dasar UART, SPI, dan I2C
- Menjelaskan framing serta sinkronisasi
- Memilih protokol untuk kasus periferal sederhana
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Komunikasi serial
- Bit berpindah berurutan mengikuti aturan protokol.
- Kedua perangkat harus sepakat format, timing, dan level.
UART
- UART tidak menggunakan jalur clock bersama.
- TX pengirim dihubungkan ke RX penerima dengan referensi sinyal yang sesuai.
Frame UART 8N1
- Contoh 8N1 memakai start, 8 bit data, dan satu stop.
- Tidak ada parity pada format ini.
Baud dan throughput
- Pada UART biner, baud menunjukkan laju simbol per detik.
- Overhead frame mengurangi laju payload dibanding laju bit.
SPI
- Clock SCK menyinkronkan transfer bit.
- Jalur MOSI/MISO dan chip select melayani komunikasi umum.
Mode SPI
- CPOL menentukan level idle clock.
- CPHA menentukan hubungan tepi clock dengan sampling.
I2C
- SDA membawa data, SCL mengatur clock.
- Jalur memakai perilaku open-drain dan pull-up yang sesuai.
Transaksi I2C
- Controller memulai START dan mengirim alamat beserta bit R/W.
- Byte diikuti ACK/NACK, transaksi diakhiri STOP atau repeated START.
Pemilihan protokol
- UART sederhana untuk terminal atau pasangan perangkat.
- SPI dan I2C cocok untuk periferal dengan spesifikasi yang mendukungnya.
Debug serial
- Periksa konfigurasi, ground/reference, pin, dan level.
- Gunakan pola data diketahui serta inspeksi status error.
Demonstrasi 1/4: Idle dan START UART
Contoh UART idle high, start bit bernilai 0.
1
0
Idle
Start
Frame 8N1, data=0x55
Animasi bergerak: buka animasi/index.html, pilih pertemuan 11.
Demonstrasi 2/4: Bit data awal
Bit dikirim LSB lebih dahulu.
1
0
Idle
Start
d0..d3 = 1,0,1,0
Animasi bergerak: buka animasi/index.html, pilih pertemuan 11.
Demonstrasi 3/4: Bit data akhir
Penerima mengumpulkan semua delapan bit.
1
0
Idle
Start
d4..d7 = 1,0,1,0
Animasi bergerak: buka animasi/index.html, pilih pertemuan 11.
Demonstrasi 4/4: Stop dan hasil
Stop bernilai 1, penerima merekonstruksi byte.
1
0
Idle
Start
Byte diterima=0x55
Animasi bergerak: buka animasi/index.html, pilih pertemuan 11.
Aktivitas kelas / praktikum
- Bandingkan UART, SPI, dan I2C untuk sensor plus tampilan.
- Gambar frame UART 8N1 untuk 0x55.
- Hitung waktu satu frame pada 9600 baud.
Cek pemahaman
- Berapa bit frame UART 8N1?
- Apa fungsi chip select SPI?
- Apa yang menyatakan penerimaan byte pada I2C?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- 10 bit: 1 start + 8 data + 1 stop.
- Memilih target dan membatasi transaksi sesuai protokol perangkat.
- ACK pada bit ke-9 untuk byte yang diakui.
Inti pertemuan
UART memakai framing tanpa clock bersama.
SPI memakai clock dan select, I2C memakai SDA/SCL serta alamat.
Konfigurasi protokol dan level listrik harus sesuai.
Catatan pengajar dan referensi
Animasi menunjukkan UART logika, bukan RS-232 dan bukan rangkaian kabel final. Waktu frame
teoritis 10/9600 detik, sekitar 1,042 ms. Aktifkan analisis sinyal per langkah.
Acuan cakupan: RPS pengguna, minggu 11.
Microchip, UART
Microchip, SPI Introduction
https://developerhelp.microchip.com/xwiki/bin/view/applications/SPI/
NXP, UM10204 rev. 7
https://www.nxp.com/docs/en/user-guide/UM10204.pdf
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 12 β Dari Mikroprosesor ke Mikrokontroler (20 slide)
Dari Mikroprosesor ke Mikrokontroler
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Membedakan tingkat integrasi mikroprosesor, MCU, dan SoC
- Menjelaskan timer, counter, ADC, dan DAC
- Memilih komponen berdasarkan kebutuhan sistem
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Tingkat integrasi
- Mikroprosesor menitikberatkan pemrosesan CPU.
- MCU mengintegrasikan CPU, memori, dan periferal pada satu chip.
Mikroprosesor dan MCU
- Sistem MPU sering mengandalkan memori atau komponen eksternal.
- MCU cocok untuk banyak tugas kendali dengan sumber daya terbatas.
System-on-Chip
- SoC mengintegrasikan beberapa fungsi sistem.
- SoC dapat berisi CPU, akselerator, antarmuka, serta pengendali memori.
GPIO
- GPIO menyediakan input atau output digital.
- Mode pin dan fungsi alternatif menentukan perilakunya.
Timer
- Timer menghitung pulsa clock yang dipilih.
- Prescaler mengurangi laju pulsa menuju counter.
Counter
- Counter dapat menghitung kejadian dari sumber eksternal.
- Perbedaan timer/counter terutama terletak pada sumber pulsa.
ADC
- ADC mengubah tegangan analog menjadi kode digital.
- Resolusi membagi rentang input menjadi banyak level.
DAC
- DAC mengubah kode digital menjadi sinyal analog.
- Tidak semua MCU menyediakan DAC hardware.
PWM
- PWM mengatur proporsi waktu aktif dalam satu periode.
- Duty cycle berbeda dari frekuensi gelombang.
Pemilihan MCU
- Periksa memori, periferal, clock, pin, daya, dan alat.
- Pastikan kapasitas sesuai kebutuhan dengan ruang pengembangan.
Demonstrasi 1/4: Sinyal analog
Contoh sensor memberi tegangan dalam rentang ADC.
Sinyal analog
Progres demonstrasi
Vin=1,65 V, Vref=3,3 V
Animasi bergerak: buka animasi/index.html, pilih pertemuan 12.
Demonstrasi 2/4: Sampling
ADC mengambil sampel ketika conversion dimulai.
Sinyal analog
Progres demonstrasi
ADC 10 bit, 1.024 level
Animasi bergerak: buka animasi/index.html, pilih pertemuan 12.
Demonstrasi 3/4: Kuantisasi
Model ideal floor(Vin/Vref x 1024), dibatasi 0..1023.
Sinyal analog
Progres demonstrasi
Kode=512
Animasi bergerak: buka animasi/index.html, pilih pertemuan 12.
Demonstrasi 4/4: Pemakaian data
Program mengolah kode untuk tampilan atau keputusan.
Sinyal analog
Progres demonstrasi
Kode setengah skala=512
Animasi bergerak: buka animasi/index.html, pilih pertemuan 12.
Aktivitas kelas / praktikum
- Rancang alat pengukur dengan GPIO, timer, ADC, dan komunikasi.
- Hitung tick timer dengan asumsi clock 1 MHz.
- Jelaskan kapan DAC dibutuhkan dan kapan PWM cukup.
Cek pemahaman
- Berapa kode ADC 12 bit?
- Apa beda timer dan counter?
- Apakah semua MCU memiliki DAC?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- 4.096 kode, 0 sampai 4.095.
- Sumber pulsa: clock waktu dibanding kejadian yang dihitung.
- Tidak, fitur harus diperiksa pada datasheet.
Inti pertemuan
Integrasi MCU membantu membangun sistem kendali.
Timer/counter, ADC/DAC, dan GPIO memiliki tugas berbeda.
Resolusi, akurasi, dan laju sampling bukan hal yang sama.
Catatan pengajar dan referensi
Rumus ADC adalah model ideal dan tidak memodelkan offset/noise atau karakter transfer chip
tertentu. Step input tetap dalam rentang yang diasumsikan.
Acuan cakupan: RPS pengguna, minggu 12.
Microchip, AVR CPU Core
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8-bit-avr/structure/core/
Microchip, Timers
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8bit-pic/peripherals/timers/
Microchip, ADC Code Width
https://developerhelp.microchip.com/xwiki/bin/view/products/data-converters/adc-specs/code-width/
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 13 β Antarmuka Sensor dan Aktuator (20 slide)
Antarmuka Sensor dan Aktuator
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Mengaitkan sensor dengan input digital atau analog
- Menjelaskan driver motor, relay, dan tampilan
- Menguji sistem input-proses-output secara bertahap
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Rantai sensor dan aktuator
- Sensor mengubah besaran fisik menjadi sinyal.
- Program memutuskan tindakan yang dijalankan aktuator.
Sensor suhu
- Sensor suhu dapat memiliki keluaran analog atau digital.
- Konversi nilai harus mengikuti karakteristik sensornya.
Sensor jarak
- Sensor jarak dapat memakai ultrasonik, optik, atau metode lain.
- Metode menentukan sinyal dan hubungan pengukurannya.
Kalibrasi dan noise
- Bandingkan pembacaan dengan nilai acuan.
- Filter dapat mengurangi variasi tetapi menambah keterlambatan.
Motor DC
- Motor memerlukan arus yang biasanya melebihi kemampuan GPIO.
- Driver mengatur daya, PWM dapat mengatur proporsi aktif.
Motor stepper
- Urutan aktivasi fase menghasilkan langkah.
- Driver dan mode langkah memengaruhi gerak serta torsi.
Relay
- Kumparan relay memerlukan driver yang sesuai.
- Beban induktif memerlukan penanganan tegangan balik sesuai rangkaian.
LCD dan OLED
- Tampilan menerima data melalui antarmuka yang didukung.
- Inisialisasi dan pengiriman data mengikuti controller tampilan.
Debounce dan hysteresis
- Debounce mengurangi pembacaan ganda akibat kontak tombol.
- Hysteresis mencegah output berganti cepat di sekitar ambang.
Pengujian bertahap
- Uji sensor, keputusan, lalu aktuator secara terpisah.
- Catat data input dan perubahan output pada batas kondisi.
Demonstrasi 1/4: Suhu rendah
Nilai awal berada di bawah ambang ON.
Suhu rendah
Progres demonstrasi
T=27 C, kipas OFF
Animasi bergerak: buka animasi/index.html, pilih pertemuan 13.
Demonstrasi 2/4: Suhu naik
Suhu mencapai ambang untuk menyalakan kipas.
Suhu rendah
Progres demonstrasi
T=30 C, kipas ON
Animasi bergerak: buka animasi/index.html, pilih pertemuan 13.
Demonstrasi 3/4: Daerah hysteresis
Suhu turun tetapi belum mencapai ambang OFF.
Suhu rendah
Progres demonstrasi
T=29 C, kipas tetap ON
Animasi bergerak: buka animasi/index.html, pilih pertemuan 13.
Demonstrasi 4/4: Suhu turun
Ambang OFF tercapai, output dinonaktifkan.
Suhu rendah
Progres demonstrasi
T=28 C, kipas OFF
Animasi bergerak: buka animasi/index.html, pilih pertemuan 13.
Aktivitas kelas / praktikum
- Rancang pengendali kipas dengan hysteresis.
- Gambar sensor, MCU, driver, dan motor.
- Susun tabel uji termasuk kegagalan sensor.
Cek pemahaman
- Mengapa motor membutuhkan driver?
- Apa guna hysteresis?
- Jika waktu echo 2 ms dan v=343 m/s, berapa jarak?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- Motor memerlukan daya dan karakter beban yang tidak dapat langsung ditangani GPIO.
- Mencegah output cepat ON/OFF di sekitar satu ambang.
- 343 x 0,002 / 2 = 0,343 m atau 34,3 cm pada asumsi tersebut.
Inti pertemuan
Sensor menghasilkan data, program menentukan tindakan.
Driver menghubungkan sinyal kontrol dengan beban.
Pengujian batas dan hysteresis membuat perilaku lebih jelas.
Catatan pengajar dan referensi
Contoh ambang adalah rancangan pembelajaran, bukan spesifikasi alat komersial. Rumus
ultrasonik mengasumsikan kecepatan suara dan lintasan sederhana. Baca datasheet sensor serta
driver yang dipakai.
Acuan cakupan: RPS pengguna, minggu 13.
Microchip, ADC Code Width
https://developerhelp.microchip.com/xwiki/bin/view/products/data-converters/adc-specs/code-width/
Microchip, Timers
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8bit-pic/peripherals/timers/
Microchip, SPI Introduction
https://developerhelp.microchip.com/xwiki/bin/view/applications/SPI/
NXP, UM10204 rev. 7
https://www.nxp.com/docs/en/user-guide/UM10204.pdf
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 14 β Embedded C dan Manipulasi Register (20 slide)
Embedded C dan Manipulasi Register
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Menggunakan mask untuk set, clear, toggle, dan test bit
- Menjelaskan akses register serta volatile
- Mengaitkan kode C dengan efek hardware
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
C dan hardware
- Embedded C menghubungkan operasi program dengan register perangkat.
- Alamat dan nama register berasal dari header serta datasheet.
Representasi bit
- Bilangan unsigned memudahkan operasi mask.
- Bit ke-n memiliki bobot 2^n.
Set bit
- OR dengan mask memasang bit terpilih.
- Bit lain tetap sesuai nilai semula.
Clear bit
- AND dengan komplemen mask menghapus bit terpilih.
- Batasi lebar mask agar sesuai register.
Toggle bit
- XOR membalik bit yang mask-nya 1.
- XOR dengan mask yang sama dua kali mengembalikan nilai.
Test bit
- AND dengan mask menguji bit terpilih.
- Hasil nol berarti seluruh bit dalam mask tidak aktif.
Field beberapa bit
- Hapus field lama sebelum memasang field baru.
- Geser nilai ke posisi field dan batasi dengan mask.
volatile
- volatile menjaga akses sesuai aturan objek volatile bahasa C.
- Ia tidak menjamin atomicity atau urutan seluruh transaksi hardware.
Read-modify-write
- REG |= mask biasanya membaca, mengubah, lalu menulis.
- ISR atau hardware dapat mengubah nilai di antara langkah.
Perilaku register khusus
- Register dapat read-only, write-only, atau write-one-to-clear.
- Operasi mask biasa tidak cocok untuk semua perilaku.
Demonstrasi 1/4: Keadaan awal
Model register unsigned 8 bit dimulai pada 0x10.
REG=00010000
Animasi bergerak: buka animasi/index.html, pilih pertemuan 14.
Demonstrasi 2/4: Set bit 3
OR dengan 0x08 memasang bit tanpa menghapus bit 4.
REG=00011000 / 0x18
Animasi bergerak: buka animasi/index.html, pilih pertemuan 14.
Demonstrasi 3/4: Clear bit 4
Mask clear menghapus bit 4 pada lebar 8 bit.
REG=00001000 / 0x08
Animasi bergerak: buka animasi/index.html, pilih pertemuan 14.
Demonstrasi 4/4: Toggle bit 3
XOR dengan 0x08 membalik bit 3 kembali ke nol.
REG=00000000 / 0x00
Animasi bergerak: buka animasi/index.html, pilih pertemuan 14.
Aktivitas kelas / praktikum
- Tulis operasi set bit 2 dan clear bit 5 pada register uint8_t.
- Hitung hasil awal 0x20 setelah kedua operasi.
- Jelaskan apakah kode aman untuk register W1C.
Cek pemahaman
- Apa hasil 0x10 OR 0x08?
- Apa hasil 0x18 AND 0xEF?
- Mengapa volatile tidak cukup untuk ISR dan main?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- 0x18.
- 0x08.
- Operasi majemuk dapat terinterupsi, volatile tidak membuatnya atomik.
Inti pertemuan
Mask mengubah bit terpilih dengan operasi logika.
Lebar tipe dan perilaku register harus diketahui.
volatile, atomicity, dan sinkronisasi adalah hal berbeda.
Catatan pengajar dan referensi
Potongan C adalah model operasi uint8_t, bukan firmware siap flash. Contoh lengkap menyertakan
cast untuk lebar 8 bit. Pembelajaran harus tetap memakai datasheet target pada praktik hardware.
Acuan cakupan: RPS pengguna, minggu 14.
Microchip, AVR CPU Core
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8-bit-avr/structure/core/
Microchip, AVR Interrupts
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 15 β Presentasi dan Demo Proyek Akhir (20 slide)
Presentasi dan Demo Proyek Akhir
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Mendemonstrasikan sistem sesuai rancangan
- Menjelaskan integrasi hardware dan software
- Menyajikan bukti uji serta keterbatasan proyek
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Tujuan demo
- RPS meminta demonstrasi alat atau simulasi yang dirancang.
- Demo harus memperlihatkan fungsi serta bukti pengujiannya.
Rumusan masalah
- Jelaskan pengguna, kebutuhan, input, dan output.
- Nyatakan perilaku yang dapat diamati atau diukur.
Diagram sistem
- Tampilkan sensor, prosesor/MCU, antarmuka, dan aktuator.
- Bedakan jalur data, sinyal kontrol, serta daya.
Pilihan komponen
- Hubungkan pilihan komponen dengan kebutuhan sistem.
- Catat batas tegangan, memori, pin, dan komunikasi.
Organisasi software
- Pisahkan inisialisasi, pembacaan, keputusan, dan output.
- Jelaskan polling, ISR, atau state machine yang digunakan.
Rencana pengujian
- Setiap fungsi utama mempunyai input dan hasil harapan.
- Sertakan batas serta kegagalan yang dapat dimodelkan.
Demo yang dapat diulang
- Tetapkan keadaan awal sebelum menjalankan demonstrasi.
- Gunakan urutan kasus yang sama untuk perbandingan.
Analisis kegagalan
- Pisahkan kegagalan sensor, komunikasi, logika, dan output.
- Tunjukkan strategi pemulihan atau perilaku fallback.
Laporan dan kontribusi
- Sertakan diagram, kode, tabel uji, dan kesimpulan.
- Jelaskan peran anggota serta kontribusi teknis.
Umpan balik proyek
- Diskusikan ketepatan fungsi, alasan desain, dan bukti.
- Bobot proyek sesuai RPS 20%, rubrik detail ditetapkan dosen.
Demonstrasi 1/4: Keadaan awal demo
Reset dan nyatakan kondisi input sebelum demonstrasi.
Keadaan awal demo
Progres demonstrasi
Suhu=27 C, kipas OFF
Animasi bergerak: buka animasi/index.html, pilih pertemuan 15.
Demonstrasi 2/4: Kasus normal
Input mencapai kondisi yang dirancang.
Keadaan awal demo
Progres demonstrasi
Suhu=30 C, kipas ON
Animasi bergerak: buka animasi/index.html, pilih pertemuan 15.
Demonstrasi 3/4: Kasus batas
Input di antara ambang menguji hysteresis.
Keadaan awal demo
Progres demonstrasi
Suhu=29 C, kipas tetap ON
Animasi bergerak: buka animasi/index.html, pilih pertemuan 15.
Demonstrasi 4/4: Bukti akhir
Bandingkan respons dengan tabel uji dan jelaskan kesimpulan.
Keadaan awal demo
Progres demonstrasi
Suhu=28 C, kipas OFF
Animasi bergerak: buka animasi/index.html, pilih pertemuan 15.
Aktivitas kelas / praktikum
- Susun demo berdurasi sesuai waktu dari dosen.
- Siapkan tiga kasus fungsi dan satu kasus gagal.
- Lengkapi tabel hasil aktual serta bukti yang dapat ditinjau.
Cek pemahaman
- Apa perbedaan demo dan bukti uji?
- Mengapa keadaan awal perlu dicatat?
- Bagaimana menjelaskan keterbatasan proyek?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- Demo memperlihatkan perilaku, bukti uji membandingkan input, harapan, dan hasil secara tercatat.
- Agar hasil dapat direproduksi dan dibandingkan.
- Nyatakan batas input, asumsi, serta kondisi yang belum diuji.
Inti pertemuan
Proyek menyatukan hardware dan software.
Demo yang dapat diulang memudahkan penilaian.
Bukti uji harus mendukung klaim fungsi.
Catatan pengajar dan referensi
Gunakan sesi ini untuk demonstrasi dan tanya jawab sesuai RPS. Jangan mengubah komposisi
penilaian. Bantu mahasiswa menghubungkan setiap klaim dengan bukti.
Acuan cakupan: RPS pengguna, minggu 15.
Keil, Debugger Simulation
https://www.keil.com/support/man/docs/uv4/uv4_dg_debug.asp
Microchip, ADC Code Width
https://developerhelp.microchip.com/xwiki/bin/view/products/data-converters/adc-specs/code-width/
Microchip, Timers
https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/8bit-pic/peripherals/timers/
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
Pertemuan 16 β UAS - Evaluasi Integrasi Sistem (20 slide)
UAS - Evaluasi Integrasi Sistem
Mikroprosesor dan Mikrokontroler
Rekayasa Sistem Komputer
RSK-2104 - Materi sesuai RPS
Tujuan dan alur pertemuan
- Meninjau interfacing, interupsi, komunikasi, dan Embedded C
- Menganalisis kegagalan hardware-software
- Menyampaikan solusi beserta bukti uji
10 pokok bahasan, demonstrasi 4 langkah, latihan, dan pembahasan.
Cakupan UAS
- RPS mengevaluasi integrasi sistem, interfacing, dan pemecahan masalah.
- Bagian ini menyediakan latihan, bukan soal resmi.
Kasus arsitektur
- Pilih organisasi memori yang sesuai kebutuhan.
- Jelaskan jalur instruksi/data dan keterbatasannya.
Kasus MMIO
- Sensor tersedia melalui register status dan data.
- Rancang pembacaan dengan kesiapan dan timeout.
Kasus interupsi
- UART menerima data sementara main mengendalikan motor.
- Pisahkan pencatatan data cepat dari pengolahan panjang.
Kasus UART
- Perangkat menggunakan baud atau framing berbeda.
- Tentukan pemeriksaan untuk data yang rusak.
Kasus SPI dan I2C
- SPI gagal jika sampling tidak cocok dengan mode target.
- I2C perlu alamat, ACK, dan kondisi bus yang benar.
Kasus ADC
- Sinyal analog melebihi asumsi rentang ADC.
- Tentukan pembatasan, kalibrasi, dan pengujian yang diperlukan.
Kasus aktuator
- Keluaran GPIO tidak dapat langsung menggerakkan motor.
- Tentukan driver serta perilaku aman yang dirancang.
Kasus Embedded C
- Main dan ISR mengubah register yang sama.
- Analisis read-modify-write serta atomicity.
Kasus pengujian
- Perangkat bekerja pada input normal tetapi gagal di batas.
- Susun uji bawah, sama dengan, dan atas ambang.
Demonstrasi 1/4: Gejala
Sensor tidak memperbarui nilai, program terlihat macet.
Gejala
Progres demonstrasi
STATUS.READY selalu 0
Animasi bergerak: buka animasi/index.html, pilih pertemuan 16.
Demonstrasi 2/4: Hipotesis
Periksa konfigurasi dan kemungkinan komunikasi gagal.
Gejala
Progres demonstrasi
Mode / kabel / status
Animasi bergerak: buka animasi/index.html, pilih pertemuan 16.
Demonstrasi 3/4: Perbaikan rancangan
Tambahkan timeout dan status error yang dapat diamati.
Gejala
Progres demonstrasi
Batas waktu tercapai
Animasi bergerak: buka animasi/index.html, pilih pertemuan 16.
Demonstrasi 4/4: Verifikasi
Uji kondisi normal dan gagal setelah perubahan.
Gejala
Progres demonstrasi
Normal pulih, gagal dilaporkan
Animasi bergerak: buka animasi/index.html, pilih pertemuan 16.
Aktivitas kelas / praktikum
- Analisis satu sistem sensor-MCU-driver-output.
- Tuliskan satu kegagalan pada tiap lapisan.
- Usulkan pengujian dan bukti untuk setiap perbaikan.
Cek pemahaman
- Mengapa ISR perlu singkat?
- Apa yang diperiksa saat I2C tidak ACK?
- Apa bukti minimum bahwa perbaikan berhasil?
Pembahasan tersedia di halaman berikutnya.
Pembahasan dan ringkasan
- Mengurangi latensi layanan lain dan menjaga respons sistem.
- Alamat, daya/level, wiring, pull-up, kondisi timing, dan status sesuai datasheet.
- Kasus gagal sebelumnya diuji ulang serta kasus normal tetap lulus.
Inti pertemuan
Integrasi yang benar memerlukan perangkat, program, dan timing yang cocok.
Diagnosis memisahkan gejala dari penyebab.
Kesimpulan akhir harus didukung hasil pengujian.
Catatan pengajar dan referensi
Laksanakan evaluasi sesuai ketentuan dosen. Materi ini merupakan ulasan dan latihan integrasi,
tidak menetapkan durasi, bobot butir, atau kunci ujian resmi.
Acuan cakupan: RPS pengguna, minggu 16.
Microchip, AVR Interrupts
Microchip, UART
Microchip, SPI Introduction
https://developerhelp.microchip.com/xwiki/bin/view/applications/SPI/
NXP, UM10204 rev. 7
https://www.nxp.com/docs/en/user-guide/UM10204.pdf
Microchip, ADC Code Width
https://developerhelp.microchip.com/xwiki/bin/view/products/data-converters/adc-specs/code-width/
Ilustrasi AI bersifat konseptual. Diagram dan contoh dirancang untuk pembelajaran.
PDF menampilkan tahap statis; animasi bergerak tersedia pada pendamping offline.
π Referensi
- Hennessy, J. L. & Patterson, D. A. Computer Architecture: A Quantitative Approach. Morgan Kaufmann.
- Brey, B. B. The Intel Microprocessors: Architecture, Programming, and Interfacing. Pearson.
- Hall, D. V. Microprocessors and Interfacing: Programming and Hardware. McGraw-Hill.
- Intel. 8086 Family User's Manual; 8255A dan 8254 datasheets.