KR100898710B1 - Dram 기반의 랜덤 액세스 메모리 서브시스템에서 트리메모리 액세스에 대한 퍼포먼스를 향상시키기 위한다중-뱅크 스케쥴링 - Google Patents
Dram 기반의 랜덤 액세스 메모리 서브시스템에서 트리메모리 액세스에 대한 퍼포먼스를 향상시키기 위한다중-뱅크 스케쥴링 Download PDFInfo
- 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
Links
Images
Classifications
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1647—Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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 가용 뱅크로부터의 판독 요청을 실행한다. 기록 요청에 응답하여, 제어기는 일단 모든 판독 요청들을 차단하고, 기록될 데이터가 선택된 메모리 워드 길이에 대해 완료되었는지의 여부를 확인한다. 판독 요청에 대한 각각의 뱅크 큐가 비게되면, 제어기는 완료된 데이터 워드를 모든 뱅크에 동시에 전송하는 버스트 모드 전송을 개시한다.
메모리 관리, 뱅크, 채널, 버스트 모드 전송, 뱅크 큐.
Description
도 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)
- 메모리 관리 방법에 있어서,독립된 채널들로 조직화된 메모리 장치들의 복수 뱅크들을 제공하는 단계로서, 상기 메모리 장치들의 뱅크 각각은 복제 데이터(duplicate data)를 포함하는, 상기 뱅크 제공 단계와;각 채널 내의 뱅크들 각각에 대한 데이터 판독 및 기록 액세스들을 제어하는 트리 메모리 제어기를 제공하는 단계와;뱅크 가용성(bank availability)을 명시하기 위해 각각의 채널 내의 각각의 뱅크에 대한 뱅크 큐를 설정하는 단계와;상기 트리 메모리 제어기에 판독 또는 기록 요청들을 전송하는 단계와;채널 내의 각 뱅크의 가용성을 상기 트리 메모리 제어기에서 검사하는 단계와;제1 가용 뱅크를 식별하는 단계와;상기 제1 가용 뱅크로부터의 판독 요청을 실행하는 단계를 포함하는, 메모리관리 방법.
- 제1항에 있어서,상기 기록 액세스를 제어하는 단계는,모든 판독 요청들을 차단하는 단계와;선택된 메모리 워드 길이에 대해 기록될 데이터가 완료되었는지의 여부를 확인하는 단계와;각각의 뱅크 큐가 모든 뱅크들에 대한 뱅크 가용성을 명시할때까지 대기하는 단계와;상기 완료된 데이터를 모든 뱅크들에 동시에 전송하는 버스트 모드 전송을 개시하는 단계를 포함하는, 메모리 관리 방법.
- 제1항에 있어서,상기 메모리 장치들은 동적 랜덤 액세스 메모리(DRAM) 장치들을 포함하는, 메모리 관리 방법.
- 제1항에 있어서,상기 메모리 장치들은 패스트 싸이클 랜덤 액세스 메모리(FCRAM) 장치들을 포함하는, 메모리 관리 방법.
- 제1항에 있어서,상기 메모리 장치들의 뱅크들은 2개의 독립된 채널들로 조직화되는, 메모리 관리 방법.
- 시스템에 있어서,독립된 채널들로 조직화된 메모리 장치들의 복수 뱅크들로서, 상기 메모리 장치들의 뱅크 각각은 복제 데이터를 포함하는, 상기 복수의 뱅크들과;상기 채널들 각각 내의 뱅크들 각각에 대한 데이터 판독 및 기록 액세스들을 제어하는 트리 메모리 제어기와;뱅크 가용성을 명시하기 위한 각 채널 내의 각 뱅크에 대한 뱅크 큐와;판독 또는 기록 요청들을 상기 트리 메모리 제어기에 전송하기 위한 수단을 포함하며, 상기 제어기는 데이터 판독에 대한 뱅크의 가용성을 판별하고 제1 가용 뱅크로부터의 판독 요청을 실행하는, 시스템.
- 제6항에 있어서,상기 제어기는 기록 요청의 처리 동안에 모든 판독 요청을 보류하는, 시스템.
- 제7항에 있어서,상기 제어기는 모든 메모리 뱅크들에 동시에 기록하는, 시스템.
- 제8항에 있어서,모든 메모리 뱅크들은 동일한 데이터(identical data)를 포함하는, 시스템.
- 제6항에 있어서,상기 메모리 뱅크들은 동적 랜덤 액세스 메모리 장치들을 포함하는, 시스템.
- 제6항에 있어서,상기 메모리 뱅크들은 패스트 싸이클 랜덤 액세스 메모리 장치들을 포함하는, 시스템,
- 제6항에 있어서,상기 메모리 장치들의 뱅크들은 2개의 독립된 채널들로 배열되는, 시스템.
- 제6항에 있어서,메모리 뱅크들의 최소 개수는, 랜덤 싸이클 시간 대 랜덤 뱅크 액세스 지연의 비율에 의해 결정되는, 시스템.
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)
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)
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)
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 |
-
2001
- 2001-12-21 US US10/026,352 patent/US6839797B2/en not_active Expired - Lifetime
-
2002
- 2002-11-28 TW TW091134629A patent/TW200301423A/zh unknown
- 2002-12-03 GB GB0228201A patent/GB2388216B/en not_active Expired - Fee Related
- 2002-12-19 JP JP2002367653A patent/JP4299536B2/ja not_active Expired - Fee Related
- 2002-12-21 KR KR1020020082081A patent/KR100898710B1/ko not_active IP Right Cessation
Patent Citations (4)
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 |