It is the U.S. Provisional Patent Application No.60/426 on November 14th, 2002 that the application requires the applying date, and 575 is right of priority, is incorporated herein and with reference to its full content.
Summary of the invention
The invention provides a kind of can by in clock signal period in turn from the storage unit read data and the data write storage unit is improved the integrated circuit of the operating frequency of clock signal.
The present invention also provide a kind of by in clock signal period in turn from the storage unit read data with increase the method for the running frequency of clock signal to the storage unit write data.
According to one aspect of the invention, provide a kind of have separate input and output port and in clock signal period to its input write address with read the integrated circuit of address, this integrated circuit comprises: the storage block that comprises a plurality of sub-storage blocks respectively, the caches piece of difference corresponding stored piece, and respond write address or read the address and from storage block and caches piece sense data or data are write the marker stores control module of storage block and caches piece, if it is mutually the same wherein reading the high address of address and the high address of write address, this marker stores control module just writes storage block and caches piece from storage block and caches piece sense data or with data simultaneously.
Corresponding respectively write address is decoded with two that read the address different sub-storage blocks.
This integrated circuit further comprises write address decoding path separated from one another and reads the address decoder path, and sub-storage block connects write address decoding path and reads the address decoder path.
In the sub-storage block in storage block, has a storage unit of the corresponding caches piece of storage unit of identical high address.The size of caches piece (volume) is equal to or greater than the size of sub-storage block.
Marker stores control module storage is used for determining whether cache addresses and caches piece effectively effectively determine information, and cache addresses is the address of sub-storage block that shows the data of corresponding caches piece and its storage.
When while read and write data, flag memory cell is indicated the data manipulation based on high-order read and write address simultaneously.In one case, high-order read and write address is identical, but the two is different from cache addresses.In this situation, the marker stores control module is read the storage block sense data of address and data is write the caches piece from correspondence.
Under second kind of situation, high-order read and write address is identical, and write address or to read the address be identical with cache addresses.In this case, on the caches piece, carry out operation, and on storage block, carry out other operation corresponding to the identical address of cache addresses.Under the third situation, all be identical if read address, write address and cache addresses, then the identical time from caches piece sense data with and data are write storage block.
Under the 4th kind of situation, a high position reads the address and high-order write address is inequality, but write address or to read the address identical with cache addresses.In this case, on the caches piece, carry out the operation of corresponding identical address, and on storage block, carry out operation corresponding and other address that cache addresses is inequality with cache memory.
Input or output data at single data rate (SDR) or double data rate (DDR) (DDR).
According to a further aspect in the invention, a kind of integrated circuit with input and output port of separation is provided, integrated circuit comprises: the storage block that comprises a plurality of sub-storage blocks respectively, corresponding stored piece and corresponding cache memory control signal and it is read or write a plurality of caches pieces of data respectively, corresponding stored piece and generation are used to control the corresponding write address of sub-storage block respectively, read the address, or a plurality of decoding units of the decoded signal of decoding control signal, reception is write and is selected signal or read to select signal, receive write address or read the address and produce the cache memory control signal or decoding control signal with read or write based on write address in clock signal period with read the address marker stores control module of whether identical data each other.
Decoding unit comprises a plurality of decoding circuits corresponding to sub-storage block.Decoding circuit is connected in the write address decoding path that is separated from each other and reads the address decoder path, and sub-storage block is connected to write address decoding path and reads the address decoder path.
According to a further aspect in the invention, provide a kind of in integrated circuit the method for read and write data, this integrated circuit comprises the input and output port of separation, the a plurality of storage blocks that have a plurality of sub-storage blocks respectively, and the corresponding stored piece and in clock signal period to its input write address with read the caches piece of address, this method comprises that (a) determines in clock signal period write address and reads whether the address all is transfused to or write address or read one of address and whether be transfused to, (b) if write address and read the address and all be transfused to, whether the high address (upper address) of determining write address is identical with the high address of reading the address, (c) if the high address of write address is identical with the high address of reading the address, determine write address and whether read the address identical with cache addresses, if and (d) write address and read the address and cache addresses is all inequality, read the storage block sense data of address and data write the caches piece from correspondence.
Step (d) comprises further whether the data that (d1) determine to be stored in the caches piece are effective, (d2) invalid then read the storage block sense data of address and data are write the caches piece if be stored in data in the caches piece from correspondence, (d3) upgrade information on the data write the caches piece, (d4) if the data that are stored in the high-speed memory piece are effective, just read sense data the storage block of address and the valid data that will be stored in the high-speed memory piece write storage block, and (d5) data are write caches piece and upgrade information on the data that write the caches piece from correspondence.
Cache addresses show corresponding caches piece the address of sub-storage block.
Step (c) further comprises (c1) if write address or to read the address identical with cache addresses, on the caches piece, carry out the operation of corresponding identical address with cache memory, and on storage block, carry out the operation of corresponding and cache addresses other address inequality, if and (c2) write address with to read the address all identical with cache addresses, sense data from the caches piece then, data are write storage block, and upgrade the information on the data that write storage block.
Step (b) further comprises (b1) if the high address of write address is inequality with the high address of reading the address, determine write address and whether read the address identical with cache addresses, (b2) if write address or to read one of address identical with cache addresses, then on the caches piece, carry out the operation of corresponding identical address and on storage block, carry out operation corresponding and other address that cache addresses is inequality with cache memory, (b3) if write address or to read the address all identical with cache addresses, sense data from the caches piece, data are write storage block and upgrade information on the data write storage block, if and (b4) write address or read the address and cache addresses all inequality, on the write address of the storage block of corresponding selection and two that read the address different sub-storage blocks, carry out data write operation and data reading operation.
Step (a) further comprises (a1) if import write address or read one of address, whether the address of determining input is identical with cache addresses, (a2) if the address of input is identical with cache addresses, then on the caches piece, carry out the operation of corresponding identical Input Address with cache addresses, if and address and the cache addresses (a3) imported are inequality, on storage block, carry out the operation corresponding and Input Address that cache addresses is inequality.
In the different sub-storage block of storage block, has a storage unit of the corresponding caches piece of memory cell of identical low order address.
The size of caches piece is equal to or greater than the size of sub-storage block.
Embodiment
Accompanying drawing with reference to the preferred embodiment of the present invention shown in it will be described the present invention more fully.In the accompanying drawings, identical Reference numeral is used for reference to corresponding all similar elements.
Fig. 2 is the block scheme according to the integrated circuit 200 of first embodiment of the invention.
With reference to figure 2, integrated circuit 200 comprises: storage block MB1, MB2, MB3 and MB4, and each in them all has a plurality of sub-storage block SMB1 to SMB M; Caches piece CMB1, CMB2, CMB3 and the CMB4 of corresponding stored piece MB1, MB2, MB3 and MB4; With marker stores control module 210.The integrated circuit 200 of Fig. 2 has the input/output end port of separation, and in clock signal period with write address WADD with read address RADD and input to integrated circuit 200.
Storage block MB1, MB2, MB3 and MB4 have identical configuration, and caches piece CMB1, CMB2, CMB3 and CMB4 have identical configuration.Therefore, hereinafter, storage block MB2 and caches piece CMB2 are only described.
Write address WADD and read address RADD and form by high address and low order address respectively.The high address is used for selecting a sub-storage block of a plurality of sub-storage blocks.
If it is mutually the same then read and write the cycle that data shorten clock signal respectively simultaneously in storage block and caches piece that the present invention is primarily aimed at write address WADD and reads address RADD.
Just, if write address WADD and to read address RADD mutually the same is necessary to visit identical storage block, for example, the identical sub-storage block of MB2, for example, SMB2, reading of data and in the caches piece CMB2 of the sub-storage block SMB2 of correspondence, write data in sub-storage block SMB2.
If data are written into storage block MB2, reading of data in the caches piece CMB2 of corresponding stored piece MB2 then.Therefore, can read simultaneously and write data and shorten clock signal period.
Therefore, in storage block MB2 with identical low order address (lower address), the storage unit of the necessary corresponding caches piece CMB2 of the storage unit of sub-storage block SMB1 to SMB M.In addition, owing to can read and write data in identical sub-storage block, the size of caches piece must be equal to or greater than the size of sub-storage block.
Marker stores control module 210 reads the data that are stored among storage block MB1, MB2, MB3 and MB4 and caches piece CMB1, CMB2, CMB3 and the CMB4 or data is write storage block MB1, MB2, MB3 and MB4 and caches piece CMB1, CMB2, CMB3 and CMB4.
If write address WADD and to read address RADD mutually the same, the serve as a mark cache addresses of storage control unit 210 of reading of data and data are write among the caches piece CMB2 in the sub-storage block of storage block MB2 then, the address that is written into the sub-storage block of the storage block MB2 that the data of caches piece CMB2 should deposit in is stored.
Just, cache addresses is the high address that is used for the chooser storage block, this sub-storage block be stored in the data of caches piece CMB2 should stored place.
Visit the cache addresses that is stored in the marker stores control module 210 by the low order address that uses Input Address, accessed cache addresses is compared with the high address of Input Address.
If next write address WADD and the next one are read the mutually the same and next write address WADD of address RADD and the next one and read address RADD and write address WADD the preceding and read address RADD the preceding identical, it is necessary then carrying out data write operation in caches piece CMB2.Whether in this case, must determine to have write the data of caches piece CMB2 effective.
If it is effective to have write the data of caches piece CMB2, just in the sub-storage block of corresponding stored piece MB2, read or write data, the data of corresponding next write address WADD are written into caches piece CMB2.The effectively definite information that shows the validity of the data that deposit caches piece CMB2 in is deposited in the marker stores control module 210.
If write address WADD and read address RADD and differ from one another then decodes with two that read address RADD different sub-storage blocks to corresponding write address WADD respectively.
Therefore, integrated circuit 200 must have write address decoding path (not shown) separated from one another and read address decoder path (not shown).In addition, sub-storage block SMB1 to SMB M must connect write address decoding path respectively and read the address decoder path.
Input or output data by input pin and output pin from single data rate (SDR) or double data rate (DDR) (DDR).
Marker stores control module 210 control store piece MB2 and caches piece CMB2 also carry out the read and write operation of data.The operation of marker stores control module 210 will be described with reference to figure 3 and 4.
Fig. 3 is the block scheme that shows according to the integrated circuit 300 of second embodiment of the invention.
Integrated circuit 300 comprises storage block, caches piece, decoding unit and the marker stores control module 310 that has a plurality of sub-storage block SMB1 to SMB M respectively.
The caches piece is the corresponding stored piece respectively, writes data to respond predetermined speed buffering control signal CCLS from caches piece reading of data or to it.Decoding unit is corresponding stored piece and produce decoded signal DS respectively, and it controls sub-storage block SMB1 to SMB M to respond predetermined decoding control signal DCLS.
In order to simplify, Fig. 3 has only shown a decoding unit 320 of a storage block MB2 of a plurality of sub-storage blocks, a plurality of decoding units and a caches piece CMB2 of a plurality of caches pieces.Operation according to the integrated circuit 300 of second embodiment will be described with reference to storage block MB2, caches piece CMB2 decoding unit 320 and marker stores control module 310.
Marker stores control module 310 receives to write and selects signal WES or read to select signal RES, receive write address WADD or read address RADD, if and the write address WADD that in clock signal period, imports and to read address RADD mutually the same, then produce speed buffering control signal CCLS or decoding control signal DCLS so that write and reading of data in the identical time.Although not shown, read to select signal RES and write selection signal WES to be applied to storage block MB2 and caches piece CMB2.
Because if the address RADD that reads of the write address WADD of input and input differs from one another then that to read two different sub-storage blocks of address RADD necessary decoded for corresponding respectively input write address WADD and input, so decoding unit comprises the decoding circuit (not shown) of corresponding sub-storage block SMB1 to the SMB M of a plurality of difference.
Therefore, decoding circuit is connected in write address decoding path (not shown) separated from one another and reads address decoder path (not shown), and sub-storage block SMB1 to SMB M is connected in write address decoding path and reads the address decoder path.
Fig. 4 is the process flow diagram of the method for read and write data when showing according to the embodiment of the invention.Fig. 5 is the process flow diagram that is used for the step 440 of key drawing 4, and Fig. 6 is the process flow diagram that is used for the step 445 of key drawing 4, and Fig. 7 is the process flow diagram that is used for the step 455 of key drawing 4.
Hereinafter, will the integrated circuit of the data of read and write simultaneously and the method for the data of read and write simultaneously be described with reference to figs. 2 to Fig. 7.
In step 410, whether determine in clock signal period write address and read the address all to be transfused to.Select signal WES and read to select signal RES to carry out this and determine by writing of Fig. 3.
Here, input write address WADD when writing selection signal WES at low level, address RADD is read in input when reading to select signal RES at low level.Yet, perhaps can import write address WADD and read address RADD when writing when selecting signal WES and reading to select signal RES in a high position.
Marker stores control module 310 receives to write and selects signal WES and read to select signal RES and receive write address WADD and read address RADD.
If write address WADD and read address RADD and be received in step 420, determines whether the high address of write address WADD is identical with the high address of reading address RADD.
Write address WADD and read address RADD and have the information that is used in reference to the stator storage block in they high positions.Therefore, if import write address WADD and read address RADD, specify sub-storage block by confirming write address WADD and the high address of reading address RADD.
If whether the high address of write address WADD and to read the high address of address RADD mutually the same in step 430, is determined write address WADD and reads address RADD identical with the cache addresses of being scheduled to.
If the high address of write address WADD is identical with the high address of reading address RADD, write address WADD with read address RADD and specify identical sub-storage block.
Marker stores control module 310 storages cache addresses wherein.Cache addresses shows the address of the sub-storage block of corresponding caches piece CMB2.If write address WADD is identical with cache addresses, data must be written into caches piece CMB2.
If write address, is read the storage block reading of data of address and data is write the caches piece from correspondence in step 440 with to read the address not identical with cache addresses.5 more detailed description steps 440 with reference to the accompanying drawings.
If write address determines with to read the address not identical with cache addresses whether the data that deposit in are effective in step 510 in the caches piece.
If write address WADD is not with to read address RADD identical with cache addresses, then data must be written in the identical sub-storage block of storage block MB2 or read from the identical sub-storage block of storage block MB2.Can not in identical sub-storage block, activate write word line and readout word line in the identical time.Therefore, owing to this reason is used caches piece CMB2.
If the data that are stored in the caches piece are invalid, in step 540, read the storage block of address reading of data and data are write the caches piece from correspondence.
If data must write sub-storage block or read the prioritized data read operation from sub-storage block.Therefore, read reading of data the sub-storage block of storage block MB2 of address RADD from correspondence.Because the data that are stored among the caches piece CMB2 are invalid, data just are written into caches piece CMB2.
Marker stores control module 310 is provided to decoding unit 320 with decoding control signal PCLS.Then, in decoding unit 320 decoding circuit of reading address RADD of homographic solution decoding circuit by producing the decoded signal DS corresponding sub-storage block of decoding.Output is stored in the data in the sub-storage block.The MDOUT of Fig. 3 represents to be stored in by its output the path of the data among the storage block MB2.Q represents output pin.Output pin Q and input pin D are separated from one another.
Marker stores control module 310 produces speed buffering control signal CCLS and data is write caches piece CMB2.
Be updated owing to be stored in the data of caches piece CMB2, in step 550, upgrade the information on the data that write caches piece CMB2.Carry out the renewal of the data message of speed buffering by marker stores control module 310.
If be stored in the data of caches piece CMB2 and be effectively, in step 520, read reading of data the storage block of address, and read the data that are stored in caches piece CMB2 and data are write corresponding storage block from correspondence.
Because prioritized data read operation when data must all write and read, read the sub-storage block of storage block MB2 of address RADD reading of data with the decoding control signal DCLS of response from 310 generations of marker stores control module from correspondence from identical sub-storage block.
Owing to be stored in the data of caches piece CMB2 is effectively, just read the data that are stored in caches piece CMB2 and read, and the data that read is written in the sub-storage block of corresponding reading of data.Then, in step 530, data are written into caches piece CMB2 with response speed buffering control signal CCLS, and the information on the data that write caches piece CMB2 is updated.Carry out the high speed buffer data information of upgrading by marker stores control module 310.
Carry out the operation of data write and read in the identical time.That is,, can activate write word line and readout word line in the identical time because data are written into sub-storage block and read from caches piece CMB2.Therefore, clock signal period shortens manyly than the custom integrated circuit that activates write word line and readout word line in turn.
In step 445, identical with cache addresses one of in determining whether to have only write address and reading the address, perhaps write address is carried out the operation of data write and read then with whether read the address all identical with cache addresses.To step 445 be described in more detail with reference to figure 6.
If have only in determining write address and reading the address one identical with cache addresses, then execution in step 610.On the caches piece, carry out operation according to the address identical with cache addresses, and on storage block, carry out according to other operation of cache addresses other address inequality.
Just, if it is identical with cache addresses to read address RADD, and write address and cache addresses are inequality, then reading of data from caches piece CMB2.Marker stores control module 310 is provided to caches piece CMB2 to carry out data reading operation with speed buffering control signal CCLS.The data that read are shown in CDOUT among Fig. 3.
Marker stores control module 310 produces decoding control signal DCLS to carry out data write operation on storage block MB2.
If write address identical with cache addresses and read address RADD and cache addresses inequality, data are written into caches piece CMB2 and sense data from storage block MB2.
If write address is with to read the address all identical with cache addresses, in step 620, reading of data and data are write storage block from the caches piece, and upgrade the information on the data that write storage block.
If write address is with to read the address all identical with cache addresses, data must be written into caches piece CMB2 or read from caches piece CMB2.Yet, can not be written into sub-storage block or the same in the identical time with data from the reason of sub-storage block sense data, data can not be write caches piece CMB2 or sense data from caches piece CMB2.
Therefore, reading of data writes data the sub-storage block of corresponding write address with response decoding control signal DCLS then with response speed buffering control signal CCLS from caches piece CMB2.Owing to data should be write caches piece CMB2 but data are write sub-storage block, therefore the data that are stored among the caches piece CMB2 are invalid.Therefore, update stored in information on the data among the caches piece CMB2 by marker stores control module 310.
If the high address of write address and the high address of reading the address differ from one another in step 420, then in step 450, determine write address and whether read the address identical with cache addresses.
In step 455, determine write address or read whether to have in the address one identical with cache addresses or whether write address and determine to carry out the operation of data write and read with to read the address all identical with cache addresses according to this.With reference to figure 7, more detailed description step 455.
If write address with read the address in have only one identical with cache addresses, in step 710, on the caches piece, carry out the respective operations of the address identical, and on storage block, carry out operation corresponding and other address that cache addresses is inequality with cache addresses.
Just, if read the identical write address WADD of address RADD and cache addresses with cache addresses inequality from caches piece CMB2 reading of data with response speed buffering control signal CCLS.In addition, marker stores control module 310 produces decoding control signal DCLS to carry out data write operation on storage block MB2.
If write address WADD is with to read address RADD all identical with cache addresses, then reading of data and data are write storage block from the caches piece is upgraded the information on the data that write storage block in step 720.
Data write and read operation if write address with to read the address all identical with cache addresses, then must be carried out on caches piece CMB2.Yet, owing to can not also data can not be write caches piece CMB2 or reading of data from caches piece CMB2 in this same cause of read and write data on sub-storage block of identical time.
Therefore, then data are write the sub-storage block of corresponding write address with response decoding control signal DCLS from caches piece CMB2 reading of data with response speed buffering control signal CCLS.Owing to data should be write caches piece CMB2 but data are write sub-storage block, the data that are stored among the caches piece CMB2 are just invalid.Therefore, update stored in information on the data among the caches piece CMB2 by marker stores control module 310.
If write address or read the address all with the cache addresses result who determines as step 450 inequality, in step 460, on the write address of corresponding stored piece respectively and two that read the address different sub-storage blocks, carry out the data write and read and operate (step 460).
In this situation, write address with read address RADD and specify two different sub-storage blocks.Owing to specify two sub-storage blocks of difference, by using the decoding circuit (not shown) execution data read and write operation of corresponding sub-storage block respectively.
Owing to comprise the separation decoding circuit that is used to separate the numeral storage block and write address decoding path and read the address decoder path separated from one another, can carry out data write operation and from sub-storage block, carry out data reading operation in identical time antithetical phrase storage block if the sub-storage block of storage block differs from one another.
If in step 410, import write address or read the address, in step 465, determine whether the address of input is identical with cache addresses.
If the address of input is identical with cache addresses, in step 470, on the caches piece, carry out the operation of corresponding Input Address.In this case, input write address WADD or read one of address RADD in clock signal period.
If the address and the cache addresses of input are inequality, on storage block MB2, carry out the operation of corresponding other address.
Just, if the write address WADD of input write address WADD and input is identical with cache addresses, then on caches piece CMB2, carry out data write operation.If input read address RADD and input to read address RADD identical with cache addresses, then on caches piece CMB2, carry out data reading operation.Here, marker stores control module 310 produces speed buffering control signal CCLS to carry out the operation of data write or read on caches piece CMB2.
If the address and the cache addresses of input are inequality, in step 475, on storage block, carry out the operation corresponding and Input Address that cache addresses is inequality.
Fig. 8 is the sequential chart that is used to explain according to the operation of integrated circuit of the present invention.
With reference to figure 8, the cycle of the clock signal clk of Fig. 8 is half of cycle of the clock signal clk of Fig. 1.Just, the frequency of the clock signal clk of Fig. 8 is the twice of frequency of the clock signal clk of Fig. 1.
In the prior art, owing in the cycle of clock signal clk, activate word line that is used for data write operation and the word line that is used for data reading operation successively, just be difficult to shorten the cycle of clock signal clk.Yet, according to integrated circuit and the method in identical time read and write data of the present invention, owing in the cycle of clock signal clk, activate word line WL1 that is used for data reading operation and the word line WL2 that is used for data write operation, therefore can shorten the cycle of clock signal clk in the identical time.
The present invention can be used for input port and output port be separate and in clock signal period, can receive write address and read the two integrated circuit of address.According to the present invention, just can be with single data rate (SDR) or double data rate (DDR) (DDR) to input pin input data with from the output pin output data, input pin and output pin are separated from one another.
As mentioned above, be used for storage block being divided into a plurality of sub-storage blocks at the integrated circuit of identical time read and write data, also comprise each sub-storage block of decoding decoding circuit, write address decoding path, be connected in all sub-storage blocks read the address decoder path and under the identical time in clock signal period from storage block and caches piece reading of data or to they write datas, improve the clock signal running frequency thus.
Illustrating and describing the present invention particularly with reference to its exemplary embodiment, be to be understood that do not breaking away under the present invention and the spirit and scope that claim limited thereof that those of ordinary skills can carry out various variations in form and details.