Intel Data Streaming Accelerator: 정의 및 CPU에서 작동하는 방식

남북관계의 미래 CPU 메모리는 범용 주소 지정에서 발생하므로 데이터 스트리밍 가속기와 같은 프로세서 내에서 새로운 유형의 장치가 필요합니다. 그러나 이것이 무엇이며 어떻게 프로세서 성능을 향상시키는가?

인텔 데이터 스트리밍 가속기

최근 가장 많이 연구되고 있는 발전 중 하나는 아키텍처 내 데이터 이동과 관련이 있습니다. 언뜻 보기에는 완전히 해결된 것처럼 보이지만 최근에는 CPU의 성능을 높이기 위한 중요한 포인트가 되었습니다.

새로운 하드웨어를 설계할 때 데이터 이동이 건축가의 집착이 된 데에는 두 가지 이유가 있습니다. 첫 번째는 에너지 소비와 관련이 있고 두 번째는 메모리 작업을 수행하는 데 걸리는 시간인 대기 시간과 관련이 있으며 이 두 번째 지점에서 대기 시간과 너비 간의 관계를 매우 명확하게 해야 합니다. 밴드.

대역폭은 대기 시간과 동일합니까?

모비미엔토스 다토스

아니요, 동일하지 않습니다. 대기 시간은 메모리에 대한 요청을 해결하는 데 걸리는 클록 주기의 시간이며 항상 수행해야 하는 일련의 단계가 있습니다. 문제는 메모리 인터페이스가 매우 빠를 수 있지만 메모리 컨트롤러가 그렇지 않을 수 있으며 결국 이 또는 MMU CPU가 포화되고 모든 메모리 요청이 지연됩니다.

인터페이스가 아무리 빨라도 메모리 요청이 차단되면 나머지 큐가 차단되고 데이터가 전송되지 않습니다. 많은 수의 요청이 . 최악의 상황은 CPU가 다음 명령을 실행할 데이터를 얻기 위해 오랜 시간을 기다리게 할 수도 있다는 것입니다.

대신 대역폭은 단순히 전송 속도입니다. 예를 들어 100GB/s에서 1개 요청 또는 1GB/s에서 100개 요청을 가질 수 있지만 액세스 관리를 담당하는 프로세서 메모리 컨트롤러가 첫 번째 경우에 더 큰 어려움을 겪을 것이라는 점을 고려해야 합니다. 두 번째보다.

데이터 이동 단위

Portada-CPU-Genérica-Placa-Base

ISA를 가져 와서 그것이 무엇인지는 중요하지 않으며 살펴보십시오. 산술 논리 연산을 수행하지 않거나 점프 또는 배를 수행하는 것을 담당하지 않지만 메모리로의 이동을 포함하는 데이터 이동을 수행하는 책임.

이러한 명령의 대부분은 구식이며 특정 클록 주기 대기 시간이 있습니다. 메신저 역할을 하는 지원 프로세서를 추가하고 이러한 요청을 RAM 또는 동일한 주소 내의 메모리에 더 짧은 대기 시간으로 해결할 수 있다면 어떨까요? 음, 프로세서의 성능이 향상되고 일반적으로 새 명령을 해결하기 위해 대기하는 클록 주기에 집중할 수 있습니다.

음, 인텔 Data Streaming Accelerator는 이 원칙을 기반으로 하며 다양한 프로세서의 성능을 향상시키는 핵심 중 하나입니다.

인텔 데이터 스트리밍 가속기

다이어그램 데이터 스트리밍 가속기

이름에서 알 수 있듯이 가속기, 즉 특정 작업을 수행하는 장치이며 이 경우 CPU보다 짧은 시간에 데이터를 방출합니다. DSA의 특수성은 Compute Express Link가 PCI Express 5.0을 통해 제공하는 특성 중 하나를 위해 설계되었다는 것입니다. 즉, PCI Express 포트에 연결된 모든 주변 장치에 RAM 메모리에 대한 일관된 액세스 권한을 부여하는 것입니다. 즉, 그들은 동일한 메모리 주소를 공유합니다.

따라서 다음 작업을 수행하는 데 사용됩니다.

  • CPU에서 RAM으로 또는 그 반대로 데이터를 이동할 수 있습니다.
  • 다른 메모리 주소 지정을 사용하여 일관성이 없는 메모리 공간에 액세스하기 위해 주소 변환을 자동으로 수행할 수 있으므로 기술적으로 우리는 업데이트된 DMA 단위에 직면하고 있습니다.
  • 또한 영구 또는 비휘발성 메모리에 액세스할 수 있으므로 NVMe SSD, Intel Optane 모듈, NVDIMM 등에 액세스할 수도 있습니다.
  • NTB 및 서버 환경을 통해 데이터 센터 또는 서버의 다른 보드에서 다른 RAM 또는 비휘발성 메모리에 액세스할 수 있습니다.
  • 위의 사항을 가상머신에 적용하는 기능이 내장되어 있습니다.

많은 분들이 짐작하셨겠지만, 자동으로 작동하는 고정 기능 장치는 아니지만 특별히 서버 프로세서용으로 설계된 장치 유형입니다.

인텔 DSA 지침

Data Streaming Accelerator는 입력되는 데이터에 항상 동일한 프로그램을 적용하는 것이 아니라 일련의 명령을 지원하기 때문에 고정된 기능 단위가 아닙니다. 따라서 우리는 이를 특정 도메인 프로세서라고 부릅니다. 수행할 수 있는 작업은 다음과 같습니다.

  • 움직임: 고전적인 x86 데이터 이동 명령은 어셈블러를 작성한 사람이라면 알 것입니다. 프로세서에 하나 이상의 인텔 데이터 스트리밍 가속기가 있는 경우 CPU 코어가 아니라 이들에 의해 실행됩니다.
  • DIF: 그것 메모리에 있는 정보의 무결성을 확인하는 프로세스를 수행하는 역할을 합니다.
  • CRC 생성: 전송된 데이터에 대해 CRC 체크섬을 생성합니다.
  • 가득 따르다: 특정 데이터로 메모리 섹션을 반복적으로 채우는 역할을 하므로 모든 비트를 0으로 설정할 수 있으므로 메모리 일부의 내용을 지우는 것이 이상적입니다.
  • 비교: 두 개의 메모리 블록을 비교하고 동일한지 확인하는 데 사용됩니다.
  • 델타 레코드 생성: 확인을 수행하고 둘 사이의 차이를 사용하여 새 데이터 스트림을 생성합니다.

Data Streaming Accelerator는 동시에 여러 저장 장치를 제어할 수도 있습니다.

  • 켜기 끄기 : RAM 또는 비휘발성 저장소와 같은 메모리 장치를 연결하거나 연결을 끊을 수 있습니다.
  • 중단 : RAM 또는 기타 메모리 장치에 대한 모든 메모리 요청을 중단합니다.
  • 배수: 메모리 장치에 대한 모든 요청이 동시에 이루어지도록 요청합니다.

지침 목록은 훨씬 더 많지만 Intel이 프로세서에 통합한 이 새로운 장치의 작동 방식을 대략적으로 알 수 있도록 하기 위한 것입니다. 이점은 분명하며 Sapphire Rapids에서 더욱 향상될 것으로 예상됩니다.