Set ini merangkumi keseluruhan perkakasan dan pemprosesan: kitaran arahan, daftar, memori dan storan, pilihan input dan output, dan mengekalkan dakwaan dalam model. Soalan bergerak daripada mudah kepada lebih sukar.
Cuba setiap soalan di atas kertas dahulu. Gunakan pelatih jejak pseudokod terhad atau kotak pasir penaakulan Python yang selamat hanya untuk menyemak jejak selepas anda menulis jejak anda sendiri.
Soalan
Soalan 1 (mudah)
Nyatakan apa yang disimpan pembilang atur cara (PC) dan bila nilainya berubah dalam kitaran yang dipermudah.
Lihat jawapan
PC menyimpan alamat arahan seterusnya yang akan diambil. Ia bertambah 1 semasa setiap fetch. Arahan lompat menulis gantinya dengan alamat baharu semasa peringkat execute.
Soalan 2 (mudah)
Namakan daftar bagi setiap perihalan: (a) menyimpan alamat yang sedang dibaca, (b) menyimpan arahan yang sedang dinyahkod, (c) menyimpan hasil penambahan.
Lihat jawapan
(a) MAR. (b) CIR. (c) ACC.
Soalan 3 (mudah)
Antara RAM, ROM dan storan sekunder, yang manakah (a) kehilangan kandungan apabila kuasa dimatikan, (b) menyimpan arahan permulaan, (c) menyimpan fail kerja rumah yang disimpan?
Lihat jawapan
(a) RAM, kerana ia volatile. (b) ROM, yang non-volatile. (c) Storan sekunder, yang menyimpan fail tanpa kuasa.
Soalan 4 (sederhana)
Lengkapkan jadual jejak bagi atur cara ini. LDA 90 memuatkan nilai pada alamat 90, SUB 91 menolak nilai pada alamat 91 daripada ACC, STO 92 menyimpan ACC, dan END berhenti. PC bermula pada 50.
| Alamat | Kandungan |
|---|---|
| 50 | LDA 90 |
| 51 | SUB 91 |
| 52 | STO 92 |
| 53 | END |
| 90 | 15 |
| 91 | 6 |
| 92 | 0 |
Lihat jawapan
| Langkah | PC | MAR | MDR | CIR | ACC |
|---|---|---|---|---|---|
| Mula | 50 | - | - | - | - |
| Fetch 1 | 51 | 50 | LDA 90 | LDA 90 | - |
| Execute 1 | 51 | 90 | 15 | LDA 90 | 15 |
| Fetch 2 | 52 | 51 | SUB 91 | SUB 91 | 15 |
| Execute 2 | 52 | 91 | 6 | SUB 91 | 9 |
| Fetch 3 | 53 | 52 | STO 92 | STO 92 | 9 |
| Execute 3 | 53 | 92 | 9 | STO 92 | 9 |
Semakan: 15 − 6 = 9. Alamat 92 kini menyimpan 9.
Soalan 5 (sederhana)
Sebuah komputer riba mempunyai 4 GB RAM.
Tiga atur cara dibuka, memerlukan 1.2 GB, 2.5 GB dan 0.8 GB. (a) Berapakah jumlah RAM yang diperlukan? (b) Apakah yang berlaku, dan mengapa ia penting?
Lihat jawapan
(a) 1.2 + 2.5 + 0.8 = 4.5 GB.
(b) Ini 0.5 GB lebih daripada 4 GB RAM. Komputer menggunakan sebahagian storan sekunder sebagai memori maya, menukar data keluar masuk. Ini lebih perlahan daripada RAM, jadi komputer menjadi lembap.
Soalan 6 (sederhana)
Seorang pelajar menggambar kerja rumah dengan telefon, menyuntingnya pada komputer riba dan menyimpannya. Nyatakan di mana fail itu berada (a) semasa disunting dan (b) selepas komputer riba dimatikan.
Lihat jawapan
(a) Fail yang dibuka dimuatkan ke dalam RAM supaya pemproses boleh mengusahakannya dengan pantas. (b) Fail yang disimpan kekal dalam storan sekunder. RAM akan kehilangannya apabila kuasa dimatikan.
Soalan 7 (sederhana)
Sebuah perpustakaan membenarkan ahli meminjam buku dengan mengimbas kad dan buku. Pilih satu peranti input dan satu peranti output dan justifikasikan setiap satu dalam satu ayat.
Lihat jawapan
Input: pengimbas kod bar, kerana kad dan buku masing-masing membawa kod, jadi mengimbas merekodnya dengan cepat tanpa kesilapan menaip.
Output: pencetak resit (atau mesej skrin) yang mengesahkan pinjaman dan tarikh pemulangan, supaya ahli mempunyai bukti apa yang dipinjam.
Soalan 8 (lebih sukar)
Jejak atur cara ini dan nyatakan nilai akhir pada alamat 32. JMP 13 menetapkan PC kepada 13. PC bermula pada 10.
| Alamat | Kandungan |
|---|---|
| 10 | LDA 30 |
| 11 | JMP 13 |
| 12 | ADD 31 |
| 13 | STO 32 |
| 14 | END |
| 30 | 4 |
| 31 | 100 |
| 32 | 0 |
Lihat jawapan
| Langkah | PC | MAR | MDR | CIR | ACC |
|---|---|---|---|---|---|
| Mula | 10 | - | - | - | - |
| Fetch 1 | 11 | 10 | LDA 30 | LDA 30 | - |
| Execute 1 | 11 | 30 | 4 | LDA 30 | 4 |
| Fetch 2 | 12 | 11 | JMP 13 | JMP 13 | 4 |
| Execute 2 | 13 | 11 | JMP 13 | JMP 13 | 4 |
| Fetch 3 | 14 | 13 | STO 32 | STO 32 | 4 |
| Execute 3 | 14 | 32 | 4 | STO 32 | 4 |
| Fetch 4 | 15 | 14 | END | END | 4 |
Lompatan menulis ganti PC (12 menjadi 13), jadi ADD 31 pada alamat 12 tidak pernah berjalan. Alamat 32 menyimpan 4, bukan 104.
Soalan 9 (lebih sukar)
Seorang pelajar menulis: “Telefon ini mempunyai pemproses 8 teras pada 2.8 GHz, jadi ia berjalan pada 22.4 GHz dan akan sentiasa lebih pantas daripada komputer riba 3.0 GHz.” Kenal pasti dua kesilapan dan tulis semula dakwaan itu.
Lihat jawapan
Kesilapan 1: teras tidak menambah kelajuan jam mereka. 8 × 2.8 = 22.4 bukan kelajuan yang sah. Kelajuan jam ialah 2.8 GHz, iaitu 2.8 bilion kitaran sesaat.
Kesilapan 2: “sentiasa lebih pantas” tidak disokong. Kelajuan juga bergantung pada teras, cache, dan sama ada perisian boleh menggunakan teras itu.
Tulis semula: “Pemproses telefon berjalan pada 2.8 GHz dengan 8 teras. Komputer riba mempunyai kelajuan jam lebih tinggi (3.0 GHz), tetapi teras dan jenis tugas juga mempengaruhi prestasi, jadi data yang diberikan tidak menunjukkan yang mana lebih pantas.”
Soalan 10 (lebih sukar)
Ramalkan output penuh atur cara Python ini, yang menggunakan model yang sama seperti dalam pelajaran.
memory = {50: "LDA 90", 51: "ADD 91", 52: "STO 92", 53: "END",
90: 15, 91: 6, 92: 0}
pc = 50
acc = 0
while True:
mar = pc
pc = pc + 1
mdr = memory[mar]
cir = mdr
parts = cir.split()
op = parts[0]
if op == "END":
break
addr = int(parts[1])
if op == "LDA":
acc = memory[addr]
elif op == "ADD":
acc = acc + memory[addr]
elif op == "STO":
memory[addr] = acc
print(cir, "ACC =", acc, "PC =", pc)
print(memory[92])
Lihat jawapan
Gelung mencetak selepas setiap arahan kecuali END:
LDA 90 ACC = 15 PC = 51
ADD 91 ACC = 21 PC = 52
STO 92 ACC = 21 PC = 53
21
Semakan: 15 + 6 = 21. PC sudah bertambah semasa fetch, jadi ia mencetak 51, 52 dan 53. Baris akhir mencetak nilai yang disimpan pada alamat 92, iaitu 21. Gelung berhenti apabila END diambil, sebelum sebarang cetakan untuknya.
Jika anda tersilap
| Apa yang tidak kena | Ulang kaji |
|---|---|
| Nilai PC tersasar satu, atau PC dan MAR bercampur (Soalan 1, 4, 8, 10) | Jejak kitaran arahan yang dipermudah |
| Daftar yang salah dinamakan (Soalan 2, 4) | Kaitkan daftar dengan peranannya |
| RAM, ROM atau storan keliru, atau memori maya tertinggal (Soalan 3, 5, 6) | Banding memori dan storan menggunakan satu tugas |
| Peranti dinamakan tanpa sebab daripada tugas (Soalan 7) | Terangkan pilihan input dan output |
| Menambah dakwaan yang tidak diberikan soalan (Soalan 9) | Elakkan menuntut spesifikasi jenama daripada model generik |
Catat setiap kesilapan berulang dalam log kesilapan dan baris gilir ujian semula, dan cuba soalan baharu tentang kemahiran itu beberapa hari kemudian.
Jika satu corak terus kembali, guru kami dalam tuisyen Computer Science dalam talian satu dengan satu boleh menjejak bersama anda dan mencari tempat ia bermula. Kembali ke gambaran keseluruhan modul untuk melihat susunan belajar.