KR20140095296A - 픽셀 캐시 및 픽셀 캐시의 동작 방법 - Google Patents

픽셀 캐시 및 픽셀 캐시의 동작 방법 Download PDF

Info

Publication number
KR20140095296A
KR20140095296A KR1020130008117A KR20130008117A KR20140095296A KR 20140095296 A KR20140095296 A KR 20140095296A KR 1020130008117 A KR1020130008117 A KR 1020130008117A KR 20130008117 A KR20130008117 A KR 20130008117A KR 20140095296 A KR20140095296 A KR 20140095296A
Authority
KR
South Korea
Prior art keywords
data
image
image plane
request
pixel cache
Prior art date
Application number
KR1020130008117A
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 KR1020130008117A priority Critical patent/KR20140095296A/ko
Priority to CN201410032809.2A priority patent/CN103971327A/zh
Priority to JP2014010581A priority patent/JP2014142938A/ja
Priority to GB1401195.1A priority patent/GB2513216A/en
Priority to US14/162,940 priority patent/US20140204108A1/en
Publication of KR20140095296A publication Critical patent/KR20140095296A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/302In image processor or graphics adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 픽셀 캐시의 동작 방법에 관한 것이다. 본 발명의 동작 방법은, 메인 메모리에 저장된 이미지의 이미지 플레인의 데이터를 복수의 라인필 유닛들 중 하나의 라인필 유닛에 저장하는 단계, 그리고 라인필 유닛에 저장된 이미지 플레인의 데이터를 프로세서로 출력하는 단계로 구성된다. 라인필 유닛은 픽셀 캐시에서 한 번에 저장되고 출력되는 데이터의 처리 단위이다. 이미지 플레인은 둘 이상의 행 방향의 픽셀들 및 둘 이상의 열 방향의 픽셀들을 포함하고, 라인필 유닛의 사이즈와 동일한 사이즈를 갖는다.

Description

픽셀 캐시 및 픽셀 캐시의 동작 방법{PIXEL CACHE AND METHOD OF OPERATING PIXEL CACHE}
본 발명은 반도체 장치에 관한 것으로, 더 상세하게는 픽셀 캐시, 픽셀 캐시의 동작 방법, 그리고 픽셀 캐시를 포함하는 이미지 프로세서에 관한 것이다.
이미지 프로세서는 카메라에 의해 촬영된 이미지를 이용하여 다양한 연산 동작을 수행한다. 이미지 프로세서는 촬영된 이미지에 대해 노이즈 감소, 안정화, 움직임 추적, 움직임 보상 등과 같은 다양한 연산을 수행한다. 이미지 프로세서가 수행하는 연산 동작의 종류 및 복잡도가 증가하면서, 이미지 프로세서의 연산 동작을 지원하기 위한 다양한 연구들이 진행되고 있다.
이미지 프로세서의 연산 동작을 지원하기 위한 연구들 중 하나는 픽셀 캐시에 관한 것이다. 픽셀 캐시는 이미지 프로세서에 내장되는 캐시 메모리일 수 있다. 픽셀 캐시는 메인 메모리에 저장된 이미지의 데이터를 페치하여 저장할 수 있다. 이미지 프로세서는 요구되는 이미지의 데이터가 픽셀 캐시에 저장된 경우, 메인 메모리를 액세스하지 않고 픽셀 캐시를 액세스함으로써 데이터를 획득할 수 있다.
본 발명의 목적은, 이미지 데이터의 관리에 최적화된 픽셀 캐시, 픽셀 캐시의 동작 방법, 그리고 픽셀 캐시를 포함하는 이미지 프로세서를 제공하는 데에 있다.
메인 메모리에 저장된 이미지를 페치(fetch)하도록 구성되는 본 발명의 실시 예에 따른 픽셀 캐시의 동작 방법은, 상기 메인 메모리에 저장된 이미지의 이미지 플레인의 데이터를 복수의 라인필(linefill) 유닛들 중 하나의 라인필 유닛에 저장하는 단계; 그리고 상기 라인필 유닛에 저장된 상기 이미지 플레인의 데이터를 프로세서로 출력하는 단계를 포함하고, 상기 라인필 유닛은 상기 픽셀 캐시에서 한 번에 저장되고 출력되는 데이터의 처리 단위이고, 상기 이미지 플레인은 둘 이상의 행 방향의 픽셀들 및 둘 이상의 열 방향의 픽셀들을 포함하고, 상기 라인필 유닛의 사이즈와 동일한 사이즈를 갖다.
실시 예로서, 상기 이미지 플레인은상기 메인 메모리에서 서로 불연속한 어드레스들을 갖는 적어도 두 부분들로부터 상기 하나의 라인필 유닛에 페치되고, 상기 적어도 두 부분들은 서로 불연속한 어드레스를 갖고, 상기 적어도 두 부분들 각각은 적어도 두 개의 연속한 어드레스들을 갖는다.
실시 예로서, 상기 출력하는 단계는, 상기 프로세서로부터 이미지 플레인의 데이터의 요청을 수신하는 단계; 그리고 상기 요청이 히트이면 상기 요청에 대응하는 이미지 플레인의 데이터를 출력하고, 상기 요청이 히트가 아니면 상기 메인 메모리로부터 상기 요청에 대응하는 이미지 플레인의 데이터를 페치하여 출력하는 단계를 포함하고, 상기 요청에 대응하는 이미지 플레인의 데이터가 상기 복수의 라인필 유닛들 중 하나에 저장되어 있으면, 히트로 판정된다.
실시 예로서, 상기 출력하는 단계는, 상기 프로세서로부터 둘 이상의 이미지 플레인들의 데이터의 요청을 수신하는 단계; 그리고 상기 둘 이상의 이미지 플레인들 중 히트인 이미지 플레인의 데이터를 출력하고, 상기 둘 이상의 이미지 플레인들 중 히트가 아닌 이미지 플레인의 데이터를 페치하여 출력하는 단계를 포함하고, 상기 둘 이상의 이미지 플레인들 중 상기 복수의 라인필 유닛들에 저장된 이미지 플레인은 히트로 판정된다.
실시 예로서, 상기 둘 이상의 이미지 플레인들은 상기 이미지 상에서 바로 인접하다.
실시 예로서, 상기 요청은, 상기 둘 이상의 이미지 플레인들과 연관된 기준점의 어드레스 및 상기 기준점으로부터의 행 방향의 거리를 포함한다.
실시 예로서, 상기 요청은, 상기 둘 이상의 이미지 플레인들과 연관된 기준점의 어드레스 및 상기 기준점으로부터의 열 방향의 거리를 포함한다.
실시 예로서, 상기 요청은, 상기 둘 이상의 이미지 플레인들과 연관된 기준점의 어드레스 및 상기 기준점으로부터의 행 방향의 거리 및 열 방향의 거리를 포함한다.
실시 예로서, 상기 요청은, 상기 둘 이상의 이미지 플레인들과 연관된 기준점의 어드레스 및 제 2 기준점의 어드레스를 포함한다.
실시 예로서, 상기 저장하는 단계 이전에, 상기 라인필 유닛의 사이즈를 조절하는 단계를 더 포함한다.
실시 예로서, 상기 저장하는 단계 이전에, 상기 복수의 라인필 유닛들을 제 1 라인필 유닛들 및 제 2 라인필 유닛들로 분할하는 단계를 더 포함한다.
실시 예로서, 상기 저장하는 단계는, 제 1 이미지의 이미지 플레인의 데이터를 상기 제 1 라인필 유닛들 중 하나의 제 1 라인필 유닛에 저장하는 단계; 그리고 제 2 이미지의 이미지 플레인의 데이터를 상기 제 2 라인필 유닛들 중 하나의 제 2 라인필 유닛에 저장하는 단계를 포함하고, 상기 제 1 라인필 유닛에 저장하는 단계 및 상기 제 2 라인필 유닛에 저장하는 단계는 동시에 수행된다.
실시 예로서, 상기 출력하는 단계는, 상기 프로세서로부터 이미지 플레인의 데이터의 요청을 수신하는 단계; 그리고 상기 요청이 히트이면 상기 요청에 대응하는 이미지 플레인의 데이터를 출력하고, 상기 요청이 히트가 아니면 상기 메인 메모리로부터 상기 요청에 대응하는 이미지 플레인의 데이터를 페치함과 동시에 상기 프로세서로부터 제 2 이미지 플레인의 데이터의 요청을 수신하는 단계를 포함하고, 상기 요청에 대응하는 이미지 플레인의 데이터가 상기 복수의 라인필 유닛들 중 하나에 저장되어 있으면, 히트로 판정된다.
본 발명의 실시 예에 따른 픽셀 캐시는, 복수의 웨이들을 포함하고, 각 웨이는 데이터를 저장하도록 구성되는 복수의 라인필 유닛들을 포함하는 데이터 메모리; 상기 복수의 웨이들에 각각 대응하는 복수의 태그 웨이들을 포함하고, 각 태그 웨이는 각 웨이의 복수의 라인필 유닛들에 각각 대응하는 복수의 태그 라인들을 포함하는 태그 메모리; 그리고 외부의 메인 메모리에 저장된 이미지의 이미지 플레인을 요청하도록 구성되는 미스 제어부를 포함하고, 상기 메인 메모리로부터 수신된 이미지 플레인의 데이터는 상기 데이터 메모리의 하나의 라인필 유닛에 저장되고, 상기 메인 메모리로부터 수신된 이미지 플레인의 어드레스의 정보는 상기 태그 메모리의 하나의 태그 라인에 저장되고, 상기 라인필 유닛은 상기 픽셀 캐시에서 한 번에 저장되고 출력되는 데이터의 처리 단위이고, 상기 이미지 플레인은 둘 이상의 행 방향의 픽셀들 및 둘 이상의 열 방향의 픽셀들을 포함하고, 상기 라인필 유닛의 사이즈와 동일한 사이즈를 갖는다.
실시 예로서, 상기 라인필 유닛의 사이즈에 대한 정보를 저장하도록 구성되는 레지스터를 더 포함하고, 상기 레지스터에 저장된 정보에 따라, 상기 라인필 유닛의 사이즈가 조절된다.
실시 예로서, 상기 라인필 유닛의 사이즈가 증가될 때, 상기 태그 메모리의 서로 다른 웨이들의 적어도 두 개의 라인필 유닛들이 하나의 라인필 유닛으로 사용된다.
실시 예로서, 동시에 처리되는 이미지들의 수에 대한 정보를 저장하도록 구성되는 레지스터를 더 포함하고, 상기 미스 제어부는 상기 이미지들의 수에 대응하는 이미지 플레인들을 상기 메인 메모리에 동시에 요청한다.
실시 예로서, 상기 복수의 웨이들은 상기 이미지들의 수에 대응하는 복수의 그룹들로 그룹화되고, 상기 복수의 그룹들은 상기 이미지들에 각각 할당된다.
실시 예로서, 외부의 프로세서로부터 이미지 플레인의 요청을 수신하고, 상기 태그 메모리를 검색하여 상기 요청된 이미지 플레인이 상기 데이터 메모리에 존재하는지 판별하도록 구성되는 히트 및 미스 판별부; 그리고 상기 히트 및 미스 판별부에 의해 미스로 판별된 이미지 플레인의 요청을 저장하도록 구성되는 레지스터를 더 포함하고, 상기 미스 제어부는 상기 레지스터에 저장된 이미지 플레인의 요청에 따라 상기 메인 메모리에 이미지 플레인을 요청하고, 상기 히트 및 미스 판별부는 미스로 판별된 이미지 플레인의 요청이 상기 레지스터에 저장된 후, 다음 이미지 플레인의 요청을 수신하고 상기 다음 이미지 플레인의 요청이 상기 데이터 메모리에 존재하는지 판별한다.
실시 예로서, 상기 미스 제어부가 상기 메인 메모리에 이미지 플레인을 요청하는 동안, 상기 히트 및 미스 판별부에 의해 히트로 판별된 이미지 플레인의 요청을 저장하도록 구성되는 제 2 레지스터를 더 포함한다.
본 발명의 실시 예에 따른 이미지 프로세서는, 픽셀 캐시; 그리고 상기 픽셀 캐시에 이미지 플레인을 요청하고, 상기 픽셀 캐시로부터 수신되는 이미지 플레인이 기반하여 이미지 처리를 수행하도록 구성되는 처리부를 포함하고, 상기 픽셀 캐시는, 복수의 웨이들을 포함하고, 각 웨이는 데이터를 저장하도록 구성되는 복수의 라인필 유닛들을 포함하는 데이터 메모리; 상기 복수의 웨이들에 각각 대응하는 복수의 태그 웨이들을 포함하고, 각 태그 웨이는 상기 복수의 라인필 유닛들에 각각 대응하고 태그를 저장하도록 구성되는 복수의 태그 라인들을 포함하는 태그 메모리; 그리고 상기 처리부의 요청에 따라, 외부의 메인 메모리에 저장된 이미지의 이미지 플레인을 요청하도록 구성되는 미스 제어부를 포함하고, 상기 메인 메모리로부터 수신된 이미지 플레인의 데이터는 상기 데이터 메모리의 하나의 라인필 유닛에 저장되고, 상기 메인 메모리로부터 수신된 이미지 플레인의 어드레스의 정보는 상기 태그 메모리의 하나의 태그 라인에 저장되고, 상기 라인필 유닛은 상기 픽셀 캐시에서 한 번에 저장되고 출력되는 데이터의 처리 단위이고, 상기 이미지 플레인은 둘 이상의 행 방향의 픽셀들 및 둘 이상의 열 방향의 픽셀들을 포함하고, 상기 라인필 유닛의 사이즈와 동일한 사이즈를 갖는다.
본 발명의 실시 예들에 따르면, 픽셀 캐시는 둘 이상의 행 방향의 픽셀들 및 둘 이상의 열 방향의 픽셀들을 포함하는 이미지 플레인의 단위로 데이터를 페치한다. 따라서, 공간적 지역성을 갖는 이미지 데이터의 관리에 최적화된 픽셀 캐시, 픽셀 캐시의 동작 방법, 그리고 픽셀 캐시를 포함하는 이미지 프로세서가 제공된다.
도 1은 본 발명의 실시 예에 따른 모바일 장치를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 픽셀 캐시의 동작 방법을 보여주는 순서도이다.
도 3은 픽셀 캐시가 메인 메모리에 저장된 이미지의 데이터를 페치하는 제 1 예를 보여준다.
도 4는 픽셀 캐시가 메인 메모리에 저장된 이미지의 데이터를 페치하는 제 2 예를 보여준다.
도 5는 본 발명의 제 1 실시 예에 따른 픽셀 캐시를 보여주는 블록도이다.
도 6은 도 5의 픽셀 캐시의 동작 방법의 제 1 예를 보여주는 순서도이다.
도 7은 이미지 플레인 및 요청된 데이터의 예를 보여준다.
도 8은 도 5의 픽셀 캐시의 동작 방법의 제 2 예를 보여주는 순서도이다.
도 9는 픽셀 캐시가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 1 예를 보여준다.
도 10은 도 9의 요청에 따라 픽셀 캐시가 요청된 데이터(RD)를 출력하는 예를 보여준다.
도 11은 픽셀 캐시가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 2 예를 보여준다.
도 12는 픽셀 캐시가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 3 예를 보여준다.
도 13은 도 12의 요청에 따라 픽셀 캐시가 요청된 데이터를 출력하는 예를 보여준다.
도 14는 픽셀 캐시가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 4 예를 보여준다.
도 15는 픽셀 캐시가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 5 예를 보여준다.
도 16은 도 15의 요청에 따라 픽셀 캐시가 요청된 데이터를 출력하는 예를 보여준다.
도 17은 픽셀 캐시가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 6 예를 보여준다.
도 18은 픽셀 캐시가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 7 예를 보여준다.
도 19는 픽셀 캐시가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 8 예를 보여준다.
도 20은 본 발명의 제 2 실시 예에 따른 픽셀 캐시를 보여주는 블록도이다.
도 21은 도 20의 픽셀 캐시의 동작 방법을 보여주는 순서도이다.
도 22는 라인필 유닛의 사이즈가 제어됨에 따라 데이터 메모리가 관리되는 예를 보여준다.
도 23은 마스터 장치의 연산 유닛 사이즈 및 그에 따른 라인필 유닛의 사이즈를 보여주는 테이블이다.
도 24는 본 발명의 제 3 실시 예에 따른 픽셀 캐시를 보여주는 블록도이다.
도 25는 도 24의 픽셀 캐시의 동작 방법을 보여주는 순서도이다.
도 26은 본 발명의 제 4 실시 예에 따른 픽셀 캐시를 보여주는 블록도이다.
도 27은 도 26의 픽셀 캐시의 동작 방법을 보여주는 순서도이다.
도 28은 도 26의 픽셀 캐시의 동작 방법을 더 상세하게 보여주는 순서도이다.
도 29는 본 발명의 제 5 실시 예에 따른 픽셀 캐시를 보여주는 블록도이다.
도 30은 본 발명이 제 6 실시 예에 따른 픽셀 캐시)를 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 모바일 장치(1000)를 보여주는 블록도이다. 도 1을 참조하면, 모바일 장치(1000)는 시스템 버스(1100), 어플리케이션 프로세서(1200), 메인 메모리(1300), 모뎀(1400), 사용자 인터페이스(1500), 그리고 스토리지(1600)를 포함한다.
시스템 버스(1100)는 모바일 장치(1000)의 구성 요소들 사이에 채널을 제공한다.
어플리케이션 프로세서(1200)는 모바일 장치(1000)의 메인 프로세서일 수 있다. 어플리케이션 프로세서(1200)는 모바일 장치(1000)의 구성 요소들을 제어하고, 운영 체제 및 어플리케이션들을 실행하고, 논리 연산을 수행할 수 있다. 어플리케이션 프로세서(1200)는 시스템-온-칩(SoC, System-on-Chip)일 수 있다.
어플리케이션 프로세서(1200)는 내부 버스(1210), 코어 프로세서(1220), 디지털 신호 프로세서(1230), 다이렉트 메모리 액세스(1240), 메모리 컨트롤러(1250), 그리고 이미지 프로세서(1260)를 포함한다.
내부 버스(1210)는 어플리케이션 프로세서(1200)의 구성 요소들 사이에 채널을 제공한다.
코어 프로세서(1220)는 어플리케이션 프로세서(1200)의 구성 요소들을 제어하고, 다양한 논리 연산을 수행할 수 있다.
디지털 신호 프로세서(1230)는 미리 정해진 연산을 고속으로 수행하여, 코어 프로세서(1220)를 보조할 수 있다.
다이렉트 메모리 액세스(1240)는 코어 프로레서(1220)의 프로그램에 의해, 메모리 컨트롤러(1250)를 통해 메인 메모리(1300)를 액세스할 수 있다.
메모리 컨트롤러(1200)는 어플리케이션 프로세서(1200)가 메인 메모리(1300) 또는 스토리지(1700)를 액세스할 수 있도록, 인터페이스를 제공한다.
이미지 프로세서(1260)는 이미지의 데이터에 대한 연산을 수행하여 코어 프로세서(1220)를 보조할 수 있다. 이미지 프로세서(1260)는 동작 검출부(1261), 동작 보상부(1263) 및 픽셀 캐시(1265)를 포함한다.
동작 검출부(1261)는 이미지 또는 연속하는 둘 이상의 이미지들의 데이터에 기반하여, 이미지에 존재하는 목표 대상의 움직임을 측정할 수 있다. 동작 검출부(1261)는 동작 검출에 필요한 이미지의 데이터를 픽셀 캐시(1265)에 요청할 수 있다.
동작 보상부(1263)는 동작 검출부(1261)에 의해 측정된 움직임에 기반하여, 이미지를 보정할 수 있다. 예를 들어, 동작 보상부(1263)는 측정된 움직임을 반영하여, 이미지의 노이즈, 번짐 등을 보상할 수 있다. 동작 보상부(1263)는 동작 보성에 필요한 이미지의 데이터를 픽셀 캐시(1265)에 요청할 수 있다.
픽셀 캐시(1265)는 메인 메모리(1300)에 저장된 이미지의 데이터를 페치(fetch)하도록 구성된다. 동작 검출부(1261) 또는 동작 보상부(1263)에 의해 요청된 이미지의 데이터가 픽셀 캐시(1265)에 저장되어 있을 때, 픽셀 캐시(1265)는 저장된 데이터를 출력할 수 있다. 동작 검출부(1261) 또는 동작 보상부(1263)에 의해 요청된 이미지의 데이터가 픽셀 캐시(1265)에 저장되어 있지 않을 때, 픽셀 캐시(1265)는 요청된 데이터를 메인 메모리(1300)로부터 페치하고, 페치된 데이터를 출력할 수 있다.
예시적으로, 픽셀 캐시(1265)는 이미지 프로세서(1260) 뿐 아니라, 어플리케이션 프로세서(1200)의 다른 구성 요소에 의해 요구되는 이미지의 데이터를 페치하고 출력하도록 구성될 수 있다. 픽셀 캐시(1265)의 위치는 이미지 프로세서(1260)의 내부로 한정되지 않으며, 어플리케이션 프로세서(1200)의 다른 구성 요소들의 내부에 또는 다른 구성 요소들과 독립적인 위치에 제공될 수 있다.
예시적으로, 코어 프로세서(1220), 디지털 신호 프로세서(1230), 다이렉트 메모리 액세스(1240), 메모리 컨트롤러(1250), 그리고 이미지 프로세서(1260)는 IP (Intellectual Properties)로 제공될 수 있다.
메인 메모리(1300)는 모바일 장치(1000)의 동작 메모리일 수 있다. 메인 메모리(1300)는 DRAM, SRAM, PRAM, MRAM, RRAM, FRAM 등과 같은 랜덤 액세스 메모리들 중 적어도 하나를 포함할 수 있다.
모뎀(1400)은 외부 장치와 유선 또는 무선 채널을 통해 통신할 수 있다. 모뎀(1400)은 LTE, CDMA, GSM, WiFi, WiMax, NFC, Bluetooth, RFID 등과 같은 다양한 통신 방법들에 기반하여 외부 장치와 통신을 수행할 수 있다.
사용자 인터페이스(1600)는 사용자와 신호를 교환할 수 있다. 사용자 인터페이스(1600)는 카메라, 마이크, 키보드, 마우스, 터치 패드, 터치 패널, 터치 스크린, 버튼, 스위치 등과 같은 사용자 입력 인터페이스들을 포함할 수 있다. 사용자 인터페이스(1600)는 디스플레이 장치, 스피커, 램프, 모터 등과 같은 사용자 출력 인터페이스들을 포함할 수 있다. 디스플레이 장치는 LCD, AMOLED 표시 장치, 빔 프로젝터 등을 포함할 수 있다.
스토리지(1600)는 모바일 장치(1000)에서 장기적인 보존을 필요로하는 데이터를 저장할 수 있다. 스토리지(1700)는 플래시 메모리, MRAM, PRAM, RRAM, FRAM, 하드 디스크 드라이브 등과 같은 불휘발성 메모리들 중 적어도 하나를 포함할 수 있다.
도 2는 본 발명의 실시 예에 따른 픽셀 캐시(1265)의 동작 방법을 보여주는 순서도이다. 도 1 및 도 2를 참조하면, S10 단계에서, 이미지 플레인의 데이터가 픽셀 캐시(1265)의 하나의 라인필 유닛(linefill unit)에 저장된다.
S20 단계에서, 하나의 라인필 유닛에 저장된 이미지 플레인의 데이터가 출력된다. 이미지 플레인의 데이터는 이미지 프로세서(1260) 또는 어플리케이션 프로세서(1200)의 다른 구성 요소로 출력될 수 있다.
이미지 플레인은 메인 메모리(1300)에 저장된 이미지의 일부일 수 있다. 이미지 플레인은 둘 이상의 행들의 픽셀들 및 둘 이상의 열들의 픽셀들을 포함하는 2차원 데이터일 수 있다.
라인필 유닛은 픽셀 캐시(1265)에서 한 번에 저장되고 출력되는 데이터의 처리 단위일 수 있다.
동작 검출부(1261) 또는 동작 보상부(1263)와 같이 이미지를 처리하는 유닛은 2차원 이미지에 기반하여 연산을 수행한다. 본 발명의 실시 예에 따르면, 픽셀 캐시(1265)는 메인 메모리(1300)에 저장된 이미지의 일부를 한 번에 저장하거나 출력한다. 이미지의 일부는 둘 이상의 행들의 픽셀들 및 둘 이상의 열들의 픽셀들을 포함하는 2차원 데이터이다. 따라서, 픽셀 캐시(1265)의 하나의 라인필 유닛에 저장된 데이터가 동작 검출부(1261) 또는 동작 보상부(1263)에서 요구되는 2차원 이미지와 매치되고, 픽셀 캐시(1265)를 액세스하는 횟수가 감소된다.
도 3은 픽셀 캐시(1265)가 메인 메모리(1300)에 저장된 이미지의 데이터를 페치하는 제 1 예를 보여준다. 도 1 및 도 3을 참조하면, 이미지, 이미지가 저장된 메인 메모리(1300), 그리고 메인 메모리에 저장된 이미지의 일부를 저장하는 픽셀 캐시(1265)가 도시된다.
이미지는 복수의 픽셀들을 포함할 수 있다. 복수의 픽셀들은 각각 대응하는 데이터(D01~D32)를 가질 수 있다. 예시적인 이미지가 도 3에 도시되나, 이미지의 사이즈는 한정되지 않는다.
메인 메모리(1300)의 저장 영역들은 메모리 어드레스(MA)로 식별된다. 메인 메모리(1300)는 이미지에 도시된 화살표들의 방향들에 따라, 픽셀들의 데이터를 순차적인 메모리 어드레스들에 대응하는 저장 영역들에 저장할 수 있다. 예시적으로, 메모리 어드레스들(0000~0007)에 대응하는 메인 메모리(1300)의 저장 영역들은 이미지의 첫 번째 행의 데이터(D01~D08)를 저장할 수 있다. 메모리 어드레스들(0008~000F)에 대응하는 메인 메모리(1300)의 저장 영역들은 이미지의 두 번째 행의 데이터(D09~D16)를 저장할 수 있다. 메모리 어드레스들(0010~0017)에 대응하는 메인 메모리(1300)의 저장 영역들은 이미지의 세 번째 행의 데이터(D17~D24)를 저장할 수 있다. 메모리 어드레스들(0018~001F)에 대응하는 메인 메모리(1300)의 저장 영역들은 이미지의 네 번째 행의 데이터(D25~D32)를 저장할 수 있다. 메인 메모리(1300)는 선형 타입(linear type)으로 이미지를 저장할 수 있다.
메인 메모리(1300)는 복수의 그룹들로 분할될 수 있다. 각 그룹은 순차적인 어드레스들에 대응하는 저장 영역들을 포함할 수 있다. 메인 메모리(1300)의 복수의 그룹들에 각각 서로 다른 태그들(T)가 할당된다. 예를 들어, 메모리 어드레스들(0000~000F)에 대응하는 저장 영역들이 하나의 그룹을 형성하고, 태그(00)가 할당될 수 있다. 메모리 어드레스들(0010~001F)에 대응하는 저장 영역들이 다른 하나의 그룹을 형성하고, 태그(01)가 할당될 수 있다. 메인 메모리(1300)의 그룹들의 수는 한정되지 않는다.
메인 메모리(1300)의 각 그룹은 복수의 서브 그룹들로 분할된다. 각 서브 그룹은 순차적인 어드레스들에 대응하는 저장 영역들을 포함할 수 있다. 각 그룹의 서브 그룹들에 각각 서로 다른 라인 인덱스(LI)가 할당된다. 예를 들어, 메모리 어드레스들(0000~000F)에 대응하는 그룹에서, 메모리 어드레스들(0000~0003)에 대응하는 서브 그룹에 라인 인덱스(00)가 할당되고, 메모리 어드레스들(0004~0007)에 대응하는 서브 그룹에 라인 인덱스(01)가 할당되고, 메모리 어드레스들(0008~000B)에 대응하는 서브 그룹에 라인 인덱스(02)가 할당되고, 메모리 어드레스들(000C~000F)에 대응하는 서브 그룹에 라인 인덱스(03)가 할당될 수 있다. 메모리 어드레스들(0010~001F)에 대응하는 그룹에서, 메모리 어드레스들(0010~0013)에 대응하는 서브 그룹에 라인 인덱스(00)가 할당되고, 메모리 어드레스들(0014~0017)에 대응하는 서브 그룹에 라인 인덱스(01)가 할당되고, 메모리 어드레스들(0018~001B)에 대응하는 서브 그룹에 라인 인덱스(02)가 할당되고, 메모리 어드레스들(001C~001F)에 대응하는 서브 그룹에 라인 인덱스(03)가 할당될 수 있다. 메인 메모리(1300)의 각 그룹의 서브 그룹들의 수는 한정되지 않는다.
하나의 라인 인덱스(LI)는 픽셀 캐시(1265)의 데이터 입출력의 단위에 대응할 수 있다. 픽셀 캐시(1265)는 메인 메모리(1300)의 하나의 라인 인덱스(LI)에 대응하는 데이터를 메인 메모리(1300)로부터 한 번에 페치하고, 하나의 라인 인덱스(LI)에 대응하는 데이터를 한 번에 출력할 수 있다.
픽셀 캐시(1265)는 복수의 웨이들(W1~W2)을 포함할 수 있다. 하나의 웨이는 메인 메모리(1300)의 하나의 그룹에 대응할 수 있다. 각 웨이는 복수의 라인필 유닛들(linefill units)을 포함한다. 라인필 유닛들은 메인 메모리(1300)의 각 그룹의 서브 그룹들에 각각 대응할 수 있다.
메인 메모리(1300)에 저장된 이미지의 데이터는 태그(T) 및 라인 인덱스(LI)에 기반하여 픽셀 캐시(1265)로 페치될 수 있다. 예를 들어, 픽셀 캐시(1265)는 선택된 데이터의 라인 인덱스(LI)를 참조하여 선택된 데이터가 저장될 웨이를 선택할 수 있다. 픽셀 캐시(1265)는 선택된 데이터의 라인 인덱스(LI)에 대응하는 라인필 유닛이 비어있는 웨이를 선택할 수 있다. 선택된 데이터는 선택된 웨이에서, 선택된 데이터의 라인 인덱스(LI)에 대응하는 위치의 라인필 유닛에 저장될 수 있다. 이때, 선택된 데이터의 태그(T)가 픽셀 캐시(1265)에 함께 저장될 수 있다.
예시적으로, 이미지의 데이터(D01~D04)는 태그(00) 및 라인 인덱스(00)를 갖는다. 데이터(D01~D04)는 웨이(W1)의 라인 인덱스(00)에 대응하는 위치, 즉 첫 번째 라인필 유닛에 저장될 수 있다. 이미지의 데이터(D05~D08)는 태그(00) 및 라인 인덱스(01)를 갖는다. 데이터(D05~D08)는 웨이(W1)의 두 번째 라인필 유닛에 저장될 수 있다.
이미지의 데이터(D17~D20)는 태그(01) 및 라인 인덱스(00)를 갖는다. 데이터(D17~D20)는 웨이(W2)의 라인 인덱스(00)에 대응하는 위치, 즉 첫 번째 라인필 유닛에 저장될 수 있다. 이미지의 데이터(D21~D24)는 태그(01) 및 라인 인덱스(01)를 갖는다. 데이터(D21~D24)는 웨이(W2)의 두 번째 라인필 유닛에 저장될 수 있다.
이미지 데이터의 요청이 수신되면, 픽셀 캐시(1265)는 요청된 메인 메모리(1300)의 어드레스로부터 태그(T) 및 라인 인덱스(LI)를 추출할 수 있다. 추출된 태그(T) 및 라인 인덱스(LI)에 대응하는 데이터가 저장되어 있으면, 픽셀 캐시(1265)는 히트로 판정하고, 요청된 데이터를 출력할 수 있다. 추출된 태그(T) 및 라인 인덱스(LI)에 대응하는 데이터가 저장되어 있지 않으면, 픽셀 캐시(1265)는 미스로 판정하고, 요청된 데이터를 메인 메모리(1300)로부터 페치할 수 있다. 페치된 데이터는 픽셀 캐시(1265)에 저장되고, 요청에 따라 출력될 수 있다.
도 3에 도시된 바와 같이, 픽셀 캐시(1265)의 하나의 라인필 유닛은 이미지의 하나의 행 또는 하나의 행의 일부의 데이터를 저장할 수 있다.
도 4는 픽셀 캐시(1265)가 메인 메모리(1300)에 저장된 이미지의 데이터를 페치하는 제 2 예를 보여준다. 도 1 및 도 4를 참조하면, 이미지, 이미지가 저장된 메인 메모리(1300), 그리고 메인 메모리에 저장된 이미지의 일부를 저장하는 픽셀 캐시(1265)가 도시된다.
도 3과 비교하면, 도 4에서, 메인 메모리(1300)의 각 그룹의 각 서브 그룹은 불연속한 어드레스들을 포함할 수 있다. 예를 들어, 메모리 어드레스들(0000~000F)에 대응하는 그룹에서, 메모리 어드레스들(0000, 0001, 0008, 0009)에 대응하는 서브 그룹에 라인 인덱스(00)가 할당되고, 메모리 어드레스들(0002, 0003, 000A, 000B)에 대응하는 서브 그룹에 라인 인덱스(01)가 할당되고, 메모리 어드레스들(0004, 0005, 000C, 000D)에 대응하는 서브 그룹에 라인 인덱스(02)가 할당되고, 메모리 어드레스들(0006, 0007, 000E, 000F)에 대응하는 서브 그룹에 라인 인덱스(03)가 할당될 수 있다. 메모리 어드레스들(0010~001F)에 대응하는 그룹에서, 메모리 어드레스들(0010, 0011, 0018, 0019)에 대응하는 서브 그룹에 라인 인덱스(00)가 할당되고, 메모리 어드레스들(0012, 0013, 001A, 001B)에 대응하는 서브 그룹에 라인 인덱스(01)가 할당되고, 메모리 어드레스들(0014, 0015, 001C, 001D)에 대응하는 서브 그룹에 라인 인덱스(02)가 할당되고, 메모리 어드레스들(0016, 0017, 001E, 001F)에 대응하는 서브 그룹에 라인 인덱스(03)가 할당될 수 있다.
이미지의 데이터(D01, D02, D09, D10)는 태그(00) 및 라인 인덱스(00)를 갖는다. 데이터(D01, D02, D09, D10)는 웨이(W1)의 라인 인덱스(00)에 대응하는 위치, 즉 첫 번째 라인필 유닛에 저장될 수 있다. 이미지의 데이터(D03, D04, D11, D12)는 태그(00) 및 라인 인덱스(01)를 갖는다. 데이터(D03, D04, D11, D12)는 웨이(W1)의 두 번째 라인필 유닛에 저장될 수 있다.
이미지의 데이터(D17, D18, D25, D26)는 태그(01) 및 라인 인덱스(00)를 갖는다. 데이터(D17, D18, D25, D26)는 웨이(W2)의 라인 인덱스(00)에 대응하는 위치, 즉 첫 번째 라인필 유닛에 저장될 수 있다. 이미지의 데이터(D19, D20, D27, D28)는 태그(01) 및 라인 인덱스(01)를 갖는다. 데이터(D19, D20, D27, D28)는 웨이(W2)의 두 번째 라인필 유닛에 저장될 수 있다.
도 4에 도시된 바와 같이, 픽셀 캐시(1265)의 하나의 라인필 유닛은 이미지의 둘 이상의 행 방향의 픽셀들 및 둘 이상의 열 방향의 픽셀들을 포함하는 데이터를 저장할 수 있다. 픽셀 캐시(1265)의 하나의 라인필 유닛에 저장되는 2차원 이미지 데이터는 이미지 플레인(image plane)일 수 있다.
이미지 프로세서(1260)는 픽셀 캐시(1265)에 저장된 데이터에 기반하여 다양한 연산 동작을 수행한다. 이미지 프로세서(1260)의 연산 동작들은 공간적 지역성(spartial locality)을 갖는다. 예를 들어, 이미지 프로세서(1260)에서 수행되는 연산 동작들은 2차원 이미지에 기반하여 수행된다. 이미지 프로세서(1260)는 수신된 이미지 내의 2차원 영역들을 서로 비교하거나, 순차적으로 수신되는 이미지들 사이에서 2차원 영역들을 서로 비교할 수 있다. 도 3에 도시된 바와 같이 픽셀 캐시(1265)가 이미지의 하나의 행 또는 하나의 행의 일부의 데이터를 저장하도록 구성되면, 이미지 프로세서(1260)가 연상 동작을 수행할 때 픽셀 캐시(1265)를 복수회 액세스하여야 한다. 이에 따라, 픽셀 캐시(1265)는 메인 메모리(1300)를 복수회 액세스할 수 있다.
반면, 도 4에 도시된 바와 같이 픽셀 캐시(1265)가 이미지 플레인을 저장하도록 구성되면, 이미지 프로세서(1260)가 연산 동작을 수행할 때 픽셀 캐시(1265)를 액세스하는 횟수가 감소된다. 특히, 픽셀 캐시(1265)가 저장하는 이미지 플레인이 이미지 프로세서(1260)에서 필요로 하는 2차원 이미지와 일치할 때, 이미지 프로세서(1260)는 픽셀 캐시(1265)를 한 번 액세스함으로써 연산 동작을 수행할 수 있다. 본 발명의 실시 예에 따른 픽셀 캐시(1265)는 하나의 라인필 유닛에 이미지 플레인을 저장하도록 구성된다. 따라서, 공간적 지역성을 갖는 이미지 데이터의 관리에 최적화된 픽셀 캐시, 픽셀 캐시의 동작 방법, 그리고 픽셀 캐시를 포함하는 이미지 프로세서가 제공된다.
도 5는 본 발명의 제 1 실시 예에 따른 픽셀 캐시(1265)를 보여주는 블록도이다. 도 1, 도 4 및 도 5를 참조하면, 픽셀 캐시(1265)는 데이터 메모리(DM), 태그 메모리(TM), 멀티플렉서부들(MU1~MU4), 비교부(CU), 히트 및 미스 판별부(HMDU), 치환부(RMU), 스테이트 머신(SM), 미스 제어부(MCU), 라인필 제어부(LCU), 그리고 라인필 버퍼(LB)를 포함한다.
픽셀 캐시(1265)는 마스터로부터 요청(REQ1)을 수신할 수 있다. 픽셀 캐시(1265)는 이미지 프로세서(1260) 또는 이미지 프로세서(1260) 외부의 어플리케이션 프로세서(1260)로부터 요청(REQ1)을 수신할 수 있다. 요청(REQ1)에 응답하여, 픽셀 캐시(1265)는 마스터로 데이터(D1)를 출력할 수 있다. 픽셀 캐시(1265)는 데이터(D1)의 유효성을 가리키는 정보(예를 들어, 데이터(D1)가 유효한 구간 또는 클럭을 가리키는 스트로브 신호)를 신호(S1)로서 마스터에 출력할 수 있다.
요청(REQ1)에 응답하여, 픽셀 캐시(1265)는 메인 메모리(1300)로 요청(REQ2)을 전송할 수 있다. 픽셀 캐시(1265)는 메인 메모리(1300)로부터 데이터(D2)를 수신하고, 데이터(D2)와 연관된 신호(S2)를 수신할 수 있다. 신호(S2)는 데이터(D2)의 유효성을 가리키는 정보(예를 들어, 데이터(D2)가 유효한 구간 또는 클럭을 가리키는 스트로브 신호)일 수 있다.
데이터 메모리(DM)는 복수의 웨이들(W1~Wn)을 포함한다. 각 웨이는 복수의 라인필 유닛들을 포함한다. 하나의 라인필 유닛은 하나의 이미지 플레인을 저장할 수 있다.
태그 메모리(TM)는 복수의 태그 웨이들(TW1~TWn)을 포함한다. 복수의 태그 웨이들(TW1~TWn)은 복수의 웨이들(W1~Wn)에 각각 대응한다. 각 태그 웨이는 복수의 태그 라인들을 포함한다. 하나의 태그 웨이는 데이터 메모리(DM)의 대응하는 라인필 유닛에 저장된 데이터의 태그(T)를 저장할 수 있다. 하나의 태그 웨이는 데이터 메모리(DM)의 대응하는 라인필 유닛에 저장된 데이터가 유효한 데이터인지를 가리키는 유효성 정보(V)를 더 저장할 수 있다.
멀티플렉서부(MU1)는 복수의 멀티플렉서들(M1~Mn)을 포함한다. 복수의 멀티플렉서들(M1~Mn)은 복수의 태그 웨이들(TW1~TWn)에 각각 대응한다. 멀티플렉서부(MU1)는 마스터로부터의 요청(REQ1)에 응답하여, 복수의 태그 웨이들(TW1~TWn)의 태그 라인들을 선택할 수 있다. 예를 들어, 요청(REQ1)이 특정한 라인 인덱스(LI)를 가리킬 때, 복수의 멀티플렉서들(M1~Mn) 각각은 대응하는 태그 웨이에서 요청된 라인 인덱스(LI)를 선택할 수 있다. 예를 들어, 요청(REQ1)이 라인 인덱스(00)를 가리킬 때, 멀티플렉서들(M1~Mn)은 태그 웨이들(TW1~TWn)의 라인 인덱스(00)에 대응하는 위치의 태그들을 출력할 수 있다.
비교부(CU)는 복수의 비교기들(CP1~CPn)을 포함한다. 복수의 비교기들(CP1~CPn)은 복수의 멀티플렉서들(M1~Mn)에 각각 대응한다. 비교기들(CP1~CPn)은 복수의 멀티플렉서들(M1~Mn)로부터 태그들을 수신할 수 있다. 비교기들(CP1~CPn)은 요청(REQ1)이 가리키는 태그(T)를 멀티플렉서들(M1~Mn)로부터 출력된 태그들과 비교할 수 있다.
히트 및 미스 판별부(HMDU)는 비교부(CU)로부터 비교 결과를 수신할 수 있다. 비교 결과에 기반하여, 히트 및 미스 판별부(HMDU)는 히트 및 미스 정보(HMI)를 출력한다. 요청(REQ1)이 가리키는 태그(T)가 태그 메모리(TM)에 저장되어 있는 것으로 판별되면, 히트 및 미스 판별부(HMDU)는 히트를 가리키는 히트 및 미스 정보(HMI)를 출력할 수 있다. 요청(REQ1)이 가리키는 태그(T)가 태그 메모리(TM)에 저장되어 있지 않은 것으로 판별되면, 히트 및 미스 판별부(HMDU)는 미시를 가리키는 히트 및 미스 정보(HMI)를 출력할 수 있다. 즉, 요청(REQ1)에 대응하는 이미지 플레인이 픽셀 캐시(1265)에 저장되어 있으면, 히트 및 미스 판별부(HMDU)는 히트를 판정할 수 있다. 요청(REQ1)에 대응하는 이미지 플레인이 픽셀 캐시(1265)에 저장되어 있지 않으면, 히트 및 미스 판별부(HMDU)는 미스를 판정할 수 있다. 히트 및 미스 정보(HMI)는 히트가 발생한 태그 웨이에 대한 정보를 포함할 수 있다.
치환 관리부(RMU)는 태그 메모리(TM)를 관리할 수 있다. 치환 관리부(RMU)는 태그 메모리(TM)에 저장된 유효성 정보(V)를 관리하고, 유효성 정보(V)에 따라 태그 메모리(TM)를 관리할 수 있다. 예를 들어, 치환 관리부(RMU)는 유효성 정보(V)가 무효함을 가리키는 태그 라인을 삭제할 수 있다. 치환 관리부(RMU)는 유효성 정보(V)가 유효함을 가리키는 태그 라인들을 LRU (Least Recently Used) 방식에 기반하여 삭제할 수 있다.
멀티플렉서(MU2)는 히트 및 미스 정보(HMI)에 기반하여 동작할 수 있다. 히트 및 미스 정보(HMI)가 히트를 가리킬 때, 멀티플렉서(MU2)는 요청(REQ1)에 포함된 라인 인덱스(LI)를 데이터 메모리(DM)로 전달할 수 있다. 멀티플렉서(MU2)는 히트 및 미스 정보(HMI)에 포함된 웨이 정보를 데이터 메모리(DM)로 전달할 수 있다. 멀티플렉서(MU2)로부터 전달되는 라인 인덱스(LI) 및 웨이 정보에 기반하여, 데이터 메모리(DM)의 라인필 유닛에 저장된 이미지 플레인이 읽어질 수 있다. 데이터 메모리(DM)에서 읽어진 이미지 플레인은 멀티플렉서(MU4)로 출력될 수 있다.
스테이트 머신(SM)은 픽셀 캐시(1265)의 제반 동작을 제어할 수 있다. 스테이트 머신(SM)은 요청(REQ1), 히트 및 미스 정보(HMI)와 같은 다양한 신호들에 기반하여, 픽셀 캐시(1265)의 동작을 제어할 수 있다. 데이터 메모리(DM)로부터 읽혀진 이미지 플레인이 출력될 때, 스테이트 머신(SM)은 데이터 메모리(DM)로부터 읽혀진 이미지 플레인의 유효성을 가리키는 정보를 출력할 수 있다. 유효성을 가리키는 정보는 멀티플렉서(MU3)로 출력될 수 있다.
미스 제어부(MCU)는 히트 및 미스 정보(HMI)에 기반하여 동작한다. 히트 및 미스 정보(HMI)가 미스를 가리킬 때, 미스 제어부(MCU)는 요청(REQ1)에 포함된 어드레스에 따라, 메인 메모리(1300)에 요청(REQ1)을 전송할 수 있다. 미스 제어부(MCU)는 요청(REQ1)에 의해 요청되는 이미지 플레인을 메인 메모리(1300)에 요청할 수 있다. 미스 제어부(MCU)는 메인 메모리(1300)로부터 신호(S2)를 수신하고, 신호(S2)에 기반하여 이미지 플레인을 저장하도록 라인필 제어부(LCU) 또는 라인필 버퍼(LB)를 제어할 수 있다.
라인필 제어부(LCU)는 라인필 버퍼(LB)의 동작을 제어할 수 있다. 라인필 제어부(LCU)는 메인 메모리(1300)로부터 수신되는 이미지 플레인의 데이터(D2)를 저장하도록 라인필 버퍼(LB)를 제어할 수 있다. 라인필 제어부(LCU)는 라인필 버퍼(LB)에 저장된 이미지 플레인을 데이터 메모리(DM)로 출력하도록 라인필 버퍼(LB)를 제어할 수 있다. 데이터 메모리(DM)로 전달된 이미지 플레인은 데이터 메모리(DM)의 하나의 라인필 유닛에 저장될 수 있다. 이때, 요청(REQ1)에 포함된 태그(T) 및 라인 인덱스(LI)에 따라, 태그 메모리(TM)가 갱신될 수 있다. 예를 들어, 이미지 플레인이 저장된 데이터 메모리(DM)의 라인필 유닛에 대응하는 태그 라인에 태그(T)가 저장될 수 있다.
라인필 제어부(LCU)는 라인필 버퍼(LB)에 저장된 이미지 플레인이 멀티플렉서(MU4)로 출력되도록 라인필 버퍼(LB)를 제어할 수 있다. 라인필 제어부(LCU)는 라인필 버퍼(LB)로부터 출력되는 이미지 플레인의 유효성에 대한 정보를 멀티플렉서(MU3)로 출력할 수 있다.
멀티플렉서(MU3)는 스테이트 머신(SM) 또는 라인필 제어부(LCU)로부터 유효성에 대한 정보를 수신한다. 멀티플렉서(MU3)는 히트가 발생한 때에 스테이트 머신(SM)으로부터 출력되는 유효성에 대한 정보를 선택할 수 있다. 멀티플렉서(MU3)는 미스가 발생한 때에 라인필 제어부(LCU)로부터 출력되는 유효성에 대한 정보를 선택할 수 있다. 멀티플렉서(MU3)는 선택된 정보를 신호(S1)로 출력할 수 있다. 간결한 설명을 위하여 도 5에 도시되지 않았지만, 멀티플렉서(MU3)는 히트 및 미스 정보(HMI)에 응답하여 동작할 수 있다.
멀티플렉서(MU4)는 데이터 메모리(DM) 또는 라인필 버퍼(LB)로부터 이미지 플레인을 수신한다. 멀티플렉서(MU4)는 히트가 발생한 때에 데이터 메모리(DM)로부터 출력되는 이미지 플레인을 선택할 수 있다. 멀티플렉서(MU4)는 미스가 발생한 때에 라인필 버퍼(LB)로부터 출력되는 이미지 플레인을 수신할 수 있다. 멀티플렉서(MU4)는 선택된 이미지 플레인을 데이터(D1)로 출력할 수 있다. 간결한 설명을 위하여 도 5에 도시되지 않았지만, 멀티플렉서(MU4)는 히트 및 미스 정보(HMI)에 응답하여 동작할 수 있다.
픽셀 캐시(1265)는 둘 이상의 행 방향의 픽셀들 및 둘 이상의 열 방향의 픽셀들을 포함하는 이미지 플레인을 하나의 라인필 유닛에 저장한다. 요청된 이미지 플레인이 데이터 메모리(DM)에 저장되어 있을 때, 픽셀 캐시(1265)는 데이터 메모리(DM)에 저장된 이미지 플레인을 출력한다. 요청된 이미지 플레인이 데이터 메모리(DM)에 저장되어 있지 않을 때, 픽셀 캐시(1265)는 메인 메모리(1300)에 이미지 플레인일 요청하여 페치한다. 픽실 캐시(1265)는 페치된 이미지 플레인을 데이터 메모리(DM)에 저장하고, 출력한다. 페치된 이미지 플레인의 저장 및 출력은 동시에 수행될 수 있다.
도 6은 도 5의 픽셀 캐시(1265)의 동작 방법의 제 1 예를 보여주는 순서도이다. 도 1, 도 4, 도 5 및 도 6을 참조하면, S110 단계에서, 요청(REQ1)이 수신된다. 요청(REQ1)은 필요한 이미지 플레인에 대한 정보(예를 들어, 어드레스)를 포함할 수 있다. 수신된 어드레스로부터, 태그(T) 및 라인 인덱스(LI)가 추출될 수 있다.
S120 단계에서, 히트인지 판별된다. 히트 및 미스 판별부(HMDU)는 요청(REQ1)에 포함된 태그(T) 및 라인 인덱스(LI)에 기반하여, 요청된 이미지 플레인이 데이터 메모리(DM)에 저장되어 있는지 판별할 수 있다. 요청된 이미지 플레인이 저장되어 있으면, 히트로 판별된다. 요청된 이미지 플레인이 저장되어 있지 않으면, 미스로 판별된다.
히트로 판별되면, S130 단계에서, 요청된 이미지 플레인이 출력된다. 미스로 판별되면, S140 단계에서, 요청된 이미지 플레인이 메인 메모리(1300)로부터 페치된다. S150 단계에서, 이미지 플레인이 라인필 유닛에 저장되고, 출력된다.
도 7은 이미지 플레인(IP) 및 요청된 데이터(RD)의 예를 보여준다. 도 7을 참조하면, 요청된 데이터(RD)는 하나의 이미지 플레인(IP)에 포함될 수 있다. 픽셀 캐시(1265)는 요청된 데이터(RD)를 포함하는 이미지 플레인(IP)의 요청을 수신하고, 이미지 플레인(IP)을 출력할 수 있다. 픽셀 캐시(1265)는 요청된 데이터(RD)의 요청을 수신하고, 이미지 플레인(IP)을 출력할 수 있다. 픽셀 캐시(1265)는 요청된 데이터(RD)의 요청을 수신하고, 이미지 플레인(IP) 중 요청된 데이터(RD)에 대응하는 부분을 출력할 수 있다.
도 8은 도 5의 픽셀 캐시(1265)의 동작 방법의 제 2 예를 보여주는 순서도이다. 도 1, 도 4, 도 5 및 도 8을 참조하면, S210 단계에서, 요청(REQ1)이 수신된다. 요청(REQ1)은 필요한 둘 이상의 이미지 플레인들에 대한 정보(예를 들어, 어드레스)를 포함할 수 있다. 수신된 어드레스들로부터, 둘 이상의 이미지 플레인들의 태그들(T) 및 라인 인덱스들(LI)이 추출될 수 있다.
S110 단계에서, 첫 번째 이미지 플레인이 선택된다. S230 단계에서, 히트가 발생하는지 판별된다. 히트가 발생하면, S240 단계에서 요청된 이미지 플레인이 출력된다. 이후에, S270 단계가 수행된다. 히트가 발생하지 않으면, S250 단계가 수행된다.
S250 단계에서, 요청된 이미지 플레인이 메인 메모리(1300)로부터 페치된다. S260 단계에서, 페치된 이미지 플레인이 데이터 메모리(DM)에 저장되고, 페치된 이미지 플레인이 출력된다.
S270 단계에서, 출력된 이미지 플레인이 마지막 이미지 플레인인지 판별된다. 출력된 이미지 플레인이 마지막 이미지 플레인이면, 동작은 종료된다. 출력된 이미지 플레인이 마지막 이미지 플레인이 아니면, S280 단계에서 다음 이미지 플레인이 선택되고, S230 단계가 다시 수행된다.
도 8을 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따라 이미지 플레인을 라인필 유닛에 저장하도록 구성되는 픽셀 캐시(1265)는 둘 이상의 이미지 플레인들의 요청을 한 번에 수신하고, 수신된 요청에 따라 둘 이상의 이미지 플레인들을 순차적으로 출력할 수 있다.
도 9는 픽셀 캐시(1265)가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 1 예를 보여준다. 도 5 및 도 9를 참조하면, 행들(1~4) 및 열들(a~h)에 걸쳐 배치된 이미지 플레인들(IP)을 포함하는 이미지가 도시된다. 요청된 데이터(RD)는 행들(1~3) 및 열들(b~e)에 걸쳐 배치된 이미지 플레인들에 대응할 수 있다.
픽셀 캐시(1265)에 대한 요청(REQ1)은 요청된 데이터(RD)의 기준점(RP)의 어드레스 및 기준점(RP)으로부터의 요청된 데이터(RD)의 행 방향의 길이(OFF_X)에 대한 정보를 포함할 수 있다. 기준점(RP)은 요청된 데이터(RD)의 어드레스들 중 가장 낮은 어드레스에 대응하는 위치일 수 있다. 기준점(RP)은 요청된 데이터(RD)의 좌상단의 위치일 수 있다.
도 10은 도 9의 요청에 따라 픽셀 캐시(1265)가 요청된 데이터(RD)를 출력하는 예를 보여준다. 도 5, 도 9 및 도 10을 참조하면, 픽셀 캐시(1265)는 적어도 두 가지의 방식으로 요청된 데이터(RD)를 출력할 수 있다.
첫 번째 예로, 픽셀 캐시(1265)는 행 단위로 이미지 플레인들을 출력할 수 있다. 하나의 행의 이미지 플레인들이 출력된 후, 픽셀 캐시(1265)는 다음 행의 이미지 플레인들을 출력할 수 있다. 예시적으로, 픽셀 캐시(1265)는 첫 번째 행의 이미지 플레인들(IP_1b~IP_1e), 두 번째 행의 이미지 플레인들(IP_2b~IP_2e), 세 번째 행의 이미지 플레인들(IP_3b~IP_3e), 그리고 네 번째 행의 이미지 플레인들(IP_4b~IP_4e)을 순차적으로 출력할 수 있다.
두 번째 예로, 픽셀 캐시(1265)는 열 단위로 이미지 플레인들을 출력할 수 있다. 하나의 열의 이미지 플레인들이 출력된 후, 픽셀 캐시(1265)는 다음 열의 이미지 플레인들을 출력할 수 있다. 예시적으로, 픽셀 캐시(1265)는 첫 번째 열의 이미지 플레인들(IP_1b~IP_4b), 두 번째 열의 이미지 플레인들(IP_1c~IP_4c), 세 번째 열의 이미지 플레인들(IP_1d~IP_4d), 그리고 네 번째 열의 이미지 플레인들(IP_1e~IP_4e)을 순차적으로 출력할 수 있다.
요청(REQ1)이 기준점(RP)의 어드레스 및 행 방향의 거리(OFF_X)를 포함하는 경우, 픽셀 캐시(1265)로부터 출력되는 데이터(CD)는 요청된 데이터(RD) 뿐 아니라, 요청된 데이터(RD)에 속하지 않는 이미지 플레인들을 더 포함할 수 있다. 요청(REQ1)을 전송한 마스터(이미지 프로세서(1265) 또는 어플리케이션 프로세서(1200, 도 1 참조)의 다른 구성 요소들)는 픽셀 캐시(1265)로부터 수신되는 이미지 플레인들(CD) 중 요청된 데이터(RD)에 대응하는 부분만을 선택하여 연산을 수행할 수 있다.
다른 예로서, 요청(REQ1)에 응답하여, 픽셀 캐시(1265)는 요청된 데이터(RD)에 대응하는 데이터만을 출력할 수 있다. 예를 들어, 첫 번째 행의 이미지 플레인들(1b~1e)에서, 전체 데이터 대신 요청된 데이터(RD)에 대응하는 부분만이 출력될 수 있다. 마찬가지로, 네 번째 행의 이미지 플레인들(4b~4e), 첫 번째 열의 이미지 플레인들(1b~4b), 그리고 네 번째 열의 이미지 플레인들(1e~4e)에서, 전체 데이터 대신 요청된 데이터(RD)에 대응하는 부분만이 출력될 수 있다.
이미지를 처리하는 마스터는 공간적 지역성(spartial locality)에 기반하여 2차원 이미지를 요구할 수 있다. 본 발명의 실시 예에 따른 픽셀 캐시(1265)가 적용되면, 한 번의 요청(REQ1)을 통해, 픽셀 캐시(1265)의 복수의 라인필 유닛들에 대응하는 복수의 이미지 플레인들이 요청될 수 있다. 따라서, 픽셀 캐시(1265)에 대한 액세스 횟수가 감소되고, 픽셀 캐시(1265)를 포함하는 이미지 프로세서(1260) 또는 어플리케이션 프로세서(1200)의 동작 성능이 향상된다.
도 9 및 도 10을 참조하여 설명된 요청 방식은 복수의 이미지 플레인들을 요청하는 경우에 한정되지 않는다. 예를 들어, 도 7을 참조하여 설명된 바와 같이, 요청된 데이터(RD)가 하나의 이미지 플레인 내에 속한 경우에도, 요청(REQ1)은 기준점(RP)의 어드레스 및 행 방향의 거리(OFF_X)를 포함할 수 있다. 도 9 및 도 10을 참조하여 설명된 요청 방식은 요청되는 데이터(RD)의 사이즈에 관계 없이 적용될 수 있다. 따라서, 마스터가 필요로하는 요청된 데이터(RD)이 사이즈가 가변되는 경우에도, 동일한 방식으로 요청이 전송될 수 있다.
도 11은 픽셀 캐시(1265)가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 2 예를 보여준다. 도 5 및 도 11을 참조하면, 행들(1~4) 및 열들(a~h)에 걸쳐 배치된 이미지 플레인들(IP)을 포함하는 이미지가 도시된다. 요청된 데이터(RD)는 행들(1~3) 및 열들(b~e)에 걸쳐 배치된 이미지 플레인들에 대응할 수 있다.
도 9에 도시된 실시 예와 달리, 도 11에 도시된 실시 예에 따른 요청(REQ1)은 기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스 및 행 방향의 길이(OFF_X)에 대한 정보를 포함할 수 있다. 행 방향의 길이(OFF_X)는 요청된 데이터(RD)가 포함된 이미지 플레인들의 행 방향의 길이를 포함할 수 있다.
기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스는 해당 이미지 플레인(IP_1b)의 어드레스들 중 가장 낮은 어드레스일 수 있다. 기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스는 기준점(RP)이 속한 이미지 플레인(IP_1b)의 좌상단의 어드레스일 수 있다.
도 11에 도시된 방식에 따라 요청(REQ1)이 전송되면, 픽셀 캐시(1265)는 도 10에 도시된 방식에 따라 이미지 플레인들을 출력할 수 있다.
도 12는 픽셀 캐시(1265)가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 3 예를 보여준다. 도 5 및 도 12를 참조하면, 행들(1~4) 및 열들(a~h)에 걸쳐 배치된 이미지 플레인들(IP)을 포함하는 이미지가 도시된다. 요청된 데이터(RD)는 행들(1~3) 및 열들(b~e)에 걸쳐 배치된 이미지 플레인들에 대응할 수 있다.
픽셀 캐시(1265)에 대한 요청(REQ1)은 요청된 데이터(RD)의 기준점(RP)의 어드레스 및 기준점(RP)으로부터의 요청된 데이터(RD)의 열 방향의 길이(OFF_Y)에 대한 정보를 포함할 수 있다. 기준점(RP)은 요청된 데이터(RD)의 어드레스들 중 가장 낮은 어드레스에 대응하는 위치일 수 있다. 기준점(RP)은 요청된 데이터(RD)의 좌상단의 위치일 수 있다.
도 13은 도 12의 요청에 따라 픽셀 캐시(1265)가 요청된 데이터(RD)를 출력하는 예를 보여준다. 도 5, 도 12 및 도 13을 참조하면, 픽셀 캐시(1265)는 적어도 두 가지의 방식으로 요청된 데이터(RD)를 출력할 수 있다.
첫 번째 예로, 픽셀 캐시(1265)는 행 단위로 이미지 플레인들을 출력할 수 있다. 하나의 행의 이미지 플레인들이 출력된 후, 픽셀 캐시(1265)는 다음 행의 이미지 플레인들을 출력할 수 있다. 예시적으로, 픽셀 캐시(1265)는 첫 번째 행의 이미지 플레인들(1b~1h), 두 번째 행의 이미지 플레인들(2b~2h), 세 번째 행의 이미지 플레인들(3b~3h), 그리고 네 번째 행의 이미지 플레인들(4b~4h)을 순차적으로 출력할 수 있다.
두 번째 예로, 픽셀 캐시(1265)는 열 단위로 이미지 플레인들을 출력할 수 있다. 하나의 열의 이미지 플레인들이 출력된 후, 픽셀 캐시(1265)는 다음 열의 이미지 플레인들을 출력할 수 있다. 예시적으로, 픽셀 캐시(1265)는 첫 번째 열의 이미지 플레인들(1b~3b), 두 번째 열의 이미지 플레인들(1c~3c), 세 번째 열의 이미지 플레인들(1d~3d), 네 번째 열의 이미지 플레인들(1e~3e), 다섯 번째 열의 이미지 플레인들(1f~3f), 여섯 번째 열의 이미지 플레인들(1g~3g), 그리고 일곱 번째 열의 이미지 플레인들(1h~4h)을 순차적으로 출력할 수 있다.
요청(REQ1)이 기준점(RP)의 어드레스 및 열 방향의 거리(OFF_Y)를 포함하는 경우, 픽셀 캐시(1265)로부터 출력되는 데이터(CD)는 요청된 데이터(RD) 뿐 아니라, 요청된 데이터(RD)에 속하지 않는 이미지 플레인들을 더 포함할 수 있다. 요청(REQ1)을 전송한 마스터(이미지 프로세서(1265) 또는 어플리케이션 프로세서(1200, 도 1 참조)의 다른 구성 요소들)는 픽셀 캐시(1265)로부터 수신되는 이미지 플레인들(CD) 중 요청된 데이터(RD)에 대응하는 부분만을 선택하여 연산을 수행할 수 있다.
다른 예로서, 요청(REQ1)에 응답하여, 픽셀 캐시(1265)는 요청된 데이터(RD)에 대응하는 데이터만을 출력할 수 있다. 예를 들어, 첫 번째 행의 이미지 플레인들(1b~1h)에서, 전체 데이터 대신 요청된 데이터(RD)에 대응하는 부분만이 출력될 수 있다. 마찬가지로, 세 번째 행의 이미지 플레인들(3b~3h), 첫 번째 열의 이미지 플레인들(1b~3b), 그리고 일곱 번째 열의 이미지 플레인들(1h~3h)에서, 전체 데이터 대신 요청된 데이터(RD)에 대응하는 부분만이 출력될 수 있다.
이미지를 처리하는 마스터는 공간적 지역성(spartial locality)에 기반하여 2차원 이미지를 요구할 수 있다. 본 발명의 실시 예에 따른 픽셀 캐시(1265)가 적용되면, 한 번의 요청(REQ1)을 통해, 픽셀 캐시(1265)의 복수의 라인필 유닛들에 대응하는 복수의 이미지 플레인들이 요청될 수 있다. 따라서, 픽셀 캐시(1265)에 대한 액세스 횟수가 감소되고, 픽셀 캐시(1265)를 포함하는 이미지 프로세서(1260) 또는 어플리케이션 프로세서(1200)의 동작 성능이 향상된다.
도 12 및 도 13을 참조하여 설명된 요청 방식은 복수의 이미지 플레인들을 요청하는 경우에 한정되지 않는다. 예를 들어, 도 7을 참조하여 설명된 바와 같이, 요청된 데이터(RD)가 하나의 이미지 플레인 내에 속한 경우에도, 요청(REQ1)은 기준점(RP)의 어드레스 및 열 방향의 거리(OFF_Y)를 포함할 수 있다. 즉, 도 12 및 도 13을 참조하여 설명된 요청 방식은 요청되는 데이터(RD)의 사이즈에 관계 없이 적용될 수 있다. 따라서, 마스터가 필요로하는 요청된 데이터(RD)이 사이즈가 가변되는 경우에도, 동일한 방식으로 요청이 전송될 수 있다.
도 14는 픽셀 캐시(1265)가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 4 예를 보여준다. 도 5 및 도 14를 참조하면, 행들(1~4) 및 열들(a~h)에 걸쳐 배치된 이미지 플레인들(IP)을 포함하는 이미지가 도시된다. 요청된 데이터(RD)는 행들(1~3) 및 열들(b~e)에 걸쳐 배치된 이미지 플레인들에 대응할 수 있다.
도 12에 도시된 실시 예와 달리, 도 14에 도시된 실시 예에 따른 요청(REQ1)은 기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스 및 열 방향의 길이(OFF_Y)에 대한 정보를 포함할 수 있다. 열 방향의 길이(OFF_Y)는 요청된 데이터(RD)가 속한 이미지 플레인들의 열 방향의 길이를 포함할 수 있다.
기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스는 해당 이미지 플레인(IP_1b)의 어드레스들 중 가장 낮은 어드레스일 수 있다. 기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스는 기준점(RP)이 속한 이미지 플레인(IP_1b)의 좌상단의 어드레스일 수 있다.
도 14에 도시된 방식에 따라 요청(REQ1)이 전송되면, 픽셀 캐시(1265)는 도 13에 도시된 방식에 따라 이미지 플레인들을 출력할 수 있다.
도 15는 픽셀 캐시(1265)가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 5 예를 보여준다. 도 5 및 도 15를 참조하면, 행들(1~4) 및 열들(a~h)에 걸쳐 배치된 이미지 플레인들(IP)을 포함하는 이미지가 도시된다. 요청된 데이터(RD)는 행들(1~3) 및 열들(b~e)에 걸쳐 배치된 이미지 플레인들에 대응할 수 있다.
픽셀 캐시(1265)에 대한 요청(REQ1)은 요청된 데이터(RD)의 기준점(RP)의 어드레스, 기준점(RP)으로부터의 요청된 데이터(RD)의 행 방향의 길이(OFF_X)에 대한 정보, 그리고 기준점(RP)으로부터의 요청된 데이터(RD)의 열 방향의 길이(OFF_Y)에 대한 정보를 포함할 수 있다. 기준점(RP)은 요청된 데이터(RD)의 어드레스들 중 가장 낮은 어드레스에 대응하는 위치일 수 있다. 기준점(RP)은 요청된 데이터(RD)의 좌상단의 위치일 수 있다.
도 16은 도 15의 요청에 따라 픽셀 캐시(1265)가 요청된 데이터(RD)를 출력하는 예를 보여준다. 도 5, 도 15 및 도 16을 참조하면, 픽셀 캐시(1265)는 적어도 두 가지의 방식으로 요청된 데이터(RD)를 출력할 수 있다.
첫 번째 예로, 픽셀 캐시(1265)는 행 단위로 이미지 플레인들을 출력할 수 있다. 하나의 행의 이미지 플레인들이 출력된 후, 픽셀 캐시(1265)는 다음 행의 이미지 플레인들을 출력할 수 있다. 예시적으로, 픽셀 캐시(1265)는 첫 번째 행의 이미지 플레인들(1b~1d), 두 번째 행의 이미지 플레인들(2b~2d), 그리고 세 번째 행의 이미지 플레인들(3b~3d)을 순차적으로 출력할 수 있다.
두 번째 예로, 픽셀 캐시(1265)는 열 단위로 이미지 플레인들을 출력할 수 있다. 하나의 열의 이미지 플레인들이 출력된 후, 픽셀 캐시(1265)는 다음 열의 이미지 플레인들을 출력할 수 있다. 예시적으로, 픽셀 캐시(1265)는 첫 번째 열의 이미지 플레인들(1b~3b), 두 번째 열의 이미지 플레인들(1c~3c), 그리고 세 번째 열의 이미지 플레인들(1d~3d)을 순차적으로 출력할 수 있다.
요청(REQ1)이 기준점(RP)의 어드레스, 행 방향의 거리(OFF_X) 및 열 방향의 거리(OFF_Y)를 포함하는 경우, 픽셀 캐시(1265)로부터 출력되는 데이터(CD)는 요청된 데이터(RD)에 대응하는 이미지 플레인들을 포함할 수 있다. 요청(REQ1)을 전송한 마스터(이미지 프로세서(1265) 또는 어플리케이션 프로세서(1200, 도 1 참조)의 다른 구성 요소들)는 픽셀 캐시(1265)로부터 수신되는 이미지 플레인들 중 요청된 데이터(RD)에 대응하는 부분만을 선택하여 연산을 수행할 수 있다.
다른 예로서, 요청(REQ1)에 응답하여, 픽셀 캐시(1265)는 요청된 데이터(RD)에 대응하는 데이터만을 출력할 수 있다. 예를 들어, 첫 번째 행의 이미지 플레인들(1b~1d)에서, 전체 데이터 대신 요청된 데이터(RD)에 대응하는 부분만이 출력될 수 있다. 마찬가지로, 세 번째 행의 이미지 플레인들(3b~3c), 첫 번째 열의 이미지 플레인들(1b~3b), 그리고 네 번째 열의 이미지 플레인들(1e~3e)에서, 전체 데이터 대신 요청된 데이터(RD)에 대응하는 부분만이 출력될 수 있다.
이미지를 처리하는 마스터는 공간적 지역성(spartial locality)에 기반하여 2차원 이미지를 요구할 수 있다. 본 발명의 실시 예에 따른 픽셀 캐시(1265)가 적용되면, 한 번의 요청(REQ1)을 통해, 픽셀 캐시(1265)의 복수의 라인필 유닛들에 대응하는 복수의 이미지 플레인들이 요청될 수 있다. 따라서, 픽셀 캐시(1265)에 대한 액세스 횟수가 감소되고, 픽셀 캐시(1265)를 포함하는 이미지 프로세서(1260) 또는 어플리케이션 프로세서(1200)의 동작 성능이 향상된다.
도 15 및 도 16을 참조하여 설명된 요청 방식은 복수의 이미지 플레인들을 요청하는 경우에 한정되지 않는다. 예를 들어, 도 7을 참조하여 설명된 바와 같이, 요청된 데이터(RD)가 하나의 이미지 플레인 내에 속한 경우에도, 요청(REQ1)은 기준점(RP)의 어드레스, 행 방향의 거리(OFF_X) 및 열 방향의 거리(OFF_Y)를 포함할 수 있다. 즉, 도 15 및 도 16을 참조하여 설명된 요청 방식은 요청되는 데이터(RD)의 사이즈에 관계 없이 적용될 수 있다. 따라서, 마스터가 필요로하는 요청된 데이터(RD)이 사이즈가 가변되는 경우에도, 동일한 방식으로 요청이 전송될 수 있다.
도 17은 픽셀 캐시(1265)가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 6 예를 보여준다. 도 5 및 도 17을 참조하면, 행들(1~4) 및 열들(a~h)에 걸쳐 배치된 이미지 플레인들(IP)을 포함하는 이미지가 도시된다. 요청된 데이터(RD)는 행들(1~3) 및 열들(b~e)에 걸쳐 배치된 이미지 플레인들에 대응할 수 있다.
도 15에 도시된 실시 예와 달리, 도 17에 도시된 실시 예에 따른 요청(REQ1)은 기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스, 행 방향의 길이(OFF_X) 및 열 방향의 길이(OFF_Y)에 대한 정보를 포함할 수 있다. 행 방향의 길이(OFF_X)는 요청된 데이터(RD)가 포함된 이미지 플레인들의 행 방향의 길이를 포함할 수 있다. 열 방향의 길이(OFF_Y)는 요청된 데이터(RD)가 포함된 이미지 플레인들의 열 방향의 길이를 포함할 수 있다.
기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스는 해당 이미지 플레인(IP_1b)의 어드레스들 중 가장 낮은 어드레스일 수 있다. 기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스는 기준점(RP)이 속한 이미지 플레인(IP_1b)의 좌상단의 어드레스일 수 있다.
도 17에 도시된 방식에 따라 요청(REQ1)이 전송되면, 픽셀 캐시(1265)는 도 15에 도시된 방식에 따라 이미지 플레인들을 출력할 수 있다.
도 18은 픽셀 캐시(1265)가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 7 예를 보여준다. 도 5 및 도 18을 참조하면, 행들(1~4) 및 열들(a~h)에 걸쳐 배치된 이미지 플레인들(IP)을 포함하는 이미지가 도시된다. 요청된 데이터(RD)는 행들(1~3) 및 열들(b~e)에 걸쳐 배치된 이미지 플레인들에 대응할 수 있다.
픽셀 캐시(1265)에 대한 요청(REQ1)은 요청된 데이터(RD)의 기준점(RP)의 어드레스 및 제 2 기준점(RP2)의 어드레스를 포함할 수 있다. 기준점(RP)은 요청된 데이터(RD)의 어드레스들 중 가장 낮은 어드레스에 대응하는 위치일 수 있다. 기준점(RP)은 요청된 데이터(RD)의 좌상단의 위치일 수 있다. 제 2 기준점(RP2)은 요청된 데이터(RD)의 어드레스들 중 가장 높은 어드레스에 대응하는 위치일 수 있다. 제 2 기준점(RP2)은 요청된 데이터(RD)의 우하단의 위치일 수 있다.
도 18에 도시된 방식에 따라 요청(REQ1)이 전송되면, 픽셀 캐시(1265)는 도 15에 도시된 방식에 따라 이미지 플레인들을 출력할 수 있다.
요청(REQ1)이 기준점(RP)의 어드레스 및 제 2 기준점(RP2)의 어드레스를 포함하는 경우, 픽셀 캐시(1265)로부터 출력되는 데이터(CD)는 요청된 데이터(RD)에 대응하는 이미지 플레인들을 포함할 수 있다. 요청(REQ1)을 전송한 마스터(이미지 프로세서(1265) 또는 어플리케이션 프로세서(1200, 도 1 참조)의 다른 구성 요소들)는 픽셀 캐시(1265)로부터 수신되는 이미지 플레인들 중 요청된 데이터(RD)에 대응하는 부분만을 선택하여 연산을 수행할 수 있다.
다른 예로서, 요청(REQ1)에 응답하여, 픽셀 캐시(1265)는 요청된 데이터(RD)에 대응하는 데이터만을 출력할 수 있다. 예를 들어, 첫 번째 행의 이미지 플레인들(1b~1d)에서, 전체 데이터 대신 요청된 데이터(RD)에 대응하는 부분만이 출력될 수 있다. 마찬가지로, 세 번째 행의 이미지 플레인들(3b~3c), 첫 번째 열의 이미지 플레인들(1b~3b), 그리고 네 번째 열의 이미지 플레인들(1e~3e)에서, 전체 데이터 대신 요청된 데이터(RD)에 대응하는 부분만이 출력될 수 있다.
이미지를 처리하는 마스터는 공간적 지역성(spartial locality)에 기반하여 2차원 이미지를 요구할 수 있다. 본 발명의 실시 예에 따른 픽셀 캐시(1265)가 적용되면, 한 번의 요청(REQ1)을 통해, 픽셀 캐시(1265)의 복수의 라인필 유닛들에 대응하는 복수의 이미지 플레인들이 요청될 수 있다. 따라서, 픽셀 캐시(1265)에 대한 액세스 횟수가 감소되고, 픽셀 캐시(1265)를 포함하는 이미지 프로세서(1260) 또는 어플리케이션 프로세서(1200)의 동작 성능이 향상된다.
도 18을 참조하여 설명된 요청 방식은 복수의 이미지 플레인들을 요청하는 경우에 한정되지 않는다. 예를 들어, 도 7을 참조하여 설명된 바와 같이, 요청된 데이터(RD)가 하나의 이미지 플레인 내에 속한 경우에도, 요청(REQ1)은 기준점(RP)의 어드레스 및 제 2 기준점(RP2)의 어드레스를 포함할 수 있다. 즉, 도 18을 참조하여 설명된 요청 방식은 요청되는 데이터(RD)의 사이즈에 관계 없이 적용될 수 있다. 따라서, 마스터가 필요로하는 요청된 데이터(RD)이 사이즈가 가변되는 경우에도, 동일한 방식으로 요청이 전송될 수 있다.
도 19는 픽셀 캐시(1265)가 둘 이상의 이미지 플레인들의 요청을 수신하는 방법의 제 8 예를 보여준다. 도 5 및 도 19를 참조하면, 행들(1~4) 및 열들(a~h)에 걸쳐 배치된 이미지 플레인들(IP)을 포함하는 이미지가 도시된다. 요청된 데이터(RD)는 행들(1~3) 및 열들(b~e)에 걸쳐 배치된 이미지 플레인들에 대응할 수 있다.
도 18에 도시된 실시 예와 달리, 도 19에 도시된 실시 예에 따른 요청(REQ1)은 기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스 및 제 2 기준점(RP2)이 속한 이미지 플레인(IP_3e)의 어드레스를 포함할 수 있다. 기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스는 해당 이미지 플레인(IP_1b)의 어드레스들 중 가장 낮은 어드레스일 수 있다. 기준점(RP)이 속한 이미지 플레인(IP_1b)의 어드레스는 기준점(RP)이 속한 이미지 플레인(IP_1b)의 좌상단의 어드레스일 수 있다. 제 2 기준점(RP2)이 속한 이미지 플레인(IP_3e)의 어드레스는 해당 이미지 플레인(IP_3e)의 어드레스들 중 가장 낮은 어드레스일 수 있다. 제 2 기준점(RP2)이 속한 이미지 플레인(IP_3e)의 어드레스는 제 2 기준점(RP2)이 속한 이미지 플레인(IP_3e)의 좌상단의 어드레스일 수 있다.
도 19에 도시된 방식에 따라 요청(REQ1)이 전송되면, 픽셀 캐시(1265)는 도 15에 도시된 방식에 따라 이미지 플레인들을 출력할 수 있다.
도 9 내지 도 19에서, 픽셀 캐시(1265)가 수신하는 요청들의 실시 예들이 설명되었다. 픽셀 캐시(1265)는 마스터로부터 도 9 내지 도 19를 참조하여 설명된 방법들 중 하나에 따른 요청을 수신할 수 있다. 픽셀 캐시(1265)의 마스터(예를 들어, 이미지 프로세서(1260) 또는 어플리케이션 프로세서(1200)의 다른 구성 요소들 중 적어도 하나)는 도 9 내지 도 19를 참조하여 설명된 실시 예들 중 하나에 따라 픽셀 캐시(1265)에 요청을 전송할 수 있다. 다른 예로서, 픽셀 캐시(1265)의 마스터의 요청을 도 9 내지 도 19를 참조하여 설명된 실시 예들 중 하나에 따른 요청으로 변환하는 변환부가 어플리케이션 프로세서(1200), 이미지 프로세서(1260), 또는 픽셀 캐시(1265)에 구비될 수 있다.
도 20은 본 발명의 제 2 실시 예에 따른 픽셀 캐시(1265a)를 보여주는 블록도이다. 도 1, 도 4 및 도 20을 참조하면, 픽셀 캐시(1265a)는 데이터 메모리(DM), 태그 메모리(TM), 멀티플렉서부들(MU1~MU4), 비교부(CU), 히트 및 미스 판별부(HMDU), 치환부(RMU), 스테이트 머신(SM), 미스 제어부(MCU), 라인필 제어부(LCU), 라인필 버퍼(LB), 그리고 특수 기능 레지스터(SFR)를 포함한다. 도 5의 픽셀 캐시(1265)와 비교하면, 픽셀 캐시(1265a)는 특수 기능 레지스터(SFR)를 더 포함한다.
특수 기능 레지스터(SFR)는 픽셀 캐시(1265a)의 동작을 위해 요구되는 다양한 정보들을 저장할 수 있다. 특수 기능 레지스터(SFR)는 픽셀 캐시(1265a)의 외부 장치에 의해 프로그램되거나, 픽셀 캐시(1265a)의 사용자에 의해 설정될 수 있다. 특수 기능 레지스터(SFR)는 사이즈 정보(SI)를 저장할 수 있다.
사이즈 정보(SI)는 픽셀 캐시(1265a)의 라인필 유닛의 사이즈에 대한 정보를 가리킬 수 있다. 픽셀 캐시(1265a)는 라인필 유닛의 사이즈를 사이즈 정보(SI)에 대응하는 사이즈로 관리할 수 있가.
예를 들어, 스테이트 머신(SM)은 특수 기능 레지스터(SFR)로부터 사이즈 정보(SI)를 수신하고, 수신된 사이즈 정보(SI)에 기반하여 픽셀 캐시(1265a)를 제어할 수 있다. 스테이트 머신(SM)은 사이즈 정보(SI)에 대응하는 사이즈를 갖는 이미지 플레인의 데이터를 저장하도록 데이터 메모리(DM)를 제어할 수 있다. 스테이트 머신(SM)은 사이즈 정보(SI)에 대응하는 사이즈를 갖는 이미지 플레인의 태그 정보를 저장하도록 태그 메모리(TM)를 제어할 수 있다. 스테이트 머신(SM)은 사이즈 정보(SI)에 대응하는 이미지 플레인들을 페치 및 출력하도록, 픽셀 캐시(1265a)의 구성 요소들을 제어할 수 있다.
미스 제어부(MCU)는 사이즈 정보(SI)에 대응하는 사이즈를 갖는 이미지 플레인을 메인 메모리(1300)에 요청할 수 있다.
라인필 제어부(LCU)는 사이즈 정보(SI)에 대응하는 사이즈를 갖는 이미지 플레인을 저장하도록 라인필 버퍼(LB)를 제어할 수 있다.
도 21은 도 20의 픽셀 캐시(1265a)의 동작 방법을 보여주는 순서도이다. 도 20 및 도 21을 참조하면, S310 단계에서, 사이즈 조절 요청이 수신된다. 예를 들어, 픽셀 캐시(1265a)는 특수 기능 레지스터(SFR)에 사이즈 정보(SI)가 프로그램되거나 사이즈 정보(SI)가 설정되는 것을 인식할 수 있다. 예를 들어, 픽셀 캐시(1265a)를 포함하는 시스템-온-칩 또는 모바일 장치에 전원이 공급될 때, 픽셀 캐시(1265a)를 액세스하는 마스터 장치가 픽셀 캐시(1265a)에 사이즈 정보(SI)를 전송할 수 있다. 마스터 장치는 자신이 사용하는 이미지 플레인의 사이즈를 사이즈 정보(SI)로 픽셀 캐시(1265a)에 전송할 수 있다.
S320 단계에서, 라인필 유닛의 사이즈가 조절된다. 픽셀 캐시(1265a)는 특수 기능 레지스터(SFR)에 저장된 사이즈 정보(SI)에 기반하여, 라인필 유닛의 사이즈를 조절할 수 있다.
S330 단계에서, 라인필 유닛의 조절된 사이즈에 따라 데이터가 페치된다. 픽셀 캐시(1265a)는 라인필 유닛의 조절된 사이즈에 따라, 메인 메모리(1300)로부터 데이터를 페치할 수 있다. 픽셀 캐시(1265a)는 페치된 데이터를 출력할 수 있다.
도 22는 라인필 유닛의 사이즈가 제어됨에 따라 데이터 메모리(DM)가 관리되는 예를 보여준다. 예시적으로, 라인필 유닛의 사이즈가 두 배로 증가된 경우의 예가 도 22에 도시된다. 도 20 및 도 22를 참조하면, 데이터 메모리(DM)의 둘 이상의 웨이들이 그룹화되어 하나의 가상 웨이를 형성할 수 있다. 예를 들어, 웨이들(W1, W2)이 하나의 가상 웨이(VW1)를 형성할 수 있고, 웨이들(W3, W4)이 다른 하나의 가상 웨이를 형성할 수 있다. 가상 웨이(VW1)를 형성하는 웨이(W1)의 하나의 라인필 유닛과 웨이(W2)의 하나의 라인필 유닛은 하나의 라인필 유닛으로 관리될 수 있다.
라인필 유닛의 사이즈가 가변되는 예는 도 22에 도시된 예로 한정되지 않는다. 예를 들어, 각 웨이의 각 라인필 유닛이 분할되어, 둘 이상의 라인필 유닛들로 관리될 수 있다.
도 23은 마스터 장치의 연산 유닛 사이즈 및 그에 따른 라인필 유닛의 사이즈를 보여주는 테이블이다. 도 23을 참조하면, 픽셀 캐시(1265a)를 액세스하는 마스터 장치의 연산 유닛 사이즈가 16X16일 때, 픽셀 캐시(1265a)의 라인필 유닛의 사이즈는 16X4일 수 있다. 이때, 마스터 장치는 한 번의 연산을 수행하기 위해 픽셀 캐시(1265a)에 4 번의 액세스 요청을 전송한다. 버스트 길이는 1일 수 있다.
마스터 장치의 연산 유닛 사이즈가 32X32일 때, 픽셀 캐시(1265a)의 라인필 유닛의 사이즈는 32X4로 조절될 수 있다. 이때, 마스터 장치는 한 번의 연산을 수행하기 위해 픽셀 캐시(1265a)에 4 번의 액세스 요청을 전송한다. 버스트 길이는 1일 수 있다.
마스터 장치의 연산 유닛 사이즈가 64X64일 때, 픽셀 캐시(1265a)의 라인필 유닛의 사이즈는 64X4로 조절될 수 있다. 이때, 마스터 장치는 한 번의 연산을 수행하기 위해 픽셀 캐시(1265a)에 4 번의 액세스 요청을 전송한다. 버스트 길이는 1일 수 있다.
상술된 바와 같이, 픽셀 캐시(1265a)의 라인필 유닛의 사이즈가 마스터 장치의 연산 유닛 사이즈에 따라 가변되면, 마스터 장치의 연산 유닛 사이즈가 변화해도 마스터 장치가 픽셀 캐시(1265a)를 액세스하는 횟수는 증가하지 않는다. 따라서, 픽셀 캐시(1265a) 및 픽셀 캐시를 포함하는 모바일 장치의 동작 성능이 향상된다.
도 24는 본 발명의 제 3 실시 예에 따른 픽셀 캐시(1265b)를 보여주는 블록도이다. 도 1, 도 4 및 도 24를 참조하면, 픽셀 캐시(1265b)는 데이터 메모리(DM), 태그 메모리(TM), 멀티플렉서부들(MU1~MU4), 비교부(CU), 히트 및 미스 판별부(HMDU), 치환부(RMU), 스테이트 머신(SM), 미스 제어부(MCU), 라인필 제어부(LCU), 라인필 버퍼(LB), 그리고 특수 기능 레지스터(SFR)를 포함한다. 도 5의 픽셀 캐시(1265)와 비교하면, 픽셀 캐시(1265b)는 특수 기능 레지스터(SFR)를 더 포함한다.
특수 기능 레지스터(SFR)는 픽셀 캐시(1265b)의 동작을 위해 요구되는 다양한 정보들을 저장할 수 있다. 특수 기능 레지스터(SFR)는 픽셀 캐시(1265b)의 외부 장치에 의해 프로그램되거나, 픽셀 캐시(1265b)의 사용자에 의해 설정될 수 있다. 특수 기능 레지스터(SFR)는 다중 정보(MI)를 저장할 수 있다.
다중 정보(MI)는 픽셀 캐시(1265b)가 동시에 처리할 수 있는 이미지 플레인들의 수를 가리킨다. 다중 정보(MI)는 픽셀 캐시(1265b)가 동시에 처리할 수 있는 요청(REQ)의 수를 가리킨다. 예시적으로, 동시에 두 개의 요청들(REQ1, REQ2)을 처리할 수 있는 픽셀 캐시(1265b)의 예가 도 24에 도시된다.
픽셀 캐시(1265b)의 각 구성 요소들은 제 1 요청(REQ1) 및 제 2 요청(REQ2)을 각각 처리하도록 분할될 수 있다. 예를 들어, 태그 메모리(TM)의 태그 웨이들(TW1a~TWna), 멀티플렉서부(MU1)의 멀티플렉서들(M1a~Mna), 비교부(CU)의 비교기들(CP1a~CPna), 히트 및 미스 판별부(HMDUa), 치환부(RMUa), 멀티플렉서부(MU2a), 멀티플렉서부(MU3a), 멀티플렉서부(MU4a), 스테이트 머신(SMa), 미스 제어부(MCUa), 라인필 제어부(LCUa), 그리고 라인필 버퍼(LBa)는 제 1 요청(REQ1)에 응답하여 동작할 수 있다. 이들은 제 1 요청(REQ1)에 응답하여 히트 및 미스 신호(HMIa)를 발생하고, 메인 메모리(1300)에 요청(REQ2a)을 전송하고, 메인 메모리(1300)로부터 데이터(D2a) 및 신호(S2a)를 수신하고, 데이터(D1a) 및 신호(S1a)를 출력할 수 있다.
태그 메모리(TM)의 태그 웨이들(TW1b~TWnb), 멀티플렉서부(MU1)의 멀티플렉서들(M1b~Mnb), 비교부(CU)의 비교기들(CP1b~CPnb), 히트 및 미스 판별부(HMDUb), 치환부(RMUb), 멀티플렉서부(MU2b), 멀티플렉서부(MU3b), 멀티플렉서부(MU4b), 스테이트 머신(SMb), 미스 제어부(MCUb), 라인필 제어부(LCUb), 그리고 라인필 버퍼(LBb)는 제 2 요청(REQ2)에 응답하여 동작할 수 있다. 이들은 제 2 요청(REQ2)에 응답하여 히트 및 미스 신호(HMIb)를 발생하고, 메인 메모리(1300)에 요청(REQ2b)을 전송하고, 메인 메모리(1300)로부터 데이터(D2b) 및 신호(S2b)를 수신하고, 데이터(D1b) 및 신호(S1b)를 출력할 수 있다.
데이터 메모리(DM)는 다중 정보(MI)에 따라 복수의 그룹들로 분할될 수 있다. 각 그룹은 하나의 요청에 대응하는 이미지 플레인들을 저장할 수 있다. 예시적으로, 도 22에 도시된 바와 같이, 데이터 메모리(DM)의 복수의 웨이들(W1~Wn)은 복수의 그룹들을 형성할 수 있다. 데이터 메모리(DM)의 각 웨이는 복수의 그룹들을 형성하도록 분할될 수 있다. 데이터 메모리(DM)의 각 라인필 유닛은 복수의 그룹들을 형성하도록 분할될 수 있다.
예시적으로, 데이터 메모리(DM)와 마찬가지로, 태그 메모리(TM), 멀티플렉서부(MU1) 및 비교부(CU)는 다중 정보(MI)에 응답하여 복수의 요청들(REQ1, REQ2)을 처리하도록 분할될 수 있다. 다른 예로서, 태그 메모리(TM)의 태그 웨이들(TW1b~TWnb), 멀티플렉서부(MU1)의 멀티플렉서들(M1b~Mnb), 비교부(CU)의 비교기들(CP1b~CPnb)은 다중 정보(MI)에 응답하여 활성화되거나 비활성화될 수 있다.
히트 및 미스 판별부(HMDUb), 치환부(RMUb), 멀티플렉서부(MU2b), 멀티플렉서부(MU3b), 멀티플렉서부(MU4b), 스테이트 머신(SMb), 미스 제어부(MCUb), 라인필 제어부(LCUb), 그리고 라인필 버퍼(LBb)는 다중 정보(MI)에 응답하여 활성화되거나 비활성화될 수 있다.
도 25는 도 24의 픽셀 캐시(1265b)의 동작 방법을 보여주는 순서도이다. 도 24 및 도 25를 참조하면, S410 단계에서, 분할 요청이 수신된다. 분할 요청은 픽셀 캐시(1265b)를 동시에 몇 개의 요청을 처리할 수 있도록 분할하는지를 가리키는 요청일 수 있다. 예를 들어, 픽셀 캐시(1265a)는 특수 기능 레지스터(SFR)에 다중 정보(MI)가 프로그램되거나 다중 정보(MI)가 설정되는 것을 인식할 수 있다. 예를 들어, 픽셀 캐시(1265b)를 포함하는 시스템-온-칩 또는 모바일 장치에 전원이 공급될 때, 픽셀 캐시(1265b)를 액세스하는 마스터 장치가 픽셀 캐시(1265b)에 다중 정보(MI)를 전송할 수 있다.
S420 단계에서, 분할 요청에 따라, 적어도 두 개의 캐시 영역들이 할당된다. 픽셀 캐시(1265b)는 다중 정보(MI)에 따라, 데이터 메모리(DM)를 적어도 두 개의 영역들로 분할할 수 있다.
S430 단계에서, 분할된 캐시 영역들에 따라, 적어도 두 개의 이미지 플레인들의 데이터가 동시에 페치된다.
도 26은 본 발명의 제 4 실시 예에 따른 픽셀 캐시(1265c)를 보여주는 블록도이다. 도 1, 도 4 및 도 26을 참조하면, 픽셀 캐시(1265b)는 데이터 메모리(DM), 태그 메모리(TM), 멀티플렉서부들(MU1~MU4), 비교부(CU), 히트 및 미스 판별부(HMDU), 치환부(RMU), 스테이트 머신(SM), 미스 제어부(MCU), 라인필 제어부(LCU), 라인필 버퍼(LB), 미스 비교기(MCP), 미스 레지스터(MFF), 그리고 히트 언더 미스 레지스터(HUMFF)를 포함한다. 도 5의 픽셀 캐시(1265)와 비교하면, 픽셀 캐시(1265c)는 미스 비교기(MCP), 미스 레지스터(MFF), 그리고 히트 언더 미스 레지스터(HUMFF)를 더 포함한다.
미스 레지스터(MFF)는 히트 및 미스 정보(HMI)에 응답하여, 요청(REQ1)에 포함된 어드레스를 저장할 수 있다. 예를 들어, 히트 및 미스 정보(HMI)가 미스를 가리킬 때, 미스 레지스터(MFF)는 요청(REQ1)에 포함된 어드레스를 저장할 수 있다. 미스 레지스터(MFF)는 복수의 플립플롭들을 포함할 수 있다.
미스 비교기(MCP)는 히트 및 미스 정보(HMI)에 응답하여, 요청(REQ1)에 포함된 어드레스와 미스 레지스터(MFF)에 저장된 레지스터를 비교할 수 있다. 예를 들어, 미스 비교기(MCP)는 히트 및 미스 정보(HMI)가 미스를 가리킬 때, 비교를 수행할 수 있다.
히트 언더 미스 레지스터(HUMFF)는 히트 및 미스 정보(HMI)에 응답하여 요청(REQ1)에 포함된 어드레스를 저장할 수 있다. 예를 들어, 픽셀 캐시(1265c)가 이미지 플레인의 페치를 수행중이거나 미스 레지스터(MFF)에 어드레스가 저장되어 있고, 히트 및 미스 정보(HMI)가 히트를 가리킬 때, 히트 언더 미스 레지스터(HUMFF)는 요청(REQ1)에 포함된 어드레스를 저장할 수 있다. 히트 언더 미스 레지스터(HUMFF)는 복수의 플립플롭들을 포함할 수 있다.
픽셀 캐시(1265c)는 논-블로킹(non-blocking) 캐시일 수 있다. 요청(REQ1)이 미스로 판정될 때, 요청(REQ1)에 포함된 어드레스는 미스 레지스터(MFF)에 저장될 수 있다. 미스된 어드레스가 미스 플립플롭(MFF)에 저장된 후, 픽셀 캐시(1265c)는 다음 요청(REQ1)을 수신함과 동시에, 미스된 어드레스에 대응하는 이미지 플레인을 페치할 수 있다. 예를 들어, 미스 제어부(MCU)는 미스 플립플롭(MFF)에 저장된 어드레스에 기반하여, 요청(REQ2)을 출력할 수 있다.
미스 제어부(MCU)에 의해 이미지 플레인이 페치되는 동안, 다음 요청(REQ1)이 처리될 수 있다. 다음 요청(REQ1)이 히트인 경우, 다음 요청(REQ1)에 포함된 어드레스는 히트 언더 미스 레지스터(HUMFF)에 저장될 수 있다. 다음 요청(REQ1)이 미스인 경우, 다음 요청(REQ1)에 포함된 어드레스는 미스 레지스터(MFF)에 저장될 수 있다. 미스 레지스터(MFF)에 저장된 어드레스에 대응하는 이미지 플레인은 미스 제어부(MCU)에 의해 페치될 수 있다. 히트 언더 미스 레지스터(HUMFF)에 저장된 어드레스에 대응하는 이미지 플레인은 데이터 메모리(DM)로부터 출력될 수 있다.
미스로 판정된 어드레스가 미스 레지스터(MFF)에 이미 저장되어 있는 경우, 해당 어드레스는 미스 플립플롭에 추가로 저장되지 않을 수 있다. 이러한 판정은 미스 비교기(MCP)에 의해 수행될 수 있다.
도 27은 도 26의 픽셀 캐시(1265c)의 동작 방법을 보여주는 순서도이다. 도 26 및 도 27을 참조하면, S510 단계에서, 픽셀 캐시(1265c)는 요청(REQ1)을 수신한다.
S520 단계에서, 요청(REQ1)이 히트인지 판별된다. 수신된 요청(REQ1)이 히트이면, S540 단계에서, 요청된 데이터가 출력된다. 수신된 요청(REQ1)이 미스이면, S530 단계에서, 요청된 데이터가 페치되고, 다음 요청(REQ1)이 수신된다. 요청된 데이터의 페치 및 다음 요청(REQ1)의 수신은 동시에 수행될 수 있다.
도 28은 도 26의 픽셀 캐시(1265c)의 동작 방법을 더 상세하게 보여주는 순서도이다. 도 26 및 도 28을 참조하면, S610 단계에서 요청(REQ1)이 수신된다.
S620 단계에서, 수신된 요청(REQ1)이 히트인지 판별된다. 수신된 요청(REQ1)이 미스이면, S625 단계에서, 수신된 요청(REQ1)이 미스 레지스ㅌ어(MFF)에 저장된다. 이후에, S650 단계가 수행된다. 수신된 요청(REQ1)이 히트이면, S630 단계가 수행된다.
S630 단계에서, 미스 상황인지 판별된다. 예를 들어, 미스가 발생하여 데이터 페치가 수행 중인 상태에서 히트가 발생한 것인지 판별된다. 미스 상황이 아니면, 즉 미스 레지스터(MFF)에 저장된 요청이 존재하지 않고, 이미지 플레인의 페치가 수행중이 아닌 상태에서 히트가 발생하면, S635 단계가 수행된다. S635 단계에서, 요청된 이미지 플레인이 출력된다. 요청된 데이터는 데이터 메모리(DM)로부터 출력될 수 있다. 예를 들어, 요청(REQ1)이 멀티플렉서부(MU2)를 통해 데이터 메모리(DM)로 전달되고, 데이터 메모리(DM)로부터 요청된 이미지 플레인이 출력될 수 있다.
미스 상황이면, 즉, 미스 레지스터(MFF)에 저장된 요청이 존재하거나 이미지 플레인의 페치가 수행중인 상황에서 히트가 발생하면, 수신된 요청(REQ1)이 히트 언더 미스 레지스터(HUMFF)에 저장된다.
S650 단계에서, 이미지 플레인의 페치가 수행중인지 판별된다. 이미지 플레인의 페치가 이미 수행중이면, 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)에 저장된 요청에 따른 페치가 수행될 수 있다. 따라서, 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)에 저장된 요청을 참조하지 않고, S610 단계에서, 다음 요청(REQ1)이 처리된다.
이미지 플레인의 페치가 수행되고 있지 않으면, 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)에 저장된 요청에 따른 페치가 수행될 수 있다. S660 단계에서, 저장된 시퀀스가 존재하는지 판별된다. 시퀀스는 외부로부터 수신되어 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)에 저장된 요청들의 시퀀스일 수 있다. 시퀀스는 저장된 요청들이 순서에 대한 정보를 포함할 수 있다. 시퀀스는 스테이트 머신(SM)에 의해 관리될 수 있다.
저장된 시퀀스가 존재하지 않으면, 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)에 저장된 요청이 존재하지 않는다. 따라서, 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)에 저장된 요청을 잠초하지 않고, S610 단계에서, 다음 요청(REQ1)이 처리된다.
저장된 시퀀스가 존재하면, S670 단계에서, 현재 시퀀스가 히트 언더 미스 레지스터(HUMFF)에 대응하는지 판별된다. 현재 시퀀스가 히트 언더 미스 레지스터(HUMFF)에 대응하면, S635 단계에서 요청된 이미지 플레인이 출력되고, S610 단계에서 다음 요청이 처리된다.
현재 시퀀스가 히트 언더 미스 레지스터(HUMFF)에 대응하지 않으면, S680 단계에서, 미스 레지스터(MFF)에 저장된 요청에 따라 페치가 시작된다.
S610 단계 내지 S680 단계는 픽셀 캐시(1265c)에 전원이 공급되는 동안 지속적으로 수행될 수 있다.
요약하면, S610 단계 내지 S640 단계를 통해, 수신된 요청(REQ1)의 처리가 수행된다. 미스로 판별된 요청(REQ1)은 미스 레지스터(MFF)에 저장된다. 히트 언더 미스로 판별된 요청(REQ1)은 히트 언더 미스 레지스터(HUMFF)에 저장된다. 순수한 히트로 판별된 요청(REQ1)은 이미지 플레인을 출력시킨다. 수신된 요청(REQ1)이 미스로 판별되어도, 픽셀 캐시(1265c)는 수신된 요청(REQ1)을 미스 레지스터(MFF)에 저장하고, 다음 요청을 끊김없이 처리할 수 있다.
S650 단계 내지 S680 단계에서, 미스 상황에 대한 처리가 수행된다. 이미지 플레인의 페치가 수행중이 아닐 때, 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)에 저장된 요청들 중 시퀀스에 대응하는 요청에 따라 이미지 플레인의 페치가 수행된다. 하나의 이미지 플레인의 페치가 종료되면, 다음 시퀀스의 요청에 따라 이미지 플레인의 페치가 수행된다.
즉, S610 단계 내지 S640 단계에서 이미지 플레인을 출력하거나, 미스 레지스터(MFF)에 요청(REQ1)을 저장하거나, 히트 언더 미스 레지스터(HUMFF)에 요청(REQ1)을 저장하는 동작이 수행된다. S610 단계 내지 S640 단계는 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)를 버퍼로 사용하여 요청(REQ1)을 실시간으로 접수하는 동작일 수 있다.
S650 단계 내지 S680 단계에서, 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)에 저장된 요청에 따라 이미지 플레인의 페치가 수행된다. 페치된 이미지 플레인은 출력되고, 페치된 이미지 플레인에 대응하는 요청은 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)로부터 삭제된다. S650 단계 내지 S680 단계는 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)에 저장된 요청을 수행하여, 미스 레지스터(MFF) 또는 히트 언더 미스 레지스터(HUMFF)를 비우는 동작일 수 있다.
도 28에서, S610 단계 내지 S680 단계는 하나의 방법으로 수행되는 것으로 도시되어 있다. 그러나, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, S610 단계 내지 S640 단계가 외부로부터 수신되는 요청(REQ1)을 처리하는 하나의 방법일 수 있고, S650 단계 내지 S680 단계가 레지스터들에 저장된 요청을 처리하는 다른 하나의 방법일 수 있다. 이 방법들은 서로 독립적으로 수행될 수 있다.
도 29는 본 발명의 제 5 실시 예에 따른 픽셀 캐시(1265d)를 보여주는 블록도이다. 예시적으로, 픽셀 캐시(1265d)는 도 5, 도 20, 도 24, 그리고 도 26에 도시된 픽셀 캐시들(1265, 1265a, 1265b. 1265c)이 조합된 형태를 가질 수 있다. 픽셀 캐시(1265d)는 하나의 라인필 유닛에 이미지 플레인을 저장할 수 있다. 이미지 플레인 또는 라인필 유닛의 사이즈는 특수 기능 레지스터(SFR)에 저장된 사이즈 정보(SI)에 따라 조절될 수 있다. 픽셀 캐시(1265d)는 다중 정보(MI)에 대응하는 수의 요청들(REQ1a, REQ1b)을 동시에 처리할 수 있다. 픽셀 캐시(1265d)는 논-블로킹 캐시일 수 있다.
도 29에 도시된 바와 같이, 도 5, 도 20, 도 24, 그리고 도 26에 도시된 픽셀 캐시들(1265, 1265a, 1265b, 1265c) 중 적어도 둘 이상의 픽셀 캐시들이 조합되어 사용될 수 있다.
예시적으로, 픽셀 캐시(1265d)가 다중 정보(MI)에 따라 둘 이상의 요청들(REQ1, REQ2)을 동시에 처리하도록 설정될 때, 각 요청에 대응하는 이미지 플레인(또는 라인필 유닛)의 사이즈는 사이즈 정보(SI)에 따라 서로 다르게 설정될 수 있다.
도 30은 본 발명이 제 6 실시 예에 따른 픽셀 캐시(1265e)를 보여주는 블록도이다. 도 29의 픽셀 캐시(1265d)와 비교하면, 픽셀 캐시(1265e)는 멀티플렉서부들(MU5, MU6)을 더 포함한다. 멀티플렉서부들(MU5, MU6)은 모드 정보(MI)에 응답하여 동작할 수 있다.
모드 정보(MI)에 응답하여, 미스 비교기들(MCP1b~MCPkb) 및 미스 레지스터(MFFb)의 활성화 여부, 그리고 데이터 메모리(DMb)의 활성화 여부가 결정될 수 있다. 예시적으로, 데이터 메모리(DMb)가 비활성화되는 경우, 데이터 메모리(DMb)는 데이터 메모리(DMa)의 일부로 관리될 수 있다.
사이즈 제어부(SCU)는 사이즈 정보(SI)에 따라 픽셀 캐시(1265e)의 라인필 유닛의 사이즈를 관리할 수 있다.
예시적으로, 사이즈 정보(SI) 및 모드 정보(MI)는 픽셀 캐시(1265e)의 외부로부터 수신될 수 있다. 즉, 사이즈 정보(SI) 및 모드 정보(MI)를 저장하는 특수 기능 레지스터(SFR)는 픽셀 캐시(1265e)의 외부에 제공될 수 있다.
미스 제어부들(MCUa, MCUb) 각각은 외부 채널과 통신하는 인터페이스, 읽기 스테이트 머신, 그리고 다중 실행 제어를 포함한다. 읽기 스테이트 머신은 메인 메모리(1300, 도 1 참조)에 읽기 요청(REQ2a, REQ2b)을 전송할 수 있다. 다중 실행 제어는 이미지 플레인을 페치하는 주기를 제어할 수 있다. 예를 들어, 미스가 복수회 발생하는 경우, 복수회의 이미지 플레인의 페치가 요구될 수 있다. 복수회의 이미지 플레인의 페치가 짧은 시간 동안 집중적으로 발생하면, 메인 메모리(1300)에서 병목(bottle neck) 현상이 발생할 수 있다. 다중 실행 제어는 이미지 플레인의 페치가 실행되는 주기 또는 빈도를 조절하여, 메인 메모리(1300)에서 병목 현상이 발생하는 것을 방지할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000; 모바일 장치
1100; 시스템 버스 1200; 어플리케이션 프로세서
1300; 메인 메모리 1400; 모뎀
1500; 사용자 인터페이스 1600; 스토리지
1210; 내부 버스 1220; 코어 프로세서
1230; 디지털 신호 프로세서 1240; 다이렉트 메모리 액세스
1250; 메모리 컨트롤러 1260; 이미지 프로세서
1261; 동작 검출부 1263; 동작 보상부
1265; 픽셀 캐시
DM; 데이터 메모리 TM; 태그 메모리
MU1~MU6; 멀티플렉서부들 CU; 비교부
HMDU; 히트 및 미스 판별부 RMU; 치환부
SM; 스테이트 머신 MCU; 미스 제어부
LCU; 라인필 제어부 LB; 라인필 버퍼
SFR; 특수 기능 레지스터 MFF; 미스 레지스터
MCP; 미스 비교기 HUMFF; 히트 언더 미스 레지스터
SI; 사이즈 정보 MI; 다중 정보

Claims (10)

  1. 메인 메모리에 저장된 이미지를 페치(fetch)하도록 구성되는 픽셀 캐시의 동작 방법에 있어서:
    상기 메인 메모리에 저장된 이미지의 이미지 플레인의 데이터를 복수의 라인필(linefill) 유닛들 중 하나의 라인필 유닛에 저장하는 단계; 그리고
    상기 라인필 유닛에 저장된 상기 이미지 플레인의 데이터를 프로세서로 출력하는 단계를 포함하고,
    상기 라인필 유닛은 상기 픽셀 캐시에서 한 번에 저장되고 출력되는 데이터의 처리 단위이고,
    상기 이미지 플레인은 둘 이상의 행 방향의 픽셀들 및 둘 이상의 열 방향의 픽셀들을 포함하고, 상기 라인필 유닛의 사이즈와 동일한 사이즈를 갖는 동작 방법.
  2. 제 1 항에 있어서,
    상기 이미지 플레인은 상기 메인 메모리에서 서로 불연속한 어드레스들을 갖는 적어도 두 부분들로부터 상기 하나의 라인필 유닛에 페치되고,
    상기 적어도 두 부분들 각각은 적어도 두 개의 연속한 어드레스들을 갖는 동작 방법.
  3. 제 1 항에 있어서,
    상기 출력하는 단계는,
    상기 프로세서로부터 이미지 플레인의 데이터의 요청을 수신하는 단계; 그리고
    상기 요청이 히트이면 상기 요청에 대응하는 이미지 플레인의 데이터를 출력하고, 상기 요청이 히트가 아니면 상기 메인 메모리로부터 상기 요청에 대응하는 이미지 플레인의 데이터를 페치하여 출력하는 단계를 포함하고,
    상기 요청에 대응하는 이미지 플레인의 데이터가 상기 복수의 라인필 유닛들 중 하나에 저장되어 있으면, 히트로 판정되는 동작 방법.
  4. 제 1 항에 있어서,
    상기 출력하는 단계는,
    상기 프로세서로부터 둘 이상의 이미지 플레인들의 데이터의 요청을 수신하는 단계; 그리고
    상기 둘 이상의 이미지 플레인들 중 히트인 이미지 플레인의 데이터를 출력하고, 상기 둘 이상의 이미지 플레인들 중 히트가 아닌 이미지 플레인의 데이터를 페치하여 출력하는 단계를 포함하고,
    상기 둘 이상의 이미지 플레인들 중 상기 복수의 라인필 유닛들에 저장된 이미지 플레인은 히트로 판정되는 동작 방법.
  5. 제 1 항에 있어서,
    상기 저장하는 단계 이전에, 상기 라인필 유닛의 사이즈를 조절하는 단계를 더 포함하는 동작 방법.
  6. 제 1 항에 있어서,
    상기 저장하는 단계 이전에, 상기 복수의 라인필 유닛들을 제 1 라인필 유닛들 및 제 2 라인필 유닛들로 분할하는 단계를 더 포함하는 동작 방법,
  7. 제 6 항에 있어서,
    상기 저장하는 단계는,
    제 1 이미지의 이미지 플레인의 데이터를 상기 제 1 라인필 유닛들 중 하나의 제 1 라인필 유닛에 저장하는 단계; 그리고
    제 2 이미지의 이미지 플레인의 데이터를 상기 제 2 라인필 유닛들 중 하나의 제 2 라인필 유닛에 저장하는 단계를 포함하고,
    상기 제 1 라인필 유닛에 저장하는 단계 및 상기 제 2 라인필 유닛에 저장하는 단계는 동시에 수행되는 동작 방법.
  8. 제 1 항에 있어서,
    상기 출력하는 단계는,
    상기 프로세서로부터 이미지 플레인의 데이터의 요청을 수신하는 단계; 그리고
    상기 요청이 히트이면 상기 요청에 대응하는 이미지 플레인의 데이터를 출력하고, 상기 요청이 히트가 아니면 상기 메인 메모리로부터 상기 요청에 대응하는 이미지 플레인의 데이터를 페치함과 동시에 상기 프로세서로부터 제 2 이미지 플레인의 데이터의 요청을 수신하는 단계를 포함하고,
    상기 요청에 대응하는 이미지 플레인의 데이터가 상기 복수의 라인필 유닛들 중 하나에 저장되어 있으면, 히트로 판정되는 동작 방법.
  9. 복수의 웨이들을 포함하고, 각 웨이는 데이터를 저장하도록 구성되는 복수의 라인필 유닛들을 포함하는 데이터 메모리;
    상기 복수의 웨이들에 각각 대응하는 복수의 태그 웨이들을 포함하고, 각 태그 웨이는 각 웨이의 복수의 라인필 유닛들에 각각 대응하는 복수의 태그 라인들을 포함하는 태그 메모리; 그리고
    외부의 메인 메모리에 저장된 이미지의 이미지 플레인을 요청하도록 구성되는 미스 제어부를 포함하고,
    상기 메인 메모리로부터 수신된 이미지 플레인의 데이터는 상기 데이터 메모리의 하나의 라인필 유닛에 저장되고, 상기 메인 메모리로부터 수신된 이미지 플레인의 어드레스의 정보는 상기 태그 메모리의 하나의 태그 라인에 저장되고,
    상기 라인필 유닛은 상기 픽셀 캐시에서 한 번에 저장되고 출력되는 데이터의 처리 단위이고,
    상기 이미지 플레인은 둘 이상의 행 방향의 픽셀들 및 둘 이상의 열 방향의 픽셀들을 포함하고, 상기 라인필 유닛의 사이즈와 동일한 사이즈를 갖는 픽셀 캐시.
  10. 제 9 항에 있어서,
    상기 라인필 유닛의 사이즈에 대한 정보를 저장하도록 구성되는 레지스터를 더 포함하고,
    상기 레지스터에 저장된 정보에 따라, 상기 라인필 유닛의 사이즈가 조절되는 픽셀 캐시.
KR1020130008117A 2013-01-24 2013-01-24 픽셀 캐시 및 픽셀 캐시의 동작 방법 KR20140095296A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020130008117A KR20140095296A (ko) 2013-01-24 2013-01-24 픽셀 캐시 및 픽셀 캐시의 동작 방법
CN201410032809.2A CN103971327A (zh) 2013-01-24 2014-01-23 像素高速缓存、其操作方法和包括像素高速缓存的图像处理装置
JP2014010581A JP2014142938A (ja) 2013-01-24 2014-01-23 ピクセルキャッシュ及びピクセルキャッシュの動作方法
GB1401195.1A GB2513216A (en) 2013-01-24 2014-01-24 Pixel cache, method of operating pixel cache, and image processing device including pixel cache
US14/162,940 US20140204108A1 (en) 2013-01-24 2014-01-24 Pixel cache, method of operating pixel cache, and image processing device including pixel cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130008117A KR20140095296A (ko) 2013-01-24 2013-01-24 픽셀 캐시 및 픽셀 캐시의 동작 방법

Publications (1)

Publication Number Publication Date
KR20140095296A true KR20140095296A (ko) 2014-08-01

Family

ID=50287493

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130008117A KR20140095296A (ko) 2013-01-24 2013-01-24 픽셀 캐시 및 픽셀 캐시의 동작 방법

Country Status (5)

Country Link
US (1) US20140204108A1 (ko)
JP (1) JP2014142938A (ko)
KR (1) KR20140095296A (ko)
CN (1) CN103971327A (ko)
GB (1) GB2513216A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200020704A (ko) * 2017-05-19 2020-02-26 모비디어스 리미티드 픽셀 커널들을 페치할 때 메모리 레이턴시를 감소시키기 위한 방법들, 시스템들, 및 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102491651B1 (ko) * 2015-12-14 2023-01-26 삼성전자주식회사 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
US10055810B2 (en) * 2016-03-04 2018-08-21 Samsung Electronics Co., Ltd. Cache architecture for efficiently accessing texture data using buffers
KR101952827B1 (ko) * 2018-06-29 2019-02-27 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011565A (en) * 1998-04-09 2000-01-04 S3 Incorporated Non-stalled requesting texture cache
US7050063B1 (en) * 1999-02-11 2006-05-23 Intel Corporation 3-D rendering texture caching scheme
US20060026376A1 (en) * 2002-10-16 2006-02-02 Microsoft Corporation Retrieving graphics from slow retrieval storage devices
US7737985B2 (en) * 2006-11-09 2010-06-15 Qualcomm Incorporated Pixel cache for 3D graphics circuitry
US8780128B2 (en) * 2007-12-17 2014-07-15 Nvidia Corporation Contiguously packed data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200020704A (ko) * 2017-05-19 2020-02-26 모비디어스 리미티드 픽셀 커널들을 페치할 때 메모리 레이턴시를 감소시키기 위한 방법들, 시스템들, 및 장치

Also Published As

Publication number Publication date
GB2513216A (en) 2014-10-22
JP2014142938A (ja) 2014-08-07
GB201401195D0 (en) 2014-03-12
US20140204108A1 (en) 2014-07-24
CN103971327A (zh) 2014-08-06

Similar Documents

Publication Publication Date Title
US11237728B2 (en) Method for accessing extended memory, device, and system
US10255547B2 (en) Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system
KR20170103649A (ko) 버퍼를 이용하여 텍스처 데이터에 액세스하는 방법 및 장치
US9830264B2 (en) Cache memory system and operating method for the same
KR20180128489A (ko) 오브젝트 태그된 메모리 모니터링 방법 및 프로세싱 장치
KR20150091663A (ko) 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법
CN105320608A (zh) 用于控制存储器设备处理访问请求的存储器控制器和方法
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
US20130013821A1 (en) Data transfer control device and data transfer control method
KR20140095296A (ko) 픽셀 캐시 및 픽셀 캐시의 동작 방법
CN111108527A (zh) 用于当取回像素核时降低存储器延迟的方法、系统和设备
US9934145B2 (en) Organizing memory to optimize memory accesses of compressed data
KR20180013930A (ko) Mmu(memory management unit) 파티셔닝된 변환 캐시들, 및 관련 장치들, 방법들, 및 컴퓨터-판독가능한 매체들의 제공
WO2009110168A1 (ja) Dma転送装置
US11016802B2 (en) Techniques for ordering atomic operations
US20170123977A1 (en) Organizing Memory to Optimize Memory Accesses of Compressed Data
KR102482516B1 (ko) 메모리 어드레스 변환
JPH1196072A (ja) メモリアクセス制御回路
US9983877B2 (en) Automatic hardware ZLW insertion for IPU image streams
US20100049898A1 (en) Memory management system and method thereof
US8850118B2 (en) Circuit and method for dynamically changing reference value for address counter based on cache determination
US9026731B2 (en) Memory scheduling for RAM caches based on tag caching
JP7414477B2 (ja) メモリコントローラ、メモリコントローラで実施される方法および装置
JP2009199384A (ja) データ処理装置
TWI488040B (zh) 緩衝記憶體管理方法與相關緩衝記憶體控制器

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