"Первоначально программа задавалась путем установки перемычек на специальной коммутационной панели. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений. "
Как может набор нулей и единиц заменить перемычки?
Я понимаю как можно заставить машину различать оператор от операнда - поставить код отличия, прошить определенным образом процессор. Но дальше-то что? Как можно выполнение операции "или" заменить на "и", например?
Другие языки программирования и технологии
Как архитектура фон Неймана позволяет заменить оператор - перемычки в "железе" - числами? Как это может работать?
Набор нулей и единиц не заменяет перемычки, он ими управляет.
Роль самих перемычек уже давно играют транзисторы. При попадании единицы на базу сопротивление транзистора резко падает, что эквивалентно замыканию этой перемычки.
Меняя сигналы на транзисторах можно поменять логику работы электронного узла.
Под ваше описание больше подходит ПЛИС, в которой вся логика схемы может полностью меняться в зависимости от управляющих нулей и единиц.
В обычных процессорах уже есть готовые елементы ИЛИ, И, НЕ. А единички и нули лишь управляют вентилями, указывая куда пойдет тот или иной сигнал.
Роль самих перемычек уже давно играют транзисторы. При попадании единицы на базу сопротивление транзистора резко падает, что эквивалентно замыканию этой перемычки.
Меняя сигналы на транзисторах можно поменять логику работы электронного узла.
Под ваше описание больше подходит ПЛИС, в которой вся логика схемы может полностью меняться в зависимости от управляющих нулей и единиц.
В обычных процессорах уже есть готовые елементы ИЛИ, И, НЕ. А единички и нули лишь управляют вентилями, указывая куда пойдет тот или иной сигнал.
> различать оператор от операнда - поставить код отличия
Нет никакого кода отличия. У машинных команд есть определённый формат, например:
1 байт - код операции. В зависимости от этого кода, процессор знает, сколько байт данных надо прочитать из следующих ячеек памяти и как эти данные интерпретировать.
> Как можно выполнение операции "или" заменить на "и", например?
Если процессор прочитал из памяти команду "или", будет выполнять "или"... Не пойму, в чём сложность.
Нет никакого кода отличия. У машинных команд есть определённый формат, например:
1 байт - код операции. В зависимости от этого кода, процессор знает, сколько байт данных надо прочитать из следующих ячеек памяти и как эти данные интерпретировать.
> Как можно выполнение операции "или" заменить на "и", например?
Если процессор прочитал из памяти команду "или", будет выполнять "или"... Не пойму, в чём сложность.
Та элементарно. Бинарный код просто "набирался" перемычками по принципу "есть контакт - 1, нет - 0" в подобие оперативной памяти.
Бахтияр Усербаев
да и сейчас не многое изменилось)
Ну набор единиц и нулей это набор "есть напряжение" и "нет напряжения". Другими словами есть перемычка, нет перемычки соответственно. А вот про архитектуру надо отдельно говорить! Вы когда пишите программу, то там и определяется где код а где данные!
Похожие вопросы
- Каким циклом можно заменить оператор UpCase в pascale
- Дан двумерный массив А [7,8], заполненный случайным образом. Заменить нечетные элементы массива на число 0 СРОЧНОО ГАЙСЫ
- 1.Заполнить массив случайными числами. Вывести элементы массива на экран. Заменить все его минимальные элементы нулями.
- Какой оператор в Си позволяет досрочно завершить ВСЕ циклы (например если цикл в цикле) или как это вообще можно сделать
- Заменить цикл условным оператором if
- Дан целочисленный двумерный массив, размерности n х m. Заменить все отрицательные числа нулем
- даны 3 разл целых числа a,b,c используя оператор GOTO составить программу для ввода чисел в порядке убывания
- паскаль, как работать с оператором goto, как ставить метки, чтобы при операции goto 1,
- C++ поразрядные операторы
- как заменить определённые симболы в .txt файле на числа от 1 до 200?
У фон Неймана программа сама себя может модифицировать, даже если это не есть гуд, потому что хранится в RAM. А у ЭНИАКа программа физически никак не могла перемычки сама переставлять.