CXL-SpecsReview

[CXL] 2. CLX System Architecture - part 1

PCIeMaster 2023. 12. 21. 17:50

장은 CXL 성능 이점과 주요 기능을 설명합니다. CXL 전통적인 비일관성 I/O 장치, 메모리 장치 또는 추가 기능을 갖춘 가속기와 같은 주변 장치를 상호 연결하는 사용되는 고성능 I/O 버스 아키텍처입니다. CXL 통해 연결할 있는 장치 유형과 전체 시스템 아키텍처는 Figure  2-1 설명되어 있습니다.

타입 2 타입 3 장치 메모리가 호스트에 노출될 , 이를 호스트 관리 장치 메모리 (HDM)라고 합니다. 메모리의 일관성 관리에는 호스트 전용 일관성 (HDM-H), 장치 일관성 (HDM-D), Back-Invalidate Snoop 사용한 장치 일관성 (HDM-DB)이라는 3가지 옵션이 있습니다. 호스트와 장치는 주소 영역의 HDM 유형에 대한 공통의 이해를 가져야 합니다. 자세한 내용은 섹션 3.3 참조하십시오.

 

유형의 CXL 장치에 대한 자세한 내용을 살펴보기 전에, CXL 적용되지 않는 경우에 대한 서문을 제공합니다.

 

전통적인 비일관성 I/O 장치는 주로 표준 생산자-소비자 순서 모델을 기반으로 하며 호스트에 연결된 메모리에서 실행됩니다. 이러한 장치들은 주로 작업 제출 작업 완료 경계에서의 신호 전달을 제외하고는 호스트와의 상호 작용이 거의 없습니다. 이러한 가속기들은 또한 데이터 스트림이나 연속 데이터 객체에서 작동하는 경향이 있습니다. 이러한 장치들은 일반적으로 CXL에서 제공하는 고급 기능이 필요하지 않으며, 전통적인 PCIe* 가속기에 연결된 매체로 충분합니다.

 

2.1 CXL Type 1 Device

CXL 타입 1 장치는 완전히 일관성 있는 캐시를 장치에 가지는 것이 가치 있는 특수한 요구 사항이 있습니다. 이러한 장치들에 대해서는 표준 생산자-소비자 순서 모델이 잘 작동하지 않습니다. 특수한 요구 사항을 갖는 장치의 한 예로는 PCIe에 포함되지 않은 복잡한 원자 연산을(atomic operations) 수행하는 것이 있습니다.

기본 캐시 일관성을 통해 가속기는 선택한 순서 모델을 구현하고 무제한의 원자 연산을 구현할 수 있습니다. 이러한 원자 연산은 표준 프로세서 스눕 필터( snoop filter) 메커니즘에 의해 쉽게 추적될 수 있는 작은 용량의 캐시만 필요로 합니다. 이러한 장치에 대한 지원 가능한 캐시 크기는 호스트의 스눕 필터링 용량에 따라 달라집니다. CXL은 이러한 장치를 지원하기 위해 선택적으로 CXL.cache 링크를 사용하며, 가속기는 CXL.cache 프로토콜을 사용하여 캐시 일관성 트랜잭션을 수행할 수 있습니다.

 

2.2. CXL Type 2 Device

 

CXL 타입 2 장치는 가지 프로토콜(CXL.cache, CXL.mem CXL.io) 모두 협상하는 장치입니다. 완전히 일관성 있는 캐시 외에도 CXL 타입 2 장치에는 장치에 부착된 메모리(: DDR, High-Bandwidth Memory (HBM) ) 있습니다. 이러한 장치는 메모리를 기반으로 실행되지만 가속기와 장치에 부착된 메모리 간의 대량의 대역폭에서 성능을 얻습니다. CXL 주요 목표는 호스트가 피연산자를 장치에 부착된 메모리로 전송하고, 장치가 결과를 장치에 부착된 메모리에서 끄집어 내는 수단을 제공하여, 가속기의 이익을 상쇄시킬 소프트웨어 하드웨어 비용을 추가하지 않는 것입니다. spec에서는 일관된 시스템 주소 매핑 장치 부착 메모리를 호스트 관리 장치 메모리 장치 관리 일관성(HDM-D/HDM-DB)으로 참조합니다.

 

HDM 전통적인 I/O PCIe Private Device Memory (PDM) 간에 중요한 차이가 있습니다. 이러한 장치의 예로는 GDDR 부착된 GPGPU 있습니다. 이러한 장치는 장치에 부착된 메모리를 개인적으로 처리합니다. , 메모리는 호스트에서 접근할 없으며 시스템의 나머지 부분과 일관성이 없습니다. 메모리는 장치 하드웨어와 드라이버에 의해 완전히 관리되며 주로 장치에 대한 대량 데이터 세트의 중간 저장소로 사용됩니다. 이러한 모델의 명백한 단점은 피연산자가 가져와지고 결과가 다시 기록될 호스트 메모리에서 장치에 부착된 메모리로의 고대역폭 복사가 포함된다는 것입니다. CXL PDM 갖는 장치를 배제하지 않음에 유의하십시오.

고수준에서, HDM 장치 일관성을 해결하는 데는 가지 방법이 있습니다. 번째 방법은 HDM 일관성을 관리하기 위해 CXL.cache 사용하며 "장치 일관성"으로 언급됩니다. 흐름을 지원하는 메모리 영역은 "D" 접미사로 표시됩니다 (HDM-D). 번째 방법은 CXL.mem 전용 채널인 Back Invalidate Snoop 사용하며 "DB" 접미사로 표시됩니다 (HDM-DB). 다음 섹션에서는 이러한 방법에 대해 자세히 설명하겠습니다.

 

2.2.1 Back-Invalidate Snoop Coherence for HDM-DB

 

HDM-DB 사용하는 타입 2 타입 3 장치의 경우, 프로토콜은 CXL.mem 프로토콜에서 호스트로 직접 Snooping 허용하는 새로운 채널을 활성화합니다. 이를 위해 전용 Back-Invalidate Snoop (BISnp) 채널이 사용됩니다. Snooping 대한 응답 채널은 Back-Invalidate Response (BIRsp) 채널입니다. 이러한 채널은 캐시 라인에 대한 일관성을 추적하는 포괄적인 스눕 필터를 사용하여 장치가 호스트에 의해 BISnp 메시지가 처리될 때까지 새로운 M2S 요청을 차단할 있도록 장치에 유연성을 제공합니다. HDM-DB 사용할 Section 2.2.2에서 설명한 모든 장치 일관성 추적 옵션이 가능하지만, HDM-DB 경우 HDM-DB 호스트로의 일관성 플로우는 CXL.mem S2M BISnp 채널만 사용하고 D2H CXL.cache Request 채널은 사용하지 않아야 합니다. HDM-DB 지원은 256B Flit 모드를 구현한 모든 장치에 필요하지만, HDM-D 플로우는 68B Flit 모드와의 호환성을 위해 지원됩니다.

 

HDM-DB에서 사용되는 플로에 대한 자세한 내용은 Section 3.5.1, "CXL.mem에서 Back Invalidate Snoops 플로" 참조하십시오.

 

2.2.2. Bias-based Coherency Model for HDM-D Memory

 

특정 장치에 부착된 호스트 관리 장치 메모리(HDM) 해당 장치에 로컬하게 존재하는 것으로 표시되며, 이를 "장치에 부착된 메모리"라고 합니다. Bias기반 일관성 모델은 장치에 부착된 메모리의 가지 바이어스 상태를 정의합니다: 호스트 바이어스와 장치 바이어스.

장치에 부착된 메모리가 호스트 바이어스 상태에 있을 , 해당 메모리는 장치에게 일반적인 호스트 부착 메모리처럼 보입니다. , 장치가 메모리에 접근해야 경우, 호스트에게 요청을 보내고 호스트는 요청된 라인에 대한 일관성을 해결합니다.

반면에 장치에 부착된 메모리가 장치 바이어스 상태에 있을 , 장치는 해당 라인이 호스트의 어떤 캐시에도 없음이 보장됩니다. 따라서 장치는 호스트에게 어떠한 트랜잭션(요청, 스눕 ) 전송하지 않고도 해당 메모리에 액세스할 있습니다. 중요한 점은 호스트 자체가 바이어스 상태에 관계없이 장치에 부착된 메모리를 동일한 관점에서 본다는 것입니다. 모드에서 장치에 부착된 메모리의 일관성이 유지됩니다.

 

Bias 기반 일관성 모델의 주요 이점은 다음과 같습니다:

 

  • 시스템 일관성 주소 공간에 매핑된 장치에 부착된 메모리의 일관성을 유지하는 데 도움이 됩니다.
  • 장치가 상당한 일관성 오버헤드(: 호스트로의 스눕) 발생시키지 않고 로컬에 부착된 메모리에 높은 대역폭으로 액세스할 있도록 도움이 됩니다.
  • 호스트가 호스트 부착 메모리와 마찬가지로 일관된, 균일한 방식으로 장치에 부착된 메모리에 액세스할 있도록 도움이 됩니다.

바이어스 모드를 유지하기 위해 CXL 타입 2 장치는 다음을 수행할 것입니다:

 

  • 페이지 단위 바이어스를 추적하는 Bias Table을 구현합니다(예: 4KB 페이지당 1개). 이 테이블은 Bias Cache를 사용하여 장치에 캐시될 수 있습니다.
  • 전환 에이전트(Transition Agent, TA) 사용하여 바이어스 전환을 지원합니다. 이는 본질적으로 해당 페이지에 속한 라인에 대한 호스트 캐시를 플러시하는 작업을 수행하는 "DMA 엔진"처럼 보입니다.
  • 호스트의 이익을 위해 기본적인 로드 저장 액세스를 가속기 로컬 메모리에 대해 지원합니다.

바이어스 모드에 대한 자세한 내용은 아래에서 설명합니다.

2.2.2.1 Host Bias

호스트 바이어스 모드는 일반적으로 작업 제출 중에 호스트가 메모리에 피연산자를(변수) 쓰거나 작업 완료 후에 메모리에서 결과를 읽는 부분을 나타냅니다. 호스트 바이어스 모드 동안 일관성 플로우는 호스트에서 장치에 부착된 메모리로의 고처리량 액세스를 허용합니다(Figure 2-4에서 양방향 파란색 화살표로 나타남 - 호스트 관리 장치 메모리, CXL 장치의 DCOH 호스트의 Home Agent 간에). 반면에 장치가 장치에 부착된 메모리에 액세스하는 것은 최적이 아닙니다. 왜냐하면 장치는 호스트를 통과해야 하기 때문입니다(Figure 2-4에서 초록색 화살표로 나타남 - CXL 장치의 DCOH 호스트의 일관성 브리지, CXL 장치의 DCOH 호스트 관리 장치 메모리 간에 순환).

 

2.2.2.2. Device Bias

장치 바이어스 모드는 장치가 작업을 실행하는 동안, 작업 제출과 완료 사이, 모드에서 장치는 장치에 부착된 메모리에 대한 고대역폭 저지연 액세스가 필요합니다. 모드에서 장치는 호스트의 일관성 엔진을 참조하지 않고도 장치에 부착된 메모리에 액세스할 있습니다(Figure 2-5에서 빨간색 화살표로 나타남 - CXL 장치의 DCOH 호스트 관리 장치 메모리 간에 순환). 호스트는 여전히 장치에 부착된 메모리에 액세스할 있지만 가속기에 의해 소유권을 포기해야 있습니다(Figure 2-5에서 초록색 화살표로 나타남 - CXL 장치의 DCOH 호스트의 일관성 브리지 간에 순환). 결과적으로 장치는 장치에 부착된 메모리로부터 이상적인 지연 대역폭을 있지만, 호스트는 성능이 저하된 상태일 있습니다.

 

2.2.2.3 Mode Management

편향 모드 관리에는 두 가지 기대되는 방식이 있습니다 - 소프트웨어 지원 및 하드웨어 자율적인 방식. CXL은 두 모드를 모두 지원합니다. 편향 플로의 예시는 부록 A에 있습니다. 아래에서 두 모드를 설명하지만, 장치는 어떤 편향도 구현할 필요가 없다는 점에 유의하는 것이 중요합니다. 이 경우 모든 장치에 부착된 메모리는 호스트 바이어스로 변합니다. 이는 장치에 부착된 메모리로의 모든 액세스가 호스트를 통해 라우팅되어야 함을 의미합니다. 가속기는 소프트웨어 지원 및 하드웨어 자율적인 편향 관리 방식의 사용을 선택할 수 있습니다. 호스트 구현은 위의 선택 중 어떤 것이든 상관하지 않습니다.

 

2.2.2.3.1 Software-assisted Bias Mode Management

소프트웨어 어시스턴스를 사용하면 특정 페이지가 작업 실행 플로우의 어느 상태에 있는지를 알 수 있도록 소프트웨어에 의존합니다. 이는 단계별 계산 및 정기적인 액세스 패턴을 갖는 가속기에 유용합니다. 이를 기반으로 소프트웨어는 페이지의 일관성 성능을 페이지 단위로 최적화할 수 있도록 호스트 또는 장치 바이어스 모드를 적절히 선택할 수 있습니다.

다음은 소프트웨어 지원 편향 모드 관리의 몇 가지 특성입니다:

  • 가속기 전에 데이터를 준비:
    • 소프트웨어 어시스턴스를 사용하면 계산이 시작되기 전에 데이터를 가속기에 미리 준비할 수 있습니다.
    • 데이터가 미리 가속기 메모리로 이동되지 않은 경우, 일반적으로 가속기가 데이터를 참조하려고 시도할 때 수요에 따라 이동합니다.
  • 수요에 따른 데이터 검색:
    • "수요에 따른" 데이터 검색 시나리오에서 가속기는 이미 올바르게 배치된 데이터를 사용하여 실행할 작업을 찾아야 합니다.
    • 가속기가 그러한 작업을 찾을 수 없으면 가속기는 데이터가 이용 가능해질 때까지 기다려야 할 수 있습니다.
    • 가속기가 기다리는 동안 매 순간이 소프트웨어가 코어에서 실행되는 것보다 가치를 차지하게 됩니다.
  • 지연 고려:
    • 단순한 가속기는 일반적으로 데이터 검색 지연을 숨길 수 있는 능력이 제한되기 때문에 도전을 겪습니다.
    • 효율적인 소프트웨어 지원 데이터/일관성 관리는 이러한 단순한 가속기의 성능을 위해 중요합니다.

요약하면 소프트웨어 어시스턴스는 미리 데이터를 준비하여 수요에 따른 데이터 검색을 최소화하고 가속기의 기다림을 최소화합니다. 이는 데이터 검색 지연을 숨기는 능력이 제한된 단순한 가속기에 특히 중요합니다.

 

2.2.2.3.2 Hardware Autonomous Bias Mode Management

 

소프트웨어 지원 일관성/데이터 관리는 간단한 가속기에 이상적이지만, 복잡하고 프로그램 가능한 가속기에는 상대적으로 가치가 덜합니다. 동시에 GPU와 같은 복잡하고 프로그램 가능한 가속기에 매핑되는 복잡한 문제는 소프트웨어 지원 일관성/데이터 이동이 필요한 경우 프로그래머에게 엄청나게 복잡한 문제를 제시합니다. 특히 호스트와 가속기 간의 계산을 분할하거나 포인터 기반, 트리 기반, 또는 희소 데이터 세트와 같은 문제의 경우 이는 특히 참된 것입니다.

 

반면에 하드웨어 자율 편향 모드 관리는 페이지 수준의 일관성 편향을 적절하게 관리하기 위해 소프트웨어에 의존하지 않습니다. 대신, 특정 페이지에 대한 요청자를 기반으로 하드웨어가 편향 모드에 대한 예측을 수행하고 그에 따라 적응합니다. 이 모델의 주요 이점은 다음과 같습니다:

  • 소프트웨어 지원 모델과 동일한 페이지 단위의 일관성 편향 기능을 제공합니다.
  • 실행 이전에 소프트웨어가 페이지 편향 전환을 식별하고 예약할 필요가 없어집니다.
  • 실행 중에 동적 편향 전환을 위한 하드웨어 지원을 제공합니다.
  • 이 모델의 하드웨어 지원은 소프트웨어 지원 모델에 간단한 확장이 될 수 있습니다.
  • 링크 플로우와 호스트 지원에는 영향이 없습니다.
  • 영향은 주로 호스트가 장치 바이어스 페이지에 접근하거나 그 반대의 경우 가속기에서 취하는 조치로 제한됩니다.
  • 이것이 명백한 하드웨어 주도 솔루션이라 할지라도 하드웨어는 모든 전환을 자율적으로 수행할 필요는 없으며, 원한다면 수행할 수 있습니다. 하드웨어가 힌트(예: "페이지 X를 편향 Y로 전환")를 제공하고 실제 전환 작업은 소프트웨어 제어 하에 두면 충분합니다.

'CXL-SpecsReview' 카테고리의 다른 글

[CXL] 3. CXL Transaction Layer - CXL.io  (2) 2024.01.23
[CXL] 2. CLX System Architecture - part 2  (0) 2024.01.22
[CXL] 1. Motivation and Overview  (1) 2023.12.20