KR20050112973A - 다중 쓰레드 파이프라인 버스 시스템의 메모리 컨트롤러및 메모리 제어 방법 - Google Patents

다중 쓰레드 파이프라인 버스 시스템의 메모리 컨트롤러및 메모리 제어 방법 Download PDF

Info

Publication number
KR20050112973A
KR20050112973A KR1020040038448A KR20040038448A KR20050112973A KR 20050112973 A KR20050112973 A KR 20050112973A KR 1020040038448 A KR1020040038448 A KR 1020040038448A KR 20040038448 A KR20040038448 A KR 20040038448A KR 20050112973 A KR20050112973 A KR 20050112973A
Authority
KR
South Korea
Prior art keywords
bank
memory
address
row address
read
Prior art date
Application number
KR1020040038448A
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 삼성전자주식회사
Priority to KR1020040038448A priority Critical patent/KR20050112973A/ko
Priority to US11/032,414 priority patent/US20050268024A1/en
Priority to CN2005100704829A priority patent/CN1707694B/zh
Publication of KR20050112973A publication Critical patent/KR20050112973A/ko

Links

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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure

Landscapes

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

Abstract

여기에 개시되는 메모리 제어 방법은 다중 쓰레드 파이프라인 방식으로 마스터로부터 액세스될 뱅크들의 어드레스들을 입력받는 단계와; 읽기/쓰기 명령이 출력되는 시점에서 동일한 뱅크의 어드레스가 입력되었는 지의 여부를 판별하는 단계와; 그리고 상기 판별 결과가 상기 동일한 뱅크의 어드레스가 입력되었음을 나타낼 때, 오픈 페이지 정보와 오토-프리챠지 정보 중 어느 하나를 포함하는 읽기/쓰기 명령을 메모리로 출력하는 단계를 포함한다.

Description

다중 쓰레드 파이프라인 버스 시스템의 메모리 컨트롤러 및 메모리 제어 방법{MEMORY CONTROLLER FOR USE IN MULTI-THREAD PIPELINE BUS SYSTEM AND MEMORY CONTROL METHOD}
본 발명은 데이터 처리 시스템에 관한 것으로, 좀 더 구체적으로는 다이나믹 랜덤 액세스 메모리의 액세스를 제어하는 메모리 컨트롤러에 관한 것이다.
동기형 다이나믹 랜덤 액세스 메모리 (SDRAM)는 다양한 형태의 계산 장치들 (computing devices)에 사용되며, 다양한 형태의 프로세서들에 의해서 액세스된다. SDRAM 컨트롤러는 마스터 (예를 들면, 프로세서)로부터의 명령 및 어드레스에 응답하여 SDRAM의 읽기 및 쓰기 동작들을 제어하기 위한 신호들을 발생한다. SDRAM의 메모리 셀이 액세스되기 이전에, 메모리 셀이 위치한 행 (또는 워드 라인)이 활성화되어야 한다. SDRAM 컨트롤러의 기능들 중 하나는 액세스될 행이 활성화되어 있는 지의 여부를 결정하는 것이다. 만약 활성화되어 있지 않으면, SDRAM 컨트롤러는 행에 대한 읽기/쓰기 액세스 이전에 행을 활성화시킨다. 다른 기능은 새로운 행으로 액세스가 이동될 때 행을 비활성화시키는 것이다.
SDRAM은, 잘 알려진 바와 같이, 읽기/쓰기 동작 이후에 프리챠지 동작을 수행한다. 프리챠지 동작이 수행됨에 따라, 활성화된 행은 비활성화되고 열들 (또는 비트 라인들)은 프리챠지 전압 (예를 들면, VCC/2)으로 설정된다. 이러한 프리챠지 동작은 별도의 클록 사이클들 (예를 들면, 2-3 클록 사이클들)을 필요로 한다. SDRAM의 동일한 뱅크 내의 행이 연속적으로 액세스되는 경우, 프리챠지 동작은 필요하지 않음에도 불구하고 수행되어야 한다. 또는, 도 1에 도시된 바와 같이, 임의의 뱅크 (예를 들면, 뱅크 A)의 행이 액세스되고 다른 뱅크 (예를 들면, 뱅크 B)의 행이 액세스되는 경우, 이전에 선택된 뱅크 (뱅크 A)에 대한 프리챠지 동작을 위한 별도의 클록 사이클들 (도 1에서 A 구간)이 요구된다. 그러한 이유때문에, SDRAM의 액세스 속도는 SDRAM의 프리챠지 동작에 영향을 받는다. 특히, SDRAM의 액세스 빈도가 증가됨에 따라, SDRAM의 액세스 속도는 프리챠지 동작에 더욱 더 영향을 받는다.
따라서, SDRAM의 액세스 속도를 향상시키기 위해서는, SDRAM의 프리챠지 동작을 효율적으로 (또는 최적으로) 제어하는 것이 매우 중요하다.
본 발명의 목적은 액세스 시간을 줄일 수 있는 메모리 컨트롤러를 제공하는 것이다.
본 발명의 다른 목적은 SDRAM의 프리챠지 동작을 효율적으로 제어할 수 있는 메모리 컨트롤러를 제공하는 것이다.
상술한 제반 목적을 달성하기 위한 본 발명의 일 특징에 따르면, 메모리 제어 방법은 a) 다중 쓰레드 파이프라인 방식으로 마스터로부터 액세스될 뱅크들의 어드레스들을 입력받는 단계와; b) 읽기/쓰기 명령이 출력되는 시점에서 동일한 뱅크의 어드레스가 입력되었는 지의 여부를 판별하는 단계와; 그리고 c) 상기 판별 결과가 상기 동일한 뱅크의 어드레스가 입력되었음을 나타낼 때, 오픈 페이지 정보와 오토-프리챠지 정보 중 어느 하나를 포함하는 읽기/쓰기 명령을 메모리로 출력하는 단계를 포함한다.
이 실시예에 있어서, 상기 (c) 단계는 현재의 행 어드레스가 상기 동일한 뱅크의 다음의 행 어드레스와 일치하는 지의 여부를 판별하는 단계와; 만약 그렇다면, 상기 오픈 페이지 정보를 포함한 읽기/쓰기 명령을 메모리로 출력하는 단계와; 그리고 만약 그렇지 않다면, 상기 오토-프리챠지 정보를 포함한 읽기/쓰기 명령을 상기 메모리로 출력하는 단계를 포함한다.
이 실시예에 있어서, d) 상기 판별 결과가 동일한 뱅크의 어드레스가 입력되지 않음을 나타내는 경우, 상기 메모리 제어 방법은 다른 뱅크의 액세스 동작 동안 상기 동일한 뱅크에 대한 프리챠지 동작을 수행하는 단계를 더 포함한다.
이 실시예에 있어서, 상기 (d) 단계는 상기 동일한 뱅크의 다음의 행 어드레스가 입력되는 지의 여부를 판별하는 단계와; 상기 동일한 뱅크의 다음의 행 어드레스가 이전에 활성화된 행에 대응하는 행 어드레스와 일치하는 지의 여부를 판별하는 단계와; 그리고 상기 동일한 뱅크의 다음의 행 어드레스가 이전에 활성화된 행에 대응하는 행 어드레스와 일치하지 않을 때, 상기 동일한 뱅크에 대한 프리챠지 명령을 상기 메모리로 출력하는 단계를 포함한다.
이 실시예에 있어서, 상기 동일한 뱅크의 다음의 행 어드레스가 이전에 활성화된 행에 대응하는 행 어드레스와 일치할 때, 상기 (b) 단계가 실행된다.
이 실시예에 있어서, 상기 동일한 뱅크에 대한 프리챠지 동작은 다른 뱅크의 액세스 동작 동안 수행된다.
이 실시예에 있어서, 상기 메모리는 DDR SDRAM을 포함한다.
본 발명의 다른 특징에 따르면, 복수 개의 뱅크들을 포함하는 메모리를 제어하는 메모리 컨트롤러는 다중 쓰레드 파이프라인 방식으로 대응하는 뱅크의 어드레스들 및 명령들을 저장하도록 각각 구성된 복수 개의 피포 메모리들과; 그리고 상기 피포 메모리들 각각에 대응하며, 각각이 대응하는 피포 메모리에 저장된 어드레스 및 명령에 응답하여 대응하는 뱅크의 액세스 동작에 필요한 액티브 명령 및 읽기/쓰기 명령을 발생하는 복수 개의 제 1 스테이트 머신들을 포함하며, 상기 제 1 스테이트 머신들 각각은 읽기/쓰기 명령이 출력되는 시점에서 대응하는 뱅크의 어드레스가 대응하는 피포 메모리에 입력되었는 지의 여부를 판별한다.
이 실시예에 있어서, 읽기/쓰기 명령이 출력되는 시점에서 대응하는 뱅크의 어드레스가 대응하는 피포 메모리에 입력된 경우, 상기 제 1 스테이트 머신들 각각은 현재의 행 어드레스가 다음의 행 어드레스와 일치하는 지의 여부를 판별한다.
이 실시예에 있어서, 상기 현재의 행 어드레스가 상기 다음의 행 어드레스와 일치하는 경우, 상기 제 1 스테이트 머신들 각각은 오픈 페이지 정보를 포함하는 읽기/쓰기 명령을 출력한다.
이 실시예에 있어서, 상기 현재의 행 어드레스가 상기 다음의 행 어드레스와 일치하지 않는 경우, 상기 제 1 스테이트 머신들 각각은 오토 프리챠지 정보를 포함하는 읽기/쓰기 명령을 출력한다.
이 실시예에 있어서, 읽기/쓰기 명령이 출력되는 시점에서 대응하는 뱅크의 어드레스가 대응하는 피포 메모리에 입력되지 않은 경우, 상기 제 1 스테이트 머신들 각각은 대응하는 뱅크의 어드레스가 입력되었는 지의 여부를 판별한다.
이 실시예에 있어서, 상기 대응하는 뱅크의 어드레스가 입력되는 경우, 상기 제 1 스테이트 머신들 각각은 다른 뱅크의 액세스 동작 동안 대응하는 뱅크의 프리챠지 동작이 수행되도록 프리챠지 명령을 출력한다.
이 실시예에 있어서, 상기 메모리 컨트롤러는 상기 제 1 스테이트 머신들의 출력들을 입력받는 멀티플렉서와; 상기 제 1 스테이트 머신들 중 어느 하나가 선택되도록 입력되는 어드레스의 뱅크 정보에 응답하여 상기 멀티플렉서를 제어하는 제 2 스테이트 머신과; 그리고 상기 멀티플렉서에 의해서 선택된 제 1 스테이트 머신의 출력에 응답하여 상기 메모리의 액세스 타이밍을 제어하는 타이밍 발생기를 더 포함한다.
이 실시예에 있어서, 상기 메모리는 DDR SDRAM을 포함한다.
이하, 본 발명의 예시적인 실시예들이 참조도면들에 의거하여 상세히 설명될 것이다. 본 발명에 따른 메모리 컨트롤러는 다중 쓰레드 파이프라인 버스 시스템에 적용된다. 그러한 시스템의 경우, 메모리 컨트롤러는 현재 액세스 사이클에 필요한 어드레스 및 명령 뿐만 아니라 다음의 액세스 사이클에 필요한 어드레스 및 명령을 제공받는다. 읽기/쓰기 명령이 메모리로 출력되는 시점에서, 다음의 액세스 사이클에 필요한 어드레스가 현재의 어드레스와 일치하는 지의 여부가 판별된다. 판별 결과에 따라 오토-프리챠지 또는 오픈 페이지 읽기/쓰기 명령이 메모리로 출력될 것이다. 또한, 읽기/쓰기 명령이 메모리로 출력되는 시점에서 다음의 액세스 사이클에 필요한 어드레스가 존재하지 않는 경우, 다음의 어드레스의 입력에 따라 프리챠지 동작이 다른 뱅크의 액세스 동작 동안 수행된다. 이는 이후 상세히 설명될 것이다. 이러한 프리챠지 스케쥴링 방식에 따르면, 메모리의 액세스 시간이 단축될 수 있고, 그 결과 시스템 성능이 향상될 수 있다.
도 2는 본 발명에 따른 메모리 컨트롤러를 개략적으로 보여주는 블록도이다. 도 2를 참조하면, 본 발명에 따른 메모리 컨트롤러 (100)는 다중 쓰레드 파이프라인 버스 시스템에 사용되며, 마스터 (200)로부터의 어드레스 및 명령에 응답하여 메모리 (300)의 액세스 동작 (예를 들면, 읽기 동작, 쓰기 동작, 프리챠지 동작, 등)을 제어한다. 메모리 컨트롤러 (100)는 리시버 (110), 복수 개의 피포 메모리들 (FIFO memories) (120_i) (i=0∼n), 복수 개의 제 1 스테이트 머신들 (130_i), 제 2 스테이트 머신 (140), 멀티플렉서 (150), 그리고 타이밍 발생기 (160)를 포함한다. 피포 메모리들 (120_i)은 제 1 스테이트 머신들 (130_i)에 각각 대응한다. 피포 메모리들 (120_i)의 수는 메모리 (300)의 뱅크 수와 같다. 비록 하나의 메모리가 복수 개의 뱅크들을 포함하지만, 피포 메모리들 (120_i)이 복수 개의 메모리들에 각각 대응하도록 구현될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
리시버 (110)는 마스터 (200) (예를 들면, 프로세서)로부터의 어드레스 및 명령을 입력받는다. 입력된 어드레스는 행, 열, 그리고 뱅크 정보를 포함한다. 입력된 어드레스는 뱅크 정보에 따라 대응하는 피포 메모리에 저장된다. 제 1 스테이트 머신들 (130_i) 각각은 대응하는 피포 메모리에 저장된 어드레스 및 명령에 응답하여 액세스에 필요한 정보 (예를 들면, 액티브 명령, 읽기/쓰기 명령, 프리챠지 명령, 어드레스 등)를 출력한다. 제 2 스테이트 머신 (140)은 리시버 (110)로부터 출력되는 뱅크 정보에 따라 제 1 스테이트 머신들 (130_i)의 스케쥴링을 담당한다. 멀티플렉서 (150)는 제 2 스테이브 머신 (140)의 제어에 따라 제 1 스테이트 머신들 (130_i)을 선택한다. 타이밍 발생기 (160)는 멀티플렉서 (150)에 의해서 선택된 제 1 스테이트 머신으로부터의 정보에 응답하여 메모리 (300)의 액세스 타이밍을 제어한다.
도 3은 본 발명에 따른 메모리 컨트롤러의 제어 동작을 설명하기 위한 흐름도이고, 도 4 및 도 5는 본 발명에 따른 메모리 컨트롤러의 제어 동작을 설명하기 위한 타이밍도이다. 이하, 본 발명에 따른 메모리 컨트롤러의 제어 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
본 발명에 따른 메모리 컨트롤러 (100)가 적용되는 다중 쓰레드 파이프라인 버스 시스템에 따르면, 메모리 액세스시 필요한 어드레스들이 연속적으로 메모리 컨트롤러 (100)로 제공된다. 메모리 컨트롤러 (100)는 마스터 (200)로부터 제공되는 어드레스들을 대응하는 피포 메모리들에 각각 저장한다. 이후 설명될 동작은 제 1 스테이트 머신들 (130_i) 각각에서 행해지는 것으로, 설명의 편의상 제 1 스테이트 머신 (130_0)을 기준으로 설명될 것이다. 즉, 뱅크 A에 대한 액세스 동작이 이하 상세히 설명될 것이다.
제 1 스테이트 머신 (130_0)은 새로운 어드레스가 입력되었는 지의 여부를 판별한다 (S100). 만약 새로운 어드레스 (BANK_A, ROW_A)가 입력되면, 제 1 스테이트 머신 (130_0)은 대응하는 뱅크 즉, 뱅크 A의 행들이 비활성화되어 있는 지의 여부를 판별한다 (S110). 제 1 스테이트 머신들 (130_i)은 대응하는 뱅크들의 이전 동작 상태들을 기억하도록 구성됨은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 만약 뱅크 A의 행들이 비활성화되어 있으면, 뱅크 A의 행이 활성화된다 (S120). 행을 활성화시키는 동작은, 잘 알려진 바와 같이, 제 1 스테이트 머신 (130_0)이 액티브 명령 (이는 제어 신호들의 조합으로 표현됨)과 함께 행 어드레스를 출력하고, 그렇게 생성된 액티브 명령 및 행 어드레스는 제 2 스테이트 머신 (140)의 제어에 따라 멀티플렉서 (150)를 통해 타이밍 발생기 (160)로 공급된다. 타이밍 발생기 (160)는 입력된 액티브 명령 및 행 어드레스를 정해진 타이밍에 따라 메모리 (300)로 출력한다. 앞서 언급된 과정들을 통해 뱅크 A의 새로운 행이 활성화될 것이다. 잘 알려진 바와 같이, 액티브 명령이 메모리 (300)로 전송된 후 열 어드레스와 함께 읽기/쓰기 명령이 뱅크 A로 출력될 것이다. 열 어드레스 및 읽기/쓰기 명령의 전송 과정 역시 앞서 설명된 것과 동일하게 수행되며, 그것에 대한 설명은 그러므로 생략될 것이다. 이후, 절차는 단계 (S140)로 진행한다.
다시 단계 (S110)로 돌아가면, 뱅크 A 내의 임의의 행이 활성화되어 있는 경우, 제 1 스테이트 머신 (130_0)은 현재의 행 어드레스가 이전에 활성화된 행의 어드레스와 일치하는 지의 여부를 판별한다 (S130). 만약 그렇지 않다면, 절차는 단계 (S120)로 진행한다. 만약 그렇다면, 절차는 단계 (S140)로 진행한다. 단계 (S140)에서, 제 1 스테이트 머신 (130_0)은 현재의 행 어드레스와 비교될 다음의 행 어드레스가 대응하는 피포 메모리 (120_0) 내에 존재하는 지의 여부를 판별된다. 만약 그렇다면, 제 1 스테이트 머신 (130_0)은 현재의 행 어드레스가 다음의 행 어드레스와 일치하는 지의 여부를 판별한다 (S150). 다시 말해서, 읽기/쓰기 명령이 대응하는 뱅크로 출력되는 시점 (도 4에서, T1)에서, 제 1 스테이트 머신 (130_0)은 대응하는 피포 메모리 (120_0)에 저장된 행 어드레스가 현재 활성화된 행에 대응하는 행 어드레스와 일치하는 지의 여부를 판별한다. 즉, 읽기/쓰기 명령이 대응하는 뱅크로 출력되는 시점 (T1)에서, 제 1 스테이트 머신 (130_0)은 현재 수행되는 액세스 사이클의 행 어드레스 (즉, 현재의 행 어드레스)가 다음에 수행될 액세스 사이클의 행 어드레스 (즉, 다음의 행 어드레스)와 일치하는 지의 여부를 판별한다.
현재의 행 어드레스가 다음의 행 어드레스와 일치하는 경우, 제 1 스테이트 머신 (130_0)은 현재의 행 어드레스에 대응하는 행이 계속해서 액티브 상태로 유지되도록 오픈 페이지 읽기/쓰기 명령을 출력한다 (S160). 제 1 스테이트 머신 (130_0)에서 출력되는 오프 페이지 읽기/쓰기 명령은 제 2 스테이트 머신 (140)의 제어에 따라 멀티플렉서 (150)를 통해 타이밍 발생기 (160)로 전달될 것이다. 이후, 절차는 단계 (S100)로 진행한다. 현재의 행 어드레스가 다음의 행 어드레스와 일치하지 않을 경우, 제 1 스테이트 머신 (130_0)은 현재의 행 어드레스에 대응하는 행이 비활성화되도록 오토-프리챠지 읽기/쓰기 명령을 출력한다 (S170). 즉, 도 4에 도시된 바와 같이, 다음의 행 어드레스에 대응하는 행을 활성화시키기 위한 액티브 명령 없이 액세스 동작이 수행되며, 그 결과 액세스 시간이 단축될 수 있다. 제 1 스테이트 머신 (130_0)에서 출력되는 오토-프리챠지 읽기/쓰기 명령은 제 2 스테이트 머신 (140)의 제어에 따라 멀티플렉서 (150)를 통해 타이밍 발생기 (160)로 전달될 것이다. 이후, 절차는 단계 (S100)로 진행한다. 오토-프리챠지 읽기/쓰기 명령이 메모리 (300)로 전송되기 때문에, 별도의 프리챠지 명령을 위한 별도의 클록 사이클들 (도 1의 A)은 필요로 하지 않는다. 따라서, 프리챠지 동작을 위한 별도의 클록 사이클들에 대응하는 시간만큼 액세스 시간이 단축될 수 있다.
다시 단계 (S140)로 돌아가면, 현재의 행 어드레스와 비교될 다음의 행 어드레스가 대응하는 피포 메모리 (120_0) 내에 존재하지 않는 경우, 제 1 스테이트 머신 (120_0)은 동일한 뱅크의 다음의 행 어드레스가 입력되었는 지의 여부를 판별한다 (S180). 예를 들면, 도 5를 참조하면, 읽기/쓰기 명령이 출력되는 시점 (예를 들면, 도 5에서, T4, T5)마다, 제 1 스테이트 머신 (130_0)은 현재의 행 어드레스 (ROW_A)와 비교될 다음의 행 어드레스가 대응하는 피포 메모리 (120_0) 내에 존재하는 지의 여부를 검출한다. T4 시점에서 현재의 행 어드레스 (ROW_A)와 비교될 다음의 행 어드레스가 대응하는 피포 메모리 (120_0) 내에 존재하지 않기 때문에, 제 1 스테이트 머신 (130_0)은 현재의 행 어드레스 (ROW_A)와 비교될 다음의 행 어드레스가 대응하는 피포 메모리 (120_0) 내에 입력되었는 지를 계속해서 판별한다.
현재의 행 어드레스 (ROW_A)와 비교될 다음의 행 어드레스 (ROW_B)가 대응하는 피포 메모리 (120_0) 내에 입력되면, 제 1 스테이트 머신 (130_0)은 다음의 행 어드레스가 이전에 활성화된 행에 대응하는 행 어드레스와 일치하는 지의 여부를 판별한다 (S190). 만약 다음의 행 어드레스가 이전에 활성화된 행에 대응하는 행 어드레스와 일치하지 않으면, 제 1 스테이트 머신 (130_0)은 프리챠지 명령을 출력한다. 프리챠지 명령은 제 2 스테이트 머신 (140)의 제어에 따라 멀티플렉서 (150)를 통해 타이밍 발생기 (160)로 전달되며, 타이밍 발생기 (160)는 적절한 시점에서 뱅크 A에 대한 프리챠지 명령을 출력한다 (S200). 프리챠지 명령이 출력되는 시점은 다른 뱅크들의 액세스 사이클들 사이에서 결정되며, 뱅크 A의 프리챠지 동작은 다른 뱅크의 액세스 동작이 수행되는 동안 수행될 것이다. 단계 (S180)에서 입력된 어드레스에 대한 액세스 동작은 이후 읽기/쓰기 명령이 출력되는 시점 (즉, 단계 (S140))에서 결정될 것이다. 앞서의 설명에 따르면, 뱅크 A에 대한 프리챠지 동작을 위한 별도의 클록 사이클들이 요구되지 않기 때문에, 액세스 시간이 단축될 수 있다.
요약하면, 읽기/쓰기 명령이 출력되는 시점에서 현재의 행 어드레스가 동일한 뱅크의 다음의 행 어드레스와 일치하는 지의 여부가 판별되며, 판별 결과에 따라 오픈 페이지 또는 오토-프리챠지 읽기/쓰기 명령이 메모리로 출력된다. 만약 읽기/쓰기 명령이 출력되는 시점에서 현재의 행 어드레스와 비교될 다음의 행 어드레스가 없으면 (또는, 동일한 뱅크의 액세스가 한산하거나 매우 긴 시간 동안 없으면), 다음의 행 어드레스가 입력될 때까지 이전에 선택된 행은 계속해서 활성화 상태로 유지된다. 만약 현재의 행 어드레스와 비교될 다음의 행 어드레스가 입력되면, 다음의 행 어드레스가 이전의 행 어드레스와 일치하는 지의 여부에 따라 프리챠지 동작이 다른 뱅크의 액세스 동작 동안 수행된다.
본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
상술한 바와 같이, 읽기/쓰기 명령이 출력되는 시점에서 프리챠지 스케쥴링이 제어되며, 이는 SDRAM 액세스 시간이 단축되게 한다. 나아가, 그러한 메모리 컨트롤러 및 SDRAM을 포함하는 시스템의 성능이 향상될 수 있다.
도 1은 일반적인 메모리 컨트롤러의 제어 방식을 보여주는 타이밍도;
도 2는 본 발명에 따른 메모리 컨트롤러를 개략적으로 보여주는 블록도;
도 3은 본 발명에 따른 메모리 컨트롤러의 제어 동작을 설명하기 위한 흐름도; 그리고
도 4 및 도 5는 본 발명에 따른 메모리 컨트롤러의 제어 동작을 설명하기 위한 타이밍도이다.
* 도면의 주요 부분에 대한 부호 설명 *
100 : 메모리 컨트롤러 110 : 리시버
120_i : 피포 메모리 130_i : 제 1 스테이트 머신
140 : 제 2 스테이트 머신 150 : 멀티플렉서
160 : 타이밍 발생기 200 : 마스터
300 : 메모리

Claims (15)

  1. a) 다중 쓰레드 파이프라인 방식으로 마스터로부터 액세스될 뱅크들의 어드레스들을 입력받는 단계와;
    b) 읽기/쓰기 명령이 출력되는 시점에서 동일한 뱅크의 어드레스가 입력되었는 지의 여부를 판별하는 단계와; 그리고
    c) 상기 판별 결과가 상기 동일한 뱅크의 어드레스가 입력되었음을 나타낼 때, 오픈 페이지 정보와 오토-프리챠지 정보 중 어느 하나를 포함하는 읽기/쓰기 명령을 메모리로 출력하는 단계를 포함하는 메모리 제어 방법.
  2. 제 1 항에 있어서,
    상기 (c) 단계는
    현재의 행 어드레스가 상기 동일한 뱅크의 다음의 행 어드레스와 일치하는 지의 여부를 판별하는 단계와;
    만약 그렇다면, 상기 오픈 페이지 정보를 포함한 읽기/쓰기 명령을 메모리로 출력하는 단계와; 그리고
    만약 그렇지 않다면, 상기 오토-프리챠지 정보를 포함한 읽기/쓰기 명령을 상기 메모리로 출력하는 단계를 포함하는 방법.
  3. 제 1 항에 있어서,
    d) 상기 판별 결과가 동일한 뱅크의 어드레스가 입력되지 않음을 나타내는 경우, 다른 뱅크의 액세스 동작 동안 상기 동일한 뱅크에 대한 프리챠지 동작을 수행하는 단계를 더 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 (d) 단계는
    상기 동일한 뱅크의 다음의 행 어드레스가 입력되는 지의 여부를 판별하는 단계와;
    상기 동일한 뱅크의 다음의 행 어드레스가 이전에 활성화된 행에 대응하는 행 어드레스와 일치하는 지의 여부를 판별하는 단계와; 그리고
    상기 동일한 뱅크의 다음의 행 어드레스가 이전에 활성화된 행에 대응하는 행 어드레스와 일치하지 않을 때, 상기 동일한 뱅크에 대한 프리챠지 명령을 상기 메모리로 출력하는 단계를 포함하는 방법.
  5. 제 4 항에 있어서,
    상기 동일한 뱅크의 다음의 행 어드레스가 이전에 활성화된 행에 대응하는 행 어드레스와 일치할 때, 상기 (b) 단계가 실행되는 방법.
  6. 제 4 항에 있어서,
    상기 동일한 뱅크에 대한 프리챠지 동작은 다른 뱅크의 액세스 동작 동안 수행되는 방법.
  7. 제 1 항에 있어서,
    상기 메모리는 DDR SDRAM을 포함하는 방법.
  8. 복수 개의 뱅크들을 포함하는 메모리를 제어하는 메모리 컨트롤러에 있어서:
    다중 쓰레드 파이프라인 방식으로 대응하는 뱅크의 어드레스들 및 명령들을 저장하도록 각각 구성된 복수 개의 피포 메모리들과; 그리고
    상기 피포 메모리들 각각에 대응하며, 각각이 대응하는 피포 메모리에 저장된 어드레스 및 명령에 응답하여 대응하는 뱅크의 액세스 동작에 필요한 액티브 명령 및 읽기/쓰기 명령을 발생하는 복수 개의 제 1 스테이트 머신들을 포함하며,
    상기 제 1 스테이트 머신들 각각은 읽기/쓰기 명령이 출력되는 시점에서 대응하는 뱅크의 어드레스가 대응하는 피포 메모리에 입력되었는 지의 여부를 판별하는 것을 특징으로 하는 메모리 컨트롤러.
  9. 제 8 항에 있어서,
    읽기/쓰기 명령이 출력되는 시점에서 대응하는 뱅크의 어드레스가 대응하는 피포 메모리에 입력된 경우, 상기 제 1 스테이트 머신들 각각은 현재의 행 어드레스가 다음의 행 어드레스와 일치하는 지의 여부를 판별하는 것을 특징으로 하는 메모리 컨트롤러.
  10. 제 9 항에 있어서,
    상기 현재의 행 어드레스가 상기 다음의 행 어드레스와 일치하는 경우, 상기 제 1 스테이트 머신들 각각은 오픈 페이지 정보를 포함하는 읽기/쓰기 명령을 출력하는 것을 특징으로 하는 메모리 컨트롤러.
  11. 제 9 항에 있어서,
    상기 현재의 행 어드레스가 상기 다음의 행 어드레스와 일치하지 않는 경우, 상기 제 1 스테이트 머신들 각각은 오토 프리챠지 정보를 포함하는 읽기/쓰기 명령을 출력하는 것을 특징으로 하는 메모리 컨트롤러.
  12. 제 9 항에 있어서,
    읽기/쓰기 명령이 출력되는 시점에서 대응하는 뱅크의 어드레스가 대응하는 피포 메모리에 입력되지 않은 경우, 상기 제 1 스테이트 머신들 각각은 대응하는 뱅크의 어드레스가 입력되었는 지의 여부를 판별하는 것을 특징으로 하는 메모리 컨트롤러.
  13. 제 12 항에 있어서,
    상기 대응하는 뱅크의 어드레스가 입력되는 경우, 상기 제 1 스테이트 머신들 각각은 다른 뱅크의 액세스 동작 동안 대응하는 뱅크의 프리챠지 동작이 수행되도록 프리챠지 명령을 출력하는 것을 특징으로 하는 메모리 컨트롤러.
  14. 제 8 항에 있어서,
    상기 제 1 스테이트 머신들의 출력들을 입력받는 멀티플렉서와;
    상기 제 1 스테이트 머신들 중 어느 하나가 선택되도록 입력되는 어드레스의 뱅크 정보에 응답하여 상기 멀티플렉서를 제어하는 제 2 스테이트 머신과; 그리고
    상기 멀티플렉서에 의해서 선택된 제 1 스테이트 머신의 출력에 응답하여 상기 메모리의 액세스 타이밍을 제어하는 타이밍 발생기를 더 포함하는 것을 특징으로 하는 메모리 컨트롤러.
  15. 제 14 항에 있어서,
    상기 메모리는 DDR SDRAM을 포함하는 것을 특징으로 하는 메모리 컨트롤러.
KR1020040038448A 2004-05-28 2004-05-28 다중 쓰레드 파이프라인 버스 시스템의 메모리 컨트롤러및 메모리 제어 방법 KR20050112973A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040038448A KR20050112973A (ko) 2004-05-28 2004-05-28 다중 쓰레드 파이프라인 버스 시스템의 메모리 컨트롤러및 메모리 제어 방법
US11/032,414 US20050268024A1 (en) 2004-05-28 2005-01-10 Memory controller for use in multi-thread pipeline bus system and memory control method
CN2005100704829A CN1707694B (zh) 2004-05-28 2005-05-13 用于多线程流水线总线系统的存储控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040038448A KR20050112973A (ko) 2004-05-28 2004-05-28 다중 쓰레드 파이프라인 버스 시스템의 메모리 컨트롤러및 메모리 제어 방법

Publications (1)

Publication Number Publication Date
KR20050112973A true KR20050112973A (ko) 2005-12-01

Family

ID=35426728

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040038448A KR20050112973A (ko) 2004-05-28 2004-05-28 다중 쓰레드 파이프라인 버스 시스템의 메모리 컨트롤러및 메모리 제어 방법

Country Status (3)

Country Link
US (1) US20050268024A1 (ko)
KR (1) KR20050112973A (ko)
CN (1) CN1707694B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7778103B2 (en) 2007-04-05 2010-08-17 Samsung Electronics Co., Ltd. Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof
RU2465731C1 (ru) * 2008-08-20 2012-10-27 ЗетТиИ Корпорейшн Способ и устройство для улучшения эффективности буфера компенсации задержки виртуальной конкатенации синхронной цифровой иерархии

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4715219B2 (ja) * 2005-02-10 2011-07-06 ソニー株式会社 共有メモリ装置
JP5321189B2 (ja) * 2009-03-27 2013-10-23 ソニー株式会社 メモリ制御装置
JP5759276B2 (ja) * 2011-06-09 2015-08-05 キヤノン株式会社 処理装置及び情報処理方法
US20140201547A1 (en) * 2013-01-15 2014-07-17 Apple Inc. Selective Precharge for Power Savings
US9691452B2 (en) * 2014-08-15 2017-06-27 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory
US9910594B2 (en) 2015-11-05 2018-03-06 Micron Technology, Inc. Apparatuses and methods for concurrently accessing multiple memory planes of a memory during a memory access operation
US20180188976A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Increasing read pending queue capacity to increase memory bandwidth
US10210923B2 (en) 2017-07-12 2019-02-19 International Business Machines Corporation Activation of memory core circuits in an integrated circuit
KR102585218B1 (ko) * 2017-09-28 2023-10-05 삼성전자주식회사 비휘발성 메모리 장치 및 그것을 포함하는 저장 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4833600A (en) * 1985-08-26 1989-05-23 Westinghouse Electric Corp. Computer driver module for master interface to communication and control network
US4979145A (en) * 1986-05-01 1990-12-18 Motorola, Inc. Structure and method for improving high speed data rate in a DRAM
KR100230230B1 (ko) * 1993-12-24 1999-11-15 윤종용 메모리 어드레싱 방법 및 장치
US6154826A (en) * 1994-11-16 2000-11-28 University Of Virginia Patent Foundation Method and device for maximizing memory system bandwidth by accessing data in a dynamically determined order
US5636173A (en) * 1995-06-07 1997-06-03 Micron Technology, Inc. Auto-precharge during bank selection
US6052134A (en) * 1997-12-22 2000-04-18 Compaq Computer Corp. Memory controller and method for dynamic page management
US6128716A (en) * 1998-01-23 2000-10-03 Motorola Inc. Memory controller with continuous page mode and method therefor
US6401180B1 (en) * 1999-01-04 2002-06-04 Advanced Micro Devices, Inc. Bank history table for improved pre-charge scheduling of random access memory banks
US6385687B2 (en) * 1999-05-14 2002-05-07 Micron Technology, Inc. Method and apparatus for simultaneously accessing the tag and data arrays of a memory device
US6532523B1 (en) * 1999-10-13 2003-03-11 Oak Technology, Inc. Apparatus for processing memory access requests
KR100429872B1 (ko) * 2001-06-27 2004-05-04 삼성전자주식회사 반도체 메모리 장치의 이용 효율을 높이는 메모리 시스템및 상기 반도체 메모리 장치의 리프레쉬 방법
KR100443910B1 (ko) * 2001-12-17 2004-08-09 삼성전자주식회사 반도체 메모리 장치 및 이 장치의 메모리 셀 억세스 방법
US20040088472A1 (en) * 2002-10-31 2004-05-06 Nystuen John M. Multi-mode memory controller
US7089369B2 (en) * 2003-03-31 2006-08-08 Sun Microsystems, Inc. Method for optimizing utilization of a double-data-rate-SDRAM memory system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7778103B2 (en) 2007-04-05 2010-08-17 Samsung Electronics Co., Ltd. Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof
KR101286643B1 (ko) * 2007-04-05 2013-07-22 삼성전자주식회사 독립적으로 뱅크의 모드를 선택하는 반도체 메모리 장치,메모리 컨트롤러 및 그 제어 방법
RU2465731C1 (ru) * 2008-08-20 2012-10-27 ЗетТиИ Корпорейшн Способ и устройство для улучшения эффективности буфера компенсации задержки виртуальной конкатенации синхронной цифровой иерархии

Also Published As

Publication number Publication date
CN1707694A (zh) 2005-12-14
US20050268024A1 (en) 2005-12-01
CN1707694B (zh) 2010-12-22

Similar Documents

Publication Publication Date Title
US20050268024A1 (en) Memory controller for use in multi-thread pipeline bus system and memory control method
JP2007226934A (ja) 向上されたリフレッシュメカニズムを有するダイナミック半導体メモリ
US6272064B1 (en) Memory with combined synchronous burst and bus efficient functionality
US6628566B2 (en) Synchronous semiconductor memory device for controlling cell operations by using frequency information of a clock signal
US6128716A (en) Memory controller with continuous page mode and method therefor
JP4229958B2 (ja) メモリ制御システムおよびメモリ制御回路
KR19980020900A (ko) 매크로 명령기능을 가진 동기식 반도체 메모리장치와 매크로 명령의 저장 및 실행방법
US20050210215A1 (en) Semiconductor device permitting rapid data reading and writing between processor and memory
US20050182868A1 (en) Apparatus and method for controlling memory
US9378801B2 (en) Semiconductor memory device
JP2987809B2 (ja) シンクロナスdramのcas信号発生器
KR100607987B1 (ko) 명령어 스케줄링을 수행하는 메모리 제어장치 및 방법
KR20000008778A (ko) 라스 액세스 시간 제어 회로
JP2882334B2 (ja) ダイナミックランダムアクセスメモリ
JP2010033533A (ja) メモリモジュール、および、メモリ用補助モジュール
KR20030097025A (ko) 고주파수 동작을 위한 멀티 뱅크 반도체 메모리장치의구동 제어장치 및 그 제어방법
KR100242027B1 (ko) 디램 인터페이스 제어장치
JP2000331476A (ja) ページ一致制御回路およびページ一致制御方法
KR20150115071A (ko) 반도체 메모리 및 그의 구동 방법
JPH087562A (ja) ダイナミックランダムアクセスメモリ
KR100922880B1 (ko) 반도체 메모리소자의 오토프리차지 제어회로 및 방법
JP2822913B2 (ja) 半導体記憶装置
JPH04263191A (ja) 半導体記憶装置
KR20010064322A (ko) Sdram의 자동 칼럼 어드레스 발생방법
JPH05210569A (ja) メモリ制御装置

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
NORF Unpaid initial registration fee