Forth http://fforum.winglion.ru/ |
|
Форт и форт-процессор http://fforum.winglion.ru/viewtopic.php?f=3&t=2826 |
Страница 3 из 4 |
Автор: | Hishnik [ Вт фев 19, 2019 03:03 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
ath писал(а): аппаратное умножение BCD-чисел. С чего бы такое умножение было эффективнее в кремнии обычного двоичного умножителя? Про ПЛИС я и не говорю - там аппаратное двоичное умножение, BCD вообще не к месту. |
Автор: | ath [ Вт фев 19, 2019 04:50 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
В эффективности перед двоичным умножением не уверен. Надо считать, а лучше моделировать и измерять. У BCD-арифметики есть преимущество в калькуляторах. Эта сложная тема знакома на практике тем, кто профессионально занимался калькуляторами. Люди привыкли считать в десятичной системе, поэтому BCD-расчёты дают наиболее предсказуемые результаты. Где 1/5, например, имеет конечное представление, а правила округления соответствуют школьному учебнику. Можно считать это «человеческим фактором», но именно из-за него форматы BCD и DPD не просто живы, а совершенствуются. Как и библиотеки десятичной арифметики. Если в ПМК числа требуется вводить, хранить и выводить в BCD, наличие аппаратной схемы BCD-умножения ускорит вычисления. В первых Бейсиках (не знаю, как в современных) мантисса плавучки хранилась в BCD, вычисления с плавающей точкой тоже были в BCD. Двоичные числа были только для целых переменных. Библиотека десятичных чисел высокой точности фирмы Intel (формат decimal128, 34 десятичных разряда) используется в программе-калькуляторе Free42 — том самом DM42, что недавно SwissMicros выпустила «в железе». |
Автор: | Hishnik [ Вт фев 19, 2019 17:26 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
ath писал(а): В эффективности перед двоичным умножением не уверен. Надо считать, а лучше моделировать и измерять. 16 разрядов - 65536 двоичных чисел или 10000 BCD. Чем дальше, тем больше отставание BCD в диапазоне чисел. ath писал(а): Эта сложная тема BCD хорошо знакома еще тем, кто видел 580ВМ80. ath писал(а): Где 1/5, например, имеет конечное представление А, к примеру, 1/3 и 1/7 не имеют. ath писал(а): Если в ПМК числа требуется вводить, хранить и выводить в BCD, наличие аппаратной схемы BCD-умножения ускорит вычисления. Вводить и выводить - да. При хранении затраты памяти выше. При расчетах сложность схем больше. Ускорения нет. Вывод с форматным преобразованием является относительно малой частью вычислительной нагрузки. |
Автор: | ath [ Ср фев 20, 2019 12:10 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
Тема сложна не потому, что сложно понять схему кодирования десятичных цифр в тетрадах или алгоритмы BCD-арифметики. Это как раз технарю проще всего понять, под такое наши мозги и заточены. Психология человека, входные данные (которые мы приучены округлять до N десятичных цифр), «естественные ожидания» от вычислений — понимание этой «биологии» требует другого образования. Под двоичную арифметику надо переучиваться. Тех же, кого мы переучить не можем (от кассирши Гали и лаборанта Антона до олигарха Пупкина и профессора Знайки), проще обеспечить десятичным вычислительным «движком». При такой задаче честная BCD-арифметика выигрывает (в плане взаимодействия с человеком) по сравнению с BCD-интерфейсом к «чёрному ящику», где внутри капризная двоичка. Подробнее про недостатки («особенности») двоичной арифметики, в которых даже некоторые технари путаются: https://0.30000000000000004.com Hishnik писал(а): ath писал(а): В эффективности перед двоичным умножением не уверен. Надо считать, а лучше моделировать и измерять. 16 разрядов - 65536 двоичных чисел или 10000 BCD. Чем дальше, тем больше отставание BCD в диапазоне чисел. Поэтому для упаковки и хранения десятичных чисел был придуман DPD формат, где эксплуатируется близость 1024 к тысяче. В 10 битах можно плотно закодировать три десятичные цифры, в 20 — шесть. Возможно, получится аппаратно складывать DPD-числа, не переводя их в BCD. Но аппаратным ускорителем их умножения я пока не занимался. Для АЛУ, afaik, удобней BCD. Hishnik писал(а): ath писал(а): Где 1/5, например, имеет конечное представление А, к примеру, 1/3 и 1/7 не имеют. С этим как раз можно смириться, т.к. большинство десятичных гомо сапиенсов такое поймут и простят. Но есть фрики, для которых ⅓ также важна, как ½ и 1/5. Собственно, из-за их многовековой настойчивости в прямом угле 90 градусов, а в минуте 60 секунд. |
Автор: | Hishnik [ Ср фев 20, 2019 19:25 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
Это все ликбез, в котором схемотехники обязаны разбираться. И схемотехники не настолько идиоты, что не понимают своего счастья, а постоянно делают двоичные схемы, без всяких BCD и Сетуней. |
Автор: | ath [ Чт фев 21, 2019 10:23 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
BCD из совершенно другой оперы, чем Сетунь. Сетунь — отечественная разработка. Крупнейший проект троичной машины, альтернативный двоичным машинам, которые сейчас индустриальный стандарт. BCD же работает на двоичных машинах. Это полезный инструмент, который не отменяет двоичную арифметику, а дополняет её. BCD и DPD не просто используются в современной зарубежной индустрии, они поддерживаются и развиваются. Например, библиотека десятичной плавучки Intel была обновлена в июне прошлого года (Version 2.0 Update 2 не просто исправляет ошибки, но добавляет новые функции) и протестирована на Linux, Windows, OSX, и Solaris. Цитата: Product Overview Software implementation of the IEEE 754-2008 Decimal Floating-Point Arithmetic specification, aimed at financial applications, especially in cases where legal requirements make it necessary to use decimal, and not binary floating-point arithmetic (as computation performed with binary floating-point operations may introduce small, but unacceptable errors). Из-за стремления некоторых технарей, знакомых только с двоичной арифметикой, всюду совать только её, в некоторых наиболее ответственных финансовых приложениях использование десятичной арифметики — требование законодательства США. Это позволяет избегать ошибок двоичной арифметики — небольших, но не всегда приемлемых. В некоторых специализированных ЯВУ, от Кобола до Ады (финансовые и военные приложения), есть такой явный тип данных — десятичная плавучка. Даже в GNU C она поддерживается. EDIT. По поводу аппаратной поддержки процессорами. Сейчас залез на сайт Интел, загрузил официальное руководство по Core X, за январь 2019. Чтение и запись 8-байтных упакованных BCD чисел (FBLD и FBSTP) поддерживается современными FPU. Даже DAA, DAS, AAA, AAS, AAM и AAD поддерживаются во всех режимах, кроме 64-битного. Это Россия забросила уникальную Сетунь, как и большинство советских архитектур (что своё, не ценим), а BCD вполне себе живёт в США как в камне, так и в виде библиотек, вошла в ЯВУ и стандарты ISO/IEC/IEEE. Наоборот — даже законодательно кое-где потребовалось запретить коварную двоичку, так упорствуют её странные фанатики. |
Автор: | Hishnik [ Чт фев 21, 2019 23:33 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
ath писал(а): BCD же работает на двоичных машинах. Это полезный инструмент, который не отменяет двоичную арифметику, а дополняет её. Продолжение ликбеза? ath писал(а): Из-за стремления некоторых технарей, знакомых только с двоичной арифметикой, Я не могу представить технаря, способного сделать чип, но при этом знакомого только с двоичной арифметикой. Это нонсенс. ath писал(а): EDIT. По поводу аппаратной поддержки процессорами. Сейчас залез на сайт Интел, загрузил официальное руководство по Core X, за январь 2019. Чтение и запись 8-байтных упакованных BCD чисел (FBLD и FBSTP) поддерживается современными FPU. Даже DAA, DAS, AAA, AAS, AAM и AAD поддерживаются во всех режимах, кроме 64-битного. Я еще выше написал, что BCD знакома людям, работавшим с 580ВМ80. Что тут такого необычного, элитарного или непостижимого? Только вот команды эти отдельные и называются "десятичная коррекция после <....>". ath писал(а): Это Россия забросила уникальную Сетунь, Уникальность Сетуни разве что в том, что на ресурсах, которые были способны хранить 4 комбинации, хранились 3. Эффективность.... ath писал(а): Наоборот — даже законодательно кое-где потребовалось запретить коварную двоичку, так упорствуют её странные фанатики. Показательный пример демагогии. "Коварная", "упорствуют странные фанатики" - все это эмоциональные эпитеты, призванные придать техническому термину негативную окраску, выставив его странным, редким и ненужным. В то же время ситуация обстоит ровно противоположным образом, тем более что двоичное представление, будучи элементарным, никаких особых фанатиков и не имеет. Напротив, изучение форматов представления чисел отталкивается от двоичного, а дальше уже идут и BCD, и signed/unsigned, и фиксированная точка, и плавающая, и рациональные числа и что угодно еще, на что хватит фантазии. В итоге на негативном фоне читатели подталкиваются к выводу "раз это плохо, значит, альтернатива - хорошо". |
Автор: | ath [ Пт фев 22, 2019 17:30 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
В самой двоичной плавучке нет ничего негативного. Её сфера применения обширна, преимущества (и по скорости, и по объёму памяти) очевидны. «Негативную окраску» я придаю упорству «двоичников», кто зубами вцепился в простейшее и не понимает, ради чего человечество тратит столько усилий по реализации полезных надстроек над двоичным фундаментом — BCD-арифметики, целочисленной и с плавающей запятой. Собственно, из-за этого в некоторых калькуляторах, написанных непрофессионально, сложение 0,1 и 0,2 приводит к парадоксальному результату. Для понимания которого надо хорошо знать «глюки» двоичного представления. Ещё пример — из 1,2 сперва вычесть 1, а потом 0,2. В моей системе ценностей демагогия это попытка объяснить владельцу такого «вычислительного средства» (даже без эмоций), что отличие результата от нуля это «нормально, обычно и общепринято». Хотя готовое решение (BCD-арифметика) знакомо человечеству далеко не первое десятилетие. В этом примере, кстати, никакая "десятичная коррекция после <....>" не спасёт, если само вычитание выполнить в двоичной плавучке FPU. Для точного нуля потребуется именно честная десятичная плавучка, как в вышеупомянутой библиотеке Интела. Альтернатива хороша не из-за красноречия учителя. Она хороша потому, что умные люди в США наткнулись на проблему и разработали это хорошее решение. Которое и было использовано швейцарцом в калькуляторе DM42. Новосибирск, кстати, свою десятичную плавучку в МК-161 взял не американскую, а из советских разработок. Лично им по почте прислал книгу, в которой были описаны формулы, применявшиеся для вычисления математических функций в советских ЭВМ — и наработки наших предков помогли повысить точность АЛУ с 12 до 14 десятичных знаков. P.S. Про Сетунь интересно пообщаться. Но не уверен, что данная тема подходяща. Саму Сетунь копал, но интересных личных наработок по троичному процессору у меня нет. Если хотите, перейдём в тему, где уже обсуждают троичную логику. |
Автор: | Ilya [ Пт фев 22, 2019 20:15 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
Hishnik писал(а): ath писал(а): Это Россия забросила уникальную Сетунь, Уникальность Сетуни разве что в том, что на ресурсах, которые были способны хранить 4 комбинации, хранились 3. Эффективность.... Вот тут как поглядеть! Работал я как-то в одной Питерской конторе, которая занимается комплексами телемеханики. Основная часть оборудования и ПО, своей разработки и производства. Много было спецов ещё старой "совковой" школы, так и вот, рассказывали они мне много чего интересного. Например: имеется "ячейка" на подстанции с МВ или каким рубильником и обычно для телемеханики выделен один контрольный контакт для ТМ, 1 - ячейка ВКЛ, 0 - ячейка ВЫКЛ. Вроде всё хорошо и логично, но поскольку были и хитровыделанные разработчики, кои предусмотрели в подобной ячейке пару контрольных контактов (нормально замкнутый и нормально разомкнутый). И вот вроде лишние затраты как по "железу", так и по памяти (целых 2 бита, на один контактор, вместо привычных 1-го), но предположим окислился, сгнил, рептилоиды отрезали один из проводков в одноконконтакной ячейке и ты пребываешь в полном заблуждении, а при 2-х контактной схеме, вы будете однозначно уверены в исправности контрольного оборудования. |
Автор: | zma [ Пт фев 22, 2019 22:54 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
Ilya писал(а): при 2-х контактной схеме, вы будете однозначно уверены в исправности контрольного оборудования. Так это резервирование. Нужно ли по этому принципу всю вычислительную машину строить? |
Автор: | Hishnik [ Сб фев 23, 2019 00:45 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
ath писал(а): «Негативную окраску» я придаю упорству «двоичников», кто зубами вцепился в простейшее и не понимает, ради чего человечество тратит столько усилий по реализации полезных надстроек над двоичным фундаментом — BCD-арифметики, целочисленной и с плавающей запятой. А этот прием называется "избиение смоляного чучелка". Ну и кто "вцепился зубами в простейшее", если я уже третий раз указываю на 580ВМ80, который есть копия Intel 8080. Однако при таком подходе пропадает возможность "развенчать", отсюда и вылезают какие-то упертые консерваторы. ath писал(а): Ещё пример — из 1,2 сперва вычесть 1, а потом 0,2. В моей системе ценностей демагогия это попытка объяснить владельцу такого «вычислительного средства» (даже без эмоций), что отличие результата от нуля это «нормально, обычно и общепринято». Хотя готовое решение (BCD-арифметика) знакомо человечеству далеко не первое десятилетие. Ой, прелесть какая! Да при любой системе счисления плавающая точка даст погрешность при сложении/вычитании, если порядки не совпадают. Можно кодировать мантиссу хоть в двоичной форме, хоть в BCD - при нормализации/денормализации мантисса сдвигается с потерей младших разрядов. Или BCD должно быть неким волшебным средством, про которое постесняются сказать, что "король-то голый", когда натолкнутся на ровно тот же эффект? Разница в том, что в BCD число 0,2 не имеет хвоста из младших разрядов, а для двоичного представления такими числами будут отрицательные степени двойки. Однако за пределами вот этих вот показательных примеров окажется, что реальному миру в целом все равно, что там человек считает круглым числом, и разные числа приходят для обработки в целом равновероятно. Если же это финансы или какие-то процессы с естественной дискретизацией, то вообще-то надо грамотно выбирать формат для хранения и обработки чисел. В том числе и из BCD, раз уж он поддержан аппаратно с незапамятных времен. ath писал(а): и наработки наших предков Волхвов Сварога? ath писал(а): повысить точность АЛУ с 12 до 14 десятичных знаков. Есть еще такая вещь - бит переноса. Так вот он позволяет получать практически неограниченную разрядность. Другое дело, что производительность страдает. Но иметь хоть 100 десятичных разрядов - это вопрос рутинный. Видимо действительно какие-то совсем уж дремучие предки были. |
Автор: | Hishnik [ Сб фев 23, 2019 00:46 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
Ilya писал(а): а при 2-х контактной схеме, вы будете однозначно уверены в исправности контрольного оборудования. Однозначно - при 3-контактной (т.е. мажоритарная схема, triple modular redundancy). Но Сетунь такого как раз не давала. |
Автор: | ath [ Сб фев 23, 2019 04:33 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
Hishnik писал(а): Разница в том, что в BCD число 0,2 не имеет хвоста из младших разрядов, а для двоичного представления такими числами будут отрицательные степени двойки. И эта разница существенна, при диалоге с человеком. Тут не только финансы. Физики, да и другие учёные, привыкли округлять до десятичных знаков и работать с ними. Биологу не особо интересны глюки, возникающие у двоичной плавучки. Hishnik писал(а): Если же это финансы или какие-то процессы с естественной дискретизацией, то вообще-то надо грамотно выбирать формат для хранения и обработки чисел. В том числе и из BCD, раз уж он поддержан аппаратно с незапамятных времен. Именно. Если вы с этим согласны и не выступаете против аппаратной поддержки BCD-арифметики — не понимаю вообще, о чём спор. С моей же стороны всё выглядело, как попытка маргинализовать BCD-арифметику сравнением с троичной логикой. Которая действительно «не пошла в народ» и осталась академическим курьёзом на страницах Дональда Кнута. Что же до ваших приёмов и названий из методичек, мне они мало интересны. Я всё это изучал практически, когда приходилось защищаться от негодяев в сети — в том числе от агрессивных читателей ваших методичек со «смоляными чучелами». В начале 2000’х был бум, когда разные нехорошие люди в погонах наконец-то узнали о существовании Интернета и стали забивать эфир этой псевдонаучной мутью, распиливая бюджет на «информационные войны». До этого народ в Фидо нормально общался. Особенно технари, не ушедшие в «уровни допуска». Когда всех токсичных авторов этих «чучел» похоронят, мир наконец-то вздохнёт спокойно. Hishnik писал(а): ath писал(а): повысить точность АЛУ с 12 до 14 десятичных знаков. Есть еще такая вещь - бит переноса. Так вот он позволяет получать практически неограниченную разрядность. Другое дело, что производительность страдает. Именно. Алгоритмов для получения десятичных представлений много. Изучив их и выбрав наилучшие, можно повысить разрядность вычислений, оставаясь в рамках приемлемого быстродействия. АЛУ калькуляторов также занимается тригонометрией и логарифмами, там не только биты переноса. |
Автор: | Hishnik [ Сб фев 23, 2019 18:52 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
ath писал(а): Физики, да и другие учёные, привыкли округлять до десятичных знаков и работать с ними. Не говорите за нас, что мы привыкли делать. Физики "привыкли" (а на самом деле - обязаны согласно метрологии) округлять до ошибки, определяемой эталоном. Она часто записывается в десятичном виде, однако 53 бита двоичной мантиссы - это 15-16 десятичных знаков. А эталон подобного уровня - это цезиевые атомные часы, их единицы в мире. На практике любой прибор имеет максимум 20-22 "рабочих" двоичных разрядов при представлении времени (если брать термостатированные кварцевые генераторы), в пределе 40 при использовании рубидиевых часов, которые недешевы. По напряжению все еще хуже, поскольку 16 разрядов АЦП - это уже прецизионный источник опорного напряжения. Еще раз - это для двоичного представления. Поэтому можно достаточно безболезненно отбрасывать младшие разряды мантиссы, в которых накапливается ошибка. ath писал(а): Если вы с этим согласны и не выступаете против аппаратной поддержки BCD-арифметики — не понимаю вообще, о чём спор. И я не понимаю, какой тезис насчет BCD был высказан. Что надо на него переходить? А чем мешает существующая поддержка, начиная с i8080 = 580ВМ80, с которой ознакомлены, видимо, все программисты, которые более или менее плотно занимались ассемблером. Уж хотя бы поинтересоваться, что это за "десятичная коррекция" - вопрос элементарной любознательности. ath писал(а): С моей же стороны всё выглядело, как попытка маргинализовать BCD-арифметику сравнением с троичной логикой. Которая действительно «не пошла в народ» и осталась академическим курьёзом на страницах Дональда Кнута. Так и BCD "не пошла в народ" в том смысле, что это представление просто заняло свое место в процессорах, и никакого ажиотажа вокруг не наблюдается. ath писал(а): Что же до ваших приёмов и названий из методичек, мне они мало интересны. "Карел Чапек. Двенадцать приемов литературной полемики или Пособие по газетным дискуссиям" http://lib.ru/SOCFANT/CHAPEK/gazeta.txt Чапек достаточно известный автор, и низводить его до "автора методичек" - показатель малограмотности. Или же признак, опять же описанный у Чапека под п.2 Цитата: Прием второй, или Termini (терминология - лат.). Этот прием заключается в использовании специальных полемических оборотов. Если вы, например, напишете, что господин Икс, по вашему мнению, в чем-то неправ, то господин Икс ответит, что вы "вероломно обрушились на него". То есть вот это - «Негативную окраску» я придаю упорству «двоичников», кто зубами вцепился в простейшее" уже описано у Чапека. Программисты, которых просто устраивает низкоуровневая реализация представления чисел, внезапно превращаются в "двоичников, кто зубами вцепился". Указание на то, что эти демагогические приемы не новы и описаны еще Чапеком, превращается в "приемы и названия из методичек". Я, к слову, принципиально в данных случаях действую противоположным образом и стараюсь "вскрыть" ситуацию и довести ее до проверяемых утверждений и изложения фактов. Например Цитата: Ulises (Улисс (Одиссей) - символ хитрости - лат.) - прием восьмой. Главное в нем - уклониться в сторону и говорить не по существу вопроса. Начинаем избавляться от этого. Вы критикуете двоичное представление с плавающей точкой, приводя в качестве примера потерю точности при нормализации мантиссы (но в соответствии с приемом "Одиссей" умалчивая, как с этим обстоят дела у BCD). Берем пример с BCD-представлением мантиссы. Допустим, что мантисса имеет 5 знаков - просто чтобы было удобнее их считать прямо на экране. 1.0001 E0 - 9.0001 E-1 + 9.0001 E-1 = ... Жду объяснения, почему при BCD-представлении мантиссы эффект от потери младших знаков почему-то пропадает по сравнению с двоичным представлением. ath писал(а): АЛУ калькуляторов также занимается тригонометрией и логарифмами, там не только биты переноса. Я так подозреваю, что вы и в этом вопросе плаваете. ath писал(а): В начале 2000’х был бум, когда разные нехорошие люди в погонах наконец-то узнали о существовании Интернета и стали забивать эфир этой псевдонаучной мутью, распиливая бюджет на «информационные войны». До этого народ в Фидо нормально общался. Особенно технари, не ушедшие в «уровни допуска». Когда всех токсичных авторов этих «чучел» похоронят, мир наконец-то вздохнёт спокойно. Второй [+] (я тоже в Фидо был, комодератором в числе прочего). Еще одно сообщение на политическую тему или аргумент с упоминанием "людей в погонах", "спецслужб", "эксплуататоров", "ворья" и т.п. - будет бессрочный бан. |
Автор: | Victor__v [ Сб фев 23, 2019 19:25 ] |
Заголовок сообщения: | Re: Форт и форт-процессор |
Слова человека не знакомого с разработкой процессоров. А в чём сыр-бор. Давайте лучше операции с дробями будут |
Страница 3 из 4 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |