Меню Рубрики

Самые важные с точки зрения архитектуры фон неймана элементы составляющие части компьютера

Материал из ПИЭ.Wiki

Архитектура фон Неймана (англ. von Neumann architecture) — широко известный принцип совместного хранения программ и данных в памяти компьютера. Вычислительные системы такого рода часто обозначают термином «машина фон Неймана», однако, соответствие этих понятий не всегда однозначно. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного модуля от устройств хранения программ и данных.

Наличие заданного набора исполняемых команд и программ было характерной чертой первых компьютерных систем. Сегодня подобный дизайн применяют с целью упрощения конструкции вычислительного устройства. Так, настольные калькуляторы, в принципе, являются устройствами с фиксированным набором выполняемых программ. Их можно использовать для математических расчётов, но невозможно применить для обработки текста и компьютерных игр, для просмотра графических изображений или видео. Изменение встроенной программы для такого рода устройств требует практически полной их переделки, и в большинстве случаев невозможно. Впрочем, перепрограммирование ранних компьютерных систем всё-таки выполнялось, однако требовало огромного объёма ручной работы по подготовке новой документации, перекоммутации и перестройки блоков и устройств и т. п. Всё изменила идея хранения компьютерных программ в общей памяти. Ко времени её появления использование архитектур, основанных на наборах исполняемых инструкций, и представление вычислительного процесса как процесса выполнения инструкций, записанных в программе, чрезвычайно увеличило гибкость вычислительных систем в плане обработки данных. Один и тот же подход к рассмотрению данных и инструкций сделал лёгкой задачу изменения самих программ.

В настоящее время фон-неймановской архитектурой называется организация ЭВМ, при которой вычислительная машина состоит из двух основных частей — линейно-адресуемой памяти, слова которой хранят команды и элементы данных, и процессора, выполняющего эти команды. В основе модели вычислений фон Неймана лежат принцип последовательной передачи управления (счётчик команд) и концепция переменной (идентификатор).

Джон фон Нейман. Биография

Янош, или просто Янси, был необыкновенно одарённым ребёнком. Уже в 6 лет он мог разделить в уме два восьмизначных числа и беседовать с отцом на древнегреческом. Янош всегда интересовался математикой, природой чисел и логикой окружающего мира. В восемь лет он уже хорошо разбирался в математическом анализе. В 1911 году он поступил в Лютеранскую Гимназию. В 1913 году его отец получил дворянский титул, и Янош вместе с австрийским и венгерским символами знатности — приставкой фон (von) к австрийской фамилии и титулом Маргиттаи (Margittai) в венгерском именовании — стал называться Янош фон Нейман или Нейман Маргиттаи Янош Лайош. Во время преподавания в Берлине и Гамбурге его называли Иоганн фон Нейман. Позже, после переселения в 1930-х годах в США, его имя на английский манер изменилось на Джон. Любопытно, что его братья после переезда в США получили совсем другие фамилии: Vonneumann и Newman. Первая, как можно заметить, является «сплавом» фамилии и приставки «фон», вторая же — дословным переводом фамилии с немецкого на английский.

Фон Нейман получил степень доктора философии по математике (с элементами экспериментальной физики и химии) в университете Будапешта в 23 года. Одновременно он изучал химическую инженерию в швейцарском Цюрихе (Макс фон Нейман полагал профессию математика недостаточной для того, чтобы обеспечить надёжное будущее сына). С 1926 по 1930 год Джон фон Нейман был приват-доцентом в Берлине.

В 1930 году фон Нейман был приглашён на преподавательскую должность в американский Принстонский университет. Был одним из первых приглашённых на работу в основанный в 1930 году научно-исследовательский Институт перспективных исследований (англ. Institute for Advanced Study), также располагавшийся в Принстоне, где с 1933 года и до самой смерти занимал профессорскую должность.

В 1936—1938 годах Алан Тьюринг защищал в институте под руководством Алонзо Чёрча докторскую диссертацию. Это случилось вскоре после публикации в 1936 году статьи Тьюринга «О вычислимых числах в применении к проблеме разрешимости» (англ. On Computable Numbers with an Application to the Entscheidungs problem), которая включала в себя концепции логического проектирования и универсальной машины. Фон Нейман, несомненно, был знаком с идеями Тьюринга, однако неизвестно, применял ли он их в проектировании IAS-машины десять лет спустя.

В 1937 году фон Нейман стал гражданином США. В 1938 он был награждён премией имени М. Бохера за свои работы в области анализа.

Фон Нейман был женат дважды. В первый раз он женился на Мариэтте Кёвеши (Mariette Kövesi) в 1930 году. Брак распался в 1937 году, а уже в 1938 он женился на Кларе Дэн (Klara Dan). От первой жены у фон Неймана родилась дочь Марина — в последующем известный экономист.

В 1946 году Джон фон Нейман доказал теорему о плотности записи чисел в сдвоенных комбинированных показательных позиционных системах счисления. Первый успешный численный прогноз погоды был произведен в 1950 году с использованием компьютера ENIAC командой американских метеорологов совместно с Джоном фон Нейманом.

В 1957 году фон Нейман заболел раком кости, возможно, вызванным радиоактивным облучением при исследовании атомной бомбы в Тихом океане или, может быть, при последующей работе в Лос-Аламосе, штат Нью-Мексико (его коллега, пионер ядерных исследований Энрико Ферми, умер от рака желудка в 1954 году). Через несколько месяцев после постановки диагноза фон Нейман умер в тяжёлых мучениях. Рак также поразил его мозг, практически лишив его возможности мыслить. Когда он лежал при смерти в госпитале Вальтера Рида, он шокировал своих друзей и знакомых просьбой поговорить с католическим священником.

В середине 1940-х проект компьютера, хранящего свои программы в общей памяти был разработан в Школе электрических разработок Мура (англ. The Moore School of Electrical Engineering) в Университете штата Пенсильвания (англ. The University of Pennsylvania).В процессе работы во время многочисленных дискуссий со своими коллегами Г. Голдстайном и А. Берксом фон Нейман высказал идею принципиально новой ЭВМ. В 1946 г. ученые изложили свои принципы построения вычислительных машин в ставшей классической статье “Предварительное рассмотрение логической конструкции электронно-вычислительного устройства”.В статье убедительно обосновывается использование двоичной системы для представления чисел (нелишне напомнить, что ранее все вычислительные машины хранили обрабатываемые числа в десятичном виде). Авторы убедительно продемонстрировали преимущества двоичной системы для технической реализации, удобство и простоту выполнения в ней арифметических и логических операций (в дальнейшем ЭВМ стали обрабатывать и нечисловые виды информации – текстовую, графическую, звуковую и другие, но двоичное кодирование данных по-прежнему составляет информационную основу любого современного компьютера). Еще одной поистине революционной идеей, значение которой трудно переоценить, является предложенный Нейманом принцип “хранимой программы”. Первоначально программа задавалась путем установки перемычек на специальной коммутационной панели. Нейман первым догадался, что программа может также храниться в виде набора нулей и единиц, причем в той же самой памяти, что и обрабатываемые ею числа. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений.

Архитектура фон Неймана решала проблемы, свойственные компьютеру «ЭНИАК», который создавался в то время, за счёт хранения программы компьютера в его собственной памяти. Информация о проекте стала доступна другим исследователям вскоре после того, как в 1946 году было объявлено о создании «Эниака». По плану предполагалось осуществить проект силами Муровской школы в машине EDVAC, однако до 1951 года EDVAC не был запущен из-за технических трудностей в создании надёжной компьютерной памяти. Другие научно-исследовательские институты, получившие копии проекта, сумели решить эти проблемы гораздо раньше группы разработчиков из Муровской школы и реализовали их в собственных компьютерных системах. Первыми пятью компьютерами, в которых были реализованы основные особенности архитектуры фон Неймана, были:

— Манчестерский Марк I. Прототип — Манчестерская малая экспериментальная машина. Университет Манчестера (англ. The University of Manchester), Великобритания, 21 июня 1948 года;

— EDSAC. Кембриджский университет (англ. The Cambridge University), Великобритания, 6 мая 1949 года;

— BINAC. США, апрель или август 1949 года;

— CSIR Mk 1. Австралия, ноябрь 1949 года;

— SEAC. США, 9 мая 1950 года.

Норберт Винер, работая вместе с Джоном фон Нейманом, обратил внимание на то, что процессы, управляющие сложной электронной системой, аналогичны процессам нейрофизиологии, изучающей целенаправленную деятельность живых существ. Сохранение работоспособности таких систем достигается за счет обратной связи, она позволяет отслеживать и корректировать уже начатое, но еще не законченное до конца действие. Существование обратной связи позволяет рассматривать сложные системы различной природы — физической, социальной, биологической — с единой точки зрения. Это — основы кибернетики. В 1948 г. вышла в свет книга Н. Винера «Кибернетика, или Управление и связь в живом мире и машинах».

Принципы фон Неймана

В 1946 году Д. фон Нейман, Г. Голдстайн и А. Беркс в своей совместной статье изложили новые принципы построения и функционирования ЭВМ. В последствие на основе этих принципов производились первые два поколения компьютеров. В более поздних поколениях происходили некоторые изменения, хотя принципы Неймана актуальны и сегодня.

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

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

2. Программное управление ЭВМ. Работа ЭВМ контролируется программой, состоящей из набора команд. Команды выполняются последовательно друг за другом. Созданием машины с хранимой в памяти программой было положено начало тому, что мы сегодня называем программированием.

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

4. Ячейки памяти ЭВМ имеют адреса, которые последовательно пронумерованы. В любой момент можно обратиться к любой ячейке памяти по ее адресу. Этот принцип открыл возможность использовать переменные в программировании.

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

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

Для сравнения, программа компьютера ENIAC (где не было хранимой в памяти программы) определялась специальными перемычками на панели. Чтобы перепрограммировать машину (установить перемычки по-другому) мог потребоваться далеко не один день. И хотя программы для современных компьютеров могут писаться годы, однако они работают на миллионах компьютеров после несколько минутной установки на жесткий диск.

Машина фон Неймана

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

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

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

Из арифметико-логического устройства результаты выводятся в память или устройство вывода. Принципиальное различие между ЗУ и устройством вывода заключается в том, что в ЗУ данные хранятся в виде, удобном для обработки компьютером, а на устройства вывода (принтер, монитор и др.) поступают так, как удобно человеку.

УУ управляет всеми частями компьютера. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии.

Управляющее устройство содержит специальный регистр (ячейку), который называется «счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды программы. УУ считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство — «Регистр команд». УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.

В результате выполнения любой команды счетчик команд изменяется на единицу и, следовательно, указывает на следующую команду программы. Когда требуется выполнить команду, не следующую по порядку за текущей, а отстоящую от данной на какое-то количество адресов, то специальная команда перехода содержит адрес ячейки, куда требуется передать управление.

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

12.Классическая архитектура компьютера. Принцип Фон-Неймана.

Джон Фон-Нейман выдвинул основополагающие принципы логического устройства ЭВМ и предложил его структуру, которая воспроизводилась в течение первых двух поколений ЭВМ. По Нейману основными блоками являются устройства управления (УУ) и арифметико-логическое устройство (АЛУ), обычно они объединяются в центральный процессор (память, внешняя память, устройства ввода и вывода).

Архитектура ЭВМ по Фон-Нейману:

Внешнее запоминающее устройство

Процессор АЛУ УУ

Направление потоков информации.

Управляющие сигналы от процессора к устройствам ЭВМ.

Принцин двоичного кодирования – вся информация, поступающая в ЭВМ кодируется в двоичной системе счисления.

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

Принцип однородности памяти – программа и данные хранятся в одной и той же памяти, что обеспечивает оперативную перенастройку машины с одной задачи на другую без изменений в её схеме и делает машину универсальным вычислительным инструментом; инструкции, входящие в программу закодированы в виде чисел и это даёт возможность прочесть инструкцию как число, переслать в АЛУ (арифметико-логическое устройство), произвести с ней некоторые операции и вернуть в оперативную память, таким образом при выполнении программы может происходить её модификация либо формирование новой программы.

Принцип адресности – структурно-оперативная память состоит из пронумерованных ячеек. УУ (устройству управления) в произвольный момент времени доступна любая ячейка, отсюда следует возможность давать имена областям памяти так, чтобы к хранящимся в них значениях можно было бы впоследствии к ним обращаться или менять их в процессе выполнения программы с использованием присвоения имён.

В современном компьютере к этим принципам следует добавить:

Принцип открытой архитектуры – ЭВМ состоит из отдельных блоков, совмещающихся друг с другом через стандартные разъёмы (порты, слоты).

Принцип совместимости «сверху вниз» — новые модели поддерживают и расширяют возможности более старых.

13.Архитектура современного компьютера: магистрально-модульный принцип.

Центральная часть компьютера – это системный блок, он не является единым целым, в нём находится ряд взаимосвязанных устройств. Основной элемент – это материнская (системная) плата, на которой смонтированы все важнейшие микросхемы; важнейшая часть материнской платы – это центральный процессор – микросхема, в которой происходит исполнение программ компьютером.

Читайте также:  Лазерная коррекция зрения при отслойке сетчатки

Появление третьего поколения ЭВМ было обусловлено переходом от транзисторов к интегральным микросхемам, что способствовало уменьшению размеров функциональных узлов ЭВМ и создало предпосылки для существенного роста быстродействия процесса. Возникли противоречия между высокой скоростью внутри машины и медленной работой устройств ввода/вывода. Процессор, руководивший работой внешних устройств значительную часть времени был вынужден простаивать в ожидании информации от внешних устройств, что существенно снижало бы эффективность работы ЭВМ в целом; для решения этой проблемы возникла идея освобождения центрального процессора от функций обмена и передачи этих функций специальным электронным схемам управления работой внешних устройств – «контроллерам». Наличие интеллектуальных контроллеров внешних устройств стало важной отличительной чертой машин 3-его и 4-его поколений.

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

Для связи между отдельными узлами ЭВМ используется общая шина ( магистраль).

Шина – это схема, обеспечивающая передачу данных между процессором и другими устройствами. Характеристики: разрядность (бит) – максимальное количество одновременно передаваемых бит информации; частота (герц) – количестко циклов срабатывания шины в единицу времени.

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

Шина состоит из 3-ёх частей: шина данных, адреса и управления.

Управления

Управление процессами другими устройствами.

Передача информации.

Шина данных: по ней данные передаются между разными устройствами ( например, из оперативной памяти данные могут быть переданы процессору на обработку, а затем полученные данные могут быть отправлены обратно в оперативную память на хранение). Таким образом, данные по шине данных могут передаваться от устройства к устройству в любом направлении.

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

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

Разрядность шины адреса определяет объём адресуемой памяти (адресного пространства), то есть количество однобайтовых ячеек оперативной памяти можно рассчитать по формуле: N=2 I , где I – разрядность шины адреса, N – количество ячеек. Чем больше разрядность, тем к большим ячейкам можно обратиться.

Шина управления регулирует процесс обмена информацией, по ней передаются сигналы, определяющие характер обмена информации по магистрали. Сигналы управления показывают какие операции (считывание или запись) нужно производить.

Описанную схему легко дополнять новыми устройствами – это свойство называется открытостью архитектуры. Для пользователя это означает возможность свободно выбирать состав внешних устройств для своего компьютера.

Ещё одной важной особенностью структуры современных компьютеров является возможность реализовывать прямые связи между устройствами ЭВМ. Это стало возможным по скольку процесор перестал быть центром конструкции. На практике чаще всего используют передачу данных из внешних устройств в ОЗУ и наоборот. Режим, при котором внешнее устройство обменивается данными непосредственно с ОЗУ, без участия процессора, называется прямым процессором. Для его реализации необходим специальный контроллер.

Архитектура фон Неймана (стр. 1 из 4)

Архитектура фон Неймана (англ. von Neumann architecture ) — широко известный принцип совместного хранения программ и данных в памяти компьютера. Вычислительные системы такого рода часто обозначают термином «машина фон Неймана», однако, соответствие этих понятий не всегда однозначно. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного модуля от устройств хранения программ и данных.

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

Всё изменила идея хранения компьютерных программ в общей памяти. Ко времени её появления использование архитектур, основанных на наборах исполняемых инструкций, и представление вычислительного процесса как процесса выполнения инструкций, записанных в программе, чрезвычайно увеличило гибкость вычислительных систем в плане обработки данных. Один и тот же подход к рассмотрению данных и инструкций сделал лёгкой задачу изменения самих программ.

Принципы фон Неймана

В 1946 году трое учёных [1]Артур Бёркс (англ. Arthur Burks ), Герман Голдстайн (англ. Herman Goldstine ) и Джон фон Нейман — опубликовали статью «Предварительное рассмотрение логического конструирования электронного вычислительного устройства» [2] . В статье обосновывалось использование двоичной системы для представления данных в ЭВМ (преимущественно для технической реализации, простота выполнения арифметических и логических операций — до этого машины хранили данные в десятичном виде [3] ), выдвигалась идея использования общей памяти для программы и данных. Имя фон Неймана было достаточно широко известно в науке того времени, что отодвинуло на второй план его соавторов, и данные идеи получили название «принципы фон Неймана».

Для представления данных и команд используется двоичная система счисления.

Как программы (команды), так и данные хранятся в одной и той же памяти (и кодируются в одной и той же системе счисления — чаще всего двоичной ). Над командами можно выполнять такие же действия, как и над данными.

Структурно основная память состоит из пронумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка; память внутренняя.

  1. Принцип последовательного программного управления.

Все команды располагаются в памяти и выполняются последовательно, одна после завершения другой, в последовательности, определяемой программой.

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

Компьютеры, построенные на этих принципах, относят к типу фоннеймановских.

Компьютеры, построенные на принципах фон Неймана

В середине 1940-х проект компьютера, хранящего свои программы в общей памяти был разработан в Школе электрических разработок Мура (англ. The Moore School of Electrical Engineering ) в Университете штата Пенсильвания (англ . The University of Pennsylvania ). Подход, описанный в этом документе, стал известен как архитектура фон Неймана, по имени единственного из названных авторов проекта Джона фон Неймана, хотя на самом деле авторство проекта было коллективным. Архитектура фон Неймана решала проблемы, свойственные компьютеру «ЭНИАК », который создавался в то время, за счёт хранения программы компьютера в его собственной памяти. Информация о проекте стала доступна другим исследователям вскоре после того, как в 1946 году было объявлено о создании «Эниака». По плану предполагалось осуществить проект силами Муровской школы в машине EDVAC , однако до 1951 года EDVAC не был запущен из-за технических трудностей в создании надёжной компьютерной памяти . Другие научно-исследовательские институты, получившие копии проекта, сумели решить эти проблемы гораздо раньше группы разработчиков из Муровской школы и реализовали их в собственных компьютерных системах. Первыми пятью компьютерами, в которых были реализованы основные особенности архитектуры фон Неймана, были:

  • Манчестерский Марк I . Прототип — Манчестерская малая экспериментальная машина . Университет Манчестера (англ.The University of Manchester ), Великобритания , 21 июня1948 года ;
  • EDSAC . Кембриджский университет (англ.The Cambr >1 Понятие архитектуры ЭВМ. Принципы фон Неймана

Архитектурой ПК называется его описание на некотором общем уровне включающее описание пользовательских возможностей программирования систем команд систем адресации организации памяти Архитектура определяет принцип действия, информационные связи взаимное соединение основных логических узлов компьютера: процессора; оперативного ЗУ, Внешних ЗУ и периферийных устройств.

Классические принципы построения архитектуры ЭВМ были предложены в 1946 году и известны как принципы фон Неймана».

Использование двоичной системы представления данных

Авторы убедительно продемонстрировали преимущества двоичной системы для технической реализации, удобство и простоту выполнения в ней арифметических и логических операций. ЭВМ стали обрабатывать и нечисловые виды информации — текстовую, графическую, звуковую и другие, но двоичное кодирование данных по-прежнему составляет информационную основу любого современного компьютера.

Принцип хранимой программы Нейман первым догадался, что программа может также храниться в виде нулей и единиц, причем в той же самой памяти, что и обрабатываемые ею числа. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений. Устройство управления (УУ) и арифметико-логическое устройство (АЛУ) в современных компьютерах объединены в один блок — процессор, являющийся преобразователем информации, поступающей из памяти и внешних устройств.

Память (ЗУ) хранит информацию (данные) и программы. Запоминающее устройство у современных компьютеров «многоярусно» и включает оперативное запоминающее устройство (ОЗУ) и внешние запоминающие устройства(ВЗУ).

ОЗУ — это устройство, хранящее ту информацию, с которой компьютер работает непосредственно в данное время (исполняемая программа, часть необходимых для нее данных, некоторые управляющие программы).

ВЗУ — устройства гораздо большей емкости, чем ОЗУ, но существенно более медленны.

Принцип последовательного выполнения операций

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

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

Устройство ввода-вы́вода — компонент типовой архитектуры ЭВМ, предоставляющий компьютеру возможность взаимодействия с внешним миром и, в частности, с пользователями и другими компьютерами.

1.6. Устройства ввода-вывода информации

Человек взаимодействует с информационными системами главным образом через устройства ввода-вывода (input-output devices). Прогресс в области информационных технологий достигается не только благодаря возрастающей скорости процессоров и емкости запоминающих устройств, но также за счет совершенствования устройств ввода и вывода данных. Устройства ввода-вывода называются также периферийными устройствами (peripheral devices).

Клавиатура ( keyboard ) – традиционное устройство ввода данных в компьютер. Клавиатурами оснащены как персональные компьютеры, так и терминалы мэйнфреймов. Клавиатура современного компьютера содержит обычно 101 или 102 клавиши, разделенные на 4 блока:

ОСНОВНЫЕ АРХИТЕКТУРНЫЕ ПРИНЦИПЫ ЭВМ. ИНТЕРФЕЙСЫ

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

Архитектурой компьютера считается его представление на некотором общем уровне, включающее описание пользовательских возможностей программирования, системы команд, системы адресации, организации памяти и т. д. Архитектура определяет принципы действия, информационные связи и взаимное соединение основных логических узлов компьютера: процессора, оперативного запоминающего устройства (ОЗУ, ОП), внешних ЗУ и периферийных устройств.

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

Структуры и архитектуры ЭВМ Принципы фон Неймана

В основу архитектуры большинства компьютеров положены следующие общие принципы, сформулированные в 1945 г. американским ученым Дж. фон Нейманом в отчете по ЭВМ EDVAC

[8, 9, 12], — принцип программного управления; принцип однородности памяти; принцип адресности. По истечении более 60 лет большинство компьютеров так и имеют «фон-неймановскую архитектуру», причем обычно принципы фон Неймана реализованы в следующей форме:
  • • оперативная память (ОП или ОЗУ — оперативное запоминающее устройство) организована как совокупность машинных слов (МС) фиксированной длины или разрядности (имеется в виду количество двоичных единиц или бит, содержащихся в каждом МС). Например, ранние ПЭВМ имели разрядность 8, затем появились 16-разрядные, а затем — 32- и 64-разрядные машины. В свое время существовали даже 45-разрядные (М-20, М-220), 35-разрядные (Минск-22, Минск-32) и др. машины;
  • • ОП образует единое адресное пространство, адреса МС возрастают от младших к старшим;
  • • в ОП размещаются как данные, так и программы, причем в области данных одно слово, как правило, соответствует одному числу, а в области программы — одной команде (машинной инструкции — минимальному и неделимому элементу программы);
  • • команды выполняются в естественной последовательности (по возрастанию адресов в ОП), пока не встретится команда управления (условного/безусловного перехода, или ветвления — branch), в результате которой естественная последовательность нарушится;
  • • ЦП может произвольно обращаться к любым адресам в ОП для выборки и/или записи в МС чисел или команд.

Функциональные блоки (агрегаты, устройства)

Краткий список основных устройств, входящих в состав вычислительных машин, приведен на рис. 2.1.

Центральное устройство (ЦУ) представляет основную компоненту ЭВМ и в свою очередь включает ЦП — центральный процессор (central processing unit — CPU) и ОП (Main Storage, Core Storage, Random Access Memory — RAM).

Процессор непосредственно реализует операции обработки информации и управления вычислительным процессом, осуществляя выборку машинных команд и данных из оперативной па-

2.1. Структуры и архитектуры ЭВМ

Рис. 2.1. Перечень устройств ЭВМ

* Данные устройства здесь не рассматриваются. Читатель может обратиться, например, к [8, 9, 10, 12].

мяти, их выполнение и запись результатов в ОП, включение и отключение ВУ. Рассмотрим в качестве примера процессор Intel Pentium (рис. 2.2). Он состоит из следующих блоков [8, 9]:

• ядро (Core). Основное исполнительное устройство, которое включает в себя арифметико-логическое устройство (АЛУ, или Arithmetic and Logical Unit — ALU) регистры, конвейеры. АЛУ — часть процессора, выполняющая арифметические и логические операции над данными, работает в соответствии с сообщаемыми ему кодами операций, которые должны быть выполнены над переменными, помещаемыми в регистры. Повышение производительности достигалось благодаря двум конвейерам, позволяющим выполнить одновременно несколько инструкций. Это два параллельных 5-ступенчатых конвейера обработки целых чисел, которые позволяют читать, интерпретировать, исполнять две команды одновременно. Целочисленные команды могут выполняться за один такт синхронизации. Эти конвейеры неодинаковы: U-конвейер выполняет любую команду системы команд семейства 86; V-конвейер выполняет только «простые» команды, т. е. команды, которые полностью встроены в схемы МП и не требуют микропрограммного управления (microcode) при выполнении (это команды, до-

Рис. 2.2. Основные компоненты процессора Pentium

пускающие спаривание с другими командами: регистр—регистр, память—регистр, регистр—память, переходы, вызовы, арифметико-логические операции);

  • • предсказатель переходов (Branch Predictor) — блок, который «пытается угадать» направление ветвления программы и заранее загрузить информацию в блоки пред- выборки и декодирования команд [12];
  • •буфер адреса переходов (Branch Target Buffer — ВТ В). Обеспечивает динамическое предсказание переходов. Он улучшает выполнение команд путем запоминания состоявшихся переходов (256 последних переходов) и с опережением выполняет наиболее вероятный переход при выборке команды ветвления. При статических методах предсказания предписывается всегда выполнять или нет определенные виды переходов. При динамических методах исследуется поведение команд перехода за предшествующий период;
  • • блок плавающей точки (Floating Point Unit). Выполняет обработку чисел с плавающей точкой;
  • • кэш-память 1-го уровня (Level 1 cache). Процессор имеет два банка памяти по 8 Кбайт, один — для команд, второй — для данных, которые обладают большим быстродействием, чем более емкая внешняя кэш-память (L2 cache).
  • • интерфейс шины (Bus Interface). Передает в ЦП поток команд и данных, а также передает данные из ЦП.
Читайте также:  Влияние заболевания головного мозга на зрение

Внешние (периферийные) устройства (В У). ВУ обеспечивают взаимодействие с окружающей средой — пользователями, объектами управления, другими машинами.

Интерфейсы служат для сопряжения центральных узлов машины с ее внешними устройствами.

Однотипные ЦУ и устройства хранения данных могут использоваться в различных типах машин. Известны примеры того, как фирмы, начавшие свою деятельность с производства управляющих машин, совершенствуя свою продукцию, перешли к выпуску систем, которые в зависимости от конфигурации ВУ могут исполнять как роль универсальных, так и управляющих машин (машины Hewlett-Packard — HP и Digital Equipment Corporation — DEC).

Архитектура «звезда». Здесь процессор (ЦУ) — рис. 2.3, а — соединен непосредственно с ВУ и управляет их работой (ранние модели машин). Этот тип также именуется классическая архитектура (фон Неймана) — одно арифметико-логическое устройство (АЛУ), через которое проходит поток данных, и одно устройство управления (УУ), через которое проходит поток команд — программа. Это однопроцессорный компьютер.

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

Иерархическая архитектура (рис. 2.3, б) — ЦУ соединено с периферийными процессорами (вспомогательными процессорами, каналами, канальными процессорами), управляющими в свою очередь контроллерами, к которым подключены группы ВУ (системы IBM 360-375, ЕС ЭВМ);

Магистральная структура (общая шина — unibas, рис. 2.3, в) — процессор (процессоры) и блоки памяти (ОП) взаимодействуют между собой и с ВУ (контроллерами ВУ) через внутренний канал, общий для всех устройств (машины DEC, IBM РС-совмес- тимые ПЭВМ).

Технически шина представляет собой набор проводников (линий), соединяющий различные компоненты компьютера для подвода к ним питания и обмена данными. В минимальной комплектации шина имеет три типа линий:

управления; адреса; данных.

К этому типу архитектуры относится также архитектура персонального компьютера (ПК). Конечно, реальная структура ПК (рис. 2.3, г) отличается от теоретических схем — здесь используется несколько разновидностей шинных интерфейсов, которые соединяются между собой мостами — контроллерами памяти (Northbridge, «Северный мост») и периферийных устройств (Southbridge, «Южный мост»).

Рис. 2.3. Основные классы архитектур ЭВМ: а — централизованная; б — иерархическая; в — магистральная; г — общая структура персонального компьютера — архитектура Northbridge/Southbridge

Здесь приведен пример набора микросхем (chipset) Triton 430 ТХ:

  • • Northbridge — микросхема 82439ТХ System Controller, МТХС. Интегрирует контроль кэш-памяти, ОП и шины PCI;
  • • Southbridge — 82371АВ PCI ISA IDE Xcelerator, PIIX4 — многофункциональное устройство, реализующее связь PCI— ISA, функции концентратора (hub) USB и функции управления потреблением электроэнергии (Enhanced Power Management). Здесь реализована Dynamic Power Management Architecture (DPMA) — архитектура динамического управления энергопотреблением. Поддерживается также протокол прямого обращения к памяти (Ultra DMA), который обеспечивает скорость передачи в 33 Мбайт/с с НЖМД.

Современные системы включают два типа шин:

  • системная шина, соединяющая процессор с ОП и кэш-памятью 2-го уровня;
  • • множество шин ввода-вывода, соединяющие процессор с различными периферийными устройствами.

Системная шина при архитектуре DIB (Dual independent bus, двойная независимая шина) физически разделена на две (рис. 2.3, г):

  • • первичная шина (FSB, frontside bus), связывающая процессор с ОП и ОП с периферийными устройствами;
  • • вторичная шина (BSB, backside bus) для связи с кэш-па- мятью.

Использование двойной независимой шины повышает производительность за счет возможности для процессора параллельно обращаться к различным уровням памяти. Обычно термины «FSB» и «системная шина» используют как синонимы.

Следует иметь в виду, что терминология, используемая в настоящее время для описания интерфейсов, не является вполне однозначной и ясной. Системная шина часто упоминается как «главная шина», «хост-шина», «шина процессора», или «локальная шина». Для шин ввода-вывода используются термины «шина расширения», «внешняя шина» и опять же — «локальная шина».

Открытая архитектура IBM-PC и ее развитие

Впервые реализованная в машинах IBM PC, IBM PC/XT и PC/AT концепция открытой архитектуры предполагает, что периферийные устройства связываются с ЦУ (процессор

и ОП) посредством сменных карт расширения (или адаптеров), содержащих электронику, согласующую ЦУ и периферию — рис. 2.4. Развитие или замена одних внешних устройств на другие в таких условиях сопровождается простой заменой карты.

Рис. 2.4. Открытая архитектура IBM PC:

1 — системная плата (процессор, память, chipset); 2 — внутренний интерфейс (ISA, MCA, SCSI, LPC, AGP, HyperTransport, PCI, PCI-X и пр.); 3 — плата расширения (адаптер, интерфейсная карта, контроллер внешнего устройства); 4 — интерфейс внешнего устройства (RS-232, Centronics, USB, Firewire, инфракрасный, eSATA, Bluetooth и пр.); 5 — периферийное устройство (клавиатура, монитор, принтер, сканер и пр.)

Системные платы и их разновидности. Системную плату также называют главной (mainboard) или материнской (motherboard), иногда — объединительной платой. Это — основная монтажная схема внутри ПК, на которой располагаются процессор, память, слоты расширения и которая непосредственно или косвенно присоединяется к каждой части ПК.

На рисунках ниже иллюстрируются компоненты для двух типичных плат:

  • • Baby АТ (ВАТ), где используется разъем Socket 7 для присоединения процессора, приблизительно 1995 г. (рис. 2.5, 2.7, а);
  • • АТХ с разъемом Slot 1 для присоединения процессора Pentium И, типичный для системных плат, на рынке с конца 1998 г. (рис. 2.6, 2.7, б).

Открытая архитектура первых ПК предполагала минимум устройств, контроллеры которых были интегрированы в системную плату (например, порт для клавиатуры). Все остальные, включая адаптер дисплея, принтера, модема, НГМД или контроллер жесткого диска, являлись дополнительными компонентами, подключаемыми через разъемы расширения.

В конце 1990-х гг. обозначилась тенденция к помещению адаптеров периферийных устройств непосредственно на систем-

Рис. 2.5. Плата ВАТ, общий вид

Рис. 2.6. Плата АТХ

Рис. 2.7. Разъемы и интерфейсы, размещенные на задней панели корпусов: а — плата Baby АТ (схематическое изображение), б АТХ (то же); в — общий вид некоторых типов внешних интерфейсов: 1 разъем для подсоединения шнура электропитания монитора (на ATX-корпусах может отсутствовать); 2 — разъем для подключения компьютера к сети переменного тока; 3 разъем для подсоединения клавиатуры PS/2 (мини-DIN, 6 штырьков); 4 разъем для подсоединения клавиатуры DIN-5; 5 разъем для подключения мыши PS/2; 6 — USB—порты; 7 — последовательный порт (COM2); 8 — последовательный порт (СОМ1); 9 параллельный порт (LPT); 10 видеовыход (VGA/SVGA); 11 разъем для подключения локальной сети (в соответствии с моделью компьютера); 12 MIDI/Game порт (в соответствии с моделью компьютера); 13 гнезда для подключения внешних аудиосистем (в соответствии с моделью компьютера)

ную плату и через какое-то время было интегрировано значительное количество устройств, однако многие из них — графика, сетевой интерфейс, устройства SCSI и звуковые — все же продолжали оставаться съемными. Этот процесс шел медленно, например порты ввода-вывода и контроллеры диска еще в 1995 г. часто размещались на платах расширения. Изготовители постоянно экспериментировали с различными уровнями интеграции, встраивая некоторые или даже все эти компоненты в системную плату. Однако есть очевидное препятствие — труднее модернизировать сборку, поскольку интегрированные компоненты не могут быть удалены. Для высокоинтегрированных системных плат часто требуется нестандартный корпус, при этом для замены отдельного дефектного компонента может потребоваться выбраковка системной платы.

Следовательно, те части системы, спецификация которых изменяется наиболее быстро — оперативная память, центральный процессор и графика — целесообразнее размещать в гнездах для облегчения замены. Точно так же обычно удаляются из основной спецификации (чтобы уменьшить затраты) компоненты, используемые не всеми пользователями, например сетевые интерфейсы или SCSI.

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Архитектура компьютера

Архитектура компьютера — набор типов данных, операций и характеристик каждого отдельно взятого уровня. Архитектура связана с программными аспектами. Аспекты реализации (например, технология, применяемая при реализации памяти) не являются частью архитектуры. Архитектура определяет принципы действия, информационные связи и взаимное соединение основных логических узлов компьютера: процессора, оперативного запоминающего устройства (ЗУ), внешних ЗУ и периферийных устройств. Общность архитектуры разных компьютеров обеспечивает их совместимость с точки зрения пользователя. [1]

Содержание

Уровни организации

Большинство современных компьютеров состоит из двух и более уровней. Существуют машины даже с шестью уровнями (рисунок 1). Уровень 0 — аппаратное обеспечение машины. Его электронные схемы выполняют программы, написанные на языке уровня 1. Ради полноты нужно упомянуть о существовании еще одного уровня, расположенного ниже уровня 0. Этот уровень не показан на рисунке 1, так как он попадает в сферу электронной техники и, следовательно, не рассматривается в этой книге. Он называется уровнем физических устройств. На этом уровне находятся транзисторы, которые являются примитивами для разработчиков компьютеров.

Следующий уровень — микроархитектурный уровень. На этом уровне можно видеть совокупности 8 или 32 регистров, которые формируют локальную память и схему, называемую АЛУ (арифметико-логическое устройство). АЛУ выполняет простые арифметические операции. Регистры вместе с АЛУ формируют тракт данных, по которому поступают данные. Основная операция тракта данных состоит в следующем. Выбирается один или два регистра, АЛУ производит над ними какую-либо операцию, например сложения, а результат помещается в один из этих регистров.

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

Новые средства, появившиеся на третьем уровне, выполняются интерпретатором, который работает на втором уровне. Этот интерпретатор был когда-то назван операционной системой. Команды третьего уровня, идентичные командам второго уровня, выполняются микропрограммой или аппаратным обеспечением, но не операционной системой. Иными словами, одна часть команд третьего уровня интерпретируется операционной системой, а другая часть — микропрограммой. Вот почему этот уровень считается гибридным. Мы будем называть этот уровень уровнем операционной системы.

Четвертый уровень представляет собой символическую форму одного из языков более низкого уровня. На этом уровне можно писать программы в приемлемой для человека форме. Эти программы сначала транслируются на язык уровня 1, 2 или 3, а затем интерпретируются соответствующей виртуальной или фактически существующей машиной. Программа, которая выполняет трансляцию, называется ассемблером.

Пятый уровень обычно состоит из языков, разработанных для прикладных программистов. Такие языки называются языками высокого уровня. Существуют сотни языков высокого уровня. Наиболее известные среди них — BASIC, С, C++,С#, Java, LISP и Prolog. Программы, написанные на этих языках, обычно транслируются на уровень 3 или 4. Трансляторы, которые обрабатывают эти программы, называются компиляторами. Отметим, что иногда также используется метод интерпретации. Например, программы на языке Java обычно интерпретируются.

Цифровой логический уровень (0)

В самом низу иерархической схемы на рисунке 1 находится цифровой логический уровень, или аппаратное обеспечение компьютера, которое составляют цифровые схемы. Они могут конструироваться из небольшого числа простых элементов путем сочетания этих элементов в различных комбинациях. Цифровая схема — это схема, в которой есть только два логических значения. Обычно сигнал от 0 до 1 В представляет одно значение (например, 0), а сигнал от 2 до 5 В — другое значение (например, 1). Напряжение за пределами указанных величин недопустимо. Крошечные электронные устройства, которые называются вентилями, могут вычислять различные функции от этих двузначных сигналов. Эти вентили формируют основу аппаратного обеспечения, на которой строятся все цифровые компьютеры.

Вся современная цифровая логика основывается на том, что транзистор может работать как очень быстрый бинарный переключатель. На рисунке 2 изображен биполярный транзистор, встроенный в простую схему. Транзистор имеет три соединения с внешним миром; коллектор, базу и эмиттер. Если входное напряжение ниже определенного критического значения, транзистор выключается и действует как очень большое сопротивление. Это приводит к выходному сигналу, близкому к Vcc (напряжению, подаваемому извне), обычно +5 В для данного типа транзистора. Если входное напряжение превышает критическое значение, транзистор включается и действует как провод, вызывая заземление сигнала (по соглашению 0 В).

Эти три схемы образуют три простейших вентиля Они называются вентилями НЕ, НЕ-И и НЕ-ИЛИ. Вентили НЕ часто называют инверторами. Мы будем использовать оба термина. Если мы примем соглашение, что высокое напряжение (Vcc) — это логическая 1, а низкое напряжение («земля») — логический 0, то мы сможем выражать значение на выходе как функцию от входных значений. Значки, которые используются для изображения этих трех типов вентилей, показаны на рисунке 3, а — в. Там же приводится поведение функции для каждой схемы. На этих рисунках А и В — это входные сигналы, а X — выходной сигнал. Каждая строка таблицы определяет выходной сигнал для различных комбинаций входных сигналов.

Хотя устройство вентилей относится к уровню физических устройств, мы все же упомянем основные серии производственных технологий, так как они часто упоминаются в литературе. Две основные технологии — биполярная и МОП (металл-оксид-полупроводник). Среди биполярных технологий можно назвать ТТЛ (транзисторно-транзисторную логику), которая служила основой цифровой электроники на протяжении многих лет, и ЭСЛ (эмиттерно-связанную логику), которая используется в тех случаях, когда требуется высокая скорость выполнения операций. Вентили МОП работают медленнее, чем ТТЛ и ЭСЛ, но потребляют гораздо меньше энергии и занимают гораздо меньше места, поэтому можно компактно расположить большое количество таких вентилей. Вентили МОП имеют несколько разновидностей: р-канальный МОП-прибор, n-канальный МОП-прибор и комплиментарный МОП. Хотя МОП-транзисторы конструируются не так, как биполярные транзисторы, они обладают такой же способностью функционировать, как электронные переключатели. Современные процессоры и память чаще всего производятся с использованием технологии комплиментарных МОП, которая работает при напряжении +3,3 В.

Вентили производятся и продаются не по отдельности, а в модулях, которые называются интегральными схемами (ИС) или микросхемами. Интегральная схема представляет собой квадратный кусочек кремния размером примерно 5×5 мм, на котором находится несколько вентилей. Маленькие интегральные схемы обычно помещаются в прямоугольные пластиковые или керамические корпуса размером от 5 до 15 мм в ширину и от 20 до 50 мм в длину. Вдоль длинных сторон располагается два параллельных ряда выводов около 5 мм в длину, которые можно втыкать в разъемы или впаивать в печатную плату. Каждый вывод соединяется с входом или выходом какого-нибудь вентиля, или с источником питания, или с «землей». Корпус с двумя рядами выводов снаружи и интегральными схемами внутри официально называется двурядным корпусом (Dual Inline Package, сокращенно DIP), но все называют его микросхемой, стирая различие между куском кремния и корпусом, в который он помещается. Большинство корпусов имеют 14, 16, 18, 20, 22, 24, 28,40, 64 или 68 выводов. Для больших микросхем часто используются корпуса, у которых выводы расположены со всех четырех сторон или снизу. Микросхемы можно разделить на несколько классов с точки зрения количества вентилей, которые они содержат. Эта классификация, конечно, очень грубая, но иногда она может быть полезна:

  • МИС (малая интегральная схема): от 1 до 10 вентилей
  • СИС (средняя интегральная схема): от 1 до 100 вентилей
  • БИС (большая интегральная схема): от 100 до 100 000 вентилей
  • СБИС (сверхбольшая интегральная схема): более 100 000 вентилей

Эти схемы имеют различные свойства и используются для различных целей.

Многие применения цифровой логики требуют наличия схем с несколькими входами и несколькими выходами, в которых выходные сигналы определяются текущими входными сигналами. Такая схема называется комбинационной схемой. Часто используемые комбинационные схемы:

  • Мультиплексоры: На цифровом логическом уровне мультиплексор представляет собой схему с 2″ входами, одним выходом и п линиями управления, которые выбирают один из входов. Выбранный вход соединяется с выходом. Мультиплексор может использоваться для выбора одного из нескольких входов и реализации таблицы истинности. Его также можно использовать в качестве преобразователя параллельного кода в последовательный
  • Дешифраторы: схема, которая получает на входе n-битное число и использует его для того, чтобы выбрать (то есть установить на значение 1) одну из 2″ выходных линий.
  • Компараторы: компаратор сравнивает два слова, которые поступают на вход
Читайте также:  Точка лазерного прицела тоже чья то точка зрения

Микроархитектурный уровень (1)

Над цифровым логическим уровнем находится микроархитектурный уровень. Его задача — интерпретация команд уровня 2 (уровня архитектуры команд), как показано на рисунке 1. Строение микроархитектурного уровня зависит от того, каков уровень архитектуры команд, а также от стоимости и предназначения компьютера. В идеале следовало бы сначала описать общие принципы разработки микроархитектурного уровня. К сожалению, таких общих принципов не существует. Каждая разработка индивидуальна.

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

  • Сокращение количеств циклов, необходимых для выполнения команды
  • Упрощение организации машины таким образом, чтобы можно было сделать цикл короче
  • Выполнение нескольких операций одновременно

Уровень архитектуры системы команд (2)

Он расположен между микроархитектурным уровнем и уровнем операционной системы, как показано на рисунке 1. Исторически этот уровень развился прежде всех остальных уровней и изначально был единственным. В наши дни этот уровень очень часто называют «архитектурой» машины, а иногда «языком ассемблера». Является связующим звеном между программным и аппаратным обеспечением. Более подробно об этом уровне написано здесь.

Уровень операционной системы (3)

Операционная система — это программа, которая добавляет ряд команд и особенностей к тем, которые обеспечиваются уровнем команд. Обычно операционная система реализуется главным образом в программном обеспечении, но нет никаких веских причин, по которым ее нельзя было бы реализовать в аппаратном обеспечении (как микропрограммы). Хотя и уровень операционной системы, и уровень команд абстрактны (в том смысле, что они не являются реальным аппаратным обеспечением), между ними есть важное различие. Набор команд уровня операционной системы — это полный набор команд, доступных для прикладных программистов. Он содержит практически все команды более низкого уровня, а также новые команды, которые добавляет операционная система. Эти новые команды называются системными вызовами. Они вызывают определенную службу операционной системы, в частности одну из ее команд. Обычный системный вызов считывает какие-нибудь данные из файла.

Уровень операционной системы всегда интерпретируется. Когда пользовательская программа выполняет команду операционной системы, например чтение данных из файла, операционная система выполняет эту команду шаг за шагом, точно так же, как микропрограмма выполняет команду ADD. Однако когда программа выполняет команду уровня архитектуры команд, эта команда выполняется непосредственно микроархитектурным уровнем без участия операционной системы. У этого уровня есть несколько характерных особенностей. Первая особенность — это виртуальная память. Виртуальная память используется многими операционными системами. Она позволяет создать впечатление, что у машины больше памяти, чем есть на самом деле. Вторая особенность — файл ввода-вывода. Это понятие более высокого уровня, чем команды ввода-вывода. Третья особенность — параллельная обработка (как несколько процессов могут выполняться, обмениваться информацией и синхронизироваться). Под процессом можно понимать работающую программу и всю информацию об ее состоянии (о памяти, регистрах, счетчике команд, вводе-выводе и так далее).

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

Один из способов организации виртуального ввода-вывода — использование абстракции под названием файл. Файл состоит из последовательности байтов, записанных на устройство ввода-вывода. Если устройство ввода-вывода является устройством хранения информации (например, диск), то файл можно считать обратно. Если устройство не является устройством хранения информации (например, это принтер), то файл оттуда считать нельзя. На диске может храниться много файлов, в каждом из которых содержатся данные определенного типа, например картинка, крупноформатная таблица или текст. Файлы имеют разную длину и обладают разными свойствами. Эта абстракция позволяет легко организовать виртуальный ввод-вывод.

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

  • Указание, какой именно открытый файл нужно считывать
  • Указатель на буфер в памяти, в который нужно поместить данные
  • Число считываемых байтов

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

Уровень языка ассемблера (4)

Уровень языка ассемблера существенно отличается от трех предыдущих, поскольку он реализуется с помощью трансляции, а не с помощью интерпретации. Программы, которые преобразуют пользовательские программы, написанные на каком-либо определенном языке, в другой язык, называются трансляторами. Язык, на котором изначально написана программа, называется входным языком, а язык, на который транслируется эта программа, называется выходным языком. Входной язык и выходной язык определяют уровни. Если имеется процессор, который может выполнять программы, написанные на входном языке, то нет необходимости транслировать исходную программу на другой язык.

Язык ассемблера довольно труден. Написание программы на языке ассемблера занимает гораздо больше времени, чем написание той же программы на языке высокого уровня. Кроме того, очень много времени занимает отладка. Есть две причины необходимости использования этого языка: производительность и доступ к машине. Во-первых, профессиональный программист языка ассемблера может составить гораздо меньшую по размеру программу, которая будет работать гораздо быстрее, чем программа, написанная на языке высокого уровня. Для некоторых программ скорость и размер весьма важны. Многие встроенные прикладные программы, например программы в кредитных карточках, сотовых телефонах, драйверах устройств, а также процедуры BIOS попадают в эту категорию. Во-вторых, некоторым процедурам требуется полный доступ к аппаратному обеспечению, что обычно невозможно сделать на языке высокого уровня. В эту категорию попадают прерывания и обработчики прерываний в операционных системах, а также контроллеры устройств во встроенных системах, работающих в режиме реального времени.

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

Программа на языке ассемблера должна не только определять, какие машинные команды нужно выполнить, но и содержать команды, которые должен выполнять сам ассемблер (например, потребовать от него определить местонахождение какой-либо сохраненной информации или выдать новую страницу листинга). Команды для ассемблера называются псевдокомандами или директивами ассемблера.

Язык высокого уровня (5)

Язык программирования высокого уровня — язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта языков программирования высокого уровня — это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания. Так, языки программирования высокого уровня стремятся не только облегчить решение сложных программных задач, но и упростить портирование программного обеспечения. Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остаётся, в идеале, неизменным.

Такого рода оторванность высокоуровневых языков от аппаратной реализации компьютера помимо множества плюсов имеет и минусы. В частности, она не позволяет создавать простые и точные инструкции к используемому оборудованию. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков. Одним из следствий этого стало добавление поддержки того или иного языка низкого уровня (язык ассемблера) в ряд современных профессиональных высокоуровневых языков программирования. Примеры высокоуровневых языков программирования: C, C++, С#, Visual Basic, Java, Python, PHP, Ruby, Perl, Delphi (Pascal). Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинство из них интегрирована поддержка строковых типов, объектов, операций файлового ввода-вывода и тому подобное. [2]

Виды архитектуры

Различают два основных типа архитектуры – Фон Неймановскую (принстонскую) и гарвардскую.

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

Широко известный принцип совместного хранения программ и данных в памяти компьютера. Вычислительные системы такого рода часто обозначают термином «машина фон Неймана», однако, соответствие этих понятий не всегда однозначно. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного модуля от устройств хранения программ и данных. Нейману удалось обобщить научные разработки и открытия многих других ученых и сформулировать на их основе принципы этого подхода:

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

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

В соответствии с принципами фон Неймана компьютер состоит из арифметико-логического устройства — АЛУ (англ. ALU, Arithmetic and Logic Unit), выполняющего арифметические и логические операции; устройства управления, предназначенного для организации выполнения программ; запоминающих устройств (ЗУ), в т.ч. оперативного запоминающего устройства (ОЗУ) и внешнего запоминающего устройства (ВЗУ); внешних устройств для ввода-вывода данных.

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

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

Из арифметико-логического устройства результаты выводятся в память или устройство вывода. Принципиальное различие между ЗУ и устройством вывода заключается в том, что в ЗУ данные хранятся в виде, удобном для обработки компьютером, а на устройства вывода (принтер, монитор и др.) поступают так, как удобно человеку. УУ управляет всеми частями компьютера. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии

.Управляющее устройство содержит специальный регистр (ячейку), который называется «счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды программы. УУ считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство — «Регистр команд». УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.

В результате выполнения любой команды счетчик команд изменяется на единицу и, следовательно, указывает на следующую команду программы. Когда требуется выполнить команду, не следующую по порядку за текущей, а отстоящую от данной на какое-то количество адресов, то специальная команда перехода содержит адрес ячейки, куда требуется передать управление. [3]

Гарвардская архитектура

Гарвардская архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете с целью увеличить скорость выполнения вычислительных операций и оптимизировать работу памяти. Она характеризуется физическим разделением памяти команд (программ) и памяти данных. В ее оригинальном варианте использовался также отдельный стек для хранения содержимого программного счетчика, который обеспечивал возможности выполнения вложенных подпрограмм. Каждая память соединяется с процессором отдельной шиной, что позволяет одновременно с чтением-записью данных при выполнении текущей команды производить выборку и декодирование следующей команды. Благодаря такому разделению потоков команд и данных и совмещению операций их выборки реализуется более высокая производительность, чем при использовании Принстонской архитектуры.

Недостатки Гарвардской архитектуры связаны с необходимостью проведения большего числа шин, а также с фиксированным объемом памяти, выделенной для команд и данных, назначение которой не может оперативно перераспределяться в соответствии с требованиями решаемой задачи. Поэтому приходится использовать память большего объема, коэффициент использования которой при решении разнообразных задач оказывается более низким, чем в системах с Принстонской архитектурой. Однако развитие микроэлектронной технологии позволило в значительной степени преодолеть указанные недостатки, поэтому Гарвардская архитектура широко применяется во внутренней структуре современных высокопроизводительных микропроцессоров, где используется отдельная кэш-память для хранения команд и данных. В то же время во внешней структуре большинства микропроцессорных систем реализуются принципы Принстонской архитектуры. [4]

Источники:
  • http://studfiles.net/preview/6311817/page:6/
  • http://mirznanii.com/a/217392/arkhitektura-fon-neymana
  • http://studref.com/352370/informatika/osnovnye_arhitekturnye_printsipy_interfeysy
  • http://ru.bmstu.wiki/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0