Inhaltsverzeichnis:
- Schritt 1: Spezifikationen
- Schritt 2: RTL-Ansicht des gesamten Systems
- Schritt 3: Testergebnisse
- Schritt 4: Angehängte Dateien
Video: Entwurf eines einfachen 4-Wege-Set-assoziativen Cache-Controllers in VHDL - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
In meinem vorherigen anweisbaren haben wir gesehen, wie man einen einfachen direkt zugeordneten Cache-Controller entwirft. Diesmal gehen wir einen Schritt weiter. Wir werden einen einfachen 4-Wege-Set-assoziativen Cache-Controller entwerfen. Vorteil ? Weniger Fehler, aber auf Kosten der Leistung. Genau wie in meinem vorherigen Blog würden wir eine komplette Prozessor-, Hauptspeicher- und Cache-Umgebung entwerfen und emulieren, um unseren Cache-Controller zu testen. Ich hoffe, Sie finden dies als nützliche Referenz, um die Konzepte zu verstehen und in Zukunft Ihre eigenen Cache-Controller zu entwickeln. Da das Modell für Prozessor (Prüfstand) und das Hauptspeichersystem exakt identisch mit meinem vorherigen Blog sind, werde ich sie nicht noch einmal erklären. Einzelheiten dazu finden Sie in der vorherigen Anleitung.
Schritt 1: Spezifikationen
Ein kurzer Blick durch die Spezifikationen des hier vorgestellten Cache-Controllers:
- Vier-Wege-Set Assoziativer Cache-Controller (gehen Sie zu diesem Link, wenn Sie nach Direct Mapped Cache Controller suchen).
- Single-Banked, blockierender Cache.
- Write-Through-Richtlinie für Schreibtreffer.
- Write-Around-Richtlinie bei Schreibfehlern.
- Richtlinie zum Ersetzen von Baum-Pseudo-LRU (pLRU).
- Tag-Array innerhalb des Controllers.
- Konfigurierbare Parameter.
Die Standardspezifikationen für Cache-Speicher und Hauptspeicher sind die gleichen wie von meinem vorherigen instructable. Bitte beziehen Sie sich auf sie.
Schritt 2: RTL-Ansicht des gesamten Systems
Die vollständige RTL-Darstellung des Top-Moduls ist in der Abbildung dargestellt (ohne Prozessor). Die Standardspezifikationen für die Busse sind:
- Alle Datenbusse sind 32-Bit-Busse.
- Adressbus = 32-Bit-Bus (aber hier sind nur 10 Bits vom Speicher adressierbar).
- Datenblock = 128 Bit (Bus mit breiter Bandbreite zum Lesen).
- Alle Komponenten werden von derselben Uhr angetrieben.
Schritt 3: Testergebnisse
Das Top-Modul wurde mit einem Prüfstand getestet, der einfach einen nicht Pipeline-Prozessor modelliert, genau wie wir es im letzten instructable getan haben. Der Prüfstand generiert häufig Lese-/Schreibdatenanforderungen an den Speicher. Dies verspottet typische "Load"- und "Store"-Befehle, die in allen von einem Prozessor ausgeführten Programmen gemeinsam sind.
Die Testergebnisse haben die Funktionalität des Cache Controllers erfolgreich verifiziert. Im Folgenden sind die beobachteten Teststatistiken aufgeführt:
- Alle Read/Write Miss- und Hit-Signale wurden korrekt generiert.
- Alle Operationen zum Lesen/Schreiben von Daten waren auf alle vier Arten erfolgreich.
- Der pLRU-Algorithmus wird erfolgreich auf das Ersetzen von Cache-Zeilen verifiziert.
- Keine Dateninkhärenz-/Inkonsistenzprobleme festgestellt.
- Das Design wurde erfolgreich für ein Maxm-Timing verifiziert. Taktfrequenz des Betriebs = 100 MHz in Xilinx Virtex-4 ML-403 Board (gesamtes System), 110 MHz für Cache Controller allein.
- Für den Hauptspeicher wurden Block-RAMs abgeleitet. Alle anderen Arrays wurden auf LUTs implementiert.
Schritt 4: Angehängte Dateien
Folgende Dateien sind hier mit diesem Blog angehängt:
- . VHD-Dateien von Cache Controller, Cache Data Array, Hauptspeichersystem.
- Prüfstand.
- Dokumentation zum Cache-Controller.
Anmerkungen:
- Gehen Sie die Dokumentation durch, um die Spezifikationen des hier vorgestellten Cache-Controllers vollständig zu verstehen.
- Alle Änderungen im Code sind von anderen Modulen abhängig. Die Änderungen sollten also mit Bedacht vorgenommen werden.
- Beachten Sie alle Kommentare und Überschriften, die ich gegeben habe.
- Wenn aus irgendeinem Grund Block-RAMs für den Hauptspeicher nicht abgeleitet werden, REDUZIEREN Sie die Größe des Speichers, gefolgt von Änderungen der Adressbusbreiten über die Dateien hinweg und so weiter. Damit der gleiche Speicher entweder auf LUTs oder Distributed RAM implementiert werden kann. Dies spart Zeit und Ressourcen für das Routing. Oder gehen Sie zur spezifischen FPGA-Dokumentation und suchen Sie den kompatiblen Code für Block-RAM und bearbeiten Sie den Code entsprechend und verwenden Sie die gleichen Adressbusbreitenspezifikationen. Gleiche Technik für Altera FPGAs.
Empfohlen:
So erstellen Sie eine 4G LTE Doppel-BiQuade-Antenne in einfachen Schritten: 3 Schritte
So erstellen Sie eine 4G LTE-Doppel-BiQuade-Antenne Einfache Schritte: Die meiste Zeit, in der ich konfrontiert war, habe ich keine gute Signalstärke für meine täglichen Arbeiten. So. Ich suche und probiere verschiedene Antennentypen aus, aber es funktioniert nicht. Nach verschwendeter Zeit habe ich eine Antenne gefunden, die ich hoffentlich herstellen und testen kann, weil sie vom Bauprinzip nicht
Spielen Sie Doom auf Ihrem iPod in 5 einfachen Schritten!: 5 Schritte
Spielen Sie Doom auf Ihrem iPod in 5 einfachen Schritten!: Eine Schritt-für-Schritt-Anleitung zum Dual-Booten von Rockbox auf Ihrem iPod, um Doom und Dutzende anderer Spiele zu spielen. Es ist wirklich einfach zu tun, aber viele Leute sind immer noch erstaunt, wenn sie sehen, wie ich Doom auf meinem iPod spiele, und werden mit der Anleitung verwirrt
So erstellen Sie einen einfachen Rechner in Java – wikiHow
So erstellen Sie einen einfachen Rechner in Java: Dies ist eine einfache Einführung in die Java-Programmiersprache, die für Personen mit geringen bis keinen Programmierkenntnissen gedacht ist. Materialien: Computer oder Laptop (mit installiertem Eclipse) Kann Eclipse unter https://www. eclipse.org/downloads
Einen einfachen zufälligen virtuellen Würfel codieren – wikiHow
So codieren Sie einen einfachen virtuellen Zufallswürfel: Hallo zusammen!!!!! Dies ist mein erstes anweisbares und ich werde Ihnen beibringen, wie man einen virtuellen Würfel auf Ihrem PC oder Smartphone codiert. Ich verwende HTML,JavaScript und CSS, ich hoffe, es gefällt euch allen und vergesst nicht, im folgenden Kontext für mich zu stimmen
Einen einfachen Spiderbot für Halloween bauen – wikiHow
So bauen Sie einen einfachen Spiderbot für Halloween: Dies ist ein einfacher, lustiger Borstenbot für Halloween! Bristlebots sind großartige Starterprojekte für Leute, die die Grundlagen der Schaltungen und des Roboterbaus erlernen. Mit dem Kopf einer Zahnbürste für den Körper, einem kleinen Motor für die Bewegung und einem Akku