Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Семинар 6. Дальнейшее совершенствование микропроцессора, одноадресные и безадресные команды.




Анализ предыдущей модели

Внимательный взгляд на формат предыдущей команды позволяет сформулировать следующий вопрос - а как распределены команды реальной программы?

Оказывается, 80% команд размещены в памяти ЭВМ друг за другом, и только 20% в произвольной последовательности. Но это означает, что адрес следующей команды чаще всего будет отличаться от исполняемой на единицу. Что в свою очередь позволяет сократить длину команды изъяв из ее содержимого адрес следующей команды. Обязанности вычисления адреса возложим на счетчик команд и, конечно, введем в специальные команды перехода. Они нам понадобятся для изменения естественной последовательности команд в зависимости от результата вычислений.

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

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

Регистр адреса
Счетчик команд
……………………….   26 Вычитаемое …………………………. ………………………….   41 Разность ……………………………………………………..   77 Уменьшаемое ………………………….   134 Загр. 77   135 Выч. 26   136 Пер. 41   137 Останов ……………………………………………………
Адрес +1

       
   
 
 


Чтение

Y1 Y3 Y2

                   
     
     
 
 
 
     
 
 


Регистр данных

Регистр команд
Y4

           
   
   
 
 


Запись Y5 Y6

           
   
 
 
     
Устройство Управления
 

 

 


Y10

АЛУ

Аккумулятор
Y11

       
 
 
   
Р.сост-ния


Y8

                   
   
     
     
 
 
 
 
 
 
 
 
   
 

 

 


Y7

Y9

 

Процессор, работающий с одноадресными и безадресными командами.

Задание

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

 


 
 

 

 


Формирование адреса следующей команды(счетчик команд наращивается на 1, чтобы указывать на команду, расположенную вслед за выбранной командой)

 

 

 
 

 

 


Нет

Выбрана

безадресная

команда

 

Да

4

Да

Команда

«ОСТАНОВ»

 

       
 
КОНЕЦ
   
 


Нет

 
 

 


6

 

Выбрана Нет

команда

перехода

 

Да

 

7

Нет Условие

перехода

выполняется

 

Да

 

           
     
 
 

 


 

 


 
 


Да Выбрана Нет

команда

пересылки

10 11

 

 


Схема алгоритма выполнения команд простого процессора.

 

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

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

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

Именно структура и состав этого ПО заносится в УУ и определяет не только собственно архитектуру процессора, но и его производительность и функциональность.

 

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

Шинная структура связей

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

Классическая структура связей

 

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

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

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

Шинная структура связей.

 

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

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

В системах с шинной структурой связей применяют все три существующие разновидности выходных каскадов цифровых микросхем:

· стандартный выход или выход с двумя состояниями (обозначается 2С, 2S, реже ТТЛ, TTL);

· выход с открытым коллектором (обозначается ОК, OC);

· выход с тремя состояниями или (что то же самое) с возможностью отключения (обозначается 3С, 3S).

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

 

Три типа выходов цифровых микросхем

Выходные каскады типов 3С и ОК позволяют объединять несколько выходов микросхем для получения мультиплексированных или двунаправленных линий.

 

 

Мультиплексированная линия.

 


Двунаправленная линия.

 

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

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

· процессор;

· память, включающую оперативную память (ОЗУ, RAM — Random Access Memory) и постоянную память (ПЗУ, ROM —Read Only Memory), которая служит для хранения данных и программ;

· устройства ввода/вывода (УВВ, I/O — Input/Output Devices), служащие для связи микропроцессорной системы с внешними устройствами, для приема (ввода, чтения, Read) входных сигналов и выдачи (вывода, записи, Write) выходных сигналов.

Структура микропроцессорной системы

 

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

· шина адреса (Address Bus);

· шина данных (Data Bus);

· шина управления (Control Bus);

· шина питания (Power Bus).

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

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

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

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

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

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

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

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

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

Семинар 7. Кэш-память

Введение

Кэш-память обычно реализуется как ассоциативная память, в которой для каждой единицы памяти (block, line) хранятся дополнительные признаки (тэги). У каждого блока в кэш-памяти имеется адресный тег, указывающий, какой блок в основной памяти данный блок кэш-памяти представляет. Когда в ассоциативную память подается адрес, с ним одновременно сравниваются все тэги. Если один из тэгов равен поданному в адресе, производится обращение к той единице памяти, которая ассоциирована с этим тэгом. Такая ситуация называется попаданием – cache hit. Если же равенства не обнаруживается, кэш-память сигнализирует о промахе – cache miss. В случае промаха требуется выполнить цикл шины для обращения к основной памяти (иногда эти опреации совмещены во времени). Кроме того, необходим способ определения того, что блок кэш-памяти содержит достоверную или пригодную для использования информацию. Наиболее общим способом решения этой проблемы является добавление к тегу так называемого бита достоверности (valid bit).

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

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

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

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

1. случайная

2. LRU – last recently used

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

Блок из кэша может быть прочитан в то же самое время, когда читается и сравнивается его тэг. Таким образом, чтение блока начинается сразу, как только становится доступным адрес блока. При выполнении операции записи, коренным образом меняется ситуация с попаданием и промахом. При записи процессор определяет размер записи (от 1 до 8 байт) и эта часть блока может быть заменена. Над блоком производится ряд последовательных операций: чтение, модификация, запись.

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

1. стратегия сквозной записи (write through, store through), при этом информация записывается в 2 места: в блок кэш-памяти и в блок более низкий.

2. с обратным копированием (write back, store back, store in), при этом информация записывается только в блок кэша, модифицированный блок кэша (строка) переписывается в ОП, только тогда, когда происходит замещение.

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

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

При промахе во время записи имеются две дополнительные возможности:

· разместить запись в кэш-памяти (write allocate) (называется также выборкой при записи (fetch on write)). Блок загружается в кэш-память, вслед за чем выполняются действия аналогичные выполняющимся при выполнении записи с попаданием. Это похоже на промах при чтении.

· не размещать запись в кэш-памяти (называется также записью в окружение (write around)). Блок модифицируется на более низком уровне и не загружается в кэш-память.

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

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...