8.8 A Simple Computer Architecture

Slides:



Advertisements
Benzer bir sunumlar
KAFA Open-Source/Open-Implementation, 32-bit CPU
Advertisements

X86 Assembly Programlama Dilinde
ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
BİLGİSAYAR, DONANIM VE YAZILIM KAVRAMLARI
SelCPU Temmuz 2008 Bilg.Bil.Müh.Selçuk BAŞAK SelSistem Bilgi ve İletişim Teknolojileri
CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı
CPU Tasarım – 3 Single – Cycle CPU Controller Tasarımı
MİMARİ ESASLAR Bir bilgisayarın komut kümesi, programcının makineyi programlarken kullanabileceği ilkel emirleri veya makine komutlarının tamamının oluşturduğu.
8088 Kesme Operasyonu.
Buyruk Süreci Fetch,Decode, adres oku, buyruk çalıştır
BİSA CPU   Proje Danışmanı Yrd.Doç.Dr.Aydoğan Savran   Proje Ekibi Arş.Gör.Özkan Akın.
Agah Burak DEMİRKAN Ahmet ÇOBAN Ahmet SÖNMEZ Uğurhan KUTBAY
BUYRUK İşlem kodu İşlemci yazacı veri
PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI
Marmara Ünv. Bilgisayar Mühendisliği Bölümü
Windows 7 kurulum için en az 512 MB ram belleğe ihtiyaç duyuyor
Cpu Nasıl Çalışır?. -A- 2 tuşuna basılması MİB’ini uyarır ve Komut Cache’inde (Instruction Cache) bir şey olmadığından yeni veri üzerinde ilgili komutların.
Register ve Türleri Nihal GÜNGÖR.
Intel P6 Architecture Mustafa Çayır.
Temel Bilgisayar Yapısı ve Devreleri
Logical Design Farid Rajabli.
Bilgisayar Organizasyonu
Mikroişlemciler ve Assembler Programlama
Mikroişlemciler ve Mikrobilgisayarlar
DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ
Chapter 5 Overview The principles of pipelining
Ece Olcay Güneş & S. Berna Örs
Soru 4.6 Bir sayısal bilgisayar sisteminde seçicilerle oluşturulmuş 32 bitlik 16 yazaçlı veri yolu sistemi var. Her seçici için kaç seçim girişi kullanılır?
Bilgisayar Mimarisi ve Organizasyonu
Chapter 4 Topics The Design Process A 1-bus Microarchitecture for SRC
Chapter 2: Machines, Machine Languages, and Digital Logic
Temel Bilgisayar Yapısı ve Devreleri
LD/LDI LD X0 LDI X0 X0 Y0 X0 Y1 Temel Komutlar
8086 Programlama – Kısım III Prosedürler
CACHE MEMORY Ersin ERSOY
Programlama Fonksyionları
Dijital Çıkış Mantığı.
COSTUMES KILIKLAR (KOSTÜMLER)
BİL 322 Programlanabilir Sayısal Sistemler LCD ile Uygulama Geliştirme.
OTO
BİLGİSAYAR MİMARİLERİ 1.Hafta: Bilgisayar Mimarisine Giriş
BİLGİSAYAR MİMARİLERİ 2.Hafta: Bilgisayar Bileşenleri
Karşılaştırıcı ve Aritmetik İşlem Devreleri
BİLGİSAYAR MİMARİLERİ 7.Hafta: Çoklu-Çevrim İşlemci
ENDÜSTRİYEL GÖMÜLÜ BİLGİSAYAR SİSTEMLERİ
BİLGİSAYAR MİMARİLERİ 11.Hafta: Pipeline Sorunları
İŞLETİM SİSTEMLERİ ISE 206 DR. TUĞRUL TAŞCI. Dersin Amacı Bilgisayar sistemlerinin temel organizasyonunu tanımak İşletim sistemlerinin ana bileşenlerini.
DaVinci TM Platformunda Video Kodlama. Neden DaVinci TM ? ? ? DaVinci TM platformu özellikle sayısal video kodlama ve çözme gibi ağır hesapsal yüklerin.
Giri ş 1 Mikroişlemciler. İçerik 2 Tarihi geli ş im Tanımlar Mikroi ş lemci tabanlı sistemler Sayı sistemleri.
Chapter 4 — The Processor — 1 Lecture 7 Pipelining.
Mikrobilgisayar Tasarım Yapıları
CPU 1-Bit AMAÇ Bu sunumda 4 yazıcı (register) üzerinde RAM hafızada kayıtlı komut kodlarının belirlediği temel işlemleri yürüten 1 Bit’lik bir CPU tasarımını.
PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI
8086 Programlama – Kısım III Prosedürler
Mikroişlemciler Adresleme Modları.
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemciler Giriş.
Cpu Nasıl Çalışır?.
Mikroişlemcili Sistem Tasarımı
Bilgisayar Mühendisliğine Giriş
Bilgisayar Sisteminin Anatomisi
Döngüler ve Shift Register
Prof. Dr. Eşref ADALI Doç. Dr. Şule Gündüz Öğüdücü Sürüm-B
Tolga Ayav, K.Atilla Toker İzmir Yüksek Teknoloji Ensitütüsü
Bilgisayar Mühendisliğine Giriş
Bilgisayar Mühendisliğine Giriş
Mikrobilgisayar Tasarım Yapıları
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

8.8 A Simple Computer Architecture Program Instruction Opcode (Operation code) 2m tane opcode için m bit kullanmak yeterli. Explicitly instruction; hedef registeri açık olarak komutta belirtilir. R1 R2+R3 Implicitly instruction; hedef dolaylı olarak belirtilir; R1  R1+1 (INC R1)

8.8 A Simple Computer Architecture Fields Instruction Format Immediate operand “Jump” ve “branch” ta işaretli sayılar kullanılır! AD=AD(left) || AD(right) 6-bit işaretli binary address offset (± 32 max.) Örn. PC=55, branch adresi 35 olsun. AD=35-55= -20 olmalı. AD=101100 (6-bit gösterim) = (-20) desimal AD=1111111111101100 (16-bit signed extension gösterim) = (-20) desimal

8.8 A Simple Computer Architecture In many computers, the word length is from 32 to 64 bits, and the number of registers is often larger, so the register fields must contain more bits. Recognize the difference between a computer operation and a hardware microoperation.

8.8 A Simple Computer Architecture

8.9 Single Cycle Hardwired Control Fetches and executes an instruction in a single clock cycle Extend Zerofill

8.9 Single Cycle Hardwired Control

8.9 Single Cycle Hardwired Control Jump ve branch instructionlarda; FS=00000 olmalı! Böylece Bus A, ALU’dan geçiyor ve bayraklar (C,Z,V,N) kuruluyor. Bu bayraklara göre branch mümkün hale geliyor.

8.9 Single Cycle Hardwired Control zf: zero fill se: signed extention

8.9 Single Cycle Hardwired Control 83 – (2 + 3) işlemini yaptıralım. R[R3]=248 M[248]=2 M[249]=83 olsun ve sonuç M[250]’ye yazılsın. ; R3=248 LD R1,R3 ; R1=2 ADI R1,R1,3 ; R1=2+3=5 NOT R1,R1 ; R1=R1’ INC R1,R1 ; R1=-5 INC R3,R3 ; R3=249 LD R2,R3 ; R2=83 ADD R2,R2,R1 ; R2=78 INC R3,R3 ; R3=250 ST R3,R2 ; M[250]=78

8.9 Single Cycle Hardwired Control Max clock freq.= 1/17ns = 58.8MHz Single cycle computer Hardwired and Microprogrammed control , they require multiple cycle, can not be implemented

8.10 Multiple-Cycle Hardwired Control

8.10 Multiple-Cycle Hardwired Control Bir instruction birden fazla clock kullanılarak işleneceğinden, bir datanın daha sonraki clocklarda da kullanılabilir kalması için geçici bir registerde saklanması ihtiyacı doğar. Bu nedenle temporary register (R8) kullanılır, ve kullanıcı bu registeri göremez. Buna uygun olarak register file’da değişiklik yapılmıştır. TD, TA ve TB bitleri sırasıyla DR, SA ve SB adres girişlerinin en soluna eklenerek bu register sembolik olarak belirtilmiştir. Örn. TA=0 ise  AA=TA||SA=0||SA  8 registerden (R0... R7) birini işaret eder. TA=1 ise  AA=TA||SA=1||SA  R8’i işaret eder.

8.10 Multiple-Cycle Hardwired Control Yine aynı sebeple instruction’ın da bir kayıtçıda (register) tutulması ihtiyacı doğar. Çünkü program ve data memory aynı fiziksel bellektedir. Bu register IR, yani Instruction registerdir. IR’ye yükleme sadece IL (Instruction load) lojik 1 olduğu zaman gerçekleşmektedir. IL , sadece memory’den instruction fetch edildiği zaman aktif olur! Instruction fetch: “program memory” den PC’nin gösterdiği instruction alınıp, IR’ye yazılması işlemine denir

8.10 Multiple-Cycle Hardwired Control PC: Program Counter Eğer PI=1 ise; PC instruction fetch edildiğinde bir artar. Eğer PL=1 ise; PCPC+se(DR||SB) ile yüklenir. Bu jump veya branch instructionlarda olur. Böylece single cycle computerdeki branch kontrol elimine edilmektedir!!

8.10 Multiple-Cycle Hardwired Control Instruction format ile microinstruction format aynı değil!! Instruction format daha az bit sayısına sahip. DR, SA ve SB direkt olarak kullanılıyor. Geriye kalan 7-bit OPCODE’un en soluna “0” yerleştirilerek 8-bit yapılıyor ve control memory’yi adreslemekte kullanılıyor.

8.10 Multiple-Cycle Hardwired Control Microprogram kontrol “Control Memory” deki instructionlar CAR ile adreslenir. “binary multiplier” deki kontrol ile benzeşiyor ancak biraz daha karmaşık! CAR’ın “increment” veya “load” olması MUX S tarafından seçiliyor. MUX S çıkışı 0 ise CAR CAR+1, değilse MUX C çıkışındaki değer ile yükleniyor. MUX S için 3-bitlik MS girişi var. Örn. MS=000 ise MUX S çıkışı 0 ve INC CAR MS=010 ise MUX S çıkışı C C=1 ise LOAD C=0 ise INC

DATAPATH CONTROL SIGNALS Next Address

SEQUENCE CONTROL SIGNALS Next Address

MICROPROGRAM DESIGN OPCODE 7-bit. (27=128 adet farklı komut olabilir) CAR Address OPCODE 7-bit. (27=128 adet farklı komut olabilir) 1. in IF state: IR  M[PC], PC PC+1 2. in EX0 state: CAR  0||IR (soluna “0” eklenerek CAR’a yüklenir. 3. in ADI state: Add immediate. 4. IF state’ine dönüş.

MICROPROGRAM DESIGN

MICROPROGRAM DESIGN

MICROPROGRAM DESIGN Her instruction’ın fetch ve execute edilmesi 3 clock cycle sürüyor Single cycle computerde 1 clock sürüyordu! İşlemler parçalandığı için gecikme süreleri kısaldı ancak eklenen flip flopların (CAR, IR) setup sürelerinin olması toplamda sürenin biraz uzamasına bile neden olabiliyor. ÖYLEYSE NEDEN MULTICYCLE!!? PROGRAM VE DATA İÇİN TEK BİR MEMORY KULLANMAKTAN BAŞKA BİR AVANTAJI YOK MU?

MICROPROGRAM DESIGN Indirect addressing R[DR]  M[M[R[SA]]] Aynı işlemi 2 adet LD komutu ile yapabilirdik, ancak 6 clock gerekirdi. Böyle 4 clock gerekiyor.

“Indirect addressing” nedir? ÖRN. R[R4]M[M[R[R0]]] İşlem sonunda R[R4]=0x00FC olur.

Right-Shift Multiple Instruction SRM1’de R8 yüklenirken ALU’dan geçtiği için aynı zamanda Z (zero flag) da kurulur! R8 (yani, IR[2:0] sıfır ise işlem biter ve sıradaki komuta geçilir (IF). Farklı ise R[SA] bir sağa kaydırılıp R[DR]’ye yüklenir ve R8 bir azaltılıp test edilir. Bu işlemler R8 sıfır oluncaya kadar tekrarlanır. Bu instruction’ı single cycle computer yapısında yapmak mümkün değil. s defa kaydırmak için 2s+4 clock gerekli. S tane “rl” komutu için 3s gerekli. Öyleyse; (3s)-(2s+4)= s-4 clock az kullanılıyor. (s>4 ise tek bir komut kullanmak karlı!!) bit kaydırma sayısı 15, 31 gibi büyük değerlere ulaşınca avantaj ortaya çıkıyor Jump ve bracnh komutları içinde aynı yöntem geçerli!!

HARDWIRED ALTERNATIVE CAR’ı IR ile yüklemiyoruz. İlk 6 instruction 2 clock cycle’da bitiyor. Son instruction “LRI” 3 clock.

HARDWIRED ALTERNATIVE Counter resetlenince çıkışı “00” oluyor ve IF state seçiliyor. Bu basit bir örnek. Sadece 7 instruction ve 3 state var. Counter birer artarak state seçiyor. Sadece 7 instruction olduğu için IR’nin 9, 10 ve 11 bitleri decode ediliyor!! Control logic, decoder çıkışlarına göre kontrol sinyallerini üretiyor.

HARDWIRED ALTERNATIVE IF state kodu “00”; öyleyse counter resetlenince IF state’ine gidiliyor! İlk 6 instructionda EX0’dan sonra , son instructionda ise EX1’den sonra IF’ye geçiliyor. Öyleyse; CR=EX0.LRI+EX1 RW, yani register write, sadece ST’de kullanılmıyor. Öyleyse; RW=EX0.ST Benzer şekilde diğer kontrol çıkışları da belirlenebilir.

MICROPROGRAMMED CONTROL Mikroprogramlı kontrolün (Microprogrammed control) ün bir avantajı; hardware yapısının bir defa oluşturulduktan sonra, başka hiçbir ek bağlantı ve elemana ihtiyaç duymadan, mikrokomutlarla (microinstruction) istenilen program komutlarının (instruction) elde edilebilmesidir. Sadece kontrol memory’nin değiştirilmesi ile işlemler farklılaştırılabilmektedir. İkinci avantajı, çok kompleks komutları gerçekleştiebilmek için daha büyük control belleği kullanmak yeterli iken, hardwired kontrolde , donanım oldukça karmaşıklaşabilir ve maliyetler oldukça artar. Öte yandan eğer komutlar çok basit ise mikroprogram kullanmak lüks olabilir, hardwired kontrol daha ucuz olabilir.

Decode and operand fetch PIPELINED CONTROL Pipeline kontrolde; komutları yütürmek için gerekli işlemler belirli aşamalara ayrılarak, zamanı bunlar arasında paylaştırmak esastır. Bu işlem bir fabrikanın üretim hattına benzetilebilir. Burada her kişi işin belirli bir aşamasını yapar ve sonunda aynı ürün daha kısa bir sürede üretilebilir. Decode and operand fetch Execute Instruction Fetch Writeback

Pipelined Control 5ns 5ns 5ns 5ns Toplam 17ns 58.8MHz Toplam 20ns 17ns/komut Toplam 20ns 200MHz 5ns/komut

Pipelined Control Gerekli süre 10 clock, yani 10x5ns=50 ns Örnek: 1 LDI R1,1 2 LDI R2,2 3 LDI R3,3 4 LDI R4,4 5 LDI R5,5 6 LDI R6,6 7 LDI R7,7 Gerekli süre 10 clock, yani 10x5ns=50 ns Single cycle computer 7 clock, 7x17ns=119ns 119/50=2.4 kat hızlı. Filling ve emptying için geçen zamanlarda dikkate alınırsa 3.4 kat hızlanıyor.