Основы Pascal. Типы данных. Структура программы на языке Pascal

Вид материалаДокументы
Структура микропроцессора.
Команды процессора.
Основной алгоритм работы процессора.
Принцип программного управления.
Устройство процессора
Понятие «Прерывание», классификация прерываний (программные и аппаратные).
Прерывания. Обработка прерываний.
Механизм обработки прерываний
Подобный материал:
1   ...   9   10   11   12   13   14   15   16   17

Структурная схема ПК:




СТРУКТУРА МИКРОПРОЦЕССОРА.

┌───────────────────┐

│ Микропроцессор │

├─────────┬─────────┤

│ │ │

┌────────────────┤ ┌───┴──┐ ├───────────────┐

│ А Л У │ │ У У │ │ РЕГИСТРЫ │

└────────────────┘ └──────┘ └───────────────┘

 АЛУ  - арифметическо-логическое устройство. Оно обеспечивает выполнение основных операций по обработке информации.

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

записи полученной суммы в ЗУ. В большинстве современных микропроцессоров это время составляет от нескольких сотен наносекунд до нескольких микросекунд.

 УУ - устройство управления, управляет процессом обработки и обеспечивает связь с внешними устройствами. РЕГИСТРЫ - внутренние носители информации микропроцессора. Это внутренняя

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

ление содержимого регистров данных.

Основной микропроцессор определяет быстродействие компьютера. Исходный вариант компьютера IBM PC и модель IBM PC XT используют микропроцессор Intel-8088. Модель IBM PC AT использует более мощный микропроцессор Intel-80286 и ее производительность приблизительно в 5-6 раз больше, чем у IBM PC XT. Модели серии PC/2 используют более мощный микропроцессор Intel-80386. Их производительность приблизительно в 3-4 раза больше, чем у IBM PC AT, однако это увеличение производительности существенно, в основном, для решения задач, требующих большого объема вычислений.

 Характеристики микропроцессоров.  Микропроцессоры отличаются друг от друга двумя характеристиками: типом(моделью) и тактовой частотой. Наиболее распространены модели Intel-8088,

80286, 80386SX, 80386(DX), 80486(SX, SX2, DX, DX2, DX4 и т.д.) и Pentium, они приведены в порядке возрастания производительности и цены. Одинаковые модели микропроцессоров могут иметь разную тактовую частоту - чем выше тактовая частота, тем выше производительность и цена микропроцессора.

 Тактовая частота  0указывает, сколько элементарных операций(тактов) микропроцессор выполняет в одну секунду. Тактовая частота измеряется в мегагерцах (МГц). Следует заметить, что разные модели микропроцессоров выполняют одни и те же операции (например, сложение или умножение) за разное число тактов. Чем выше модель микропроцессора, тем меньше тактов требуется для выполнения одних и тех же операций. Поэтому микропроцессор Intel-80386 работает в два раза быстрее Intel-80286 с такой же

частотой.

 Сопроцессоры.  Микропроцессоры 8088, 80286, 80386 сконструированы так, что они позволяют использовать арифметические сопроцессоры 8087, 80287, 80387 фирмы "Intel"-соответственно.

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

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

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

КОМАНДЫ ПРОЦЕССОРА.

АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ - это такие операции, как сложение, вычитание, умножение, деление и другие.

ЛОГИЧЕСКИЕ ОПЕРАЦИИ - это такие операции, как сравнение, отредактировать и отметить, логическое И и логическое ИЛИ, исключение, проверка по маске и прочее.

ОПЕРАЦИИ ВВОДА-ВЫВОДА - это такие операции, как начать, остановить, опросить устройства ввода-вывода, опросить каналы и так далее.

ОПЕРАЦИИ ПЕРЕКЛЮЧЕНИЯ СОСТОЯНИЯ - это такие операции, как проверить и установить, загрузить реальные адреса и так далее.

ОСНОВНОЙ АЛГОРИТМ РАБОТЫ ПРОЦЕССОРА.

Основной алгоритм работы процессора.

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

Весь алгоритм работы процессора можно описать в трех строчках

НЦ

| чтение команды из памяти по адресу, записанному в СК

| увеличение СК на длину прочитанной команды

| выполнение прочитанной команды

КЦ

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

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

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

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

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

нулей и единиц - машинное слово. Все ячейки памяти занумерованы. Номер ячейки называют её адресом. 

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

хранится.

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

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

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

Общий вид команды машины может быть таким:

К А1 А2 А3 , где К - код действия, а А1,А2,А3 - адреса ячеек памяти (на каждый адрес отводится по три разряда). Для выполнения команд служит специальное арифметико-логическое устройство (АЛУ). Оно состоит из двух особых ячеек - счётчика команд  и  регистра команд, а также

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

Устройство процессора

Основные функциональные компоненты процессора
  • Ядро: Сердце современного процессора - исполняющий модуль. Pentium имеет два параллельных целочисленных потока, позволяющих читать, интерпретировать, выполнять и отправлять две инструкции одновременно.
  • Предсказатель ветвлений: Модуль предсказания ветвлений пытается угадать, какая последовательность будет выполняться каждый раз когда программа содержит условный переход, так чтобы устройства предварительной выборки и декодирования получали бы инструкции готовыми предварительно.
  • Блок плавающей точки. Третий выполняющий модуль внутри Pentium, выполняющий нецелочисленные вычисления
  • Первичный кэш: Pentium имеет два внутричиповых кэша по 8kb, по одному для данных и инструкций, которые намного быстрее большего внешнего вторичного кэша.
  • Шинный интерфейс: принимает смесь кода и данных в CPU, разделяет их до готовности к использованию, и вновь соединяет, отправляя наружу.



Рис. 1 Внутреннее строение процессора

Все элементы процессора синхронизируются с использованием частоты часов, которые определяют скорость выполнения операций. Самые первые процессоры работали на частоте 100kHz, сегодня рядовая частота процессора - 2000MHz, иначе говоря, часики тикают 2000 миллионов раз в секунду, а каждый тик влечет за собой выполнение многих действий. Счетчик Команд (PC) - внутренний указатель, содержащий адрес следующей выполняемой команды. Когда приходит время для ее исполнения, Управляющий Модуль помещает инструкцию из памяти в регистр инструкций (IR). В то же самое время Счетчик команд увеличивается, так чтобы указывать на последующую инструкцию, а процессор выполняет инструкцию в IR. Некоторые инструкции управляют самим Управляющим Модулем, так если инструкция гласит 'перейти на адрес 2749', величина 2749 записывается в Счетчик Команд, чтобы процессор выполнял эту инструкцию следующей.

Многие инструкции задействуют Арифметико-логическое Устройство (АЛУ), работающее совместно с Регистрами Общего Назначения - место для временного хранения, которое может загружать и выгружать данные из памяти. Типичной инструкцией АЛУ может служить добавление содержимого ячейки памяти к регистру общего назначения. АЛУ также устанавливает биты Регистра Состояний (Status register - SR) при выполнении инструкций для хранения информации о ее результате. Например, SR имеет биты, указывающие на нулевой результат, переполнение, перенос и так далее. Модуль Управления использует информацию в SR для выполнения условных операций, таких как 'перейти по адресу 7410 если выполнение предыдущей инструкции вызвало переполнение'.

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

Классы процессоров (CISC, RISC, MISC, VLIW).

Суперскалярная архитектура

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

CISC-процессоры

Complex Instruction Set Computer — вычисления со сложным набором команд. Процессорная архитектура, основанная на усложнённом наборе команд. Типичными представителями CISC являются микропроцессоры семейства Intel x86 (хотя уже много лет эти процессоры являются CISC только по внешней системе команд).

RISC-процессоры

Reduced Instruction Set Computer — вычисления с упрощённым набором команд (в литературе слово «reduced» нередко ошибочно переводят как «сокращённый»). Архитектура процессоров, построенная на основе упрощённого набора команд. Характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации. Концепция RISC разработана Джоном Коком (John Cocke) из IBM Research, название придумано Дэвидом Паттерсоном (David Patterson).

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

Среди первых реализаций этой архитектуры были процессоры MIPS, PowerPC, SPARC, Alpha, PA-RISC. В мобильных устройствах широко используются ARM-процессоры.

MISC-процессоры

Minimum Instruction Set Computer — вычисления с минимальным набором команд. Дальнейшее развитие идей команды Чака Мура, который полагает, что принцип простоты, изначальный для RISC-процессоров, слишком быстро отошёл на задний план. В пылу борьбы за максимальное быстродействие, RISC догнал и перегнал многие CISC процессоры по сложности. Архитектура MISC строится на стековой вычислительной модели с ограниченным числом команд (примерно 20-30 команд).

VLIW-процессоры

Very Long Instruction Word — сверхдлинное командное слово. Архитектура процессоров с явно выраженным параллелизмом вычислений, заложенным в систему команд процессора. Являются основой для архитектуры EPIC.

  1. Понятие «Прерывание», классификация прерываний (программные и аппаратные).

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

В зависимости от источника возникновения сигнала прерывания делятся на:

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

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

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

Термин «ловушка» (англ. trap) иногда используется как синоним термина «прерывание» или «внутреннее прерывание». Как правило, словоупотребление устанавливается в документации производителя конкретной архитектуры процессора.

Все прерывания в компьютере делятся на аппаратные, программные и исключения. Аппаратные прерывания могут быть маскируемыми и немаскируемыми. Маскируемые прерывания могут быть запрещены установкой флага IF, немаскируемые прерывания не могут быть запрещены и возникают при сбоях и ошибках аппаратуры (например, ошибка паритета памяти). Аппаратные прерывания - это запросы от периферийных устройств на обработку данных. Программные прерывания - это, как правило, вызов каких-либо функций DOS или BIOS, а также вызов пользовательских функций. Исключения возникают при возникновении какой-либо критической ошибки (например, деление на 0, отсутствие сопроцессора и т.д.) или при пошаговом выполнении программы (трассировка). Каждому прерыванию сопоставляется некоторая программа - обработчик прерывания, которая выполняет те или иные действия при возникновении прерывания. Для аппаратных прерываний обработчики, помимо всего прочего, выполняют управление аппаратурой. Обработчики программных прерываний обычно выполняют некоторые функции, в зависимости от входных параметров, заданных в регистрах, и могут возвращать результаты в регистрах или иным образом. Обработчики исключений выполняют специфические задачи, зависящие от конкретного случая (например, обработчик прерывания "деление на 0" обычно выдаёт сообщение об ошибке на экран). Для привязки каждого прерывания к его обработчику существует специальная таблица - так называемая таблица векторов прерываний, в которой для каждого прерывания хранится адрес обработчика в формате сегмент:смещение. Таблица располагается в памяти по абсолютному адресу 0x00000000 и собержит 256 ячеек - столько прерываний может быть в компьютере IBM PC. Сюда включены аппаратные и программные прерывания, а также исключения. Размер таблицы - 1024 байта, а размер ячейки - 4 байта (2 байта на сегмент и 2 на смещение). Некоторые ячейки в таблице векторов прерываний зарезервированы и не должны использоваться. Некоторые являются свободными и предназначены для установки пользовательских обработчиков.

Прерывания. Обработка прерываний.

Прерывания представляют собой механизм позволяющий координировать

параллельное функционирование отдельных устройств вычислительной системы и

реагировать на особые состояния возникающие при работе процессора.

Прерывания – это принудительная передача управления от выполняющейся

программы к системе, а через неё к соответствующей программе обработки

прерываний, происходящая при определенном событии. Основная цель введения

прерываний – реализация асинхронного режима работы и распараллеливания

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

реализуется аппаратно-программными средствами.

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

имеют общую особенность – прерывание непременно ведет за собой изменение

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

включает в себя следующие элементы:

1. Установление факта прерывания (прием и идентификация сигнала на

прерывание).

2. Запоминание состояния прерванного процесса (состояние процесса

определяется значением счетчика команд, содержимым регистра

процессора, спецификацией режима: пользовательский или

привилегированный)

3. Управление аппаратно передается программе обработки прерывания. В этом

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

обработки прерывания, а в соответствующие регистры из слова

состояния.???

4. Сохранение информации прерванной программе, которую не удалось спасти

с помощью действий аппаратуры.

5. Обработка прерывания. Работа может быть выполнена той же

подпрограммой, которой было передано управление на 3-ем шаге, но в ОС

чаще всего эта обработка реализуется путем вызова соотв. подпрограммы.

6. восстановление информации относящейся к прерванному процессу.

7. Возврат в прерванную программу.

Первые 3 шага реализуются аппаратными средствами, а остальные –

программно.

Главные функции механизма прерывания:

1. Распознавание или классификация прерывания.

2. Передача управления обработчику прерывания.

3. Корректное возвращение к прерванной программе

Переход от прерванной программе к обработчику и обратно должен

производится как можно быстрее. Одним из быстрых методов является

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

прерываний и адреса соотв. обработчиков. Для корректного возвращения к

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

регистров процессора запоминается либо в памяти с прямым доступом либо в

системном стеке.

Обслуживание прерываний. Наличие сигнала прерывания не обязательно

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

обладать системой защиты от прерываний: отключение системы прерываний либо

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

управление этими средствами позволяет ОС регулировать обработку сигналов

прерывания. Процессор может обрабатывать прерывания сразу по приходу

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

игнорировать. Обычно операции прерывания выполняются только после

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

возникают в произвольные моменты времени, то на момент прерывания может

существовать несколько сигналов прерывания, которые могут быть обработаны

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

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

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

1) с относительным приоритетом. При этом обслуживание не прерывается даже

при наличии запросов с более высокими приоритетами. после окончания

обслуживания данного запроса (текущего) обслуживается запрос с наивысшим

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

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

или просто отключить систему прерываний.

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

приоритетом. Для реализации этой дисциплины при запросе на обработку

прерываний маскируются все прерывания с низшим приоритетом. При этом

возможно многоуровневое прерывание, т. е. прерывание программы обработки

прерывания. Число уровней прерывания в этом режиме изменяется и зависит

от приоритета запроса по принципу стека: LCFS – last come first served, т

. е. запрос с более высоким приоритетом может прервать запрос с более

низким приоритетом. При появлении запроса на прерывание система

прерываний идентифицирует сигнал и если прерывания разрешены, то

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

Служебные секции, в которых осуществляется сохранение контекста

прерванной задачи и последняя секция в которой осуществляется

восстановление контекста, чтобы система прерываний не среагировала повторно

на сигнал запроса на прерывание. Эта система прерываний автоматически

отключает прерывания, поэтому необходимо в подпрограмм обработки прерываний

вновь включать эту систему обработки прерываний. Итак, на время выполнения

центральной секции обработки прерываний прерывания разрешены, на время

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

отключена, а после восстановления контекста прерванной задачи включена

вновь. Сии действия нужно выполнять в каждой обработке прерываний. Во

многих ОС 1 секция обработки прерываний выделяется в специальный

программный модуль наз. супервизором прерываний.