KR100859395B1 - 정보 처리 장치 및 정보 처리 방법 - Google Patents

정보 처리 장치 및 정보 처리 방법 Download PDF

Info

Publication number
KR100859395B1
KR100859395B1 KR1020067027785A KR20067027785A KR100859395B1 KR 100859395 B1 KR100859395 B1 KR 100859395B1 KR 1020067027785 A KR1020067027785 A KR 1020067027785A KR 20067027785 A KR20067027785 A KR 20067027785A KR 100859395 B1 KR100859395 B1 KR 100859395B1
Authority
KR
South Korea
Prior art keywords
cache
replenishment
texture
memory
cache memory
Prior art date
Application number
KR1020067027785A
Other languages
English (en)
Other versions
KR20070022824A (ko
Inventor
노부오 사사키
다케시 야마자키
아츠시 구니마츠
히데키 야수가와
Original Assignee
가부시키가이샤 소니 컴퓨터 엔터테인먼트
가부시끼가이샤 도시바
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 소니 컴퓨터 엔터테인먼트, 가부시끼가이샤 도시바 filed Critical 가부시키가이샤 소니 컴퓨터 엔터테인먼트
Priority to KR1020067027785A priority Critical patent/KR100859395B1/ko
Publication of KR20070022824A publication Critical patent/KR20070022824A/ko
Application granted granted Critical
Publication of KR100859395B1 publication Critical patent/KR100859395B1/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

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

Abstract

제 2 텍스쳐 캐시는 복수의 텍스쳐 유닛들에 의해 공통적으로 사용되고, 텍스쳐 데이터의 일부를 주 메모리 내에 저장한다. 캐시 제어 CPU는, 복수의 텍스쳐 유닛들의 캐시 부적중들에 따라 주 메모리로부터 제 2 텍스쳐 캐시로의 보충 동작을 제어하여 제 2 텍스쳐 캐시의 과다 상태의 발생을 억제한다. 복수의 연산 유닛들이 예정된 시간차를 가지고 동일한 메모리 주소에 접근할 때, 캐시 제어 CPU는 보충 동작의 발생을 억제한다.
Figure R1020067027785
제 2 텍스쳐 캐시, 텍스쳐 유닛, 주 메모리, 과다 상태, 캐시 제어 CPU

Description

정보 처리 장치 및 정보 처리 방법{Information processing apparatus and information processing method}
본 발명은 주 메모리로부터 고속으로 데이터를 판독하기 위한 기술, 더욱 구체적으로 속력의 증가를 위해 캐시 메모리(cache memory)를 사용하기 위한 기술에 관한 것이다.
최근에, 프로세서(processor)들은 동작 주파수에서 인상적으로 향상되었다. 반대로, 주 메모리들에서 전형적으로 사용되는 임의접근기억장치(DRAM; dynamic random access memory)들은 프로세서들처럼 동작 주파수에서 크게 향상되지 않았다. 그러므로 프로세서 성능들을 이용하는 것은 약간의 고안을 필요로 한다. 주 메모리들의 접근 시간들은 캐시 메모리를 주 메모리와 프로세서 사이에 개재하는 기술을 이용함으로써 감소되어 왔다.
그럼에도 불구하고, 프로세서가 지정된 주소에 대한 캐시에 접근할지라도, 캐시는 요망된 데이터를 항상 포함하지는 않는다. 이러한 경우들에서, 캐시 부적중(cache miss)는 주 메모리로부터의 보충을 필요로 하게 된다. 이와 같은 캐시 부적중들이 자주 일어날 때, 캐시는 가속에 기여할 뿐만 아니라 오버헤드(overhead)를 일으킨다.
본 발명은 상술한 문제점을 해결하기 위하여 고안되었다. 따라서, 본 발명의 목적은 더 빠른 데이터 판독을 위하여 캐시 부적중(cahe miss)들을 감소하기 위한 정보 처리 장치 및 정보 처리 방법을 제공하는 것이다.
본 발명의 실시형태들 중 하나는 정보 처리 장치이다. 이러한 정보 처리 장치는: 복수의 연산 유닛(unit)들에 의해 공통으로 사용되며, 주 메모리 내에 데이터의 일부를 저장하는 캐시 메모리; 및 캐시 메모리 내의 과다 상태(thrashing)의 발생을 억제하도록, 복수의 연산 유닛들로부터의 적어도 하나의 캐시 부적중에 따라 주 메모리로부터 캐시 메모리로의 보충 동작(refill operation)을 제어하는 제어 유닛을 포함한다. 여기서, "데이터"는 텍스쳐(texture) 데이터를 포함할 수 있다. "연산 유닛들"은 텍스쳐 유닛들을 포함할 수 있다. "과다 상태"는 동일한 데이터의 바꿔넣기(swap-in) 및 옮겨비우기(swap-out)가 주 메모리와 캐시 메모리 사이에서 단속적으로 발생하는 상태를 칭한다.
본 발명의 또 다른 실시형태는 또한 정보 처리 장치이다. 이러한 정보 처리 장치는: 복수의 연산 유닛들에 의해 공통으로 사용되며, 주 메모리 내에 데이터의 일부를 저장하기 위한 복수의 웨이(way)들을 가지는 캐시 메모리; 각각의 웨이들에 대한 캐시 태그(cahce tag)들 및 진입점(entry)의 상태들을 관리하는 캐시 관리 유닛; 및 보충 요청이 복수의 연산 유닛들로부터의 적어도 하나의 캐시 부적중으로부터 발생하며, 캐시 관리 유닛으로부터의 보충 요청에 따라 주 메모리로부터 캐시 메모리로의 보충 동작 및 진입점의 상태들을 제어하는 제어 유닛을 포함한다.
제어 유닛은, 복수의 연산 유닛들이 예정된 시간차를 가지고 동일한 메모리 주소에 접근할 때 보충 동작의 발생을 억제할 수 있다. 제어 유닛이 동일한 메모리 주소로의 복수의 보충 요청들을 수신하면, 제 2 보충 요청에 대응하는 보충 동작을 정지할 수 있다. 제어 유닛은 동일한 메모리 주소로의 복수의 보충 요청들을 수신하면, 제 2 보충 요청에 대응하는 진입점 잠금(entry lock)을 또한 정지할 수 있다. 게다가, 제어 유닛은 보충 동작을 수행하기 전에 캐시 부적중들로부터 발생하는 예정된 개수의 보충 요청들을 축적할 수 있다.
본 발명의 또 다른 실시형태는 또한 정보 처리 장치이다. 이러한 정보 처리 장치는: 복수의 연산 유닛들에 의해 공통으로 사용되며, 주 메모리 내에 데이터의 일부를 저장하는 캐시 메모리; 및 복수의 연산 유닛들로부터의 캐시 부적중들로부터 발생하는 복수의 보충 요청들에 따라 주 메모리로부터 캐시 메모리로의 보충 동작을 제어하는 제어 유닛을 포함한다. 여기서, 제어 유닛은, 보충 동작이 시작되고 예정된 시간의 기간이 지난 이후에 캐시 메모리에 대한 보충 요청들에 대응하는 진입점 잠금을 설정한다.
본 발명의 또 다른 실시형태는 또한 정보 처리 장치이다. 이러한 정보 처리 장치는: 복수의 연산 유닛들에 의해 공통으로 사용되며, 주 메모리 내에 데이터의 일부를 저장하는 캐시 메모리; 주 메모리 및 캐시 메모리 사이에 개재된 중간 버퍼(buffer); 및 복수의 연산 유닛들로부터의 캐시 부적중들로부터 발생하는 복수의 보충 요청들에 따라 중간 버퍼를 경유하여 주 메모리로부터 캐시 메모리로의 보충 동작을 제어하는 제어 유닛을 포함한다. 여기서, 제어 유닛은, 보충 동작에 의해 캐시 메모리로 전달되는 데이터가 중간 버퍼 내에 저장될 때 캐시 메모리에 대한 보충 요청에 대응하는 진입점 잠금을 설정한다.
본 발명의 또 다른 실시형태는 또한 정보 처리 장치이다. 이러한 정보 처리 장치는: 복수의 연산 유닛들에 의해 공통으로 사용되며, 주 메모리 내에 데이터의 일부를 저장하는 캐시 메모리; 및 복수의 연산 유닛들로부터의 적어도 하나의 캐시 부적중으로부터 발생하는 보충 요청에 따라 주 메모리로부터 캐시 메모리로의 보충 동작을 제어하고, 복수의 연산 유닛들에 의해 사용될 텍스쳐 데이터를 예측하고 주 메모리로부터 캐시 메모리로의 예비인출 동작을 제어하는 제어 유닛을 포함한다. 캐시 메모리는, 캐시 부적중에 따라 보충될 영역, 및 예비인출을 위해 진입점-잠금될 영역을 포함한다. 제어 유닛은 예정된 조건 하에 2개의 영역들을 교환할 수 있다.
본 발명의 또 다른 실시형태는 또한 정보 처리 장치이다. 이러한 정보 처리 장치는: 연산 유닛들에 의해 공통으로 사용되며, 주 메모리 내에 저장된 텍스쳐 데이터의 일부를 저장하는 캐시 메모리; 및 연산 유닛들에 의해 사용될 텍스쳐 데이터를 예측하고 텍스쳐 데이터를 포함하는 행을 주 메모리로부터 캐시 메모리로 예비인출하는 제어 유닛을 포함한다. 제어 유닛은 예정된 프로그램을 수행함에 있어서 연산 유닛들에 의해 사용될 시작 장면에 필요한 텍스쳐 데이터를 예비인출할 수 있다.
본 발명의 또 다른 실시형태는 정보 처리 방법이다. 이러한 정보 처리 방법은: 캐시 메모리 내의 과다 상태의 발생을 억제하도록, 캐시 메모리에 접근하는 복수의 연산 유닛들로부터의 캐시 부적중들로부터 발생하는 복수의 보충 요청들 사이를 조정하는 단계; 및 조정된 보충 요청에 따라 주 메모리로부터 캐시 메모리로의 보충을 수행하는 단계를 포함한다. 상기 조정은, 복수의 연산 유닛들이 예정된 시간차를 가지고 동일한 메모리 주소에 접근할 때 보충의 발생을 억제한다. 보충의 발생은, 예정된 개수의 보충 요청들이 축적될 때까지 억제될 수 있다.
본 발명의 또 다른 실시형태는 정보 처리 방법이다. 이러한 방법은: 캐시 메모리에 접근하는 복수의 연산 유닛들로부터의 캐시 부적중들로부터 발생하는 복수의 보충 요청들 사이를 조정하는 단계; 조정된 보충 요청에 따라 주 메모리로부터 캐시 메모리로의 보충을 수행하는 단계; 및 보충이 시작되고 예정된 시간의 기간이 지난 이후에 캐시 메모리에 대한 보충 요청들에 대응하는 진입점 잠금들을 설정하는 단계를 포함한다.
본 발명의 또 다른 실시형태는 정보 처리 방법이다. 이러한 정보 처리 방법은: 연산 유닛에 의해 사용될 텍스쳐 데이터를 예측하는 단계; 및 예측된 텍스쳐 데이터를 포함하는 행을 주 메모리로부터 캐시 메모리로 예비인출하는 단계를 포함한다. 상기 예측에 있어서, 예정된 프로그램 수행에서 연산 유닛에 의해 사용될 시작 장면에 대해 필요한 텍스쳐 데이터가 예비인출될 데이터로서 예측될 수 있다.
덧붙여 말하자면, 상술한 구성요소들의 임의의 조합들, 및 방법들, 장치들, 시스템들, 기록 매체들, 컴퓨터 프로그램들 등 사이에서 변환되는 본 발명의 형식들은 본 발명의 적용가능한 실시형태들을 구성한다.
도 1은 제 1 실시형태에 따른 주 메모리 및 GPU의 구성을 도시하는 블록도이고;
도 2는 제 1 실시형태에 따른 시스템의 제 1 동작 실시예를 도시하는 순서도이며;
도 3은 텍스쳐 매핑(mapping)이 복수의 텍스쳐 유닛들에 의해 어떻게 수행되는 지를 도시하는 개략도이고;
도 4는 제 2 텍스쳐 캐시 및 제 2 텍스쳐 캐시 제어기의 세부사항들을 도시하는 개략도이며;
도 5는 제 1 실시형태에 따른 시스템의 제 2 동작 실시예를 도시하는 순서도이고;
도 6은 제 2 실시형태에 따른 주 메모리 및 GPU의 구성을 도시하는 블록도이며;
도 7은 제 2 실시형태에 따른 동작 실시예를 도시하는 순서도이고;
도 8은 제 3 실시형태에 따른 주 메모리, 주 CPU, 및 GPU의 구성을 도시하는 블록도이며;
도 9는 제 3 실시형태에 따른 시스템의 제 1 동작 실시예를 도시하는 순서도이고;
도 10은 도 9의 동작 실시예에서 제 2 텍스쳐 캐시 및 제 2 텍스쳐 캐시 제어기의 세부사항들을 개략도이며;
도 11은 텍스쳐 데이터를 예측하기 위한 처리의 제 1 실시예를 도시하는 순서도이고;
도 12는 텍스쳐 데이터를 예측하기 위한 처리의 제 2 실시예를 도시하는 순서도이며;
도 13은 제 4 실시형태에 따른 시스템의 동작 실시예를 도시하는 순서도이다.
도 1은 제 1 실시형태에 따른 주 메모리(10) 및 그래픽 처리 유닛(GPU; graphics processing unit; 100)의 구성을 도시하는 블록도이다. 주 메모리(10)는 시스템의 주 메모리이고, DRAM 등으로 구성된다. 본 실시형태에서, 주 메모리(10)는 주로 텍스쳐 데이터를 포함한다. GPU(100)는 3차원 그래픽 디스플레이에 필요한 연산들 및 렌더링(rendering)을 수행하기 위한 반도체 칩이다. GPU(100)는 복수의 도시되지 않은 셰이더 유닛(shader unit)들에 대응하는 복수의 텍스쳐 유닛들(620 내지 6n0)을 포함한다. 복수의 유닛들을 포함하면 렌더링 속도가 향상되어 더 부드러운 장면 전환 등이 이루어진다.
텍스쳐 유닛들(620 내지 6n0)은 각각 제 1 텍스쳐 캐시들(622 내지 6n2)을 가진다. 텍스쳐 유닛(620)은 텍스쳐 데이터를 도시되지 않은 셰이더 유닛으로부터 특정하기 위해 파라미터 입력 정보들을 수신하고, 제 1 텍스쳐 캐시(622)로부터의 텍스쳐-구성 텍셀 데이터(texture-constituting texel data)를 요청하는 주 메모리 공간 내의 주소를 지정한다. 제 1 텍스쳐 캐시(622)는 이러한 요청을 받으면 텍셀 데이터를 텍스쳐 유닛(620)에 전달한다. 제 1 텍스쳐 캐시(622)는 이러한 요청을 받지 않으면 제 2 텍스쳐 캐시(500)가 제 2 텍스쳐 캐시(400)로부터 데이터를 판독하도록 요청한다. 이어서, 대응하는 주소의 텍셀 데이터가 제 2 텍스쳐 캐시(400)로부터 판독될 때까지 텍스쳐 유닛(620)이 정지한다. 다른 텍스쳐 유닛들도 같은 방식으로 동작한다.
제 2 텍스쳐 캐시 제어기(500)는 제 2 텍스쳐 캐시(400) 내에 저장된, 주 메모리(10) 상의 텍스쳐 데이터를 관리한다. 제 2 텍스쳐 캐시 제어기(500)는 캐시 태그들을 가진다. 캐시 태그들은, 제 2 텍스쳐 캐시(400)가 텍스쳐 유닛들(620 내지 6n0)로부터의 판독 요청들에 대응하는 주 메모리(10) 상의 텍스쳐 데이터를 포함하는지 여부를 판정한다. 캐시 태그들은 주 메모리(10) 상의 주소들의 일부이다. 판독-요청 주소의 일부와 캐시 태그가 서로 부합하면 캐시 적중(cache hit)이 일어난다. 부합하지 않으면, 캐시 부적중이 일어난다. 제 2 텍스쳐 캐시(400)가 텍스쳐 유닛들(620 내지 6n0)로부터의 판독 요청들 하의 텍스쳐 데이터를 포함하지 않을 때, 즉 캐시 부적중의 경우에, 제 2 텍스쳐 캐시 제어기(500)는 보충 요청을 캐시 제어 CPU(200)로 보낸다. 보충 요청은, 요망된 텍스쳐 데이터가 주 메모리(10)로부터 제 2 텍스쳐 캐시(400)로 전송되는 것을 요청한다. 제 2 텍스쳐 캐시(400)가 텍스쳐 유닛들(620 내지 6n0)로부터의 판독 요청들 하의 텍스쳐 데이터를 포함한다면, 즉 캐시 적중의 경우에, 텍스쳐 데이터는 텍스쳐 유닛들(620 내지 6n0)로 전송된다.
제 2 텍스쳐 캐시 제어기(500)는 적어도 2개 이상의 웨이들을 가진다. 제 2 텍스쳐 캐시 제어기는 예비인출 및 보충을 위한 웨이들을 제공하는 것을 가능하게 한다. 가능한 캐시 모드(cahce mode)들은 직접 매핑(mapping), N-웨이 세트 어소시에이티브(N-way set associative), 및 풀 어소시에이티브(full associative)를 포함한다. N-웨이 세트 어소시에이티브가 채택되면, 내용 주소화 메모리가 매칭 비교(matching comparison)들을 병렬로 수행한다. 정지 요청이 캐시 제어 CPU(200)로부터 발생되면, 제 2 텍스쳐 캐시 제어기(500)는 요청된 웨이의 동작을 정지한다. 이러한 상태에서, 요청된 웨이의 캐시 태그는 캐시 제어 CPU(200)에 의해 재기록될 수 있다. 텍스쳐 유닛들(620 내지 6n0)로부터의 모든 요청들이 캐시 부적중들로 판명되는 경우에도 정지된 상태로 이행된다.
동작 재개 요청이 캐시 제어 CPU(200)로부터 발생될 때, 요청된 웨이의 동작이 재개된다. 주 메모리(10)로부터 제 2 텍스쳐 캐시(400)로의 텍스쳐 데이터의 전송이 정지 기간 동안 완료되면, 대응하는 텍스쳐 유닛으로부터의 판독 요청이 다시 시도된다. 따라서, 텍스쳐 데이터는 캐시 적중 동작에 의해 텍스쳐 유닛으로 전송된다.
제 2 텍스쳐 캐시(400)는 주 메모리(10) 상에 텍스쳐 데이터를 임시로 저장하기 위한 영역이다. 제 2 텍스쳐 캐시(400)는 EDRAM(embedded dynamic random access memory)의 영역의 일부 상에 형성될 수 있다. 캐시 제어 CPU(200)로부터 DMA(direct memory access) 제어기(300)로의 명령에 근거하여, 주 메모리(10) 상의 텍스쳐 데이터는 제 2 텍스쳐 캐시(400)로 전송된 DMA이다. 텍스쳐 데이터는 행들로 불리는 16 바이트들, 32 바이트들 등의 단위들로 전송된다. 이 전송이 종료되면, 캐시 제어 CPU(200)는 캐시 태그를 제 2 텍스쳐 캐시 제어기(500) 내에 재기록 한다. 텍스쳐 유닛들(620 내지 6n0)이 제 2 텍스쳐 캐시(400) 상의 텍스쳐 데이터에 대한 판독 요청들을 발생시키면, 제 2 텍스쳐 캐시 제어기(500)는 제 2 텍스쳐 캐시(400) 상의 대응하는 텍스쳐 데이터를 제 1 텍스쳐 캐시들(622 내지 6n2)로 자동적으로 전송한다.
캐시 제어 CPU(200)로부터의 명령 하에, DMA 제어기(300)는 주소 신호들을 생성하고 텍스쳐 데이터를 주 메모리(10)로부터 제 2 텍스쳐 캐시(400)로 CPU의 매개 없이 전송한다.
주 메모리(10) 및 제 2 텍스쳐 캐시(400) 사이의 전송은 칩-투-칩(chip-to-chip) 전송에 한하지 않고 네트워크 기반 전송일 수 있다. 예를 들어, 주 메모리(10)는 인터넷 상의 서버, 및 고객의 제 2 텍스쳐 캐시(400) 상에 구성될 수 있다.
캐시 제어 CPU(200)는 제 2 텍스쳐 캐시 제어기(500)를 통한 복수의 보충 요청들 사이를 조정하고, 명령들을 DMA 제어기(300)로 보낸다. 여기서, 캐시 제어는 도시되지 않은 RAM 상의 캐시 제어 프로그램을 실행시킴으로써 달성된다.
도 2는 제 1 실시형태에 따른 시스템의 제 1 동작 실시예를 도시하는 순서도이다. 제 2 텍스쳐 캐시(400)는 원칙적으로 4-웨이(way) 구성을 가진다고 가정하고 이하의 기술이 이루어질 것이다. 제 1 텍스쳐 캐시(622) 내의 부적중(miss)을 일으킨 텍스쳐 데이터에 대한 판독 요청은 텍스쳐 유닛(620)으로부터 제 2 텍스쳐 캐시 제어기(500)에 도달한다. 텍스쳐 데이터가 제 2 텍스쳐 캐시(400) 내에서 발견된다면, 제 2 텍스쳐 캐시 제어기(500)는 데이터를 제 1 텍스쳐 캐시(622)에 전송한다. 발견되지 않는다면, 제 2 텍스쳐 캐시 제어기(500)는 보충 요청을 캐시 제어 CPU(200)로 전송한다. 여기서, 판독 요청을 일으킨 텍스쳐 유닛(620)으로의 데이터 전송 동작은 정지된다. 게다가, 판독 요청을 일으킨 텍스쳐 유닛(620)의 ID 번호는 캐시 제어 CPU(200)로 전달된다.
도 2에서, 캐시 제어 CPU(200)는 텍스쳐 데이터에 대한 보충 요청을 제 2 텍스쳐 캐시 제어기(500)로부터 수신한다(S10). 캐시 제어 CPU(200)는 이러한 보충 요청의 대상(target)의 주소가 이전에 수신된 보충 요청의 대상의 주소와 일치하는지 여부를 판정한다(S12). 더욱 분명히 말하자면, 2개의 주소들은 대조되어 짝맞춤이 된다. 이러한 판정은, 이전에 수신된 보충 요청들의 주소들이 등록되었을 경우에 수행된다. 주소들이 등록되어있지 않을 때, 즉 초기 상태에 있을 때, 처리는 단계 S14로 건너뛴다.
일반적으로, 복수의 보충 요청들은 동일한 주소에 대하여 거의 발생하지 않는다. 그러나 본 실시형태는 그러한 요청들이 쉽게 발생할 수 있는 환경을 다룬다. 더 빠른 처리를 위하여, 텍스쳐 유닛들(620 내지 6n0)은 텍스쳐 매핑을 병렬로 수행한다. 복수의 텍스쳐 유닛들(620 내지 6n0)은 각각의 제 1 텍스쳐 캐시들(622 내지 6n2)을 제공받는다. 2행, 3행 및 다른 필터링 처리들을 위하여, 텍스쳐 유닛들(620 내지 6n0)로부터의 요청들은 종종 텍셀들에 인접하기 위한 것들을 포함한다. 다른 텍스쳐 유닛들(620 내지 6n0)의 제 1 텍스쳐 캐시들(622 내지 6n2)이 상호-인접 텍셀 블록(mutually-adjoining texel block)들 상의 정보를 겹치게 보유하여야 하는 것은 흔히 있는 일이다.
도 3은 텍스쳐 매핑이 복수의 텍스쳐 유닛들(620 내지 6n0)에 의해 어떻게 수행되는 지를 도시한다. 복수의 텍스쳐 유닛들(620 내지 6n0)은 텍스쳐들을 4×4 픽셀들 등으로 분할되고 마련된 프레임 버퍼 영역들(A 내지 H)로 매핑한다. 처리는, 예를 들어, 하나의 텍스쳐 유닛(620)이 텍스쳐들을 프레임 버퍼의 A 영역(722)으로, 또 다른 텍스쳐 유닛(640)이 프레임 버퍼의 B 영역(724)으로 매핑하도록 병렬로 수행된다. 점선들로 도시된 영역은 복수의 텍스쳐들(a 내지 l)에 의해 생성된 객체(object)를 나타낸다.
프레임 버퍼의 A 영역(722)으로 매핑하기 위한 텍스쳐 유닛(620)은 네 부분들의 텍스쳐 데이터(b, d, e 및 h; 702, 704, 706 및 708)를 판독하고 매핑해야 한다. 프레임 버퍼의 B 영역(724)으로 매핑하기 위한 텍스쳐 유닛(640)은 세 부분들의 텍스쳐 데이터(e, c 및 i; 706, 710 및 712)를 제 1 텍스쳐 캐시(642)로부터 판독하고 매핑해야 한다. 여기서, 일부분의 텍스쳐 데이터(e; 706)가 텍스쳐 유닛(620) 및 텍스쳐 유닛(640)에 의해 사용된다. 결과적으로, 동일한 주소의 텍스쳐 데이터에 대한 판독 요청들이 시간차를 가지고 복수의 텍스쳐 유닛들(620 및 640)로부터 제 2 텍스쳐 캐시 제어기(500)에 도달할 수 있다. 게다가, 제 2 텍스쳐 캐시(400)가 EDRAM 상에 형성될 때, 높은 대기 시간이 제 2 텍스쳐 캐시(400)와 주 메모리(10) 사이의 DMA 전송에서 발생할 수 있다. 이것은, 동일한 주소의 텍스쳐 데이터의 보충이 완료되기 전에 특정 주소에 대한 보충 요청이 캐시 제어 CPU(200)에 도달할 확률을 증가시킨다. 텍스쳐 유닛들(620 내지 6n0)의 개수가 많아질수록, 보충 요청들이 겹칠 확률이 높아진다. 3개 이상의 보충 요청들이 겹쳐서 발생할 수 도 있다.
도 2로 되돌아 와서, 단계 S12에서, 주소가 등록된 주소들과 일치하지 않는다면, 보충 요청의 대상 주소는 캐시 제어 CPU(200) 내의 도시되지 않은 레지스터(register) 등으로 등록된다(S14). 다음으로, 캐시 제어 CPU(200)는 DMA 전송에 의해 대체될 대상 주소, 즉, 대체될 웨이를 판정한다(S16). 다양한 알고리즘은 이러한 판정에 대해 이용가능하다. 제 2 텍스쳐 캐시(400)의 하나의 단일 웨이가 텍스쳐 데이터의 대부분을 수용할 때, 웨이들 중 하나는 보충을 위한 것이 될 수 있다. 그렇지 않으면, FIFO(First-In First-Out) 메모리 또는 LRU(Least Recent Used) 메모리가 간단히 사용될 수 있다.
다음으로, 캐시 제어 CPU(200)는 판정된 웨이로의 진입점을 잠근다(S18). 이제, 웨이로의 진입점을 잠그는 방법에 대한 기술이 이루어질 것이다. 도 4는 제 2 텍스쳐 캐시(400) 및 제 2 텍스쳐 캐시 제어기(500)의 세부사항들을 도시한다. 제 2 텍스쳐 캐시(400)는 텍스쳐 데이터를 행들 단위들로 한 웨이씩 캐싱(caching)한다. 제 2 텍스쳐 캐시 제어기(500)는 제 2 텍스쳐 캐시(400)를 한 웨이씩 관리한다. 제 2 텍스쳐 캐시 제어기(500)는 각각의 웨이들에 대한 유효한 플래그(flag)들을 가지고, 각각의 웨이들이 유효한지 여부를 관리한다. 예를 들어, 유효한 플래그들이 1-비트 플래그 레지스터들로부터 만들어질 때, 유효 상태에 대해서는 1이고 무효 상태에 대해서는 0인 설정을 행할 수 있다. 유효 상태에서, 제 2 텍스쳐 캐시(400) 내에서의 대응하는 웨이들은 텍스쳐 유닛들(620 내지 6n0)로부터 접근될 수 있다. 무효 상태에서, 접근들은 차단된다. 유효 플래그들은 캐시 제어 CPU(200) 에 의해 재기록되고 제어된다.
제 2 텍스쳐 캐시 제어기(500)는 또한 제 2 텍스쳐 캐시(400) 내에 캐싱될 주 메모리(10)의 메모리 공간 내의 텍스쳐 데이터의 주소들의 일부를 각각의 웨이들의 캐시 태그들로서 관리한다. 그 다음에, 판독요청된 주소들과 캐시 태그들 내의 주소들이 비교되어 캐시 적중인지 또는 캐시 부적중인지 여부가 판정된다. 도 2로 되돌아와서, 보충될 웨이를 잠근 캐시 제어 CPU(200)는 상술한 등록된 주소의 텍스쳐 데이터가 주 메모리(10)로부터 제 2 텍스쳐 캐시(400)의 대응하는 웨이로 DMA 전송되도록 DMA 제어기(300)에 명령한다(S20). DMA 전송이 완료된 이후에, 캐시 제어 CPU(200)는 제 2 텍스쳐 캐시 제어기(500)의 대응하는 캐시 태그를 재기록한다(S22). 그 다음에, 웨이는 열리게 된다. 제 2 텍스쳐 캐시 제어기(500)는 웨이를 재시작하고, 상술한 DMA 전송에 대응하는 텍스쳐 유닛(620 내지 6n0)으로의 판독 요청을 재시도한다.
단계 S12에서, 대상 주소가 등록된 주소들 중 임의의 하나와 일치한다면(S12에서의 Y), 제 2 텍스쳐 캐시(400)의 진입점의 현재 상태는 보충을 위한 웨이를 확보하기 위해 진입점 잠금을 하지 않고 유지된다. 캐시 제어 CPU(200)는, 판독 요청을 일으킨 텍스쳐 유닛(620 내지 6n0)의 ID 번호를, 일치하는 주소를 가진 이미 발생된 DMA 전송 명령과 연결한다(S26). 어떠한 DMA 전송 명령도 이러한 판독 요청에 반응하여 발생되지 않을 것이다. 제 2 텍스쳐 캐시 제어기(500)는, 보충된 웨이를 재시작할 때 연결된 ID 번호를 가진 텍스쳐 유닛(620 내지 6n0)으로부터 판독 요청을 재시도한다. 이어서, 상술한 처리는 렌더링 처리가 종료될 때(S28의 Y)까지 반 복된다.
위에서 설명한 바와 같이, 제 1 동작 실시예에 따르면, 동일한 주소의 텍스쳐 데이터가 겹치게 보충되는 것을 방지하고 웨이들이 필요한 것보다 더 많이 잠겨지는 것을 방지할 수 있다. 결과적으로, 텍스쳐 유닛들(620 내지 6n0)은 무사히 데이터를 제 2 텍스쳐 캐시(400)로부터 판독할 수 있다. 불필요한 보충이 방지되기 때문에, 제 2 텍스쳐 캐시(400) 내의 과다 상태의 발생을 억제할 수 있다.
도 5는 제 1 실시형태에 따른 시스템의 제 2 동작 실시예를 도시하는 순서도이다. 처음에, 캐시 제어 CPU(200)는 보충 요청을 제 2 텍스쳐 캐시 제어기(500)로부터 수신한다(S30). 보충 요청은 제 1 동작 실시예와 동일한 과정에 의해 생성된다. 다음으로, 캐시 제어 CPU(200)는 보충 요청들의 누적 횟수를 얻기 위한 파라미터 REQ를 증가시킨다. 동시에, 보충 요청과 관련된 주소는 도시되지 않은 레지스터 등에 등록된다(S34).
다음으로, 파라미터 REQ에서 얻어진 횟수가 예정된 임계값을 초과하는지 여부가 판정된다(S36). 이러한 예정된 임계값에 대한 최적값은 텍스쳐 유닛들(620 내지 6n0)의 개수 및 장면 전환의 모드와 같은 요소들에 의존한다. 더욱 분명히 설명하기 위해, 복수의 텍스쳐 유닛들(620 내지 6n0)이 장면 또는 객체에 대한 텍스쳐 매핑을 수행하는 경우를 고려한다. 텍스쳐 유닛들(620 내지 6n0)의 일부는 장면 또는 객체의 처리를 종료하고, 다음 장면 또는 객체의 처리를 시작하기 위해 제 2 텍스쳐 캐시(400)로의 판독 요청을 발생시키기 시작한다. 이때에, 텍스쳐 유닛들(620 내지 6n0)의 나머지는 현재 장면 또는 객체를 여전히 처리한다.
이 상태에서, 캐시 제어 CPU(200)는 DMA 전송 명령을 판독 요청에 대응하는 보충 요청에 따라 DMA 제어기(300)로 발생시킨다고 가정한다. 그 다음에, 텍스쳐 유닛들(620 내지 6n0)의 나머지가 처리하고 있는 텍스쳐 데이터가 제 2 텍스쳐 캐시(400)로부터 배출될 수 있다. 처리 중인 텍스쳐 데이터가 배출된다면, 보충 요청은 캐시 제어 CPU(200)로 다시 발생되어야 한다. 이것은 제 2 텍스쳐 캐시(400)를 과다 상태로 만든다. 그러므로 예정된 임계값이, 다음의 장면 또는 객체에 대한 텍스쳐 데이터가 보충되기 전에 얼마나 많은 보충 요청들이 축적되어야 하는지에 관하여 테스트들 또는 시뮬레이션들에 의해 판정되고 설정되는 것이 바람직하다.
단계 S36에서, 파라미터 REQ에서 얻어진 횟수가 예정된 임계값 이하이면, 보충 요청들의 수신은 DMA 전송 명령을 발생시키지 않고 계속된다(S30). 예정된 임계값이 초과된다면(S36의 Y), 캐시 제어 CPU(200)는 DMA 전송에 의해 대체될 대상 주소, 즉 대체될 웨이를 판정한다(S38). 그 다음에 캐시 제어 CPU(200)는 판정된 웨이로의 진입점을 잠근다(S40). 보충될 웨이가 잠겨진 이후에, 캐시 제어 CPU(200)는 상술한 등록된 주소의 텍스쳐 데이터가 주 메모리(10)로부터 제 2 텍스쳐 캐시(400)의 대응하는 웨이로 DMA 전송되도록 DMA 제어기(300)에 명령한다. DMA 전송의 완료 이후에, 캐시 제어 CPU(200)는 제 2 텍스쳐 캐시 제어기(500)의 대응하는 캐시 태그를 재기록한다(S42). 그 다음에, 웨이가 열린다. 제 2 텍스쳐 캐시 제어기(500)는 웨이를 재시작하고, 판독 요청을 상술한 DMA 전송에 대응하는 텍스쳐 유닛(620 내지 6n0)으로 재시도한다.
다음으로, 캐시 제어 CPU(200)는 파라미터 REQ를 초기화한다(S46). 이어서, 상술한 처리는 렌더링 처리가 종료할 때(S48의 Y)까지 반복된다. 상술한 처리에서, 보충 웨이들의 개수보다 더 많은 보충 요청들이 동일한 행에 집중된다면, 다음의 보충 요청들은 보충 처리를 다음번으로 연기하도록 예약된다. 이 경우에, 예약된 보충 요청들에 대응하는 텍스쳐 유닛들은 재시작 시에 정지된다.
위에서 설명한 것처럼, 제 2 동작 실시예는, 텍스쳐 유닛들(620 내지 6n0) 중 일부가 현재 장면 또는 객체에 대한 텍스쳐 매핑을 종료하고 다음의 장면 또는 객체를 처리하는 반면에, 텍스쳐 유닛들 중 일부가 현재 장면 또는 객체를 처리하는 경우를 다룬다. 이러한 상황에서, 캐시 제어 CPU(200)는 제 2 텍스쳐 캐시(400)의 과다 상태의 발생을 억제하기 위해 보충들을 스케줄링(scheduling)할 수 있다. 게다가, 다음의 장면 또는 객체를 처리하기 위한 복수의 텍스쳐 유닛들(620 내지 6n0)은, 상기 처리를 위한 텍스쳐 데이터가 보충될 때 모두 동시에 텍스쳐 매핑을 시작할 수 있다. 즉, 텍스쳐 매핑의 시작시의 편차를 억제할 수 있다.
본 실시형태는 게임 프로그램의 그래픽 처리에 또한 적용될 수 있다. 예를 들어, 게임 프로그램의 그래픽 처리 기술에서, 전체 텍스쳐 데이터는 주 메모리 상에 로딩(loading)된다. 게임 프로그램은 텍스쳐 데이터를, 미리 텍스쳐 데이터를 위해 할당된 EDRAM의 영역으로 전송한다. 그 다음에, 텍스쳐 데이터는 EDRAM으로부터 판독되고 입력된 드로(draw) 명령들에 의해 텍스쳐 매핑을 위해 사용된다. 이 기술은 제한된 EDRAM의 효과적인 사용을 가능하게 한다.
그럼에도 불구하고, 이러한 기술은, 게임 프로그램이 주 메모리 내의 텍스쳐 데이터의 어느 부분이 드로 명령들에 의해 판독될지를 미리 인식한다는 것에 기초 한다. 게다가, 의도된 텍스쳐 데이터가 EDRAM의 텍스쳐 데이터 저장 영역 내에 수용되기에 너무 큰 경우에는, 텍스쳐 데이터는 게임 프로그램의 개발 단계에서 EDRAM-적용가능 크기들로 분할되고 편집된다.
반대로, 본 실시형태의 캐시 제어에 따르면, 텍스쳐 데이터는, 폰트(font) 데이터의 경우처럼, 게임 프로그램이 실행된 이후에 판독될 데이터의 일부분이 판정되더라도 효율이 저하되지 않게 렌더링될 수 있다. 또한, 게임 프로그램의 개발 단계에서 텍스쳐 데이터를 EDRAM의 크기로 맞추는 것은 불필요하다.
캐시들이 하드웨어에 의하지 않고 소프트웨어에 의해 제어되기 때문에, 높은 대기 시간을 가지고 그래픽 칩의 외부에 있는 주 메모리에 접근하는 경우에도 과다 상태를 최소로 하여 제어할 수 있다.
도 6은 제 2 실시형태에 따른 주 메모리(10) 및 GPU(100)의 구성을 도시하는 블록도이다. 도 6은 중간 버퍼(350)가 도 1의 구성 중 DMA 제어기(300) 및 제 2 텍스쳐 캐시(400) 사이에 추가된 구성을 도시한다. 중간 버퍼(350) 이외의 구성요소들은 도 1과 동일하기 때문에, 그들에 대한 기술은 여기서 생략하기로 한다. 중간 버퍼(350)는, DMA 제어기(300)에 의해 주 메모리(10)로부터 제 2 텍스쳐 캐시(400)로 보충될 텍스쳐 데이터를 일시적으로 저장하는 메모리 영역이다. 텍스쳐 데이터가 저장될 때, 중간 버퍼(350)는 캐시 제어 CPU(200)에 텍스쳐 데이터의 저장 사실을 알리는 제어 신호를 발생시킨다. 그 다음에, 제어 신호가 발생함과 동시 또는 예정된 지연 시간이 지난 이후에, 중간 버퍼(350)는 저장된 텍스쳐 데이터를 제 2 텍스쳐 캐시(400)로 출력한다.
도 7은 제 2 실시형태에 따른 시스템의 동작 실시예를 도시하는 순서도이다. 도 7의 순서도는 도 2의 순서도와 기본적으로 동일하다. 그러므로 이하에서는 그들의 차이에 대해서 기술하기로 한다. 처음에, 단계 S16까지의 과정은 도 2에 도시된 것과 동일하다. 도 7에서, 캐시 제어 CPU(200)는 보충될 웨이를 판정한다. 그 다음에, 캐시 제어 CPU(200)는, 상술한 등록된 주소의 텍스쳐 데이터가 웨이로의 진입점을 잠그지 않고 주 메모리(10)로부터 제 2 텍스쳐 캐시(400)의 대응하는 웨이로 DMA 전송되도록 DMA 제어기(300)에 명령한다(S17).
이러한 명령 하에, DMA 제어기(300)는 텍스쳐 데이터를 제 2 텍스쳐 캐시(400)로 보낸다. 결과적으로, 텍스쳐 데이터는 경로 상에 놓인 중간 버퍼(350)에 저장된다. 텍스쳐 데이터가 저장될 때, 중간 버퍼(350)는 캐시 제어 CPU(200)에 저장 사실을 알리는 제어 신호를 발생시킨다. 캐시 제어 CPU(200)가 이러한 제어 신호를 수신할 때(S19의 Y) 보충될 상술한 웨이로의 진입점을 잠근다(S21). 한편, 웨이로의 진입점은 이러한 제어 신호가 수신될 때까지 잠기지 않을 것이다. 나머지 과정은 도 2에 도시된 것과 동일하다.
위에서 살펴본 바와 같이, 제 2 실시형태에 따르면, 보충될 웨이로의 진입점은 텍스쳐 데이터가 중간 버퍼(350)에 저장될 때까지 잠겨지지 않을 것이다. 결과적으로, 텍스쳐 데이터를 필요로 하지 않는 텍스쳐 유닛들은 제 1 실시형태보다 더 긴 진입 시간(entry time)이 주어질 수 있다. 이것은 캐시 적중률을 향상시켜, 제 2 텍스쳐 캐시(400)에서의 과다 상태의 발생을 억제할 수 있다. 본 실시형태는, 주 메모리(10)와 제 2 텍스쳐 캐시(400) 사이의 시스템이 길고 높은 지연시간을 가질 때 특히 효과적이다.
도 8은 제 3 실시형태에 따른 주 메모리(10), 주 CPU(20), 및 GPU(100)의 구성을 도시하는 블록도이다. 도 8은 주 CPU(20)가 도 1의 구성에 추가된 구성을 도시한다. 주 CPU(20)가 아닌 구성요소들은 도 1에 도시된 것과 동일하기 때문에, 그것들에 대한 설명은 이하에서 생략하기로 한다. 주 CPU(20)는 게임 프로그램과 같은 프로그램을 실행시키고, 프로그램의 텍스쳐 매핑을 수행함에 있어서 텍스쳐 유닛들(620 내지 6n0)에 필요한 다음의 텍스쳐 데이터를 필요로 한다. 주 CPU(20)는 이러한 텍스쳐 데이터를 주 메모리(10)로부터 제 2 텍스쳐 캐시(400)로 예비인출하기 위한 DMA 전송 명령을 생성하고, DMA 전송 명령을 캐시 제어 CPU(200)로 출력한다. 캐시 제어 CPU(200)는 이러한 DMA 전송 명령을 DMA 제어기(300)로 발생시킨다.
도 9는 제 3 실시형태에 따른 시스템의 제 1 동작 실시예를 도시하는 순서도이다. 처음에, 캐시 제어 CPU(200)는 제 2 텍스쳐 캐시(400)의 복수의 웨이들을 예비인출 웨이들 및 보충 웨이들로 분할한다(S50). 도 10은 이러한 동작 실시예에서의 제 2 텍스쳐 캐시(400)의 세부사항들 및 제 2 텍스쳐 캐시 제어기(500)를 도시한다. 도 10에서, 4개의 웨이들 중 제 1 웨이 및 제 2 웨이는 보충 웨이들로서 사용된다. 제 3 웨이 및 제 4 웨이는 예비인출 웨이들이다.
보충 웨이들은, 위에서 살펴본 바와 같이 캐시 부적중이 텍스쳐 유닛들(620 내지 6n0)로부터의 판독 요청들로부터 발생할 때 보충 요청을 발생시키기 위한 웨이들이다. 이러한 웨이들로의 진입점은 보충 처리 동안 잠겨진다. 한편, 예비인출 웨이들은, 주 CPU(20)의 예측에 근거하여 미리 제 2 텍스쳐 캐시(400)로 텍스쳐 유닛들(620 내지 6n0)에 의해 필요한 텍스쳐 데이터를 판독하기 위한 웨이들이다. 예비인출 웨이들의 진입 기간 및 진입 잠금 기간은 캐시 부적중들에 관계없이 캐시 제어 CPU(200)의 제어에 의해 설정된다.
도 9로 돌아가서, 주 CPU(20) 또는 캐시 제어 CPU(200)는 필요한 텍스쳐 데이터를 예측하기 위한 처리를 실행시킨다(S52). 이러한 예측 처리는 나중에 자세히 설명될 것이다. 이러한 예측 처리에 의해 결정된, 주 메모리(10) 상의 텍스쳐 데이터의 주소를 포함하는 DMA 전송 명령은, DMA 제어기(300)로 발생된다(S54). 이러한 DMA 전송 명령 하에서, 예비인출은 제 2 텍스쳐 캐시(400)의 예비인출 웨이들 상에서 수행된다. 여기서, 예비인출 웨이들의 유효 플래그들은 0에서 엔트리 잠금으로 설정되어 있다.
이러한 처리와 동시에, 보충 웨이들, 캐시 제어 CPU(200), 및 DMA 제어기(300)는 보충 처리를 수행한다(S56). 이러한 보충 처리는 제 1 실시형태에서 상세히 기술되었다. 부수적으로, 도 8에서, 제 2 실시형태에서 기술된 중간 버퍼(350)는 DMA 제어기(300)와 제 2 텍스쳐 캐시(400) 사이에 삽입될 수 있다. 이것은 더 긴 진입 기간들을 제공할 수 있다.
다음으로, 캐시 제어 CPU(200)는 예비인출이 완료되었는 지 여부를 결정한다(S58). 예비인출이 완료되었다면(S58의 Y), 캐시 제어 CPU(200)는 캐시 태그들 및 유효 플래그들을 재기록한다. "1"을 이용하여 유효 플래그를 재기록하면 웨이로의 진입이 가능하게 된다.
주 CPU(20) 또는 캐시 제어 CPU(200)는 예비인출 웨이들 및 보충 웨이들을 교환하기 위한 조건이 유지되는지 여부를 결정한다(S60). 이러한 교환 조건의 일례로서, 예비인출이 완료된 이후에 예정된 기간이 경과한다. 선택적으로, 주 CPU(20)는 장면 전이, 객체 전이 등을 확인하거나 예측할 수 있다. 필요한 것보다 많은 웨이들로의 진입점을 잠그지 않도록, 상술한 전이의 시간으로부터 DMA 전송 시간을 뺌으로써 결정되는 시각에 웨이들이 교환될 수 있다. 웨이들이 전이보다 너무 일찍 교환된다면, 예비인출된 텍스쳐 데이터는 때때로 방출된다. 그러므로, 최적 조건은, 이러한 과다 상태를 일으키지 않도록 테스트들 또는 시뮬레이션들에 의해 결정될 수 있다.
교환 조건이 유지된다면(S60의 Y), 캐시 제어 CPU(200)는 예비인출 웨이들과 보충 웨이들을 교환한다(S62). 구체적으로, 현재의 보충 웨이들의 유효 플래그들은 0에서 엔트리 잠금으로 설정되어 있다. 이어서, 상술한 처리는, 렌더링 처리가 종료될 때(S64의 Y)까지 반복된다. 부수적으로, 이러한 동작 실시예가 예비인출 웨이들과 보충 웨이들을 교환하는 동작을 다루는 반면에, 웨이들은 각각의 목적들을 위해 기능한다.
다음으로, 예비인출을 위한 텍스쳐 데이터가 예측되는, 단계 S52의 처리에 대하여 설명한다. 도 11은 텍스쳐 데이터를 예측하기 위한 처리의 제 1 실시예를 도시하는 순서도이다. 처음에, 장면 전이(S70의 Y)에서, 캐시 제어 CPU(200)는 이때에 예비인출된 텍스쳐 데이터를 교환 이력으로서 도시되지 않은 RAM 등에 저장한다(S72).
캐시 제어 CPU(200)는, 장면 전이의 예정 시간에 도달할 때(S74의 Y), 상술 한 교환 이력을 참고하고 예비인출될 텍스쳐 데이터를 결정한다(S76). 예를 들어, 모든 장면 전이에서 사용될 텍스쳐 데이터가 탐지될 때, 텍스쳐 데이터는 예비인출될 데이터로서 결정된다. 이러한 처리는 예비인출될 텍스쳐 데이터를 학습하고 결정하기 위한 기술을 제공한다. 부수적으로, 객체 전이 등이 같은 방식으로 학습될 수 있다.
캐시 제어 CPU(200)는 예비인출들의 교환 이력과 함께 보충들의 교환 이력을 기록할 수 있다. 보충 교환들을 학습하는 것에 의해 제 1 실시형태의 제 2 동작 실시예에서 기술된 보충 시각을 결정하기 위한 임계값의 적절한 변경이 이루어질 수 있다. 예를 들어, 동일한 주소에 대한 보충들이 짧은 시간에 반복될 때, 즉 과다 상태일 때, 보충 시각을 지연하기 위해 임계값을 증가시키는 제어를 행할 수 있다.
위에서 살펴본 바와 같이, 예측 처리의 제 1 실시예에 따르면, 예비인출될 텍스쳐 데이터는 제어 학습을 통하여 결정될 수 있다. 이것은, 렌더링될 객체들이 사용자 입력들에 따라 변화할 때와 같이, 필요한 텍스쳐 데이터가 프로그램 해독에 의해 결정하기 어려운 때에도 정확한 예측을 가능하게 한다.
도 12는 텍스쳐 데이터를 예측하기 위한 처리의 제 2 실시예를 도시하는 순서도이다. 제 2 실시예는 지면 등에 대한 텍스쳐 데이터를 예측하는 경우들에 대해 적용가능하다. 처음에, 주 CPU(20)는, 현재 프레임 내에 설립된 시점에서의 시야의 방향 또는 각도, 및 현재 실행되는 프로그램으로부터의 시야의 이동 속도를 획득한다(S80). 이것들에 근거하여, CPU(20)는 다음의 프레임에서의 시점에서의 시야의 방향을 예측한다(S82). CPU(20)는 시야의 예측된 방향에 놓인 객체를 결정한다(S84). CPU(20)는 또한 이러한 객체와 시점 사이의 거리를 결정한다(S86). 거리가 결정되면, 객체를 렌더링하는 데에 필요한 텍스쳐 데이터의 세부사항의 수준(LOD; level of detail)을 결정할 수 있다. 그러므로 예비인출될 텍스쳐 데이터가 결정된다(S88).
예측 처리의 제 2 실시예에 따르면, 실행될 다음의 프로그램 명령을 해독하지 않고 현재 상황을 가리키는 파라미터들의 계산을 통해 다음의 필요한 텍스쳐 데이터를 예측할 수 있다.
결과적으로, 제 3 실시형태에 따르면, 제 2 텍스쳐 캐시(400)를 예비인출 웨이들 및 보충 웨이들로 분할하고, 이중버퍼 방식으로 사용한다. 이것은 보충 시간을 감소시킬 수 있다.
이제, 제 4 실시형태에 대해 설명하기로 한다. 도 8에 도시된 시스템과 동일한 시스템 구성이 제 4 실시형태에 대해 사용될 수 있다. 게다가, 제 4 실시형태는 또한, 하나의 단일 텍스쳐 유닛(620)을 이용하여 적용할 수 있다.
도 13은 제 4 실시형태에 따른 시스템의 동작 실시예를 도시하는 순서도이다. 처음에, 프로그램의 실행을 시작하기 전에, 주 CPU(20)는 시작 장면을 렌더링하기 위한 텍스쳐 데이터를 결정한다. 이것은, 렌더링을 시작하기 전에 어느 객체가 렌더링되는지 및 이러한 객체의 어느 텍스쳐 데이터가 필요한지가 종종 알려진다는 것에 근거를 두고 있다.
캐시 제어 CPU(200)는 주 CPU(20)에 의해 결정된 주 메모리(10) 상의 텍스쳐 데이터의 주소를 포함하는 DMA 전송 명령을 발생시킨다. 동시에, 캐시 제어 CPU(200)는 예비인출된 웨이의 캐시 태그를 재기록한다(S94). 부수적으로, 본 실시형태는 또한 재설정 이후의 동작들에 적용할 수 있다.
위에서 살펴본 바와 같이, 제 4 실시형태에 따르면, 렌더링의 초기에 캐시 부적중들을 최소화하여 제 2 텍스쳐 캐시(400)의 효율적인 이용을 가능하게 한다.
여기까지, 본 발명은 실시형태들과 관련하여 설명되었다. 본 발명은 이 실시형태들에 제한되지 않고, 다양한 변형예들이 본 발명의 태양들로서 적용가능하다. 예를 들어, 상술한 설명은 제 2 텍스쳐 캐시(400)에 4개의 웨이들이 제공되는 경우들에 대하여 이루어졌다. 이러한 면에서, 웨이들의 개수는 4개로 제한되지 않고, 임의로 설정될 수 있다. 예비인출 웨이들의 개수와 보충 웨이들의 개수는 자유롭게 설정될 수 있다. 예비인출 또는 보충을 위한 웨이들이 제공될 수 있다.
게다가, 본 발명의 캐시 제어는, GPU에서 실행되는 복수의 텍스쳐 유닛들에 의해 텍스쳐 데이터를 판독하는 처리에 대한 적용에 제한되지 않는다. 통상의 캐시 메모리가 복수의 프로세서들에 의해 사용되는 임의의 구성에 적용할 수 있다. 주 메모리와 캐시 메모리 사이의 시스템이 길고 높은 지연시간을 일으킬 때 본 발명의 캐시 제어는 특히 효과적이다. 예를 들어, 인터넷에 대한 서버의 주 메모리가 고객의 캐시 메모리로 데이터를 판독하기 위해 접근되는 구성들에 대하여 효과적이다.
본 발명은 캐시 메모리 제어 분야에 적용할 수 있다.

Claims (25)

  1. 복수의 연산 유닛들에 의해 공통적으로 사용되며, 주 메모리 내에 데이터의 일부를 저장하는 캐시 메모리(cache memory); 및
    상기 복수의 연산 유닛들로부터의 캐시 부적중에 따라 상기 주 메모리로부터 상기 캐시 메모리로의 복수의 보충 요청들을 수신하고, 상기 캐시 메모리 내의 과다 상태(thrashing)의 발생을 억제하기 위해 상기 복수의 보충 요청들을 조정하는 조정 유닛; 및
    상기 조정 유닛에 의해 조정된 상기 복수의 보충 요청들을 순차적으로 처리하는 보충 실행 유닛을 포함하고,
    상기 조정 유닛은, 상기 복수의 연산 유닛들이 예정된 시간차를 가지고 동일한 메모리 주소에 접근할 때 상기 보충 실행 유닛에 의한 상기 복수의 보충 요청들의 처리를 억제하는 것을 특징으로 하는 정보 처리 장치.
  2. 복수의 연산 유닛들에 의해 공통적으로 사용되며, 주 메모리 내에 데이터의 일부를 저장하기 위한 복수의 웨이들을 가지는 캐시 메모리;
    상기 각각의 웨이(way)들에 대한 캐시 태그(cahce tag)들 및 진입점(entry)의 상태들을 관리하는 캐시 관리 유닛;
    상기 복수의 연산 유닛들로부터의 캐시 부적중으로부터 발생하는 복수의 보충 요청들을 상기 캐시 관리 유닛으로부터 수신하고 조정하며, 상기 복수의 보충 요청들 중 적어도 하나에 따라 진입점의 상태들을 제어하는 제어 유닛; 및
    상기 제어 유닛에 의해 조정된 상기 복수의 보충 요청들을 순차적으로 처리하는 보충 실행 유닛을 포함하고,
    상기 제어 유닛은, 상기 복수의 연산 유닛들이 예정된 시간차를 가지고 동일한 메모리 주소에 접근할 때 상기 보충 실행 유닛에 의한 상기 복수의 보충 요청들의 처리를 억제하는 것을 특징으로 하는 정보 처리 장치.
  3. 삭제
  4. 제 2 항에 있어서,
    상기 제어 유닛은, 상기 제어 유닛이 동일한 메모리 주소로의 복수의 보충 요청들을 수신하면, 상기 보충 실행 유닛에 의한 제 2 보충 요청들의 처리를 정지하는 것을 특징으로 하는 정보 처리 장치.
  5. 제 2 항에 있어서,
    상기 제어 유닛은, 상기 제어 유닛이 동일한 메모리 주소로의 복수의 보충 요청들을 수신하면, 상기 제 2 보충 요청에 대응하는 진입점 잠금(entry lock)을 정지하는 것을 특징으로 하는 정보 처리 장치.
  6. 제 2 항에 있어서,
    상기 제어 유닛은, 예정된 개수의 수신된 보충 요청들이 축적될 때 상기 복수의 보충 요청들이 처리되도록 상기 복수의 보충 요청들을 조정하는 것을 특징으로 하는 정보 처리 장치.
  7. 복수의 연산 유닛들에 의해 공통적으로 사용되며, 주 메모리 내에 데이터의 일부를 저장하는 캐시 메모리; 및
    상기 복수의 연산 유닛들로부터의 캐시 부적중들로부터 발생하는 복수의 보충 요청들에 따라 상기 주 메모리로부터 상기 캐시 메모리로의 보충 동작을 제어하는 제어 유닛을 포함하는 정보 처리 장치로서,
    상기 제어 유닛은, 상기 보충 동작이 시작되고 예정된 시간의 기간이 지난 이후에 상기 캐시 메모리에 대한 보충 요청들에 대응하는 진입점 잠금을 설정하는 것을 특징으로 하는 정보 처리 장치.
  8. 복수의 연산 유닛들에 의해 공통적으로 사용되며, 주 메모리 내에 데이터의 일부를 저장하는 캐시 메모리;
    상기 주 메모리 및 상기 캐시 메모리 사이에 개재된 중간 버퍼; 및
    상기 복수의 연산 유닛들로부터의 캐시 부적중들로부터 발생하는 복수의 보충 요청들에 따라 상기 중간 버퍼를 경유하여 상기 주 메모리로부터 상기 캐시 메모리로의 보충 동작을 제어하는 제어 유닛을 포함하는 정보 처리 장치로서,
    상기 제어 유닛은, 상기 보충 동작에 의해 상기 캐시 메모리로 전달되는 데이터가 상기 중간 버퍼 내에 저장될 때 상기 캐시 메모리에 대한 상기 보충 요청에 대응하는 진입점 잠금을 설정하는 것을 특징으로 하는 정보 처리 장치.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 캐시 메모리 내의 과다 상태의 발생을 억제하도록, 캐시 메모리에 접근하는 복수의 연산 유닛들로부터의 캐시 부적중들로부터 발생하는 복수의 보충 요청들을 조정하는 단계; 및
    상기 조정의 결과로 발생된 보충 요청에 따라 주 메모리로부터 상기 캐시 메모리로의 보충을 수행하는 단계를 포함하고,
    상기 조정은, 상기 복수의 연산 유닛들이 예정된 시간차를 가지고 동일한 메모리 주소에 접근할 때 상기 보충의 수행을 억제하는 것을 특징으로 하는 정보 처리 방법.
  16. 삭제
  17. 제 15 항에 있어서, 상기 조정은, 예정된 개수의 보충 요청들이 축적될 때까지 상기 보충의 수행을 억제하는 것을 특징으로 하는 정보 처리 방법.
  18. 제 15 항에 있어서, 예정된 조건 하에, 상기 캐시 부적중에 따라 보충될 영역과 예비인출을 위해 진입점-잠금될 영역을 교환하는 단계를 더 포함하고, 상기 캐시 메모리는 상기 영역들에 대하여 할당되는 것을 특징으로 하는 정보 처리 방법.
  19. 캐시 메모리에 접근하는 복수의 연산 유닛들로부터의 캐시 부적중들로부터 발생하는 복수의 보충 요청들 사이를 조정하는 단계;
    조정된 보충 요청에 따라 주 메모리로부터 상기 캐시 메모리로의 보충을 수행하는 단계; 및
    상기 보충이 시작되고 예정된 시간의 기간이 지난 이후에 상기 캐시 메모리에 대한 보충 요청들에 대응하는 진입점 잠금들을 설정하는 단계를 포함하는 것을 특징으로 하는 정보 처리 방법.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 캐시 메모리 내의 과다 상태의 발생을 억제하도록, 상기 캐시 메모리에 접근하는 복수의 연산 유닛들로부터의 캐시 부적중들로부터 발생하는 복수의 보충 요청들을 조정하는 조정 기능; 및
    상기 조정의 결과로 발생된 보충 요청에 따라 주 메모리로부터 상기 캐시 메모리로의 보충을 수행하는 명령 기능을 컴퓨터가 실행하게 하기 위한 프로그램을 기록한 기록매체로서,
    상기 조정은, 상기 복수의 연산 유닛들이 예정된 시간차를 가지고 동일한 메모리 주소에 접근할 때 상기 보충의 수행을 억제하는 것을 특징으로 하는 기록매체.
  24. 삭제
  25. 삭제
KR1020067027785A 2004-05-31 2005-05-30 정보 처리 장치 및 정보 처리 방법 KR100859395B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020067027785A KR100859395B1 (ko) 2004-05-31 2005-05-30 정보 처리 장치 및 정보 처리 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00162636 2004-05-31
KR1020067027785A KR100859395B1 (ko) 2004-05-31 2005-05-30 정보 처리 장치 및 정보 처리 방법

Publications (2)

Publication Number Publication Date
KR20070022824A KR20070022824A (ko) 2007-02-27
KR100859395B1 true KR100859395B1 (ko) 2008-09-22

Family

ID=41622113

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067027785A KR100859395B1 (ko) 2004-05-31 2005-05-30 정보 처리 장치 및 정보 처리 방법

Country Status (1)

Country Link
KR (1) KR100859395B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020099912A1 (en) * 2001-01-22 2002-07-25 Hitachi, Ltd. Memory system
US20030093644A1 (en) * 2000-09-29 2003-05-15 Fanning Blaise B. Cache line replacement policy enhancement to avoid memory page thrashing
US20030218608A1 (en) * 1998-10-14 2003-11-27 Chin Ken C. Three dimensional graphic processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030218608A1 (en) * 1998-10-14 2003-11-27 Chin Ken C. Three dimensional graphic processor
US20030093644A1 (en) * 2000-09-29 2003-05-15 Fanning Blaise B. Cache line replacement policy enhancement to avoid memory page thrashing
US20020099912A1 (en) * 2001-01-22 2002-07-25 Hitachi, Ltd. Memory system

Also Published As

Publication number Publication date
KR20070022824A (ko) 2007-02-27

Similar Documents

Publication Publication Date Title
EP1769364B1 (en) Information processing apparatus and information processing method
US6542968B1 (en) System and method for managing data in an I/O cache
US6891543B2 (en) Method and system for optimally sharing memory between a host processor and graphics processor
US20050086435A1 (en) Cache memory controlling apparatus, information processing apparatus and method for control of cache memory
US7073030B2 (en) Method and apparatus providing non level one information caching using prefetch to increase a hit ratio
US7895399B2 (en) Computer system and control method for controlling processor execution of a prefetech command
JP7340326B2 (ja) メンテナンス動作の実行
US20110173400A1 (en) Buffer memory device, memory system, and data transfer method
US20100217937A1 (en) Data processing apparatus and method
JPH04303248A (ja) マルチバッファデータキャッシュを具えているコンピュータシステム
EP1235154A2 (en) Cache memory system
US20230169007A1 (en) Compression aware prefetch
US20110167223A1 (en) Buffer memory device, memory system, and data reading method
EP1604285A2 (en) Data processing system with prefetching means
US7162588B2 (en) Processor prefetch to match memory bus protocol characteristics
KR102192325B1 (ko) 인공신경망의 데이터 로컬리티 기반의 데이터 캐슁을 이용하여 고속의 인공신경망 오퍼레이션을 지원하는 데이터 관리 장치
KR20200139620A (ko) 인공신경망의 데이터 로컬리티 기반의 데이터 캐슁을 이용하여 고속의 인공신경망 오퍼레이션을 지원하는 데이터 관리 장치
KR100859395B1 (ko) 정보 처리 장치 및 정보 처리 방법
US11782838B2 (en) Command processor prefetch techniques
US20220308884A1 (en) Data processors
US20220066946A1 (en) Techniques to improve translation lookaside buffer reach by leveraging idle resources
CN113791989B (zh) 基于cache的缓存数据处理方法、存储介质及芯片
US10747669B2 (en) Prefetching data
JP2002268943A (ja) キャッシュメモリ装置
US11182292B1 (en) Multi-bank cache

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110811

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee