KR100450726B1 - 제어된 메모리 저장 장치의 타이밍 파라미터를 토대로 하여 실행 능력을 조절하기 위한 프로그램 가능 지연 카운터를 갖는 메모리 컨트롤러 - Google Patents
제어된 메모리 저장 장치의 타이밍 파라미터를 토대로 하여 실행 능력을 조절하기 위한 프로그램 가능 지연 카운터를 갖는 메모리 컨트롤러 Download PDFInfo
- Publication number
- KR100450726B1 KR100450726B1 KR10-2001-7003241A KR20017003241A KR100450726B1 KR 100450726 B1 KR100450726 B1 KR 100450726B1 KR 20017003241 A KR20017003241 A KR 20017003241A KR 100450726 B1 KR100450726 B1 KR 100450726B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- delay
- counter
- memory control
- memory storage
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
Abstract
본 발명은 하나 이상의 프로그램 가능한 지연 카운터(24)를 통해 메모리 제어 동작의 타이밍을 제어하는 튜닝 회로(22)를 이용한 메모리 컨트롤러 회로 장치 및 방법에 관한 것이다. 각각의 카운터는 메모리 제어 동안의 실행 능력을 지연시키기 위하여 선택된 수의 클록 사이클 만큼 사이클링하도록 프로그램되어 컨트롤러(10, 78)에 접속된 메모리 저장 장치용의 기설정된 타이밍 파라미터를 맞춘다. 프로그램 가능한 지연 카운터를 사용함으로써, 가변 타이밍 파라미터를 갖는 다수의 메모리 저장 장치(76)가 동일한 메모리 컨트롤러 설계에 의해 지원될 수 있다. 또한, 프로그램 가능한 지연 카운터는 메모리 컨트롤러 상태 머신에서의 단일 실행 경로가 특정 타이밍 특성 및 다수의 타이밍 특성에 대한 소정의 수의 타이밍 파라미터를 지원할 수 있도록 한다.
Description
컴퓨터 및 그 이외의 데이터 처리 시스템은 컴퓨터의 작업을 수행하는 데에 있어서 컴퓨터 시스템 등에 의해 사용되는 정보를 저장시키기 위하여 다수의 메모리에 폭넓게 의존한다. 예컨대, 메모리는 컴퓨터에 의해 수행되는 일부분의 컴퓨터 프로그램 및 컴퓨터에 의해 수행되는 데이터들을 저장하도록 사용될 수 있다.
메모리들은 컴퓨터의 다수의 부품에서도 찾아 볼 수 있다. 예컨대, 컴퓨터의 두뇌 역할을 하는 마이크로 프로세서는 통상 컴퓨터의 메인 메모리로부터 획득 가능한 소정의 데이터 또는 컴퓨터 명령에 보다 빠르게 액세스할 수 있는 전용의 캐쉬 메모리를 갖는다. 또한, 그래픽 컨트롤러에 의해 사용되는 전용 메모리는 컴퓨터 모니터 또는 다른 디스플레이 상에 디스플레이할 정보를 저장한다.
메모리는 컴퓨터에 사용되는 다수의 형태, 예컨대 외부 네트웍을 통하여 컴퓨터와 다른 컴퓨터 간을 인터페이스하는 인터페이스의 다수의 형태로 발견될 수 있다. 통상적으로, 이 인터페이스들은, 예컨대 컴퓨터 내부에 플러그인되어 특정 형태의 네트웍에 연결하기 위하여 필요한 커넥터를 갖는 전용 하드웨어로 구현된다. 컴퓨터와 네트웍 간의 데이터의 전송을 처리하는 데에 통상 컨트롤러가 사용되며, 통상적으로 전용 메모리가 컨트롤러에 의해 사용되는 제어 데이터 및 인터페이스를 통해 전송되는 데이터의 일시적인 카피를 저장하는 데에 사용된다.
전술한 어플리케이션에 사용되는 메모리는 하나 이상의 고체 상태의 저장 장치 또는 "칩"으로 구현된다. 통상적으로 전용 메모리 컨트롤러는 기설정된 프로토콜에 따라 이러한 메모리 기억 장치와의 데이터의 송수신을 처리하는 데에 사용된다.
통상적으로, 메모리 저장 장치는 그 저장 장치에서 소정의 동작을 수행하기 전에 반드시 대기해야만 하는 최소 지연을 정의하는 하나 이상의 타이밍 특성을 갖는다. 따라서, 특정의 메모리 저장 장치를 구현하는 데에는 상기 특성과 관련된 타이밍 파라미터가 정의된다. 이들 타이밍 파라미터는 종종 장치의 물리적인 구조에 의해 제한되며, 저장 장치의 신뢰성 있는 동작을 보증하기 위하여 저장 장치의 설계자에 의해 정의된다. 한가지 단순한 예를 들자면, 메모리 저장 장치의 일 형태인 DRAM은 데이터가 저장 장치로부터 판독되기 전에 적어도 기설정된 시간 동안 저장 장치 내의 회로가 프리차지될 것을 요구한다. 이 특성과 관련된 타이밍 파라미터가 특정 메모리 저장 장치 구현을 충족시키지 못하는 경우, 이 저장 장치에 오류가 발생하여 데이터의 유효성이 위협 받게 될 것이다.
상이한 형태의 메모리 저장 장치는 상이한 형태의 타이밍 파라미터를 가질 수 있다. 또한, 기술이 향상됨에 따라 소정 형태의 메모리 저장 장치는 과거의 설계보다 향상될 수 있으며, 그 결과 과거의 설계와는 다른 타이밍 파라미터를 가질 수 있다.
소정 형태의 메모리 저장 장치에 따라 데이터 전송을 제어하기 위하여, 메모리 컨트롤러는 종종 이 저장 장치에 사용되는 다양한 타이밍 파라미터들을 맞추도록 특별히 조절되어야만 한다. 소정의 형태의 메모리 저장 장치에 따라 최적으로 가능한 실행 능력을 보증하기 위하여, 종종 메모리 컨트롤러가 이 장치용으로 한정된 타이밍 파라미터를 맞추거나 또는 약간 초과하도록 다수의 메모리 컨트롤러 동작들 간의 지연을 설정하는 것이 요구된다.
그러나, 몇몇 메모리 컨트롤러는 다른 형태의 메모리 저장 장치와 함께 사용될 필요가 있다. 예컨대, 다수의 형태의 메모리 저장 장치를 지원하여 메모리 컨트롤러가 상이한 어플리케이션에 사용될 수 있도록 하는 것이 바람직하다. 그러나, 다수의 형태의 메모리 저장 장치를 지원하기 위해서는, 통상적으로 타이밍 파라미터가 최소의 수용 가능한 지연을 정의하므로 소정의 메모리 저장 장치의 최악의 경우의 타이밍 파라미터를 처리하도록 설계될 필요성이 종종 생긴다. 결과적으로, 메모리 컨트롤러가 그 컨트롤러에 대해 정의된 최악의 경우의 타이밍 파라미터보다 빠른 실행 능력을 제공하는 타이밍 파라미터를 갖는 메모리 저장 장치와 함께 사용되는 경우면, 이 메모리 저장 장치는 이의 최대 실행 능력 레벨 보다 낮게 동작하게 되며, 그 컨트롤러가 아니었다면 가능했었을 향상된 실행 능력을 상실하게 된다.
몇몇 종래의 메모리 컨트롤러 설계에 있어서, 컨트롤러와 메모리 저장 장치간의 실행 능력의 불일치를 고려하여 하나 이상의 "대기 상태"를 메모리 엑세스 동작으로 제어 가능하게 삽입함으로써, 소정의 타이밍 특성에 대한 상이한 타이밍 파라미터를 제공하고자 하는 시도가 있었다. 통상적으로 이러한 컨트롤러 설계는 실행할 수 있는 2개의 경로 중의 하나의 경로를 제어 가능하게 선택함으로써, 2개의 타이밍 파라미터 중에 하나의 타이밍 파라미터를 지원한다.
특히, 메모리 컨트롤러는 상이한 "스테이지(stage)"들 간을 사이클링(cycling)하는 상태 머신을 사용하여 메모리 저장 장치와 함께 데이터 전송을 제어하는 것과 관련한 상이한 메모리 제어 동작을 수행한다. 상태 머신은 각 상태들 간에 대기하는 시간을 정의하는 클록 신호에 의해 타이밍이 맞춰진다. 실행 경로는 스테이지의 순서에 의해 정의되어 이 경로가 이어지는 경우 상태 머신에서 순차적으로 수행된다.
이러한 종래의 메모리 컨트롤러 설계의 중요한 한계는 실행의 제2 경로를 지원하는 것이 상태 머신의 복잡성을 증가시키게 되어 모든 비용 및 컨트롤러의 복잡성을 증가시키는 경향이 있다는 것이다. 또한, 상태 머신의 복잡성은 실행 경로의 수가 증가함에 따라 급격하게 증가한다. 또한, 다수의 타이밍 특성에 대하여 다수의 타이밍 파라미터를 지원하는 것이 타당하다면, 상태 머신의 복잡성은 더 큰 비율로 증가한다. 결과적으로, 통상적인 종래의 메모리 컨트롤러 설계는 극소수의 타이밍 특성에 대하여 극소수의 타이밍 파라미터만을 지원하는 것으로 제한된다.
또한, 종래의 메모리 컨트롤러 설계는 다수의 메모리 저장 장치를 지원하지 못하므로, 짧은 타이밍 파라미터를 갖는, 즉 종래보다 향상된 실행 능력의 메모리 저장 장치의 사용을 고려한 설계는 종종 비용상 비효율적이게 된다. 결과적으로, 새로운 메모리 컨트롤러 설계는 메모리 저장 장치 기술의 발달에 대응하여 발전해야만 한다.
따라서, 폭넓게 다수의 메모리 저장 장치를 지원할 수 있는 보다 유연하고 확장성이 있는 메모리 컨트롤러 설계에 대한 중요한 필요성은 계속되고 있다.
본 발명은 집적 회로 소자 구조 및 설계에 관한 것으로서, 특히 메모리 기억 장치로의 데이터 전송을 제어하는 메모리 컨트롤러의 구조 및 설계에 관한 것이다.
도 1은 본 발명에 따른 튜닝 회로를 사용한 메모리 컨트롤러 회로 장치의 블록도.
도 2는 도 1의 메모리 컨트롤러 회로 장치에서의 프로그램 가능한 지연 카운터의 블록도.
도 3은 도 2에 도시된 메모리 컨트롤러 회로 장치 내의 또 다른 프로그램 가능한 지연 카운터의 블록도.
도 4는 본 발명에 따른 데이터 처리 시스템의 블록도.
도 5는 도 4의 데이터 처리 시스템 내의 네트웍 어댑터의 블록도.
도 6은 도 5의 네트웍 어댑터 내의 메모리 컨트롤러의 블록도.
도 7은 메모리 특정 상태 머신/지원 논리 회로의 블록도.
도 8은 도 7의 메모리 특정 상태 머신/지원 논리 회로 내에서 적합하게 사용되는 감산형 프로그램 가능한 지연 카운터의 블록도.
도 9는 도 7의 메모리 특정 상태 머신/지원 논리 회로 내에서 적합하게 사용되는 가산형 프로그램 가능한 지연 카운터의 블록도.
도 10은 본 발명에 따른 메모리 컨트롤러를 사용하여 판독 액세스하는 동안 제1 집단의 타이밍 파라미터를 갖는 메모리 저장 장치와 함께 사용하는 메모리 제어 동작의 예시적인 타이밍을 도시한 타이밍도.
도 11은 본 발명에 따른 메모리 컨트롤러를 사용하여 기록 액세스하는 동안 제2 집단의 타이밍 파라미터를 갖는 메모리 저장 장치와 함께 사용하는 메모리 제어 동작의 예시적인 타이밍을 도시한 타이밍도.
본 발명은 튜닝 회로를 사용하는 메모리 컨트롤러 회로 장치 및 방법을 제공함으로써 종래 기술과 관련된 전술한 문제 및 다른 문제들에 접근하여 하나 이상의 프로그램 가능한 지연 카운터를 통해 메모리 제어 동작의 타이밍을 제어한다. 각각의 카운터는 메모리 제어 동작의 실행 능력을 지연시키기 위하여 선택된 수의 클록 사이클을 사이클링하도록 프로그램 되어 컨트롤러에 접속된 메모리 저장 장치에 대한 기설정된 타이밍 파라미터에 맞춘다.
예컨대, 프로그램 가능한 지연 카운터가 논리 회로에 의하여 메모리 제어 동작의 실행 능력을 초기화하기 위하여 상태 머신 논리 회로에서 상태 천이가 가능하도록 사용될 수 있으며, 이 논리 회로에서의 단일 실행 경로가 특정 타이밍 특성에 대한 소정의 수의 타이밍 파라미터 변동을 지원하는 데에 사용될 수 있다. 또한, 다수의 프로그램 가능한 지연 카운터를 통해 다수의 타이밍 특성들이 동일한 실행 경로 내에서 조절될 수 있다. 따라서, 결과적으로 다수의 타이밍 특성들 및 타이밍 파라미터들은 단일 집적 설계 내에서 지원받을 수 있으며, 종래의 기술보다 양호한 유연성 및 확장성을 제공할 수 있다.
따라서, 본 발명의 일특징과 일치하는 논리 회로 및 튜닝 회로를 포함하는 메모리 컨트롤러 회로 장치가 제공된다. 이 논리 회로는 제1 및 제2 메모리 제어 동작을 수행함으로써, 적어도 하나의 메모리 저장 장치와 함께 제어 데이터를 전송하도록 구성된다. 기 설정된 타이밍 파라미터를 갖는 이 형태의 메모리 저장 장치는 제1 및 제2 메모리 제어 동작들 간의 최소 지연을 한정한다. 튜닝 회로는 논리 회로에 접속되며, 제1 및 제2 메모리 제어 동작들간의 지연을 제어하도록 구성되어 제2 메모리 제어 동작에 대한 선택된 수의 프로그램 가능한 지연 카운터를 사이클링함으로써, 메모리 저장 장치에 대한 기설정된 타이밍 파라미터에 맞춘다.
본 발명에서 특징지워지는 이들 및 다른 이점 및 특징은 본 발명과 관련된 특허청구범위를 설정하여 본 발명의 추가적인 부분을 형성한다. 그러나, 본 발명 및 본 발명을 사용함으로써 얻을 수 있는 이점 및 목적을 보다 잘 이해하기 위하여, 참조 번호가 도면 및 첨부된 상세한 설명 부분에도 부기되어 있으며, 상세한 설명 및 도면에는 본 발명의 예시적인 실시예가 설명되어 있다.
일반적으로, 본 발명에 설명된 일실시예는 메모리 제어 동작의 실행 능력을 지연시키기 위하여 메모리 컨트롤러 내의 프로그램 가능한 지연 카운터를 사이클링시켜 동작시킴으로써, 메모리 컨트롤러에 접속된 메모리 저장 장치에 대한 타이밍 파라미터를 맞춘다. 이와 같이, 가변 타이밍 파라미터를 갖는 다수의 고체 상태(반도체) 메모리 저장 장치는 보다 유연하게 확장 가능한 방법으로 지원될 수 있지만, 동기형 DRAM(Synchronous Dynamic Random Access Memory), 향상된 동기형 DRAM, 램버스 DRAM, 확장형 데이터 출력 DRAM, 페이지 모드 DRAM, SRAM, 플래쉬 메모리, ROM, EEPROM(Electronically-Erasable Progrmable Read Only Memory), 직렬 EPROM, 직접 엑세스 저장 장치(DASD;Direct Access Storage Device), 메모리 처럼 동작하는 하부 시스템 등에 국한되지 않고, 이들 장치를 포함한다.
본 명세서에 제출된 방법의 3개의 주된 관점은 메모리 컨트롤러의 실행 능력을 조절하는 것이 바람직하다는 것에서 생각한 것이다. 첫 번째로, 즉 소정의 메모리 엑세스에 대하여 소정의 메모리 엑세스 사이클 동안, 예컨대 로우와 컬럼 어드레스 스트로브(및)(row and column address strobe) 신호들 간의 시간 기간 동안, 어서팅 신호(asserting signal)와 디어서팅 신호(deasserting signal) 간의 지연을 제어하는 것이 종종 바람직하다. 두 번째로, 예컨대 EDO DRAM에 대하여 이프리차지 시간을 어서팅하고 해제하는 사이의 지연, 즉 연속적인 메모리 엑세스 간의 어서팅 신호와 디어서팅 신호 간의 지연을 제어하는 것이 바람직할 때가 종종 있다. 세 번째로, 예컨대 다수 뱅크 DRAM 내의 소정의 뱅크로의 연속적인 엑세스 사이의 지연, 즉 연속적이지는 않지만 상호 연관된 메모리 엑세스 사이클들 사이의 어서팅 신호와 디어서팅 신호간의 지연을 제어하는 것이 바람직할 때가 종종 있다. 당업자라면 본 명세서의 내용을 읽음으로써, 다른 경우의 실시예도 가능함을 명백히 알 수 있을 것이다.
예컨대, 도 1에 도시된 바와 같이, 메모리 컨트롤러(10)는 논리 회로(12)를 포함할 수 있고, 제1 및 제2 제어 동작이 수행되는 스테이지(14, 16)를 포함하는 복수의 스테이지를 갖는 상태 머신을 구현한다. 논리 회로(12)는 실질적으로 메모리 저장 장치와 연관되어 사용되는 어떤 형태의 상태 머신을 포함할 수 있으며, 종래 기술에서 잘 알려진 바와 같이 다른 논리 회로를 포함할 수 있다. 이와 같이, 결정되지 않은 수의 스테이지들이 스테이지(14, 16) 이전 및 이후로 도시되어 있다. 심지어 스테이지가 없는 경우의 어떤 수의 스테이지라도 스테이지(14, 16) 사이에 삽입될 수 있다.
메모리 제어 동작은 메모리 컨트롤러에 의해 수행된 실질적으로 어떤 적절한 동작을 나타낼 수 있으며, 예컨대, 어떤 수의 메모리 제어 신호를 메모리 저장 장치로 어서팅 또는 디어서팅하는 단계, 메모리 저장 장치로부터 수신한 어떤 수의 신호를 래치하는 단계 및 새로운 데이터 신호를 메모리 저장 장치로 전송하는 단계 등을 주로 포함한다. 스테이지(14, 16)에서 수행되는 제1 및 제2 메모리 제어 동작은, 예컨대 동일한 제어 신호를 어서팅 및 디어서팅하고, 상이한 제어 신호를 어서팅 및 디어서팅하며, 메모리 저장 장치로부터 리턴된 동일하거나 상이한 신호를 래칭하는 등의 다수의 방법과도 서로 상관 관계를 갖는다. 또한, 제1 및 제2 메모리 제어 동작은 동일한 메모리 엑세스 사이클 동안, 연속적인 메모리 엑세스 사이클 동안, 또는 분리되어 불연속적인 메모리 엑세스 사이클 동안 수행될 수 있다.
본 발명과 관련된 제1 및 제2 메모리 제어 동작은 메모리 컨트롤러(10)에 연결된 특정 메모리 저장 장치에 사용되는 타이밍 파라미터와 관련된 기설정된 지연에 의해 시간 내에 분리되어야만 한다. 타이밍 파라미터는 메모리 컨트롤러에 사용하기에 적합한 상이한 메모리 저장 장치에 공통인 타이밍 특성용의 특정 값을 나타낸다. 타이밍 파라미터는 최소 시간, 예컨대 10-9초 단위로 특정지워질 수 있다. 또 다른 실시예에서, 타이밍 파라미터는 최소 수의 클록 사이클로 특정지워질 수 있다. 또한, 통상적으로 메모리 컨트롤러는 동기되어 동작하며, 통상적으로 제1 및 제2 메모리 제어 동작 사이에 삽입된 지연은 타이밍 파라미터의 유닛과는 상관없이 소정의 메모리 컨트롤러 클록용 사이클의 선택된 수로 나타난다.
다수의 타이밍 파라미터 특성이 상이한 형태의 메모리 저장 장치와 연관이 있을 수 있다. 예컨대, 다른 타이밍 파라미터 중에서, 뱅크 사이클 시간(tRC), 활성 커맨드 주기(tRAS), 프리차지 시간에 대한 데이터 입력 시간(tDPL), 프리차지 시간(tRP),대지연 시간(tRCD),지연(tAA) 등의 동기형 DRAM용의 적절한 타이밍 특성을 포함한다. 다른 타이밍 특성도 다른 형태의 메모리 저장 장치 용으로 존재할 수 있다. 각각의 경우에 있어서, 소정의 메모리 저장 장치와 연관 있는 특정 타이밍 파라미터들은 이 산업 부분에서 통상적으로 잘 알려져 있으며, 통상적으로 본 명세서에 기술된 방법으로 메모리 컨트롤연의 실행 능력을 조절하는 것은 하나 이상의 이들 바람직한 특정 타이밍 특성과 관련이 있다.
메모리 컨트롤러(10)에서, 단계(14)에서의 지연 신호를 어서팅하여 제1 및 제2 메모리 제어 동작의 실행 능력 사이의 지연을 제어되도록 하며, 이는 선택된 수의 사이클 동안 제2 메모리 제어 동작의 동작 지연을 요구하는 것을 나타낸다. 제2 메모리 제어 동작의 실행 능력은 인에이블 신호(20)로 나타낸 바와 같이 단계(16)로의 상태 천이를 가능하게 함으로써 초기화 된다.
프로그램 가능한 지연 카운터(24) 및 구성 레지스터(26)를 포함하는 튜닝 회로(22)는 지연 신호(18)를 수신하여 인에이블 신호(20)를 출력하는 것으로 도시된다. 통상적으로 지연 카운터(24)는 제1 및 제2 메모리 제어 동작을 수행하는 동안 대기하기 위하여 바람직한 수의 클록 사이클을 토대로 하여 선택된 수의 클록 사이클을 사이클링하도록 프로그램된다. 이 선택된 수의 클록 사이클은 제1 및 제2 메모리 제어 동작 사이의 총 사이클 수와 동일하거나, 또는, 예컨대 제1 및 제2 메모리 제어 실행 능력 사이에 다른 지연이 이미 존재하는 경우면, 다를 수도 있다. 예컨대 후자의 예시에 있어서, 지연 및/또는 인에이블 신호의 어서팅은 메모리 제어 동작의 실행 능력으로부터 하나 이상의 사이클을 오프셋시킬 수 있다.
본 명세서의 내용을 읽음으로서 인에이블 신호가 제1 메모리 제어 동작에 이어지는 제2 메모리 제어 동작의 실행 능력을 초기화시키는 데에 사용되는 구조를 쉽게 이해할 수 있을 것이다. 실시예들은 유지 신호, 비교 임계 전압에 가까운 신호 전압 등를 제거하는 데에 한정되는 것은 아니다.
일반적으로, 본 발명에 따른 프로그램 가능한 지연 카운터는 프로그램 가능한 수의 사이클을 사이클링하여, 이후에 인에이블 신호가 제2 메모리 제어 동작의 실행 능력을 초기화시킬 목적으로 어서팅되도록 한다. 지연 카운터는 구성 레지스터(26)로부터 제공된 지연 카운터를 토대로 하여 프로그램 된다. 이 지연 카운터는 지연된 사이클의 총 수와 동일하거나, 예컨대 다른 지연이 카운터에 나타나는 경우면 사이클의 총 수의 일부분일 수 있다.
통상적으로, 본 발명에 따른 프로그램 가능한 지연 카운터는 다른 변형 실시예들 중에서, 감산형 카운터 또는 가산형 카운터 중의 어느 하나로 구성될 수 있다. 예컨대, 도 2는 튜닝 회로(22)의 프로그램 가능한 지연의 감산형 구현을 도시하며, 여기서 이 카운터는 데이터(D) 입력에서 구성 레지스터(26)로부터 지연 카운트를 수신한다. 이 지연 카운터는 지연 신호를 통하여 기록 인에이블(WE) 입력을 어서팅함으로써 카운터(24)에 기록된다. 이후에는, 카운터의 감산(DEC) 입력에 연결된 메모리 컨트롤러용의 클록 신호가 각각의 이전 클록 사이클에서 카운터에 저장된 값을 감산시킨다. 지연 카운터에 대응하는 수의 사이클에 대하여 카운터를 사이클링시키는 것은 제로 대 비교(=0) 출력을 통하여 검출되며, 이로부터 인에이블 신호가 유도될 수 있다.
증가형 카운터 실행은 도 3의 튜닝 회로로 도시되며, 여기서 카운터는 이의 데이터(D) 입력에서 초기의 제로 값을 수신한다. 이 카운터는 지연 신호(18)를 통해 기록 인에이블(WE) 입력을 어서팅한 것에 대한 응답으로 제로 카운트로 초기화된다. 이후에, 카운터의 가산(INC) 입력에 접속된 메모리 컨트롤러에 대한 클록 신호는 각각의 이전 클록 사이클에 저장된 값을 가산시킨다. 지연 카운터에 대응하는 수의 사이클에 대하여 카운터를 사이클링시키는 것은 비교부(34)를 통해 검출되며, 카운터(30)의 출력을 입력시키는 경우 구조 레지스터(32)로부터 지연 카운트를 수신한다. 결과적으로 인에이블 신호(20)는 카운터의 출력이 레지스터에 저장된 지연 카운터와 대응하는 경우 어서팅된다.
프로그램 가능한 카운터를 프로그램하기 위하여 구성 레지스터를 로딩시키는것은 다수의 방법으로 수행될 수 있다. 예컨대, 하나 이상의 컨트롤러용 외부핀이 지연 카운트를 특정하기 위하여 사용될 수 있다. 또 다른 실시예에서, 지연 카운트는 외부 소자를 통해, 예컨대 네트웍 또는 버스 상에서의 특정 명령을 통해 공급될 수 있다. 또한 이 지연 카운트는 하드웨어적으로 배선되어 상이하게 물리적으로 수행될 수 있으므로, 메모리 컨트롤러의 공통 설계가 상이한 메모리 저장 요구 사항에 맞추어 제작된 몇몇 상이한 메모리 컨트롤러 모텔에서의 최소한의 변경으로 재사용될 수 있다. 또한, 지연 카운트는 동일한 핀/명령이 다수의 파라미터를 집단적으로 제어할 수 있도록 수 개의 집합들로 그룹지워질 수 있다. 프로그램 가능한 카운터를 프로그래밍하는 다른 방법들이 대용적으로 사용될 수 있다. 예컨대, 하나 이상의 종래의 파라미터로 시작하며, 파리미터들을 점진적으로 가속시키는 동안 메모리 저장 장치의 오류 비율을 모니터링하여 오류가 검출될 때 마다 하나 이상의 파라미터를 감속시키도록 동작하는 동적 제어 회로가 구성될 수 있다.
도 1로 되돌아 가서 보면, 논리 회로(12) 및 튜닝 회로(22) 각각은 회로 장치, 즉, 전도성 경로, 신호 경로 및/또는 배선을 통해 전기적으로 또는 광학적으로 상호 접속된 아날로그 및/또는 디지털 전자 소자 또는 광학 소자의 배열이 하나의 집적된 회로 장치로 구현되던지 또는 하나 이상의 회로 보드를 통해 서로 간에 전기적으로 접속된 복수의 집적 회로 장치들로 구현될 수 있음을 나타낸다. 또한, 집적 회로 장치는 하나 이상의 컴퓨터 데이터 파일을 사용하여 설계되고 제조된다는 것을 통상적으로 알 수 있으며, 본 명세서에서는 하드웨어 정의 프로그램으로 나타내어 장치 상에서의 회로 장치의 레이아웃을 정의한다. 통상적으로 이 프로그램들은 설계 툴에 의하여 주지의 방법으로 생성되며, 제조 공정 동안 반도체 웨이퍼에 사용되는 회로 장치를 정의하는 레이아웃 마스크를 생성하도록 연속하여 이용된다. 통상적으로, 이 프로그램은 하드웨어 정의 언어(HDL;Hardware Definition Language), 예컨대 VHDL(VHSIC Hardware Description Language), 베리로그(verilog), EDIF(Electronics Design Interchange Format) 등을 사용하여 기설정된 포멧으로 제공된다. 따라서, 본 발명은 이후부터 완전히 기능적으로 집적된 회로 장치로 구현된 회로 장치과 관련하여 설명될 것이며, 당업자라면, 본 발명에 따른 회로 장치가 다양한 형태의 프로그램 제품으로 배포될 수 있을을 쉽게 알 수 있을 것이므로, 본 발명은 실질적으로 배포하기 위해 사용되는 특정 형태의 신호 포함 매체에도 불구하고 동일하게 사용될 수 있다. 그러나, 신호 포함 매체의 실시예들은, 예컨대 휘발성 및 비휘발성 메모리 장치, 플로피 디스크, 하드 디스크 드라이브, CD-ROM 및 DVD 등과 같은 기록 가능한 형태의 매체에 국한되는 것이 아니며, 이들 및 디지털 및 아날로그 통신 링크와 같은 전송형 매체를 포함한다.
도 4로 돌아가서 살펴보면, 본 발명에 따른 데이터 처리 시스템(40)이 도시된다. 데이터 처리 시스템(40)은 소정의 수의 컴퓨터들 및 이와 유사한 시스템을 나타낸다. 예컨대, 데이터 처리 시스템(40)은 주저장 메모리(44)에 접속된 시스템 프로세서(42)를 포함하며, 이 시스템은 입출력(I/O) 서브시스템(46)을 통하여 다수의 외부 장치와 교대로 접속된다. 서브 시스템(46)은 시스템 버스(48)를 통하여 복수의 외부 장치와 접속된다. 도 4에는 [하나 이상의 저장 장치(52)와 인터페이스하는 데에 사용되는] 저장 컨트롤러(50), [하나 이상의 워크 스테이션(56)과 인터페이스하는 데에 사용되는] 워크 스테이션 컨트롤러(54), [I/O 버스(60)를 통해 추가적인 장치와 인터페이스하는 데에 사용되는] I/O 확장 유닛(58) 및 [참조 번호 64로 나타내어 지는 외부 네트웍과 인터페이스하는 데에 사용되는] 네트웍 어댑터(62)를 포함하는 다양한 형태의 외부 장치가 도시된다.
다수의 대용 장치가 본 발명에 따른 데이터 처리 시스템에 접속될 수 있음을 쉽게 알 수 있을 것이다.
데이터 처리 시스템(40)이 중간 범위의 컴퓨터 시스템, 예컨대 인터네셔널 비즈네스 머신즈 코오포레이션에서 생산된 AS/400의 중간 범위의 컴퓨터을 사용할 수 있다. 본 발명은 다른 컴퓨터 시스템, 예컨대 구현된 컨트롤러와 같은 메모리 컨트롤러를 포함할 필요도 없이, 개인 컴퓨터, 메인 프레임 컴퓨터, 슈퍼 컴퓨터 등과; 브릿지, 라우터 및 스위치와 같은 통신 시스템과; 소비재 전자 장치 등을 사용할 수 있다.
도시된 실시예에서, 본 발명에 따른 메모리 컨트롤러는 네트웍 어댑터(62)로 구현될 수 있으며, 예컨대 네트웍을 연결하는 데에 비동기 전송 모드(ATM)의 어댑터가 적합할 것이다. 그러나, 본 발명의 원리가 다른 형태의 네트웍, 예컨대 TCP/IP 네트웍, LAN 및 WAN 네트웍, 프레임 릴레이 네트웍 등에 사용함 수 있음을 쉽게 알 수 있을 것이다. 또한, 본 발명에 따른 메모리 컨트롤러도 데이터 처리 프로세서(40) 내의 다른 소자, 예컨대 소정의 소자(50, 54, 58), 또는 데이터 처리 시스템 내의 주처리 구조 내에서 사용될 수 있음을 쉽게 알 수 있을 것이다. 따라서, 본 발명은 본 명세서에 개시된 특정 구현에 한정되는 것은 아니다.
도 5에서는 네트웍 어댑터(62)가 보다 상세하게 도시된다. 네트웍 어댑터(62)는 시스템 버스 인터페이스(68)를 통해 시스템 버스(48)와 인터페이스하는 컨트롤러(66)의 제어를 받는다. 컨트롤러(66)는 네트웍 인터페이스 논리 회로(70) 및 참조 번호 72로 나타내어 지는 물리적인 네트웍 콘넥터를 통해 네트웍(64)과 교대로 인터페이스한다.
컨트롤러(66)는 하나 이상의 메모리, 예컨대, 각각이 복수의 메모리 저장 장치(76)를 포함하는 메모리(74, 74a)에 좌우된다. 컨트롤러(66)와 각각의 메모리(74, 74a) 간의 데이터 전송은 하나 이상의 메모리 컨트롤러, 예컨대 메모리(74)용의 메모리 컨트롤러(78) 및 메모리(74a)용의 메모리 컨트롤러(78a)를 통해 제어된다. 일련의 I/O 신호(예컨대, 각각의 컨트롤러에 사용되는 각각의 신호)는 각 메모리에 따라 데이터 전송을 제어하는 데에 사용된다. 메모리에서 데이터의 송수신을 요구할 수 있는 컨트롤러에서의 다수의 소자를 나타내는 복수의 리쿼스터(81, 81a, 81b)가 컨트롤러(66)에도 나타날 수 있다. 예컨대, 컨트롤러(66) 내의 송수신 회로 내에서의 다수의 소자를 나타낼 수 있다. 또한, 리쿼스터는 컨트롤러(66)에 의해 수신된 외부 엑세스 커맨드를 나타낼 수 있다.
어떤 수의 리쿼스트 및 메모리 컨트롤러/메모리의 쌍이 네트웍 어댑터에 배치될 수 있음을 쉽게 알 수 있을 것이다. 예컨대, 개별적인 패킷 및 제어 메모리는 네트웍 어댑터에 사용되어 2개의 메모리 및 2개의 관련된 메모리 컨트롤러를 요구할 수 있다. 또한, 메모리 컨트롤러는 원하는 경우 하나 이상의 메모리와 인터페이스할 수 있다.
각 메모리 내의 각각의 메모리 저장 장치(76)는 관련된 메모리 컨트롤러(78, 78a)에 의해 제공된 전용 I/O 신호에 응답하며, 특정 메모리 저장 장치의 설계에 의하여 규정된다. 또한, 전술한 바와 같이 메모리 저장 장치는 특정 최소 지연을 제공하는 하나 이상의 타이밍 파라미터를 가질 수 있다. 도시된 실시예에서, 메모리 저장 장치(76)는 동기형 DRAM 장치, 예컨대 인터내셔널 비즈네스 버신즈 코오퍼레이션에서 제조한 IBM 0364164 64-MB 동기형 DRAM일 수 있다. 이 카운트 파라미터 및 인터페이스가 이들 장치들과 함께 데이터 전송을 제어하는 데에 필요하다는 것은 이 기술 분야에서 널리 알려진 것이다.
도 6에 보다 상세하게 도시된 메모리 컨트롤러(78)는 멀티플렉서(84)를 통해 메모리 I/O 신호(80)와 접속된 메모리 특정 상태 머신/지원 로직부(82, 82a)를 포함한다. 메모리 리쿼스터 인터페이스(86)는 하나 이상의 리쿼스터로부터 본 기술 분야에서 잘 알려진 방법으로 다수의 제어 신호를 수신하도록 구성된다. 다수의 리쿼스터가 제공되는 경우, 다수의 리쿼스터를 간을 중재하기 위한 추가적인 인터페이스 로직(도시되지 않음)이 필요하다는 것은 쉽게 알 수 있을 것이다. 메모리 리쿼스터 인터페이스(86)는 어드레스 발생/데이터 체크부(88)로 인터페이스하고, 메모리 특정 상태 머신/지원 로직부(82, 82a)에 교대로 접속된다.
메모리 리쿼스터 인터페이스(86) 및 어드레스 발생/데이터 체크부(88)는 인지된 인터페이스에 의해 동작하고, 통상적으로 데이터 체크 및 어드레스 발생 동작은 다양한 형태의 메모리 저장 장치를 포괄한다. 그러나, 상이한 형태의 메모리 저장 장치와 인터페이스하기 위한 타이밍 특성 및 프로토콜 필요성은 다를 수 있으므로, 예컨대 도 6에 도시된 바와 같이, 다수의 메모리 특정 상태 머신/지원 로직부를 구현하는 것이 특정 메모리 컨트롤러 설계에 있어서는 바람직할 수 있다. 예컨대, 구성부(82)가 동기형 DRAM 장치를 제어하고, 구성부(82a)가 동기형 SRAM 장치를 제어하도록 하는 것이 바람직할 수 있다. 이 외의 장치 형태의 다른 조합도 변형 실시예에서 지원될 수 있다.
메모리 컨트롤러(78)도 한 뱅크의 컨트롤러 레지스터(90)를 포함하며, 컨트롤러 레지스터는 메모리형 레지스터(92) 및 메모리 파라미터 레지스터(94)를 포함한다. 추가적인 파라미터, 예컨대 상태 및 오류 레지스터, 인터럽트 레지스터, 그 이외의 제어 레지스터 등이 필요한 대로 지원될 수 있다.
메모리형 레지스터(92)는 메모리 컨트롤러(예컨대, 참조 번호 82 및 82a로 나타나 있음) 내에서 사용 가능한 하나의 상태 머신을 활성화시키기 위하여 사용되며, 메모리 컨트롤러가 다른 형태의 메모리 저장 장치와 함께 동작할 수 있도록 한다. 특히, 값이 저장된 메모리 형태의 레지스트(92)를 토대로 하여 인에이블 신호가 메모리 특정 상태 머신/지원 로직부(82, 82a) 중의 어느 하나에 공급되어 상태 머신의 동작을 인에이블시킨다. 또한, 인에이블 신호는 선택기 신호로서 멀티플렉서(84)에 전송되어 메모리 I/O 신호(80)와 메모리 특정 상태 머신/지원 로직부(82, 82a) 중의 어느 하나를 접속시킨다. 변형 실시예에서, 2개 이상의 메모리 장치 형태가 지원될 수 있거나, 이와 같은 하나만의 장치 형태가 지원될수 있으므로, 레지스터(92), 멀티플렉서(84) 및 추가적인 메모리 특정 상태 머신/지원 로직부(82a)가 필요 없음을 쉽게 알 수 있을 것이다.
상이한 파라미터를 가지고 다수의 메모리 저장 장치와 함께 동작하는 메모리 컨트롤러(78)의 실행 능력을 적합하게 조절하기 위하여, 다수의 타이밍 파라미터에 대응하는 하나 이상의 지연 카운터와 함께 초기화되며, 이 다수의 타이밍 파라미터는 컨트롤러가 타이밍을 맞추는 것이 바람직하다. 이러한 지연 카운터는 각각의 메모리 특정 상태 머신/지원 로직부(82, 82a)에 공급되어 레지스터에서 지연 카운터로 나타내어진 타이밍 파라미터에 따라 동작하는 상태 머신을 구성한다.
예컨대, 도 7에 가장 잘 도시된 바와 같이, 메모리 특정 상태 머신/지원 로직부(82)가 도 6의 동기형 DRAM 메모리 저장 장치와 어드레스 발생/데이터 체크부(88) 사이를 통과하는 동기형 DRAM 특정 상태 머신(96)을 포함한다.
튜닝 회로(97)는 상태 머신(96)의 실행 능력을 조절하여 동기형 DRAM 장치와 관계있는 몇몇 상이한 타이밍 특성을 맞추도록 소정의 메모리 제어 동작들 간의 지연을 조정함으로써, 상이한 동기형 DRAM 저장 장치와 더 잘 동작한다.
이러한 제1 타이밍 특성은 프리차지 타임(tRP)이며, 이는 새로운 커맨드를 장치 상에 초기화하기 전에 특정 동기형 DRAM 장치 상의 뱅크를 프리차지하는 데에 필요한 최소 시간을 나타낸다. 이 실시예에서, 제1 메모리 제어 동작은 프리 차지 동작의 초기화이며, 제2 메모리 제어 동작은 새로운 커맨드를 발급하는 것이다. 이러한 동작들 간의 지연은 프리차지 카운터(98a)에 의해 제어되며, 이는 메모리 파리미터 레지스터(94)로부터의 프리차지 시간 라인(100a)를 통해 공급된 지연 카운터에 의해 프로그램 된다. 카운터(98a)는 프리차지 시작 라인(102a) 상에서 상태 머신(96)에 의해 발급된 지연 신호에 응답하여 시작한다. 카운터는 라인(100a) 상에서 공급된 지연 카운터에 의해 특정된 사이클의 수를 사이클링시킨 이후에, 프리차지 완료 라인(104a) 상에서 인에이블 신호를 상태 머신(96)으로 리턴시킨다.
제2 타이밍 특성은 활성 커맨드 주기(tRAS)이며, 이는 장치 상에서의 다음 명령을 예상하여 프리차지를 초기화하기 이전에 특정 동기형 DRAM 장치에서의 커맨드를 처리하는 데에 필요한 최소 시간을 나타낸다. 이 실시예에서, 제1 메모리 제어 동작은 특정 메모리 뱅크 상의 커맨드 사이클의 시작이고, 제2 메모리 제어 동작은 뱅크에서의 프리차지 동작의 초기화이다. 이러한 동작들 간의 지연은 활성 명령 카운터(98b)에 의해 제어되며, 이는 메모리 파라미터 레지스터(94)로부터의 활성 커맨드 주기 라인(100b)을 통해 공급된 지연 카운터를 통해 프로그램되도록 한다. 카운터(98b)는 새로운 명령 사이클 시작 라인(102b) 상에서 상태 머신(96)에 의해 제공된 지연 신호에 응답하여 시작한다. 이 카운터는 라인(100b) 상에서 공급된 지연 카운터에 의해 특정된 사이클의 수를 사이클링시킨 이후에, 커맨드 사이클 완료 라인(104b) 상에서 인에이블 신호를 상태 머신(96)으로 리턴시킨다.
세 번째 타이밍 특성은 프리차지로의 데이터 입력 시간(tDPL)이며, 이는 프리차지 동작이 장치에서의 다음 명령을 예상하여 초기화되기 이전에 데이터가 장치에 기록된 이후에 발생해야만 하는 최소 지연을 나타낸다. 이 실시예에서, 제1 메모리 제어 동작은 장치 상의 특정 뱅크에 데이터가 기록되는 것을 완료하는 것이며, 제2 메모리 제어 동작은 뱅크 상에서의 프리차지 동작을 초기화시키는 것이다. 이러한 동작들 사이의 지연은 프리자치 카운터(98c)로 입력되는 데이터에 의해 제어되며, 이는 메모리 파라미터 레지시터(94)로부터 프리차지 라인(100c)으로 데이터 입력을 통해 공급된 지연 카운터를 통하여 프로그램된다. 카운터(98c)는 데이터 기록 라인(102c) 상에서 상태 머신(96)에 의해 공급된 지연 신호에 응답하여 시작한다. 이 카운터는 라인(100c) 상에서 공급된 지연 카운터에 의해 특정된 사이클의 수를 사이클링시킨 이후에, 프리 차지 커맨드 전송 라인(104c) 상에서 인에이블 신호를 상태 머신(96)으로 리턴시킨다.
네 번째 타이밍 특성은 뱅크 사이클 시간(tRC)이며, 이는 장치들의 특정 뱅크 상에서 연속적인 커맨드를 활성화시키는 사이에 발생해야만 하는 최소 지연을 나타낸다. 이 실시예에서, 제1 메모리 제어 동작은 장치 상의 특정 뱅크에 제1 커맨드를 활성화시키는 것이며, 제2 메모리 제어 동작은 장치 상에서의 동일한 뱅크 상에서의 제2 커맨드를 활성화시키는 것이다. 이러한 동작들 사이의 지연은 뱅크 엑세스 카운터(98d)에 의해 제어되며, 이는 메모리 파라미터 레지시터(94)로부터 뱅크 사이클 시간 라인(100d)을 통해 공급된 지연 카운터를 통하여 프로그램된다. 카운터(98d)는 뱅크 X 엑세스 시작 라인(102d) 상에서 상태 머신(96)에 의해 공급된 지연 신호에 응답하여 시작한다. 이 카운터는 라인(100d) 상에서 공급된 지연 카운터에 의해 특정된 사이클의 수를 사이클링시킨 이후에, 뱅크 X 엑세스 시작 라인(104d) 상에서 인에이블 신호를 상태 머신(96)으로 리턴시킨다.
다른 타이밍 특성도 본 명세서에 기술된 방법으로 추가적인 카운터를 통해 제어되며, 이는 통상적으로 메모리 컨트롤러와 바람직하게 인터페이스하는 다수의 메모리 저장 장치의 특정 설계에 의해 규정될 것이라는 것을 쉽게 알 수 있을 것이다. 예컨대, 도 7은 메모리 저장 장치의 단일 뱅크의 실행 능력을 조절하기에 적합한 카운터들을 도시한다. 그러나, 모든 동기형 DRAM 장치가 다중 뱅크 장치로 수행되지 않는 다면, 이들 장치의 모든 성능을 향상시키기 위하여 삽입된 상이한 뱅크로 엑세스할 수 있도록 한다. 이와 같이, 이러한 다른 뱅크용의 메모리 컨트롤러의 실행 능력을 조절하기에 적합한 추가적인 카운터가 사용될 수 있지만, 도시하지는 않는다. 특히, 각각의 뱅크는 개별적인 tRC카운터를 통상적으로 필요로 한다는 것은 쉽게 알 수 있을 것이다. 이러한 추가적인 뱅크의 실행 능력을 조정하기 위하여 본 발명의 원리를 적용하는 것은 본 명세서에 나타나도록 개시된 본 발명의 기술 분야에서 당업자의 능력이라면 실현 가능하다.
각각의 실시예에서, 특정 타이밍 특성에 대한 지연 카운터는 메모리 컨트롤러에 대한 최소 수의 클록 사이클로 선택되며, 이는 메모리 컨트롤러가 조정되는 특정 메모리 저장 장치용의 타이밍 파라미터와 동일하거나 또는 초과하게 될 것이다. 예컨대, 메모리 컨트롤러가 7.5ns 클록 사이클로 동작하고, 하나의 특정 메모리 저장 장치는 68ns의 타이밍 파라미터를 가지며, 반면에, 또 다른 특정 메모리 저장 장치는 37.5ns의 타이밍 파라미터를 가지는 경우, 전자의 장치에 대한 최적의 지연 카운트는 10이 될 것이며, 반면에 후자의 장치에 대한 최적의 지연 카운트는 5가 될 것이다.
각각의 카운터(98a-98d)는 전술한 바와 같이 감산형 카운터 또는 가산형 카운터 중 어느 하나를 사용하여 실현될 수 있다. 예컨대, 도 8은 감산형 카운터(110)의 하나의 적합한 구현예를 도시한다. 카운터(110)는 1..n까지의 1비트래치(112)들을 포함하고, 여기서 n은 특정 카운터의 최대 지연 카운트를 저장하는 데에 필요한 비트의 수이다. 예컨대, 16 사이클 지연을 지원하려면 4비트 카운터면 족하고, 이는 대부분의 메모리 저장 장치용의 상당수의 타이밍 파라미터를 조절하는 데에 적합하다.
각각의 래치의 활성 하이(Q) 출력은 감산기(114)로 제공되고, 이의 응답으로 래치(112)에 저장된 카운트보다 적은 하나를 나타내는 n 비트의 광역 신호를 출력한다. 이 감산된 신호는 멀티플렉서(118)의 제1 입력(D1)으로 공급된다. 각각의 비트가 하나의 래치(112)에 이의 입력으로 공급된 채로, 멀티플렉서(118)는 n비트의 출력을 갖는다.
멀티플렉서(118)로의 제2 입력(D2)은 메모리 파라미터 레지스터의 적절한 비트로부터 n 비트 파라미터 값, 또는 지연 카운트를 수신하도록 접속된다. 또한, 각각의 래치(112)의 활성 하이(Q) 출력도 멀티플렉서(118)를 향한 제3 데이터 입력에 제공된다.
래치(112)의 활성 로우() 출력은 n 비트의 AND 게이트를 통해 논리적으로 함께 엔드(AND) 연산되어, 모든 래치(112)의 활성 하이(Q) 출력이 제로인 경우(카운터에 대한 제로 카운트를 나타냄), 인에이블 신호를 출력한다(여기서는 "파라미터가 맞춰"지는 경우로 지정됨).
멀티플렉서(118)는 2개의 게이트 신호(G1, G2)에 의해 게이팅된다. 제1 게이트 신호(G1)는 상태 머신으로부터 지연 신호를 수신한다(여기서는 "파라미터가 맞춰"지는 경우로 지정됨). 제2 게이트 신호(G2)는 AND 게이트(116)에 의해 출력된인에이블 신호를 수신한다. 3개의 데이터 입력(D1-D3) 중 어느 하나가 멀티플렉서(118)의 출력에 접속되었는 지는 하기의 표 1에 한정된 바와 같이 신호(G1, G2)의 상태에 따라 결정된다.
G1 | G2 | 출력 |
1 | X | D2 |
0 | 0 | D1 |
0 | 1 | D3 |
전술한 구성을 토대로 하여 게이트 신호(G1)의 어서팅에 대한 응답에서, 입력(D2)에 공급된 지연 카운트는 멀티플렉서(118)에 의해 출력되어 다수의 래치(112)로 공급되고, 결과적으로 이의 활성 하이(Q) 출력은 감산기(114)로 공급된다. 다음 클록 사이클 동안, 지연 신호가 디어서팅된 경우, 래치(112)제로의 카운트를 저장할 때의 이들 시간까지 그 이후의 각각의 클록 사이클에 대하여 래치(112)에 저장된 카운트를 감산시키기 위하여 감산기(114)의 출력은 멀티플렉서(118)의 출력으로 전송된다. 이 시간에 인에이블 신호는 AND 게이트에 의해 어서팅됨으로써, 제2 게이트 신호(G2)가 어서팅되고, 카운터가 지연 시간의 어서팅을 통하여 재시작되는 경우의 시간까지 제로의 값을 갖는 카운터를 멈추게 하는 효과를 갖게 된다.
가산형 카운터의 적합한 구현예는 도 9에 참조 번호 120으로 도시된다. 이 구현예에서, 1..n 래치(122)의 활성 하이(Q) 출력은 가산기(124), 비교기(126) 및 멀티플렉서(128)의 제3 데이터 입력(D3)에 공급된다. 가산기(124)의 출력은 1 더하여진 래치에 저장된 현재의 카운트이며, 이는 멀티플렉서(128)의 제1 데이터입력(D1)에 공급된다. 멀티플렉서(128)의 제2 데이터 입력(D2)은 카운터로 제로의 초기 카운트를 제공하기 위하여 접지된다.
멀티플렉서(128)의 출력은 래치(122)의 데이터(D) 입력에 접속된다. 멀티플렉서(128)의 제1 게이트 입력(G1)은 상태 머신에 의해 출력된 지연 신호에 접속된다(여기서는 "파라미터 시작"으로 지정됨). 제2 게이트 입력(G2)은 비교기(126)의 출력을 수신하도록 접속된다. 표 1과 관련하여 전술한 바와 같은 동일한 멀티플렉서 출력 로직은 이 구현예에서도 사용된다.
동작에서, 상태 머신으로부터 지연 신호를 어서팅하면, 데이터 입력(D2)에 인가된 초기 제로 카운트가 바로 래치(122)로 출력되어 카운터를 제로로 초기화시킨다. 지연 신호를 디어서팅하면, 가산기(124)로부터 출력된 증가된 카운터 값이 멀티플렉서에 의해 래치(122)로 전송된다. 이후에, 이러한 각각의 클록 사이클에 대하여 래치(122)에 저장된 현재의 카운트가 비교기(126) 내의 메모리 파라미터 레지시터에 출력된 파라미터 값과 비교한다. 따라서, 이 카운터는 현재의 카운트가 원하는 지연 카운트와 동일해질 때까지 각각의 클록 사이클을 증가시킨다. 이 시간에, 인에이블 신호는 비교기(126)에 의해 어서팅되고, 카운터는 멀티플렉서(128)의 제2 게이트 입력(G2)의 어서팅에 의해 정지된다.
지연 신호의 어서팅 이후에 인에이블 신호의 어서팅을 원하는 수의 클록 사이클 만큼 지연시키기 위하여 대용의 카운터 구현예가 사용될 수 있음을 쉽게 이해할 수 있을 것이다.
도 10 및 도 11은 가상적으로 각각의 제1 및 제2 동기형 DRAM 메모리 저장장치로의 판독 및 기록 엑세스시에 적합한 타이밍도를 각각 도시한다. 판독 엑세스에 대하여, 도 10에는 4 개의 버스트 길이의 타이밍 파라미터를 갖는 제1 동기형 DRAM이 도시되며, 이들 파라미터는 3 사이클의 컬럼 어드레스 스트로브 지연 및 3사이클의대지연 시간(tRCD)이다. 제1 메모리 저장 장치로의 판독 엑세스를 처리하는 것과 관련된 다수의 제어 신호들은 도 10에 도시되며, 이 제어 신호들은 클록 신호(CLK), 클록 인에이블 신호(CKE), 활성 로우(low) 칩 선택 신호(), 활성 로우 로우 어드레스 스트로브 신호(), 활성 로우 칼럼 어드레스 스트로브 신호(), 활성 로우 기록 인에이블 신호(), 12 비트의 어드레스 신호 [개별적으로 표시된 어드레스 라인(A10) 포함] 및 데이터 출력 라인(DQ) 이다. 이 클록 신호의 나타내어진 사이클은 T0-T13으로 표시된다.
도 10에 도시된 바와 같이, 판독 엑세스는 사이클 T0에서 클록 인에이블 신호의 어서팅 이후에 사이클 T1에서 시작한다. 이 때, 이및라인은 어서팅 되고,및라인은 디어서팅된다. 또한 로우 어드레스(RAx)는 어드레스 라인에 공급된다. 그러므로, 3개의 사이클의지연에 따라 클록 사이클(T4)에서 컬럼 어드레스는 이 장치로 공급되고,및신호는 어서팅되고,및신호는 디어서팅되어 칼럼 어드레스가 어드레스 라인(A0-A9, A11)에 공급된다. 이 특정 구현예에서, 어드레스 라인(A10)이 자동 프리차지 명령을 나타내도록 어서팅된다. 3 사이클의지연에 따라, 요청된 데이터는 사이클(T7)에 시작하는 데이터 라인(DQ) 상으로 공급된다. 그러므로, 또한 4의 버스트 길이에 따라 4개의 연속적인 어드레스(Ax0, Ax1, Ax3, Ax4)에 저장된 데이터는 4개의 이어지는 사이클에 공급된다.
도 10에 나타난 특정 메모리 저장 장치에 대하여, 프리차지 시간(tRP)은 대략 20.4ns이다. 이 파라미터를 맞추기 위한 최적의 컨트롤러 지연은 클록 사이클(T8)에서의 자동 프리차지와 클록 사이클(T11)에서 시작하는 다음 활성 커맨드 사이의 시간 기간으로서 도 10에 나타난다.
도 10에 나타난 바와 같은 메모리 저장 장치에 대한 활성 커맨드 기간(tRAS)은 대략 47.6ns이다. 이 파라미터를 맞추기 위한 최적의 컨트롤러 지연은 클록 사이클(T1)에서 시작하는 활성 커맨드와 사이클(T8)에서의 발생하는 프리차지의 시작 사이의 시간 기간으로서 도 10에 나타난다. 또한, 각각의 클록 사이클(T1 및 T11)에서의 2개의 연속적인 활성 커맨드들 간의 시간 주기로서 나타내어진 최적 컨트롤러 지연에 따라, 메모리 저장 장치로의 뱅크 사이클 시간(t RC )는 대략 68ns이다. 또한, 이 장치에 대하여 프리차지 시간 파라미터(tDPL)로의 데이터 입력은 대략 8ns이지만, 도 10은 기록 엑세스에 대해서만 관계있으므로 도시되지 않았다.
본 실시예를 도시할 목적으로 본 발명에 따른 메모리 컨트롤러가 도 7과 관련하여 전술한 4개의 파라미터, 즉 tRP, tRAS, tRC및 tDPL, 그리고 2개의 추가적인 파라미터지연 및 tRDC를 변경시키도록 구성되었다. 메모리 컨트롤러 클록 사이클 시간을 대략 7.5ns로 가정하면, 다음과 같은 표 2에서 특정된 지연 카운트에 따라 최적으로 구성될 것이다.
특성 | 파라미터 | 지연 카운트 |
tRP | 20.4 ns | 3 |
tRAS | 47.6 ns | 7 |
tRC | 68 ns | 10 |
tDPL | 8 ns | 2 |
지연 | 3 사이클 | 3 |
tRCD | 3 사이클 | 3 |
도시를 단순화시키기 위하여 메모리 저장 장치의 단일 뱅크에 따라 발생한 신호 동작만이 도 10에 도시된다. 본 장치의 또 다른 뱅크가 2개의 활성 커맨드 사이의 시간 기간 동안 엑세스될 수 있음을 쉽게 알 수 있을 것이다. 예컨대, 다른 뱅크에 엑세스하기 위하여 대체 뱅크에 대한 로우 및 컬럼 어스레스가 엑세스 요구를 시작하기 위하여 클록 사이클(T6, T9)에 공급될 수 있으며, 반면에 데이터는 제1 뱅크로 출력된다.
도 11은 동일한 메모리 컨트롤러로 사용하기에 적합한 또 다른 메모리 저장 장치용 제어 신호의 타이밍을 도시하며, 이는 기록 엑세스하는 동안의 시간이다. 이 메모리 저장 장치에 따라지연 및 tRCD는 각각의 2개의 사이클이다. 또한, 이 장치의 프리차지 시간은 대략 15ns이며, 활설 커맨드 기간(tRAS)은 대략 40ns이다. 또한, 뱅크 사이클 시간은 대략 55ns로 감소되었다. 이 도면에서 추가적으로 도시된 것은 프리차지(tDPL)로의 데이터 입력을 나타내며, 이 장치에서는 대략 6ns를 나타낸다. 따라서, 다음 활성 커맨드의 프리차지를 초기화하는 것에 대한 클록 사이클(T1)에서 시작한 기록 동작 동안의 기록된 마지막 데이터들 간의 지연은 클록 사이클(T6)의 시작과 클록 사이클(T7)에서 수행되는 프리차지의 시작 사이에 발생하는 것으로 나타내어 진다.
따라서, 도 10을 참조하여 전술한 동일한 실시예의 메모리 컨트롤러를 최적화하기 위하여 하기의 표 3에 특정된 최적의 지연 카운트가 사용될 것이다.
특성 | 파라미터 | 지연 카운트 |
tRP | 15 ns | 2 |
tRAS | 40 ns | 6 |
tRC | 55 ns | 8 |
tDPL | 6 ns | 1 |
지연 | 2 사이클 | 2 |
tRCD | 2 사이클 | 2 |
컨트롤러에 접속된 특정 메모리 저장 장치용으로 적합한 포맷으로 판독/기록 데이터를 초기화하기 위해 전술한 I/O 메모리 신호의 타이밍을 조정하기에 적합한 상태 머신의 구성은 해당 기술 분야의 일반적인 당업자의 능력 이라면 쉽게 알 수 있을 것이다.
다수의 변형 실시예가 본 발명의 사상 및 범주를 벗어나지 않는 범위 내에서 도시된 실시예 대로 구성될 수 있다. 따라서, 본 발명은 하기에 첨부되는 특허청구범위의 범주 내에 놓이게 된다.
Claims (24)
- 메모리 컨트롤러 회로 장치에 있어서,(a) 제1 및 제2 메모리 제어 동작을 수행함으로써 적어도 하나의 메모리 저장 장치 ―여기서, 이 메모리 장치는 상기 제1 및 제2 메모리 제어 동작간의 최소 지연을 정의하는 기설정된 타이밍 파라미터를 갖는 형태의 것임 ―와의 데이터 전송을 제어하도록 구성된 논리 회로와,(b) 상기 논리 회로에 접속되고, 제1 및 제2 메모리 제어 동작간의 지연을 제어하여 제2 메모리 제어 동작의 실행 능력을 지연시키도록 프로그램 가능 지연 카운터를 선택된 수의 클록 사이클만큼 사이클링(cycling)함으로써 상기 메모리 저장 장치에 대해 기설정된 타이밍 파라미터에 맞추도록 구성된 튜닝 회로를 포함하는 메모리 컨트롤러 회로 장치.
- 제1항에 있어서, 상기 제1 메모리 제어 동작은 제어 신호를 어서팅(assering)며, 상기 제2 메모리 제어 동작은 상기 제어 신호를 디어서팅(deasserting)시키는 것을 포함하는 것인 메모리 컨트롤러 회로 장치.
- 제1항에 있어서, 상기 제1 메모리 제어 동작은 제1 제어 신호를 어서팅시키는 것을 포함하며, 상기 제2 메모리 제어 동작은 제2 제어 신호를 어서팅시키는 것을 포함하는 것인 메모리 컨트롤러 회로 장치.
- 제1항에 있어서, 상기 제1 및 제2 메모리 제어 동작은 개별적인 메모리 엑세스 사이클로 수행되는 것인 메모리 컨트롤러 회로 장치.
- 제4항에 있어서, 상기 제1 및 제2 메모리 제어 동작은 연속적인 메모리 엑세스 사이클로 수행되는 것인 메모리 컨트롤러 회로 장치.
- 제1항에 있어서, 상기 제1 및 제2 메모리 제어 동작은 동일한 메모리 엑세스 사이클로 수행되는 것인 메모리 컨트롤러 회로 장치.
- 제1항에 있어서, 상기 기설정된 타이밍 파라미터는 뱅크 사이클 시간, 활성 커맨드 주기 시간, 프리차지 시간으로의 데이터 입력, 프리차지 시간,지연 시간,대지연 시간으로 구성된 그룹으로부터 선택된 타이밍 특성과 관련된 것인 메모리 컨트롤러 회로 장치.
- 제1항에 있어서, 상기 튜닝 회로는 상기 프로그램 가능 지연 카운터에 접속되고, 상기 메모리 저장 장치에 대한 상기 기결정된 타이밍 파라미터에 맞추기 위해 상기 제2 메모리 제어 동작의 실행 능력을 지연시키도록 다수의 클록 사이클을 나타내는 지연 카운트를 저장하도록 구성된 구성 레지스터(configuration register)를 더 포함하는 것인 메모리 컨트롤러 회로 장치.
- 제8항에 있어서, 상기 튜닝 회로는 상기 프로그램 가능 지연 카운터 내의 상기 구성 레지스터에 저장된 상기 지연 카운트를 저장하고, 그 후 상기 프로그램 가능 카운터에서 각 클록 사이클만큼을 감소시키며, 상기 프로그램 가능 지연 카운터가 제로값에 도달하면 상기 제2 메모리 제어 동작의 실행 능력을 인에이블시키도록 구성된 것인 메모리 컨트롤러 회로 장치.
- 제8항에 있어서, 상기 튜닝 회로는 상기 프로그램 가능 카운터가 제로값을 갖도록 초기화시키고, 그 후 상기 프로그램 가능 지연 카운터에서 각 클록 사이클을 가산시키며, 상기 프로그램 가능 지연 카운터가 상기 구성 레지스터 내에 저장된 상기 지연 카운트와 동일하게 되면, 상기 제2 메모리 제어 동작의 실행 능력을 인에이블시키도록 구성된 것인 메모리 컨트롤러 회로 장치.
- 제8항에 있어서, 상기 튜닝 회로는 외부 입력에 응답하여 상기 구성 레지스터 내에 상기 지연 카운트를 저장하도록 구성되는 것인 메모리 컨트롤러 회로 장치.
- 제8항에 있어서, 상기 구성 레지스터 내에 저장된 상기 지연 카운트는 상기 제1 및 제2 메모리 제어 동작의 실행 능력 간의 총 클록 사이클 수와 동일한 것인 메모리 컨트롤러 회로 장치.
- 제1항에 있어서, 상기 메모리 저장 장치는 상기 논리 회로에 의하여 수행된 제3 및 제4 메모리 제어 동작간의 제2 최저 지연을 정의하는 제2 기설정된 타이밍 파라미터를 구비하며, 상기 튜닝 회로는 상기 제3 및 제4 메모리 제어 동작간의 지연을 제어하여 상기 제4 메모리 제어 동작의 실행 능력을 지연시키도록 제2 지연 카운터를 제2 선택된 수의 클록 사이클만큼 사이클링함으로써 상기 메모리 저장 장치에 대한 상기 제2 기설정된 타이밍 파라미터를 맞추도록 추가적으로 구성된 것인 메모리 컨트롤러 회로 장치.
- 청구항 제1항에 기재된 회로 장치를 포함하는 집적 회로 장치.
- 청구항 제1항에 기재된 회로 장치를 포함하는 네트웍 어댑터.
- 청구항 제1항에 기재된 회로 장치를 포함하는 데이터 처리 시스템.
- 삭제
- 삭제
- 삭제
- 메모리 컨트롤러를 사용하여, 복수 형태의 메모리 저장 장치들 ―여기서, 이 복수 형태의 메모리 저장 장치들은 그 복수 형태의 메모리 저장 장치에 공통되는 실행 능력 특성과 연관된 가변 타이밍 파라미터(varying timing parameters)를 가짐 ―중 하나의 메모리 저장 장치와의 데이터 전송을 제어하는 방법에 있어서,(a) 상기 메모리 저장 장치에서 수행되는 제1 및 제2 메모리 제어 동작간의 최소 지연을 정의하는 그 메모리 저장 장치에 대해 기설정된 타이밍 파라미터와 연관된 구성 파라미터(configuration parameter)를 수신하는 단계와,(b) 상기 구성 파라미터에 기초하여, 상기 제2 메모리 제어 동작의 실행 능력을 지연시키도록 프로그램 가능 지연 카운터를 선택된 수의 클록 사이클만큼 사이클링함으로써 상기 제1 및 제2 메모리 제어 동작의 수행간의 지연을 제어 가능하도록 변화시키는 단계를 포함하는 메모리 저장 장치와의 데이터 전송 제어 방법.
- 제20항에 있어서, 상기 프로그램 가능 지연 카운터에 접속된 구성 레지스터 내의 상기 구성 파라미터를 나타내는 지연 카운트를 저장하는 단계를 더 포함하는 데이터 전송 제어 방법.
- 제21항에 있어서, 상기 지연을 제어 가능하게 가변시키는 단계는,(a) 상기 구성 레지스터 내에 저장된 상기 지연 카운트를 상기 프로그램 가능 지연 카운터에 저장하는 단계와;(b) 상기 프로그램 가능 지연 카운터에서 각각의 클록 사이클만큼을 감소시키는 단계와;(c) 상기 프로그램 가능 지연 카운터가 제로값에 도달하면 상기 제2 메모리 제어 동작의 실행 능력을 인에이블시키는 단계를 포함하는 것인 데이터 전송 제어 방법.
- 제21항에 있어서, 상기 지연을 제어 가능하게 가변시키는 단계는,(a) 상기 프로그램 가능 지연 카운터를 제로값으로 초기화하는 단계와,(b) 상기 프로그램 가능 지연 카운터에서 각각의 클록 사이클만큼을 증가시키는 단계와,(c) 상기 프로그램 가능 지연 카운터가 상기 구성 레지스터 내에 저장된 상기 지연 카운트와 동일해지면 상기 제2 메모리 제어 동작의 실행 능력을 인에이블시키는 단계를 포함하는 것인 데이터 전송 제어 방법.
- 제21항에 있어서, 상기 구성 레지스터 내에 저장된 상기 지연 카운트는 상기 제1 및 제2 메모리 제어 동작의 실행 능력간의 총 클록 사이클 수와 동일한 것인 데이터 전송 제어 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/166,004 US6438670B1 (en) | 1998-10-02 | 1998-10-02 | Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device |
US09/166,004 | 1998-10-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010075082A KR20010075082A (ko) | 2001-08-09 |
KR100450726B1 true KR100450726B1 (ko) | 2004-10-01 |
Family
ID=22601388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-7003241A KR100450726B1 (ko) | 1998-10-02 | 1999-03-10 | 제어된 메모리 저장 장치의 타이밍 파라미터를 토대로 하여 실행 능력을 조절하기 위한 프로그램 가능 지연 카운터를 갖는 메모리 컨트롤러 |
Country Status (6)
Country | Link |
---|---|
US (3) | US6438670B1 (ko) |
EP (1) | EP1116123B1 (ko) |
JP (1) | JP2002526861A (ko) |
KR (1) | KR100450726B1 (ko) |
DE (1) | DE69907704D1 (ko) |
WO (1) | WO2000020978A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100936149B1 (ko) * | 2006-12-29 | 2010-01-12 | 삼성전자주식회사 | 복수의 비휘발성 메모리를 갖는 메모리 시스템 그것의 메모리 억세스 방법 |
Families Citing this family (129)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539440B1 (en) * | 1998-11-16 | 2003-03-25 | Infineon Ag | Methods and apparatus for prediction of the time between two consecutive memory accesses |
US6519716B1 (en) * | 1999-09-22 | 2003-02-11 | International Business Machines Corporation | Electronic device initialization with dynamic selection of access time for non-volatile memory |
US6684314B1 (en) * | 2000-07-14 | 2004-01-27 | Agilent Technologies, Inc. | Memory controller with programmable address configuration |
KR100389916B1 (ko) * | 2000-08-28 | 2003-07-04 | 삼성전자주식회사 | 메모리 모듈 및 메모리 컨트롤러 |
JP4549628B2 (ja) * | 2000-12-08 | 2010-09-22 | 富士通セミコンダクター株式会社 | メモリ回路試験システム、半導体装置及びメモリ試験方法 |
JP4922480B2 (ja) * | 2000-12-19 | 2012-04-25 | 株式会社アドバンテスト | 半導体デバイス試験装置 |
US6553472B2 (en) * | 2001-01-12 | 2003-04-22 | Sun Microsystems, Inc. | Method for programming clock delays, command delays, read command parameter delays, and write command parameter delays of a memory controller in a high performance microprocessor |
US6934871B2 (en) * | 2001-05-17 | 2005-08-23 | Lsi Logic Corporation | Programmable counters for setting bus arbitration delays involves counting clock cycles equal to a count number loaded from a memory |
KR100432218B1 (ko) | 2001-07-28 | 2004-05-22 | 삼성전자주식회사 | 데이타 액세스 타이밍을 조정하는 듀얼 포트 메모리콘트롤러 |
US6424198B1 (en) * | 2001-08-09 | 2002-07-23 | International Business Machines Corporation | Memory clock generation with configurable phase advance and delay capability |
FR2829253A1 (fr) * | 2001-08-31 | 2003-03-07 | Koninkl Philips Electronics Nv | Controle d'acces dynamique d'une fonction a ressource collective |
US6779096B1 (en) * | 2001-09-29 | 2004-08-17 | Apple Computer, Inc. | Method and apparatus for a calibrated variable phase offset timing between synchronous clock subdomains |
US6941416B2 (en) | 2001-10-04 | 2005-09-06 | Zilog, Inc. | Apparatus and methods for dedicated command port in memory controllers |
US20040098549A1 (en) * | 2001-10-04 | 2004-05-20 | Dorst Jeffrey R. | Apparatus and methods for programmable interfaces in memory controllers |
US6883045B1 (en) * | 2001-10-15 | 2005-04-19 | Advanced Micro Devices, Inc. | Apparatus for reordering graphics responses in a peripheral interface circuit for an I/O node of a computer system |
US6594748B1 (en) * | 2001-11-09 | 2003-07-15 | Lsi Logic Corporation | Methods and structure for pipelined read return control in a shared RAM controller |
KR100454126B1 (ko) * | 2002-01-15 | 2004-10-26 | 삼성전자주식회사 | 분리된 클록 라인을 구비한 정보 처리 시스템 |
US6934899B2 (en) * | 2002-01-30 | 2005-08-23 | Etron Technology, Inc. | Variable self-time scheme for write recovery by low speed tester |
US6778175B2 (en) * | 2002-02-05 | 2004-08-17 | Xgi Technology Inc. | Method of arbitration of memory request for computer graphics system |
JP3800164B2 (ja) * | 2002-10-18 | 2006-07-26 | ソニー株式会社 | 情報処理装置、情報記憶装置、情報処理方法、及び情報処理プログラム |
US20040203483A1 (en) * | 2002-11-07 | 2004-10-14 | International Business Machines Corporation | Interface transceiver power mangagement method and apparatus |
US7043611B2 (en) * | 2002-12-11 | 2006-05-09 | Lsi Logic Corporation | Reconfigurable memory controller |
US7096349B1 (en) * | 2002-12-16 | 2006-08-22 | Advanced Micro Devices, Inc. | Firmware algorithm for initializing memory modules for optimum performance |
KR100560646B1 (ko) * | 2002-12-20 | 2006-03-16 | 삼성전자주식회사 | 지연된 오토프리챠지 기능을 갖는 반도체 메모리 장치 |
JP2004213337A (ja) * | 2002-12-27 | 2004-07-29 | Nec Computertechno Ltd | 半導体記憶装置及び実装型半導体装置 |
US6925542B2 (en) * | 2003-03-21 | 2005-08-02 | Freescale Semiconductor, Inc. | Memory management in a data processing system |
JP4792196B2 (ja) * | 2003-03-27 | 2011-10-12 | 三洋電機株式会社 | データ入出力方法、およびその方法を利用可能な記憶装置およびホスト装置 |
US7210059B2 (en) * | 2003-08-19 | 2007-04-24 | Micron Technology, Inc. | System and method for on-board diagnostics of memory modules |
US20050041453A1 (en) * | 2003-08-22 | 2005-02-24 | Brazis Paul W. | Method and apparatus for reading and writing to solid-state memory |
US7310752B2 (en) | 2003-09-12 | 2007-12-18 | Micron Technology, Inc. | System and method for on-board timing margin testing of memory modules |
US7433258B2 (en) * | 2003-10-10 | 2008-10-07 | Datasecure Llc. | Posted precharge and multiple open-page RAM architecture |
US7120743B2 (en) | 2003-10-20 | 2006-10-10 | Micron Technology, Inc. | Arbitration system and method for memory responses in a hub-based memory system |
US6940768B2 (en) * | 2003-11-04 | 2005-09-06 | Agere Systems Inc. | Programmable data strobe offset with DLL for double data rate (DDR) RAM memory |
US6829191B1 (en) | 2003-12-03 | 2004-12-07 | Hewlett-Packard Development Company, L.P. | Magnetic memory equipped with a read control circuit and an output control circuit |
US7216196B2 (en) * | 2003-12-29 | 2007-05-08 | Micron Technology, Inc. | Memory hub and method for memory system performance monitoring |
KR100546403B1 (ko) * | 2004-02-19 | 2006-01-26 | 삼성전자주식회사 | 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러 |
US7310748B2 (en) * | 2004-06-04 | 2007-12-18 | Micron Technology, Inc. | Memory hub tester interface and method for use thereof |
JP4616586B2 (ja) * | 2004-06-30 | 2011-01-19 | 富士通株式会社 | メモリ初期化制御装置 |
TWI245287B (en) * | 2004-09-08 | 2005-12-11 | Via Tech Inc | Method for initialization drams |
CN100395740C (zh) * | 2004-11-03 | 2008-06-18 | 明基电通股份有限公司 | 通用型串行传输系统、打印机及其控制方法 |
US7139673B1 (en) * | 2004-11-05 | 2006-11-21 | Xilinx, Inc. | Method of and circuit for verifying a data transfer protocol |
JP2006134196A (ja) * | 2004-11-09 | 2006-05-25 | Hitachi Ltd | ディスクアレイ装置 |
US8099638B2 (en) * | 2004-11-12 | 2012-01-17 | Ati Technologies Ulc | Apparatus and methods for tuning a memory interface |
US20060136606A1 (en) * | 2004-11-19 | 2006-06-22 | Guzy D J | Logic device comprising reconfigurable core logic for use in conjunction with microprocessor-based computer systems |
US7650481B2 (en) * | 2004-11-24 | 2010-01-19 | Qualcomm Incorporated | Dynamic control of memory access speed |
US7532218B1 (en) * | 2005-02-01 | 2009-05-12 | Nvidia Corporation | Method and apparatus for memory training concurrent with data transfer operations |
US8881233B2 (en) * | 2005-05-23 | 2014-11-04 | Microsoft Corporation | Resource management via periodic distributed time |
US20080028136A1 (en) | 2006-07-31 | 2008-01-31 | Schakel Keith R | Method and apparatus for refresh management of memory modules |
US8438328B2 (en) * | 2008-02-21 | 2013-05-07 | Google Inc. | Emulation of abstracted DIMMs using abstracted DRAMs |
US8130560B1 (en) | 2006-11-13 | 2012-03-06 | Google Inc. | Multi-rank partial width memory modules |
US9542352B2 (en) | 2006-02-09 | 2017-01-10 | Google Inc. | System and method for reducing command scheduling constraints of memory circuits |
US8386722B1 (en) | 2008-06-23 | 2013-02-26 | Google Inc. | Stacked DIMM memory interface |
US8111566B1 (en) | 2007-11-16 | 2012-02-07 | Google, Inc. | Optimal channel design for memory devices for providing a high-speed memory interface |
US9507739B2 (en) | 2005-06-24 | 2016-11-29 | Google Inc. | Configurable memory circuit system and method |
US8077535B2 (en) | 2006-07-31 | 2011-12-13 | Google Inc. | Memory refresh apparatus and method |
US8335894B1 (en) | 2008-07-25 | 2012-12-18 | Google Inc. | Configurable memory system with interface circuit |
US8081474B1 (en) | 2007-12-18 | 2011-12-20 | Google Inc. | Embossed heat spreader |
US8055833B2 (en) | 2006-10-05 | 2011-11-08 | Google Inc. | System and method for increasing capacity, performance, and flexibility of flash storage |
US8796830B1 (en) | 2006-09-01 | 2014-08-05 | Google Inc. | Stackable low-profile lead frame package |
US7609567B2 (en) * | 2005-06-24 | 2009-10-27 | Metaram, Inc. | System and method for simulating an aspect of a memory circuit |
US8327104B2 (en) | 2006-07-31 | 2012-12-04 | Google Inc. | Adjusting the timing of signals associated with a memory system |
US8089795B2 (en) | 2006-02-09 | 2012-01-03 | Google Inc. | Memory module with memory stack and interface with enhanced capabilities |
US8041881B2 (en) | 2006-07-31 | 2011-10-18 | Google Inc. | Memory device with emulated characteristics |
GB2441726B (en) | 2005-06-24 | 2010-08-11 | Metaram Inc | An integrated memory core and memory interface circuit |
US10013371B2 (en) | 2005-06-24 | 2018-07-03 | Google Llc | Configurable memory circuit system and method |
US9171585B2 (en) | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US8359187B2 (en) | 2005-06-24 | 2013-01-22 | Google Inc. | Simulating a different number of memory circuit devices |
US20080082763A1 (en) | 2006-10-02 | 2008-04-03 | Metaram, Inc. | Apparatus and method for power management of memory circuits by a system or component thereof |
US7386656B2 (en) | 2006-07-31 | 2008-06-10 | Metaram, Inc. | Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit |
US8060774B2 (en) | 2005-06-24 | 2011-11-15 | Google Inc. | Memory systems and memory modules |
US8619452B2 (en) | 2005-09-02 | 2013-12-31 | Google Inc. | Methods and apparatus of stacking DRAMs |
US8244971B2 (en) * | 2006-07-31 | 2012-08-14 | Google Inc. | Memory circuit system and method |
US8090897B2 (en) | 2006-07-31 | 2012-01-03 | Google Inc. | System and method for simulating an aspect of a memory circuit |
US8397013B1 (en) | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
DE102005031643B4 (de) * | 2005-07-06 | 2007-06-14 | Infineon Technologies Ag | DRAM-Speicher |
US9048951B2 (en) * | 2005-09-02 | 2015-06-02 | Georgios Margaritis | Free space optics photodetector and transceiver |
CN100349108C (zh) * | 2005-11-21 | 2007-11-14 | 北京中星微电子有限公司 | 与非门快闪存储器的物理接口、接口方法和管理设备 |
JP2007156567A (ja) * | 2005-11-30 | 2007-06-21 | Toshiba Corp | 情報処理装置、およびメモリ制御方法 |
US7752488B2 (en) * | 2006-01-06 | 2010-07-06 | International Business Machines Corporation | Method to adjust error thresholds in a data storage and retrieval system |
US9632929B2 (en) | 2006-02-09 | 2017-04-25 | Google Inc. | Translating an address associated with a command communicated between a system and memory circuits |
ITTO20060719A1 (it) * | 2006-10-06 | 2008-04-07 | Micron Technology Inc | Architettura di registri filtrati per generare segnali per attuatori |
US7764798B1 (en) * | 2006-07-21 | 2010-07-27 | Cingular Wireless Ii, Llc | Radio frequency interference reduction in connection with mobile phones |
US7724589B2 (en) | 2006-07-31 | 2010-05-25 | Google Inc. | System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits |
US20080114960A1 (en) * | 2006-11-14 | 2008-05-15 | Tau-Li Huang | Memory control methods for accessing a memory with partial or full serial transmission, and related apparatus |
TWI311326B (en) * | 2006-12-01 | 2009-06-21 | Realtek Semiconductor Corp | Memory controller and signal synchronizing method thereof |
US8140803B2 (en) * | 2007-01-09 | 2012-03-20 | International Business Machines Corporation | Structure for reducing latency associated with read operations in a memory system |
US20080276133A1 (en) * | 2007-05-02 | 2008-11-06 | Andrew Hadley | Software-Controlled Dynamic DDR Calibration |
JP4922834B2 (ja) * | 2007-05-29 | 2012-04-25 | 株式会社日立製作所 | コンピュータシステムに存在するリソースの性能を監視する装置及び方法 |
WO2008149415A1 (ja) * | 2007-06-04 | 2008-12-11 | Fujitsu Limited | パケットスイッチ装置 |
US8209479B2 (en) * | 2007-07-18 | 2012-06-26 | Google Inc. | Memory circuit system and method |
US8099564B1 (en) * | 2007-08-10 | 2012-01-17 | Xilinx, Inc. | Programmable memory controller |
US8080874B1 (en) | 2007-09-14 | 2011-12-20 | Google Inc. | Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween |
JP5103663B2 (ja) | 2007-09-27 | 2012-12-19 | ルネサスエレクトロニクス株式会社 | メモリ制御装置 |
JP2009282721A (ja) | 2008-05-21 | 2009-12-03 | Nec Electronics Corp | メモリコントローラ、メモリコントロールシステム及びメモリ遅延量制御方法 |
US8295402B2 (en) * | 2008-06-04 | 2012-10-23 | Qualcomm Incorporated | Optimal blind channel estimation for DQPSK demodulation |
US20090327535A1 (en) * | 2008-06-30 | 2009-12-31 | Liu Tz-Yi | Adjustable read latency for memory device in page-mode access |
TWI414925B (zh) * | 2008-11-27 | 2013-11-11 | Asustek Comp Inc | 決定記憶體模組控制訊號之品質參數的方法及其電子裝置 |
DE102009007215A1 (de) * | 2009-02-03 | 2010-08-05 | Siemens Aktiengesellschaft | Automatisierungssystem mit einem programmierbaren Matrixmodul |
TWI474260B (zh) * | 2009-02-16 | 2015-02-21 | Asustek Comp Inc | 電腦系統與其主機板上之記憶體電路和開機方法 |
CN101859330B (zh) * | 2009-04-09 | 2012-11-21 | 辉达公司 | 验证集成电路效能模型的方法 |
DE202010017690U1 (de) | 2009-06-09 | 2012-05-29 | Google, Inc. | Programmierung von Dimm-Abschlusswiderstandswerten |
TWI400607B (zh) * | 2009-06-11 | 2013-07-01 | Asustek Comp Inc | 調整記憶體內部參數的方法及使用其之電腦系統 |
US8248869B1 (en) * | 2009-10-16 | 2012-08-21 | Xilinx, Inc. | Configurable memory map interface and method of implementing a configurable memory map interface |
US20120110400A1 (en) * | 2010-11-01 | 2012-05-03 | Altera Corporation | Method and Apparatus for Performing Memory Interface Calibration |
US8806245B2 (en) * | 2010-11-04 | 2014-08-12 | Apple Inc. | Memory read timing margin adjustment for a plurality of memory arrays according to predefined delay tables |
US8914564B2 (en) * | 2010-12-29 | 2014-12-16 | Silicon Laboratories Inc. | Port control apparatus and associated methods |
US8880831B2 (en) * | 2011-05-12 | 2014-11-04 | Advanced Micro Devices, Inc. | Method and apparatus to reduce memory read latency |
US20130151755A1 (en) | 2011-12-12 | 2013-06-13 | Reuven Elhamias | Non-Volatile Storage Systems with Go To Sleep Adaption |
US9519428B2 (en) | 2012-09-26 | 2016-12-13 | Qualcomm Incorporated | Dynamically improving performance of a host memory controller and a memory device |
US8581756B1 (en) | 2012-09-27 | 2013-11-12 | Cirrus Logic, Inc. | Signal-characteristic determined digital-to-analog converter (DAC) filter stage configuration |
US9411721B2 (en) | 2013-11-15 | 2016-08-09 | Sandisk Technologies Llc | Detecting access sequences for data compression on non-volatile memory devices |
US9287005B2 (en) * | 2013-12-13 | 2016-03-15 | International Business Machines Corporation | Detecting missing write to cache/memory operations |
KR20150070528A (ko) * | 2013-12-17 | 2015-06-25 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9594516B2 (en) * | 2014-02-14 | 2017-03-14 | Sony Semiconductor Solutions Corporation | Memory device with variable trim parameters |
US20160299894A1 (en) * | 2015-04-07 | 2016-10-13 | Victor Chernov | Method of sparse array implementation for large arrays |
US9601193B1 (en) | 2015-09-14 | 2017-03-21 | Intel Corporation | Cross point memory control |
US9818458B1 (en) | 2015-09-23 | 2017-11-14 | Intel Corporation | Techniques for entry to a lower power state for a memory device |
CN106557267A (zh) * | 2015-09-29 | 2017-04-05 | 鸿富锦精密工业(深圳)有限公司 | 硬盘工作环境修改系统及修改方法 |
US20180095699A1 (en) * | 2016-10-01 | 2018-04-05 | National Tsing Hua University | Memory system, memory device thereof, and method for writing to and reading from memory device thereof |
US10090067B1 (en) | 2017-05-30 | 2018-10-02 | Seagate Technology Llc | Data storage device with rewritable in-place memory |
US10068663B1 (en) | 2017-05-30 | 2018-09-04 | Seagate Technology Llc | Data storage device with rewriteable in-place memory |
US10147501B1 (en) | 2017-05-30 | 2018-12-04 | Seagate Technology Llc | Data storage device with rewriteable in-place memory |
US11449431B2 (en) | 2017-05-30 | 2022-09-20 | Seagate Technology Llc | Data storage device with rewritable in-place memory |
CN109600195B (zh) * | 2017-09-30 | 2020-09-25 | 电信科学技术研究院 | 一种信息交织方法、信息解交织方法及相关装置 |
US10866900B2 (en) | 2017-10-17 | 2020-12-15 | Samsung Electronics Co., Ltd. | ISA extension for high-bandwidth memory |
US11079945B2 (en) * | 2018-09-20 | 2021-08-03 | Ati Technologies Ulc | Dynamic configuration of memory timing parameters |
US10685722B1 (en) * | 2019-01-24 | 2020-06-16 | Western Digital Technologies, Inc. | Method and system for improving performance of a storage device using asynchronous independent plane read functionality |
US11314686B2 (en) * | 2019-02-26 | 2022-04-26 | Nxp Usa, Inc. | Hardware for supporting time triggered load anticipation in the context of a real time OS |
KR20230026877A (ko) * | 2021-08-18 | 2023-02-27 | 에스케이하이닉스 주식회사 | 컴퓨팅 시스템 및 그 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0339224A2 (en) * | 1988-04-29 | 1989-11-02 | International Business Machines Corporation | Memory controller |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4063308A (en) * | 1975-06-27 | 1977-12-13 | International Business Machines Corporation | Automatic clock tuning and measuring system for LSI computers |
US5276858A (en) * | 1991-12-26 | 1994-01-04 | Intel Corporation | Memory controller with integrated delay line circuitry |
US5809340A (en) | 1993-04-30 | 1998-09-15 | Packard Bell Nec | Adaptively generating timing signals for access to various memory devices based on stored profiles |
US6338148B1 (en) * | 1993-11-10 | 2002-01-08 | Compaq Computer Corporation | Real-time test controller |
US5692165A (en) | 1995-09-12 | 1997-11-25 | Micron Electronics Inc. | Memory controller with low skew control signal |
US6088774A (en) * | 1996-09-20 | 2000-07-11 | Advanced Memory International, Inc. | Read/write timing for maximum utilization of bidirectional read/write bus |
US6173345B1 (en) * | 1998-11-03 | 2001-01-09 | Intel Corporation | Method and apparatus for levelizing transfer delays for a channel of devices such as memory devices in a memory subsystem |
-
1998
- 1998-10-02 US US09/166,004 patent/US6438670B1/en not_active Expired - Lifetime
-
1999
- 1999-02-10 US US09/247,501 patent/US6334174B1/en not_active Expired - Fee Related
- 1999-03-10 JP JP2000575035A patent/JP2002526861A/ja active Pending
- 1999-03-10 KR KR10-2001-7003241A patent/KR100450726B1/ko not_active IP Right Cessation
- 1999-03-10 EP EP99912356A patent/EP1116123B1/en not_active Expired - Lifetime
- 1999-03-10 WO PCT/US1999/005175 patent/WO2000020978A1/en active IP Right Grant
- 1999-03-10 DE DE69907704T patent/DE69907704D1/de not_active Expired - Lifetime
-
2001
- 2001-08-23 US US09/938,161 patent/US6453434B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0339224A2 (en) * | 1988-04-29 | 1989-11-02 | International Business Machines Corporation | Memory controller |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100936149B1 (ko) * | 2006-12-29 | 2010-01-12 | 삼성전자주식회사 | 복수의 비휘발성 메모리를 갖는 메모리 시스템 그것의 메모리 억세스 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2000020978A1 (en) | 2000-04-13 |
DE69907704D1 (de) | 2003-06-12 |
JP2002526861A (ja) | 2002-08-20 |
US6438670B1 (en) | 2002-08-20 |
EP1116123B1 (en) | 2003-05-07 |
KR20010075082A (ko) | 2001-08-09 |
US20020013881A1 (en) | 2002-01-31 |
US6453434B2 (en) | 2002-09-17 |
EP1116123A1 (en) | 2001-07-18 |
US6334174B1 (en) | 2001-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100450726B1 (ko) | 제어된 메모리 저장 장치의 타이밍 파라미터를 토대로 하여 실행 능력을 조절하기 위한 프로그램 가능 지연 카운터를 갖는 메모리 컨트롤러 | |
US5717654A (en) | Burst EDO memory device with maximized write cycle timing | |
US5966724A (en) | Synchronous memory device with dual page and burst mode operations | |
US5610864A (en) | Burst EDO memory device with maximized write cycle timing | |
US5812488A (en) | Synchronous burst extended data out dram | |
US6804760B2 (en) | Method for determining a type of memory present in a system | |
JP5017708B2 (ja) | ダブルデータレートダイナミックランダムアクセスメモリからのデータ取り出し方法、及びデータストローブ信号提供方法 | |
US5526320A (en) | Burst EDO memory device | |
EP1356468B1 (en) | Method for programming memory controller in a high performance microprocessor | |
US6611905B1 (en) | Memory interface with programable clock to output time based on wide range of receiver loads | |
US6940760B2 (en) | Data strobe gating for source synchronous communications interface | |
US6782459B1 (en) | Method and apparatus for controlling a read valid window of a synchronous memory device | |
US20010010655A1 (en) | Method and system for accessing rows in multiple memory banks within an integrated circuit | |
US6594748B1 (en) | Methods and structure for pipelined read return control in a shared RAM controller | |
WO1996020480A9 (en) | System adapted to receive multiple memory types | |
US20150113236A1 (en) | Memory controller | |
US6529424B2 (en) | Propagation delay independent SDRAM data capture device and method | |
KR100297895B1 (ko) | 동기식 dram-타입 메모리와 시스템 버스간의 데이터 전송을 제어하는 방법 및 장치 | |
JP4206508B2 (ja) | 信号制御回路 | |
EP0798645B1 (en) | Bus controller and information processing device | |
EP1262989B1 (en) | System to set burst mode in a device | |
KR100284987B1 (ko) | 버스트 edo 메모리 장치 어드레스 카운터 | |
JP2003228512A (ja) | データ転送装置 | |
JP2000284959A (ja) | データアクセス装置 | |
JP2000187635A (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 | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |