19329

ПРИНЦИПЫ ПРОГРАММНОГО УПРАВЛЕНИЯ

Лекция

Информатика, кибернетика и программирование

АК ЛЕКЦИЯ № 3. ПРИНЦИПЫ ПРОГРАММНОГО УПРАВЛЕНИЯ Принципы программного управления Принцип программного управления ППУ впервые был сформулирован Венгерским математиком и физиком Джоном фон Нейманом при участии Гольцтайна и Берца в 1946 году. ППУ включает в себя н...

Русский

2013-07-11

85.5 KB

44 чел.

АК ЛЕКЦИЯ № 3. ПРИНЦИПЫ ПРОГРАММНОГО УПРАВЛЕНИЯ

Принципы программного управления

Принцип программного управления (ППУ) впервые был сформулирован Венгерским математиком и физиком Джоном фон Нейманом, при участии Гольцтайна и Берца в 1946 году.

ППУ включает в себя несколько архитектурно – функциональных принципов.

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

2. Принцип условного перехода. В процессе вычислений в зависимости от полученных промежуточных результатов возможен автоматический переход на тот или иной участок программы.

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

4. Принцип двоичного кодирования.

5. Принцип иерархии запоминающих устройств (ЗУ).

Типы машинных команд.

Для современных ЭВМ (с CISC процессорами) имеют от 60 до 120 базовых команд. Базовая команда – команда, которая определяет в процессоре операцию, без учета способов адресации, которые могут быть применены в данной команде, не учитывая какие РОН’ы используются при выполнении программы. Общее количество команд, которое может быть в процессорах, с учетом способов адресации и регистров 250-400. Такое большое количество команд, по замыслу разработчиков, должно сокращать длину программы пользователя, следовательно, уменьшается время решения задачи. Практика же показывает, что программист всем возможным множеством команд никогда не пользуется. Обычно пользователь ограничивается некоторым подмножеством команд, которые он четко понимает и знает. В различных программах, а также в программах для различных ЭВМ, частота появления различных команд оказывается разная. Основной характеристикой любой ЭВМ команды, является ее формат. Все команды любой ЭВМ при рассмотрении разделяют по следующим признакам.

1. Функциональное назначение.

1.1 Команды передачи данных

1.2 Команды обработки данных

1.3 Команды передачи управления

1.4 Дополнительные команды

2. Адресность команды.

2.1 безадресные команды

2.2 одноадресные команды

2.3 двух адресные команды

2.4 прочие команды

3. По способам адресации

3.1 данных

3.2 команд

4. Способ кодирования операций.

4.1 Команды с фиксированным полем кода операций

4.2 Команды с расширяющимся полем кода операций

5. По длине.

5.1 однобайтные

5.2 двухбайтные

5.3 трехбайтные

5.4 многобайтные.

Функциональное назначение команды определяет ее код операции.

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

Любая команда ЭВМ представляет собой некую упорядоченную последовательность битов, которая определяет:

1. Операцию, инициируемую этой командой.

2. Адреса операндов участвующих в этой операции.

Поэтому в большинстве ЭВМ команда имеет операционно-адресную систему.

Код ОП

Код адресов (операндов)

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

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

Развитие структуры происходит лишь вследствие уменьшения поля адреса (SISC процессоры). С появлением RISC процессоров произошел возврат к расширенной адресности системы команд. Говоря о базовом уровне, речь идет о SISC процессорах. Первоначально система команд имела следующий формат:

Код ОП

А1

А2

А3

А4

А3 : = (А1)*(А2)    СчАК : = А4 СчАК – счётчик адреса команд

* – операция

(х) – содержимое адреса х

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

Код ОП

А1

А2

А3

A3 := (A1 ) * (A2 )

СчАК := (СчАК)+1  

Даже переход к такому формату слабо уменьшает длину команды. Большинство вычислений имеет рекуррентную схему вычислений, следовательно, систему команд можно сделать двухадресной.

Код ОП

А1

А2

A1 := (A1 ) * (A2 )    СчАК := (СчАК)+1  

Такая схема вычислений является основной для современных ЭВМ.

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

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

Код ОП

А1

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

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

2. Форматы команд должны обеспечивать достаточное пространство для задания всех операций (если система компьютера включает в себя N операций nmin = ] log2 N [ - округление в большую сторону)

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

4. Длина адресного поля команды очень тесно связана с организацией памяти компьютера, а также с размером адресного пространства памяти, которую можно непосредственно адресовать в памяти компьютера. Если память включает в себя M адресных элементов, тогда минимальная длина адресного поля: mmin =]log2 M[. Если исходить от фиксированной длины адресного поля, то емкость памяти будет зависеть от того, какова минимально адресуемая единица информации.

Адресация данных и команд.

Любая машинная команда – машинный код, который определяет:

1. Операцию

2. Указывает на данные

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

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

1.  Прямые

2.  Не прямые

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

Прямые способы адресации.

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

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

3.  Абсолютная (прямая) адресация – характеризуется тем, что в адресном поле, задается полный адрес памяти, где хранится операнд. В этом случае. длина адресного поля и емкость оперативной памяти связаны между собой соотношением m = ]log2 Em[. Если Em очень большая, то длина адресного поля в команде большая. Способ абсолютной адресации  данных – тормоз в развитии применения компьютеров. Он не позволяет загружать данные в любое место памяти. В современных условиях применяются в ограниченном количестве (при загрузке драйверов).  

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

Непрямые способы адресации:

1. Базирование (относительная адресация). Процедура  формирования  исполнительного адреса: Аисп  = Абаза + <смещение>. Для реализации этого способа в ЭВМ выделяются специальные ячейки, которые выполняют функции базовых регистров. В общем случае в ЭВМ  может быть несколько базовых регистров. Тогда адресные код включает в себя два поля:    

В и Disp 

 

В – адрес регистра базирования

Disp – смещение.

В общем случае исполнительный адрес формируется соотношением:

                 (B)+Disp 

Аисп =

                  Disp 

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

Базирование, как способ адресации требует наличие сумматора  в  адресном  устройстве.

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

Аисп = (B).Disp 

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

2.  Косвенная адресация. При косвенной адресации адресный код в команде содержит не адрес самого операнда, а содержит адрес памяти, где хранится адрес операнда. Можно сказать,  что адресный код –  это адрес адреса. В самом простом варианте исполнительный адрес при косвенной адресации имеет следующий вид: Аисп = (M[Ak]) M –  адрес памяти Ak – содержимое. В общем случае может использоваться многоступенчатая косвенная адресация.  Ak  Ak1  Ak2     Aисп операнд.  Количество обращений  к  памяти  для  получения  операнда,  характеризует  глубину  косвенной адресации.  Минимальное  число  обращений  для  получения операнда – два. Для получения исполнительного адреса не требуется арифметическая обработка. Фактически нахождение операнда – процедура целенаправленного поиска. Косвенная адресация позволяет без изменения самой команды обрабатывать ей различные данные, так как фактически другие  операнды  находятся  в  памяти, а не в команде, значит можно обрабатывать линейные структуры данных. Косвенная адресация позволяет загружать программу в произвольное место памяти.

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

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

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

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

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

Преимущества стековой адресации:

1.  Безадресные команды

2.  Перемещаемость команд

Недостатки стековой адресации:

1.  В адресном механизме аккумуляторный узел управления.

2.  При использовании стека, как средства адресации команд, возникают сложности при реализации ветвлении.

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

 

Адресация команд.

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

Принудительная адресация. Адрес следующей команды в самой команде.  

Недостатки:

1.  Неперемещаемость программы.

2.  Команды, с точки зрения длины формата, длинные.

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

Схема формирования адреса следующей команды: PC := (PC) + lk 

lk – длина предшествующей команды

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

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

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

Более распространены непрямые способы адресации, обычно применяют три способа:

  1.  Относительная адресация – адресация относительно текущего адреса. В адресном поле команды задается относительный адрес перехода.
  2.  Косвенная адресация. В схеме косвенной адресации, память для хранения адресов не применяется. Применяется только косвенная регистровая адресация, где хранят адрес перехода. Косвенная адресация требует короткого адресного поля. Позволяет перемещать программы в любое место памяти. Если еще допустить применение относительной адресации, то исполнительный адрес следующей команды вычисляется по схеме PC := (reg)+disp.
  3.  Стековая адресация. Стековая адресация применяется, прежде всего, при работе с подпрограммами и обслуживании прерываний. Команды передачи управления со стековой адресацией фактически безадресные. Схема работы стека, как и у данных. Стек в этом случае является универсальным и используется, как для адресации данных так и для команд. Следовательно, возникают сложности распознавания команд и данных.


 

А также другие работы, которые могут Вас заинтересовать

18866. Скандинавская традиция Алвар Аалто 22.6 KB
  Скандинавская традиция Алвар Аалто. Годы жизни: 1898-1976 Основная информация: Выдающийся финский архитектор. Представитель функционализма близкого органической архитектуре. Его постройки общественные промышленные сооружения жилые дома церкви и выставочные павиль
18867. Русская архитектура Х-ХVII 23.49 KB
  Русская архитектура ХХVII. Крестовокупольный храм архитектурный тип христианского храма сформировавшийся в Византии и в странах христианского востока в V VIII вв. Стал господствующим в архитектуре Византии с IX века и был принят христианскими странами православно...
18868. Стиль барокко в живописи и скульптуре. Дж. Лоренцо Бернини, Питер Пауль Рубенс 30.3 KB
  Стиль барокко в живописи и скульптуре. Дж. Лоренцо Бернини Питер Пауль Рубенс. Лоренцо Бернини итальянский архитектор и скульптор. Его скульптурам присущи текучая стремительность движения сочетание религиозной аффектации с экзальтированной чувственностью €œЭк...
18869. Ле Корбюзье Шарль Эдуар (6.10.1887— 27.8. 1965) 20.12 KB
  Ле Корбюзье Шарль Эдуар 6.10.1887 27.8. 1965 Французский архитектор и теоретик архитектуры создатель архитектуры интернационального стиля а так же живописец в живописи разработал теорию пуризма и писатель публицист. Учился и работал у архитекторов: Йозефа Хофмана Огюс...
18870. Сюрреализм. Манифест 1924г. Происхождение значения термина. С.Дали 28.46 KB
  Сюрреализм. Манифест 1924г. Происхождение значения термина. С.Дали. Сюрреали́зм фр. surréalisme сверхреализм направление в искусстве сформировавшееся к началу 1920х во Франции. Отличается использованием аллюзий и парадоксальных сочетаний форм. Основателем и идеологом
18872. Русский конструктивизм. Веснины. Леонидов. Мельников 75.5 KB
  Русский конструктивизм. Веснины. Леонидов. Мельников. Конструктиви́зм советский авангардистский метод стиль направление в изобразительном искусстве архитектуре фотографии и декоративно-прикладном искусстве получивший развитие в 1920 первой половине 1930 годов. Х...
18873. Исторический жанр изобразительного искусства 23.16 KB
  Исторический жанр один из основных жанров изобразительного искусства посвященный воссозданию событий прошлого имеющих историческое значение. Обращённый в основном к прошлому исторический жанр включает также изображение недавних событий историческое значение кото
18874. Ба́ухаус 26.74 KB
  Ба́ухаус нем. Bauhaus Hochschule für Bau und Gestaltung Высшая школа строительства и художественного конструирования или Staatliches Bauhaus учебное заведение существовавшее в Германии с 1919 по 1933 а также художественное объединение возникшее в рамках этого заведения и соответствующее нап...