Архив→Аппаратная часть→Троичное одноразрядное трёхбитное бинарное АЛУ

На рисунке приведена схема троичного одноразрядного трёхбитного одноединичного бинарного АЛУ с двухтритным (двухразрядным) выходом.
Устройство состоит из двухтритного дешифратора "два трёхбитных одноединичных трита в один девятибитный одноединичный код" на девяти логических элементах "2И", двух переключателей "1 на 3" из двух групп по девять демультиплексоров DMX управляемых трёхбитным одноединичным кодом и двух девятитритных регистров функций (операций) RG1 и RG2.
На входы устройства Т1 и Т2 подаются два трёхбитных одноединичных кода операндов. По стробам C1 и C2 в регистры RG1 и RG2 загружаются два девятитритных трёхбитных одноединичных кода функций (операций), которые переключают мультиплексоры на выполнение требуемой функции (операции). На выходе устройства образуется двухразрядный (двухтритный) результат в троичном трёхбитном одноединичном коде.
Например, для выполнения операции (функции) троичного логического сложения в регистр RG1 загружается код функции логического сложения по модулю 3, в регистр RG2 загружается код функции вычисляющей значение в разряде переноса, на выходе устройства образуется двухтритный (двухразрядный) результат операции троичного логического сложения в троичном трёхбитном одноединичном коде.
Описанное устройство выполняет любую из 3^((3^2)*2)=387 420 489 троичных бинарных (двухоперандных) логических функций с бинарным (двухразрядным) результатом (выходом).
Андрей Куликов,
Мнения
001 Полное троичное тринарное (трёхоперандное, два операнда и перенос из предыдущего разряда) АЛУ строится последовательным включением двух таких устройств.
Первая ступень складывет два операнда, вторая ступень складывет результат первого сложения с разрядом переноса из предыдущего разряда или наоборот, первая ступень складывает один из двух операндов с разрядом переноса из предыдущего разряда, а вторая ступень складывает результат первого сложения со вторым операндом.
Результат состоит из двух тритов - трит суммы трёх слагаемых по модулю 3 и трит переноса в следующий разряд.002 В схеме не нарисованы шесть логических элементов "9ИЛИ" к которым должны подключаться выходы демультиплексоров.
003 
Исправленная схема.
004 Приведённая схема троичного одноразрядного трёхбитного одноединичного бинарного АЛУ выглядит внешне вполне работоспособно.
Можно собрать на макетке и проверить с помощью переключателей и светодиодов.
Но возникает несколько интересных вопросов,:
с самого начала смущает количество ( 387 420 489 )! троичных бинарных (двухоперандных) логических функций.
Логично что при всём этом богатстве прктический интерес будут представлять примерно несколько десятков функций.
Отсюда другая часть вопроса - известно ли соответствие кода (от --- до +++) к названию этих функций,
может существует уже известная таблица или способ генерации этих соответствий?
Практически те же вопросы относятся к коду функции для разряда переноса.
Смысл этих вопросов в том что - можно ли будет в будущем многоразрядном АЛУ организовать из 4х-5и разрядного кода инструкций
полный 18и разрядный код функции005 1. Приведённая схема является схемой разряда не полного АЛУ, так как входных операндов только два. В некоторых операциях, например, сложение и вычитание необходим третий операнд для разряда переноса в n+1 разряд или разряда займа из n+1 разряда. В этих случаях число тринарных троичных функций с бинарным результатом одного разряда составит 3^((3^3)*2)=58 149 737 003 040 059 690 390 159 (58 септиллионов 149 секстиллионов 737 квинтиллионов 003 квадриллиона 040 триллионов 059 миллиардов 690 миллионов 390 тысяч 169) (статья "Троичная логика" в Википедии). В многоразрядном АЛУ возможна загрузка в разные разряды разных функций, также возможны функции с переносами и займами не только в соседний n+1 разряд, но и в другие разряды, например, в операциях однотактного сдвига на n разрядов, в этих случаях число функций многоразрядного АЛУ будет ещё больше.
2. Число функций, которые будут представлять практический интерес, зависит от поставленных задач. В одних случаях может быть достаточным несколько единиц функций, в других десятков, в третьих - сотен, в четвёртых - тысяч и т.д.
3. Троичному симметричному коду (-,0,+) соответствуют троичный несимметричный код (0,1,2). Некоторые троичные функции имеют собственные названия, другие троичные функции собственных названий не имеют, но имеют свой номер, который определяет и номер функции и результат действия функции, например, в бинарной (двухоперандной) троичной функции Вебба (Webb(x,y)), при записи операндов в порядке yx и пересчёте их значений от 0 до 22(троичных), имеет троичные результаты, записанные справа налево 000022021, что и является её троичным номером, которому соответствует её десятичный номер 510(десятичных) (статья "Троичная логика" в Википедии, описания после сводных таблиц троичных функций).
4. Троичная функция "Разряд переноса при бинарном сложении в несимметричной троичной системе счисления имеет троичный номер 110100000(троичных) которому соответствует десятичный номер 8991(десятичных) (статья "Троичная логика" в Википедии, таблица в разделе "Бинарные троичные логические функции").
5. Полный 18-ти разрядный код функции и более 18-ти разрядные коды функций можно организовать в будущем многоразрядном АЛУ из 4-х - 5-ти разрядного кода инструкций, если в наборе 4-х - 5-ти разрядных инструкций предусмотреть коды инструкций с одним, двумя и более 18-ти разрядными или более 18-ти разрядными рарасширениями ("прицепами-трейлерами-вагонами"). В этих случаях в наборе 4-х - 5-ти разрядных инструкций содержится указатель, указывающий, что инструкция с 18-ти разрядным или 27-ми разрядным или 54-х разрядным или 81-но разрядным и т.д. расширением, а в расширениях записываются коды самих троичных функций.006 Три последних цифры в длинном числе должны быть: 169, а не 159, как это ошибочно набрано в заметке.
008 Десятичный номер бинарной троичной функции Вебба 223(десятичных), а не 510, как это ошибочно набрано в заметке.
007 2. Число функций никак не зависит от ваших желаний, оно ПОСТОЯННО и равно нескольким десяткам. Всё остальное - их многократное повторение.
3 & 4 - ссылка на википедию, в статьях которой вы неоднократно отметились - это отличный ход.009 1.Приведённая схема схема полуАЛУ имеет в своём составе два регистра RG1 и RG2. В первый регистр записывается некий код какой-то основной функции,
во второй регистр некий код функции переноса.Регистры 9-и разрядные, следственно получается 3^9=19683 количество основных функций и такое же
количество 19683 функций переноса.Аналогичным образом организованное Полное одноразрядное АЛУ будет иметь в своём составе два двадцатисемиразрядных
регистра,т.е. получаем набор из 3^27=7625597484987 как основных так и дополнительных функций.Логично также предположить что 9-и разрядный код функций
для полуАЛУ является некоторым поднмножеством кода для Полного АЛУ. Дополнительные функциии как-то переносы и займы в соседние n+1 или вообще в произвольные
разряды многораздных АЛУ,предположительно по-трайтный перенос и другие возможности это как-бы на потом.
2.Количество практически необходимых функций конечно зависит от конкрентных задач ( 4 для простого арифметического калькулятора, несколько десятков
в практически реализаванных проектах в прошлом и в тех что развиваются в современности).Проблема была в том, что просто глядя на рисунок можно быстро разобраться как это работает,но выяснить все варианты получаемые на выходе в зависимости от входных данных и кодов функций и отсортировать из полученного
действительно великого множества наиболее интересное представляется очень долгим и нудным процессом.
Спасибо за пункт 3.(метод-правило) и пункт 4.(пример).Очень много нового,надо попереварить.Я новичёк.
3.Пункт 5. на потом.Сразу очень много нельзя.010 1.1 Так как в приведённой схеме только два операнда, а не три, как это требуется для полного АЛУ с функциями полного сложения и вычитания, то это действительно полуАЛУ. Полное АЛУ имеет три операнда. Третий операнд - разряд переноса из предыдущего разряда или разряд займа в предыдущий разряд. Обычно полное АЛУ строится из двух полуАЛУ.
1.2 В два регистра АЛУ записывается 18-ти разрядный троичный номер функции. В случае 9-ти разрядной шины за два цикла записи, в случае 18-ти разрядной шины за один цикл записи.
В случае функции (операции) неполного сложения в первый регистр записывается первая часть кода функции не полного бинарного (двухоперандного) сложения - код функции не полного бинарного сложения по модулю 3 (102021210(3)=8229(10)), а во второй регистр записывается вторая часть кода функции не полного бинарного сложения - код функции разряда переноса при двухоперандном троичном не полном сложении (110100000(3)=8991(10)) (Статья "Троичная логика" в Википедии, сводная таблица в разделе "Бинарные троичные логические функции).
1.3 Количество функций выполняемых одним троичным 9-ти разрядным регистром равно
a^((a^n)*m)=3^((3^2)*1)=3^9 = 19 683, где
a - число состояний триггера (основание системы счисления),
n - число входных операндов (входная арность),
m - число выходов (выходная арность).
Количество функций выполняемых одним троичным полуАЛУ из двух 9-ти разрядных регистров равно
3^((3^2)*2)=3^18 = 387 420 489.
1.4 Полное одноразрядное АЛУ должно быть трёхоперандным (тринарным) с бинарным (двухразрядным) выходом. Так как при троичном сложении и вычитании в третьем операнде (разряде переноса из предыдущего разряда или разряда займа в предыдущий разряд), не бывает третьего значения - 2, а бывают только значения 0 и 1, то для функций одноразрядного полного троичного сложения и одноразрядного полного троичного вычитания достаточно 24-х разрядов.
Полное АЛУ обычно строится из двух полуАЛУ.
Таким образом, один разряд полного одноразрядного АЛУ будет иметь в своём составе или четыре девятиразрядных регистра или два 24-х разрядных регистра.
Число функций одного разряда полного тринарного (трёхоперандного) АЛУ с тремя полными (3/3) операндами (27-ми разрядного) равно
3^((3^3)*2)=3^54=58 149 737 003 040 059 690 390 169.
Число функций одного разряда полного тринарного (трёхоперандного) АЛУ с неполным (2/3) третьим операндом (24-х разрядного) равно
3^(((3^3)-3)*2)=3^(24*2)=3^48=79 766 443 076 872 509 863 361, т.е. почти на 3 порядка меньше.
1.5 В состав функций одного разряда полного АЛУ с 27-ми разрядными регистрами входят все функции одного разряда АЛУ с 24-мя разрядными регистрами, все функции одного разряда АЛУ с 18-тью разрядными регистрами и все функции одного разряда АЛУ с 9-ти разрядными регистрами.
В состав функций одного разряда АЛУ с 24-мя разрядными регистрами входят все функции одного разряда АЛУ с 18-тью разрядными регистрами и все функции одного разряда АЛУ с 9-ти разрядными регистрами.
В состав функций одного разряда АЛУ с 18-тью разрядными регистрами входят все функции одного разряда АЛУ с 9-тью разрядными регистрами.
011 
Приведённая на рисунке схема проекта троичного одноразрядного трёхбитного одноединичного бинарного полуАЛУ, заметно упрощается если осуществить переход на "двухпроводную систему".
Приводится рисунок.
012 Как известно, выход годных микросхем при производстве меньше 100%. Во время эксплуатации также могут появиться неисправности двух видов: связанные с дефектами при производстве и связанные с жёсткими условиями эксплуатации.
При некотором первом множестве дефектов, предложенная Вами схема полуАЛУ в "двухпроводной троичной системе" может перейти на набор команд обычного двоичного АЛУ в "однопроводной двоичной системе" с потерей троичности и связанных с троичностью преимуществ. При том же первом множестве дефектов полуАЛУ в "трёхпроводной троичной системе" может перейти на набор команд "двухпроводной троичной системы" без потери троичности и связанных с троичностью преимуществ.
При некотором втором множестве дефектов, предложенная Вами схема полуАЛУ в "двухпроводной троичной системе" станет непригодной. При том же втором множестве дефектов полуАЛУ в "трёхпроводной троичной системе" может перейти на набор команд обычного двоичного полуАЛУ в "однопроводной двоичной системе" с потерей троичности и связанных с троичностью преимуществ, но оставаясь работоспособной.013 1. Для этого проводят тестирование аппаратуры
2. Само оно никуда не перейдёт014 До производства далеко.Более простые системы надёжнее.
Здесь важнее практичность осущевстляемая за счёт уменьшения количества соединительных линий и логических элементов.
Пример: в новой схеме для хранения кода функции используется 18-битный регистр вместо 27-битного в старой.Т.е. количество яйчеек памяти сократилось на треть (экономия порядка 33%).
Та же самая экономия получается за счёт применения переключателей "1 на 2" вместо "1 на 3",(экономия логических элементов 2И тоже порядка 33%).
Немного другая ситуация со схемой дешифрации,здесь наоборот добавляются два элемента ИЛИ-НЕ (увеличение чуть больше 20%).Но это увеличение
незначительное по сравнению достигнутой ранее экономией.
039 1. В приведённой схеме четвёртый и пятый сверху элементы 2И дешифратора срабатывают оба при одном и том же входном коде: x(+1)=0, x(-1)=0, y(+1)=1, y(-1)=0.
2. Выходы дешифратора неупорядочены.
015 В комментариях к обсуждаемому в данной теме проекту полуАЛУ предлагается метод индексации логических функций, приводится пример и ссылки на статью "Троичная логика" в Википедии.
Цитата полностью, чтобы не листать сообщения:
"3. Троичному симметричному коду (-,0,+) соответствуют троичный несимметричный код (0,1,2). Некоторые троичные функции имеют собственные названия, другие троичные функции собственных названий не имеют, но имеют свой номер, который определяет и номер функции и результат действия функции, например, в бинарной (двухоперандной) троичной функции Вебба (Webb(x,y)), при записи операндов в порядке yx и пересчёте их значений от 0 до 22(троичных), имеет троичные результаты, записанные справа налево 000022021, что и является её троичным номером, которому соответствует её десятичный номер 510(десятичных) (статья "Троичная логика" в Википедии, описания после сводных таблиц троичных функций)."
Практически применяя данную методику,мною была совершена ошибка - результаты действия функции были записаны наоборот слева направо,что привело к получению номера функции зеркальному по отношению к соответсвующему из таблицы в "Троичной логики" Википедии.
Далее предполагается,что если записывать результаты действия функции в сколь угодном произвольном порядке,то получается некоторое большое количество номеров,которые хоть и являются характерными для данной конкретной функции,так как базируются на результатах её действия,но и не являются единственно-уникальными из-за их множественности.Так как способ записи справа налево
будет тоже входить в получающееся комбинаторное множество способов записи, то и генерируемый
на его основе номер функции тоже не будет единственно-уникальным.016 Следует обратить внимание на тот факт, что достоверность данных на русской википедии касаемо многих там поднимаемых аспектов ни то что сомнительна, но и местами материалы неверны.
«Троичному симметричному коду (-,0,+) соответствуют троичный несимметричный код (0,1,2)»
Такого соответствия нету, и быть не может, это разные системы, разные логики, разные алфавиты.017 Поддерживаю. Мы все знаем автора, однако, ему все без разницы и он считает свои действия правильными.
022 Возможно имеет смысл стоит рассмотреть вопрос удаления всего мусора по троичной теме, оставив только исторические данные. Рассмотреть разумеется с привлечением модераторов Википедии.
023 Это будет новая тема для форума?
024 http://jeff.tk:81/wiki/Trinary/Arithmetic
025 Не будете возражать, если я нарисую другую таблицу с иными соответствиями? Или работа американских студентов для вас это истина в последней инстанции?
042 Это не студенты.
http://jeff.tk:81/wiki/Trinary/Midterm_Status_Report_2
Jeff Connelly (Computer Engineering), Antonio Chavez (Computer Science), Chirag Patel (Electrical Engineering), advised by Phillip Nico (Computer Science faculty), CAL POLY UNIVERSITY, SAN LUIS OBISPO
026 Какая интересная система счисления:
0 оказывается вовсе не ноль а -1 :)
Конечно ничего удивительного, можно обозначать что угодно, чем угодно.
Только вот приведённая система обозначений вовсе не соответствует троичной системе.
В троичной системе используется алфавит {0, 1, 2},
значения которого соответствуют десятичным числам 0, 1 и 2 соответственно.
Так число 12 в троичной системе равно 5 в десятичной.
Из приведенной таблицы же видно что такого соответствия нет.
027 Возможны шесть соответствий троичных числовых значений троичной несимметричной системы счисления и троичной симметричной системы счисления:
1. 2. 3. 4. 5. 6.
0 0 0 1 1 -1 -1
1 1 -1 -1 0 0 1
2 -1 1 0 -1 1 0
Из них три (1., 3. и 5.) с возрастающей последовательностью (прямое вращение) и три (2., 4. и 6.) с убывающей последовательностью (обратное вращение).
Большее соответствие имеют соответствия с прямым (возрастающим) вращением:
1. 2. 3.
0 0 -1 1
1 1 0 -1
2 -1 1 0
Все три соответствия с прямым (возрастающим) вращением являются разновидностями одного соответствия с прямым (возрастающим) вращением без сдвига (или со сдвигом 3/3) и со сдвигами на 1/3 и 2/3.
1. В первом соответствии сохраняются числовые значения 0 и 1, оно имеет наибольшее соответствие, но не применено практически.
2. Во втором соответствии не сохраняются числовые значения 0 и 1, но оно применено практически.
3. В третьем соответствии не сохраняются числовые значения 0 и 1 и оно не применено практически.028 В таблицах строки с цифрами с точками должны быть сдвинуты на один разряд вправо.
029 Суть не ясна
030 Выше был приведён пример:"Так число 12 в троичной системе равно 5 в десятичной.".
Запись в троично-симметричной системе (главная/троичный калькулятор) будет +--.
Для записи числа 5 в десятичной системе нужен один разряд (знакоместо),
для записи в просто троичной (unbalanced, 0,1,2) нужно два разряда, для троично-
симметричной системы необходимо три разряда.
Это кажется главным различием.
Внутри разряда может быть условно принятое соответствие, но по-разряздно нет.
А табличка с американского сайта может вообще "закладка".031 Из этого следует, что простая троичная система счисления (unbalansed, {0,1,2}) является более экономичной, чем троичная симметричная система счисления (balansed,{-1,0,+1}), так как для записи числа 5 в простой троичной системе счисления требуется два троичных разряда (12), а в троичной симметричной системе требуются три троичных разряда (+--).
Внутри одного разряда возможны шесть соответствий с разными степенями приближения: три соответствия с обратным (убывающим) счётом ({2,1,0}, {1,0,2}, {0,2,1}) и три соответствия с прямым (возрастающим) счётом ({0,1,2}, {1,2,0}, {2,0,1}).
Из второй тройки соответствий первое соответствие {0,1,2} сохраняет соответствие чисел 0 и 1, второе {1,2,0} и третье {2,0,1} соответствия сдвинуты на 1/3 и 2/3 по отношению к первому соответствию и не сохраняют соответствия чисел 0 и 1.
032 В третьем предложении должно быть:
"Из второй тройки соответствий третье соответствие {2,0,1} сохраняет соответствие чисел 0 и 1, первое {0,1,2} и второе {1,2,0} соответствия сдвинуты на 1/3 и 2/3 по отношению к первому соответствию и не сохраняют соответствия чисел 0 и 1".034 Первое предложение ошибочно.
Троичная несимметричная система счисления и троичная симметричная системы счисления по затратам знаков (по экономичности) равны, так как в троичной симметричной системе счисления теми же тремя знаками представляется и число -5.035 Все поименованные выше системы счисления более экономичны чем
двоичная,которая применятся в миллиардах компьютеров,мобильных телефонах, и т.д..
Основное то самое в симметрино-троичной системе ("balanced" в англ.трактовке)
её симметричность.
ИДём на Главную, далее в калькуляторе в троичной строке
набираем +++000---.
В десятичной строке появляется число 9464.
Перед этим числом ритмично вставляем и удаляем знак - "минус".
В троичной строке наблюдаем как плюсики и минусики весело меняются местами.
Обратитие внимание как ведут себя числа в других строчках.
Неужели такое ценное свойство менее важно,чем 1,5-кратная экономичность системы?
Скоро Новый Год.Будут ли симметрично-троичные поздравления участникам форума?036 Вы наверное ещё не знаете как просто округляются числа в уравновешенном троичном представлении :)
037 Ну да,сразу во всё вникнуть трудно. А эта тема симметричности - очень хороша для темы АЛУ
и сумматоров.Изменние знака числа при одновременном по-разрядном инвертировании легко осуществить
схемотехнически.Таким образом модифицируя опенранды на входах сумматора можно получить дополнительные арифметические операции.
Кстати немного не в тему,вопрос скорее философский - какое понятие более правильное:"троичная симметричная система счисления" или "троичная уравновешенная система счисления"? В смысле,
что более правильно употреблять в текстах в смысле терминологии?038 Это не имеет принципиального значения, исторически эти термины равноправны. Можете выбрать тот, который вам кажется удобнее.
033 > [для записи в просто троичной (unbalanced, 0,1,2) нужно два разряда,
> для троично-симметричной системы необходимо три разряда]
Вы заблуждаетесь: и в классической троичной и в уравновешенной троичной для представления десятичного числа 5 требуется одинаковое количестве разрядов - по три, т.к. в классической троичной системе необходимо помимо величины хранить и его знак, чего вы не делаете. Видимо подразумевая что положительное число обойдётся без знака.
021 Ну что же, надо двигать обсуждение дальше.Тема интересная и стоит того.
Предлагается начать обсуждение как бы заново,второй заход, чтобы слегка форматировать
накопившуюся информацию к размышлению из предыдущих комментов.
Представленная схема полуАЛУ сама по себе относительно проста,понятна,нет сомнений что она
вполне работоспособна.Она легко была перенесена на "двухпроводную" систему,таже легко перенести
её на "трёхуровневый" вариант,что вообщем то является её плюсом.
Так как это полуАЛУ просто полуАЛУ,представителем проекта были предложены два варианта развития данной схемы до полного функционального АЛУ.
Первый вариант это увеличение разрядности схемы до трёх входных операндов и соответствующее увеличение разрядности управляющих регистров.
Второй вариант это каскадное соединение двух полуАЛУ.Одна половинка к примеру выполняет сложение двух основных операндов,вторая производит сложение полученного результата с займом из младшего разряда.При таком способе увеличивается количество управляющих регистров.
Отсюда представляет интерес мнение представителя проекта какой вариант предпочтительней и почему?
Представленный проект, пригодный для АЛУстроения, к лёгкому сожалению единственный в своём роде.
А было бы интересно сравнить его с другими подобными проектами,если только такие имеются.
В других темах на этом форуме,имеющих общее авторство,представлены разнообразные схемы сумматоров. Сами по себе они имеют какую-то значимость,но больший интерес представляет то, что
многофункиональное АЛУ может базироваться на их основе.Может что-то предпринималось в этом
направлении или этот вариант был отвергнут из-за сложности?043 На рисунке приведён снимок модели одноразрядного троичного бинарного (двухоперандного) с бинарным (двухразрядным) выходом АЛУ (2Трита-2Трита) в трёхбитной одноединичной системе троичных логических элементов в логическом симуляторе Atanua http://sol.gfxile.net/atanua/
Файл с моделью в логическом симуляторе Atanua можно скачать со страницы http://andserkul.narod2.ru/troichnie_alu/
История сообщений
2010
1 июля
10 февраля
4 января
2009
25 декабря
24 декабря
- rvnick
- Андрей Куликов
- Бармалейкин
- Андрей Куликов
- Андрей Куликов
- rvnick
- Alexander Obukhov
- Андрей Куликов
- Андрей Куликов
