Другие языки программирования и технологии

Как архитектура фон Неймана позволяет заменить оператор - перемычки в "железе" - числами? Как это может работать?

"Первоначально программа задавалась путем установки перемычек на специальной коммутационной панели. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений. "
Как может набор нулей и единиц заменить перемычки?
Я понимаю как можно заставить машину различать оператор от операнда - поставить код отличия, прошить определенным образом процессор. Но дальше-то что? Как можно выполнение операции "или" заменить на "и", например?
Набор нулей и единиц не заменяет перемычки, он ими управляет.
Роль самих перемычек уже давно играют транзисторы. При попадании единицы на базу сопротивление транзистора резко падает, что эквивалентно замыканию этой перемычки.

Меняя сигналы на транзисторах можно поменять логику работы электронного узла.

Под ваше описание больше подходит ПЛИС, в которой вся логика схемы может полностью меняться в зависимости от управляющих нулей и единиц.

В обычных процессорах уже есть готовые елементы ИЛИ, И, НЕ. А единички и нули лишь управляют вентилями, указывая куда пойдет тот или иной сигнал.
Николай Лобанов
Николай Лобанов
5 241
Лучший ответ
Александр Рождествин Не в тему вообще. Вопрос про противопоставление архитектуры фон Неймана (однородности памяти) и ЭНИАКа, где программа задавалась физической установкой перемычек.

У фон Неймана программа сама себя может модифицировать, даже если это не есть гуд, потому что хранится в RAM. А у ЭНИАКа программа физически никак не могла перемычки сама переставлять.
Александр Рождествин Пардон. Частично, всё же, в тему.
> различать оператор от операнда - поставить код отличия
Нет никакого кода отличия. У машинных команд есть определённый формат, например:
1 байт - код операции. В зависимости от этого кода, процессор знает, сколько байт данных надо прочитать из следующих ячеек памяти и как эти данные интерпретировать.
> Как можно выполнение операции "или" заменить на "и", например?
Если процессор прочитал из памяти команду "или", будет выполнять "или"... Не пойму, в чём сложность.
Та элементарно. Бинарный код просто "набирался" перемычками по принципу "есть контакт - 1, нет - 0" в подобие оперативной памяти.
Andrew Krasnov
Andrew Krasnov
29 336
Бахтияр Усербаев да и сейчас не многое изменилось)
Ну набор единиц и нулей это набор "есть напряжение" и "нет напряжения". Другими словами есть перемычка, нет перемычки соответственно. А вот про архитектуру надо отдельно говорить! Вы когда пишите программу, то там и определяется где код а где данные!

Похожие вопросы