맨위로가기

128비트

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

128비트는 컴퓨터에서 사용되는 데이터 크기를 나타낸다. 1976년 연구를 시작으로, 128비트 멀티컴퍼레이터, 128비트 부동 소수점 산술, 128비트 SIMD 기능 등이 개발되었다. 128비트 레지스터는 최대 2128개의 값을 저장할 수 있으며, 다양한 정수 및 부동 소수점 표현에 사용된다. 128비트는 UUID, IPv6 주소, 파일 시스템(ZFS), 암호화 키 크기 등에 활용되며, 128비트 프로세서는 방대한 양의 데이터를 주소 지정할 수 있다.

더 읽어볼만한 페이지

  • 데이터 단위 - 바이트
    바이트는 디지털 정보의 기본 단위로, 일반적으로 8비트로 구성되지만, 역사적으로는 다양한 비트 수를 가질 수 있었으며, 컴퓨터 메모리 용량이나 데이터 크기를 나타내는 데 널리 사용된다.
  • 데이터 단위 - 16비트
    16비트는 16비트 정수를 사용하여 216개의 값을 저장할 수 있는 컴퓨터 아키텍처를 의미하며, 1950년대에 등장하여 미니컴퓨터와 마이크로프로세서에 널리 사용되었고, 64 KiB 메모리에 직접 접근 가능하며 뱅크 전환 등의 메모리 확장 방식을 사용했으며, MS-DOS, OS/2 1.x 등과 같은 운영 체제와 Windows Metafile, UTF-16 등의 파일 형식이 존재하며, 현재는 임베디드 시스템에서 활용된다.
128비트
128비트 컴퓨팅
정의
비트 폭128 비트 (16 옥텟)
최대값 (부호 있는 정수)170,141,183,460,469,231,731,687,303,715,884,105,727 (약 1.7×10^38)
최대값 (부호 없는 정수)340,282,366,920,938,463,463,374,607,431,768,211,455 (약 3.4×10^38)
역사
특징128비트 정수 연산은 64비트 아키텍처에서 에뮬레이트해야 한다.
활용
예시일부 마이크로프로세서 아키텍처 (ARM 아키텍처)
일부 SIMD 명령어 집합 (SSE)
일부 소프트웨어
IPv6 주소
참고 자료
추가 정보GCC 4.6 릴리스 시리즈 - 변경 사항, 새로운 기능 및 수정 사항

2. 역사

128비트는 컴퓨터 아키텍처에서 중요한 발전 단계를 나타낸다. 초기 연구 개발부터 메인프레임 시스템, 멀티미디어 및 게임 콘솔을 거쳐 현대 CPU에 이르기까지 다양한 분야에서 활용되었다.

2. 1. 초기 연구 (1970년대)

1976년 연구원들이 128비트 멀티컴퍼레이터를 기술했다.[22][2][17] 1999년에는 128비트 멀티미디어 확장 기능을 갖춘 CPU가 연구원들에 의해 설계되었다.[23][5]

2. 2. 메인프레임 및 가상 머신 (1980년대 ~ 1990년대)

IBM System/360 Model 85[3], IBM System/370 및 후속 제품들은 128비트 부동 소수점 산술을 지원한다. 지멘스 7.700 및 7.500 시리즈 메인프레임 및 후속 제품도 128비트 부동 소수점 산술을 지원했다.[4]

DEC VAX는 128비트 정수 ('O' 또는 옥타워드) 및 128비트 부동 소수점 ('H-플로트' 또는 HFLOAT) 데이터 유형에 대한 연산을 지원했다. 이러한 연산 지원은 표준 기능이 아닌 업그레이드 옵션이었다. VAX의 레지스터는 32비트였으므로 128비트 연산은 4개의 연속 레지스터 또는 메모리의 4개 롱워드를 사용했다.

ICL 2900 시리즈는 128비트 누산기를 제공했으며, 명령 집합에는 128비트 부동 소수점 및 팩 십진수 산술 연산이 포함되었다.

2. 3. 멀티미디어 및 게임 콘솔 (1990년대 ~ 2000년대)

6세대 비디오 게임 콘솔 중 드림캐스트플레이스테이션 2는 기능을 설명하기 위해 마케팅에 '128비트'라는 용어를 사용했다. 플레이스테이션 2의 CPU는 128비트 SIMD 기능을 갖추고 있었다.[6][7] 두 콘솔 모두 128비트 주소 지정 또는 128비트 정수 산술을 지원하지 않았다.

  • 1999년 - 128비트 멀티미디어 확장이 설계되었다.[18]
  • 1999년 3월 2일 - 128비트 범용 레지스터를 가진 프로세서 에모션 엔진(Emotion Engine)이 발표되었다.

2. 4. 현대 (2010년대 ~ 현재)

대부분의 최신 CPU는 128비트 벡터 레지스터가 32비트 부동 소수점 숫자 4개와 같은 여러 개의 작은 숫자를 저장하는 데 사용되는 단일 명령, 다중 데이터(SIMD) 명령 집합 (스트리밍 SIMD 확장, 알티벡 등)을 특징으로 한다. 그런 다음 단일 명령어가 이러한 모든 값에 대해 병렬로 작동할 수 있다. 그러나 이러한 프로세서는 길이가 128 이진수인 개별 숫자에 대해 작동하지 않으며, 벡터 레지스터의 크기는 128비트이다.[23]

1999년 연구원들은 128비트 멀티미디어 확장을 갖춘 CPU를 설계했다.[5]

2016년의 RISC-V ISA 명세에는 128비트 버전의 아키텍처에 대한 예약이 포함되어 있지만, 아직 이러한 큰 워드 크기에 대한 실질적인 경험이 거의 없기 때문에 세부 사항은 의도적으로 정의되지 않았다.[8]

3. 표현

128비트 바이트 주소를 사용하는 프로세서는 최대 2128영어 (3.40×1038 이상) 바이트를 직접 주소 지정할 수 있다. 이는 2018년 현재 지구상에서 캡처, 생성 또는 복제된 총 데이터량인 약 33 제타바이트(274 바이트 이상)를 훨씬 초과한다.[1]

3. 1. 정수 표현

128비트 레지스터는 2128영어 (3.40 × 1038 이상)개의 서로 다른 값을 저장할 수 있다. 128비트에 저장할 수 있는 정수 값의 범위는 사용되는 정수 표현에 따라 다르다. 가장 일반적인 두 가지 표현 방식에서 범위는 부호 없는 이진수로 표현할 때 0부터 (2128 − 1)까지이며, 2의 보수로 표현할 때는 (−2127)부터 (2127 − 1)까지이다.

4배 정밀도(128비트) 부동 소수점 수는 113비트 고정 소수점 숫자 또는 정수를 정밀도 손실 없이 정확하게 저장할 수 있다(특히 64비트 정수).

3. 2. 부동 소수점 표현

128비트 레지스터는 2128 (3.40 × 1038 이상)개의 서로 다른 값을 저장할 수 있다. 128비트에 저장할 수 있는 정수 표현에 따라 저장 가능한 정수 값의 범위가 달라진다. 가장 일반적인 두 가지 표현 방식에서 범위는 부호 없는 이진수로 표현할 때 0부터 340,282,366,920,938,463,463,374,607,431,768,211,455까지이며, 2의 보수로 표현할 때는 -170,141,183,460,469,231,731,687,303,715,884,105,728부터 170,141,183,460,469,231,731,687,303,715,884,105,727까지이다.

4배 정밀도(128비트) 부동 소수점 수는 113비트 고정 소수점 숫자 또는 정수를 정밀도 손실 없이 정확하게 저장할 수 있다(특히 64비트 정수). 또한 4배 정밀도 부동 소수점은 관측 가능한 우주의 모든 위치를 적어도 마이크로미터의 정밀도로 나타낼 수 있다.

Decimal128 부동 소수점 숫자는 최대 34자리 유효 숫자를 나타낼 수 있다.

  • 사배 정밀도 부동 소수점 수
  • IBM의 System/370은 128비트(사배 정밀도)의 부동 소수점 수 연산 기능을 가지고 있었다.

4. 소프트웨어 지원

컴파일러가 64비트 미만의 레지스터 크기를 가진 아키텍처에서 64비트 정수 산술 연산을 에뮬레이션하는 것과 마찬가지로, 일부 컴파일러는 128비트 정수 산술 연산도 지원한다. 예를 들어, GCC C 컴파일러 4.6 버전 이상은 일부 아키텍처에서 128비트 정수형 `__int128`을 지원한다.[9] GCC 및 호환 컴파일러는 `__SIZEOF_INT128__` 매크로가 정의될 때 128비트 산술 연산이 존재함을 알린다.[10] C 프로그래밍 언어의 경우, 128비트 지원은 선택 사항이며, `int128_t` 형식을 통해 사용 가능하거나 컴파일러별 확장을 통해 구현할 수 있다. 러스트 프로그래밍 언어는 모든 플랫폼에서 구현되는 128비트 정수에 대한 내장 지원을 갖추고 있다(원래는 LLVM을 통해).[11] C 컴파일러에서 제공하는 128비트 형식은 `Math::Int128` 모듈을 통해 Perl에서 사용할 수 있다.[12]

5. 활용

128비트는 다양한 분야에서 활용된다.


  • IBM 시스템 i: 가상 명령어 집합에서 모든 포인터를 128비트로 정의한다. 과거에는 48비트 주소 지정을 가진 CISC 명령어 집합을 사용했지만, 현재는 64비트 PowerPC/Power ISA를 사용한다. PowerPC/Power ISA 구현에서 처음 4바이트는 참조되는 객체의 유형을 식별하는 데 사용되고, 마지막 8바이트는 가상 메모리 주소로 사용된다.[13] 나머지 4바이트는 사용되지 않으며, 향후 코드 변경 없이 IBM i 애플리케이션을 96비트 주소 지정으로 확장할 수 있게 한다.
  • AS/400: 가상 주소 공간이 128비트이다.
  • 4배 정도(128비트) 부동소수점: 64비트 고정소수점 수나 정수로 정확하게 저장할 수 있다.
  • IBM의 System/370: 128비트(사배 정밀도) 부동 소수점 수 연산 기능을 가지고 있었다.
  • SIMD: SSE나 AltiVec는 128비트 레지스터를 4개의 32비트 값으로 병렬 연산하여 한 번에 128비트 연산을 할 수 있다.
  • PlayStation 2: Emotion Engine은 128비트 범용 레지스터를 가진 프로세서이다.[16]。단, 주소 공간은 32비트이며, 엄밀한 의미에서의 128비트 프로세서는 아니다.

5. 1. 식별자


  • RISC-V 구조 구현에 사용되는 자유 소프트웨어는 32, 64, 128비트 정수 데이터 너비를 가진다.
  • 범용 고유 식별자(UUID)는 128비트 값이다.
  • IPv6는 128비트 주소로 컴퓨터 네트워크 트래픽을 라우팅한다.
  • ZFS는 128비트 파일 시스템이다.[20]
  • 그래픽 처리 장치 칩은 보통 128비트 버스로 데이터를 전송한다.[20]
  • 암호학에서 128비트는 대칭 키 암호의 일반적인 키 크기이며, 블록 암호의 일반적인 블록 크기이다.
  • 128비트 프로세서를 사용하면 최대 2128 (약 3.40 × 1038) 바이트를 주소에 할당할 수 있다. 이는 2010년 지구 전체 데이터 저장량(약 1.2 제타바이트)을 초과한다.[21]
  • 4배 정도(128비트) 부동소수점 수는 정확도 손실 없이 64비트 고정소수점 수나 정수로 저장 가능하다.
  • IBM 시스템 i 가상 명령어 집합은 모든 포인터를 128비트로 정의한다.
  • MD5 알고리즘은 128비트 해시값을 생성하는 널리 사용되는 해시 함수이다.
  • 아파치 아브로(Apache Avro)는 데이터 파일 분할을 위해 128비트 난수를 동기화 마커로 사용한다.[14][15]
  • 사배 정밀도 부동 소수점 수
  • IBM System/370은 128비트(사배 정밀도) 부동 소수점 수 연산 기능을 가졌다.
  • AS/400의 가상 주소 공간은 128비트이다.
  • SIMD 명령 집합인 SSE나 AltiVec는 128비트 레지스터를 4개의 32비트 값으로 병렬 연산하여 한 번에 128비트 연산을 수행한다.
  • PlayStation 2의 Emotion Engine은 128비트 범용 레지스터를 가진 프로세서이다.[16]

5. 2. 네트워크

IPv6는 128비트 주소로 컴퓨터 네트워크 트래픽을 라우팅한다.[20] IPv6 주소는 128비트 크기이다.

5. 3. 파일 시스템

ZFS는 2024년 1월 현재 유일한 128비트 파일 시스템이다.[20]

5. 4. 암호학


  • 암호학에서 128비트는 대칭 키 암호를 위한 일반적인 키 크기이며 블록 암호의 일반적인 블록 크기이기도 하다.[20]
  • 128비트 프로세서를 사용하면 최대 2128 (3.40 × 1038 초과) 바이트를 주소에 할당할 수 있는데, 이는 2010년 지구에 저장된 총 데이터(약 1.2 제타바이트(1.42 × 1021 바이트))를 훨씬 초과하는 수치이다.[21]
  • 워드 크기를 늘리면 다중 정밀도 수학 라이브러리의 속도를 높일 수 있으며, 이는 암호화에 적용된다. 또한 복잡한 수학적 처리 (수치 해석, 신호 처리, 사진 편집, 오디오 및 비디오 처리)에 사용되는 알고리즘의 속도도 높일 수 있다.
  • MD5는 128비트 해시 값을 생성하는 해시 함수이다.
  • 아파치 아브로(Apache Avro)는 데이터 파일을 효율적으로 분할하기 위해 128비트 난수를 동기화 마커로 사용한다.[14][15]

5. 5. 기타


  • RISC-V 구조 구현에 사용되는 자유 소프트웨어는 32, 64, 128비트 정수 데이터 너비를 가진다.
  • 범용 고유 식별자(UUID)는 128비트 값이다.
  • IPv6는 128비트 주소로 컴퓨터 네트워크 트래픽을 라우팅한다.
  • ZFS는 2024년 1월 현재 유일한 128비트 파일 시스템이다.
  • 그래픽 처리 장치 칩은 일반적으로 128비트 버스로 데이터를 전송한다.[20]
  • 암호학에서 128비트는 대칭 키 암호의 일반적인 키 크기이자 블록 암호의 일반적인 블록 크기이다.
  • 128비트 프로세서를 사용하면 최대 2128 (약 3.40 × 1038) 바이트를 주소에 할당할 수 있는데, 이는 2010년 지구에 저장된 총 데이터(약 1.2 제타바이트)를 훨씬 초과한다.[21]
  • 4배 정도(128비트) 부동소수점 수는 정확도 손실 없이 64비트 고정소수점 수나 정수로 저장할 수 있다.
  • IBM 시스템 i 가상 명령어 집합은 모든 포인터를 128비트로 정의한다.
  • MD5 알고리즘은 128비트 해시값을 생성하는 널리 사용되는 해시 함수이다.
  • 아파치 아브로(Apache Avro)는 데이터 파일을 효율적으로 분할하기 위해 128비트 난수를 동기화 마커로 사용한다.[14][15]
  • IBM의 System/370은 128비트(사배 정밀도) 부동 소수점 수 연산 기능을 가지고 있었다.
  • AS/400의 가상 주소 공간은 128비트이다.
  • SIMD 명령 집합의 SSE나 AltiVec는 128비트 레지스터를 4개의 32비트 값으로 병렬 연산하여 한 번에 128비트 연산을 할 수 있지만, 128비트 길이의 수치를 직접 조작할 수는 없다.
  • PlayStation 2의 Emotion Engine은 128비트 범용 레지스터를 가진 프로세서이다.[16] 그러나 주소 공간은 32비트이므로 엄밀한 의미에서 128비트 프로세서는 아니다.
  • UUID나 IPv6 주소의 데이터 크기는 128비트이다.

참조

[1] 웹사이트 The Digitalization of the World from Edge to Core https://www.seagate.[...] International Data Corporation|IDC 2021-09-14
[2] 간행물 128-Bit Multicomparator https://authors.libr[...] 1976-10
[3] 간행물 Structural aspects of the System/360 Model 85, III: Extensions to floating-point architecture
[4] 간행물 Assembler Instructions (BS2000/OSD) https://bs2manuals.t[...]
[5] 간행물 A microprocessor with a 128-bit CPU, ten floating-point MAC's, four floating-point dividers, and an MPEG-2 decoder 1999-11
[6] 서적 Computer Architecture: A Quantitative Approach Morgan Kaufmann Publishers
[7] 간행물 Sony's Emotionally Charged Chip Microdesign Resources 1999-04-19
[8] 웹사이트 The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA version 2.2 https://riscv.org/te[...] University of California, Berkeley 2017-05-25
[9] 웹사이트 GCC 4.6 Release Series – Changes, New Features, and Fixes https://gcc.gnu.org/[...] 2016-07-25
[10] 웹사이트 128-bit integer – nonsensical documentation? https://gcc.gnu.org/[...] GCC-Help 2015-08-26
[11] 웹사이트 i128 – Rust https://doc.rust-lan[...] 2020-06-25
[12] 웹사이트 Math::Int128 https://metacpan.org[...] 2020-06-25
[13] 서적 Inside the AS/400, Second Edition https://books.google[...] Duke Press
[14] 웹사이트 Re: Synchronization Markers https://mail-archive[...] 2013-01-24
[15] 웹사이트 Apache Avro 1.8.0 Specification https://avro.apache.[...] Apache Software Foundation
[16] 문서 ゲーム機における「製品に関するビット数広告」表示と「CPUビット数」表示との差異 http://www.sanosemi.[...]
[17] 문서 http://ieeexplore.ie[...]
[18] 문서 http://ieeexplore.ie[...]
[19] 웹인용 GCC 4.6 Release Series - Changes, New Features, and Fixes https://gcc.gnu.org/[...] 2016-07-25
[20] 저널 The Graphics Processor http://www.tomshardw[...] tomshardware.com 2006-07
[21] 저널 Digital Universe nears a Zettabyte http://www.datacente[...] datacenterknowledge.com 2010-05
[22] 저널 128-bit multicomparator http://ieeexplore.ie[...]
[23] 저널 A microprocessor with a 128-bit CPU, ten floating-point MAC's, four floating-point dividers, and an MPEG-2 decoder



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com