RISC V İşlemci Nedir: Mimari, Çalışma ve Uygulamaları

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





RISC V, California Üniversitesi, Berkeley tarafından geliştirilen bir Komut seti mimarisidir. RISC kavramı, işlemci talimatlarının çoğunun çoğu bilgisayar programı tarafından kullanılmadığı gerçeğiyle motive edildi. Bu nedenle, tasarımlarda gereksiz kod çözme mantığı kullanılıyordu. işlemciler , alan kadar daha fazla güç tüketir. Komut setini kısaltmak ve kayıt kaynaklarına daha fazla yatırım yapmak için, RISC V işlemci uygulanmıştır.


Bu teknoloji, tamamen açık kaynak kodlu ve ücretsiz olduğu için birçok teknoloji devi ve start-up tarafından fark edildi. Çoğu işlemci türü bir lisans sözleşmesiyle sağlanır, ancak bu işlemci türüyle; herkes yeni işlemci tasarımlarını yapabilir. Bu makale, bir RISC V işlemciye - çalışma ve uygulamalarına genel bir bakışı tartışıyor.



RISC V İşlemci nedir?

RISC V işlemcisinde, RISC terimi, birkaç bilgisayar talimatı yürüten “indirgenmiş komut seti bilgisayarı” anlamına gelirken, 'V' 5. nesil anlamına gelir. Yerleşik ilkeye dayanan açık kaynaklı bir donanım ISA'sıdır (komut seti mimarisi). RİSK .

Diğer ISA tasarımlarıyla karşılaştırıldığında, bu ISA açık kaynak lisansı ile mevcuttur. Bu nedenle, bir dizi imalat şirketi açık kaynaklı işletim sistemlerine sahip RISC-V donanımını duyurdu ve sağladı.



Bu yeni bir mimaridir ve açık, kısıtlayıcı olmayan ve ücretsiz lisanslarda mevcuttur. Bu işlemci, çip ve cihaz üreticileri endüstrilerinden kapsamlı bir desteğe sahiptir. Bu nedenle, esas olarak birçok uygulamada kullanmak üzere serbestçe genişletilebilir ve özelleştirilebilir olacak şekilde tasarlanmıştır.

RISC V Geçmişi

RISC, 1980 civarında Berkeley'deki California Üniversitesi'nde Prof. David Patterson tarafından icat edildi. Prof. David ve Prof. John Hennessy, çalışmalarını “Bilgisayar Organizasyonu ve Tasarımı” ve “Stanford Üniversitesi'nde Bilgisayar Mimarisi” olmak üzere iki kitapta sundu. Böylece, ACM A.M.'yi aldılar. 2017 yılında Turing ödülü.

1980 yılından 2010 yılına kadar, RISC beşinci nesil geliştirme araştırması başlatıldı ve nihayet risk beş olarak telaffuz edilen RISC-V olarak tanımlandı.

RISC V Mimarisi ve Çalışması

RV12 RISC V mimarisi aşağıda gösterilmiştir. RV12, gömülü alanlarda kullanılan tek çekirdekli RV32I ve RV64I uyumlu RISC CPU ile yüksek düzeyde yapılandırılabilir. RV12 ayrıca endüstriyel standart RISC-V komut setine bağlı olarak 32 veya 64 bit CPU ailesindendir.

RV12, talimata ve veri belleğine eşzamanlı erişim için basitçe bir Harvard mimarisini yürütür. Ayrıca, verimliliği artırmak için yürütme ve bellek erişimleri arasındaki çakışmaları optimize etmeye yardımcı olan 6 aşamalı bir işlem hattı içerir. Bu mimari esas olarak Şube Tahmini, Veri Önbelleği, Hata Ayıklama Birimi, Komut Önbelleği ve isteğe bağlı Çarpan veya Bölücü Birimlerini içerir.

  RISC İşlemci Mimarisi
RISC İşlemci Mimarisi

RV12 RISC V'nin ana özellikleri aşağıdakileri içerir.

  • Bu bir Endüstri standardı talimat setidir.
  • 32 veya 64 bit verilerle parametrelenir.
  • Hassas ve hızlı kesintilere sahiptir.
  • Özel talimatlar, tescilli donanım hızlandırıcılarının eklenmesine izin verir.
  • Tek döngünün yürütülmesi.
  • Katlanmış optimizasyonlu altı aşamalı boru hattı.
  • Bellek koruması ile destek.
  • İsteğe bağlı veya Parametreli önbellekler.
  • Son derece parametreli.
  • Kullanıcılar 32/64 bit veri ve Şube Tahmin Birimi seçebilir.
  • Kullanıcılar talimat/veri önbelleklerini seçebilir.
  • Kullanıcı tarafından seçilebilir yapı, boyut ve önbellek mimarisi.
  • Kullanıcı tanımlı gecikme süresine göre Donanım Bölücü veya Çarpan Desteği.
  • Veri yolu mimarisi, Wishbone & AHB'yi destekleyen esnektir.
  • Bu tasarım gücü ve boyutu optimize eder.
  • Tasarım, performans veya güç dengesi sağlayan tamamen parametrelenmiştir.
  • Gücü azaltmak için kapılı CLK tasarımı.
  • Endüstri standardına göre yazılım desteği.
  • Mimari simülatör.
  • Eclipse IDE, Linux/Windows için kullanılır.

RISC V Yürütme İşlem Hattı

IF (talimat getirme), ID (kod çözme), EX (yürütme), MEM (bellek erişimi) ve WB (kayıt geri yazma) gibi beş aşama içerir.

Talimat Getirme

Instruction Fetch veya IF aşamasında, program sayacından (PC) ve bir sonraki komuta güncellenen komut belleğinden tek bir komut okunur.

Talimat Ön Kod Çözme

RVC Desteğine izin verildiğinde, Instruction Pre-Decode aşaması 16 bitlik sıkıştırılmış bir talimatın kodunu yerel bir 32 bit talimata çözecektir.

Talimat Kod Çözme

Komut Çözme (ID) aşamasında, Kayıt Dosyasına izin verilir ve baypas kontrollerine karar verilir.

Uygulamak

Execute aşamasında, bir ALU, DIV, MUL komutu için sonuç hesaplanır, bir Store veya Load komutu için izin verilen bellek ve beklenen sonuçlara göre dallar ve atlamalar ölçülür.

Hafıza

Bu Bellek aşamasında, belleğe ardışık düzen aracılığıyla erişilir. Bu aşamanın dahil edilmesi, boru hattının yüksek performansını garanti eder.

Cevap yazmak

Bu aşamada, Yürütme aşaması sonucu Kayıt Dosyasına yazılır.

Şube Tahmincisi

Bu işlemci, belirli bir dalın alınıp alınmadığına karar vermede RISC V işlemcisine rehberlik etmek için geçmiş verileri depolamak için kullanılan bir şube tahmin birimi veya BPU içerir. Bu tahmin verileri, dal yürütüldüğünde basitçe güncellenir.

Bu birim, davranışını belirleyen farklı parametreler içerir. Örneğin, bir dalın bir birimin mevcut olduğunu tahmin edip etmediğini belirlemek için HAS_BPU kullanılır, BPU_GLOBAL_BITS kaç tane geçmiş bit kullanılması gerektiğini belirler ve BPU_LOCAL_BITS program sayacının LSB'sinin kaç tanesinin kullanılması gerektiğini belirler. BPU_LOCAL_BITS & BPU_GLOBAL_BITS kombinasyonu, esas olarak Dal-Tahmin-Tablosunu adreslemek için kullanılan bir vektör yaratacaktır.

Veri Önbelleği

Bu, esas olarak, yeni erişilen bellek konumlarını ara belleğe alarak veri belleğine erişimi hızlandırmak için kullanılır. Bu, XLEN = 32 olduğunda, kendi sınırları içindeyse yarım kelime, bayt ve kelime erişimlerini işleyebilir. Ayrıca, XLEN=64 olduğunda, kendi sınırları içindeyse yarım kelime, bayt, kelime ve çift kelime erişimlerini işleyebilir.

Bir önbellek kaçırma boyunca, bütün bir blok belleğe geri yazılabilir, Böylece gerekirse, önbelleğe yeni bir blok yüklenebilir. DCACHE_SIZE sıfıra ayarlanarak Veri Önbelleği devre dışı bırakılır. Bundan sonra, bellek konumlarına doğrudan Veri Arayüzü .

Talimat Önbelleği

Bu, esas olarak, yeni getirilen talimatları arabelleğe alarak talimatın getirilmesini hızlandırmak için kullanılır. Bu önbellek, herhangi bir 16 bitlik sınırdaki her döngü için bir parsel getirmek için kullanılır, ancak bir blok sınırı boyunca değil. Bir önbellek kaçırma boyunca, talimat belleğinden bütün bir blok yüklenebilir. Bu önbelleğin konfigürasyonu, kullanıcının ihtiyaçlarına göre yapılabilir. Önbelleğin boyutu, değiştirme algoritması ve blok uzunluğu yapılandırılabilir.

Talimat döngüsü, ICACHE_SIZE'ın sıfıra ayarlanmasıyla devre dışı bırakılacaktır. Bundan sonra, parseller doğrudan bellekten bellekten alınır. Talimat Arayüzü.

Hata Ayıklama Birimi

Hata Ayıklama Birimi, Hata Ayıklama ortamının CPU'yu durdurmasına ve incelemesine izin verecektir. Bunun ana özellikleri Şube İzleme, 8-Donanım Kesme Noktasına Kadar Tek Adımlı İzlemedir.

Kayıt Dosyası

Bu, X0'dan X31'e kadar 32 kayıt yeri ile tasarlanmıştır, burada X9 Kaydı her zaman sıfırdır. Kayıt Dosyası, 1- yazma bağlantı noktası ve 2- okuma bağlantı noktası içerir.

Yapılandırılabilir Arayüz

Bu, işlemcinin farklı harici veri yolu arabirimlerini desteklediği bir harici arabirimdir.

RISC V Nasıl Çalışır?

RISC-V, RISC (indirgenmiş komut seti bilgisayarı) ilkelerine dayanan bir komut seti mimarisidir. Bu işlemci, donanımın geliştirilebildiği, yazılımın taşınabildiği ve işlemcilerin onu destekleyecek şekilde tasarlanabildiği ücretsiz, yaygın ve açık kaynaklı bir ISA olduğu için çok benzersiz ve aynı zamanda devrim niteliğindedir.

Fark S/B RISC V Vs MIPS

RISC V ve MIPS arasındaki fark aşağıdakileri içerir.

RİSK V

MIPS

RISC V terimi, 'V'nin beşinci nesil olduğu İndirgenmiş Komut Setli Bilgisayar anlamına gelir. 'MIPS' terimi, 'Saniyede Milyon talimat' anlamına gelir.
RISC-V, daha küçük cihaz üreticilerinin donanım tasarlamalarına ödeme yapmadan izin verir. MIPS, üreticinin ücretsiz olmadığı için ödeme yaparak işlemcinin hızını ölçmesine olanak tanır.
MIPS verimli bir şekilde öldü. RISC-V verimli bir şekilde ölü değil.
Bu işlemci, iki kaydı karşılaştırmak için şube talimatları sağlar. MIPS, karşıtlığın doğru olup olmadığına bağlı olarak bir kaydı 1 veya 0'a yerleştiren bir karşılaştırma talimatına bağlıdır.
ISA kodlama şeması, RISC V'de sabit ve değişkendir. ISA kodlama şeması MIPS'de sabittir
Komut seti boyutu 16-bit veya 32-bit veya 64-bit veya 128-bit'tir. Komut seti boyutu 32-bit veya 64-bit'tir.
32 genel amaçlı ve kayan nokta kaydına sahiptir. 31 genel amaçlı ve kayan nokta kaydına sahiptir.
26-tek ve çift duyarlıklı kayan nokta işlemlerine sahiptir. 15-tek ve çift duyarlıklı kayan nokta işlemlerine sahiptir.

Fark S/B RISC V Vs ARM

RISC V Vs ARM arasındaki fark aşağıdakileri içerir.

RİSK V

KOL

RISC-V açık kaynak kodludur, bu nedenle herhangi bir lisans gerektirmez. ARM kapalı bir kaynaktır, bu nedenle bir lisansa ihtiyacı vardır.
Yeni bir işlemci platformudur, bu nedenle yazılım ve programlama ortamları için çok küçük bir destek vardır. ARM, hedef tasarımcılara mikroişlemciler, mikro denetleyiciler ve ayrıca sunucular gibi çeşitli platformlarda yardımcı olmak için kitaplıkları ve yapıları destekleyen çok büyük bir çevrimiçi topluluğa sahiptir.
RISC V tabanlı yongalar 1 watt güç kullanır. ARM tabanlı çipler 4 watt'ın altında güç kullanır.
Sabit ve değişken bir ISA kodlama sistemine sahiptir. Sabit bir ISA kodlama sistemine sahiptir.
RISC V komut seti boyutu 16 bit ile 128 bit arasında değişmektedir. Komut boyutu 16 bit ile 64 bit arasında değişmektedir.
32 genel amaçlı ve kayan nokta kaydı içerir. 31 genel amaçlı ve kayan nokta kaydı içerir.
26 tek hassasiyetli kayan nokta işlemlerine sahiptir. 33 tek hassasiyetli kayan nokta işlemlerine sahiptir.
26 çift hassasiyetli kayan nokta işlemlerine sahiptir. 29 çift hassasiyetli kayan nokta işlemlerine sahiptir.

RISC V Verilog Kodu

RISC için talimat belleği verilog kodu aşağıda gösterilmiştir.

// RISC İşlemci için Verilog kodu
// Komut Belleği için Verilog kodu

modül Instruction_Memory(
giriş[15:0] bilgisayar,
çıkış[15:0] talimatı
);

reg [`col – 1:0] bellek [`row_i – 1:0];
tel [3 : 0] rom_addr = bilgisayar[4 : 1];
ilk
başlamak
$readmemb(“./test/test.prog”, bellek,0,14);
son
atama talimatı = hafıza[rom_addr];

uç modül

16 bit RISC V işlemci için Verilog kodu:

modül Risc_16_bit(
giriş kliği
);

tel atlama,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
tel[1:0] alu_op;
tel [3:0] işlem kodu;

// Veri yolu

Datapath_Unit DU
(
.clk(clk),
.zıpla Zıpla),
.frog(kurbağa),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.reg_write(reg_write),
.bne(bne),
.alu_op(alu_op),
.opcode(işlem kodu)
);

// kontrol ünitesi
Control_Unit kontrolü
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.zıpla Zıpla),
.bne(bne),
.frog(kurbağa),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
uç modül

Komut Setleri

RISC V komut setleri aşağıda tartışılmaktadır.

Aritmetik işlemler

RISC V aritmetik işlemleri aşağıda listelenmiştir.

anımsatıcı Tip Talimat Tanım
EKLE  rd, rs1, rs2

R

Ekle rdß rs1 + rs2
ALT rd, rs1, rs2

R

çıkar rdß rs1 –  rs2
ADDI rd, rs1, imm12

ben

Hemen ekle rdß rs1 + imm12
SLT rd, rs1, rs2

R

Daha az ayarla rdß rs1 -< rs2
SLTI rd, rs1, imm12

ben

Anında daha az ayarla rdß rs1 -< imm12
SLTU rd, rs1, rs2

R

İmzasızdan daha az ayarla rdß rs1 -< rs2
SLTIU rd, rs1, imm12

ben

Anında imzasızdan daha azını ayarla rdß rs1 -< imm12
LUI rd, imm20

İÇİNDE

Hemen yukarı yükle rdß imm20<<12
AUIP rd, imm20

İÇİNDE

PC'ye hemen üst ekleyin rdß PC+imm20<<12

Mantıksal İşlemler

RISC V mantıksal işlemleri aşağıda listelenmiştir.

anımsatıcı Tip Talimat Tanım
VE  rd, rs1, rs2

R

VE rdß rs1 ve rs2
VEYA rd, rs1, rs2

R

VEYA rdß rs1 | rs2
XOR  rd, rs1, rs2

R

BEDAVA rdß rs1 ^  rs2
ANDI  rd, rs1, imm12

ben

VE hemen rdß rs1 ve imm2
ORI rd, rs1, imm12

ben

VEYA Hemen rdß rs1 | im12
OXRI rd, rs1, imm12

ben

XOR hemen rdß rs1 ^ rs2
SLL rd, rs1, rs2

R

Mantıksal sola kaydır rdß rs1 <<  rs2
SRL rd, rs1, rs2

R

Sağa kaydır mantıksal rdß rs1 >>  rs2
RAS rd, rs1, rs2

R

Sağa aritmetik kaydırma rdß rs1 >>  rs2
SLLI rd, rs1, shamt

ben

Mantıksal olarak hemen sola kaydır rdß rs1 << sahte
SRLI rd, rs1, shamt

ben

Sağa mantıksal anında kaydırma rdß rs1 >> sahte
SRAI rd, rs1, shamt

ben

Sağa aritmetiği hemen kaydır rdß rs1 >> sahte

Yükleme/Depolama İşlemleri

RISC V yükleme/depolama işlemleri aşağıda listelenmiştir.

anımsatıcı Tip Talimat Tanım
LD  rd, imm12 (rs1)

ben

Çift kelime yükle rdß mem [rs1 +imm12]
LW rd, imm12 (rs1)

ben

kelime yükle rdß mem [rs1 +imm12]
LH rd, imm12 (rs1)

ben

Yarıya kadar yükle rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

ben

Bayt yükle rdß mem [rs1 +imm12]
LWU rd, imm12 (rs1)

ben

İmzasız kelimeyi yükle rdß mem [rs1 +imm12]
LHU rd, imm12 (rs1)

ben

Yarım kelime imzasız yükle rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

ben

Bayt imzasız yükle rdß mem [rs1 +imm12]
SD  rs2, imm12 (rs1)

S

Çift kelimeyi sakla rs2'den mem'e [rs1 +imm12]
SW rs2, imm12 (rs1)

S

kelime depola rs2'den (31:0) mem'e [rs1 +imm12]
SH rs2, imm12 (rs1)

S

Yarı yolda saklayın rs2 (15:0)'dan mem'e [rs1 +imm12]
SB rs2, imm12 (rs1)

S

Bayt depola rs2 (15:0)'dan mem'e [rs1 +imm12]
SRAI rd, rs1, shamt

ben

Sağa aritmetiği hemen kaydır rs2 (7:0) - mem [rs1 +imm12]

Şube İşlemleri

RISC V dallanma işlemleri aşağıda listelenmiştir.

anımsatıcı Tip Talimat Tanım
BEQ rs1, rs2, imm12

SB

Şube eşit rs1== rs2 ise

PC ß PC+imm12

BNE rs1, rs2, imm12

SB

Şube eşit değil Eğer rs1!= rs2 ise

PC ß PC+imm12

BGE  rs1, rs2, imm12

SB

Şube büyük veya eşit rs1>= rs2 ise

PC ß PC+imm12

BGEU  rs1, rs2, imm12

SB

Şube imzasıza eşit veya daha büyük rs1>= rs2 ise

PC ß PC+imm12

BLT  rs1, rs2, imm12

SB

Şube daha az rs1< rs2 ise

PC ß PC+imm12

BLTU  rs1, rs2, imm12

SB

Şube imzasızdan daha az rs1< rs2 ise

PC ß PC+imm12 <<1

JAL  rd, imm20

UJ

Zıpla ve Bağla rdßPC+4
PCß PC+imm20
JALR  rd, imm12(rs1)

ben

Jump ve Link kaydı rdßPC+4
PCß rs1+imm12

Avantajlar

bu RISC'nin avantajları V işlemci aşağıdakileri içerir.

  • RISCV kullanarak geliştirme süresinden, yazılım geliştirmeden, doğrulamadan vb. tasarruf edebiliriz.
  • Bu işlemcinin basitlik, açıklık, modülerlik, temiz sayfa tasarımı ve genişletilebilirlik gibi birçok avantajı vardır.
  • Bu, bir özgür yazılım derleyicisi olan GCC (GNU Derleyici Koleksiyonu) gibi çeşitli dil derleyicileri tarafından desteklenir. Linux işletim sistemi .
  • Bu, telif ücreti, lisans ücreti ve bağlı hiçbir koşul olmadığı için şirketler tarafından serbestçe kullanılabilir.
  • RISC-V işlemcisi, RISC'nin yerleşik ilkelerini takip ettiği için herhangi bir yeni veya yenilikçi özellik içermez.
  • Diğer birçok ISA'ya benzer şekilde, bu işlemci spesifikasyonu basitçe çeşitli talimat seti seviyelerini tanımlar. Dolayısıyla bu, kayan nokta talimatlarını desteklemek için uzantıların yanı sıra 32 ve 64 bit varyantları içerir.
  • Bunlar ücretsiz, basit, modüler, kararlı vb.

Dezavantajları

bu RISC V işlemcinin dezavantajları aşağıdakileri içerir.

  • Karmaşık talimatlar, derleyiciler ve programcılar tarafından sıklıkla kullanılır.
  • Bir döngü içindeki sonraki talimatlar yürütme için önceki talimata bağlı olduğunda, bir RISC'nin o/p'si koda bağlı olarak değişebilir.
  • Bu işlemcilerin çeşitli talimatları hızla kaydetmesi gerekir, bu da talimata zamanında yanıt verebilmek için büyük bir önbellek seti gerektirir.
  • RISC'nin tüm özellikleri, yetenekleri ve faydaları esas olarak mimariye bağlıdır.

Uygulamalar

bu RISC V uygulamaları işlemci aşağıdakileri içerir.

  • RISC-V gömülü sistemlerde, yapay zekada ve makine öğreniminde kullanılır.
  • Bu işlemciler, yüksek performans tabanlı gömülü sistem uygulamalarında kullanılmaktadır.
  • Bu işlemci, uç bilgi işlem, yapay zeka ve depolama uygulamaları gibi belirli alanlarda kullanıma uygundur.
  • RISC-V, daha küçük cihaz üreticilerinin donanımları ödemeden tasarlamalarına izin verdiği için önemlidir.
  • Bu işlemci, araştırmacıların ve geliştiricilerin, ücretsiz olarak kullanılabilen bir ISA veya talimat seti mimarisi ile tasarım yapmalarının yanı sıra araştırma yapmalarına da olanak tanır.
  • RISC V'nin uygulamaları, küçük gömülü mikro denetleyicilerden masaüstü PC'lere ve vektör işlemciler dahil süper bilgisayarlara kadar uzanır.

Böylece, bu RISC V İşlemciye genel bakış – mimari, uygulamalarla çalışma. İşte size bir soru, CISC işlemci nedir?