- •1. Информационная система. Информация. История развития компьютера.
- •2. Позиционные системы счисления. Перевод чисел из одной системы счисления в другую.
- •3. Арифметика эвм. Представление чисел в форме с фиксированной точкой.
- •4. Сложение в формате с фиксированной точкой. Переполнение.
- •5. Операция вычитания с фиксированной точкой. Дополнительный код числа.
- •6. Представление чисел в форме с плавающей точкой. Мантисса и характеристика числа.
- •7. Нормализованные и денормализованные числа. Погрешность представления числа.
- •8. Арифметические операции в формате с плавающей точкой.
- •10. Формат bcd. Представление текстовой информации. Ascii.
- •9. Стандарт ieee 754.
- •11. Алгебра логики. Переменные и константы алгебры логики.
- •12. Законы и аксиомы алгебры логики. Логические функции.
- •13. Конъюнкция. Дизъюнкция. Инверсия. Функционально полная система лф. Функции и-не, или-не, Исключающее или.
- •16. Логический элемент. Логическая (комбинационная) схема. Лэ как физическое устройство.
- •17. Обратная связь. Бистабильная ячейка – триггер. Rs-триггер, d-триггер, t-триггер.
- •18. Синхронный триггер. Понятие о синхронизации.
- •19. Узлы эвм. Регистры. Счетчики. Сумматоры. Шифраторы и дешифраторы. Мультиплексоры. Алу.
- •20. Буферные элементы. Шинная организация современного компьютера.
- •21. Понятие архитектуры компьютера. Структура компьютера. Понятие о cisc и risc.
- •22. Регистры общего назначения и их особенности у Intel.
- •23. Команда. Формат команды. Классификация команд. Особенности состава команд Intel.
- •24. Ввод-вывод: программный, по прерываниям и пдп.
- •25. Адресация памяти и ввода-вывода. Циклы обмена между процессором и памятью.
- •26. Абсолютная, прямая и косвенная адресация.
- •27. Автоинкрементная и автодекрементная адресация.
- •29. Иерархия памяти. Кэш памяти.
- •30. Режимы работы процессора Intel. Rm, vm, pm, smm.
- •31. Сегментная и страничная организация доступа к памяти.
- •31 Сегментно-страничная организация
- •32. Управление сегментами в защищенном режиме. Дескрипторы и дескрипторные таблицы.
- •33. Страничная организация – реализация виртуальной памяти.
- •33 Страничная организация памяти
- •35. Понятие шины расширения. Шины pci, pci-X, pci-e.
- •36. Внешние интерфейсы пк. Интерфейс usb.
- •37. Устройства ввода информации. Сенсорные экраны.
- •38. Устройства вывода информации.
33. Страничная организация – реализация виртуальной памяти.
В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Процессор преобразует номер виртуальной страницы в адрес соответствующей ей физической страницы при помощи буфера ассоциативной трансляции. Если ему не удалось это сделать, то требуется обращение к таблице страниц (так называемый Page Walk), что может сделать либо сам процессор, либо операционная система (в зависимости от архитектуры). Если страница выгружена из оперативной памяти, то операционная система подкачивает страницу с жёсткого диска (см. свопинг). При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются тех частей, которые отвечают за обработку аппаратных прерываний, работу с таблицей страниц и использование файла подкачки
Основная идея заключается в разбиении программы на части, и в память эти части загружаются по очереди.
Программа при этом общается с виртуальной памятью, а не с физической.
Диспетчер памяти преобразует виртуальные адреса в физические.
33 Страничная организация памяти
Страницы - это части, на которые разбивается пространство виртуальных адресов.
Страничные блоки - единицы физической памяти.
Страницы всегда имеют фиксированный размер. Передача данных между ОЗУ и диском всегда происходит в страницах.
Х - обозначает не отображаемую страницу в физической памяти.
Страничное прерывание - происходит, если процесс обратился к странице, которая не загружена в ОЗУ (т.е. Х). Процессор передается другому процессу, и параллельно страница загружается в память.
Таблица страниц - используется для хранения соответствия адресов виртуальной страницы и страничного блока.
Таблица может быть размещена:
в аппаратных регистрах (преимущество: более высокое быстродействие, недостаток - стоимость)
в ОЗУ
Типичная запись в таблице страниц
Присутствие/отсутствие - загружена или незагружена в память
Защита - виды доступа, например, чтение/запись.
Изменение - изменилась ли страница, если да то при выгрузке записывается на диск, если нет, просто уничтожается.
Обращение - было ли обращение к странице, если нет, то это лучший кандидат на освобождение памяти.
Информация о адресе страницы когда она хранится на диске, в таблице не размещается.
Для ускорения доступа к страницам в диспетчере памяти создают буфер быстрого преобразования адреса, в котором хранится информация о наиболее часто используемых страниц.
Страничная организация памяти используется, и в UNIX, и в Windows.
Хранение страничной памяти на диске
Статическая область свопинга
После запуска процесса он занимает определенную память, на диске сразу ему выделяется такое же пространство. Поэтому файл подкачки должен быть не меньше памяти. А в случае нехватки памяти даже больше. Как только процесс завершится, он освободит память и место на диске.
На диске всегда есть дубликат страницы, которая находится в памяти.
Этот механизм наиболее простой.
Статический и динамический методы организации свопинга.
Динамическая область свопинга
Предполагается не выделять страницам место на диске, а выделять только при выгрузке страницы, и как только страница вернется в память освобождать место на диске.
Этот механизм сложнее, так как процессы не привязаны к какому-то пространству на диске, и нужно хранить информацию (карту диска) о местоположении на диске каждой страницы.
34. Повышение производительности процессора. Конвейеризация команд иданных. Предсказание переходов. Суперскалярность. Многоядерность.
конвейеризация IPC – Instructions per cycle
Производительность = частота × ×(Кол. команд, выполняемых за такт )
Скорость света не превысить!
T
= 0.3 ns
f
= 3.33 GHz
Пути повышения производительности
параллелизм
многоядерность
Пути достижения параллелизма
Потоковая архитектура
ОКМД (одна операция над многими данными – MMX, XMM, SSE)
МКМД (многопроцессорные системы, суперкомпьютеры)
МКМД (множество независимых компьютеров – кластеры,суперкомпьютеры)
Конвейер команд. Конвейеризация - способ обеспечения параллельности выполнения команд
Первым шагом на пути обеспечения параллельности уровня команд явилось создание конвейера команд. Идея конвейера команд была предложена в 1956 году С.А. Лебедевым. Команда подразделяется на несколько этапов, каждый из которых выполняется своей частью аппаратуры, причем, эти части могут работать параллельно. Если на выполнение каждого этапа расходуется одинаковое время (один такт), то на выходе процессора в каждый такт появляется результат очередной команды. Производительность при этом возрастает благодаря тому, что одновременно на различных ступенях конвейера выполняется несколько команд. Конвейерная обработка такого рода широко применяется во всех современных быстродействующих процессорах. Количество этапов, на которые конструкторы разбивают выполнение процессорной команды, может быть различным (в разных моделях процессоров х86 колеблется от 2 i8088 до 20 Pentium IV).
Конвейеризация - способ обеспечения параллельности выполнения команд
Выполнение типичной команды можно разделить на следующие этапы:
выборка команды - IF (по адресу, заданному счетчиком команд, из памяти извлекается команда);
декодирование команды / выборка операндов из регистров - ID;
выполнение операции / вычисление эффективного адреса памяти - EX;
обращение к памяти - MEM;
запоминание результата - WB.
Поток команд - естественная последовательность команд, проходящая по конвейеру процессора. Процессор может поддерживать несколько потоков команд (суперпроцессоры 5 и 6 поколения), если для каждого потока и каждого этапа есть исполнительные элементы.
Суперконвейер команд - разбиение каждой ступени на подступени при одновременном увеличении тактовой частоты внутри конвейера; включение в состав процессора многих конвейеров, работающих с перекрытием. Дробление ступеней позволяет поднять тактовые частоты процессора. К суперконвейерным относятся процессоры, в которых число ступеней больше шести (см. таблицу).
Суперконвейер
Cуперконвейер ведет не только к увеличению скорости вычислений, но и к возникновению дополнительных сложностей. Возрастает вероятность конфликтов. Дороже встает ошибка предсказания перехода - приходится сбрасывать весь длинный конвейер, на что требуется дополнительное время. Усложняется логика взаимодействия ступеней. Однако за счет использования новых архитектур удается справиться с большинством проблем. При рассмотрении современных процессоров будут описаны новые идеи: исполнения команд с изменением последовательности, переименования регистров, спекулятивного исполнения и другие
Предсказание переходов. Суперскалярность. Многоядерность.
Предсказатель переходов
Модуль предсказания условных переходов (англ. Branch Prediction Unit) — устройство, входящее в составмикропроцессоров, имеющих конвейерную архитектуру, определяющее направление ветвлений (предсказывающее, будет ли выполнен условный переход) в исполняемой программе. Предсказание ветвлений позволяет осуществлять предварительную выборку инструкций и данных из памяти, а также выполнять инструкции, находящиеся после условного перехода, до того, как он будет выполнен. Предсказатель переходов является неотъемлемой частью всех современных суперскалярных микропроцессоров, так как в большинстве случаев (точность предсказания переходов в современных процессорах превышает 90 %) позволяет оптимально использовать вычислительные ресурсы процессора.[1]
Существует два основных метода предсказания переходов: статический и динамический.
Статическое предсказание
Статические методы предсказания ветвлений являются наиболее простыми. Суть этих методов состоит в том, что различные типы переходов либо выполняются всегда, либо не выполняются никогда. В современных процессорах статические методы используются лишь в том случае, когда невозможно использование динамического предсказания.
Примерами статического предсказания могут служить тривиальное предсказание переходов, применявшееся в ранних процессорах архитектуры SPARC и MIPS (предполагается, что условные переходы никогда не выполняются), а также статическое предсказание, использующееся в современных процессорах в качестве «подстраховки» (предполагается, что любой обратный переход, т.е. переход на более младшие адреса, является циклом и выполняется, а любой прямой переход, т.е. на более старшие адреса, не выполняется).
Динамическое предсказание
Динамические методы, широко используемые в современных процессорах, подразумевают анализ истории ветвлений. Примером динамического предсказания может служить двухуровневый адаптивный исторический алгоритм (англ. Bimodal branch prediction), использовавшийся процессорами архитектуры P6 (анализируется таблица истории переходов, содержащая младшие значимые биты адреса инструкции и соответствующую им вероятность условного перехода: «скорее всего, будет выполнен», «возможно, будет выполнен», «возможно, не будет выполнен», «скорее всего, не будет выполнен» и обновляемая после каждого перехода).
Суперскалярность — архитектура вычислительного ядра, использующая несколько декодеров команд, которые могут загружать работой множествоисполнительных блоков. Планирование исполнения потока команд является динамическим и осуществляется самим вычислительным ядром.
Если в процессе работы команды, обрабатываемые конвейером, не противоречат друг другу, и одна не зависит от результата другой, то такое устройство (ядро) может осуществить параллельное выполнение команд. В суперскалярных системах решение о запуске инструкции на исполнение принимает сам вычислительный модуль, что требует много ресурсов. В более поздних системах, таких как Эльбрус-3 и Itanium, используется статпланирование, то есть параллельные инструкции объединяются компилятором в длинную команду, в которой все инструкции заведомо параллельные (архитектура VLIW).
Многоя́дерный проце́ссор — центральный процессор, содержащий два и более вычислительных ядра на одном процессорном кристалле или в одном корпусе.
Многоядерные процессоры можно подразделить по наличию поддержки когерентности кеш-памяти между ядрами. Бывают процессоры с такой поддержкой и без неё.
Способ связи между ядрами:
разделяемая шина
сеть (Mesh) на каналах точка-точка
сеть с коммутатором
общая кеш-память
Кеш-память: Во всех существующих на сегодня многоядерных процессорах кеш-памятью 1-го уровня обладает каждое ядро в отдельности, а кеш-память 2-го уровня существует в нескольких вариантах:
разделяемая — расположена на одном кристалле с ядрами и доступна каждому из них в полном объёме. Используется в процессорах семейств Intel Core.
индивидуальная — отдельные кеши равного объёма, интегрированные в каждое из ядер. Обмен данными из кешей 2-го уровня между ядрами осуществляется через контроллер памяти — интегрированный (Athlon 64 X2, Turion X2,Phenom) или внешний (использовался в Pentium D, в дальнейшем Intel отказалась от такого подхода).
