Рубрика «8086»

Числа с плавающей запятой необходимы для научного программирования, однако первые процессоры напрямую поддерживали лишь операции с целыми числами. Но ранние микропроцессоры всё же могли производить операции с числами с плавающей запятой. Такие операции просто разбивались на множество целочисленных, манипуляции с экспонентой и дробной частью. Иначе говоря, поддержка плавающей запятой не сделала возможной операции с ней в принципе – она просто серьёзно их ускорила. Существует ещё один способ представления нецелых чисел – это числа с фиксированной запятой, у которых есть неизменное количество цифр после десятичного разделителя. С ними работать проще, однако с их помощью можно представить диапазон заметно меньшего размера.

Хотя операции с плавающей запятой на мейнфреймах были обычным делом уже в 1950-х и 1960-х годах, только в 1980-м Intel представила сопроцессор с плавающей запятой 8087 для микрокомпьютеров.

8087 не был первым чипом с поддержкой плавающей запятой. National Semiconductor представила MM57109 Number Cruncher Unit [«перемалыватель цифр»] – так его реально назвали – в 1977-м. Это был, по сути, чип от научного калькулятора на 12 цифр в новом корпусе, работающий с десятичными значениями в двоичном представлении, и требовавший ввода данных в обратной польской записи. Чип работал до абсурдного медленно: к примеру, на вычисление тангенса могло уйти до секунды. AMD представила свой первый чип с поддержкой плавающей запятой, Am9511, в 1978-м. Этот чип поддерживал 32-битные числа с плавающей запятой, и на вычисление тангенса тратил до 1,4 мс. В итоге Intel купила у AMD лицензию на Am9511 и продавала его как 8231. 8087 на 10 МГц, для сравнения, мог вычислить тангенс за 54 мкс, работая с 80-битным числом с плавающей запятой. Вот насколько быстродействие и точность 8087 были выше его предшественников.
Читать полностью »

vvvphoenix упомянул в своей позавчерашней статье: «Кстати, я пытался найти график роста числа X86 инструкций по годам (или по поколениям). Пока не смог (может, есть у кого?)»

Я решил, что мне это тоже интересно — да настолько, что не жалко потратить выходной день на сведение en.wikipedia.org/wiki/X86_instruction_listings в одну табличку:

Сколько инструкций в x86? - 1

Считались различные мнемоники; например, десятки вариантов MOVЧитать полностью »

В 1980 году Intel представила чип 8087 для ускорения обработки чисел с плавающей запятой на 8086-х процессорах, и его использовали в оригинальном IBM PC. Поскольку первые микропроцессоры работали только с целыми числами, арифметика с числами с плавающей запятой была медленной, а с трансцендентными функциями вроде арктангенса или логарифмов дела обстояли ещё хуже. Добавление чипа сопроцессора 8087 к системе было способно ускорить операции с числами с плавающей запятой до ста раз.

Я вскрыл чип 8087 и сделал несколько его фотографий под микроскопом. На фото ниже показан крохотный кремниевый кристалл чипа. По его бокам крохотные проводники соединяют его с 40 внешними ногами. Разметка основных функциональных блоков на картинке сделана мною благодаря реверс-инжинирингу. Если внимательно изучить чип, то можно извлечь из его ПЗУ различные константы – такие числа, как π, используемые чипом в вычислениях.

Извлекаем константы с кристалла математического сопроцессора 8087 - 1
Кристалл чипа от Intel 8087 для работы с плавающей запятой с отмеченными основными функциональными блоками. ПЗУ с константами отмечен зелёным. Кликабельно.
Читать полностью »

Авторы — Джон Хеннесси и Дэвид Паттерсон, лауреаты премии Тьюринга 2017 года «за новаторский систематический и измеримый подход к проектированию и проверке компьютерных архитектур, оказавший долговременное влияние всю отрасль микропроцессорной техники». Статья опубликована в журнале Communications of the ACM, февраль 2019, том 62, № 2, стр. 48-60, doi:10.1145/3282307

Новый золотой век для компьютерной архитектуры - 1«Те, кто не помнит прошлого, обречены повторить его» — Джордж Сантаяна, 1905

Свою лекцию Тьюринга 4 июня 2018 года мы начали с обзора компьютерной архитектуры, начиная с 60-х годов. Кроме него, мы освещаем актуальные проблемы и пытаемся определить будущие возможности, которые сулят новый золотой век в области компьютерной архитектуры в следующем десятилетии. Такой же, как в 1980-е, когда мы проводили свои исследования по улучшению в стоимости, энергоэффективности, безопасности и производительности процессоров, за что и получили эту почётную награду.

Ключевые идеи

  • Прогресс программного обеспечения может стимулировать архитектурные инновации
  • Повышение уровня программно-аппаратных интерфейсов создаёт возможности для инноваций архитектуры
  • Рынок в конечном итоге определяет победителя в споре архитектур

Читать полностью »

От загрузчика к ядру

Если вы читали предыдущие статьи, то знаете о моём новом увлечении низкоуровневым программированием. Я написал несколько статей о программировании на ассемблере для x86_64 Linux и в то же время начал погружаться в исходный код ядра Linux.

Мне очень интересно разобраться, как работают низкоуровневые штуки: как программы запускаются на моём компьютере, как они расположены в памяти, как ядро управляет процессами и памятью, как работает сетевой стек на низком уровне и многое другое. Итак, я решил написать еще одну серию статей о ядре Linux для архитектуры x86_64.

Обратите внимание, что я не профессиональный разработчик ядра и не пишу код ядра на работе. Это всего лишь хобби. Мне просто нравятся низкоуровневые вещи и интересно в них копаться. Поэтому если заметите какую-то путаницу или появилятся вопросы/замечания, свяжитесь со мной в твиттере, по почте или просто создайте тикет. Буду благодарен.
Читать полностью »

Вы думаете, что всё началось с Intel 4004, но всё не так просто

Неожиданная история микропроцессоров - 1
Intel 4-битный 4004

Транзисторы, электронные усилители и переключатели, находящиеся сейчас в центре всего, от карманного радиоприёмника до суперкомпьютера, были изобретены в 1947 году. Ранние прототипы звались биполярными транзисторами, и они всё ещё в ходу. К 1960-м инженеры придумали, как комбинировать несколько биполярных транзисторов на одной интегральной микросхеме. Но из-за их сложной структуры, на схеме могло быть только небольшое их количество. Поэтому, хотя мини-компьютер, созданный на основе биполярных интегральных микросхем, был гораздо меньше ранних компьютеров, ему требовалось несколько плат с сотнями чипов на них.

В 1960-м был показан новый тип транзисторов: транзистор со структурой металл-окисел-полупроводник, МОП-транзистор. Сначала технология не выглядела многообещающей. Они были медленнее, менее надёжными и более дорогими, чем биполярные. Но к 1964-му интегральные микросхемы на МОП-транзисторах уже могли похвастаться большей плотностью и меньшей стоимостью производства, чем биполярные. Сложность интегральных микросхем росла согласно закону Мура, но технология МОП вырвалась вперёд.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js