CA1225162A - Dynamic memory controller for single-chip microprocessor - Google PatentsDynamic memory controller for single-chip microprocessor
- Publication number
- CA1225162A CA1225162A CA 459350 CA459350A CA1225162A CA 1225162 A CA1225162 A CA 1225162A CA 459350 CA459350 CA 459350 CA 459350 A CA459350 A CA 459350A CA 1225162 A CA1225162 A CA 1225162A
- Grant status
- Patent type
- Prior art keywords
- 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.)
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for programme control, e.g. control unit
- G06F9/06—Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Programme initiating; Programme switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
Abstract of the Disclosure A controller for interfacing a single-chip microcomputer with external dynamic random-access memory, includes a subcircuit for generating a column-address strobe at a time after a row-address strobe is generated, and also includes a multiplexing subcircuit for providing the proper 8-bit portion of a 16-bit address output from the microprocessor to the 8-bit dynamic memory inputs, prior to receipt of the associated row-address or column-address strobe. The microprocessor utilizes the strobe-generation and multiplexing subcircuits to burst-refresh the dynamic memory, in one presently preferred embodiment. In another presently preferred embodiment, lines from an additional microprocessor output port are utilized with a resettable binary counter and a multiplicity of buffers, to count through the range of row addresses in cyclic fashion, with each address being incremented after the previously-addressed row of memory cells has been refreshed.
RD-1~,912 DYNAMIC MEMORY CONTROLLER FOR
Background of the Invention The present invention concerns dynamic memory control devices and, more particularly, a dynamic memory controller for use with single-chip MicroPro 05 censors.
A single-chip microprocessor, having a central processing unit (CPU) and program-storing read-only memory PROM) in addition to some amount of random-addressab]e memory TRAM), has been used I for many applications However, the amount of memory, whether of ROM or RAM type, contained in a typical singe chip microprocessor is often insufficient for the task to be handled. It is therefore often necessary to add additional external memory, particularly of the RAM type, which can at least temporarily store additional data for, and under the control of, the associated microproces-son. While static external memory is usable, it is often desired to use dynamic memory external ; 20 to the singe chip microprocessor. The dynamic memory integrated circuits currently available are among the least expensive types of memory in use at this time, allowing overall system costs to be reduced by their use. Dynamic memory integrated circuits also consume less power than static memory devices, and thus reduce the cost of associated power supplies and cooping equipment. however, dynamic memories, which store charge in each internal memory cell as representative of the data clement stored therein, require that the cell charge, which itself decays over time, be periodically I
ROD 14,912 refreshed to maintain the proper data state.
This refresh operation is relatively critical in both the timing and the event sequencing requirements thereof. Further, when dynamic RAM memories are interfaced to microprocessor-based systems, additional system problems concerning connection of the microprocessor to the memory subsystem and reliable data transfer between the memory-subsystem and the microprocessor must be considered, in addition to the proper refresh operation.
It is known that a custom refresh controller can be provided by interconnection of a relatively large number of discrete logic devices.
It is also known that a custom refresh controller can be implemented in large scale integration ELSIE circuit form, to provide a single integrated circuit package design. Such LSI packages are commercially available as in the Intel M 8202 or 8203 dynamic memory ; controller. However, these controllers are not adaptable for use with single-chip microcomputer designs. Further, even if these custom refresh controllers could be adapted to such a design, the cost of a dedicated memory controller is relatively expensive, as the controllers are relatively complex devices, and in some cases the custom controller may cost more than the memory devices themselves.
Accordingly, it is desirable to provide a circuit for interfacing dynamic RAM memory devices to a single-chip microprocessor in a relatively low-cost and performance-effective manner satisfying all of the timing and event sequencing criteria for the refresh cycle of the RAM used.
- 2 -I, Jo ~2ZS~
ROD ,912 Brief Summary of the Invention In accordance with the invention, my novel dynamic memory controller is utilized with a micro-processor, typically of the single chip type, 05 having an external dynamic random-access RAM memory.
A strobe-generating means provides a column-address strobe signal after providing a row address strobe signal, to allow normal read/write operation of the external dynamic RAM memory, in conjunction with multiplexing means for selecting the proper one of a low-order byte or a high-order byte (from a 16-bit-wide address port of the microprocessor) for presentation to an 8-bit-wide address port of the external RAM memory. The microprocessor contains a timing register which is reset to provide an interrupt on a cyclic basis with each interrupt establishing a refresh cycle of the external dynamic memory. The interrupt causes the microprocessor to carry out a predetermined sequence, sequentially accessing each row of memory cells and refreshing the charge therein.
In a first presently preferred embodiment, the microprocessor sequence temporarily stores the contents of and clears an internal accumulator US register and an internal storage register and then executes a sequence of "dummy read" operations, wherein each row of the external memory is refreshed by reading the contents of any one ceil thereon into the microprocessor accumulator register, but without the microprocessor utilizing the data read thereto. After burst dummy readings of all rows, the accumulator and register contents are restored and the microprocessor operation returns to normal.
RD-1~,912 In a second presently preferred embodiment, an additional binary counter and gate Abe buffer array are utilized with output lines from an additional port of the microprocessor. At the commencement 05 of a refresh cycle, as determined by the timing register, the row addresses in the counter are cyclically incremented through the entire range of external memory cell row numbers, by that column-address strobe appearing after a particular row lo address strobe covering all cells along a previously-: counted row number to be refreshed. At the completion of counting, the microprocessor external interrupt is enabled and the microprocessor returns to its normal tasks, without ever having to shift data lo from the non-timing registers therein Accordingly, it is an object of the present : invention to provide a novel circuit for controlling and refreshing dynamic memory and utilizable in conjunction with a single-chip microprocessor.
This and other objects of the present invention will become apparent upon consideration of the following detailed description, when read in conjunct lion with the drawings.
Brief Summary of the Drawings Figure ] is a schematic block diagram of a single-chip microprocessor, dynamic RAM memory for use therewith, and of presently-preferred embodiments of a dynamic memory controller in accordance with the principles of the present I invention;
Figures aye are a set of time-coordinated signal waveforms, as occur in the first presently-preferred embodiment of the circuit of Figure l, and useful in understanding principles of operation thereof;
122S16~ RD-14,912 Figure 3 is a program flow chart illustrating the dynamic memory controller subroutine carried out in the microprocessor of Figure ] for a memory refresh operation; and 05 Figures aye are another set of time-coordinated signal waveforms useful in understanding operation of the second present]y-preferred embodiment of the circuit of Figure l; and Figure S is a program flow chart illustrating I another dynamic memory controller subroutine for a memory refresh operation with a second presently-preferred controller embodiment.
Detailed Description of the Invention Referring initially to Figure 1, a first preqently-preferred embodiment of my novel dynamic memory controller 10 is utilized with a microproces-son Al, which may be of the single-chip type, such as the Intel 8051 single-chip microprocessor and the like. Controller 10 serves to interface microprocessor 11 to external dynamic RAM memory 12.
Microprocessor if typically generates a high-frequency clock signal utilizing internal circuitry and provides at least one terminal, such as terming a] XTAL 2, at which the internal clock waveform signal (see Figure pa) is available. Microprocessor 11 also provides at least one terminal at which an external address latch enable strobe ALE signal (see Figure 2b) is also made available external to the microprocessor. The microprocessor has an internal bus structure fib, interconnecting internal program-storing memory I (which may include ROM and/or RAM) and the various ones of an accumulator register ha, a storage JO register tic and a Programmable timer register lid. The bus ha also connects to a plurality of output lines and/or "i ~22S~6~ RD-14,912 input/output lines for inputting and/or outputting data and/or address bits from the microprocessor.
In the exemplary 8051 single-chip microprocessor, a first set of 8 lines AIDED, hereinafter referred to as port 0 (Pi), provides an 8-bit (1 byte) wide parallel port from which address or data information can flow or be received in this 8-bit-data machine. However, the microprocessor is capable of addressing up to 65K bytes of external memory 12, using a 16-bit-wide address word; the additional 8 address bitts are provided in parallel on lines AYE forming a l-byte-wide port 2 (Pi). The particular microprocessor illustrated also has another 8-bit-wide port (port Pi) with only the first and second lines, i.e. the BIT 0 and BIT 1 lines, being shown.
The microprocessor also provides an interrupt Inure input, at which input a falling voltage signal edge will cause an internal interrupt sequence to be initiated, if the IT input is internally enabled (typically under programmable control).
Dynamic RAM memory 12 can be comprised of one or more dynamic memory integrated circuits, Such as the Jujitsu M MB8264, Intel 2164 and the like. For the purposes of illustration only, dynamic memory 12 can be 8 RAM integrated circuits 12-1 through 12-8, each configured as a 64K bit (i.e. 65,536xl bit) integrated circuit memory, having at least their CAST RAY and address AYE
lines connected in parallel, to realize a 65,536x8 bit external dynamic RAM for an 8-bit-wide data microcosm-putter. Each dynamic memory integrated circuit, being capable of storing 64K bits of information, requires 16 address lines to select that one of Jo `
-' ` ' . t ~L~Z53~
RD-l4,9l2 216 bits stored therein. As is well known in the art, each memory integrated circuit is internally configured with a matrix of 8 rows by 8 columns of data storage sites, whereby only 8 address-I select input lines AYE are required. The presence of a low logic signal at one of a column address-select CAY input or at a row-address-select RAY
input determines whether the 8 address bits then present at inputs AYE select a particular column or a particular row, to allow access to one of the 2l5 storage cells. It should be understood that dynamic RAM 12 (and each integrated circuit thereof) includes other inputs and outputs for reading data into, and writing data out of, the lo memory, and that these additional terminals (not shown) are connected to other inputs and outputs (also not shown) of microprocessor if. The intercom-section of the actual lines for providing (reading into and for obtaining (writing) data out of dynamic memory 12 is separate from my present invention, as, even though some portion of the memory may be refreshed during normal data read and write cycles, there is no way to guarantee that a normal data read or data write cycle will occur within each memory refresh period, typically about 2 mill seconds, because microprocessor if may be busy with other tasks, which do not require accessing the external dynamic memory. The circuitry for providing the proper one of the pair of 8-bit-wide address bytes to address lines A A and the associated row and column-address strobes for entering these 1225~ RD-1~,912 half-address bytes for properly addressing the external dynamic RAM is, however, part of my novel circus t O
Dynamic memory controller 10 includes a Requiem I strobe generating means 14 for generating the row address strobe WAS signal for the dynamic memory refresh function and for generating both the RAY strobe signal and a column address strobe CAY
signal for normal external memory read/write operation.
Generating means I is comprises of a pair of D type flip-flop logic elements 16 and 18. The set S inputs and the clear CUR inputs of both flip-flops 16 and 18 are connected to a source of positive operating potential TV, to prevent a low logic level from ever appearing at these inputs. The data D input of first f]ip-flop 16 receives an external address latch enable strobe ALE
signal (see Figure 2b) from the appropriate terminal of microprocessor 11. The clock C inputs of both flip-flops 16 and 18 are connected in parallel to receive an the oscillator XTAL 2 output signal (see Figure pa) from the microprocessor. The Q output of first flip-flop I provides a delayed external address latch enable strobe DALE signal I (see Figure 2c) to the data D input of the second flip-flop 18. The Q output of flip-flop 16 provides a multiplexer enable MAXINE signal (see Figure Ed) while the Q output ox second flip-flop 18 provides the column address strobe CAY signal (see Figure ye) to dynamic memory 12. The row address strobe RAY signal to dynamic memory 12 is provided from the ALE signal driving the data D input of first flip-flop 16.
RD-14,912 Circuit 10 also includes an address line multiplexing means 20, for controllable connecting a selected one of the 8-bit-wide microprocessor ports Pi or Pi to the 8-bit-wide dynamic memory OX address lines AYE port. In the illustrated example, using an 8051 microprocessor having 1 address lines arranged in a pair of 8-bit-wide ports and with a dynamic RAM memory 12 comprised of eight 64K bit integrated circuits, having like addressing functional terminals wired in parallel r an 8-bit-by~2 multiplexing function is requited for means 20. Accordingly, first and second ~x2 multiplexing means aye and 22b are provided.
Each multiplexer 22, which may be provided by a standard 74LS257 and the like integrated circuit, controllable connects each line ox a pair of paralleled 4-bit inputs to an associated one ox 4 paralleled outputs, responsive to the logic state at a select S
; input. Thus, in first multiplexing section aye, I each one of a set of 4 paralleled input terminals Lowe are individually connected to an associated one of paralleled output terminals Lowe responsive to a logic 0 level at the select S input, and each one of the 4 paralleled input terminals lB-4B
is connected to the associated one of output terming awls Lowe for a high logic level at the select S input. Similarly, second multiplexer section 22b connects the associated one of input terminals Lowe' to the associated one of the 4 output terminals Lowe' for a low level at the select S input and connects one of the lob inputs to the associated one of the Lowe' output terminals for a high logic level input at the select S terminal. The Lowe go US
RD-1~,912 terminals are each respectively wired to the associated one of the AYE paralleled inputs of the dynamic RAM memory 12, while the Lowe' terminals are each respectively wired to the associated one 05 of the dynamic RAM memory paralleled input terming awls AYE. Each multiplexer integrated circuit aye and 22b is or the 3-output-state type, and has an output-enabling G input which disables outputs Lowe and Lowe' to the high impedance state if held at a logic 1 level, and enables the Y or Y' outputs to the logic-active condition if held at a low logic level condition; the paralleled G inputs of multiplexer portions aye and 22b are, in this first embodiment, connected to a low logic level (common ground potential) directly, or by means of a ground jumper Jo was illustrated).
referring now to Figures l, aye and 3, in operation, the microprocessor I provides an ALE pulse 30 (Figure 2b) at the beginning of every machine cycle; the leading edge aye and falling edge 30b of the ALE signal are related to specific cycles of the internally-generated clock pulses 32 (Figure pa) which are themselves controlled by a timing (crystal) element and illustratively occur at a 12 MHz. rate. The DALE signal (Figure 2c) normally rests at a logic 0 level and rises to a logic 1 level DALE pulse I only if the ALE
signal is at a logic 1 level when a rising edge aye of an XTAL 2 pulse occurs, and reverts to the logic 0 level when a rising edge 32b occurs with the ALE signal returned to the logic 0 level.
The MAXINE signal pulse 36 (Figure Ed), being provided at the Q output of the same flip-flop which provides I
RD-1~,9]2 the DALE signal at the Q output thereof, is the inversion of the DALE signal put so 34. The CAY
signal (Figure ye) is normally at a logic 0 level and appears as a logic 1 pulse I having a rising 05 edge aye commencing at the first rising XTAL 2 pulse edge aye' with a logic 1 DALE pulse I itself occurring responsive to a previous rising edge aye of a clock pulse). The column address strobe pulse 38 has a falling edge 38b provided responsive to the rising edge blue of a clock purse occurring after the DALE signal has reverted to the logic 0 level, which itself occurs responsive to a previous clock pulse rising edge 32b.
the dynamic memory accepts an 8-bit row address, present at inputs AYE, responsive to the walling edge 30b of the ALE signal, which felling edge is labeled RAY', and then accepts a new 8-bit column address subsequently made present at the same inputs AYE, responsive to the falling edge 38b ; 20 (herein labeled CAY') occurring thereafter. Thus, the microprocessor address/data port Pi may present any data up until a time to when the lower 8 bits of the external memory address ego. the row address) is provided and held stable at this port (Figure of).
The ALE signal causes the MAXINE logic 0 pulse 36 to be generated and multiplexer means 20 connects the A/A' inputs to the Y/Y' outputs thereof and thence to the dynamic RAM input terminals AYE.
While the low-byte row) address bits are connected I to the RAM inputs, falling edge 30b occurs at time if, generating the RASP strobe and causing the low-byte address bits to be accepted by the memory. Thereafter, the MAXINE pulse 36 is completed "
RD-14,912 at time to and the MAXINE line returns to the logic l level, connecting the B/B' multiplexer inputs to the Y/Y' outputs and the RAM memory inputs AYE;
thus, the high-byte data from port Pi (made available OX thereat at some later time Tao is made available at the RAM inputs at a time to after the RASP
felling edge time to. Thereafter, the CAY pulse 38 returns to the logic 0 level, at time to, and falling edge 38b generates the CAST strobe entering the high-byte (column) data into the memory.
By this process, any one of the 65,~36 bytes of memory can be addressed ego. responsive to an "address" instruction in program memory ill) for normal operation of external memory 12 with micro-processor if.
As previously mentioned, if one location on each of the memory rows was accessed within the refresh interval (e.g. about 2 mi]]iseconds~
during normal operation, no external memory 12 I` 20 refresh would be needed. Since this cannot be guaranteed to occur, a separate refresh of ail rows is required. In the dynamic RAM integrated circuits utilized, the memory is sectioned into four quadrants, whereby only ]28 separate rows require refresh. Refresh is accomplished by issuing a "rudely instruction for each of the 128 row locations within each 2 millisecond refresh cycle, to refresh the internal cell charge and maintain the internal data states in a valid condition. In actuality, it does not matter which cell element on a row is requested to be "read" and the data read from a row cell is not actually utilized; this allows a "dummy read" operation to sequentially occur for each of the 128 rows, representing all combinations I of the logic states at input terminals AYE, -lo-1225~6;~
with the logic state of input terminal A being a "don't care" condition), to refresh the entire memory.
Because a "dummy read" operation is being 05 used in this embodiment, it is necessary, at the same time that the external dynamic RAM memory 12 is being refreshed, that any data temporarily present in accumulator register ha or first ROW
register tic must be stored in the stack area of the microprocessor internal RAM, to prevent destruction of this data. Further, the timer register lid must be reset and counting of a new refresh time interval started at the commencement of each refresh cycle, to assure that the timer lo will overflow, interrupt the microprocessor and start the next refresh cycle with proper timing.
The sequence of events is illustrated in Figure 3 (and a program routine showing internal RAM memory 11' location, object code and source code therefore is shown in Appendix 1 at the end of this specific-lion).
The actual refresh sequence (using instructions prescored in program memory if') begins at stage A
(step if of the program) with an interrupt provided by a "short jump" SUP instruction. Having interrupted the normal operation of microprocessor if, timer register lid is reestablished in stage B, by first turning off the timer register (program step 21) and then sequentially loading the yeast significant byte and most significant byte of the timer data therein (program steps 22 and 23), before turning on the timer in program step 24. The timer register lid is loaded with a hexadecimal number (e.g. OFF) which is calculated based upon the refresh cycle :
~225~6~ RD-14,912 timing (e.g. 2 milliseconds) required and the microprocessor clock rate (e.g. 12 Ho and allows for a worse case interrupt latency time (e.g.
86 microseconds) and some overhead in the establishment I thereof. For the 8051 microprocessor illustrated, this time was chosen to be about 1900 microseconds.
The actual starting value loaded into the timer is that value which will cause the '16-bit) timing register to overflow at the required time (1900 micro-seconds) after the timer is turned on.
After reestablishing the timer, stage C is entered and the contents of the accumulator A
register ha and the first temporary R0 register tic are saved; the accumulator contents are pushed onto the stack registers in program step 26~ the register R0 contents is then exchanged into the accumulator A register in program step 27, and the new contents of the accumulator register (which is the former contents of register R0) is subsequently pushed onto the stack and saved in program step 28.
The microprocessor is now instructed to perform 128 row access "dummy read" operations; this burst reading of 128 rows occurs in stage D. This is accomplished by moving the hexadecimal number 07FH
into register R0, to initialize that register, an then reading the external RAM data, by use of RASP and the address multiplexer 20, at the row location indicated in the R0 register (program step 31). Thereafter, the contents of the R0 register is compared to zero, and if the R0 register number is greater than zero, this number is decrement Ed by one (in program step 32) and the decrement Ed number now in register R0 is again utilized to ~22~6~
RD-l4,912 perform the "dummy read" operation at the new decrement Ed row address. Thus, the "dummy read"
operation loops around with consecutive decrementation of the row address in register R0, for all l28 05 combinations, until the row address in register R0 is the hexadecimal number 000. At this point, program instruction I finds that the R0 register contents is equal to zero and does not jump back to program step 31, but continues to program step 34.
lo At this point, program stage E occurs and the accumulator and register R0 contents are restored from the stack, by first popping the first byte of information off the stack into the accumulator (program instruction I then exchanging the accumulator contents into register R0 (from which this first temporarily-stored byte of information came) and then popping the next stack-stored byte . into the accumulator (program instruction I
The microprocessor accumulator and register R0 data is now restored to the same condition as before the refresh interrupt, whereby program stage F occurs and the microprocessor interrupts are again enabled (program step 38) and the machine returns to its original processing function, whereby US the refresh sequence ends. Thus, dynamic memory controller circuit 10 interfaces microcomputer if with dynamic RAM memory lo for cyclic burst refresh operation of the latter, as well as normal data read/write operations there between.
The foregoing operational sequence with the illustrated embodiment utilizes approximately 28 percent of the available processing time of the sly microprocessor. A somewhat lower refresh ,, ~25~6~
RD-1~,9]2 overhead, reduced to about 2] percent of the MicroPro censor avai]ab]ity, is possible by utilization, at steps 30-32, of the instruction sequence, in program memory I of: MOW R0, #0; REPEAT (]28) 05 (MOVE A, R0; IN R0). This sequence reads the data at a row memory location which is incremented from the zero-th row to the Thea row, thus encom-passing all 128 rows which require refreshment.
In a second present]y-preferred embodiment, lo significantly increased performance is provided by adding a sequential addressing means 45 (as shown in Figure 1?- Sequential row addressing means I includes an 8-bit binary counter I and an 8-bit buffer means 49. Counter I which may be a dual 4-bit counter integrated circuit such as the standard 74LS393 and the like, has a clear CLUCKS input connected to the BIT I line of the Pi port of the microprocessor. A first 4-stage-counter clock C] input receives the column address strobe CAY signal from the Q output of flip-flop I
The fourth stage output of the first counter t i.e. output RID, is connected to the second 4-stage-counter clock C2 input. The 8-bit unidirectional buffer 49 is an octal 3-state buffer integrated circuit such as the standard 7~LS2~ and the like, with the gate G output enabling input connected to the counter clear CUR input. Each of the 8 counter stage outputs QUAKED and QUAKED are individually connected to the input of an associated one of the 8 buffer stages with the output of that buffer stage being connected, in a wire-OR'd configuration, with the associated multiplexer 22 output Lowe and Lowe' and the associated dynamic RAM memory I
RD-1~,912 address input AYE. The output control G inputs of the multiplexer stages aye and 22b are connected, as shown by the broken line position of jumper Jo' to the BIT 0 line of port Pi of microprocessor 11.
I The interrupt IT input for the microprocessor is connected through a jumper Jo to the appropriate one of the last, or next-to-last, stage output of counter 47; the appropriate connection is determined by the direction of the signal waveform edge required I for causing an interrupt in the particular MicroPro-censor 11. For the illustrated 8051, requiring a felling edger the jumper Jo is wired, as shown, to the next toast stage output Q2C of counter go.
This output falls after the initia]ly-cleared counter 47 has counted 128 repetitions ox the column address strobe CAY signal.
Referring now to Figures 1, aye and I, the refresh sequence begins responsive to a determine-lion (by an overflow-interrupt of microprocessor timer register lid) that the external dynamic - RAM memory 12 requires refresh, which occurs in stage A of the refresh sequence (Figure 5). The program instructions stored in program memory 1]' (and given in attachment 2 at the end of the specific cation) first executes a "short jump" 9JMP instruction program step 12), similar to the procedure in stage A of the routine of Figure 3 for the first embodiment Program stage B, similar to the same program stage B of the routine of Figure 3, is now entered and, in program steps 16-19, the timing register lid of the microprocessor is reestablished and turned on, to assure that the next refresh cycle is properly timed. Thereafter, a new stage G
is entered, in which the dynamic RAM memory address -}7-isle RD-14,912 multiplexer 20 is disabled and, thereafter, in stage H counter I is cleared and buffer 49 is enabled. For stage G, multiplexer 20 is cleared in program step 21 by setting the BIT 0 output 05 of port P] tire. the Ply sign]) to a logic 1 level, as shown in portion 50 of Figure by The logic l level is provided to the output control G
inputs of multiplexer portions aye and 22b, causing the multiplexer outputs IVY and Lyle to assume the high-impedance state and appear to be disconnected from the memory address inputs AYE. Program step 22 clears the BIT l line of port Pi, to a logic 0 state, as shown in portion 52 of signal Ply in Figure pa. Immediately prior to this time tax I the BIT 1, port l line Pull was at a logic I level, maintaining counter 47 in the cleared condition and disabling buffers I At time tax the clearing function is released and counter I and buffers I
are enabled to provide the 8 bits of low logic ; 20 level counter output to the associated 8 external memory address inputs AYE. The zero-th row of the dynamic memory is refreshed responsive to the 8 low-level logic bits being present at the memory address inputs when the RAY waveform 54 has a next falling edge aye, which provides the RASP strobe. Falling edge aye also starts stage I, in which 128 counts, of counter 47, occur responsive to each column address strobe CAY signal waveform 56 falling edge aye. This felling edge aye is the CAST edge that appears at counter clock Of and advances the counter state, thus sequentially advancing the row addresses, from 0 to 127 (for the total 128 rows) and refreshing the entire 12~25~
memory. It wily be seen that means Jo assures that the row data entered by the RASP felling edge aye, 5~b, 5~c, eta= occurs before the CAST
falling edge aye, 56b, etc., which advances the 05 counter I to the next row data count. Thus, after the zero-th row has been cleared by the first RASP felling edge aye, the counter is advanced to the binary 1 (e.g. 00000001) count responsive to CAST felling edge aye, as shown, in part, by the resulting change in the Qua counter stage output (Figure ye), with the remaining stage outputs remaining at a logic 0 level (in Figures ~f-4h).
The next RASP edge 54b causes the row 1 cells to be refreshed, before the next CAST falling edge 56b advances the counter to the binary 2 count. The memory row 2 is refreshed by falling edge ~4c, before edge 56c advances the counter to the binary 3 count. The counter continues to count as each row is refreshed, until the counter has a binary ]27 count therein. when this count - is present, the RASP falling edge on refreshes the last (Thea) row of the memory. Thereafter the CAST falling edge 56n occurs and start to set the counter to the binary 128 state, wherein only the Q2D output stages at a binary 1 level and all other stages fall from the logic l level, as at portion 58 of Figure oh, to the binary 0 level, as at portion aye in the same Figure.
Singe no further rows remain to be refreshed, the falling edge 58b from the Thea stage Q2C output is utilized at the IT microprocessor input which has been previously programmed to be transition-activated by a Hyatt transition) to interrupt and end the refresh pause. As previously mentioned ~2;Z 5~6Z
hereinabove, if the microprocessor is such that a positive-going, rising edge is required, that edge ~8b' can be obtained at the Thea stage Q2D
output, at essentially the same time as the walling 05 edge 58b appears.
Responsive to falling edge 58b, the pause stage I is interrupted (by the instruction at program step 23); stage J then causes buffer I
to be disabled (and counter I to be cleared);
and stage K again enables memory address multiplexer means 20/ before the normal microprocessor interrupts are enabled and the microprocessor returns to whatever task was being done before the memory refresh activity began. It should be noted that this embodiment does not require any of the registers, either accumulator resistor ha or the ROW register tic, to have the contents thereof temporarily pushed onto a stack, as the register contents are not affected. The buffer 49 disable/counter I clear stage J is carried out by program steps 24 and 25, wherein the port l, BIT l line Pull is set to a logic 1 level, as at portion aye of Figure pa, changing the buffer 49 outputs to the high-impedance state and placing a resetting-clear logic ] level on the clear input of counter 47. Immediately thereafter, the BIT O line of port Pi (Ply) is cleared to the logic O state, as shown by portion boa of Figure 4b, to remove the high-impedance state at the multiplexer outputs lye MY and Lowe', and allow normal low and high logic levels to be present thereat, dependent upon the state of the respective multiplexer inputs. The routine ends with an interrupt-enabling return program step 27. This counter-controlled memory refresh I I
RD-14,912 circuit typically requires only about 4 percent of the microprocessor 8051 availability, allowing less interruption of normal program execution.
While several presently preferred embodiments 05 of my novel controller for dynamic RAM memory external to a single-chip microprocessor have been described with detail herein, many variations and modifications will now become apparent to those skilled in the art. For example, even further lo program time can be saved, since the port ], bit 0 and bit 1 signals are complements of one another, if an inventor is used between the counter 47 clear CUR input/buffer I enable G line and the multiplexer 20 output-disable G line to operate I the second embodiment responsive to the state of a single binary signal from a single-bit output line of the approximate port (erg. port 1) of the microprocessor means. It is my intent, therefore, to be limited only by the scope of the appending claims and not by the specific details and instrument-amities presented by way of explanation herein.
single-chip microprocessor means internally containing at least a CPU and internal memory, for utilization of the data stored into dynamic memory means, which is external to said microprocessor means, and including means for providing a periodic clock signal; timing means for causing a refresh sequence for the external memory means to be initiated at a time not longer than the maximum time interval after a previous refresh sequence has been initiated; means for periodically providing a single external memory enable signal during each of a sequential multiplicity of operational cycles of said microprocessor means; at least two output ports of N bit-lines each; and refresh-addressing means for presenting a refresh row designation data to at least one designated one of said output ports responsive to an initiation of a refresh sequence by said timing means; and address means, activated directly and solely by said clock signal and said single external memory enable signal and responsive to said timing means initiating said refresh sequence, for sequentially addressing at least one cell along each of said plurality of memory means rows to refresh the information stored in all cells along that memory row having the cell then being addressed; said address means including: multiplexing means for selectively connecting each of the N bit-lines of said at least one designated one of the microprocessor means output ports to the associated one of the row-designating N inputs of said dynamic memory means, with the designation of the one output port of said microprocessor means then connected being responsive to different states of a selection signal; and logic means for providing the selection signal state responsive only to receipt of both said clock signal and said external memory enable signal from said microprocessor means, including a first flip-flop logic element having a clock input receiving said clock signal, a data input receiving said external memory enable signal, and an output providing said selection signal and having an output state determined by both the state of the data input signal and the occurrence of a first pulse of said clock signal exit clock input; and said memory means accepts the row designation data at said address inputs responsive to a row-address strobe signal generated by a change in said external memory enable signal prior to another pulse of said clock signal, occurring after said first clock signal pulse.
4. In combination, dynamic memory means for storing one bit of each of a plurality of data words in each cell along one of a plurality of rows each containing a multiplicity of said cells, said dynamic memory means requiring periodic refreshment, within a maximum time interval, of at least one cell along each of said rows;
and including a plurality N of address inputs for receiving data, responsive to a row-address strobe signal, for designating at least the row of said memory means to be addressed;
single-chip microprocessor means internally containing at least a CPU and an internal memory, for utilization of the data stored in said dynamic means, which is external to said microprocessor means, and including means for providing a periodic clock signal;
timing means for causing a refresh sequence for the external memory means to be initiated at a time not longer than the maximum time interval after a previous refresh sequence has been initiated; means for periodically providing a single external memory enable signal during each of a sequential multiplicity of operational cycles of said microprocessor means; and
means for providing a clearing signal which is normally enabled and is temporarily disabled, for the duration of a refresh sequence, responsive to said timing means determining that a refresh sequence is required; and address means, activated directly and solely by said clock signal and said single external memory enable signal and responsive to said timing means initiating said refresh sequence, for sequentially addressing at least one cell along each of said plurality of memory means rows to refresh the information stored in all cells along that memory row having the cell then being addressed, and including: a first flip-flop logic element having a clock input receiving said clock signal, a data input receiving said external memory enable signal, and an output having an output state determined by both the state of the data input signal and occurrence of a first pulse of said clock signal at said clock input; means for generating said row-address strobe signal responsive to a change in said external memory enable signal prior to another pulse of said clock signal, occurring after said first clock signal pulse; a second flip-flop logic element having a clock input receiving said clock signal, a data input receiving the inversion of the output signal of said first flip-flop logic element, and an output providing a column-address strobe signal responsive to the state of said data input when a different pulse of said clock signal occurs at said second flip-flop logic element clock input at a selected time after the occurrence of said another clock signal pulse;
counter means for sequentially counting, with one count change being responsive to each occurrence of said column-address strobe signal, through a plurality of different output states, equal at least to the number of the plurality of row addresses, said counter means being cleared to a lowest count responsive to the enablement of said clearing signal and enabled to count responsive to the disablement of said clearing signal; and means for providing the output count of said counter means to the plurality of memory means address inputs for designating the row of said memory means to be addressed.
a first flip-flop logic element having a data input receiving said external memory enable signal, a clock input receiving said clock signal and an output providing said selection signal and having each of the plurality of different states determined by both the state of the data input signal and the occurrence of a first pulse of said clock signal at said clock input, and means for providing said row-address strobe signal responsive only to a change in the external memory enable signal prior to another pulse of said clock signal occurring after said first clock signal pulse.
Priority Applications (2)
|Application Number||Priority Date||Filing Date||Title|
|US06516620 US4649511A (en)||1983-07-25||1983-07-25||Dynamic memory controller for single-chip microprocessor|
|Publication Number||Publication Date|
|CA1225162A true CA1225162A (en)||1987-08-04|
Family Applications (1)
|Application Number||Title||Priority Date||Filing Date|
|CA 459350 Expired CA1225162A (en)||1983-07-25||1984-07-20||Dynamic memory controller for single-chip microprocessor|
Country Status (2)
|US (1)||US4649511A (en)|
|CA (1)||CA1225162A (en)|
Families Citing this family (38)
|Publication number||Priority date||Publication date||Assignee||Title|
|JPH0738187B2 (en) *||1984-03-23||1995-04-26||株式会社日立製作所||Micro-computer that is configured to Lsi|
|NL8502811A (en) *||1985-10-15||1987-05-04||Philips Nv||An integrated memory circuit.|
|JPH0620292B2 (en) *||1985-11-12||1994-03-16||富士写真フイルム株式会社||Video signal circuit having a time axis correction function|
|US4797850A (en) *||1986-05-12||1989-01-10||Advanced Micro Devices, Inc.||Dynamic random access memory controller with multiple independent control channels|
|US4918650A (en) *||1986-12-22||1990-04-17||ON! Systems||Memory control interface apparatus|
|US4884234A (en) *||1987-06-29||1989-11-28||Ncr Corporation||Dynamic RAM refresh circuit with DMA access|
|US4878197A (en) *||1987-08-17||1989-10-31||Control Data Corporation||Data communication apparatus|
|US4845608A (en) *||1987-12-21||1989-07-04||General Electric Company||Digital speed controller using a single-chip microcontroller|
|US5587962A (en) *||1987-12-23||1996-12-24||Texas Instruments Incorporated||Memory circuit accommodating both serial and random access including an alternate address buffer register|
|US5093807A (en) *||1987-12-23||1992-03-03||Texas Instruments Incorporated||Video frame storage system|
|US5134699A (en) *||1988-06-24||1992-07-28||Advanced Micro Devices, Inc.||Programmable burst data transfer apparatus and technique|
|US5193193A (en) *||1988-09-14||1993-03-09||Silicon Graphics, Inc.||Bus control system for arbitrating requests with predetermined on/off time limitations|
|US5179667A (en) *||1988-09-14||1993-01-12||Silicon Graphics, Inc.||Synchronized DRAM control apparatus using two different clock rates|
|USRE35680E (en) *||1988-11-29||1997-12-02||Matsushita Electric Industrial Co., Ltd.||Dynamic video RAM incorporating on chip vector/image mode line modification|
|US5142637A (en) *||1988-11-29||1992-08-25||Solbourne Computer, Inc.||Dynamic video RAM incorporating single clock random port control|
|US5159676A (en) *||1988-12-05||1992-10-27||Micron Technology, Inc.||Semi-smart DRAM controller IC to provide a pseudo-cache mode of operation using standard page mode draws|
|JPH02260195A (en) *||1989-03-30||1990-10-22||Mitsubishi Electric Corp||Refresh control circuit|
|US4967397A (en) *||1989-05-15||1990-10-30||Unisys Corporation||Dynamic RAM controller|
|US5237672A (en) *||1989-07-28||1993-08-17||Texas Instruments Incorporated||Dynamically adaptable memory controller for various size memories|
|US5148535A (en) *||1989-08-31||1992-09-15||Tandy Corporation||Non-bus request refresh system for shortening refresh timing|
|US6751696B2 (en)||1990-04-18||2004-06-15||Rambus Inc.||Memory device having a programmable register|
|US5243703A (en) *||1990-04-18||1993-09-07||Rambus, Inc.||Apparatus for synchronously generating clock signals in a data processing system|
|DE69132721T2 (en) *||1990-04-18||2002-05-29||Rambus Inc||Input / output of an integrated circuit with a Hochleistungsbusschnittstelle|
|US5077693A (en) *||1990-08-06||1991-12-31||Motorola, Inc.||Dynamic random access memory|
|US5274786A (en) *||1990-11-28||1993-12-28||Hewlett-Packard Company||Microprocessor memory bus interface for inhibiting relatching of row address portions upon subsequent accesses including a same row address portion|
|JP3992757B2 (en) *||1991-04-23||2007-10-17||テキサス インスツルメンツ インコーポレイテツド||System memory, and a data processor, synchronous memory, peripheral devices to a system clock synchronized with microprocessor|
|US6223264B1 (en)||1991-10-24||2001-04-24||Texas Instruments Incorporated||Synchronous dynamic random access memory and data processing system using an address select signal|
|US5241222A (en) *||1991-12-20||1993-08-31||Eastman Kodak Company||Dram interface adapter circuit|
|GB9215962D0 (en) *||1992-07-28||1992-09-09||Rhythm Watch Co||System for connecting an ic memory card to a central processing unit of a computer|
|US5903911A (en) *||1993-06-22||1999-05-11||Dell Usa, L.P.||Cache-based computer system employing memory control circuit and method for write allocation and data prefetch|
|US5509134A (en) *||1993-06-30||1996-04-16||Intel Corporation||Method and apparatus for execution of operations in a flash memory array|
|JP3904244B2 (en) *||1993-09-17||2007-04-11||株式会社ルネサステクノロジ||Single-chip data processing apparatus|
|US6735683B2 (en)||1994-09-14||2004-05-11||Hitachi, Ltd.||Single-chip microcomputer with hierarchical internal bus structure having data and address signal lines coupling CPU with other processing elements|
|US5854939A (en) *||1996-11-07||1998-12-29||Atmel Corporation||Eight-bit microcontroller having a risc architecture|
|US5893923A (en) *||1997-05-12||1999-04-13||Lexmark International, Inc.||Microcontroller utilizing a circuit to select during reset process an internal or external memory as base memory|
|US6115321A (en) *||1997-06-17||2000-09-05||Texas Instruments Incorporated||Synchronous dynamic random access memory with four-bit data prefetch|
|US6240047B1 (en)||1998-07-06||2001-05-29||Texas Instruments Incorporated||Synchronous dynamic random access memory with four-bit data prefetch|
|US6798711B2 (en) *||2002-03-19||2004-09-28||Micron Technology, Inc.||Memory with address management|
Family Cites Families (3)
|Publication number||Priority date||Publication date||Assignee||Title|
|GB1540923A (en) *||1975-12-01||1979-02-21||Intel Corp||Programmable single chip mos computer|
|US4249247A (en) *||1979-01-08||1981-02-03||Ncr Corporation||Refresh system for dynamic RAM memory|
|US4328566A (en) *||1980-06-24||1982-05-04||Pitney Bowes Inc.||Dynamic memory refresh system with additional refresh cycles|
Also Published As
|Publication number||Publication date||Type|
|US5265218A (en)||Bus architecture for integrated data and video memory|
|US6401155B1 (en)||Interrupt/software-controlled thread processing|
|US5265231A (en)||Refresh control arrangement and a method for refreshing a plurality of random access memory banks in a memory system|
|US4855959A (en)||Dual port memory circuit|
|US5329489A (en)||DRAM having exclusively enabled column buffer blocks|
|US4894770A (en)||Set associative memory|
|US5765185A (en)||EEPROM array with flash-like core having ECC or a write cache or interruptible load cycles|
|US4499536A (en)||Signal transfer timing control using stored data relating to operating speeds of memory and processor|
|US4989181A (en)||Serial memory device provided with high-speed address control circuit|
|US4818932A (en)||Concurrent memory access system|
|US5184325A (en)||Dynamic associative memory with logic-in-refresh|
|US5519847A (en)||Method of pipelining sequential writes in a flash memory|
|US4701843A (en)||Refresh system for a page addressable memory|
|US4394763A (en)||Error-correcting system|
|US5283792A (en)||Power up/power down controller and power fail detector for processor|
|US6467015B1 (en)||High speed bus interface for non-volatile integrated circuit memory supporting continuous transfer|
|US4617624A (en)||Multiple configuration memory circuit|
|US4692859A (en)||Multiple byte serial data transfer protocol|
|US4044339A (en)||Block oriented random access memory|
|US5033027A (en)||Serial DRAM controller with multi generation interface|
|US5560000A (en)||Time skewing arrangement for operating memory in synchronism with a data processor|
|US5920884A (en)||Nonvolatile memory interface protocol which selects a memory device, transmits an address, deselects the device, subsequently reselects the device and accesses data|
|US4654787A (en)||Apparatus for locating memory modules having different sizes within a memory space|
|US6356987B1 (en)||Microprocessing device having programmable wait states|
|US5495491A (en)||System using a memory controller controlling an error correction means to detect and correct memory errors when and over a time interval indicated by registers in the memory controller|