128비트 컴퓨팅

128-bit computing

컴퓨터 아키텍처에서 128비트 정수, 메모리 주소 또는 기타 데이터 단위는 128비트(16옥텟) 너비의 데이터 단위입니다.또한 128비트 Central Processing Unit(CPU; 중앙처리장치) 및 Salculate Logic Unit(ALU; 산술로직유닛) 아키텍처는 해당 크기의 레지스터, 주소 버스 또는 데이터 버스에 기반한 아키텍처입니다.

현재 128비트 정수 또는 주소로 동작하도록 설계된 메인스트림 범용 프로세서는 없지만 128비트 데이터 청크로 동작하는 특별한 방법이 있는 프로세서가 많습니다.

표현

128비트 프로세서는 최대 2바이트(3.40×1038 초과)의 직접128 주소를 지정하는 데 사용할 수 있으며, 이는 2018년 현재 지구에서 캡처, 생성 또는 복제된 총 데이터(2바이트 [1]초과74)를 크게 초과합니다.

128비트 레지스터는 2개의 다른 값(3.40 × 1038 이상)을 저장할128 수 있습니다.128비트로 저장할 수 있는 정수 값의 범위는 사용되는 정수 표현에 따라 달라집니다.두개의 가장 공통적인 표현을 하는(부호 없는)이진 숫자로 표현의 범위는 0을 통해 340,282,366,920,938,463,463,374,607,431,768,211,455(2128 − 1),(−2127)170,141,183,460,469,231,731,687,303,715,884,105,727(2127 − 1) 통해 두번의 complem로 표현하기 위해−170,141,183,460,469,231,731,687,303,715,884,105,728.멤머는.

4배의 정밀도(128비트) 부동소수점 숫자는 113비트 고정소수점수 또는 정수를 정밀도(특히 64비트 정수)를 잃지 않고 정확하게 저장할 수 있습니다.4중 정밀 플로트는 관측 가능한 우주의 어떤 위치도 마이크로미터 [citation needed]정밀도로 나타낼 수 있습니다.

10진수 128 부동 소수점 숫자는 최대 34자리 유효 숫자를 나타낼 수 있습니다.

역사

128비트 멀티 컴퍼레이터는 1976년에 [2]연구자들에 의해 설명되었다.

IBM System/360 Model 85 [3]IBM System/370 및 그 후속 제품은 128비트 부동 소수점 연산을 지원합니다.

Siemens 7.700 및 7.500 시리즈의 메인프레임과 그 후계기는 128비트 부동소수점 [4]연산을 지원합니다.

대부분의 최신 CPU는 SIMD(Streaming SIMD Extensions, AltiVec 등) 명령 세트를 갖추고 있으며 128비트 벡터 레지스터를 사용하여 32비트 부동소수점 숫자 등 여러 개의 작은 숫자를 저장합니다.그런 다음 단일 명령이 이러한 모든 값에 대해 병렬로 작동할 수 있습니다.단, 이들 프로세서는 128비트 길이의 바이너리 숫자로 동작하지 않고 벡터 레지스터만 128비트 크기로 되어 있습니다.

DEC VAX는 128비트 정수('O' 또는 '옥타워드') 및 128비트 부동소수점('H-float' 또는 'HFLOAT') 데이터 타입에 대한 동작을 지원했습니다.이러한 조작에 대한 지원은 표준 기능이 아닌 업그레이드 옵션이었습니다.VAX의 레지스터는 32비트 폭이었기 때문에 128비트 연산은 4개의 연속 레지스터 또는 메모리 내의 4개의 롱워드를 사용했다.

ICL 2900 시리즈는 128비트 어큐뮬레이터를 제공했으며 명령어 세트에는 128비트 부동소수점 및 패킹된 10진수 산술이 포함되어 있습니다.

128비트 멀티미디어 확장기능을 갖춘 CPU는 1999년에 [5]연구자들에 의해 설계되었다.

6세대 비디오 게임기드림캐스트와 플레이스테이션2는 그들의 능력을 표현하기 위해 마케팅에서 "128비트"라는 용어를 사용했다.플레이스테이션2의 CPU는 128비트 SIMD 기능을 갖추고 있었다.[6][7]어느 콘솔도 128비트 주소 지정 또는 128비트 정수 연산을 지원하지 않습니다.

하드웨어

2016년부터의 RISC-V ISA 사양에는 128비트 버전의 아키텍처가 포함되어 있지만, 이러한 대용량 메모리 [8]시스템은 아직 실질적인 경험이 거의 없기 때문에 세부 사항은 의도적으로 정의되지 않았습니다.

GPU(그래픽 처리 장치) 칩은 일반적으로 128비트 [9]버스를 통해 데이터를 전송합니다.

소프트웨어

예를 들어 레지스터 크기가 64비트 미만인 아키텍처에서 컴파일러가 64비트 정수 연산을 에뮬레이트하는 것과 마찬가지로 일부 컴파일러는 128비트 정수 연산도 지원합니다.예를 들어 GCC C 컴파일러 4.6 이후는 128비트 정수 타입입니다.__int128아키텍처에 [10]따라 달라집니다.GCC 및 호환 컴파일러는 매크로가 128비트 산술의 존재를 알립니다.__SIZEOF_INT128__정의되어 있습니다.[11]C 프로그래밍 언어의 경우 128비트 지원은 옵션입니다(예:int128_ttype 또는 컴파일러 고유의 확장으로 구현할 수 있습니다.Rust 프로그래밍 언어에는 128비트 정수(원래 LLVM 경유)가 내장되어 있어 모든 [12]플랫폼에 구현되어 있습니다.C 컴파일러가 제공하는 128비트 타입은 Perl에서Math::Int128모듈로 이동합니다.[13]

사용하다

  • RISC-V 아키텍처 구현에 사용되는 프리 소프트웨어는 32, 64 및 128비트의 정수 데이터 폭에 대해 정의됩니다.
  • Universal Unique Identifier(UUID; 범용 고유 식별자)는 128비트 값으로 구성됩니다.
  • IPv6 는, 128비트 범위의 주소간에 컴퓨터 네트워크 트래픽을 라우팅 합니다.
  • ZFS는 128비트 파일시스템입니다
  • 128비트는 대칭 암호의 공통크기이며 블록 암호의 공통 블록 크기입니다.
  • IBM i 가상 명령 집합은 모든 포인터를 128비트로 정의합니다.이것은 필요에 따라 하드웨어의 실제 명령 세트로 변환되므로 소프트웨어를 재컴파일하지 않고도 기본 하드웨어를 변경할 수 있습니다.기존 하드웨어는 48비트 CISC였지만 현재 하드웨어는 64비트 PowerPC입니다.포인터는 128비트로 정의되어 있기 때문에 소프트웨어 호환성이 없는 미래의 하드웨어는 128비트가 될 수 있습니다.
  • 단어 크기를 늘리면 암호화에 대한 응용 프로그램을 통해 여러 정밀 수학 라이브러리의 속도를 높일 수 있으며 복잡한 수학 처리(수치 분석, 신호 처리, 복잡한 사진 편집, 오디오비디오 처리)에 사용되는 알고리즘의 속도를 높일 수 있습니다.
  • MD5는 128비트 해시값을 생성하는 해시함수입니다.
  • Apache Avro는 데이터 [14][15]파일을 효율적으로 분할하기 위해 128비트 난수를 동기화 마커로 사용합니다.

레퍼런스

  1. ^ Reinsel, David; Gantz, John; Rydning, John (November 2018). "The Digitalization of the World from Edge to Core" (PDF). Seagate Technology. IDC. p. 3. Archived (PDF) from the original on 7 September 2021. Retrieved 14 September 2021.
  2. ^ Mead, Carver A.; Pashley, Richard D.; Britton, Lee D.; Daimon, Yoshiaki T.; Sando, Stewart F., Jr. (October 1976). "128-Bit Multicomparator" (PDF). IEEE Journal of Solid-State Circuits. 11 (5): 692–695. Bibcode:1976IJSSC..11..692M. doi:10.1109/JSSC.1976.1050799. S2CID 27262034. Archived (PDF) from the original on 3 November 2018.
  3. ^ Padegs A (1968). "Structural aspects of the System/360 Model 85, III: Extensions to floating-point architecture". IBM Systems Journal. 7: 22–29. doi:10.1147/sj.71.0022.
  4. ^ Assembler Instructions (BS2000/OSD). 1993.
  5. ^ Suzuoki, M.; Kutaragi, K.; Hiroi, T.; Magoshi, H.; Okamoto, S.; Oka, M.; Ohba, A.; Yamamoto, Y.; Furuhashi, M.; Tanaka, M.; Yutaka, T.; Okada, T.; Nagamatsu, M.; Urakawa, Y.; Funyu, M.; Kunimatsu, A.; Goto, H.; Hashimoto, K.; Ide, N.; Murakami, H.; Ohtaguro, Y.; Aono, A. (November 1999). "A microprocessor with a 128-bit CPU, ten floating-point MAC's, four floating-point dividers, and an MPEG-2 decoder". IEEE Journal of Solid-State Circuits. 34 (11): 1608–1618. Bibcode:1999IJSSC..34.1608S. doi:10.1109/4.799870.
  6. ^ L. 헤네시데이비드 A. 패터슨."컴퓨터 아키텍처:정량적 접근법, 제3판"을 참조해 주세요.ISBN 1-55860-724-2
  7. ^ 키스 디펜더프.'소니의 감성 충전 칩'마이크로프로세서 보고서, 제13권, 제5호, 1999년 4월 19일마이크로 설계 리소스.
  8. ^ Waterman, Andrew; Asanović, Krste. "The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA version 2.2". University of California, Berkeley. EECS-2016-118. Retrieved 25 May 2017.
  9. ^ Woligroski, Don (24 July 2006). "The Graphics Processor". Tom's Hardware. Archived from the original on 11 April 2013. Retrieved 24 February 2013.
  10. ^ "GCC 4.6 Release Series - Changes, New Features, and Fixes". Retrieved 25 July 2016.
  11. ^ Marc Glisse (26 August 2015). "128-bit integer - nonsensical documentation?". GCC-Help. Retrieved 23 January 2020.
  12. ^ "i128 - Rust". doc.rust-lang.org. Retrieved 25 June 2020.
  13. ^ "Math::Int128". metacpan.org. Retrieved 25 June 2020.
  14. ^ Kleppmann, Martin (24 January 2013). "Re: Synchronization Markers". Archived from the original on 27 September 2015.
  15. ^ "Apache Avro 1.8.0 Specification". Apache Software Foundation.