KR101054231B1 - 캐시/tlb 간섭 및 진단 테스트를 위한 경량, 고수율의 테스트 케이스 생성 방법 - Google Patents

캐시/tlb 간섭 및 진단 테스트를 위한 경량, 고수율의 테스트 케이스 생성 방법 Download PDF

Info

Publication number
KR101054231B1
KR101054231B1 KR1020090054601A KR20090054601A KR101054231B1 KR 101054231 B1 KR101054231 B1 KR 101054231B1 KR 1020090054601 A KR1020090054601 A KR 1020090054601A KR 20090054601 A KR20090054601 A KR 20090054601A KR 101054231 B1 KR101054231 B1 KR 101054231B1
Authority
KR
South Korea
Prior art keywords
processor
test case
executing
data
test
Prior art date
Application number
KR1020090054601A
Other languages
English (en)
Other versions
KR20100007719A (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 KR20100007719A publication Critical patent/KR20100007719A/ko
Application granted granted Critical
Publication of KR101054231B1 publication Critical patent/KR101054231B1/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/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • 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
    • 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
    • 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/26Functional testing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

테스트 케이스 관리자는 복수의 테스트 케이스로부터 제1 테스트 케이스 및 제2 테스트 케이스를 선택한다. 테스트 케이스 관리자는 제1 테스트 케이스를 제1 프로세서로 제공하고, 제2 테스트 케이스를 제2 프로세서로 제공한다. 이러한 이유로, 제1 프로세서는 제1 테스트 케이스를 실행하고, 제2 프로세서는 제2 테스트 케이스를 실행한다. 실행 이후에, 테스트 케이스 관리자는 제1 테스트 케이스를 제2 프로세서로 로딩하고, 제2 테스트 케이스를 제1 프로세서로 로딩한다. 이번에는, 제1 프로세서가 제2 테스트 케이스를 실행하고, 제2 프로세서가 제1 테스트 케이스를 실행한다.
테스트 케이스, 테스트 케이스 관리자, 정보 핸들링 시스템, 로테이션

Description

캐시/TLB 간섭 및 진단 테스트를 위한 경량, 고수율의 테스트 케이스 생성 방법{LIGHT WEIGHT AND HIGH THROUGHPUT TEST CASE GENERATION METHODOLOGY FOR TESTING CACHE/TLB INTERVENTION AND DIAGNOSTICS}
본 발명은 경량, 고수율의 테스트 케이스 방법(light weight and high throughput test case methodology)에 관한 것이다. 보다 구체적으로는, 본 발명은 축소된 테스트 케이스 세트(reduced set of test cases)를 활용하여 효율적으로 프로세서를 테스트하기 위해 동종 프로세서들(homogeneous processes) 사이에서 테스트 케이스를 교환(swapping)하는 것에 관한 것이다.
프로세서 테스팅 도구는 프로세서에 대해 가장 스트레스가 강한 테스트 케이스를 생성하기 위해 존재한다. 이론적으로, 생성된 테스트 케이스는 최대의 테스트 커버리지를 제공해야 하고 프로세서 상의 다양한 타이밍 시나리오로 스트레스를 주기에 충분해야 한다. 이와 같은 도구를 총망라하는 전체적인 기술은 이와 같은 테스트 케이스를 구축하는 로직 안에 있다.
테스트 케이스를 사용하는, 프로세서의 확인 및 유효성 검증(verifying and validating)은 통상적으로 세 단계를 포함한다. 이는 1) 테스트 패턴 구축 단계 2) 테스트 패턴 실행 단계, 및 3) 확인 및 유효성 검증 단계이다. 본 명세서에 개시되는 발명은 테스트 패턴 실행 단계 동안 축소된 테스트 케이스 세트를 활용하는 것과 관련이 있다.
본 발명은 축소된 테스트 케이스 세트를 활용하여 효율적으로 프로세서를 테스트하기 위해 동종 프로세서들 사이에서 테스트 케이스를 교환(swapping)하는 것을 목적으로 한다.
테스트 케이스 관리자는 복수의 테스트 케이스로부터 제1 테스트 케이스와 제2 테스트 케이스를 선택한다. 테스트 케이스 관리자는 제1 프로세서에 제1 테스트 케이스를 제공하고 제2 프로세서에 제2 테스트 케이스를 제공한다. 순서대로, 제1 프로세서는 제1 테스트 케이스를 실행하고 제2 프로세서는 제2 테스트 케이스를 실행한다. 이와 같이 실행한 이후에, 테스트 케이스 관리자는 제1 테스트 케이스를 제2 프로세서 상에 로딩하고 제2 테스트 케이스를 제1 프로세서 상에 로딩하여서, 그 결과 제1 프로세서는 제2 테스트 케이스를 실행하고 제2 프로세서는 제1 테스트 케이스를 실행한다.
전술한 내용은 요약이므로 필연적으로 상세한 사항에 대한 단순화, 일반화, 생략을 포함한다. 따라서, 본 기술분야의 당업자는 본 요약이 오직 예시적이며 한정의 의미로 해석되지 아니함을 이해할 것이다. 다른 태양, 진보된 태양 및 청구항에 의해서만 정의되는 본 발명의 이점은 한정적이지 않은 아래에 개시된 설명에서 명백해질 것이다.
본 발명은 축소된 테스트 케이스 세트를 활용하여 효율적으로 프로세서를 테스트하기 위해 동종 프로세서들 사이에서 테스트 케이스를 교환(swapping)할 수 있다.
특정한 구체적인 세부 사항은 본 발명의 다양한 실시예에 대한 충분한 이해를 제공하기 위해서 다음의 설명과 도면에 개시된다. 그러나, 컴퓨터 및 소프트웨어 기술과 관련된 잘 알려진 특정한 세부 사항은 본 발명의 다양한 실시예에 대한 불필요한 불명료성을 피하기 위해서 다음의 설명에서 개시되지 않는다. 더 나아가, 본 기술분야의 당업자는 아래에 개시된 상세한 설명들 중 하나 이상이 없어도 본 발명의 다른 실시예를 실시할 수 있다는 것을 이해할 수 있다. 마지막으로, 다양한 방법이 다음의 설명의 단계와 시퀀스를 참조하여 개시되었지만, 이와 같은 개시는 본 발명의 실시예의 명확한 구현을 제공하기 위함이고, 단계 및 단계의 시퀀스는 본 발명을 실시하기 위한 요건으로서 해석되지 않는다. 대신에, 다음의 설명은 본 발명의 예시의 상세한 설명을 제공하는 의도로 해석되며, 본 발명 자체의 한정으로 해석되지 않는다. 더 나아가, 임의의 수의 변형이 다음의 설명에 뒤따르는 청구항에 의해서 정의되는 본 발명의 범위 내에 있을 수 있다.
다음의 상세한 설명은 일반적으로 상기에서 개시된 본 발명의 요약에 이어서 본 발명의 다양한 태양 및 실시예의 정의를 필요한 정도로 더 설명하고 이를 확장한다. 이를 위해서, 본 상세한 설명은 첫번째로 본 발명과 관련된 소프트웨어 및/또는 하드웨어 기술을 구현하는데 적합한 도 1의 컴퓨팅 환경을 개시한다. 네트워 크 환경은 최신 컴퓨팅 기술을 복수의 개별 장치(discrete devices)에 걸쳐서 수행할 수 있다는 점을 강조하기 위해서, 기본적인 컴퓨팅 환경의 확장으로서 도 2에 도시된다.
도 1은 본 명세서에 개시되는 컴퓨팅 동작을 수행할 수 있는 컴퓨터 시스템의 단순화된 예시인 정보 핸들링 시스템(100)을 도시한다. 정보 핸들링 시스템(100)은 프로세서 인터페이스 버스(112)에 연결되는 하나 이상의 프로세서(110)를 포함한다. 프로세서 인터페이스 버스(112)는 프로세서(110)를, MCH(Memory Controller Hub)로서도 알려진 노스브리지(Northbridge; 115)에 연결한다. 노스브리지(115)는 시스템 메모리(120)에 연결되며 프로세서(110)를 시스템 메모리에 엑세스하기 위한 수단을 제공한다. 그래픽 제어기(125)는 또한 노스브리지(115)에 연결된다. 일 실시예에서, PCI 익스프레스 버스(118)는 노스브리지(115)를 그래픽 제어기(125)에 연결하는데 사용된다. 그래픽 제어기(125)는 컴퓨터 모니터와 같은 디스플레이 장치(130)에 연결된다.
노스브리지(115)와 사우스브리지(135)는 버스(119)를 사용해서 서로 연결된다. 일 실시예에서, 버스는 데이터를 고속으로 노스브리지(115)와 사우스브리지(135) 사이의 각 방향으로 전송하는 DMI(Direct Media Interface)이다. 다른 실시예에서, PCI(Peripheral Component Interconnect) 버스는 노스브리지와 사우스브리지를 연결하는데 사용된다. ICH(I/O Controller Hub)로서도 알려진 사우스브리지(135)는 일반적으로 노스브리지에 의해서 제공되는 기능보다 더 느린 속도로 동작하는 기능을 구현한다. 사우스브리지(135)는 통상적으로 다양한 컴포넌트를 연 결하는데 사용되는 다양한 버스를 제공한다. 이와 같은 버스는 PCI 및 PCI 익스프레스 버스, ISA 버스, SMBus 또는 SMB(System Management Bus), LPC(Low Pin Count) 버스를 포함할 수 있다. LPC 버스는 자주, ROM(196) 및 "레거시" I/O 장치("슈퍼 I/O" 칩을 사용함)와 같은 낮은-대역폭 장치를 연결하는데 사용된다. "레거시" I/O 장치(198)는 직렬 및 병렬 포트, 키보드, 마우스, 플로피 디스크 제어기를 포함할 수 있다. LPC 버스는 또한 사우스브리지(135)를 TPM(Trusted Platform Module; 195)에 연결하는데 사용된다. 사우스브리지(135)에 자주 포함되는 다른 컴포넌트는 DMA(Direct Memory Access) 제어기, PIC(Programmable Interrupt Controller), 버스(184)를 사용해서 하드디스크 드라이브와 같은 비휘발성 저장 장치(185)로 사우스브리지(135)를 연결하는 저장 장치 제어기를 포함한다.
익스프레스카드(155)는 핫-플러깅 기능이 있는 장치(hot-pluggable devices)를 정보 핸들링 시스템과 연결하는데 사용된다. 익스프레스카드(155)는 USB(Universal Serial Bus)와 PCI 익스프레스 버스를 둘 다 사용해서 사우스브리지(135)와 연결되는 PCI 익스프레스 연결성과 USB 연결성을 둘 다 지원한다. 사우스브리지(135)는 장치를 USB에 연결하는 USB 연결성을 제공하는 USB 제어기(140)를 포함한다. 이와 같은 장치는 웹캠 (카메라)(150), IR(infrared) 수신기(148), 무선 개인망 네트워크(PANs)를 위해서 제공되는 블루투스 장치(146), 키보드와 트랙패드(144) 및 마우스, 착탈식 비휘발성 저장 장치(145), 모뎀, 네트워크 카드, ISDN 커넥터, 팩스, 프린터, USB 허브 및 많은 다른 유형의 USB 연결 장치와 같은 다른 다방면의 USB 연결 장치(142)를 포함한다. 착탈식 비휘발성 저장 장치(145) 는 USB-연결 장치로서 도시되지만, 파이어와이어 인터페이스(Firewire interface) 등과 같은 다른 인터페이스를 사용해서 연결될 수 있다.
무선 LAN(Local Area Network) 장치(175)는 PCI 또는 PCI 익스프레스 버스(172)를 통해 사우스브리지(135)와 연결된다. LAN 장치(175)는 통상적으로 정보 핸들링 시스템(100)과 다른 컴퓨터 시스템 또는 장치 사이의 무선 통신을 위해서 모두가 사용하는 동일한 프로토콜인 OTA(over-the-air) 변조 기술의 IEEE 802.11 표준 중 하나를 구현한다. 광 저장 장치(190)는 직렬 ATA(Serial ATA) 버스(188)를 사용해서 사우스브리지(135)와 연결된다. 직렬 ATA 아답터 및 장치는 고속 직렬 링크를 통해서 통신한다. 직렬 ATA 버스는 또한 사우스브리지(135)를 하드디스크 드라이브와 같은 다른 형식의 저장 장치와 연결하는데 사용된다. 사운드 카드와 같은 오디오 회로(160)는 버스(158)를 통해 사우스브리지(135)와 연결된다. 오디오 회로(160)는 오디오 라인-인 및 광 디지털 오디오 단자(162), 광 디지털 출력 및 헤드폰 잭(164), 내부 스피커(166) 및 내부 마이크로폰(168)과 같은 기능을 제공하기 위해서 사용된다. 이더넷 제어기(170)는 PCI 또는 PCI 익스프레스 카드와 같은 버스를 사용해서 사우스브리지(135)와 연결된다. 이더넷 제어기(170)는, LAN(Local Area Network), 인터넷 및 다른 공용 및 개인용 컴퓨터 네트워크와 같은 컴퓨터 네트워크로 정보 핸들링 시스템(100)을 연결하는데 사용된다.
도 1은 하나의 정보 핸들링 시스템을 도시하지만, 정보 핸들링 시스템은 많은 형식을 취할 수 있다. 예를 들어, 정보 핸들링 시스템은 테스크탑, 서버, 휴대용, 랩탑, 노트북 또는 다른 폼 팩터 컴퓨터(form factor computer) 또는 데이터 프로세싱 시스템의 형식을 취할 수 있다. 추가적으로, 정보 핸들링 시스템은 PDA(personal digital assistant), 게임 장치, ATM 머신, 휴대용 전화 장치, 통신 장치 또는 프로세서와 메모리를 포함하는 다른 장치와 같은 다른 폼 팩터를 취할 수 있다.
도 1에 도시되고 본 명세서에 개시되는 TPM(Trusted Platform Module; 195)은 HSM(hardware security module)의 단지 일예시인 보안 기능을 제공한다. 따라서, 본 명세서에 개시되고 청구되는 TPM은, 이에 한정되지는 않지만 "TPM(Trusted Platform Module) 기술 사양서 버전 1.2"라고 불리우는 TCG(Trusted Computing Groups) 표준에 따르는 하드웨처 보안 장치를 포함하는 임의의 유형의 HSM을 포함한다. TPM은 도 2에 외곽선으로 표시되는 임의의 개수의 정보 처리 시스템에 통합될 수 있는 하드웨어 보안 서브시스템이다.
도 2는 네트워크 환경에서 동작하는 다양한 정보 핸들링 시스템 상에서 수행될 수 있는 본 명세서에 개시되는 방법을 예시하기 위한 도 1에 도시된 정보 핸들링 시스템의 확장을 제공한다. 정보 핸들링 시스템의 유형은 휴대용 컴퓨터/휴대폰(210)과 같은 소형 휴대용 장치에서 메인프레임 컴퓨터(270)와 같은 큰 메인프레임 시스템까지의 범위를 가진다. 휴대용 컴퓨터(210)의 예시는 PDA(personal digital assitants), MP3 플레이어, 휴대용 텔레비젼 및 CD 플레이어와 같은 개인용 엔터테인먼트 장치를 포함한다. 정보 핸들링 시스템의 다른 예시는 펜 또는 타블렛 컴퓨터(220), 랩탑 또는 노트북 컴퓨터(230), 워크스테이션(240), 개인용 컴퓨터 시스템(250) 및 서버(260)를 포함한다. 도 2에 개별적으로 도시되지 않는 다 른 유형의 정보 핸들링 시스템은 정보 핸들링 시스템(280)에 의해서 표현된다. 도시되는 바와 같이, 다양한 정보 핸들링 시스템은 컴퓨터 네트워크(200)를 사용해서 서로 연결될 수 있다. 다양한 정보 핸들링 시스템을 상호연결하는데 사용될 수 있는 컴퓨터 네트워크의 유형은 LAN(Local Area Network), WLAN(Wireless Local Area Network), 인터넷, PSTN(Public Switched Telephone Network), 다른 무선 네트워크 및 정보 핸들링 시스템을 상호연결하기 위해서 사용될 수 있는 임의의 다른 네트워크 토폴로지를 포함한다. 많은 정보 핸들링 시스템은 하드 드라이브 및/또는 비휘발성 메모리와 같은 비휘발성 데이터 저장소를 포함한다. 도 2에 도시되는 정보 처리 시스템의 일부는 별개의 비휘발성 데이터 저장소들과 함께 표현된다(서버(260)는 비휘발성 데이터 저장소(265)와 함께 도시되고, 메인프레임 컴퓨터(270)는 비휘발성 데이터 저장소(275)와 함께 도시되고, 정보 핸들링 시스템(280)은 비휘발성 데이터 저장소(285)와 함께 도시됨). 비휘발성 데이터 저장소는 다양한 정보 핸들링 시스템의 외부에 있는 컴포넌트일 수 있고 또는 정보 핸들링 시스템 중 하나의 내부에 있을 수 있다. 추가적으로, 착탈식 비휘발성 저장 장치(145)는 이를 USB 포트 또는 정보 처리 시스템의 다른 커넥터에 연결하는 등의 다양한 기술을 사용해서 둘 이상의 정보 핸들링 시스템 사이에서 공유될 수 있다.
도 3은 시스템 메모리를 공유하는 메인 프로세서와 복수의 보조 프로세서를 가지는 프로세싱 구성요소를 도시하는 블록도이다. BEA(Broadband Element Architecture; 305)는 일 실시예에서 메인 프로세서로서 동작하고 운영 체제를 실행시키는 PU(processing unit; 310)를 포함한다. 프로세싱 유닛(310)은, 예를 들 어 리눅스 운영 체제를 실행하는 파워 PC 코어(Power PC core)일 수 있다. BEA(305)는 또한 SPE(345 내지 385)와 같은 복수의 SPE(synergistic processing elements)를 포함한다. 각 SPE는 PU(310)에 대해 보조 프로세싱 유닛으로서 동작하는 SPU(synergistic processing unit), 메모리 저장 유닛 및 로컬 저장소를 포함한다. 예를 들어, SPE(345)는 SPU(360), MMU(355) 및 로컬 저장소(359)를 포함하고, SPE(365)는 SPU(370), MMU(375) 및 로컬 저장소(379)를 포함하고, SPE(385)는 SPU(390), MMU(395) 및 로컬 저장소(399)를 포함한다.
일 실시예에서, SPE는 PU(310)의 제어하에 데이터를 프로세싱한다. SPE는, 예를 들어 디지털 신호 프로세싱 코어, 마이크로프로세서 코어, 마이크로 제어기 코어 등 또는 상기 코어들의 조합일 수 있다. 일 실시예에서, 로컬 저장소 각각은 특정한 SPU와 관련된 저장 영역이다. 각 SPU는 전용 저장 영역(private storage area), 공유 저장 영역으로서 이의 로컬 저장소를 구성할 수 있고, 또는 SPU의 로컬 저장소는 부분적으로는 전용이고 부분적으로는 공유될 수 있다.
예를 들어, SPU가 로컬 메모리의 상당한 부분을 요구하면, SPU는 오직 SPU에 의해서만 액세스될 수 있는 전용 메모리로 자신의 로컬 저장소의 100%를 할당할 수 있다. 반면에, SPU가 로컬 메모리의 최소한의 양을 요구하면, SPU는 전용 메모리로 자신의 로컬 저장소의 10%를 할당하고 공유 메모리로 남은 90%를 할당할 수 있다. 공유 메모리는 PU(310)와 다른 SPE들에 의해서 액세스될 수 있다. SPU는 빠른 액세스를 요구하는 작업을 수행할 때 SPU가 일부 메모리로의 빠르고, 보증된 액세스를 가지기 위해서 자신의 로컬 저장소의 일부를 확보할 수 있다. SPU는 또한, 예를 들어 SPU가 암호화/복호화를 수행할 때와 같이 민감한 데이터(sensitive data)를 처리할 때 자신의 로컬 저장소의 일부를 전용으로서 확보할 수 있다.
MMU는 SPU의 로컬 저장소와 시스템 메모리 사이의 데이터 전송을 담당한다. 일 실시예에서, MMU는 이와 같은 기능을 수행하기 위해서 구성되는 DMA(direct memory access) 제어기를 포함한다.
각 SPE는 상이한 작업을 수행하기 위해서 설정될 수 있기 때문에, 일 실시예에서 각 SPE는 상이한 명령어 세트를 사용해서 액세스될 수 있다. BEA(305)가 무선 통신 시스템에서 사용된다면, 예를 들어, 각 SPE는 변조, 칩 레이트 프로세싱(chip rate processing), 인코딩, 네트워크 인터페이싱 등과 같은 개별적인 프로세싱 작업을 담당한다. 다른 실시예에서, 각 SPE는 동일한 명령어 세트를 가질 수 있고 병렬 프로세스로부터 이득을 받는 동작을 수행하기 위해서 병렬로 사용될 수 있다.
SPE의 로컬 저장소의 공유되는 부분은 각 공유되는 영역을 시스템 메모리(320)로 매핑하는 것에 의해서, PU(310)뿐만 아니라 다른 SPE들에 의해서 액세스될 수 있다. 일 실시예에서, PU(310)는 공용 시스템 메모리(320)에 대한 메모리 맵을 관리한다. 메모리 맵 테이블은 PU(310), L2 캐시(315), 시스템 메모리(320)뿐만 아니라 SPE들의 공유된 로컬 저장소를 포함할 수 있다.
도시되는 바와 같이 시스템 메모리(320)의 부분은 운영 체제(OS; 325)에 의해서 점유된다. 시스템 메모리(325)는 또한 SPU(310)뿐만 아니라 SPE들에 의해서도 프로세싱되는 데이터를 나타내는 데이터(340)를 포함한다. 일 실시예에서, PU 상에서 실행되는 프로세스는 큰 데이터의 프로세싱을 포함하는 작업에 대한 요청을 수신한다. PU는 첫번째로 작업을 수행하기 위한 최적의 방법뿐만 아니라 공용 시스템 메모리(320)에서의 데이터의 최적의 배치를 결정한다. PU는 디스크(335)로부터 시스템 메모리(320)로 프로세싱될 데이터의 전송을 개시할 수 있다. 일 실시예에서, PU는 시스템 메모리(325)의 데이터를 SPE들의 레지스터의 데이터 블록 크기로 정렬한다. 일 실시예에서, SPE들은 각 레지스터가 128비트 길이를 가지는 128 레지스터를 가질 수 있다.
PU는 가용한 SPE들을 탐색하고 데이터의 프로세싱을 위해서 데이터의 블록을 임의의 가능한 SPE에 할당한다. SPE들은 공용 시스템 메모리에 (예를 들어, DMA 명령을 통해) 액세스하고, 데이터를 SPE의 로컬 저장소에 전송하고 할당된 동작을 수행할 수 있다. 데이터 프로세싱 이후에, SPE는 (예를 들어, 다시 DMA를 사용해서) 데이터를 공용 시스템 메모리(320)로 재전송할 수 있다. 이와 같은 과정은 모든 데이터 블록이 프로세싱 되어서 SPE가 사용가능해질 때까지 반복될 수 있다.
도 4는 테스트 케이스 관리자가 "n"개의 테스트 케이스를 개별적인 프로세서 상에서 실행되는 복수의 테스트 케이스 실행자에 제공하는 것을 도시하는 도면이다. 테스트 케이스 관리자(400)는 테스트 케이스 0A(410), 테스트 케이스 1A(415), 테스트 케이스 2A(420) 및 테스트 케이스 3A(425)를 테스트 케이스 실행자(430)에 제공하고 테스트 케이스 0B(411), 테스트 케이스 1B(416), 테스트 케이스 2B(421) 및 테스트 케이스 3B(426)를 테스트 케이스 실행자(440)에 제공한다. 순서대로, 테스트 케이스 실행자(430)는 테스트 케이스를 프로세서 A(460)에 디스 패치(dispatch)하고 테스트 케이스 실행자(440)는 테스트 케이스를 프로세서 B(460)에 디스패치한다. 실행 동안, 프로세서 A(450)와 프로세서 B(460)은 서로 통신할 수 있고, 또는 버스(470)를 통해 메인 메모리(480)로부터 정보를 검색할 수 있다. 일 실시예에서, 테스트 케이스 관리자(400)는 싱글 테스트 케이스를 테스트 케이스 실행자(430)에 제공하고 상이한 테스트 케이스를 테스트 케이스 실행자(440)에 제공한다.
각 테스트 케이스 실행 이후에, 테스트 케이스 실행자(430)와 테스트 케이스 실행자(440)는 레지스터 오류 검출 확인을 수행한다. 예를 들어, 프로세서 A(450)가 테스트 케이스 0A를 실행한 이후에 프로세서 B(460)는 테스트 케이스 0B(411)를 실행하고, 테스트 케이스 실행자(430)와 테스트 케이스 실행자(440)는 모두 그들 각각의 프로세서로부터의 하드웨어 결과에 기초해서 하드웨어 레지스터 오류 검출 확인을 계산할 수 있고, 계산된 값을 시뮬레이션 레지스터 오류 검출 확인 값과 매칭할 수 있다.
적어도 한번 프로세서 A(450)가 자신의 대응하는 테스트 케이스 모두의 실행을 마치고, 프로세서 B(460)가 자신의 대응하는 테스트 케이스의 전부의 실행을 마치면, 테스트 케이스 실행자(430, 440) 각각은 시뮬레이션 값과 메모리 오류 검출 비교를 수행하고, 비교 값이 매칭되지 않으면 오류 플래그를 설정한다. 순서대로, 테스트 케이스 관리자(440)는 후속 실행(보다 상세한 사항에 대해서는 도 5 및 대응하는 텍스트 참조)을 위해서 프로세서 A(450)와 프로세서 B(460) 사이에서 테스트 케이스를 교환한다.
도 5는 프로세서의 후속적인 테스트를 위해서 동종 프로세서 사이에서 테스트 케이스를 교환하는 테스트 케이스 관리자를 도시하는 도면이다. 도 5는 테스트 케이스 관리자(400)가 테스트 케이스 0B(411) 내지 3B(426)를 테스트 케이스 실행자(430) 상에 로딩하고, 테스트 케이스 0A(410) 내지 3A(425)를 테스트 케이스 실행자(440) 상에 로딩하는 것을 제외하고는 도 4와 유사하다. 결과적으로, 도 4에 도시되는 예시와 반대로, 프로세서 A(450)는 테스트 케이스 0B(411) 내지 3B(426)를 실행하고, 프로세서 B가 테스트 케이스 0A(410) 내지 3A(425)를 실행한다.
일 실시예에서, 캐시 로직은 각 프로세서가 가장 최신 캐시 라인 데이터(보다 상세한 사항에 대해서는 도 7 내지 8 및 대응하는 텍스트 참조)에 대한 액세스를 가지기 위해서 프로세서 B(460)에 제공되는 캐시 라인을 프로세서 A(450)에 제공되는 캐시 라인에 로딩한다(그리고 이의 역을 수행한다).
도 6은 프로세서들 사이에서 테스트 케이스를 교환하는 라운드 로빈 접근법을 도시하는 테이블이다. 테이블(600)은, 각각이 테스트 케이스 순환 라운드에 대응하는 행(610 내지 630)을 포함한다. 테이블(600)은 또한 각각이 특정한 프로세서에 대응하는 열(640 내지 660)을 포함한다.
라운드 1(행 610) 동안, 볼 수 있다시피 프로세서 A는 테스트 케이스 1을 실행하고, 프로세서 B는 테스트 케이스 2를 실행하고, 프로세서 C는 테스트 케이스 3을 실행한다. 각 프로세서가 적어도 한번 자신의 대응하는 테스트 케이스를 실행한 이후에, 테스트 케이스 관리자는 프로세서들 사이에서 테스트 케이스를 순환(교환)시킨다. 따라서, 라운드 2(행 620) 동안, 프로세서 A는 테스트 케이스 2를 실 행하고, 프로세서 B는 테스트 케이스 3을 실행하고, 프로세서 C는 테스트 케이스 1을 실행한다.
각 프로세서가 적어도 한번 자신의 대응하는 테스트 케이스를 실행한 이후에, 다시 테스트 케이스 관리자는 프로세서들 사이에서 테스트 케이스를 순환(교환)시킨다. 순서대로, 라운드 3 동안(행 630), 프로세서 A는 테스트 케이스 3을 실행하고, 프로세서 B는 테스트 케이스 1을 실행하고, 프로세서 C는 테스트 케이스 2를 실행한다. 본 기술분야의 당업자는 프로세서들 사이에서 테스트 케이스를 교환시키기 위해서 라운드 로빈 접근법 이외의 다른 메커니즘이 사용될 수 있다는 것을 이해할 수 있다.
도 7은 테스트 케이스 실행 동안 캐시 라인 데이터를 대응하는 캐시 라인에 로딩하는 프로세서를 도시하는 도면이다. 프로세서 A(730) 및 프로세서 B(735)는 동종 프로세서이다. 도 7은 테스트 케이스 A(720)가 프로세서 A(730)에 로딩하고, 테스트 케이스 B(725)가 프로세서 B(735)에 로딩하는 것을 도시한다.
프로세서 A(730)가 테스트 케이스 A(720)를 실행함에 따라, 프로세서 A(730)는 버스(760)를 통해 메인 메모리(770)로부터 데이터를 페치(fetch)하고 데이터를 프로세서 A 캐시(740)에 로딩한다(행 742 내지 746). 이와 유사하게, 프로세서 B(735)가 테스트 케이스 B(725)를 실행함에 따라, 프로세서 B(735)는 버스(760)를 통해 메인 메모리(770)로부터 데이터를 페치하고 데이터를 프로세서 B 캐시(750)에 로딩한다(행 752 내지 756).
각 프로세서는 테스트 케이스 실행 동안 자신의 대응하는 캐시 라인을 수정 할 수 있다. 결과적으로, 테스트 케이스가 프로세서들 사이에서 교환되어서 실행을 시작할 때, 프로세서가 가장 최신 캐시 데이터에 액세스하기 위해서 캐시 로직은 하나의 프로세서의 전용 캐시로부터 다른 프로세서의 전용 캐시로 캐시 라인 데이터를 이동시킬 수 있다(보다 상세한 사항에 대해서는 도 8 및 대응하는 텍스트 참조).
도 8은 캐시 로직이 프로세서들 사이의 테스트 케이스 교환의 결과로서 전용 프로세서들 사이에서 캐시 데이터를 이동시키는 것을 도시하는 도면이다. 프로세서 A(730)는 미리 테스트 케이스 A(725)를 실행하고 프로세서 B는 미리 테스트 케이스 B를 실행한다(도 7 참조). 이와 같은 작업을 통해, 각 프로세서는 메인 메모리(770)로부터 데이터를 검색하고 데이터를 자신의 캐시(740, 750)에 각각 로딩한다. 테스트 케이스 실행 동안, 프로세서 A(730) 및 B(735)는 각각 캐시(740)에 포함된 데이터를 수정한다.
도 8은 프로세서 A(730)와 프로세서 B(735) 사이에서 결과적으로 교환된 테스트 케이스 A(725)와 테스트 케이스 B(727)를 도시한다. 프로세서 A(730)와 프로세서 B(735)는 자신의 새로운 테스트 케이스의 실행을 시작함에 따라서, 캐시 로직은 프로세서 A(730)가 요청하는 원래 캐시 라인(756)에 있던 데이터와 프로세서 B(735)가 요청하는 원래 캐시 라인(744)에 있던 데이터를 검출한다. 순서대로, 캐시 로직은 테스트 케이스 B(720)에 의해 요청되는 데이터를 프로세서 B 캐시(750)로부터 프로세서 A 캐시(740)로 이동시킨다. 캐시 로직은 또한 테스트 케이스 A(725)에 의해 요청되는 데이터를 프로세서 A 캐시(740)로부터 프로세서 B 캐 시(750)로 이동시킨다. 결과적으로, 프로세서 A(730)는 충분히 테스트 케이스 B(720)를 실행할 수 있고, 프로세서 B(735)는 충분히 테스트 케이스 A(725)를 실행할 수 있다.
일 실시예에서, 상기 논의된 바와 같이 전용 캐시 라인 사이에서 데이터가 이동되는 것과 유사하게 어드레스 변환 라인들(address translation lines)은 전용 변환 색인 버퍼(translation lookaside buffer, TLB's) 사이에서 이동된다. 이러한 실시예에서, 교환한 후에 어드레스 변환 라인들을 무효로 하고 플러싱(flushing)하는 경우, TLB's의 로직이 테스팅된다.
도 9는 프로세서 시스템에 포함되는 프로세서들 사이에서 테스트 케이스들을 교환하는 단계를 도시하는 흐름도이다. 프로세싱은 900에서 시작하며, 프로세싱은 시스템에 포함된 각각의 프로세서에 대해 테스트 케이스를 선택한다. 예를 들어, 이 시스템은 네 개의 프로세서를 포함할 수 있으며, 이러한 경우에 프로세싱은 네 개의 상이한 테스트 케이스를 선택한다.
단계(910)에서, 프로세싱은 그 대응하는 프로세서를 사용하여 선택된 테스트 케이스를 동시에 실행한다. 상기 설명된 예를 사용하여, 프로세싱은 제1 프로세서 상에서 제1 테스트 케이스를 실행하고, 제2 프로세서 상에서 제2 테스트를 실행하는 등이다. 동일한 프로세서 상에서 테스트 케이스를 실행할 것인지에 대한 결정이 이루어진다(결정 블록(940)). 예를 들어, 프로세싱은 하나의 열(row)의 열 번 반복을 위해 특정 프로세서 상에서 특정 테스트 케이스를 실행하도록 구성될 수 있다.
만약 프로세싱이 테스트 케이스들을 동일한 프로세서들에서 실행해야 한다면, 프로세싱은 "예" 가지(932)로 분기하는데, 이는 테스트 케이스들을 다시 실행하기 위해 다시 루프를 돈다. 이 루프는 프로세싱이 테스트 케이스들을 동일한 프로세서들에서 실행하지 않아야 할 때까지 계속되는데, 이때 결정(930)은 "아니오" 가지(938)로 분기한다.
프로세서들 사이에 테스트 케이스들을 교환할지 여부에 대해 결정이 이루어진다(결정(940)). 예를 들어, 프로세싱은, 제1 테스트 케이스를 제2 프로세서에 로딩하고, 제2 테스트 케이스를 제3 프로세서에 로딩하는 등과 같은 라운드 로빈 방식으로 테스트 케이스들을 교환하기를 희망할 수 있다. 만약 프로세싱이 테스트 케이스들을 교환해야 한다면, 결정(940)은 "예" 가지(942)로 분기해서, 프로세싱이 테스트 케이스들을 교환하고(단계(950)), 테스트 케이스들을 서로 다른 프로세서들에서 실행한다. 반면, 만약 프로세싱이 테스트 케이스들을 교환하지 않아야 한다면, 결정(940)은 "아니오" 가지(948)로 분기해서, 프로세싱이 단계(960)에서 종료된다.
본 발명의 바람직한 구현들 중의 하나는 클라이언트 애플리케이션 (즉, 명령어들(프로그램 코드)의 세트) 또는, 예를 들어 컴퓨터의 랜덤 액세스 메모리에 상주할 수 있는 코드 모듈의 기타 기능기술재료(functional descriptive material)이다. 컴퓨터에 의해 요구될 때까지, 명령어들의 세트는 다른 컴퓨터 메모리에 (예를 들어, 하드디스크 드라이브에, 또는 (CD ROM에서의 결과적인 사용을 위한) 광디스크 또는 (플로피 디스크 드라이브에서의 결과적인 사용을 위한) 플로피 디스크와 같은 착탈식 메모리에) 저장되어 있을 수 있다. 따라서, 본 발명은 컴퓨터에서 사용하기 위한 컴퓨터 프로그램 제품으로 구현될 수 있다. 추가로, 설명된 다양한 방법들이 소프트웨어에 의해 선택적으로 작동되거나 재구성되는 범용컴퓨터에 편리하게 구현되었지만, 당업자는 그러한 방법들이 하드웨어에, 펌웨어에, 또는 필요한 방법의 단계들을 수행하도록 만들어진 보다 특화된 장치로 실행될 수 있다는 것을 알 것이다. 기능기술재료는 머신에 기능성을 주는 정보이다. 기능기술재료는 컴퓨터 프로그램, 명령어, 규칙, 사실, 컴퓨터 기능의 정의, 객체, 및 데이터 구조를 포함하지만, 이에 한정되지는 않는다.
본 발명의 특정 실시예들이 도시되고 설명되었지만, 여기의 교시에 기초하여 변경 및 변화가 본 발명 및 그 더 넓은 태양을 벗어나지 않고 이루어질 수 있다는 것이 당업자에게 자명할 것이다. 그러므로, 첨부된 특허청구범위는 본 발명의 사상 및 범위 내인 그러한 모든 변경 및 변화를 포함한다. 더 나아가, 본 발명은 첨부된 특허청구범위에 의하여만 정의된다는 것을 이해해야 한다. 당업자는, 만약 특정 갯수의 제시된 청구항 구성 요소가 의도되었다면 그러한 의도는 청구항에 명시적으로 열거될 것이고, 그러한 열거가 없다면 그러한 제한도 없다는 것을 이해할 것이다. 이해를 돕기 위한 제한적이지 않은 예를 위해, 이하의 특허청구범위는 청구 요소들을 소개하기 위한 "적어도 하나" 및 "하나 이상"이라는 소개구들의 사용을 포함한다. 그러나, 그러한 구들이 사용되었다고 그렇지 않은 요소들을 하나만 포함한다고 이해해서는 안 된다.
본 발명은 첨부된 도면을 참조해서 더 잘 이해될 수 있고, 이의 많은 객체, 태양 및 이점이 본 기술분야의 당업자에게 명백해질 것이다.
도 1은 본 명세서에 개시된 방법이 구현될 수 있는 데이터 프로세싱 시스템의 블록도.
도 2는 네트워크 환경에서 동작하는 광범위하게 다양한 정보 핸들링 시스템(information handling systems) 상에서 수행될 수 있는 본 명세서에 개시된 방법을 설명하기 위해서 도 1에 도시되는 정보 핸들링 시스템 환경의 확장을 제공하는 도면.
도 3은 시스템 메모리를 공유하는 복수의 보조 프로세서와 메인 프로세서를 가지는 프로세싱 구성요소를 도시하는 블록도.
도 4는 개별적인 프로세서들 상에서 실행되는 복수의 테스트 케이스 실행자(test case executors)에 "n"개의 테스트 케이스를 제공하는 테스트 케이스 관리자를 도시하는 도면.
도 5는 추가적으로 프로세서들을 테스트하기 위해 동종의 프로세서들 사이에서 테스트 케이스들을 교환하는 테스트 케이스 관리자를 도시하는 도면.
도 6은 프로세서들 사이에서 테스트 케이스를 교환하는 라운드 로빈 접근법(round robin approach)을 도시하는 테이블.
도 7은 테스트 케이스 실행 동안 캐시 라인 데이터를 대응하는 캐시 라인들에 로딩하는 프로세서들을 도시하는 도면.
도 8은 프로세서들 사이의 테스트 케이스 교환의 결과로서 전용 프로세서 캐시 사이에서 캐시 데이터를 이동시키는 캐시 로직을 도시하는 도면.
도 9는 프로세서 시스템에 포함되는 프로세서들 사이에서 테스트 케이스 캐시를 교환하기 위해 수행되는 단계들을 도시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
100: 정보 핸들링 시스템
110: 프로세서(들)
112: 프로세서 인터페이스 버스
115: 노스브리지 메모리 제어기
118: PCI 익스프레스
120: 시스템 메모리

Claims (9)

  1. 복수의 테스트 케이스로부터 제1 테스트 케이스를 선택하는 단계;
    상기 복수의 테스트 케이스로부터 제2 테스트 케이스를 선택하는 단계;
    상기 제1 테스트 케이스를 제1 프로세서 상에서 실행하고 상기 제2 테스트 케이스를 제2 프로세서 상에서 실행하는 단계;
    상기 실행 이후에, 상기 제1 테스트 케이스를 상기 제2 프로세서 상에 로딩하고 상기 제2 테스트 케이스를 상기 제1 프로세서 상에 로딩하는 단계; 및
    상기 제1 테스트 케이스를 상기 제2 프로세서 상에서 실행하고 상기 제2 테스트 케이스를 상기 제1 프로세서 상에서 실행하는 단계
    를 포함하는 머신으로 구현되는 방법.
  2. 제1항에 있어서,
    상기 제1 테스트 케이스 및 상기 제2 테스트 케이스는 동시에 실행되는, 머신으로 구현되는 방법.
  3. 제1항에 있어서,
    상기 제1 테스트 케이스의 상기 제1 프로세서 상에서의 상기 실행 과정에서, 제1 세트의 데이터를 메인 메모리로부터 상기 제1 프로세서에 대응되는 제1 캐시의 제1 캐시 라인으로 로딩하는 단계;
    상기 제2 테스트 케이스의 상기 제2 프로세서 상에서의 상기 실행 과정에서, 제2 세트의 데이터를 상기 메인 메모리로부터 상기 제2 프로세서에 대응되는 제2 캐시의 제2 캐시 라인으로 로딩하는 단계; 및
    상기 제1 테스트 케이스를 상기 제1 프로세서 상에서 실행하는 것에 응답하여 상기 제1 세트의 데이터를 변경하고, 상기 제2 테스트 케이스를 상기 제2 프로세서 상에서 실행하는 것에 응답하여 상기 제2 세트의 데이터를 변경하는 단계
    를 더 포함하는 머신으로 구현되는 방법.
  4. 제3항에 있어서,
    상기 제1 테스트 케이스를 상기 제2 프로세서 상에 로딩하고 상기 제2 테스트 케이스를 상기 제1 프로세서 상에 로딩하는 단계 이후에, 상기 제1 세트의 데이터 및 상기 제2 세트의 데이터의 상기 변경을 감지하는 단계; 및
    상기 감지에 응답하여, 상기 변경된 제1 세트의 데이터를 상기 제1 캐시 라인으로부터 상기 제2 캐시로 로딩하고 상기 변경된 제2 세트의 데이터를 상기 제2 캐시 라인으로부터 상기 제1 캐시로 로딩하는 단계
    를 더 포함하는 머신으로 구현되는 방법.
  5. 제4항에 있어서,
    상기 감지는 미스 로직(miss logic), 스누핑 로직(snooping logic), 플러시 로직(flush logic), 및 무효화 로직(invalidation logic)으로 구성되는 그룹에서 선택되는 캐시 로직에 의하여 수행되는 머신으로 구현되는 방법.
  6. 제1항에 있어서,
    상기 복수의 테스트 케이스로부터 제3 테스트 케이스를 선택하는 단계;
    상기 제1 테스트 케이스의 상기 제1 프로세서 상에서의 상기 실행 및 상기 제2 테스트 케이스의 상기 제2 프로세서 상에서의 상기 실행과 동시에 상기 제3 테스트 케이스를 제3 프로세서 상에서 실행하는 단계;
    제1 로테이션(rotation)을 호출하는(invoking) 단계 - 상기 제1 로테이션에 의해 상기 제1 테스트 케이스가 상기 제2 프로세서 상에 로딩되고, 상기 제2 테스트 케이스가 상기 제3 프로세서 상에 로딩되며, 상기 제3 테스트 케이스가 상기 제1 프로세서 상에 로딩됨 - ;
    상기 제1 로테이션 이후에, 상기 제1 테스트 케이스를 상기 제2 프로세서 상에서 실행하고, 상기 제2 테스트 케이스를 상기 제3 프로세서 상에서 실행하며, 상기 제3 테스트 케이스를 상기 제1 프로세서 상에서 실행하는 단계;
    제2 로테이션을 호출하는 단계 - 상기 제2 로테이션에 의해 상기 제1 테스트 케이스가 상기 제3 프로세서 상에 로딩되고, 상기 제2 테스트 케이스가 상기 제1 프로세서 상에 로딩되며, 상기 제3 테스트 케이스가 상기 제2 프로세서 상에 로딩됨 - ; 및
    상기 제2 로테이션 이후에, 상기 제1 테스트 케이스를 상기 제3 프로세서 상에서 실행하고, 상기 제2 테스트 케이스를 상기 제1 프로세서 상에서 실행하며, 상 기 제3 테스트 케이스를 상기 제2 프로세서 상에서 실행하는 단계
    를 더 포함하는 머신으로 구현되는 방법.
  7. 제6항에 있어서,
    상기 제1 프로세서, 상기 제2 프로세서, 및 상기 제3 프로세서는 동종인(homogeneous) 머신으로 구현되는 방법.
  8. 정보 핸들링 시스템으로서,
    하나 이상의 프로세서;
    상기 프로세서들 중의 적어도 하나에 의해 액세스될 수 있는 메모리;
    상기 프로세서들 중의 적어도 하나에 의해 액세스될 수 있는 비휘발성 저장 영역;
    상기 메모리에 저장된 명령어들의 세트를 포함하고,
    상기 명령어들의 세트는, 제1항 내지 제7항 중 어느 하나에 기재된 방법의 각 단계를 수행하도록 상기 프로세서들 중의 적어도 하나에 의해 실행되는, 정보 핸들링 시스템.
  9. 기능기술재료(functional descriptive material)를 포함하는 컴퓨터 프로그램을 기록하는 컴퓨터 판독가능 기록 매체로서,
    상기 기능기술재료는 정보 핸들링 시스템에 의해 실행되었을 때, 상기 정보 핸들링 시스템이, 제1항 내지 제7항 중 어느 하나에 기재된 방법의 각 단계를 수행하게 하는, 컴퓨터 판독가능 기록 매체.
KR1020090054601A 2008-07-14 2009-06-18 캐시/tlb 간섭 및 진단 테스트를 위한 경량, 고수율의 테스트 케이스 생성 방법 KR101054231B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/172,595 US7966521B2 (en) 2008-07-14 2008-07-14 Light weight and high throughput test case generation methodology for testing cache/TLB intervention and diagnostics
US12/172,595 2008-07-14

Publications (2)

Publication Number Publication Date
KR20100007719A KR20100007719A (ko) 2010-01-22
KR101054231B1 true KR101054231B1 (ko) 2011-08-08

Family

ID=41506190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090054601A KR101054231B1 (ko) 2008-07-14 2009-06-18 캐시/tlb 간섭 및 진단 테스트를 위한 경량, 고수율의 테스트 케이스 생성 방법

Country Status (4)

Country Link
US (1) US7966521B2 (ko)
JP (1) JP5473438B2 (ko)
KR (1) KR101054231B1 (ko)
TW (1) TW201015545A (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7398515B2 (en) * 2003-07-16 2008-07-08 International Business Machines Corporation Buckets of commands in a multiprocessor-based verification environment
US8621305B2 (en) * 2010-07-08 2013-12-31 Honeywell International Inc. Methods systems and apparatus for determining whether built-in-test fault codes are indicative of an actual fault condition or a false alarm
KR102026662B1 (ko) * 2013-04-22 2019-09-30 삼성전자 주식회사 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치
US9287005B2 (en) 2013-12-13 2016-03-15 International Business Machines Corporation Detecting missing write to cache/memory operations
US9892060B2 (en) 2015-12-02 2018-02-13 International Business Machines Corporation Identifying stale entries in address translation cache
US9612929B1 (en) * 2016-01-13 2017-04-04 International Business Machines Corporation Efficient validation/verification of coherency and snoop filtering mechanisms in computing systems

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040123185A1 (en) * 2002-12-20 2004-06-24 Microsoft Corporation Tools and methods for discovering race condition errors

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4357656A (en) * 1977-12-09 1982-11-02 Digital Equipment Corporation Method and apparatus for disabling and diagnosing cache memory storage locations
US4800486A (en) * 1983-09-29 1989-01-24 Tandem Computers Incorporated Multiple data patch CPU architecture
JPS6298437A (ja) * 1985-10-24 1987-05-07 Oki Electric Ind Co Ltd マイクロコンピユ−タ
GB2278213A (en) * 1993-05-18 1994-11-23 Ibm Test program generator.
US5488573A (en) * 1993-09-02 1996-01-30 Matsushita Electric Industrial Co., Ltd. Method for generating test programs
JPH08272683A (ja) * 1995-03-29 1996-10-18 Fujitsu Ltd キャッシュメモリの動作試験方法および動作試験システム
JPH0973435A (ja) * 1995-09-04 1997-03-18 Hitachi Ltd 密結合マルチプロセッサシステムの試験システム
JPH11184828A (ja) * 1997-12-22 1999-07-09 Hitachi Ltd マルチプロセッサシステムのテスト方式
US6182246B1 (en) * 1999-01-21 2001-01-30 Bsquare Corporation Protocol acknowledgment between homogeneous system
GB2353610A (en) * 1999-08-21 2001-02-28 Ibm Computerised testcase management system
US6871298B1 (en) * 1999-11-12 2005-03-22 Obsidian Software, Inc. Method and apparatus that simulates the execution of paralled instructions in processor functional verification testing
US7590973B1 (en) * 2000-06-30 2009-09-15 Microsoft Corporation Systems and methods for gathering, organizing and executing test cases
US6684359B2 (en) * 2000-11-03 2004-01-27 Verisity Ltd. System and method for test generation with dynamic constraints using static analysis
EP1274098B1 (en) * 2001-06-20 2005-12-21 Broadcom Corporation Cache memory self test circuit
US7240243B2 (en) * 2002-03-28 2007-07-03 International Business Machines Corporation System and method for facilitating programmable coverage domains for a testcase generator
US20040078699A1 (en) * 2002-09-18 2004-04-22 Thompson Ryan C. System for preventing translation lookaside buffer conflicts when generating and merging computer architecture test cases
US7010734B2 (en) * 2002-10-21 2006-03-07 Sun Microsystems, Inc. Method for microprocessor test insertion reduction
US7133816B2 (en) * 2002-11-04 2006-11-07 International Business Machines Corporation Test quality through resource reallocation
US7080126B2 (en) * 2003-02-28 2006-07-18 Bea Systems, Inc. Computer program product for performing resource pool maintenance by maintaining resources in several deques
US20060015689A1 (en) * 2004-07-15 2006-01-19 International Business Machines Corporation Implementation and management of moveable buffers in cache system
US7457989B2 (en) * 2004-09-29 2008-11-25 Microsoft Corporation System and method for selecting test case execution behaviors for reproducible test automation
US7356436B2 (en) * 2005-02-02 2008-04-08 International Business Machines Corporation Method, system, and storage medium for estimating and improving test case generation
US7386778B2 (en) * 2005-10-20 2008-06-10 Jon Udell Methods for distributing programs for generating test data
US7765450B2 (en) * 2005-10-20 2010-07-27 Jon Udell Methods for distribution of test generation programs
US7849362B2 (en) * 2005-12-09 2010-12-07 International Business Machines Corporation Method and system of coherent design verification of inter-cluster interactions
US7814378B2 (en) * 2007-05-18 2010-10-12 Oracle America, Inc. Verification of memory consistency and transactional memory
US7752499B2 (en) * 2007-09-11 2010-07-06 International Business Machines Corporation System and method for using resource pools and instruction pools for processor design verification and validation
US7797650B2 (en) * 2007-09-11 2010-09-14 International Business Machines Corporation System and method for testing SLB and TLB cells during processor design verification and validation
US7669083B2 (en) * 2007-09-11 2010-02-23 International Business Machines Corporation System and method for re-shuffling test case instruction orders for processor design verification and validation
US7836343B2 (en) * 2008-03-03 2010-11-16 International Business Machines Corporation Method and apparatus for reducing test case generation time in processor testing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040123185A1 (en) * 2002-12-20 2004-06-24 Microsoft Corporation Tools and methods for discovering race condition errors

Also Published As

Publication number Publication date
JP5473438B2 (ja) 2014-04-16
KR20100007719A (ko) 2010-01-22
JP2010020766A (ja) 2010-01-28
US7966521B2 (en) 2011-06-21
US20100011248A1 (en) 2010-01-14
TW201015545A (en) 2010-04-16

Similar Documents

Publication Publication Date Title
CN108292337B (zh) 虚拟化环境下安全堡垒区域的可信开启
US7661023B2 (en) System and method for verification of cache snoop logic and coherency between instruction &amp; data caches for processor design verification and validation
US7647539B2 (en) System and method of testing using test pattern re-execution in varying timing scenarios for processor design verification and validation
US7797650B2 (en) System and method for testing SLB and TLB cells during processor design verification and validation
US8099559B2 (en) System and method for generating fast instruction and data interrupts for processor design verification and validation
US7584394B2 (en) System and method for pseudo-random test pattern memory allocation for processor design verification and validation
US7689886B2 (en) System and method for predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification and validation
US8019566B2 (en) System and method for efficiently testing cache congruence classes during processor design verification and validation
US7747908B2 (en) System and method for creating different start cache and bus states using multiple test patterns for processor design verification and validation
KR101054231B1 (ko) 캐시/tlb 간섭 및 진단 테스트를 위한 경량, 고수율의 테스트 케이스 생성 방법
US10311236B2 (en) Secure system memory training
US8006221B2 (en) System and method for testing multiple processor modes for processor design verification and validation
WO2015048922A1 (en) Trusted boot and runtime operation
US20090070570A1 (en) System and Method for Efficiently Handling Interrupts
US7739570B2 (en) System and method for increasing error checking performance by calculating CRC calculations after multiple test patterns for processor design verification and validation
JP5756554B2 (ja) 半導体装置
JP7287947B2 (ja) ダイレクト・メモリ・アドレス変換の効率的なテストのための集積回路、およびコンピュータ実装方法
US7549040B2 (en) Method and system for caching peripheral component interconnect device expansion read only memory data
US20190004978A1 (en) Security role identifier pools allocation
CN111651379B (zh) Dax设备地址转换缓存方法及系统
Maas et al. A high-performance oblivious RAM controller on the convey HC-2ex heterogeneous computing platform
Pinto et al. A virtualization framework for IOMMU-less many-core accelerators
US20160245865A1 (en) Apparatus for detecting bugs in logic-based processing devices

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