A system and method for storing only one copy of a data block that is shared by two or more processes is described. In one embodiment, a global/non-global predictor predicts whether a data block, specified by a linear address, is shared or not shared by two or more processes. If the data block is predicted to be non-shared, then a portion of the linear address referencing the data block is combined with a process identifier that is unique to form a global/non-global linear address. If the data block is predicted to be shared, then the global/non-global linear address is the linear address itself. If the prediction as to whether or not the data block is shared is incorrect, then the actual value of whether or not the data block is shared is used in computing a corrected global/non-global linear address. If the data referenced by either the global/non-global linear address that was predicted correctly or the corrected global/non-global linear address resides in the global/non-global linear-addressed cache memory, then that data block is accessed and transmitted to a requesting processor. If the data referenced by either the global/non-global linear address that was predicted correctly or the corrected global/non-global linear address does not reside in the global/non-global linear-addressed cache memory, then a cache line selected by a replacement policy has its data block replaced with a data block from a storage device at a higher hierarchical level as specified by the linear address.

Ein System und eine Methode für die Speicherung von von nur einer Kopie Daten blockieren, die durch zwei oder mehr Prozesse wird beschrieben geteilt wird. In einer Verkörperung sagt ein global/non-global Kommandogerät, ob Daten blockieren, spezifiziert durch eine lineare Adresse voraus, wird geteilt oder geteilt nicht durch zwei oder mehr Prozesse. Wenn der Datenblock vorausgesagt wird nicht-geteilt zu werden, dann wird ein Teil der linearen Adresse, die den Datenblock bezieht, mit einem Prozeßbezeichner kombiniert, der einzigartig ist, eine global/non-global lineare Adresse zu bilden. Wenn der Datenblock vorausgesagt wird geteilt zu werden, dann ist die global/non-global lineare Adresse die lineare Adresse selbst. Wenn die Vorhersage, ob oder nicht der Datenblock geteilt wird, falsch ist, dann wird der tatsächliche Wert von, ob oder nicht der Datenblock geteilt wird, verwendet, wenn man eine behobene global/non-global lineare Adresse berechnet. Wenn die Daten, die durch jedes die global/non-global lineare Adresse bezogen werden, die richtig oder die behobene global/non-global lineare Adresse vorausgesagt wurde, im global/non-global linear-adressierten Cachespeicher liegen, dann wird dieser Datenblock einem erbittenen Prozessor erreicht und übermittelt. Wenn die Daten, die durch jedes die global/non-global lineare Adresse bezogen werden, die richtig oder die behobene global/non-global lineare Adresse vorausgesagt wurde, nicht im global/non-global linear-adressierten Cachespeicher liegen, dann hat eine Pufferspeicherlinie, die durch eine Wiedereinbaupolitik vorgewählt wird, seinen Datenblock, der mit einem Datenblock von einer Speichervorrichtung auf einem höheren hierarchischen Niveau ersetzt wird, wie durch die lineare Adresse spezifiziert.

 
Web www.patentalert.com

< (none)

< Data processing circuit, microcomputer, and electronic equipment

> Watering apparatus having automatic feed

> (none)

~ 00070