RECIRCULATING LOOP MEMORY ARRAY WITH A SHIFT REGISTER BUFFER

Abstract: A recirculating loop memory array is adapted for the parallel as well as serial fetching and storing of data while requiring only a single input and single output data terminal. Each (1, 2... N) of the array is provided with a shift register stage (1′, 2′...N′) for parallel data accessing. A particular recirculating bit in all of the loops can be fetched in parallel into their respective shift register stages and, conversely, the bits stored in the shift register stages can be loaded in parallel into predetermined recirculating bits of their respective loops. The shift register (7) is operated at high speed so that it may be completely loaded or unloaded during the interval between successive steppings of the loops.

Description: The present invention relates to a memory array including a plurality of recirculating memory elements, said memory elements being clocked in synchronism, so that the corresponding bits recirculate in their respective loops with the same time phase, and an input shift register having a number of cells equal in number to the number of said memory elements. Such a memory array is known from IBM Technical Disclosure Bulletin Vol. 13 No. 7 December 1970, page 1879, which consists of a plurality of recirculating shift registers, which are connectable to a recirculating buffer shift register by a plurality of input/output gates. The data to be stored are entered into the buffer shift register serially and, controlled by a clock, are transferred in parallel, one bit of each word of the data to the memory shift registers. Due to the fact that a recirculating buffer shift register is used this memory array, which moves information into and out of the buffer shift register twice as fast as the movement of information within the memory shift registers, this known memory array can operate only in a staggered fashion and is principally not suitable for any other operation, particularly not for considerably higher speed. Recirculating memories of the series-parallel-series type using charge coupled devices are known from ONDE ELECTRIQUE 1978 Vol. 58, No.4 pages 312 - 318, particularly figs. 6 and 9. In order to really increase the operational speed of memory arrays having a plurality of recirculating loop memory elements that are buffered for parallel loading and fetching of data the invention proposes a memory of this type which is characterized by first input means for selectively connecting each cell to a respective one of said memory elements for simultaneously writing data into said memory elements in parallel, first output means for selectively connecting each cell to a respective one of said memory elements for simultaneously reading data from said memory elements in parallel, and by control means for clocking and shifting data into or out of said shift register through all the cells in the time interval between successive clocking steps of said memory elements. Each recirculating element or loop is selectively connected to a respective shift register cell so that, on command, a particular recir culating bit in all of the loops can be fetched in parallel into their respective cells, and conversely, so that the bits stored in the shift register cells can be loaded in parallel into predetermined recirculating bits of their respective loops. By first loading all of the shift register cells with binary data, the corresponding bit in each of the recirculating loops can be loaded in parallel by selectively connecting the shift register cells to the recirculating loops. Then, the shift register is reloaded with new binary data and the next bit position in each of the recirculating loops is loaded in similar parallel fashion. This process is repeated until all of the bit positions in the recirculating loops have been loaded. Data fetching is accomplished in an analogous manner. That is, a given corresponding bit position in each of the recirculating loops is loaded into a respective shift register cell and then the shift register is emptied of its stored data by shifting. Then the next bit in all of the recirculating loops is fetched into the respective cells of the shift register and the shift register is emptied as before. The shift register is operated at logic speeds which are much faster than the bit recirculating rate of the memory loops. Consequently, the entire shift register is loaded in the interval between successive steppings of the bits in the recirculating loops, provided that the number of recirculating loops and, hence, the length of the shift register is not too extensive. In the case of extensive loop arrays, the array can be partitioned into groups of a smaller number of loops with a correspondingly shortened shift register selectively connected to each of the loop groups. An embodiment of the invention is described below. The accompanying drawings show in Fig. 1 a simplified block diagram of a CCD memory array adapted for data fetching and storing in accordance with the present invention; and in Fig. 2 a simplified block diagram representing in greater detail a typical CCD loop of Fig. 1 and its selective connection to its respective shift register cell. The memory array of Fig. 1 comprises a multiplicity of recirculating CCD loops 1, 2 ... N which preferably are individually addressible for writing and reading purposes associated with the storage of digital data. The loops are individually addressible by respective loop select signals on lines 3 at the outputs of address decode 4. Loop address signals are applied via lines 5 from a source (not shown) located off chip 6 containing the loops. The serial bit outputs from each of the loops 1 through N are selectively applied to a respective shift register cell 1', 2' ... N' comprising shift register 7. Shift register 7 receives digital data from line 8 for the serial loading of the register stages. The data stored at any given time within register 7 can be serially shifted out via line 9 and driver circuit 10 and made available on output line 11. Shift register 7 is employed for the parallel data fetching and for the parallel data loading associated with the handling of data signals as well as test signals with the CCD loop memory array at different times. Apparatus is also provided for the serial data fetching and the serial data loading of an individually addressed loop. Input data is applied via line 31 in the presence of write commands on lines 34 and 48 supplied by command control 13. Similarly, data stored within any addressed loop is fetched via lines 60, 61 and 62, AND gates 50, 51 and 52, OR gate 36 AND gate 37 (when conducting) and driver 38. Gate 37 is rendered conductive by a read command on line 39. Command signals for the fetching and storing of data in the array loops are applied by lines 12 to command control timing logic 13. Phase clocks for the control of shift register 7 and the array loops are applied by lines 14 to command control and timing logic 13. The phase clocks are of such frequency and phase to permit the entire shift register 7 to be loaded or unloaded in the time between the stepping of data from one bit position to the next position within each of the recirculating loops. Stepping clocks are applied to loops 1 through N via line 40. Shift clocks are applied to the individual shift register stages via line 15. Parallel read and parallel write commands are applied by lines 16 and 17, respectively, to the individual shift register stages. Parallel read command signals and serial read command signals are applied alternatively to lines 16 and 39, respectively, by command control 13. The same alternative application is made of the parallel write command signals and serial write command signals to lines 17 and 48, respectively. Referring now to Fig. 2, the typical CCD loop of Fig. 1 comprises AND circuit 18, OR circuit 19, series-parallel-series CCD registers 20, 21 and 22 and regenerative amplifier 23. When there is no write command on line 34 during the read/write enable interval, AND circuit 25 produces a zero output which is inverted (26) to render AND circuit 18 conductive to each of the recirculating data bits. The recirculating loop is broken, by the non conductance of gate 18, upon the appearance of a write command on line 34. A signal appears on line 34 whenever a serial write command occurs on line 48 or a parallel write command occurs on line 17. Input data gate 27 conducts in the simultaneous presence of a respective parallel write command signal on line 17 and input data on line 29. The output of gate 27 is coupled into the loop via OR circuit 19. Data is read out of the recirculating loop via AND gate 30 and line 32 upon application of a parallel read command on line 16 and in the absence of a write command signal on line 34. Loop data signals are applied to AND gate 50 along with the respective loop selection signal on line 3. The output of gate 50 on line 49 is applied to OR gate 36. Write command signals are applied to AND gate 25 together with the respective loop selection signal on line 3. The serial input data bits are introduced into the loop via line 31 and OR circuit 19. The recirculating bits are blocked, during the writing interval by the non-conduction of gate 18 due to the conduction of gate 25 and the inversion provided by inverter 26, as previously explained. It can be seen from the preceding specification that provision is made, in accordance with the present invention, for the parallel accessing of any addressed loop for data storage and fetching purposes as well as for the serial accessing of all loops at the same time. In the former instance, one corresponding bit is extracted from each of the loops and is applied to the respective stage of an output shift register. The register is shifted at a high rate so that its contents may be emptied (or filled, as the case may be) in the time interval between successive steppings of the recirculating loop bits. The parallel loop accessing mode is of special importance when utilized either as a high speed storage testing facility or as a cache data buffer. It also provides a paging hierarchy organization whereby data is distributed between all loops rather than within a single loop.

Claims: A memory array including a plurality of recirculating memory elements (1, 2 ... N), said memory elements being clocked in synchronism, so that the corresponding bits recirculate in their respective loops with the same time phase, and a shift register (7) having a number of cells (1', 2' ... N') equal in number to the number of said memory elements, characterized by first input means (17, 27, 29) for selectively connecting each cell to a respective one of said memory elements for simultaneously writing data into said memory elements in parallel, first output means (16, 30, 31) for selectively connecting each cell to a respective one of said memory elements for simultaneously reading data from said memory elements in parallel, and by control means (13, 15) for clocking and shifting data into or out of said shift register through all the cells in the time interval between successive clocking steps of said memory elements. The memory array of claim 1 wherein the memory elements (1, 2 ... N) are charge coupled devices. The memory array of claim 1, further including second input means (31, 47) independent of the shift register (7) for writing data into the memory elements (1, 2 ...N). The memory array of claim 1, further including second output means (50, 49, 36 - 38) independent of the shift register (7) for reading data from the memory elements (1, 2 ... N). The memory array of claim 3 further including a command and control timing logic (13) for operating the first and second input means (17, 27, 29; 31, 47) and the first and second output means (16, 30; 50, 49, 36 - 38) alternatively.

Inventors: AICHELMANN, FREDERICK JOHN, JR., NEVES, FERNANDO
Applicants: INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1981
Main classification: G11C19
IPC codes: G11C19, G11C27