На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Hardware:
1. Если вы не уверены в правильности ответа, напишите об этом, или не отвечайте вообще, не давайте дезинформацию!
2. Не забывайте указывать полное наименование, модель, изготовителя и краткие характеристики оборудования.
3. Аргументируйте свое мнение - приводите развернутое высказывание или источник информации.
4. Прежде чем задать вопрос посмотрите, нет ли ответа на него на перечисленных ниже ресурсах:
FAQ
Полезные ссылки
www.ixbt.com
www.overclockers.ru
www.fcenter.ru
www.3dnews.ru
www.thg.ru
www.nvworld.ru
www.radeon2.ru

Здесь вы можете выразить мнение о модераторе этого раздела, ^D^ima.
Модераторы: Akina
  
> Компьютеры не фон-Неймановской архитектуры
    существуют ли такие?
    Яндекс выдал нечто невнятное про параллельные вычисления. ;)
    Можно ли как-то в двух словах пояснить?
    Мне еще потом 8-классникам объяснить нужно будет.
      Можно взять принципы, отбрасывать их по одному, и смотреть что из этого получается.
      Проще всего отказаться от принципа хранимой программы. FPGA - пример компютеров такого рода, массово применятся в области обработки сигналов (видео, аудио аппаратура, телевизоры те же). Да и многие высокопроизводительные системы сегодня отказываются от этого принципа (программу то в них можно изменить, но только остановив всю систему и запустив заного), пример - Tesla.
        Цитата Оззя @
        существуют ли такие?
        Есть еще гарвардская архитектура - разделение памяти по функциям(память программ, память данных, ...). Но используется она, видимо, только в микроконтроллерах.

        Добавлено
        Параллельность не противоречит принципам фон Неймана.
          Цитата trainer @
          ... гарвардская архитектура... используется она, видимо, только в микроконтроллерах.

          В ПК не применяется:
          1. сложность технической реализации?
          2. нет экономического смысла в ее развитии?
            В чистом виде нет ни той, ни другой архитектуры. Везде из соображений эффективности или из-за технических проблем отходят от чисто теоретических принципов построения машины.

            В любом игровом компьютере сегодня стоит чип GPU, прозводительность которого на некоторых задачах (вроде линейной алгебры) намного превосходит возможности любого центрального процессора. И уж конечно этот чип сделан не по фон-Неймановской архитектуре.
            Более того, несмотря на то, что и центральный процессор может изменять на ходу свою программу, это обарачивается для него огромними расходами. И даже если он и может можифицировать хранимый код, делать он должен это как можно реже, иначе производительность будет очень низкой. То есть архитектура-то фон-Неймановская, но на практике об этом лучше забыть.
              Цитата Оззя @
              В ПК не применяется:
              1. сложность технической реализации?
              2. нет экономического смысла в ее развитии?
              Как раз аппаратная простота и дешевизна реализации у нее - плюс. А минус - неуниверсальность. Скажем, чтобы получить универсальный указатель, который может указывать как на переменную, так и на константу, надо его программно эмулировать и катастрофически терять в производительности. По количеству выпускаемых процессоров гарвардская архитектура если не превосходит, то сопоставима с фон-неймановской - специально не искал данных по выпуску, но микроконтроллеров архитектур MCS-51, AVR, PIC-12/16 и т.д. выпускается очень много.

              Добавлено
              Вообще можешь почитать вот тут: http://itblock.ru/category/oks Просмотрел бегло, вроде явных ляпов не заметил.
                Цитата Оззя @
                В ПК не применяется:

                В персональных компьютерах используется фоннеймановская архитектура и то не в чистом виде. Фоннеймановская архитектура подразумевает единое адресное пространство с равными правами размещения для кода и данных. В Intel x86 архитектуре применяется сегментная организация памяти, сегмент данных (и стека) не может использоваться для исполнения кода (что характерно для гарвардской архитектуры).
                Процессы в памяти не имеют доступа к адресному пространству других процессов. Сегмент данных может быть скопирован на диск и код программ об этом не узнает, при восстановлении из памяти сегмента данных, он может оказаться в другой физической области оперативной памяти (реализация свопа). Сегмент кода (исполняемой программы) может быть очищен и вновь загружен из исполняемого файла прозрачно для самого кода. Что, собственно нарушает непрерывность и равноправность доступа к памяти фоннеймановской архитектуры. Речь была о пользовательских процессах, системные процессы имеют возможность получить доступ к любой ячейке памяти, и это еще раз подчеркивает отличие х86 архитектуры от фоннеймановской :)

                Добавлено
                В х86 пользовательская программа не может изменить свой собственный код, и это тоже характеристика гарвардской архитектуры
                  Цитата MeG @
                  В х86 пользовательская программа не может изменить свой собственный код, и это тоже характеристика гарвардской архитектуры

                  Может.

                  Добавлено
                  Цитата MeG @
                  В Intel x86 архитектуре применяется сегментная организация памяти, сегмент данных (и стека) не может использоваться для исполнения кода (что характерно для гарвардской архитектуры).

                  Может. Это чисто логическое разграничение.
                  Сегменты кода и данных вполне могут занимать одни и те же адреса в адресном пространстве.
                    Цитата cppasm @
                    Может.
                    Цитата cppasm @
                    Может.
                    для этого нужно создать процесс в нулевом кольце защиты и изменить дескрипторы сегментов целевого процесса, что явно выходит за рамки пользовательских задач и, собственно, фоннеймановской архитектуры, где все адресное пространство равноправно с позиции данной инструкции кода.
                    Часто и в гарвардской архитектуре реализуют доступ для изменения собственного кода, но не прямого доступа, а через специальные средства.
                      Цитата MeG @
                      для этого нужно создать процесс в нулевом кольце защиты и изменить дескрипторы сегментов целевого процесса

                      Не нужно это.

                      Программа может менять свой код - этим пользуются всякие jit-компиляторы в математическом софте.
                      (Если тебя волнует проблема реализации, например, под windows, то посмотри на функции VirtualProtect - для её использования вообще никаких дополнительных прав не нужно, а в некоторых других ОС даже это делать не нужно - можно править свой код сразу).


                      Цитата MeG @
                      сегмент данных (и стека) не может использоваться для исполнения кода (что характерно для гарвардской архитектуры).
                      Легко может быть использован. Пример - эксплоиты, скажем, от переполнения буфера.
                        тема-то о другом

                        х86 архитектура смесь идей фоннеймановской и гарвардской архитектур

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

                        Добавлено
                        В фоннеймановской архитектуре доступ ко всей памяти есть всегда, а в архитектуре х86 этот доступ нужно сначала получить

                        Сейчас и в гарвардской архитектуре реализуют способы изменить собственный код
                          Соответственно, вывод такой (мой) - таки всё-таки новизна технических решений отдается в угоду экономической целесообразности?
                            да. революционная ни с чем не совместимая конструкция дальше экспериментальных образцов не уйдет, если в нее не вкладывать большие деньги.
                              1. Теговые ЭВМ - нарушают принцип однородности памяти - каждому блоку памяти ставится в соответствии тег, определяющий хранимую в блоке информацию
                              2. Редукционные и Потоковые ЭВМ - в отличие от традиционного управления командами и последовательного выполнения программ, используют потоки данных или команд для построения дерева выполнения программы.
                              3. Формально - гарвардская архитектура (в том числе и x86, SPARC) противоречит принципам фон Неймана, хотя x86 и считают фоннеймановскими машинами. Суть в том, что делить L1 кеш на данные и инструкции - нельзя.

                              Первые не прижились, вторые крайне сложны к реализации.
                                Цитата Мяут @
                                Суть в том, что делить L1 кеш на данные и инструкции - нельзя.
                                Ну да, а еще шина данных бывает отделена от шины адреса и шины управления. А еще есть кэш микроинструкций. Суть в том, что кэш с точки зрения программы не существует, поэтому как он организован - не имеет значения. На самом деле x86 можно попенять на другое - отдельное пространство ввода-вывода(порты) - хотя это вопрос, является ли это памятью. Ну и, само собой, регистровый файл - сверхбыстродействующая память.

                                Добавлено
                                В целом экстремально чистых реализаций не существует, поэтому имеет смысл говорить о базе реализации. В этом смысле x86 - фон-неймановская архитектура.
                                  Цитата trainer @
                                  Суть в том, что кэш с точки зрения программы не существует, поэтому как он организован - не имеет значения.

                                  Это для тебя, прикладного программиста не имеет значения. А вот для разработчика железяки - имеет и притом огромное :)
                                  Цитата trainer @
                                  В этом смысле x86 - фон-неймановская архитектура.
                                  В литературе вообще четкого определения фоннеймановской архитектуры нет. Принципы постоянно дополняли и в разных источниках по-разному интерпретируют ;)
                                    Извините за офф
                                    а какие КОНТРОЛЛЕРЫ фонНеймановские бывают?
                                    я видел Parallax и слышал про Моторолу HC0...
                                    а главное как это выглядит?! флэш и ОЗУ в едином адресном пространстве
                                    (или загрузка из флеша в оперативку путём автоматической загрузки загрузчика а потом.... или ..... :blink: )
                                      Цитата DINETS @
                                      а какие КОНТРОЛЛЕРЫ фонНеймановские бывают?
                                      Видимо имеются в виду микроконтроллеры. Например семейство микроконтроллеров компании Ttxas Instruments -- MSP430, у них единое адресное пространство в котором расположены: flash память, ОЗУ, специальные функциональные регистры и регистры общего назначения (включая указатель команд, указатель стека, регистр состояния процессорного ядра), таким образом все ресурсы доступные в микроконтроллере находятся в едином адресном пространстве.
                                      Сообщение отредактировано: MeG -
                                        Цитата MeG @
                                        Цитата cppasm @
                                        Может.
                                        Цитата cppasm @
                                        Может.
                                        для этого нужно создать процесс в нулевом кольце защиты и изменить дескрипторы сегментов целевого процесса, что явно выходит за рамки пользовательских задач и, собственно, фоннеймановской архитектуры, где все адресное пространство равноправно с позиции данной инструкции кода.

                                        Это обсуждение свойств ОС, а не архитектуры процессора.
                                        Попробуй сделать эксперимент. ;)

                                        Существует также весьма распространённый вариант взлома программы - взлом лоадером.
                                        При котором программа-лоадер модифицирует память другого процесса,
                                        чтобы загружаемое приложение вело себя "правильно".
                                        Сообщение отредактировано: ЫукпШ -
                                          Цитата MeG @
                                          Цитата DINETS @
                                          а какие КОНТРОЛЛЕРЫ фонНеймановские бывают?
                                          Видимо имеются в виду микроконтроллеры. Например семейство микроконтроллеров компании Ttxas Instruments -- MSP430

                                          В некоторых случаях перейти от Гарварда к Нейману проще некуда.
                                          Например, MCS-51 при работе с внешней памятью достаточно
                                          аппаратно заилить (функционально) сигналы чтения из памяти
                                          программ и памяти данных. Достаточно одного логического вентиля.
                                          Получим новое качество.
                                          Сообщение отредактировано: ЫукпШ -
                                            Цитата Оззя @
                                            Цитата trainer @
                                            ... гарвардская архитектура... используется она, видимо, только в микроконтроллерах.

                                            В ПК не применяется:
                                            1. сложность технической реализации?
                                            2. нет экономического смысла в ее развитии?

                                            Почему не применяется ? :huh:
                                            У процессоров серии x86 имеется:
                                            1. адресное пространство в котором присутствуют и коды и данные. (/MEMR,/MEMW)
                                            2. адресное пространство ввода-вывода (только данные). (/IOR,/IOW)
                                            3. и небольшая облась из которой считываются только исполнимые коды.(/INTA)

                                            И сделано это (насколько я понимаю) как раз из экономических соображений.
                                            Сообщение отредактировано: ЫукпШ -
                                              В теме высказано много умных мыслей. И я попробую.
                                              Нэйман не в компьютере, нэйман в голове.
                                              Людям иногда кажется, что они изобрели что-то новое, а они реализовали старое.
                                              Гарвардская архитектура - это техническое решение,
                                              а архитектура Нэймана - скорее философская концепция.
                                              Поэтому сравнивать не совсем корректно.
                                              "Windows XP предотвращает выполнение данных - Прощай, фон Нэйман"(С)
                                              Извините, извините.
                                              Программы - это числа.
                                              Данные - это числа.
                                              Против этого не попрёшь.

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

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

                                                По /INTA процессор считывает из обычной памяти (которая обычно /MEMR,/MEMW) дескриптор процедуры обработки прерываний. Так что в архитектуре x86 только два адресных пространства.
                                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                0 пользователей:


                                                Рейтинг@Mail.ru
                                                [ Script execution time: 0,0543 ]   [ 15 queries used ]   [ Generated: 8.12.25, 05:59 GMT ]