摘要:
A method and apparatus for supporting cache coherency in a multiprocessor computing environment having multiple processing units, each processing unit having a local cache memory associated therewith. A snoop filter device is associated with each processing unit and includes at least one snoop filter primitive implementing filtering method based on usage of stream registers sets and associated stream register comparison logic. From the plurality of stream registers sets, at least one stream register set is active, and at least one stream register set is labeled historic at any point in time. In addition, the snoop filter block is operatively coupled with cache wrap detection logic whereby the content of the active stream register set is switched into a historic stream register set upon the cache wrap condition detection, and the content of at least one active stream register set is reset. Each filter primitive implements stream register comparison logic that determines whether a received snoop request is to be forwarded to the processor or discarded.
摘要:
L'invention propose un procédé mettant en cohérence la mémoire cache (22) d'un processeur (2), dans lequel: -le processeur traite (E1a, E1b) une requête d'écriture de données à une adresse de sa mémoire marquée à l'état partagé; -ladite adresse est transmise (E3) à d'autres processeurs, les données sont écrites (E2a) dans sa mémoire cache (22) et l'adresse passe à l'état modifié, une mémoire annexe (29) mémorise ladite adresse, lesdites données et un marqueur associé (inv) dans un premier état; -le processeur reçoit (E4) ladite adresse et un indicateur ; -si l'indicateur indique que le processeur doit effectuer l'opération et si le marqueur associé est dans le premier état, lesdites données sont maintenues à l'état modifié; -si l'indicateur n'indique pas que le processeur doit effectuer l'opération et si le processeur reçoit une commande de marquage à l'état invalide, le marqueur passe dans un second état.
摘要:
The present invention provides a high-availability parallel processing server that is a multi-processor computer with a segmented memory architecture. The processors are grouped into processor clusters, with each cluster consisting of up to four processors in a preferred embodiment. Each cluster of processors has dedicated memory buses for communicating with each of the memory segments. The invention is designed to be able to maintain coherent interaction between all processors and memory segments within a preferred embodiment. A preferred embodiment uses Intel Pentium-Pro processors. The present invention comprises a plurality of processor segments (a cluster of one or more CPU's) memory segments (separate regions of memory), and memory communication buses (pathways to communicate with the memory segment). Each processor segment has a dedicated communication bus for interacting with each memory segment, allowing different processors parallel access to different memory segments while working in parallel. The processors, in preferred embodiment, may further include an internal cache and flags associated with the cache to allow multi-processor cache coherency in external write-back cache.
摘要:
A multiprocessor computer system has a multiplicity of sub-systems and a main memory coupled to a system controller. Some of the sub-systems are data processors, each having a respective cache memory that stores multiple blocks of data and a respective set of master cache tags (Etags), including one Etag for each data block stored by the cache memory. Each data processor includes an interface for sending memory transaction requests to the system controller and for receiving cache transaction requests from the system controller corresponding to memory transcation requests by other ones of the data processors. The system controller includes transaction activation logic for activating each said memory transaction request when it meets predefined activation criteria, and for blocking each said memory transaction request until the predefined activation criteria are met. An active transaction status table stores status data representing memory transaction requests that have been activated, including an address value for each activated transaction. The transaction activation logic includes comparator logic for comparing each memory transaction request with the active transaction status data for all activated memory transaction requests so as to detect whether activation of a particular memory transaction request would violate the predefined activation criteria. With certain exceptions concerning writeback transactions, an incoming transaction for accessing a data block that maps to the same cache line a pending, previously activated transaction, will be blocked until the pending transaction that maps to the same cache line is completed.
摘要:
This disclosure describes an efficient method of moving data from one location in memory to another without caching the data. This includes data transfers from one main storage location to another, transfers between main and expanded storage, and transfers from one expanded storage location to another.
摘要:
A system and method is disclosed for a multiprocessor system (MP) having multiple levels of cache storage and shared memory. A multiprocessor system (MP) is disclosed which comprises microprocessors (MPU). The MPUs, which have on-chip L₁ caches, are interfaced with external L₂ caches. D₂ directories are situated parallel to the L₂ caches and shadow the L₁ caches. The D₂ directories maintain data coherence among all the caches and a main memory, while decreasing the amount of interference with the on-chip L₁ caches. Reducing the amount of interference with the on-chip L₁ caches. Reducing the amount of interference permits the MPUs to perform at higher speeds and permits the further coupling of additional MPUs to the multiprocessor system (MP).
摘要:
A Fetch-Then-Confirm (FTC) policy is used for the handling of data fetch upon XIEX'S in a tightly coupled multiprocessor environment. The fetch and use of a requested data line upon XIEX is allowed before the SCE receives the confirmation of validity (or invalidity) of the requested line through the clearing procedure. Whenever a line having uncertain validity is used by a CP the results of execution of instructions depending on the validity of the line should not be committed to the cache until a confirmation is received from the SCE. When the confirmation from the SCE indicates that a line L is known to be valid, all results depending on the validity of L can be processed as usual. If, however, the SCE indicates that a previously fetched line L having uncertain validity is in fact invalid, all operations performed based on L 's contents should be aborted and restarted properly when a valid copy of L is received.
摘要:
A method using CH Loc (change-local) type information is used for data prefetch (D-prefetch) decision making. This information is stored in history tables H, there being one such table for each CP at, for example, the buffer control element (BCE). For each line L, H[L] indicates the information for L in H. Two different types of histories may be kept at H:
(1) XI-invalidates - At each H[L], there is recorded whether L was XI-invalidated without refetching. (2) CH Loc - At each H[L], there is also recorded local-change history, i.e., whether L was stored into since the last fetch.
It is also possible to keep a global H at the storage control element (SCE). In this case, the SCE maintains a table I recording, for each line L, information I[L] recording whether L involved XI-invalidates during the last accesses by a CP. Upon a cache miss to L from a processor CP i , the SCE prefetches some of those lines that involved XI-invalidates (indicated by I) into cache C i , if missing there. The management of table I is simple. When an XI-invalidate on L occurs, e.g., upon a store or an EX fetch, the corresponding entry is set. When L is accessed, e.g., upon D-fetch misses, without XI-invalidate, the entry in I is reset. Another criteria for turning an I entry OFF is when the line is fetched, e.g., on demand or upon prefetch.
摘要:
A Fetch-Then-Confirm (FTC) policy is used for the handling of data fetch upon XIEX'S in a tightly coupled multiprocessor environment. The fetch and use of a requested data line upon XIEX is allowed before the SCE receives the confirmation of validity (or invalidity) of the requested line through the clearing procedure. Whenever a line having uncertain validity is used by a CP the results of execution of instructions depending on the validity of the line should not be committed to the cache until a confirmation is received from the SCE. When the confirmation from the SCE indicates that a line L is known to be valid, all results depending on the validity of L can be processed as usual. If, however, the SCE indicates that a previously fetched line L having uncertain validity is in fact invalid, all operations performed based on L 's contents should be aborted and restarted properly when a valid copy of L is received.