Semiconductor integrated circuit

The throughput of external output actions of read data from memory blocks that are capable of parallel operation is improved.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
BACKGROUND OF THE INVENTION

[0001] The present invention relates to a semiconductor integrated circuit having memory blocks, and also relates to a technique for improving the throughput of a data read action invoked in response to a read access request, which is useful for the application to a semiconductor integrated circuit used as a cache memory including DRAMs mounted along with logic circuits.

[0002] A memory hierarchy of a storage device, when viewed in terms of the temporal and spatial locality of information reference, typically comprises memories of a plurality of levels having different access speeds and capacities. Used as a main memory is DRAM (Dynamic Random Access Memory) having a low per-bit cost, and provided in a memory level closer to a processor, or CPU (Central Processing Unit), is a cache memory comprising SRAM (Static Random Access Memory) or the like. A cache memory is a memory for holding a data that has been temporally or spatially localized for the data recently used by the processor to provide an improved throughput that is better than the throughput of a data read action from a lower level.

[0003] After the completion of the present invention, the inventor of the present invention had been notified of the presence of Japanese laid-open patents JP-A-2-297791 and JP-A-6-195261. The descriptions of these specifications are about providing dynamic-type memory (DRAM) and static-type memory (SRAM) on a single chip semiconductor substrate, and using these DRAM and SRAM together as a cache memory. However, the objects and the configuration thereof are not described in those specifications.

SUMMARY OF THE INVENTION

[0004] The present inventor discussed the possibility of mounting a large number of DRAM modules of a relatively low access speed along with logic circuits, and using it as a cache memory. The discussion included, for example, a semiconductor integrated circuit mounted with DRAM modules, which can be used as a level 3 (L3) cache memory for a microprocessor to which level 1 (L1) and level 2 (L2) cache memories are built in.

[0005] According to the discussion of the present inventor, when an attempt is made to reduce an apparent memory read cycle by mounting a large number of DRAM modules together and making them capable of parallel operation, the consideration has to be made for preventing the competition among data output actions caused by the parallel operation. In such a case, when a data buffer is employed in order to prevent the data competition, it has been found that it is inefficient to perform the data buffering where there is no data competition.

[0006] When the data processing efficiency of a processor is considered, the most significant object would be the improvement in the throughput of read actions invoked in response to read access by the processor. Here, a read action of a cache memory may sometimes be a read action for a copy-back (or write-back) necessitated by a write access by the processor, and such a read action would not be required to have a high throughput in most cases. That is so because the copy-back is an action for accommodating data into a main memory for replacing a dirty cache line upon a cache miss. Accordingly, it has been found by the present inventor that when considering the use of the invention as a cache memory, it is necessary to avoid an excessive expansion of the logic scale of the logic circuitry by differently weighing the importance of the improvement in the throughputs of read data according to the purposes of the read data.

[0007] For a write access by a processor, there is not much significance in accelerating a write action occurred in response to such a write access request, however, when the data processing efficiency of the processor is of the concern, it is necessary to allow the processor to be released from the action within a short period of time after the reception of the write access request. Especially, in the case of DRAM, a refreshing action of the stored data is required at every refreshing interval, and the reception of the write access request should not be delayed by such a refreshing action.

[0008] An object of the present invention is to provide a semiconductor integrated circuit having a configuration in which data buffers are employed for avoiding data competition caused by the parallel operation of the memory blocks, thereby improving the throughput of read actions.

[0009] Another object of the present invention is to provide a semiconductor integrated circuit which can improve the throughput of read actions without entailing excessive expansion in the logic scale of its logic circuitry.

[0010] Still another object of the present invention is to provide a semiconductor integrated circuit which can readily accept write access requests regardless of the internal memory operation state.

[0011] Above and further objects and novel features of the present invention will be understood by reading the detailed description of the present invention in conjunction with the attached figures.

[0012] The following briefly explains the summary of representative embodiments of the present invention among those covered herein.

[0013] [1] In order to avoid data competition caused by the parallel operation of the memory blocks, read buffers are employed to improve the throughput of read actions. To this end, a semiconductor integrated circuit has a configuration comprising a plurality of memory blocks (BNK0-BNK7) capable of parallel operation, an external interface means (I/F1) capable of externally inputting write data and externally outputting read data, read buffers (RB0-RB3), each capable of retaining a read data read out from a memory block in response to an external output-incapable state in which the read data cannot be externally outputted from the external interface means, and selecting means (40, 41) for selecting either a read data read out from a memory block or a read data read out from a read buffer and feed it to the external interface means while the external output-incapable state is not present.

[0014] According to the above configuration, if a read action is performed from one of the memory blocks that are capable of parallel operation while a read data from another memory block is being externally outputted from the external interface means, this read data would cause a resource competition at the point of its external output, so that it is temporarily stored in a read buffer, and then enabled for the external output from the read buffer after the prior data outputting action terminates. Therefore, even if there is a read access request that would cause the resource competition during the read data output action, a read action may be started without having the later request wait, and this read data may be externally outputted as soon as the risk of the resource competition is resolved, thus, the throughput of the read data outputting actions may be improved.

[0015] If there is no resource competition when a data is read out from a memory block, the read data is externally outputted directly from the external interface means without the intervention of the read buffer, so that the useless temporary buffering of the data may be avoided when there is no data competition, and in this point the present invention contributes to the improvement in the throughput of the read data outputting actions.

[0016] A read buffer may be constituted by a memory having a smaller capacity and higher speed than that of the memory blocks. For example, when the memory blocks are formed by DRAM modules, then the read buffers may be constituted by SRAM modules.

[0017] When the above configuration is viewed in terms of control, the semiconductor integrated circuit comprises a plurality of memory blocks (BNK0-BNK7) capable of parallel operation, read buffers (RB0-RB3) capable of holding read data read out from the aforementioned memory blocks, an external interface means (I/F1) capable of externally outputting the read data outputted from the read buffers or the read data outputted from the memory blocks, a controlling means (MCNT) to control the read buffers to hold the read data in response to an external-output-incapable state in which the read data read out from the memory block cannot be externally outputted from the external interface means, and to control either the read data read out from the memory block or the read data read out from the read buffer to be outputted from the external interface means when the above output-incapable state is resolved.

[0018] [2] In order to allow the reception of an external write access request regardless of the internal memory operation state, the semiconductor integrated circuit comprises a plurality of memory blocks (BNK0-BNK7) capable of parallel operation, an external interface means (I/F1) capable of externally inputting write data, and write buffers (WB0-WB3) for receiving and holding the write data inputted to the external interface means, and supplying the write data to the memory blocks after the memory blocks are write-enabled.

[0019] During the internal operation of a memory block such as refreshing of a stored data or a reading action etc., even if there is a write access request thereto, the write data may be buffered into a write buffer beforehand, so that the processor attempting the write access can be released from the write access action within a short period of time. Where the data processing efficiency by a processor etc. is concerned, the acceleration of the speed of write processing on the memory side in response to that write access is not so important, however, the above feature contributes to the improvement in the data processing efficiency of the whole system since it does not hold the write access request by the processor waiting.

[0020] A write buffer may be formed by a memory etc. having a smaller capacity and higher speed than that of the memory blocks, and in the similar manner as the prior case, when the memory blocks are formed by, for example, DRAM modules, then the write buffers may be formed by SRAM modules.

[0021] When the above configuration is viewed in terms of control, the semiconductor integrated circuit comprises an external interface means (I/F1) capable of externally inputting write data, write buffers (WB0-WB3) for receiving the write data inputted to the external interface means, a plurality of memory blocks (BNK0-BNK7) to which the write data is supplied from the write buffers, a controlling means (MCNT) to control the write buffer to store the write data supplied to the external interface means in response to an external access request, and to have the write data from the write buffer supplied to a memory block once that target memory block is write-enabled.

[0022] [3] A semiconductor integrated circuit having a combined configuration of both the read and write buffers comprises a plurality of memory blocks (BNK0-BNK7) capable of parallel operation, an external interface means (I/F1) capable of externally inputting write data and externally outputting read data, write buffers (WB0-WB3) for receiving and holding the write data inputted to the external interface means and supplying the write data to the respective memory blocks after the memory blocks are write-enabled, read buffers (RB0-RB3) capable of holding read data read out from the memory blocks in response to an external-output-incapable competition state in which the data cannot be externally outputted from the external interface means, and selection means (40, 41) for selecting either a read data read out from a memory block or a read data read out from a read buffer and feeding it to the external interface means.

[0023] [4] An application as a cache memory connectable to both the lower level and higher level of the memory hierarchy is assumed. In this case, a semiconductor integrated circuit comprises a plurality of memory blocks (BNK0-BNK7) capable of parallel operation, a first external interface means (I/F1) capable of externally inputting write data and externally outputting read data, and a second external interface means (I/F2) capable of externally inputting write data and externally outputting read data. Furthermore, the semiconductor integrated circuit also comprises write buffers (WB0-WB3) for receiving and holding the write data inputted to the first or second external interface means, and supplying the write data to the respective memory blocks after the memory blocks are write-enabled, read buffers (RB0-RB3) for holding the read data to be outputted from the second external interface and the read data to be outputted from the first external interface means which is in competition so that it cannot be outputted from the first external interface, and selection means (40, 41) for selecting either a read data read out from a memory block or the read data read out from the read buffer and supplying it to the first external interface means when the output-incapable competition state is resolved.

[0024] In this configuration, the first external interface means is connected to the higher level of the memory hierarchy, and the second external interface means is connected to the lower level of the memory hierarchy. The basic operations of the read buffers and write buffers in response to a read/write access request by a processor are identical to the prior description. It should be noted that the read data outputted to the lower level of the memory hierarchy via the second external interface means would be provided only through the read buffers. This is because all the outputs of read data to the lower level of the hierarchy are assumed to be reading actions for copy-back (or write-back) associated with write access by the processor. Since a copy-back is an action to have the data evacuated into the main memory in order to replace a dirty cache line upon a cache miss, and in many cases, a high throughput is not demanded for such reading actions, data paths that bypass the read buffers and logic circuits thereto for enabling the direct output of the read data from the second external interface means are omitted so as to prevent the meaningless expansion in the logic scale of the circuitry.

[0025] When the above semiconductor integrated circuit is applied to a multi-processor system, another processor would be connected to the lower level of the memory hierarchy, so that it is possible that the semiconductor integrated circuit operates also in response to the access by this another processor. In order to allow this, the first and the second external interface means may be made capable of externally inputting access requests and access addresses for the memory blocks individually.

[0026] In addition, in consideration with a resource competition when a read data is supplied from the lower level to the higher level of the memory hierarchy via the semiconductor integrated circuit, the utility of the semiconductor integrated circuit as a cache memory would be maximized when it further includes a memory buffer 54 capable of receiving and holding the data from the second external interface means, and externally outputting the data it held from the second external interface means.

[0027] [5] When the memory blocks are formed by DRAMs for example, the minimization of the access time of DRAMs may be achieved also by a known page mode or static column mode. Moreover, in order to reduce the apparent access time of a memory block constituted by DRAM, an input of data is parallel-converted and an output of data is serial-converted. That is, the semiconductor integrated circuit includes memory blocks each comprising a memory cell array 10, a row selection circuit 11, column selection circuits 12 and 13, a serial-parallel converter circuit 21, a write amplifier 17W, a main amplifier 17R, a parallel-serial converter circuit 25. The memory cell array includes a plurality memory cells, each including a selection terminal connected to a word line and a data input/output terminal connected to a bit line. The row selection circuit selects a word line specified by a row address signal in synchronization with a clock signal in response to the change in a row address strobe signal. The column selection circuit selects a plurality of bit lines specified by a column address signal in a parallel manner in synchronization with a clock signal in response to a change in a column address strobe signal. The serial-parallel converter circuit converts the write data serially inputted from the write buffer into a parallel data in synchronization with the clock signal. The write amplifier outputs in parallel the output of the serial-parallel converter circuit to the plurality of bit lines selected by the column selection circuit. The main amplifier amplifies the parallel data outputted in parallel from the plurality of bit lines selected by the column selection circuit. The parallel-serial converter circuit converts the parallel data supplied from the main amplifier into a serial data in synchronization with the clock signal and outputs to the read buffer and the selection means.

[0028] Inputted to the memory block is the column address strobe signal changing in a cycle period that is n times (n is an integer equal to or greater than 2) of the cycle of the clock signal, and during the every cycle in which the column address signal changes, a plurality of serial data that have been read out from the memory cell array and parallel-serial-converted in synchronization with the clock signal are outputted from the memory block, or the parallel data that have been inputted into the memory block in synchronization with the clock signal and serial-parallel-converted are written into the memory cell array. In this way, by the use of this access specification in which the column address strobe signal is changed once in n-cycles of the clock signal, the acceleration of the operation speed of the memory may be attempted.

[0029] The serial data input path for the serial-parallel converter circuit, and the serial data output path for the parallel-serial converter circuit are preferably separately provided. In a read action, after the data is read out from the memory cell array in response to the change in the column address strobe signal, a serial data is outputted from the memory block after a time period required for the parallel-serial conversion, but for a write action, the conversion of the serial data inputted to the memory block into the parallel data must be completed in advance prior to the writing of the parallel data into the memory cell array in response to the change in the column address strobe signal. At this point, when the write action is instructed sequentially after a read action, it is likely that the sequential input operation of the serial data into the memory block for the write action has to be performed in parallel with the output operation of the serial data from the memory block for the read action. In other words, there is a high probability that the serial data output timing from the memory block and the serial data input timing into the memory block overlap. The separate provision of a serial data input path and a serial data output path for a memory block as previously mentioned allows the prevention the collision of data even when such overlapping of the operations occurs, thus, efficient processing can be achieved.

[0030] [6] Where the propagation delay of a read data is of the concern, the semiconductor integrated circuit may employ the following layout. For example, a center-pad type chip is assumed, in which the bonding pads for signal input/output, or external connection electrodes such as bump electrodes are provided at the center region of a chip. In this case, memory blocks are disposed on the opposing sides of the semiconductor chip with a spacing therebetween. Provided between the opposing memory blocks are read buffers capable of holding read data read out from the respective memory blocks and write buffers capable of holding write data to be fed into the respective memory blocks. In the proximity of the read and write buffers, an external interface means is provided. External connection electrodes are provided in the proximity of the external interface means. A write buffer receives and holds a write data inputted to the external interface means, and when a corresponding memory block is write-enabled, supplies the write data to the memory block. A read buffer is capable of holding a read data read out from a corresponding memory block in response to an external-output-incapable state in which the data cannot be externally outputted from the external interface means.

BRIEF DESCRIPTION OF THE DRAWINGS

[0031] FIG. 1 is a block diagram showing an entire view of an exemplary semiconductor integrated circuit according to the present invention.

[0032] FIG. 2 is a block diagram showing details of read data output paths of the semiconductor integrated circuit of FIG. 1.

[0033] FIG. 3 is an illustrative diagram showing exemplary control signals generated by a memory control circuit.

[0034] FIG. 4 is an illustrative diagram showing an exemplary data format of access control data.

[0035] FIG. 5 is a flow chart showing representative controlling steps of the memory control circuit followed in response to an external access request.

[0036] FIG. 6 is a timing chart of an exemplary write action in a case in which a refreshing action occurs during a write access.

[0037] FIG. 7 is a timing chart of a comparative example of a write action in a case where the write buffers are not provided.

[0038] FIG. 8 is a timing chart of an exemplary read action in a case where the read buffers are used.

[0039] FIG. 9 is a timing chart of a comparative example of a read action in a case where the read buffers are not provided.

[0040] FIG. 10 is a block diagram of a cache memory system in which the semiconductor integrated circuit is used as the L3 cache memory.

[0041] FIG. 11 is an illustrative diagram showing the data flow during the read access action by the processor in the cache memory system of FIG. 10.

[0042] FIG. 12 is an illustrative diagram showing the data flow during a write access action by the processor in the cache memory system of FIG. 10.

[0043] FIG. 13 is an illustrative diagram showing the data flow during the replacement of a cache line in the cache memory system of FIG. 10.

[0044] FIG. 14 is a block diagram of a memory system using the semiconductor integrated circuit as a main memory of a processor.

[0045] FIG. 15 is a block diagram of an example in which the semiconductor integrated circuit is applied to a multi-processor system as the L3 cache memory.

[0046] FIG. 16 is a layout diagram showing an exemplary chip layout of a semiconductor integrated circuit according to the present invention.

[0047] FIG. 17 is a detailed block diagram of an exemplary memory block.

PREFERRED EMBODIMENTS

[0048] FIG. 1 shows a general view of an exemplary semiconductor integrated circuit according to the present invention. The semiconductor integrated circuit 1 shown in the figure is a semiconductor integrated circuit intended for the use as the L3 cache memory although it is not limited, and comprises 8 memory blocks BNK0-BNK7, 4 write buffers WB0-WB3, 4 read buffers RB0-RB3, a higher-level interface block I/F1 connected to the higher level of the memory hierarchy (i.e. processor bus), a lower-level interface block I/F2 connected to the lower level of the memory hierarchy (i.e. memory bus), and a memory control circuit (MCNT).

[0049] The higher-level interface block I/F1 is connected to a processor bus or the like which is, in turn, connected to a processor having, for example, built-in L1 and L2 cache memories, and it inputs access control data including access control signals and access address signals etc., and inputs/outputs 72-bit parallel data.

[0050] The lower-level interface block I/F2 is connected to a memory bus or the like which is, in turn, connected to the lower level of the memory hierarchy such as a main memory or L4 cache memory etc., and it inputs/outputs 72-bit parallel data. Although it is not particularly limited, the application to a multi-processor system is assumed, therefore the lower-level interface block I/F2 is configured to be capable of receiving access control data from a processor other than the processor in the higher level of the hierarchy so as to allow this processor also to access the memory blocks BNK0-BNK7.

[0051] The memory control circuit MCNT inputs the access control data, decodes a part of the address information included therein to determine the target memory block to be accessed, and outputs a local memory address and an access control signal to the target memory block to be accessed in order to control the operation of that memory block.

[0052] The memory block BNK0, which is representatively indicated, sequentially latches serially-inputted write data into four write registers (ILT) 22 respectively by 72 bits (8 bytes), and the memory block is then write-enabled for accepting data into its DRAM core 8 in 288-bit (32-byte) parallel. It also latches the read data read out in 288-bit parallel from the DRAM core 8 into read registers (OLT) 26 respectively by 72 bits, and as a selector 27 sequentially selects the outputs of the read registers 26, the memory block can serially output the read data by 72 bits. Accordingly, the memory block BNK0 is capable of inputting/outputting the data at a speed 4 times quicker than the access time of the DRAM core 8. In this specification, “1 byte” is assumed to include 8-bit data and 1-bit parity data.

[0053] A write data from the higher level of the memory hierarchy that has been inputted to the higher-level interface block I/F1 is supplied to the memory block BNK0 (BNK1-BNK7) via the write buffer WB0 (WB1-WB3).

[0054] There are three output paths for the read data read out from the memory block BNK0 (BNK1-BNK7); a higher-level through path, a higher-level buffering path, and a lower-level buffering path. The higher-level through path is a path which outputs from the higher-level interface block I/F1 to the higher level of the memory hierarchy via the selectors 40 and 41 that are schematically shown in the figure. The higher-level buffering path is a path for outputting the read data temporarily stored in the read buffer RB0 (RB1-RB3) from the higher-level interface block I/F1 to the higher level of the memory hierarchy via the selectors 40 and 41. The lower-level buffering path is a path for outputting the read data temporarily stored in the read buffer RB0 (RB1-RB3) from the lower-level interface block I/F2 via the selector 42 to the lower level of the memory hierarchy. There is no through path to the lower level.

[0055] The read buffers RB0-RB3 and the write buffers WB0-WB3 are constituted by SRAMs. These SRAMs may be accessed at every cycle defined by the clock signal of the system. The SRAMs constituting the read buffers RB0-RB3 and the write buffers WB0-WB3 may be constructed in the same structure as a public-known SRAM. Although it is not limited, each of the above SRAMs may have a memory array including a plurality of static memory cells, a plurality of word lines, and a plurality of complementary data line pairs, and an address decoder for selecting specific word lines in response to an address signal, a sense amplifier for amplifying the data of a plurality of the selected memory cells, and a data output circuit for outputting the amplified data.

[0056] As later described, each SRAM is configured in the manner so as that 72 memory cells are simultaneously selected in response to one set of address signals being inputted. Each static memory cell comprises a pair of CMOS inverters including an n-channel MOSFET and p-channel MOSFET, and further comprises a data storage section formed by cross-coupling the inputs and outputs of the pair of CMOS inverters, and selection transistors formed by a plurality of n-channel transfer MOSFETs for selecting the data storage section. The gate terminals of the plurality of the selection transistors are selectively connected to a word line or word lines, and the source-drain paths of the plurality of the selection transistors are coupled to corresponding one or more of the plurality of complementary data lines, so that the memory cell is constructed to have multiple input/output ports. Each SRAM constituting each of the read buffers RB0-RB3 and write buffers WB0-WB3 is constructed in a 128×72 (word×bit) structure although it is not limited.

[0057] It should be noted that various modifications are possible for the structure of the multiple-I/O port type memory cell as it is readily understood by a person skilled in the art.

[0058] FIG. 2 shows exemplary output paths of the read data in the semiconductor integrated circuit 1. The memory blocks BNK0 and BNK1 share the read buffer RB0 and the write buffer WB0. Similarly, the memory blocks BNK2 and BNK3 share the read buffer RB1 and the write buffer WB1, the memory blocks BNK4 and BNK5 share the read buffer RB2 and the write buffer WB2, and the memory blocks BNK6 and BNK7 share the read buffer RB3 and the write buffer WB3. Although it is not limited, each of the read buffers RB0-RB3 and the write buffers WB0-WB3 has two read ports and two write ports. Each port is an 8-byte parallel access port.

[0059] A selector 41Aa is provided for selecting either the read data from the memory block BNK0 which is one of the pair or the read data from the memory block BNK4 which is the other of the pair. For the other memory blocks, similar selectors 41Ab-41Ad are provided. S10 through S13 are selection control signals of the selectors 41Aa-41Ad. A selector 40Aa is provided for selecting either the read data outputted from the read buffer RB0 or the read data selected by the selector 41Aa. For the other memory blocks, similar selectors 40Ab-40Ad are provided. S20 through S23 are selection control signals of the selectors 40Aa-40Ad. The output of one of the selectors 40Aa-40Ad is selected by a selector 41B and fed to the higher-level interface block I/F1. The operation of the selector 41B is controlled by 2-bit selection signals S30A and S30B. The selector 42 selects the output of one of the read buffers RB0-RB3 outputted from one of the two read ports, and feeds it to the lower-level interface block I/F2. The operation of the selector 42 is controlled by 2-bit selection control signals S31A and S31B.

[0060] FIG. 3 shows exemplary control signals generated by the memory control circuit MCNT. The memory control circuit MCNT outputs, for each of the memory blocks BNK0-BNK7, an address signal ADRS, row address strobe signal RAS, column address strobe signal CAS and write-enable signal WE etc., and for each of the read buffers RB0-RB3, outputs an address signal ADRS, memory-enable signal MS, read/write signal R/W and port select signal PSL, and for each of the write buffers WB0-WB3, an address signal ADRS, memory enable signal MS, read/write signal R/W and port selection signal PSL, and also outputs the selector selection signals S10-S13, S20-S23, S30A, S30B, S31A and S31B, and for the interface blocks I/F1 and I/F2, outputs output-enable signals OEP1 and OEP2. The memory control circuit MCNT receives inputs of the access control data from both the higher level and lower level of the memory hierarchy, and provides control over the above-mentioned control signals so that an adequate control signal is activated at a specific timing to invoke the action instructed in the received access control data. The memory control circuit MCNT receives respectively from the memory blocks BNK0-BNK7, the inputs of signals MRef0-7 indicating the refresh action periods of the respective memory blocks BNK0-BNK7.

[0061] The access control data 43 includes an address specifying section 43A and an operation specifying section 43B as shown in FIG. 4. The address specifying section 43A includes information for specifying a memory block BNK0-BNK7 from which or to which a data is to be read out or written and information for specifying an address within the memory block. The operation specifying section 43B specifies either the read/write action of 8-byte data from/to the address specified by the address specifying section, the read/write action of sequential 16-byte data from/to the address specified by the address specifying section or the read/write action of sequential 32-byte data from/to the address specified by the address specifying section etc.

[0062] The memory control circuit MCNT receives external access requests so as to allow the memory blocks BNK0-BNK7 to operate in parallel to an extent that such operation does not cause resource competition within the semiconductor integrated circuit 1. The memory control circuit MCNT also controls the external output of read data by connecting one memory block selected from the memory blocks BNK0-BNK7 or one read buffer selected from the read buffers RB0-RB3 to the interface block I/F1 or I/F2.

[0063] FIG. 5 shows a representative flow of the major controlling operations provided by the memory control circuit MCNT in response to an external access request.

[0064] The memory control circuit MCNT, in response to a write access request, controls corresponding one of the write buffers WB0-WB3 to receive a write data in advance regardless of whether or not there is any internal action carried out by the write-target memory block such as a refresh action etc. (T1). Thereafter, determination is made to see whether or not the write-target memory block is not engaged in any internal action such as refreshing etc. so that the write action is possible (T2), and after it is determined that the memory block is in the write-enabled state, the data write is performed to the target memory block (T3).

[0065] FIG. 6 shows an example of a write action in a case in which a refresh action occurs during the writ access. In the example of FIG. 6, the writ-target is the memory block BNK0. Each of the numerals (1) through (8) represents an access unit supplied from the outside of the semiconductor integrated circuit 1, and one access unit comprises 72-bit parallel data. Between operation cycles 4 to 9, the memory block BNK0 performs a refresh action, and during the cycles before and after the refresh action, it is in the read/write-enabled state. The write data is sequentially stored in the write buffer WB0 with a delay of one cycle. The write data stored in the write buffer WB0 is sequentially supplied to the write registers 22 of the memory block BNK0 in every one cycle if the write-target memory block BNK0 is in the read/write-enabled state. By the time when the data of the access unit (4) is being latched into a write register 22, the memory block BNK0 is already in the refresh action. The memory control circuit MCNT suspends the data transmission from the write buffer WB0 to the write registers 22, and wait until the refresh action terminates. During this period, the writing of the write data into the write buffer WB0 continues. After the refresh action of the memory block BNK0 terminates at operation cycle 9, the memory control circuit MCNT asserts the strobe signals RAS, CAS and WE to the memory block BNK0 at operation cycle 10 thereby giving a write address so that the data of the access units (1) through (4) are written into the DRAM core 8 in four cycles. In parallel to the writing to the DRAM core 8, the write data of the subsequent access units (5) through (8) are sequentially transmitted to the write register 22. The memory control circuit MCNT asserts the strobe signals RAS, CAS and WE to the memory block BNK0 at cycle 14, giving a write address so that the data of the access units (5) through (8) are written into the DRAM core 8 in four cycles. As a result, the processor at the higher level of the memory hierarchy, which instructed the write access of (1) through (8) is released from the processing of this write access by the cycle 8 and is not affected from the refresh action in the memory block BNK0.

[0066] FIG. 7 shows an example of a write action in a case where the write buffer WB0 is not provided. In the case where the write buffer WB0 is not present, where a refresh action starts in the DRAM core 8, the processor at the higher level of the memory hierarchy, which instructed the write access, has to stop outputting the write address and write data, or suspend issuance of the write access request in cycle 4, and wait until it can detect the completion of the refresh action. After cycle 9 at which the refresh action terminates, the processor of the higher level of the memory hierarchy reissues the write access request, and starts outputting the addresses and data of the access units (5) through (8) sequentially from cycle 10. Accordingly, the writing of the write data of the access units (1) through (8) to the DRAM core 8 of the memory block BNK0 is completed in 19 cycles, but the processor at the higher level of the memory hierarchy which instructed this write access is not released from the write access processing until cycle 13. As apparent from the comparison with FIG. 6, by providing the write buffers WB0-WB3 in the semiconductor integrated circuit 1 used as the L3 cache memory, the data processing efficiency of the processor in the higher level may substantially be improved.

[0067] On the other hand, when the memory control circuit MCNT controls an external output operation of a read data read out from one of the memory blocks BNK0-BNK7 via the interface block I/F1 or I/F2, it controls the selection of an output path (higher-level through path, higher-level buffering path or lower-level buffering path) of the read data, thereby improving the throughput of the data read action.

[0068] The selection between the higher-level through path or the higher-level buffering path is made according to the determination by the memory control circuit MCNT whether or not there is a possibility of incurring a resource competition.

[0069] That is, the memory control circuit MCNT, as shown in FIG. 5, reads out a data from the DRAM core 8 of the access-target memory block in response to a read access request (T4); determines whether or not there is a resource competition when externally outputting the read data from the higher-level interface block I/F1 (T5); and where there is a resource competition, or where the read data cannot be externally outputted from the higher-level interface block I/F1, controls the corresponding one of the read buffers RB0-RB3 to hold the read data (T6). Where the external-output-incapable state is not present, it provides control for externally outputting either the read data read out from the memory block BNK0-BNK7 or the read data read out from the read buffer RB0-RB3 from the higher-level interface block I/F1 (T7).

[0070] FIG. 8 shows an example of a read action using the read buffers RB0-RB3. In FIG. 8, the processor of the higher level of the memory hierarchy sequentially issues access requests A-D in synchronization with the operation cycle of the system. The access request A is a read access request for reading out a series of consecutive 32-byte data A-0, A-1, A-2, A-3 from an address A of the memory block BNK0. Similarly, the access request B is a read access request for reading out a series of consecutive 32-byte data B-0, B-1, B-2 and B-3 from an address B of the memory block BNK4, the access request C is a read access request for reading out a series of consecutive 32-byte data C-0, C-1, C-2 and C-3 from an address C of the memory block BNK1, and the access request D is a read access request for reading out a series of consecutive 32-byte data D-0, D-1, D-2 and D-3 from an address D of the memory block BNK3.

[0071] When the access request A is received, the memory control circuit MCNT reads out in parallel the 288 bits of data specified by the address A from the DRAM core 8 of the memory block BNK0, and latches it into the read registers 26. The read registers 26 are then sequentially selected, and the read data A-0, A-1, A-2 and A-3 are outputted from the memory block BNK0 by 8 bytes. This output operation of the read data is performed at the operation cycle of the system (every 1 cycle). At this point, the higher-level interface block I/F1 is not engaged in any output operation. Accordingly, the memory control circuit MCNT directly transmits the output data A-0, A-1, A-2 and A-3 from the memory block BNK0 to the higher-level interface block I/F1 via the selectors 41Aa, 40Aa and 41B for the external output.

[0072] In parallel with this action, the next access request B is issued with a delay of 1 cycle, and the read data B-0, B-1, B-2 and B-3 are sequentially outputted from the memory block BNK4. The read data outputted are then sequentially stored into the read buffer RB0. Similarly, in response to the next access request C, the read data C-0, C-1, C-2 and C-3 are sequentially outputted from the memory block BNK1 and stored into the read buffer RB1, and in response to yet later access request D, the read data D-0, D-1, D-2 and D-3 are sequentially outputted form the memory block BNK 3 and stored into the read buffer RB3. When the external data output by the higher-level interface block I/F1 is terminated while those subsequent read data are being stored in the read buffers, the read data for the following access request are outputted from the read buffer for the external output. That is, following the output of the data A-3, the read data B-0, B-1, B-2 and B3 are sequentially outputted from the read buffer RB0, and through the selection by the selectors 40Aa and 41B, they are externally outputted from the higher-level interface block I/F1. During the subsequent processing, the data C-0 through D-3 are externally outputted sequentially.

[0073] On the other hand, as shown in FIG. 9, if there is no read buffer, then the later access requests would not be accepted until the read data associated with the first access request A are all externally outputted. In different memory blocks, at least the output operations of the read registers should not compete.

[0074] As apparent from the above description, by employing the read buffers RB0-RB3, the internal actions of the memory blocks can be proceeded while accepting subsequent read access requests in advance, and in addition, by employing SRAM having a higher access speed than DRAM for the read buffers, the output operation of the buffered data would not be delayed, thereby improving the throughput of the data read action.

[0075] Furthermore, if there is no resource competition when a data is read out from a memory block BNK0-BNK7, the read data is externally outputted directly from the higher-level interface block I/F1 without the intervention of a read buffer RB0-RB3, so that the meaningless data buffering can be avoided when there is no data competition, thus, such a feature contributes to the improvement in the throughput of the read data output action.

[0076] Next, the semiconductor integrated circuit 1 will be explained according to a case where it is applied to a cache memory system.

[0077] FIG. 10 shows the first example of the cache memory system. The semiconductor integrated circuit 1 is used as an L3 cache memory disposed between a processor 50 and a main memory 51. To the higher-level interface block I/F1 of the semiconductor integrated circuit 1, a processor bus 52 is connected, and through this bus, the data input/output operations from/to the processor are performed, and access control data from the processor 50 are received. To the lower-level interface block I/F2 of the semiconductor integrated circuit 1, a memory bus 53 is connected for the input/output operation of data from/to the main memory 51. The access control data to the main memory 51 is a data issued by the processor 50 although it is not limited.

[0078] The processor 50 includes built-in L1 cache memory 50B and L2 cache memory 50C along with a CPU 50A, and further includes a tag control logic (TAG) 50D for the L3 cache memory. The semiconductor integrated circuit 1 is viewed as the data memory portion of the L3 cache memory. The tag control logic 50D holds the information which associates an index address with a tag address of a cache entry for each cache line of the semiconductor integrated circuit 1 as the L3 cache memory. It further includes, for each of the cache lines, a valid bit indicating the validity of that cache line, and a dirty bit indicating the necessity of a copy-back or write-back to the lower level of the memory hierarchy upon the replacement of that cache line.

[0079] In FIG. 10, the next lower level of the semiconductor integrated circuit 1 in the memory hierarchy is not limited to the main memory, and it may also be an L4 cache memory. The tag controlling section for the L4 cache memory may be incorporated in the processor 50.

[0080] FIG. 11 shows a data flow of a read access action by the processor in the cache memory system of FIG. 10. When a cache miss occurs in the built-in L1 cache memory 50B and the L2 cache memory 50C of the processor 50, and there is a cache hit in the semiconductor integrated circuit 1 as determined by the tag control logic 50D, the processor 50 issues a read access request for the semiconductor integrated circuit 1 as the target. The access control data path at this point is (1). As previously explained, if there is no resource competition, the read data is returned directly from the memory block BNK0-BNK7 to the processor 50 (path (2)). When there is a resource competition, the read data is once retained in one of the read buffers RB0-RB3, and is returned to the processor 50 from this read buffer RB0-RB3 at a timing that would not cause a resource competition (path (2)′). In the event where there is a cache miss also in the semiconductor integrated circuit 1, then the processor 50 feeds the access control data to the main memory 51 (path (3)), and the read data from the main memory 51 is returned to the processor 50 (path (4)).

[0081] At this time, assuming that there is a competition over the bus in the path (4) due the affect from another circuit module, the read data cannot be sent from the main memory 51 to the processor 50. When the bus competition is resolved, the processor 50 has to reissue the access request to the main memory 51 to, again, access the main memory 51 that is constituted by DRAM having a low access speed. Accordingly, shown in FIG. 11, it is preferred to provide between the main memory 51 and the processor 50 a memory buffer (MB) 54 constituted by SRAM etc. similar to those constituting the read buffers RB0-RB3 for supporting high-speed access.

[0082] The memory buffer 54 may be built into the semiconductor integrated circuit 1. The memory buffer 54 can be configured to receive and hold data from the lower-level interface block I/F2, and to externally output the data it holds from the higher-level interface block I/F1. The read data outputted from the memory buffer 54 and the read data outputted from the memory blocks BNK0-BNK7 only have to be exclusive to each other. For example, the processor 50 can be configured to drive the memory buffer 54 through a direct designation.

[0083] FIG. 12 shows a dataflow of a write access action by the processor in the cache memory system of FIG. 10. In a write access action by the processor 50, where there is a cache miss in the built-in L1 cache memory 50B and L2 cache memory 50C of the processor, and there is a cache hit in the semiconductor integrated circuit 1 as determined by the tag control logic 50D, the processor 50 issues a write request to the semiconductor integrated circuit 1 as the target. The access control data path at this time is path (1). As previously explained, the write data is once stored in one of the write buffers WB0-WB3, and then written into the write-target memory block from the write buffer when the write-target memory block is write-enabled (path (5)). Since the semiconductor integrated circuit 1 has the write buffers WB0-WB3, even when a refresh action of the memory block occurs in the middle of the write request, the write request does not have to be suspended. Accordingly, the processor 50 may be released quickly from the write operation. In the event where there is a cache miss also in the semiconductor integrated circuit 1, the processor 50 feeds the access control data to the main memory 51 (path (3)), and sends the write data to the main memory 51 (path (6)).

[0084] FIG. 13 shows a data flow during a replacement of a cache line in the cache memory system of FIG. 10. In order to replace a specific cache line in one of the memory blocks BNK0-BNK7 in response to a occurrence of a cache miss in the semiconductor integrated circuit 1 during a write access or a read access, when the dirty bit of that cache line is in an enabled-state, the entry of the cache line must be copied back to the lower-level area of a corresponding tag address. The data to be copied back can be stored from that memory block BNK0-BNK7 to a read buffer RB0-RB3, so that it is not necessary to wait for the data to be actually copied back to the main memory 51 constituted by DRAM having a low access speed. The data of the new cache entry for the replacement can be written into a write buffer WB0-WB3 from the main memory 51 without waiting for the data which must be copied back to be transmitted to the read buffer RB0-RB3. In this way, the throughput of the subsequent data read action by the processor 50 may be improved even when the process involves such replacement of a cache line.

[0085] As explained with reference to FIGS. 1 and 2, the connections between the lower-level interface block I/F2 and the memory blocks BNK0-BNK7 are only those paths routing the read buffers RB0-RB3, and there is no through path as with the higher level. A copy back is an action for evacuating a data into the main memory in order to replace a dirty cache line upon a cache miss, and for a read action in such a case, a high throughput is not likely to be required, so that the data buses that bypass the read buffers RB0-RB3 for allowing the direct output of read data from the lower-level interface block I/F2 and the logic circuits thereto may be omitted, thereby preventing the meaningless expansion of the logic scale of the semiconductor integrated circuit 1.

[0086] FIG. 14 shows a second example of the cache memory system. It is also possible to use the semiconductor integrated circuit 1 as the main memory of the processor 50. In this case, the use of the lower-level interface block I/F2 in the semiconductor integrated circuit 1 is unnecessitated.

[0087] FIG. 15 shows a third example of the cache memory system. The exemplary cache memory system shown in this figure is the one implemented in a multi-processor system, which comprises, although it is not limited, processors 50-1 and 50-2 connected respectively to L3 cache memories 1-1 and 1-2, each of which is constituted by the semiconductor integrated circuit 1, that are in turn, connected to the main memory 51 via a bus switch circuit 55.

[0088] The L3 cache memories 1-1 and 1-2 are coupled to the processors 50-1 and 50-2 through processor buses 52-1 and 52-2 that are connected to their higher-level interface blocks I/F1, and perform the input/output of data to/from the processors 50-1 and 50-2, and also receive the input of access control data outputted by the processors 50-1 and 50-2. The lower-level interface blocks I/F2 of the L3 cache memories 1-1 and 1-2 are connected to the bus switch circuit 55 via memory buses 53-1 and 53-2 respectively and the main memory 51 is connected to the bus switch circuit 55 via the memory bus 53-3.

[0089] Although it is not particularly limited, the bus switch circuit 55 selectively creates a connection state of a bus among the first through fourth buses. The first bus connection state transmits the access control data outputted by the processor 50-1 to the main memory 51, enabling the data input and output between the main memory 51 and L3 cache memory 1-1 or the processor 50-1. The second bus connection state transmits the access control data outputted by the processor 50-2 to the main memory 51, enabling the data input/output between the main memory 51 and the L3 cache memory 1-2 or the processor 50-2. The third bus connection state transmits the access control data outputted by the processor 50-1 to the L3 cache memory 1-2, enabling the data input/output between the L3 cache memory 1-2 and the processor 50-1 or the L3 cache memory 1-1. The fourth bus connection state transmits the access control data outputted by the processor 50-2 to the L3 cache memory 1-1, enabling the data input/output between the L3 cache memory 1-1 and the processor 50-2 or the L3 cache memory 1-2.

[0090] The L3 cache memory 1-2, in order to correspond to the third bus connection state, is configured to be capable of performing the cache memory operation in response to the reception of the access control data outputted by the processor 1-1 to its lower-level interface block I/F2. Similarly, the L3 cache memory 1-1, in order to correspond to the fourth bus connection state, is configured to be capable of performing the cache memory operation in response to the reception of the access control data outputted by the processor 1-2 to its lower-level interface block I/F2.

[0091] FIG. 16 shows a chip layout of the semiconductor integrated circuit 1. The center portion of the principal surface of a rectangular semiconductor chip 1A such as one made of monocrystalline silicon is designated as a logic circuit region 1B, and in its upper and lower areas, the memory blocks BNK0-BNK3 and the memory blocks BNK4-BNK7 respectively, are separately arranged. In the edge portions of the logic circuit region 1B, the read buffers RB0-RB3 and the write buffers WB0-WB3 are separately disposed. Between the read buffers RB0-RB3 and the write buffers WB0-WB3, interface blocks I/F1 and I/F2 are arranged separately. In the proximity of the interface blocks I/F1 and I/F2, a large number of external connection electrodes (not shown) such as bonding pads or bump electrodes are provided. Although it is not limited, the buffer memory (MB) 54 previously described with reference to FIG. 11 may be provided between the interface blocks I/F1 and I/F2. Although it is not illustrated in the figure, a number of other logics are also provided within the logic circuit region 1B.

[0092] By employing the layout of FIG. 16, the read buffers RB0-RB3 are arranged closer to the interface blocks I/F1 and I/F2 and the external connection electrodes than the memory blocks BNK0-BNK7. In this way, the operation delay and the propagation delay associated with the paths for the external output of read data from the read buffers RB0-RB3 can be restrained from being excessively large when compared with the operation delay and the propagation delay associated with the direct paths for the external output of read data from the read registers of the memory blocks BNK0-BNK7 which bypass the read buffers RB0-RB3. Therefore, the above layout can contribute to the improved throughput of data read actions.

[0093] FIG. 17 shows an exemplary memory block in detail. The memory block BNK0 which is representatively illustrated in the figure includes a memory cell array 10 in which dynamic memory cells (not shown) are arranged in a matrix. A dynamic memory cell comprises a capacitance element for storing data and a selection transistor constituted by an n-channel MOSFET coupled to the capacitor element, wherein a selection terminal which is the gate of the selection transistor is connected to a word line WL, one end of the source-drain path of the selection transistor is coupled to the capacitor element, and the other end of the source-drain path of the selection transistor, or a data I/O terminal is coupled to a complementary bit line BL. Although it is not particularly illustrated, the complementary bit line has a folded bit line structure centering a sense amplifier, and a precharge circuit etc. is provided between the complementary bit lines.

[0094] A row decoder 11 is a row-selection circuit for selecting a word line WL specified by a row address signal RASADR in response to a falling change of the row address strobe signal RAS. The selection of the complementary bit lines BL is performed by a column decoder 13 and a column switch circuit 12. The column decoder 13 generates a column address signal 14 for selecting, in parallel, a plurality of complementary bit lines specified by a column address signal CASADR in response to a falling change of the column address strobe signal CAS. The column decoder 13 also activates a write signal 15W in response to the instruction of a write action given by the low level of a write enable signal WE, and activates a read signal 15R in response to the instruction of a read action given by the high level of the write enable signal WE. The column switch circuit 12 performs the switching operation by the column selection signal 14, and connects 32 bytes (288 bits) of the complementary bit lines specified by this signal 14 to 32 bytes of a complementary write data line WIO and 32 bytes of a complementary read data line RIO respectively.

[0095] To the complementary write data line WIO, 32 bytes of write data outputted by a write amplifier 17W are supplied in parallel. Similarly, to the complementary read data line RIO, 32 bytes of read data are supplied in parallel by a main amplifier 17R. The write amplifier 17W has 288 write amplifying circuits, and in response to the activation of the write signal 15W, it is enabled for the 288-bit parallel output action of an amplified signal for the 288 bits of write data DIN<0>-DIN<3> inputted in parallel to the complementary write data line WIO. The main amplifier 17R has 288 read amplifying circuits, and in response to the activation of the read signal, it is enabled for the parallel output action of an amplified signal for the input from the complementary read data line RIO as 288 bits of read data MAOUT<0>-MAOUT<3>. Each of the data DIN<0> . . . DIN<3> has 8 bytes, and similarly, each of the data MAOUT<0> . . . MAOUT<3> has 8 bytes.

[0096] Between an input path 20 of write data WD and the write amplifier 17W, a serial-parallel converter circuit 21 is disposed. Although it is not limited, the write data WD is supplied in parallel by 8 bytes. The serial-parallel converter circuit 21 includes four write registers 22 and a data latch control circuit 23. The input terminals of the write registers 22 are commonly connected to the input path 20, and the output terminals are individually coupled to the input terminals of the write amplifying circuits of the write amplifier 17W. The data latch control circuit 23 generates a 4-bit latch control signal DINL<3:0> by decoding a 2-bit latch control data DLAT<1:0> in synchronization with the clock signal CLK to provide latch control of the corresponding write resister 22. As the latch control data DLAT<1:0> is sequentially incremented, the write data WD inputted in parallel by 8 bytes is sequentially latched into the four write registers 22 in synchronization with the clock signal CLK, and 32-byte parallel write data DIN<0>-DIN<3> are obtained on the outputs of the four write registers 22.

[0097] Between an output path 29 of the read data MUXOUT and the main amplifier 17R, a parallel-serial converter circuit 25 is provided. The parallel-serial converter circuit 25 comprises four read registers 26, an output selector 27 and a selection control circuit 28. To the input terminals of the read registers 26, the read data MAOUT<0>-MAOUT<3> are inputted respectively from the main amplifier 17R. The latch timings of the read registers 26 are controlled by a latch control signal PDOLTT. A latch timing provided by the latch control signal PDOLTT is controlled by a later-described output control circuit 30 so as to ensure that it is later than the timing at which the read data MAOUT<0>-MAOUT<3> is determined by the data read out from the memory cells.

[0098] The selector 27 selects the output data DOUT<0>-DOUT<3> from the read registers 26 by every 8 bytes by a selection control signal MSEL<3:0>, and outputs to the output path 29. The selection control circuit 28 generates the 4-bit selection control signal MSEL<3:0> by decoding the 2-bit selection control data MUXSEL<1:0> in synchronization with the clock signal CLK. As the selection control data MUXSEL<1:0> sequentially increments, the output data DOUT<0>-DOUT<3> are sequentially outputted by 8 bytes to the output path 29 in synchronization with the clock signal CLK, thereby obtaining a read data MUXOUT.

[0099] The output control circuit 30 generates the latch control signal PDOLTT according to CAS latency. Where the data read action is performed in synchronization with the clock signal in response to the falling change of the column address strobe signal CAS, the “CAS latency” is a delay time, which is expressed by an equivalent number of cycles of the clock signal CLK, from the timing of the next clock cycle to the timing at which the data input to the parallel-serial converter circuit 25 is determined. More specifically, when a fall of the column address strobe signal CAS is detected at the falling edge of the clock signal CLK, the CAS latency would be a number of cycles of the clock signal CLK between the falling edge of a clock cycle next to the falling edge that detected the fall of the column address strobe signal CAS, and the first falling edge of the clock signal CLK after the read data DOUT<0>-DOUT<3> has been determined. The data read action from the memory cell array 10 and the read data amplifying action by the main amplifier 17R are uniquely determined according to the circuit configuration and the properties of the circuit elements. Accordingly, in order to achieve the high-speed external output of data, it is necessary to set a CAS latency that is equal to or greater than their operational delays but closest thereto. As previously mentioned, the CAS latency is an equivalent number of cycles of the clock signal CLK, so that the actual delay time by the CAS latency would depend upon the frequency of the clock signal CLK, and accordingly, even when a same delay time is set, if the frequency of the clock signal CLK is high, the CAS latency would be relatively large, and if it is low, then the CAS latency would be relatively small. In the example shown in FIG. 1, the output control circuit 30 realizes a CAS latency controlling circuit capable of controlling the CAS latency by receiving an input of latency setting data FRCD<1:0>. The CAS latency is reflected in the latch timing by the latch control signal PDOLTT.

[0100] A refresh control circuit (RCC) 40 is a control circuit for periodically refreshing the data in each of the memory cells in the memory cell array 10, and generates a plurality of internal control signals “ref” and supplies them to the internal circuits of the memory block BNK0. On the other hand, for the memory control circuit MCNT, the refresh control circuit 40 outputs a refresh period notification signal Mref0 which is activated while the memory block BNK0 is in a refresh period.

[0101] As apparent from the above description, each of the memory blocks BNK0-BNK7 receives the input of the column address strobe signal CAS which is varied in a cycle having a multiple length of the cycle of the clock signal CLK, and in every transition cycle of the column address signal CAS, a plurality of serial data that have been read out from the memory cell array 10 and parallel-serial converted in synchronization with the cycles of the clock signal CLK, are outputted from the memory block, and also, parallel data which has been inputted to the memory block in synchronization with the cycles of the clock signal CLK and serial-parallel converted is written into the memory cell array 10. In this way, using the access specification in which the column address strobe signal CAS is varied once in several cycles of the clock signal CLK, the acceleration in the speed of the memory operation may be attempted.

[0102] The present invention invented by the present inventor has been described in detail according to the preferred embodiments, however, it should be understood that the present invention is not limited to those disclosed, and various modifications may be contemplated without departing from the scope of its principle.

[0103] For example, the semiconductor integrated circuit of the present invention is not limited to the configuration having both the higher-level and lower-level interface blocks. The present invention may be viewed and implemented in various separate configurations, such as a configuration comprising memory blocks and read buffers as the one shown in FIG. 11, a configuration comprising memory blocks and write buffers as the one shown in FIG. 12, or a configuration comprising memory blocks, read buffers and write buffers as the one shown in FIG. 13.

[0104] Furthermore, if the chip space allows, the read buffer and write buffer may be provided for each of the memory blocks.

[0105] The number of the memory blocks, number of input/output bits of the parallel data, the number of the read register and the write register stages may also be varied accordingly.

[0106] The memory block is not limited to DRAM and the read buffer and the write buffer are not limited to SRAM. They may be memories of different types. It is obvious that the present invention is widely applicable to any cache memory, main memory and other logic-mounted semiconductor integrated circuits located in any hierarchical level.

[0107] The effects obtained by the representative implementation of the present invention among those disclosed herein are as follows.

[0108] That is, with the configuration using data buffers in order to avoid the data competition caused by the parallel operation of the memory blocks, the throughput of read actions may be improved.

[0109] The improved throughput of read actions may be achieved without meaninglessly expanding the logic scale of the logic circuits.

[0110] A semiconductor integrated circuit may be realized, which can readily accept write access requests regardless of its internal memory operation states.

Claims

1. A semiconductor integrated circuit comprising;

a plurality of memory blocks capable of parallel operation;
an external interface means capable of externally inputting a write data and externally outputting a read data;
a read buffer capable of holding a read data read out from a memory block in response to an external-output-incapable state in which said read data cannot be externally outputted from said external interface means; and
a selection means for selecting either the read data read out from said memory block or the read data read out from said read buffer and feed it to said external interface means while said external-output-incapable state is not present.

2. A semiconductor integrated circuit comprising;

a plurality of memory blocks capable of parallel operation;
a read buffer capable of holding a read data read out from a memory block;
an external interface means capable of externally outputting a read data outputted by said read buffer and a read data outputted by a memory block; and
a controlling means for controlling said read buffer to hold a read data read out from a memory block in response to an external-output-incapable state in which said read data cannot be externally outputted from said external interface means, and while said external-output-incapable state is not present, controlling said external interface means to output the read data read out from a memory block or the read data read out from said read buffer.

3. A semiconductor integrated circuit comprising;

a plurality of memory blocks capable of parallel operation;
an external interface means capable of externally inputting a write data; and
a write buffer capable of receiving and holding a write data inputted to said external interface means, and supplying said write data to a memory block after said memory block is write-enabled.

4. A semiconductor integrated circuit comprising;

an external interface means capable of receiving an external input of a write data;
a write buffer for receiving a write data inputted to said external interface means;
a plurality of memory blocks to which write data is supplied from said write buffer; and
a controlling means for controlling said write buffer to store said write data supplied to said external interface means in response to an external access request, and after an access-target memory block is write-enabled, controlling said write buffer to supply said write data to said access-target memory block.

5. A semiconductor integrated circuit comprising;

a plurality of memory blocks capable of parallel operation;
an external interface means capable of externally inputting a write data and externally outputting a read data;
a write buffer for receiving and holding a write data inputted to said external interface means, and supplying said write data to a memory block after said memory block is write-enabled;
a read buffer capable of holding a read data read out from a memory block in response to an external-output-incapable state in which said read data cannot be externally outputted from said external interface means; and
a selection means for selecting either the read data read out from a memory block or the read data read out from said read buffer and feeding it to said external interface means while said external-output-incapable state is not present.

6. A semiconductor integrated circuit comprising;

a plurality of memory blocks capable of parallel operation;
a first external interface means capable of externally inputting a write data and externally outputting a read data;
a second external interface means capable of externally inputting a write data and externally outputting a read data;
a write buffer for receiving and holding a write data inputted to said first or second external interface means, and supplying said write data to a memory block after said memory block is write-enabled;
a read buffer capable of holing a read data which is to be outputted from said second external interface means, and holding a read data which is to be outputted from said first external interface means but is in an external-output-incapable state in which it cannot be externally outputted from said first external interface means; and
a selection means for selecting either the read data read out from the memory block or the read data read out from said read buffer, and feeding it to said first external interface means while said external-output-incapable state is not present.

7. A semiconductor integrated circuit according to

claim 6 wherein said first and second external interface means are respectively capable of receiving external inputs of access requests and access addresses for the individual memory blocks.

8. A semiconductor integrated circuit according to

claim 6 or
7 further comprising a memory buffer capable of receiving and holding a data from said second external interface means, and externally outputting said stored data from said second external interface means.

9. A semiconductor integrated circuit according to one of claims 5 through 9 wherein said memory blocks are DRAMs and said read buffer and said write buffer are SRAMs.

10. A semiconductor integrated circuit according to

claim 5 or
6 wherein each of said memory blocks comprises;
a memory cell array including a plurality of memory cells, each of said memory cells having a selection terminal connected to a word line and a data input/output terminal connected to a bit line;
a row selection circuit for selecting a word line specified by a row address signal;
a column selection circuit for selecting, in parallel, a plurality of bit lines specified by a column address signal;
a serial-parallel converter circuit for converting a write data serially inputted from said write buffer into a parallel data in synchronization with a clock signal;
a write amplifier for outputting said parallel data of said serial-parallel converter circuit to a plurality of bit lines selected by said column selection circuit;
a main amplifier for amplifying the parallel data outputted from the plurality of bit lines selected by said column selection circuit; and
a parallel-serial converter circuit for converting the parallel data outputted from said main amplifier into a serial data in synchronization with the clock signal, and outputting it to said read buffer and said selection means.

11. A semiconductor integrated circuit according to

claim 10 wherein each of said memory blocks is a multi-port memory comprising separately, a serial data input path for said serial-parallel converter circuit and a serial data output path for said parallel-serial converter circuit.

12. A semiconductor integrated circuit comprising;

a plurality of memory blocks arranged on the opposing ends of a semiconductor chip;
a read buffer capable of holding a read data read out from a memory block and a write buffer capable of holding a write data to be fed into a memory block, said read buffer and write buffer being disposed between said opposing memory blocks;
an external interface means disposed in the proximity of said read buffer and write buffer; and
an external connection electrode located in the proximity of said external interface means;
wherein said write buffer receives and holds a write data inputted to said external interface means, and supplies said write data to a memory block after said memory block is write-enabled, and said read buffer holds a read data read out from a memory block in response to an external-output-incapable state in which said read data cannot be externally outputted from said external interface means.

13. A semiconductor integrated circuit comprising;

a semiconductor chip;
a first dynamic memory formed on said semiconductor chip for storing a plurality of data, said first dynamic memory including a data output section for outputting a corresponding data in response to the reception of a given address signal;
a second dynamic memory formed on said semiconductor chip for storing a plurality of data, said second dynamic memory including a data output section for outputting a corresponding data in response to the reception of a given address signal;
an external output circuit formed on said semiconductor chip;
a first buffer circuit formed on said semiconductor chip, said first buffer being coupled to said output section of said first dynamic memory;
a first selection circuit formed on said semiconductor chip, comprising a first input coupled to said data output section of said first dynamic memory, a second input coupled to an output of said buffer circuit and an output coupled to said external output circuit;
a second buffer circuit formed on said semiconductor chip, said second buffer being coupled to said output section of said second dynamic memory;
a second selection circuit formed on said semiconductor chip, comprising a first input coupled to said data output section of said second dynamic memory, a second input coupled to an output of said buffer circuit and an output coupled to said external output circuit; and
a control circuit for controlling the selection operations of said first and second selection circuits and write actions of said first and second buffer circuits.

14. A semiconductor integrated circuit according to

claim 13 wherein each of said first and second buffer circuits includes a plurality of static memory cells.

15. A semiconductor integrated circuit comprising;

a semiconductor chip;
a memory formed on said semiconductor chip, comprising a data input section, said memory requiring periodical refreshing of stored data;
a buffer circuit formed on said semiconductor chip, said buffer circuit being coupled to said data input section of said memory;
an external input circuit formed on said semiconductor chip, said external input circuit being coupled to said buffer circuit and being supplied with data to be written into said memory; and
a control circuit formed on said semiconductor chip for controlling said buffer circuit so as to have said buffer circuit selectively hold a data supplied to said external input circuit during a refresh action of said memory.

16. A semiconductor integrated circuit according to

claim 15 wherein said memory includes a plurality of word lines, a plurality of data lines and a plurality of memory cells coupled to said plurality of word lines and said plurality of data lines so that each of said memory cells is coupled to one of the word lines and one of the data lines, and each of said memory cells comprises a capacitance element and a selection transistor, said selection transistor including a selection terminal coupled to a corresponding word line and a data input/output terminal coupled to a corresponding data line.

17. A semiconductor integrated circuit according to

claim 16 wherein said buffer circuit comprises;
a memory array including a plurality of static memory cells, a plurality of word lines and a plurality of complementary data line pairs;
an address decoder for selecting a given word line in response to an address signal;
a sense amplifier for amplifying the data from a plurality of selected memory cells; and
a data output circuit for outputting the amplified data.

18. A semiconductor integrated circuit according to

claim 17 wherein said buffer circuit includes a plurality of static memory cells, each of said plurality of static memory cells including a pair of inverters having their input/output terminals cross-coupled.
Patent History
Publication number: 20010012232
Type: Application
Filed: Feb 5, 2001
Publication Date: Aug 9, 2001
Inventors: Michiaki Nakayama (Ome), Hideki Sakakibara (Ome), Toru Kobayashi (Iruma), Shuichi Miyaoka (Hannou), Yuji Yokoyama (Ome), Hideo Sawamoto (Machida), Masaji Kume (Ebina)
Application Number: 09775544
Classifications
Current U.S. Class: Plural Blocks Or Banks (365/230.03)
International Classification: G11C008/00;