KR20120052733A - 메모리 접근 주소 변환 장치 및 방법 - Google Patents

메모리 접근 주소 변환 장치 및 방법 Download PDF

Info

Publication number
KR20120052733A
KR20120052733A KR1020100114020A KR20100114020A KR20120052733A KR 20120052733 A KR20120052733 A KR 20120052733A KR 1020100114020 A KR1020100114020 A KR 1020100114020A KR 20100114020 A KR20100114020 A KR 20100114020A KR 20120052733 A KR20120052733 A KR 20120052733A
Authority
KR
South Korea
Prior art keywords
tile
address
tiles
memory
coordinate
Prior art date
Application number
KR1020100114020A
Other languages
English (en)
Other versions
KR101664112B1 (ko
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 KR1020100114020A priority Critical patent/KR101664112B1/ko
Priority to US13/297,492 priority patent/US8937624B2/en
Priority to EP11189341.8A priority patent/EP2453360B1/en
Publication of KR20120052733A publication Critical patent/KR20120052733A/ko
Application granted granted Critical
Publication of KR101664112B1 publication Critical patent/KR101664112B1/ko

Links

Images

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/10Address translation
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Image Input (AREA)
  • Storing Facsimile Image Data (AREA)

Abstract

메모리 접근 주소 변환 장치 및 방법이 제공된다. 메모리 접근 주소 변환 장치는, 입력 영상을 구성하는 픽셀들을 복수의 타일들로 구분하고, 복수의 타일들 중 연속하는 타일들을 서로 다른 뱅크에 저장하기 위한 새로운 메모리 주소를 생성할 수 있다.

Description

메모리 접근 주소 변환 장치 및 방법{METHOD AND APPARATUS FOR TRANSLATING MEMORY ACCESS ADDRESS}
아래의 실시예들은 메모리 접근 주소 변환 장치 및 방법에 관한 것으로, 보다 구체적으로는 뱅크 인터리빙(bank interleaving)을 이용하여 메모리 접근 주소를 변환하는 장치 및 방법에 관한 것이다.
일반적으로, DRAM(Dynamic Random Access Memory), SDRAM(Asynchronous DRAM) 등의 메모리는 복수개의 뱅크(bank)로 구성된다. 메모리 시스템은, 복수의 뱅크들 각각에 메모리 주소를 할당한다.
일례로, 도 1 (a)를 참조하면, 메모리 시스템은, 뱅크(bank), 로우(row), 및 컬럼(column) 순서(10)로 메모리 주소를 할당할 수 있다. 이때, 메모리 주소 중 최상위 두 비트(110)는 복수의 뱅크들을 구분하는 뱅크 주소(bank address)로 이용되고, 상위 12 비트들(120)은 뱅크를 구성하는 복수의 로우(row)들을 구분하는 로우 주소(row address)로 이용되고, 나머지 하위 9 비트들(130)은 로우를 구성하는 복수의 컬럼(column)들을 구분하는 컬럼 주소(column address)로 이용된다. 이처럼, 하나의 메모리는 복수의 뱅크들로 구성되고, 뱅크는 복수의 로우(row)로 구성되고, 로우는 다시 복수의 컬럼들로 구성될 수 있다. 이때, 16 비트 출력(output)을 갖는 DRAM의 경우, 뱅크의 크기는 4Mbye가 될 수 있다.
다른 예로, 도 1 (b)와 같이, 메모리 시스템은, 로우(row), 뱅크(bank), 및 컬럼(column) 순서(20)로 메모리 주소를 할당할 수 있다. 이때, 하나의 메모리는 복수의 로우로 구성되고, 로우는 복수의 뱅크로 구성되고, 뱅크는 복수의 컬럼들로 구성될 수 있다. 여기서, 16 비트 출력(output)을 갖는 DRAM의 경우, 뱅크의 크기는 1Kbyte가 될 수 있다.
일반적으로, 메모리 시스템은, 입력 영상들을 매크로 블록(macro block) 단위로 메모리에 저장한다. 이때, 연속하는 매크로 블록들 각각에 포함된 데이터들은 동일한 뱅크에 저장된다.
그런데, 뱅크에 저장된 데이터들을 리딩하는 경우, 데이터마다 리딩 준비 시간이 필요하다. 이에 따라, 동일한 뱅크에 저장된 복수의 데이터들을 리딩하는 경우, 데이터마다 발생하는 리딩 준비 시간으로 인해 오버헤드(overhead)가 증가한다.
따라서, 메모리 참조에 따른 리딩 준비 시간을 감소 또는 제거하여 오버헤드를 줄일 수 있는 메모리 참조 기술이 필요하다.
본 메모리 접근 주소 변환 장치는, 입력 영상을 구성하는 복수의 픽셀들을 타일 단위로 구분하고, 상기 구분된 복수의 타일들 각각에 메모리 주소를 할당하는 주소 할당부, 상기 할당된 메모리 주소를 이용하여 상기 복수의 타일들 중 연속하는 타일들을 서로 다른 메모리 뱅크(bank)에 저장하기 위한 새로운 메모리 주소를 생성하는 주소 생성부 -상기 타일은 상기 입력 영상을 구성하는 복수의 픽셀들 각각의 픽셀 정보를 포함함-, 및 상기 새로운 메모리 주소에 상기 복수의 타일들을 각각 저장하는 메모리 제어부를 포함할 수 있다.
또한, 상기 주소 생성부는, 상기 할당된 메모리 주소 중 타일의 Y 좌표 주소를 나타내는 비트와 타일의 X 좌표 주소를 나타내는 비트를 이용하여 상기 새로운 메모리 주소를 생성할 수 있다. 이때, 상기 할당된 메모리 주소는, 상기 타일에 포함된 픽셀들이 속하는 프레임 정보, 상기 타일의 Y 좌표 주소, 및 상기 타일의 X 좌표 주소를 포함할 수 있다.
또한, 상기 메모리 제어부는, 상기 복수의 타일들 중 어느 하나의 타일을 기준으로 상, 하, 좌, 우 방향으로 연속하는 타일들을 상기 새로운 메모리 주소에 기초하여 서로 다른 뱅크에 저장할 수 있다.
또한, 상기 복수의 타일들 중 연속하는 타일들을 서로 다른 뱅크에서 리딩(reading)하는 타일 리딩부, 및 메모리 접근 주소 변환 방법은, 입력 영상을 구성하는 복수의 픽셀들을 타일 단위로 구분하고, 상기 구분된 복수의 타일들 각각에 메모리 주소를 할당하는 단계, 상기 할당된 메모리 주소를 이용하여 상기 복수의 타일들 중 연속하는 타일들을 서로 다른 메모리 뱅크(bank)에 저장하기 위한 새로운 메모리 주소를 생성하는 단계 -상기 타일은 상기 입력 영상을 구성하는 복수의 픽셀들 각각의 픽셀 정보를 포함함-, 및 상기 새로운 메모리 주소에 상기 복수의 타일들을 각각 저장하는 단계를 포함할 수 있다.
또한, 상기 새로운 메모리 주소를 생성하는 단계는, 상기 타일의 Y 좌표 주소를 나타내는 최하위 2 비트와 상기 타일의 X 좌표 주소를 나타내는 최상위 2 비트를 각각 XOR 연산하는 단계, 및 상기 XOR 연산 결과 값을 상기 새로운 메모리 주소의 X 좌표 주소를 나타내는 최상위 2비트에 할당하는 단계를 포함할 수 있다.
또한, 상기 저장하는 단계는, 상기 복수의 타일들 중 어느 하나의 타일을 기준으로 상, 하, 좌, 우 방향으로 연속하는 타일들을 상기 새로운 메모리 주소에 기초하여 서로 다른 뱅크에 저장할 수 있다.
또한, 상기 복수의 타일들 중 연속하는 타일들을 서로 다른 뱅크에서 리딩(reading)하는 단계, 및 상기 리딩된 타일을 출력하는 단계
본 발명에 따르면, 입력 영상을 구성하는 복수의 타일들 중 연속하는 타일들을 서로 다른 뱅크(bank)에 저장함에 따라, 메모리 참조(access) 시 발생하는 오버헤드를 감소시킬 수 있다.
도 1a 및 도 1b는 메모리를 구성하는 복수의 뱅크들에 메모리 주소를 할당하는 구성을 설명하기 위해 제공되는 도면이다.
도 2는 메모리 접근 주소 변환 장치의 구성을 도시한 블럭도이다.
도 3은 메모리 주소가 뱅크, 로우, 컬럼 주소 순서로 구성된 경우를 도시한 도면이다.
도 4는 메모리 주소가 로우 주소, 뱅크 주소, 컬럼 주소 순서로 구성된 경우를 도시한 도면이다.
도 5는 도 3 및 도 4의 메모리 주소 구조에서 타일 단위로 메모리 주소를 할당하는 구성을 설명하기 위해 제공되는 도면이다.
도 6 및 도 7은 타일에 할당된 주소를 이용하여 새로운 메모리 주소를 생성하는 과정을 설명하기 위해 제공되는 도면이다.
도 8 및 도 9는 메모리 뱅크에 저장된 타일들을 출력하는 과정을 설명하기 위해 제공되는 도면이다.
도 10은 복수의 타일들 중 연속하는 타일들을 서로 다른 뱅크에 저장하는 과정을 설명하기 위해 제공되는 흐름도이다.
도 11은 연속하는 복수의 타일들을 리딩 및 출력하는 과정을 설명하기 위해 제공되는 흐름도이다.
이하에서, 첨부된 도면을 참조하여 본 발명에 따른 실시예들을 상세히 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 2는 메모리 접근 주소 변환 장치의 구성을 도시한 블럭도이다.
도 2에 따르면, 메모리 접근 주소 변환 장치(200)는 주소 할당부(210), 주소 생성부(220), 메모리 제어부(230), 타일 리딩부(240), 및 타일 출력부(250)를 포함할 수 있다. 이때, 메모리 접근 주소 변환 장치(200)는 입력 영상을 타일(tile) 단위로 메모리(300)에 저장하고, 메모리(300)에 저장된 입력 영상을 타일 단위로 리딩하여 전송 또는 재생할 수 있다.
먼저, 주소 할당부(210)는 입력 영상을 구성하는 복수의 픽셀들을 타일 단위로 구분하고, 구분된 복수의 타일들 각각에 메모리 주소를 할당할 수 있다. 이때, 타일은 입력 영상을 구성하는 복수의 픽셀들 각각의 픽셀 정보를 포함할 수 있다. 그리고, 픽셀 정보는, 픽셀의 휘도 정보(Y), 및 색차 정보(U, V)를 포함할 수 있다. 여기서, 타일들 각각에 메모리 주소를 할당하는 과정은 도 3 내지 도 5를 참조하여 후술하기로 한다.
주소 생성부(220)는 타일들 각각에 할당된 메모리 주소를 이용하여 복수의 타일들 각각에 대한 새로운 메모리 주소를 생성할 수 있다. 이때, 주소 생성부(220)는 복수의 타일들 중 상, 하, 좌, 우 방향으로 연속하는 타일들이 서로 다른 메모리 뱅크에 저장되도록 새로운 메모리 주소를 생성할 수 있다. 여기서, 새로운 메모리 주소를 생성하는 과정은 도 6을 참조하여 후술하기로 한다.
메모리 제어부(230)는 생성된 새로운 메모리 주소에 기초하여 복수의 타일들 각각을 메모리(300)의 뱅크(bank)에 저장할 수 있다. 여기서, 새로운 메모리 주소는 연속하는 타일들이 서로 다른 뱅크에 저장되도록 생성될 수 있다. 이에 따라, 메모리 제어부(230)는 새로운 메모리 주소에 기초하여 복수의 타일들 중 연속하는 타일들을 서로 다른 뱅크에 저장할 수 있다. 이때, 메모리 제어부(230)는 뱅크(bank)의 영역 중 새로운 메모리 주소가 나타내는 위치에 해당 타일에 속하는 복수의 픽셀들의 픽셀 정보들을 저장할 수 있다.
일례로, 도 3 및 도 4를 참조하면, 메모리 제어부(230)는 타일 129를 기준으로 상, 하, 좌, 우 방향으로 연속하는 타일 2, 타일 128, 및 타일 130을 서로 다른 뱅크에 저장할 수 있다. 다시 말해, 메모리 제어부(230)는 타일 129는 뱅크 0, 타일 2는 뱅크 1, 타일 128은 뱅크 2, 타일 130은 뱅크 3에 저장할 수 있다. 마찬가지로, 메모리 제어부(230)는 타일 2를 기준으로 연속하는 타일 1, 타일 129, 및 타일 3을 서로 다른 뱅크에 저장할 수 있다. 그러면, 타일 2는 뱅크 1, 타일 1은 뱅크 3, 타일 3은 뱅크 2, 타일 129는 뱅크 0에 저장될 수 있다. 이에 따라, 자신을 기준으로 상, 하, 좌, 우 방향으로 바로 이웃하는 타일들은 서로 다른 뱅크에 저장될 수 있다.
타일 리딩부(240)는 타일 단위로 구분된 입력 영상에서 연속하는 타일들을 서로 다른 뱅크에서 리딩(reading)할 수 있다. 그러면, 타일 출력부(250)는 리딩된 타일에 속하는 픽셀들의 픽셀 정보를 포트(port)를 통해 출력할 수 있다.
이때, 타일 리딩부(240)는 연속하는 타일들 중 현재 타일을 출력하는 동안 다른 뱅크에 저장된 타임 타일을 리딩할 수 있다. 그리고, 타일 출력부(250)는 현재 타일의 출력이 완료되는 시점에 바로 연속하여 다음 타일을 포트를 통해 출력할 수 있다.
일례로, 좌, 우 방향으로 연속하는 타일 1 및 타일 2를 리딩하고자 하는 경우, 타일 리딩부(240)는 뱅크 3에 저장된 타일 1에 속하는 픽셀들의 픽셀 정보들을 리딩할 수 있다. 그러면, 타일 출력부(250)는 리딩된 타일 1에 속하는 픽셀들의 픽셀 정보들을 출력할 수 있다. 이때, 타일 리딩부(240)는 타일 1에 속하는 픽셀들의 픽셀 정보들이 포트를 통해 출력되는 동안 뱅크 1에 저장된 타일 2에 속하는 픽셀들의 픽셀 정보들을 리딩할 수 있다. 그리고, 타일 출력부(250)는 타일 1의 출력이 완료되는 시점에 타일 2에 속하는 픽셀들의 픽셀 정보들을 포트를 통해 출력할 수 있다.
이하에서는, 도 3 내지 도 5를 참조하여 타일 단위로 메모리 주소를 할당하는 구성에 대해 설명하기로 한다.
도 3은 메모리 주소가 뱅크, 로우, 컬럼 주소 순서로 구성된 경우를 도시한 도면이다.
도 3과 같이, 메모리 주소를 나타내는 비트들이 뱅크 주소, 로우 주소, 컬럼 주소 순서로 구성된 경우, 주소 할당부(210)는 뱅크에 포함된 복수의 타일들 각각에 메모리 주소를 할당할 수 있다. 이때, 하나의 뱅크(310)는 128×128 개의 타일들을 포함할 수 있다. 그리고, 하나의 타일은 16×4 개의 휘도 정보(Y)와 16×2 개의 색차 정보(U, V)를 포함할 수 있다. 이때, 타일의 크기는 16×8이 될 수 있다.
도 4는 메모리 주소가 로우 주소, 뱅크 주소, 컬럼 주소 순서로 구성된 경우를 도시한 도면이다.
도 4와 같이, 메모리 주소를 나타내는 비트들이 로우 주소, 뱅크 주소, 컬럼 주소 순서로 구성된 경우, 주소 할당부(210)는 뱅크에 포함된 복수의 타일들 각각에 메모리 주소를 할당할 수 있다. 이때, 하나의 뱅크(410)는 128×1 개의 타일들을 포함할 수 있다. 그리고, 하나의 타일은 16×4 개의 휘도 정보(Y)와 16×2 개의 색차 정보(U, V)를 포함할 수 있다. 여기서, 타일의 크기는 16×8이 될 수 있다.
도 5는 도 3 및 도 4의 메모리 주소 구조에서 타일 단위로 메모리 주소를 할당하는 구성을 설명하기 위해 제공되는 도면이다.
도 5에 따르면, 주소 할당부(210)는 매크로 블록(macro block: 510)을 타일 단위로 분할하고, 분할된 타일(540~570)마다 메모리 주소를 할당할 수 있다. 여기서, 매크로 블록은 복수의 픽셀들의 휘도 정보를 포함할 수 있다. 이때, 주소 할당부(210)는 매크로 블록에 포함된 픽셀들의 휘도 정보(Y)와 휘도 정보에 대응하는 색차 정보(U, V)를 이용하여 타일을 생성할 수 있다.
일례로, 매크로 블록의 크기가 16×16인 경우, 주소 할당부(210)는 매크로 블록에 대해 16×6 타일링(tiling)을 수행하여 4개의 타일(540~570)로 분할할 수 있다. 그러면, 타일 1(540)은 제1 휘도 정보(511)와 제1 색차 정보(521, 531)를 포함, 타일 2(550)는 제2 휘도 정보(512)와 제2 색차 정보(522, 532)를 포함, 타일 3(560)는 제3 휘도 정보(513)와 제3 색차 정보(523, 533)를 포함, 타일 4(570)는 제4 휘도 정보(514)와 제4 색차 정보(524, 534)를 포함할 수 있다. 그리고, 주소 할당부(210)는 분할된 타일들 각각에 메모리 주소를 할당할 수 있다.
그리고, 도 6을 참조하면, 주소 할당부(210)는 래스터 주소(raster address) 할당 기법을 이용하여 매크로 블록에 할당된 메모리 주소(610)에서 X 좌표 주소를 나타내는 비트들(611)을 타일의 메모리 주소에서 X 좌표 주소를 나타내는 비트들(621)로 할당할 수 있다. 그리고, 주소 할당부(210)는 매크로 블록의 메모리 주소(610)에서 Y 좌표 주소를 나타내는 비트들 중 최하위 2비트(612)를 제외한 비트들(613)을 타일의 메모리 주소에서 Y 좌표 주소를 나타내는 비트들(625)로 할당할 수 있다. 마찬가지로, 주소 할당부(210)는 매크로 블록의 메모리 주소(610)에서 프레임 주소를 나타내는 비트들(614)을 타일의 메모리 주소에서 프레임 주소를 나타내는 비트들(626)로 할당할 수 있다.
이하에서는 도 6 및 도 7을 참조하여 연속하는 타일들이 서로 다른 뱅크에 저장되도록 뱅크 인터리빙 과정에 대해 설명하기로 한다.
도 6 및 도 7은 타일에 할당된 주소를 이용하여 새로운 메모리 주소를 생성하는 과정을 설명하기 위해 제공되는 도면이다.
주소 생성부(220)는 타일들 각각에 할당된 메모리 주소 중 타일의 Y 좌표 주소 및 X 좌표 주소를 이용하여 새로운 메모리 주소를 생성할 수 있다. 도 6에 따르면, 주소 생성부(220)는 복수의 타일들에 할당된 메모리 주소를 나타내는 비트들(620) 중에서 타일의 Y 좌표 주소를 나타내는 최하위 2비트(624, 523)와 타일의 X 좌표 주소를 나타내는 최상위 2비트(622, 621)을 이용하여 새로운 메모리 주소를 생성할 수 있다.
일례로, 주소 생성부(220)는 타일의 Y 좌표 주소를 나타내는 최하위 첫번째 비트(623)와 타일의 X 좌표 주소를 나타내는 최상위 첫번째 비트(622)를 XOR 연산하고, 연산 결과 값을 새로운 메모리 주소의 X 좌표 주소를 나타내는 최상위 비트(631)에 할당할 수 있다. 그리고, 주소 생성부(220)는 타일의 Y 좌표 주소를 나타내는 최하위 두번째 비트(624)와 타일의 X 좌표 주소를 나타내는 최상위 두번째 비트(621)를 XOR 연산하고, 연산 결과 값을 새로운 메모리 주소의 X 좌표 주소를 나타내는 최상위 두번째 비트(632)에 할당할 수 있다.
이때, 주소 생성부(220)는 타일들에 할당된 메모리 주소를 나타내는 비트들(620) 중에서 프레임 주소를 나타내는 비트들(626) 및 Y 좌표 주소를 나타내는 비트들(625)을 새로운 메모리 주소에서 프레임 주소 및 Y 좌표 주소를 나타내는 비트들에 그대로 이용할 수 있다. 다시 말해, 주소 생성부(220)는 타일들에 할당된 메모리 주소에서 프레임 주소를 나타내는 비트들(626)에 저장된 값들을 새로운 메모리 주소의 프레임 주소를 나타내는 비트들(634)에 저장할 수 있다. 그리고, 주소 생성부(220)는 타일들에 할당된 메모리 주소에서 Y 좌표 주소를 나타내는 비트들(625)에 저장된 값들을 새로운 메모리 주소의 Y 좌표 주소를 나타내는 비트들(634)에 저장할 수 있다.
그러면, 복수의 타일들 중 상, 하, 좌, 우 방향으로 연속하는 타일들은 도 7과 같이 서로 다른 뱅크에 저장될 수 있다.
도 8 및 도 9는 메모리 뱅크에 저장된 타일들을 출력하는 과정을 설명하기 위해 제공되는 도면이다.
도 8은 입력 영상 중 8×8 블록에 해당하는 타일들을 출력하는 구성을 설명하기 위한 도면이고, 도 9는 16×16 블록에 해당하는 타일들을 출력하는 구성을 설명하기 위한 도면이다.
도 8에 따르면, 8×8 블록에 해당하는 타일들은 새로운 메모리 주소에 기초하여 뱅크 0, 뱅크 2, 및 뱅크 1과 같이, 서로 다른 뱅크에 저장될 수 있다. 그러면, 타일 리딩부(240)는 뱅크 0에서 티일을 리딩하고, 타일 출력부(250)는 뱅크 0에서 리딩된 타일을 포트를 통해 출력할 수 있다. 그러면, 타일 리딩부(240)는 뱅크 0에서 리딩된 타일을 출력하는 동안 뱅크 2에 저장된 타일을 리딩(820)할 수 있다.
이때, 타일 출력부(250)는 뱅크 0에서 리딩된 타일의 출력이 완료되는 시점(830)에 뱅크 2에서 리딩된 타일을 포트를 통해 출력할 수 있다. 마찬가지로, 타일 리딩부(240)는 뱅크 2에서 리딩된 타일을 출력하는 동안 뱅크 1에 저장된 타일을 리딩(840)할 수 있다. 그리고, 타일 출력부(250)는 뱅크 1에서 리딩된 타일의 출력이 완료되는 시점(850)에 뱅크 1에서 리딩된 타일을 포트를 통해 출력할 수 있다. 그러면, 8×8 블록에 해당하는 타일들을 출력하는 경우, 타일들이 동일한 뱅크에 저장된 경우보다 서로 다른 뱅크에 저장된 경우에 리딩 및 출력하는데 소요되는 사이클이 72에서 54 사이클(cycle)로 감소될 수 있다.
동일한 방법으로, 도 9에 따르면, 16×16 블록에 해당하는 타일들 중 연속하는 타일들은 새로운 메모리 주소에 기초하여 뱅크 0, 뱅크 2, 뱅크 1, 뱅크 3, 그리고 뱅크 0과 같이, 서로 다른 뱅크에 저장될 수 있다. 다시 말해, 16×16 블록에 해당하는 타일들은 서로 다른 뱅크에 저장될 수도 있고 동일한 뱅크에 저장될 수도 있지만, 상, 하, 좌, 우 방향으로 바로 이웃하는 타일들은 서로 다른 뱅크에 저장될 수 있다.
그러면, 복수의 타일들을 출력하는 명령이 수신된 경우, 타일 리딩부(240)는 현재 타일이 출력되는 동안 다른 뱅크에 저장된 다음 타일을 리딩(910)할 수 있다. 그리고, 타일 출력부(250)는 현재 타일의 출력이 완료되는 시점(920)에 다른 뱅크에 저장된 다음 타일을 출력할 수 있다. 그러면, 16×16 블록에 해당하는 타일들을 출력하는 경우, 타일들이 동일한 뱅크에 저장된 경우보다 서로 다른 뱅크에 저장된 경우에 리딩 및 출력하는데 소요되는 사이클이 120에서 84 사이클(cycle)로 감소될 수 있다.
도 10은 복수의 타일들 중 연속하는 타일들을 서로 다른 뱅크에 저장하는 과정을 설명하기 위해 제공되는 흐름도이다.
먼저, 주소 할당부(210)는 타일링 기법을 이용하여 복수의 타일들 각각에 메모리 주소를 할당할 수 있다(1010). 이때, 주소 할당부(210)는 도 5와 같이, 매크로 블록(510)을 복수의 타일들로 분할하고, 분할된 타일들 각각에 메모리 주소를 할당할 수 있다. 다시 말해, 주소 할당부(210)는, 타일에 속하는 복수의 픽셀들의 픽셀 정보들을 저장하기 위한 메모리 주소를 할당할 수 있다. 여기서, 픽셀 정보는, 픽셀의 휘도 정보(Y) 및 색차 정보(U, V)를 포함할 수 있다.
이어, 주소 생성부(220)는 타일의 X 좌표 주소 및 Y 좌표 주소를 나타내는 비트들을 이용하여 새로운 메모리 주소를 생성할 수 있다(1020). 이때, 주소 생성부(220)는 복수의 타일들 중 어느 하나의 타일을 기준으로 상, 하, 좌, 우 방향으로 연속하는 타일들이 서로 다른 뱅크에 저장되도록 새로운 메모리 주소를 생성할 수 있다.
일례로, 도 6을 참조하면, 주소 생성부(220)는 타일들에 할당된 타일의 메모리 주소를 나타내는 비트들(620) 중에서 X 좌표 주소를 나타내는 최상위 2비트와 Y 좌표 주소를 나타내는 최하위 2비트를 각각 XOR 연산하여 새로운 메모리 주소를 생성할 수 있다. 이때, 주소 생성부(220)는 XOR 연산 결과값들을 새로운 메모리 주소를 나타내는 비트들(630) 중에서 X 좌표 주소를 나타내는 최상위 2비트(631, 320)에 각각 할당할 수 있다.
그러면, 메모리 제어부(230)는 새로운 메모리 주소에 기초하여 연속하는 타일들을 서로 다른 뱅크에 저장할 수 있다(1030). 다시 말해, 메모리 제어부(230)는 새로운 메모리 주소를 나타내는 비트들(630)에 기초하여 복수의 타일들에 속하는 픽셀들의 픽셀 정보들을 해당 메모리 주소에 저장할 수 있다. 그러면, 도 7과 같이, XOR 연산을 통해 생성된 X 좌표 주소에 따라 상, 하, 좌, 우 방향으로 바로 이웃하는 타일들은 서로 다른 뱅크에 저장될 수 있다.
도 11은 연속하는 복수의 타일들을 리딩 및 출력하는 과정을 설명하기 위해 제공되는 흐름도이다.
도 11에 따르면, 타일 리딩부(240)는 매크로 블록에 해당하는 복수의 타일들을 리딩하는 명령을 수신할 수 있다(1110). 여기서, 입력 영상을 복수의 매크로 블록으로 구성되고, 매크로 블록은 복수의 타일들로 구성될 수 있다.
이어, 타일 리딩부(240)는 리딩 명령이 수신된 복수의 타일들 중 현재 타일이 출력되는 동안 다른 뱅크에 저장된 다음 타일을 리딩할 수 있다(1120). 그러면, 타일 출력부(250)는 현재 타일의 출력이 완료되는 시점에 다른 뱅크에 저장된 다음 타일을 출력할 수 있다(1130).
일례로, 도9를 참조하면, 매크로 블록에 해당하는 파일들이 상하 방향으로 연속하고, 상하 방향으로 연속하는 타일들을 리딩하는 명령이 수신된 경우, 타일 리딩부(240)는 뱅크 0에 저장된 현재 타일을 리딩하고, 타일 출력부(250)는 현재 타일의 출력이 완료되는 시점(920)에 뱅크 2에 저장된 다음 타일을 출력할 수 있다. 이때, 타일 리딩부(240)는 현재 타일이 출력되는 동안 뱅크 2에 저장된 다음 타일을 리딩(910)할 수 있다. 이처럼, 메모리 접근 주소 변환 장치는 연속하는 타일들을 서로 다른 뱅크에 저장하고, 서로 다른 뱅크에 저장된 연속하는 타일들 중 어느 하나의 타일을 출력하는 동안 다른 뱅크에 저장된 타일을 리딩할 수 있다. 이에 따라, 동일한 뱅크에 저장된 연속하는 타일들을 리딩함에 따라 소요되는 오버헤드를 감소시킬 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 상황 정보 모델 생성 장치
110: 센서 정보 수신부
120: 데이터베이스
130: 후보 모델 결정부
131: 정보 확인부
132: 결정부
140: 최종 모델 생성부
150: 상황 추론부
160: 인터페이스 제공부

Claims (15)

  1. 입력 영상을 구성하는 복수의 픽셀들을 타일 단위로 구분하고, 상기 구분된 복수의 타일들 각각에 메모리 주소를 할당하는 주소 할당부;
    상기 할당된 메모리 주소를 이용하여 상기 복수의 타일들 중 연속하는 타일들을 서로 다른 메모리 뱅크(bank)에 저장하기 위한 새로운 메모리 주소를 생성하는 주소 생성부 -상기 타일은 상기 입력 영상을 구성하는 복수의 픽셀들 각각의 픽셀 정보를 포함함-; 및
    상기 새로운 메모리 주소에 상기 복수의 타일들을 각각 저장하는 메모리 제어부
    를 포함하는 메모리 접근 주소 변환 장치.
  2. 제1항에 있어서,
    상기 주소 생성부는,
    상기 할당된 메모리 주소 중 타일의 Y 좌표 주소를 나타내는 비트와 타일의 X 좌표 주소를 나타내는 비트를 이용하여 상기 새로운 메모리 주소를 생성하고,
    상기 할당된 메모리 주소는, 상기 타일에 포함된 픽셀들이 속하는 프레임 정보, 상기 타일의 Y 좌표 주소, 및 상기 타일의 X 좌표 주소를 포함하는 것을 특징으로 하는 메모리 접근 주소 변환 장치.
  3. 제1항에 있어서,
    상기 주소 생성부는,
    상기 타일의 Y 좌표 주소를 나타내는 최하위 2 비트와 상기 타일의 X 좌표 주소를 나타내는 최상위 2 비트를 각각 XOR 연산하고, 상기 XOR 연산 결과 값을 상기 새로운 메모리 주소의 X 좌표 주소를 나타내는 최상위 2비트에 할당하는 것을 특징으로 하는 메모리 접근 주소 변환 장치.
  4. 제1항에 있어서,
    상기 메모리 제어부는,
    상기 복수의 타일들 중 어느 하나의 타일을 기준으로 상, 하, 좌, 우 방향으로 연속하는 타일들을 상기 새로운 메모리 주소에 기초하여 서로 다른 뱅크에 저장하는 것을 특징으로 하는 메모리 접근 주소 변환 장치.
  5. 제1항에 있어서,
    상기 복수의 타일들 중 연속하는 타일들을 서로 다른 뱅크에서 리딩(reading)하는 타일 리딩부; 및
    상기 리딩된 타일을 출력하는 타일 출력부
    를 더 포함하는 메모리 접근 주소 변환 장치.
  6. 제5항에 있어서,
    상기 타일 리딩부는,
    상기 연속하는 타일들 중 현재 타일을 출력하는 동안 다른 뱅크에 저장된 다음 타일을 리딩하는 것을 특징으로 하는 메모리 접근 주소 변환 장치.
  7. 제5항에 있어서,
    상기 타일 출력부는,
    상기 연속하는 타일들 중 현재 타일의 출력이 완료되는 시점에 바로 다음 타일을 출력하는 것을 특징으로 하는 메모리 접근 주소 변환 장치.
  8. 입력 영상을 구성하는 복수의 픽셀들을 타일 단위로 구분하고, 상기 구분된 복수의 타일들 각각에 메모리 주소를 할당하는 단계;
    상기 할당된 메모리 주소를 이용하여 상기 복수의 타일들 중 연속하는 타일들을 서로 다른 메모리 뱅크(bank)에 저장하기 위한 새로운 메모리 주소를 생성하는 단계 -상기 타일은 상기 입력 영상을 구성하는 복수의 픽셀들 각각의 픽셀 정보를 포함함-; 및
    상기 새로운 메모리 주소에 상기 복수의 타일들을 각각 저장하는 단계
    를 포함하는 메모리 접근 주소 변환 방법.
  9. 제8항에 있어서,
    상기 새로운 메모리 주소를 생성하는 단계는,
    상기 할당된 메모리 주소 중 타일의 Y 좌표 주소를 나타내는 비트와 타일의 X 좌표 주소를 나타내는 비트를 이용하여 상기 새로운 메모리 주소를 생성하고,
    상기 할당된 메모리 주소는, 상기 타일에 포함된 픽셀들이 속하는 프레임 정보, 상기 타일의 Y 좌표 주소, 및 상기 타일의 X 좌표 주소를 포함하는 것을 특징으로 하는 메모리 접근 주소 변환 방법.
  10. 제8항에 있어서,
    상기 새로운 메모리 주소를 생성하는 단계는,
    상기 타일의 Y 좌표 주소를 나타내는 최하위 2 비트와 상기 타일의 X 좌표 주소를 나타내는 최상위 2 비트를 각각 XOR 연산하는 단계; 및
    상기 XOR 연산 결과 값을 상기 새로운 메모리 주소의 X 좌표 주소를 나타내는 최상위 2비트에 할당하는 단계
    를 포함하는 메모리 접근 주소 변환 방법.
  11. 제8항에 있어서,
    상기 저장하는 단계는,
    상기 복수의 타일들 중 어느 하나의 타일을 기준으로 상, 하, 좌, 우 방향으로 연속하는 타일들을 상기 새로운 메모리 주소에 기초하여 서로 다른 뱅크에 저장하는 것을 특징으로 하는 메모리 접근 주소 변환 방법.
  12. 제8항에 있어서,
    상기 복수의 타일들 중 연속하는 타일들을 서로 다른 뱅크에서 리딩(reading)하는 단계; 및
    상기 리딩된 타일을 출력하는 단계
    를 더 포함하는 메모리 접근 주소 변환 방법.
  13. 제12항에 있어서,
    상기 리딩하는 단계는,
    상기 연속하는 타일들 중 현재 타일을 출력하는 동안 다른 뱅크에 저장된 다음 타일을 리딩하는 것을 특징으로 하는 메모리 접근 주소 변환 방법.
  14. 제12항에 있어서,
    상기 출력하는 단계는,
    상기 연속하는 타일들 중 현재 타일의 출력이 완료되는 시점에 바로 다음 타일을 출력하는 것을 특징으로 하는 메모리 접근 주소 변환 방법.
  15. 제 8 항 내지 제 14 항 중 어느 하나의 항에 기재된 방법을 수행하기 위한 프로그램이 기록된 기록매체.
KR1020100114020A 2010-11-16 2010-11-16 메모리 접근 주소 변환 장치 및 방법 KR101664112B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100114020A KR101664112B1 (ko) 2010-11-16 2010-11-16 메모리 접근 주소 변환 장치 및 방법
US13/297,492 US8937624B2 (en) 2010-11-16 2011-11-16 Method and apparatus for translating memory access address
EP11189341.8A EP2453360B1 (en) 2010-11-16 2011-11-16 Method and apparatus for translating memory access address

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100114020A KR101664112B1 (ko) 2010-11-16 2010-11-16 메모리 접근 주소 변환 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120052733A true KR20120052733A (ko) 2012-05-24
KR101664112B1 KR101664112B1 (ko) 2016-10-14

Family

ID=45092230

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100114020A KR101664112B1 (ko) 2010-11-16 2010-11-16 메모리 접근 주소 변환 장치 및 방법

Country Status (3)

Country Link
US (1) US8937624B2 (ko)
EP (1) EP2453360B1 (ko)
KR (1) KR101664112B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009441B2 (en) 2012-06-04 2015-04-14 Qualcomm Incorporated Memory channel selection in a multi-channel memory
US9299124B2 (en) * 2012-06-07 2016-03-29 Qualcomm Incorporated Padding for multi-channel memory
US9285997B2 (en) * 2013-10-30 2016-03-15 Intel Corporation Independently selective tile group access with data structuring
EP4268086A1 (en) * 2020-12-23 2023-11-01 Imsys AB A novel data processing architecture and related procedures and hardware improvements

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6784889B1 (en) * 2000-12-13 2004-08-31 Micron Technology, Inc. Memory system and method for improved utilization of read and write bandwidth of a graphics processing system
US7016418B2 (en) * 2001-08-07 2006-03-21 Ati Technologies, Inc. Tiled memory configuration for mapping video data and method thereof

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1140125C (zh) 1999-04-13 2004-02-25 索尼公司 视频处理装置和方法
US7190368B2 (en) 2002-11-27 2007-03-13 Lsi Logic Corporation Method and/or apparatus for video data storage
KR100621137B1 (ko) 2004-02-27 2006-09-13 세이코 엡슨 가부시키가이샤 동화상 부호화 장치 및 동화상 처리장치
KR100761833B1 (ko) 2006-01-13 2007-09-28 삼성전자주식회사 화면의 라인들을 픽셀 단위로 교대로 저장하는 비디오디코딩 장치, 비디오 디코딩 방법 및 기준화면 저장 방법
KR20070079792A (ko) * 2006-02-03 2007-08-08 삼성전자주식회사 디스크리트 타임 발진기를 이용한 모터 구동회로와 그 방법
US7737986B2 (en) * 2006-08-29 2010-06-15 Texas Instruments Incorporated Methods and systems for tiling video or still image data
KR100817057B1 (ko) 2006-08-30 2008-03-26 삼성전자주식회사 동일한 픽셀 데이터 그룹에 포함되는 픽셀 데이터들을메모리의 동일한 뱅크 어드레스로 매핑하는 매핑 방법 및비디오 시스템
DE102007058601A1 (de) 2007-12-04 2009-06-10 Merck Patent Gmbh Sicherheitspigment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6784889B1 (en) * 2000-12-13 2004-08-31 Micron Technology, Inc. Memory system and method for improved utilization of read and write bandwidth of a graphics processing system
US7016418B2 (en) * 2001-08-07 2006-03-21 Ati Technologies, Inc. Tiled memory configuration for mapping video data and method thereof

Also Published As

Publication number Publication date
EP2453360B1 (en) 2015-08-19
KR101664112B1 (ko) 2016-10-14
EP2453360A3 (en) 2013-01-16
EP2453360A2 (en) 2012-05-16
US20120124324A1 (en) 2012-05-17
US8937624B2 (en) 2015-01-20

Similar Documents

Publication Publication Date Title
JP4859390B2 (ja) 画像処理方法及び画像処理装置
US9013479B2 (en) Apparatus and method for tile-based rendering
KR20130084850A (ko) 시차 값을 생성하는 영상 처리 방법 및 장치
KR101664112B1 (ko) 메모리 접근 주소 변환 장치 및 방법
KR20150025594A (ko) 멀티 이미지 레이어 컴포지트 방법
CN106558083A (zh) 一种webp压缩算法帧内预测阶段的加速方法、装置及系统
CN105828081A (zh) 编码方法及编码装置
CN107038678B (zh) 用于执行傅里叶变换的装置和方法
CN102804150B (zh) 数据处理装置、数据处理方法及数据共享系统
US8108661B2 (en) Data processing apparatus and method of controlling the data processing apparatus
JP6530811B2 (ja) 画像処理装置
KR101106080B1 (ko) 데이터 저장 제어 장치, 데이터 저장 제어 방법 및 데이터 저장 제어 프로그램이 기록된 기록 매체
Reza et al. Improving multi task running time in two column boundary allocation method in mesh-based chip multiprocessors using combined migration mechanisms
US9158737B2 (en) SIMD processor and control processor, and processing element with address calculating unit
CN103903247A (zh) 一种图像绘制方法及系统
JP3753678B2 (ja) 多値画像符号化・復号化装置
JP5697475B2 (ja) ラベリング処理装置及びラベリング処理方法
KR101540300B1 (ko) 캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법
CN112380551B (zh) 一种基于双图像的可逆数据隐藏方法与系统
WO2018105655A1 (ja) 画像処理装置、画像処理方法およびプログラム
WO2016139770A1 (ja) 画像処理装置
US10304415B2 (en) Image processing apparatus and image processing method
CN103186512A (zh) 一种透明页面的光栅化处理方法及装置
KR20140125161A (ko) 메모리 장치 및 그의 데이터 처리 방법
JP2008217515A (ja) 画像データアクセス方法

Legal Events

Date Code Title Description
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: 20190927

Year of fee payment: 4