Was ist der RISC V-Prozessor: Architektur, Funktion und seine Anwendungen

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





RISC V ist eine von der University of California, Berkeley, entwickelte Befehlssatzarchitektur. Das Konzept von RISC wurde durch die Tatsache motiviert, dass die meisten Prozessorbefehle von den meisten Computerprogrammen nicht verwendet werden. Daher wurde in den Designs von unnötige Dekodierungslogik verwendet Prozessoren , verbrauchen mehr Energie sowie Fläche. Um den Befehlssatz zu verkürzen und mehr in Registerressourcen zu investieren, die RISC V-Prozessor wurde implementiert.


Diese Technologie wurde von vielen Technologiegiganten und Start-ups bemerkt, da sie vollständig Open Source und kostenlos ist. Die meisten Prozessortypen sind mit einer Lizenzvereinbarung erhältlich, jedoch mit diesem Prozessortyp; Jeder kann seine neuen Prozessordesigns erstellen. Daher behandelt dieser Artikel einen Überblick über einen RISC V-Prozessor – die Funktionsweise und seine Anwendungen.



Was ist der RISC V-Prozessor?

Beim RISC V-Prozessor steht der Begriff RISC für „Reduced Instruction Set Computer“, der wenige Computerbefehle ausführt, während „V“ für die 5. Generation steht. Es ist eine Open-Source-Hardware-ISA (Instruction Set Architecture), die auf dem etablierten Prinzip von basiert RISIKO .

Im Vergleich zu anderen ISA-Designs ist diese ISA mit einer Open-Source-Lizenz erhältlich. Daher haben eine Reihe von Herstellern RISC-V-Hardware mit Open-Source-Betriebssystemen angekündigt und auch bereitgestellt.



Dies ist eine neue Architektur und ist in offenen, uneingeschränkten und kostenlosen Lizenzen verfügbar. Dieser Prozessor wird umfassend von Chip- und Geräteherstellern unterstützt. Daher ist es hauptsächlich so konzipiert, dass es frei erweiterbar und anpassbar ist, um es in vielen Anwendungen zu verwenden.

RISC V-Geschichte

Der RISC wurde um 1980 von Prof. David Patterson an der University of California, Berkeley, erfunden. Prof. David und Prof. John Hennessy haben ihre Bemühungen in zwei Büchern eingereicht, nämlich „Computer Organization and Design“ und „Computer Architecture at Stanford University. Also erhielten sie die ACM A.M. Turing-Preis im Jahr 2017.

Von 1980 bis 2010 wurde die RISC-Entwicklungsforschung der fünften Generation gestartet und schließlich als RISC-V identifiziert, was als Risiko fünf bezeichnet wird.

RISC V Architektur & Arbeiten

Die RV12 RISC V-Architektur ist unten dargestellt. Der RV12 ist mit einer Single-Core-RV32I- und RV64I-kompatiblen RISC-CPU, die in eingebetteten Bereichen verwendet wird, hochgradig konfigurierbar. Der RV12 stammt ebenfalls aus einer 32- oder 64-Bit-CPU-Familie, abhängig vom Industriestandard-RISC-V-Befehlssatz.

Der RV12 führt einfach eine Harvard-Architektur für den gleichzeitigen Zugriff auf Befehle und Datenspeicher aus. Es enthält auch eine 6-stufige Pipeline, die hilft, Überlappungen zwischen der Ausführung sowie Speicherzugriffe zu optimieren, um die Effizienz zu verbessern. Diese Architektur umfasst hauptsächlich Verzweigungsvorhersage, Datencache, Debugeinheit, Befehlscache und optionale Multiplikator- oder Teilereinheiten.

  RISC-Prozessorarchitektur
RISC-Prozessorarchitektur

Zu den Hauptmerkmalen des RV12 RISC V gehören die folgenden.

  • Es ist ein Befehlssatz nach Industriestandard.
  • Parametriert mit 32 oder 64bit Daten.
  • Es hat präzise und schnelle Interrupts.
  • Benutzerdefinierte Anweisungen ermöglichen das Hinzufügen von proprietären Hardwarebeschleunigern.
  • Ausführung Einzelzyklus.
  • Sechsstufige Rohrleitung mit Optimierung gefaltet.
  • Unterstützung mit Speicherschutz.
  • Optionale oder parametrisierte Caches.
  • Extrem parametrisiert.
  • Benutzer können 32/64-Bit-Daten und Branch Prediction Unit auswählen.
  • Benutzer können Anweisungs-/Daten-Caches auswählen.
  • Vom Benutzer wählbare Struktur, Größe und Architektur des Caches.
  • Hardware-Teiler oder Multiplikator-Unterstützung durch benutzerdefinierte Latenz.
  • Die Busarchitektur ist flexibel und unterstützt Wishbone & AHB.
  • Dieses Design optimiert die Leistung und Größe.
  • Das Design ist vollständig parametrisiert, was Leistungs- oder Leistungskompromisse bietet.
  • Gated CLK-Design zur Leistungsreduzierung.
  • Softwareunterstützung nach Industriestandard.
  • Architektursimulator.
  • Eclipse IDE wird für Linux/Windows verwendet.

Die RISC V-Ausführungspipeline

Es umfasst fünf Stufen wie IF (Befehlsabruf), ID (Befehlsdecodierung), EX (Ausführen), MEM (Speicherzugriff) und WB (Registerrückschreiben).

Anweisung abrufen

In der Anweisungsabruf- oder IF-Stufe wird eine einzelne Anweisung aus dem Programmzähler (PC) und dem Anweisungsspeicher gelesen, der auf die nächste Anweisung aktualisiert wird.

Anweisung Pre-Decode

Sobald die RVC-Unterstützung erlaubt ist, decodiert die Anweisungs-Vordecodierungsstufe eine 16-Bit-komprimierte Anweisung in eine native 32-Bit-Anweisung.

Anweisung decodieren

In der Stufe der Befehlsdecodierung (ID) wird die Registerdatei zugelassen und die Umgehungssteuerungen werden entschieden.

Ausführen

In der Ausführungsphase wird das Ergebnis für einen ALU-, DIV-, MUL-Befehl, der für einen Store- oder Load-Befehl zulässige Speicher berechnet, und Verzweigungen und Sprünge werden mit ihren erwarteten Ergebnissen verglichen.

Erinnerung

In dieser Speicherstufe wird über die Pipeline auf den Speicher zugegriffen. Die Einbeziehung dieser Phase stellt die hohe Leistung der Pipeline sicher.

Schreib zurück

In dieser Stufe wird das Ergebnis der Ausführungsstufe in die Registerdatei geschrieben.

Branchenprädiktor

Dieser Prozessor enthält eine Verzweigungsvorhersageeinheit oder BPU, die verwendet wird, um frühere Daten zu speichern, um den RISC-V-Prozessor bei der Entscheidung zu führen, ob eine bestimmte Verzweigung genommen wird oder nicht. Diese Prädiktordaten werden einfach aktualisiert, sobald die Verzweigung ausgeführt wird.

Diese Einheit enthält verschiedene Parameter, die ihr Verhalten bestimmen. Beispielsweise wird HAS_BPU verwendet, um zu bestimmen, ob eine Verzweigung das Vorhandensein einer Einheit vorhersagt, BPU_GLOBAL_BITS bestimmt, wie viele vergangene Bits verwendet werden sollten, und BPU_LOCAL_BITS bestimmt, wie viele der LSB des Programmzählers verwendet werden sollten. Die Kombination von BPU_LOCAL_BITS & BPU_GLOBAL_BITS erzeugt einen Vektor, der hauptsächlich verwendet wird, um die Branch-Prediction-Table zu adressieren.

Datencache

Dies wird hauptsächlich verwendet, um den Zugriff auf den Datenspeicher zu beschleunigen, indem neu zugegriffene Speicherorte gepuffert werden. Dies ist in der Lage, Halbwort-, Byte- und Wortzugriffe zu verarbeiten, wenn XLEN = 32, wenn sie sich auf ihren eigenen Grenzen befinden. Es ist auch in der Lage, Halbwort-, Byte-, Wort- und Doppelwortzugriffe zu handhaben, wenn XLEN = 64, wenn sie sich auf ihren eigenen Grenzen befinden.

Während eines Cache-Miss kann ein ganzer Block in den Speicher zurückgeschrieben werden, sodass bei Bedarf ein neuer Block in den Cache geladen werden kann. Der Datencache wird deaktiviert, indem DCACHE_SIZE auf Null gesetzt wird. Danach wird direkt über die auf Speicherplätze zugegriffen Datenschnittstelle .

Anweisungs-Cache

Dies wird hauptsächlich verwendet, um das Abrufen von Befehlen zu beschleunigen, indem neu abgerufene Befehle gepuffert werden. Dieser Cache wird verwendet, um ein Paket für jeden Zyklus auf einer beliebigen 16-Bit-Grenze, aber nicht über eine Blockgrenze hinweg, abzurufen. Während eines Cache-Fehltreffers kann ein ganzer Block aus dem Befehlsspeicher geladen werden. Die Konfiguration dieses Caches kann basierend auf den Bedürfnissen des Benutzers erfolgen. Die Größe des Caches, der Ersetzungsalgorithmus und die Blocklänge sind konfigurierbar.

Der Befehlszyklus wird deaktiviert, indem ICACHE_SIZE auf Null gesetzt wird. Danach werden Pakete direkt aus dem Speicher durch die geholt Anweisungsschnittstelle.

Debug-Einheit

Die Debug-Einheit ermöglicht es der Debug-Umgebung, die CPU anzuhalten und zu untersuchen. Die Hauptmerkmale davon sind Branch Tracing, Single Step Tracing bis zu 8 Hardware Breakpoints.

Datei registrieren

Dies ist mit 32 Registerstellen von X0 bis X31 ausgelegt, wobei das X9-Register immer Null ist. Die Registerdatei enthält 1 Schreibport und 2 Leseports.

Konfigurierbare Schnittstelle

Dies ist eine externe Schnittstelle, wobei dieser Prozessor verschiedene externe Busschnittstellen unterstützt.

Wie funktioniert RISC V?

RISC-V ist eine Befehlssatzarchitektur, die auf den RISC-Prinzipien (Reduced Instruction Set Computer) basiert. Dieser Prozessor ist sehr einzigartig und auch revolutionär, da es sich um eine kostenlose, gemeinsame und Open-Source-ISA handelt, bei der Hardware entwickelt, die Software portiert und Prozessoren entwickelt werden können, um sie zu unterstützen.

Unterschied S/W RISC V Vs MIPS

Der Unterschied zwischen RISC V und MIPS umfasst Folgendes.

RISC V

MIPS

Der Begriff RISC V steht für Computer mit reduziertem Befehlssatz, wobei „V“ für die fünfte Generation steht. Der Begriff „MIPS“ steht für „Millionen Anweisungen pro Sekunde“.
RISC-V ermöglicht es den Herstellern kleinerer Geräte einfach, Hardware zu entwerfen, ohne dafür zu bezahlen. MIPS ermöglicht es dem Hersteller, die Geschwindigkeit des Prozessors zu messen, indem er bezahlt, da es nicht kostenlos ist.
MIPS ist praktisch tot. RISC-V ist nicht effizient tot.
Dieser Prozessor liefert Verzweigungsbefehle zum Vergleichen zweier Register. MIPS hängt von einem Vergleichsbefehl ab, der ein Register auf 1 oder 0 lokalisiert, je nachdem, ob der Kontrast wahr ist.
Das ISA-Codierungsschema ist in RISC V fest und variabel. Das ISA-Codierungsschema ist in MIPS festgelegt
Die Befehlssatzgröße ist 16-Bit oder 32-Bit oder 64-Bit oder 128-Bit. Die Befehlssatzgröße ist 32-Bit oder 64-Bit.
Es hat 32 Mehrzweck- und Gleitkommaregister Es verfügt über 31 Allzweck- und Gleitkommaregister.
Es verfügt über 26 Gleitkommaoperationen mit einfacher und doppelter Genauigkeit. Es verfügt über 15 Gleitkommaoperationen mit einfacher und doppelter Genauigkeit.

Unterschied S/W RISC V Vs ARM

Der Unterschied zwischen RISC V Vs ARM umfasst Folgendes.

RISC V

ARM

RISC-V ist Open Source und erfordert daher keine Lizenz. ARM ist eine geschlossene Quelle, daher ist eine Lizenz erforderlich.
Es handelt sich um eine neue Prozessorplattform, daher gibt es nur sehr wenig Unterstützung für Software- und Programmierumgebungen. ARM hat eine sehr große Online-Community, die Bibliotheken und Strukturen unterstützt, um die Zieldesigner auf verschiedenen Plattformen wie Mikroprozessoren, Mikrocontrollern und auch Servern zu unterstützen.
RISC V-basierte Chips verbrauchen 1 Watt Leistung. ARM-basierte Chips verbrauchen weniger als 4 Watt Leistung.
Es verfügt über ein festes und variables ISA-Codierungssystem. Es hat ein festes ISA-Codierungssystem.
Die Größe des RISC V-Befehlssatzes reicht von 16 Bit bis 128 Bit. Seine Befehlsgröße reicht von 16 Bit bis 64 Bit.
Es enthält 32 Allzweck- und Gleitkommaregister. Es enthält 31 Allzweck- und Gleitkommaregister.
Es verfügt über 26 Gleitkommaoperationen mit einfacher Genauigkeit. Es verfügt über 33 Gleitkommaoperationen mit einfacher Genauigkeit.
Es verfügt über 26 Gleitkommaoperationen mit doppelter Genauigkeit. Es verfügt über 29 Gleitkommaoperationen mit doppelter Genauigkeit.

RISC V Verilog-Code

Der Befehlsspeicher-Verilog-Code für RISC ist unten gezeigt.

// Verilog-Code für RISC-Prozessor
// Verilog-Code für den Befehlsspeicher

Modul Instruction_Memory(
Eingabe[15:0] PC,
output[15:0]-Anweisung
);

reg [`col – 1:0] Speicher [`row_i – 1:0];
Draht [3: 0] rom_addr = pc [4: 1];
Initial
Start
$readmemb(./test/test.prog“, Speicher,0,14);
Ende
Anweisung zuweisen = Speicher [rom_addr];

Endmodul

Verilog-Code für den 16-Bit-RISC-V-Prozessor:

Modul Risc_16_bit(
Eingabe clk
);

Drahtsprung, bne, beq, mem_read, mem_write, alu_src, reg_dst, mem_to_reg, reg_write;
Draht[1:0] alu_op;
Draht [3:0] Opcode;

// Datenweg

Datenpfad_Einheit DU
(
.clk(clk),
.springen (springen),
.frog(Frosch),
.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(opcode)
);

// Steuergerät
Control_Unit-Steuerung
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.springen (springen),
.bne(bne),
.frog(Frosch),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
Endmodul

Befehlssätze

Die RISC V-Befehlssätze werden unten diskutiert.

Rechenoperationen

Die arithmetischen Operationen von RISC V sind unten aufgelistet.

Mnemonik Typ Anweisung Beschreibung
HINZUFÜGEN rd, rs1, rs2

R

Hinzufügen rdß rs1 + rs2
SUB rd, rs1, rs2

R

Subtrahieren rdß rs1 – rs2
ADDI rd, rs1, imm12

ich

Sofort hinzufügen rdß rs1 + imm12
SLT rd, rs1, rs2

R

Kleiner als einstellen rdß rs1 -< rs2
SLTI rd, rs1, imm12

ich

Weniger als sofort einstellen rdß rs1 -< imm12
SLTU rd, rs1, rs2

R

Setzen Sie weniger als unsigned rdß rs1 -< rs2
SLTIU rd, rs1, imm12

ich

Legen Sie weniger als unmittelbar unsigniert fest rdß rs1 -< imm12
LUI rd, imm20

IN

Obere sofort laden rdß imm20<<12
AUIP rd, imm20

IN

Fügen Sie dem PC das obere Direkt hinzu rdß PC+imm20<<12

Logische Operationen

Die logischen Operationen von RISC V sind unten aufgelistet.

Mnemonik Typ Anweisung Beschreibung
UND  rd, rs1, rs2

R

UND rdß rs1 & rs2
ODER rd, rs1, rs2

R

ODER rdß rs1 | rs2
XOR rd, rs1, rs2

R

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

ich

UND sofort rdß rs1 & imm2
ORI rd, rs1, imm12

ich

ODER Sofort rdß rs1 | imm12
OXRI rd, rs1, imm12

ich

XOR sofort rdß rs1 ^ rs2
SLL-rd, rs1, rs2

R

Linksverschiebung logisch rdß rs1 <<  rs2
SRL rd, rs1, rs2

R

Rechtsverschiebung logisch rdß rs1 >>  rs2
RAS-rd, rs1, rs2

R

Arithmetik nach rechts verschieben rdß rs1 >>  rs2
SLLI rd, rs1, shamt

ich

Logisch unmittelbar nach links verschieben rdß rs1 <<  shamt
SRLI rd, rs1, shamt

ich

Logisch sofort nach rechts verschieben rdß rs1 >> shamt
SRAI-rd, rs1, shamt

ich

Arithmetik sofort nach rechts verschieben rdß rs1 >> shamt

Lade-/Speicheroperationen

Die RISC V-Lade-/Speicheroperationen sind unten aufgelistet.

Mnemonik Typ Anweisung Beschreibung
LD rd, imm12 (rs1)

ich

Doppelwort laden rdß mem [rs1 +imm12]
LW rt, imm12 (rs1)

ich

Wort laden rdß mem [rs1 +imm12]
LH rd, imm12 (rs1)

ich

Auf halbem Weg laden rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

ich

Byte laden rdß mem [rs1 +imm12]
LWU rd, imm12 (rs1)

ich

Wort ohne Vorzeichen laden rdß mem [rs1 +imm12]
LHU rt, imm12 (rs1)

ich

Halbwort ohne Vorzeichen laden rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

ich

Byte ohne Vorzeichen laden rdß mem [rs1 +imm12]
SD rs2, imm12 (rs1)

S

Doppelwort speichern rs2 zu mem [rs1 + imm12]
Software rs2, imm12 (rs1)

S

Wort speichern rs2 (31:0) an mem [rs1 +imm12]
SH rs2, imm12 (rs1)

S

Auf halbem Weg lagern rs2 (15:0) an mem [rs1 +imm12]
SB rs2, imm12 (rs1)

S

Byte speichern rs2 (15:0) an mem [rs1 +imm12]
SRAI-rd, rs1, shamt

ich

Arithmetik sofort nach rechts verschieben rs2 (7:0) an mem [rs1 +imm12]

Verzweigungsoperationen

Die RISC V-Verzweigungsoperationen sind unten aufgelistet.

Mnemonik Typ Anweisung Beschreibung
BEQ rs1, rs2, imm12

SB

Zweig gleich Wenn rs1== rs2

PC ß PC+imm12

BNE rs1, rs2, imm12

SB

Zweig nicht gleich Wenn rs1!= rs2

PC ß PC+imm12

BGE rs1, rs2, imm12

SB

Verzweigung größer oder gleich Wenn rs1>= rs2

PC ß PC+imm12

BGEU rs1, rs2, imm12

SB

Verzweigung größer oder gleich unsigned Wenn rs1>= rs2

PC ß PC+imm12

BLT rs1, rs2, imm12

SB

Zweig weniger als Wenn rs1 < rs2

PC ß PC+imm12

BLTU rs1, rs2, imm12

SB

Weniger als unsigniert verzweigen Wenn rs1 < rs2

PC ß PC+imm12 <<1

JAL rd, imm20

UJ

Springen und verlinken rdßPC+4
PCß PC+imm20
JALR rd, imm12(rs1)

ich

Jump and Link registrieren rdßPC+4
PCß rs1+imm12

Vorteile

Das Vorteile des RISC V-Prozessor füge folgendes hinzu.

  • Durch die Verwendung von RISCV können wir Entwicklungszeit, Softwareentwicklung, Verifizierung usw. einsparen.
  • Dieser Prozessor hat viele Vorteile wie Einfachheit, Offenheit, Modularität, sauberes Design und Erweiterbarkeit.
  • Dies wird von mehreren Sprachcompilern wie dem GCC (GNU Compiler Collection), einem Compiler für freie Software, unterstützt Linux-Betriebssystem .
  • Dies kann von Unternehmen frei verwendet werden, da keine Lizenzgebühren, keine Lizenzgebühren und keine Bedingungen verbunden sind.
  • Der RISC-V-Prozessor enthält keine neuen oder innovativen Funktionen, da er einfach den etablierten Prinzipien von RISC folgt.
  • Ähnlich wie bei mehreren anderen ISAs definiert diese Prozessorspezifikation einfach verschiedene Befehlssatzebenen. Dies enthält also 32- und 64-Bit-Varianten sowie Erweiterungen zur Unterstützung von Gleitkommaanweisungen.
  • Diese sind kostenlos, einfach, modular, stabil usw.

Nachteile

Das Nachteile des RISC V Prozessors füge folgendes hinzu.

  • Komplexe Anweisungen werden häufig von Compilern und Programmierern verwendet.
  • Das o/p eines RISC kann sich basierend auf dem Code ändern, wenn nachfolgende Anweisungen innerhalb einer Schleife von der früheren Anweisung zur Ausführung abhängen.
  • Diese Prozessoren müssen schnell eine Vielzahl von Befehlen speichern, was einen großen Cache-Speichersatz erfordert, um rechtzeitig auf den Befehl zu reagieren.
  • Die vollständigen Funktionen, Fähigkeiten und Vorteile von RISC hängen hauptsächlich von der Architektur ab.

Anwendungen

Das Anwendungen des RISC V Prozessor füge folgendes hinzu.

  • RISC-V wird in eingebetteten Systemen, künstlicher Intelligenz und maschinellem Lernen verwendet.
  • Diese Prozessoren werden in hochleistungsbasierten eingebetteten Systemanwendungen verwendet.
  • Dieser Prozessor eignet sich für den Einsatz in bestimmten Bereichen wie Edge-Computing, KI- und Speicheranwendungen.
  • RISC-V ist wichtig, da es kleineren Geräteherstellern ermöglicht, Hardware zu entwickeln, ohne dafür zu bezahlen.
  • Dieser Prozessor ermöglicht es den Forschern und Entwicklern einfach, mit einer frei verfügbaren ISA- oder Befehlssatzarchitektur zu entwerfen und zu forschen.
  • Die Anwendungen von RISC V reichen von kleinen eingebetteten Mikrocontrollern bis hin zu Desktop-PCs und Supercomputern einschließlich Vektorprozessoren.

Das ist also eine Übersicht über einen RISC V Prozessor – Architektur, Arbeiten mit Anwendungen. Hier ist eine Frage an Sie: Was ist ein CISC-Prozessor?