KR20070032857A - 프로토콜 메모리, 메모리 모듈 및 프로토콜 메모리시스템과 그 제어방법. - Google Patents

프로토콜 메모리, 메모리 모듈 및 프로토콜 메모리시스템과 그 제어방법. Download PDF

Info

Publication number
KR20070032857A
KR20070032857A KR1020050087212A KR20050087212A KR20070032857A KR 20070032857 A KR20070032857 A KR 20070032857A KR 1020050087212 A KR1020050087212 A KR 1020050087212A KR 20050087212 A KR20050087212 A KR 20050087212A KR 20070032857 A KR20070032857 A KR 20070032857A
Authority
KR
South Korea
Prior art keywords
command
memory
packet
primary
memory device
Prior art date
Application number
KR1020050087212A
Other languages
English (en)
Other versions
KR100916215B1 (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 KR1020050087212A priority Critical patent/KR100916215B1/ko
Priority to US11/451,802 priority patent/US7966446B2/en
Priority to JP2006228308A priority patent/JP5052842B2/ja
Priority to TW095132757A priority patent/TW200731274A/zh
Priority to DE102006043311A priority patent/DE102006043311A1/de
Publication of KR20070032857A publication Critical patent/KR20070032857A/ko
Priority to US12/006,766 priority patent/US7930492B2/en
Application granted granted Critical
Publication of KR100916215B1 publication Critical patent/KR100916215B1/ko
Priority to US13/153,850 priority patent/US20110289269A1/en

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/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)

Abstract

패킷 데이터를 송수신하는 프로토콜 메모리 시스템을 개시한다. 본 발명에 의한 메모리 시스템은 프라이머리 커맨드와 세컨더리 커맨드를 포함하는 하나의 커맨드 패킷을 발생하는 호스트와, 호스트에 결합된 메모리 모듈을 구비한다. 메모리 모듈은 모듈기판 상에 프라이머리 메모리 소자와 세컨더리 메모리 소자를 실장한다. 프라이머리 메모리 소자는 호스트로부터 제공되는 커맨드 패킷을 수신하고, 커맨드 패킷에 포함된 프라이머리 커맨드에 응답하여 호스트와 데이터를 송수신하고, 커맨드 패킷에 포함된 세컨더리 커맨드에 응답하여 상기 세컨더리 커맨드를 포함하는 중계 커맨드 패킷을 중계한다. 세컨더리 메모리 소자는 상기 프라이머리 메모리 소자로부터 중계된 상기 중계 커맨드 패킷을 수신하고, 수신된 중계 커맨드 패킷에 포함된 세컨더리 커맨드에 응답하여 프라이머리 메모리 소자를 통하여 호스트와 데이터를 송수신한다. 따라서, 프로토콜 메모리 소자의 억세스와 동시에 서브 프로토콜 메모리 소자를 제어함으로서 데이터의 전송성능(throughput)을 높히고 병렬처리능력(concurrency)을 대폭 증가시킬 수 있다.

Description

프로토콜 메모리, 메모리 모듈 및 프로토콜 메모리 시스템과 그 제어방법.{PROTOCOL MEMORY, MEMORY MODULE, PROTOCL MEMORY SYSTEM AND METHOD FOR CONTROLLING THEREOF}
도 1은 본 발명에 의한 바람직한 일실시예의 메모리 시스템의 구성을 나타낸도면이다.
도 2a 내지 도 2c는 본 발명에 의한 2랭크 시스템의 메모리 모듈의 다양한 실장상태를 나타낸 측단면도들이다.
도 3은 본 발명에 의한 프로토콜 메모리 소자의 바람직한 일실시예의 블록 도이다.
도 4는 본 발명에 의한 오프셋 방식의 다운로딩 및 업로딩 패킷 데이터의 구성을 나타낸 도면이다.
도 5 및 도 6은 본 발명에 의한 패킷들의 구성을 각각 나타낸 도면들이다.
도 7 및 도 8은 본 발명에 의한 커맨드 패킷의 각 기능들의 진리표를 나타낸 도면들이다.
도 9는 본 발명에 의한 2랭크 메모리 시스템의 동작을 설명하기 위한 도면이다.
도 10은 본 발명에 의한 2랭크 메모리 시스템의 리드 동작 타이밍도이다.
도 11 내지 도 14는 도 10의 리드 동작에 따른 커맨드 및 어드레스 패킷의 구성을 나타낸다.
도 15는 본 발명에 의한 2랭크 메모리 시스템의 라이트 동작 타이밍도이다.
본 발명은 고속 고용량 메모리 시스템에 관한 것으로, 특히 호스트와 메모리 모듈 사이에 패킷을 주고 받는 프로토콜 메모리 시스템에 관한 것이다.
통상적으로 컴퓨터 시스템에서 메모리 시스템은 메모리 콘트롤러를 포함하는 호스트와 메모리 콘트롤러에 연결된 메모리 모듈로 구성된다.
메모리 시스템의 기억용량을 증가시키기 위해서는 메모리 모듈의 수를 증가시키거나 메모리 모듈 내부에 실장된 메모리 칩을 고용량의 메모리 칩으로 구성하는 것이다.
메모리 모듈의 수를 증가시키는 경우에는 메모리 모듈들의 데이터 버스가 공통 연결되는 멀티 드롭 방식의 버스 구조가 된다. 멀티 드롭 방식의 버스 구조는 하나의 버스에 복수의 메모리 모듈들이 공통으로 연결되므로 부하량이 증가하여 데이터의 전송속도가 떨어지는 단점이 있다. 따라서 버스에 연결되는 DRAM의 숫자는 주어진 동작속도에 의해 제한되어 SDRAM에서는 최대 8개, DDR에서는 4개 그리고 DDR2/3에서는 2개 등으로 제한되어지고 있다.
그러나 컴퓨터 시스템의 고속화의 추세가 이러한 여러 개의 DRAM이 controller에 연결되는 구조를 허용할 수 없는 상황, 예를들면 2Gbps 이상에서는 controller와 DRAM간의 연결은 1:1이 될 수 (PTP : point-to-point라 일컬음) 밖에 없다. 이는 데이터 버스에서는 더욱 그러하겠지만 커맨드 및 어드레스 버스도 예외일 수는 없다.
이러한 PTP 구조에서 생기는 가장 큰 문제는 메모리의 고용량화를 위해 하나의 메모리 모듈에 많은 수의 메모리 소자들을 실장할 경우 메모리 콘트롤러와 메모리 모듈을 연결하기 위한 메모리 모듈의 핀수가 증가한다는 것이다.
이를 극복하기 위하여 메모리 콘트롤러와 메모리 소자들 간의 전송신호를 패킷 형태로 구성하는 연구가 진행되고 있다.
본 발명의 목적은 이와 같은 종래 기술의 문제점을 해결하기 위하여 복수의커맨드를 포함하는 하나의 패킷을 수신하고 복수의 커맨드들 중 일부 커맨드를 중계할 수 있는 프로토콜 메모리 소자를 제공하는 데 있다.
본 발명의 다른 목적은 종속 연결된 프로토콜 메모리 소자들을 포함하는 메모리 모듈을 제공하는 데 있다.
본 발명의 또 다른 목적은 종속 결합된 복수의 메모리 소자들의 각 커맨드를 하나의 패킷으로 구성하여 제공하고 메모리 소자들 사이에 이를 중계하도록 함으로써 전송능력을 높이고 병렬처리능력을 증가시킬 수 있는 메모리 시스템 및 그 제어방법을 제공하는 데 있다.
상기 목적을 달성하기 위하여 본 발명의 프로토콜 메모리 소자는 제1포트와, 제2포트와, 데이터를 저장하기 위한 메모리 코아와, 제1포트를 통해 호스트로부터 제공된 커맨드 패킷을 수신하고, 상기 커맨드 패킷은 프라이머리 커맨드와 세컨더리 커맨드를 포함하며, 상기 프라이머리 커맨드에 의해 상기 메모리 코아와 상기 호스트 사이의 메모리 데이터 송수신을 제어하고, 상기 세컨더리 커맨드를 포함한 중계 커맨드 패킷을 상기 제2포트를 통해 다른 프로토콜 메모리 소자에 중계하는 링크 처리부를 구비한 것을 특징으로 한다. 본 발명에서 중계 커맨드 패킷은 메모리 소자와 메모리 소자 사이에서 중계되는 커맨드 패킷으로 정의한다.
본 발명에서 링크처리부는 제2포트를 통하여 다른 프로토콜 메모리 소자로부터 제공된 데이터 패킷을 수신하고, 수신된 데이터 패킷을 제1포트를 통하여 호스트로 중계한다. 링크처리부는 세컨더리 커맨드에 포함된 중계지시정보에 응답하여 상기 중계 커맨드 패킷을 중계한다. 여기서, 중계지시정보가 “0”이면 중계동작을 수행하지 않고, “1”이면 중계동작을 수행하도록 설정되는 것이 바람직하다.
본 발명에 의한 메모리 시스템은 프라이머리 커맨드와 세컨더리 커맨드를 포함하는 하나의 커맨드 패킷을 발생하는 호스트와, 호스트에 결합된 메모리 모듈을 구비한다. 메모리 모듈은 모듈기판 상에 프라이머리 메모리 소자와 세컨더리 메모리 소자를 실장한다. 프라이머리 메모리 소자는 호스트로부터 제공되는 커맨드 패킷을 수신하고, 커맨드 패킷에 포함된 프라이머리 커맨드에 응답하여 호스트와 데이터를 송수신하고, 커맨드 패킷에 포함된 세컨더리 커맨드에 응답하여 상기 세컨더리 커맨드를 포함하는 중계 커맨드 패킷을 중계한다. 세컨더리 메모리 소자는 상 기 프라이머리 메모리 소자로부터 중계된 상기 중계 커맨드 패킷을 수신하고, 수신된 중계 커맨드 패킷에 포함된 세컨더리 커맨드에 응답하여 프라이머리 메모리 소자를 통하여 호스트와 데이터를 송수신한다.
호스트, 즉 메모리 콘트롤러는 기계적 독출이 가능한 기록매체와, 기록매체에 저장되고, 기계적 독출이 가능한 프로그램 코드를 구비한다. 프로그램 코드는 프라이머리 메모리 소자의 동작을 위한 프라이머리 커맨드를 발생하고, 세컨더리 메모리 소자의 동작을 위한 세컨더리 커맨드를 발생하고, 프라이머리 커맨드와 세컨더리 커맨드를 포함하는 하나의 커맨드 패킷을 발생하는 명령을 포함한다.
본 발명의 종속 결합된 메모리 소자들의 제어방법은 제1메모리 소자에서 프라이머리 커맨드와 세컨더리 커맨드를 포함하는 커맨드 패킷을 수신하고, 수신된 커맨드 패킷의 프라이머리 커맨드를 수행하면서, 세컨더리 커맨드를 포함하는 중계 커맨드 패킷을 제2메모리 소자로 중계한다. 제1메모리 소자로부터 중계된 중계 커맨드 패킷을 제2메모리 소자에서 수신하고, 제2 메모리소자에서 수신된 중계 커맨드 패킷의 세컨더리 커맨드를 수행한다.
호스트와 복수의 프라이머리 프로토콜 메모리들 각각은 n비트 다운 로딩 버스와, n비트 업로딩 버스를 통해 직접 연결된다. n 비트 다운 로딩 버스를 통하여 호스트로부터 프라이머리 프로토콜 메모리 소자로 커맨드 및 어드레스 패킷, 또는 커맨드 및 어드레스 패킷 및 라이트 데이터 패킷을 전송하고, n 비트 업로딩 버스를 통하여 프라이머리 프로토콜 메모리 소자로부터 호스트로 리드 데이터 패킷을 전송한다. 프라이머리 프로토콜 메모리와 세컨더리 프로토콜 메모리는 n비트 다운 로딩 중계버스와, n비트 업로딩 중계버스를 통해 직접 연결된다. n 비트 다운 로딩 중계버스를 통하여 프라이머리 프로토콜 메모리 소자로부터 세컨더리 프로토콜 메모리 소자로 커맨드 및 어드레스 패킷, 또는 커맨드 및 어드레스 패킷 및 라이트 데이터 패킷을 전송하고, n 비트 업 로딩 중계버스를 통하여 세컨더리 프로토콜 메모리 소자로부터 프라이머리 프로토콜 메모리 소자로 리드 데이터 패킷을 전송한다.
프라이머리 프로토콜 메모리는 리드 또는 라이트 동작과 동시에 세컨더리 프로토콜 메모리와 호스트 사이의 데이터 송수신을 중계한다.
프라이머리 프로토콜 메모리는 제1포트와, 제2포트와, 데이터를 저장하기 위한 메모리 코아와, 제1포트를 통해 연결된 호스트와 메모리 코아 사이의 데이터 송수신을 제어함과 동시에 제2포트를 통해 연결된 다른 프로토콜 메모리 소자와 상기 호스트 사이의 데이터 송수신을 중계하는 링크 처리부를 포함한다.
본 발명에서 메모리 코아는 DDR2/3 DRAM 코아로 구성하는 것이 바람직하다.
제1포트는 커맨드 및 어드레스 데이터와 라이트 데이터를 포함하는 다운 로딩 패킷을 호스트로부터 다운받기 위한 다운로딩버스와, 리드 데이터를 포함하는 업 로딩 패킷을 호스트에 업로딩하기 위한 업 로딩 버스를 포함한다.
본 발명에서 다운 로딩 버스 및 업 로딩 버스의 데이터 라인 폭은 각각 m라인이고, 다운 로딩 패킷 및 업 로딩 패킷은 메모리 코아의 1클록 주기 동안 q회 연속으로 제공되는 병렬 m비트 데이터들로 구성되는 것이 바람직하다. 다운로딩 패킷은 커맨드 및 어드레스 패킷 또는 커맨드 어드레스 패킷 및 라이트 데이터 패킷을 포함한다. 커맨드 및 어드레스 패킷은 메모리 코아를 제어하기 위한 메인 커맨드 및 어드레스 정보와, 제2포트를 통해 연결된 세컨더리 프로토콜 메모리 소자에게 중계되는 서브 커맨드 및 어드레스 정보를 포함한다.
제2포트는 커맨드 및 어드레스 데이터와 라이트 데이터를 포함하는 다운 로딩 패킷을 세컨더리 프로토콜 메모리 소자에게 다운하기 위한 다운로딩 중계버스와, 리드 데이터를 포함하는 업 로딩 패킷을 세컨더리 프로토콜 메모리 소자로부터 업로딩하기 위한 업 로딩 중계버스를 포함한다.
본 발명에서 스마트 상태란 메모리 소자가 어떤 로직에 의해 주어진 타스크를 원활히 수행하고 있는 상태이고, 딜리전트 상태란 수동적으로 제한된 타스크만을 수행하고 있는 상태이고, 데드 상태는 거의 타스크를 수행하지 않는 상태를 의미한다.
본 발명의 패킷은 두 가지 형태로 제공될 수 있다. 하나는 커맨드 및 어드레스 패킷에 함께 보낼 수 있는 각 랭크의 커맨드 및 어드레스 그룹 수보다 랭크수가 작은 경우이고 하나는 랭크 수가 많은 경우이다. 예컨대 패킷 비트수가 80비트인 경우 각 랭크의 커맨드 및 어드레스 비트수가 30비트로 할당될 경우 2랭크 시스템의 경우에는 각 랭크의 커맨드 및 어드레스 정보를 모두 포함할 수 있으므로 하나의 패킷 내에 함께 실어서 보내는 멀티플렉싱 방식을 사용한다. 그러나, 4뱅크 및 8뱅크의 경우에는 하나의 패킷에 모든 랭크의 커맨드 및 어드레스를 실을 수 없기 대문에 오프셋방식을 사용한 제한된 백그라운드 오퍼레이션 정보를 사용한다.
본 발명의 프로토콜 메모리 시스템의 동작방법은 호스트에 대해서 종속 연결 된 복수의 랭크들에 대한 각 커맨드들을 포함하는 패킷 데이터를 수신하고, 호스트와 직접 연결된 메인 랭크의 커맨드를 수행하고, 메인 랭크에 연결된 서브 랭크의 커맨드를 포함하는 패킷을 중계하는 단계를 포함한다. 또한, 서브 랭크의 커맨드를 수행하고, 서브 랭크로부터 메인 랭크에 전달된 데이터 패킷을 호스트로 중계하는 단계를 더 포함하는 것이 바람직하다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 구체적으로 설명하고자 한다. 이 실시예는 이 기술에 숙련된 자들이 본 발명을 실시할 수 있게 충분히 상세하게 기술한다.
< 실시예 >
도 1은 본 발명에 의한 바람직한 일실시예의 메모리 시스템의 구성을 나타낸다.
도면을 참조하면, 메모리 시스템은 호스트(100)와 메모리 모듈(200)을 포함한다. 여기서 호스트(100)는 넓은 의미로는 메모리 모듈이 삽입되는 메모리 모듈 소켓이 실장된 메인 보드를 말한다. 좁은 의미로는 메모리 콘트롤러 칩셋 또는 노스 브리지 칩셋 등과 같이 메모리 모듈과 직접 교신하는 칩을 칭한다.
호스트(100)는 4 채널(CH0~CH3)을 통해 메모리 모듈(200)과 연결된다. 각 채널은 n비트 다운 로딩 버스(DLB)와 n비트 업 로딩 버스(ULB)로 구성된다. 호스트(200)는 복수의 기준클록신호(FCLK)들을 메모리 모듈(200)에 제공한다.
n 비트 다운 로딩 버스는 차동 입출력라인 구조로 형성되고, m 비트 패킷 데이터 라인들, 라이트 클록 라인, p개의 전원전압라인들을 포함한다. 또한 n 비트 업 로딩 버스는 마찬가지로 차동 입출력라인 구조로 형성되고, m 비트 패킷 데이터 라인들, 리드 클록 라인, p개의 전원전압라인들을 포함한다
따라서, 본 발명은 호스트(100)와 메모리 모듈(200)을 연결하기 위한 핀 수는 차동 입출력라인 구조이므로 각 버스당 최소한 2m(data line pairs) + 2(clock line pair) + 2p(power line pairs)의 핀수가 소요된다. 여기서, m=8, p=7이라면 채널당 64(=32(up loading bus)+32(down loading bus))핀이 소요되므로 4채널 메모리 모듈의 핀수는 기타 기준클록 핀수 등을 포함한다면 대략 260핀 내지 280핀으로 구성될 수 있다. 따라서, 본 발명의 메모리 모듈은 기존의 DDR2/3 의 메모리 모듈의 핀수와 큰 차이 없이 구성할 수 있다.
본 실시예에서 메모리 모듈(200)은 채널당 프라이머리 메모리 소자(210)와 세컨더리 메모리 소자(220)로 구성된다. 프라이머리 메모리 소자(210)는 외부버스(OBUS)를 통하여 호스트(100)와 직접 연결된다. 프라이머리 메모리 소자(210)는 내부버스(또는 중계버스)(IBUS)를 통해 세컨더리 메모리 소자(220)와 연결된다. 따라서, 세컨더리 메모리 소자(220)는 프라이머리 메모리 소자(210)를 통하여 호스트(100)와 연결된다.
도 2a, 도 2b, 도 2c는 도 1의 메모리 모듈 내의 다양한 실장상태를 나타낸 측단면도들이다. 도 2a는 모듈기판(202)의 양면에 각각 실장된 상태를 나타내고, 도 2b는 모듈기판(202)의 전면(202b)에 단층 구조로 실장된 예를 나타내고, 도 2c는 모듈기판(202)의 전면(202a)에 복층 구조로 실장된 상태를 나타낸다. 양면 실장구조(도 2a)와 단층 실장구조(도 2b)는 모듈기판(202)의 다층 인쇄회로기판의 패 턴형성에 의해 내부버스(IBUS)가 형성되고, 복층 실장구조(도 2c)는 멀티 레이어 칩 형성에 의해 내부버스(IBUS)가 형성된다.
도 3은 본 발명에 의한 프라이머리 메모리 소자의 바람직한 일실시예의 블록 구성을 나타낸다.
도 3을 참조하면, 프라이머리 메모리 소자(210)는 제1포트(212), 제2포트(214), 메모리 코아(216), 링크처리부(218), 위상동기회로(219)를 포함한다. 제1포트(212)는 호스트(100)와 직접 연결되는 외부버스(OBUS)와 연결된다. 제1포트(212)는 n비트 다운로딩버스(DLB)와 n비트 업로딩버스(ULB)에 연결된다. 제2포트(214)는 n비트 다운로딩 중계버스(DLRB)와 n비트 업로딩 중계버스(ULRB)에 연결된다.
메모리 코아(216)는 링크 처리부(218)을 통하여 제1포트(212) 및 제2포트(214)에 연결된다. 위상동기회로(209)는 기준클록신호(FCLK)를 입력하여 메모리 클록신호(MCLK), 리드 클록신호(RCLK), 라이트 클록신호(WCLK)를 각각 생성한다.
링크처리부(218)는 제어부(218a), 제1스위치(218b), 제2스위치(218c), 다운로딩 중계버퍼(218d)와 업로딩 중계버퍼(218e)를 포함한다. 다운로딩버스(DLB)는 제어부(218a)와 다운로딩 중계버퍼(218d)에 각각 연결된다. 다운로딩 중계버퍼(218d)는 다운로딩 내부 중계버스(DLIRB)를 통하여 제2스위치(218c)에 연결된다. 업로딩버스(ULB)는 제1스위치(218b)의 출력단자에 연결된다. 다운로딩 중계버스(DLRB)는 제2 스위치(218c)에 연결된다. 업로딩 중계버스(ULRB)는 업로딩 중계버퍼(218e)에 연결된다. 업로딩 내부 중계버스(ULIRB)는 업로딩 중계버퍼(218e)와 제1스위치(218b)의 일측 입력단자 사이에 연결된다. 업로딩 내부버스(ULIB)는 제어부 (218a)와 제1스위치(218b)의 다른 일측 입력단자 사이에 연결된다. 제어부(218a)는 메모리 코아(216)와 메모리 버스(MB)를 통해 연결된다. 제어부(218a)는 제어신호선(CSL1)을 통하여 제1스위치(218b)를 온/오프제어한다. 제어부(218a)는 제어신호선(CSL2)을 통하여 제2스위치(218c)를 온/오프제어한다. 제어부(218a)는 제어신호선(CSL3, CsL4)을 통하여 업로딩 중계버퍼(218e)와 다운로딩 중계버퍼(218d)의 리드 라이트를 제어한다.
제1스위치(218b)는 프라이머리 메모리(210)의 리드 동작시에 ULIB가 ULB에 연결되도록 스위칭된다. 제1스위치(218b)는 서브 프로토콜 메모리(220)의 리드 중계동작시에 ULIRB가 ULB에 연결되도록 스위칭된다. 제2스위치(218c)는 다운로딩 중계동작시에 DLIRB가 DLRB에 연결되도록 스위칭된다.
다운로딩 중계버퍼(218d)는 제1포트(212)를 통해 수신된 다운로딩 패킷 데이터를 저장하고, 저장된 다운로딩 패킷 데이터를 제2포트(214)를 통해 송신한다. 업로딩 중계버퍼(218e)는 제2포트(214)를 통해 수신된 업로딩 패킷 데이터를 저장하고, 저장된 업로딩 패킷 데이터를 제1포트(212)를 통해 송신한다.
제어부(218a)는 패킷과 함께 수신된 라이트 클록신호에 응답하여 다운로딩 패킷 데이터를 수신하여 커맨드 및 어드레스 패킷을 디코딩한다.
디코딩된 명령이 라이트 명령이면, 라이트 패킷 데이터를 메모리 데이터로 변환시킨다. 변환된 메모리 데이터는 메모리 클록신호(MCLK)에 응답하여 메모리 코아(216)에 기입된다. 디코딩된 명령이 리드명령이라면, 메모리 코아(216)으로부터 데이터를 독출하여 리드 패킷 데이터를 생성시킨다. 생성된 리드 패킷 데이터는 제 1스위치(218b) 및 업로딩 버스(ULB)를 통해 호스트(100)로 송신된다. 이때 리드클록신호(RCLK)도 함께 송신된다.
디코딩된 명령이 다운로딩 중계명령이면, 다운 로딩 중계버퍼(218d)에 저장된 패킷 데이터를 DLIRB, 제2스위치(218c), DLRB를 통해 세컨더리 메모리(220)에 중계시킨다. 이때 라이트 클록신호(WCLK)도 함께 송신된다.
디코딩된 명령이 업로딩 중계명령이면, 업로딩 중계버퍼(218e)에 저장된 패킷 데이터를 ULIRB, 제1스위치(218b), ULB를 통해 호스트(100)로 중계시킨다. 여기서, 디코딩된 명령이 리드명령과 업로딩 중계명령이 동시에 지시된 경우에 병렬처리방식으로 동시에 진행이 가능하다. 구체적인 설명은 후술한다.
도 4는 본 발명에 의한 다운로딩 및 업로딩 패킷의 구성을 나타낸다. 도 5 및 도 6은 본 발명에 의한 패킷들의 구성을 각각 나타낸 도면들이다. 도 7 및 도 8은 본 발명에 의한 커맨드 패킷의 각 기능들의 진리표를 나타낸 도면들이다. 이들 도면들을 참조하여 본 발명의 패킷 구조를 설명하면 다음과 같다.
다운로딩 패킷은 도 4에 도시한 바와 같이 커맨드 및 어드레스 패킷과 라이트 데이터 패킷을 포함하거나, 커맨드 및 어드레스 패킷 단독으로 구성될 수 있다. 업로딩 패킷 은 도 4에 도시한 바와 같이 하나 이상의 리드 데이터 패킷을 포함한다. 도면에 도시한 실시예에서 단위 패킷(400)은 메모리 클록의 1주기동안 m( = 8)비트 병렬 데이터를 연속하여 q( = 10)회 전송하기 위하여 세로 8핀과 가로 10버스트(burst)의 사이즈를 가진 80( = m x q)비트 사이즈로 구성된다.
패킷의 종류는 커맨드 및 어드레스 패킷(410)과 데이터 패킷(420)으로 구분 된다. 커맨드 및 어드레스 패킷(410)은 메모리소자들(210, 220)의 커맨드 및 어드레스 정보를 포함한다. 도 5의 참조번호 412는 프라이머리 랭크의 커맨드 및 어드레스 정보이고, 참조번호 414는 세컨더리 랭크의 커맨드 및 어드레스 정보이다.
412영역의 1컬럼의 FOP0 ~ FOP3은 Fore-Ground Operation 커맨드로 프라이머리 메모리 소자(210)의 커맨드 조합을 제공한다. 커맨드 조합은 도 7에 도시되어 있다. 커맨드는 ACT, READ, WRITE, READ & APC, WRITE & APC, REF, ARF, SRF, PDM, MRS, NOP 등의 일반적인 디램의 커맨드들과, BAOS, RAOS, CAOS, RDOS, WTOS 등의 오프셋 커맨드들이 제공된다.
BAOS는 뱅크 어드레스 오프셋 커맨드이다. BAOS는 프라이머리 메모리와 세컨더리 메모리의 뱅크어드레스가 서로 다른 경우 뱅크 오프셋을 알리는 커맨드이다. 즉, 이 커맨드가 수신되면 세컨더리 메모리에서는 뱅크어드레스(여기서 뱅크어드레스는 프라이머리 메모리의 뱅크 어드레스와 동일)에 주어진 오프셋 값에 부가하여 지정된 뱅크에 대하여 프라이머리 메모리에서 수행되는 동작과 동일한 동작을 수행한다. 따라서, 세컨더리 메모리는 프라이머리 메모리에 종속적인 동작을 수행한다. 예컨대, 프라이머리 메모리는 뱅크0을 프리차지시키고, 세컨더리 메모리는 뱅크1을 프리차지시키고 싶다면, 프라이머리 메모리에는 프리자치 커맨드를 하달하고, 세컨더리 메모리에는 뱅크 오프셋값이 +1인 BAOS 커맨드를 하달하면 된다.
RAOS는 로우 어드레스 오프셋 커맨드이고, CAOS는 컬럼 어드레스 오프셋 커맨드이고, RDOS는 리드 오프셋 커맨드이고 WTOS는 라이트 오프셋 커맨드이다. 이들 오프셋 커맨드들은 상술한 BAOS 커맨드와 유사하게 프라이머리 메모리의 커맨드와 동일한 커맨드를 세컨더리 메모리의 오프셋값으로 지정된 저장장소에 대해 하달하기 위한 것이다.
여기서 오프셋 값은 MRS 등을 통하여 미리 특정 값으로 세팅하거나 패킷 내에 코드값들의 조합이나 미사용 예비비트부분을 통하여 커맨드와 동시에 제공할 수 있다.
이와 같은 오프셋 커맨드는 메인 데이터와 서브 데이터의 관계(예컨대 화상데이터와 그 속성 데이터의 관계, 또는 동영상 압축데이터에서 독립 필드 데이터와 종속필드 데이터의 관계)를 가진 데이터의 처리시 매우 유용하다.
CS0 ~ CS2는 모듈 내의 랭크를 선택하기 위한 비트들로 최대 RANK0 ~ RANK7까지 선택 가능하다. 따라서, CS0 ~ CS2의 랭크 지정신호에 해당되는 랭크의 프로토콜 메모리소자는 412 영역의 명령을 수행하게 된다. 2컬럼의 BA0~BA4는 뱅크 어드레스로 최대 16뱅크까지 지정이 가능하다. 2 내지 4컬럼의 A0~A10은 로우 어드레스 또는 컬럼 어드레스로 제공된다. RFU(Reserved for Future Use)는 미래 확장을 위한 예비비트들이다.
414영역의 5컬럼의 BGO는 중계지시(Back-Ground Operation 또는 Repeat Operation)명령으로 “0”의 값이면 중계동작 전체가 무시되고, Fore-Ground Operation 명령, 즉 412영역의 명령만을 수행한다. “1”이면 FGO 및 BGO 명령을 동시에 진행하거나 BGO 명령만을 수행한다.
BP0 ~ BOP3은 Back-Ground Operation 커맨드로 세컨더리 메모리 소자(220)의 커맨드 조합을 제공한다. 커맨드의 내용은 상술한 Fore-Ground Operation 커맨드와 동일하다. RS0~RS2는 BGO 명령이 수행될 세컨더리 랭크들을 지정하기 위한 비트들이다. 세컨더리 랭크 지정은 도 8에 도시한 바와 같이 4랭크 구조에서 단독 또는 동시 그룹지정이 가능하다. 8랭크 구조에서는 7개의 세컨더리 랭크들(RANK1~RANK7)을 하나씩 지정하는 것이 가능하다.
도 6을 참조하면, 데이터 패킷(422, 424)은 각각 8비트 데이터들이 10회 연속된 것으로 최대 80비트 사이즈를 가진다. 80비트 전체가 메모리 소자에 라이트되는 데이터이거나 또는 메모리 소자로부터 리드된 데이터들로 구성된다. 라이트 또는 리드하고자 하는 데이터의 사이즈가 80비트를 초과하게 되면 연속하여 또 하나의 데이터 패킷을 구성하게 된다. 따라서 데이터 패킷은 적어도 하나 이상이 연속하여 전송될 수 있다.
< 동작 설명 >
1. 리드 동작
도 9는 본 발명에 의한 2랭크 메모리 시스템의 리드 동작을 설명하기 위한 도면이다. 도 10은 도 9의 각부 동작 타이밍을 나타낸다. 도 11 내지 도 14는 각 동작에 따른 커맨드 및 어드레스 패킷의 구성을 나타낸다.
도면을 참조하면, 참조번호 902는 랭크0의 프라이머리 메모리(210)의 FGO 동작 흐름을 나타내고, 참조번호 904는 랭크1의 세컨더리 메모리(220)의 BGO 동작 흐름을 나타낸다.
프로토콜 메모리(210)는 DLB를 통해 호스트(100)로부터 도 11의 커맨드 및 어드레스 패킷을 접수한다. CS0~CS2 값이 “000”이므로 FOP0~FOP3의 “0000” 커맨드인 ACT 커맨드를 수행한다. 즉, 프라이머리 메모리(210)의 뱅크0의 로우 어드레스를 활성화시켜서(즉 메모리의 뱅크를 오픈하여) 액티브된 로우에 관련된 복수의 메모리 셀들로부터 셀데이터를 가져다가 센스증폭기로 옮겨 놓는다. 이어서, 프라이머리 메모리(210)는 BGO값이“1”이므로 도 10의 T4의 선단에서 DLRB를 통해 세컨더리 메모리(220)에 도 12의 랭크1의 커맨드 및 어드레스 패킷, 즉 중계 커맨드 패킷을 중계한다. 세컨더리 메모리(220)는 중계된 패킷을 해석한다. CS0~CS2 값이 “001”이므로 FOP0~FOP3의 “0000”커맨드인 ACT 커맨드를 수행한다. 즉, 세컨더리 메모리(220)의 뱅크0의 로우 어드레스를 활성화시켜서(즉 메모리의 뱅크를 오픈하여) 액티브된 로우에 관련된 복수의 메모리 셀들로부터 셀데이터를 가져다가 센스증폭기로 옮겨 놓는다
도 10의 T7의 선단에서 프라이머리 메모리(210)는 도 13의 커맨드 및 어드레스 패킷을 접수한다. CS0~CS2 값이 “000”이므로 FOP0~FOP3의 “0001”커맨드인 READ 커맨드를 수행한다. 즉, 프라이머리 메모리(210)의 뱅크0의 센스증폭기에 센싱된 셀데이터를 메모리 코아의 입출력회로를 통해 링크제어부에 전달한다. 링크제어부에서는 전달된 메모리 데이터를 리드 데이터 패킷으로 형성한다. 따라서, 5클록 CAS 레이턴시 이후에 ULB를 통해 리드 데이터 패킷이 호스트(100)로 전달된다. 이어서, 프라이머리 메모리(210)는 BGO값이 “1”이므로 도 10의 T10의 선단에서 DLRB를 통해 세컨더리 메모리(220)에 도 14의 랭크1의 커맨드 및 어드레스 패킷을 중계한다.
도 10의 T10의 선단에서 세컨더리 메모리(220)는 도 14의 커맨드 및 어드레스 패킷을 접수한다. CS0~CS2 값이 “001”이므로 BOP0~BOP3의 “0001”커맨드인 READ 커맨드를 수행한다. 즉, 세컨더리 메모리(210)의 뱅크0의 센스증폭기에 센싱된 셀데이터를 메모리 코아의 입출력회로를 통해 링크제어부에 전달한다. 링크제어부에서는 전달된 메모리 데이터를 리드 데이터 패킷 으로 형성한다 따라서, 5클록 CAS 레이턴시 이후에 ULRB를 통해 리드 데이터 패킷이 랭크0의 프라이머리 메모리(210)로 전달된다. 프라이머리 메모리(210)에서는 전달된 랭크1의 리드 데이터 패킷을 업 로딩 중계버퍼에 일시 저장한다. 업로딩 중계버퍼에 저장된 데이터 패킷은 즉시 스위치(218b)를 통하여 호스트(100)로 전달된다. 즉, 프라이머리 메모리(210)의 중계 지연시간(~3ns)이 지난 T18의 선단에서 ULB를 통해 호스트(100)로 전달된다.
따라서, 프라이머리 메모리(210)은 자신의 리드 커맨드를 처리함과 동시에 세컨더리 메모리(220)의 리드 커맨드 중계에 이어서 리드 데이터의 중계 동작을 수행하게 되는 것이다.
2. 라이트 동작
도 15는 본 발명에 의한 2랭크 메모리 시스템의 라이트 동작을 설명하기 위한 도면이다. 라이트 동작은 DLB를 통해 커맨드 및 어드레스 패킷이 도 15의 T1의 선단에서 프라이머리 메모리(210)에 전달된다. 프라이머리 메모리(210)는 커맨드를 해석하여 라이트하고자 하는 뱅크0의 로우를 활성화시킨다. 동시에 프라이머리 메 모리(210)는 BGO값이“1”이므로 세컨더리 메모리(220)의 커맨드 및 어드레스 패킷을 생성하여 세컨더리 메모리(220)에 중계한다. 세컨더리 메모리(220)에서는 T4의 선단에서 커맨드 및 어드레스 패킷을 수신한다. 세컨더리 메모리 (220)는 수신된 커맨드를 해석하고 라이트하고자 하는 뱅크 0의 로우를 활성화시킨다.
T7의 선단에서 라이트 커맨드 패킷에 이어서 연속하여 라이트 데이터 패킷들이 프라이머리 메모리(210)에 전달된다. 프라이머리 메모리(210)는 커맨드를 해석하여 해당 컬럼을 활성화시켜서 라이트 데이터를 셀에 기입한다. 동시에 프라이머리 메모리(210)는 세컨더리 메모리(220)의 커맨드 및 어드레스 패킷을 생성하여 세컨더리 메모리(220)에 중계한다. 세컨더리 메모리(220)에서는 T10의 선단에서 커맨드 및 어드레스 패킷과 라이트 데이터 패킷을 수신한다. 세컨더리 메모리 (220)는 수신된 커맨드를 해석하고 해당 컬럼을 활성화시켜서 라이트 데이터를 셀에 기입한다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
상술한 바와 같이 본 발명에서는 프로토콜 메모리 소자의 억세스와 동시에 서브 프로토콜 메모리 소자를 제어함으로서 데이터의 전송성능(throughput)을 높히 고 병렬처리능력(concurrency)을 대폭 증가시킬 수 있다.

Claims (7)

  1. 제1포트;
    제2포트;
    데이터를 저장하기 위한 메모리 코아;
    상기 제1포트를 통해 호스트로부터 제공된 커맨드 패킷을 수신하고, 상기 커맨드 패킷은 프라이머리 커맨드와 세컨더리 커맨드를 포함하며, 상기 프라이머리 커맨드에 의해 상기 메모리 코아와 상기 호스트 사이의 메모리 데이터 송수신을 제어하고, 상기 세컨더리 커맨드를 포함한 중계 커맨드 패킷을 상기 제2포트를 통해 다른 프로토콜 메모리 소자에 중계하는 링크 처리부를 구비한 것을 특징으로 하는 프로토콜 메모리 소자.
  2. 제1항에 있어서, 상기 링크처리부는
    상기 제2포트를 통하여 상기 다른 프로토콜 메모리 소자로부터 제공된 데이터 패킷을 수신하고, 수신된 데이터 패킷을 상기 제1포트를 통하여 상기 호스트로 중계하는 것을 특징으로 하는 프로토콜 메모리 소자.
  3. 제1항에 있어서, 상기 링크처리부는
    상기 세컨더리 커맨드에 포함된 중계지시정보에 응답하여 상기 중계 커맨드패킷을 중계하는 것을 특징으로 하는 프로토콜 메모리 소자.
  4. 하나의 모듈기판 상에 종속 결합된 프라이머리 메모리 소자와 세컨더리 메모리 소자를 구비하고,
    상기 프라이머리 메모리 소자는 호스트로부터 제공되는 커맨드 패킷을 수신하고, 상기 커맨드 패킷에 포함된 프라이머리 커맨드에 응답하여 호스트와 데이터를 송수신하고, 상기 커맨드 패킷에 포함된 세컨더리 커맨드에 응답하여 상기 세컨더리 커맨드를 포함하는 중계 커맨드 패킷을 중계하고,
    상기 세컨더리 메모리 소자는 상기 프라이머리 메모리 소자로부터 제공된 상기 중계 커맨드 패킷을 수신하고, 상기 수신된 중계 커맨드 패킷에 포함된 세컨더리 커맨드에 응답하여 상기 프라이머리 메모리 소자를 통하여 상기 호스트와 데이터를 송수신하는 것을 특징으로 하는 메모리 모듈.
  5. 프라이머리 커맨드와 세컨더리 커맨드를 포함하는 하나의 커맨드 패킷을 발생하는 호스트; 및
    상기 호스트에 결합된 메모리 모듈을 구비하고,
    상기 메모리 모듈은 모듈기판 상에 프라이머리 메모리 소자와 세컨더리 메모리 소자를 실장하고,
    상기 프라이머리 메모리 소자는 상기 호스트로부터 제공되는 커맨드 패킷을 수신하고, 상기 커맨드 패킷에 포함된 프라이머리 커맨드에 응답하여 상기 호스트와 데이터를 송수신하고, 상기 커맨드 패킷에 포함된 세컨더리 커맨드에 응답하여 상기 세컨더리 커맨드를 포함하는 중계 커맨드 패킷을 중계하며,
    상기 세컨더리 메모리 소자는 상기 프라이머리 메모리 소자로부터 중계된 상기 중계 커맨드 패킷을 수신하고, 상기 수신된 중계 커맨드 패킷에 포함된 세컨더리 커맨드에 응답하여 상기 프라이머리 메모리 소자를 통하여 상기 호스트와 데이터를 송수신하는 것을 특징으로 하는 메모리 시스템.
  6. 기계적 독출이 가능한 기록매체; 및
    상기 기록매체에 저장되고, 기계적 독출이 가능한 프로그램 코드를 구비하고,
    상기 프로그램 코드는
    프라이머리 메모리 소자의 동작을 위한 프라이머리 커맨드를 발생하고,
    세컨더리 메모리 소자의 동작을 위한 세컨더리 커맨드를 발생하고,
    상기 프라이머리 커맨드와 상기 세컨더리 커맨드를 포함하는 하나의 커맨드 패킷을 발생하는 명령을 포함하는 것을 특징으로 하는 메모리 콘트롤러.
  7. 제1메모리 소자에서 프라이머리 커맨드와 세컨더리 커맨드를 포함하는 커맨드 패킷을 수신하는 단계;
    상기 수신된 커맨드 패킷의 프라이머리 커맨드를 수행하면서, 상기 세컨더리 커맨드를 포함하는 중계 커맨드 패킷을 제2메모리 소자로 중계하는 단계;
    상기 제1메모리 소자로부터 중계된 상기 중계 커맨드 패킷을 제2메모리 소자에서 수신하는 단계;
    상기 제2 메모리소자에서 상기 수신된 중계 커맨드 패킷의 세컨더리 커맨드를 수행하는 단계를 구비하는 것을 특징으로 하는 종속 결합된 메모리 소자의 제어방법.
KR1020050087212A 2005-09-12 2005-09-20 프로토콜 메모리, 메모리 모듈 및 프로토콜 메모리시스템과 그 제어방법. KR100916215B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020050087212A KR100916215B1 (ko) 2005-09-20 2005-09-20 프로토콜 메모리, 메모리 모듈 및 프로토콜 메모리시스템과 그 제어방법.
US11/451,802 US7966446B2 (en) 2005-09-12 2006-06-13 Memory system and method having point-to-point link
JP2006228308A JP5052842B2 (ja) 2005-09-12 2006-08-24 ポイントツーポイントリンクを有するメモリシステム及び方法
TW095132757A TW200731274A (en) 2005-09-12 2006-09-05 Memory system and method having point-to-point link
DE102006043311A DE102006043311A1 (de) 2005-09-12 2006-09-11 Speichersystem
US12/006,766 US7930492B2 (en) 2005-09-12 2008-01-04 Memory system having low power consumption
US13/153,850 US20110289269A1 (en) 2005-09-12 2011-06-06 Memory system and method having point-to-point link

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050087212A KR100916215B1 (ko) 2005-09-20 2005-09-20 프로토콜 메모리, 메모리 모듈 및 프로토콜 메모리시스템과 그 제어방법.

Publications (2)

Publication Number Publication Date
KR20070032857A true KR20070032857A (ko) 2007-03-23
KR100916215B1 KR100916215B1 (ko) 2009-09-08

Family

ID=41560600

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050087212A KR100916215B1 (ko) 2005-09-12 2005-09-20 프로토콜 메모리, 메모리 모듈 및 프로토콜 메모리시스템과 그 제어방법.

Country Status (1)

Country Link
KR (1) KR100916215B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
KR100717113B1 (ko) 2005-09-12 2007-05-10 삼성전자주식회사 반도체 메모리 모듈 및 반도체 메모리 시스템

Also Published As

Publication number Publication date
KR100916215B1 (ko) 2009-09-08

Similar Documents

Publication Publication Date Title
US7024518B2 (en) Dual-port buffer-to-memory interface
US9348786B2 (en) Semiconductor memory device with plural memory die and controller die
US6968419B1 (en) Memory module having a memory module controller controlling memory transactions for a plurality of memory devices
KR100936637B1 (ko) 메모리 모듈들에 대한 동적 명령 및/또는 어드레스 미러링시스템 및 방법
US6970968B1 (en) Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module
US5870350A (en) High performance, high bandwidth memory bus architecture utilizing SDRAMs
EP1036362B1 (en) Memory system including a memory module having a memory module controller
KR100732194B1 (ko) 메모리 모듈과 메모리 시스템 및 그 제어방법
EP1665056B1 (en) Multiple processor system and method including multiple memory hub modules
US6459651B1 (en) Semiconductor memory device having data masking pin and memory system including the same
KR101462604B1 (ko) 반도체 장치 및 멀티-칩 패키지
US7680968B2 (en) Switch/network adapter port incorporating shared memory resources selectively accessible by a direct execution logic element and one or more dense logic devices in a fully buffered dual in-line memory module format (FB-DIMM)
US6658509B1 (en) Multi-tier point-to-point ring memory interface
US7171508B2 (en) Dual port memory with asymmetric inputs and outputs, device, system and method
KR0164395B1 (ko) 반도체 메모리 장치와 그 리이드 및 라이트 방법
KR100588599B1 (ko) 메모리 모듈 및 메모리 시스템
US7007130B1 (en) Memory system including a memory module having a memory module controller interfacing between a system memory controller and memory devices of the memory module
US7640392B2 (en) Non-DRAM indicator and method of accessing data not stored in DRAM array
US7925844B2 (en) Memory register encoding systems and methods
EP1981033B1 (en) Apparatus and method for pipelined memory operations with write mask
JP2007080258A (ja) ポイントツーポイントリンクを有するメモリシステム及び方法
KR20070007513A (ko) 메모리 모듈 및 이를 구비하는 메모리 시스템
CN110633229A (zh) 用于高带宽存储器通道的dimm
US20070005902A1 (en) Integrated sram cache for a memory module and method therefor
US7518935B2 (en) Synchronous RAM memory circuit

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
LAPS Lapse due to unpaid annual fee