KR101116613B1 - 메모리 액세스 제어 장치 및 방법 - Google Patents
메모리 액세스 제어 장치 및 방법 Download PDFInfo
- Publication number
- KR101116613B1 KR101116613B1 KR1020060138773A KR20060138773A KR101116613B1 KR 101116613 B1 KR101116613 B1 KR 101116613B1 KR 1020060138773 A KR1020060138773 A KR 1020060138773A KR 20060138773 A KR20060138773 A KR 20060138773A KR 101116613 B1 KR101116613 B1 KR 101116613B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- fifo
- access control
- read
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
데이터 처리 속도가 개선된 메모리 액세스 제어 장치 및 방법이 개시된다. 본 발명에 따른 메모리 액세스 제어 장치는 메모리와 데이터를 송수신하기 위한 인터페이스 마스터, 데이터를 임시 저장하는 적어도 하나의 FIFO를 포함하는 FIFO 부 및 데이터 리드/라이트 동작을 요청하는 요청 신호에 대한 확인 신호에 응답하여 FIFO에 저장된 데이터로부터 메모리에 리드/라이트될 출력 데이터를 생성하는 메모리 액세스 제어부를 포함한다. 특히, 메모리 액세스 제어부는, 적어도 하나의 요청 신호들을 순차적으로 발생하고, 요청 신호들에 상응하는 확인 신호가 수신되기 이전에 출력 데이터를 생성하며, 요청 신호를 발생하는 REQ 발생부, FIFO를 제어하기 위한 FIFO 제어 신호를 발생하는 FIFO 제어기 및 출력 데이터를 저장하기 위한 출력 버퍼를 더 포함한다. 본 발명에 의하여 또한, 다양한 주소 및 크기를 가지는 데이터를 처리하기 위하여 FIFO를 제어하는 동안에 발생되는 지연을 최소화함으로써 비트 블록 전송 시간을 단축할 수 있다.
Description
도 1은 본 발명의 일면에 의한 메모리 액세스 제어 장치의 동작을 설명하기 위한 블록도이다.
도 2a 및 도 2b는 각각 도 1에 도시된 메모리 액세스 제어 장치의 리드 FSM 및 라이트 FSM을 예시하는 도면이다.
도 3은 본 발명에 의한 메모리 액세스 제어 동작을 설명하기 위한 타이밍도이다.
도 4는 본 발명의 일면에 의한 메모리 액세스 제어에 포함되는 FIFO에 저장된 데이터들의 비트맵을 도시하는 도면이다.
도 5는 소스 LSB 주소가 목적지 LSB 보다 큰 경우의 출력 데이터의 생성 동작을 설명하기 위한 도면이다.
도 6은 소스 LSB 주소가 목적지 LSB 보다 작은 경우의 출력 데이터의 생성 동작을 설명하기 위한 도면이다.
도 7은 본 발명의 다른 면에 의한 메모리 액세스 제어 방법을 나타내는 흐름도이다.
본 발명은 데이터를 메모리에 리드/라이트하는 방법 및 장치에 관한 것이며, 특히, 그래픽 데이터를 메모리에 신속히 리드/라이트하기 위한 방법 및 장치에 관한 것이다.
영상 및 그래픽 정보를 처리하기 위하여는 많은 양의 데이터가 요구된다. 이러한 데이터 입출력을 위하여 메모리에서 한번에 많은 데이터를 리드 및 라이트할 수 있도록 허용하는 버스 구조가 이용된다. 버스 구조는, 데이터를 고속으로 원하는 번지로부터 리드하고 원하는 목표 번지로 라이트하기 위한 구성이며, 이러한 버스 구조의 예를 들면 AMBA(Advanced Microcontroller Bus Architecture) 버스 및 OCP(Open Core Protocol)이 있다.
종래 기술에 의한 메모리 액세스 제어 장치는, OCP 인터페이스 마스터 블록, FIFO 및 DMA(Direct Memory Access) 제어부를 포함한다. OCP 인터페이스 마스터 블록은 메모리로부터 데이터를 빠르게 리드/라이트하기 위한 OCP 버스 프로토콜을 생성한다. 메모리로부터 리드된 데이터는 FIFO에 임시저장된다. DMA 제어부는 리드/라이트할 주소를 생성하고, 리드/라이트될 데이터의 크기를 연산하며, FIFO를 제어하여 원하는 데이터를 독출한다. 즉, DMA 제어부는 직접 메모리 액세스(Direct Memory Access) 동작을 수행한다.
그런데, 메모리로부터 데이터를 읽고 쓰기 위해서는 현재 이용되는 프로토콜(OCP 프로토콜과 같은 프로토콜)에서 규정한 바에 따라서 리드/라이트 명령, 주 소 지정 및 버스트 크기(burst size) 등의 신호를 생성하여 제공하여야 한다. 그러면, 버스 메모리 제어부는 복수 개의 인터페이스 마스터 블록들로부터 이러한 신호들을 수신하고, 이러한 데이터 요청들에 대하여 소정의 우선 순위(priority)을 부여한다. 가장 높은 우선 순위를 가지는 요청 신호가 우선 응답되며, 이에 상응하여 원하는 데이터가 독출될 수 있다. 우선 순위를 결정하는 동작에는 소정의 중재(arbitration) 알고리즘이 도입된다. 그러나, 이와 같이 우선순위를 정하고 정해진 우선 순위에 기반하여 데이터를 제공하는 데에는 일정 시간이 소요되며, 이러한 지연이 시스템 전체의 지연을 초래한다.
종래 기술에 의한 비트 블록 전송 직접 메모리 액세스 제어 장치는 AMBA 버스를 기반으로 구현된다. AMBA에 기반한 메모리 액세스 제어 장치는 요청을 송신하고, 요청에 대한 대기(ready) 신호를 수신한 뒤에야 다음 요청을 송신할 수 있다. 즉, 어느 하나의 요청에 대한 응답을 수신하여 데이터 리드/라이트 동작을 수행한 이후에야 후속 리드/라이트를 수행할 수 있다. 그러므로, 요청 신호에 대한 응답 신호를 대기하는 시간이 길어지면, 그만큼 데이터 처리 속도가 감소한다. 뿐만 아니라, 여러 개의 요청 신호를 처리할 경우, 각 요청 신호에 대한 응답 신호의 지연 현상은 누적되어, 시스템의 동작 속도가 현저히 감소한다. 더 나아가, 데이터 버스가 64비트 또는 128 비트 버스를 통하여 메모리의 바이트 주소(Byte Address) 영역에 액세스하려고 할 경우, 종래 기술에 의한 DMA 제어부는 데이터의 입력을 위한 입력 FIFO 및 데이터의 출력을 위한 출력 FIFO를 별개로 구성한다. 그러므로, 메모리 액세스 제어를 위한 장치의 구성이 복잡함은 물론, 데이터의 리 드/라이트를 수행하는 동안의 지연이 매우 크다.
그런데, 영상 처리 기술의 발전으로 영상 처리 장치에서 처리해야 하는 데이터의 양도 증가한다. 예를 들어, 기존의 디지털 텔레비전의 그래픽 데이터는 단순히 OSD(On Screen Display) 메뉴 정도를 출력하는데 그쳤으나, 점점 그 응용분야가 넓어지고 있다. 이와 같이 많은 양의 데이터를 처리하기 위해서는 메모리에 읽고 쓰는 데이터량이 증가되고, 그만큼 데이터 리드 속도가 저하된다. 이러한 현상은 영상 처리 장치의 동작 속도를 현저히 지연시킨다. 이를 극복하기 위하여 프로세서의 속도와 버스 속도를 올려야 하지만 생산 비용의 증가를 가져온다. 뿐만 아니라, 워드 단위로 버스로부터 데이터를 리드/라이트하는 경우 메모리의 바이트 영역을 액세스하기 위한 내부 처리 데이터의 지연이 발생하므로 데이터 처리 속도가 떨어지는 문제점이 있다.
그러므로, 메모리 액세스 제어 장치의 구성을 간략히 하는 것은 물론, 데이터의 리드/라이트 동작에서 발생되는 지연을 최소화하기 위한 기술이 절실히 요구된다.
또한, 다양한 주소 및 크기를 가지는 데이터를 처리하기 위하여 FIFO를 제어하는 동안에 발생되는 지연을 최소화함으로써 비트 블록 전송 시간을 단축할 수 있는 기술이 절실히 요구된다.
본 발명의 목적은, 입력 데이터를 위한 FIFO 및 출력 데이터를 위한 FIFO를 별개로 구현하지 않고 단일의 FIFO를 선택적으로 사용함으로써 구성이 간략화된 메 모리 액세스 제어 장치를 제공하는 것이다.
본 발명의 다른 목적은, OCP 버스 프로토콜을 이용하여 여러 개의 요청 신호에 대한 응답 신호가 수신되기 이전에 리드/라이트될 데이터를 처리하여 출력 데이터를 형성함으로써 데이터 전송 속도를 향상시킬 수 있는 메모리 액세스 제어 장치를 제공하는 것이다.
본 발명의 또다른 목적은, 버퍼 내의 내부 데이터 지연을 최소화함으로써 그래픽 데이터의 비트 블록 전송 속도를 향상시키기 위한 방법을 제공하는 것이다.
상기와 같은 목적들을 달성하기 위한 본 발명의 일면은, 메모리와 데이터를 송수신하기 위한 인터페이스 마스터, 데이터를 임시 저장하는 적어도 하나의 FIFO를 포함하는 FIFO 부, 및 상기 메모리에 대한 데이터 리드/라이트 동작을 요청하는 적어도 하나의 요청 신호를 순차적으로 발생하며, 상기 요청 신호에 대한 확인 신호에 응답하여 상기 메모리에 대해 리드/라이트될 출력 데이터를, 상기 FIFO에 저장된 데이터로부터 상기 확인 신호가 수신되기 이전에 생성하는 메모리 액세스 제어부를 포함하는 것을 특징으로 한다. 더 나아가, 본 발명의 일면에 따른 메모리 액세스 제어 장치에 포함되는 메모리 액세스 제어부는, 요청 신호를 발생하는 REQ 발생부, FIFO를 제어하기 위한 FIFO 제어 신호를 발생하는 FIFO 제어기, 및 출력 데이터를 저장하기 위한 출력 버퍼를 더 포함하며, 확인 신호가 수신되면 출력 버퍼에 저장된 출력 데이터를 인터페이스 마스터로 전송하는 것을 특징으로 한다. 뿐만 아니라, 본 발명의 일면에 의한 메모리 액세스 제어 장치가 적용되는 메모리는 그래픽 데이터를 저장하며, 메모리 액세스 제어부는, 인터페이스 마스터로부터의 선택 신호에 응답하여 리드 동작 및 라이트 동작 중 어느 하나를 수행하는 것을 특징으로 한다.
상기와 같은 목적들을 달성하기 위한 본 발명의 다른 면은 메모리 액세스 제어 방법에 관한 것으로서, 본 발명의 다른 면에 의한 메모리 액세스 제어 방법은 메모리에 리드/라이트 하려는 데이터를 적어도 하나의 FIFO에 임시 저장하는 단계, 상기 메모리에 대한 데이터 리드/라이트 동작을 요청하는 적어도 하나의 요청 신호를 순차적으로 발생시키는 단계, 및 상기 요청 신호에 대한 확인 신호에 응답하여 상기 메모리에 대해 리드/라이트될 출력 데이터를, 상기 FIFO에 임시 저장된 데이터로부터 상기 확인 신호가 수신되기 이전에 생성하는 출력 데이터 생성 단계를 포함하는 것을 특징으로 한다. 특히, 본 발명의 다른 면에 의한 메모리 액세스 제어 방법은 확인 신호가 수신되면 출력 버퍼에 저장된 출력 데이터를 인터페이스 마스터로 전송하는 것을 단계를 더 포함하는 것을 특징으로 한다.
본 발명에 의하여 메모리로의 데이터 송수신 시간을 감축할 수 있으며, 메모리 액세스 제어 장치의 구성을 간략화할 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로서, 본 발명을 상세히 설명한다. 각 도면에 대하여, 동일한 참조부호는 동일한 부재임을 나타낸다.
도 1은 본 발명의 일면에 의한 메모리 액세스 제어 장치의 동작을 설명하기 위한 블록도이다.
본 발명의 일면에 의한 메모리 액세스 제어 장치는 인터페이스 마스터(130), FIFO 부(150), 및 메모리 액세스 제어부(170)를 포함한다. FIFO 부(150)는 제1 내지 제4 FIFO(FIFO 0, FIFO 1, FIFO 2, FIFO 3)들을 포함하며, 메모리 액세스 제어부(170)는 FIFO 제어기(160), REQ 발생기(180) 및 출력 버퍼(190)를 포함한다.
도 1에 따르면, 인터페이스 마스터(130)는 본 발명에 동작하는 소정의 프로토콜에 따라 데이터 버스(110)와 데이터를 주고받는다. 인터페이스 마스터(130)에 의하여 리드된 데이터는 FIFO 부(150) 내의 FIFO들 내에 임시 저장되고 메모리 액세스 제어부(170)로 전송된다. 메모리 액세스 제어부(170)는 메모리 액세스 제어를 위한 제어 신호 및 FIFO를 제어하기 위한 FIFO 제어 신호를 생성한다. 메모리 액세스 제어부(170)에는 데이터 버스(110)로부터 데이터를 리드하기 위한 리드 FSM(Finite State Machine) 및 라이트하기 위한 라이트 FSM이 구현된다. 리드 FSM 및 라이트 FSM에 대해서는 도 2a 및 도 2b를 이용하여 상세히 후술된다. 메모리 액세스 제어부(170)는 메모리의 바이트 영역에 라이트될 출력 데이터를 생성하고, 생성된 출력 데이터를 출력 버퍼(190)에 저장한다.
인터페이스 마스터(130)는 다양한 데이터 전송 프로토콜을 채택할 수 있으나, 수 개의 요청 신호를 전송하기 위하여 OCP 프로토콜을 이용하는 것이 바람직하 다. 메모리로부터 독출된 데이터는 데이터 버스(110)를 통하여 OCP 프로토콜에 따라서 인터페이스 마스터(130)에 전달된다. 그러면, 수신된 데이터는 인터페이스 마스터(130)로부터 FIFO 부(150)로 전달되어 FIFO 부(150) 내의 FIFO 들에 순서대로 저장된다.
REQ 발생기(180)는 데이터의 리드/라이트 동작을 요청하는 요청 신호를 생성한다. 그러면, FIFO 제어기(160)는 발생된 요청 신호에 상응하는 확인 신호가 수신되기 이전에 FIFO 부(150) 내에 저장된 데이터를 출력되어야할 순서대로 정렬하여 출력 버퍼(190)에 저장한다. 출력 버퍼(190)에 저장된 데이터는 요청 신호에 대한 응답 신호(확인 신호)가 수신되면 즉시 순차적으로 출력된다.
즉, 도 1에 도시된 메모리 액세스 제어 장치는 리드/라이트 동작에 대한 요청 신호(요청 명령)를 발생시킨후, 이러한 요청 신호에 대한 응답 신호(준비 신호, 확인 신호)가 수신되기 이전에도 후속 동작에 대한 요청 신호(요청 명령)를 발생한다. 그리고, 후속 동작에 상응하는 출력 데이터를 생성하여 출력 버퍼(190)에 저장한다. 이와 같이 순차적으로 발생된 요청 신호에 상응하는 출력 데이터는 파이프라인 구조로서 저장된다. 최초의 요청 신호에 대한 응답 신호(준비 신호)가 수신되면, 미리 생성된 출력 데이터가 처리된다. 이와 같은 방식으로 다수 개의 요청 신호에 대한 출력 데이터가 각 요청 신호에 상응하는 응답 신호가 수신되기 이전에 생성되고, 응답 신호가 수신되면 즉시 처리된다. 그러므로, 데이터를 리드/라이트하는데 소요되는 시간이 대폭 단축된다. 뿐만 아니라, 다양한 크기 및 주소를 가지는 데이터를 전송하는데 필요한 FIFO 제어 지연 및 내부 데이터 지연이 최 소화되기 때문에 비트 블록 전송 시간이 단축된다.
FIFO 제어기(160)의 동작 및 출력 버퍼(190)에 저장되는 출력 데이터에 대해서는 도 5 및 도 6을 이용하여 상세히 후술된다.
도 2a 및 도 2b는 각각 도 1에 도시된 메모리 액세스 제어 장치의 리드 FSM 및 라이트 FSM을 예시하는 도면이다.
FSM이란 시스템이 가질 수 있는 상태의 집합으로 기술할 수 있는 시스템이다. FSM은 일단 특정한 상태가 되면 시스템 입력이 바뀌더라도 일정한 시간 동안 그 상태로 남아있어야 하므로 기억 능력이 필요하다. 또한, 시스템이 한 상태로부터 다른 상태로 진행할 때, 후속 상태는 입력 신호 및 현재 상태에 의하여 현재 상태에 의하여 결정되며, 출력 또한 입력 신호 및 현재 상태에 의하여 결정된다.
도 2a 및 도 2b에 도시된 상태들은 각각 버스에서 그래픽 데이터를 읽고 쓰기 위한 상태들을 나타낸다. 도 2a 및 도 2b에서 알 수 있는 바와 같이, 본 발명에 의한 메모리 액세스 제어 장치에서는 리드 상태 및 라이트 상태가 별도로 구성된다. 그러므로 데이터를 더욱 효율적으로 고속 처리할 수 있으며, 입력 FIFO 및 출력 FIFO를 별개로 구성하지 않고 하나의 FIFO를 상태에 따라 선택적으로 이용할 수 있으므로 메모리 액세스 제어 장치의 구성이 간략화된다.
도 2a에 도시된 바와 같이, 리드 상태는 아이들 상태(210), 라인단위의 신규 데이터를 리드하는 리드 상태(220), 리드 요청 상태(230) 및 리드 확인 상태(240)를 포함하며, 라이트 상태는 아이들 상태(260), 라이트 요청 상태(270) 및 라이트 확인 상태(280)를 포함한다.
우선, 버스에서 데이터를 리드할 경우, FIFO가 아이들 상태(210)에 있다가, 신규한 라인에 대해서 리드 동작이 개시되면 리드 상태(220)로 진입한다. 리드 상태(220)에서는 라인 단위로 데이터를 리드한다. 이때 요청 신호의 개수가 메모리 액세스 제어 장치에서 처리할 수 있는 최대 개수보다 작고, FIFO 가 아직 full 상태가 아니면 리드 요청 상태(230)로 진입한다. 이때 확인 신호가 수신되고 리드가 가능하면 리드 확인 상태(240)로 진행한다. 리드 확인 상태(240)에서는 해당 데이터의 리드 작업이 끝날 경우 아이들 상태(210)로 진입하고, 그렇지 않을 경우 리드 상태(220)로 복귀한다.
전술된 바와 같이, 본 발명에 따른 메모리 액세스 제어 장치에서는 여러 개의 요청 신호들을 순차적으로 처리할 수 있다. 본 발명의 일 실시예에서, 예를 들어 네 개의 요청 신호를 응답 신호가 수신되기 이전에 처리할 수 있다. 그러므로, 하나의 요청 신호로부터 응답 신호까지의 지연 시간이 길어지더라도, 이미 송신된 요청 신호에 대해 순차적으로 응답 신호 및 데이터가 수신되면 한번에 최대 16 burst 4번의 많은 양의 데이터를 처리할 수 있다. 리드 요청 상태(230) 상태에서 요청 신호의 최대 개수가 정해지는 이유는 다음과 같다. 예를 들어, 데이터 버스가 128비트 구조를 가지고, 요청 신호가 64 비트 구조를 가진다면, 최초의 요청 신호가 송신된 이후에 처리할 수 있는 요청 신호의 개수는 4개가 된다. 그 이유는, 요청 신호가 4개가 넘으면 최초의 요청 신호에 상응하는 데이터의 비트수를 초과하게 되기 때문이다. 그러므로, 메모리 액세스 제어 장치에서 처리할 수 있는 다중 요청 신호에는 최대 개수가 존재한다. 요청 신호에 대한 확인 신호가 수신되면 확 인 상태로 진행한다(240). 그러면, 버스로부터 읽어온 데이터는 FIFO에 차곡차곡 저장되어서 FIFO가 차게(full)될 때마다 도 2b에 도시된 라이트 상태로 진입한다. 그러면, FIFO에 저장된 데이터는 버스에 라이트된다.
라이트 상태에 대해서 설명하면 다음과 같다.
아이들 상태(260)에서, FIFO 가 full 상태이고, 아직 요청할 데이터가 남아있으며, 다중 요청 신호를 처리할 수 있고 확인 신호가 존재하지 않으면 라이트 요청 상태(270)로 진행한다. 라이트 요청 상태(270)에서는 옮기려는 데이터의 크기 정보가 필요하며, 읽어온 데이터가 남아있으면 계속 라이트 동작을 요청하도록 한다. 라이트 요청 신호에 대한 확인 신호가 존재하고, 리드 동작이 이네이블 상태가 아니면 라이트 확인 상태(280)로 진행한다. 라이트 확인 상태(280)로 진행하기 위하여 리드 동작이 이네이블 상태인지 확인하는 이유는 인터페이스 마스터가 하나만이 존재하여 동일한 FIFO를 각각 리드 FIFO 및 라이트 FIFO로 사용하기 때문이다. 즉, 도 2a 및 도 2b에 도시된 상태들은 인터페이스 마스터(도 1의 130 참조)가 하나이기 때문에 하나의 선택 신호를 공유한다. 그러므로, 리드 상태 및 라이트 상태는 상호 배타적으로 수행되어 혼선을 회피할 수 있다.
도 3은 본 발명에 의한 메모리 액세스 제어 동작을 설명하기 위한 타이밍도이다. 도 3을 참조하면, (a)는 종래 기술에 의한 메모리 액세스 제어 장치의 동작을 위한 타이밍도를 도시한다. (a)에서, 데이터 리드를 위한 요청 신호가 발생된 후, 이에 대한 응답 신호가 수신될 때까지 지연이 불가피하다. 이에 반하여, (b)에 도시된 바와 같이, 데이터 A를 리드하기 위한 요청 신호가 발생된 후, 데이터 A 에 대한 요청 신호에 상응하는 응답 신호가 수신되기 이전에 본 발명에 따른 메모리 액세스 제어 장치는 데이터 B에 대한 요청 신호를 생성한다. 이러한 방식으로 데이터 A 내지 데이터 D에 대한 요청 신호를 순차적으로 발생하고, 각각의 응답 신호가 수신되기 이전에 데이터 A 내지 D를 출력 버퍼에 저장함으로써, 대기 시간을 감소시킬 수 있다.
도 4는 본 발명의 일면에 의한 메모리 액세스 제어에 포함되는 FIFO에 저장된 데이터들의 비트맵을 도시하는 도면이다.
도 4에서 빗금으로 표시된 부분은 각각 유효한 데이터를 나타내는 것이다. 410에서 소스 주소가 000이라면, 0번째 바이트부터 유효한 데이터가 존재한다는 것을 의미하며, 소스 주소가 111이라면 8번째 바이트부터 유효한 데이터라는 것을 나타낸다. 마찬가지로, 420에서도 목적지 주소가 000이라면 0번째 바이트로부터 유효한 데이터라는 것을 나타내고, 목적지 주소가 111이라면 8번째 바이트부터 데이터가 유효하다는 것을 나타낸다. 430에서는 해당 라인의 어느 바이트까지가 유효한 데이터인지를 나타낸다. 예를 들어 430의 라인 엔드가 0000이라면 전체 라인이 유효한 데이터임을 나타내고, 1111이라면 첫 번째 바이트만이 유효하다는 것을 나타낸다.
도시된 바와 같이, 도 4는 소스 LSB(Least Significant Bit) 주소가 목적지 LSB 보다 큰 경우의 출력 데이터의 생성 동작을 설명하기 위한 도면이다. 도 5의 500 및 510을 참조하면, 유효한 바이트 순서를 이동시켜서 3번째 바이트부터 유효한 소스 데이터를 7번째 바이트부터 유효한 목적지 데이터로 기록하기 위한 동작을 예시한다.
메모리의 바이트 영역을 리드할 때에는 워드 단위로 데이터를 리드한 후, 명령에 상응하여 라이트 시작 주소를 변경하여 기록한다. 이 과정에서, FIFO 로부터 출력된 데이터는 520 내지 590의 FIFO out 버퍼에 기록되며, 임시 조작 데이터는 temp-buf에 기록된다. 조작된 데이터를 목적지에 기록하도록 출력할 데이터를 기록한다. 도 4에서와 같이, 도 5의 빗금친 영역은 유효한 데이터를 나타내며, 이해를 돕기 위하여 라인 데이터가 FIFO로부터 독출된 순서에 따라 순번이 표시된다. 520에서 첫 번째 독출된 데이터는 3번째 바이트부터 유효하며, 이 데이터는 530의 temp-buf로 진행한다. temp-buf는 기록이 시작될 주소인 7번째 바이트로 천이 시켜 데이터를 기록한다. 이때 out-buf에 기록되지 못한 데이터는 temp-buf에 잔존하게 된다. 다음 동작 클록이 인가되면, 540에서와 같이 잔존된 데이터가 우선적으로 out_buf에 기록된다. 이와 같은 동작을 반복함으로써(540 내지 590 참조) 3번째부터 유효한 소스 데이터는 목적지에서 7번째 주소로부터 기록될 수 있다. 560에서, 소스 데이터가 모두 리드되면 라인의 빈 부분이 리드되게 된다 그러면, 570에서 이미 읽었던 5를 한번 더 읽어서 빈 곳을 채우게 된다.
도 6은 소스 LSB 주소가 목적지 LSB 보다 작은 경우의 출력 데이터의 생성 동작을 설명하기 위한 도면이다. 도 6에 도시된 바와 같이, 64비트 또는 128 비트 버스에서 데이터 액세스 단위가 8바이트 혹은 16 바이트로 구현될 경우, 데이터는 한 바이트 단위로 액세스하기 때문에 도 6에 도시된 바와 같은 조작이 필요하다. 즉, 하나의 내부 FIFO를 거치고 출력 버퍼(out_buf)를 이용하여 더블 버퍼(Double Buffer) 방식으로 데이터를 처리하여야 한다. 600 및 605에서 알 수 있는 바와 같이, 도 6은 LSB가 5인 유효한 데이터를 LSB가 3인 출력 데이터로 변환되도록 조작한다. 워드 단위로 리드된 데이터는 목적지 주소에 맞춰 재배열된다. 라이트 과정에서는 예를 들어 OCP 프로토콜에서 제공되는 바이트 이네이블 신호(Byte Enable)를 이용하여 유효한 데이터만을 쓸 수 있다. 도 6에 도시된 610 내지 690 까지의 데이터 조작 과정은 도 5에 도시된 과정과 유사하므로 상세한 설명이 생략된다.
도 7은 본 발명의 다른 면에 의한 메모리 액세스 제어 방법을 나타내는 흐름도이다.
메모리로부터 송수신된 데이터는 우선 FIFO에 임시 저장된다(S710). 그리고, 이러한 데이터를 리드/라이트하기 위한 요청 신호를 발생한다(S730). 본 발명에 따른 메모리 액세스 제어 방법에서는 요청 신호에 대한 응답 신호가 수신되기 이전에 수 개의 요청 신호를 순차적으로 출력한다. 또한, 각 요청 신호에 상응하는 출력 데이터를 생성하여 출력 버퍼에 저장한다(S750).
그러면, 메모리 액세스 제어부(도 1의 170)는 확인 신호가 수신되는지 판단하여(S770), 확인 신호가 수신되면 기저장된 출력 데이터를 메모리로 전송한다(S790). 확인 신호가 수신되지 않으면 다시 요청 신호를 발생하는 단계로 복귀한다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명에 의하여 프로세서의 속도 및 버스 속도를 개선하지 않아도 고용량 그래픽 데이터를 리드/라이트하는데 소요되는 시간을 단축할 수 있으므로, 디지털 텔레비전등 다양한 영상 처리 장치의 동작 속도를 현저하게 개선할 수 있다.
또한, 본 발명에 의하여 버퍼 내의 내부 데이터 지연을 최소화함으로써 그래픽 데이터의 비트 블록 전송 속도를 향상시킬 수 있음은 물론 복잡해지고 다양해져 가는 그래픽 어플리케이션의 데이터 처리 속도를 향상시킬 수 있다.
뿐만 아니라, 본 발명에 의하여 입력 데이터를 위한 FIFO 및 출력 데이터를 위한 FIFO를 별개로 구현하지 않고 단일의 FIFO를 선택적으로 사용함으로써 구성이 간략화되고 생산 비용이 절감된 메모리 액세스 제어 장치가 제공된다.
Claims (5)
- 메모리 액세스 제어 장치에 있어서,메모리와 데이터를 송수신하기 위한 인터페이스 마스터;상기 데이터를 임시 저장하는 적어도 하나의 FIFO를 포함하는 FIFO 부; 및상기 메모리에 대한 데이터 리드/라이트 동작을 요청하는 적어도 하나의 요청 신호를 순차적으로 발생하며, 상기 요청 신호에 대한 확인 신호에 응답하여 상기 메모리에 대해 리드/라이트될 출력 데이터를, 상기 FIFO에 저장된 데이터로부터 상기 확인 신호가 수신되기 이전에 생성하는 메모리 액세스 제어부를 포함하는 것을 특징으로 하는 메모리 액세스 제어 장치.
- 제1항에 있어서, 상기 메모리 액세스 제어부는,상기 요청 신호를 발생하는 REQ 발생부;상기 FIFO를 제어하기 위한 FIFO 제어 신호를 발생하는 FIFO 제어기; 및상기 출력 데이터를 저장하기 위한 출력 버퍼를 포함하며, 상기 메모리 액세스 제어부는,상기 확인 신호가 수신되면 상기 출력 버퍼에 저장된 상기 출력 데이터를 상기 인터페이스 마스터로 전송하는 것을 특징으로 하는 메모리 액세스 제어 장치.
- 제2항에 있어서,상기 메모리는 그래픽 데이터를 저장하며,상기 메모리 액세스 제어부는, 상기 인터페이스 마스터로부터의 선택 신호에 응답하여 리드 동작 및 라이트 동작 중 어느 하나를 수행하는 것을 특징으로 하는 메모리 액세스 제어 장치.
- 메모리 액세스 제어 방법에 있어서,메모리에 리드/라이트 하려는 데이터를 적어도 하나의 FIFO에 임시 저장하는 단계;상기 메모리에 대한 데이터 리드/라이트 동작을 요청하는 적어도 하나의 요청 신호를 순차적으로 발생시키는 단계; 및상기 요청 신호에 대한 확인 신호에 응답하여 상기 메모리에 대해 리드/라이트될 출력 데이터를, 상기 적어도 하나의 FIFO메모리에 임시 저장된 상기 데이터로부터 상기 확인 신호가 수신되기 이전에 생성하는 출력 데이터 생성 단계를 포함하는 것을 특징으로 하는 메모리 액세스 제어 방법.
- 제4항에 있어서,상기 확인 신호가 수신되면 상기 출력 버퍼에 저장된 상기 출력 데이터를 인터페이스 마스터로 전송하는 것을 단계를 더 포함하는 것을 특징으로 하는 메모리 액세스 제어 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060138773A KR101116613B1 (ko) | 2006-12-29 | 2006-12-29 | 메모리 액세스 제어 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060138773A KR101116613B1 (ko) | 2006-12-29 | 2006-12-29 | 메모리 액세스 제어 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080062694A KR20080062694A (ko) | 2008-07-03 |
KR101116613B1 true KR101116613B1 (ko) | 2012-03-07 |
Family
ID=39814793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060138773A KR101116613B1 (ko) | 2006-12-29 | 2006-12-29 | 메모리 액세스 제어 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101116613B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101240896B1 (ko) * | 2011-12-13 | 2013-03-11 | 전자부품연구원 | 디지털 방송 서비스를 위한 다중화기의 버스 중재기 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5465343A (en) * | 1993-04-30 | 1995-11-07 | Quantum Corporation | Shared memory array for data block and control program storage in disk drive |
KR20030073992A (ko) * | 2002-03-14 | 2003-09-19 | 삼성전자주식회사 | 멀티 액세스 fifo 메모리 |
JP2004171209A (ja) * | 2002-11-19 | 2004-06-17 | Matsushita Electric Ind Co Ltd | 共有メモリデータ転送装置 |
KR20040056297A (ko) * | 2002-12-23 | 2004-06-30 | 한국전자통신연구원 | 직접 메모리 액세스 기능을 구비한 광대역 입출력 장치 및그 방법 |
-
2006
- 2006-12-29 KR KR1020060138773A patent/KR101116613B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5465343A (en) * | 1993-04-30 | 1995-11-07 | Quantum Corporation | Shared memory array for data block and control program storage in disk drive |
KR20030073992A (ko) * | 2002-03-14 | 2003-09-19 | 삼성전자주식회사 | 멀티 액세스 fifo 메모리 |
JP2004171209A (ja) * | 2002-11-19 | 2004-06-17 | Matsushita Electric Ind Co Ltd | 共有メモリデータ転送装置 |
KR20040056297A (ko) * | 2002-12-23 | 2004-06-30 | 한국전자통신연구원 | 직접 메모리 액세스 기능을 구비한 광대역 입출력 장치 및그 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20080062694A (ko) | 2008-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20040107265A1 (en) | Shared memory data transfer apparatus | |
JP2007087388A (ja) | メモリコントローラ及びそれを含んだデータ処理システム | |
US9015380B2 (en) | Exchanging message data in a distributed computer system | |
KR20150095139A (ko) | 채널 버퍼로의 직접 접근이 가능한 직접 메모리 접근 컨트롤러 및 시스템. | |
JP4902640B2 (ja) | 集積回路、及び集積回路システム | |
JP2005084907A (ja) | メモリ帯域制御装置 | |
KR101116613B1 (ko) | 메모리 액세스 제어 장치 및 방법 | |
JP2006338538A (ja) | ストリームプロセッサ | |
US5430844A (en) | Communication control system for transmitting, from one data processing device to another, data along with an identification of the address at which the data is to be stored upon reception | |
KR101496340B1 (ko) | 프로세서 및 메모리 제어 방법 | |
JP2015127935A (ja) | 情報処理装置、および情報処理方法 | |
CN116775524B (zh) | 一种dma链表模式的lli动态写入方法 | |
JP3356110B2 (ja) | 機能拡張システム及びそれに用いるデータ転送方法 | |
JPH07271654A (ja) | コントローラ | |
TWI764311B (zh) | 記憶體存取方法及智慧處理裝置 | |
JP3204297B2 (ja) | Dma転送制御装置 | |
JP3012530B2 (ja) | イメージメモリアダプタ | |
KR20020051545A (ko) | 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법 | |
TW525084B (en) | Data processing arrangement and memory system | |
JP2806376B2 (ja) | 画像処理装置および画像処理方法 | |
JP2595808B2 (ja) | 分散処理用メモリ装置 | |
JP2007219874A (ja) | データ転送制御装置及びデータ転送制御方法 | |
JPH07334453A (ja) | メモリアクセスシステム | |
CN117290897A (zh) | 加解密电路、处理系统及电子设备 | |
JP2011013812A (ja) | メモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
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: 20160128 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170125 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20200131 Year of fee payment: 9 |