{{위키데이터 속성 추적}}
{{비트}}

[[컴퓨터 구조]]에서 '''128비트''' 정수, 메모리 주소, 기타 데이터 단위는 128비트(16옥텟) 너비에 속하는 것들이다. 또, 128비트 [[중앙 처리 장치|CPU]]와 [[산술 논리 장치|ALU]] 아키텍처들은 해당 크기의 레지스터, 주소 버스, 데이터 버스에 기반한 것들이다.

'''128비트''' '''정수'''나 주소로 동작하는 주류의 범용 프로세서가 2023년 12월 현재 존재하지 않지만 수많은 프로세서는 128비트 덩어리의 데이터에서 동작하기 위한 특수한 방식들을 사용한다. [[IBM 시스템/370]]은 128비트 [[부동소수점]] 레지스터를 사용하였으므로 최초의 단순 128비트 컴퓨터로 간주할 수 있다. 현대의 대부분의 CPU들은 [[SIMD]] 명령어 집합([[스트리밍 SIMD 확장]], [[AltiVec]] 등)을 지원하며 여기에서 128비트 벡터 레지스터를 사용하여 4개의 32비트 부동 숫자와 같은 더 작은 여러 수들을 저장한다. 그 뒤 하나의 명령어로 이러한 값들을 모두 병렬로 처리할 수 있다. 그러나 이러한 프로세서들은 길이가 128개의 이진 숫자인 개개의 숫자로 동작하지는 않는다. 오직 [[프로세서 레지스터|레지스터]]만이 크기가 128비트이다.

DEC의 [[VAX]]는 128비트 정수('O', 즉 옥타워드)와 128비트 부동소수점(H-float 또는 HFLOAT) 자료형을 지원하였다. 이러한 명령의 지원은 표준 기능이 아닌 업그레이드 옵션이었다. VAX의 레지스터들이 32비트 너비였기 때문에 128비트 동작은 메모리에 4개의 연속된 레지스터나 4개의 롱워드(longword)를 사용하였다.

[[ICL 2900 시리즈]]는 128비트 누산기를 제공하였으며 명령어 집합에는 128비트 부동소수점 및 [[이진화 십진법]] 산술을 포함하였다.

이를테면 컴파일러가 64비트 미만의 레지스터 크기를 갖춘 아키텍처에서 64비트 정수 산술을 에뮬레이트하는 방식과 동일하게 일부 컴파일러들 또한 128비트 정수 산술을 지원한다. 이를테면 [[GNU 컴파일러 모음|GNU C 컴파일러]] 4.6 이상은 128비트 정수형 <code>__int128</code>을 일부 아키텍처용으로 갖추고 있다.<ref>{{웹 인용|title=GCC 4.6 Release Series - Changes, New Features, and Fixes|url=https://gcc.gnu.org/gcc-4.6/changes.html|access-date=25 July 2016}}</ref> [[C (프로그래밍 언어)|C]]의 경우 이것은 컴파일러에 특화된 확장 기능이며, [[C11 (C 버전)|C11]] 자체는 128비트 정수의 지원을 보장하지 않는다.

128비트 레지스터는 2<sup>128</sup>(3.40 × 10<sup>38</sup> 초과)개의 다른 값들을 저장할 수 있다. 128비트에 저장할 수 있는 [[정수]]값의 범위는 사용되는 [[정수형]]에 따라 다르다. 가장 일반적인 2개의 정수형을 사용한다면 그 범위는 ([[Signed와 unsigned|unsigned]]) [[이진법|이진수]]의 경우 0부터 340,282,366,920,938,463,463,374,607,431,768,211,455 (2<sup>128</sup> - 1)이며 [[2의 보수]]로 표현할 경우 -170,141,183,460,469,231,731,687,303,715,884,105,728 (-2<sup>127</sup>)부터 170,141,183,460,469,231,731,687,303,715,884,105,727 (2<sup>127</sup> - 1)까지이다.

== 이용 ==
* [[RISC-V]] [[컴퓨터 구조|구조]]를 구현하기 위해 사용되는 [[자유 소프트웨어]]는 32, 64, 128비트의 정수 데이터 너비로 정의된다.
* [[범용 고유 식별자]](UUID)는 128비트 값을 이룬다.
* [[IPv6]]는 128비트 너비의 주소 간에 컴퓨터 네트워크 트래픽을 라우팅한다.
* [[ZFS]]은 2024년 1월 현재 유일한 128비트 파일 시스템이다.
* [[그래픽 처리 장치]] 칩은 일반적으로 128비트 버스를 통해 데이터를 전송한다.<ref>{{저널 인용|url=http://www.tomshardware.com/reviews/graphics-beginners,1288-8.html | title= The Graphics Processor | publisher=tomshardware.com| author=Don Woligroski | date=July 2006 | accessdate=24 February 2013}}</ref>
* [[암호학]]에서 128비트는 [[대칭 키 암호]]를 위한 일반적인 [[키 크기]]이며 [[블록 암호]]의 일반적인 블록 크기이기도 하다.
* 128비트 프로세서를 사용하면 최대 2<sup>128</sup> (3.40 × 10<sup>38</sup> 초과) 바이트를 주소에 할당할 수 있으며 이는 2010년 지구에 저장되는 총 데이터를 훨씬 초과하며 약 1.2 [[제타바이트]](1.42 × 10<sup>21</sup> 바이트)로 추산되고 있다.<ref>{{저널 인용|url=http://www.datacenterknowledge.com/archives/2010/05/04/digital-universe-nears-a-zettabyte/|title=Digital Universe nears a Zettabyte | publisher=datacenterknowledge.com| author=Rich Miller | journal=The Guardian | date=May 2010 | accessdate=16 September 2010}}</ref>
* [[4배 정도]](128비트) [[부동소수점]]의 수들은 [[정확도와 정밀도|정확도]]를 잃지 않고 정확하게 64비트 [[고정소수점]] 수나 [[정수형|정수]]로 저장할 수 있다.
* [[IBM 시스템 i]] 가상 명령어 집합은 모든 포인터를 128비트로 정의한다.
* [[MD5]] 알고리즘은 128비트 해시값을 만들어내는, 널리 사용되는 해시 함수이다.

== 역사 ==
128비트 [[멀티컴퍼레이터]]는 1976년 연구원들에 의해 기술되었다.<ref>{{저널 인용|last1=Mead|first1=C.A.|last2=Pashley|first2=R.D.|last3=Britton|first3=L.D.|last4=Daimon|first4=Y.T.|last5=Sando|first5=S.F.|title=128-bit multicomparator|url=http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1050799|journal=IEEE Journal of Solid-State Circuits|volume=11|pages=692|year=1976| doi= 10.1109/JSSC.1976.1050799  }}</ref>

128비트 멀티미디어 확장 기능을 갖춘 CPU는 1999년 연구원들에 의해 설계되었다.<ref>{{저널 인용| last1 = Suzuoki | first1 = M. | last2 = Kutaragi | first2 = K. | last3 = Hiroi | first3 = T. | last4 = Magoshi | first4 = H. | last5 = Okamoto | first5 = S. | last6 = Oka | first6 = M. | last7 = Ohba | first7 = A. | last8 = Yamamoto | first8 = Y. | last9 = Furuhashi | first9 = M. | last10 = Tanaka | first10 = M. | last11 = Yutaka | first11 = T. | last12 = Okada | first12 = T. | last13 = Nagamatsu | first13 = M. | last14 = Urakawa | first14 = Y. | last15 = Funyu | first15 = M. | last16 = Kunimatsu | first16 = A. | last17 = Goto | first17 = H. | last18 = Hashimoto | first18 = K. | last19 = Ide | first19 = N. | last20 = Murakami | first20 = H. | last21 = Ohtaguro | first21 = Y. | last22 = Aono | first22 = A. | doi = 10.1109/4.799870 | title = A microprocessor with a 128-bit CPU, ten floating-point MAC's, four floating-point dividers, and an MPEG-2 decoder | journal = IEEE Journal of Solid-State Circuits | volume = 34 | issue = 11 | pages = 1608 | year = 1999 | pmid =  | pmc = }}</ref>

== 각주 ==
{{각주}}

{{CPU 기술}}

[[분류:데이터 단위]]