bm-311 bilggyisayar mimarisi · 2018-09-26 · risc ve superscalar işlemciler fixed-length...

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

Upload: others

Post on 27-May-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

1

BM-311 Bilgisayar Mimarisig y

Hazırlayan: M.Ali AkcayolGazi Üniversitesi

Bilgisayar Mühendisliği Bölümü

Konular

Adresleme modlarıPentium ve PowerPC adresleme modlarıKomut formatları

Page 2: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

2

Adresleme modları

Komutlar, işlem yapmak için gerekli operandları farklı adresleme modlarıyla belirler.Adresleme modlarını belirlerken adres aralığı, adresleme esnekliği, memory adres sayısı ve adres hesaplama karmaşıklığı arasında seçim yapılır.Temel adresleme modları:• Immediate• Direct• Indirect• Indirect• Register• Register indirect• Displacement• Stack

Adresleme modları

Page 3: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

3

Adresleme modları

Kullanılan notasyonlar aşağıda verilmiştir.A = komuttaki adres alanını içeriğiR = komuttaki register’ı gösteren adres alanının içeriği

Adresleme modları

EA = komuttaki operandla referans gösterilen efektif adres(X) = hafızadaki X alanının veya X register’ının içeriği

Temel adresleme modları aşağıdaki gibi gösterilebilir.

Page 4: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

4

Immediate (hemen) adreslemeEn basit adresleme modudur. Operand doğrudan komut içinde verilir.

Adresleme modları

Operand = AGenellikle sabitlerde ve değişkenlerin başlangıç değerlerinin verilmesinde kullanılır.Sayılar 2 tümleyen aritmetiğinde ifade edilir.

Avantaj / dezavantajAvantaj / dezavantajEn büyük avantajı hafıza erişimi gerektirmemesidir.Dezavantajı ise sayının boyutu ayrılan bit sayısına bağlıdır. Çoğu komutta az sayıda bit kullanılır.

Direct (doğrudan) adreslemeKomut içindeki adres alanı operandın efektif adresine sahiptir.

EA = A

Adresleme modları

İlk jenerasyon bilgisayarlarda yaygın kullanılmıştır. Günümüzdeki modern mikroişlemcilerde yaygın kullanılmamaktadır.Bir hafıza erişimi gerektirir ve fazladan hesaplama gerektirmez.

A t j / d t jAvantaj / dezavantajEn büyük avantajı fazladan adres hesaplama gerektirmemesidir.Dezavantajı ise sınırlı adresleme kapasitesine sahip olmasıdır.

Page 5: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

5

Indirect (dolaylı) adreslemeKomut içindeki adres alanı hafızada bir adresi gösteririr. Operandın efektif adresi bu adresten alınır.

Adresleme modları

EA = (A)Adreslenebilir aralık 2N olur (N = word length). Doğrudan komutla adreslenebilir alan 2K olur (K = komuttaki bit sayısıdır).Bazı işlemciler kaskad çok seviyeli dolaylı adresleme kullanır.

EA = ( (A) )EA = (…(A)…)

Avantaj / dezavantajEn büyük avantajı daha fazla adreslenebilir alan oluşturmasıdır.Dezavantajı iki kez hafıza erişimi gerektirmesidir.

Register adreslemeDirect adreslemeye benzer. Hafıza yerine register adresler.

EA = R

Adresleme modları

Hafıza erişimi ve adres hesaplama yapılmadığı için çok hızlıdır.

Avantaj / dezavantajAvantajı register sayısı az olduğu için adresleme için komuttaki bit sayısının az olmasıdır.H f i i i ktiHafıza erişimi gerektirmez.Dezavantajı adres aralığının az olmasıdır.

Page 6: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

6

Register indirect adreslemeIndirect adreslemeye benzer.

EA = (R)

Adresleme modları

Hafıza erişimi gerektirir. Adres aralığı register adreslemeden fazladır.

Avantaj / dezavantajAvantajı register sayısı az olduğu için adresleme için komuttaki bit sayısının az olmasıdırbit sayısının az olmasıdır.Dezavantajı hafıza erişimi gerektirmesidir.

Displacement adreslemeDirect adresleme ve register indirect adreslemenin güçlü yönlerini birleştirir.

Adresleme modları

EA = A + (R) Displacement adresleme en az iki operand gerektirir. Birisi dolaylı olabilir. Örnekte A direct adresleme ile göstrilmiştir. Diğer adres opcode ile dolaylı gösterilebilir.Aşağıdaki 3 displacement adresleme modu yaygın kullanılır:Aşağıdaki 3 displacement adresleme modu yaygın kullanılır:• Relative addressing• Base-register addressing• Indexing

Page 7: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

7

Displacement adresleme – Relative addresingPC değerine göre göreceli adresleme yapar.Hafıza adreslemeler genellikle yakın yerlere yapılıyorsa kullanılır.

Adresleme modları

Adres alanı iki tümleyen şeklinde gösterilir.

Displacement adresleme – Base-register addresingAdreslenen register hafızada bir adresi gösterir, komut içindeki adres oraya göre yer değiştirmeyi belirler.R i t d ğ d d l l ö t il biliRegister doğrudan veya dolaylı gösterilebilir.Adreslenebilecek register sayısı N ise ve komut içindeki adres bit sayısı K ise, N farklı bölgede 2K boyutunda alan adreslenebilir.

Displacement adresleme – IndexingBase-register adreslemenin tersi çalışmaya sahiptir.Komut içindeki adres hafızada bir adresi gösterir, register oraya

Adresleme modları

göre yer değiştirmeyi belirler.Adres alanı iki tümleyen şeklinde gösterilir.Register boyutu, komut içindeki adres alanından daha büyüktür.Tekrarlı işlemlerde performansı artırır. Sadece register değeri değiştirilerek adresleme yapılabilir.

EA = A + (R)EA = A + (R)(R) ← (R) + 1

Page 8: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

8

Stack adreslemeStack önceden ayrılmış belirli bir bloktur.Stack üzerinde en üstteki eleman bir işaretçi (pointer) ile

Adresleme modları

gösterilir.Stack üzerinde adresleme register indirect adreslemedir.Genellikle procedure call/return işlemlerinde ve geçici konfigürasyon saklamak için kullanılır.

Konular

Adresleme modlarıPentium ve PowerPC adresleme modlarıKomut formatları

Page 9: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

9

Pentium adresleme modlarıPentium işlemcilerde adresleme birimi tarafından effective veya virtual adres denilen segmentin offset adresi elde dili

Pentium ve PowerPC adresleme modları

edilir.Segmentin başlangıç adresi (segment register’lar ile belirtilir) ile efektif adresin toplamıyla linear adres elde edilir.Segment register’ları descriptor register’lardan birisini seçer.Descriptor register’lar segment base adresini, limitini ve erişim haklarını belirler.

Pentium adresleme modları

Pentium ve PowerPC adresleme modları

Page 10: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

10

Pentium adresleme modları - devamPentium işlemcilerde çok sayıda adresleme modu vardır.

Pentium ve PowerPC adresleme modları

Pentium adresleme modları - devamImmediate mode: Operand komut içinde verilir (byte, word, doubleword).

Pentium ve PowerPC adresleme modları

Register operand mode: Operand register ile verilir (EAX, EBX, ...).Displacement mode: Operand’ın offset adresi komut içinde verilir (8, 16 veya 32 bit olabilir).Base mode: Offset adres bir base register ile verilir (8, 16 veya 32 bit olabilir).)Base with displacement mode: Komut içinde base register’a eklenecek bir displacement değeri verilir.

Page 11: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

11

PowerPC adresleme modlarıRISC mimarisinin karakteristik özelliklerini taşıyan PowerPC i l il P i i l il

Pentium ve PowerPC adresleme modları

işlemciler Pentium işlemcilere göre basit ve az sayıda adresleme moduna sahiptir.

PowerPC adresleme modları - load/store mimarisi Hafıza ile register’lar arasında veri aktarma işlemleri için indirect ve indirect indexed adresleme modları kullanılır.

Pentium ve PowerPC adresleme modları

Page 12: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

12

PowerPC adresleme modları - load/store mimarisi - devamIndirect adresleme

Komut 16 bit displacement değerine sahiptir ve base register’a

Pentium ve PowerPC adresleme modları

eklenir.Dizi, döngü işlemleri gibi tekrarlı işlemler için önceki adres update edilebilmektedir.

Indirect indexed adreslemeBir index register ile bir base register toplanır.Dizi döngü işlemleri gibi tekrarlı işlemler için önceki adresDizi, döngü işlemleri gibi tekrarlı işlemler için önceki adres update edilebilmektedir.

PowerPC adresleme modları – devamBranch adresleme

3 branch adresleme moduna sahiptir: absolute, relative ve

Pentium ve PowerPC adresleme modları

indirect adresleme. Absolute: Şartsız atlama komutlarında kullanılır. Sonraki komutun efektif adresi komut içinde verilen 24-bit değerle bulunur. 24-bit değer 32-bit’e sign extend edilir.Relative: Şartsız atlamalar için 24-bit değer, şartlı atlamalar için 14-bit değer önce entend edilir sonra PC değerine eklenir.ğ ğIndirect: Sonraki komutun efektif adresi bir count register’ı ile belirlenir. Count register döngü sayısını saklayabilir.

Page 13: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

13

PowerPC adresleme modları – devamAritmetik komutlar

Integer aritmetik işlemlerde tüm operandlar register’larda veya

Pentium ve PowerPC adresleme modları

komutun içinde immediate olarak saklanır. Floating-point aritmetik işlemlerde tüm operandlar floating-point register’larda saklanır ve bu durumda sadece register adresleme yapılır.

Konular

Adresleme modlarıPentium ve PowerPC adresleme modlarıKomut formatları

Page 14: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

14

Komut formatları, komutların bit dizilimini ve her alanın işlevini gösterir. Bir komut formatı, opcode bulundurmak zorundadır, Doğrudan

d l l bi d f l d b l d bili

Komut formatları

veya dolaylı birden fazla operand bulundurabilir.Komut formatı, operandlar içib doğrudan veya dolaylı adresleme modları belirler.

Komut uzunluğuKomut uzunluğu hafıza boyutu hafıza organizasyonu busKomut uzunluğu, hafıza boyutu, hafıza organizasyonu, bus yapısı, işlemci karmaşıklığı ve işlemci hızını etkiler.Komut uzunluğu arttıkça programcı için daha esnek hale gelir.Komut uzunluğu arttıkça operand sayısı ve adresleme modu sayısı artar.

Bitlerin atanmasıKomut içindeki alanların işlevlerinin belirlenmesidir.Sabit genişlikteki komutlar için opcode boyutu arttıkça

Komut formatları

operandlar için ayrılan yer azalacaktır.Aşağıdaki faktörler bitlerin atanması ve komut uzunluğunu belirlerken gözönüne alınır:

Adresleme modu sayısı: Adresleme modu dolaylı veya doğrudan belirlenebilir. Doğrudan belirlemede bir veya birkaç bit ayrılması gerekir.Operand sayısı: Günümüzde iki operandlı komutlar yaygın kullanılır.Register / hafıza seçimi: Tek ve dolaylı adreslenen register kullanılabilir (AC). Birden fazla register kullanımında birkaç bitin ayrılması gerekir. Günümüzde 8-32 arası user visible register kullanılmaktadır.Adres aralığı: Adres aralığı komut içinde ayrılan bitlerin sayısıyla ilgilidir.,

Orthogonality: Komutun bileşenleri opcode’dan bağımsızdır.

Page 15: BM-311 Bilggyisayar Mimarisi · 2018-09-26 · RISC ve superscalar işlemciler fixed-length komutları kullanır. Komut formatları Komut uzunluklar ının aynı olması decode işlemini

15

Farklı uzunlukta (variable-length) komutlar Komut boyutlarının farklı olması işlemci karmaşıklığını artırır.RISC ve superscalar işlemciler fixed-length komutları kullanır.

Komut formatları

Komut uzunluklarının aynı olması decode işlemini kolaylaştırır.Komut uzunluklarının ve operandların aynı uzunlukta olması operand fetch ile decode işleminin aynı anda yapılmasına olanak sağlar.

Ödev

Pentium ve PowerPC mikroişlemcilerin komut yapıları ve komut kümelerini araştırınız. Birbirlerine göre avantaj ve dezavantajlarını detaylı karşılaştırınız.