ПОНЯТИЕ АРХИТЕКТУРЫ И СТРУКТУРЫ ЭВМ

ТЕМА 3. ИНФОРМАЦИОННО-ЛОГИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ ЭВМ

ЛЕКЦИЯ 3.4. ПРОГРАММНОЕ УПРАВЛЕНИЕ ЭВМ

ПОНЯТИЕ И СВОЙСТВА АЛГОРИТМА

 

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

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

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

Одним из известнейших и древнейших является алгоритм Евклида:

1) Присвоить переменным x и y значение чисел, наибольший общий делитель которой нужно найти.

2) Если x>y, то перейти к шагу 5.

3) Если x<y, то перейти к шагу 6.

4) Если x=y, то выделить x в качестве наибольшего общего делителя.

5) Заменить пару чисел x и y, парой чисел x-y, y и вернуться к шагу 2.

6) Заменить пару чисел x и y, парой чисел x, y-x и вернуться к шагу 2.

Обычно требуется, чтобы алгоритм обладал следующими свойствами:

1) Конечность. Должен иметь конечное число шагов, причем все шаги алгоритма должны быть такими, чтобы исполнитель мог выполнить их за конечное время.

2) Определённость. Все описания алгоритмов должны допускать однозначную трактовку.

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

4) Результативность. Алгоритм должен давать некоторый результат(ы).

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

Алгоритм задаётся в той форме, которая наиболее понятна исполнителю. Если исполнителем является человек, то используют:

· словесный

· табличный

· графические способы задания

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

Словесное задание позволяет описать алгоритм с помощью слов и предложений. При этом можно использовать как обычные литературные языки (мы таким образом описали алгоритм Евклида), так и алгоритмические языки высокого уровня типа «АЛГОЛ» (макроязыки).

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

Графическое задание позволяет задать алгоритм в виде графических схем. Существуют две разновидности такого задания:

· в виде блок-схем, т.е. представление алгоритма с помощью геометрических фигур (символов) по ГОСТ 19.701-90

· в виде Р - схем по ГОСТ 19.005-85

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

Если же необходимо задать алгоритм так, чтобы он был понятен ЭВМ, то он задаётся в виде программы. Программа – это алгоритм, записанный на некотором языке программирования. Язык программирования – это совокупность средств и правил представления алгоритма в виде, пригодном для выполнения на ЭВМ.

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

 

СТРУКТУРА КОМАНД

 

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

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

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

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

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

Таким образом, адрес – это некоторый код, определяющий местонахождение операнда в памяти ЭВМ.

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

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

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

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

Типовая структура двухадресной команды изображена на рис.3.5., где адрес 1 – го операнда (адрес приемника (destination)) – это адрес ячейки (регистра), где хранится первое из чисел, участвующих в операции; адрес 2 – го операнда (адрес источника (source)) – это адрес ячейки (регистра), где хранится второе участвующее в операции число.

 

 

 

Рис. 3.4. Одноадресная команда (CLR X, INC X, DEC X).

 

 

Рис. 3.5. Двухадресная команда (MOV Y, X; ADD Y, X).

 

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

В СМ ЭВМ (линии PDP-11) положение 1-го и 2-го операндов меняются местами.

Трехадресные команды используются только в некоторых ЭВМ, например в ЕС ЭВМ. Типовая структура трехадресной команды:

 

 

Рис. 3.6 Трехадресная команда.

 

здесь адрес 3 – го операнда – это адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции.

 

ВИДЫ МАШИННЫХ КОМАНД

 

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

Все машинные команды можно разделить на группы по видам выполняемых операций:

· операции пересылки данных внутри ЭВМ;

· арифметические операции над данными;

· операции сдвига;

· логические операции над данными;

· операции передачи управления;

· операции обращения к внешним устройствам ЭВМ (ввода /вывода);

· обслуживающие и вспомогательные операции (например, команды сброса, останова, работы с битами слова состояния процессора).

Команды пересылки данных наиболее широко применяются в ЭВМ и позволяют пересылать данные из/в регистры процессора в/ из ячейки памяти.

Арифметические команды позволяют проводить арифметические действия (сложение, вычитание, деление, умножение и сравнение) над данными, представленными в различном формате. Для выполнения более сложных математических действий нужно или использовать команды математического сопроцессора (FPU – Floating Point Unit) или написать соответствующие пользовательские подпрограммы, реализующие эти действия на базе элементарных математических операций.

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

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

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

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

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

Команды ввода/вывода осуществляют обмен информации между программой и внешними устройствами.

ПОНЯТИЕ АРХИТЕКТУРЫ И СТРУКТУРЫ ЭВМ

 

Совокупность функций ЭВМ можно разделить на основные и дополнительные.

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

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

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

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

 

Рис. 3.7. Основные компоненты архитектуры ЭВМ.

 

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

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

Основные принципы архитектуры фон Неймана состоят в следующем.

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

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

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

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

5) Процессор исполняет программу команда за командой в соответствии с изменением содержимого счётчика команд и расположением команд в памяти, пока не получит команду остановиться.

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

 

 

Рис. 3.8. Обобщенная логическая структура ЭВМ.

 

В настоящее, время машины фон-неймановской архитектуры в основном представлены двумя классами:

а) ЭВМ с древовидной (канальной) организацией, реализованной в больших ЭВМ, и

б) ЭВМ с шинной организацией, применяющиеся при построении мини, микро и персональных ЭВМ.

РАБОТА ПРОЦЕССОРА ЭВМ

 

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

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

Количество и разрядность регистров оказывает существенное влияние на архитектуру процессора, определяют его сложность и стоимость. Но с, другой стороны, наличие большого количества регистров с богатым набором возможностей упрощает программирование и повышает гибкость программного обеспечения. Количество регистров в разных микропроцессорах различно: у PDP-11 – 12  16-битовых регистров, у Intel 8086 – 14 регистров, Intel 80286 – 19 регистров, Intel 80386 – уже 31 32-битовых регистра (за исключением сегментных регистров), Intel 80486 – 34 регистра.

Регистры процессора делятся на регистры общего назначения и специальные.

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

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

Регистры также можно разделить на программно-доступные (например, регистры общего назначения, регистр-счетчик команд IP, регистр указатель стека SP и др.) и внутренние системные регистры, не доступные программно и используемые во время внутренних пересылок информации при выполнении команд (например, регистр команд).

Подробнее состав и назначение регистров микропроцессоров вы будете рассматривать в дисциплине «Микропроцессорные системы».

 

Среди регистров процессора PDP-11 необходимо выделить в первую очередь 8 общих (универсальных) регистров R0-R7, а также регистр состояния процессора PS (Processor Status). Регистр R6 имеет специальное обозначение SP (Stack Pointer) – указатель стека, а R7 – обозначение PC (Processor Counter) – программный счетчик или счетчик команд. Регистры SP и PC используются процессором специальным образом, так регистр PC используется как счетчик команд ЭВМ и содержит адрес следующей команды, подлежащей выполнению.

Кроме этих 9 регистров есть ещё 3 программно недоступных регистра RAM – регистр адреса памяти, RDM – регистр данных памяти, RC – регистр команд (инструкций).

Процессор Intel 8086 также содержит 8 регистров общего назначения: 4 из них AX, BX, CX, DX используются, прежде всего, для хранения данных, а регистры SP, BP (указатель стека и указатель базы, хранящие указатели для доступа к данным сегмента стека), SI, DI (индексные регистры, хранящие смещение адреса соответственно в текущем сегменте данных и текущем дополнительном сегменте) хранят главным образом адресную информацию. Особенностью регистров AX, BX, CX, DX является то, что они допускают раздельное использование их младших байтов AL, BL, CL, DL и старших байтов AH, BH, CH, DH. Тем самым создается возможность обработки, как слов, так и байтов.

Кроме того, есть 4 сегментных регистра CS (база сегмента программного кода), DS (база сегмента данных), SS (база стекового сегмента), ES (база дополнительного сегмента), которые хранят начальные адреса четырёх текущих сегментов памяти, регистр флагов F (его младший байт FL, старший байт FH) и регистр указатель команд IP, который хранит смещение следующей команды в текущем кодовом сегменте, т.е. указывает на следующую по порядку команду.

 

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

1) Выбирает очередную команду, помещая её в регистр команд.

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

3) Помещает выбранные из ЗУ операнды в АЛУ, а результаты выполнения команды снова в ЗУ.

Для вычисления адреса следующей команды УУ использует регистр-счетчик (указатель) команд и регистр, который хранит код признака результата (в PDP-11 это регистр состояния процессора PS (Processor Status), в процессоре Intel 8086 это регистр флагов F). Анализ этого кода позволяет производить ветвление программы в зависимости от конкретных значений данных.

В простейшем случае УУ имеет в своем составе 3 регистра: регистр команды, содержащий код команды во время её выполнения, регистр-счетчик команд, который содержит адрес очередной команды, подлежащей выполнению, и регистр адреса, в котором вычисляются адреса операндов.

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

 

На рис.3.9 приведена общая схема работы АЛУ на примере выполнения операции суммирования. Рассмотрим по этой схеме работу центрального процессора, выполняющего команду сложения.

1) Из УУ в ЗУ поступает адрес очередной команды и сигнал «читать». Затем УУ производит считывание команды из памяти. В качестве адреса ячейки памяти с командой используется содержимое регистра–счетчика команд.

В этот регистр адрес первой команды исполняемой программы (после перезаписи её из внешней памяти в оперативную) устанавливает операционная система. Например, в дисковой операционной системе (DOS - Disk Operation System) это делает главная программа DOS - Command.com.

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

3) По адресным полям команды УУ определяет, имеет ли команда операнды. Если это так (как в нашем случае), то в соответствии с режимом адресации в модуле формирования адреса вычисляется полный адрес операнда А и заносится в регистр адреса. По этому адресу и сигналу «читать» из ЗУ считывается операнд А и заносится в регистр R1 АЛУ.

4) Аналогично операнд В заносится в регистр R2 АЛУ.

 

Рис. 3.9. Общая схема работы АЛУ на примере операции суммирования.

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

6) В этой схеме результат анализируется (=0,>0,<0, переполнение) и формируется код признака, который отсылается в соответствующий регистр.

7) По адресу результата (в трехадресной команде) или адресу операнда А (в двухадресной команде) в ЗУ и сигналу «записать» УУ переписывает результат С из АЛУ в память.

8) Если эта команда не была последней то описанная последовательность действий (называемая циклом процессора) повторяется, начиная с шага 1. В противном случае управление будет передано обратно в операционную систему (в программу Command.com).

 

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

Основным фактором, определяющим быстродействие процессора, является тактовая частота. Передача информации между процессором и ЗУ, а, следовательно, выполнение каждой команды может осуществляться только в строго определенные моменты времени, соответствующие появлению синхронизирующих (тактовых) импульсов. При этом, как правило, для выполнения команды требуется несколько тактов времени. Например, при выполнения двухадресной команды в первом такте выполняется считывание команды (шаг 1), во втором такте – считывание операнда А (шаг3), в третьем – считывание операнда В (шаг 4), в четвертом – формирование результата (шаг 5), в пятом – запись результата и кода признака результата (шаги 6 и 7) и т.д. Понятно поэтому, что чем выше тактовая частота, тем выше количество операций, выполняемых центральным процессором в единицу времени.

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

Уменьшение размеров приводит к уменьшению рассеиваемой мощности (10-40 Вт), а значит к уменьшению перегрева процессора (макc t=70-85°C), что позволяет поднять рабочую тактовую частоту, на которой надежно функционируют элементы, и использовать пониженное напряжение питания 3,3 и 2,8 В и ниже (вместо стандартных 5 В).

Поэтому все производители стремятся ужесточить технологические нормы для повышения производительности процессоров. Например, МП 80486 и Pentium-66 использовали 0,8-мкм элементы, сейчас процессоры изготовляют большей частью по норме 0,18 мкм, уже появились кристаллы по 0,13-микронной технологии (Pentium IV с высокой тактовой частотой).

 


Дата добавления: 2019-11-25; просмотров: 166; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!