KR20130095811A - 복합 멀티-코어 및 멀티-소켓 시스템의 디버깅 - Google Patents

복합 멀티-코어 및 멀티-소켓 시스템의 디버깅 Download PDF

Info

Publication number
KR20130095811A
KR20130095811A KR1020137016046A KR20137016046A KR20130095811A KR 20130095811 A KR20130095811 A KR 20130095811A KR 1020137016046 A KR1020137016046 A KR 1020137016046A KR 20137016046 A KR20137016046 A KR 20137016046A KR 20130095811 A KR20130095811 A KR 20130095811A
Authority
KR
South Korea
Prior art keywords
processor
computing system
debug controller
debug
failure
Prior art date
Application number
KR1020137016046A
Other languages
English (en)
Other versions
KR101498452B1 (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 KR20130095811A publication Critical patent/KR20130095811A/ko
Application granted granted Critical
Publication of KR101498452B1 publication Critical patent/KR101498452B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors

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)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

복합 멀티-코어 및/또는 멀티-소켓 시스템을 디버깅하는 것에 관한 방법 및 장치가 설명된다. 일 실시예에서, 디버그 제어기는 컴퓨팅 시스템 내의 장애에 대응하는 이벤트를 검출하고, 시스템 내의 다른 디버그 제어기들 중 하나에 이벤트에 대응하는 데이터를 전송한다. 다른 실시예가 또한 개시되고 청구된다.

Description

복합 멀티-코어 및 멀티-소켓 시스템의 디버깅{DEBUGGING COMPLEX MULTI-CORE AND MULTI-SOCKET SYSTEMS}
본 발명은 일반적으로 전자 기기의 분야에 관한 것이다. 더 구체적으로, 몇몇 실시예는 복합 멀티-코어 및/또는 멀티-소켓 시스템을 디버깅하는 것에 관한 것이다.
몇몇 컴퓨터는 다중 프로세서의 이용을 허용하기 위한 다중 소켓을 포함한다. 예를 들어, 각각의 소켓은 단일 프로세서 또는 다중 프로세서에 결합될 수 있다. 시스템이 복잡성이 증가함에 따라, 디버깅은 더 과제가 되고 있다. 그러나, 몇몇 현재 디버그 메커니즘은 단지 단일 소켓에 국부적인 장애를 디버깅하는 것만이 가능할 수 있다. 다른 해결책은 사용이 너무 고비용이거나 시간 소모적일 수 있다. 몇몇 상황에서, 심지어 수동 개입이 요구될 수도 있다. 증가하는 프로세서 복잡성에 의해, 멀티-코어 및/또는 멀티-소켓 시스템을 디버깅하는 것은 주요 과제가 되고 있다.
도 1 내지 도 2 및 도 6 내지 도 7은 본 명세서에 설명된 다양한 실시예를 구현하도록 이용될 수 있는 컴퓨팅 시스템의 실시예의 블록 다이어그램.
도 3은 실시예에 따른 인트라 다이 디버그 제어기 시스템의 블록 다이어그램.
도 4 내지 도 5는 몇몇 실시예에 따른 방법의 흐름도.
상세한 설명은 첨부 도면을 참조하여 제공된다. 도면에서, 도면 부호의 최좌측 숫자(들)는 도면 부호가 최초로 나타난 도면을 식별한다. 상이한 도면에서 동일한 도면 부호의 사용은 유사하거나 동일한 아이템을 지시한다.
이하의 설명에서, 수많은 특정 상세가 다양한 실시예의 철저한 이해를 제공하기 위해 설명된다. 그러나, 몇몇 실시예는 특정 상세 없이 실시될 수도 있다. 다른 경우에, 잘 알려진 방법, 절차, 구성 요소 및 회로는 특정 실시예를 불명료하게 하지 않게 위해 상세히 설명되지 않는다. 본 발명의 실시예의 다양한 양태는 집적 반도체 회로("하드웨어"), 하나 이상의 프로그램으로 편성된 컴퓨터 판독 가능 명령("소프트웨어") 또는 하드웨어와 소프트웨어의 몇몇 조합과 같은 다양한 수단을 사용하여 수행될 수 있다. 본 발명에 있어서, "로직"의 언급은 하드웨어, 소프트웨어 또는 이들의 몇몇 조합을 의미할 수 있다.
본 명세서에 설명된 몇몇 실시예는 다중 소켓 및/또는 다중 에이전트/프로세서를 가로지르는 장애를 디버깅하는 것을 제공할 수 있다. 일 실시예에서, 포스트-실리콘 장애(실행 시간 중에)를 디버깅할 때, 장애를 재현할 때 시간을 소비할 필요가 없다(몇몇 현재 구현예에서 통상적일 수 있는 바와 같이). 이는 이어서 디버그 시간을 절약하고 따라서 전체 프로세서 디자인 비용을 감소시킬 것이다. 더욱이, 몇몇 실시예는 포스트 실리콘 디버그 중의 전역 및 일시적 장애, 시스템 또는 클러스터 일관성 장애, 데이터 불일치 장애와 같은 장애를 디버깅하는데 사용될 수 있다.
실시예에서, 모든 시스템 트랜잭션(예를 들어, 요구 또는 응답)은 하나의 디버그 제어기에서 물리적 어드레스의 프로그램된 세트를 위해 수집된다. 이는 이어서 동시에 다중 소켓을 가로지르는 프로토콜 규칙의 검사를 가능하게 한다. 또한, 데이터 구조는 실시예에서 프로그램 가능하기 때문에, 현재 하드웨어 기반 디버거에 비교할 때 디버그 인프라구조에 버그를 도입하는 위험이 적다. 일 실시예에서, 디버깅은 장애시에 가능하다(장애 징후를 대기할 필요 없이). 또한, 디버그 인프라구조의 프로그램 가능 능력이 몇몇 실시예에서 제공된다.
대조적으로, 현재 해결책은 일반적으로 다중 소켓을 가로지르는 상태에 관한 임의의 이력 정보를 제공하지 않는다. 예를 들어, 다중 캐싱 에이전트가 캐시 라인을 변형된 상태로 유지하면(무효화 응답을 송신하게 할 수 있을지라도), 현존하는 디버그 해결책은 이들이 일반적으로 소켓을 가로지르는 트랜잭션 흐름의 이력을 검사하지 않기 때문에 이를 검출하는 것이 가능하지 않을 수도 있다.
다양한 실시예가 예를 들어 도 1 내지 도 2 및 도 6 내지 도 7을 참조하여 본 명세서에 설명된 구성 요소와 같은 컴퓨팅 시스템 구성 요소를 참조하여 본 명세서에 설명된다. 더 구체적으로, 도 1은 본 발명의 실시예에 따른 컴퓨팅 시스템(100)의 블록 다이어그램을 도시한다. 시스템(100)은 하나 이상의 에이전트(102-1 내지 102-M)[본 명세서에서 "에이전트들(102)" 또는 더 일반적으로 "에이전트(102)"라 총칭함]를 포함할 수 있다. 실시예에서, 에이전트(102)는 도 2 및 도 6 내지 도 7을 참조하여 설명된 컴퓨팅 시스템과 같은 컴퓨팅 시스템의 구성 요소일 수 있다.
도 1에 도시된 바와 같이, 에이전트(102)는 네트워크 패브릭(104)을 경유하여 통신할 수 있다. 실시예에서, 네트워크 패브릭(104)은 직렬(예를 들어, 점대점) 링크 및/또는 공유 통신 네트워크를 경유하여 통신하는 하나 이상의 상호 접속부(또는 상호 접속 네트워크)를 포함할 수 있다. 예를 들어, 몇몇 실시예는 예를 들어 FBD 링크가 메모리 모듈을 호스트 제어기 디바이스(프로세서 또는 메모리 허브와 같은)에 결합하기 위한 직렬 링크인 완전 버퍼링된 듀얼 인라인 메모리 모듈(FBD)과 통신을 허용하는 링크 상의 구성 요소 디버그 또는 유효화를 용이하게 할 수 있다. 디버그 정보는 FBD 채널 호스트로부터 전송될 수 있어 디버그 정보가 채널 트래픽 트레이스 캡처 도구(하나 이상의 로직 분석기와 같은)에 의해 채널을 따라 관찰될 수 있게 된다.
일 실시예에서, 시스템(100)은 물리적 계층, 링크 계층, 라우팅 계층, 전송 계층 및/또는 프로토콜 계층을 포함할 수 있는 계층화된 프로토콜 방안을 지원할 수 있다. 패브릭(104)은 일 프로토콜(예를 들어, 캐싱 프로세서 또는 캐싱 인식 메모리 제어기)로부터 점대점 네트워크를 위한 다른 프로토콜로 데이터(예를 들어, 패킷의 형태의)의 전송을 더 용이하게 할 수 있다. 또한, 다른 실시예에서, 네트워크 패브릭(104)은 하나 이상의 캐시 일관성 프로토콜에 준수하는 통신을 제공할 수 있다.
더욱이, 도 1에 화살표의 방향으로 도시된 바와 같이, 에이전트(102)는 네트워크 패브릭(104)을 경유하여 데이터를 전송하고 그리고/또는 수신할 수 있다. 따라서, 몇몇 에이전트는 단방향성 링크를 이용할 수 있고, 다른 에이전트는 통신을 위해 양방향성 링크를 이용할 수 있다. 예를 들어, 하나 이상의 에이전트[에이전트(102-M)와 같은]는 데이터를 전송할 수 있고[예를 들어, 단방향성 링크(106)를 경유하여], 다른 에이전트(들)[에이전트(102-2)와 같은]는 데이터를 수신할 수 있고[예를 들어, 단방향성 링크(108)를 경유하여], 반면에 몇몇 에이전트(들)[에이전트(102-1)와 같은]는 데이터를 전송 및 수신할 수 있다[예를 들어, 양방향성 링크(110)를 경유하여].
또한, 실시예에 따르면, 에이전트(102) 중 하나 이상은 디버그 제어기(DC)(120)를 포함할 수 있다. 몇몇 실시예에서, 컴퓨팅 시스템 내에 존재하는 각각의 CPU 소켓은 예를 들어 도 2를 참조하여 더 설명되는 바와 같이 DC(120)를 포함할 수 있다.
더 구체적으로, 도 2는 실시예에 따른 컴퓨팅 시스템(200)의 블록 다이어그램이다. 시스템(200)은 복수의 소켓(202 내지 208)(4개가 도시되어 있지만, 몇몇 실시예는 더 많거나 적은 소켓을 가질 수 있음)을 포함할 수 있다. 각각의 소켓은 프로세서 및 DC(120)를 포함할 수 있다. 또한, 각각의 소켓은 퀵 패스 상호 접속(QPI)과 같은 점대점(PtP) 링크를 경유하여 다른 소켓에 결합될 수 있다. 도 1의 네트워크 패브릭(104)과 관련하여 설명된 바와 같이, 각각의 소켓은 예를 들어 동적 랜덤 액세스 메모리(DRAM)를 포함할 수 있는 복수의 듀얼 인라인 메모리 모듈(DIMM)로 형성된 시스템 메모리의 로컬부에 결합될 수 있다.
도 2에 도시된 바와 같이, 각각의 소켓은 메모리 제어기(MC)/홈 에이전트(HA)(MC0/HA0 내지 MC3/HA3와 같은)에 결합될 수 있다. 메모리 제어기는 시스템 메모리[예를 들어, 도 8의 메모리(812)와 같은]의 부분일 수 있는 대응 로컬 메모리(MEM0 내지 MEM3로서 표기됨)에 결합될 수 있다. 몇몇 실시예에서, 메모리 제어기(MC)/홈 에이전트(HA)(MC0/HA0 내지 MC3/HA3와 같은)는 도 1의 에이전트(102-1)와 동일하거나 유사할 수 있고, MEM0 내지 MEM3로서 표기된 메모리는 도 1의 메모리(120)와 동일하거나 유사할 수 있다. 일반적으로, 프로세싱/캐싱 에이전트는 대응 "홈 에이전트"가 연관되는 메모리 어드레스로의 액세스를 위해 홈 노드에 요구를 송신할 수 있다. 또한, 일 실시예에서, MEM0 내지 MEM3는 예를 들어 마스터 및 슬레이브와 같은 데이터를 미러링하도록 구성될 수 있다. 또한, 시스템(200)의 하나 이상의 구성 요소는 몇몇 실시예에서 동일한 집적 회로 다이 상에 포함될 수 있다.
도 2에 도시된 것과 같은 구현예는 따라서 미러링을 갖는 소켓 중간 변환 로직 불필요 구성(socket glueless configuration)일 수 있다. 예를 들어, 메모리 제어기(MC0/HA0)에 할당된 데이터는 PtP 링크를 통해 다른 메모리 제어기(MC3/HA3)에 미러링될 수 있다. 또한, 메모리 제어기(MC3/HA3)와 연관된 디렉토리는 미러로의 카피시에 미지 (U)-상태에서 초기화될 수 있다. 이 제어기로의 장애 조치(failover)시에(예를 들어, 이 메모리 제어기를 위한 온라인 서비스-호에 기인하여), 디렉토리는 U-상태로부터 재구성될 수 있다.
일 실시예에서, 멀티프로세서가 4개 이상의 소켓을 갖는다. 각각의 소켓은 하나의 다이에 10개의 집적 코어를 구현할 수 있다. 각각의 소켓은 점대점 QPI 링크를 경유하여 다른 소켓에 접속될 수 있다. 각각의 소켓은 메모리 제어기를 경유하여 접속된 연관 DRAM 메모리와 함께 2개의 캐싱 에이전트(CA), 하나의 라우팅 에이전트 및 2개의 홈 에이전트(HA)를 포함할 수 있다. 10개의 코어는 개별 캐시 제어기에 의해 관리되는 10개의 개별 3개의 MB LLC 슬라이스로서 구현되는 (예를 들어, 30 MB) 최종 레벨 캐시(LLC)를 공유할 수 있다. 5개의 캐시 제어기(CBox0 내지 CBox4)가 시스템 에이전트 0에 접속될 수 있고, CBox1 내지 CBox5는 메모리 또는 외부 소켓으로 송출되는 임의의 시스템 요구를 위해 시스템 에이전트 1에 접속될 수 있다. 각각의 CBox는 링 접속성을 사용하여 서로 대화할 수 있다. 더욱이, CBox로부터의 LLC 누락은 패킷이 QPI 링크 계층을 따라 형성되는 그 연관된 시스템 에이전트에 송출될 수 있다. 각각의 CBox는 물리적 어드레스(PA)마다 맵핑됨에 따라 목적지 홈 노드 ID(HNID)를 제공하는 소스 어드레스 디코더(SAD)를 유지할 수 있다. 각각의 시스템 판독 또는 기록 요구는 이어서 RTID(요구자 트랜잭션 식별자)라 칭하는 고유 트랜잭션 ID를 갖고 시스템 에이전트로부터 송출될 수 있다. 라우팅 에이전트에서 라우터 테이블이 이어서 그 목적지 노드 식별자(NID)에 기초하여 시스템 에이전트로부터 외부 소켓으로 시스템 요구를 라우팅하는데 사용될 수 있다. 홈 에이전트는 몇몇 실시예에서 모든 판독 및 기록에 대해 메모리 순서화 및 어드레스당 충돌 취급을 유지하는 책임이 있을 수 있다.
도 2에 도시된 바와 같이, 각각의 소켓은 DC를 구현할 수 있다. 각각의 DC는 물리적 어드레스(PA)의 범위를 위해 사용되도록 프로그램될 수 있다. 모든 DC는 다중 FIFO(선입 선출 버퍼) 또는 각각의 FIFO/데이터 구조가 타임 스탬프, 이벤트 유형, PA 및 GUTID(어드레스당 전역 범용 트랜잭션 ID)와 같은 데이터를 유지하는 데이터 구조를 유지할 수 있다. 몇몇 실시예에서, GUTID는 요구자 소스 노드 ID(RSNID), 요구자 트랜잭션 ID(RTID) 및/또는 목적지 노드 ID(DNID) 중 하나 이상에 대응하는 고유 트랜잭션 ID로서 사용될 수 있다.
도 3은 실시예에 따른 인트라 다이 디버그 제어기 시스템의 블록 다이어그램을 도시한다. 실시예에서, 도 3에 도시된 구성 요소 중 하나 이상은 도 1 내지 도 2의 DC(120) 내에 존재할 수 있다. 도시된 바와 같이, DC는 데이터를 저장하기 위한 데이터 랜덤 액세스 메모리(DRAM) 및/또는 코드를 저장하기 위한 명령 RAM(IRAM)을 포함할 수 있다. 데이터 RAM은 DC에 의해 트랜잭션을 프로세싱하면서 트랜잭션 정보 및 중간 변수를 저장하는데 사용될 수 있다. DC의 명령 RAM은 트랜잭션을 프로세싱하고 임의의 장애를 판정하기 위한 코드를 포함할 수 있다.
도 3에 도시된 바와 같이, 각각의 박스 또는 에이전트[CA(캐싱 에이전트) 및 HA(홈 에이전트)]는 예를 들어 각각의 에이전트가 프로그램된 바와 같이 트리거링되는 동안 로컬 이벤트에 관한 데이터를 수집하는 동안 그 자신의 디버그 위성을 유지할 수 있다. 실시예에서, 모든 에이전트로부터 모든 트리거링된 이벤트는 그 로컬 소켓에 대한 DC에 타겟화된다. 더욱이, DC가 그 DC에 의해 소유되지 않은 PA에 대한 이벤트(요구 또는 응답)를 수신할 때, DC는 그 이벤트[또는 이벤트에 대응하는 것으로서 다른 DC에 의해 인식될 수 있는(예를 들어, 미리 저장된 정보에 기초하여) 이벤트에 대응하는 지표(indicia) 또는 힌트와 같은 이벤트에 대응하는 데이터]를 그 PA를 소유하는 다른 소켓 내의 DC에 송신한다. 예를 들어, 요구가 PA2(소켓 2에 속하는)를 위한 소켓0에서 DC0을 수신하면, DC0은 이벤트를 DC2에 재지향한다. 따라서, 임의의 시간에, 각각의 DC는 특정 PA를 위한 모든 전역 이벤트를 계속 트래킹할 수 있고, DC는 로컬 디버그 문제에 제한되지 않는다. 이는 이어서 전역 문제점의 검출 및 디버깅을 돕는다.
로컬 DC와 원격 DC 사이의 통신 프로토콜에 대해, 이하의 2개의 가능한 옵션이 일 DC(예를 들어, 로컬)로부터 다른 DC(예를 들어, 원격)로 이벤트를 송신하기 위해 사용될 수 있는데, 몇몇 실시예에 따르면, (1) 디버그 모드에서, QPI 디버그 패킷 포맷을 사용하여, 라우터는 정상 패킷 라우팅과 유사한 방식으로 로컬 DC로부터 수신된 디버그 패킷을 목적지 소켓에 송신할 수 있고, 그리고/또는 (2) 몇몇 미사용 메모리(예를 들어, 코어에 의해 사용되지 않으면 몇몇 보존된 메모리 내의 미사용 공간)는 송신기 DC로부터 수신된 힌트에 기초하여 일 DC로부터 패킷을 저장하고 다른 DC로부터 패킷을 판독하는데 사용될 수 있다. 실시예에서, 제 1 옵션은 현존하는 프로세서들이 인프라구조를 이미 포함하고 적은 하드웨어 변경이 원격 소켓의 DC에 목적지를 추가하도록 요구될 수 있기 때문에 이들 현존하는 프로세서에 사용될 수 있다.
도 4는 실시예에 따른 디버그 제어기에서 데이터 캡처의 흐름도를 도시한다. 실시예에서, 도 3에 도시된 흐름은 도 1 내지 도 3의 DC(120)를 위해 사용될 수 있다. 더욱이, 각각의 DC는 PA 및/또는 GUTID에 기초하여 어드레스 가능한 2개의 CAM(콘텐츠 어드레스 가능 메모리)을 유지할 수 있다. 수신 요구/응답에 대해, CAM은 PA에 대해 또는 응답 또는 Cmp(완료)에 대해 유효할 수 있다. 그리고, CAM은 이전의 수신된 요구의 CUTID에 대해 유효할 수 있다.
도 4에 도시된 바와 같이, 각각의 DC는 시스템 내의 각각의 DC에 속하는 PA의 테이블 열거 범위를 포함할 수 있는데, 예를 들어 도 4에 도시된 바와 같이, 0 내지 2 GB PA가 DC0(소켓 SKTID-0의)에 의해 소유되고, 2 내지 4 GB PA는 DC1(소켓 SKTID-0의)에 의해 소유되는 등이다. 그리고, 도 4에 도시된 바와 같이, 각각의 PA는 그 PA에 대해 모든 이벤트를 저장하고/연관시키기 위해 데이터 구조를 포함할 수 있다. 이 데이터 구조는 특정 PA에 관련된 각각의 이벤트의 타임 스탬프, 이벤트 유형(명령 코드, 예를 들어 요구, 스누프, 응답 등에 의해 지시된), 요구자 트랜잭션 ID 등과 같은 정보를 포함할 수 있다. 이 데이터 구조의 정보는 예를 들어 디버그 이벤트의 장애에 기초하여 트랜잭션의 모든 이벤트를 반드시 포함하거나 포함하지 않을 수도 있고, 이 데이터 구조에 저장된 데이터는 다양할 수 있다. 도 4에 도시된 바와 같이, 수신된 이벤트가 DC에 속하면, 이는 히트(예를 들어, CAM 정합)를 가질 것이다. 프로그램된 어드레스 범위에 따라, 이벤트가 원격 DC에 타겟화되면, 디버그 패킷이 생성되어 로컬 DC로부터 원격 DC로 재지향되어, 이벤트가 몇몇 실시예에서 다른 소켓에 타겟팅되게 한다. 특정 PA 상의 CAM 정합에 기초하여, 그 PA에 대한 데이터 구조 또는 FIFO는 실시예에서 업데이트를 위해 선택될 것이다. 예를 들어, FIFO0가 PA0를 갖는 이벤트에 대해 선택된다.
실시예에서, 각각의 DC는 PA마다 프로토콜 검사기를 유지할 수 있다. 임의의 이벤트가 DC에서 수신되는 동안, PA마다 모든 소켓을 가로질러 규칙을 검사하는 전역 프로토콜 검사기가 트리거링될 수 있다. 예를 들어, 시간 t0에서, 캐시 라인(PA에 대응함)이 소켓0 및 소켓1의 모두에서 수정된 상태에 있으면, DC는 에러를 플래그할 것이다. 따라서, 이는 장애의 징후를 대기하는 대신에 그 장애점에서 임의의 프로토콜 또는 로직 에러를 발견할 수 있다.
더욱이, 임의의 단일 시간에, 상이한 어드레스에 대한 대략 200 판독/기록 시스템 요구가 몇몇 구현예에서 소켓마다 존재할 수 있다. 각각의 DC에 PA의 대략 50개의 CAM 엔트리의 제한된 영역을 가지면, CAM은 50개의 상이한 PA의 어드레스 범위를 갖고 장애를 캡처하는 것을 시도하도록 프로그램될 수 있다. 장애가 프로그램된 어드레스 범위에 정합하지 않으면, 프로그래밍은 다음의 어드레스 범위로 변경될 수 있고, 따라서 정합 장애 어드레스 범위가 성취될 수 있다.
도 5는 장애를 예시하는 흐름도를 도시한다. 장애는 CA1에서 수신된 최종 응답이 오류이고, RspM 대신에 RspI일 때 발생한다. 도 5에서, CA는 캐싱 에이전트를 나타내고, HA는 홈 에이전트를 나타내고, PA는 물리적 어드레스를 나타낸다.
이하의 표 1은 실시예에 따른 어드레스당 데이터 구조/FIFO를 예시한다.
Figure pct00001
표 1에 나타낸 바와 같이, 각각의 DC는 PA마다 이하의 데이터 구조, 즉 프로토콜 검사를 위해 요구되는 정보를 저장하기 위한 변수를 포함할 수 있다. 예를 들어,
1. PA당 소유자: PA당 CoreID, CBoxID, 상태(M/E/F/S)
2. 트랜잭션 유형: [4:0] 명령 코드(RFO/WbMto*), [4:0] 메시지 클래스(HOM/SNP/NCS/NCB 등)
3. GUTID: [4:0] RSNID, [5:0] RTID, [4:0] DNID
실시예에 따르면, 32-비트 레지스터가 이하의 표 2에 나타낸 바와 같이 PA마다 사용될 수 있다.
Figure pct00002
일 실시예에 따르면, 표 3은 샘플 프로토콜 테이블을 나타낸다.
Figure pct00003
표 3에 나타낸 바와 같이, 특정 PA에 대해, 이벤트가 트리거링할 때마다 그리고 이벤트가 DC에서 수신될 때, DC는 그 레지스터 내에 그 대응 비트를 업데이트한다. 레지스터 비트의 임의의 업데이트시에, 프로토콜 검사기가 실시예에서 트리거링된다. 프로젝트 요구에 기초하여, 레지스터 비트는 프로토콜 검사기의 필요 또는 불필요 트리거링을 회피하기 위해 선택적으로 마스킹될 수 있다.
도 6은 본 발명의 실시예에 따른 컴퓨팅 시스템(600)의 블록 다이어그램을 도시한다. 컴퓨팅 시스템(600)은 상호 접속 네트워크(또는 버스)(604)를 경유하여 통신하는 하나 이상의 중앙 프로세싱 유닛(들)(CPU)(602-1 내지 602-N) 또는 프로세서[본 명세서에서 "프로세서들(602)" 또는 더 일반적으로 "프로세서(602)"라 총칭함]를 포함할 수 있다. 프로세서(602)는 범용 프로세서, 네트워크 프로세서[컴퓨터 네트워크(603)를 통해 통신하는 데이터를 프로세싱하는], 또는 다른 유형의 프로세서[축소 명령 세트 컴퓨터(RISC) 프로세서 또는 복합 명령 세트 컴퓨터(CISC)를 포함함]를 포함할 수 있다. 더욱이, 프로세서(602)는 단일 또는 다중 코어 디자인을 가질 수 있다. 다중 코어 디자인을 갖는 프로세서(602)는 동일한 집적 회로(IC) 다이 상에 상이한 유형의 프로세서 코어를 통합할 수 있다. 또한, 다중 코어 디자인을 갖는 프로세서(602)는 대칭 또는 비대칭 멀티프로세서로서 구현될 수 있다. 또한, 도 1 내지 도 5를 참조하여 설명된 동작이 시스템(600)의 하나 이상의 구성 요소에 의해 수행될 수 있다. 몇몇 실시예에서, 프로세서(602)는 도 2의 프로세서(202 내지 208)와 동일하거나 유사할 수 있다. 더욱이, 프로세서(602)는 DC(120)를 포함할 수 있다.
칩셋(606)은 또한 상호 접속 네트워크(604)와 통신할 수 있다. 칩셋(606)은 메모리 제어기 허브(MCH)(608)를 포함할 수 있다. MCH(608)는 메모리(612)와 통신하는 메모리 제어기(610)를 포함할 수 있다. 메모리(612)는 CPU(602) 또는 컴퓨팅 시스템(600)에 포함된 임의의 다른 디바이스에 의해 실행되는 명령의 시퀀스를 포함하는 데이터를 저장할 수 있다. 예를 들어, 메모리(612)는 운영 체제(OS)에 대응하는 데이터를 저장할 수 있다. 본 발명의 일 실시예에서, 메모리(612)는 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 동기적 DRAM(SDRAM), 정적 RAM(SRAM) 또는 다른 유형의 저장 디바이스와 같은 하나 이상의 휘발성 저장 장치(또는 메모리)를 포함할 수 있다. 하드 디스크와 같은 비휘발성 메모리가 또한 이용될 수 있다. 다중 CPU 및/또는 다중 시스템 메모리와 같은 부가의 디바이스가 상호 접속 네트워크(604)를 경유하여 통신할 수 있다.
부가적으로, 프로세서(602) 중 하나 이상은 하나 이상의 캐시(다양한 실시예에서 개인용 캐시 및/또는 공유 캐시를 포함할 수 있음) 및 연관 캐시 제어기(도시 생략)로의 액세스를 가질 수 있다. 캐시(들)는 하나 이상의 캐시 일관성 프로토콜에 준수할 수 있다. 캐시(들)는 시스템(600)의 하나 이상의 구성 요소에 의해 이용된 데이터(예를 들어, 명령을 포함함)를 저장할 수 있다. 예를 들어, 캐시는 프로세서(602)의 구성 요소에 의해 더 고속의 액세스를 위해 메모리(612) 내에 저장된 데이터를 로컬 캐싱할 수 있다. 실시예에서, 캐시(공유될 수 있는)는 중간-레벨 캐시 및/또는 최종 레벨 캐시(LLC)를 포함할 수 있다. 또한, 각각의 프로세서(602)는 레벨 1(L1) 캐시를 포함할 수 있다. 프로세서(602)의 다양한 구성 요소는 버스 또는 상호 접속 네트워크 및/또는 메모리 제어기 또는 허브를 통해 직접적으로 캐시와 통신할 수 있다. 또한, 각각의 프로세서(602)[또는 프로세서(602) 내에 존재하는 각각의 코어]는 몇몇 실시예에서 DC(120)를 포함할 수 있다.
MCH(608)는 예를 들어 그래픽 가속기를 경유하여 디스플레이 디바이스(616)와 통신하는 그래픽 인터페이스(614)를 또한 포함할 수 있다. 본 발명의 일 실시예에서, 그래픽 인터페이스(614)는 가속 그래픽 포트(AGP)를 경유하여 그래픽 가속기와 통신할 수 있다. 본 발명의 실시예에서, 디스플레이(616)(평면 패널 디스플레이와 같은)는 예를 들어 비디오 메모리 또는 시스템 메모리와 같은 저장 디바이스 내에 저장된 이미지의 디지털 표현을 디스플레이(616)에 의해 해석되고 표시되는 디스플레이 신호로 변환하는 신호 컨버터를 통해 그래픽 인터페이스(614)와 통신할 수 있다. 디스플레이 디바이스에 의해 생성된 디스플레이 신호는 디스플레이(616)에 의해 해석되어 이후에 표시되기 전에 다양한 제어 디바이스를 통해 통과할 수 있다.
허브 인터페이스(618)는 MCH(608) 및 입력/출력 제어 허브(ICH)(620)가 통신하게 할 수 있다. ICH(620)는 컴퓨팅 시스템(600)과 통신하는 I/O 디바이스로의 인터페이스를 제공할 수 있다. ICH(620)는 주변 장치 상호 접속(PCI) 브리지, 범용 직렬 버스(USB) 제어기 또는 다른 유형의 주변 브리지 또는 제어기와 같은 주변 브리지(또는 제어기)(624)를 통해 버스(622)와 통신할 수 있다. 브리지(624)는 CPU(602)와 주변 디바이스[예를 들어, 도 2의 디바이스(들)(208)와 같은] 사이에 데이터 경로를 제공할 수 있다. 다른 유형의 토폴로지가 이용될 수 있다. 또한, 다중 버스가 예를 들어, 다중 브리지 또는 제어기를 통해 ICH(620)와 통신할 수 있다. 더욱이, ICH(620)와 통신하는 다른 주변 기기는 본 발명의 다양한 실시예에서, 통합 드라이브 전자 장치(IDE) 또는 소형 컴퓨터 시스템 인터페이스(SCSI) 하드 드라이브(들), USB 포트(들), 키보드, 마우스, 병렬 포트(들), 직렬 포트(들), 플로피 디스크 드라이브(들), 디지털 출력 지원[예를 들어, 디지털 비디오 인터페이스(DVI)] 또는 다른 디바이스를 포함할 수 있다.
버스(622)는 오디오 디바이스(626), 하나 이상의 디스크 디바이스(들)(628) 및 네트워크 인터페이스 디바이스(630)[컴퓨터 네트워크(603)와 통신하고 있는]와 통신할 수 있다. 다른 디바이스는 버스(622)를 경유하여 통신할 수 있다. 또한, 본 발명의 몇몇 실시예에서 다양한 구성 요소[네트워크 인터페이스 디바이스(630)와 같은]가 MCH(608)와 통신할 수 있다. 게다가, 프로세서(602) 및 MCH(608)의 하나 이상의 구성 요소는 단일 칩을 형성하도록 조합될 수 있다.
더욱이, 컴퓨팅 시스템(600)은 휘발성 및/또는 비휘발성 메모리(또는 저장 장치)를 포함할 수 있다. 예를 들어, 비휘발성 메모리는, 판독 전용 메모리(ROM), 프로그램 가능 ROM(PROM), 소거 가능 PROM(EPROM), 전기적 EPROM(EEPROM), 디스크 드라이브(예를 들어, 628), 플로피 디스크, 콤팩트 디스크 ROM(CD-ROM), 디지털 다기능 디스크(DVD), 플래시 메모리, 자기-광학 디스크 또는 전자 데이터(예를 들어, 명령을 포함함)를 저장하는 것이 가능한 다른 유형의 비휘발성 머신-판독 가능 매체 중 하나 이상을 포함할 수 있다.
도 7은 본 발명의 실시예에 따른 점대점(PtP) 구성으로 배열된 컴퓨팅 시스템(700)을 도시한다. 특히, 도 7은 프로세서, 메모리 및 입력/출력 디바이스가 다수의 점대점 인터페이스에 의해 상호 접속되어 있는 시스템을 도시한다. 도 1 내지 도 6을 참조하여 설명된 동작은 시스템(700)의 하나 이상의 구성 요소에 의해 수행될 수 있다.
도 7에 도시된 바와 같이, 시스템(700)은 다수의 프로세서를 포함할 수 있고, 명료화를 위해 이들 중 단지 2개의 프로세서(702, 704)만이 도시되어 있다. 프로세서(702, 704)는 메모리(710, 712)와의 통신을 가능하게 하기 위한 로컬 메모리 제어기 허브(MCH)(706, 708)를 각각 포함할 수 있다. 메모리(710 및/또는 712)는 도 6의 메모리(612)를 참조하여 설명된 것들과 같은 다양한 데이터를 저장할 수 있다. 도 7에 도시된 바와 같이, 프로세서(702, 704)는 도 6을 참조하여 설명된 캐시(들)를 또한 포함할 수 있다.
실시예에서, 프로세서(702, 704)는 도 6을 참조하여 설명된 프로세서(602) 중 하나일 수 있다. 프로세서(702, 704)는 PtP 인터페이스 회로(716, 718) 각각을 사용하여 점대점(PtP) 인터페이스(714)를 경유하여 데이터를 교환할 수 있다. 또한, 프로세서(702, 704)는 점대점 인터페이스 회로(726, 728, 730, 732)를 사용하여 개별 PtP 인터페이스(722, 724)를 경유하여 칩셋(720)과 데이터를 각각 교환할 수 있다. 칩셋(720)은 예를 들어 PtP 인터페이스 회로(737)를 사용하여 고성능 그래픽 인터페이스(736)를 경유하여 고성능 그래픽 회로(734)와 데이터를 또한 교환할 수 있다.
본 발명의 적어도 하나의 실시예가 프로세서(702, 704) 또는 칩셋(720) 내에 제공될 수 있다. 예를 들어, DC(120)는 프로세서(702, 704) 내에[또는 프로세서(702 및/또는 704)의 각각의 코어 내에] 제공될 수 있다. 그러나, 본 발명의 다른 실시예가 도 7의 시스템(700) 내의 다른 회로, 로직 유닛 또는 디바이스 내에 존재할 수 있다. 더욱이, 본 발명의 다른 실시예는 도 7에 도시된 다수의 회로, 로직 유닛 또는 디바이스 전체에 걸쳐 분배될 수도 있다.
칩셋(720)은 PtP 인터페이스 회로(741)를 사용하여 버스(740)와 통신할 수 있다. 버스(740)는 버스 브리지(742) 및 I/O 디바이스(743)와 같은, 그와 통신하는 하나 이상의 디바이스를 가질 수 있다. 버스(744)를 경유하여, 버스 브리지(742)는 키보드/마우스(745), 통신 디바이스(746)[모뎀, 네트워크 인터페이스 디바이스 또는 컴퓨터 네트워크(603)와 통신할 수 있는 다른 통신 디바이스와 같은], 오디오 I/O 디바이스 및/또는 데이터 저장 디바이스(748)와 같은 다른 디바이스와 통신할 수 있다. 데이터 저장 디바이스(748)는 프로세서(702 및/또는 704)에 의해 실행될 수 있는 코드(749)를 저장할 수 있다.
본 발명의 다양한 실시예에서, 예를 들어 도 1 내지 도 7을 참조하여 본 명세서에 설명된 동작은, 하드웨어(예를 들어, 회로), 소프트웨어, 펌웨어, 마이크로코드 또는 예를 들어 본 명세서에 설명된 프로세스를 수행하도록 컴퓨터를 프로그램하는데 사용된 명령(또는 소프트웨어 절차)이 그 위에 저장되어 있는 (예를 들어, 비일시적) 머신-판독 가능 또는 (예를 들어, 비일시적) 컴퓨터-판독 가능 매체를 포함하는 컴퓨터 프로그램 제품으로서 제공될 수 있는 이들의 조합으로서 구현될 수 있다. 또한, 용어 "로직"은 예로서, 소프트웨어, 하드웨어 또는 소프트웨어와 하드웨어의 조합을 포함할 수 있다. 머신-판독 가능 매체는 도 1 내지 도 7을 참조하여 설명된 것들과 같은 저장 디바이스를 포함할 수 있다. 부가적으로, 이러한 컴퓨터-판독 가능 매체는 컴퓨터 프로그램 제품으로서 다운로드될 수 있고, 여기서 프로그램은 통신 링크(예를 들어, 버스, 모뎀 또는 네트워크 접속)를 경유하여 반송파 또는 다른 전파 매체 내에 구체화된 데이터 신호를 경유하여 원격 컴퓨터(예를 들어, 서버)로부터 요구 컴퓨터(예를 들어, 클라이언트)에 전송될 수 있다. 이에 따라, 여기서, 반송파는 머신-판독 가능 매체를 포함하는 것으로서 간주될 수도 있다.
본 명세서에서 "일 실시예" 또는 실시예"의 참조는 실시예와 관련하여 설명된 특정 특징, 구조 또는 특성이 적어도 구현예에 포함될 수 있다는 것을 의미한다. 명세서의 다양한 위치에서 구문 "일 실시예에서"의 출현은 모두 동일한 실시예를 언급할 수도 있고 또는 언급하지 않을 수도 있다.
또한, 상세한 설명 및 청구범위에서, 용어 "결합된" 및 "접속된"이 이들의 파생어와 함께 사용될 수 있다. 본 발명의 몇몇 실시예에서, "접속된"은 2개 이상의 요소가 서로 직접 물리적 또는 전기적 접속되어 있는 것을 지시하도록 사용될 수 있다. "결합된"은 2개 이상의 요소가 직접 물리적 또는 전기적 접속되어 있는 것을 의미할 수 있다. 그러나, "결합된"은 2개 이상의 요소가 서로 직접 접촉되지 않고, 여전히 서로 협동하거나 상호 작용할 수 있는 것을 또한 의미할 수 있다.
따라서, 본 발명의 실시예가 구조적 특징 및/또는 방법론적 동작에 특정한 언어로 설명되었지만, 청구된 요지는 설명된 특정 특징 또는 동작에 한정되는 것은 아닐 수도 있다는 것이 이해되어야 한다. 오히려, 특정 특징 및 동작은 청구된 요지를 구현하는 샘플 형태로서 개시되어 있다.
102: 에이전트 104: 네트워크 패브릭
202: 코어 0 204: 코어 1
206: 코어 2 208: 코어 3
603: 네트워크 606: 칩셋
610: 메모리 제어기 612: 메모리
614: 그래픽 인터페이스 616: 디스플레이
624: 주변 브리지 626: 오디오 디바이스
628: 디스크 드라이브 630: 네트워크 인터페이스 디바이스
702: 프로세서 704: 프로세서
710: 메모리 712: 메모리

Claims (20)

  1. 컴퓨팅 시스템 내의 장애에 대응하는 이벤트를 검출하기 위한 디버그 제어기와,
    상기 디버그 제어기에 결합되고, 상기 컴퓨팅 시스템 내의 다른 디버그 제어기에 대응하는 데이터를 저장하기 위한 저장 디바이스를 포함하되,
    상기 디버그 제어기는 저장된 데이터에 기초하여 다른 디버그 제어기 중 하나에 상기 이벤트에 대응하는 데이터를 전송하는 것인
    프로세서.
  2. 제 1 항에 있어서,
    상기 디버그 제어기는 복수의 버퍼를 포함하는 것이고, 각각의 버퍼는 타임 스탬프, 이벤트 유형, 물리적 어드레스 및 GUTID(Global Universal Transaction ID per address: 어드레스당 전역 범용 트랜잭션 ID)를 저장하는 것인
    프로세서.
  3. 제 2 항에 있어서,
    상기 GUTID는 요구자 소스 노드 ID(RSNID), 요구자 트랜잭션 ID(RTID) 및 목적지 노드 ID(DNID)를 포함하는 그룹으로부터 선택된 고유 트랜잭션 식별자에 대응하는
    프로세서.
  4. 제 1 항에 있어서,
    상기 저장된 데이터는 물리적 어드레스의 프로그램된 세트에 대응하는
    프로세서.
  5. 제 1 항에 있어서,
    상기 디버그 제어기는 물리적 어드레스 또는 GUTID에 의해 어드레스 가능한 적어도 2개의 콘텐츠 어드레스 가능 메모리를 포함하는 것인
    프로세서.
  6. 제 1 항에 있어서,
    상기 장애는 포스트 실리콘 디버그 중의 전역 및 일시적 장애, 시스템 또는 클러스터 일관성 장애 또는 데이터 불일치 장애 중 하나에 대응하는
    프로세서.
  7. 제 1 항에 있어서,
    상기 디버그 제어기는 물리적 어드레스당 소유자, 물리적 어드레스당 트랜잭션 유형 또는 물리적 어드레스당 GUTID 중 하나 이상을 포함하는 정보의 저장을 행하는 것인
    프로세서.
  8. 제 1 항에 있어서,
    상기 컴퓨팅 시스템은 복수의 프로세서를 포함하는 것인
    프로세서.
  9. 제 1 항에 있어서,
    상기 컴퓨팅 시스템은 복수의 소켓을 포함하는 것인
    프로세서.
  10. 컴퓨팅 시스템 내의 장애에 대응하는 이벤트를 검출하는 단계와,
    상기 컴퓨팅 시스템 내의 다른 디버그 제어기에 대응하는 데이터를 디버그 제어기에 의해 액세스 가능한 저장 디바이스 내에 저장하는 단계를 포함하되,
    상기 디버그 제어기는 상기 저장된 데이터에 기초하여 상기 다른 디버그 제어기 중 하나에 상기 이벤트에 대응하는 지표를 전송하는
    방법.
  11. 제 10 항에 있어서,
    타임 스탬프, 이벤트 유형, 물리적 어드레스 및 GUTID(어드레스당 전역 범용 트랜잭션 ID)를 하나 이상의 버퍼 내에 저장하는 단계를 더 포함하는
    방법.
  12. 제 10 항에 있어서,
    상기 저장된 데이터는 물리적 어드레스의 프로그램된 세트에 대응하는
    방법.
  13. 제 10 항에 있어서,
    상기 장애는 포스트 실리콘 디버그 중의 전역 및 일시적 장애, 시스템 또는 클러스터 일관성 장애 또는 데이터 불일치 장애 중 하나에 대응하는
    방법.
  14. 제 10 항에 있어서,
    물리적 어드레스당 소유자, 물리적 어드레스당 트랜잭션 유형 또는 물리적 어드레스당 GUTID를 메모리 내에 저장하는 단계를 더 포함하는
    방법.
  15. 컴퓨팅 시스템에 있어서,
    제 1 디버그 제어기를 포함하는 제 1 프로세서 - 상기 제 1 디버그 제어기는 장애에 대응하는 이벤트를 검출하는 것임 - 와,
    상기 제 1 디버그 제어기에 결합되고, 상기 컴퓨팅 시스템 내의 다른 디버그 제어기에 대응하는 데이터를 저장하는 저장 디바이스를 포함하되,
    상기 제 1 디버그 제어기는 상기 저장된 데이터에 기초하여 제 2 프로세서의 제 2 디버그 제어기에 상기 이벤트에 대응하는 데이터를 전송하는
    컴퓨팅 시스템.
  16. 제 15 항에 있어서,
    상기 제 1 디버그 제어기 또는 상기 제 2 디버그 제어기는 복수의 버퍼를 포함하는 것이고, 각각의 버퍼는 타임 스탬프, 이벤트 유형, 물리적 어드레스 및 GUTID(어드레스당 전역 범용 트랜잭션 ID)를 저장하는 것인
    컴퓨팅 시스템.
  17. 제 16 항에 있어서,
    상기 GUTID는 요구자 소스 노드 ID(RSNID), 요구자 트랜잭션 ID(RTID) 및 목적지 노드 ID(DNID)를 포함하는 그룹으로부터 선택된 고유 트랜잭션 식별자에 대응하는
    컴퓨팅 시스템.
  18. 제 15 항에 있어서,
    상기 저장된 데이터는 물리적 어드레스의 프로그램된 세트에 대응하는
    컴퓨팅 시스템.
  19. 제 15 항에 있어서,
    상기 제 1 프로세서에 결합된 오디오 디바이스를 더 포함하는
    컴퓨팅 시스템.
  20. 제 15 항에 있어서,
    상기 제 1 프로세서 또는 상기 제 2 프로세서 중 적어도 하나는 하나 이상의 프로세서 코어를 포함하는 것인
    컴퓨팅 시스템.
KR1020137016046A 2010-12-22 2011-12-19 복합 멀티-코어 및 멀티-소켓 시스템의 디버깅 KR101498452B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN3070DE2010 2010-12-22
IN3070/DEL/2010 2010-12-22
PCT/US2011/065764 WO2012087894A2 (en) 2010-12-22 2011-12-19 Debugging complex multi-core and multi-socket systems

Publications (2)

Publication Number Publication Date
KR20130095811A true KR20130095811A (ko) 2013-08-28
KR101498452B1 KR101498452B1 (ko) 2015-03-04

Family

ID=46314796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137016046A KR101498452B1 (ko) 2010-12-22 2011-12-19 복합 멀티-코어 및 멀티-소켓 시스템의 디버깅

Country Status (5)

Country Link
US (1) US8782468B2 (ko)
EP (1) EP2656227A2 (ko)
KR (1) KR101498452B1 (ko)
CN (1) CN103270504B (ko)
WO (1) WO2012087894A2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2656227A2 (en) 2010-12-22 2013-10-30 Intel Corporation Debugging complex multi-core and multi-socket systems
US9336100B2 (en) 2013-12-27 2016-05-10 International Business Machines Corporation Efficient debugging of memory miscompare failures in post-silicon validation
US9569345B2 (en) 2013-12-27 2017-02-14 International Business Machines Corporation Architectural failure analysis
US9251045B2 (en) 2013-12-27 2016-02-02 International Business Machines Corporation Control flow error localization
US9582388B2 (en) * 2014-10-03 2017-02-28 Globalfoundries Inc. Dynamic multi-purpose external access points connected to core interfaces within a system on chip (SOC)
CN104615564A (zh) * 2015-02-05 2015-05-13 浪潮电子信息产业股份有限公司 一种基于qpi总线的数据传输方法及计算机系统
US9626265B2 (en) 2015-06-29 2017-04-18 International Business Machines Corporation Efficiency of cycle-reproducible debug processes in a multi-core environment

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232135A (ja) * 1998-02-10 1999-08-27 Mitsubishi Electric Corp 半導体装置
DE10036278A1 (de) * 2000-07-26 2002-02-07 Bosch Gmbh Robert Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik
US7941585B2 (en) * 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
KR100619960B1 (ko) * 2004-11-22 2006-09-08 엘지전자 주식회사 인터넷을 통한 디버깅 장치의 원격 제어 장치 및 방법
US7536597B2 (en) 2005-04-27 2009-05-19 Texas Instruments Incorporated Apparatus and method for controlling power, clock, and reset during test and debug procedures for a plurality of processor/cores
JP5163120B2 (ja) * 2005-06-22 2013-03-13 日本電気株式会社 デバッグシステム、デバッグ方法、およびプログラム
US7472266B2 (en) * 2005-12-30 2008-12-30 Intel Corporation Fault resilient boot in multi-processor systems
US20070300115A1 (en) * 2006-06-01 2007-12-27 Ramyanshu Datta Apparatus and method for accelerating test, debug and failure analysis of a multiprocessor device
DE102007009909B4 (de) * 2007-02-28 2016-09-08 Globalfoundries Inc. Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung
EP2656227A2 (en) 2010-12-22 2013-10-30 Intel Corporation Debugging complex multi-core and multi-socket systems

Also Published As

Publication number Publication date
US20120166882A1 (en) 2012-06-28
CN103270504A (zh) 2013-08-28
US8782468B2 (en) 2014-07-15
WO2012087894A2 (en) 2012-06-28
WO2012087894A3 (en) 2013-01-03
KR101498452B1 (ko) 2015-03-04
EP2656227A2 (en) 2013-10-30
CN103270504B (zh) 2016-05-25

Similar Documents

Publication Publication Date Title
KR101498452B1 (ko) 복합 멀티-코어 및 멀티-소켓 시스템의 디버깅
TWI516933B (zh) 用於在本地代理者之記憶體鏡像及遷移之裝置及方法以及電腦可讀取媒體
KR101700545B1 (ko) 고성능 인터커넥트 코히어런스 프로토콜
KR101558427B1 (ko) 가상화된 입/출력을 위한 프로세서 로컬 코히어런시를 갖는 컴퓨터 시스템
US9952644B2 (en) Device power management state transition latency advertisement for faster boot time
US9525626B2 (en) Managing sideband routers in On-Die system fabric
US20130173837A1 (en) Methods and apparatus for implementing pci express lightweight notification protocols in a cpu/memory complex
WO2013081579A1 (en) Ring protocol for low latency interconnect switch
TW201135469A (en) Opportunistic improvement of MMIO request handling based on target reporting of space requirements
WO2013081580A1 (en) Raw memory transaction support
US8495091B2 (en) Dynamically routing data responses directly to requesting processor core
JP5307151B2 (ja) リンクに基づくシステムにおけるシステムルーティング情報の変更
US8909862B2 (en) Processing out of order transactions for mirrored subsystems using a cache to track write operations
US9411763B2 (en) Allocation of flow control credits for high performance devices
US20150058524A1 (en) Bimodal functionality between coherent link and memory expansion
US9392062B2 (en) Optimized ring protocols and techniques
US20050165974A1 (en) Computer apparatus and computer system
US9436613B2 (en) Central processing unit, method for controlling central processing unit, and information processing apparatus
US9910807B2 (en) Ring protocol for low latency interconnect switch

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 6