KR20060111640A - 메모리 허브 및 메모리 시스템 실행 모니터링을 위한 방법 - Google Patents

메모리 허브 및 메모리 시스템 실행 모니터링을 위한 방법 Download PDF

Info

Publication number
KR20060111640A
KR20060111640A KR1020067013098A KR20067013098A KR20060111640A KR 20060111640 A KR20060111640 A KR 20060111640A KR 1020067013098 A KR1020067013098 A KR 1020067013098A KR 20067013098 A KR20067013098 A KR 20067013098A KR 20060111640 A KR20060111640 A KR 20060111640A
Authority
KR
South Korea
Prior art keywords
memory
hub
requests
coupled
execution
Prior art date
Application number
KR1020067013098A
Other languages
English (en)
Other versions
KR100848255B1 (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 KR20060111640A publication Critical patent/KR20060111640A/ko
Application granted granted Critical
Publication of KR100848255B1 publication Critical patent/KR100848255B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

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)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

메모리 모듈은 몇 개의 메모리 디바이스들에 결합된 메모리 허브를 포함한다. 메모리 허브는 하나 이상의 시스템 메트릭들, 예를 들면, 페이지 히트율, 프리페치 히트들의 수 또는 퍼센티지, 캐시 히트율 또는 퍼센티지, 판독률, 판독 요청들의 수, 기입율, 기입 요청들의 수, 메모리 버스 이용률 또는 퍼센티지, 로컬 허브 요청률 또는 수, 및 원격 허브 요청률 또는 수를 추적하는 적어도 하나의 실행 카운터를 포함한다.
메모리 허브, 컴퓨터 시스템, 메모리 디바이스

Description

메모리 허브 및 메모리 시스템 실행 모니터링을 위한 방법{Memory hub and method for memory system performance monitoring}
관련 출원의 참조
본 출원은 출원의 명칭이 "MEMORY HUB AND METHOD FOR MEMORY SYSTEM PERFORMANCE MONITORING"인, 2003년 12월 29일에 출원된 미국 특허출원 제 10/747,984호의 출원일의 권익을 청구하고, 이는 참고로서 본원에 통합되어 있다.
본 발명은 컴퓨터 시스템들에 관한 것으로, 특히 여러 개의 메모리 디바이스들을 프로세서 또는 다른 메모리 액세스 디바이스에 결합하는 메모리 허브를 갖는 컴퓨터 시스템에 관한 것이다.
컴퓨터 시스템들은 프로세서에 의해 액세스된 데이터를 저장하기 위해 동적 랜덤 액세스 메모리("DRAM") 디바이스들과 같은 메모리 디바이스들을 사용한다. 이들 메모리 디바이스들은 통상적으로 컴퓨터 시스템에서 시스템 메모리로서 사용된다. 전형적인 컴퓨터 시스템에서, 프로세서는 프로세서 버스 및 메모리 제어기를 통해 시스템 메모리와 통신한다. 프로세서는 메모리 요청을 발행하며, 이는 판독 명령과 같은 메모리 명령, 및 데이터 또는 명령들을 판독할 위치를 지정하는 주소 를 포함한다. 메모리 제어기는 시스템 메모리에 인가되는 행 및 열 주소들뿐만 아니라 적합한 명령신호들을 생성하기 위해 명령 및 주소를 사용한다. 명령들 및 주소들에 응답하여, 시스템 메모리와 프로세서간에 데이터가 전송된다. 메모리 제어기는 흔히 시스템 제어기의 일부이며, 프로세서 버스를 PCI 버스와 같은 확장 버스에 결합하기 위한 버스 브릿지 회로를 또한 포함한다.
메모리 디바이스들의 동작 속도가 계속적으로 증가되었을지라도, 동작 속도에서 이러한 증가는 프로세서들의 동작 속도의 증가에 보조를 맞추지 않았다. 메모리 디바이스들에 프로세서들을 결합하는 메모리의 제어기들의 동작 속도의 증가는 훨씬 더 느렸다. 메모리 제어기들 및 메모리 디바이스들의 상대적으로 느린 속도는 프로세서와 메모리 디바이스들간에 데이터 대역폭을 제한시킨다.
프로세서들과 메모리 디바이스들간에 제한된 대역폭 외에도, 컴퓨터 시스템의 성능은 시스템 메모리 디바이스들로부터 데이터를 읽는데 필요한 시간을 증가시키는 레이턴시 문제들에 의해서도 제한된다. 구체적으로, 메모리 디바이스 판독 명령이 동기형 DRAM("SDRAM") 디바이스와 같은 시스템 메모리 디바이스에 결합될 때, 판독된 데이터는 몇 개의 클럭기간들의 지연 후에만 SDRAM 디바이스로부터 출력된다. 그러므로, SDRAM 디바이스들이 높은 데이터율로 동기하여 버스트 데이터를 출력할 수 있을지라도, 초기에 데이터를 제공하는데 있어 지연은 이러한 SDRAM 디바이스들을 사용하는 컴퓨터 시스템의 동작 속도를 현저하게 느리게 할 수 있다.
메모리 레이턴시 문제를 완화시키는 한 방법은 메모리 허브를 통해 프로세서에 결합된 복수의 메모리 디바이스들을 사용하는 것이다. 메모리 허브 구조에서, 시스템 제어기 또는 메모리 제어기는 몇 개의 메모리 모듈들에 결합되고, 그 각각은 몇 개의 메모리 디바이스들에 결합된 메모리 허브를 포함한다. 메모리 허브는 메모리 요청들 및 응답들을 효율적으로 제어기와 메모리 디바이스들간에 보낸다. 이러한 구조를 채용하는 컴퓨터 시스템들은 다른 메모리 디바이스가 이전 메모리 액세스들에 응답하고 있는 동안에 한 프로세서가 한 메모리 디바이스에 액세스할 수 있기 때문에 높은 대역폭을 가질 수 있다. 예를 들면, 프로세서는 시스템 내 다른 메모리 디바이스가 프로세서에 판독 데이터를 제공하는 것을 준비하고 있는 동안에 시스템 내 메모리 디바이스들 중 하나에 기입 데이터를 출력할 수 있다.
메모리 허브들을 사용하는 컴퓨터 시스템들이 우수한 성능을 제공할 수 있을지라도, 이들은 그럼에도 불구하고 몇 가지 이유로 최적의 속도에서 동작하지 못한다. 예를 들면, 메모리 허브들이 큰 메모리 대역폭을 컴퓨터 시스템들에 제공할 수 있을지라도, 이들은 여전히 위에 언급한 유형의 레이턴시 문제들을 겪는다. 구체적으로, 다른 메모리 디바이스가 데이터 전송을 준비하고 있는 동안에 프로세서가 한 메모리 디바이스와 통신할 수 있을 지라도, 다른 메모리 디바이스로부터의 데이터가 사용될 수 있기 전에 한 메모리 디바이스로부터의 데이터를 수신하는 것이 때때로 필요하다. 다른 메모리 디바이스로부터 수신된 데이터가 사용될 수 있기 전에 한 메모리 디바이스로부터 데이터가 수신되어야 하는 경우에, 레이턴시 문제가 계속되어 이러한 컴퓨터 시스템들의 동작 속도를 느리게 한다.
메모리 디바이스들에서 레이턴시를 감소시키는데 사용된 한 기술은 데이터를 프리페치(prefetch)하는 것, 즉 실행되고 있는 프로그램에 의해 데이터가 요청되기 전에 시스템 메모리로부터 데이터를 판독하는 것이다. 일반적으로 프리페치할 데이터는 사전에 페치된 데이터의 패턴에 기초하여 선택된다. 실행되는 프로그램에 의해 데이터가 필요로 되기 전에 한 시퀀스 주소들에서 연이은 주소들로부터 페치될 수 있게 패턴은 데이터를 페치해 올 한 시퀀스의 주소들만큼이나 간단할 수 있다. "스트라이드(stride)"로서 알려진 패턴은 물론 더 복잡할 수도 있다.
또한, 메모리 허브들이 보다 큰 메모리 대역폭을 컴퓨터 시스템들에 제공할 수 있을 지라도, 이들은 여전히 스루풋 문제를 안고 있다. 예를 들면, 데이터가 특정의 한 행의 메모리 셀들로부터 판독될 수 있기 전에, 통상적으로 어레이에서 디지트 라인들은 이들을 등화함으로써 프리차지된다. 그러면 특정의 행은 이 행의 메모리 셀들을 각 열들의 한 디지트 라인들에 결합시킴으로써 개방된다. 각 열의 디지트 라인들간에 결합된 각각의 센스 증폭기는 각각의 메모리 셀에 저장된 데이터에 대응하는 전압의 변화에 응답한다. 일단 행이 개방되면, 데이터는 디지트 라인들을 데이터 판독 경로에 결합함으로써 그 개방된 행의 각 열로부터 결합될 수 있다. 그러므로, 한 행을 개방하는 것은 페이지라고도 하는 것으로서, 이는 유한한 량의 시간을 소비하고 메모리 스루풋에 한계를 둔다.
마지막으로, 한 행을 프리차지 또는 개방시킬 수 있는지의 여부뿐만 아니라 데이터를 프리페치할지의 여부( 및 어떤 데이터를 프리페치할지의 여부) 및 액세스된 데이터를 캐시할지의 여부에 대한 최적의 판정은 시간에 따라 달라질 수 있고 메모리 허브에 결합된 프로세서에 의해 실행되는 애플리케이션의 기능에 따라 달라질 수 있다.
메모리 허브 구조들에 있어서의 또 다른 잠재적인 문제는 메모리 요청들 및 데이터를 메모리 허브를 통해 다운스트림 메모리 모듈들에/로부터 결합하기 위한 콘딧(conduit)로서의 메모리 허브의 사용에 관계된 것이다. 메모리 요청들 및 데이터가 메모리 허브를 통해 효율적으로 보내지지 않는다면, 메모리 허브들을 채용하는 메모리 시스템의 메모리 대역폭은 심하게 제한될 수 있다.
위에 기술한 모든 문제들은 모듈에 장착된 메모리 허브를 포함하여 메모리 모듈을 서로 다른 점들에서 구성함으로써 어느 정도 해결될 수 있다. 그러나, 메모리 모듈의 구성이 최적화될 수 있기 전에, 메모리 허브의 실행이 없는 영역들이 결정될 수 있게 메모리 허브의 실행을 분석하는 것이 필요하거나 바람직하다. 그러나, 프로세서 기반의 시스템에서 사용되는 메모리 시스템들의 진행중의 실행을 분석하는 적합한 기술은 개발되지 않았다.
그러므로, 시스템의 구성이 최적화될 수도 있게, 메모리 허브 구조를 사용하는 메모리의 실행이 결정될 수 있게 할 수 있는 메모리 허브 구조의 이점을 제공하는 컴퓨터 구조에 대한 필요성이 있다.
본 발명의 일 양상에 따라서, 복수의 메모리 디바이스들 및 메모리 허브를 포함하는 메모리 모듈 및 방법이 제공된다. 메모리 허브는 메모리 디바이스들 중 적어도 한 메모리 디바이스의 메모리 셀들에 액세스하기 위한 메모리 요청들을 수신하는, 광학 입력/출력 포트와 같은 링크 인터페이스를 포함한다. 메모리 허브는 메모리 디바이스들 중 적어도 한 메모리 디바이스의 메모리 셀들에 액세스하기 위한 메모리 요청들을 수신하는, 광학 입력/출력 포트와 같은 링크 인터페이스를 내장한다. 메모리 허브는 메모리 디바이스들에 결합된 메모리 디바이스 인터페이스를 또한 내장하며, 메모리 디바이스 인터페이스는 메모리 디바이스들 중 적어도 한 메모리 디바이스의 메모리 셀들에 액세스하기 위한 메모리 디바이스들에 메모리 요청들을 결합하고 메모리 요청들 중 적어도 일부에 응답하여 판독 데이터를 수신하게 동작한다. 메모리 허브는 또한 메모리 디바이스 인터페이스 및/또는 링크 인터페이스에 결합된 실행 카운터(performance counter)를 내장한다. 실행 카운터는 페이지 히트율, 프리페치 히트들의 수 또는 퍼센티지, 캐시 히트율 또는 퍼센티지, 판독률, 판독 요청들의 수, 기입율, 기입 요청들의 수, 메모리 버스 이용률 또는 퍼센티지, 로컬 허브 요청률 또는 수, 및 원격 허브 요청률 또는 수로 구성된 그룹으로부터 선택된 적어도 하나의 메트릭을 추적하게 동작한다.
도 1은 복수의 메모리 모듈들 각각에 메모리 허브가 포함된 본 발명의 일 예에 따른 컴퓨터 시스템의 블록도.
도 2는 본 발명의 일 예에 따라 실행 모니터를 내장한, 도 1의 컴퓨터 시스템에서 사용되는 메모리 허브의 블록도.
도 3은 본 발명의 일 예에 따라 실행 카운터들을 내장한 메모리 허브의 블록도.
본 발명의 일 예에 따른 컴퓨터 시스템(100)이 도 1에 도시되었다. 컴퓨터 시스템(100)은 특정의 계산 또는 작업을 실행하기 위해 특정의 소프트웨어를 실행하는 것 등의, 각종의 계산기능들을 실행하기 위한 프로세서(104)를 포함한다. 프로세서(104)는 통상적으로 주소 버스, 제어 버스, 및 데이터 버스를 포함하는 프로세서 버스(106)를 포함한다. 프로세서 버스(106)는 통상적으로 캐시 메모리(108)에 결합되며, 이는 앞에서 언급한 바와 같이 대개는 스태틱 랜덤 액세스 메모리("SRAM")이다. 마지막으로, 프로세서 버스(106)는 시스템 제어기(110)에 결합되며, 이것은 "노스 브리지(North Bridge)" 또는 "메모리 제어기(memory controller)"라고도 한다.
시스템 제어기(110)는 다양한 다른 구성성분들을 위한 프로세서(104)로의 통신경로로서 작용한다. 구체적으로, 시스템 제어기(110)는 비디오 단말(114)에 결합되는 그래픽스 제어기(112)에 통상 결합된 그래픽스 포트를 포함한다. 시스템 제어기(110)는 조작자가 컴퓨터 시스템(110)과 인터페이스할 수 있게, 키보드 또는 마우스와 같은 하나 이상의 입력 디바이스들(118)에 또한 결합된다. 통상적으로, 컴퓨터 시스템(100)은 시스템 제어기(110)를 통해 프로세서(104)에 결합된 프린터와 같은 하나 이상의 출력 디바이스들(120)을 또한 포함한다. 하나 이상의 데이터 저장 디바이스들(124)은 또한 통상적으로 프로세서(104)가 내부 또는 외부 저장매체(도시되지 않음)에 데이터를 저장하거나 이로부터의 데이터를 불러들일 수 있게 시스템 제어기(110)를 통해 프로세서(104)에 결합된다. 전형적인 저장 디바이스들(124)의 예들은 하드 및 플로피 디스크들, 테이프 카세트들, 및 콤팩트 디스크 판독전용 메모리들(CD-ROM들)을 포함한다.
시스템 제어기(110)는 컴퓨터 시스템(100)을 위한 시스템 메모리로서 작용하는 몇 개의 메모리 모듈들(130a,b,...,n)에 결합된다. 메모리 모듈들(130)은 광학 또는 전기적 통신경로 또는 어떤 다른 유형의 통신경로일 수 있는 고속 링크(134)를 통해 시스템 제어기(110)에 결합되는 것이 바람직하다. 고속링크(134)가 광학 통신경로로서 구현되는 경우에, 광학 통신경로는 예를 들면 하나 이상의 광파이버 형태일 수 있다. 이러한 경우에, 시스템 제어기(110) 및 메모리 모듈들은 광학 통신경로에 결합된 광학 입력/출력 포트 또는 별도의 입력 및 출력 포트들을 포함할 것이다. 메모리 모듈들(130)은 고속 링크(134)의 각 세그먼트가 단지 두 점들간에 결합된 점-대-점 구성으로 시스템 제어기(110)에 결합된 것으로 도시되었다. 그러므로, 마지막 메모리 모듈(13n) 외의 모든 모듈은 하류 메모리 모듈들(130)에 및 이들로부터 결합된 메모리 요청들 및 데이터에 대한 콘딧으로서 사용된다. 그러나, 이외 다른 토폴로지들도 사용될 수 있음을 알 것이다. 스위치(도시되지 않음)를 통해 메모리 모듈들 각각에 시스템 제어기(110)가 선택적으로 결합되는 스위칭 토폴로지가 사용될 수도 있다. 사용될 수 있는 이외의 다른 토폴로지들이 당업자에게 명백할 것이다.
메모리 모듈들(130) 각각은 도 1에 도시된 예에서 동기형 동적 랜덤 액세스 메모리("SDRAM")인 32 메모리 디바이스들(148)로의 액세스를 제어하기 위한 메모리 허브(140)를 포함한다. 마지막 메모리 모듈(130)을 제외한 모든 모듈 내 메모리 허브(140)는 하류 메모리 허브들(140)에 및 이들로부터 하류 메모리 허브들(140)에 메모리 명령들을 결합시키기 위한 콘딧으로서 작용한다. 그러나, 얼마간의 메모리 디바이스들(148)이 사용될 수 있고 물론 SDRAM 이외의 메모리 디바이스들도 사용될 수 있다. 도 1에 도시한 예에서, 메모리 허브들(140)은 고속링크(134)를 통해 독립적 메모리 채널들(149)로 통신한다. 이 예에서, 도 1에는 도시하지 않았지만, 메모리 허브 제어기들(128)이 제공되고, 각각은 한 메모리 채널(149)로부터 데이터를 수신한다. 그러나, 다른 예들에선 몇 개의 메모리 채널들(149)이 사용될 수도 있다. 메모리 허브(140)는 통상적으로 제어 버스, 주소 버스 및 데이터 버스를 포함하는 버스 시스템(150)을 통해 시스템 메모리 디바이스들(148) 각각에 결합된다.
본 발명의 실시예에 따른 메모리 허브(200)가 도 2에 도시되었다. 메모리 허브(200)는 도 1의 메모리 허브(140)를 대치할 수 있다. 도 2에서 메모리 허브(200)는 본 예에서는 통상의 SDRAM 디바이스들인 4개의 메모리 디바이스들(240a-d)에 결합된 것으로서 도시되었다. 대안적 실시예에서, 메모리 허브(200)는 단순히 4개의 서로 다른 메모리 디바이스들(240a-d)이 아니라, 각 뱅크가 통상적으로 복수의 메모리 디바이스들을 갖는 4개의 서로 다른 뱅크의 메모리 디바이스들에 결합된다. 그러나, 예를 제공할 목적으로, 본 발명은 4개의 메모리 디바이스들(240a-d)에 결합된 메모리 허브(200)를 참조로 할 것이다. 복수의 뱅크들의 메모리를 수용하기 위한 메모리 허브(200)에 대한 필요한 수정은 당업자들의 지식 내에 있음을 알 것이다.
또한, 메모리 허브(200)는 메모리 허브(200)가 놓여져 있는 메모리 모듈을 제 1 고속 데이터 링크(200) 및 제 2 고속 데이터 링크(222)에 각각 결합하기 위한 링크 인터페이스들(210a-d, 212a-d)을 포함한다. 링크 인터페이스들(210a-d, 212a- d)은 하류 메모리 허브들(130)에 및 이들로부터 메모리 요청들 및 데이터에 대한 콘딧으로서 사용될 수 있게 한다. 도 1에 관하여 앞에서 논한 바와 같이, 고속 데이터 링크들(220, 222)은 광학 또는 전기적 통신경로 또는 이외 어떤 다른 유형의 통신경로를 사용하여 구현될 수 있다. 링크 인터페이스들(210a-d, 212a-d)은 통상의 것이고, 데이터, 명령 및 주소 정보를 고속 데이터 링크들(220, 222)에 및 이들로부터 전송하는데 사용되는 회로를 포함한다. 알려진 바와 같이, 이러한 회로는 이 기술에 알려진 전송기 및 수신기 로직을 포함한다. 당업자들은 특정 유형들의 통신 경로들에 사용하기 위해 링크 인터페이스들(210a, 212a-d)을 수정할 충분한 이해를 갖고 있고 링크 인터페이스들(210a-d, 212a-d)에 대한 이러한 수정들은 본 발명의 범위 내에서 행해질 수 있음을 알 것이다. 예를 들면, 고속 데이터 링크(220, 222)가 광학 통신 경로를 사용하여 구현되는 경우에, 링크 인터페이스들(210a-d, 212a-d)은 광학 통신경로를 통해 결합된 광학 신호들을 전기신호들로 변환할 수 있는 광학 입력/출력 포트를 포함할 것이다.
링크 인터페이스들(210a-d, 212a-d)은 버스들(214)로 나타낸 복수의 버스 및 신호 라인들을 통해 스위치(260)에 결합된다. 버스들(214)은 통상의 것이고, 기입 데이터 버스 및 판독 데이터 버스를 포함하나, 대안적으로 단일 양방향 데이터 버스가 링크 인터페이스들(210a-d, 212a-d)을 통해 양 방향들로 데이터를 결합하게 제공될 수도 있다. 당업자들은 버스들(214)이 예로서 제공되고, 버스들(214)은 캐시 코히어런시를 유지하는데 사용될 수 있는 요청 라인 및 스누프 라인(snoop line)을 더 포함하는 것과 같이, 몇 개의 신호 라인들을 포함할 수도 있다.
링크 인터페이스들(210a-d, 212a-d)은 이전에 설명한 바와 같이, 점-대-점 구성으로 시스템 메모리에 메모리 허브(200)가 접속될 수 있게 하는 회로를 포함한다. 이러한 유형의 상호연결은 비교적 낮은 커패시턴스, 신호들을 반사시키는 비교적 적은 수의 라인 불연속들 및 비교적 짧은 신호경로들을 포함하여, 몇가지 이유로 프로세서(104)와 메모리 허브(200)간에 보다 나은 신호 결합을 제공한다. 그러나, 링크 인터페이스들(210a-d, 212a-d)은 다양한 다른 구성으로 메모리 허브들(200)에 결합하게 하는데 사용될 수도 있을 것이다.
스위치(260)는 또한 4개의 메모리 인터페이스들(270a-d)에 결합되고, 이들 메모리 인터페이스들은 시스템 메모리 디바이스들(240a-d)에 각각 결합된다. 각 시스템 메모리 디바이스(240a-d)마다 별도의 독립적인 메모리 인터페이스(270-a-d)를 제공함으로써, 메모리 허브(200)는 통상적으로 단일 채널 메모리 구조들에서 발생하는 버스 또는 메모리 뱅크 충돌들을 회피한다. 스위치(260)는 버스들(272)로 나타낸 복수의 버스 및 신호 라인들을 통해 각 메모리 인터페이스에 결합된다. 버스들(274)은 기입 데이터 버스, 판독 데이터 버스, 및 요청라인을 포함한다. 그러나, 대안적으로 별도의 기입 데이터 버스 및 판독 데이터 버스 대신 단일 양방향 데이터 버스가 사용될 수도 있음을 알 것이다. 또한, 버스들(274)은 앞서 기술한 것들보다 많은 또는 적은 수의 신호 라인들을 포함할 수 있다.
본 발명의 실시예에서, 각 메모리 인터페이스(270a-d)는 이것이 결합되는 시스템 메모리 디바이스들(270a-d)에 특히 맞춘 것이다. 구체적으로, 각 메모리 인터페이스(270a-d)는 특히, 이것이 결합되는 시스템 메모리 디바이스(240a-d)에 의해, 수신 및 생성된 특정 신호들을 제공하고 수신하도록 구성된다. 또한, 메모리 인터페이스들(270a-d)은 서로 다른 클럭 주파수들로 동작하는 시스템 메모리 디바이스들(240a-d)과 함께 동작할 수 있다. 결국, 메모리 인터페이스들(270a-d)은 메모리 허브(230)와 메모리 허브(200)에 결합된 메모리 디바이스들(240a-d)간의 인터페이스에서 발생할 수 있는 변화들로부터 프로세서(104)를 격리시키고, 메모리 디바이스들(240a-d)이 인터페이스할 수 있는 보다 제어된 환경을 제공한다.
링크 인터페이스들(210a-d) 및 메모리 인터페이스들(270a-d)을 결합하는 스위치(260)는 다양한 종래의 또는 이후 개발된 스위치들 중 하나 일 수 있다. 예를 들면, 스위치(260)는 다양한 배열들로 링크 인터페이스들(210a-d, 2122a-d) 및 메모리 인터페이스들(270a-d)을 서로 동시에 결합시킬 수 있는 크로스바 스위치일 수 있다. 스위치(260)는 크로스바 스위치와 동일한 수준의 접속성을 제공하진 않으나 그럼에도 불구하고 링크 인터페이스들(210a-d, 212a-d)의 일부 또는 전부를 메모리 인터페이스들(270a-d) 각각에 결합시킬 수 있는 한 세트의 멀티플렉서들일 수도 있다. 스위치(260)는 어떤 메모리 액세스들이 다른 메모리 액세스들보다 우선도를 수신할 것인지를 판정하기 위해 중재 로직(arbitration logic)(도시되지 않음)을 포함할 수도 잇다. 이 기능을 실행하는 버스 중재는 당업자에게 알려져 있다.
도 2를 참조하면, 메모리 인터페이스들(270a-d) 각각은 각각의 메모리 제어기(280), 각각의 기입 버퍼(282), 및 각각의 캐시 메모리 유닛(284)을 포함한다. 메모리 제어기(280)는 결합된 시스템 메모리 디바이스(240a-d)에 제어, 주소 및 데이터 신호들을 제공하고 결합된 시스템 메모리 디바이스(240a-d)로부터 데이터 신 호들을 수신함으로써 종래의 메모리 제어기와 동일한 기능들을 실행한다. 기입 버퍼(282) 및 캐시 메모리 유닛(284)은 이 기술에 알려진 바와 같이, 태그 메모리, 데이터 메모리, 비교기 등을 포함하여, 버퍼 및 캐시 메모리의 정규 구성요소들을 포함한다. 기입 버퍼(282) 및 캐시 메모리 유닛(284)에서 사용되는 메모리 디바이스들은 DRAM 디바이스들, 스태틱 랜덤 액세스 메모리("SRAM") 디바이스들, 그 외 다른 유형들의 메모리 디바이스들, 또는 모든 3개의 조합일 수 있다. 또한, 캐시 메모리 유닛(284)에서 사용되는 다른 구성요소들뿐만 아니라 이들 메모리 디바이스들 중 어느 하나 또는 전부가 독립형 디바이스들에 내장될 수 있다.
각각의 메모리 인터페이스(270a-d) 내 기입 버퍼(282)는 판독 요청에 대해 서비스하면서 기입 요청들을 저장하는데 사용된다. 이러한 시스템에서, 프로세서(104)는 기입 요청이 보내지는 메모리 디바이스가 이전 기입 또는 판독 요청에 서비스중이어서 비지상태에 있을지라도 시스템 메모리 디바이스(240a-d)에 기입요청을 발행할 수 있다. 이러한 방식을 사용하여, 메모리 요청들은 후속 판독요청이 서비스되면서도 기입 버퍼(282)에 그 전의 기입요청이 저장될 수 있기 때문에 순서에 관계없이 서비스될 수 있다. 판독요청이 서비스될 수 있게 기입요청들을 버퍼링하는 능력은 판독요청들에 이들의 시간적 순서에 관계없이 제 1 우선도가 부여될 수 있기 때문에 메모리 판독 레이턴시를 크게 줄일 수 있다. 예를 들면, 판독요청들이 산재된 일련의 기입 요청들은 판독요청들이 파이프라인 방식으로 서비스되게 하고 저장된 기입요청들을 파이프라인 방식으로 서비스되게 기입버퍼(282)에 저장될 수 있다. 결국, 기입요청과 판독요청을 교번시키기 위해 메모리 디바이스 들(270a-d)에 기입요청을 결합시키는 것과 이어서 판독요청을 메모리 디바이스들(270a-d)에 결합시키는 것간에 긴 정착 시간들이 회피될 수 있다.
각각의 캐시 메모리 인터페이스(270a-d) 내 캐시 메모리 유닛(284)의 사용으로 프로세서(104)는 데이터가 메모리 디바이스(240a-d)로부터 최근에 판독 또는 이에 기입되었을 경우에 각각의 시스템 메모리 디바이스(240a-d)에 보내진 판독 명령에 응한 데이터를 제공하기 위해 메모리 디바이스(240a-d)를 기다릴 필요없이 이러한 데이터를 수신할 수 있게 된다. 따라서, 캐시 메모리 유닛(284)은 시스템 메모리 디바이스들(240a-d)의 판독 레이턴시를 감소시키므로 컴퓨터 시스템의 메모리 대역폭을 최대화한다. 마찬가지로, 프로세서(104)는 캐시 메모리 유닛(284)에 기입 데이터를 저장할 수 있고 이어서 동일 메모리 인터페이스(270a-d)의 메모리 제어기(280)가 캐시 메모리 유닛(284)으로부터의 기입 데이터를 결합된 시스템 메모리 디바이스(240a-d)에 전송하면서 다른 기능들을 실행할 수 있다.
메모리 허브(200)에는 진단 버스(diagnostic bus; 292)를 통해 스위치(260)에 결합된 실행 모니터(290)가 또한 포함된다. 실행 모니터(290)는 스위치(260)를 통해 메모리 허브(200)의 실행을 모니터한다. 예를 들면, 실행 모니터(290)는 메모리 허브(200)에서 일어나는 캐시 히트들, 메모리 페이지 히트들 또는 프리페치 히트의 수를 보존할 수 있다. 실행 모니터(290)는 링크 인터페이스들(210a-d, 212a-d) 및 스위치(260)를 통해서 메모리 허브(200)를 통한 메모리 요청들 및 데이터의 결합을 모니터하여 허브(200)가 얼마나 비지상태인지 그리고 메모리 요청들 및 데이터를 효율적으로 결합하고 있는지를 과도한 지연없이 판정할 수 있다. 실행 모니 터(290)는 SMBus(System Management Bus)와 같은 관리 버스(296), 또는 JTAG(Joint Test Action Group) 및 IEEE 1149.1 표준들에 따른 관리 버스에 또한 결합된다. SMBus 및 JTAG 표준들은 당업자들에 알려진 것이다. 일반적으로, 관리 버스(296)는 실행 모니터(290)에 의해 추적된 실행 통계에 대한 사용자 액세스를 제공한다. 관리 버스(296)는 본 발명의 범위 내에서 통상의 버스 표준들로부터 수정될 수 있음을 알 것이다. 실행 통계는 다른 수단에 의해 실행 모니터(290)로부터 결합될 수 있음을 또한 알 것이다.
메모리 허브(200)에는 버스(288)를 통해 스위치(260)에 결합된 DMA 엔진(286)이 또한 포함된다. DMA 엔진(286)은 메모리 허브(200)가 프로세서(104)로부터의 개입없이, 시스템 메모리 내 한 위치에서 시스템 메모리 내 다른 위치로 다수의 블록의 데이터를 이동시킬 수 있게 한다. 버스(288)는 시스템 메모리에서 데이터 전송들을 다루기 위해서, 복수의 통상의 버스 라인들 및 신호 라인들, 이를테면 주소, 제어, 데이터 버스들 등을 포함한다. 이 기술에 당업자들에 알려진 통상의 DMA 동작들이 DMA 엔진(286)에 의해 구현될 수 있다. DMA 엔진(286)은 프로세서 개입없이 DMA 메모리 동작들을 실행시키기 위해서 시스템 메모리 내 링크 리스트를 읽을 수 있어, 프로세서(104) 및 대역폭 제한된 시스템 버스를 메모리 동작들을 실행하는 것으로부터 자유롭게 한다. DMA 엔진(286)은 예를 들면 시스템 메모리 디바이스들(240a-d) 각각에 대해, 복수의 채널들에 DMA 동작들을 수용시키는 회로를 포함할 수 있다. 이러한 복수의 채널 DMA 엔진들은 이 기술에 알려져 있고 통상의 기술들을 사용하여 구현될 수 있다.
실행 모니터(290)는 바람직하게는 메모리 허브(200) 내 내장된 회로이다. 그러나, 메모리 허브(200)에 결합된 별도의 실행 모니터를 포함하는 것 또한 가능하다.
위에 기술한 바와 같이, 메모리 디바이스들에서 레이턴시를 감소시키는 한 방법은 데이터를 프리페치하는 것이다. 따라서, 메모리 허브(200)는 프리페치 버퍼(298)를 포함하는 프리페치 시스템(295)을 또 포함한다. 요약하여, 메모리 허브(200) 내 프리페치 시스템(295)은 프로그램 실행시 어떤 데이터가 필요하게 될 것인가를 예상하여, 이들 데이터를 프리페치하여 이들을 프리페치 시스템(295)의 일부인 프리페치 버퍼(298)와 같은 하나 이상의 버퍼에 저장한다. 프리페치 시스템(295)은 프리페치 버퍼(298)를 포함하여 몇 개의 프리페치 버퍼들을 포함하고, 그 수는 앞서 언급한 특허출원에서 설명한 바와 같이 동작조건에 따라 달라질 수 있다. 요약하여, 프리페치 버퍼들은 도 2의 메모리 디바이스 인터페이스(270c)로부터 프리페치된 데이터를 수신한다. 데이터는 프리페치 버퍼들이 후속 메모리 액세스에서 이용될 수 있게 이들에 저장된다. 하나의 프리페치 시스템이 도 2에서 메모리 디바이스 인터페이스(270c) 및 링크 인터페이스(212d)에 결합된 것으로 도시되었지만, 일부 실시예들에서 프리페치 시스템(295)은 복수의 링크 인터페이스들 및/또는 복수의 메모리 디바이스 인터페이스들에 결합될 수도 있음을 알 것이다. 또한, 일부 실시예들에서, 하나 또는 복수의 링크 인터페이스들 및/또는 메모리 디바이스 인터페이스와 연락되게 복수의 프리페치 시스템들이 제공될 수도 있다.
실행 데이터를 얻는 메모리 허브 부분의 또 다른 실시예가 도 3에 도시되었 다. 도 3에 도시한 예에서, 적어도 한 실행 카운터(300)가 메모리 제어기(302)와 연락되게 제공된다. 실행 카운터(300)는 프리페치 버퍼(306), 캐시(308), 링크들(310, 314), 및 관리 버스(318)와 연락된다. 본 발명의 일부 예들에서, 실행 카운터(300)는 프리페치 버퍼(306), 캐시(308), 링크들(310, 314) 및 관리 버스(318)와 연락한다. 본 발명의 일부 예들에서, 실행 카운터(300)는 도 3에 도시한 하나 이상의 구성요소들과 연락하지 않을 수도 있음을 알 것이다. 또한, 다른 예들에서 하나 이상의 실행 카운터들이 도 3에 도시한 메모리 허브의 다른 요소들과 연락한다.
실행 카운터들(300)은 예를 들면 본 발명의 일 예에서 페이지 히트율, 프리페치 히트들의 수 또는 퍼센티지, 캐시 히트율 또는 퍼센티지, 판독률, 판독 요청들의 수, 기입율, 기입 요청들의 수, 메모리 버스 이용률 또는 퍼센티지, 로컬 허브 요청률 또는 수, 및 원격 허브 요청률 또는 수를 포함하여, 메모리 액세스 및/또는 실행에 연관된 하나 이상의 메트릭들을 추적한다. 실행 카운터들(300)은 메모리 허브를 통한 메모리 요청들 및 데이터의 결합을 모니터하여 허브가 얼마나 비지상태인지 그리고 메모리 요청들 및 데이터를 효율적으로 결합하고 있는지를 과도한 지연없이 판정한다. 실행 카운터(300)는 메모리 허브 및 카운터가 연락하고 있는 구성요소들의 구성에 따라, 다른 실행 특징들을 모니터할 수도 있을 것이다. 어느 경우이든, 실행 카운터(300)는 실행 특징을 추적하고 바람직하게는 메모리 모듈들(130)이 조사될 수 있게 이들로부터 그 특징들을 통신한다. 예를 들면, 실행 특징을 나타내는 데이터는 유지 버스(318)를 통해 결합될 수 있다. 유지 버스(318)는 컴퓨터 시스템의 실행을 액세스하도록 실행 카운터들(300)에 대한 액세스를 사용자에게 제공할 수 있다. 예를 들면, 실행 특징은 유지 버스(318)를 통해 별도의 PC 호스트에 다운로드될 수 있다. 실행 특징을 결합 및/또는 사용하는 다른 수단은 당업자에게 명백할 것이다.
전술한 바로부터, 본 발명의 특정의 실시예들을 예시 목적으로 여기 기술하였지만, 본 발명의 정신 및 범위 내에서 다양한 수정들이 행해질 수 있음을 알 것이다. 따라서, 본 발명은 첨부한 청구항들에 의한 것을 제외하고 한정되지 않는다.

Claims (34)

  1. 메모리 모듈에 있어서,
    복수의 메모리 디바이스들; 및
    메모리 허브로서,
    상기 메모리 디바이스들 중 적어도 한 메모리 디바이스의 메모리 셀들에 액세스하기 위한 메모리 요청들을 수신하는 링크 인터페이스;
    상기 메모리 디바이스들에 결합된 메모리 디바이스 인터페이스로서, 상기 메모리 디바이스들 중 적어도 한 메모리 디바이스의 메모리 셀들에 액세스하기 위해 상기 메모리 디바이스들에 메모리 요청들을 결합하고 상기 메모리 요청들 중 적어도 일부에 응답하여 판독 데이터를 수신하도록 동작가능한, 상기 메모리 디바이스 인터페이스; 및
    상기 메모리 디바이스 인터페이스에 결합된 실행 카운터(performance counter)로서, 적어도 하나의 실행 메트릭(performance metric)을 추적하도록 동작가능한, 상기 실행 카운터를 포함하는, 상기 메모리 허브를 포함하는, 메모리 모듈.
  2. 제 1 항에 있어서, 상기 링크 인터페이스는 광학 입력/출력 포트를 포함하는, 메모리 모듈.
  3. 제 1 항에 있어서, 상기 메모리 디바이스 인터페이스는 메모리 제어기를 포함하고, 상기 실행 카운터는 상기 메모리 제어기에 결합되는, 메모리 모듈.
  4. 제 1 항에 있어서, 상기 메모리 디바이스 인터페이스는 캐시를 포함하고, 상기 실행 카운터는 상기 캐시에 결합되는, 메모리 모듈.
  5. 제 1 항에 있어서, 상기 메모리 허브는 프리페치 버퍼(prefetch buffer)를 더 포함하고, 상기 실행 카운터는 상기 프리페치 버퍼에 또한 결합되는, 메모리 모듈.
  6. 제 1 항에 있어서, 상기 메모리 허브는 유지 버스(maintenance bus)를 더 포함하고, 상기 실행 카운터는 상기 유지 버스에 또한 결합되는, 메모리 모듈.
  7. 제 1 항에 있어서, 상기 실행 카운터는 상기 링크 인터페이스에 또한 결합되는, 메모리 모듈.
  8. 제 1 항에 있어서, 상기 실행 카운터에 의해 추적된 상기 실행 메트릭은 페이지 히트율, 프리페치 히트들의 수 또는 퍼센티지, 캐시 히트율 또는 퍼센티지, 판독률, 판독 요청들의 수, 기입율, 기입 요청들의 수, 메모리 버스 이용률 또는 퍼센티지, 로컬 허브 요청률 또는 수, 및 원격 허브 요청률 또는 수로 구성된 그룹 으로부터 선택된 적어도 하나의 실행 메트릭을 포함하는, 메모리 모듈.
  9. 제 1 항에 있어서, 상기 메모리 디바이스들은 동적 랜덤 액세스 메모리 디바이스들을 포함하는, 메모리 모듈.
  10. 제 1 항에 있어서, 상기 실행 카운터에 의해 추적된 상기 실행 메트릭은 상기 메모리 허브를 통한 데이터와 메모리 요청들의 결합에 관계된 실행 메트릭을 포함하는, 메모리 모듈.
  11. 메모리 허브에 있어서,
    복수의 메모리 디바이스들 중 적어도 한 메모리 디바이스의 메모리 셀들에 액세스하기 위한 메모리 요청들을 수신하는 링크 인터페이스;
    상기 메모리 디바이스들에 결합된 메모리 디바이스 인터페이스로서, 상기 메모리 디바이스들 중 적어도 한 메모리 디바이스의 메모리 셀들에 액세스하기 위해 상기 메모리 디바이스들에 메모리 요청들을 결합하고 상기 메모리 요청들 중 적어도 일부에 응답하여 판독 데이터를 수신하도록 동작가능한, 상기 메모리 디바이스 인터페이스; 및
    상기 메모리 디바이스 인터페이스에 결합된 실행 카운터로서, 적어도 하나의 실행 메트릭을 추적하도록 동작가능한, 상기 실행 카운터를 포함하는, 메모리 허브.
  12. 제 11 항에 있어서, 상기 링크 인터페이스는 광학 입력/출력 포트를 포함하는, 메모리 허브.
  13. 제 11 항에 있어서, 상기 메모리 디바이스 인터페이스는 메모리 제어기를 포함하고, 상기 실행 카운터는 상기 메모리 제어기에 결합되는, 메모리 허브.
  14. 제 11 항에 있어서, 상기 메모리 디바이스 인터페이스는 캐시를 포함하고, 상기 실행 카운터는 상기 캐시에 결합되는, 메모리 허브.
  15. 제 11 항에 있어서, 프리페치 버퍼를 더 포함하고, 상기 실행 카운터는 상기 프리페치 버퍼에 또한 결합되는, 메모리 허브.
  16. 제 11 항에 있어서, 유지 버스를 더 포함하고, 상기 실행 카운터는 상기 유지 버스에 또한 결합되는, 메모리 허브.
  17. 제 11 항에 있어서, 상기 실행 카운터는 상기 링크 인터페이스에 또한 결합되는, 메모리 허브.
  18. 제 11 항에 있어서, 상기 실행 카운터에 의해 추적된 상기 실행 메트릭은 페 이지 히트율, 프리페치 히트들의 수 또는 퍼센티지, 캐시 히트율 또는 퍼센티지, 판독률, 판독 요청들의 수, 기입률, 기입 요청들의 수, 메모리 버스 이용률 또는 퍼센티지, 로컬 허브 요청률 또는 수, 및 원격 허브 요청률 또는 수로 구성된 그룹으로부터 선택된 적어도 하나의 실행 메트릭을 포함하는, 메모리 허브.
  19. 제 11 항에 있어서, 상기 실행 카운터에 의해 추적된 상기 실행 메트릭은 상기 메모리 허브를 통한 데이터와 메모리 요청들의 결합에 관계된 실행 메트릭을 포함하는, 메모리 허브.
  20. 제 11 항에 있어서, 상기 메모리 디바이스들은 동적 랜덤 액세스 메모리 디바이스들을 포함하는, 메모리 허브.
  21. 컴퓨터 시스템에 있어서,
    중앙처리유닛("CPU");
    상기 CPU에 결합되고 입력 포트 및 출력 포트를 갖는, 시스템 제어기;
    상기 시스템 제어기를 통해 상기 CPU에 결합된 입력 디바이스;
    상기 시스템 제어기를 통해 상기 CPU에 결합된 출력 디바이스;
    상기 시스템 제어기를 통해 상기 CPU에 결합된 저장 디바이스; 및
    복수의 메모리 모듈들을 포함하며,
    상기 메모리 모듈들 각각은:
    복수의 메모리 디바이스들; 및
    메모리 허브로서,
    상기 메모리 디바이스들 중 적어도 한 메모리 디바이스의 메모리 셀들에 액세스하기 위한 메모리 요청들을 수신하는 링크 인터페이스;
    상기 메모리 디바이스들에 결합된 메모리 디바이스 인터페이스로서, 상기 메모리 디바이스들 중 적어도 한 메모리 디바이스의 메모리 셀들에 액세스하기 위해 상기 메모리 디바이스들에 메모리 요청들을 결합하고 상기 메모리 요청들 중 적어도 일부에 응답하여 판독 데이터를 수신하도록 동작가능한, 상기 메모리 디바이스 인터페이스; 및
    상기 메모리 디바이스 인터페이스에 결합된 실행 카운터로서, 적어도 하나의 실행 메트릭을 추적하도록 동작가능한, 상기 실행 카운터를 포함하는, 상기 메모리 허브를 포함하는, 컴퓨터 시스템.
  22. 제 21 항에 있어서, 상기 링크 인터페이스는 광학 입력/출력 포트를 포함하는, 컴퓨터 시스템.
  23. 제 21 항에 있어서, 상기 메모리 디바이스 인터페이스는 메모리 제어기를 포함하고, 상기 실행 카운터는 상기 메모리 제어기에 결합되는, 컴퓨터 시스템.
  24. 제 21 항에 있어서, 상기 메모리 디바이스 인터페이스는 캐시를 포함하고, 상기 실행 카운터는 상기 캐시에 결합되는, 컴퓨터 시스템.
  25. 제 21 항에 있어서, 상기 메모리 허브는 프리페치 버퍼를 더 포함하고, 상기 실행 카운터는 상기 프리페치 버퍼에 또한 결합되는, 컴퓨터 시스템.
  26. 제 21 항에 있어서, 상기 메모리 허브는 유지 버스를 더 포함하고, 상기 실행 카운터는 상기 유지 버스에 또한 결합되는, 컴퓨터 시스템.
  27. 제 21 항에 있어서, 상기 실행 카운터는 상기 링크 인터페이스에 또한 결합되는, 컴퓨터 시스템.
  28. 제 21 항에 있어서, 상기 실행 카운터에 의해 추적된 상기 실행 메트릭은 페이지 히트율, 프리페치 히트들의 수 또는 퍼센티지, 캐시 히트율 또는 퍼센티지, 판독률, 판독 요청들의 수, 기입율, 기입 요청들의 수, 메모리 버스 이용률 또는 퍼센티지, 로컬 허브 요청률 또는 수, 및 원격 허브 요청률 또는 수로 구성된 그룹으로부터 선택된 적어도 하나의 실행 메트릭을 포함하는, 컴퓨터 시스템.
  29. 제 21 항에 있어서, 상기 메모리 디바이스들은 동적 랜덤 액세스 메모리 디바이스들을 포함하는, 컴퓨터 시스템.
  30. 제 21 항에 있어서, 상기 실행 카운터에 의해 추적된 상기 실행 메트릭은 상기 메모리 허브를 통한 데이터와 메모리 요청들의 결합에 관계된 실행 메트릭을 포함하는, 컴퓨터 시스템.
  31. 메모리 모듈로부터 데이터를 판독하는 방법에 있어서,
    상기 메모리 모듈 상에 장착된 메모리 디바이스에 액세스하기 위한 메모리 요청들을 수신하는 단계;
    상기 수신된 메모리 요청에 응답하여 상기 메모리 디바이스에 상기 메모리 요청들을 결합하는 단계로서, 상기 메모리 요청들 중 적어도 일부는 데이터 판독을 위한 메모리 요청들인, 상기 결합 단계;
    상기 판독 메모리 요청들에 응답하여 판독된 데이터를 수신하는 단계; 및
    상기 메모리 모듈 내에서 적어도 하나의 실행 메트릭을 추적하는 단계를 포함하는, 데이터 판독 방법.
  32. 제 31 항에 있어서, 상기 적어도 하나의 실행 메트릭을 추적하는 단계는, 페이지 히트율, 프리페치 히트들의 수 또는 퍼센티지, 캐시 히트율 또는 퍼센티지, 판독률, 판독 요청들의 수, 기입율, 기입 요청들의 수, 메모리 버스 이용률 또는 퍼센티지, 로컬 허브 요청률 또는 수, 및 원격 허브 요청률 또는 수로 구성된 그룹으로부터 선택된 적어도 하나의 실행 메트릭을 추적하는 단계를 포함하는, 데이터 판독 방법.
  33. 제 31 항에 있어서, 상기 적어도 하나의 실행 메트릭을 추적하는 단계는, 상기 메모리 허브를 통한 데이터와 메모리 요청들의 결합에 관계된 실행 메트릭을 추적하는 단계를 포함하는, 데이터 판독 방법.
  34. 제 31 항에 있어서, 상기 메모리 모듈 상에 장착된 메모리 디바이스에 액세스하기 위한 메모리 요청들을 수신하는 단계는, 상기 메모리 요청들에 대응하는 광학 신호들을 수신하는 단계를 포함하는, 데이터 판독 방법.
KR1020067013098A 2003-12-29 2004-12-15 메모리 허브 및 메모리 시스템 실행 모니터링을 위한 방법 KR100848255B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/747,984 US7216196B2 (en) 2003-12-29 2003-12-29 Memory hub and method for memory system performance monitoring
US10/747,984 2003-12-29

Publications (2)

Publication Number Publication Date
KR20060111640A true KR20060111640A (ko) 2006-10-27
KR100848255B1 KR100848255B1 (ko) 2008-07-25

Family

ID=34700823

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067013098A KR100848255B1 (ko) 2003-12-29 2004-12-15 메모리 허브 및 메모리 시스템 실행 모니터링을 위한 방법

Country Status (7)

Country Link
US (3) US7216196B2 (ko)
EP (1) EP1700412A4 (ko)
JP (1) JP4700621B2 (ko)
KR (1) KR100848255B1 (ko)
CN (1) CN100507874C (ko)
TW (1) TW200537292A (ko)
WO (1) WO2005065205A2 (ko)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7375326B2 (en) * 2004-06-21 2008-05-20 Applied Materials, Israel, Ltd. Method and system for focusing a charged particle beam
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7389375B2 (en) * 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US7331010B2 (en) * 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7441060B2 (en) * 2004-10-29 2008-10-21 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US20060095620A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for merging bus data in a memory subsystem
US7395476B2 (en) * 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7640386B2 (en) * 2006-05-24 2009-12-29 International Business Machines Corporation Systems and methods for providing memory modules with multiple hub devices
US7584336B2 (en) * 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7493439B2 (en) * 2006-08-01 2009-02-17 International Business Machines Corporation Systems and methods for providing performance monitoring in a memory system
US7669086B2 (en) * 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
DE102006051136A1 (de) * 2006-10-30 2008-05-08 Qimonda Ag Speichermodul-System, Adapter-Karte, und Verfahren zum Betreiben eines Speichermodul-Systems
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7606988B2 (en) * 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
US8037272B2 (en) * 2007-06-27 2011-10-11 International Business Machines Corporation Structure for memory chip for high capacity memory subsystem supporting multiple speed bus
US7809913B2 (en) * 2007-06-27 2010-10-05 International Business Machines Corporation Memory chip for high capacity memory subsystem supporting multiple speed bus
US8037270B2 (en) * 2007-06-27 2011-10-11 International Business Machines Corporation Structure for memory chip for high capacity memory subsystem supporting replication of command data
US7822936B2 (en) * 2007-06-27 2010-10-26 International Business Machines Corporation Memory chip for high capacity memory subsystem supporting replication of command data
US7818512B2 (en) * 2007-06-27 2010-10-19 International Business Machines Corporation High capacity memory subsystem architecture employing hierarchical tree configuration of memory modules
US7996641B2 (en) * 2007-06-27 2011-08-09 International Business Machines Corporation Structure for hub for supporting high capacity memory subsystem
US8037258B2 (en) * 2007-06-27 2011-10-11 International Business Machines Corporation Structure for dual-mode memory chip for high capacity memory subsystem
US7921264B2 (en) * 2007-06-27 2011-04-05 International Business Machines Corporation Dual-mode memory chip for high capacity memory subsystem
US7921271B2 (en) * 2007-06-27 2011-04-05 International Business Machines Corporation Hub for supporting high capacity memory subsystem
US20090006774A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley High Capacity Memory Subsystem Architecture Employing Multiple-Speed Bus
US8019949B2 (en) * 2007-06-27 2011-09-13 International Business Machines Corporation High capacity memory subsystem architecture storing interleaved data for reduced bus speed
US7584308B2 (en) * 2007-08-31 2009-09-01 International Business Machines Corporation System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel
US8086936B2 (en) * 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US8082482B2 (en) * 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US7865674B2 (en) * 2007-08-31 2011-01-04 International Business Machines Corporation System for enhancing the memory bandwidth available through a memory module
US7899983B2 (en) 2007-08-31 2011-03-01 International Business Machines Corporation Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module
US7840748B2 (en) * 2007-08-31 2010-11-23 International Business Machines Corporation Buffered memory module with multiple memory device data interface ports supporting double the memory capacity
US7861014B2 (en) * 2007-08-31 2010-12-28 International Business Machines Corporation System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel
US7818497B2 (en) * 2007-08-31 2010-10-19 International Business Machines Corporation Buffered memory module supporting two independent memory channels
US8019919B2 (en) * 2007-09-05 2011-09-13 International Business Machines Corporation Method for enhancing the memory bandwidth available through a memory module
US7558887B2 (en) 2007-09-05 2009-07-07 International Business Machines Corporation Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel
US7770077B2 (en) * 2008-01-24 2010-08-03 International Business Machines Corporation Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem
US8140936B2 (en) * 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
US7925825B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to support a full asynchronous interface within a memory hub device
US7925826B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency
US7925824B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency
US7930470B2 (en) * 2008-01-24 2011-04-19 International Business Machines Corporation System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller
US7930469B2 (en) 2008-01-24 2011-04-19 International Business Machines Corporation System to provide memory system power reduction without reducing overall memory system performance
US8656411B2 (en) 2008-03-05 2014-02-18 Intel Corporation Technique for monitoring activity within an integrated circuit
EP2313830B1 (en) * 2008-08-13 2013-10-02 Hewlett-Packard Development Company, L.P. Dynamic utilization of power-down modes in multi-core memory modules
US8458404B1 (en) 2008-08-14 2013-06-04 Marvell International Ltd. Programmable cache access protocol to optimize power consumption and performance
JP5439808B2 (ja) * 2008-12-25 2014-03-12 富士通セミコンダクター株式会社 複数バスを有するシステムlsi
US20120240128A1 (en) * 2009-09-30 2012-09-20 St-Ericsson Sa Memory Access Performance Diagnosis
US8370578B2 (en) * 2011-03-03 2013-02-05 Hitachi, Ltd. Storage controller and method of controlling storage controller
US8621157B2 (en) * 2011-06-13 2013-12-31 Advanced Micro Devices, Inc. Cache prefetching from non-uniform memories
US20130262779A1 (en) * 2012-03-30 2013-10-03 Jayaram Bobba Profile-based hardware prefetching
US9357649B2 (en) * 2012-05-08 2016-05-31 Inernational Business Machines Corporation 276-pin buffered memory card with enhanced memory system interconnect
US9183041B2 (en) * 2012-09-21 2015-11-10 International Business Machines Corporation Input/output traffic backpressure prediction
US9519315B2 (en) * 2013-03-12 2016-12-13 International Business Machines Corporation 276-pin buffered memory card with enhanced memory system interconnect
US10042750B2 (en) 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9880842B2 (en) 2013-03-15 2018-01-30 Intel Corporation Using control flow data structures to direct and track instruction execution
JP5695126B2 (ja) 2013-05-14 2015-04-01 株式会社日立製作所 計算機システム、サーバモジュール及びストレージモジュール
US10346306B2 (en) * 2016-04-02 2019-07-09 Intel Corporation Processor and method for memory performance monitoring utilizing a monitor flag and first and second allocators for allocating virtual memory regions
US10025718B1 (en) 2016-06-28 2018-07-17 Amazon Technologies, Inc. Modifying provisioned throughput capacity for data stores according to cache performance
US10268594B2 (en) 2017-01-05 2019-04-23 International Business Machines Corporation Implementing paging device selection based on wear-level data
US10986011B2 (en) 2017-10-18 2021-04-20 Google Llc Unobtrusive support for third-party traffic monitoring
US10613764B2 (en) 2017-11-20 2020-04-07 Advanced Micro Devices, Inc. Speculative hint-triggered activation of pages in memory
US11151035B2 (en) 2019-05-12 2021-10-19 International Business Machines Corporation Cache hit ratios for selected volumes within a storage system
US11237730B2 (en) * 2019-05-12 2022-02-01 International Business Machines Corporation Favored cache status for selected volumes within a storage system
US11163698B2 (en) 2019-05-12 2021-11-02 International Business Machines Corporation Cache hit ratios for selected volumes using synchronous I/O
US11176052B2 (en) 2019-05-12 2021-11-16 International Business Machines Corporation Variable cache status for selected volumes within a storage system
US11169919B2 (en) 2019-05-12 2021-11-09 International Business Machines Corporation Cache preference for selected volumes within a storage system
US11403029B2 (en) * 2020-10-30 2022-08-02 Dell Products L.P. System and method for managing cleaning policies of storage devices in storage device pools using self-monitored statistics and input/output statistics

Family Cites Families (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US112119A (en) * 1871-02-28 Improvement in self-centering chucks for lathes
US43426A (en) * 1864-07-05 Improvement in sewing
BE759830A (fr) * 1969-12-06 1971-06-03 Hoechst Ag Di-alkyl-orthocarbonates d'heterosides en 3 de cardenolides et de bufadienolides
US4084225A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
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
JPH02232890A (ja) * 1989-03-06 1990-09-14 Hitachi Ltd 主記憶制御装置
US4953930A (en) * 1989-03-15 1990-09-04 Ramtech, Inc. CPU socket supporting socket-to-socket optical communications
US5287343A (en) 1991-02-25 1994-02-15 Matsushita Electric Works, Ltd. Network administration system
US5274584A (en) * 1991-05-06 1993-12-28 Storage Technology Corporation Solid state memory device having optical data connections
EP0632913B1 (en) * 1992-03-25 2001-10-31 Sun Microsystems, Inc. Fiber optic memory coupling system
US5349587A (en) 1992-03-26 1994-09-20 Northern Telecom Limited Multiple clock rate test apparatus for testing digital systems
US5432907A (en) * 1992-05-12 1995-07-11 Network Resources Corporation Network hub with integrated bridge
US5615358A (en) * 1992-05-28 1997-03-25 Texas Instruments Incorporated Time skewing arrangement for operating memory in synchronism with a data processor
GB2270780A (en) * 1992-09-21 1994-03-23 Ibm Scatter-gather in data processing systems.
JPH06314241A (ja) * 1993-03-04 1994-11-08 Sharp Corp 高速半導体記憶装置及び高速連想記憶装置
US5450578A (en) * 1993-12-23 1995-09-12 Unisys Corporation Method and apparatus for automatically routing around faults within an interconnect system
US5581482A (en) * 1994-04-26 1996-12-03 Unisys Corporation Performance monitor for digital computer system
US5790048A (en) * 1994-11-02 1998-08-04 I-Cube, Inc. Crosspoint switch with bank-switched memory
US5875352A (en) * 1995-11-03 1999-02-23 Sun Microsystems, Inc. Method and apparatus for multiple channel direct memory access control
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
US5621739A (en) * 1996-05-07 1997-04-15 Intel Corporation Method and apparatus for buffer self-test and characterization
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
US5875454A (en) * 1996-07-24 1999-02-23 International Business Machiness Corporation Compressed data cache storage system
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
US5768152A (en) 1996-08-28 1998-06-16 International Business Machines Corp. Performance monitoring through JTAG 1149.1 interface
US5793776A (en) * 1996-10-18 1998-08-11 Samsung Electronics Co., Ltd. Structure and method for SDRAM dynamic self refresh entry and exit using JTAG
US5905858A (en) * 1996-11-01 1999-05-18 Micron Electronics, Inc. System for method memory error handling
US6167486A (en) 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US6205564B1 (en) * 1997-06-02 2001-03-20 Lucent Technologies Inc. Optimized built-in self-test method and apparatus for random access memories
US5995424A (en) * 1997-07-16 1999-11-30 Tanisys Technology, Inc. Synchronous memory test system
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
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 株式会社ルネサステクノロジ 半導体集積回路装置の設計方法
JPH11120120A (ja) * 1997-10-13 1999-04-30 Fujitsu Ltd カードバス用インターフェース回路及びそれを有するカードバス用pcカード
US6351824B1 (en) * 1998-01-05 2002-02-26 Sophisticated Circuits, Inc. Methods and apparatuses for controlling the operation of a digital processing system
GB2333896B (en) * 1998-01-31 2003-04-09 Mitel Semiconductor Ab Vertical cavity surface emitting laser
US7024518B2 (en) 1998-02-13 2006-04-04 Intel Corporation Dual-port buffer-to-memory interface
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
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
US5959914A (en) * 1998-03-27 1999-09-28 Lsi Logic Corporation Memory controller with error correction memory test application
US6079008A (en) * 1998-04-03 2000-06-20 Patton Electronics Co. Multiple thread multiple data predictive coded parallel processing system and method
US6173388B1 (en) * 1998-04-09 2001-01-09 Teranex Inc. Directly accessing local memories of array processors for improved real-time corner turning processing
JPH11316617A (ja) * 1998-05-01 1999-11-16 Mitsubishi Electric Corp 半導体回路装置
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
US6928652B1 (en) * 1998-05-29 2005-08-09 Webtv Networks, Inc. Method and apparatus for displaying HTML and video simultaneously
US6301637B1 (en) * 1998-06-08 2001-10-09 Storage Technology Corporation High performance data paths
US6178532B1 (en) * 1998-06-11 2001-01-23 Micron Technology, Inc. On-chip circuit and method for testing memory devices
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
JP3248617B2 (ja) * 1998-07-14 2002-01-21 日本電気株式会社 半導体記憶装置
US6272609B1 (en) * 1998-07-31 2001-08-07 Micron Electronics, Inc. Pipelined memory controller
US6587912B2 (en) * 1998-09-30 2003-07-01 Intel Corporation Method and apparatus for implementing multiple memory buses on a memory module
US6438670B1 (en) * 1998-10-02 2002-08-20 International Business Machines Corporation Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device
US6243831B1 (en) * 1998-10-31 2001-06-05 Compaq Computer Corporation Computer system with power loss protection mechanism
JP3613036B2 (ja) * 1998-11-10 2005-01-26 松下電器産業株式会社 半導体検査装置および半導体検査方法
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
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
US6367074B1 (en) * 1998-12-28 2002-04-02 Intel Corporation Operation of a system
US6061263A (en) * 1998-12-29 2000-05-09 Intel Corporation Small outline rambus in-line memory module
US6285349B1 (en) * 1999-02-26 2001-09-04 Intel Corporation Correcting non-uniformity in displays
JP2000268006A (ja) * 1999-03-15 2000-09-29 Fuji Xerox Co Ltd マルチプロセッサシステム
US6496909B1 (en) 1999-04-06 2002-12-17 Silicon Graphics, Inc. Method for managing concurrent access to virtual memory data structures
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
US6359858B1 (en) * 1999-06-03 2002-03-19 Fujitsu Network Communications, Inc. Switching redundancy control
JP2001014840A (ja) * 1999-06-24 2001-01-19 Nec Corp 複数ラインバッファ型メモリlsi
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
US6493803B1 (en) 1999-08-23 2002-12-10 Advanced Micro Devices, Inc. Direct memory access controller with channel width configurability support
US6552564B1 (en) * 1999-08-30 2003-04-22 Micron Technology, Inc. Technique to reduce reflections and ringing on CMOS interconnections
US6539490B1 (en) * 1999-08-30 2003-03-25 Micron Technology, Inc. Clock distribution without clock delay or skew
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
US6782465B1 (en) * 1999-10-20 2004-08-24 Infineon Technologies North America Corporation Linked list DMA descriptor architecture
US6832306B1 (en) 1999-10-25 2004-12-14 Intel Corporation Method and apparatus for a unified RISC/DSP pipeline controller for both reduced instruction set computer (RISC) control instructions and digital signal processing (DSP) instructions
US6421744B1 (en) * 1999-10-25 2002-07-16 Motorola, Inc. Direct memory access controller and method therefor
US6487648B1 (en) * 1999-12-15 2002-11-26 Xilinx, Inc. SDRAM controller implemented in a PLD
JP3546788B2 (ja) * 1999-12-20 2004-07-28 日本電気株式会社 メモリ制御回路
JP3356747B2 (ja) 1999-12-22 2002-12-16 エヌイーシーマイクロシステム株式会社 半導体記憶装置
GB2362729B (en) * 1999-12-23 2004-02-11 St Microelectronics Sa Memory access debug facility
US6732203B2 (en) * 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
US6742148B1 (en) 2000-03-06 2004-05-25 Pc-Doctor Inc. System and method for testing memory while an operating system is active
JP4330767B2 (ja) * 2000-06-26 2009-09-16 株式会社エヌ・ティ・ティ・ドコモ 自動再送要求を行う通信方法及び基地局装置
JP2002014875A (ja) * 2000-06-30 2002-01-18 Mitsubishi Electric Corp 半導体集積回路、半導体集積回路のメモリリペア方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US6446174B1 (en) * 2000-07-11 2002-09-03 Intel Corporation Computer system with dram bus
US6523093B1 (en) * 2000-09-29 2003-02-18 Intel Corporation Prefetch buffer allocation and filtering system
US6523092B1 (en) * 2000-09-29 2003-02-18 Intel Corporation Cache line replacement policy enhancement to avoid memory page thrashing
US6493836B2 (en) * 2000-11-30 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus for scheduling and using memory calibrations to reduce memory errors in high speed memory devices
US6631440B2 (en) * 2000-11-30 2003-10-07 Hewlett-Packard Development Company Method and apparatus for scheduling memory calibrations based on transactions
US6675117B2 (en) * 2000-12-12 2004-01-06 Teradyne, Inc. Calibrating single ended channels for differential performance
US6622227B2 (en) * 2000-12-27 2003-09-16 Intel Corporation Method and apparatus for utilizing write buffers in memory control/interface
US6842867B2 (en) * 2001-01-26 2005-01-11 Dell Products L.P. System and method for identifying memory modules having a failing or defective address
US6701457B2 (en) 2001-01-30 2004-03-02 Rockwell Collins Partitioned avionics computer and a method and system for debugging
US6823224B2 (en) * 2001-02-21 2004-11-23 Freescale Semiconductor, Inc. Data processing system having an on-chip background debug system and method therefor
DE10110469A1 (de) * 2001-03-05 2002-09-26 Infineon Technologies Ag Integrierter Speicher und Verfahren zum Testen und Reparieren desselben
US6904499B2 (en) * 2001-03-30 2005-06-07 Intel Corporation Controlling cache memory in external chipset using processor
US6625702B2 (en) * 2001-04-07 2003-09-23 Hewlett-Packard Development Company, L.P. Memory controller with support for memory modules comprised of non-homogeneous data width RAM devices
US20020194558A1 (en) 2001-04-10 2002-12-19 Laung-Terng Wang Method and system to optimize test cost and disable defects for scan and BIST memories
DE10129771A1 (de) 2001-06-20 2003-01-23 Infineon Technologies Ag Testanordnung zum parallelen Funktionstest von Halbleiterspeicherbausteinen und Testverfahren
US6910155B2 (en) 2001-06-25 2005-06-21 Hewlett-Packard Development Company, L.P. System and method for chip testing
US6920533B2 (en) * 2001-06-27 2005-07-19 Intel Corporation System boot time reduction method
US6735637B2 (en) * 2001-06-28 2004-05-11 Hewlett-Packard Development Company, L.P. Method and system for providing advanced warning to a data stage device in order to decrease the time for a mirror split operation without starving host I/O request processsing
US6681292B2 (en) * 2001-08-27 2004-01-20 Intel Corporation Distributed read and write caching implementation for optimized input/output applications
US7941056B2 (en) 2001-08-30 2011-05-10 Micron Technology, Inc. Optical interconnect in high-speed memory systems
US7346825B2 (en) * 2001-09-06 2008-03-18 Intel Corporation Error method, system and medium
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US6880117B2 (en) * 2002-06-14 2005-04-12 Macronix International Co., Ltd. Memory device test system and method
US6754117B2 (en) 2002-08-16 2004-06-22 Micron Technology, Inc. System and method for self-testing and repair of memory modules
US6983356B2 (en) * 2002-12-19 2006-01-03 Intel Corporation High performance memory device-state aware chipset prefetcher
US7216150B2 (en) * 2002-12-19 2007-05-08 Sun Microsystems, Inc. Apparatuses and methods of physically restricting access to a connecting device for use with a data processing system
JP4325843B2 (ja) * 2002-12-20 2009-09-02 株式会社日立製作所 論理ボリュームコピー先性能調整方法及び装置
US7617356B2 (en) * 2002-12-31 2009-11-10 Intel Corporation Refresh port for a dynamic memory
US7036055B2 (en) * 2002-12-31 2006-04-25 Intel Corporation Arrangements for self-measurement of I/O specifications
US20040216018A1 (en) * 2003-04-28 2004-10-28 Cheung Kam Tim Direct memory access controller and method
US20040237001A1 (en) * 2003-05-21 2004-11-25 Sun Microsystems, Inc. Memory integrated circuit including an error detection mechanism for detecting errors in address and control signals
US7389364B2 (en) * 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
DE10334779B4 (de) 2003-07-30 2005-09-29 Infineon Technologies Ag Halbleiterspeichermodul
US7210059B2 (en) * 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7310752B2 (en) * 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7082514B2 (en) * 2003-09-18 2006-07-25 International Business Machines Corporation Method and memory controller for adaptive row management within a memory subsystem
US7216196B2 (en) * 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7526692B2 (en) * 2004-09-30 2009-04-28 International Business Machines Corporation Diagnostic interface architecture for memory device
US7191088B1 (en) * 2004-10-25 2007-03-13 Nvidia Corporation Method and system for memory temperature detection and thermal load management

Also Published As

Publication number Publication date
US20050144403A1 (en) 2005-06-30
US7533213B2 (en) 2009-05-12
KR100848255B1 (ko) 2008-07-25
US7360011B2 (en) 2008-04-15
CN100507874C (zh) 2009-07-01
JP2007520800A (ja) 2007-07-26
CN101036129A (zh) 2007-09-12
WO2005065205A2 (en) 2005-07-21
US20070174562A1 (en) 2007-07-26
WO2005065205A3 (en) 2007-03-08
EP1700412A2 (en) 2006-09-13
TW200537292A (en) 2005-11-16
EP1700412A4 (en) 2009-01-21
US20080140904A1 (en) 2008-06-12
JP4700621B2 (ja) 2011-06-15
US7216196B2 (en) 2007-05-08

Similar Documents

Publication Publication Date Title
KR100848255B1 (ko) 메모리 허브 및 메모리 시스템 실행 모니터링을 위한 방법
KR100860956B1 (ko) 메모리 시퀀싱 힌트들을 제공하기 위한 메모리 허브 및방법
KR100813422B1 (ko) 메모리 허브 및 메모리 시퀀싱 방법
US7260685B2 (en) Memory hub and access method having internal prefetch buffers
US7945737B2 (en) Memory hub with internal cache and/or memory access prediction
US20050146943A1 (en) Memory module and method having on-board data search capabilities and processor-based system using such memory modules
JP2005535038A (ja) 内部ロウキャッシングを有するメモリハブおよびアクセス方法。

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee