Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить

Техническая реализация программируемых устройств

Ср июн 27, 2018 23:27:45

Всем доброго времени суток. Интересуюсь устройством вычислительных машин. Нуждаюсь в подсказке, поскольку в данный момент запутался и не понимаю в каком направлении копать дальше. Проблема в следующем. Имею представление о физической реализации логических элементов, таких как И, НЕ , ИЛИ. Понимаю принцип работы многих устройств построенных с использованием логических элементов: компараторов, сумматоров, шифраторов, триггеров, регистров и т.п. В данный момент безуспешно пытаюсь найти информацию о принципах работы программируемых вычислительных устройств, тоесть хочу понять, как, используя все эти триггеры-шмиггеры, собирают полноценные компьютеры, которые не выполняют одну конкретную задачу, заданную архитектурой, а являются программируемыми в полном смысле этого слова. Интерисует меня не общая информация об устройстве компьютера, вроде "данные из ПЗУ попадают в регистр команд, где их находит АЛУ и выполняет программу", а сама суть, физическая реализация на уровне принципиальных и логических схем. Как АЛУ вообще может изменять алгоритм своей работы, если состоит из неизменяемого набора логических элементов? Очевидно, изменяются связи между ними, но как и за счёт чего это происходит? Как единички и нолики, задаваемые пользователем на входе, включают определенную арифметическую операцию в АЛУ? Какие шестерёнки при этом крутятся, а рычажки переключаются? Ответы на вопросы такого рода меня интересуют. Может быть, вы мне поможете и посоветуете литературу или другие источники, или, если я вообще неправильно рассуждаю и ищу ответы не на те вопросы, подскажете и направите на путь истинный. Может быть, я вообще захожу не с той стороны и с неправильным настроем?

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 08:44:28

Почитайте вот это:
https://sunduk.radiokot.ru/loadfile/?load_id=1303980068
и еще мноожество книжей как в СУНДУКЕ КОТА,
так и на сайтах
http://publ.lib.ru/publib.html
и
http://elektromehanika.org
:beer:
Была и книжа с упражнениями на основе рассыпухи и АЛУ - но то в бумажном виде и где-то в скане - поискать надо хотя бы скан (со ссылками гораздо хуже - Х/З где скачивал :dont_know: ).
:roll:

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 08:53:24

...Интересуюсь устройством вычислительных машин...

Какова цель?

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 09:08:12

...Интересуюсь устройством вычислительных машин...

Какова цель?

Закончил техникум по специальности электротехника, учусь на программиста. Можно сказать, что интерес профессиональный, хочу больше знать о смысле происходящего. Как это все работает на самом низком уровне.

Добавлено after 1 minute 6 seconds:
Почитайте вот это:
https://sunduk.radiokot.ru/loadfile/?load_id=1303980068
и еще мноожество книжей как в СУНДУКЕ КОТА,
так и на сайтах
http://publ.lib.ru/publib.html
и
http://elektromehanika.org
:beer:
Была и книжа с упражнениями на основе рассыпухи и АЛУ - но то в бумажном виде и где-то в скане - поискать надо хотя бы скан (со ссылками гораздо хуже - Х/З где скачивал :dont_know: ).
:roll:

Спасибо, похоже на то что надо

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 09:13:35

Я так понимаю,
знакомый с устройством рассыпухи и ИС средней степени интеграции хочет чуток дальше продвинуться.
8)
У меня промежуточным этапом был частотомер с памятью (полностью самодельная конструкция цифровой развертки на 8 позиций/знакомест). Там и сдвиг/хранение и дешифрация и много прочих мелочей с учетом системы многофазной синхронизации...
Да жабко - схемку в бумажном виде давно замылили...
Потом почитамс "вумны книжи с примерами" (а заодно и поглубже чисто для теории/ломопрактики поиграмшись с 155ИП3)...
Да некоторое знакомство с польскими ТЕМЕД мониторами "на рассыпухе" из трех-четырех платок "мозгов" (I8080 имела чуток пониже быстродействие вот поляки и сунули туда "МК на рассыпухе").
А дальше уже переход к микропроцессорам/микроконтроллерам - там уже упор делается на взаимодействие центрального процессорного устройства и минимального комплекта стандартного сопровождения без раскопок самого центрального процессора на "кирпичики".
(путь из "железячника" в микроконтроллеры).
8)

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 09:22:19

GaalDornik писал(а):Как АЛУ вообще может изменять алгоритм своей работы, если состоит из неизменяемого набора логических элементов? Очевидно, изменяются связи между ними, но как и за счёт чего это происходит?

а может по быстрому глянуть видео лекцию какую -нибудь..))

https://www.youtube.com/watch?v=EcksJCdlQog
...
и т.д.

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 09:27:54

Я так понимаю,
знакомый с устройством рассыпухи и ИС средней степени интеграции хочет чуток дальше продвинуться.
8)
У меня промежуточным этапом был частотомер с памятью (полностью самодельная конструкция цифровой развертки на 8 позиций/знакомест). Там и сдвиг/хранение и дешифрация и много прочих мелочей с учетом системы многофазной синхронизации...
Да жабко - схемку в бумажном виде давно замылили...
Потом почитамс "вумны книжи с примерами" (а заодно и поглубже чисто для теории/ломопрактики поиграмшись с 155ИП3)...
Да некоторое знакомство с польскими ТЕМЕД мониторами "на рассыпухе" из трех-четырех платок "мозгов" (I8080 имела чуток пониже быстродействие вот поляки и сунули туда "МК на рассыпухе").
А дальше уже переход к микропроцессорам/микроконтроллерам - там уже упор делается на взаимодействие центрального процессорного устройства и минимального комплекта стандартного сопровождения без раскопок самого центрального процессора на "кирпичики".
(путь из "железячника" в микроконтроллеры).
8)

Воот, а как грамотно перейти к МК? Дело в том, что научиться программировать их в наше время не составляет труда, но сути происходящего при этом не понимаешь. Ассемблер? Но его довольно сложно понимать, без представления о работе МК на низком уровне. Можно конечно просто выучить какие регистры за что отвечают, но хочется залесть ещё глубже.

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 12:25:58

Собственно подход такой же, как и для рассыпухи/ИС среднего уровня интеграции:
Знаем,что такое операционный усилитель, но его начинка интересует нас исключительно в особо специфичных случаях.
Знаем, что регистры, счётчики, коммутаторы нашпигованы и простой логикой и триггерами но для нас как потребителей это "квадратик с выводами" которые имеют входные величины и выходные связанные между собой внутренней логикой того квадратика. Содержимое "внутренностей" также остаётся вне ззоны внимания до особых случаев разработки.
Вот так и с теми же микроконтроллерами - это частный случай микропроцессора с комплектом внешней обвязки сведенным в пределы одного кристалла.
Дополнительный нюанс - отсутствие полноценной клавиатуры и дисплея как у ПК.
8)
Насчёт освоения...
У каждого свой "ключик" обусловленный начальным уровнем подготовки и спецификой "настройки восприятия".
Мне легче было стартовать от ассемблера, другим возможно проще Си или иные " языки высокого уровня" - вариантов много.
Присмотритесь, что более понимаемой в Вашем случае.
А уж материала в виде как отдельных конструкций, так и их описаний весьма много. Какой понятнее, тем и пользоваться надо.
:beer:

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 17:37:19

GaalDornik писал(а):довольно сложно понимать, без представления о работе МК на низком уровне

GaalDornik писал(а):АЛУ вообще может изменять алгоритм своей работы, если состоит из неизменяемого набора логических элементов?



Была (есть) такая схема 155ИП3 (74181) и перенос к ней 155ИП4(74182) это 4 бит АЛУ. В доку и логическая схема есть.
74181.pdf
(255.94 KiB) Скачиваний: 145

Посмотри ...

Имей в виду, что одна простая операция (для человека) для МК это (скорее) ряд операций.

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 18:30:22

GaalDornik писал(а):довольно сложно понимать, без представления о работе МК на низком уровне

GaalDornik писал(а):АЛУ вообще может изменять алгоритм своей работы, если состоит из неизменяемого набора логических элементов?



Была (есть) такая схема 155ИП3 (74181) и перенос к ней 155ИП4(74182) это 4 бит АЛУ. В доку и логическая схема есть.
74181.pdf

Посмотри ...

Имей в виду, что одна простая операция (для человека) для МК это (скорее) ряд операций.

Это вроде программируемоЙ ТТЛ?

Добавлено after 10 minutes 46 seconds:
Собственно подход такой же, как и для рассыпухи/ИС среднего уровня интеграции:
Знаем,что такое операционный усилитель, но его начинка интересует нас исключительно в особо специфичных случаях.
Знаем, что регистры, счётчики, коммутаторы нашпигованы и простой логикой и триггерами но для нас как потребителей это "квадратик с выводами" которые имеют входные величины и выходные связанные между собой внутренней логикой того квадратика. Содержимое "внутренностей" также остаётся вне ззоны внимания до особых случаев разработки.
Вот так и с теми же микроконтроллерами - это частный случай микропроцессора с комплектом внешней обвязки сведенным в пределы одного кристалла.
Дополнительный нюанс - отсутствие полноценной клавиатуры и дисплея как у ПК.
8)
Насчёт освоения...
У каждого свой "ключик" обусловленный начальным уровнем подготовки и спецификой "настройки восприятия".
Мне легче было стартовать от ассемблера, другим возможно проще Си или иные " языки высокого уровня" - вариантов много.
Присмотритесь, что более понимаемой в Вашем случае.
А уж материала в виде как отдельных конструкций, так и их описаний весьма много. Какой понятнее, тем и пользоваться надо.
:beer:

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

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 18:42:39

собирают полноценные компьютеры, которые не выполняют одну конкретную задачу, заданную архитектурой, а являются программируемыми в полном смысле этого слова.

насколько я понимаю это СОФТ является программируемым, а ЖЕЛЕЗО на то и ХАРД, что никак не меняется.(кроме прошиваемых FPGA и тп.)
Все программные действия из софта "оквадрачиваюся" для проца на фиксированный набор действий которые он знает. :roll:
Графические чипы флопают быстрее х86, но знают, типа как вперед\ назад, а налево\ направо тем более гуськом\ползком не знают :roll: :idea:

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 19:01:27

собирают полноценные компьютеры, которые не выполняют одну конкретную задачу, заданную архитектурой, а являются программируемыми в полном смысле этого слова.

насколько я понимаю это СОФТ является программируемым, а ЖЕЛЕЗО на то и ХАРД, что никак не меняется.(кроме прошиваемых FPGA и тп.)
Все программные действия из софта "оквадрачиваюся" для проца на фиксированный набор действий которые он знает. :roll:

Ну, если это так, то все ещё интереснее. Хоть мне и сложно представить, как это реализуется вообще без изменяемых частей. Я понимаю, что это происходит не механически, а электрически, но, в том что это происходит сомневаться трудно. Судите сами, одно и тоже АЛУ, задействуя один и тот же набор логических элементов выполняет разные арифметические операции. Да, на входе разные команды, но АЛУ ведь каждый раз задействует всю свою логику, или нет? Конечно, разные команды могут включать разные логические цепочки в АЛУ, тогда, грубо говоря, во время выполнения операции возведения в степень, часть АЛУ, отвечающая за сложение, будет отдыхать? Кажется мне, что это не так, и АЛУ каждый раз использует всю свою логику, не зависимо от операции, но это не может произойти без изменений в самой АЛУ. Я, конечно, несу ересь, но чё поделать, пока в моей голове такие мысли. Вот и ищу книги.

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 19:37:35

Не скажу за возведение в степень, но умножение можно реализовать набором сложений и сдвигов. Вычитание - это сложение с числом, представленным в дополнительном коде. Ктати, если взять i8080, с которого я начал изучение МП-техники, то он вообще умножать не умел (аппаратно). Так что АЛУ может быть одним и тем же, но умеющим делать простейшие операции: сложение, сдвиг, инвертирование - и этого будет достаточно. Но и, конечно, не забываем про PC - программный счётчик, он должен управляться для ветвлений. А также про SP - стек таки нужен хотя бы для хранения контекста при вызове подпрограмм. Вот, собственно, и всё необходимое, как я себе понимаю. И никаких изменений структуры.

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 19:49:17

Да, согласен, структура мех машины Тьюринга тоже не изменяется же.

Re: Техническая реализация программируемых устройств

Чт июн 28, 2018 20:37:51

Ключевой особенностью, которая отличает компьютер/микроконтроллер от частотомера/калькулятора, является наличие в нём счётчика команд, в который можно загрузить левое число при выполнении определённых условий. За счёт этого загружаемого счётчика реализуется условный переход, который позволяет создавать алгоритмы любой степени сложности. Вся остальная часть компьютера/микроконтроллера — это по большому счёту просто гигантский конвейер из регистров, триггеров, логических элементов, сумматоров, умножителей и прочего ужаса (но регистров в нём всё-таки больше всего), который принимает из памяти указанные этим волшебным счётчиком данные, выдаёт и принимает сигналы через выводы МК, обрабатывает это всё и (ВНИМАНИЕ!) иногда изменяет состояние волшебного счётчика.

И да, этот счётчик команд непрерывно считает, будучи приводимым в движение тактовым генератором.

Re: Техническая реализация программируемых устройств

Пт июн 29, 2018 06:00:57

Возможно проще понимание будет ежли начать чуток пораньше - с простых программируемых автоматов - те же "беглые огни" к примеру.
Имеем фиксированное железо в составе генератора, счетчиков, коммутатора и дешифратора.
Состояние коммутатора изменяется в зависимости от времени через то-ли матрицу перемычек то-ли через начинку ПЗУ - какой-нибудь РТ или РФ.
Это как пример когда простейшее железо в постоянной конфигурации выдает различные световые эфекты при изменении кмндной составляющей.
В процессорном ядре происходит аналогичное действие с потоком входных данных и потоком команд - в результате на выходе поток выходных данных.
Книжи по степени "от начала" и далее:

https://sunduk.radiokot.ru/search/index. ... EC&x=0&y=0

https://sunduk.radiokot.ru/search/index. ... ED&x=0&y=0

http://publ.lib.ru/ARCHIVES/R/RAFIKUZAM ... an_M..html

ну и относительно того, что такое ядро и система команд на примере I8080

https://sunduk.radiokot.ru/search/index. ... EC&x=0&y=0
:beer:

Re: Техническая реализация программируемых устройств

Пт июн 29, 2018 08:02:20

Возможно проще понимание будет ежли начать чуток пораньше - с простых программируемых автоматов - те же "беглые огни" к примеру.
Имеем фиксированное железо в составе генератора, счетчиков, коммутатора и дешифратора.
Состояние коммутатора изменяется в зависимости от времени через то-ли матрицу перемычек то-ли через начинку ПЗУ - какой-нибудь РТ или РФ.
Это как пример когда простейшее железо в постоянной конфигурации выдает различные световые эфекты при изменении кмндной составляющей.
В процессорном ядре происходит аналогичное действие с потоком входных данных и потоком команд - в результате на выходе поток выходных данных.
Книжи по степени "от начала" и далее:

https://sunduk.radiokot.ru/search/index. ... EC&x=0&y=0

https://sunduk.radiokot.ru/search/index. ... ED&x=0&y=0

http://publ.lib.ru/ARCHIVES/R/RAFIKUZAM ... an_M..html

ну и относительно того, что такое ядро и система команд на примере I8080

https://sunduk.radiokot.ru/search/index. ... EC&x=0&y=0
:beer:

Спасибо, будем читать
Ответить