KR20080023151A - 메모리로부터 데이터를 보내는 방법 및 장치 - Google Patents

메모리로부터 데이터를 보내는 방법 및 장치 Download PDF

Info

Publication number
KR20080023151A
KR20080023151A KR1020070090221A KR20070090221A KR20080023151A KR 20080023151 A KR20080023151 A KR 20080023151A KR 1020070090221 A KR1020070090221 A KR 1020070090221A KR 20070090221 A KR20070090221 A KR 20070090221A KR 20080023151 A KR20080023151 A KR 20080023151A
Authority
KR
South Korea
Prior art keywords
data
memory
information
request
processing
Prior art date
Application number
KR1020070090221A
Other languages
English (en)
Inventor
마르쿠스 발브
페터 마이어
볼프강 슈피르클
크리스토프 빌게어
마르틴 브록스
토마스 하인
미카엘 리히터
Original Assignee
키몬다 아게
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 키몬다 아게 filed Critical 키몬다 아게
Publication of KR20080023151A publication Critical patent/KR20080023151A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus

Abstract

메모리로부터 디바이스로 요청에 관한 데이터를 보내는 방법에 관한 것으로, 상기 메모리는 상기 디바이스로 사전설정된 데이터를 보내기 위해 상기 디바이스로부터 요청을 수신하고, 상기 메모리는 상기 디바이스로 데이터 및 상기 데이터에 관한 정보를 보낸다.

Description

메모리로부터 데이터를 보내는 방법 및 장치{METHOD AND APPARATUS FOR SENDING DATA FROM A MEMORY}
본 발명은 일반적으로 메모리 디바이스들에 관한 것으로, 더 상세하게는 요청된 데이터에 관한, 또한 그와 함께 보내진 메타데이터(metadata)에 관한 것이다.
반도체 메모리들은 어느 개별적인 컴퓨터 워드의 각각의 비트 또는 작은 그룹의 비트들에 대해 하나의 메모리 디바이스를 사용하도록 설계되고 구조화되었으며, 워드 크기는 요청한 디바이스의 선택에 의해 좌우된다. 통상적인 워드 크기는 4 내지 64 비트의 범위이다. 각각의 메모리 디바이스는 통상적으로 일련의 어드레스 라인들에 대해 병렬로 연결되고, 일련의 데이터 라인들 중 하나에 연결된다. 요청 디바이스, 예를 들어 제어 처리 유닛(CPU)이 특정 메모리 또는 위치에 기록하거나 그로부터 판독하고자 하는 때에, 어드레스가 어드레스 라인들에 놓이고, 각각 요구된 디바이스에 대해 별도의 디바이스 선택 라인을 이용하여 몇몇 또는 모든 모리 디바이스들이 활성화된다. 1 이상의 디바이스들은 각각의 데이터 라인에 연결될 수 있지만, 통상적으로 적은 수의 데이터 라인들은 단일 메모리 디바이스에 연결된다.
이에 따라, 데이터는 각각의 메모리 판독 또는 기록 동작 동안에 병렬로 제공된다. 적절히 동작하는 시스템의 경우, 메모리 디바이스마다 하나의 단일 메모리 비트가 신뢰성 있고 정확하게 동작하여야 한다.
종래의 시스템에서, CPU는 메모리 디바이스, 예를 들어 DRAM(dynamic random access memory), SRAM(static RAM) 또는 ROM(read only memory)로 요청을 보낸다. 상기 요청은 메모리로부터 데이터를 판독하는 명령 정보, 및 상기 데이터가 판독될 수 있는 메모리의 메모리 셀의 어드레스들을 결정하는 어드레스 정보를 포함한다. 메모리는 상기 요청을 평가하고, 전송된 어드레스들을 나타내는 결정된 메모리 셀들로부터 데이터를 판독하며, CPU로 상기 데이터를 보낸다.
종래의 시스템들에서, 요청은 상이한 개수의 데이터 비트들을 갖는 요청 데이터에 대한 길이 정보를 포함할 수 있다. 따라서, 요청 디바이스는 메모리로부터 상이한 개수의 데이터 비트들을 수신하거나 판독할 수 있다.
본 발명의 일 실시예는 메모리로부터 디바이스로 요청에 관한 데이터를 보내는 방법에 관한 것으로, 상기 메모리는 상기 디바이스로 사전설정된 데이터를 보내기 위해 상기 디바이스로부터 요청을 수신하고, 상기 메모리는 상기 디바이스로 데이터 및 상기 데이터에 관한 정보를 보내며, 상기 정보는 실제적으로 상기 디바이스로 전달된 데이터의 개수 또는 크기를 기술(describe)한다.
본 발명의 또 다른 실시예는 DRAM 메모리로부터 디바이스로 요청에 관한 데이터를 보내는 방법을 제공하고, 상기 DRAM 메모리는 상기 디바이스로 사전설정된 데이터를 보내기 위해 상기 디바이스로부터 요청을 수신하며, 상기 DRAM 메모리는 상기 디바이스로 데이터 및 상기 데이터에 관한 정보를 보내고, 상기 정보는 실제적으로 상기 디바이스로 전달된 데이터의 개수를 기술한다.
또한, 본 발명의 추가 실시예는 메모리로부터 디바이스로 요청에 관한 데이터를 보내는 방법을 제공하고, 상기 메모리는 사전설정된 데이터를 보내기 위해 상기 디바이스로부터 요청을 수신하며, 상기 메모리는 메모리 코어로부터 상기 요청된 데이터를 판독하고, 상기 메모리는 처리 모드에 따라 상기 판독 데이터를 처리하며, 상기 메모리는 상기 디바이스로 상기 처리된 데이터, 및 상기 처리 모드에 관한 처리 정보를 보낸다.
본 발명의 또 다른 실시예는 요청을 수신하고, 상기 요청에 대한 응답으로서 데이터 패킷들을 보내는 인터페이스를 갖는 메모리를 제공하며, 상기 메모리는 데이터를 저장하는 메모리 코어, 요청 시 상기 메모리 코어로부터 데이터를 판독하는 판독 회로, 상기 인터페이스에 의해 1 이상의 데이터 패킷의 형태로 상기 데이터를 보내기 이전에 상기 판독 데이터를 처리하는 처리 회로를 포함하며, 상기 처리 회로는 데이터의 개수를 검사하고, 상기 데이터 패킷과 함께 보내진 상기 데이터의 개수에 관한 정보를 생성하며, 상기 데이터 패킷에 상기 정보를 추가한다.
본 발명의 또 다른 실시예는 요청을 수신하고, 상기 요청에 대한 응답으로서 데이터 패킷들을 보내는 인터페이스를 갖는 DRAM 메모리를 제공하며, 상기 DRAM 메모리는 데이터를 저장하는 메모리 코어, 요청 시 상기 메모리 코어로부터 데이터를 판독하는 판독 회로, 상기 인터페이스를 통해 1 이상의 데이터 패킷의 형태로 데이터를 보내기 이전에 상기 판독 데이터를 처리하는 처리 회로를 포함하며, 상기 처리 회로는 데이터의 개수를 검사하고, 상기 데이터 패킷과 함께 보내진 상기 데이터에 관한 정보를 생성하며, 상기 데이터 패킷에 상기 정보를 추가한다.
또한, 본 발명의 또 다른 실시예는 요청을 수신하고, 상기 요청에 대한 응답으로서 데이터 패킷들을 보내는 인터페이스를 갖는 메모리를 제공하며, 상기 메모리는 데이터를 저장하는 메모리 코어, 요청 시 상기 메모리 코어로부터 데이터를 판독하는 판독 회로, 사전설정된 처리 모드에 따라 판독 데이터를 처리하는 처리 회로를 포함하며, 상기 처리 유닛은 상기 처리된 데이터에 상기 실행된 처리 모드에 관한 처리 정보를 추가하고, 상기 인터페이스를 통해 1 이상의 데이터 패킷의 형태로 상기 처리 정보와 함께 상기 처리된 데이터를 보낸다.
본 발명의 실시예들은 다양한 기능적 구성요소들에 관하여 설명될 수 있다. 이러한 기능적 구성요소들은 구체화된 기능들을 수행하도록 구성된 여하한의 개수의 하드웨어 또는 구조적 구성요소들에 의해 실행될 수 있다는 것을 이해하여야 한다. 예를 들어, 본 발명의 실시예들은 저항기들, 트랜지스터들, 캐패시터들, 다이오드들 및 이러한 구성요소들과 같은 다양한 전기 디바이스들로 구성된 다양한 집적화 구성요소들(integrated component)을 채택할 수 있으며, 그 작용(behavior)은 다양하게 의도된 목적들을 위해 적절히 구성될 수 있다. 또한, 본 발명의 실시예들은 효과적인 가역 극성(reversible polarity)이 요구되는 여하한의 집적 회로 적용에서 실행될 수 있다. 당업자라면, 본 명세서에 상세히 설명되어 있지 않더라도 이러한 일반적인 적용들을 고려할 수 있을 것이다. 또한, 다양한 구성요소들이 예시적인 회로들에서 다른 회로들에 적절히 커플링되거나 연결될 수 있으며, 이러한 연결들 및 커플링들은 구성요소들 간의 직접적인 연결에 의해, 또한 그 사이에 위치된 다른 구성요소들 및 디바이스들을 통한 연결들에 의해 실현될 수 있다.
본 발명의 일 실시예는 일반적으로 메모리로부터 디바이스로 요청에 관한 데이터를 보내는 방법, 및 요청을 수신하고 상기 요청에 대한 응답으로서 데이터 패킷들을 보내는 인터페이스를 갖는 메모리에 관한 것이다. 더 상세하게는, 본 발명은 요청된 데이터와 상이할 수 있는 요청에 관한 데이터를 보내는 방법에 관한 것이다. 또한, 더 상세하게는 본 발명의 또 다른 실시예는 요청 시 판독될 데이터를 처리하고, 상기 데이터에 관한 정보, 예를 들어 데이터의 개수에 관한 정보 및/또는 상기 데이터의 처리에 관한 정보와 함께 상기 처리된 데이터를 보내는 처리 회로를 포함하는 메모리에 관한 것이다.
도 1은 일 실시예에 따른 메모리(1), 데이터 채널(2) 및 디바이스(3)를 포함하는 시스템의 개략도를 도시한다.
메모리(1)는 DRAM 메모리, SRAM 메모리 또는 ROM 메모리, 또는 데이터를 저장하고 메모리 셀들로부터 데이터를 판독하는데 사용될 수 있는 메모리 회로와 같은 메모리 디바이스일 수 있다. 데이터 채널(2)은 디바이스(3)로부터 메모리(1)로 요청을 보내고, 요청 시 메모리(1)로부터 디바이스(3)로 데이터를 보내는데 사용될 수 있는 여하한의 데이터 경로에 의해 구성될 수 있다. 데이터 채널은 메모리(1)와 디바이스(3) 사이에 배치된 데이터 버스, 라디오 전송 경로 또는 광학 전송 경로일 수 있다. 디바이스(3)는 메모리(1)로부터 데이터를 요청할 수 있는 여하한의 디바이스에 의해 구성될 수 있으며; 예를 들어, 디바이스(3)는 처리 유닛, 중앙 처리 유닛 또는 그래픽 처리 유닛일 수 있다.
특정 실시예에서, 디바이스(3)는 데이터 채널(2)에 의해 메모리(1)로 요청 신호들을 보내는 제 1 인터페이스(4)를 갖는 그래픽 처리 유닛일 수 있다. 또한, 제 1 인터페이스(4)는 데이터 채널(2) 상에서 메모리(1)로부터 응답 신호들을 수신한다.
메모리(1)는 요청 신호를 수신하고, 데이터 채널(2) 상에서 디바이스(3)로 응답 신호를 보내는 데이터 채널(2)과 연결된 제 2 인터페이스(5)를 포함한다. 제 2 인터페이스(5)는 처리 유닛(6)과 연결된다. 처리 유닛(6)은 판독/기록 회로(7)와 연결된다. 판독/기록 회로(7)는 데이터를 저장하는 메모리 셀들(9)을 포함하는 메모리 코어(8)와 연결된다. 메모리 셀들(9)은 스위치들, 예를 들어 트랜지스터들에 의해 개별적으로 어드레스가능할(addressable) 수 있는 메모리 요소들, 예를 들어 캐패시터들을 포함할 수 있다. 캐패시터들 대신에, 메모리 셀들(9)은 데이터를 저장하는데 사용되는 저항성 요소들을 포함할 수 있다. 상기 실시예에 의존하여, 메모리 셀들(9)은 사전설정된 개수들 및/또는 어레이들로 어드레스가능할 수 있다. 상기 실시예에 의존하여, 하나 또는 수개의 판독/기록 회로(7)에 의해 하나의 제 2 인터페이스(5)를 갖는 하나 또는 수개의 처리 유닛들(6)에 연결되는 수개의 메모리 코어들(8)이 존재할 수 있다.
동작 시, 그래픽 처리 유닛(GPU: 3)은 데이터 채널(2) 상에서 제 1 인터페이스(4)를 통해 메모리(1)로 요청 신호를 보냄으로써 메모리(1)로부터 데이터를 판독하는 동작을 개시한다. 요청 신호는 도 2에 도시된 바와 같이 정보, 데이터 및/또는 명령들을 포함할 수 있다. 도 2는 명령 필드(command field: 11), 어드레스 필드(address field: 12) 및 태스크 필드(task field: 13)를 포함하는 예시적인 요청 신호를 도시한다.
도시된 실시예에서, 판독 명령은 명령 필드(11)에 저장되고, 컬럼 어드레스(column address)들은 어드레스 필드(12)에 저장되며, "태스크 1"은 태스크 필드(13)에 저장된다. 요청 신호(10)의 정보는 메모리(1)가 어드레스 필드(12)에 저장된 어드레스들로 메모리(1)의 메모리 셀들(9)에 저장된 데이터를 판독할 수 있다. 또한, 요청 신호(10)는 태스크 1 요청으로서 이 요청을 나타낸다(state). 또 다른 실시예에서, 요청 신호(10)는 얼마나 많은 데이터가 메모리(1)로부터 판독되어야 하고 GPU(3)로 보내지는지를 결정하는 개수 필드(number field: 12)만을 나타 낼 수 있다. 어드레스 필드(12)는 판독될 수 있는 데이터의 개수를 결정한다.
요청 신호는 제 2 인터페이스(5)에 의해 수신되고, 처리 회로(6)로 전달된다. 처리 회로(6)는 요청 신호(10)를 평가한다. 도시된 실시예에서, 처리 회로(6)는 어드레스 필드(12)에 저장된 어드레스들로 메모리 셀들에 저장된 데이터를 판독하고, 상기 판독 데이터를 디바이스(3)로 보내기 위하여, 요청 신호(10)에 의해 정보를 얻는다.
처리 회로(6)는 판독/기록 회로(7)로 이 정보를 전달한다. 판독/기록 회로(7)는 어드레스 필드(12) 내의 어드레스들에 의해 결정된 메모리 셀들(9)로부터, 메모리 코어(8)로부터 저장된 데이터를 판독하고, 상기 판독 데이터를 처리 회로(6)로 전달한다.
일 실시예에서, 처리 회로(6)는 제 2 인터페이스(5), 데이터 채널(2) 및 제 1 인터페이스(4)를 통해, 데이터에 관한 정보와 판독 데이터를 디바이스(3)로 보낸다. 데이터에 관한 정보는 데이터의 개수, 데이터의 품질에 관한 정보 또는 데이터의 구조에 관한 정보를 포함할 수 있다. 데이터의 개수는 디지털 데이터 비트들 또는 디지털 데이터 워드들 또는 요청에 대한 응답으로서 보내진 데이터 프레임들의 개수에 관한 정보를 포함할 수 있다. 일 실시예에서, 상기 정보는 디지털 데이터 비트들의 개수를 포함할 수 있다. 또 다른 실시예에서, 상기 정보는 데이터 워드들의 개수를 포함할 수 있다. 또 다른 실시예에서, 상기 정보는 요청 시 다시 보내진 데이터 프레임들의 개수를 포함할 수 있다.
일 실시예에서, 처리 회로(6)는 도 3a에 도시된 바와 같이 개수 필드(15) 및 데이터 필드(16)를 포함하는 데이터 프레임(14)을 생성한다. 개수 필드(15)는 데이터 필드(16)에 포함된 데이터의 개수를 포함한다. 데이터 필드(16)에서는 1 이상의 디지털 비트가 포함된다. 데이터 필드(16)는 수개의 디지털 비트들 또는 디지털 비트들을 포함하는 데이터 워드들을 포함할 수 있다.
제 1 인터페이스(4)는 데이터 프레임(14)을 수신하고, 상기 데이터 프레임(14)을 분석한다. 디바이스(3)는 개수 필드(15) 및 데이터 필드(16)를 분석한다. 데이터의 개수에 관한 정보는 데이터 필드(16)에 포함된 데이터의 후속 처리를 위해 사용될 수 있다.
또 다른 실시예에서, 처리 회로(6)는 요청 시, 도 3b에 도시된 바와 같이 제 2 데이터 프레임(17)을 다시 보낸다. 제 2 데이터 프레임(17)은 개수 필드(15), 데이터 필드(16) 및 처리 필드(18)를 포함한다. 개수 필드(15)는 데이터 필드(16)에 포함된 데이터의 개수를 포함한다. 데이터 필드(16)는 메모리(1)에 의해 디바이스(3)에 보내진 데이터를 포함한다. 데이터 필드(16)는 데이터 패킷들로 분할될 수 있으며, 각각의 데이터 패킷은 수개의 디지털 데이터 비트들을 포함한다. 처리 필드(18)는 데이터를 생성하기 위해 처리된 태스크에 관한 정보를 포함한다. 일 실시예에서, 처리 필드(18)는 데이터가 메모리 셀들(9)의 사전설정된 개수들로부터 판독되었다는 것을 나타내는 정보를 포함한다. 본 실시예에 의존하여, 처리 필드(18)는 데이터를 생성하는데 사용된 처리에 관한 또 다른 정보, 예를 들어 데이터가 메모리 셀들(9)로부터 판독되었고, 사전설정된 처리 모드에 따라 처리된 정보를 포함할 수 있다. 처리 모드는, 예를 들어 디바이스(3)로 전송되어야 할 데이터의 개수 를 감소시키도록 데이터를 압축하는데 사용되는 압축 방법일 수 있다. 또 다른 실시예에서, 처리 모드는 리던던트 데이터(redundant data)를 위해 데이터를 검사하고, 디바이스(3)에 비(non) 리던던트 데이터만을 보내게 할 수 있다.
디바이스(3)로 보내기 이전에 판독 데이터가 압축된 경우, 처리 회로(6)는 보내진 데이터가 사전설정된 압축 방법에 따라 압축된 정보를 처리 필드(18)에 저장한다. 따라서, 처리 회로(6)는 디바이스(3)로 제 2 데이터 프레임(17)을 보낸다.
처리 회로가 하나가 아닌 수개의 제 2 데이터 프레임들(17)의 형태로 요청된 데이터를 전달하기 위하여 처리 회로가 처리 모드에 있는 경우, 제 2 데이터 프레임들(17)은 개수 필드(15) 내에, 얼마나 많은 수의 데이터가 데이터 필드(16) 내에 포함되는지를 포함하고, 또한 처리 필드(18) 내에, 예를 들어 상기 처리 모드가 사용되었던 것에 관한 정보, 및 요청된 데이터의 일부분이 제 2 데이터 프레임들(17)에 포함되는 정보를 포함한다. 상기 부분 정보는 데이터가 사전설정된 개수의 제 2 프레임(17)으로 분배된 정보를 포함할 수 있다. 또한, 처리 필드(18) 내의 정보는 요청 신호(10)의 사전설정된 태스크로 요청된 데이터의 사전설정된 부분이 이제 제 2 데이터 프레임(17)에 포함되는 것을 구체화할 수 있다.
본 실시예에 의존하여, 처리 회로(6)는 개수 필드(15), 데이터 필드(16), 처리 필드(18) 및 태스크 필드(19)를 포함하는 도 3c에 도시된 제 3 데이터 프레임(20)을 사용할 수 있다. 태스크 필드는 제 3 데이터 프레임이 디바이스(3)의 어떤 태스크에(즉, 어떤 요청에) 속해 있는 지에 대한 정보를 포함한다.
또 다른 실시예에서, 요청된 데이터의 개수는 2 개의 데이터 프레임들, 예를 들어 도 3d에 도시된 바와 같이 2 개의 제 3 데이터 프레임들(20)을 사용하여 다시 보내질 수 있다. 이 실시예에서, 처리 회로(6)는 2 개의 제 3 데이터 프레임들(20)을 사용하여 디바이스(3)로 요청된 데이터를 보내며, 그 각각은 개수 필드(15), 데이터 필드(16), 처리 필드(18) 및 태스크 필드(19)를 포함한다. 태스크 필드(19)는 제 3 데이터 프레임들(20)이 동일한 요청에 속해 있는 것을 구체화하는 정보를 포함할 수 있으며, 이는 도 3d에 도시된 바와 같이 데이터의 제 1 부분이 첫 번째의 제 3 데이터 프레임(20)에 포함되고, 데이터의 제 2 부분이 두 번째의 제 3 데이터 프레임(20)에 포함된다는 것을 의미한다.
데이터 프레임들(14), 제 2 데이터 프레임(17) 및/또는 제 3 데이터 프레임들(20)을 수신하는 디바이스(3)는 또 다른 처리를 위해 수신된 데이터에 관한 정보를 사용할 수 있다. 예를 들어, 디바이스(3)는 처리 필드(18)에 나타내어진 사용된 압축 방법에 따라 압축된 데이터를 복귀(restore)시킬 수 있다. 또한, 디바이스(3)는 요청된 데이터 중 몇몇이 리던던트 데이터라는 정보를 사용할 수 있다.
상술된 방법을 사용하여, 디바이스(3)는 데이터를 더 용이하게 처리할 수 있으며, 및/또는 메모리(1)로부터 요청된 데이터의 개수를 감소시키기 위해 또 다른 요청들을 변화시킬 수 있다. 또한, 디바이스(3)는 메모리(1)의 기능, 특히 메모리 코어(8) 내의 메모리 셀들(9)의 기능을 평가하도록 보내진 데이터에 관한 추가 정보를 사용할 수 있다.
또한, 본 발명의 일 실시예는 메모리(1)가 요청된 데이터를 수정하고, 상기 수정에 관한 데이터 정보와 함께 보낼 수 있다는 장점을 제공할 수 있다. 또한, 본 발명의 일 실시예는 압축 알고리즘들이 데이터 전달을 단축시키거나 분할시키는데 사용되는 경우, 인터페이스들 상에서 대역폭 및 전력을 절약할 수 있다. 그러므로, 메모리(1)는 얼마나 많은 데이터가 실제 버스트에 의해 유효한지를 디바이스(3)(예를 들어, 메모리 제어기)에 나타내기 위해 데이터 버스트(data burst)의 시작에 길이 정보를 보낼 수 있다. 이 실시예에서, 데이터 필드(16)는 하나의 데이터 프레임에 속해 있는 데이터 패킷들의 버스트를 포함할 수 있다.
본 발명의 일 실시예는 데이터에 대한 추가 정보, 특히 시작된 데이터 버스트의 길이 정보를 교환하기 위해, 메모리와 디바이스, 예를 들어 그래픽 처리 유닛 간의 데이터 교환에 있어서 프레임 구조를 사용한다. 상기 방법은 메모리 제어기로부터의 전용의(dedicated) 요청 없이, 메모리가 데이터 교환을 단축시키거나 분할할 수 있게 한다. 예를 들어 길이 정보에 대한 사용은 전송되는 데이터 비트들의 양 및 데이터 전송을 단축시킴으로써 전력을 절약하는 데이터 압축 방법을 허용한다. 또한, 상기 방법은 압축 방법, 및 메모리와 제어기 간의 더 안정한 데이터 전달을 실현하기 위한 리던던시와 함께 길이 정보를 사용하는 것을 허용함에 따라, 더 길거나 더 짧은 데이터 버스트들이 발생할 수 있다. 또한, 본 발명의 일 실시예는 추가 정보, 예를 들어 체크 썸(check sum)을 추가하는 향상된 프레임 구조 또는 메모리와 디바이스 간의 데이터 전송을 보안하는 다른 데이터를 허용하며, 예를 들어 데이터 보정 메커니즘, 예를 들어 패리티 비트(parity bit)들을 허용한다.
도 4는 판독/기록 회로(7)를 갖는 메모리 코어(8)와 제 2 인터페이스(5) 사이에 배치된 처리 회로(6)의 구조를 더 상세히 도시한다. 처리 회로(6)는 평가 블 록(21), 활성화 블록(22), 처리 블록(23) 및 생성 블록(24)을 포함한다.
평가 블록(21)은 요청 신호(10)를 수신하고, 요청 신호(10)를 평가한다. 평가 블록(21)은 명령 필드(11) 및/또는 어드레스 필드(12) 및/또는 태스크 필드(19)를 검사한다. 요청 신호(10)의 정보에 의존하여, 평가 블록(21)은 어드레스 필드(12)를 고려하여 명령 필드(11)에 저장된 명령을 처리하기 위해 활성화 블록(22)을 활성화한다. 활성화 블록(22)은 판독/기록 회로(7)를 사용하여 요청된 명령, 예를 들어 판독 동작을 처리한다. 처리 블록(23)은 판독/기록 회로(7)로부터 활성화 블록(22)에 의해 요청된 판독 데이터를 수신한다. 처리 블록(23)은 판독 데이터를 저장하고, 입력 신호(25)에 의해 결정된 처리 모드에 따라 저장된 데이터를 처리한다. 입력 신호(25)는 메모리 코어(8)에 저장될 수 있거나, 예를 들어 또 다른 입력 정보에 의존하여 처리 회로(6)에 의해 생성될 수 있다. 처리 모드는 판독 데이터를 압축하고, 압축된 데이터를 디바이스(3)로 보내며, 리던던시를 위해 판독 데이터를 검사하고, 디바이스(3)로 비-리던던트 데이터만을 보내거나, 디바이스(3)로 요청된 데이터를 보내는 사전설정된 개수의 데이터 프레임들을 생성할 수 있다.
입력 신호(25)에 의존하여, 처리 블록(23)은 결정된 처리 모드에 따라 판독 데이터를 처리한다. 그 후, 처리된 데이터는 처리 블록(23)으로부터 생성 블록(24)으로 전달된다. 생성 블록(24)은 도 3에 설명된 바와 같은 정보를 포함하는 데이터 프레임(14) 및/또는 제 2 데이터 프레임(17) 및/또는 제 3 데이터 프레임(20)을 생성한다. 생성된 데이터 프레임은 생성 블록(24)에 의해 제 2 인터페이스(5) 상에서 디바이스(3)로 보내진다.
도 5는 DRAM 회로(38)를 도시한다. 도 5에는 본 발명의 일 실시예의 이해에 꼭 필요한 DRAM 회로(38)의 일부분들만이 도시된다. DRAM 회로(38)는 메모리 제어기(26), I/O 유닛(39), 로우 디코더(28), 컬럼 디코더(33), 제 2 메모리 셀들(30)을 갖는 메모리 필드(29) 및 제 2 처리 회로(34)를 포함한다. 메모리 제어기(26)는 로우 디코더(28) 및 컬럼 디코더(33)를 갖는 어드레스 버스(27)에 의해 연결된다. 또한, 메모리 제어기(26)는 로우 디코더(28) 및 컬럼 디코더(33)를 갖는 클록 라인(clock line: 36)에 의해 연결된다. 또한, 메모리 제어기(26)는 로우 디코더(28) 및 컬럼 디코더(33)를 갖는 명령 라인(35)과 연결된다. 컬럼 디코더(33)는 제 2 처리 회로(34)와 연결된다. 제 2 처리 회로(34)는 데이터 경로(37)에 의해 I/O 회로(39)와 연결된다. 로우 디코더(28)는 메모리 필드(29)에 배치된 복수의 워드 라인들(31)과 연결된다. 도 5에는 하나의 워드 라인(31)만이 도시된다. 컬럼 디코더(33)는 복수의 비트 라인들(32)과 연결되며, 도 5에는 하나의 비트 라인(32)만이 도시된다. 워드 라인들(31) 및 비트 라인들(32)의 교차점들이 메모리 필드(29)에 배치된다. 워드 라인들(31)은 비트 라인(32)과 저장 소자, 에를 들어 제 2 메모리 셀(30)의 캐패시터 사이에 배치된 스위칭 소자들, 예를 들어 트랜지스터들과 연결된다.
메모리 제어기(26)는 데이터 채널(2)에 의해 디바이스(3)와 연결된다. 어드레스 데이터 및 명령 신호들은 메모리 제어기(26)에 의해 수신되고, 데이터 채널(2)에 연결된 I/O 유닛(39) 상에서 디바이스(3)와 DRAM 회로(38) 사이에 데이터가 교환된다.
디바이스(3), 예를 들어 그래픽 처리 유닛이 DRAM 회로(38)로부터 사전설정된 데이터를 판독하기 원하는 경우, 디바이스(3)는 데이터 채널(2)에 의해 메모리 제어기(26)로 (도 2에 도시된) 요청 신호(10)를 보낸다. 메모리 제어기(26)는 요청 신호(10)를 수신한다. 요청 신호(10)는 저장된 데이터가 판독되고 디바이스(3)로 전달되어야 하는 어드레스 필드(12) 내의 제 2 메모리 셀들(30)의 어드레스들 및 명령 필드(11) 내의 판독 명령을 포함할 수 있다. 태스크 필드(13)는 이 요청이 속해 있는 사전설정된 태스크를 포함할 수 있다. 메모리 제어기(26)는 컬럼 및 로우 어드레스들을 포함하는 어드레스들을 로우 디코더(28) 및 컬럼 디코더(33)로 전달한다. 또한, 메모리 제어기(26)는 데이터를 판독하는 명령을 컬럼 디코더(33)로 전달한다. 또한, 메모리 제어기(26)는 판독 동작을 위한 클록 신호를 로우 디코더(28) 및 컬럼 디코더(33)로 보낸다. 로우 디코더(28)는 수신된 어드레스들에 따라 제 2 메모리 셀들(30)을 각각의 비트 라인들(32)과 연결시키는 사전설정된 워드 라인들(31)을 활성화한다. 어드레스된 제 2 메모리 셀들(30)에 저장되고, 비트 라인들(32)에 연결된 데이터에 의존하여, 각각의 비트 라인들(32)의 전압 및/또는 각각의 비트 라인들(32)의 저항이 변화될 수 있다. 또한, 컬럼 디코더(33)는 수신된 컬럼 어드레스들에 따라 각각의 비트 라인들(32)을 선택하고, 선택된 제 2 메모리 셀들(30)에 저장된 데이터를 판독한다.
판독 데이터는 컬럼 디코더(33)로부터 제 2 처리 회로(34)로 전달되었다. 제 2 처리 회로(34)는 전달된 판독 데이터를 처리하는 처리 모드를 결정하는 모드 블록(40)과 연결된다. 제 2 처리 회로(34)는 결정된 처리 모드에 따라 전달된 데이터 를 처리하고, 데이터 프레임(14) 또는 제 2 또는 제 3 데이터 프레임(17, 20)을 생성한다. 데이터 프레임(14) 또는 제 2 또는 제 3 데이터 프레임(17, 20)은 데이터 경로(37)에 의해 I/O 유닛(39)으로 전달된다. I/O 유닛(39)은 데이터 채널(2) 상에서 디바이스(3)로 데이터 프레임을 보낸다.
요청 신호(10)에 의존하여, DRAM 회로(38)는 결정된 제 2 메모리 셀들(30)에 저장된 사전설정된 데이터의 개수를 판독할 수 있다. 일 실시예에서, 판독 데이터는 처리 모드에 따라 DRAM 회로(38)에 의해 처리된다. 처리 모드는 DRAM 회로(38)에 의해 별도로 선택될 수 있거나, 예를 들어 또 다른 제어 유닛으로부터 디바이스(3)에 의해 결정될 수 있다.
도 6은 요청 신호(10)의 수신 시에 DRAM 회로(38)에 의해 처리된 처리의 개략도를 도시한다. 단계(100)에서 DRAM 회로(38)는 요청 신호(10)를 수신한다. 그 후, 요청 신호(10)는 단계(110)에서 메모리 제어기(26)에 의해 평가된다. 요청 신호의 평가 후, DRAM 회로(38)는 단계(120)에서 사전설정된 메모리 셀들을 판독한다. 그 후, 판독 데이터는 단계(130)에서 제 2 처리 회로(34)에 의해 처리된다. 처리된 데이터는 단계(140)에서 데이터 프레임들(14) 또는 제 2 또는 제 3 데이터 프레임들(17, 20)의 형태로 제 2 처리 회로(34)로부터 I/O 유닛(39) 상에서 요청 디바이스(3)로 전달된다.
이상 본 발명의 실시예들에 대해 설명하였지만, 본 발명의 기본 범위를 벗어나지 않고 본 발명의 다른 실시예들 및 또 다른 실시예들이 행해질 수 있으며, 본 발명의 범위는 다음의 청구항들에 의해 결정된다.
본 발명의 상술된 특징들이 상세히 이해될 수 있도록 하기 위하여, 첨부된 도면들에 예시된 몇몇 실시예들을 참조하여 본 발명을 더 간명하고 구체적으로 설명한다. 하지만, 첨부된 도면들은 본 발명의 통상적인 실시예들만을 예시한 것이므로, 본 발명의 범위를 제한하는 것으로 여겨서는 안 되며, 본 발명을 위하여 동일하게 효과적인 다른 실시예들이 허용될 수 있다는 것을 유의한다.
도 1은 일 실시예에 따른 요청 디바이스와 연결된 메모리의 개략도;
도 2는 일 실시예에 따른 요청 패킷을 도시하는 도면;
도 3은 일 실시예에 따른 상이한 응답 패킷들을 도시하는 도면;
도 4는 일 실시예에 따른 도 1의 메모리의 처리 회로의 상세도;
도 5는 일 실시예에 따른 DRAM의 개략도; 및
도 6은 일 실시예에 따른 메모리의 기능에 따른 개략적인 처리 흐름을 도시하는 도면이다.

Claims (20)

  1. 메모리로부터 디바이스로 데이터를 보내는 방법에 있어서,
    상기 디바이스에 상기 데이터를 보내기 위해, 상기 메모리에 의해 상기 디바이스로부터 요청을 수신하는 단계; 및
    상기 요청에 응답하여, 상기 메모리로부터 상기 디바이스로 상기 데이터 및 상기 데이터에 관한 정보를 보내는 단계를 포함하고; 상기 정보는 상기 디바이스로 보내진 데이터의 크기를 구체화(specify)하는 것을 특징으로 하는 데이터를 보내는 방법.
  2. 제 1 항에 있어서,
    상기 정보 및 상기 데이터는 데이터 프레임의 형태로 상기 디바이스로 보내지는 것을 특징으로 하는 데이터를 보내는 방법.
  3. 제 1 항에 있어서,
    상기 정보 및 상기 데이터는 복수의 별도의 데이터 프레임들의 형태로 상기 디바이스로 보내지고, 각각의 데이터 프레임은 상기 각각의 데이터 프레임에 존재하는 상기 데이터의 크기에 관한 정보를 포함하는 것을 특징으로 하는 데이터를 보내는 방법.
  4. 제 1 항에 있어서,
    상기 메모리에 의해, 상기 요청된 데이터를 더 작은 크기로 압축하는 단계를 더 포함하고, 상기 정보는 상기 압축된 데이터의 더 작은 크기를 구체화하고, 상기 프레임에 포함된 상기 압축된 데이터가 압축된 것을 구체화하는 것을 특징으로 하는 데이터를 보내는 방법.
  5. 제 1 항에 있어서,
    상기 메모리에 의해, 상기 요청된 데이터의 리던던시(redundancy)를 검사하는 단계를 더 포함하고,
    상기 요청된 데이터 내에 리던던트 데이터가 존재하는 경우, 메모리에 의해, 비-리던던트 데이터(non-redundant data)만을 보내고, 상기 정보는 상기 데이터 프레임 내에 상기 비-리던던트 데이터의 크기를 구체화하는 것을 특징으로 하는 데이터를 보내는 방법.
  6. 제 5 항에 있어서,
    상기 메모리는 상기 요청된 데이터 중 어느 것이 리던던트한지를 나타내는 정보를 상기 디바이스에 제공하는 것을 특징으로 하는 데이터를 보내는 방법.
  7. 제 1 항에 있어서,
    상기 데이터 및 정보를 보내는 방법은 2 개의 별도의 데이터 프레임의 형태 로 데이터를 보내는 방법을 포함하고, 각각의 데이터 프레임은 상기 각각의 데이터 프레임에 포함된 상기 데이터의 크기에 관한 정보를 포함하는 것을 특징으로 하는 데이터를 보내는 방법.
  8. 제 7 항에 있어서,
    각각의 데이터 프레임은 상기 데이터 프레임이 상기 디바이스의 어느 요청에 속해 있는지를 식별하는 정보를 포함하는 것을 특징으로 하는 데이터를 보내는 방법.
  9. DRAM(dynamic random access memory) 메모리로부터 디바이스로 데이터를 보내는 방법에 있어서,
    상기 디바이스로 데이터를 보내기 위해, 상기 DRAM 메모리에 의해 상기 디바이스로부터 요청을 수신하는 단계;
    상기 DRAM 메모리에 의해 상기 요청된 데이터를 판독하는 단계;
    상기 DRAM 메모리로부터 상기 디바이스로 상기 요청된 데이터 및 상기 요청된 데이터에 관한 정보를 보내는 단계를 포함하고, 상기 정보는 상기 디바이스로 보내진 데이터의 크기를 기술(describe)하는 것을 특징으로 하는 데이터를 보내는 방법.
  10. 메모리로부터 디바이스로 데이터를 보내는 방법에 있어서,
    상기 디바이스로 데이터를 보내기 위해, 상기 메모리에 의해 상기 디바이스로부터 요청을 수신하는 단계;
    메모리 코어로부터 상기 요청된 데이터를 판독하는 단계;
    처리 모드에 따라 상기 메모리에 의해 상기 판독 데이터를 처리하는 단계; 및
    데이터 프레임의 형태로, 상기 메모리로부터 상기 디바이스로 상기 처리된 데이터 및 상기 처리에 관한 처리 정보를 보내는 것을 특징으로 하는 데이터를 보내는 방법.
  11. 제 10 항에 있어서,
    상기 처리는 압축된 데이터를 생성하는 압축 처리이고, 상기 압축된 데이터는 상기 압축된 데이터가 압축된 것을 나타내는 정보와 함께 상기 디바이스로 보내지는 것을 특징으로 하는 데이터를 보내는 방법.
  12. 제 10 항에 있어서,
    상기 처리는 상기 판독 데이터의 리던던시 검사이고; 상기 보내진 데이터가 리던던시에 대해 검사되었고, 상기 데이터 프레임이 비-리던던트 데이터를 포함한다는 것을 나타내는 정보와 함께 비-리던던트 데이터가 보내지는 것을 특징으로 하는 데이터를 보내는 방법.
  13. 요청을 수신하고, 상기 요청에 응답하여 데이터 프레임들을 보내는 인터페이스를 갖는 메모리에 있어서,
    데이터를 저장하는 메모리 코어;
    상기 요청에 응답하여 상기 메모리 코어로부터 데이터를 판독하는 판독 회로; 및
    상기 인터페이스를 통해 1 이상의 데이터 프레임으로 상기 데이터를 보내기 이전에, 상기 판독 데이터를 처리하는 처리 회로를 포함하고, 상기 처리 회로는 상기 데이터의 크기를 검사하고, 상기 데이터의 크기에 관한 정보를 생성하며, 상기 데이터 프레임에 상기 정보를 추가하는 것을 특징으로 하는 메모리.
  14. 제 13 항에 있어서,
    상기 처리 회로는 상기 판독 데이터를 2 이상의 별도의 데이터 프레임들로 분할하고; 상기 처리 회로는 상기 각각의 데이터 프레임들에 대해 상기 각각의 데이터 프레임들에 존재하는 상기 데이터의 크기에 관한 정보를 생성하는 것을 특징으로 하는 메모리.
  15. 제 13 항에 있어서,
    상기 처리 회로는:
    상기 판독 데이터를 더 작은 크기의 압축된 데이터로 압축하고;
    상기 압축된 데이터의 크기에 관한 정보를 생성하며;
    상기 인터페이스를 통해 1 이상의 데이터 프레임의 형태로 상기 압축된 데이터의 크기에 관한 정보와 함께 상기 압축된 데이터를 보내는 것을 특징으로 하는 메모리.
  16. 제 15 항에 있어서,
    상기 처리 회로는 상기 데이터 프레임에 상기 압축에 관한 정보를 게재하는 것을 특징으로 하는 메모리.
  17. 제 13 항에 있어서,
    상기 처리 회로는 상기 데이터 프레임에 데이터 보정 정보를 추가하는 것을 특징으로 하는 메모리.
  18. 요청을 수신하고, 상기 요청에 응답하여 데이터 프레임을 보내는 인터페이스를 갖는 DRAM 메모리에 있어서,
    데이터를 저장하는 메모리 코어;
    상기 요청에 응답하여 상기 메모리 코어로부터 데이터를 판독하는 판독 회로; 및
    처리 회로를 포함하고, 상기 처리 회로는:
    상기 인터페이스를 통해 1 이상의 데이터 프레임의 형태로 데이터를 보내기 이전에 상기 판독 데이터를 처리하고;
    상기 데이터를 검사하며;
    상기 데이터에 관한 정보를 생성하고;
    상기 데이터 프레임에 상기 생성된 정보를 추가하는 것을 특징으로 하는 DRAM 메모리.
  19. 제 18 항에 있어서,
    상기 처리 회로는 상기 데이터 프레임과 함께 보내진 상기 데이터의 크기를 검사하고, 상기 데이터 프레임에 상기 데이터의 크기에 관한 정보를 추가하는 것을 특징으로 하는 DRAM 메모리.
  20. 요청을 수신하고, 상기 요청에 응답하여 데이터 프레임들을 보내는 인터페이스를 갖는 메모리에 있어서,
    데이터를 저장하는 메모리 코어;
    상기 요청에 응답하여 상기 메모리 코어로부터 데이터를 판독하는 판독 회로; 및
    사전설정된 처리 모드에 따라 상기 판독 데이터를 처리하는 처리 회로를 포함하고, 상기 처리 회로는 상기 실행된 처리 모드에 관한 처리 정보를 상기 처리된 데이터에 추가하고, 상기 인터페이스를 통해 1 이상의 데이터 프레임의 형태로 상기 처리 정보와 함께 상기 처리된 데이터를 보내는 것을 특징으로 하는 메모리.
KR1020070090221A 2006-09-07 2007-09-06 메모리로부터 데이터를 보내는 방법 및 장치 KR20080023151A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/530,015 2006-09-07
US11/530,015 US7757064B2 (en) 2006-09-07 2006-09-07 Method and apparatus for sending data from a memory

Publications (1)

Publication Number Publication Date
KR20080023151A true KR20080023151A (ko) 2008-03-12

Family

ID=39105290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070090221A KR20080023151A (ko) 2006-09-07 2007-09-06 메모리로부터 데이터를 보내는 방법 및 장치

Country Status (3)

Country Link
US (1) US7757064B2 (ko)
KR (1) KR20080023151A (ko)
DE (1) DE102007039819A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321778B2 (en) 2008-06-16 2012-11-27 Intel Corporation Efficient in-band reliability with separate cyclic redundancy code frames

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8196009B2 (en) 2008-06-18 2012-06-05 Intel Corporation Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4315308A (en) 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5748914A (en) * 1995-10-19 1998-05-05 Rambus, Inc. Protocol for communication with dynamic memory
DE112004000821B4 (de) * 2003-05-13 2016-12-01 Advanced Micro Devices, Inc. System mit einem Hauptrechner, der mit mehreren Speichermodulen über eine serielle Speicherverbindung verbunden ist
US7428689B2 (en) * 2005-08-30 2008-09-23 Infineon Technologies Ag Data memory system and method for transferring data into a data memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321778B2 (en) 2008-06-16 2012-11-27 Intel Corporation Efficient in-band reliability with separate cyclic redundancy code frames
KR101251100B1 (ko) * 2008-06-16 2013-04-04 인텔 코오퍼레이션 별도의 순환 중복 코드 프레임들을 이용하는 효율적인 대역내 신뢰도

Also Published As

Publication number Publication date
DE102007039819A1 (de) 2008-03-27
US20080065851A1 (en) 2008-03-13
US7757064B2 (en) 2010-07-13

Similar Documents

Publication Publication Date Title
US20200341838A1 (en) Encoding data in a modified-memory system
TWI590250B (zh) 用於組態用於混合記憶體模組之記憶體之輸入/輸出之裝置及方法
EP0549139B1 (en) Programmable memory timing
US6834014B2 (en) Semiconductor memory systems, methods, and devices for controlling active termination
US8112608B2 (en) Variable-width memory
US9251899B2 (en) Methods for upgrading main memory in computer systems to two-dimensional memory modules and master memory controllers
US10788985B2 (en) Apparatuses and methods for configurable memory array bank architectures
US6842393B2 (en) Method for selecting one or a bank of memory devices
JP2008521160A (ja) 時間多重化誤り訂正符号化をサポートするメモリ・トランザクション・バースト動作及びメモリ構成部分
JPH0516060B2 (ko)
US10929318B2 (en) Memory controller enabling dual-mode access to memory module
TW201603041A (zh) 具有局部記憶體之控制器之記憶體裝置
JP5599969B2 (ja) マルチポートメモリ、および該マルチポートメモリを備えるコンピュータシステム
JPH02297647A (ja) メモリ・システム
US7840744B2 (en) Rank select operation between an XIO interface and a double data rate interface
US6470417B1 (en) Emulation of next generation DRAM technology
US8441876B2 (en) Memory module including parallel test apparatus
TWI521544B (zh) 解碼器電路、記憶體裝置、以及多值保險絲電路
US7042800B2 (en) Method and memory system in which operating mode is set using address signal
US11157183B2 (en) Memory controller
KR20080023151A (ko) 메모리로부터 데이터를 보내는 방법 및 장치
US7210017B2 (en) Information processing apparatus, memory, information processing method, and program
JP2000172524A (ja) 半導体記憶装置
US11226768B2 (en) Memory controller and method for accessing memory module
US20060221733A1 (en) Controller apparatus for utilizing downgrade memory and method for operating the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application