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

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

Info

Publication number
KR101664112B1
KR101664112B1 KR1020100114020A KR20100114020A KR101664112B1 KR 101664112 B1 KR101664112 B1 KR 101664112B1 KR 1020100114020 A KR1020100114020 A KR 1020100114020A KR 20100114020 A KR20100114020 A KR 20100114020A KR 101664112 B1 KR101664112 B1 KR 101664112B1
Authority
KR
South Korea
Prior art keywords
address
tile
tiles
memory
coordinate
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020100114020A
Other languages
English (en)
Other versions
KR20120052733A (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
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Family

ID=45092230

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100114020A Expired - Fee Related 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
WO2022139647A1 (en) 2020-12-23 2022-06-30 Imsys Ab A method and system for rearranging and distributing data of an incoming image for processing by multiple processing clusters

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000062550A1 (fr) 1999-04-13 2000-10-19 Sony Corporation Traitement video, dispositif et support a cet effet
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
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

Also Published As

Publication number Publication date
US20120124324A1 (en) 2012-05-17
US8937624B2 (en) 2015-01-20
EP2453360A2 (en) 2012-05-16
KR20120052733A (ko) 2012-05-24
EP2453360B1 (en) 2015-08-19
EP2453360A3 (en) 2013-01-16

Similar Documents

Publication Publication Date Title
KR101664112B1 (ko) 메모리 접근 주소 변환 장치 및 방법
KR102107077B1 (ko) 컨볼루션 신경망 추론에서 컨볼루션 연산을 수행하기 위한 라인 단위 메모리 관리 방법 및 그 추론 장치
JP2017531885A (ja) 画像合成方法、画像チップ及び画像デバイス
EP3182375B1 (en) Apparatus and method for performing fourier transform
CN109493331B (zh) 一种基于并行计算算法的两景图像重叠区域快速获取方法
CN105335989A (zh) 图像编码方法和图像编码装置
KR102516833B1 (ko) 메모리 장치 및 그 데이터 처리 방법
CN104423900A (zh) 图像打印方法和打印机
CN102804150B (zh) 数据处理装置、数据处理方法及数据共享系统
JP2006318032A (ja) 画像処理方法及び画像処理装置
JP6530811B2 (ja) 画像処理装置
JP2000293432A (ja) バンク可変メモリ
JP3753678B2 (ja) 多値画像符号化・復号化装置
CN102651120B (zh) 用于影像处理的存储器存取方法及影像处理装置
JP5697475B2 (ja) ラベリング処理装置及びラベリング処理方法
JP6801001B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP2018085098A (ja) メモリを管理する方法及びその装置
JPWO2016139770A1 (ja) 画像処理装置
KR20140125161A (ko) 메모리 장치 및 그의 데이터 처리 방법
JP6123510B2 (ja) 半導体装置及び半導体装置の制御方法
CN106331720B (zh) 一种视频解码相关信息存储方法和装置
JP7823217B2 (ja) グラフィックス処理方法、装置およびコンピュータ読取可能な記憶媒体
JP2008052522A (ja) 画像データアクセス装置及び画像データアクセス方法
CN105245888A (zh) 图像压缩方法和图像压缩装置
JP2008217515A (ja) 画像データアクセス方法

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

R15-X000 Change to inventor requested

St.27 status event code: A-3-3-R10-R15-oth-X000

R16-X000 Change to inventor recorded

St.27 status event code: A-3-3-R10-R16-oth-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

FPAY Annual fee payment

Payment date: 20190927

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

FPAY Annual fee payment

Payment date: 20200928

Year of fee payment: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

FPAY Annual fee payment

Payment date: 20210929

Year of fee payment: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20221005

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20221005