DLX - DLX

DLX
tasarımcı John L. Hennessy ve David A. Patterson
bitler 32 bit
tanıtıldı 1994
Sürüm 1.0
Tasarım RISC
Tip Kaydol–Kaydol ve Yükle–depola
kodlama Sabit
Dallanma Durum kaydı
endianness Bi-endian
Uzantılar Yok, ancak MDMX ve MIPS-3D kullanılabilir
Açık Evet
Kayıtlar
Genel amaç 31 (R0=0)
Kayan nokta 32 (32 bit için eşleştirilmiş DP)

DLX (telaffuz "Deluxe") bir olan RISC işlemci mimarisi ile tasarlanan John L. Hennessy ve David A. Patterson , başlıca tasarımcılar Stanford MIPS ve Berkeley RISC (sırasıyla) tasarımları, RISC tasarımının iki kriter örnekleri (adlandırılmış Berkeley tasarımından sonra).

DLX aslında temizlenmiş (ve modernize edilmiş) basitleştirilmiş bir Stanford MIPS CPU'dur. DLX, modern MIPS mimarisi CPU'sunun aksine, basit bir 32-bit yükleme/depolama mimarisine sahiptir . DLX, öncelikle öğretim amacıyla tasarlandığından, DLX tasarımı, üniversite düzeyinde bilgisayar mimarisi derslerinde yaygın olarak kullanılmaktadır .

Bilinen iki " softcore " donanım uygulaması vardır: ASPIDA ve VAMP. ASPIDA projesi birçok güzel özelliğe sahip bir çekirdekle sonuçlandı: açık kaynak kodlu, Wishbone'u destekliyor , asenkron bir tasarıma sahip, birden fazla ISA'yı destekliyor ve ASIC tarafından kanıtlanmış. VAMP, Verisoft projesinin bir parçası olarak matematiksel olarak doğrulanmış bir DLX çeşididir. PVS ile belirlendi , Verilog'da uygulandı ve bir Xilinx FPGA üzerinde çalışıyor . Derleyiciden çekirdeğe ve TCP/IP'ye kadar tam bir yığın bunun üzerine inşa edildi.

Tarih

Stanford MIPS mimarisinde performans elde etmek için kullanılan yöntemlerden biri, tüm talimatları tek bir saat döngüsünde tamamlamaya zorlamaktı. Bu, derleyicileri , talimatın kesinlikle bir saat döngüsünden daha uzun süreceği durumlarda " no-ops " eklemeye zorladı . Böylece girdi ve çıktı faaliyetleri (bellek erişimleri gibi) özellikle bu davranışı zorlayarak yapay program şişmesine yol açtı. Genel olarak MIPS programları, istenmeyen bir sonuç olan bir çok savurgan NOP talimatına sahip olmaya zorlandı. DLX mimarisi, tek saat döngüsü yürütmesini zorlamaz ve bu nedenle bu soruna karşı bağışıktır.

DLX tasarımında, uzun talimatları işlemek için daha modern bir yaklaşım kullanıldı: veri iletme ve talimatı yeniden sıralama. Bu durumda, daha uzun talimatlar işlevsel birimlerinde "durdurulur" ve ardından tamamlayabilecekleri zaman talimat akışına yeniden eklenir. Dışarıdan bu tasarım davranışı, yürütmenin doğrusal olarak gerçekleşmiş gibi görünmesini sağlar.

Nasıl çalışır

DLX komutları R-tipi , I-tipi ve J-tipi olmak üzere üç tipe ayrılabilir . R-tipi komutlar , 32 bitlik kelimede bulunan üç kayıt referansı ile saf kayıt talimatlarıdır. I tipi komutlar iki kayıt belirtir ve bir anlık değeri tutmak için 16 bit kullanır . Son olarak, J tipi komutlar, 26 bitlik bir adres içeren atlamalardır .

İşlem kodları , toplam 64 olası temel talimat için 6 bit uzunluğundadır. 32 kayıttan birini seçmek için 5 bit gereklidir.

  • R-tipi komutlar söz konusu olduğunda bu, 32 bitlik kelimenin yalnızca 21 bitinin kullanıldığı anlamına gelir, bu da daha düşük 6 bitin "genişletilmiş komutlar" olarak kullanılmasına izin verir.
  • DLX, bu talimatlar tamamen kayıtlarda çalıştığı sürece 64'ten fazla talimatı destekleyebilir. Bu tuhaflık, FPU desteği gibi şeyler için kullanışlıdır .

DLX vs MIPS

DLX, MIPS tasarımı gibi, performansını bir talimat ardışık düzeninin kullanımına dayandırır . DLX tasarımında bu oldukça basit, konsept olarak "klasik" RISC'dir . Boru hattı beş aşamadan oluşur:

IF – Talimat Getirme birimi/döngü
IR<-Mem(PC)
NPC<-PC+4
İşlem: PC'yi gönderin ve talimatı bellekten Talimat Kaydı'na (IR) getirin ; sonraki sıralı talimatı ele almak için PC'yi 4 artırın. IR, sonraki saat döngülerinde ihtiyaç duyulacak bir sonraki talimatı tutmak için kullanılır; benzer şekilde, kayıt NPC'si bir sonraki sıralı PC'yi tutmak için kullanılır.
Kimlik – Talimat Kod Çözme birimi
İşlem: Talimatın kodunu çözün ve kayıtları okumak için kayıt dosyasına erişin. Bu birim, IF'den talimat alır ve bu talimattan işlem kodunu ve işleneni çıkarır. Ayrıca işlem tarafından istenirse kayıt değerlerini alır.
EX – Yürütme birimi/etkin adres döngüsü
İşlem: ALU , DLX komut tipine bağlı olarak dört işlevden birini gerçekleştirerek önceki döngüde hazırlanan işlenenler üzerinde çalışır.
Bellek Referansı: Register–Register ALU komutu, Register–Immediate ALU komutu
Dal
MEM – Bellek erişim birimi
Bu ünitede aktif olan DLX komutları yükler, depolar ve şubelerdir.
Bellek referansı: gerekirse belleğe erişin. Talimat yüklenirse, veriler bellekten döner ve LMD (bellek verilerini yükle) kaydına yerleştirilir.
Dal
WB – WriteBack birimi
Modern terminolojide tipik olarak "mağaza birimi" olarak anılır. Sonucu, ister bellek sisteminden ister ALU'dan gelsin, kayıt dosyasına yazın.

Ayrıca bakınız

Referanslar

  • Sailer, Philip M.; Kaeli, David R. (1996). DLX Komut Seti Mimarisi El Kitabı . Morgan Kaufmann. ISBN'si 1-55860-371-9.
  • Patterson, David ; Hennessy, John (1996). Bilgisayar Mimarisi: Kantitatif Bir Yaklaşım (1. baskı). Morgan Kaufmann'ın fotoğrafı . ISBN'si 978-1-55-860329-5.
  • Patterson, David ; Hennessy, John (1994). Bilgisayar Organizasyonu ve Tasarımı (1. baskı). Morgan Kaufmann'ın fotoğrafı . ISBN'si 978-1-55-860281-6.

Dış bağlantılar