Versatile memory controller chip for concurrent input/output operations
First Claim
1. Memory controller means for controlling a memory that comprises a plurality of individually addressable memory cells, the memory controller means comprising:
- input data path means for receiving input data;
first means for generating signals to put said input data into at least one logical input array of memory cells of said memory, the logical input array having at least two variable input array dimensions;
second means for generating signals to extract from said memory the contents of at least one logical output array of memory cells, the logical output array having at least two variable output array dimensions that are independent of the variable input array dimensions;
output data path means for outputting as output data said contents; and
command store means for storing a plurality of input array commands and a plurality of output array commands, each of the input and output array commands defining, respectively, the input and output array dimensions of said respective logical input and output arrays of memory cells.
2 Assignments
0 Petitions
Accused Products
Abstract
A memory controller includes an input data path and an output data path. First circuitry generates signals to put the input data into at least one variably-dimensioned logical array of memory cells of a memory. Second circuitry generates signals to extract from the memory the contents of at least one variably-dimensioned logical array of memory cells. The memory may be double buffered such that data input to one of the portions may take place simultaneously as data output from the other of the portions. In a preferred embodiment, any combination of up to 254 total variable-dimensioned logical arrays of memory cells may be defined for input to and output from the memory. The memory controller may be viewed as supporting two simultaneous processes, an input "windowing" process for receiving windows of data and an output "windowing" process for simultaneously passing out windows of data. The memory controller is preferably realized in the form of a monolithic integrated circuit employing "bit-slice" architecture and is static and dynamic RAM-compatible.
22 Citations
25 Claims
-
1. Memory controller means for controlling a memory that comprises a plurality of individually addressable memory cells, the memory controller means comprising:
-
input data path means for receiving input data; first means for generating signals to put said input data into at least one logical input array of memory cells of said memory, the logical input array having at least two variable input array dimensions; second means for generating signals to extract from said memory the contents of at least one logical output array of memory cells, the logical output array having at least two variable output array dimensions that are independent of the variable input array dimensions; output data path means for outputting as output data said contents; and command store means for storing a plurality of input array commands and a plurality of output array commands, each of the input and output array commands defining, respectively, the input and output array dimensions of said respective logical input and output arrays of memory cells. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. Memory controller means for controlling a double-buffered memory that comprises a plurality of individually addressable memory cells, the memory controller means comprising:
-
input data path means for receiving input data; first means for generating first signals to put said input data into at least one logical input array of memory cells of said memory, the logical input array having at least two variable input array dimensions; second means for generating second signals to extract from said memory the contents of at least one logical output array of memory cells simultaneously as said first means generates said first signals, the logical output array having at least two variable output array dimensions that are independent of the variable input array dimensions; and output data path means for outputting said contents.
-
-
22. A data transformer, comprising:
-
a double-buffered memory comprising a plurality of individually addressable memory cells; means for inputting data into one or more input sub-arrays of memory cells of said memory, the input sub-arrays having at least two variable input sub-array dimensions; and means for simultaneously extracting data from one or more output sub-arrays of memory cells of said memory different from said input sub-arrays, the output sub-arrays having at least two variable output sub-array dimensions that are independent of the variable input sub-array dimensions.
-
-
23. A general-purpose frame interface node, comprising:
-
a double-buffered frame memory; means for inputting image data as one or more frames or sub-frames of at least two freely-selectable input dimensions into said memory according to commands contained in a rewritable command store; and means for simultaneously extracting one or more frames or sub-frames of at least two freely-selectable output dimensions from said memory according to commands contained in said rewritable command store.
-
-
24. A method of controlling a memory that comprises a plurality of individually addressable memory cells, the method comprising the steps of:
-
receiving input data; generating signals to put said input data into at least one logical input array of memory cells of said memory, the logical input array having at least two variable input array dimensions; generating signals to extract from said memory the contents of at least one logical output array of memory cells, the logical output array having at least two variable output array dimensions that are independent of the variable input array dimensions; outputting said contents as output data; and generating addresses to retrieve a plurality of input array commands and a plurality of output array commands from command store means, and generating signals for registering said input and output array commands received from said command store means, each of said input and output array commands defining, respectively, the input and output array dimensions of said respective logical input and output arrays of memory cells.
-
-
25. A method of controlling a double-buffered memory that comprises a plurality of individually addressable memory cells, comprising the steps of:
-
receiving input data; generating first signals to put said input data into at least one logical input array of memory cells of said memory, the logical input array having at least two variable input array dimensions; generating second signals to extract from said memory the contents of at least one logical output array of memory cells simultaneously as said first means generates said first signals, the logical output array having at least two variable output array dimensions that are independent of the variable input array dimensions; and outputting said contents.
-
Specification