
- •Лекция 1. Информационные процессы в эвм Введение
- •Основные структуры данных
- •Обработка данных
- •Способы представления информации и два класса эвм
- •Кодирование информации
- •Представление данных в эвм.
- •Форматы файлов
- •Кодирование чисел
- •Кодирование текста
- •Кодирование графической информации
- •Кодирование звука
- •Типы данных
- •Лекция 2. Компьютер – общие сведения
- •Основные узлы пк – «Материнская плата»
- •Интерфейсные шины
- •Основные внешние устройства компьютера
- •Вопросы и задания
- •Лекция 3. Многоуровневая компьютерная организация
- •Архитектура компьютера
- •Классическая структура эвм - модель фон Неймана
- •Особенности современных эвм
- •Вопросы и задания
- •Лекция 4. Математическое обеспечение компьютеров
- •Программное обеспечение
- •Специальное
- •Библиотеки стандартных программ и ассемблеры
- •Высокоуровневые языки и системы автоматизированного программирования
- •Диалоговые ос и субд
- •Прикладные программы и case – технологии
- •Компьютерные сети и мультимедиа
- •Операционные системы
- •Лекция 5.Вычислительные системы - общие сведения Введение
- •Общие требования
- •Классификация компьютеров по областям применения
- •Персональные компьютеры и рабочие станции
- •Увеличение производительности эвм, за счет чего?
- •Параллельные системы
- •Суперкомпьютеры
- •Разновидности высокопроизводительных систем и области их применения
- •Ограничения производительности вс
- •Закон Амдала и его следствия
- •Микропроцессорная система
- •Что такое микропроцессор?
- •Микроархитектура процессора
- •512 Кбайт
- •Лекция 6 (с) Устройство управления
- •Микропроцессорная память
- •Структура адресной памяти процессора
- •Интерфейсная часть мп
- •Трансляторы
- •Режимы работы микропроцессорной системы
- •Классификация процессоров
- •Микроархитектура процессора Pentium II
- •512 Кбайт
- •Вопросы и задания
- •Лекция 7. Структурная организация эвм - память
- •Классификация памяти
- •Распределение системной памяти
- •Расширенная
- •Верхняя память (Upper Memory Area) – это 384 Кбайт, зарезервированных у верхней границы системной памяти. Верхняя память разделена на несколько частей:
- •Первые 128 Кбайт являются областью видеопамяти и предназначены для использовании видеоадаптерами, когда на экран выводится текст или графика, в этой области хранятся образы изображений;
- •Видеопамять
- •Оперативная память, типы оп
- •Тэг Строка Слово (байт)
- •Способы организации кэш-памяти
- •1. Где может размещаться блок в кэш-памяти?
- •Алгоритм псевдо lru.
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •Разновидности строения кэш-памяти
- •Вопросы и задания
- •Лекция 8. Логическая организация памяти
- •Виртуальная память
- •Основная память
- •Дисковая память
- •Страничная организация памяти
- •Преобразование адресов
- •Сегментная организация памяти.
- •Свопинг
- •Вопросы и задания
- •Лекция 9. Методы адресации
- •Лекция 10. Внешняя память компьютера Введение
- •Жесткий диск (Hard Disk Drive)
- •Общее устройство нжмд
- •Пластины (диски)
- •Головка записи-чтения
- •Позиционер
- •Контроллер
- •Производительность
- •Структура хранения информации на жестком диске
- •Кластер
- •Магнитооптические диски
- •Лазерные компакт-диски cd - rom
- •Дисковые массивы и уровни raid
- •Raid 0: Базовая конфигурация.
- •Raid1: Зеркальные диски.
- •Вопросы и задания
- •Лекция 11. Основные принципы построения систем ввода/вывода
- •Физические принципы организации ввода-вывода
- •Магистрально-модульный способ построения эвм
- •Структура контроллера устройства ввода-вывода
- •Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
- •Организация передачи данных
- •Стандартные интерфейсы и шины систем ввода-вывода
- •Вопросы и задания
- •Лекция 12. Особенности архитектуры современных высокопроизводительных вс
- •Классификация архитектур по параллельной обработке данных
- •Вычислительные Системы
- •Параллелизм вычислительных процессов
- •Параллелизм на уровне команд – однопроцессорные архитектуры
- •Конвейерная обработка
- •Суперскалярные архитектуры
- •Мультипроцессорные системы на кристалле
- •Технология Hyper-Threading
- •Многоядерность — следующий этап развития
- •Вопросы и задания
- •Лекция 13. Архитектура многопроцессорных вс Введение
- •Smp архитектура
- •Mpp архитектура
- •Гибридная архитектура (numa)
- •Организация когерентности многоуровневой иерархической памяти.
- •Pvp архитектура
- •Кластерная архитектура
- •Проблемы выполнения сети связи процессоров в кластерной системе.
- •Лекция 14. Кластерные системы
- •Концепция кластерных систем
- •Разделение на High Availability и High Performance системы
- •Проблематика High Performance кластеров
- •Проблематика High Availability кластерных систем
- •Смешанные архитектуры
- •Лекция 15 Многомашинные системы – вычислительные сети Введение
- •Простейшие виды связи сети передачи данных
- •Связь компьютера с периферийным устройством
- •Связь двух компьютеров
- •Многослойная модель сети
- •Функциональные роли компьютеров в сети
- •Одноранговые сети
- •Сети с выделенным сервером
- •Гибридная сеть
- •Сетевые службы и операционная система
- •Лекция 17. Сети и сетевые операционные системы Введение
- •Для чего компьютеры объединяют в сети
- •Сетевые и распределенные операционные системы
- •Взаимодействие удаленных процессов как основа работы вычислительных сетей
- •Основные вопросы логической организации передачи информации между удаленными процессами
- •Понятие протокола
- •Многоуровневая модель построения сетевых вычислительных систем
- •Проблемы адресации в сети
- •Одноуровневые адреса
- •Двухуровневые адреса
- •Удаленная адресация и разрешение адресов
- •Локальная адресация. Понятие порта
- •Полные адреса. Понятие сокета (socket)
- •Проблемы маршрутизации в сетях
- •Связь с установлением логического соединения и передача данных с помощью сообщений
- •Синхронизация удаленных процессов
- •Заключение
- •Список литературы:
Свопинг
Разновидностью виртуальной памяти является свопинг. На рисунке 8.7 показан график зависимости коэффициента загрузки процессора в зависимости от числа одновременно выполняемых процессов и доли времени, проводимого этими процессами в состоянии ожидания ввода-вывода.
Рис.
8.7 Зависимость загрузки процессора от
числа задач и интенсивности ввода-вывода
Из рисунка видно, что для загрузки процессора на 90% достаточно всего трех счетных задач. Однако для того, чтобы обеспечить такую же загрузку интерактивными задачами, выполняющими интенсивный ввод-вывод, потребуются десятки таких задач. Необходимым условием для выполнения задачи является загрузка ее в оперативную память, объем которой ограничен. В этих условиях был предложен метод организации вычислительного процесса, называемый свопингом. В соответствии с этим методом некоторые процессы (обычно находящиеся в состоянии ожидания) временно выгружаются на диск. Планировщик операционной системы не исключает их из своего рассмотрения, и при наступлении условий активизации некоторого процесса, находящегося в области свопинга на диске, этот процесс перемещается в оперативную память. Если свободного места в оперативной памяти не хватает, то выгружается другой процесс. При свопинге, в отличие от рассмотренных ранее методов реализации виртуальной памяти, процесс перемещается между памятью и диском целиком, то есть в течение некоторого времени процесс может полностью отсутствовать в оперативной памяти. Существуют различные алгоритмы выбора процессов на загрузку и выгрузку, а также различные способы выделения оперативной и дисковой памяти загружаемому процессу.
Выводы
Логическая организация памяти необходима для устранения несоответствия между адресным пространством памяти и ее реальным, физическим объемом.
Для того чтобы адресоваться к операндам и командам, не напрягая при этом адресное пространство памяти, существует много способов. Одна из идей в этой области заключается в том, что адрес ячейки памяти помещают в регистр процессора, а в команде содержится ссылка на этот регистр.
Стековая организация памяти применяется при вызове подпрограмм, временном хранении данных.
Основные разновидности логической организации памяти стековая, сегментная, косвенная, свопинг решают задачу создания виртуальной памяти.
Вопросы и задания
Оцените, какой процент адресного пространства вашего компьютера реально заполнен под память.
Какие методы адресации вы знаете?
Что такое виртуальная память?
Что такое свопинг?
В каких режимах может работать IA-32?
Как формируется физический адрес при сегментной адресации?
Как формируется физический адрес при страничной адресации?
Лекция 9. Методы адресации
Методы и режимы адресации зависят от трех главных факторов:
организации пространства памяти, где хранятся операнды: во внутренних регистрах, в системной памяти, в самой команде, стековая память, в портах ввода/вывода;
структурной организации памяти: линейная, страничная, сегментная, смешанная;
программная модель процессора, программные ресурсы.
Рис. 9.1 Методы и режимы адресации
Пространство памяти предназначено для хранения кодов команд и данных, для доступа к которым имеется богатый выбор методов адресации (около 24). Операнды могут находиться во внутренних регистрах процессора (наиболее удобный и быстрый вариант). Они могут располагаться в системной памяти (самый распространенный вариант). Наконец, они могут находиться в самой команде и в устройствах ввода/вывода (наиболее редкий случай).
Определение места положения операндов производится кодом команды. Причем существуют разные методы, с помощью которых код команды может определить, откуда брать входной операнд и куда помещать выходной операнд. Эти методы называются методами адресации. Эффективность выбранных методов адресации во многом определяет эффективность работы всего процессора в целом.
Механизмы адресации операндов, находящихся в регистровой памяти и в ОЗУ существенно различаются. Механизмы адресации операндов, находящихся в регистровой памяти и в оперативной памяти, существенно различаются. К регистровой памяти допускается лишь прямая регистровая адресация. При этом в команде указывается номер регистра, содержащего операнд. 16-разрядный операнд может находиться в регистрах AX, BX, CX, DX, DI, SI, SP, BP, а 8-разрядный - в регистрах AL, AH, BL, BH, CL, CH, DL, DH.
Адресация оперативной памяти имеет свои особенности, связанные с ее разбиением на сегменты и использованием сегментной группы регистров для указания начального адреса сегмента
Так, например, в компьютерах, имеющих стековую организацию памяти, применяется вообще безадресное кодирование команд, но об этом позже. В современных компьютерах в самой команде адрес, как правило, явным образом не указывается, дабы избежать увеличение длины команды. Для этого при обращении к ОЗУ процессор использует метод косвенной адресации. Его суть состоит в том, что адрес ячейки памяти предварительно заносится в один из регистров процессора, а команда содержит лишь ссылку на этот регистр. Понятны достоинства этого метода, количество регистров мало, обращаться можно по номеру регистра, адреса в регистре очень удобно модифицировать (например, циклически увеличивая на заданную величину). И, последнее, вспомним, что современный процессор работает непосредственно только с регистрами своей сверхбыстродействующей памяти.
Прямая или абсолютная адресация. Физический адрес операнда содержится в адресной части команды. Формальное обозначение:
Операндi = (Аi),
где Аi – код, содержащийся в i-м адресном поле команды.
Рис. 9.2 Прямая адресация
Пример: mov Al,[2000] – передать операнд, который содержится по адресу 2000h в регистр AL.
Add R1,[1000] – сложить содержимое регистра R1 с содержимым ячейки памяти по адресу 1000h и результат переслать в R1.
Допускается использование прямой адресации при обращении, как к основной, так и к регистровой памяти.
Непосредственная адресация. В команде содержится не адрес операнда, а непосредственно сам операнд.
Операндi= Аi.
Рис. 9.3 Непосредственная адресация
Непосредственная адресация позволяет повысить скорость выполнения операции, так как в этом случае вся команда, включая операнд, считывается из памяти одновременно и на время выполнения команды хранится в процессоре в специальном регистре команд (РК). Однако при использовании непосредственной адресации появляется зависимость кодов команд от данных, что требует изменения программы при каждом изменении операнда.
Пример: mov eax,0f0f0f0f – загрузить константу 0f0f0f0f h в регистр eax.
Косвенная (базовая) адресация. Адресная часть команды указывает адрес ячейки памяти или номер регистра, в которых содержится адрес операнда:
Операндi = ((Аi)).
Рис. 9.4 Косвенная адресация
Применение косвенной адресации операнда из оперативной памяти при хранении его адреса в регистровой памяти существенно сокращает длину поля адреса, одновременно сохраняя возможность использовать для указания физического адреса полную разрядность регистра. Недостаток этого способа – необходимо дополнительное время для чтения адреса операнда. Вместе с тем он существенно повышает гибкость программирования. Изменяя содержимое ячейки памяти или регистра, через которые осуществляется адресация, можно, не меняя команды в программе, обрабатывать операнды, хранящиеся по разным адресам. Косвенная адресация не применяется по отношению к операндам, находящимся в регистровой памяти.
Пример: mov al,[ecx] – передать в регистр AL операнд (содержимое) ячейки памяти, адрес которой находится в регистре ECX.
Предоставляемые косвенной адресацией возможности могут быть расширены, если в системе команд ЭВМ предусмотреть определенные арифметические и логические операции над ячейкой памяти или регистром, через которые выполняется адресация, например увеличение или уменьшение их значения на единицу (и не только на 1).
В этом случае речь идет о базовой адресации со смещением.
Пример: mov eax,[eci+4] – передать в регистр EAX операнд, который содержится по адресу ECI (регистр индекса) со смещением плюс 4.
Иногда, адресация, при которой после каждого обращения по заданному адресу с использованием механизма косвенной адресация, значение адресной ячейки автоматически увеличивается на длину считываемого операнда, называется автоинкрементной. Адресация с автоматическим уменьшением значения адресной ячейки называется автодекрементной.
Регистровая адресация. Предполагается, что операнд находится во внутреннем регистре процессора.
Например: mov eax,cro – передать в EAX содержимое CR0 (регистр управления) или
mov ebx,edx – передать в регистр базы EBX содержимое регистра данных EDX.
Индексная адресация (со смещением) – содержимое РОН используется в качестве компоненты эффективного адреса (как правило, работа с массивами).
Пример: sub array [esi],2 – вычесть 2 из элемента массива, на который указывает регистр ESI.
Относительная адресация. Этот способ используется тогда, когда память логически разбивается на блоки, называемые сегментами. В этом случае адрес ячейки памяти содержит две составляющих: адрес начала сегмента (базовый адрес) и смещение адреса операнда в сегменте. Адрес операнда определяется как сумма базового адреса и смещения относительно этой базы:
Операндi = (базаi + смещениеi).
Для задания базового адреса и смещения могут применяться ранее рассмотренные способы адресации. Как правило, базовый адрес находится в одном из регистров регистровой памяти, а смещение может быть задано в самой команде или регистре.
Рассмотрим два примера.
Адресное поле команды состоит из двух частей, в одной указывается номер регистра, хранящего базовое значение адреса (начальный адрес сегмента), а в другом адресном поле задается смещение, определяющее положение ячейки относительно начала сегмента. Именно такой способ представления адреса обычно и называют относительной адресацией.
Рис. 9.5 Относительная адресация
Первая часть адресного поля команды также определяет номер базового регистра, а вторая содержит номер регистра, в котором находится смещение. Такой способ адресации чаще всего называют базово-индексным.
Рис. 9.6 Базово-индексная адресация
Главный недостаток относительной адресации – большое время вычисления физического адреса операнда. Но существенное преимущество этого способа адресации заключается в возможности создания "перемещаемых" программ – программ, которые можно размещать в различных частях памяти без изменения команд программы. По этой причине относительная адресация облегчает распределение памяти при составлении сложных программ и широко используется при автоматическом распределении памяти в мультипрограммных вычислительных системах.
Адресация ввода/вывода
Интеловские процессоры могут обращаться к устройствам ввода/вывода двумя способами. Они могут быть отображены на память или иметь свои адреса в пространстве ввода/вывода.
В командах ввода/вывода источником или получателем всегда служит аккумулятор EAX/AX/AL, а порт определяется как непосредственный операнд или содержимое регистра DX. Например:
In al, 40h – ввод байта из фиксированного порта
Out 20h,ax - вывод слова в фиксированный порт
Out dx,eax – вывод двойного слова в переменный порт
Стековая адресация
Во всех современных процессорах аппаратно поддерживается стек, т.е. область оперативной памяти, предназначенная для временного хранения любой информации. Рассмотрим безадресное кодирование команд при стековой организации памяти.
Обращение к ячейкам такой памяти производится последовательно с помощью специального указателя стека (УС), определяющего рабочую в данный момент ячейку. Каждая ячейка снабжена тэгом – специальным признаком хранимой информации. Такая ЭВМ имеет структуру, представленную на рис.9.6. В ее состав помимо АЛУ входят два специальных буферных регистра РР1 и РР2. Здесь значение тэгов следующее: Op – в данной ячейке хранится операнд, C – признак наличия в ячейке кода операции.
Рис. 9.7 Схема выполнения операции в ЭВМ с безадресной системой команд
Рассмотрим работу такой ЭВМ на примере вычисления выражения ((a + b) * c - d) / e.
На первых двух тактах работы из памяти извлекаются операнды a и b и помещаются в рабочие регистры РР1 и РР2. Считав следующую ячейку стековой памяти, устройство управления по ее тэгу определяет, что данная информация представляет собой код операции. Этот код направляется в АЛУ, где и проводится сложение хранящихся в регистрах операндов с записью результата в один из рабочих регистров. Так как в следующей ячейке хранится операнд, то он направляется в РР, свободный от записанного результата. После этого производится выполнение следующей операции и так далее.
Для стека характерны две операции: «PUSH - втолкнуть» и «POP - извлечь» при этом поддерживается известная процедура «Last In – First Out» - последним пришел, первым ушел. Пример стековой операции:
Push ecx – включить в стек содержимое регистра ecx
Pop [esi] – извлечь из стека в ячейку памяти
Выводы
Регистровая модель процессора является базой углубленного изучения его принципов функционирования и начального знакомства с ассемблером. Гибкие режимы адресации позволяют программистам использовать многочисленные и мощные ресурсы процессора.