KR100346817B1 - 프레임버퍼랜덤억세스메모리장치를위한인터페이스제어기 - Google Patents

프레임버퍼랜덤억세스메모리장치를위한인터페이스제어기 Download PDF

Info

Publication number
KR100346817B1
KR100346817B1 KR1019950021726A KR19950021726A KR100346817B1 KR 100346817 B1 KR100346817 B1 KR 100346817B1 KR 1019950021726 A KR1019950021726 A KR 1019950021726A KR 19950021726 A KR19950021726 A KR 19950021726A KR 100346817 B1 KR100346817 B1 KR 100346817B1
Authority
KR
South Korea
Prior art keywords
pixel
cache
memory device
frame buffer
buffer memory
Prior art date
Application number
KR1019950021726A
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 썬 마이크로시스템즈, 인코포레이티드
Application granted granted Critical
Publication of KR100346817B1 publication Critical patent/KR100346817B1/ko

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/123Frame memory handling using interleaving

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Input (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Generation (AREA)
  • Memory System (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Dram (AREA)

Abstract

본발명은 프레임 버퍼 메모리 장치로의 오퍼레이션을 스케쥴하고 디스패치하는 프레임 버퍼 메모리 장치 제어기가 설명되어 있다. 프레임 버퍼 메모리 장치 제어기는 캐쉬 프리펫지 오퍼레이션에 의해 동작되는 타이밍 오버헤드를 줄이기 위해 캐쉬 제어 오퍼레이션, 프레임 버퍼 메모리 장치내의 더티 캐쉬 라인을 다시 쓰고 캐쉬 라인을 클리어시키기 위한 오퍼레이션을 스케쥴하고 프리패치한다. 또한, 프레임 버퍼 메모리 장치 제어기는 프레임 버퍼 메모리 장치 비디오 출력 포트로부터의 비디오 리프레쉬 오퍼레이션에 의해 동작되는 타이밍 오버헤드를 감소시키기 위해 제어 오퍼레이션을 스케쥴하고 디스패치한다.

Description

프레임 버퍼 랜덤 억세스 메모리 장치를 위한 인터페이스 제어기
본발명은 컴퓨터 그래픽 시스템(computer graphic system) 분야에 관한 것으로, 특히 본발명은 가속 그래픽 랜더링(randering) 오퍼레이션(operation)을 위한 쓰기 구조를 제공하는 프레임 버퍼 메모리 (frame buffer memory) 장치를 위한 인터페이스 (interface) 제어기에 관한 것이다.
종래의 컴퓨터 그래픽 시스템은 전형적으로 비디오 랜덤 억세스 메모리 (video random access memory, VRAM) 칩(chip)으로 이루어진 프레임 버퍼를 사용한다. VRAM 칩은 디스플레이 (display) 장치에 디스플레이 하기 위한 이미지(image)를 정의하는 일련의 픽셀 데이터(pixel data)를 저장한다. 전형적으로, 이런 시스템에서 랜더링 제어기는 이미지를 표현하고 픽셀 데이터를 VRAM 칩에 기록한다. 이런 시스템에서, 랜덤 억세스 메모리 디지틀/아날로그(digital/analog) 변환 장치(RAMDAC)는 통상적으로 VRAM 칩으로부터 픽셀 데이터를 억세스하고 픽셀 데이터에 대한 컬러 룩업 테이블(color lookup table) 및 디지틀/아날로그 변환 기능을 수행한다.
종래의 VRAM 칩은 통상적으로 랜덤 억세스 포트 및 직렬 억세스 포트와 함께 다이나믹 렌덤 억세스 메모리(DRAM) 어레이(array)를 포함한다. 전형적으로, RAMDAC은 직렬 억세스 포트를 통해 VRAM 칩의 DRAM 어레이를 억세스하고, 랜더링 제어기는 DRAM 페이지 모드 억세스에 따라 랜덤 억세스 포트를 통해 DRAM 어레이를 억세스한다. 불행하게도, 선을 그리는 동안 랜더링 제어기가 래스터 스캔 (raster scan)의 2~3행이상을 통과하면, 이런 종래의 VRAM 칩의 DRAM 페이지 모드 기법은 픽셀 억세스 속도를 심각하게 감소시킨다. 더우기, 랜더링 오퍼레이션중에 주로 사용되는 읽기-수정-쓰기(read-modify-write) 오퍼레이션은 종래의 VRAM 칩으로의 쓰기 오퍼레이션보다 현저하게 느리다.
컴퓨터 그래픽 세스템은 프레임 버퍼 랜덤 억세스 메모리(FBRAM) 칩이 구비된프레임 버퍼를 사용할 수 있다. 이런 FBRAM 칩은 디스플레이 장치에 디스플레이하기 위한 이미지를 정의하는 일련의 픽셀 데이터를 저장하는 DRAM 코어 (core) 영역을 포함한다. 전형적으로, 이런 그래픽 시스템내의 랜더링 제어기는 이미지를 표현하고 상응하는 픽셀 데이터를 FBRAM 칩에 기록한다.
이런 FBRAM 칩은 2차원 영역 캐쉬의 두 레벨을 제공함으로써 증가된 처리량을 DRAM 코어로 제공한다. 예를 들어, 이런 FBRAM 칩은 DRAM 코어의 기선택된 영역을 반영하는 레벨1 (L1) 픽셀 캐쉬를 제공한다. 이런 FBRAM 칩은 또한 FBRAM 칩의 DRAM 코어(core)에 밀접하게 결합된 레벨2 (L2) 캐쉬를 제공한다. 이런 FBRAM 칩은FBRAM 장치의 입력핀에서 전형적인 읽기-수정-쓰기 프레임 버퍼 억세스 사이클을 쓰기 위주 트랜잭션으로 변환함으로써 개선된 랜더링 처리량을 제공한다.
그러나, FBRAM 칩을 갖는 그러한 프레임 버퍼로의 랜더링 처리량은 L1이나 L2, 또는 양쪽으로의 캐쉬 손실을 가져오는 픽셀 억세스동안 감소된다. L1이나 L2 캐쉬내에 존재하지 않는 DRAM 코어의 영역을 대상으로하는 그러한 시스템에서의 픽셀 억세스는 손실된 캐쉬 블럭이 DRAM 코어로부터 페치(fetch)되는 동안에 픽셀 오퍼레이션이 스톨(stall)될 것을 요구한다. 손실된 캐쉬 블럭을 페치하기 위한 FBRAM 칩내에서의 이런 오퍼레이션은 랜더링 파이프라인(pipeline) 입력을 FBRAM 칩으로 스톨하고 전체 랜더링 속도를 늦춘다.
프레임 버퍼 메모리 장치 제어기는 픽셀 억세스 오퍼레이션이 디스패치(dispatch)될 때에 픽셀 억세스 오퍼레이션에 의해 요구되는 픽셀 데이터가 프레임 버퍼 메모리 장치의 레벨1 캐쉬내에 존재한다는 것을 보장하기 위해 프레임 버퍼 메모리 장치로의 오퍼레이션을 스케쥴(schedule)하고 디스패치한다는 것이 알려져 있다. 프레임 버퍼 메모리 장치 제어기는 더티(dirty) 캐쉬 라인을 재기록하고 프레임 버퍼 메모리 장치내의 캐쉬 라인을 클리어(clear)시키는 오퍼레이션에 의해 야기되는 타이밍 오버헤드 (timing overhead)를 감소시키기 위해 캐쉬 제어 오퍼레이션을 생성, 스케쥴, 및 디스패치한다. 프레임 버퍼 메모리 장치 제어기는 또한 프레임 버퍼 메모리 장치의 비디오 출력 포트로부터의 비디오 리프레쉬(refresh) 오퍼레이션에 의해 야기되는 타이밍 오버헤드를 감소시키기 위해 제어 오퍼레이션을 생성, 스케쥴, 및 디스패치한다.
프레임 버퍼 메모리 장치 제어기는 프레임 버퍼 메모리 장치내에 저장된 픽셀 데이터를 대상으로하는 픽셀 억세스 트랜잭션을 수신하기 위해 결합된다. 일 실시예를 위해, 프레임 버퍼 메모리 장치 제어기는 할당(allocator) 회로, 스케쥴러(scheduler) 회로, 및 조정(arbiter) 회로를 포함한다. 할당 회로는 이전 픽셀 어드레스 트랜잭션을 기반으로 프레임 버퍼 메모리 장치의 캐쉬 상태를 결정하고 요구되는 캐쉬 제어 오퍼레이션을 결정한다. 스케쥴러 회로는 픽셀 억세스 오퍼레이션 및 캐쉬 제어 오퍼레이션을 버퍼링하고 적절한 캐쉬 제어 오퍼레이션을 상응하는 픽셀 억세스 트랜잭션의 앞에 놓는다. 조정 회로는 프레임 버퍼 메모리 장치의 현재 상태에 따라 캐쉬 제어 오퍼레이션을 디스페치하기 위해 캐쉬 제어 오퍼레이션을 비디오 요구 오퍼레이션과 합께 조정한다. 조정 회로는 프레임 버퍼 메모리 장치의 현재 상태에 따라 픽셀 억세스 트랜잭션를 디스패치한다.
제1도는 그래픽 부시스템(86)을 나타낸 것이다. 그래픽 부시스템(86)은 FBRAM 칩 세트(71~82), 랜더링 프로세스(70), 프레임 버퍼 메모리 장치 제어기(83), 및 비디오 출력 회로(84)를 구비한다.
각 FBRAM 칩(71~82)은 랜더링 프로세서(70)로부터 FBRAM들로의 "쓰기 위주" 인터페이스를 제공하기 위한 내부 ALU 및 파이프라인 회로를 포함한다. FBRAM 칩들 (71~82)의 쓰기 위주 구조는 랜더링 프로세서(70)에 의한 랜더링 오퍼레이션 동안의 평균 메모리 사이클 시간을 최소화시킨다.
일실시예를 위해, 각각의 FBRAM 칩들(71~82)은 320×1024×32 비트 디프(deep) 프레임 버퍼를 지원하는 10Mbit DRAM 어레이를 포함한다. 각 FBRAM 칩들(71~82)내의 DRAM 어레이는 네개의 독립 인터리브된 DRAM 뱅크를 구비한다.
각각의 FBRAM 칩들 (71~82)은 또한 픽셀 ALU와 스태틱(static) 랜덤 억세스 메모리 (SRAM) 픽셀 버퍼를 포함한다. 각 FBRAM 칩들(71~82)내의 SRAM 픽셀 버퍼는 랜더링 프로세서(70)에 의해 억세스하기 위한 픽셀 캐쉬로서 기능한다.
각 FBRAM 칩들(71~82)은 네개의 DRAM 뱅크들과 SRAM 픽셀 버퍼 사이의 높은 대역폭 통신을 가능하게 하는 글로벌 버스(global bus)를 포함한다. 각 FBRAM 칩들(71~82)은 또한 디스플레이 장치를 위한 CRT 리프레쉬 오퍼레이션을 수행하는 한쌍의 비디오 버퍼를 포함한다.
각각의 FBRAM 칩들(71~82)내의 픽셀 ALU는 네개의 래스터(raster) 오퍼레이션 유니트 세트를 포함한다. 각 래스 오퍼레이션 유니트는 상응하는 SRAM 픽셀 버퍼로 전송되는 픽셀 데이터의 각 바이트에서 선택될 수 있는 래스터 오퍼레이션을 수행한다. 각 FBRAM 칩들(71~82)내의 픽셀 ALU는 네개의 픽셀 블랜딩(blending) 유니트 세트를 포함한다. 각 픽셀 블랜딩 유니트는 픽셀 ALU를 위한 일련의 파이프 라인 프로세싱 스테이지(stage)에 따라 새로운 픽셀 값들중의 한 바이트와 함께 오래된 내부 픽셀 값들중의 한 바이트와 랜더링 프로세서(70)로부터 수신된 관련 정보를 결합한다.
각 FBRAM 칩(71~82)은 DRAM 어레이, SRAM 픽셀 버퍼, 픽셀 ALU, 및 내부 비디오 버퍼 세트를 포함하는 컨커런트(concurrent) 오퍼레이션을 가능하게 하는 회로를 포함한다. 각 FBRAM 칩(71~82)은 랜더링 프로세서(70)가 픽셀 ALU를 통해서 SRAM 픽셀 버퍼를 억세스하는 동안, 및 비디오 출력 회로(84)가 비디오 버퍼로부터비디오 데이터를 읽는 동안에 DRAM 어레이와 SRAM 픽셀 버퍼 사이의 픽셀 데이터 전송을 가능하게 하는 회로를 포함한다.
FBRAM 칩들(71~82)은 비디오 버스(134)를 통해 비디오 데이터를 비디오 출력 회로(84)로 전송한다. 비디오 출력 회로(84)는 FBRAM 칩들(71~82)의 비디오 데이터의 전송을 동기시키는 비디오 버스(134)상의 일련의 상응하는 비디오 클럭을 생성한다.
랜더링 프로세서(70)는 프레임 버퍼 메모리 장치 제어기(83)를 경위하여 랜더링 버스(98)를 통해 픽셀 데이터를 FBRAM 칩들(71~82)에 쓴다. 프레임 버퍼 메모리 장치 제어기(83)는 픽셀 ALU 오퍼레이션, SRAM 픽셀 버퍼 및 DRAM 어레이 오퍼레이션, 및 비디오 버퍼 오퍼레이션을 포함하는 FBRAM 칩들(71~82)의 내부 오퍼레이션을 제어하기 위해 프레임 버퍼 제어 신호 및 명령을 FBRAM 칩들(71~82)로 전송한다.
랜더링 프로세서(70)는 시스템 버스(102)를 통해 주 프로세서(도시되지 않음)로부터 그래픽 프리미티브(primitives)를 수신한다. 랜더링 프로세서(70)는 수신된 그래픽 프리미티브를 나타내고 프레임 버퍼 제어 버스(106)을 통해 상응하는 일련의 픽셀 억세스 트랜잭션을 프레임 버퍼 메모리 장치 제어기(83)로 전송한다.
프레임 버퍼 메모리 장치 제어기(83)는 랜더링 프로세서(70)로부터 픽셀 억세스 트랜잭션을 수신하고, 상응하는 일련의 픽셀 억세스 트랜잭션을 FBRAM 칩들(71~82)에 공급한다. 프레임 버퍼 메모리 장치 제어기(83)는 랜더링 버스(98)를 통해 픽셀 억세스 트랜잭션을 위한 픽셀 데이터를 FBRAM 칩들(71~82)로/로부터전송한다. 프레임 버퍼 메모리 장치 제어기(83)는 DRAM 오퍼레이션 버스(110)를 통해 FBRAM 칩들(71~82)의 DRAM 코어 오퍼레이션을 제어하는 명령을 공급한다. 프레임 버퍼 메모리 장치 제어기(83)는 픽셀 오퍼레이션 버스(112)를 통해 픽셀 캐쉬 및 픽셀 ALU 기능을 제어하는 명령을 FBRAM 칩들(71~82)로 공급한다.
프레임 버퍼 메모리 장치 제어기(83)는 L2 픽셀 캐쉬와 L1 픽셀 캐쉬 사이의 오퍼레이션, 각 FBRAM 칩들(71~82)내의 비디오 버퍼나 DRAM 코어를 제어하기 위해 DRAM 오퍼레이션 버스(110)를 통해 명령을 공급한다. 프레임 버퍼 메모리 장치 제어기(83)는 각 FBRAM 칩들(71~82)내의 픽셀 ALU와 L1 픽셀 캐쉬 사이의 오퍼레이션을 제어하기 위해 픽셀 오퍼레이션 버스(112)를 통해 명령을 공급한다. 프레임 버퍼 메모리 장치 제어기(83)는 프레임 버퍼 제어 버스(106)를 통해 수신된 픽셀 어드레스, 데이터, 및 오퍼레이션 명령에 따라, 비디오 오퍼레이션 버스(108)를 통해 비디오 출력 회로에 의해 특정 비디오 오퍼레이션에 따라, 그리고 프레임 버퍼 메모리 장치 제어기에 의해 유지되는 FBRAMs의 현재의 캐쉬 상태에 따라 DRAM 오퍼레이션 버스(110) 및 픽셀 오퍼레이션 버스(112)를 통해 명령을 생성한다.
제2도는 일실시예를 위한 FBRAM 칩(71)을 나타낸 것이다. FBRAM 칩 (71)은 DRAM 어레이, 한쌍의 비디오 버퍼(52,54), 픽셀 버퍼(56), 및 픽셀 ALU(58)를 구비한다. FBRAM 칩(71)은 각각의 FBRAM 칩들(72~82)과 실질적으로 유사하다.
FBRAM 칩(71)내의 DRAM 어레이는 네 개의 DRAM 뱅크 (DRAM 뱅크 A-D) 세트 및 상응하는 페이지 버퍼 A-D를 구비한다. 일실시예를 위해, 각 DRAM 뱅크 A-D는 257 페이지내에서 정렬된 2.5Mbit DRAM 어레이를 구비한다. 각 페이지는 320워드로구성되고 각 워드는 32 비트로 구성된다.
페이지 버퍼 A-D는 상응하는 DRAM 뱅크 A-D 의 감지 증폭기(sense amplifier)들을 구비한다. 일실시예를 위해, 각 페이지 버퍼 A-D는 상응하는 DRAM 뱅크 A-D의 320 워드 페이지를 버퍼링한다.
비디오 버퍼(52, 54)는 비디오 버스(134)를 통해 비디오 출력 회로(84)로 전송하기 위한 비디오 데이터를 버퍼링한다. 비디오 버퍼(52)는 페이지 버퍼 A 및 C의 데이터를 수신한다. 비디오 버퍼(54)는 페이지 버퍼 B 및 D의 데이터를 수신한다. 비디오 버퍼(52, 54)내의 데이터는 다중화기(62)를 경유하여 비디오 버스(134)를 통해 비디오 출력 회로(84)로 출력된다.
픽셀 버퍼(56)는 속도가 빠르고, 포트가 3개인 스태틱 RAM(SRAM)이며 FBRAM 칩 (71)을 위한 레벨1 픽셀 캐쉬로 동작한다. L1 픽셀 캐쉬를 위한 결합(associativity) 파라메터들이 프레임 버퍼 메모리 장치 제어기 (83)에 의해 외부적으로 결정되고 완전한 결합 사상을 포함한다. L1 픽셀 캐쉬는 재기록 정책 (write back policy)을 사용한다. L1 픽셀 캐쉬는 L1 캐쉬 블럭 세트를 구비한다. 랜더링 프로세서(70)는 프레임 버퍼 메모리 장치 제어기(83)를 통해 각 L1 캐쉬 블럭으로 데이터 쓰기를 수행한다. 다중 쓰기는 레벨2 (L2) 픽셀 캐쉬를 통해 DRAM 뱅크 A-D로의 차후의 전송을 위하여 각 L1 캐쉬 블럭내에 누적된다.
픽셀 버퍼(56)는 ALU 읽기 포트(204) 및 ALU 쓰기 포트(202)를 제공한다. FBRAM 칩 (71)의 입/출력 핀으로부터의 픽셀 입력 데이터(162)는 픽셀 ALU(58)를 위한 소스(source) 데이터를 제공한다. 픽셀 ALU (58)는 선택된 픽셀 처리 기능을수행하고 픽셀 버퍼(56)의 ALU 쓰기 포트로 쓰기 포트 데이터(202)를 전송한다.
요구되는 픽셀 처리 기능이 읽기-수정-쓰기 오퍼레이션을 필요로하면, 픽셀 ALU(58)는 읽기 포트(204)로부터 읽기 데이터를 획득하고, 소스 데이터(162)를 읽기 데이터(204)와 융합시키므로써 수정을 수행하며, 그리고나서 그 결과를 픽셀 버퍼 쓰기 포트(202)에 쓴다. 픽셀 버퍼(56) 읽기 및 쓰기 포트는 일(one)-클럭 파이프라인 읽기-수정-쓰기 사이클을 성취하기 위해 랜더링 버스에서 일-클럭 파이프라인 쓰기를 제공하는 일-클럭(clock) 읽기 및 쓰기 오퍼레이션을 동시에 할 수 있다.
랜더링 프로세서(70)는 프레임 버퍼 메모리 장치 제어기(83)을 경유하여 랜더링 버스(98)를 통해 픽셀 버퍼(56)의 읽기 포트로부터 데이터를 읽는다. 픽셀 버퍼(56)로부터의 읽기 포트 데이터(204)는 FBRAM 칩(71)의 입/출력 핀들을 통해 랜더링 버스(98)에서 억세스될 수 있다.
픽셀 버퍼(56)는 글로벌 버스(global bus)를 통해 블럭 전송 오퍼레이션을 위한 글로벌 읽기/쓰기 포트를 제공한다. 랜더링 프로세서(70)는 ALU 읽기 포트, ALU 쓰기 포트, 및 픽셀 버퍼(56)의 글로벌 읽기/쓰기 포트를 동시에 동작되도록 하는 프레임 버퍼 메모리 장치 제어기(83)로 오퍼레이션을 제공할 수 있다.
일실시예를 위해, 픽셀 버퍼(56)는 2048비트 SRAM 버퍼와 상응하는 더티 태크 메모리를 포함한다. 2048비트 SRAM 버퍼는 8개의 256비트 L1 캐쉬 블럭으로 편성된다. 각 L1 캐쉬 블럭은 각각 32비트를 구성된 8개의 워드를 버퍼링한다. 각 L1 캐쉬 블럭은 폭이 2이고, 높이가 4인 장방형의 32비트 픽셀을 위한 픽셀 데이터를버퍼링한다. 8개의 L1 캐쉬 블럭은 또한 더티 태그 메모리내의 8세트의 32비트 더티 태그 비트에 상응한다. 글로벌 읽기/쓰기 포트는 폭이 256비트이고, ALU 읽기 및 쓰기 포트들은 폭이 각각 32비트이다.
픽셀 ALU(58)는 랜더링 버스(98)를 통해 픽셀 버퍼(56)로의 파이프라인 읽기-수정-쓰기 오퍼레이션을 가능하게 한다. 파이프라인 읽기-수정-쓰기 오퍼레이션은 Z-버퍼 비교, RGB 알파 블랜딩, 및 부울(Boolean) 오퍼레이션을 포함한다. 픽셀 버퍼(56)의 글로벌 일기/쓰기 포트는 글로벌 버스(60)를 통해 페이지 버퍼 A-D와 픽셀 버퍼(56) 사이에서 전체 L1 캐쉬 블럭 병렬 전송을 가능하게 한다.
페이지 버퍼 A-D는 L2 픽셀 캐쉬를 구비한다. L2 픽셀 캐쉬는 DRAM 뱅크 A-D로 직접 사상된다. 각 페이지 버퍼 A-D는 상응하는 DRAM 뱅크 A-D의 페이중의 하나에 사상된다. 일실시예를 위해, L2 픽셀 캐쉬 엔트리는 320 워드로 구성되며 각 워드는 32비트이다. 각 L2 캐쉬 엔트리는 폭이 20이고 높이가 16인 장방형 픽셀로 배열된다. L2 픽셀 캐쉬는 정책에 따라 쓰기를 이용한다. 글로벌 버스(60)를 통해 L2 픽셀 캐쉬 엔트리에 쓰여진 픽셀 데이터는 상응하는 DRAM 뱅크 A-D의 상응하는 페이지로 즉시 전송된다.
글로벌 버스(60)는 L1 픽셀 캐쉬와 L2 픽셀 캐쉬 사이의 통신을 가능하게 한다. 일실시예를 위해, 글로벌 버스(60)는 폭이 256비트이고 L1 픽셀 캐쉬와 L2 픽셀 캐쉬 사이의 2×4 픽셀 블럭의 병렬 전송을 가능하게 한다.
각 DRAM 뱅크 A-D는 일련의 비트 라인을 구비하는 감지 증폭기 버스를 포함한다. 감지 증폭기 버스는 페이지 버퍼 A-D를 DRAM 뱅크 A-D에 결합한다. 일실시예를 위해, 각 감지 증폭기 버스는 DRAM 뱅크 A-D의 20×16(32비트 픽셀) 장방형 픽셀을 상응하는 L2 픽셀 캐쉬로의 병렬 전송을 가능하게 한다.
프레임 버퍼 메모리 장치 제어기(83)는 DRAM과 픽셀 오퍼레이션 버스 (110, 112)의 제어 및 주소 신호를 통해 DRAM 뱅크 A-D로의 억세스를 인터리브(interleave)한다. 프레임 버퍼 메모리 장치 제어기(83)는 페이지 버퍼 A-D 중의 하나의 감지 증폭기에서의 프리차지(precharge) 오퍼레이션을 DRAM 뱅크 A-D의 다른 하나로의 랜더링 오퍼레이션과 오버랩(overlap)한다. 프레임 버퍼 메모리 장치 제어기(83)는 또한 DRAM 뱅크 A-D의 하나로 억세스 페이지 오퍼레이션을 DRAM 뱅크 A-D중의 다른 하나로의 랜더링 오퍼레이션에 인터리브한다.
FBRAM 칩 (71)은 ALU(58)와 읽기 및 쓰기 포트(204, 202)를 통해 픽셀 버퍼(56)를 억세스하기 위해 픽셀 오퍼레이션 버스(112)상에 한 세트의 픽셀 포트 제어 및 주소 입/출력 인터페이스 핀들과 글로벌 버스(60)나 비디오 버퍼(52, 54)를 통해 DRAM 뱅크 A-D를 억세스하기 위해 DRAM 오퍼레이션 버스(110)상에 독립된 한 세트의 DRAM 포트 제어 및 주소 입/출력 인터페이스 핀들을 제공한다. 독립된 제어 및 주소 핀들의 세트들은 DRAM 뱅크 A-D를 위한 오퍼레이션이 픽셀 버퍼(56)에 대한 ALU 오퍼레이션과 병렬로 처리되는 것을 가능하게 한다. FBRAM 칩(71)은 또한 비디오 버퍼(52, 54) 및 직렬 출력(134)을 포함하는 비디오 오퍼레이션을 위한 비디오 오퍼레이션 버스(134)상에 독립된 비디오 포트 제어 인터페이스 핀들의 다른 세트를 제공한다.
FBRAM 칩(71)을 위한 입/출력 인터페이스는 픽셀 포트 오퍼레이션을 위한 픽셀 포트 제어 인터페이스(118), 비디오 오퍼레이션을 위한 비디오 포트 제어 인터페이스(114), 및 FBRAM 칩(71)내의 DRAM 오퍼레이션을 위한 DRAM 제어 인터페이스를 구비한다. 픽셀 ALU(58) 및 픽셀 버퍼(56)를 위한 픽셀 포트 억세스 오퍼레이션은 픽셀 포트 주소 및 제어 신호 세트에 의해 제어된다. DRAM 뱅크 A-D를 위한 오퍼레이션은 DRAM 제어 신호 세트에 의해 제어된다. 비디오 버퍼(52, 54)의 기능은 비디오 제어 신호 세트에 의해 제어된다. DRAM 뱅크를 인터리브하는 네가지 방식과 함께 3개의 별개의 제어 세트는 FBRAM 칩 (71)을 위한 오퍼레이션을 6개까지 동시에 가능하게 한다.
표1은 일실시예를 위한 픽셀 포트 주소 및 제어 신호를 나타낸 것이다. 프레임 버퍼 메모리 장치 제어기(83)는 픽셀 오퍼레이션 버스(112)상의 픽셀 포트 주소 및 제어 신호를 통해 픽셀 ALU(58) 및 픽셀 버퍼 읽기 및 쓰기 포트(204, 202)에 대한 픽셀 포트 오퍼레이션을 제어한다. 프레임 버퍼 메모리 장치 제어기(83)는 픽셀 ALU(58) 및 픽셀 버퍼 포트(204, 202)를 위한 오퍼레이션을 초기화하기위해 PA_ENA[1...0] 신호를 발생한다. 어느 PA_ENA 신호도 발생되지 않으면, 남아있는픽셀 포트 제어 신호는 무시된다.
프레임 버퍼 메모리 장치 제어기(83)는 쓰기 오퍼레이션을 나타내기 위해 PA_WE 신호를 발생한다. PA_WE 신호가 발생되지 않으면 읽기 오퍼레이션을 나타낸다. 프레임 버퍼 메모리 장치 제어기(83)는 픽셀 ALU(58)를 위한 오퍼레이션을 특징지우기 위해 PA_WE 신호와 결합된 PA_OP[2...0] 신호를 구동한다. 프레임 버퍼 메모리 장치 제어기(83)는 픽셀 ALU(58) 오퍼레이션을 위한 픽셀 버퍼 읽기 및 쓰기 포트(204, 202) 주소를 특징지우기 위해 PA_ADDR[5...0] 신호를 사용한다.
프레임 버퍼 메모리 장치 제어기(83)는 레지스터 쓰기 및 더티 태그 쓰기를 포함하는 읽기 및 쓰기 오퍼레이션동안에 PA_BE[3...0] 신호를 구동한다. 읽기 오퍼레이션 동안에, PA_WE는 발생되지 않고, PA_BE 신호는 출력 바이트 인에이블 신호를 제공한다. 쓰기 오퍼레이션 동안에, PA_WE가 발생되고, PA_BE 신호는 쓰기 바이트 인에이블 신호를 제공한다. PA_BE[0] 신호는 PA_DQ[7..0] 데이터 바이트를 제어하며, PA_BE[1] 신호는 PA_DQ[15..8] 데이터 바이트를 제어하고, PA_BE[2] 신호는 PA_DQ[23..16] 데이터 바이트를 제어하고, PA_BE[3] 신호는 PA_DQ[31..24] 데이터 바이트를 제어한다.
프레임 버퍼 메모리 장치 제어기(83)는 FBRAM 칩(71)을 위한 읽기 및 쓰기 오퍼레이션 동안에 랜더링 버스(98)를 통해 PA_DQ[31...0] 신호를 사용한다. 쓰기 오퍼레이션 동안에, PA_DQ 신호는 픽셀 ALU(58)로 전송된다. 읽기 오퍼레이션 동안에, PA_DQ 신호는 픽셀 버퍼(56)의 읽기 포트로 제공된다. 내부 복사 및 수직 스크롤(scroll) 오퍼레이션 동안에, 프레임 버퍼 장치 제어기(83)는 PA_DQ[29..24] 신호를 이용하여 쓰기 주소를 제공한다.
블랜딩을 수행하는 ALU 쓰기 동안에, 프레임 버퍼 메모리 장치 제어기(83)는 PA_DQ 신호를 통해 전송된 데이터 바이트를 위한 매우 높은 차수의 데이터 비트를 제공하기 위해 PA_DX[3..0] 신호를 사용한다. PA_DX[10] 신호는 PA_DQ[7..0] 바이트를 위해 높은 차수의 비트를 제공한다. 유사하게, PA_DX[1] 신호는 PA_DQ[15..8] 바이트를 위한 높은 차수의 비트이며, PA_DX[2] 신호는 PA_DQ[23..16]을 위한 높은 차수의 비트이고, PA_DX[3] 신호는 PA_DQ[31..24] 바이트를 위한 높은 차수의 비트이다.
PA_PASS_IN 및 PA_PASS_OUT 신호는 FBRAM 칩(71-82) 사이의 통과/실패 비교 유니트 결과의 조정을 인에이블할 수 있다. FBRAM 칩(71)의 내부 비교 유니트의 비교 결과는 PA_PASS_OUT 신호를 통해 전송된다. PA_PASS_OUT 신호는 픽셀 버퍼(56)로의 상태 쓰기 오퍼레이션 동안에 내부 비교 테스트가 실패했는지의 여부를 나타낸다. PA_PASS_IN 신호가 통과를 나타내고 PA_PASS_OUT 신호가 통과를 나타내면, 상태 데이터 쓰기 오퍼레이션 동안에 데이터가 픽셀 버퍼(56)에 쓰여진다.
표2는 일실시예를 위한 DRAM 주소 및 제어 신호를 설명한다. 프레임 버퍼 메모리 장치 제어기(83)는 DRAM 오퍼레이션 버스(110)상의 DRAM 주소 및 제어 신호를 통해 DRAM 뱅크 A-D, 글로벌 버스(60), 픽셀 버퍼 글로벌 버스 포트, 및 비디오 버퍼(52, 54)를 위한 DRAM 억세스 오퍼레이션을 초기화한다. 프레임 버퍼 메모리 장치 제어기(83)는 DRAM_OP[2..0] 신호를 통해 DRAM 오퍼레이션을 특징지운다. 프레임 버퍼 메모리 장치 제어기(83)는 다음 CLK 사이클 동안에 DRAM 뱅크 A-D중의 하나에 대한 오퍼레이션을 초기화 하기 위해 주 클럭(CLK)의 상향 에지에서 DRAM_ENA를 발생한다.
프레임 버퍼 메모리 장치 제어기(83)는 DRAM_BANK[1..0] 신호를 사용하여 DRAM 뱅크 A-D중의 하나를 선택한다. 프레임 버퍼 장치 제어기(83)는DRAM_ADDR[8..0] 신호를 통해 선택된 DRAM 뱅크 A-D내의 페이지를 선택한다. 게다가, 프레임 버퍼 메모리 장치 제어기(83)는 블럭 전송 오퍼레이션 동안에 글로벌 버스(60)을 통해 픽셀 버퍼 글로벌 버스 포트 주소를 특징지우고, 비디오 버퍼(52, 54)중의 하나로 DRAM 페이지의 비디오 데이터의 전송을 특징지우기 위해 DRAM_ADDR[8..0] 신호를 사용한다.
표3은 일실시예를 위한 비디오 제어 신호들을 나타낸 것이다. 비디오 제어 신호는 비디오 버스(134)를 통해 비디오 데이터를 비디오 출력 회로(84)로 전송하기 위해 사용된다. 비디오 버스(134)를 통해 전송된 비디오 데이터는 VID_CLK 신호에 의해 동기된다. VID_CLK 신호는 게이트(gated)되거나 자율-동작(free-running)되는 비디오 쉬프트 클럭이다.신호는 다음 VID_CLK 사이클을 마스크하고 비디오 버퍼(52, 54)를 작동시키는 FBRAM 칩(71)내에 있는 비디오 카운터를 디스에이블 시키기 위해 사용되는 동기 신호이다. VID_OE 신호는 VID_DATA 신호에 의해 제공되는 비디오 데이터를 위한 비동기 비디오 출력 인에블 신호이다. 한 사이클 동안에 2바이트의 비디오 데이터를 전송할 수 있는 VID_DATA[15..0] 신호가 16비트 폭의 비디오 데이터 버스에 제공된다. VID_QSF 신호는 비디오 버퍼(52, 54)중의 하나가 VID_DATA[15..0] 신호를 통해 전송되는 비디오 데이터를 작동시키고 있는지의 여부를 나타낸다.
표4는 일실시예를 위한 FBRAM 칩(71)의 픽셀 포트 오퍼레이션을 나타낸 것이다. 픽셀 포트 오퍼레이션은 픽셀 버퍼(56)로부터의 데이터를 읽기 위한 오퍼레이션, 서로다른 네개의 모드에서 데이터를 픽셀 버퍼(56)로 쓰기 위한 오퍼레이션, 더티 태그 메모리(194)내의 더티 태그 비트를 교체하고 수정하기 위한 오퍼레이션,및 FBRAM 칩(71)의 제어 레지스터로 쓰기 위한 오퍼레이션을 포함한다.
프레임 버퍼 메모리 장치 제어기(83)는 PA_ADDR[5..0] 신호를 통해 픽셀 포트 오퍼레이션을 위한 블럭 및 워드 주소를 특징지운다. 랜더링 프로세서(70)는 PA_ADDR[5..3] 신호를 통해 픽셀 ALU 오퍼레이션을 위한 블럭 주소를 특징지운다. 랜더링 프로세서(70)는 PA_ADDR[2..0] 신호를 통해 픽셀 ALU 오퍼레이션을 위한 워드 주소를 특징지운다. 랜더링 프로세서(70)는 PA_ADDR[5..0] 신호를 통해 제어 레지스터 쓰기 오퍼레이션 동안에 제어 레지스터를 특징지운다.
프레임 버퍼 메모리 장치 제어기(83)는 픽셀 버퍼(56)로부터의 32비트 데이터를 읽기 위해 읽기 픽셀 포트 오퍼레이션을 생성한다. 픽셀 버퍼(56)내의 블럭 및 워드 주소는 PA_ADDR[5..0] 신호에 의해 특징지워진다.
프레임 버퍼 메모리 장치 제어기(83)는 PA_ADDR[5..0] 신호에 의해 특정 픽셀 버퍼(56)내에 있는 블럭 및 워드에 32비트 데이터를 쓰기 위해 스테이트리스(stateless) 초기 데이터 쓰기 오퍼레이션을 생성한다. 스테이트리스 초기 데이터 쓰기 오퍼레이션은 PA_DQ[31..0]에 의해 제공되는 32비트 데이터에 상응하는 주소화된 블럭내의 더티 태그를 세트하고, PA_DQ[31..0]에 의해 제공되는 32비트 데이터에 상응하지 않는 주소화된 블럭내의 더티 태그를 클리어시킨다. 스테이트리스 초기 데이터 쓰기 오퍼레이션은 FBRAM 칩(71)내의 제어 레지스터의 내용에 의해 영향을 받지 않는다. 또한, 스테이트리스 정상 데이터 쓰기 오퍼레이션도 FBRAM 칩(71)내의 제어 레지스터의 내용에 의해 영향받지 않는다. 프레임 버퍼 메모리 장치 제어기(83)는 PA_DQ[31..0]에 의해 제공되는 32비트 데이터를 PA_ADDR[5..0] 신호에 의해 특정 픽셀 버퍼(56)내의 블럭 및 워드에 쓰기 위해 스테이트리스 정상 데이터 쓰기 오퍼레이션을 생성한다. 스테이트리스 정상 데이터 쓰기 오퍼레이션은 PA_DQ[31..0]에 의해 제공되는 32비트 데이터에 상응하는 더티 태그를 세트한다.
프레임 버퍼 메모리 장치 제어기(83)는, FBRAM 칩(71)내의 제어 레지스터의 내용에 따라, 픽셀 버퍼(56)에 32비트 데이터를 쓰기 위하여 스테이트풀(stateful) 초기 데이터 쓰기 오퍼레이션을 생성한다. 또한, 스테이트풀 초기 데이터 쓰기 오퍼레이션은 스테이트리스 초기 데이터 쓰기 오퍼레이션과 같은 방법으로 더티 태그를 세트하고 클리어시킨다. 프레임 버퍼 메모리 장치 제어기(83)는 FBRAM 칩 (71)내의 제어 레지스터의 내용에 따라 픽셀 버퍼(58)로 32비트 데이터를 쓰기 위해 스테이트풀 정상 데이터 쓰기 오퍼레이션을 생성한다. 또한, 스테이트풀 정상 데이터쓰기 오퍼레이션도 스테이트리스 정상 데이터 쓰기 오퍼레이션과 같은 방식으로 더티 태그를 세트한다. 프레임 버퍼 메모리 장치 제어기(83)는 PA_ADDR[5..0] 신호를 통해 픽셀 버퍼(56)내의 블럭 및 워드를 특징지우고, PA_DQ[31..0] 신호를 통해 새로운 데이터를 제공한다. 새로운 데이터는 픽셀 ALU 오퍼레이션을 제어하는 FBRAM 칩(71)내의 레지스터의 내용에 따라 주소화된 블록 및 워드내에 존재하는 데이터와 결합된다.
프레임 버퍼 메모리 장치 제어기(83)는 PA_DQ[31..0] 신호를 통해 더티 태그 데이터를 더티 태그 메모리(194)로 전송하기 위하여 교체 더티 태그 오퍼레이션을 생성한다. 프레임 버퍼 메모리 장치 제어기(83)는 새로운 태그 데이터와 더티 태그 메모리내에 존재하는 태그 데이터에 포함적 논리합(inclusive OR) 기능을 수행하기 위해 OR 더티 태그 오퍼레이션을 생성한다. 프레임 버퍼 메모리 장치 제어기(83)는 새로운 데이터를 FBRAM 칩(71)의 내부 제어 레지스터로 전송하기 위해 쓰기 제어 레지스터 오퍼레이션을 생성한다.
표5 일실시예를 위한 FBRAM 칩(71)에 의해 제공되는 DRAM 억세스 오퍼레이션을 나타낸다. DRAM 억세스 오퍼레이션은 페이지 억세스 오퍼레이션, 블럭 억세스 오퍼레이션, 및 비디오 버퍼 로드(load) 오퍼레이션을 포함한다. 페이지 억세스 오퍼레이션은 억세스 페이지 오퍼레이션, 프리차지 오퍼레이션, 및 듀플리케이트(duplicate) 페이지 오퍼레이션을 포함한다. 블럭 억세스 오퍼레이션은 읽기 블럭 오퍼레이션, 언마스크드(unmasked) 쓰기 블럭 오퍼레이션, 및 마스크드(masked) 쓰기 블럭 오퍼레이션을 포함한다. 프레임 버퍼 메모리 장치제어기(83)는 DRAM 오퍼레이션 버스(110)에서 각 사이클마다 DRAM 억세스 오퍼레이션을 론치(launch)할 수 있다.
프레임 버퍼 메모리 장치 제어기(83)는 DRAM 뱅크 A-D의 페이지를 선택하기 위해 페이지 억세스 오퍼레이션을 론치한다. 프레임 버퍼 메모리 장치 제어기(83)는 DRAM_BANK 신호를 통해 DRAM 뱅크 A-D를 특징지우고 DRAM_ADDR[8..0] 신호를 통해 억세스된 페이지를 특징지운다.
프레임 버퍼 메모리 장치 제어기(83)는 페이지 버퍼 A-D와 픽셀 버퍼(56) 사이의 데이터 블럭을 전송하기 위해 블럭 억세스 오퍼레이션을 론치한다. 프레임 버퍼 메모리 장치 제어기(83)는 DRAM_BANK 신호를 통해 DRAM 뱅크 A-D 및 페이지 버퍼 A-D를 특징지운다. 프레임 버퍼 메모리 장치 제어기(83)는 DRAM_ADDR[8..6] 신호를 통해 픽셀 버퍼(56)내의 픽셀 캐쉬 블럭을 특징지우고, DRAM_ADDR[5..0] 신호를 통해 특정 페이지 버퍼 A-D의 블럭을 선택한다.
프레임 버퍼 메모리 장치 제어기(83)는 글로벌(global) 버스(60)를 통해 데이터 한 블럭을 픽셀 버퍼(56)의 특정 블럭에서 특정 페이지 버퍼 A-D의 특정 블럭으로 전송하기 위해 언마스크드 쓰기 블럭 오퍼레이션을 생성한다. 픽셀 버퍼(56)의 특정 블럭에 상응하는 더티 태그 메모리내의 더티 태그 비트는 특정 페이지 버퍼 A-D로의 바이트단위 쓰기를 제어한다.
프레임 버퍼 메모리 장치 제어기(83)는 글로벌 버스(60)를 통해 데이터 한 블럭을 픽셀 버퍼(56)의 특정 픽셀 캐쉬 블럭에서 특정 페이지 버퍼 A-D의 특정 블럭으로 전송하기 위해 마스크드 쓰기 블럭 오퍼레이션을 생성한다. 픽셀 버퍼(56)의 특정 픽셀 캐쉬 블럭을 위한 플레인(plane) 마스크 레지스터 및 더티 태그 비트는 특정 DRAM 뱅크 A-D의 페이지 버퍼 A-D로의 비트단위 쓰기를 제어한다.
프레임 버퍼 메모리 장치 제어기(83)는 특정 DRAM 뱅크 A-D내의 센스 증폭기를 프리차지하기 위해 프리차지 뱅크 오퍼레이션을 생성한다. 프레임 버퍼 메모리 장치 제어기(83)는 다음의 억세스 페이지 오퍼레이션을 준비하기 위한 프리차지 뱅크 오퍼레이션을 생성한다.
프레임 버퍼 메모리 장치 제어기(83)는 특정 페이지 버퍼 A-D에서 그데 상응하는 비디오 버퍼(52, 54)로 640 비트 라인의 센스 증폭 데이타를 전송하기 위해비디오 전송 오퍼레이션을 생성한다. 랜더링 프로세서(70)는 페이지 버퍼 A-D로부터의 라인을 특징지우기 위해 DRAM_ADDR[3..0] 신호를 사용한다.
프레임 버퍼 메모리 장치 제어기(83)는 특정 페이지 버퍼 A-D내의 센스 증폭 데이터를 상응하는 DRAM 뱅크 A-D내의 특정 페이지로 전송하기 위해 듀플리케이트 페이지 오퍼레이션을 생성한다. 프레임 버퍼 메모리 장치 제어기(83)는 글로벌 버스(60)를 통해 데이터 한 블럭을 특정 페이지 버퍼 A-D의 특정 블럭에서 픽셀 버퍼(56)의 특정 픽셀 캐쉬 블럭으로 전송하기 위해 읽기 블럭 오퍼레이션을 생성한다. 읽기 블럭 오퍼레이션은 픽셀 버퍼(56)의 특정 픽셀 캐쉬 블럭을 위한 더티 태그 비트를 클리어한다.
프레임 버퍼 메모리 장치 제어기(83)는 데이터를 특정 DRAM 뱅크 A-D내의 특정 페이지에서 페이지 버퍼 A-D내의 상응하는 센스 증폭기로 전송하기 위해 억세스 페이지 오퍼레이션을 생성한다. 프레임 버퍼 메모리 장치 제어기(83)는 특별한 DRAM 뱅크 A-D로의 억세스 페이지 오퍼레이션을 취하기 전에 그 DRAM 뱅크로의 프리차지 오퍼레이션을 취한다.
FBRAM 칩(71)과 같은 FBRAM 칩의 예를 고려한 부가적인 정보가 "Frame Buffer Random Access Memory and System" 이란 제목으로 1994년 5원 3일에 출원된 미국 특허 출원번호 : 08/237,289에 설명되어 있다.
제3도는 일실시예에 대한 프레임 버퍼 메모리 장치 제어기(83)를 설명한다. 프레임 버퍼 메모리 장치 제어기(83)는 번역 회로(300), 할당 회로(310), 스케쥴러 회로(320), 조정 회로(330), 및 비디오 요구 발생기(340)를 구비한다.
프레임 버퍼 제어 버스(106)를 통해 프레임 버퍼 장치 제어기(83)에 의해 수신된 픽셀 억세스 트랜잭션(transactions)은 결국 픽셀 오퍼레이션 버스(112) 및 랜더링 버스(98)를 통해 오퍼레이션의 발생을 일으킨다. 프레임 버퍼 메모리 장치 제어기(83)는 픽셀 오퍼레이션의 지원으로 DRAM 코어와 L1 픽셀 캐쉬 사이의 데이터를 FBRAM 칩(71-82)의 L2 픽셀 캐쉬를 통해 전송하기 위해 DRAM 오퍼레이션 버스(110)을 통해 DRAM 오퍼레이션을 생성한다.
프레임 버퍼 메모리 장치 제어기(83)는 프레임 버퍼 제어 버스(106)을 통해 수신된 픽셀 억세스 트랜잭션의 시퀀스에 따라 DRAM 오퍼레이션 버스(110)상에서 발생된 DRAM 오퍼레이션을 결정한다. 예를 들어, 프레임 버퍼 제어 버스(106)를 통해 수신된 픽셀 억세스 트랜잭션에 의해 특정 픽셀 데이터가 FBRAM 칩(71-82)의 L1 픽셀 캐쉬내에 저장되지 않으면, 적합한 블럭이 FBRAM 칩(71-82)의 L1 픽셀 캐쉬로 전송되어야만 한다. 게다가, 프레임 버퍼 제어 버스(106)상의 픽셀 억세스 트랜잭션에 의해 특정 픽셀이 L2 픽셀 캐쉬내에 포함되지 않으면, 특정 블럭이 L2 캐쉬 블럭에서 FBRAM 칩(71-82)의 L1 픽셀 캐쉬로 전송되기 전에 적합한 페이지가 L2 픽셀 캐쉬로 우선 전송되어야만 한다.
프레임 버퍼 메모리 장치 제어기(83)는 L1 픽셀 캐쉬내의 수정된 블럭이 FBRAM 칩(71-82)의 글로벌 버스들을 통해 L2 픽셀 캐쉬로 적절히 재기록되는 것을 보장한다. 또한, 프레임 버퍼 메모리 장치 제어기(83)는 L2 픽셀 캐쉬내의 페이지들이 FBRAM칩(71-82)의 DRAM 코어로 되돌려지는 것을 보장한다.
프레임 버퍼 메모리 장치 제어기(83)는 FBRAM 칩(71-82)내의 DRAM 뱅크 A-D및 상응하는 비디오 버퍼로부터 비디오 데이터를 전송하기 위해 ACP, VDX, 및 PRE 오퍼레이션을 포함하는 비디오 전송 시퀀스를 생성한다.
번역 회로(300)는 프레임 버퍼 제어 버스(106)를 통해 픽셀 억세스 트랜잭션을 수신한다. 프레임 버퍼 제어 버스(106)상의 각 픽셀 억세스 트랜잭션은 X 및 Y 주소, 오퍼레이션 코드(OP) 및 픽셀 데이터를 구비한다. 오퍼레이션 코드는 픽셀 쓰기 사이클, 픽셀 읽기-수정-쓰기 사이클, 픽셀 읽기 사이클, 레지스터 쓰기 사이클, 레지스터 읽기 사이클, 및 FBRAM 칩(71-82)를 위한 블럭 전송 기능을 특징지운다. X 및 Y 주소는 상응하는 픽셀 데이터에 대한 디스플레이 장치를 위한 좌표를 특징지운다.
번역 회로(300)는 수신된 X 및 Y 주소를 FBRAM(71-82)를 위한 억세스 파라미터로 변환한다. FBRAM 칩(71-82)를 위한 억세스 파라미터는 뱅크, 페이지, 컬럼(COL) 워드를 구비한다. 뱅크는 FBRAM 칩(71-82)의 뱅크 A 내지 D중의 하나를 특징지운다. 페이지는 선택된 뱅크내의 페이지를 특징지우고, 컬럼은 선택된 페이지의 부분을 특징지우고, 워드는 선택된 컬럼의 픽셀 부분을 특징지운다.
할당 회로(310)는 FBRAM 칩(71-82)의 내부 L1 및 L2 픽셀 캐쉬의 스테이트에 영향을 주는 스케쥴러에 대한 모든 요구의 누적된 상태를 추적한다. 할당 회로(310)는 L2 픽셀 캐쉬로 사상되는(mapped) DRAM 페이지의 로그(log), 뱅크의 로그, 페이지, 및 FBRAM 칩(71-82)의 L1 픽셀 캐쉬내의 각 엔트리를 위한 컬럼을 유지한다.
할당 회로(310)는 번역 회로(300)로부터의 뱅크, 페이지, 컬럼, 워드 및 오퍼레이션 코드를 수신하고, 특정 픽셀 억세스 트랜잭션을 수행하기 위해 FBRAM 칩(71-82)내의 L1 및 L2 픽셀 캐쉬의 상태에 어떤 변화가 요구되는지의 여부를 결정한다. 할당 회로(310)는 특정 픽셀이 L1 및 L2 픽셀 캐쉬내에 포함되는지의 여부를 결정하기 위해 번역 회로(300)로부터의 뱅크, 페이지, 및 컬럼 파라미터들을 사용한다.
할당 회로(310)는 스케쥴러 회로(320)로의 블럭 파라미터와 함께 번역 회로(300)로부터 수신된 뱅크, 페이지, 컬럼, 워드 및 오퍼레이션(OP) 코드 파라미터를 통과시킨다. 특정 픽셀 억세스 트랜잭션이 FBRAM 칩(71-82)의 L1 픽셀 캐쉬의 스테이트로 장치 변화를 요구하면, 할당 회로(310) 역시 상응하는 L1 캐쉬 요구(L1$ Req)를 스케쥴러 회로(320)로 전송한다. 특정 픽셀 억세스 트랜잭션이 FBRAM 칩(71-82)내의 L2 픽셀 캐쉬의 스테이트로 장차 변화를 요구하면, 할당 회로(310) 역시 상응하는 L2 캐쉬 요구(L2$ Req)를 스케쥴러 회로(320)로 전송한다.
할당 회로(310)로부터의 L1 캐쉬 요구는 FBRAM 칩(71-82)내의 L1 및 L2 픽셀 캐쉬사이의 전송을 특징지운다. 예를 들어, L1 캐쉬 요구는 L2 픽셀 캐쉬로부터 L1 픽셀 캐쉬로 데이터를 전송하는(RDB) 프리페치 오퍼레이션을 특징지우거나, 각 FBRAM 칩(71-82)내의 글로벌 버스를 통해 L1 픽셀 캐쉬에서 L2 픽셀 캐쉬까지 더티 픽셀 데이터를 다시 쓰는 재기록(writerback) 오퍼레이션을 특징지울 수 있다. 단일 픽셀 오퍼레이션은 재기록 오퍼레이션 후 프래페치 오퍼레이션을 생성할 수도 있다. 다른 일실시예에서, 재기록 및 프리페치는 스케쥴러 회로(320)에 대한 하나의 요구로 결합된다.
L2 캐쉬 요구는 각 FBRAM 칩(71-82)내의 DRAM 코어상에서의 오퍼레이션을 특징지운다. 예를 들어, 할당 회로(310)로부터의 L2 캐쉬 요구는 DRAM 코어를 위한 억세스 페이지(ACP) 오퍼레이션을 특징지우거나, DRAM 코어를 위한 프리페치(PRE) 오퍼레이션을 특징지운다. 또 다른 일실시예에 대하여, 할당 회로(310)는 스케쥴러 회로(320)로의 억세스 페이지 오퍼레이션을 특징지우고, 조정 회로(330)는 이 요구를(필요할 경우) 억세스 페이지가 뒤를 따르는 프리차지로 확장시킨다.
스케줄러 회로(320)는 할당 회로(310)으로부터의 할당 회로(310)로부터의 픽셀 억세스 블럭, 뱅크, 페이지, 컬럼 및 오퍼레이션 코드 파라미터를 L1 및 L2 캐쉬 요구에 따라 수신한다. 스케쥴러 회로(320)는 분리된 내부 선입선출(FIFO) 메모리 큐내에서 픽셀 억세스 파라미터, L1 캐쉬 요구, 및 L2 캐쉬 요구를 버퍼링한다. 분리된 메모리 큐는 독립적으로 동작해서, L2 캐쉬 요구를 L1 캐쉬 요구의 앞에 들어갈 수 있도록하고 L1 캐쉬 요구를 픽셀 억세스 파라미터 앞에 들어갈 수 있도록 한다.
조정 회로(330)는 이전에 디스패치된 DRAM 오퍼레이션 및 픽셀 오퍼레이션에 따라 DRAM 오퍼레이션 버스(110) 및 픽셀 오퍼레이션 버스(112)를 통해 각각 FBRAM 칩(71-82)의 현재 내부 상태의 로그를 보존한다. 조정 회로(330)는 FBRAM 칩(71-82)내의 L1 및 L2 픽셀 캐쉬의 현재 상태를 추적한다. 조정 회로(330)는 또한 가장 최근에 생성된 픽셀 오퍼레이션 5개를 나타내는 스코어보드를 픽셀 오퍼레이션 버스(112)를 통해 보존한다.
조정 회로(330)는 FBRAM 칩(71-82)내의 내부 타이밍 오퍼레이션을 실행하기 위한 인터록 회로의 내부 세트를 보존한다. 조정 회로(330)는 또한 읽기와 쓰기 사이클 사이의 전환동안에 적당한 라인 회전을 확실하게 하기 위해 랜더링 버스(98)에서의 사이클을 추적하는 상태기를 포함한다. 조정 회로(330)는 또한 FBRAM 칩(71-82)내의 글로벌 버스의 내부상태를 추적한다.
조정 회로(330)는 비디오 요구 발생기(340)로부터 비디오 전송 요구를 수신한다. 비디오 요구 발생기(340)로부터의 비디오 전송 요구는 비디오 출력 회로(84)로부터 수신된 타이밍 신호에 의해 비디오 오퍼레이션 버스(106)를 통해 결정된다. 각 비디오 억세스 요구는 또한 FBRAM 칩(71-82)중의 하나로부터의 QSF 플래그의 변환에 의해 결정된다. 각 비디오 억세스 요구는 FBRAM 칩(71-82)내의 비디오 전송 시퀀스가 필요한지의 여부를 나타낸다.
조정회로(330)는 FBRAM 칩(71-82)으로의 L1 캐쉬 요구, L2 캐쉬 요구, 및 비디오 전송 오퍼레이션 요구를 DRAM 오퍼레이션 버스를 통해 생성한다. 조정 회로(330)는 FBRAM 칩(71-82)이 DRAM 오퍼레이션을 수신할 준비가 되어있으면 스케쥴러 회로(320)로부터의 L1 캐쉬 요구, L2 캐쉬 요구, 및 DRAM 오퍼레이션 버스(112)에서의 DRAM 오퍼레이션으로써 발생되는 비디오 요구 발생기(340)로부터의 비디오 억세스 요구를 조정한다. 조정 회로(330)는 FBRAM 칩(71-82)이 픽셀 억세스 트랜잭션을 수신할 준비가 되어있으면, 픽셀 오퍼레이션 버스(110)를 통해 픽셀 포트 오퍼레이션으로서의 픽셀 억세스 트랜잭션 및 랜더링 버스(98)를 통해 데이터를 생성한다.
각 FBRAM 칩(71-82)은 DRAM 오퍼레이션 버스(110) 및 픽셀 오퍼레이션 버스(112)와 결합된 독립적인 제어 및 주소 핀의 세트들을 제공한다. 픽셀 오퍼레이션 버스(112)는 FBRAM 칩(71-82)내의 L1 픽셀 캐쉬로/로부터의 읽기 포트(204) 및 쓰기 포트(202)를 통해 픽셀의 읽기 및 쓰기를 제어한다. DRAM 오퍼레이션 버스(110)는 DRAM 코어와 L2 픽셀 캐쉬 사이의 데이터 전송을 제어하고, 글로벌 버스(60)는 L2 픽셀 캐쉬와 L1 픽셀 캐쉬 사이의 데이터 전송과 FBRAM 칩(71-82)내의 비디오 버퍼 상응되는 L2 픽셀 캐쉬로부터의 비디오 전송을 전송한다.
제4도는 번역 회로(300)에 의해서 프레임 버퍼 제어 버스(106)를 통해 수신된 X 및 Y 픽셀 주소의 FBRAM 칩(71-82)을 위한 뱅크, 페이지, 블럭, 및 워드 파라미터로의 사상을 설명한다. 보여진 예는 1280×1024 해상도 디스플레이를 위한 스크린 사상을 설명한다. 뱅크 A 내지 D를 사상하기 위해서는 2차원 패턴이 사용되어, 이웃한 페이지를 표현하는데는 언제나 다른 뱅크를 사용하고, 새로운 뱅크를 프리패치하고 이전의 뱅크를 버리는데 시간이 걸린다는 것을 주의하라. 번역 회로(300)는 아래의 표I에 개략적으로 설명된 변환 기능을 수행하는 결합 로직 세트를 구비한다.
제5도는 일실시예를 위한 할당 회로(910)을 나타낸다. 할당 회로(310)는 L1 캐쉬 요구 및 L2 캐쉬 요구가 번역 회로(300)로부터 입력되는 픽셀 억세스를 필요로하는지의 여부를 결정한다. 할당 회로(310)는 L1 캐쉬 테이블(L1$Table), L2 캐쉬 테이블(L2$Table), 및 가장 오래전에 할당된 블럭 레지스터(400)을 보존한다.
L2 캐쉬 테이블은 FBRAM 칩(71-82)의 뱅크 A 내지 D를 위한 엔트리를 제공하는데, 여기서 뱅크 A 내지 D는 Bank0 내지 Bank3에 상응된다. L2 캐쉬 테이블내의 각 엔트리는 유효 비트(valid bit) 및 페이지 필드(page field)를 포함한다. 유효비트는 상응되는 뱅크 A 내지 D로부터의 페이지가 L2 픽셀 캐쉬로 사상되는지의 여부를 나타내고, 페이지 필드는 사상된 DRAM 뱅크의 페이지를 특징지운다.
일실시예에서, 할당 회로(310)는 번역 회로(300)로부터 입력되는 픽셀 억세스 파라미터의 각 세트를 위한 L2 캐쉬 테이블을 가리킨다. 할당 회로(310)는 번역 회로(300)로부터의 뱅크 파라미터를 가진 L2 캐쉬 테이블을 가리킨다. 할당 회로(310)는 지정된 L2 캐쉬 테이블 엔트리의 페이지 필드와 번역 회로(300)으로부터 입력되는 페이지 파라미터와 비교한다. 만약 입력되는 페이지 파라미터가 지정된 L2 캐쉬 테이블 엔트리의 페이지 필드와 매치되고, 상응되는 유효 비트가 세트되면, 할당 회로(310)는 스케쥴러 회로(320)로 통과되는 픽셀 억세스 파리미터로서의 L2 캐쉬 요구를 발생하지 않는다. 반면에, 할당 회로(310)는 스케쥴러 회로(320)로의 적당한 L2 캐쉬 요구를 발생하고 번역회로(300)로부터 입력되는 페이지 파라미터로의 적당한 L2 캐쉬 테이블 엔트리를 세트한다.
다른 일실시예에서, L2 캐쉬 테이블내에는 없지만 L1 캐쉬 테이블내에서는 히트(hit)하는 번역기로부터 입력되는 요구는 L2 캐쉬 요구를 스케쥴하기 위해 할당 회로를 구동시키지 않는다. 대신에, L2 캐쉬 버리기를 필요로하는 번역기로의 다음 요구는 블럭을 버리기 위한 L1 요구를 발생하기전에 페이지를 스케쥴하기 위한 L2 요구를 우선 생성한다.
L1 캐쉬 테이블내의 각 엔트리는 유효 비트(V), 더티 비트(D), 쓰기 단독 비트(write only bit)(W), 상태 비트(S), 뱅크 필드, 페이지 필드, 및 컬럼 필드를 포함한다. 더티 비트는 상응되는 L1 픽셀 캐쉬의 블럭은 L1 블럭이 재할당될 수 있기전에 L2 픽셀 캐쉬에 다시 쓰여져야만 하는 업데이트된 픽셀을 포함하는 것을 나타낸다. 유효 비트는 L2$로부터의 블럭이 상응되는 L1$ 블럭으로 사상되는지의 여부를 나타낸다. 상태 비트는 상태 또는 스테이트리스 쓰기 오퍼레이션이 상응되는 L1 픽셀 캐쉬의 블럭을 필요로한다는 것을 나타낸다. 쓰기 단독 비트(write only bit)는 글로벌 버스 읽기 트랜젝션이 상응되는 L1 픽셀 캐쉬의 블럭을 필요로하지 않는다는 것을 나타낸다.
일실시예에서, 할당 회로(300)는 L1 픽셀 캐쉬가 언제나 L2 픽셀 캐쉬의 부분집합이라는 것을 보증한다. L1 캐쉬 테이블은 완전히 연관된다. 할당 회로(310)는 번역 회로(300)로부터 입력되는 뱅크 페이지 및 컬럼 파라미터를 L1 캐쉬 테이블내의 여섯개의 모든 엔트리와 동시에 비교한다. 만약에 입력되는 픽셀 억세스 파라미터가 L1 캐쉬 테이블내의 엔트리에 상응되지 않으면, 가장 오래전에 할당된 카운터(400)에 의해 지시되는 L1 캐쉬 테이블내의 엔트리는 할당 회로(310)에 의해 버려진다. 지정된 L1 캐쉬 테이블 엔트리의 3비트 인덱스(index)는 번역 회로(300)로부터 수신된 잔존 픽셀 억세스 파라미터에 따라 L1 캐쉬 요구로서 스케쥴러 회로(320)로 전송된다. 가장 오래전에 할당된 카운터(400)는 모듈러 6으로 증가된다. 가장 오래전에 할당된 카운터(400)에 의해 지정된 L1 캐쉬 테이블내의 엔트리가 더티하다면, 할당 회로(310)는 더티 블럭을 다시 쓰기 위해 스케쥴러 회로(320)로의 L1 캐쉬 요구를 생성한다. 게다가, L1 캐쉬 테이블의 지정된 엔트리는 깨끗하게 세트된다.
다른 일실시예에서, L1 픽셀 캐쉬는 언제나 L2 픽셀 캐쉬의 부분집합은 아니다. 다시 한번, L1 캐쉬 테이블은 완전히 연합된다. 할당 회로(310)는 번역 회로(300)로부터 입력되는 뱅크 페이지 및 컬럼 파라미터를 L1 캐쉬 테이블내의 여섯개의 모든 엔트리와 동시에 비교한다. 입력되는 픽셀 억세스 파라미터가 L1 캐쉬 테이블내의 엔트리에 상응되지 않으면, 가장 오래전에 할당된 카운터(400)에 의해 지시되는 L1 캐쉬 테이블내의 엔트리는 할당 회로(310)에 의해 할당해제(deallocated) 된다. 만약, 가장 오래전에 할당된 카운터(400)에 의해 지정된 L1 캐쉬 테이블내의 엔트리가 더티하면, 할당 회로(310)는 더티 블럭을 다시 쓰기위헤 스케쥴러 회로(320)로의 L1 캐쉬 요구를 생성한다. 만약 버려진 L1 블럭에 의해 사용되는 L2 페이지가 L2 테이블내에서 유효하지 않으면, 오래된 페이지를 버리고 필요한 페이지를 페치하기 위한 L2 요구는 스케쥴러로 전송된다. 게다가, L1 캐쉬 테이블의 지정된 엔트리는 깨끗하게 세트된다. 일단 할당해제된 블럭이 버려지면, 지정된 L1 캐쉬 테이블의 3비트 인덱스는 번역 회로(300)로부터 수신된 잔존 픽셀 억세스 파라미터에 따라 L1 캐쉬 페치 요구로서 스케쥴러 회로(320)로 전송된다. 가장 오래전에 할당된 카운터(400)는 모듈러 6으로 증가된다. L1 캐쉬 페치 요구에 의해 사용된 페이지는 L2 테이블내에서는 유효하며, 필요한 페이지를 페치하기 위한 L2 요구는 스케쥴러 회로(320)로 전송된다.
다른 예들은 가장 오래전에 할당된 블럭 레지스터 대신에 가장 오래전에 사용된 블럭 레지스터를 사용할 수도 있다.
선택될 수 있는 다른 실시예에서, 번역 회로(300)로부터 할당 회로(310)로의 요구는 큐에 저장된다. 캐쉬 엔트리가 버리기에 가장 적당한 것인지를 결정하기 위한 선택은 어떤 오퍼레이션이 실행을 위해 이미 스케쥴되었는지를 살펴볼 수 있는 것뿐만 아니라, 들어올 픽셀에 의해 곧 요구될 블럭을 버리는 것을 피하기 위해 입력되는 픽셀 오퍼레이션의 큐를 살펴볼 수 있다.
할당 회로(310)는 L2 픽셀 캐쉬로부터의 재기록 오퍼레이션이 필요한지의 여부를 결정하기 위해 L1 캐쉬 테이블내의 지정된 엔트리의 더티 비트를 체크한다. 상응되는 S 비트는 비마스크된 쓰기 블럭이나 마스크된 쓰기 블럭이 L1 픽셀 캐쉬로부터 L2 픽셀 캐쉬로의 재기록을 위해 사용되는지의 여부를 가리킨다.
제6도는 일실시예를 위한 스케쥴러 회로(320)를 설명한다. 스케쥴러 회로(320)는 블럭, 뱅크, 페이지, 칼럼, 오퍼레이션 코드, 및 할당 회로로부터의 픽셀 데이터 파라미터를 포함하는 픽셀 억세스 파라미터를 수신하고, 픽셀 큐내에 픽셀 억세스 파라미터를 놓는다. 스케쥴러 회로(320)는 할당 회로(310)로부터의 L1 캐쉬 요구를 수신하고, L1 캐쉬 큐(L1$ Queue)내에 L1 캐쉬 요구를 놓는다. 스케쥴러 회로(320)는 할당 회로(310)로부터의 L2 캐쉬 요구를 수신하고, L2 캐쉬 큐(L2$ Queue)내에 L2 캐쉬 요구를 놓는다. 픽셀 큐, L1 캐쉬 큐, L2 캐쉬 큐는 각각 선입선출 버퍼 메모리를 구비한다.
스케쥴러 회로(320)는 L2 캐쉬 요구보다는 다른 뱅크로의 관계없는 L1 캐쉬 요구전에 L2 캐쉬 요구를 밀어내고, L1 캐쉬 요구보다는 다른 블럭으로의 관계없는픽셀 억세스 요구전에 L1 캐쉬 요구의 밀어내기를 시도한다. 픽셀 큐는 L1 캐쉬 큐보다 깊고, 차례로 상응되는 요구 앞으로 밀어내기 위해 L2 캐쉬 큐보다 깊다. 픽셀 큐, L1 큐, 및 L2 캐쉬 큐는 독립적으로 동작해서, L2 캐쉬 요구를 이전에 수신된 L1 큐 요구 및 픽셀 억세스 요구 앞으로 이동시키는 것이 가능해진다. 이와 유사하게, L1 캐쉬 요구는 픽셀 큐내에서 이전에 수신된 픽셀 억세스 앞으로 이동할 수 있다.
이 "앞으로 밀어내기(push ahead)"는 대부분의 L2 오퍼레이션이 L1 오퍼레이션을 실행하는 것보다 오래 걸리고 대부분의 L1 오퍼레이션이 픽셀 오퍼레이션을 실행하는 것보다 오래 걸리기 때문에 매우 유리하다. 한편, L2 페이지 영역은 픽셀 영역보다 큰 L1 블럭 영역보다 크다. 결과적으로, L1 요구에 대해 다수의 픽셀 요구가, L2 요구에 대해 다수의 L1 요구가 일반적으로 존재한다. 매우 많은 L1 및 픽셀 요구 앞에 상대적으로 느린 L2 및 L1 요구를 밀어냄으로써, 매우 많은 픽셀 요구를 지원하기 위해 필요하기전에 속도가 느린 요구가 실행될 기회가 크게 증가하여, 픽셀 요구를 스톨할 필요가 없어진다.
스케쥴러 회로(320)는 L2 캐쉬 요구가 같은 뱅크 및 페이지로의 관련된 L1 캐쉬 요구 앞으로 L2 캐쉬 요구로서 밀어내는 것을 막는다. 스케쥴러 회로(320)는 할당 회로(310)로부터 입력되는 각 L2 캐쉬 요구의 뱅크 파라미터와 각 L1 캐쉬 큐 엔트리의 뱅크 필드를 비교한다. 만약 뱅크 필드가 어떤 유효 L1 캐쉬 큐 엔트리와 매치된다면, 입력되는 L2 캐쉬 요구가 스케쥴러 회로(320)에 의해 스톨된다. 상응되는 모든 L1$ 큐 엔트리가 다시 기록되기 전에 L2$ 엔트리가 변화되는 것을 막기위해 캐쉬 요구의 뱅크 필드가 유효 L1$ 큐 엔트리의 뱅크 필드와 매치되면, 스케쥴러 회로(320)는 L2 캐쉬 요구를 스톨한다.
스케쥴러 회로(320)는 L1 캐쉬 요구가 L1 캐쉬 요구로서 같은 블럭으로 관련된 픽셀 억세스 요구 앞으로 오는 것을 막는다. 스케쥴러 회로(320)는 할당 회로(310)로부터 각각 입력되는 L1 캐쉬 요구의 블럭 파라미터와 픽셀 큐내의 각 엔트리의 블럭 필드와 비교한다. 만약 입력되는 파라미터가 픽셀 큐내의 어떤 엔트리와도 매치되면, 입력되는 L1 캐쉬 요구는 스케쥴러 회로(320)에 의해 스톨된다.
제7도는 일실시예를 위한 조정 회로(330)를 설명한다. 조정 회로(330)는 L2 캐쉬 태그(L2$ TagS) 세트, L1 캐쉬 태그(L1$ TagS) 세트, 스코어보드, 및 인터록 세트를 유지하고, 인터페이스 상태기를 포함한다. 조정 회로(330)는 오퍼레이션 버스(110, 112)로 각 사이클 동안에 FBRAM 칩(71-82)으로의 전송을 위한 하나의 DRAM 오퍼레이션 및 하나의 픽셀 오퍼레이션을 선택한다. 조정 회로(330)는 DRAM 및 픽셀 오퍼레이션이 적절히 발생되도록하기 위해 FBRAM 칩(71-82)의 내부 상태의 자세한 모델을 보존한다.
L1 캐쉬 태그 및 L2 캐쉬 태그는 FBRAM 칩(71-82)내의 L1 및 L2 픽셀 캐쉬의 상태를 나타낸다. 스코어보드는 FBRAM 칩(71-82) 내부의 픽셀 ALU 파이프라인의 상태를 추적한다. 인터록은 DRAM 오퍼레이션을 위한 FBRAM 칩(71-82)의 하드웨어 타이밍 요구를 추적한다. 인터페이스 상태기는 적당한 라인 회전을 유지하고 FBRAM 칩(71-82)의 데이터 핀에 확장된 읽기 사이클을 제공한다.
조정 회로(330)는 스케쥴러 회로(320)로부터 입력되는 픽셀 억세스 파라미터와 스코어보드내의 정보를 비교한다. 스코어보드내의 정보는 FBRAM 칩(71-82)의 픽셀 ALU들내의 현재 실행중인 오퍼레이션들이 입력되는 픽셀 억세스 요구를 방해하지 않도록 한다. 지정된 픽셀 데이터가 FBRAM 칩(71-82)의 L1 픽셀 캐쉬내에서 유효하도록 하기 위해, 입력되는 픽셀 억세스 파라미터들은 또한 L1 캐쉬 태그와 비교된다. 데이터 버스가 사용될 수 있는지를 결정하기 위해, 입력되는 픽셀 억세스 오퍼레이션 필드는 인터페이스 상태기의 현재 상태와 비교된다. 스코어보드와의 충돌, L1 캐쉬 태그와의 충돌, 또는 인터페이스 상태기내에서의 충돌이 조정 회로(330)에 의해 검출되면, 스케쥴러 회로(320)로부터 입력되는 픽셀 억세스 파라미터는 스톨된다.
조정 회로(330)는 요구되는 DRAM이 L2 픽셀 캐쉬내에서 유효하도록 하기 위해 스케쥴러 회로(320)로부터 입력되는 L1 캐쉬 요구는 L2 캐쉬와 비교된다. 조정 회로(330)는 L1 캐쉬 블럭이 L2 픽셀 캐쉬로 전송되기전에 지정된 L1 캐쉬 블럭으로의 모든 진행중인 픽셀 쓰기가 완성되도록 하기 위해, 입력되는 L1 캐쉬 읽기 요구와 스코어보드를 비교한다. 조정 회로(330)는 FBRAM 칩(71-82)의 글로벌 버스가 비지(busy)하지 않도록 하기 위해서, 입력되는 모든 L1 캐쉬 요구를 인터록과 비교한다. 더우기, 조정 회로(330)는 스케쥴러 회로(320)로부터 입력되는 L2 캐쉬 요구를 인터록과 비교한다.
제8도는 조정 회로(330)내의 L2 캐쉬 태그를 나타낸다. L2 캐쉬 태그의 각 엔트리는 상응되는 DRAM 뱅크 A 내지 D의 상태를 나타내는 비트를 포함한다. 그 비트는 DRAM 뱅크 A 내지 D가 억세스되는지 또는 프리차지되는지를 나타낸다. 더우기, L2 캐쉬 태그의 각 엔트리는 페이지 필드를 포함한다. 각 L2 캐쉬 태그 엔트리의 상태 비트는 FBRAM 칩(71-82)내의 DRAM 오퍼레이션의 지정된 부분집합이 수행되는지를 나타내는 억세스 페이지 오퍼레이션에 의해 세트된다. DRAM 오퍼레이션의 지정된 세트는 듀플리케이트 페이지, 읽기 블럭, 마스크 쓰기 블럭, 비마스크 쓰기 블럭, 비디오 전송 및 프리차지를 포함한다. 상태 비트는 프리차지 오퍼레이션에 의해 클리어되고 억세스 페이지나 프리차지 오퍼레이션이 수행될 수 있다는 것을 나타낸다.
제9도는 일실시예를 위한 조정 회로(330)내의 L1 캐쉬 태그의 형태를 설명한다. L1 캐쉬 태그는 FBRAM 칩(71-82)를 위한 좀더 최근 상태 정보를 제공하지만 할당 회로(310)내의 L1 캐쉬 테이블과 유사한 정보를 제공한다.
제10도는 조정 회로(330)내의 스코어보드의 형태를 설명한다. 스코어보드는 FBRAM 칩(71-82)내의 파이프라인 픽셀 ALU들을 통해 플로우하는 픽셀 억세스 오퍼레이션을 추적한다. 스코어보드는 이전의 다섯 사이클동안에 랜더링 버스(98)를 통해 FBRAM 칩(71-82)으로 발생된 픽셀 오퍼레이션의 블럭 및 워드 주소의 추적을 유지한다. 조정 회로(330)는 이전에 디스패치된 픽셀이 스코어보드에 나타낸 픽셀 ALU의 파이프라인을 통해 여전히 전해지는 같은 블럭 및 워드를 기록한다면, L1 픽셀 캐쉬로부터 읽는 픽셀 억세스 오퍼레이션을 스톨한다.
스코어보드는 또한 FBRAM 칩(71-82)내의 픽셀 ALU 오퍼레이션을 L1과 L2(재기록 또는 UWB, MWB) 캐쉬 사이의 전송과 동등하게 한다. 지정된 L1 캐쉬 블럭으로의 픽셀 쓰기 오퍼레이션이 스코어보드에 나타낸 것과 같은 픽셀 ALU의 파이프라인을 통해 전해지면, L1과 L2 캐쉬 사이의 전송은 조정 회로에 의해 스톨된다.
각 스코어보드 엔트리는 유효 비트, 블럭 필드, 및 워드 필드를 포함한다. 조정 회로(330)는 픽셀 쓰기 오퍼레이션이 FBRAM 칩(71-82)으로 발생될 때 엔트리의 유효 비트를 세트한다. 상응되는 엔트리의 블럭 및 워드 주소는 스케쥴러 회로(320)로부터 수신되는 상응되는 픽셀 억세스 오퍼레이션을 위한 파라미터로부터 복사된다. 조정 회로(330)는 매 사이클마다 스코어보드의 엔트리를 앞선다.
조정 회로(330)는 스케쥴러 회로(320)로부터 각각 입력되는 픽셀 억세스 오퍼레이션을 스코어보드내의 다섯개의 모든 엔트리와 비교한다. 입력되는 억세스 오퍼레이션이 스코어보드내의 L1 캐쉬 블럭으로부터의 읽기를 지정하고, 상응되는 유효 비트를 세트하고, 스코어보드 엔트리의 상응되는 블럭 및 워드 필드가 매치된다면, 입력되는 픽셀 억세스 오퍼레이션은 스톨된다. 스코어보드는 L1 픽셀 캐쉬로부터의 읽기를 필요로하지않는 입력되는 픽셀 억세스 오퍼레이션에는 무시된다. 더우기, 조정 회로(330)는 L1으로부터 L2 픽셀 캐쉬로의 전송을 지정하는 각 입력되는 L1$ 캐쉬 요구는 스코어보드의 각 엔트리의 유효 및 블럭 필드와 비교된다. 이런 오퍼레이션은 비마스크 쓰기 블럭 오퍼레이션 및 마스크 쓰기 블럭 오퍼레이션을 포함한다. 스코어보드내의 엔트리의 블럭 필드가 입력되는 요구와 매치되고, 상응되는 유효 비트가 세트되면, L1 캐쉬 요구는 조정 회로(330)에 의해 스톨된다.
인터록들은 FBRAM 장치의 타이밍 지정을 실행하기 위해 제공된다. 조정자내의 인터록들은 카운터 세트를 구비한다. 그것들은 각각의 DRAM 뱅크 A 내지 D를 위한 두개의 인트러뱅크 카운터, 한개의 인트러뱅크 카운터, 및 한개의 글로벌 버스카운터를 포함한다. 이들 카운터들은 상응되는 DRAM 오퍼레이션이 FBRAM으로 발생되고 각 사이클이 카운트 다운될 때 어떤 값으로 로드된다. DRAM 오퍼레이션의 형태는 상응되는 카운터가 0이 아니면 스톨된다.
인트러뱅크 기간 카운터는 ACP 오퍼레이션이 카운터의 뱅크로 발생될 때 로드된다. 뱅크로의 프리차지 오퍼레이션은 뱅크의 인트러뱅크 프리차지 카운터가 0이 아니면 스톨된다.
인트러뱅크 카운터가 ACP, DUP, 또는 VDX DRAM 오퍼레이션이 FBRAM으로 발생될때마다 로드된다. ACP, DUP, VCX, 및 PRE DRAM 오퍼레이션은 인터러뱅크가 0이 아니면 스톨된다.
글로벌 버스 카운터는 RDB, UWB, 또는 MWB DRAM 오퍼레이션이 FBRAM으로 발생될때마다 로드된다. 글로벌 버스 카운터가 0이 아니면 RDB, UWB, 및 MWB DRAM 오퍼레이션을 스톨한다.
다른 인터록은 글로벌 버스를 통해 전송되는 L1 캐쉬 블럭으로의 픽셀 오퍼레이션을 스톨한다.
제11도는 조정 회로(330)내의 인터페이스 상태기를 설명한다. 인터페이스 상태기는 프레임 버퍼 메모리 장치 제어기(83)와 FBRAM 칩(71-82)사이의 양방향 버스(98)의 오퍼레이션을 제어한다. 인터페이스 상태기는 랜더링 버스(98)의 읽기 트랜잭션이 한 사이클을 필요로한다는 사실을 설명한다. 인터페이스 상태기는 또한 랜더링 버스(98)를 통해 유휴(idle) 사이클이 읽기 오퍼레이션과 그후의 읽기 오퍼레이션 사이에 삽입되도록 한다.
비디오 요구 발생기(340)는 비디오 출력 회로(84)로부터의 비디오 오퍼레이션 버스를 통해 타이밍 신호를 수신한다. 비디오 요구 발생기(340)는 또한 FBRAM 칩(71-82)중의 하나로부터 QSF 신호도 수신한다. 비디오 오퍼레이션 버스(108)에서의 타이밍 신호는 비디오 라인 세트(104)를 통해 비디오 출력 회로(84)에 의해 유도되는 디스플레이 장치를 위한각 프레임 및 각 스캔 라인의 시작을 나타낸다. QSF 신호는 비디오 전송 오퍼레이션이 FBRAM 칩(71-82)으로 발생되어야만 할 때를 나타낸다.
비디오 요구 발생기(340)는 모드 필드, 뱅크 필드, 및 페이지 필드를 구비하는 비디오 전송 요구를 조정 회로(330)로의 스캔라인 주소 필드에 따라 생성한다. 조정 회로(330)는 FBRAM 칩(71-82)을 위한 DRAM 오퍼레이션 시퀀스를 발생하기 위해 비디오 전송 요구를 사용한다. DRAM 오퍼레이션들은 지정된 뱅크 및 페이지로의 억세스 페이지 오퍼레이션, 지정된 뱅크 및 스캔라인으로의 비디오 전송 오퍼레이션, 및 지정된 뱅크로의 프리차지 오퍼레이션을 구비한다.
앞에서의 설명에서, 본발명은 현재 바람직하고 대체할 수 있는 실시예에 의하여 설명되었지만, 이 기술분야에서 통상의 지식을 가진 자는 본발명의 정신과 분야로부터 벗어남 없이 변경과 대체로 본발명이 실행될 수 있다는 것을 인지할 것이다. 따라서, 명세서와 도면은 제한적 의미보다는 설명적 의미에서 주목되어야 할 것이다.
제1도는 일련의 FBRAM 칩, 랜더링 프로세서, 프레임 버퍼 메모리장치 제어기, 및 비디오 출력 회로를 구비하는 그래픽 부시스템을 나타내는 도면.
제2도는 DRAM 어레이, 한쌍의 비디오 버퍼, 픽셀 버퍼, 및 픽셀 ALU를 구비하는 일 실시예를 위한 FBRAM 칩을 나타내는 도면.
제3도는 번역(translator) 회로, 할당 회로, 스케쥴러 회로, 조정 회로, 비디오 요구 발생기를 구비하는 일 실시예를 위한 프레임 버퍼 메모리 장치 제어기를 나타내는 도면,
제4도는 프레임 버퍼 제어 버스를 통해 수신되는 X 및 Y 픽셀 어드레스를 번역 회로에 의해 FBRAM 칩을 위한 뱅크(bank), 페이지(page), 블럭(block), 및 워드(world) 파라미터(parameter)로의 사상을 나타내는 도면,
제5도는 L1 캐쉬 요구 및 L2 캐쉬 요구가 번역 회로로부터 입력되는 픽셀 억세스를 위해 요구되는지의 여부를 결정하는 할당 회로를 나타내는 도면.
제6도는 픽셀 큐(queue)내에 픽셀 억세스 파라미터를 놓고, L1 캐쉬 큐 (L1$ 큐)내애 L1 캐쉬 요구를 놓고, L2 캐쉬 큐 (L2$ 큐)내에 L2 캐쉬 요구를 놓는 스케쥴러 회로를 나타내는 도면,
제7도는 일련의 L2 캐쉬 태그(L2$ 태그), 일련의 L1 캐쉬 태그 (L1$태그),스코어보드(scoreboard), 인터록(interlock)을 유지하고 인터페이스 상태기(interface state machine)를 포함하는 조정회로를 나타내는 도면,
제8도는 DRAM 뱅크가 억세스되는지 프리차지(precharge)되는지의 여부를 나타내는 상응하는 DRAM 뱅크의 상태를 나타내는 비트를 포함하는 조정 회로내의 L2 캐쉬 태그를 나타내는 도면,
제9도는 일실시예를 위한 조정 회로내의 L1 캐쉬 태그의 형태를 나타내는 도면,
제10도는 FBRAM 칩내의 파이프라인 픽셀 ALU들을 통해 처리되는 픽셀 억세스 오퍼레이션을 추적하는 조정 회로내의 스코어보드의 형태를 나타내는 도면, 및
제11도는 프레임 버퍼 메모리 장치 제어기와 FBRAM 칩 사이의 양방향 버스의 오퍼레이션을 제어하는 조정 회로내의 인터페이스 상태기를 설명하는 도면.
*도면 주요부분에 대한 부호의 설명
52, 54 : 비디오 버퍼 56 : 픽셀 버퍼
58 : 픽셀 ALU 60 : 글로벌 버스
62 : 다중화기 70 : 랜더링 프로세서
83 : 프레임 버퍼 메모리 장치 제어기 84 : 비디오 출력 회로
71~82 : FBRAM 86 : 그래픽 부시스템
106 : 프레임 버퍼 제어 버스 108 : 비디오 오퍼레이션 버스
110 : DRAM 오퍼레이션 버스 112 : 픽셀 오퍼레이션 버스
114 : 비디오 포트 제어기 116 : DRAM 제어기
118 : 픽셀 포트 제어기 134 : 비디오 버스
162 : 픽셀 입력 데이터 202 : ALU 쓰기 포트
204 : ALU 읽기 포트 300 : 번역 회로
310 : 할당 회로 302 : 스케쥴러 회로
330 : 조정 회로 340 : 비디오 요구 발생기
400 : 블럭 레지스터

Claims (15)

  1. 적어도 한 프레임 버퍼 메모리 장치내에 사상된 픽셀 데이터에 대하여 타겟된 픽셀 억세스 트랜잭션을 수신하기 위해 결합되고, 이전 픽셀 억세스 트랜잭션을 기반으로 한 프레임 버퍼 메모리 장치의 캐쉬 스테이트를 결정하기 위한 회로, 및 캐쉬 전송 오퍼레이션을 스케쥴링하고 프레임 버퍼 메모리 장치로 픽셀 억세스 트랜잭션을 디스패치하기전에 프레임 버퍼 메모리 장치로 캐쉬 전송 오퍼레이션을 디스패치하기 위한 회로를 구비하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  2. 제1항에 있어서, 상기 프레임 버퍼 메모리 장치의 상기 캐쉬 스테이트는,
    상기 픽셀 데이터가 상기 프레임 버퍼 메모리 장치내의 레벨1 픽셀 캐쉬로 사상되는지의 여부를 나타내는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  3. 제2항에 있어서, 상기 캐쉬 전송 오퍼레이션은,
    상기 픽셀 데이터가 상기 레벨1 픽셀 캐쉬로 사상되지 않는 것을 상기 캐쉬 스테이트가 나타내면 상기 프레임 버퍼 메모리 장치로 하여금 상기 픽셀 데이터를 상기 레벨1 픽셀 캐쉬로 사상시키기도록 하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  4. 제3항에 있어서, 상기 캐쉬 전송 오퍼레이션은,
    상기 프레임 버퍼 메모리 장치로 하여금 상기 프레임 버퍼 메모리 장치내의 상기 레벨1 픽셀 캐쉬와 레벨2 픽셀 캐쉬 사이의 상기 픽셀 데이터를 전송하도록 하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  5. 제1항에 있어서, 상기 프레임 버퍼 메모리 장치의 캐쉬 스테이트는, 상기 픽셀 데이터가 상기 프레임 버퍼 메모리 장치내의 레벨2 픽셀 캐쉬로 사상되는지의 여부를 나타내는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  6. 제5항에 있어서, 상기 캐쉬 전송 오퍼레이션은,
    상기 픽셀 데이터가 상기 레벨2 픽셀 캐쉬로 사상되지 않는 것을 상기 캐쉬상태가 나타내면, 상기 프레임 버퍼 메모리 장치로 하여금 상기 픽셀 데이터를 상기 레벨2 픽셀 캐쉬로 사상시키도록 하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  7. 제6항에 있어서, 상기 캐쉬 전송 오퍼레이션은,
    상기 프레임 버퍼 메모리 장치내의 상기 프레임 버퍼 메모리 장치로 하여금 상기 레벨2 픽셀 캐쉬와 다이나믹 랜덤 억세스 메모리 코어 사이의 상기 픽셀 데이터를 전송하도록 하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  8. 제7항에 있어서, 상기 캐쉬 전송 오퍼레이션은,
    상기 프레임 버퍼 메모리 장치로 하여금 상기 프레임 버퍼 메모리 장치내의 상기 레벨2 픽셀 캐쉬로부터 비디오 버퍼로 상기 픽셀 데이터를 전송하도록 하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  9. 적어도 하나의 프레임 버퍼 메모리 장치내에 사상된 픽셀 데이터에 대하여 타겟된 픽셀 억세스 트랜잭션의 시퀀스를 수신하기 위해 결합되고, 픽셀 억세스 트랜잭션의 상기 시퀀스를 조사하기 위한 회로, 및 픽셀 억세스 트랜잭션의 상기 시퀀스를 수용하기 위해 상기 프레임 버퍼 메모리 장치내의 일련의 캐쉬 전송 오퍼레이션을 스케쥴링하기 위한 회로를 갖으며, 캐쉬 전송 오퍼레이션들이 상기 프레임 버퍼 메모리 장치로의 픽셀 억세스 트랜잭션의 상기 시퀀스내에 스톨하는 것을 금지하도록 상기 프레임 버퍼 메모리 장치로의 픽셀 억세스 트랜잭션에 앞서서 상기 프레임 메모리 장치로의 상기 캐쉬 전송 오퍼레이션을 디스패치하기 위한 회로를 구비하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  10. 제9항에 있어서, 상기 캐쉬 전송 오퍼레이션은,
    상기 프레임 버퍼 메모리 장치로 하여금, 상기 프레임 버퍼 메모리 장치내의 레벨1 픽셀 캐쉬로 상기 픽셀 데이터를 사상시키도록 하는 레벨1 캐쉬 오퍼레이션을 구비하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  11. 제10항에 있어서, 상기 레벨1 캐쉬 오퍼레이션은,
    상기 프레임 버퍼 메모리 장치내의 상기 프레임 버퍼 메모리 장치로 하여금 상기 레벨1 픽셀 캐쉬와 레벨2 픽셀 캐쉬 사이에 상기 픽셀 데이터를 전송하도록 하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  12. 제11항에 있어서, 상기 캐쉬 전송 오퍼레이션은,
    상기 프레임 버퍼 메모리 장치로 하여금 상기 픽셀 데이터를 상기 레벨2 픽셀 캐쉬로 사상시키도록 하는 레벨2 캐쉬 오퍼레이션을 구비하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  13. 제12항에 있어서, 상기 레벨2 캐쉬 오퍼레이션은,
    상기 프레임 버퍼 메모리 장치내의 상기 프레임 버퍼 메모리 장치로 하여금 상기 레벨2 픽셀 캐쉬와 다이내믹 랜덤 억세스 메모리 코어 사이에 상기 픽셀 데이터를 전송하도록 하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  14. 제13항에 있어서, 상기 레벨2 캐쉬 오퍼레이션은,
    상기 레벨1 캐쉬 오퍼레이션에 앞서서 디스패치되고, 상기 레벨1 캐쉬 오퍼레이션은 상응하는 픽셀 억세스 트랜잭션에 앞서서 디스패치되는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
  15. 제9항에 있어서, 상기 캐쉬 전송 오퍼레이션은,
    상기 프레임 버퍼 메모리 장치로 하여금 상기 프레임 버퍼 메모리 장치내의 상기 레벨2 픽셀 캐쉬로부터 비디오 버퍼로 상기 픽셀 데이터를 전송하도록 하는 비디오 전송 오퍼레이션을 구비하는 것을 특징으로 하는 프레임 버퍼 메모리 장치 제어기.
KR1019950021726A 1994-07-18 1995-07-18 프레임버퍼랜덤억세스메모리장치를위한인터페이스제어기 KR100346817B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/276,814 US5579473A (en) 1994-07-18 1994-07-18 Interface controller for frame buffer random access memory devices
US08/276814 1994-07-18

Publications (1)

Publication Number Publication Date
KR100346817B1 true KR100346817B1 (ko) 2002-11-30

Family

ID=23058173

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950021726A KR100346817B1 (ko) 1994-07-18 1995-07-18 프레임버퍼랜덤억세스메모리장치를위한인터페이스제어기

Country Status (4)

Country Link
US (1) US5579473A (ko)
EP (1) EP0696023A3 (ko)
JP (1) JP3828184B2 (ko)
KR (1) KR100346817B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10482033B2 (en) 2016-03-24 2019-11-19 Samsung Electronics Co., Ltd Method and device for controlling memory

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5946005A (en) * 1995-09-21 1999-08-31 Industrial Technology Research Institute Computer graphics memory architecture having a graphics processor and a buffer
US5761720A (en) * 1996-03-15 1998-06-02 Rendition, Inc. Pixel engine pipeline processor data caching mechanism
US5781201A (en) * 1996-05-01 1998-07-14 Digital Equipment Corporation Method for providing improved graphics performance through atypical pixel storage in video memory
US5987567A (en) * 1996-09-30 1999-11-16 Apple Computer, Inc. System and method for caching texture map information
JP2001505674A (ja) * 1997-03-25 2001-04-24 セイコーエプソン株式会社 Vgaと整合性を有するビデオ表示アダプタを用いて効率的なメモリ読み出し動作を行なうための方法及び装置
US6067608A (en) * 1997-04-15 2000-05-23 Bull Hn Information Systems Inc. High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
DE69815482T2 (de) * 1997-12-24 2004-04-29 Texas Instruments Inc., Dallas Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren
US6260114B1 (en) 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
US6535218B1 (en) * 1998-05-21 2003-03-18 Mitsubishi Electric & Electronics Usa, Inc. Frame buffer memory for graphic processing
US6661421B1 (en) 1998-05-21 2003-12-09 Mitsubishi Electric & Electronics Usa, Inc. Methods for operation of semiconductor memory
US6504550B1 (en) * 1998-05-21 2003-01-07 Mitsubishi Electric & Electronics Usa, Inc. System for graphics processing employing semiconductor device
US6559851B1 (en) 1998-05-21 2003-05-06 Mitsubishi Electric & Electronics Usa, Inc. Methods for semiconductor systems for graphics processing
KR100308066B1 (ko) * 1998-06-29 2001-10-19 박종섭 데이터 버스 라인 제어회로
US6825848B1 (en) * 1999-09-17 2004-11-30 S3 Graphics Co., Ltd. Synchronized two-level graphics processing cache
US6801203B1 (en) * 1999-12-22 2004-10-05 Microsoft Corporation Efficient graphics pipeline with a pixel cache and data pre-fetching
US6473834B1 (en) * 1999-12-22 2002-10-29 Unisys Method and apparatus for prevent stalling of cache reads during return of multiple data words
US6640289B2 (en) * 2000-11-15 2003-10-28 Unisys Corporation Software controlled cache line ownership affinity enhancements in a multiprocessor environment
US7205993B2 (en) * 2001-02-15 2007-04-17 Sony Corporation Checkerboard buffer using two-dimensional buffer pages and using memory bank alternation
US6765579B2 (en) * 2001-02-15 2004-07-20 Sony Corporation Pixel pages using combined addressing
US6795079B2 (en) * 2001-02-15 2004-09-21 Sony Corporation Two-dimensional buffer pages
US6801204B2 (en) * 2001-02-15 2004-10-05 Sony Corporation, A Japanese Corporation Checkerboard buffer using memory blocks
US6803917B2 (en) * 2001-02-15 2004-10-12 Sony Corporation Checkerboard buffer using memory bank alternation
US6831649B2 (en) * 2001-02-15 2004-12-14 Sony Corporation Two-dimensional buffer pages using state addressing
US7379069B2 (en) * 2001-02-15 2008-05-27 Sony Corporation Checkerboard buffer using two-dimensional buffer pages
US6850241B2 (en) * 2001-02-15 2005-02-01 Sony Corporation Swapped pixel pages
US6791557B2 (en) * 2001-02-15 2004-09-14 Sony Corporation Two-dimensional buffer pages using bit-field addressing
US7038691B2 (en) * 2001-02-15 2006-05-02 Sony Corporation Two-dimensional buffer pages using memory bank alternation
US6765580B2 (en) * 2001-02-15 2004-07-20 Sony Corporation Pixel pages optimized for GLV
US6828977B2 (en) * 2001-02-15 2004-12-07 Sony Corporation Dynamic buffer pages
US6992674B2 (en) * 2001-02-15 2006-01-31 Sony Corporation Checkerboard buffer using two-dimensional buffer pages and using state addressing
US6831650B2 (en) * 2001-02-15 2004-12-14 Sony Corporation Checkerboard buffer using sequential memory locations
US6768490B2 (en) * 2001-02-15 2004-07-27 Sony Corporation Checkerboard buffer using more than two memory devices
US6831651B2 (en) * 2001-02-15 2004-12-14 Sony Corporation Checkerboard buffer
US7088369B2 (en) * 2001-02-15 2006-08-08 Sony Corporation Checkerboard buffer using two-dimensional buffer pages and using bit-field addressing
US6720969B2 (en) 2001-05-18 2004-04-13 Sun Microsystems, Inc. Dirty tag bits for 3D-RAM SRAM
US6778179B2 (en) 2001-05-18 2004-08-17 Sun Microsystems, Inc. External dirty tag bits for 3D-RAM SRAM
US20030058368A1 (en) * 2001-09-24 2003-03-27 Mark Champion Image warping using pixel pages
JP2003132347A (ja) * 2001-10-26 2003-05-09 Sony Corp 画像処理装置
US6753870B2 (en) * 2002-01-30 2004-06-22 Sun Microsystems, Inc. Graphics system configured to switch between multiple sample buffer contexts
US6965980B2 (en) * 2002-02-14 2005-11-15 Sony Corporation Multi-sequence burst accessing for SDRAM
US7027064B2 (en) * 2002-02-28 2006-04-11 Sun Microsystems, Inc. Active block write-back from SRAM cache to DRAM
US6812929B2 (en) * 2002-03-11 2004-11-02 Sun Microsystems, Inc. System and method for prefetching data from a frame buffer
US7313764B1 (en) * 2003-03-06 2007-12-25 Apple Inc. Method and apparatus to accelerate scrolling for buffered windows
US7015918B2 (en) * 2003-06-10 2006-03-21 Lsi Logic Corporation 2-D luma and chroma DMA optimized for 4 memory banks
US6977656B1 (en) * 2003-07-28 2005-12-20 Neomagic Corp. Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories
US7091979B1 (en) * 2003-08-29 2006-08-15 Nvidia Corporation Pixel load instruction for a programmable graphics processor
US7836276B2 (en) * 2005-12-02 2010-11-16 Nvidia Corporation System and method for processing thread groups in a SIMD architecture
US7139003B1 (en) * 2003-12-15 2006-11-21 Nvidia Corporation Methods of processing graphics data including reading and writing buffers
US8860737B2 (en) * 2003-10-29 2014-10-14 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US8174531B1 (en) 2003-10-29 2012-05-08 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US20060007234A1 (en) * 2004-05-14 2006-01-12 Hutchins Edward A Coincident graphics pixel scoreboard tracking system and method
US7079156B1 (en) * 2004-05-14 2006-07-18 Nvidia Corporation Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline
US8743142B1 (en) 2004-05-14 2014-06-03 Nvidia Corporation Unified data fetch graphics processing system and method
US8711155B2 (en) * 2004-05-14 2014-04-29 Nvidia Corporation Early kill removal graphics processing system and method
US8736620B2 (en) * 2004-05-14 2014-05-27 Nvidia Corporation Kill bit graphics processing system and method
US8432394B1 (en) 2004-05-14 2013-04-30 Nvidia Corporation Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline
US8687010B1 (en) 2004-05-14 2014-04-01 Nvidia Corporation Arbitrary size texture palettes for use in graphics systems
US8860722B2 (en) * 2004-05-14 2014-10-14 Nvidia Corporation Early Z scoreboard tracking system and method
US8736628B1 (en) 2004-05-14 2014-05-27 Nvidia Corporation Single thread graphics processing system and method
US8416242B1 (en) 2004-05-14 2013-04-09 Nvidia Corporation Method and system for interpolating level-of-detail in graphics processors
US8411105B1 (en) 2004-05-14 2013-04-02 Nvidia Corporation Method and system for computing pixel parameters
JP2008523490A (ja) * 2004-12-10 2008-07-03 エヌエックスピー ビー ヴィ キャッシュ置換用データ処理システムおよび方法
US7434032B1 (en) 2005-12-13 2008-10-07 Nvidia Corporation Tracking register usage during multithreaded processing using a scoreboard having separate memory regions and storing sequential register size indicators
US8537168B1 (en) 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
US8441497B1 (en) 2007-08-07 2013-05-14 Nvidia Corporation Interpolation of vertex attributes in a graphics processor
US9183607B1 (en) 2007-08-15 2015-11-10 Nvidia Corporation Scoreboard cache coherence in a graphics pipeline
US8949541B2 (en) * 2008-12-08 2015-02-03 Nvidia Corporation Techniques for evicting dirty data from a cache using a notification sorter and count thresholds
US8244984B1 (en) * 2008-12-08 2012-08-14 Nvidia Corporation System and method for cleaning dirty data in an intermediate cache using a data class dependent eviction policy
US8060700B1 (en) * 2008-12-08 2011-11-15 Nvidia Corporation System, method and frame buffer logic for evicting dirty data from a cache using counters and data types
US8464001B1 (en) * 2008-12-09 2013-06-11 Nvidia Corporation Cache and associated method with frame buffer managed dirty data pull and high-priority clean mechanism
WO2010087132A1 (ja) 2009-01-27 2010-08-05 三菱電機株式会社 状態表示装置及び状態表示装置の表示方法
TW201234334A (en) * 2011-02-15 2012-08-16 Novatek Microelectronics Corp Driving method for bistable display device and driving device thereof
US9411595B2 (en) 2012-05-31 2016-08-09 Nvidia Corporation Multi-threaded transactional memory coherence
US9824009B2 (en) 2012-12-21 2017-11-21 Nvidia Corporation Information coherency maintenance systems and methods
US10102142B2 (en) 2012-12-26 2018-10-16 Nvidia Corporation Virtual address based memory reordering
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
JP6249120B1 (ja) * 2017-03-27 2017-12-20 日本電気株式会社 プロセッサ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0228745A3 (en) * 1985-12-30 1990-03-28 Koninklijke Philips Electronics N.V. Raster scan video controller provided with an update cache, update cache for use in such video controller, and crt display station comprising such controller
US5185856A (en) * 1990-03-16 1993-02-09 Hewlett-Packard Company Arithmetic and logic processing unit for computer graphics system
US5450563A (en) * 1992-10-30 1995-09-12 International Business Machines Corporation Storage protection keys in two level cache system
JPH06332664A (ja) * 1993-03-23 1994-12-02 Toshiba Corp 表示制御システム
US5450542A (en) * 1993-11-30 1995-09-12 Vlsi Technology, Inc. Bus interface with graphics and system paths for an integrated memory system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10482033B2 (en) 2016-03-24 2019-11-19 Samsung Electronics Co., Ltd Method and device for controlling memory

Also Published As

Publication number Publication date
EP0696023A2 (en) 1996-02-07
JPH08211859A (ja) 1996-08-20
JP3828184B2 (ja) 2006-10-04
EP0696023A3 (en) 1998-02-04
US5579473A (en) 1996-11-26

Similar Documents

Publication Publication Date Title
KR100346817B1 (ko) 프레임버퍼랜덤억세스메모리장치를위한인터페이스제어기
US6195106B1 (en) Graphics system with multiported pixel buffers for accelerated pixel processing
US5561780A (en) Method and apparatus for combining uncacheable write data into cache-line-sized write buffers
US5544306A (en) Flexible dram access in a frame buffer memory and system
US6104418A (en) Method and system for improved memory interface during image rendering
US6856320B1 (en) Demand-based memory system for graphics applications
US7102646B1 (en) Demand-based memory system for graphics applications
US5956744A (en) Memory configuration cache with multilevel hierarchy least recently used cache entry replacement
US5392391A (en) High performance graphics applications controller
US6278645B1 (en) High speed video frame buffer
KR100325902B1 (ko) 고성능3차원그래픽가속기를위한부동소숫점처리기및그처리기능수행방법
US5559952A (en) Display controller incorporating cache memory dedicated for VRAM
US7262776B1 (en) Incremental updating of animated displays using copy-on-write semantics
US4805098A (en) Write buffer
US5850632A (en) Memory access controller utilizing cache memory to store configuration information
US5313577A (en) Translation of virtual addresses in a computer graphics system
US5801720A (en) Data transfer from a graphics subsystem to system memory
US20010040580A1 (en) Computer system controller having internal memory and external memory control
US5454076A (en) Method and apparatus for simultaneously minimizing storage and maximizing total memory bandwidth for a repeating pattern
US6741256B2 (en) Predictive optimizer for DRAM memory
US6321300B1 (en) Apparatus and method for dynamically reconfigurable timed flushing of a queue of coalescing write buffers
US6720969B2 (en) Dirty tag bits for 3D-RAM SRAM
EP0676690B1 (en) Delayed write of store instruction in processor device
US20020171649A1 (en) Computer system controller having internal memory and external memory control
US20030160796A1 (en) Active block write-back from SRAM cache to DRAM

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee