"Hafıza Birimleri (RAM)" bölümünde programları çalıştırmak ve veri transferi sağlamak amacıyla hafıza kontrolcü yongası (MCC) aracılığıyla adres veriyolunun ve harici veri veriyolunun RAM i CPU ya nasıl bağlandığını gördünüz.
Doğru yerlere güç uyguladığınızda basit bir bilgisayar yapmak için başka bir şeye ihtiyacınız yoktur. Böyle basit bir bilgisayar ile yaşayacağınız tek sorun onunla herhangi bir şey yapmanın başka bir yolu olmamasıdır. Bir PC girdi sağlamak için klavye ve fare gibi aygıtlara ve size çalışan programın mevcut durumunu göstermek için monitör ve ses kartı gibi çıkış aygıtlarına ihtiyaç duyar. Bir bilgisayar aynı zamanda bilgisayarınızı kapadığınızda programları ve veriyi depolamak amacıyla kalıcı depolama aygıtları hard disk ve optik sürücülere ihtiyaç duyar.
Basitçe bir sürü parçayı bilgisayara yerleştirmek, CPU onlarla iletişime geçemediğinde işe yaramaz. Bir aygıt ile CPU yu iletişime geçirmek bir çeşit ara bağlantı ile olur. Örneğin, aygıtlardan komut almak ve aygıtlara komutlar göndermek için CPU'yu aktive eden bir iletişim veriyoludur.
Bu bağlantıyı sağlamak için MCC'ye hem CPU ve RAM arasında ara bağlantı olma, hem de CPU ve PC'deki diğer aygıtlar arasında ara bağlantı olma desteği vererek yardımcı olalım. Bu durumda MCC artık sadece hafıza kontrolcüsü değildir. Artık onu kuzey köprüsü (northbridge) olarak çağıralım. Çünkü o CPU ve bilgisayarın geri kalanı arasında birincil bir köprüdür.
Bilgisayarınız aygıtlarla doludur. Bu nedenle PC endüstrisi bazı ara bağlantı işlerini güney köprüsü (southbridge) olarak adlandırılan ikinci bir yongaya vermeyi tercih etmiştir. Kuzey köprüsü sadece video kartı ve RAM'e bağlantı gibi yüksek hızlı arayüzlerle uğraşır. Güney köprüsü ise temel olarak USB kontrolcüsü ve sabit disk kontrolcüleri gibi düşük hızlı aygıtlarla çalışır.
Yonga üreticileri birlikte çalışmaları için kuzey köprüsü ve güney köprüsünün belirli modellerinin uyumlu setlerini tasarlarlar. Kuzey köprüsünü bir firmadan güney köprüsünü de diğer firmadan almazsınız; onlar bir bütün olarak satılırlar. Biz bu kuzey köprüsü ve güney köprüsü setini chipset veya yongaseti olarak adlandırırız.
Yongaseti PC'deki her aygıta veriyolunu genişletir. CPU, PC'nin tüm parçalarına yönelik veri hareketleri için veri veriyolunu kullanır. Veri sabit bir şekilde CPU, yongaseti, RAM ve diğer PC aygıtları çerçevesinde, harici veri veriyolu üzerinden akar.
Bildiğiniz gibi adres veriyolunun ilk kullanımı, yongasetine hafızadaki veriyi göndermesi veya depolamasını söylemesi ve yongasetine hafızanın hangi bölümüne erişeceğini veya kullanacağını söylemesi amacıyla CPU içindir. Harici veri veriyolunda olduğu gibi yongaseti, tüm aygıtlara da adres veriyolunu genişletir. Bu yolla CPU komutları yongasetine gönderdiği gibi adres veriyolunu aygıtlara komut göndermek için de kullanabilir. Bunu "Genişleme Yuvaları" bölümünde çok daha fazla aktif olarak göreceksiniz. Fakat şimdilik kavramla devam edeceğiz.
CPU'nun aygıtlarla konuşmak için adres veriyolunu kullandığı kavramını anlamak zor değildir. Fakat onlara ne söyleyeceğini nasıl biliyor? Bir dosya göndermeye ihtiyacı olan sabit diske, adres veriyolu üzerine yerleştirilecek farklı bir ve sıfırların kombinasyonunu söylemeyi nasıl biliyor? Bu işlemi derinlemesine anlamak için klavye ve CPU arasındaki etkileşime bir göz atalım.
Klavyeye Konuşmak
Klavye, veriyollarının ve destek programlamanın CPU'ya işi tamamlaması için nasıl yardım ettiği konusunda harika bir örnek sağlar. Eski bilgisayarlarda klavye, klavye kontrolcüsü olarak bilinen özel bir yonga aracılığıyla harici veri veriyoluna bağlanırdı. Anakartınız üzerindeki bu yongayı arayarak canınızı sıkmayın. Çünkü klavye kontrolcü fonksiyonları artık güney köprüsü tarafından yönetiliyor.
Bununla birlikte, klavye kontrolcüsünün (veya teknik olarak, klavye kontrolcü devresinin) CPU ile çalışma şekli, CPU'nun bir aygıt ile nasıl konuştuğunu görmek amacıyla onu mükemmel bir araç yapacak şekilde yalnızca son 20+ yıl içerisinde kısa bir sürede değişti.
Klavye kontrolcüsü, yongaseti içerisine eklenecek son tek fonksiyonlu yongalardan biri idi. Uzun seneler (hatta, Pentium III/Eski Athlon serisi) çoğu anakart hala ayrı klavye kontrolcü yongasına sahipti.
Klavyeniz üzerindeki bir tuşa her basışınızda, klavye içindeki bir tarama yongası hangi tuşun basıldığını algılar. Ardından tarayıcı kodlanmış bir ve sıfırlar desenini (ki bu tarama kodu / scan code olarak adlandırılır) klavye kontrolcüsüne gönderir. Klavyeniz üzerindeki her tuş kendi tarama koduna sahiptir. Klavye kontrolcüsü tarama kodunu kendi yazmacı içerisinde depolar. Küçük klavye kontrolcüsünün CPU'ya benzer bir yazmaca sahip olması sizi şaşırttı mı? Sadece CPU'lar değil, çoğu yonga yazmaca sahiptir!
CPU klavye kontrolcüsünden tarama kodunu nasıl alır? Klavye üzerinde iken klavyeye yazıcı tampon oranını (bir tuşa basılı tuttuğunuzda harfi tekrarlar) değiştirmesini veya sistem için klavyenin yapması gereken birkaç başka işi gerçekleştirmesi için "number lock" LED'ini açma kapamayı CPU klavyeye nasıl söyler? Şöyle ki klavye kontrolcüsü sadece bir adet değil de çoklu sayıda komuta yanıt verebilmelidir.
Klavye kontrolcüsü tam olarak CPU'nun komutları kabul etmesinde olduğu gibi benzer komutları kabul eder. 2 ile 3'ü 8088'de topladığınızı hatırlayın. CPU'ya toplama işini yapması ve ardından harici veri veriyolu üzerinde cevabı yerleştirmesini söylemek için 8088'in kod kitabından belirli komutları kullanmalıydınız. Klavye kontrolcüsü kendi kod kitabına sahiptir. Herhangi bir CPU kod kitabından çok daha basittir ama kavram olarak aynıdır. Eğer CPU klavye üzerinde en son hangi tuşun basıldığını bilmek isterse, CPU'nun klavye kontrolcüsünün harici veri veriyolu üzerinde harfin tarama kodunu koyması için gereken komut serisini bilmesi gerekir, böylece CPU onu okuyabilir.