Как стать автором
Обновить

Комментарии 24

8087 отнюдь не позволил ПК конкурировать с мэйнфреймами: он был весьма и весьма медленным, хотя, конечно, позволял выполнять вычисления с плавающей запятой намного быстрей, чем выполнение тех же операций чисто программным путём. Посмотрите времена выполнения операций в нём (а заодно и в 8086) и сравните с другими машинами.

Его ещё почему-то назвали процессором, хотя в то время называли сопроцессором.

При всей его "сопроцессорности", он сидел на шине параллельно, собственно, процессору 8086 и поддерживал все машинные циклы, необходимые для арбитража шины. При этом, он вычленял из потока опкодов свои команды, которые сам процессор молотил как NOPы по сути. Т.е. команды сопроцессору дополняли таблицу опкодов процессора. Ну и у процессора был ещё префикс LOCK, запрещающий сопроцессору использовать шину в пределах действия префикса, что гарантировало процессору доступность шины для завершения залоченных команд (сопроцессор мог занимать шину достаточно надолго).

Ну, он сопроцессором и был -- в частности, он не мог самостоятельно выбирать команды, это делал настоящий процессор (8086). Собственно, сопроцессоры, которые не являлись обязательными, но могли наращивать возможности основного процессора -- вещь не новая; скажем, у многих процессоров PDP-11 были необязательные FPU, которые тем или иным путём следили за выборкой команд и перехватывали управление, когда видели свою команду. Это, конечно, не микропроцессоры, но идея довольно близкая.

А как основной процессор выполнял команду сопроцессору в отсутствие последнего?

В PDP-11 просто возникало прерывание по неизвестной команде, так что была возможность программной эмуляции нужных команд при отсутствии железа, что выполнялось незаметно для прикладных программ (не считая более медленного выполнения, конечно) -- этим в определённых случаях пользовались.

Как в 8086 -- честно говоря, не помню, а поднимать документацию и разбираться лениво :) Но, по идее, тоже должно быть прерывание.

Да, наверняка прерывания. Я просто подзабыл уже, что такой механизм существует :)

У х86 есть исключения #InvalidOpcode (вектор 6) и #CoprocessorNotAvaiable (вектор 7).

  EVERYTHING YOU ALWAYS WANTED TO KNOW ABOUT MATH COPROCESSORS

https://docs.google.com/document/d/1SLnsJjShN-8lkj2LxcH979TF3_kzxVu_QIAZtOWbj4U/edit

В ранних версиях турбо-паскаля sin(1000) существенно не попадал в диапазон [-1,1].

Одинарная точность (32 бита) стала универсальным выбором для большинства задач. Двойная точность (64 бита) предназначалась для ситуаций, требующих повышенной точности и широкого диапазона. А расширенная точность (80 бит) использовалась в особых случаях, когда каждый бит был на счету.

Когда каждый бит на счету, используется их минимальное количество, а не максимальное)

Ну, из контекста можно сделать вывод, что имелся в виду каждый бит точности, а не занимаемого места в памяти.

Так себе статья.
С одной стороны - много какой-то невнятной лирики, с другой - мало полезного, много неточностей (если не сказать ошибок) и даже текст программы не отформатирован как код.
Слегка спасают только комментарии.

откуда вообще в математике возникла концепция плавающей запятой?

В математике плавающей запятой никогда не было. Она появилась в вычислительной технике.

Ну не скажите. Вся концепция вычислений через логарифмы эксплуатирует ту же самую идею. Это задолго до появления вычислительной техники.

Что такое "вычисления через логарифмы"? Если вы говорите об умножении чисел путём сложения их логарифмов, то там этой "концепции" и близко нет. Плавающая запятая - это хранение числа в виде двух чисел: мантиссы и порядка. Для математики в этом нет необходимости, она работает с абстрактными числами независимо от способа их записи и хранения.

А как, вы думаете, физики, астрономы записывали большие (маленькие) числа при вычислениях?

Я чувствую, вы не понимаете разницы между математикой с одной стороны и физикой и астрономией с другой.

Я отвечал на Ваше утверждение "Она появилась в вычислительной технике." Как я понял, Вы уже сами от него отказались.

Формат чисел с плавающей точкой появился в вычислительной технике. А физики используют экспоненциальную запись чисел.

Экспоненциальная запись — это и есть один из форматов записи чисел с плавающей точкой. Только не битами, а ручкой на бумаге.

Долго читал ожидая, когда же начнётся что-то интересное или полезное. Увы, так и не дождался.

Цитирую:

В 1914 году Леонардо Торрес-и-Кеведо, испанский инженер и изобретатель, предложил использовать экспоненциальную запись для представления чисел в вычислительных машинах.

Вопрос: в 1914 году точно существовали вычислительные машины кроме арифмометра ? но там вроде целые числа , хотя деление возможно.

Подозреваю, что электронных машин тогда не было. Но это могло быть предложение "на будущее", чисто как теоретическая разработка. О полётах в космос и квантовых компьютерах начали же писать задолго до...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий