Veriyolu (bilgisayar)
Tarihçe

İlk bilgisayar veriyolları, tam olarak paralel elektriksel veriyolularıydı, fakat bu terim şimdilerde paralel elektiriksel veriyolu ile aynı mantıkta işlevsellik sağlayan herhangi bir fiziksel düzenleme için kullanılıyor. Modern bilgisayar veriyolları hem paralel hem de kısa-seri (bit-serial) bağlantılarını kullanabilir, ya multidrop (elektiriksel paralel) ya da DAISY CHAIN topoloji elektrik tesisatı ile donatılabilir ya da USB'de olduğu gibi, çevrilmiş hareket noktası ile bağlanabilir.
İlk bilgisayar veriyolları belleğe ya da çevresel aygıtlara bağlanmış tel yumaklarıydı. Bunlar, elektiriksel veriyolularının ya da elektrik bağlama çubuklarının ardından isimlendirilmiştir. Neredeyse her zaman, bellek için bir veriyolu ve çevresel aygıtlar için başka bir veriyolu vardır ve bunlar farklı talimatlarla, tamamen farklı zamanlama ve protokol ile giriş yaparlar.
Birinci engel, kesilmeler (interrupts) kullanmaktı. İlk bilgisayarlar çevresel aygıtların hazır olması için bir halka içinde bekleyerek I/O (input/output) görevini gerçekleştirirlerdi. Bu da başka görevler de yapmak zorunda olan programlar için zaman kaybı olurdu. Ayrıca, eğer program diğer görevleri yapmak için girişimde bulunursa, programın tekrar kontrol etmesi çok uzun sürebilirdi ve verilerin kaybolmasıyla sonuçlanabilirdi. Bu nedenle mühendisler merkezi işlem birimi (MİB) ile arasını açmak için çevresel aygıtları hazırladılar. Kesilmeler öncelikli olmak zorundaydı, çünkü MİB bir seferde sadece bir çevresel aygıtın üstesinden gelebilir ve bazı aygıtlar diğerlerinden daha kritik zamanlı olabilirdi.
Bundan bir süre sonra, bazı bilgisayarlar bellek ile birkaç MİB arasında paylaşıma başladı. Bu bilgisayarlarda buna ek olarak veriyoluna ulaşım öncelikli hale getirilmeliydi.
Kesilmeleri ya da veriyoluna ulaşımı öncelikli hale getirmenin klasik ve basit yolu DAİSY CHAİN'di.
İki veriyoluna sahip DEC, küçük, kütle oluşturan bilgisayarlar ve bellek veriyolunu içindeki klasör oluşturmuş çevresel aygıtlar için gereksiz ve pahalı görünüyordu; öyle ki aygıtlar bellek yerleri gibi algılanıyordu. Zamanında, bu çok cesaret isteyen bir tasarımdı. Yalnız kendi menfaatini düşünen kimseler başarısızlığın habercisiydi.
Ilk mikrobilgisayar veriyolu sistemleri gerçekte MİB'nin bacaklarına (pins) bağlı pasif arka planlardı. Bellek ve diğer aygıtlar aynı adres ve MİB'nin kendisinin kullandığı veri bacakları kullanılarak, paralel bağlanarak veriyoluna eklendi. Bazı örneklerde, IBM PC gibi, talimatlar hala MİB'nden, gerçek I/O veriyolu gerçekleştirmekte kullanılabilir ve sinyaller oluşturur.
Birçok mikrodenetleyicilerde ve gömülü sistemlerde, I/O veriyolu hala yoktur. İletişim MİB tarafından kontrol edilir, bunlar bellek blokları gibi aygıtlardan gelen verileri okur ve yazar, bunların hepsi MİB'nin hızını kontrol eden bir merkezi saat tarafından zamanlanmıştır. Aygıtlar diğer MİB bacaklarına işaret vererek bakım ister, tipik olarak kesilmelerin bazı formlarını kullanırlar.
Örneğin, bir disk sürücü denetleyicisi yeni verinin okunmaya hazır olduğunu MİB'ne işaret eder, bu noktada MİB belleği okuyarak, disk sürücüsünün uygun yerine gönderir. Neredeyse tüm ilk bilgisayarlar, ALTAİR'in içindeki S-100 veriyolundan başlayarak, 1980'ler deki IBM PC'ye kadar bu tarzda üretilmişlerdir.
Bu basit veriyolu sistemlerinin genel-amaç bilgisayarları için ciddi dezavantajları vardı. veriyolunun üzerindeki her donanımın aynı hızda olması gerekir, bu nedenle tek bir saati paylaşırlar.
MİB'nin hızını artırmak kolay bir iş değildir, çünkü buna ek olarak tüm aygıtların da hızı artırılmak zorundadır. Bu genellikle garip bir duruma yol açar, çok hızlı MİB'leri bilgisayardaki diğer aygıtlarla iletişim kurabilmek için yavaşlamak zorundadır. Embedded sistemler kısa süre kabul edilebilir olsa da, bu problem kâr amaçlı bilgisayarlarda uzun süre tolere edilemez.
Diğer bir problem de, MİB her işlem için gereklidir, bu nedenle eğer MİB başka işlerle meşgulse, veriyolu tarafından üretilen gerçek iş çarpıcı bir şekilde değer kaybedebilir.
Bu tip veriyolu sistemlerinin yapılandarılması, sıradan bir aygıt tarafından yapılğı zaman, zordur. Tipik olarak, her eklenen PC board'u bellek adreslerini, I/O adreslerini, öncelikli kesilme(interrupt) ve kesilme numaralarını belirlemek için, birçok geçici olarak kullanılan bağlantı teline gereksinim duyulur.