A data processing system, circuit arrangement, integrated circuit device,
program product, and method reduce the memory access latency of sequences
of memory access requests by processing at least one request in a sequence
out of order relative to another request based upon whether the other
request is likely to be for data maintained in the same organizational
block (e.g., a cache line) as data requested by an earlier memory access
request in the sequence. Given that multiple requests for data in the same
block will collectively hit or miss a given level of memory, whenever a
miss occurs as a result of an earlier request, the later requests for data
in the same block would otherwise stall until processing of the miss was
complete. Thus, by attempting to process other requests prior to
processing all of the requests to the same block, overall memory access
latency often improves since potentially productive operations can be
performed during periods that would otherwise be wasted waiting for a
common block of data to be retrieved from a lower level of memory. Among
other implementations, request reordering may be used to improve the
performance of complex memory instructions that use multiple memory access
requests to access a range of contiguous words that span more than one
organizational block.
Ein Datenverarbeitungssystem, eine Stromkreisanordnung, eine Schaltungvorrichtung, ein Programmprodukt und eine Methode verringern die Speicherzugrifflatenz von Reihenfolgen der cânforderungen auf Arbeitsspeicherzugriff, indem sie mindestens einen Antrag in einer Reihenfolge verarbeiten, die im Verhältnis zu einem anderen Antrag außer Betrieb ist, der auf gegründet wird, ob der andere Antrag wahrscheinlich ist, für die Daten zu sein, die im gleichen organisatorischen Block beibehalten werden (z.B., eine Pufferspeicherlinie) da die Daten, die durch eine frühere cânforderung auf Arbeitsspeicherzugriff in der Reihenfolge erbeten werden. Angenommen, mehrfache Anträge für Daten im gleichen Block zusammen eine gegebene Speicherebene schlagen oder vermissen, wann immer ein Verlust resultierend aus einem früheren Antrag auftritt, würden die neueren Anträge für Daten im gleichen Block anders festklemmen, bis die Verarbeitung des Verlustes, waren komplett. So indem sie versucht, andere Anträge vor der Verarbeitung alle Anträge zum gleichen Block zu verarbeiten, verbessert gesamte Speicherzugrifflatenz häufig, da möglicherweise produktive Betriebe während der Perioden durchgeführt werden können, die anders einen allgemeinen Block der von einer untereren Speicherebene zurückzuholenden Daten wartend vergeudet würden. Unter anderen Implementierungen kann der neuordnende Antrag verwendet werden, um die Leistung der komplizierten Gedächtnisanweisungen zu verbessern, die mehrfache cânforderungen auf Arbeitsspeicherzugriff verwenden, eine Strecke der angrenzenden Wörter zugänglich zu machen, die mehr als eins organisatorischer Block überspannen.