Dijital Simulasyon ve İşlemci Tasarımı

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Dijital Simulasyon ve İşlemci Tasarımı"

Transkript

1 Dijital Simulasyon ve İşlemci Tasarımı David Currie, ST John's Collage Mühendislik ve Bilgisayar Bilimleri, Bölüm 2, 1998 Supervisor - Dr J Sanders 1

2 İçerik 1 Giriş Programlama Dilleri Simulasyon Düzenleyici ve Simulator Temel Bileşenler Sadeleştirilmiş MIPS Komut Seti Tek Döngülü İşlemci Çift Döngülü İşlemci İş Hatlı (Pipelined) İşlemci Sonuç Referanslar Ek-A - İlerleme Raporu

3 1. Giriş 1.1 Arka Plan 1960'ların ortalarında entegre devrelerin keşfi ve 3. nesil bilgisayarların üretilmesiyle üreticiler daha küçük silikon parçaları üstüne daha çok transistor sığdırmak için yollar arıyorlardı. Tasarımcılar bu artan bilgisayar gücünü, COBOL ve Pascal gibi yüksek seviye dillerle düşük seviye assembly dili arasındaki anlamsal boşluğu doldurma amacıyla daha da karmaşık komut setleri oluşturmak için kullandılar. Bu sözde karmaşık komut setli bilgisayarlar (CISC Complex Instruction Set Computers), işlemciye oranla çok yavaş olan ana bellekle kıyaslandığında heyecan vericiydi. Bu yapıda, örneğin ikilik sistemden onluk sisteme çeviri gibi genel bir fonksiyonun, yavaş kütüphane rutinlerinden çağrılması yerine basitçe yeni bir komut ekleniyordu. 1970'lerde işler değişmeye başladı. Öncelikle yarı-iletken RAM bellekleri artık ROM'lardan 10 kat daha yavaş değildi. Ayrıca bu karmaşık mikrokodları yazmak, debug etmek ve bakım yapmak giderek zorlaşan bir iş oluyordu - mikrokodda bir bug bütün yüklenmiş ROM'ların değişmesi anlamını taşıyor. Üçüncü olarak Tanenbaum gibi akademisyenler programların genel yapısını incelediler ve kullanılan komutların ortalama %80'inden fazlasının basit işlemlerden oluştuğunu keşfettiler, if koşulları, prosedür çağırmaları gibi. Görevlerde %95 oranında sağ tarafta ya sadece tek bir operatör bulunuyor ya da hiç bulunmuyordu. Bütün çağırmaların %90'ından fazlasında 5 değişkenden daha azı kullanılıyor ve prosedürlerin %80'inde 4 yerel değişkenden azı bulunuyordu. Bu sonuçların özeti insanların karmaşık kodları yazmıyor olmasıydı. Daha çok komut daha fazla adresleme noktası demektir ki bu da daha büyük ve yavaş bir yorumlayıcı anlamına gelir. Mikroprogramlama artık bilgisayarların verimliliğini düşüren bir hal almıştı. Bu durum yeni nesil RISC (Reduced Instruction Set Computers İndirgenmiş Komut Setli Bilgisayar) işlemcilerin, IBM 801 (1975), the Berkley RISC1 (Patterson ve Sequin 1980) ve Stanford MIPS (Hennessy, 1984) habercisi oldu. Hepsinin ortak amacı veriyolundaki işlem süresini azaltmaktı. Tablo 1'de RISC işlemcilerin karakteristik özellikleri sunulmaktadır. Tek döngü süren basit komutlar Sadece referans belleğe yukleme/kaydetme Yüksek seviye iş hattı (pipeline) Komutların donanım tarafından işlenmesi Sabit komut formatı Az sayıda komut ve mod Karmaşık yapının derleyici üzerine kaydırılması Çoklu yazmaç setleri Tablo 1 RISC işlemcilerin karakteristik özellikleri 3

4 1.2 Projeye Genel Bakış Bu projenin amacı, işlemci ünitesini tasarlamak, oluşturmak ve dijital simulasyon ortamında test etmektir. Bu RISC ve CISC mimarileri arasındaki temel farkları karşılaştırmak ve ortaya koymak için kullanılacaktır. Devreler Şekil 1'de görülen en düşük 3 seviyeyi, yani dijital mantıktan geleneksel makine seviyesine test için hazırlandı. Bu yaklaşımın amacı kritik parçaların farklı tasarımlardaki ayrıntılı analizi ile her elemanda meydana gelen gecikmeleri görebilmektir. 1.3 Hedefler Projenin hedefleri aşağıda verilmiştir: Şekil 1 Modern Bilgisayarın Katmanları 1. Dijital simulator ve grafiksel arayüzü tasarımı ve yapımı 2. CISC işlemci tasarımı ve simulasyonu 3. RISC işlemci tasarımı ve simulasyonu 4. Simulator kullanarak bu iki işlemcinin performanslarını kıyaslanması Daha ileri arkaplan çalışmaları RISC ve CISC işlemcileri arasındaki farkların o kadar da kesin ve belirgin olmadığını gösterdi. Pipelining örneğin sadece RISC'lere özgü bir yapı değildir. Aynı şekilde RISC işlemcilerde kontrol birimi karmaşıklığının gerekli kıldığı durumlarda mikroprogramlama kullanılabilir. Aynı şekilde, her ne kadar RISC komutları sabit uzunlukta olsada genellikle üç ya da daha fazla farklı format kullanılır. Hedefleri değiştirmemdeki son nedenimse, devreyi, özellike karmaşık komut setini kullanırken olabildiğince basit tutmak istememdi. Bu sebeplerle MIPS işlemcilerde kullanilan tek bir komut setinin baz alınmasına karar verildi. Bu RISC işlemciler için ana hedef olan veriyolu işlem süresini kısaltmak da dahil birçok şekilde kullanılabilir. 4

5 2. Programlama Dili İlk ve önemli kararlardan biri programın hangi platform için yazılacağına ve hangi dille yazılacağına karar vermek. Her ne kadar PC/Windows tercih edilen geliştirme ortamı olsa da Sun / Solaris de bilgisayar labaratuarında kullanım için uygun bir seçenekti. Giriş değerlerinin verilmesi ve simulasyonun izlenmesi için, seçilecek dilin karmaşık grafiksel kullanıcı arayüzünü (GUI Graphical User Interface) desteklemesi gerekiyor. TCL / TK, Xlib, Xview ve Motif gibi paket programlar, X Windows altında çalışırken bu işi kolaylaştırabilir. Bu ne yazik ki Sun / Solaris platformunu kullanımımızı kısıtlar. Benzer şekilde Visual C++ ya da benzer bir geliştirme platformu kullanımı da programın sadece Windows'ta çalışabilmesini sağlar. Nesne yönelimli bir programlama dili mantıklı bir seçim. Projenin temeli olan mantık kapıları nesne uygulamasıyla kolayca uyum sağlayacak yapıda. Nesne metotları (fonksiyonları), giriş, çıkış sinyalleri ve devrenin olabileceği state durumlarına karşılık gelir. Projeyi Java ile hazırlama kararı verildi. Java'nın platform bağımsızlığı sayesinde Solaris ve Windows da dahil olmak üzre desteklenen herhangi bir platformda proje geliştirilebilir ve kullanılabilir. Java nesne yönelimli bir dil ve her ne kadar bana yeni olsada cok iyi olduğum C++'a yakınlığı işi kolaylaştırıyor. Java AWT sınıfı pencere, menü vb grafiksel kullanıcı arayüzü (GUI) elemanlarını kolayca yapmamıza olanak sağlıyor. Version 1.1 çok kullanışlı olan yeni 'event' tabanlı modellemeyi sağlıyor. Takma adı Swing olan Java Foundation Class (JFC) (her ne kadar tam sürümü projenin sonuna doğru geliştirilmesine rağmen) da projede kullanıldı. Bu sınıf toolbar, popup menüleri ve çok yardımcı olan çift tamponlu scroll panelleri kullanmamıza olanak sağlıyor. Swing sınıfı 1.2 sürümünden itibaren Java'da standart olarak eklenmiş durumda. 3. Simulasyon 3.1 Uygulanabilecek Stratejiler Simulatör tasarlamadan önce kullanılacak stratejinin belirlenmesi gerekiyor. Üç olası seçenek mevcut ve bunlar aşağıda ele alınıyor Asenkron Simulasyon İlk akla gelen bu strateji en kolay olan seçenek. Mantık kapısının giriş değerini değiştirdiğimizde çıkış değeri de değişir. Ne yazık ki bu fazla basitleştirmiş bir anlatım. Her ne kadar proje sequential (ardışık) devre simulasyonu için olsada sinyaller yine de paralel ilerliyor. Şekil 2'deki çkış değerleri hep 0 olan basit devreye göz atalım. Başlangıç değerinin 0 olduğunu varsayalım. Şimdi de girişi 1 yapalım. Önce üstteki girişi mi 1 yaptık yoksa alttakini mi? Eğer önce alttakini 1 yaparsak çıkış 0 olarak kalmaya devam eder, ama eğer önce üsttekini 1 yaparsak çıkış, alttakini 1 yapana kadar geçici olarak 1 olacaktır. Şekil 2 Paralel Sinyaller Peki ya Şekil3'teki devre? Geri besleme bağlanmadan önce üstteki giriş 1 ve alttaki 0 olsaydı 5

6 çıkış 1 olacaktı. Geri beslemenin bağlanması, üstteki girişi 1 yapacak. Bu durum çıkışı 1 yapacak ki bu da üst girişi 1 yapacak. Bu sonsuz döngü sadece girişler değiştiğinde çıkışı değiştirerek önlenebilirdi, ancak bu programı daha karmaşıklaştıracaktır. Şekil 3 - Salınım Şimdi Şekil 3'ü başlangıç değerleri olarak girişleri 1 çıkışı 0 olarak ele alalım. Geri besleme bağlandığında üst girişi 0 yapacak. Bu çıkışı 1 yapacak, üst giriş 1 olacak. Bu sefer sonsuz salınımı simule ederken devrenin geri kalanının işlemini bozmamak için daha da çok dikkat etmemiz gerekecektir Senkronize Simulasyon Senkronize simulasyon stratejisi devrede var olabilecek herhangi birşeyden son derece ayrı olarak var olan bir clock sinyaline dayanır. Clock üç fazlıdır. İlk fazda bütün mantık kapıları girişlerindeki değerleri okurlar, ikinci fazda yeni çıkış değerlerini hesaplarlar ve üçüncü fazda da çıkışlarına hesaplanan değeri yansıtırlar. Bu ayırma sayesinde bir sonraki clock sinyaline kadar giriş değerleri etkilenmeyeceği için sinyaller çıkış fazı sırasında istendilen şekilde paralel olarak sorunsuzca gönderilebilirler. Şekil 3'teki salınım clock oranına bağlı olarak oluşacak. Şema kapılarda oluşacak gecikmeleri gösteriyor. Örneğin, Şekil 4'te giriş 0'dan 1'e dönüştüğüde sadece bir clock döngüsü sonra sonuç çıkışta görülecektir Yarı Senkron Şekil 4 Mantık kapısında oluşan gecikme Bu strateji farklı uzunluklarda clock sinyallerinin mümkün olduğu bir senkronize strateji üstüne kuruluyor. Eğer tek bir clock sinyalinin süresi bütün kapıların yeniden değerlendirilmesi için gereken süreden azsa bu durum devreye giriyor. Bu kapıların bazılarının çıkış değerlerini yazmadan önce diğerlerinin giriş değerlerini okuması durumunu engelleyebiliyor. 6

7 3.2 Gerçekleme / Uygulama Yarı senkron strateji kullanımına karar verildi. Elektronik paketleri temsilen soyut (abstrakt) bir Java sınıf paketi oluşturuldu. Paketin construct metodunda sırasıyla giriş ve çıkışları değerlendirmesi üzre addinput() ve addoutput() metotları kullanıldı. Initialize() ve simulate() metodları paket genişletilirken tanımlanmalı. Resetlenme durumunda cağrılan former initialise state olarak kullanılabilir. Latter girişlerin okunup çıkışların oluşturulduğu her clock sinyali arasında cağrılır. Bu iki metot isimlerinde de anlaşılacağı üzre giriş değerlerini almak ve çıkış değerini atamak üzre getinput() ve setoutput() metotlarını kullanabilir. Aşağıdaki örnek bir nand kapısının tasarımında bu yaklaşımın ne kadar kolay olduğunu gösteriyor. Construct() metodunda a ve b girişleri ile c çıkışı pakete ekleniyor. Ayni şekilde bit genişliğini belirten bir sayı da isimlerle birlikte kullanılıyor. Nand kapısının state'i olmadığı için initialise metodu boş. Simulate() metodu iki giriş değerini alıyor ve çıkış değerini üretiyor. Burada getinput() ve setoutput() metodları boolean değerleri gereken bit dizinini belirtiyor. Eğer gerekirse bu metodlar dizin olmaksızın, bütün girişlerin geri döndürülmesi (return) ya da çıkışın binary bir nesne kullanarak belirlenmesi şeklinde kullanılabilir. Binary sınıfı simulasyon sınıfını daha kolay yazmak için toplama, çıkarma, tersini alma gibi binary işlemleri yapan metotlara sahiptir. class NANDGate extends Package { public void construct () { addinput("a", 1); addinput("b", 1); addoutput("c", 1); } public void initialise() { } public void simulate() { setoutput("c", 0,!(getInput("a", 0) && getinput("b", 0))); } } Paket sınıfı kullanıcıyı simulasyon stratejisinin karmaşasından korur. Simulasyon başlatıldığında clock sinyali üreten bağımsız bir thread de başlamış olur. Her clock sinyalinin başında simulasyonda bulunan bütün paketlerin readinputs() metotlari cağrılır. Bu metot paket içinde bulunan bütün giriş verilerini mevcut clock döngüsü sırasında oluşabilecek değişimlerden korumak üzre kaydeder. Getinput() çağrıları kaydedilen verileri geri döndürür. Clock sonrasında bütün bileşenlerdeki simulate metotlarını cağırır. Setoutput() metodunun çağrılması basitçe paketteki yeni çıkışların kaydedilmesidir. Sadece writeoutputs() metodu çağrıldığında değerler çıkış bağlantılarına gönderilir. Bu şekilde yapılmasının nedeni ileride daha iyi anlaşılacak. Bir çıkışın değeri 1 yapıldığında bu çıkışa bağlı bütün bağlantıların hepsi 1 yapılır. Sonrasında bu bağlantıların diğer uçlarında herhangi bir bileşenin girişi olup olmadığı kontrol edilir ve eğer varsa o değerlerde 1 yapılır. Her ne kadar bir çıkış bağlantısından birden fazla bağlantı (wire) çıkabiliyorsa da boolean değerlerindeki karmaşayı önlemek için girişlerde bir bit için sadece tek bir bağlantı olabilir. Java'da kullanılan mantık anahtar ifadeleri 'true' ve 'false' ikilik sistemdeki 1 ve 0'i temsil eder. Simulasyonda floating düşük/yüksek seviyeler tanımlanmayarak, sadelik tercih edilmistir. Bütün giriş ve çıkışlar aksi bir durum olmadıkça 0'dır. 7

8 4. Düzenleyici (Editor) ve Simulatör Bu bölüm düzenleme ve simulasyon paketlerinin kullanımı ve işleyişiyle ilgili özet bilgiler sunuyor. Baslangıç olarak kullanıcıya Şekil 5'te gösterilen siyah noktalı bir ekran sunulur. Buraya kullanıcı giriş, çıkış ya da paket ekleyebilir. Paketler derlenmiş ve diske kaydedilmiş Java sınıf dosyalarından seçilebilir. İlk olarak nand kapısı, clock, 1 düzey kaynağı ve 0 düzey kaynağı sınıf dosyaları yazılmıştır. Şekil 5 Başlangıçtaki ekran görüntüsü Daha sonra paket bağlantıları wire kullanarak yapılabilir. Bağlantılar tek bitten daha geniş olabileceği için kullanıcının wire ile hangi bitleri bağladığını belirtmesi gerekir. Bir giriş bağlantısı sırasında üstüste binmelerin engellenmesi için eş zamanlı olarak gerekli kontroller yapılır. Paketler ve bağlantılar sürüklenerek ya da bir pop up menü ile silinerek yeniden konumlandırılabilir. Fare imlecinin paket veya bağlantı üstünde bir süre tutulması, Şekil 6'da da görüldüğü üzre bileşen adını içeren bir yazı kutusunun getirilmesini sağlar. Açıklığa destek olmak için paketler üstüste binemez. Bağlantılar kesişme noktalarında karışıklığa sebebiyet verilmemesi için paketlerden başlayarak eklenebilirler. Bu yüzden bağlantılar, aynı sinyali taşıdıkları sürece birbirleriyle kesişebilirler. Eğer devrenin kendisi tekbir paketse kendine ait giriş ve çıkışlar eklenebilir ya da isimlendirilebilir. Devre sonuçları bir simulasyon dosyasına kaydedilip daha sonra başka bir devreye Add Package şeceneği ile eklenebilir. Bu yapı tasarıma modüler bir yaklaşım olanağı sunar. Şekil 6'da clock.class paketiyle notgate.sim paketinin nasıl birbirlerine bağlandıkları görülüyor. Bu devre kaydedildiğinde eklenmiş paketlerdeki tanimları kaydetmez. Bunun yerine sınıfın adı ya da simulasyon dosyasının adresi kaydedilir. Bunun anlamı paketlerin iç yapısında yapılabilecek değişikliklerle oluşturulacak yeni versiyonların, devre yüklendiğinde kendiliğinden değistirilmiş olarak geleceğidir. Tabiyki giriş ve çıkış bağlantıları değiştirilmemesi gerekiyor. 8

9 Şekil 6 NOT kapısına bağlanmış clock Pencerenin üstünde yer alan tuşlar simulasyon menüsündekilerin aynısıdır. Bunlar simulasyonun adımlanması, calışması, durması ya da resetlenmesini kontrol ederler. Simulasyonu icra eden threadin önceliği, bu tuşlarla kontrol edilip mevcut durumda kesmeye uğratılabilsin (interrupt) diye düşük tutulmuştur. Simulasyon sırasında bağlantı ve kablolar herhangi bir bitleri 1 olduğunda yeşil aksi takdirde kırmızı görünürler. Bu özellikle işlemci devrelerinin kontrol birimini izlerken cok fayda sağlayan bir özellik. Diğer üç metot kullanıcıya simulasyonu daha ayrıntılı izleme imkanı sunar. Bağlantı noktasına eklenecek probe sayesinde gerçek zamanlı olarak giriş-çıkış verilerini izleyebileceğimiz bir pencere açılır. Şekil 7, Şekil 6'daki NOT kapısının giriş ve çıkışına bağlanmış probe sinyallerini gösteriyor. Çizgilerin üstüne yaklaştırma yapılabilir. Burada da kapı gecikmesi net şekilde görülebiliyor (not: zaman sağdan sola doğru artıyor). Çoklu-bit bağlantılarda ikili değerleri gösteren monitörlü bağlantılar daha kullanışlıdır. Şekil 7 Şekil 6'daki devrenin probe göstergesi Üçüncü metot paketlerin statelerini incelemeye olanak sağlar. Yansıma (reflection) isimli bir Java tekniği kullanarak program, bir sınıfın herhangi bir niteliğinin public olarak tanımlanıp tanımlanmadığını kontrol eder. Eğer public ise niteliğin adı ve mevcut değeri gösterilir. Bu durum özellikle simule edilen hafıza biriminin içeriğini görüntülerken yarar sağlamıştır. 9

10 5. Temel Bileşenler Bu bölüm işlemci için gerekli olan kombinasyonal mantığın nasıl NAND gibi tamamen mantık kapılarından oluşturulduğunu inceliyor. 5.1 NAND Kapısı NAND kapısı bu projede temel devre olarak seçildi. Bu paketin Java kaynak kodu yukarda verilmişti. 5.2 Mantık Kapıları Diğer mantık kapıları NAND kapıları kullanılarak kolaylıkla oluşturulabilir. NOT kapısı Şekil 8'de gösterildiği üzre girişlerin birbirine bağlanması gibi kolay bir yolla elde edilebilir. Parantez içinde verilen sayı, giriş değerinin değişmesiyle çıkışta sonucun tam olarak gösterilmesi arasındaki en fazla gecikme zamanının, NAND kapısı referans alınarak (NAND kapısındaki gecikme 1 birim kabul edilerek) oluşturulmuş halidir. Şekil 8 NOT kapısı uygulaması (gecikme = 1) AND kapısı Şekil 9'da da gösterildiği üzre NAND kapısını NOT kapısına bağlayarak elde edilmiştir. Şekil 9 AND kapısı uygulaması (gecikme = 2) Bir kez daha OR kapısı yapmak için kullanılan kapı sayısını arttırmamız gerekiyor. Şekil 10 OR kapısı uygulaması (gecikme = 2) Şekil 11'de XOR kapısı yapmak için devrenin yapısının biraz daha geliştirilmesi ve karmaşıklaşması gerektiği görülüyor. Bu devrede dikkat edilmesi gereken bir 'tehlike' durumu vardır, bazı sinyaller 2 kapıdan geçerek üretilirken bazılari için 3 kapıdan geçilmesi gerekiyor. Bu yüzden girişteki bir değişiklik çıkışta 2 birim gecikme sonrasında görülebilir, ancak asıl değerine 3 birim gecikme sonra ulaşacaktır. 10

11 5.3 Çoklayıcılar (Multiplexor) Şekil 11 XOR kapısı uygulaması (gecikme = 3) Şekil 12'de iki tane bir bit giriş sinyali ile bunlar arasında karar vermek için bir seçme sinyali alan basit bir çoklayıcı görülüyor. Şekil 13'de uygun devre sembolü verilmiştir. Daha genel söylersek 2^n m-bit giriş için gereken bilgi dağıtıcı (dekoder) ve seçme devresi 5 birim gecikmeli ve (2^n(1+m)+n+1) kapılı devre gerekecektir. Şekil 12 Bir bitlik 2-1 mux uygulaması (gecikme = 3) Şekil 13 Bir bitlik 2-1 mux devre sembolü 5.4 Aritmetik Mantık Birimi (ALU Arithmetic Logic Unit) ALU birçok alt birimden oluşmuştur. Öncelikle iki tane tek bitlik sayıyı toplayan half adder (yarı toplayıcı) üniteyi inceleyelim. Tablo 2'de gerekli truth table (gerçeklik tablosu) verilmiştir. Elde ve toplam terimleri, girişlerin sırasıyla AND ve XOR karşılıklarıdır. Bu sayede yarı ekleyici basit bir şekilde Şekil 14'teki devre ile oluşturulabilir. 11

12 A B Elde Toplam Tablo 2 Yarı Toplayıcı Gerçeklik Tablosu Şekil 14 Yarı toplayıcı uygulaması (gecikme = 3) Bir bitten daha fazla sayıyı toplarken Tablo 3' te de gösterildiği şekilde daha düşük bitlerden gelebilecek elde sayısını (carry in) da hesaba katmak gerekir. Elde-tasan (carry out) ve toplam (sum) ifadeleri karmaşık görünse de iki yarı toplayıcı ünitesiyle Şekil 15'teki gibi kolayca elde edilebilirler. A B Elde Giriş Elde Çıkış Toplam Tablo 3 Tam toplayıcı gerçeklik tablosu Şekil 15 Tam toplayıcı (full adder) uygulaması (gecikme = 6) 12

13 Bizim yapacağımız ALU'nun sadece toplama işleminden daha fazlasını yapabilmesi gerekiyor. Çıkartma, AND, OR ve karşılaştırma işlerini de yerine getirebilmeli. Şekil 16'daki tek bitlik ALU bütün bu işlemleri yerine getirebilir, ki ALU birimi de zaten Şekil 17'de görüldüğü gibi bunların birbirlerine bağlanmasından oluşur. Artı ile işaretlenmiş kare Şekil 15'teki tam toplayıcı ünitesi. Ayrıca istenilen sonucun seçilmesi için çoklayıcı kullanıldığına da dikkat ediniz. Şekil 16 Tek bitlik ALU uygulaması (gecikme = 15) Şekil 17'de bir bitlik ALU'ların bağlanmasıyla nasıl 32 bitlik ripple carry ALU'nun elde edilebileceği gösteriliyor. Operasyon kontrol sinyali; çıkışın, AND kapısı, OR kapısı, toplayıcı ya da less girişi arasından seçilmesi için kullanılıyor. Çıkartma B girişinin negatifi alınarak yapılıyor. Negatifleme (tersini alma) ikinin tersi (two's complement) şeklinde, bütün bitlerin terslerinin (NOT) alınması ve sonrasında 1 eklenmesiyle yapılıyor. Bu ALU birimi içerisinde bütün tek bitlik ALU üniteleri için binvert hattını 1 yaparak ve ALU0'ın elde değerini 1 yaparak sağlanıyor. Tek-bit ALU'nun less girişi set-on-less-than (büyüktür / küçüktür) komutu için kullanılıyor. Son tek-bitlik ALU ünitesi bir önceki toplayıcının çıkışını alan, set adında, fazladan bir çıkışa sahip. Eğer B'nin A'dan çıkartılması (A-B) negatif bir sonuc verirse (A<B durumunda) son ünitedeki çıkış değeri 0 olacaktır. Bu yüzden eger A<B ise bütün birimin çıkışı 1, değilse 0 olacaktır. 13

14 Şekil bitlik ALU uygulaması (gecikme = 173) Şekil 18 ALU sembolü Dikkat ederseniz ALU için böylesi bir tasarımda gecikme cok büyük. Bunun nedeni tam toplayıcıları kullanırken elde sayısının ALU0'dan ALU31'e kadar tek tek gelmesini beklemek zorunda olmamızdır. B0 sinyali ilk ekleyicinin girişine ulaşmak için en fazla 4 gecikmeye uğruyor. Elde girişten elde çıkışa gecen gecikme 5 birim, elde girişten toplam çıkışına 6 birim. Bu nedenle son toplam 4+(31x5)+6=165'lik bir gecikmeden sonra sonuca ulaşır. Çıkış çoklayıcıdaki gecikme 5 birim ve sıfırı hesaplamak için gereken ayrıca 3birimlik bir gecikme daha var. Bununla birlikte ALU içinde başlangıçtan bitişe toplam 173 birimlik bir gecikme söz konusu. Hız carry lookahead yöntemiyle yükseltilebilir ama bu konumuz dışında. Tek bitlik bir ALU ünitesi için 38 NAND kapısı gerekiyor. 32 bitlik bütün bir ALU birimi içinse 1200'ün üstünde. 14

15 5.5 Yazmaç (Register) Muhtemelen bir işlemci tasarımındaki en önemli bileşenlerden biri veri saklamada kullanılan yazmaçlardır. Yine modüler bir yaklaşım kullanacağız. Öncelikle D-tipi latchlerle başlayalım. Şekil19'daki devre D'den giriş bilgisini alıyor ve CK clock sinyali 1 iken Q çıkışına gönderiyor. Clock sinyali 0 iken çıkıştaki Q değeri, clock tekrar 1 olana kadar bir önceki değerini tutacak. Şekil 19 D-tipi latch uygulaması (gecikme = 3) Bu tam manasıyla tatmin edici bir yöntem değil, çünkü clock 1 iken çıkış değeri Q, girişteki D değerini alıyor. Bizim tam olarak ihtiyacımız olan, verinin clock'un positif ya da negatif ucunda girişten çıkışa iletilmesi. Bunu yapmanın bir yöntemi clock'a köşe-tetiklemeli devre eklemek. Örneğin clock sinyalinin ve tersinin AND'ini alındığında inverterda olusacak gecikmeyle clock'un positif kenarının tepe noktasında tetiklemeyi sağlayabiliriz. Yine de bu projede kullanılan tasarım Şekil 20'de gösterilen master slave flip-flop. Clock sinyali 1 olduğunda ilk latch'in çıkışı giriş değeriyle aynı olacak. Terslenmis clock sinyalinin anlamı ikinci latch'in bu sürede değişmeyeceğidir. Clock 0 olduğu zaman ilk latch'in değeri sabit kalacak ve ikinci latch'in değeri ilkinin çıkışı olacak, bu andaki giriş çıkışa yönlendirilecek. Şekil 20 Flip Flop uygulaması (gecikme = 4) Bundan sonra yapılması gereken n-bitlik yazmaç için n tane flip flop'u Şekil 21'deki gibi paralel şekilde yerleştirmek. Her ne kadar flip flop 11 kapı gerektirse de clock tersleyici ortak kullanılabilir, böylece 32 bitlik yazmaç için toplamda (32x10)+1 = 321 kapı gerektirecek. 15

16 5.6 Yazmac Dizisi (Register File) Şekil 21 Yazmaç uygulaması (gecikme = 4) Veri depolamak için genellikle bir dizi yazmaç gerekir. Şekil 22'de gösterilen yazmaç dizisi 32 yazaça sahip. Tek bir clock sinyalinde birine yazıp diğerinden okumak mümkün. Tabiyki yazılan bir yazmaç aynı anda okunuyorsa çıkış verisinin doğruluğu garanti edilemez. Sunulan gecikme clock değişimiyle verinin okumaya hazır olması arasında bir değer. Geleneksel olarak Yazmaç0, 0'a bağlanır. Bu yazmaçtan okuma yapıldığında 0 okunur, ve yazma işleminden etkilenmez. Şekil 22 Yazmaç dizisi (gecikme = 11) 16

17 5.7 Bellek (Memory) Her ne kadar bu proje işlemci tasarımıyla ilgili olsa da işlemcinin herhangi bir pratik kullanımı için veri ve komut belleğine bağlı olması gerekir. Yaygın olarak kullanılan 2 tip bellek mevcuttur, SRAM ve DRAM. Burada hafıza birimlerinin ayrıntılarına değinmeyecegiz ancak mimarimizde bulunan diğer birimlerle iletişim kurmaları yüzünden okuma/yazma gecikme süresine ihtiyacımız var. Bellek ve bağlantılı olarak bellekten veya belleğe veri aktarımı yavaştır ve bu yüzden bizde hafızaya ALU değeriyle aynı olan 180 birimlik bir gecikme atıyoruz. 5.8 Bileşen Soyutlama Bazı birimlerin hızları, tasarımlarındaki çok sayıda kapıdan dolayı yavaş. Bu nedenle simulasyon dosyalarıyla eşdeger java sınıf dosyalarını yaratırken daha yüksek seviyede bir soyutlama yapıldı, paketin çıkış bağlantısı için tampon kullanımı gibi. Addoutput() metodu bu bağlantıdan herhangi bir çıkış sinyaline eklenen gecikmeyi ifade eden fazladan bir değişken alabilir. Bu soyutlamayı kullanarak simulasyonlardan belli bir miktar ayrıntıyı kaybediyoruz. Örneğin her ne kadar gecikmeyi simule ediyor olsak da çıkışlarda yarış durumu oluşmamaktadır. Aşağıdaki kod bu yöntemle yazmaç dizisinin nasıl oluşturulduğunu gösteriyor. class RegisterFile extends Package { private boolean previousclock; public Binary registers[]; public void construct() { addinput("regwrite", 1); addinput("readregister1", 5); addinput("readregister2", 5); addinput("writeregister", 5); addinput("writedata", 32); addinput("clock", 1); // Note delay of 11 on outputs addoutput("readdata1", 32, 11); addoutput("readdata2", 32, 11); } // Initialise all registers to be empty public void initialise() { registers = new Binary[32]; for (int i = 0; i < 32; i++) { registers[i] = new Binary(32); } } public void simulate() { // Check for negative going edge if (previousclock &&!getinput("clock", 0)) { // Set outputs to values of requested registers setoutput("readdata1", registers[getinput("readregister1").intvalue()]); setoutput("readdata2", registers[getinput("readregister2").intvalue()]); // Check if RegWrite high and not writing to Register0 if (getinput("regwrite", 0) && 17

18 } (getinput("writeregister").intvalue()!=0)) { // Write input to register registers[getinput("writeregister").intvalue()] = getinput("writedata"); } } previousclock = getinput("clock", 0); } 6. Sadeleştirilmiş MIPS Komut Seti Takip eden işlemcinin komut seti MIPS mimarisinin bir alt seti olarak tasarlandı. İlk RISC MIPS longası John Hennessy tarafından 1981 yılında Standford'da tasarlandı ve üretildi. Bizim uygulamaya koyacağımız komutlar Tablo 4'de özetlenmiştir. Bu komutlar bir takım tasarım problemlerinin incelenmesi ve basit bir programın uygulanması için yeterlidir. Instruction Example Meaning add add $1, $2, $3 $1 = $2 + $3 subtract sub $1, $2, $3 $1 = $2 - $3 and and $1, $2, $3 $1 = $2 & $3 or or $1, $2, $3 $1 = $2 $3 load word lw $1, 100 ($2) $1 =Memory[$2+100] store word sw $1, 100 ($2) Memory[$2+100] = $1 branch on equal beq $1, $2, 100 if ($1==$2) go to PC+4+(4 100) set on less than slt $1, $2, $3 If ($2 < $3) $1 = 1 else $1 = 0 jump j go to Tablo 4 Basitleştirilmiş MIPS Komut Seti Dolar işaretiyle gösterilen sayılar yazmaç dizisindeki yazmaçları belirtiyor. Bu RISC mimarisinde anahtar bir özellik. Hafıza erişimi yavaş olduğu için, işleme hızı, sayılar işlemci içindeki yazmaçlarda tutarak arttırılmıştır. Load ve store hafızaya bağlanılan tek komutlar. Diğer bütün komutlar işlemleri yazmaçlar üzerinde yapıyor. Bu bizi basitleştirilmiş komut yapısına götürüyor. 32 bit MIPS formatlarının üçü de projedeki tasarım tarafından destekleniyor. 7 Tek-Döngülü İşlemci Tasarıma 3 komut setinin herbiri için gerekli veriyolu ile başlayabiliriz. Bu her komut için işlem tek bir clock sinyali sürecektir. 7.1 Komut Alımı (Instruction Fetch) Komut alımı bütün komut formatları için ortaktır. Basitleştirmek için komut ve veri belleklerini ayırıyoruz. 32-bitlik program sayacı (PC program counter) adındaki yazmaç, hafızadaki bir sonraki komutun adresini tutar. Yazmaç komutun hafızadan okunduğu sürece sabit kalmasını sağlar. Her komut 4 bytedan oluştuğu için bir sonraki komuta erişmek için program 18

19 sayacını her clock'da bu kadar arttırmamız gerekir. Şekil 23 bu işlemin yapılması için gereken basit bir devreyi içeriyor. 7.R-Format Komuları Şekil 23 Komut alma Döngünün bir sonraki aşaması komutun anlaşılması, çözülmesi ve gerekli veriyolunun ayarlanmasını gerektirir. R-format komutları aritmetik ve mantıksal işlemler için kullanılır. Tablo 5 komutları içeren alanları gösteriyor. Bütün R-format komutlar için opcodelar aynıdır. Alan Bits op Anlamı 6 opcode(000000) rs 5 İlk kaynak yazmacı rt rd shamt funct 5 İkinci kaynak yazmacı 5 Hedef yazmacı 5 Kaydırma miktarı 6 Aritmatik/mantık fonksiyonu Tablo 5 R-Format Komut Alanı Tablo 6'da örnek bir komut görülüyor, add $1,$2,$3. Her aritmetik/mantık işleminin onunla bağlantılı bir fonksiyon kodu bulunur. Komutların sabit format olması sayesinde gerekli alanların düzenlenmeleri çok kolaydır. op rs rt rd shamt funct Tablo 6 add $1, $2, $3 işlemi için gereken komut 19

20 İki farklı kaynak yazmacından veri alıp bir ALU işlemi uygulayıp sonrasında elde edilen veriyi 3. bir yazmaca yazmak bütün R-format komutlarda aynı olan uygulamadır. Bu işlem için gereken veriyolu Şekil 24'de verilmiştir. 7.3 I-Format Komutları Şekil 24 R-Format veriyolu I-format komutları veri transferi ya da dallanma (branch) gibi hızlı adres gerektiren işlemlerde kullanılır. Tablo 7'de komutların formatı verilmiştir. Burada opcode tek başına belirli bir işlemi tanımlamak için kullanılmıştır. Alan Bitler Anlamı op 6 adres rs 5 İlk kaynak yazmacı rt 5 İkinci kaynak yazmacı adres/hızlı 16 Adres ya da hızlı değer Tablo 7 I-Format Komut Seti Son alan, yükleme ve kaydetme işlemlerinde ilk yazmaçta bulunan gerekli adres bilgisinin ofsetini içerir. Bu adres düzenlemeyi kolaylaştırır. Veri ikinci yazmaçtan hafızaya kaydedilir ya da ikinci yazmaca yüklenir. Örnek bir komut Tablo 8'de verilmiştir. op rs rt adres/hızlı değer Tablo 8 - lw $1, 100($2) işlemi için komut seti Her iki komutta RS yazmacından adresi okumayı ve ofset eklemeyi gerektiriyor. Bu ekleme işlemi için ALU ofsetin işaretli 32 bit genişletilmesiyle kullanılabilir. Kaydetme işlemi için RT yazmacındaki veriyi okuyup belirtilen adrese yazmak isterken, yükleme işlemi için belirtilen adresten verinin okunup RT yazmacına yazılmasını istiyoruz. Bu işlem için gereken veriyolu Şekil25'te gösterilmiştir. Yazmaçlar ve veri hafızası için gereken okuma ve yazma sinyallerinin üretilmesi kontrol biriminin görevidir. 20

21 Şekil 25 Yükleme / Kaydetme veriyolu Tablo 9'da verildiği gibi ikinci bir tür I-format komutu için dallanma komutunu dikkate almamız gerekiyor. Burada iki yazmacın içindeki verinin karşılaştırılması ve aynı büyüklükte olmaları durumunda sayının ofsette belirtilen komuta dallanması istenmektedir. op rs rt adres/hızlı değer Tablo 9 - beq $1, 100 işlemi için komut seti Bunun için gerekli olan veriyolu Şekil 26'da verilmiştir. Veri iki yazmaçtan da okunuyor ve ALU bir çıkarma işlemi gerçekleştiriyor. ALU'nun 0 çıkışı dallanma kontrol birimi tarafından dallanmanın olup olmayacağını kontrol etmek için kullanılabilir. Dallanma için olan hedef adresi adres/hızlı alanının işaret genişletilmesi hesaplanır, sonrasında sola doğru 2 kere kaydırılarak ofsetin byte değeri elde edilir. Bu daha sonra PC+4 değerine eklenir. Şekil 26 Dallanma veriyolu 21

EEM122SAYISAL MANTIK SAYICILAR. Elektrik Elektronik Mühendisliği Yrd. Doç. Dr. Hüseyin Sağkol

EEM122SAYISAL MANTIK SAYICILAR. Elektrik Elektronik Mühendisliği Yrd. Doç. Dr. Hüseyin Sağkol EEM122SAYISAL MANTIK BÖLÜM 6: KAYDEDİCİLER VE SAYICILAR Elektrik Elektronik Mühendisliği Yrd. Doç. Dr. Hüseyin Sağkol KAYDEDİCİLER VE SAYICILAR Flip-flopkullanan devreler fonksiyonlarına göre iki guruba

Detaylı

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar) Bus

Detaylı

KASIRGA 4. GELİŞME RAPORU

KASIRGA 4. GELİŞME RAPORU KASIRGA 4. GELİŞME RAPORU 14.07.2008 Ankara İçindekiler İçindekiler... 2 Giriş... 3 Kasırga Birimleri... 3 Program Sayacı Birimi... 3 Bellek Birimi... 3 Yönlendirme Birimi... 4 Denetim Birimi... 4 İşlem

Detaylı

MİKROİŞLEMCİ MİMARİLERİ

MİKROİŞLEMCİ MİMARİLERİ MİKROİŞLEMCİ MİMARİLERİ Mikroişlemcilerin yapısı tipik olarak 2 alt sınıfta incelenebilir: Mikroişlemci mimarisi (Komut seti mimarisi), Mikroişlemci organizasyonu (İşlemci mikromimarisi). CISC 1980 lerden

Detaylı

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü BİLGİSAYAR MİMARİSİ Komut Seti Mimarisi Özer Çelik Matematik-Bilgisayar Bölümü Komut Seti Mimarisi Bilgisayarın hesaplama karakteristiklerini belirler. Donanım sistemi mimarisi ise, MİB(Merkezi İşlem Birimi),

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Mikro işlemler Fetch cycle Indirect cycle Interrupt cycle Execute cycle Instruction

Detaylı

(Random-Access Memory)

(Random-Access Memory) BELLEK (Memory) Ardışıl devreler bellek elemanının varlığı üzerine kuruludur Bir flip-flop sadece bir bitlik bir bilgi tutabilir Bir saklayıcı (register) bir sözcük (word) tutabilir (genellikle 32-64 bit)

Detaylı

Mikrobilgisayar Sistemleri ve Assembler

Mikrobilgisayar Sistemleri ve Assembler Mikrobilgisayar Sistemleri ve Assembler Bahar Dönemi Öğr.Gör. Vedat MARTTİN Konu Başlıkları Mikrobilgisayar sisteminin genel yapısı,mimariler,merkezi işlem Birimi RAM ve ROM bellek özellikleri ve Çeşitleri

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Processor organization Register organization Instruction cycle 2 Processor organization İşlemci

Detaylı

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009 1-) Instruction Cycle State Diagram ı çizip herbir state için gerçekleştirilen işlemleri detaylı bir şekilde açıklayınız. Instruction state cycle da üstteki kısımlar CPU dışında alttaki kısımlar CPU içinde

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş İşletim Sistemleri ve Donanım İşletim Sistemlerine Giriş/ Ders01 1 İşletim Sistemi? Yazılım olmadan bir bilgisayar METAL yığınıdır. Yazılım bilgiyi saklayabilir, işleyebilir

Detaylı

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü BİLGİSAYAR MİMARİSİ Bilgisayar Bileşenleri Ve Programların Yürütülmesi Özer Çelik Matematik-Bilgisayar Bölümü Program Kavramı Bilgisayardan istenilen işlerin gerçekleştirilebilmesi için gereken işlem dizisi

Detaylı

Bilgisayar Mimarisi ve Organizasyonu Giriş

Bilgisayar Mimarisi ve Organizasyonu Giriş + Bilgisayar Mimarisi ve Organizasyonu Giriş Bilgisayar Mimarisi Bilgisayar Organizasyonu Programcının görebileceği bir sistemin nitelikleri Bir programın mantıksal yürütülmesi üzerinde direk bir etkisi

Detaylı

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Bilgisayar Organizasyonu BIL

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Bilgisayar Organizasyonu BIL DERS BİLGİLERİ Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS Bilgisayar Organizasyonu BIL321 5 3+2 4 5 Ön Koşul Dersleri Dersin Dili Dersin Seviyesi Dersin Türü Türkçe Lisans Zorunlu / Yüz Yüze

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Operand türleri Assembly dili 2 İşlemcinin yapacağı iş makine komutlarıyla belirlenir. İşlemcinin

Detaylı

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER Bitirme Ödevi Sunumu BERKELEY RISC I işlemcisi İÇİN PLATFORM BAĞIMSIZ BENZETİM PROGRAMI Danışman : Yrd.Doç.Dr. D Feza BUZLUCA 0495 0639 Sunum Planı Ödev konusu hakkında Berkeley RISC I işlemcisi hakkında

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ İçerik Mikroişlemci Sistem Mimarisi Mikroişlemcinin yürüttüğü işlemler Mikroişlemci Yol (Bus) Yapısı Mikroişlemci İç Veri İşlemleri Çevresel Cihazlarca Yürütülen İşlemler

Detaylı

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ Yrd. Doç. Dr. Şule Gündüz Öğüdücü Merkezi İşlem Birimi (MİB): Bilgisayarın temel birimi Hız Sözcük uzunluğu Buyruk kümesi Adresleme yeteneği Adresleme kapasitesi

Detaylı

Mikroçita. Mikroçita Rapor 2:

Mikroçita. Mikroçita Rapor 2: Mikroçita Rapor 2: İşlemci projemizle ilgili olarak hazırlamış olduğumuz bu ikinci raporda öncelikli olarak vhdl kullanarak tasarladığımız işlemcimizin genel çalışmasını ilk rapora göre daha ayrıntılı

Detaylı

BÖLÜM12. 2- FORMÜLLER ve OTOMATİK TOPLAM. 2.1. Formüller

BÖLÜM12. 2- FORMÜLLER ve OTOMATİK TOPLAM. 2.1. Formüller BÖLÜM12 2- FORMÜLLER ve OTOMATİK TOPLAM 2.1. Formüller Formül, bir sayfadaki verilerin aritmetiksel, mantıksal, istatistiksel vb. işlemleri yapması için kullanılan denklemlerdir ve bize sonuç bildirirler.

Detaylı

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN Bilgisayar Mühendisliğine Giriş Yrd.Doç.Dr.Hacer KARACAN Mikroişlemci Nedir? Bir bilgisayarın en önemli parçası Mikroişlemcisidir. Hiçbir bilgisayar mikroişlemci olmadan çalışamaz. Bu nedenle Mikroişlemci

Detaylı

KONTROL VE OTOMASYON KULÜBÜ

KONTROL VE OTOMASYON KULÜBÜ KONTROL VE OTOMASYON KULÜBÜ C DİLİ İLE MİKROKONTROLÖR PROGRAMLAMA EĞİTİMİ Serhat Büyükçolak Ahmet Sakallı 2009-2010 Güz Dönemi Eğitimleri Mikrokontrolör Gömülü sistemlerin bir alt dalı olan mikrokontrolör

Detaylı

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü 1 BİLGİSAYAR MİMARİSİ Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü http:// http:// Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

Detaylı

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 2006

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 2006 Dersi Veren Birim: Bilgisayar Mühendisliği Dersin Türkçe Adı: BİLGİSAYAR MİMARİSİ Dersin Orjinal Adı: COMPUTER ARCHITECTURE Dersin Düzeyi:(Ön lisans, Lisans, Yüksek Lisans, Doktora) Lisans Dersin Kodu:

Detaylı

SPARC v8 İŞLEMCİ SİMÜLASYONU

SPARC v8 İŞLEMCİ SİMÜLASYONU SPARC v8 İŞLEMCİ SİMÜLASYONU BİTİRME ÖDEVİ SUNUMU D a n ı ş m a n : Yrd. D oç. D r. F eza B U Z L U C A EZGİ ZÜMRÜT ULAŞ 040080194 Sunum Konuları 2 RISC İşlemciler Programlama Dili Seçimi SPARC v8 Yazılım

Detaylı

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir. PHP'nin Temelleri PHP Nedir? PHP, bir programlama dili olarak, değişkenler, değişkenlerin değerleriyle bir işlem yapmayı sağlayan işlemciler (operatörler), işlemcilerle oluşturulan deyimler ve nihayet

Detaylı

Java Temel Özellikleri

Java Temel Özellikleri Java Temel Özellikleri Java Programlama Dili Java programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince elektrikli ev aletlerinin birbiriyle

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Komut çalıştırma özellikleri Büyük register file kullanımı Compiler tabanlı register

Detaylı

SAYISAL MANTIK LAB. PROJELERİ

SAYISAL MANTIK LAB. PROJELERİ 1. 8 bitlik Okunur Yazılır Bellek (RAM) Her biri ayrı adreslenmiş 8 adet D tipi flip-flop kullanılabilir. RAM'lerde okuma ve yazma işlemleri CS (Chip Select), RD (Read), WR (Write) kontrol sinyalleri ile

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/ Eşzamanlı (Senkron) Ardışıl Devrelerin Tasarlanması (Design) Bir ardışıl devrenin tasarlanması, çözülecek olan problemin sözle anlatımıyla (senaryo) başlar. Bundan sonra aşağıda açıklanan aşamalardan geçilerek

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 1 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlamaya C ile Programlamaya Yazılım: Bilgisayarın işlemler yapması ve karar vermesi

Detaylı

27.10.2011 HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

27.10.2011 HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK Mikroişlemci HAFTA 1 HAFIZA BİRİMLERİ Program Kodları ve verinin saklandığı bölüm Kalıcı Hafıza ROM PROM EPROM EEPROM FLASH UÇUCU SRAM DRAM DRRAM... ALU Saklayıcılar Kod Çözücüler... GİRİŞ/ÇIKIŞ G/Ç I/O

Detaylı

Bölüm 4 Ardışıl Lojik Devre Deneyleri

Bölüm 4 Ardışıl Lojik Devre Deneyleri Bölüm 4 Ardışıl Lojik Devre Deneyleri DENEY 4-1 Flip-Floplar DENEYİN AMACI 1. Kombinasyonel ve ardışıl lojik devreler arasındaki farkları ve çeşitli bellek birimi uygulamalarını anlamak. 2. Çeşitli flip-flop

Detaylı

18. FLİP FLOP LAR (FLIP FLOPS)

18. FLİP FLOP LAR (FLIP FLOPS) 18. FLİP FLOP LAR (FLIP FLOPS) Flip Flop lar iki kararlı elektriksel duruma sahip olan elektronik devrelerdir. Devrenin girişlerine uygulanan işarete göre çıkış bir kararlı durumdan diğer (ikinci) kararlı

Detaylı

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir. Bilgisayar Mimarisi İkilik Kodlama ve Mantık Devreleri Yrd.Doç.Dr. Celal Murat KANDEMİR ESOGÜ Eğitim Fakültesi - BÖTE twitter.com/cmkandemir Kodlama Kodlama (Coding) : Bir nesneler kümesinin bir dizgi

Detaylı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu bulunmaktadır; 1. Performans: İşletim sistemi, makine

Detaylı

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. I. GİRİŞ Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. İnsanların elle yaptığı ve yapmakta olduğu bir çok

Detaylı

Bu derste! BBM 231 Yazmaçların Aktarımı Seviyesinde Tasarım! Yazmaç Aktarımı Düzeyi! Büyük Sayısal Sistemler! 12/25/12

Bu derste! BBM 231 Yazmaçların Aktarımı Seviyesinde Tasarım! Yazmaç Aktarımı Düzeyi! Büyük Sayısal Sistemler! 12/25/12 BBM 231 Yazmaçların Aktarımı Seviyesinde Tasarım! Hacettepe Üniversitesi Bilgisayar Müh. Bölümü Bu derste! Büyük, karmaşık sayısal sistemlerin tasarımı ele alınacaktır. ASM ve ASMD çizgeleri Tasarım Örnekleri

Detaylı

Data Structures Lab 1 2012-Güz

Data Structures Lab 1 2012-Güz Data Structures Lab 1 2012-Güz C# Ortamı Tanıtımı ve Uygulama Geliştirilmesi Visual Studio 2010 Ortamının Temini -NYG'ndan MSDN üyeliği için başvuru dilekçesi alınıp doldurulmalı ve yine NYG'ye teslim

Detaylı

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma TEMEL BİLGİSAYAR BİLİMLERİ Programcılık, problem çözme ve algoritma oluşturma Programcılık, program çözme ve algoritma Program: Bilgisayara bir işlemi yaptırmak için yazılan komutlar dizisinin bütünü veya

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

Komutların Yürütülmesi

Komutların Yürütülmesi Komutların Yürütülmesi Bilgisayar Bileşenleri: Genel Görünüm Program Sayacı Komut kaydedicisi Bellek Adres Kaydedicisi Ara Bellek kaydedicisi G/Ç Adres Kaydedicisi G/Ç ara bellek kaydedicisi 1 Sistem Yolu

Detaylı

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. Programların ve donanımların kullanılması için bir çalıştırılması platformu oluşturur. Sistemin yazılım

Detaylı

Yarım toplayıcının fonksiyonelliği ile 4 x 2 bit ROM hafıza(çok küçük bir hafıza) programlandığının bir örneğini düşünelim:

Yarım toplayıcının fonksiyonelliği ile 4 x 2 bit ROM hafıza(çok küçük bir hafıza) programlandığının bir örneğini düşünelim: Başvuru Çizelgeleri Son bölümde sayısal hafıza cihazları hakkında bilgi aldınız, katı-hal cihazlarıyla ikili veri depolamanın mümkün olduğunu biliriz. Bu depolama "hücreleri" katı-hal hafıza cihazlarıyla

Detaylı

BSE 207 Mantık Devreleri Lojik Kapılar ve Lojik Devreler (Logic Gates And Logic Circuits)

BSE 207 Mantık Devreleri Lojik Kapılar ve Lojik Devreler (Logic Gates And Logic Circuits) SE 207 Mantık Devreleri Lojik Kapılar ve Lojik Devreler (Logic Gates nd Logic Circuits) Sakarya Üniversitesi Lojik Kapılar - maçlar Lojik kapıları ve lojik devreleri tanıtmak Temel işlemler olarak VE,

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Adresleme modları Pentium ve PowerPC adresleme modları Komut formatları 1 Adresleme modları

Detaylı

MPLAB IDE v7.60 PROGRAMI KULLANIMI

MPLAB IDE v7.60 PROGRAMI KULLANIMI MPLAB IDE v7.60 PROGRAMI KULLANIMI MPLAB IDE programı mikroişlemciler için hazırlanmış bir derleyici programdır. Microchip firması tarafından hazırlanmıştır. (Resim 1) MPLAB programı assembly dilinde simulasyon,

Detaylı

BILGISAYAR ARITMETIGI

BILGISAYAR ARITMETIGI 1 BILGISAYAR ARITMETIGI Sayısal bilgisayarlarda hesaplama problemlerinin sonuçlandırılması için verileri işleyen aritmetik buyruklar vardır. Bu buyruklar aritmetik hesaplamaları yaparlar ve bilgisayar

Detaylı

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu MİKROBİLGİSAYAR SİSTEMLERİ Teknik Bilimler Meslek Yüksekokulu Dersin Amacı Mikroişlemciler Mikrodenetleyiciler PIC Mikrodenetleyiciler Micro BASIC Programlama Kullanılacak Programlar MSDOS DEBUG PROTEUS

Detaylı

Excel de çalışma alanı satır ve sütunlardan oluşur. Satırları rakamlar, sütunları ise harfler temsil eder. Excel çalışma sayfası üzerinde toplam

Excel de çalışma alanı satır ve sütunlardan oluşur. Satırları rakamlar, sütunları ise harfler temsil eder. Excel çalışma sayfası üzerinde toplam Microsoft Excel Microsoft Office paket programı ile bizlere sunulan Excel programı bir hesap tablosu programıdır. her türlü veriyi tablolar yada listeler halinde tutmak ve bu veriler üzerinde hesaplamalar

Detaylı

BBM 231 Yazmaçların Aktarımı Seviyesinde Tasarım! Hacettepe Üniversitesi Bilgisayar Müh. Bölümü

BBM 231 Yazmaçların Aktarımı Seviyesinde Tasarım! Hacettepe Üniversitesi Bilgisayar Müh. Bölümü BBM 231 Yazmaçların Aktarımı Seviyesinde Tasarım! Hacettepe Üniversitesi Bilgisayar Müh. Bölümü Bu derste! Büyük, karmaşık sayısal sistemlerin tasarımı ele alınacaktır. ASM ve ASMD çizgeleri Tasarım Örnekleri

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Servlet Üst Düzey Programlama-ders01/ 1 Servlet Nedir? Web sayfaları ilk başlarda durağan bir yapıya sahipti ve kullanıcıdan bilgi alarak işlemler yapmıyordu. Zamanın geçmesiyle kullanıcıya

Detaylı

BÖLÜM 2 8051 Mikrodenetleyicisine Giriş

BÖLÜM 2 8051 Mikrodenetleyicisine Giriş C ile 8051 Mikrodenetleyici Uygulamaları BÖLÜM 2 8051 Mikrodenetleyicisine Giriş Amaçlar 8051 mikrodenetleyicisinin tarihi gelişimini açıklamak 8051 mikrodenetleyicisinin mimari yapısını kavramak 8051

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK

MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK 1.1 Programın Başlatılması 1.2 Yeni Proje Oluşturma 1.3 MCU Seçimi Yrd.Doç.Dr.Bülent Çobanoğlu 1.4 MCU Programlama Dil Seçimi 1.5 Proje İsmi

Detaylı

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri Öğrenci No Ad-Soyad Puan Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri S1) 8086 mikroişlemcisi bitlik adres yoluna ve.. bitlik veri yoluna sahip bir işlemcidir. S2) 8086 Mikroişlemci mimarisinde paralel

Detaylı

SIMAN KULLANIM KILAVUZU

SIMAN KULLANIM KILAVUZU SIMAN KULLANIM KILAVUZU Önder Öndemir SIMAN Simülasyon programı Model Çatı ve Deneysel Çatı olmak üzere iki kısımdan oluşur. Model çatı genel itibariyle modullerin ve işlem bloklarının yazıldığı kısımdır.

Detaylı

Ders 8 Konu Özeti ve Problemler

Ders 8 Konu Özeti ve Problemler Ders 8 Konu Özeti ve Problemler C# ve Nesne Yönelimli Programlamanın 3 Prensibi Kapsülleme (Encapsulation) Nesne yönelimli programlamanın ilk prensibi kapsülleme (encapsulation) olarak adlandırılır. Bu

Detaylı

NESNEYE YÖNELİK TASARIM SÜRECİ

NESNEYE YÖNELİK TASARIM SÜRECİ NESNEYE YÖNELİK TASARIM SÜRECİ GİRİŞ Nasıl? sorusuna yanıt aranır. Nesne modeli: Analizden tasarıma. Doğrudan problem alanı ile ilgili nesnelerden oluşan model, yardımcı nesnelerle zenginleştirilir. Ana

Detaylı

Teorik Bilgi DENEY 7: ASENKRON VE SENKRON SAYICILAR

Teorik Bilgi DENEY 7: ASENKRON VE SENKRON SAYICILAR DENEY 7: ASENKRON VE SENKRON SAYICILAR Deneyin Amaçları Asenkron ve senkron sayıcı devre yapılarının öğrenilmesi ve deneysel olarak yapılması Deney Malzemeleri 74LS08 Ve Kapı Entegresi (1 Adet) 74LS76

Detaylı

PLC (Programlanabilir Kontrol Cihazı) TABANLI SİSTEMLERİN İNTERNET ÜZERİNDEN İZLENMESİ

PLC (Programlanabilir Kontrol Cihazı) TABANLI SİSTEMLERİN İNTERNET ÜZERİNDEN İZLENMESİ PLC (Programlanabilir Kontrol Cihazı) TABANLI SİSTEMLERİN İNTERNET ÜZERİNDEN İZLENMESİ Derya Birant, Alp Kut Dokuz Eylül Üniversitesi Bilgisayar Mühendisliği Bölümü İÇERİK Giriş PLC nedir? PLC lerin Uygulama

Detaylı

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME Ecem İren Halilcan Can Akince Aylin Kantarcı Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü

Detaylı

HESAP MAKİNASI YAPIMI

HESAP MAKİNASI YAPIMI HESAP MAKİNASI YAPIMI 1..Aşağıdakine benzer görünüm ve butonları hazırlayın. 2. 24. Butonun içerisine aşağıdaki kodları yazın. 3. Yeni bir layer ekleyip Frame1 F9 na aşağıdaki kodları ekleyelim. 4. Butonlardan

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

Mikroişlemcilerde Aritmetik

Mikroişlemcilerde Aritmetik Mikroişlemcilerde Aritmetik Mikroişlemcide Matematiksel Modelleme Mikroişlemcilerde aritmetik işlemler (toplama, çıkarma, çarpma ve bölme) bu iş için tasarlanmış bütünleşik devrelerle yapılır. Bilindiği

Detaylı

İÇİNDEKİLER İÇİNDEKİLER KODLAB

İÇİNDEKİLER İÇİNDEKİLER KODLAB İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem 3.3. İki Tabanlı Sayı Sisteminde Dört İşlem A + B = 2 0 2 1 (Elde) A * B = Sonuç A B = 2 0 2 1 (Borç) A / B = Sonuç 0 + 0 = 0 0 0 * 0 = 0 0 0 = 0 0 0 / 0 = 0 0 + 1 = 1 0 0 * 1 = 0 0 1 = 1 1 0 / 1 = 0 1

Detaylı

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme PROGRAMIN ADI DERSIN KODU VE ADI DERSIN ISLENECEGI DÖNEM HAFTALIK DERS SAATİ DERSİN SÜRESİ ENDÜSTRİYEL ELEKTRONİK MİK.İŞLEMCİLER/MİK.DENETLEYİCİLER-1 2. Yıl, III. Yarıyıl (Güz) 4 (Teori: 3, Uygulama: 1,

Detaylı

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1 Von Neumann Mimarisi Mikroişlemciler ve Mikrobilgisayarlar 1 Sayısal Bilgisayarın Tarihsel Gelişim Süreci Babage in analitik makinası (1833) Vakumlu lambanın bulunuşu (1910) İlk elektronik sayısal bilgisayar

Detaylı

William Stallings Computer Organization and Architecture 9 th Edition

William Stallings Computer Organization and Architecture 9 th Edition William Stallings Computer Organization and Architecture 9 th Edition Bölüm 4 Cache Bellek Bilgisayar Hafıza Sisteminin Ana Karakteristikleri Table 4.1 Key Characteristics of Computer Memory Systems Bilgisayar

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

Hacettepe Robot Topluluğu

Hacettepe Robot Topluluğu Hacettepe Robot Topluluğu PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş HUNRobotX - PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel - 4 Haziran

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Kullanıcıdan aldığı veri ya da bilgilerle kullanıcının isteği doğrultusunda işlem ve karşılaştırmalar yapabilen, veri ya da bilgileri sabit disk,

Detaylı

Bilgisayar Programlama. Giriş

Bilgisayar Programlama. Giriş Bilgisayar Programlama Giriş Bilgisayar, verileri saklayan, bunlar üzerinde çok hızlı işlem yapan ve istenen verileri sunan bir aygıttır. Donanım (hardware) ve yazılım(software) diye iki bölüme ayrlır.

Detaylı

Aşağıdaki örnekte, aynı düzen tablosu ve hücreleri içerikle birlikte gösterilmektedir.

Aşağıdaki örnekte, aynı düzen tablosu ve hücreleri içerikle birlikte gösterilmektedir. 12 DÜZEN TABLOLARI Microsoft Office FrontPage 2003 programında düzen tabloları ve hücrelerini kullanarak, profesyonel görünümlü Web sayfası düzenleri oluşturabilirsiniz. Düzen tablosu, sayfa düzeni için

Detaylı

KOCAELİ TEKNİK LİSESİ ELEKTRİK ELEKTRONİK BÖLÜMÜ OTOMASYON ATÖLYESİ EKTS (Elektrik Kumanda Teknikleri Simülatörü ) DERS NOTU. Kaynak : www.veppa.

KOCAELİ TEKNİK LİSESİ ELEKTRİK ELEKTRONİK BÖLÜMÜ OTOMASYON ATÖLYESİ EKTS (Elektrik Kumanda Teknikleri Simülatörü ) DERS NOTU. Kaynak : www.veppa. KOCAELİ TEKNİK LİSESİ ELEKTRİK ELEKTRONİK BÖLÜMÜ OTOMASYON ATÖLYESİ EKTS (Elektrik Kumanda Teknikleri Simülatörü ) DERS NOTU Kaynak : www.veppa.com Hakkında EKTS (Elektrik Kumanda Teknikleri Simülatörü

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ MEHMET ALİ SERT

BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ MEHMET ALİ SERT BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ 040080202 MEHMET ALİ SERT 040090521 SUNUM İÇERİĞİ Problem Tanımı Tespit Edilen Sorunlar Problemin Sonuçları

Detaylı

Online Elektronik Devre Simülasyonu 123D Circuits https://circuits.io/

Online Elektronik Devre Simülasyonu 123D Circuits https://circuits.io/ Autodesk 123D Circuits Online Elektronik Devre Simülasyonu 123D Circuits https://circuits.io/ 123D Circuits Autodesk ve elektronik mi? Gerçekten mi? Evet, Autodesk online olarak kullanıma sunduğu 123D

Detaylı

CAEeda TM GENEL TANITIM. EDA Tasarım Analiz Mühendislik

CAEeda TM GENEL TANITIM. EDA Tasarım Analiz Mühendislik CAEeda TM GENEL TANITIM EDA Tasarım Analiz Mühendislik İÇİNDEKİLER 1. FARE TUŞLARININ GÖSTERİMİ...2 2. CAEeda TM YAZILIMININ GÖRSEL ARAYÜZ YAPISI...3 3. CAEeda TM VARSAYILAN İKON PANELİ TANIMLAMALARI...4

Detaylı

Bilgisayar Mühendisligi Bölümü Hacettepe Üniversitesi

Bilgisayar Mühendisligi Bölümü Hacettepe Üniversitesi Bu derste... BİL 201 Birleşimsel Mantık (Combinational Logic) Bilgisayar Mühendisligi Bölümü Hacettepe Üniversitesi Birleşimsel Devreler - Çözümlenmesi - Tasarımı Birleşimsel Devre Örnekleri - Yarım Toplayıcı

Detaylı

DENEY 4: TOPLAYICILAR, ÇIKARICILAR VE KARŞILAŞTIRICILAR

DENEY 4: TOPLAYICILAR, ÇIKARICILAR VE KARŞILAŞTIRICILAR DENEY 4: TOPLAYICILAR, ÇIKARICILAR VE KARŞILAŞTIRICILAR 1 Amaç Toplayıcı ve çıkarıcı devreleri kurmak ve denemek. Büyüklük karşılaştırıcı devreleri kurmak ve denemek. 2 Kullanılan Malzemeler 7404 Altılı

Detaylı

DSP DONANIMI. Pek çok DSP için temel elemanlar aşağıdaki gibidir.

DSP DONANIMI. Pek çok DSP için temel elemanlar aşağıdaki gibidir. DSP DONANIMI Pek çok DSP için temel elemanlar aşağıdaki gibidir. Çarpıcı yada çarpıcı- toplayıcı (MPY/MAC) Aritmetik lojik birim (ALU) Öteleyici (SHIFTER) Adres üreteci (AG) Komut yada program sıralayıcı

Detaylı

Bilgisayar Mimarisi ve Örgütleşimi (COMPE 331) Ders Detayları

Bilgisayar Mimarisi ve Örgütleşimi (COMPE 331) Ders Detayları Bilgisayar Mimarisi ve Örgütleşimi (COMPE 331) Ders Detayları Ders Adı Bilgisayar Mimarisi ve Örgütleşimi Ders Kodu COMPE 331 Dönemi Ders Uygulama Saati Saati Laboratuar Kredi AKTS Saati Güz 3 0 0 3 5

Detaylı

1. MİCROSOFT EXCEL 2010 A GİRİŞ

1. MİCROSOFT EXCEL 2010 A GİRİŞ 1. MİCROSOFT EXCEL 2010 A GİRİŞ 1.1. Microsoft Excel Penceresi ve Temel Kavramlar Excel, Microsoft firması tarafından yazılmış elektronik hesaplama, tablolama ve grafik programıdır. Excel de çalışılan

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

Detaylı

Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak.

Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak. Amaçlarımız 2 Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak. Microsoft Excel 2010 da bilgi girişi yapabilmek. Excel de

Detaylı

25. Aşağıdaki çıkarma işlemlerini doğrudan çıkarma yöntemi ile yapınız.

25. Aşağıdaki çıkarma işlemlerini doğrudan çıkarma yöntemi ile yapınız. BÖLÜM. Büyüklüklerin genel özellikleri nelerdir? 2. Analog büyüklük, analog işaret, analog sistem ve analog gösterge terimlerini açıklayınız. 3. Analog sisteme etrafınızdaki veya günlük hayatta kullandığınız

Detaylı

Saklayıcı (veya Yazmaç) (Register)

Saklayıcı (veya Yazmaç) (Register) Saklayıcı (veya Yazmaç) (Register) Genel bir ardışıl devre: Saklayıcılar Ardışıl devre analiz ve sentezi için iyi bir örnektir. Ayrıca daha büyük çaplı ardışıl devrelerin tasarımında kullanılabilirler.

Detaylı

İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ LOJİK DEVRELERİ LABORATUVARI DENEY RAPORU

İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ LOJİK DEVRELERİ LABORATUVARI DENEY RAPORU İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ LOJİK DEVRELERİ LABORATUVARI DENEY RAPORU DENEYİN ADI : BELLEKLE TASARIM Seri Aritmetik Lojik Birim II (9.2) RAPORU HAZIRLAYAN : BEYCAN KAHRAMAN

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 2. BÖLÜM 2 PROGRAMLAMAYA GİRİŞ Programlama Terimleri ve Programlama Ortamı 3 Program Programlama IDE

Detaylı

İnönü Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

İnönü Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü İnönü Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü 00223 - Mantık Devreleri Tasarımı Laboratuar Föyleri Numara: Ad Soyad: Arş. Grv. Bilal ŞENOL Devre Kurma Alanı Arş. Grv. Bilal ŞENOL

Detaylı

2011 Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

2011 Bahar Dönemi. Öğr.Gör. Vedat MARTTİN 2011 Bahar Dönemi Öğr.Gör. Vedat MARTTİN ADRESLEME YÖNTEMLERİ Komut yazımında en önemli konulardan biri, adresleme yöntemidir. Adresleme yöntemi, işlenenin nerede bulunacağını belirtmek için kullanılan

Detaylı

Y.Doç.Dr.Tuncay UZUN 6. Ardışıl Lojik Devreler 2. Kombinezonsal devre. Bellek. Bellek nedir? Bir bellek şu üç önemli özelliği sağlamalıdır:

Y.Doç.Dr.Tuncay UZUN 6. Ardışıl Lojik Devreler 2. Kombinezonsal devre. Bellek. Bellek nedir? Bir bellek şu üç önemli özelliği sağlamalıdır: 6.ARDIŞIL LOJĐK DEVRELER 6.1.Ardışıl Lojik Devre Temelleri SR Tutucu Flip-Flop(FF) Saat, Kenar tetikleme D FF, JK FF, T FF 6.2.Ardışıl Devrelerin Analizi Moore modeli: Çıkışlar= f(şimdiki durum) Mealy

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı