CITIUS-ALTIUS-FORTIUS

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

Download "CITIUS-ALTIUS-FORTIUS"

Transkript

1 CITIUS-ALTIUS-FORTIUS PROCESSOR Versiyon /04/2008 PROJE SORUMLUSU : BERKAY AYBAR MURAT GOKSEL [email protected], [email protected]

2 ICINDEKILER Tablo Listesi... Figur Listesi... 1 GIRIS FPGA RISC Islemci EDA Yazilimlari... 2 FPGA ile Fiziksel Islemci Tasarimi Uygulamasi RISC Komut Seti Mimarisi RISC Islemci Mimarisi RISC Islemci Verilog Uygulamasi Komut Yakalama Birimi Komut Cozumleme Birimi Kontrol Unitesi Calisma Unitesi Hafiza Birimleri bitlik Pipeline Islemci Uygulamasi Pipeline Tehlikeleri Donanim Uygulamasi... 3 Sonuclar... 4 Gelicekte Yapilmasi Gereken Calismalar... 5 Sonuc... Referanslar... Appiks... A. Komut Aciklamari... B. CAF Processor Verilog Kodu... C. CAF Processor Testbench Verilog Kodu... D. Simulasyon Sonuclari... E. Kaynaklar... FPGA ile CPU tasarimi Page 2

3 CAF PROCESSOR PROJE OZETI Bu proje kapsaminda verilen komut setinin tasarimda oncelikli olarak en verimli sekilde gerceklenmesi on gorulmustur. Tasarimi zenginlestirmek icin verilen komut setine ek olarak guncel islemcilerde kullanilan yaygin komutlar da eklenicektir(orn: POP, PUSH ). Tasarim 16- bitlik pipelined RISC mimarisi gerceklestirilerek uygulanacaktir. CAF_Processor tasariminin dort farkli bolumden olusmasi on gorulmustur, bunlar sirasiyla; 1) Komut Yakalama Bolumu (Instruction Fetch Stage) 2) Komut Cozumleme Bolumu (Instruction Decoding Stage) 3) Calisma Bolumu (Execution Stage) 4) Geri Okuma Bolumu( Write Back Stage) Her bolum bir veya birden fazla verilog modulunden olusacaktir. Projenin iki fazdan olusturulmasi on gorulmustur. Birinci faz verilen komut kumesinin ve buna ek olarak guncel komutlarin kullanilacagi 16-bitlik RISC islemci tasarimidir. Ikinci faz da ek olarak IEEE 754 Floating Point Unitesi nin de donanima entegre edilip komut kumesini zenginlestirmek ayni zamanda tasarlanicak islemcinin islem yapabilme gucunu artirmak olarak hedeflenmistir. Proje kapsamin da tasarlanicak islemci ile ornek bir FIR filtre uygulamasi yapilmasi planlanmaktadir. Proje kapsaminda ozellikle fonksyonel simulasyonlari ve post-synthesis simulasyonlarini gerceklestirmek icin gerekli olan EDA yazilimlari ve bir gelistirme boardi talep edilmektedir. C, A, F harfleri latince Citius- Altius- Fortius kelimelerinin bas harflerinden gelmektedir. Latince de bu kelimeler sirasiyla Daha hizli, Daha Yuksek, Daha Guclu anlamina gelmektedir. Tasarlanicak islemcininde butun bu ozellikleri saglamasi hedefligi icin bu isim proje icin uygun gorulmustur. FPGA ile CPU tasarimi Page 3

4 1 Add Addition 20 Lw Load word 2 Addi Addition (immediate) 21 Sw Store word 3 Sub Subtraction 22 Mov Move data between registers 4 Subi Subtraction (immediate) 23 Movi Move data (immediate) 5 Mul Multiplication 24 Beq Branch if equal to 0 6 Muli Multiplication (immediate) 25 Bne Branch if not equal to 0 7 Mulu Multiplication (unsigned) 26 Ba Branch always 8 Cmp Compare 27 BL Branch and Link 9 And AND 28 Nop No operation 10 Andi AND (immediate) 29 Hlt Halt 11 Or OR 30 Syscall System call (software interrupt) 12 Ori OR (immediate) 13 Not NOT 14 Xor XOR 15 Xori XOR (immediate) 16 Sll Logical shift left 17 Srl Logical shift right 18 Sla Arithmetic shift left 19 Sra Arithmetic shift right FPGA ile CPU tasarimi Page 4

5 FPGA ile CPU tasarimi Page 5

6 1 GIRIS 1.1 FPGA Bu projenin amaci FPGA icerisinde 16 bitlik RISC islemci tasarlamak ve bu islemciyi kullanarak bir uygulama gerceklestirmektir. Bu p roje raporu ileride egitim amacli kullanicagi dusunulerek sayisal tasarim ve FPGA teknolojisi hakkinda genel bilgilerde icermektedir. FPGA teknolojisi sayisal tasarimcilara cok buyuk esneklik saglamaktadir.bunun en buyuk sebeplerinden biri FPGA in tekrar programlanabilmesidir. Ayni zamanda FPGA lerin kismen dusuk fiyatli olmasi ve FPGA sirketlerinin(xilinx, Altera, Actel gibi...) sagladiklari gelismis yazilim araclari sayisal tasarimla ugrasan donanim muhislerinin hayatini kolaylastirir. FPGA ile yeni calismaya baslayan genc muhensdiler genellikle FPGA yi farkli bir tur mikroislemci sanarlar. Fakat FPGA kullanim amaci ile mikroislemcinin kullanim amaci bir cok zaman birbirlerinden cok farklidir. FPGA in iki farkli kullanim alani vardir bunlardan ilki ASIC prototip gerceklemesidir. ASIC tasarimcilari yaptiklari tasarimlari bilgisayar uzerinde yaptiklari simulasyonlardan sonra FPGA uzerine tasirlar. Cunku FPGA uzerine tasinan bir tasarim gercek zamanda fonksyonellik gosterir. Tasarimci kisinden istenen tasarimin kriterleri gerceklesip gerceklesmedigini bu evrede test etme sansi bulunur.tasarim muhisleri icin tasarimlarinin kriterleri olusturup olusturmadigini gormelerini saglayan onemli bir firsattir. Bundan sonraki adim tasarimin ASIC(Chip) in fabrikasyonu icin proses e gonderilmesidir. FPGA baska bir kullanim alani ise dusuk hacimde sistem uretimlerinde ASIC ye bir alternatiftir. ASIC uretimi cok maliyetli bir is oldugu icin ancak yuksek hacimde uretim yapildigi zaman ASIC in birim fiyati makul bir degere ulasir. Ama eger yuksek hacimli bir uretim yapilmayacaksa ASIC uretimi cok pahali olabilir. Bu noktada FPGA boslugu doldurur tasarimcilara hem fiyat hemde tasarim kolayligi acisindan cok fazla avantaj saglar. Tasarlanicak olan spesifik devre FPGA icinde gerceklestirilir ve sistem icinde calistirilir. FPGA ile CPU tasarimi Page 6

7 1.2 RISC Islemci Bu projede yer alan islemci mimarisi RISC islemci mimarisidir. RISC (Reduced Instruction Set Computer ) Komut Seti Azaltilmis Bilgisayar anlamina gelmektedir. Komut setinin azaltilmasi, cogu zaman islemcinin komut kumesindeki kompleks komutlarin cikartilmasi ile gerceklesir. Bu RISC islemci mimarisini daha az kompleks yapar. RISC islemcilerde asil amac tasarlanan komut kumesini basit yapmak ve bunun sonucunda komutlari hizli isleyen bir islemci elde etmektir. RISC islemcilerde komutlarin islenmesi bir saat cevrimi surer ve komutlarin uzunlugu sabittir. RISC islemci mimarisi bir baska islemci mimarisi olan CISC(Complex Instruction Set Computer) mimarisine alternatif olarak tasarlanmistir. Gunumuzde kullanilan bir cok kisisel bilgasayar CISC mimarisi icerir lerin basinda ilk mikroislemci tasarlandiginda hafiza birimleri pahali oldugundan komutlari mumkun oldugu kompleks tasarlayip olusturulucak programlarin hafizada daha az yer kaplanmasi amaclanmistir. O donemde hafiza birimleri maliyetli oldugu icin islemci tasarimcilarini bu yola yoneltmistir. Hafiza maliyetlerinin dusmesi tasarimcilari RISC islemci mimarisine yoneltmistir. RISC ve CISC komut setleri arasindaki iliskiyi guzel bir analoji yaparak aciklamaya calisalim. Ornegin latin alfabesi kullanarak yazilmis bir kitap in toplam sayfa sayisi ile ayni kitabin Cince yazilmis versiyonu ayni sayida degildir. Cince yazilan kitap cok daha az sayfadan olusur bunun sebebi Cın alfabesinde 4000 den fazla farkli sembolun olusudur. Semboller cok spesifik anlamlar icerebilirler fakat bunun sonucunda cok kompleks ve ogrenmesi cok zordur. Latin alfabesinde ise sadece 26 farkli sembol vardir. Bununla beraber ayni kitap cok daha fazla sayfa icermektedir. RISC islemci ve CISC islemci komut seti arasindaki farkda buna cok benzerdir. CISC islemcileri cozumlemek cok daha karisik ve zordur. Genel RISC mimarisi dort bolumden olusmustur. Bunlar sirasiyla 1. Komut Yakalama Evresi(Instruction Fetch Stage) 2. Komut Cozumleme Evresi(Instruction Decode Stage) 3. Komut Calistirma Evresi (Instruction Execution Stage) 4. Geri Yazma Evresi(Write Back) Ilerleyen bolumlerde CAF islemci tasarimi ve mimarisi ile ilgili daha detayli bilgi verilecektir. FPGA ile CPU tasarimi Page 7

8 1.3 EDA Yazilimlari FPGA ile CPU tasarimi Page 8

9 2 FPGA ile Fiziksel Islemci Uygulamasi 2.1 Komut Seti Mimarisi Genel olarak RISC islemcilerde basit ve tekduze bir komut formati kullanilir. RISC islemcilerde cok fazla komut formati olmamasi komut cozumlemesini onemli olcude kolaylastirir. CAF islemci komut mimarisi de 30 komut tan olusmustur. Ileride ek komutlarin mimariye eklenmesi planlanmisitir. Genel RISC islemci mimarisinde iki veya uc farkli adresleme teknigi kullanilir ve en genel adresleme teknikleri immediate, direct ve indexed dir. CAF islemci komut setinde de ayni sekilde uc farkli adresleme teknigi kullanilmistir. Diger gerekli adresleme modlari bu temel adresleme modlarindan elde edilebir. CAF islemcisindeki komutlari fonksiyonelliklerine gore gruplandirildiginda dort farkli gruba ayrilir. 1. Brans(Dallanma) Komutlari (Branch Instructions) 2. Veri Isleme Komutlari(Data Processing Instructions) 3. Yukleme ve Depolama Komutlari(Load&Store Instructions) 4. Kesme ve Diger Komutlar(Interrupt) Brans Komutlari: CAF islemcide uc cesit Brans komutu vardir bunlar kosulsuz(branch Always), Kosullu(Branch Equal, Branch Not Equal) ve altprogramlardir(branc&link). Brans komutlari program sayacinin icerigini degistirerek hafiza icerisinde farkli bir bolgeye yonlirirler. Kosullu brans komutlarinda programi yonlirmek icin kosulun saglanmasi gerekir. Kosul saglanirsa program sayaci ana-rutinden cikar ve altprogramin komutlarini islemeye baslar. CAF islemcide kosulsuz brans komutu program sayacini 1Kbyte ileri veya geri goturebilirler. Kosullu brans komutu ise ancak 256 byte ileri veya geri goturebilir. Veri Isleme Komutlari: Yukleme ve Depolama Komutlari: Kesme ve Diger Komutlar: CAF_Processor Komut Kumesi Komut Sembol Ornek Anlam Yorum Toplama add Toplama addi Immediate Cikarma sub Cikarma Immediate Subi FPGA ile CPU tasarimi Page 9

10 Carpma Mul Carpma Muli Immediate Carpma mulu Isaretsiz Kiyaslama Cmp Ve And Ve Andi Immediate Veya Or Veya Ori Immediate Not Not Xor Xor Xor Xori immediate Mantiksal Sll sola kaydirma Mantiksal Sri saga kaydirma Aritmetik Sla sola kaydirma Aritmetik Sra saga kaydirma Kelime Lw Yukleme Kelime Sw Depolama Tasima mov Tasima Movi Immediate Kosul(Eger Beq a esit ise) Kosul (Eger Bne esit degil ise) Kosul her Ba zaman Kosul ve BL baglama İslem yok Nop FPGA ile CPU tasarimi Page 10

11 Dur Halt Kesme Syscall CAF Islemci Ek Komutlar FPGA ile CPU tasarimi Page 11

12 2.2 RISC Islemci Mimarisi RISC islemcilerin komut setinin basit ve kisa olmasi mimarinin de daha az kompleks olmasinda buyuk bir etkir. RISC mimarisinin bir baska ozelligi, yukleme(load) ve depolama(store) komutlarinin disindaki tum komutlar veriyi islemci icerisindeki yazicilardan okur veya yazarlar. Sadece yukleme(load) ve depolama(store) komutlari disardaki hafiza birimiyle arayuz saglar. Islemcinin icindeki yazicilar(register) disardaki hafiza birimlerinden(ana hafiza veya cache hafiza) cok daha hizli oldugundan komutlarin cok daha hizli ve efektif calistirilmasi mumkun olur. Genel RISC islemci mimarisinde yazici dosyalari(register file) denilen yazici kumesi bulunur. Yazicilar islemci icerisinde gecici olarak sayisal veri depolamasinda kullanilir. RISC islemci mimarisinde cok sayida genel amacli yazici bulundugundan komut isleme sirasinda gerekli olan veriler burada saklanabilir. Bu da ana hafiza birimine olan bagimliligi azaltir ve islemcinin performansini arttirir. Bilindigi gibi islemcinin disinda bulunan hafiza birimine ulasmak icerdeki yazicilara ulasmaktan cok daha fazla zaman alir. Yazici dosyalari ayni zamanda hizli ve efektif altprogram calistirilmasi icinde kullanilir. Genel RISC islemci mimarisinde herhangi bir zamanda anarutin komut sirasinda giderken yazici dosyalarinin belli bir kismina ulasilabilir. Ornegin CAF islemcide 16 tane 16-bitlik genel amacli yazici dosyasi bulunur fakat bunlardan sadece ilk 8 tanesine ulasilabilir. Bir altprogram cagrildigi zaman altprogramin geri kalan 8 yaziciya ulasma hakki vardir. Boylece altprogram cagrildigi zaman anarutindeki veriler yazicilarda tutulur. FPGA ile CPU tasarimi Page 12

13 2.3 RISC Islemci Verilog Uygulamasi Komut Yakalama Evresi(Instruction Fetch Unit) Komut yakalama evresinde komut, hafizada program sayacinin gosterdigi yerden alinir ve komut yazicisina yazilir(if_ir). Program sayaci komut adres bilgisini tutar ve komutlar islikce icerigini iki artirir. Her komut 2byte oldugu icin program sayacida iki artirilir. Hafizadan komut okunmasi icin read_instruction_n sinyalide sifira cekilir. Bir sonraki saat cevriminde hafizadan alinan komut, IF_IR yazicisina depolanir. Komut yakalama evresi her saat cevriminde bu operasyonu yeni komutlar icin gerceklestirir. Boylece komut adresi bir sonraki komut icin hazirlanirken ayni zamanda o anda gelen komut da IF_IR yazicisinda depolanir. Eger brans gelmediyse programi olusturan komutlar sirali bir sekilde calisir. Eger bir brans operasyonu calistirilirsa o zaman program_sayicisina brans in oldugu adres aktarilir. Figur 1.1 Komut Yakalama Evresi //Komut_Yakalama: Komut Yakalama Evresi always@(posedge clk or reset_n) begin if(~reset_n) begin PC <= 0; //program sayaci ilk kosulu read_instruction_n <= 0; else begin read_instruction_n <= 0; if(branch_active) begin PC <= branch_pc_reg; IF_IR <= branch_instruction; IF_PC <=branch_pc_reg; else begin PC <= PC + 2; IF_IR <= instruction; // Komut Yakalama Komut Yazicisi IF_IR <= PC + 2; FPGA ile CPU tasarimi Page 13

14 2.3.2 Komut Cozumleme Evresi Komut cozumleme evresinde IF_IR sayacinda depolanan komut cozumlenir ve genel amacli yazicilarda (yazici dosyasi ) bulunan veri, calistirma evresinde kullanilmak uzere komut cozucu yazicilarina aktarilir. Yazici dosyalarinda bulunan verilerin komut cozucu yazicilarina aktarilmasinin sebebi verilen komutun yazici dosyasi icinden herhangi bir yazicidan veriyi aktarabilmesidir. Bu progamciya esneklik saglar. Asagidaki verilog kodu komut cozumleyici evrenin kodunu gostermistir. Verilog kodunda ornek olmasi icin sadece ADD ve ADDi komutlari cozumlenmistir. Always blogu icinde sadece case statement kullanilmistir. Komut cozumleme evresinin butun kismi Apiks B kisminda bulunabilir. Figur 1.2 Komut Cozumleme Evresi //Komut_Cozucu Evresi always@(posedge clk) begin case(if_ir[15:10]) 6'b00_0001:begin ID_opcode <= `ADD; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b00_0010:begin ID_opcode <= `ADDi; ID_Ra <= R[10:8]; ID_imm_offset[7:0] <= IF_IR[7:0];.... case // always blok sonu FPGA ile CPU tasarimi Page 14

15 2.3.3 Calistirma Evresi(Execution Stage) FPGA ile CPU tasarimi Page 15

16 2.3.4 Geri Yazma Evresi (Write Back Stage) FPGA ile CPU tasarimi Page 16

17 Apiks A : Komut Aciklamalari CAF Processor Versiyon1.00 1) ADD(Toplama) X Ra Rb Rc 2 ) Addi(Toplama-Immediate) Ra Immediate 3)Sub(Cikarma) X Ra Rb Rc FPGA ile CPU tasarimi Page 17

18 4)Subi(Cikarma-Immediate) Ra Immediate 5) Mul(Carpma) X Ra Rb Rc 6 ) Muli(Carpma-Immediate) Ra Immediate FPGA ile CPU tasarimi Page 18

19 7) Mulu(Carpma-Isaretsiz) X Ra Rb Rc 8)Cmp(Kiyaslama) X Ra Rb Rc 9)And(Ve) X Ra Rb Rc 10)Andi(Ve-Immediate) Ra Immediate FPGA ile CPU tasarimi Page 19

20 11 )Or(Veya) X Ra Rb Rc 12)Ori (Veya-Immediate) Ra Immediate 13)Xori(Exor-Immediate) Ra Immediate FPGA ile CPU tasarimi Page 20

21 14)Xor(Exor) X Ra Rb Rc 15)Sll(Mantiksal Sola Kaydirma) Immediate Rb Rc 16)Srl(Mantiksal Saga Kaydirma) Immediate Rb Rc FPGA ile CPU tasarimi Page 21

22 17)Sra(Aritmatik-Saga Kaydirma) Immediate Rb Rc 18)Sla(Aritmatik-Sola Kaydirma) Immediate Rb Rc 19)Not X Ra Rb Rc FPGA ile CPU tasarimi Page 22

23 20)Lw(Kelime Yukleme) X Ra Rb Rc 21)Sw(Kelime Depolama) X Ra Rb Rc 22) Movi(Veri tasima Immediate) Ra Immediate FPGA ile CPU tasarimi Page 23

24 23) Mov(Veri Tasima) X XXX Rb Rc 24)Beq(Brans Esit) Kosul Immediate 25)Bnq(Brans Esit Degil) Kosul Immediate FPGA ile CPU tasarimi Page 24

25 26)Ba(Branch always) Immediate 27)Nop(No Operation) Kosul Immediate 28)Hlt(Halt) Kosul Immediate FPGA ile CPU tasarimi Page 25

26 29)Syscall(System calll) Kosul Immediate FPGA ile CPU tasarimi Page 26

27 Apiks B : Verilog Kodu CAF Processor Versiyon1.00 Not: Verilog kodunda kullanilan degiskenler verilogdaki anahtar kelimelerle uyum gostermesi icin Ingilizce isimlirme yapilmistir. Yorum satirlarinda degiskenlerle ilgili gerekli Turkce aciklamalar yapilmistir. //CAF_Islemci.v // global_parametreler ` //Komutlar ve lar `define ADD 6'b00_0001 `define ADDi 6'b00_0010 `define SUB 6'b00_0011 `define SUBi 6'b00_0100 `define MUL 6'b00_0101 `define MULi 6'b00_0110 `define MULu 6'b00_0111 `define CMP 6'b00_1000 `define AND 6'b00_1001 `define ANDi 6'b00_1010 `define OR 6'b00_1011 `define ORi 6'b00_1100 `define XORi 6'b00_1101 `define XOR 6'b00_1110 `define SLL 6'b00_1111 `define SRL 6'b01_0000 `define SRA 6'b01_0001 `define SLA 6'b01_0010 `define NOT 6'b01_0011 `define LW 6'b01_0100 `define SW 6'b01_0101 `define MOV 6'b01_0110 `define MOVi 6'b01_0111 `define BEQ 6'b01_1000 `define BNQ 6'b01_1001 `define BA 6'b01_1010 `define NOP 6'b01_1011 `define HLT 6'b01_1100 `define SYSCALL 6'b01_1101 FPGA ile CPU tasarimi Page 27

28 module CAF ( clk, reset_n, read_instruction_n, instruction_address, instruction, read_data_n, write_data_n, data_address, data_in, data_out ); //Islemcinin giris ve cikis sinyalleri input clk; input reset_n; output read_instruction_n; output [15:0] instruction_address; input [15:0] instruction; output read_data_n; output write_data_n; output [15:0] data_address; input [15:0] data_in; output [15:0] data_out; //Islemcinin yazicilari reg [15:0] data; reg read_instruction_n; reg read_data_n; reg write_data_n; reg [15:0] PC; //Program Sayaci reg [15:0] LR; //Link Yazicisi reg [15:0] SP; //Stack Gostericisi reg [15:0] R[15:0];// general regs reg N_Flag; //condition flags (N = negative) reg Z_Flag; //Zero reg C_Flag; //Carry reg V_Flag; //Overflow reg branch_taken; FPGA ile CPU tasarimi Page 28

29 reg [15:0] branch_target; reg [32:0] ALU_out_reg; reg [15:0] DR; integer i, ex_i; integer found_i, found_ex_i; //pipeline yazicilari reg [15:0] IF_IR; reg [15:0] IF_PC; reg [15:0] ID_PC; reg [15:0] ID_Ra; reg [15:0] ID_Rb; reg [15:0] ID_Rc; reg [32:0] EX_ALU_out; reg [5:0] ID_opcode; reg [5:0] EX_opcode; reg [10:0] ID_imm_offset; reg [7:0] EX_imm_offset; reg [3:0] ID_cond; reg [2:0] ID_Rd_code; reg [2:0] EX_Rd_code; //// assign instruction_address = PC; assign dataout = (~write_data_n)? DR : 16'bZZZZZZZZZZZZZZZZ; //tri-state //Fonksiyon Tanimlari function condition_satisfy; input [3:0] cond_code; begin case(cond_code) 4'b0000 : condition_satisfy = Z_Flag; 4'b0001 : condition_satisfy = ~Z_Flag; 4'b0010 : condition_satisfy = C_Flag; 4'b0011 : condition_satisfy = ~C_Flag; 4'b0100 : condition_satisfy = N_Flag; 4'b0101 : condition_satisfy = ~N_Flag; 4'b0110 : condition_satisfy = V_Flag; 4'b0111 : condition_satisfy = ~V_Flag; 4'b1000 : condition_satisfy = (C_Flag & (~Z_Flag)); 4'b1001 : condition_satisfy = ((~C_Flag) & Z_Flag); 4'b1010 : condition_satisfy = (N_Flag == V_Flag); 4'b1011 : condition_satisfy = (N_Flag!= V_Flag); 4'b1100 : condition_satisfy = Z_Flag & (N_Flag == V_Flag); 4'b1101 : condition_satisfy = Z_Flag & (N_Flag!= V_Flag); 4'b1110 : condition_satisfy = 1'b1; default: condition_satisfy = 1'b1; FPGA ile CPU tasarimi Page 29

30 case function //////////////////////////////////////////////////// //Komut_Yakalama: Komut Yakalama Evresi (posedge clk ) begin if(reset_n == 0) begin PC = 0; //program sayaci ilk kosulu read_instruction_n = 0; else begin read_instruction_n = 0; PC = PC + 2; IF_IR = instruction; // Komut Yakalama Komut Yazicisi IF_IR = PC + 2; //Komut_Cozucu Evresi always@(posedge clk) begin case(if_ir[15:10]) 6'b00_0001:begin ID_opcode <= `ADD; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b00_0010:begin ID_opcode <= `ADDi; ID_Ra <= R[IF_IR[10:8]]; ID_imm_offset[7:0] <= IF_IR[7:0]; 6'b00_0011:begin ID_opcode <=`SUB; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b00_0100:begin ID_opcode <= `SUBi; ID_Ra <= R[IF_IR[10:8]]; ID_imm_offset[7:0] <= IF_IR[7:0]; FPGA ile CPU tasarimi Page 30

31 6'b00_0101:begin ID_opcode <= `MUL; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b00_0110:begin ID_opcode <= `MULi; ID_Ra <= R[IF_IR[10:8]]; ID_imm_offset <= R[IF_IR[7:0]]; 6'b00_0111:begin ID_opcode <= `MULu; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b00_1000:begin ID_opcode <= `CMP; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b00_1001:begin ID_opcode <= `AND; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b00_1010:begin ID_opcode <= `ANDi; ID_Ra <= R[IF_IR[10:8]]; ID_imm_offset <= R[IF_IR[7:0]]; 6'b00_1011:begin ID_opcode <= `OR; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b00_1100:begin ID_opcode <= `ORi; ID_Ra <= R[IF_IR[10:8]]; ID_imm_offset[7:0] <= IF_IR[7:0]; 6'b00_1101:begin FPGA ile CPU tasarimi Page 31

32 ID_opcode <= `XOR; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b00_1110:begin ID_opcode <= `XORi; ID_Ra <= R[IF_IR[10:8]]; ID_imm_offset[7:0] <= IF_IR[7:0]; 6'b00_1111:begin ID_opcode <= `SLL; ID_imm_offset[4:0] <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b01_0000:begin ID_opcode <= `SRL; ID_imm_offset[4:0] <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b01_0001:begin ID_opcode <= `SLA; ID_imm_offset[4:0] <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b01_0010:begin ID_opcode <= `SRA; ID_imm_offset[4:0] <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b01_0011:begin ID_opcode <= `NOT; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b01_0100:begin ID_opcode <= `LW; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; FPGA ile CPU tasarimi Page 32

33 6'b01_0101:begin ID_opcode <= `SW; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b01_0110:begin ID_opcode <= `MOVi; ID_Ra <= R[IF_IR[8:6]]; ID_imm_offset[7:0] <= IF_IR[7:0]; 6'b01_0111:begin ID_opcode <= `MOV; ID_Ra <= R[IF_IR[5:3]]; ID_Rb <= R[IF_IR[2:0]]; 6'b01_1000:begin ID_opcode <= `BEQ; ID_cond <= IF_IR[11:8]; ID_imm_offset[7:0] <= IF_IR[7:0]; 6'b01_1001:begin ID_opcode <= `BNQ; ID_cond <= IF_IR[11:8]; ID_imm_offset[7:0] <= IF_IR[7:0]; 6'b01_1010:begin ID_opcode <= `BA; ID_imm_offset[9:0] <= IF_IR[9:0]; 6'b01_1011:begin ID_opcode <= `NOP; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b01_1100:begin ID_opcode <= `HLT; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; ID_Rc <= R[IF_IR[2:0]]; 6'b01_1101:begin ID_opcode <= `SYSCALL; ID_Ra <= R[IF_IR[8:6]]; ID_Rb <= R[IF_IR[5:3]]; FPGA ile CPU tasarimi Page 33

34 ID_Rc <= R[IF_IR[2:0]]; case //Calisma Evresi clk)begin if(~reset_n)begin read_data_n <= 1'b1; write_data_n <= 1'b1; else begin read_data_n <= 1'b1; write_data_n <= 1'b1; if(branch_taken)begin // EX_opcode <=6'b000000; branch_taken <= 1'b0; else begin case(id_opcode) // `ADD : ALU_out_reg <= ID_Rb + ID_Rc; `ADDi : ALU_out_reg <= ID_Ra + ID_imm_offset; `SUB : ALU_out_reg <= ID_Rb - ID_Rc; `SUBi : ALU_out_reg <= ID_Ra - ID_imm_offset; `MUL : ALU_out_reg <= ID_Rb * ID_Rc; `MULi : ALU_out_reg <= ID_Ra * ID_imm_offset; `MULu : ALU_out_reg <= ID_Ra * ID_imm_offset; `CMP : ALU_out_reg <= ID_Rb - ID_Rc; `ANDi : ALU_out_reg <= ID_Ra & ID_imm_offset; `AND : ALU_out_reg <= ID_Rb & ID_Rc; `ORi : ALU_out_reg <= ID_Ra ID_imm_offset; `OR : ALU_out_reg <= ID_Rb ID_Rc; `XORi : ALU_out_reg <= ID_Ra ^ ID_imm_offset; `XOR : ALU_out_reg <= ID_Rb ^ ID_Rc; `SLL : ALU_out_reg <= ID_Rb << ID_imm_offset[9:6]; `SRL : ALU_out_reg <= ID_Rb >> ID_imm_offset[9:6]; `SRA : ALU_out_reg <= ID_Rb >> ID_imm_offset[9:6]; `SLA : ALU_out_reg <= ID_Rb >> ID_imm_offset[9:6]; `NOT : ALU_out_reg <= 0 - ID_Ra; `LW : ALU_out_reg <= ID_Ra + ID_Rb; `SW : ALU_out_reg <= ID_Ra + ID_Rb; `MOVi : ALU_out_reg <= {24'b0, ID_imm_offset}; `MOV : ALU_out_reg <= {R[IF_IR], R[IF_IR]}; `BEQ : begin FPGA ile CPU tasarimi Page 34

35 if(condition_satisfy(id_cond))begin for(i = 15; i > 8; i = i-1) ALU_out_reg[i] <= ID_imm_offset[7]; ALU_out_reg[8:1] <= ID_imm_offset[7:0]; ALU_out_reg[0] <=1'b0; branch_taken <= 1'b1; branch_target <= (ID_PC +2) + ALU_out_reg[15:0]; `BNQ : begin if(~condition_satisfy(id_cond))begin for(i = 15; i > 8; i = i-1) ALU_out_reg[i] <= ID_imm_offset[7]; ALU_out_reg[8:1] <= ID_imm_offset[7:0]; ALU_out_reg[0] <=1'b0; branch_taken <= 1'b1; branch_target <= (ID_PC +2) + ALU_out_reg[15:0]; `BA : begin for(i = 15; i > 8; i = i-1) ALU_out_reg[i] <= ID_imm_offset[7]; ALU_out_reg[8:1] <= ID_imm_offset[7:0]; ALU_out_reg[0] <=1'b0; branch_taken <= 1'b1; branch_target <= (ID_PC +2) + ALU_out_reg[15:0]; `NOP : begin branch_taken <= 1'b1; branch_target <= ID_PC - 2; `HLT : begin branch_taken <= 1'b1; branch_target <= ID_PC - 2; `SYSCALL :begin branch_taken <= 1'b1; branch_target <= ID_PC - 2; case // Bu bolum Flag operasyonlarini kontrol etmek icin yazilmistir. // FPGA ile CPU tasarimi Page 35

36 case(id_opcode)//2nd part of operation `ADD, `SUB, `CMP, `MUL : begin EX_ALU_out[15:0] <= ALU_out_reg[15:0]; N_Flag <= ALU_out_reg[15]; Z_Flag <= (ALU_out_reg[15:0] == 0); //if(id_imm_offset[2:0]!= 3'b000) begin C_Flag <= ALU_out_reg[16]; V_Flag <= (ALU_out_reg[16]!= ALU_out_reg[15]); // if; `ADDi, `SUBi : begin EX_ALU_out[15:0] <= ALU_out_reg[15:0]; N_Flag <= ALU_out_reg[15]; Z_Flag <= (ALU_out_reg[15:0] == 0); if(id_imm_offset[2:0]!= 3'b000) begin C_Flag <= ALU_out_reg[16]; V_Flag <= (ALU_out_reg[16]!= ALU_out_reg[15]); `MULi : begin EX_ALU_out[31:0] <= ALU_out_reg[31:0]; N_Flag <= ALU_out_reg[31]; Z_Flag <= (ALU_out_reg[31:0] == 0); if(id_imm_offset[2:0]!= 3'b000) begin C_Flag <= ALU_out_reg[16]; V_Flag <= (ALU_out_reg[32]!= ALU_out_reg[31]); `AND, `XOR, `XORi, `OR, `NOT: begin EX_ALU_out[15:0] <= ALU_out_reg[15:0]; N_Flag <= ALU_out_reg[15]; Z_Flag <= (ALU_out_reg[15:0] == 0); case EX_opcode = ID_opcode; EX_Rd_code = ID_Rd_code; // process sonu // calisma evresi sonu /////////////////////////////////////////////////////////////////////////// //Geri Yazma /////////////////////////////////////////////////////////////////////////// always@(posedge clk)begin FPGA ile CPU tasarimi Page 36

37 if(~reset_n) for( i = 0; i <16 ; i = i + 1) R[i]<= 0; else begin case (EX_opcode) `ADD, `ADDi, `SUB, `SUBi, `AND, `ANDi, `OR, `ORi, `XOR, `XORi, `MUL, `MULi, `MULu, `CMP, `SLL, `SRL, `SRA, `SRL, `NOT : begin R[EX_Rd_code] <= EX_ALU_out; `LW : R[EX_Rd_code] <= data; `MOVi : R[EX_Rd_code] <= data; case module FPGA ile CPU tasarimi Page 37

38 FPGA ile CPU tasarimi Page 38

CITIUS-ALTIUS-FORTIUS

CITIUS-ALTIUS-FORTIUS CITIUS-ALTIUS-FORTIUS PROCESSOR Versiyon 1.00 15/04/2008 PROJE SORUMLUSU : BERKAY AYBAR MURAT GOKSEL E-MAIL : [email protected], [email protected] ICINDEKILER Tablo Listesi... Figur Listesi... 1 GIRIS...

Detaylı

K uark projesi. Temel Özellikler :

K uark projesi. Temel Özellikler : K uark projesi Temel Özellikler : Kuark işlemcisi 16 bit kelime uzunluğuna sahip bir işlemcidir. Veri ve komut belleği aynıdır ve en fazla 4 Gigabyte bellek adresleyebilir. İşlemcimiz paralel çalışabilecek

Detaylı

KASIRGA -4 Buyruk Tasarımı Belgesi. 30.04.2008 Ankara

KASIRGA -4 Buyruk Tasarımı Belgesi. 30.04.2008 Ankara KASIRGA -4 Buyruk Tasarımı Belgesi 30.04.2008 Ankara 1 İŞLEMLER 00000000 SYSCALL 00000001 HLT 00000010 DEBUG 00000011 CONTINUE S-TİPİ 00000100 NOP 00000101 IN 00000110 OUT 00000111 BRET 00001000 ADD 00001001

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ı

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ı

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ı

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ı

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ı

CPU TURKEY CPU-KULIS MİKROİŞLEMCİSİ ÇALIŞMA RAPORU

CPU TURKEY CPU-KULIS MİKROİŞLEMCİSİ ÇALIŞMA RAPORU CPU TURKEY CPU-KULIS MİKROİŞLEMCİSİ ÇALIŞMA RAPORU Proje Danışmanı: Proje Yetkilisi: Proje Ekibi: Prof. Dr. Sarp ERTÜRK, Kocaeli Üniversitesi, Elektronik ve Haberleşme Mühendisliği Bölümü Arş. Gör. Anıl

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 Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar)

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ı

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ı

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar x86 Ailesi 1 8085A,8088 ve 8086 2 Temel Mikroişlemci Özellikleri Mikroişlemcinin bir defade işleyebileceği kelime uzunluğu Mikroişlemcinin tek bir komutu işleme hızı Mikroişlemcinin doğrudan adresleyebileceği

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ı

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ı

Lecture 7. Assembler language nedir? Language in 3 seviyesi. Language 3 seviyesi. Nicin onu ogreniriz?

Lecture 7. Assembler language nedir? Language in 3 seviyesi. Language 3 seviyesi. Nicin onu ogreniriz? Lecture 7 Assembler language nedir? Nicin onu ogreniriz? oku sections 3.1-3.4 oku H&P sections A.1 ve A.9 11/25/2004 Bilgisayar Mimarisi 7.1 11/25/2004 Bilgisayar Mimarisi 7.2 Language 3 seviyesi High

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-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ı

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ı

Hem lw hem de sw komutlarının ofseti 16-bitlik işaretli tamsayıdır.

Hem lw hem de sw komutlarının ofseti 16-bitlik işaretli tamsayıdır. DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR 2012-2013 BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #2 DİZİLERE ERİŞİMDE MIPS BELLEK TALİMATLARI Amaç: Veri bölütü kullanımını ve tek-modüllü dizi

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ı

SelCPU. Version 1.02. Temmuz 2008. Proje Ekibi. Selçuk BAŞAK Bilgisayar Bilimleri Mühendisi (YTÜ 1998) [email protected]

SelCPU. Version 1.02. Temmuz 2008. Proje Ekibi. Selçuk BAŞAK Bilgisayar Bilimleri Mühendisi (YTÜ 1998) selcuk@selsistem.com SelCPU Version 1.02 Temmuz 2008 Proje Ekibi Selçuk BAŞAK Bilgisayar Bilimleri Mühendisi (YTÜ 1998) [email protected] SelSistem Bilgi ve İletişim Teknolojileri www.selsistem.com Önsöz SelCPU, Cpu-Turkey

Detaylı

Şekil. 64 Kelimelik Yığıtın Blok Şeması

Şekil. 64 Kelimelik Yığıtın Blok Şeması 1 YIĞIT (STACK) KURULUMU Çoğu bilgisayarın MİB de yığıt veya LIFO (Last In First Out) bulunur. Yığıt bir bellek parçasıdır ve son depolanan bilgi ilk geri dönen bilgi olur. Yığıta aktarılan son bilgi yığıtın

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ı

Mikroişlemci ve Yapısı. Mikroişlemciler ve Mikrobilgisayarlar

Mikroişlemci ve Yapısı. Mikroişlemciler ve Mikrobilgisayarlar Mikroişlemci ve Yapısı 1 Katmanlı Sistem Yapısı (Machine Levels) Bu kısmın altındaki katmanlara programcı ve kullanıcının erişmesi söz konusu değildir. 2 Assembler Kaynak Kod Assembler Linker ADD D0,D1

Detaylı

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır. Mimari Esaslar Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır. Bu unsurların büyüklüğü, sayısı ve yapısı o işlemcinin yeteneklerini belirler. Mimari farlılıklarda; bu konularda

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ı

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

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN Bahar Dönemi Öğr.Gör. Vedat MARTTİN 8086/8088 MİKROİŞLEMCİSİ İÇ MİMARİSİ Şekilde x86 ailesinin 16-bit çekirdek mimarisinin basitleştirilmiş bir gösterimi verilmiştir. Mikroişlemci temel iki ayrı çalışma

Detaylı

İşletim Sistemleri (Operating Systems)

İşletim Sistemleri (Operating Systems) İşletim Sistemleri (Operating Systems) 1 İşletim Sistemleri (Operating Systems) Genel bilgiler Ders kitabı: Tanenbaum & Bo, Modern Operating Systems:4th ed., Prentice-Hall, Inc. 2013 Operating System Concepts,

Detaylı

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ Doç. Dr. Şule Gündüz Öğüdücü http://ninova.itu.edu.tr/tr/dersler/bilgisayar-bilisim-fakultesi/0/blg-1/ Merkezi İşlem Birimi (MİB): Bilgisayarın temel birimi

Detaylı

FPGA Kullanarak 16 Bitlik Mikroişlemci Tasarımı Designing of a 16 bit Microprocessor by Using FPGA

FPGA Kullanarak 16 Bitlik Mikroişlemci Tasarımı Designing of a 16 bit Microprocessor by Using FPGA FPGA Kullanarak 16 Bitlik Mikroişlemci Tasarımı Designing of a 16 bit Microprocessor by Using FPGA Emre ÖZTÜRK, Herman SEDEF Elektronik ve Haberleşme Mühendisliği Yıldız Teknik Üniversitesi [email protected]

Detaylı

Komut Seti Mimarisi (ISA)

Komut Seti Mimarisi (ISA) Komut Seti Mimarisi (ISA) BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğretim Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted

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ü 2 Giriş Superscalar mimaride integer ve floating-point aritmetik komutlar, şartlı atlama komutları

Detaylı

Mikroişlemciler ve Assembler Programlama. Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR

Mikroişlemciler ve Assembler Programlama. Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR Mikroişlemciler ve Assembler Programlama Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR Mikroişlemciler Mikroişlemciler bilgisayar teknolojilerinin gerçek sürükleyicisi olan donanımsal

Detaylı

İşlemci Tasarımı ve Aşamaları

İşlemci Tasarımı ve Aşamaları İşlemci Tasarımı ve Aşamaları Yazar: Erman Üret ([email protected]) Çalışmamıza işlemcilerin sınıflandırılması ile başlayacağız. Daha sonraki aşamalarda, bu kısımda anlatılan yapılar kullanılarak işlemci

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ı

Mikrobilgisayar Mimarisi ve Programlama

Mikrobilgisayar Mimarisi ve Programlama Mikrobilgisayar Mimarisi ve Programlama 2. Hafta Bellek Birimleri ve Programlamaya Giriş Doç. Dr. Akif KUTLU Ders web sitesi: http://www.8051turk.com/ http://microlab.sdu.edu.tr Bellekler Bellekler 0 veya

Detaylı

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR GÖMÜLÜ PROGRAMLAMA Selçuk Üniversitesi Bilgisayar Mühendisliği Bölümü 2012-2013 Bahar Dönemi Doç.Dr.Erkan ÜLKER 1 İçerik 1. Adresleme Modları 2. İskelet Program

Detaylı

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

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN Bahar Dönemi Öğr.Gör. Vedat MARTTİN Merkezi İşlemci Biriminde İletişim Yolları Mikroişlemcide işlenmesi gereken komutları taşıyan hatlar yanında, işlenecek verileri taşıyan hatlar ve kesme işlemlerini

Detaylı

DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #6

DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #6 DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR 2012-2013 BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #6 16 Bitlik R Tipi İçin ALTERA MAX-PLUS-II VHDL de Tam Tek Saat Veri Yolu Birimi Amaç: Tek-Saat

Detaylı

BİLGİSAYAR MİMARİSİNDE YENİ YAKLAŞIMLAR DÖNEM PROJESİ

BİLGİSAYAR MİMARİSİNDE YENİ YAKLAŞIMLAR DÖNEM PROJESİ BİLGİSAYAR MİMARİSİNDE YENİ YAKLAŞIMLAR DÖNEM PROJESİ P6 MİMARİSİ MUSTAFA ÇAYIR 704062001 İÇİNDEKİLER 1. Intel İşlemcilerinin Tarihi Gelişimi... 3 2. X86 Komut Kümesi... 5 2.1. X86 Yazmaçları... 5 2.2.

Detaylı

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR Toplama (Addition) Toplama (ADD) belirtilen iki yazaç veya yazaç ile belleğin içeriğini toplar ve kullanılan adresleme moduna göre sonucu belirtilen yazaca

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ı

8086 Mikroişlemcisi Komut Seti

8086 Mikroişlemcisi Komut Seti 8086 Mikroişlemcisi Komut Seti X86 tabanlı mikroişlemcilerin icra ettiği makine kodları sabit olmasına rağmen, programlama dillerinin komut ve ifadeleri farklı olabilir. Assembly programlama dilininde

Detaylı

Giris {\} /\ Suhap SAHIN

Giris {\} /\ Suhap SAHIN Giris 0 {\} /\ Suhap SAHIN Kaynaklar http://users.ece.utexas.edu/~valvano/volume1/e-book/ Kaynaklar https://www.edx.org/course/embedded-systems-shape-world-utaustinx-ut-6-02x Konular 1. 2. 3. 4. 5. 6.

Detaylı

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları 4. Operatörler İfade içerisindeki değişken ve diğer ifadelere uygulandığında yeni değerlerin elde edilmesini sağlayan ve kendilerine özel sembolik gösterimleri olan sözdizimleridir. mikroc derleyicisi

Detaylı

Verilog HDL e Giriş Bilg. Yük. Müh. Selçuk BAŞAK

Verilog HDL e Giriş Bilg. Yük. Müh. Selçuk BAŞAK Verilog HDL e Giriş Bilg. Yük. Müh. Selçuk BAŞAK SelSistem Bilgi ve İletişim Teknolojileri www.selsistem.com.tr Donanım Tanımlama Dilleri - HDL İlk olarak 1977 yılında, ISP(Instruction Set Processor) -

Detaylı

Embedded(Gömülü)Sistem Nedir?

Embedded(Gömülü)Sistem Nedir? Embedded(Gömülü)Sistem Nedir? Embedded Computing System de amaç; elektronik cihaza bir işlevi sürekli tekrar ettirmektir. Sistem içindeki program buna göre hazırlanmıştır. PC lerde (Desktop veya Laptop)

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ı

Tek Vuruşluk Đşlemci. -- Company : Ege Universitesi, Elektrik-Elektronik Mühendisliği

Tek Vuruşluk Đşlemci. -- Company : Ege Universitesi, Elektrik-Elektronik Mühendisliği Tek Vuruşluk Đşlemci -- Company : Ege Universitesi, Elektrik-Elektronik Mühendisliği Bolumu -- Engineer : MOME TUM Proje Grubu -- Project ame : Tek Vurusluk Islemci -- Module ame : Ana Modul -- Additional

Detaylı

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1 Program Kontrol Komutları Mikroişlemciler ve Mikrobilgisayarlar 1 Bu başlık, altında incelenecek olan komutlar program akışını oluşan bazı koşullara göre değiştirmektedirler Program akışında meydana gelen

Detaylı

D Duplex : Alıcı + Verici Çalışma Debouching : DMA : Direct Memory Access Data-Bus : Data Veri Yolu Data Flow : Veri Akışı Data Processing : Veri

D Duplex : Alıcı + Verici Çalışma Debouching : DMA : Direct Memory Access Data-Bus : Data Veri Yolu Data Flow : Veri Akışı Data Processing : Veri A: Access time : Erişim Zamanı Active High : Aktif Yüksek Active Low : Aktif Düşük Adress : Adres Address Bus : Adres Yolu Adress Decoding : Adres Kod Çözümü ALE : Adress Latch Enable Architecture : Mimari

Detaylı

Komut Seti Mimarisi (ISA)

Komut Seti Mimarisi (ISA) Komut Seti Mimarisi (ISA) BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğretim Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted

Detaylı

Ozet. Review pointers (in C) Memory Addressing

Ozet. Review pointers (in C) Memory Addressing Ozet Oku H&P Sections 31 thru 34 (read again) Section A10 Hardware-Software interface Processor nasil calisir Hardware ve software arasinda tradeoffs Show how processor works 11/26/2004 Bilgisayar Mimarisi

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) Aritmetik İşlem Komutları

b) Aritmetik İşlem Komutları b) Aritmetik İşlem Komutları Toplama ve Toplama İle İlgili Komutlar Komut. Format İşlem ADD (ADDition) elde CF ADD D, S (D)+(S) (D); ADC (Add with Carry) elde CF ADC D, S (D)+(S)+CF (D); yeni INC (INCrement

Detaylı

Bilgisayar Mühendisliğine Giriş

Bilgisayar Mühendisliğine Giriş Bilgisayar Mühendisliğine Giriş Bilim İnsanı Bilgi Yaratır Dünyayı Olduğu Gibi Kabul Eder Bilimsel Yöntemle eğitilir Açık bilgiyi kullanır Düşünürler Mühendis Bu Bilgiyi Uygular Dünyayı Değiştirmek için

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ı

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür. İŞLEMCİLER (CPU) Mikroişlemci Nedir? Mikroişlemci, hafıza ve giriş/çıkış birimlerini bulunduran yapının geneline mikrobilgisayar; CPU' yu bulunduran entegre devre çipine ise mikroişlemci denir. İşlemciler

Detaylı

PASCAL PROGRAMLAMA DİLİ YAPISI

PASCAL PROGRAMLAMA DİLİ YAPISI BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama

Detaylı

Özet DERS 5. Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma. Bayraklardaki Durumlar. İşaretli Çarpma

Özet DERS 5. Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma. Bayraklardaki Durumlar. İşaretli Çarpma Özet DERS 5 Çarpma, Bölme ve Dallanmalar Öğr. Gör. Eren ERENER AİBÜ/DMYO Neredeyiz Çarpma Bölme Karşılaştırma Jump komutları Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma Kaydediciler ve bellek

Detaylı

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA 1 İçindekiler Bilgisayarların Çalışma Prensibi Sayı Sistemleri Programlama Dilleri 2 BİLGİSAYARLARIN ÇALIŞMA PRENSİBİ Bilgisayar

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ı

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ı

İŞ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ı

AND Komutu. and hedef, kaynak

AND Komutu. and hedef, kaynak Mantıksal Komutlar Bu komutlar herhangi bir işlem sırasında mantıksal karşılaştırmalar yapmak için kullanılır. Bu komutlar icra görürken kullanılan register yada bellek bölgesinin içerisindeki değerler

Detaylı

Bölüm Bazı Temel Konseptler

Bölüm Bazı Temel Konseptler Bölüm 7 Bu ve bundan sonraki bölümde, makine komutlarını işleten ve diğer birimlerin faaliyetlerini düzenleyen işlem birimi üzerine yoğunlaşacağız. Bu birim genellikle Komut Seti Mimarisi (Instruction

Detaylı

Mikrobilgisayar Mimarisi ve Programlama

Mikrobilgisayar Mimarisi ve Programlama Mikrobilgisayar Mimarisi ve Programlama 8085 Adresleme ve Komutlar Doç.Dr. Cüneyt BAYILMIŞ Doç.Dr. Murat ÇAKIROĞLU Prof.Dr. Hüseyin EKİZ Assembly Formatı Assembly komut satırı biçimi Etiket İşlem Kodu

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ı

BİL 361 BİLGİSAYAR MİMARİSİ VE ORGANİZASYONU Güz Dönemi ÖDEV 1

BİL 361 BİLGİSAYAR MİMARİSİ VE ORGANİZASYONU Güz Dönemi ÖDEV 1 BİL 361 BİLGİSAYAR MİMARİSİ VE ORGANİZASYONU 2015-2016 Güz Dönemi ÖDEV 1 Son Teslim Tarihi/Saati : 07.10.2015/18:00 Teslim Yeri : Teknoloji Merkezi, 217 Uyarı: Bu ödevdeki soruları öğrenciler kişisel çabalarıyla

Detaylı

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ Alt Program Yapısı Alt programın çağrılması Alt program korunur alınır ;Argumanlar R12 R15 registerlarına atanir. call #SubroutineLabel SubroutineLabel:

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 Hafıza sistemleri karakteristikleri Hafıza hiyerarşisi Önbellek prensipleri Cache size Mapping

Detaylı

80x86 MICROPROCESSOR Instructions

80x86 MICROPROCESSOR Instructions 80x86 MICROPROCESSOR Instructions Inside The 8088/8086 registers Registers Verileri geçici olarak tutar AX 16-bit register AH 8-bit reg. AL 8-bit reg. Category Bits Register Names General 16 AX, BX, CX,

Detaylı

Bilgisayarların Gelişimi

Bilgisayarların Gelişimi Bilgisayarların Gelişimi Joseph Jacquard (1810) Bilgisayar tabanlı halı dokuma makinesi Delikli Kart (Punch Card) Algoritma ve Programlama 6 Bilgisayar Sistemi 1. Donanım fiziksel aygıtlardır. 2. Yazılım

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ı

Arithmetic ve Logical Operations

Arithmetic ve Logical Operations Arithmetic ve Logical Operations ALU (Arithmetic Logical Unit): CPU nun Aritmetik ve logic islemlerinin yapildigi kismina denir. Temel iki operation Addition ( Toplama ) Negation ( NOT islemi) Islemler

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ü Genel Bilgiler Öğretim üyesi : Prof. Dr. M. Ali Akcayol Ofis : Gazi Ünv., Bilgisayar Mühendisliği

Detaylı

8. MİKROİŞLEMCİ MİMARİSİ

8. MİKROİŞLEMCİ MİMARİSİ 1 8. MİKROİŞLEMCİ MİMARİSİ Gelişen donanım ve yazılım teknolojilerine ve yonga üreticisine bağlı olarak mikroişlemcilerin farklı komut tipleri, çalışma hızı ve şekilleri vb. gibi donanım ve yazılım özellikleri

Detaylı

Aritmetiksel Komutlar

Aritmetiksel Komutlar Aritmetiksel Komutlar 80x86 programcıya toplama, çıkarma, çarpma, bölme gibi temel aritmetiksel işlemlerin yanı sıra elde edilen sonuçları değişik biçimlerde saklama olanağı sağlar. Aritmetiksel komutların

Detaylı

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler Ders Özeti Ders Bilgisayarlar Hakkında Mikroişlemci ve Bilgisayar sisteminin yapısı Temel komut işleme süreci x86 kaydedicileri (registers) x86 hafıza temelleri Çevre cihazları x86 assembly diline giriş

Detaylı

CISC Complex Instruction Set Computers

CISC Complex Instruction Set Computers 1 CISC, RISC Mimarisi CISC Complex Instruction Set Computers Emirlerin sayısı ve karmaşıklığını kasteder Emirlerin icrası birkaç clock alır. İyileştirmeler: Multiply ve Divide The number of instruction

Detaylı

W SAYAC SAYAC SAYAC. SAYAC=10110110 ise, d=0 W 01001001

W SAYAC SAYAC SAYAC. SAYAC=10110110 ise, d=0 W 01001001 MOVLW k Move Literal to W k sabit değerini W saklayıcısına yükler. MOVLW h'1a' W 1A. Hexadecimal 1A sayısı W registerine yüklenir. MOVF f,d Move f f saklayıcısının içeriğini W veya f'e yükler. MOVF SAYAC,0

Detaylı

Yrd.Doç.Dr. Celal Murat KANDEMİR

Yrd.Doç.Dr. Celal Murat KANDEMİR Bilgisayar Mimarisi Anahatlar ve Mimariye Giriş Yrd.Doç.Dr. Celal Murat KANDEMİR ESOGÜ Eğitim Fakültesi - BÖTE twitter.com/cmkandemir Yardımcı Kaynaklar Computer organization and architecture : principles

Detaylı

Programlanabilir Devreler

Programlanabilir Devreler Programlanabilir Devreler Testbench & Simülasyon İçerik Tasarlamış olduğumuz sayısal sistemlerin fonksiyonel olarak istenildiği gibi gerçekleştirdiğini doğrulamak gerekir. Verilog ve VHDL gibi donanım

Detaylı

KASIRGA PROJESİ 2. GELİŞME RAPORU

KASIRGA PROJESİ 2. GELİŞME RAPORU KASIRGA PROJESİ 2. GELİŞME RAPORU 29.04.2008 Ankara İçindekiler 1.GİRİŞ... 4 2. KASIRGA İŞLEMCİSİ... 5 2.1 Kasırga Buyruk Tasarımı... 5 2.2 Kasırga 1... 7 2.2.1 Kasırga 1 Sanal Tasarım... 10 2.2.2 Kasırga

Detaylı

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler.

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler. Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ Doç. Dr. Şule Gündüz Öğüdücü http://ninova.itu.edu.tr/tr/dersler/bilgisayar-bilisim-fakultesi/0/blg-/ Getirme Çevrimi Yürütme Çevrimi Çözme İşlenen Yürütme

Detaylı

Kasırga [Gizli] KASIRGA PROJESİ 3. GELİŞME RAPORU. 16.06.2008 Ankara

Kasırga [Gizli] KASIRGA PROJESİ 3. GELİŞME RAPORU. 16.06.2008 Ankara KASIRGA PROJESİ 3. GELİŞME RAPORU 16.06.2008 Ankara İÇINDEKILER 1. KASIRGA İşlemcisi... 3 2. Tasarım Aşamaları... 3 2.1. Sanal Tasarım... 3 2.1.1. Buyruk Tasarımı... 3 2.2. Mimari Tasarımı... 4 2.2.1.

Detaylı

Eğitim Amaçlı Temel Bir Mikrobilgisayarın Tasarlanması ve Gerçeklemesi Design and Implementation of a Basic Microcomputer for Educational Purpose

Eğitim Amaçlı Temel Bir Mikrobilgisayarın Tasarlanması ve Gerçeklemesi Design and Implementation of a Basic Microcomputer for Educational Purpose Eğitim Amaçlı Temel Bir Mikrobilgisayarın Tasarlanması ve Gerçeklemesi Design and Implementation of a Basic Microcomputer for Educational Purpose Mehmet BAKACAK, Taner TOPAL Bilgisayar Mühendisliği Kırıkkale

Detaylı

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta SAKARYA ÜNİVERSİTESİ Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Bölümü Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta Doç.Dr. Ahmet Turan ÖZCERİT Doç.Dr. Cüneyt BAYILMIŞ Yrd.Doç.Dr.

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ı

İÇİNDEKİLER ÖNSÖZ...3

İÇİNDEKİLER ÖNSÖZ...3 İÇİNDEKİLER ÖNSÖZ...3 1.AVR MİKRODENETLİYİCİLERE GİRİŞ 1.1 GÖMÜLÜ (EMBEDDED) SİSTEMLER... 11 1.1.1 GÖMÜLÜ SİSTEMERİN KULLANIM ALANLARI... 11 1.2 MİKROİŞLEMCİ NEDİR?... 12 1.3 MİKRODETNETLEYİCİ NEDİR?...

Detaylı

Spatial locality nin getirdigi avantaji kullanmak

Spatial locality nin getirdigi avantaji kullanmak Oku H&P section 7.3 Spatial locality nin getirdigi avantaji kullanmak Daha buyuk block (line) kullan Her bir fetch ile gelecekte yakin komsuluktaki erisimler icin data cache bulunacak Daha fazla hit e

Detaylı

Çalışma Açısından Bilgisayarlar

Çalışma Açısından Bilgisayarlar Çalışma Açısından Bilgisayarlar Ölçme sistemi ile hesaplama sistemi birbiriyle ilgili olmasına rağmen aynı değillerdir. Suyun sıcaklığı ve gürültünün şiddeti ile evdeki lambaların ölçülmesi aynı değillerdir.

Detaylı

8086 Mikroişlemcisi Komut Seti

8086 Mikroişlemcisi Komut Seti 8086 Mikroişlemcisi Komut Seti SUB ve SBB komutları: SUB (Subtract) yani çıkartma SBB ise borç ile çıkart (SuBtract with Borrow) anlamına gelir. Her iki çıkartma işlemi bir çıkartma sonucu üretmenin yanında

Detaylı

MTM 305 MİKROİŞLEMCİLER

MTM 305 MİKROİŞLEMCİLER KARABÜK ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MTM 305 MİKROİŞLEMCİLER Arş. Gör. Emel SOYLU Arş. Gör. Kadriye ÖZ Basit Giriş/Çıkış Teknikleri IN ve OUT komutları X86 komut kümesi

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ı

MİKROİŞLEMCİLER 1 Ders 1

MİKROİŞLEMCİLER 1 Ders 1 MİKROİŞLEMCİLER 1 Ders 1 Ders Kitabı: The 80x86 IBM PC and Compatible Computers Assembly Language, Design, and Interfacing Muhammad ali Mazidi, Janice Gillipsie Mazidi Öğr.Gör. Mahmut YALÇIN 09.03.2011

Detaylı

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. Örnek MİB ile Adresleme. Adresleme Yöntemleri. Doğal Adresleme. İvedi Adresleme

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. Örnek MİB ile Adresleme. Adresleme Yöntemleri. Doğal Adresleme. İvedi Adresleme Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ Yrd. Doç. Dr. Şule Gündüz Öğüdücü www.cs.itu.edu.tr/~gunduz/courses/mikroisl/ İşlenenin nerde olacağını belirtmek için kullanılır. Buyruk çözme aşamasında adresleme

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ı

Sunucu Bilgisayarlarda Kullanılan CISC ve RISC İşlemcilerin Performans Karşılaştırımı

Sunucu Bilgisayarlarda Kullanılan CISC ve RISC İşlemcilerin Performans Karşılaştırımı Sunucu Bilgisayarlarda Kullanılan CISC ve RISC İşlemcilerin Performans Karşılaştırımı Aylin Kantarcı Ege Üniversitesi Akademik Bilişim 2015 Eskişehir, 2015 GİRİŞ CISC işlemciler Geriye uyumluluk Karmaşık

Detaylı