128비트
1. 컴퓨터의 처리 단위
128비트는 최대 2128 까지의 정수를 표현할 수 있다. 2128 ≒ 3.4*1038 의 값으로 약 340간에 해당된다.
2020년 현재 기준 일반적인 연산으로 128비트를 한번에 처리하는 CPU는 아직 없다. 지원하더라도 4개의 32비트나, 2개의 64비트로 쪼개서 처리한다. 상용 CPU 중에서는 x86-64에서 유일하게 128비트 compare-and-exchange 연산(cmpxchg16b)을 지원한다. 기타 덧셈/곱셈 등은 지원하지 않는다.
현재 존재하는 128비트를 지원하는 파일 시스템은 ZFS 하나이다. 단 이쪽은 유닉스 쪽이라 상용화되려면 멀었다.
2. 데이터 버스의 크기
128비트 데이터 버스는 한 번의 전송으로 128비트를 동시에 보내는 것이다.
데이터 전송 대역폭을 증가 시키는 방법은 1) 전송 속도를 올리거나 2) 동시에 더 많은 데이터를 보내야 한다. 같은 전송 속도를 가지더라도 데이터 선을 16비트에서 32비트로 늘리면 대역폭은 2배로 증가한다. 별다른 기술적인 문제 없이 대역폭을 늘릴 수 있지만, 그에 따른 물리적인 회선이 늘어나야 하므로 비용이 증가한다. 그렇지 않을 경우 병목 현상이 생간다.
하지만, 기술에 따라서는 병렬적으로 회선을 늘리는 것보다, 전송속도를 극한으로 올리는 것이 유리한 경우도 있다. 예를 들면 HDD 케이블은 SATA 로 넘어가면서, 데이터 선의 갯수는 대폭 줄었지만, 전송 속도를 극한까지 올리면서 훨씬 더 빠르게 전송이 가능하게 되었다.[1]
그런데, 전송속도가 이미 극한에 달한 경우라면, 버스의 크기를 늘리는 방법을 사용한다. 예를 들어 GPU의 메모리 버스 같은 경우이다. 2017년 기준 GPU에서는 32비트, 64비트, 96비트, 128비트 버스를 넘어서 192비트, 224비트, 256비트, 320비트, 352비트, 384비트, 448비트, 512비트 버스도 사용하고 있다. 실제 제품 기준으로 보면 NVIDIA 지포스 기준으로 엔트리 라인의 그래픽카드들은 대부분 128비트 버스를 사용하며, 메인스트림~하위 퍼포먼스급 라인은 192비트 버스, 상위 퍼포먼스급~하이엔드는 256비트 버스를 사용한다. 최상위인 플래그쉽 그래픽카드는 384비트 버스를 사용하며, 특이하게 라데온 HD 2900XT나 지포스 GTX 280은 지금 기준으로는 10년 넘게 지난 구형 모델이지만 512비트 버스를 사용한다.[2] 더 나아가서 HBM을 사용하는 GPU는 1024비트, 2048비트, 3072비트, 4096비트 같은 무지막지한 버스를 사용한다. 버스폭이 넓을 수록 단가 문제와 전력 소모량 증가 문제가 커지지만 전송할 수 있는 데이터의 대역폭이 그만큼 증가하기에, 더 많은 데이터를 보내거나 받을 수 있으므로 그래픽의 품질을 향상시킬 수 있게 된다.
3. 기타
- RISC-V 라는 CPU 프로젝트가 있는데, 스펙상으로는 128비트를 지원하도록 설계되었다(RV128I). 다만 현재 출시된 제품은 지원하지 않는다.
- 일부 컴퓨터용 언어는 128비트 정수용 데이터 타입을 지원한다. C 정식 표준에서는 지원하지 않지만, GCC 는 4.6 버전부터 자체 옵션으로 __int128 이란 타입을 지원한다.
- IEEE 754 에 규정된 부동소수점 표현에는 quadruple precision 이란 이름으로 128비트 부동소수점이 표준으로 규정되어 있다.
- IPv6는 128비트 주소 체계다.
4. 관련 문서
[1] 그러나 SSD는 SATA로도 병목 현상을 막을 수가 없어서 결국 PCI Express에 직결하면서 비휘발성 메모리 성격에 부합되는 NVMe 방식으로 바뀌어가고 있다.[2] 그나마 최근에 채택된 그래픽카드는 AMD 라데온 R9 290X, 290, 390X, 390이지만 그 이후로는 더이상 채택되지 않고 있으며, NVIDIA 지포스에서도 GTX 285를 마지막으로 더이상 채택되지 않고 있다.