1.2 Seni Bina Komputer
Seni bina komputer merujuk kepada reka bentuk struktur dan operasi asas sebuah sistem komputer. Secara umumnya, seni bina komputer terbahagi kepada tiga komponen utama iaitu Unit Pemprosesan Pusat (CPU), Unit Ingatan, serta Unit Peranti Input dan Peranti Output.
Objektif Pembelajaran
- Menjelaskan kitaran capai-nyahkod-laksana (FDE – Fetch, Decode, Execute Cycle).
- Menerangkan konsep asas seni bina (Von Neuman) – Unit Kawalan, ALU (Arithmetic Logic Unit), daftar (register), jam (clock), bas alamat (address bus) dan bas data (data bus).
- Mengkaji perbezaan pemproses (processor) linear dan pemproses semasa.
- Membincangkan penterjemah pelbagai aras bahasa pengaturcaraan.
- Merumuskan pelaksanaan atur cara dalam sebuah pemproses.
Ringkasan Kitaran Capai-Nyahkod-Laksana dan Perbandingan Linear vs Pipelining
Aliran data antara komponen CPU semasa kitaran FDE, serta perbezaan graf garis masa antara pemprosesan linear (9 kitaran) dan talian paip (5 kitaran).
Kitaran Capai-Nyahkod-Laksana (FDE)
Arahan dicapai dari ingatan, dinyahkod oleh Unit Kawalan, dan dilaksanakan oleh ALU.
Pemproses Linear — 9 unit masa
Setiap arahan selesai sepenuhnya sebelum arahan seterusnya bermula.
Pemproses Semasa (Talian Paip) — 5 unit masa
Fasa arahan seterusnya bermula tanpa menunggu arahan sebelumnya selesai.
Penerangan Ringkas
Tiga komponen utama seni bina komputer, konsep Von Neuman, sistem bas, daftar khas, sistem jam, kitaran FDE, pemproses linear dan semasa, serta penterjemah bahasa pengaturcaraan.
Tiga Komponen Utama Seni Bina Komputer
Unit Pemprosesan Pusat (CPU) mengandungi tiga komponen utama: ALU, Unit Kawalan, dan daftar.
Unit Ingatan terbahagi kepada RAM yang bersifat meruap dan ROM yang bersifat tidak meruap.
Peranti input seperti papan kekunci dan tetikus, serta peranti output seperti monitor dan pencetak, melengkapkan sistem komputer.
Konsep Asas Seni Bina Von Neuman (1945)
Seni bina Von Neuman dicetuskan oleh John Von Neuman pada tahun 1945 dengan idea menyimpan atur cara dan data dalam ingatan, kemudian digerakkan dari ingatan ke pemproses.
Seni bina ini menghubungkan CPU, ingatan utama, dan peranti input/output melalui Sistem Bas.
Sistem Bas
Bas Dalaman
Menghubungkan komponen dalaman pemproses dan membenarkan pertukaran maklumat antara komponen tersebut.
Bas Luaran
Menghubungkan pemproses dengan komponen luaran seperti ingatan serta peranti input dan output. Bas luaran terdiri daripada bas data, bas alamat, dan bas kawalan.
Jenis-jenis Daftar Khas
| Daftar | Fungsi |
|---|---|
| PC | Memegang alamat ingatan arahan seterusnya yang akan dicapai; nilainya bertambah secara automatik selepas alamat disalin ke MAR. |
| MAR | Memegang alamat lokasi maklumat di dalam ingatan utama yang hendak dicapai atau ditulis. |
| MDR | Memegang data atau arahan yang dibaca dari ingatan atau yang akan ditulis ke ingatan. Arahan dihantar ke IR, data dihantar ke ACC. |
| IR | Mengandungi arahan terkini yang akan dinyahkodkan oleh Unit Kawalan. |
| ACC | Menyimpan data yang menjadi input dan output semasa operasi ALU. |
Sistem Jam (Clock System)
Cip dalam pemproses menjana denyutan elektronik pada kadar tetap untuk menyeragamkan operasi. Kadar diukur dalam unit hertz (Hz).
Hubungan Unit Jam
\(1\text{ MHz} = 1,000,000\text{ kitaran sesaat}\)
\(1\text{ GHz} = 1,000\text{ MHz} = 1,000,000,000\text{ kitaran sesaat}\)
Kesan Kelajuan Jam
Kelajuan lebih tinggi bermakna lebih banyak kitaran atau arahan dapat diproses sesaat.
Kitaran Capai-Nyahkod-Laksana (FDE)
Proses diulang sehingga selesai; hasil disimpan sementara dalam daftar (ACC) sebelum dihantar ke ingatan utama.
Perbezaan Pemproses Linear dan Pemproses Semasa
Pemproses Linear (Bersiri)
Memproses data secara berjujukan satu demi satu. Menyelesaikan ketiga-tiga fasa (IF, ID, EX) bagi satu arahan sebelum memulakan arahan berikutnya.
Contoh 3 arahan memerlukan 9 unit masa. Kurang efektif untuk arahan panjang atau kompleks; hanya sesuai untuk arahan ringkas.
Pemproses Semasa (Tidak Linear / Selari)
Menggunakan teknik talian paip (pipelining). Membahagikan pemprosesan kepada fasa-fasa yang dilaksanakan serentak dan bertindih.
Contoh 3 arahan diselesaikan dalam 5 unit masa. Menyokong multitasking dan pelaksanaan arahan panjang atau kompleks dengan lebih pantas.
Penterjemah Bahasa Pengaturcaraan
Komputer hanya memahami bahasa mesin (kod perduaan 0 dan 1).
| Aras | Jenis | Contoh | Penterjemah |
|---|---|---|---|
| Rendah | Bahasa Mesin | Jujukan kod perduaan (01011100) | Tiada |
| Rendah | Bahasa Himpunan | ADD, SUB, MUL, DIV, LOAD, STORE | Assembler |
| Tinggi | Berasaskan Objek / Visual | Java, Visual Basic, PHP, Python | Compiler / Interpreter |
| Tinggi | Berstruktur | C, C++, PASCAL, COBOL, FORTRAN | Compiler |
Pengkompil (Compiler)
Menukar keseluruhan kod sumber kepada kod mesin sebelum atur cara dilaksanakan. Contoh: C, C++, COBOL.
Pentafsir (Interpreter)
Menukar kod sumber baris demi baris secara interaktif semasa pelaksanaan. Contoh: Python, Perl, PHP, Ruby.
Hibrid (Java)
Atur cara Java dikompil oleh javac menjadi bytecode, kemudian bytecode ditafsir oleh Java interpreter baris demi baris ke kod mesin.
Cuba Jawab Dulu
Cuba jawab sendiri dahulu, kemudian tekan butang untuk menyemak.
Nyatakan tiga fungsi bas yang terdapat dalam sistem bas luaran komputer Von Neuman.
Bas data: Memindahkan data antara CPU, ingatan, dan peranti input/output, serta antara komponen dalaman CPU. Bas alamat: Membawa maklumat alamat lokasi ingatan atau alamat peranti input/output. Bas kawalan: Menghantar isyarat kawalan untuk mengawal keseluruhan operasi sistem komputer.
Mengapakah pemproses yang menggunakan teknik talian paip (pipelining) lebih pantas berbanding pemproses linear?
Kerana teknik talian paip membenarkan fasa pemprosesan yang berbeza bagi beberapa arahan dilaksanakan secara bertindih (overlapping) dan serentak dalam satu masa, tanpa perlu menunggu satu arahan selesai sepenuhnya seperti dalam pemprosesan linear.
Apakah perbezaan utama antara fungsi pengkompil (compiler) dan pentafsir (interpreter)?
Pengkompil menterjemahkan keseluruhan kod sumber atur cara kepada kod mesin sekaligus sebelum atur cara dilaksanakan, manakala pentafsir menterjemahkan kod sumber baris demi baris secara berperingkat semasa atur cara dilaksanakan.
Kesalahan Biasa
- Menganggap RAM menyimpan data secara kekal; sebenarnya RAM adalah memori meruap (volatile) yang kehilangan semua data apabila tiada bekalan elektrik.
- Keliru antara fungsi bas alamat dengan bas data; menyangka bas alamat membawa isi data, padahal ia hanya membawa alamat lokasi storan di mana data disimpan.
- Menyatakan bahasa himpunan diterjemah oleh pengkompil; penterjemah khusus bagi bahasa himpunan ialah penghimpun (assembler).
- Tertukar peranan daftar MAR dan MDR; menyangka MAR memegang data, sedangkan MAR memegang alamat lokasi memori, manakala MDR yang memegang kandungan data atau arahan sebenar.
Salah Faham Konsep
Teknik talian paip (pipelining) memendekkan tempoh masa yang diperlukan oleh setiap individu arahan dari mula hingga tamat fasa laksana.
Masa yang diambil oleh satu-satu arahan tunggal untuk melalui ketiga-tiga fasa (IF, ID, EX) tetap sama. Kelebihan talian paip adalah pada jumlah daya pemprosesan (throughput), kerana fasa arahan seterusnya bermula tanpa menunggu arahan sebelumnya siap sepenuhnya.
Java hanya menggunakan pentafsir kerana ia merupakan bahasa aras tinggi.
Java ialah bahasa hibrid yang menggunakan kedua-duanya; kod sumber dikompil menjadi bytecode oleh javac, kemudian bytecode tersebut ditafsir oleh mesin maya Java (JVM/Java interpreter) ke kod mesin.
Ringkasan
- Seni bina komputer Von Neuman mendasari operasi komputer moden dengan menggabungkan CPU, ingatan utama, dan peranti I/O melalui sistem bas data, alamat, dan kawalan.
- Di dalam pemproses, Unit Kawalan, ALU, dan daftar-daftar khas (PC, MAR, MDR, IR, ACC) bekerjasama melaksanakan kitaran mesin Capai-Nyahkod-Laksana (FDE) mengikut denyutan sistem jam.
- Pemprosesan semasa meningkatkan kelajuan secara dramatik melalui teknik talian paip berbanding pemproses linear bersiri.
- Keseluruhan arahan daripada bahasa pengaturcaraan aras tinggi dan rendah diterjemahkan kepada bahasa mesin berasaskan digit perduaan oleh pengkompil, pentafsir, atau penghimpun agar dapat difahami dan dilaksanakan oleh pemproses.
Aktiviti Ringkas
A. Kuiz Objektif
1 Apakah daftar yang berfungsi memegang arahan terkini yang sedang dinyahkod oleh Unit Kawalan semasa kitaran mesin?
2 Antara bahasa pengaturcaraan berikut, yang manakah menggunakan pengkompil (compiler) dan pentafsir (interpreter) secara serentak dalam proses penterjemahannya?
B. Isi Tempat Kosong
3 Pemprosesan semasa menggunakan teknik bagi membenarkan pelaksanaan arahan-arahan berlaku secara serentak dan bertindih (overlapping).
4 Bas yang berfungsi membawa alamat lokasi yang menempatkan data dan arahan dalam ingatan utama dipanggil bas .
C. Padankan Komponen atau Daftar dengan Fungsinya
Seret komponen atau daftar ke fungsi yang betul. Jika menggunakan telefon, tekan pilihan jawapan dahulu, kemudian tekan kotak padanan.