마이크로스레딩
개요
마이크로스레딩은 로우 및 컬럼 액세스 세분화를 줄여 DRAM 아키텍처 리소스의 전송 효율성 및 효과적인 사용을 향상시킵니다. 마이크로스레딩을 사용하면 물리적 메모리 공간을 사분면으로 나눠 각 공간에 독립적인 로우 및 컬럼 회로를 사용함으로써 최소 전송 크기를 일반적인 DRAM 장치의 1/4로 줄일 수 있습니다. 또한 각 사분면의 독립된 주소 지정성은 최신 그래픽 및 멀티 코어 프로세서의 스레드된 메모리 작업 부하를 보완합니다. 마이크로스레딩은 이 고유한 아키텍처를 통해 장치의 전체 데이터 대역폭을 유지하면서 트랜잭션당 전력 소비량을 줄일 수 있습니다.
일반적인 DRAM 작업
DRAM 인터페이스 처리량의 향상이 코어 속도의 향상을 빠르게 앞질렀습니다. DRAM 인터페이스의 데이터 전송 속도는 세대를 거듭하면서 꾸준히 증가해 온 반면, DRAM 코어 주파수는 비교적 발전이 정체되었기 때문입니다. 코어 프리페치 크기는 인터페이스 대역폭의 향상과 보조를 맞추기 위해 지속적으로 증가해 왔습니다. 이러한 프리페치 크기가 증가할수록 액세스 "세분화"(액세스되는 데이터 양)가 증가하고 그래픽 또는 멀티 코어 컴퓨팅과 같은 응용 분야에 필요한 것보다 많은 데이터가 전송됩니다. 과도한 데이터를 가져오는 것은 비효율적이며 DRAM 및 신호 전달 전력을 낭비하게 됩니다.
액세스 세분화는 메모리 아키텍처 내에 있는 데이터의 액세스 가능성에 따라 달라집니다. 일반적인 DRAM은 8개의 스토리지 뱅크로 구성됩니다. 이러한 DRAM 내에서 각 뱅크는 각각 1/2의 영역을 차지하는 "A"와 "B"의 두 하위 뱅크로 양분됩니다. 따라서 데이터 핀이 32개인 DRAM의 경우 A 하위 뱅크와 B 하위 뱅크가 각각 16개 데이터 핀에 연결됩니다. 뱅크는 실제 다이의 반대쪽 사분면에 있으며 각 사분면에는 전용 로우 및 컬럼 회로가 있습니다. 각 하위 뱅크는 로우 및 컬럼 명령에 응답하여 병렬로 작동합니다.

로우 명령은 처리할 뱅크의 각 하위 뱅크에서 단일 로우를 선택하여 해당 로우를 감지하고 래치합니다. 이 경우 물리적 시간 제한으로 인해 다른 뱅크의 로우에 액세스할 수 있기 전에 시간 지연(즉, tRR)이 발생합니다. 컬럼 명령도 마찬가지로 제한(즉, tCC)됩니다. 그러나 일반적으로 로우 시간 간격이 컬럼 시간 간격의 두 배이므로 로우 하나를 활성화하는 데 필요한 강제 지연 시간 동안 컬럼 명령 두 개를 실행할 수 있습니다.
트랜잭션당 전달되는 데이터의 양을 나타내는 컬럼 프리페치 길이는 각 컬럼 및 로우 시간 지연과 비트 전송 속도에 따라 결정됩니다. 여기에서,
프리페치 = 시간 지연/비트 전송 속도
메인스트림 DRAM의 코어는 일반적으로 최대 200MHz에서 작동하는 반면, 업계 표준 고성능 DRAM의 코어는 최대 400MHz에서 작동할 수 있습니다. 현재의 업계 표준 DRAM 기술로 400MHz를 넘는 코어 주파수를 실현하려면 생산량이 저하되거나 비용이 증가하는 문제가 발생합니다. 따라서 이러한 고성능 DRAM 코어에서 3200MHz를 넘는 외부 데이터 전송 속도를 지원하려면 16비트의 코어 프리페치가 필요합니다. 이는 DRAM 코어가 같은 로우 또는 컬럼 작업에서 작동하는 각 하위 뱅크로 구성되어 있기 때문입니다.
또한
컬럼 세분화 = (컬럼 프리페치) x (하위 뱅크당 데이터 핀 수) x (액세스당 하위 뱅크 수)
또는
하위 뱅크당 16개 데이터 핀으로 구성된 32비트 폭 DRAM의 경우
액세스당 컬럼 세분화 = 16 x 16 x 2 = 512비트 또는 64바이트
뿐만 아니라 로우 시간 간격 동안 피크 대역폭을 유지하기 위해서는 적어도 두 개의 컬럼 작업이 수행되어야 합니다. 즉, 일반적으로 로우 주소 스트로브당 두 개의 컬럼 주소 스트로브(RAS당 두 개의 CAS)가 필요합니다. 따라서 로우 세분화 최소값은 128바이트가 됩니다. 이와 같이 액세스 세분화가 크면 3D 그래픽과 같은 응용 분야에서 활용하는 데이터 및 전력의 효율성이 저하됩니다.
마이크로스레딩이 효율성을 향상시키는 방식
위에서 예로 든 것과 같은 코어 리소스를 사용할 경우 샘플 마이크로스레딩 DRAM 코어는 각 뱅크가 일반적인 DRAM 코어의 하위 뱅크에 해당하는 16개 뱅크로 구성됩니다. 짝수 번호의 뱅크는 A 데이터 핀에 연결되고, 홀수 번호의 뱅크는 B 데이터 핀에 연결되며, 각각 16개 핀이 사용됩니다. 그러나 일반 코어와 달리 4 뱅크로 구성된 각 사분면은 독립적인 로우 및 컬럼 회로의 사용을 통해 독립적으로 작동할 수 있습니다. 뿐만 아니라 인터리빙(메모리의 여러 뱅크에 대한 동시 액세스)을 통해 이전 액세스와 동일한 코어의 물리적 위치에 있는 아래쪽 사분면에 동시에 액세스할 수 있습니다.

마이크로스레딩을 사용하면 DRAM 코어에 동시에 4개의 독립적인 액세스가 가능합니다. 특정 뱅크 또는 뱅크 사분면의 두 번째 로우에 액세스하려면 일반 코어와 같은 시간 간격이 경과해야 하지만 동일한 기간에 다른 사분면의 뱅크 3개에는 별도로 액세스할 수 있습니다. 또한 이전에 활성화된 로우에서 두 번째 컬럼에 액세스하려면 컬럼 시간 간격이 경과해야 하지만 다른 사분면에 있는 로우의 컬럼에는 동시에 액세스할 수 있습니다. 결론적으로 이러한 사분면 독립성 및 인터리빙의 효과로 인해 로우 시간 간격 동안 4개 로우(각 사분면 뱅크당 1개)와 8개 컬럼(각 로우당 2개)에 액세스할 수 있으며, 이는 로우 1개와 컬럼 2개에 액세스할 수 있는 일반적인 DRAM 기술에 비해 크게 향상된 성능을 의미합니다.
시간은 일반 DRAM 코어와 유사하지만 각 컬럼에서는 컬럼 시간 간격의 1/2에 해당하는 시간에만 데이터를 전송하며, 나머지 1/2의 시간 간격에는 인터리브된 컬럼에서 데이터를 전송합니다. 마이크로스레딩은 생산량이 높고 비용 효과적인 코어 주파수를 유지하면서 최소 전송 세분화 크기를 줄여 줍니다. 또한 4 뱅크에서의 컬럼 액세스를 인터리브하면 지정된 프리페치 길이 및 코어 주파수의 마이크로스레딩 DRAM 코어에서 기존 DRAM 코어보다 두 배 빠른 데이터 전송 속도를 지원할 수 있습니다. 또한 컬럼 작업에 마이크로스레딩을 적용하면 DRAM 코어에서 특정 데이터 전송 및 세분화를 경제적으로 유지하면서 컬럼 사이클 시간(tCC)을 기존 DRAM 코어보다 두 배 가까이 완화할 수 있습니다.

마이크로스레딩을 사용할 경우 컬럼 세분화는 다음과 같습니다.
컬럼 프리페치/2 x 16핀 = 16/2 x 16 = 128비트 또는 16바이트(이전 값의 1/4)
로우 세분화는 32바이트(이전 값의 1/4)입니다. 마이크로스레딩의 보다 정밀한 세분화는 많은 영역에서 성능 향상으로 이어집니다. 예를 들어, 8바이트 마이크로스레딩 컬럼 액세스 세분화를 사용하는 그래픽 응용 분야에서는 계산 및 전력 효율성이 29%에서 67%로 증가했습니다.
요약: 사업 수익 향상 및 성능 상의 이점
- DRAM 코어 속도를 인터페이스 대역폭에 맞추기 위해 프리페치 길이를 확장하는 방법이 사용되어 왔습니다. 하지만 이로 인해 DRAM 코어에서 유용한 데이터를 전송하는 성능이 점점 비효율적으로 저하되고 있습니다.
- 마이크로스레딩은 같은 DRAM 코어에서 보다 세밀한 액세스 세분화를 통해 전송 효율성을 향상시킬 수 있는 대안적 접근 방법을 제공합니다.
- 마이크로스레딩은 지속성이 뛰어난 데이터 대역폭을 유지하면서 전력 소비량을 절감합니다.
- 마이크로스레딩을 사용하면 DRAM 코어의 데이터 전송 속도가 기존 기술보다 두 배나 증가합니다.
- 마이크로스레딩은 향후의 데이터 대역폭 증가에 대비한 확장 가능한 경로 및 보다 높은 코어 프리페치 비율을 제공합니다.
