KR20040036477A - Integrated circuit capable of operating data read and data writing simultaneously and method thereof - Google Patents

Integrated circuit capable of operating data read and data writing simultaneously and method thereof Download PDF

Info

Publication number
KR20040036477A
KR20040036477A KR1020020065682A KR20020065682A KR20040036477A KR 20040036477 A KR20040036477 A KR 20040036477A KR 1020020065682 A KR1020020065682 A KR 1020020065682A KR 20020065682 A KR20020065682 A KR 20020065682A KR 20040036477 A KR20040036477 A KR 20040036477A
Authority
KR
South Korea
Prior art keywords
address
read
write
cache memory
memory block
Prior art date
Application number
KR1020020065682A
Other languages
Korean (ko)
Other versions
KR100518538B1 (en
Inventor
손교민
서영호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR20020065682A priority Critical patent/KR100518538B1/en
Priority to DE2003149949 priority patent/DE10349949A1/en
Priority to US10/692,997 priority patent/US6826088B2/en
Priority to JP2003366262A priority patent/JP4220351B2/en
Priority to CNB200310124070XA priority patent/CN100367240C/en
Publication of KR20040036477A publication Critical patent/KR20040036477A/en
Application granted granted Critical
Publication of KR100518538B1 publication Critical patent/KR100518538B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • G06F2212/3042In main memory subsystem being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2281Timing of a read operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/229Timing of a write operation

Abstract

PURPOSE: An integrated circuit capable of performing a data read operation and a data write operation at the same time and its method are provided to increase an operating frequency of a clock signal. CONSTITUTION: According to the integrated circuit(200) where an input port and an output port are separated and a write address(WADD) and a read address(RADD) are inputted during one period of a clock signal, memory blocks(MB1,MB2,MB3,MB4) comprise a plurality of sub memory blocks respectively. Cache memory blocks(CMB1,CMB2,CMB3,CMB4) correspond to the memory blocks. And a tag memory control part(210) reads data stored in the memory blocks or the cache memory blocks or writes data to the memory blocks or the cache memory blocks in response to the write address or the read address.

Description

데이터 독출 동작과 기입 동작을 동시에 수행할 수 있는 집적 회로 및 방법.{Integrated circuit capable of operating data read and data writing simultaneously and method thereof}Integrated circuit capable of operating data read and data writing simultaneously and method according to the present invention.

본 발명은 집적 회로에 관한 것으로서, 특히 입출력 포트가 분리된 집적 회로에 있어서 데이터 독출 동작과 기입 동작이 동시에 수행될 수 있는 집적 회로 및 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to integrated circuits, and more particularly, to integrated circuits and methods in which data read and write operations can be performed simultaneously in integrated circuits having separate input and output ports.

일반적인 동기식 램(synchronous RAM)은 하나의 클럭 주기마다 독출 데이터 또는 기입 데이터 중 어느 하나만을 전송할 수 있다.A general synchronous RAM can transmit only one of read data or write data every one clock period.

이중 데이터율 램(double data rate RAM)은 클럭의 상승 에지와 하강 에지마다 데이터를 전송함으로써 데이터 전송률을 2배 증가 시켰다. 그러나 일반적인 메모리 장치는 데이터의 입력과 데이터의 출력이 하나의 핀을 통하여 이루어진다. 공통 입출력 포트(common I/O)를 이용하는 방법은 데이터의 입력과 출력이 독립적으로 제어될 수 없기 때문에 데이터의 입력 주파수와 출력 주파수가 제한될 수밖에 없다.Double data rate RAM doubles the data rate by transferring data on the rising and falling edges of the clock. However, in a typical memory device, data input and data output are performed through one pin. In the method using the common I / O port, since the input and output of the data cannot be controlled independently, the input and output frequencies of the data are limited.

그러나 메모리 장치의 대역폭(bandwidth)이 중요시되면서, 분리된 입출력 포트(separate I/O)를 사용하는 제품들이 제조되고 있다. 즉, 데이터의 입력과 출력이 독립적으로 제어될 수 있도록 입력 핀과 출력 핀이 분리된 것이다. 분리된 입력 핀과 출력 핀을 가진 메모리 장치는 클럭의 한 주기 내에 독출 명령(read command)과 독출 어드레스(read address), 기입 명령(write command)과 기입 어드레스(write address) 및 기입 데이터(write data)를 모두 수신할 수 있으므로 동작 주파수를 증가시킬 수 있다.However, as bandwidth of a memory device becomes important, products using separate input / output ports (separate I / O) are being manufactured. In other words, the input and output pins are separated so that data input and output can be controlled independently. A memory device with separate input pins and output pins has a read command, a read address, a write command, a write address, and write data within a period of a clock. ) Can be received, increasing the operating frequency.

그러나, 분리된 입출력 포트를 가지는 메모리 장치라도 하나의 클럭 주기 내에서 독출 명령(read command)과 독출 어드레스(read address), 기입 명령(write command)과 기입 어드레스(write address) 및 기입 데이터(write data)를 수신하는 경우, 독출 동작과 기입 동작이 하나의 클럭 주기 내에 수행되기 위해서는 두 번의 메모리 셀 접근이 수행되어야 한다.However, even in a memory device having a separate input / output port, a read command, a read address, a write command, a write address, and write data within one clock period ), Two memory cell accesses must be performed in order for the read and write operations to be performed within one clock period.

즉, 데이터의 독출과 기입을 위한 워드 라인의 활성화가 클럭의 한 주기 내에 두 번 수행되어야 하므로 클럭 주파수가 워드 라인의 활성화 시간에 의해서 제한을 받는 문제가 있다.That is, since the activation of the word line for reading and writing data has to be performed twice within one period of the clock, the clock frequency is limited by the activation time of the word line.

도 1은 분리된 입출력 포트를 가지는 메모리 장치의 동작을 설명하는 타이밍도이다.1 is a timing diagram illustrating an operation of a memory device having separate input / output ports.

어드레스와 워드 라인사이의 관계나 입력 데이터 및 출력 데이터의 레이턴시(latency)는 메모리 장치의 회로 구성에 따라 달라지므로 도 1에서는 여기서는 고려되지 않는다.The relationship between the address and the word line, or the latency of the input data and the output data depends on the circuit configuration of the memory device and is not considered here in FIG.

도 1을 참조하면, 클럭 신호(CLK)의 한 주기 내에서 기입 어드레스(WADD)와 독출 어드레스(RADD)가 모두 입력되고 있다. 클럭 신호(CLK)의 상승 에지에서 입력되는 어드레스(A0, A2, A4, A6 )가 독출 어드레스(RADD)이고, 클럭 신호(CLK)의 하강 에지에서 입력되는 어드레스(A1, A3, A5, A7)가 기입 어드레스(WADD)이다.Referring to FIG. 1, both the write address WADD and the read address RADD are input within one period of the clock signal CLK. Addresses A0, A2, A4 and A6 input at the rising edge of the clock signal CLK are read addresses RADD and addresses A1, A3, A5 and A7 input at the falling edge of the clock signal CLK. Is the write address WADD.

RES와 WES는 각각 독출 어드레스(RADD)와 기입 어드레스(WADD)를 선택하는 독출 선택 신호 및 기입 선택 신호이다.RES and WES are a read select signal and a write select signal for selecting the read address RADD and the write address WADD, respectively.

독출 어드레스(RADD) A0에 의하여 워드 라인(AWL0)가 활성화되고, 워드 라인(AWL0)에 응답하여 데이터(Q0)가 출력된다. 또한 기입 어드레스(WADD) A1에 응답하여 워드 라인(AWL1)이 활성화되면 입력 데이터(D1)이 입력된다.The word line AWL0 is activated by the read address RADD A0, and the data Q0 is output in response to the word line AWL0. In addition, when the word line AWL1 is activated in response to the write address WADD A1, the input data D1 is input.

따라서, 독출 동작을 위한 워드 라인(AWL0)과 기입 동작을 위한 워드 라인(AWL1)의 활성화 때문에 클럭 신호(CLK)의 한 주기의 길이가 제한된다. 즉, 클럭 신호의 한 주기동안에 각기 다른 어드레스를 가지는 메모리 셀에 순차적으로 접근을 해야만 하므로 클럭 신호(CLK)의 주기를 줄이기 어려운 문제가 있다.Therefore, the length of one cycle of the clock signal CLK is limited due to the activation of the word line AWL0 for the read operation and the word line AWL1 for the write operation. That is, it is difficult to shorten the cycle of the clock signal CLK since the memory cells having different addresses must be sequentially accessed during one cycle of the clock signal.

본 발명이 이루고자하는 기술적 과제는, 클럭 신호의 한 주기 내에서 메모리 셀에 대한 독출 동작 및 기입 동작이 동시에 수행되도록 함으로써 클럭 신호의 동작 주파수를 증가시킬 수 있는 집적 회로를 제공하는데 있다.An object of the present invention is to provide an integrated circuit capable of increasing an operating frequency of a clock signal by simultaneously performing a read operation and a write operation on a memory cell within one period of the clock signal.

본 발명이 이루고자하는 다른 기술적 과제는, 클럭 신호의 한 주기 내에서 메모리 셀에 대한 독출 동작 및 기입 동작이 동시에 수행되도록 함으로써 클럭 신호의 동작 주파수를 증가시킬 수 있는 방법을 제공하는데 있다.Another object of the present invention is to provide a method of increasing the operating frequency of a clock signal by simultaneously performing a read operation and a write operation on a memory cell within one period of the clock signal.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the drawings cited in the detailed description of the invention, a brief description of each drawing is provided.

도 1은 분리된 입출력 포트를 가지는 메모리 장치의 동작을 설명하는 타이밍도이다.1 is a timing diagram illustrating an operation of a memory device having separate input / output ports.

도 2는 제 1 실시예에 따른 집적 회로를 나타내는 블록도이다.2 is a block diagram illustrating an integrated circuit according to a first embodiment.

도 3은 제 2 실시예에 따른 집적 회로를 나타내는 블록도이다.3 is a block diagram illustrating an integrated circuit according to a second embodiment.

도 4는 다른 실시예에 따른 데이터의 독출 동작과 기입 동작을 동시에 수행하는 방법을 나타내는 플로우 차트이다.4 is a flowchart illustrating a method of simultaneously performing a read operation and a write operation of data according to another exemplary embodiment.

도 5는 도 4의 440단계를 설명하는 플로우 차트이다.FIG. 5 is a flowchart for describing operation 440 of FIG. 4.

도 6은 도 4의 445단계를 설명하는 플로우 차트이다.6 is a flowchart for describing operation 445 of FIG. 4.

도 7은 도 4의 455단계를 설명하는 플로우 차트이다.FIG. 7 is a flowchart for describing operation 455 of FIG. 4.

도 8은 본 발명의 집적 회로의 동작을 설명하는 타이밍도이다.8 is a timing diagram illustrating the operation of the integrated circuit of the present invention.

상기 기술적 과제를 달성하기 위한 본 발명의 제 1 실시예에 따른 집적 회로는, 입출력 포트가 분리되어 있고, 클럭 신호의 한 주기동안 기입 어드레스와 독출 어드레스가 입력되는 집적 회로에 있어서 복수개의 서브 메모리 블록들을 각각 구비하는 메모리 블록들, 상기 메모리 블록들에 대응되는 캐쉬 메모리 블록들 및 태그 메모리 제어부를 구비한다.In an integrated circuit according to a first embodiment of the present invention for achieving the above technical problem, a plurality of sub-memory blocks in an integrated circuit in which input / output ports are separated and a write address and a read address are input for one period of a clock signal. And memory blocks each having a plurality of memory blocks, cache memory blocks corresponding to the memory blocks, and a tag memory controller.

태그 메모리 제어부는 상기 기입 어드레스 또는 상기 독출 어드레스에 응답하여 상기 메모리 블록들 및 상기 캐쉬 메모리 블록들에 저장된 데이터를 독출하거나 상기 메모리 블록들 및 상기 캐쉬 메모리 블록들로 상기 데이터를 기입한다.The tag memory controller reads data stored in the memory blocks and the cache memory blocks or writes the data into the memory blocks and the cache memory blocks in response to the write address or the read address.

특히, 태그 메모리 제어부는 상기 기입 어드레스 및 상기 독출 어드레스가 동일한 경우, 상기 데이터의 독출 동작과 기입 동작이 상기 메모리 블록과 상기 캐쉬 메모리 블록에 각각 나누어져 동시에 수행되도록 제어하는 것을 특징으로 한다.In particular, when the write address and the read address are the same, the tag memory controller controls the data read operation and the write operation to be divided into the memory block and the cache memory block to be simultaneously performed.

상기 기입 어드레스 및 상기 독출 어드레스가 다른 경우, 상기 각각의 기입 및 독출 어드레스에 대응되는 서로 다른 2개의 서브 메모리 블록들이 각각 디코딩 된다.When the write address and the read address are different, two different sub memory blocks corresponding to the respective write and read addresses are decoded, respectively.

상기 집적 회로는 서로 분리되어 있는 기입 어드레스 디코딩 패스와 독출 어드레스 디코딩 패스를 구비하고, 상기 서브 메모리 블록들은 상기 기입 어드레스 디코딩 패스와 상기 독출 어드레스 디코딩 패스에 각각 연결된다.The integrated circuit has a write address decoding pass and a read address decoding pass separated from each other, and the sub memory blocks are connected to the write address decoding pass and the read address decoding pass, respectively.

메모리 블록 내부의 서로 다른 서브 메모리 블록들 중 동일한 하위 어드레스를 가지는 메모리 셀들은 상기 캐쉬 메모리 블록의 하나의 메모리 셀에 대응된다. 상기 캐쉬 메모리 블록의 사이즈는 상기 하나의 서브 메모리 블록의 사이즈와 같거나 크다.Memory cells having the same lower address among different sub memory blocks in the memory block correspond to one memory cell of the cache memory block. The size of the cache memory block is equal to or larger than the size of the one sub memory block.

상기 태그 메모리 제어부는 상기 캐쉬 메모리 블록에 대응되는 상기 서브 메모리 블록의 어드레스를 나타내는 캐쉬 메모리 어드레스 및 상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효한지를 판단하는 유효 판단 정보를 저장한다.The tag memory controller stores a cache memory address indicating an address of the sub memory block corresponding to the cache memory block and validity determination information for determining whether data stored in the cache memory block is valid.

상기 태그 메모리 제어부는 상기 서브 메모리 블록들 중 하나를 선택하는 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 서로 동일한 경우, 상기 기입 어드레스와 상기 독출 어드레스 중 어느 하나도 상기 캐쉬메모리 어드레스와 동일하지 않으면 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고 상기 캐쉬 메모리 블록에서 기입 동작을 수행하며, 상기 독출 동작 및 상기 기입 동작은 동시에 수행된다.When the upper address of the write address that selects one of the sub memory blocks and the upper address of the read address are the same as each other, neither the write address nor the read address is the same as the cache memory address. If not, the read operation is performed in the memory block corresponding to the read address, the write operation is performed in the cache memory block, and the read operation and the write operation are simultaneously performed.

상기 태그 메모리 제어부는 상기 서브 메모리 블록들 중 하나를 선택하는 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 서로 동일한 경우, 상기 기입 어드레스 및 상기 독출 어드레스 중 하나가 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작이 상기 캐쉬 메모리 블록에서 수행되고 일치되지 않은 어드레스에 대응되는 동작이 상기 메모리 블록에서 수행된다.When the upper address of the write address selecting the one of the sub memory blocks and the upper address of the read address are the same as each other, when the one of the write address and the read address is identical to the cache memory address The operation corresponding to the address matched with the cache memory address is performed in the cache memory block, and the operation corresponding to the address not matched is performed in the memory block.

상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 블록에서 독출 동작이 수행되고 상기 메모리 블록에서 기입 동작이 수행되며 상기 독출 동작 및 상기 기입 동작은 동시에 수행된다.If both the write address and the read address match the cache memory address, a read operation is performed in the cache memory block, a write operation is performed in the memory block, and the read operation and the write operation are simultaneously performed.

상기 태그 메모리 제어부는 상기 서브 메모리 블록들 중 하나를 선택하는 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 서로 다른 경우, 상기 기입 어드레스 및 상기 독출 어드레스 중 하나가 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작이 상기 캐쉬 메모리 블록에서 수행되고 일치되지 않은 어드레스에 대응되는 동작이 상기 메모리 블록에서 수행된다.When the upper address of the write address selecting the one of the sub memory blocks and the upper address of the read address are different from each other, when the one of the write address and the read address matches the cache memory address The operation corresponding to the address matched with the cache memory address is performed in the cache memory block, and the operation corresponding to the address not matched is performed in the memory block.

상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 블록에서 독출 동작이 수행되고 상기 메모리 블록에서 기입 동작이 수행된다.If both the write address and the read address match the cache memory address, a read operation is performed in the cache memory block and a write operation is performed in the memory block.

상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되지 않으면, 상기 선택된 메모리 블록 중 상기 기입 어드레스 및 상기 독출 어드레스에 대응되는 서로 다른 서브 메모리 블록에서 기입 동작 및 독출 동작이 수행되며, 상기 독출 동작 및 상기 기입 동작은 동시에 수행된다.If both the write address and the read address do not match the cache memory address, a write operation and a read operation are performed in different sub memory blocks corresponding to the write address and the read address of the selected memory block, and the read operation is performed. The operation and the write operation are performed at the same time.

상기 데이터는 단일 데이터 율(SDR: Single Data Rate) 또는 이중 데이터 율(DDR: Double Data Rate)로 입력 또는 출력된다.The data is input or output at a single data rate (SDR) or a double data rate (DDR).

상기 기술적 과제를 달성하기 위한 본 발명의 제 2 실시예에 집적 회로는, 입출력 포트가 분리되어 있는 집적 회로에 있어서 복수개의 서브 메모리 블록들을 각각 구비하는 메모리 블록들, 캐쉬 메모리 블록들, 디코딩부들 및 태그 메모리 제어부를 구비한다.According to a second embodiment of the present invention for achieving the above technical problem, an integrated circuit may include a memory block, a cache memory block, a decoding unit, and a plurality of sub memory blocks, respectively, in an integrated circuit having separate input and output ports; The tag memory control unit is provided.

캐쉬 메모리 블록들은 상기 각각의 메모리 블록에 대응되며, 소정의 캐쉬 제어 신호에 응답하여 저장된 데이터가 출력되거나 또는 데이터가 기입된다. 디코딩부들은 상기 각각의 메모리 블록에 대응되며, 기입 어드레스 또는 독출 어드레스, 소정의 디코딩 제어 신호에 응답하여 상기 서브 메모리 블록들을 제어하는 디코딩 신호를 발생한다.The cache memory blocks correspond to the respective memory blocks, and stored data is output or data is written in response to a predetermined cache control signal. The decoding units correspond to the respective memory blocks, and generate decoding signals for controlling the sub memory blocks in response to a write address or a read address and a predetermined decoding control signal.

태그 메모리 제어부는 기입 선택 신호 또는 독출 선택 신호, 상기 기입 어드레스 또는 상기 독출 어드레스를 수신하고, 클럭 신호의 한 주기 동안 입력되는 상기 기입 어드레스와 상기 독출 어드레스가 동일한 지에 따라 상기 데이터의 기입동작 및 독출 동작이 동시에 수행되도록 상기 캐쉬 제어 신호 또는 상기 디코딩 제어 신호를 발생한다.The tag memory controller receives a write selection signal or a read selection signal, the write address or the read address, and writes and reads the data according to whether the write address and the read address inputted during one period of the clock signal are the same. It generates the cache control signal or the decoding control signal to be performed at the same time.

상기 디코딩부들은 각각 상기 서브 메모리 블록들에 대응되는 복수개의 디코딩 회로들을 구비한다. 상기 디코딩 회로들은 서로 분리되어 있는 기입 어드레스 디코딩 패스 및 독출 어드레스 디코딩 패스와 연결되고, 상기 서브 메모리 블록들은 상기 기입 어드레스 디코딩 패스와 상기 독출 어드레스 디코딩 패스에 각각 연결된다.Each of the decoding units includes a plurality of decoding circuits corresponding to the sub memory blocks. The decoding circuits are connected to the write address decoding path and the read address decoding path which are separated from each other, and the sub memory blocks are connected to the write address decoding path and the read address decoding path, respectively.

상기 다른 기술적 과제를 달성하기 위한 본 발명의 제 1 실시예에 따른 데이터 독출 동작과 기입 동작을 동시에 수행하는 방법은, 입출력 포트가 분리되어 있고 클럭 신호의 한 주기 동안 기입 어드레스와 독출 어드레스가 입력되며, 복수개의 서브 메모리 블록들을 각각 구비하는 복수개의 메모리 블록들, 상기 메모리 블록들에 대응되는 캐쉬 메모리 블록들을 구비하는 집적 회로의 데이터 독출 동작과 기입 동작을 동시에 수행하는 방법에 있어서, (a)클럭 신호의 한 주기 동안 상기 기입 어드레스와 상기 독출 어드레스가 모두 입력되는지 상기 기입 어드레스 및 상기 독출 어드레스 중 어느 하나만 입력되는지를 판단하는 단계, (b)상기 기입 어드레스와 상기 독출 어드레스가 모두 입력되면 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 동일한지를 판단하는 단계, (c)상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 동일하면, 상기 기입 어드레스와 상기 독출 어드레스가 소정의 캐쉬 메모리 어드레스와 동일한지를 판단하는 단계 및 (d)상기 기입 어드레스 및 상기 독출 어드레스 중 어느하나도 상기 캐쉬 메모리 어드레스와 동일하지 않으면, 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고, 상기 캐쉬 메모리 블록에서 기입 동작을 수행하는 단계를 구비한다.In the method for simultaneously performing a data read operation and a write operation according to the first embodiment of the present invention for achieving the other technical problem, the input and output ports are separated and a write address and a read address are input for one period of the clock signal A method of simultaneously performing a data read operation and a write operation of an integrated circuit including a plurality of memory blocks each having a plurality of sub memory blocks and cache memory blocks corresponding to the memory blocks, the method comprising: (a) a clock; Determining whether both the write address and the read address are input or only one of the write address and the read address is input during one period of the signal; (b) if both the write address and the read address are input, the write address Of the upper address of the read address Determining whether the upper address is the same; (c) if the upper address of the write address and the upper address of the read address are the same, determining whether the write address and the read address are equal to a predetermined cache memory address; and d) if neither the write address nor the read address is the same as the cache memory address, performing a read operation on the memory block corresponding to the read address and performing a write operation on the cache memory block do.

상기 (d) 단계는 (d1)상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효한지를 판단하는 단계, (d2)상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효하지 않으면 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고, 상기 캐쉬 메모리 블록에서 기입 동작을 수행하는 단계, (d3)상기 캐쉬 메모리 블록에 기입된 데이터에 관한 정보를 업데이트(update) 시키는 단계, (d4)상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효하면 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고, 상기 캐쉬 메모리에 저장되어 있는 유효한 데이터를 독출하여 대응되는 메모리 블록에 기입하는 단계 및 (d5)상기 캐쉬 메모리 블록에 기입 동작을 수행하고, 상기 캐쉬 메모리 블록에 기입된 데이터에 관한 정보를 업데이트(update) 시키는 단계를 구비한다.In step (d), (d1) determining whether the data stored in the cache memory block is valid; (d2) if the data stored in the cache memory block is invalid, the memory block corresponding to the read address Performing a read operation at, and performing a write operation at the cache memory block, (d3) updating information about data written at the cache memory block, (d4) storing at the cache memory block If valid data is valid, performing a read operation on the memory block corresponding to the read address, reading valid data stored in the cache memory, and writing the read valid data into a corresponding memory block; and (d5) the cache memory block. Perform a write operation on the controller and update information about data written to the cache memory block And a step of (update).

상기 캐쉬 메모리 어드레스는 상기 캐쉬 메모리 블록에 대응되는 상기 서브 메모리 블록의 어드레스를 나타낸다.The cache memory address indicates an address of the sub memory block corresponding to the cache memory block.

상기 (c)는 (c1)상기 기입 어드레스 및 상기 독출 어드레스 중 하나가 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작을 상기 캐쉬 메모리 블록에서 수행하고, 상기 캐쉬 메모리 어드레스와 일치되지 않은 어드레스에 대응되는 동작을 상기 메모리 블록에서 수행하는 단계 및 (c2)상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리어드레스와 일치되면, 상기 캐쉬 메모리 블록에서 독출 동작을 수행하고, 상기 메모리 블록에서 기입 동작을 수행하며, 상기 메모리 블록에 기입된 데이터에 관한 정보를 업데이트(update) 시키는 단계를 구비한다.(C) (c1) if one of the write address and the read address matches the cache memory address, performing an operation corresponding to the address matched with the cache memory address in the cache memory block, and executing the cache memory. Performing an operation corresponding to an address that does not match an address in the memory block; and (c2) if both the write address and the read address match the cache memory address, perform a read operation in the cache memory block, Performing a write operation on the memory block, and updating information on data written to the memory block.

상기 (b) 단계는 (b1) 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 동일하지 않으면 상기 기입 어드레스와 상기 독출 어드레스가 상기 캐쉬 메모리 어드레스와 일치되는지를 판단하는 단계, (b2)상기 기입 어드레스 및 상기 독출 어드레스 중 어느 하나가 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작을 상기 캐쉬 메모리 블록에서 수행하고, 상기 캐쉬 메모리 어드레스와 일치되지 않은 어드레스와 일치되는 동작을 상기 메모리 블록에서 수행하는 단계, (b3)상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 블록에서 독출 동작을 수행하고, 상기 메모리 블록에서 기입 동작을 수행한 후, 상기 메모리 블록에 기입된 데이터에 관한 정보를 업데이트(update) 시키는 단계 및 (b4)상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되지 않으면, 상기 선택된 메모리 블록 중 상기 기입 어드레스 및 상기 독출 어드레스에 대응되는 서로 다른 서브 메모리 블록에서 기입 동작 및 독출 동작을 수행하는 단계를 구비한다.In the step (b), if the upper address of the write address and the upper address of the read address are not the same, determining whether the write address and the read address match the cache memory address, (b2) If any one of a write address and the read address matches the cache memory address, an operation corresponding to the address matched with the cache memory address is performed in the cache memory block, and the address matched with the address not matched with the cache memory address. Performing a read operation on the memory block; (b3) when both the write address and the read address match the cache memory address, a read operation is performed on the cache memory block, and a write operation is performed on the memory block. After that, the memory block (B4) if both the write address and the read address do not match the cache memory address, corresponding to the write address and the read address of the selected memory block; Performing a write operation and a read operation in different sub memory blocks.

상기 (a) 단계는 (a1)상기 기입 어드레스 및 상기 독출 어드레스 중 어느 하나만 입력되면 입력된 상기 기입 어드레스 및 상기 독출 어드레스 중 어느 하나가 상기 캐쉬 메모리 어드레스와 일치되는 지를 판단하는 단계, (a2)입력된 상기 기입어드레스 또는 상기 독출 어드레스가 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 어드레스와 일치된 기입 어드레스 또는 독출 어드레스에 대응되는 동작을 상기 캐쉬 메모리 블록에서 수행하는 단계 및 (a3)입력된 상기 기입 어드레스 또는 상기 독출 어드레스가 상기 캐쉬 메모리 어드레스와 일치되지 않으면, 상기 캐쉬 메모리 어드레스와 일치되지 않은 기입 어드레스 또는 독출 어드레스에 대응되는 동작을 상기 메모리 블록에서 수행하는 단계를 구비한다.In the step (a), if only one of the write address and the read address is input, determining whether one of the input write address and the read address matches the cache memory address, inputting (a2) If the written address or read address coincides with the cache memory address, performing an operation corresponding to the write address or read address matched with the cache memory address in the cache memory block; and (a3) inputting the write address. If the address or the read address does not match the cache memory address, performing an operation corresponding to the write address or read address that does not match the cache memory address in the memory block.

상기 메모리 블록 내부의 서로 다른 서브 메모리 블록들 중 동일한 하위 어드레스를 가지는 메모리 셀들은 상기 캐쉬 메모리 블록의 하나의 메모리 셀에 대응되는 것을 특징으로 한다.The memory cells having the same lower address among different sub memory blocks in the memory block may correspond to one memory cell of the cache memory block.

상기 캐쉬 메모리 블록의 사이즈는 상기 하나의 서브 메모리 블록의 사이즈와 같거나 큰 것을 특징으로 한다.The cache memory block may have a size equal to or larger than that of the one sub memory block.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.DETAILED DESCRIPTION In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the drawings.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 2는 제 1 실시예에 따른 집적 회로를 나타내는 블록도이다.2 is a block diagram illustrating an integrated circuit according to a first embodiment.

도 2를 참조하면, 집적 회로(200)는 복수개의 서브 메모리 블록들(SMB1, SMB2 ~ SMB M)을 각각 구비하는 메모리 블록들(MB1, MB2, MB3, MB4), 메모리 블록들(MB1, MB2, MB3, MB4)에 대응되는 캐쉬 메모리 블록들(CMB1, CMB2, CMB3, CMB4) 및 태그 메모리 제어부(210)를 구비한다. 도 2의 집적 회로(200)는 입출력 포트가 분리되어 있고, 클럭 신호의 한 주기동안 기입 어드레스(WADD)와 독출 어드레스(RADD)가 입력된다.Referring to FIG. 2, the integrated circuit 200 may include memory blocks MB1, MB2, MB3, and MB4 and memory blocks MB1 and MB2, each of which includes a plurality of sub memory blocks SMB1, SMB2, and SMB M, respectively. And cache memory blocks CMB1, CMB2, CMB3, and CMB4 corresponding to the MB3 and the MB4, and the tag memory controller 210. In the integrated circuit 200 of FIG. 2, input / output ports are separated, and a write address WADD and a read address RADD are input for one period of a clock signal.

메모리 블록들(MB1, MB2, MB3, MB4)은 서로 동일한 구조를 가지고 있고, 캐쉬 메모리 블록들(CMB1, CMB2, CMB3, CMB4)도 서로 동일한 구조를 가지고 있으므로, 메모리 블록들(MB1, MB2, MB3, MB4)중 두 번째 메모리 블록(MB2)과 두 번째 캐쉬 메모리 블록(CMB2)을 중심으로 설명한다.Since the memory blocks MB1, MB2, MB3, and MB4 have the same structure, and the cache memory blocks CMB1, CMB2, CMB3, and CMB4 have the same structure, the memory blocks MB1, MB2, and MB3 have the same structure. Will be described based on the second memory block MB2 and the second cache memory block CMB2.

기입 어드레스(WADD) 및 독출 어드레스(RADD)는 각각 상위 어드레스와 하위 어드레스로 구분되는데, 상위 어드레스는 복수개의 서브 메모리 블록들 중 어느하나를 지정하는 어드레스이다.The write address WADD and the read address RADD are divided into an upper address and a lower address, respectively, and the upper address is an address specifying one of the plurality of sub memory blocks.

본 발명의 기본 원리는 기입 어드레스(WADD) 및 독출 어드레스(RADD)가 동일한 경우, 데이터의 독출 동작과 기입 동작이 메모리 블록과 캐쉬 메모리 블록에 각각 나누어져 동시에 수행됨으로써 클럭 신호의 주기를 줄이려는 것이다.The basic principle of the present invention is to reduce the period of the clock signal when the read address and the write address RADD are the same, and the data read operation and the write operation are respectively divided into the memory block and the cache memory block. .

즉, 기입 어드레스(WADD)와 독출 어드레스(RADD)가 동일하여 동시에 하나의 메모리 블록(예를 들어, 제 2 메모리 블록(MB2))중 동일한 서브 메모리 블록(예를 들어, SMB2)에 접근을 해야할 경우, 서브 메모리 블록(SMB2)에서 데이터의 독출 동작이 수행되면 데이터의 기입 동작은 서브 메모리 블록(SMB2)에 대응되는 캐쉬 메모리 블록(CMB2)에서 수행되도록 하는 것이다.That is, since the write address WADD and the read address RADD are the same, the same sub memory block (for example, SMB2) of one memory block (for example, the second memory block MB2) must be accessed at the same time. In this case, when a data read operation is performed in the sub memory block SMB2, the data write operation is performed in the cache memory block CMB2 corresponding to the sub memory block SMB2.

반대로, 메모리 블록(MB2)에서 데이터의 기입 동작이 수행되면 데이터의 독출 동작은 메모리 블록(MB2)에 대응되는 캐쉬 메모리 블록(CMB2)에서 수행되도록 한다. 이와 같이 함으로써 데이터의 독출 동작 및 기입 동작이 동시에 병렬적으로 이루어질 수 있게 되고 클럭 신호의 주기를 줄일 수 있다.In contrast, when a data write operation is performed in the memory block MB2, the data read operation is performed in the cache memory block CMB2 corresponding to the memory block MB2. In this manner, data read and write operations can be performed in parallel at the same time and the period of the clock signal can be reduced.

이를 위하여, 메모리 블록(MB2) 내부의 서로 다른 서브 메모리 블록들(SMB1, SMB2, SMB3 ~ SMB M) 중 동일한 하위 어드레스를 가지는 메모리 셀들은 캐쉬 메모리 블록(CMB2)의 하나의 메모리 셀에 대응되어야 한다. 또한, 동일한 서브 메모리 블록에 대하여 계속 기입 동작과 독출 동작이 수행될 경우도 발생될 수 있으므로, 캐쉬 메모리 블록의 사이즈는 하나의 서브 메모리 블록의 사이즈와 같거나 커야한다.To this end, memory cells having the same lower address among different sub memory blocks SMB1, SMB2, SMB3 to SMB M in the memory block MB2 must correspond to one memory cell of the cache memory block CMB2. . In addition, since a write operation and a read operation may be performed on the same sub memory block, the size of the cache memory block should be equal to or larger than the size of one sub memory block.

이러한 동작은 태그 메모리 제어부(210)에 의해서 수행된다. 태그 메모리 제어부(210)는 기입 어드레스(WADD) 또는 독출 어드레스(RADD)에 응답하여 메모리 블록들(MB1, MB2, MB3, MB4) 및 캐쉬 메모리 블록들(CMB1, CMB2, CMB3, CMB4)에 저장된 데이터를 독출 하거나 메모리 블록들(MB1, MB2, MB3, MB4) 및 캐쉬 메모리 블록들(CMB1, CMB2, CMB3, CMB4)로 데이터를 기입한다.This operation is performed by the tag memory controller 210. The tag memory controller 210 stores data stored in the memory blocks MB1, MB2, MB3, and MB4 and the cache memory blocks CMB1, CMB2, CMB3, and CMB4 in response to the write address WADD or the read address RADD. Read or write data into memory blocks MB1, MB2, MB3, and MB4 and cache memory blocks CMB1, CMB2, CMB3, and CMB4.

기입 어드레스(WADD)와 독출 어드레스(RADD)가 동일하여, 메모리 블록(MB2)중의 하나의 서브 메모리 블록에서 독출 동작이 수행되고 캐쉬 메모리 블록(CMB2)에서 기입 동작이 수행된 경우, 캐쉬 메모리 블록(CMB2)에 기입된 데이터가 본래 기입되어야 할 메모리 블록(MB2)중 서브 메모리 블록의 주소가 캐쉬 메모리 어드레스로서 태그 메모리 제어부(210)에 저장된다.When the write address WADD and the read address RADD are the same and a read operation is performed in one sub memory block of the memory block MB2 and a write operation is performed in the cache memory block CMB2, the cache memory block ( The address of the sub memory block of the memory block MB2 to which data written in the CMB2 is to be originally written is stored in the tag memory control unit 210 as a cache memory address.

즉, 캐쉬 메모리 어드레스는 캐쉬 메모리 블록(CNB2)에 저장되어 있는 데이터가 본래 저장되어 있어야 할 서브 메모리 블록을 지정하는 상위 어드레스이다.That is, the cache memory address is an upper address that designates a sub memory block in which data stored in the cache memory block CNB2 should be originally stored.

입력되는 어드레스 중에서 하위 어드레스를 이용하여 태그 메모리 제어부(210)에 저장된 캐쉬 메모리 어드레스에 접근하고, 접근된 캐쉬 메모리 어드레스와 입력된 어드레스의 상위 어드레스가 비교된다.The cache memory address stored in the tag memory controller 210 is accessed using the lower address among the input addresses, and the accessed cache memory address is compared with the upper address of the input address.

다음 번 기입 어드레스(WADD)와 독출 어드레스(RADD)가 동일하고, 또한 이전의 기입 어드레스(WADD)와 독출 어드레스(RADD)와도 동일하여 캐쉬 메모리 블록(CMB2)에 다시 기입 동작이 수행되어야 할 경우가 있다. 이 경우, 캐쉬 메모리 블록(CMB2)에 먼저 기입되어 있던 데이터가 유효한 데이터인지 여부를 판단해야 한다.When the next write address WADD and the read address RADD are the same, and the previous write address WADD and the read address RADD are the same, there is a case where a write operation must be performed in the cache memory block CMB2 again. have. In this case, it is necessary to determine whether the data previously written to the cache memory block CMB2 is valid data.

유효한 데이터라면 캐쉬 메모리 블록(CMB2)에 먼저 기입되어 있는 데이터를 독출하여 메모리 블록(MB2)의 대응되는 서브 메모리 블록에 기입한 후, 다음 번 기입 어드레스(WADD)에 대응되는 데이터를 캐쉬 메모리 블록(CMB2)에 기입해야 하기 때문이다. 캐쉬 메모리 블록(CMB2)에 저장되어 있는 데이터가 유효한지를 판단하는 유효 판단 정보도 태그 메모리 제어부(210)에 저장된다.If the data is valid, the data first written to the cache memory block CMB2 is read and written to the corresponding sub memory block of the memory block MB2, and then the data corresponding to the next write address WADD is stored in the cache memory block CMB2. This is because it is necessary to write in CMB2). The validity determination information for determining whether the data stored in the cache memory block CMB2 is valid is also stored in the tag memory controller 210.

또한 기입 어드레스(WADD) 및 독출 어드레스(RADD)가 다른 경우, 각각의 기입 및 독출 어드레스(WADD, RADD)에 대응되는 서로 다른 2개의 서브 메모리 블록들이 각각 디코딩 된다.In addition, when the write address WADD and the read address RADD are different, two different sub memory blocks corresponding to the respective write and read addresses WADD and RADD are decoded, respectively.

이를 위하여, 집적 회로(200)는 기입 어드레스 디코딩 패스(미도시)와 독출 어드레스 디코딩 패스(미도시)가 서로 독립적으로 분리되어야 한다. 그리고, 서브 메모리 블록들(SMB1, SMB2, SMB3 ~ SMB M)은 기입 어드레스 디코딩 패스와 독출 어드레스 디코딩 패스에 각각 연결되어야 한다.To this end, the integrated circuit 200 requires that the write address decoding path (not shown) and the read address decoding path (not shown) are independently separated from each other. Sub-memory blocks SMB1, SMB2, SMB3 to SMB M should be connected to the write address decoding path and the read address decoding path, respectively.

데이터는 단일 데이터 율(SDR: Single Data Rate) 또는 이중 데이터 율(DDR: Double Data Rate)로 입력 핀 및 출력 핀을 통하여 입력 또는 출력된다.Data is input or output through the input pins and output pins at a single data rate (SDR) or double data rate (DDR).

태그 메모리 제어부(210)가 메모리 블록(MB2)과 캐쉬 메모리 블록(CMB2)을 제어하여 데이터의 독출 및 기입을 수행하는 동작은 도 3 및 도 4를 참조하여 후술된다.The operation of the tag memory controller 210 to read and write data by controlling the memory block MB2 and the cache memory block CMB2 will be described later with reference to FIGS. 3 and 4.

도 3은 제 2 실시예에 따른 집적 회로를 나타내는 블록도이다.3 is a block diagram illustrating an integrated circuit according to a second embodiment.

집적 회로(300)는 복수개의 서브 메모리 블록들(SMB1, SMB2, SMB3 ~ SMB M)을 각각 구비하는 메모리 블록들, 캐쉬 메모리 블록들, 디코딩부들 및 태그 메모리 제어부(310)를 구비한다.The integrated circuit 300 includes memory blocks, cache memory blocks, decoders, and a tag memory controller 310, each of which includes a plurality of sub memory blocks SMB1, SMB2, SMB3 to SMB M.

캐쉬 메모리 블록들은 각각의 메모리 블록에 대응되며, 소정의 캐쉬 제어 신호(CCLS)에 응답하여 저장된 데이터가 출력되거나 또는 데이터가 기입된다. 디코딩부들은 각각의 메모리 블록에 대응되며, 기입 어드레스(WADD) 또는 독출 어드레스(RADD), 소정의 디코딩 제어 신호(DCLS)에 응답하여 서브 메모리 블록들(SMB1, SMB2, SMB3 ~ SMB M)을 제어하는 디코딩 신호(DS)를 발생한다.The cache memory blocks correspond to each memory block, and stored data is output or data is written in response to a predetermined cache control signal CCLS. The decoding units correspond to each memory block, and control the sub memory blocks SMB1, SMB2, SMB3 to SMB M in response to a write address WADD or a read address RADD and a predetermined decoding control signal DCLS. To generate a decoded signal DS.

도 3은 복수개의 메모리 블록들 중 하나의 메모리 블록(MB2)과 복수개의 디코딩부들 중 하나의 디코딩부(320), 복수개의 캐쉬 메모리 블록들 중 하나의 캐쉬 메모리 블록(CMB2)을 도시하고 있다.3 illustrates one memory block MB2 of a plurality of memory blocks, one decoding unit 320 of a plurality of decoding units, and one cache memory block CMB2 of a plurality of cache memory blocks.

따라서 제 2 실시예에 따른 집적 회로(300)의 동작의 설명도 도 3에 도시된 메모리 블록(MB2)과 캐쉬 메모리 블록(CMB2), 디코딩부(320) 및 태그 메모리 제어부(310)를 이용하여 설명한다.Therefore, a description of the operation of the integrated circuit 300 according to the second embodiment uses the memory block MB2, the cache memory block CMB2, the decoder 320, and the tag memory controller 310 illustrated in FIG. 3. Explain.

태그 메모리 제어부(310)는 기입 선택 신호(WES) 또는 독출 선택 신호(RES), 기입 어드레스(WADD) 또는 독출 어드레스(RADD)를 수신하고, 클럭 신호의 한 주기 동안 입력되는 기입 어드레스(WADD)와 독출 어드레스(RADD)가 동일한 지에 따라 상기 데이터의 기입 동작 및 독출 동작이 동시에 수행되도록 캐쉬 제어 신호(CCLS) 또는 디코딩 제어 신호(DCLS)를 발생한다. 또한 도면에는 도시되지 않았으나, 독출 선택 신호(RES)와 기입 선택 신호(WES)도 메모리 블록(MB2) 및 캐쉬 메모리 블록(CMB2)으로 인가될 수도 있다.The tag memory controller 310 receives the write select signal WES or the read select signal RES, the write address WADD, or the read address RADD, and writes the input address WADD during one period of the clock signal. The cache control signal CCLS or the decoding control signal DCLS are generated to simultaneously perform the data write operation and the read operation depending on whether the read addresses RADD are the same. Although not shown, the read select signal RES and the write select signal WES may also be applied to the memory block MB2 and the cache memory block CMB2.

도 2의 집적 회로(200)와 마찬가지로 상기 디코딩부들은 각각 서브 메모리 블록들(SMB1, SMB2, SMB3 ~ SMB M)에 대응되는 복수개의 디코딩 회로들(미도시)을 구비한다. 입력되는 기입 어드레스(WADD) 및 독출 어드레스(RADD)가 서로 다른 경우, 각각의 기입 및 독출 어드레스 (WADD, RADD)에 대응되는 서로 다른 2개의 서브 메모리 블록들이 각각 디코딩 되어야 하기 때문이다.Like the integrated circuit 200 of FIG. 2, the decoding units include a plurality of decoding circuits (not shown) corresponding to the sub memory blocks SMB1, SMB2, SMB3 to SMB M, respectively. This is because when the input write address WADD and the read address RADD are different from each other, two different sub memory blocks corresponding to the respective write and read addresses WADD and RADD must be decoded, respectively.

이를 위하여, 디코딩 회로들(미도시)은 서로 분리되어 있는 기입 어드레스 디코딩 패스(미도시) 및 독출 어드레스 디코딩 패스(미도시)와 연결되고, 서브 메모리 블록들(SMB1, SMB2, SMB3 ~ SMB M)은 기입 어드레스 디코딩 패스(미도시)와 독출 어드레스 디코딩 패스(미도시)에 각각 연결된다.To this end, the decoding circuits (not shown) are connected to a write address decoding pass (not shown) and a read address decoding pass (not shown) which are separated from each other, and the sub memory blocks SMB1, SMB2, SMB3 to SMB M. Are coupled to a write address decoding pass (not shown) and a read address decoding pass (not shown), respectively.

도 4는 다른 실시예에 따른 데이터의 독출 동작과 기입 동작을 동시에 수행하는 방법을 나타내는 플로우 차트이다.4 is a flowchart illustrating a method of simultaneously performing a read operation and a write operation of data according to another exemplary embodiment.

도 5는 도 4의 440단계를 설명하는 플로우 차트이다.FIG. 5 is a flowchart for describing operation 440 of FIG. 4.

도 6은 도 4의 445단계를 설명하는 플로우 차트이다.6 is a flowchart for describing operation 445 of FIG. 4.

도 7은 도 4의 455단계를 설명하는 플로우 차트이다.FIG. 7 is a flowchart for describing operation 455 of FIG. 4.

이하, 도 2내지 도 7을 참조하여 데이터의 독출 동작과 기입 동작을 동시에 수행하는 집적 회로 및 방법에 대하여 설명한다.Hereinafter, an integrated circuit and a method for simultaneously performing a data read operation and a write operation will be described with reference to FIGS. 2 to 7.

먼저, 클럭 신호의 한 주기 동안 기입 어드레스와 독출 어드레스가 모두 입력되는지 기입 어드레스 및 독출 어드레스 중 어느 하나만 입력되는지를 판단한다.(410 단계) 도 3의 기입 선택 신호(WES) 및 독출 선택 신호(RES)에 의하여 판단될 수 있다.First, it is determined whether both the write address and the read address are input or only one of the write address and the read address are input during one period of the clock signal. (Step 410) The write select signal WES and the read select signal RES of FIG. Can be determined by

여기서는, 기입 선택 신호(WES)가 로우 레벨이거나 독출 선택 신호(RES)가 로우 레벨인 경우 각각 기입 어드레스(WADD)와 독출 어드레스(RADD)가 입력되는 것으로 설명한다. 물론 기입 선택 신호(WES) 및 독출 선택 신호(RES)의 레벨이 하이 레벨인 경우에 기입 어드레스(WADD)와 독출 어드레스(RADD)가 입력되는 것으로 회로를 구성할 수도 있을 것이다.Here, it will be described that the write address WADD and the read address RADD are input when the write select signal WES is low level or the read select signal RES is low level. Of course, the circuit may be configured such that the write address WADD and the read address RADD are input when the levels of the write select signal WES and the read select signal RES are high.

태그 메모리 제어부(310)는 기입 선택 신호(WES)와 독출 선택 신호(RES)를 수신하고, 기입 어드레스(WADD)와 독출 어드레스(RADD)를 수신한다.The tag memory controller 310 receives a write select signal WES and a read select signal RES, and receives a write address WADD and a read address RADD.

기입 어드레스와 독출 어드레스가 모두 입력되면 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 동일한지를 판단한다.(420단계)When both the write address and the read address are input, it is determined whether the upper address of the write address and the upper address of the read address are the same (step 420).

기입 어드레스(WADD)나 독출 어드레스(RADD)는 상위 비트에 서브 메모리 블록을 지정하는 정보를 가지고 있다. 따라서 기입 어드레스(WADD)나 독출 어드레스(RADD)가 입력되면 먼저 기입 어드레스(WADD)나 독출 어드레스(RADD)의 상위 어드레스를 인식하여 어떤 서브 메모리 블록을 지정하는 지를 판단한다.The write address WADD and the read address RADD have information for specifying the sub memory block in the upper bits. Therefore, when a write address WADD or a read address RADD is input, first, an upper address of the write address WADD or the read address RADD is recognized to determine which sub memory block is designated.

기입 어드레스의 상위 어드레스와 독출 어드레스의 상위 어드레스가 동일하면, 기입 어드레스와 독출 어드레스가 소정의 캐쉬 메모리 어드레스와 동일한지를 판단한다.(430 단계)If the upper address of the write address and the upper address of the read address are the same, it is determined whether the write address and the read address are the same as the predetermined cache memory address (step 430).

기입 어드레스(WADD)의 상위 어드레스와 독출 어드레스(RADD)의 상위 어드레스가 동일하면 기입 어드레스(WADD) 및 독출 어드레스(RADD)가 동일한 서브 메모리 블록을 지정하고 있는 것이다.If the upper address of the write address WADD and the upper address of the read address RADD are the same, a sub memory block having the same write address WADD and read address RADD is designated.

태그 메모리 제어부(310)는 캐쉬 메모리 어드레스를 내부에 저장하고 있다. 캐쉬 메모리 어드레스는 캐쉬 메모리 블록(CMB2)에 대응되는 서브 메모리 블록의 어드레스를 나타낸다. 만일 기입 어드레스(WADD)가 캐쉬 메모리 어드레스와 동일하면 기입 동작은 캐쉬 메모리 블록(CMB2)에서 수행되어야 한다.The tag memory controller 310 stores a cache memory address therein. The cache memory address indicates an address of a sub memory block corresponding to the cache memory block CMB2. If the write address WADD is the same as the cache memory address, the write operation should be performed in the cache memory block CMB2.

기입 어드레스와 독출 어드레스 중 어느 하나도 상기 캐쉬 메모리 어드레스와 동일하지 않으면, 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고, 상기 캐쉬 메모리 블록에서 기입 동작을 수행한다.(440 단계)If neither the write address nor the read address is the same as the cache memory address, a read operation is performed in the memory block corresponding to the read address, and a write operation is performed in the cache memory block (step 440).

제 440 단계를 도 5를 참조하여 좀더 설명한다. 기입 어드레스와 독출 어드레스 중 어느 하나도 상기 캐쉬 메모리 어드레스와 동일하지 않으면, 상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효한지를 판단한다.(510 단계)Operation 440 will be further described with reference to FIG. 5. If neither the write address nor the read address is the same as the cache memory address, it is determined whether the data stored in the cache memory block is valid (step 510).

기입 어드레스(WADD)와 독출 어드레스(RADD) 중 어느 하나도 상기 캐쉬 메모리 어드레스와 동일하지 않다는 것은 결국, 메모리 블록(MB2)의 동일한 서브 메모리 블록에서 기입 동작 및 독출 동작이 수행되어야 한다는 것을 의미한다. 그러나동일한 서브 메모리 블록에서 기입 워드 라인과 독출 워드 라인이 동시에 인에이블 될 수는 없다. 따라서 캐쉬 메모리 블록(CMB2)을 이용하는 것이다.If neither the write address WADD nor the read address RADD is the same as the cache memory address, it means that a write operation and a read operation must be performed in the same sub memory block of the memory block MB2. However, write word lines and read word lines cannot be enabled at the same time in the same sub memory block. Therefore, the cache memory block CMB2 is used.

상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효하지 않으면 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고, 상기 캐쉬 메모리 블록에서 기입 동작을 수행한다.(540 단계)If the data stored in the cache memory block is invalid, a read operation is performed in the memory block corresponding to the read address, and a write operation is performed in the cache memory block (step 540).

기입 동작과 독출 동작이 동일한 서브 메모리 블록에서 수행되어야 할 경우 독출 동작이 우선적으로 수행된다. 따라서, 독출 어드레스(RADD)에 대응되는 메모리 블록(MB2)의 서브 메모리 블록에서 독출 동작을 수행한다. 그리고 캐쉬 메모리 블록(CMB2)에 저장되어 있던 데이터가 유효하지 않으므로 캐쉬 메모리 블록(CMB2)에 기입 동작을 수행한다.When the write operation and the read operation are to be performed in the same sub memory block, the read operation is performed first. Therefore, a read operation is performed in the sub memory block of the memory block MB2 corresponding to the read address RADD. Since the data stored in the cache memory block CMB2 is not valid, a write operation is performed in the cache memory block CMB2.

태그 메모리 제어부(310)는 디코딩 제어 신호(310)를 디코딩부(320)로 인가한다. 그러면 디코딩부(320) 내부의 디코딩 회로들(미도시)중 독출 어드레스(RADD)에 대응되는 디코딩 회로는 디코딩 신호(DS)를 발생하여 대응되는 서브 메모리 블록을 디코딩한다. 그러면 서브 메모리 블록에 저장된 데이터는 출력된다. 도 3에서 MDOUT은 메모리 블록(MB2)에 저장된 데이터가 출력되는 경로이다. Q는 출력 핀을 의미한다. 출력 핀(Q)과 입력 핀(D)이 분리되어 있다.The tag memory controller 310 applies the decoding control signal 310 to the decoder 320. Then, the decoding circuit corresponding to the read address RADD among the decoding circuits (not shown) in the decoding unit 320 generates the decoding signal DS to decode the corresponding sub memory block. The data stored in the sub memory block is then output. In FIG. 3, MDOUT is a path through which data stored in the memory block MB2 is output. Q means output pin. The output pin Q and the input pin D are separated.

또한 태그 메모리 제어부(310)는 캐쉬 제어 신호(CCLS)를 발생하여 캐쉬 메모리 블록(MB2)에서 기입 동작을 수행한다.In addition, the tag memory controller 310 generates a cache control signal CCLS to perform a write operation in the cache memory block MB2.

캐쉬 메모리 블록(CMB2)에 저장된 데이터가 변경되었으므로, 상기 캐쉬 메모리 블록에 기입된 데이터에 관한 정보를 업데이트(update) 시킨다.(550 단계) 이러한 정보의 업데이트는 태그 메모리 제어부(310)에서 수행된다.Since the data stored in the cache memory block CMB2 has been changed, information about the data written in the cache memory block is updated (step 550). The update of the information is performed by the tag memory controller 310.

상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효하면 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고, 상기 캐쉬 메모리 블록에 저장되어 있는 유효한 데이터를 독출하여 대응되는 메모리 블록에 기입한다.(520 단계)If the data stored in the cache memory block is valid, a read operation is performed in the memory block corresponding to the read address, and valid data stored in the cache memory block is read and written in the corresponding memory block. 520 steps)

기입 동작과 독출 동작이 동일한 서브 메모리 블록에서 수행되어야 할 경우 독출 동작이 우선적으로 수행되므로, 독출 어드레스(RADD)에 대응되는 메모리 블록(MB2)의 서브 메모리 블록에서 독출 동작을 수행한다. 태그 메모리 제어부(310)에서 발생되는 디코딩 제어 신호(DCLS)에 의하여 수행된다.When the write operation and the read operation are to be performed in the same sub memory block, the read operation is performed first, and therefore, the read operation is performed in the sub memory block of the memory block MB2 corresponding to the read address RADD. The decoding control signal DCLS is generated by the tag memory controller 310.

캐쉬 메모리 블록(CMB2)에 저장된 데이터가 유효한 데이터이므로 먼저, 캐쉬 메모리 블록(CMB2)에 저장되어 있는 유효한 데이터를 독출하여, 독출된 데이터를 메모리 블록의 대응되는 서브 메모리 블록에 기입해야 한다. 그리고, 캐쉬 제어 신호(CCLS)에 응답하여 캐쉬 메모리 블록(CMB2)에 기입 동작을 수행하고, 캐쉬 메모리 블록(CMB2)에 기입된 데이터에 관한 정보를 업데이트(update) 시킨다.(530 단계) 정보의 업데이트는 역시 태그 메모리 제어부(310)에서 수행된다.Since the data stored in the cache memory block CMB2 is valid data, first, valid data stored in the cache memory block CMB2 must be read, and the read data must be written in the corresponding sub memory block of the memory block. In response to the cache control signal CCLS, a write operation is performed in the cache memory block CMB2, and information about data written in the cache memory block CMB2 is updated (step 530). The update is also performed in the tag memory controller 310.

이와 같은 데이터의 기입 동작과 독출 동작은 동시에 수행된다. 즉, 서브 메모리 블록)과 캐쉬 메모리 블록(CMB2)에서 기입 동작과 독출 동작이 독립적으로 수행되므로 기입 워드 라인과 독출 워드 라인은 동시에 인에이블 될 수 있다. 따라서 기입 워드라인과 독출 워드라인이 순차적으로 인에이블 됨으로 인하여 클럭 신호의 주기를 줄이는데 제한이 생기는 문제를 해결할 수 있는 것이다.Such a data write operation and a read operation are simultaneously performed. That is, since the write operation and the read operation are performed independently in the sub memory block and the cache memory block CMB2, the write word line and the read word line may be enabled at the same time. Therefore, the write word line and the read word line are sequentially enabled, thereby limiting the problem of reducing the period of the clock signal.

상기 기입 어드레스 및 상기 독출 어드레스 중 하나가 상기 캐쉬 메모리 어드레스와 일치되는지, 상기 기입 어드레스 및 상기 독출 어드레스 모두가 상기 캐쉬 메모리 어드레스와 일치되는지를 판단하여 기입 동작 및 독출 동작을 수행한다.(445 단계)A write operation and a read operation are performed by determining whether one of the write address and the read address matches the cache memory address, and whether both the write address and the read address match the cache memory address (step 445).

제 445 단계를 도 6을 참조하여 좀 더 설명한다. 상기 기입 어드레스 및 상기 독출 어드레스 중 하나가 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작을 상기 캐쉬 메모리 블록에서 수행하고, 상기 캐쉬 메모리 어드레스와 일치되지 않은 어드레스에 대응되는 동작을 상기 메모리 블록에서 수행한다.(610 단계)A step 445 is further described with reference to FIG. If one of the write address and the read address matches the cache memory address, an operation corresponding to the address matched with the cache memory address is performed in the cache memory block, and the address corresponds to an address not matched with the cache memory address. The operation is performed in the memory block (step 610).

즉, 독출 어드레스(RADD)가 캐쉬 메모리 어드레스와 일치되고, 기입 어드레스(WADD)가 캐쉬 메모리 어드레스와 일치되지 않으면, 캐쉬 메모리 블록(CMB2)에서 독출 동작을 수행한다. 태그 메모리 제어부(310)는 캐쉬 제어 신호(CCLS)를 캐쉬 메모리 블록(CMB2)으로 인가하여 독출 동작을 수행한다. 독출된 데이터는 도 3에서 CDOUT으로 표시되어 있다.That is, if the read address RADD matches the cache memory address and the write address WADD does not match the cache memory address, the read operation is performed in the cache memory block CMB2. The tag memory controller 310 applies a cache control signal CCLS to the cache memory block CMB2 to perform a read operation. The read data is indicated as CDOUT in FIG.

또한 태그 메모리 제어부(310)는 디코딩 제어 신호(DCLS)를 발생하여 메모리 블록(MB2)에서 기입 동작이 수행되도록 한다.In addition, the tag memory controller 310 generates a decoding control signal DCLS to perform a write operation in the memory block MB2.

반대로, 기입 어드레스(WADD)가 캐쉬 메모리 어드레스와 일치되고, 독출 어드레스(RADD)가 캐쉬 메모리 어드레스와 일치되지 않으면, 캐쉬 메모리 블록(CMB2)에서 기입 동작을 수행하고, 메모리 블록(MB2)에서 독출 동작을 수행한다.On the contrary, if the write address WADD matches the cache memory address and the read address RADD does not match the cache memory address, the write operation is performed in the cache memory block CMB2 and the read operation in the memory block MB2. Do this.

상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 블록에서 독출 동작을 수행하고, 상기 메모리 블록에서 기입 동작을 수행하며, 상기 메모리 블록에 기입된 데이터에 관한 정보를 업데이트(update) 시킨다.(620 단계)If both the write address and the read address match the cache memory address, a read operation is performed in the cache memory block, a write operation is performed in the memory block, and information about data written in the memory block is updated. (update) (step 620).

기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면, 기입 동작과 독출 동작이 모두 캐쉬 메모리 블록(CMB2)에서 수행되어야 한다는 것을 의미한다. 그러나, 이것은 동일한 서브 메모리 블록에서 기입 동작과 독출 동작이 동시에 수행될 수 없는 것과 동일한 이유로 불가능하다.If both the write address and the read address match the cache memory address, it means that both the write operation and the read operation must be performed in the cache memory block CMB2. However, this is not possible for the same reason that a write operation and a read operation cannot be performed simultaneously in the same sub memory block.

따라서, 캐쉬 메모리 블록(CMB2)에서 캐쉬 제어 신호(CCLS)에 응답하여 독출 동작을 수행한다. 그리고 디코딩 제어 신호(DCLS)에 응답하여 메모리 블록(MB2)의 대응되는 서브 메모리 블록에서 기입 동작을 수행한다. 본래 캐쉬 메모리 블록(CMB2)에 기입되어야 할 데이터가 서브 메모리 블록에 기입된 것이므로, 캐쉬 메모리 블록(CMB2)에 현재 저장되어 있는 데이터는 유효하지 않은 데이터가 된다. 따라서 이러한 정보를 태그 메모리 제어부(310)에 업데이트 시킨다.Therefore, the read operation is performed in response to the cache control signal CCLS in the cache memory block CMB2. The write operation is performed in the corresponding sub memory block of the memory block MB2 in response to the decoding control signal DCLS. Since data originally to be written to the cache memory block CMB2 is written to the sub memory block, the data currently stored in the cache memory block CMB2 becomes invalid data. Therefore, the tag memory controller 310 updates this information.

제 420 단계에서, 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 동일하지 않으면, 상기 기입 어드레스와 상기 독출 어드레스가 상기 캐쉬 메모리 어드레스와 일치되는지를 판단한다.(450 단계)In step 420, if the upper address of the write address and the upper address of the read address are not the same, it is determined whether the write address and the read address match the cache memory address (step 450).

상기 기입 어드레스 및 상기 독출 어드레스 중 하나가 상기 캐쉬 메모리 어드레스와 일치되는지, 상기 기입 어드레스 및 상기 독출 어드레스 모두가 상기 캐쉬 메모리 어드레스와 일치되는지를 판단하여 기입 동작 및 독출 동작을 수행한다.(455 단계)A write operation and a read operation are performed by determining whether one of the write address and the read address matches the cache memory address, and whether both the write address and the read address match the cache memory address (step 455).

제 455 단계를 도 7을 참조하여 좀 더 설명한다. 상기 기입 어드레스 및 상기 독출 어드레스 중 어느 하나가 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작을 상기 캐쉬 메모리 블록에서 수행하고, 상기 캐쉬 메모리 어드레스와 일치되지 않은 어드레스와 일치되는 동작을 상기 메모리 블록에서 수행한다.(710 단계)A step 455 is further described with reference to FIG. If any one of the write address and the read address matches the cache memory address, an operation corresponding to the address matched with the cache memory address is performed in the cache memory block, and an address that does not match the cache memory address may be used. A matching operation is performed in the memory block (step 710).

즉, 독출 어드레스(RADD)가 쉬 메모리 어드레스와 일치되고, 기입 어드레스(WADD)가 캐쉬 메모리 어드레스와 일치되지 않으면, 캐쉬 제어 신호(CCLS)에 응답하여 캐쉬 메모리 블록(CMB2)에서 독출 동작을 수행한다. 또한 태그 메모리 제어부(310)는 디코딩 제어 신호(DCLS)를 발생하여 메모리 블록(MB2)에서 기입 동작이 수행되도록 한다.That is, if the read address RADD matches the cache memory address and the write address WADD does not match the cache memory address, the read operation is performed in the cache memory block CMB2 in response to the cache control signal CCLS. . In addition, the tag memory controller 310 generates a decoding control signal DCLS to perform a write operation in the memory block MB2.

반대로, 기입 어드레스(WADD)가 캐쉬 메모리 어드레스와 일치되고, 독출 어드레스(RADD)가 캐쉬 메모리 어드레스와 일치되지 않으면, 캐쉬 메모리 블록(CMB2)에서 기입 동작을 수행하고, 메모리 블록(MB2)에서 독출 동작을 수행한다.On the contrary, if the write address WADD matches the cache memory address and the read address RADD does not match the cache memory address, the write operation is performed in the cache memory block CMB2 and the read operation in the memory block MB2. Do this.

상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 블록에서 독출 동작을 수행하고, 상기 메모리 블록에서 기입 동작을 수행하며, 상기 메모리 블록에 기입된 데이터에 관한 정보를 업데이트(update) 시킨다.(720 단계)If both the write address and the read address match the cache memory address, a read operation is performed in the cache memory block, a write operation is performed in the memory block, and information about data written in the memory block is updated. (update) (step 720).

기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면, 기입 동작과 독출 동작이 모두 캐쉬 메모리 블록(CMB2)에서 수행되어야 한다는 것을 의미한다. 그러나, 이것은 동일한 서브 메모리 블록에서 기입 동작과독출 동작이 동시에 수행될 수 없는 것과 동일한 이유로 불가능하다.If both the write address and the read address match the cache memory address, it means that both the write operation and the read operation must be performed in the cache memory block CMB2. However, this is not possible for the same reason that a write operation and a read operation cannot be performed simultaneously in the same sub memory block.

따라서, 캐쉬 메모리 블록(CMB2)에서 캐쉬 제어 신호(CCLS)에 응답하여 독출 동작을 수행한다. 그리고 디코딩 제어 신호(DCLS)에 응답하여 메모리 블록(MB2)의 대응되는 서브 메모리 블록에서 기입 동작을 수행한다. 본래 캐쉬 메모리 블록(CMB2)에 기입되어야 할 데이터가 서브 메모리 블록에 기입된 것이므로, 캐쉬 메모리 블록(CMB2)에 현재 저장되어 있는 데이터는 유효하지 않은 데이터가 된다. 따라서 이러한 정보를 태그 메모리 제어부(310)에 업데이트 시킨다.Therefore, the read operation is performed in response to the cache control signal CCLS in the cache memory block CMB2. The write operation is performed in the corresponding sub memory block of the memory block MB2 in response to the decoding control signal DCLS. Since data originally to be written to the cache memory block CMB2 is written to the sub memory block, the data currently stored in the cache memory block CMB2 becomes invalid data. Therefore, the tag memory controller 310 updates this information.

제 450 단계에서 판단한 결과, 상기 기입 어드레스 및 상기 독출 어드레스 가 모두 상기 캐쉬 메모리 어드레스와 일치되지 않으면, 상기 선택된 메모리 블록 중 상기 기입 어드레스 및 상기 독출 어드레스에 대응되는 서로 다른 서브 메모리 블록에서 기입 동작 및 독출 동작을 수행한다.(460 단계)In operation 450, if both the write address and the read address do not match the cache memory address, a write operation and a read operation are performed in different sub memory blocks corresponding to the write address and the read address among the selected memory blocks. Perform the operation (step 460).

이 경우는 기입 어드레스(WADD) 및 독출 어드레스(RADD)가 서로 다른 서브 메모리 블록을 지정하고 있는 경우이다. 서로 다른 서브 메모리 블록이 지정되었으므로 각각의 서브 메모리 블록에 대응되는 디코딩 회로(미도시)를 이용하여 데이터의 독출 동작과 기입 동작을 수행한다.In this case, a sub memory block in which the write address WADD and the read address RADD are different from each other is designated. Since different sub memory blocks are designated, data read and write operations are performed using a decoding circuit (not shown) corresponding to each sub memory block.

각 서브 메모리 블록을 디코딩할 수 있는 디코딩 회로를 별도로 구비하고 있고, 또한 기입 어드레스 디코딩 패스와 독출 어드레스 디코딩 패스가 독립적으로 분리되어 있으므로 동일한 메모리 블록이어도 서로 다른 서브 메모리 블록이라면 동시에 독출 동작 및 기입 동작이 수행될 수 있다.A decoding circuit capable of decoding each sub memory block is provided separately, and since the write address decoding path and the read address decoding path are independently separated, the read operation and the write operation are simultaneously performed for different sub memory blocks even with the same memory block. Can be performed.

제 410 단계에서, 상기 기입 어드레스 및 상기 독출 어드레스 중 어느 하나만 입력되면 입력된 상기 기입 어드레스 및 상기 독출 어드레스 중 어느 하나가 상기 캐쉬 메모리 어드레스와 일치되는 지를 판단한다.(465 단계)In operation 410, when only one of the write address and the read address is input, it is determined whether any one of the input write address and the read address matches the cache memory address.

입력된 상기 기입 어드레스 또는 상기 독출 어드레스가 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 어드레스와 일치된 기입 어드레스 또는 독출 어드레스에 대응되는 동작을 상기 캐쉬 메모리 블록에서 수행한다.(470 단계) 이 경우는 클럭 신호의 한 주기 동안 기입 어드레스(WADD) 및 독출 어드레스(RADD) 중 어느 하나만이 입력되는 것이다.If the input write address or read address matches the cache memory address, an operation corresponding to the write address or read address matched with the cache memory address is performed in the cache memory block (step 470). Only one of the write address WADD and the read address RADD is input during one period of the clock signal.

이때는 입력되는 어드레스가 캐쉬 메모리 어드레스와 일치되면 캐쉬 메모리 블록에서 대응되는 동작을 수행하고, 캐쉬 메모리 어드레스와 일치되지 않으면 메모리 블록(MB2)에서 대응되는 동작을 수행한다.In this case, if the input address matches the cache memory address, the corresponding operation is performed in the cache memory block. If the address does not match, the corresponding operation is performed in the memory block MB2.

즉, 기입 어드레스(WADD)만이 입력되고, 입력된 기입 어드레스(WADD)가 캐쉬 메모리 어드레스와 일치된다면 캐쉬 메모리 블록(CMB2)에 기입 동작을 수행한다. 반대로, 독출 어드레스(RADD)만이 입력되고, 입력된 독출 어드레스(RADD)가 캐쉬 메모리 어드레스와 일치된다면 캐쉬 메모리 블록(CMB2)에 독출 동작을 수행한다. 이때 태그 메모리 제어부(310)는 캐쉬 제어 신호(CCLS)를 발생하여 캐쉬 메모리 블록(CMB2)에서 기입 또는 독출 동작이 수행되도록 할 것이다.That is, if only the write address WADD is input and the input write address WADD matches the cache memory address, the write operation is performed to the cache memory block CMB2. On the contrary, if only the read address RADD is input and the input read address RADD matches the cache memory address, a read operation is performed to the cache memory block CMB2. In this case, the tag memory controller 310 may generate a cache control signal CCLS to perform a write or read operation in the cache memory block CMB2.

입력된 상기 기입 어드레스 또는 상기 독출 어드레스가 상기 캐쉬 메모리 어드레스와 일치되지 않으면, 상기 캐쉬 메모리 어드레스와 일치되지 않은 기입 어드레스 또는 독출 어드레스에 대응되는 동작을 상기 메모리 블록에서 수행한다.(475단계) ,If the input write address or read address does not match the cache memory address, an operation corresponding to a write address or read address that does not match the cache memory address is performed in the memory block (step 475).

도 8은 본 발명의 집적 회로의 동작을 설명하는 타이밍도이다.8 is a timing diagram illustrating the operation of the integrated circuit of the present invention.

도 8을 참조하면, 클럭 신호(CLK)의 한 주기가 도 1의 클럭 신호(CLK)의 한 주기의 절반으로 줄어들었음을 알 수 있다. 즉, 클럭 신호(CLK)의 주파수가 2배 증가된 것이다.Referring to FIG. 8, it can be seen that one cycle of the clock signal CLK is reduced to half of one cycle of the clock signal CLK of FIG. 1. That is, the frequency of the clock signal CLK is doubled.

종래에는 기입 동작을 위한 워드 라인과 독출 동작을 위한 워드 라인이 클럭 신호(CLK)의 한 주기 동안에 순차적으로 인에이블 되므로 클럭 신호(CLK)의 주기를 짧게 하는 것이 어려웠다.Conventionally, since the word line for the write operation and the word line for the read operation are enabled sequentially during one period of the clock signal CLK, it is difficult to shorten the period of the clock signal CLK.

그러나, 본 발명에 따른 집적 회로 및 방법에 의하면, 도 8에서 알 수 있듯이, 독출 동작을 위한 워드 라인(WL1)과 기입 동작을 위한 워드 라인(WL2)이 클럭 신호(CLK)의 한 주기 동안에 동시에 인에이블 되므로 클럭 신호(CLK)의 주기를 짧게 할 수 있다.However, according to the integrated circuit and method according to the present invention, as can be seen in FIG. 8, the word line WL1 for the read operation and the word line WL2 for the write operation are simultaneously operated during one period of the clock signal CLK. Since it is enabled, the period of the clock signal CLK can be shortened.

본 발명은 입출력 포트가 분리되고, 클럭 신호의 한 주기 내에 기입 어드레스와 독출 어드레스를 모두 받을 수 있는 집적 회로에 대하여 적용될 수 있다. 또한 데이터는 단일 데이터 율(SDR: Single Data Rate) 또는 이중 데이터 율(DDR: Double Data Rate)로 분리된 입력 핀 또는 출력 핀을 통하여 입출력 될 수 있다.The present invention can be applied to an integrated circuit in which an input / output port is separated and can receive both a write address and a read address within one period of a clock signal. In addition, data may be input or output through an input pin or an output pin separated by a single data rate (SDR) or a double data rate (DDR).

이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, optimal embodiments have been disclosed in the drawings and the specification. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not intended to limit the scope of the invention as defined in the claims or the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

상술한 바와 같이 본 발명에 따른 집적 회로 및 의 독출 동작과 기입 동작을 동시에 수행하는 방법은, 메모리 블록을 복수개의 서브 메모리 블록으로 구분하고, 각각의 서브 메모리 블록을 디코딩 시킬 수 있는 디코딩 회로와, 모든 서브 메모리 블록들에 연결되는 기입 어드레스 디코딩 패스와 독출 어드레스 디코딩 패스를 별도로 구비하며, 캐쉬 메모리 블록을 구비하여 클럭 신호의 한 주기 내에서 독출 동작 및 기입 동작이 메모리 블록과 캐쉬 메모리 블록에서 나누어져 동시에 수행되도록 함으로써 클럭 신호의 동작 주파수를 증가시킬 수 있는 장점이 있다.As described above, the integrated circuit and the method of simultaneously performing the read operation and the write operation according to the present invention include a decoding circuit capable of dividing a memory block into a plurality of sub memory blocks and decoding each sub memory block; A write address decoding path and a read address decoding path connected to all the sub memory blocks are separately provided, and the cache memory block includes read and write operations divided between the memory block and the cache memory block within one period of the clock signal. The simultaneous operation has the advantage of increasing the operating frequency of the clock signal.

Claims (30)

입출력 포트가 분리되어 있고, 클럭 신호의 한 주기동안 기입 어드레스와 독출 어드레스가 입력되는 집적 회로에 있어서,In an integrated circuit in which input / output ports are separated and a write address and a read address are input for one period of a clock signal, 복수개의 서브 메모리 블록들을 각각 구비하는 메모리 블록들 ;Memory blocks each having a plurality of sub memory blocks; 상기 메모리 블록들에 대응되는 캐쉬 메모리 블록들 ; 및Cache memory blocks corresponding to the memory blocks; And 상기 기입 어드레스 또는 상기 독출 어드레스에 응답하여 상기 메모리 블록들 및 상기 캐쉬 메모리 블록들에 저장된 데이터를 독출하거나 상기 메모리 블록들 및 상기 캐쉬 메모리 블록들로 상기 데이터를 기입하는 태그 메모리 제어부를 구비하고,And a tag memory controller configured to read data stored in the memory blocks and the cache memory blocks or to write the data to the memory blocks and the cache memory blocks in response to the write address or the read address. 상기 태그 메모리 제어부는,The tag memory control unit, 상기 기입 어드레스 및 상기 독출 어드레스의 상위 어드레스가 동일한 경우, 상기 데이터의 독출 동작과 기입 동작이 상기 메모리 블록과 상기 캐쉬 메모리 블록에 각각 나누어져 동시에 수행되도록 제어하는 것을 특징으로 하는 집적 회로.And when the write address and the upper address of the read address are the same, the read operation and the write operation of the data are divided into the memory block and the cache memory block, respectively, so as to be controlled at the same time. 제 1항에 있어서,The method of claim 1, 상기 기입 어드레스 및 상기 독출 어드레스가 다른 경우, 상기 각각의 기입 및 독출 어드레스에 대응되는 서로 다른 2개의 서브 메모리 블록들이 각각 디코딩 되는 것을 특징으로 하는 집적 회로.And when the write address and the read address are different, two different sub memory blocks corresponding to the respective write and read addresses are decoded, respectively. 제 1항에 있어서, 상기 집적 회로는,The method of claim 1, wherein the integrated circuit, 서로 분리되어 있는 기입 어드레스 디코딩 패스와 독출 어드레스 디코딩 패스를 구비하고,A write address decoding path and a read address decoding path separated from each other, 상기 서브 메모리 블록들은The sub memory blocks 상기 기입 어드레스 디코딩 패스와 상기 독출 어드레스 디코딩 패스에 각각 연결되는 것을 특징으로 하는 집적 회로.And are coupled to the write address decoding path and the read address decoding path, respectively. 제 1항에 있어서,The method of claim 1, 메모리 블록 내부의 서로 다른 서브 메모리 블록들 중 동일한 하위 어드레스를 가지는 메모리 셀들은 상기 캐쉬 메모리 블록의 하나의 메모리 셀에 대응되는것을 특징으로 하는 집적 회로.And memory cells having the same lower address among different sub memory blocks in the memory block correspond to one memory cell of the cache memory block. 제 1항에 있어서, 상기 캐쉬 메모리 블록의 사이즈는,The method of claim 1, wherein the size of the cache memory block, 상기 하나의 서브 메모리 블록의 사이즈와 같거나 큰 것을 특징으로 하는 집적 회로.And a size equal to or larger than a size of the one sub memory block. 제 1항에 있어서, 상기 태그 메모리 제어부는,The method of claim 1, wherein the tag memory control unit, 상기 캐쉬 메모리 블록에 대응되는 상기 서브 메모리 블록의 어드레스를 나타내는 캐쉬 메모리 어드레스 및 상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효한지를 판단하는 유효 판단 정보를 저장하는 것을 특징으로 하는 집적 회로.And a cache memory address indicating an address of the sub memory block corresponding to the cache memory block and valid determination information for determining whether data stored in the cache memory block is valid. 제 6항에 있어서, 상기 태그 메모리 제어부는,The method of claim 6, wherein the tag memory control unit, 상기 서브 메모리 블록들 중 하나를 선택하는 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 서로 동일한 경우,When the upper address of the write address and the upper address of the read address that select one of the sub memory blocks are the same, 상기 기입 어드레스와 상기 독출 어드레스 중 어느 하나도 상기 캐쉬 메모리 어드레스와 동일하지 않으면 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고 상기 캐쉬 메모리 블록에서 기입 동작을 수행하며,If neither the write address nor the read address is the same as the cache memory address, a read operation is performed in the memory block corresponding to the read address, and a write operation is performed in the cache memory block. 상기 독출 동작 및 상기 기입 동작은 동시에 수행되는 것을 특징으로 하는 집적 회로.And said read operation and said write operation are performed simultaneously. 제 6항에 있어서, 상기 태그 메모리 제어부는,The method of claim 6, wherein the tag memory control unit, 상기 서브 메모리 블록들 중 하나를 선택하는 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 서로 동일한 경우,When the upper address of the write address and the upper address of the read address that select one of the sub memory blocks are the same, 상기 기입 어드레스 및 상기 독출 어드레스 중 하나가 상기 캐쉬 메모리 어드레스와 일치되면,If one of the write address and the read address matches the cache memory address, 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작이 상기 캐쉬 메모리 블록에서 수행되고 일치되지 않은 어드레스에 대응되는 동작이 상기 메모리 블록에서 수행되며,An operation corresponding to an address matched with the cache memory address is performed in the cache memory block, and an operation corresponding to an unmatched address is performed in the memory block, 상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면,If both the write address and the read address match the cache memory address, 상기 캐쉬 메모리 블록에서 독출 동작이 수행되고 상기 메모리 블록에서 기입 동작이 수행되며,A read operation is performed in the cache memory block and a write operation is performed in the memory block, 상기 독출 동작 및 상기 기입 동작은 동시에 수행되는 것을 특징으로 하는 집적 회로.And said read operation and said write operation are performed simultaneously. 제 6항에 있어서, 상기 태그 메모리 제어부는,The method of claim 6, wherein the tag memory control unit, 상기 서브 메모리 블록들 중 하나를 선택하는 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 서로 다른 경우,When an upper address of the write address and one of the read addresses that select one of the sub memory blocks are different from each other, 상기 기입 어드레스 및 상기 독출 어드레스 중 하나가 상기 캐쉬 메모리 어드레스와 일치되면,If one of the write address and the read address matches the cache memory address, 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작이 상기 캐쉬 메모리 블록에서 수행되고 일치되지 않은 어드레스에 대응되는 동작이 상기 메모리 블록에서 수행되며,An operation corresponding to an address matched with the cache memory address is performed in the cache memory block, and an operation corresponding to an unmatched address is performed in the memory block, 상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면,If both the write address and the read address match the cache memory address, 상기 캐쉬 메모리 블록에서 독출 동작이 수행되고 상기 메모리 블록에서 기입 동작이 수행되며,A read operation is performed in the cache memory block and a write operation is performed in the memory block, 상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되지 않으면,If both the write address and the read address do not match the cache memory address, 상기 선택된 메모리 블록 중 상기 기입 어드레스 및 상기 독출 어드레스에 대응되는 서로 다른 서브 메모리 블록에서 기입 동작 및 독출 동작이 수행되며,A write operation and a read operation are performed in different sub memory blocks corresponding to the write address and the read address among the selected memory blocks. 상기 독출 동작 및 상기 기입 동작은 동시에 수행되는 것을 특징으로 하는 집적 회로.And said read operation and said write operation are performed simultaneously. 제 1항에 있어서, 상기 데이터는,The method of claim 1, wherein the data, 단일 데이터 율(SDR: Single Data Rate) 또는 이중 데이터 율(DDR: Double Data Rate)로 입력 또는 출력되는 것을 특징으로 하는 집적 회로.An integrated circuit, characterized in that input or output at a single data rate (SDR) or a double data rate (DDR). 입출력 포트가 분리되어 있는 집적 회로에 있어서,In an integrated circuit in which input and output ports are separated, 복수개의 서브 메모리 블록들을 각각 구비하는 메모리 블록들 ;Memory blocks each having a plurality of sub memory blocks; 상기 각각의 메모리 블록에 대응되며, 소정의 캐쉬 제어 신호에 응답하여 저장된 데이터가 출력되거나 또는 데이터가 기입되는 복수개의 캐쉬 메모리 블록들 ;A plurality of cache memory blocks corresponding to the respective memory blocks, in which stored data is output or data is written in response to a predetermined cache control signal; 상기 각각의 메모리 블록에 대응되며, 기입 어드레스 또는 독출 어드레스, 소정의 디코딩 제어 신호에 응답하여 상기 서브 메모리 블록들을 제어하는 디코딩 신호를 발생하는 복수개의 디코딩부들 ;A plurality of decoding units corresponding to each of the memory blocks and generating a decoding signal for controlling the sub memory blocks in response to a write address or a read address and a predetermined decoding control signal; 기입 선택 신호 또는 독출 선택 신호, 상기 기입 어드레스 또는 상기 독출 어드레스를 수신하고, 클럭 신호의 한 주기 동안 입력되는 상기 기입 어드레스와 상기 독출 어드레스가 동일한 지에 따라 상기 데이터의 기입 동작 및 독출 동작이 동시에 수행되도록 상기 캐쉬 제어 신호 또는 상기 디코딩 제어 신호를 발생하는 태그 메모리 제어부를 구비하는 것을 특징으로 하는 집적 회로.Receive a write select signal or a read select signal, the write address or the read address, and perform the write operation and the read operation of the data at the same time depending on whether the write address and the read address inputted during one period of the clock signal are the same. And a tag memory controller configured to generate the cache control signal or the decoding control signal. 제 11항에 있어서, 상기 디코딩부들은 각각,The method of claim 11, wherein the decoding unit, 상기 서브 메모리 블록들에 대응되는 복수개의 디코딩 회로들을 구비하는 것을 특징으로 하는 집적 회로.And a plurality of decoding circuits corresponding to the sub memory blocks. 제 12항에 있어서, 상기 디코딩 회로들은,The method of claim 12, wherein the decoding circuits, 서로 분리되어 있는 기입 어드레스 디코딩 패스 및 독출 어드레스 디코딩 패스와 연결되고,Connected to a write address decoding path and a read address decoding path that are separated from each other, 상기 서브 메모리 블록들은,The sub memory blocks, 상기 기입 어드레스 디코딩 패스와 상기 독출 어드레스 디코딩 패스에 각각연결되는 것을 특징으로 하는 집적 회로.And are coupled to the write address decoding path and the read address decoding path, respectively. 제 11항에 있어서,The method of claim 11, 상기 기입 어드레스 및 상기 독출 어드레스가 다른 경우, 상기 각각의 기입 및 독출 어드레스에 대응되는 서로 다른 2개의 서브 메모리 블록들이 각각 디코딩 되는 것을 특징으로 하는 집적 회로.And when the write address and the read address are different, two different sub memory blocks corresponding to the respective write and read addresses are decoded, respectively. 제 11항에 있어서,The method of claim 11, 상기 메모리 블록 내부의 서로 다른 서브 메모리 블록들 중 동일한 하위 어드레스를 가지는 메모리 셀들은 상기 캐쉬 메모리 블록의 하나의 메모리 셀에 대응되는 것을 특징으로 하는 집적 회로.And memory cells having the same lower address among different sub memory blocks in the memory block correspond to one memory cell of the cache memory block. 제 11항에 있어서, 상기 캐쉬 메모리 블록의 사이즈는,The method of claim 11, wherein the size of the cache memory block, 상기 하나의 서브 메모리 블록의 사이즈와 같거나 큰 것을 특징으로 하는 집적 회로.And a size equal to or larger than a size of the one sub memory block. 제 11항에 있어서, 상기 태그 메모리 제어부는,The method of claim 11, wherein the tag memory control unit, 상기 캐쉬 메모리 블록에 대응되는 상기 서브 메모리 블록의 어드레스를 나타내는 캐쉬 메모리 어드레스 및 상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효한지를 판단하는 유효 판단 정보를 저장하는 것을 특징으로 하는 집적 회로.And a cache memory address indicating an address of the sub memory block corresponding to the cache memory block and valid determination information for determining whether data stored in the cache memory block is valid. 제 17항에 있어서, 상기 태그 메모리 제어부는,The method of claim 17, wherein the tag memory control unit, 상기 서브 메모리 블록들 중 하나를 선택하는 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 서로 동일한 경우,When the upper address of the write address and the upper address of the read address that select one of the sub memory blocks are the same, 상기 기입 어드레스와 상기 독출 어드레스 중 어느 하나도 상기 캐쉬 메모리 어드레스와 동일하지 않으면 상기 디코딩 제어 신호를 발생하여 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고, 상기 캐쉬 제어 신호를 발생하여 상기 캐쉬 메모리 블록에서 기입 동작을 수행하며,If neither the write address nor the read address is the same as the cache memory address, the decoding control signal is generated to perform a read operation in the memory block corresponding to the read address, and the cache control signal is generated to generate the cache. Perform a write operation on the memory block, 상기 독출 동작 및 상기 기입 동작은 동시에 수행되는 것을 특징으로 하는 집적 회로.And said read operation and said write operation are performed simultaneously. 제 17항에 있어서, 상기 태그 메모리 제어부는,The method of claim 17, wherein the tag memory control unit, 상기 서브 메모리 블록들 중 하나를 선택하는 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 서로 동일한 경우,When the upper address of the write address and the upper address of the read address that select one of the sub memory blocks are the same, 상기 기입 어드레스 및 상기 독출 어드레스 중 하나가 상기 캐쉬 메모리 어드레스와 일치되면,If one of the write address and the read address matches the cache memory address, 상기 캐쉬 제어 신호를 발생하여 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작을 상기 캐쉬 메모리 블록에서 수행하고, 상기 디코딩 제어 신호를 발생하여 상기 캐쉬 메모리 어드레스와 일치되지 않은 어드레스에 대응되는 동작을 상기 메모리 블록에서 수행하며,Generating an cache control signal to perform an operation corresponding to an address matched with the cache memory address in the cache memory block; and generating an decoding control signal to perform an operation corresponding to an address not matched with the cache memory address Perform in memory blocks, 상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면,If both the write address and the read address match the cache memory address, 상기 캐쉬 제어 신호를 발생하여 상기 캐쉬 메모리 블록에서 독출 동작을 수행하고, 상기 디코딩 제어 신호를 발생하여 상기 메모리 블록에서 기입 동작을 수행하며,Generating the cache control signal to perform a read operation on the cache memory block, generating the decoding control signal to perform a write operation on the memory block, 상기 독출 동작 및 상기 기입 동작은 동시에 수행되는 것을 특징으로 하는 집적 회로.And said read operation and said write operation are performed simultaneously. 제 17항에 있어서, 상기 태그 메모리 제어부는,The method of claim 17, wherein the tag memory control unit, 상기 서브 메모리 블록들 중 하나를 선택하는 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 서로 다른 경우,When an upper address of the write address and one of the read addresses that select one of the sub memory blocks are different from each other, 상기 기입 어드레스 및 상기 독출 어드레스 중 하나가 상기 캐쉬 메모리 어드레스와 일치되면,If one of the write address and the read address matches the cache memory address, 상기 캐쉬 제어 신호를 발생하여 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작을 상기 캐쉬 메모리 블록에서 수행하고, 상기 디코딩 제어 신호를 발생하여 상기 캐쉬 메모리 어드레스와 일치되지 않은 어드레스에 대응되는 동작을 상기 메모리 블록에서 수행하며,Generating an cache control signal to perform an operation corresponding to an address matched with the cache memory address in the cache memory block; and generating an decoding control signal to perform an operation corresponding to an address not matched with the cache memory address Perform in memory blocks, 상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면,If both the write address and the read address match the cache memory address, 상기 캐쉬 제어 신호를 발생하여 상기 캐쉬 메모리 블록에서 독출 동작을 수행하고, 상기 디코딩 제어 신호를 발생하여 상기 메모리 블록에서 기입 동작을 수행하며,Generating the cache control signal to perform a read operation on the cache memory block, generating the decoding control signal to perform a write operation on the memory block, 상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되지 않으면,If both the write address and the read address do not match the cache memory address, 상기 디코딩 제어 신호를 발생하여 상기 선택된 메모리 블록 중 상기 기입 어드레스 및 상기 독출 어드레스에 대응되는 서로 다른 서브 메모리 블록에서 기입 동작 및 독출 동작을 수행하며,Generating the decoding control signal to perform a write operation and a read operation in different sub memory blocks corresponding to the write address and the read address of the selected memory block; 상기 독출 동작 및 상기 기입 동작은 동시에 수행되는 것을 특징으로 하는 집적 회로.And said read operation and said write operation are performed simultaneously. 제 11항에 있어서, 상기 데이터는,The method of claim 11, wherein the data, 단일 데이터 율(SDR: Single Data Rate) 또는 이중 데이터 율(DDR: Double Data Rate)로 입력 또는 출력되는 것을 특징으로 하는 집적 회로.An integrated circuit, characterized in that input or output at a single data rate (SDR) or a double data rate (DDR). 입출력 포트가 분리되어 있고 클럭 신호의 한 주기 동안 기입 어드레스와 독출 어드레스가 입력되며, 복수개의 서브 메모리 블록들을 각각 구비하는 복수개의 메모리 블록들, 상기 메모리 블록들에 대응되는 캐쉬 메모리 블록들을 구비하는 집적 회로의 데이터 독출 동작과 기입 동작을 동시에 수행하는 방법에 있어서,An input / output port is separated, a write address and a read address are input during one period of a clock signal, and a plurality of memory blocks each having a plurality of sub-memory blocks, and an integrated memory having cache memory blocks corresponding to the memory blocks. A method of simultaneously performing a data read operation and a write operation of a circuit, (a)클럭 신호의 한 주기 동안 상기 기입 어드레스와 상기 독출 어드레스가 모두 입력되는지 상기 기입 어드레스 및 상기 독출 어드레스 중 어느 하나만 입력되는지를 판단하는 단계 ;(a) determining whether both the write address and the read address are input or only one of the write address and the read address is input during one period of the clock signal; (b)상기 기입 어드레스와 상기 독출 어드레스가 모두 입력되면 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 동일한지를 판단하는 단계 ;determining whether the upper address of the write address and the upper address of the read address are the same when both the write address and the read address are input; (c)상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 동일하면, 상기 기입 어드레스와 상기 독출 어드레스가 소정의 캐쉬 메모리 어드레스와 동일한지를 판단하는 단계 ; 및(c) if the upper address of the write address and the upper address of the read address are the same, determining whether the write address and the read address are equal to a predetermined cache memory address; And (d)상기 기입 어드레스와 상기 독출 어드레스 중 어느 하나도 상기 캐쉬 메모리 어드레스와 동일하지 않으면, 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고, 상기 캐쉬 메모리 블록에서 기입 동작을 수행하는 단계를 구비하는 것을 특징으로 하는 데이터의 독출 동작과 기입 동작을 동시에 수행하는 방법.(d) if neither the write address nor the read address is the same as the cache memory address, performing a read operation on the memory block corresponding to the read address, and performing a write operation on the cache memory block. And reading and writing data simultaneously. 제 22항에 있어서, 상기 (d) 단계는,The method of claim 22, wherein step (d) (d1)상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효한지를 판단하는 단계 ;(d1) determining whether data stored in the cache memory block is valid; (d2)상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효하지 않으면 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고, 상기 캐쉬 메모리 블록에서 기입 동작을 수행하는 단계 ;(d2) performing a read operation on the memory block corresponding to the read address and performing a write operation on the cache memory block if data stored in the cache memory block is invalid; (d3)상기 캐쉬 메모리 블록에 기입된 데이터에 관한 정보를업데이트(update) 시키는 단계 ;(d3) updating information on data written in the cache memory block; (d4)상기 캐쉬 메모리 블록에 저장되어 있는 데이터가 유효하면 상기 독출 어드레스에 대응되는 상기 메모리 블록에서 독출 동작을 수행하고, 상기 캐쉬 메모리 블록에 저장되어 있는 유효한 데이터를 독출하여 대응되는 메모리 블록에 기입하는 단계 ; 및(d4) If data stored in the cache memory block is valid, a read operation is performed in the memory block corresponding to the read address, and valid data stored in the cache memory block is read and written to the corresponding memory block. Doing; And (d5)상기 캐쉬 메모리 블록에 기입 동작을 수행하고, 상기 캐쉬 메모리 블록에 기입된 데이터에 관한 정보를 업데이트(update) 시키는 단계를 구비하는 것을 특징으로 하는 데이터의 독출 동작과 기입 동작을 동시에 수행하는 방법.(d5) performing a read operation on the cache memory block, and updating information on data written on the cache memory block. Way. 제 22항에 있어서, 상기 캐쉬 메모리 어드레스는,The method of claim 22, wherein the cache memory address, 상기 캐쉬 메모리 블록에 대응되는 상기 서브 메모리 블록의 어드레스를 나타내는 것을 특징으로 하는 데이터의 독출 동작과 기입 동작을 동시에 수행하는 방법.And displaying the address of the sub memory block corresponding to the cache memory block. 제 22항에 있어서, 상기 (c)는,The method of claim 22, wherein (c) is (c1)상기 기입 어드레스 및 상기 독출 어드레스 중 하나가 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작을 상기 캐쉬 메모리 블록에서 수행하고, 상기 캐쉬 메모리 어드레스와 일치되지 않은 어드레스에 대응되는 동작을 상기 메모리 블록에서 수행하는 단계 ; 및(c1) if one of the write address and the read address matches the cache memory address, an operation corresponding to the address matched with the cache memory address is performed in the cache memory block, and the cache address does not match the cache memory address. Performing an operation corresponding to an address in the memory block; And (c2)상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 블록에서 독출 동작을 수행하고, 상기 메모리 블록에서 기입 동작을 수행하며, 상기 메모리 블록에 기입된 데이터에 관한 정보를 업데이트(update) 시키는 단계를 구비하는 것을 특징으로 하는 데이터의 독출 동작과 기입 동작을 동시에 수행하는 방법.(c2) if both the write address and the read address coincide with the cache memory address, a read operation is performed in the cache memory block, a write operation is performed in the memory block, and the data is written into the memory block. And updating the information, wherein the reading and writing operations of the data are performed simultaneously. 제 22항에 있어서, 상기 (b) 단계는,The method of claim 22, wherein step (b) (b1) 상기 기입 어드레스의 상위 어드레스와 상기 독출 어드레스의 상위 어드레스가 동일하지 않으면 상기 기입 어드레스와 상기 독출 어드레스가 상기 캐쉬 메모리 어드레스와 일치되는지를 판단하는 단계 ;(b1) determining whether the write address and the read address match the cache memory address if the upper address of the write address and the upper address of the read address are not the same; (b2)상기 기입 어드레스 및 상기 독출 어드레스 중 어느 하나가 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 어드레스와 일치된 어드레스에 대응되는 동작을 상기 캐쉬 메모리 블록에서 수행하고, 상기 캐쉬 메모리 어드레스와 일치되지 않은 어드레스에 대응되는 동작을 상기 메모리 블록에서 수행하는 단계 ;(b2) if any one of the write address and the read address matches the cache memory address, an operation corresponding to the address matched with the cache memory address is performed in the cache memory block and does not match the cache memory address. Performing an operation corresponding to an unaddressed address in the memory block; (b3)상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 블록에서 독출 동작을 수행하고, 상기 메모리 블록에서 기입 동작을 수행한 후, 상기 메모리 블록에 기입된 데이터에 관한 정보를 업데이트(update) 시키는 단계 ; 및(b3) If both the write address and the read address match the cache memory address, a read operation is performed in the cache memory block, a write operation is performed in the memory block, and then the data written to the memory block is written. Updating the relevant information; And (b4)상기 기입 어드레스 및 상기 독출 어드레스가 모두 상기 캐쉬 메모리 어드레스와 일치되지 않으면, 상기 선택된 메모리 블록 중 상기 기입 어드레스 및 상기 독출 어드레스에 대응되는 서로 다른 서브 메모리 블록에서 기입 동작 및 독출동작을 수행하는 단계를 구비하는 것을 특징으로 하는 데이터의 독출 동작과 기입 동작을 동시에 수행하는 방법.(b4) if both the write address and the read address do not match the cache memory address, a write operation and a read operation are performed in different sub memory blocks corresponding to the write address and the read address among the selected memory blocks; And performing a read operation and a write operation of data at the same time. 제 22항에 있어서, 상기 (a) 단계는,The method of claim 22, wherein the step (a), (a1)상기 기입 어드레스 및 상기 독출 어드레스 중 어느 하나만 입력되면 입력된 상기 기입 어드레스 및 상기 독출 어드레스 중 어느 하나가 상기 캐쉬 메모리 어드레스와 일치되는 지를 판단하는 단계 ;determining whether any one of the input write address and the read address coincides with the cache memory address when only one of the write address and the read address is input; (a2)입력된 상기 기입 어드레스 또는 상기 독출 어드레스가 상기 캐쉬 메모리 어드레스와 일치되면, 상기 캐쉬 메모리 어드레스와 일치된 기입 어드레스 또는 독출 어드레스에 대응되는 동작을 상기 캐쉬 메모리 블록에서 수행하는 단계 ; 및(a2) if the input write address or the read address matches the cache memory address, performing an operation corresponding to the write address or read address matched with the cache memory address in the cache memory block; And (a3)입력된 상기 기입 어드레스 또는 상기 독출 어드레스가 상기 캐쉬 메모리 어드레스와 일치되지 않으면, 상기 캐쉬 메모리 어드레스와 일치되지 않은 기입 어드레스 또는 독출 어드레스에 대응되는 동작을 상기 메모리 블록에서 수행하는 단계를 구비하는 것을 특징으로 하는 데이터의 독출 동작과 기입 동작을 동시에 수행하는 방법.(a3) if the input write address or read address does not match the cache memory address, performing an operation corresponding to the write address or read address that does not match the cache memory address in the memory block; And simultaneously reading and writing data. 제 22항에 있어서,The method of claim 22, 상기 메모리 블록 내부의 서로 다른 서브 메모리 블록들 중 동일한 하위 어드레스를 가지는 메모리 셀들은 상기 캐쉬 메모리 블록의 하나의 메모리 셀에 대응되는 것을 특징으로 하는 데이터의 독출 동작과 기입 동작을 동시에 수행하는 방법.And memory cells having the same lower address among different sub memory blocks in the memory block correspond to one memory cell of the cache memory block. 제 22항에 있어서, 상기 캐쉬 메모리 블록의 사이즈는,The method of claim 22, wherein the size of the cache memory block, 상기 하나의 서브 메모리 블록의 사이즈와 같거나 큰 것을 특징으로 하는 데이터의 독출 동작과 기입 동작을 동시에 수행하는 방법.And simultaneously reading and writing data, wherein the size of the one sub memory block is equal to or larger than the size of the one sub memory block. 제 22항에 있어서, 상기 데이터는,The method of claim 22, wherein the data, 단일 데이터 율(SDR: Single Data Rate) 또는 이중 데이터 율(DDR: Double Data Rate)로 입력 또는 출력되는 것을 특징으로 하는 데이터의 독출 동작과 기입 동작을 동시에 수행하는 방법.A method of simultaneously performing a read operation and a write operation of data, wherein the data is input or output at a single data rate (SDR) or a double data rate (DDR).
KR20020065682A 2002-10-26 2002-10-26 Integrated circuit capable of operating data read and data writing simultaneously and method thereof KR100518538B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR20020065682A KR100518538B1 (en) 2002-10-26 2002-10-26 Integrated circuit capable of operating data read and data writing simultaneously and method thereof
DE2003149949 DE10349949A1 (en) 2002-10-26 2003-10-24 Integrated memory circuit permits read and write operations during single clock cycle, using data transfer controller
US10/692,997 US6826088B2 (en) 2002-10-26 2003-10-24 Method and integrated circuit capable of reading and writing data simultaneously
JP2003366262A JP4220351B2 (en) 2002-10-26 2003-10-27 Integrated circuit and method capable of simultaneously executing data reading operation and writing operation
CNB200310124070XA CN100367240C (en) 2002-10-26 2003-10-27 Method of capable of reading-white-writing data and integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20020065682A KR100518538B1 (en) 2002-10-26 2002-10-26 Integrated circuit capable of operating data read and data writing simultaneously and method thereof

Publications (2)

Publication Number Publication Date
KR20040036477A true KR20040036477A (en) 2004-04-30
KR100518538B1 KR100518538B1 (en) 2005-10-04

Family

ID=32226196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20020065682A KR100518538B1 (en) 2002-10-26 2002-10-26 Integrated circuit capable of operating data read and data writing simultaneously and method thereof

Country Status (4)

Country Link
JP (1) JP4220351B2 (en)
KR (1) KR100518538B1 (en)
CN (1) CN100367240C (en)
DE (1) DE10349949A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7193903B2 (en) 2003-04-15 2007-03-20 Samsung Electronics Co., Ltd. Method of controlling an integrated circuit capable of simultaneously performing a data read operation and a data write operation
US7415590B2 (en) * 2003-04-15 2008-08-19 Samsung Electronic Co., Ltd. Integrated circuit having a memory cell array capable of simultaneously performing a data read operation and a data write operation

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6858464B2 (en) 2002-06-19 2005-02-22 Semiconductor Energy Laboratory Co., Ltd. Method of manufacturing light emitting device
AU2003277541A1 (en) 2002-11-11 2004-06-03 Semiconductor Energy Laboratory Co., Ltd. Process for fabricating light emitting device
CN109803832B (en) 2016-10-05 2021-04-13 惠普发展公司,有限责任合伙企业 Printing apparatus and printing method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1171094C (en) * 1989-01-27 2004-10-13 松下电器产业株式会社 Internal signal/monitor of integrated circuit
IE940855A1 (en) * 1993-12-20 1995-06-28 Motorola Inc Data processor with speculative instruction fetching and¹method of operation
CN1129188C (en) * 1998-01-07 2003-11-26 盛群半导体股份有限公司 High-density line decoder for semiconductor ROM
US6122710A (en) * 1998-02-17 2000-09-19 International Business Machines Corporation Dynamic word line driver for cache

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7193903B2 (en) 2003-04-15 2007-03-20 Samsung Electronics Co., Ltd. Method of controlling an integrated circuit capable of simultaneously performing a data read operation and a data write operation
US7415590B2 (en) * 2003-04-15 2008-08-19 Samsung Electronic Co., Ltd. Integrated circuit having a memory cell array capable of simultaneously performing a data read operation and a data write operation

Also Published As

Publication number Publication date
JP2004146051A (en) 2004-05-20
CN1507051A (en) 2004-06-23
DE10349949A1 (en) 2004-05-27
JP4220351B2 (en) 2009-02-04
KR100518538B1 (en) 2005-10-04
CN100367240C (en) 2008-02-06

Similar Documents

Publication Publication Date Title
US7212457B2 (en) Method and apparatus for implementing high speed memory
US7120754B2 (en) Synchronous DRAM with selectable internal prefetch size
US20070106873A1 (en) Apparatus and method for translating addresses
US20070070793A1 (en) Semiconductor memory device
JP4618758B2 (en) Method for driving quad data rate synchronous semiconductor memory device
KR20010071575A (en) Method and apparatus for controling the data rate of a clocking circuit
WO2021056804A1 (en) Memory and addressing method therefor
KR20020058931A (en) Variable control apparatus of data input/output and its method
KR100377708B1 (en) Semiconductor memory device employing pipeline operation with reduced power consumption
KR100518538B1 (en) Integrated circuit capable of operating data read and data writing simultaneously and method thereof
JP4004847B2 (en) Associative memory device
US6826088B2 (en) Method and integrated circuit capable of reading and writing data simultaneously
CN1695131A (en) Address decode
KR100518566B1 (en) Method for controlling the operation of integrated circuit capable of operating data read and data writing simultaneously
US7047363B2 (en) Cache memory and control method thereof
US6556484B2 (en) Plural line buffer type memory LSI
KR100518567B1 (en) Integrated circuit having memory cell array configuration capable of operating data reading and data writing simultaneously
KR100532454B1 (en) Integrated circuit having temporary memory and data storing method thereof
KR20040070279A (en) Communication system
CN110390973B (en) Memory controller
KR100520643B1 (en) Flash memory device
KR970022776A (en) Memory access device and method
KR20050096276A (en) Method for programming core parameters in synchronized semiconductor memory device
JPH08221322A (en) Device and method for controlling memory
KR19980017442A (en) Synchronous Memory Device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120831

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130902

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150831

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180831

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190830

Year of fee payment: 15