GB2246650A - Digital memory access system - Google Patents
Digital memory access system Download PDFInfo
- Publication number
- GB2246650A GB2246650A GB9113998A GB9113998A GB2246650A GB 2246650 A GB2246650 A GB 2246650A GB 9113998 A GB9113998 A GB 9113998A GB 9113998 A GB9113998 A GB 9113998A GB 2246650 A GB2246650 A GB 2246650A
- Authority
- GB
- United Kingdom
- Prior art keywords
- address
- pipeline
- bank
- banks
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
Abstract
An addressing system for a multiport interleaved memory array having a plurality of memory banks 1, 2, 3, 4 comprises an address pipeline 20 with twice as many stages 22 as there are banks. The address pipeline recirculates through an address incrementer 24. After each circulation the row address is incremented and after the row address reaches its maximum value the column address is incremented. Addresses for the different access ports can recirculate behind one another in the pipeline (Figure 3). <IMAGE>
Description
DIGITAL MEMORY ACCESS SYSTEM
Background of the Invention
This invention relates to a system for accessing a multiport interleaved memory array.
In video signal processing it is known to split a framestore into for example four sections or banks and to load successive pixels of a video signal cyclically into the banks. More generally, a memory can be split into a plurality of banks of memory elements and the stored data written cyclically into the banks such that the data is written and read in an interleaved fashion. The memory banks may for example be DRAMs (dynamic random access memories). Such an arrangement allows higher data rates to be achieved than can be handled by one single DRAM. However existing systems require many latches, counters and multiplexers to store the different addresses and supply them to the banks, particularly if the memory array has a plurality of access ports.Presettable counters store the addresses from the different access ports, and multiplexers route the column and row addresses to each bank of memory.
United States Patent 4,581,721 describes a memory array suitable for storing data for a video image display using a 64K RAM broken up into four memory circuits. The circuits are addressed in a repeating cycle including addressing two or more sites having the same row address but different column addresses. The first row address component is stored until all columns required on the row have been accessed.
Summary of the Invention
The invention in its various aspects in defined in the independent claims appended hereto, to which reference should now be made, and advantageous features of the invention are defined in the appendent claims.
The use of an address pipeline in accordance with the invention greatly simplifies the construction and operation of the memory array.
Brief Descrlption of the Drawings
The invention will be described in more detail by way of example with reference to the accompanying drawings, in which:
Figure 1 is a block diagram of a bank of DRAM memory with its addressing system embodying the invention;
Figure 2 shows the format of an address received at the address ports;
Figure 3 (which extends onto two sheets) is a timing diagram showing the addresses circulating through the pipeline of
Figure 1;
Figure 4 is a block diagram illustrating the operation of the address incrementer 24 of Figure 1; and
Figure 5 is a schematic diagram illustrating the data flow through the memory array, when there are two data access ports to the array.
Detailed Descrintion of the Preferred Embodiment
Figure 1 shows a memory 10 comprising four DRAM banks of memory elements 1, 2, 3 and 4. Each memory bank has a data input/output 12, and row/column address input 14, a row address strobe (RAS) input 16, and a column address strobe (CAS) input 18.
The memory bank only responds to data at the row/column address input when one or other of the RAS and CAS are high. When RAS is high the data at the row/column address input is taken to be a row address, and when CAS is high the data at the row/column address input is taken to be a column address. To address a particular memory location the RAS and CAS are applied sequentially.
The memory banks 1, 2, 3, 4 are used in an interleaved fashion, that is, consecutive data elements are written into the memory banks cyclically, with the first data element going into bank 1, the second into bank 2, the third into bank 3, the fourth into bank 4, the fifth back into bank 1 and so on. More generally, the (4n + i)th data element is applied to the i th data bank.
The addresses are suppled by an address pipeline 20 comprising a series of eight latches 22 connected in cascade and looped together with the output of the last latch being connected through an address incrementer 24 to the input of the first latch.
The address incrementer also receives the output of the first latch.
A start address can be introduced into the pipeline from a host processor by a latch 26. Clock signals ClkAddr are applied to each of the latches 22 and a clock signal IncAddr is applied to the address incrementer 24. A load timing signal is applied to the latch 26. As is seen, there are eight stages in the pipeline represented by the eight latches 22 so as to accommodate the row address and column address for each of the four memory banks.
The start addresses received via the latch 26 are in the form shown in Figure 2. Each address comprises an n-bit column address, an m-bit row address, and a 2-bit bank select portion.
The bank select port of the address is only used to determine the first bank to access, and thus controls the strobe signals applied to the memory banks.
The row and column addresses are applied successively through the pipeline. Thus each bank receives the same row and column address until those addresses have been applied to all four banks. After leaving the last latch 22 they are applied to the address incrementer 24, in which the row address is incremented by one. The next data element is then read from each bank. This continues as necessary until either enough data has been accessed, or the row address has reached its maximum value. On the next circulation through the address incrementex, the row address is then reset to zero, and the column address incremented by one.
Thereafter the data is read from successive rows of the next column.
Thus in summary, as the address is incremented, the next access is to the next bank along and so on until bank 4 is reached.
Now the row part of the address is incremented, with the column address remaining unchanged. The banks are now cycled with the new address. The address generator increments the row address after cycling through all the banks. The column address is incremented after the row address rolls over.
Figure 3 is a timing diagram showing the flow of the address through the pipeline during a sequence of accesses. Starting addresses for the two access ports are initially written through the host access port into the pipeline. The position in the pipeline which an address occupies depends on the starting banks of the two access ports. The addresses are also split into its row and column components when they are loaded, with the column address following the row address in the pipeline. If the ports both access the same bank, one is made to wait and its address placed behind the other in the pipeline. Apart from that, they may begin to access the different banks simultaneously. The timing diagram shows port one accessing bank 1 and port two accessing bank 4 initially.The access cycles begin with RAS being generated for bank one and bank four followed by ClkAddr toggling, which shifts the column addresses to their respective banks. CAS is then generated for bank 1 and bank 4 to latch the column addresses into their respective banks of DRAM. Port two will now access bank 1 while port one will access bank 2. The row address for port two is incremented while the address for port one remains unchanged.
Another access cycle is now performed. Access cycles continue until halted by the host.
The address incrementer 24 of Figure 1 may be constructed of two 4-bit adders 30, 32 as shown in Figure 4. For example, the address 30, 32 may each be type No. 74F283 as indicated. Figure 5 shows the data flow through the array, as opposed to the addressing shown in more detail in Figure 1. Input latches 34, 36 enable the two access ports 38, 40 to share the same data input bus 11 to the
DRAM banks 1-4, in time-division multiplex. Two output latches 42, 44 likewise enable two output data ports 46, 48 to share the same output data bus 12. A read and write operation may occur simultameously on separate DRAM banks through the two access ports 38, 40. However, if both ports simultaneously request a read or write, the accesses from the ports need to be offset in time, as will be well understood by those skilled in the art.
Thus it is seen that a multiport interleaved memory can be used in a video framestore to allow simultaneous access to different banks of the dynamic memory (DRAM) array by different digital video data ports. Each frame of digital video data is stored as consecutive words of data. The banks of DRAM are arranged so that consecutive addresses select the different banks. Therefore when a frame of digital video is accessed by a port, the banks of DRAM are accessed in turn. The different addresses are generated for each bank of DRAM from the different ports, given the start addresses, using relatively simple hardware.
Claims (9)
1. An addressing system for an interleaved memory array having a plurality of memory banks, each bank having its own data port and address port, and comprising a recirculatory address pipeline having twice as many stages as memory banks, means for applying a start row address and a start column address to the pipeline, and address incrementing means in the address pipeline for incrementing the row address after each cycle and for incrementing the column address when the row address has reached a maximum value.
2. An addressing system according to claim 1, having a plurality of access ports and in which addresses for the different access ports recirculate successively in the address pipeline.
3. An addressing system according to claim 1 or 2, in which the incrementation proceeds one address at a time so that adjacent addresses are addressed in sequence.
4. An interleaved memory array, comprising a plurality of memory banks, each bank having its own data port and address port, a recirculatory address pipeline coupled to the address port of each of the memory banks and having as many stages as memory banks, means for applying a start address to the pipeline, and address incrementing means in the pipeline, the address incrementing means incrementally altering the address after each cycle of the recirculatory address pipeline.
5. An interleaved memory array, comprising a plurality of memory banks, each bank having its own data port and address port, a recirculatory address pipeline coupled to the address port of each of the memory banks and having as many stages as memory banks, means for applying to the pipeline a start row address and a start column address, and address incrementing means in the pipeline, the address incrementing means incrementing the row address after each cycle of the recirculatory address pipeline.
6. A memory array according to claim 5, in which the address incrementing means increments the column address when the row address has reached a maximum value.
7. A memory array according to claim 5 or 6, having a plurality of access ports and in which addresses for the different access ports recirculate successively in the address pipeline.
8. A memory array according to claim 5, 6 or 7, in which the incrementation proceeds one address at a time so that adjacent addresses are addressed in sequence.
9. An addressing system for an interleaved memory, substantially as herein described with reference to the drawings.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AUPK090490 | 1990-06-28 | ||
GB919108536A GB9108536D0 (en) | 1990-06-28 | 1991-04-22 | Digital memory access system |
Publications (2)
Publication Number | Publication Date |
---|---|
GB9113998D0 GB9113998D0 (en) | 1991-08-14 |
GB2246650A true GB2246650A (en) | 1992-02-05 |
Family
ID=25643897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB9113998A Withdrawn GB2246650A (en) | 1990-06-28 | 1991-06-28 | Digital memory access system |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2246650A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6091446A (en) | 1992-01-21 | 2000-07-18 | Walker; Bradley William | Consecutive frame scanning of cinematographic film |
US6732247B2 (en) * | 2001-01-17 | 2004-05-04 | University Of Washington | Multi-ported memory having pipelined data banks |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2112256A (en) * | 1981-11-18 | 1983-07-13 | Texas Instruments Ltd | Memory apparatus |
-
1991
- 1991-06-28 GB GB9113998A patent/GB2246650A/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2112256A (en) * | 1981-11-18 | 1983-07-13 | Texas Instruments Ltd | Memory apparatus |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6091446A (en) | 1992-01-21 | 2000-07-18 | Walker; Bradley William | Consecutive frame scanning of cinematographic film |
US6732247B2 (en) * | 2001-01-17 | 2004-05-04 | University Of Washington | Multi-ported memory having pipelined data banks |
Also Published As
Publication number | Publication date |
---|---|
GB9113998D0 (en) | 1991-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5093807A (en) | Video frame storage system | |
US4725987A (en) | Architecture for a fast frame store using dynamic RAMS | |
KR100245535B1 (en) | A dual bank memory and systems using the same | |
US4395764A (en) | Memory device utilizing shift registers for data accessing | |
US5323358A (en) | Clock-synchronous semiconductor memory device and method for accessing the device | |
JPH0636311B2 (en) | Dual port VRAM memory | |
JPH035990A (en) | Method of bringing dual-port-memory and semiconductor memory to state of series access | |
US4819213A (en) | Semiconductor memory | |
US7069406B2 (en) | Double data rate synchronous SRAM with 100% bus utilization | |
GB2246650A (en) | Digital memory access system | |
JPH0855495A (en) | Reconstituting circuit and method of synchronous memory device as asynchronous memory device | |
US6138214A (en) | Synchronous dynamic random access memory architecture for sequential burst mode | |
JP3550510B2 (en) | Dynamic random access memory device, data transfer system and data writing method | |
JPS61289596A (en) | Semiconductor memory device | |
KR950009076B1 (en) | Dual port memory and control method | |
KR950001425B1 (en) | Semiconductor memory device | |
JPH09190376A (en) | Memory controller | |
JP2710926B2 (en) | Semiconductor memory | |
JPH05233433A (en) | Multi-port ram | |
JPH01223695A (en) | Memory device | |
JPS6299973A (en) | Semiconductor memory device | |
JPH01112592A (en) | Semiconductor storage device | |
JPH02113489A (en) | Semiconductor storage device | |
JPH0498680A (en) | Semiconductor memory device | |
JPH02226580A (en) | Data readout system for semiconductor storage element |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |