KR100445913B1 - 버퍼 캐시를 이용한 페이지 모드 dram 가속기 - Google Patents

버퍼 캐시를 이용한 페이지 모드 dram 가속기 Download PDF

Info

Publication number
KR100445913B1
KR100445913B1 KR10-2002-0029306A KR20020029306A KR100445913B1 KR 100445913 B1 KR100445913 B1 KR 100445913B1 KR 20020029306 A KR20020029306 A KR 20020029306A KR 100445913 B1 KR100445913 B1 KR 100445913B1
Authority
KR
South Korea
Prior art keywords
page mode
mode dram
processor
buffer cache
cycle
Prior art date
Application number
KR10-2002-0029306A
Other languages
English (en)
Other versions
KR20030091371A (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 KR10-2002-0029306A priority Critical patent/KR100445913B1/ko
Publication of KR20030091371A publication Critical patent/KR20030091371A/ko
Application granted granted Critical
Publication of KR100445913B1 publication Critical patent/KR100445913B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/603Details of cache memory of operating mode, e.g. cache mode or local memory mode

Landscapes

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

Abstract

본 발명은 프로세서의 메모리제어기로부터의 제어신호를 수신하여 페이지모드 버스트 사이클을 제공하는 페이지모드 DRAM의 동작을 제어하는 페이지모드 DRAM 가속기에 관한 것으로, 프로세서로부터 메모리 제어신호, 메모리 사이클 주소 정보를 수신하는 프로세서 인터페이스 제어기; 프로세서 인터페이스 제어기로부터 메모리 사이클 주소정보를 입력받아 프로세서가 내부 캐시를 채우는 동작을 시작하였다고 판단되는 경우 확인신호를 발생하는 주소 비교부; 페이지모드 DRAM의 데이터를 일시적으로 저장하는 버퍼 캐시; 주소 비교부에서의 확인신호에 따라 버스트 사이클을 수행해서 버퍼 캐시를 갱신하는 버퍼 캐쉬 제어기; 및 페이지 모드 DRAM의 읽기 또는 쓰기 사이클에 필요한 메모리 사이클 주소를 페이지 모드 DRAM으로 전달하는 페이지 모드 DRAM 주소 제어기를 포함하여, 효과적으로 페이지 모드 DRAM을 구동하고 시스템의 성능을 향상 시킬 수 있다.

Description

버퍼 캐시를 이용한 페이지 모드 DRAM 가속기{Page mode DRAM accelerator using buffer cache}
본 발명은 고속으로 동작하는 경우 성능 저하 현상을 보이는 페이지 모드 DRAM 의 단점을 최소화하여 임베디드 시스템의 성능 및 안정성을 좌우하는 중요한 요소인 페이지 모드 DRAM 제어기의 기능을 간략화, 지능화 함으로써 효과적으로 페이지 모드 DRAM을 구동하고 시스템의 성능을 향상 시키기 위한 페이지 모드 DRAM 가속기에 관한 것이다.
DRAM 을 구성하는 메모리 뱅크, 특히 같은 로우(Row) 내에서 고속의 동작속도를 제공하는 페이지 모드 DRAM (Fast Page Mode Random Access Memory)은 일반 PC (Personal Computer)와 임베디드 (Embedded) 프로세서, 특히 그래픽 보드의 메인 메모리로 사용되고 있고, 저용량이면서 고가의 SRAM (Synchronous Random Access Memory) 보다는 대용량의 메모리 공간을 제공하기 때문에 임베디드 프로세서용 메모리로 많이 사용되고 있다. 그러나, 페이지 모드 DRAM이 고속으로 동작하는 경우에는 동기식 전송 방식으로 동작하는 SDRAM에 비해 성능이 떨어지는 단점을 보이고 있다.
본 발명이 이루고자 하는 기술적 과제는, 페이지 모드 DRAM 가속기 내부에 버퍼 캐쉬를 두어 고속의 동기식 방식으로 동작하는 프로세서 메모리 제어기와 페이지 모드 버스트 사이클을 제공하는 페이지 모드 DRAM 간의 속도차를 줄임으로 해서 페이지 모드 DRAM을 사용하는 임베디드 프로세서의 성능을 최대화 할 수 있는 페이지 모드 DRAM 가속기를 제공하는데 있다.
도 1은 일반적인 페이지 모드 DRAM의 블록도이며,
도 2는 페이지 모드 DRAM의 버스트 읽기 동작에 관한 타이밍도이며,
도 3은 버퍼 캐시를 이용한 페이지 모드 DRAM 가속기 인터페이스의 전체 블록도이며,
도 4는 버퍼 캐시를 이용한 페이지 모드 DRAM 가속기 블록도이며,
도 5는 MPC860 인터페이스 버스트 읽기 사이클 타이밍도(버퍼 캐시 적중 경우)를 나타내며,
도 6은 MPC860 인터페이스 버스트 읽기 사이클 타이밍도(버퍼 캐시 적중 실패 경우)를 나타낸다.
상기의 과제를 이루기 위하여 본 발명에 의한 페이지모드 DRAM 가속기는, 프로세서의 메모리제어기로부터의 제어신호를 수신하여 페이지모드 버스트 사이클을 제공하는 페이지모드 DRAM의 동작을 제어하는 페이지모드 DRAM 가속기에 있어서,프로세서로부터 메모리 제어신호, 메모리 사이클 주소 정보를 수신하는 프로세서 인터페이스 제어기; 상기 프로세서 인터페이스 제어기로부터 상기 메모리 사이클 주소정보를 입력받아 프로세서가 내부 캐시를 채우는 동작을 시작하였다고 판단되는 경우 확인신호를 발생하는 주소 비교부; 상기 페이지모드 DRAM의 데이터를 일시적으로 저장하는 버퍼 캐시; 상기 주소 비교부에서의 확인신호에 따라 버스트 사이클을 수행해서 상기 버퍼 캐시를 갱신하는 버퍼 캐쉬 제어기; 및 페이지 모드 DRAM의 읽기 또는 쓰기 사이클에 필요한 상기 메모리 사이클 주소를 상기 페이지 모드 DRAM으로 전달하는 페이지 모드 DRAM 주소 제어기를 포함한다.
이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다.
도 1은 일반적으로 사용되는 페이지 모드 DRAM의 내부 구조에 관한 블록도를 도시하고 있다. 도 1에서 나타내고 있는 바와 같이, 페이지 모드 DRAM은 SDRAM과는 달리 클럭 소스를 필요로 하지 않는다. 즉, 페이지 모드 DRAM 은 동기식 전송 방식을 제공하지 않는 대신 기존의 DRAM과 같이 비동기식 전송 방식으로 데이터 사이클을 수행한다. 도 1의 페이지 모드 DRAM은 16비트 데이터 버스 폭을 제공하기 위한, 하위데이터용 입력버퍼와 출력버퍼 및 상위 데이터용 입력버퍼와 출력버퍼를 구비하는 입출력용 버퍼들(102), 로우디코더, 칼럼 디코더 및 메모리 어레이를 구비하는 페이지 모드 메모리(103), 페이지 모드 DRAM을 전체적으로 제어하기 위한 제어부(104), 페이지 모드 DRAM의 리프레시 (Refresh) 기능을 제공하기 위한 리프레시 타이머(105), CBR (CAS Before RAS) 리프레시 제어를 담당하는 리프레시 제어기(106)와 리프레시 카운터(107), 외부로부터 입력되는 주소를 로우 주소와 컬럼 주소로 구분하여 저장하는 로우 주소 버퍼(108)와 컬럼 주소 버퍼(109) 등으로 구성되어 있다.
도 1의 페이지 모드 DRAM은 로우 주소 라인이 A0-A11의 12 비트, 컬럼 주소 라인이 A0-A7의 8 비트로 구성되어 있고 16비트(2 바이트)의 데이터 버스를 지원하기 때문에 메모리 사이클에서 각각의 바이트를 선택하기 위한 LCAS# (Lower Column Address Strobe #), UCAS# (Upper Column Address Strobe #)신호도 제공된다. 페이지 모드 DRAM 은 일반 DRAM과 같은 코어를 사용하기 때문에, 시스템 클럭에 모든 제어 신호가 동기되어 동작하는 SDRAM과 달리, 입력 신호의 순서와 시간에 따라 동작한다. 이는 기존의 DRAM을 설계했던 기술을 그대로 페이지 모드 DRAM 제어 인터페이스에 적용할 수 있게 해줌으로써 제어 로직을 좀 더 쉽게 구성할 수 있게 해주고 기존에 구현했던 많은 제어 로직을 그대로 사용할 수 있게 해주는 장점을 갖는다.
페이지 모드 DRAM을 2개 이상의 뱅크로 구성하여 하나의 뱅크가 사용되고 있을 때 다른 뱅크를 프리차지(PRECHARGE)/억세스하는 인터리빙(interleaving) 방식으로 구성이 가능하다. 이는 일반 DRAM의 단점인 프리차지 및 억세스 시간을 줄임으로 해서 성능 향상을 도모하고자 함이다. 그러나, MPC860 프로세서는 이러한 메모리 인터리빙 기능을 지원하지 않기 때문에, 본 실시예에서의 페이지 모드 DRAM은 하나의 연속적인 메모리로 간주된다. MPC860 프로세서가 최대 16 바이트의 버스트 사이클을 지원하는 반면에 페이지 모드 DRAM은 일반적인 DRAM과는 달리 하나의 메모리 로우 내에서 매우 효과적인 버스트 사이클(burst cycle)을 지원한다. 본 실시예에서는 이러한 페이지 모드 DRAM의 기능을 충분히 활용하기 위해 페이지 모드 DRAM 가속기 내부에 버퍼 캐시를 두어 효과적으로 MPC860 프로세서 버스트 사이클 동작을 지원한다.
도 2는 일반적인 페이지 모드 DRAM 의 버스트 읽기 사이클(Burst Read Cycle)에 대한 타이밍 도를 나타내고 있다. 도 2는 페이지 모드 DRAM의 동작 속도를 개괄적으로 표시하기 위해 50MHz 클럭(CLK)을 사용하였을 경우의 페이지 모드 DRAM의 버스트 읽기 사이클의 동작 상태 및 시간을 표시하고 있다. 그러나 고속의 클럭에서도 동작할 수 있는 SDRAM과는 달리 일반적으로 페이지 모드 DRAM의 동작은 클럭의 속도가 50MHz 이상이 되면 버스트 사이클을 하기 위해 9개 이상의 클럭(202)이 필요하다. 이는 페이지 모드 DRAM 이 클럭에 동기되어 명령(Command)에 바탕으로 두고 동작하는 것이 아니라 DRAM 처럼 읽고 쓰는 동작을 수행하기 위해서는 절대적인 시간을 필요로 하는 동작 방법을 사용하기 때문이다.
페이지 모드 DRAM 읽기/쓰기 동작은 먼저 도 2의 (203)과 같이 메모리의 원하는 로우를 선택하는 것으로부터 시작된다. 로우를 선택하는 동작은 도 2의 (203)에서와 같이 RAS# 신호를 활성화 ('0') 함으로서 수행된다. 본 실시예에서는 페이지 모드 DRAM의 로우 주소와 컬럼 주소를 제공하기 위해 외부에 다중화기(Mux)를 사용하는데 다중화기 제어를 위한 ALE# 신호도 로우 주소를 선택하는 시간(203)에 활성화되어 페이지 모드 DRAM으로 전달된다. 이때 전달된 로우 주소는 페이지 모드 DRAM의 로우 주소 버퍼(108)에 저장된다. 또한 원하는 메모리 사이클이 읽기사이클인지 쓰기 사이클인지를 나타내는 R/W# 신호도 이때 활성화되어 전체 사이클 동안 활성화된 상태를 유지한다. 로우 주소가 전달되고 일정 시간이 지나면 해당 페이지 모드 DRAM의 로우에서 원하는 컬럼을 선택하기 위한 컬럼 주소가 페이지 모드 DRAM으로 전달된다. 아울러 전달된 로우 주소는 컬럼 주소 버퍼(109)에 저장된다. 이는 컬럼 주소의 활성화를 나타내는 CAS# 신호를 활성화함으로서 수행된다.
로우 주소 및 컬럼 주소, 그리고 읽기 동작을 나타내는 R/W# 신호가 페이지 모드 DRAM으로 전달된 후 원하는 데이터 값을 페이지 모드 DRAM으로부터 읽기 위해서는 일정 시간을 기다려야 하고, 이 시간이 지난 후 페이지 모드 DRAM으로부터 데이터가 읽혀지면 페이지 모드 DRAM 제어기는 TA# 신호를 생성(204)해서 데이터가 페이지 모드 DRAM으로부터 정상적으로 읽혀졌음을 알려준다. 만일 계속해서 해당 로우에 대한 컬럼 메모리를 읽고/쓰고자 하는 경우에는 로우 주소는 이미 로우 주소 버퍼(108)에 저장되어 있기 때문에 로우 주소를 다시 생성하지 않고 새로운 컬럼 주소만 생성해서 페이지 모드 DRAM으로 전달한다(205). 로우 주소 및 컬럼 주소가 페이지 모드 DRAM으로 전달된 후 다른 컬럼 주소 값을 갖는 데이터 값을 페이지 모드 DRAM으로부터 읽기 위해서는 일정 시간을 기다려야 하고, 이 시간이 지난 후 페이지 모드 DRAM으로부터 데이터가 읽혀지면 페이지 모드 DRAM 제어기는 두 번째 TA# 신호를 생성(206)해서 데이터가 페이지 모드 DRAM 으로 부터 정상적으로 읽혀졌음을 알려준다. 이런 방식으로 페이지 모드 DRAM은 한번의 메모리 사이클로 해당 로우의 전체 컬럼에 대해서 읽기/쓰기 동작을 수행할 수 있다.
도 3은 본 발명의 일실시예로서 제안된 버퍼 캐시를 이용한 MPC860 프로세서페이지 모드 DRAM 가속기(301)와 함께 MPC860 프로세서(302), 페이지 모드 DRAM(303), 그리고 페이지 모드 DRAM 주소 먹스(304), MPC860 인터페이스(305), 그리고 페이지 모드 DRAM 인터페이스(306)를 전체적으로 도시하고 있다. 도 3의 MPC860 인터페이스(305)는 MPC860 전용 페이지 모드 DRAM 가속 기능을 제공하기 위하여 MPC860에서 지원하는 32 비트의 주소 라인(ADDR)과 데이터 라인(DATA)을 지원한다. MPC860 인터페이스(305)는 또한 TA#, TS#, BURST#, CS#, UPWAIT, RAS#, CAS#, RW#, WE#, CLK, BS#[0:3], OE# 신호를 제공한다.
페이지 모드 DRAM 인터페이스(306)는 페이지 모드 DRAM 주소 먹스(304)를 포함하고 있으며, PD_DATA[0:31], BADDR[26-29], PD_RAS#, PD_CAS#[0:3], PD_WE#, ALE, 그리고 PD_ADDR[0:31] 로 구성되어 있다. 본 실시예에서 페이지 모드 DRAM 인터페이스(306)는 일반적인 페이지 모드 DRAM 인터페이스와 동일하게 동작하지만 MPC860 인터페이스(305)는 도 5에서 나타내고 있는 바와 같이 UPWAIT 신호를 이용한 SDRAM 인터페이스처럼 동작한다. 이는 MPC860 프로세서(302)와 MPC860 프로세서 페이지 모드 DRAM 가속기(301) 간의 인터페이스(305)는 페이지 모드 DRAM 인터페이스가 아니라 고속의 SDRAM 인터페이스와 같이 설계되었음을 의미한다. 따라서, 고속의 클럭을 사용할 수 없었던 페이지 모드 DRAM의 단점을 보완하여 MPC860 인터페이스(305)에서 고속의 클럭을 사용할 수 있게 되었고 MPC860 프로세서(302)의 성능을 획기적으로 향상시킬 수 있음을 의미한다. 본 실시예에서 MPC860 인터페이스(305)는 최고 80MHz까지의 클럭을 지원할 수 있다.
MPC860 인터페이스(305)의 신호들은 일반 SDRAM 인터페이스처럼 클럭(CLK)신호에 동기 되어 동작하며, TS# 신호와 TA# 신호는 각각 사이클의 시작과 끝을 나타낸다. 버스트 사이클인 경우에는 한번의 TS# 신호만 MPC860 프로세서(302)로부터 생성되고 TA# 신호는 페이지 모드 DRAM 가속기(301)로부터 4번 생성된다. BURST# 는 MPC860 프로세서(302)가 현재 수행하고자 하는 사이클의 종류가 단일(Single) 사이클인지 버스트 사이클인지를 나타낸다. MPC860 프로세서(302)의 단일 사이클은 프로세서 페이지 모드 DRAM 가속기(301)에서 페이지 모드 DRAM을 구동할 때 단일 사이클로 매핑되고, 버스트 사이클인 경우에는 페이지 모드 DRAM 의 버스트 사이클로 매핑된다. CS# 신호는 MPC860 프로세서(302)가 페이지 모드 DRAM을 사용하고 하는 경우에 생성되는 페이지 모드 DRAM 선택 신호이며 RAS#, CAS#, WE# 신호와 함께 SDRAM 제어 명령 조합을 구성하는데 사용된다. RW# 신호는 해당 사이클이 읽기 사이클인지 쓰기 사이클인지를 나타내며, BS#[0:3] 신호는 32 비트 데이터 버스 중 어느 바이트가 유효한 값을 갖고 있는 바이트인 지를 나타내는 바이트 선택 신호이다. OE# 신호는 메모리로부터 읽고자 하는 데이터가 데이터 라인에 실리도록 하는 출력 제어 신호이고, UPWAIT 신호는 도 5에서 예시하고 있는 바와 같이 MPC860 프로세서(302)가 메모리에서 읽고자 하는 경우 만일 버퍼 캐시에 해당 데이터가 저장되어 있지 않으면 페이지 모드 DRAM 가속기(301)가 페이지 모드 DRAM(303)으로부터 데이터를 읽어 와서 응답할 수 있는 시간까지 MPC860 프로세서(302)를 기다리게 하는 제어 신호이다.
페이지 모드 DRAM 인터페이스(306)는 페이지 모드 DRAM 주소 먹스(304)를 포함하고 있으며, ALE 신호는 이러한 주소 먹스(304)를 제어해서 로우 주소와 컬럼주소를 생성하는데 사용되는 제어 신호이다. PD_DATA[0:31]는 MPC860 인터페이스(305)로부터 받은 데이터를 페이지 모드 DRAM(303)으로 보내는 경우나 페이지 모드 DRAM(303)으로부터 데이터를 읽어 버퍼 캐시에 저장하는 경우에 사용되는 32비트 데이터 라인이다. PD_RAS#, PD_CAS#[0:3], 그리고 PD_RW# 신호는 페이지 모드 DRAM 가속기(301)가 페이지 모드 DRAM(303)으로 데이터를 읽고 쓰기 위해 사용되는 페이지 모드 DRAM 제어 신호이며, 각각 도 1의 RAS#, LCAS#, UCAS# 그리고 WE# 신호에 해당된다. PD_ADDR[0:31] 신호는 MPC860 인터페이스(305)로부터 수신된 주소를 페이지 모드 DRAM 주소 먹스(304)를 통하여 로우 주소 및 컬럼 주소로 바뀐 형태의 페이지 모드 DRAM 주소를 의미한다. 마지막으로 BADDR[26-29] 주소는 페이지 모드 DRAM을 읽거나 쓰고자 하는 경우에 사용되는 컬럼 주소 중 버스트를 위해 사용되는 하위 4비트를 나타낸다. 즉, 4비트의 버스트 컬럼 주소를 사용하기 때문에 본 실시예에서 페이지 모드 DRAM 인터페이스(306)는 4 바이트씩 16번까지, 총 64 바이트의 버스트 사이클 길이를 제공한다.
도 4는 본 발명의 실시예에 따른, 버퍼 캐시를 이용한 페이지 모드 DRAM 가속기의 블록도를 개괄적으로 도시하고 있다. 프로세서 인터페이스 제어기(402)는 MPC860 인터페이스(305, 403) 관련 신호를 처리하는 기능을 수행한다. 프로세서 인터페이스 제어기(402)는 MPC860 프로세서 인터페이스(403)에서 수신한 제어 신호를 페이지 모드 DRAM 제어기(404)로 넘겨 주고, 또한 MPC860 프로세서 주소 정보 및 관련 신호를 주소 비교부(405)로 전달하는 기능을 수행한다. 주소 비교부(405)는 프로세서 인터페이스 제어기(402)로부터 넘겨 받은 메모리 사이클 주소 및 관련신호를 분석하여 MPC860 프로세서가 내부 캐시를 채우는 동작을 시작하였다고 판단되는 경우 이를 페이지 모드 DRAM 제어기(404)와 버퍼 캐시 제어기(406)로 알려주어 페이지 모드 DRAM 인터페이스(306, 407)를 통하여 버퍼 캐시(408)를 채우도록 한다.
본 실시예에서 버퍼 캐시(408)는 각각 4K 길이를 갖는 메모리로 도 4에서와 같이 총 4개로 구성되어 있다. 버퍼 캐시 레지스터(409)는 이러한 버퍼 캐시(408) 각각에 대한 정보를 담고 있다. 버퍼 캐시 레지스터(409)가 갖고 있는 정보로는 버퍼 캐시의 사용 유무, 버퍼 캐시의 내용이 다 채워졌는지의 여부, 만일 채워지지 않았다면 다음에 채울 주소 등 버퍼 캐시(408)를 관리하기 위한 모든 정보가 들어 있다. 버퍼 캐쉬 제어기(406)는 버퍼 캐시 레지스터(409)의 정보를 바탕으로 페이지 모드 DRAM과 버퍼 캐시(408)를 제어한다. 버퍼 캐시 제어기(406)가 버퍼 캐시(408)를 채우기 위해 페이지 모드 DRAM을 사용하는 경우에는 항상 4바이트씩, 총 16번의 버스트 사이클을 수행해서 버퍼 캐시(408)를 갱신한다. 페이지 모드 DRAM 주소 제어기(411)는 페이지 모드 DRAM 제어기(404)와 버퍼 캐시 제어기(406)로부터 신호를 받아 페이지 모드 DRAM 읽기/쓰기 사이클에 필요한 메모리 사이클 주소 및 ALE 신호를 페이지 모드 DRAM 인터페이스(306, 407)에 전달하는 기능을 수행한다.
페이지 모드 DRAM 리프레시 제어부(412)는 페이지 모드 DRAM이 필요로 하는 리프레시 사이클을 수행한다. 페이지 모드 DRAM 리프레시 제어부(412)는 프로세서 인터페이스 제어기(402)로부터 클럭 정보를 넘겨 받아 주기적으로 페이지 모드DRAM 제어기(404)로 하여금 페이지 모드 DRAM 을 리프레시하도록 하는 기능을 수행한다. 본 실시예에서는 페이지 모드 DRAM의 자동 리프레시(Auto Refresh) 기능을 사용하지 않고 일반적으로 사용되는 CBR (CAS Before RAS) 리프레시 기능을 페이지 모드 DRAM 인터페이스(407) 상에 구현하였다.
도 5는 본 발명의 일 실시예에 따른 버퍼 캐시를 이용한 MPC860 프로세서 페이지 모드 DRAM 가속기를 사용하였을 경우에 있어서 MPC860 프로세서와 페이지 모드 DRAM 가속기 간의 메모리 사이클의 일 예를 도시하고 있다. 특히, 도 5는 MPC860 프로세서가 버스트로 요구한 데이터가 페이지 모드 DRAM 가속기 내부의 버퍼 캐시(408)에 저장되어 있는 경우를 나타내고 있다. 도 5에 나타내고 있는 모든 타이밍도는 클럭 신호(CLK)를 비롯하여 모든 신호가 MPC860 프로세서의 UPM(User Programmable Machine)에서 SDRAM을 제어하기 위해 사용되는 신호와 동일하다. 즉, 실제 메모리는 페이지 모드 DRAM으로 구현되어 있지만 페이지 모드 DRAM 가속기를 통하여 MPC860 프로세서는 고속으로 동작하는 SDRAM 이 장착되어 있는 것으로 간주하고 동작한다는 의미이다. 즉, 클럭(CLK)이 저속에서 동작하는 경우 SDRAM 버스트 사이클을 수행할 때 소요되는 시간(502)과 페이지 모드 DRAM 을 이용해서 버스트 사이클을 수행할 때 소요되는 시간(202)은 거의 유사하지만 클럭(CLK)이 증가할수록 페이지 모드 DRAM을 이용해서 메모리 사이클을 수행하는데 필요한 클럭의 수는 기하 급수적으로 증가한다. 반면에 도 5에서와 같이 SDRAM을 이용하여 메모리 사이클을 수행하는 경우에는 클럭(CLK)의 주파수가 높아져도 원하는 메모리 사이클을 수행하는데 소요되는 클럭는 일정하다.
도 6은 MPC860 프로세서가 버스트 사이클을 통해 요구한 데이터가 페이지 모드 DRAM 가속기의 버퍼 캐시(408)에 저장되어 있지 않은 경우에 있어서 MPC860 프로세서와 페이지 모드DRAM 가속기(401) 간의 메모리 사이클 타이밍도를 도시하고 있다. 이 경우에도 전체적인 타이밍도는 도 5와 유사한 형태를 갖는다. 도 6의 타이밍도에서 MPC860 프로세서로부터 버스트 사이클을 통해 데이터를 읽고자 하는 명령이 페이지 모드 DRAM 가속기로 전달되었을 때(601), 만일 버퍼 캐시(408)에 원하는 데이터가 저장되어 있지 않으면 페이지 모드 DRAM 가속기는 MPC860 프로세서로 UPWAIT 신호를 사용해서 더 이상의 메모리 사이클을 진행하지 말고 기다려 줄 것을 요청한다(602). UPWAIT 신호를 MPC860 프로세서로 보냄과 동시에 페이지 모드 DRAM 가속기는 버퍼 캐시 제어기(406)와 페이지 모드 DRAM 제어기(404)로 하여금 MPC860 프로세서가 원하는 데이터를 버퍼 캐시에 저장하도록 한다. 버퍼 캐시에 원하는 데이터가 저장되면 페이지 모드 DRAM 제어기(404)는 이를 프로세서 인터페이스 제어기(402)에게 알려주고 프로세서 인터페이스 제어기(402)는 UPWAIT 신호를 비활성화(603)시켜 이러한 내용을 MPC860 프로세서로 알린다. 이후 타이밍도는 일반 SDRAM의 버스트 읽기 동작과 동일한다(604).
이상에서 설명한 바와 같이, 본 발명에 의한 버퍼 캐시 기반 페이지 모드 DRAM 가속기에 의하면, 페이지 모드 DRAM 가속기의 내부에 버퍼 캐쉬를 두어 고속의 동기식 방식으로 동작하는 MPC860 프로세서의 메모리 제어기와 저속의 페이지 모드 버스트 사이클을 제공하는 페이지 모드 DRAM 간의 속도차를 줄임으로 인하여페이지 모드 DRAM을 효과적으로 사용하여 MPC860 프로세서의 성능을 최대화 할 수 있다.
본 발명은 효과적으로 페이지 모드 DRAM을 구동하고 시스템의 성능을 향상 시키기 위한 페이지 모드 DRAM 가속기에 관한 것으로서, 본 발명의 실시예로서 페이지 모드 DRAM 과 MPC860 프로세서를 사용하여 고속의 메모리 사이클을 수행할 수 있도록 해주는 페이지 모드 DRAM 가속기를 개시하고 있다. MPC860 프로세서의 입장에서는 메모리를 구동하는 모든 방법 및 신호가 MPC860 프로세서 UPM에서 SDRAM을 제어하기 위해 사용되는 신호와 동일하다는 장점을 제공한다. 즉, 실제 메모리는 페이지 모드 DRAM으로 구현되어 있지만 페이지 모드 DRAM 가속기를 통하여 MPC860 프로세서는 고속으로 동작하는 SDRAM 이 장착되어 있는 것으로 간주하고 동작한다는 의미이다. 이러한 장점은 클럭이 저속에서 동작하는 경우 SDRAM 버스트 사이클을 수행할 때 소요되는 시간과 페이지 모드 DRAM을 이용해서 버스트 사이클을 수행할 때 소요되는 시간은 거의 유사하지만 클럭이 증가 할수록 페이지 모드 DRAM을 이용해서 메모리 사이클을 수행하는데 필요한 클럭의 수는 기하 급수적으로 증가한다. 반면에 SDRAM을 이용하여 메모리 사이클을 수행하는 경우에는 클럭의 주파수가 높아져도 원하는 메모리 사이클을 수행하는데 소요되는 클럭 수는 일정하다. 이러한 점은 특히 일반적인 프로그램 수행이 순차적으로 이루어진다는 점을 감안하면 페이지 모드 DRAM을 이용해서 SRAM의 성능을 낼 수 있다는 장점을 제공한다. 비록 저장되어 있는 뱅크 주소와 현재 요구된 뱅크 주소가 다른 경우 일반적인 SDRAM 보다 몇 개의 사이클이 더 필요한 단점은 있지만 보통의 프로그램 수행이순차적으로 이루어진다는 점을 감안하면 성능 감소에 미치는 영향은 미미하다고 볼 수 있다. 또한 본 발명은 프로세서 내부에 SOC (System On Chip) 형태로 장착되거나 또는 독립적인 장치로 보드 내에 장착될 수 있어 광범위한 활용 범위를 갖는다.

Claims (4)

  1. 프로세서의 메모리제어기로부터의 제어신호를 수신하여 페이지모드 버스트 사이클을 제공하는 페이지모드 DRAM의 동작을 제어하는 페이지모드 DRAM 가속기에 있어서,
    프로세서로부터 메모리 제어신호, 메모리 사이클 주소 정보를 수신하는 프로세서 인터페이스 제어기;
    상기 프로세서 인터페이스 제어기로부터 상기 메모리 사이클 주소정보를 입력받아 프로세서가 내부 캐시를 채우는 동작을 시작하였다고 판단되는 경우 확인신호를 발생하는 주소 비교부;
    상기 페이지모드 DRAM의 데이터를 일시적으로 저장하는 버퍼 캐시;
    상기 주소 비교부에서의 확인신호에 따라 버스트 사이클을 수행해서 상기 버퍼 캐시를 갱신하는 버퍼 캐쉬 제어기; 및
    페이지 모드 DRAM의 읽기 또는 쓰기 사이클에 필요한 상기 메모리 사이클 주소를 상기 페이지 모드 DRAM으로 전달하는 페이지 모드 DRAM 주소 제어기를 포함하는 것을 특징으로 하는 페이지모드 DRAM 가속기.
  2. 제1항에 있어서, 상기 버퍼 캐시의 사용 유무, 상기 버퍼 캐시의 내용이 다 채워졌는지의 여부, 만일 채워지지 않았다면 다음에 채울 주소정보를 포함하여 상기 버퍼 캐시를 관리하기 위한 정보를 저장하는 버퍼 캐시 레지스터를 더 포함하는 것을 특징으로 하는 페이지모드 DRAM 가속기.
  3. 제1항에 있어서, 프로세서가 버스트 사이클을 통해 요구한 데이터가 상기 버퍼캐시에 저장되어 있지 않은 경우, 프로세서로부터 버스트 사이클을 통해 데이터를 읽고자 하는 명령이 전달되면 상기 프로세서로 더 이상의 메모리 사이클을 진행하지 말고 기다려 줄 것을 요청하고, 상기 프로세서가 원하는 데이터를 버퍼캐시에 저장하도록 한 다음 저장이 완료되면 상기 프로세서로 이를 알리고 버스트 읽기 동작을 수행하는 것을 특징으로 하는 페이지모드 DRAM 가속기.
  4. 제1항에 있어서, 상기 프로세서 인터페이스 제어기로부터 클럭 정보를 넘겨 받아 주기적으로 페이지 모드 DRAM을 리프레시하는 페이지 모드 DRAM 리프레시 제어부를 더 포함하는 것을 특징으로 하는 페이지모드 DRAM 가속기.
KR10-2002-0029306A 2002-05-27 2002-05-27 버퍼 캐시를 이용한 페이지 모드 dram 가속기 KR100445913B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0029306A KR100445913B1 (ko) 2002-05-27 2002-05-27 버퍼 캐시를 이용한 페이지 모드 dram 가속기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0029306A KR100445913B1 (ko) 2002-05-27 2002-05-27 버퍼 캐시를 이용한 페이지 모드 dram 가속기

Publications (2)

Publication Number Publication Date
KR20030091371A KR20030091371A (ko) 2003-12-03
KR100445913B1 true KR100445913B1 (ko) 2004-08-25

Family

ID=32384513

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0029306A KR100445913B1 (ko) 2002-05-27 2002-05-27 버퍼 캐시를 이용한 페이지 모드 dram 가속기

Country Status (1)

Country Link
KR (1) KR100445913B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH056659A (ja) * 1991-06-21 1993-01-14 Hitachi Ltd ダイナミツクram
JPH06103760A (ja) * 1992-09-16 1994-04-15 Hitachi Ltd ダイナミックメモリ
KR980010784A (ko) * 1996-07-24 1998-04-30 제프리 엘. 포먼 압축된 데이터 캐쉬 저장 시스템
JPH10301890A (ja) * 1997-04-30 1998-11-13 Tec Corp データ転送装置
KR19990062457A (ko) * 1997-12-26 1999-07-26 다니구찌 이찌로오, 기타오카 다카시 다이나믹 램 내장 마이크로 프로세서 및 다이나믹 램 내장 마이크로 프로세서의 데이터 전송 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH056659A (ja) * 1991-06-21 1993-01-14 Hitachi Ltd ダイナミツクram
JPH06103760A (ja) * 1992-09-16 1994-04-15 Hitachi Ltd ダイナミックメモリ
KR980010784A (ko) * 1996-07-24 1998-04-30 제프리 엘. 포먼 압축된 데이터 캐쉬 저장 시스템
JPH10301890A (ja) * 1997-04-30 1998-11-13 Tec Corp データ転送装置
KR19990062457A (ko) * 1997-12-26 1999-07-26 다니구찌 이찌로오, 기타오카 다카시 다이나믹 램 내장 마이크로 프로세서 및 다이나믹 램 내장 마이크로 프로세서의 데이터 전송 방법

Also Published As

Publication number Publication date
KR20030091371A (ko) 2003-12-03

Similar Documents

Publication Publication Date Title
JP3590413B2 (ja) メモリ制御装置
KR100273725B1 (ko) 동기식 다이나믹 랜덤 액세스 메모리의 자동 활성화
JP3398583B2 (ja) キャッシュ・シンクロナス・ダイナミック・ランダム・アクセス・メモリ
US6721864B2 (en) Programmable memory controller
JP4507186B2 (ja) モードレジスタにおけるバースト長設定の変更を行わずに、異なるバースト長のアクセスをサポートするdram
US7640392B2 (en) Non-DRAM indicator and method of accessing data not stored in DRAM array
JPH04230544A (ja) ダイナミックメモリシステムのタイミングを動的に設定するデータ処理装置
TW200401189A (en) Memory system with burst length shorter than prefetch length
JP2002063069A (ja) メモリ制御装置、データ処理システム及び半導体装置
JPH0223591A (ja) コンピユータ・システム、コンピユータ・システム中のメモリの読取方法及び転送方法、メモリ制御の方法及びメモリ・コントローラ
US6226755B1 (en) Apparatus and method for enhancing data transfer to or from a SDRAM system
JP2003501747A (ja) プログラマブルsram及びdramキャッシュ・インタフェース
JP2004536417A (ja) 読出及び書込動作でバースト順序が異なるアドレッシングを行うメモリデバイス
JP5428687B2 (ja) メモリ制御装置
JPH09213070A (ja) 隠れプリチャージ式疑似キャッシュdram
US6148380A (en) Method and apparatus for controlling data transfer between a synchronous DRAM-type memory and a system bus
KR100445913B1 (ko) 버퍼 캐시를 이용한 페이지 모드 dram 가속기
JP3153078B2 (ja) データ処理装置
EP0607668B1 (en) Electronic memory system and method
JP3967921B2 (ja) データ処理装置及びデータ処理システム
US7103707B2 (en) Access control unit and method for use with synchronous dynamic random access memory device
EP0694844B1 (en) Reduced memory pin addressing for cache and main memory
US6385687B2 (en) Method and apparatus for simultaneously accessing the tag and data arrays of a memory device
JP2007115087A (ja) 半導体装置
US11971832B2 (en) Methods, devices and systems for high speed transactions with nonvolatile memory on a double data rate memory bus

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080805

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee