EP0318259A2

Software configurable memory architecture for data processing system having graphics capability.

Abstract

A graphics data processing system memory is allocatable by software between system memory and graphics framebuffer storage. The memory comprises two-port elements connected in parallel from the RAM port to a controller connected to a bus, and having serial output ports connected to output circuitry to map the storage to a display. Corresponding locations, relative to element origin, in all elements are addressed in parallel as an array. Three modes of memory transactions are all accomplished as array accesses. First, a processor reads/writes the system memory portion by a combination of parallel array access and transfers between controller and bus in successive bus cycles. Second, the controller executes atomic graphics operations on the framebuffer storage using successive array accesses; third, the processor can read/write a framebuffer pixel, by an array access of framebuffer storage with masking of unaddressed pixels. An interface arbitrates among requests for memory access.

EP0318259A2, drawing sheet 1
Sheet 1 of 10

Term

Term ended

Projected expiry passed 23 November 2008, 17.8 years ago.

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

16 claims: 7 independent, 9 dependent

  1. 1
    A data processing system comprising a processor a memory module a processor bus connecting said processor and said memory module said memory module having an interface connected to said processor bus a module bus connected to said interface output circuitry for connection to a display a number K of memory elements each providing an equal plurality of storage locations addressable relative to element origin, each said memory element having a serial output port and a random access port, said serial output port of each said memory element being connected to said output circuitry memory module addressing means for providing one location address relative to element origin in parallel to every said memory element, for concurrently addressing corresponding said storage locations in every said memory element, said corresponding locations comprising an addressed location array, a controller connected to said module bus, said random access port of each said memory element being connected to said controller in parallel with each other said memory element for a parallel memory transfer of signals between said controller and said addressed array locations, said processor having writable partition parameter storage means for storing a partition signal specifying a current partition of every said memory element into first and second sets each of contiguous locations, processor addressing means responsive to said partition signal, for generating address signals of a first kind and of a second kind, and placing said address signals on said processor bus, said memory module addressing means being responsive to a said address signal of the first kind for providing address signals specifying a said location array comprising members of said first set of locations, and responsive to a said address signal of the second kind for providing address signals specifying a said location array comprising members of said second set of locations.
  2. 2
    For use in a data processing system having a processing and a bus connected to said processor, a memory module having an interface for connection to said processor bus a module bus connected to said interface output circuitry for connection to a display a number K of memory elements each providing an equal plurality of storage locations addressable relative to element origin, each said memory element having a serial output port and a random access port, said serial output port of each said memory element being connected to said output circuitry memory module addressing means for providing one location address relative to element origin in parallel to every said memory element, for concurrently addressing corresponding said storage locations in every said memory element, said corresponding locations comprising an addressed location array, a controller connected to said module bus, said random access port of each said memory element being connected to said controller in parallel with each other said memory element for a parallel memory transfer of signals between said controller and said addressed array locations, said memory module addressing means being responsive to a processor address signal of a first kind for providing address signals specifying a said location array comprising members of a first set of contiguous memory element locations, and responsive to a processor address signal of a second kind for providing address signals specifying a location array comprising members of a second set of contiguous memory element locations.
  3. 3
    The memory module of Claim 2, said processor address signal of the first kind addressing system memory space, a said addressable memory element location storing an N-bit byte, said controller having write enable means for providing a write enable signal in parallel to every said memory element, and multiplexer means for transferring data signals between said module bus and said controller, said interface being responsive to a said processor address signal of the first kind and to associated processor write data word signals, for placing signals specifying P write data words on said module bus in P successive module bus cycles, each said write data word comprising M N-bit bytes, said controller write enable means being responsive to said interface to provide a said write enable signal, whereby said P write data words are successively multiplexed to said controller and are written in parallel to said addressed array locations specified by said module address means responsive to said address signal of the first kind.
  4. 4
    The memory module of Claim 3, said interface providing error correcting means responsive to said processor write data word signals for generating N bits of error correcting data signals for each said write data word, and for a said write data word, placing said error correcting data signals on said module bus in association with said write data word signals, K being an integral multiple of M+1.
  5. 5
    The module of Claim 3, said interface providing error correcting means responsive to said write data word signals for generating N bits of error correcting data signals for each said write data word and for placing said error correcting data signals on said module bus associated with said write data word signals, K being an integral multiple of M+1 and an integral multiple of P.
  6. 6
    The module of Claim 2 wherein said processor address signal of the first kind addresses system memory space, said module addressing means being responsive to said provided memory space address signal for providing a corresponding location address, said controller having multiplexer means for transferring data signals specifying a read data word between said controller and said module bus during a module bus cycle, said interface being responsive to read data word signals on said module bus to place corresponding read data word signals on said processor bus, whereby P said read data words are transferred in a parallel memory transaction from said addressed array locations to said controller and thereafter are transferred in P successive module bus cycles to said module bus for transfer to said processor.
  7. 7
    The module of Claim 2 wherein said second set of contiguous locations comprises graphics framebuffer storage for storing signals specifying the pixels (x,y) of a X x Y framebuffer, the connections between said memory element serial output ports and said output circuitry mapping said memory element locations to said framebuffer, said second set of locations being addressable by said module address means as a plurality of framebuffer pixel update arrays, each said update array having a determined origin with respect to said framebuffer, each said location being addressable by an offset with respect to said update array origin, the signals of each said update array specifying W x H framebuffer pixels, X being an integral multiple of W and Y being an integral multiple of H, the pixels of a said update array being concurrently updatable in a parallel memory transaction, the set of update arrays tiling the framebuffer, a said processor address signal of the second kind addressing said framebuffer storage, said controller having multiplexer/demultiplexer means for transferring data signals between said module bus and said controller, said memory module addressing means being responsive to a said processor address signal of the second kind to provide location address signals specifying array origin for parallel transfer of signals between said controller and the locations of a specified said update array, and mask information signals specifying offset within said specified update array, said controller multiplexer/demultiplexer means being responsive to said mask information signals for selecting from said transferred update array signals, pixel signals specified by said processor address signal.
  8. 8
    The memory module of Claim 7, wherein K = W x H.
  9. 9
    For use in a data processing system having a processor and a processor bus a memory module having an interface for connection to said processor bus a module bus connected to said interface output circuitry for connection to a display a number K of memory elements each providing an equal plurality of storage locations addressable relative to element origin, each said memory element having a serial output port and a random access port, said serial output port of each said memory element being connected to said output circuitry memory module addressing means responsive to operation data signals received from said processor for providing one location address relative to element origin in parallel to every said memory element, for concurrently providing address signals specifying corresponding said storage locations in every said memory element, said corresponding storage locations comprising an addressed location array, a controller connected to said module bus, said random access port of each said memory element being connected to said controller in parallel with each other said memory element for a parallel transfer between said controller and every said memory element of signals stored at said addressed array locations, said controller being responsive to operation data transmitted from said processor for performing an operation with respect to said operation data signals and signals at said addressed array locations to produce result signals, and for transferring said result signals in parallel to addressed array locations in said memory elements.
  10. 10
    For use with a data processing system having a processor and a processor bus a memory module having an interface for connection to said processor bus a module bus connected to said interface output circuitry for connection to a display a number K of memory elements each providing an equal plurality of storage locations addressable relative to element origin, each said memory element having a serial output port and a random access port, said serial output port of each said memory element being connected to said output circuitry memory module addressing means for providing one location address relative to element origin in parallel to every said memory element, for concurrently addressing corresponding said storage locations in every said memory element, said corresponding storage locations comprising an addressed location array, a controller connected to said module bus, said random access port of each said memory element being connected to said controller in parallel with each other said memory element for a parallel transfer of signals between said controller and said addressed array locations, said memory module addressing means being responsive to a processor address signal of a first kind for providing address signals specifying a said location array comprising members of a first set of contiguous locations, and responsive to a processor address signal of a second kind, for providing address signals specifying a said location array comprising members of a second set of contiguous locations, said controller being responsive to said operation data signals for operating with respect to said operation data signals and signals of said addressed location array to produce result signals, and for transferring said result signals in parallel to the locations of said addressed location array in said second set.
  11. 11
    The module of Claim 10, wherein a processor address signal of the first kind addresses system memory space, said controller being responsive to said operation data signals from said processor for providing a request signal to said interface, said interface being responsive to said request signal and to the absence of processor system memory addresses pending at said interface for providing a grant condition signal, said controller being enabled by said grant condition signal for said operation with respect to said operation data signals and to said specified addressed location array in said second set of contiguous locations.
  12. 12
    The module of Claim 10, said processor address signal of the first kind addressing system memory space, said second set of contiguous locations comprising graphics framebuffer storage for storing signals specifying the pixels (x,y) of a X x Y framebuffer, the connections between said memory element serial output ports and said output circuitry mapping said memory element locations to said framebuffer, said second set of locations being addressable by said module address means as a plurality of framebuffer pixel update arrays, each said update array having a determined origin with respect to said framebuffer, each said location being addressable by an offset with respect to said update array origin, the signals of each said update array specifying W x H framebuffer pixels, X being an integral multiple of W and Y being an integral multiple of H, the pixels of a said update array being concurrently updatable in a parallel memory transaction, the set of update arrays tiling the framebuffer, a said processor address signal of the second kind addressing said framebuffer storage, said controller being responsive to said operation data signals from said processor for providing a framebuffer operation request signal to said interface, said interface being responsive to said framebuffer operation request signal and to the absence of processor system memory addresses pending at said interface for providing a grant condition signal, said controller being enabled by said grant condition signal for said framebuffer operation with respect to said operation data signals and a specified said update array.
  13. 13
    For use with a data processing system having a processor and a processor bus a memory module having an interface for connection to said processor bus, a module bus connected to said interface, output circuitry for connection to a display, a number K of memory elements each providing an equal plurality of storage locations addressable relative to element origin, each said memory element having a serial output port and a random access port, said serial output port of each said memory element being connected to said output circuitry, memory module addressing means for providing one location address relative to element origin in parallel to every said memory element, for concurrently addressing corresponding said storage locations in every said memory element, said corresponding storage locations comprising an addressed location array, a controller connected to said module bus, said random access port of each said memory element being connected to said controller in parallel with each other said memory element for a parallel transfer of signals between said controller and said addressed array locations, said memory module addressing means being responsive to a processor framebuffer address signal for providing signals specifying a said location array comprising members of a set of contiguous locations, comprising graphics framebuffer storage for storing signals specifying pixels (x,y) of an X x Y framebuffer, the connections between said memory element serial output ports and said output circuitry mapping said memory element locations to said framebuffer, said second set of locations being addressable by said module address means as a plurality of framebuffer pixel update arrays, each said update array having a determined origin with respect to said framebuffer, each said location being addressable by an offset with respect to said update array origin, the signals of each said update array specifying W x H framebuffer pixels, X being an integral multiple of W and Y being an integral multiple of H, the pixels of a said update array being concurrently updatable in a parallel memory transaction, the set of update arrays tiling the framebuffer, said controller having multiplexer/demultiplexer means for transferring data signals between said module bus and said controller, said memory module addressing means being responsive to a processor framebuffer read/write operation address signal for providing location address signals specifying array origin and mask information signals specifying offset within said specified update array, said controller multiplexer/demultiplexer means being responsive to said mask information signals for selecting from said transferred update array signals, pixel signals specified by said processor framebuffer read/write operation address signals, said controller being responsive to operation data signals from said processor for providing a framebuffer operation request signal to said interface, said interface being responsive to said framebuffer operation request signal for providing a grant condition signal, said controller being enabled by said grant condition signal for performing said framebuffer operation with respect to said signal for performing said framebuffer operation with respect to said operation data signals and to signals of said specified update array to produce result signals, and for transferring said result signals in parallel to the locations of a specified update array.
  14. 14
    The memory module of Claim 13, said memory module addressing means being responsive to a processor system memory address signal for providing address signals specifying a said location array comprising members of a second set of contiguous locations, said interface being responsive to said framebuffer operation request signal and to the absence of processor system memory addresses and processor framebuffer read/write operation addresses pending at said interface for providing said grant condition signal.
  15. 15
    For use in a data processing system having a processor and a bus connected to said processor, a memory module having an interface for connection to said processor bus a module bus connected to said interface output circuitry for connection to a display a number L of memory banks each comprising a number K of memory elements each providing an equal plurality of storage locations addressable relative to element origin, each said memory element having a serial output port and a random access port, L controllers each connected to said module bus and to a corresponding memory bank, said random access port of each said memory element in said corresponding memory bank being connected to said controller in parallel with each other said memory element of said bank, memory module addressing means for providing one location address relative to element origin in parallel to every said memory element of every said bank, for concurrently addressing corresponding said storage locations in every said memory element, said corresponding locations comprising an addressed location array comprising members of a set of contiguous memory element locations, said set of contiguous memory element locations comprising graphics framebuffer storage for storing signals specifying the pixels (x,y) of a X x Y framebuffer, addressable by said module addressing means as a plurality of framebuffer pixel update arrays, each said update array having a determined origin with respect to said framebuffer, each said location being addressable by an offset with respect to said update array origin, the signals of each said update array specifying W x H framebuffer pixels, X being an integral multiple of W and Y being an integral multiple of H, W x H being equal to K x L, the pixels of a said update array being concurrently updatable in a parallel memory transaction, the set of update arrays tiling the framebuffer, said serial output port of each said memory element being connected to said output circuitry so as to map said memory element locations to said framebuffer for output of pixel signals during a display refresh operation in raster order from an addressed update array in said L banks as W x H framebuffer pixels.
  16. 16
    For use in a data processing system having a processor and a bus connected to said processor, a memory module having an interface for connection to said processor bus a module bus connected to said interface output circuitry for connection to a display a number L of memory banks each comprising a number K of memory elements each providing an equal plurality of storage locations addressable relative to element origin, each said memory element having a serial output port and a random access port, L controllers each connected to said module bus and to a corresponding memory bank, said random access port of each said memory element in said corresponding memory bank being connected to said controller in parallel with each other said memory element of said bank, memory module addressing means for providing one location address relative to element origin in parallel to every said memory element of every said bank, for concurrently addressing corresponding said storage locations in every said memory element, said corresponding locations comprising an addressed location array comprising members of a set of contiguous memory element locations, said set of contiguous memory element locations comprising graphics framebuffer storage for storing signals specifying the pixels (x,y) of a X x Y framebuffer, addressable by said module addressing means as a plurality of framebuffer pixel update arrays, each said update array having a determined origin with respect to said framebuffer, each said location being addressable by an offset with respect to said update array origin, the signals of each said update array specifying W x H framebuffer pixels, X being an integral multiple of W and Y being an integral multiple of H, W x H being equal to K, the pixels of a said update array being concurrently updatable in a parallel memory transaction, the set of update arrays tiling the framebuffer, said serial output port of each said memory element being connected to said output circuitry so as to map said memory element locations to said framebuffer for output, during a display refresh, for a display pixel (x,y), of pixel signals sequentially from each of said L memory banks.
Independent claims16