KR20130122417A - 이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법 - Google Patents

이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법 Download PDF

Info

Publication number
KR20130122417A
KR20130122417A KR1020120045722A KR20120045722A KR20130122417A KR 20130122417 A KR20130122417 A KR 20130122417A KR 1020120045722 A KR1020120045722 A KR 1020120045722A KR 20120045722 A KR20120045722 A KR 20120045722A KR 20130122417 A KR20130122417 A KR 20130122417A
Authority
KR
South Korea
Prior art keywords
image
mapping
memories
interleaving
memory
Prior art date
Application number
KR1020120045722A
Other languages
English (en)
Inventor
허재영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020120045722A priority Critical patent/KR20130122417A/ko
Priority to US13/785,907 priority patent/US20130286028A1/en
Publication of KR20130122417A publication Critical patent/KR20130122417A/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • 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/001Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
    • 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
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/123Frame memory handling using interleaving

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 이미지를 복수의 메모리들에 인터리빙하여 매핑하는 어드레스 생성기의 동작 방법에 관한 것이다. 본 발명의 동작 방법은, 이미지 및 인터리빙의 정보를 검출하는 단계, 검출 결과에 따라 어드레스 매핑 스킴을 선택하는 단계, 그리고 선택된 어드레스 매핑 스킴에 따라 이미지를 상기 복수의 메모리들에 매핑하는 단계로 구성된다.

Description

이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법{ADDRESS GENERATOR OF IMAGE PROCESSING DEVICE AND OPERATING METHOD OF ADDRESS GENERATOR}
본 발명은 이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법에 관한 것이다.
최근 들어서는, 스마트폰, 스마트 패드, 노트북 컴퓨터 등과 같은 휴대용 정보기기의 사용이 급증하고 있다. 휴대용 정보기기들은 이미지를 표시하는 수단으로서 디스플레이 유닛을 구비한다. 특히, 유통되는 콘텐츠가 멀티미디어의 형태를 띄면서, 디스플레이 유닛의 구비는 휴대용 정보기기들의 필수적은 요소가 되고 있다.
이미지의 고화질화가 진행되면서, 이미지의 용량이 증가하고 있다. 고용량의 이미지를 효율적으로 관리하기 위하여, 이미지를 복수의 부분들로 나누어 관리하는 방법이 연구되고 있다. 예를 들어, 이미지는 하나의 메모리의 복수의 부분들(예를 들어, 뱅크들)에 분산 저장되어 관리되거나, 복수의 메모리들에 분산 저장되어 관리될 수 있다. 이미지를 분산 저장하여 관리할 때, 분산 저장된 이미지의 효율적인 부하 밸런싱(load balancing)을 달성하는 것이 주요한 과제 중 하나로 남아 있다.
본 발명의 목적은 향상된 부하 분산(load balancing), 동작 속도 및 유연성을 갖는 이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법을 제공하는 데에 있다.
이미지를 복수의 메모리들에 인터리빙하여 매핑하는 본 발명의 실시 예에 딸따른 어드레스 생성기의 동작 방법은, 상기 이미지 및 상기 인터리빙의 정보를 검출하는 단계; 상기 검출 결과에 따라 어드레스 매핑 스킴을 선택하는 단계; 그리고 상기 선택된 어드레스 매핑 스킴에 따라 상기 이미지를 상기 복수의 메모리들에 매핑하는 단계를 포함한다.
실시 예로서, 상기 매핑 스킴을 선택하는 단계는, 둘 이상의 어드레스 매핑 스킴 중 하나를 선택하는 단계를 포함한다.
실시 예로서, 상기 둘 이상의 어드레스 매핑 스킴은, 상기 이미지를 상기 인터리빙의 사이즈에 따라 순차적으로 상기 복수의 메모리들에 매핑하는 제 1 스킴을 포함한다.
실시 예로서, 상기 둘 이상의 어드레스 매핑 스킴은, 상기 이미지의 일부를 상기 제 1 스킴에 따라 상기 복수의 메모리들에 매핑하고, 상기 이미지의 나머지 일부를 상기 제 1 스킴과 다른 순서로 상기 복수의 메모리들에 매핑하는 제 2 스킴을 더 포함한다.
실시 예로서, 상기 복수의 메모리들을 가리키는 메모리 어드레스들 중 메모리 매핑 비트들은 상기 복수의 메모리들 중 하나를 가리킨다.
실시 예로서, 상기 어드레스 매핑 스킴을 선택하는 단계는, 상기 이미지 및 상기 인터리빙의 정보가 제 1 조건을 만족할 때, 상기 인터리빙의 단위에 따라 순차적으로 상기 메모리 매핑 비트들을 증가시키는 제 1 스킴을 선택하는 단계를 포함한다.
실시 예로서, 상기 어드레스 매핑 스킴을 선택하는 단계는, 상기 이미지 및 상기 인터리빙의 정보가 제 2 조건을 만족할 때, 상기 인터리빙의 단위에 따라 순차적으로 상기 메모리 매핑 비트들을 증가시키되, 일부 인터리빙의 단위들에 대응하는 메모리 매핑 비트들을 조절하는 제 2 스킴을 선택하는 단계를 더 포함한다.
실시 예로서, 상기 일부 인터리빙의 단위들에 대응하는 메모리 매핑 비트들의 최상위 비트들이 반전된다.
실시 예로서, 상기 이미지는 상기 인터리빙의 단위에 따라 매트릭스 형태로 분할되고, 상기 일부 인터리빙의 단위들은 상기 매트릭스 형태의 짝수 행들에 대응한다.
실시 예로서, 상기 이미지는 상기 인터리빙의 단위에 따라 매트릭스 형태로 분할되고, 상기 일부 인터리빙의 단위들은 상기 매트릭스 형태의 짝수 열들에 대응한다.
실시 예로서, 상기 이미지 및 상기 복수의 메모리들의 정보는 상기 이미지의 사이즈, 상기 이미지가 분할된 복수의 타일들 각각의 사이즈, 상기 인터리빙의 단위, 그리고 상기 복수의 메모리들의 갯수를 포함한다.
본 발명의 실시 예에 따른 이미지 처리 장치의 어드레스 발생기는, 이미지의 정보를 수신하고, 상기 수신된 이미지의 정보에 기반하여 복수의 메모리들에 대응하는 제 1 메모리 어드레스들을 출력하도록 구성되는 어드레스 매핑부; 상기 메모리 어드레스들을 수신하고, 상기 수신된 메모리 어드레스들 중 상기 복수의 메모리들 중 하나를 선택하는 메모리 매핑 비트들을 조절하여 제 2 메모리 어드레스들로 출력하도록 구성되는 메모리 매핑 비트 조절부; 상기 이미지의 정보 및 상기 이미지가 상기 복수의 메모리들에 분산 저장되는 인터리빙의 정보를 수신하고, 상기 수신된 이미지의 정보 및 인터리빙의 정보에 기반하여 선택 신호를 출력하도록 구성되는 체킹부; 그리고 상기 선택 신호에 응답하여, 상기 제 1 메모리 어드레스들과 제 2 메모리 어드레스들 중 하나의 어드레스들을 출력하도록 구성되는 멀티플렉서를 포함한다.
실시 예로서, 상기 메모리 매핑 비트 조절부는 상기 메모리 매핑 비트들 중 최상위 비트를 반전하도록 구성된다.
실시 예로서, 상기 이미지의 정보는 상기 이미지의 사이즈 및 상기 이미지가 분할된 타일들 각각의 사이즈를 포함한다.
실시 예로서, 상기 인터리빙의 정보는 상기 인터리빙의 단위 및 상기 복수의 메모리들의 갯수를 포함한다.
본 발명에 따르면, 이미지의 정보 및 인터리빙의 정보에 따라 어드레스 매핑 스킴이 선택된다. 이미지의 정보 및 인터리빙의 정보가 변경되어도 최적의 부하 분산 효율을 갖는 어드레스 매핑 스킴이 선택된다. 따라서, 향상된 부하 분산 효율, 동작 속도 및 유연성을 갖는 이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법이 제공된다.
도 1은 본 발명의 제 1 실시 예에 따른 이미지 처리 장치를 보여주는 블록도이다.
도 2는 도 1의 마스터들에 의해 처리되는 이미지 데이터의 예를 보여준다.
도 3은 본 발명의 실시 예에 따른 어드레스 발생기들의 동작 방법을 보여주는 순서도이다.
도 4는 복수의 마스터들이 이미지 데이터의 일부를 액세스하는 예를 보여준다.
도 5는 본 발명의 제 1 실시 예에 따른 어드레스 매핑 방법을 보여준다.
도 6은 본 발명의 제 2 실시 예에 따른 어드레스 매핑 스킴을 보여준다.
도 7은 타일 갯수 변수에 따른 TM 어드레스 매핑 및 MF 어드레스 매핑에 따른 메모리 매핑 및 메트릭을 보여주는 테이블이다.
도 8은 타일 갯수 변수에 따른 TM 어드레스 매핑과 MF 어드레스 매핑의 메트릭을 보여주는 그래프이다.
도 9는 TM 어드레스 매핑 및 MF 어드레스 매핑을 선택하는 조건들의 예를 보여주는 테이블이다.
도 10은 인터리빙 단위가 타일 사이즈보다 클 때 MF 어드레스 매핑이 수행되는 방법을 보여주는 도면이다.
도 11은 인터리빙 단위가 타일 사이즈보다 작을 때 MF 어드레스 매핑이 수행되는 방법을 보여주는 도면이다.
도 12는 본 발명의 실시 예에 따른 어드레스 발생기를 보여주는 블록도이다.
도 13은 본 발명의 제 2 실시 예에 따른 이미지 처리 장치를 보여주는 블록도이다.
도 14는 본 발명의 실시 예에 따른 멀티미디어 장치를 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 제 1 실시 예에 따른 이미지 처리 장치(100)를 보여주는 블록도이다. 도 1을 참조하면, 이미지 처리 장치(100)는 버스(110), 복수의 마스터들(121~12k) 및 복수의 메모리들(131~13n)을 포함한다.
버스(110)는 이미지 처리 장치(100)의 구성 요소들 사이에 채널들을 제공하도록 구성된다.
복수의 마스터들(121~12k)은 이미지 처리 장치(131~13n)의 슬레이브들, 예를 들어 메모리들(131~13n)을 제어할 수 있다. 복수의 마스터들(121~12k)은 상호간에 데이터를 교환할 수 있다. 복수의 마스터들(121~12k)은 수신된 데이터를 처리하고 출력할 수 있다. 예를 들어, 복수의 마스터들(121~12k)은 GPU (Graphic Processing Unit), CPU (Central Processing Unit), ISP (Image Signal Processor), 모뎀 등을 포함할 수 있다.
복수의 마스터들(121~12k) 각각은 어드레스 발생기들(AG1~AGk)을 각각 포함한다. 어드레스 발생기들(AG1~AGk)은 복수의 마스터들(121~12k)의 제어에 따라 어드레스들, 예를 들어 메모리들(131~13n)의 어드레스들을 발생하도록 구성된다. 어드레스 발생기들(AG1~AGk)은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어가 조합된 형태로 구현될 수 있다.
복수의 마스터들(121~12k)은 이미지 데이터를 화소들의 위치들에 기반하여 제어할 수 있다. 예를 들어, 복수의 마스터들(121~12k)은 이미지 데이터의 화소들의 좌표값들에 따라 이미지 데이터를 처리할 수 있다.
이미지 데이터는 메모리들(131~13n)에 분산 저장될 수 있다. 예를 들어, 이미지 데이터는 메모리들(131~13n)에 인터리빙되어 저장될 수 있다. 즉, 복수의 마스터들(121~12k)이 처리하는 이미지 데이터의 화소들의 위치에 기반한 어드레스들과 메모리들(131~13n)에 저장된 이미지 데이터의 메모리 어드레스들은 서로 다를 수 있다.
어드레스 발생기들(AG1~AGk)은 복수의 마스터들(121~12k)에 의해 처리되는 어드레스들(이하에서, 화소 어드레스들이라 부르기로 함)을 수신하고, 메모리들(131~13n)에서 처리되는 어드레스들(이하에서, 메모리 어드레스들이라 부르기로 함)을 발생할 수 있다.
복수의 마스터들(121~12k), 메모리들(131~13n) 및 버스(110)는 시스템-온-칩(SoC, System-on-Chip)으로 집적될 수 있다.
도 2는 도 1의 마스터들(121~12k)에 의해 처리되는 이미지 데이터의 예를 보여준다. 도 1 및 도 2를 참조하면, 마스터들(121~12k)은 이미지 데이터를 복수의 타일들(T1~T16)로 분할하여 처리할 수 있다. 마스터들(121~12k)은 메모리들(131~13n)에 저장된 이미지 데이터를 각 타일의 단위로 액세스할 수 있다. 예를 들어, 메모리들(131~13n)은 하나의 타일의 단위로 이미지 데이터를 메모리들(131~13n)에 쓸 수 있고, 하나의 타일의 단위로 이미지 데이터를 메모리들(131~13n)로부터 호출할 수 있다.
이미지 데이터는 메모리들(131~13n)에 인터리빙되어 저장될 수 있다. 이미지 데이터는 인터리빙 단위(interleaving granularity)에 기반하여 분할되고, 메모리들(131~13n)에 분산 저장될 수 있다. 예시적으로, 인터리빙 단위(interleaving granularity)는 각 타일의 사이즈와 동일하거나 같을 수 있다. 간결한 설명을 위하여, 별도의 설명이 없는 한, 인터리빙 단위와 각 타일의 사이즈는 동일한 것으로 간주되어 본 발명의 실시 예들이 설명된다.
하나의 인터리빙 단위(예를 들어, 하나의 타일)에 해당하는 이미지 데이터는 동일한 메모리에 저장된다. 하나의 인터리빙 단위(예를 들어, 하나의 타일)에 해당하는 이미지 데이터는 제 1 방향 및 제 2 방향에 따라 메모리 어드레스들을 할당받는다. 예를 들어, 제 1 타일(T1)의 제 1 행의 이미지 데이터는 제 1 열의 이미지 데이터로부터 제 1 방향을 따라 연속적인 메모리 어드레스들을 할당받을 수 있다. 제 1 타일(T1)의 제 1 행의 마지막 열의 이미지 데이터의 메모리 어드레스와 제 2 행의 제 1 열의 이미지 데이터의 메모리 어드레스들은 연속할 수 있다.
즉, 하나의 인터리빙 단위(예를 들어, 하나의 타일)에 해당하는 이미지 데이터에서, 하나의 행의 이미지 데이터는 제 1 방향을 따라 연속한 메모리 어드레스들을 할당받고, 하나의 행의 마지막 열의 이미지 데이터와 그 다음 행의 첫 번째 열의 이미지 데이터는 연속한 메모리 어드레스들을 할당받을 수 있다.
도 3은 본 발명의 실시 예에 따른 어드레스 발생기들(AG1~AGk)의 동작 방법을 보여주는 순서도이다. 도 1 내지 도 3을 참조하면, S110 단계에서, 어드레스 발생기들(AG1~AGk)은 이미지 처리 장치(100)에서 처리되는 이미지 사이즈, 타일 사이즈, 그리고 인터리빙 단위를 검출한다.
S120 단계에서, 어드레스 발생기들(AG1~AGk)은 검출 결과에 따라 어드레스 매핑 스킴을 선택한다.
S130 단계에서, 어드레스 발생기들(AG1~AGk)은 선택된 어드레스 매핑 스킴에 따라 이미지를 복수의 메모리들에 매핑한다. 예를 들어, 어드레스 발생기들(AG1~AGk)은 이미지 어드레스들을 메모리 어드레스들로 변환한다.
예시적으로, 이미지 처리 장치(100)에서 처리되는 이미지 사이즈 및 타일 사이즈는 복수의 마스터들(121~12k)의 스펙(specification)에 따라 결정될 수 있다. 이미지 처리 장치(100)에서 처리되는 인터리빙 단위 및 메모리들(131~13n)의 수는 이미지 처리 장치(100)의 스펙(specification)에 따라 결정될 수 있다.
이미지 처리 장치(100)의 마스터들(121~12k)이 변경(예를 들어, 설계 변경 등의 이유로)될 때, 이미지 처리 장치(100)의 인터리빙 단위 및 메모리들(131~13n)의 수는 유지되는 반면, 이미지 사이즈 및 타일 사이즈(또는 타일의 수)는 변경될 수 있다. 이미지 처리 장치(100)의 마스터들(121~12k)은 유지되고 인터리빙 단위 또는 메모리들(131~13k)의 수가 변경(예를 들어, 설계 변경 등의 이유로)될 때, 이미지 처리 장치(100)의 이미지 사이즈 및 타일 사이즈(또는 타일의 수)는 유지되는 반면, 인터리빙 단위 및 인터리빙된 이미지 데이터가 저장되는 메모리들(131~13k)은 변경될 수 있다.
본 발명의 실시 예에 따른 어드레스 발생기들(AG1~AGk)은 이미지 사이즈, 타일 사이즈(또는 타일의 수), 인터리빙 단위, 또는 메모리들(131~13n)의 수가 변경되어도, 최적화된 부하 분산(load balancing)을 선택하고 이에 따라 이미지를 복수의 메모리들에 매핑하도록 구성된다. 따라서, 유연성(flexibility) 및 향상된 동작 속도를 갖는 이미지 처리 장치(100)가 제공된다.
도 4는 복수의 마스터들(121~12k)이 이미지 데이터의 일부를 액세스하는 예를 보여준다. 도 1 및 도 4를 참조하면, 복수의 마스터들(121~12k) 중 적어도 하나의 마스터가 이미지 데이터의 부분 데이터(B1)를 액세스할 수 있다. 예를 들어, 적어도 하나의 마스터는 이미지 데이터의 부분 데이터(B1)를 호출할 수 있다.
적어도 하나의 마스터는 화소들의 위치들에 기반하여 이미지 데이터를 처리한다. 적어도 하나의 마스터는 화소들의 행들의 단위로 이미지 데이터를 호출할 수 있다.
제 1 데이터(B1)는 네 개의 타일들(T1, T2, T5, T6)에 걸쳐 형성되어 있다. 적어도 하나의 마스터가 부분 데이터(B1)의 제 1 행(예를 들어, 화소들의 행)을 호출할 때, 어드레스 발생기(AG)는 제 1 타일(T1)의 데이터(1)의 제 1 행의 메모리 어드레스들을 발생하고, 제 2 타일(T2)의 데이터(2)의 제 1 행의 메모리 어드레스들을 발생할 수 있다. 적어도 하나의 마스터가 부분 데이터(B1)의 제 5 타일(T5) 및 제 6 타일(T6)에 해당하는 제 1 행(예를 들어, 화소들의 행)을 호출할 때, 어드레스 발생기(AG)는 제 5 타일(T5)의 데이터(3)의 제 1 행의 메모리 어드레스들을 발생하고, 제 6 타일(T6)의 데이터(4)의 제 1 행의 메모리 어드레스들을 발생할 수 있다.
즉, 적어도 하나의 마스터가 부분 데이터(B1)를 호출할 때, 어드레스 발생기(AG)는 타일들(T1, T2, T5, T6)이 각각 저장된 메모리들의 메모리 어드레스들을 발생할 수 있다. 타일들(T1, T2, T5, T6)이 동일한 메모리에 저장되어 있을 때, 부분 데이터(B1)는 하나의 메모리로부터 읽어진다. 즉, 부하(load)가 하나의 메모리에 집중된다. 타일들(T1, T2, T5, T6)이 서로 다른 메모리들에 저장되어 있을 때, 부분 데이터(B1)는 서로 다른 메모리들로부터 각각 읽어진다. 적어도 하나의 마스터가 부분 데이터(B1)를 호출할 때, 부분 데이터(B1)가 몇 개의 메모리들에 인터리빙(또는 어드레스 매핑)되어 있는지에 따라, 부하 분산의 효율이 달라질 수 있다.
도 5는 본 발명의 제 1 실시 예에 따른 어드레스 매핑 스킴을 보여준다. 도 1 및 도 5를 참조하면, 제 1 실시 예에 따른 어드레스 매핑 스킴은 타일드 모드(tiled mode, TM) 어드레스 매핑일 수 있다. 예시적으로, 이미지 데이터가 네 개의 메모리들(M1~M4)에 인터리빙되는 예가 설명된다.
TM 어드레스 매핑은 각 행의 타일들을 제 1 방향을 따라 순차적으로 메모리들(M1~M4)에 매핑할 수 있다. 제 1 내지 제 4 타일들(T1~T4)은 제 1 내지 제 4 메모리들(M1~M4)에 각각 매핑되고, 제 5 내지 제 8 타일들(T5~T8)은 제 1 내지 제 4 메모리들(M1~M4)에 각각 매핑되고, 제 9 내지 제 12 타일들(T9~T12)은 제 1 내지 제 4 메모리들(M1~M4)에 각각 매핑되고, 제 13 내지 제 16 타일들(T13~T16)은 제 1 내지 제 4 메모리들(M1~M4)에 각각 매핑될 수 있다.
예시적으로, 메모리 어드레스들은 32비트일 수 있다. 32비트의 메모리 어드레스들 중 11 및 12 번째 비트들이 메모리들(M1~M4)의 매핑을 위해 할당될 수 있다. i 번째 비트가 매핑을 위해 사용되면, 2^i 비트의 이미지 데이터는 하나의 메모리의 연속적인 어드레스들에 할당될 수 있다. 11 번째 비트가 매핑을 위해 사용되면, 2^11 비트의 이미지 데이터는 하나의 메모리의 연속적인 어드레스들에 할당될 수 있다. 이하에서, 메모리 어드레스들 중 메모리들(M1~M4)의 매핑을 위해 할당된 비트들을 메모리 매핑 비트들이라 부르기로 한다.
메모리 매핑 비트들이 '00'일 때, 메모리 어드레스들은 제 1 메모리(M1)에 대응할 수 있다. 메모리 매핑 비트들이 '01'일 때, 메모리 어드레스들은 제 2 메모리(M2)에 대응할 수 있다. 메모리 매핑 비트들이 '10'일 때, 메모리 어드레스들은 제 3 메모리(M3)에 대응할 수 있다. 메모리 매핑 비트들이 '11'일 때, 메모리 어드레스들은 제 4 메모리(M4)에 대응할 수 있다.
도 6은 본 발명의 제 2 실시 예에 따른 어드레스 매핑 스킴을 보여준다. 도 1, 도 5 및 도 6을 참조하면, 제 2 실시 예에 따른 어드레스 매핑 스킴은 메모리 플립(memory flipping, MF) 어드레스 매핑일 수 있다. 예시적으로, 이미지 데이터가 네 개의 메모리들(M1~M4)에 인터리빙되는 예가 설명된다.
MF 어드레스 매핑은 TM 어드레스 매핑을 기반으로 하되, 일부 행 또는 일부 열의 메모리 매핑 비트들을 변환할 수 있다. 예시적으로, 짝수 행의 메모리 어드레스들의 메모리 매핑 비트들이 변환될 수 있다. 메모리 매핑 비트들 중 최상위 비트(MSB, Most Significant Bit)가 반전될 수 있다.
TM 어드레스 매핑의 메모리 매핑 비트들이 '00'일 때, MF 어드레스 매핑의 메모리 매핑 비트들은 '10'이고, 제 3 메모리(M3)에 대응할 수 있다. TM 어드레스 매핑의 메모리 매핑 비트들이 '01'일 때, MF 어드레스 매핑의 메모리 매핑 비트들은 '11'이고, 제 4 메모리(M4)에 대응할 수 있다. TM 어드레스 매핑의 메모리 매핑 비트들이 '10'일 때, MF 어드레스 매핑의 메모리 매핑 비트들은 '00'이고, 제 1 메모리(M1)에 대응할 수 있다 TM 어드레스 매핑의 메모리 매핑 비트들이 '11'일 때, MF 어드레스 매핑의 메모리 매핑 비트들은 '01'이고, 제 2 메모리(M2)에 대응할 수 있다.
도 5 및 도 6을 비교하면, 이미지 데이터의 짝수 행의 타일들이 매핑되는 메모리들이 변경되는 것이 확인된다. 도 5에서, 부분 데이터(B1)는 제 1 및 제 2 메모리들(M1, M2)로부터 호출된다. 도 6에서, 부분 데이터(B1)는 제 1 내지 제 4 메모리들(M1~M4)로부터 분산되어 호출된다. TM 어드레스 매핑 및 MF 어드레스 매핑 중 어느 매핑 스킴이 사용되는지에 따라, 부분 데이터(B1)가 호출되는 메모리들의 수가 달라진다. 부분 데이터(B1)가 호출되는 메모리들의 수가 증가할수록, 부하 분산의 효과가 증대될 수 있다.
본 발명의 실시 예에 따른 어드레스 발생기들(AG1~AGk, 도 1 참조)은 이미지 사이즈, 타일 사이즈(또는 타일의 수), 인터리빙 단위 및 메모리들(131~13n)의 수에 따라, TM 어드레스 매핑 및 MF 어드레스 매핑 중 최적의 부하 분산(load balancing) 효과를 갖는 어드레스 매핑 스킴을 선택한다.
이하에서, TM 어드레스 매핑과 MF 어드레스 매핑의 부하 분산 효과를 비교하기 위하여, 타일 변수(T) 및 메트릭(Metric)이 정의된다. 타일 갯수 변수(T)는 수학식 1과 같이 정의될 수 있다. 메트릭(Metric)은 수학식 2와 같이 정의될 수 있다.
Figure pat00001
여기에서, 이미지 변수(ImgH)는 이미지의 가로 사이즈를 가리키고, 타일 변수(TileH)는 타일의 가로 사이즈를 가리킨다. 즉, 타일 갯수 변수(T)는 이미지가 가로 방향으로 몇 개의 타일들로 분할되는지를 가리킨다.
Figure pat00002
Figure pat00003
여기에서, 변수(i 또는 j)는 타일들을 가리킨다. 함수(Compare(j))는 비교되는 타일들이 동일한 메모리에 저장될 때 '0'을 리턴하고, 비교되는 타일들이 서로 다른 메모리에 저장될 때 '1'을 리턴할 수 있다. 즉, 함수(S(i))는 특정 타일에 인접한 타일들 중 특정 타일과 다른 메모리에 저장되는 타일들의 수를 가리킨다. 메트릭(Metric)은 이미지 데이터의 인접한 타일들이 서로 다른 메모리들에 저장되는 비율을 가리킨다. 즉, 메트릭(Metric)이 증가할수록 부하 분산(load balancing)의 효율이 증가할 수 있다.
예시적으로, 도 5에서, 타일들에 각각 대응하는 함수(S(j))의 값은 T1:2, T2:4, T3:3, T4:4, T5:6, T6:4, T7:3, T8:4, T9:2 일 수 있다. 도 5에서, 메트릭(Metric)은 3.55일 수 있다. 도 6에서, 타일들에 각각 대응하는 함수(S(j))의 값은 T1:3, T2:4, T3:2, T4:4, T5:6, T6:4, T7:2, T8:4, T9:3 일 수 있다. 도 6에서, 메트릭(Metric)은 3.55일 수 있다.
도 7은 타일 갯수 변수(T)에 따른 TM 어드레스 매핑 및 MF 어드레스 매핑에 따른 메모리 매핑의 예를 보여주는 테이블이다. 도 7을 참조하면, 이미지 데이터는 네 개의 메모리들에 인터리빙되는 것으로 가정되며, 각 타일 내부의 참조번호는 매핑되는 메모리를 가리킨다. MF 어드레스 매핑은 TM 어드레스 매핑에 따라 생성된 메모리 어드레스들에서, 짝수 행의 타일들에 해당하는 메모리 매핑 비트들의 MSB를 반전할 수 있다.
타일 갯수 변수(T)가 4일 때, TM 어드레스 매핑은 각 행의 타일들이 동일한 순서로 메모리들에 매핑되어 낮은 메트릭(Metric)을 갖고, MF 어드레스 매핑은 각 행의 타일들이 혼재되어 메모리들에 매핑되어 높은 메트릭(Metric)을 갖는다. 타일 객수 변수(T)가 6일 때, MF 어드레스 매핑은 각 행의 타일들이 동일한 순서로 메모리들에 매핑되어 낮은 메트릭(Metric)을 갖고, TM 어드레스 매핑은 각 행의 타일들이 혼재되어 메모리들에 매핑되어 높은 메트릭(Metric)을 갖는다.
도 8은 타일 갯수 변수에 따른 TM 어드레스 매핑과 MF 어드레스 매핑의 메트릭(Metric)을 보여주는 그래프이다. 도 8에서, 가로 축은 타일 갯수 변수(T)를 가리키고, 세로 축은 메트릭(Metric)을 가리킨다. 도 8을 참조하면, 타일 갯수 변수(T)에 따라, TM 어드레스 매핑 및 MF 어드레스 매핑은 상반된 메트릭(Metric)을 갖는다. TM 어드레스 매핑의 메트릭(Metric)이 증가할 때 MF 어드레스 매핑의 메트릭(Metric)은 감소한다. TM 어드레스 매핑의 메트릭(Metric)이 감소할 때 MF 어드레스 매핑의 메트릭(Metric)은 증가한다.
도 8로부터, MF 어드레스 매핑의 메트릭(Metric)이 TM 어드레스 매핑의 메트릭(Metric)보다 높은 구간이 산출될 수 있다. 이 구간은 수학식 3으로 나타내어질 수 있다.
Figure pat00004
여기에서, 변수(NM)는 메모리들의 갯수를 가리키고, 변수(n)은 양의 정수를 가리킨다. 타일 갯수 변수(T)의 값이 수학식 3을 만족하면, MF 어드레스 매핑의 메트릭(Metric)이 TM 어드레스 매핑의 메트릭(Metric)보다 높다. 즉, MF 어드레스 매핑의 부하 분산 효과가 TM 어드레스 매핑의 부하 분산 효과보다 높다.
수학식 3에 따르면, 메모리들의 갯수가 4일 때, MF 어드레스 매핑이 우수한 타일 갯수 변수(T)의 값은 3 내지 5, 7 내지 9, 11 내지 13, 15 내지 17, 19 내지 21 등일 수 있다.
타일 사이즈와 인터리빙 단위(interleaving granularity)가 동일하고, 이미지 처리 장치(100, 도 1 참조)가 수학식 3의 조건을 만족할 때, 어드레스 발생기들(AG1~AGk)은 TM 어드레스 매핑에 기반하되, 짝수 행들에 대해 MF 어드레스 매핑을 수행할 수 있다. 이미지 처리 장치(100)가 수학식 3의 조건을 만족하지 않을 때, 어드레스 발생기들(AG1~AGk)은 TM 어드레스 매핑을 수행할 수 있다.
도 7 및 도 8에 도시된 바와 같이, 타일 갯수 변수(T)에 따라, TM 어드레스 매핑 및 MF 어드레스 매핑은 서로 다른 부하 분산 효과를 갖는다. 본 발명의 실시 예에 따른 어드레스 발생기들(AG1~AGk, 도 1 참조)타일 갯수 변수(T)를 포함한 다양한 조건들을 고려하여, TM 어드레스 매핑 및 MF 어드레스 매핑 중 최적의 부하 분산 효과를 갖는 어드레스 매핑 스킴을 선택한다.
도 9는 TM 어드레스 매핑 및 MF 어드레스 매핑을 선택하는 조건들의 예를 보여주는 테이블이다. 도 9를 참조하면, 인터리빙 단위가 타일 사이즈와 일치할 때 뿐 아니라, 인터리빙 단위가 타일 사이즈와 일치하지 않는 경우도 고려된다. 예시적으로, 인터리빙 단위가 타일 사이즈보다 클 때, 인터리빙 단위는 타일 사이즈의 정수배일 수 있다. 타일 사이즈가 인터리빙 단위보다 클 때, 타일 사이즈는 인터리빙 단위의 정수배일 수 있다.
케이스 A에서, 인터리빙 단위와 타일 사이즈가 일치하는 경우가 고려된다. 도 7 및 도 8을 참조하여 설명된 바와 같이, 인터리빙 단위와 타일 사이즈가 일치할 때, 수학식 3을 만족하면 TM 어드레스 매핑이 수행되되 짝수 행들에 대해 MF 어드레스 매핑이 수행될 수 있다. 인터리빙 단위와 타일 사이즈가 일치하지 않으면, TM 어드레스 매핑이 수행될 수 있다(케이스 D).
케이스 B에서, 인터리빙 단위가 타일 사이즈보다 큰 경우가 고려된다. 인터리빙 단위가 타일 사이즈보다 크면, 복수의 타일들이 하나의 인터리빙 단위에 속할 수 있다. TM 어드레스 매핑이 수행되면, 하나의 인터리빙 단위에 속한 복수의 타일들은 동일한 메모리에 매핑될 수 있다. 즉, 인접한 타일들이 동일한 메모리에 매핑될 수 있다. 따라서, 인터리빙 단위가 타일 사이즈보다 큰 경우, TM 어드레스 매핑이 수행되되, 타일들의 짝수 열에 대해 MF 어드레스 매핑이 수행된다.
케이스 C에서, 인터리빙 단위가 타일 사이즈보다 작은 경우가 고려된다. 인터리빙 단위가 타일 사이즈보다 작으면, 하나의 타일에 복수의 인터리빙 단위가 포함될 수 있다. 예를 들어, 하나의 타일에 복수의 인터리빙 단위가 제 1 방향을 따라 일렬로 배치될 수 있다. 케이스 C에서, TM 어드레스 매핑 및 MF 어드레스 매핑을 판별하기 위하여, 수학식 4가 정의된다.
Figure pat00005
수학식 3에서 이미지 사이즈에 대한 타일 사이즈의 비율에 따라 TM 어드레스 매핑 또는 MF 어드레스 매핑의 선택이 판별되었다. 반면, 수학식 4에서, 타일 사이즈에 대한 인터리빙 단위의 비율에 따라 TM 어드레스 매핑 또는 MF 어드레스 매핑이 선택된다. 수학식 3에서 하나의 이미지에 복수의 타일들이 속한 것과 같이 하나의 타일에 복수의 인터리빙 단위들이 속하므로, 수학식 3의 이미지 사이즈가 타일 사이즈로 치환되고 타일 사이즈가 인터리빙 단위로 치환될 수 있다.
인터리빙 단위가 타일 사이즈보다 작고, 수학식 4가 만족되면, TM 어드레스 매핑이 수행되되, 타일들의 짝수 열들에 대해 MF 어드레스 매핑이 수행된다.
도 10은 인터리빙 단위가 타일 사이즈보다 클 때 MF 어드레스 매핑이 수행되는 방법을 보여주는 도면이다. 도 10을 참조하면, 참조 번호들은 각각 매핑되는 메모리들을 가리킨다. 하나의 인터리빙 단위는 두 개의 타일들을 포함할 수 있다. 예를 들어, 하나의 인터리빙 단위에서, 두 개의 타일들이 제 1 방향을 따라 일렬로 배치될 수 있다.
TM 어드레스 매핑이 수행되면, 인터리빙 단위들에 순차적으로 메모리들이 매핑된다. 따라서, 하나의 인터리빙 단위의 타일들은 동일한 메모리에 매핑되고, 메트릭(Metric)이 저하된다.
타일들의 짝수 열들에 대해 MF 어드레스 매핑이 수행되면, 하나의 인터리빙 단위에 속한 타일들은 동일한 메모리에 매핑되되, 서로 직접 인접하지 않게 혼합된다. 따라서, 메트릭(Metric)이 향상되고, 부하 분산(load balancing) 효율이 향상된다.
도 11은 인터리빙 단위가 타일 사이즈보다 작을 때 MF 어드레스 매핑이 수행되는 방법을 보여주는 도면이다. 도 11을 참조하면, 참조 번호들은 각각 매핑되는 메모리들을 가리킨다. 하나의 타일은 네 개의 인터리빙 단위들을 포함할 수 있다. 예를 들어, 하나의 타일에서, 네 개의 인터리빙 단위들이 제 2 방향을 따라 일렬로 배치될 수 있다.
TM 어드레스 매핑이 수행되면, 인터리빙 단위들에 순차적으로 메모리들이 매핑된다. 따라서, 인접한 타일들의 인터리빙 단위들은 각각 동일한 메모리들에 매핑되고, 메트릭(Metric)이 저하된다.
타일들의 짝수 열들에 대해 MF 어드레스 매핑이 수행되면, 인접한 타일들의 인터리빙 단위들이 매핑되는 메모리들이 서로 직접 인접하지 않게 혼합된다. 따라서, 메트릭(Metric)이 향상되고, 부하 분산(load balancing) 효율이 향상된다.
도 12는 본 발명의 실시 예에 따른 어드레스 발생기(AG)를 보여주는 블록도이다. 도 1 및 도 12를 참조하면, 어드레스 발생기(AG)는 TM 어드레스 매핑부(141), 메모리 매핑 비트 반전부(142), 체킹부(143) 및 멀티플렉서(144)를 포함한다.
TM 어드레스 매핑부(141)는 이미지 어드레스들, 이미지 사이즈, 그리고 타일 사이즈를 수신한다. 이미지 어드레스들, 이미지 사이즈, 그리고 타일 사이즈는 복수의 마스터들(121~12k) 중 적어도 하나로부터 수신될 수 있다. TM 어드레스 매핑부(141)는 수신된 정보에 기반하여 TM 어드레스 매핑을 수행하고, 제 1 메모리 어드레스들(A1)을 출력할 수 있다. TM 어드레스 매핑부(A1)는 이미지 어드레스들, 이미지 사이즈, 그리고 타일 사이즈에 기반하여, 선택된 이미지 영역의 좌표들(COOR)을 계산할 수 있다. 선택된 이미지 영역의 좌표들(COOR)은 체킹부(143)로 출력될 수 있다.
메모리 매핑 비트 반전부(142)는 TM 어드레스 매핑부(141)로부터 제 1 메모리 어드레스들(A1)을 수신하고, 수신된 제 1 메모리 어드레스들(A1)의 메모리 매핑 비트들을 변환한다. 예를 들어, 메모리 매핑 비트 반전부(142)는 메모리 매핑 비트들 중 최상위 비트를 반전할 수 있다. 메모리 매핑 비트 반전부(142)는 체킹부(143)로부터 범위 정보(MFR)를 수신하고, 메모리 매핑 반전 범위 정보(MFR)에 따라 메모리 매핑 비트들을 변환할 수 있다. 메모리 매핑 비트 반전부(142)는 수신된 제 1 메모리 어드레스들(A1) 중 범위 정보(MFR)가 가리키는 어드레스들의 메모리 매핑 비트들을 변환할 수 있다. 메모리 매핑 비트 반전부(142)는 변환 결과를 제 2 메모리 어드레스들(A2)로 출력한다.
체킹부(143)는 이미지 사이즈, 타일 사이즈, 인터리빙 단위 및 메모리 갯수(NM)를 수신한다. 인터리빙 단위 및 메모리 갯수(NM)는 체킹부(143)에 미리 알려진 정보일 수 있다. 인터리빙 단위 및 메모리 갯수(NM)는 ROM과 같은 불휘발성 메모리에 저장되고, 체킹부(143)로 전달될 수 있다. 체킹부(143)는 이미지 사이즈, 타일 사이즈, 인터리빙 단위 및 메모리 갯수(NM)에 기반하여, 제 1 어드레스들(A1) 중 메모리 매핑 비트를 변환한 어드레스들을 계산할 수 있다. 계산 결과에 기반하여, 체킹부(143)는 범위 정보(MFR)와 선택 신호(SEL)를 출력할 수 있다.
멀티플렉서(144)는 TM 어드레스 매핑부(141) 및 메모리 매핑 비트 반전부(142)로부터 각각 제 1 및 제 2 메모리 어드레스들을 수신한다. 멀티플렉서(144)는 선택 신호(SEL)에 응답하여, 제 1 메모리 어드레스들 또는 제 2 메모리 어드레스들 중 하나를 선택하고, 선택된 메모리 어드레스들을 출력하도록 구성된다.
선택된 이미지 영역이 액세스될 때, TM 어드레스 매핑부(141)는 선택된 이미지 영역에 대응하는 제 1 어드레스들(A1)을 출력할 수 있다. 메모리 매핑 비트 반전부(142)는 제 1 어드레스들(A1) 중 범위 정보(MFR)가 가리키는 어드레스들의 메모리 매핑 비트들을 변환할 수 있다. 멀티플렉서(144)는 선택 신호(SEL)에 응답하여, 제 1 어드레스들(A1) 및 제 2 어드레스들(A2) 중 하나를 선택할 수 있다. 예를 들어, 멀티플렉서(144)는 선택된 이미지 영역 중 범위 정보(MFR)에 해당하지 않는 영역에 대해 제 1 어드레스들(A1)을 출력할 수 있다. 멀티플렉서(144)는 선택된 이미지 영역 중 범위 정보(MFR)에 해당하는 영역에 대해 제 2 어드레스들(A2)을 출력할 수 있다.
도 13은 본 발명의 제 2 실시 예에 따른 이미지 처리 장치(200)를 보여주는 블록도이다. 도 13을 참조하면, 이미지 처리 장치(200)는 버스(210), 복수의 마스터들(221~22k), 복수의 어드레스 발생기들(AG1~AGk) 및 복수의 메모리들(231~23n)을 포함한다. 도 1의 이미지 처리 장치(100)와 비교하면, 이미지 처리 장치(200)에서 어드레스 발생기들(AG1~AGk)은 복수의 마스터들(121~12k)의 외부에 제공될 수 있다. 어드레스 발생기들(AG1~AGk)은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어가 조합된 형태로 구현될 수 있다.
도 14는 본 발명의 실시 예에 따른 멀티미디어 장치(1000)를 보여주는 블록도이다. 도 14를 참조하면, 멀티미디어 장치(1000)는 멀티미디어 장치(1000)는 어플리케이션 프로세서(1100, Application Processor), 저장부(1200), 입력 인터페이스(1300), 출력 인터페이스(1400), 그리고 버스(1500)를 포함한다.
어플리케이션 프로세서(1100)는 멀티미디어 장치(1000)의 제반 동작을 제어하도록 구성된다. 어플리케이션 프로세서(1100)는 하나의 시스템-온-칩(SoC, System-on-Chip)으로 형성될 수 있다.
어플리케이션 프로세서(1100)는 메인 프로세서(1110), 인터럽트 컨트롤러(1120), 인터페이스(1130), 복수의 지식 자산 블록들(1141~114n, Intellectual Property blocks), 그리고 내부 버스(1150)를 포함한다.
메인 프로세서(1110)는 어플리케이션 프로세서의 코어일 수 있다. 인터럽트 컨트롤러(1120)는 어플리케이션 프로세서(1100)의 구성 요소들에 의해 발생되는 인터럽트들을 관리하고, 메인 프로세서(1110)에 통보할 수 있다.
인터페이스(1130)는 어플리케이션 프로세서(1100)와 외부 구성 요소들 사이의 통신을 중개할 수 있다. 인터페이스(1130)는 어플리케이션 프로세서(1100)가 외부 구성 요소들을 제어할 수 있도록 통신을 중개할 수 있다. 인터페이스(1130)는 저장부(1200)를 제어하는 인터페이스, 입력 인터페이스(1300) 및 출력 인터페이스(1400)를 제어하는 인터페이스 등을 포함할 수 있다. 인터페이스(1130)는 JTAG (Joint Test Action Group) 인터페이스, TIC (Test Interface Controller) 인터페이스, 메모리 인터페이스, IDE (Integrated Drive Electronics) 인터페이스, USB (Universal Serial Bus) 인터페이스, SPI (Serial Peripheral Interface), 오디오 인터페이스, 비디오 인터페이스 등을 포함할 수 있다.
복수의 지식 자산 블록들(1141~114n)은 각각 특정한 기능들을 수행하도록 구성될 수 있다. 예를 들어, 복수의 지식 자산 블록들(1141~114n)은 내부 메모리, 그래픽 프로세서(GPU, Graphic Processing Unit), 모뎀(Modem), 사운드 제어기, 보안 모듈 등을 포함할 수 있다.
내부 버스(1150)는 어플리케이션 프로세서(1100)의 내부 구성 요소들 사이에 채널을 제공하도록 구성된다. 예를 들어, 내부 버스(1150)는 AMBA (Advanced Microcontroller Bus Architecture) 버스를 포함할 수 있다. 내부 버스(1150)는 AMBA 고속 버스(AHB) 또는 AMBA 주변(Peripheral) 버스(APB)를 포함할 수 있다. 내부 버스(1150)는 도 1의 버스(110)에 대응할 수 있다.
메인 프로세서(1100) 및 복수의 지식 자산 블록들(1141~114n) 중 적어도 둘 이상의 블록들은 도 1을 참조하여 설명된 마스터 블록들(121~12k)에 대응할 수 있다. 어드레스 생성기들(AG1~AGk)은 메인 프로세서(1100) 및 복수의 지식 자산 블록들(1141~114n) 중 마스터 블록들(121~12k)에 해당하는 블록들에서, 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어가 혼합된 형태로 구현될 수 있다.
마스터 블록들(121~12k)은 복수의 지식 자산 블록들(1141~114n) 중 메모리들에 이미지 데이터를 인터리빙하여 저장할 수 있다. 마스터 블록들(121~12k)은 이미지 데이터를 TM 모드 또는 MF 모드 어드레스 매핑 방법에 따라 분산 저장할 수 있다.
메인 프로세서(1100) 및 복수의 지식 자산 블록들(1141~114n) 중 마스터 블록들(121~12k)은 내부 메모리를 포함할 수 있다. 이미지 데이터는 마스터 블록들(121~12k)의 내부 메모리들에 인터리빙되어 저장될 수 있다.
이미지 데이터는 어플리케이션 프로세서(1100)의 내부 메모리 및 외부 메모리(예를 들어, 저장부(1200) 또는 별도의 메모리)에 인터리빙되어 저장될 수 있다.
저장부(1200)는 버스(1500)를 통해 멀티미디어 장치(1000)의 다른 구성 요소들과 통신하도록 구성된다. 저장부(1200)는 어플리케이션 프로세서(1100)에 의해 처리된 데이터를 저장할 수 있다.
입력 인터페이스(1300)는 외부로부터 신호를 수신하는 다양한 장치들을 포함할 수 있다. 입력 인터페이스(1300)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 이미지 센서를 포함하는 카메라, 마이크, 자이로스코프 센서, 진동 센서, 유선 입력을 위한 데이터 포트, 무선 입력을 위한 안테나 등을 포함할 수 있다.
출력 인터페이스(1400)는 외부로 신호를 출력하는 다양한 장치들을 포함할 수 있다. 출력 인터페이스(1400)는 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터, 유선 출력을 위한 데이터 포트, 무선 출력을 위한 안테나 등을 포함할 수 있다.
멀티미디어 장치(1000)는 입력 인터페이스(1300)의 이미지 센서를 통해 획득되는 이미지를 자동적으로 편집하고, 이를 출력 인터페이스(1400)의 표시부를 통해 표시할 수 있다. 멀티미디어 장치(1000)는 화상 회의에 특화되고, 향상된 서비스 품질(QoS)을 갖는 화상 회의 서비스를 제공할 수 있다.
멀티미디어 장치(1000)는 스마트폰, 스마트 패드, 디지털 카메라, 디지털 캠코더, 노트북 컴퓨터 등과 같은 모바일 멀티미디어 장치, 또는 스마트 텔레비전, 데스크톱 컴퓨터 등과 같은 고정식 멀티미디어 장치를 포함할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 자명하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100, 200; 이미지 처리 장치 110, 210; 버스
121~12k, 221~22k; 복수의 마스터들
131~13n, 231~23n; 복수의 메모리들
1000; 멀티미디어 장치 1100; 어플리케이션 프로세서
1200; 저장부 1300; 입력 인터페이스
1400; 출력 인터페이스 1500; 버스

Claims (10)

  1. 이미지를 복수의 메모리들에 인터리빙하여 매핑하는 어드레스 생성기의 동작 방법에 있어서:
    상기 이미지 및 상기 인터리빙의 정보를 검출하는 단계;
    상기 검출 결과에 따라 어드레스 매핑 스킴을 선택하는 단계; 그리고
    상기 선택된 어드레스 매핑 스킴에 따라 상기 이미지를 상기 복수의 메모리들에 매핑하는 단계를 포함하는 동작 방법.
  2. 제 1 항에 있어서,
    상기 매핑 스킴을 선택하는 단계는, 둘 이상의 어드레스 매핑 스킴 중 하나를 선택하는 단계를 포함하는 동작 방법.
  3. 제 2 항에 있어서,
    상기 둘 이상의 어드레스 매핑 스킴은,
    상기 이미지를 상기 인터리빙의 사이즈에 따라 순차적으로 상기 복수의 메모리들에 매핑하는 제 1 스킴을 포함하는 동작 방법.
  4. 제 3 항에 있어서,
    상기 둘 이상의 어드레스 매핑 스킴은,
    상기 이미지의 일부를 상기 제 1 스킴에 따라 상기 복수의 메모리들에 매핑하고, 상기 이미지의 나머지 일부를 상기 제 1 스킴과 다른 순서로 상기 복수의 메모리들에 매핑하는 제 2 스킴을 더 포함하는 동작 방법.
  5. 제 1 항에 있어서,
    상기 복수의 메모리들을 가리키는 메모리 어드레스들 중 메모리 매핑 비트들은 상기 복수의 메모리들 중 하나를 가리키는 동작 방법.
  6. 제 5 항에 있어서,
    상기 어드레스 매핑 스킴을 선택하는 단계는,
    상기 이미지 및 상기 인터리빙의 정보가 제 1 조건을 만족할 때, 상기 인터리빙의 단위에 따라 순차적으로 상기 메모리 매핑 비트들을 증가시키는 제 1 스킴을 선택하는 단계를 포함하는 동작 방법.
  7. 제 5 항에 있어서,
    상기 어드레스 매핑 스킴을 선택하는 단계는,
    상기 이미지 및 상기 인터리빙의 정보가 제 2 조건을 만족할 때, 상기 인터리빙의 단위에 따라 순차적으로 상기 메모리 매핑 비트들을 증가시키되, 일부 인터리빙의 단위들에 대응하는 메모리 매핑 비트들을 조절하는 제 2 스킴을 선택하는 단계를 더 포함하는 동작 방법.
  8. 제 7 항에 있어서,
    상기 일부 인터리빙의 단위들에 대응하는 메모리 매핑 비트들의 최상위 비트들이 반전되는 동작 방법.
  9. 제 1 항에 있어서,
    상기 이미지 및 상기 복수의 메모리들의 정보는 상기 이미지의 사이즈, 상기 이미지가 분할된 복수의 타일들 각각의 사이즈, 상기 인터리빙의 단위, 그리고 상기 복수의 메모리들의 갯수를 포함하는 동작 방법.
  10. 이미지의 정보를 수신하고, 상기 수신된 이미지의 정보에 기반하여 복수의 메모리들에 대응하는 제 1 메모리 어드레스들을 출력하도록 구성되는 어드레스 매핑부;
    상기 메모리 어드레스들을 수신하고, 상기 수신된 메모리 어드레스들 중 상기 복수의 메모리들 중 하나를 선택하는 메모리 매핑 비트들을 조절하여 제 2 메모리 어드레스들로 출력하도록 구성되는 메모리 매핑 비트 조절부;
    상기 이미지의 정보 및 상기 이미지가 상기 복수의 메모리들에 분산 저장되는 인터리빙의 정보를 수신하고, 상기 수신된 이미지의 정보 및 인터리빙의 정보에 기반하여 선택 신호를 출력하도록 구성되는 체킹부; 그리고
    상기 선택 신호에 응답하여, 상기 제 1 메모리 어드레스들과 제 2 메모리 어드레스들 중 하나의 어드레스들을 출력하도록 구성되는 멀티플렉서를 포함하는 이미지 처리 장치의 어드레스 발생기.
KR1020120045722A 2012-04-30 2012-04-30 이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법 KR20130122417A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120045722A KR20130122417A (ko) 2012-04-30 2012-04-30 이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법
US13/785,907 US20130286028A1 (en) 2012-04-30 2013-03-05 Address generator of image processing device and operating method of address generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120045722A KR20130122417A (ko) 2012-04-30 2012-04-30 이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법

Publications (1)

Publication Number Publication Date
KR20130122417A true KR20130122417A (ko) 2013-11-07

Family

ID=49476831

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120045722A KR20130122417A (ko) 2012-04-30 2012-04-30 이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법

Country Status (2)

Country Link
US (1) US20130286028A1 (ko)
KR (1) KR20130122417A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106713784A (zh) * 2016-12-27 2017-05-24 浙江大华技术股份有限公司 一种视频矩阵输入设备、输出设备及级联系统
KR20230066905A (ko) * 2021-11-08 2023-05-16 제주대학교 산학협력단 공유 메모리와 캐시인터리빙을 고려한 어드레스 매핑 장치 및 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102161535B1 (ko) * 2014-09-24 2020-10-06 삼성디스플레이 주식회사 표시 장치 및 이의 구동 방법
US10163180B2 (en) * 2015-04-29 2018-12-25 Qualcomm Incorporated Adaptive memory address scanning based on surface format for graphics processing
KR102384346B1 (ko) * 2015-06-01 2022-04-07 삼성전자주식회사 저장 방식에 상관없이 데이터를 억세스하는 애플리케이션 프로세서 및 이를 포함하는 모바일 장치
KR102491622B1 (ko) * 2015-11-17 2023-01-25 삼성전자주식회사 가상 어드레스 생성기의 동작 방법과 이를 포함하는 시스템의 동작 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7016418B2 (en) * 2001-08-07 2006-03-21 Ati Technologies, Inc. Tiled memory configuration for mapping video data and method thereof
US7898551B2 (en) * 2006-06-20 2011-03-01 Via Technologies, Inc. Systems and methods for performing a bank swizzle operation to reduce bank collisions
US8245011B2 (en) * 2008-02-08 2012-08-14 Texas Instruments Incorporated Method and system for geometry-based virtual memory management in a tiled virtual memory
KR101639574B1 (ko) * 2009-12-30 2016-07-14 삼성전자주식회사 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106713784A (zh) * 2016-12-27 2017-05-24 浙江大华技术股份有限公司 一种视频矩阵输入设备、输出设备及级联系统
KR20230066905A (ko) * 2021-11-08 2023-05-16 제주대학교 산학협력단 공유 메모리와 캐시인터리빙을 고려한 어드레스 매핑 장치 및 방법

Also Published As

Publication number Publication date
US20130286028A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
KR102161448B1 (ko) 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법
KR20130122417A (ko) 이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법
US20200322618A1 (en) Image processor, image processing system including image processor, system-on-chip including image processing system, and method of operating image processing system
KR102002900B1 (ko) 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
US8767005B2 (en) Blend equation
KR102299574B1 (ko) 디스플레이 잡음을 개선하는 디스플레이 컨트롤러, 이를 포함하는 반도체 집적회로 장치 및 상기 디스플레이 컨트롤러의 동작 방법
TWI559217B (zh) 用於記憶體子系統之動態快取及記憶體分配技術
KR20110077894A (ko) 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
KR102355573B1 (ko) 선형 리맵퍼 및 액세스 윈도우를 포함하는 메모리 시스템 및 시스템 온 칩
KR101517712B1 (ko) 이미지 병진을 위한 에지의 알파 값을 이용한 레이어 혼합
TW201636950A (zh) 用以從單一影像產生各種解析度影像之縮放器電路與包括該縮放器電路之裝置
US8711173B2 (en) Reproducible dither-noise injection
US9626735B2 (en) Page management approach to fully utilize hardware caches for tiled rendering
WO2013184252A1 (en) Memory channel selection in a multi-channel memory system
US20140253598A1 (en) Generating scaled images simultaneously using an original image
KR20160081528A (ko) 디스플레이 컨트롤러 및 이를 포함하는 반도체 집적회로 장치
KR100902982B1 (ko) 그래픽 시스템을 사용한 다중 사용자 컴퓨터 시스템의인에이블
US8963938B2 (en) Modified quality of service (QoS) thresholds
US10152766B2 (en) Image processor, method, and chipset for increasing intergration and performance of image processing
US8868128B2 (en) Image display systems and methods of processing image data
US10692171B2 (en) Method of operating virtual address generator and method of operating system including the same
CN102184070A (zh) 一种硬件支持光标显示的方法及装置
US20090228612A1 (en) Flexible Bus Interface and Method for Operating the Same
TWM577136U (zh) Scalability architecture with multiple display outputs
US9472169B2 (en) Coordinate based QoS escalation

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid