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

Для начала введем новое определение термина “вычислительная машина” как совокупности технических средств, служащих для автоматизированной обработки дискретных данных по заданному алгоритму. Алгоритм – одно из фундаментальных понятий математики и вычислительной техники. Международная организация стандартов (ISO) формулирует понятие алгоритм как “конечный набор предписаний, определяющий решение задачи посредством конечного количества операций” (ISO 2382/1-84). Помимо этой стандартизированной формулировки существуют и другие определения. Приведем наиболее распространенные из них. Итак, алгоритм – это:

1. способ преобразования информации, задаваемый с помощью конечной системы правил.

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

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

Что такое динамическая память. Утечка памяти. Стек и куча. Статическая память. Обзорный урок #45

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

Дискретность выражается в том, что алгоритм описывает действия над дискретной информацией (например, числовой или символьной), причем сами эти действия также дискретны.

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

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

Наконец, результативность алгоритма состоит в возможности получения результата за конечное число шагов.

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

В основе архитектуры современных ВМ лежит представление алгоритма решения задачи в виде программы последовательных вычислений. Согласно стандарту ISO 2382/1-84, программа для ВМ – это “упорядоченная последовательность команд, подлежащая обработке”.

ВМ, где определенным образом закодированные команды программы хранятся в памяти, известна под названием вычислительной машины с хранимой в памяти программой. Идея принадлежит создателям вычислителя ENIАС Эккерту, Мочли и фон Нейману. Еще до завершения работ над ENIАС они приступили к новому проекту – EDVAC, главной особенностью которого стала концепция хранимой в памяти программы, на долгие годы определившая базовые принципы построения последующих поколений вычислительных машин. Относительно авторства существует несколько версий, но поскольку в законченном виде идея впервые была изложена в 1945 году в статье фон Неймана, именно его фамилия фигурирует в обозначении архитектуры подобных машин, составляющих подавляющую часть современного парка ВМ и ВС.

Сущность фон-неймановской концепции вычислительной машины можно свести к четырем принципам:

Информатика. Архитектура ПК: Представление целых чисел в памяти ПК. Центр онлайн-обучения «Фоксфорд»

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

В формате команды можно выделить два поля: поле кода операции (КОп) и поле адресов(адресную часть – АЧ). Код операции представляет собой указание, какая операция должна быть выполнена, и задается с помощью r-разрядной двоичной комбинации. Вид адресной части и число составляющих ее адресов зависят от типа команды: в командах преобразования данных АЧ содержит адреса объектов обработки (операндов) и результата; в командах изменения порядка вычислений – адрес следующей команды программы; в командах ввода/вывода – номер устройства ввода/ вывода. Адресная часть также представляется двоичной последовательностью, длину которой обозначим через р. Таким образом, команда в вычислительной машине имеет вид (r+р)-разрядной двоичной комбинации.

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

3. однородности памяти. Команды и данные хранятся в одной и той же памяти и внешне в памяти неразличимы. Распознать их можно только по способу использования. Это позволяет производить над командами те же операции, что и над числами, и, соответственно, открывает ряд возможностей.

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

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

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

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

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

Форматы команд

Типовая команда должна указывать:

а. подлежащую исполнению операцию;

б. адреса исходных данных (операндов), над которыми выполняется операция;

в. адрес, по которому должен быть помещен результат операции.

В соответствии с этим команда состоит из двух частей: операционной и адресной:

Операционная часть Адресная часть

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

а. общее число команд;

б. общую длину команды;

в. тип полей команды (переменной или фиксированной длины) и их длина;

г. простоту декодирования;

д. адресуемость и способы адресации;

е. стоимость оборудования для декодирования и исполнения команды.

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

Для упрощения аппаратуры длину команды выбирают кратной байту. В рамках системы команд одной ВМ могут использоваться разные форматы команд. Обычно это связано с применением разных способов адресации. В таком случае в состав кода команды вводится поле для задания способа адресации (СА):

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

Код операции 1-й операнд 2-й операнд Результат След. команда
Читайте также:
Программа Microsoft office publisher это

Такой формат команды был у машины EDVAC (40-е годы).

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

Код операции 1-й операнд 2-й операнд Результат

В трехадресном формате длина команды может оказаться весьма большой. Так, если адрес ячейки основной памяти имеет длину 32 бита, а длина кода операции – 8бит, то длина команды составит 104 бита (13 байт). Если по умолчанию взять за адрес результата адрес одного из операндов (обычно второго), то в итоге получим двухадресный формат команды:

Код операции 1-й операнд 2-й операнд/Результат

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

Код операции 1-й или 2-й операнд

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

Код операции Регистр 2-й операнд

Наконец, если для обоих операндов указать стандартное местоположение, или команда не требует операндов, то можно получить нульадресный (безадресный) формат команды:

При выборе количества адресов в команде следует руководствоваться следующими критериями:

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

б. временем выполнения программы;

в. эффективностью использования ячеек памяти при хранении программы.

Способы адресации

В современных ВМ исполнительный адрес (Аисп) и адресный код (Ак), как правило, не совпадают, и для доступа к данным требуется соответствующее преобразование. Способом адресации называют способ формирования исполнительного адреса операнда по адресному коду команды. Исполнительным адресом операнда (Аисп) называется двоичный код номера ячейки памяти, служащей источником или приемником операнда. Этот код подается на адресные входы запоминающего устройства (ЗУ), и по нему происходит фактическое обращение к указанной ячейке. Если операнд хранится не в основной памяти, а в регистре процессора, то исполнительным адресом будет номер регистра.

Для определения, какой способ адресации используется, в разных ВМ используют разные приемы. Часто разным способам адресации соответствуют разные коды операции. Другой подход – это добавление в состав команды специального поля способа адресации, содержимое которого определяет, какой из способов адресации используется.

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

В настоящее время используются следующие способы адресации:

а. Непосредственная адресация. В этом случае в адресном поле вместо адреса содержится сам операнд:

Код операции Способ адресации Непосредственный операнд

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

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

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

г. Регистровая адресация. Она напоминает прямую адресацию. Различие лишь в том, что адресное поле указывает не на ячейку памяти, а на регистр процессора. Обычно размер адресного поля здесь – три или четыре бита (адресация до 16 регистров):

д. Косвенная регистровая адресация. Здесь исполнительный адрес хранится в регистре процессора:

е. Адресация со смещением. Здесь исполнительный адрес формируется в результате суммирования содержимого адресного поля команды с содержимым одного или нескольких регистров процессора:

Некоторые из видов адресация со смещением имеют свои названия. Например:

– относительная адресация. При этом для получения исполнительного адреса операнда содержимое подполя Ак команды складывается с содержимым счетчика команд:

– базовая регистровая адресация. В этом случае регистр, называемый базовым, содержим полноразрядный адрес, а подполе Ас – смещение относительно этого адреса. Здесь может быть вариант с базовой регистровой адресацией с базовым регистром:

и базовая регистровая адресация с использованием РОН:

– индексная адресация. В этом случае подполе Ас содержит адрес ячейки памяти, а регистр (указанный явно или неявно) – смещение относительно этого адреса. Можно выделить индексную адресацию с индексным регистром:

и индексную адресацию с одним из РОН:

В большинстве случаев увеличение или уменьшение содержимого индексного регистра осуществляется автоматически до или после обращения к нему. Такой прием называется автоиндексированием. Автоиндексирование с увеличением содержимого индексного регистра называется автоинкрементной адресацией, а с уменьшением – автодекрементной адресацией. Также индексная адресация может быть с масштабированием и смещением.

ж. страничная адресация. Она предполагает разбиение адресного пространства на страницы. Старшая часть адреса хранится в специальном регистре – регистре адреса страницы (РАС), а в адресном коде команды указывается смещение внутри страницы. Исполнительный адрес получается конкатенацией (присоединением) Ас к содержимому РАС:

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

и. стековая адресация. Здесь в качестве адреса используется стек. Стеком называется память, по своей структурной организации отличная от основной памяти ВМ. Стек образует множество логически взаимосвязанных ячеек, взаимодействующих по принципу “последним вошел, первым вышел” (LIFO, Last In First Out). Верхнюю ячейку называют вершиной стека.

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

Источник: cyberpedia.su

Микроконтроллеры для начинающих. Часть 5. Архитектура. Адресные пространства и память

Предыдущая статья цикла » Микроконтроллеры для начитающих. Часть 4. Очень кратко о микропрограммах » была факультативной. Однако, теперь мы еще на шаг приблизимся к практическому использованию микроконтроллеров. Пусть и упрощенно, схематически, но мы теперь представляем, как устроен процессор микроконтроллера. Пришло время подключать его к остальным узлам управляющей микроЭВМ микроконтроллера.

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

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

  • Организация памяти. Это количество различных типов памяти, их организация, способы подключения к процессору, особенности работы памяти.
  • Система команд. Обратите внимание, я не сказал набор команд, я сказал система команд. В наборе команд ЭВМ(точнее, процессора) некоторые команды могут отсутствовать, могут включаться дополнительные команды, но подход к формированию системы команд остается неизменным. Набор команд это подмножество системы команд. Сюда входит адресность команд (количество операндов), режимы адресации операндов, тонкости выполнения (количество циклов, возможно, переменное), типы выполняемых операций, возможность расширения.
  • Подсистема ввода-вывода. Способы подключения и адресации внешних (периферийных). Сюда же относится и наличие (и организация) канала прямого доступа к памяти ЭВМ.
  • Возможность построения многопроцессорных комплексов. Одновременная работа нескольких процессоров в составе ЭВМ далеко не так проста, как может показаться. Причем и с точки зрения программиста.
  • Механические параметры. Да, как ни странным это кажется. Наверное все знают платы расширения устанавливаемые в настольные ПК или в гнезда PCMCIA. Были и определенные требования к размерам ТЭЗ (типовой элемент замены), так назывались платы устанавливаемые в стойки больших ЭВМ (ЕС, СМ). Механические параметры далеко не всегда входят в понятие архитектуры, но иногда такое встречается.
Читайте также:
Программа установки драйверов не видит принтер

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

«Чистые архитектуры» идеального мира

Наиболее известны две архитектуры подключения памяти к процессору. Первая, знакомая всем по IBM PC совместимым ЭВМ (точнее, микропроцессорам 80×86), архитектура фон Неймана . Вторая, менее известная, но более важная для нас, как станет видно в дальнейшем, Гарвардская архитектура .

Наиболее известные архитектуры ЭВМ с точки зрения организации памяти.

Как видно, основное различие здесь в использовании памяти.

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

Хранит и программу, и данные, в единой памяти. Это выглядит привлекательно, так как позволяет эффективно использовать память небольшого объема. У нас небольшая программа, которая обрабатывает большие объемы данных? Нет никаких проблем, главное, что бы суммарный размер программы и данных мог поместиться в память. Большая программа требующая мало данных?

Тоже все просто.

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

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

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

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

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

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

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

Зато для микроконтроллеров она подходит хорошо. Ведь программа в микроконтроллер обычно загружается если не однократно, то надолго и изменять ее не требуется. А отдельная область данных позволяет повысить надежность работы и уменьшить объем ОЗУ (оперативная память зачастую дороже). Теперь стало немного понятнее, почему я сказал, что Гарвардская архитектура для более важна, мы же говорим как раз о микроконтроллерах.

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

Суровый реальный мир и компромиссы

Реальные ЭВМ не используют в чистом виде ни одну из описанных выше архитектур. Хотя существовали и ЭВМ полностью им соответствующие. Архитектура реальных ЭВМ это некий компромисс. Но прежде чем двигаться дальше нам нужно кратко остановиться на понятии адресного пространства.

Адресное пространство

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

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

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

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

Пример упрощенного представления об адресном пространстве программы. Иллюстрация моя

Для процессоров 80х86 области памяти обычно называют сегментами. В рамках своего адресного пространства программа может как угодно распоряжаться памятью. Но выход за пределы адресного пространства запрещен (обычно, операционной системой). Видно, что адресное пространство задачи занимает часть, в общем случае, все имеющейся памяти ЭВМ.

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

Пример отображения адресного пространства задачи на физическую память ЭВМ. Серым цветом отмечены не используемые области памяти. Иллюстрация моя

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

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

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

В рамках приведенного ранее примера с адресным пространством задачи можно показать пример частичного перекрытия

Пример перекрывающихся адресных пространств. Иллюстрация моя

Но какое это отношение имеет к микроконтроллерам? Самое прямое! И сейчас это станет видно.

Адресные пространства ЭВМ

Да, именно так. Микроконтроллер включает в себя управляющую ЭВМ, как мы уже видели ранее. Какие области памяти могут быть в ЭВМ? Вспомним наши «чистые архитектуры». Область команд программы и область данных . Но это не все, есть еще область стека , которая может оказаться не такой простой, и область ввода-вывода .

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

Вероятно, некоторым из вас знакомы команды IN и OUT , которые иногда используются для доступа к таким регистрам. Адреса в командах IN и OUT как раз и относятся к области ввода-вывода.

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

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

Читайте также:
Зачем нужна программа cpu z

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

Если еще раз вспомнить «чистые архитектуры», то станет видно, что в архитектуре фон Неймана адресные пространства программ и данных полностью совпадают. А в Гарвардской архитектуре они полностью изолированы.

А вот со стеком все немного интереснее. Стек хранит адреса возвратов и временные данные. С архитектурой фон Неймана все понятно, там адресные пространства совпадают. А как быть с Гарвардской? Мы не можем поместить стек в память программ, так он может содержать и данные. А в микроконтроллерах память программ еще и обычно представлена ПЗУ.

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

Архитектура персонального компьютера

Архитектура персонального компьютера (ПК) включает в себя структуру, которая отражает состав ПК, и программное обеспечение.

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

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

Основным принципом построения всех современных ПК является программное управление.

Классическая архитектура фон Неймана

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

Основные принципы фон Неймана:

  1. Использование двоичной системы счисления в ПК, в которой устройствам гораздо проще выполнять арифметико-логические операции, чем в десятичной.
  2. Программное управление ПК. Работа ПК управляется программой, которая состоит из набора команд, выполняющихся последовательно одна за другой. Создание машины с хранимой в памяти программой положило начало программированию.
  3. Данные и программы хранятся в памяти ПК. Команды и данные кодируются одинаково в двоичной системе.
  4. Ячейки памяти ПК имеют последовательно пронумерованные адреса. Возможность обращения к любой ячейке памяти по ее адресу позволила использовать переменные в программировании.
  5. Возможность условного перехода при выполнении программы. Команды в ПК выполняются последовательно, но при необходимости можно реализовать переход к любой части кода.

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

«Архитектура персонального компьютера»
Готовые курсовые работы и рефераты
Решение учебных вопросов в 2 клика
Помощь в написании учебной работы

Фон Нейманом также была предложена структура ПК (рис. 1).

Структура ПК

Рисунок 1. Структура ПК

В состав машины фон Неймана входили:

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

Программы и данные вводились в ЗУ из устройства ввода через АЛУ. Все команды программы записывались в ячейки памяти последовательно, а данные для обработки – в произвольные ячейки.

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

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

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

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

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

Архитектура современных ПК

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

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

Основные особенности архитектуры ПК сводятся к принципам компоновки аппаратуры, а также к выбранному набору системных аппаратных средств.

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

Замечание 1

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

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

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

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

Трехшинная структура ПК

Рисунок 2. Трехшинная структура ПК

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

Многопроцессорная архитектура ПК

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

Архитектура многопроцессорного ПК

Рисунок 3. Архитектура многопроцессорного ПК

Многомашинная вычислительная система

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

Многопроцессорные и многомашинные вычислительные системы имеют преимущество перед однопроцессорными в быстродействии.

Архитектура с параллельными процессорами

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

Архитектура с параллельным процессором

Рисунок 4. Архитектура с параллельным процессором

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

Источник: spravochnick.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru