KR20110077894A - 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법 - Google Patents

적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법 Download PDF

Info

Publication number
KR20110077894A
KR20110077894A KR1020090134573A KR20090134573A KR20110077894A KR 20110077894 A KR20110077894 A KR 20110077894A KR 1020090134573 A KR1020090134573 A KR 1020090134573A KR 20090134573 A KR20090134573 A KR 20090134573A KR 20110077894 A KR20110077894 A KR 20110077894A
Authority
KR
South Korea
Prior art keywords
address
mapping
bank
tiles
image
Prior art date
Application number
KR1020090134573A
Other languages
English (en)
Other versions
KR101639574B1 (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 KR1020090134573A priority Critical patent/KR101639574B1/ko
Priority to US12/903,368 priority patent/US8817033B2/en
Publication of KR20110077894A publication Critical patent/KR20110077894A/ko
Priority to US14/452,586 priority patent/US9390007B2/en
Application granted granted Critical
Publication of KR101639574B1 publication Critical patent/KR101639574B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory

Abstract

본 발명의 실시 예에 따른 디스플레이 시스템은, 이미지 데이터를 복수의 타일 단위로 표시하는 디스플레이, 상기 이미지 데이터를 상기 복수의 타일 단위로 저장하며, 복수의 타일들 각각을 복수의 뱅크들 중 어느 하나의 뱅크에 할당하는 맵핑 메모리, 그리고 상기 복수의 타일들 각각을 상기 복수의 뱅크들에 순차적으로 할당하기 위한 제 1 어드레스와, 상기 복수의 타일들 중 짝수 또는 홀수 행의 타일들에 할당되는 뱅크 어드레스를 인터리빙하기 위한 제 2 어드레스 중 어느 하나를 상기 맵핑 메모리에 제공하는 이미지 맵핑부를 포함한다.

Description

적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법{IMAGE PROCESSING SYSTEM SUPPLYING ADAPTIVE BANK ADDRESS AND ADDRESS MAPPING METHOD THEREOF}
본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 이미지 포맷에 따라 적응적으로 뱅크 어드레스를 생성하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법에 관한 것이다.
최근 들어서는, 노트북, 휴대폰, PDA, 디지털카메라 등과 같은 휴대형 정보기기의 사용이 급증하고 있다. 또한, 휴대형이 아니더라도 다양한 분야에서 다양한 목적으로 정보기기들이 사용되고 있다. 이들 정보기기들에는 정보의 표시 수단으로서 또는 사용자와의 인터페이싱을 위한 수단으로서 디스플레이 시스템이 포함된다. 정보기기들 각각의 디스플레이 시스템들은 용도나 목적에 따라 다양한 해상도와 품질의 이미지를 표시하게 될 것이다.
디스플레이 시스템은 디지털 이미지를 통하여 사용자(User)에게 정보를 표시하고 전달한다. 디지털 이미지는 문자 또는 숫자나, 그래프 및 그림 등의 형태로 제공될 수 있다. 많은 응용에서, 디지털 이미지들은 모니터(Monitor)나 프린 터(Printer)와 같은 디스플레이 장치에 표시됨으로써 사용자들에게 전달된다. 이미지들은 맵핑(Mapping) 메모리에 디지털 데이터의 형태로 저장되었다가, 일정한 조작을 거쳐 디스플레이 상에 나타나게 된다.
그러므로 디스플레이 시스템에서는 디스플레이의 데이터를 저장하는 맵핑 메모리가 필요하다. 그리고 디지털 형태로 저장된 데이터를 디스플레이 상에서 영상으로 표현하기 위해서는 맵핑(Mapping) 작업이 필요하다. 맵핑 작업은 맵핑 메모리 상의 특정 영역 데이터가 디스플레이 상의 특정 바이트(Byte)에 영상으로 처리되도록 한다. 그리고 맵핑 메모리로는 동기식 디램(SDRAM)과 같은 반도체 메모리 장치가 사용된다.
이미지의 디스플레이 성능을 결정하는 요소들에는 마이크로프로세서의 속도, 메모리의 액세스 시간 등이 있다. 그리고 그 이외의 디스플레이 성능을 결정하는 요소들에는 디스플레이의 사이즈, 맵핑 메모리의 용량이나 어드레스 맵핑 방식 등이 있다.
맵핑 메모리의 어드레스 맵핑 방식에는 라인 지향(Line Oriented) 방식과 타일 지향(Tile Oriented) 방식이 있다. 라인 지향 방식의 디스플레이 시스템은 디스플레이 상에 하나의 라인씩 나타나도록 순차적 순서에 따라 데이터를 발생하고 저장한다. 즉, 맵핑 메모리로의 데이터의 저장 및 맵핑 메모리로부터 디스플레이로의 데이터의 리드는 하나의 비트씩 및 하나의 라인씩 수행된다. 타일 지향 방식의 디스플레이 시스템은 디스플레이 상에 타일(Tile)이라고 불리우는 동일한 크기와 형태의 표시 단위로 맵핑 메모리에 데이터를 저장하고 읽어낸다. 타일들의 크기와 형 태는 시스템 설계자들 및 사용자들에 의하여 선택되는 요소들 중의 하나이다. 예를 들면, 이들 타일들은 정사각형 또는 직사각형이 될 수 있다.
타일 지향 방식의 디스플레이 시스템은 디스플레이 화면을 동시에 리프레쉬하므로, 동작 속도의 측면에서 이점을 가진다. 즉, 다수의 데이터 비트를 한 묶음으로 처리함으로써 리프레쉬 효율을 개선시킨다. 이와 같은 타일 중심의 디스플레이와 맵핑 작업을 수행하기 위해서는 많은 수를 데이터를 동시에 입출력할 수 있는 맵핑 메모리가 요구된다.
현재, 맵핑 메모리로 사용되는 동기식 디램(DRAM)에서는 독립적으로 액세스될 수 있는 복수의 뱅크들을 포함한다. 복수의 타일이 포함되는 특정 영역의 이미지 데이터를 맵핑 메모리에 저장할 때, 동일 뱅크의 서로 다른 행에 특정 영역의 이미지 데이터가 저장될 수 있다. 이 경우, 특정 영역의 이미지 데이터를 액세스하기 위해서는 선택된 뱅크에서 행 어드레스(Row address)의 전환이 필요하다. 따라서, 이미 열린 행에 대한 클로즈 사이클과 새로운 행을 열기 위한 오픈 사이클이 더 소요된다. 이러한 문제를 오픈-로-액세스(Open-Row-Access)라고 하며, 시스템의 성능 저하의 주된 요인으로 작용한다. 따라서, 오픈-로-액세스(Open-Row-Access) 문제를 해결할 수 있는 맵핑 방식이 필요하다. 또한, 다양한 포맷의 디스플레이 시스템들에 대해 적용될 수 있는 적응적이고 효율적인 맵핑 방식에 대한 요구가 절실한 실정이다.
본 발명의 목적은 어드레스 맵핑 방식을 적응적으로 선택하고 액세스 성능을 높일 수 있는 이미지 처리 시스템 및 그것의 어드레스 발생 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 실시 예에 따른 디스플레이 시스템은, 이미지 데이터를 복수의 타일 단위로 표시하는 디스플레이, 상기 이미지 데이터를 상기 복수의 타일 단위로 저장하며, 복수의 타일들 각각을 복수의 뱅크들 중 어느 하나의 뱅크에 할당하는 맵핑 메모리, 그리고 상기 복수의 타일들 각각을 상기 복수의 뱅크들에 순차적으로 할당하기 위한 제 1 어드레스와, 상기 복수의 타일들 중 짝수 또는 홀수 행의 타일들에 할당되는 뱅크 어드레스를 인터리빙하기 위한 제 2 어드레스 중 어느 하나를 상기 맵핑 메모리에 제공하는 이미지 맵핑부를 포함한다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 복수의 뱅크들을 포함하는 메모리에 이미지를 저장하기 위한 어드레스 맵핑 방법은, 상기 이미지를 복수의 타일들로 분할하고, 상기 복수의 타일들 각각을 상기 복수의 뱅크들에 순차적으로 할당하는 제 1 어드레스를 생성하는 단계, 상기 제 1 어드레스에 의해 상기 이미지상의 어느 하나의 타일과 상기 어느 하나의 타일에 인접하는 타일들이 동일한 뱅크에 할당되었는지를 검출하는 단계, 그리고 상기 이미지상의 어느 하나의 타일과 상기 어느 하나의 타일에 인접하는 타일들이 동일한 뱅크에 할당되는 것으로 검출되는 경우, 상기 제 1 어드레스의 뱅크 할당을 재설정한 제 2 어드레스를 생성하는 단계를 포함한다.
본 발명의 실시 예에 따르면, 이미지 포맷에 따라 어드레스 맵핑 방식을 재설정할 수 있고, 액세스 속도를 높일 수 있는 이미지 처리 시스템을 구성할 수 있다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 동기식 디램(SDRAM)이 본 발명의 특징 및 기능을 설명하기 위한 맵핑 메모리의 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 예를 들면, 저장 매체로서 SRAM, PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있다. 또한, 본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 사용에 따라 수정되거나 변경될 수 있다.
도 1은 본 발명의 실시 예에 따른 을 보여주는 블록도이다. 도 1을 참조하면, 디스플레이 시스템(1000)은 이미지 데이터와 어드레스를 제공하는 이미지 맵핑 부(100)와 맵핑 메모리(200), 그리고 디스플레이(300)를 포함한다.
이미지 맵핑부(100)는 이미지 데이터를 생성하는 프로세서(110)와 어드레스 발생기(120)를 포함한다. 프로세서(110)는 입력되는 디지털 이미지를 디스플레이 상에서 복수의 타일들로 구분하고, 타일들 각각에 대응하는 이미지 데이터(Image data)를 생성한다. 만일, 사용자가 이미지상에서 특정 영역을 선택하면, 프로세서(110)는 전체 이미지의 크기와 타일 크기, 선택된 영역의 위치 및 크기에 관련된 이미지 데이터(Image data)를 어드레스 발생기(120)로 전달한다.
어드레스 발생기(120)는 이미지 데이터(Image data)를 참조하여 맵핑 어드레스(SBFTM Address)를 생성한다. 어드레스 발생기(120)는 오픈-로-액세스(Open-Row-Access)와 같은 오버헤드 문제를 최소화하기 위하여 맵핑 어드레스(SBFTM Address)를 적응적 또는 선택적으로 생성한다. 어드레스 발생기(120)는 입력되는 이미지 데이터(Image Data)를 분석한다. 어드레스 발생기(120)는 분석 결과에 따라 맵핑 메모리(200)에 대한 복수의 맵핑 방식들 중 최적의 어드레스 맵핑 방식을 결정한다. 어드레스 발생기(120)는 결정된 최적의 어드레스 맵핑 방식에 따라 맵핑 어드레스(Mapping Address)를 생성하고, 맵핑 메모리(200)로 제공한다.
맵핑 메모리(200)는 서로 독립적으로 액세스될 수 있는 복수의 뱅크를 포함한다. 뱅크에 있어서 하나의 행을 페이지(Page)라 한다. 각각의 페이지에는 앞서 설명된 하나의 타일에 대응하는 이미지 데이터가 저장될 수 있다. 하지만, 페이지와 타일의 관계는 여기에 국한되지는 않는다. 타일에 대응하는 데이터의 크기가 페이지보다 작을 수도 있다.
디스플레이(300)에는 맵핑 메모리(200)에 저장되는 이미지 데이터가 영상으로 표시된다. 디스플레이(300)는 예를 들면, CRT 모니터, LCD 모니터와 같은 다양한 형태의 디스플레이 수단들을 포함할 수 있다.
도 2는 도 1의 어드레스 발생기(120)를 상세하게 보여주는 블록도이다. 도 2를 참조하면, 어드레스 발생기(120)는 타일 맵핑 어드레스 발생기(121), 어드레스 변환기(122), 어드레스 선택부(123), 검출기(124)를 포함한다.
타일 맵핑 어드레스 발생기(121)는 이미지 데이터(Image data)를 제공받아 타일 맵핑 어드레스(TM Address)로 변환한다. 타일 맵핑 어드레스 발생기(121)에 제공되는 이미지 데이터에는 선택된 특정 이미지 영역의 위치와 크기 정보(x, y, xsize, ysize) 그리고 전체 이미지의 크기 정보(ImgH, ImgV), 타일의 크기 정보(TileH, TileV)를 포함한다. 이미지 데이터를 참조하여, 타일 맵핑 어드레스 발생기(121)는 맵핑 메모리(200) 상에서 입력되는 이미지 데이터를 저장하기 위한 타일 어드레스를 생성한다.
어드레스 변환기(122)는 타일 맵핑 어드레스 발생기(121)로부터 출력되는 타일 맵핑 어드레스(TM Address)를 뱅크 플립 어드레스(BF Address)로 변환한다. 어드레스 변환기(122)는 검출기(124)에 의해서 제공되는 뱅크 플립 인에이블(BF_En)신호에 따라 타일 맵핑 어드레스(TM Address)를 뱅크 플립 어드레스(BF Address)로 변환한다. 이러한 변환의 예는 후술하는 도 6에서 상세히 설명될 것이다.
어드레스 선택부(123)는 검출기(124)로부터 제공되는 선택 신호(SEL)에 응답하여 타일 맵핑 어드레스(TM Address)와 뱅크 플립 어드레스(BF Address) 중 어느 하나를 선택한다. 타일 맵핑 어드레스(TM Address)와 뱅크 플립 어드레스(BF Address) 중 어드레스 선택부(123)에 의해 선택된 어드레스가 맵핑 메모리(200)의 어드레스로 제공될 것이다.
검출기(124)는 입력되는 이미지 데이터(Image Data)를 참조하여, 어드레스 맵핑 방식을 선택한다. 검출기(124)는 이미지 데이터(Image Data)를 이용하여 해당하는 이미지의 포맷 또는 사이즈에 최적화되는 뱅크 어드레스의 맵핑 방식을 계산한다. 검출기(124)는 맵핑 메모리(200)에 포함되는 뱅크의 수, 페이지의 크기를 추가적으로 사용하여 뱅크 어드레스의 맵핑 방식을 선택하기 위한 계산을 수행할 수 있다. 검출기(124)는 다양한 사이즈 또는 포맷의 이미지에 대해서 적응적으로 적용될 수 있는 뱅크 어드레스의 맵핑 방식을 결정할 수 있다. 이러한 결정을 위하여, 검출기(124)는 이미지의 수평 크기에 수용 가능한 타일의 수(T value)를 계산한다. 검출기(124)는 계산 결과로 출력되는 타일 수(T value)를 참조하여 최적 성능을 나타내는 어드레스 맵핑 방식을 선택한다. 그리고 검출기(124)는 계산 결과를 참조하여 타일 맵핑(Tile Mapping: TM) 방식이 적절한지 또는 뱅크 플립 맵핑(Bank Flipping mapping:BF) 방식이 적절한지를 결정한다.
이상의 도 2에서 기술된 어드레스 발생기(120)에 따르면, 어떤 포맷의 이미지에 대해서도 맵핑 메모리(200)의 구조에 최적화된 어드레스 맵핑이 가능하다. 그리고 어드레스 발생기(120)에 의하여 사용자가 이미지의 특정 영역을 선택하더라도, 동일 뱅크에서 서로 다른 행을 액세스해야하는 오픈-로-액세스와 같은 오버헤드를 차단할 수 있다.
도 3은 도 1의 맵핑 메모리(200)의 메모리 영역을 간략히 보여주는 표이다. 도 3을 참조하면, 맵핑 메모리(200)의 메모리 영역은 복수의 뱅크(Bank)로 구분된다. 그리고 각각의 뱅크들은 m개(m은 자연수)의 행들과 n(n은 자연수)개의 열들로 이루어져 있다. 여기서, 하나의 뱅크에 포함되는 하나의 행을 페이지(Page)라 칭한다. 예를 들면, 빗금친 영역은 뱅크0(Bank0)의 행10(Row10)에 해당하는 페이지(Page)이다. 하나의 뱅크는 페이지 단위로 액세스될 수 있으며, 이러한 액세스를 페이지 모드 액세스라고도 한다.
뱅크들 각각은 서로 독립적인 액세스를 지원한다. 즉, 뱅크0(Bank0)의 어느 하나의 행에 대한 읽기 동작중, 뱅크3(Bank3)의 다른 하나의 행에 대한 액세스가 가능하다. 따라서, 뱅크 어드레스가 전환되는 읽기 요청시에는 오버헤드가 발생하지 않는다.
그러나, 동일한 뱅크 내에서 어느 하나의 행에 대한 읽기 동작중, 다른 하나의 행에 대한 읽기 요청이 발생하면 상대적으로 큰 오버헤드가 발생한다. 왜냐하면, 현재 읽기 중인 행에 대한 클로즈 사이클과 읽기 요청된 다른 행에 대한 오픈 사이클이 추가되기 때문이다. 즉, 이 경우 오픈-로-액세스(Open-Row-Access)가 발생한다. 맵핑 메모리(200)에 이미지 데이터를 저장할 때, 이러한 문제를 최대한 회피할 수 있는 방식으로 뱅크 어드레스를 생성해야 한다. 즉, 동일 뱅크의 서로 다른 행에 할당되는 데이터를 다른 뱅크로 어드레스를 재배열하여 이러한 오버헤드를 감소시킬 필요가 있다.
도 4a, 4b 4c, 그리고 4d는 도 2의 타일 맵핑 어드레스 발생기(121)에 의한 어드레스 발생 과정을 보여주는 도면들이다.
도 4a에는 하나의 이미지(400)가 도시되어 있다. 이미지(400)를 구성하는 픽셀들 각각의 데이터는 맵핑 메모리(200)에 타일 단위로 저장될 것이다. 이를 위해서, 이미지(400)를 구성하는 픽셀 데이터는 복수의 타일 단위로 분할될 수 있다. 분할된 각각의 타일 단위의 픽셀 데이터는 타일 맵핑 어드레스 발생기(121)에 의해서 생성되는 맵핑 메모리(200) 상의 물리적 위치에 저장된다. 만일, 사용자가 이미지(400) 중에서 확대나 편집을 위해서 위치 (x, y) 및 사이즈 (xsize, ysize)를 가지는 영역을 선택하였다 가정하자. 선택 영역(410)의 픽셀 데이터는 하나의 타일에 포함될 수도 있지만, 복수의 타일들에 걸쳐서 맵핑될 수 있다. 본 발명의 실시 예에서는 선택 영역(410)에 대한 액세스 시에 오픈-로-액세스가 발생하지 않도록 타일 맵핑 또는 뱅크 플립 맵핑이 적용될 것이다.
도 4b는 도 4a의 이미지(400)를 복수의 타일 단위로 분할한 예를 간략히 보여주는 도면이다. 타일 맵핑을 위해서, 이미지(400)는 수평으로 3분할, 수직으로 4분할되도록 구분된다. 그리고, 분할된 각각의 타일들에는 타일 번호들(①~⑫)이 할당된다. 이렇게 타일이 정의되면, 각각의 타일에 포함되는 픽셀 데이터들과 맵핑 메모리(200)의 페이지들이 맵핑된다. 타일들 각각의 화살표들은 맵핑 메모리(200)에 저장되기 위한 픽셀들의 어드레스 순서이다. 선택 영역(410)의 픽셀 데이터들은 4개의 타일들(④, ⑤, ⑦, ⑧)로 맵핑된다.
도 4c는 분할된 각각의 타일들의 픽셀 데이터가 저장되는 맵핑 메모리(200)의 뱅크들간의 대응 관계를 보여주는 도면이다. 하나의 타일에 대응하는 픽셀 데이 터와 맵핑 메모리(200)의 페이지 용량이 동일하게 2KByte라 가정하자. 그러면, 타일(①)에 대응하는 픽셀 데이터들은 맵핑 메모리(200)의 뱅크0(Bank0)에 할당된다. 그리고 타일(②)는 뱅크1(Bank)에, 타일(③)은 뱅크2(Bank2)에, 타일(④)는 뱅크3(Bank3)에 할당된다. 이처럼, 타일 번호의 증가에 따라 뱅크들(Bank0~Bank3)이 순차적으로 그리고 주기적으로 할당된다. 하지만, 하나의 이미지를 12개의 타일로 분할하는 현재의 분할 방식에서 앞서 언급된 오픈-로-액세스와 같은 문제가 발생하지 않음을 알 수 있다.
도 4d는 도 4b의 타일들을 일직선으로 나열한 도면이다. 도면을 참조하면, 이미지상에서 어느 하나의 픽셀 어드레스는 좌표(0, 0)로부터의 거리에 의해서 유일(Unique)하게 정의될 수 있다. 하나의 타일 사이즈가 2KByte라 가정하면, ⓐ 픽셀의 위치는 14336(2KByte×7)로 나타낼 수 있다. 왜냐하면, ⓐ 픽셀의 이전에 7개의 타일들이 포함되어 있기 때문이다.
이상의 도 4a 내지 도 4d에서 타일 맵핑 모드의 일례가 설명되었다. 도 4a 내지 도 4d에서는 이미지상의 하나의 행이 수용하는 타일의 수와 맵핑 메모리(200)의 뱅크 수가 다른 경우의 타일 맵핑 모드가 도시되었다. 이 경우에는 각각의 타일들에 뱅크 어드레스를 순차적으로 할당하더라도 이미지상에서 동일 열에 위치하는 타일들의 뱅크 어드레스가 동일해지는 문제가 심각하게 발생하지 않는다.
도 5는 하나의 이미지를 다른 타일 크기로 분할하는 타일 맵핑의 예를 보여준다. 도 5를 참조하면, 이미지(500)의 수평으로 분할되는 타일들의 수와 맵핑 메모리(200)의 뱅크 수가 동일한 경우를 보여준다.
사이즈 (256×128)의 이미지(500)에서 타일 사이즈가 (64×32)인 경우, 도시된 바와 같이 이미지(500) 상에서 동일 열에 위치하는 타일들(①, ⑤, ⑨, ⑬)은 동일한 뱅크에 맵핑된다. 따라서, 이미지(500) 상에서 특정 영역이 선택되었을 때, 동일 뱅크의 서로 다른 행을 액세스해야하는 오픈-로-액세스 문제가 발생할 확률이 다분하다. 예를 들면, 유저에 의해서 이미지 영역(510)이 선택되면, 맵핑 메모리(200)로부터 이미지 영역(510)에 대응하는 픽셀 데이터를 읽기 위해서는 뱅크2(Bank2) 및 뱅크3(Bank3)에 액세스해야 한다. 타일들(⑪, ⑮)에 대응하는 픽셀 데이터를 읽을 경우에, 맵핑 메모리(200)의 뱅크2(Bank2)에서 서로 다른 행들을 액세스해야 함을 의미한다. 이것은 타일 맵핑 모드에서 오픈-로-액세스 오버헤드가 불가피함을 의미한다.
도 6은 타일 맵핑 모드에서 발생하는 문제를 해결하기 위한 방법을 간략히 보여주는 도면이다. 즉, 도 6은 도 2의 어드레스 변환기(122)에서 수행되는 뱅크 플립핑(Bank Flipping) 연산을 간략히 보여주는 블록도이다.
도 6을 참조하면, 각각의 타일들이 할당되는 뱅크들의 어드레스 (0, 1, 2, 3)가 타일 맵핑 모드에 대해서 도시되어 있다. 여기서 뱅크 어드레스는 설명의 편의를 위하여 10진 수로 나타내었다. 타일 맵핑 모드에서는, 이미지상에서 동일 열에 위치하는 타일들은 동일 뱅크들에 할당된다. 예를 들면, 첫 번째 열에 위치하는 타일들에 할당되는 뱅크 어드레스는 모두 0이다. 그리고 두 번째 열에 위치하는 타일들이 할당받는 뱅크 어드레스는 모두 1이다. 따라서, 타일 맵핑 모드에서는 오픈-로-액세스가 발생할 확률이 높다.
상술한 상태에서, 본 발명의 어드레스 변환기(122, 도 2 참조)는 뱅크 플립핑 연산을 실행한다. 이미지 상에서 인접한 타일들은 서로 다른 뱅크 어드레스를 할당받도록 뱅크 어드레스를 특정 규칙에 따라 재할당하는 것이 뱅크 플립핑 연산이다. 뱅크 플립핑 연산을 위하여, 이미지 상에서 짝수 행에 대응하는 타일들의 뱅크 어드레스만 재할당하면 된다. 여기서, 짝수 행들의 타일들에 대해서 뱅크 플립핑 연산이 실시되는 것으로 설명되었으나, 본 발명은 이에 국한되지 않는다. 즉, 홀수 행들에 대응하는 타일들에 대해서만 뱅크 플립핑 연산이 수행될 수도 있다.
이러한 조작은 각각의 타일들이 할당되는 뱅크 어드레스의 최상위 비트(MSB)를 토글링하는 것으로 구현될 수 있다. 즉, 타일 맵핑 모드에서 '00'의 뱅크로 할당된 타일은 ' 1 0'의 뱅크로 그 할당이 전환된다. 타일 맵핑 모드에서 '01'의 뱅크로 할당된 타일은 ' 1 1'의 뱅크로 그 할당이 전환된다. 타일 맵핑 모드에서 '10'의 뱅크로 할당된 타일은 ' 0 0'의 뱅크로 그 할당이 전환된다. 타일 맵핑 모드에서 '11'의 뱅크로 할당된 타일은 ' 0 1'의 뱅크로 그 할당이 전환된다.
결과적으로, 타일 맵핑 모드에서 (0, 1, 2, 3)으로 뱅크 어드레스를 할당받은 타일들은 뱅크 플립핑 연산에 의해서 (2, 3, 0, 1)의 뱅크 어드레스로 변환된다. 따라서, 상호 인접하는 타일들 간에 동일한 뱅크에 어드레스가 할당되는 경우가 방지될 수 있다.
도 7은 타일 맵핑 모드에서 뱅크 플립 맵핑 모드로 전환되었을 때의 효과를 보여주기 위한 블록도이다. 도 7을 참조하면, 타일 맵핑 모드에서는 이미지(600) 상에서 선택 영역(610)을 액세스하기 위해서는 동일 뱅크에서 서로 다른 행을 선택 해야 경우가 불가피하였다. 즉, 선택 영역(610)에 해당하는 데이터를 맵핑 메모리(200)에서 액세스하면, 타일들(⑪, ⑮)이 할당된 뱅크2(BANK2)의 서로 다른 행들을 액세스해야 한다.
하지만, 뱅크 플립(BF) 모드로 어드레스가 변환되는 경우에는 맵핑 메모리(200)에 저장된 이미지(700) 상에서 선택 영역(710, 720)은 모두 다른 뱅크들에 할당되게 된다. 즉, 선택 영역의 일부(710)는 뱅크들(Bank2, Bank3)에 할당되고, 다른 일부(720)는 뱅크들(Bank0, Bank1)에 할당된다. 따라서, 선택 영역을 읽기 위해서 맵핑 메모리(200)에 액세스하더라도 동일 뱅크의 서로 다른 페이지들을 읽어야 하는 확률은 대폭 감소하게 된다.
이하에서는 동일 열에 동일 뱅크가 맵핑되는 경우를 방지하기 위해 뱅크 어드레스를 리맵핑하는 동작을 뱅크 인터리빙(Bank Interleaving)이라 칭하기로 한다. 타일 맵핑 모드(TM Mode)에서는 이미지 상에서 인접한 타일들의 픽셀 데이터가 맵핑 메모리(200, 도 1 참조)의 동일 뱅크에 저장될 수 있다. 즉, 이미지 상에서 동일 열에 포함되는 인접한 두 개의 타일이 맵핑 메모리(200)의 동일 뱅크에 할당되면 오픈-로-액세스가 발생할 확률이 높다.
이 경우에, 뱅크 플립 맵핑 모드(BF Mode)로 뱅크 어드레스를 변환하여 문제의 개선이 가능하다. 이미지 상에서 짝수 행들이나 또는 홀수 행들에 위치하는 타일들의 뱅크 어드레스가 플립핑(Flipping)되면, 뱅크 인터리빙(Bank Interleaving: BI)이 발생한다. 따라서, 이미지의 특정 영역을 처리하기 위하여 맵핑 메모리(200)에 액세스할 때, 동일 뱅크의 서로 다른 페이지를 연속해서 액세스해야 하는 확률 이 감소된다.
도 8은 타일 맵핑 또는 뱅크 플립 맵핑 모드에서 타일 수에 따른 뱅크 인터리빙(BI)의 정도를 보여주기 위한 표이다. 도 8을 참조하면, 뱅크 인터리빙의 정도는 타일, 이미지의 크기, 그리고 맵핑 메모리(200)의 페이지 사이즈에 따라서 상대적인 값으로 나타난다.
이미지의 타일에 대한 상대적인 크기를 나타내는 인수(Factor) T는 이미지와 타일의 사이즈, 그리고 맵핑 메모리(200)의 페이지 사이즈와 관련된 값이다. T 값은 아래의 수학식 1로 정의될 수 있다.
Figure 112009081831644-PAT00001
(단, ImgH는 이미지의 수평 사이즈, TileV는 타일의 수직 사이즈, Page Size는 맵핑 메모리의 페이지 사이즈를 나타낸다.)
설명의 편의를 위하여, 타일 사이즈가 (64×32), 맵핑 메모리(200)는 4개 뱅크 구조이며, 각 페이지들의 사이즈는 2KByte 구조로 가정한다. 그러면, T 값은 이미지의 하나의 행에 포함되는 타일의 수에 해당한다.
도면을 참조하여, T 값이 4인 경우를 살펴보자. 이 경우, 타일 맵핑 모드(TM Mode)에서는 이미지 상에서 동일 열에 인접한 타일들은 모두 동일한 뱅크에 맵핑되는 것으로 나타나 있다. 각 타일들 내부에 기재된 수는 맵핑되는 뱅크 어드레스를 나타낸다. 따라서, 오픈-로-액세스와 같은 문제가 발생할 확률이 매우 높다. 그리고 뱅크 인터리빙(BI)의 정도는 직관적으로도 최악(Worst)임을 인지할 수 있다.
반면에, T 값이 4인 뱅크 플립 맵핑 모드(BF Mode)에서는 어느 하나의 타일도 인접한 타일들이 동일한 뱅크에 맵핑된 것이 존재하지 않는다. 따라서, 오픈-로-액세스와 같은 문제가 발생할 확률이 현저히 낮다. 뱅크 인터리빙(BI)의 정도는 직관적으로도 최상(Best)임을 알 수 있다.
T 값이 5인 경우, 즉 이미지의 하나의 행에 수용가능한 타일의 수가 5개인 경우를 살펴보자. 이 경우, 타일 맵핑 모드(TM Mode)에서는 T 값이 4인 때보다는 높은 뱅크 인터리빙 정도를 가지는 것을 볼 수 있다. 하지만, 맵핑되는 뱅크 어드레스가 대각선 방향으로 동일한 타일들이 존재한다. 따라서, T 값이 5인 때의 타일 맵핑 모드에서는 T 값이 4일 때보다는 뱅크 인터리빙의 정도가 향상되었다. 하지만, T 값이 5인 때의 타일 맵핑 모드에서는 개선의 여지가 여전히 존재한다. 또한, T 값이 5인 뱅크 플립 맵핑 모드(BF Mode)에서는, 타일 맵핑 모드와 유사한 정도의 뱅크 인터리빙(BI) 정도를 시각적으로 확인할 수 있다.
T 값이 6인 경우, 즉 이미지의 하나의 행에 수용가능한 타일의 수가 6개인 경우를 살펴보자. 이 경우, 타일 맵핑 모드(TM Mode)에서는 어느 하나의 타일도 인접한 타일들이 동일한 뱅크에 맵핑된 것이 존재하지 않는다. 따라서, 오픈-로-액세스와 같은 문제가 발생할 확률이 현저히 낮다. 뱅크 인터리빙(BI)의 정도는 직관적으로도 최상(Best)임을 알 수 있다. 반면에, T 값이 6인 경우의 뱅크 플립 맵핑 모드(BF Mode)에서는, 이미지 상에서 동일 열에 인접한 타일들이 모두 동일한 뱅크에 맵핑되는 것으로 나타나 있다. 따라서, 뱅크 인터리빙(BI)의 정도는 직관적으로도 최악(Worst)임을 인지할 수 있다.
T 값이 7인 경우, 즉 이미지의 하나의 행에 수용가능한 타일의 수가 7개인 경우를 살펴보자. 이 경우, 타일 맵핑 모드(TM Mode)에서는 T 값이 6인 때보다는 낮은 뱅크 인터리빙(BI) 정도를 가지는 것을 볼 수 있다. 즉, 타일들의 맵핑되는 뱅크 어드레스가 대각선 방향으로 동일하다. 따라서, T 값이 7인 때의 타일 맵핑 모드에서는 T 값이 6일 때보다는 뱅크 인터리빙(BI)의 정도가 악화되었다. 또한, T 값이 7인 경우의 뱅크 플립 맵핑 모드(BF Mode)에서는, 타일 맵핑 모드와 유사한 정도의 뱅크 인터리빙(BI) 정도를 나타냄을 시각적으로 확인할 수 있다.
이상에서는, 이미지 사이즈에 따른 타일 맵핑 모드(TM Mode)와 뱅크 플립 맵핑 모드(BF Mode)의 뱅크 인터리빙 정도를 표를 통해서 살펴보았다. 결론적으로, 뱅크 인터리빙(BI)은 타일 맵핑 모드(TM Mode)와 뱅크 플립 맵핑 모드(BF Mode) 각각에 상보적인 크기로 나타남을 알 수 있다. 즉, 뱅크 인터리밍(BI)은 이미지, 타일, 맵핑 메모리(200)의 페이지의 사이즈에 따라서 타일 맵핑 모드(TM Mode)에서 더 바람직할 수도 있고, 뱅크 플립 맵핑 모드(BF Mode)에서 더 바람직할 수도 있다.
도 9a 및 도 9b는 뱅크 인터리빙(BI)의 크기를 수치로 정량화하기 위한 방법을 보여주는 도면들이다. 하나의 이미지에 대한 뱅크 인터리빙(BI)의 크기를 수치로 정량화한 값을 매트릭(Metric)이라 칭하기로 한다. 도 9a 및 도 9b는 도 8의 T 값이 4인 경우, 타일 맵핑 모드(TM Mode)와 뱅크 플립 맵핑 모드(BF Mode) 각각에 대한 매트릭(Metric)을 계산하는 과정을 보여준다.
우선, 어느 하나의 이미지에 포함되는 전체 타일들의 뱅크 인터리빙의 척도가 되는 매트릭(Metric)을 구하는 방법이 아래 수학식 2로 정의될 수 있다.
Figure 112009081831644-PAT00002
Figure 112009081831644-PAT00003
(단, i는 이미지의 행, j는 이미지의 열)
매트릭(Metric)을 구하기 위해서는 이미지에 포함되는 타일들 각각의 비교값(Compare)를 구해야 한다. 어느 하나의 타일에 대한 비교값(Compare)은 인접하는 타일들이 맵핑되는 뱅크 어드레스가 어느 하나의 타일과 동일한지 여부에 따라서 결정된다. 타일들에 대한 비교값들(Compare)이 도출되면, 전체 타일들의 비교값들을 합하고 평균을 구함으로써 매트릭(Metric)이 구해진다.
도면을 참조하여, 매트릭을 구하는 방법을 타일 맵핑 모드와 뱅크 플립 맵핑 모드들 각각에 대해서 설명하기로 한다. 도 9a를 참조하면, 타일 맵핑 모드(TM Mode)에서 1행 1열에 대응하는 타일의 비교값(Compare)은 1행 1열에 대응하는 타일의 뱅크 어드레스와 인접한 (1, 2), (2, 1), (2, 2)의 타일들 간의 뱅크 어드레스의 비교값들을 합산함으로써 구해진다. 즉, 어느 하나의 타일의 비교값(Compare)은 인접한 타일과 동일한 뱅크 어드레스이면 비교값은 0, 다른 뱅크 어드레스이면 1을 할당하여 합산해서 구한다.
즉, 1행 1열에 대응하는 타일의 비교값(Compare)은 3개의 인접한 타일들과 비교하여 (1+0+1= 2)이라는 결과를 얻게 된다. 1행 2열에 대응하는 타일의 비교값(Compare)은 5개의 인접 타일들과의 비교값의 합(1+1+0+1+1= 4)으로 산출된다. 1행 3열에 대응하는 타일의 비교값(Compare)은 5개의 인접 타일들과의 비교값의 합(1+1+0+1+1= 4)으로 산출된다. 1행 4열에 대응하는 타일의 비교값(Compare)은 3개의 인접한 타일들과 비교하여 (1+0+1= 2)이라는 결과를 얻게 된다. 결과적으로, 1행의 타일들 각각의 비교값은 (2, 4, 4, 2)로 계산된다. 동일한 방식으로, 2행 및 3행의 비교값은 각각 (3, 6, 6, 3), 4행의 타일들 각각의 비교값은 (2, 4, 4, 2)로 계산된다.
타일들 각각의 비교값들을 합하면 60이 되고, 이 값을 전체 타일의 수(16)로 나누면 매트릭(Metric)으로 3.8이라는 값이 산출된다. 따라서, 타일 맵핑 모드(TM Mode)에서 매트릭(Metric)은 3.8이라는 상대적인 뱅크 인터리빙 크기를 가진다고 볼 수 있다.
도 9b를 참조하면, 뱅크 플립 맵핑 모드(BF Mode)에서 1행 1열에 대응하는 타일의 비교값(Compare)은 1행 1열에 대응하는 타일의 뱅크 어드레스와 인접한 (1, 2), (2, 1), (2, 2)의 타일들 간의 뱅크 어드레스의 비교값들을 합산함으로써 구해진다. 즉, 어느 하나의 타일의 비교값(Compare)은 인접한 타일과 동일한 뱅크 어드레스이면 비교값은 0, 다른 뱅크 어드레스이면 1을 할당하여 합산해서 구한다.
즉, 1행 1열에 대응하는 타일의 비교값(Compare)은 3개의 인접한 타일들과 비교하여 (1+1+1= 3)이라는 결과를 얻게된다. 1행 2열에 대응하는 타일의 비교값(Compare)은 5개의 인접 타일들과의 비교값의 합(1+1+1+1+1= 5)으로 산출된다. 1행 3열에 대응하는 타일의 비교값(Compare)은 5개의 인접 타일들과의 비교값의 합(1+1+1+1+1= 5)으로 산출된다. 1행 4열에 대응하는 타일의 비교값(Compare)은 3개의 인접한 타일들과 비교하여 (1+1+1= 3)이라는 결과를 얻게된다. 결과적으로, 1행의 타일들 각각의 비교값은 (3, 5, 5, 3)로 계산된다. 동일한 방식으로, 2행 및 3행의 비교값은 각각 (5, 8, 8, 5), 4행의 타일들 각각의 비교값은 (3, 5, 5, 3)로 계산된다. 뱅크 플립 맵핑 모드(BF Mode)에서는 어느 하나의 타일도 인접한 타일 과 동일한 뱅크에 맵핑되지 않는다.
타일들 각각의 비교값들을 합하면 84가 되고, 이 값을 전체 타일의 수(16)로 나누면 매트릭(Metric)으로 5.3이라는 값이 산출된다. 따라서, 뱅크 플립 맵핑 모드(BF Mode)에서 매트릭(Metric)은 5.3의 뱅크 인터리빙 크기를 가진다고 볼 수 있다. 이것은 타일 맵핑 모드(TM Mode)의 3.8에 비하여 상대적으로 크므로, 뱅크 플립 맵핑 모드로 어드레스 변환을 수행하는 것이 바람직함을 의미한다.
도 10 내지 도 11은 다양한 조건에서 T 값에 대한 매트릭(Metric) 값의 변화를 보여주는 그래프들이다. 도 10은 4개 뱅크(4-Bank), 2KByte 구조의 맵핑 메모리에서 타일 맵핑 모드(TM Mode)와 뱅크 플립 맵핑 모드(BF Mode) 각각의 매트릭(Metric) 값들을 보여준다. 점선으로 도시된 타일 맵핑 모드(TM Mode)의 매트릭(Metric)은 T 값이 (1, 3), (5, 7), (9, 11)에 분포하는 구간에서 뱅크 플립 맵 핑 모드(BF Mode)보다 높다. 따라서, 4개 뱅크(4-Bank), 2KByte 구조의 맵핑 메모리를 사용하는 경우, T 값이 (1, 3), (5, 7), (9, 11)에 분포하는 경우, 타일 맵핑 모드로 어드레스 맵핑을 수행하면 액세스 성능을 높일 수 있다.
반면, 4개 뱅크(4-Bank), 2KByte 구조의 맵핑 메모리에서 실선으로 도시된 뱅크 플립 맵핑 모드(BF Mode)에서의 매트릭(Metric)은 T 값이 (3, 5), (7, 9), (11, 13)에 분포하는 구간에서 상대적으로 뱅크 플립 맵핑 모드(BF Mode)보다 높다. 따라서, 4개 뱅크(4-Bank), 2KByte 구조의 맵핑 메모리를 사용하는 경우, T 값이 (3, 5), (7, 9), (11, 13)에 분포하는 경우, 타일 맵핑 모드를 뱅크 플립 맵핑 모드로 변환하는 것이 바람직하다.
도 11은 8개 뱅크(8-Bank), 4KByte 구조의 맵핑 메모리에서 타일 맵핑 모드(TM Mode)와 뱅크 플립 맵핑 모드(BF Mode) 각각의 매트릭(Metric) 값들을 보여준다. 점선으로 도시된 타일 맵핑 모드(TM Mode)의 매트릭(Metric)은 T 값이 (2, 6), (10, 14)에 분포하는 구간에서 뱅크 플립 맵핑 모드(BF Mode)보다 높다. 따라서, 8개 뱅크(8-Bank), 4KByte 구조의 맵핑 메모리를 사용하는 경우, T 값이 (2, 6), (10, 14)에 분포하는 경우, 타일 맵핑 모드(TM Mode)로 어드레스 맵핑을 수행하면 액세스 성능을 높일 수 있다.
반면, 8개 뱅크(8-Bank), 4KByte 구조의 맵핑 메모리에서 실선으로 도시된 뱅크 플립 맵핑 모드(BF Mode)에서의 매트릭(Metric)은 T 값이 (6, 10), (14, 18)에 분포하는 구간에서 상대적으로 뱅크 플립 맵핑 모드(BF Mode)보다 높다. 따라서, 4개 뱅크(8-Bank), 4KByte 구조의 맵핑 메모리를 사용하는 경우, T 값이 (6, 10), (14, 18)에 분포하는 경우, 타일 맵핑 모드(TM Mode)를 뱅크 플립 맵핑 모드(BF Mode)로 변환하는 것이 바람직하다.
여기서, 입력되는 특정 이미지 사이즈에서 타일 맵핑 모드(TM Mode)와 뱅크 플립 맵핑 모드(BF Mode) 중 어느 방식이 바람직한지를 결정하는 도 2의 검출기(124)의 기능을 보다 자세히 설명하기로 한다. 검출기(124)는 입력되는 이미지 데이터를 참조하여, T 값의 범위가 뱅크 플립 맵핑 모드(BF Mode)에 해당하는지, 또는 타일 맵핑 모드(TM Mode)에 해당하는지를 판단한다. 검출기(124)의 판단은 아래 수학식 3에 의거하여 수행된다.
Figure 112009081831644-PAT00004
(# Banks는 맵핑 메모리의 뱅크 수, n은 임의의 자연수)
상술한 수학식 3의 조건에 일치하는 경우, 검출기(124)는 뱅크 플립 맵핑 모드(BF Mode)로 맵핑 메모리의 어드레스를 출력하도록 어드레스 변환기(122) 및 어드레스 선택부(123)를 제어한다.
따라서 본 발명의 실시 예에 의한 어드레스 맵핑 방식에 따르면, 이미지의 사이즈와 맵핑 메모리의 구조에 최적화된 맵핑 모드를 선택할 수 있다. 그리고 본 발명의 실시 예에 따른 뱅크 인터리빙 방법에 의하면, 임의의 조건에서 적응적으로 뱅크 어드레스를 변환하여 최적의 액세스 성능의 보장이 가능하다.
이상에서는 이미지 데이터를 맵핑 메모리에 저장하는 기술을 통해서 본 발명 의 사상이 기술되었다. 그러나 본 발명의 이점은 여기에만 국한되지 않는다. 임의의 데이터를 복수의 뱅크를 가지는 메모리에 저장하는 모든 저장 장치에 확대 적용이 가능하다.
도 12는 본 발명의 실시 예에 따른 선택적 및 적응적으로 뱅크 어드레스를 플립핑하는 이미지 데이터의 맵핑 방법을 보여주는 순서도이다. 먼저, 이미지 데이터가 어드레스 발생기(120, 도 2 참조)에 입력되면, 본 발명의 실시 예에 따른 어드레스 맵핑 동작이 시작된다.
단계 S110에서, 이미지 데이터(Image data)는 어드레스 발생기(120)에 전달된다. 이미지 데이터(Image data)에는 선택된 특정 이미지 영역의 위치(x, y)와 크기 정보(xsize, ysize) 그리고 전체 이미지의 크기 정보(ImgH, ImgV), 타일의 크기 정보(TileH, TileV) 등을 포함할 수 있다. 이 밖에도, 뱅크 플립핑의 필요성을 판단하기 위하여, 시스템-온-칩(SoC) 또는 모듈로 탑재되는 맵핑 메모리(200)의 사양도 더 제공될 수 있다.
단계 S120에서, 상술한 이미지 데이터를 참조하여 이미지 데이터를 맵핑 메모리(200)에 저장하기 위한 타일 맵핑 어드레스(TM Address)가 생성된다. 타일 맵핑 어드레스(TM Address)는 이미지상의 타일들이 순차적으로 맵핑 메모리 상의 뱅크에 할당되는 뱅크 어드레스 할당 방식이다.
단계 S130에서, 검출기(124)는 의하여 뱅크 플립핑이 필요한지를 입력되는 이미지 데이터를 이용하여 계산하고 판단한다. 검출기(124)는 이미지 데이터(Image Data)를 이용하여 해당하는 이미지의 포맷 또는 사이즈에 최적화되는 뱅크 어드레 스의 맵핑 방식을 계산한다. 검출기(124)는 이미지 데이터로부터 이미지의 수평 크기에 수용 가능한 타일의 수(T value)를 계산한다. 검출기(124)는 계산 결과로 출력되는 타일 수(T value)가 타일 맵핑 모드에 대응하는 범위인지, 또는 뱅크 플립 맵핑 모드에 대응하는 범위에 속하는지 판단한다.
단계 S140에서, T 값이 뱅크 플립 맵핑 모드를 적용하기 위한 범위가 아닌 것으로 판단되면, 절차는 단계 S150으로 이동한다. 즉, 단계 S150에서 검출기(124)는 이미 타일 맵핑 어드레스 발생기(121)로부터 출력된 타일 맵핑 어드레스(TM address)를 맵핑 메모리(200)로 제공하도록 어드레스 선택부(123)를 제어한다.
반면, 단계 S140에서 T 값이 뱅크 플립 맵핑 모드를 적용하기 위한 타당한 범위로 판단되면, 절차는 단계 S160으로 이동한다.
단계 S160에서, 검출기(124)는 어드레스 변환기(122)를 활성화한다. 그러면, 어드레스 변환기(122)는 타일 맵핑 어드레스 발생기(121)로부터 출력된 타일 맵핑 어드레스(TM address)를 뱅크 플립핑을 위해서 재설정한다. 즉, 앞서 설명된 바와 같이, 어드레스 변환기(122)는 이미지상의 짝수 행에 위치하는 타일들의 뱅크 어드레스를 변경한다. 어드레스 변환기(122)는 타일 맵핑 어드레스(TM address) 상에서 짝수 행에 위치하는 타일들의 뱅크 어드레스의 최상위 비트(MSB)를 토글링시킨다. 그러면, 타일들 각각의 뱅크 인터리빙(BI)의 정도는 향상될 수 있다.
단계 S170에서, 검출기(124)는 어드레스 변환기(122)로부터 출력되는 뱅크 플립 맵핑 어드레스(BF Address)를 맵핑 메모리(200)로 제공하도록 어드레스 선택부(123)를 제어한다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 본 발명의 일 실시 예의 디스플레이 시스템을 보여주는 블록도;
도 2는 도 1에 도시된 어드레스 발생기를 보여주는 블록도;
도 3은 도 1의 맵핑 메모리의 구조를 간략히 보여주는 테이블;
도 4a 내지 도 4d는 본 발명의 타일 맵핑 모드를 보여주는 도면들;
도 5는 이미지의 수평 성분에 포함되는 타일 수가 증가하는 경우의 타일 맵핑 모드의 예를 보여주는 도면;
도 6은 본 발명의 뱅크 플립핑 연산을 보여주는 도면;
도 7은 타일 맵핑 모드와 뱅크 플립 맵핑 모드를 비교하여 보여주는 도면;
도 8은 다양한 이미지 포맷에서 타일 맵핑 모드 및 뱅크 플립 맵핑 모드의 뱅크 인터리빙(BI)의 크기를 시각적으로 보여주기 위한 도면;
도 9a 및 도 9b는 뱅크 인터리빙의 크기를 정량화하기 위한 매트릭 연산의 방법을 타일 맵핑 모드 및 뱅크 플립 맵핑 모드 각각에 대해서 보여주는 도면들;
도 10 및 도 11은 서로 다른 맵핑 메모리 사양에서 T 값에 따른 매트릭의 변화를 보여주는 그래프들; 그리고
도 12는 본 발명의 실시 예에 따른 어드레스 맵핑 방법을 보여주는 순서도.

Claims (10)

  1. 이미지 데이터를 복수의 타일 단위로 표시하는 디스플레이;
    상기 이미지 데이터를 상기 복수의 타일 단위로 저장하며, 복수의 타일들 각각을 복수의 뱅크들 중 어느 하나의 뱅크에 할당하는 맵핑 메모리; 그리고
    상기 복수의 타일들 각각을 상기 복수의 뱅크들에 순차적으로 할당하기 위한 제 1 어드레스와, 상기 복수의 타일들 중 짝수 또는 홀수 행의 타일들에 할당되는 뱅크 어드레스를 인터리빙하기 위한 제 2 어드레스 중 어느 하나를 상기 맵핑 메모리에 제공하는 이미지 맵핑부를 포함하는 디스플레이 시스템.
  2. 제 1 항에 있어서,
    상기 이미지 맵핑부는, 상기 이미지 데이터의 사이즈에 따라 상기 디스플레이 상에서 동일 열에 위치하는 타일들이 서로 다른 뱅크에 맵핑되도록 상기 제 1 어드레스와 상기 제 2 어드레스 중 어느 하나를 선택하는 디스플레이 시스템.
  3. 제 2 항에 있어서,
    상기 이미지 맵핑부는 상기 제 1 어드레스로부터 상기 짝수 또는 홀수 행에 대응하는 타일들의 뱅크 어드레스를 변환하여 상기 제 2 어드레스로 생성하는 디스플레이 시스템.
  4. 제 3 항에 있어서,
    상기 이미지 맵핑부는 상기 제 1 어드레스의 짝수 또는 홀수 행에 대응하는 타일들의 뱅크 어드레스의 최상위 비트(MSB)를 토글링하여 상기 제 2 어드레스로 변환하는 디스플레이 시스템.
  5. 제 1 항에 있어서,
    상기 이미지 맵핑부는 상기 이미지 데이터의 수평 사이즈에 수용될 수 있는 타일의 수를 계산하여 상기 제 1 어드레스와 상기 제 2 어드레스 중 어느 하나를 상기 맵핑 메모리에 제공하는 디스플레이 시스템.
  6. 제 1 항에 있어서,
    상기 이미지 맵핑부는,
    상기 이미지 데이터를 제공하는 프로세서; 그리고
    상기 이미지 데이터를 참조하여 상기 제 1 어드레스와 상기 제 2 어드레스 중 어느 하나를 상기 맵핑 메모리에 제공하는 어드레스 발생기를 포함하는 디스플레이 시스템.
  7. 제 6 항에 있어서,
    상기 어드레스 발생기는,
    상기 이미지 데이터를 참조하여 상기 제 1 어드레스를 생성하는 타일 맵핑 어드레스 발생기;
    상기 이미지 데이터와 상기 맵핑 메모리의 페이지 사이즈를 참조하여 상기 맵핑 메모리 상에서 뱅크 인터리빙의 정도가 더 큰 어드레스 방식을 선택하는 검출기;
    상기 검출기의 제어에 따라 상기 제 1 어드레스를 상기 제 2 어드레스로 전환하는 어드레스 변환기; 그리고
    상기 검출기의 제어에 따라 상기 제 1 어드레스와 상기 제 2 어드레스 중 어느 하나를 선택적으로 출력하는 어드레스 선택부를 포함하는 디스플레이 시스템.
  8. 복수의 뱅크들을 포함하는 메모리에 이미지를 저장하기 위한 어드레스 맵핑 방법에 있어서:
    상기 이미지를 복수의 타일들로 분할하고, 상기 복수의 타일들 각각을 상기 복수의 뱅크들에 순차적으로 할당하는 제 1 어드레스를 생성하는 단계;
    상기 제 1 어드레스에 의해 상기 이미지상의 어느 하나의 타일과 상기 어느 하나의 타일에 인접하는 타일들이 동일한 뱅크에 할당되었는지를 검출하는 단계; 그리고
    상기 이미지상의 어느 하나의 타일과 상기 어느 하나의 타일에 인접하는 타일들이 동일한 뱅크에 할당되는 것으로 검출되는 경우, 상기 제 1 어드레스의 뱅크 할당을 재설정한 제 2 어드레스를 생성하는 단계를 포함하는 어드레스 맵핑 방법.
  9. 제 8 항에 있어서,
    상기 검출하는 단계에서, 상기 이미지의 수평 성분에 수용가능한 타일의 수를 계산하는 단계를 포함하는 어드레스 맵핑 방법.
  10. 제 9 항에 있어서,
    상기 검출하는 단계에서, 상기 복수의 뱅크들의 수, 그리고 상기 복수의 뱅크들 각각의 페이지 용량을 참조하여 상기 이미지의 수평 성분에 수용 가능한 타일의 수가 제 1 어드레스에 대응하는지 또는 제 2 어드레스에 대응하는지를 판단하는 단계를 포함하는 어드레스 맵핑 방법.
KR1020090134573A 2009-12-30 2009-12-30 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법 KR101639574B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090134573A KR101639574B1 (ko) 2009-12-30 2009-12-30 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
US12/903,368 US8817033B2 (en) 2009-12-30 2010-10-13 Method and apparatus for performing adaptive memory bank addressing
US14/452,586 US9390007B2 (en) 2009-12-30 2014-08-06 Method and apparatus for performing adaptive memory bank addressing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090134573A KR101639574B1 (ko) 2009-12-30 2009-12-30 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법

Publications (2)

Publication Number Publication Date
KR20110077894A true KR20110077894A (ko) 2011-07-07
KR101639574B1 KR101639574B1 (ko) 2016-07-14

Family

ID=44186962

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090134573A KR101639574B1 (ko) 2009-12-30 2009-12-30 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법

Country Status (2)

Country Link
US (2) US8817033B2 (ko)
KR (1) KR101639574B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230066905A (ko) * 2021-11-08 2023-05-16 제주대학교 산학협력단 공유 메모리와 캐시인터리빙을 고려한 어드레스 매핑 장치 및 방법

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050131837A1 (en) 2003-12-15 2005-06-16 Sanctis Jeanne D. Method, system and program product for communicating e-commerce content over-the-air to mobile devices
US8799553B2 (en) * 2010-04-13 2014-08-05 Apple Inc. Memory controller mapping on-the-fly
US9201781B2 (en) * 2011-03-16 2015-12-01 Panasonic Intellectual Property Management Co., Ltd. Data processing apparatus, data processing method and data sharing system
KR20130122417A (ko) * 2012-04-30 2013-11-07 삼성전자주식회사 이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법
US9146846B2 (en) * 2012-09-14 2015-09-29 Advanced Micro Devices, Inc. Programmable physical address mapping for memory
KR101987160B1 (ko) 2012-09-24 2019-09-30 삼성전자주식회사 디스플레이 드라이버 집적회로, 그것을 포함하는 디스플레이 시스템 및 그것의 디스플레이 데이터 처리 방법
CN103680383B (zh) * 2012-09-24 2018-09-11 三星电子株式会社 显示驱动器集成电路、显示系统及其显示数据处理方法
US9245496B2 (en) * 2012-12-21 2016-01-26 Qualcomm Incorporated Multi-mode memory access techniques for performing graphics processing unit-based memory transfer operations
US10810654B1 (en) 2013-05-06 2020-10-20 Overstock.Com, Inc. System and method of mapping product attributes between different schemas
US10872350B1 (en) * 2013-12-06 2020-12-22 Overstock.Com, Inc. System and method for optimizing online marketing based upon relative advertisement placement
US20160299844A1 (en) * 2015-04-08 2016-10-13 Sandisk Enterprise Ip Llc Mapping Logical Groups of Data to Physical Locations In Memory
KR102491622B1 (ko) 2015-11-17 2023-01-25 삼성전자주식회사 가상 어드레스 생성기의 동작 방법과 이를 포함하는 시스템의 동작 방법
WO2018174933A1 (en) * 2017-03-20 2018-09-27 Intel Corporation Systems, methods, and apparatuses for tile load
US11275588B2 (en) 2017-07-01 2022-03-15 Intel Corporation Context save with variable save state size
US10303398B2 (en) * 2017-10-26 2019-05-28 Advanced Micro Devices, Inc. Swizzling in 3D stacked memory
US11205179B1 (en) 2019-04-26 2021-12-21 Overstock.Com, Inc. System, method, and program product for recognizing and rejecting fraudulent purchase attempts in e-commerce
US20210240524A1 (en) * 2020-01-31 2021-08-05 Qualcomm Incorporated Methods and apparatus to facilitate tile-based gpu machine learning acceleration

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03203124A (ja) * 1989-12-29 1991-09-04 Hitachi Cable Ltd 難燃性電線・ケーブル
JPH10143426A (ja) * 1996-06-20 1998-05-29 Cirrus Logic Inc メモリ回路に格納されたピクセルデータを転送する方法および装置
US20080079744A1 (en) * 2006-06-20 2008-04-03 Via Technologies, Inc. Systems and Methods for Performing a Bank Swizzle Operation to Reduce Bank Collisions
US20090009523A1 (en) * 2006-10-26 2009-01-08 Adrian Philip Wise System for interleaved storage of video data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2277012B (en) 1993-04-08 1997-06-18 Sony Uk Ltd Image data storage
US5815168A (en) 1995-06-23 1998-09-29 Cirrus Logic, Inc. Tiled memory addressing with programmable tile dimensions
US5841446A (en) 1996-11-01 1998-11-24 Compaq Computer Corp. Method and apparatus for address mapping of a video memory using tiling
US6310647B1 (en) * 1997-04-15 2001-10-30 Eastman Kodak Company Image format for storing digital images and including multiple application segments
US5990912A (en) * 1997-06-27 1999-11-23 S3 Incorporated Virtual address access to tiled surfaces
US6064407A (en) 1998-04-30 2000-05-16 Ati Technologies, Inc. Method and apparatus for tiling a block of image data
US6484179B1 (en) 1999-10-25 2002-11-19 Oracle Corporation Storing multidimensional data in a relational database management system
US6553552B1 (en) 2000-01-27 2003-04-22 National Semiconductor Corporation Method of designing an integrated circuit memory architecture
JP3918145B2 (ja) * 2001-05-21 2007-05-23 株式会社ルネサステクノロジ メモリコントローラ
US7016418B2 (en) 2001-08-07 2006-03-21 Ati Technologies, Inc. Tiled memory configuration for mapping video data and method thereof
US6888551B2 (en) * 2001-12-07 2005-05-03 Intel Corporation Sparse refresh of display
US20080158601A1 (en) * 2006-12-29 2008-07-03 Steven Tu Image memory tiling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03203124A (ja) * 1989-12-29 1991-09-04 Hitachi Cable Ltd 難燃性電線・ケーブル
JPH10143426A (ja) * 1996-06-20 1998-05-29 Cirrus Logic Inc メモリ回路に格納されたピクセルデータを転送する方法および装置
US20080079744A1 (en) * 2006-06-20 2008-04-03 Via Technologies, Inc. Systems and Methods for Performing a Bank Swizzle Operation to Reduce Bank Collisions
US20090009523A1 (en) * 2006-10-26 2009-01-08 Adrian Philip Wise System for interleaved storage of video data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230066905A (ko) * 2021-11-08 2023-05-16 제주대학교 산학협력단 공유 메모리와 캐시인터리빙을 고려한 어드레스 매핑 장치 및 방법

Also Published As

Publication number Publication date
US9390007B2 (en) 2016-07-12
US20110157200A1 (en) 2011-06-30
US8817033B2 (en) 2014-08-26
KR101639574B1 (ko) 2016-07-14
US20140347382A1 (en) 2014-11-27

Similar Documents

Publication Publication Date Title
KR101639574B1 (ko) 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
US8493400B2 (en) Memory device and memory control for controlling the same
KR20070013205A (ko) 이미지 회전을 위한 방법 및 장치
JP5039334B2 (ja) キャッシュメモリ制御方法、及び装置
KR102002900B1 (ko) 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
EP0948777A1 (en) Tiled linear host texture storage
US10163180B2 (en) Adaptive memory address scanning based on surface format for graphics processing
CN106846255B (zh) 图像旋转实现方法及装置
KR20080020066A (ko) 동일한 픽셀 데이터 그룹에 포함되는 픽셀 데이터들을메모리의 동일한 뱅크 어드레스로 매핑하는 매핑 방법 및비디오 시스템
CN116010299B (zh) 一种数据处理方法、装置、设备及可读存储介质
KR101801901B1 (ko) 데이터 구역성을 고려하여 액세스되는 메모리 장치 및 이를 포함하는 전자 시스템
JP5884037B2 (ja) データ処理装置、データ処理方法及びデータ共有システム
US8305383B2 (en) Data access apparatus and method
US6927776B2 (en) Data transfer device and method
KR20150069164A (ko) 영상 처리 장치
US10692171B2 (en) Method of operating virtual address generator and method of operating system including the same
KR102516833B1 (ko) 메모리 장치 및 그 데이터 처리 방법
JP2005228073A (ja) 画像処理装置、マイクロコンピュータ及び電子機器
CN112992066B (zh) 显示数据存取方法及其控制电路、显示器和资讯处理装置
KR102565238B1 (ko) 공유 메모리와 캐시인터리빙을 고려한 어드레스 매핑 장치 및 방법
JP5605225B2 (ja) メモリ制御装置、メモリマッピング方法、及び、プログラム
KR920008266B1 (ko) 효율적인 영상분석 처리 메모리 시스템
JPH043094A (ja) 表示装置
JP2005182384A (ja) 画像処理装置、マイクロコンピュータ及び電子機器
JP2011170594A (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: 20190628

Year of fee payment: 4