KR20010035775A - Dram 구성을 자동 검출하는 장치 및 방법 - Google Patents

Dram 구성을 자동 검출하는 장치 및 방법 Download PDF

Info

Publication number
KR20010035775A
KR20010035775A KR1019990042501A KR19990042501A KR20010035775A KR 20010035775 A KR20010035775 A KR 20010035775A KR 1019990042501 A KR1019990042501 A KR 1019990042501A KR 19990042501 A KR19990042501 A KR 19990042501A KR 20010035775 A KR20010035775 A KR 20010035775A
Authority
KR
South Korea
Prior art keywords
dram
data
bank
signal
address
Prior art date
Application number
KR1019990042501A
Other languages
English (en)
Other versions
KR100607939B1 (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 KR1019990042501A priority Critical patent/KR100607939B1/ko
Publication of KR20010035775A publication Critical patent/KR20010035775A/ko
Application granted granted Critical
Publication of KR100607939B1 publication Critical patent/KR100607939B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 DRAM 구성을 자동 검출하는 장치 및 방법에 관한 것으로, FPM DRAM, EDO DRAM 및 SDRAM이 뱅크별로 혼용되어 설치된 경우 자동으로 각 뱅크별로 설치되어 있는 DRAM의 종류, 접근 시간 및 용량을 검출하는 자동 검출기와, 이를 이용해서 여러 가지 DRAM이 혼용되어 설치된 환경에서도 메모리를 운용할 수 있는 DRAM 제어기를 개시한다.
본 발명에 의하면, DRAM 뱅크에 설치되어 있는 DRAM에 접근 시간과 제어 신호를 다르게 하여 데이터를 쓰고 읽어서 제대로 동작하는 지를 감지하여, DRAM의 종류, 접근 속도 및 용량을 자동적으로 검출하며 그 DRAM에 대응하는 제어기를 작동하여, 해당 DRAM을 제어하므로, 사용자가 DRAM 메모리 소자의 종류와 메모리 용량 및 속도를 구별하지 않고 혼용해서 사용하더라도 목적하는 메모리 동작을 얻을 수 있으므로 사용상의 편이성이 높아지며 다른 종류의 DRAM을 동시에 사용하더라도 대응할 수 있으므로 DRAM 사용상의 호환성이 높아진다.

Description

DRAM 구성을 자동 검출하는 장치 및 방법 {Apparatus and method for auto-detecting DRAM configuration }
본 발명은 DRAM 제어기에 관한 것으로서, 특히 시스템 보드에 설치된 DRAM 메모리의 구성 상황을 메모리의 종류, 개수, 용량 및 접근 속도에 관계없이 제어하는 방법 및 그 장치에 관한 것이다.
메모리가 소형화, 대용량화되며 기능이 확장됨에 따라 여러 가지 종류의 메모리 소자가 개발되었고 지금도 개발되는 중이다. 특히 DRAM의 분야에는 이전에 사용되었던 Fast Page Mode 방식(이하 FPM이라 함)의 DRAM, Extended Data Output 방식(이하 EDO DRAM이라 함)의 DRAM과 근래에 사용되는 Synchronous DRAM(이하 SDRAM이라 함) 등이 사용된다.
각 방식별로 DRAM의 동작을 간단히 설명한다.
DRAM은 셀(cell)이라 분리는 1비트를 기억할 수 있는 회로가 격자모양으로 배치되어 있는 어레이(array) 구조로 되어 있다. 이 격자 모양의 어레이를 행과 열이라는 2차원 구조로 관리한다. DRAM을 사용할 경우 저장된 내용을 계속 기억하기 위해 주기적인 리프레시(refresh)가 필요하다.
메모리에 읽기, 쓰기를 하려면 우선 열 어드레스 디코더에 읽기 쓰기를 하는 행(row) 어드레스를 입력한다. 그러면 메모리 셀의 열(column) 내의 데이터가 전부 버퍼에 읽혀 나온다. 그 후 접근(access)할 열 어드레스가 메모리에 입력되면 해당하는 데이터가 버퍼에서 출력되게 된다. 또한 DRAM은 메모리 액세스를 할 때마다 메모리에 저장된 내용을 보존하기 위한 리프래시를 한다.
이렇듯 두 번으로 나뉜 어드레스 입력과 리프레시가 DRAM의 사이클 시간을 길게하여 결과적으로 메모리 시스템의 성능 저하를 초래한다. 이 문제점에 대한 개선을 한 방식중의 하나가 페이지모드(Page Mode)이다.
DRAM의 읽기 쓰기 싸이클을 보면, 우선 RAS(열 어드레스 스트로브)신호를 변화시켜 DRAM에 대해 열 어드레스를 받아들일 준비를 시키고 열 어드레스를 메모리 버스에 출력한다. 다음으로 CAS 신호(행 어드레스 스트로브)를 변화시켜 어드레스 버스에 행 어드레스를 출력한다. RAS, CAS 신호의 변화부터 데이터 버스에 접근이 가능하게 될 때까지의 시간은 DRAM의 성능에 따라 다르다. 일반적으로 RAS가 움직여 데이터 버스에 안정된 접근이 가능하게 될 때까지 시간을 메모리 접근 시간(Memory access time)으로 표시하는 경우가 많다. 예를 들어 60ns DRAM이라면 RAS가 움직여 데이터가 안정되기 까지 60ns의 시간이 걸린다.
DRAM은 열 어드레스를 받아들인 후 그 열의 데이터가 전부 버퍼에 읽혀진다. 따라서 버퍼의 내부는 행 어드레스만으로 액세스가 가능하다. 이렇듯 열 어드레스의 출력후, 행 어드레스만으로 버퍼 내의 데이터에 접근하는 모드를 패스트 페이지모드(Fast Page Mode)라고 부르며 이 방식을 사용한 DRAM이 FPM DRAM이다.
DRAM을 메모리로 사용해야 할 프로세서의 속도가 빨라지면서 DRAM의 속도가 빨라질 것이 필요하게 되었다. FPM 방식보다 고속의 프로세서에 적합한 방식으로 도입된 방식이 패스트 페이지 모드를 개량한 EDO(Extended Data Out) DRAM이다.
EDO DRAM은 패스트 페이지 모드 때의 데이터 유효시간을 길게 한 제품이다. 데이터의 유효시간을 길게 함으로써 엄격한 메모리 접근 타이밍에 대응하기가 쉬워졌다. EDO DRAM의 패스트 페이지 모드를 하이퍼 페이지 모드(Hyper page mode)라고 부르는데 이때 연속한 열에 대한 액세스를 FPM DRAM보다 단축시킬 수 있다.
FPM DRAM이나 EDO DRAM은 비동기식 방식을 사용하는데, 동기식 방식을 사용하여 더 빠른 접근에 대응할 수 있는 SDRAM이 최근에 사용된다.
종래의 DRAM에서는 열 어드레스를 받은 후, 출력이 종료할 때까지 처리할 수 있는 데이터는 한 개 뿐이다. SDRAM에서는 열 어드레스의 취득, 데이터의 읽어들이기, 출력 포트로의 출력을 3단 파이프(pipe)로 분담해, 각각은 기준 클럭에 동기해서 처리 될 수 있다. 이 때문에 최초의 데이터 출력까지는 3 클럭(예를 들면 30[ns])이 걸리지만 이후부터는 1클럭(10[ns])마다 출력이 가능하여 고속의 메모리 접근이 가능하다.
SDRAM은 EDO DRAM 등과는 메모리 액세스 순서도 다소 다르다. EDO DRAM은 RAS와 CAS를 사용해 메모리 상의 어드레스를 지정하기만 했지만 SDRAM에서는 클럭 상승부위의 각 신호(RAS, CAS, CS, WE 등)의 조합을 한 개의 명령으로 취급하고 있다.
또 처음에 어떤 모드에서 동작시킬 것인지 초기 설정을 해야 한다. SDRAM의 초기 설정은 MRS 커맨드(Mode Register Set Command)에 의해 처리된다. SDRAM에서는 EDO DRAM에서 사용되던 RAS나 CAS, WE, CS 등의 제어선을 통합해 특정 패턴의 신호(H와 L의 2가지 논리)를 보내는 것으로 여러 가지 커맨드를 표시할 수 있다. 예를 들어, 버스트 전송시에 몇 개의 메모리 어드레스 데이터를 모아 보낼지에 대한 버스트 전송길이를 지정하는 것이 가능하다.
또한 비교적 단순한 지금까지의 DRAM과 달리 SDRAM의 칩 내부는 DRAM을 중심으로 해서 주변에 고기능 회로인 ASIC(Application Specific Integration Circuit)을 포함한다.
기존의 DRAM과 결정적으로 다른 것은 SDRAM은 내부에 복수 메모리 어레이를 갖는다는 점이다. 이 어레이들은 각각 뱅크(bank)라고 불린다. 이 뱅크들은 독립성이 높기때문에 종전의 메모리 구성에서는 메로리 회로의 외부에서 하던 뱅크간의 인터리브(interleave)를 DRAM 칩 내부에서 할 수 있다.
상기에서 설명된 것처럼 DRAM인 FPM DRAM, EDO DRAM과 SDRAM은 초기화를 포함한 제어 방법이 서로 틀리다. 그런데 이런 DRAM들은 시장에 혼용되어 유통되고 있고, 겉 모습이 비슷한 경우도 있다. 그러므로 사용자는 자신이 사용하려는 목적에 따라 필요한 종류의 DRAM을 선택해서 사용해야 하고 또한 같은 종류의 DRAM이라도 메모리 접근 시간에 따라 별도로 선택해야 하며, DRAM 종류들인데도 불구하고 메모리 소자 사양별로 구분해서 사용해야 하는 불편함이 따르게 된다. 예를 들어 EDO DRAM과 SDRAM을 혼용해서 사용할 수 없다.
이런 상황에서 DRAM 제어기가 모든 DRAM을 제어하기 위해서는 미리 DRAM 종류(FPM, EDO 혹은 SDRAM)와 동작 속도 및 용량을 알아야 하는데, 이를 위해 국제반도체표준협의기구인 JEDEC(Joint Electron Device Engineering Council)에서 제안한 표준인 Serial Presence Detect 방법에 의해 현재 어느 뱅크에 어떤 종류의 어떤 용량의 접근 시간이 얼마인가를 알 수 있게 되었다. 그러나 상기 Serial Presence Detect 방법을 지원하기 위해서는 이를 위한 별도의 장치와(예를 들면 12C Bus)과 그 장치에 필요한 별도의 신호 핀이 필요하게 되어 전체적인 하드웨어 구성이 복잡해지게 된다.
본 발명이 이루고자 하는 기술적인 과제는, 상기의 문제점들을 해결하기 위해, DRAM 메모리 소자의 종류를 혼용해서 사용하더라도 별도의 특수 장치를 이용하지 않고 메모리 소자의 종류를 구별하고 그에 더불어 각 메모리 소자의 용량 및 접근 속도를 자동 검출하며, 하나의 장치내에서 상기 DRAM들을 동시에 사용하게 하는 디램 구성을 자동 검출하고 제어하는 방법 및 장치를 제공하는데 있다.
도 1은 본 발명에 따른 DRAM 제어 장치의 기능 블록을 도시한 것이다.
도 2는 도 1의 동기식 DRAM 제어부와 비동기식 DRAM 제어부와의 제어 신호들의 연결을 도시한 것이다.
도 3은 본 발명에 따른 DRAM 제어장치와 제어 대상인 DRAM들간의 신호 연결의 일 예를 도시한 것이다.
제 4도는 본 발명에 따른 자동 검출부를 기능 블록별로 도시한 것이다.
도 5는 본 발명에 따른 자동 검출부의 구현을 위한 상태 천이도를 도시한 것이다.
도 6은 도 5의 상태 천이도의 순서적인 흐름을 도시한 흐름도이다.
도 7은 본 발명에 따른 타이밍 생성부의 기능 블록과 입출력 신호를 도시한 것이다.
도 8은 뱅크에 장착된 DRAM의 접근 속도를 구하는 방법을 설명하는 흐름도이다.
도 9는 뱅크에 장착된 DRAM의 어드레스 비트들을 알기 위한 동작을 실행하는 흐름도이다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, DRAM의 구성을 자동적으로 검출하는 장치에 있어서, DRAM 슬롯에 장착된 DRAM의 종류를 검출하라는 신호를 출력하는 상태 제어부; 및 DRAM의 종류를 검출하라는 신호를 받으면 DRAM의 슬롯에 대응하는 DRAM의 어드레스에 각 DRAM의 종류에 따라 쓰는 제어 방법을 틀리게 하여 소정의 시험용 데이터를 상기 DRAM에 쓰고, 쓰는 제어 방법과 대응하는 읽기 방법으로 상기 DRAM의 어드레스를 읽어 DRAM의 종류를 구하는 타이밍 생성부를 포함하는 것을 특징으로 한다.
상기 장치는, 전원이 인가된 후 DRAM의 유휴시간에 대응하는 소정의 시간이 경과하였음을 나타내는 신호를 출력하는 전원인가시간계산부; 및 한 뱅크에 대한 검출이 끝난 신호를 받으면 다음에 검출하려는 현 뱅크 ID를 생성하는 뱅크 ID 생성부를 더 포함하고, 상기 상태 제어부는 전원이 인가된 후 소정의 시간이 경과하였음을 나타내는 신호 및 상기 현 뱅크 ID를 입력받아 현 뱅크 ID에 대응하는 뱅크에 설치된 DRAM의 접근(access) 속도를 구하라는 신호를 출력하고, 상기 타이밍 생성부는 DRAM의 접근 속도를 구하라는 신호를 받으면 현 뱅크 ID에 대응하는 DRAM의 어드레스에 검출된 DRAM의 종류에 따라 소정의 시험용 데이터를 쓰는 시간을 달리하여 쓰고, 그 써진 데이터를 읽어서 상기 소정의 시험용 데이터와 같은가를 확인하여 DRAM의 접근 시간을 구하는 것을 특징으로 한다.
또 상기 장치는 전원이 인가된 후 DRAM의 유휴시간에 대응하는 소정의 시간이 경과하였음을 나타내는 신호를 출력하는 전원인가시간계산부; 및 한 뱅크에 대한 검출이 끝난 신호를 받으면 다음에 검출하려는 현 뱅크 ID를 생성하는 뱅크 ID 생성부를 더 포함하고, 상기 상태 제어부는 전원이 인가된 후 소정의 시간이 경과하였음을 나타내는 신호 및 상기 현 뱅크 ID를 입력받아 현 뱅크 ID에 대응하는 뱅크에 설치된 DRAM의 메모리 용량을 구하라는 신호를 출력하고, 상기 타이밍 생성부는 전원이 인가된 후 소정의 시간이 경과하였음을 나타내는 신호 및 상기 현 뱅크 ID를 입력받아 현 뱅크 ID에 대응하는 뱅크에 설치된 DRAM의 메모리 용량을 구하라는 신호를 받으면 현 뱅크에 대응하는 검출된 DRAM의 종류에 따라 어드레스들을 변화시키면서 상기 DRAM에 소정의 데이터를 쓰고 그 값을 확인하여 행 비트와 열 비트 그리고 선택적으로 내부 뱅크 비트를 구하는 것을 특징으로 한다.
그리고 상기 상태 제어부가 출력하는 DRAM의 종류에 대한 신호는 EDO DRAM, FPM DRAM 및 SDRAM를 구분하는 신호이며, 상기 타이밍 생성부는 상기 DRAM이 SDRAM이면 행 비트와 열 비트 어드레스를 소정의 값으로 고정시키고 SDRAM의 내부 뱅크 비트의 소정의 번지에 소정의 데이터를 쓰고, 그 써진 데이터를 읽어서 상기 소정의 데이터와 같은가를 확인하여 SDRAM의 내부 뱅크 비트를 구하는 것을 특징으로 한다.
상기 다른 기술적 과제를 해결하기 위한 본 발명에 의한, DRAM의 구성을 자동적으로 검출하는 방법에 있어서, 설치된 DRAM이 EDO DRAM이라고 가정하여 DRAM에 대해 EDO DRAM 특유의 쓰고 읽는 동작을 하여 EDO DRAM이 설치되어 있는지를 확인하는 EDO DRAM 탐지 단계; 설치된 DRAM이 FPM DRAM이라고 가정하여 DRAM에 대해 FPM DRAM 특유의 쓰고 읽는 동작을 하여 FPM DRAM이 설치되어 있는지를 확인하는 FPM DRAM 탐지 단계; 설치된 DRAM이 SDRAM이라고 가정하여 DRAM에 대해 SDRAM 특유의 쓰고 읽는 동작을 SDRAM이 설치되어 있는지를 확인하는 SDRAM 탐지 단계를 포함하는 것을 특징으로 한다.
상기 방법에 있어서, 탐지된 DRAM 종류에 따라 DRAM에 대한 접근 시간을 변화시키면서 DRAM에 데이터를 쓰고 그 데이터를 읽어서, 쓴 데이터와 읽은 데이터가 서로 같은가를 확인하여 메모리 접근 시간 중 최소의 시간을 구하는 메모리 최소 접근 시간 탐지 단계; 및 어드레스 비트를 변화시키면서 상기 DRAM에 소정의 데이터를 쓰고 그 데이터를 읽어 쓴 데이터와 읽은 데이터가 서로 같은가를 확인하여, 데이터가 제대로 써진 최대의 비트를 탐지하여 DRAM의 용량을 확인하는 용량 탐지 단계를 더 포함하는 것을 특징으로 한다.
상기 용량 탐지 단계는, 상기 DRAM의 한 페이지내에서 어드레스를 변화시키면서 상기 DRAM에 데이터를 쓰고 이 데이타를 확인하여 데이터가 제대로 써지는 최대의 행 비트를 구하는 단계; 및 행 비트를 고정시키고, 열 비트를 변화시키면서 상기 DRAM에 데이터를 쓰고 이 데이타를 확인하여 데이터가 제대로 써지는 최대의 열 비트를 구하는 단계를 포함하는 것을 특징으로 한다.
상기 열 비트를 구하는 단계는 상기 DRAM이 SDRAM인 경우에는 어드레스의 행 비트와 열 비트를 고정시키고, 내부 뱅크의 특정 어드레스에 소정의 데이터를 쓰고 써진 데이터를 읽어 쓴 데이터와 읽은 데이터가 서로 같은지 확인하여 데이터가 제대로 써지는 최대의 내부 뱅크 비트를 결정하여 SDRAM의 내부 뱅크 비트를 구하는 단계를 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 의한, DRAM 제어 장치에 있어서, 동기식 DRAM을 제어하는 동기식 DRAM 제어부; 비동기식 DRAM을 제어하는 비동기식 DRAM 제어부; DRAM의 종류를 자동으로 검출하는 자동 검출부; 및 상기 자동 검출부에서 검출한 DRAM의 종류에 따라 상기 동기식 DRAM 제어부 혹은 상기 비동기식 DRAM 제어부의 DRAM 제어 출력 중 어느 한 쪽이 해당 DRAM에 전달되도록 조절하는 출력 다중화부를 포함하는 것을 특징으로 한다.
상기 비동기식 DRAM 제어부는 EDO DRAM을 제어하는 EDO DRAM 제어부; 및 FPM DRAM을 제어하는 FPM DRAM 제어부를 포함하는 것을 특징으로 한다.
그리고 상기 자동 검출부는 메모리 접근 동작이 일어날 때에 해당 DRAM이 설치된 뱅크가 어느 것인지 검출하는 어드레스 디코더를 더 포함하는 것을 특징으로 한다.
상기 다른 기술적 과제를 해결하기 위한 본 발명에 의한, DRAM 제어 방법에 있어서, 설치된 DRAM의 종류를 검출하는 단계; 및 상기 검출 단계에서 구한 DRAM의 종류에 따라 별도의 제어 신호를 해당 DRAM에 출력하여 제어하는 단계를 포함하며, 상기 DRAM의 종류를 검출하는 단계는 설치된 DRAM이 EDO DRAM이라고 가정하여 DRAM에 대해 EDO DRAM 특유의 쓰고 읽는 동작을 하여 EDO DRAM이 설치되어 있는지를 확인하는 EDO DRAM 탐지 단계; 설치된 DRAM이 FPM DRAM이라고 가정하여 DRAM에 대해 FPM DRAM 특유의 쓰고 읽는 동작을 하여 FPM DRAM이 설치되어 있는지를 확인하는 FPM DRAM 탐지 단계; 및 설치된 DRAM이 SDRAM이라고 가정하여 DRAM에 대해 SDRAM 특유의 쓰고 읽는 동작을 SDRAM이 설치되어 있는지를 확인하는 SDRAM 탐지 단계를 포함하는 것을 특징으로 한다.
이하에서 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세히 설명한다.
도 1은 본 발명에 따른 DRAM 제어 장치(100)를 기능별 블록으로 도시한 것이다. 이 장치는 동기식 DRAM 제어부(101), 비동기식 DRAM 제어부(102), 자동 검출부(103) 및 출력 다중화부(104)를 포함한다.
도 1에 기재된 신호들을 먼저 설명한다.
system_address, system_command, system_response 및 system_data는 각각 DRAM 제어장치(100)가 설치된 시스템의 어드레스, 시스템의 제어명령, 시스템의 제어명령에 대한 DRAM 제어장치(100)의 응답신호 및 시스템의 데이터이다. DRAMDATA는 DRAM에서 출력되는 혹은 DRAM에 써지는 데이터를 나타내며 이는 system_data와 같은 것이 된다. SBA는 동기식 DRAM에 접근하기 위한 어드레스 신호이며, XADDR 및 XCNTL 신호는 DRAM에 접근하기 위한 어드레스 신호 및 제어 신호를 나타낸다. 그리고 CPU IF는 CPU와 DRAM 제어장치(100)와의 정합을 위한 신호들을 나타낸다.
도 1의 기능 블록들을 설명한다.
동기식 DRAM 제어부(101)는 동기식 DRAM인 SDRAM을 제어하며, 비동기식 DRAM 제어부(102)는 비동기식 DRAM인 FPM DRAM과 EDO DRAM을 제어한다. 자동 검출부(103)는 DRAM의 종류, 어드레스 비트 및 접근 속도를 자동으로 검출한다. 그리고 상기 3개의 기능부의 출력들은 출력 다중화부(104)에서 다중화되어 출력되어 해당하는 DRAM을 제어하게 된다.
도 2는 도 1의 동기식 DRAM 제어부(101)와 비동기식 DRAM 제어부(102)와의 제어 신호들의 연결을 도시한 것이다.
각 제어부들의 신호들은 버퍼들(210, 220)을 통해서 입출력된다. 이 버퍼들은 도 1에서 출력 다중화부(104)의 일부분이 될 수 있을 것이다. 참조번호 210의 버퍼는 동기식 DRAM 제어부(101)와 비동기식 DRAM 제어부(102)가 공통적으로 사용하는 신호들이 입출력되는 버퍼이며, 참조번호 220의 버퍼는 동기식 DRAM 제어부(101)만이 사용하는 신호들이 입출력되는 버퍼이다.
아래의 표는 도 2에서 사용되는 신호들을 간략하게 정리한 것이다.
공통 비동기식 DRAM 동기식 DRAM 설명
뱅크 선택(Bank Select) BANKCS_n RAS_n CS_n
바이트 인에이블(Byte Enable) BE_n CAS_n DQM
라이트 인에이블(Write Enable) WE_n WE_n WE_n
다중화된 어드레스(Muxed Address) ADDRESS(Row/Col) ADDRESS(Row/Col) ADDRESS(Row/Col)
데이터 버스(Data Bus) DATA DQ DQ
비동기식 DRAM만 사용하는 신호 - - -
동기식 DRAM만 사용하는 신호 SRAS_nSCAS_nBA[1:0]CKECLK SDRAM RASSDRAM CASSDRAM Bank AddressSDRAM Clock EnableSDRAM Clock
이때에 BANKCS_n 신호의 뱅크는 DRAM이, 예를 들면, 보드에 실장될 때에 여러개의 뱅크로 구성된 경우에 n번 뱅크를 선택하는 것을 뜻하는 것이며, BA[1:0] 신호는 SDRAM의 내부의 복수(4개)의 메모리 뱅크 중에서 하나의 뱅크를 선택하는 경우의 그 내부 뱅크를 뜻한다.
도 3은 본 발명에 따른 DRAM 제어장치(100)와 제어 대상인 DRAM들간의 신호 연결의 일 예를 도시한 것이다. 이 예에서는 DRAM 제어장치와 DRAM들이 설치되는 보드에 6개의 DRAM이 설치된다. 이 중 4개는 SDRAM으로 뱅크 0부터 뱅크 3까지 설치되고 2개는 EDO DRAM으로 뱅크 4와 뱅크 5에 설치된다.
이렇게 서로 다른 종류의 DRAM들을 동시에 지원하기 위해서는 각 뱅크마다 설치되어 있는 DRAM의 종류를 알아야 할 필요가 있게되며, 이를 위한 동작을 자동 검출부(103)가 수행한다.
제 4도는 본 발명에 따른 자동 검출부(103)를 기능 블록별로 도시한 것이다.
도면의 윗부분부터 신호들을 설명하면 다음과 같다.
detected BANK_INFORMATION 신호는 타이밍 생성부(401)에서 DRAM에 대한 검출이 성공하면 검출된 정보를 출력한다. currentBankID는 현재 뱅크의 번호를 나타내는 신호이다. testaddr, testcommand, testdata는 검출하려는 DRAM에 대해 시험용 데이터를 쓰고 읽기 위한 시험용 어드레스, 제어, 시험용 데이터를 각각 나타낸다. response 신호는 타이밍 생성부(401)이 DRAM에 대한 검출이 끝나면 그에 따라 생성하는 신호들을 나타낸다. response 신호에는 success, failure 및 success_done 신호가 포함된다.
powerupDONE 신호는 전원이 인가된 후 DRAM에 필요한 유휴 시간이 끝난 것을 나타내는 신호이며, currentBankID 신호는 검출하려는 현재 뱅크의 번호를 나타낸다. DRAM_type 신호는 현 뱅크에 설치된 DRAM의 종류를 나타내는 신호이며, detect_Timing 신호와 detect_Size 신호는 각각 DRAM의 접근 속도와 용량을 구하라는 명령을 나타내는 신호이다. 그리고 currentBankDetectDONE 신호는 현 뱅크의 DRAM에 대한 검출이 끝난 것을 알리는 신호이며, cnt_Clear 신호와 cnt_Run 신호는 상기 powerupDONE 신호를 계산하기 위한 카운터를 초기화시키고 카운터를 시작시키는 명령을 나타낸다.
detectTriggert 신호(406)는 모든 뱅크에 설치된 DRAM들을 검출을 시작하라는 명령이며 실시예에 따라 이 신호는 CPU나 관련된 다른 제어부에서 출력될 수 있을 것이이며, 구현 방법에 따라서는 이 신호가 없이 시스템에 전원이 인가된 후 일정 시간후에 아래의 DRAM 검출 동작이 실행되도록 할 수도 있을 것이다.
그리고 detectDONE 신호는 모든 뱅크에 설치된 DRAM에 대하여 검출이 끝난 것을 상기 detectTrigger 신호를 발생한 CPU 혹은 제어부에 알리는 신호이다. 또한 powerUpCountValue 신호는 전원인가 후 DRAM의 유휴 시간값을 지정하는 신호이며 상기 CPU나 관련된 다른 제어부에서 출력될 수 있을 것이다.
본 발명의 한 가지 목적에 따른 DRAM의 종류를 검출하기 위한 필수적인 구성은 상태 제어부(402)와 타이밍 생성부(401)이다. 그리고 나머지 구성부들은 메모리의 접근 속도 및 용량을 구하기 위한 기능을 위해 바람직하게 필요한 구성들이다.
각 블록별 기능과 동작은 다음과 같다.
상태 제어부(402)는 자동 검출부(103)의 기본적인 상태를 제어하며, 뱅크 ID 생성부(403)는 현재 검출하고 있는 DRAM의 뱅크를 가리키고, 전원인가 시간 계산부(404)는 DRAM의 초기의 파워업(power-up) 시간을 계산하며 , 타이밍 생성부(401)는 DRAM의 제어 신호들을 생성하고 검출하며, 그리고 레지스터 파일부(405)는 검출된 DRAM에 대한 정보를 저장한다.
자동 검출부(103)를 동작시키기 위해서는 먼저 자동 검출부가 설치된 보드의 CPU 혹은 다른 제어기가 PowerUpCountValue 신호(407)를 전원인가 시간 계산부(404)에 전달하고, 상태 제어부(402)에 신호 detectTrigger(406) 값을 논리 레벨 1로 전달하면, 자동 검출부(103)는 검출을 시작한다. PowerUpCountValue 신호는 전원이 인가된 후 일정시간 동안 유휴 상태에 있어야 하는 DRAM의 물리적인 특성 조건을 만족시키기 위한 카운트 값이다. 구현예에 따라서는 본 실시예처럼 이 신호를 DRAM 제어장치(100)의 외부에서 받아도 되며 혹은 DRAM 제어장치(100)의 내부에 이 신호에 해당하는 값을 지정하여 사용해도 될 것이다.
도 5는 자동 검출부(103)의 구현을 위한 상태 천이도를 도시한 것이며, 도 6은 도 5의 상태 천이도의 순서적인 흐름을 도시한 흐름도이다. 도 5와 도 6은 같은 동작을 하나는 동작의 상태 천이도로 다른 하나는 흐름도로 표현한 것이며, 실질적으로 같은 내용을 포함한다.
도 5와 도 6을 참조하여 자동 검출부(103)의 동작을 상세히 설명한다.
자동 검출부가 아무 동작도 하고 있지 않을 경우에는 참조 번호 500 단계인 IDLE 상태를 유지한다. 이 상태에서는 상태제어부(402)는 DetectTrigger 신호가 논리 레벨 ″1″로 활성화될 때까지 기다린다.
이런 IDLE 상태(500)에서 상태 제어부(402)는 detectTrigger 신호가 논리 레벨 ″1″이 되면 PowerUpWait_A 상태(501, 601)로 천이한다.
EDO DRAM과 FPM DRAM은 전원이 인가된 후 약 200[us]동안 아무 동작을 하지 않는 NOP(No Operation) 상태를 유지해야 한다. 이를 위해 전원 인가 시간 계산부(404)가 200[us]에 대응하는 PowerUpCountValue 신호를 CPU 또는 다른 제어부로부터 받아 그 신호값에 해당하는 시간이 지나면 PowerUpDone 신호를 활성화시키며, 이 신호는 상태 제어부(402)에 전달되어 DRAM에 대한 검출을 시작해도 된다는 것을 전하게 된다. 이때에는 EDO DRAM과 FPM DRAM을 위한 초기과정만을 실시하는 것이며 SDRAM의 클럭 인에이블 신호인 CKE는 비활성화된 상태이다.
뱅크ID 생성부(403)는 currentBankID(408) 신호를 0의 값으로 출력하며, 뱅크 0번에 대한 검출이 시작된다. 자동 검출부(103)는 현재의 뱅크에 설치된 DRAM이 EDO DRAM이라고 가정하고 검출을 시작하게 된다.
상태 제어부(402)는 PowerUpDone 신호를 받으면 EDO_DETECT 상태(502, 602)로 천이한다. EDO_DETECT 상태(502, 602)에서는 상태제어부(402)는 타이밍 생성부(401)에 현 뱅크의 DRAM이 EDO DRAM인가 확인하도록 신호를 발생한다. 타이밍 생성부(401)는 현재의 뱅크에 대해 가장 접근 속도가 늦은 조건의 제어 신호를 DRAM에 주어 DRAM에 특정 데이터를 쓰고 읽는 동작을 반복한다. 이 동작은 다음과 같다.
현재의 뱅크에 있는 DRAM에 데이터를 쓰고 이 데이터를 다시 읽는데 이때에 RAS 신호를 구동하고 CAS 신호를 소정의 시간만 구동한다. 이 상태에서 EDO DRAM의 경우는 다시 어드레스 신호가 DRAM에 입력되지 않는 이상 출력된 데이터가 그대로 유지된다. 그러나 FPM DRAM의 경우에는 RAS 신호 후의 CAS 신호가 구동되는 동안에만 DRAM에서 출력되는 데이터가 바르게 유지된다. 그러므로 CAS 신호를 비활성화 시킨 후 데이터를 읽어 제대로 읽힌다면 이는 EDO DRAM이 장착되었다는 것을 알수 있게 되는 것이다. 그리고 아직은 DRAM의 접근 속도를 모르므로, 데이터를 읽거나 쓰는 경우에는 RAS 신호를 출력한 후 상당한 시간이 지난 후(예를 들면 200[ns]이상)에 데이터를 쓰거나 읽는다.
이렇게 해서 정상적으로 써지고 제대로 읽어지면 타이밍 생성부(401)는 상태 제어부(402)에 success 신호를 응답한다. 그리고 이 success 신호를 받은 레지스터 파일부(405)에는 현 뱅크의 DRAM이 EDO DRAM이라는 것이 저장된다. 만약 실패한다면 타이밍 생성부(401)는 failure 신호를 상태제어부(402)에 출력하고, 상태제어부(402)는 FPM_DETECT 상태(503, 603)로 천이하며 FRM DRAM의 가장 느린 조건의 제어 신호를 현 뱅크의 DRAM에 주어 상기 EDO DRAM에서 설명된 방법을 이용하여 DRAM의 정상 동작을 확인하며, 정상 동작을 하면 success 신호를 그렇지 않으면 failure 신호를 상태 제어부(402)에 출력한다. 그리고 success 신호를 출력하는 경우에는 동시에 레지스터 파일부(405)에 현 뱅크의 DRAM이 FPM DRAM이라는 정보가 저장된다.
상태 제어부(402)가 failure 신호를 수신하면 PowerUpWait_S 상태(504, 604)로 천이하는데, 이는 SDRAM을 위한 Power-up 상태이다. 본 실시예에서는 이 상태에서 CKE 신호가 비활성화인 상태에서 200 [us] 동안 기다린다. 이때부터 SDRAM을 위한 Clock Enable 신호인 CKE가 활성화된다. 구현 방법에 따라서는 상기 참조 번호 501, 601 단계에서 SDRAM을 위한 CKE 신호의 비활성시간을 고려하여 설계할 수도 있을 것이다. 본 실시예에서는 SDRAM의 초기화를 더 확실히 하기 위해 별도의 단계을 두어 SDRAM을 위한 초기화를 다시 실시한다.
다시 PowerUpDone 신호가 활성화되면 상태제어부(402)는 SDRAM_DETECT 상태(505, 605)로 천이하고 타이밍 생성부(401)에는 현재 뱅크가 SDRAM이라는 가정하에 SDRAM을 위한 초기화와 기본적인 쓰고 읽는 동작을 수행한다. 초기화는 DRAM 내부의 모드 레지스터를 지정하여, 버스트 길이, 접근 방법등을 결정하는 과정이다. SDRAM에 쓰고 읽어 정상적으로 동작하면 success 신호를 그렇지 않으면 failure 신호를 상태제어부(402)에 출력한다. success 신호를 출력하는 경우에는 동시에 레지스터 파일부(405)에 현 뱅크의 DRAM이 SDRAM이라는 정보가 저장된다. 상태조정부(402)가 failure 신호를 수신하면 현재 뱅크에 아무 DRAM도 설치되지 않은 것이므로 DETECT_FAILURE 상태(506, 606)로 천이하며 현재 뱅크에 대한 탐지 동작을 마치게 되며 뱅크 ID 생성부는 다음 뱅크 ID를 출력하여 참조번호 600 단계부터 다시 시작하게 된다.
참조 번호 607, 608 혹은 609 단계에서 현 뱅크에 설치된 DRAM의 종류가 성공적으로 수행된 경우, 즉 타이밍 생성부(401)에서 success 신호를 응답받은 상태제어부(402)는 TIMING_DETECT(510, 610)의 상태로 천이한다. 이 상태에서는 현재 뱅크의 DRAM의 종류는 알고 있으나 그 종류에서의 최소 접근 속도를 모르므로 최소의 접근 속도를 찾는 과정을 수행하여 상기 참조번호 502(602), 503(603) 혹은 505(605) 단계에서 검출된 DRAM의 종류에 맞게 현재 뱅크에 설치되어 있는 DRAM의 최소 접근 속도를 위한 타이밍 인수들을 구한다.
TIMING_DETECT 상태(510, 610)를 위한 알고리즘을 이하 설명한다.
도 7은 타이밍 생성부(401)의 기능 블록과 입출력 신호를 도시한 것이다. 참조 번호 701 내지 703의 테이블에는 현 뱅크에 설치된 DRAM의 접근 속도를 구하기 위한 TIMING_TABLE의 값들이 설정되어 있고, 참조번호 704의 테이블에는 상기 701 내지 703 중의 하나를 이용하여 DRAM의 접근 속도를 구할 때에 사용되는 시험용 어드레스를 포함하고 있으며 참조번호 705의 테이블에는 그때에 써질 데이터를 포함한다.
도 7의 신호들을 설명한다.
COLOUMN_BIT, ROW_BIT, BA_BIT, SIZE 및 TIMING_PARAMETER 신호는 도 4의 Detected BANK_INFORMATION 신호의 구체적인 내용들이다. 이 신호들은 각각 검출한 열 비트, 행 비트, 내부 뱅크 비트, 용량(이 용량은 열비트, 행비트 및 내부 뱅크 비트에서 구해진다.) 및 접근 시간을 나타내는 신호들이다.
ADDRESS :: row/col/ba 신호들은 도 4의 testaddr 신호의 구체적인 신호들로서 시험을 위한 행 어드레스, 열 어드레스 및 내부 뱅크 어드레스 비트를 나타낸다. DATA는 도 4의 testdata이며, CONTROLS는 도 4의 testcommand 신호를 말하는 것이며, CONTROLS의 각 신호들은 도 2에 이미 도시되었던 신호들이며 표 1엣서 이미 설명되었다. 그리고 그 외의 신호들도 도 4에서 이미 설명되었으므로 별도의 설명은 생략한다.
도 8은 뱅크에 설치된 DRAM의 접근 속도를 구하는 방법을 설명하는 흐름도이다.
먼저 현재의 뱅크에 설치된 DRAM이 EDO DRAM인 경우에는 상태 제어부(402)는 EDO_TIMING_DETECT 상태(801)로 천이하여 타이밍 생성부(401)에 현 뱅크의 DRAM이 EDO DRAM이라는 신호와 detect_timing 신호를 주어 EDO DRAM에 대한 접근 속도를 구하게 한다. 타이밍 생성부(401)는 이를 위한 데이터로 참조번호 701의 EDO_TIMING_TABLE에 설정된 접근 속도에 관련된 데이터를 참조하고 참조 번호 704의 TEST_ADDRESS_TABLE의 어드레스 값과 참조 번호 705의 TEST_DATA_TABLE의 값을 참조하여(예를 들면 40 [ns]), DRAM에 상기 테이블에 있는 특정 데이터를 쓰고 이를 읽어 이 읽은 값이 이전에 DRAM에 쓴 특정 값과 같은 가를 확인한다. 이 값들이 같으면 타이밍 생성부(401)는 상태제어부(402)에 success 신호를 응답하고 동시에 접근 속도의 값이 레지스터 파일부(405)에 저장된다. 이 값들이 같지 않으면 접근 속도를 더 느리게 하여(예를 들면 45[ns]) 상기의 설명과 같은 동작을 한다. 타이밍 생성부(401)는 success 신호를 출력할 때까지 상기 동작을 반복한다.
다음은 EDO_TIMING_TABLE의 일 예를 나타낸다.
EDO_TIMING_TABLES::
EDO_TIMING_TABLE[0] = {40NS_EDO};
EDO_TIMING_TABLE[0] = {45NS_EDO};
EDO_TIMING_TABLE[0] = {50NS_EDO};
EDO_TIMING_TABLE[0] = {60NS_EDO};
EDO_TIMING_TABLE[0] = {70NS_EDO};
...
max_table = n-1
상기의 EDO DRAM의 접근 속도를 구하는 방법을 C 언어로 구현한 모듈은 다음과 같다.
EDO_TIMIMG_DETECT : ALGORITHM-L1
WHILE (I = 0; I 〈= max_table; I = I + 1)
{
WRITE_TASK(EDO_TIMING_TABLE[I]);
READ_TASK(EDO_TIMING_TABLE[I]);
COMPARE_TASK;
IF(EQUAL)
{
SUCCESS_FLAG = TRUE;
TIMING_PARAMETER = (EDO_TIMING_TABLE[I]);
}
ELSE
SUCCESS_FLAG = FALSE;
}
RETURN SUCCESS_FLAG;
다음 현재의 뱅크에 설치된 DRAM이 FPM DRAM인 경우에는 상태 제어부는 FPM_TIMING_DETECT 상태(802)로 천이하여 타이밍 생성부(401)에 DRAM의 종류에 대한 신호와 detect_timing 신호를 주어 FPM DRAM에 대한 접근 속도를 구하게 한다. 이 방법과 접근 속도를 레지스터 파일부(405)에 저장하는 것은 상기의 EDO DRAM의 접근 속도를 구하는 것과 거의 같다. 접근 속도에 관해서는 참조 번호 702의 FPM_TIMING_TABLE을 참조한다. FPM_TIMING_TABLE의 일 예는 다음과 같다.
FPM_TIMING_TABLES::
FPM_TIMING_TABLE[0] = {40NS_FPM};
FPM_TIMING_TABLE[0] = {45NS_FPM};
FPM_TIMING_TABLE[0] = {50NS_FPM};
FPM_TIMING_TABLE[0] = {60NS_FPM};
FPM_TIMING_TABLE[0] = {70NS_FPM};
...
max_table = n-1
이 방법을 C 언어로 구현한 모듈은 다음과 같다.
FPM_TIMIMG_DETECT : ALGORITHM-L2
WHILE (I = 0; I 〈= max_table; I = I + 1)
{
WRITE_TASK(FPM_TIMING_TABLE[I]);
READ_TASK(FPM_TIMING_TABLE[I]);
COMPARE_TASK;
IF(EQUAL)
{
SUCCESS_FLAG = TRUE;
TIMING_PARAMETER = (FPM_TIMING_TABLE[I]);
}
ELSE
SUCCESS_FLAG = FALSE;
}
RETURN SUCCESS_FLAG;
끝으로 현재의 뱅크에 설치된 DRAM이 SDRAM DRAM인 경우에는 상태제어부(402)는 SDRAM_TIMING_DETECT 상태(803)로 천이하여 , 타이밍 생성부(401)에 DRAM의 종류에 대한 신호와 detect_timing 신호를 주어 SDRAM DRAM에 대한 접근 속도를 구하게 한다. 이 방법과 접근 속도를 레지스터 파일부(405)에 저장하는 것은 상기의 EDO 혹은 FPM DRAM의 접근 속도를 구하는 것과 거의 같으며, 다만 접근 속도에 관해서는 참조 번호 703의 SDRAM_TIMING_TABLE을 참조한다.
SDRAM_TIMING_TABLE의 일 예는 다음과 같다.
SDRAM_TIMING_TABLES::
SDRAM_TIMING_TABLE[0] = {80NS_SDRAM};
SDRAM_TIMING_TABLE[0] = {100NS_SDRAM};
SDRAM_TIMING_TABLE[0] = {120NS_SDRAM};
...
max_table = n-1
이를 C 언어로 구현한 모듈의 일 예는 다음과 같다.
SDRAM_TIMIMG_DETECT : ALGORITHM-L3
WHILE (I = 0; I 〈= max_table; I = I + 1)
{
WRITE_TASK(SDRAM_TIMING_TABLE[I]);
READ_TASK(SDRAM_TIMING_TABLE[I]);
COMPARE_TASK;
IF(EQUAL)
{
SUCCESS_FLAG = TRUE;
TIMING_PARAMETER = (SDRAM_TIMING_TABLE[I]);
}
ELSE
SUCCESS_FLAG = FALSE;
}
RETURN SUCCESS_FLAG;
상기과 같은 방법으로 TIMING_DETECT 상태(510, 610)에서 DRAM의 접근 속도를 구하는 것이 성공하면 상태 제어부(402)는 SIZE_DETECT 상태(511, 611)로 천이한다. 상태제어부(402)는 타이밍생성부(401)에 DRAM의 종류와 detect_size 신호를 출력하여 현재 뱅크에 설치된 DRAM의 어레이의 행 비트수와 열 비트수를 구하고 SDRAM의 경우에는 내부 뱅크의 개수까지 구하도록 한다.
상기의 C 언어를 이용한 L1 내지 L3의 알고리즘은 본 발명의 제어 방법을 이해하기 쉽게 예시한 것이다. 이 구현을 소프트웨어적으로 할 수도 있겠지만, 메모리 소자에 대한 제어이기 때문에 속도의 문제를 고려하면 실제의 구현은 PLD 혹은 PGA와 같은 프로그래밍 소자를 이용해야 할 것이다. 마찬가지로 상기 테이블들도 프로그래밍 소자 내부에 상수값으로 구현되어야 할 것이다.
도 9는 보드에 장착된 DRAM의 어드레스 비트들을 알기 위한 동작을 실행하는 흐름도이다. 이를 상세히 설명한다.
이 흐름도에서는 다음의 테이블 값을 참조하게 된다.
page_table :: {256, 512, 1024, 2048, ...}
line_table :: {512, 1024, 2048, 4096, ...}
array_table :: {1, 2, 4}
타이밍 생성부는 현재 검출하려고 하는 뱅크의 어드레스 비트 구성을 DRAM 제어 장치(100)가 지원 가능한 최대 크기로 설정하고, 검출된 DRAM의 종류에 따라 검출된 제일 빠른 TIMING_PARAMETER로 현재 뱅크의 접근 시간을 설정한다(901 단계). 이 설정이 끝나면 현재의 뱅크에서 열 비트를 구하는 단계(902 단계)로 진행한다.
이 단계에서는 상기 page_table의 값을 참조한다. 현재 뱅크의 열 어드레스 비트를 11비트 모드(2048 비트 페이지)로 설정한다. 그리고 뱅크의 한 페이지내에서 257번째의 어드레스에 소정의 값을 쓴다. 이 어드레스를 읽어 상기 소정의 값과 비교하여 서로 다르면 현재 뱅크의 열은 8비트라고 판단하고 현재 단계인 열 비트를 구하는 단계(902 단계)를 끝내고, 서로 같다면 뱅크의 한 페이지내에서 513번째의 어드레스에 소정의 값을 쓴다. 이 어드레스를 읽어 상기 소정의 값과 비교하여 서로 다르면 현재 뱅크의 열은 9비트라고 판단하고 열 비트를 구하는 단계(902 단계)를 끝내고, 서로 같다면 현재 뱅크의 한 페이지내에서 1025번째의 어드레스에 소정의 값을 쓴다. 이 어드레스를 읽어 상기 소정의 값과 비교하여 서로 다르면 현재 뱅크의 열은 10비트라고 판단하고 열 비트를 구하는 단계(902 단계)를 끝내고, 서로 같다면 현재 뱅크의 열 어드레스 비트를 11비트라고 설정하고 열 비트를 구하는 단계(902 단계)를 끝낸다.
그리고 현재 뱅크에서 행 비트를 검출하는 단계(903 단계)로 진행한다.
이 단계에서는 상기 line_table의 값을 참조한다.
이 단계에서는 참조 번호 902 단계에서 검출한 열 비트를 설정하고 행 비트를 DRAM 제어 장치(100)가 지원 가능한 최대값으로 설정한다. 검출하는 방법은 첫째로 열 비트를 상기 설정된 값내에서 임의의 값으로 고정한다. 뱅크의 어레이 내에서 행 어드레스 513 번지에 소정의 값을 쓴다. 그리고 이 어드레스를 읽어 상기 소정의 값과 비교하여 서로 다르면 현재 뱅크의 행은 9비트라고 판단하고 현재 단계인 행 비트를 구하는 단계(903 단계)를 끝내고, 서로 같다면 뱅크의 어레이의 1025번째의 어드레스에 소정의 값을 쓴다. 다시 이 번지를 읽어 그 값을 쓴 값과 비교하며, 상기의 방법을 상기 902 단계와 같은 방식으로 DRAM 제어 장치(100)가 지원 가능한 행 비트값까지 계속하여 반복하여 행 비트를 구한다.
현재 뱅크에 설치된 DRAM이 SDRAM이라면 SDRAM 내부의 뱅크의 상태를 검출하는 단계(904 단계)로 진행한다.
이 단계에서는 상기 array_table의 값을 참조한다.
이 단계에서는 상기 참조 번호 902, 903 단계에서 검출된 열 비트와 행 비트의 범위에서 열 어드레스와 행 어드레스를 설정하고 SDRAM의 내부 뱅크값 BA 비트를 DRAM 제어 장치(100)가 지원할 수 있는 최대값으로 설정한다. 예를 들면 BA 비트의 최대값을 2로 설정하는 예를 들면 다음과 같이 BA 비트 값을 검출할 수 있다. 상기 정해진 열 어드레스와 행 어드레스에서 내부 뱅크 2번지에 소정의 값을 쓰고 이를 읽어, 쓴 값과 읽은 값이 서로 다르면 현재 뱅크의 BA 비트는 1 비트이며 이는 2개의 내부 뱅크가 있다는 것을 나타낸다. 그리고 내부 뱅크 상태 검출 단계(904 단계)를 끝내며, 서로 같다면 현재 뱅크의 BA 비트는 2비트이며 이는 4개의 내부 뱅크가 있다는 것을 의미한다. BA 비트의 최대값이 다르다면 상기 902 혹은 903 단계에서 사용한 방식으로 계속 진행하여 BA 비트를 구한다.
열 비트와 행 비트 및 내부 뱅크 비트를 다 구하면 다음의 수학식에 의해 해당 DRAM의 용량을 계산할 수 있다.
이때에 S는 비트이며, C는 열 비트 수이고 R은 행 비트 수 그리고 BA는 SDRAM의 내부 비트수이다.
그 다음에는 상기 참조 번호 902, 903 그리고 904 단계에서 검출된 내용을 갱신하는 단계(905)를 시작한다. 이 단계에서는 타이밍 생성부(401)는 현재의 뱅크의 열 비트, 행 비트, BA 비트 및 DRAM의 용량을 레지스터 파일부(405)에 갱신한다. 상기의 과정이 끝나게 되면 타이밍 생성부(401)는 상태 제어부(402)에 대해 success_done 신호를 출력하고, 상태 제어부(402)는 SIZE_DETECT 상태(511, 611)를 끝내며 DETECT_SUCCESS 단계(512, 612)로 진행하게 된다.
DETECT_SUCCESS 단계(512, 612)에서는 현재 뱅크에 대한 자동 검출이 성공적으로 끝난 상태이다. 이전의 단계들에서 얻어진 정보는 레지스터 파일부(405)에 저장되어 있으며, 이는 현재의 뱅크에 실장된 DRAM의 종류, 접근 속도 변수, 열 및 행 어드레스 비트 수 및 SRRAM의 경우에는 내부 뱅크 수에 대한 정보들이다.
각 뱅크에서의 검출이 끝나게 되면 상태제어부(402)는 현 뱅크에 대한 검출이 끝났다는 신호를 출력하며 이 신호를 받은 뱅크ID 생성부(404)는 다음 뱅크 ID를 출력하고, 마지막 뱅크까지 검출이 끝나면 뱅크ID 생성부(404)는 detectDONE 신호를 출력한다. detectDONE 신호가 출력되면(613 단계) 모든 뱅크에 대한 검출이 끝난 것이므로 상태 제어부(402)는 IDLE 상태(600)로 천이하며, DetectDone 신호가 활성화되지 않으면(613 단계) 다시 POWERUPWAIT_A 상태로 천이하여 다음 뱅크에 대한 검출을 시작한다.
또한 참조 번호 902, 903 혹은 904 단계에서 오류가 발생한다면 다음 단계로 진행하지 않고 실패를 검출하는 단계(906 단계)로 진행하며, 이 단계는 도 5 또는 도 6의 DETECT_FAILURE 상태(506, 606)와 같은 것이며, 이 상태는 현재의 뱅크에 아무 DRAM도 설치되어 있지 않거나 DRAM에 오류가 발생한 것을 나타내게 된다.
상기의 과정들을 거쳐 모든 뱅크에 대한 조사가 끝나면 뱅크 ID 생성부(403)는 CPU 또는 다른 제어부에 detectDONE 신호를 보내 검출의 끝난 것을 알리고 DRAM 자동 검출 과정을 끝낸다.
이후 CPU는 필요시에는 레지스터 파일부(405)에 저장된 메모리에 대한 어드레스 비트 및 뱅크에 대한 정보를 받아 필요한 동작, 예를 들면, 물리적으로 보드에 실장된 DRAM들과 시스템의 가상 어드레스를 대응시키는 동작을 하게 될 것이다.
이때 혹은 이후에 메모리 접근 동작이 일어나게 되면, 이때의 어드레스를 보아 어느 뱅크에 설치된 DRAM을 이용하려고 하는지를 알 수 있다.
자동 검출부(103)는 메모리 접근 동작이 일어날 때에 해당 뱅크가 어느 것인지 알수 있는 어드레스 디코더를 포함하는 것이 바람직하다. 이를 통해 자동 검출부(103)는 어느 뱅크가 선택되는지를 알아서, 그 뱅크에 설치된 DRAM의 종류에 따른 정보를 출력 다중화부(104)에 전달한다. 출력다중화부(104)는 설치된 DRAM의 종류에 따라 동기식DRAM제어부(101) 혹은 비동기식DRAM 제어부(102)의 DRAM 제어 출력 중 어느 한 쪽이 해당 뱅크의 DRAM에 전달되도록 조절하게 된다.
그리고 비동기식 DRAM 제어부(102)는 EDO DRAM 제어부 및 FPM DRAM 제어부를 포함하는 것이 바람직하다. FPM DRAM만을 제어하는 FPM DRAM 제어부만을 사용해도 EDO DRAM도 제어하는 것은 가능하지만, EDO DRAM 제어부를 사용해서 EDO DRAM을 제어하도록 하는 것이 바람직하기 때문이다.
본 발명에 의하면, DRAM 뱅크에 설치되어 있는 DRAM에 접근 시간과 제어 신호를 다르게 하여 데이터를 쓰고 읽어서 제대로 동작하는 지를 감지하여, DRAM의 종류, 접근 속도 및 용량을 자동적으로 검출하며 그 DRAM에 대응하는 제어기를 작동하여, 해당 DRAM을 제어하므로, 사용자가 DRAM 메모리 소자의 종류와 메모리 용량 및 속도를 구별하지 않고 혼용해서 사용하더라도 목적하는 메모리 동작을 얻을 수 있으므로 사용상의 편이성이 높아지며 다른 종류의 DRAM을 동시에 사용하더라도 대응할 수 있으므로 DRAM 사용상의 호환성이 높아진다.

Claims (25)

  1. DRAM의 구성을 자동적으로 검출하는 장치에 있어서,
    DRAM 슬롯에 장착된 DRAM의 종류를 검출하라는 신호를 출력하는 상태 제어부; 및
    DRAM의 종류를 검출하라는 신호를 받으면 DRAM의 슬롯에 대응하는 DRAM의 어드레스에 각 DRAM의 종류에 따라 쓰는 제어 방법을 틀리게 하여 소정의 시험용 데이터를 상기 DRAM에 쓰고, 쓰는 제어 방법과 대응하는 읽기 방법으로 상기 DRAM의 어드레스를 읽어 DRAM의 종류를 구하는 타이밍 생성부를 포함하는 것을 특징으로 하는 DRAM 자동 검출 장치.
  2. 제 1항에 있어서,
    전원이 인가된 후 DRAM의 유휴시간에 대응하는 소정의 시간이 경과하였음을 나타내는 신호를 출력하는 전원인가시간계산부; 및
    한 뱅크에 대한 검출이 끝난 신호를 받으면 다음에 검출하려는 현 뱅크 ID를 생성하는 뱅크 ID 생성부를 더 포함하고,
    상기 상태 제어부는 전원이 인가된 후 소정의 시간이 경과하였음을 나타내는 신호 및 상기 현 뱅크 ID를 입력받아 현 뱅크 ID에 대응하는 뱅크에 설치된 DRAM의 접근(access) 속도를 구하라는 신호를 출력하고,
    상기 타이밍 생성부는 DRAM의 접근 속도를 구하라는 신호를 받으면 현 뱅크 ID에 대응하는 DRAM의 어드레스에 검출된 DRAM의 종류에 따라 소정의 시험용 데이터를 쓰는 시간을 달리하여 쓰고, 그 써진 데이터를 읽어서 상기 소정의 시험용 데이터와 같은가를 확인하여 DRAM의 접근 시간을 구하는 것을 특징으로 하는 DRAM 자동 검출 장치.
  3. 제 1항에 있어서,
    전원이 인가된 후 DRAM의 유휴시간에 대응하는 소정의 시간이 경과하였음을 나타내는 신호를 출력하는 전원인가시간계산부; 및
    한 뱅크에 대한 검출이 끝난 신호를 받으면 다음에 검출하려는 현 뱅크 ID를 생성하는 뱅크 ID 생성부를 더 포함하고,
    상기 상태 제어부는 전원이 인가된 후 소정의 시간이 경과하였음을 나타내는 신호 및 상기 현 뱅크 ID를 입력받아 현 뱅크 ID에 대응하는 뱅크에 설치된 DRAM의 메모리 용량을 구하라는 신호를 출력하고,
    상기 타이밍 생성부는 전원이 인가된 후 소정의 시간이 경과하였음을 나타내는 신호 및 상기 현 뱅크 ID를 입력받아 현 뱅크 ID에 대응하는 뱅크에 설치된 DRAM의 메모리 용량을 구하라는 신호를 받으면 현 뱅크에 대응하는 검출된 DRAM의 종류에 따라 어드레스들을 변화시키면서 상기 DRAM에 소정의 데이터를 쓰고 그 값을 확인하여 행 비트와 열 비트 그리고 선택적으로 내부 뱅크 비트를 구하는 것을 특징으로 하는 DRAM 자동 검출 장치.
  4. 제 2항 또는 제 3항에 있어서,
    현 뱅크 ID 또는 각 ID별 열 비트, 행 비트, 내부 뱅크 비트 및 용량에 대한 정보들을 저장하는 레지스터 파일부를 더 포함하는 것을 특징으로 하는 DRAM자동 검출 장치.
  5. 제 3항에 있어서,
    상기 상태 제어부가 출력하는 DRAM의 종류에 대한 신호는 EDO DRAM, FPM DRAM 및 SDRAM를 구분하는 신호이며,
    상기 타이밍 생성부는 상기 DRAM이 SDRAM이면 행 비트와 열 비트 어드레스를 소정의 값으로 고정시키고 SDRAM의 내부 뱅크 비트의 소정의 번지에 소정의 데이터를 쓰고, 그 써진 데이터를 읽어서 상기 소정의 데이터와 같은가를 확인하여 SDRAM의 내부 뱅크 비트를 구하는 것을 특징으로 하는 DRAM 자동 검출 장치.
  6. 제 2항에 있어서, 상기 타이밍 생성부는
    DRAM의 접근 시간 설정에 필요한 접근 시간 데이터들을 포함하는 접근 시간 테이블;
    접근 시간 설정을 위한 어드레스를 포함하며 DRAM을 읽거나 DRAM에 쓰는 동작시에 그 어드레스들을 출력하는 시험용 어드레스 테이블;
    접근 시간 설정을 위해 상기 DRAM에 쓸 데이터를 포함하는 시험용 데이터 테이블; 및
    현 뱅크 ID 신호 및 DRAM의 접근 시간을 구하라는 신호를 입력받으면, DRAM의 종류에 따라 상기 접근 시간 테이블의 시간 데이터들을 그 시간 데이터에 대응하는 쓰고 읽는 DRAM 제어 신호들을 상기 어드레스 테이블의 어드레스 신호와 대응하여 출력하는 접근신호 생성부를 포함하는 것을 특징으로 하는 DRAM 자동 검출 장치.
  7. 제 6항에 있어서, 상기 접근 시간 테이블은
    EDO DRAM 접근 시간 데이터를 포함하는 EDO DRAM 테이블;
    FPM DRAM 접근 시간 데이터를 포함하는 FPM DRAM 테이블; 및
    SDRAM 접근 시간 데이터를 포함하는 SDRAM 테이블을 포함하는 것을 특징으로 하는 DRAM 자동 검출 장치.
  8. 제 2항에 있어서, 상기 타이밍 생성부는
    DRAM의 용량을 검출하기 위한 어드레스를 포함하며 DRAM을 읽거나 DRAM에 쓰는 동작시에 그 어드레스들을 출력하는 시험용 어드레스 테이블;
    DRAM의 용량을 검출하기 위해 상기 DRAM에 쓸 데이터를 포함하는 시험용 데이터 테이블; 및
    현 뱅크 ID 신호 및 용량을 구하라는 신호를 입력받으면, DRAM의 종류에 따라 상기 시험용 데이터 테이블의 데이터들을 그 데이터에 대응하는 쓰고 읽는 DRAM 제어 신호들을 상기 어드레스 테이블의 어드레스 신호와 대응하여 출력하는 접근신호 생성부를 포함하는 것을 특징으로 하는 DRAM 자동 검출 장치.
  9. DRAM의 구성을 자동적으로 검출하는 방법에 있어서,
    설치된 DRAM이 EDO DRAM이라고 가정하여 DRAM에 대해 EDO DRAM 특유의 쓰고 읽는 동작을 하여 EDO DRAM이 설치되어 있는지를 확인하는 EDO DRAM 탐지 단계;
    설치된 DRAM이 FPM DRAM이라고 가정하여 DRAM에 대해 FPM DRAM 특유의 쓰고 읽는 동작을 하여 FPM DRAM이 설치되어 있는지를 확인하는 FPM DRAM 탐지 단계; 및
    설치된 DRAM이 SDRAM이라고 가정하여 DRAM에 대해 SDRAM 특유의 쓰고 읽는 동작을 SDRAM이 설치되어 있는지를 확인하는 SDRAM 탐지 단계를 포함하는 것을 특징으로 하는 DRAM 자동 검출 방법.
  10. 제 9항에 있어서,
    탐지된 DRAM 종류에 따라 DRAM에 대한 접근 시간을 변화시키면서 DRAM에 데이터를 쓰고 그 데이터를 읽어서, 쓴 데이터와 읽은 데이터가 서로 같은가를 확인하여 메모리 접근 시간 중 최소의 시간을 구하는 메모리 최소 접근 시간 탐지 단계; 및
    어드레스 비트를 변화시키면서 상기 DRAM에 소정의 데이터를 쓰고 그 데이터를 읽어 쓴 데이터와 읽은 데이터가 서로 같은가를 확인하여, 데이터가 제대로 써진 최대의 비트를 탐지하여 DRAM의 용량을 확인하는 용량 탐지 단계를 더 포함하는 것을 특징으로 하는 DRAM 자동 검출 방법.
  11. 제 10항에 있어서,
    설치된 DRAM이 EDO, FPM DRAM 혹은 SDRAM인지와 메모리 최소접근시간 및 용량에 대한 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 DRAM 자동 검출 방법.
  12. 제 10항에 있어서,
    DRAM에 전원이 인가된 후 DRAM이 동작하지 않아야 하는 일정 시간동안 대기하는 유휴시간 대기 단계; 및
    검출하려는 뱅크의 ID를 생성하는 단계를 더 포함하는 것을 특징으로 하는 DRAM 자동 검출 방법.
  13. 제 10항에 있어서, 상기 용량 탐지 단계는,
    상기 DRAM의 한 페이지내에서 어드레스를 변화시키면서 상기 DRAM에 데이터를 쓰고 이 데이타를 확인하여 데이터가 제대로 써지는 최대의 행 비트를 구하는 단계; 및
    행 비트를 고정시키고, 열 비트를 변화시키면서 상기 DRAM에 데이터를 쓰고 이 데이타를 확인하여 데이터가 제대로 써지는 최대의 열 비트를 구하는 단계를 포함하는 것을 특징으로 하는 DRAM 자동 검출 방법.
  14. 제 13항에 있어서, 상기 열 비트를 구하는 단계는
    상기 DRAM이 SDRAM인 경우에는 어드레스의 행 비트와 열 비트를 고정시키고, 내부 뱅크의 특정 어드레스에 소정의 데이터를 쓰고 써진 데이터를 읽어 쓴 데이터와 읽은 데이터가 서로 같은지 확인하여 데이터가 제대로 써지는 최대의 내부 뱅크 비트를 결정하여 SDRAM의 내부 뱅크 비트를 구하는 단계를 포함하는 것을 특징으로 하는 DRAM 자동 검출 방법.
  15. DRAM 제어 장치에 있어서,
    동기식 DRAM을 제어하는 동기식 DRAM 제어부;
    비동기식 DRAM을 제어하는 비동기식 DRAM 제어부;
    DRAM의 종류를 자동으로 검출하는 자동 검출부; 및
    상기 자동 검출부에서 검출한 DRAM의 종류에 따라 상기 동기식 DRAM 제어부 혹은 상기 비동기식 DRAM 제어부의 DRAM 제어 출력 중 어느 한 쪽이 해당 DRAM에 전달되도록 조절하는 출력 다중화부를 포함하는 것을 특징으로 하는 DRAM 제어장치.
  16. 제 15항에 있어서, 상기 비동기식 DRAM 제어부는
    EDO DRAM을 제어하는 EDO DRAM 제어부; 및
    FPM DRAM을 제어하는 FPM DRAM 제어부를 포함하는 것을 특징으로 하는 DRAM 제어 장치.
  17. 제 15항에 있어서, 상기 자동 검출부는
    DRAM 슬롯에 장착된 DRAM의 종류를 검출하라는 신호를 출력하는 상태 제어부; 및
    DRAM의 종류를 검출하라는 신호를 받으면 DRAM의 슬롯에 대응하는 DRAM의 어드레스에 각 DRAM의 종류에 따라 쓰는 제어 방법을 틀리게 하여 소정의 시험용 데이터를 상기 DRAM에 쓰고, 쓰는 제어 방법과 대응하는 읽기 방법으로 상기 DRAM의 어드레스를 읽어 DRAM의 종류를 구하는 타이밍 생성부를 포함하는 것을 특징으로 하는 DRAM 제어 장치.
  18. 제 17항에 있어서, 상기 자동 검출부는
    전원이 인가된 후 DRAM의 유휴시간에 대응하는 소정의 시간이 경과하였음을 나타내는 신호를 출력하는 전원인가시간계산부; 및
    한 뱅크에 대한 검출이 끝난 신호를 받으면 다음에 검출하려는 현 뱅크 ID를 생성하는 뱅크 ID 생성부를 더 포함하고,
    상기 상태 제어부는 전원이 인가된 후 소정의 시간이 경과하였음을 나타내는 신호 및 상기 현 뱅크 ID를 입력받아 현 뱅크 ID에 대응하는 뱅크에 설치된 DRAM의 접근(access) 속도를 구하라는 신호를 출력하고,
    상기 타이밍 생성부는 DRAM의 접근 속도를 구하라는 신호를 받으면 현 뱅크 ID에 대응하는 DRAM의 어드레스에 검출된 DRAM의 종류에 따라 소정의 시험용 데이터를 쓰는 시간을 달리하여 쓰고, 그 써진 데이터를 읽어서 상기 소정의 시험용 데이터와 같은가를 확인하여 DRAM의 접근 시간을 구하는 것을 특징으로 하는 DRAM 자동 검출장치.
  19. 제 17항에 있어서, 상기 자동 검출부는
    전원이 인가된 후 DRAM의 유휴시간에 대응하는 소정의 시간이 경과하였음을 나타내는 신호를 출력하는 전원인가시간계산부; 및
    한 뱅크에 대한 검출이 끝난 신호를 받으면 다음에 검출하려는 현 뱅크 ID를 생성하는 뱅크 ID 생성부를 더 포함하고,
    상기 상태 제어부는 전원이 인가된 후 소정의 시간이 경과하였음을 나타내는 신호 및 상기 현 뱅크 ID를 입력받아 현 뱅크 ID에 대응하는 뱅크에 설치된 DRAM의 메모리 용량을 구하라는 신호를 출력하고,
    상기 타이밍 생성부는 전원이 인가된 후 소정의 시간이 경과하였음을 나타내는 신호 및 상기 현 뱅크 ID를 입력받아 현 뱅크 ID에 대응하는 뱅크에 설치된 DRAM의 메모리 용량을 구하라는 신호를 받으면 현 뱅크에 대응하는 검출된 DRAM의 종류에 따라 어드레스들을 변화시키면서 상기 DRAM에 소정의 데이터를 쓰고 그 값을 확인하여 행 비트와 열 비트 그리고 선택적으로 내부 뱅크 비트를 구하는 것을 특징으로 하는 DRAM 자동 검출 장치.
  20. 제 19항에 있어서,
    상기 상태 제어부가 출력하는 DRAM의 종류에 대한 신호는 EDO DRAM, FPM DRAM 및 SDRAM를 구분하는 신호이며,
    상기 타이밍 생성부는 상기 DRAM이 SDRAM이면 행 비트와 열 비트 어드레스를 소정의 값으로 고정시키고 SDRAM의 내부 뱅크 비트의 소정의 번지에 소정의 데이터를 쓰고, 그 써진 데이터를 읽어서 상기 소정의 데이터와 같은가를 확인하여 SDRAM의 내부 뱅크 비트를 구하는 것을 특징으로 하는 DRAM 자동 검출 장치.
  21. 제 15항에 있어서, 상기 자동 검출부는
    메모리 접근 동작이 일어날 때에 해당 DRAM이 설치된 뱅크가 어느 것인지 검출하는 어드레스 디코더를 더 포함하는 것을 특징으로 하는 DRAM 제어 장치
  22. DRAM 제어 방법에 있어서,
    설치된 DRAM의 종류를 검출하는 단계; 및
    상기 검출 단계에서 구한 DRAM의 종류에 따라 별도의 제어 신호를 해당 DRAM에 출력하여 제어하는 단계를 포함하며,
    상기 DRAM의 종류를 검출하는 단계는
    설치된 DRAM이 EDO DRAM이라고 가정하여 DRAM에 대해 EDO DRAM 특유의 쓰고 읽는 동작을 하여 EDO DRAM이 설치되어 있는지를 확인하는 EDO DRAM 탐지 단계;
    설치된 DRAM이 FPM DRAM이라고 가정하여 DRAM에 대해 FPM DRAM 특유의 쓰고 읽는 동작을 하여 FPM DRAM이 설치되어 있는지를 확인하는 FPM DRAM 탐지 단계; 및
    설치된 DRAM이 SDRAM이라고 가정하여 DRAM에 대해 SDRAM 특유의 쓰고 읽는 동작을 SDRAM이 설치되어 있는지를 확인하는 SDRAM 탐지 단계를 포함하는 것을 특징으로 하는 DRAM 제어 방법.
  23. 제 22항에 있어서, 상기 DRAM의 종류를 검출하는 단계는
    탐지된 DRAM 종류에 따라 DRAM에 대한 접근 시간을 변화시키면서 DRAM에 데이터를 쓰고 그 데이터를 읽어서, 쓴 데이터와 읽은 데이터가 서로 같은가를 확인하여 메모리 접근 시간 중 최소의 시간을 구하는 메모리 최소 접근 시간 탐지 단계; 및
    어드레스 비트를 변화시키면서 상기 DRAM에 소정의 데이터를 쓰고 그 데이터를 읽어 쓴 데이터와 읽은 데이터가 서로 같은가를 확인하여, 데이터가 제대로 써진 최대의 비트를 탐지하여 DRAM의 용량을 확인하는 용량 탐지 단계를 더 포함하는 것을 특징으로 하는 DRAM 자동 검출 방법.
  24. 제 23항에 있어서, 상기 용량 탐지 단계는
    상기 DRAM의 한 페이지내에서 어드레스를 변화시키면서 상기 DRAM에 데이터를 쓰고 이 데이타를 확인하여 데이터가 제대로 써지는 최대의 행 비트를 구하는 단계;
    행 비트를 고정시키고, 열 비트를 변화시키면서 상기 DRAM에 데이터를 쓰고 이 데이타를 확인하여 데이터가 제대로 써지는 최대의 열 비트를 구하는 단계를 포함하는 것을 특징으로 하는 DRAM 자동 검출 방법.
  25. 제 24항에 있어서, 상기 열 비트를 구하는 단계는
    상기 DRAM이 SDRAM인 경우에는 어드레스의 행 비트와 열 비트를 고정시키고, 내부 뱅크의 특정 어드레스에 소정의 데이터를 쓰고 써진 데이터를 읽어 쓴 데이터와 읽은 데이터가 서로 같은지 확인하여 데이터가 제대로 써지는 최대의 내부 뱅크 비트를 결정하여 SDRAM의 내부 뱅크 비트를 구하는 단계를 포함하는 것을 특징으로 하는 DRAM 자동 검출 방법.
KR1019990042501A 1999-10-02 1999-10-02 Dram 구성을 자동 검출하는 장치 및 방법 KR100607939B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990042501A KR100607939B1 (ko) 1999-10-02 1999-10-02 Dram 구성을 자동 검출하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990042501A KR100607939B1 (ko) 1999-10-02 1999-10-02 Dram 구성을 자동 검출하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20010035775A true KR20010035775A (ko) 2001-05-07
KR100607939B1 KR100607939B1 (ko) 2006-08-03

Family

ID=19613771

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990042501A KR100607939B1 (ko) 1999-10-02 1999-10-02 Dram 구성을 자동 검출하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100607939B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100672105B1 (ko) * 2005-09-15 2007-01-19 주식회사 하이닉스반도체 플래시 메모리 칩들을 동작시키는 방법
KR100738781B1 (ko) * 2006-07-06 2007-07-12 주식회사 대우일렉트로닉스 메모리의 액세스 타임 제어 방법
KR100843142B1 (ko) * 2006-09-19 2008-07-02 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
CN105718222A (zh) * 2016-01-27 2016-06-29 珠海全志科技股份有限公司 一种更新dram配置的自适应装置和方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9606916B2 (en) 2013-09-13 2017-03-28 Samsung Electronics Co., Ltd. Semiconductor devices including application processor connected to high-bandwidth memory and low-bandwidth memory, and channel interleaving method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241951A (ja) * 1992-02-26 1993-09-21 Canon Inc メモリ制御装置
JPH1011964A (ja) * 1996-06-28 1998-01-16 Toshiba Corp メモリ制御装置およびメモリ制御方法
KR19980020792A (ko) * 1996-09-11 1998-06-25 김광호 시스템 콘트롤러의 메모리 제어회로

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100672105B1 (ko) * 2005-09-15 2007-01-19 주식회사 하이닉스반도체 플래시 메모리 칩들을 동작시키는 방법
US7502885B2 (en) 2005-09-15 2009-03-10 Hynix Semiconductor Inc. Method of operating flash memory chips
KR100738781B1 (ko) * 2006-07-06 2007-07-12 주식회사 대우일렉트로닉스 메모리의 액세스 타임 제어 방법
KR100843142B1 (ko) * 2006-09-19 2008-07-02 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US7580295B2 (en) 2006-09-19 2009-08-25 Samsung Electronics Co., Ltd. Semiconductor memory device and memory system including semiconductor memory device
CN105718222A (zh) * 2016-01-27 2016-06-29 珠海全志科技股份有限公司 一种更新dram配置的自适应装置和方法

Also Published As

Publication number Publication date
KR100607939B1 (ko) 2006-08-03

Similar Documents

Publication Publication Date Title
US5301278A (en) Flexible dynamic memory controller
US7120754B2 (en) Synchronous DRAM with selectable internal prefetch size
US20050102590A1 (en) Method for performing a burn-in test
JPH04230544A (ja) ダイナミックメモリシステムのタイミングを動的に設定するデータ処理装置
US20070070794A1 (en) Arbitration for memory device with commands
KR20080014005A (ko) 고속 테스팅 및 교정을 허용하는 데이터 바이패스 경로를갖는 메모리 디바이스 및 방법
JP2004536417A (ja) 読出及び書込動作でバースト順序が異なるアドレッシングを行うメモリデバイス
KR100487180B1 (ko) 코어 잡음 테스트 실행 방법, 다이나믹 랜덤 액세스 메모리(dram) 테스트 방법, dram, 테스트 시스템, 컴퓨터 시스템 및 dram 제조 방법
US5570381A (en) Synchronous DRAM tester
US7197675B2 (en) Method and apparatus for determining the write delay time of a memory utilizing the north bridge chipset as in charge of the works for checking the write delay time of the memory
US6252794B1 (en) DRAM and data access method for DRAM
JP3681892B2 (ja) 半導体装置のデータ入出力回路及びデータ入出力方法
US5991213A (en) Short disturb test algorithm for built-in self-test
US6449193B1 (en) Burst access memory system
US9442658B2 (en) Apparatuses and methods including selectively providing a single or separate chip select signals
US7394716B1 (en) Bank availability indications for memory device and method therefor
US5862320A (en) SDRAM DIMM presence detect interface
KR100607939B1 (ko) Dram 구성을 자동 검출하는 장치 및 방법
JPH0855495A (ja) 同期メモリデバイスを非同期メモリデバイスとして再構成する回路及び方法
CA1172316A (en) Refresh counter test
US5986953A (en) Input/output circuits and methods for testing integrated circuit memory devices
US5968181A (en) One-chip clock synchronized memory device
KR100373419B1 (ko) 어드레스가능 메모리 장치용 어드레스 랩 기능
JP3489497B2 (ja) メモリコントローラ
US6141727A (en) Device and method for controlling data storage device

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
FPAY Annual fee payment

Payment date: 20130627

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee