KR100898710B1 - Dram 기반의 랜덤 액세스 메모리 서브시스템에서 트리메모리 액세스에 대한 퍼포먼스를 향상시키기 위한다중-뱅크 스케쥴링 - Google Patents

Dram 기반의 랜덤 액세스 메모리 서브시스템에서 트리메모리 액세스에 대한 퍼포먼스를 향상시키기 위한다중-뱅크 스케쥴링 Download PDF

Info

Publication number
KR100898710B1
KR100898710B1 KR1020020082081A KR20020082081A KR100898710B1 KR 100898710 B1 KR100898710 B1 KR 100898710B1 KR 1020020082081 A KR1020020082081 A KR 1020020082081A KR 20020082081 A KR20020082081 A KR 20020082081A KR 100898710 B1 KR100898710 B1 KR 100898710B1
Authority
KR
South Korea
Prior art keywords
bank
memory
banks
read
channel
Prior art date
Application number
KR1020020082081A
Other languages
English (en)
Other versions
KR20030053454A (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 에이저 시스템즈 인크
Publication of KR20030053454A publication Critical patent/KR20030053454A/ko
Application granted granted Critical
Publication of KR100898710B1 publication Critical patent/KR100898710B1/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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

메모리 관리 방법 및 시스템은 독립된 채널들로 조직화된 메모리 장치들의 복수의 뱅크들을 포함한다. 여기서, 메모리 장치들의 각각의 뱅크는 동일한 데이터를 포함한다. 트리 메모리 제어기는 채널들 각각 내의 뱅크들 각각에 대한 데이터 판독 및 기록 액세스를 제어한다. 각각의 채널 내의 각각의 뱅크에 대한 뱅크 큐는 뱅크 이용가능성을 추적한다. 트리 메모리 제어기에 판독 또는 기록 요청이 수신되면, 제어기는 채널 내의 각각의 뱅크의 이용가능성을 검사하고, 제1 가용 뱅크로부터의 판독 요청을 실행한다. 기록 요청에 응답하여, 제어기는 일단 모든 판독 요청들을 차단하고, 기록될 데이터가 선택된 메모리 워드 길이에 대해 완료되었는지의 여부를 확인한다. 판독 요청에 대한 각각의 뱅크 큐가 비게되면, 제어기는 완료된 데이터 워드를 모든 뱅크에 동시에 전송하는 버스트 모드 전송을 개시한다.
Figure R1020020082081
메모리 관리, 뱅크, 채널, 버스트 모드 전송, 뱅크 큐.

Description

DRAM 기반의 랜덤 액세스 메모리 서브시스템에서 트리 메모리 액세스에 대한 퍼포먼스를 향상시키기 위한 다중-뱅크 스케쥴링{MULTI-BANK SCHEDULING TO IMPROVE PERFORMANCE ON TREE ACCESSES IN A DRAM BASED RANDOM ACCESS MEMORY SUBSYSTEM}
도 1은 데이터 흐름을 나타내는 블럭 인터페이스 도.
도 2는 트리 엔진 요청을 전송하기 위한 상태도.
도 3은 액세스 요청을 스케쥴링하는 상태도.
본 발명은 대체로 고속 메모리 시스템에 관한 것으로, 보다 구체적으로는, DRAM을 이용하여 SRAM에 근접한 퍼포먼스를 갖는 메모리 시스템에 관한 것이다.
일반적으로 네트워크 프로세서는 비동기 전송 모드(ATM) 네트워크 또는 동기 광 네트워크(SONET)의 물리층 부분과 같은 물리적 전송 매체와, 라우터 또는 다른 유형의 패킷 스위치 내의 스위치 패브릭 사이에서 패킷들의 흐름을 제어한다. 네트워크 프로세서들에서의 저장 기술은 낮은 전력 소모로 큰 저장 용량을 제공하기 위해 DRAM(동적 랜덤 액세스 메모리)을 이용한다. 그러나, 프로세서와 메모리 버스의 속도가 지속적으로 증가함에 따라, 전체 시스템 퍼포먼스 요구를 만족시키기 위해 메모리 액세스 속도 요건도 역시 증가하고 있다. SRAM(Synchronous random access memory; 동기 랜덤 액세스 메모리)의 속도는 이런 속도를 수용할 수 있다. 그러나, SRAM 메모리 용량은 전형적으로 DRAM 메모리보다 한자리수 작다. 또한 SRAM은 DRAM보다 전력 소모량이 두자리수 크다. 따라서, DRAM을 이용하여 SRAM 퍼포먼스를 달성하는 것이 바람직하다.
네트워크 프로세서와 관련된 DRAM들은 전형적으로 복수의 메모리 뱅크 형태로 배열되어 있다. 뱅크들중 주어진 한 뱅크 내의 어드레스 또는 어드레스들로의 연속된 판독이나 기록 액세스는, 필요한 액세스 예비충전 프로세스(access pre-charge process)를 완료하기 위해 랜덤 싸이클 타임 Trc만큼의 대기를 요구할 것이다. 그러나, 상이한 뱅크들 내에서는 동일한 어드레스로의 연속된 액세스조차 이 Trc 대기 시간을 경험하지 않는다. 이 대기 시간은 본 명세서에서 뱅크 충돌 페널티(bank conflict penalty)라 불릴 것이다. 동기 랜덤 액세스 메모리(SRAM)은 대체로 뱅크 충돌 페널티를 피한다. 즉, 메모리 내의 임의의 어드레스는, DRAM과 관련된 Trc 대기시간을 초래하지 않고 고정된 시간에 액세스될 수 있다.
본 분야에 알려진 다수의 DRAM들은 상술한 Trc 대기 시간을 감소시키도록 특별히 구성되어 있다. 예를 들어, 소위 패스트 싸이클 DRAM(FCDRAM)은 최소한의 Trc를 가지도록 설계되어 있다. FCDRAM의 보다 특정적인 예로는, 도시바사로부터 시판되는 부품 번호 TC59LM814CFT-50이 있다. 이러한 특정한 유형의 FCDRAM에서, 랜덤 싸이클 타임 Trc는 5T로 제한된다. 여기서 T는 메모리 클럭 주기를 나타낸 다. 판독이던 기록이던 메모리 액세스는 2개 클럭 주기를 요구하며, 최대 데이터 처리량은 소위 "4-버스트" 모드를 이용하여 달성된다. 예를 들어, 200 MHz 메모리 클럭과, 각각의 뱅크가 4M 메모리 워드(워드당 16비트)들을 포함하는 4개 뱅크들로 구성된 FCDRAM을 이용할 때, 메모리 클럭 주기 T는 5 나노초이고 Trc는 25 나노초이며, 4-버스트 모드를 이용한 최대 데이터 처리량은 약 6.4 Gbits/sec (Gbps)이다. 그러나, 만일 연속된 메모리 액세스가 4개 뱅크들중 동일한 뱅크로 간다면, Trc 대기 시간의 결과, 데이터 처리량은 약 2.5 Gbps로 감소한다.
전술한 바로부터 명백한 바와 같이, 네트워크 프로세서나 다른 처리장치와 연계하여 사용할 수 있고, 퍼포먼스의 관점에서 SRAM의 이점을 제공하면서 DRAM의 저장 용량과 저전력 소모를 제공할 수 있는, DRAM 계열의 개선된 메모리 아키텍쳐를 제공할 필요가 있다.
본 발명의 여러 특징들 및 이점들 중 하나로서, DRAM 메모리를 이용하여 SRAM에 근접하는 퍼포먼스를 달성하는 방법이 제공된다. 실시예에서, 본 발명은 최적의 성능을 위해 FCRAM(Fast Cycle DRAM)을 이용한다. 그러나, 본 발명은 DRAM 계열의 랜덤 액세스 메모리 서브시스템에서의 트리 액세스에 대한 시간 요건을 감소시키기 위한 다중-뱅크 스케쥴링의 방법을 통해, 이와 같은 고속 메모리 퍼포먼스를 제공한다.
한 실시예에서, 10 Gbps 처리량을 달성하기 위해 적어도 2개의 독립된 FCRAM 채널들이 독립된 어드레스-데이터-제어 라인들과 함께 사용된다. 제1 채널 0 메모리 내의 전체 데이터가 제2 채널 채널 1 메모리에 복사된다. 메모리 제어기는 랜덤 어드레스 A0, A1, A2, A3, A4등에 대한 액세스 판독 요청의 스트림을 수신하고, 2개의 채널들에 대한 요청 스트림을 스케쥴링하여 부하를 밸런싱하고 뱅크 충돌을 최소화한다. 제어기는 복수의 큐를 유지하는데, 각각의 채널 내의 FCRAM 메모리의 뱅크마다 하나씩 있다. 트리 엔진으로부터의 판독 어드레스는 뱅크 어드레스를 추출하기 위해 디코딩되고, 요청은 적절한 뱅크 큐 내에 저장된다. 또한, 제어기는 채널마다 뱅크당 하나의 뱅크 충돌 카운터를 유지하며, 이것은 판독 요청이 적절한 뱅크로 전송된 후에 Trc 값과 함께 로드된다. 모든 뱅크 충돌 카운터들은 매 클럭마다 감소되고(decrement), 뱅크 충돌 카운터가 0일 때, 대응하는 뱅크는 가용상태가 된다. 또한 제어기는 마지막으로 서비스된 큐에 대한 포인터를 유지한다.
매 클럭마다 제어기는, 마지막으로 서비스된 큐에서부터 시작하여, 라운드-로빈 방식으로, 즉, 작업-보존 라운드-로빈 알고리즘을 이용하여, 다음 가용 뱅크 큐로부터의 요청을 채널 0 또는 채널 1중 이용가능한 어느 하나에 디스패치한다. 뱅크 큐는 비어있지않다면 이용가능하며, 대응하는 뱅크-충돌-카운터는 0이다. 요청이 전송될 수 있다면, 채널은 이용가능하며, 액세스된 뱅크는 비지(busy) 상태가 아니다. 뱅크 큐들중 어떤 것도 이용가능하지 않다면, 어떠한 요청도 FCRAM에 전송되지 않는다.
신규하다고 여기는 본 발명의 특징들은 첨부된 특허청구범위에 개시되어 있다. 그러나, 본 발명 그 자체, 즉 동작의 방법 및 구조는 이하의 상세한 설명과 첨부된 도면을 참조함으로서 가장 잘 이해될 것이다.
예상되는 트리 메모리 사용량이 95% 이상의 판독과 5% 이하의 기록을 갖는 그러한 DRAM 메모리를 이용하여 SRAM에 근접한 퍼포먼스를 제공하는 방법들이 공개되어 있다. 이들 방법들이 임의의 DRAM 메모리에 적용가능하지만, 최적의 성능은 Toshiba TC59LM814/06CFT와 같은 듀얼-데이터-레이트 FCRAM(패스트 싸이클 DRAM)을 이용하여 얻어진다고 믿어진다. 이 특정 FCRAM에서는, 5ns의 작은 랜덤 싸이클 타임(Trc)이 있다. 이들 장치들에서의 메모리 액세스(판독 또는 기록)는 2개 클럭 주기를 요구한다. 이 장치에 대한 최대 데이터 처리량은 4-버스트 모드를 이용하여 달성된다. 예로서, 4-버스트 모드의 200MHz 4 뱅크 ×4M ×16 비트 FCRAM은 약 6.4 Gbps 정도의 최대 데이터 처리량을 달성한다. 버스트 모드 동작의 세부사항은 장치 제조자에 의해 제공되는 사양 설명서에 나와 있다.
본 발명에서 구상하는 트리 메모리 구조에서, 상술한 FCRAM과 같은 DRAM은 뱅크들로 조직화된다. 이들 뱅크들 내의 어드레스들에 대한 연속된 메모리 액세스는, 랜덤 싸이크 타임의 만기를 기다릴 필요가 있다. 랜덤 싸이클 타임(Trc)은 예비충전이 완료되는데 필요한 시간이다. 즉, 뱅크에 대한 각각의 판독 및 기록 후에, 뱅크는 리프레시되어야 한다. 그러나, 상이한 뱅크들 내의 어드레스들에 대한 연속된 메모리 액세스는 랜덤 액세스 싸이클에 의해 제약받지 않는다.
뱅크 충돌 페널티없이 FCRAM들을 사용하여 상당한 랜덤 액세스 능력을 달성하는 것은, 상이한 뱅크들에 동일한 데이터 복사본을 저장하고 상이한 뱅크들에 연속된 메모리 액세스 요청들을 전송함으로써 이루어진다. 필요한 데이터 복사본의 최소 개수는, 이하의 등식에 도시된 바와 같이, 랜덤 싸이클 타임-대-랜덤 뱅크 액세스 지연의 비율에 의해 결정된다.
(Trc /Trbd) ≥25 ns / 10 ns = 3 banks
여기서, Trc = 5T
Trbd = 10 ns이고,
T = 메모리 클럭 주기.
10 Gbps 판독 처리량을 달성하기 위해 2개의 독립된 FCRAM 채널들이 이용된다. 여기서, 각각의 채널은 그 고유의 어드레스-데이터-제어 라인들을 가진다. 총 6개의 메모리 뱅크들이 요구된다: 채널 0에서 3개 뱅크 및 채널 1에서 3개 뱅크. 6개 뱅크 모두 동일한 데이터를 포함한다. 그러나, 10 Gbps 이상의 처리량은 다른 채널과 뱅크 조합을 통해 달성될 수 있다. 설명을 위해 2개 채널의 이용이 기술될 것이나 본 발명을 이와 같은 실시예로 제한하기 위한 것은 아니다.
도 1에 표시된 바와 같이, 트리 엔진(103)은 액세스 판독 요청(TRE 요청 FIFO(104))의 스트림을 메모리 제어기(106)에 전송한다. 200 MHz 코어 클럭 속도, 즉, 5.0 나노초 마다 하나의 요청이 트리 엔진(103)에 의해 발생될 수 있다. 채널 0 FCRAM(107)과 채널 1 FCRAM(108)은 독립적이다. 따라서, 트리 메모리 제어기(106)는 채널 0 FCRAM(107)과 채널 1 FCRAM(108)을 사용하여 평균 5 나노초당 하나의 메모리 판독을 실행할 수 있다. 듀얼-클럭 동기는, TRE 요청 FIFO(104)가 판독 요청을 트리 메모리 제어기(106)와 TRE 요청 FIFO(105)에 전송하여 데이터를 트리 엔진(103)에 되돌리는데 이용된다.
도 2 및 3은 이 방법을 위해 이용되는 동시 상태 머신들(concurrent state machines)이다. 도 2의 상태도에서, 트리 엔진 요청은 적절한 뱅크 큐(BQi)로 보내진다. 제2 상태는 2 채널들중 한 채널 사이에 채널 큐(QC)를 할당하고 뱅크 인덱스를 증가시킨다.
다른 채널 조합들도 가능하지만, 이 실시예는 하기와 같은 채널-뱅크 조합을 이용한다:
CH0 - B0
CH1 - B0
CH0 - B1
CH1 - B1
CH0 - B2
Ch1 - B2
리프레시 인터럽트가 활성인지를 판별하는 검사는 액세스 요청을 전송하기 이전에 수행되어야 한다. 만일 리프레시 인터럽트가 활성이면, 리프레시 시퀀스가 양쪽 채널에 동시에 전송된다. 리프레시 인터럽트가 활성인동안, 액세스 요청은 차단된다.
효율을 최적화하기 위해, 트리 메모리 제어기(106)로의 기록이 버스트로 발생한다. 호스트 인터페이스(101)은 기록 동작을 수행하기 이전에 HOST 요청 FIFO(101) 내에 큐잉되는 64-비트 워드들을 전송한다. 큐잉되는 데이량은 호스트 프로세서에 의존한다. 연속된 32-비트 워드들이 64-비트 데이터 워드를 형성하는 32×32 비트 FIFO가 구현될 수 있다.
기록 실행을 수행하기 위해 모든 판독 액세스 요청들이 차단된다. 그 다음, 연속된 32-비트 워드들이 결합되어 64-비트 워드를 형성한다. 64-비트 워드가 형성될 수 있는지를 판별하기 위한 검사가 수행된다. 만일 이 때 이 워드가 생성될 수 없다면, 호스트 요청 FIFO는 차단되고 트리 엔진 판독 요청은 계속된다. 만일 이 때 64-비트 워드가 형성될 수 있다면, 데이터는 채널 0 및 채널 1에 동시에 기록되고 트리 메모리 제어기(106)으로의 기록 실행이 완료된다.
도 3에 표시된 바와 같이, 갱신 시퀀스는 모든 뱅크들이 비활성으로 될때까지 대기한다. 이것은 5 클럭 싸이클 정도일 것이다. 이하의 시퀀스는 FIFO 내의 모든 데이터 워드들이 메모리에 기록될때까지 반복된다.
1. 리프레시 인터럽트가 활성이면, 리프레시 시퀀스를 완료,
2. 어드레스를 전송하고 64-비트 데이터를 CH0-B0 및 CH1-B0에 기록한다.
3. 어드레스를 전송하고 64-비트 데이터를 CH0-B1 및 CH1-B1에 기록한다.
4. 어드레스를 전송하고 64-비트 데이터를 CH0-B2 및 CH1-B2에 기록한다.
본 발명은 DRAM 계열의 랜덤 액세스 메모리 서브시스템에서의 트리 액세스에 대한 퍼포먼스를 개선하기 위해 다중-뱅크 스케쥴링을 이용한다. 독립된 채널 0 FCRAM(107)과 채널 1 FCRAM(108) 양쪽 모두가 이용된다. 채널 1 메모리는 채널 0의 전체 메모리의 복사본이다.
도 1의 트리 메모리 제어기(106)는 랜덤 어드레스 A0, A1, A2, A3, A4등에 대한 액세스 판독 요청 스트림을 수신한다. 또한, 2개의 채널(즉, 채널 0 FCRAM (107) 및 채널 1 FCRAM (108))에 대한 요청 스트림을 스케쥴링하여 부하를 밸런싱하고 뱅크 충돌을 최소화한다. 트리 메모리 제어기(106)는 각각의 FCRAM 뱅크에 대한 큐를 유지한다. 트리 엔진(103)은 판독 어드레스를 디코딩하고 적절한 뱅크 큐 내에 요청을 저장한다.
도 3에 표시된 바와 같이 각각의 채널에 대해 하나의 뱅크 충돌 카운터가 유지된다. 판독 요청이 적절한 뱅크에 전송된 후에, 뱅크 충돌 카운터는, 다운카운팅용으로 사용되고 있는 카운터의 유형 및 제로 검출의 래치 여부에 의존하는 값으로 리셋된다. 이 값은 Trc 값이거나 Trc +/- 1이다. 모든 뱅크 충돌 카운터들은 각각의 클럭 싸이클마다 감소된다. 뱅크 충돌 카운터가 0일 때, 대응하는 뱅크는 이용가능하다. 트리 메모리 제어기(106)는, 라운드 로빈 스케쥴링 알고리즘을 지원하면서 마지막으로 서비스된 큐에 대한 포인터를 유지한다.
각각의 클럭 싸이클에 대해, 트리 메모리 제어기(106)는 가용 채널(즉, 채널 0 FCRAM(107) 및 채널 1 FCRAM(108))에 마지막으로 서비스된 큐로부터 시작하여 그 다음의 가용 뱅크 큐로부터의 요청을 디스패치한다. 뱅크 큐는, 비어있지 않고 뱅크 카운터가 0이라면 이용가능하다. 요청이 전송될 수 있고 액세스된 뱅크가 비지(busy)가 아니라면 채널은 이용가능하다. 어떠한 뱅크 큐도 이용가능하지 않다면, FCRAM(107 및 108)에는 어떠한 요청도 전송되지 않는다. 트리 메모리 제어기(106)는 리프레시 인터럽트를 검사한다. 만일 리프레시 인터럽트가 활성이면, 리프레시 요청이 서비스된다. 서비된 후에, 판독 요청이 전송될 수 있다.
효율을 최적화하기 위해 트리 메모리 제어기(106)로의 기록이 버스트로 발생 한다. 호스트 인터페이스(101)은 기록 동작을 수행하기 이전에 HOST 요청 FIFO(101) 내에 큐잉되는 64-비트 워드들을 전송한다. 큐잉되는 데이터량은 호스트 프로세서에 의존한다. 연속된 32-비트 워드들이 64-비트 데이터 워드를 형성하는 32×32 비트 FIFO가 구현될 수 있다. 호스트 판독 데이터 FIFO(102)는 데이터를 호스트 인터페이스(100)으로 리턴한다.
기록 실행을 수행하기 위해 모든 판독 액세스 요청이 차단된다. 그 다음, 연속된 32-비트 워드들이 결합되어 64-비트 워드를 형성한다. 64-비트 워드가 형성될 수 있는지를 판별하기 위해 검사가 수행된다. 워드가 형성될 수 없다면, 호스트 요청 FIFO는 차단되고 트리 엔진 판독 요청은 호스트가 나머지 워드들을 전송할때까지 계속된다. 갱신 및 판독 액세스는 인터리빙된다. 도 3에 도시된 바와 같이, 상태 머신은 BQ로부터 FCRAM 채널 0 또는 채널 1로 요청들을 스케쥴링한다. 갱신 시퀀스는 하기와 같다:
1. 만일 리프레시 인터럽트가 활성이면, 리프레시 시퀀스를 완료.
2. 지정된 뱅크가 채널 0 또는 채널 1에서 비지이면, 액세스 보류 플래그를 세트하여, 두 채널들에 대해 지정된 뱅크로 판독 액세스가 디스패치되는 것을 방지한다(다른 뱅크들은 계속해서 액세스될 수 있다).
3. 뱅크 충돌 카운터가 0에 도달할때까지 대기하고 두 채널에 대한 기록을 완료한다.
본 발명의 몇가지 양호한 특징만이 설명을 위해 도시되었지만, 다양한 수정과 변경이 있을 수 있다는 것을 당업자는 이해할 것이다. 따라서, 본원의 특허청 구범위는 본 발명의 진정한 정신에 드는 이와 같은 모든 수정과 변경을 포함하도록 의도된 것이다.
네트워크 프로세서나 다른 처리장치와 연계하여 사용할 수 있고, 퍼포먼스의 관점에서 SRAM의 이점을 제공하면서 DRAM의 저장 용량과 저전력 소모를 제공할 수 있는, DRAM 계열의 개선된 메모리 아키텍쳐를 제공한다.

Claims (13)

  1. 메모리 관리 방법에 있어서,
    독립된 채널들로 조직화된 메모리 장치들의 복수 뱅크들을 제공하는 단계로서, 상기 메모리 장치들의 뱅크 각각은 복제 데이터(duplicate data)를 포함하는, 상기 뱅크 제공 단계와;
    각 채널 내의 뱅크들 각각에 대한 데이터 판독 및 기록 액세스들을 제어하는 트리 메모리 제어기를 제공하는 단계와;
    뱅크 가용성(bank availability)을 명시하기 위해 각각의 채널 내의 각각의 뱅크에 대한 뱅크 큐를 설정하는 단계와;
    상기 트리 메모리 제어기에 판독 또는 기록 요청들을 전송하는 단계와;
    채널 내의 각 뱅크의 가용성을 상기 트리 메모리 제어기에서 검사하는 단계와;
    제1 가용 뱅크를 식별하는 단계와;
    상기 제1 가용 뱅크로부터의 판독 요청을 실행하는 단계를 포함하는, 메모리관리 방법.
  2. 제1항에 있어서,
    상기 기록 액세스를 제어하는 단계는,
    모든 판독 요청들을 차단하는 단계와;
    선택된 메모리 워드 길이에 대해 기록될 데이터가 완료되었는지의 여부를 확인하는 단계와;
    각각의 뱅크 큐가 모든 뱅크들에 대한 뱅크 가용성을 명시할때까지 대기하는 단계와;
    상기 완료된 데이터를 모든 뱅크들에 동시에 전송하는 버스트 모드 전송을 개시하는 단계를 포함하는, 메모리 관리 방법.
  3. 제1항에 있어서,
    상기 메모리 장치들은 동적 랜덤 액세스 메모리(DRAM) 장치들을 포함하는, 메모리 관리 방법.
  4. 제1항에 있어서,
    상기 메모리 장치들은 패스트 싸이클 랜덤 액세스 메모리(FCRAM) 장치들을 포함하는, 메모리 관리 방법.
  5. 제1항에 있어서,
    상기 메모리 장치들의 뱅크들은 2개의 독립된 채널들로 조직화되는, 메모리 관리 방법.
  6. 시스템에 있어서,
    독립된 채널들로 조직화된 메모리 장치들의 복수 뱅크들로서, 상기 메모리 장치들의 뱅크 각각은 복제 데이터를 포함하는, 상기 복수의 뱅크들과;
    상기 채널들 각각 내의 뱅크들 각각에 대한 데이터 판독 및 기록 액세스들을 제어하는 트리 메모리 제어기와;
    뱅크 가용성을 명시하기 위한 각 채널 내의 각 뱅크에 대한 뱅크 큐와;
    판독 또는 기록 요청들을 상기 트리 메모리 제어기에 전송하기 위한 수단을 포함하며, 상기 제어기는 데이터 판독에 대한 뱅크의 가용성을 판별하고 제1 가용 뱅크로부터의 판독 요청을 실행하는, 시스템.
  7. 제6항에 있어서,
    상기 제어기는 기록 요청의 처리 동안에 모든 판독 요청을 보류하는, 시스템.
  8. 제7항에 있어서,
    상기 제어기는 모든 메모리 뱅크들에 동시에 기록하는, 시스템.
  9. 제8항에 있어서,
    모든 메모리 뱅크들은 동일한 데이터(identical data)를 포함하는, 시스템.
  10. 제6항에 있어서,
    상기 메모리 뱅크들은 동적 랜덤 액세스 메모리 장치들을 포함하는, 시스템.
  11. 제6항에 있어서,
    상기 메모리 뱅크들은 패스트 싸이클 랜덤 액세스 메모리 장치들을 포함하는, 시스템,
  12. 제6항에 있어서,
    상기 메모리 장치들의 뱅크들은 2개의 독립된 채널들로 배열되는, 시스템.
  13. 제6항에 있어서,
    메모리 뱅크들의 최소 개수는, 랜덤 싸이클 시간 대 랜덤 뱅크 액세스 지연의 비율에 의해 결정되는, 시스템.
KR1020020082081A 2001-12-21 2002-12-21 Dram 기반의 랜덤 액세스 메모리 서브시스템에서 트리메모리 액세스에 대한 퍼포먼스를 향상시키기 위한다중-뱅크 스케쥴링 KR100898710B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/026,352 US6839797B2 (en) 2001-12-21 2001-12-21 Multi-bank scheduling to improve performance on tree accesses in a DRAM based random access memory subsystem
US10/026,352 2001-12-21

Publications (2)

Publication Number Publication Date
KR20030053454A KR20030053454A (ko) 2003-06-28
KR100898710B1 true KR100898710B1 (ko) 2009-05-21

Family

ID=21831321

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020082081A KR100898710B1 (ko) 2001-12-21 2002-12-21 Dram 기반의 랜덤 액세스 메모리 서브시스템에서 트리메모리 액세스에 대한 퍼포먼스를 향상시키기 위한다중-뱅크 스케쥴링

Country Status (5)

Country Link
US (1) US6839797B2 (ko)
JP (1) JP4299536B2 (ko)
KR (1) KR100898710B1 (ko)
GB (1) GB2388216B (ko)
TW (1) TW200301423A (ko)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7236490B2 (en) 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7689649B2 (en) * 2002-05-31 2010-03-30 Aol Inc. Rendering destination instant messaging personalization items before communicating with destination
US7649885B1 (en) 2002-05-06 2010-01-19 Foundry Networks, Inc. Network routing system for enhanced efficiency and monitoring capability
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US7266117B1 (en) 2002-05-06 2007-09-04 Foundry Networks, Inc. System architecture for very fast ethernet blade
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US7636755B2 (en) 2002-11-21 2009-12-22 Aol Llc Multiple avatar personalities
US8037150B2 (en) 2002-11-21 2011-10-11 Aol Inc. System and methods for providing multiple personas in a communications environment
US7908554B1 (en) * 2003-03-03 2011-03-15 Aol Inc. Modifying avatar behavior based on user action or mood
US7913176B1 (en) * 2003-03-03 2011-03-22 Aol Inc. Applying access controls to communications with avatars
US20040179039A1 (en) 2003-03-03 2004-09-16 Blattner Patrick D. Using avatars to communicate
US7194568B2 (en) * 2003-03-21 2007-03-20 Cisco Technology, Inc. System and method for dynamic mirror-bank addressing
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
US7454555B2 (en) * 2003-06-12 2008-11-18 Rambus Inc. Apparatus and method including a memory device having multiple sets of memory banks with duplicated data emulating a fast access time, fixed latency memory device
US20050138276A1 (en) * 2003-12-17 2005-06-23 Intel Corporation Methods and apparatus for high bandwidth random access using dynamic random access memory
US7159084B1 (en) * 2003-12-30 2007-01-02 Altera Corporation Memory controller
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
US9652809B1 (en) 2004-12-21 2017-05-16 Aol Inc. Using user profile information to determine an avatar and/or avatar characteristics
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
US8572349B2 (en) * 2006-01-31 2013-10-29 Agere Systems Llc Processor with programmable configuration of logical-to-physical address translation on a per-client basis
US7461216B2 (en) * 2006-02-23 2008-12-02 Hewlett-Packard Development Company, L.P. Memory controller
US8453147B2 (en) * 2006-06-05 2013-05-28 Cisco Technology, Inc. Techniques for reducing thread overhead for systems with multiple multi-threaded processors
US8041929B2 (en) 2006-06-16 2011-10-18 Cisco Technology, Inc. Techniques for hardware-assisted multi-threaded processing
US7903654B2 (en) 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
US8010966B2 (en) * 2006-09-27 2011-08-30 Cisco Technology, Inc. Multi-threaded processing using path locks
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US7978614B2 (en) 2007-01-11 2011-07-12 Foundry Network, LLC Techniques for detecting non-receipt of fault detection protocol packets
US7996597B1 (en) * 2007-04-16 2011-08-09 Juniper Networks, Inc. Mapping address bits to improve spread of banks
US8037399B2 (en) 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US8271859B2 (en) 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
US8001338B2 (en) * 2007-08-21 2011-08-16 Microsoft Corporation Multi-level DRAM controller to manage access to DRAM
US8149839B1 (en) 2007-09-26 2012-04-03 Foundry Networks, Llc Selection of trunk ports and paths using rotation
US8180975B2 (en) * 2008-02-26 2012-05-15 Microsoft Corporation Controlling interference in shared memory systems using parallelism-aware batch scheduling
US8505013B2 (en) * 2010-03-12 2013-08-06 Lsi Corporation Reducing data read latency in a network communications processor architecture
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US9444757B2 (en) 2009-04-27 2016-09-13 Intel Corporation Dynamic configuration of processing modules in a network communications processor architecture
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
US20120059983A1 (en) * 2010-09-03 2012-03-08 David Wilkins Nellans Predictor-based management of dram row-buffers
US8514651B2 (en) 2010-11-22 2013-08-20 Marvell World Trade Ltd. Sharing access to a memory among clients
JP2012221038A (ja) * 2011-04-05 2012-11-12 Toshiba Corp メモリシステム
US9195622B1 (en) 2012-07-11 2015-11-24 Marvell World Trade Ltd. Multi-port memory that supports multiple simultaneous write operations
US9766978B2 (en) 2014-12-09 2017-09-19 Marvell Israel (M.I.S.L) Ltd. System and method for performing simultaneous read and write operations in a memory
US11099746B2 (en) 2015-04-29 2021-08-24 Marvell Israel (M.I.S.L) Ltd. Multi-bank memory with one read port and one or more write ports per cycle
US11403173B2 (en) 2015-04-30 2022-08-02 Marvell Israel (M.I.S.L) Ltd. Multiple read and write port memory
CN107787485B (zh) 2015-04-30 2021-04-09 马维尔以色列(M.I.S.L.)有限公司 多读取和写入端口存储器
US10089018B2 (en) 2015-05-07 2018-10-02 Marvell Israel (M.I.S.L) Ltd. Multi-bank memory with multiple read ports and multiple write ports per cycle
US10254967B2 (en) 2016-01-13 2019-04-09 Sandisk Technologies Llc Data path control for non-volatile memory
US10528286B2 (en) 2016-11-11 2020-01-07 Sandisk Technologies Llc Interface for non-volatile memory
US10528267B2 (en) 2016-11-11 2020-01-07 Sandisk Technologies Llc Command queue for storage operations
US10528255B2 (en) 2016-11-11 2020-01-07 Sandisk Technologies Llc Interface for non-volatile memory
US10114589B2 (en) * 2016-11-16 2018-10-30 Sandisk Technologies Llc Command control for multi-core non-volatile memory
US11422707B2 (en) 2017-12-21 2022-08-23 Advanced Micro Devices, Inc. Scheduling memory requests for a ganged memory device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS618785A (ja) 1984-06-21 1986-01-16 Fujitsu Ltd 記憶装置アクセス制御方式
KR0154717B1 (ko) * 1995-12-07 1998-11-16 김광호 상태 천이 머신을 가지는 시스템의 메모리 관리 구조 및 그 처리방법
US6167486A (en) 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US6260081B1 (en) 1998-11-24 2001-07-10 Advanced Micro Devices, Inc. Direct memory access engine for supporting multiple virtual direct memory access channels

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5122984A (en) 1987-01-07 1992-06-16 Bernard Strehler Parallel associative memory system
US6360285B1 (en) * 1994-06-30 2002-03-19 Compaq Computer Corporation Apparatus for determining memory bank availability in a computer system
GB2346233B (en) 1996-03-01 2000-09-20 Hewlett Packard Co Address aggregation system and method for increasing throughput of addresses to a data cache from a processor
US5953318A (en) * 1996-12-04 1999-09-14 Alcatel Usa Sourcing, L.P. Distributed telecommunications switching system and method
US6006307A (en) * 1997-11-13 1999-12-21 Advanced Micro Devices, Inc. Computer system employing a mirrored memory system for providing prefetch bandwidth
US6049541A (en) * 1997-12-04 2000-04-11 Alcatel Usa Sourcing, L.P. Distributed telecommunications switching system and method
US6137807A (en) * 1997-12-05 2000-10-24 Whittaker Corporation Dual bank queue memory and queue control system
US6058451A (en) * 1997-12-22 2000-05-02 Emc Corporation Method and apparatus for refreshing a non-clocked memory
US5959929A (en) * 1997-12-29 1999-09-28 Micron Technology, Inc. Method for writing to multiple banks of a memory device
JP2001167005A (ja) * 1999-12-08 2001-06-22 Nec Corp メモリ診断方法とメモリ診断回路および半導体記憶装置
JP2001266570A (ja) * 2000-03-24 2001-09-28 Toshiba Corp 同期型半導体記憶装置
US6789155B2 (en) * 2001-08-29 2004-09-07 Micron Technology, Inc. System and method for controlling multi-bank embedded DRAM
WO2003042836A1 (fr) 2001-11-16 2003-05-22 Fujitsu Limited Ordinateur et procede de commande de memoire
US6944731B2 (en) * 2001-12-19 2005-09-13 Agere Systems Inc. Dynamic random access memory system with bank conflict avoidance feature

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS618785A (ja) 1984-06-21 1986-01-16 Fujitsu Ltd 記憶装置アクセス制御方式
KR0154717B1 (ko) * 1995-12-07 1998-11-16 김광호 상태 천이 머신을 가지는 시스템의 메모리 관리 구조 및 그 처리방법
US6167486A (en) 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US6260081B1 (en) 1998-11-24 2001-07-10 Advanced Micro Devices, Inc. Direct memory access engine for supporting multiple virtual direct memory access channels

Also Published As

Publication number Publication date
JP4299536B2 (ja) 2009-07-22
US6839797B2 (en) 2005-01-04
GB2388216A (en) 2003-11-05
JP2003208354A (ja) 2003-07-25
GB2388216B (en) 2005-04-20
GB0228201D0 (en) 2003-01-08
US20030120861A1 (en) 2003-06-26
KR20030053454A (ko) 2003-06-28
TW200301423A (en) 2003-07-01

Similar Documents

Publication Publication Date Title
KR100898710B1 (ko) Dram 기반의 랜덤 액세스 메모리 서브시스템에서 트리메모리 액세스에 대한 퍼포먼스를 향상시키기 위한다중-뱅크 스케쥴링
EP1345125B1 (en) Dynamic random access memory system with bank conflict avoidance feature
KR100679362B1 (ko) 메모리 요청 재정렬에 의해 버스 이용도를 향상시키는메모리 제어기
KR100667384B1 (ko) 공유 리소스(shared resource)로 접근의 우선순위화 제어기 장치 및 그 방법
EP1540485B1 (en) Out of order dram sequencer
KR100610730B1 (ko) 메모리 액세스 대기시간을 감소시키기 위한 메모리 액세스스케쥴링 방법 및 장치
US7913034B2 (en) DRAM access command queuing
JP3598321B2 (ja) 異なる周波数で動作するバス間でやりとりされるバッファリングデータ
KR20010081016A (ko) 다른 시간에서의 메모리 접근 실행 시 데이터 버스 상의데이터 충돌 감지 장치 및 방법
KR20010086035A (ko) 메모리 장치의 물리적 페이지 상태를 탐색하기 위해페이지 태그 레지스터를 이용하는 방법
US7436728B2 (en) Fast random access DRAM management method including a method of comparing the address and suspending and storing requests
TW201234188A (en) Memory access device for memory sharing among multiple processors and access method for the same
US20230102680A1 (en) Stacked command queue
KR100710531B1 (ko) 범용 리소스 접근 제어기
KR100676982B1 (ko) 데이터 처리 장치 및 방법과 컴퓨터 판독 가능 저장 매체
JPH11345165A (ja) アクセス待ち時間を減少するため優先度とバースト制御を使用するトラフィック・コントローラ
EP1704487A2 (en) Dmac issue mechanism via streaming id method
EP0921468B1 (en) Memory control using memory state information for reducing access latency
EP0940757A2 (en) Traffic controller using priority and burst control for reducing access latency
JP2000315172A (ja) アクセス待ち時間を減少するためにメモリ状態情報を使用するメモリ制御
JPH0376505B2 (ko)
JPH07175721A (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: 20130419

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140421

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee