Nova Patents
EP0458516A2

Memory access bus arrangement.

Abstract

Bus arrangements are disclosed for interconnecting processors (P1-P8) and main memory modules (M1-M9) of a shared memory multiprocessor system. A single address bus (120) interconnects all processors and memory modules, but odd and even memory modules communicate data to and from the processors via an odd (131) and an even (133) data bus. Each memory reading occupies four bus cycles on one of the data buses. On the address bus, two of each four cycles are available for addressing odd and even memory modules, and the other two are available for sending invalidation addresses among the caches (147) of the processors. The single address bus is used for transmitting a relatively narrow (32-bit) address word throughout the system, one address on each bus cycle, while the data buses are time shared to transmit a wide data word (256-bit) in four bus cycles, and each data bus is only connected to half the main memory modules. Such an arrangement makes excellent use of limited bus resources to transmit information where needed and when needed.

EP0458516A2, drawing sheet 1
Sheet 1 of 3

Term

Term ended

Projected expiry passed 15 May 2011, 15.4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

22 claims: 6 independent, 16 dependent

  1. 1
    A multiprocessor system comprising a plurality of processor means (P1-P8) for processing data, a plurality of main memory modules (M1-M4), and bus means (120,122,131,133) for interconnecting said processors and said memory modules, CHARACTERISED IN THAT the bus means comprises a time-shared address bus (120) for transmitting a plurality of addresses in a plurality of time intervals, connected to all of said processor means and all of said memory modules, and a plurality of data buses (131,133), each of said data buses being connected to a subset of less than all of said memory modules and to all of said processor means, and wherein, in operation, a first memory module connected to a first of said data buses and a second memory module connected to a second of said data buses receive addresses during different time intervals from said time shared address bus, and each responds with data stored at one of said addresses in an overlapping fashion over said first and said second data buses.
  2. 7
    A system as claimed in any one of claims 2 to 6 wherein a MESI (Modified, Exclusive, Shared, Invalid) protocol is used for cache coherency among said cache means, and wherein said address bus serves to transmit invalidation addresses among said processor means.
  3. 8
    A system as claimed in any preceding claim wherein different ones of said data buses are connected to disjoint subsets of said memory modules.
  4. 9
    A system as claimed in any preceding claim wherein, in operation, each of said data buses carries read-out signals from any of ones of said memory modules to any of said plurality of processor means, and carries write signals from any of said plurality of processor means to any of said ones of said memory modules.
  5. 10
    A system as claimed in any preceding claim wherein, in operation, access to said addressing bus is allocated by arbitration means (141,142,145).
  6. 22
    A multiprocessor system comprising a first plurality of processor means (P1-P8) for processing data, a second plurality of main memory modules (M1-M4), and bus means (120,122,131,133) for interconnecting said processor means and said memory modules, CHARACTERISED IN THAT the bus means comprises an addressing bus (120) connected to all of said processor means and all of said memory modules, and a plurality of data buses (131,133), each of said data buses being connected to a proper subset of said memory modules and to all of said processor means, wherein said address bus serves to convey invalidation addresses among said processor means, said address bus is time-shared and can transmit one address during a time slot, and said address bus serves to address said memory modules during ones of a first half of the time slots and to convey said invalidation addresses during ones of a second half of said time slots;    each of said processor means comprises cache memory means (147) for storing data and corresponding addresses, wherein, in operation, addresses on said address bus are transmitted to said processor means for checking against said corresponding addresses of data stored in each said processor cache memory means;    and there is provided a snoop bus (122) connected to each of said processor means for conveying signals, said signals conveying data characterising a state of data associated with a corresponding address of data stored in cache means of one of said processor means indicating that said one processor means has detected a match between an address on said address bus and an address of data stored in cache means of said one processor means, wherein, for one of said states, said one processor means serves to provide data in its cache means to one of said data buses and to one of said memory modules in substitution for data from one of said memory modules; and wherein:said address bus serves to convey a plurality of time multiplexed addresses for each data transfer cycle from one of said memory modules, said data transfer cycle corresponding to a transmission of data for one of said plurality of time multiplexed address;access to said addressing bus is allocated by arbitration means, comprising a global arbiter (141,142) and a plurality of distributed arbiters (145), all processor means which request access to said addressing bus during one arbitration cycle being, in operation, served for a first request before any processor means is served for a second request;and one of said processor means comprises a peripheral memory controller for controlling a peripheral memory, said one processor serving to transmit invalidation signals when main memory is updated from said peripheral memory.