MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER Bilgisayarların Tarihi Gelişimi Basit bir hayale dalın, bir kişinin istediği bilgiye anında Internet denilen dünya bilgisayarlar arası bağlantı ile erişebildiğini, günlerce sürecek hesaplamaların sonucunu bir tuşa dokunmakla birkaç saniye içerisinde alabildiğini, bir hastanın tüm iç yapısının taranarak ne gibi hastalıkları olduğunu anında öğrenilebildiğini ve bu sonuçlara göre tanının konulabildiğini, milyonlarca metre uzaktaki uzay araçlarının kontrol edilebildiğini ve yönlendirilebildiğini, binlerce kişinin yatırım Şekil 1 Abaküs bilgilerinin tutulduğu banka hesaplarının birkaç tuşa dokunularak ne durumda olduğunun gözlenebildiğini, taşıtların ve elektronik aletlerin insan eli değmeden robotlar vasıtasıyla üretilebildiğini, işin ve okulun yerinden kalkmadan evden yürütülebildiğini düşünün. İnsanoğlu beyin ve kas kuvvetini kullanarak sürekli yaptığı ve sonuçlanması uzun zaman alan işleri kolaylaştırmak ve hızlandırmak için tarihi süreç içerisinde bazı araçlar geliştirmiştir. Bunlardan belli başlıları hesaplamalarda kullanılan abaküs ve sürgülü hesap cetvelidir. Büyüklük ve karmaşıklık yönünden insanlar tarafından elle yapılan hesaplamalarda iki ciddi sınırlama ortaya çıkmaktaydı: 1. ) Belli bir hıza sahip olan insan beyni ile yapılan çalışmalar sınırlıdır. Basit toplama veya çarpma gibi birkaç işlemlik hesaplamalar insan tarafından kısa zamanda yapılabilmektedir. Fakat daha büyük ve karmaşık üssel ifadelerin yer aldığı hesaplamalar elle yapılması durumunda, çok zaman alabilecek ve doğru sonucun alınması zorlaşacaktır. 2. )İnsan beyni karmaşık hesaplamalarda hata yapmaya meyillidir. 1642 yılında Blaise PASCAL, adına Pascaline denilen,toplama ve çıkarma yapabilen otomatik masaüstü alet geliştirmiştir.Aslında üst üste toplamanın bir çarpma ,üst üste çıkarmanın da bir bölme işlemi olmasına rağmen bu mekanik hesaplayıcı çarpma ve bölme işlemlerinde zayıflık göstermekteydi. 1671 yılında Gottfried Leibnitz adlı alman filozof pascaline makinesindeki bu zayıflığı gideren bir sistem Şekil 2 Pascaline Makinası geliştirmiştir. Hesaplamalarda doğru sonuçlar almaya yatkın ve adına Differens Machine denilen aleti ingiliz matematikçi Charles Babbage gerçekleştirmiştir. Daha sonra bu aleti geliştirerek, aritmetik problemlerin çözülmesi için tasarlanan ve adına Analytical Engine denilen tek-görevli genel amaçlı bilgisayarı ortaya çıkarmıştır. Bu cihazın temeli aslında günümüz sayısal bilgisayarlarının da özünü oluşturan, verinin belli kurallar dahilinde işlenmesinin gerçekleştirildiği işlemci birimi ve bu kuralların tutulduğu yer (bellek) depo veya giriş birimi ve hesap sonuçlarının yerleştirildiği çıkış birimidir (yazıcı). 1840 yılında Lady Ada Lovelance adlı matematikçi Babbage' in yarım kalan makinesini program yönünden geliştirmiş ve ilk program tasarımcısı (programcı) unvanını almıştır. 1890 yılında Herman Hollerith adlı makine mühendisi ve istatistikçi bilgilerin elle mekanik makinelere girilmesinin uzun zaman alması gibi sorunların ortadan kaldırmak için nüfus bilgilerinin delikli kartlarla makineye girilmesi fikrini geliştirmiştir. Daha sonra delikli kartlarda bilginin giriş-çıktı formatını daha düzgün hale getirerek verinin hızlı bir şekilde işlenmesini sağlamıştır. Bu makineyi geliştirdiği firma şu anda dünyadaki en büyük bilgisayar şirketlerinden birisi olan IBM 'in temellerini oluşturmuştur. Aynı zamanda alman Konrad Zuse adlı ilim adamı, ilk role tabanlı bilgisayarı tasarlamış ve gerçekleştirmiştir. 1937 yılında Howard H. Aiken Mark-1 adlı makineyi geliştirmiştir. Mark-1 tamamı elektronik elemanlardan oluşmayan genel amaçlı bir makineydi, bunun yerine 1943 'de yapımına başlanan ve 1946'da bitirilen tamamı elektronik aksamlardan meydana gelen kısaca adına ENIAC denilen bir bilgisayar geliştirilmiştir.Bilgisayarda bulunan 19 bin lamba yaklaşık 150 KW güç tüketmekleydi. ENIAC bilgisayarında yetersiz miktardaki bilginin tutulabilmesi, verilerinin sürekli değiştirilerek tekrar tekrar makineye girilmesini zorunlu hale getirmiştir. Daha sonraları Macar John von Neuman isimli matematikçi bu soruna bir çare olarak verinin makinenin içerisinde saklanmasını göstermiştir. Bu yol, komutların sayısal değerler olarak makinenin içerisinde depolanmasıdır. İlk program depolamalı bilgisayar 1949'da EDSAC adıyla Cambridge Üniversitesinde geliştirilmiştir. Daha sonra bu gelişmeyi ACE adlı bilgisayar takip etmiştir. 1951 yılında, Amerika'da UNIVAC-1 adlı makine geliştirilmiştir. Elektriğin bulunması ile mekanik parçaların yerine geçecek parçaların tasarlanması yeni fikirler ortaya çıkarmış (Elektronik devri başlamış) ve bunun sonucunda lambalar icat edilmiştir. Bilgisayarlarda(hesaplayıcılarda) lambaların kullanılması kısa zamanda pek çok hesaplamanın yapılmasını sağlamış fakat, bilginin (komut ve veri grubu) nerede saklanacağı ve hangi yöntemle makineye verileceği sorun olmaya devam etmiştir. Daha sonraları lambanın yerine silisyum ve germanyum maddelerinin bulunup transistörün icat edilmesiyle elektronik dünyasında ve dolayısıyla bilgisayar sistemlerinde büyük ve hızlı gelişmeler yasanmış ve yaşanmaktadır. Bilgiyi giriş olarak alan, bunu belli bir kurala göre işleyen ve sonucu çıktı olarak veren sisteme basit olarak bilgisayar denir. Makine olarak tanımlanan bilgisayar, veriyi belli bir düzen dahilinde işler. Buradaki veri, işlenecek bilgidir. Verinin işleniş düzenini veya kuralları donanımın dışında komutlar koyar. Sayısal değerler belli bir formatta sisteme yerleştirilmek zorundadır. Sistemdeki herhangi bir fiziksel ve mantıksal parametreler ikilik sayılarla ifade edilmektedir. Bilgisayar sistemleri iki temel öğeden oluşmaktadır. Bunlar; yazılım ve donanımdır. Her ikisi de birbirinin tamamlayıcıdır, birisi olmazsa diğeri de olmaz. Sistem öncelikli olarak tasarlanırken önce sistemi meydana getirecek elemanlar, yani donanım parçaları göz önüne alınır. Daha sonra yazılım bu yapıya bakılarak yazılır. Yazılım, donanımın hangi yönteme göre nasıl çalışacağını gösteren bir sanal uygulamadır. Donanım, yazılıma göre belli zamanlarda devreye girerek fonksiyonlarını yerine getirmekle görevlidir.Tüm sayısal bilgisayarlar şekilde gösterilen elemanlara sahiptir. Bunların dışındaki eleman ya da cihazlar seçimliktir. Bilgisayarı oluşturan bir sistemdeki temel elemanlar; mikroişlemci(CPU), bellek ve giriş/çıkış (G/Ç) birimleridir. Mikroişlemcinin işleyeceği komutlar ve veriler geçici veya kalıcı belleklerde tutulmaktadır. Bilgiyi oluşturan komut ve veriler bellekte karmaşık veya farklı alanlarda tutulabilir. Bilginin işlenmesi sırasında ortaya çıkabilecek ara değerler, en sonunda sonuçlar bellekte bir yerde depolanmak zorundadır. Bütün bu yapılan işlemler bir hesaba dayanmaktadır. Bilgisayarın bilgiyi işlemedeki ana karar vericisi sistemin kalbi sayılan mikroişlemcidir. CPU tarafından gerçekleştirilen iki temel işlem vardır. Birincisi, komutların yorumlanarak doğru bir sırada gerçekleşmesini sağlayan kontrol işlevi, diğeri; toplama, çıkarma ve benzeri özel matematik ve mantık işlemlerinin gerçekleştirilmesini sağlayan icra işlevidir. Ayrıca sistemin dışarıda denetlemek islediği bir aleti belli bir düzende kontrol edebilmesi için bir de giriş/çıkış birimine gerek vardır. G/Ç birimi, makine ile kullanıcı (veya programcı) arasında bilginin makine dilinden insanın anlayacağı dile çevrilmesinde veya tersi işlemde iletişim (aracı) sağlar. Sistemin öne çıkmayan diğer elemanları iletişim yollandır. Adres yolu, veri yolu ve kontrol yolu olarak üçe ayrılan iletişim yolu, bilgisayar sistemindeki birimler arasında bilginin taşınmasından sorumludur.Adres yoluna bellekten getirilerek çalıştırılmak istenen komut adresi veya komutun işlenmesiyle bellekten getirilecek verinin adresi konulur. Sonuç olarak, ister insan yapısı ister yapay olsun her bilgisayar aşağıdaki elemanlara sahip olmalıdır: 1. Programın yorumlanması ve çalıştırılmasını gerçekleştiren bir mikroişlemci. 2. Bir dizi komutlardan oluşan program ve verilerin sürekli veya geçici depolandığı bellek. 3. Bilgisayarın dış dünya ile bağlantısını sağlayan sağlayan giriş/çıkış birimi. 4. CPU ve bellek aracındaki bilgi aktarımını ve işlemcinin dış dünya ile iletişimini sağlayan iletişim yolları Çalışma Bakımından Bilgisayarlar: 1. Analog Bilgisayarlar 2. Sayısal (digital) bilgisayarlar 3. karma (hybrit) bilgisayarlardır. 1. Analog bilgisayarlar, kayıt yapmada tam bir değerin başlangıcından sonuna kadar sürekli fonksiyonlarını kullanırlar. Nasıl ki bir termometre ısıya veya bir barometre atmosfer çevresindeki hava değişimine (basıncına) duyarlıysa, Analog bilgisayarlar da kullanıldığı uçak veya benzeri sistemlerde bu değerlerin ölçülüp değerlendirilmesinde duyarlığa sahiptir. Bir çok ölçüm ve denetim cihazı, kesik adımlı sinyallerden daha çok sürekli sinyallere bağlı olarak analog çalışırlar. 2. Sayısal bilgisayarlar, kesikli veya süreklilik arz etmeyen bilgiyi yorumlarlar. Sayısal sistemlerde her şey "evet" veya "hayır"la ifade edilebilmektedir. Böylece "evet" yerine geçen 1' ler ve "hayır" yerine geçen 0' larla her şey tanımlanabilmektedir. Analog bilgisayarlara göre hızlı ve performansı yüksektir. Analog bilgisayarlar matematiksel olarak bazı işlemleri yapabildikleri halde, sayısal bilgisayarlar aynı zamanda mantık işlemlerini de kolaylıkla yapabilmektedir. 3. Karma (hibrid) bilgisayarlar, analog ve sayısal bilgisayarların her iki özelliğini kendisinde bulunduran bilgisayarlardır. Uygulama özelliklerine göre bu cihazlar tasarlanmaktadır. Fiziksel büyüklük bakımından bilgisayarlar: Bilgisayarların fiziksel açıdan birbirinden ayrılmasında büyüklüğü, hızı ve maliyeti göz önüne alınmaktadır. 1. 2. 3. 4. Mikrobilgisayarlar minibilgisayarlar Mainframe sistemleri süper bilgisayarlar 1. Mikrobilgisayarlar: Günümüzde moda kelimelerle ifade edilen bu ayırımlardan en küçük olanına Mikrobilgisayar denilmektedir. Belli başlı elemanları; sistem birimi, monitör ve klavyedir. Sistem biriminin içersinde CPU, anakart, ekran kartı, sabit disk, CD-sürücü bulunan metalik-plastik karışımı kutudur. Büyük orandaki verilerin depolanmasında ve üzerinde hesaplamaların yapılmasında, daha güçlü ve büyük veri depolama ve işleme araçları gerektirmiştir. 2. Minibilgisayarlar: Adına minibilgisayar (büyük ölçekli bilgisayar) denilen yüksek düzeyli makinelerde, veriler ve programlar manyetik disk ortamında tutulurken, aynı anda birden fazla kişi tarafından paylaşılması sağlanmaktadır. Bu tip bilgisayarlar bir ana sistem ve bunlara bağlı manyetik disk birimi ve terminaller (Workstation) bulunan yapıya sahiptir. Mini bilgisayarlar genelde bilimsel araştırmalarda küçük boyutlu bankalarda ve işletmelerde kullanılmaktadır. 3. Mainframe Sistemler: Giderek ihtiyaçların çoğalması, bilimin ve teknolojinin ilerlemesi daha büyük ve hızlı sistemleri de beraberinde getirmiştir. Daha büyük kapasiteli veri saklama ortamları ve bunları çok hızlı bir şekilde işleyebilecek sistem elemanlarına sahip sistemlere Mainframe (Çok büyük ölçekli bilgisayar) denilmekledir. Mainframe, mini bilgisayarların talep edilen zamanda sonuçlandıramadığı işlemleri çok kısa zamanda yapabilecek yeteneğe sahip sistemlerdir. Bu sistemde büyük ve birden fazla manyetik veri depolama ortamları, disk ortamları, yazıcılar ve daha çok terminaller bulunmaktadır. Bu büyük boyutlu bilgisayarlar, veri işleme işlerinde orta büyüklükteki iş merkezinden çok büyük iş merkezlerine kadar kullanılmakladır. Genellikle büyük maliyetli bilimsel çalışmalarda (NASA), bankacılık işlemlerinde ve üniversitelerin araştırma laboratuarlarında yer almaktadır. 4. Süper Bilgisayarlar: Diğer bir yüksek düzeyli bilgisayar türü de Süperbilgisayarlardır. Bu sistem, ölçek olarak mainframe'den daha büyük olmayabilir, fakat yaptığı iş ve maliyet bakımından diğerlerinden ayrılmaktadır. Çok hassas ölçümlerin üzerinde çalışılmasında, kesin hava tahminlerinde, derin uzay araştırmalarında ve geniş ölçekli sayısal çalışmalarda bu bilgisayarlar kullanılmaktadır. Bir çok bilgisayar bir araya getirilerek süper bilgisayar sistemi oluşturulabileceği gibi günümüzde süperbilgisayar olarak satılan bilgisayar sitemleri de vardır(Cray II gibi). Bilgisayar Organizasyonu Bilgisayar sistemi tarif edilirken iki temel esastan bahsedilebilir. Bilgisayar organizasyonu ve bilgisayar mimarisi. Bilgisayar mimarisi, bir programın mantıksal çalışmasına doğrudan etki eden özelliklerdir. Bilgisayar organizasyonu, operasyonal birimler ve bunların yapısal özelliklerini veren bağlantıları ifade eden yaklaşımdır; Daha çok yazılım ve donanım arasındaki bağdaştırmayla ilgilidir. Mimari özelliklere; komut kümesi, değişik şekillerdeki veri tiplerini temsil etmesi için kullanılan bit sayısı, G/Ç mekanizması ve bellek adresleme tekniklerinin dahil olduğu bir bilgisayar tasarımı girmektedir. Organizasyona ise, kontrol sinyalleri, bilgisayar, çevre elemanları ve kullanılan bellek teknolojisi gibi donanımın programcıya ayrıntısıyla transparan gözüken özelliklerdir.Bilgisayar mimarisi ve organizasyonun ayrıştırılması bazı sebeplerden dolayı önemlidir. Bilgisayar Mimarisi Bilgisayar mimarisi, komut kümesinin, donanım elemanlarının ve sistem organizasyonun dahil olduğu bir bilgisayarın tasarımıdır. Mimari iki farklı yaklaşımla tanımlanmaktadır Komut kümesi mimarisi (ISA) ve donanım sistem mimarisi(HSA). ISA, bir bilgisayarın hesaplama karakteristiklerini belirleyen komut kümesinin tasarımıdır. HSA; CPU, depolama ve G/Ç sistemlerinin dahil olduğu alt sistem ve bunların bağlantı şeklidir. ISA ise, programcının bu elemanlara yön verecek programı yazması durumunda nasıl bir kabul göreceğidir. Özel bilgisayar sistemleri için programcı kodlarını makinenin doğrudan özel donanımına göre yazmaktaydı. Böylece bir makine için yazılan program aynı firma tarafından üretilse bile ne rekabet ettiği bir makinesinde nede diğer makinesinde çalışabilmekteydi. Programcı tarafından yazılın kodlar donanımı açma anahtarı olarak düşünülebilir. Her zaman yeni bir makine üretildiğinde yazılım geliştiriciler bu makine için yeni baştan başlamak zorunda kalmaktaydılar. Bundan dolayı bilgisayar sistem tasarımcıları iki önemli sorunla karşı karşıya idi. Bunlar; 1. Bilgisayar sistemleri ile ilgili işlevselliğin sergilenmesi. 2. Yazılımın sistemler arasındaki geçişini kolaylaştırması. 1960 yıllarında IBM firması bu sorunların üstesinde gelmek için, adına komut kümesi mimarisi (ISA) ve mikrokod motoru denilen bir yöntem geliştirmiştir. (ISA) Sistemi meydana getiren donanımın özelliklerini sergilemede kullanılan standart bir yol sağlar. Programsal Yaklaşım Sistem tasarımcıları sık sık bazı program işlevlerini mikrokodlara aktararak performansta artış sağlamak istemişlerdir. Donanımı devreye sokacak öz bilgilerin yani komut kümesinin yer aldığı bu yere mikrokod motoru denilmektedir. Burası, CPU içinde CPU olarak da ifade edilebilir. Programcının yazdığı kodları işlemcinin daha çabuk anlayabileceği veya çalıştırabileceği küçük mikrokodlara dönüştüren bu mikrokod motoru, işlemci içerisine ROM bellek vasıtasıyla yerleştirilmiştir. Mikroprogram ve icra biriminden meydana gelen mikrokod ROM'un görevi, özel komutları kontrol sinyallerine çevirerek sistem elemanlarının denetimini sağlar. Aynı zamanda firmware olarak adlandırılan mikrokodun CISC tipi işlemcilerdeki temel işlevi, alt düzey komut kümesiyle programcının çalıştığı üst düzey komutlar arasında soyutlama düzeyi yaratmaktır. Şekil - Bir Mikrokod ROM 'un Sistemdeki Yeri Mikroişlemci üreticileri, sistem tasarımında iki yönlü düşünmek zorundadırlar. Birincisi, mimariyi meydana getiren elemanların işlevleri, ikincisi bu elemanların nasıl devreye sokulacağıdır. Elemanları devreye sokmak için program yazmak gerekecektir. Bu işin bir yanı, diğer yanı ise donanımdır. Donanım mimarisini programcıya aktaracak en iyi yol ona kullanabileceği komut kümesini hazır vermektir. Programcının yazdığı bir komut işletildiğinde, mikrokod ROM bu komutu okur ve sonra o komuta karşılık gelen uygun mikrokodları yükler ve çalıştırır. Bilgisayarın komut kümesinde bulunan tüm komutların mikrokod ROM'da karşılığı vardır.Mikrokoda sahip işlemciler aşağıdaki üstünlüklere sahiptir: • İçerisinde mikrokod bulundurun ROM bellek, ana bellekten çok daha hızlı olduğu için, mikrokod bellekteki komut serisi fazla hız kaybetmeksizin dahili sistemde yürütülebilir. • Aynı komut kümesini adanmış mantık üzerinde yürütmek yerine, yeni yongalarla yürütmek daha kolaydır ve daha az transistor gerektirir. • Bir mikroprogramlı tasarım yeni komut kümelerini işlemek için tamamen değiştirilebilir. • Yeni komutlar mikrokod halinde eskilerin üzerine eklenebilir. Bazı makineler ticari hesaplamalar için, bazıları da bilimsel hesaplamalar için elverişli hale getirilmişlerdir. Bununla birlikle tümü aynı komut kümesini paylaştığından, programlar temel donanımlara bağlı kalarak makineden makineye, yeniden derlenmeden taşınabilir. Mikroprogramlama esasına göre çalışan bilgisayarlar günümüzde hala kullanılmaktadır. Intel ve AMD gibi üreticiler ISA X86 komut kümesinin tüm özelliklerini bazı yeniliklerle birlikte işlemcilerine yansıtmakladırlar. ISA mimarisi daha çok CISC denilen, belleği azami ölçüde etkin kullanmak için geliştirilen bir sistem olan karmaşık komut kümeli bilgisayarlarda kullanılmıştır. Donanımsal Yaklaşım Mikrokod kullanılarak ISA sisteminin yürütülmesinin başlıca sakıncası, başlangıçta komutların doğrudan çalıştıran sisteme göre yavaş olmasıdır. Daha çok komut demek daha fazla mikrokod, çekirdek büyüklüğü ve güç demektir. ISA mimarisinin yaşanan aksaklıklarından dolayı daha sonraları, komutların doğrudan donanım elemanları tarafından yorumlanarak sistemin denetlendiği diğer bir mimari yaklaşımıda donanımsal çalışma modelidir. Komutların anlaşılır standartta bir boyuta getirilerek çalıştırıldığı sisteme RISC modeli denilmektedir. Böylece küçük, hızlı ve çok hafifleyen komut kümesiyle, iri hacimli mikrokoda nazaran donanım üzerinde doğrudan hakimiyet kolayca sağlanabilmiştir. RISC tasarımcıları komutların doğrudan icra edildiği eski modele dönerken, ISA kavramı dokunulmadan korunmuştur. Intel, AMD ve Transmeta firmaları hala x86 mimarisine dayalı işlemcilerini ISA yaklaşımıyla üretmektedirler. Günümüzde üst düzey entegrasyon ve daha düşük tel kalınlıklarının ve birleştirme yüzeylerinin elde edilmesiyle (0.18, 0.13 ve 0.09 mikron gibi) çok daha karmaşık olan donanım temelli sistemler oluşturmak mümkün olmakladır. CISC Mimarisi (CISC: Complex Instruction Set Computer: Karmaşık komut kümeli bilgisayar) CISC mimarisinin karakteristik iki özelliğinden birisi, değişken uzunluktaki komutlar, diğeri ise karmaşık komutlardır. Değişken ve karmaşık uzunluktaki komutlar bellek tasarrufu sağlar. Karmaşık komutlar İki ya da daha fazla komutu tek bir komut haline getirdikleri için hem bellekten hem de programda yer alması gereken komut sayısından tasarruf sağlar. Karmaşık komut karmaşık mimariyi de beraberinde getirir. Mimarideki karmaşıklığın artması, işlemci performansında istenmeyen durumların ortaya çıkmasına sebep olur. Ancak programların yüklenmesinde ve çalıştırılmasındaki düşük bellek kullanımı bu sorunu ortadan kaldırabilir. Şekil - CISC Tabanlı Bir İşlemcinin Çalışma Biçimi Tipik bir CISC komut seti, değişken komut formatı kullanan 120-350 arasında komut içerir. Bir düzineden fazla adresleme modu ile iyi bir bellek yönetimi sağlar. CISC mimarisi çok kademeli işleme modeline dayanmaktadır. İlk kademe, yüksek düzeyli dilin yazıldığı yerdir. Sonraki kademeyi makine dili oluşturur ki, yüksek düzeyli dilin derlenmesi sonucu bir dizi komutlar makine diline çevrilir. Bir sonraki kademede makine diline çevrilen komutların kodları çözülerek, mikroişlemcinin donanım birimlerini kontrol edebilen en basit işlenebilir kodlara dönüştürülür. En alt kademede ise işlenebilir kodları olan donanım aracılığıyla gerekli görevler yerine getirilir. CISC Mimarisinin Avantajları • Mikroprogramlama, yürütülmesi kolaydır ve sistemdeki kontrol biriminden daha ucuzdur. • Yeni komutlar ve mikrokod ROM'a eklemenin kolaylığı tasarımcılara CISC makinelerini geriye doğru uyumlu yapmalarına izin verir. Yeni bir bilgisayar aynı programları ilk bilgisayarlar gibi çalıştırabilir. • Verilen görevi yürütmek için daha az komut kullanır. • Mikroprogram komut kümeleri, derleyici karmaşık olmak zorunda değildir. CISC Mimarisinin Dezavantajları İşlemci ailesinin ilk kuşakları genelde her yeni versiyon tarafından kabullenilmiştir; böylece komut kodu ve yonga donanımı bilgisayarların her kuşağıyla birlikte daha karmaşık hale gelmiştir. Mümkün olduğu kadar çok komut, mümkün olan en az zaman kaybıyla belleğe depolanabiliyor ve kumutlar neredeyse her uzunlukta olabiliyor. Bunun anlamı farklı komutlar farklı miktarda saat çevrimi tutacaktır. Çoğu özel güçlü komutlar geçerliliklerini doğrulamak için yeteri kadar sık kullanılmıyor. Komutlar genellikle bayrak (durum) kodunu komuta bir yan etki olarak kurar. Bu ise ek saykıllar yani bekleme demektir. Aynı zamanda, sıradaki komutlar işlem yapmadan önce bayrak bitlerinin mevcut durumunu bilmek durumundadır. Bu da yine ek saykıl demektir. RISC Mimarisi (RISC: Reduced Instruction Set computer: Azaltılmış Komut Kümeli Bilgisayar9 RISC mimarisi, CISC mimarili işlemcilerin kötü yanlarını piyasanın tepkisi ve ona bir alternatif olarak, işlemci mimari tasarımlarında söz sahibi olan IBM, Apple ve Motorola gibi firmalarca sistematik bir şekilde geliştirilmiştir. ŞŞekil - Mikrokod Denetimli CISC ve RISC Mimarisi 70' lerin ortalarında yarı iletken teknolojisindeki gelişmeler, ana bellek ve işlemci yongaları arasındaki hız farkını azaltmaya başladı. Bellek hızı arttığından ve yüksek seviyeli diller assembly dilinin yerini aldığından, CISC' in başlıca üstünlükleri geçersizleşmeye başladı. Bilgisayar tasarımcıları sadece donanımı hızlandırmaktan çok bilgisayar performansını iyileştirmek için başka yollar denemeye başlamışlardır. RISC Mimarisinin Özellikleri RISC mimarisi aynı anda birden çok komutun birden fazla birimde işlendiği iş-hattı (pipelining) tekniği ve süperskalar yapılarının kullanımıyla yüksek bir performans sağlamıştır.Bu mimari, küçültülen komut kümesi ve azaltılan adresleme modları sayısı yanında aşağıdaki özelliklere sahiptir: Bir çevrimlik zamanda bir komut işleyebilme. Aynı uzunluk ve sabit formatta komut kümesine sahip olma. Ana belleğe "load" ve "store" komutlarıyla erişim; operasyonların kaydedici üzerinde yapılması. Bütün icra birimlerinin mikrokod kullanılmadan donanımsal çalışması. Yüksek seviyeli dilleri destekleme. Çok sayıda kaydediciye sahip olması. RISC Mimarisinin Üstünlükleri RISC tasarımı olan bir işlemciyi kullanmak, bir CISC tasarımını kullanmaya göre pek çok avantaj sağlar: Hız: Azaltılmış komut kümesi kanal ve superskalar tasarıma izin verdiğinden RISC işlemciler genellikle karşılaştırabilir yarı iletken teknolojisi ve aynı saat oranları kullanılan CISC işlemcilerinin performansının 2 veya 4 katı daha yüksek performans gösterirler. Basit Donanım: RISC işlemcinin komut kümesi çok basit olduğundun çok az yonga uzayı kullanırlar. Kısa Tasarım Zamanı: RISC işlemciler CISC işlemcilere göre daha basit olduğundan daha çabuk tasarlanabilirler ve diğer teknolojik gelişmelerin avantajlarını CISC tasarımlarına göre daha çabuk kabul edebilirler. RISC Mimarisinin Mahzurları Bir RISC işlemcinin performanı işlediği kodun algoritmasına çok bağlıdır. Eğer programlama iyi yapılmamışsa işlemci atıl durumda kalarak biraz fazla zaman harcayabilir. Komut planlaması dikkatli yapılmazsa hatalardan arındırmayı zorlaştırabilir. Komutlarını beslemek için çok hızlı bellek sistemleri gerekir. EPIC Mimarisi RISC mimarisinin altında yatan iki ana tasarım amacı vardır. Birincisi; derleyicinin kullanmadığı veya kullanamadığı komutlar ve adresleme modlarından kurtulmak. İkincisi; İleride superölçekli mimariyi oluşturacak iş-hattını kolaylaştıracak çekirdek oluşturmak.. Komutların aynı anda farklı birimlerde farklı şekilde çalıştırıldığı ortamlar Süperölçekli mimari olarak adlandırılır. RISC mimarisinde kullanılan bu süperölçekli yapının tasarlanmasında iki önemli sorun ortaya çıkmaktadır. Birincisi; Komut kümesinde bulunan komutlardan hangilerinin paralel çalıştırılabileceğine karar verilmesi. İkincisi; Paralel çalıştırılabilecek yeterli komutların bulunabilmesi. Bu problemlerin üstesinden gelmek için Intel, Alpha ve benzer işlemci firmaları yonga alanlarının büyük bir kısmını harcamaktadırlar. EPIC mimarisi işte bu sorunların üstesinden gelmek için tasarlanmıştır. EPIC mimarisi, işlemcinin hangi komutların paralel çalışabildiğini denetlemesi yerine, EPIC derleyicisinden açık olarak hangi komutların paralel çalışabildiğini bildirmesini ister. Çok uzun komut kelimesi (VLIW) kullanan bilgisayarlar, yazılımın paralelliğine ilişkin kesin bilgi sağlanan mimari örneklerdir. EPIC varolan VLIW mimarisinin dallanma sorunlarını çözmeye çalışarak daha ötesine gitmeyi hedeflemektedir. Derleyici, programdaki paralelliği tanımlar ve hangi işlemlerin bir başkasından bağımsız olduğunu belirleyerek donanıma bildirir. Bu bilgi, aynı çevrimde hangi işlerin başlatılabileceği ile ilgili daha fazla denetim olmadan donanımda doğrudan değerlendirilir. EPIC tarzı mimari, VLIV tekniğinin geliştirilmiş bir modelidir denilebilir. Süperskalar işlemcilerinin en iyi yönlerinin bir çoğu EPIC felsefesine uydurulmuştur. Çok belirgin RISC mimarileri olduğu gibi (Hewlet-Packard'ın PA-RISC, Silicon Graphics'in MIPS ve Sur'ın SPARC) EPIC yapısı içinde bir komut kümesi mimarisinden fazlası vardır. EPIC mimarisinin ilk örneği, IA-64 mimarisine dayalı Itanium işlemci ailesidir. EPIC Mimarisinin Üstünlükleri Paralel çalıştırma (çevrim başına birden çok komut çalıştırma) Tahmin kullanımı Spekülasyon kullanımı Derleme anında paralelizmi tanıyan derleyiciler 128 kayan nokta, 128 tamsayı, 64 tahminli büyük kaydedici kümesi Dallanma tahmini ve bellek gecikmesi problemlerine karşı üstün başarı Gelişmeye ve yeni birimlerin eklenmesine verilen destek ve eskiye karşı uyumluluk MİKROİŞLEMCİLER Mikroişlemciler, bilgisayar sisteminin kalbidir. Bilgisayar operasyonlarını kontrol ederek veri işleme işlevlerini yerine getirir. Kısaca işlemci veya CPU, kullanıcı ya da programcı tarafından yazılan programları meydana getiren komutları veya bilgileri yorumlamak ve yerine getirmek için gerekli olan tüm mantıksal devreleri kapsar. İlk mikroişlemci 1971 yılında hesap makinesi amacıyla üretilen Intel firmasının 4004 adlı ürünüdür. Bir defada işleyebileceği verinin 4-bit olmasından dolayı 4-bitlik işlemci denilmekteydi. Bir anda ele alabildiği bit sayısına bakılarak güçlü olup olmadığı anlaşılan işlemcilere daha sonra kısa bir süreç için sınırlı sayıda işlem yapabilen 8-bitlik 8008 işlemcisi eklenmiştir. 1974 yılında Intel 8080 adlı işlemcisini, hemen ardından önceki işlemci ile pek farkı olamayan Motorola 6800 adlı işlemcisini piyasaya sürmüşlerdir. Birbirleri arasında küçük farklılıklar olan iki işlemci daha piyasaya sürülmüştür. Bunlar, MOS Technology firması tarafından üretilen 6502 ve Zilog firması tarafından üretilen Z-80 işlemcileridir. 8-bitlik 8080 ve Z-80 mikroişlemcilerinde hesaplama yapmak maksadıyla bol miktarda kaydedici vardır. Bundan dolayı bu işlemcilere kaydediciye dayalı işlemciler denilmekledir. Diğer 8 bitlik işlemciler 6800 ve 6502, anlaşılır komutlar ve daha fazla adresleme modu kullanmaları, kaydedicilerinin fazla olmamasından dolayı veri manevrasında sık sık belleği kullanmalarından dolayı belleğe dayalı işlemciler olarak anılırlar. Bu gruplar birbirlerinin bellek ve G/Ç yongalarını kullanabilmektedirler. 80X86 İŞLEMCİ AİLESİ 80x86 işlemcisiyle birlikte, intel ailesinin mikroişlemcilerde kullandığı mimariye intel mimarisi (IA) ya da X86 mimarisi denilmiştir. 1. Birinci Kuşak Mikroişlemciler : Birinci kuşak mikroişlemciler, eski orijinal IBM PC. XT tipi ve benzer makinelerde kullanılmıştır. Bu kuşağa giren mikroişlemciler 8086 ve 8088 modelidir. 8086 ve 8088 İşlemciler: IA ailesindeki ilk gerçek mikroişlemci 8086 ve bşraz daha düşük mimarili olan 8088 işlemcisidir. Bu iki işlemci pin uyumsuz olmalarına rağmen her iki işlemci de aynı programı sorunsuz çalıştırabilmektedir. Bu ki çip CISC mimarisine dayalı olarak üretilmişlerdir. Her iki işlemci de 20 adres hattına sahiptir. Adres hattı sayısı işlemcinin ne kadar bellek alanına ulaşabileceğini gösterir. 20 adres hattına sahip bu işlemcilerle toplam 1 MB’ lık bir bellek uzayı adreslenebilir. 8086 ve 8088 farklı veri yolu büyüklüğüne sahiptirler. Veri yolu kapasitesi mikroişlemcinin bir çevrimde ne kadar baytlık bir veriyi okuyabileceğini ya da yazabileceğini tayin eder. 8086 16 bitlik veri yoluna sahipken, 8088, 8 bit veri yoluna sahiptir. 8086 hattındaki işlemciler 4 MHz ile 16 MHz arasındaki hızlarda çalışırlar. 80186 ve 80188 işlemciler: bu işlemcilerin belli başlı özellikleri eklenen yeni komutlar, korumada yeni hata toleranslarıdır. Intel bu işlemcilere halihazırda PC’ lerde kullanılan birçok çevresel çipleri (kesme denetimcisi, aralık zamanlayıcısı, DMA denetimcisi saat üreteci ve diğer çekirdek mantık devreleri) entegre etmiştir. 80186 v e 80188 işlemcileri 6 MHz ile 40MHz arasında hızlara sahiptir. 2. İkinci Kuşak Mikroişlemciler: bu kuşağa giren işlemci sadece 286 modelidir. 80286 İşlemciler: Bu işlemcide komut kümelerinin genişletilmesine devam edildi. Dört adres hattının eklenmesiyle birlikte yeni bir işletim modu olan Korumalı Mod ortaya atıldı. 24 adres hattına sahip olan bu işlemciler 16 MB’lık bellek alanını hesaplayabilirler. Bu işlemcilerin bilgisayarlarda kullanılmasıyla birlikte, küçük ev ve ofis bilgisayarlarına 1985 yılında itibaren PC-AT sistemler denilmiştir. 80286’ nın kullanıldığı yıllarda ilk çipsetler (entegre kümesi) ortaya atıldı. 80286 işlemciler, 6 MHz ile 25 Mhz hızları arasında bir frekansa sahiptirler. 3. Üçüncü Kuşak Mikroişlemciler: 386 işlemcilerin tamamı üçüncü kuşak işlemcileri oluşturur. 80386 İşlemciler: ilk gerçek 32 bit mikroişlemcidir. Bu özelliği sayesinde 4Gb’ lık bellek adreslemesi sağlamıştır. Düz 386 işlemcisinden sonra 80386 SX adlı bir türevi daha çıkarıldı. SX modeli 16 bit veriyolu ve 24 bit adres yoluna sahip d80386 modelin ucuz bir versiyonudur. 80386 işlemcisi altı adet paralel aşama ile çalışan ilk işlemcidir. 386 işlemcilerin kullanıldığı yıllarda işlemciye dayalı bilgisayarlarda ön bellek tanımları yapılması fikri benimsendi. 4. Dördüncü Kuşak Mikroişlemciler: bu kuşaktaki işlemciler güç ve yetenek bakımından hızlı bir çıkış yapmıştır. 80486 İşlemciler: 80386 versiyonunun mimari yönden biraz daha geliştirilmiş bir tipidir. Bu işlemcideki en önemli gelişmelerden birisi, 80486 çekirdek mantığına 80387 matematik işlemcisinin entegre edilmesidir. Günümüzde FPU (Floating Point Unit Yuvarlanmış sayılarla iş yapan birim) olarak yerini alan bu matematik işlemcisi olmadan, bazı programlar pahalı donanım ihtiyacı duyar. 80486 işlemcinin DX ve SX modelleri çıkarılmıştır. SX modeli DX modeline göre daha ucuzdur ve SX modelinde matematik işlemcisi yoktur. SX modeli için geliştirilen 387SX işlemcisinin geliştirilmesiyle birlikte az güç harcayan ve performansı artan SL modeli piyasaya sürüldü. Bu model özellikle taşınabilir bilgisayarlarda kullanıldı. Anakart üzerindeki çekirdek frekansın çarpan devreleri vasıtasıyla ayarlanmasıyla DX2 ve DX4 modelleri tanıtıldı. Beşinci Kuşak Mikroişlemciler Pentium İşlemciler: Birden fazla icar birimine sahiptir. 60-66 MHZ hızlarında üretilmişlerdir. u ve v olarak bilinen iki iletişim kanalında aynı anda iki ayrı komut çalıştırılabilir. 8 KB’ lık komut kodu, 8KB’ lık veri ön belleği vardır. 64 bitlik harici veriyoluna sahiptir. Dahili veriyolu 128 ile 256 bit genişliğindedir. Altıncı Kuşak mikroişlemciler Pentium Pro İşlemci: derin iş hattı, 100 MHz’ lik saat hızının aşılmasında önbellek erişim darboğazını ortadan kaldırmak için geliştirilmiştir. Ayrıca işlemcinin bellek erişim hızını arttırmak için ikincil ön bellek işlemcinin yakınına alınmıştır. Dört adet işlemciyi destekleme özelliğine sahiptir. Özellikle server tipi bilgisayarlarda kullanılır. İşlemci içinde L1 önbellek, işilemci dışında ama aynı hızda L2 ön bellek kullanılmıştır. Pentium II işlemci: Pentium Pro işlemciye MMX(multi medya) özelliklerinin eklenmesiyle ortaya çıkmıştır. 100 MHz hızında ön veri yolu, birbirinden bağımsız çift veri yolu, SLOT paketleme tipi ilk defa bu işlemcide kullanılmıştır, L2 ön belleği işlemci çekirdeğinden dışarı fakat kılıf içine alınmıştır. Pentium II Xeon işlemci: özellikle server tipi bilgisayarlar için tasarlanmıştır. Geniş ve hızlı ön belleklere sahiptir. 400-450 MHz hızlarda çalışırlar. Birden fazla işlemciyi destekler. Celeron İşlemciler: Pentium II işlemci ile mimari yönden aynı L2 ön bellek yönünden farklıdır. 16 Kb komut ve 16 KB veri olmak üzere toplam 32 KB’ lık L1 ön belleğe sahiptirç işlemci kartuşu üzerinde L’2 ön belleği yoktur. Pentium III İşlemciler: önceki işlemci modellerine ilave olarak 3D komutları vardır. Aynı anda matematiksel ve 3D komutların kullanılmasına izin veren SIMD (Single Instruction Multiple Data) teknolojisine sahiptir. Yani tek komutla çok data işleme özelliği vardır. 3D uygulamalarını hızlandırmak için 70 adet yeni komuta sahiptir. Pentium IV işlemci: 1.4 GHz’ den başlayan hızlarda üretilmişleridir. Yüksek saat çevrimlerinde, tamsayı ve kayan nokta hesaplamalarını yüksek bir performansta başarmak için NetBurst Mimarisi tasarlanmıştır. 400 Mhz hızında sistem veri yolu kullanır. Görselliğin yoğun olarak kullanıldığı internet ortamı, ses ve görsel iletişim 3D uygulamalar, ses tanınması, MP3 çözümü, DVD oynatımı gibi uygulamalarda yüksek performans sunarken, ısının kontrol edilebilir derecede tutulmasını sağlar. TEMEL MİKROİŞLEMCİ ÖZELLİKLERİ 1. Mikroişlemcinin bir defada işleyebileceği kelime uzunluğu. Mikroişlemcilerde kelime uzunluğu veya bit uzunluğu, paralel olarak işlenen veri bitlerinin sayısıdır. Kelime, işlemcideki genel amaçlı kaydedicilerin büyüklüğü ve aynı zamanda her bir belllek alanı kapasitesidir. Büyük kelime uzunluğu, aynı anda birçok işlemin yapılması demektir. İşlemciler, her bir saat çevriminde senkronize olarak o anda komut kuyruğunda bulunan komutları ve bellekteki verileri işlerler. Bilgi bitleri mikroişlemcinin tipine göre sekizlik, onaltılık otuzikilik veya günümüzde altmışdörtlük gruplar halinde işlenir. Normal bilgisayarlarda bütün bilgiler sekiz bit (Bayt), onaltı bit (Word) veya otuziki bit (Doubleword) olarak işlenirler. Kelime uzunluğu büyük olan işlemcide yapılan aritmetik işlemlerde doğruluk oranları kısa uzunluklu kelimelere nazaran çok yüksektir (4-bit %6, 8 bit %0.4 ve 16 bit %0.001). 2. Mikroişlemcinin tek bir komutu işleme hızı. Bir mikroişlemcinin hızı saat frekansıyla doğrudan ilgilidir.Fakat saat frekansı her zaman gerçek çalışma frekansını yansıtmaz. İşlemci hızını belirleyen bir çok yol vardır. Bunlar, çalışma çevriminin uzunluğudur ki , bu ölçüm fazla kullanışlı değildir. Başlıca mikroişlemci hızları mikrosaniye olarak 1, 66, 100 MHz veya MIPS'tir(Saniyede Milyon Adet Komut İşleme). Bir mikroişlemciyi diğerinden daha hızlı yapan unsurlar şunlardır: • CPU'nun devre teknolojisi ve planı. • İşlemcinin bir defada işleyebileceği kelime uzunluğu. Daha uzun kelime daha hızlı işlem demektir • İşlemci komut kümesi. Bir işlemcide bir işlem tek bir komutla yapılırken diğerinde daha çok komutla yapılabilir. • Genel olarak denetim düzeni. • Kesme altyordam çeşitleri. • Bilgisayar belleğine ve G/Ç cihazlarına erişim hızı. 3. Mikroişlemcinin doğrudan adresleyebileceği bellek büyüklüğü. Bilgisayar sistemlerindeki ana bellek mikroişlemci tarafından adres yolu vasıtasıyla adreslenir. Adres yolu hattı ne kadar çoksa adresleme kapasitesi de ona göre büyük olur. İşlemci içerisindeki adres işaretçisi kaydedicilerin büyüklüğü, işlemcinin adres çıkışında bir kaydıran kaydedici yardımıyla artırılabilirken ve adres yolu da çoğaltılmış olur. XT tipi bilgisayarlarda adres kaydedicisi (MAR) 16-bitlik olmasına rağmen adres bilgisi dört bit sola kaydırılarak 20-bitlik hatta verilirken 1 MB'lık bellek adreslenebilmektedir. AT tipi bilgisayarlarda 24 ve 32-bitlik adres hattı kullanılarak 4 GB'lık bellek adreslenebilmektedir. 4. Programcının üzerinde çalışabileceği kaydedici çeşitleri. Kaydedici sayısının fazla olması manevra kolaylığı ve esneklik sağlar. Kaydediciler üç gruba ayrılır; genel amaçlı kaydediciler (A, B ve X ), özel amaçlı kaydediciler (PC, SP, ve PSW) ve gizli kaydedicilerdir (ÎR, MAR, MDK. DAR, DR).ü 5. Programcının kullanabiliceği değişik türdeki komutlar. Mikroişlemci hızını etkileyen komutlar, veri manevra komutları, giriş/çıkış komutları, aritmetik komutlar, mantık kumulları ve test komutları gruplarından birisine dahildir. 6. Programcının bellek adreslerken gerek duyacağı farklı adresleme modları. Doğrudan adresleme, dolaylı adresleme ve indeksli adresleme gibi adresleme türleri programcıya ekstra kolaylıklar sağlar. Adresleme modları üzerinde çalışılan bir verinin belleğe nasıl ve ne şekilde yerleştirileceği veya üzerinde çalışılacak bir verinin bellekten nasıl ve hangi yöntemle çağrılacağıdır. İLERİ MİKROİŞLEMCİ ÖZELLİKLERİ Son zamanlarda mikroişlemcili sistemlerdeki hız ve performans artışı, büyük ve esaslı düzenler sayesinde sağlanmıştır. Bu düzenlerden belli başlıları, ön-bellek sistemleri, is-hattı teknolojileri, üstün dallanma tahmini yürüten sistemler ve yüksek akışkanlık sağlayan sistemlerdir. Ön-Bellek Sistemi Mikroişlemcilerin sistemdeki en büyük yardımcı birimlerinden birisi bellektir. Bellek, komut ve verileri üzerinde geçici veya kalıcı olarak tutan bir elektronik elemandır. Tasarıma göre komutlar ve veriler istenirse bellekte ayrı bölümlerde tutulabilmektedir. Buda neyin nerede bulunacağının bilinmesini sağladığından daha fazla hız demektir. Mikroişlemcilerin ilk üretim yıllarında mikroelektronik tasarım teknolojisinden dolayı bellekler işlemcilerden daha hızlıydı. Fakat, mikroişlemci mimarisinin tasarımındaki iyileştirmeler bellekten daha hızlı yol almıştır. Mikroişlemcilerin hızını artırmak için elden ne geldiyse yapıldığı halde bellek mimarisi yavaş ilerlemiştir. Bu sebepten, daha sonraki yıllarda mikroişlemcinin çalışma hızı bellekleri geçmiştir. Bu da ortaya hız uyuşmazlığı denilen bir problem çıkarmıştır. Bellekler dinamik ve statik olmak üzere iki temel gruba ayrılmakladır. Dinamik belleğin bir bittik yapısı transistör ve kondansatörlerden meydana geldiğinden, mantıksal 1'lerin oluşabilmesi için kondansatörün dolması için uzun zaman gereklidir. Boşalması da (mantıksal 0 tanımlaması) aynı zamanı alacağından bu tip bellekler mikroişlemciye göre oldukça yavaş kalmaktaydı. Statik bellekler, dinamik belleklerin yavaş hareket etmesine bir alternatif olarak geliştirilmişlerdir. Genellikle içerisinde FET transistörler kullanılan ve flip-flop yapısına göre çalışan bu belleklerde istemi yavaşlatacak herhangi bir kondansatör kullanılmamıştır. Dinamik bellek, dört veya altılı gruplar halinde yapılanan FET'lerden meydana geldiğinden taleplere çok hızlı biçimde cevap vermesini sağlamıştır. Sistemdeki ana belleklerin yapısı (RAM-Random Access Memory) genelde ucuz olan bir transistör ve kondansatörden oluşan dinamik bellekten (DRAM) meydana geldiğinden performans yavaşlamasına sebep olmaktaydı. Ana bellekte dinamik belleklerin yerine fazla FET kullanımından dolayı pahalı olan statik belleklerin (SRAM) kullanılması durumunda sistem pahalıya mal olmaktaydı. Bu durumda tasarımcılar ana belleğin tamamını statik bellek yapmak yerine, mikroişlemci ile ana bellek arasına az miktarda statik bellek yerleştirilmesine karar vermişlerdir. Bu tip mimari yaklaşıma Ön-bellek altsistemleri denilmektedir. Bilgisayar sistemi ilk çalıştırıldığında ana bellekte bulunan ve çalıştırılmayı bekleyen veri grubundan ön-bellek kapasitesi kadarını ön-bellek denetleyicisi tarafından alınarak ön-belleğe taşınır. Daha sonra CPU bellekten bir veri talep ettiğinde önce ön-bellekte olup olmadığına bakar. Eğer veri ön-bellekte yoksa ana belleğe bakar ve burada mutlaka varolması gerekir. Eğer veri ön-bellekte varsa alarak işler, eğer ön-bellekte yoksa ana belleğe gideceğinden ve ana bellekte yavaş olduğundan biraz gecikme ile veri alınarak işlenecektir. Önceleri anakart üzerine konulan küçük miktardaki ön-bellekler (8KB), daha sonraları Pentium gibi gelişmiş işlemciler önceleri işlemci paketi içerisine sonra çekirdek içerisine çekilmiştir. Çekirdek içerisine çekilmesi demek, işlemci ile aynı hızda çalışması demektir. Bu du büyük performans artışı demektir. Fakat işlemci içerisine çekilen ön-belleklerin miktarı büyük olamayacağından dolayı performans artışı belli bir miktarda kalacaktır. CPU içerisine çekilen ön-belleklere komut ve veri olmak üzere L1 (birinci düzey-Level 1), CPU' paketi içerisindeki ön-belleklere L2 (ikinci düzey) ve eğer kullanılıyorsa anakart üzerindekilere L3 ön-bellekleri denilmektedir. CPU veri için önce L1'e eğer yoksa L2'ye eğer orada da yoksa L3'e orada da yoksa ana belleğe bakar. Eğer bunlardan birisinde bulursa hızlı bir şekilde alarak işler. İstenilen verinin işlemciye en yakın olan ön-bellekte bulunması performansı daha çok artıracaktır. Tüm bu önbellekler ve bunların düzenli bir şekilde çalışmasını sağlayan denetleyicilerine ön-bellek altsistemleri denilmektedir. Sistem performansını önemli ölçüde artıran ön-belleklerin kapasitelerinin artırılması ve ana belleğin de SRAM bellekten yapılması durumunda ortaya çıkabilecek olumsuzluklar şunlardır; • Fazla transistör kullanımından dolayı SRAM'lar DRAM'lara nazaran pahalıdır. • 1'e dört veya altı fazla transistör kullanılması demek daha fazla yer demektir. • Çok transistörlü bir bellek grubu, çalışma halinde daha fazla ısı yayacaktır. Fazla ısı performans düşümüne sebep olacağından dolayısıyla sistemin soğutulması gerekecektir ve gürültü ortaya çıkacaktır. • Fazla transistör, fazla güç ihtiyacı demektir ve güçlü ve pahalı güç kaynaklarına gerek duyulacaktır. Ön-bellekler mikroişlemci dolayısıyla bilgisayar performansını artıran önemli elemanlardan birisidir. Sisteme sadece belli bir yük bindiren ön-bellekleri işletmek ön-bellek altsistemleridir. Bu sistemler, verinin hangi bellekte olduğunu, bu veriye nasıl ve kaç koldan ulaşılacağını ve verinin hangi bellekte yenilenip (update) hangisinde yenilenmediğinin bilgisini tutmaktadır. İş-Hattı ve Süperölçekli İşlem Mikroişlemci tarafından işlenecek komutlar sırasıyla ana belleğin kod bölümünden alınarak getirilir. Bir sonraki adımda getirilen bu kodun ne demek istediği kod-çözücü bölümünde deşifre edilir. Daha sonra bu deşifre edilen bilgiye göre işlem gerçekleştirilir. Basit olarak bir işlemcinin çalışması kaç adımda gerçekleşir; komutu algetir, kodunu çöz ve çalıştır. Bilgisayar sistemlerinde gelişmeler işlemci gelişmesine de yansıdığından, üç adımda ve tek tek işlenen komutlar günümüzde beş ve daha fazla adımda bir defada yapabilmektedir. Orta hızlı bir işlemcide komut aşağıdaki aşamalardan geçer: • İşenecek komutun bellekten alınarak komut kaydedicisine getirilmesi (Algetir safhası). • Getirilen komutun, mikrokod veya donanımsal yönteme göre kodun çözülmesi (Kod-çözme safhası). • Üzerinde işlem yapılacak birimin adresinin belirlenmesi (adres üretim safhası). • Komutun kodunun çözülmesiyle ne yapılmak istendiği anlaşılarak gerçekleştirilmesi (icra/işlem safhası). • Elde edilen sonucun belleğe yazılması (geriye yazım safhası). Bir komutun yukarıda sıralanan beş adımda gerçekleşmesi sırasında diğer birimlerin işini bitirdikten sonra yeni bir işe başlaması sistem performansını önemli ölçüde artıracaktır. Algetir biriminin bir komut getirildikten sonra kod-çözme bölümüne göndermesi ve hemen ardından başka bir komutu işlemek üzere getirmesi ve diğer birimlerinde işlerini bitirdikten sonra sıradaki işleme dalmasına iş-hattı sistemi denir. İş-hattı sistemi bir otomobil üretim merkezindeki işlemlere benzer. Montaj hattının birinci kademede otomobilin şasesi yürüyen banda konur.İkinci aşamada, motor şase üzerine yerleştirilir.Üçüncü aşamada; kapılar, kaput ve şase üzerinde gerekli olanların montajı yapılır. Dördüncü aşamada tekerlekler takılırken beşinci aşamada boyamayla birlikte otomobil hazır olur.Bu sistemdeki montaj hattında çalışan herkesin görevi vardır.Birincisi kaputu takarken diğeri tekerlekleri takar, öteki sıradaki işi. Yine bir kademedeki kişi işini bitirdikten sonra beklemeden montaj hattına yerleştirilmiş bulunan yeni bir şaseye gerekli parçaları yerleştirmeye başlar ve bu görev devam eder. Bu beş kademeli montajda her bir kademede otomobil bitene dek sadece bir iş yapıldığı düşünülürse ve her bir iş 30 dakika sürerse, toplam işlem 150 dakika demektir. Yani 150 dakikada bir araba demektir. Halbuki, herbir kademedeki işlem bittikten sonra diğer sıradaki işe başlanırsa, bir otomobilin toplam üretim süreci kabaca 30 dakikaya inecektir. Şekilde görüldüğü gibi, montaj hattındaki her bir aşamada ortalama 30 dk. harcandığı varsayılırsa, bir otomobilin bitmiş bir şekilde elde edilmesi için 150 dk. gerekecektir. Diğer yandan iş-hattı teknolojisi ile çalışılan bir montaj hattında, her kademede sıradaki iş yapıldığından toplam üretim süresi bir kademedeki süreye eşit olacaktır, 30 dakika. Şimdi beş kademeli bir mikroişlemci mimarisine diğer bir veya iki ya da üç beş kademe daha eklenirse ne olur? Bu sistem iki yollu veya üç yolu beş kademeli bir sistem olur ki buna Süperölçekli mimariye sahip mikroişlemci denir. Bu üç yollu beş kademeli işlemcide aynı anda tüm birimlerde işlem yapıldığında çok kısa bir sürede büyük işlemler yapılabileceği ortaya çıkmaktadır. Tek bir montaj hattından 30 dk sonra bir otomobil çıkar. Fakat bir yerine iki veya üç montaj hattı yerleştirirse her 30 dakikada iki yada üç otomobil üretilmiş olacaktır. Aynı zamanda montaj hattının hızı uygun şartlarda artırılırsa bu süre daha da kısalacaktır. Mikroişlemcilerde bir kaç is-hattıyla oluşturulan süperölçekli mimari, işlemci çalışma frekansının artırılmasıyla yüksek performanslara erişir. Bazı durumlarda bazı kademeler aşağıda sıralanan tehlikelerden dolayı işsiz kalabilir. Yapısal tehlikeler: aynı anda iki farklı yoldan aynı kaynakların kullanılmasına teşebbüs edilmesi. Veri tehlikeleri: daha veri hazır olmadan kullanılmaya kalkışılması. Verinin bir parçası ikinci kademede diğer parçası üçüncü kademede olduğu gibi ikinci kademedeki verinin işi bitirilip üçüncü kademeye yollanmadan veri hazır değildir. Kontrol tehlikeleri: şartlar ve durumlar değerlendirilmeden önce karar vermeye teşebbüs edilmesi. Bir komutun islenmesi sonucunda dallanmanın olmadığına bakılmadan sıradaki komutun işlenmesi gibi Mikroişlemci denetim sistemi öyle bir yapılandırılmalıdır ki, iş-hattı kontrol mekanizması tehlikeleri sezebilsin. Gecikme hareketleri bu tehlikelerin çözülmesi yönelik olabilir. Günümüz işlemcilerinden Pentium'da 5, P-6 ailesinde 10 ve P4'de 20 kademeli iş-hattı vardır. Dallanma Tahmini Mikroişlemci tarafından işlenecek komutlar programcı tarafından yazıldığı biçimde bellekte sıralı olarak dururlar. Fakat işlenecekleri zaman derleyicinin de yardımıyla eş olup olmadıklarına bakılarak sisteme yollanırlar. Günümüz mikroişlemcilerinde yukarıda belirtildiği gibi, üç veya dört yollu iş-hattı mevcuttur. Komutlar içerisinde en güçlüleri kontrol komutlarıdır. Bunlar şartlı ve şartsız olmak üzere ikiye ayrılırlar. Şartsız dallanmalara JMP (jump-dallan), CALL ve INT (interrupt-kesme) gibi komutlar girerken, şartlı dallanmalara JNE/RNE, JE/BEQ, JA/JNEB gibi komutlar girer. Şartlı dallanma komutlarından birisiyle karşılaşıldığında, bir önceki işlemin sonucuna bakılarak işlem yönü belirlenir. Bu durumda çok yollu iş-hatlarına işlenmek üzere alınan komutlardan birisi dallanma komutu ise ortaya büyük bir sorun çıkabilecektir. Sistemin dallanacağı ve işleteceği yeni komutlar iş-hatlarında olmayabilecek ve tüm iş-hatları boşaltılarak bu yeni komut dizisi çalıştırılacaktır. Böyle bir durumda da büyük zaman (performans) kaybı olacaktır. Intel firmasına göre, kontrol komutlarının komut setindeki oranı yaklaşık %20'dir. Buna göre komut işlenirken mutlaka sık sık karşılaşılacak olan dallanma komutlarını sisteme zarar vermeden önceden belirleyip tedbir almaktır. Yani, dallanmanın gerçekleşip gerçekleşmeyeceğini. şartı belirleyen mantıksal ve aritmetik işlemin sonucunu hesaplamadan önce tahmin etmektir. Bu yoldan çıkılarak işlemci tasarımcıları, komutları illâki programdaki sıraya bakarak işlemiyorlar. Bunun yerine değişik satırlardaki komutların birbirleriyle ilişkisini çözümleyip gerektiğinde program sırasını değiştirerek ve bazı komutları öne alarak aynı anda paralel olarak birden fazla komutun çalıştırılabilmektedir. Her ne kadar sıralı komut çalıştırılsa da, dallanma komutu geldiğinde sapılacak adresteki yeni komutların getirilmesi ve işlenmesi zaman alabilecektir. Mikroişlemci içerisindeki iş-hatları yanda verilen program kodlarıyla doldurulduğu varsayılırsa, Dizi Q ve Dizi P birbirine alternatiftir. ikisi aynı anda çalışamayacak ve CMP #B'nin sonucuna göre ikisinden birisi ele alınacaktır. Buna göre, iş-hatlarının Dizi P ile dolu olduğu farzedilsin. Eğer A=B şartı doğru çıktığı taktirde bir sorun ortaya çıkmayacak işlem tüm hızıyla sürecektir. Eğer A=B şartı doğru çıkmazsa ne olacak? Bu durumda Dizi P'deki komutlarla dolu olan iş-hatları boşaltılaıak Dizi Q'daki komut dizileriyle doldurulacaktır. Bundan dolayı sistemde performans azalması olacaktır. Eğer şart doğru çıkarda iş-hattındaki komut dizisinin işlenmesine devam edilirse bu durumda o kadar da zaman/performans kazanılmış olur. Programcı tarafından yazılan komutların içerisinde her 7 veya 9 satırda bir dalma komutlarının olduğu ve tahmin edilen komut dizisinin tutma oranının da düşük olduğu varsayılırsa performansdaki azalma gözle görülebilir olacaktır. Bunu önlemenin yolu en basit olarak, ya fazladan iş-hattı yolları (var olanın aynısı) eklenmesidir ki bu ikinci bir (paralel) işlemci demektir, ya da dalınacak olan dizinin iyi tahmin edilebilmesi için mükemmel mekanizmaların geliştirilmesidir. Bunlardan birincisi, iş-hattının bir kopyasının oluşturulması, oldukça maliyetli olacak ve işlememin ebadının büyümesini sağlayacaktır. Bu tip bir yaklaşım mümkün olmayacaktır. Tasarımcılar ikinci yaklaşımı uygun görerek, her iki diziden birisini sanki çalıştırılacakmış gibi iş-hatlarına almak, eğer gerçekleşirse kolayca çalıştırmak, eğer gerçekleşmezse iş-hattını boşaltarak yeni diziyi iş-hattına alarak çalıştırmaktır. Bu tahminsel yaklaşımda, basarı random alarak %20 veya %80 arasında değişebilir. Statik ve dinamik algoritmalar olarak ortaya atılan bu sistemde, eğer programın akışı sırasında tahminlerini değiştirmeyen algoritmalardır. Meselâ, "hiç bir zaman dallanma" statik bir algoritma olabilir. Rastladığı her dallanma komutunun şartını her zaman dallanmama yönünde tahmin eder ve ona göre program akışını yönlendirir. Matematiksel olarak doğru çıkma şansı %50 olsa da, bu uygulamaya göre daha yüksek değerler alabilir. Bundaki mantık, program yazan kişilerin genelde alışkanlık veya zihinsel eğilim sonucunda, genellikle koddaki istisnai durumlarla ilgilenen kısımlara erişirken dallanma şartını kullandıkları görülmüştür. Dinamik algoritmalar adından da anlaşılacağı gibi, programın akışına veya yaptıkları hatalara bakarak geleceği tahmin etme yeteneğine sahiptirler. Karmaşık bir yapıya sahip olan bu algoritmalar, programın başından itibaren dallanma komutlarının bir bakıma tarihçesini kaydeder ve programın sonraki bölümlerinde rastlayacağı ve aynı veya benzer dallanma komutlarının tahmin edilmesinde bu bilgilerden faydalanır. Tarihçe ne kadar geriye yönelik ve ayrıntılı ise tahminlerdeki doğruluk o kadar artar. Bu da, işlemci üzerinde bu işe yönelik bellek ve birim (BTB-Dallanma adreslerinin tutulduğu yer) artışı demektir. Programdaki dallanmaların hangi yönde olduğu ve hangi şartlarda dalındığı hakkında bilgi bu birimlerde tutulur. Program ilerleyişinde dallanmalarda tahmin %90 veya %98'lere çıkmaktadır. Çoklu Program İşleme X86 tabanlı gelişmiş işlemcilerin performansının artırılmasındaki diğer bir adımda, HyperThreading denilen bir teknolojidir. Bu teknoloji ile tek bir işlemci, iki adet işlemci gibi çalıştırılmaktadır. Çift işlemcili bir sistemin aksine hyper-threading kullanan tek işlemcili bir sistemde ön-bellek, veri yolu ve firmware, tanımlanan iki adet mantıksal işlemci tarafından ortaklaşa kullanılmaktadır. Bu özellik, çok işlemcili sistemlerde görülen Symmetrıc Multiprocessing teknolojisine benzemektedir. Fakat arada birkaç fark vardır, simetrik çok işlemcili sistemlerde her işlememin kendisine ait veri yolu, ön-belleği varken, Hyper-threading teknotojisinde mantıksal işlemciler aynı veri yolunu ve ön-belleği paylaşmak zorundadır. İşletim sistemi ile ilgili yazılım arasındaki ilişki sonucunda gerekli işlem gücü, birden çok parçaya ayrılmaktadır. Mulli-thread destekli yazılımlar birden çok çalışma yüzeyine sahiptirler. Yani bir yüzeye birden fazla thread'i alırlar ve toplu halde işlemci içerisindeki kontrol işlevlerine yollarlar. Fakat burada gerçekleşen olayların birbirinden bağımsız olması çok önemlidir. Hali hazırda var olan Multithreading işlevinin geliştirilmiş bir modeli olarak Hyperthreading teknolojisi yeni işlemcilere ve ilgili donanımlara konulmuştur. Bu kavramdaki mantık, thread değişiminin sadece işletim sislemi tarafından yapılmaması ve dolayısıyla daha yüksek bir kararlılık ve performans elde edilmesidir. Burada işlemler ayrı ayrı paralel veri kanallarından aynı anda işlenmektedir. Hyper-threading sisteminde, işletim sistemi ve yazılımların tek bir fiziksel işlemciyi iki mantıksal işlemci olarak algılaması sağlanmaktadır. Dolayısıyla sürekli olarak en az iki adet thread görünmekte ve işlemlere anlatıldığı şekilde devam edilmekledir. Hyper-threading destekli işlemcilerin çalışmasında ilk olarak, işlemci iki adet mantıksal işlemci olarak tanımlanarak hazır hale getirilmektedir. Diğer İleri İşlemci Özellikleri Yukarıda bahsedilen yüksek performanslı ileri işlemci özelliklerine ilave olarak pek çok özellikler katılabilir. Bu özellikler artık tüm ileri işlemcilerde yaygın olarak kullanılmakladır. Belli başlıları aşağıda sıralanmıştır: Multimedya işlemi: İşlemcilerin; resim, ses, grafik ve iletişim gibi işlemlerde performansının düştüğü bir gerçektir. Tamamına multimedya özellikleri denilen ve MMX ve 3D NOW gibi adlarla anılan bu özellikler X86 tabanlı işlemcilerin performansında büyük artış sağlamıştır. Komutların işlenmesi: MMX komutları kullanılana dek gelişmiş işlemciler, aynı anda tek bir komutla tek bir veri üzerinde oynayabilme özelliğine (SISD- Single Instruction Single Data-Tek komut Tek Veri) sahipti. MMX komut kümesiyle birlikte işlemciler zorunlu olarak tek komutla bir çok veri üzerinde çalışılabilen (SIMD-Single Insruction Multiple Data-Tek komutla Çok Veri) bir yeteneğe sahip olmuşlardır. Daha sonraları SSE ve SSE-II denilen bu sistemde SIMD yeteneğine daha da akışkanlık sağlanarak, mullımedya işlemleri daha hızlı bir şekilde yürütülmesi hedeflenmiştir. Komutların mikro-operasyonlara bölünerek sırasız çalıştırılması: Bazı RISC tipi mikroişlemcilerde daha önce bazılarında daha sonra devreye sokulan gelişmiş komut işleme mantığı, X86 tipi işlemcilere P6 ailesiyle birlikte girmiştir. Eski CISC tipi işlemcilerde komutlar bellekten getirilip kodu çözülerek işleniyordu, işlemci sadece X86 komutlarının kodunu çözüp icra birimine göndermek yerine, onları mikrooperasyon (uop) dizilerine dönüştürerek süperölçekli iş-hattında çalıştırılmak üzere bekletir. Çalışma izleme belleği: Çok kademeli iş-hattında dallanmalardan dolayı meydana gelebilecek gecikmeleri ortadan kaldırmak için çeşitli adlar altında çalışma izleme belleği denilen birim eklenmiştir. Ön-bellekte bekleyen komutları alıp kodlarını çözerek anlaşılabilir formlara dönüştürdükten sonra onları icra birimine hazır hale getiren bir havuzdur. Yüksek bantgenişliği ve gecikme: Bantgenişliği bir veri yolundan bit olarak belli bir zamanda ne kadar veri iletilebileceğini gösterir. Yani kabaca, bu yol veya hat ne kadar veri taşıyabilir. Genellikle bu tabir mikroişlemcili sitemlerde CPU ile RAM arasındadır. İşlemcinin çalışma frekansının (bu yükselen veya düşen kenarında olabilir) her bir tıklamasında bu veri yolundan ne kadar bitlik veri gönderilebileceğidir. BASİTTEN KARMAŞIĞA MİKROİŞLEMCİ YAPISI CPU'nun temel kavramları bilindiği varsayılarak, bundan sonraki konularda 8-bitlik mikroişlemcilerden günümüz X86 tabanlı modern işlemcilerine kadar olan genel mimari yapı ele alınmıştır. 8-BİTLİK MİKROİŞLEMCİLER Basit bir işlemci üç ana bölümden meydana gelir. 1. Verinin manevrasında kullanılan ve bellek ile aynı yapıya sahip, adresi yerine bir isimle çağrılan kaydediciler, 2. aritmetik ve mantık işlemlerinin gerçekleştirildiği icra birimi (aritmetik mantık Birimi) 3. Zamanlama ve Kontrol Birimi KAYDEDİCİLER İşlemci içinde toplam 14 adet kaydedici vardır: 4 adet genel amaçlı kaydedici, 4 adet Segment kaydedici, 3 adet işaret kaydedici, 2 adet indis kaydedici ve bir de bayrak kaydecici bulunur. Genel amaçlı kaydediciler AX kaydedicisi: (Accumulator) baş kaydedici de denilen bu kaydedici 8, 16, 32 bitlik verilerle çarpma, bölme, bazı giriş/çıkış işlemlerinde ve bazı harf dizi işlemlerinde etkin biçimde kullanılırlar. BX kaydedicisi: (Base) taban adres kaydedicisi olarak bilinen bu kaydedici, bellekteki veriş gruplarının adresini tutulmasında kullanılırlar. CX kaydedicisi: (Counter) sayaç kaydedicisi olarak bilinen CX, harf dizi işlemlerinde sayaç elemanı veya döngü işlemlerinde tekrarlama sayıcısı gibi görevleri yerine getirir. DX kaydedicisi: (Data) genellikle AX’ e yardımcı olan ve bütün işlemlerde tampon gibi davranan kaydedicidir. Giriş/çıkış işlemlerinde port numarasını üzerinde tutarken, büyük değerlikli sayıların çarpılması ve bölünmesinde AX ile birlikte kullanılır. Segment kaydediciler: Büyük kapasiteli belleklerde bilgini yönetilmesi oldukça karmaşıktır. Bu sebeple büyük bellekler belli amaçlarla 64 KB’ lık küçük gruplara ayrılarak daha kolay yönetilirler. Bu küçük gruplara segment adı verilir. Kod segment kaydedicisi: (CS. Code segment) bellekte çalıştırılacak komutların sıralı bir şekilde bulunduğun bölümdür. Programı tarafından yazılan komut kodları sistem tarafından belleğin bu bölümünde tutulur. Data Segment kaydedicisi: (DS: data Segment) komutlarla ilgili olan ve bu kodların işleyeceği verilerin saklandığı bölüm data segmenttir. Extra Segment: (ES) verilerin çok büyük olduğu data segmentin yetmediği durumlarda kullanılır. Özellikle harf dizi işlemler bellekte fazla yer tutarlar. Kaynak veriler data segmentte tutulurken sonuçlar extra segmentte tutulur. Yığın segment: (SS: Stack segment) veri işlenirken yer yokluğundan veya kaydedici yetersizliğinden dolayı verinin geçici olarak yerleştirildiği yerdir. Program için alt yordamların çağrılmasında da kullanılır. İşaretçi kaydediciler bellekteki ara adresleri gösteren kaydedicileri işaretçi (pointer) denir. IP (Instruction pointer) İşlenecek komutun kodunu gösterir. SP (Stack pointer) yığın bölgesindeki bir verinin yerinin belirlenmesinde kullanılır. BP ( İndis kaydedicisi Adres indisleme işlemlerinde kullanılırlar. SI (source Index) Kaydedicisi: kaynak indisçisidir. DI (destinaiton Index) kaydedicisi: hedef indisçidir. Bayrak kaydecisi Bir işlemin sonunda sonucun ne olduğunu kaydedici bitlerine yansıtan bellek hücresidir. ARİTMETİK VE MANTIK BİRİMİ ALU mikroişlemcide aritmetik ve mantık işlemlerinin yapıldığı en önemli bölümlerden birisidir. Bu birimdeki işlemler, akümülatörle bellekten alınan veri arasında veya akümülatörle kaydediciler arasında iki veya tek elemana dayalı olarak akümulatörde, kaydedicide veya bellekten bir kelime üzerinde olabilir. Aritmetik işlemler denilince akla başta toplama, çıkarma, bölme ve çarpma gelir. İşlemcide çarpma, akümülatördeki verinin sola bir bit kaydırılarak iki ile çarpılması demek ve bölme, verinin bir bit sağa kaydırılarak akümülatördeki verinin ikiye bölünmesi demektir. Komutlarla birlikte bu işlemleri, mantık kapıları, bu kapıların oluşturduğu toplayıcılar, çıkarıcılar ve kaydıran kaydediciler gerçekleştirirler. Bloklaştırılmış bu devreler bir dahili veri yolu vasıtasıyla birbirlerine, bir harici veri yolu ve tamponlar vasıtasıyla kaydedicilere ve zamanlama-kontrol birimine bağlanmışlardır. Gelişmiş mikroişlemcilerde bu devreler yerleşik vaziyettedir. Ayrıca bahsedilen aritmetik işlemlerde yuvarlanmış kesirli sayılar yerine tam sayılar üzerinde durulmuştur. Yuvarlanmış sayılarla 8-bitlik işlemcilerde iş yapmak oldukça zordur. Günümüz işlemcili sistemlerde mikroişlemci yanına birlikte çalışabilen bir ortak işlemci konulmakta veya mikroişlemci içerisine yerleştirilmektedir. ZAMANLAMA VE KONTROL BİRİMİ Merkezi İşlem Biriminin üçüncü bölümünü meydana getiren bu kısım, sistemin tüm işleyişinden ve işlemin zamanında yapılmasından kurumludur. Zamanlama ve denetim birimi, bellekte program bölümünde bulunan komut kodunun alınıp getirilmesi, kodunun çözülmesi, ALU tarafından işlenmesi ve sonucun alınıp geri belleğe konulması için gerekli olan denetim sinyallerini üretir. Bilgisayar sisteminde bulunan dahili ve harici bütün durumlar bu denetim sinyalleri ile denetlenir. Mikroişlemcinin bu bölümü üç değişik işlevi yerine getirir: 1. Zamanlama denetimi : işlemci harici bir saat sinyali üreten birimden giriş alan iç-saat devresine sahiptir. Bu sinyal alınarak zamanlama sinyallerine çevrilir ve komut kod çözücüsüne gönderilir. 2. Komut kod çözücüsü : Bu devre komut kaydedicisinde (IR) tutulan komutları yorumlar ve ALU' ya kaydedicilerle çalışması için uygun sinyaller gönderir. (kastedilen zamanlama ve kesme sinyalleri). 3. Kesme mantık birimi : Gerekli durumlarda kesme sinyallerini alarak işlemciyi uyarırlar. İLETİŞİM YOLLARI Her ne kadar mikroişlemci mimarisine girmese de işlemciyle ayrılmaz bir parça oluşturan iletişim yolları gerçekleştirdikleri göreve göre kendi aralarında üçe ayrılırlar. Adres yolu; komut veya verinin bellekte bulunduğu adresten alınıp getirilmesi veya tersi işlemlerde adres bilgisinin konulduğu yoldur. 16-bitlik hatta sahip adres yolu tek yönlü yapıya sahiptir. Çünkü, sadece işaretçi olarak vazife görür. Adres sadece tarif edilir, gelmez. Adres yolunu meydana getiren hatlar aynı zamanda adresleme kapasitesini de gösterir. Maksimum bellek kapasitesi 2üssü n'dir. Burada n, adres hattı sayısıdır. Eğer bir sistemde adres hattı 16-bit ise o sistemin bellek büyüklüğü 2 üzeri 16=65536, kısaca 64 KB olacaktır. Veri yolu; işlemciden belleğe veya G/Ç birimine veri yollamada ya da tersi işlemlerde kullanılır. Eğer kaydediciler 8-bitlikse veri yolları da 8-bitliktir. Diğer durumlarda veri iki parça halinde iki kerede getirilecek ve dolayısıyla zaman kaybı olacak veya kapasite uyuşmazlığı baş gösterecektir. Veri yolları bilginin çift yönlü taşınmasında (yükle ve sakla işlemleri) kullanılmaktadır. Kontrol Yolu; Sisteme bağlı birimlerin denetlenmesini sağlayan özel sinyallerin oluşturduğu bir yapıya sahiptir. R/W (Read/Write), CS (Chip Select), CE (Chip Enable), Halt (işlemci durdurma) gibi sinyaller birer kontrol sinyalidir. Kontrol yolunu meydana getiren sinyaller üç gruba ayrılır: • Kesme Sinyalleri : Dış dünyadan (çevre elemanlarından) veya işlemci dışarısından gelebilecek kesme sinyallerinin kullandığı hatlardır. Bunlar; IRQ, NMI veya RESet gibi sinyallerdir. • Yön Belirleme Sinyalleri : Verinin hangi yöne gideceğini ve hangi yonganın seçileceğini belirleyen sinyallerdir (Bellekten okuma veya yazma gibi). • Zamanlama Sinyalleri : Bu hatları kullanan sinyaller hangi zamanda ne yapılacağını tayin ederler. Bunlar saat darbeleri ve işlemci içerisinde veya dışarısında bir elemanı tetiklemek üzere gönderilen sinyallerdir. Meselâ, A kaydedicisine bir veri yükleneceği zaman "in" ucuna kontrol birimi tarafından bir sinyal gönderilmelidir. Ya da bellekten okunan bir verinin veri yolu üzerinden sisteme girdiğinde hangi birime gideceği bu yoldan gönderilen sinyalle belirlenir. Aksi durumda bu veri tüm birimlere yüklenecektir.