16 bitlik İşlemciler

advertisement
16 bitlik İşlemciler
16 bitlik işlemciler basit olarak 8 bitlik işlemciler gibi
•Kaydedici
•ALU
•Zamanlama/kontrol
Birimlerine sahiptirler.
Fakat mimari yapıları çoklu görev (multitasking) ortamına uygun
hale getirildiğinden, işlemci içerisindeki bölümler fonksiyonel
açıdan iki mantıksal ana bölümde açıklanabilirler.
1. Veri yolu bağdaştırma birimi( Bus interface Unit)
2. İcra birimi (execution unit)
D7
1
16 bitlik İşlemciler
BIU birimi EU birimini veri ile beslemekten sorumlu iken icra
birimi komut kodlarının çalıştırılmasından sorumludur.
BIU bölümünde;
• Segment kaydediciler
• IP- Instruction Pointer
• Komut kuyrukları
• Veri alıp getirme birimleri
varken
EU bölümünde
•
Genel amaçlı kaydediciler
•
Kontrol birimi
•
Ve ALU bulunmaktadır.
D7
2
EU
BIU
GPR’s
Segment
kaydedicileri
AH
AL
BH
BL
CH
CL
CS
DH
DL
DS
SI
SS
DI
ES
BP
IP
SP
VeriYolu
Kontrolü ve
adres
üretimi
Mantıksal olarak
ayrılmış bu iki
bölüm chip üzerinde
fiziksel olarak
birbirine bağlı
durumdadır.
Sistem veri Yolu
ALU
Komut Kuyruğu
Bayraklar
Kontrol Birimi
3
BIU:(Bus Interface Unit)

İşlenecek komutların kodları sistem
tarafından bellekte ilgili segmentlerdeki
adreslere yerleştirilir.

Bellekteki bu komutlar çalıştırılacağı
zaman doğrudan veriyolu bağdaştırma
birimi tarafından bellekten alınarak kod
çözme birimine getirilirler.
4

Aynı şekilde icra edilen bir komutun sonucu belleğe yazılacağı
zaman veri yolu bağdaştırma biriminden geriye yazma talep
edilir.

Verinin bellekten alınıp getirilmesi ve tekrar depolanması gibi
işlemlerde ençok çalıştırılan iki komut LOAD ve STORE
komutlarıdır.

İcra birimi (EU) komutlarıyla, verinin alınıp getirilmesi veya
belleğe depolanması sırasında veriyolu bağdaştırma birimi
otomatik olarak getirilen verilerdeki komutları komut kuyruğuna
yerleştirir.

Komut kuyruğuna bazen tamponda denilir. Ve işlemciye göre
kapasitesi değişir.
5



Bellekten alınıp getirilip işlenecek bu komutların
yeri CS:IP (code segment- Instruction Pointer)
kaydedici ikilisi tarafından tutulur.
Bellekte işlenecek ilk komutun bulunduğu adres bu
birim tarafından otomatik olarak CS:IP
kaydedicilerine yerleştirilir.
Bu ilk komutla birlikte sıradaki komutlar komut
kuyruğunun kapasitesine göre BIU tarafından
alınıp getirilip sıraya konulurlar.
6

Sıradaki bu komutların işlenmesiyle birlikte bellekten veri
alıp getirmek için kuyruk veya kanal kapasitesi kadar
beklenmeyecek hemen sıradan alınıp icra birimi
tarafından işlenecektir.

Bellekten veya I/O birimlerinden her ne yöntemle olursa
olsun bir şekilde komut kuyruğuna getirilen komut kod
veya operand bilgileri icra birimi tarafından işlenmek için
hazır durumdadır.
7
İCRA BİRİMİ

Bu birim BIU ile birlikte paralel çalışarak komut kuyruğuna
sürülen makine dilindeki komutların kodunun çözülmesi ve
işlemci içerisindeki her bir komutun doğru bir biçimde ele
alınarak işlenmesinden sorumludur.

Eğer komutun işlenmesi sırasında herhangi bir veriye gerek
duyulursa;

Veri GPR lardan birisinde ise alınıp getirilmesini

Harici ortamda ise (bellek veya çevresel cihazlar) BIU’dan
bu verinin talep edilmesi gibi işlemleri EU yapar.
8

EU, komut kuyruğunun en üstündeki komut kodunu alıp
getirdikten sonra, kodlar bir komut kod çözücüsü
vasıtasıyla kodları çözülerek ALU’ya gönderilir.

Eğer kodu belirlenen bir komut aritmetik veya mantık
komutuysa, icra birimindeki adres üreteci vasıtasıyla BIU
uyarılarak, bellekten veri alıp getirerek icra birimindeki
kaydedicilere veya doğrudan ALU’ya yollar ve kontrol
biriminin denetiminde bu veriyle ne yapılması
gerekiyorsa o yapılır.
9

Eğer büyük değerlikli ve kesirli sayılar varsa FPU
birimine gönderilir. ( küçük değerlikli sayılar ve mantıksal
komutlar için ALU yeterlidir.)

Komutlar işlendikten sonra sonuç bilgisi nereye
depolanacaksa, (bir kaydedici veya bellek alanına) oraya
gönderilir.

Bir komutun işlenmesinden sonra komut kuyruğunda
bulunan sıradaki komutun ele alınması için kontrol birimi
sinyal gönderir.
10
KAYDEDİCİLER


İşlemci içerisinde çeşitli verilerin manevrasında
kullanılmak üzere 14 özel amaçlı kaydedici
vardır.
Bunlar fonksiyonlarına göre 4 gruba ayrılırlar.
4
tanesi segment kaydedicisi
 3 tanesi işaret kaydedicisi
 2 tanesi indis kaydedicisi
 4 tanesi GPR
 1 tanesi Bayrak kaydedicisidir.
11
EAX
EBX
ECX
EDX
ESI
EDI
ESP
EBP
EIP
EFLAGS
AH
BH
CH
DH
SI
DI
SP
BP
AX
BX
CX
DX
IP
Bayraklar
AL
BL
CL
DL
Akümülatör
Taban adres İndisçisi
Sayıcı/Sayaç
Veri
Kaynak indisçisi
Hedef indisçisi
Yığın işaretçisi
Yığın Taban indisçisi
Komut İşaretçisi
Bayraklar
CS
DS
ES
SS
Kod segment
Data Segment
Extra Segment
Yığın Segment
FS
GS
Extra Data
segmentleri
12
Segment kaydedicileri

Gelişmiş mikroişlemcili sistemlerde, kullanılan bellek
adresleri günümüzde iki parça halinde ifade edilirler.
 Segment
 Ofset

adresleri
Bunun sebebi, büyük kapasiteli belleklerde bilginin
yönetimi (yüklenmesi saklanması ve sırasını
beklemesi)oldukça karmaşıktır.
13

Bu sebeple büyük bellekler belli amaçlarla
64 KB’ lık küçük gruplara (segment)
ayrılarak daha kolay yönetilirler.

Bellekte bu bölümlerin başlangıç adresleri
segment kaydedicilerinde tutulur.

Bu bölümdeki verilerin adresleri ise
segment kaydedici içeriğine uzaklığıdır ve
ofset adres olarak saklanır
14



Örnek: Bir okulda A,B,C blokları bulunsun. Bu
bloklarda 01… 20 ye kadar sınıflar bulunsun .
05 no’ lu sınıf dendiğinde eksik adres bildirilmiş
olur. Gidip her bloktaki 05 nolu sınıf
taranmalıdır. Eğer A blok 05 nolu sınıf diye
adres verilirse kesin adres bilgisi verilmiş olur.
A,B,C segment
01…20 ise ofset adreslerine karşılık gelir.
15

Segmentlere adları, gösterdikleri bellek alanlarının
oluşumuna göre özel amaçlı olarak verilmiştir.

Buna göre, programcı tarafından yazılan komut
kodlarının assemblere bağlı olarak sistem tarafından
bellekte saklandığı adreslere Kod segment (code
segment) adı verilir.

Kod segmentteki komutlarla ilgili olan veya bu kodların
işleyeceği verilerin saklandığı bölüme data segment adı
verilir.

Verilerin çok büyük olduğu istatistiksel bilgilerin tutulduğu
data segmentinin yetmediği durumlarda kullanılan
segmente extra segment adı verilir.
16

F ve G segmentleri 386 + işlemcilerde artan
bellek nedeniyle görülen ihtiyaç üzerine
eklenmişlerdir.

Mikroişlemcilerde komutların işlenmesi sırasında
kaydedicilerin yetersiz geldiği durumda verinin
geçici olarak atıldığı bölüme Yığın segmenti
(stack segment) adı verilir.

Bellekteki bu bölümlerin başlangıç adresleri
kendi adlarıyla işlemci içerisinde yer alan
kaydedicilerde tutulur.
17
Kod Segment Kaydedicisi

Kod segment, bellekte çalıştırılacak komutların
bulunduğu bölümdür.

Programcı tarafından yazılan programların kodları
assemblere (derleyicilere) bağlı olarak sistem tarafından,
komut kodu önce operandı sonra konulacak şekilde bu
bellek birimine sıralanır.

İşlenecek olan komutun kodu bu kaydedicinin gösterdiği
adresten BIU tarafından alınarak komut kuyruğuna atılır.

Bilgisayar ilk açıldığında ilk işlenecek komut bu
segmentin başındadır. Segmentin başlangıç adresini
kısaca CS denilen kod segment kaydedicisi gösterir.
18

Bu kaydedici otomatik olarak bir sonraki komutun alınıp
getirilmesi için kontrol birimi tarafından yönetilir. Ve
programcı buna genelde müdahale edemez. Ve
değiştiremez.

Eğer değiştirmeye çalışırsa program akışı değişebilir ve
kilitlenmeler meydana gelir.

Eğer uzun program yazımından dolayı kod alanı
büyüklüğü (64KB) yetmiyorsa programda model
bölümünde bellek tanımlaması değiştirilerek değişik
adlarla birden fazla kod alanı tanımlanabilir.
19
DATA Segment Kaydedicisi

Normalde işlenecek verinin depolandığı bellek
alanının başlangıç adresini gösterir.

Diğer segment kaydedicileri gibi tam adresin
segment tarafını gösterir.

Sistemdeki veriler genelde ilk veri segmenti olan
data segmentinde depolanır.

Kısaca DS olarak adlandırılan data segment
kaydedicisi data segmentinin ilk adresini
gösterir.
20

Bu alana sabit değerler, stringler değişkenler ve matris
şeklindeki veriler depolandığından bunlara erişim için
sadece DS kaydedicisi yetmez.

DS ile birlikte verilerin adresini göstermede BX veya SI
kaydedicisi yada etiket adresleri ofset adresi olarak
kullanılabilir.

DS:BX veya DS:SI etkin adres çiftleri iyi bir tanımlama
oluşturur.

Bu segmente de ayrılan alan yetmezse önce extra
segment sonra da F veya G segmentleri kullanılır.
21
Extra Segment Kaydedicisi

ES olarak adlandırılan bu kaydedici programcı tarafından
tanımlanmadıkça işlemci bunu kullanmaz.

Genellikle string (harfdizi) işlemlerinde hedef adresi
olarak algılanır.

Harfdizi işlemleri bellekte fazla yer kapladıkları için
kaynakla hedef arasında bir ayırım yapmak gerekirse
kaynak veriler data segmentinde, sonuçlar extra
segmentte tutulur.

Extra segment string işlemlerinde kullanılırken ofset
adreslerini genelde BI kaydedicisi üzerine alır.
22
Yığın Segment Kaydedicisi

Kısaca SS olarak bilinen bu bellek, bir takım veri
işlenirken yer yokluğundan veya kaydedici
yetersizliğinden dolayı verinin geçici olarak
yerleştirildiği yerdir.

SS kaydedicisi yığın alanının ilk adresini
gösterirken, ofset adresini SP ve yığın indisçisi
olarak BP gösterir.
23
Genel Amaçlı Kaydediciler

Genel amaçlı kaydediciler, mikroişlemcide program
komutlarının icrası sırasında verilerin manevrasında
kullanılan ve yapısal olarak en küçük bölümü 8 bitlik
bellek hücresine benzeyen elektronik elemanlardır.

GPR lar kendi aralarında yaptıkları işe göre iki gruba
ayrılır.
 Birinci

EAX, EBX, ECX, EDX, ESI, EDI VE EBP
 İkinci

Grupta Çok Amaçlı Kaydediciler
Grupta Özel Amaçlı Kaydediciler
ESP, EIP VE BAYRAK kaydedicileri yer
almaktadır.
24






386 işlemcilere kadar bu kaydediciler;
 AX, BX, CX, DX şeklinde 16 bit olarak işlem
görmüşlerdir.
8 bitlik olarak daha küçük parçalara bölünebilirler.
 AH, AL, BH, BL, CH, CL, DH VE DL gibi…
AX serisi kaydediciler 16 bitlik verilerin saklanmasında
EAX serisi kaydediciler 32 bitlik verilerin
saklanmasında kullanılmaktadırlar.
X’in manası High (H) ve Low(L) değerlerinin birlikte
kullanımını,
E ise extended (genişletilmiş) anlamına gelmektedir.
25
EAX
EBX
ECX
EDX
ESI
EDI
ESP
EBP
EIP
EFLAGS
AX
BX
CX
DX
SI
DI
SP
BP
IP
Bayraklar
26
AX kaydedicisi
Akümülatör, AX kodu ile tanımlanır.
Verilerin ilk ele alınmasında başrol
oynadığından baş kaydedici olarak
düşünülebilir.
 8, 16 ve 32 bitlik verilerle çarpma, bölme,
bazı I/O işlemlerinde ve bazı harf dizi
işlemlerinde etkin bir biçimde
kullanılmaktadır.

27
BX kaydedicisi
Taban adres kaydedicisi olarak bilinen ve
BX koduyla tanımlanan kaydedici,
bellekteki veri gruplarının ofsetinin
tutulmasında bir indisçi gibi davranır.
 Verilerin adreslenmesinde
kullanılmaktadır.

28
CX kaydedicisi
•
Sayaç kaydedicisi olarak bilinen CX, string
işlemlerinde bir sayaç elamanı veya döngü
işlemlerinde tekrarlama sayıcısı gibi
görevleri yerine getirirler.
29
DX kaydedicisi

Data kaydedicisi diye tanımlanan DX, genellikle
akümülatöre yardımcı olan ve bütün işlemlerde
bir tampon gibi davranan kaydedicidir.

I/O işlemlerinde port numarasını üzerinde
tutarken, büyük değerlikli sayıların (worddoubleword) çarpılması ve bölünmesinde AX ile
birlikte kullanılır.
30
İŞARETÇİ VE İNDİS KAYDEDİCİLERİ
Mikroişlemcili Sistemlerde bellekteki ara
adresleri gösteren kaydedicilere
İŞARETÇİ (POİNTER ) DENİR.
 KOD segmentte bulunan bir komutun
yerinin belirlenmesinde CS kaydedicisine
ofset değerini bulmada komut kaydedicisi
(IP) yardımcı olur.
 CS:IP çifti, kod segmentteki bir sonraki
işlenecek komutun kodunu gösterir.

31

Ayrıca yığın bölgesindeki bir verinin yerinin
belirlenmesinde yığın kaydedicisi ile birlikte ofset
değeri olarak SP ve BP yardımcı olur. SS:SP
çifti, yığındaki boş bir alanı veya daha önceden
atılmış bir veri yerinin gösterilmesinde kullanılır.

Source ındex(SI; Kaynak İndisçisi) ve
Destination Index (DI) kaydedicileri adres
indislemesinde kullanılır.

Bu indis kaydedicileri özellikle string işlemlerinde
fazlaca kullanılır.
32
BAYRAK KAYDEDİCİSİ




Bu kaydedici, bütün mikro işlemcilerde olduğu gibi tipine
bağlı olarak 8,16,32 bit olmak üzere bir işlemin sonunda
sonucun ne olduğunu kaydedici bitlerine yansıtan bir
bellek hücresini oluşturur.
BAYRAK denmesinin nedeni, karar vermeye dayalı
komutların yürütülmesinde sonuca göre daha sonra ne
yapılacağını bit değişimiyle bu kaydedicinin 1 bitlik
hücrelerine yansıtmasıdır.
Kaydedicideki bitlerin mantıksal 1 olması bayrak kalktı, 0
olması bayrak indi anlamındadır.
Karşılaştırma ve aritmetik komutların çoğu bayraklara
etki eder.
33
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NT IOPL O D I T S Z
P
A
C
Durum Bayrakları
C
:Carry (elde)
P
:Parity(Eşlik)
A
:Auxiliary carry (ara elde)
Z
:Zero(sıfır)
S
:Sign(İşaret)
O
:Overflow(Taşma)
Kontrol Bayrakları
T
: Trap (tuzak biti)
I
:Interrupt Enable( Kesme Yetkisi)
D
: Direction(yön Biti)
Özel alan Bitleri
IOPL :I/O privilige Level (G/Ç Muafiyet Düzeyi)
NT
: Nested Task (İç içe görevler)
34
Download