A memory system having a number of partitions each operative to
independently service memory requests from a plurality of memory clients
while maintaining the appearance to the memory client of a single
partition memory subsystem. The memory request specifies a location in the
memory system and a transfer size. A partition receives input from an
arbiter circuit which, in turn, receives input from a number of client
queues for the partition. The arbiter circuit selects a client queue based
on a priority policy such as round robin or least recently used or a
static or dynamic policy. A router receives a memory request, determines
the one or more partitions needed to service the request and stores the
request in the client queues for the servicing partitions. In one
embodiment, an additional arbiter circuit selects memory requests from one
of a subset of the memory clients and forwards the requests to a routing
circuit, thereby providing a way for the subset of memory clients to share
the client queues and routing circuit. Alternatively, a memory client can
make requests directed to a particular partition in which case no routing
circuit is required. For a read request that requires more than one
partition to service, the memory system must collect the read data from
read queues for the various partitions and deliver the collected data back
to the proper client. Read queues can provide data in non-fifo order to
satisfy an memory client that can receive data out-of-order.
Ένα σύστημα μνήμης που έχει διάφορα χωρίσματα κάθε χειριστής για να συντηρήσει ανεξάρτητα τη μνήμη ζητά από μια πολλαπλότητα των πελατών μνήμης διατηρώντας την εμφάνιση στον πελάτη μνήμης ενός ενιαίου υποσυστήματος μνήμης χωρισμάτων. Το αίτημα μνήμης διευκρινίζει μια θέση στο σύστημα μνήμης και ένα μέγεθος μεταφοράς. Ένα χώρισμα λαμβάνει την εισαγωγή από ένα κύκλωμα κριτών που, στη συνέχεια, λαμβάνει την εισαγωγή από διάφορες σειρές αναμονής πελατών για το χώρισμα. Το κύκλωμα κριτών επιλέγει μια σειρά αναμονής πελατών βασισμένη σε μια πολιτική προτεραιότητας όπως ο στρογγυλός Robin ή ο πιό ελάχιστα πρόσφατα χρησιμοποιούμενη ή μια στατική ή δυναμική πολιτική. Ένας δρομολογητής λαμβάνει ένα αίτημα μνήμης, καθορίζει τα ένα ή περισσότερα χωρίσματα που απαιτούνται για να συντηρήσουν το αίτημα και αποθηκεύει το αίτημα στις σειρές αναμονής πελατών για τα χωρίσματα συντηρήσεων. Σε μια ενσωμάτωση, ένα πρόσθετο κύκλωμα κριτών επιλέγει τα αιτήματα μνήμης από ένα από ένα υποσύνολο των πελατών μνήμης και διαβιβάζει τα αιτήματα σε ένα κύκλωμα δρομολόγησης, με αυτόν τον τρόπο παρέχοντας έναν τρόπο για το υποσύνολο των πελατών μνήμης για να μοιραστεί τις σειρές αναμονής πελατών και το κύκλωμα δρομολόγησης. Εναλλακτικά, ένας πελάτης μνήμης μπορεί να καταστήσει τα αιτήματα κατευθυνμένα σε ένα ιδιαίτερο χώρισμα οπότε σ'αυτή την περίπτωση κανένα κύκλωμα δρομολόγησης δεν απαιτείται. Για ένα διαβασμένο αίτημα που απαιτεί περισσότερα από ένα χωρίσματα στην υπηρεσία, το σύστημα μνήμης πρέπει να συλλέξει τα διαβασμένα στοιχεία από τις διαβασμένες σειρές αναμονής για τα διάφορα χωρίσματα και να παραδώσει τα συλλεχθέντα στοιχεία πίσω στον κατάλληλο πελάτη. Διαβάστε ότι οι σειρές αναμονής μπορούν να παρέχουν τα στοιχεία στη διαταγή μη- fifo να ικανοποιηθεί ένας πελάτης μνήμης που μπορεί να λάβει την έξω-$$$-ΔΙΑΤΑΓΉ στοιχείων.