Performa, siklus fetch-execute, dan interupsi
| English | Bahasa Indonesia |
|---|---|
| interrupt/ˈɪntərʌpt/ | interrupt |
| clock speed/klɒk spiːd/ | kecepatan clock |
| fetch-execute cycle/fetʃ ˈeksɪkjuːt ˈsaɪkl/ | siklus ambil-eksekusi |
| cores/kɔːz/ | inti prosesor |
| cache/kæʃ/ | cache |
| word size/wɜːd saɪz/ | ukuran kata |
| port/pɔːt/ | port |
| peripheral/pəˈrɪfərəl/ | periferi |
| register transfer notation/ˈredʒɪstə ˈtrænsfɜː nəʊˈteɪʃn/ | notasi transfer register |
| stack/stæk/ | tumpukan |
| interrupt service routine/ˈɪntərʌpt ˈsɜːvɪs ruːˈtiːn/ | rutin layanan interrupt |
| interrupt register/ˈɪntərʌpt ˈredʒɪstə/ | register interrupt |
Mengapa laptop Anda berhenti sejenak saat Anda menekan tombol
- Prosesor menjalankan miliaran siklus per detik. Jika harus berhenti dan bertanya ke keyboard "apakah ada sesuatu?" di antara instruksi, ia akan membuang sebagian besar waktunya hanya untuk bertanya.
- Sebaliknya, keyboard mengirim interupsi. Prosesor menyelesaikan instruksi saat ini, menyimpan posisinya, menangani tombol, dan kembali seolah-olah tidak terjadi apa-apa.
- Satu mekanisme inilah yang membuat satu prosesor terlihat menjalankan musik Anda, browser, dan pengetikan Anda secara bersamaan.
- Pelajaran ini membahas apa yang membuat prosesor cepat, bagaimana ia terhubung ke perangkat, bagaimana persisnya ia menjalankan satu instruksi, dan bagaimana interupsi masuk.
Apa yang mempengaruhi kinerja
- Kecepatan clock: lebih banyak siklus ambil-eksekusi per detik, sehingga lebih banyak instruksi per detik, hingga panas menetapkan batasnya.
- Jumlah inti: setiap inti mengambil dan mengeksekusi instruksinya sendiri pada saat yang sama, sehingga beberapa program atau benang berjalan secara paralel. Program harus ditulis untuk menggunakannya, jadi menggandakan inti tidak menggandakan kecepatan.
- Lebar bus: bus data yang lebih lebar memindahkan lebih banyak bit per transfer, sehingga fewer transfer; bus alamat yang lebih lebar menjangkau lebih banyak memori.
- Cache: memori kecil dan cepat di samping prosesor yang menyimpan instruksi dan data yang paling baru digunakan, sehingga fewer perjalanan lambat ke RAM. Ukuran kata, jumlah RAM dan jenis penyimpanan juga membantu.
Pilih semua faktor yang mempengaruhi performa CPU.
Kecepatan clock, inti, dan cache (beserta ukuran kata, RAM, penyimpanan, dan lebar bus) semuanya mempengaruhi performa. Warna casing tidak.
CPU multi-core sangat membantu untuk:
Inti tambahan menjalankan tugas secara paralel. Pekerjaan yang benar-benar single-threaded lebih menguntungkan dari kecepatan per-inti yang lebih tinggi.
Memori ____ adalah tempat penyimpanan kecil dan cepat di samping prosesor yang menyimpan instruksi dan data yang baru saja digunakan, sehingga fewer slow trips to RAM are needed.
Lebih banyak cache berarti lebih banyak working set berada di samping prosesor, yang menjadi alasan mengapa ia muncul dalam setiap perbandingan performa.
Contoh terpecahkan: "jelaskan mengapa komputer baru lebih cepat"
- Bandingkan kedua spesifikasi baris demi baris, masing-masing dengan alasannya.
- 3.8 GHz berbanding 2.4 GHz: lebih banyak siklus per detik, sehingga lebih banyak instrusi dieksekusi per detik.
- 8 inti berbanding 4: dua kali lebih banyak instruksi dapat diambil dan dieksekusi secara bersamaan, untuk perangkat lunak yang menggunakannya.
- 16 MB cache berbanding 4 MB: lebih banyak dari set kerja disimpan di samping prosesor, sehingga fewer menunggu RAM. Setiap baris bernilai dua poin: faktor dan konsekuensinya.
Port
- Port adalah soket fisik yang menghubungkan periferi.
- USB (Universal Serial Bus) bersifat serbaguna: keyboard, drive, telepon. Ia bersifat plug-and-play: komputer mendeteksi perangkat, mengidentifikasi, memuat driver-nya dan dapat memberinya daya, tanpa perlu restart.
- HDMI (High Definition Multimedia Interface) membawa video digital dan audio melalui satu kabel, sehingga tidak ada konversi ke analog dan gambar tidak mengalami degradasi. VGA (Video Graphics Array) adalah soket video analog yang lebih lama.
Cocokkan setiap port dengan apa yang ditransmiskannya.
Sinyal berbeda, soket berbeda: kabel HDMI tidak akan masuk ke port USB.
Tahap ambil
- Sekali per instruksi prosesor menjalankan siklus ambil-eksekusi. Ambil terjadi pertama, dan ujian menginginkan ini dalam notasi transfer register.
MAR ← [PC] the address of the next instruction goes to the MAR
PC ← [PC] + 1 the PC now points to the following instruction
MDR ← [[MAR]] the instruction at that address is read into the MDR
CIR ← [MDR] the instruction is copied into the CIR for decoding
- Sinyal baca berjalan di bus kontrol, alamat di bus alamat, dan instruksi kembali di bus data. PC ditingkatkan segera setelah alamatnya disalin, agar lompatan yang dieksekusi nanti masih bisa menimpanya.

PC → MAR → memori → MDR → CIR, dengan PC ditingkatkan sepanjang jalan
Susun langkah-langkah fetch (pengambilan) dalam urutan yang benar.
PC → MAR, increment PC, sinyal baca, lalu instruksi bergerak MDR → CIR siap untuk didekodifikasi.
PC ditambahkan nilainya selama tahap fetch agar siklus berikutnya mengambil instruksi selanjutnya.
Penambahan nilai PC lebih awal berarti ia sudah menunjuk instruksi berikutnya saat instruksi ini dieksekusi (kecuali ada lompatan yang mengubahnya).
Decode, eksekusi, ulang
- Decode: unit kendali menentukan dari instruksi di CIR operasi apa itu dan di mana operand-nya.
- Eksekusi: aritmatika dan logika masuk ke ALU dengan hasil di ACC; load atau store memindahkan data antara memori dan register; jump menulis alamat baru ke PC.
- Kemudian siklus berulang dari
MAR ← [PC]. Di akhir setiap siklus prosesor juga memeriksa apakah ada interrupt yang menunggu.
Satu LOAD dan satu ADD melintasi register: ambil, decode, eksekusi, ulang
Siklus fetch-execute
Klik keliling loop yang diulang CPU miliaran kali per detik. Perhatikan bagaimana fetch menggunakan register PC/MAR/MDR/CIR, lalu decode dan execute bekerja pada apa yang telah diambil.
Contoh terpecahkan: mengeksekusi dua instruksi dalam notasi
- Eksekusi
LDD 200(memuat isi alamat 200 ke ACC):MAR ← 200, kemudianMDR ← [[MAR]], kemudianACC ← [MDR]. - Eksekusi
ADD 201:MAR ← 201,MDR ← [[MAR]],ACC ← [ACC] + [MDR]. - Eksekusi
STO 202:MAR ← 202,MDR ← [ACC],[[MAR]] ← [MDR]. - Setiap baris memindahkan satu nilai antara dua tempat. Tanda kurung ganda selalu berarti "lokasi memori whose address is in the MAR".
Susun transfer register yang mengeksekusi LDD 200 secara berurutan.
Alamat ke MAR, isi alamat tersebut ke MDR, lalu ke akumulator.
Interrupts
- Interrupt adalah sinyal yang menghentikan siklus normal agar prosesor dapat menangani事件 mendesak.
- Penyebab: perangkat keras (tombol ditekan, buffer printer kosong, paket jaringan tiba), kesalahan perangkat lunak (pembagian dengan nol, instruksi ilegal, overflow aritmatika), timer sistem operasi menandai akhir slice waktu, peringatan kehilangan daya.
- Interrupt memungkinkan sistem merespons segera tanpa prosesor terus-menerus memeriksa perangkat, dan mereka adalah cara OS melakukan multitasking.

Siklus, dengan pemeriksaan interrupt di akhir setiap putaran
Interrupt (sinyal gangguan) adalah:
Interrupt sementara menjeda siklus fetch-execute sehingga CPU dapat melayani peristiwa mendesak, lalu melanjutkan kembali.
Manakah dari berikut ini yang dapat menyebabkan interrupt? Pilih semua yang berlaku.
Peristiwa hardware, kesalahan perangkat lunak, dan timer OS semuanya memicu interrupt. Perulangan yang berakhir adalah alur program biasa yang ditangani oleh lompatan, bukan interrupt.
Menangani interrupt
- Selesaikan instruksi saat ini. Simpan keadaan: isi PC dan register lainnya masuk ke stack.
- Muat alamat rutin layanan interrupt (ISR) ke PC dan jalankan. ISR menangani event tersebut.
- Pulihkan keadaan tersimpan dari stack dan lanjutkan program yang terinterrupt persis di mana ia berhenti.

Simpan, layani, pulihkan, lanjutkan
Ketika interrupt terjadi, CPU pertama-tama menyelesaikan instruksi saat ini, kemudian:
Ia menyimpan PC dan register, menjalankan rutinitas layanan interrupt, lalu memulihkan keadaan dan melanjutkan dari mana中断 terputus.
Contoh terpecahkan: jawaban interrupt empat poin
- Jelaskan bagaimana interrupt dari perangkat input dideteksi dan ditangani dalam siklus ambil-eksekusi.
- Perangkat mengirimkan sinyal interrupt yang menetapkan flag di register interrupt. Prosesor memeriksa register tersebut di akhir setiap siklus, setelah instruksi saat ini selesai dieksekusi.
- Jika flag ditetapkan dan interrupt memiliki prioritas lebih tinggi dari tugas saat ini, PC dan register lain disimpan di stack. Alamat ISR dimuat ke PC dan rutinitas dijalankan.
- Saat selesai, register dipulihkan dari stack dan program yang terinterrupt dilanjutkan. Empat poin, dalam urutan itu.
Prosesor memeriksa adanya interrupt di akhir setiap siklus fetch-execute, setelah instruksi saat ini selesai.
Waktu eksekusi inilah yang memungkinkan keadaan disimpan dengan bersih: tidak ada instruksi yang pernah tertinggal setengah jalan.
⟦⟧ Nilai yang sering terlewat
- PC ditingkatkan selama ambil, bukan setelah eksekusi. Letakkan
PC ← [PC] + 1kedua, tepat setelahMAR ← [PC]. - Interrupt diperiksa di akhir siklus, tidak pernah di tengah instruksi.
- Keadaan masuk ke stack dan keluar darinya. "CPU berhenti" atau "program hilang" adalah salah: ia melanjutkan persis di tempat sebelumnya.
- Semakin banyak inti tidak menggandakan kecepatan; perangkat lunak harus menggunakannya. Sebutkan hal ini saat membandingkan spesifikasi.
Anda telah memahaminya
- kinerja: kecepatan clock, inti, lebar bus, cache (ditambah ukuran kata, RAM, penyimpanan), masing-masing dengan konsekuensinya
- port: USB umum dan plug-and-play, HDMI video dan audio digital, VGA video analog
- ambil:
MAR ← [PC],PC ← [PC] + 1,MDR ← [[MAR]],CIR ← [MDR]; lalu dekode, eksekusi, ulangi - interupsi diperiksa di akhir setiap siklus: simpan status di tumpukan, jalankan ISR, kembalikan, lanjutkan