von neumann mimarisi · mikroişlemciler ve mikrobilgisayarlar 27. Örn: t mikroişlemcisinin...

32
Von Neumann Mimarisi Mikroişlemciler ve Mikrobilgisayarlar 1

Upload: others

Post on 23-Jan-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Von Neumann Mimarisi

Mikroişlemciler ve Mikrobilgisayarlar 1

Page 2: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

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 (1946)• Transistörün bulunuşu (1947)• İlk transistörlü sayısal bilgisayar (1960)• Entegre devrenin bulunuşu (1963)• İlk mikroişlemci (1970)• 10.000 transistörlü entegre devreler (1981)

Mikroişlemciler ve Mikrobilgisayarlar 2

Page 3: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Saklı Program Kavramı• Bilgisayardan istenilen işlerin gerçekleştirilebilmesi için

gereken işlem dizisi bilgisayarın içinde saklanabilmektedir.

• İstenilen bir işi yerine getiren işlemlerin listesine program denir. Programlar bilgisayarın içinde saklanırlar.

• Program kavramının iki avantajı vardır; Birincisi işlemler için gereken zaman kullanıcıya bağlı değildir. İkincisi sadece veriler girilerek aynı işlemler tekrar tekrar yaptırılabilir.

Mikroişlemciler ve Mikrobilgisayarlar 3

Page 4: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Saklı Program

Giriş Verisi Çıkış Verisi

Sayısal Bilgisayarlar

Mikroişlemciler ve Mikrobilgisayarlar 4

Page 5: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Temel YapıSayısal bir bilgisayar 3 bileşenden oluşmaktadır.

i) Hem programı oluşturan komutların listesini, hem de işlemeyi bekleyen veri değerlerini tutan bir bellek birimi

ii) Her bir program komutunu yorumlayıp yürüten merkezi işlem birimi (MİB & CPU)

iii) Bir veya daha çok giriş ve çıkış portu sağlayan giriş-çıkış(I/O) arabirim ünitesi

Mikroişlemci, ROM, RAM ve I/O birimlerinden oluşan adreslenebilir saklayıcılar topluluğudur.

Mikroişlemciler ve Mikrobilgisayarlar 5

Page 6: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Von Neumann ModeliMEMORY

CONTROL UNIT

MAR MDR

IR

PROCESSING UNIT

ALU TEMP

PC

OUTPUTMonitorPrinterLEDDisk

INPUTKeyboardMouseScannerDisk

Mikroişlemciler ve Mikrobilgisayarlar 6

Page 7: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Bellek (Memory)

Bellek tümdevresinin kapasitesi arttıkça kullanılacak uç sayısı da logaritmik olarak artmaktadır.

Temel bellek birimi gözedir.

Gözelerin yanyana gelmesiyle gözler oluşur.

Gözelerin bir araya gelmesiyle de bellek oluşur.

Mikroişlemciler ve Mikrobilgisayarlar 7

Page 8: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

8 bitAdres (Des.) Adres (hex)

0000H

Mikroişlemciler ve Mikrobilgisayarlar 8

.

.

.

.

.

0123

6553565534655336553265531

Yürülükteki KomutBir Sonraki Komut

0001HBellek üzerinde işlem yapan temel komutlar LOAD ve STORE

0002H0003H

16 bit adres hattına sahip bir sistemin bellek yapısı

FFFFHFFFEHFFFDHFFFCHFFFBH

Page 9: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Bellek Arayüzü(Memory Interface)

Mikroişlemci, bellek ile MAR (Memory Address Register) ve MDR (Memory Data Register) olarak bilinin iki yapı yardımıyla iletişim kurar.

MEMORY

MAR MDR

Mikroişlemciler ve Mikrobilgisayarlar 9

Page 10: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Bellekteki X konumundan bir okuma işlemi gerçekleştirileceği zaman:

• Adres X ilk önce MAR kaydedicisine yerleştirilir.• Belleğe bir okuma sinyali(RD) gönderilir.• X konumunun içerdiği veri değeri MDR kaydedicisinde elde edilir.

Bellekteki X konumuna T değerinin yazılması gerektiği durumda

• T verisi önce, MDR kaydedicisinin içerisine yerleştirilir.• X bellek adresi MAR kaydedicisine yerleştirilir.• Ardından mikroişlemci denetim birimi tarafından üretilen yazma sinyali (WR) ile bu konuma T verisi yazılmış olunur.

Mikroişlemciler ve Mikrobilgisayarlar 10

Page 11: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Merkezi İşlem Birimi (CPU)

Mikroişlemci, bellekten komutları okuyan, çalıştıran ve giriş-çıkışcihazlarını kontrol eden birimdir. Bilgisayarın beynidir denilebilir.

Bilgisayar içerisinde olan işlem akışlarını kontrol eder ve düzenler.

Bütün matematiksel ve mantıksal işlemleri gerçekleştirir.

Mikroişlemciler ve Mikrobilgisayarlar 11

Page 12: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Central ProcessingUnit (CPU)

Input

ProgramO utput

Memor y

Data

Mikroişlemci, bellekten komutları okuyan, yürüten ve giriş-çıkışcihazlarını kontrol eden birimdir.

GetirmeKod

Çözme Yürütme YürütmeKod

ÇözmeGetirme

Komut N Komut N+1

Komut Saykılı Komut Saykılı

Mikroişlemciler ve Mikrobilgisayarlar 12

Page 13: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

PROCESSING UNIT

ALU TEMP

Arithmetical and Logic Unit (ALU)

Temel aritmatiksel (+,-,x,/) ve mantıksal (AND,OR,NOT…) işlemleri gerçekleştiri.

Kaydediciler (Registers)Üzerinde işlem yapılacak veri ve/veya komut parçacıklarının mikroişlemci içersinde saklayan gözlerdir. Bellek gözleri ile benzerlik taşır.

Kelime Uzunluğu (Word Size)

Paralel olarak işlenen veri bitlerinin sayısıdır. Kelime, işlemcideki genel amaçlı kaydedicilerin büyüklüğü ve aynı zamanda her bir bellek alanıkapasitesidir.

13Mikroişlemciler ve Mikrobilgisayarlar

Page 14: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Giriş/Çıkış (Input&Output) ArabirimleriDenetimli İşlem

Giriş Birimleri Çıkış Birimleri

Mikroişlemciler ve Mikrobilgisayarlar 14

SaklıProgram

Arabirim Devreleri

Sayısal Bilgisayar

Arabirim Devreleri ....

............

Arabirim Devreleri

Kullanıcı Girişleri (Klavye vb..)

Arabirim Devreleri

Kullanıcı Çıkışları(Ekran vb..)

... ...

Page 15: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Mikroişlemciler ve Mikrobilgisayarlar 15

CPU

Bellek Birimi

Giriş Portu Çıkış Portu

G/Ç Arabirim Ünitesi

Mikrobilgisayar Yolu

..... .....

Mikrobilgisayar

Page 16: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Kontrol Birimi (Control Unit)CONTROL UNIT

IRPC

Komutların yürütümünü gerçekleştirir. Sistem üzerindeki senkronizasyonu sağlar. Sistemdeki diğer birimlere ne yapmaları gerektiğini söyler.

Komut Kaydedicisi (Intruction Register) : O an yürürlükte olan komutun tutulduğu kaydedicidir.

Program Sayıcısı (Program Counter) : Bellekte yürütülecek bir sonraki komutun adresini tutar.

Mikroişlemciler ve Mikrobilgisayarlar 16

Page 17: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

KomutKomut, yapılan bir işin en temel parçacığıdır.

Op-code Operand

Op-code (İşlem Kodu): CPU’ya hangi işlemin gerçekleştirileceğini söyler.

Operand (İşlenen): Op-code tarafından kullanıcak verinin adresini belirtir.

Mikroişlemci içindeki komutlar birden fazla operanda sahip olabileceği gibi hiç bir operandı olmayan komutlarda mevcuttur.

Bilgisayarın komutları ve formatları, komut seti mimarisi olarak bilinir (Instruction Set Architecture-ISA)

Mikroişlemciler ve Mikrobilgisayarlar 17

Page 18: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Komut İşleme

Mikroişlemciler ve Mikrobilgisayarlar 18

Komutun kodunu çözKomutun kodunu çöz

Adresi oluşturAdresi oluştur

Operandları bellekten getir.Operandları bellekten getir.

Komutu yürütKomutu yürüt

Bellekten komut getirBellekten komut getir

Elde edilen sonucu saklaElde edilen sonucu sakla

Page 19: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Örn: T mikroişlemcisinde ADD komutunun yürütülmesi

T mikroişlemcisi 16 bitlik komut setine sahiptir. 16 bitlik komut setinin 4 biti işlem kodu (op-code) için ayrılmıştır. [12-15]

T mikroişlemcisinin R0,…,R7 olmak üzere 8 adet kaydedicisi vardır.

R6 R2 R6

Bu komut, R2’nin içeriğini R6’nın içeriğine ekler ve sonucu R6’da saklar.

Mikroişlemciler ve Mikrobilgisayarlar 19

Page 20: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Örn: T mikroişlemcisinde LDR komutunun yürütülmesi

Veriyi bellekten okur ve okunan değeri belirtilen kaydedicilerden birisinde saklar.

Offset Address + Base Address = Memory Address

Memory Address ile belirtilen adresteki değeri “0 1 0” ile belirtilen hedef kaydedicide saklar.

R2 R3 6Bellek adresini oluşturmak için 6 değerini R3 kaydedicisinin içeriğine ekler. Ardından oluşturduğu bellek adresinin içeriğini R2 kaydedicisinde saklar.

Mikroişlemciler ve Mikrobilgisayarlar 20

Page 21: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Komut İşleme:Getir(Fetch)

Mikroişlemciler ve Mikrobilgisayarlar 21

EAEA

OPOP

EXEX

SS

FF

DD

PC’nin içeriğini bellek adres kaydedicisine yükle (MAR)

Bellekten bir okuma işlemi gerçekleştir.

Bellek veri kaydedicisinin (MDR) içeriğini oku ve bunu daha sonra komut kaydedicisine (IR) yerleştir.

PC’nin içeriğini bir sonraki komutu gösterecek şekilde 1 arttır.

Page 22: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Komut İşleme:Kod Çözme(Decode)

Mikroişlemciler ve Mikrobilgisayarlar 22

EAEA

OPOP

EXEX

SS

FF

DD

Komutun işlem parçasını (op-code) tanımla.

• T mikroişlemcisinde bu komutun en yüksek değerlikli ilk 4 bitidir.

Mikroişlemci komutun op-code kısmına bakarak operand kısmıiçin kaç byte getireceğini bilir.

Örn:

LDR komutunun son 6 biti offset adresini gösterir.

ADD komutunun son 3 biti işlem parçasının ikinci kısmını(operand 2’yi gösterir)

Page 23: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Mikroişlemciler ve Mikrobilgisayarlar 23

Komut İşleme: Adresin Hesaplanması (Evaluate Address)

Bellek erişimine ihtiyaç duyan bir komut, erişim için gerekli olan adresi hesaplar.

EAEA

OPOP

EXEX

SS

FF

DDÖrn:

Offset Address + Base Address = Memory Address

Offset Address + PC = Memory Address

Offset Address + 0 = Memory Address

Page 24: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Komut İşleme:İşlenen Getir(Fetch Operand)Komutun üzerinde işlem yapacağı parçaları getirir.

EAEA

OPOP

EXEX

SS

FF

DD

Örn:

• Bellekten verinin yüklenmesi

• Kaydediciden bir değerin okunması

Mikroişlemciler ve Mikrobilgisayarlar 24

Page 25: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Komut İşleme:Yürütme (Execution)Mikroişlemci önceden okumuş olduğu op-code ve operandlarıkullanarak ilgili işlemi yerine getirir.

Mikroişlemciler ve Mikrobilgisayarlar 25

EAEA

OPOP

EXEX

SS

FF

DD

Page 26: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Komut İşleme:Sakla (Store)Komut sonucunda, elde edilen değer saklanır. Bu bir bellek konumu olabileceği gibi, bir kaydedici veya bir çıkış portu da olabilir.

EAEA

OPOP

EXEX

SS

FF

DDÖrn:

Bellekteki bir konuma sonucun saklanacağı durumda

• Önce ilgili konumun adresi MAR kaydedicisine yerleştirilir

• Kaydedilecek veri MDR kaydedicisine yerleştirilir.

• Ardından belleğe yazma işlemi gerçekleştirilir.

Mikroişlemciler ve Mikrobilgisayarlar 26

Page 27: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Komut İşlenme Sırasını DeğiştirmeBuraya kadar belirtilen işlemlerde bellekteki komutlar sırasıyla işlenmekteydi. Bu durumda PC’ın içeriği sırasıyla birer birer artmaktaydı.

Bazı durumlarda bu tür kullanımın dışına çıkılarak program akışının yönünü değiştirmek mümkündür. Örn: Döngüler(loop), Şartlı yapılar (if-then) ve alt yordamlar (sub-routines) gibi.

Bu işlemi gerçekleştirmek için bazı komutlara gereksinim duyulur. Bunlar sıçrma(jump) ve şartlı dallanma(branch) komutlarıdır.

Mikroişlemciler ve Mikrobilgisayarlar 27

Page 28: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Örn: T mikroişlemcisinin belleğinde sıçrama

Offset değeri bir kaydedicinin değerine eklenerek yürütülecek bir sonraki komutun adresini oluşturabilir. Bu adres PC’nin içeriğine yüklenerek programın bu adresten devam etmesi sağlanabilir.

R3 kaydedicisinin değerini taban olarak alıp bunun üzerine offset değerinin eklenmesi ile yürütülecek bir sonraki komutun bulunduğu bellek adresi elde edilir ve elde edilen bu değer PC’nin içerisine yerleştirilir.

R3 6 değeri

Mikroişlemciler ve Mikrobilgisayarlar 28

Page 29: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Komut TürleriMikroişlemci tarafından yürütülen komut türleri genel olarak aşağıdaki sınıflara ayrılabilir.

• Veri Taşıma Komutları

• Veri İşleme Komutları

• Program Kontrol Komutları

• Giriş / Çıkış Komutları

Mikroişlemciler ve Mikrobilgisayarlar 29

Page 30: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Sistem Saati (System Clock)Mikroişlemcide kontrol biriminin çalışmasını sağlayan sistem saatidir.

Saat darbesinin her bir kenarında kontrol birimi bir sonraki makine çevrimine girer. Bu çevrim yeni bir komut olabileceği gibi yürürlükteki komutun farklı bir evresi de olabilir.

“1”

“0”

Makine Çevrimi zaman→

Sistem saati, kristal bir osilatör devre yardımıyla yürütülür. Sistem saati düzenli olarak “1” ve “0” lar üretir.

Mikroişlemciler ve Mikrobilgisayarlar 30

Page 31: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Mhz ve MIPSMIPS = millions of instructions per secondMHz = millions of clock cycles per second

Bu iki kavram birbirine benzer olmasına karşı farklıdırlar. Neden?

Mikroişlemciler ve Mikrobilgisayarlar 31

Page 32: Von Neumann Mimarisi · Mikroişlemciler ve Mikrobilgisayarlar 27. Örn: T mikroişlemcisinin belleğinde sıçrama Offset değeri bir kaydedicinin değerine eklenerek yürütülecek

Von Neumann ModeliMEMORY

CONTROL UNIT

MAR MDR

IR

PROCESSING UNIT

ALU TEMP

PC

OUTPUTMonitorPrinterLEDDisk

INPUTKeyboardMouseScannerDisk

Mikroişlemciler ve Mikrobilgisayarlar 32