ТОП 10:

Типы и характеристики запоминающих устройств. Организация основной памяти компьютера. Понятие адресного пространства. Прямой доступ к основной памяти.



Билет №2

Типы и характеристики запоминающих устройств. Организация основной памяти компьютера. Понятие адресного пространства. Прямой доступ к основной памяти.

Основная память компьютера делится на RAM(random access memory, память произвольного доступа) и ROM(read - only memory, память, доступная только для чтения). Память произвольного доступа – это, по сути дела, основная память. ROM же исключает возможность записи и сохраняет все данные даже после отключения питания. Исключение возможности записи - достаточно древний феномен, при этом некоторые виды памяти вообще не допускали перезаписи, некоторые можно было очистить при помощи ультрафиолетовых лучей, а записать информацию при помощи электрических импульсов. Современная память записывается и стирается исключительно электрическими импульсами. Примером могут служить жесткие диски и флэш-память. Однако стирание памяти производится участками, а не побитово.ROM-память часто называют ПЗУ (постоянными запоминающимися устройствами).

 

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

 

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

 

2)Основная память компьютера состоит из оперативной памяти, и постоянной в виде одного или нескольких жестких дисков (хотя в некоторых случаях, как, например, в нашем классе, жесткого диска может и не быть). Единица информации, хранящейся в памяти – один бит. Он может принимать 2 значения – 0 или 1. Однако для удобства использования 8 бит объединяют в байт. Для управления доступом к памяти всякий размещенный в ней элемент снабжается уникальным номером или адресом (максимальный размер адреса и, соотв., памяти определяется разрядностью процессора, об этом сказано выше). Адрес присваивается только байтам, т.е. байт является единичным элементом памяти. Чтобы изменить бит, надо изменить необходимым образом содержащий его байт. Операция чтения требует задания только адреса нужного элемента, операция же записи требует также задания значения элемента. Соответственно, прямой доступ к памяти есть чтение или запись элемента по нужному адресу.

 

3) Адресное пространство представляет собой упорядоченное множество кодов 0, 1, 2,..., (2n— 1); где п—число адресных линий. Это множество для наглядности представляют в виде отрезка числовой оси, либо в виде таблицы. Нумерация точек, или «ячеек», адресного пространства при его графическом представлении производится снизу вверх или сверху вниз (что удобнее) в десятичной, восьмеричной или шестнадцатеричной форме.

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

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

 

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

 

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

Для реализации этого режима микропроцессорная система должна иметь в своем составе специальное устройство — контроллер прямого доступа.

 

 

Билет №3

Многоуровневая организация памяти. Модели ассоциативной кэш-памяти. Размещение, поиск и замещение блоков. Стратегии записи. Многоуровневая кэш-память.

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

 

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

 

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

 

Минимальная единица информации, которая может быть загружена из основной в кэш-память, называется блоком. Размер блока может быть либо фиксированным, либо переменным. Если этот размер зафиксирован, то объём памяти является кратным размеру блока.

 

Успешное или неуспешное обращение к более высокому уровню называется соответственно попаданием (hit) или промахом (miss). Попадание – есть обращение к объекту в памяти, который найден на более высоком уровне, в то время, как промах означает, что он не найден на этом уровне. Доля попаданий или коэффициент попаданий есть доля обращений, найденных на более высоком уровне. Доля промахов есть доля обращений, которые не найдены на более высоком уровне.

 

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

 

Ассоциативная кэш-память: если некоторый блок основной памяти может располагаться на любом месте кэш-памяти.

 

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

 

Где может размещаться блок в кэш-памяти?

Принципы размещения блоков в кэш-памяти определяют три основных типа их организации:

  • Если каждый блок основной памяти имеет только одно фиксированное место, на котором он может появиться в кэш-памяти, то такая кэш-память называется кэшем с прямым отображением (direct mapped). Это наиболее простая организация кэш-памяти, при которой для отображения адресов блоков основной памяти на адреса кэш-памяти просто используются младшие разряды адреса блока.

 

  • Если некоторый блок основной памяти может располагаться на любом месте кэш-памяти, то кэш называется полностью ассоциативным (fully associative).

 

  • Если некоторый блок основной памяти может располагаться на ограниченном множестве мест в кэш-памяти, то кэш называется множественно-ассоциативным (set associative). Обычно множество представляет собой группу из двух или большего числа блоков в кэше. Если множество состоит из n блоков, то такое размещение называется множественно-ассоциативным с n каналами (n-way set associative)

Билет №4

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

1) Физически обмен информацией между процессором и памятью осуществляется по множеству проводников, называемых системной шиной. Шина – это группа проводников, соединяющих различные устройства. По шине передаются сами команды или данные, адрес(вспомогательный процесс). Системная шина состоит из трёх линий:

1. линия данных

2. линия адреса

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

 

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

 

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

 

Всеми операциями на системной шине управляет центральный процессор.

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

1. запрос системной шины

2. кража системной шины

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

 

Шины могут быть внутренними (внутри процессора) и внешними (соединяют процессор с памятью, устройствами ввода-вывода и т. д.). Мы будем рассматривать только внешние шины. У первых персональных компьютеров была только одна шина и называлась она системной. Современные компьютеры содержат специальную шину между процессором и памятью и по крайней мере еще одну шину для связи с устройствами ввода-вывода. Шины могут быть различны по характеристикам, однако из соображений совместимости и универсальности существуют определенные правила, называемые протоколом шины. В соответствие с этим существует некоторое количество типов шин, например: USB, ISA, SCSI, PC/2, PCI. Рассмотрим принцип работы шины. Некоторые устройства, подключенные к ней могут быть активными и инициировать передачу данных по шине, другие же могут быть только пассивными, т.е. только ожидать запросов по шине, некоторые могут сочетать в себе обе эти характеристики. Память например никогда не может быть задающим (активным) устройством. Двоичные сигналы, выдаваемые компонентами компьютера часто недостаточно интенсивны, для их усиления используется микросхема, называющаяся драйвером шины. Сходным образом работает приемник шины, который усиливает соответственно входной сигнал. Приемопередатчик сочетает в себе обе этих функции. Эти устройства часто имеют возможность отсоединяться когда они не нужны. Если несколько устройств одновременно требуют доступ к шине, то сия информация передается как булево «или» их сигналов.

 

2)Рассмотрим основные характеристики шины.

Ширина шины.

Чем больше адресных линий содержит шина, тем большее количество памяти может использовать (адресовать) процессор. Если шина содержит н адресных линий, то шина может адресовать 2н ячеек памяти. Таким образом, чем больше памяти требуется, тем больше линий (соответственно проводов) нам необходимо, соответственно нужны разъемы большего размера и т.д. То есть это сильно увеличивает себестоимость платы. С течением времени увеличивается не только число адресных линий, но и число информационных линий. Это происходит из-за желания увеличить пропускную способность. Сделать это можно двумя способами: сократить время цикла шины (т.е. количество передач в секунду) или увеличить ширину шины данных. Однако есть такое явление как перекос шины, т.е. когда данные по различным линиям передаются с разной скоростью. Из-за всех этих проблем иногда используется мультиплексная шина, т.е. когда нет разделения линий на адресные и информационные и сначала передается адрес, а потом данные.

Синхронизация шины.

Так же шины делятся на синхронные и асинхронные. В первом случае все операции подчинены импульсам кварцевого генератора, присутствуют 3 линии сигналов: MREQ, RD, WAIT. Первый – сигнал о том что осуществляется доступ к памяти (т.е. что память приняла адрес, предоставленный ей процессором), второй – что осуществляется чтение а не запись и третий – что данные считываются но пока не доступны. В асинхронных же шинах все процессы управляются исключительно линиями сигналов: MREQ, RD, MSYN, SSYN. Когда задающее устройство выставляет адрес, MREQ, RD оно выдает специальный сигнал MSYN (Master SYNchronisation). Когда подчиненное устройство освобождается от предыдущей задачи, то оно выдает SSYN (Slave SYNchronisation). Когда цикл заканчивается то задающее устройство отменяет сигнал MSYN и вслед за этим подчиненное устройство отменяет SSYN.

Арбитраж шины.

Чтобы не возникала путаница при одновременном обращении к шине нескольких устройств, существует специальный механизм – арбитраж шины. Он может быть централизованным или децентрализованным. В первом случае имеется одна (или несколько) линий запроса шины и, опять же, одна или несколько линий приоритета. Устройства последовательно присоединены к этим линиям, образуя очередь, в которой ближайшее к арбитру устройство обладает наибольшим приоритетом. При запросе арбитр запрашивает ближайшее к нему устройство. Если оно выдавало запрос то оно начинает выполнять необходимые действия, в противном же случае оно передает сигнал дальше. Если же имеется несколько линий приоритета, то первая опрашивается линия с более высоким приоритетом и т.д. При децентрализованном арбитраже могут быть следующие варианты: существует множество линий приоритета, и каждое устройство контролирует все линии приоритета, таким образом оно может определить, является ли в данный момент приоритет наивысший или нет. Другой вариант – всего три линии: первая – для запросов, использует логическое ИЛИ, вторая – Busy, запускается текущим задающим устройством шины. Третья – линия арбитража, она последовательно соединяет все устройства шины, и работает также, как и при централизованном арбитраже, только начало задается источником питания, и сигнал либо проходит дальше, либо блокируется.

Примеры шин – PCI, ISA, EISA.

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

 

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

 

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

Классификация портов:

- порты состояния

- порты управления

- порты данных (буферные порты)

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

 

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

 

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

 

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

 

Требует наличия разделенных команд вне работы с ОП и портами в/в:

ОП mov, Dst,Src

Порты in, out, ost, Port, Port, Src.

Dst <-Port; Port <- Src;

 

 

Билет №5

Билет №6

Базовые элементы архитектуры микропроцессоров. Управление потоком команд. Базирование и индексирование памяти. Управление стеком. Битовые флаги состояния и управления. Организация памяти и формирование исполнительного адреса на примере реального режима микропроцессоров Intel x86.

 

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

 

Блочная схема процессора.

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

 

1. Регистр общего назначения (General Purpose Registers) – основные программно доступные элементы архитектуры микропроцессора.

Временное сохранение данных при выполнении команд программы (под данными понимаются данные и адреса). Идейно, можно разделить РОН на Регистры данных и Регистры адресов.

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

Управление потоком команд.

 

2. Счётчик команд (Указатель команд)

 

Указатель команд (Instruction Pointer)à хранит адрес следующей команды.

Последовательность действий при выборе команды:

1) Выборка команды из ОП или очереди команд по текущему значению IP

2) Декодирование команд

3) Изменение значений IP

4) Опрос подсистемы прерываний (например, нажатие клавиш клавиатуры при выполнении команды вызывает прерывание команды, для выполнения действия клавиши)

5) Выполнение команды

 

Выполняем команды по А, пока не встретили вызов некоторой операции В. Переходим в В, выполняем, возвращаемся в А и продолжаем выполнение в указанном порядке. Но как понять, на какой адрес вернуться после выполнения В? Этот адрес сохранен в IP, и сохраняет до момента нашего возвращения.

 

3. Регистр состояния (иногда, «регистр флагов») –

Фиксирует внутренние изменения состояния процессора и результаты выполнения команд. Но результат выполнения команд здесь нужно понимать, как микро результаты выполнения микро задач (0 или не 0, например).

 

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

Используются устройством управления памятью, для преобразования адресов.

 

5. Арифметико-логическое устройство – выполняет все действия, вычисления процесса, инициированные нашей программой.

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

 

6. Устройство управления – логический модуль процесса, «говорящие» АЛУ, что конкретно ему необходимо делать.

Устройство управления (Control Unit)

1) Выборка команд

2) Расшифровка кода операции

3) Декодирование и извлечение операндов

4) Передача или загрузка операндов в АЛУ

5) Управление работой АЛУ

 

7. Устройство управления памятью

(Memory Management Unit)

1) Преобразование адресов

2) Реализация механизмов защиты памяти

3) Разделение адресного пространства задач и операционной системы

(абстрактная картинка)

 

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

 

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

(Bus Control Unit)

1) Синхронизация работы на системной шине

2) Буферирование данных

3) Разрешения возможных конфликтов на системной шине

 

9. Очередь команд (Instruction Queue)

Временное хранение команд перед их передачей на выполнение.

 

10. КЭШ данных (Data Cache)

Сохранение часто используемых данных

 

11. КЭШ команд (Instruction Cache)

Сохранение часто используемых команд

 

2)Базирование и индексирование памяти.

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

 

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

 

Адресация элементов массива:

 

адрес начала массива      
a0 a1   ak   an
смещение k-ого элемента      
           

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

Ак=Ао+k*sizeof(E), где k порядковый номер, или индекс, sizeof(E) определяет размер элемента Е в байтах.

 

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

 

 

Базирование массива:

 

Аmax
0 1 АБСОЛЮТНЫЙ АДРЕС

 
      а0 а1   ак    
база массива смещение ак  
                 

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

Смещение или индекс элемента выражает его расстояние в байтах от выбранной базы.

 

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

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

3) Управление стеком.

 

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

 

Стек (англ. stack — стопка) — динамическая структура данных с методом доступа к элементам LIFO(Last In First Out, последним пришел — первым вышел). Чаше всего принцип работы стека сравнивают со стопкой тарелок: чтобы взять вторую сверху, нужно взять верхнюю.

 

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

 

Добавление элемента, называемое также проталкиванием (push), возможно только в вершину стека (добавленный элемент становится первым сверху), выталкивание (pop) — также только из вершины стека, при этом второй сверху элемент становится верхним.

 

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

 

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

 

4) Флаги:

 

Флаг – это некоторый двоичный разряд, который служит для проверки состояния чего нибудь. Например нам надо узнать а>б или нет? Операции сравнения в принципе нет, поэтому мы можем посчитать (а - б), если больше нуля (основываясь на двоичном представлении), то ставим флаг 1, если нет, то 0. Флаги отражают состояние программы. Флаги делятся на две группы: состояния и управления. Флаг управления – например, флаг маскирования прерывания, т е невосприимчивость программы в данный момент к прерываниям.

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

Флаг переноса CF используется для фиксации единицы переноса из старшего разряда результата при выполнении арифметических операций или команд сдвига. Равен 1, если перенос разряда за пределы разрядной сетки. В противном случае равен 0.

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

Флаг нуля ZF устанавливается в единицу при получении нулевого результата и сбрасывается в ноль, если результат арифметической или логической операции отличен от нуля. Флаг нулевого результата – равен 1, если результат выполнения команды равен нулю. В противном случае равен 0.

Флаг знака SF. Его значение совпадает со старшим битом результата. Флаг SF показывает знак результата предыдущей операции. Флаг знака – равен 1, если результат выполнения команды меньше нуля. И равен 0, если результат больше нуля.

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

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

 

5) Сегментная организация памяти.

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

 

В случае сегментной организации памяти логическое адресное пространство представляется состоящим из наборов блоков или сегментов разного размера. Размер сегмента может меняться динамически (например, сегмент стека) и ограничен лишь разрядностью процессора (при 32-разрядной адресации это 232 байт или 4 Гбайт). В элементе таблицы сегментов помимо физического адреса начала сегмента обычно содержится и длина сегмента. Если размер смещения в виртуальном адресе выходит за пределы размера сегмента, возникает исключительная ситуация. Логический адрес – упорядоченная пара v=(s,d), номер сегмента и смещение внутри сегмента. В системах, где сегменты поддерживаются аппаратно, эти параметры обычно хранятся в таблице дескрипторов сегментов, а программа обращается к этим дескрипторам по номерам-селекторам. При этом в контекст каждого процесса входит набор сегментных регистров, содержащих селекторы текущих сегментов кода, стека, данных и т. д. и определяющих, какие сегменты будут использоваться при разных видах обращений к памяти. Это позволяет процессору уже на аппаратном уровне определять допустимость обращений к памяти, упрощая реализацию защиты информации от повреждения и несанкционированного доступа. Физический адрес формируется путем прибавления смещения к адресу начала сегмента.

 

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

 

6) Микропроцессор Intel x86

 

В 1976 году появился первый микропроцессор линейки 80x86 – 8086, 16-битный процессор на одной микросхеме. За ним был создан 8088, он отличался тем, что работал на 8-ми битной шине, а из-за распространенности в те времена 8-ми битной периферии компьютеры на его базе стоили дешевле. Ни 8086, ни 8088 не умели обращаться более, чем к 1 мегабайт памяти. К началу 80-х это стало серьезной проблемой, поэтому Intel выпустила модель 80286, которая была совместима с 8086. Основной набор команд остался фактически тем же, однако память была устроена немного по-другому. Следующим шагом был 32-х битный процессор 80386, выпущенный в 1985 году. Он так же был совместим со всеми старыми версиями. Некоторые его блоки в некоторых ситуациях могли функционировать параллельно. Наряду с очевидными плюсами совместимости были и минусы, такие как необходимость использования старой архитектуры, обремененной старыми ошибками. Спустя 4 года появился 486-ой. Он был еще быстрее, имел 8 килобайт кэш-памяти и умел выполнять операции с плавающей точкой. Также новый процессор содержал встроенные средства поддержки многопроцессорного режима и конвейер из пяти блоков. Первый блок – блок выборки команд, 2-ой – блок декодирования, 3-ий – блок выборки операндов, 4-ой – выполнение команды, наконец 5-ый - блок возврата. Идея состоит в следующем: во время цикла 1 первая стадия вызывает из памяти команду один, далее во время следующего цикла стадия два декодирует эту команду, в это время стадия один уже вызывает следующую команду. В это время Intel проиграла судебную тяжбу и таким образом выяснила, что номера (80386 и т д) не могут быть торговыми марками, и поэтому следующее поколение процессоров было названо Pentium (от слова пять). Все, кто рассчитывал на название Sextium были разочарованы, т к Pentium стал настолько известен, что его решили оставить, вместо этого приписав Pro. Одним из нововведений стала 2-х уровневая кэш-память (первый уровень – 8 кб для команд и столько же для данных, второй – 256 кб). Другим – наличие двух пятистадийных конвейеров. У них был общий блок выборки команд, плюс второй конвейер мог выполнять только простые команды с целыми и одну операцию с плавающей точкой. Однако не все команды могут выполняться параллельно, поэтому были написаны специальные компиляторы, которые разделяли команды так, чтобы они по возможности выполнялись попарно. Далее появился Pentium II, по существу такой же, но содержащий блок команд для мультимедиа-задач – MMX(MultiMedia eXtensions). Правда, этот блок использовался и в некоторых моделях Pentium, однако для второго номера это стало стандартом. Эти команды предназначались для ускорения вычислений при воспроизведении изображения и звука. Также у него было особое устройство конвейеров – у них было несколько функциональных (4-ых) блоков (он имел «суперскалярную архитектуру»). Это было сделано из-за того что команды выполняются сильно дольше, чем декодируются или выбираются операнды. Поэтому блок выполнения имел например такой вид: (АЛУ(арифметико-логическое устройство), АЛУ, блок загрузки, блок сохранения, блок с плавающей точкой).

 

Все регистры Intel явно подразделяются на 4 группы, имеющие различное функциональное назначение.

1 группа. Группа регистров общего назначения, или рабочих регистров является малочисленной и представлена всего лишь четырьмя регистрами: АХ, ВХ, СХ, DХ. Изначально названия этих регистров произошли от Accumulator, Base, Counter,Data. Регистры этой группы используются для временного хранения данных в процессе вычислений. Важной особенностью регистров общего назначения является возможность работы с помещёнными в них операндами как в формате машинного слова, так и в байтовом формате. Для реализации такой возможности используется принцип альтернативного именования. Суть этого принципа состоит в том, что каждый рабочий регистр фактически имеет не одно, а три имени.

 







Последнее изменение этой страницы: 2016-08-15; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.226.243.36 (0.029 с.)