일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Intel
- 시스템 소프트웨어
- github
- memory
- Machine Learning
- FTL
- core dumped
- USENIX
- Git
- Cache
- storage system
- 키워드
- overflow
- 포트 번호 변경
- 커널 프로그래밍
- ssd
- Samsung
- performance
- linux
- rocksdb
- 시스템 프로그래밍
- Operating System
- hardware
- Flash Memory
- software
- framework
- deep learning
- kernel
- Today
- Total
Happy to visit my research note ^^
Compute Express Link™ (CXL™) 본문

Siamak Tavallaei, CXL™ Consortium Technical Task Force Co-Chair and Principal Architect, Microsoft Azure,
Rob Blankenship, Processor Architect and Principal Engineer, Intel, and Kurt Lender, CXL Consortium Marketing Working Group Co-Chair and Senior Ecosystem Enabling Manager, Data Center Group, Intel,
presented a deep dive into how CXL technology maintains memory coherency between the CPU memory space and memory on attached devices.
The webinar also details several representative CXL use cases – Caching Devices/Accelerators, Accelerators with Memory, and Memory Buffers.
발표 자료
해당 ppt는 연구 중 CXL 에 대한 발표 자료입니다.
참고 논문으로는 IEEE의 논문으로 Intel Cor. 에서 발표한 논문을 참고하면 됩니다.
그리고 PCIe와 CXL의 속도를 비교한 논문으로는
Design and analysis of CXL performance models for tightly-coupled heterogeneous computing
해당 논문을 찾아보시면 됩니다.
추가적인 궁금점이 있다면 댓글을 달아주세요
Terminology
# Processor interconnect
processor interconnect는 processor 간 통신을 위한 interconnect 기술을 의미한다. 예를 들어, multi-processor system에서는 각 processor가 서로 통신하여 작업을 분산 처리하고 데이터를 주고 받아야 한다. 이 기술은 large-scale data를 전송하고 처리할 수 있는 bandwidth and low-latency를 제공하여 processor 간의 interconnect를 원활하게 한다.
#
# open industry standard
이는 특정 산업 또는 기술 분야에서 다양한 업체 및 개발자들이 함께 사용할 수 있는 standard interface, format, protocol 등을 의미한다. 이러한 개방적인 표준은 다양한 제조업체나 개발자들이 상호 호환 가능한 제품을 생산하고 서로 협력할 수 있도록 해준다.
#
# Homogeneous vs heterogeneous
Homogeneous는 동일한 구성, 특성, 속성 등을 가진 것을 의미한다. 예를 들어, 모두 같은 운영체제를 사용하는 computer cluster는 homogeneous한 cluster라고 할 수 있다.
반면, Heterogeneous는 다른 종류, 형태, 속성 들을 가진 것을 의미한다. 서로 다른 운영체제나 하드웨어를 가진 computer cluster는 heterogeneous한 cluster라고 할 수 있다.
이런 개념은 computing 분야에서 많이 사용되는데 예를 들어, homogeneous한 cpu cluster는 각 노드가 같은 종류의 cpu를 가지고 있으며, hetero한 cluster는 서로 다른 종류의 cpu를 가진 노드로 구성된다. 또한, homo한 network는 모든 link가 같은 속도로 동작하고, hetero한 network는 서로 다른 속도를 가진 링크로 구성된다.
#
# ubiquitous
언제 어디서나 어떤 장치나 네트워크에도 자유롭게 연결되어 정보를 주고받을 수 있는 환경을 뜻한다. 즉, 인터넷과 같이 어디서든 접속 가능하고, 다양한 기기 간에 연결하여 사용 가능한 상황을 의미한다.
#
# CPU-attached Memory (OS Managed)
CPU와 직접적으로 연결된 memory를 말한다. 이런 memory는 일반적으로 속도가 빠르고 저렴한 DRAM을 사용한다. 예로는 Intel의 Optane Memory가 있는데 CPU에 직접 연결되는 memory로서, 더 빠른 data access를 가능하게 해서 성능 향상을 이끌어내는 기술이다. 컴퓨터의 부팅 속도, application execution speed, data store and searching speed 등에서 향상된다.
#
# Accelerator-Attached Memory (Runmtime managed cache)
AAM은 system memory 대신 직접 액세스 할 수 있는 고속 memory를 말한다. 이는 가속기에서 처리하는 data를 더 빠르게 액세스하고 처리할 수 있도록 하여 성능을 향상시키는 기술이다.
예를 들어, graphic card는 대규모 그래픽 처리 작업에 적합한 가속기이다. 그러나 그래픽 처리 작업은 대개 large-scale data set을 처리해야 하므로 system memory에서 data를 가져와야 한다. 이렇게 하면 data를 memory로 복사하고 처리하는 데 시간이 더 많이 걸리게 된다.
AAM을 사용하면 graphic card가 필요한 data를 직접 access하여 처리할 수 있다. 이렇게 하면 data를 복사하는 데 걸리는 시간이 줄고 처리 속도가 향상된다. 마찬가지로, 기타 가속기, 예를 들어 AI accelerator and network accelerator 등도 AAM을 사용해서 처리 속도를 높일 수 있다.
#
# Accelerator
가속기란 computing system에서 CPU(중앙처리장치)의 workload를 줄이기 위해 특정 작업을 수행하는 hardware device이다. 예를 들어, graphic processing, video encoding/decoding, AI inference 등의 작업을 처리하는 GPU(graphic processing unit), deep learning model inference를 수행하는 TPU(tensor processing unit), netrwork packet processing을 가속하는 network adapter 등이 있다. Accelerator는 CPU와는 별도의 memory를 가지며, 일반적으로 병렬 처리에 특화된 구조로 설계되어 있다. 이를 통해 특정 작업을 효율적으로 처리하고, 전체 시스템의 성능을 향상시킬 수 있다.
#
# FPGA
Field Programmable Gate Array의 약자로, 재구성 가능한 반도체 칩이다. 이는 logical gate와 register 등의 digital logic component를 프로그램 가능한 방식으로 구성하고, 논리 회로를 직접 설계할 수 있는 장치이다. 이러한 FPGA는 다양한 digital system에서 사용되며, hardware를 재구성하여 특정 작업에 특화된 computing 작업을 수행할 수 있다. 이러한 기능은 특히 고성능 컴퓨팅, 신호 처리, 디지털 영상 처리, 통신 및 네트워킹 분야에서 널리 사용된다.
#
# PCIe P2P
PCIe Peer-to-Peer 통신을 의미한다. 이것은 한 컴퓨터에서 다른 컴퓨터 또는 장치와 직접 통신할 수 있도록 PCIe 표준을 사용하여 구현된다. 이전에는 데이터를 전송하기 위해 CPU와 RAM을 거쳐야 했기 때문에 느리고 비효율적이렀다. 그러나 PCIe P2P는 CPU와 RAM을 거치지 않고 직접 데이터를 주고받기 때문에 더 빠르고 효율적인 데이터 전송이 가능하다.
PCIe P2P는 data center에서 가상화 환경에서 사용되어 GPU 및 Accelerator가 있는 server에서 다른 server의 resource에 직접 access할 수 잇도록 한다. 이를 통해 server 간 통신을 최적화하고 data transmission time을 줄일 수 있으며, data bottleneck을 완화할 수 있다. PCIe P2P는 많은 양의 data를 처리하고 연산을 가속화하는 Machine Learning and deep learning app에서 매우 유용하다.
#
# PCIe DMA
PCIe DMA는 PCI Express (PCIe) interface를 통해 직접 memory에 데이터를 전송하는 기술이다. DMA는 Direct Memory Access의 약자로, CPU의 개입 없이 주변 장치에서 memory로 data를 직접 전송할 수 있는 기능이다. (e.g., NIC, GPU, FPGA, SSD 등이 있다. 이러한 주변 장치들은 대개 PCIe interface를 통해 system에 연결되며, PCIe DMA를 사용하여 data transmission을 수행할 수 있다. 예를 들어, NIC는 network packet을 PCIe DMA를 사용하여 memory로 직접 전송할 수 있다. 마찬가지로, GPU는 graphic or computation work를 수행하면서 PCIe DMA를 사용해서 data를 memory로 전송할 수 있다. SSD의 경우, 데이터를 저장하거나 검색할 때 PCIe DMA를 사용하여 data를 disk에서 memory로 전송할 수 있다.)
PCIe DMA를 사용하면 system의 전송 속도가 높아지며, 데이터 전송에 필요한 CPU 자원을 아낄 수 있다. 예를 들어, network card에서 data를 수신하고 disk에 저장하는 경우, CPU는 network data를 수신하고 memory에 저장한 후 disk로 복사해야 한다. 그러나 PCIe DMA를 사용하면 network card에서 직접 디스크로 데이터를 전송할 수 있으므로 CPU는 중간 처리과정을 거치지 않아도 된다.
PCIe DMA는 large-scale data transmission이 필요한 응용 프로그램, 예를 들면 database backup이나 cloud service 등에서 매우 유용하다.
#
# NIC
Network Interface Controller의 약자로, 네트워크와 관련된 데이터를 송수신하기 위한 hardware device이다. 일반적으로 Ethernet이나 Wi-Fi와 같은 standard network protocol을 사용하여 컴퓨터와 네트워크 간의 통신을 제공한다.
NIC는 컴퓨터의 system bus(e.g., PCI, PCIe)에 연결되어 데이터를 송수신하며, 네트워크 케이블이나 무선 주파수를 통해 다른 장치와 통신한다. NIC는 data packet의 송수신, 에러 검출 및 수정, MAC(Media Access Control) 주소의 관리 등의 기능을 담당한다.
data center, server, computer 등에서 NIC는 매우 중요한 역할을 한다. 이를 통해 다른 장치와 통신하고 데이터를 주고받으며, 서버와 클라이언트 간의 통신을 가능하게 한다.
#
# Writeback Memory
Writeback Memory는 cache memory에 사용되는 기술 중 하나이다. Cache memory는 CPU가 자주 액세스하는 data를 미리 저장하여 cpu의 access speed를 높이는 데 사용된다. Writeback memory에서는 CPU가 data를 수정할 때, 해당 데이터는 바로 main memory에 쓰여지지 않고 cache memory에 임시로 저장된다. 이렇게 하면 cache memory와 main memory 간의 데이터 불일치 문제를 방지할 수 있다.
이후 cpu가 다른 데이터를 액세스하는 동안, 수정된 데이터는 cache memory에만 저장된다. 이를 writeback이라고 부르고, 이후에 해당 데이터가 더 이상 필요하지 않을 때, 해당 데이터가 main memory에 쓰여지게 된다. 이와 대조되는 기술로는 write-through memory가 있고, 여기서는 cpu가 데이터를 수정할 때 마다 해당 데이터가 즉시 main memory에 쓰여진다.
#
# main memory
main memory는 컴퓨터에서 CPU(중앙처리장치)가 사용하는 주 기억장치이다. 프로그램이나 데이터를 저장하고, cpu가 처리하는 데이터를 읽어들이는 역할을 한다.
예를 들어, 사용자가 웹 브라우저를 실행하면, 브라우저는 메인 메모리에 로드된다. 이때, 브라우저 프로그램의 코드와 그림 등의 데이터가 메인 메모리에 저장된다. 사용자가 인터넷에서 웹 페이지를 요청하면, 브라우저는 해당 웹 페이지에 대한 데이터를 인터넷에서 다운로드 받아 메인 메모리에 저장한다. 이후, cpu가 해당 데이터를 읽어와 화면에 표시하는 등의 처리 작업을 수행한다.
main memory는 램(RAM, Random Access Memory)이라고 불리고, 일반적으로 DRAM(Dynamic Random Access Memroy)으로 구성된다. main memory의 용량이 클수록 대규모의 데이터나 프로그램을 처리할 수 있게 되며, 또한 메모리의 속도가 빠를수록 데이터 처리 속도가 향상된다.
#
# uncached memory
cache는 cpu core 내부에 위치하며, cpu core가 필요한 데이터를 더 빠르게 가져오기 위해 사용된다. 반면, uncached memory는 cache가 아닌 main memory에 직접 액세스하는 것이기 때문에 처리 속도가 느리다. 하지만, uncached memory를 사용하면 cpu core에서 data를 읽어오기 전에 cache memory를 거치지 않아도 되기 때문에 더 빠르게 메모리에 접근할 수 있다.
일반적으로, i/o device or device driver에서 uncached memory를 사용해서 data를 처리하고, main memory와는 다른 특수한 목적으로 사용된다.
main memory에 접근하는 시간은 cpu cache에 비해 상대적으로 느리다. 이러한 main memory 접근 지연을 해결하기 위해 cache memory가 사용되는데, cache memory에는 cpu가 가장 자주 접근하는 data와 명령어가 저장되어 빠른 속도로 처리된다.
따라서, uncached memory를 사용하면 main memory에 직접 접근하여 data를 읽고 쓰기 때문에 cache memory와 달리 data consistency 관리 문제를 야기하지 않는다. 예를 들어, DMA를 사용해 device가 main memory에 직접 data를 쓰거나 읽을 때, uncached memory가 사용된다.
#
'study' 카테고리의 다른 글
About kubernetes (0) | 2023.03.24 |
---|---|
The Basics of Caches (0) | 2023.03.12 |