13 / 24 · Konsep
Peristiwa penerimaan dan kestabilan selama penundaan
Tetapkan tanggung jawab sumber dan penerima serta pertahankan muatan yang tertunda.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Transfer membutuhkan kedua sinyal pada suatu tepi
Valid menjanjikan bahwa sumber memiliki muatan untuk ditawarkan. Ready menjanjikan bahwa penerima dapat menerima satu muatan pada tepi saat ini. Tepi naik dengan kedua sinyal tinggi mentransfer tepat satu transaksi. Muatan mencakup setiap bidang pendamping, seperti tag, operasi, atau alamat. Sinyal valid yang terus tinggi dapat berarti satu item tertunda atau rangkaian item yang ditransfer pada tepi siap berturut-turut.
Saat valid tinggi dan ready rendah, pertahankan valid dan seluruh muatan tetap stabil. Kontrak kita hanya mengizinkan reset atau pengosongan eksplisit untuk membatalkan kewajiban itu. Jika sumber menunggu ready sebelum mengaktifkan valid sementara penerima menunggu valid sebelum mengaktifkan ready, keduanya dapat menunggu selamanya. Tawarkan item yang telah siap secara independen dari ready. Prinsip jabat tangan dan kestabilan ini didokumentasikan dalam spesifikasi AMBA AXI dari Arm, bagian A3. Aliran kecil ini bukan implementasi antarmuka AXI lengkap.
| Tepi | valid | ready | Muatan | Transfer |
|---|---|---|---|---|
| 0 | 1 | 0 | tag4,y9 | Tidak ada |
| 1 | 1 | 0 | tag4,y9 | Tidak ada |
| 2 | 1 | 1 | tag4,y9 | tag4 sekali |
| 3 | 1 | 1 | tag5,y12 | tag5 sekali |
| 4 | 0 | 1 | Tidak relevan | Tidak ada |
Tag4 harus tetap tidak berubah selama penundaan. Setelah transfernya pada tepi 2, sumber boleh menyajikan tag5. Ready saja pada tepi 4 tidak menciptakan transaksi. Menghitung valid saja dapat menghilangkan masukan; membaca data saja dapat menggandakan keluaran.
Aturan ini mengasumsikan satu domain clock. Aturan tersebut tidak menyelesaikan perpindahan domain clock atau metastabilitas. Hitung masukan yang diterima dan keluaran yang dikirim berdasarkan jabat tangan masing-masing. Tanpa reset, jumlah yang diterima dikurangi yang dikirim harus sama dengan pekerjaan internal yang belum selesai. Antrekan tag yang diterima dan hapus hanya saat pengiriman. Gabungkan pencatatan itu dengan pemeriksaan muatan tertunda untuk mendeteksi kehilangan, penggandaan, dan perubahan identitas meskipun nilai aritmetika kebetulan sama.
Coba sendiri
Valid tinggi pada empat tepi dalam tabel. Berapa transfer yang terjadi, dan tag mana yang ditransfer? Aturan mana yang dilanggar jika y berubah menjadi 10 pada tepi 1?
Baca penjelasan
Terjadi dua transfer, yaitu tag 4 dan 5 pada tepi 2 dan 3. Perubahan y pada tepi 1 melanggar kestabilan muatan untuk transaksi yang tertunda pada tepi 0.