«Компьютер фон Неймана»: Джон фон Нейман (John Von Neumann) EDVAC (Electronic Discrete Variable Computer - Электронный Компьютер Дискретных Переменных) "Предварительный доклад о компьютере EDVAC (A First Draft Report on the EDVAC). Джон Мочли (John Mauchly) и Джон Преспер Эккерт (John Presper Eckert). ENIAC (Electronic Numerical Integrator And Computer). Основы компьютерной архитектуры
Структура, основные компоненты: Структура компьютера фон Неймана "принципы построения компьютера фон Неймана": 1. Принцип двоичного кодирования 2. Принцип программного управления 3. Принцип хранимой программы
Оперативное запоминающее устройство 0 1 … N-1 адрес ячейки ячейка памяти ОЗУ - хранение программы, выполняющейся в компьютере ТЕГ (поле служебной информации) Машинное слово (поле программно изменяемой информации)
Оперативное запоминающее устройство Использование содержимого поля служебной информации 1. Контроль за целостностью данных. Пример контроля за целостностью данных по четности
Оперативное запоминающее устройство Использование в компьютере содержимого поля служебной информации 2. Контроль доступа к командам/данными. 3. Контроль доступа к машинным типам данных.
Оперативное запоминающее устройство Производительность оперативной памяти - скорость доступа процессора к данным, размещенным в ОЗУ: время доступа (access time- t access ) - время между запросом на чтение слова из оперативной памяти и получением содержимого этого слова. длительность цикла памяти (cycle time - t cycle ) - минимальное время между началом текущего и последующего обращения к памяти. (t cycle >t access )
Оперативное запоминающее устройство ОЗУ делится на К независимых банков памяти, где К = 2 L Последовательное чтение машинных слов по адресам: ОЗУ без расслоения ОЗУ с расслоением A~ t cycle ~ t access A+1~ t cycle ~ t access А+2~ t cycle ~ t access Суммарное время: ~ 3*t cycle ~ 3*t access адрес L-разрядов номер банка (0,...2 L -1) Расслоение памяти
Центральный процессор Процессор или центральный процессор (ЦП) компьютера обеспечивает последовательное выполнение машинных команд, составляющих программу, размещенную в оперативной памяти. Структура организации центрального процессора
Центральный процессор Регистровая память (регистровый файл) Регистры общего назначения (РОН) Специальные регистры: счетчик команд (program counter) указатель стека (stack pointer) слово состояние процессора (processor status word) Специальные регистры: счетчик команд (program counter) указатель стека (stack pointer) слово состояние процессора (processor status word) Регистровая память
Центральный процессор Устройство управления (control unit)– координирует выполнение команд программы процессором. Арифметико-логическое устройство (arithmetic/logic unit) – обеспечивает выполнение команд, предусматривающих арифметическую или логическую обработку операндов. Устройство управления и арифметико-логическое устройство
Центральный процессор Рабочий цикл процессора
Кэш-память (L1) Кэш-память (L1) Кэш памяти (cache memory) первого уровня (L1) 1.Обмен данными между КЭШем и оперативной памятью осуществляется блоками фиксированного размера. 2. Адресный тег блока – содержит служебную информацию о блоке (соответствие области ОЗУ, свободен/занят блок,......). 3.Нахождения данных в КЭШе - попаданием (hit). Если искомых данных нет в КЭШе, то фиксируется промах (cach miss). 4.При возникновении промаха происходит обновление содержимого КЭШа - вытеснение. Стратегии вытеснения: случайная; вытеснение наименее популярного (LRU - Least-Recently Used). 5. Вытеснение КЭШа данных: сквозное кэширование (write-through caching) кэширование с обратной связью (write-back cache) - тег модификации (dirty bit )
Кэш-память (L1) Кэш-память (L1) При использовании кэш памяти (cache memory): сокращается количество обращений к ОЗУ; существенно увеличивается скорость доступа к памяти в случае использования ОЗУ с «расслоением», т.к. обмены блоков с памятью будут проходить, практически параллельно.
Аппарат прерываний Аппарат прерываний Прерывание - событие в компьютере, при возникновении которого в процессоре происходит предопределенная последовательность действий. Прерывания: внутренние - инициируются схемами контроля работы процессора внешние - события, возникающие в компьютере в результате взаимодействия центрального процессора с внешними устройствами.
Аппарат прерываний Аппарат прерываний Этап аппаратной обработки прерываний
Аппарат прерываний Аппарат прерываний Программный этап обработки прерываний
Аппарат прерываний Аппарат прерываний Модель организации прерываний с использованием «регистра прерываний»
Аппарат прерываний Аппарат прерываний Модель организации прерываний с использованием «вектора прерываний»
Аппарат прерываний Аппарат прерываний Модель организации прерываний с использованием регистра «слово состояние процессора» Код прерывания PSW: Поле кода прерывания
Внешние устройства
Внешние запоминающие устройства (ВЗУ). Обмен данными: записями фиксированного размера – блоками записями произвольного размера Доступ к данным: операции чтения и записи (жесткий диск, CDRW). только операции чтения (CDROM, DVDROM, …). Последовательного доступа: Магнитная лента Прямого доступа: Магнитные диски Магнитный барабан Магнито-электронные ВЗУ прямого доступа
Устройство последовательного доступа Устройство последовательного доступа Магнитная лента
Устройство прямого доступа Устройство прямого доступа Магнитные диски
Устройство прямого доступа Устройство прямого доступа Магнитный барабан
Устройство прямого доступа Устройство прямого доступа Магнито-электронные ВЗУ прямого доступа
Организация потоков данных при обмене с внешними устройствами Обмен данных осуществляется через центральный процессор.
Организация потоков данных при обмене с внешними устройствами Обмен с использованием прямого доступа к памяти (direct memory access – DMA).
Модели синхронизации при обмене с внешними устройствами
Организация управления внешними устройствами
4. Использование контроллера прямого доступа к памяти (DMA) при обмене. 5. Управление внешними устройствами с использованием процессора или канала ввода/вывода.
Иерархия памяти
Аппаратная поддержка ОС и систем программирования Мультипрограммный режим : режим при котором возможна организация переключения выполнения с одной программы на другую.
Аппаратная поддержка ОС и систем программирования Аппаратные средства компьютера, необходимые для поддержания мультипрограммного режима 1. Аппарат защиты памяти. 2. Специальный режим операционной системы. (привилегированный режим или режим супервизора) 3. Аппарат прерываний (как минимум, прерывание по таймеру).
Аппаратная поддержка ОС и систем программирования 1. Вложенные обращения к подпрограммам Некоторые проблемы
Аппаратная поддержка ОС и систем программирования 2. Накладные расходы при смене обрабатываемой программы: необходимость включения режима блокировки прерываний; программное сохранение / восстановление содержимого регистров при обработке прерываний; Некоторые проблемы
Аппаратная поддержка ОС и систем программирования 3. Перемещаемость программы по ОЗУ Некоторые проблемы
Аппаратная поддержка ОС и систем программирования 4. Фрагментация памяти
Аппаратная поддержка ОС и систем программирования Регистровые окна ( register window )
Аппаратная поддержка ОС и систем программирования Регистровые окна ( register window ) Использование – оптимизация вложенных обращений функций. При обращении в функцию:
Аппаратная поддержка ОС и систем программирования Регистровые окна ( register window ) При выходе из функции:
Аппаратная поддержка ОС и систем программирования Регистровые окна ( register window ) Пример:
Аппаратная поддержка ОС и систем программирования Модель организации регистровой памяти в Intel Itanium «Динамическое» окно – можно заказать окно произвольного размера (от регистра GR32 до регистра GR32+N (N=0,..,95). Оптимизация работы с физическими регистрами
Аппаратная поддержка ОС и систем программирования Системный стек Использование системного стека может частично решать проблему минимизации накладных расходов при смене обрабатываемой программы и/или обработке прерываний.
Аппаратная поддержка ОС и систем программирования Виртуальная память. Базирование адресов.
Аппаратная поддержка ОС и систем программирования Виртуальная память. Базирование адресов. Аппарат виртуальной памяти – аппаратные средства компьютера, обеспечивающие преобразование (установление соответствия) программных адресов, используемых в программе адресам физической памяти в которой размещена программа при выполнении. Базирование адресов – реализация одной из моделей аппарата виртуальной памяти.
Аппаратная поддержка ОС и систем программирования Виртуальная память. Базирование адресов. А исп. прог. абсолютный адрес относительный => А исп. физ. = А исп. прог. (адрес относительно начала программы) => А исп. физ. = А исп. прог. + Базирование адресов – решение проблемы перемещаемости программы по ОЗУ.
Аппаратная поддержка ОС и систем программирования Виртуальная память. Базирование адресов. Базирование адресов – средство отображения виртуального адресного пространства программы в физическую память «один в один». Программное (виртуальное) адресное пространство 0 L -1 Физическая память Базирование памяти решает проблему перемещения, но не решает проблему фрагментации. Для решения проблемы фрагментации используются более развитые механизмы организации ОЗУ и виртуальной памяти
Аппаратная поддержка ОС и систем программирования Виртуальная память. Страничная память. 0 -я страница 1 -я страница... Память аппаратно разделена на блоки фиксированного размера – страницы. Размер страницы – 2 k Структура адреса: к к-1 0 номер страницы номер в странице Количество страниц ограничено размером поля «номер страницы»
Аппаратная поддержка ОС и систем программирования Виртуальная память. Страничная память. номер виртуальной номер в странице страницы А исп. вирт. к к Таблица страниц процессора А исп. физ. к к-1 0 номер физической номер в странице страницы Преобразование виртуального адреса в физический – замена номера виртуальной страницы на соответствующий номер физической страницы
Аппаратная поддержка ОС и систем программирования Виртуальная память. Страничная память. Виртуальное адресное пространство – множество виртуальных страниц, доступных для использования в программе. Количество виртуальных страниц определяется размером поля «номер виртуальной страницы» в адресе. Физическое адресное пространство – оперативная память, подключенная к данному компьютеру. Физическая память может иметь произвольный размер (число физических страниц может быть меньше, больше или равно числу виртуальных страниц).
Аппаратная поддержка ОС и систем программирования Виртуальная память. Страничная память. Модельный пример организации страничной виртуальной памяти.