Temel Bilgisayar Yapısı ve
Devreleri
Buyruk kodu (Instruction Code)
• Bilgisayar mimarisi:
– Yazaçlar
– Zamanlama ve denetim
– Buyruk kümesi (Instruction Set) ile tanımlıdır.
• Bilgisayar donanımına komut vermek için onun dilinden
konuşmalısınız.
• Bilgisayarın kullandığı dilin kelimeleri instruction(buyruklardır)
• Kelime haznesi : instruction-set
• Program: bir dizi buyruktan oluşur. Kullanıcı: program aracılığı ile
bilgisayarı denetler.
• Bilgisayar buyruğu:
– Binary koddur
– Bir dizi mikroişlemden oluşur
– Her bilgisayar kendine ait buyrukları işletebilir.
• Mikroişlem: bilgisayar belleğindeki bir buyruğun parçasıdır.
Temel Bilgisayar Yapısı ve
Devreleri
• Bir sayısal bilgisayarın, kullanıcı tarafından
kullanımı “program” ve verilen “veri” ile
mümkün olur.
• Program çeşitli görevleri yapan
komutlardan oluşur.
• Komutlar(buyruk), veriler ile beraber
bellekte bulunur.
BUYRUK
İşlem kodu
veri
İşlem bellekteki veriyle AC
arasında gerçekleşir.
Komut kodu iki parçadan oluşmuştur: operasyon kısmı ve adress kısmı.
Operasyon kısmı yapılan işlemin tanımlandığı bit grubudur.
Adres kısmı ise, tanımlanan moda göre, operand adresinin tanımlandığı bitlerdir.
Operand hesaplanan “efektif adres” değerine göre bellekten okunur. En kullanışlı
bilgisayar yapılarından biri, işlemciye ait bir hızlı-bellek elemanı (akümülatör-AC)
kullanmaktır. İşlem görecek operandı ve işlem sonucunu burada saklamaktır.
İşlemci
yazacı
Dolaylı Adres
Bilgisayar Yazaçları
DR ve AR,anabellek okuma ve yazma işlemlerinde veri ve adres bilgisini tutmakla
görevlidir. PC, bilgisayarda saklı bulunan programın komutlarının okunmasıyla
görevli olup, koşulan komuttan sonraki komutun adresini gösterir.
INPR ve OUTR 8 bitlik karakterin, kesinti işlevi yoluyla, bilgisayar akümülatörüne
okunması ve yazılmasıyla görevlidir. TR ise geçici verinin saklanabileceği hızlı
bellektir. Son olarak da, IR komutun saklanması, operasyonunun yorumlanıp,
mikroişlemlerin başlatılması görevini yapar.
Ortak Veri Yolu Sistemi
Temel bilgisayar sekiz yazaç, bir ana bellek ve
kontrol biriminden oluşmaktadır. Bu yapıda ikili
bilgiler, 16 bit hat grubu yoluyla elemanlar arasında
transfer edilmektedir.
İkili bilgi aktarımı şu şekilde yapılır: Bellek
elemanların çıkışları S2 S1 S0 seçim girişleri ile
kontrol edilen MUX (3X8) tarafından hat grubuna
bağlanır. Örneğin, DR'nin çıkışı 3 ise, S2 S1 S0
=011 DR'nin çıkışının seçilmesini sağlar. Böylece,
DR'nin içeriği hat grubuna verilir. Bu içerik hangi
yazaca yüklenecekse, onun “yükle” kontrolü aktive
edilir.
Örnek: AC'nin yükle hattı aktive edilirse ACDR
16 bitlik bilgi transferi sağlanır. Yazaçlarda üç
kontrol işareti vardır: Yükle, arttır ve temizle.
Böylece, belleklerin bilgi içeriği kontrol edilir.
Ortak Veri Yolu Sistemi
•
Yazaçlar:
–
–
–
•
•
•
•
•
•
•
DR, AC, IR ve TR:16 bit,
AR ve PC: 12 bit,
İNPR, OUTR: 8 bit
AR ve PC anabellekteki adreslerin tanımlanmasını sağlar. Eğer içerikleri 16
bit veri yoluna aktarılırsa, en anlamlı 4 bit 0000 olarak alınır. Bilgi alırken 12
önemsiz biti alırlar.
İNPR ve OUTR veri yolunun en az anlamlı 8 bitini kullanırlar. INPR herhangi
bir cihazdan bir karakter alır bunu AC ye aktarır. OUTR:AC’den karakter alır
ve çıkış cihazına gönderir.
Anabellek okuma ve yazma : AR ve DR ile yapılır. Okuma operasyonunda
AR anabellek adresini tutar, anabelleğin oku kontrolü aktive edilir. Son
olarak da, bu içerik DR'ye aktarılacağından, onun “yükle” kontrolü aktive
edilerek transfer gerçeklenir. Yazma işleminde ters işlem yapıldığı
hatırlanmalıdır.
Gösterilen yapının diğer bir özelliği de aynı saat darbesinde iki mikroişlemin
yapılabileceğinin gözlenmesidir:
DR AC , AC  DR
Yukarıdaki şekilde DR ve AC arasındaki bağlantı bu transferleri sağlar.
ALU'da E bayrağı (flag) toplama işleminin eldesi, çıkarmanın ödüncü, taşma
vb. değerleri göstermekte kullanılır.
Bilgisayar Buyrukları
Temel bilgisayarın üç buyruk kod biçimi vardır.
Bellek adreslemeli: ilk bit doğrudan ve dolaylı adreslemeyi belirtir. I=0 doğrudan
adresleme, I=1 dolaylı adresleme
Yazaç adreslemeli: Buyruk işlem kodları 111 dir. En soldaki 0 dır. AC üzerinden bir
işlem veya AC nin test edilmesi işlemlerini yapar. Bellekten veriye gerek yoktur, geriye
kalan 12 bit yapılacak işlem için kullanılabilir.
Giriş çıkış adreslemeli:bellekten veriye gerek duymaz. G/Ç işlem tipini belirtmek için 12
bit kullanılır.
Bilgisayar Buyrukları
• İşlem kodu için: 3 bit kullanıldısadece 8
işlem vardır.
• Yazaç adreslemeli ve G/Ç buyruklarındaki
12 bit farklı işlemlerin tanımlanmasında
kullanıldığından toplam buyruk sayısı 8
den fazladır.
Buyruk Kümesinin Tamamlığı
• Genel olarak bir komut seti aşağıda tanımlanan her bir sınıftan yeteri komut
bulunduruyorsa, bu set “tam bir komut seti” dir denilir. Bu sınıflar:
Temel bilgisayar komutları tablosunda tanımlanan komutların her bir sınıftan “minimum”
komut içerdiğini göstermek mümkündür. Böylece tanımlanan set, bir minimum settir.
Örneğin, sadece ADD operasyonu vardır, çıkarma için 2’ye tümleyen elde edilip, toplama
yapılması gerekir. Çarpma, bölme vs. komutları için aynı yol izlenmelidir.
Diğer taraftan, bu komut seti verimli bir set değildir. Sık kullanılan komutlar hızlı bir
şekilde gerçeklenmemiştir. Çıkarma, çarpma, OR, XOR işlemleri çok yavaş
gerçeklenmiştir. Günümüz bilgisayarları hızlı devrelerle bu işlemleri yapabilmektedir,
örneğin çarpma devresi.
The Instruction Set: A Critical Interface
software
instruction set
hardware
Zamanlama
•
•
•
•
Tüm bilgisayarlar donanımda gerçekleşen olayların zamanlaması için saat
kullanılarak yapılandırılırlar.
Bu ayrık zaman aralıkları clock cycles (or ticks, clock ticks, clock
periods, clocks, cycles) olarak adlandırılır.
Bir saat periyodu tamamlanmış bir clock cycle ile tanımlanır (örn, 250
picoseconds, yada 250 ps)
Yada clock rate (örn 4 gigahertz, yada 4 GHz).
CPU performansı
• CPU time:
• Yada clock cycle time yerine clock rate ile
hesaplanabilir.
• Program için gerekli Clock cycle sayısı
azaltılabilir yada clock cycle süresi azaltılabilir.
• Biri için geliştirilen bir yöntem diğerinin
uzamasına neden olabilir.
Örnek
• Bilgisayar A’da bir program 10 saniyede çalışsın ve
Clock: 2GHz.
• Aynı programı 6 saniyede çalıştıracak bir B bilgisayarı
yapılacak.
• Dizaynırlar kaç clock rate hedeflemelidir?
• Dizaynır clock rate değerinde azımsanmayacak bir artış
hedeflemiştir. Fakat bu artış kalan CPU dizaynını
etkileyecektir. B bilgisayarı, A bilgisayarının bu program
için ihtiyaç duyduğu clock cycle sayısından 1.2 kere daha
çok clock cycle time ihtiyacı olacaktır kararına varılır.
Cevap
CPU performansı
Zamanlama Metodu
• Bilgisayarda gerçekleşen buyrukların sıraya konması için örn aynı
anda aynı dosyanın okunup yazılmasının önüne geçmek için bir
zamanlama denetimi kurulmuştur.
• Basit bir tasarım için kenar-tetiklemeli zamanlama mekanizması
kullanılmıştır.
• kenar-tetiklemeli zamanlama: bir lojik elemanda saklı bilgi sadece
saat kenar darbesinde(clock edge) güncellenebilir.
• Girişler bir önceki saat çevriminde yazılmış değerler iken, çıkışlar bir
sonraki saat çevriminde kullanılacak olan değerlerdir.
• State element 1’den state element 2’ye geçmek için gerekli sinyaller
için gereken zaman saat çevrimi uzunluğunu verir.
Zamanlama Ve Denetim
• Bilgisayarın zamanlaması master saat üreteci tarafından
oluşturulan saat darbeleriyle sağlanır.
• Saat darbeleri ancak kontrol işareti ile birlikte olunca
yazaçların durumunu değiştirebilir.
– Örneğin, yükle işareti ile birlikte uygulanan saat darbesi belleğin
yüklenmesini sağlar.
• İki çeşit kontrol yapısı kullanılmaktadır:
– donanım yoluyla (hardwired)
– mikroprogramlama veya yazılım yoluyla (microprogrammed)
kontrol.
• Donanım yoluyla kontrolde, lojik kapılar, FF' ler, dekoder
ve diğer sayısal devreler kullanılır. Bu kontrol hızlıdır, bir
kez tasarlanınca bir daha değiştirilemez.
• Mikroprogramlama yoluyla kontrol esnektir fakat daha
yavaştır.
•
•
•
•
•
•
•
Kontrol biriminin iki kısmı
gözlenmelidir:
1- zamanlama kısmında 4-bit dizi
sayıcısı (sequence counter, SC)
0000'dan 1111'e kadar sıra ile
sayarak, önündeki 4x16'lık
dekoder devresinin 0'dan 15'e
kadar çıkışlarından birini
seçmektedir.
Seçilen çıkış T0'dan T15'e kadar
bir darbe üretir.
2- Diğer kısmı ise IR'ye bağlantılı
olarak, burada bulunan komutun
operasyon kodu ve adres bilgisini
kontrol lojik kapılarına aktarır.
Operasyon kodu 3x8 dekoder
yoluyla D0' dan D7' ye kadar çıkış
işaretleri üretir.
I biti de adres bilgisiyle birlikte
kontrol devresine giriş oluşturur.
Kontrol devresi çıkışı, sonuçta
komut ile ilişkili bir bir kontrol
işareti dizisi oluşturur.
Zamanlama Birimi
• D2 T3 : SC  0
• İfadenin koşulu (D2 T3 yani eğer T3 zamanında kod çözücünün D2
çıkışı aktif ise koşulu) sağlandığında, dizi sayıcısının (SC) saat
darbesinin pozitif geçişinde “temizle” girişi aktif yapılarak ifade
sağlanır.
• SC: saatin yükselen koluna bağlı olarak sinyal gönderir. SC her saat
vuruşunun çıkış kısmında artırılır. Ancak silme girişi aktif olursa
artırma durur. Böylece T0,T1,T2,… sinyalleri durmadan üretilir.
• Eğer silme gerçekleşmezse zaman sinyalleri T0,T1,….T15 olur ve
T0 dan devam eder.
Saat darbe üreteci, dekoder
çıkışından T0 , T1, T2, T3
darbelerini üretir.
İşlem: D2 T3 : SC  0
D2 çıkışı T2 sinyalinin
sonlanmasıyla aktif hale gelir.
T3 zaman sinyali aktifleşince
VE kapısının çıkışı D2T3
denetim fonksiyonunu aktif
hale getirir. Sinyal SC’nin
silme girişine gider.
T3 de zaman sinyali sıfırlanır.
Eğer silme işlemi olmasaydı
T4,T5 diye devam edecekti.
Buyruk Süreci
1- Fetch,
2- Decode
3- buyruk dolaylı adreslemeli ise etkin adresi
oku
4- buyruk çalıştır
Al getir ve kodunu çöz:
PC ilk buyruk adresi ile yüklenir, SC sınıflanır
ve T0 zaman sinyali elde edilir.
T0 : AR  PC (bellek adres girişi sadece
AR’ye bağlı olduğundan)
T1 : IRM[AR], PCPC+1
T2 : D0 ,...,D7  Decode IR(12-14), AR
IR(0-11), IIR(15)
(IR içindeki işlem kodu çözülür. Dolaylı adres
biti I flip-flopa, buyruğun adres kısmı AR’ye,
aktarılır)
•
Buyruk Süreci
• PC, AR ve IR yazaçları kullanıldığına; bunların “yükle” ve
“arttır” kontrol girişlerinin kullanıldığına dikkat edilmelidir.
• Temel bilgisayar diyagramına ek olarak kullanılan lojik
kapılarla bu transferlerin nasıl yapıldığı gözlenmelidir.
• Örneğin,
• T1 : IR<=M[AR], PC<=PC+1
• ifadesi aşağıdaki adımlarla gerçeklenir:
– Ana belleğin okuma girişi aktive edilir.
– Ana bellek içeriği hat grubuna verilip, S2 S1 S0 =111 (ana bellek
çıkışı) seçilir.
– Hat grubundaki içerik “yükle” kontrolü aktive edilerek IR yazılır.
– Aynı zamanda, PC “arttır” kontrolü ile arttırılır.
Buyruk Tipinin Belirlenmesi
T3 zamanında ise ana bellekten okunan
komutun tipinin belirlenmesi fazı gelir. Üç
komut tipine göre dört kola ayrımın
gerektiği anlaşılır:
D’7 IT3 : ARM[AR]: Bellek referanslı,
dolaylı adresli komut
D’7 I’T3: İşlem yok: Bellek referanslı,
doğrudan adresli komut
D7 I’T3 : Hızlı bellek referanslı komut
D7 IT3 : Giriş/çıkış komutu
Her bir ayrı koldan, komut çeşitlerine
göre tanımlanan mikroişlemler yardımıyla
komutlar koşturulur. Burada kapalı olarak
SCSC+1 ifadesi her bir mikroişlem için
geçerlidir. Her bir komutun
koşturumundan sonra SC0 alınarak
komut fazı başa döner.
Yazaç Adreslemeli Buyruklar
• Opr kodu=111 ise kod çözücünün D7 çıkışı 1 dir.
• Yazaç adreslemeliler OPR kodunun 111 olması ile
tanınırlar. Bununla birlikte I=0 dır.
• Ayrıca 0-11 arası bitler ile 12 buyruğu ifade ederler. IR(011)
• Örnek:
– CLA instruction 7800=0111 1000 0000 0000
– D7I’T3B11 ile ifade edilir. D7I’T3 bütün yazaç adreslemelilerde
ortak olacağından kısaltarak rB11 şeklinde yazılır.
• Yazaç adreslemeli buyruk işletimi T3 zamanında
tamamlanır ve SC sıfırlanır. Denetim T0 sinyali ile
sonraki buyruğu alır getirir.
Yazaç Adreslemeli Buyruklar
Yazaç Adreslemeli Buyruk
MIPS - Örnek
• f=(g+h)-(i+j) kodu için C derleyicisi nasıl bir
kod üretir?
Bellek Adreslemeli Buyruklar
• Bilgisayar az sayıda yazaç kullanılarak tasarlanır.
• Bu durumda yazaçlarda saklanamayan veriler bellekte
tutulur.
• Bu veriler üzerinde işlem yapabilmek için
registerbellek aktarımı gerçekleştirilmelidir.
• Bu aktarımı gerçekleştiren komutlar bellek adreslemeli
buyruklardır.
MIPS - Örnek
• Varsayalım ki
– A:100 kelimelik bir dizi
– Compiler g ve h değişkenlerini $s1 ve $s2 registerları ile
ilişkilendirmiş olsun.
– Dizinin base adresi $s3 olsun.
• g=h+A[8] C kodu derlensin, gerçekleşecek mikroişlemler:
• A[12]=h+A[8] kodu derlensin, gerçekleşecek mikroişlemler:
Bellek Adreslemeli Buyruklar
•
Bellek Adreslemeli Buyruklar
• AND
• AC ile bellekten alınan veriyi VE ler. Sonuç
AC ye geri aktarılır.
• Buyruk için mikroişlemler:
Bellek Adreslemeli Buyruklar
• ADD
• AC ile bellekten alınan veriyi toplar. Sonuç
AC ye geri aktarılır. AC nin çıkış eldesi E
ye aktarılır. Mikroişlemler:
Bellek Adreslemeli Buyruklar
• LDA: Load to AC
• AR ile belirtilen bellekteki içeriği AC’ye
aktarır.
• Veri yolundan AC’ye doğrudan aktarım
yoktur(şekil 5.4)
• Veri önce DR’ye sonra AC’ye aktarılır.
Bellek Adreslemeli Buyruklar
• STA: Store AC
• AC içeriğini bellek adresi içeriğine yazar.
• AC çıkışları veri yoluna ve veri yolu da
belleğin veri girişlerine bağlıdır.
Bellek Adreslemeli Buyruklar
• BUN: Branch Unconditionally
• Programı etkin adres ile verilen adrese
yönlendirir.
• PC T1 zamanında artırılır ve bir sonraki
buyruk adresi hazırlanır.
• BUN programcıya buyrukların sırasını
bozma yetkisi kazandırır.
• Gerekli mikroişlem:
Bellek Adreslemeli Buyruklar
• BSA: Branch and Save Return Address
• Programın alt program adı verilen bir bölüme yönelmesini sağlar.
• BSA icra edilince alt programın başlangıç adresini PC ye yazar.
• BSA buyruğunun 1 zaman sürecinde tamamlanması imkansız. 2
mikroişlem ile gerçekleştirilir.
BSA
•
•
•
•
BSA buyruğunun bellek adresi 20. I=0.
Fetch and decode adımlarından sonra PC=21. AR=135.
BSA şu işlemi yapar: M[135]21, PC 135+1=136
Alt programdan ana programa dönüş BUN ile sağlanır.
Bellek Adreslemeli Buyruklar
• ISZ: Increment and Skip if Zero
• Etkin adres ile verilen kelimenin(word)
değerini artırır.
• Eğer artırılan değer 0 ise PC 1 artırılır.
• Bellekte bir word içeriğinin artırılması
mümkün değildir, word DR içine okunur.
•
Çok sayıda yazaç kullanmak
•
•
•
•
•
•
Diyelim ki bir prosedür giriş ve çıkış parametreleri için çok sayıda yazaca
ihtiyaç duyuyor
Bunun için ideal veri yapısıstack—last-in-first-out queue.
Stack bit stack pointer a ihtiyaç duyar. SP stack e en son eklenen adresi
gösterir.
MIPS mimarilerde register 29 stack pointer için ayrılmıştır. ($sp).
Push: stack üzerine veri yazmak
Pop: stack den veri çekmek
Örnek Stack Kullanımı
• Aşağıdaki C kodunun derlenmiş MIPS assembly kodu nedir?
• Compilera ait değişken-register eşlemesi:
– g,h,i,j için sırayla $a0, $a1, $a2, $a3
– f için $s0
•
Push
•
Gövde
•
Return
•
Pop
G/Ç Düzeni
•
G/Ç Buyrukları
•
•
•
•
G/Ç buyrukları: bilgi AC’ye aktarır yada AC’den aktarır.
Kesmelerde bu buyruklar ile denetim yapılır.
İşlem kodu =111 dir. I=1 dir
Kalan bitler işlemin özel kodu için ayrılmıştır.
Program Kesme
• Bilgisayar bayrak bitini kontrol etmeye devam eder.
– Bit=1 ise aktarım başlar
• Bilgisayarın sürekli bayrak bitini kontrol etmesi etkin bir yol
değildir.
• Bu durumda alternatif yol: cihaz aktarıma hazır olduğunda
bilgisayara haber verir.
• Bilgisayar bu sinyali(kesme sinyali) alana kadar başka işler ile
uğraşabilir.
• Bilgisayar programları çalıştırırken bayrak bitlerini kontrol
etmez.
• Bayrak =1 olduğunda çalıştırılan program durdurulur ve
kesmeye yönelinir.
• Kesme (G/Ç) işi cevaplandığında yarıda kesilen programa
geri dönülür.
Kesme Süreci
•
Bilgisayara bir R kesme
flip-flopu eklenir.
–
•
••
•
•
R=0 ise buyruk R=1 ise
kesme süreci başlar.
IEN flip-flop: kesme izin flipfloptur.
IEN=0 olduğu sürece
programcı kesme
kullanmak istemiyordur.
IEN=1 ise kesme
kullanılmak isteniyordur bu
durumda Input ve Output
için sırayla FGI ve FGO
bayrak bitlerine bakılır. İkisi
de 0 ise G/Ç hazır değildir.
Bu durumda denetim bir
sonraki buyruk sürecine
geçer.
Eğer IEN=1 iken
bayraklardan biri 1 olursa R
flip-flop 1 yapılır. Ve sonraki
süreçte kesme işletimi
başlar.
Kesme Süreci-Örnek
•
Kesme Süreci-Örnek
• Kesme isteği geldiğinde PC=256 var (dönüş adresi).
• Interrupt handler (IH) 1120 adresinde yer alıyor
• T0 zaman sinyalinde R=1 dir ve denetim kesme
sürecine girer.
• PC=256 içeriği belleğin 0 adresine yazılır.
• PC=1 ve R=0 yapılır.
• PC=1 de kesme işleyicinin adresine zıplanmasını
sağlayan buyruk işletilir
• G/Ç tamamlanır.
• “1 BUN 0” buyruğu ile 0 adresine yani 256 numaralı
adrese zıplanır
Kesme Süreci
• Denetim Fetch evresine sadece R=0 da girer.
• R=1 ise denetim kesme evresine girer.
• R=1 yapılması herhangi bir Ti zamanında olabilir (T0,T1,T2
zamanları hariç) Bu durumda R nin 1 yapılma şartı:
• PC içeriği kesilen program adresi bellek 0 adresine yerleştirilir.
• Kesme süreci 1 bellek adresine dallanır
• IEN, R ve SC yi temizler. Bu adımları gerçekleştiren mikroişlemler:
•
Temel Bilgisayar Donanım
Bileşenleri
• 16 bitlik 4096 kelimelik bir bellek
• 9 yazaç:
– AR,PC,DR,AC,IR, TR, OUTR, INPR, SC
• 7 flip-flop:
– I,S,E,R,IEN,FGI,FGO
• 2 kod-çözücü:
– 1 adet 3x8,
– 1 adet 4x16 kod çözücü (zamanlama için)
• 16 bit ortak veri yolu
• Denetim mantık kapıları
• AC nin girişine konan toplayıcı ve mantık devreler
Download

5. Temel Bilgisayar Yapısı ve Devreleri