Patent Publication Number: US-4319343-A

Title: Programmable digital memory circuit

Description:
BACKGROUND OF THE INVENTION 
     1. Field Of The Invention 
     The present invention relates to digital computer memories. More specifically, the present invention is directed to a selection circuit for programming digital computer memory circuits. 
     SUMMARY OF THE INVENTION 
     An object of the present invention is to provide a novel programmable digital memory circuit for enabling memory circuit selection and data substitution in digital computer memory circuits. 
     In accomplishing this and other objects, there has been provided, in accordance with the present invention, a programmable memory circuit having a plurality of read only memories and a digital storage means having addressable storage locations. A circuit means applies sequential memory addresses in parallel to the memories and the storage means while control signal means responds to the memory addresses to concurrently enable and disable either the memories or the storage means. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     A better understanding of the present invention may be had when the following detailed description is read in connection with the accompanying drawing, in which the single figure is a block diagram of a programmable digital memory circuit embodying an example of the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     1. Detailed Description 
     Referring to the single figure drawing in more detail, there is shown a block diagram of a programmable digital memory circuit embodying an example of the present invention for selecting ones of a plurality of read only memory (ROM) chips. The ROM chips are inserted into respective memory sockets A through H on a printed circuit card to form a first memmory bank, such memory chips and sockets being well-known in the art. A first group of memory address bits 0 to 10 from any suitable memory address circuit (not shown) for reading the data stored in a memory bank are connected in parallel to corresponding address input pins on each of the memory sockets A through H and to a first programmable read only memory identified as a mapping PROM 2. The PROM 2 is also supplied on inuts A1 through A6 with a second group of memory address bits 11 through 15 and a memory write signal on input A7. The outputs of the mapping PROM 2 selected by address bits 11 to 15 on output lines D1 through D7 are used to select the memory socket to be utilized. Specifically, output lines D1 and D2 are applied to pins 18 and 21 on each of the sockets A through B as socket selection signals. Output lines D3, D4 and D5 are applied to a three to eight decoder 4 used to decode the status of the digital signals on the three lines D3, D4 and D5 to ones of a plurality of eight output lines applied to respective ones of the sockets A through H on pin 20 of each of the sockets A through H. The output lines D6 and D7 from the mapping PROM 2 are used to select among memory banks with each memory bank having a group of the IC sockets similar to those shown as sockets A through H. 
     Memory address bits 5 through 13 are also applied to the address inputs of a second programmable read only memory identified as an overlay trap PROM 6. The outputs D 0 , D 1 , D 2  and D 3  from the overlay trap PROM 6 selected by the address bits 5 to 13 are applied to respective inputs 1C, 2C, 3C and 4C of a select 1 of 4 circuit 8. Memory address bits 14 and 15 are applied to respective inputs A and B of the select 1 of 4 logic circuit 8. An output from the logic circuit 8 on input 1Y is used as an overlay enable signal and is applied through an inverter 10 to an overlay patch PROM 12 and to each of the memory sockets A through H on signal line 14 to an enable input terminal. The &#34;3 to 8 decoder 4&#34; and the select 1 of 4 circuit 8 are devices which are well-known in the art and are available as integrated circuit chips. 
     2. Mode Of Operation 
     The memory address bits 0 to 10 are applied to all of the memory integrated circuit sockets A through H to effect a memory ready operation from the memory chips of the ROMS plugged into the sockets A to H. The output from a memory chip however is determined by the combination of additional output signals from the mapping PROM 2 and the three to eight decoder 4 which combination enables a specific memory chip in the sockets A to H to be selected. Specifically, the memory address bits 11 to 15 are applied to inputs A1 through A5 of the mapping PROM 2 while a memory &#34;write&#34; signal is applied to enable input A6 of the mapping PROM 2 to be used when a random access memory chip is used in any of the sockets A to H. The mapping PROM 2 has output signals on outputs D1 through D7 which are produced as a result of the memory address bits 11 through 15 and the memory write signal. The outputs D1 and D2 are applied in parallel to all of the memory sockets A through H on pins 18 and 21. However, the outputs D1 and D2 are configured or selected for each memory address to be applicable to the one of the memory chips in the sockets A through H selected by the outputs D3 to D5 whereby all of the other memory chips would be non-responsive thereto. 
     The outputs from the mapping PROM 2 shown as outputs D3, D4, and D5 are applied to a three to eight decoder 4 which is effective to produce an output signal on one of eight output lines in response to combination of the three input signals applied thereto. These output lines are applied to the enable input 20 of each of the memory sockets A through H. Thus, only the desired one of the primary chips in one of the sockets A through H is enabled by an output signal on one of the output lines from the three to eight decoder 4. The outputs D6 and D7 from the mapping PROM are used to select banks of memory chips. Thus, in the illustrated example, each memory bank would have eight memory sockets A through H, and the select one and select two signals from the outputs D6 and D7, respectively, of the mapping PROM 2 would be configured to select one of four banks of memory IC sockets, i.e., a selection of eight memory sockets from a total of 32 memory sockets available in the memory system. Thus, the memory address bits 0 to 10 are applied to all of the memory chips of the read only memories, however, only the memory chip selected by the mapping PROM 2 is effective to produce an output signal on the output lines from the memory socket. Thus, the circuit can use many different types of memory chips (ROMS) without altering the physical layout of the printed circuit board by assigning to each data byte in the mapping PROM both the socket address of where the memory chip being accessed is located and the correct configuration of the pins 18 and 21 on the socket having the memory chip desired. Since pins 18 and 21 on the most popular memory chips are the only pins that differ in configuration between chip types, the selection of these pins independently per socket allows many different types of memory chips to be located concurrently on a printed circuit board without the necessity of having all the memory chips be of an identical type. 
     In order to either correct the firmware code errors or permit expansion of firmware memory read only memory (ROM) chips, an overlay patch PROM 12 is used to substitute information stored in the overlay patch PROM 12 for information requested from various locations in the memory chips used in the memory sockets A through H. Thus, code corrections are made by overlaying a portion of the overlay patch PROM 12 at an address code which is found in an overlay trap PROM 6. Initially, the overlay trap PROM 6 is unprogrammed whereby all locations are logical lows. Each bit location in the overlay trap PROM 6 can act as an enable/disable selection for a 32 byte data block in the overlay trap PROM. When a bit location in the overlay trap PROM is previously programmed, i.e., converted to a logical high, and when the memory address bits 0 to 10 select that location in the main firmware memory of the sockets A through H, the main firmware is disabled by the signal on the overlay enable line 14 which signal concurrently enables the patch PROM 12 through the logic invertor 10 and the information in the patch PROM 12 is selected by the address bits 0 to 10 and substituted therefore. Since there are 256 bit locations in a typical overlay trap PROM 6 there are 256 32 byte patches from the patch PROM 12 which may be substituted for the main firmware memory data. Each data patch may be added simply by coding one more location in the overlay trap PROM 6 and inserting the corrected firmware code into the overlay patch PROM 12. The memory address bits 5 to 13 and 14 to 15 are used in a combination of the overlay trap PROM 6 and the select one of four circuit 8 to develop an enable signal on line 14 for the overlay patch PROM 12 to provide substitute data for a location in one of the memory chips in the sockets A through H. The first five memory address bits 0 to 4 are not used for the trap PROM 6 addresses since the patches are in 32 byte lengths whereby the first five address bits can be ignored 2 5  =32. Such a system is designed specifically to facilitate program changes, error connections and expansions of firmware. This facilitates the progress of a program memory development to be advanced to a so-called masked ROM at an early stage on a program design project and eliminates the need to fill memory bank sockets A to H with more expensive reprogrammable versions of the memory chips whenever a growth is expected in the firmware design. 
     Accordingly, it may be seen that there has been provided, in accordance with the present invention, an improved memory programming circuit for providing memory selection independent of memory chip type and substitution of information at locations within any of the memory chips. While the example utilizes a direct disable of memory chips, if such a disable function is not available at the chip, then the disable function can be attained by disabling the 3 to 8 decoder 4 when the patch PROM 12 is enabled and vice versa.