|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Это потому, что при переходе на NAND-ы ни КП7, ни ЛИ6 не будет,
то я и заюзал инверсные выходы КП7 так, поскольку меня поджимал
размер картинки в 640 точек, характерный для нашего форума.
Мне это показалось и схемотехнически более элегантным, раз уж я не
ограничен в выборе микросхем, - с пользой заюзать инверсные выходы.
Но заодно у меня есть прицел и на вторую половинку ЛИ6.
Правда, в плане обсуждения - не знаю, - воплотится ли он.
А скорость здесь по-любому ограничит сумматор со своими последовательными
переносами флагов С.
|
14 Oct 2011 11:14 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
убрать команды без переноса
|
14 Oct 2011 16:11 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22574 Location: Silicon Valley
|
арифметика и с переносом нужна, и без
а вот дублировать флаги из битов аккумулятора - занятие бесполезное
уж лучше сделать переход по произвольному биту (типа как в пике)
|
14 Oct 2011 20:51 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
|
И ввести команду пропуска следующей команды по флагу переноса.
|
14 Oct 2011 22:11 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
BTFSC/BTFSS
|
15 Oct 2011 00:22 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Я привёл пример PIC-а. У него нет арифметических команд с переносом и заёмом. Но математику сделать можно. По принципу как я выше сказал: Скажем, есть сложение двух многословных аргументов (слово у нас 4-битное) Если команд с переносом и заёмом нет, это будет выглядеть так: Программа сложнее - но схема АЛУ аппаратно проще (см. рис. 5) Кстати говоря, в контроллерах Интел типа ВЕ35, ВЕ48 не было операций вычитания как факЪт. Там всё делалось программно: инверсия аргумента, инкремент его и сложение с первым аргументом. Жутко неудобно, но аппаратно АЛУ ещё проще. Битов у нас всего 4. Флаг знака S - даёт контроль самого старшего бита (MSB) Флаг чётности результата P - даст контроль самого младшего бита (LSB) безо всяких аппаратных затрат. То есть, мы имеем контроль 50% всех бит без схемотехнических затрат. Мне такое решение не кажется бесполезным, а наоборот - весьма удачным. Флаг P как чётность количества единичных битов вводить не буду. Пользы и правда нет в маштабе 4 бит, а аппаратных затрат на NAND требует сравнительно больших. О командах переходов я ничего говорить не буду, поскольку АЛУ только выставляет флаги и ввести в него такие команды нет возможности. Я пока предлагаю всё же оставить набор как есть. Он близок к привычному. И честно говоря, если вводить экономию на корпуса, то легче выкинуть из набора команды INR RX, DCR RX - это резко сэкономит 4 мультилексора или 2 корпуса. Но программно усложнит значительно, к примеру, INR R5:
|
15 Oct 2011 03:49 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Кстати говоря, а каково ваше мнение о необходимости команд вот этой группы:
DAA - ясное дело, нам здесь в 4 битах никчему.
А вот со служебными командами манипуляций с флагом C - я несколько призадумался...
Если CMA мы выполняем как A XOR 0Fh, то понятно, что CMA вроде и не нужно.
Но можно реализовать:
STC - как C=1
CMC - как C=NOT C
И дополнительно ввести:
CLC - как C=0
С учетом того, что в данный момент реализовано 12 команд АЛУ, их в совокупности станет 15.
Останется код 0Fh, который удобно оставить как префикс для перехода к остальным операциям,
если процессор делать-таки 4 битным.
Но можно зацепить на код 0Fh какую-либо другую полезную операцию.
Я всё-таки склоняюсь к 12-битному коду операции и 4-битным данным.
Это удобно ложится в 16 байт выходов двух ОЗУ программ.
Аппаратно манипуляции с флагом C не сильно усложнят АЛУ, но вот есть ли в них необходимость?
От себя добавлю, что порой пользуюсь такими командами весьма активно.
|
15 Oct 2011 04:49 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
если есть сброс и установка, то инверсия не нужна
|
15 Oct 2011 05:46 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
|
Зачем их в АЛУ запихивать? Они ж вроде непосредственного отношения не имеют к нему.
|
15 Oct 2011 06:37 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Очень безответственное заявление. Как правильно говорит Хардыч:"моцк то иногда фключай"! Если есть установка и инверсия - то сброс не обязателен, как в i8080 было сделано. Но в i8080 сброс C предлагалось делать как ORA A = CLC. Сброс и установка не могут обеспечить инверсию, это очевидно. Но я хочу сделать CLC как отдельную команду, поскольку предполагаю далее, что команды ORA A, возможно, не будет, в плане упрощения схемотехники регистровых передач. А будут только ORA RX, ORI N.
Команды манипуляции с флагом переноса ( STC, CLC, CMC) - команды относящиеся к работе АЛУ,
на мой взгляд: так как флаги формируются в АЛУ и "защелкиваются" из него в регистр флагов.
Если у тебя другая точка зрения - приведи схему или ссылку на известные решения.
Я таких вариантов ни в литературе ни в сети не встречал до сих пор.
А на популярность применения команд STC, CLC, CMC у тебя какая точка зрения?
|
15 Oct 2011 07:36 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Я использовал STC/CMC для индикации ошибок в подпрограммах. Т.е., делаешь сначала CALL а следом JC/JNC в зависимости от значения флага С (обычно, С=1 было ошибкой). Очень удобно.
|
15 Oct 2011 12:29 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
эпично. теперь я понимаю, почему на постсоветском пространстве PIC не прижился.
|
16 Oct 2011 02:48 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
" Я Вам не скажу за всю Одессу..." Но я сам очень люблю как раз PIC.
И нравится он мне (конкретно PIC12 и PIC16) за минимализм системы команд
и минимализм размеров.
Так на взгляд - почти 155ЛА3 по размерам корпуса... А возможности просто великолепны!
К сожалению, как мне видится, PIC у меня, похоже, не получается...
|
16 Oct 2011 03:10 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
АЛУ исключительно на NANDЯ считаю, что настал момент завершить " спортивную" часть топика. А именно - представить-таки почтенной публике АЛУ, выполненное исключительно на вентилях NAND. Поскольку система команд, реализованная в прототипе АЛУ, представленном на рисунке 2, серьёзных замечаний не вызвала, эта схема и была реализована на вентилях NAND. Поскольку схемотехнически вентили с открытым коллектором позволяют реализовать "проводное ИЛИ", я решил использовать в схемотехнике АЛУ вентили И-НЕ К155ЛА8 (7401) наряду с распространённымми микросхемами NAND К155ЛА3 (7400). Это позволило упростить схемы аналогов мультиплексоров. Вентили с открытым коллектором могут также позволить избежать применения тристабильных шинных формирователей. Принципиальная электрическая схема АЛУ на NAND приведена на рисунке. _______________ Рис. 6. _______________ Согласно приведённой принципиальной электрической схеме 4-битного АЛУ на вентилях NAND, назначение управляющих сигналов следующее. Сигналы S0–S7 осуществляют выбор операции над двумя операндами, поступающими на входы операционного устройства АЛУ. Сигналы C1-C4 коммутируют значение на входе линии флага переноса C0 операционного устройства АЛУ, и позволяют выбрать соответственно следующие значения: " 0", C, " 1", /C для выполнения определённых операций в АЛУ. Сигналы K1-K3 позволяют подавать на входы первого операнда операционного устройства АЛУ полубайты собственно аргумента A, значения 0h и 0Fh соответственно. Сигнал BN (B Negative) позволяет инвертировать значение второго операнда операционного устройства АЛУ во всех операциях вычитания. Логика подсказывет подключить управляющие входы ко внешним дешифраторам типа "код-позиция", но на мой взгляд, более экономичное решение - разработать отдельную схему управления АЛУ, представляющую собой, по сути, сложный декодер типа "код-код", поскольку сигналы управления АЛУ взаимосвязаны между собой. Флаг Р реализован как признак чётности результата (бит 0). В АЛУ реализуется следующая система команд, приведённая в таблице: 4-битное АЛУ содержит <U>44 14-выводных корпуса</U> ТТЛ микросхем, и оценить его размеры позволяет следующая картинка: Я специально привожу её, чтобы можно было прикинуть размеры 8-битного АЛУ, если кто-либо захочет воплотить его сугубо на вентилях NAND. PS. Ауууу!!! b2m!!?Ну вот тебе, b2m, "и мультиплексоры с сумматором на NAND" и "блэкджэк прибамбасами на NAND"... Не слышу восторгов и апплодисьментов А как не по делу трындеть - так тут как тут...
Last edited by Lavr on 16 Oct 2011 13:34, edited 1 time in total.
|
16 Oct 2011 04:10 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
|
Нормальная такая популярность. Но не злоупотребляю.
Команду сброса можно не делать, достаточно установки и инверсии.
|
16 Oct 2011 05:00 |
|
|
Who is online |
Users browsing this forum: No registered users and 28 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|