128-битные вычисления - 128-bit computing
Разрядность архитектуры компьютера |
---|
Немного |
заявка |
Двоичная точность с плавающей запятой |
Десятичная точность с плавающей запятой |
В компьютерной архитектуры , 128-битных чисел , адресов памяти , или других данных единиц являются те , которые являются 128 битов (16 октетов ) в ширину. Кроме того, 128-битные архитектуры ЦП и ALU основаны на регистрах , адресных шинах или шинах данных такого размера.
Хотя в настоящее время нет основных процессоров общего назначения, предназначенных для работы со 128-битными целыми числами или адресами, у ряда процессоров есть специальные способы работы с 128-битными порциями данных.
Представление
128-битные процессоры могут использоваться для прямой адресации до 2128 (более3,40 × 10 38 ) байтов, что значительно превысит общий объем данных, собранных, созданных или реплицированных на Земле по состоянию на 2018 год, который, по оценкам, составляет около 33 зеттабайт (более 2 74 байтов).
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) для представления в качестве дополнения до двух .
Числа с плавающей запятой четырехкратной точности (128-битные) могут точно хранить 113-битные числа с фиксированной запятой или целые числа без потери точности (в частности, 64-битные целые числа). Поплавки с четырехкратной точностью также могут представлять любую позицию в наблюдаемой Вселенной с точностью не менее микрометра.
Decimal128 чисел с плавающей запятой может представлять числа, содержащие до 34 значащих цифр.
История
128-битный мультикомпаратор был описан исследователями в 1976 году.
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-битную арифметику с плавающей запятой и упакованную десятичную арифметику.
Процессор со 128-битными мультимедийными расширениями был разработан исследователями в 1999 году.
Dreamcast и PlayStation 2 среди поколения Шестого видео игровых консолей используются термин «128-битный» в своем маркетинге , чтобы описать свои возможности. Процессор Playstation 2 имел 128-битные возможности SIMD . Ни одна из консолей не поддерживала 128-битную адресацию или 128-битную целочисленную арифметику.
Аппаратное обеспечение
Спецификация RISC-V ISA от 2016 года включает резервирование для 128-битной версии архитектуры, но детали намеренно остаются неопределенными, поскольку пока еще очень мало практического опыта работы с такими большими системами памяти.
Чипы графического процессора (ГП) обычно перемещают данные по 128-битной шине.
Программное обеспечение
Точно так же, как компиляторы эмулируют, например, 64-битную целочисленную арифметику на архитектурах с размером регистров менее 64 бит, некоторые компиляторы также поддерживают 128-битную целочисленную арифметику. Например, компилятор GCC C 4.6 и более поздних версий имеет 128-битный целочисленный тип __int128
для некоторых архитектур. GCC и совместимые компиляторы сигнализируют о наличии 128-битной арифметики при определении макроса __SIZEOF_INT128__
. Для языка программирования C 128-битная поддержка не является обязательной, например, через int128_t
тип, или она может быть реализована с помощью расширения, специфичного для компилятора. Язык программирования Rust имеет встроенную поддержку 128-битных целых чисел (изначально через LLVM ), которая реализована на всех платформах. 128-битный тип, предоставляемый компилятором C, может быть доступен в Perl через Math::Int128
модуль.
Использует
- Свободное программное обеспечение используется для реализации RISC-V архитектуры определенно в течение 32, 64 и 128 битых ширины целочисленных данных.
- Универсальные уникальные идентификаторы (UUID) состоят из 128-битного значения.
- IPv6 направляет трафик компьютерной сети между 128-битным диапазоном адресов.
- ZFS - это 128-битная файловая система.
- 128 бит - это общий размер ключа для симметричных шифров и общий размер блока для блочных шифров в криптографии .
- Набор виртуальных инструкций IBM i определяет все указатели как 128-битные. При необходимости это преобразуется в реальный набор инструкций оборудования, что позволяет изменять базовое оборудование без необходимости перекомпилировать программное обеспечение. Прошлое оборудование было 48-битным CISC , в то время как текущее оборудование - 64-битное PowerPC . Поскольку указатели определены как 128-битные, будущее оборудование может быть 128-битным без несовместимости программного обеспечения.
- Увеличение размера слова может ускорить работу математических библиотек с множеством точных данных с приложениями для криптографии и потенциально ускорить алгоритмы, используемые в сложной математической обработке ( численный анализ , обработка сигналов , сложное редактирование фотографий и обработка аудио и видео ).
- MD5 - это хеш-функция, производящая 128-битное хеш-значение.
- Apache Avro использует 128-битное случайное число в качестве маркера синхронизации для эффективного разделения файлов данных.