Transaction activation processor for controlling memory transaction processing in a packet switched cache coherent multiprocessor system
First Claim
1. A computer system, comprising:
- a system controller;
a multiplicity of sub-systems coupled to the system controller;
a main memory coupled to the system controller; and
a plurality of the sub-systems comprising data processors, a plurality of the data processors each having a respective cache memory that stores multiple blocks of data and a respective set of cache tags, including one cache tag for each data block stored by the cache memory;
each of the plurality of data processors including an interface, coupled to the system controller, for sending memory transaction requests to the system controller;
the interface for each of the data processors that has a cache memory including circuitry for receiving cache transaction requests from the system controller corresponding to memory transaction requests by other ones of the data processors;
each memory transaction request having an associated address value;
the system controller including;
transaction activation logic for activating each memory transaction request when it meets predefined activation criteria, and for blocking each memory transaction request until the predefined activation criteria are met;
wherein the predefined activation criteria include an address conflict criterion that is a function of the address value associated with the memory transaction request and the address value of activated memory transaction requests;
an active transaction status table that stores active transaction status data representing memory transaction requests which have been activated by the transaction activation logic, the active transaction status data including data for each activated transaction representing an address value associated with the transaction;
the active transaction status data including data representing memory transaction requests received from the plurality of data processors; and
memory transaction request logic for processing the memory transaction request after it has been activated by the transaction activation logic;
the transaction activation logic including parallel comparison logic for simultaneously comparing one not-yet-activated memory transaction request with the stored active transaction status data for all activated memory transaction requests so as to detect whether activation of the each memory transaction request would violate the predefined activation criteria with respect to any of the activated memory transaction requests;
wherein the transaction activation logic blocks all transaction requests by any of the data processors that violate the predefined activation criteria with respect to any memory transaction that has already been activated.
0 Assignments
0 Petitions
Accused Products
Abstract
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 transaction 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.
-
Citations
8 Claims
-
1. A computer system, comprising:
-
a system controller; a multiplicity of sub-systems coupled to the system controller; a main memory coupled to the system controller; and a plurality of the sub-systems comprising data processors, a plurality of the data processors each having a respective cache memory that stores multiple blocks of data and a respective set of cache tags, including one cache tag for each data block stored by the cache memory; each of the plurality of data processors including an interface, coupled to the system controller, for sending memory transaction requests to the system controller;
the interface for each of the data processors that has a cache memory including circuitry for receiving cache transaction requests from the system controller corresponding to memory transaction requests by other ones of the data processors;
each memory transaction request having an associated address value;the system controller including; transaction activation logic for activating each memory transaction request when it meets predefined activation criteria, and for blocking each memory transaction request until the predefined activation criteria are met;
wherein the predefined activation criteria include an address conflict criterion that is a function of the address value associated with the memory transaction request and the address value of activated memory transaction requests;an active transaction status table that stores active transaction status data representing memory transaction requests which have been activated by the transaction activation logic, the active transaction status data including data for each activated transaction representing an address value associated with the transaction;
the active transaction status data including data representing memory transaction requests received from the plurality of data processors; andmemory transaction request logic for processing the memory transaction request after it has been activated by the transaction activation logic; the transaction activation logic including parallel comparison logic for simultaneously comparing one not-yet-activated memory transaction request with the stored active transaction status data for all activated memory transaction requests so as to detect whether activation of the each memory transaction request would violate the predefined activation criteria with respect to any of the activated memory transaction requests; wherein the transaction activation logic blocks all transaction requests by any of the data processors that violate the predefined activation criteria with respect to any memory transaction that has already been activated. - View Dependent Claims (2, 3, 4)
-
-
5. A method of operating a cache coherent multiprocessor system having a system controller coupled to a main memory and to a plurality of data processors each of which has a cache memory, comprising the steps of:
-
sending memory transaction requests from each of the plurality of data processors to the system controller, each memory transaction request having an associated address value; activating the memory transaction request when it meets predefined activation criteria, and blocking the memory transaction request until the predefined activation criteria are met;
wherein the predefined activation criteria include an address conflict criterion that is a function of the address value associated with the memory transaction request and the address value associated with activated memory transaction requests;storing active transaction status data representing memory transaction requests which have been activated, the active transaction status data including data for each activated transaction representing an address value associated with the transaction;
the active transaction status data including data representing memory transaction requests received from the plurality of data processors; andprocessing the memory transaction request after it has been activated by the transaction activation logic; the activating step including simultaneously comparing one not-yet-activated memory transaction request with the stored active transaction status data for all activated memory transaction requests so as to detect whether activation of the one memory transaction request would violate the predefined activation criteria with respect to any of the activated memory transaction requests; wherein the activating step includes blocking all transaction requests by any of the data processors that violate the predefined activation criteria with respect to memory transaction that has already been activated. - View Dependent Claims (6, 7, 8)
-
Specification