Ad Soyad Şube No Öğrenci No Bölüm : Fahri Dönmez : TBIL-206-01 : 12213251 : Bilgisayar Mühendisliği Bilgisayar Organizasyonu Prof.Dr. Sadık Fikret GÜRGEN Ödev 1. Temel bilgisayarın yapısında kullanılan tüm elemanları tanımlayıp, görevlerini anlatınız. Günümüzde kullanılan yeni bir bilgisayar yapısını araştırıp benzerlik ve farklarını belirtiniz. 2. Temel bilgisayarın assemble dilindeki komutları kullanarak anabellekte A, B ve C adreslerinde bulunan sayılar üzerinde (A+B)-C işlemini yapıp, sonucu D adresine saklayan programı yazınız. Mayıs 2014 Temel Bilgisayarın Yapısında Kullanılan Tüm Elemanlar Şekilde temel bilgisayarın yapısı gösterilmiştir. Temel bilgisayar sekiz hızlı bellek, bir ana bellek ve kontrol biriminden oluşmaktadır. Bu yapıda ikili bilgiler, 16 bit hat grubu yoluyla elemanlar arasında transfer edilmektedir. 1. Bir Bellek Ünitesi : 4096 kelimeli ve 16 bitlik Ana Bellek (RAM). Okuma ve yazma operasyonlarının, AR ve DR hızlı bellek elemanları yoluyla yapılmaktadır. Okuma operasyonunda AR anabellek adresini tutar, anabelleğin oku kontrolü aktive edilir. Bu içerik DR 'ye aktarılacağından, onun "yükle" kontrolü aktive edilerek transfer gerçeklenir. Yazma işleminde ters işlem. Veri ve komutlar burada saklanır. İşlemci ana belleğin istediği adresine erişebilir, eriştiği adresteki veriyi okuyabilir ve değiştirebilir. Çalıştırılan programlar bu belleğe yüklenir. Bilgisayar kapatıldığında bu bellek üzerindeki bilgiler silinir. 2. Hızlı Bellek Elemanları (Registers - Kaydediciler - Yazmaçlar - Saklayıcılar): a. AR (Address Register): 12 bitlik adres kaydedicisidir. Adresi saklar. Anabellek okuma ve yazma işlemlerinde veri ve adres bilgisini tutmakla görevlidir. b. PC (Program Counter): 12 bitlik program sayıcısı komut adresini saklar. Bilindiği gibi bir programı oluşturan komutlar ve veriler normal halde bellekte saklıdır. Bilgisayarın çalışması sırasında hangi verinin hangi sıra ile kullanılacağının bilinmesi gerekir. Bu görevi program sayıcı yerine getirir. Program sayıcının bit genişliği adres yolu genişliği kadardır. Bellekten alınan her bilgiden sonra alınacak yeni bilginin adresi program sayıcıya kaydedilir. Komut çevrimi, program sayıcının yeni adresi adres yoluna koyması ile başlar. Bunun ardından da ilgili kontrol sinyali gönderilir. Bellekten gelen her bilgiden sonra program sayıcısı kontrol devresinden aldığı işarete uyarak adres satırını 1 arttırır. Böylece bilgilerin bellekten CPU ya ardışık olarak gelmesi sağlanır. Program sayıcı saymaya en küçük adresten büyüye doğru devam eder. Ancak, bu durumun şu istisnası olabilir. Eğer programda ATLA veya DALLAN gibi komutlar varsa belleğin bir bölümünden diğer bölümüne geçileceğinden sıra bozulur. Ancak yeni adreste tekrar sıralı olarak devam eder. Böylece program sayıcı kaç bitlikse 2 ‘nin bu bit kadar kuvvetine eşit adrese ulaşmak mümkün olacaktır. Burada program sayıcı 16 bit'liktir. Dolayısıyla 2^16 = 65536 adrese ulaşabilecektir. Her programdan sonra veya yeni bir programa başlamadan program sayıcı sıfırlanabilir. Zira her çalışma bitiminde program hangi adreste bitmişse sayıcı üzerinde o adres kayıtlıdır. Ve yeni bir çalışmada bu adresten saymaya başlar. c. DR (Data Register): 16 bitlik veri kaydedicisi. Kullanıcak verinin adresini saklar. Anabellek okuma ve yazma işlemlerinde veri ve adres bilgisini tutmakla görevlidir. d. AC (Accumulator): 16 bitlik akümülatör işlemci kaydedicisidir. Başlangıç ve sonuç bilgilerini depolamak için akümülatör kullanılır. e. IR (Instruction Register): 16 bitlik komut kaydedici. Komut çözümleninceye kadar burada tutulur. Genellikle yazılımcı tarafında ulaşılmayan bir saklayıcıdır. O an yürürlükte olan komutun tutulduğu kaydedicidir. f. TR (Temporary Register): Bellekten alınan işlem bilgilerinin ilk durak yeridir. 16 bitlik geçici kaydedicidir. g. OUTR (Output Register): 8 bitlik çıkış kaydedicisidir. Çıkış karakterlerini saklar. Kesinti işlevi yoluyla, bilgisayar akümülatörüne okunması ve yazılmasıyla görevlidir. h. INPR (Input Register): 8 bitlik giriş kaydedicisidr. Giriş karakterlerini saklar. Kesinti işlevi yoluyla, bilgisayar akümülatörüne okunması ve yazılmasıyla görevlidir. j. SC (Sequence Counter): 4-bitlik dizi sayıcısı 0000'dan 1111'e sıra ile sayarak, önündeki 4x16'lık dekoder devresinin 0'dan 15'e kadar çıkışlarından birini seçmektedir. Seçilen çıkış T0'dan T15'e kadar bir darbe üretir. 3. Dekoderler - Kodçözücüler: a. 3x8 Operasyon Dekoderi (MUX): İkili bilgi aktarımı şu bellek elemanların çıkışları S 2 S1 S0 seçim girişleri ile kontrol edilen MUX (3X8) tarafından hat grubuna bağlanır. D0' dan D7' ye kadar dekode edilmiş çıkış işaretleri üretir. Bu arada I biti de adres bilgisiyle birlikte kontrol devresine giriş oluşturur. Kontrol devresi çıkışı, sonuçta komut ile ilişkili bir kontrol işareti dizisi oluşturur. b. 4x16 Zamanlama Dekoderi (MUX): 0'dan 15'e kadar çıkışlarından birini seçmektedir. Seçilen çıkış T0'dan T15'e kadar bir darbe üretir. 4. Flip - Flops (Durum bilgilerini tutarlar) - Yedi Bayrak (FF): I/O elemanları ve bilgisayar arasındaki zamanlama farklarını senkronize etmek için kullanılır. a. S (Başla): b. I (Doğrudan/Dolaylı): c. E (Elde vs.): ALU'da E bayrağı (flag) toplama işleminin eldesi, çıkarmanın ödüncü, taşma vs. gibi değerleri göstermekte kullanılır. d. R (Kesinti): Kesinti (interrupt) programı ile veri giriş/çıkışının sağlanması için temel bilgisayarda gerekli yapı değişikliğinin sağlanması gerekir. Bununla ilgili temel bilgisayarın akış diyagramına bir kesinti fazı eklenmesi gerekir. Kesinti fazı son komut fazından sonra başlar. Eğer R FF 'i 1 ise kesinti fazı başlar. e. IEN (Kesinti Başlama): Kesme izin bayrağı. f. FGI (Giriş): Giriş düzeni klavyeden basılan her tuşa karşı düşen ASCII karakter seri iletişim bağlantısı yoluyla INPR 'ye gelir. FGI bayrağı (FF) yoluyla bu bilgisayara iletilip, kesintinin işlemi yoluyla AC 'ye iletilir. FGI bayrağı 0 yapılır. Buradan veri istenilen yere, örneğin ana belleğe transfer edilir. g. FGO (Çıkış): Çıkış düzeni olan ekran, veriyi AC 'den alır. Bunun için FGO bayrağı (FF) kullanılır. Veri OUTR' ye gelince bayrak aktive olur, buradan da ekrana transfer edilir. Transfer işlemi bitince bayrak 0 yapılır. 5. Ortak Yol - 16 bit Hat Grubu (BUS): Veri yolu adresler, veri ve kontrol bilgisini taşıyan bağlantılardan oluşur. 16 bitlik hat grubu bilgisayar yapısında veri aktarımını sağlamaktadır. Ana bellek ile hızlı bellekler arasında, hızlı belleklerin kendi aralarında aktarımı sağlar. 6. Kontrol ve zamanlama kapıları: Kontrol birimi, komutu oluşturan mikroişlemleri ardı sıra gelen saat darbelerinde gerçekler. 9 adet saklayıcının giriş kontrolleri. Bellek Oku/Yaz kontrolleri. FlipFlop Set, Clear veya Complement kontrolleri. Ortak Yol saklayıcı seçen kontroller S2, S1, S0. AC ve ALU. İşlemci tarafından gerçekleştirilecek matematiksel ve mantıksal işlemlerin yapıldığı bölümdür. Bu birime giriş işlemleri, akümülatör kaydedicisiyle bellekten alınan veri arasında veya akümülatörle diğer kaydediciler arasında olabilir. Hızlı bellekler yeşil renk. Kapılar sarı renk. Parantez içinde hızlı bellek boyutları verilmiştir. Yeşil yollar hızlı bellek girişleridir. Ana bellek girişleri veri ve adres girişleri ile iki adettir. AR bellekteki adresler. Günümüzde her farklı işlemci türü kendine özgü bir tasarıma sahiptir. Modern işlemcilerin oldukça karmaşık bir yapısı bulunmaktadır. Bu işlemciler çok sayıda hızlı bellek, hem tam sayı hem kayan noktalı hesaplamalar yapabilen çoklu aritmetik işlem üniteleri, program icra süresini azaltmak için art arda gelen birkaç komutu pipeline yeteneği gibi. Anabellekte A, B ve C adreslerinde bulunan sayılar üzerinde (A+B)-C işlemini yapıp, sonucu D adresine saklayan program: ORG 100 /Program 100 adresinden başlar LDA C /AC ye C yi yükler CMA /AC nin tümleyenini alır INC /AC nin değerinin bir arttırır böylece -C elde edilir ADD A /AC ile A adresi toplanır ADD B /AC ile B adresi toplanır STA D /AC yi D adresine yaz HLT /Pogramı durdur END /Pogramı bitir Kaynaklar: http://www.cs.rit.edu/~wrc/documents/mano-rtl/ http://bilgisayar.kocaeli.edu.tr/files/252_konu5.ppt http://home.anadolu.edu.tr/~dcoskun/tbt%20sunular/TBT%20sunu2.ppt http://tr.wikipedia.org/wiki/Aritmetik_mant%C4%B1k_birimi#Genel_Bak.C4.B1.C5.9F http://w3.gazi.edu.tr/~nyalcin/Tarih.doc http://e-icerik.ulakbim.gov.tr/tagem/3-3/cs/logisim/logisim.docx http://members.comu.edu.tr/boraugurlu/courses/bm109/content/week3/slayt3.pdf http://www.baskent.edu.tr/~omadran/eskiweb/eskiweb/donem0304/dersnotu0304/hafta2 http://www.yildiz.edu.tr/~kunal/dspdsy/Bolum3.pdf http://www.eazynotes.com/notes/computer-system-architecture/slides/registers-and-common-bus.pdf http://people.uncw.edu/tagliarinig/Courses/242/BasicComputer/Registers.htm http://www.ee.oulu.fi/research/tklab/courses/521415A/exercises/exercise3.html http://www.docstoc.com/docs/88987424/B_LG_SAYAR-M_MAR_S_-Computer-Architecture_1_ http://bilgisayar.kocaeli.edu.tr/files/155_konu5-3.ppt