Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В  компьютерной архитектуры , 128-битных чисел , адресов памяти , или других данных единиц являются те , которые являются 128 битов (16 октетов ) в ширину. Кроме того, 128-битные архитектуры ЦП и ALU основаны на регистрах , адресных шинах или шинах данных такого размера.

Хотя в настоящее время нет основных процессоров общего назначения, предназначенных для работы со 128-битными целыми числами или адресами, у ряда процессоров есть специальные способы работы с 128-битными порциями данных. IBM System / 370 можно считать первой простой 128-битный компьютер, так как он используется 128-битный с плавающей точкой регистров. Большинство современных ЦП имеют наборы инструкций с одной инструкцией и множественными данными (SIMD) ( Streaming SIMD Extensions , AltiVecи т. д.), где 128-битные векторные регистры используются для хранения нескольких меньших чисел, таких как четыре 32-битных числа с плавающей запятой. Затем одна инструкция может работать со всеми этими значениями параллельно. Однако эти процессоры не работают с отдельными числами длиной 128 двоичных разрядов; только их регистры имеют размер 128 бит.

DEC VAX поддерживает операции с типами данных 128-битных целых ('O' или octaword) и 128-битных чисел с плавающей запятой ('H-float' или HFLOAT). Поддержка таких операций была вариантом обновления, а не стандартной функцией. Поскольку регистры VAX были 32-битными, 128-битная операция использовала четыре последовательных регистра или четыре длинных слова в памяти.

В серии ICL 2900 предусмотрен 128-битный аккумулятор, а его набор команд включает 128-битную арифметику с плавающей запятой и упакованную десятичную арифметику.

Точно так же, как компиляторы эмулируют, например, 64-битную целочисленную арифметику на архитектурах с размером регистров менее 64 бит, некоторые компиляторы также поддерживают 128-битную целочисленную арифметику. Например, компилятор GCC C 4.6 и более поздних версий имеет 128-битный целочисленный тип __int128для некоторых архитектур. [1] GCC и совместимые компиляторы сигнализируют о наличии 128-битной арифметики, когда определен макрос __SIZEOF_INT128__ . [2] Для языка программирования C 128-битная поддержка не является обязательной, например, через int128_tтип, или она может быть реализована с помощью специфичного для компилятора расширения. В язык программирования Rust встроена поддержка 128-битных целых чисел, которая реализована на всех платформах.[3] 128-битный тип, предоставляемый компилятором C, может быть доступен в Perl черезMath::Int128модуль. [4]

128-битный регистр может хранить 2 128 (более 3,40 × 10 38 ) различных значений. Диапазон целочисленных значений, которые могут храниться в 128 битах, зависит от используемого целочисленного представления . С помощью двух наиболее распространенных представлений, диапазон составляет от 0 до 340.282.366.920.938.463.463.374.607.431.768.211.455 (2 128 - 1) для представления в виде ( без знака ) двоичного числа , и -170,141,183,460,469,231,731,687,303,715,884,105,728 (-2 127 ) через 170,141,183,460,469,231,731,687,303,715,884,105,727 (2 127 - 1) для представления в качестве дополнения до двух .

Использует [ редактировать ]

  • Свободное программное обеспечение используется для реализации RISC-V архитектуры определенно в течение 32, 64 и 128 битых ширины целочисленных данных.
  • Универсальные уникальные идентификаторы (UUID) состоят из 128-битного значения.
  • IPv6 направляет трафик компьютерной сети между 128-битным диапазоном адресов.
  • ZFS - это 128-битная файловая система.
  • Чипы графического процессора (GPU) обычно перемещают данные по 128-битной шине. [5]
  • 128 бит - это общий размер ключа для симметричных шифров и общий размер блока для блочных шифров в криптографии .
  • 128-битные процессоры могут использоваться для прямой адресации до 2128 (более3,40 × 10 38 ) байтов, что значительно превышает общий объем данных, хранящихся на Земле по состоянию на 2010 год, который, по оценкам, составляет около 1,2 зеттабайта (более 2 70 байтов). [6]
  • Числа с плавающей запятой четырехкратной точности (128-битные) могут точно хранить 113-битные числа с фиксированной запятой или целые числа без потери точности (например, 64-битные целые числа). Поплавки с четырехкратной точностью также могут представлять любую позицию в наблюдаемой Вселенной с точностью не менее микрометра. [ необходима цитата ]
  • Decimal128 чисел с плавающей запятой может представлять числа до 34 значащих цифр.
  • Набор виртуальных инструкций AS / 400 определяет все указатели как 128-битные. Это преобразуется в реальный набор инструкций оборудования по мере необходимости, что позволяет изменять базовое оборудование без необходимости перекомпилировать программное обеспечение. Прошлое оборудование было 48-битным CISC , а текущее - 64-битным PowerPC . Поскольку указатели определены как 128-битные, будущее оборудование может быть 128-битным без несовместимости программного обеспечения.
  • Увеличение размера слова может ускорить работу математических библиотек с множеством точных данных с приложениями для криптографии и потенциально ускорить алгоритмы, используемые в сложной математической обработке ( численный анализ , обработка сигналов , сложное редактирование фотографий и обработка аудио и видео ).
  • MD5 - это хеш-функция, производящая 128-битное хеш-значение.
  • Apache Avro использует 128-битное случайное число в качестве маркера синхронизации для эффективного разделения файлов данных. [7] [8]

История [ править ]

128-битный мультикомпаратор был описан исследователями в 1976 г. [9]

ЦП со 128-битными мультимедийными расширениями был разработан исследователями в 1999 году [10].

Спецификация RISC-V ISA от 2016 года включает резервирование для 128-битной версии архитектуры, но детали намеренно остаются неопределенными, поскольку пока еще очень мало практического опыта работы с такими большими системами памяти. [11]

Ссылки [ править ]

  1. ^ «Серия выпусков GCC 4.6 - Изменения, новые функции и исправления» . Проверено 25 июля 2016 года .
  2. ^ Марк Glisse (26 августа 2015). «128-битное целое - чушь документация?» . GCC-Help . Проверено 23 января 2020 года .
  3. ^ "i128 - Ржавчина" . doc.rust-lang.org . Проверено 25 июня 2020 .
  4. ^ "Math :: Int128" . metacpan.org . Проверено 25 июня 2020 .
  5. ^ Woligroski, Дон (24 июля 2006). «Графический процессор» . Оборудование Тома . Архивировано 11 апреля 2013 года . Проверено 24 февраля 2013 года .
  6. Миллер, Рич (4 мая 2010 г.). «Цифровая Вселенная приближается к Зеттабайту» . Знание центров обработки данных . Архивировано 6 мая 2010 года . Проверено 16 сентября 2010 года .
  7. ^ Kleppmann, Мартин (24 января 2013). «Re: Маркеры синхронизации» . Архивировано 27 сентября 2015 года.
  8. ^ «Спецификация Apache Avro 1.8.0» . Фонд программного обеспечения Apache .
  9. ^ Мид, Карвер А .; Пэшли, Ричард Д .; Бриттон, Ли Д .; Даймон, Йошиаки Т .; Сандо, Стюарт Ф. младший (октябрь 1976 г.). «128-битный мультикомпаратор» (PDF) . Журнал IEEE по твердотельным схемам . 11 (5): 692–695. Bibcode : 1976IJSSC..11..692M . DOI : 10.1109 / JSSC.1976.1050799 . Архивировано 3 ноября 2018 года (PDF) .
  10. ^ Сузуоки, М .; Кутараги, К .; Hiroi, T .; Magoshi, H .; Окамото, S .; Ока, М .; Ohba, A .; Yamamoto, Y .; Furuhashi, M .; Tanaka, M .; Ютака, Т .; Окада, Т .; Nagamatsu, M .; Urakawa, Y .; Фунью, М .; Кунимацу, А .; Goto, H .; Хашимото, К .; Ide, N .; Murakami, H .; Ohtaguro, Y .; Аоно, А. (ноябрь 1999 г.). «Микропроцессор со 128-битным процессором, десятью MAC с плавающей запятой, четырьмя делителями с плавающей запятой и декодером MPEG-2». Журнал IEEE по твердотельным схемам . 34 (11): 1608–1618. Bibcode : 1999IJSSC..34.1608S . DOI : 10.1109 / 4.799870 .
  11. ^ Уотерман, Эндрю; Асанович, Крсте . «Руководство по набору команд RISC-V, Том I: Базовый пользовательский уровень ISA, версия 2.2» . Калифорнийский университет в Беркли. EECS-2016-118 . Дата обращения 25 мая 2017 .