KR20240040654A - Systems and Methods for Testing CXL Enabled Devices in Parallel - Google Patents
Systems and Methods for Testing CXL Enabled Devices in Parallel Download PDFInfo
- Publication number
- KR20240040654A KR20240040654A KR1020230125486A KR20230125486A KR20240040654A KR 20240040654 A KR20240040654 A KR 20240040654A KR 1020230125486 A KR1020230125486 A KR 1020230125486A KR 20230125486 A KR20230125486 A KR 20230125486A KR 20240040654 A KR20240040654 A KR 20240040654A
- Authority
- KR
- South Korea
- Prior art keywords
- test
- duts
- dut
- testing
- cxl
- Prior art date
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 342
- 238000000034 method Methods 0.000 title abstract description 128
- 230000003993 interaction Effects 0.000 claims abstract description 8
- 238000004891 communication Methods 0.000 claims description 12
- 230000002452 interceptive effect Effects 0.000 claims description 7
- 238000010998 test method Methods 0.000 claims description 6
- 238000011056 performance test Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 54
- 238000010586 diagram Methods 0.000 description 27
- 238000007792 addition Methods 0.000 description 20
- 238000007726 management method Methods 0.000 description 18
- 230000007613 environmental effect Effects 0.000 description 9
- 230000008520 organization Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 9
- 230000002085 persistent effect Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000011010 flushing procedure Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000000725 suspension Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010438 heat treatment Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/26—Testing of individual semiconductor devices
- G01R31/2601—Apparatus or methods therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
효율적이고 효과적인 테스트 시스템 및 방법이 제공된다. 일 실시예에서, 테스트 시스템은, 시스템과의 사용자 상호작용을 가능하게 하도록 구성된 사용자 인터페이스와, 복수의 테스트 대상 장치(device under test: DUT)들과 통신 가능하게 결합되도록 구성된 테스트 보드 - DUT들은 CXL(compute express link) 프로토콜과 호환됨 - 와, 복수의 DUT들의 테스트를 지시하도록 구성된 테스터를 포함하는데, 테스터는 복수의 DUT들에 걸쳐 유연하고 독립적인 병렬 테스트를 관리하는 것을 포함하여 복수의 DUT들의 테스트를 관리한다. 하나의 예시적 구현에서, 테스터는 복수의 DUT들에 포함된 DUT들에 대해 독립적으로 워크로드(workloads)를 생성하고 관리한다. DUT들은 메모리 장치일 수 있고, 테스터는 상이한 메모리 공간들을 병렬로 테스트하도록 구성된다. 상이한 메모리 공간들은 다양한 구현을 가질 수 있다(예컨대, 복수의 DUT들에 포함되는 것, 상이한 메모리 공간들이 복수의 DUT들에 포함된 DUT들 중 하나 내에 있는 것 등). DUT들의 개별 특성에 기초하여 워크로드가 생성되고 개별적으로 관리될 수 있다. 테스트는 성능 테스트(예컨대, 대역폭 테스트, 대기 시간(latency) 테스트, 오류 테스트 등)를 포함할 수 있다.An efficient and effective test system and method are provided. In one embodiment, the test system includes a user interface configured to enable user interaction with the system, and a test board configured to be communicatively coupled to a plurality of devices under test (DUTs), where the DUTs are CXLs. (compute express link) protocol - includes a tester configured to direct testing of multiple DUTs, including managing flexible, independent parallel testing across multiple DUTs. Manage tests. In one example implementation, a tester independently creates and manages workloads for DUTs included in a plurality of DUTs. The DUTs may be memory devices, and the tester is configured to test different memory spaces in parallel. The different memory spaces may have various implementations (eg, included in multiple DUTs, different memory spaces within one of the DUTs included in the multiple DUTs, etc.). Workloads can be created and individually managed based on the individual characteristics of DUTs. Testing may include performance testing (e.g., bandwidth testing, latency testing, error testing, etc.).
Description
관련 출원Related applications
본 출원은 다음과 같은 가출원의 이점과 우선권을 주장한다:This application claims the benefit and priority of the provisional application as follows:
"테스트 환경 시스템 및 방법을 위한 CXL 프로토콜 지원(CXL PROTOCOL ENABLEMENT FOR TEST ENVIRONMENT SYSTEMS and METHODS)"이라는 제목으로 2022년 9월 21일에 출원된 63/408,788(대리인 문서 번호 ATSY-0113-00.00US),No. 63/408,788 (Attorney Docket No. ATSY-0113-00.00US), entitled “CXL PROTOCOL ENABLEMENT FOR TEST ENVIRONMENT SYSTEMS and METHODS,” filed September 21, 2022;
"테스트 환경 시스템 및 방법을 위한 CXL 프로토콜 지원(CXL PROTOCOL ENABLEMENT FOR TEST ENVIRONMENT SYSTEMS and METHODS)"이라는 제목으로 2022년 1월 17일에 출원된 63/439,460(대리인 문서 번호 ATSY-0113-01.01US),No. 63/439,460 (Attorney Docket No. ATSY-0113-01.01US), entitled “CXL PROTOCOL ENABLEMENT FOR TEST ENVIRONMENT SYSTEMS and METHODS,” filed Jan. 17, 2022;
"테스트 환경 시스템 및 방법을 위한 CXL 프로토콜 지원(CXL PROTOCOL ENABLEMENT FOR TEST ENVIRONMENT SYSTEMS and METHODS)"이라는 제목으로 2022년 9월 21일에 출원된 63/408,795(대리인 문서 번호 ATSY-0112-00.00US),No. 63/408,795 (Attorney Docket No. ATSY-0112-00.00US), entitled “CXL PROTOCOL ENABLEMENT FOR TEST ENVIRONMENT SYSTEMS and METHODS,” filed September 21, 2022;
"CXL 프로토콜 지원형인 DUT에 대한 테스트 환경에서의 무중단 추가 관리(MANAGEMENT OF HOT ADD IN A TESTING ENVIRONMENT FOR DUTS THAT ARE CXL PROTOCOL ENABLED)"라는 제목으로 2022년 1월 17일에 출원된 63/439,434(대리인 문서 번호 ATSY-0112-01.01US),No. 63/439,434, filed January 17, 2022, entitled “MANAGEMENT OF HOT ADD IN A TESTING ENVIRONMENT FOR DUTS THAT ARE CXL PROTOCOL ENABLED” document number ATSY-0112-01.01US),
"CXL 프로토콜 지원 장치를 테스트하기 위해 DAX 메모리 관리를 이용하는 시스템 및 방법(SYSTEMS AND METHODS UTILIZING DAX MEMORY MANAGEMENT FOR TESTING CXL PROTOCOL ENABLED DEIVCES)"이라는 제목으로 2022년 9월 21일에 출원된 63/408,801(대리인 문서 번호 ATSY-0115-00.00US),No. 63/408,801, filed September 21, 2022, entitled "SYSTEMS AND METHODS UTILIZING DAX MEMORY MANAGEMENT FOR TESTING CXL PROTOCOL ENABLED DEIVCES" document number ATSY-0115-00.00US),
"CXL 프로토콜 지원 장치를 테스트를 위해 DAX 메모리 관리를 이용하는 시스템 및 방법(SYSTEMS AND METHODS UTILIZING DAX MEMORY MANAGEMENT FOR TESTING CXL PROTOCOL ENABLED DEIVCES)"이라는 제목으로 2022년 1월 17일에 출원된 63/439,470(대리인 문서 번호 ATSY-0115-01.01US),63/439,470, filed January 17, 2022, entitled "SYSTEMS AND METHODS UTILIZING DAX MEMORY MANAGEMENT FOR TESTING CXL PROTOCOL ENABLED DEIVCES" document number ATSY-0115-01.01US),
"CXL 지원 장치를 병렬로 테스트하기 위한 시스템 및 방법(SYSTEMS AND METHODS FOR TESTING CXL ENABLED DEVICES IN PARALLEL)"이라는 제목으로 2022년 9월 21일에 출원된 63/408,809(대리인 문서 번호 ATSY-0114-00.00US), 및No. 63/408,809, filed September 21, 2022, entitled “SYSTEMS AND METHODS FOR TESTING CXL ENABLED DEVICES IN PARALLEL” (Attorney Docket No. ATSY-0114-00.00) US), and
"CXL 지원 장치를 병렬로 테스트하기 위한 시스템 및 방법(SYSTEMS AND METHODS FOR TESTING CXL ENABLED DEVICES IN PARALLEL)"이라는 제목으로 2022년 1월 17일에 출원된 63/439,464(대리인 문서 번호 ATSY-0114-01.01US).No. 63/439,464, filed Jan. 17, 2022, entitled “SYSTEMS AND METHODS FOR TESTING CXL ENABLED DEVICES IN PARALLEL” (Attorney Docket No. ATSY-0114-01.01) US).
이들 모두는 참조에 의해 본원에 통합된다.All of which are incorporated herein by reference.
발명의 분야field of invention
본 개시는 CXL(compute express link) 프로토콜과 호환(compliant)되는 테스트 대상 장치(DUT)에 대한 테스트 능력을 제공하도록 구성된 시스템 및 방법에 관한 것이다.The present disclosure relates to systems and methods configured to provide test capabilities for a device under test (DUT) that is compliant with the compute express link (CXL) protocol.
CXL(Compute Express Link)은 전자 장치 산업(예컨대, 메모리 등)에 대한 새로운 통신(예컨대, 버스 등) 프로토콜이므로 CXL 프로토콜을 CXL 지원 DUT의 테스트 환경에서 사용하려면 해결해야 할 많은 과제가 있다. 특히, 정상적인 비-테스트 동작 중에, CXL 장치는 시스템 메모리에 공유 저장 자원을 제공하는 데 자주 사용된다. 종래 기술의 자동 테스트 장비(Automatic Test Equipment: ATE)는 이러한 이슈(예컨대, CXL 시스템 메모리 등)를 효율적이고 효과적으로 해결하지 못했고, 전통적인 테스트 시스템 및 방법은 CXL 호환 테스트 대상 장치(DUT)의 테스트와 연관된 테스트 능력을 거의 또는 전혀 제공하지 않았다.Since Compute Express Link (CXL) is a new communication (e.g., bus, etc.) protocol for the electronics industry (e.g., memory, etc.), there are many challenges that must be addressed before the CXL protocol can be used in the test environment of CXL-enabled DUTs. In particular, during normal non-test operation, CXL devices are often used to provide shared storage resources in system memory. Prior art Automatic Test Equipment (ATE) did not efficiently and effectively address these issues (e.g., CXL system memory, etc.), and traditional test systems and methods were associated with the testing of CXL-compatible devices under test (DUTs). Provided little or no testing capabilities.
CXL 타입 3 장치의 기본적인 일반적 목적은 추가적인 공유 메인 시스템 메모리 자원으로 기능하는 것이며, 이러한 특성으로 인해 장치의 테스트는 특히 문제가 될 수 있다. 본 발명이 없다면, CXL DUT의 메모리 공간은 테스터 호스트 시스템 메모리 공간의 공유 부분으로 간주될 수 있다. 시스템 메모리의 공유 부분으로서, CXL DUT는 시스템에 결합된 다양한 엔티티(예컨대, 장치, 애플리케이션, 프로세스, 스레드 등)에 의해 액세스될 수 있다. 공유 시스템 메모리 모드 또는 "커널 메모리" 모드에서, 테스트 시스템에 결합된 하나의 장치는 일반적으로 다른 장치의 메모리 공간에 기록하여 이를 손상시킬 수 있다. 테스트 환경에서의 이러한 결과는 테스트 동작에 방해를 야기할 수 있고 신뢰할 수 없는 테스트 결과를 생성할 수 있다.The basic general purpose of a
또한, 적절한 테스트를 위해 종종 필요하다고 간주되는 몇 가지 매우 바람직한 테스트 시스템 특성이 존재한다. 그러나, 전통적인 테스트 시스템 및 방법은 일반적으로 이러한 능력을 현실적으로 제공할 수 없었다. 예를 들어, 테스트 시스템 및 방법이 DUT를 무중단 추가/교체(hot add/swap)하고 다수의 DUT를 병렬로 테스트할 수 있는 것은 매우 바람직하며 종종 필요하다. CXL DUT의 공유 액세스 측면으로 인해 시스템이 다른 DUT의 테스트를 방해하지 않으면서 다수의 DUT를 병렬로 적절하게 테스트하는 것은 매우 어렵다. 또한, 현재 CXL 장치를 시스템에 편리하게 추가/교체할 수 있는 능력이 없는 CXL 버전이 존재한다. CXL 프로토콜의 버전 1.1은 장치 열거(device enumeration)가 BIOS(시스템 재부팅을 필요로 함)를 통해서만 수행되기 때문에 장치가 동작하고 있는 동안 장치의 무중단 추가/교체를 허용하지 않는다. 장치가 처음 부팅될 때, BIOS는 이를 초기화하여 CXL 장치로서 작동시킨다. 이렇게 하면, 호스트가 새 장치를 인식하기 위해 재부팅이 필요하므로, 장치가 (예컨대, 테스트 중에) 무중단 추가되는 것이 효과적으로 방지된다. CXL 장치를 추가/교체하기 위해, 전통적으로 전체 시스템은 종료되어야 하고, 새로운 CXL 장치가 추가/교체된 다음 시스템은 재시작되어 DUT의 테스트를 처음부터 다시 시작해야 했다. 처음부터 다시 시작해야 하는 이러한 종래 기술 조건은 시스템의 다른 DUT를 테스트하기 위해 많은 시간과 자원을 희생/낭비한다(예컨대, 제어 데이터의 손실 등을 포함함).Additionally, there are several highly desirable test system characteristics that are often considered necessary for proper testing. However, traditional test systems and methods generally cannot realistically provide this capability. For example, it is highly desirable and often necessary for test systems and methods to be able to hot add/swap DUTs and test multiple DUTs in parallel. The shared access aspect of a CXL DUT makes it very difficult for the system to properly test multiple DUTs in parallel without interfering with the testing of other DUTs. Additionally, there are currently versions of CXL that do not have the ability to conveniently add/replace CXL devices to the system. Version 1.1 of the CXL protocol does not allow non-disruptive addition/replacement of devices while the device is running because device enumeration is only performed through the BIOS (requiring a system reboot). When the device first boots, the BIOS initializes it to operate as a CXL device. This effectively prevents non-disruptive additions of devices (e.g., during testing), as the host requires a reboot to recognize the new device. To add/replace a CXL device, traditionally the entire system would have to be shut down, a new CXL device would be added/replaced, and then the system would be restarted to start testing of the DUT from scratch. This prior art condition of having to start over again sacrifices/wastes a lot of time and resources to test other DUTs in the system (including, for example, loss of control data, etc.).
CXL 프로토콜은 현재 테스트용이 아닌 장치의 일반적 컴퓨터 용도를 위해 주로 설계되며, 특히 다수의 CXL 장치를 병렬로 테스트하기 위한 것이 아니기 때문에, 효율적이고 효과적인 테스트를 허용하기 위해서는 전통적으로 많은 과제가 해결되어야 했다.Because the CXL protocol is currently primarily designed for general computational use on non-test devices, and is not specifically intended for testing multiple CXL devices in parallel, many challenges have traditionally had to be addressed to allow for efficient and effective testing.
효율적이고 효과적인 테스트 시스템 및 방법이 제공된다. 일 실시예에서, 테스트 시스템은, 시스템과의 사용자 상호작용을 가능하게 하도록 구성된 사용자 인터페이스와, 복수의 테스트 대상 장치(device under test: DUT)들과 통신 가능하게 결합되도록 구성된 테스트 보드 - DUT들은 CXL(compute express link) 프로토콜과 호환됨 - 와, 복수의 DUT들의 테스트를 지시하도록 구성된 테스터를 포함하는데, 테스터는 복수의 DUT들에 걸쳐 유연하고 독립적인 병렬 테스트를 관리하는 것을 포함하여 복수의 DUT들의 테스트를 관리한다. 하나의 예시적 구현에서, 테스터는 복수의 DUT들에 포함된 DUT들에 대해 독립적으로 워크로드(workloads)를 생성하고 관리한다. DUT들은 메모리 장치일 수 있고, 테스터는 상이한 메모리 공간들을 병렬로 테스트하도록 구성된다. 상이한 메모리 공간들은 다양한 구현을 가질 수 있다(예컨대, 복수의 DUT들에 포함되는 것, 상이한 메모리 공간들이 복수의 DUT들에 포함된 DUT들 중 하나 내에 있는 것 등). DUT들의 개별 특성에 기초하여 워크로드가 생성되고 개별적으로 관리될 수 있다. 테스트는 성능 테스트(예컨대, 대역폭 테스트, 대기 시간(latency) 테스트, 오류 테스트 등)를 포함할 수 있다.An efficient and effective test system and method are provided. In one embodiment, the test system includes a user interface configured to enable user interaction with the system, and a test board configured to be communicatively coupled to a plurality of devices under test (DUTs), where the DUTs are CXLs. (compute express link) protocol - includes a tester configured to direct testing of multiple DUTs, including managing flexible, independent parallel testing across multiple DUTs. Manage tests. In one example implementation, a tester independently creates and manages workloads for DUTs included in a plurality of DUTs. The DUTs may be memory devices, and the tester is configured to test different memory spaces in parallel. The different memory spaces may have various implementations (eg, included in multiple DUTs, different memory spaces within one of the DUTs included in the multiple DUTs, etc.). Workloads can be created and individually managed based on the individual characteristics of DUTs. Testing may include performance testing (e.g., bandwidth testing, latency testing, error testing, etc.).
본 명세서에 포함되어 그 일부를 형성하는 첨부 도면은 본 발명의 실시예를 도시하고, 설명 부분과 함께 본 발명의 원리를 설명하는 역할을 한다. 별도의 언급이 없는 한, 도면은 축척대로 그려지지 않은 것일 수 있다.
도 1a는 일 실시예에 따른 예시적 테스트 시스템의 블록도이다.
도 1b는 일 실시예에 따른 예시적 테스트 시스템의 블록도이다.
도 2는 일 실시예에 따른 예시적 테스트 방법의 블록도이다.
도 3은 일 실시예에 따른 무중단 추가 테스트 시스템의 블록도이다.
도 4는 일 실시예에 따른 예시적 장치 무중단 추가 테스트 방법의 블록도이다.
도 5는 일 실시예에 따른 예시적 테스트 시스템의 블록도이다.
도 6은 일 실시예에 따른 예시적 장치 테스트 관리 방법의 블록도이다.
도 7은 일 실시예에 따른 예시적 테스트 시스템의 블록도이다.
도 8은 일 실시예에 따른 예시적 병렬 테스트 방법의 블록도이다.
도 9는 일 실시예에 따른, 교환 프로세스를 구현하고 제어하기 위한 플랫폼으로 사용될 수 있는 예시적 전자 시스템의 블록도이다.
도 10은 일 실시예에 따른 예시적 테스트 시스템의 블록도이다.
도 11은 일 실시예에 따른 예시적 테스트 시스템의 블록도이다.
도 12는 일 실시예에 따른 예시적 테스트 시스템의 블록도이다.The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. Unless otherwise noted, drawings may not be drawn to scale.
1A is a block diagram of an example test system according to one embodiment.
1B is a block diagram of an example test system according to one embodiment.
Figure 2 is a block diagram of an example test method according to one embodiment.
Figure 3 is a block diagram of a non-disruptive additional test system according to one embodiment.
4 is a block diagram of an exemplary device non-disruptive additional testing method according to an embodiment.
Figure 5 is a block diagram of an example test system according to one embodiment.
Figure 6 is a block diagram of an example device test management method according to one embodiment.
Figure 7 is a block diagram of an example test system according to one embodiment.
Figure 8 is a block diagram of an example parallel testing method according to one embodiment.
9 is a block diagram of an example electronic system that can be used as a platform for implementing and controlling an exchange process, according to one embodiment.
Figure 10 is a block diagram of an example test system according to one embodiment.
Figure 11 is a block diagram of an example test system according to one embodiment.
Figure 12 is a block diagram of an example test system according to one embodiment.
이제, 본 개시의 다양한 실시예가 참조될 것인데, 그 예는 첨부 도면에 도시된다. 이들 실시예와 관련하여 설명되지만, 본 개시를 이들 실시예로 제한하려는 의도는 아니라는 것이 이해될 것이다. 오히려, 본 개시는 본 개시의 정신 및 범위 내에 포함될 수 있는 대안, 수정 및 균등물을 커버하도록 의도된다. 또한, 본 개시의 다음의 상세한 설명에서는 본 개시의 완전한 이해를 제공하기 위해 다수의 특정 세부사항이 제시된다. 그러나, 본 개시는 이러한 특정 세부사항 없이도 실시될 수 있다는 것이 이해될 것이다. 다른 경우에, 본 개시의 측면들을 불필요하게 모호하게 하지 않기 위해 잘 알려진 방법, 절차, 구성요소 및 회로는 자세히 설명되지 않았다.Reference will now be made to various embodiments of the present disclosure, examples of which are shown in the accompanying drawings. Although described in connection with these embodiments, it will be understood that the disclosure is not intended to be limited to these embodiments. Rather, the present disclosure is intended to cover alternatives, modifications, and equivalents that may be included within the spirit and scope of the present disclosure. Additionally, in the following detailed description of the disclosure, numerous specific details are set forth to provide a thorough understanding of the disclosure. However, it will be understood that the present disclosure may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to unnecessarily obscure aspects of the disclosure.
본 명세서에 통합되어 본 명세서의 일부를 형성하는 첨부 도면은 본 발명의 원리에 대한 예시적 설명을 위해 포함된 것이며, 본 명세서에 설명된 특정 구현으로 본 발명을 제한하려는 의도는 아니다. 달리 명시하지 않는 한 도면은 축척에 맞지 않는다.The accompanying drawings, which are incorporated in and form a part of this specification, are included for illustrative purposes of the principles of the invention and are not intended to limit the invention to the specific implementations set forth herein. Unless otherwise specified, drawings are not to scale.
도면은 반드시 축척대로 그려진 것은 아니며, 묘사된 장치 및 구조의 일부뿐만 아니라 이러한 구조를 형성하는 다양한 층이 도시된다. 논의 및 설명을 단순화하기 위해, 단지 하나 또는 두 개의 장치 또는 구조가 설명될 수 있지만, 실제로는 그보다 많은 장치 또는 구조가 제공되거나 형성될 수 있다. 또한, 특정 요소, 구성요소 및 층이 논의되지만, 본 발명에 따른 실시예는 이러한 요소, 구성요소 및 층에 제한되지 않는다. 예를 들어, 논의된 것 외에 다른 요소, 구성요소, 층 등이 있을 수 있다.The drawings are not necessarily drawn to scale and show not only portions of the devices and structures depicted, but also the various layers that form these structures. To simplify discussion and description, only one or two devices or structures may be described, but in practice, more devices or structures may be provided or formed. Additionally, although specific elements, components and layers are discussed, embodiments according to the invention are not limited to such elements, components and layers. For example, there may be other elements, components, layers, etc. than those discussed.
제공된 신규 시스템 및 방법은 CXL 호환 장치의 효율적이고 효과적인 테스트를 제공한다. 일 실시예에서, 시스템 및 방법은 CXL 프로토콜 호환 메모리 DUT로의 기술적 패러다임 전환과 연관된 새롭고 빠르게 확장되는 요구를 해결하는 편리한 테스트 능력을 제공한다. 일 실시예에서, 시스템 및 방법은 CXL 프로토콜 지원 DUT의 효율적이고 비용 절감적인 테스트를 가능하게 한다. 하나의 예시적 구현에서, 시스템 및 방법은 테스트 조건 하에서 DUT 상에서 새로운 CXL 프로토콜 특징을 사용하는 장치를 커버한다.The novel systems and methods presented provide efficient and effective testing of CXL-compliant devices. In one embodiment, the system and method provide convenient test capabilities that address new and rapidly expanding needs associated with the technological paradigm shift to CXL protocol compliant memory DUTs. In one embodiment, the system and method enable efficient and cost-saving testing of CXL protocol-enabled DUTs. In one example implementation, the system and method cover devices using the new CXL protocol features on a DUT under test conditions.
CXL 프로토콜 호환 장치의 테스트와 연관된 문제적 이슈를 해결하기 위해 제공된 시스템 및 방법에는 많은 다양한 신규 측면 및 접근 방식이 존재한다는 것이 인식된다. 일 실시예에서, 제공된 시스템 및 방법은 DUT 테스트 동안 CXL 관련 활동의 효율적이고 효과적인 구현을 가능하게 한다. 하나의 예시적 구현에서, 제공된 시스템 및 방법은 하드웨어 및 소프트웨어 개선을 포함한다.It is recognized that there are many different new aspects and approaches to the systems and methods provided to address problematic issues associated with the testing of CXL protocol compliant devices. In one embodiment, the provided systems and methods enable efficient and effective implementation of CXL-related activities during DUT testing. In one example implementation, the provided systems and methods include hardware and software enhancements.
일 실시예에서, 시스템 및 방법은 CXL 프로토콜을 이용하는 DUT의 테스트를 구현하는 데 필요한 환경을 생성하고 관리하는 측면을 커버한다. CXL DUT가 다양한 타입의 장치를 포함할 수 있음이 인식된다. 일 실시예에서, CXL DUT는 정상적인 비-테스트 동작 하에서 시스템 메모리에 저장 자원을 제공하기 위해 종종 사용되는 다양한 타입의 메모리(예컨대, DRAM, 영구 메모리 등)를 포함할 수 있다. 하나의 예시적 구현에서, DUT는 일반적으로 정상 동작 중에 시스템 메모리 공간 내의 개별 메모리 범위에 할당된다.In one embodiment, the system and method cover aspects of creating and managing the environment necessary to implement testing of a DUT using the CXL protocol. It is recognized that a CXL DUT may include various types of devices. In one embodiment, the CXL DUT may include various types of memory (eg, DRAM, persistent memory, etc.) that are often used to provide storage resources for system memory under normal non-test operation. In one example implementation, the DUT is typically allocated to a separate memory range within the system memory space during normal operation.
도 1a는 일 실시예에 따른 예시적 테스트 방법(10)의 블록도이다.1A is a block diagram of an
블록 1에서는 장치 검출 프로세스가 수행된다. 일 실시예에서, 검출 프로세스는 장치가 CXL 장치인지 여부 및 CXL 장치일 경우 CXL 장치의 특성/특징은 무엇이며 CXL 장치가 호스트 CPU 메모리의 어떤 부분/주소에 할당되는지를 판정하는 것을 포함한다. 장치 검출 프로세스는 열거(enumeration)를 포함할 수 있다. 일 실시예에서, 장치 검출 프로세스는 장치가 CXL 장치라고 완전하게 결정하고 열거를 완료/마무리하기 위해 재부팅을 요구한다. 하나의 예시적 구현에서, 장치 검출 프로세스는 기본 입출력 시스템(BIOS)에 의해 수행된다.In
블록 2에서는 CXL 장치 테스트 조직 프로세스가 수행된다. CXL 장치 테스트 조직 프로세스는 CXL 장치의 테스트를 수행할 테스트 시스템을 조직하고 구성한다. 일 실시예에서, CXL 장치 테스트 조직 프로세스는 다른 구성요소로부터의 유해한 방해로부터 CXL 장치를 격리시키는 것을 포함한다. 하나의 예시적 구현에서, 장치 테스트 조직 프로세스는 다른 구성요소가 CXL 장치에 할당된(예컨대, 위의 블록 1에서 할당된) 메모리 범위의 부분에 액세스하는 것을 방지하는 것을 포함한다. 일 실시예에서, 장치 테스트 조직 프로세스는 장치 검출 프로세스 정보를 검색하고 테스트 보드 결합 위치(예컨대, DUT 슬롯 등)에 기초하여 CXL 장치에 대한 CXL 테스트 참조 또는 이름을 설정하는 것을 포함한다. 하나의 예시적 구현에서, 참조 또는 이름은 이를 생성/인스턴스화한 애플리케이션/스레드 프로세스가 실행 중인 동안 일관되거나 지속된다. 하나의 예시적 구현에서, 장치 테스트 조직 프로세스는 CXL 장치를 테스트 보드 결합 위치 표시자(예컨대, DUT 슬롯 식별자 등)에 매핑하는 장치 매핑 프로세스를 포함한다. 하나의 예시적 구현에서는, 사용자 테스트 사양 요건이 호스트 CPU 명령어 세트로부터 사용 가능한 하드웨어에 매핑된다. CXL 장치에 할당된 메모리 범위의 부분은 이름/식별자에 대응할 수 있다.In
블록 3에서는 CXL 장치 테스트 프로세스가 수행/지시된다. 일 실시예에서, 테스트 워크로드(예컨대, 데이터 패턴, 명령어 등)가 생성된다. 생성은 사용자 지시 기능을 사용자 희망 기능을 달성하는 적절한 CXL 장치 커맨드로 변환하는 것을 포함할 수 있다. 일 실시예에서, 테스트 프로세스는 기능적 성능 테스트(예컨대, 대역폭, 대기 시간, 오류 등)이다. 일 실시예에서, CXL 장치 테스트 프로세스를 지시하는 것은 테스트 워크로드를 생성하는 것을 포함한다. 일 실시예에서, 시스템 및 방법은 유해한 테스트 시스템 특성/특징(예컨대, 호스트 CPU 최적화 등)이 부주의하게/의도하지 않게 테스트 동작을 손상시키는 것을 허용하지 않는다. 일 실시예에서, 다수의 독립적인 병렬 테스트 프로세스가 다수의 CXL DUT에 대해 수행된다.In
일 실시예에서, 사용자 지시 기능을 적절한 CXL 장치 커맨드로 변환하는 것은 사용자 지시 선호도에 따라 적절한 수의 판독 커맨드 및 기록 커맨드를 생성하는 것을 포함한다. 하나의 예시적 구현에서, 사용자는 희망하는 50% 판독 및 50% 기록을 지시한다. 그러나, 실제로 시스템은 호스트로부터의 기록 커맨드에 응답하여 판독 동작도 이용한다. 따라서, 본 시스템 및 방법은 사용자가 요청한 비율(예컨대, 50% 판독 및 50% 기록 등)을 얻기 위해 실제 판독 및 기록의 정확한 비율(예컨대, 2/3 또는 66% 판독 및 2/3 또는 33% 기록 등)에 대한 적절한 워크로드 지시를 자동으로 생성한다.In one embodiment, converting user-indicated functions into appropriate CXL device commands includes generating an appropriate number of read commands and write commands according to user-indicated preferences. In one example implementation, the user indicates a desired 50% read and 50% write. However, in practice the system also utilizes a read operation in response to a write command from the host. Accordingly, the systems and methods may be used to determine the correct ratio of actual reads and writes (e.g., 2/3 or 66% reads and 2/3 or 33%) to obtain a user requested ratio (e.g., 50% reads and 50% writes, etc.). records, etc.) automatically generates appropriate workload instructions.
일 실시예에서, CXL 장치 테스트 조직 프로세스에는 장치 테스트 조직 프로세스 무중단 추가/교체 특징이 포함된다.In one embodiment, the CXL device test organization process includes a device test organization process non-disruptive add/replace feature.
일 실시예에서, 장치 테스트 조직 프로세스는 플러시(flushing) 동작을 포함한다. 하나의 예시적 구현에서, 블록 2의 격리 및 매핑 동작과 연관된 메모리 위치는 해당 CXL DUT가 테스터 시스템으로부터 제거될 때 플러시된다. 플러시 동작은 해당 캐시 항목의 플러시를 포함할 수 있다. 일 실시예에서, 시스템 및 방법은 CXL DUT로 이동하는 커맨드의 시퀀스가 적절함을 보장하고, 대체 커맨드가 테스트 결과/정확성에 악영향을 미칠 경우 호스트 CPU가 (예를 들어, 최적화 프로세스 등의 일부로서) 대체 커맨드를 발행하는 것을 방지한다.In one embodiment, the device test organization process includes a flushing operation. In one example implementation, the memory locations associated with the isolation and mapping operations of
이 설명에서 CXL 장치는 일반적으로 테스트 대상 장치(DUT)라는 점을 이해해야 한다. 일 실시예에서, 테스트 시스템 호스트 CPU 메모리 저장 용량은 CXL 장치가 DUT가 되지 않고도 CXL 장치에 의해 확장될 수 있는데, 여기서 CXL 장치는 호스트에 대한 메모리 확장의 역할을 한다.In this explanation, it should be understood that the CXL device is generally the device under test (DUT). In one embodiment, the test system host CPU memory storage capacity can be expanded by a CXL device without the CXL device becoming a DUT, where the CXL device acts as a memory expansion for the host.
일 실시예에서, 시스템 및 방법은 API를 포함한다. 하나의 예시적 구현에서, 시스템 및 방법은 세 개의 API 그룹을 포함한다. 제1 API 그룹은 테스트 시스템에서 CXL DUT의 전원을 켜고 끌 때 사용자를 자동으로 보조하는 기능을 제공한다. 제2 API 그룹은 사용자 테스트 요건 및 제어 설명의 적절한 CPU 명령어 집합 커맨드 및 CXL 장치 지시/명령어로의 변환 및 관리를 자동으로 처리한다. 제3 API 그룹에는 디버깅 제어를 포함한다. 하나의 예시적 구현에서, API는 편리하고 직관적인 사용자 GUI를 통해 사용자와 통신할 수 있다.In one embodiment, the systems and methods include an API. In one example implementation, the systems and methods include three API groups. The first API group provides functions to automatically assist users when turning on and off the power of the CXL DUT in the test system. The second API group automatically handles the translation and management of user test requirements and control descriptions into appropriate CPU instruction set commands and CXL device instructions/instructions. The third API group includes debugging controls. In one example implementation, the API can communicate with the user through a convenient and intuitive user GUI.
도 1b는 일 실시예에 따른 예시적 테스트 시스템(100)의 블록도이다. 테스트 시스템(100)은 CXL과 호환되는 CXL DUT(121, 122, …, 129) 및 테스터(110)를 포함한다. 테스터(110)는 프로세서(예컨대, CPU(112) 등) 및 메모리(예컨대, DRAM(113) 등)를 포함하는 CXL 호스트(111)를 포함한다. 도 1에서 CXL DUT(121)는 시스템 메모리 범위(131)에 할당되고, CXL DUT(122)는 시스템 메모리 범위(132)에 할당되며, CXL DUT(129)는 시스템 메모리 범위(139)에 할당된다. CXL 프로토콜의 이러한 측면은 테스트 중에 특히 문제가 될 수 있는데, 이는 CXL DUT가 호스트(예컨대, 테스터 CPU 등) 메모리 공간의 일부로 간주될 수 있기 때문이다. 예를 들어, 제공된 신규 시스템 및 방법이 없다면, CXL DUT는 다양한 엔티티(예컨대, 애플리케이션, 스레드, 프로세스 등)에 의해 액세스될 수 있어 테스트 동작에 방해(예컨대, 부적절하게 무시된 데이터, 일관성 이슈 등)를 야기할 수 있고, 신뢰할 수 없는 테스트 결과를 생성할 수 있다. 하나의 예시적 구현에서, 제공된 테스트 시스템 및 방법은 방해(예컨대, 서로 다른 엔티티에 의해 부적절하게 덮어쓴 데이터, 잘못된 판독 동작 등)를 방지한다. Figure 1B is a block diagram of an
일 실시예에서, 제공된 신규 시스템 및 방법은 CXL DUT의 서로 다른 메모리 자원에 대한 테스트 액세스의 조정 및 관리를 제공한다. CXL 테스트를 조정하고 관리하는 데는 다양한 접근 방식이 있다는 점이 인식된다(예컨대, DAX 인터페이스, DUT 할당 메모리 범위 추적 등). 하나의 예시적 구현에서, 제공된 시스템 및 방법은 특정 DUT의 테스트에 대한 바람직하지 않은 방해를 방지한다. 제공된 신규 시스템 및 방법은 CXL DUT의 테스트와 연관된 다른 많은 이슈를 해결/해소하는 데에도 이용될 수 있다. 하나의 장치 테스트 모드 실시예에서, 시스템 및 방법은, CXL 프로토콜 지원 DUT 환경의 페이로드 생성, 장치 열거, 장치의 무중단 추가/교체 지원, CXL 프로토콜과 연관된 고유 테스트 환경 제약 등의 측면과 관련된 이슈를 효율적이고 효과적으로 해결한다.In one embodiment, the novel systems and methods provided provide coordination and management of test accesses to different memory resources of a CXL DUT. It is recognized that there are many different approaches to coordinating and managing CXL tests (e.g., DAX interface, tracking DUT allocated memory ranges, etc.). In one example implementation, the provided systems and methods prevent undesirable interference with testing of specific DUTs. The new systems and methods provided can also be used to solve/resolve many other issues associated with the testing of CXL DUTs. In one device test mode embodiments, the systems and methods address issues related to aspects such as payload generation of a CXL protocol-supported DUT environment, device enumeration, support for non-disruptive addition/replacement of devices, and unique test environment constraints associated with the CXL protocol. Solve problems efficiently and effectively.
도 2는 일 실시예에 따른 예시적 테스트 방법(200)의 블록도이다.Figure 2 is a block diagram of an
블록 210에서는 테스트 대상 장치(DUT)의 테스트를 지시하는 프로세스가 수행되는데, 테스트는 DUT와의 CXL 프로토콜 통신을 포함한다. 일 실시예에서, 테스트를 지시하는 것은 DUT 중 특정 장치가 CXL 호환 장치인지 여부를 판정하는 것을 포함한다. DUT 중 특정 장치가 CXL 호환 장치인지 여부를 판정하는 것은 열거 프로세스의 일부로 수행될 수 있다. 하나의 예시적 구현에서는, 기본 입출력 시스템(BIOS) 동작이 DUT 중 특정 장치가 CXL 호환 장치인지 여부를 판정한다. 테스트를 지시하는 것은 DUT의 특성을 결정하는 것을 포함할 수 있다.In
블록 220에서는 DUT의 테스트 동작들이 서로 유해하게 방해하는 것이 방지된다. 일 실시예에서, DUT의 테스트 동작들이 서로 유해하게 방해하는 것을 방지하는 것은 DUT들에 개별 메모리 범위를 할당하는 것을 포함한다. 하나의 예시적 구현에서는, 사용자 구성 요건이 DUT의 특성에 매핑된다. 하나의 예시적 구현에서는, 사용자 요건에 따라 캐시 액세스가 추적되고 조정된다.In
관리된 무중단 추가/교체Managed non-disruptive addition/replacement
제공된 시스템 및 방법은 CXL 프로토콜과 호환되는 DUT(CXL 장치로도 알려짐)에 대한 사용자 친화적으로 효율적이고 효과적인 관리된 무중단 추가/교체 능력(hot add/swap capability)을 제공하는데, 여기서 특정 DUT의 추가/교체는 다른 DUT의 테스트를 방해하지 않는다. 제공된 시스템 및 방법은 또한 제어 데이터의 손실 없이 테스트 중에 CXL 프로토콜 지원 장치의 무중단 추가/교체를 허용한다. 일 실시예에서, 시스템 및 방법은, 다른 DUT 테스트 동작을 방해하지 않고 테스트 절차를 수행하는 기술자에게 투명한 방식으로 CXL 지원 DUT가 무중단 추가되거나 교체될 수 있도록 하기 위해 필요한 수정을 포함한다. 테스트 중에 장치가 교체되어야 하는 데는 많은 이유가 있다. 예를 들어, (예컨대, 비닝 목적으로, 오류 발생 시 등의 경우에) DUT를 제거하고 다른 DUT를 삽입할 수 있으면, 전반적인 테스트 효율성을 높일 수 있다. 일 실시예에서, 시스템 및 방법은 CXL DUT가 다른 CXL DUT 장치의 테스트 동작을 중단(또는 방해)하지 않으면서 테스터 시스템에서 무중단 추가/교체되도록 허용한다. 하나의 예시적 구현에서, CXL DUT 장치의 추가/교체는 관련 제어 데이터의 손실 없이 수행된다. 일 실시예에 따르면, 호스트 장치 테스터가 복수의 CXL 지원 DUT를 병렬로 테스트하는 중에, 새로운 DUT가 추가될 수 있으며(예컨대, "무중단 추가" 등), 새로운 DUT는 테스트 기술자에게 거의 투명한 방식으로 호스트에 의해 자동으로 인식될 것이다.The provided systems and methods provide user-friendly, efficient and effective managed hot add/swap capability for DUTs (also known as CXL devices) compatible with the CXL protocol, wherein the addition/swap capability of a specific DUT is provided. Replacement does not interfere with testing of other DUTs. The provided systems and methods also allow for non-disruptive addition/replacement of CXL protocol supporting devices during testing without loss of control data. In one embodiment, the system and method include modifications necessary to allow CXL-enabled DUTs to be added or replaced non-disruptively in a manner that is transparent to technicians performing test procedures without interfering with other DUT test operations. There are many reasons why devices may need to be replaced during testing. For example, being able to remove a DUT and insert another DUT (e.g., for binning purposes, when an error occurs, etc.) can increase overall test efficiency. In one embodiment, the system and method allow CXL DUTs to be non-disruptively added/replaced in a tester system without interrupting (or disrupting) the test operation of other CXL DUT devices. In one example implementation, addition/replacement of CXL DUT devices is performed without loss of associated control data. According to one embodiment, while a host device tester is testing multiple CXL-enabled DUTs in parallel, new DUTs can be added (e.g., "add-on-the-fly", etc.) and new DUTs can be added to the host device in a manner that is nearly transparent to the test technician. It will be automatically recognized by .
일 실시예에서, 테스트 기술자는 호스트 테스터 컴퓨터 시스템 상에서 구현된 그래픽 사용자 인터페이스(GUI)와 인터페이스한다. 일 실시예에서, 무중단 추가에 대한 필요/요구 시, 사용자/기술자는 GUI를 이용하여 테스트 일시 중지를 일시적으로 트리거하고, 그런 다음 기술자에 의해 새로운 DUT가 설치되고, 기술자가 다시 GUI와 인터페이스함으로써 테스트 재시작이 트리거된다. 기술자는 특정 DUT에 대한 테스트의 쉬운 일시 중지 및 쉬운 시작 트리거(예컨대, GUI 버튼/아이콘 누르기 등)를 구현하는 것으로 족하고, 시스템 및 방법은 무중단 추가/교체의 다른 복잡한 측면을 편리하게 자동적으로 지시한다. In one embodiment, the test technician interfaces with a graphical user interface (GUI) implemented on a host tester computer system. In one embodiment, upon need/demand for non-disruptive additions, the user/technician uses the GUI to temporarily trigger a test pause, then a new DUT is installed by the technician, and the technician interfaces with the GUI again to test it. A restart is triggered. All the technician needs to do is implement easy pause and easy start triggers (e.g., pressing a GUI button/icon, etc.) of testing for a specific DUT, and the system and method conveniently automatically directs other complex aspects of non-disruptive additions/replacements. .
도 3은 일 실시예에 따른 무중단 추가 테스트 시스템(300)의 블록도이다. 테스트 시스템(300)은 CXL와 호환되는 DUT(321, 322) 및 DUT(329)와 테스터(310)를 포함한다. 테스터(310)는 프로세서(예컨대, CPU(312) 등) 및 메모리(예컨대, DRAM(313) 등)을 포함하는 CXL 호스트(311)를 포함한다. 테스터(310)는 또한 DUT의 호스트 추가/교체를 지시하는 데 사용되는 자동 무중단 추가/교체 관리 구성요소(371)를 포함한다. 테스터(310)는 또한 일시 중지 버튼(392) 및 재시작 버튼(393)을 포함하는 GUI(391)의 구현을 지시하는 데 이용될 수 있다. 도 3에서는, 기술자가 DUT 2 테스트에 대한 일시 중지 GUI 버튼을 누르고 새로운 CXL 장치를 테스트 보드 DUT 2 위치에 삽입한 다음 재시작 GUI 버튼을 누름으로써, 테스트 보드 DUT 2 위치/슬롯의 CXL 장치(예컨대, 322 등)가 무중단 추가된다.Figure 3 is a block diagram of a non-disruptive
시스템은 사용자에게 투명한 여러 동작(예컨대, 탑재, 열거 등)을 자동으로 수행하는데, 이는 모든 DUT와 연관된 현재 테스트 데이터 세트를 저장하고, 그런 다음 다음 전체 시스템을 재부팅하고(예컨대, 새로 추가된 DUT는 BIOS 등에 의해 열거될 수 있음), DUT(예컨대, 새로 추가된 DUT 등을 포함함)와 호스트 간의 통신을 시작하는 것을 포함한다. 그런 다음, 테스트 데이터 동기화도 투명하게 자동으로 발생한다. 재설정하고 부팅한 후, 테스트가 계속된다. 하나의 예시적 구현에서, 관리된 무중단 추가를 가능하게 하도록 구현된 재설정 및 다른 초기화 단계는 제공된 신규 시스템 및 방법에 의해 기술자에게 투명하게 자동으로 수행된다. GUI(예컨대, 도 1 등 참조)는 무중단 추가를 수행하는 데 필요한 몇 가지 수동 단계를 기술자에게 "안내(walk)"/가이드하는 편리한 화면 지침을 표시한다. 일 실시예에서, 기술자는 GUI 상의 버튼/아이콘을 눌러 일시 중지를 트리거한다. 기술자는 또한 마찬가지로 GUI를 사용하여 새로운 DUT가 삽입되었음을 시스템에 알리고 테스트를 재개할 수 있다. 하나의 예시적 구현에서, 관리된 무중단 추가를 수행할 때 어떠한 테스트 제어 데이터도 손실되지 않으며, 무중단 추가를 구현하는 데 필요한 세부사항은 기술자에게 유리하게 숨겨지고 제공된 신규 시스템 및 방법에 의해 자동으로 수행된다.The system automatically performs several operations transparent to the user (e.g. mounting, enumeration, etc.), which saves the current test data set associated with all DUTs, then reboots the entire system (e.g. newly added DUTs are may be enumerated by BIOS, etc.), initiating communication between the DUT (e.g., including newly added DUTs, etc.) and the host. Then, test data synchronization also occurs automatically and transparently. After resetting and booting, testing continues. In one example implementation, reset and other initialization steps implemented to enable managed, non-disruptive additions are performed automatically and transparently to the technician by the novel system and method provided. The GUI (see, e.g., Figure 1, etc.) displays convenient on-screen instructions to “walk”/guide the technician through the few manual steps required to perform a non-disruptive addition. In one embodiment, the technician triggers a pause by pressing a button/icon on the GUI. Technicians can also similarly use the GUI to notify the system that a new DUT has been inserted and resume testing. In one example implementation, no test control data is lost when performing a managed non-disruptive addition, and the details required to implement the non-disruptive addition are advantageously hidden from the technician and performed automatically by the novel system and method provided. do.
또한, 테스트 흐름, 테스트 프로그램 등을 포함하여 그래픽 사용자 인터페이스(GUI)의 다른 개선과 관련된 시스템 및 방법의 추가 측면이 존재한다. 하나의 예시적 구현에서, 제1 흐름과 제2 흐름 사이의 전환은 GUI와의 간단한 상호작용에 의해 편리하게 트리거될 수 있으며, 시스템은 스위치의 구현과 연관된 다른 동작을 자동으로 수행한다(예컨대, 제1 흐름으로부터의 적절한 데이터의 보존을 자동으로 지시하는 등).Additionally, there are additional aspects of the systems and methods related to other improvements to the graphical user interface (GUI), including test flows, test programs, etc. In one example implementation, switching between the first and second flows can be conveniently triggered by simple interaction with the GUI, with the system automatically performing other operations associated with the implementation of the switch (e.g., 1 automatically directs retention of appropriate data from the flow, etc.).
일 실시예에서, 시스템 및 방법은 CXL 프로토콜 호환 DUT로의 기술적 패러다임 전환을 빠르고 효율적으로 해결하고, 새로운 CXL 지원 DUT에 관련된 무중단 추가/교체 테스트 능력에 대한 고객 요구에 응답할 수 있다.In one embodiment, the system and method can quickly and efficiently address the technological paradigm shift to CXL protocol-compliant DUTs and respond to customer demands for non-disruptive addition/replacement test capabilities associated with new CXL-enabled DUTs.
도 4는 일 실시예에 따른 예시적 장치 무중단 추가 테스트 방법(400)의 블록도이다. 블록 410에서, 테스트 대상 장치(DUT)의 무중단 추가와 연관된 지시가 수신되는데, 여기서 테스트는 DUT와의 CXL(compute express link) 프로토콜 통신을 포함하고, DUT는 복수의 테스트 대상 장치(DUT)에 포함된다.Figure 4 is a block diagram of an example device non-disruptive
블록 420에서, 테스트 유예 프로세스(testing suspension process)를 시작하는데, 여기서 테스트 유예 프로세스는 복수의 DUT의 테스트를 유예하고, 테스트 유예 프로세스는 DUT의 무중단 추가와 연관된 지시의 수신에 응답하여 자동으로 수행된다. 테스트 유예 프로세스를 시작하는 것은 복수의 DUT와 호스트 사이의 통신을 포함할 수 있다. 일 실시예에서, 테스트 유예 프로세스를 시작하는 것은 복수의 DUT와 연관된 현재 테스트 데이터 세트를 저장하는 것을 포함한다.At
블록 430에서, DUT를 테스트 시스템에 무중단 추가한 후 테스트를 재개하라는 지시가 수신된다.At
블록 440에서, 테스트 유예 프로세스를 종료하는데, 여기서 테스트 유예 프로세스를 종료하는 것은 테스트를 재개하라는 지시의 수신에 응답하여 자동으로 수행된다. 일 실시예에서, 테스트 유예 프로세스를 종료하는 것은 블록 420에서 저장된 복수의 DUT와 연관된 테스트 데이터 세트를 검색하는 것을 포함한다. 일 실시예에서, 테스트 유예 프로세스를 종료하는 것은 지속적인 테스트를 허용하기 위한, 테스트 데이터 동기화, 재설정 및 시스템 재부팅을 포함한다. 하나의 예시적 구현에서, 탑재 및 열거를 포함하여(예컨대, 테스트 유예 프로세스의 종료는 BIOS 열거 동작 등을 포함함), 테스트 유예 프로세스와 연관된 동작은 사용자에게 투명하다.At
블록 450에서, 복수의 DUT의 테스트가 재개된다.At
일 실시예에서, DUT의 무중단 추가는 다른 DUT와의 무중단 교체와 연관되는데, 여기서 다른 DUT는 테스트 시스템에서 제거된다.In one embodiment, non-disruptive addition of a DUT involves non-disruptive replacement with another DUT, where the other DUT is removed from the test system.
DAXDAX
제공된 신규 시스템 및 방법은 CXL 프로토콜과 호환되는 개별 DUT에 대한 DAX 관리 및 테스트 격리 능력을 제공한다. 일 실시예에서, 시스템 및 방법은 Linux DAX(Direct Access Device) 관련 특징의 신규 테스트 동작 관리 기술에 관한 것이다. 호스트 테스터에 의한 병렬 테스트에서 호스트 테스터와 여러 DUT 사이의 관리(DUT는 CXL을 지원함)는 CXL DUT의 효율적이고 효과적으로 테스트를 가능하게 한다. CXL DUT는 다양한 타입의 메모리(예컨대, DRAM, 영구 메모리, 비영구 메모리 등)를 포함할 수 있다. 테스터 시스템의 시스템 메모리 공간 내에서 CXL DUT의 메모리를 공유하는 대신, 메모리 테스트 관리 기술은 DUT들 간의 메모리 손상을 방지하는 보호 기능을 유리하게 제공한다.The new systems and methods presented provide DAX management and test isolation capabilities for individual DUTs that are compatible with the CXL protocol. In one embodiment, systems and methods relate to novel test operation management techniques for Linux Direct Access Device (DAX) related features. In parallel testing by a host tester, management between the host tester and multiple DUTs (DUTs support CXL) enables efficient and effective testing of CXL DUTs. The CXL DUT may include various types of memory (e.g., DRAM, persistent memory, non-persistent memory, etc.). Instead of sharing the CXL DUT's memory within the tester system's system memory space, memory test management technology advantageously provides protection against memory corruption between DUTs.
새로운 CXL 프로토콜과 연관된 문제적 이슈를 해결하기 위해 DAX 능력을 활용하는 많은 상이한 신규 측면이 존재한다는 것이 인식된다. 일 실시예에서, 제공된 시스템 및 방법은 바람직하지 않은 방해 및 손상(예컨대, DUT의 메모리에 대한 부적절한 기록 등)으로부터 특정 CXL 지원 DUT의 테스트를 격리시키는 것에 관한 것이다. 하나의 예시적 구현에서, 제공된 시스템 및 방법은 또한 CXL 장치 테스트의 다른 측면(예컨대, 병렬 동작을 위한 워크로드 생성 등)에 관한 것이다. 제공된 시스템 및 방법은 테스트의 다양한 측면(예컨대, 개별 DUT에 기초한 테스트, 복수의 DUT/DUT 시스템에 기초한 병렬 테스트의 관리/조정 등)에 초점을 맞출 수 있다는 것이 인식된다.It is recognized that there are many different new aspects that leverage DAX capabilities to solve problematic issues associated with the new CXL protocol. In one embodiment, the provided systems and methods are directed to isolating the testing of a particular CXL-enabled DUT from undesirable interference and damage (e.g., improper writing to the DUT's memory, etc.). In one example implementation, the provided systems and methods also relate to other aspects of CXL device testing (e.g., workload generation for parallel operation, etc.). It is recognized that the provided systems and methods may focus on various aspects of testing (e.g., testing based on individual DUTs, management/coordination of parallel testing based on multiple DUTs/DUT systems, etc.).
일 실시예의 정상 동작 중에, 각 DUT는 시스템 메모리 공간 내의 개별 메모리 범위에 할당된다. 도 5는 일 실시예에 따른 예시적 테스트 시스템(500)의 블록도이다. 테스트 시스템(500)은 CXL과 호환되는 DUT(521, 522) 및 DUT(529)와 테스터(510)를 포함한다. 테스터(510)는 프로세서(예컨대, CPU(512) 등) 및 메모리(예컨대, DRAM(513) 등)을 포함하는 CXL 호스트(511)를 포함한다. 일 실시예에서, CPU(512)는, DAX 인터페이스(551), DAX 인터페이스(552) 및 DAX 인터페이스(559)를 포함하는 DAX 구성요소(550)의 동작을 지시한다. Dax 인터페이스(551)는 DUT(521)에 할당된 독립적 DAX 메모리 범위(571)와의 상호작용을 관리한다. Dax 인터페이스(552)는 DUT(522)에 할당된 독립적 DAX 메모리 범위(572)와의 상호작용을 관리한다. Dax 인터페이스(550)는 DUT(529)에 할당된 독립적 DAX 메모리 범위(579)와의 상호작용을 관리한다. 하나의 예시적 구현에서, CXL DUT(521)는 시스템 메모리 범위(531)에 할당되고, CXL DUT(522)는 시스템 메모리 범위(532)에 할당되며, CXL DUT(129)는 시스템 메모리 범위(539)에 할당된다.During normal operation of one embodiment, each DUT is assigned a separate memory range within the system memory space. Figure 5 is a block diagram of an
제공된 시스템 및 방법이 없다면, 테스트 중에 CXL 지원 DUT는, 테스트 동작에 방해를 일으키고 신뢰할 수 없는 테스트 결과를 생성할 수 있는 테스터 호스트 시스템 공유 메모리 공간의 일부로 간주될 수 있다. 그러나, 제공된 신규 테스트 환경에서의 DAX 인터페이스의 이용/활용은 제시된 테스트 시스템 및 방법이 종래 기술의 테스트 문제/이슈를 극복할 수 있게 한다.Without the provided systems and methods, during testing, a CXL-enabled DUT may be considered part of the tester host system shared memory space, which can disrupt test operations and produce unreliable test results. However, the use/exploitation of the DAX interface in the new test environment provided allows the presented test system and method to overcome the testing problems/issues of the prior art.
일 실시예에서, DAX는, 호스트(예컨대, 테스터 호스트 등)가 Linux를 실행하고 CXL 장치(예컨대, DUT 등)가 Linux 운영 체제의 개별 "장치 공간"마다 상주하는 메모리 관리 인터페이스 기술이다. 따라서, CXL DUT의 메모리 자원은 단순히 호스트 테스터의 시스템 메모리의 확장이 아니라 장치 공간 메모리에 상주하는 것으로 간주된다. DUT 메모리 관리에 DAX를 사용하는 한 가지 장점은 DAX가 호스트로 하여금 각 장치와 개별적으로 통신하고 작업을 수행할 수 있도록 허용한다는 것이다. 이렇게 하면 시스템 상의 어떤 다른 장치로 인해 발생하는 외부 손상(예컨대, DUT 메모리 덮어기록 등)으로부터 DUT의 메모리가 차단된다. 따라서, DUT가 DAX 메모리 인터페이스를 사용하여 관리되는 동안, DUT 메모리는 보호되며 어떠한 다른 장치도 DUT의 "공유" 메모리 부분에 기록할 수 없다.In one embodiment, DAX is a memory management interface technology where a host (e.g., a tester host, etc.) runs Linux and CXL devices (e.g., a DUT, etc.) reside in a separate “device space” of the Linux operating system. Therefore, the CXL DUT's memory resources are considered to reside in device space memory and not simply as an extension of the host tester's system memory. One advantage of using DAX for DUT memory management is that DAX allows the host to communicate with and perform tasks with each device individually. This protects the DUT's memory from external damage caused by any other device on the system (e.g., overwriting DUT memory, etc.). Therefore, while the DUT is managed using the DAX memory interface, the DUT memory is protected and no other device can write to the "shared" memory portion of the DUT.
즉, DAX 인터페이스는 접속된 다른 장치가 접속된 DUT의 메모리 공간에 기록하거나 메모리 공간을 손상시키는 것을 유리하게 방지한다. DAX 메모리 인터페이스의 또 다른 장점은 물리적 주소와 가상 주소 간의 매핑을 직접 관리하고 선택적으로 가상 주소를 물리적 주소와 동일하게 만드는 것에 의해 문제 해결 및 디버그가 훨씬 더 쉬워진다는 것이다. 또한, DUT 메모리가 OS 시스템 메모리에 직접 매핑되지 않기 때문에, DAX 메모리 인터페이스는 DUT 메모리가 불량일 때(예컨대, 자동 충돌을 일으키는 손상 등) 더 높은 수준의 시스템 충돌을 방지한다. 제공된 시스템 및 방법은 공유 시스템 메모리의 일부가 될 장치를 분리된 것으로 간주하고 개별적으로 테스트하는 것을 허용한다.That is, the DAX interface advantageously prevents other connected devices from writing to or corrupting the memory space of the connected DUT. Another advantage of the DAX memory interface is that it makes troubleshooting and debug much easier by directly managing the mapping between physical and virtual addresses and optionally making the virtual addresses the same as the physical addresses. Additionally, because the DUT memory is not directly mapped to OS system memory, the DAX memory interface prevents higher levels of system crashes when the DUT memory becomes bad (e.g. corruption that causes a silent crash). The provided systems and methods allow devices that will be part of shared system memory to be considered separate and tested individually.
또한, DAX 인터페이스를 활용하면 메모리 할당과 연관된 다른 테스트 지연/충돌의 가능성도 줄어든다. 제공된 시스템 및 방법은 새로운 CXL 지원 DUT로의 기술적 패러다임 전환과 관련된 테스트 능력에 대한 빠르게 증가하는 요구에 응답하는 편리한 CXL 장치 테스트 능력을 효율적이고 효과적으로 제공한다. 제공된 시스템 및 방법은 CXL 호환 DUT의 테스트를 구현하는 데 필요한 복잡한 관리/조정 특징과 연관되는 개발 및 생산 비용을 방지/최소화하는 방식으로 이를 수행한다.Additionally, leveraging the DAX interface reduces the potential for other test delays/crashes associated with memory allocation. The presented systems and methods efficiently and effectively provide convenient CXL device test capabilities that respond to the rapidly growing demand for test capabilities associated with the technological paradigm shift to new CXL-enabled DUTs. The provided systems and methods do this in a way that avoids/minimizes the development and production costs associated with the complex management/coordination features required to implement testing of CXL-compliant DUTs.
도 6은 일 실시예에 따른 예시적 장치 테스트 관리 방법(600)의 블록도이다.Figure 6 is a block diagram of an example device
블록 610에서는, CXL(compute express link) 프로토콜 호환 DUT(Device Under Test)에 대해 위치 기반의 지속적 장치 표현 프로세스가 수행된다. 일 실시예에서, 지속적 장치 표현 프로세스를 수행하는 것은 CXL 호환 DUT에 고유한 참조 표시자에 기초하여 CXL 호환 DUT의 특성을 포함하여 CXL 호환 DUT를 할당하고 추적하는 것을 포함하는데, 여기서 참조 표시자는 CXL 호환 DUT가 테스트 보드에 통신 가능하게 결합되는 동안 지속된다. 테스트 보드 위치 기반 이름은 테스터가 CXL 호환 DUT를 타겟으로 할 수 있는 것을 보장하고, CXL 호환 DUT가 로드 보드(load board)에 통신 가능하게 결합되는 동안 지속된다. 하나의 예시적 구현에서, 참조 표시자는 CXL 호환 DUT를 통신 가능하게 결합하는 데 이용된 테스트 보드 위치 슬롯을 기반으로 한다. 지속적 장치 표현은 DUT의 이름 지정을 포함하는데, 여기서 이름은 LINUX 열거의 상단에 자동으로 생성된다.At
블록 620에서는, 장치 파워 업 클린업 프로세스(device power up cleanup process)가 수행된다. 일 실시예에서, 파워 업 프로세스는 장치를 스캐닝하지 않으면서 BIOS 열거 프로세스를 기다리는 것을 포함한다.At
블록 630에서는, 장치 파워 다운 클린업 프로세스가 수행된다. 일 실시예에서, 파워 다운 프로세스는 테스터 내의 호스트에 포함된 중앙 처리 장치(CPU) 및 캐시에 대한 플러시 프로세스(flushing process)를 포함한다. 하나의 예시적 구현에서, 플러시는 CXL 호환 DUT의 테스트와 연관된 동작에서 기록되었던 주소에서 데이터를 플러시하는 것을 포함하는데, 여기서 주소는 CXL 호환 DUT에 매핑된 범위에 포함된다.At
병렬parallel
제공된 신규 시스템 및 방법은 CXL 지원 장치를 병렬로 테스트하기 위한 시스템 및 방법(다중 장치 관리로도 알려짐)을 제공한다. 제공된 신규 시스템 및 방법은 CXL 프로토콜과 호환되는 복수의 DUT/DUT 시스템에 대한 복잡한 독립적 워크로드 생성 및 병렬 테스트 능력을 제공하고 조정/관리한다. CXL 프로토콜은 새로운 프로토콜이고, 그에 따라 테스트 환경에서 CXL 프로토콜을 사용하려면 해결되어야 할 많은 새로운 과제가 존재한다. 종래 기술은 이러한 이슈를 효율적이고 효과적으로 해결하지 못했다. 특히 정상적인 비-테스트 동작 중에, CXL 호환 장치는 시스템 메모리에 공유 저장 자원을 제공하는 데 자주 사용된다. 이는 다수의 CXL DUT를 병렬로 테스트하고자 할 때 특히 문제가 될 수 있다. 본 발명이 없다면, CXL 지원 DUT의 메모리 공간은 테스터 호스트 시스템 메모리 공간의 공유 부분으로 간주될 수 있으며, 다수의 CXL DUT의 테스트를 병렬로 조정하고 각 워크로드를 독립적으로 관리하는 것은 일반적으로 문제가 되고 메모리 손상을 초래할 수 있으며 신뢰할 수 없는 테스트 결과를 생성할 수도 있다.The novel systems and methods presented provide systems and methods for testing CXL-enabled devices in parallel (also known as multiple device management). The new systems and methods provided provide and coordinate/manage complex independent workload generation and parallel test capabilities for multiple DUT/DUT systems compatible with the CXL protocol. The CXL protocol is a new protocol, and as such, there are many new challenges that must be addressed to use the CXL protocol in a test environment. Prior art did not address these issues efficiently and effectively. Especially during normal non-test operation, CXL compatible devices are often used to provide shared storage resources in system memory. This can be especially problematic when trying to test multiple CXL DUTs in parallel. Without the present invention, the memory space of a CXL-enabled DUT could be considered a shared portion of the tester host system memory space, and coordinating the testing of multiple CXL DUTs in parallel and managing each workload independently would typically be problematic. may cause memory corruption and produce unreliable test results.
제공된 신규 시스템 및 방법은 CXL 프로토콜 호환 DUT로의 기술적 패러다임 전환과 연관된 새롭고 빠르게 확장되는 요구에 대한 편리한 CXL 장치 테스트 능력을 제공하는 것에 관한 것이다. 제공된 신규 시스템 및 방법은 다수의 CXL 지원 장치를 병렬로 테스트하기 위한 효율적이고 비용 절감적인 능력에 관한 것이다. 또한, 동일한 CXL 지원 장치의 상이한 여러 메모리 공간이 병렬로 테스트될 수 있다.The new systems and methods presented are directed to providing convenient CXL device test capabilities for new and rapidly expanding needs associated with the technological paradigm shift to CXL protocol-compliant DUTs. The novel systems and methods presented address an efficient and cost-saving ability to test multiple CXL-enabled devices in parallel. Additionally, multiple different memory spaces of the same CXL-enabled device can be tested in parallel.
제공된 신규 시스템 및 방법은 복수의 DUT/DUT 시스템에 걸쳐 독립적인 병렬 테스트를 설정하고 증가시키기 위해 개발된 기술에 관한 것인데, 여기서 DUT는 CXL 프로토콜 지원형이다. 일 실시예에서, 다수의 CXL DUT는 호스트 테스터 시스템에 의해 병렬로 테스트되고, 워크로드는 병렬로 테스트되고 있는 다수의 CXL DUT에 대해 독립적으로 생성 및 관리된다. 또한, 동일한 DUT의 상이한 메모리 공간이 병렬로 테스트될 수도 있다. 일 실시예에서, 제공된 신규 시스템 및 방법은 DUT를 병렬로 테스트하기 위한 최대 유연성을 제공하고, 이러한 유연성과 관련하여 DUT의 테스트를 한계까지 밀어붙인다. 유연하고 독립적인 병렬 테스트 특징은 빠르고 경제적인 CXL DUT 테스트 능력을 제공한다.The novel systems and methods presented relate to techniques developed to establish and increase independent parallel testing across multiple DUT/DUT systems, where the DUTs support the CXL protocol. In one embodiment, multiple CXL DUTs are tested in parallel by a host tester system, and workloads are created and managed independently for multiple CXL DUTs being tested in parallel. Additionally, different memory spaces of the same DUT may be tested in parallel. In one embodiment, the novel systems and methods provided provide maximum flexibility for testing DUTs in parallel and, with respect to this flexibility, push the testing of DUTs to their limits. Flexible, independent parallel test features provide fast and cost-effective CXL DUT test capabilities.
새로운 CXL 프로토콜과 연관된 많은 다양한 문제적 이슈가 있다는 점이 인식된다. 제공된 신규 시스템 및 방법은 동일한 DUT 내에서 및 DUT들에 독립적 워크로드가 적용되는 복수의 DUT/DUT 시스템에서 병렬 테스트를 관리/조정하는 것에 관한 것이다. 제공된 신규 시스템 및 방법은 또한 CXL 장치 테스트의 다른 측면(예컨대, 특정 개별 CXL DUT를 메모리 덮어쓰기로부터 격리하는 것 등)에 관한 것일 수 있다. 제공된 시스템 및 방법은 테스트의 다양한 측면(예컨대, 개별 DUT 기반의 테스트, 복수의 DUT/DUT 시스템 기반의 병렬 테스트의 관리/조정 등)에 초점을 맞출 수 있다는 것이 인식된다.It is recognized that there are many different problematic issues associated with the new CXL protocol. The novel systems and methods presented relate to managing/coordinating parallel testing within the same DUT and across multiple DUT/DUT systems where independent workloads are applied to the DUTs. The novel systems and methods provided may also relate to other aspects of CXL device testing (e.g., isolating specific individual CXL DUTs from memory overwrites, etc.). It is recognized that the provided systems and methods may focus on various aspects of testing (e.g., testing based on individual DUTs, management/coordination of parallel testing based on multiple DUT/DUT systems, etc.).
도 7은 일 실시예에 따른 예시적 테스트 시스템(700)의 블록도이다. 테스트 시스템(700)은 CXL과 호환되는 DUT(721, 722) 및 DUT(729)와 테스터(710)를 포함한다. 테스터(710)는 프로세서(예컨대, CPU(712) 등) 및 메모리(예컨대, DRAM(713) 등)을 포함하는 CXL 호스트(711)를 포함한다. 일 실시예에서, CPU(712)는 워크로드 생성 구성요소(790) 및 DAX 구성요소(750)의 동작을 지시한다. 워크로드 생성 구성요소(790)는 워크로드 명령어를 생성하고 워크로드 인터페이스(791, 792, 791)를 포함한다. 워크로드 인터페이스(791)는 DUT(721)의 워크로드 테스트를 관리한다. 워크로드 인터페이스(792) 및 워크로드 인터페이스(793)는 DUT(722)의 워크로드 테스트를 관리한다. 일 실시예에서 워크로드 인터페이스(792)는 DUT(722)에 있는 메모리의 제1 부분에 대한 워크로드를 관리하고, 워크로드 인터페이스(793)는 DUT(722)에 있는 메모리의 제2 부분에 대한 워크로드를 관리한다. 워크로드 인터페이스(799)는 DUT(729)의 워크로드 테스트를 관리한다. 하나의 예시적 구현에서, CXL DUT(721)는 시스템 메모리 범위(731)에 할당되고, CXL DUT(722)는 시스템 메모리 범위(732)에 할당되고, CXL DUT(729)는 시스템 메모리 범위(739)에 할당된다.Figure 7 is a block diagram of an
일 실시예에서, 워크로드는 테스터가 CXL DUT를 테스트하는 방법을 정의한다. 하나의 예시적 구현에서는, 상이한 파라미터(예컨대, 메모리 범위, 판독/기록 비율, 임의성 비율, 로드 및 저장 횟수 등)를 정의하는 다수의 워크로드가 동일한 호스트 테스터 시스템에 의해 병렬로 테스트되고 있는 CXL 지원 DUT에 독립적이고 개별적으로 할당될 수 있다. 하나의 예시적 구현에서는, 다수의 호스트 스레드가 병렬로 설정될 수 있고(예컨대, 테스트 호스트에서 실행됨), 각 스레드는 상이한 DUT의 특정 메모리 범위 상에서 또는 동일한 DUT 상에서 동작할 수 있다. 메모리 범위는 다양한 구성으로 구현될 수 있다는 것이 인식된다(예컨대, 메모리 범위는 상이한 DUT, 단일 DUT의 상이한 범위 등에 존재할 수 있음). 이를 통해 CXL DUT의 테스트를 위한 테스트 범위 및 독립적 워크로드를 설정하는 데 있어서 유연성이 극대화된다.In one embodiment, the workload defines how the tester tests the CXL DUT. In one example implementation, CXL support where multiple workloads defining different parameters (e.g., memory extent, read/write rate, randomness rate, number of loads and stores, etc.) are being tested in parallel by the same host tester system. Can be assigned independently and individually to the DUT. In one example implementation, multiple host threads can be set up in parallel (e.g., running on a test host), with each thread operating on a specific memory range of a different DUT or on the same DUT. It is recognized that memory ranges may be implemented in a variety of configurations (eg, memory ranges may exist in different DUTs, different ranges of a single DUT, etc.). This provides maximum flexibility in setting up test coverage and independent workloads for testing CXL DUTs.
일 실시예에서, DAX 인터페이스는 테스트 시스템에 대한 다수의 CXL 지원 DUT의 통신 결합을 관리하는 데 이용된다. 하나의 예시적 구현에서, CXL DUT의 메모리 자원은 호스트 테스터의 시스템 메모리의 단순한 "공유" 확장이 아니라 장치 공간 인스턴스화에 "개별적으로" 상주하는 것으로 간주된다. 이러한 구성 특징은 독립적 워크로드와 병행하여 효율적이고 효과적인 CXL DUT 테스트를 용이하게 할 수 있다. 하나의 예시적 구현에서는, 많은 CXL DUT(예컨대, 8, 18 등)가 단일 호스트 테스터 시스템에 결합될 수 있다.In one embodiment, the DAX interface is used to manage the communication coupling of multiple CXL-enabled DUTs to a test system. In one example implementation, the CXL DUT's memory resources are considered to reside "individually" in a device space instantiation rather than simply a "shared" extension of the host tester's system memory. These configuration features can facilitate efficient and effective CXL DUT testing in parallel with independent workloads. In one example implementation, many CXL DUTs (e.g., 8, 18, etc.) may be combined into a single host tester system.
제공된 시스템 및 방법은 다양한 병렬 및 독립적 테스트 구성 시나리오에서 사용되도록 활용/수정될 수 있음이 인식된다. 일 실시예에서는, 상이한 워크로드가 상이한 DUT에 병렬로 적용될 수 있거나, 동일한 워크로드의 상이한 인스턴스가 상이한 DUT에 병렬로 적용될 수 있다. 일 실시예에서는, 다수의 워크로드가 상이한 범위의 DUT 메모리에서 동작하는 각 워크로드와 병렬로 단일 DUT에 할당될 수 있다. (예컨대, 복수의 CXL DUT를 테스트 하는 것 등을 위해) 유사한 워크로드 정의의 다수의 인스턴스가 병렬로 이용될 수 있다. DUT는 다양한 타입의 메모리(예컨대, DRAM, 영구 메모리 등)를 포함할 수 있다.It is recognized that the provided systems and methods can be utilized/modified for use in a variety of parallel and independent test configuration scenarios. In one embodiment, different workloads may be applied in parallel to different DUTs, or different instances of the same workload may be applied in parallel to different DUTs. In one embodiment, multiple workloads may be assigned to a single DUT in parallel with each workload operating on a different range of DUT memory. Multiple instances of a similar workload definition can be used in parallel (e.g., to test multiple CXL DUTs, etc.). The DUT may include various types of memory (eg, DRAM, persistent memory, etc.).
병렬성 증가와 관련하여, 워크로드가 생성되고 다수의 CXL DUT에 걸쳐 개별적으로 및 병렬로 장치에 할당될 수 있는데, 이는 병렬적인 개별/독립 테스트를 위한 높은 수준의 유연성을 가능하게 한다. 또 다른 장점은 각 CXL DUT에 각기의 워크로드를 개별적으로 할당할 수 있으므로 많은 테스트를 병렬로 대기시킬 수 있다는 것이다.Regarding increased parallelism, workloads can be generated and assigned to devices both individually and in parallel across multiple CXL DUTs, enabling a high level of flexibility for parallel individual/independent testing. Another advantage is that each CXL DUT can be individually assigned its own workload, allowing many tests to be queued in parallel.
제공된 시스템 및 방법은 새로운 CXL 지원 DUT에 관련된 테스트 능력에 대한 요구를 해결할 수 있다. 제공된 시스템 및 방법의 유연하고 독립적인 병렬 테스트 특징은 성능과 비용 측면에서 효율적이고 효과적인 테스트 자원에 대한 사용자 요청/욕구를 해결/만족시킬 수 있는 기회를 제공한다.The provided systems and methods can address the need for test capabilities related to new CXL-enabled DUTs. The flexible and independent parallel testing characteristics of the provided systems and methods provide an opportunity to address/satisfy user requests/desires for efficient and effective test resources in terms of performance and cost.
도 8은 일 실시예에 따른 예시적 병렬 테스트 방법(800)의 블록도이다.Figure 8 is a block diagram of an example
블록 810에서는, 테스트 대상 장치(DUT)의 병렬 테스트를 지시하는데, 여기서 테스트는 DUT와의 CXL(compute express link) 프로토콜 통신을 포함하고, DUT는 복수의 DUT에 포함된다. DUT는 복수의 DUT 중 하나이며, DUT의 테스트를 지시하는 것은 테스트 워크로드를 독립적으로 관리하는 것을 포함한다. 테스트는 구성요소 수준 테스트가 아닌 시스템 수준에서 수행된다.Block 810 directs parallel testing of a device under test (DUT), where the test includes compute express link (CXL) protocol communication with the DUT, where the DUT is included in a plurality of DUTs. A DUT is one of multiple DUTs, and directing the test of a DUT involves independently managing the test workload. Testing is performed at the system level rather than component level testing.
블록 820에서는, 복수의 DUT의 테스트 동작이 서로 유해하게 방해하는 것이 방지된다. 일 실시예에서, 테스트는 성능 테스트를 포함한다. 하나의 예시적 구현에서, 테스트는 사용자가 지시한 판독 및 기록 비율에 따라 수행된다.In
도 9는 일 실시예에 따른 교환 프로세스를 구현하고 제어하기 위한 플랫폼으로 사용될 수 있는 예시적 전자 시스템(900)의 블록도이다. 전자 시스템(900)은 "서버" 컴퓨터 시스템일 수 있다. 전자 시스템(900)은 중앙 프로세서(들)(910), 시스템 메모리(915), 벌크 메모리(925)(예컨대, 하드 드라이브, 외부 메모리 등), 입력/출력(I/O) 장치(930), 통신 구성요소/포트(940) 및 버스(950)를 포함한다. 버스(950)는 다른 구성요소들(예컨대, 중앙 프로세서(들)(910), 시스템 메모리(915), 벌크 메모리(925), 입력/출력(I/O) 장치(930), 통신 구성요소/포트(940) 등)을 통신 가능하게 결합하고 이들 사이에서 정보를 전달하도록 구성된다. 중앙 프로세서(들)(910)는 정보 및 명령어를 처리하도록 구성된다. 시스템 메모리(921)(예컨대, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM) 등) 및 벌크 메모리(들)(925)는 중앙 프로세서 컴플렉스(915)에 대한 정보 및 명령어를 저장하도록 구성된다. I/O 장치(들)(930)는 정보를 시스템(예컨대, 중앙 프로세서(910), 메모리(925 등))에 전달할 수 있다. I/O 장치(930)는 전자 시스템(예컨대, 키보드, 버튼, 조이스틱, 트랙볼, 오디오 변환기, 마이크, 터치 감지식 디지타이저 패널, 안구 스캐너, 디스플레이 구성요소, 발광 다이오드(LED) 디스플레이, 플라즈마 디스플레이 장치 등)에 정보 및/또는 커맨드를 전달하기 위한 임의의 적합한 장치일 수 있다. 통신 포트(940)는 외부 장치/네트워크(미도시)와 정보를 교환/통신하도록 구성된다. 통신 포트(940)는 다양한 구성(예컨대, 제한 RS-232 포트, 범용 비동기 수신기 송신기(universal asynchronous receiver transmitter: UART), USB 포트, 적외선 송수신기, 이더넷 포트, IEEE 13394, 동기 포트 등)을 가질 수 있으며, 외부 네트워크와 통신할 수 있다.9 is a block diagram of an example
도 10은 일 실시예에 따른 예시적 테스트 시스템(1000)의 블록도이다. 테스트 시스템(1000)은 전자장치 컴파트먼트(1010) 및 테스터 전자장치(1020), 로드보드(1030), DUT(1070), 및 도어(1091)를 갖는 테스트 챔버(1090)를 포함한다. 전자장치 컴파트먼트(1010)는 제어기(1011) 및 환경 구성요소(1012)를 포함한다. (예컨대, 테스터 전자장치(1020) 등의) 진단 분석을 위해 DUT 대신 향상된 루프백 구성요소가 삽입될 수 있다.Figure 10 is a block diagram of an
도 11은 일 실시예에 따른 예시적 테스트 시스템(1100)의 블록도이다. 이는 오븐 랙(oven rack)(10)과 가열 및 냉각 요소(11)를 포함하는 대형 제어 환경 챔버 또는 오븐(71)으로 구성된다. 오븐 랙(10)은 다수의 로드보드 트레이(31, 32, 33, 34, 41, 42, 43 및 44)에 테스트 대상 장치(DUT)를 포함한다. 환경 테스트 챔버(71)는 테스트 랙(15)을 둘러싸는 견고한 벽과 견고한 도어(72)를 갖는다. 가열 및 냉각 요소(11)는 넓은 온도 범위(예컨대, -10 내지 120℃)를 가질 수 있다. 테스터 또는 테스트 헤드(81)는, 시스템 제어기 네트워크 스위치(52), 시스템 전원 구성요소(53) 및 테스터 슬라이스(50)(테스터 슬라이스는 테스터 전자장치를 포함함)를 포함하는 다양한 랙형 구성요소를 포함한다. 로드보드 트레이(예컨대, 30, 31 등)는 테스터 슬라이스(50)에 접속된다(다수의 로드보드 트레이가 단일 테스터 슬라이스에 결합될 수 있음). 테스터 트레이(30)와 테스트 대상 장치(예컨대, 91, 92 등)의 블록도도 있다. 로드보드 트레이는 테스트 대상 장치로 수동으로 채워진다. 전체 테스터 트레이(예컨대, 30, 31 등)는 환경 챔버(71)에 수동으로 삽입되고, 테스터 전자장치(예컨대, 50, 52, 53 등)에 수동으로 접속된다. 이 프로세스는 노동 집약적이고 번거로울 수 있다(예컨대, 이 프로세스는 환경 챔버(71)의 도어(72)를 열고 트레이를 도어(72)를 통해 적절한 위치에 수동으로 삽입하고자 시도할 것을 요구함). 테스터 전자장치의 진단 분석을 위해 DUT 대신 향상된 루프백 구성요소가 삽입될 수 있다.Figure 11 is a block diagram of an
일 실시예에서, 테스트 시스템은 테스트 동작을 제어하는 장치 인터페이스 보드 및 테스터 전자장치를 포함한다. 테스터 전자장치는 인클로저 내에 위치하여 함께 프리미티브로 지칭될 수 있다. 장치 인터페이스 보드는 테스트 대상 장치의 물리적 조작(예컨대, 수동 조작, 로봇 조작 등)을 허용하는 테스트 대상 장치 액세스 인터페이스를 갖는다. 테스트 대상 장치는 다른 테스트 대상 장치의 테스트 동작에 방해 또는 영향을 거의 또는 전혀 주지 않으면서 물리적으로 독립적으로 조작될 수 있다. 장치 인터페이스 보드와 그 로드보드는 상이한 장치 폼 팩터를 수용하도록 편리하게 설정될 수 있다. 일 실시예에서, 로드보드는 테스트 대상 장치 인터페이스 및 범용 프리미티브 인터페이스로 구성된다. 하나의 예시적 구현에서, 장치 인터페이스 보드는 테스트 대상 장치의 주변 환경을 제어할 수 있다.In one embodiment, the test system includes tester electronics and a device interface board that controls test operations. The tester electronics are located within an enclosure and may together be referred to as primitives. The device interface board has a device under test access interface that allows physical manipulation (eg, manual manipulation, robotic manipulation, etc.) of the device under test. A device under test can be physically operated independently with little or no disruption or effect on the test operation of other devices under test. The device interface board and its loadboard can be conveniently configured to accommodate different device form factors. In one embodiment, the loadboard consists of a device under test interface and a general-purpose primitive interface. In one example implementation, a device interface board may control the surrounding environment of the device under test.
도 12는 일 실시예에 따른 예시적 테스트 시스템(1200)의 블록도이다. 테스트 시스템(1200)은 테스트 프리미티브(1290)(예컨대, 테스트 대상 장치에 대한 테스트 제어 하드웨어 및 전원 구성요소 등을 포함함)와, 프리미티브(1290) 앞에 배치되어 그에 결합된 장치 인터페이스 보드(DIB)(1210)를 포함한다. 일 실시예에서, 장치 인터페이스 보드(1210)는 부분 인클로저이다. 로드보드는 또한 테스트 대상 장치(1220)를 테스트하기 위한 전력 및 고속 전기 신호를 획득하기 위해 프리미티브(1290)에 결합되어 그와 전기적으로 인터페이스한다. 장치 인터페이스 보드는 테스트 대상 장치 환경으로 및 그로부터의 공기 흐름을 허용하는 공기 흐름 채널(1244)을 포함할 수 있다. 공기 흐름 채널(1244)은 배플(baffles)을 포함할 수 있다. 장치 인터페이스 보드(1210)의 부분 인클로저는 테스트 대상 장치에 대한 쉬운 물리적 액세스(예컨대, 방해받지 않거나 방해받지 않는 등)를 가능하게 하는 테스트 대상 장치 액세스 인터페이스(1270)를 포함한다. 환경 제어 구성요소(미도시)는 테스트 대상 장치 주변 환경 조건(예컨대, 온도, 공기 유량 등)에서 장치를 제어하고 유지한다. 환경 제어 구성요소는 테스트 대상 장치의 동작에 대한 외부 환경 조건의 방해를 방지하거나 완화하는 환경 엔빌로프를 생성할 수 있다. (예컨대, 프리미티브(1290) 등에 있는) 테스터 전자장치의 진단 분석을 위해 DUT 대신 향상된 루프백 구성요소가 삽입될 수 있다.Figure 12 is a block diagram of an
본 발명은 바람직한 실시예와 관련하여 설명되었지만, 본 발명이 이들 실시예로 제한되도록 의도된 것은 아니라는 것이 이해될 것이다. 오히려, 본 발명은 대안, 수정, 및 균등물을 커버하도록 의도된 것이다. 본 설명은 본 발명을 완전하게 설명하거나 개시된 정확한 형태로 제한하려는 의도가 아니며, 명백히 많은 수정 및 변경이 가능하다.Although the invention has been described in connection with preferred embodiments, it will be understood that the invention is not intended to be limited to these embodiments. Rather, the invention is intended to cover alternatives, modifications, and equivalents. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously many modifications and variations are possible.
상세한 설명의 일부 부분은 컴퓨터 메모리 내의 데이터 비트에 대한 동작의 절차, 논리 블록, 처리 및 기타 상징적 표현과 관련하여 제공된다. 이러한 설명 및 표현은 데이터 처리 기술의 당업자가 자신의 작업의 본질을 다른 당업자에게 효과적으로 전달하기 위해 일반적으로 사용하는 수단이다. 절차, 논리 블록, 프로세스 등은 여기에서 그리고 일반적으로, 원하는 결과로 이어지는 명령어 또는 단계의 일관된 시퀀스로 간주된다. 단계에는 물리량의 물리적 조작이 포함된다. 반드시 그런 것은 아니지만 일반적으로, 이러한 양은 컴퓨터 시스템에서 저장, 전송, 결합, 비교 및 그 외의 조작될 수 있는 전기, 자기, 광학 또는 양자 신호의 형태를 취한다. 주로 일반적인 사용 상의 이유로, 이러한 신호를 비트, 값, 요소, 기호, 문자, 용어, 숫자 등으로 지칭하는 것이 때로는 편리하다는 것이 입증되었다.Some portions of the detailed description are presented in terms of procedures, logical blocks, processing, and other symbolic representations of operations on data bits within computer memory. These descriptions and representations are commonly used means by those skilled in the art of data processing to effectively convey the substance of their work to others skilled in the art. A procedure, logical block, process, etc. is considered here and generally as a coherent sequence of instructions or steps leading to a desired result. The steps involve physical manipulation of physical quantities. Typically, but not necessarily, these quantities take the form of electrical, magnetic, optical, or quantum signals that can be stored, transmitted, combined, compared, and otherwise manipulated in a computer system. Primarily for reasons of general usage, it has sometimes proven convenient to refer to these signals as bits, values, elements, symbols, letters, terms, numbers, etc.
그러나, 이들 및 유사한 용어 모두는 적절한 물리량과 연관되며 이러한 수량에 적용되는 편리한 라벨일 뿐이라는 것을 명심해야 한다. 논의로부터 명백히 알 수 있는 바와 같이, 달리 구체적으로 언급되지 않는 한, 본 출원 전반에 걸쳐 "처리", "컴퓨팅", "계산", "결정", "디스플레이" 등과 같은 용어를 이용하는 논의는 물리적(예를 들어, 전자적) 양으로 표현된 데이터를 조작하고 변환하는, 컴퓨터 시스템 또는 유사한 처리 장치(예컨대, 전기, 광학 또는 양자 컴퓨팅 장치)의 동작 및 프로세스를 지칭하는 것임이 인식된다. 이 용어는 컴퓨터 시스템의 구성 요소(예컨대, 레지스터, 메모리, 기타 그러한 정보 저장 장치, 전송 또는 디스플레이 장치 등) 내의 물리량을 다른 구성요소 내의 물리량으로 유사하게 표현되는 다른 데이터로 조작하거나 변환하는 처리 장치의 동작 및 프로세스를 지칭한다.However, it should be borne in mind that all of these and similar terms are associated with appropriate physical quantities and are merely convenient labels applied to such quantities. As will be clear from the discussion, and unless specifically stated otherwise, throughout this application any discussion utilizing terms such as “processing,” “computing,” “calculation,” “determination,” “display,” etc. refers to physical ( It is recognized that the term refers to the operations and processes of a computer system or similar processing device (e.g., an electrical, optical, or quantum computing device) that manipulates and transforms data expressed in quantities (e.g., electronically). This term refers to a processing device that manipulates or converts physical quantities within a component of a computer system (e.g., registers, memory, or other such information storage, transmission, or display devices, etc.) into other data similarly expressed by physical quantities within other components. Refers to actions and processes.
본 발명의 실시예는 다양한 상이한 타입의 유형적(tangible) 메모리 또는 스토리지(예컨대, RAM, DRAM, 플래시, 하드 드라이브, CD, DVD 등)와 호환 가능하고 그를 사용하여 구현될 수 있다는 점이 인식된다. 메모리 또는 스토리지는 변경 또는 재기록이 가능하지만 비일시적 저장 매체로 간주될 수 있다. 비일시적 저장 매체를 표시함으로써 매체의 특성을 제한하려는 것이 아니며, 다양한 저장 매체(예컨대, 프로그래밍 가능, 삭제 가능, 프로그래밍 불가능, 판독/기록, 판독 전용 등)를 포함할 수 있고, "비일시적" 컴퓨터 판독가능 매체는 일시적 전파 신호만을 제외한 모든 컴퓨터 판독가능 매체를 포함할 수 있다.It is recognized that embodiments of the invention may be compatible with and implemented using a variety of different types of tangible memory or storage (e.g., RAM, DRAM, flash, hard drive, CD, DVD, etc.). Memory or storage can be considered a storage medium that can be changed or rewritten but is non-transitory. By referring to a non-transitory storage medium, we do not intend to limit the nature of the medium, and may include a variety of storage media (e.g., programmable, erasable, non-programmable, read/write, read-only, etc.), and may include "non-transitory" computer media. Readable media may include any computer-readable media except only transient propagated signals.
설명은 새로운 접근법과 연관된 예시적 개념 또는 실시예를 포함한다는 것이 인식된다. 또한 목록은 완전하지 않으며 가능한 모든 구현을 반드시 포함하는 것은 아니라는 것이 인식된다. 개념 및 실시예는 하드웨어, 펌웨어, 소프트웨어 등으로 구현될 수 있다. 일 실시예에서, 방법 또는 프로세스는 다양한 처리 구성요소 또는 유닛에 의해 수행되는 동작을 설명한다. 하나의 예시적 구현에서, 방법, 프로세스, 동작 등과 연관된 명령어 또는 지시는 메모리에 저장될 수 있고, 프로세서로 하여금 동작, 기능, 액션 등을 구현하게 할 수 있다.It is recognized that the description includes example concepts or embodiments associated with the new approach. It is also recognized that the list is not exhaustive and does not necessarily include all possible implementations. Concepts and embodiments may be implemented in hardware, firmware, software, etc. In one embodiment, a method or process describes operations performed by various processing components or units. In one example implementation, instructions or instructions associated with a method, process, operation, etc. may be stored in memory and cause a processor to implement the operation, function, action, etc.
본 발명의 특정 실시예에 대한 전술한 설명은 예시 및 설명의 목적으로 제공되었다. 이들은 완전하지 않으며 본 발명을 개시된 정확한 형태로 제한하려는 것이 아니며, 명백히 전술한 교시에 비추어 많은 수정 및 변경이 가능하다. 실시예는, 본 발명의 원리 및 그 실제 적용을 가장 잘 설명함으로써 당업자로 하여금 고려되는 특정 용도에 적합한 다양한 수정을 통해 본 발명 및 다양한 실시예를 가장 잘 활용할 수 있게 하기 위해 선택되고 설명되었다. 본 발명의 범위는 본 명세서에 첨부된 청구범위 및 그 균등물에 의해 정의되는 것으로 의도된다. 방법 청구항 내의 단계의 목록은, 청구항에 명시적으로 언급되지 않는 한, 그러한 단계를 수행하는 임의의 특정한 순서를 암시하지 않는다.The foregoing description of specific embodiments of the invention has been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously many modifications and variations are possible in light of the foregoing teachings. The examples have been selected and described in order to best illustrate the principles of the invention and its practical application, thereby enabling those skilled in the art to best utilize the invention and its various embodiments with various modifications as appropriate to the particular application contemplated. The scope of the present invention is intended to be defined by the claims appended hereto and their equivalents. Listings of steps in a method claim do not imply any particular order in which those steps are performed, unless explicitly recited in the claim.
Claims (19)
상기 시스템과의 사용자 상호작용을 가능하게 하도록 구성된 사용자 인터페이스와,
복수의 테스트 대상 장치(device under test: DUT)들과 통신 가능하게 결합되도록 구성된 테스트 보드 - 상기 DUT들은 CXL(compute express link) 프로토콜과 호환됨 - 와,
상기 복수의 DUT들의 테스트를 지시하도록 구성된 테스터 - 상기 테스터는 상기 복수의 DUT들에 걸쳐 유연하고 독립적인 병렬 테스트를 관리하는 것을 포함하여 상기 복수의 DUT들의 테스트를 관리함 - 를 포함하는,
테스트 시스템.
As a test system,
a user interface configured to enable user interaction with the system;
A test board configured to be communicatively coupled to a plurality of devices under test (DUT), the DUTs being compatible with the CXL (compute express link) protocol,
A tester configured to direct testing of the plurality of DUTs, wherein the tester manages testing of the plurality of DUTs, including managing flexible and independent parallel testing across the plurality of DUTs.
test system.
상기 테스터는 상기 복수의 DUT들에 포함된 DUT들에 대해 독립적으로 워크로드(workloads)를 생성하고 관리하는,
테스트 시스템.
According to paragraph 1,
The tester independently creates and manages workloads for the DUTs included in the plurality of DUTs,
test system.
상기 DUT들은 메모리 장치이고, 상기 테스터는 상이한 메모리 공간들을 병렬로 테스트하도록 구성되고, 상기 상이한 메모리 공간들은 상기 복수의 DUT들에 포함되는,
테스트 시스템.
According to paragraph 1,
The DUTs are memory devices, and the tester is configured to test different memory spaces in parallel, wherein the different memory spaces are included in the plurality of DUTs.
test system.
상기 DUT들은 메모리 장치이고, 상기 테스터는 상이한 메모리 공간들을 병렬로 테스트하도록 구성되고, 상기 상이한 메모리 공간들은 상기 복수의 DUT들에 포함된 DUT들 중 하나 내에 있는,
테스트 시스템.
According to paragraph 1,
the DUTs are memory devices, and the tester is configured to test different memory spaces in parallel, the different memory spaces being within one of the DUTs included in the plurality of DUTs,
test system.
상기 DUT들의 개별 특성에 기초하여 워크로드가 생성되고 개별적으로 관리되는,
테스트 시스템.
According to paragraph 1,
A workload is created and individually managed based on the individual characteristics of the DUTs,
test system.
상기 테스트는 성능 테스트를 포함하는,
테스트 시스템.
According to paragraph 1,
The tests include performance tests,
test system.
상기 테스트는 대역폭 테스트를 포함하는,
테스트 시스템.
According to paragraph 1,
The test includes a bandwidth test,
test system.
상기 테스트는 대기 시간(latency) 테스트를 포함하는,
테스트 시스템
According to paragraph 1,
The test includes a latency test,
test system
상기 테스트는 오류 테스트를 포함하는,
테스트 시스템.
According to paragraph 1,
The test includes error testing,
test system.
테스트 대상 장치(DUT)의 병렬 테스트를 지시하는 단계 - 상기 테스트는 상기 DUT와의 CXL(compute express link) 프로토콜 통신을 포함하고, 상기 DUT는 복수의 DUT들에 포함됨 - 와,
상기 복수의 DUT들의 테스트 동작이 서로 유해하게 방해하는 것을 방지하는 단계를 포함하는,
테스트 방법.
As a test method,
Instructing parallel testing of a device under test (DUT), wherein the test includes compute express link (CXL) protocol communication with the DUT, and the DUT is included in a plurality of DUTs,
Preventing test operations of the plurality of DUTs from detrimentally interfering with each other,
How to test.
상기 DUT는 복수의 DUT들 중 하나이고, 상기 DUT의 테스트를 지시하는 것은 테스트 워크로드를 독립적으로 관리하는 것을 포함하는,
테스트 방법.
According to clause 10,
The DUT is one of a plurality of DUTs, and directing testing of the DUT includes independently managing a test workload,
How to test.
상기 테스트는 성능 테스트를 포함하는,
테스트 방법.
According to clause 10,
The tests include performance tests,
How to test.
상기 테스트는 사용자가 지시한 판독 및 기록의 비율에 따라 수행되는,
테스트 방법.
According to clause 10,
The test is performed according to the ratio of reading and recording indicated by the user,
How to test.
상기 테스트는 구성요소 수준 테스트(component level testing)가 아닌 시스템 수준(system level)에서 수행되는,
테스트 방법
According to clause 10,
The test is performed at the system level rather than component level testing,
How to test
상기 DUT는 CXL 타입 3 메모리 확장 장치인,
테스트 방법.
According to clause 10,
The DUT is a CXL type 3 memory expansion device,
How to test.
상기 지시하는 것은 상기 DUT 내에서 무작위로 생성된 주소 위치의 테스트를 포함하는,
테스트 방법.
According to clause 10,
The instructions include testing of randomly generated address locations within the DUT,
How to test.
상기 시스템과의 사용자 상호작용을 가능하게 하도록 구성된 사용자 인터페이스와,
테스트 대상 장치(DUT)와 통신 가능하게 결합되도록 구성된 테스트 보드 - 상기 DUT는 CXL(compute express link) 프로토콜과 호환됨 - 와,
상기 DUT의 테스트를 지시하도록 구성된 테스터 - 상기 테스터는 상기 DUT의 테스트를 관리하고, 상기 테스터는 복수의 테스트 스레드를 개시하도록 구성되고, 상기 복수의 테스트 스레드는 상기 DUT 내의 각각의 복수의 범위에 대응하고, 상기 테스터는 유연하고 독립적인 병렬 방식으로 상기 DUT 내의 각각의 복수의 범위에 대한 테스트를 관리하도록 구성됨 - 를 포함하는,
테스트 시스템.
As a test system,
a user interface configured to enable user interaction with the system;
a test board configured to be communicatively coupled to a device under test (DUT), wherein the DUT is compatible with the compute express link (CXL) protocol;
A tester configured to direct testing of the DUT, wherein the tester manages testing of the DUT, wherein the tester is configured to initiate a plurality of test threads, the plurality of test threads corresponding to each of a plurality of ranges within the DUT. and wherein the tester is configured to manage testing for each of the plurality of ranges within the DUT in a flexible and independent parallel manner.
test system.
테스트가 각각의 복수의 테스트 스레드에 대한 독립적 워크로드 생성을 기반으로 하는,
테스트 시스템.
As a test system,
Where testing is based on generating independent workloads for each of multiple test threads,
test system.
테스트가 성능 테스트를 포함하는,
테스트 시스템.As a test system,
If the test includes performance testing,
test system.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263408809P | 2022-09-21 | 2022-09-21 | |
US63/408,809 | 2022-09-21 | ||
US18/129,414 | 2023-03-31 | ||
US18/129,414 US20240095136A1 (en) | 2022-09-21 | 2023-03-31 | Systems and methods for testing cxl enabled devices in parallel |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240040654A true KR20240040654A (en) | 2024-03-28 |
Family
ID=90482901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230125486A KR20240040654A (en) | 2022-09-21 | 2023-09-20 | Systems and Methods for Testing CXL Enabled Devices in Parallel |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240040654A (en) |
-
2023
- 2023-09-20 KR KR1020230125486A patent/KR20240040654A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6874060B2 (en) | Distributed computer system including a virtual disk subsystem and method for providing a virtual local drive | |
US10261803B2 (en) | Systems and methods for in-situ fabric link optimization in a modular information handling system chassis | |
US8028184B2 (en) | Device allocation changing method | |
US9864614B2 (en) | Mapping virtual devices to computing nodes | |
US9131031B2 (en) | Virtual computer system, virtual computer management program, and MAC address management method | |
US20240095137A1 (en) | MANAGEMENT OF HOT ADD IN A TESTING ENVIRONMENT FOR DUTs THAT ARE CXL PROTOCOL ENABLED | |
US20180081849A1 (en) | Verifying a communication bus connection to a peripheral device | |
KR20240040654A (en) | Systems and Methods for Testing CXL Enabled Devices in Parallel | |
KR20240040651A (en) | CXL PROTOCOL ENABLEMENT for TEST ENVIRONMENT SYSTEMS and METHODS | |
KR20240040653A (en) | Systems and Methods utilizing DAX Memory Management for testing CXL Protocol Enabled Devices | |
KR20240040652A (en) | Management of HOT ADD in a Testing Environment for DUTs that are CXL Protocol Enabled | |
TWI855840B (en) | Cxl protocol enablement for test environment systems and methods | |
TWI854804B (en) | Systems and methods utilizing dax memory management for testing cxl protocol enabled devices | |
US8688889B2 (en) | Virtual USB key for blade server | |
US11093301B2 (en) | Input output adapter error recovery concurrent diagnostics | |
US7032055B2 (en) | Device control and configuration | |
US6922746B2 (en) | Data processing system preventing configuration cycles to permit control procedure selection for access to attached devices | |
CN116055331A (en) | Full-function Ethernet physical layer chip simulator and method | |
JP2012208539A (en) | Virtual machine management device and virtual machine management program | |
JP2006235665A (en) | Command tester |