KR20070005700A - 메모리에 데이터 값을 일시적으로 저장하는 방법 - Google Patents

메모리에 데이터 값을 일시적으로 저장하는 방법 Download PDF

Info

Publication number
KR20070005700A
KR20070005700A KR1020067022315A KR20067022315A KR20070005700A KR 20070005700 A KR20070005700 A KR 20070005700A KR 1020067022315 A KR1020067022315 A KR 1020067022315A KR 20067022315 A KR20067022315 A KR 20067022315A KR 20070005700 A KR20070005700 A KR 20070005700A
Authority
KR
South Korea
Prior art keywords
memory
data values
stored
memory unit
area
Prior art date
Application number
KR1020067022315A
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 코닌클리케 필립스 일렉트로닉스 엔.브이.
Publication of KR20070005700A publication Critical patent/KR20070005700A/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/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Generation (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 데이터 값을 저장하기 위한 메모리 유닛(MMU)에 관한 것으로, 상기 메모리 관리 유닛은 적어도 두 개의 데이터 값을 일시적으로 저장하기에 적합한 메모리 유닛(IM); 및 상기 메모리 유닛의 제 1 영역에 제 1 데이터 값 세트를 저장할 수 있고, 그리고 제 2 데이터 값 세트의 제 1 파트가 수평 및/또는 수직 방향으로 상기 제 1 영역에 인접한 메모리 유닛의 제 2 영역에 각각 저장되고, 수평 및/또는 수직 방향으로 메모리 유닛 사이즈를 초과하여 저장될 제 2 데이터 값 세트의 다른 파트가 토러스 원리에 따라 상기 메모리 유닛의 적어도 하나의 다른 영역에 각각 저장되는 제어기를 포함하는 메모리 유닛을 개시하고 있다.
메모리 유닛, 메모리 유닛 사이즈, 토러스 원리, 텍스쳐 매핑, 데이터 값

Description

메모리에 데이터 값을 일시적으로 저장하는 방법{Method of temporarily stroing data values in a memory}
본 발명은 메모리 유닛에 데이터 값들을 저장하는 방법 및 디바이스에 관한 것이다.
본 발명은 예를 들어, 비디오 디코더들, 3D 그래픽 액셀레이터들, 비디오 게임 콘솔들, 개인휴대정보단말기 또는 휴대폰 같은 그래픽 객체들을 부여하는데 적합한 휴대용 장치에 사용될 수 있다.
텍스처 매핑(texture mapping)은 상기 그래픽 객체를 포함하는 생성된 출력 이미지의 시각적 현실성을 개선하기 위해 그래픽 객체의 표면에 입력 이미지를 매핑하기 위한 프로세스이다. 그래픽 객체의 표면에서의 복잡한 세부를 다각형 또는 다른 기하학적 기본방법을 사용하여 모델화하기에 매우 어려우며, 이를 실행하는 것은 상기 객체에 대한 계산적 비용을 막대하게 증가시킨다. 텍스처 매핑은 그래픽 객체의 표면에 정교한 세부를 표면하기 위한 보다 효율적인 방법이다. 텍스처 매핑 동작에 있어, 입력 이미지의 텍스처 데이터 아이템은 상기 객체가 출력 이미지를 생성함에 따라 그래픽 객체의 표면상에 매핑된다.
종래 디지털 이미지에 있어서, 입력 및 출력 이미지는, 통상 정수 좌표를 가 지며 그리드(grid) 포인트 상인, 분산된 포인트에서 샘플화된다. 이 입력 이미지는 자신의 좌표 공간(u,v)을 가진다. 입력 이미지의 개별적 요소는 "텍셀(texel)"로 언급된다. 상기 텍셀은 입력 좌표 시스템(u,v)에 있어 정수 좌표에 위치된다. 동일하게, 출력 이미지는 자신의 좌표 공간(x,y)을 가진다. 출력 이미지의 개별적 요소는 "픽셀들(pixels)"로 언급된다. 상기 픽셀은 출력 좌표 시스템(x,y)에 있어 정수 좌표에 위치된다.
종래 텍스처 매핑 프로세스는 출력 이미지 내 픽셀에 관한 세기 값을 계산하기 위해 입력 이미지로부터 텍셀을 필터링하는 단계를 포함한다. 종래, 입력 이미지는 역 아핀 변환(inverse affine transform)(T-1)을 통해 출력 이미지에 링크된다.
출력 이미지는 예를 들어, 이들의 정점 위치에 의해 규정된 타일(tile)이라고도 언급되는 다수의 직사각형으로 이루어진다. 출력 이미지의 타일은 이들의 정점 위치에 의해 규정된 입력 이미지에 있어서의 역 타일이라고도 언급되는 사변형에 대응한다. 상기 위치는 입력 이미지의 사변형과 출력 이미지의 직사각형간의 독자적 아핀 변환을 규정한다. 출력 이미지를 생성하기 위해, 각 출력 직사각형은 텍셀의 세기 값에 근거하여 사변형의 각 픽셀의 세기 값을 계산하기 위해 스캔-변환된다.
도 1은 종래 렌더링 디바이스의 블록도를 도시한다. 상기 렌더링 디바이스는 하드웨어 코프로세서 구현에 근거한 것이다. 이 코프로세서는 공유 메모리 시스템 의 일부로 가정한다. 동적 메모리 접근 유닛(DMA)은 코프로세서와 외부 메모리(도시하지 않음)를 접속시킨다. 제어기(CTRL)는 내부 프로세스 스케쥴링을 제어한다. 입력 메모리(IM)는 입력 이미지의 일부인 로컬 복제를 포함한다. 초기화 유닛(INIT)은 동적 메모리 접근 유닛(DMA)을 통해, 기하학적 패러미터 즉 다른 타일의 정점에 접근한다. 상기 기하학적 패러미터로부터, 초기화 유닛(INIT)은 스캔-변환 프로세스에 관한 아핀 계수를 계산한다. 이 아핀 계수는 역 타일을 스캔-변환 담당인 렌더링 유닛(REN)에 의해 처리된다. 스캔-변환의 결과는 로컬 출력 메모리(OM)에 저장된다.
코프로세서는 어드레스 메모리 블록(AM), 초기화 메모리(InitM) 및 로딩 영역 결정 블록(LAD)를 더 포함한다. 입력 메모리(IM)를 채우기 위해, 로딩 영역 결정 블록(LAD)은 어드레스 메모리 블록(AM)에 의해 저장되고 글로벌 메모리 어드레스로 변환되는 텍스처 어드레스를 계산한다. 이는 외부 메모리로부터 추가적 프로세싱의 요구에 맞는 적절한 영역으로 로드되게 한다.
하지만, 이러한 코프로세서는 타일을 기반으로 한 렌더링을 수행한다. 하나의 타일 렌더링으로부터 다음으로, 기하학적 변환에 요구되는 텍스처의 연속성은 타일 스캔 순서에 따라 전역적으로 보장된다. 하지만 메모리 배치 구속과 필터 풋프린트 때문에, 어드레스 메모리 블록(AM)에 의해 결정된 적절한 텍스처 영역은 확장된다. 사실, 어드레스 메모리 블록(AM)에 의해 결정된 전 영역은 입력 메모리(IM)로 로드된다. 이는 메모리 접근과 전력 소비 양자의 관점에서 볼 때 비효율적이다.
본 발명의 목적은, 메모리 대역폭과 전력 소비에 관련하여 양자가 보다 효율적인 메모리 유닛에 있어 데이터 값을 저장하는 방법을 제공하는 것이다.
때문에, 본 발명에 따른 방법은 적어도 두 개의 데이터 값들 세트들을 일시적으로 저장하는데 적합한 메모리 유닛을 특징으로 하는데, 상기 방법은:
메모리 유닛의 제 1 영역에 제 1 데이터 값들의 세트를 저장하는 단계;
제 2 데이터 값들의 세트의 제 1 파트가 수평 및/또는 수직 방향으로 상기 제 1 영역에 인접한 메모리 유닛의 제 2 영역에 각각 저장되고, 수평 및/또는 수직 방향으로 메모리 유닛 사이즈를 초과하여 저장될 제 2 데이터 값들 세트의 다른 파트가 토러스 원리에 따라 상기 메모리 유닛의 적어도 하나의 다른 영역에 각각 저장되는 방식으로 수평 및/또는 수직 방향으로 제 1 데이터 값들의 세트에 공간적으로 인접한 제 2 데이터 값들의 세트를 저장하는 단계를 포함한다.
하기에서 보다 상술하는 바와 같이, 제 1 데이터 값들의 세트에 공간적으로 인접한 제 2 데이터 값들의 세트만이 외부 메모리로부터 메모리 유닛으로 로드되기 때문에, 연속적 타일간의 공유된 영역은, 외부 메모리로부터 재접근되지 않는다. 게다가, 메모리 유닛이 적어도 두 개의 데이터 값들의 세트가 일시적으로 저장되기에 적합하기 때문에, 메모리 유닛의 판독 및 기록할 때 데이터 충돌은 일어나지 않는다. 결국, 데이터 값과 메모리 물리적 어드레스의 연속성은 토러스 원리에 따른 스토리지 덕택으로 메모리 유닛의 모듈로 수평 및 수직 사이즈가 보장된다. 따라서, 외부 메모리로부터 로드된 데이터 값의 총량이 줄어들기 때문에, 메모리 대역폭 및 전력 소비 양자에 관련하여 종래 기술보다 보다 효율적인 데이터 값 저장 방법이 된다.
본 발명의 제 1 실시예에 따라, 메모리 유닛은 적어도 네 개의 데이터 값들의 세트들을 일시적으로 저장하는데 적합하며, 제 2 데이터 값들의 다른 파트는 메모리 유닛의 하부 좌측 영역에 저장되는 제 2 파트, 메모리 유닛의 상부 우측 영역에 저장되는 제 3 파트 및 메모리 유닛의 상부 좌측 영역에 저장되는 제 4 파트를 포함한다.
본 발명의 다른 실시예에 따르면, 메모리 유닛은 동일한 사이즈의 두 개의 서브 파트로 분할되며, 본 방법은:
제 2 데이터 값들의 세트가 저장되는 메모리 유닛의 서브 파트를 지시하기 위해 현재 시간 사이클동안 기록 메모리를 업데이트하는 단계;
상기 현재 시간 사이클의 끝에서 상기 기록 메모리의 내용을 판독 전용 메모리로 복제하는 단계를 포함한다.
본 발명은 또한 이러한 방법을 구현하는 메모리 관리 유닛에 관련된 것으로, 상기 메모리 관리 유닛은 적어도 두 개의 데이터 값들의 세트들을 일시적으로 저장하는데 적합한 메모리 유닛, 상기 메모리 유닛의 제 1 영역에 제 1 데이터 값들의 세트를 저장할 수 있고, 제 2 데이터 값들의 세트의 제 1 파트가 수평 및/또는 수직 방향으로 상기 제 1 영역에 인접한 메모리 유닛의 제 2 영역에 각각 저장되고, 수평 및/또는 수직 방향으로 메모리 유닛 사이즈를 초과하여 저장될 제 2 데이터 값들의 세트의 다른 파트가 토러스 원리에 따라 상기 메모리 유닛의 적어도 하나의 다른 영역에 각각 저장되는 방식으로 수평 및/또는 수직 방향으로 제 1 데이터 값 들의 세트에 공간적으로 인접하여 제 2 데이터 값들의 세트를 저장할 수 있도록 구성화된 제어기를 포함한다.
바람직하게는, 메모리 유닛은 동일 사이즈의 두 개의 서브 파트들로 분할되고, 상기 메모리 관리 유닛은 제 2 데이터 값들의 세트가 저장되는 메모리 유닛의 서브 파트를 지시하기 위해 현재 시간 사이클 중 업데이트되는 기록 메모리와, 기록 메모리의 내용이 현재 시간 사이클 끝에서 복제되는 판독 전용 메모리를 더 포함하며, 상기 판독 전용 메모리의 내용에 근거하여 상기 메모리 유닛으로부터 데이터 값이 판독된다.
본 발명은 또한 상기 메모리 관리 유닛을 포함하는 휴대용 장치에 관련된다.
상기 발명은 결국 메모리 내 데이터 값을 일시적으로 저장하는 상기 방법을 구현화하기 위한 프로그램 명령을 포함하는 컴퓨터 프로그램 제품에 관련된다.
본 발명의 이들 및 다른 측면은 하기에 기술되는 실시예를 참조하여 보다 명백해지고 명료해 질 것이다.
이제 본 발명은 동반하는 도면을 참조하여, 예를 통해 보다 상세하게 기술될 것이다,
도 1은 종래 렌더링 디바이스의 블록도를 도시한 도면.
도 2는 종래 텍스처 매핑을 도시한 도면.
도 3은 본 발명에 따른 메모리 관리 유닛의 블록도를 도시한 도면.
도 4는 본 발명에 따라 데이터를 저장하는 방법의 실시예를 도시한 도면.
도 5는 본 발명에 따라 데이터를 저장하는 방법의 다른 실시예를 도시한 도면.
본 발명은 데이터를 일시적으로 저장하는 방법 및 디바이스에 관련한 것이다. 후술이 텍스처 매핑의 일례에 근거하지만, 본 발명은 로컬 메모리 회복(refreshment) 메카니즘을 요구하는 시스템에 보다 일반적으로 관련된다.
도 2는 종래의 텍스처 매핑 방법을 도시한다.
출력 이미지는 재구조화될 제 1 타일(B(t))을 포함한다. 제 1 역 타일(BB(t))은 제 1 역 아핀 변환(T1-1)을 통해 제 1 타일(B(t))에 연관된다. 제 1 타일을 재구조화하기 위해, 제 1 바운딩 박스(BB(t))에 대응하는 텍셀이 외부 메모리로부터 로컬 메모리로 로드된다. 상기 제 1 바운딩 박스(BB(t))는 폭(W1)과 높이(H1)를 가지며 제 1 타일(B(t))을 포함하는 가장 작은 직사각형에 대응한다.
출력 이미지는 재구조화될 제 2 타일(B(t+1))을 포함하며, 상기 제 2 타일은 제 1 타일에 인접한다. 동일하게, 제 2 역 타일(BB(t+1))은 제 2 역 아핀 변환(T2-1)을 통해 제 2 타일(B(t+1))에 연관된다. 동일하게 제 2 타일을 재구조화하기 위해, 제 2 바운딩 박스(BB(t+1))에 대응하는 텍셀이 외부 메모리로부터 로컬 메모리로 로드된다. 상기 제 2 바운딩 박스(BB(t+1))는 폭(W2)과 높이(H2)를 가지며 제 2 타일(B(t+1))을 포함하는 가장 작은 직사각형에 대응한다.
제 1 바운딩 박스(BB(t))와 제 2 바운딩 박스(BB(t+1))가 공유 영역(CA)을 공유하는 것은 도 2로부터 명백하게 알 수 있다. 상기 공유 영역(CA)은 좌표(ur[i],vr[i])를 가지는 제 1 바운딩 박스(BB(t))의 좌측 코너 상단에서 좌표(ur[i+1],vr[i+1])를 가지는 제 2 바운딩 박스(BB(t+1))의 좌측 코너 상단으로의 시프트((dx,dy))로부터 도출될 수 있다. 바운딩 박스(BB(t) 및 BB(t+1))의 외부 메모리 컨텐츠로부터의 독립적이고 연속적인 로딩 대신에, 본 발명은 제 2 바운딩 박스 영역 마이너스 공유 영역에 대응하는 추가 영역(LS(t+1))만을 로드하는 것을 제안하며, 상기 추가 영역은 일반적으로 L 자 형태이다.
역 아핀 변환의 아핀 계수가 계산되면, 본 발명에 따른 매핑 방법은, 타일의 출력 포인트에 관하여, 역 아핀 변환을 사용하여 대응하는 역 타일에 있어서의 입력 변환된 포인트를 결정하는데 적합하다. 역 타일에 속하는 입력 변환된 포인트는 일반적으로 정수 좌표를 가지는 텍셀의 그리드에 위치하지 않는다. 상기 입력 변환된 포인트에 대응하는 필터된 세기 값은 상기 입력 변환된 포인트를 둘러싸는 역 타일의 텍셀 세트를 필터링하는 단계에 따라 도출된다. 예를 들어, 필터링 단계는 쌍 일차 보간(interpolation)을 구현하는데 적합한 쌍 일차 필터 사용에 근거한다.
도 3은 본 발명에 따른 메모리 관리 유닛의 블록도를 도시한다. 상기 메모리 관리 유닛(MMU)은 로컬 입력 메모리를 포함한다. 상기 메모리 관리 유닛은 동적 메모리 접근 유닛(DMA)을 통해 외부 메모리와 접속하고 로컬 메모리 데이터로 접근하기를 요구하는 블록을 처리한다.
상기 메모리 관리 유닛(MMU)은 제 1 바운딩 박스에 대응하는, 이전 것으로부 터, 제 2 바운딩 박스에 대응하는, 외부 메모리 영역의 시프트((dx,dy))를 계산하는데 적합하고, 도 2에 규정된 바와 같이 L 형상 영역을 결정하는데 적합한 메모리 제어기(CTRL)를 포함한다. 상기 L 형상 영역은 외부 메모리로부터 로컬 입력 메모리(IM)로 로드된다. 이 제어기(CTRL)는 내부 물리적 공간좌표 시스템을 유지하고 이 내부 물리적 공간 시스템간의 변환을 수행하며, 외부 메모리 공간 시스템과 내부 로직 공간 시스템은 다른 프로세싱 블록에 의해 사용된다.
입력 메모리(IM)를 채우기 위해, 로딩 영역 결정 블록(LAD)은 FIFO(선입선출) 형태의 어드레스 메모리 블록에 저장되는 텍스처 어드레스를 계산한다. 본 발명의 실시예에 따라, 상기 FIFO 메모리는 분할된 세 개의 파트로 소정시간에서 보여질 수 있으며, 제 1 파트(@+2)는 시간 사이클(t+2) 동안 행해지는 텍스처 어드레스를 포함하며; 제 2 파트(W@+1)는 시간 사이클(t1) 동안 판독되고 처리되도록 시간 사이클동안 입력 메모리에 쓰여지는 텍스처 어드레스를 포함하며; 그리고 제 3 파트(R@t)는 시간 사이클(t) 동안 판독되고 처리되는 텍스처 어드레스를 포함한다.
상술한 바와 같이, 제어기(CTRL)는 먼저 외부 메모리로부터 로컬 입력 메모리(IM)로 로드될 L 형상 영역(LS(t+1))을 결정하기 위해 하나의 바운딩 박스로부터 다음 것으로의 영역 시프트((dx, dy))를 결정한다. 직사각형 영역을 고려하면, 이 시프트는 내부 로직 공간 시스템의 새로운 근원을 나타내는 직사각형의 좌측 코너 상단(ur[i+1],vr[i+1])에 의해 결정된다. 도 2에 도시한 바와 같이, 상기 L 형상 영역은 부분 폭(Wp)과 두 개의 부분 높이(Hp 및 Hp')에 의해 규정되고, 제 1 Hp 라인(본 예에서는 4)을 위해 외부 메모리로부터 로드될 필요가 있는 Wp 텍셀 값(도 2 의 예에서는 3)과 Hp' 다음 라인(본 예에서는 2)을 위해 외부 메모리로부터 로드될 필요가 있는 W2 텍셀 값(본 예에서는 7)을 의미한다.
영역 시프트를 사용하여, 새로운 로직 근원과 내부 물리적 좌표간의 대응이 수행된다. 하기에서 상술하는 바와 같이, 내부 물리적 공간 시스템은 로컬 입력 메모리(IM)의 경계에 도달할 때 어드레스가 자동적으로 겹쳐지는 토러스로서 보여진다. 상기 로컬 입력 메모리(IM)의 사이즈는 시간 사이클(t) 동안 바운딩 박스(BB(t))의 데이터 값을 L 형상 영역(LS(t+1))의 데이터 값이 겹쳐 쓰지 않도록 선택된다. 따라서 메모리 관리 유닛은 데이터 충돌이 일어나지 않는 것을 보장하며 데이터 값과 메모리 물리적 어드레스의 연속성이 로컬 입력 메모리(IM)의 모듈로 수평 및 수직 사이즈로 보장된다.
상술한 바와 같이, L 형상 영역(LS(t+1))이 공지의 파이프라인 프로세스에 따라 렌더링 목적으로 접근되는 로컬 입력 메모리(IM)에 이전 영역(BB(t))가 저장되는 동안 외부 메모리로부터 로컬 입력 메모리로 로드된다. 때문에 로컬 입력 메모리(IM)는 더블포트 메모리이다.
본 발명의 일실시예에 따라, 도 4에 도시된 바와 같이, 어느 바운딩 박스에 저장될 필요있는 메모리보다 네 배 큰 로컬 입력 메모리가 데이터 충돌이 발생하지 않도록 하기 위해 사용된다. 예를 들어, 타일이 16×16 픽셀의 정사각형이면, 역 타일에 대응하는 바운딩 박스는 아핀 변환을 사용하여 23×23 픽셀(16√2보다 큰 제 1 정수)보다 크지 않을 것이다. 각 픽셀이 4 구성요소(휘도(Y), 색도(U 및 V), 투명도(α))를 포함한다면, 각 구성요소는 8비트를 포함하며, 어느 바운딩 박스에 저장되도록 요구되는 메모리의 최소 사이즈는 32비트의 23×23 워드와 동일할 것이며, 로컬 입력 메모리의 사이즈는 32비트의 46×46 워드와 동일할 것이다. 축소기능이 렌더링을 위해 사용된다면 상기 사이즈는 두배가 될 수 있음을 주의하여야 한다.
도 4는 어느 바운딩 박스에 저장될 필요가 있는 메모리보다 네 배가 큰 로컬 입력 메모리(IM)를 사용하여 데이터를 저장하는 방법을 도시하며, 점선은 가상으로 상기 로컬 입력 메모리를 네 개의 동일한 사이즈를 가지는 서브-파트(A1 내지 A4)로 분할된 것을 나타낸다.
시간 사이클(t-1) 동안, 제 1 바운딩 박스(BB(t))는 로컬 입력 메모리(IM)에 저장되어진다.
시간 사이클(t) 동안, 제 1 L 형상 영역(LS(t+1))는 로컬 입력 메모리(IM)로 로드되고, 상기 제 1 L 형상 영역은 상기 메모리에 맞춰진다. 이 시간 사이클(t) 동안, 제 1 바운딩 박스(BB(t))의 내용은 렌더링 목적을 위해 접근된다.
시간 사이클(t+1) 동안, 제 2 L 형상 영역(LS(t+2))는 로컬 입력 메모리(IM)로 로드되고, 상기 제 2 L 형상 영역은 상기 메모리에 여전히 맞춰진다. 이 시간 사이클(t+1) 동안, 제 1 L 형상 영역(LS(t+1))과 제 1 바운딩 박스(BB(t))와 상기 제 2 바운딩 박스(BB(t+1)가 공유하는 영역을 포함하는, 제 2 바운딩 박스(BB(t))의 내용은 렌더링 목적을 위해 접근된다.
시간 사이클(t+2) 동안, 제 3 L 형상 영역(LS(t+3))은, 로컬 입력 메모리의 제 4 영역(A4)에 맞는 상기 제 3 L 형상 영역의 제 1 파트(P1)인, 로컬 입력 메모 리(IM)로 로드된다. 제 3 L 형상 영역의 다른 파트는 다음과 같은 토러스 원리에 따라 로컬 입력 메모리에 저장된다. 제 3 L 형상 영역의 제 2 파트(P2)는 제 3 영역(A3)의 좌측 코너 바닥에 저장된다. 제 3 L 형상 영역의 제 3 파트(P3)는 제 2 영역(A2)의 우측 코너 상단에 저장된다. 결국, 제 3 L 형상 영역의 제 4 파트(P4)는 제 1 영역(A4)의 좌측 코너 상단에 저장된다. 이 저장 프로세스는 픽쳐 또는 픽쳐의 완전한 시퀀스가 처리될 때 까지 반복된다. 이 시간 사이클(t+2) 동안, 제 3 바운딩 박스(BB(t+2))의 내용은 렌더링 목적을 위해 접근된다.
메모리 사이즈 증가는, 두 개의 이진 메로기가 조합된 더블-버퍼 메모리를 사용하는, 어느 바운딩 박스에 저장될 필요 있는 두 배의 메모리 사이즈에 한정될 수 있다. 도 3은 본 발명에 따라 데이터를 저장하는 방법의 다른 실시예를 도시한다.
더블 버퍼 메모리(IM)를 읽을 때, 판독 전용 메모리(RO)는 데이터가 가용한 더블 버퍼 메모리의 일부를 나타낸다. 시간 사이클(t) 동안, 외부 메모리로부터 더블 버퍼 메모리로 L 형상 영역(LS(t+1))을 쓸 때, 기록 메모리(W)는 기록이 수행되었음을 더블 버퍼 메모리(IM)의 일부에 나타내기 위해 업데이트된다. 시간 사이클(t)의 끝에서, 기록 메모리(W)의 내용은 시간 사이클(t+1) 동안 바운딩 박스(BB(t+1))를 읽을 때 사용되도록 판독 전용 메모리(RO)에 복제된다. 이 메모리(RO 및 W)는 오직 메모리 슬롯 당 단일 비트이다.
도 5는 본 발명에 따른 데이터 저장 방법의 다른 실시예를 보다 상세히 도시한다. 점선은 더블 버퍼 메모리(IM)를 가상으로 동일한 사이즈를 가지는 서브 파 트(IM(R) 및 IM(L))로 분할한 것을 나타낸다.
시간 사이클(t-1) 동안, 제 1 바운딩 박스(BB(t))의 내용은 동적 메모리 접근 유닛(DMA)을 통해 외부 메모리로부터 더블 버퍼 메모리(IM)의 좌측 파트(IM(L))로 로드된다. 동적 메모리 접근 유닛(DMA)을 통해 제 1 바운딩 박스의 데이터가 더블 버퍼 메모리로 로드되었을 때 기록 메모리(W)의 값은 1(흰 부분)로 되어 있다. 도 5A에 도시한 바와 같이, 상기 제 1 바운딩 박스는 상기 좌측 파트(IM(L))에 맞는다. 기록 프로세스의 끝에서, 기록 메모리(W)의 내용은 다음 프로세싱 단계를 위해 판독 전용 메모리(RO)로 복제된다.
시간 사이클(t) 동안, 제 1 바운딩 박스(BB(t))의 내용은 판독 전용 메모리(RO)에 저장된 2진 값에 근거하여 더블 버퍼 메모리로부터 판독된다. 도 5B에 도시한 바와 같이, 판독 전용 메모리(RO)의 출력이 1(흰 부분)이면, 데이터는 더블 버퍼 메모리(IM)의 좌측 파트(IM(L))로 판독되고 판독 전용 메모리(RO)의 출력이 0이면(검은 부분), 데이터는 더블 버퍼 메모리(IM)의 우측 파트(IM(R))로 판독된다.
상기 시간 사이클(t) 동안, L 형상 영역(LS(t+1))의 내용은 동적 메모리 접근 유닛(DMA)을 통해 외부 메모리로부터 더블 버퍼 메모리(IM)로 로드된다. 데이터의 아이템이 더블 버퍼 메모리에 쓰여질 때 마다, 적절한 메모리 파트에 상기 데이터 아이템 기록을 확인하기 위해 대응하는 기록 메모리(W)의 비트는 확보된다(1 내지 0 또는 0 내지 1). 도 5B의 예에서, 데이터 아이템이 외부 메모리로부터 더블 버퍼 메모리의 우측 파트(IM(R))로 로드될 때 기록 메모리(W)의 값은 0(검은 부분)으로 되어 있다. 결과로서, 데이터는 다음과 같은, 토러스 원리에 따라 더블 버퍼 메모리에 저장된다.
- 메모리 슬롯이 바운딩 박스(BB(t))에 의해 점유되지 않았다면, 데이터는 좌측 파트(IM(L))에 저장된다(도 5B:LS0,LS2,LS3 및 LS5) 참조).
- 대응하는 영역이 제 1 바운딩 박스(BB(t))에 채워져 있기 때문에 상기 좌측 파트(IM(L))에 가용한 공간이 없을 때, 데이터는 더블 버퍼 메모리의 우측 파트(IM(R))에 저장되는데 이 위치는 가용할 경우 좌측 파트(IM(L))에 저장될 위치와 동일한 위치이다(도 5B: LS1, LS4 및 LS6 참조).
기록 프로세스의 끝에서, 기록 메모리(W)의 내용은 다음 프로세스 단계를 위해 판독 전용 메모리(RO)에 복제된다.
이 프로세스는 픽쳐 또는 픽쳐의 완전한 시퀀스가 처리될 때 까지 반복된다.
본 발명의 몇몇 실시예를 예만을 통해 기술하여 왔지만, 첨부되는 청구항에 의해 규정된 바와 같이 본 발명의 범위를 일탈하지 않는 한 다양한 변형으로 상술한 실시예를 구성할 있음이 당업자에게는 명백할 것이다. 또한, 청구항에 있어, 괄호안에 위치한 어떠한 인용부호도 청구항을 한정하는데 해석될 수 없다. "포함한다"라는 용어는 청구항에 기재된 것과 다른 구성요소 또는 단계의 존재를 배제하는 것이 아니다. "하나"라는 용어는 복수를 배제하지 않는다. 본 발명은 몇몇 명백한 구성요소를 포함하는 하드웨어를 이용하여, 그리고 적합하게 프로그램된 컴퓨터를 이용하여 구현될 수 있다. 몇몇 수단을 열거하는 디바이스 청구항에 있어, 몇몇 수단은 동일한 하드웨어 아이템으로 구현화할 수 있다. 단순한 사실은 서로 다른 독립 청구항에 열거된 수단들은 이들 수단의 조합이 장점을 위해 사용될 수 없음을 나타내는 것이 아니라는 것이다.

Claims (7)

  1. 적어도 두 개의 데이터 값들의 세트들(BB(t),LS(t+1);BB(t+2),LS(t+3))을 일시적으로 저장하는데 적합한 메모리 유닛(IM)에 데이터 값을 저장하는 방법에 있어서,
    상기 메모리 유닛의 제 1 영역에 제 1 데이터 값들의 세트(BB(t);BB(t+2))를 저장하는 단계; 및
    제 2 데이터 값들의 세트(LS(t+1);LS(t+3))의 제 1 파트(P1;LS0,LS1,LS2)가 수평 및/또는 수직 방향으로 상기 제 1 영역에 인접한 상기 메모리 유닛의 제 2 영역에 각각 저장되고, 수평 및/또는 수직 방향으로 메모리 유닛 사이즈를 초과하여 저장될 상기 제 2 데이터 값들의 세트의 다른 파트(P2,P3,P4;LS3,LS4,LS5,LS6)가 토러스 원리에 따라 상기 메모리 유닛의 적어도 하나의 다른 영역에 각각 저장되는 방식으로 수평 및/또는 수직 방향으로 제 1 데이터 값들의 세트에 공간적으로 인접한 상기 제 2 데이터 값들의 세트를 저장하는 단계를 포함하는, 데이터 값 저장 방법.
  2. 제 1 항에 있어서,
    상기 메모리 유닛은 적어도 네 개의 데이터 값들의 세트들을 일시적으로 저장하는데 적합하며, 상기 제 2 데이터 값들의 세트의 다른 파트는 상기 메모리 유닛의 하부 좌측 영역에 저장되는 제 2 파트(P2), 상기 메모리 유닛의 상부 우측 영 역에 저장되는 제 3 파트(P3) 및 상기 메모리 유닛의 상부 좌측 영역에 저장되는 제 4 파트(P4)를 포함하는, 데이터 값 저장 방법.
  3. 제 1 항에 있어서,
    상기 메모리 유닛(IM)은 동일한 사이즈의 두 개의 서브 파트들(IM(L), IM(R))로 분할되며, 상기 방법은:
    상기 제 2 데이터 값들의 세트가 저장되는 상기 메모리 유닛의 서브 파트를 지시하기 위해 현재 시간 사이클 동안 기록 메모리(W)를 업데이트하는 단계; 및
    상기 현재 시간 사이클의 끝에서 상기 기록 메모리의 내용을 판독 전용 메모리(RO)로 복제하는 단계를 더 포함하는, 데이터 값 저장 방법.
  4. 데이터 값들을 저장하기 위한 메모리 관리 유닛(MMU)에 있어서,
    적어도 두 개의 데이터 값들의 세트들(BB(t),LS(t+1);BB(t+2),LS(t+3))을 일시적으로 저장하는데 적합한 메모리 유닛(IM); 및
    상기 메모리 유닛의 제 1 영역에 제 1 데이터 값들의 세트(BB(t);BB(t+2))를 저장할 수 있고, 제 2 데이터 값들의 세트의 제 1 파트(P1;LS0,LS1,LS2)가 수평 및/또는 수직 방향으로 상기 제 1 영역에 인접한 상기 메모리 유닛의 제 2 영역에 각각 저장되고, 수평 및/또는 수직 방향으로 메모리 유닛 사이즈를 초과하여 저장될 제 2 데이터 값들의 세트의 다른 파트(P2,P3,P4;LS3,LS4,LS5,LS6)가 토러스 원리에 따라 상기 메모리 유닛의 적어도 하나의 다른 영역에 각각 저장되는 방식으로 수평 및/또는 수직 방향으로 상기 제 1 데이터 값들의 세트에 공간적으로 인접한 제 2 데이터 값들의 세트(LS(t+1);LS(t+3))을 저장할 수 있도록 구성된 제어기를 포함하는, 메모리 관리 유닛.
  5. 제 4 항에 있어서,
    상기 메모리 유닛은 동일 사이즈의 두 개의 서브 파트들(IM(L),IM(R))로 분할되고, 상기 메모리 관리 유닛은:
    상기 제 2 데이터 값들의 세트가 저장되는 상기 메모리 유닛의 서브 파트를 지시하기 위해 현재 시간 사이클 중 업데이트되는 기록 메모리(W); 및
    상기 기록 메모리의 내용이 상기 현재 시간 사이클 끝에서 복제되는 판독 전용 메모리(RO)로서, 데이터 값들은 상기 판독 전용 메모리의 내용에 근거하여 상기 메모리 유닛으로부터 판독되는, 상기 판독 전용 메모리(RO)를 포함하는, 메모리 관리 유닛.
  6. 제 4 항에 따른 메모리 관리 유닛(MMU)을 포함하는 휴대용 장치.
  7. 프로그램이 프로세서에 의해 실행될 때, 제 1 항에 따른 방법에 따른 방법을 구현하기 위한 상기 프로그램의 명령들을 포함하는 컴퓨터 프로그램 제품.
KR1020067022315A 2004-04-26 2005-04-21 메모리에 데이터 값을 일시적으로 저장하는 방법 KR20070005700A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04300218.7 2004-04-26
EP04300218 2004-04-26

Publications (1)

Publication Number Publication Date
KR20070005700A true KR20070005700A (ko) 2007-01-10

Family

ID=34965453

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067022315A KR20070005700A (ko) 2004-04-26 2005-04-21 메모리에 데이터 값을 일시적으로 저장하는 방법

Country Status (6)

Country Link
US (1) US20070198783A1 (ko)
EP (1) EP1743297A1 (ko)
JP (1) JP2007535035A (ko)
KR (1) KR20070005700A (ko)
CN (1) CN1947145A (ko)
WO (1) WO2005104030A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102163320B (zh) * 2011-04-27 2012-10-03 福州瑞芯微电子有限公司 一种图像处理专用可配置的mmu电路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8322438D0 (en) * 1983-08-19 1983-10-12 Marconi Avionics Display systems
US5278966A (en) * 1990-06-29 1994-01-11 The United States Of America As Represented By The Secretary Of The Navy Toroidal computer memory for serial and parallel processors
US5461712A (en) * 1994-04-18 1995-10-24 International Business Machines Corporation Quadrant-based two-dimensional memory manager
US5999199A (en) * 1997-11-12 1999-12-07 Cirrus Logic, Inc. Non-sequential fetch and store of XY pixel data in a graphics processor
US6618053B1 (en) * 2000-01-10 2003-09-09 Vicarious Visions, Inc. Asynchronous multilevel texture pipeline
US7196710B1 (en) * 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6801219B2 (en) * 2001-08-01 2004-10-05 Stmicroelectronics, Inc. Method and apparatus using a two-dimensional circular data buffer for scrollable image display

Also Published As

Publication number Publication date
CN1947145A (zh) 2007-04-11
EP1743297A1 (en) 2007-01-17
WO2005104030A1 (en) 2005-11-03
JP2007535035A (ja) 2007-11-29
US20070198783A1 (en) 2007-08-23

Similar Documents

Publication Publication Date Title
CN110036413B (zh) 平铺架构中的注视点渲染
US6914610B2 (en) Graphics primitive size estimation and subdivision for use with a texture accumulation buffer
US7746342B2 (en) Drawing processing apparatus, texture processing apparatus, and tessellation method
US7405735B2 (en) Texture unit, image rendering apparatus and texel transfer method for transferring texels in a batch
US6661424B1 (en) Anti-aliasing in a computer graphics system using a texture mapping subsystem to down-sample super-sampled images
JP4154336B2 (ja) ラスター画像のフレームを描画する方法及び装置
US6831658B2 (en) Anti-aliasing interlaced video formats for large kernel convolution
US7106336B1 (en) Method and system for deferred evaluation of transforms in graphics processors
JP3959862B2 (ja) テクスチャマッピング方法及びその装置
US5870105A (en) System and method for local storage of image data during object to image mapping
US6943796B2 (en) Method of maintaining continuity of sample jitter pattern across clustered graphics accelerators
TWI395152B (zh) 繪圖處理單元及處理邊框顏色資訊之方法
KR101107114B1 (ko) 그래픽 객체들을 렌더링하는 방법
US6982719B2 (en) Switching sample buffer context in response to sample requests for real-time sample filtering and video generation
US20040012610A1 (en) Anti-aliasing interlaced video formats for large kernel convolution
US6466219B1 (en) Storage device and image data processing apparatus
US6473091B1 (en) Image processing apparatus and method
EP0890925A2 (en) Computer system including a three-dimensional graphics accelerator which includes improved texture mapping capabilities
US6850244B2 (en) Apparatus and method for gradient mapping in a graphics processing system
US6326976B1 (en) Method for determining the representation of a picture on a display and method for determining the color of a pixel displayed
US8115780B2 (en) Image generator
KR20070005700A (ko) 메모리에 데이터 값을 일시적으로 저장하는 방법
US11748933B2 (en) Method for performing shader occupancy for small primitives
US7372461B2 (en) Image processing apparatus and method of same
US8416242B1 (en) Method and system for interpolating level-of-detail in graphics processors

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