Von Neumann Mimarisinin Bileenleri 1 Bellek 2 Merkezi lem Birimi 3 Giri/Çk Birimleri Yazmaçlar letiim Yollar Bileenler arasndaki iletiim ise iletiim yollar ad verilen kanallar yardm ile gerçekleir: 1 Veri Yollar 2 Adres Yollar 3 Kontrol Yollar
LETM YOLLARI Bileenler arasndaki iletiim ise iletiim yollar ad verilen kanallar yardm ile gerçekleir: 1 Veri Yollar 2 Adres Yollar 3 Kontrol Yollar
letiim yollarnda veriler tanr ve veriler 0 1 eklindedir. letiim hz Hertz olarak birimletirilmitir. Hertz, saniye bana düen titreim saysnn birimidir ve bilgi ilem sürecinde ise bir titreim annda kaç komut ilenecek demektir. Veri iletiim hz (Hertz) ile veri aktarm hz (bit/s) kartrlmamaldr. letiim yollar anakart üzerinde genellikle bakr elementinden oluan kanallar kastedilmektedir. lk mikro ilemcilerde bu kanallar 8 bitlik idi. Daha sonra 16 bitlik iletiim yollar üretildi. Günümüzde ise 32 bitlik iletiim yollar kullanlmaktadr.
1 Veri Yolu (Data Bus) Bu veri yolu, ilemciden belle2e veya G/Ç birimlerine veri göndermede ya da bu birimlerden ilemciye veri tanmnda kullanlr. Bu nedenle iki yönlüdür. Veri yollar genel olarak yazmaçlar ile ayn büyüklüktedir. çsel Veri Yollar: Merkezi ilem biriminin bileenleri (AMB, KB, yazmaçlar) arasndaki iletiimde kullanlr. Dsal Veri Yollar: Merkezi ilem birimi ile bellek ya da G/Ç birimleri arasndaki veri iletiiminde kullanlr.
2 Adres Yolu (Address Bus) lenmi bilginin saklanaca2 konumu tayan kanallara Adres Yolu ad verilir. Tek yönlüdür. Program sayacna ba2ldr. 3 Kontrol Yolu (Control Bus) Birimlerin düzenli çalmasn sa2layan özel iletileri tayan kanallardr. Bu iletiler srasyla; kesme iste2i (ilemciye müdahale yönündedir), yön iste2i (bellekten ilemciye ya da ilemciden belle2e yön istemi), zamanlama sinyalleri.
YAZMAÇLAR Yazmaçlar: Bilgilerin ya da verilerin çok ksa süre için tutulduklar yerlerdir. Ana bellekten fark ise, * çok ksa süreli bilgi saklamalar, * belle2e göre çok daha hzl çalrlar, * bir birime ba2l olarak çalmalar (AMB yazmaçlar, kontrol birimi yazmaçlar, bellek yazmaçlar gibi) * adreslemelerinin olmamas. Yazmaçlar, AMB yazmaçlar, kontrol birimi yazmaçlar ve bellek yazmaçlar ibi snflanabilece2i gibi, Segment yazmaçlar ve Genel Amaçl Yazmaçlar olarakta snflanmaktadr. Bu konuya ileride geri dönülecektir.
BELLEK Operatör ve operandlarn geçici süreler olarak sakland2 yerlere rasgele eriimli bellek (Random Access Memory) ad verilir. Butür belleklerden hem okuma hem de yazma ilemi yaplabilir. Yalnzca okunabilen bellek türleri (ROM) ise kartlarn üretici firmalar tarafndan programlanrlar. Bunlarn yansra yazmaçlar, tampon bellek gibi küçük bellek türleri de vardr. Von Neumann mimarisinde söz konusu olan genellikle RAM bellektir.
Bellek, iletilecek olan komutu ve operand içeren ya da saklayan bilgisayar birimidir. Bir byte lk hücrelerden oluan bir boyutlu dizi görünümündedir. RAM (Random Access Memory) de, hücre adreslerinden dolay do2rudan bellek hücrelerine erimek olanakldr. Bellek adresleri tamsaylardan olumaktadr. Ancak bu durumda u ekilde bir sorun ortaya çkmaktadr. Tam saylar 2 byte lk bir veri uzunlu2una sahiptirler. Bir di2er ifade ile maksimum 65535 de2erini alabilir. Bu nedenle bellekte 65536 adet byte adreslenebilir. 2 10 =1024 B 1 KB 2 20 =1 048 576 B 1MB 2 30 =1 073 741 824 B 1GB
Bu durumda nasl 2 20 =1 MB lk bir bellek nasl adreslenecek? Bir di2er sorun, veri (veri yollar) ve adres (adres yollar) transferleri maksimum 16 bitlik verilerle olanakldr. Bu durumda 20 bitlik bellek adresi nasl tanacak?
Desimal Binary Heksadesimal 0 0000 0000 0000 0000 0000 00000 1 0000 0000 0000 0000 0001 00001 2 0000 0000 0000 0000 0000 00002 3 0000 0000 0000 0000 0000 00003 : : : : 10 0000 0000 0000 0000 1010 0000A 11 0000 0000 0000 0000 1011 0000B 12 0000 0000 0000 0000 1100 0000C 13 0000 0000 0000 0000 1101 0000D 14 0000 0000 0000 0000 1110 0000E 15 0000 0000 0000 0000 1111 0000F 16 0000 0000 0000 0001 0000 00010
Desimal Binary Heksadesimal 0 0000 0000 0000 0000 0000 00000 16 0000 0000 0000 0001 0000 00010 32 0000 0000 0000 0010 0000 00020 48 0000 0000 0000 0011 0000 00030 64 0000 0000 0000 0100 0000 00040 80 0000 0000 0000 0101 0000 00050 96 0000 0000 0000 0110 0000 00060 16 Bit 4 Bit
Segment ile offset yaklam ile bütün bellek adreslenebilir. Bunun için bellek 65536 byte büyüklü2ünde bloklara ayrlr, çünkü elimizde 65536 adet adres var. Her bir blok a Segment ad verilir. Segment Offset Segmentler kendi içerisinde 16 bitlik iaretsiz tam saylar ile yeniden adreslenebilir. Bu durumda segment içinde yeralan bir bellek bölgesinin adresini gösteren 16 bitlik iaretsiz tamsayya Offset denilir.
Di2er bir ifade ile bellek bölgelerine segment, belirli bir bellek bölgesi içerisindeki bellek hücresini gösteren adrese ise offset ad verilir. Kullanm kolayl2 nedeniyle bellek adresleri onaltlk say sistemi (heksadesimal) ile gösterilir. Segment ve offset yaps ile parçalanm bellek adresleri Segment : Offset Biçiminde gösterilir. 1D2E:0120 E2er bellekteki bir operand için adresleme: DS:BX E2er bellekteki bir operatör için adresleme: CS:IP Jeklinde yaplr. Debug komutu ile olas bellek adreslerine bakalm:
CS DS SS ES Kod Segment Data Segment Y2t Segment Extra Segment Bellek Alanlar ve Segment Yazmaçlar
Belle2in, operatörleri (komutlar) saklad2 bölümüne kod segment (Code Segment) ad verilir ve belle2in bu bölgesinin balangç adresi CS yazmacnda tutulur. -CS:IP- Ayn ekilde, operandlarn sakland2 bölüme ise veri segment (Data Segment) ad verilir. Bu bellek bölgesinin balangç adresi DS yazmacnda tutulur. -DS:BX-, -DS:SI- Y2t Segmentleri (Stack Segment), verilerin geçici olarak bellekte tutuldu2u bölgeyi ifade eder. SS yazmac bu bölgenin balangç adresini belirtir. -SS:SP-, -SS:BP- De2iik amaçlarla kullanlan (örne2in string ilemleri) bellek bölgesine ise Extra Segment ad verilir ve adresi ES yazmacnda tutulur. -ES:DI-
AX BX CX DX SI DI SP BP Akümülatör Taban Adres ndisçisi Sayaç Veri Kaynak ndisçisi Hedef ndisçisi Y2t aretçisi Y2t Taban aretçisi IP FLAGS Komut aretçisi Bayraklar
AX: AH-AL EAX AX: Akümülatör, genellikle çarpma, bölme, giri ve çk ilemlerinde kullanlr. En temel yazmaçtr. BX: Base Address Register; bellek içindeki verilerin adreslenmesinde kullanlr. CX: Counter Register; Daha çok dizinlerdeki indisi ve de döngülerdeki sayac tutar. DX: Data Register; Genel amac AX e yardmc olmaktr. Büyük hacimli saylarda, ya da AX in kulland2 G/Ç ilemlerindeki port adresini tutar.
aretçi ve ndis Yazmaçlar, genellikle offsetleri gösterir. IP: Instruction Pointer; Bellekte yer alan komut, kod segmenti içerisinde herhangi bir offset adresindedir. Kod segmentini CS, komutun offset adresini ise IP gösterir ve CS:IP eklinde ifade edilir. SP: Stack Pointer; SS:SP ekline kullanlr ve o esnada bellekteki y2t segmentine ilikin offset adresini tar. Base Pointer (BP) yazmac da ayn ilemi görür. SI ve DI: Source index, destination index; DS:SI ve ES:DI olarak kullanlrlar. Flags: Bayraklar ile belirli durumlar bildiren yazmaçtr. lem esnasnda ya da ilem sonucunda durum bilgileri tar.
Bayraklar: N V +5V B D I Z C Negatif Tama Dur Desimal Kesme Zero Elde