Setiap daftar dalam model yang dipermudah mempunyai satu tugas, dan jawapan yang baik menamakan daftar mengikut apa yang disimpannya: alamat, sekeping data, arahan semasa, alamat seterusnya atau hasil kerja.
Pelajaran ini bersambung daripada menjejak kitaran arahan dan tergolong dalam perkakasan dan pemprosesan. Seterusnya anda akan melihat tempat atur cara dan fail disimpan.
Apakah yang disimpan setiap daftar?
| Daftar | Menyimpan | Berubah apabila |
|---|---|---|
| PC (pembilang atur cara) | Alamat arahan seterusnya | Ditambah semasa setiap fetch; ditulis ganti oleh lompat |
| MAR (daftar alamat memori) | Alamat lokasi yang sedang dibaca atau ditulis | Fetch bermula, atau arahan muat atau simpan berjalan |
| MDR (daftar data memori) | Data atau arahan yang baru dibaca, atau akan ditulis | Memori dibaca atau ditulis |
| CIR (daftar arahan semasa) | Arahan yang sedang dinyahkod dan dilaksanakan | Fetch selesai |
| ACC (penumpuk) | Nilai kerja dan hasil aritmetik atau logik | Arahan muat, aritmetik atau logik dilaksanakan |
Dua bahagian bekerja bersama daftar. ALU (unit logik aritmetik) melakukan pengiraan dan perbandingan.
Unit kawalan menyahkod arahan dan menghantar isyarat kawalan. Daftar berada di sebelah kedua-duanya dalam pemproses.
Tiga bas (bus) membawa isyarat antara pemproses dan memori: bas alamat (alamat), bas data (data dan arahan) dan bas kawalan (isyarat kawalan seperti baca atau tulis).
Contoh berlangkah
ACC menyimpan 20 dan alamat 500 menyimpan 9. Arahan dalam CIR ialah ADD 500, dan arahan seterusnya berada pada alamat 41. Soalan bertanya: namakan daftar bagi setiap pernyataan.
- “Ia menyimpan 500 semasa memori dicapai.” Ini alamat, jadi MAR.
- “Ia menyimpan 9 selepas memori dibaca.” Ini data, jadi MDR.
- “Ia menyimpan
ADD 500semasa decode.” Ini arahan, jadi CIR. - “Ia menyimpan 41.” Alamat arahan seterusnya ialah PC. (Ia sudah ditambah semasa fetch.)
- “Ia menyimpan 29 selepas arahan selesai.” Hasilnya ialah ACC, kerana 20 + 9 = 29.
Setiap jawapan dipilih dengan bertanya “apakah jenis perkara ini: alamat, data, arahan atau hasil?”
Kesilapan yang perlu diawasi
Pelajar kerap mengatakan MAR menyimpan data kerana MAR “bersambung dengan memori”.
Jawapan yang salah: “MAR menyimpan nilai 9 yang dibaca daripada alamat 500.”
Nilai itu data, dan data melalui MDR. MAR menyimpan alamat 500.
Betulkan dengan memasangkan daftar: MAR dengan bas alamat, MDR dengan bas data. MAR juga tidak sama dengan PC. PC menyimpan alamat arahan seterusnya; MAR menyimpan apa-apa alamat yang sedang dicapai sekarang, sama ada arahan atau lokasi data.
Semak kendiri
1. Satu arahan simpan menulis 44 ke alamat 310. Daftar mana menyimpan 310 dan mana menyimpan 44 sejurus sebelum penulisan?
Lihat jawapan
MAR menyimpan 310 (alamat). MDR menyimpan 44 (data yang akan ditulis).
2. Selepas satu fetch, PC menyimpan 77. Alamat mana yang diambil, dengan andaian PC bertambah 1 setiap fetch?
Lihat jawapan
PC ialah 76 sebelum fetch, jadi arahan datang dari alamat 76. MAR menyimpan 76 semasa fetch.
3. Betul atau salah: penumpuk menyimpan arahan yang sedang dilaksanakan. Beri satu sebab.
Lihat jawapan
Salah. CIR menyimpan arahan. Penumpuk menyimpan nilai yang sedang dikira dan hasilnya.
Ke mana selepas ini
Gunakan jadual di atas sebagai senarai semak semasa menyiapkan set latihan perkakasan dan pemprosesan. Pelatih jejak pseudokod terhad ialah tempat yang baik untuk melihat daftar berubah mengikut turutan.
Menamakan daftar yang betul ialah kemahiran kecil, tetapi di situlah banyak markah perkakasan diperoleh atau hilang. Guru dalam tuisyen Computer Science dalam talian satu dengan satu boleh melatih anda dengan senario baharu sehingga anda menjawab tanpa teragak-agak.