KR20060052870A - 허브 기반 메모리 시스템에서 직접 메모리 액세스를 위한장치 및 방법 - Google Patents

허브 기반 메모리 시스템에서 직접 메모리 액세스를 위한장치 및 방법 Download PDF

Info

Publication number
KR20060052870A
KR20060052870A KR1020067001578A KR20067001578A KR20060052870A KR 20060052870 A KR20060052870 A KR 20060052870A KR 1020067001578 A KR1020067001578 A KR 1020067001578A KR 20067001578 A KR20067001578 A KR 20067001578A KR 20060052870 A KR20060052870 A KR 20060052870A
Authority
KR
South Korea
Prior art keywords
memory
dma
address
devices
coupled
Prior art date
Application number
KR1020067001578A
Other languages
English (en)
Other versions
KR100887526B1 (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 KR20060052870A publication Critical patent/KR20060052870A/ko
Application granted granted Critical
Publication of KR100887526B1 publication Critical patent/KR100887526B1/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/20Handling requests for interconnection or transfer for access to input/output bus
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

메모리 모듈을 위한 메모리 허브는 시스템 메모리에서 DMA 동작들을 수행하기 위해 DMA 엔진을 갖는다. 상기 메모리 허브는 상기 시스템 메모리의 상기 메모리 디바이스들 중 적어도 하나를 액세스하기 위해 메모리 요청들을 수신하는 링크 인터페이스를 포함하고, 상기 메모리 디바이스들에 연결하기 위해 메모리 디바이스 인터페이스를 더 포함하며, 상기 메모리 디바이스 인터페이스는 상기 메모리 디바이스들 중 적어도 하나를 액세스하기 위해 상기 메모리 디바이스들에 메모리 요청들을 연결한다. 상기 링크 인터페이스 및 상기 메모리 디바이스 인터페이스를 선택적으로 연결하는 스위치는 상기 메모리 허브에 더 포함된다. 추가적으로, 직접 메모리 액세스(DMA) 엔진은 DMA 동작들을 수행하기 위해 상기 메모리 디바이스들 중 적어도 하나에 액세스하기 위해 메모리 요청들을 발생시키도록 상기 메모리 디바이스 인터페이스에 상기 스위치를 통해 연결된다.
메모리 허브, 메모리 모듈, 직접 메모리 액세스, 어드레스 레지스터

Description

허브 기반 메모리 시스템에서 직접 메모리 액세스를 위한 장치 및 방법{Apparatus and method for direct memory access in a hub-based memory system}
본 발명은 컴퓨터 시스템들, 보다 자세하게는 메모리 허브 구조를 갖는 시스템 메모리를 포함하는 컴퓨터 시스템에 관한 것이다.
컴퓨터 시스템들은 프로세서에 의해 액세스되는 데이터를 저장하기 위해 동적 랜덤 액세스 메모리("DRAM")와 같은 메모리 디바이스들을 사용한다. 이러한 메모리 디바이스들은 보통 컴퓨터 시스템에서 시스템 메모리로 사용된다. 전형적인 컴퓨터 시스템에 있어서, 프로세서는 프로세서 버스 및 메모리 제어기를 통해 시스템 메모리와 통신한다. 프로세서는 판독 명령과 같은 메모리 명령을 포함하는 메모리 요청과, 데이터 또는 명령어들이 판독될 수 있는 위치를 지정하는 어드레스를 내보낸다. 메모리 제어기는 시스템 메모리에 적용되는 행 및 열 어드레스들 뿐만 아니라 적절한 명령 신호들을 생성하기 위해 명령 및 어드레스를 사용한다. 명령들 및 어드레스들에 응답하여, 데이터는 시스템 메모리 및 프로세서 사이에서 전송된다. 메모리 제어기는 종종 PCI 버스와 같은 확장 버스에 프로세서 버스를 연결하는 버스 브리지 회로를 또한 포함하는 시스템 제어기의 일부이다.
메모리 디바이스들의 동작 속도가 연속적으로 증가할 지라도, 동작 속도에서 이러한 증가는 프로세서들의 동작 속도에서의 증가들과 함께 페이스를 유지하지는 않는다. 심지어 메모리 디바이스들에 프로세서들을 연결하는 메모리 제어기들의 동작 속도에서의 증가가 보다 느려진다. 메모리 제어기들 및 메모리 디바이스들의 상대적으로 느린 속도는 프로세서 및 메모리 디바이스들 사이의 데이터 대역폭을 제한한다.
프로세서들 및 메모리 디바이스들 사이의 제한된 대역폭 이외에, 컴퓨터 시스템들의 성능은 또한 시스템 메모리 디바이스들로부터 데이터를 판독하기 위해 요구되는 시간을 증가시키는 레이턴시 문제들에 의해 제한된다. 보다 자세하게는, 메모리 디바이스 판독 명령이 동기식 DRAM("SDRAM") 디바이스와 같은 시스템 메모리 디바이스에 연결될 때, 판독 데이터는 몇개의 클럭 기간들의 지연 후에만 SDRAM 디바이스로부터 출력된다. 그러므로, SDRAM 디바이스들이 높은 데이터 레이트에서 버스트 데이터를 동기적으로 출력할 수 있을 지라도, 상기 데이터를 초기에 제공하는 지연은 SDRAM 디바이스들과 같은 것들을 사용하여 컴퓨터 시스템의 동작 속도를 현저히 느리게 할 수 있다.
상기 메모리 레이턴시 문제를 경감시키는 한가지 접근 방법은 메모리 허브를 통해 프로세서에 연결된 다중 메모리 디바이스들을 사용하는 것이다. 메모리 허브 구조에 있어서, 시스템 제어기 또는 메모리 제어기는 높은 속도 데이터 링크를 통해 몇개의 메모리 모듈들에 연결된다. 전형적으로, 상기 메모리 모듈들이 직렬로 서로 연결되는 것과 같은 포인트 투 포인트(point-to-point) 또는 데이지 체인 구조로 연결된다. 따라서, 상기 메모리 제어기는 제 2 고속 데이터 링크를 통해 제 2 메모리 모듈에 접속되는 제 1 메모리 모듈을 통해 제 1 고속 데이터 링크에 걸쳐 제 1 메모리 모듈에 연결되고, 제 2 메모리 모듈은 데이지 체인 방식으로 제 3 고속 데이터 링크를 통해 제 3 메모리 모듈에 연결된다.
각각의 메모리 모듈은 상기 고속 데이터 링크들에 걸쳐 상기 제어기 및 상기 메모리 디바이스들 사이의 응답들 및 메모리 요청들을 효과적으로 라우팅하는 상기 메모리 허브들을 통해 대응하는 고속 데이터 링크들 및 상기 모듈상의 다수의 메모리 디바이스들에 연결되는 메모리 허브를 포함한다. 이러한 구조를 고용하는 컴퓨터 시스템들은 또 다른 메모리 디바이스가 이전의 메모리 액세스에 응답하는 동안 프로세서가 하나의 메모리 디바이스에 액세스할 수 있기 때문에 보다 높은 대역폭을 가질 수 있다. 예를 들어, 상기 프로세서는 상기 시스템에서 또 다른 메모리 디바이스가 상기 프로세서에 판독 데이터를 제공하도록 준비하는 동안, 상기 시스템에서 상기 메모리 디바이스들 중 하나에 기록 데이터를 출력할 수 있다. 더욱이, 이러한 구조는 또한 종래의 다분기 버스 구조들에 있어서 발생하는 바와 같이, 보다 많은 메모리 모듈들이 추가됨에 따라 신호 품질에서의 저하에 대한 근심 없이 상기 시스템 메모리의 손쉬운 확장을 제공한다.
메모리 허브들을 사용하는 컴퓨터 시스템들이 우수한 성능을 제공할지라도, 그럼에도 불구하고 그것들은 종종 다양한 이유들로 최적 속도들에서 동작 실패를 할 수 있다. 예를 들어, 메모리 허브들이 보다 큰 메모리 대역폭을 갖는 컴퓨터 시스템들을 제공할 수 있을 지라도, 그것들은 상술된 형태의 레이턴시 문제들로 여전히 손해를 입는다. 보다 자세하게는, 또 다른 메모리 디바이스가 데이터를 전송하 기 위해 준비하는 동안 상기 프로세서가 하나의 메모리 디바이스와 통신할 수 있을 지라도, 또 다른 메모리 디바이스로부터 데이터가 사용될 수 있기 전에 하나의 메모리 디바이스로부터 데이터를 때때로 수신할 필요가 있다. 그러한 경우에 있어서, 또 다른 메모리로부터 수신된 데이터가 사용될 수 있기 전에 하나의 메모리 디바이스로부터 데이터가 수신되어야 한다. 상기 프로세서의 개입은 그러한 컴퓨터 시스템들의 동작 속도를 느리게 하기 위해 계속된다. 그 컴퓨터 시스템들이 최적 속도에서 동작 실패를 하는 이러한 이유들 중 또 다른 하나는 모든 제어, 어드레스, 및 데이터 신호들이 공통 메모리 허브 회로를 통해 통과해야하기 때문에 종래 메모리 허브들이 본질적으로 단일 채널 시스템들 이라는 것이다. 결과적으로, 상기 메모리 허브 회로가 하나의 메모리 디바이스와 활발하게 통신하고 있을 때, 또 다른 메모리 디바이스와 통신하는 것은 자유롭지 않다.
단일 채널 병목뿐만 아니라 메모리로부터 메모리로 이동하는 데이터에서 프로세서 개입을 갖는 이슈들을 극복하기 위해 컴퓨터 시스템들에서 사용된 한가지 테크닉이 직접 메모리 액세스(DMA) 동작들의 사용이다. DMA 동작들은 상기 시스템 프로세서의 개입 없이 메모리로 그리고 메모리 외부로 이동되도록 데이터를 인에이블하는 상기 컴퓨터 시스템에 포함되는 DAM 제어기들의 사용을 통해 구현된다. 그러한 DMA 동작들 및 DMA 제어기들은 본 기술 분야에 알려져 있고, 종종 종래 컴퓨터 시스템들에서 구현된다. DMA 제어기는 상기 시스템 메모리로 그리고 메모리 외부로 요구된 데이터 전송들을 관리하고 상기 프로세서에 대해 포함되기 위한 필요성을 제거한다. 예를 들어, 엔티티가 지원되는 DMA가 상기 시스템 메모리에 데이터 를 전송할 때, DMA 제어기는 상기 버스의 제어를 획득하고 상기 프로세서를 포함하지 않고 상기 시스템 메모리에 엔티티가 지원된 DMA로부터 데이터의 전송을 조정한다. 이러한 방식에 있어서, 프로세서 개입을 일으키는 레이턴시 이슈들은 데이터가 상기 시스템 버스를 통해 전송하는 동안 회피될 수 있다. 그러나, 많은 예들에 있어서, 심지어 데이터가 DMA 동작을 통해 상기 시스템 메모리에 전송된 후에도, 그럼에도 불구하고 상기 프로세서는 상기 시스템 내 하나의 위치로부터 또 다른 위치로 상기 데이터의 블록들을 이동시켜야 한다. 예를 들어, 동작 시스템은 상기 프로세서만을 갖도록 상기 시스템 메모리로 매스 저장 디바이스로부터 데이터를 전송하도록 DMA 동작을 지시할 것이고, 그에 따라 메모리에서 또 다른 위치로 상기 데이터를 이동시켜 상기 데이터가 사용될 수 있다. 결과적으로, DMA 동작들을 갖는 값은 상기 시스템 메모로리부터 그리고 상기 시스템 메모리로 상기 데이터 전송에서 DMA 동작의 사용에도 불구하고 상기 프로세서가 최종적으로 메모리 내 주위로 데이터를 이동시킴으로써 포함되기 때문에 다소 줄어든다.
그러므로, 메모리 허브 구조의 장점들을 제공하고 또한 그러한 시스템들에서 공통인 레이턴시 문제들을 최소화하는 컴퓨터 구조에 대한 필요성이 존재한다.
본 발명은 시스템 메모리에서 DMA 동작들을 수행하는 DMA 엔진을 갖는 메모리 모듈에 대한 메모리 허브에 관한 것이다. 상기 메모리 허브는 상기 시스템 메모리의 메모리 디바이스 들 중 적어도 하나에서 액세스를 위한 메모리 요청들을 수신하는 링크 인터페이스를 포함하고, 추가로 상기 메모리 디바이스들에 연결하기 위해 메모리 디바이스 인터페이스를 포함하며, 상기 메모리 디바이스 인터페이스는 상기 메모리 디바이스들 중 적어도 하나로의 액세스를 위해 메모리 디바이스들에 메모리 요청들을 연결한다. 선택적으로 링크 인터페이스 및 메모리 디바이스 인터페이스를 연결하는 스위치가 상기 메모리 허브에 추가로 포함된다. 추가적으로, 직접 메모리 액세스(DMA)는 DMA 동작들을 수행하기 위해 상기 메모리 디바이스들 중 적어도 하나로 액세스를 위한 메모리 요청들을 생성하도록 상기 메모리 디바이스 인터페이스에 상기 스위치를 통해 연결된다.
본 발명의 한 측면에 따라, 프로세서와, 상기 프로세서에 연결되는 시스템 제어기와, 메모리 버스를 통해 상기 시스템 제어기에 연결되는 적어도 하나의 메모리 모듈을 갖는 시스템 메모리를 갖는 컴퓨터 시스템에서 메모리 동작들을 실행하기 위한 방법이 제공된다. 상기 방법은 프로세서 개입 없이 상기 시스템 메모리에서 메모리 동작을을 실행하기 위해 명령어들을 표현하는 상기 시스템 메모리에서 위치에 대해 DMA 정보를 기록하는 단계와, 상기 프로세서 및 시스템 제어기로부터 상기 메모리 버스의 제어를 획득하는 단계와, DMA 정보가 기록된 상기 시스템 메모리에서 상기 위치를 액세스하는 단계와, 상기 명령어들에 의해 표현된 상기 메모리 동작들을 실행하는 단계를 포함한다.
도 1은 메모리 허브가 복수의 메모리 모듈 각각에서 포함되는 본 발명에 따른 컴퓨터 시스템을 도시한 블록도.
도 2는 도 1의 컴퓨터 시스템에서 사용되는 메모리 허브를 도시한 블록도.
도 3은 도 2의 메모리 허브의 본 발명의 실시예에 따른 DMA 엔진의 일부를 도시한 블록도.
도 4는 도 3의 DMA 엔진에 의해 사용되는 본 발명의 실시예에 따른 태그 구조를 도시한 블록도.
도 5는 본 발명의 실시예에 따른 도 3의 DMA 엔진의 동작을 도시한 흐름도.
본 발명의 실시예들은 시스템 프로세서의 개입 없이 상기 시스템 메모리 내 데이터를 전송하기 위해 직접 메모리 액세스(DMA) 기능을 포함하는 메모리 허브 구조를 갖는 시스템 메모리에 관한 것이다. 특정 세부사항들이 본 발명의 충분한 이해를 제공하기 위해 이하 설명될 것이다. 그러나, 본 발명이 이러한 특정 세부사항들 없이 실행될 수 있다는 것은 본 기술 분야의 전문가들에게 명백할 것이다. 다른 예들에 있어서, 알려진 회로들, 제어 신호들, 및 타이밍 프로토콜들은 본 발명을 불필요하게 모호하지 않도록 하기 위해 자세히 제시되지는 않았다.
본 발명의 하나의 예에 따른 컴퓨터 시스템(100)은 도 1에 도시되어 있다. 컴퓨터 시스템(100)은 특정 계산들 또는 태스크들을 수행하기 위한 특정 소프트웨어를 실행하는 단계와 같은, 다양한 계산 기능들을 수행하는 프로세서(104)를 포함한다. 프로세서(104)는 보통 어드레스 버스, 제어 버스, 및 데이터 버스를 포함하는 프로세서 버스(16)를 포함한다. 프로세서 버스(106)는 이전에 언급된 바와 같이 일반적으로 정적 랜덤 액세스 메모리("SRAM")인 캐시 메모리(108)에 전형적으로 연결된다. 마지막으로, 프로세서 버스(106)는 "노스 브리지(North Bridge)" 또는 "메 모리 제어기(memory controller)"로 또한 때때로 언급되는 시스템 제어기(110)에 연결된다.
시스템 제어기(110)는 다양한 다른 구성요소들에 대해 프로세서(104)에서 통신 경로로서 작동한다. 보다 자세하게는, 시스템 제어기(110)는 차례로 비디오 터미널(114)에 연결되는 그래픽 제어기(112)에 전형적으로 연결되는 그래픽 포트를 포함한다. 시스템 제어기(110)는 오퍼레이터가 컴퓨터 시스템(100)과 인터페이스하도록 허용하기 위해 키보드 또는 마우스와 같은 하나 또는 그 이상의 입력 디바이스들(118)에 또한 연결된다. 전형적으로, 컴퓨터 시스템(100)은 시스템 제어기(110)를 통해 프로세서(104)에 연결되는 프린터와 같은 하나 또는 그 이상의 출력 디바이스들(120)을 포함한다. 하나 또는 그 이상의 데이터 저장 디바이스들(124)은 전형적으로 프로세서(104)가 내부 또는 외부 저장 매체(도시되지 않음)로부터 데이터를 저장 또는 검색하도록 허용하기 위해 시스템 제어기(110)를 통해 프로세서(104)에 또한 연결된다. 전형적인 저장 디바이스들(124)의 예들은 하드 및 플로피 디스크들, 테이프 카세트들, 및 컴팩트 디스크 판독 전용 메모리들(CD-ROMs)을 포함한다.
시스템 제어기(110)는 컴퓨터 시스템(100)에 대해 시스템 메모리로 작동하는 몇개의 메모리 모듈들(130a, 130b, ... 130n)에 연결되는 메모리 허브 제어기(128)를 포함한다. 메모리 모듈들(130)은 양호하게는 광 또는 전기 통신 경로, 또는 다른 형태의 통신 경로들일 수 있는 고속 링크(134)를 통해 메모리 허브 제어기(128)에 연결된다. 고속 링크(134)가 광 통신 경로로 구현되는 경우에 있어서, 상기 광 통신 경로는 예를 들어 하나 또는 그 이상의 광 섬유들의 형태일 수 있다. 그러한 경우에 있어서, 메모리 허브 제어기(128) 및 메모리 모듈들은 광 입/출력 포트를 포함하거나 상기 광 통신 경로에 연결되는 입력 및 출력 포트들을 분리할 것이다.
메모리 모듈들(130)은 고속 링크(134)가 메모리 모듈들(130)의 메모리 허브들(140)과 함께 연결하는 단계로부터 형성되는 포인트 투 포인트 배치에서 메모리 허브 제어기(128)에 연결된 것으로 나타내고 있다. 즉, 고속 링크(134)는 직렬로 메모리 허브들(1400을 연결하는 양방향 버스이다. 따라서, 고속 링크(134) 상의 정보는 "다운스트림(downstream)" 목적지에 도달하기 위해 "업스트림(upstream)" 메모리 모듈들의 메모리 허브(140)를 통해 트래블해야 한다. 예를 들어, 도 1과 특별히 관련하여, 메모리 허브 제어기(128)로부터 메모리 모듈(130c)의 메모리 허브(140)로 전달된 정보는 메모리 모듈들(130a, 130b)의 메모리 허브들(140)을 통해 통과할 것이다. 그러나, 메모리 모듈들(130)의 각각이 고속 링크에 걸쳐 메모리 허브 제어기(128)에 연결되는 연결 배치와 같은, 다른 토폴로지들이 또한 사용될 수 있다는 것을 이해할 것이다. 또한, 스위칭 토폴로지는 메모리 허브 제어기(128)가 스위치(도시되지 않음)를 통해 각각의 메모리 모듈들(130)에 선택적으로 연결되는 것으로 사용될 수 있다. 사용될 수 있는 다른 토폴로지들은 본 기술 분야의 전문가들에게 명백할 것이다.
도 1에 또한 도시된 바와 같이, 상기 메모리 허브는 각각의 버스 시스템(150)을 통해 메모리 디바이스들(148)의 4개의 세트들에 연결된다. 각각의 상기 세트들은 각각의 메모리 모듈(130)에 대한 20개의 메모리 디바이스들(148)에 대해 4 개의 메모리 디바이스들(148)을 포함한다. 버스 시스템들(150)은 보통 본 기술 분야에 알려진 바와 같이, 제어 버스, 어드레스 버스, 및 데이터 버스를 포함한다. 그러나, 본 기술 분야의 전문가들은 공유된 명령/어드레스 버스를 사용하는 버스 시스템과 같은 다른 버스 시스템들이 본 발명의 범위로부터 벗어나지 않으며 또한 사용될 수 있다는 것을 이해할 것이다. 추가로, 메모리 디바이스들(148)의 배치 및 메모리 디바이스(148)의 넘버가 본 발명의 범위로부터 벗어나지 않고 수정될 수 있다는 것은 명백할 것이다. 도 1에 예시된 예에 있어서, 메모리 디바이스들(148)은 동기식 동적 랜덤 액세스 메모리("SDRAM")이다. 그러나, SDRAM과는 다른 메모리 디바이스들이 또한 사용될 수 있다.
본 발명의 실시예에 따른 메모리 허브(200)의 실시예가 도 1의 메모리 허브(140)를 대신할 수 있는 도 2에 도시되어 있다. 메모리 허브(200)는 현재의 예에 있어서 종래의 SDRAM 디바이스들인 4개의 메모리 디바이스들(240a 내지 240d)에 연결되는 것으로 도 2에 도시되어 있다. 대안적인 실시예에 있어서, 메모리 허브(200)는 각각의 뱅크가 전형적으로 복수의 메모리 디바이스들을 갖는 오직 4개의 서로 다른 메모리 디바이스들(240a 내지 240d) 외에, 메모리 디바이스들의 4개의 서로 다른 뱅크들에 연결된다. 그러나, 제시되고 있는 예의 목적을 위해, 본 명세서에서는 4개의 메모리 디바이스들(240a 내지 240d)에 연결되는 메모리 허브(200)과 관련하여 기술될 것이다. 메모리의 다중 뱅크들을 수용하기 위해 메모리 허브(200)에서의 필요한 수정들이 본 기술 분야의 전문가들의 지식 내에 존재한다는 것을 이해할 것이다.
메모리 허브(200)에 포함되는 추가적인 것은 메모리 허브(200)이 제 1 고속 데이터 링크(220) 및 제 2 고속 데이터 링크(222) 각각에 위치되는 메모리 모듈에 연결하기 위한 링크 인터페이스들(210a 내지 210d, 212a 내지 212d)이다. 도 1과 관련하여 이전에 논의된 바와 같이, 고속 데이터 링크들(220, 222)은 광 또는 전기 통신 경로, 또는 다른 형태의 통신 경로를 사용하여 구현될 수 있다. 링크 인터페이스들(210a 내지 210d, 212a 내지 212d)은 종래의 것이고, 본 기술 분야에 알려진 예를 들어 송신기 및 수신기 로직과 같은 고속 데이터 링크들(220, 222)로부터 그리고 상기 링크들로 데이터, 명령, 및 어드레스 정보를 전송하도록 사용되는 회로를 포함한다. 본 기술 분야의 전문가들이 특정 형태의 통신 경로를 통해 사용되도록 링크 인터페이스들(210a 내지 210d, 212a 내지 212d)을 수정하기 위해 충분한 이해를 가지고 있으며, 링크 인터페이스들(210a 내지 210d, 212a 내지 212d)에서 그러한 수정들이 본 발명의 범위로부터 벗어나지 않고 만들어질 수 있다는 것은 명백할 것이다. 예를 들어, 고속 데이터 링크(220, 222)가 광 통신 경로를 사용하여 구현되는 경우에 있어서, 링크 인터페이스들(210a 내지 210d, 212a 내지 212d)은 광 입력/출력 포트를 포함할 것이고 상기 광 통신을 통해 연결된 광 신호들을 전기 신호들로 변환할 것이다.
링크 인터페이스들(210a 내지 210d, 212a 내지 212d)은 버스들(214)에 의해 표현되는 복수의 버스 및 신호 라인들을 통해 스위치(260)에 연결된다. 단일 양방향 데이터 버스가 링크 인터페이스들(210a 내지 210d, 212a 내지 212d)을 통해 양쪽 방향들로 데이터를 연결하도록 대안적으로 제공될 수 있을지라도, 버스들(214) 은 종래의 것이고, 기록 데이터 버스 및 판독 데이터 버스를 포함한다. 본 기술 분야의 전문가들은 버스들(214)이 예이 방식으로 제공되고 버스들(214)이 캐시 일관성을 유지하도록 사용될 수 있는 스누프 라인(snoop line) 및 요청 라인을 추가적으로 포함하는 것과 같이, 보다 적은 또는 보다 큰 신호 라인들을 포함할 수 있다는 것을 이해할 것이다.
링크 인터페이스들(210a 내지 210d, 212a 내지 212d)은 메모리 허브(140)가 다양한 구성들에서 상기 시스템 메모리에 접속되도록 허용하는 회로를 포함한다. 예를 들어, 다분기 배열은 링크 인터페이스들(210a 내지 210d, 또는 212a 내지 212d) 둘 중 하나를 통해 메모리 허브 제어기(128)에 각각의 메모리 모듈을 연결함으로써 구현될 수 있다. 대안적으로, 포인트 투 포인트 또는 데이지 체인 구성은 도 1에 도시된 바와 같이, 직렬로 상기 메모리 모듈들을 연결함으로써 구현될 수 있다. 예를 들어, 링크 인터페이스들(210a 내지 210d)은 제 1 메모리 모듈에 연결하기 위해 사용될 수 있고, 링크 인터페이스들(212a 내지 212d)은 제 2 메모리 모듈에 연결하기 위해 사용될 수 있다. 프로세서 또는 시스템 제어기에 연결되는 상기 메모리 모듈은 상기 링크 인터페이스들의 하나의 세트를 통해 그에 연결될 것이고, 추가적으로 링크 인터페이스들이 다른 세트를 통해 또 다른 메모리 모듈에 연결될 것이다. 본 발명의 한가지 실시예에 있어서, 메모리 모듈의 메모리 허브(200)는 프로세서(104) 및 메모리 허브(200) 사이의 접속에 연결되는 다른 디바이스들이 존재하지 않는 포인트 투 포인트 배치로 상기 프로세서에 연결된다. 이러한 형태의 상호접속은 상대적으로 낮은 커패시턴스, 신호들을 반사하는 상대적으로 적은 라인 불연속, 및 상대적으로 짧은 신호 경로들을 포함하는 몇가지 이유들에 대해 프로세서(104) 및 메모리 허브(200) 사이의 신호 연결을 보다 양호하게 제공한다.
추가로, 스위치(260)는 차례로 시스템 메모리 디바이스들(240a 내지 240d)에 각각 연결되는 4개의 메모리 인터페이스들(270a 내지 270d)에 연결된다. 각각의 시스템 메모리 디바이스(240a 내지 240d)에 대해 개별적 및 독립적 메모리 인터페이스(270a 내지 270d)를 각각 제공함으로써, 메모리 허브(200)는 전형적으로 단일 채널 메모리 구조들을 통해 발생하는 버스 또는 메모리 뱅크 충돌들을 회피한다. 스위치(260)는 버스들(274)에 의해 표현되는 복수의 버스 및 신호 라인들을 통해 각각의 메모리 인터페이스에 연결된다. 버스들(274)은 기록 데이터 버스, 판독 데이터 버스, 및 요청 라인을 포함한다. 그러나, 단일 양방향 데이터 버스가 개별적 기록 데이터 버스 및 판독 데이터 버스 대시에 대안적으로 사용될 수 있다는 것이 이해될 것이다. 더욱이, 버스들(274)은 이전에 기술된 것들 보다 더 많거나 더 적은 수의 신호 라인들을 포함할 수 있다.
본 발명의 실시예에 있어서, 각각의 메모리 인터페이스(270a 내지 270d)는 그것이 연결되는 시스템 메모리 디바이스들(240a 내지 240d)에 특별히 적응된다. 보다 자세하게는, 각각의 메모리 인터페이스(270a 내지 270d)는 그것이 연결되는 시스템 메모리 디바이스(240a 내지 240d)에 의해 각각 수신되고 발생된 특정 신호들을 수신하고 제공하기 위해 특별히 적응된다. 또한, 메모리 인터페이스들(270a 내지 270d)는 서로 다른 클럭 주파수들에서 동작하는 시스템 메모리 디바이스들(240a 내지 240d)과 함께 동작할 수 있다. 그 결과, 메모리 인터페이스들(270a 내 지 270d)은 메모리 허브(200)에 연결되는 메모리 디바이스들(240a 내지 240d) 및 메모리 허브(230) 사이의 인터페이스에서 발생할 수 있는 변화들로부터 프로세서(104)를 격리시키고, 메모리 디바이스들(240a 내지 240d)이 인터페이싱할 수 있는 보다 제어된 환경을 제공한다.
링크 인터페이스들(210a 내지 210d, 212a 내지 212d) 및 메모리 인터페이스들(270a 내지 270d)를 연결하는 스위치(260)는 다양한 종래의 것 중 하나이거나, 이하 개발된 스위치들 일 수 있다. 예를 들어, 스위치(260)는 다양한 배치들에서 서로 동시에 링크 인터페이스들(210a 내지 210d, 212a 내지 212d) 및 메모리 인터페이스들(270a 내지 270d)를 연결할 수 있는 크로스 바(cross-bar) 스위치일 수 있다. 스위치(260)는 또한 크로스 바 스위치로서 연결성의 동일한 레벨을 제공하지는 않지만, 그럼에도 불구하고 각각의 메모리 인터페이스들(270a 내지 270d)에 링크 인터페이스들(210a 내지 210d, 212a 내지 212d)의 일부 또는 모든 것을 연결할 수 있는 멀티플렉서들의 세트일 수 있다. 스위치(260)는 또한 메모리 액세스들이 다른 메모리 액세스들에 걸쳐 우선권을 수신해야하는 중재 로직(도시되지 않음)을 포함할 수 있다. 이러한 기능을 수행하는 버스 중재는 본 기술 분야의 전문가들에게 알려져 있다.
도 2를 추가로 참조하면, 각각의 메모리 인터페이스들(270a 내지 270d)은 각각의 메모리 제어기(280), 각각의 기록 버퍼(282), 및 각각의 캐시 메모리 유닛(284)을 포함한다. 메모리 제어기(280)는 그것이 연결되는 시스템 메모리 디바이스(240a 내지 240d)에 제어, 어드레스, 및 데이터 신호들을 제공하고, 그것이 연결되 는 시스템 메모리 디바이스(240a 내지 240d)로부터 데이터 신호들을 수신함으로써 종래의 메모리 제어기와 동일한 기능들을 수행한다. 기록 버퍼(282) 및 캐시 메모리 유닛(284)은 본 기술 분야에 알려진 바와 같은, 태그 메모리, 데이터 메모리, 비교기 등등을 포함하는 버퍼 및 캐시 메모리의 일반적인 구성요소들을 포함한다. 기록 버퍼(282) 및 캐시 메모리 유닛(284)에서 사용되는 메모리 디바이스들은 DRAM 디바이스들, 정적 랜덤 액세스 메모리("SRAM") 디바이스들, 다른 형태들의 메모리 디바이스들, 또는 3개의 모든 조합일 수 있다. 추가로, 캐시 메모리 유닛(284)에서 사용되는 다른 구성요소들뿐만 아니라 이러한 메모리 디바이스들의 어느 것 또는 모든 것은 임베딩된 또는 자립형 디바이스들 둘 중 하나일 수 있다.
각각의 메모리 인터페이스(270a 내지 270d) 내의 기록 버퍼(282)는 판독 요청이 작동하는 동안 기록 요청들을 저장하기 위해 사용될 수 있다. 그러한 시스템에 있어서, 프로세서(104)는 기록 요청이 지시되는 메모리 디바이스가 이전 기록 또는 판독 요청을 활발히 작동하는 경우조차, 시스템 메모리 디바이스(240a 내지 240d)에 기록 요청을 내보낼 수 있다. 이러한 접근 방식을 사용하여, 메모리 요청들은 후속하는 판독 요청이 작동되는 동안 보다 일찍 기록 요청이 기록 버퍼(282)에 저장될 수 있기 때문에, 잘못 작동될 수 있다. 판독 요청이 작동되도록 허용하기 위해 기록 요청들을 버퍼링하기 위한 성능은 판독 요청들이 그들의 발생순 기록과 상관없이 첫번째 우선권이 제시될 수 있기 때문에, 메모리 판독 레이턴시를 매우 감소시킬 수 있다. 예를 들어, 판독 요청들과 함께 산재된 일련의 기록 요청들은 상기 판독 요청들이 파이프 라인 방식으로 저장된 기록 요청들을 작동시키기 이 전에 파이프라인 방식으로 작동되도록 허용하기 위해 기록 버퍼(282)에 저장될 수 있다. 그 결과, 기록 및 판독 요청들을 교대하기 위한 메모리 디바이스들(270a 내지 270d)에서의 연결 기록 요청 및 메모리 디바이스들(270a 내지 270d)에서의 후속하는 연결 판독 요청 사이의 긴 정착 시간들이 회피될 수 있다.
각각의 메모리 인터페이스(270a 내지 270d) 내의 캐시 메모리 유닛(284)의 사용은 데이터가 메모리 디바이스(240a 내지 240d)로부터 최근에 판독됐거나 상기 디바이스로 기록된 경우에서 그러한 데이터를 제공하기 위해 메모리 디바이스(240a 내지 240d)를 기다리지 않고 각각의 시스템 메모리 디바이스(240a 내지 240d)에 지시되는 판독 명령에 응하는 데이터를 프로세서(104)가 수신하도록 허용한다. 따라서, 캐시 메모리 유닛(284)은 상기 컴퓨터 시스템의 메모리 대역폭을 최소화하기 위해 시스템 메모리 디바이스들(240a 내지 240d)의 판독 레이턴시를 감소시킨다. 유사하게는, 프로세서(104)는 캐시 메모리 유닛(284)에 기록 데이터를 저장할 수 있고, 그에 따라 동일한 메모리 인터페이스(270a 내지 270d)에서 메모리 제어기(280)가 캐시 메모리 유닛(284)으로부터 그것이 연결되는 시스템 메모리 디바이스(240a 내지 240d)로 상기 기록 데이터를 전송하는 동안 다른 기능들을 수행한다.
상기 시스템 메모리에서 하나의 위치로부터 프로세서(104)로부터의 개재없는 상기 시스템 메모리에서 또 다른 위치로 데이터의 블록들을 이동시키도록 메모리 허브(200)를 인에이블하는 버스(288)를 통해 스위치(260)에 연결되는 DMA 엔진(286)은 메모리 허브(200)에 추가로 포함된다. 버스(288)는 상기 시스템 메모리에서 데이터 전송들을 다루기 위해 어드레스, 제어, 데이터, 버스들과 같은 복수의 신호 라인들 및 종래의 버스 라인들을 포함한다. 이하 상세히 기술되는 바와 같이, DMA 엔진(286)은 프로세서 개재없이 DMA 메모리 동작들을 실행하기 위해 상기 시스템 메모리에서 링크 리스트를 판독할 수 있고, 따라서 상기 메모리 동작들을 실행하는 단계로부터 대역폭 제한된 시스템 버스 및 프로세서(104)를 자유롭게 한다. 양호하게는, DMA 엔진(286)은 메모리 허브(200)에 임베딩된 회로이다. 그러나, 본 발명의 범위내에서는 메모리 허브(200)에 연결되는 개별적 DMA 디바이스가 포함된다. 추가적으로, DMA 엔진(286)은 다중 채널들 상에서 DMA 동작들을 수용하기 위한 회로를 포함할 수 있다. 그러한 다중 채널 DMA 엔진들은 본 기술 분야에 알려져 있고 종래의 테크놀로지들을 사용하여 구현될 수 있다.
본 발명의 실시예에 있어서, 프로세서(104)는 실행하기 위한 DMA 엔진(286)에 대한 시스템 메모리에서 명령어들의 리스트를 기록한다. 상기 명령어들은 이동하기 위해 블록의 어드레스를 시작하는 단계, 어드레스 또는 카운트를 종료하는 단계, 목적지 어드레스, 다음 명령 블록의 어드레스 등등과 같은 DMA 동작을 수행하기 위해 DMA 엔진(286)에 의해 사용되는 정보를 포함한다. DMA 엔진(286)은 일련의 연속적인 명령들을 수행하고, 그에 따라 그렇게 하도록 지시된 경우 다음 명령으로 점프한다. DMA 엔진(286)은 하나 또는 그 이상의 메모리 공간들에서 존재하는 데이터 구조를 통해 프로그램된다. 데이터 구조는 상기 시스템 메모리에서 데이터 전송 동작들을 수행하기 위해 필요한 정보를 제공하는 명령 블록들의 일부 넘버로 구성된다. 각각의 상기 명령 블록들은 링크된 리스트를 형성하기 위해 일련의 어드레스 포인터들을 통해 링크될 수 있다. 상기 링크된 리스트에서 제 1 명령 블록의 어드 레스는 I/O 스페이스를 통해 프로그램된다. DMA 엔진(286)은 상기 I/O 스페이스 명령 레지스터를 통해 제 1 명령 블록을 페치하고 실행하도록 지시된다. 요청된 데이터 동작을 수행한 후에, 제 1 명령 블록에서 어드레스 포인터는 DMA 엔진(286)을 다음 명령 블록에서 가리키도록 사용된다. 각각의 연속하는 명령 블록에서 어드레스 포인터는 링크된 리스트를 형성하는 다음 명령 블록을 페치하고 실행하도록 사용된다. 상기 링크된 리스트에서 각각의 명령 블록은 NULL 포인터가 만나게 될 때까지 실행된다. NULL 포인터의 예는 모두 1로 구성되는 어드레스로서 정의된다. NULL 포인터를 검출하는 단계에 따라, 명령 블록 실행이 정지되고, 명령 스트림이 종결되었다는 것을 표시하는 상태 비트가 세팅될 것이다. 완료 상태는 메모리 허브(200)에서 I/O 레지스터에 포함될 수 있다. 추가적으로, 시작 플래그는 또한 DMA 엔진(286)이 이미 DMA 동작 실행 단계를 시작했다는 것을 표시하도록 사용될 수 있다. 다른 상태 비트들은 상기 명령 스트림이 에러들 없이 일반적으로 종결된 경우 또는 에러들로 인해 비정상적으로 종결된 경우를 표시할 수 있다. 상태 정보는 선택적으로 호스트에서 인터럽트를 생성할 수 있다.
본 발명의 대안적인 실시예에 있어서, DMA 엔진(286)은 또한 상기 시스템에서 진단들을 운영하도록 사용될 수 있다. 알려진 양호한 데이터 패턴들로는 메모리 허브(200)의 메모리 또는 알려진 양호한 시스템 메모리에 로딩될 수 있고, 상기 시스템 메모리를 테스트하기 위해 사용된다. 애플리케이션의 이러한 형태의 보다 자세한 설명은 [출원일]에 출원되고, 참조문헌으로 본 명세서에 포함된, 명칭이 메모리 모듈들의 온 보드 진단들을 위한 시스템 및 방법인, 현재 계류중인 미국 특허 번호 에서 제공된다.
도 3은 DMA 엔진(300)의 일부분들을 예시하는 블록도이고, 도 4는 본 발명의 실시예들에 따른 링크된 명령 리스트 테이블(400)을 예시하는 블록도이다. DMA 엔진(300)은 메모리 허브(200)(도 2)의 DMA 엔진(286)에 대체될 수 있다. 도 3이 단지 DMA 엔진(300)의 표현이고 본 기술 분야의 전문가들은 본 발명을 행하기 위해 본 명세서에 충분한 설명이 제공되어 있다는 것을 이해할 것이다. 그러나, 대안적인 DMA 엔진들이 본 발명의 범위로부터 벗어나지 않으며 사용될 수 있다는 것 또한 이해될 것이다. DMA 엔진(300)은 DMA 동작들을 제어하기 위해 5개의 레지스터들, 어드레스 레지스터(310), 목적지 어드레스 레지스터(311), 제어 레지스터(312), 다음 레지스터(314), 및 카운트 레지스터(316)를 포함한다.
동작에 있어서, 블록 전송의 초기에, 블록에 대한 시작 어드레스는 어드레스 레지스터(310)으로 로딩된다. 추가적으로, 데이터가 이동되기 위한 위치의 목적지 어드레스는 목적지 어드레스 레지스터(311)로 로딩되고, 상기 블록의 길이는 카운트 레지스터(316)로 로딩된다. 제어 레지스터(312)는 각각의 데이터 아이템이 전송된 후에 어드레스 레지스터(310)가 증감 또는 감소되는 지의 여부를 표시하는 비트와 같은 전송에 관한 정보를 포함한다. 현재의 예에 있어서, 데이터 아이템이 DMA 엔진(300)에 의해 전송되는 매 시간마다, 카운트 레지스터(316)가 감소되고 어드레스 레지스터(310)가 증가된다. 추가적으로, 목적지 어드레스 레지스터(311)는 가 증가된다(또는, 제어 세팅들에 의존하여 감소된다). 카운트 레지스터(316)의 값이 0에 도달할 때, 블록 전송은 완료되어 있다. 이 시간에, 다음 레지스터(314)에서 값이 검사된다. 그것이 상기 시스템 메모리에서 유효한 위치를 가리키는 경우, 그 대상에 포함되는 상기 값들은 레지스터들(310, 312, 314, 316)로 로딩된다. 그 후에, 다음 블록 데이터 전송이 자동적으로 시작된다. 그러나, NULL 값이 이전에 기술된 바와 같이 다음 레지스터(314)에 존재하는 경우, DMA 동작이 완료된다.
도 4에 도시된 링크된 명령 리스트 테이블(400)은 각각이 레지스터들(310, 312, 314, 316)을 다시 로딩하기에 필요한 정보를 포함하는 복수의 링크 엔트리들(402, 404, 406)을 포함한다. 링크 엔트리들(402, 404, 406)은 이전에 논의된 바와 같이 상기 시스템 메모리에 저장되고, 다음 레지스터(314)에 대응하는 포인터들에 의해 함께 링크된다. 도 4에 있어서, 3개의 링크 엔트리들(402, 404, 406)이 도시되어 있다. DMA 엔진(300)의 레지스터들(310, 312, 314, 316)로 직접적으로 값들을 기록함으로써 규정되는 초기의 전송에 더하여 이러한 링크 엔트리들은 4개의 개별적 부분들을 갖는 단일 DMA 전송을 규정한다. 다음 레지스터(314)에 포함된 값(NEXT)은 제 1 링크 엔트리(402)를 가리킨다. 제 1 링크 엔트리(402)는 차례로 최종 링크 엔트리(406)를 가리키는 링크된 명령에서 다음 링크 엔트리(404)를 가리킨다. 최종 링크 엔트리(406)는 그것이 DMA 명령 리스트의 마지막 링크 엔트리라는 것을 표시하는 포인터로서 NULL 값을 포함한다. 상기 NULL 값은 유효한 메모리 위치를 가리키지 않는 예비된 포인터 값이다. 링크 엔트리들(402, 404, 406)이 예로써 제공되고, 도 4에 도시된 것 보다 더 크거나 더 적은 필드들의 정보를 포함하는 것과 같은 그에 따른 수정들이 본 발명의 범위로부터 벗어나지 않고 이루어질 수 있다는 것은 명백할 것이다.
도 5는 일련의 연속적인 블록 전송들을 만들기 위해 DMA 엔진(300)(도 3)에 의해 사용되는 제어 흐름을 예시하는 흐름도(500)이다. 단계(502)에서, DMA 레지스터들(310, 312, 314, 316)은 제 1 데이터 전송을 위해 적절한 값들로 로딩된다. 이 시간에 있어서, 상기 레지스터들을 직접적으로 로딩한 이후 또는 이전 둘 중 하나에서, 이러한 전송에 대한 링크 엔트리들을 위해 필요한 모든 정보는 링크된 명령 리스트 테이블(400)(도 4)로 로딩되어야 한다. 상기 레지스터들의 로딩은 프로세서(104)(도 1)의 명령에 있고, 상기 시스템 메모리에서 링크된 명령 리스트(400)의 로딩은 또한 프로세서(104)에 의해 달성된다.
단계(504)에서 하나의 아이템 데이터가 전송되고, 단계(506)에서 카운트 레지스터(316) 내 값은 하나의 데이터 아이템이 전송된 것을 표시하기 위해 감소된다. 단계(506)는 제어 레지스터에서의 세트에 따라 바람직한 방향에 의존하여 어드레스 레지스터(310)의 값을 동시에 증가 또는 감소시키는 단계를 포함한다. 단계(508)에 있어서, 상기 카운트 값은 상기 카운트가 완료되는지의 여부를 결정하기 위해 검사된다. 본 발명의 하나의 실시예에 있어서, 상기 카운트가 완료되는지의 여부의 결정은 카운트 레지스터(316)로부터 캐리 아웃 비트(carry out bit)(도시되지 않음)를 검사함으로써 달성된다. 상기 데이터 전송이 완료되지 않은 것을 표시하는 상기 카운트 값의 경우에 있어서, 제어는 단계(504)로 복귀한다. 그러나, 카운트 레지스터(316)에서 카운트 값이 0와 동일한 경우, 제어는 단계(510)를 통과하고, 이전에 기술된 바와 같이 여기서 다음 레지스터(314)에서의 값은 그것이 NULL 값과 동일한 경우 보기 위해 테스트된다. NULL 값이 존재하지 않는 경우, 단계 (512)에서 다음 태그는 링크된 명령 리스트 테이블(400)로부터 DMA 제어기(300) 내 레지스터들(310, 312, 314, 316)로 로딩되고, 제어는 단계(504)로 복귀한다. 일단 마지막 링크 엔트리가 사용되면, 단계(514)에서 표시는 전송이 완료된 프로세서(104)에 만들어진다.
본 기술 분야의 전문가들에게는 DMA 엔진(300)이 상기 시스템 메모리에서 사용을 위해 "분산 수집(scatter-gather)" 능력을 구현한다는 것이 이해될 것이다. 데이터의 큰 블록이 메모리의 불연속 블록들로 판독하려 할 때, 프로세서(104)는 DMA 엔진(300)을 통해 상기 메모리를 할당하고 링크된 명령 리스트 테이블(400)을 셋 업한다. 그 후에, DMA 전송이 개시되고, DMA 엔진(300)은 그것이 완료될 때까지 전체 전송을 취급한다. 유사한 테크닉은 메모리의 연속적인 블록들에 그것들을 기록하도록 상기 시스템 메모리 내 데이터의 분산된 블록들을 수집하기 위해 사용될 수 있다. 프로세서(104)는 어느 블록들이 상기 시스템 메모리 내에서 이동되어 기록되는 지와 그의 순서를 결정하고, DMA 엔진(300)을 통해 링크된 명령 리스트 테이블(400)을 셋 업한다. DMA 전송은 그 후에 개시되고, 그것이 완료될 때까지 DMA 엔진(300)에 의해 완전히 다루어진다. 링크된 명령 리스트 테이블(400)이 상기 시스템 메모리에 저장되기 때문에, 예를 들어 DMA 엔진(300)에 의해 지원되는 각각의 채널에 대해 몇개의 링크된 리스트들을 유지하는 것이 가능하다. 더욱이, 링크된 명령 리스트 테이블(400)이 상기 시스템 메모리에 저장되기 때문에, 채널에 대해 하나의 보다 큰 전송으로 링크될 수 있는 개별적 전송들의 수에 대한 유일한 제한은 상기 시스템 메모리 내 남아있는 자유로운 메모리 위치들의 수에 있다.
본 발명의 특정 실시예들이 예시적인 목적들을 위해 본 명세서에 기술되어 있을 지라도, 다양한 수정들이 본 발명의 범위 및 취지로부터 벗어나지 않고 이루어질 수 있다는 것이 상기된 바를 통해 이해될 것이다.

Claims (42)

  1. 복수의 메모리 디바이스들 및 메모리 허브를 포함하는 메모리 모듈에 있어서,
    상기 메모리 허브는,
    상기 메모리 디바이스들 중 적어도 하나로의 액세스를 위한 메모리 요청들을 수신하는 링크 인터페이스;
    상기 메모리 디바이스들에 연결되고, 상기 메모리 디바이스들 중 적어도 하나로의 액세스를 위해 상기 메모리 디바이스들에 메모리 요청들을 연결하는, 메모리 디바이스 인터페이스;
    상기 링크 인터페이스 및 상기 메모리 디바이스 인터페이스를 선택적으로 연결하는 스위치; 및
    상기 스위치를 통해 상기 메모리 디바이스 인터페이스에 연결되는 직접 메모리 액세스(DMA: direct memory access) 엔진으로서, DMA 동작들을 수행하기 위해 상기 메모리 디바이스들 중 적어도 하나로의 액세스를 위한 메모리 요청들을 생성하는, 상기 직접 메모리 액세스(DMA) 엔진을 포함하는, 메모리 모듈.
  2. 제 1 항에 있어서,
    상기 메모리 허브는 단일 디바이스에 존재하는 상기 링크 인터페이스, 상기 메모리 디바이스 인터페이스, 상기 스위치, 및 상기 DMA 엔진을 갖는 임베딩된 시 스템인, 메모리 모듈.
  3. 제 1 항에 있어서,
    상기 메모리 디바이스 인터페이스는,
    메모리 제어기 버스를 통해 상기 스위치에 연결되고 메모리 디바이스 버스를 통해 상기 메모리 디바이스들에도 연결되는 메모리 제어기;
    상기 메모리 제어기에 연결되어 상기 메모리 제어기가 연결되는 상기 메모리 디바이스들 중 적어도 하나로 보내지는 메모리 요청들을 저장하는 기록 버퍼;
    상기 메모리 제어기에 연결되어 상기 메모리 디바이스들에 제공되거나 상기 메모리 디바이스들로부터 검색되는 데이터를 저장하는 캐시를 포함하는, 메모리 모듈.
  4. 제 1 항에 있어서,
    상기 스위치는 크로스 바 스위치(cross-bar switch)를 포함하는, 메모리 모듈.
  5. 제 1 항에 있어서,
    상기 복수의 메모리 디바이스들은 메모리 동작 동안 동시에 액세스되는 메모리 디바이스들의 뱅크(bank)인, 메모리 모듈.
  6. 제 1 항에 있어서,
    상기 복수의 메모리 디바이스들은 동기식 동적 랜덤 액세스 메모리 디바이스들을 포함하는, 메모리 모듈.
  7. 제 1 항에 있어서,
    상기 DMA 엔진은,
    DMA 동작을 위해 시작 메모리 어드레스를 저장하는 어드레스 레지스터;
    데이터가 상기 DMA 동작 시 이동될 수 있는 위치의 타겟 어드레스를 저장하는 타켓 어드레스 위치;
    상기 DMA 동작 시 액세스될 메모리 위치들의 수를 표시하는 카운트 값을 저장하는 카운트 레지스터;
    상기 DMA 동작의 완료를 표현하거나 링크 리스트에 대응하는 메모리 어드레스를 표현하는 값을 저장하는 다음 레지스터로서, 상기 링크 리스트는 상기 어드레스 레지스터, 상기 카운트 레지스터, 및 상기 다음 레지스터로 로딩될 시작 메모리 어드레스, 카운트 값, 및 다음 메모리 어드레스를 포함하는, 상기 다음 레지스터를 포함하는, 메모리 모듈.
  8. 복수의 메모리 디바이스들을 갖는 메모리 모듈을 위한 메모리 허브에 있어서,
    상기 메모리 디바이스들 중 적어도 하나를 액세스하기 위해 메모리 요청들을 수신하는 링크 인터페이스;
    상기 메모리 디바이스들에 연결하고, 상기 메모리 디바이스들 중 적어도 하나를 액세스하기 위해 상기 메모리 디바이스들로 메모리 요청들을 연결하는 메모리 디바이스 인터페이스;
    상기 링크 인터페이스 및 상기 메모리 디바이스 인터페이스를 선택적으로 연결하는 스위치; 및
    상기 스위치를 통해 상기 메모리 디바이스 인터페이스에 연결되는 직접 메모리 액세스(DMA) 엔진으로서, DMA 동작들을 수행하기 위해 상기 메모리 디바이스들 중 적어도 하나에 액세스하기 위해 메모리 요청들을 생성하는, 상기 직접 메모리 액세스(DMA) 엔진을 포함하는, 메모리 허브.
  9. 제 8 항에 있어서,
    상기 링크 인터페이스, 상기 메모리 디바이스 인터페이스, 상기 스위치, 및 상기 DMA 엔진은 단일 디바이스에 존재하는 임베딩된 시스템들인, 메모리 허브.
  10. 제 8 항에 있어서,
    상기 메모리 디바이스 인터페이스는,
    메모리 제어기 버스를 통해 상기 스위치에 연결되고 메모리 디바이스 버스를 통해 상기 메모리 디바이스들도 연결되는 메모리 제어기;
    상기 메모리 제어기에 연결되어 상기 메모리 제어기가 연결되는 상기 메모리 디바이스들 중 적어도 하나로 보내지는 메모리 요청들을 저장하는 기록 버퍼;
    상기 메모리 제어기에 연결되어 상기 메모리 디바이스들에 제공되거나 상기 메모리 디바이스들로부터 검색되는 데이터를 저장하는 캐시를 포함하는, 메모리 허브.
  11. 제 8 항에 있어서,
    상기 스위치는 크로스 바 스위치를 포함하는, 메모리 허브.
  12. 제 8 항에 있어서,
    상기 DMA 엔진은,
    DMA 동작을 위해 시작 메모리 어드레스를 저장하는 어드레스 레지스터;
    데이터가 상기 DMA 동작 시 이동될 수 있는 위치의 타겟 어드레스를 저장하는 타켓 어드레스 위치;
    상기 DMA 동작 시 액세스될 메모리 위치들의 수를 표시하는 카운트 값을 저장하는 카운트 레지스터; 및
    상기 DMA 동작의 완료를 표현하거나 링크 리스트에 대응하는 메모리 어드레스를 표현하는 값을 저장하는 다음 레지스터로서, 상기 링크 리스트는 상기 어드레스 레지스터, 상기 카운트 레지스터, 및 상기 다음 레지스터로 로딩될 시작 메모리 어드레스, 카운트 값, 및 다음 메모리 어드레스를 포함하는, 상기 다음 레지스터를 포함하는, 메모리 허브.
  13. 메모리 요청들이 제공되는 메모리 버스와, 상기 메모리 버스에 연결되는 적어도 하나의 메모리 모듈로서, 상기 메모리 모듈은 복수의 메모리 디바이스들 및 메모리 허브를 갖는, 상기 적어도 하나의 메모리 모듈을 포함하는, 메모리 시스템에 있어서,
    상기 메모리 허브는,
    링크 인터페이스가 위치되는 상기 메모리 모듈의 상기 메모리 디바이스들 중 적어도 하나에 액세스하기 위한 메모리 요청들을 수신하도록 연결되는 링크 인터페이스;
    상기 메모리 디바이스들에 연결되고, 상기 메모리 디바이스들 중 적어도 하나에 액세스하기 위해 상기 메모리 디바이스들에 메모리 요청들을 연결하는, 메모리 디바이스 인터페이스;
    상기 링크 인터페이스 및 상기 메모리 디바이스 인터페이스를 선택적으로 연결하는 스위치; 및
    상기 스위치를 통해 상기 메모리 디바이스 인터페이스 및 상기 링크 인터페이스에 연결되는 직접 메모리 액세스(DMA) 엔진으로서, DMA 동작들을 수행하기 위해 상기 메모리 디바이스들 중 적어도 하나에 액세스하기 위한 메모리 요청들을 생성하는, 상기 직접 메모리 액세스(DMA) 엔진을 포함하는, 메모리 시스템.
  14. 제 13 항에 있어서,
    상기 메모리 허브는 단일 디바이스에 존재하는 상기 링크 인터페이스, 상기 메모리 디바이스 인터페이스, 상기 스위치, 및 상기 DMA 엔진을 갖는 임베딩된 시스템인, 메모리 시스템.
  15. 제 13 항에 있어서,
    상기 메모리 버스는 고속 메모리 버스를 포함하는, 메모리 시스템.
  16. 제 13 항에 있어서,
    상기 메모리 버스는 고속 광 메모리 버스를 포함하고, 상기 링크 인터페이스는 광 신호들 및 전기 신호들을 변환하는 광 메모리 버스 인터페이스 회로를 포함하는, 메모리 시스템.
  17. 제 13 항에 있어서,
    복수의 메모리 모듈들은 상기 메모리 시스템에 포함되고, 상기 복수의 메모리 모듈들의 제 1 메모리 모듈은 상기 메모리 버스에 연결되고, 상기 복수의 메모리 모듈들 중 나머지 메모리 모듈들은 상기 제 1 메모리 모듈과 직렬로 연결되는, 메모리 시스템.
  18. 제 13 항에 있어서,
    복수의 메모리 모듈들은 상기 메모리 시스템에 포함되고, 상기 복수의 메모 리 모듈들 각각은 각각의 링크 인터페이스를 통해 상기 메모리 버스에 직접 연결되는, 메모리 시스템.
  19. 제 13 항에 있어서,
    상기 메모리 허브의 상기 메모리 디바이스 인터페이스는,
    메모리 제어기 버스를 통해 상기 스위치에 연결되고 메모리 디바이스 버스를 통해 상기 메모리 디바이스들에도 연결되는 메모리 제어기;
    상기 메모리 제어기에 연결되어 상기 메모리 제어기가 연결되는 상기 메모리 디바이스들 중 적어도 하나로 보내지는 메모리 요청들을 저장하는 기록 버퍼; 및
    상기 메모리 제어기에 연결되어 상기 메모리 디바이스들에 제공되거나 상기 메모리 디바이스들로부터 검색되는 데이터를 저장하는 캐시를 포함하는, 메모리 시스템.
  20. 제 13 항에 있어서,
    상기 메모리 허브의 상기 스위치는 크로스 바 스위치를 포함하는, 메모리 시스템.
  21. 제 13 항에 있어서,
    메모리 모듈의 상기 복수의 메모리 디바이스들은 메모리 동작 동안 동시에 액세스되는 메모리 디바이스들의 뱅크를 표현하는, 메모리 시스템.
  22. 제 13 항에 있어서,
    상기 메모리 모듈들의 상기 복수의 메모리 디바이스들은 동기식 동적 랜덤 액세스 메모리 디바이스들을 포함하는, 메모리 시스템.
  23. 제 13 항에 있어서,
    상기 메모리 허브의 상기 DMA 엔진은,
    DMA 동작이 시작하는 상기 메모리 시스템에서 메모리 위치의 시작 메모리 어드레스를 저장하는 어드레스 레지스터;
    데이터가 상기 DMA 동작 시 이동될 수 있는 상기 메모리 시스템에 메모리 위치의 타겟 어드레스를 저장하는 타켓 어드레스 위치;
    상기 DMA 동작 시 액세스될 메모리 위치들의 수를 표시하는 카운트 값을 저장하는 카운트 레지스터; 및
    상기 DMA 동작의 완료를 표현하거나 링크 리스트에 대응하는 메모리 어드레스를 표현하는 값을 저장하는 다음 레지스터로서, 상기 링크 리스트는 상기 어드레스 레지스터, 상기 카운트 레지스터, 및 상기 다음 레지스터로 로딩될 시작 메모리 어드레스, 카운트 값, 및 다음 메모리 어드레스를 포함하는, 상기 다음 레지스터를 포함하는, 메모리 시스템.
  24. 컴퓨터 시스템에 있어서,
    중앙 처리 유닛("CPU")과,
    상기 CPU에 연결되고, 입력 포트 및 출력 포트를 갖는 시스템 제어기;
    상기 시스템 제어기를 통해 상기 CPU에 연결되는 입력 디바이스;
    상기 시스템 제어기를 통해 상기 CPU에 연결되는 출력 디바이스;
    상기 시스템 제어기를 통해 상기 CPU에 연결되는 저장 디바이스;
    적어도 하나의 메모리 모듈로서, 상기 메모리 모듈은 복수의 메모리 디바이스들 및
    메모리 허브로서,
    링크 인터페이스가 위치되는 상기 메모리 모듈의 상기 메모리 디바이스들 중 적어도 하나에 액세스하기 위한 메모리 요청들을 수신하기 위해 연결되는 링크 인터페이스;
    상기 메모리 디바이스들에 연결되고, 상기 메모리 디바이스들 중 적어도 하나로의 액세스를 위해 상기 메모리 디바이스들에 메모리 요청들을 연결하는, 메모리 디바이스 인터페이스;
    상기 링크 인터페이스 및 상기 메모리 디바이스 인터페이스를 선택적으로 연결하는 스위치; 및
    상기 스위치를 통해 상기 메모리 디바이스 인터페이스 및 상기 링크 인터페이스에 연결되고, DMA 동작들을 수행하기 위해 상기 메모리 디바이스들 중 적어도 하나에서 액세스를 위한 메모리 요청들을 생성하는 직접 메모리 액세스(DMA) 엔진를 포함하는, 상기 메모리 허브를 포함하는, 상기 적어도 하나의 메모리 모듈; 및
    상기 시스템 제어기 및 상기 메모리 모듈들 사이의 메모리 요청들 및 데이터를 연결하는 상기 복수의 메모리 모듈들 중 적어도 하나 및 상기 시스템 제어기 사이에 연결되는 통신 링크를 포함하는, 컴퓨터 시스템.
  25. 제 24 항에 있어서,
    상기 통신 링크는 고속 메모리 버스를 포함하는, 컴퓨터 시스템.
  26. 제 24 항에 있어서,
    상기 메모리 허브는 단일 디바이스에 존재하는 상기 링크 인터페이스, 상기 메모리 디바이스 인터페이스, 상기 스위치, 및 상기 DMA 엔진을 갖는 임베딩된 시스템인, 컴퓨터 시스템.
  27. 제 24 항에 있어서,
    상기 통신 링크는 고속 광 메모리 버스를 포함하고, 상기 메모리 허브의 상기 링크 인터페이스는 광 신호들 및 전기 신호들을 변환하는 광 메모리 버스 인터페이스 회로를 포함하는, 컴퓨터 시스템.
  28. 제 24 항에 있어서,
    복수의 메모리 모듈들은 상기 컴퓨터 시스템에 포함되고, 상기 복수의 메모 리 모듈들의 제 1 메모리 모듈은 상기 통신 링크에 연결되고, 상기 복수의 메모리 모듈들 중 나머지 메모리 모듈들은 상기 제 1 메모리 모듈과 직렬로 연결되는, 컴퓨터 시스템.
  29. 제 24 항에 있어서,
    복수의 메모리 모듈들은 상기 컴퓨터 시스템에 포함되고, 상기 복수의 메모리 모듈들 각각은 각각의 링크 인터페이스를 통해 상기 메모리 버스에 직접 연결되는, 컴퓨터 시스템.
  30. 제 24 항에 있어서,
    상기 메모리 허브의 상기 메모리 디바이스 인터페이스는,
    메모리 제어기 버스를 통해 상기 스위치에 연결되고 메모리 디바이스 버스를 통해 상기 메모리 디바이스들에도 연결되는 메모리 제어기;
    상기 메모리 제어기에 연결되어 상기 메모리 제어기가 연결되는 상기 메모리 디바이스들 중 적어도 하나로 보내지는 메모리 요청들을 저장하는 기록 버퍼;및
    상기 메모리 제어기에 연결되어 상기 메모리 디바이스들에 제공되거나 상기 메모리 디바이스들로부터 검색되는 데이터를 저장하는 캐시를 포함하는, 컴퓨터 시스템.
  31. 제 24 항에 있어서,
    상기 메모리 허브의 상기 스위치는 크로스 바 스위치를 포함하는, 컴퓨터 시스템.
  32. 제 24 항에 있어서,
    메모리 모듈의 상기 복수의 메모리 디바이스들은 메모리 동작 동안 동시에 액세스되는 메모리 디바이스들의 뱅크를 표현하는, 컴퓨터 시스템.
  33. 제 24 항에 있어서,
    상기 메모리 모듈의 상기 복수의 메모리 디바이스들은 동기식 동적 랜덤 액세스 메모리 디바이스들을 포함하는, 컴퓨터 시스템.
  34. 제 24 항에 있어서,
    상기 메모리 허브의 상기 DMA 엔진은,
    DMA 동작이 시작하는 상기 메모리 시스템에서 메모리 위치의 시작 메모리 어드레스를 저장하는 어드레스 레지스터;
    데이터가 상기 DMA 동작 시 이동될 수 있는 상기 메모리 시스템에 메모리 위치의 타겟 어드레스를 저장하는 타켓 어드레스 위치;
    상기 DMA 동작 시 액세스될 메모리 위치들의 수를 표시하는 카운트 값을 저장하는 카운트 레지스터; 및
    상기 DMA 동작의 완료를 표현하거나 링크 리스트에 대응하는 메모리 어드레 스를 표현하는 값을 저장하는 다음 레지스터로서, 상기 링크 리스트는 상기 어드레스 레지스터, 상기 카운트 레지스터, 및 상기 다음 레지스터로 로딩될 시작 메모리 어드레스, 카운트 값, 및 다음 메모리 어드레스를 포함하는, 상기 다음 레지스터를 포함하는, 컴퓨터 시스템.
  35. 프로세서와, 상기 프로세서에 연결되는 시스템 제어기와, 메모리 버스를 통해 상기 시스템 제어기에 연결되는 적어도 하나의 메모리 모듈을 갖는 시스템 메모리를 갖는 컴퓨터 시스템에서 메모리 동작들을 실행하는 방법에 있어서,
    프로세서 개입 없이 상기 시스템 메모리에서 메모리 동작들을 실행하는 명령어들을 표현하는 상기 시스템 메모리 내의 위치에 직접 메모리 액세스(DMA) 정보를 기록하는 단계;
    상기 프로세서 및 시스템 제어기로부터 상기 메모리 버스의 제어를 획득하는 단계;
    상기 DMA 정보가 기록되는 상기 시스템 메모리 내의 상기 위치를 액세스하는 단계; 및
    상기 명령어들에 의해 표현되는 상기 메모리 동작들을 실행하는 단계를 포함하는, 메모리 동작 실행 방법.
  36. 제 35 항에 있어서, 상기 메모리 동작들의 실행 동안 상기 시스템 메모리를 격리시키는 단계를 더 포함하는, 메모리 동작 실행 방법.
  37. 제 35 항에 있어서,
    DMA 정보를 기록하는 단계는,
    상기 메모리 동작들이 시작하는 상기 시스템 메모리 내의 메모리 위치의 시작 메모리 어드레스를 기록하는 단계;
    데이터가 상기 메모리 동작들에서 이동될 수 있는 상기 시스템 메모리 내의메모리 위치의 타겟 어드레스를 기록하는 단계;
    상기 메모리 동작들에서 액세스될 메모리 위치들의 수를 표시하는 카운트 값을 기록하는 단계;
    상기 메모리 동작들의 종료를 표현하거나, 시작 메모리 어드레스, 카운트 값, 및 다음 메모리 어드레스 값을 포함하는 링크 리스트에 대응하는 메모리 어드레스를 표현하는 다음 메모리 어드레스를 기록하는 단계를 포함하는, 메모리 동작 실행 방법.
  38. 제 35 항에 있어서,
    상기 시스템 메모리는 복수의 메모리 모듈들을 포함하고, 상기 메모리 동작들을 실행하는 단계는 상기 복수의 메모리 모듈들 중 제 1 메모리 모듈에서 메모리 위치를 액세스하여 그로부터 데이터를 판독하는 단계 및 상기 복수의 메모리 모듈들 중 제 2 메모리 모듈에서 메모리 위치를 액세스하여 상기 데이터를 기록하는 단계를 포함하는, 메모리 동작 실행 방법.
  39. 프로세서와, 상기 프로세서에 연결되는 시스템 제어기와, 상기 시스템 메모리에 상기 시스템 제어기를 연결하는 메모리 버스를 갖는 컴퓨터 시스템에 포함되는 시스템 메모리 내로 데이터를 전송하는 방법에 있어서,
    상기 시스템 메모리 내의 위치에 DMA 명령어들을 기록하는 단계로서, 상기 DMA 명령어들은 상기 시스템 메모리 내의 제 1 및 제 2 위치들에 대응하는 메모리 어드레스들을 포함하는 상기 데이터를 전송하기 위해 메모리 동작들을 실행하는 명령어들을 표현하는, 상기 DMA 명령어들을 기록하는 단계;
    상기 메모리 버스의 제어를 획득하는 단계; 및
    프로세서 개입 없이, 상기 DMA 명령어들이 기록되는 상기 시스템 메모리 내의 상기 위치를 액세스하는 단계, 상기 시스템 메모리 내의 상기 제 1 위치로부터 데이터를 판독하는 단계, 및 상기 시스템 메모리 내의 상기 제 2 위치에 상기 데이터를 기록하는 단계를 포함하는, 데이터 전송 방법.
  40. 제 39 항에 있어서,
    상기 메모리 버스의 제어를 획득하는 단계는 상기 시스템 메모리 내에 데이터를 전송하는 동안 상기 프로세서 및 시스템 제어기로부터 상기 시스템 메모리를 격리시키는 단계를 포함하는, 데이터 전송 방법.
  41. 제 39 항에 있어서,
    DMA 명령어들을 기록하는 단계는,
    데이터의 상기 전송이 시작되는 상기 시스템 메모리 내의 메모리 위치의 시작 메모리 어드레스를 기록하는 단계;
    상기 데이터가 전송되는 상기 시스템 메모리 내의 메모리 위치의 타겟 어드레스를 기록하는 단계;
    상기 데이터의 전송 시 액세스될 메모리 위치들의 수를 표시하는 카운트 값을 기록하는 단계; 및
    상기 데이터 전송의 완료를 표현하거나, 시작 메모리 어드레스, 카운트 값, 및 다음 메모리 어드레스 값을 포함하는 링크 리스트에 대응하는 메모리 어드레스를 표현하는 다음 메모리 어드레스 값을 기록하는 단계를 포함하는, 데이터 전송 방법.
  42. 제 39 항에 있어서,
    상기 시스템 메모리는 복수의 메모리 모듈들을 포함하고, 상기 시스템 메모리 내의 상기 제 1 위치로부터 데이터를 판독하는 단계는 상기 복수의 메모리 모듈들 중 제 1 메모리 모듈 내의 메모리 위치를 액세스하여 그로부터 데이터를 판독하는 단계를 포함하고 상기 시스템 메모리 내의 상기 제 2 위치에 상기 데이터를 기록하는 단계는 상기 복수의 메모리 모듈들 중 제 2 메모리 모듈 내의 메모리 위치를 액세스하여 상기 데이터를 기록하는 단계를 포함하는, 데이터 전송 방법.
KR1020067001578A 2003-07-22 2004-07-08 허브 기반 메모리 시스템에서 직접 메모리 액세스를 위한장치 및 방법 KR100887526B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/625,132 US7389364B2 (en) 2003-07-22 2003-07-22 Apparatus and method for direct memory access in a hub-based memory system
US10/625,132 2003-07-22
PCT/US2004/021993 WO2005010670A2 (en) 2003-07-22 2004-07-08 Apparatus and method for direct memory access in a hub-based memory system

Publications (2)

Publication Number Publication Date
KR20060052870A true KR20060052870A (ko) 2006-05-19
KR100887526B1 KR100887526B1 (ko) 2009-03-09

Family

ID=34080141

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067001578A KR100887526B1 (ko) 2003-07-22 2004-07-08 허브 기반 메모리 시스템에서 직접 메모리 액세스를 위한장치 및 방법

Country Status (10)

Country Link
US (4) US7389364B2 (ko)
EP (2) EP1646925B1 (ko)
JP (1) JP4560646B2 (ko)
KR (1) KR100887526B1 (ko)
CN (1) CN100595720C (ko)
AT (1) ATE479138T1 (ko)
DE (1) DE602004028831D1 (ko)
SG (1) SG129443A1 (ko)
TW (1) TW200517848A (ko)
WO (1) WO2005010670A2 (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6953392B2 (en) * 2001-01-05 2005-10-11 Asm Nutool, Inc. Integrated system for processing semiconductor wafers
US20040093439A1 (en) * 2002-09-24 2004-05-13 Rohm Co., Ltd Data processing control apparatus and DMA controller
WO2004102403A2 (en) * 2003-05-13 2004-11-25 Advanced Micro Devices, Inc. A system including a host connected to a plurality of memory modules via a serial memory interconnect
US7428644B2 (en) * 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7389364B2 (en) * 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
KR100500454B1 (ko) * 2003-07-28 2005-07-12 삼성전자주식회사 메모리 모듈 테스트 시스템 및 메모리 모듈 평가 시스템
US7210059B2 (en) * 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7310752B2 (en) 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7216196B2 (en) * 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
US7467238B2 (en) 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
JP4405277B2 (ja) * 2004-02-16 2010-01-27 株式会社日立製作所 ディスク制御装置
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
US8177129B2 (en) * 2004-02-17 2012-05-15 Timothy D. Larin Interactive multimedia smart affinity card with flash memory
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7739423B2 (en) * 2004-11-30 2010-06-15 Broadcom Corporation Bulk transfer of information on network device
JP4581815B2 (ja) * 2005-04-26 2010-11-17 セイコーエプソン株式会社 印刷制御装置及び印刷システム
US20060259657A1 (en) * 2005-05-10 2006-11-16 Telairity Semiconductor, Inc. Direct memory access (DMA) method and apparatus and DMA for video processing
WO2006121443A2 (en) * 2005-05-10 2006-11-16 Telairity Semiconductor, Inc. Direct memory access (dma) method and apparatus and dma for video processing
US8341360B2 (en) 2005-12-30 2012-12-25 Intel Corporation Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
US7590473B2 (en) * 2006-02-16 2009-09-15 Intel Corporation Thermal management using an on-die thermal sensor
WO2008014413A2 (en) * 2006-07-27 2008-01-31 Rambus Inc. Cross-threaded memory device and system
US7769942B2 (en) 2006-07-27 2010-08-03 Rambus, Inc. Cross-threaded memory system
JP4389921B2 (ja) 2006-10-25 2009-12-24 セイコーエプソン株式会社 データ転送回路及びそれを具備する半導体集積回路
US20080183959A1 (en) * 2007-01-29 2008-07-31 Pelley Perry H Memory system having global buffered control for memory modules
US8880970B2 (en) * 2008-12-23 2014-11-04 Conversant Intellectual Property Management Inc. Error detection method and a system including one or more memory devices
WO2010093538A1 (en) 2009-02-11 2010-08-19 Rambus Inc. Shared access memory scheme
US8996926B2 (en) * 2012-10-15 2015-03-31 Infineon Technologies Ag DMA integrity checker
US10095433B1 (en) 2012-10-24 2018-10-09 Western Digital Technologies, Inc. Out-of-order data transfer mechanisms for data storage systems
US10049061B2 (en) 2012-11-12 2018-08-14 International Business Machines Corporation Active memory device gather, scatter, and filter
US11074169B2 (en) 2013-07-03 2021-07-27 Micron Technology, Inc. Programmed memory controlled data movement and timing within a main memory device
US9141541B2 (en) 2013-09-20 2015-09-22 Advanced Micro Devices, Inc. Nested channel address interleaving
US9476938B2 (en) * 2013-09-27 2016-10-25 Novachips Canada Inc. Method and apparatus for testing surface mounted devices
CN105612580B (zh) 2013-11-11 2019-06-21 拉姆伯斯公司 使用标准控制器部件的大容量存储系统
CN104317750B (zh) * 2014-10-23 2018-01-05 山西达鑫核科技有限公司 一种可自主堆叠连接的存储介质结构
KR102428563B1 (ko) * 2015-09-30 2022-08-03 삼성전자주식회사 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들
US10783103B1 (en) * 2017-02-24 2020-09-22 Xilinx, Inc. Split control for direct memory access transfers
US10191871B2 (en) 2017-06-20 2019-01-29 Infineon Technologies Ag Safe double buffering using DMA safe linked lists
KR20190123984A (ko) 2018-04-25 2019-11-04 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10990307B2 (en) * 2018-07-27 2021-04-27 Broadcom International Pte. Ltd. System and method for providing a configurable storage media interface
US11853179B1 (en) * 2018-12-28 2023-12-26 Teledyne Lecroy, Inc. Detection of a DMA (direct memory access) memory address violation when testing PCIE devices
FR3094507A1 (fr) * 2019-03-29 2020-10-02 Stmicroelectronics (Grenoble 2) Sas Accès direct en mémoire

Family Cites Families (267)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4045781A (en) 1976-02-13 1977-08-30 Digital Equipment Corporation Memory module with selectable byte addressing for digital data processing system
US4253146A (en) * 1978-12-21 1981-02-24 Burroughs Corporation Module for coupling computer-processors
US4253144A (en) * 1978-12-21 1981-02-24 Burroughs Corporation Multi-processor communication network
US4245306A (en) * 1978-12-21 1981-01-13 Burroughs Corporation Selection of addressed processor in a multi-processor network
US4240143A (en) 1978-12-22 1980-12-16 Burroughs Corporation Hierarchical multi-processor network for memory sharing
JPS55153024A (en) * 1979-05-15 1980-11-28 Toshiba Corp Bus control system
US4442504A (en) * 1981-03-09 1984-04-10 Allen-Bradley Company Modular programmable controller
US4641249A (en) * 1983-06-22 1987-02-03 Kuraray Co., Ltd. Method and device for compensating temperature-dependent characteristic changes in ion-sensitive FET transducer
US4608702A (en) 1984-12-21 1986-08-26 Advanced Micro Devices, Inc. Method for digital clock recovery from Manchester-encoded signals
US4724520A (en) * 1985-07-01 1988-02-09 United Technologies Corporation Modular multiport data hub
US4707823A (en) 1986-07-21 1987-11-17 Chrysler Motors Corporation Fiber optic multiplexed data acquisition system
US4989113A (en) * 1987-03-13 1991-01-29 Texas Instruments Incorporated Data processing device having direct memory access with improved transfer control
JPH07117863B2 (ja) * 1987-06-26 1995-12-18 株式会社日立製作所 オンラインシステムの再立上げ方式
US4891808A (en) * 1987-12-24 1990-01-02 Coherent Communication Systems Corp. Self-synchronizing multiplexer
US5251303A (en) 1989-01-13 1993-10-05 International Business Machines Corporation System for DMA block data transfer based on linked control blocks
US5442770A (en) 1989-01-24 1995-08-15 Nec Electronics, Inc. Triple port cache memory
US4953930A (en) 1989-03-15 1990-09-04 Ramtech, Inc. CPU socket supporting socket-to-socket optical communications
JPH03156795A (ja) 1989-11-15 1991-07-04 Toshiba Micro Electron Kk 半導体メモリ回路装置
US5327553A (en) 1989-12-22 1994-07-05 Tandem Computers Incorporated Fault-tolerant computer system with /CONFIG filesystem
US5317752A (en) * 1989-12-22 1994-05-31 Tandem Computers Incorporated Fault-tolerant computer system with auto-restart after power-fall
JP2772103B2 (ja) 1990-03-28 1998-07-02 株式会社東芝 計算機システム立上げ方式
US5243703A (en) 1990-04-18 1993-09-07 Rambus, Inc. Apparatus for synchronously generating clock signals in a data processing system
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
JPH04271445A (ja) 1990-08-02 1992-09-28 Internatl Business Mach Corp <Ibm> メモリ・テスト装置
US5663901A (en) * 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
US5546591A (en) 1991-12-20 1996-08-13 Vlsi Technology, Inc. Distributed power management system for battery operated personal computers
US5461627A (en) 1991-12-24 1995-10-24 Rypinski; Chandos A. Access protocol for a common channel wireless network
JP2554816B2 (ja) 1992-02-20 1996-11-20 株式会社東芝 半導体記憶装置
WO1993018463A1 (en) 1992-03-06 1993-09-16 Rambus, Inc. Method and circuitry for minimizing clock-data skew in a bus system
US5355391A (en) 1992-03-06 1994-10-11 Rambus, Inc. High speed bus system
GB2264794B (en) * 1992-03-06 1995-09-20 Intel Corp Method and apparatus for automatic power management in a high integration floppy disk controller
DE69331053T2 (de) 1992-03-25 2002-07-04 Sun Microsystems Inc Faseroptisches speicherkupplungsystem.
US5432907A (en) 1992-05-12 1995-07-11 Network Resources Corporation Network hub with integrated bridge
US5270964A (en) 1992-05-19 1993-12-14 Sun Microsystems, Inc. Single in-line memory module
GB2270780A (en) * 1992-09-21 1994-03-23 Ibm Scatter-gather in data processing systems.
FR2697663B1 (fr) * 1992-10-30 1995-01-13 Hewett Packard Cy Circuit de test de mémoire.
US5638717A (en) * 1993-03-12 1997-06-17 Stodd; Ralph P. Tooling apparatus for high speed production of drawn metal cup-like articles
JPH0713945A (ja) 1993-06-16 1995-01-17 Nippon Sheet Glass Co Ltd 演算処理部および制御・記憶部分離型マルチプロセッサ ・システムのバス構造
US5878273A (en) 1993-06-24 1999-03-02 Discovision Associates System for microprogrammable state machine in video parser disabling portion of processing stages responsive to sequence-- end token generating by token generator responsive to received data
US5497494A (en) 1993-07-23 1996-03-05 International Business Machines Corporation Method for saving and restoring the state of a CPU executing code in protected mode
US5729709A (en) * 1993-11-12 1998-03-17 Intel Corporation Memory controller with burst addressing circuit
US5502621A (en) * 1994-03-31 1996-03-26 Hewlett-Packard Company Mirrored pin assignment for two sided multi-chip layout
US5566325A (en) 1994-06-30 1996-10-15 Digital Equipment Corporation Method and apparatus for adaptive memory access
US6175571B1 (en) * 1994-07-22 2001-01-16 Network Peripherals, Inc. Distributed memory switching hub
US5978567A (en) 1994-07-27 1999-11-02 Instant Video Technologies Inc. System for distribution of interactive multimedia and linear programs by enabling program webs which include control scripts to define presentation by client transceiver
US5553070A (en) * 1994-09-13 1996-09-03 Riley; Robert E. Data link module for time division multiplexing control systems
JPH08123717A (ja) * 1994-10-25 1996-05-17 Oki Electric Ind Co Ltd 半導体記憶装置
US6804760B2 (en) 1994-12-23 2004-10-12 Micron Technology, Inc. Method for determining a type of memory present in a system
US6725349B2 (en) * 1994-12-23 2004-04-20 Intel Corporation Method and apparatus for controlling of a memory subsystem installed with standard page mode memory and an extended data out memory
US5715456A (en) * 1995-02-13 1998-02-03 International Business Machines Corporation Method and apparatus for booting a computer system without pre-installing an operating system
US5644784A (en) 1995-03-03 1997-07-01 Intel Corporation Linear list based DMA control structure
US5638534A (en) * 1995-03-31 1997-06-10 Samsung Electronics Co., Ltd. Memory controller which executes read and write commands out of order
US5875352A (en) * 1995-11-03 1999-02-23 Sun Microsystems, Inc. Method and apparatus for multiple channel direct memory access control
US5796413A (en) 1995-12-06 1998-08-18 Compaq Computer Corporation Graphics controller utilizing video memory to provide macro command capability and enhanched command buffering
US5834956A (en) * 1995-12-29 1998-11-10 Intel Corporation Core clock correction in a 2/N mode clocking scheme
US7681005B1 (en) 1996-01-11 2010-03-16 Micron Technology, Inc. Asynchronously-accessible memory device with mode selection circuitry for burst or pipelined operation
US5966724A (en) 1996-01-11 1999-10-12 Micron Technology, Inc. Synchronous memory device with dual page and burst mode operations
JPH09198398A (ja) 1996-01-16 1997-07-31 Fujitsu Ltd パターン検索装置
US5710733A (en) * 1996-01-22 1998-01-20 Silicon Graphics, Inc. Processor-inclusive memory module
US5832250A (en) 1996-01-26 1998-11-03 Unisys Corporation Multi set cache structure having parity RAMs holding parity bits for tag data and for status data utilizing prediction circuitry that predicts and generates the needed parity bits
US5819304A (en) 1996-01-29 1998-10-06 Iowa State University Research Foundation, Inc. Random access memory assembly
US5659798A (en) 1996-02-02 1997-08-19 Blumrich; Matthias Augustin Method and system for initiating and loading DMA controller registers by using user-level programs
US5687325A (en) * 1996-04-19 1997-11-11 Chang; Web Application specific field programmable gate array
US5818844A (en) 1996-06-06 1998-10-06 Advanced Micro Devices, Inc. Address generation and data path arbitration to and from SRAM to accommodate multiple transmitted packets
US5881072A (en) * 1996-06-28 1999-03-09 International Business Machines Corporation Method of detecting error correction devices on plug-compatible memory modules
US5875454A (en) * 1996-07-24 1999-02-23 International Business Machiness Corporation Compressed data cache storage system
JPH1049511A (ja) 1996-08-02 1998-02-20 Oki Electric Ind Co Ltd 1チップマイクロコンピュータ
JP4070255B2 (ja) 1996-08-13 2008-04-02 富士通株式会社 半導体集積回路
TW304288B (en) * 1996-08-16 1997-05-01 United Microelectronics Corp Manufacturing method of semiconductor memory device with capacitor
US5706224A (en) * 1996-10-10 1998-01-06 Quality Semiconductor, Inc. Content addressable memory and random access memory partition circuit
US5893089A (en) * 1996-11-15 1999-04-06 Lextron Systems, Inc. Memory with integrated search engine
US6167486A (en) 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US5887159A (en) * 1996-12-11 1999-03-23 Digital Equipment Corporation Dynamically determining instruction hint fields
KR19980064365A (ko) 1996-12-19 1998-10-07 윌리엄비.켐플러 메모리 모듈로의 어드레스 및 데이타 분산용 장치 및 방법
CA2194026C (en) * 1996-12-24 2001-05-01 John V. Taglione Method and apparatus for moving data packets between networks while minimizing cpu interventions using a multi-bus architecture
US6308248B1 (en) * 1996-12-31 2001-10-23 Compaq Computer Corporation Method and system for allocating memory space using mapping controller, page table and frame numbers
DE19709604A1 (de) * 1997-03-08 1998-09-10 Claas Usines France Verfahren und Vorrichtung zur Feineinstellung von Bewegungsabläufen an Großballenpressen
US6031241A (en) * 1997-03-11 2000-02-29 University Of Central Florida Capillary discharge extreme ultraviolet lamp source for EUV microlithography and other related applications
US6271582B1 (en) 1997-04-07 2001-08-07 Micron Technology, Inc. Interdigitated leads-over-chip lead frame, device, and method for supporting an integrated circuit die
US5946712A (en) 1997-06-04 1999-08-31 Oak Technology, Inc. Apparatus and method for reading data from synchronous memory
WO1998057489A2 (en) 1997-06-09 1998-12-17 Metalithic Systems, Inc. Modular system for accelerating data searches and data stream operations
US6092158A (en) 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
US6243769B1 (en) * 1997-07-18 2001-06-05 Micron Technology, Inc. Dynamic buffer allocation for a computer system
US6073190A (en) * 1997-07-18 2000-06-06 Micron Electronics, Inc. System for dynamic buffer allocation comprising control logic for controlling a first address buffer and a first data buffer as a matched pair
US6760833B1 (en) 1997-08-01 2004-07-06 Micron Technology, Inc. Split embedded DRAM processor
US6105075A (en) 1997-08-05 2000-08-15 Adaptec, Inc. Scatter gather memory system for a hardware accelerated command interpreter engine
JP4014708B2 (ja) 1997-08-21 2007-11-28 株式会社ルネサステクノロジ 半導体集積回路装置の設計方法
US6128703A (en) 1997-09-05 2000-10-03 Integrated Device Technology, Inc. Method and apparatus for memory prefetch operation of volatile non-coherent data
US5944800A (en) 1997-09-12 1999-08-31 Infineon Technologies Corporation Direct memory access unit having a definable plurality of transfer channels
US6249802B1 (en) * 1997-09-19 2001-06-19 Silicon Graphics, Inc. Method, system, and computer program product for allocating physical memory in a distributed shared memory network
US6223301B1 (en) * 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory
US6185676B1 (en) * 1997-09-30 2001-02-06 Intel Corporation Method and apparatus for performing early branch prediction in a microprocessor
JPH11120120A (ja) 1997-10-13 1999-04-30 Fujitsu Ltd カードバス用インターフェース回路及びそれを有するカードバス用pcカード
US5889714A (en) * 1997-11-03 1999-03-30 Digital Equipment Corporation Adaptive precharge management for synchronous DRAM
US5987196A (en) 1997-11-06 1999-11-16 Micron Technology, Inc. Semiconductor structure having an optical signal path in a substrate and method for forming the same
US6226710B1 (en) 1997-11-14 2001-05-01 Utmc Microelectronic Systems Inc. Content addressable memory (CAM) engine
US7007130B1 (en) * 1998-02-13 2006-02-28 Intel Corporation Memory system including a memory module having a memory module controller interfacing between a system memory controller and memory devices of the memory module
US6098158A (en) 1997-12-18 2000-08-01 International Business Machines Corporation Software-enabled fast boot
US6157398A (en) 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6023726A (en) * 1998-01-20 2000-02-08 Netscape Communications Corporation User configurable prefetch control system for enabling client to prefetch documents from a network server
GB2333896B (en) * 1998-01-31 2003-04-09 Mitel Semiconductor Ab Vertical cavity surface emitting laser
US6970968B1 (en) 1998-02-13 2005-11-29 Intel Corporation Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module
US7024518B2 (en) 1998-02-13 2006-04-04 Intel Corporation Dual-port buffer-to-memory interface
US6186400B1 (en) * 1998-03-20 2001-02-13 Symbol Technologies, Inc. Bar code reader with an integrated scanning component module mountable on printed circuit board
US6023738A (en) 1998-03-30 2000-02-08 Nvidia Corporation Method and apparatus for accelerating the transfer of graphical images
US6079008A (en) * 1998-04-03 2000-06-20 Patton Electronics Co. Multiple thread multiple data predictive coded parallel processing system and method
US6247107B1 (en) 1998-04-06 2001-06-12 Advanced Micro Devices, Inc. Chipset configured to perform data-directed prefetching
JPH11316617A (ja) 1998-05-01 1999-11-16 Mitsubishi Electric Corp 半導体回路装置
KR100283243B1 (ko) 1998-05-11 2001-03-02 구자홍 운영체제의 부팅방법
US6167465A (en) 1998-05-20 2000-12-26 Aureal Semiconductor, Inc. System for managing multiple DMA connections between a peripheral device and a memory and performing real-time operations on data carried by a selected DMA connection
US6118719A (en) 1998-05-20 2000-09-12 International Business Machines Corporation Self-initiated self-refresh mode for memory modules
SG75958A1 (en) 1998-06-01 2000-10-24 Hitachi Ulsi Sys Co Ltd Semiconductor device and a method of producing semiconductor device
US6405280B1 (en) 1998-06-05 2002-06-11 Micron Technology, Inc. Packet-oriented synchronous DRAM interface supporting a plurality of orderings for data block transfers within a burst sequence
US6134624A (en) 1998-06-08 2000-10-17 Storage Technology Corporation High bandwidth cache system
US6301637B1 (en) 1998-06-08 2001-10-09 Storage Technology Corporation High performance data paths
US6453377B1 (en) * 1998-06-16 2002-09-17 Micron Technology, Inc. Computer including optical interconnect, memory unit, and method of assembling a computer
JP2000011640A (ja) 1998-06-23 2000-01-14 Nec Corp 半導体記憶装置
FR2780535B1 (fr) * 1998-06-25 2000-08-25 Inst Nat Rech Inf Automat Dispositif de traitement de donnees d'acquisition, notamment de donnees d'image
JP3178423B2 (ja) 1998-07-03 2001-06-18 日本電気株式会社 バーチャルチャネルsdram
US6286083B1 (en) 1998-07-08 2001-09-04 Compaq Computer Corporation Computer system with adaptive memory arbitration scheme
US6912637B1 (en) * 1998-07-08 2005-06-28 Broadcom Corporation Apparatus and method for managing memory in a network switch
JP3248617B2 (ja) * 1998-07-14 2002-01-21 日本電気株式会社 半導体記憶装置
US6272609B1 (en) 1998-07-31 2001-08-07 Micron Electronics, Inc. Pipelined memory controller
US6199121B1 (en) * 1998-08-07 2001-03-06 Oak Technology, Inc. High speed dynamic chaining of DMA operations without suspending a DMA controller or incurring race conditions
US6061296A (en) * 1998-08-17 2000-05-09 Vanguard International Semiconductor Corporation Multiple data clock activation with programmable delay for use in multiple CAS latency memory devices
US6219725B1 (en) * 1998-08-28 2001-04-17 Hewlett-Packard Company Method and apparatus for performing direct memory access transfers involving non-sequentially-addressable memory locations
US6029250A (en) * 1998-09-09 2000-02-22 Micron Technology, Inc. Method and apparatus for adaptively adjusting the timing offset between a clock signal and digital signals transmitted coincident with that clock signal, and memory device and system using same
US6202106B1 (en) * 1998-09-09 2001-03-13 Xilinx, Inc. Method for providing specific knowledge of a structure of parameter blocks to an intelligent direct memory access controller
US6910109B2 (en) 1998-09-30 2005-06-21 Intel Corporation Tracking memory page state
US6587912B2 (en) * 1998-09-30 2003-07-01 Intel Corporation Method and apparatus for implementing multiple memory buses on a memory module
US6243831B1 (en) 1998-10-31 2001-06-05 Compaq Computer Corporation Computer system with power loss protection mechanism
JP3248500B2 (ja) * 1998-11-12 2002-01-21 日本電気株式会社 半導体記憶装置およびそのデータ読み出し方法
US6434639B1 (en) 1998-11-13 2002-08-13 Intel Corporation System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operation
US6438622B1 (en) 1998-11-17 2002-08-20 Intel Corporation Multiprocessor system including a docking system
US6430696B1 (en) 1998-11-30 2002-08-06 Micron Technology, Inc. Method and apparatus for high speed data capture utilizing bit-to-bit timing correction, and memory device using same
US6463059B1 (en) 1998-12-04 2002-10-08 Koninklijke Philips Electronics N.V. Direct memory access execution engine with indirect addressing of circular queues in addition to direct memory addressing
US6349363B2 (en) 1998-12-08 2002-02-19 Intel Corporation Multi-section cache with different attributes for each section
US6067262A (en) * 1998-12-11 2000-05-23 Lsi Logic Corporation Redundancy analysis for embedded memories with built-in self test and built-in self repair
US6374360B1 (en) 1998-12-11 2002-04-16 Micron Technology, Inc. Method and apparatus for bit-to-bit timing correction of a high speed memory bus
US6191663B1 (en) * 1998-12-22 2001-02-20 Intel Corporation Echo reduction on bit-serial, multi-drop bus
US6367074B1 (en) * 1998-12-28 2002-04-02 Intel Corporation Operation of a system
US6598154B1 (en) 1998-12-29 2003-07-22 Intel Corporation Precoding branch instructions to reduce branch-penalty in pipelined processors
US6061263A (en) * 1998-12-29 2000-05-09 Intel Corporation Small outline rambus in-line memory module
CN100359601C (zh) 1999-02-01 2008-01-02 株式会社日立制作所 半导体集成电路和非易失性存储器元件
US6285349B1 (en) 1999-02-26 2001-09-04 Intel Corporation Correcting non-uniformity in displays
US6564329B1 (en) * 1999-03-16 2003-05-13 Linkup Systems Corporation System and method for dynamic clock generation
JP4573940B2 (ja) * 1999-03-19 2010-11-04 パナソニック株式会社 クロスバススイッチ装置
US6389514B1 (en) * 1999-03-25 2002-05-14 Hewlett-Packard Company Method and computer system for speculatively closing pages in memory
US6496909B1 (en) 1999-04-06 2002-12-17 Silicon Graphics, Inc. Method for managing concurrent access to virtual memory data structures
US6433785B1 (en) 1999-04-09 2002-08-13 Intel Corporation Method and apparatus for improving processor to graphics device throughput
US6434635B1 (en) 1999-04-29 2002-08-13 Unisys Corporation Methods, apparatus, and computer program product for data transfer using a scatter-gather list
US6401149B1 (en) 1999-05-05 2002-06-04 Qlogic Corporation Methods for context switching within a disk controller
US6381190B1 (en) * 1999-05-13 2002-04-30 Nec Corporation Semiconductor memory device in which use of cache can be selected
US6233376B1 (en) * 1999-05-18 2001-05-15 The United States Of America As Represented By The Secretary Of The Navy Embedded fiber optic circuit boards and integrated circuits
US6449308B1 (en) 1999-05-25 2002-09-10 Intel Corporation High-speed digital distribution system
US6294937B1 (en) 1999-05-25 2001-09-25 Lsi Logic Corporation Method and apparatus for self correcting parallel I/O circuitry
JP3721283B2 (ja) 1999-06-03 2005-11-30 株式会社日立製作所 主記憶共有型マルチプロセッサシステム
JP2001014840A (ja) * 1999-06-24 2001-01-19 Nec Corp 複数ラインバッファ型メモリlsi
US6434736B1 (en) 1999-07-08 2002-08-13 Intel Corporation Location based timing scheme in memory design
US6401213B1 (en) 1999-07-09 2002-06-04 Micron Technology, Inc. Timing circuit for high speed memory
US6460114B1 (en) 1999-07-29 2002-10-01 Micron Technology, Inc. Storing a flushed cache line in a memory buffer of a controller
US6477592B1 (en) * 1999-08-06 2002-11-05 Integrated Memory Logic, Inc. System for I/O interfacing for semiconductor chip utilizing addition of reference element to each data element in first data stream and interpret to recover data elements of second data stream
US6629220B1 (en) 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
US6493803B1 (en) * 1999-08-23 2002-12-10 Advanced Micro Devices, Inc. Direct memory access controller with channel width configurability support
US6539490B1 (en) * 1999-08-30 2003-03-25 Micron Technology, Inc. Clock distribution without clock delay or skew
US6552564B1 (en) * 1999-08-30 2003-04-22 Micron Technology, Inc. Technique to reduce reflections and ringing on CMOS interconnections
US6307769B1 (en) 1999-09-02 2001-10-23 Micron Technology, Inc. Semiconductor devices having mirrored terminal arrangements, devices including same, and methods of testing such semiconductor devices
US6594713B1 (en) 1999-09-10 2003-07-15 Texas Instruments Incorporated Hub interface unit and application unit interfaces for expanded direct memory access processor
US6438668B1 (en) 1999-09-30 2002-08-20 Apple Computer, Inc. Method and apparatus for reducing power consumption in a digital processing system
US6275914B1 (en) * 1999-10-15 2001-08-14 Micron Technology, Inc Apparatus for preserving memory request ordering across multiple memory controllers
US6782465B1 (en) * 1999-10-20 2004-08-24 Infineon Technologies North America Corporation Linked list DMA descriptor architecture
US6421744B1 (en) 1999-10-25 2002-07-16 Motorola, Inc. Direct memory access controller and method therefor
KR100319292B1 (ko) 1999-12-02 2002-01-05 윤종용 빠른 부팅 속도를 갖는 컴퓨터 시스템 및 그 방법
US6501471B1 (en) 1999-12-13 2002-12-31 Intel Corporation Volume rendering
JP3546788B2 (ja) * 1999-12-20 2004-07-28 日本電気株式会社 メモリ制御回路
JP3356747B2 (ja) 1999-12-22 2002-12-16 エヌイーシーマイクロシステム株式会社 半導体記憶装置
US6670558B2 (en) * 1999-12-29 2003-12-30 Intel Corporation Inline and “Y” input-output bus topology
US6496193B1 (en) 1999-12-30 2002-12-17 Intel Corporation Method and apparatus for fast loading of texture data into a tiled memory
US6628294B1 (en) 1999-12-31 2003-09-30 Intel Corporation Prefetching of virtual-to-physical address translation for display data
KR100343383B1 (ko) * 2000-01-05 2002-07-15 윤종용 반도체 메모리 장치 및 이 장치의 데이터 샘플링 방법
US6745275B2 (en) 2000-01-25 2004-06-01 Via Technologies, Inc. Feedback system for accomodating different memory module loading
US6823023B1 (en) 2000-01-31 2004-11-23 Intel Corporation Serial bus communication system
US6185352B1 (en) * 2000-02-24 2001-02-06 Siecor Operations, Llc Optical fiber ribbon fan-out cables
JP3422308B2 (ja) * 2000-03-02 2003-06-30 日本電気株式会社 データ処理装置
JP2001265539A (ja) 2000-03-16 2001-09-28 Fuji Xerox Co Ltd アレイ型記憶装置及び情報処理システム
JP2001274323A (ja) 2000-03-24 2001-10-05 Hitachi Ltd 半導体装置とそれを搭載した半導体モジュール、および半導体装置の製造方法
US6370611B1 (en) * 2000-04-04 2002-04-09 Compaq Computer Corporation Raid XOR operations to synchronous DRAM using a read buffer and pipelining of synchronous DRAM burst read data
US6728800B1 (en) * 2000-06-28 2004-04-27 Intel Corporation Efficient performance based scheduling mechanism for handling multiple TLB operations
US6594722B1 (en) 2000-06-29 2003-07-15 Intel Corporation Mechanism for managing multiple out-of-order packet streams in a PCI host bridge
US6799268B1 (en) 2000-06-30 2004-09-28 Intel Corporation Branch ordering buffer
JP2002014875A (ja) 2000-06-30 2002-01-18 Mitsubishi Electric Corp 半導体集積回路、半導体集積回路のメモリリペア方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US6754812B1 (en) 2000-07-06 2004-06-22 Intel Corporation Hardware predication for conditional instruction path branching
US6816947B1 (en) 2000-07-20 2004-11-09 Silicon Graphics, Inc. System and method for memory arbitration
US6845409B1 (en) * 2000-07-25 2005-01-18 Sun Microsystems, Inc. Data exchange methods for a switch which selectively forms a communication channel between a processing unit and multiple devices
US6647470B1 (en) 2000-08-21 2003-11-11 Micron Technology, Inc. Memory device having posted write per command
US6785780B1 (en) 2000-08-31 2004-08-31 Micron Technology, Inc. Distributed processor memory module and method
US6453393B1 (en) 2000-09-18 2002-09-17 Intel Corporation Method and apparatus for interfacing to a computer memory
US6526483B1 (en) * 2000-09-20 2003-02-25 Broadcom Corporation Page open hint in transactions
US7228441B2 (en) 2000-09-27 2007-06-05 Huron Ip Llc Multi-server and multi-CPU power management system and method
US6523093B1 (en) * 2000-09-29 2003-02-18 Intel Corporation Prefetch buffer allocation and filtering system
US6859208B1 (en) 2000-09-29 2005-02-22 Intel Corporation Shared translation address caching
US6523092B1 (en) * 2000-09-29 2003-02-18 Intel Corporation Cache line replacement policy enhancement to avoid memory page thrashing
US6658509B1 (en) 2000-10-03 2003-12-02 Intel Corporation Multi-tier point-to-point ring memory interface
US6792059B2 (en) 2000-11-30 2004-09-14 Trw Inc. Early/on-time/late gate bit synchronizer
US6631440B2 (en) 2000-11-30 2003-10-07 Hewlett-Packard Development Company Method and apparatus for scheduling memory calibrations based on transactions
US6807630B2 (en) 2000-12-15 2004-10-19 International Business Machines Corporation Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memory
US6801994B2 (en) 2000-12-20 2004-10-05 Microsoft Corporation Software management systems and methods for automotive computing devices
US6622227B2 (en) 2000-12-27 2003-09-16 Intel Corporation Method and apparatus for utilizing write buffers in memory control/interface
US6751703B2 (en) 2000-12-27 2004-06-15 Emc Corporation Data storage systems and methods which utilize an on-board cache
JP3485092B2 (ja) * 2001-01-19 2004-01-13 セイコーエプソン株式会社 半導体装置およびその製造方法
US6889304B2 (en) * 2001-02-28 2005-05-03 Rambus Inc. Memory device supporting a dynamically configurable core organization
DE10110469A1 (de) 2001-03-05 2002-09-26 Infineon Technologies Ag Integrierter Speicher und Verfahren zum Testen und Reparieren desselben
US20020144027A1 (en) 2001-03-27 2002-10-03 Schmisseur Mark A. Multi-use data access descriptor
US6904499B2 (en) 2001-03-30 2005-06-07 Intel Corporation Controlling cache memory in external chipset using processor
US6670959B2 (en) * 2001-05-18 2003-12-30 Sun Microsystems, Inc. Method and apparatus for reducing inefficiencies in shared memory devices
EP1402376B1 (en) 2001-05-24 2010-06-30 Tecey Software Development KG, LLC Optical bus arrangement for computer system
SE524110C2 (sv) * 2001-06-06 2004-06-29 Kvaser Consultant Ab Anordning och förfarande vid system med lokalt utplacerade modulenheter samt kontaktenhet för anslutning av sådan modulenhet
US6697926B2 (en) * 2001-06-06 2004-02-24 Micron Technology, Inc. Method and apparatus for determining actual write latency and accurately aligning the start of data capture with the arrival of data at a memory device
US6920533B2 (en) * 2001-06-27 2005-07-19 Intel Corporation System boot time reduction method
US6721195B2 (en) * 2001-07-12 2004-04-13 Micron Technology, Inc. Reversed memory module socket and motherboard incorporating same
US7036004B2 (en) * 2001-07-25 2006-04-25 Micron Technology, Inc. Power up initialization for memory
US6792496B2 (en) 2001-08-02 2004-09-14 Intel Corporation Prefetching data for peripheral component interconnect devices
US6681292B2 (en) * 2001-08-27 2004-01-20 Intel Corporation Distributed read and write caching implementation for optimized input/output applications
CN100570577C (zh) * 2001-08-29 2009-12-16 联发科技股份有限公司 高速程序跟踪
US7941056B2 (en) * 2001-08-30 2011-05-10 Micron Technology, Inc. Optical interconnect in high-speed memory systems
US6665202B2 (en) 2001-09-25 2003-12-16 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that can identify highest priority matches in non-sectored CAM arrays and methods of operating same
US6718440B2 (en) * 2001-09-28 2004-04-06 Intel Corporation Memory access latency hiding with hint buffer
US7062591B2 (en) * 2001-09-28 2006-06-13 Dot Hill Systems Corp. Controller data sharing using a modular DMA architecture
US6859856B2 (en) * 2001-10-23 2005-02-22 Flex P Industries Sdn. Bhd Method and system for a compact flash memory controller
DE10153657C2 (de) * 2001-10-31 2003-11-06 Infineon Technologies Ag Anordnung zur Datenübertragung in einem Halbleiterspeichersystem und Datenübertragungsverfahren dafür
US6886048B2 (en) * 2001-11-15 2005-04-26 Hewlett-Packard Development Company, L.P. Techniques for processing out-of-order requests in a processor-based system
US7227870B2 (en) * 2001-11-20 2007-06-05 Broadcom Corporation Systems including packet interfaces, switches, and packet DMA circuits for splitting and merging packet streams
US6646929B1 (en) 2001-12-05 2003-11-11 Lsi Logic Corporation Methods and structure for read data synchronization with minimal latency
KR100454123B1 (ko) 2001-12-06 2004-10-26 삼성전자주식회사 반도체 집적 회로 장치 및 그것을 구비한 모듈
US6775747B2 (en) 2002-01-03 2004-08-10 Intel Corporation System and method for performing page table walks on speculative software prefetch operations
US6766385B2 (en) 2002-01-07 2004-07-20 Intel Corporation Device and method for maximizing performance on a memory interface with a variable number of channels
US6804764B2 (en) 2002-01-22 2004-10-12 Mircron Technology, Inc. Write clock and data window tuning based on rank select
JP2003256265A (ja) 2002-02-18 2003-09-10 Internatl Business Mach Corp <Ibm> 検索メモリ、メモリ検索用コントローラ、メモリ検索方法
US6912612B2 (en) 2002-02-25 2005-06-28 Intel Corporation Shared bypass bus structure
US6795899B2 (en) 2002-03-22 2004-09-21 Intel Corporation Memory system with burst length shorter than prefetch length
US6735682B2 (en) * 2002-03-28 2004-05-11 Intel Corporation Apparatus and method for address calculation
US7110400B2 (en) 2002-04-10 2006-09-19 Integrated Device Technology, Inc. Random access memory architecture and serial interface with continuous packet handling capability
US20030217223A1 (en) 2002-05-14 2003-11-20 Infineon Technologies North America Corp. Combined command set
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US6731548B2 (en) 2002-06-07 2004-05-04 Micron Technology, Inc. Reduced power registered memory module and method
US6898674B2 (en) 2002-06-11 2005-05-24 Intel Corporation Apparatus, method, and system for synchronizing information prefetch between processors and memory controllers
EP1383052B1 (en) * 2002-07-15 2006-03-29 Infineon Technologies AG Memory system
US7200024B2 (en) * 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7836252B2 (en) * 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7102907B2 (en) * 2002-09-09 2006-09-05 Micron Technology, Inc. Wavelength division multiplexed memory module, memory system and method
US6821029B1 (en) 2002-09-10 2004-11-23 Xilinx, Inc. High speed serial I/O technology using an optical link
US7117289B2 (en) * 2002-09-30 2006-10-03 Intel Corporation Claiming cycles on a processor bus in a system having a PCI to PCI bridge north of a memory controller
US6811320B1 (en) 2002-11-13 2004-11-02 Russell Mistretta Abbott System for connecting a fiber optic cable to an electronic device
US7366423B2 (en) 2002-12-31 2008-04-29 Intel Corporation System having multiple agents on optical and electrical bus
US6961259B2 (en) 2003-01-23 2005-11-01 Micron Technology, Inc. Apparatus and methods for optically-coupled memory systems
US7469316B2 (en) * 2003-02-10 2008-12-23 Intel Corporation Buffered writes and memory page control
DE10313605B4 (de) 2003-03-26 2009-03-19 Qimonda Ag Vorrichtung und Verfahren zum Steuern mehrerer Speicherbausteine
US20040216018A1 (en) * 2003-04-28 2004-10-28 Cheung Kam Tim Direct memory access controller and method
WO2004102403A2 (en) * 2003-05-13 2004-11-25 Advanced Micro Devices, Inc. A system including a host connected to a plurality of memory modules via a serial memory interconnect
US20040243769A1 (en) * 2003-05-30 2004-12-02 Frame David W. Tree based memory structure
US7428644B2 (en) 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7287101B2 (en) * 2003-08-05 2007-10-23 Intel Corporation Direct memory access using memory descriptor list
US7174432B2 (en) * 2003-08-19 2007-02-06 Nvidia Corporation Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture
US20050050237A1 (en) 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory

Also Published As

Publication number Publication date
CN1965285A (zh) 2007-05-16
JP2007508601A (ja) 2007-04-05
WO2005010670A2 (en) 2005-02-03
KR100887526B1 (ko) 2009-03-09
EP1646925A4 (en) 2007-10-31
DE602004028831D1 (ko) 2010-10-07
EP1646925B1 (en) 2010-08-25
SG129443A1 (en) 2007-02-26
US7389364B2 (en) 2008-06-17
US20050160201A1 (en) 2005-07-21
US7222197B2 (en) 2007-05-22
US7966430B2 (en) 2011-06-21
ATE479138T1 (de) 2010-09-15
US20050021884A1 (en) 2005-01-27
JP4560646B2 (ja) 2010-10-13
US20110314199A1 (en) 2011-12-22
EP2256587A1 (en) 2010-12-01
CN100595720C (zh) 2010-03-24
TW200517848A (en) 2005-06-01
US20090327532A1 (en) 2009-12-31
EP1646925A2 (en) 2006-04-19
US8209445B2 (en) 2012-06-26
WO2005010670A3 (en) 2006-11-16

Similar Documents

Publication Publication Date Title
KR100887526B1 (ko) 허브 기반 메모리 시스템에서 직접 메모리 액세스를 위한장치 및 방법
US7213082B2 (en) Memory hub and method for providing memory sequencing hints
US7415567B2 (en) Memory hub bypass circuit and method
KR100855193B1 (ko) 허브-기반 메모리 서브-시스템에서 양방향 데이터 버스용데이터 바이패스 장치 및 방법
EP1665058B1 (en) Memory module and method having on-board data search capabilites and processor-based system using such memory modules
US20060206679A1 (en) System and method for read synchronization of memory modules
US20060271746A1 (en) Arbitration system and method for memory responses in a hub-based memory system
US20050210185A1 (en) System and method for organizing data transfers with memory hub memory modules
JP2007520800A (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