KR20060127400A - 메모리 제어기 - Google Patents

메모리 제어기 Download PDF

Info

Publication number
KR20060127400A
KR20060127400A KR1020067010996A KR20067010996A KR20060127400A KR 20060127400 A KR20060127400 A KR 20060127400A KR 1020067010996 A KR1020067010996 A KR 1020067010996A KR 20067010996 A KR20067010996 A KR 20067010996A KR 20060127400 A KR20060127400 A KR 20060127400A
Authority
KR
South Korea
Prior art keywords
external dram
channel
command
communicating
memory
Prior art date
Application number
KR1020067010996A
Other languages
English (en)
Other versions
KR101198981B1 (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
Priority claimed from DE200410009428 external-priority patent/DE102004009428A1/de
Application filed by 톰슨 라이센싱 filed Critical 톰슨 라이센싱
Publication of KR20060127400A publication Critical patent/KR20060127400A/ko
Application granted granted Critical
Publication of KR101198981B1 publication Critical patent/KR101198981B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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

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(2)을 구비한 IC를 위한 메모리 제어기(1)와 관련이 있으며, 이 외부 DRAM(2)은 적어도 하나의 메모리 뱅크(21, 22, 23, 24)를 구비하며, 적어도 하나의 채널(6, 7, 8)을 거쳐 이 IC와 통신한다. 본 발명에 따라, 이 메모리 제어기(1)는 명령어에 대한 정적인 우선 순위 할당과 채널에 대한 동적인 우선 순위 할당에 기초하여 메모리 뱅크 명령어의 전송에 대한 우선 순위를 결정하는 명령어 스케줄러(3)를 구비한다.

Description

메모리 제어기{MEMORY CONTROLLER}
본 발명은 외부 DRAM을 가진 IC를 위한 메모리 제어기, 특히 명령어 스케쥴러를 가진 메모리 제어기와 관련이 있다.
독일에서 미리 기록된 이미지 데이터 저장 매체의 엄청난 판매에 대한 통계는 DVD가 작년에 사상 처음으로 비디오 카세트의 판매를 대체하였다는 것을 보여 준다. 따라서, 가까운 장래에 DVD 비디오 기록기가 아날로그 비디오 기록기를 기록 유닛으로서 대체할 것이라는 것이 가정될 수 있다. 특히, 현재 빠른 속도로 퍼지고 있는 디지털 텔레비전 수신(digital television reception: DVB)가 디지털 저장을 위한 요구를 일깨울 것이다. 이런 관점에서, 하지만, MPEG-4와 같은 현대적인 압축 방법조차도 평균적으로 단지 두 개의 영화 필름만이 하나의 기록 가능한 DVD 상에 저장되는 것을 허용한다는 것이 이미 알려졌다. 그러므로, 고선명 텔레비전(high-definition television: HDTV)이 발전됨에 따라, 보다 큰 저장 용량을 구비한 새로운 광 저장 매체의 개발이 진행되고 있다. 이러한 타입의 광저장 매체의 한 실예는 최대 54 GB의 용량을 가지는 블루-레이(Blue-ray) 디스크이다. 광저장 매체를 위한 미래의 드라이브는 바람직하게 판독과 기록 모두를 위해 적어도 블루-레이 디스크, DVD 및 CD 포맷을 지원해야 한다. 이러한 목적을 위해, 상기 포맷을 취급할 수 있 는 광 드라이브를 제어하기 위한 IC가 요구된다. 또한, 예를 들면, DVB 수신기에서와 같은 이미지 처리 분야에서 강력한 IC가 요구된다.
디지털 최종-소비자(end-customer) 장치의 비용을 감소시키기 위해, 가능한 부문에서, 모놀리식 IC 해법{"원-칩(one-chip) 해법"}이 오늘날 사용되고 있다. 이것은 임베디드(embedded) 중앙 처리 유닛{central processing unit(CPU)} 및/또는 디지털 신호 처리기{digital signal processor: DSP}가 시스템을 위한 개발 시간을 감소시키기 위해 전용 하드웨어 대용으로 사용되는 것을 의미한다. 프로세서로부터의 명령어와 데이터를 저장하고, 드라이브로부터의 데이터 스트림 또는 비디오 데이터 스트림을 버퍼링하기 위해, 최대 수 메가바이트의 대용량 메모리가 필요하다. 메모리의 비용을 낮게 유지하기 위해, DRAM(dynamic RAM: 동적인 램)이 일반적으로 SRAM{static(정적인) 램} 대신에 사용된다. 바람직하게, SDRAM{동기(synchronous) DRAM}이 DRAM을 위해 사용되거나, DDR-RAM{이중 데이터율(double data rate) 램}, ESDRAM{인핸싱된 동기(enhanced synchronous) DRAM}, SLDRAM{동기 링크(synchronous link) DRAM}, 또는 RDRAM{램버스(Rambus) DRAM}과 같은 어떠한 다른 타입의 DRAM이 사용된다. 아래 내용은 일반적으로 DRAM 또는 특별히 SDRAM을 참조한다. 본 발명이 SDRAM의 사용에 제한되지 않는다는 것은 언급의 여지가 없다.
임베디드 DRAM은 비교적 값비싸고, 임베디드 DRAM을 지원하는 프로세스는 드물다. 이런 이유로, 외부 DRAM이 일반적으로 사용된다. IC 개발 비용을 낮게 유지시키기 위해, 특히, IC에 대한 작은 물리적인 크기를 달성하기 위해, 제한된 수의 핀이 사용된다. 이 제한 때문에, DRAM으로의 외부 데이터 버스는 내부 데이터 버 스보다 종종 좁다. 이것은 병목을 초래한다. 추가적으로, DRAM이 아주 다양한 데이터를 저장하기 위해 사용되는데, 즉, DRAM은 이용 가능한 CPU DSP 및 실시간 데이터 스트림에 의해 공동으로 사용된다. 이것은 병목을 추가적으로 악화시킨다.
전형적인 SDRAM 모듈은 4개의 독립적인 메모리 뱅크를 포함한다. 각 메모리 뱅크는 행을 포함하며, 행은 또한 열을 포함한다. 특정한 데이터 값을 주소 지정하기 위해, 적절한 메모리 뱅크에서의 적절한 행은 먼저 활성화될{'활성화(activate)'} 필요가 있다. 2개와 4개 사이의 클록 주기를 취하는 활성화에 뒤이어서, 데이터 전송은 요구되는 열 주소와 함께 판독 혹은 기록 명령어를 전송하는 것에 의해 개시될 수 있다. 데이터 전송에 뒤이어, 메모리 뱅크는 개방된 행을 비활성화시키고 다음 활성화 명령어를 위한 메모리 뱅크를 준비시키기 위해 '프리챠징(precharging)'된다. 특히 '프리챠징'은 메모리 주소가 액세스를 위해 이미 준비되고 있는 것을 의미하는데, 이는 이 주소로의 요청이 다음 클록 주기에서 전송될 것이라는 것을 처음부터부터 시스템이 알기 때문이다.
정상적으로, 버스트(burst) 전송은 단지 단일한 판독 또는 기록 명령어를 사용하는 복수의 데이터 값을 판독 또는 기록하기 위해 사용된다. 액세스는 미리 지정된 위치(열)에서 시작하고, 프로그래밍된 개수의 위치에서 계속된다. 새로운 버스트가 개시될 때, 명령어 버스는 비어 있고, 다른 메모리 뱅크를 활성화하거나 또는 프리챠징하기 위해 사용될 수 있다.
따라서 메모리 뱅크는 서로에 대해 독립적으로 제어되지만, 동일한 명령어 라인을 공유한다. 그러므로 단지 하나의 명령어만이 각 클록 주기에서 전송된다.
가능한한 가장 작은 수의 핀과 작은 물리적인 크기를 유지하기 위해, DRAM 모듈로의 외부 데이터 버스상의 데이터 처리량이 최대화될 필요가 있다. 이런 관점에서의 문제는 SDRAM의 예시를 사용해서 위에서 설명한 것처럼, DRAM은 행을 활성화하고 메모리 뱅크를 '프리챠징'하기 위해 복수의 클록 주기를 요구한다. 이것은 데이터 전송 간에 여러 개의 클록 주기의 대기 시간을 초래한다. 판독 또는 기록 버스트의 길이에 따라서, 이 대기 시간은 데이터 전송을 위해 사용된 클록 주기보다 전체적으로 보다 많은 클록 주기가 사용되지 않은 채로 남겨지는 것을 초래할 수 있다. 이것의 한 예시는 4개의 제각기의 클록 주기상에 2개의 기록 버스트를 도시하는 도 1의 a)에서 제공된다. 기록 버스트 사이에서, 임의의 데이터 전송 없이 7개의 클록 주기가 존재한다. 대기 시간을 감추기 위해, 다음 데이터 전송이, 판독 또는 기록 버스트가 진행 중인 동안에, 이미 준비 상태에 있을 필요가 있다. 이것의 한 예시는 도 1의 b)에서 도시되는데, 이 도면은 4개의 제각기의 클록 주기 동안 2개의 기록 버스트를 마찬가지로 도시한다. 대기 시간은 다른 데이터 전송 뒤에서 은닉된다.
DRAM 모듈로의 보다 넓은 외부 데이터 버스를 사용하거나, 또는 대안적으로 이런 방식으로 외부 데이터 버스 상에서 작업 부하를 감소시키기 위해 임베디드 SRAM을 사용함으로서 병목을 제거하는 것은 알려진 방법이다.
감소된 대기 시간을 가지고 높은 데이터 처리량을 허용하고, 구현하기에 비싸지 않은 메모리 제어기를 제안하는 것이 본 발명의 목적이다.
본 발명은 단일 DRAM 모듈의 예시를 사용해서 아래에서 설명된다. 모든 메모리 모듈을 동일한 데이터 버스와 동일한 명령어 버스로 연결함으로써 복수의 메모리 모듈을 사용하는 것이 마찬가지로 가능하다. 이런 경우에, 칩(chip) 인에이블 신호는 요구되는 모듈을 선택하기 위해 사용된다.
복수의 응용을 위해 공동으로 하나 이상의 DRAM 모듈을 사용하기 위해, 다양한 프로세서와 실시간 데이터 스트림을 위한 메모리 영역이 물리적으로 분리되는 것을 보장하는 것이 필요하다. 이것은 모든 DRAM 모듈이 하나 이상의 특별히 연관된 DRAM 메모리 뱅크를 갖는다는 것을 의미한다. 만약 공동으로 사용된 메모리 뱅크로의 아무런 연속적인 액세스 동작이 발생하지 않는다는 것이 보장되면, 이 요구 사항은 면제될 수 있다.
본 발명에 따라, IC와 외부 DRAM 사이에서 통신하기 위한 방법은, 외부 DRAM이 적어도 두 개의 메모리 뱅크를 구비하며, 적어도 하나의 채널을 거쳐 IC와 통신하는 경우, 명령어에 대해서는 정적 우선 순위 할당에 기초하고, 채널에 대해서는 동적인 우선 순위 할당에 기초하여, 메모리 뱅크 명령어의 전송의 우선 순위가 결정되는 것을 수반한다.
만약 DRAM 메모리 뱅크의 상태가 연관된 상태 머신에 의해 묘사된다면, 이는 본 발명에 이롭다. 이것은 모든 메모리 뱅크를 서로에 대해 독립적으로 제어하는 것을 가능하게 한다.각 액세스 동작에 대해, 상태 머신은 전송 (판독 및 기록)의 타입, 행 번호 및 열 번호를 수신한다. 시간 조정을 위한 특별한 규칙을 준수함으로써, 상태 머신은 명령어를 명령어 스케줄러로 전송하는 것에 의해 메모리 뱅크를 제어할 수 있다. 이 경우에, 각 채널은 연관된 메모리 뱅크를 제어하는 상태 머신에 연결된다. 만약 채널이 복수의 메모리 뱅크를 액세스할 수 있다면, 네트워크가 요구된다. 명령어 스케줄러는 동일한 메모리 뱅크가 복수의 시간에서 연속으로 주소 지정되지 않는 것을 보장한다. 메모리 뱅크로의 두 개의 액세스 동작 사이에, 다른 하나의 메모리 뱅크로의 액세스 동작이 항상 수행된다. 대안적으로, 하지만, 메모리 뱅크로의 두 개의 연속적인 액세스 동작이 허용되는 데, 이는 메모리 뱅크에서 동일한 행으로 액세스가 수행되었을 경우이고, 이는 활성화 또는 프리챠징의 결과로서 아무런 대기 시작도 발생하지 않는 것을 의미한다. 우선 순위 할당은 새로운 버스트를 시작하기 위한 능력에 따라 대기 명령어를 정렬하고, 이것은 DRAM 데이터 버스의 최적의 사용이 달성되는 방식으로 이루어진다. 이것은 판독 및 기록 명령어가 높은 우선 순위를 그리고 판독 또는 기록 명령어를 위한 선행 조건인 활성화 명령어가 그 다음으로 높은 우선 순위를 갖는 것을 의미한다. 프리챠징 명령어는 현재 전송의 일부가 아니므로 최저 우선 순위가 주어진다. 프리챠징 명령어는 단지 연속적인 전송을 위해서만 요구되고, 그러므로, 이것들은 지연될 수 있다. 만약 모든 버스트가 4개 또는 보다 많은 주기 길이를 갖는다면, 명령어 라인상의 작업 부하는 긴 지연 없이 낮은 우선 순위를 갖는 명령어를 전송하기에 충분히 작다. 대기 명령어의 순서를 규정하기 위해, 명령어는 가능한한 빨리 데이터 전송을 시작하기 위해 그 능력에 따라 분석되고, 집단화되고, 정렬될 필요가 있다.
명령어 우선 순위
버스트 종결 4 (최고)
판독 또는 기록 버스트 3
활성화 2
프리챠징 1 (최저)
본 발명은 획득된 DRAM 모듈의 대역폭이 물리적인 최대치에 근접하게 되는 것을 야기한다. 큰 작업 부하를 가지면, 대기 시간은 활성화 및 프리챠징에 의해 전체적으로 숨겨지며, 이는 액세스 시간이 계속적으로 짧게 되는 것을 의미한다. 일부 채널에 대해 낮은 대기 시간을 갖는 액세스 동작을 허용하고, 다른 채널에 대해서는 높은 데이터 처리량을 동시에 보장하는 요구 목적은 본 발명의 메모리 제어기에 의해 매우 잘 달성된다.
본 발명의 추가적인 특성에 따라, 적어도 두 개의 메모리 뱅크를 가지며, 적어도 하나의 채널을 거쳐 IC와 통신하는, 외부 DRAM을 구비한 IC를 위한 메모리 제어기는 명령어를 위한 정적인 우선 순위 할당과 채널을 위한 동적인 우선 순위 할당에 기초하여 메모리 뱅크 명령어의 전송의 우선 순위를 결정하는 명령어 스케줄러를 구비한다.
이롭게, 광 저장 매체를 판독 및/또는 이 매체에 기록하기 위한 장치는 진보적인 메모리 제어기를 구비하거나, 또는 IC와 외부 DRAM 간에 통신하기 위한 진보적인 방법을 사용한다.
도 1은 4개의 제각기의 클록 주기에서 2개의 기록 버스트(burst)의 2개의 실예시를 도시한 도면.
도2는 본 발명의 메모리 제어기의 블록도.
도 3은 명령 스케줄러의 블록도.
도 4는 우선 순위 할당의 상태도.
도 5는 명령 스케줄러에 대한 흐름도.
이해를 돕기 위해, 본 발명은 도 1 내지 도 5를 참조해서 아래에서 설명될 것이다. 이 경우에, 동일한 참조 기호는 동일한 요소를 나타낸다. 본 발명이 도시된 예시적인 실시예에 제한되지 않는다는 것은 당연하다. 본 발명의 특징이 본 발명의 유효성의 범주를 벗어남이 없이 쉽사리 결합되거나 수정될 수 있다.
도 2는 3개의 채널, 즉, 암바(AMBA) 버스(8)를 거쳐 연결된 CPU와 또한 실시간 데이터 스트림을 위한 입력(6) 및 출력(7)을 구비한 시스템에서 SDRAM 제어기(1)의 예를 사용하는 진보적인 메모리 제어기의 블록도를 도시한다. SDRAM 모듈(2)에서 각 메모리 뱅크(21, 22, 23, 24)는 메모리 뱅크(21, 22, 23, 24)의 제각기의 상태를 나타내는 메모리 뱅크 제어 유닛(4)에서 연관된 상태 머신(41, 42, 43, 44)을 가지며, 상기 상태 머신은 대기 시간과 정확한 상태 시퀀스를 관찰하는 임무를 지닌다. 이 상태 머신(41, 42, 43, 44)은 메모리 뱅크(21, 22, 23, 24)에 대한 그 명령어를, 외부 명령어 및 데이터 버스의 할당을 감시하는 명령어 스케줄러(3)(명령어 버스 스케줄러)로 전송한다. 각 클록 주기에서, 명령어 스케줄러(3)는 우선 순위에 따라 선택된 명령어를 DRAM 모듈(2)로 전송한다. 상태 머신(41, 42, 43, 44)은 3개의 채널{입력(6), 암바(8) 및 출력(7)}로부터 직접적으로 전송 명령을 획득하는데, 이 전송 명령은 그 주소와 우선 순위에 기초하여 메모리 뱅크 스케줄링 유닛(5)에 의해 적절한 메모리 뱅크(21, 22, 23, 24)로 발송된다. 메모리 뱅크 스케줄링 유닛(5)은 모든 채널(6, 7, 8)이 모든 메모리 뱅크(21, 22, 23, 24)를 액세스하는 것을 허용하기 위해 네트워크를 포함한다. 저장 매체로의 판독 액세스 동작 동안에, 입력 채널(6)은 ECC(Error Correction Code: 에러 정정 코드)로부터 데이터를 받아들이고, 출력 채널(7)은 데이터를 ATAPI 블록(도시되지 않음)으로 전송한다. 양쪽 채널(6, 7)은 데이터의 흐름이 멈추는 것을 막기 위해 FIFO(도시되지 않음)를 포함한다. 저장 매체로의 기록 액세스 동작 동안에, 입력 채널(6)은 데이터를 ATAPI 블록으로부터 수신하고, 출력 채널(7)은 이 데이터를 ECC 유닛으로 발송한다. 암바(Advanced Microcontroller Bus Architecture: 진보된 마이크로제어기 버스 아키텍처) 채널(8)은 암바 슬레이브를 포함하고, 이 슬레이브는 레지스터 파일(34)로의 액세스를 추가적으로 허용한다(도 3 참조). 암바 채널은 암바 버스를 위한 블로킹(blocking) 시간을 감소시키기 위한 판독 캐시 및 기록 캐시(도시되지 않음)를 포함한다. 4개의 SDRAM 메모리 뱅크(21, 22, 23, 24) 각각의 내부 상태가 별도의 상태 머신에 의해 묘사되므로, 단지 상태 머신(41, 42, 43, 44)을 액세스하는 것은 3개의 채널에 의해 경합하는 것을 초래할 수 있는데, 이것은 업스트림 스케줄링 알고리즘에 의해 취급되지 않는다. 그러나, 이 경합 상황이 단지 드물게 발생하는 것을 보장하는 것이 가능하다. 이런 이유로, 섹터 데이터의 실시간 데이터 스트림은 이 경우에 ARAM 액세스 동작 보다 높은 우선 순위가 주어진다.
명령어 스케줄러(3)의 보다 상세한 블록도가 도 3에서 도시된다. 4개의 메모리 뱅크(21, 22, 23, 24)를 관리하는 상태 머신(41, 42, 43, 44)으로부터 진입 명 령어는 명령어 분석기(31)에 의해 분석된다. 이 경우에, 5개의 명령어 - 활성화, 판독, 쓰기, 프리챠징 및 버스트 종결 - 의 각각에 대해, 이 명령어가 적어도 한 번 존재하는 지가 확인된다. 만약 이것이 그렇다면, 제1 발생이 스케줄러(32)로 전송된다. 따라서, 명령어가 대기하고 있는가만이 관련이 있으며, 메모리 뱅크(21, 22, 23, 24) 또는 현재 연관된 채널(6, 7, 8)은 아무런 중요성을 가지지 않는다. 스케줄러(32)는 스케줄러(32)를 위한 특정한 동작 매개변수를 포함하는 레지스터 파일(34)로의 액세스를 갖는다.
스케줄러(32) 그 자체는 전역 명령어의 존재를 먼저 점검한다. 만약 동작 매개변수 DRAM을 포함하는 모드 레지스터를 프로그래밍하기 위한 명령어가 전역 리프레시 또는 전역 프리챠징에 대해 존재한다면, 이 명령어는 즉시로 실행된다. 메모리 뱅크(21, 22, 23, 24)가 아이들(idle) 상태에 있을 때만이, 전역 명령어가 발생할 수 있다는 것을 메모리 뱅크 제어 유닛(4)이 보장하므로, 아무런 추가적인 검사도 여기서는 요구되지 않는다.
만약 전송된 전역 명령어가 NOP(No Operation: 무동작)이라면, 메모리 뱅크 명령어는 DRAM 모듈(2)로 전송될 수 있다. 메모리 뱅크 명령어는 명령어에 대해서는 정적인 우선 순위 할당에, 그리고 채널(6, 7, 8)에 대해서는 동적인 우선 순위 할당을 기초로 하여 전송되는데, 이 명령어는 우선 순위 할당 유닛(33)에 의해 수행된다. 이런 경우에, 명령어의 우선 순위는 채널(6, 7, 8)의 우선 순위보다 높다. 이것은, 먼저 명령어 타입이 선택되고, 만약 이 명령어를 전송하기를 원하는 복수의 채널(6, 7, 8)이 존재한다면, 이 명령어를 전송하는 것이 허용된 채널(6, 7, 8) 이 선택되는 것을 의미한다.
명령어 중에, 버스트를 종결하기 위한 버스트 종결 명령어가 가장 높은 우선 순위를 가지고 있다. 판독 및 기록 명령어는 두 번째로 높은 우선 순위를 가지고 있는데, 이는 이 명령어들이 새로운 버스트를 시작하게 하고, 따라서 이 명령어들을 가능한한 빨리 전송하는 것은 데이터 버스에 대한 양호한 활용 레벨을 위한 전제조건이기 때문이다. 두 번째로 가장 낮은 우선 순위는 활성화 명령어가 차지하게 되는데, 이 명령어는 행을 개방하기 위해 사용된다. 행의 개방이 버스트를 시작하는 전제 조건이므로, 활성화 명령어의 우선 순위는 가장 낮은 순위를 갖는 프리챠징 명령어의 우선 순위보다 상위인데, 이는 이 프리챠징 명령어가 버스트가 종결된 후에 수행되고, 아무런 차후의 액세스도 계류중이 아니라면, 전체적인 성능에 영향을 주지 않기 때문이다.
채널(6, 7, 8)의 동적인 우선 순위 결정은 도 4에서 최종 상태 머신, 즉, 상태도의 형태로 도시된 알고리즘에 의해 수행된다. 도시된 알고리즘은 두 개의 채널(입력 및 출력)을 구비한 암바-AHB (Advanced High-Performance Bus: 진보된 고성능 버스) 및 실시간 데이터 스트림을 거쳐 CPU의 액세스 동작을 제어한다. 이 상태는 우선 순위 레벨을 나타낸다. 이 경우에, 상부 상태에서 도시된 채널이 최상위 우선 순위를 가지고, 하부 채널이 최하위 우선 순위를 갖는다. 상태 전이는 판독 혹은 기록 버스트를 궁극적으로 시작할 수 있는 채널을 나타낸다. 예를 들면, 펌웨어 등을 전송하기 위해 플래시 제어기를 위한 가능한 추가적인 채널이 포함되지 않는데, 이는 이 채널이 다른 채널들과 경합하지 않기 때문이다.
모든 3개의 채널이 활성화 상태에 있을 때, 도시된 것처럼, 입력 -> 암바 -> 출력 -> 암바 시퀀스가 항상 준수된다. 최상위 우선 순위를 갖는 채널이 현재 활성화 상태가 아니거나 그 명령어가 매우 낮은 우선 순위를 가지고 있으므로, 최상위 우선 순위를 가진 채널이 명령어를 전송할 수 없다면, 이 명령어를 궁극적으로 전송할 수 있는 채널은 다음 클록 주기에 최하위 우선 순위가 주어진다. 하지만, 이와 동시에, 만약 암바 채널이 현재의 클록 주기에서 최상위 우선 순위를 가지고 있지 않고, 다른 하나의 채널이 기회를 가지고 있다면, 암바 채널(8)이 다음 클록 주기에 최상위 우선 순위를 부여 받는 것이 보장된다. 일단 암바 채널(8)이 최상위 우선 순위를 부여 받으면, 이 채널이 단지 명령어를 전송할 수 있을 때에만, 그 우선 순위를 다시 잃는다. 이것은 ARM에 대해 가능한한 가장 낮은 대기 시간을 보장한다. 입력 채널(6) 또는 출력 채널(7)을 거쳐 모든 버스트 이후에, 암바 채널(8)이 최상위 우선 순위를 부여 받으므로, 도시된 상태도는 CPU 액세스 동작에 대해 짧은 지연을 보장한다. 추가적으로, 상태도는 데이터 버스의 공평한 사용과 메모리 뱅크(21, 22, 23, 24)로의 교대 액세스 동작을 보장한다. 알고리즘은 높은 우선 순위와 따라서 실시간 데이터 스트림에 대해 동시적인 보장된 데이터 처리량이 주어지면 낮은 대기 시간을 갖는 CPU 액세스 동작을 위해 설계된다. 데이터 처리량은 DRAM(2)으로부터 또는 DRAM(2)로의 데이터 전송시에 입력 채널(6) 및 출력 채널(7)을 통해 판독 및 기록 버스트의 길이에 의해 규정된다.
어느 채널이 그 명령어를 전송하는 것이 허용될지에 대한 결정은 도 5에서 도시된 흐름도를 참조하여 아래에서 설명될 것이다. 만약 메모리 뱅크 FSM(Final State Machine: 최종 상태 머신)이 버스트를 종결하기를 원하면, 이 FSM이 최상위 우선 순위를 갖는다. 만약, 결과적으로, 분석(10) 동안에 시작(9) 이후에 버스트 종결(Burst Terminate: BST)이 발견되었다면, 진행중인 버스트가 중단될 것이다. 이것은 두 방법, 즉, 첫 번째로, 버스트 종결 명령어를 단지 발송(12)함으로써, 그리고 두 번째로, 새로운 버스트를 시작함(14)으로써 수행된다. 버스트 종결이 이제 전송되기 전에, 판독 혹은 기록 명령어가 전송될 것을 마찬가지로 대기하고 있는지를 결정하기 위한 검사(11)가 수행된다. 만약 이것이 그 경우라면, 이 명령어는 버스트 종결 대신에 전송된다(14). 분석 동안에, 적어도 하나의 판독 혹은 기록 명령어가 존재하는지를 결정하는 것에 대한 검사가 존재할 뿐이다. 이런 이유 때문에, 판독 혹은 기록 명령어가 전송(14)되기 전에, 채널에 대한 동적인 우선 순위 할당이 어느 채널이 판독 혹은 기록 명령어와 최상위 우선 순위를 가지는 채널인지를 검사하기 위해 사용된다. 그 다음에, 이 채널은 그 명령어를 전송하는 것이 허용된다. 채널의 선택은 우선 순위 할당으로 통신되고, 따라서, 다음 클록 주기에서 우선 순위의 새로운 배분을 가지고 새로운 상태로 변경된다. 버스트 종결 명령어를 판독 또는 기록 명령어로 대체하기 위한 단 하나의 제약은 판독 버스트가 기록 버스트에 의해 종결될 수 없다는 것인데, 이는 그렇치 않으면, 메모리 제어기(1)와 DRAM 모듈(2)이 데이터 버스를 동시에 구동하고 있기 때문이다. 보다 낮은 클록 주파수가 사용될 때, 하지만 이 제약은 회피될 수 있는데, 이는 DRAM의 출력을 위한 보유(hold) 시간이 일정하고 클록 주파수에 종속되지 않기 때문이다.
만약 아무런 버스트 종결 명령어가 존재하지 않으면, 판독 혹은 기록 명령어 의 존재가 검사되고(13), 만약 이 명령어가 존재한다면, 이 명령어는 우선 순위 할당에 기초하여 전송된다(14). 만약 아무런 판독 혹은 기록 명령어가 존재하지 않는다면, 활성화 명령어에 대한 검사(15)가 존재한다. 만약 이런 타입의 활성화 명령어가 대기중이라면, 이런 명령어가 전송된다(16). 만약 아무런 활성화 명령어도 존재하지 않는다면, 프리챠징 명령어를 위한 검사(17)가 존재한다. 존재하는 임의의 프리챠징 명령어가 전송된다(18). 아무런 채널(6, 7, 8) 또는 아무런 메모리 뱅크(21, 22, 23, 24)도 명령어를 전송하기를 원하지 않으면, NOP(No Operation: 무동작) 명령어가 전송된다. 만약 하나의 명령어가 DRAM 모듈(2)로 전송된다면, 이 명령어가 유래하는 메모리 뱅크 FSM는 신호에 의해 고지되며, 그 결과로서 메모리 뱅크 FSM은 다음 클록 주기에서 새로운 상태로 변경된다.
명령어를 전송할 때, DRAM 모듈(2)의 셋업과 보유 시간을 준수하기 위해, DRAM 모듈(2)은 역 시스템 클록을 사용해서 바람직하게 동작된다. 따라서, 기록 액세스 동작에 대한 명령어와 데이터는 한 클록 주기의 절반과 입출력 구동기를 위한 신호 전파 시간과 회로 기판의 신호 전파 시간의 합의 지연을 갖는 DRAM 모듈(2)에 의해 받아들여진다.
본 발명은 외부 램 가진 IC를 위한 메모리 제어기, 특히 명령어 스케쥴러를 가진 제어기에 이용 가능하다.

Claims (14)

  1. IC와 외부 DRAM간에 통신하기 위한 방법으로서, 상기 외부 DRAM(2)은 적어도 하나의 메모리 뱅크(21, 22, 23, 24)를 구비하며, 적어도 하나의 채널(6, 7, 8)을 거쳐 상기 IC와 통신하는, IC와 외부 DRAM간에 통신하기 위한 방법에 있어서,
    메모리 뱅크 명령어의 상기 전송은 명령어에 대한 정적인 우선 순위 할당과 채널에 대한 동적인 우선 순위 할당에 기초하여 우선 순위가 결정되는 것을 특징으로 하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  2. 제1항에 있어서, 명령어에 대한 상기 정적인 우선 순위 할당은 최고 우선 순위를 할당받는 '버스트(burst) 종결' 명령어, 두 번째로 높은 우선 순위를 할당받는 '판독' 혹은 '기록' 명령어, 세 번째로 높은 우선 순위를 할당받는 '활성화(activate)' 명령어, 그리고 최저 우선 순위를 할당받는 '프리챠징(precharging)' 명령어를 수반하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  3. 제1항 또는 제2항에 있어서, 채널에 대한 상기 동적인 우선 순위 할당은 명령어가 전송된 후에, 최저 우선 순위를 할당 받는 채널(6, 7, 8)을 수반하는 것을 특징으로 하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  4. 제1항 내지 제3항중의 어느 한 항에 있어서, 상기 동적인 우선 순위 할당은, 만약 상기 채널(6, 7, 8)중의 어느 하나가 현재의 클록 주기에 최고 우선 순위를 갖지 않고, 다른 하나의 채널(6, 7, 8)이 명령어를 전송한다면, 다음 클록 주기에 최고 우선 순위를 할당받는 상기 어느 하나의 채널을 수반하는 것을 특징으로 하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  5. 제1항 내지 제4항중의 어느 한 항에 있어서, 상기 동적인 우선 순위 할당은 상기 채널(6, 7, 8)중의 어느 하나가 명령어를 전송할 때에만, 최고 우선 순위를 상실하는 상기 어느 하나의 채널을 수반할 수 있는 것을 특징으로 하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  6. 제1항 내지 제5항 중의 어느 한 항에 있어서, 상기 채널(6, 7, 8)은 상기 외부 DRAM(2)의 물리적으로 분리된 메모리 영역에 액세스하는 것을 특징으로 하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  7. 제1항 내지 제5항 중의 어느 한 항에 있어서, 상기 채널(6, 7, 8)은 상기 외부 DRAM(2)에서 공동으로 사용된 메모리 영역을 액세스하고, 공동으로 사용된 메모리 영역에 대한 아무런 연속적인 액세스 동작도 발생하지 않을 것에 대한 보증이 주어지는 것을 특징으로 하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  8. 제1항 내지 제7항 중의 어느 한 항에 있어서, 적어도 하나의 채널(6, 7, 8) 이 다양한 메모리 뱅크(21, 22, 23, 24)를 액세스하는 것을 허용하는 네트워크(5)가 제공되는 것을 특징으로 하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  9. 제1항 내지 제8항 중의 어느 한 항에 있어서, 메모리 뱅크(21, 22, 23, 24)로의 두 개의 액세스 동작은 상기 두 뱅크 사이에 수행되는 다른 하나의 메모리 뱅크(21, 22, 23, 24)로의 액세스 동작을 항상 갖는 것을 특징으로 하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  10. 제1항 내지 제9항 중의 어느 한 항에 있어서, 메모리 뱅크(21, 22, 23, 24)로의 두 개의 연속적인 액세스 동작은, 상기 동작이 상기 메모리 뱅크(21, 22, 23, 24)의 동일한 행으로 수행될 때 허용되는 것을 특징으로 하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  11. 제1항 내지 제10항 중의 어느 한 항에 있어서, 상기 메모리 뱅크(21, 22, 23, 24)의 상태는 연관된 상태 머신(machine)(41, 42, 43, 44)에 의해 표현되는 것을 특징으로 하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  12. 제1항 내지 제11항 중의 어느 한 항에 있어서, 복수의 DRAM 모듈이 사용되고, 칩(chip) 인에이블 신호는 상기 요구되는 모듈을 선택하기 위해 전송되는 것을 특징으로 하는, IC와 외부 DRAM간에 통신하기 위한 방법.
  13. 외부 DRAM을 구비한 IC를 위한 메모리 제어기로서, 상기 외부 DRAM은 적어도 하나의 메모리 뱅크를 구비하며, 적어도 하나의 채널을 거쳐 상기 IC와 통신하는, 메모리 제어기에 있어서,
    명령어에 대한 정적인 우선 순위 할당과 채널에 대한 동적인 우선 순위 할당에 기초하여 메모리 뱅크 명령어의 전송에 대한 우선 순위를 결정하는 명령어 스케줄러를 구비하는, 외부 DRAM을 구비한 IC를 위한 메모리 제어기.
  14. 저장 매체로부터 판독 및/또는 저장 매체로 기록하기 위한 장치에 있어서,
    제1항 내지 제12항 중의 어느 하나를 따르는 방법을 사용하고, 제13항에 따른 메모리 제어기(1)를 구비하는 것을 특징으로 하는, 저장 매체로부터 판독 및/또는 저장 매체로 기록하기 위한 장치.
KR1020067010996A 2003-12-09 2004-11-15 메모리 제어기 KR101198981B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
DE10357697.5 2003-12-09
DE10357697 2003-12-09
DE102004009428.4 2004-02-24
DE200410009428 DE102004009428A1 (de) 2004-02-24 2004-02-24 Speicher-Controller
PCT/EP2004/012940 WO2005059764A1 (en) 2003-12-09 2004-11-15 Memory controller

Publications (2)

Publication Number Publication Date
KR20060127400A true KR20060127400A (ko) 2006-12-12
KR101198981B1 KR101198981B1 (ko) 2012-11-07

Family

ID=34701981

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067010996A KR101198981B1 (ko) 2003-12-09 2004-11-15 메모리 제어기

Country Status (7)

Country Link
US (1) US7873797B2 (ko)
EP (1) EP1692617B1 (ko)
JP (1) JP5005350B2 (ko)
KR (1) KR101198981B1 (ko)
CN (1) CN1882928B (ko)
DE (1) DE602004020504D1 (ko)
WO (1) WO2005059764A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100951126B1 (ko) * 2008-02-18 2010-04-07 인하대학교 산학협력단 버스 중재 방법 및 장치
US8205021B2 (en) 2009-12-21 2012-06-19 Electronics And Telecommunications Research Institute Memory system and integrated management method for plurality of DMA channels
US8244987B2 (en) 2008-12-04 2012-08-14 Electronics And Telecommunications Research Institute Memory access device including multiple processors

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
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
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
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
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8060774B2 (en) * 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
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
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
GB2441726B (en) * 2005-06-24 2010-08-11 Metaram Inc An integrated memory core and memory interface circuit
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US8169233B2 (en) 2009-06-09 2012-05-01 Google Inc. Programming of DIMM termination resistance values
US7379316B2 (en) 2005-09-02 2008-05-27 Metaram, Inc. Methods and apparatus of stacking DRAMs
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
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
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
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
JP5233360B2 (ja) * 2008-03-27 2013-07-10 富士通株式会社 メモリ制御装置,メモリ制御装置の制御方法および情報処理装置
CN101587461B (zh) * 2008-05-20 2012-03-07 上海奇码数字信息有限公司 存储器访问调度装置、调度方法与存储器访问控制系统
US20110238870A1 (en) * 2008-12-03 2011-09-29 Rambus Inc. Memory System With Command Filtering
US9134919B2 (en) * 2012-03-29 2015-09-15 Samsung Electronics Co., Ltd. Memory device including priority information and method of operating the same
CN104704569B (zh) * 2012-12-19 2017-11-14 慧与发展有限责任合伙企业 Nvram路径选择
US9811453B1 (en) * 2013-07-31 2017-11-07 Juniper Networks, Inc. Methods and apparatus for a scheduler for memory access
JP6072661B2 (ja) * 2013-09-30 2017-02-01 ルネサスエレクトロニクス株式会社 データ処理装置、マイクロコントローラ、及び半導体装置
US10409357B1 (en) * 2016-09-30 2019-09-10 Cadence Design Systems, Inc. Command-oriented low power control method of high-bandwidth-memory system

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US105901A (en) * 1870-08-02 Improved egg-holder
US138687A (en) * 1873-05-06 Improvement in self-waiting tables
US33493A (en) * 1861-10-15 James reidy
US61459A (en) * 1867-01-22 1867-01-22 peters
US4623986A (en) 1984-02-23 1986-11-18 Texas Instruments Incorporated Memory access controller having cycle number register for storing the number of column address cycles in a multiple column address/single row address memory access cycle
FR2642195B1 (fr) * 1989-01-20 1991-04-26 Centre Nat Rech Scient Dispositif et procede d'arbitrage des requetes et de resolution des conflits lies a l'acces aux memoires a bancs independants pour les machines informatiques
US5418920A (en) * 1992-04-30 1995-05-23 Alcatel Network Systems, Inc. Refresh control method and system including request and refresh counters and priority arbitration circuitry
US5524235A (en) * 1994-10-14 1996-06-04 Compaq Computer Corporation System for arbitrating access to memory with dynamic priority assignment
US5630096A (en) * 1995-05-10 1997-05-13 Microunity Systems Engineering, Inc. Controller for a synchronous DRAM that maximizes throughput by allowing memory requests and commands to be issued out of order
JPH10312333A (ja) 1997-05-13 1998-11-24 Seiko Epson Corp データ転送制御装置
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
GB9719047D0 (en) * 1997-09-08 1997-11-12 Sgs Thomson Microelectronics Arbitration system
FR2778258A1 (fr) * 1998-04-29 1999-11-05 Texas Instruments France Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
JP4234829B2 (ja) * 1998-12-03 2009-03-04 パナソニック株式会社 メモリ制御装置
US6295586B1 (en) * 1998-12-04 2001-09-25 Advanced Micro Devices, Inc. Queue based memory controller
US6046952A (en) * 1998-12-04 2000-04-04 Advanced Micro Devices, Inc. Method and apparatus for optimizing memory performance with opportunistic refreshing
US6360305B1 (en) * 1998-12-04 2002-03-19 Advanced Micro Devices, Inc. Method and apparatus for optimizing memory performance with opportunistic pre-charging
US6415366B1 (en) * 1999-06-02 2002-07-02 Alcatel Canada Inc. Method and apparatus for load distribution across memory banks with constrained access
DE69924475T2 (de) 1999-06-09 2006-02-16 Texas Instruments Inc., Dallas Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge
US6266734B1 (en) * 1999-07-29 2001-07-24 Micron Technology, Inc. Reducing memory latency by not performing bank conflict checks on idle banks
US6983350B1 (en) * 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
JP2001175530A (ja) * 1999-12-22 2001-06-29 Nec Ic Microcomput Syst Ltd メモリアクセス調停装置およびメモリアクセス調停方法
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
JP2001356961A (ja) * 2000-06-13 2001-12-26 Nec Corp 調停装置
KR100716950B1 (ko) * 2000-08-11 2007-05-10 삼성전자주식회사 버스 시스템
US6725347B2 (en) 2001-01-16 2004-04-20 Sun Microsystems, Inc. Spin-wheel SDRAM access scheduler for high performance microprocessors
JP2002288037A (ja) * 2001-03-27 2002-10-04 Sony Corp メモリ制御装置及び方法
JP2002328837A (ja) 2001-04-27 2002-11-15 Fujitsu Ltd メモリ・コントローラ
US7093094B2 (en) 2001-08-09 2006-08-15 Mobilygen Corporation Random access memory controller with out of order execution
US6785793B2 (en) 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
CA2378777A1 (en) * 2002-03-25 2003-09-25 Catena Networks Canada Inc. Shared program memory with fetch and prefetch buffers
GB2396442B (en) * 2002-09-17 2006-03-01 Micron Technology Inc Host memory interface for a parallel processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100951126B1 (ko) * 2008-02-18 2010-04-07 인하대학교 산학협력단 버스 중재 방법 및 장치
US8244987B2 (en) 2008-12-04 2012-08-14 Electronics And Telecommunications Research Institute Memory access device including multiple processors
US8205021B2 (en) 2009-12-21 2012-06-19 Electronics And Telecommunications Research Institute Memory system and integrated management method for plurality of DMA channels

Also Published As

Publication number Publication date
EP1692617B1 (en) 2009-04-08
EP1692617A1 (en) 2006-08-23
CN1882928A (zh) 2006-12-20
US20070091696A1 (en) 2007-04-26
WO2005059764A1 (en) 2005-06-30
JP5005350B2 (ja) 2012-08-22
JP2007514221A (ja) 2007-05-31
US7873797B2 (en) 2011-01-18
CN1882928B (zh) 2011-03-23
DE602004020504D1 (de) 2009-05-20
KR101198981B1 (ko) 2012-11-07

Similar Documents

Publication Publication Date Title
KR101198981B1 (ko) 메모리 제어기
KR100873829B1 (ko) 단방향 데이터 버스를 가진 메모리 시스템 및 방법
US6842821B2 (en) DDR SDRAM memory controller with multiple dependency request architecture and intelligent requestor interface
US9128633B2 (en) Semiconductor memory device and method of operating the semiconductor memory device
US20070230315A1 (en) Laser drivers that provide double buffering of serial transfers
US20110296124A1 (en) Partitioning memory for access by multiple requesters
US20050132146A1 (en) Arbiter capable of improving access efficiency of multi-bank memory device, memory access arbitration system including the same, and arbitration method thereof
JP2004362567A (ja) 共用記憶装置の調停
US6502173B1 (en) System for accessing memory and method therefore
JP3952226B2 (ja) バス通信システム
KR100653569B1 (ko) 이중 버퍼링을 사용하는 데이터 전송 장치, 데이터 전송시스템, 및 데이터 전송 방법
US6374244B1 (en) Data transfer device
EP1513071A2 (en) Memory bandwidth control device
JP2007102755A (ja) 共有メモリ装置のための仲裁スキーム
US8285932B2 (en) Mass storage system with improved usage of buffer capacity
US20090216959A1 (en) Multi Port Memory Controller Queuing
US8301816B2 (en) Memory access controller, system, and method
JP5633562B2 (ja) メモリシステム及びメモリインターフェース装置
US7613866B2 (en) Method for controlling access to a multibank memory
JPH11232205A (ja) データ入出力装置及びデータ入出力方法
JP2011034214A (ja) メモリ制御装置
WO1985003372A1 (en) Data transmitting/receiving system for transmitting data to and from auxiliary memory device
US7623544B2 (en) Data processing system, access controlling method, access controlling apparatus and recording medium
KR20070023598A (ko) 반도체 메모리 시스템 및 반도체 메모리 칩
JPH0764849A (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
FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161017

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee