A method and system for optimizing execution of an instruction stream which
includes a very long instruction word (VLIW) dispatch group in which
ordering is not maintained is disclosed. The method and system comprises
examining an access which initiated a flush operation; capturing an indice
related to the flush operation; and causing all storage access
instructions related to this indice to be dispatched as single-IOP groups
until the indice is updated. Storage access to address space which is safe
such as Guarded (G=1) or Direct Store (E=DS) must be handled in a
non-speculative manner such that operations which could potentially go to
volatile I/O devices or control locations that do not get processed out of
order. Since the address is not known in the front end of the processor,
this can only be determined by the load store unit or functional block
which performs translation. Therefore, if a flush occurs for these
conditions, in accordance with the present invention the value of the base
register (RA) is latched and subsequent loads and stores which use this
base register are decoded in a "safe" manner until an instruction is
decoded which would change the base register value (safe means an internal
instruction sequence which can be executed in order without repeating any
accesses). The value of multiple base registers can be tracked in this
manner, though the preferred embodiment would not use more than two, one
of the base registers could be for input and one could be for output
streams.
Μια μέθοδος και ένα σύστημα για την εκτέλεση ενός ρεύματος οδηγίας που περιλαμβάνει μια πολύ μακροχρόνια ομάδα αποστολών λέξης οδηγίας (VLIW) στην οποία διαταγή δεν διατηρούνται αποκαλύπτονται. Η μέθοδος και το σύστημα περιλαμβάνουν την εξέταση μιας πρόσβασης που άρχισε μια επίπεδη λειτουργία συλλαμβάνοντας ένα indice σχετικό με την επίπεδη λειτουργία και η πρόκληση όλων των οδηγιών πρόσβασης αποθήκευσης αφορούσε αυτό το indice που αποστέλλεται ως ομάδες ενιαίος-ΟΛΠ (ολοκληρωμένο λειτουργικό πρόγραμμα) έως ότου ενημερώνεται το indice. Η πρόσβαση αποθήκευσης στο διάστημα διευθύνσεων που είναι ασφαλές όπως φρουρημένος (G=1) ή άμεσο κατάστημα (E=DS) πρέπει να αντιμετωπιστεί κατά τρόπο μη-θεωρητικό έτσι ώστε διαδικασίες που θα μπορούσαν ενδεχομένως να πάνε στις πτητικές I/O συσκευές ή τις θέσεις ελέγχου που δεν παίρνουν επεξεργασμένες από τη διαταγή. Δεδομένου ότι η διεύθυνση δεν είναι γνωστή στο μπροστινό τέλος του επεξεργαστή, αυτό μπορεί μόνο να καθοριστεί από τη μονάδα καταστημάτων φορτίων ή το λειτουργικό φραγμό που εκτελεί τη μετάφραση. Επομένως, εάν μια εκροή εμφανίζεται για αυτούς τους όρους, σύμφωνα με την παρούσα εφεύρεση η αξία του καταλόγου βάσεων (RA) είναι κλεισμένη με μάνταλο και τα επόμενα φορτία και τα καταστήματα που χρησιμοποιούν αυτόν τον κατάλογο βάσεων αποκωδικοποιούνται κατά τρόπο "ασφαλή" έως ότου αποκωδικοποιείται μια οδηγία που θα άλλαζε την αξία καταλόγων βάσεων (ασφαλή μέσα μια εσωτερική ακολουθία οδηγίας που μπορεί να εκτελεσθεί στη διαταγή χωρίς επανάληψη οποιωνδήποτε προσβάσεων). Η αξία των πολλαπλάσιων καταλόγων βάσεων μπορεί να ακολουθηθεί με αυτόν τον τρόπο, αν και η προτιμημένη ενσωμάτωση δεν θα χρησιμοποιούσε περισσότερο από δύο, ένας από τους καταλόγους βάσεων θα μπορούσε να είναι για την εισαγωγή και κάποια θα μπορούσε να είναι για τα ρεύματα παραγωγής.