PCI numaralandırmada cihaz nasıl belirlenir? (Otobüs / cihaz / fonksiyonu)


8

PCI Veri Yolu / Aygıt / İşlev numaralandırma konusunda kafam karıştı. İçin Wikipedia sayfasına bakma PCI yapılandırması , Belirli bir veri yolu için, ana makinenin 0 işlevini kullanan tüm cihazlar için satıcı kimliği ve cihaz kimliği isteyeceğini görürüm. Geçerli bir cihaz kimliği ve satıcı kimliği bulunursa, orada bir PCI birimi var ve numaralandırılacak. Bus.device.function içindeki cihazın nasıl belirlendiğinden emin değilim.

Örneğin, bir PCI veri yolu ve ona bağlı bir PCI çevre birimine sahip bir CPU'm olduğunu varsayalım. CPU'nun 0 veriyoluna (varsayılan olarak) bakacağını ve 0 işlevine bakarak tüm aygıt numaralarını kontrol edeceğini biliyorum. Çevrenin aygıt numarası nasıl belirlenir?

Yanıtlar:


6

Orijinal PCI çerçevesinde ("Geleneksel PCI") ve PCI-X'te de cihazlar, her biri aynı paralel veri yoluna bağlı kendi konnektörlerine sahip "yuvalara" karşılık geldi. Her slot, numaralandırma sırasında iddia edilen benzersiz bir ID pinine sahipti. Numaralandırma esas olarak (her bir slot için) soruyordu: "Hey, bu slotta bir şey var mı?" Cihaz, bu sinyale yanıt olarak veri yolu üzerine veri verilerek cevap verdi. Yanıt eksikliği, cihaz olmadığı anlamına geliyordu.

Bir cihaz ayrıca bir alt otobüs oluşturduğu anlamına gelen bir “köprü” de olabilir. Bu veriyolunun ayrı bir kimliği olacak (giriş yönünden atanmış) ve bağımsız olarak numaralandırılmış kendi yuva kümesine sahip olacaktı.

PCI-Express (PCIe) tamamen farklıdır. PCIe gerçekten bir veri yolu değil - cihazlar arasında paylaşılan bir kaynakta olduğu gibi; bunun yerine, her bir cihazın yukarı yöndeki cihaza (ve aşağı yöndeki herhangi bir cihaza kendine özgü noktadan noktaya seri bağlantısı vardır) ve aşağı yöndeki cihazlara sahipse, bunun anlamı köprüdür) PCIe'yi LAN gibi düşünün. Her köprü, diğer cihazlara bağlı bir avuç dolusu bağlantı noktasına sahip olan bir anahtara benzer. Diğer cihazlar terminal cihazları olabilir veya diğer anahtarlar olabilir (yani, PCIe köprüleri).

PCIe, kavramsal çerçevesi ve adreslemesi (ve dolayısıyla yazılım için sağlanan davranışı) PCI ve PCI-X ile uyumlu olacak şekilde tasarlanmıştır. Uygulama olsa da tamamen farklı. Numaralandırma cihazlarında, örneğin, noktadan noktaya, numaralandırmadaki her noktada tespit edilmesi gereken tek soru "orada bir şey mi?" Her cihazın kendi bağımsız kablo seti olduğu için, cihaz kimlikleri temelde tümüyle kodlanmıştır (dolayısıyla üst seviye "kök kompleksi" dahil her köprü, anlatır Her cihazın kendi cihaz kimliği ne olacak).

Her durumda, veri yolu / cihaz / işlevin "işlev" kısmı kesinlikle çevre birimin içinde işlenir. Örneğin, çift bağlantı noktalı bir NIC denetleyicisi genellikle her bağlantı noktası için iki işlev görür. Bağımsız olarak konfigüre edilebilir ve işletilebilirler, ancak CPU'dan fonksiyona veri yolu her ikisi için de aynıdır.


1
Cevap biraz kafa karıştırıcı: 1) PCI "aygıt numarası" nda aslında "slot numarası" (ve anlam ifade ediyor) anlamına geliyor, 2) "PCIe tamamen farklı" diyorsunuz ve "her cihazın kendi bağımsız kablo seti olduğu için Cihaz kimlikleri temelde tümüyle kodlanmıştır ", bu da tel setinin (= yuva) kendisine zor kodlanmış bir kimliği olduğu anlamına gelir, bu yüzden PCI ile aynıdır. Şimdi, soru “kodlama” ne zaman gerçekleşiyor? Anahtarlar / köprüler sıfırlandığında ID'leri yeniden atar mı?
xealits

2
Evet. Bu daha iyi ifade edilebilirdi. Mesele şu ki, PCI’de, kart paylaşılan bir veriyolunda, ancak hangi yuvanın içinde olduğunu “biliyor” ve sadece yuvasına özgü pimi takıldığında yanıt veriyor. PCIe'de, köprü N farklı "tel" grubuna sahiptir. Bu nedenle, köprü cihazı her tel seti için ayrı bir yuva numarasına sahiptir. Köprünün bakış açısından, bu yuvanın kesin bir numarası vardır; sadece orada bir şey olup olmadığını belirlemek zorundadır. Kartın kendisi değil hangi yuvada olduğunu bilin. Köprü orada bir şey olduğunu belirlediğinde, o zaman anlatır bu cihazın slot numarası nedir.
Gil Hamilton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.