Top.Mail.Ru
Ответы

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

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

По дате
По рейтингу
Аватар пользователя
katia_tokar_22Профи
11лет

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

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

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

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

Аватар пользователя
zavulon_plankМыслитель
11лет

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

У фон Неймана программа сама себя может модифицировать, даже если это не есть гуд, потому что хранится в RAM. А у ЭНИАКа программа физически никак не могла перемычки сама переставлять.

Аватар пользователя
zavulon_plankМыслитель
11лет

Пардон. Частично, всё же, в тему.

Аватар пользователя
golova_robota_1Мудрец
11лет

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

Аватар пользователя
ia_krasavchegОракул
11лет

Ну набор единиц и нулей это набор "есть напряжение" и "нет напряжения". Другими словами есть перемычка, нет перемычки соответственно. А вот про архитектуру надо отдельно говорить! Вы когда пишите программу, то там и определяется где код а где данные!

Аватар пользователя
duality_10Мыслитель
11лет

Та элементарно. Бинарный код просто "набирался" перемычками по принципу "есть контакт - 1, нет - 0" в подобие оперативной памяти.

Аватар пользователя
ge3erПрофи
11лет

да и сейчас не многое изменилось)



Видео по теме