Gic akış protokolü, AXI-akış protokolüne dayanmaktadır. Gic aktarımı için kullanılan IRI bileşeni (kesme yönlendirme altyapısı) cpu arabirimiyle bilgi aktarır. Distribütör, yeniden dağıtımcı ve ITS topluca IRI bileşenleri olarak anılır.
Gic akış protokolü aşağıdaki 2 arayüzü içerir:
Downlink AXI-stream arayüzü: IRI için bilgileri cpu arayüzüne aktarmak için kullanılır, bağlanın
Uplink AXI-stream arayüzü: bilgileri IRI'ya aktarmak için cpu arayüzü için kullanılır
Aşağıda gösterildiği gibi:
1. Arayüz sinyali
Arayüz sinyalleri, aşağı bağlantı arayüz sinyallerini ve yukarı bağlantı arayüz sinyallerini içerir. İster yukarı akış ister aşağı akış olsun, AXI-akış protokolüne dayanır Veri, veri sinyali yoluyla iletilir Veri sinyalinin bit genişliği de sabittir, bu 16 bittir.
Aşağı akış arayüz sinyalleri aşağıdaki tabloda gösterilmektedir: Arayüz protokolü, AXI-akış protokolüne dayanmaktadır.
Yukarı bağlantı arayüz sinyalleri aşağıdaki tabloda gösterilmektedir ve arayüz protokolü AXI-akış protokolüne dayanmaktadır.
İki, paket
IRI ve cpu arayüzü, gic akış protokolü aracılığıyla bilgi iletir ve iletilen bilgiler paketler halindedir. Paketler iki tür pakete ayrılır:
Yeniden dağıtıcı komut paketine bölünmüş komut paketi, cpu arayüzü komut paketi
Yanıt paketi, yeniden dağıtıcı yanıt paketine, cpu arabirimi yanıt paketine bölünmüştür
AXI akış protokolü, her seferinde 2 bayt iletir ve bir paket oluşturmak için birçok kez iletir. Farklı paketlerin farklı boyutları vardır, örneğin, bazıları 16 bayt ve bazıları 8 bayttır. Pakette iletilen ilk 16 bitlik veri, paketin tipini gösterir.
Bir bileşen bir komut paketi gönderirse, diğerinin bir yanıt paketi ile yanıt vermesi gerekir.
Aşağıdaki şekil, aşağı akış yeniden dağıtıcı komut paketidir.
Aşağıdaki şekil, yukarı bağlantı yeniden dağıtıcı yanıt paketidir.
Aşağıdaki şekil cpu arayüzü komut paketidir.
Aşağıdaki şekil cpu arayüzü yanıt paketidir.
Aşağıdaki cpu arayüzünün etkinleştirme komut paketidir, format aşağıdaki gibidir:
Bu etkinleştirme komutu, kesmenin tanındığını belirtmek için cpu arayüzü tarafından IRI'ya gönderilir.Kesme numarası paketteki INTID alanı ile temsil edilir.
IRI, cpu arayüzünün etkinleştirme komutunu aldıktan sonra bir etkinleştirme alındı yanıt paketini geri gönderecektir. IRI'nin cpu arayüzünün etkinleştirme komutunu aldığını gösterir.
Biçim aşağıdaki gibidir:
Paket iletimi sürecinde ilk verinin 16 bitlik düşük verisi önce gönderilir daha sonra ilk verinin 16 bitlik yüksek verisi gönderilir, sonraki veri varsa yukarıdaki sürece göre gönderilir. Bu nedenle, önce komut türü gönderilir.
Üç, paket iletim süreci
Aşağıdaki şekilde gösterildiği gibi, yeniden dağıtıcı cpu'ya bir kesme göndermelidir. Paket iletiminin akışı aşağıdaki gibidir:
Yeniden dağıtıcı, cpu arayüzüne bir set komutu gönderir ve bir interrupt X isteği gönderir.Cpu arayüzü komutu aldıktan sonra, eğer interrupt X mevcut öncelik gereksinimlerini karşılarsa, CPU arayüzü cpu'ya IRQ / FIQ aracılığıyla bir interrupt gönderir.
CPU, CPU arayüzü tarafından gönderilen kesmeye yanıt verir ve ardından kesmenin tanındığını ve kesme numarasının elde edildiğini belirten ICC_IAR yazmacını okur. Daha sonra cpu arayüzü, yeniden dağıtıcıya bir etkinleştirme yanıtı gönderir. Ardından IRQ / FIQ'yu iptal edin.
Yeniden dağıtıcı, CPU ICC_IAR kaydını okumadan önce kesmeyi iptal eder. Paket aktarım süreci aşağıdaki gibidir:
Yeniden dağıtıcı, cpu arayüzüne bir set komutu gönderir Komutu aldıktan sonra, cpu arayüzü cpu'ya IRQ / FIQ aracılığıyla bir kesme gönderir.
Yeniden dağıtıcı, kesmeyi temizlemek için cpu arayüzüne açık bir komut gönderir ve cpu arayüzü IRQ / FIQ'yu düşük çeker. Ardından yanıtı bırakın.
Cpu arayüzü, yeniden dağıtıcıya net bir onay yanıtı verir.
Bu sırada CPU IAR kaydını okursa, CPU sahte bir kesme numarası alır.
Yeniden dağıtıcı, cpu arayüzüne iki kesinti gönderir. Paket aktarım süreci aşağıdaki şekilde gösterilmektedir:
Yeniden dağıtıcı, önce set x komutunu gönderin ve kesme x'i gönderin. Cpu arayüzü komutu alır, yüksek IRQ / FIQ çeker ve CPU'ya bir kesme isteği gönderir.
Cpu, ICC_IAR kaydını okur, kesme x'i tanır ve kesme x'i işlemeye başlar. Cpu arayüzü, yeniden dağıtıcıya bir activ x yanıtı döndürür.
Bundan sonra, yeniden dağıtıcı set y komutunu CPU arayüzüne gönderir ve bir kesme y gönderir. Cpu arayüzünde, y önceliği gereksinimleri karşılıyorsa, IRQ / FIQ her zaman geçerli olacaktır. CPU'nun işlemesini bekleyin.
Yeniden dağıtıcı, cpu arayüzüne 2 kesinti gönderir ve ikinci kesme, ilk kesmeyi önler. Paket akışı aşağıdaki gibidir:
Yeniden dağıtıcı, önce set x komutunu gönderin ve kesme x'i gönderin. Cpu arayüzü komutu alır, yüksek IRQ / FIQ çeker ve CPU'ya bir kesme isteği gönderir.
Cpu ICC_IAR yazmacını okumadan önce, yeniden dağıtıcı set y komutunu cpu arayüzüne gönderir ve bir kesme y gönderir. Ve y, x'ten daha yüksek önceliğe sahiptir.
Cpu arabirimi yeniden dağıtıcıya sürüm x ile yanıt verir, bu da cpu arabiriminin interrupt x'i geçici olarak işlemediği ve interrupt x'in gelecekte yeniden gönderileceği anlamına gelir.
CPU, ICC_IAR kaydını okur ve kesme y'yi tanır. Cpu arabirimi, yeniden dağıtıcıya bir etkinleştirme y yanıtı döndürür.
Gic, CPU'yu kapatmak için CPU'ya bir kesinti gönderir.
Bu daha karmaşık. Çözülmeyecek.
yeniden dağıtıcı, CPU ve cpu arayüzünü güçlendirme isteği.
Bu da daha karmaşık, bu yüzden burada analiz etmeyeceğim.
Dört, özet
Gicv3'te IRI ve cpu arayüzü arasında bilgi paketler aracılığıyla iletilir. İletim arayüz protokolü AXI akışını kullanır. Çeşitli paket kombinasyonları sayesinde gic'in kesme işlemi ve kesme yönetimi gerçekleştirilir.
Daha sonra, mesaj kesme olan gicv3'te tanıtılan yeni bir kesme türü tanıtacağım.
İş teklifleri
Eğitim Bilgileri
Ayrıca ziyaret etmek için URL'ye de tıklayabilirsiniz