KR20170084538A - 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법 - Google Patents

멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법 Download PDF

Info

Publication number
KR20170084538A
KR20170084538A KR1020160003673A KR20160003673A KR20170084538A KR 20170084538 A KR20170084538 A KR 20170084538A KR 1020160003673 A KR1020160003673 A KR 1020160003673A KR 20160003673 A KR20160003673 A KR 20160003673A KR 20170084538 A KR20170084538 A KR 20170084538A
Authority
KR
South Korea
Prior art keywords
memory
buffer
graphic data
write operation
stored
Prior art date
Application number
KR1020160003673A
Other languages
English (en)
Other versions
KR102531741B1 (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 KR1020160003673A priority Critical patent/KR102531741B1/ko
Priority to EP16206510.6A priority patent/EP3193258B1/en
Priority to US15/400,103 priority patent/US10228876B2/en
Priority to CN201710013101.6A priority patent/CN106960412B/zh
Publication of KR20170084538A publication Critical patent/KR20170084538A/ko
Application granted granted Critical
Publication of KR102531741B1 publication Critical patent/KR102531741B1/ko

Links

Images

Classifications

    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • 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/399Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2352/00Parallel handling of streams of display data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use of a frame buffer in a display terminal, inclusive of the display panel

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Image Input (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Liquid Crystal Display Device Control (AREA)
  • Image Generation (AREA)

Abstract

하나의 커맨드에 의해 동일한 그래픽 데이터를 메모리 내의 멀티플 버퍼 각각에 저장하는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법을 개시한다.

Description

멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법{Memory apparatus having multiple buffer and Method for driving memory having multiple buffer}
멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법에 관한 것이다.
싱글 버퍼(single buffer)의 경우, 채널을 통해 데이터가 버퍼에 저장된 후, 프로세서가 데이터를 처리하는 방식으로 진행된다. 이 경우, 채널을 통해 데이터가 저장되는 동안에는 데이터에 대한 처리가 이루어질 수 없으며, 프로세서가 데이터를 처리하는 동안에는 다른 데이터가 저장될 수 없다.
더블 버퍼(double buffer)의 경우, 데이터에 대한 저장과 처리가 동시에 일어날 수 있다. 채널을 통해 첫 번째 버퍼에 데이터를 저장하는 동안 프로세서가 두 번째 버퍼의 데이터를 처리할 수 있다.
하나의 커맨드에 의해 동일한 그래픽 데이터를 메모리 내의 멀티플 버퍼 각각에 저장하는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법을 제공하는 것이다.
제 1 측면에 따른 멀티플 버퍼를 가지는 메모리 장치는, 멀티-쓰기 오퍼레이션 커맨드에 기초하여, 메모리 할당 정보를 획득하는 메모리 컨트롤러, 및 상기 메모리 할당 정보에 기초하여, 동일한 그래픽 데이터를 멀티플 버퍼 각각에 저장하는 메모리를 포함한다.
또한, 상기 메모리 컨트롤러는, 하나의 멀티-쓰기 오퍼레이션 커맨드에 대응하여, 상기 동일한 그래픽 데이터를 저장할 상기 멀티플 버퍼 각각의 위치를 상기 메모리 할당 정보로써 획득할 수 있다.
또한, 상기 메모리 컨트롤러는, 그래픽 프로세서로부터 상기 멀티-쓰기 오퍼레이션 커맨드를 수신하고, 상기 멀티-쓰기 오퍼레이션을 수행할 수 있는 메모리 주소와 오프셋을 결정할 수 있다.
또한, 상기 메모리 컨트롤러는, 상기 멀티-쓰기 오퍼레이션 커맨드에 포함된 적어도 하나의 파라미터와 상기 메모리의 레이아웃에 기초하여, 상기 메모리 할당 정보를 획득할 수 있다.
또한, 상기 메모리는, 상기 메모리가 N차(N은 3 이상의 정수) 멀티플 버퍼 방식으로 구동되는 경우, 읽기 오퍼레이션이 수행되고 있는 버퍼를 제외한, 나머지 버퍼 각각에 상기 동일한 그래픽 데이터를 저장할 수 있다.
또한, 상기 동일한 그래픽 데이터를 상기 멀티플 버퍼 각각에 동시에 저장할 수 있다.
또한, 상기 메모리가 더블 버퍼 방식으로 구동되는 경우, 읽기 오퍼레이션이 수행되고 있는 버퍼를 대신하는 대리 버퍼와 읽기 오퍼레이션이 수행되고 있지 않은 버퍼 각각에 상기 동일한 그래픽 데이터를 저장할 수 있다.
제 2 측면에 따른 멀티플 버퍼를 가지는 메모리를 구동하는 방법은, 멀티-쓰기 오퍼레이션 커맨드에 기초한, 메모리 할당 정보를 획득하는 단계, 및 상기 메모리 할당 정보에 기초하여, 동일한 그래픽 데이터를 멀티플 버퍼 각각에 저장하는 단계를 포함한다.
또한, 상기 메모리 할당 정보를 획득하는 단계는, 하나의 멀티-쓰기 오퍼레이션 커맨드에 대응하여, 상기 동일한 그래픽 데이터를 저장할 상기 멀티플 버퍼 각각의 위치를 상기 메모리 할당 정보로써 획득할 수 있다.
또한, 상기 메모리 할당 정보를 획득하는 단계는, 그래픽 프로세서로부터 멀티-쓰기 오퍼레이션 커맨드를 수신하는 단계, 및 상기 멀티-쓰기 오퍼레이션을 수행할 수 있는 메모리 주소와 오프셋을 결정하는 단계를 포함할 수 있다.
또한, 상기 메모리 할당 정보를 획득하는 단계는, 상기 멀티-쓰기 오퍼레이션 커맨드에 포함된 적어도 하나의 파라미터와 상기 메모리의 레이아웃에 기초하여, 상기 메모리 할당 정보를 획득할 수 있다.
또한, 상기 멀티플 버퍼 각각에 저장하는 단계는, 상기 동일한 그래픽 데이터를 상기 멀티플 버퍼 각각에 동시에 저장할 수 있다.
또한, 상기 멀티플 버퍼 각각에 저장하는 단계는, 상기 메모리가 더블 버퍼 방식으로 구동되는 경우, 읽기 오퍼레이션이 수행되고 있는 버퍼를 대신하는 대리 버퍼와 읽기 오퍼레이션이 수행되고 있지 않은 버퍼 각각에 상기 동일한 그래픽 데이터를 저장할 수 있다.
또한, 상기 멀티플 버퍼 각각에 저장하는 단계는, 상기 메모리가 N차(N은 3 이상의 정수) 멀티플 버퍼 방식으로 구동되는 경우, 읽기 오퍼레이션이 수행되고 있는 버퍼를 제외한, 나머지 버퍼 각각에 상기 동일한 그래픽 데이터를 저장할 수 있다.
제 3 측면에 따라, 상기의 멀티플 버퍼를 가지는 메모리를 구동하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체이다.
도 1은 일 실시예에 따른 메모리 장치와 메모리 장치가 구동되는 환경을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 메모리 장치의 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 메모리 장치의 메모리의 구조를 설명하기 위한 도면이다.
도 4a, 도 4b, 및 도 4c는 일 실시예에 따른 메모리 장치의 메모리 할당 방식을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 메모리 장치의 메모리가 더블 버퍼 방식으로 구동되는 경우를 나타낸 도면이다.
도 6a 및 도 6b는 일 실시예에 따른 메모리 장치의 메모리가 더블 버퍼 방식으로 구동될 때, 멀티-쓰기 오퍼레이션 수행 여부에 따른 차이점을 설명하기 위한 도면이다.
도 7a 및 도 7b은 일 실시예에 따른 메모리 장치의 메모리가 더블 버퍼 방식으로 구동될 때, 멀티-쓰기 오퍼레이션 수행 여부에 따른 프레임 간 차이(frame difference)와 이에 따른 효과를 비교하기 위한 도면이다.
도 8은 일 실시예에 따른 메모리 장치의 메모리가 N차 멀티플 버퍼 방식으로 구동되는 경우를 나타낸 도면이다.
도 9a 및 도 9b는 일 실시예에 따른 메모리 장치의 메모리가 트리플 버퍼 방식으로 구동될 때, 멀티-쓰기 오퍼레이션 수행 여부에 따른 프레임 간 차이와 이에 따른 효과를 비교하기 위한 도면이다.
도 10은 다른 실시예에 따른 멀티플 버퍼를 가지는 메모리를 구동하는 방법을 설명하기 위한 흐름도이다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예를 상세히 설명하기로 한다. 하기 실시예는 기술적 내용을 구체화하기 위한 것일 뿐 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 해당 기술분야의 전문가가 용이하게 유추할 수 있는 것은 권리범위에 속하는 것으로 해석된다.
본 명세서에서 사용되는 '구성된다' 또는 '포함한다' 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
본 실시예들은 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법에 관한 것으로서 이하의 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
도 1은 일 실시예에 따른 메모리 장치와 메모리 장치가 구동되는 환경을 설명하기 위한 도면이다.
도 1을 참고하면, 메모리 장치(2000)는 그래픽 프로세서(1000) 및 디스플레이부(3000)와 데이터 버스(5000)를 통하여 서로 연결되어 있다. 메모리 장치(2000)는 데이터 버스(5000)를 통해 그래픽 프로세서(1000)로부터 그래픽 데이터, 각종 제어 신호 등을 송수신할 수 있다. 또한, 메모리 장치(2000)는 데이터 버스(5000)를 통해 디스플레이부(3000)로부터 그래픽 데이터를 요청하는 제어 신호를 수신하고, 이에 대한 응답으로 요청된 그래픽 데이터를 송신할 수 있다.
메모리 장치(2000)는 메모리 컨트롤러(2100)와 메모리(2200)를 포함할 수 있다. 메모리 컨트롤러(2100)는 메모리(2200)에 데이터를 저장하거나 메모리(2200)로부터 데이터를 독출할 수 있다.
도 2는 일 실시예에 따른 메모리 장치의 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 2를 참고하면, 메모리 컨트롤러(2100)는 멀티-쓰기 오퍼레이션 커맨드를 입력받고, 이에 대한 응답으로 멀티-쓰기 오퍼레이션 신호를 출력할 수 있다. 예를 들어, 메모리 장치(2000)가 그래픽 프로세서(1000)로부터 멀티-쓰기 오퍼레이션 커맨드를 수신하면, 메모리 컨트롤러(2100)로 멀티-쓰기 오퍼레이션 커맨드가 입력될 수 있다. 메모리 컨트롤러(2100)는 입력된 멀티-쓰기 오퍼레이션 커맨드가 메모리(2200)에서 수행될 수 있도록, 메모리 할당 정보를 획득하고, 메모리 할당 정보에 대응되는 멀티-쓰기 오퍼레이션 신호를 출력할 수 있다. 메모리(2200)에 저장하고자 하는 그래픽 데이터는 멀티-쓰기 오퍼레이션 커맨드와 함께 전송되거나, 멀티-쓰기 오퍼레이션 커맨드 내에 포함되어 전송되거나, 메모리(2200)에 저장하고자 하는 그래픽 데이터가 현재 저장되어 있는 위치에 관한 정보가 멀티-쓰기 오퍼레이션 커맨드 내에 포함되어 전송될 수 있다.
메모리 컨트롤러(2100)는 멀티-쓰기 오퍼레이션 커맨드에 기초하여, 메모리 할당 정보를 획득할 수 있다. 멀티-쓰기 오퍼레이션 커맨드에 포함된 다양한 타입의 파라미터들을 분석하여, 메모리 할당시 고려되어야 할 데이터를 확인할 수 있다.
메모리 컨트롤러(2100)는 하나의 멀티-쓰기 오퍼레이션 커맨드에 대응하여, 동일한 그래픽 데이터를 저장할 멀티플 버퍼 각각의 위치를 메모리 할당 정보로써 획득할 수 있다. 예를 들어, 메모리 컨트롤러(2100)는 그래픽 프로세서(1000)로부터 멀티-쓰기 오퍼레이션 커맨드를 수신하고, 멀티-쓰기 오퍼레이션을 수행할 수 있는 메모리 주소와 오프셋을 결정할 수 있다. 이를 위해, 메모리 컨트롤러(2100)는 메모리(2200)의 레이아웃에 대해 미리 알고 있어야 하며, 메모리 컨트롤러(2100)는 메모리(2200)와 약속되어 있는 레이아웃에 따라 메모리 할당 정보를 결정할 수 있다.
메모리 컨트롤러(2100)는 멀티-쓰기 오퍼레이션 커맨드에 포함된 적어도 하나의 파라미터와 메모리(2200)의 레이아웃에 기초하여, 메모리 할당 정보를 획득할 수 있다.
메모리 컨트롤러(2100)는 메모리 할당 정보에 대응되는 멀티-쓰기 오퍼레이션 신호를 메모리(2200)에 출력하여, 멀티-쓰기 오퍼레이션이 수행되도록 메모리(2200)를 제어할 수 있다.
도 3은 일 실시예에 따른 메모리 장치의 메모리의 구조를 설명하기 위한 도면이다.
메모리(2200)는 데이터가 이동될 수 있는 복수의 채널을 가질 수 있다. 도 3을 참고하면, 하나의 채널은 복수의 DIMM(Dual In-line Memory Module)으로 구성될 수 있다. 하나의 DIMM은 복수의 칩(chip)들을 포함할 수 있다. 하나의 칩은 복수의 뱅크들을 포함할 수 있다. 뱅크는 데이터를 저장하는 셀 어레이(cell array)와 셀 어레이의 임의의 로우에 저장된 데이터를 임시로 저장하는 로우 버퍼(row buffer)를 가질 수 있다. 셀 어레이에 저장된 데이터는 셀 어레이의 컬럼 및 로우 어드레스를 이용하면 접근할 수 있는데, 셀 어레이에 직접 접근하여 각 데이터를 독출하는 것보다, 접근하고자 하는 데이터를 포함하는 로우에 해당되는 모든 데이터를 로우 버퍼로 불러와 같은 로우에 포함된 다른 데이터에 대해서는 로우 버퍼를 이용함으로써, 코스트를 낮출 수 있다.
도 3에 도시된 바와 같이, 각각의 뱅크에는 셀 어레이와 로우 버퍼가 존재할 수 있다.
도 4a, 도 4b, 및 도 4c는 일 실시예에 따른 메모리 장치의 메모리 할당 방식을 설명하기 위한 도면이다.
도 4a의 경우, 동일한 그래픽 데이터가 서로 다른 뱅크에 저장되는 경우의 메모리 할당 방식을 나타낸다. 도 4a의 경우, 설명의 편의상, 뱅크 내에 셀 어레이만 도시하였다. 동일한 그래픽 데이터가 각각의 뱅크 내의 셀 어레이에 서로 대응되는 위치에 저장될 수 있다. 예를 들어, 동일한 그래픽 데이터가 메모리(2200) 내의 동일한 채널에 존재하는 동일한 DIMM 내의 동일한 칩의 서로 다른 뱅크에 저장될 때, 각 뱅크 내의 셀 어레이에 저장될 위치는 동일한 로우(row)와 동일한 컬럼(column)으로 서로 대응되는 위치일 수 있다. 동일한 그래픽 데이터가 소정의 오프셋(offset)을 가지고 서로 다른 셀 어레이에 저장된 것으로 볼 수 있다.
도 4b와 도 4c는, 동일한 그래픽 데이터가 동일한 뱅크에 저장되는 경우의 메모리 할당 방식을 나타낸다. 도 4b 및 도 4c의 경우, 설명의 편의상, 뱅크 내에 셀 어레이만 도시하였다. 동일한 그래픽 데이터가 동일한 뱅크 내의 셀 어레이에서 인접한 컬럼 또는 인접한 로우의 위치에 저장될 수 있다. 인접한 컬럼 또는 인접한 로우의 위치는 그래픽 데이터의 크기에 따라 결정될 수 있다. 예를 들어, 동일한 그래픽 데이터가 메모리(2200) 내의 동일한 채널에 존재하는 동일한 DIMM 내의 동일한 칩의 같은 뱅크에 저장될 때, 뱅크 내의 셀 어레이에 저장될 위치는 도 4b와 같이 인접한 컬럼이거나, 도 4c와 같이 인접한 로우의 위치일 수 있다.
도 5는 일 실시예에 따른 메모리 장치의 메모리가 더블 버퍼 방식으로 구동되는 경우를 나타낸 도면이다.
도 5를 참고하면, 메모리(2200)가 두 개의 버퍼를 구동하여 데이터를 저장하고, 외부의 요청에 따라, 저장된 데이터를 출력함을 알 수 있다. 도 5에서 제 1 버퍼(2210-1)와 제 2 버퍼(2210-2)는 물리적으로 분리된 다른 버퍼일 수도 있고, 하나의 버퍼 내에 구획된 다른 영역을 의미할 수도 있다.
도 5를 참고하면, 메모리(2200)는 멀티-쓰기 오퍼레이션 신호를 입력받고, 동일한 그래픽 데이터를 제 1 버퍼(2210-1)와 제 2 버퍼(2210-2)에 저장할 수 있다. 멀티-쓰기 오퍼레이션 신호는 메모리 할당 정보에 기초하여, 동일한 그래픽 데이터를 제 1 버퍼(2210-1)와 제 2 버퍼(2210-2)에 저장하도록 메모리(2200)를 구동할 수 있다. 메모리(2200)는 동일한 그래픽 데이터를 제 1 버퍼(2210-1)와 제 2 버퍼(2210-2) 각각에 동시에 저장할 수 있다.
메모리(2200)는 외부로부터 입력되는 읽기 오퍼레이션 신호에 대한 응답으로, 메모리(2200)에 저장된 그래픽 데이터를 출력할 수 있다. 메모리(2200)에 읽기 오퍼레이션 신호가 입력되어, 메모리(2200)에 저장된 그래픽 데이터에 대한 읽기 오퍼레이션이 수행되는 경우, 메모리(2200)는 멀티-쓰기 오퍼레이션 수행과의 충돌이 읽어나지 않도록 멀티플 버퍼를 구동하여야 한다. 다시 말해서, 버퍼에 저장된 그래픽 데이터를 처리하는 동안 같은 버퍼에 다른 데이터가 저장될 수 없다.
예를 들어, 도 5와 같이 메모리(2200)가 더블 버퍼 방식으로 구동되는 경우, 현재 프레임에 대응되는 그래픽 데이터에 대한 읽기 오퍼레이션이 종료될 때까지, 제 1 버퍼(2210-1) 및 제 2 버퍼(2210-2)에 대한 멀티-쓰기 오퍼레이션 수행을 지연시킬 수 있다. 다만, 이 경우, 저장과 처리가 동시에 일어날 수 있는 더블 버퍼 방식의 의미가 반감될 수 있다. 또 다른 예를 들어, 읽기 오퍼레이션이 수행되고 있는 버퍼를 대신하는 대리 버퍼를 두어, 대리 버퍼와 읽기 오퍼레이션이 수행되고 있지 않은 버퍼에 멀티-쓰기 오퍼레이션을 수행할 수 있다. 즉, 현재 프레임에 대한 그래픽 데이터를 출력하도록 제 1 버퍼(2210-1)에 대해 읽기 오퍼레이션이 수행되면, 제 1 버퍼(2210-1)를 대신하는 제 1 대리 버퍼와 제 2 버퍼(2210-2)에 차순위 프레임에 대한 그래픽 데이터의 멀티-쓰기 오퍼레이션이 수행될 수 있다. 그 후, 차순위 프레임에 대한 그래픽 데이터를 출력하도록 제 2 버퍼(2210-2)에 대해 읽기 오퍼레이션이 수행되면, 제 2 대리 버퍼와 제 1 버퍼에 차차순위 프레임에 대한 그래픽 데이터의 멀티-쓰기 오퍼레이션이 수행됨과 함께 제 1 대리 버퍼에 저장되어 있던 차순위 프레임에 대한 그래픽 데이터도 제 1 버퍼에 저장될 수 있다.
도 6a 및 도 6b는 일 실시예에 따른 메모리 장치의 메모리가 더블 버퍼 방식으로 구동될 때, 멀티-쓰기 오퍼레이션 수행 여부에 따른 차이점을 설명하기 위한 도면이다.
도 6a 및 도 6b에서 별표가 표시된 백 버퍼는 데이터 처리가 이루어지는 버퍼로서, 디스플레이부(3000)로부터 읽기 오퍼레이션 신호가 입력되면, 저장된 그래픽 데이터를 디스플레이부(3000)에 출력하는 버퍼이다.
도 6a는 메모리(2200)의 제 1 버퍼(2210-1)와 제 2 버퍼(2210-2)가 동일한 그래픽 데이터에 대해 멀티-쓰기 오퍼레이션을 수행하고, 메모리(2200)에 저장된 그래픽 데이터를 처리하여 순차적으로 디스플레이하는 과정을 나타낸 것이다.
도 6a를 참고하면, 제 1 버퍼(2210-1)와 제 2 버퍼(2210-2) 각각에 현재 프레임에 대한 프레임별 그래픽 데이터가 저장되고, 둘 중 어느 하나에 저장된 그래픽 데이터를 처리하여 디스플레이한다. 이후, 차순위 프레임에 대한 프레임별 그래픽 데이터가 제 1 버퍼(2210-1)와 제 2 버퍼(2210-2) 각각에 저장되고, 이전 프레임에 대한 그래픽 데이터를 처리하지 않았던 버퍼에 저장된 그래픽 데이터를 처리하여 차순위 프레임을 디스플레이한다. 결과적으로, 동일한 그래픽 데이터가 제 1 버퍼(2210-1)와 제 2 버퍼(2210-2) 각각에 저장됨을 알 수 있다.
반면, 도 6b는, 멀티-쓰기 오퍼레이션을 수행하지 않고, 두 버퍼 중 어느 하나에 대해 그래픽 데이터 처리를 수행할 때, 다른 버퍼에 쓰기 오퍼레이션을 수행하는 방식으로 두 버퍼를 구동하여, 메모리(2200)에 저장된 그래픽 데이터를 처리하여 순차적으로 디스플레이하는 과정을 나타낸 것이다.
도 6b를 참고하면, 제 2 버퍼(2210-2)에 제 1 프레임에 대한 그래픽 데이터가 저장되고, 제 1 프레임에 대한 그래픽 데이터를 처리하여 디스플레이하는 동안, 제 2 프레임에 대한 그래픽 데이터가 제 1 버퍼(2210-1)에 저장된다. 제 1 버퍼(2210-1)에서 제 2 프레임에 대한 그래픽 데이터를 처리하여 디스플레이하는 동안, 제 3 프레임에 대한 그래픽 데이터가 제 2 버퍼에 저장된다. 제 2 버퍼(2210-2)에서 제 3 프레임에 대한 그래픽 데이터를 처리하여 디스플레이하는 동안, 제 4 프레임에 대한 그래픽 데이터가 제 1 버퍼에 저장된다. 이후, 제 1 버퍼(2210-1)는 제 4 프레임에 대한 그래픽 데이터를 처리하여 디스플레이되도록 처리한다.
결과적으로, 도 6a와 도 6b를 비교해보면, 멀티-쓰기 오퍼레이션 수행 여부에 따라, 메모리(2200) 내의 두 버퍼에 저장된 그래픽 데이터가 상이함을 알 수 있다. 도 6a의 경우, 멀티-쓰기 오퍼레이션을 수행함에 따라, 두 버퍼 내에 동일한 그래픽 데이터가 저장되었음을 알 수 있다. 반면, 도 6b의 경우, 데이터 저장과 처리를 두 버퍼에서 교대로 수행하였기 때문에, 두 버퍼 내의 그래픽 데이터가 서로 다름을 알 수 있다.
또한, 도 6a의 경우, 각 버퍼에서 프레임별 그래픽 데이터를 순차적으로 저장하였기 때문에, 현재 프레임과 이전 프레임의 그래픽 데이터 변화량을 나타내는 프레임간 차이가 작다. 예를 들어, 제 4 프레임에 대한 그래픽 데이터가 저장되기 전에 제 3 프레임에 대한 그래픽 데이터가 저장되어 있음을 알 수 있다.
반면, 도 6b의 경우, 두 버퍼에서 프레임별 그래픽 데이터를 교대로 저장하였기 때문에, 현재 프레임과 이전 프레임의 그래픽 데이터 변화량을 나타내는 프레임간 차이가 크다. 예를 들어, 제 4 프레임에 대한 그래픽 데이터가 제 1 버퍼(2210-1)에 저장되기 전에 제 2 프레임에 대한 그래픽 데이터가 저장되어 있음을 알 수 있다.
도 7a 및 도 7b은 일 실시예에 따른 메모리 장치의 메모리가 더블 버퍼 방식으로 구동될 때, 멀티-쓰기 오퍼레이션 수행 여부에 따른 프레임 간 차이(frame difference)와 이에 따른 효과를 비교하기 위한 도면이다.
그래픽 렌더링시, 프레임 간 차이를 이용하는 다양한 기술이 있는데, 이러한 프레임간 차이를 이용하는 기술에는 앞서 설명한 도 6a와 같이 멀티-쓰기 오퍼레이션을 수행하는 멀티플 버퍼 구동 방식이 유리하다.
예를 들어, 하나의 영상을 분할한 타일의 이미지가 프레임 버퍼에 저장된 이미지와 다른 경우에만, 타일 버퍼에서 프레임 버퍼로 해당 타일을 전송하고, 같은 경우에는 해당 타일을 버리는(discard) 기술의 경우, 이전 프레임과 현재 프레임의 차이가 작을수록 그 기술의 성능 향상이 극대화될 수 있다.
도 7a 및 도 7b에서 별표가 표시된 백 버퍼는 데이터 처리가 이루어지는 버퍼로서, 이전 프레임에 해당하는 그래픽 데이터와 비교하여 프레임 간 차이에 해당되는 그래픽 데이터만 추가로 저장하고, 저장되어 있는 그래픽 데이터를 디스플레이부(3000)에 출력할 수 있다.
도 7a를 참고하면, 제 1 버퍼(2210-1)와 제 2 버퍼(2210-2) 각각에 프레임 간 차이에 해당되는 그래픽 데이터만 추가로 저장되고, 둘 중 어느 하나에 저장된 그래픽 데이터를 처리하여 디스플레이한다. 도 7a에서 'Write'라고 표시한 부분이 백 버퍼에 해당하는 버퍼에서 추가로 저장된 부분에 해당하고, 'Back Write'라고 표시한 부분이 백 버퍼가 아닌 다른 버퍼에서 멀티-쓰기 오퍼레이션에 따라 함께 추가로 저장된 부분에 해당한다. 결과적으로, 매 프레임마다, 동일한 그래픽 데이터가 제 1 버퍼(2210-1)와 제 2 버퍼(2210-2) 각각에 저장되며, 매 프레임마다, 이전 프레임과의 프레임 간 차이에 해당하는 부분만 추가로 저장되기 때문에, 1회의 멀티-쓰기 오퍼레이션시 저장해야 할 대상이 줄어들 수 있다.
반면, 도 7b는, 멀티-쓰기 오퍼레이션을 수행하지 않고, 두 버퍼 중 어느 하나에 대해 그래픽 데이터 처리를 수행할 때, 다른 버퍼에 쓰기 오퍼레이션을 수행하는 방식으로 두 버퍼를 구동하기 때문에, 이전 프레임과의 프레임 간 차이에 해당하는 부분으로서, 버퍼에 추가로 저장해야 하는 대상이 도 7a에 개시된 방식에 비해서 더 많음을 알 수 있다. 도 7a와 도 7b에서 'Damage'를 나타낸 부분을 보면, 도 7b의 경우가 프레임 간 차이에 해당하는 그래픽 데이터 변화량이 많아서, 동일한 기술을 쓰더라도 도 7a의 경우보다 불리함을 알 수 있다. 다시 말해서, 두 프레임에서 프레임 간 차이에 해당하는 부분만 추가로 저장하는 기술을 활용하는 경우, 프레임 간 차이가 적은 도 7a의 멀티-쓰기 오퍼레이션을 수행하는 멀티플 버퍼 구동 방식이 도 7b의 방식보다 유리함을 알 수 있다.
도 8은 일 실시예에 따른 메모리 장치의 메모리가 N차 멀티플 버퍼 방식으로 구동되는 경우를 나타낸 도면이다.
도 8을 참고하면, 메모리(2200)가 N 개의 버퍼를 구동하여 데이터를 저장하고, 외부의 요청에 따라, 저장된 데이터를 출력함을 알 수 있다. 도 8에서 제 1 버퍼(2210-1) 내지 제 N 버퍼(2210-N)는 물리적으로 분리된 다른 버퍼일 수도 있고, 하나의 버퍼 내에 구획된 다른 영역을 의미할 수도 있다.
도 8을 참고하면, 메모리(2200)는 멀티-쓰기 오퍼레이션 신호를 입력받고, 동일한 그래픽 데이터를 제 1 버퍼(2210-1) 내지 제 N 버퍼(2210-N)에 저장할 수 있다. 멀티-쓰기 오퍼레이션 신호는 메모리 할당 정보에 기초하여, 동일한 그래픽 데이터를 제 1 버퍼(2210-1) 내지 제 N 버퍼(2210-N)에 저장하도록 메모리(2200)를 구동할 수 있다. 메모리(2200)는 동일한 그래픽 데이터를 제 1 버퍼(2210-1) 내지 제 N 버퍼(2210-N) 각각에 동시에 저장할 수 있다.
메모리(2200)는 외부로부터 입력되는 읽기 오퍼레이션 신호에 대한 응답으로, 메모리(2200)에 저장된 그래픽 데이터를 출력할 수 있다. 메모리(2200)에 읽기 오퍼레이션 신호가 입력되어, 메모리(2200)에 저장된 그래픽 데이터에 대한 읽기 오퍼레이션이 수행되는 경우, 메모리(2200)는 멀티-쓰기 오퍼레이션 수행과의 충돌이 읽어나지 않도록 멀티플 버퍼를 구동하여야 한다. 앞서, 도 5에서 말한 바와 같이 버퍼에 저장된 그래픽 데이터를 처리하는 동안 같은 버퍼에 다른 데이터가 저장될 수 없도록, 멀티-쓰기 오퍼레이션 지연 방식 또는 대리 버퍼 구동 방식을 사용할 수 있다.
또한, 메모리(2200) 내의 멀티플 버퍼의 개수가 세 개 이상이면, 읽기 오퍼레이션이 수행되고 있는 버퍼를 제외한, 나머지 버퍼 각각에 멀티-쓰기 오퍼레이션을 수행할 수 있다. 도 8과 같이 메모리(2200)가 N차 멀티플 버퍼 방식으로 구동되는 경우, 읽기 오퍼레이션이 수행되고 있는 버퍼를 제외한, 나머지 버퍼들에만 멀티-쓰기 오퍼레이션을 수행하여 동일한 그래픽 데이터를 저장할 수 있다. 예를 들어, 현재 프레임에 대한 그래픽 데이터를 출력하도록 제 1 버퍼(2210-1)에 대해 읽기 오퍼레이션이 수행되면, 제 1 버퍼(2210-1)를 제외한 제 2 버퍼(2210-2) 내지 제 N 버퍼(2210-N)에 차순위 프레임에 대한 그래픽 데이터의 멀티-쓰기 오퍼레이션이 수행되어, 제 2 버퍼(2210-2) 내지 제 N 버퍼(2210-N) 각각에 차순위 프레임에 대한 동일한 그래픽 데이터가 저장될 수 있다. 이하, 설명의 편의상, N이 3일 때인 트리플 버퍼 방식을 기준으로, 멀티-쓰기 오퍼레이션의 수행 여부에 따른 차이점을 설명한다.
도 9a 및 도 9b는 일 실시예에 따른 메모리 장치의 메모리가 트리플 버퍼 방식으로 구동될 때, 멀티-쓰기 오퍼레이션 수행 여부에 따른 프레임 간 차이와 이에 따른 효과를 비교하기 위한 도면이다.
도 9a는 메모리(2200)의 제 1 버퍼(2210-1) 내지 제 3 버퍼(2210-3)가 멀티-쓰기 오퍼레이션을 수행함과 동시에 프레임 간 차이에 해당하는 부분만 추가로 저장하는 기술을 적용한 경우로, 메모리(2200)에 저장된 그래픽 데이터를 처리하여 순차적으로 디스플레이하는 과정을 나타낸 것이다. 도 9a에서 'Write'라고 표시한 부분이 백 버퍼에 해당하는 버퍼에서 추가로 저장된 부분에 해당하고, 'Back Write'라고 표시한 부분이 백 버퍼가 아닌 다른 버퍼에서 멀티-쓰기 오퍼레이션에 따라 함께 추가로 저장된 부분에 해당한다. 'No write'의 경우, 이전 프레임과 다른 점에 해당하나, 이전 그래픽 데이터를 유지하는 경우에 해당한다.
도 9a를 참고하면, 제 1 버퍼(2210-1) 내지 제 3 버퍼(2210-3) 중에 읽기 오퍼레이션과 같은 데이터 처리를 수행하는 버퍼를 제외한 나머지 버퍼 각각에 현재 프레임에 대한 프레임별 그래픽 데이터가 저장된다. 이때, 이전 프레임과 현재 프레임 간의 프레임 간 차이에 해당하는 값만 저장될 수 있다.
반면, 도 9b는 멀티-쓰기 오퍼레이션을 수행하지 않고 프레임 간 차이에 해당하는 부분만 추가로 저장하는 기술을 적용한 경우로, 세 버퍼를 순환적으로 구동하여, 메모리(2200)에 저장된 그래픽 데이터를 처리하여 순차적으로 디스플레이하는 과정을 나타낸 것이다.
도 9b를 참고하면, 제 2 버퍼(2210-2)에 제 1 프레임에 대한 그래픽 데이터가 저장되고, 제 1 프레임에 대한 그래픽 데이터를 처리하여 디스플레이하는 동안, 제 2 프레임에 대한 그래픽 데이터가 제 3 버퍼(2210-3)에 저장된다. 이때, 제 3 버퍼(2210-3)에 저장된 이전 프레임과 제 2 프레임에 대한 그래픽 데이터 간에 동일한 부분이 없기 때문에 프레임 간 차이에 해당하는 부분만 추가로 저장하는 기술의 적용 효과가 없다. 제 3 버퍼(2210-3)에서 제 2 프레임에 대한 그래픽 데이터를 처리하여 디스플레이하는 동안, 제 3 프레임에 대한 그래픽 데이터가 제 1 버퍼에 저장된다. 이때, 제 1 버퍼(2210-1)에 저장된 이전 프레임과 제 3 프레임에 대한 그래픽 데이터 간에 동일한 부분이 없기 때문에 역시 프레임 간 차이에 해당하는 부분만 추가로 저장하는 기술의 적용 효과가 없다. 제 1 버퍼(2210-1)에서 제 3 프레임에 대한 그래픽 데이터를 처리하여 디스플레이하는 동안, 제 4 프레임에 대한 그래픽 데이터가 제 2 버퍼에 저장된다. 이와 같은 경우, 제 2 버퍼(2210-2)는 제 1 프레임에 대한 그래픽 데이터를 이전 프레임으로 유지하고 있으므로, 제 1 프레임에 대한 그래픽 데이터를 제외한 부분을 추가로 저장함으로써, 제 4 프레임에 대한 그래픽 데이터를 저장할 수 있다. 이후, 제 2 버퍼(2210-2)에 저장된 제 4 프레임에 대한 그래픽 데이터를 처리하여 디스플레이 되도록 처리한다.
도 9b는 멀티-쓰기 오퍼레이션을 수행하지 않고, 세 버퍼 중 어느 하나에 대해 그래픽 데이터 처리를 수행할 때, 나머지 버퍼 중 하나에 쓰기 오퍼레이션을 수행하는 방식으로 세 버퍼를 순환하면서 구동하기 때문에, 이전 프레임과의 프레임 간 차이에 해당하는 부분으로서, 버퍼에 추가로 저장해야 하는 대상이 도 9a에 개시된 방식에 비해서 더 많음을 알 수 있다.
결과적으로, 도 9a의 경우, 멀티-쓰기 오퍼레이션을 수행함에 따라, 도 9b의 경우보다, 각 버퍼에서 현재 프레임과 이전 프레임의 그래픽 데이터 변화량을 나타내는 프레임간 차이가 작음을 알 수 있다. 도 9a와 도 9b에서 'Damage'를 나타낸 부분을 보더라도, 도 9b의 경우가 프레임 간 차이에 해당하는 그래픽 데이터 변화량이 많아서, 동일한 기술을 쓰더라도 도 9a의 경우보다 불리함을 알 수 있다. 프레임 간 차이에 해당하는 부분만 추가로 저장하는 기술뿐만 아니라, 프레임 간 차이를 활용하는 다른 그래픽 렌더링 기술을 적용하더라도 비슷한 결과가 나타날 수 있다.
도 10은 다른 실시예에 따른 멀티플 버퍼를 가지는 메모리를 구동하는 방법을 설명하기 위한 흐름도이다.
1010 단계에서, 메모리 장치(2000)는 멀티-쓰기 오퍼레이션 커맨드에 기초한, 메모리 할당 정보를 획득할 수 있다. 메모리 장치(2000)는 하나의 멀티-쓰기 오퍼레이션 커맨드에 대응하여, 동일한 그래픽 데이터를 저장할 멀티플 버퍼 각각의 위치를 메모리 할당 정보로써 획득할 수 있다. 메모리 장치(2000)는 그래픽 프로세서로부터 멀티-쓰기 오퍼레이션 커맨드를 수신하고, 멀티-쓰기 오퍼레이션을 수행할 수 있는 메모리 주소와 오프셋을 결정할 수 있다. 메모리 장치(2000)는 멀티-쓰기 오퍼레이션 커맨드에 포함된 적어도 하나의 파라미터와 메모리(2200)의 레이아웃에 기초하여, 메모리 할당 정보를 획득할 수 있다.
1020 단계에서, 메모리 장치(2000)는 메모리 할당 정보에 기초하여, 동일한 그래픽 데이터를 멀티플 버퍼 각각에 저장할 수 있다. 메모리 장치(2000)는 동일한 그래픽 데이터를 멀티플 버퍼 각각에 동시에 저장할 수 있다. 메모리 장치(2000)는 메모리(2200)가 더블 버퍼 방식으로 구동되는 경우, 읽기 오퍼레이션이 수행되고 있는 버퍼를 대신하는 대리 버퍼와 읽기 오퍼레이션이 수행되고 있지 않은 버퍼 각각에 동일한 그래픽 데이터를 저장할 수 있다. 메모리 장치(2000)는 메모리(2200)가 N차 멀티플 버퍼 방식으로 구동되는 경우, 읽기 오퍼레이션이 수행되고 있는 버퍼를 제외한, 나머지 버퍼 각각에 동일한 그래픽 데이터를 저장할 수 있다.
한편, 상술한 멀티플 버퍼를 가지는 메모리를 구동하는 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 이와 같은 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 이와 같은 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 실시예들을 중심으로 살펴보았다. 개시된 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자는 개시된 실시예들이 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 발명의 범위는 전술한 실시예들의 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 발명의 범위에 포함된 것으로 해석되어야 할 것이다.
1000 ... 그래픽 프로세서
2000 ... 메모리 장치
2100 ... 메모리 컨트롤러
2200 ... 메모리
3000 ... 디스플레이부
5000 ... 데이터 버스

Claims (15)

  1. 멀티-쓰기 오퍼레이션 커맨드에 기초하여, 메모리 할당 정보를 획득하는 메모리 컨트롤러; 및
    상기 메모리 할당 정보에 기초하여, 동일한 그래픽 데이터를 멀티플 버퍼 각각에 저장하는 메모리;
    를 포함하는 멀티플 버퍼를 가지는 메모리 장치.
  2. 제 1 항에 있어서,
    상기 메모리 컨트롤러는,
    하나의 멀티-쓰기 오퍼레이션 커맨드에 대응하여, 상기 동일한 그래픽 데이터를 저장할 상기 멀티플 버퍼 각각의 위치를 상기 메모리 할당 정보로써 획득하는, 멀티플 버퍼를 가지는 메모리 장치.
  3. 제 1 항에 있어서,
    상기 메모리 컨트롤러는,
    그래픽 프로세서로부터 상기 멀티-쓰기 오퍼레이션 커맨드를 수신하고, 상기 멀티-쓰기 오퍼레이션을 수행할 수 있는 메모리 주소와 오프셋을 결정하는, 멀티플 버퍼를 가지는 메모리 장치.
  4. 제 1 항에 있어서,
    상기 메모리 컨트롤러는,
    상기 멀티-쓰기 오퍼레이션 커맨드에 포함된 적어도 하나의 파라미터와 상기 메모리의 레이아웃에 기초하여, 상기 메모리 할당 정보를 획득하는, 멀티플 버퍼를 가지는 메모리 장치.
  5. 제 1 항에 있어서,
    상기 메모리는,
    상기 동일한 그래픽 데이터를 상기 멀티플 버퍼 각각에 동시에 저장하는, 멀티플 버퍼를 가지는 메모리 장치.
  6. 제 1 항에 있어서,
    상기 메모리가 더블 버퍼 방식으로 구동되는 경우,
    읽기 오퍼레이션이 수행되고 있는 버퍼를 대신하는 대리 버퍼와 읽기 오퍼레이션이 수행되고 있지 않은 버퍼 각각에 상기 동일한 그래픽 데이터를 저장하는, 멀티플 버퍼를 가지는 메모리 장치.
  7. 제 1 항에 있어서,
    상기 메모리가 N차(N은 3 이상의 정수) 멀티플 버퍼 방식으로 구동되는 경우, 읽기 오퍼레이션이 수행되고 있는 버퍼를 제외한, 나머지 버퍼 각각에 상기 동일한 그래픽 데이터를 저장하는, 멀티플 버퍼를 가지는 메모리 장치.
  8. 멀티-쓰기 오퍼레이션 커맨드에 기초한, 메모리 할당 정보를 획득하는 단계; 및
    상기 메모리 할당 정보에 기초하여, 동일한 그래픽 데이터를 멀티플 버퍼 각각에 저장하는 단계;
    를 포함하는 멀티플 버퍼를 가지는 메모리를 구동하는 방법.
  9. 제 8 항에 있어서,
    상기 메모리 할당 정보를 획득하는 단계는,
    하나의 멀티-쓰기 오퍼레이션 커맨드에 대응하여, 상기 동일한 그래픽 데이터를 저장할 상기 멀티플 버퍼 각각의 위치를 상기 메모리 할당 정보로써 획득하는, 멀티플 버퍼를 가지는 메모리를 구동하는 방법.
  10. 제 8 항에 있어서,
    상기 메모리 할당 정보를 획득하는 단계는,
    그래픽 프로세서로부터 멀티-쓰기 오퍼레이션 커맨드를 수신하는 단계; 및
    상기 멀티-쓰기 오퍼레이션을 수행할 수 있는 메모리 주소와 오프셋을 결정하는 단계;
    를 포함하는, 멀티플 버퍼를 가지는 메모리를 구동하는 방법.
  11. 제 1 항에 있어서,
    상기 메모리 할당 정보를 획득하는 단계는,
    상기 멀티-쓰기 오퍼레이션 커맨드에 포함된 적어도 하나의 파라미터와 상기 메모리의 레이아웃에 기초하여, 상기 메모리 할당 정보를 획득하는, 멀티플 버퍼를 가지는 메모리를 구동하는 방법.
  12. 제 8 항에 있어서,
    상기 멀티플 버퍼 각각에 저장하는 단계는,
    상기 동일한 그래픽 데이터를 상기 멀티플 버퍼 각각에 동시에 저장하는, 멀티플 버퍼를 가지는 메모리를 구동하는 방법.
  13. 제 8 항에 있어서,
    상기 멀티플 버퍼 각각에 저장하는 단계는,
    상기 메모리가 더블 버퍼 방식으로 구동되는 경우, 읽기 오퍼레이션이 수행되고 있는 버퍼를 대신하는 대리 버퍼와 읽기 오퍼레이션이 수행되고 있지 않은 버퍼 각각에 상기 동일한 그래픽 데이터를 저장하는, 멀티플 버퍼를 가지는 메모리를 구동하는 방법.
  14. 제 8 항에 있어서,
    상기 멀티플 버퍼 각각에 저장하는 단계는,
    상기 메모리가 N차(N은 3 이상의 정수) 멀티플 버퍼 방식으로 구동되는 경우, 읽기 오퍼레이션이 수행되고 있는 버퍼를 제외한, 나머지 버퍼 각각에 상기 동일한 그래픽 데이터를 저장하는, 멀티플 버퍼를 가지는 메모리를 구동하는 방법.
  15. 제 8 항 내지 제 14 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020160003673A 2016-01-12 2016-01-12 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법 KR102531741B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160003673A KR102531741B1 (ko) 2016-01-12 2016-01-12 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법
EP16206510.6A EP3193258B1 (en) 2016-01-12 2016-12-22 Memory apparatus including multiple buffers and method of driving memory including multiple buffers
US15/400,103 US10228876B2 (en) 2016-01-12 2017-01-06 Memory apparatus including multiple buffers and method of driving memory including multiple buffers
CN201710013101.6A CN106960412B (zh) 2016-01-12 2017-01-09 包括多个缓冲区的存储器设备和驱动存储器的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160003673A KR102531741B1 (ko) 2016-01-12 2016-01-12 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법

Publications (2)

Publication Number Publication Date
KR20170084538A true KR20170084538A (ko) 2017-07-20
KR102531741B1 KR102531741B1 (ko) 2023-05-11

Family

ID=57860621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160003673A KR102531741B1 (ko) 2016-01-12 2016-01-12 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법

Country Status (4)

Country Link
US (1) US10228876B2 (ko)
EP (1) EP3193258B1 (ko)
KR (1) KR102531741B1 (ko)
CN (1) CN106960412B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2572404B (en) * 2018-03-29 2020-04-15 Imagination Tech Ltd Method and system for controlling processing
EP3567485B1 (en) * 2018-05-09 2020-11-25 Nxp B.V. A writing block for a receiver
US11288193B2 (en) * 2019-05-06 2022-03-29 Cirrus Logic, Inc. Flexible, non-blocking asynchronous transfer of time-variant atomic data
CN114125463B (zh) * 2021-11-14 2024-04-26 山东云海国创云计算装备产业创新中心有限公司 一种视频压缩的方法、系统、存储介质及设备
CN115497432A (zh) * 2022-09-23 2022-12-20 珠海格力电器股份有限公司 数据处理方法、装置、电子设备、显示设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930002927A (ko) * 1991-07-26 1993-02-23 마이클 에이치. 모리스 변형가능한 디스플레이 메모리 제공방법 및 장치
US5793996A (en) * 1995-05-03 1998-08-11 Apple Computer, Inc. Bridge for interconnecting a computer system bus, an expansion bus and a video frame buffer
KR20000011488A (ko) * 1998-07-30 2000-02-25 그리게인 랜스 디지털영상데이터의저장및복구를위한방법및장치
KR20000023495A (ko) * 1998-09-28 2000-04-25 이데이 노부유끼 기록 장치 및 방법, 재생 장치 및 방법, 및 기록 매체

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371839A (en) * 1987-02-27 1994-12-06 Hitachi, Ltd. Rendering processor
US5008838A (en) 1989-11-17 1991-04-16 Digital Corporation Method for simultaneous initialization of a double buffer and a frame buffer
DE69521741T2 (de) 1994-05-03 2002-05-23 Sun Microsystems Inc Direktzugriffspeicher und System für Rasterpuffer
US6862729B1 (en) 2000-04-04 2005-03-01 Microsoft Corporation Profile-driven data layout optimization
US6587112B1 (en) * 2000-07-10 2003-07-01 Hewlett-Packard Development Company, L.P. Window copy-swap using multi-buffer hardware support
JP4327173B2 (ja) * 2006-04-19 2009-09-09 株式会社ソニー・コンピュータエンタテインメント グラフィックスプロセッサ、描画処理装置および描画制御方法
US20080260021A1 (en) 2007-04-23 2008-10-23 Chih-Ta Star Sung Method of digital video decompression, deinterlacing and frame rate conversion
US20090184972A1 (en) * 2008-01-18 2009-07-23 Qualcomm Incorporated Multi-buffer support for off-screen surfaces in a graphics processing system
US8310494B2 (en) * 2008-09-30 2012-11-13 Apple Inc. Method for reducing graphics rendering failures
EP2172927A1 (en) * 2008-10-02 2010-04-07 Telefonaktiebolaget LM Ericsson (PUBL) Method and computer program for operation of a multi-buffer graphics memory refresh, multi-buffer graphics memory arrangement and communication apparatus
KR101419378B1 (ko) * 2009-12-07 2014-07-16 한국전자통신연구원 영상 처리를 위한 시스템
US8823719B2 (en) * 2010-05-13 2014-09-02 Mediatek Inc. Graphics processing method applied to a plurality of buffers and graphics processing apparatus thereof
US8621160B2 (en) * 2010-12-17 2013-12-31 Futurewei Technologies, Inc. System and method for contention-free memory access
US9477597B2 (en) * 2011-03-25 2016-10-25 Nvidia Corporation Techniques for different memory depths on different partitions
US8797359B2 (en) 2011-11-29 2014-08-05 Apple Inc. Inline image rotation
US9672584B2 (en) * 2012-09-06 2017-06-06 Imagination Technologies Limited Systems and methods of partial frame buffer updating
CN104102542A (zh) * 2013-04-10 2014-10-15 华为技术有限公司 一种网络数据包处理方法和装置
CN103985393B (zh) * 2014-04-28 2017-03-01 武汉光忆科技有限公司 一种多光盘数据并行管理方法及装置
CN104809075B (zh) * 2015-04-20 2017-09-12 电子科技大学 一种存取实时并行处理的固态记录装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930002927A (ko) * 1991-07-26 1993-02-23 마이클 에이치. 모리스 변형가능한 디스플레이 메모리 제공방법 및 장치
US5793996A (en) * 1995-05-03 1998-08-11 Apple Computer, Inc. Bridge for interconnecting a computer system bus, an expansion bus and a video frame buffer
KR20000011488A (ko) * 1998-07-30 2000-02-25 그리게인 랜스 디지털영상데이터의저장및복구를위한방법및장치
KR20000023495A (ko) * 1998-09-28 2000-04-25 이데이 노부유끼 기록 장치 및 방법, 재생 장치 및 방법, 및 기록 매체

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Anonymous."Multiple buffering - Wikipedia'".[online]2012.01.21., [2022.08.11.검색],(제1면 내지 제4면),<URL:https://en.wikipedia.org/w/ index.php?title=Multiple_buffering&oldid=472463974>* *

Also Published As

Publication number Publication date
EP3193258A1 (en) 2017-07-19
US20170199697A1 (en) 2017-07-13
KR102531741B1 (ko) 2023-05-11
US10228876B2 (en) 2019-03-12
CN106960412B (zh) 2021-11-12
EP3193258B1 (en) 2020-11-25
CN106960412A (zh) 2017-07-18

Similar Documents

Publication Publication Date Title
KR102531741B1 (ko) 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법
US10755755B2 (en) Apparatuses and methods for concurrently accessing different memory planes of a memory
US11354040B2 (en) Apparatuses and methods for concurrently accessing multiple partitions of a non-volatile memory
KR102442495B1 (ko) 메모리 프로토콜
US9652177B2 (en) Memory controller including host command queue and method of operating the same
US20040117581A1 (en) Computer system and control method thereof
US20150279461A1 (en) Allocating memory address space between dimms using memory controllers
KR102649213B1 (ko) 메모리 칩을 선택하는데 사용되는 인터페이스 칩 그리고 메모리 칩과 인터페이스 칩을 포함하는 스토리지 장치
DE102017100584A1 (de) Verfahren zum Zugreifen auf heterogene Speicher und Speichermodul, welches heterogene Speicher aufweist
US11625196B2 (en) Semiconductor memory device and operating method thereof
US7219170B2 (en) Burst transfer register arrangement
CN105138467B (zh) 数据存取装置、方法及磁共振设备
US8665283B1 (en) Method to transfer image data between arbitrarily overlapping areas of memory
US20120137051A1 (en) Memory device configured to execute plural access commands in parallel and memory access method therefor
CN110286860A (zh) 信息处理方法、信息处理系统和电子设备
CN116360672A (zh) 访问存储器的方法、装置和电子设备
US20120072158A1 (en) Test method and system for testing image processor of electronic device
CN108694973B (zh) 包括相异存储器单元的混合dram阵列
US20080263290A1 (en) Memory control apparatus and memory control method
US20170309256A1 (en) Image processing apparatus, image processing method and, program
JP2005196361A (ja) データ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラム
CN116028397A (zh) 向后兼容的内存中处理(pim)协议
CN117636794A (zh) 显示数据处理系统及方法
US20180090110A1 (en) Apparatus and method for video frame rotation
EP2159750A1 (en) Apparatus and method for processing image data

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