Mikroişlemciler 3: Bilgisayar Mimarisi

Samed Kahyaoglu
2 min readDec 9, 2019

--

Bu bölümde bir mikroişlemciye dahili veya harici olarak katılarak bir bilgisayar sisteminin oluşmasını sağlayan parçalara değinmek istiyorum. Tabii ki bu parçalar anlamlı bir şekilde bir araya geldiklerinde çalışan bir bütün oluştururlar. Bu anlamlı yapıya da bilgisayar mimarisi denir.

Mikroişlemcilerde temel olarak CPU (merkezi işlem birimi), RAM (rastgele erişimli bellek) ve IO (girdi çıktı) birimleri vardır. Bellek hem program talimatları hem de veri için tek bir tane olabilir (Von Neumann mimarisi) ya da program belleği ve veri belleği olarak ayrı iki tanedir. (Harvard mimarisi). Bunlar arasındaki iletişim bus adi verilen veri taşıma kanallarıyla yapılır. Veri, adres ve kontrol sinyalleri icin ayrı buslar bulunur.

Merkezi İşlem Birimi

CPU dediğimiz şey bilgisayarımızın ya da mikroişlemcimizin çekirdeğidir. bir mikroişlemci çeşitli parçalardan oluşur. İçinde aritmetik, mantık ve kaydırma işlemlerini yapabildiğimiz bir ALU — arithmetic logic unit (aritmetik mantık birimi), özel ve genel amaçlı registerler, yürütülecek sonraki talimatı bulup gösteren program sayacı(pc — program counter), zaman sinyallerini oluşturarak bütün bu işlemlerin ahenk ve nizam içinde gerçekleşmesini sağlayan control sequencer(zamanlayıcı demek istiyorum —Türkçesini bilmiyorum) vardır.

Özel Amaçlı Registerler

Bazı konumlar kritiktir, nasıl ki kalecisiz ve forvetsiz bir futbol takımı düşünemiyorsanız, belirli registerlar olmadan yapılacak bir işlemci de düşünemezsiniz. Bu kritik görev registerlarını listelemeye çalıştım. Bunu yaparken de İngilizce isimlerini kullanmak durumundayım:

Instruction Register(IR): Yürütülen talimatı tutan register.

Memory Address Register(MAR): Talimatta (varsa) belirtilen adresi tutar ki unutmayalım.

Memory Data Register(MDR): Adresteki veriyi alıp kendine kaydeder ki daha hızlı çalışalım.

Accumulator(ACC): Hesaplama sonuçlarını tutan, yani verinin işlenmiş halini sisteme pompalayan kilit register. ALU işlemini yapar, çıktıyı bu register alır.

Program Counter (PC): Yürütülecek sonraki memory adresine gider ve kaybolmasın diye basında bekler.

Program Status Register(PSR): Yürütülen işleme dair veriler tutar.

Control Register(CR): Kontrol sistemine ait veriler tutar.

Stack Pointer(SP): sırayla yapılması gereken işlerimiz yığında (stack) tutulur, stack pointer (yığın işaretçisi) ise bir sonraki boş stack konumunu gösterir ki gerektiğinde pat diye kullanabilelim.

Data Register(DR): Adı üstünde veri tutar.

Link Register(LR): Aktarım sırasında veriyi alıp bekletip gerektiğinde doğru yere aktarır.

Bellek

Bellek başlı başına ayrı anlatılması gereken bir konu olduğu için kısa kesip sonraki bölümü ya da bölümleri bu konuda detaylandırmak istiyorum. Programımız bellekten okunur, sonuçlar belleğe yazılır. Program çalışırken geçici veri oluşturduğunda bunu da belleğe yazar. Bellek olmasaydı bütün girdileri elle girip, çıktıları tek tek not alırken işlemciye yaptıracağımız sonraki işlemi bir not defterini dolduran programımızdan okuyup işlemciye aktarıyor olurduk. Şuan için önemini anlamamız yeterli.

--

--

Samed Kahyaoglu

Computer Engineering Student at Istanbul Technıcal University.