KR100531324B1 - Apparatus for memory interface and method for the same - Google Patents

Apparatus for memory interface and method for the same Download PDF

Info

Publication number
KR100531324B1
KR100531324B1 KR10-2004-0005056A KR20040005056A KR100531324B1 KR 100531324 B1 KR100531324 B1 KR 100531324B1 KR 20040005056 A KR20040005056 A KR 20040005056A KR 100531324 B1 KR100531324 B1 KR 100531324B1
Authority
KR
South Korea
Prior art keywords
memory
data
write
read
command
Prior art date
Application number
KR10-2004-0005056A
Other languages
Korean (ko)
Other versions
KR20050077519A (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 KR10-2004-0005056A priority Critical patent/KR100531324B1/en
Publication of KR20050077519A publication Critical patent/KR20050077519A/en
Application granted granted Critical
Publication of KR100531324B1 publication Critical patent/KR100531324B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4335Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명은 디지털 TV 수신기에서 메모리의 억세스를 제어하는 메모리 인터페이스 장치 및 그 방법에 관한 것이다. 특히 본 발명은 메모리 쓰기 명령이면서 메모리 쓰기 명령 내의 메모리 쓰기 어드레스가 이전 메모리 쓰기 명령 내의 메모리 쓰기 어드레스에 대해 연속적이라면 쓰기 데이터 큐의 해당 항목에 연속적으로 데이터를 쓴다. 또한, 메모리 읽기 명령일 때는 상기 메모리 읽기 명령 내의 메모리 읽기 어드레스와 일치하는 어드레스가 쓰기 데이터 큐에 있으면 상기 쓰기 데이터 큐의 해당 항목의 데이터를 읽어 와 시스템 버스로 전송하고, 없다면 상기 메모리 읽기 어드레스의 데이터가 읽기 데이터 버퍼에 있는지를 확인한다. 있으면 읽기 데이터 버퍼로부터 데이터를 읽어 와 시스템 버스로 전송하고, 없으면 메모리로부터 데이터를 읽어 와 읽기 데이터 버퍼에 저장함과 동시에 시스템 버스로 전송한다. The present invention relates to a memory interface device and method for controlling access of a memory in a digital TV receiver. In particular, the present invention writes data continuously to the corresponding item of the write data queue if the memory write command and the memory write address in the memory write command are contiguous to the memory write address in the previous memory write command. In the case of the memory read command, if the address corresponding to the memory read address in the memory read command is in the write data queue, the data of the corresponding item of the write data queue is read and transferred to the system bus. Is in the read data buffer. If present, data is read from the read data buffer and transferred to the system bus. If not, data is read from memory and stored in the read data buffer and transferred to the system bus.

Description

메모리 인터페이스 장치 및 그 방법{Apparatus for memory interface and method for the same}Apparatus for memory interface and method for the same

본 발명은 디지털 TV 수신기에서 메모리의 억세스를 제어하는 메모리 인터페이스 장치 및 그 방법에 관한 것이다.The present invention relates to a memory interface device and method for controlling access of a memory in a digital TV receiver.

최근에는 디지털 TV 수신기의 데이터 처리 시스템이 SOC(System On Chip) 형태로 개발되고 있는 추세이다. 즉, 기존의 데이터 처리 시스템 기능과 외부 CPU 및 주변 기능 등을 하나의 칩으로 통합하여 구현하는 것이다. Recently, data processing systems of digital TV receivers are being developed in the form of SOC (System On Chip). In other words, it integrates existing data processing system functions with external CPU and peripheral functions into one chip.

따라서, 과거에는 데이터 처리 시스템용 칩에 데이터 버퍼용 메모리를 사용하고 외부 CPU에 연산용 메모리를 사용하였으나, 최근의 SOC 형태의 데이터 처리 시스템 칩은 연산용 메모리와 데이터 버퍼용 메모리를 하나의 메모리로 사용하는 공유 메모리(Unified Memory) 구조를 가진다.Therefore, in the past, a data buffer memory was used for a data processing system chip and an operation memory was used for an external CPU. However, in the recent SOC type data processing system chip, a memory for operation and a data buffer memory are used as one memory. It has a shared memory structure.

이와 같이 공유 메모리 갖는 디지털 TV 수신기에서는 각각의 블록 즉, 메모리 억세스 유닛(Memory Access Unit ; MAU)들의 메모리 사용량이 많다. As described above, in the digital TV receiver having the shared memory, the memory usage of each block, that is, memory access units (MAUs), is large.

이때, 상기 MAU들을 시스템 버스에 직접 연결하고 일반적인 메모리 제어부를 사용하게 되면 메모리 쪽에서 병목 현상(bottleneck)이 생기게 된다. In this case, when the MAUs are directly connected to the system bus and a general memory controller is used, a bottleneck is generated in the memory side.

이를 해결하기 위해서 도 1과 같이 메모리 제어부를 시스템 버스에 직접 연결시키지 않고 독립적인 블록으로 두고, 메모리 억세스는 각각의 MAU에서 중재 요청과 같은 특별 명령을 사용하여 이루어지게 한다. 이 명령은 디지털 TV의 특성상 버스트 메모리(burst memory) 접근 모드에 최적화된 것이 대부분이다. In order to solve this problem, as shown in FIG. 1, the memory controller is not connected directly to the system bus but as an independent block, and memory access is performed using a special command such as an arbitration request in each MAU. This command is mostly optimized for burst memory access mode due to the characteristics of digital TV.

도 1은 메모리를 적게 사용하는 일반적인 MAU들은 시스템 버스에 직접 연결하고, 메모리를 많이 사용하는 MAU들은 시스템 버스에 직접 연결하지 않고 메모리 제어부를 통해 시스템 버스에 연결하는 예를 보이고 있다.FIG. 1 illustrates an example in which low-memory MAUs are directly connected to a system bus, and memory-intensive MAUs are directly connected to a system bus through a memory controller, rather than directly to the system bus.

상기 시스템 버스에 직접 연결되는 MAU들은 예를 들면, 칩에 내장된 CPU, DMAC(Direct Memory Access controller), GPIO(General Purpose Input Output), UART(Universal Asynchronous Receiver Transmitter), VIC(Vectored Interrupt Controller) 등이다. 상기된 MAU들 이외에도 다른 MAU들이 시스템 버스에 직접 연결될 수가 있으며 이것은 중요한 것이 아니기 때문에 도면에서는 간략하게만 표시를 했다.MAUs connected directly to the system bus may include, for example, a CPU embedded in a chip, a direct memory access controller (DMAC), a general purpose input output (GPIO), a universal asynchronous receiver transmitter (UART), a vectored interrupt controller (VIC), and the like. to be. In addition to the MAUs described above, other MAUs may be connected directly to the system bus and this is not important and is only shown briefly in the figures.

또한, 상기 시스템 버스에 직접 연결되지 않고 메모리 제어부에 연결되는 MAU들은 예를 들면, 시스템 디코더, 비디오 디코더, 오디오 디코더, 그래픽 제어부, 포맷 컨버터 등이다.In addition, MAUs connected to a memory control unit not directly connected to the system bus are, for example, a system decoder, a video decoder, an audio decoder, a graphics control unit, a format converter, and the like.

이때, 상기 메모리 제어부에 연결된 MAU들이 공유 메모리를 억세스하려면 시스템 버스를 사용해야 한다. 그리고 상기 시스템 버스를 사용하려면 먼저 메모리 제어부에 시스템 버스 사용권을 요청해야 한다. In this case, the MAUs connected to the memory controller must use a system bus to access shared memory. In order to use the system bus, a system bus right of use must be requested to the memory controller.

상기 메모리 제어부는 공유 메모리를 억세스하기 위해 시스템 버스 중재에 참가한 다수의 MAU들 중에서 단지 하나의 MAU에게 시스템 버스의 사용권을 허가한다.The memory controller grants the use of the system bus to only one of the MAUs participating in the system bus arbitration to access the shared memory.

즉, 상기 다수개의 MAU 중 임의의 MAU는 상기 공유 메모리에 데이터를 쓰거나 또는 공유 메모리에 저장된 데이터를 읽어오려고 할 때 먼저 메모리 제어부에게 공유 메모리를 억세스하고자 한다는 요청(Request)을 한다. 이때 상기 공유 메모리를 억세스하겠다고 요청한 MAU가 하나이면 상기 메모리 제어부는 그 MAU에게 메모리를 억세스할 수 있도록 시스템 버스의 사용권을 허가한다. 하지만 적어도 2개 이상의 MAU에서 동시에 메모리 억세스 요청을 한다면 억세스 순서를 정해야 한다. 즉, 상기 메모리 제어부는 각 MAU에서 들어온 요청을 확인한 후 어떤 MAU에서 들어온 요청을 먼저 처리해줄 것인가를 결정한다. 그리고 결정된 MAU에게 공유 메모리를 억세스할 수 있도록 시스템 버스의 사용권을 허가한다.That is, any MAU of the plurality of MAUs first requests a memory controller to access the shared memory when attempting to write data to or read data from the shared memory. At this time, if there is one MAU requesting to access the shared memory, the memory controller grants the MAU the right to use the system bus to access the memory. However, if at least two MAUs simultaneously request memory accesses, the access order must be determined. That is, the memory controller checks the request from each MAU and then determines which MAU request to process first. The determined MAU is then licensed to the system bus to access shared memory.

이때, 상기 메모리 제어부는 각각의 MAU에서 들어온 요청을 우선 순위를 두어서 처리를 해 줄 수도 있고, 아니면 먼저 들어온 요청부터 처리할 수도 있으며, 두 가지 방법을 혼합해서 처리를 해 줄 수도 있다. In this case, the memory controller may process a request from each MAU by giving priority to it, or may process the request first, or a mixture of the two methods.

그리고, 도 1에서 메모리 인터페이스부(Memory bridge)의 역할은 시스템 버스와 메모리 제어부와의 사이에서 적절한 인터페이스를 제공함으로써, CPU의 메모리 억세스를 책임진다.In addition, in FIG. 1, the role of the memory interface unit is responsible for the memory access of the CPU by providing an appropriate interface between the system bus and the memory control unit.

이때, CPU 같은 경우는 버스트 메모리(burst memory) 접근 즉, 순차적인 어드레스에 대하여 계속해서 읽거나 쓰거나 하는 동작도 하지만, 아닌 경우가 대부분이다. 이럴 경우 위에서 보이는 메모리 인터페이스부의 설계가 최적화되어 있지 않으면 CPU의 성능에 좋지 않은 영향을 끼치게 되고, 따라서 전체적으로 시스템의 성능을 저하시키는 원인이 된다. At this time, in the case of a CPU, a burst memory access, that is, an operation of continuously reading or writing a sequential address, is most of the time. In this case, if the design of the memory interface shown above is not optimized, it will adversely affect the performance of the CPU, and thus cause the performance of the system as a whole.

본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 메모리 인터페이스부의 설계를 최적화하여 MAU가 메모리 억세스 명령을 내렸을 경우에 최소의 시간으로 메모리에 데이터를 쓰거나 읽게 하는 메모리 인터페이스 장치 및 그 방법을 제공함에 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to optimize the design of the memory interface unit so that the MAU writes or reads data to the memory in a minimum time when a memory access command is issued, and its In providing a method.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 메모리 인터페이스 장치는, 다수개의 항목으로 구성되어 메모리 쓰기 명령과 함께 입력된 데이터를 상기 메모리에 쓰기 전에 임시로 저장하는 쓰기 데이터 큐; 상기 메모리나 쓰기 데이터 큐에서 읽어 온 데이터를 일시 저장한 후 시스템 버스로 전송하는 읽기 데이터 버퍼; 그리고 시스템 버스를 통해 특정 MAU로부터 메모리 쓰기 명령이 입력되면 상기 쓰기 데이터 큐의 데이터 쓰기와 상기 쓰기 데이터 큐에 저장된 데이터의 메모리 쓰기를 제어하고, 메모리 읽기 명령이 입력되면 상기 메모리나 쓰기 데이터 큐에서 데이터를 읽어 와 읽기 데이터 버퍼에 저장한 후 시스템 버스로 전송할 것인지 아니면, 읽기 데이터 버퍼에 저장된 데이터를 바로 시스템 버스로 전송할 것인지를 결정하고 이를 제어하는 제어부를 포함하여 구성되는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a memory interface device including: a write data queue configured to include a plurality of items and temporarily store data input together with a memory write command before writing to the memory; A read data buffer for temporarily storing data read from the memory or write data queue and then transmitting the read data buffer to a system bus; When a memory write command is input from a specific MAU through a system bus, data write of the write data queue and memory write of data stored in the write data queue are controlled. When a memory read command is input, data is stored in the memory or write data queue. It is characterized in that it comprises a control unit for determining whether to read and store the data stored in the read data buffer to be transmitted to the system bus or transfer the data stored in the read data buffer directly to the system bus.

상기 제어부는 메모리 쓰기 명령이 입력된 경우, 상기 쓰기 데이터 큐가 풀인지를 검사하여 풀이면 풀이 아닐때까지 기다리고, 풀이 아니면 상기 메모리 쓰기 명령에서 요청한 데이터를 쓰기 데이터 큐의 빈 항목에 쓰고, 메모리 쓰기 명령을 종료하는 것을 특징으로 한다.When the memory write command is input, the controller checks whether the write data queue is a pool and waits until it is a pool, and if not, writes the data requested by the memory write command to an empty item of a write data queue, and writes a memory. Ending the command is characterized in that.

상기 제어부는 메모리 쓰기 명령이 입력된 경우, 쓰기 데이터 큐가 풀이 아니고 상기 메모리 쓰기 명령에서 요청한 데이터의 메모리 쓰기 어드레스가 이전 메모리 쓰기 명령의 메모리 쓰기 어드레스에 대해 연속적이라면 상기 메모리 쓰기 명령에서 요청한 데이터를 이전 메모리 쓰기 명령에서 요청한 데이터가 저장된 쓰기 데이터 큐의 같은 항목에 연속적으로 쓰는 것을 특징으로 한다.When the memory write command is input, the controller transfers the data requested by the memory write command if the write data queue is not full and the memory write address of the data requested by the memory write command is contiguous with the memory write address of the previous memory write command. The data requested by the memory write command is continuously written to the same item of the stored write data queue.

상기 제어부는 메모리 쓰기 명령이 입력된 경우, 쓰기 데이터 큐가 풀이 아니고 상기 메모리 쓰기 명령에서 요청한 데이터의 메모리 쓰기 어드레스가 이전 메모리 쓰기 명령의 메모리 쓰기 어드레스에 대해 연속적이 아니면 이전 메모리 쓰기 명령에서 요청한 데이터가 저장된 쓰기 데이터 큐의 항목을 유효화시키고, 상기 메모리 쓰기 명령에서 요청한 데이터는 상기 쓰기 데이터 큐의 다음 항목에 쓰는 것을 특징으로 한다.When the memory write command is input, the controller determines that the data requested by the previous memory write command is not the write data queue and the memory write address of the data requested by the memory write command is not continuous to the memory write address of the previous memory write command. Validate an item of the stored write data queue, and write the data requested by the memory write command to the next item of the write data queue.

상기 제어부는 상기 쓰기 데이터 큐의 항목들 중 유효한 항목의 데이터를 메모리에 쓰고, 메모리 쓰기가 완료되면 상기 쓰기 데이터 큐의 해당 항목을 무효화시키는 것을 특징으로 한다.The controller may write data of a valid item among the items of the write data queue to a memory, and invalidate a corresponding item of the write data queue when memory writing is completed.

상기 제어부는 메모리 읽기 명령이 입력된 경우, 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스가 쓰기 데이터 큐에 있으면 상기 쓰기 데이터 큐의 해당 항목에서 데이터를 읽어 와 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 것을 특징으로 한다.When the memory read command is input, if the memory read address included in the memory read command is in the write data queue, the controller reads data from the corresponding item of the write data queue, transmits the data to the system bus, and terminates the memory read command. It is characterized by.

상기 제어부는 메모리 읽기 명령이 입력된 경우, 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스에 대한 데이터가 읽기 데이터 버퍼에 저장되어 있고 이때 상기 읽기 데이터 버퍼가 유효 상태이면 상기 읽기 데이터 버퍼의 해당 데이터를 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 것을 특징으로 한다.When the memory read command is input, the controller stores data for the memory read address included in the memory read command in the read data buffer, and if the read data buffer is valid, the controller stores the corresponding data in the read data buffer. Transfer to the bus and end the memory read command.

상기 제어부는 메모리 읽기 명령이 입력된 경우, 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스가 쓰기 데이터 큐와 읽기 데이터 버퍼에 없으면 상기 메모리로부터 데이터를 읽어 와 상기 읽기 데이터 버퍼에 저장한 후 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 것을 특징으로 한다.If a memory read command is input, the controller reads data from the memory, stores the data in the read data buffer, and transmits the data to the system bus if the memory read address included in the memory read command is not in the write data queue and the read data buffer. And end the memory read command.

상기 제어부는 상기 메모리로부터 읽어 온 데이터가 읽기 데이터 버퍼에 저장되면 상기 읽기 데이터 버퍼를 유효화시키는 것을 특징으로 한다.The controller may validate the read data buffer when the data read from the memory is stored in the read data buffer.

본 발명에 따른 메모리 쓰기 인터페이스 방법은, Memory write interface method according to the present invention,

입력된 명령이 메모리 쓰기 명령이면 상기 쓰기 데이터 큐가 풀인지를 검사하여 풀이면 풀이 아닐때까지 기다리는 단계;Checking whether the write data queue is a pool if the input command is a memory write command and waiting until the pool is not the pool;

상기 단계에서 풀이 아니라고 판별되면 상기 메모리 쓰기 명령에서 요청한 데이터의 메모리 쓰기 어드레스가 이전 메모리 쓰기 명령의 메모리 쓰기 어드레스에 대해 연속적인지를 판별하는 단계;Determining that the memory write address of the data requested by the memory write command is contiguous with the memory write address of the previous memory write command if it is determined that the pool is not full;

연속적이라고 판별되면 상기 메모리 쓰기 명령에서 요청한 데이터를 이전 메모리 쓰기 명령에서 요청한 데이터가 저장된 쓰기 데이터 큐의 같은 항목에 연속적으로 쓰는 단계; Continuously writing data requested by the memory write command to the same item of the write data queue in which the data requested by the previous memory write command is stored;

연속적이 아니라고 판별되면 이전 메모리 쓰기 명령에서 요청한 데이터가 저장된 쓰기 데이터 큐의 항목을 유효화시키고, 상기 메모리 쓰기 명령에서 요청한 데이터는 상기 쓰기 데이터 큐의 다음 항목에 쓰는 단계; 그리고 Validating an item of a write data queue in which data requested by a previous memory write command is stored, and writing the data requested by the memory write command to a next item of the write data queue if it is determined that the data is not continuous; And

상기 쓰기 데이터 큐의 항목들 중 유효한 항목의 데이터를 메모리에 쓰고, 메모리 쓰기가 완료되면 상기 쓰기 데이터 큐의 해당 항목을 무효화시키는 단계를 포함하여 이루어지는 것을 특징으로 한다.And writing data of a valid item among the items of the write data queue into a memory, and invalidating a corresponding item of the write data queue when memory writing is completed.

본 발명에 따른 메모리 읽기 인터페이스 방법은, Memory read interface method according to the present invention,

입력된 명령이 메모리 읽기 명령이면 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스가 쓰기 데이터 큐에 있는지를 판별하는 단계;Determining whether a memory read address included in the memory read command is in a write data queue when the input command is a memory read command;

상기 쓰기 데이터 큐의 특정 항목에 있다고 판별되고 상기 항목이 유효 상태이면 상기 쓰기 데이터 큐의 해당 항목에서 데이터를 읽어 와 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 단계;If it is determined that the specific item is in the write data queue and the item is in a valid state, reading data from the corresponding item in the write data queue, transferring the data to a system bus, and terminating a memory read command;

상기 쓰기 데이터 큐에 없다고 판별되면 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스에 대한 데이터가 읽기 데이터 버퍼에 저장되어 있는지를 판별하는 단계;Determining whether data for a memory read address included in the memory read command is stored in a read data buffer when it is determined that the write data queue is not in the write data queue;

상기 읽기 데이터 버퍼에 저장되어 있고 상기 읽기 데이터 버퍼가 유효 상태이면 상기 읽기 데이터 버퍼의 해당 데이터를 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 단계; 그리고If the read data buffer is stored in the read data buffer and the read data buffer is in a valid state, transferring corresponding data of the read data buffer to a system bus and terminating a memory read command; And

상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스가 쓰기 데이터 큐와 읽기 데이터 버퍼에 없으면 상기 메모리로부터 데이터를 읽어 와 상기 읽기 데이터 버퍼에 저장한 후 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 단계를 포함하여 이루어지는 것을 특징으로 한다.If the memory read address included in the memory read command is not in the write data queue and the read data buffer, reading data from the memory, storing the data in the read data buffer, transmitting the data to the system bus, and terminating the memory read command. Characterized in that made.

본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the following detailed description of embodiments taken in conjunction with the accompanying drawings.

이하, 첨부된 도면을 참조하여 본 발명의 실시예의 구성과 그 작용을 설명하며, 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 상기한 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.Hereinafter, with reference to the accompanying drawings illustrating the configuration and operation of the embodiment of the present invention, the configuration and operation of the present invention shown in the drawings and described by it will be described as at least one embodiment, By the technical spirit of the present invention described above and its core configuration and operation is not limited.

도 2는 본 발명에 따른 메모리 인터페이스 장치의 구성 블록도로서, 시스템 버스 인터페이스부(210), 메모리 제어부 인터페이스부(220), 비교부(230), 쓰기 데이터 큐(Write Data Que, 240), 및 읽기 데이터(Read Data) 버퍼(250)로 구성된다. 여기서, 상기 시스템 버스 인터페이스부(210), 메모리 제어부 인터페이스부(220), 비교부(230)를 상기 쓰기 데이터 큐(240)와 읽기 데이터 버퍼(250)를 제어하는 제어부라 한다. 2 is a block diagram illustrating a memory interface device according to the present invention, which includes a system bus interface 210, a memory controller interface 220, a comparator 230, a write data queue 240, and The read data buffer 250 is configured. Here, the system bus interface unit 210, the memory control unit interface unit 220, and the comparison unit 230 are referred to as a control unit for controlling the write data queue 240 and the read data buffer 250.

상기 시스템 버스 인터페이스부(210)는 시스템 버스와의 인터페이스를 담당하며, 시스템 버스에서 들어오는 명령을 해석하고 그에 알맞은 동작을 한다. 예를 들어 메모리 쓰기 명령이 들어오면 비교부(230)에 연동해서 쓰기 명령 큐(240)에 데이터를 쓰고, 메모리 읽기 명령이 들어오면 상기 비교부(230)와 연동해서 데이터 읽기 버퍼(250)에서 데이터를 읽어 와 시스템 버스로 전달한다.The system bus interface unit 210 is in charge of the interface with the system bus, and interprets commands coming from the system bus and operates accordingly. For example, when a memory write command is received, data is written to the write command queue 240 in cooperation with the comparator 230, and when a memory read command is received, the data read buffer 250 is interlocked with the comparator 230. Read the data and pass it to the system bus.

상기 메모리 제어부 인터페이스부(220)는 메모리 제어부와의 인터페이스를 담당한다. 즉, 메모리 제어부와의 인터페이스는 특별한 명령을 써서 이루어지는데 이 명령은 어드레스, 읽어올 데이터의 개수, 바이트 마스크 등으로 구성되어져 있다. 그리고 한번에 읽어오는 데이터의 최소 단위는 16바이트로 고정되어 있으며 최대 읽어오는 개수는 32 X 16bytes이다. 이렇게 한 이유는 디지털 TV용 SOC같은 경우에 메모리를 억세스하는 MAU들은 특성상 메모리를 버스트하게 접근하고 메모리 억세스 빈도가 굉장히 높기 때문이다.The memory controller interface 220 is responsible for the interface with the memory controller. That is, the interface with the memory control unit is made by using a special command, which is composed of an address, the number of data to be read, a byte mask, and the like. The minimum unit of data read at one time is fixed to 16 bytes and the maximum number of reads is 32 X 16 bytes. The reason for this is that MAUs that access memory in the case of SOC for digital TVs access the memory in a burst and memory access frequency is very high.

상기 쓰기 데이터 큐(240)는 시스템 버스에서 메모리 쓰기 명령과 함께 입력된 데이터를 공유 메모리에 쓰기 전에 임시로 저장하는 블록이다. 상기 쓰기 데이터 큐는 일 실시예로 8개의 항목으로 구성되어있다고 가정한다. 이때, 각 항목은 메모리에 쓸 데이터가 저장되는 영역, 해당 메모리 쓰기 어드레스가 저장되는 영역, 메모리에 쓸 데이터 사이즈가 저장되는 영역, 현재의 큐 항목이 유효한지 아닌지 나타내는 유효 비트(valid bit) 영역으로 구성된다. 즉, 상기 유효 비트를 보고 해당 큐 항목이 유효한지 아닌지를 알 수 있다. The write data queue 240 is a block for temporarily storing data input together with a memory write command on a system bus before writing to the shared memory. The write data queue is assumed to be composed of eight items in one embodiment. At this time, each item is an area for storing data to be written to memory, an area for storing a corresponding memory write address, an area for storing data size to be written to memory, and a valid bit area for indicating whether or not the current queue item is valid. It is composed. That is, the valid bit can be known whether or not the corresponding cue item is valid.

상기 읽기 데이터 버퍼(250)는 메모리 제어부 인터페이스부(220)와 상호 작용으로 공유 메모리에서 읽어 온 데이터를 임시 저장한다. 상기 읽기 데이터 버퍼의 크기는 일 실시예로 64bytes로 구성되어져 있다고 가정한다. 이렇게 한 이유는 버퍼의 크기를 늘일수록 hit ratio가 높아지지만 게이트 사이즈가 급속히 증가하는 문제가 발생을 하기 때문이다. 따라서, 두 가지 문제를 효과적으로 해결하기 위해서 실험을 통해 적당한 사이즈 즉, 64bytes가 결정된 것이다. 또한 상기 읽기 데이터 버퍼(250)에는 현재 메모리에서 읽어온 데이터가 유효한지 아닌지를 판별할 수 있는 유효 비트(valid bit)가 존재한다. 마찬가지로 상기 유효 비트를 보고 읽기 데이터 버퍼가 유효한지 아닌지를 알 수 있다.The read data buffer 250 temporarily stores data read from the shared memory in interaction with the memory controller interface 220. The size of the read data buffer is assumed to be 64 bytes in one embodiment. The reason for this is that as the size of the buffer increases, the hit ratio increases, but the gate size increases rapidly. Therefore, in order to solve both problems effectively, an appropriate size, 64 bytes, was determined through experiments. In addition, there is a valid bit in the read data buffer 250 to determine whether the data read from the current memory is valid. Similarly, the valid bit can be used to determine whether the read data buffer is valid.

상기 비교부(230)는 시스템 버스 인터페이스부(210)와 상호 작용을 하면서, 시스템 버스를 통해 입력된 명령을 해석해서 메모리 읽기 명령이면 해당하는 읽기 어드레스와 관계된 데이터가 쓰기 데이터 큐에 있는지를 검사하고, 검사 결과에 따라 메모리에서 데이터를 새로 읽어와 시스템 버스로 줄지, 아니면 기존에 읽어온 데이터를 시스템 버스로 줄지를 결정한다. 또한 미리 읽어 놓은 읽기 데이터를 어느 정도 시간이 지나면 무효화(Invalid) 시키고 새로 읽어오게 하는 로직도 포함되어 있다.The comparator 230 interacts with the system bus interface 210 and interprets a command input through the system bus to check whether data related to the corresponding read address is in the write data queue when the memory read command is performed. Based on the test result, the controller decides whether to refresh the data from memory to the system bus or to reduce the data read to the system bus. It also includes logic to invalidate and read new read data after some time.

이와 같이 구성된 본 발명은 메모리 쓰기 명령에 따른 메모리 쓰기 과정을 도시한 도 3의 흐름도와, 메모리 읽기 명령에 따른 메모리 읽기 과정을 도시한 도 4의 흐름도를 참조하여 상세히 설명한다.The present invention configured as described above will be described in detail with reference to the flowchart of FIG. 3 showing the memory writing process according to the memory write command and the flowchart of FIG. 4 showing the memory reading process according to the memory read command.

먼저 공유 메모리에의 데이터 쓰기 과정을 설명한다.First, the process of writing data to shared memory is explained.

메모리를 억세스하려는 MAU 예를 들어, CPU는 메모리에 데이터를 쓰고자 할 때 메모리 쓰기 명령을 발생한다. 상기 메모리 쓰기 명령은 시스템 버스를 통해 메모리 인터페이스부의 시스템 버스 인터페이스부(210)로 입력된다. 상기 시스템 버스 인터페이스부(210)는 시스템 버스에서 메모리 쓰기 명령이 들어오면(단계 301), 그 메모리 쓰기 명령을 비교부(230)로 출력한다. 상기 비교부(230)는 메모리 쓰기 명령이 입력되면 쓰기 데이터 큐(240)가 풀(full)인지 아닌지를 검사한다(단계 302). 상기 쓰기 데이터 큐(240)가 풀이라는 것은 8개의 항목에 모두 데이터가 저장되어 있는 경우이다. 따라서, 상기 쓰기 데이터 큐(240)가 풀이라면 상기 쓰기 데이터 큐(240)가 풀이 아닐 때까지 기다린다. 상기 단계 302에서 쓰기 데이터 큐(240)가 풀이 아니라고 판별되면 메모리에 쓸 데이터를 상기 쓰기 데이터 큐의 빈 항목에 쓰고, 쓰기 명령을 끝내게 된다. MAU trying to access memory For example, the CPU issues a memory write command when trying to write data to memory. The memory write command is input to the system bus interface unit 210 through the system bus. When a memory write command is received from the system bus (step 301), the system bus interface unit 210 outputs the memory write command to the comparator 230. When the memory write command is input, the comparison unit 230 checks whether the write data queue 240 is full or not (step 302). The write data queue 240 is a pool when data is stored in all eight items. Thus, if the write data queue 240 is full, wait until the write data queue 240 is not full. If it is determined in step 302 that the write data queue 240 is not full, the data to be written to the memory is written to an empty item of the write data queue, and the write command is completed.

이때, 메모리에의 데이터 쓰기를 효율적으로 하기 위해서 상기 비교부(230)는 상기 메모리 쓰기 명령 이전에 다른 메모리 쓰기 명령이 있었고, 쓰기 데이터 큐가 풀이 아니라면 상기 메모리 쓰기 명령에 포함된 메모리 쓰기 어드레스가 이전 메모리 쓰기 명령의 쓰기 어드레스에 대해 연속적인지를 판별한다(단계 303). In this case, in order to efficiently write data to the memory, the comparator 230 has another memory write command before the memory write command, and if the write data queue is not full, the memory write address included in the memory write command is transferred. It is determined whether the write address of the memory write command is continuous (step 303).

상기 단계 303에서 현재 메모리 쓰기 어드레스가 이전 메모리 쓰기 명령의 쓰기 어드레스에 대해 연속적이라고 판별되면 이전 메모리 쓰기 명령과 함께 입력된 데이터를 저장하고 있는 쓰기 데이터 큐(240)의 해당 항목, 즉 현재 항목에 데이터를 쓴다(단계 304).If it is determined in step 303 that the current memory write address is contiguous with the write address of the previous memory write command, the corresponding item of the write data queue 240 storing the data input together with the previous memory write command, that is, the data in the current item. Write (step 304).

만일 상기 단계 303에서 쓰기 어드레스가 연속적이 아니라고 판별되면 상기 쓰기 데이터 큐(240)의 현재의 큐 항목의 valid bit을 유효한 것으로 만들고, 다음 항목에 데이터를 쓴다(단계 305).If it is determined in step 303 that the write address is not contiguous, then the valid bit of the current queue item of the write data queue 240 is made valid and data is written to the next item (step 305).

이때, 상기 메모리 제어부 인터페이스부(220)는 상기 쓰기 데이터 큐(240)의 각 항목을 계속 검사하고 있다. 그러다가 valid bit가 유효한 항목이 있으면(단계 306), 유효한 항목의 정보를 기준으로 상기 메모리 제어부를 통해 메모리에 유효한 항목의 데이터를 쓴다. 그리고 상기 메모리에의 데이터 쓰기가 완료되면 상기 쓰기 데이터 큐(240)의 해당 항목의 valid bit를 무효화시킨다(단계 307). 이는 새로운 데이터가 쓰여질 수 있게 하기 위해서이다.In this case, the memory controller interface 220 continuously checks each item of the write data queue 240. If there is an item having a valid bit valid (step 306), data of a valid item is written to the memory through the memory controller based on the information of the valid item. When the data write to the memory is completed, the valid bit of the corresponding item of the write data queue 240 is invalidated (step 307). This is to allow new data to be written.

이렇게 하면 메모리 쓰기 명령은 파이프 라인화되어서 시스템 버스의 측면에서 보면 지연 없이 메모리로 데이터가 쓰여지게 되는 효과가 있다.This effectively writes memory write commands to the pipeline so that data can be written to memory without any delay in terms of the system bus.

한편, 상기 시스템 버스 인터페이스부(210)는 시스템 버스를 통해 메모리 읽기 명령이 입력되면 이를 비교부(230)로 출력한다(단계 402). 상기 비교부(230)는 메모리 읽기 명령이 입력되면 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스가 쓰기 데이터 큐(240)에 있는지를 검사한다(단계 402). 이때 검사하는 쓰기 데이터 큐(240)의 항목들은 valid bit가 유효하여야 한다.Meanwhile, when a memory read command is input through the system bus, the system bus interface unit 210 outputs the read command to the comparator 230 (step 402). When the memory read command is input, the comparator 230 checks whether the memory read address included in the memory read command is in the write data queue 240 (step 402). At this time, the items of the write data queue 240 to be checked must have a valid bit valid.

상기 단계 402에서 메모리 읽기 어드레스가 상기 쓰기 데이터 큐(240)에 있으면 그 큐 항목의 데이터를 읽어 와 시스템 버스에 실어주고 메모리 읽기 명령을 완료한다(단계 403).If the memory read address is in the write data queue 240 in step 402, the data of the queue item is read and put on the system bus to complete the memory read command (step 403).

상기 단계 402에서 메모리 읽기 어드레스가 상기 쓰기 데이터 큐(240)에 없다면 상기 메모리 읽기 어드레스에 대한 데이터가 읽기 데이터 버퍼(250)에 저장되어 있고, 이때 상기 읽기 데이터 버퍼(250)가 유효한지를 검사한다(단계 404).If the memory read address is not in the write data queue 240 in step 402, the data for the memory read address is stored in the read data buffer 250, and at this time, the read data buffer 250 is checked to be valid ( Step 404).

상기 단계 404에서 상기 메모리 읽기 어드레스에 대한 데이터가 읽기 데이터 버퍼(250)에 저장되어 있고 동시에, 상기 읽기 데이터 버퍼(250)가 유효하다면 상기 읽기 데이터 버스(250)에 있는 데이터 중 해당 어드레스의 데이터를 읽어 와 시스템 버스에 실어주고 메모리 읽기 명령을 종료한다(단계 405).In step 404, if the data for the memory read address is stored in the read data buffer 250 and the read data buffer 250 is valid, the data of the corresponding address among the data in the read data bus 250 is read. Read and put on system bus and end memory read command (step 405).

한편, 상기 단계 404에서 두 조건 중 어느 하나라도 만족하지 않으면 즉, 상기 메모리 읽기 어드레스에 대한 데이터가 읽기 데이터 버퍼(250)에 없거나 또는, 상기 읽기 데이터 버퍼(250)가 무효하다면 메모리 제어부 인터페이스부(220)와 상호작용을 해서 메모리의 해당 읽기 어드레스에서 데이터를 읽어온다. 이때 읽어 온 데이터는 읽기 데이터 버퍼(250)에 저장한 후 시스템 버스에 실어준다(단계 406). 그리고, 상기 읽기 데이터 버퍼(250)의 유효 비트를 유효한 상태로 변환하고 메모리 읽기 명령을 종료한다(단계 407). On the other hand, if either of the two conditions are not satisfied in step 404, that is, if the data for the memory read address is not in the read data buffer 250, or if the read data buffer 250 is invalid, the memory controller interface unit ( 220) to read data from the corresponding read address in memory. At this time, the read data is stored in the read data buffer 250 and loaded on the system bus (step 406). Then, the valid bit of the read data buffer 250 is converted into a valid state and the memory read command is terminated (step 407).

이렇게 하면 메모리 읽기 명령도 빠른 시간 내에 처리할 수가 있어서 디지털 TV 수신기의 성능을 향상시킬 수 있게 된다.This allows memory read commands to be processed quickly, which can improve the performance of digital TV receivers.

이와 같이 본 발명은 메모리 인터페이스부의 설계를 최적화하여 CPU가 메모리 억세스 명령을 내렸을 경우에 최소의 시간으로 데이터를 쓰거나 읽게 함으로써, CPU의 성능을 저하시키지 않게 한다.As described above, the present invention optimizes the design of the memory interface unit so that the CPU writes or reads data at a minimum time when the CPU issues a memory access command, thereby not degrading the performance of the CPU.

한편, 본 발명에서 사용되는 용어(terminology)들은 본 발명에서의 기능을 고려하여 정의 내려진 용어들로써 이는 당분야에 종사하는 기술자의 의도 또는 관례 등에 따라 달라질 수 있으므로 그 정의는 본 발명의 전반에 걸친 내용을 토대로 내려져야 할 것이다. On the other hand, the terms used in the present invention (terminology) are terms defined in consideration of the functions in the present invention may vary according to the intention or practice of those skilled in the art, the definitions are the overall contents of the present invention It should be based on.

또한, 본 발명에서는 본 발명의 바람직한 실시예를 통해 본 발명을 설명했으므로 본 발명의 기술적인 난이도 측면을 고려할 때, 당분야에 통상적인 기술을 가진 사람이면 용이하게 본 발명에 대한 또 다른 실시예와 다른 변형을 가할 수 있다. 따라서 상술한 설명에서 사상을 인용한 실시예와 변형은 모두 본 발명의 청구 범위에 모두 귀속됨은 명백하다.In addition, since the present invention has been described through the preferred embodiment of the present invention, in view of the technical difficulty aspects of the present invention, those having ordinary skill in the art can easily and other embodiments of the present invention. Other variations can be made. Therefore, it is apparent that all of the embodiments and variations cited in the above description belong to the claims of the present invention.

이상에서와 같이 본 발명에 따른 메모리 인터페이스 장치 및 그 방법에 의하면, 메모리 쓰기 명령일 때는 상기 메모리 쓰기 명령 내의 메모리 쓰기 어드레스가 이전 메모리 쓰기 명령 내의 메모리 쓰기 어드레스에 대해 연속적인지를 판단하여 연속적이라면 쓰기 데이터 큐의 해당 항목에 연속적으로 데이터를 쓰고, 연속적이 아니라면 현재 항목을 유효화시키고 다음 항목에 데이터를 쓴다. 또한, 상기 쓰기 데이터 큐 중 유효한 항목이 있으면 메모리에 유효한 항목의 데이터를 쓰고 그 항목을 무효화시킨다. 이렇게 함으로써, 메모리 쓰기 명령은 파이프 라인화되어 시스템 버스의 측면에서 보면 지연없이 메모리로 데이터가 쓰여지게 되는 효과가 있다. As described above, according to the memory interface device and the method according to the present invention, in the case of the memory write command, it is determined whether the memory write address in the memory write command is contiguous with the memory write address in the previous memory write command, Write data sequentially to the corresponding item in the queue, otherwise validate the current item and write data to the next item. In addition, if there is a valid item in the write data queue, data of a valid item is written to the memory and the item is invalidated. By doing this, the memory write command is pipelined so that data can be written to the memory without any delay in terms of the system bus.

또한, 메모리 읽기 명령일 때는 상기 메모리 읽기 명령 내의 메모리 읽기 어드레스와 일치하는 어드레스가 쓰기 데이터 큐에 있는지를 확인하여 있으면 해당 항목의 데이터를 읽어 와 시스템 버스로 전송하고, 없다면 상기 메모리 읽기 어드레스의 데이터가 읽기 데이터 버퍼에 있는지를 확인한다. 있으면 읽기 데이터 버퍼로부터 데이터를 읽어 와 시스템 버스로 전송하고, 없으면 메모리로부터 데이터를 읽어 와 읽기 데이터 버퍼에 저장함과 동시에 시스템 버스로 전송한다. 이렇게 함으로써, 메모리 읽기 명령도 빠른 시간 내에 처리할 수가 있어서 디지털 TV 수신기의 성능을 향상시킬 수 있다.In the case of the memory read command, if there is an address in the write data queue that matches the memory read address in the memory read command, the data of the corresponding item is read and transferred to the system bus. Check that it is in the read data buffer. If present, data is read from the read data buffer and transferred to the system bus. If not, data is read from memory and stored in the read data buffer and transferred to the system bus. By doing so, the memory read command can be processed in a short time, thereby improving the performance of the digital TV receiver.

이와 같이 본 발명은 디지털 TV용 SOC에서 CPU의 메모리 접근 성능을 높여 줌으로써, 전체적인 시스템 성능을 개선할 수 있다. 또한 본 발명은 디지털 TV용 SOC 뿐만 아니라 모든 SOC에 적용 가능하며, 작은 수의 게이트 사이즈를 추가함으로써 높은 성능을 이끌어 낼 수 있어 효과적이다.As such, the present invention can improve the overall system performance by increasing the memory access performance of the CPU in the SOC for digital TV. In addition, the present invention is applicable to all SOCs as well as SOCs for digital TVs, and is effective because it can lead to high performance by adding a small number of gate sizes.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.Those skilled in the art will appreciate that various changes and modifications can be made without departing from the spirit of the present invention.

따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다. Therefore, the technical scope of the present invention should not be limited to the contents described in the embodiments, but should be defined by the claims.

도 1은 일반적인 디지털 TV 수신기의 개략도1 is a schematic diagram of a typical digital TV receiver

도 2는 본 발명에 따른 메모리 인터페이스 장치의 구성 블록도2 is a block diagram illustrating a memory interface device in accordance with the present invention.

도 3은 본 발명의 메모리 쓰기 명령에 따른 데이터 쓰기 과정을 나타낸 흐름도3 is a flowchart illustrating a data writing process according to a memory write command of the present invention.

도 4는 본 발명의 메모리 읽기 명령에 따른 데이터 읽기 과정을 나타낸 흐름도 4 is a flowchart illustrating a data reading process according to a memory read command of the present invention.

도면의 주요부분에 대한 부호의 설명Explanation of symbols for main parts of the drawings

210 : 시스템 버스 인터페이스부210: system bus interface unit

220 : 메모리 제어부 인터페이스부220: memory controller interface unit

230 : 비교부230: comparison unit

240 : 쓰기 데이터 큐 240: write data queue

250 : 읽기 데이터 버퍼250: read data buffer

Claims (16)

메모리와, 시스템 버스를 통해 상기 메모리에 데이터를 쓰거나 또는 읽어오는 다수의 메모리 억세스 유닛(MAU)들을 포함한 데이터 처리 시스템의 메모리 인터페이스 장치에 있어서, A memory interface device of a data processing system comprising a memory and a plurality of memory access units (MAUs) for writing data to or reading data from the memory via a system bus, 다수개의 항목으로 구성되어 메모리 쓰기 명령과 함께 입력된 데이터를 상기 메모리에 쓰기 전에 임시로 저장하는 쓰기 데이터 큐;A write data queue comprising a plurality of items and temporarily storing data input together with a memory write command before writing to the memory; 상기 메모리나 쓰기 데이터 큐에서 읽어 온 데이터를 일시 저장한 후 시스템 버스로 전송하는 읽기 데이터 버퍼; 그리고A read data buffer for temporarily storing data read from the memory or write data queue and then transmitting the read data buffer to a system bus; And 시스템 버스를 통해 특정 MAU로부터 메모리 쓰기 명령이 입력되면 상기 쓰기 데이터 큐의 데이터 쓰기와 상기 쓰기 데이터 큐에 저장된 데이터의 메모리 쓰기를 제어하고, 메모리 읽기 명령이 입력되면 상기 메모리나 쓰기 데이터 큐에서 데이터를 읽어 와 읽기 데이터 버퍼에 저장한 후 시스템 버스로 전송할 것인지 아니면, 읽기 데이터 버퍼에 저장된 데이터를 바로 시스템 버스로 전송할 것인지를 결정하고 이를 제어하는 제어부를 포함하여 구성되는 것을 특징으로 하는 메모리 인터페이스 장치.When a memory write command is input from a specific MAU through a system bus, the data write of the write data queue and the memory write of the data stored in the write data queue are controlled. When the memory read command is input, data is written from the memory or the write data queue. And a controller for determining whether to read the data stored in the read data buffer and transfer the data stored in the read data buffer or directly to the system bus. 제 1 항에 있어서, 상기 쓰기 데이터 큐의 각 항목은The method of claim 1, wherein each item of the write data queue is 상기 메모리에 쓸 데이터가 저장되는 영역, 해당 메모리 쓰기 어드레스가 저장되는 영역, 메모리에 쓸 데이터 사이즈가 저장되는 영역, 및 현재의 큐 항목이 유효한지 아닌지를 나타내는 유효 비트 영역을 포함하여 구성되는 것을 특징으로 하는 메모리 인터페이스 장치.And an area in which data to be written to the memory is stored, an area in which a corresponding memory write address is stored, an area in which a data size to be written in the memory is stored, and a valid bit area indicating whether a current queue item is valid or not. Memory interface device. 제 1 항에 있어서, The method of claim 1, 상기 읽기 데이터 버퍼에는 메모리에서 읽어온 데이터가 유효한지 아닌지를 나타내는 유효 비트 영역을 포함하는 것을 특징으로 하는 메모리 인터페이스 장치.The read data buffer includes a valid bit area indicating whether or not data read from the memory is valid. 제 1 항에 있어서, 상기 제어부는The method of claim 1, wherein the control unit 메모리 쓰기 명령이 입력된 경우, 상기 쓰기 데이터 큐가 풀인지를 검사하여 풀이면 풀이 아닐때까지 기다리고, 풀이 아니면 상기 메모리 쓰기 명령에서 요청한 데이터를 쓰기 데이터 큐의 빈 항목에 쓰고, 메모리 쓰기 명령을 종료하는 것을 특징으로 하는 메모리 인터페이스 장치.When a memory write command is input, it checks whether the write data queue is a pool and waits until it is not a pool, otherwise writes the data requested by the memory write command to an empty item of a write data queue, and terminates the memory write command. And a memory interface device. 제 1 항에 있어서, 상기 제어부는 The method of claim 1, wherein the control unit 메모리 쓰기 명령이 입력된 경우, 쓰기 데이터 큐가 풀이 아니고 상기 메모리 쓰기 명령에서 요청한 데이터의 메모리 쓰기 어드레스가 이전 메모리 쓰기 명령의 메모리 쓰기 어드레스에 대해 연속적이라면 상기 메모리 쓰기 명령에서 요청한 데이터를 이전 메모리 쓰기 명령에서 요청한 데이터가 저장된 쓰기 데이터 큐의 같은 항목에 연속적으로 쓰는 것을 특징으로 하는 메모리 인터페이스 장치.When a memory write command is input, if the write data queue is not full and the memory write address of the data requested by the memory write command is contiguous with the memory write address of the previous memory write command, the data requested by the memory write command is transferred to the previous memory write command. Memory interface device, characterized in that the data requested in the continuous write to the same item of the write data queue stored. 제 1 항에 있어서, 상기 제어부는 The method of claim 1, wherein the control unit 메모리 쓰기 명령이 입력된 경우, 쓰기 데이터 큐가 풀이 아니고 상기 메모리 쓰기 명령에서 요청한 데이터의 메모리 쓰기 어드레스가 이전 메모리 쓰기 명령의 메모리 쓰기 어드레스에 대해 연속적이 아니면 이전 메모리 쓰기 명령에서 요청한 데이터가 저장된 쓰기 데이터 큐의 항목을 유효화시키고, 상기 메모리 쓰기 명령에서 요청한 데이터는 상기 쓰기 데이터 큐의 다음 항목에 쓰는 것을 특징으로 하는 메모리 인터페이스 장치.When a memory write command is input, write data in which the data requested by the previous memory write command is stored unless the write data queue is not full and the memory write address of the data requested by the memory write command is not contiguous with the memory write address of the previous memory write command. Validating an item of a queue, and writing data requested in the memory write command to a next item of the write data queue. 제 1 항에 있어서, 상기 제어부는 The method of claim 1, wherein the control unit 상기 쓰기 데이터 큐의 항목들 중 유효한 항목의 데이터를 메모리에 쓰고, 메모리 쓰기가 완료되면 상기 쓰기 데이터 큐의 해당 항목을 무효화시키는 것을 특징으로 하는 메모리 인터페이스 장치.And writing data of a valid item among the items of the write data queue into a memory, and invalidating a corresponding item of the write data queue when memory writing is completed. 제 1 항에 있어서, 상기 제어부는The method of claim 1, wherein the control unit 메모리 읽기 명령이 입력된 경우, 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스가 쓰기 데이터 큐에 있으면 상기 쓰기 데이터 큐의 해당 항목에서 데이터를 읽어 와 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 것을 특징으로 하는 메모리 인터페이스 장치.When a memory read command is input, when a memory read address included in the memory read command is in a write data queue, data is read from a corresponding item of the write data queue, transmitted to the system bus, and the memory read command is terminated. Memory interface device. 제 8 항에 있어서, The method of claim 8, 상기 데이터를 읽어오는 쓰기 데이터 큐의 해당 항목은 유효화 상태여야 하는 것을 특징으로 하는 메모리 인터페이스 장치.And a corresponding item of a write data queue for reading the data should be in an enabled state. 제 1 항에 있어서, 상기 제어부는 The method of claim 1, wherein the control unit 메모리 읽기 명령이 입력된 경우, 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스에 대한 데이터가 읽기 데이터 버퍼에 저장되어 있고 이때 상기 읽기 데이터 버퍼가 유효 상태이면 상기 읽기 데이터 버퍼의 해당 데이터를 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 것을 특징으로 하는 메모리 인터페이스 장치.When a memory read command is input, if the data for the memory read address included in the memory read command is stored in a read data buffer and the read data buffer is valid, the corresponding data of the read data buffer is transferred to the system bus. And end the memory read command. 제 1 항에 있어서, 상기 제어부는The method of claim 1, wherein the control unit 메모리 읽기 명령이 입력된 경우, 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스가 쓰기 데이터 큐와 읽기 데이터 버퍼에 없으면 상기 메모리로부터 데이터를 읽어 와 상기 읽기 데이터 버퍼에 저장한 후 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 것을 특징으로 하는 메모리 인터페이스 장치.When the memory read command is input, if the memory read address included in the memory read command is not in the write data queue and the read data buffer, data is read from the memory, stored in the read data buffer, transferred to the system bus, and memory read. And end the command. 제 11 항에 있어서, 상기 제어부는The method of claim 11, wherein the control unit 상기 메모리로부터 읽어 온 데이터가 읽기 데이터 버퍼에 저장되면 상기 읽기 데이터 버퍼를 유효화시키는 것을 특징으로 하는 메모리 인터페이스 장치.And when the data read from the memory is stored in a read data buffer, validating the read data buffer. 시스템 버스를 통해 특정 메모리 억세스 유닛(MAU)으로부터 메모리 쓰기 명령이나 메모리 읽기 명령이 입력되면 메모리에 데이터를 쓰거나 읽어오기 위해 내부의 쓰기 데이터 큐와 읽기 데이터 버퍼를 제어하는 메모리 인터페이스 방법에 있어서, In the memory interface method of controlling the internal write data queue and read data buffer to write or read data to and from the memory when a memory write command or a memory read command is input from a specific memory access unit (MAU) through the system bus, 입력된 명령이 메모리 쓰기 명령이면 상기 쓰기 데이터 큐가 풀인지를 검사하여 풀이면 풀이 아닐때까지 기다리는 단계;Checking whether the write data queue is a pool if the input command is a memory write command and waiting until the pool is not the pool; 상기 단계에서 풀이 아니라고 판별되면 상기 메모리 쓰기 명령에서 요청한 데이터의 메모리 쓰기 어드레스가 이전 메모리 쓰기 명령의 메모리 쓰기 어드레스에 대해 연속적인지를 판별하는 단계;Determining that the memory write address of the data requested by the memory write command is contiguous with the memory write address of the previous memory write command if it is determined that the pool is not full; 연속적이라고 판별되면 상기 메모리 쓰기 명령에서 요청한 데이터를 이전 메모리 쓰기 명령에서 요청한 데이터가 저장된 쓰기 데이터 큐의 같은 항목에 연속적으로 쓰는 단계; Continuously writing data requested by the memory write command to the same item of the write data queue in which the data requested by the previous memory write command is stored; 연속적이 아니라고 판별되면 이전 메모리 쓰기 명령에서 요청한 데이터가 저장된 쓰기 데이터 큐의 항목을 유효화시키고, 상기 메모리 쓰기 명령에서 요청한 데이터는 상기 쓰기 데이터 큐의 다음 항목에 쓰는 단계; 그리고 Validating an item of a write data queue in which data requested by a previous memory write command is stored, and writing the data requested by the memory write command to a next item of the write data queue if it is determined that the data is not continuous; And 상기 쓰기 데이터 큐의 항목들 중 유효한 항목의 데이터를 메모리에 쓰고, 메모리 쓰기가 완료되면 상기 쓰기 데이터 큐의 해당 항목을 무효화시키는 단계를 포함하여 이루어지는 것을 특징으로 하는 메모리 쓰기 인터페이스 방법.And writing data of a valid item among the items of the write data queue into a memory, and invalidating a corresponding item of the write data queue when memory writing is completed. 제 13 항에 있어서, The method of claim 13, 상기 단계에서 쓰기 데이터 큐가 빈 상태이면 상기 메모리 쓰기 명령에서 요청한 데이터를 쓰기 데이터 큐의 기 정해진 항목에 쓰고, 메모리 쓰기 명령을 종료하는 단계를 더 포함하는 것을 특징으로 하는 메모리 쓰기 인터페이스 방법.And if the write data queue is empty, writing the data requested by the memory write command to a predetermined item of the write data queue, and terminating the memory write command. 시스템 버스를 통해 특정 메모리 억세스 유닛(MAU)으로부터 메모리 쓰기 명령이나 메모리 읽기 명령이 입력되면 메모리에 데이터를 쓰거나 읽어오기 위해 내부의 쓰기 데이터 큐와 읽기 데이터 버퍼를 제어하는 메모리 인터페이스 방법에 있어서, In the memory interface method of controlling the internal write data queue and read data buffer to write or read data to and from the memory when a memory write command or a memory read command is input from a specific memory access unit (MAU) through the system bus, 입력된 명령이 메모리 읽기 명령이면 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스가 쓰기 데이터 큐에 있는지를 판별하는 단계;Determining whether a memory read address included in the memory read command is in a write data queue when the input command is a memory read command; 상기 쓰기 데이터 큐의 특정 항목에 있다고 판별되고 상기 항목이 유효 상태이면 상기 쓰기 데이터 큐의 해당 항목에서 데이터를 읽어 와 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 단계;If it is determined that the specific item is in the write data queue and the item is in a valid state, reading data from the corresponding item in the write data queue, transferring the data to a system bus, and terminating a memory read command; 상기 쓰기 데이터 큐에 없다고 판별되면 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스에 대한 데이터가 읽기 데이터 버퍼에 저장되어 있는지를 판별하는 단계;Determining whether data for a memory read address included in the memory read command is stored in a read data buffer when it is determined that the write data queue is not in the write data queue; 상기 읽기 데이터 버퍼에 저장되어 있고 상기 읽기 데이터 버퍼가 유효 상태이면 상기 읽기 데이터 버퍼의 해당 데이터를 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 단계; 그리고If the read data buffer is stored in the read data buffer and the read data buffer is in a valid state, transferring corresponding data of the read data buffer to a system bus and terminating a memory read command; And 상기 메모리 읽기 명령에 포함된 메모리 읽기 어드레스가 쓰기 데이터 큐와 읽기 데이터 버퍼에 없으면 상기 메모리로부터 데이터를 읽어 와 상기 읽기 데이터 버퍼에 저장한 후 시스템 버스로 전송하고 메모리 읽기 명령을 종료하는 단계를 포함하여 이루어지는 것을 특징으로 하는 메모리 읽기 인터페이스 방법.If the memory read address included in the memory read command is not in the write data queue and the read data buffer, reading data from the memory, storing the data in the read data buffer, transmitting the data to the system bus, and terminating the memory read command. And a memory read interface method. 제 15 항에 있어서, The method of claim 15, 상기 메모리로부터 읽어 온 데이터가 읽기 데이터 버퍼에 저장되면 상기 읽기 데이터 버퍼를 유효화시키는 단계를 더 포함하는 것을 특징으로 하는 메모리 읽기 인터페이스 방법.Validating the read data buffer if data read from the memory is stored in a read data buffer.
KR10-2004-0005056A 2004-01-27 2004-01-27 Apparatus for memory interface and method for the same KR100531324B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2004-0005056A KR100531324B1 (en) 2004-01-27 2004-01-27 Apparatus for memory interface and method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2004-0005056A KR100531324B1 (en) 2004-01-27 2004-01-27 Apparatus for memory interface and method for the same

Publications (2)

Publication Number Publication Date
KR20050077519A KR20050077519A (en) 2005-08-03
KR100531324B1 true KR100531324B1 (en) 2005-11-28

Family

ID=37264970

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-0005056A KR100531324B1 (en) 2004-01-27 2004-01-27 Apparatus for memory interface and method for the same

Country Status (1)

Country Link
KR (1) KR100531324B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020061092A1 (en) * 2018-09-17 2020-03-26 Micron Technology, Inc. Scheduling of read operations and write operations based on a data bus mode

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102149222B1 (en) 2013-09-26 2020-10-14 삼성전자주식회사 Method and Apparatus for Copying Data using Cache

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020061092A1 (en) * 2018-09-17 2020-03-26 Micron Technology, Inc. Scheduling of read operations and write operations based on a data bus mode
US10877906B2 (en) 2018-09-17 2020-12-29 Micron Technology, Inc. Scheduling of read operations and write operations based on a data bus mode
US11874779B2 (en) 2018-09-17 2024-01-16 Micron Technology, Inc. Scheduling of read operations and write operations based on a data bus mode

Also Published As

Publication number Publication date
KR20050077519A (en) 2005-08-03

Similar Documents

Publication Publication Date Title
US6772237B2 (en) Host controller interface descriptor fetching unit
US5544346A (en) System having a bus interface unit for overriding a normal arbitration scheme after a system resource device has already gained control of a bus
US5659696A (en) Method and apparatus for determining address location and taking one of two actions depending on the type of read/write data transfer required
US5802576A (en) Speculative cache snoop during DMA line update
US6789167B2 (en) Method and apparatus for multi-core processor integrated circuit having functional elements configurable as core elements and as system device elements
US20040122986A1 (en) Method, system, and program for handling device interrupts
US5371857A (en) Input/output interruption control system for a virtual machine
US6782463B2 (en) Shared memory array
US7054983B2 (en) USB-HUB device and its control method
US7934043B2 (en) Data processing apparatus for controlling access to a memory based upon detection of completion of a DMA bus cycle
JPH06309230A (en) Bus snooping method
US6738837B1 (en) Digital system with split transaction memory access
JP3600536B2 (en) Method and system for limiting corruption of write data and PCI bus system
JP4097883B2 (en) Data transfer apparatus and method
US6862646B2 (en) Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain
KR100531324B1 (en) Apparatus for memory interface and method for the same
JP2003099324A (en) Streaming data cache for multimedia processor
US7472212B2 (en) Multi CPU system
US6829692B2 (en) System and method for providing data to multi-function memory
JP2001188745A (en) Controller and control method
US20070198754A1 (en) Data transfer buffer control for performance
JPH0210450A (en) Prefetch control system for cache memory
JPH1011387A (en) Information processor
JP2001229074A (en) Memory controller and information processor and memory control chip
JP4538054B2 (en) Data transfer apparatus and method

Legal Events

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

Payment date: 20121026

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131024

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141024

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20151023

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee