Jump to content

128-битные вычисления

(Перенаправлено со 128-битной версии )

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

Утилита общего назначения для домашних вычислений и игр появилась с размером слова 8 бит, т.е. 2 8 =256 слов , естественная единица данных, становятся возможными. Таким образом, ранние 8-битные процессоры ( Zilog Z80 , MOS Technology 6502 , Intel 8088, представленные в 1976–1981 годах компаниями Commodore , Tandy Corporation , Apple и IBM ) открыли эру персональных компьютеров. Многие 16-битные процессоры уже существовали в середине 1970-х годов. В течение следующих 30 лет переход к 16-битным, 32-битным и 64-битным вычислениям позволил соответственно 2 16 = 65 536 уникальных слов, 2 32 = 4 294 967 296 уникальных слов и 2 64 = 18 446 744 073 709 551 616 уникальных слов соответственно, каждый шаг дает значительное преимущество до тех пор, пока не будет достигнуто 64 бита. Дальнейшие преимущества исчезают при переходе от 64-битных к 128-битным вычислениям, поскольку количество возможных значений в регистре увеличивается примерно с 18 квинтиллионов ( 1,8 × 10 19 ) до 340 ундециллионов ( 3,4 × 10 38 ), поскольку так много уникальных значений никогда не используются. Таким образом, с регистром, который может хранить 2 128 значений, никаких преимуществ перед 64-битными компьютерами ни для домашних компьютеров, ни для игр. Процессоры с большим размером слова также требуют больше схем, физически больше, требуют больше энергии и выделяют больше тепла. Таким образом, в настоящее время не существует основных процессоров общего назначения, созданных для работы со 128-битными целыми числами или адресами, хотя у ряда процессоров есть специализированные способы работы с 128-битными фрагментами данных, которые приведены в § История .

Представительство

[ редактировать ]

Процессор со 128-битной байтовой адресацией может напрямую адресовать до 2 128 (более 3,40 × 10 38 ) байт, что значительно превышает общий объем данных, собранных, созданных или реплицированных на Земле по состоянию на 2018 год, который, по оценкам, составляет около 33 зеттабайт (более 2 74 байты). [1]

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 году. [2]

IBM System/360 Модель 85 , [3] а IBM System/370 и его преемники поддерживают 128-битную арифметику с плавающей запятой.

Мэйнфреймы Siemens серий 7.700 и 7.500 и их преемники поддерживают 128-битную арифметику с плавающей запятой. [4]

Большинство современных процессоров имеют «одна инструкция, несколько данных наборы инструкций » (SIMD) ( Streaming SIMD Extensions , AltiVec и т. д.), где 128-битные векторные регистры используются для хранения нескольких меньших чисел, например четырех 32-битных чисел с плавающей запятой. Тогда одна инструкция может работать со всеми этими значениями параллельно. Однако эти процессоры не работают с отдельными числами длиной 128 двоичных цифр; только их векторные регистры имеют размер 128 бит.

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

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

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

Среди игровых консолей шестого поколения Dreamcast « и PlayStation 2 использовали в своем маркетинге термин 128-бит» для описания своих возможностей. Процессор Playstation 2 имел 128-битные возможности SIMD. [6] [7] Ни одна консоль не поддерживала 128-битную адресацию или 128-битную целочисленную арифметику.

Аппаратное обеспечение

[ редактировать ]

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

Программное обеспечение

[ редактировать ]

Точно так же, как компиляторы эмулируют, например, 64-битную целочисленную арифметику на архитектурах с размером регистров менее 64 бит, некоторые компиляторы также поддерживают 128-битную целочисленную арифметику. Например, компилятор GCC C версии 4.6 и более поздних версий имеет 128-битный целочисленный тип. __int128 для некоторых архитектур. [9] GCC и совместимые компиляторы сигнализируют о наличии 128-битной арифметики, когда макрос __SIZEOF_INT128__ определяется. [10] Для языка программирования C поддержка 128-бит необязательна, например, через int128_t type, или он может быть реализован с помощью расширения, специфичного для компилятора. Язык программирования Rust имеет встроенную поддержку 128-битных целых чисел (первоначально через LLVM ), которая реализована на всех платформах. [11] 128-битный тип, предоставляемый компилятором C, может быть доступен в Perl через Math::Int128 модуль. [12]

Использование

[ редактировать ]
  • Универсально уникальные идентификаторы (UUID) состоят из 128-битного значения.
  • IPv6 маршрутизирует трафик компьютерной сети по 128-битному диапазону адресов.
  • ZFS — 128-битная файловая система.
  • 128 бит — это общий размер ключа для симметричных шифров и общий размер блока для блочных шифров в криптографии .
  • Машинный интерфейс IBM i определяет все указатели как 128-битные. Инструкции машинного интерфейса при необходимости преобразуются в реальный набор инструкций оборудования, что позволяет изменять базовое оборудование без необходимости перекомпиляции программного обеспечения. Предыдущее оборудование имело набор инструкций CISC с 48-битной адресацией, а нынешнее оборудование — 64-битное PowerPC / Power ISA . В реализации PowerPC/Power ISA первые четыре байта содержат информацию, используемую для идентификации типа объекта, на который ссылаются, а последние восемь байтов используются в качестве адреса виртуальной памяти. [13] Остальные четыре байта не используются и позволят в будущем расширить приложения IBM i до 96-битной адресации без необходимости изменения кода.
  • Увеличение размера слова может ускорить работу нескольких прецизионных математических библиотек с приложениями к криптографии и потенциально ускорить алгоритмы, используемые в сложной математической обработке ( численный анализ , обработка сигналов , сложное редактирование фотографий , а также аудио и обработка видео ).
  • MD5 — это хэш-функция, создающая 128-битное хеш-значение.
  • Apache Avro использует 128-битное случайное число в качестве маркера синхронизации для эффективного разделения файлов данных. [14] [15]
  1. ^ Рейнзель, Дэвид; Ганц, Джон; Райднинг, Джон (ноябрь 2018 г.). «Цифровизация мира от края до ядра» (PDF) . Технология Сигейт . ИДЦ . п. 3. Архивировано (PDF) из оригинала 7 сентября 2021 г. Проверено 14 сентября 2021 г.
  2. ^ Мид, Карвер А .; Пэшли, Ричард Д.; Бриттон, Ли Д.; Даймон, Ёсиаки Т.; Сандо, Стюарт Ф. младший (октябрь 1976 г.). «128-битный мультикомпаратор» (PDF) . Журнал IEEE твердотельных схем . 11 (5): 692–695. Бибкод : 1976IJSSC..11..692M . дои : 10.1109/JSSC.1976.1050799 . S2CID   27262034 . Архивировано (PDF) из оригинала 3 ноября 2018 г.
  3. ^ Падегс А (1968). «Структурные аспекты System/360 Model 85, III: Расширения архитектуры с плавающей запятой». IBM Systems Journal . 7 : 22–29. дои : 10.1147/sj.71.0022 .
  4. ^ Инструкции ассемблера (BS2000/OSD) . 1993.
  5. ^ Сузуоки, М.; Кутараги, К.; Хирои, Т.; Магоши, Х.; Окамото, С.; Ока, М.; Охба, А.; Ямамото, Ю.; Фурухаси, М.; Танака, М.; Ютака, Т.; Окада, Т.; Нагамацу, М.; Уракава, Ю.; Фьюнью, М.; Кунимацу, А.; Гото, Х.; Хасимото, К.; Иде, Н.; Мураками, Х.; Отагуро, Ю.; Аоно, А. (ноябрь 1999 г.). «Микропроцессор со 128-битным процессором, десятью MAC с плавающей запятой, четырьмя делителями с плавающей запятой и декодером MPEG-2». Журнал IEEE твердотельных схем . 34 (11): 1608–1618. Бибкод : 1999IJSSC..34.1608S . дои : 10.1109/4.799870 .
  6. ^ Хеннесси, Джон Л .; Паттерсон, Дэвид А. (2003). Компьютерная архитектура: количественный подход (Третье изд.). Издательство Морган Кауфманн. ISBN  1-55860-724-2 .
  7. ^ Дифендорф, Кейт (19 апреля 1999 г.). «Эмоционально заряженный чип Sony». Отчет микропроцессора . 13 (5). Ресурсы по микродизайну.
  8. ^ Уотерман, Эндрю; Асанович, Крсте . «Руководство по набору команд RISC-V, том I: Базовая версия ISA 2.2 уровня пользователя» . Калифорнийский университет, Беркли. ЕЭКС-2016-118 . Проверено 25 мая 2017 г.
  9. ^ «Серия выпусков GCC 4.6 – изменения, новые функции и исправления» . Проверено 25 июля 2016 г.
  10. ^ Марк Глисс (26 августа 2015 г.). «128-битное целое число – бессмысленная документация?» . GCC-Справка . Проверено 23 января 2020 г.
  11. ^ «i128 — Ржавчина» . doc.rust-lang.org . Проверено 25 июня 2020 г.
  12. ^ "Математика::Int128" . Metacpan.org . Проверено 25 июня 2020 г.
  13. ^ Фрэнк Г. Солтис (1997). Внутри AS/400, второе издание . Дьюк Пресс. ISBN  978-1-882419-66-1 .
  14. ^ Клеппманн, Мартин (24 января 2013 г.). «Re: Маркеры синхронизации» . Архивировано из оригинала 27 сентября 2015 года.
  15. ^ «Спецификация Apache Avro 1.8.0» . Фонд программного обеспечения Apache .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 543072e42946594183f05b33dc30cf8e__1721590500
URL1:https://arc.ask3.ru/arc/aa/54/8e/543072e42946594183f05b33dc30cf8e.html
Заголовок, (Title) документа по адресу, URL1:
128-bit computing - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)