Πίνακας περιεχομένων:

Σχεδιασμός ενός απλού τεσσάρων κατευθύνσεων συσχετιστικού ελεγκτή μνήμης cache σε VHDL: 4 βήματα
Σχεδιασμός ενός απλού τεσσάρων κατευθύνσεων συσχετιστικού ελεγκτή μνήμης cache σε VHDL: 4 βήματα

Βίντεο: Σχεδιασμός ενός απλού τεσσάρων κατευθύνσεων συσχετιστικού ελεγκτή μνήμης cache σε VHDL: 4 βήματα

Βίντεο: Σχεδιασμός ενός απλού τεσσάρων κατευθύνσεων συσχετιστικού ελεγκτή μνήμης cache σε VHDL: 4 βήματα
Βίντεο: Αφαίρεση ημιμόνιμου βερνικιού 2024, Ιούνιος
Anonim
Σχεδιασμός ενός απλού τεσσάρων κατευθύνσεων συσχετιστικού ελεγκτή προσωρινής μνήμης σε VHDL
Σχεδιασμός ενός απλού τεσσάρων κατευθύνσεων συσχετιστικού ελεγκτή προσωρινής μνήμης σε VHDL

Στο προηγούμενο διδάσκοντά μου, είδαμε πώς να σχεδιάσουμε έναν απλό ελεγκτή προσωρινής αποθήκευσης με άμεση αντιστοίχιση. Αυτή τη φορά, προχωράμε ένα βήμα μπροστά. Θα σχεδιάσουμε ένα απλό τετράπλευρο σύνολο συσχετιστικού ελεγκτή προσωρινής μνήμης. Πλεονέκτημα; Λιγότερο ποσοστό απώλειας, αλλά με κόστος απόδοσης. Ακριβώς όπως το προηγούμενο ιστολόγιό μου, θα σχεδιάζαμε και μιμούμαστε έναν ολόκληρο επεξεργαστή, κύρια μνήμη και περιβάλλον cache για να δοκιμάσουμε τον ελεγκτή προσωρινής μνήμης. Ελπίζω να το βρείτε ως χρήσιμη αναφορά για να κατανοήσετε τις έννοιες και να σχεδιάσετε τους δικούς σας ελεγκτές προσωρινής μνήμης στο μέλλον. Δεδομένου ότι το μοντέλο για τον επεξεργαστή (δοκιμαστικό πάγκο) και το κύριο σύστημα μνήμης είναι ακριβώς τα ίδια με το προηγούμενο ιστολόγιό μου, δεν θα τα εξηγήσω ξανά. Ανατρέξτε στις προηγούμενες οδηγίες για λεπτομέρειες σχετικά με αυτό.

Βήμα 1: Προδιαγραφές

Προδιαγραφές
Προδιαγραφές

Γρήγορη ματιά μέσω των προδιαγραφών του Cache Controller που παρουσιάζονται εδώ:

  • Τετραμερής ρύθμιση συσχετιστικού ελεγκτή προσωρινής μνήμης (μεταβείτε σε αυτόν τον σύνδεσμο αν ψάχνετε για ελεγκτή προσωρινής μνήμης απευθείας αντιστοιχισμένης).
  • Single-Banked, Blocking Cache.
  • Πολιτική εγγραφής για επιτυχίες εγγραφής.
  • Πολιτική Γράψε-Γύρω για εγγραφές χαμένων.
  • Πολιτική αντικατάστασης Tree Pseudo-LRU (pLRU).
  • Πίνακας ετικετών εντός του ελεγκτή.
  • Ρυθμιζόμενες παράμετροι.

Οι προεπιλεγμένες προδιαγραφές για τη μνήμη Cache και την κύρια μνήμη είναι οι ίδιες με τις προηγούμενες οδηγίες. Ανατρέξτε σε αυτά.

Βήμα 2: Προβολή RTL ολόκληρου του συστήματος

Προβολή RTL ολόκληρου του συστήματος
Προβολή RTL ολόκληρου του συστήματος

Πλήρης αναπαράσταση RTL της Κορυφαίας μονάδας εμφανίζεται στο σχήμα (εξαιρουμένου του επεξεργαστή). Οι προεπιλεγμένες προδιαγραφές για τα λεωφορεία είναι:

  • Όλα τα λεωφορεία δεδομένων είναι λεωφορεία 32 bit.
  • Διεύθυνση διαύλου = Λεωφορείο 32-bit (Αλλά μόνο 10 bits μπορούν να διευθυνσιοδοτηθούν εδώ από τη μνήμη).
  • Αποκλεισμός δεδομένων = 128 bits (Δίαυλος ευρείας ζώνης για ανάγνωση).
  • Όλα τα εξαρτήματα κινούνται από το ίδιο ρολόι.

Βήμα 3: Αποτελέσματα δοκιμών

Το Top Module δοκιμάστηκε χρησιμοποιώντας ένα Test Bench, το οποίο απλώς μοντελοποιεί έναν επεξεργαστή χωρίς αγωγούς, όπως κάναμε στο τελευταίο εκπαιδευτικό. Ο πάγκος δοκιμής δημιουργεί συχνά αιτήματα ανάγνωσης/εγγραφής δεδομένων στη μνήμη. Αυτό χλευάζει τις τυπικές οδηγίες "Φόρτωση" και "Αποθήκευση", κοινές σε όλα τα προγράμματα που εκτελούνται από έναν επεξεργαστή.

Τα αποτελέσματα των δοκιμών επαλήθευσαν με επιτυχία τη λειτουργικότητα του Cache Controller. Ακολουθούν τα στατιστικά στοιχεία των δοκιμών που τηρούνται:

  • Όλα τα σήματα ανάγνωσης/εγγραφής Miss και Hit δημιουργήθηκαν σωστά.
  • Όλες οι λειτουργίες ανάγνωσης/εγγραφής δεδομένων ήταν επιτυχημένες και με τους τέσσερις τρόπους.
  • Ο αλγόριθμος pLRU επαληθεύεται επιτυχώς για την αντικατάσταση των γραμμών προσωρινής μνήμης.
  • Δεν εντοπίστηκαν προβλήματα ασυνέπειας/ασυνέπειας δεδομένων.
  • Ο Σχεδιασμός επαληθεύτηκε επιτυχώς ως χρονικός έλεγχος για Maxm. Συχνότητα λειτουργίας ρολογιού = 100 MHz στον πίνακα Xilinx Virtex-4 ML-403 (ολόκληρο το σύστημα), 110 MHz μόνο για τον Cache Controller.
  • Οι μνήμες RAM μπλοκ συνήχθησαν για την κύρια μνήμη. Όλες οι άλλες συστοιχίες εφαρμόστηκαν σε LUT.

Βήμα 4: Συνημμένα αρχεία

Τα ακόλουθα αρχεία επισυνάπτονται εδώ με αυτό το ιστολόγιο:

  • . VHD αρχεία Cache Controller, Cache Data Array, Main Memory System.
  • Πάγκος δοκιμής.
  • Τεκμηρίωση στο Cache Controller.

Σημειώσεις:

  • Περιηγηθείτε στην τεκμηρίωση για πλήρη κατανόηση των προδιαγραφών του Cache Controller που παρουσιάζονται εδώ.
  • Οποιεσδήποτε αλλαγές στον κώδικα εξαρτώνται από άλλες ενότητες. Επομένως, οι αλλαγές πρέπει να γίνουν με σύνεση.
  • Δώστε προσοχή σε όλα τα σχόλια και τις επικεφαλίδες που έχω δώσει.
  • Εάν για οποιονδήποτε λόγο, τα Block RAM δεν συνάγονται για την κύρια μνήμη, ΜΕΙΩΤΕ το μέγεθος της μνήμης, ακολουθούμενη από αλλαγές στο πλάτος του διαύλου διευθύνσεων στα αρχεία και ούτω καθεξής. Έτσι ώστε η ίδια μνήμη να μπορεί να εφαρμοστεί είτε σε LUT είτε σε Distributed RAM. Αυτό θα εξοικονομήσει χρόνο και πόρους δρομολόγησης. Or, Μεταβείτε στη συγκεκριμένη τεκμηρίωση FPGA και βρείτε τον συμβατό κωδικό για Block RAM και επεξεργαστείτε τον κώδικα ανάλογα, και χρησιμοποιήστε τις ίδιες προδιαγραφές πλάτους διαύλου διευθύνσεων. Sδια τεχνική για τα Altera FPGA.

Συνιστάται: