PCIe veri yolu için üç hata raporlama yöntemi vardır:
1. Tamamlamalar: Hata bilgilerini Tamamlama'daki durum biti aracılığıyla Talep'e döndür
2. Zehirli Paket (Hata İletimi olarak da bilinir): Alıcıya mevcut TLP Veri Yükünün yok edildiğini bildirin
3. Hata Mesajı: Hata bilgilerini ana bilgisayara bildirin
Önceki iki makaleden bahsedilmişti, hata mesajının biçimi ve ilgili mesaj kodlaması aşağıdaki gibidir:
PCI veriyolunun hata raporlama mekanizmasıyla uyumlu olması için (PERR # ve SERR # kullanarak), PCIe cihazı otomatik olarak CA, UR ve Poisoned TLP'yi karşılık gelen hata mesajlarına dönüştürecektir. Burada ayrıntılı olarak tanıtmayacağım, ilgilenenler PCIe Spec'in ilgili bölümlerini okuyabilirler.
PCIe cihazının konfigürasyon alanındaki durum ve kontrol kayıtları yukarıdaki şekilde gösterilmektedir. Bu kayıtlar, hata mesajları, sorgu hata durumu bilgileri ve bağlantı eğitimi ve başlatma durumu vb. Aracılığıyla hata raporlarının gönderilmesini etkinleştirmek (veya devre dışı bırakmak) için kullanılabilir. .
Önceki makalede bahsedildiği gibi, varsayılan hata sınıflandırması aşağıdaki tabloda gösterilmektedir:
Bu hata türleri, Aygıt Kontrol Kaydındaki ilgili bitler aracılığıyla etkinleştirilebilir veya devre dışı bırakılabilir:
Hata durumunu Aygıt Durum Kayıtlarının ilgili bitleri aracılığıyla da sorgulayabilirsiniz:
Tabii ki, Root hata mesajını aldığında, bununla nasıl başa çıkılacağı Kök Kontrol Kaydı ayarına bağlıdır:
Bağlantı hataları genellikle fiziksel katman ile veri bağlantı katmanı arasındaki iletişim sırasında ortaya çıkar. Bir Aşağı Akım cihazı için bağlantıda Önemli bir hata oluşursa, cihaz hatayı Köke bildiremez. Bu durumda, Yukarı Akım cihazının hatayı Kök'e rapor etmesi gerekir. Bağlantı hatalarını ortadan kaldırmak için genellikle bağlantıyı yeniden eğitmek (Yeniden Eğitim) gerekir. Aşağıdaki şekilde gösterildiği gibi, bağlantı kontrol yazmacında, bağlantı yeniden eğitimini zorlamak için Bağlantı Yeniden Eğit bitine 1 yazabilirsiniz.
Bir yeniden eğitim talebi başlatıldığında, yazılım aşağıdaki şekilde gösterildiği gibi bağlantı eğitiminin tamamlanıp tamamlanmadığını onaylamak için Bağlantı Durumu Kaydındaki Bağlantı Eğitimi bitini kontrol edebilir. Bu bit 1 olduğunda, bağlantı eğitiminin tamamlanmadığını (veya henüz başlamadığını) gösterir.Bağlantı eğitimi tamamlandıysa, donanım bu biti otomatik olarak sıfırlayacaktır.
PCIe veri yolu hata kaydı ve raporlamasının akış şeması aşağıdaki şekilde gösterilmektedir: