LINUX.ORG.RU
ФорумTalks

Архитектура Фон Неймана


1

3

Ознакомился бегло с сабжем и принципами Гарвардской архитектуры. Что могу сказать. Опять море воды и 0 конструктива.

Основной принцип Фон Неймановской архитектуры: совместное хранение данных и программ. Остановимся на этом подробней.

Никакой разницы между программой и данными нет. Есть куски кода, и только исполнитель решает какой кусок кода ему считать программой, а какой данными. В реале мы имеем куски сваленные в кучу. Тогда о каком «совместном хранении» вообще может идти речь? Совместное хранение кусков кода с кусками кода?

Несколько слов о пресловутом узком месте. В чем, мля, узкое место? В совместном хранение кода и данных, разницы между которыми никакой нет? Очевидно, что проблема в том, что шина только одна, а не 2.

Нам приходит тут на помощь Гарвардская архитектура, она решает «глобальную проблему» - шин теперь не одна, а целых 2. Но кэп какбэ намекает:

Ваше узкое горлышко - это то, что у вас только 2 шины а не 3. Возьмем программу А которая берет 2 аргумента B и С. Как мы получим одновременно В и С если шины у нас только 2? Определенно надо 3 шины. А где узкое место архитектуры с 3-мя? Догадайтесь с 3 раз.

И при чем же тут код и данные? Их совместное/раздельное хранение?

Ну, например, в деревянных счетах именно гарвардская архитектура применяется: данные на костяшках, алгоритм в черепе.

abraziv_whiskey ★★★★★
()
Ответ на: комментарий от abraziv_whiskey

Ох, ё. А в «Феликсе» - смешанная, он автоматически умеет переносить данные в следующий разряд при переполнении.

abraziv_whiskey ★★★★★
()
Ответ на: комментарий от abraziv_whiskey

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

anonimous
() автор топика

Фон Нейман испугался твоего открытия и дал дуба.

baverman ★★★
()

Где-то тут должна быть реклама фейри.

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


Команды и данные хранятся в одной и той же памяти

Erfinder
()

срыв покровов. ждем опровержения теоремы пифагора

registrant ★★★★★
()

Параллельная редукция графа

у фонНеймана как и у Гарва.. как и у Манче.. вычислитель всеведущь и следовательно весь мир не может быстрее его быть.

у акторов нет такой нужды в глобальном синхронезаторе-тактовом генераторе.

все го лиш

ФП имени Бекуса тебе в гомео дозах.

qulinxao ★★☆
()
Ответ на: комментарий от redgremlin

Я с пать не мо г

Оно и видно, хомячье проснулось и поперло на штурм.

anonimous
() автор топика

Никакой разницы между программой и данными нет. Есть куски кода, и только исполнитель решает какой кусок кода ему считать программой, а какой данными. В реале мы имеем куски сваленные в кучу. Тогда о каком «совместном хранении» вообще может идти речь? Совместное хранение кусков кода с кусками кода?

Ты не понял. Совместное хранение - это для людей, а не для исполнителя. Исполнитель ничего не решает, он тупой.

Kosyak ★★★★
()

Всегда считал, что старые пердуны физики несут полнейший бред и вообще не дружат с головой и здравым смыслом, твой пост, похоже, очередное тому подтверждение.

SjZ ★★★★★
()
Ответ на: комментарий от Kosyak

Вот тебе кусок кода echo 1, и вот два исполнителя cat и shell. Для них обоих код является данными. Им не надо ничего решать. Они просто знают, что делать. Однако делают так, как ожидается. В этом смысле - решают. А с твоей точки зрения, ты в одном случае даешь на вход программу, а в другом - данные.

anonimous
() автор топика

нейман «убедительно» доказал преимущества использование двоичной системы для представления чисел
в результате вычислительная индустрия в тупике

kto_tama ★★★★★
()
Ответ на: комментарий от kto_tama

ты упоролся

"английские учённые великой двуединой империи" тадауж доказали что 3 как ближайшее целое к основанию натурального логарифма оптимально для.

qulinxao ★★☆
()
Ответ на: комментарий от vertexua

Сверхтончайше намекну, что говорить про счеты, как пример гарвардской архитектуры - верх тонконебыдлоинтелектуализма.

anonimous
() автор топика
Ответ на: комментарий от anonimous

«echo» - вывести - в sh это команда, потому что так запрограммировали его человеки.

«1» - по принципу работы (заложенным человеками) это уже данные.

Итого - яркий пример совместного расположения программы и данных.

А для cat по принципу работы (заложенным человеками) весь вход является данными.

Я подал программу совместно с данными для sh (при этом, что именно данные, а что программа решил не sh, и даже не я, a человеки которые написали sh) и просто данные для cat (то что это данные сказали человеки, написавшие cat).

P.S. А Одушевление компьютера и программ очень о многом говорит, кстати.

Kosyak ★★★★
()
Ответ на: комментарий от Kosyak

А Одушевление компьютера и программ очень о многом говорит, кстати.

Пацаны говорят,что тизерцин + галоперидол помогает

int13h ★★★★★
()

Никакой разницы между программой и данными нет.

Есть.

zed_0xff
()

Вы что курили?

Язабан.

qrck ★★
()
Ответ на: комментарий от abraziv_whiskey

алгоритм в черепе.

Ну это не в случае ТС. У него в черепе реле. Забан поддерживаю.

sleepflint ★★★
()

Что могу сказать. Опять море воды и 0 конструктива.

facepalm

ну придумай лучше, кто против?

Никакой разницы между программой и данными нет.

для быдлокодера — вполне очевидно!

Несколько слов о пресловутом узком месте. В чем, мля, узкое место? В совместном хранение кода и данных, разницы между которыми никакой нет? Очевидно, что проблема в том, что шина только одна, а не 2.

шин можно сделать и 2 и 22. И уже сделано так. Это непринципиальное упрощение. Проблема в том, что код и данные различаются, и тем не менее, данные часто зависят от кода, а код от данных.

Возьмем программу А которая берет 2 аргумента B и С. Как мы получим одновременно В и С если шины у нас только 2? Определенно надо 3 шины. А где узкое место архитектуры с 3-мя? Догадайтесь с 3 раз.

на заре развития CS этот вопрос многих волновал. Большинство считало, что трёхадресные машины слишком сложны IRL, это те, которые умеют A+B=C, а не только A+B=A, как например i8080.

Тем не менее, время доказало, что число шин лучше сделать всё же 3, или даже больше. Да, многие команды получились «с дырами», т.к. часто все три адреса не нужны, например если команда A=A+1. Но в целом оно стало быстрее, ибо все команды стали одинаковыми по длине и по времени. Сейчас все CPU так строятся, называются RISC. Ну а обычная система команд ассемблера на самом деле — виртуальная машина. Т.е. в современном CPU регистр rax на самом деле не существует. На самом деле, это просто ИМЯ, указатель, который может указывать на любой РОН, коих сейчас сотни.

И при чем же тут код и данные? Их совместное/раздельное хранение?

код и данные — разные сущности. И их объединяли только в из-за примитивности первых вычислителей. Сейчас они давно уже разделены в CPU. Код берётся из одной памяти, а данные — совсем из другой.

emulek
()
Ответ на: комментарий от kto_tama

нейман «убедительно» доказал преимущества использование двоичной системы для представления чисел в результате вычислительная индустрия в тупике

и каков выход?

emulek
()
Ответ на: комментарий от qulinxao

тадауж доказали что 3 как ближайшее целое к основанию натурального логарифма оптимально для.

интересно, каков профит в тройке по мнению Гуру?

emulek
()
Ответ на: комментарий от Kosyak

«echo» - вывести - в sh это команда, потому что так запрограммировали его человеки.

echo это и данные и код. Сначала это данные, когда ты набираешь и отправляешь. А потом интерпретатор воспринимает echo как код. При этом код отделён от данных, т.к. код это $0, а данные — остальные $@.

Интерпретатор — программа, которая интерпретирует данные как код. Обычно его сразу и выполняет (если не сразу, то это компилятор).

И да, к архитектуре это не имеет никакого отношения.

emulek
()
Ответ на: комментарий от qulinxao

если заинтересует у кнута есть пример про бинарные числа в позиционной системе с основанием «sqrt(-2)» и подобные

Кнута я читал. Что такое СС поверь, я в курсе.

Уточни лучше, что ты имел ввиду под «учённые великой двуединой империи» тадауж доказали что 3 как ближайшее целое к основанию натурального логарифма оптимально для.", а то я не понял ни||.

И. На кой хрен мне твой учебник?

emulek
()
Ответ на: комментарий от emulek

есть старый буклет про «оптимальность в некотором смысле» троичной системы записи ...

фон Нейман был продуктом венской школы ( как и Пойья) .

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

есть старый буклет про «оптимальность в некотором смысле» троичной системы записи ...

вот я и интересуюсь: в чём эта «оптимальность»?

emulek
()
Ответ на: комментарий от emulek

Фомин С.В. Системы счисления 1987

параграф 14. Об одном замечательном свойстве троичной системы.

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

так вот в зафисимости от основания таблица ( прямоугольник) разной формы.

вопрос при каком основании при заданной «площади» число различных чисел представимых при помощи таковой максимально - простейшене уравнение даёт в ответе основание натурального .

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

я всё равно ничего не понял. Честно попытался... Может ты мне нарисуешь сию таблицу или картинку дашь, если книжка под рукой?

Ну и главное: ты хоть обрисуйся, всё равно это не пруф. Я и так знаю, что e часто вылезает в самых неожиданных местах, ну и что? Смысл-то какой в CC3?

emulek
()
Ответ на: комментарий от qulinxao

вот нагуглил: http://314159.ru/kushnerov/kushnerov1.pdf

всё это ||ня. ИМХО. Отрицательные числа не так уж и важны, что-бы из-за них всё настолько усложнять. Ну и профит от ОДНОГО бита слишком мал (ведь компьютеры сейчас меньше чем по 64 не жрут).

Вика пишет про «1.5 раза быстрее сложение», но это бред, ибо задержки в троичном сумматоре как минимум вдвое больше.

Короче — не нужно.

emulek
()
Ответ на: комментарий от emulek

представь у тебя есть набор(множество) букв.

этот набор твоё универсальное множество.

вопрос на подмножества какого размера оптимальней всего разбить универсальное множество , что бы получить максимальное число сочетаний( по 1 элементу из каждого подмножества)

ответ

на подмножества размера 3 .

если в остатке 2 элемента то ок .

если в остатке 1 элемент то вместо одного из подмножеств размера 3 и этого остаточного элемента делаем 2 подмножества размера 2.

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

я уже понял. Это удельная информация в расчёте на ЦИФРУ. Давай не будем называть цифры «буквами», хорошо? В числе 12345, четвёрка == ЦИФРА.

Т.е. если у нас две ЦИФРЫ: 0,1; то в таком числе из одной цифры можно сохранить 1 бит(двоичная СС). Если цифр 3, то сохранить можно в одном числе примерно 1.58496250072115618146 бит(вика пишет 1.5, как обычно fail). Но цифр в полтора раза больше, их 3 а не две. Значит удельная информация 1.05664166714743745430 бит на пол-цифры. Т.е. немножко БОЛЬШЕ, чем для двоичной СС.

Таким образом, ты прав конечно, для троичной СС больше плотность, но ОЧЕНЬ НЕНАМНОГО. Всего-то на жалкие 5 соток на пол-цифры. Смысл ради этого мучиться?

Что это даёт на практике? На практике это даёт тот вывод, что если у нас линейно растёт цена ЦИФРЫ (т.е. устройство для троичной СС ровно в 1.5 раза дороже устройства для двоичной СС), то нам чуть выгоднее юзать троичную СС, на 2 копейки с рубля. Вот только на практике троичный девайс стоит намного дороже, чем в 1.5 раза против двоичного.

emulek
()
Ответ на: комментарий от emulek

надо сказать, что я не совсем прав. Рано хороню троичную систему. Она всё же взлетела, хотя потом и рухнула. Но может опять взлетит.

Разгадка проста: на самом деле, в любом вычислителе есть некое неопределённое состояние NaN для большей надёжности. Если программно и/или аппаратно результат операции неопределён (деление на ноль, вычитание близких чисел, нарушение логики типа 1<2 && 1>2 и т.п.), то система должна переходить в состояние NaN, причём это состояние должно заражать все остальные результаты по правилу

x*NaN = NaN
здесь x любое число, а «*» любая операция. Очевидно, это NaN должно быть на самом низком уровне, в битах. Таким образом мы приходим к троичной логике да/нет/незнаю. Если вычислитель выдаёт результат «незнаю», это считается ошибкой, и вычисления повторяются по другому алгоритму и/или на резервном вычислителе.

Однако троичный вычислительный эл-т слишком дорогой. Его цена сравнима с двумя двоичными. Потому у нас получается лишний бит. Точнее получается элемент с тремя состояниями (плюс NaN). Видимо эта фича обеспечила успех http://ru.wikipedia.org/wiki/Сетунь_(компьютер) (сама фича вроде как и не применялась, либо данные об этом засекречены).

emulek
()

Тред, в котором все нашли друг друга

buddhist ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.