6 / 24 · Konsep
Jadwalkan sumber daya bersama dengan FSM
Akumulasikan empat nilai dengan satu penjumlah sambil mendefinisikan transisi keadaan dan penangkapan data.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Keadaan kendali menyatakan jadwal operasi
Sumber daya bersama memerlukan penjadwalan operasi sepanjang waktu. Pertimbangkan penjumlahan x0 hingga x3 dengan satu penjumlah dan akumulator sepuluh bit. Tangkap keempat operand saat permintaan diterima. Perubahan eksternal sesudahnya tidak boleh mengubah permintaan yang belum selesai. Pengendali memilih operand, mengaktifkan akumulasi, dan menentukan kapan hasil menjadi valid.
Gunakan keadaan IDLE, ADD0, ADD1, ADD2, ADD3, dan DONE. Tepi penerimaan pada IDLE menangkap masukan dan mengosongkan acc. Empat tepi berikutnya masing-masing menambahkan satu operand yang tersimpan. Tepat setelah tepi ADD3, jumlah akhir tersimpan dan keadaan menjadi DONE. DONE menahan hasil hingga penerima menerimanya. Versi sederhana ini kembali ke IDLE pada tepi tersebut dan tidak sekaligus menerima permintaan baru.
| Tepi | Keadaan lama | Tindakan | acc baru |
|---|---|---|---|
| 0 | IDLE | Tangkap 3,5,7,9 dan kosongkan acc | 0 |
| 1 | ADD0 | Tambahkan 3 | 3 |
| 2 | ADD1 | Tambahkan 5 | 8 |
| 3 | ADD2 | Tambahkan 7 | 15 |
| 4 | ADD3 | Tambahkan 9, masuk ke DONE | 24 |
| 5 | DONE | Penerima menerima hasil | 24 |
Bedakan ketersediaan hasil setelah tepi 4 dari transfer pada tepi 5. Penundaan penerima dapat memperpanjang DONE tanpa batas. Penggunaan ulang sumber daya mengurangi perangkat keras aritmetika, tetapi membatasi laju keluaran dibandingkan pipeline yang menerima setiap siklus. Dukungan penyelesaian dan permintaan baru secara bersamaan memerlukan prioritas eksplisit antara pengiriman hasil lama dan inisialisasi permintaan baru.
- IDLE: Terima dan tangkap keempat nilai
- ADD0..ADD3: Gunakan ulang satu penjumlah pada empat tepi
- DONE: Tahan hasil hingga diterima
Turunkan sinyal kendali dari keadaan: enable akumulator pada keadaan ADD, pemilihan operand yang sesuai dengan keadaan, dan valid hasil pada DONE. Berikan nilai bawaan pada keluaran kendali kombinasional. Definisikan penerimaan agar permintaan yang terus aktif tidak terulang secara tidak sengaja. Reset mengembalikan keadaan ke IDLE dan membuang pekerjaan yang belum selesai. Implementasi berbasis penghitung dapat mengurangi pengodean keadaan, tetapi tetap membutuhkan jadwal yang sama pada setiap tepi.
Coba sendiri
Berapa nilai acc setelah ADD0 hingga ADD3 untuk empat masukan sebesar 255? Apa yang harus terjadi ketika ready keluaran bernilai nol pada tepi 5?
Baca penjelasan
Nilainya 255, 510, 765, dan 1020, semuanya muat dalam sepuluh bit. Dengan ready=0, tidak ada pengiriman; pertahankan DONE, acc=1020, dan valid=1.