6. DMA VE VERİ YOLU
Giriş
Programlanmış ve kesme modlu G/Ç yapıları, verileri cihazdan bir CPU registerına (BBB’de akümülatör) veya CPU registerından cihaza aktarır. Aktarılacak veri miktarı yeterince büyükse CPU aşırı yüklenir. Verilerin boyutları büyük olduğunda ve üzerinde karmaşık hesaplamalar yapılmak istendiğinde bellekte yer alması gerekir. Verileri doğrudan ana belleğe veya bellekten aktarılması DMA ile yapılır.
6.1. DMA (Direct Memory Access – Doğrudan Bellek Erişimi )
Veri aktarım kontrol işlemlerinin çoğu bir cihaz denetleyicisi tarafından gerçekleştirilmektedir. CPU, DMA cihazına verileri aktarması için komut vererek aktarımı başlatır ve ardından kendi faaliyetlerine devam eder. DMA cihazı veri aktarımını gerçekleştirir ve CPU’yu yalnızca tamamlandığında kesmeye uğratır.
Şekil 6.1 bir DMA transfer yapısını göstermektedir. DMA cihazı (bir DMA denetleyicisi veya bir DMA kanalı) sınırlı kapasiteli bir işlemcidir. Yalnızca bir word sayım registerı (WCR – word count register), bir adres registerı ve bir veri ara belleği (data buffer) vardır. Bir aktarımı başlatmak için CPU, DMA kanalının adres registerına (AR) verinin aktarılması gereken bellek adresini ve WCR’ye aktarılacak verilerin birim (word veya bayt) sayısını gönderir. Data veri yolu bu iki registara bağlıdır. Genellikle, bu registerlar CPU tarafından adres veri yolu kullanan çıkış aygıtları olarak adreslenir. Bu registerların ilk değerleri veri yolu üzerinden kendilerine aktarılır. DMA denetleyicisi, aktarılan her word için WCR’yi azaltabilir ve AR’yi artırabilir. Bir giriş transferinde, DMA denetleyicisi giriş cihazını başlatır ve arabellek registerında ki verileri alır. Bu word daha sonra AR tarafından adreslenen bellek konumuna aktarılır; yani,
MAR AR:
MBR Data ara belleği, WRITE MEMORY:
Bu transferler adres ve data veri yolları kullanılarak yapılır.
Bu şemada, CPU ve DMA aygıt denetleyicisinin her ikisi de belleğe MAR ve MBR aracılığıyla erişmeye çalışır. DMA ve CPU tarafından belleğe aynı anda erişim mümkün değildir. Bu nedenle DMA işlemi sırasında CPU’nun belleğe erişimini engellemek için bir öncelik düzeni kullanılır. DMA cihazının belleğe erişmesi gerektiğinde CPU’nun belleğe erişimi engellenir ve veri aktarımı için CPU’dan bir bellek döngüsü alınıp DMA cihazına atanır. Aktarım tamamlandığında, CPU belleğe erişebilir. DMA denetleyicisi, WCR’yi azaltır ve sonraki aktarım için hazırlık olarak AR’yi artırır. WCR 0 olduğunda, DMA denetleyicisi tarafından CPU’ya bir aktarım tamamlandı kesmesi gönderilir. Şekil 6.2, DMA aktarımı sırasındaki olayların sırasını gösterir.
DMA cihazının ara belleğinde yer alan veriler hemen aktarılmazsa kaybolabildiğinden belleğe erişimi için her zaman CPU’dan daha yüksek önceliğe sahiptir. CPU DMA transfer döngüleri arasında belleğe erişebilir ancak DMA ile bağlanan bir G/Ç cihazı yeterince hızlıysa, bir kaç ardışık bellek döngüsünü alıp CPU’nun belleğe erişmesini birkaç döngü boyunca engelleyebilir.
DMA denetleyicileri, bir aygıta atanabilir veya birkaç G/Ç aygıtı arasında paylaşılabilir. Şekil 6.3, böyle bir paylaşımı mümkün kılan bir veriyolu yapısını göstermektedir. Bu veri yolu yapısı, uyumlu G/Ç veri yolu yapısı olarak adlandırılır çünkü bir G/Ç cihazı hem programlanmış hem de DMA transferlerini gerçekleştirmek üzere yapılandırılmıştır. DMA kanalları tüm G/Ç cihazları tarafından paylaşılır. G/Ç cihazı herhangi bir zamanda programlanmış veya DMA yolları üzerinden veri aktarabilir. Bazı bilgisayar sistemleri, bazı G/Ç cihazlarının DMA veri yoluna bağlı olduğu, diğerlerinin ise programlanmış bir G/Ç modunda CPU ile iletişim kurduğu bir çoklu veri yolu yapısı kullanır.
6.2. Bus (Veri Yolu) Mimarisi
Veri yolu mimarisi sistemin performansını doğrudan etkilediğinden en az işlemci mimarisi kadar önemlidir. Daha önce açıklandığı gibi, sistem veri yolu, işlemcinin bellek, disk sistemleri ve diğer G/Ç aygıtları ile bağlantısından sorumludur. Ek olarak, veri yolu sistemi, sistem saati ve bağlı cihazlar için tahkimi yöneterek daha gelişmiş G/Ç transfer mekanizmalarının yapılandırılmasına izin verir. Yıllar içinde birkaç standart veri yolu mimarisi geliştirilmiştir. Bu bölümde veri yolu kontrolü ve tahkim kavramları üzerinde durup üç standart veri yolu mimarisinin ayrıntılarını inceleyeceğiz.
6.2.1. Bus Denetimi
Veri yolu yöneticisi (bus master) olma yeteneğine sahip iki veya daha fazla aygıt bir veri yolunu paylaştığında çekişmeyi önlemek için bir veri yolu denetleyicisine ihtiyaç vardır. Tipik olarak, bir CPU ve G/Ç aygıtı yapısında, CPU veri yolu denetleme işlevini üstlenir. Modern bilgisayar sistemi yapılarında, veri yoluna birden fazla işlemcinin bağlı olması yaygındır. (DMA yapısı böyle bir örnektir.) Bu işlemcilerden biri veri yolu kontrol işlevini idare edebilir veya sistem yapısına ayrı bir veri yolu denetleyicisi dâhil edilebilir.
Şekil 6.4, üç yaygın veri yolu tahkim tekniğini göstermektedir. Burada meşgul sinyali, cihazlardan birinin veri yoluna bus master olarak atandığını gösterir. Veri yolu denetleyicisi, veri yolu meşgul değilse ve talep eden aygıtın önceliği mevcut veri yolu yöneticisinden veya diğer talep eden aygıtlardan daha yüksekse, veri yolunu yeni talep eden aygıta atar. Bu amaçla veri yolu talep ve veri yolu izin kontrol hatları kullanılır. Bu sinyaller sırasıyla kesmeye ve ACK sinyallerine benzer.
Şekil 6.4a’da ki aygıtlar en yüksek öncelikli Aygıt 1 ve en düşük öncelikli Aygıt N olacak şekilde, veri yolu izin yolu boyunca daisy-chain yapısında bağlıdırlar. Aygıtlar herhangi biri denetleyiciye istek gönderebilir. Veri yolu meşgul olmadığında, denetleyici daisy-chain boyunca bir izin gönderir. Yetki isteyen cihazlar arasındaki en yüksek öncelikli olan, veri yolunu meşgul eder, veri yolu izin sinyalinin hat boyunca daha ileri gitmesini durdurur ve veri yolu yöneticisi olur. Şekil 6.4b’de, bir veya daha fazla aygıttan gelen veri yolu talebine yanıt olarak, denetleyici kontrol uygular (önceden tasarlanmış bir öncelik sırasına göre) ve aralarında en yüksek öncelikli aygıtı seçerek veri yolunu ona verir. Alternatif olarak, Şekil 6.4c’deki gibi bağımsız veri yolu tahsis hatları olabilir. Şekil 6.4c’de, bağımsız veri yolu talebi ve izin hatları bulunmaktadır. Denetleyici, izin talep eden cihazlar arasındaki öncelikleri çözer ve aralarında en yüksek öncelikli cihaza yetki gönderir.
6.2.2. Bus Standartları
Bu bölüm de üç veri yolu standardının (Multibus I, Multibus II ve VMEbus) veri ve kontrol sinyallerine, tahkim mekanizmalarına, kesme oluşturma ve işlemeleri üzerinde durulacaktır.
Veri yolu mimarilerini incelerken ve karşılaştırırken, transfer mekanizması, kesinti hizmeti ve veri yolu tahkim gibi çeşitli özniteliklere bakmak gerekir. Bu bakımdan VMEbus ve Multibus I-II, aralarında birçok farklı mekanizmalar uyguladıklarından farklılıkları göstermek için uygun veri yollarıdır. Kesme servisi, doğrudan veya vektörlü tekniklerle gerçekleştirilebilir. Veri yolu aktarımları eşzamanlı veya eşzamansız olabilir. Veri yolu yöneticileri, veri yolunun kontrolü için seri (daisy-chain) veya paralel bağlantı kullanabilir. Modern veri yolları, eşzamansız tahkim ve DMA gibi teknikleri kullanarak, belleğe ve G / Ç cihazlarına erişirken işlemcinin karşılaştığı darboğazı azaltabilir. Günümüzde işlemcilerin performansı veri yolu performansına göre daha hızlı bir şekilde gelişmektedir ve işlemci performansının artması ile daha hızlı veri yolu standartları ihtiyacı ortaya çıkmaktadır. Aradaki bu boşluğu ortadan kaldırabilmek veya bekleme süresini en aza indirilebilmek için daha hızlı veri yolu standartları geliştirilmelidir.
Multibus I eski bir standart olmasına rağmen (IEEE Standardı 796), iyi tasarlanmış bir mimarinin uzun yıllar uygulanabilir bir sistem sağlayabileceğini kanıtlamıştır. Bu veri yolunu kullanan sistemler yaklaşık 1976’dan beri mevcuttur, ancak bazı uygulamalar daha modern sistemlerde de kullanılmıştır. Multibus mimarisinin uzun süreli varlığı tasarım hedefleri olan basitlik, işlemci ve sistem esnekliği, yükseltme kolaylığı ve zorlu ortamlar için uygunluğunun doğrudan bir sonucudur.
Multibus I sistemi, bir kart üzerinden birbirine bağlanan bir veya daha fazla donanımdan oluşur. Mimari işlemciden bağımsızdır böylece birçok farklı işlemci kullanan sistemde kullanılabilir. Multibus I hem tek hem de çok işlemcili mimarileri destekler.
Multibus I kontrol sinyalleri aktif low dur ve pull-up dirençleri üzerinden iletilirler. İki ayrı saati vardır. Veri yolu saati (BCLK – bus clock) 10 MHz’de çalışır ve veri yolu yönetimi alma işlemlerini senkronize etmek için kullanılır. Sabit saat (CCLK – constant clock) de 10 MHz’dir ve master birimin belleğe veya G/Ç alanına okuma veya yazma başlatması için master ve slave birimlere yönlendirilmiştir. Yazma işlemleri sırasında bir aktif sinyal, adres hatlarında taşınan adresin geçerli olduğunu gösterir. Okuma işlemi sırasında, aktif durumdan pasif duruma geçiş, master birimin slave’den istenen verileri aldığını gösterir. Slave’ler, istenen bir işlemi tamamladığını master’a belirtmek için transfer onayı (XACK) sinyalini yükseltir. Sistemi başlangıç durumuna sıfırlamak için başlatma sinyali (INIT) kullanılır. Kilit (LOCK) sinyali, veri yolunu kilitlemek için kullanılabilir.
Multibus I, 24 adrese kadar destek verir (ADR0 – ADR23). 24 adres hattının izin verdiği maksimum değer olan 16 MB’den büyük bellek boyutları bir bellek yönetim birimi tarafından yönetilir. Hem 8 hem de 16 bit işlemciler desteklenir. G/Ç erişiminde, veri alanından ayrı olarak 64K’ya kadar G/Ç adres alanı sağlayan 8 veya 16 adres hattı kullanılır.
16 veri hattı vardır (DAT0 – DAT15), ancak 8-bit sistemler için sadece ilk 8 geçerlidir. DAT0, en düşük değerlikli bittir (LSB). Veri hatları bellek ve G/Ç cihazları arasında paylaşılır. Hem 8 hem de 16 bitlik sistemlerin kullanımına, diğer sekiz satırın geçerliliğini belirtmek için 16 bit sistemlerde kullanılan bayt yüksek etkinleştirme sinyali (BHEN – Byte High Enable) tarafından izin verilir. Bir bellek okuma veya yazma sırasında başka bir slave birimin veri yolu aktivitesini engellemek için bir slave tarafından kullanılan iki engelleme hattı vardır (INH1 ve INH2 – inhibit). Doğrudan veya vektörlü olarak çalışmak üzere yapılandırılabilir sekiz kesme hattı (INT0 – INT7) mevcuttur. Kesme onay sinyali (INTA – interrupt acknowledge), vektörlü yöntemde, kesme durumunu dondurmak ve kesme cihazından vektör adresini veri yolu hatlarına yerleştirmesini talep etmek için master birim tarafından kullanılır.
Veri yolu tahkimi, beş hat üzerinden sağlanır. Veri yolu meşgul (BUSY) hattı, o anda veri yolunda master olan cihaz tarafından veri yolunun durumunu belirtmek için kullanılır. Çift yönlü bir sinyaldir ve BCLK tarafından senkronize edilir. Seri veya paralel öncelik düzenlerinde, diğer veri yolu yöneticileri, zincir veya paralel devre boyunca veri yolu kontrolü talebini iletmek için (BPRN – bus priority in) kullanır. Seri bağlantıda, veri yolu kontrolü talebi için veri yolu öncelik çıkış sinyali (BPRO – bus priority out) bir sonraki yüksek öncelikli veri yolu yöneticisine aktarılır. Paralel öncelik düzeninde, veri yoluna erişim talep eden her bir veri yolu yöneticisi, veri yolu talep sinyali (BREQ – bus request signal) üretir. Paralel devre, öncelikleri çözümler ve kontrol talep eden en yüksek öncelikli master için BPRN’yi etkinleştirir. Opsiyonel bir sinyal olan ortak veri yolu talebi (CBREQ – common bus request), veri yolu kontrolü talebi için herhangi bir master birim tarafından kullanılabilir. Bu, daha düşük önceliğe sahip bir master’ın veri yolu kontrolü istemesine izin verir.
Multibus I veri aktarımı eşzamansızdır ve DMA aktarımını destekler. Sistemdeki aygıtlar, master veya bellek gibi bir aktarım başlatamayan slave aygıtlar olabilir. Multibus I, seri veya paralel öncelik şemaları kullanarak 16’ya kadar master aygıtı destekler. Veri aktarımı aşağıdaki sırayla gerçekleşir:
1. Veri yolu yöneticisi, bellek veya G/Ç adreslerini adres hatlarına yerleştirir.
2. Bus master, uygun komut sinyalini üretir.
3. Slave, gelen verileri kabul ederek yazma işlemini gerçekleştirir veya okuma işlemi için verileri data hatlarına yerleştirir.
4. Slave, aktarım onay sinyalini (ACK) master’a geri gönderir.
5. Bus master, komut hatlarında ki sinyali kaldırır ve ardından adres ve data hatlarını temizler.
Multibus I veri aktarımları eşzamansız olduğu için, herhangi bir hata oluşması durumunda aktarım belirsiz bir süre boyunca uzayabilir. Bu durumda döngüyü sonlandırmak için önceden ayarlanmış en az 1 s’lik bir süreden sonra veri yolu zaman aşımı uygulanabilir. Herhangi bir bellek aktarımı için, bir slave, başka bir slave’in transferini engellemek için engelleme (INHx) hatlarını kullanır. Bu işlem genellikle tanılama uygulamalarında ve cihazlarında kullanılır, normal çalışmada genellikle kullanılmamaktadır. 8- ve 16-bit cihazlar arasında aktarım yapılırken, bayt yüksek etkinleştirme sinyali (BHEN) ve en düşük değerlikli adres satırı (ADR0) çift baytın mı yoksa tek baytın mı aktarılacağını belirlemek için kullanılır. Çift baytlık bir aktarımda her ikisi de devre dışıdır. Tek baytlı transfer için, BHEN aktif değildir ve ADR0 aktiftir. İki 16 bit cihaz arasında aktarım yaparken, her iki sinyal de etkindir.
Multibus I, doğrudan ve vektörlü olmak üzere iki kesme yöntemini destekler. Doğrudan kesmeler, cihaz adresinin adres hatlarına yerleştirilmesine gerek kalmadan master tarafından yürütülür. Vektörlü kesme yönteminde master aygıt vektör adresini belirlemek yerine kesintiye uğratan slave’i sorgulayarak kesme işlemini yürütür. IRQ oluştuğunda, veri yolu yöneticisi INT komutunu üreten işlemcisine kesme uygular ve isteğin önceliğinin analiz edilebilmesi için kesme mantığının durumunu dondurur. INT komutundan sonra, veri yolu yöneticisi en yüksek öncelikli talebin adresini belirler ve adresi veri yolu adres satırlarına yerleştirir. Kesme vektörünün adresinin boyutuna bağlı olarak, fazladan bir veya iki INTA komutu üretilmelidir. İkincisi, slave birimin kesme vektörünün düşük sıralı (veya yalnızca) baytını veri hatları üzerinde iletmesine neden olur. Gerekirse (16 bit adresler için) üçüncü INTA, yüksek sıralı baytın veri hatlarına yerleştirilmesine neden olur. Veri yolu yöneticisi daha sonra veri hatlarına yerleştirilmek için yüksek sıralı baytı kullanır. Bus master daha sonra bu adresi kesmeye hizmet etmek için kullanır.
Multibus I, birden fazla bus master barındırabildiğinden, master cihazların veri yolu kontrolü için müzakere etmesine olanak sağlayan bir mekanizmaya ihtiyaç vardır. Bu, seri veya paralel öncelikli müzakere yoluyla gerçekleşebilir. Seri müzakere daisy-chain tekniği kullanılır. Her bir master öncelik sıralarına göre birbirine bağlanır. Bir veri yolu yöneticisi, veri yolunun kontrolünü talep ettiğinde, BPRO sinyalini üretir ve BPRN sinyalini bloke eder, böylece tüm düşük öncelikli masterların isteklerini kilitler. Paralel mekanizmada, bir veri yolu hakemi her bir master’ın BPRN ve BREQ sinyallerini alır. Veri yolu hakemi daha sonra talebin önceliğini belirler ve talebi gerçekleştirir.
Veri yolu hızı İşlemcinin G/Ç’si yetersiz kaldığında, Multibus I DMA gibi yüksek verimli aktarımlar yapan veri yolu eklentilerinin kullanımına izin verir. Standart bir Multibus I sisteminde, maksimum aktarım saniyede 10 MB ile sınırlıdır ancak Multibus I mimarisinden sonra geliştirilen işlemciler çok daha yüksek hızlara sahiptir. 20 MHz Intel 80386 yongası saniyede 40 MB hızla aktarım gerçekleştirebilir. Multibus I hem iLBX hem de iSBX eklentilerine destek verir. ILBX, Multibus I standardıyla aynı mimariye sahiptir ve bir genişletme kartı şeklinde hızlı bir bellek eşlemeli arabirimdir. Karmaşık veri yolu tahkimini sınırladıkları için en fazla iki master cihaz veri yolunu paylaşabilir. Veri yolu tahkimi sonrası veri aktarımları eşzamansız olarak gerçekleşir. ILBX slave’ler, doğrudan iLBX veri yolu hatlarından kontrol edilen bayt adresli bellek kaynaklarıdır. 16 bitlik aktarımlar için saniyede maksimum 19 MB iş hacmine izin verir. İSBX genişletme kartı, Multibus I mimarisinin işlevlerinin çoğunu devralan kendi G/Ç ve DMA transferlerini gerçekleştirir. İSBX veri yolu eklentisi Multibus II’ye doğru bir evrimin ilk adımlarıdır.
Multibus I, 1974’te tanıtılmış, temel olarak bir CPU ve bellek veri yoludur. Daha sonra, zamanının gerçek zamanlı uygulamalarının çoğunu çözebilen çoklu master cihaza izin veren bir bellek veri yoluna dönüştü. Ancak 1980’lerin sonuna doğru artık yetersiz kalmaya başlamıştı. Bu nedenle Intel, yeni nesil veri yolu Multibus II’yi tanımlamak için 18 endüstri lideriyle bir konsorsiyum oluşturdu.
Konsorsiyum, tüm kullanıcı ihtiyaçlarını karşılamak için tek bir veri yolunun kullanılamayacağına karar verdi; bu nedenle, dört alt sistemden oluşan bir çoklu veri yolu yapısı tanımlandı. Dört alt sistem şunlardır:
1) G / Ç genişletmeleri için iSBX veri yolu
2) Bir CPU veri yolu
3) Bir bellek genişletme veri yolu
4) Bir seri ve bir paralel olacak şekilde iki sistem veri yolu.
Multibus II standardı için IEEE 1101 standardlı çift 96 pin DIN konektörü seçildi.
Multibus I ürünlerinin popülaritesi, genişletilebilir G/Ç veri yolu için iSBX’in (IEEE 894) benimsenmesini teşvik etmiştir. Veri yolu yapısı, alt sistem tasarımında gereken performansa bağlı olarak değişir. Intel, yüksek performanslı yerel genişletme veri yollarında kullanmak üzere 12 MHz Intel 80286 işlemci için optimize edilmiş iLBX II standardını başlattı.
Çoğu veri yolundaki CPU bellek veri yolu sistem düzeyi gereksinimler için yeterli olmadığından, Multibus II de sistem alanı ayrılmıştır. Bu alan ara bağlantı alanı ve mesaj alanı olmak üzere iki bölümden oluşur. Ara bağlantı alanı, başlatma, kendi kendine teşhis ve yapılandırma gereksinimleri için kullanılır. Mevcut veri yollarıyla uyumluluğu korumak için geleneksel CPU-bellek alanı korunur.
Intel, Multibus II paralel sistem veri yolunu, mesaj geçiren yardımcı işlemci (MPC – message-passing coprocessor) adı verilen tek bir VLSI yongasına uyguladı. Bu yonga 70.000 transistorden oluşur ve işlemciyi sistem veri yoluna bağlamak için gereken hemen her şeyi içerir. Paralel sistem veriyolu 40 Mbit’e kadar veri aktarımına izin veren 10 MHz saatli 32-bitlik veri yoludur.
Tanımlama (identification) registerları, kart tipi, üreticisi ve üzerinde ki bileşenler hakkında bilgileri içerir. Bunlar salt okunur registerlardır. Yapılandırma (Configuration) registerları, sistem yazılımı tarafından ayarlanabilen ve değiştirilebilen okuma / yazma alanlarıdır. Teşhis (Diagnostics) registerları, kartın kendi kendine teşhisi için kullanılır.
Ara bağlantı alanı, devre kartı üzerinde ki kartların yerlerinin fiziksel yuva konumlarına göre bulunabileceği fikrine dayanır. Coğrafi adresleme olarak adlandırılan bu ilke, sistem genelinde başlatma için kullanılır. Her bir kart içinde 2 baytlık bir satıcı kimliği, 10 baytlık bir kart adı ve satıcı tarafından tanımlanmış diğer bilgileri içeren standartlaştırılmış 32 bayt header biçimine sahip bir yazılım (Firmware) vardır. Önyükleme sırasında, sistem yazılımı (Firmware) kaynaklarını bulmak için her bir kartı tarar ve ardından uygun sürücüleri yükler. Bu yöntem, sisteme her yeni kart eklendiğinde yeniden yapılandırma ihtiyacını ortadan kaldırır. Sistemdeki her bir kart, yazılımı kullanarak kendi başlatma ve testini gerçekleştirir ve gerekli tüm bilgileri işletim sistemine iletir, böylece mesaj adresleri için temel olarak kullanılacak bir kaynak konum haritası oluşturulur.
Her Multibus II kartı, ara bağlantı alanındaki durumu kendi kendine test etme ve raporlama yeteneğine sahip olmalıdır. Kendi kendini sınama, açılış sırasında veya doğrudan konsoldan başlatılabilir. Bir donanım arızası tespit edilirse, ön panelde sarı bir LED yanacak ve arızanın kolayca tanımlanmasına ve kartın değiştirilmesine yardımcı olacaktır.
Multibus II’nin yüksek performansı, CPU-bellek veri yolu ve sistem veri yolu arasındaki etkinliklerin ayrılmasıyla elde edilir. Bu yaklaşım iki avantaj sağlar: işlemlerin paralelliği artar ve bir veri yolu bant genişliği diğerinin aktarım hızını sınırlamaz. Yerel veri yolu ve sistem veri yolu bağımsız ve paralel olarak çalışır. Bu, MPC’ye entegre edilmiş dokuz 32 baytlık ilk giren ilk çıkar (FIFO) arabelleği kullanılarak elde edilir. Bunlardan beşi kesmeler için (bir gönderme ve dört alma) ve dördü veri aktarımı için (ikisi göndermek için, ikisi almak için) kullanılır.
Multibus II, paket adı verilen, donanım tarafından tanınan bir veri türü kullanır. Paketler, kenar tetiklemeli olarak 10 MHz senkron veri yolunun saat darbeleriyle hareket ettirilir, böylece tek bir paket, veri yolunu 1 s’den daha uzun süre işgal edemez. Sistemdeki her panele bir adres atanır. Bu adres kaynak ve hedef alanlarında kullanılır. Standartta yedi farklı tip tanımlanmıştır. Paketler iki gruba ayrılır: talep edilmiş ve talep edilmemiş. Veri aktarımları için talep edilmiş paketler kullanılırken, talep edilmemiş paketler kesmeler için kullanılır. Veri alanları kullanıcı tanımlıdır ve 4 baytlık artışlarla 0 ila 32 (istenmeyen paketler için 28) bayt uzunluğunda olabilir.
Talep edilmemiş paketler, hedef veri yolu MPC’si için her zaman bir “sürpriz” dir. Bu paketler, 28 bayta kadar bilgi taşımak için ek özelliğe sahip paylaşımlı bellek sistemlerindeki kesmelere benzer. Genel kesme paketleri, herhangi iki kart arasında gönderilebilir. Yayın kesmeleri sistemdeki tüm kartlara gönderilir. Büyük veri aktarımlarını başlatmak için diğer üç tür (arabellek isteği, reddetme ve izin) kullanılır. Talep edilmemiş paketlerin aksine, talep edilmiş paketler hedef MPC için tahmin edilemez değildir. Bu paketler, kartlar arasında büyük veri aktarımları için kullanılır. Talep edilmiş paketler tarafından 16 MB’a kadar veri aktarılabilir. Paket oluşturma, veri yolu tahkim, hata denetimi ve düzeltme gibi tüm işlemler MPC tarafından yapılır ve işlemci tarafından izlenebilir.
Multibus II sistem veriyolu, dağıtık bir tahkim şeması kullanır. Her kartın daisy-chain devresi vardır. Sistem veriyolu, her bir MPC tarafından sürekli olarak izlenir. Programın tahkim algoritmaları adillik ve yüksek önceliktir. Adillik modunda, veri yolu kullanılıyorsa, MPC veri yolunu istemeden önce bekler; veri yolu meşgul olmadığında, MPC talepte bulunur ve bir veri yolu izni için bekler; MPC veri yolunu kullandığında, diğer tüm talep edenler onu kullanana kadar veri yolunu talep etmez. Veri yolunun son kullanımından bu yana hiçbir veri yolu talebi gelmediyse, MPC bir tahkim döngüsü gerçekleştirmeden veri yoluna erişir. Bu mekanizma, veri yolunun tek bir kart tarafından tekeline alınmasını engeller. Her MPC veri yolunu maksimum 1 s kullandığından saat döngüleri boşa gitmez ve tüm transferler arka arkaya çalışır.
Yüksek öncelikli mod, kesmeler için kullanılır. Veri yoluna bir sonraki erişim talep eden MPC veri yolu denetleyicisine verilir. Genellikle kesme paketleri yüksek öncelikli modda gönderilir ve bu, çoğu kesme paketinin maksimum 1 s gecikme süresine sahip olduğu anlamına gelir.
Paralel sistem veri yolu 96 pin konnektörlüdür. Sinyaller beş gruba ayrılır: merkezi kontrol, adres / veri, sistem kontrolü, tahkim ve güç. Paralel sistem veri yolu eşzamanlıdır ve 10 MHz’lik sistem saatinin net olmasını sağlamak için büyük özen gösterilir. IEEE / ANSI 1296 standartı, eşzamanlı saat darbelerinin her birinde tam olarak ne olduğunu ayrıntılarıyla açıklar, böylece belirsizlik olmaz. Uyumluluğu garanti etmek için veri yolu aktivitesini izleyen çok sayıda durum makinesi tanımlanmıştır.
Merkezi hizmetler modülü (CSM – central services module ) olarak adlandırılan yuva 0’daki kart, tüm merkezi kontrol sinyallerini üretir. Bir CPU üzerine, özel bir karta veya backplane in kendisine uygulanabilir. Buradan sonra sinyal adının sonunda göreceğimiz * simgesi o sinyalin Aktif low olduğunu belirtir. Modül reset işlemi uygular (RST *), cold start, warm start ve güç arızası durumlarında DCLOW * ve PROT * kombinasyonları kullanılır. İki sistem saati (10 MHz’de BCKL * ve 20 MHz’de CCLK *) oluşturulur.
IEEE / ANSI 1296, paralel sistem veri yolunu eşlik kontrollü (PAR0 * –PAR3 *) 32 bit (AD0 * –AD31 *) olarak tanımlar. Çoklanmış (multiplexed) adres / data veri yolu olarak tanımlandığından, sistem kontrol hatları veri ve adresler arasında ayrım yapmak için kullanılır. Tüm transferler eşlik hatası için kontrol edilir ve eşlik hatası durumunda MPC veri yolu denetleyicisi işlemi tekrar dener. Hata 16 denemede düzeltilmezse, MPC ana işlemciyi durdurur ve yardım ister.
İşlevleri çoklanan (multiplex) 10 sistem kontrol hattı (SC0 * –SC9 *) vardır. SC0 *, veri yolu çevriminin mevcut durumunu (istek veya yanıt) ve SC1 – SC7 hatlarının nasıl yorumlanacağını tanımlar. SC8 ve SC9 eşlik durumlarını kontrol eder. DiGiacomo’nun (1990) el kitabından alınan Tablo 6.4, sistem kontrol hatlarının işlevlerini özetlemektedir.
VMEbus, sıkı bir şekilde birleştirilmiş bir donanım konfigürasyonunda veri işleme, veri depolama ve çevresel kontrol cihazlarının entegrasyonunu basitleştiren standart bir devre kartı ara yüzüdür. VMEbus sistemi aşağıdaki işlevleri kapsayacak şekilde tasarlanmıştır:
1. VMEbus’a arayüzlü cihazların dâhili faaliyetlerini bozmadan cihazlar arasında iletişime izin vermek.
2. VMEbus’a arayüzlü diğer cihazlarla güvenilir ve net bir şekilde iletişim kuracak cihazları tasarlamak için gereken elektriksel ve mekanik sistem özelliklerini belirtmek.
3. Cihazlar arasındaki etkileşimi kesin olarak tanımlayan protokolleri belirtmek.
4. Sistem protokolünü açıklayan terminoloji ve tanımlar sağlamak.
5. Tasarımcının sistem uyumluluğunu etkilemeden maliyeti ve / veya performansı optimize edebilmesi için geniş bir tasarım aralığı sağlamak.
6. Performansın sistemin ara yüzü ile değil, esas olarak cihazın kendisi ile sınırlı olduğu bir sistem sağlamak.
VMEbus yapısı, devre kartı ara yüz mantığı, veri yolları adı verilen dört sinyal hattı grubu ve bir dizi işlevsel modülden oluşur. Devre kartı değerlendirme katmanı olarak adlandırılan en alt katman, devre kartı ara yüz mantığı, yardımcı program veri yolu modülleri ve tahkim veri yolu modüllerinden oluşur. VMEbus veri aktarım katmanı, veri aktarım veri yolu ve öncelikli kesme veri yolu modüllerinden oluşur.
Veri aktarım veri yolu, veri yolu yöneticilerinin ikili veri aktarımını kendileri ve bağımlılar arasında yönlendirmesine izin verir. Veri aktarım veri yolu 32 veri hattı, 32 adres hattı, 6 adres değiştirme hattı ve 5 kontrol hattından oluşur. Sekiz temel veri aktarım veri yolu döngüsü vardır:
1) okuma,
2) yazma,
3) hizasız yazma,
4) blok okuma,
5) blok yazma,
6) okuma-değiştirme-yazma,
7) sadece adres
8) kesme onay çevrimi.
Slave, bir master tarafından başlatılan veri aktarım veri yolu döngüsünü algılar ve kendisi ile ana birim arasında veri aktarır.
Öncelikli kesme veri yolu, kesme modüllerinin kesme işleyici modüllerinden kesme talep etmesine olanak tanır. Öncelikli kesme veri yolu, yedi IRQ hattından, bir kesme onaylama hattından ve bir kesme onaylama daisy-chaininden oluşur.
Kesme üretici, yedi IRQ hattından birini sürerek bir IRQ oluşturur. Kesme işleyicisi, kesiciler tarafından üretilen IRQ’ları algılar ve durum veya tanımlama bilgisi isteyerek yanıt verir. İsteği bir kesme işleyicisi tarafından kabul edildiğinde, kesme üreticisi, kesme işleyicisine 1, 2 veya 4 baytlık durum veya kimlik bildirir. Bu, kesme işleyicisinin kesmeye hizmet etmesini sağlar. Kesme onaylama daisy-chain sürücüsünün işlevi, bir kesme işleyicisi bir IRQ’yu her onayladığında, kesme onayı daisy-chaini etkinleştirmektir.
VMEbus, birçok masterın ve kesme işleyicisinin aynı anda veri aktarım veri yolunu kullanması gerekebileceği çok işlemcili sistemleri desteklemek için tasarlanmıştır. Dört veri yolu istek hattı, dört daisy-chain veri yolu verme hattı, veri yolu açık ve veri yolu meşgul olarak adlandırılan hatlardan oluşur oluşur.
Hizmet (utility) veri yolu, periyodik zamanlama sağlayan ve VMEbus sisteminin güç açma ve kapatma sıralarını koordine eden sinyaller içerir. Hizmet veri yolu tarafından üç modül tanımlanır: sistem saat sürücüsü, seri saat sürücüsü ve güç monitörü. İki saatli bir hat, bir sistem sıfırlama hattı, bir güç kesintisi hattı, bir sistem arıza hattı ve bir seri veri hattından oluşur.
Sistem saat sürücüsü sabit frekanslı 16 MHz sinyal sağlar. Seri saat sürücüsü, VMEbus’ın çalışmasını senkronize eden periyodik bir zamanlama sinyali sağlar. VMEbus, VMEsystem mimarisinin bir parçasıdır ve bir işlemciler arası seri iletişim yolu sağlar.
Güç monitor modülü, VMEbus sisteminin birincil güç kaynağının durumunu izler. Güç, güvenilir sistem çalışması için gereken sınırların dışına çıktığında, uygun bir kapatmayı gerçekleştirmek için güç kesintisi hatlarını kullanarak VMEbus sistemindeki tüm kartlara zamanında bir uyarı yayınlar.
Sistem denetleyici kartı, VMEbus devre kartının 1. yuvasında bulunur ve VMEbus tarafından tanımlanan tüm işlevleri içerir. Bu işlevler arasında sistem saati sürücüsü, kesme onay daisy-chain sürücüsü ve veri yolu zamanlayıcısı bulunur.
VMEbus üzerinde iki sinyal protokolü kullanılır:
– kapalı döngü protokolleri
– açık döngü protokolleri
Kapalı döngü protokolleri, birbirine bağlı veri yolu sinyalleridir, açık döngü protokolleri ise yayın veri yolu sinyallerini kullanır. Adres ve veri, birbirine bağlı sinyallerdir. Veri onayı veya veri yolu hata sinyalleri ile birbirine bağlıdırlar ve adreslerin, verilerin aktarımını koordine ederler. Bir yayın sinyalini onaylamak için bir protokol yoktur; bunun yerine yayın, tüm uygun modüllerin sinyali algılamasını sağlayacak kadar uzun süre tutulur. Yayın sinyalleri herhangi bir zamanda etkinleştirilebilir.
VMEbus üzerindeki en küçük adreslenebilir depolama birimi bayttır. Master birimler, adresi her döngünün başında veri aktarım veri yolu üzerinden yayınlar. Bu adresler 16, 24 veya 32 bitten oluşabilir. 16 bit adresler kısa adresler, 24 bit adresler standart adresler ve 32 bit adresler genişletilmiş adresler olarak adlandırılır. Master, slave’lere adresin kısa, standart veya genişletilmiş olduğunu söylemek için her adresle birlikte 6 bitlik bir adres değiştirici (AM – address modifier) kodu yayınlar.
Veri aktarım veriyolu ile ilişkili dört temel veri aktarım özelliği vardır: D08 (çift ve tek bayt), D08 (yalnızca tek bayt), D16 ve D32.
VMEbus beş temel veri aktarım döngüsü içerir. Bu döngü türleri arasında okuma döngüsü, yazma döngüsü, blok okuma döngüsü, blok yazma döngüsü ve okuma-değiştirme-yazma döngüsü yer alır. İki tür döngü daha tanımlanmıştır: yalnızca adres döngüsü ve kesinti onay döngüsü. Veri aktarmayan yalnızca adres döngüsü haricinde, tüm bu döngüler 8, 16 veya 32 bitlik veriyi aktarmak için kullanılabilir.
Okuma ve yazma döngüsü 1, 2, 3 veya 4 baytlık veriyi okumak veya yazmak için kullanılabilir. Master birim bir adres ve bir adres değiştirme modu yayınladığında döngü başlar. Blok aktarım döngüleri, 1–256 baytlık bir veri bloğunu okumak veya yazmak için kullanılır. VMEbus, blok aktarımlarının maksimum uzunluğunu 256 bayta sınırlar. Okuma-değiştirme-yazma döngüleri, başka bir master birimin o konuma erişmesine izin vermeden, bir slave konumdan okumak ve ona yazmak için kullanılır. VMEbus protokolü, önceki döngü için veri aktarımı devam ederken bir master’ın sonraki döngü için adresi yayınlamasına izin verir.
VMEbus, çok işlemcili bir sistemdeki işlemcilerin birbirleriyle iletişim kurabilmeleri için IRQ hatlarını ve konum monitörlerini kullanır.
VMEbus, geniş bir kullanıcı yelpazesine hitap etmek için gereken hem performansı hem de çok yönlülüğü sağlar. Popülerliğindeki hızlı yükselişi, onu en popüler 32-bit veri yolu yapmıştır. VMEbus sistemleri, kaçınılmaz değişiklikleri mevcut ekipmanı geçersiz kılmadan karşılar.
6.3. Kanallar
Kanallar DMA modunda G/Ç aktarımları gerçekleştirirler ancak bir DMA cihazından daha karmaşık yapıya sahiptirler. Bir kanal bir DMA sisteminin yapabileceği tüm işlemleri gerçekleştirebilen sınırlı kapasiteli bir işlemcidir. Ek olarak, bir kanal birkaç G/Ç cihazını belleğe bağlayabilirken, bir DMA denetleyicisi genellikle bir cihaz bağlayabilir. Bir kanal, kapsamlı hata algılama ve düzeltme, veri formatlama ve kod dönüştürme işlemleri gerçekleştirir. DMA’nın aksine, kanal herhangi bir hata durumunda CPU’yu kesmeye uğratabilir. İki tür kanal vardır:
– Çoklayıcı (Multiplexer)
– Seçici
Çoklayıcı bir kanal birkaç düşük ve orta hızlı aygıta (kart okuyucular vb.) bağlanabilir. Kanal sırayla bu cihazları tarar ve verileri bir arabelleğe toplar. Her veri birimi, geldiği cihazı belirtmek için kanal tarafından etiketlenir (bir giriş modunda). Bir çoklayıcı kanalı, CPU tarafından başlatıldıktan sonra birden fazla cihazdan aktarım için gereken tüm işlemleri gerçekleştirir. Transfer tamamlandığında CPU’yu kesmeye uğratır. Genel olarak iki tür çoklayıcı kanalı kullanılır:
1) Karakter çoklayıcılar : Her cihazdan bir karakter (genellikle bir bayt) aktarırlar
2) Blok çoklayıcılar : Kendilerine bağlı her cihazdan bir veri bloğu aktarırlar
Bir seçici kanal, diskler gibi yüksek hızlı cihazları belleğe bağlar. Bu cihazlar, yüksek veri aktarım hızları nedeniyle bir kanalı meşgul tutabilir. Her seçici kanala birkaç cihaz bağlı olmasına rağmen, kanal, o cihazdan veri aktarımı tamamlanana kadar tek bir cihazda kalır.
Şekil 6.5, birkaç kanala sahip tipik bir bilgisayar sistemi yapısını göstermektedir. Her cihaz bir kanala atanmıştır. Çok kanallı bir anahtarlama ara yüzü aracılığıyla bir cihazı birden fazla kanala bağlamak mümkündür. Kanallar, normal olarak geleneksel bilgisayar mimarisinde CPU’nun bir parçası olarak ele alınır; yani kanallar CPU’da yerleşik G / Ç işlemcileridir.
Bölüm Özeti
Bu bölümde bir önceki bölümde anlatılan G/Ç birimlerine ilave olarak DMA, veri yolu mimarilari ve Kanallar üzerinde durulmuştur. DMA işlemcinin yükünü hafifleten bir birimdir. Kanallar ise DMA’dan farklı olarak birden fazla G/Ç birimini bağlayabilir.
Kaynakça
Baron, R.J. and Higbie, L., Computer Architecture, Reading, MA: Addison Wesley, 1992. Computer, Los Alamitos, CA: IEEE Computer Society, Published monthly.
Cramer, W. and Kane, G., 68000 Microprocessor Handbook, Berkeley, CA: Osborne McGraw-Hill, 1986.
DiGiacomo, J., Digital Bus Handbook, New York, NY: McGraw-Hill, 1990.
EDN, Reed Business Information, http://www.edn.com
Hill, M.D., Jouppi, N.P. and Sohi, G.S., Readings in Computer Architecture, San Francisco, CA: Morgan Kaufmann, 1999.
Comments