
- •1. Функциональные роли компьютеров в сети
- •2. Шины и интерфейсы.
- •3. Сегментная организация оп и виртуальная память.
- •5. Архитектура современных процессоров, проблемы роста производительности.
- •512 Кбайт
- •6. Связь компьютера с периферийным устройством.
- •7. Методы адресации
- •№9. Архитектура фон Неймана – основные признаки.
- •10. Регистры процессора и его программная модель.
- •11. Классификация архитектур по параллельной обработке данных
- •12. Интерфейсы жд, эволюция производительности.
- •13. Система команд и архитектура эвм.
- •14. Способы организации кэш-памяти.
- •1. Где может размещаться блок в кэш-памяти?
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •15. Многопроцессорные системы, классификация Флинна.
- •16. Магистрально-модульный способпостроения эвм
- •17. Тракт данных типичного процессора, система команд
- •18. Синхронный и асинхронный обмен данными, обмен по прерыванию.
- •19. Конвейерная и суперскалярная обработка данных.
- •20.Связь двух компьютеров.
- •21. Структура современного пк, взаимодействие основных блоков.
- •Материнская плата - основные электронные компоненты, определяющие структуру компьютера (Mother board)
- •Основные внешние устройства компьютера
- •22. Архитектурные особенности современных процессоров, Hyper Threading и мультиядерность.
- •23. Smp архитектура и ее развитие
- •24.Логическая организация памяти эвм.
- •Виртуальная память
- •Страничная организация памяти
- •Сегментная организация памяти.
- •25. Структура кэш – памяти процессораi486.
- •26. Топология физических связей компьютеров в сети.
- •Простейшие виды связи сети передачи данных
- •27. АрхитектураNuma.
- •28. Формат команды процессораi486 и адресация операндов.
- •30. Кластерные архитектуры и проблема связи процессоров в кластерной системе Кластерная архитектура
- •Проблемы выполнения сети связи процессоров в кластерной системе.
- •33. Пропускная способность и ее связь с методами кодирования.
- •34. Конвейерная обработка данных
- •№36. Анализ производительности эвм, пути развития. Увеличение производительности эвм, за счет чего?
- •Параллельные системы
- •Использование параллельных вычислительных систем
- •Закон Амдала и его следствия
- •№37. Архитектура «клиент-сервер».
- •35. Когерентность кэШей.
- •37. Архитектура клиент-сервер
- •38. Отличительные особенностиRisc– архитектуры
- •№42. Основные принципы построения систем ввода/вывода.
- •Физические принципы организации ввода-вывода
- •Интерфейс
- •Магистрально-модульный способ построения эвм
- •Структура контроллера устройства
- •Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
- •Организация передачи данных
- •Прямой доступ к памяти (Direct Memory Access – dma)
- •Логические принципы организации ввода-вывода
- •Структура системы ввода-вывода
- •Буферизация и кэширование
- •39. Оперативная память эвм, основные параметры.
- •45. Дисковые массивы и уровни raid
- •51. Внешняя память компьютера
- •54. Классификация компьютерных сетей
- •55. Содержание понятий – транслятор, интерпретатор, компилятор и их связь с организацией вычислительного процесса
- •56. Технология Hyper-Threading
- •59. Закон Амдала и его следствия.
- •61. Производительность процессора и методы ее увеличения
7. Методы адресации
Логическая организация памяти.Мы уже говорили, что размер реальной физической памяти не соответствует адресному пространству процессора, разрядности его адресной шины. Эта проблема всегда актуальна, а ранее она была просто угрожающей. Программисты тратили много времени на то, что бы впихнуть свои программы в небольшую основную память процессора.
Существовала еще одна проблема, аппаратная организация памяти в виде линейного набора ячеек не соответствует представлениям программиста о том, как организовано хранение программ и данных. Большинство программ представляет собой набор модулей, созданных независимо друг от друга. Иногда все модули, входящие в состав процесса, располагаются в памяти один за другим, образуя линейное пространство адресов. Однако чаще модули помещаются в разные области памяти и используются по-разному.
Эти проблемы решались и решаются до сих пор. Есть несколько способов, позволяющих согласовать разные объемы памяти, разные способы ее организации в представлении программистов и реально аппаратно существующей.
Виртуальная память
Таким образом, виртуальная память - это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память; для этого виртуальная память решает следующие задачи:
размещает данные в запоминающих устройствах разного типа, например, часть программы в оперативной памяти, а часть на диске;
перемещает по мере необходимости данные между запоминающими устройствами разного типа, например, подгружает нужную часть программы с диска в оперативную память;
преобразует виртуальные адреса в физические.
CPU
Виртуальный адрес
MMU
Данные
(или команды)
Кэш
Физический адрес
Основная
память
Данные Пересылка с применением ПДП
(
Дисковая
память
Рис. 8.1 Организация виртуальной памяти
Все эти действия выполняются автоматически, без участия программиста, то есть механизм виртуальной памяти является прозрачным по отношению к пользователю.
Страничная организация памяти
О несоответствии адресного пространства логической памяти реальному объему физической памяти мы уже говорили. Теперь посмотрим, как это противоречие преодолевается в современных процессорах, но начнем с более простого примера.
Пусть наш компьютер имеет 16-битное поле адреса и всего лишь 4096 слов оперативной памяти (PDP-1). Программа, работающая на нем, могла бы обращаться к 65536 словам (216=65536), но такого количества слов просто нет. До изобретения виртуальной памяти все адреса, которые были равны или больше адреса 4096 считались бесполезными, не существующими.
Идея разделения понятий адресного пространства и адресов памяти состоит в следующем. В любой момент времени можно получить прямой доступ к 4096 словам памяти, но это не значит, что они непременно должны соответствовать адресам от 0 до 4095. Например, мы могли бы сообщить компьютеру, что при обращении к адресу 4096 должно использоваться слово из памяти с адресом 0, при обращении к адресу 4097 – слово с адресом 1, а при обращении к адресу 8191 – слово с адресом 4095 и т.д. Другими словами, мы отобразили логическое адресное пространство на действительные адреса физической памяти (рис.7.9)
Адресное пространство
Адрес
Основная память – 16
К
8191
Отображение
4096 4095
0 0
4 К основной памяти
Рис. 8.2 Виртуальные адреса памяти с 4096 по 8191 отображаются в адреса основной памяти с 0 по 4095
Возникает вопрос: а что произойдет, если программа совершит переход в один из адресов с 8192 по 12287? В машине без виртуальной памяти на экране появится фраза «Несуществующий адрес памяти» и выполнение программы остановится. В машине с виртуальной памятью будет иметь следующая последовательность действий:
Слова с 4096 до 8191 будут выгружены на диск.
Слова с 8102 до 12287 будут загружены с диска в основную память.
Отображение адресов изменится: теперь адреса с 8192 до 12287 соответствуют ячейкам памяти с 0 по 4095.
Выполнение программы продолжится.
Если теперь добавить в основную память еще три блока по 4 К, то мы сможемм отобразить полностью 64 К адресного пространства на всего лишь 4К физической памяти. Такая технология автоматического наложения называется страничной организацией памяти,а куски программы, которые считываются с диска, называютсястраницами. Необходимо подчеркнуть, что страничная организация памяти создаетиллюзию большой линейной основной памяти такого же размера, как адресное пространство.Программист может писать программы и при этом ничего не знать о существовании страничной организации памяти, этот механизм называютпрозрачным.
Страничное управление памятью – это общепринятый механизм организации виртуальной памяти с подкачкой страниц по запросу. Страничная трансляция адресов выполняется блоком управления памятью (MemoryManagementUnit–MMU), расположенным в процессоре, с использованиемкаталогови таблицдескрипторов страниц – структур в физической ОП. БлокMMUделит линейный адрес на виртуальные страницы фиксированного размера (4К, 4М, 2М). На такие же страницы делится и адресное пространство физических адресов.
Преобразование адресов
Приведем пример страничного распределения памяти. Виртуальное адресное пространство каждого процесса делится на части одинакового, фиксированного для данной системы размера, называемые виртуальными страницами. В общем случае размер виртуального адресного пространства не является кратным размеру страницы, поэтому последняя страница каждого процесса дополняется фиктивной областью. Вся оперативная память машины также делится на части такого же размера, называемые физическими страницами (или блоками). Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т.д., это позволяет упростить механизм преобразования адресов. При загрузке процесса часть его виртуальных страниц помещается в оперативную память, а остальные - на диск. Смежные виртуальные страницы не обязательно располагаются в смежных физических страницах. При загрузке операционная система создает для каждого процессаинформационную структуру -таблицу страниц, в которой устанавливается соответствие между номерами виртуальных и физических страниц для страниц, загруженных в оперативную память, или делается отметка о том, что виртуальная страница выгружена на диск. Кроме того, в таблице страниц содержитсяуправляющая информация, такая как признак модификации страницы, признак невыгружаемости (выгрузка некоторых страниц может быть запрещена), признак обращения к странице (используется для подсчета числа обращений за определенный период времени) и другие данные, формируемые и используемые механизмом виртуальной памяти.
Базовый регистр Сгенерированный процессором
таблицы страниц виртуальный адрес
Номер
виртуальной страницы Смещение Адрес
таблицы страниц +
Таблицы страниц
Начальный
Страничный блок
адрес
Адрес
нужного
элемента
таблицы
У
Страничный
блок в памяти Смещениеправляющие
биты
Физический адрес в основной памяти
Рис. 8.3 Страничное распределение памяти
При активизации очередного процесса в специальный регистр процессора загружается адрес таблицы страниц данного процесса. При каждом обращении к памяти происходит чтение из таблицы страниц информации о виртуальной странице, к которой произошло обращение. Если данная виртуальная страница находится в оперативной памяти, то выполняется преобразование виртуального адреса в физический. Если же нужная виртуальная страница в данный момент выгружена на диск, то происходит так называемое страничное прерывание. Выполняющийся процесс переводится в состояние ожидания, и активизируется другой процесс из очереди готовых. Параллельно программа обработки страничного прерывания находит на диске требуемую виртуальную страницу и пытается загрузить ее в оперативную память. Если в памяти имеется свободная физическая страница, то загрузка выполняется немедленно, если же свободных страниц нет, то решается вопрос, какую страницу следует
выгрузить из оперативной памяти.