KR101959960B1 - 간섭 시험 - Google Patents

간섭 시험 Download PDF

Info

Publication number
KR101959960B1
KR101959960B1 KR1020167023312A KR20167023312A KR101959960B1 KR 101959960 B1 KR101959960 B1 KR 101959960B1 KR 1020167023312 A KR1020167023312 A KR 1020167023312A KR 20167023312 A KR20167023312 A KR 20167023312A KR 101959960 B1 KR101959960 B1 KR 101959960B1
Authority
KR
South Korea
Prior art keywords
lane
attacker
seed
iteration
logic
Prior art date
Application number
KR1020167023312A
Other languages
English (en)
Other versions
KR20160114118A (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 KR20160114118A publication Critical patent/KR20160114118A/ko
Application granted granted Critical
Publication of KR101959960B1 publication Critical patent/KR101959960B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B3/00Line transmission systems
    • H04B3/02Details
    • H04B3/46Monitoring; Testing
    • H04B3/487Testing crosstalk effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318385Random or pseudo-random test pattern
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318544Scanning methods, algorithms and patterns
    • G01R31/31855Interconnection testing, e.g. crosstalk, shortcircuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

일례에서 컨트롤러는, 피해자 레인 및 제1 공격자 레인을 포함하는 통신 인터커넥트에 대해, 제1 시드를 이용하여 상기 피해자 레인 및 상기 공격자 레인에서 의사 난수 패턴들의 제1 세트를 생성하는 것에 의해 간섭 시험의 제1 반복을 구현하고, 상기 제1 공격자 레인에서 상기 시드를 전진시키는 것에 의해 간섭 시험의 제2 반복을 구현하도록 구성된, 하드웨어 로직을 적어도 부분적으로 포함하는, 로직을 포함한다. 다른 예들이 설명될 수 있다.

Description

간섭 시험{INTERFERENCE TESTING}
본 명세서에 설명된 주제는 일반적으로 전자 장치들의 분야에 관한 것이고 특히 전자 장치들에서의 간섭 시험에 관한 것이다.
전자 장치들은 PCIe(Peripheral Component Interconnect Express), USB(Universal Serial Bus), DDR(Double Data Rate), 또는 다른 유사한 것과 같은 인터커넥트들에 의해 통신 연결된 컴포넌트들을 포함한다. 이 통신 인터페이스들은 불완전한 인터커넥트들, 보드 라우팅, 비아, 또는 다른 유사한 것과 같은 설계 결함들 또는 제조 결함들에 의해 야기될 수 있는, 심볼간 간섭 및 크로스토크와 같은 노이즈의 영향을 받는다. 그러한 전자 장치들의 설계자들 및 제조자들은 전자 장치들의 심볼간 간섭의 영향을 결정할 필요가 있다. 따라서, 간섭 시험을 위한 기법들이, 예를 들어, 전자 장치들에서 유용성을 찾을 수 있다.
상세한 설명은 첨부 도면들을 참조해서 기술된다.
도 1은 일부 예들에 따른 간섭 시험을 받을 수 있는 통신 인터페이스들을 포함할 수 있는 전자 장치의 개략도이다.
도 2는 일부 예들에 따른 간섭 시험을 구현하는 예시적인 아키텍처의 하이-레벨 개략도이다.
도 3a는 일부 예들에 따른 간섭 시험을 구현하는 방법에서의 동작들을 예시하는 흐름도이다.
도 3b 및 도 3c는 일부 예들에 따른, 간섭 시험 프로세스에서의 반복들을 예시한다.
도 4a는 일부 예들에 따른 간섭 시험을 구현하는 방법에서의 동작들을 예시하는 흐름도이다.
도 4b 및 도 4c는 일부 예들에 따른, 간섭 시험 프로세스에서의 반복들을 예시한다.
도 5a 및 도 5b는 일부 예들에 따른 간섭 시험을 구현하는 방법에서의 동작들을 예시하는 흐름도들이다.
도 6 내지 도 10은 일부 예들에 따른 간섭 시험을 구현하도록 적응될 수 있는 전자 장치들의 개략도들이다.
본 명세서에서는 전자 장치들에서 간섭 시험을 구현하는 예시적인 시스템들 및 방법들이 설명된다. 이하의 설명에서는, 다양한 예들의 철저한 이해를 제공하기 위해 다수의 구체적인 세부사항들을 설명한다. 그러나, 본 기술 분야의 통상의 기술자라면 구체적인 세부사항들 없이도 다양한 실시예들을 실시할 수 있다는 것을 이해할 것이다. 다른 예시들에서, 특정일 실시예들이 불명확해지지 않도록 공지의 방법들, 절차들, 컴포넌트들 및 회로들은 도시되지 않거나 상세하게 설명되지 않았다.
상술한 바와 같이, 컴퓨터 시스템들, 태블릿 컴퓨팅 장치들, 휴대 전화들, 전자 리더들, 및 다른 유사한 것과 같은 전자 장치들에서의 통신 인터커넥트들에서 간섭 시험을 수행하는 것이 유익할 수 있다. 본 명세서에 설명된 주제는 전자 장치들에서 사용되는 통신 인터커넥트들에서 간섭에 대해 시험하기 위해 이용될 수 있는 간섭 시험 기법들을 제공함으로써 이들 및 다른 문제들을 다룬다. 일부 예들에서 본 명세서에 설명된 기법들은 전자 장치에 통합될 수 있는 로직(예를 들어, 소프트웨어, 펌웨어, 또는 로직 회로)으로서 구현될 수 있다. 예를 들어, 이 로직은 예를 들어 기본 입출력 시스템(BIOS)을 통해, 전자 장치의 구성 동안에 액세스될 수 있는 간섭 관리자 모듈로서 구현될 수 있다.
본 명세서에 설명된 제1 간섭 시험 기법은 통신 인터커넥트 상의 인접 레인들 사이의 신호 대 신호 크로스토크에 대해 시험하는 능력을 향상시키는 패턴들의 생성을 가능하게 한다. 제2 간섭 시험 기법은 통신 인터커넥트 상의 각각의 레인 상의 심볼간 간섭(ISI)에 대해 시험하는 능력을 향상시키는 패턴들의 생성을 가능하게 한다. 본 명세서에 설명된 제3 간섭 시험 기법은 시험 프로세스가 프로그램 가능한 수의 반복들을 구현하고 시험 프로세스에 갭들(gaps) 및 대기들(waits)을 통합하는 것을 가능하게 한다. 본 명세서에 설명된 기법들은 독립적으로 구현될 수 있거나 조합될 수 있다.
도 1은 일부 예들에 따른 간섭 시험을 구현하도록 적응될 수 있는 전자 장치(100)의 개략도이다. 다양한 실시예에서, 전자 장치(100)는 디스플레이, 하나 이상의 스피커, 키보드, 하나 이상의 다른 I/O 장치(들), 마우스, 또는 다른 유사한 것을 포함하는 하나 이상의 동반 입출력 장치들를 포함하거나 이에 연결될 수 있다. 다른 예시적인 I/O 장치(들)은 터치 스크린, 음성 작동 입력 장치, 트랙 볼, 지오로케이션 장치, 가속도계/자이로스코프, 생체 측정 특징 입력 장치들, 전자 장치(100)가 사용자로부터 입력을 수신할 수 있게 하는 임의의 다른 장치를 포함할 수 있다.
전자 장치(100)는 시스템 하드웨어(120) 및 메모리(140)를 포함하고, 메모리는 랜덤 액세스 메모리 및/또는 판독 전용 메모리로서 구현될 수 있다. 파일 저장소가 전자 장치(100)에 통신 연결될 수 있다. 파일 저장소는 예를 들어, SSD(solid state drive), 하나 이상의 하드 드라이브, 또는 다른 타입의 저장 장치들과 같이, 전자 장치(100)의 내부에 있을 수 있다. 대안적으로, 파일 저장소는 예를 들어, 하나 이상의 외부 하드 드라이브, 네트워크 접속 저장 장치, 또는 개별 저장 장치 네트워크와 같이, 전자 장치(100)의 외부에 있을 수도 있다.
시스템 하드웨어(120)는, 하나 이상의 프로세서(122), 그래픽 프로세서(124), 네트워크 인터페이스(126) 및 버스 구조(128)를 포함할 수 있다. 일 실시예에서, 프로세서(122)는, 미국 캘리포니아주 산타 클라라에 소재하는 인텔사에서 제공하는, Intel® Atom™ 프로세서, Intel® Atom™ 기반 SOC(System-on-a-Chip) 또는 Intel® Core2 Duo® 또는 i3/i5/i7 시리즈 프로세서로서 구현될 수 있다. 본 명세서에서 사용되는 용어 "프로세서"는 마이크로프로세서, 마이크로컨트롤러, CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 임의의 다른 타입의 프로세서 또는 처리 회로 등의 임의의 타입의 계산 소자를 의미하지만 이에 한정되는 것은 아니다.
그래픽 프로세서(들)(124)는 그래픽 및/또는 비디오 동작들을 관리하는 부속 프로세서로서 기능할 수 있다. 그래픽 프로세서(들)(124)는 전자 장치(100)의 마더보드 상에 통합될 수 있거나 마더보드 상에 확장 슬롯을 통해 연결될 수 있거나 처리 유닛과 동일한 다이 또는 동일한 패키지에 위치할 수 있다.
일 실시예에서, 네트워크 인터페이스(126)는 이더넷 인터페이스와 같은 유선 인터페이스(예를 들어, 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineers)/IEEE 802.3-2002 참조) 또는 IEEE 802.11a, b 또는 g-호환(g-compliant) 인터페이스와 같은 무선 인터페이스(예를 들어, IEEE Standard for IT-Telecommunications and information exchange between systems LAN/MAN--Part II: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications Amendment 4: Further Higher Data Rate Extension in 상기 2.4 GHz Band, 802.11G-2003 참조)일 수 있다. 무선 인터페이스의 또 다른 예는 GPRS(general packet radio service) 인터페이스(예를 들어, Guidelines on GPRS Handset Requirements, Global System for Mobile Communications/GSM Association, Ver. 3.0.1, December 2002 참조)일 것이다.
버스 구조(128)는 시스템 하드웨어(128)의 다양한 컴포넌트들을 연결한다. 일 실시예에서, 버스 구조(128)는, 메모리 버스, 주변 버스 또는 외부 버스, 및/또는 11-비트 버스, ISA(Industrial Standard Architecture), MSA(Micro-Channel Architecture), EISA(Extended ISA), IDE(Intelligent Drive Electronics), VLB(VESA Local Bus), PCI(Peripheral Component Interconnect), USB(Universal Serial Bus), AGP(Advanced Graphics Port), PCMCIA(Personal Computer Memory Card International Association bus), 및 SCSI(Small Computer Systems Interface), HSI(High Speed Synchronous Serial Interface), SLIMbus®(Serial Low-power Inter-chip Media Bus), 또는 다른 유사한 것을 포함하지만 이에 한정되지 않는, 임의의 다양한 이용 가능 버스 아키텍처를 사용하는 로컬 버스를 포함하는 몇몇 유형의 버스 구조(들) 중 하나 이상일 수 있다.
전자 장치(100)는 RF 신호를 송수신하는 RF 트랜시버(130), 근거리 통신(NFC) 라디오(134), 및 RF 트랜시버(130)에 의해 수신된 신호를 처리하는 신호 처리 모듈(132)을 포함할 수 있다. RF 트랜시버는 예를 들어, 블루투스 또는 802.11X. IEEE 802.11a, b 또는 g-호환 인터페이스와 같은 프로토콜을 통해 로컬 무선 연결을 구현할 수 있다(예를 들어, IEEE Standard for IT -Telecommunications 및 information exchange between systems LAN/MAN--Part II: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications Amendment 4: Further Higher Data Rate Extension in 상기 2.4 GHz Band, 802.11G-2003 참조). 무선 인터페이스의 또 다른 예는, WCDMA, LTE, GPRS(general packet radio service) 인터페이스일 것이다(예를 들어, Guidelines on GPRS Handset Requirements, Global System for Mobile Communications/GSM Association, Ver. 3.0.1, December 2002 참조).
전자 장치(100)는, 예를 들어, 키패드(136) 및 디스플레이(138) 등의 하나 이상의 입출력 인터페이스를 더 포함할 수 있다. 일부 예들에서 전자 장치(100)는 키패드를 갖지 않고 입력을 위해 터치 패널을 이용할 수 있다.
메모리(140)는 전자 장치(100)의 동작들을 관리하기 위한 운영 체제(142)를 저장할 수 있다. 일 실시예에서, 운영 체제(142)는 시스템 하드웨어(120)에의 인터페이스를 제공하는 하드웨어 인터페이스 모듈(154)을 포함한다. 또한, 운영 체제(140)는 전자 장치(100)의 동작에 사용되는 파일을 관리하는 파일 시스템(150) 및 전자 장치(100)에서 실행되는 프로세스를 관리하는 프로세스 제어 서브시스템(152)을 포함할 수 있다.
운영 체제(142)는 원격 소스로부터 데이터 패킷 및/또는 데이터 스트림을 송수신하기 위해 시스템 하드웨어(120)와 연계하여 동작할 수 있는 하나 이상의 통신인터페이스(146)를 포함(또는 관리)할 수 있다. 운영 체제(142)는 상기 운영 체제(142)와, 메모리(130) 내에 상주하는 하나 이상의 애플리케이션 모듈 사이에 인터페이스를 제공하는 시스템 호출 인터페이스 모듈(144)을 더 포함할 수 있다. 운영 체제(142)는 UNIX 운영 체제 또는 그것의 임의의 파생물(예를 들어, Linux, Android, 등)로서 또는 Windows® 브랜드 운영 체제, 또는 다른 운영 체제들로서 구현될 수 있다.
일부 예들에서 전자 장치는 컨트롤러(170)를 포함할 수 있고, 이것은 주 실행 환경과 분리된 하나 이상의 컨트롤러를 포함할 수 있다. 이 분리는 컨트롤러가 주 프로세서들과 물리적으로 분리된 컨트롤러들에서 구현될 수 있다는 점에서 물리적일 수 있다. 대안적으로, 신뢰되는 실행 환경은 컨트롤러가 주 프로세서들을 호스팅하는 동일한 칩 또는 칩셋에서 호스팅될 수 있다는 점에서 논리적일 수 있다.
예로서, 일부 예들에서 컨트롤러(170)는 전자 장치(100)의 마더보드 상에 위치하는 독립적인 집적 회로로서, 예를 들어, 동일한 SOC 다이 상의 전용 프로세서 블록으로서 구현될 수 있다. 다른 예들에서 신뢰되는 실행 엔진은 운영 체제의 사용자 공간 또는 커널에서 프로세서에서 실행될 수 있는 로직 명령어들로서 또는 하드웨어 강제 메커니즘들을 이용하여 프로세서(들)의 나머지와 분리된 프로세서(들)(122)의 일부에서 구현될 수 있다.
도 1에 도시된 실시예에서 컨트롤러(170)는 프로세서(172), 메모리 모듈(174), 간섭 관리자(176), 및 I/O 인터페이스(178)를 포함한다. 일부 예들에서, 메모리 모듈(174)은 영구 플래시 메모리 모듈을 포함할 수 있고, 다양한 기능 모듈은 영구 메모리 모듈 내에 인코딩된 로직 명령어, 예를 들면 펌웨어 또는 소프트웨어로서 구현될 수 있다. I/O 모듈(178)은 직렬 I/O 모듈 또는 병렬 I/O 모듈을 포함할 수 있다. 컨트롤러(170)는 주 프로세서(들)(122) 및 운영 체제(142)와 분리되기 때문에, 컨트롤러(170)는 안전하게 될 수 있다(즉, 보통 호스트 프로세서(122)로부터의 소프트웨어 공격들을 마운팅하는 해커들이 액세스할 수 없다). 일부 예들에서 간섭 관리자(176)는 전자 장치(100)의 메모리(140)에 상주할 수 있고 프로세서들(122) 중 하나 이상의 프로세서에서 실행 가능할 수 있다.
일부 예들에서 간섭 관리자(176)는 전자 장치들에서의 하나 이상의 통신 인터커넥트들에 대한 간섭 시험을 구현하기 위해 전자 장치(100)의 하나 이상의 다른 컴포넌트들과 상호 작용한다. 도 2는 일부 예들에 따른 간섭 시험을 구현하는 예시적인 아키텍처의 하이-레벨 개략도이다. 도 2를 참조하면, 컨트롤러(220)는 범용 프로세서(122)로서 또는 컨트롤러들(170)과 같은 저전력 컨트롤러로서 구현될 수 있다. 컨트롤러(220)는 간섭 시험 동작들을 관리하는 간섭 관리자(230) 및 로컬 메모리(240)를 포함할 수 있다. 상술한 바와 같이, 일부 예들에서 간섭 관리자(230)는 컨트롤러(220)에서 실행 가능한 로직 명령어들로서, 예를 들어, 소프트웨어 또는 펌웨어로서 구현될 수 있거나, 하드와이어드 로직 회로들로 환원될 수 있다. 로컬 메모리(240)는 휘발성 및/또는 비휘발성 메모리로서 구현될 수 있다.
컨트롤러(220)는 하나 이상의 입출력 장치(들)(250)에 통신 연결될 수 있다. 예를 들어, 컨트롤러(220)는 상술한 I/O 장치들 중 하나 이상에 통신 연결될 수 있다.
간섭 관리자(230)는 전자 장치(100)의 컴포넌트들 사이의 통신을 가능하게 하는 하나 이상의 인터커넥트들(210)에 통신 연결될 수 있다. 예를 들어, 인터커넥트(210)는 PCIe(Peripheral Component Interconnect Express), USB(Universal Serial Bus), DDR(Double Data Rate) 인터커넥트 중 하나 이상일 수 있고 다수의 통신 레인(214, 214, 216)을 포함할 수 있다.
전자 장치들에서 간섭 시험을 구현하는 시스템의 다양한 구조들을 설명하였으므로, 이제 시스템의 동작 양태들을 설명한다. 간섭 시험 기법들의 제1 예는 인접 신호 레인들에 적용되는 시험 순열들(test permutations)의 수를 증가시키기 위해 미리 결정된 방식으로 의사 난수 생성기들에 대한 시드들이 변경되는 반복적인 시험 절차를 구현한다. 간섭 시험의 이 제1 예를 도 3a 내지 도 3c를 참조하여 설명한다. 도 3a는 전자 장치에서 간섭 시험을 구현하는 제1 방법에서의 동작들을 예시하는 흐름도이다. 도 3a의 흐름도에 도시된 동작들은 간섭 관리자(230)에 의해, 단독으로 또는 전자 장치(100)의 다른 컴포넌트들과 결합하여 구현될 수 있다. 도 3b 및 도 3c는 일부 예들에 따른, 간섭 시험 프로세스에서의 반복들을 예시한다.
먼저 도 3a를 참조하면, 동작 310에서 간섭 관리자(230)는 하나 이상의 간섭 시험 파라미터들을 수신한다. 예를 들어, 간섭 시험 파라미터들은 전자 장치(100)에 대한 간섭 시험의 관리를 담당하는 사용자에 의해 간섭 관리자(230)에 입력될 수 있다. 대안적으로, 또는 추가적으로, 간섭 시험 파라미터들은 전자 장치(100) 상의 메모리 로케이션으로부터 검색될 수 있다.
동작 312에서 간섭 관리자(230)는 시드들의 초기 세트를 이용해 간섭 시험의 제1 반복을 실행한다. 일부 예들에서 간섭 시험 프로세스는 통신 인터커넥트에서 하나 이상의 공격자 레인들과 피해자 레인 사이의 간섭에 대해 시험할 수 있다. 도 3b를 잠시 참조하면, 일례에서 간섭 시험 프로세스는 제1 공격자 레인(360), 피해자 레인(350), 및 제2 공격자 레인(370) 사이의 간섭에 대해 시험한다. 통신 인터커넥트 상의 각 레인은 통신 인터커넥트의 레인에서 송신되는 의사 난수 패턴을 생성하는 패턴 생성기(352, 362, 372)에 통신 연결된다. 그 후 피해자 레인(350)의 송신 특성들을 측정하여 인터커넥트에 대한 신호 대 신호 크로스토크 측정치들을 결정할 수 있다. 예로서, 패턴 생성기들(352, 362, 372)은 LFSR(linear feedback shift register)들로서 구현될 수 있다.
일부 예들에서 제1 반복은 각각의 패턴 생성기들(352, 362, 372)에 각각의 제1 시드들이 제공되는 것으로 구현된다. 도 3c는 간섭 시험의 구체적인 예를 예시한다. 도 3c에 도시된 예에서 패턴 생성기 1에는 1111의 시드가 제공되고, 한편 패턴 생성기 2에는 0010의 시드가 제공되고 패턴 생성기 3에는 0101의 시드가 제공된다.
간섭 시험의 제1 반복에서 간섭 관리자(230)는 2N-1과 같은 수의 사이클을 실행하고, 여기서 N은 시드 길이에 대응한다. 도 3에 예시된 구체적인 예에서 시드 길이는 시드 길이는 4이고, 따라서 15개의 시험 사이클들(354, 364, 374)을 실행하여, 피해자 레인(360) 상의 간섭에 대해 패턴 생성기들로부터의 각 패턴을 시험한다.
제1 반복이 완료될 때, 제어는 동작 314로 넘어가고 간섭 관리자(230)는 레인들 중 하나 이상에서 시드들을 전진시킨다. 예로서, 도 3b를 참조하면 제1 2N-1 사이클들의 초기 랩(wrap)(즉, 완료)에서, 시드 1이 전진되고 2N-1 사이클들의 또 다른 사이클(356, 366, 376)이 2N-1 회 실행되고(동작 316), 매번 시드 1을 전진시킨다.
동작 318에서, 인터커넥트 상에 더 이상의 공격자 라인이 없다면 제어는 동작 326으로 넘어가고 간섭 시험은 종료될 수 있다. 대조적으로, 동작 318에서 인터커넥트 상에 추가적인 공격자 라인이 있다면 제어는 동작 320으로 넘어가고 간섭 관리자(230)는 다시 레인들 중 하나 이상에서 시드들을 전진시킨다. 예로서, 도 3b를 참조하면 제2 2N-1 사이클들의 랩(즉, 완료)에서 시드 2가 전진되고 상술한 바와 같은 2N-1 사이클들 × 2N-1의 또 다른 사이클(358, 368, 378)이 2N-1 회 실행되고(동작 322), 결국 1 피해자 및 2 공격자 패턴 생성기를 갖는 시스템의 전체 실행을 위해 총 (2N-l)x(2N-l)x(2N-l) 사이클들이 실행된다.
동작 324에서, 인터커넥트 상에 더 이상의 공격자 라인이 없다면 제어는 동작 326으로 넘어가고 간섭 시험은 종료될 수 있다. 대조적으로, 동작 324에서 인터커넥트 상에 추가적인 공격자 라인이 있다면 제어는 다시 동작 320으로 넘어가고 간섭 관리자(230)는 다시 레인들 중 하나 이상에서 시드들을 전진시킨다. 이와 같이, 동작들 320-324는 간섭 관리자(230)가 인터커넥트 상의 패턴들의 상이한 조합들을 시험하기 위하여 공격자 레인들의 시드들을 계속해서 전진시킬 수 있는 루프를 정의하고, 매번 모든 이전의 스텝들을 2N-1 회 반복한다.
간섭 시험 기법들의 제2 예는 심볼간 간섭에 대해 시험하기 위해 통신 인터커넥트에서 송신되는 의사 난수 코드들의 부분들을 반복하기 위하여 미리 결정된 레이트로 의사 난수 생성기들에 대한 시드들이 리로드(reload)되는 반복적인 시험 절차를 구현한다. 간섭 시험의 이 제2 예를 도 4a 내지 도 4c를 참조하여 설명한다. 도 4a는 전자 장치에서 간섭 시험을 구현하는 제2 방법에서의 동작들을 예시하는 흐름도이다. 도 4a의 흐름도에 도시된 동작들은 간섭 관리자(230)에 의해, 단독으로 또는 전자 장치(100)의 다른 컴포넌트들과 결합하여 구현될 수 있다. 도 4b 및 도 4c는 일부 예들에 따른, 간섭 시험 프로세스에서의 반복들을 예시한다.
먼저 도 4a를 참조하면, 동작 410에서 간섭 관리자(230)는 리로드 레이트(reload rate) 파라미터 및 저장 레이트(save rate) 파라미터를 수신한다. 예를 들어, 리로드 레이트 파라미터 및 저장 레이트 파라미터는 전자 장치(100)에 대한 간섭 시험의 관리를 담당하는 사용자에 의해 간섭 관리자(230)에 입력될 수 있다. 대안적으로, 또는 추가적으로, 간섭 시험 파라미터들은 전자 장치(100) 상의 메모리 로케이션으로부터 검색될 수 있다.
동작 412에서 간섭 관리자(230)는 의사 난수 시퀀스를 생성한다. 예로서, 도 4b를 참조하면, 간섭 관리자(230)는 의사 난수 패턴를 생성하는 패턴 생성기(452)에 시드를 제공할 수 있다. 상술한 바와 같이, 패턴 생성기(452)는 LFSR(linear feedback shift registers)로서 구현될 수 있다. 시드에 응답하여 패턴 생성기(452)는 n-비트 의사 난수를 생성한다(예를 들어, 15-비트 LFSR에 대해 111000100110101).
동작 414에서 시드는 리로드 레이트에 따라서 패턴 생성기(452)에 리로드되고, 동작 416에서 의사 난수 시퀀스의 일부가 인터커넥트에서 송신된다. 동작 418에서 시드는 저장 레이트에 따라서 저장된다.
도 4b는 리로드 레이트는 의사 난수 코드의 3 비트마다 4회 반복하도록 구성되고, 저장 레이트는 10 (3x(4-l)+l)인 예를 예시한다. 도 4a에 도시된 동작들에 따라, 시드가 패턴 생성기(452)에 입력되고 3 비트마다 리로드되고, 4회 반복된다. 이에 따라 패턴 생성기(452)는 패턴 생성기(452)에 의해 생성된 의사 난수 패턴의 제1 3 비트를 4회 반복하는 패턴을 출력하게 된다. 반복하는 패턴은 각 반복에서 10mod3=1 비트 전진하고, 결과적으로 반복하는 패턴 콘텐츠들 사이에 (3-1=2) 비트가 오버랩하게 된다. 이러한 패턴은, 예를 들어 인터커넥트에 대한 레조너티브(resonative) 효과를 평가하기 위해 이용될 수 있고, 리로드 레이트는 전위 레조너티브 구조의 유효 전기 길이와 상관한다.
도 4c는 리로드 레이트가 의사 난수 코드의 3 비트마다 4회 반복하도록 구성되고, 저장 레이트는 11 (3x(4-l)+2)인 예를 예시한다. 도 4a에 도시된 동작들에 따라, 시드가 패턴 생성기(452)에 입력되고 3 비트마다 리로드되고, 4회 반복된다. 이에 따라 패턴 생성기(452)는 패턴 생성기(452)에 의해 생성된 의사 난수 패턴의 제1 3 비트를 4회 반복하는 패턴을 출력하게 된다. 반복하는 패턴은 각 반복에서 10mod3=2 비트 전진하고, 결과적으로 반복하는 패턴 콘텐츠들 사이에 (3-2=1) 비트가 오버랩하게 된다.
간섭 시험 기법들의 제3 예는 JEDEC(Joint Electron Device Engineering Council) DDR(Double Data Rate) 계열의 버스들(예를 들어, DDR3, DDR4) 또는 저전력 DDR 버스들(예를 들어, LPDDR2, LPDDR3, LPDDR4 등)에 대해 명령, 제어, 및 주소 레인들 상의 패턴들을 그들 사이에 프로그램 가능한 길이, 갭들, 루프들 및 대기 시간을 가지고 토글하는 수단을 제공하는 로직을 구현한다. 이 제3 예에서 로직은 유휴 및 전환(idle and transition)에서, 각각의 명령, 제어 및 주소 라인들에 대한 값을 식별하는 버퍼인 명령 주소 데이터 버퍼(command address data buffer)(CADB)로부터 판독하기 시작한다. 로직은 시작 버퍼 포인터에서 시작하여 루프를 정의하는 종료 버퍼 포인터까지 CADB로부터 계속해서 판독한다. 실행할 루프가 몇 개인지, 그리고 몇 개가 실행되었는지를 지시하기 위해 카운터가 이용될 수 있다. 버퍼 카운터가 끝 값에 도달하면, 로직은 루프 카운터 값을 감소시키고 시작 버퍼 카운터로 랩한다. 루프 카운터가 0에 도달하면 로직은 시험이 종료된 것을 지시할 수 있다. 로직은 무한 루프를 설정할 수도 있고, 이 경우 카운터는 감소되지 않는다.
일단 판독되면, 명령, 제어(2n 또는 3n 명령 모드들에서 칩 선택(CS) 라인들은 제외) 및 주소 라인들은 설정되고 DDR 입출력(I/O)으로의 기능 경로를 오버라이드(override)할 것이다. CS 라인들을 어써트(assert)한 후에, 갭 카운터가 시작되고 CADB로부터 실행되는 상이한 명령들 사이의 시간을 설정하기 위하여 0에 도달할 때까지 카운트 다운한다.
간섭 시험의 제3 예의 추가 상세에 대해, 전자 장치에서 간섭 시험을 구현하는 방법에서의 동작들을 예시하는 흐름도들인, 도 5a 및 도 5b를 참조하여 설명한다. 도 5a 및 도 5b의 흐름도에 도시된 동작들은 간섭 관리자(230)에 의해, 단독으로 또는 전자 장치(100)의 다른 컴포넌트들과 결합하여 구현될 수 있다.
먼저 도 5a를 참조하면, 동작 510에서 명령 포인터가 시작 인덱스로 설정되고 로직은 명령 주소 및 제어 버퍼(command address and control buffer)(CADB)(512)로부터 판독한다. 동작 514에서, 명령 및 주소가 설정된다.
동작 516에서, 인터커넥트가 1n 타이밍 모드에서 동작중인지, 2n 타이밍 모드에서 동작중인지, 또는 3n 타이밍 모드에서 동작중인지가 결정된다. 인터커넥트가 1n 타이밍 모드에서 동작중이면, 제어는 동작 518로 넘어가고 칩 선택(CS) 라인이 설정된다. 대조적으로, 동작 516에서 인터커넥트가 2n 타이밍 모드에서 동작중이면 제어는 동작 520으로 넘어가고 로직은 CS 라인이 설정되기 전에 하나의 클록 사이클이 경과하게 한다. 동작 516에서 인터커넥트가 3n 타이밍 모드에서 동작중이면 제어는 동작 522로 넘어가고 로직은 CS 라인이 설정되기 전에 2개의 클록 사이클이 경과하게 한다.
일단 칩 선택 라인이 설정되면, 제어는 동작 530으로 넘어가고, 이 동작은 루프가 완료되었는지를 결정하기 위해 모니터한다. 동작 530에서, 루프가 완료되지 않았다면 제어는 동작 532로 넘어가고 명령 포인터는 CADB 내의 다음 명령으로 설정된다. 그 후 제어는 동작 534로 넘어가고, 여기서 갭이 0보다 큰지가 결정된다. 동작 534에서 갭이 0보다 크다면 제어는 동작 536으로 넘어가고 CADB로부터 다음 명령을 판독하기 전에 미리 결정된 기간이 경과하게 된다.
다시 동작 530을 참조하면, 루프가 완료되면 제어는 동작 540으로 넘어가고, 여기서 초기화 절차가 완료되었는지가 결정된다. 그 절차가 완료되었다면 제어는 동작 542로 넘어가고 시험 프로세스는 종료된다. 대조적으로, 동작 540에서 초기화 절차가 완료되지 않았다면 제어는 동작 544로 넘어가고, 명령 포인터는 명령 인덱스의 시작 위치로 설정된다. 그 후 제어는 동작 546으로 넘어가고, 여기서 대기가 0보다 큰지가 결정된다. 동작 546에서 갭이 0보다 크다면 제어는 동작 548로 넘어가고 CADB로부터 다음 명령을 판독하기 전에 미리 결정된 기간이 경과하게 된다.
이와 같이, 도 5a 및 도 5b에 도시된 동작들은 로직이 시험 프로세스에서 프로그램 가능한 수의 반복들뿐만 아니라, 갭들 및 대기들을 통합하는 간섭 시험 스케줄들을 구현하게 한다. 도 5a 및 도 5b에 도시된 동작들은 도 3a 및 도 4a에 도시된 동작들과 결합하여 구현될 수 있거나, 또는 개별적으로 구현될 수 있다.
상술한 바와 같이, 일부 예들에서, 전자 장치는 컴퓨터 시스템으로서 구현될 수 있다. 도 6은 예에 따른 컴퓨팅 시스템(600)의 블록도를 예시한다. 컴퓨팅 시스템(600)은 상호접속 네트워크(또는 버스)(604)를 통해 통신하는 하나 이상의 중앙 처리 장치(들)(CPU)(602) 또는 프로세서들을 포함할 수 있다. 프로세서(602)는 범용 프로세서, 네트워크 프로세서(컴퓨터 네트워크(603)를 통해 전달되는 데이터를 처리함], 또는 다른 타입의 프로세서(RISC(reduced instruction set computer) 프로세서 또는 CISC(complex instruction set computer)를 포함함)를 포함할 수 있다. 게다가, 프로세서(602)는 단일 또는 다중 코어 설계를 가질 수 있다. 다중 코어 설계를 가지는 프로세서(602)는 동일한 집적 회로(IC) 다이 상에 상이한 타입의 프로세서 코어들을 통합할 수 있다. 또한, 다중 코어 설계를 가지는 프로세서(602)는 대칭 또는 비대칭 멀티프로세서로서 구현될 수 있다. 예에서, 하나 또는 그 이상의 프로세서들(602)은 도 1의 프로세서들(102)과 동일하거나 유사할 수 있다. 예를 들어, 프로세서들(602) 중 하나 이상은 도 1 내지 도 3을 참조하여 논의된 제어 유닛(120)을 포함할 수 있다. 또한, 도 3 내지 도 5를 참조하여 논의되는 동작들은 시스템(600)의 하나 이상의 컴포넌트들에 의해 수행될 수 있다.
칩셋(606)은 또한 상호접속 네트워크(604)와 통신할 수 있다. 칩셋(606)은 메모리 컨트롤러 허브(MCH)(608)를 포함할 수 있다. MCH(608)는 메모리(612)(도 1의 메모리(130)와 동일하거나 유사할 수 있음)와 통신하는 메모리 컨트롤러(610)를 포함할 수 있다. 메모리(612)는 프로세서(602), 또는 컴퓨팅 시스템(600)에 포함되는 임의의 다른 장치에 의해 실행될 수 있는 명령어들의 시퀀스들을 포함하는 데이터를 저장할 수 있다. 일례에서, 메모리(612)는 RAM(random access memory), 동적 RAM(DRAM), 동기식 DRAM(SDRAM), 정적 RAM(SRAM)과 같은 하나 이상의 휘발성 저장(또는 메모리) 장치들, 또는 다른 타입의 저장 장치들을 포함할 수 있다. 하드 디스크와 같은 비휘발성 메모리도 이용될 수 있다. 다수의 프로세서(들) 및/또는 다수의 시스템 메모리들과 같은 추가적인 장치들이 상호접속 네트워크(604)를 통해 통신할 수 있다.
MCH(608)는 또한 디스플레이 장치(616)와 통신하는 그래픽 인터페이스(614)를 포함할 수 있다. 일례에서, 그래픽 인터페이스(614)는 AGP(accelerated graphics port)를 통해 디스플레이 장치(616)와 통신할 수 있다. 예에서, (평판 디스플레이와 같은) 디스플레이(616)는, 예를 들어 비디오 메모리 또는 시스템 메모리와 같은 저장 장치에 저장되는 이미지의 디지털 표현을 디스플레이(616)에 의해 해석되고 표시되는 디지털 신호들로 번역하는 신호 변환기를 통해 그래픽 인터페이스(614)와 통신할 수 있다. 디스플레이 장치에 의해 생성된 디스플레이 신호는, 디스플레이(616)에 의해 해석된 다음에 해당 디스플레이 상에 디스플레이되기 전에, 다양한 제어 장치를 통해 전달될 수 있다.
허브 인터페이스(618)는 MCH(608) 및 ICH(input/output control hub)(620)가 통신할 수 있도록 할 수 있다. ICH(620)는 컴퓨팅 시스템(600)과 통신하는 I/O 장치(들)에 대한 인터페이스를 제공할 수 있다. ICH(620)는 PCI(peripheral component interconnect) 브리지, USB(universal serial bus) 컨트롤러, 또는 다른 타입의 주변 장치 브리지 또는 컨트롤러와 같은 주변 장치 브리지(또는 컨트롤러)(624)를 통해 버스(622)와 통신할 수 있다. 브리지(624)는 프로세서(602)와 주변 장치 간의 데이터 경로를 제공할 수 있다. 다른 타입의 토폴로지들이 이용될 수 있다. 또한, 다수의 버스가, 예를 들어, 다수의 브리지 또는 컨트롤러를 통해 ICH(620)와 통신할 수 있다. 또한, ICH(620)와 통신하는 다른 주변 장치들은, 다양한 실시예들에서, IDE(integrated drive electronics) 또는 SCSI(small computer system interface) 하드 드라이브(들), USB 포트(들), 키보드, 마우스, 병렬 포트(들), 직렬 포트(들), 플로피 디스크 드라이브(들), 디지털 출력 지원(예를 들어, DVI(digital video interface)) 또는 다른 장치들을 포함할 수 있다.
버스(622)는 오디오 장치(626), 하나 이상의 디스크 드라이브(들)(628) 및 (컴퓨터 네트워크(603)와 통신하는) 네트워크 인터페이스 장치(630)와 통신할 수 있다. 다른 장치들이 버스(622)를 통해 통신할 수 있다. 또한, (네트워크 인터페이스 장치(630)와 같은) 다양한 컴포넌트들은 일부 예들에서 MCH(608)와 통신할 수 있다. 또한, 프로세서(602), 및 본 명세서에서 논의되는 하나 이상의 다른 컴포넌트들은 단일 칩을 형성하기 위해(예를 들어, SOC(System on Chip)를 제공하기 위해) 조합될 수 있다. 더욱이, 그래픽 가속기(616)는 다른 예들에서 MCH(608) 내에 포함될 수 있다.
게다가, 컴퓨팅 시스템(600)은 휘발성 및/또는 비휘발성 메모리(또는 저장 장치)를 포함할 수 있다. 예를 들어, 비휘발성 메모리는 다음에 언급한 것들 중 하나 이상을 포함할 수 있다: ROM(read-only memory), PROM(programmable ROM), EPROM(erasable PROM), EEPROM(electrically EPROM), 디스크 드라이브(예를 들어, 628), 플로피 디스크, CD-ROM(compact disk ROM), DVD(digital versatile disk), 플래시 메모리, 광자기 디스크, 또는 전자 데이터(예를 들어, 명령어를 포함함)를 저장할 수 있는 다른 타입의 비휘발성 머신 판독가능 매체.
도 7은 예에 따른 컴퓨팅 시스템(700)의 블록도를 예시한다. 시스템(700)은 하나 이상의 프로세서들(702-1 내지 702-N)(일반적으로 "프로세서들(702)" 또는 "프로세서(702)"로서 본 명세서에서 언급됨)을 포함할 수 있다. 프로세서들(702)은 상호접속 네트워크 또는 버스(704)를 통해 통신할 수 있다. 각각의 프로세서는 다양한 컴포넌트들을 포함할 수 있는데, 그 중 일부가 명확성을 위해 프로세서(702-1)만을 참조하여 논의된다. 따라서, 나머지 프로세서들(702-2 내지 702-N)의 각각은 프로세서(702-1)를 참조하여 논의되는 것과 동일한 또는 유사한 컴포넌트들을 포함할 수 있다.
예에서, 프로세서(702-1)는 하나 이상의 프로세서 코어들(706-1 내지 706-M)("코어들(706)"로서 또는 보다 일반적으로 "코어(706)"로서 본 명세서에서 언급됨), 공유 캐시(708), 라우터(710), 및/또는 프로세서 제어 로직 또는 유닛(720)을 포함할 수 있다. 프로세서 코어들(706)은 단일 집적 회로(IC) 칩 상에 구현될 수 있다. 게다가, 칩은 하나 이상의 공유 및/또는 전용 캐시들(예를 들어, 캐시(708)), 버스들 또는 상호접속들(예를 들어, 버스 또는 상호접속 네트워크(712)), 메모리 컨트롤러들, 또는 기타 컴포넌트들을 포함할 수 있다.
일례에서, 라우터(710)는 프로세서(702-1) 및/또는 시스템(700)의 다양한 컴포넌트들 사이에 통신하기 위해 이용될 수 있다. 더욱이, 프로세서(702-1)는 둘 이상의 라우터(710)를 포함할 수 있다. 게다가, 복수의 라우터(710)는 프로세서(702-1)의 내부 또는 외부의 다양한 컴포넌트들 사이에 데이터 라우팅을 가능하게 하기 위해 통신 상태에 있을 수 있다.
공유 캐시(708)는 코어들(706)과 같은 프로세서(702-1)의 하나 이상의 컴포넌트에 의해 이용되는 데이터(예를 들어, 명령어들을 포함함)를 저장할 수 있다. 예를 들어, 공유 캐시(708)는 프로세서(702)의 컴포넌트들에 의한 더욱 빠른 액세스를 위해 메모리(714)에 저장되는 데이터를 국부적으로 캐시할 수 있다. 예에서, 캐시(708)는 중간 레벨 캐시(예를 들어 레벨 2(L2), 레벨 3(L3), 레벨 4(L4), 또는 다른 레벨들의 캐시), LLC(last level cache), 및/또는 이들의 조합들을 포함할 수 있다. 더욱이, 프로세서(702-1)의 다양한 컴포넌트들은 버스(예를 들어, 버스(712)), 및/또는 메모리 컨트롤러 또는 허브를 통해 공유 캐시(708)와 직접적으로 통신할 수 있다. 도 7에 도시된 바와 같이, 일부 예들에서, 코어들(706) 중 하나 이상은 레벨 1(L1) 캐시(716-1)(일반적으로 "L1 캐시(716)"로서 본 명세서에서 언급됨)를 포함할 수 있다. 일례에서, 제어 유닛(720)은 도 2의 메모리 컨트롤러(122)를 참조하여 위에 설명한 동작들을 구현하는 로직을 포함할 수 있다.
도 8은 예에 따른, 프로세서 코어(706)의 부분들과 컴퓨팅 시스템의 다른 컴포넌트들의 블록도를 예시한다. 일례에서, 도 8에 도시된 화살표들은 코어(706)를 통한 명령어들의 흐름 방향을 예시한다. 하나 이상의 프로세서 코어들(예를 들어 프로세서 코어(706))이 도 7을 참조하여 논의된 것과 같은 단일 집적 회로 칩(또는 다이) 상에 구현될 수 있다. 더욱이, 칩은 하나 이상의 공유 및/또는 전용 캐시(예를 들어, 도 7의 캐시(708)), 상호접속들(예를 들어, 도 7의 상호접속들(704 및/또는 112)), 제어 유닛들, 메모리 컨트롤러들, 또는 다른 컴포넌트들을 포함할 수 있다.
도 8에 예시된 바와 같이, 프로세서 코어(706)는 코어(706)에 의한 실행을 위한 명령어들(조건부 분기들을 갖는 명령어들을 포함함)을 페치하기 위한 페치 유닛(802)을 포함할 수 있다. 명령어들은 메모리(714)와 같은 임의의 저장 장치들로부터 페치될 수 있다. 코어(706)는 또한 페치된 명령어를 디코딩하기 위한 디코드 유닛(804)을 포함할 수 있다. 예를 들어, 디코드 유닛(804)은 페치된 명령어를 복수의 uop(micro-operations)가 되도록 디코딩할 수 있다.
또한, 코어(706)는 스케줄 유닛(806)을 포함할 수 있다. 스케줄 유닛(806)은, 명령어들이 디스패치(dispatch)를 위해 준비될 때까지, 예를 들어 디코딩된 명령어의 모든 소스 값들이 이용 가능하게 될 때까지, 디코딩된 명령어들(예를 들어, 디코드 유닛(804)으로부터 수신된)을 저장하는 것과 관련되는 다양한 동작들을 수행할 수 있다. 일례에서, 스케줄 유닛(806)은 실행을 위해 실행 유닛(808)에게 디코딩된 명령어들을 스케줄링 및/또는 발행(또는 디스패치)할 수 있다. 실행 유닛(808)은 디스패치된 명령어들이 (예를 들어, 디코드 유닛(804)에 의해) 디코딩되고 (예를 들어, 스케줄 유닛(806)에 의해) 디스패치된 후에 디스패치된 명령어들을 실행할 수 있다. 예에서, 실행 유닛(808)은 둘 이상의 실행 유닛을 포함할 수 있다. 실행 유닛(808)은 또한 덧셈, 뺄셈, 곱셈, 및/또는 나눗셈과 같은 다양한 산술 연산들을 수행할 수 있고, 하나 이상의 산술 로직 유닛(arithmetic 로직 unit)(ALU)을 포함할 수 있다. 예에서, 보조 프로세서(도시되지 않음)는 실행 유닛(808)과 연계하여 다양한 산술 연산들을 수행할 수 있다.
또한, 실행 유닛(808)은 명령어들을 비순차적을 실행할 수 있다. 따라서, 프로세서 코어(706)는 일례에서 비순차적 프로세서 코어일 수 있다. 코어(706)는 또한 리타이어먼트 유닛(retirement unit)(810)을 포함할 수 있다. 리타이어먼트 유닛(810)은 실행되는 명령어들이 커밋(commit)된 후에 이들을 리타이어할 수 있다. 예에서, 실행된 명령어들의 리타이어먼트는 프로세서 상태가 명령어들의 실행으로부터 커밋되는 것과, 명령어들에 의해 이용되는 물리적 레지스터들이 할당 해제(de-allocate)되는 것과, 기타 등등을 초래할 수 있다.
코어(706)는 또한 하나 이상의 버스들(예를 들어, 버스들(804 및/또는 812))을 통해 프로세서 코어(706)의 컴포넌트들과 다른 컴포넌트들(예를 들어, 도 8을 참조하여 논의된 컴포넌트들) 간의 통신을 가능하게 하는 버스 유닛(714)을 포함할 수 있다. 코어(706)는 또한 코어(706)의 다양한 컴포넌트들에 의해 액세스되는 데이터(예를 들어, 전력 소비 상태 설정들과 관계되는 값들)를 저장하기 위한 하나 이상의 레지스터(816)를 포함할 수 있다.
게다가, 도 7이 인터커넥트(812)를 통해 코어(706)에 연결되는 제어 유닛(720)을 예시하지만, 다양한 예들에서, 제어 유닛(720)은 코어(706)의 내부와 같은 다른 곳에 위치할 수 있고, 버스(704)를 통해 코어에 연결될 수 있고, 기타 등등과 같이 될 수 있다.
일부 예들에서, 본 명세서에서 논의된 컴포넌트들 중 하나 이상이 SOC(System On Chip) 장치로서 구현될 수 있다. 도 9는 예에 따른 SOC 패키지의 블록도를 예시한다. 도 9에 예시된 바와 같이, SOC(902)는 하나 이상의 프로세서 코어(920), 하나 이상의 그래픽 프로세서 코어(930), 입/출력(I/O) 인터페이스(940), 및 메모리 컨트롤러(942)를 포함한다. SOC 패키지(902)의 다양한 컴포넌트들은 다른 도면들을 참조하여 본 명세서에서 논의되는 것과 같은 인터커넥트 또는 버스에 연결될 수 있다. 또한, SOC 패키지(902)는 다른 도면들을 참조하여 본 명세서에서 논의되는 것들과 같은, 더 많은 또는 더 적은 컴포넌트들을 포함할 수 있다. 또한, SOC 패키지(902)의 각 컴포넌트는, 예를 들어, 다른 도면들을 참조하여 본 명세서에서 논의된 바와 같은, 하나 이상의 다른 컴포넌트들을 포함할 수 있다. 일례에서, SOC 패키지(902)(및 그의 컴포넌트들)는, 예를 들어 단일 반도체 장치로 패키징되는 하나 이상의 IC(Integrated Circuit) 다이 상에 제공된다.
도 9에 예시된 바와 같이, SOC 패키지(902)는 메모리 컨트롤러(942)를 통해 메모리(960)(이는 다른 도면들을 참조하여 본 명세서에서 논의된 메모리와 유사하거나 동일한 것일 수 있음)에 연결된다. 예에서, 메모리(960)(또는 이것의 일부)는 SOC 패키지(902) 상에 통합될 수 있다.
I/O 인터페이스(940)는, 예를 들어 다른 도면들을 참조하여 본 명세서에서 논의되는 것과 같은 인터커넥트 및/또는 버스를 통해 하나 이상의 I/O 장치(970)에 연결될 수 있다. I/O 장치(들)(970)는 키보드, 마우스, 터치패드, 디스플레이, 이미지/비디오 캡처 장치(예를 들어, 카메라 또는 캠코더/비디오 레코더), 터치 스크린, 스피커, 또는 다른 유사한 것 중 하나 이상을 포함할 수 있다.
도 10은 예에 따른, 포인트 투 포인트(point-to-point)(PtP) 구성으로 배열되는 컴퓨팅 시스템(1000)을 예시한다. 특히, 도 10은 프로세서, 메모리, 및 입출력 장치들이 다수의 포인트-투-포인트 인터페이스에 의해 상호접속되는 시스템을 도시한다. 도 2를 참조하여 논의된 동작들은 시스템(1000)의 하나 이상의 컴포넌트에 의해 수행될 수 있다.
도 10에 예시된 바와 같이, 시스템(1000)은 여러 개의 프로세서를 포함할 수 있는데, 명확성을 위해 단지 두 개의 프로세서(1002 및 1004)가 도시된다. 프로세서들(1002 및 1004)은 메모리들(1010 및 1012)과의 통신을 가능하게 하는 로컬 메모리 컨트롤러 허브(MCH)(1006 및 1008)를 각각 포함할 수 있다. MCH(1006 및 1008)는 일부 예들에서 도 1의 메모리 컨트롤러(120) 및/또는 로직(125)을 포함할 수 있다.
예에서, 프로세서들(1002 및 1004)은 도 7을 참조하여 논의된 프로세서들(702) 중 하나일 수 있다. 프로세서들(1002 및 1004)은 PtP 인터페이스 회로들(1016 및 1018)을 사용하여 포인트-투-포인트(PtP) 인터페이스(1014)를 통해 각각 데이터를 교환할 수 있다. 또한, 프로세서들(1002 및 1004)은 포인트-투-포인트 인터페이스 회로들(1026, 1028, 1030 및 1032)을 사용하여 개개의 PtP 인터페이스들(1022 및 1024)을 통해 칩셋(1020)과 데이터를 각각 교환할 수 있다. 칩셋(1020)은 또한 예를 들어 PtP 인터페이스 회로(1037)를 사용하여 고성능 그래픽 인터페이스(1036)를 통해 고성능 그래픽 회로(1034)와 데이터를 교환할 수 있다.
도 10에 도시된 바와 같이, 도 1의 코어들(106) 및/또는 캐시(108) 중 하나 이상은 프로세서들(1004) 내에 위치할 수 있다. 그러나, 다른 예들은 도 10의 시스템(1000) 내의 다른 회로들, 로직 유닛들, 또는 장치들 내에 존재할 수 있다. 게다가, 다른 예들은 도 10에 예시된 몇 개의 회로들, 로직 유닛들, 또는 장치들의 전체에 걸쳐서 분산될 수 있다.
칩셋(1020)은 PtP 인터페이스 회로(1041)를 사용하여 버스(1040)와 통신할 수 있다. 버스(1040)는 그와 통신하는 하나 이상의 장치, 예를 들어, 버스 브리지(1042) 및 I/O 장치(1043)를 가질 수 있다. 버스(1044)를 통해, 버스 브리지(1043)는 키보드/마우스(1045), 통신 장치들(1046)(예를 들어, 모뎀들, 네트워크 인터페이스 장치들, 또는 컴퓨터 네트워크(1003)와 통신할 수 있는 다른 통신 장치들), 오디오 I/O 장치, 및/또는 데이터 저장 장치(1048)와 같은 다른 장치들과 통신할 수 있다. (하드 디스크 드라이브 또는 NAND 플래시 기반의 솔리드 스테이트 드라이브일 수 있는) 데이터 저장 장치(1048)는 프로세서들(1004)에 의해 실행될 수 있는 코드(1049)를 저장할 수 있다.
후속하는 예들은 추가 예들에 관련된다.
예 1은 컨트롤러로서, 이것은 피해자 레인 및 제1 공격자 레인을 포함하는 통신 인터커넥트에 대해, 제1 시드를 이용하여 상기 피해자 레인 및 상기 공격자 레인에서 의사 난수 패턴들의 제1 세트를 생성하는 것에 의해 간섭 시험의 제1 반복을 구현하고 상기 제1 공격자 레인에서 상기 시드를 전진시키는 것에 의해 간섭 시험의 제2 반복을 구현하도록 구성된, 하드웨어 로직을 적어도 부분적으로 포함하는, 로직을 포함한다.
예 2에서, 예 1의 주제는 상기 제1 시드가 사이클을 완료하는 것에 응답하여 상기 제1 공격자 레인에서 상기 시드를 전진시키도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 3에서, 예 1-2 중 어느 하나의 주제는 상기 통신 인터커넥트에서 상기 의사 난수 패턴을 송신하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 4에서, 예 1-3 중 어느 하나의 주제는 상기 인터커넥트는 제3 공격자 레인을 포함하고, 상기 로직은 상기 제2 공격자 레인에서 상기 시드를 전진시키는 것에 의해 간섭 시험의 제3 반복을 구현하도록 더 구성되는 배열을 임의적으로 포함할 수 있다.
예 5에서, 예 1-4 중 어느 하나의 주제는 상기 통신 인터커넥트에서 상기 의사 난수 패턴을 송신하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 6에서, 예 1-5 중 어느 하나의 주제는 미리 결정된 수의 시험 루프들 또는 미리 결정된 대기 기간 중 적어도 하나를 실행하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 7은 전자 장치로서, 이것은 적어도 하나의 처리 컴포넌트, 및 컨트롤러를 포함하고, 상기 컨트롤러는, 피해자 레인 및 제1 공격자 레인을 포함하는 통신 인터커넥트에 대해, 제1 시드를 이용하여 상기 피해자 레인 및 상기 공격자 레인에서 의사 난수 패턴들의 제1 세트를 생성하는 것에 의해 간섭 시험의 제1 반복을 구현하고 상기 제1 공격자 레인에서 상기 시드를 전진시키는 것에 의해 간섭 시험의 제2 반복을 구현하도록 구성된, 하드웨어 로직을 적어도 부분적으로 포함하는, 로직을 포함한다.
예 8에서, 예 7의 주제는 상기 제1 시드가 사이클을 완료하는 것에 응답하여 상기 제1 공격자 레인에서 상기 시드를 전진시키도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 9에서, 예 7-8 중 어느 하나의 주제는 상기 통신 인터커넥트에서 상기 의사 난수 패턴을 송신하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 10에서, 예 7-9 중 어느 하나의 주제는 상기 인터커넥트는 제3 공격자 레인을 포함하고, 상기 로직은 상기 제2 공격자 레인에서 상기 시드를 전진시키는 것에 의해 간섭 시험의 제3 반복을 구현하도록 더 구성되는 배열을 임의적으로 포함할 수 있다.
예 11에서, 예 7-10 중 어느 하나의 주제는 상기 통신 인터커넥트에서 상기 의사 난수 패턴을 송신하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 12에서, 예 7-11 중 어느 하나의 주제는 미리 결정된 수의 시험 루프들 또는 미리 결정된 대기 기간 중 적어도 하나를 실행하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 13은 비일시적 컴퓨터 판독가능 매체에 저장된 로직 명령어들을 포함하는 컴퓨터 프로그램 제품으로서, 상기 로직 명령어들은 컨트롤러에 의해 실행될 때, 피해자 레인 및 제1 공격자 레인을 포함하는 통신 인터커넥트에 대해, 제1 시드를 이용하여 상기 피해자 레인 및 상기 공격자 레인에서 의사 난수 패턴들의 제1 세트를 생성하는 것에 의해 간섭 시험의 제1 반복을 구현하고 상기 제1 공격자 레인에서 상기 시드를 전진시키는 것에 의해 간섭 시험의 제2 반복을 구현하도록 상기 컨트롤러를 구성한다.
예 14에서, 예 13의 주제는 상기 제1 시드가 사이클을 완료하는 것에 응답하여 상기 제1 공격자 레인에서 상기 시드를 전진시키도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 15에서, 예 13-14 중 어느 하나의 주제는 상기 통신 인터커넥트에서 상기 의사 난수 패턴을 송신하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 16에서, 예 13-15 중 어느 하나의 주제는 상기 인터커넥트는 제3 공격자 레인을 포함하고, 상기 로직은 상기 제2 공격자 레인에서 상기 시드를 전진시키는 것에 의해 간섭 시험의 제3 반복을 구현하도록 더 구성되는 배열을 임의적으로 포함할 수 있다.
예 17에서, 예 13-16 중 어느 하나의 주제는 상기 통신 인터커넥트에서 상기 의사 난수 패턴을 송신하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 18에서, 예 13-17 중 어느 하나의 주제는 미리 결정된 수의 시험 루프들 또는 미리 결정된 대기 기간 중 적어도 하나를 실행하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 19는 컨트롤러로서, 이것은 리로드 레이트 파라미터 및 저장 레이트 파라미터를 수신하고, 상기 리로드 레이트 파라미터에 따라 제1 시드를 리로드하는 것에 의해 반복되는 의사 난수 패턴들의 제1 세트를 생성하고, 통신 인터커넥트의 제1 레인에서 상기 반복되는 의사 난수 패턴들의 제1 세트를 송신하도록 구성된, 하드웨어 로직을 적어도 부분적으로 포함하는, 로직을 포함한다.
예 20에서, 예 19의 주제는 상기 로직은 상기 저장 레이트에 따라 상기 제1 시드를 저장하도록 더 구성되는 배열을 임의적으로 포함할 수 있다.
예 21에서, 예 19-20 중 어느 하나의 주제는 제1 의사 난수 패턴을 생성하고; 상기 리로드 레이트에 따라 상기 제1 의사 난수 패턴의 서브세트를 반복하고 상기 통신 인터커넥트에서 상기 의사 난수 패턴의 상기 서브세트를 송신하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 22에서, 예 19-21 중 어느 하나의 주제는 미리 결정된 수의 시험 루프들 또는 미리 결정된 대기 기간 중 적어도 하나를 실행하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 23은 전자 장치로서, 이것은 적어도 하나의 처리 컴포넌트 및 컨트롤러를 포함하고, 상기 컨트롤러는, 리로드 레이트 파라미터 및 저장 레이트 파라미터를 수신하고, 상기 리로드 레이트 파라미터에 따라 제1 시드를 리로드하는 것에 의해 반복되는 의사 난수 패턴들의 제1 세트를 생성하고, 통신 인터커넥트의 제1 레인에서 상기 반복되는 의사 난수 패턴들의 제1 세트를 송신하도록 구성된, 하드웨어 로직을 적어도 부분적으로 포함하는, 로직을 포함한다.
예 24에서, 예 23의 주제는 상기 로직은 상기 저장 레이트에 따라 상기 제1 시드를 저장하도록 더 구성되는 배열을 임의적으로 포함할 수 있다.
예 25에서, 예 23-24 중 어느 하나의 주제는 제1 의사 난수 패턴을 생성하고; 상기 리로드 레이트에 따라 상기 제1 의사 난수 패턴의 서브세트를 반복하고 상기 통신 인터커넥트에서 상기 의사 난수 패턴의 상기 서브세트를 송신하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 26에서, 예 23-25 중 어느 하나의 주제는 미리 결정된 수의 시험 루프들 또는 미리 결정된 대기 기간 중 적어도 하나를 실행하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 27은 비일시적 컴퓨터 판독가능 매체에 저장된 로직 명령어들을 포함하는 컴퓨터 프로그램 제품으로서, 상기 로직 명령어들은 컨트롤러에 의해 실행될 때, 리로드 레이트 파라미터 및 저장 레이트 파라미터를 수신하고, 상기 리로드 레이트 파라미터에 따라 제1 시드를 리로드하는 것에 의해 반복되는 의사 난수 패턴들의 제1 세트를 생성하고, 통신 인터커넥트의 제1 레인에서 상기 반복되는 의사 난수 패턴들의 제1 세트를 송신하도록 상기 컨트롤러를 구성한다.
예 28에서, 예 27의 주제는 상기 로직은 상기 저장 레이트에 따라 상기 제1 시드를 저장하도록 더 구성되는 배열을 임의적으로 포함할 수 있다.
예 29에서, 예 27-28 중 어느 하나의 주제는 제1 의사 난수 패턴을 생성하고; 상기 리로드 레이트에 따라 상기 제1 의사 난수 패턴의 서브세트를 반복하고 상기 통신 인터커넥트에서 상기 의사 난수 패턴의 상기 서브세트를 송신하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
예 30에서, 예 27-29 중 어느 하나의 주제는 미리 결정된 수의 시험 루프들 또는 미리 결정된 대기 기간 중 적어도 하나를 실행하도록 더 구성된 로직을 임의적으로 포함할 수 있다.
본 명세서에서 언급되는 용어 "로직 명령어들(logic instructions)"은 하나 또는 그 이상의 논리 연산들을 수행하기 위한 하나 또는 그 이상의 머신들에 의해 이해될 수 있는 표현들과 관련된다. 예를 들어, 로직 명령어들은 하나 이상의 데이터 오브젝트에 대해 하나 이상의 연산을 실행하기 위한 프로세서 컴파일러에 의해 해석 가능한 명령어들을 포함할 수 있다. 그러나, 이것은 단지 머신 판독가능 명령어들의 일례이며, 예들은 이러한 점에 한정되는 것은 아니다.
본 명세서에서 언급되는 용어 "컴퓨터 판독가능 매체"는 하나 이상의 머신에 의해 인식될 수 있는 표현들을 유지할 수 있는 매체와 관련된다. 예를 들어, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 명령어들 또는 데이터를 저장하기 위한 하나 이상의 저장 장치를 포함할 수 있다. 이러한 저장 장치들은, 예를 들어, 광, 자기, 또는 반도체 저장 매체 등의 저장 매체를 포함할 수 있다. 그러나, 이것은 단지 컴퓨터 판독가능 매체의 일례이며 실시예들은 이러한 점에 한정되는 것은 아니다.
본 명세서에서 언급되는 용어 "로직"은 하나 이상의 논리 연산을 수행하기 위한 구조와 관련된다. 예를 들어, 로직은 하나 이상의 입력 신호에 기초하여 하나 이상의 출력 신호를 제공하는 회로를 포함할 수 있다. 이러한 회로는, 디지털 입력을 수신하고 디지털 출력을 제공하는 유한 상태 머신(finite state machine), 또는 하나 이상의 아날로그 입력 신호에 응답하여 하나 이상의 아날로그 출력 신호를 제공하는 회로를 포함할 수 있다. 이러한 회로는, ASIC(application specific integrated circuit) 또는 FPGA(field programmable gate array)에서 제공될 수 있다. 또한, 로직은 이러한 머신 판독가능 명령어들을 실행하는 처리 회로와 함께 메모리에 저장된 머신 판독가능 명령어들을 포함할 수 있다. 그러나, 이것들은 로직을 제공할 수 있는 구조들의 예들에 불과하고, 예들은 이러한 점에서 한정되지 않는다.
본 명세서에서 설명된 방법들 중 일부는 컴퓨터 판독가능 매체 상의 로직 명령어들로서 구현될 수 있다. 로직 명령어들은, 프로세서에서 실행될 때, 프로세서가 설명된 방법들을 구현하는 특수 목적 머신으로서 프로그램되도록 한다. 프로세서는, 본 명세서에서 설명된 방법들을 실행하는 로직 명령어들에 의해 구성되는 경우, 설명된 방법들을 수행하기 위한 구조를 구성한다. 대안적으로, 본 명세서에서 설명된 방법들은, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit) 또는 다른 유사한 것에서의 로직으로 환원될 수 있다.
상세한 설명 및 청구범위에서, 연결된(coupled) 및 접속된(connected)이라는 용어는 이들의 파생어들과 함께 사용될 수 있다. 특정 예들에서, 접속된은, 2개 이상의 요소가 서로 직접 물리적으로 또는 전기적으로 접촉하는 것을 나타내기 위해 이용될 수 있다. 연결된은 2개 이상의 요소들이 직접적인 물리적 또는 전기적 접촉 상태임을 의미할 수 있다. 그러나, 연결된은 2개 이상의 요소들이 서로 직접적으로 접촉하지 않지만, 여전히 서로 협동 또는 상호 작용할 수 있다는 것을 또한 의미할 수 있다.
명세서에서 "일례(one example)" 또는 "일부 예들(some examples)"로 언급하는 것은, 그 예와 관련하여 설명된 특정한 특징, 구조, 또는 특성이 적어도 구현에 포함되어 있다는 것을 의미한다. 본 명세서의 다양한 곳에서 나오는 "일례에서"라는 표현들이 모두가 동일한 실시예를 언급하는 것이거나 그렇지 않을 수 있다.
예들이 구조적인 특징들 및/또는 방법론적인 동작들에 특정적인 언어로 설명되었지만, 청구된 주제는 설명된 특정한 특징들 또는 동작들에 한정되는 것은 아니라는 것을 이해해야 한다. 오히려, 특정한 특징들 및 동작들은 청구된 주제를 구현하는 샘플 형태로서 개시되어 있다.

Claims (30)

  1. 컨트롤러로서,
    하드웨어 로직을 적어도 부분적으로 포함하는 로직
    을 포함하고, 상기 로직은
    피해자 레인(victim lane) 및 제1 공격자 레인을 포함하는 통신 인터커넥트에 대해, 제1 시드 및 제2 시드를 이용하여 상기 피해자 레인 및 상기 제1 공격자 레인의 각각에서 의사 난수(pseudo-random) 패턴들의 제1 세트를 생성하는 것에 의해 간섭 시험의 제1 반복을 구현하고;
    상기 제1 반복의 사이클의 완료에 응답하여, 상기 제1 공격자 레인에서 상기 제2 시드를 다음 값으로 전진시키는 것에 의해 상기 제1 시드 및 상기 제2 시드를 이용하여 상기 피해자 레인 및 상기 제1 공격자 레인의 각각에서 의사 난수 패턴들의 제2 세트를 생성하는 것에 의해 간섭 시험의 제2 반복을 구현하도록 구성되는, 컨트롤러.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 인터커넥트는 제2 공격자 레인을 포함하고, 상기 로직은:
    상기 제1 반복에서 제3 시드를 더 이용하여 상기 제2 공격자 레인에서 의사 난수 패턴을 생성하고;
    상기 제2 반복에서 상기 제3 시드를 더 이용하여 상기 제2 공격자 레인에서 의사 난수 패턴을 생성하며;
    상기 제2 반복의 사이클의 완료에 응답하여, 상기 제2 공격자 레인에서 상기 제3 시드를 다음 값으로 전진시키는 것에 의해 상기 제1 시드, 상기 제2 시드 및 상기 제3 시드를 이용하여 상기 피해자 레인, 상기 제1 공격자 레인 및 상기 제2 공격자 레인의 각각에서 의사 난수 패턴들의 제3 세트를 생성하는 것에 의해 간섭 시험의 제3 반복을 구현하도록 더 구성되는, 컨트롤러.
  5. 제1항 또는 제4항에 있어서,
    상기 로직은 상기 통신 인터커넥트에서 상기 의사 난수 패턴들을 송신하도록 구성되는, 컨트롤러.
  6. 제1항 또는 제4항에 있어서,
    상기 로직은:
    미리 결정된 수의 시험 루프들; 또는
    미리 결정된 대기 기간
    중 적어도 하나를 실행하도록 구성되는, 컨트롤러.
  7. 전자 장치로서,
    적어도 하나의 처리 컴포넌트; 및
    컨트롤러를 포함하고, 상기 컨트롤러는:
    하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하고, 상기 로직은
    피해자 레인 및 제1 공격자 레인을 포함하는 통신 인터커넥트에 대해, 제1 시드 및 제2 시드를 이용하여 상기 피해자 레인 및 상기 제1 공격자 레인의 각각에서 의사 난수 패턴들의 제1 세트를 생성하는 것에 의해 간섭 시험의 제1 반복을 구현하고;
    상기 제1 반복의 사이클의 완료에 응답하여, 상기 제1 공격자 레인에서 상기 제2 시드를 다음 값으로 전진시키는 것에 의해 상기 제1 시드 및 상기 제2 시드를 이용하여 상기 피해자 레인 및 상기 제1 공격자 레인의 각각에서 의사 난수 패턴들의 제2 세트를 생성하는 것에 의해 간섭 시험의 제2 반복을 구현하도록 구성되는, 전자 장치.
  8. 삭제
  9. 삭제
  10. 제7항에 있어서,
    상기 인터커넥트는 제2 공격자 레인을 포함하고, 상기 로직은:
    상기 제1 반복에서 제3 시드를 더 이용하여 상기 제2 공격자 레인에서 의사 난수 패턴을 생성하고;
    상기 제2 반복에서 상기 제3 시드를 더 이용하여 상기 제2 공격자 레인에서 의사 난수 패턴을 생성하며;
    상기 제2 반복의 사이클의 완료에 응답하여, 상기 제2 공격자 레인에서 상기 제3 시드를 다음 값으로 전진시키는 것에 의해 상기 제1 시드, 상기 제2 시드 및 상기 제3 시드를 이용하여 상기 피해자 레인, 상기 제1 공격자 레인 및 상기 제2 공격자 레인의 각각에서 의사 난수 패턴들의 제3 세트를 생성하는 것에 의해 간섭 시험의 제3 반복을 구현하도록 더 구성되는, 전자 장치.
  11. 제7항 또는 제10항에 있어서,
    상기 로직은 상기 통신 인터커넥트에서 상기 의사 난수 패턴들을 송신하도록 구성되는, 전자 장치.
  12. 제7항 또는 제10항에 있어서,
    상기 로직은:
    미리 결정된 수의 시험 루프들; 또는
    미리 결정된 대기 기간
    중 적어도 하나를 실행하도록 구성되는, 전자 장치.
  13. 로직 명령어들을 포함하는 컴퓨터 판독가능 매체로서, 상기 로직 명령어들은 상기 컴퓨터 판독가능 매체에 저장되고, 컨트롤러에 의해 실행될 때,
    피해자 레인 및 제1 공격자 레인을 포함하는 통신 인터커넥트에 대해, 제1 시드 및 제2 시드를 이용하여 상기 피해자 레인 및 상기 제1 공격자 레인의 각각에서 의사 난수 패턴들의 제1 세트를 생성하는 것에 의해 간섭 시험의 제1 반복을 구현하고;
    상기 제1 반복의 사이클의 완료에 응답하여, 상기 제1 공격자 레인에서 상기 제2 시드를 다음 값으로 전진시키는 것에 의해 상기 제1 시드 및 상기 제2 시드를 이용하여 상기 피해자 레인 및 상기 제1 공격자 레인의 각각에서 의사 난수 패턴들의 제2 세트를 생성하는 것에 의해 간섭 시험의 제2 반복을 구현하도록 상기 컨트롤러를 구성하는, 컴퓨터 판독가능 매체.
  14. 삭제
  15. 삭제
  16. 제13항에 있어서,
    상기 인터커넥트는 제2 공격자 레인을 포함하고, 상기 로직 명령어들은:
    상기 제1 반복에서 제3 시드를 더 이용하여 상기 제2 공격자 레인에서 의사 난수 패턴을 생성하고;
    상기 제2 반복에서 상기 제3 시드를 더 이용하여 상기 제2 공격자 레인에서 의사 난수 패턴을 생성하며;
    상기 제2 반복의 사이클의 완료에 응답하여, 상기 제2 공격자 레인에서 상기 제3 시드를 다음 값으로 전진시키는 것에 의해 상기 제1 시드, 상기 제2 시드 및 상기 제3 시드를 이용하여 상기 피해자 레인, 상기 제1 공격자 레인 및 상기 제2 공격자 레인의 각각에서 의사 난수 패턴들의 제3 세트를 생성하는 것에 의해 간섭 시험의 제3 반복을 구현하도록 상기 컨트롤러를 구성하는, 컴퓨터 판독가능 매체.
  17. 제13항 또는 제16항에 있어서,
    상기 로직 명령어들은 상기 통신 인터커넥트에서 상기 의사 난수 패턴들을 송신하도록 상기 컨트롤러를 구성하는, 컴퓨터 판독가능 매체.
  18. 제13항 또는 제16항에 있어서,
    상기 로직 명령어들은:
    미리 결정된 수의 시험 루프들; 또는
    미리 결정된 대기 기간
    중 적어도 하나를 실행하도록 상기 컨트롤러를 구성하는, 컴퓨터 판독가능 매체.
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020167023312A 2014-03-28 2015-03-03 간섭 시험 KR101959960B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/229,460 2014-03-28
US14/229,460 US9722663B2 (en) 2014-03-28 2014-03-28 Interference testing
PCT/US2015/018491 WO2015148070A1 (en) 2014-03-28 2015-03-03 Interference testing

Publications (2)

Publication Number Publication Date
KR20160114118A KR20160114118A (ko) 2016-10-04
KR101959960B1 true KR101959960B1 (ko) 2019-03-19

Family

ID=54191806

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167023312A KR101959960B1 (ko) 2014-03-28 2015-03-03 간섭 시험

Country Status (6)

Country Link
US (2) US9722663B2 (ko)
JP (1) JP6316977B2 (ko)
KR (1) KR101959960B1 (ko)
CN (1) CN106030543B (ko)
TW (1) TWI589903B (ko)
WO (1) WO2015148070A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107872828B (zh) * 2017-12-15 2021-04-13 北京泰德东腾通信技术有限公司 eIMTA终端一致性测试方法和装置
US10853212B2 (en) * 2018-01-08 2020-12-01 Intel Corporation Cross-talk generation in a multi-lane link during lane testing
CN112925682B (zh) * 2019-12-06 2024-02-02 澜起科技股份有限公司 具有内建自测试逻辑的测试装置及方法
US11675716B2 (en) 2019-12-10 2023-06-13 Intel Corporation Techniques for command bus training to a memory device
CN113470203B (zh) * 2021-05-17 2023-04-21 北京易路行技术有限公司 多车道etc交易方法、通行方法、系统和设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050097153A1 (en) 2003-08-29 2005-05-05 Infineon Technologies Ag Pseudorandom number generator
US20050166110A1 (en) * 2004-01-28 2005-07-28 Travis Swanson Generation of memory test patterns for DLL calibration
US20090220083A1 (en) 2008-02-28 2009-09-03 Schneider James P Stream cipher using multiplication over a finite field of even characteristic
JP2011253253A (ja) * 2010-05-31 2011-12-15 Fujitsu Ltd コンピュータ試験方法、コンピュータ試験装置およびコンピュータ試験プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381269B1 (en) 1999-05-28 2002-04-30 Lucent Technologies Inc. Test system with signal injection network for characterizing interference and noise tolerance in a digital signal link
US7490275B2 (en) * 2001-02-02 2009-02-10 Rambus Inc. Method and apparatus for evaluating and optimizing a signaling system
US7539489B1 (en) 2003-04-04 2009-05-26 Veriwave, Incorporated Location-based testing for wireless data communication networks
US7272756B2 (en) * 2005-05-03 2007-09-18 Agere Systems Inc. Exploitive test pattern apparatus and method
US7231304B2 (en) 2005-06-30 2007-06-12 The Boeing Company Interference pattern testing of materials
FR2897178B1 (fr) 2006-02-07 2008-09-05 Coupling Wave Solutions Cws Sa Procede d'estimation d'un bruit genere dans un systeme electronique et procede de test d'immunite au bruit associe
JP2008180592A (ja) 2007-01-24 2008-08-07 Nec Electronics Corp テストパターン生成回路及びテスト回路
US8248617B2 (en) 2008-04-22 2012-08-21 Zygo Corporation Interferometer for overlay measurements
US8026726B2 (en) * 2009-01-23 2011-09-27 Silicon Image, Inc. Fault testing for interconnections
US8331176B2 (en) * 2009-11-30 2012-12-11 Intel Corporation Method and system for evaluating effects of signal phase difference on a memory system
US20130343131A1 (en) 2012-06-26 2013-12-26 Lsi Corporation Fast tracking for flash channels
US9495271B2 (en) * 2014-01-29 2016-11-15 Freescale Semiconductor, Inc. Statistical power indication monitor for purpose of measuring power consumption

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050097153A1 (en) 2003-08-29 2005-05-05 Infineon Technologies Ag Pseudorandom number generator
US20050166110A1 (en) * 2004-01-28 2005-07-28 Travis Swanson Generation of memory test patterns for DLL calibration
US20090220083A1 (en) 2008-02-28 2009-09-03 Schneider James P Stream cipher using multiplication over a finite field of even characteristic
JP2011253253A (ja) * 2010-05-31 2011-12-15 Fujitsu Ltd コンピュータ試験方法、コンピュータ試験装置およびコンピュータ試験プログラム

Also Published As

Publication number Publication date
US9722663B2 (en) 2017-08-01
CN106030543B (zh) 2020-06-19
TW201543055A (zh) 2015-11-16
CN106030543A (zh) 2016-10-12
TWI589903B (zh) 2017-07-01
US10516439B2 (en) 2019-12-24
US20170359099A1 (en) 2017-12-14
JP2017514199A (ja) 2017-06-01
JP6316977B2 (ja) 2018-04-25
WO2015148070A1 (en) 2015-10-01
KR20160114118A (ko) 2016-10-04
US20150280781A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
US10516439B2 (en) Interference testing
US20190042925A1 (en) Methods and arrangements to manage memory in cascaded neural networks
US9858140B2 (en) Memory corruption detection
US9710380B2 (en) Managing shared cache by multi-core processor
KR20110052510A (ko) 주변 컴포넌트를 위한 커맨드 큐
US9652375B2 (en) Multiple chunk support for memory corruption detection architectures
US10158485B2 (en) Double affine mapped S-box hardware accelerator
KR101531752B1 (ko) 지역성 인식 작업 가로채기 런타임 스케줄러
US9625890B2 (en) Coordinating control loops for temperature control
US20170091060A1 (en) System and method for universal serial bus (usb) protocol debugging
US20170102787A1 (en) Virtual sensor fusion hub for electronic devices
WO2017054103A1 (en) Pairing electronic devices
US9959939B2 (en) Granular cache repair
KR20160148644A (ko) 전자 디바이스용 센서 버스 인터페이스
US10649484B2 (en) Dynamic adaptive clocking for non-common-clock interfaces
WO2018004372A1 (en) Vectorize store instructions method and apparatus
KR102635758B1 (ko) 전자 디바이스를 사용한 모션 추적
JP5881198B2 (ja) 優先度ベースのインテリジェントプラットフォームの受動的熱管理
CN108228529B (zh) 用于配置可重构计算阵列的方法及其系统
CN113407350B (zh) 指令处理装置、处理器、芯片、计算设备及相应的方法
CN102012881A (zh) 基于总线监控器的系统芯片总线优先级动态配置装置
CN115374732A (zh) 针对低温多芯片计算系统的模拟方法及其系统
Gong et al. Design and implementation of SPI flash controller based on Xilinx FPGA

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