Semiconductor memory device for block access applications
RELATED PATENT APPLICATIONS 
     This application is related to a U.S. patent application by the title of &#34;Semiconductor Memory Device for Mass Storage Block Access Applications&#34; having Ser. No. 08/421,652 filed on Feb. 13, 1995. 
     FIELD OF THE INVENTION 
     This invention relates to integrated circuit semiconductor memories employed in block access applications. 
     BACKGROUND OF THE INVENTION 
     Semiconductor memories are often employed in systems with a need to transfer blocks of information from one location or peripheral to another thereby serving as temporary storage locations. Any limitations of such memories effect system performance in terms of speed and efficiency. For example, throughput of systems employing prior art memory is substantially reduced when the system&#39;s peripheral or utilization devices are restricted in accessing blocks of information from the memory concurrently. Discussion of prior art memory architectures in specific applications will aid in understanding reasons for the reduction of system performance due to memory design limitations. 
     FIG. 1 shows an application specific memory according to U.S. Pat. No. 4,541,075, by Dill et al. where the memory is a semiconductor or IC device. Dill employs a main memory array coupled to a port and arranged in rows and columns, each row having the same number of n-bit wide words. Additionally incorporated in the semiconductor memory is a row buffer register which can transfer rows of data between the main memory and a second Input/Output port for accessing the row buffer register in either serial or parallel mode. A limitation of the memory device described in Dill is that only one utilization device can independently use the second I/O port. Furthermore, writing of a selected n-bit wide word sometimes referred to as partial write or masked write, from the row buffer register to a row of the main memory can not be achieved by the memory device proposed by Dill et al. In this memory device the partial write can be emulated by &#34;memory row read modify write&#34; operation which includes the steps of: transferring the row from the main memory to the row buffer register, modifying the row buffer register through the second I/O port, and transferring the row buffer register back to the row of the main memory. This &#34;memory row read modify write&#34; operation assumes that the data of the same row in the main memory was not changed between the read and write back. Note that data corruption will occur if during a &#34;memory row read modify write&#34; operation, part of the data in the main memory row was modified through the first I/O port (the port coupled to the main memory). This is a general limitation of the prior art and will be discussed in more detail below. 
     A major limitation in providing access by multiple independent utilization devices through a dedicated port per utilization device to a dedicated row buffer register is that concurrent write to the same row of the main memory by two or more utilization devices is not possible because partial write is not supported. FIG. 2 shows an extension of the memory device taught by Dill et al. including yet a third I/O port for accessing a second row buffer independent of the first row buffer for use by a second utilization device. FIG. 3 shows two blocks in the main memory wherein the tail end of block 1 and beginning of block 2 are in the same row of the main memory (row 2). Consider an application in which the first utilization device is using the first row buffer register through the second I/O port and a second utilization device is using the second row buffer register through the third I/O port, and furthermore utilization device 1 is accessing block 1, and utilization device 2 is accessing block 2. Now consider the following sequence of operations in this example: utilization device 1 reads row 2 of the memory into the first row buffer register and starts modifying the first row buffer register through the second I/0 port, utilization device 2 reads the same row of memory into the second row buffer register and starts modifying the second row buffer register through the third I/0 port. Utilization device 1 completes modifying the beginning of the row buffer register which is part of block 1 and writes it back to the row of the memory, utilization device 2 completes modifying the tail end of the second row buffer register which is part of the block 2 and writes it back to the row of the memory. It should be apparent that the last operation will then overwrite the data of block 1 which was modified by utilization device 1, and causes data corruption. 
     While problems as discussed above such as data corruption, etc. can be avoided, this is only achieved at the cost of limiting memory utilization by requiring that either the size of the block of data to be a multiple of a row size (which may not always be possible) or waste portions of the memory. 
     Furthermore, multiple parallel-by-bit I/O ports each coupled to a utilization device increases the number of pins of the memory device package, which increases cost of the memory device. 
     The semiconductor memory as taught by the present invention resolves limitations of prior art memories to achieve higher system performance. An application of the present invention as taught in a related patent application with a title of Semiconductor Memory Device for Mass Storage Block Access applications and Ser. No. 08/421,652, would be in disc drives where there is a need for a cost effective high performance multiport memory for allowing independent accesses to the memory by multiple peripherals or utilization devices. 
     BRIEF SUMMARY OF THE INVENTION 
     The present invention includes a semiconductor memory device having multi-port accessing capability for increasing the efficiency and throuput of systems in which it is employed. More specifically, in applications where information needs to be transferred in blocks of data, the semiconductor memory device provides a means for simultaneously and independently accessing such blocks by various utilization or peripheral devices located externally to the memory. 
     An object of this invention is to increase the effective transfer rate of a semiconductor memory. 
     Another object of this invention is to provide access to random access memory through first and second pods for increasing the effective transfer rate of the memory device. 
     Yet another object of the present invention is to separate sequential memory access by multiple independent utilization devices through the second port from the random memory access through the first port. 
     According to the present invention, a semiconductor memory device is configured to provide improved system performance in block oriented applications such as storage subsystem. Specifically, the present invention includes a main memory configured as a dynamic random access memory array, combined with a secondary memory having a data register file and a mask register file, a second parallel-by-bit interface for random accesses to the data and mask register files, and circuit for transferring data between the main memory array and the data register file. It is obvious to people of ordinary skill in the art that static random access memories can be employed as the main memory without departing from the spirit of the invention. 
     According to the present invention, data from a row of the main memory array can be transferred on a column-by-column basis into a register of the data register file, each of which have the same number of bits as in a row of the main memory array. Furthermore any combination of words within a register of the data register file, can be transferred into a row of the main memory array, wherein the combination of the words is selected by the contents of corresponding register of the mask register file. 
     An important aspect of the present invention is that sequential accesses are performed through the second interface and the data register file, and furthermore random access to any word within the register files can be performed through the second interface. 
     Furthermore in order to minimize the accesses to the mask register file a simultaneous write operation, and a write reset operation to the register files are invented. In the simultaneous write operation when writing to a word of data register file a predetermined pattern is simultaneously written to the corresponding word of the mask register file. This pattern corresponds to selecting all bits of the word when transferring with mask from data register file to the main memory. In the write reset operation a second predetermined pattern is written to all the bits of the selected register of the register files. The second predetermined pattern corresponds to a pattern deselecting all the bits when transferring with mask from data register file to the main memory. 
     In another embodiment of the present invention, independent sequential addressing of each register of the register file is included, which provides the address to select a word within a register of the register file during accesses to the register file through the second interface. 
    
    
     These and other objects, advantages, aspects and features of the present invention will be more fully understood and appreciated by those skilled in the art upon consideration of the following detailed description of a specific embodiment, presented in conjunction with the accompanying drawings. 
     BRIEF DESCRIPTIONS OF THE DRAWINGS 
     FIG. 1 shows the block diagram of a multiport DRAM of prior art 
     FIG. 2 shows an extension of multiport DRAMs of prior art 
     FIG. 3 shows two blocks of data in the memory wherein a row of the memory partially is included in both 
     FIG. 4 is a block diagram showing the architecture of a memory device in accordance with one embodiment of the present invention. 
     FIG. 5 is a block diagram of yet another embodiment of the invention having a clock (CLK) port wherein the operations through the second port are synchronized to the clock. 
     FIG. 6 is a block diagram of yet another embodiment of the invention using single port register file for the secondary memory 
     FIG. 7 is a block diagram of yet another embodiment of the invention having an address counter for sequential addressing of registers of the register file 
     FIG. 8 is a block diagram of yet another embodiment of the invention for having only a data register file specifically for applications wherein each block consists of one or more complete rows of the main memory. 
     FIG. 9 illustrates the timing diagram for transferring between the main memory and the secondary memory 
     FIG. 10a illustrates the timing diagram of read and write operation of the secondary memory 
     FIG. 10b illustrates the timing diagram of simultaneous write operation of the secondary memory 
     FIG. 10c illustrates the timing diagram of write reset operation of the secondary memory 
     FIG. 11 illustrates the timing diagram of synchronous read and write operations of the secondary memory 
    
    
     DETAILED DESCRIPTION OF A SPECIFIC EMBODIMENT 
     Generally, memory such as random access memory(RAM) or read-only memory (ROM) is organized in rows and columns of storage locations. In block access applications, data transferred to and from memory is organized in blocks of sequential data. In such applications, the present invention increases system throughput and efficiency by allowing simultaneous accesses to the same block of memory data by external devices without corrupting data in adjacent blocks. An overall block diagram of the present invention is depicted in FIG. 4. All of the logic blocks shown in FIG. 4 reside in a semiconductor memory device 200. 
     Memory device 200 includes a memory array 202 having storage locations arranged in rows and columns. Although other types and sizes can be utilized without departing from the spirit of the invention, in the specific embodiment as depicted in FIG. 4 memory array 202 is a 128K word DRAM. Coupled to memory array 202 through transfer logic 220, there is a secondary memory 221 with rows and columns of storage locations wherein the width of each row of the secondary memory is the same as the width of a row in the main memory. Accesses to the memory array 202 are through a first interface 210-218 which is additionally used to transfer data between memory array 202 and secondary memory 221. A second interface 231-239 allows accessing secondary memory 221. 
     The first interface includes an address (MA 0-8 ) port 210, data input/output (MD 0-7 ) ports 211, a row address (RAS) port 212, a column address strobe (CAS) port 213, an output enable (G) port 214, a write enable (W) port 215, a transfer operation select (XFER) port 216, a transfer with mask (XwM) port 217, and a transfer row address (XRA 0-3 ) port 218. 
     The memory device 200 also includes control logic circuit 209 for generating timing and control signals during accesses to main memory 202, and for transfers between the main memory 202 and secondary memory 221 in response to the input terminals 210-218. Address port 210 (MA 0-8 ) is coupled to address logic 203 located in memory device 200. Address logic 203 provides row address information 259 to row decode logic 207 and column address information 258 to column decode logic 208. Further included in memory device 200 is a sense amplifier circuit 204 having a plurality of sense amplifiers connected to each column of array 202 and a data input/output circuit 206 coupled to data input/output (MD 0-7 ) port 211. The forgoing architecture is common to many known dynamic RAMs. 
     The second interface 231-239 of the memory device 200 includes a second parallel-by-bit data input/output (PD 0-7 ) port 231, second row address (PRA 0-3 ) ports 238, second column address (PCA 0-8 ) ports 239. The second interface further includes a chip select (PS) port 233, a second write enable (PW) port 235, a second output enable (PG) port 234, a function select (PSF) port 236, and a reset (PR) port 237. 
     The memory device 200 further includes a secondary memory 221 having a data register file 222, and a mask register file 224, and a control logic circuit 229 for controlling accesses to secondary memory 221 through data input/output port 231. Row decode circuit 225 selects a row of the secondary memory 221 during transfers between the secondary memory 221 and data input/output port 231, and row decode circuit 223 selects a row of the secondary memory during transfer between main memory 202 and the secondary memory 221. Input/output circuit 226 is coupled to column decode logic 228 and bidirectionally coupled to data I/O (PD 0-7 ) port 231. 
     The data register file 222 has a plurality of rows of dual port registers. Data register file 222 has two independent data I/O ports. Furthermore, data register file 222 is coupled to row decode logic blocks 223 and 225 through corresponding row select ports located in data register file 222. Mask register file 224 is also configured as a dual port register file including plurality of rows of dual port registers and having its own two independent data I/O ports. Additionally, mask register file 224 is coupled to row decode logic blocks 223 and 225 through its corresponding row select ports. 
     Address (MA 0-8 ) port 210 is coupled to the address logic 203. Outputs of the address logic 203 are coupled to the row decode circuit 207, and column decode circuit 208. The output of row decode circuit means 207 is coupled to the rows of the main memory 202. The column lines of the main memory means 202 are coupled to the sense amplifier circuit means 204, transfer circuit 220, and data I/O circuit 206. The output of column decode circuit 208 is coupled to data I/O circuit 206. Data I/O circuit means 206 is coupled to the first data input/output ports 211. Transfer circuit 220 is coupled between main memory 202 and secondary memory 221. 
     Control logic circuit 209 is coupled to ports 212-217 of the first interface. In FIG. 4 the coupling of the control logic circuit 209 to other components within the memory device 200 is represented diagrammatically by the output line 251, 252, 253, 254, 255, and 256. The output lines 251-256 represent the internal connections which are necessary to describe the structure and operation of this embodiment of the present invention. 
     The transfer row address (XRA 0-3 ) port 218 is coupled to row decode circuit 223. The output of the row decode circuit 223 is coupled to row select ports of the data register file 222, and first row select ports of the mask register file 224. 
     Row address (PRA 0-3 ) port 238 is coupled to row decode circuit 225. The output of row decode circuit 225 is coupled to row select ports of the data register file 222, and row select ports of the mask register file 224. 
     Data I/O ports of the data register file 222 are coupled to transfer circuit 220, additional I/O ports of the data register file 222 are coupled to data input/output circuit 226. Data I/O ports of the mask register file 224 is coupled to transfer circuit 220, additional I/O ports of the mask register file 224 are coupled to data input/output circuit 226. 
     Column address (PCA 0-7 ) ports 239 are coupled to column decode circuit 228. The output of column decode circuit 228 is coupled to data input/output circuit 226. Data input/output circuit 226 is coupled to data input/output ports 231. 
     Control logic circuit 229 is coupled to ports 233-237 of the second interface. In FIG. 4 the coupling of control logic circuit 229 to other components within the memory device 200 is represented diagrammatically by the output line 261, 263, and 264. The output lines 261, 263, and 264 represent the internal connections which are necessary to describe the structure and operation of this embodiment of the present invention. 
     The following description of the operation of the present inventions refers to the specific embodiment of the present invention shown in FIG. 4 and the timing diagrams shown in FIG. 9, and FIG. 10 a-c. 
     When the signal on operation select (XFER) port 216 is deasserted (logic level high) on the falling edge of signal RAS on port 212, semiconductor memory 200 operates in a mode in which the main memory 202 and the secondary memory 221 operate independently and can be separately and independently accessed through the first and second interfaces respectively. In this mode the operation of main memory 202 is similar to commercially available DRAMs such as TMS48C128 from Texas Instruments Inc. 
     When the signal on the operation select (XFER) port 216 is asserted (logic level low) on the falling edge of the signal on the RAS port 212, the semiconductor memory 200 operates in a transfer mode in which data is transferred between main memory 202 and secondary memory 221. 
     FIG. 9 shows the timing diagram for the transfer operation. Referring to FIG. 9, the transfer operation is invoked by low logic level signal on XFER port 216 on the falling edge of RAS 212. When the RAS 212 is asserted it specifies that both the first row address is valid on the first address (MA 0-8 ) ports 210 which selects a row of main memory 202, additionally the secondary memory row address is valid on the transfer row address (XRA 0-3 ) ports 218 selecting a row of secondary memory 221. The RAS 212 initiates the memory operation which causes the data in the form of capacitor charge from the specified row of the memory array 202 to be switched to the column lines. This row remains active until the RAS 212 is deasserted at the end of the memory cycle. The sense amplifiers sense the stored column charge and force the column voltage to a voltage corresponding to a logical `1` or `0` state based on the stored charge state. This also causes a refresh of the capacitor storage elements of the specified row of the memory array 202. In the transfer operation the write enable signal W 215 determines the transfer direction. When the W 215 is deasserted the data will be transferred from the selected row of the main memory array 202 to the selected row of the secondary memory 221. When the W 215 is asserted and XwM 217 is asserted on the falling edge of W 215 a combination of data from the selected row of data register file 222 will be transferred to the selected row of main memory array 202, wherein the combination is selected by the contents of the corresponding row of the mask register file 224. When the W 215 is asserted and XwM 217 is deasserted on the falling edge of W 215 data from the selected row of data register file 222 will be transferred to the selected row of main memory array 202 and the contents of the corresponding row of the mask register is ignored. 
     When RAS 212 is asserted after a certain address hold time the row address can be removed from memory address terminals and subsequently the column address can be applied to the memory address lines. When the column address is valid the CAS signal is asserted. During a transfer operation from memory array 202 to the secondary memory if the memory output enable G is asserted the word selected by the first column address will be driven on the first data input/output ports 211. 
     The functional operation of the secondary memory 221 as invoked by the control signals on PS port 233, PG port 234, PW port 235, PSF port 236, and PR port 237 are summarized in Table 1. 
     With signal on PS port 233 deasserted (logic level 1) no operation is selected. The signals on PRA 0-3  port 238 select one of the rows of the secondary memory 221. The signal on PRA 3  port selects either data register file or mask register file, and signals on PRA 0-2  ports select one of the 8 rows of the selected register file. The signals on PCA 0-7  port 239 select one of the words of the selected row of the secondary memory 221. 
     FIG. 10a shows the timing diagram for secondary memory 221 read and write operations. With signals on PS port 233 asserted (logic level 0), and PW port 235 deasserted (logic level 1), then after the latter of a t AA  delay from valid address values on PRA 0-3  238 and PCA 0-7  239 or a t OLZ  delay from the signal on PG port 234 asserted (logic level 0) the selected word from the secondary memory 221 will be driven on the PD 0-7  ports 231. 
     With signal on PS port 233 asserted (logic level 0), address signals on PRA 0-3  port 238 and PCA O-7  port 239 must be valid for a minimum t AS  before assertion of signal on PW port 235 and held valid until a minimum of t AH  after negation of the signal on PW port 235, the signals on PD 0-7  ports 231 will be written to the selected word of the secondary memory, the signals on the PD 0-7  ports 231 must be valid a t DS  before deassertion of signal on PW port 235 and held valid until a t DH  after negation of signal on PW port 235. 
     FIG. 10b shows the timing diagram for secondary memory 221 simultaneous write operation. The simultaneous write operation is selected when in a write operation the signal on PSF port 236 is asserted (logic level 0) along with valid address signals on PRA 0-3  port 238 and PCA 0-7  port 239. In a simultaneous write operation both data register file and mask register file are selected, the signals on PRA 0-2  port select a row of the data register file and a corresponding row in the mask register file, the signals on PCA 0-7  port 239 select a word of the selected rows of data register file and mask register file, the signals on PD 0-7  port 231 is written to the selected word of the data register file and a first predetermined pattern is written to the corresponding word of the mask register file. The first predetermined pattern corresponds to a pattern that selects all the bits of a word during a transfer with mask from the secondary memory 221 to the main memory 202. In this specification the pattern consists of all 1s pattern. 
     FIG. 10c shows the timing diagram for secondary memory 221 write reset operation. The write reset operation is selected when in a write operation the signal on PR port 237 is asserted (logic level 0) along with valid address signals on PRA0 0-3  port 238 and PCA 0-7  port 239. In a write reset operation a second predetermined pattern is written to all the words of the selected row of the secondary memory 221. The second predetermined pattern corresponds to a pattern that deselects all the bits of a row during a transfer with mask from the secondary memory 221 to the main memory 202. In this specification the pattern consists of an all 0s pattern. 
     Memory operations as discussed above are summarized in the table below: 
     
                       TABLE 1                                                     
______________________________________                                    
Summary of second interface operations                                    
PS  PG     PW     PSF  PR   Operation                                     
______________________________________                                    
1   X      X      X    X    No operation selected                         
0   0      1      X    X    Read operation                                
0   X      0      1    1    Write Operation                               
0   X      0      0    1    Simultaneous Write operation:                 
                            Write to data register, and write             
                            the enable write mask pattern to              
                            the corresponding mask register               
0   X      0      X    0    Write Reset operation: Reset the              
                            selected row of the secondary                 
                            memory                                        
______________________________________                                    
 
    
     Referring now to FIG. 5, a clock (CLK) port 241 is added to the second interface and the operations (as summarized in table 1) of the second interface are synchronized with the signal on CLK port. All the address and control signals of the second interface are latched at the positive edge of the CLK. FIG. 11 illustrates an example of timing for synchronous read and write operation of second interface of memory device in FIG. 5. 
     In yet another embodiment of the invention shown in FIG. 6 the data register file and the mask register file use a single port register file structure. The use of a single port register file instead of a dual port register file reduces the size of the secondary memory 221. However the drawback is that the secondary memory cannot be accessed through the second interface simultaneously with transfers between secondary memory and main memory. Since such simultaneous operation is not possible anymore with a single port register file architecture, the pin count of the device can be reduced by eliminating XRA 0-3  port 218 as shown in FIGS. 4 and 5, and using PRA 0-3  port 238 during transfers between main memory and the secondary memory to provide the transfer address in the secondary memory. Furthermore with a single port register file structure a single register file row decode circuit means 223 is coupled to PRA 0-3  port 238. The use of single port register file reduces the cost of the secondary memory and reduces the pin count of the memory device but eliminates the flexibility of simultaneous operation. 
     In still another embodiment of the invention shown in FIG. 7 an address counter means 340 is used to provide the sequential column addresses for the secondary memory access through the second interface. The address counter means include a counter associated with each row of the data register files, which can be initialized through the second interface. An additional PRA 4  port on the second interface in conjunction with PRA 3  selects either data register file, mask register file, or the address counter, and signals on PRA 0-2  select one of 8 rows of the selected register file or one of the 8 counters of the address counter means. When the address counter means is selected the selected counter is accessed through signals on PD 0-7  port 231. When the register file is selected the column address is provided by the associated counter within the address counter means 340, the counter is incremented at the completion of the transfer cycle. The utility of this scheme is reduction of the memory device pins, by eliminating PCA 0-7 . 
     In still another embodiment of the invention shown in FIG. 8 specifically for block access applications wherein all the block consist of plurality of complete rows of the main memory. In this specific embodiment, the mask register file 224, transfer with mask between the data register file and the main memory, and transfer with mask (XwM) port 217 are eliminated to reduce the cost of the memory device.