- •1Принцип программного управления
- •2. Принцип Тьюринга.
- •5. Поколения эвм
- •8. Классификация типов памяти
- •9. Принцип действия нжмд, флеш-памяти.
- •12. Методы адресации данных
- •17. Классификация Флинна
- •18. Способы перевода программы в машинный код
- •19. Классификация ос
- •20. Эволюция ос
- •Состояние процессов
- •Состояние процессов
- •1. Позиционные и непозиционные системы исчисления
- •2. Перевод чисел из одной системы в другую
- •3. Естественная, нормальная и нормализованная формы представления числа.
- •6. Правило сложения чисел, заданных в нормальной форме.
- •8. Правило деления двоичных чисел
- •9. Элементарные логические действия
- •12. Представление переключательных функций в дизюнктивной нормальной форме.
- •13. Замена элементов «или» на элементы «и» и наоборот.
12. Методы адресации данных
Простая (англ. flat addressing) — указание объекта с помощью идентификатора или числа, не имеющего внутренней структуры.
Расширенная (англ. extended addressing) — доступ к запоминающему устройству с адресным пространством, бо́льшим диапазона адресов, предусмотренного форматом команды.
Виртуальная (англ. virtual addressing) — принцип, при котором каждая программа рассматривается как ограниченное непрерывное поле логической памяти, а адреса этого поля — как виртуальные адреса.
Ассоциативная (англ. associative addressing) — точное местоположение данных не указывается, а задаётся значение определённого поля данных, идентифицирующее эти данные (см.: Ассоциативная память).
13. Методы адресации команд
Под адресацией команд понимается способ вычисления следующей команды. Принудительная адресация. Адрес следующей команды в самой команды. Недостатки:
1. Неперемещаемость программы.
2. Команды, с точки зрения длины формата, длинные.
При написании программы в адресном поле следующей команды размещается следующий адрес, что неэффективно. Программист, как правило, располагает команды последовательно, в соседних ячейках памяти. Значит адрес следующей команды вычисляется просто по адресу текущей программы. Для этого в состав процессора вводится специальный узел (программный счетчик РС, СчК, СчАК), обеспечивающий последовательную адресацию команд (естественная адресация).
Схема формирования адреса следующей команды: РС := (РС) + 1к
1к - длина предшествующей команды Однако, при осуществлении ветвления, в программах реализуются циклические участки программы выполняющие обращения к процедурам и подпрограммам, следовательно, естественный порядок выполнения команд, безусловно нарушается. Для этого используются специальные команды - команды передачи управления. Если в командах с естественным порядком нет адресного поля, то в командах передачи управления, адресное поле обязательно, в нем, в общем случае задается адресный код, на основе которого, при выполненииэтой команды формируется физический адрес последующей команды. Способы формирования исполнительных адресов команд различны:
1. Неявная адресация. По существу адресное поле в команде управления отсутствует. Адрес следующей команды извлекается из фиксированных ячеек или адрес фиксирован. Обычно, неявная адресация используется для фиксированных причин прерывания
2. Абсолютная адресация. В адресном поле команды передачи управления, указывается полный адрес следующей команды.
Более распространены непрямые способы адресации, обычно применяют три способа:
14. Типы процессоров.
CISC-процессоры
Complex Instruction Set Computer — вычисления со сложным набором команд. Процессорная архитектура, основанная на усложнённом наборе команд. Типичными представителями CISC являются микропроцессоры семейства x86 (хотя уже много лет эти процессоры являются CISC только по внешней системе команд: в начале процесса исполнения сложные команды разбиваются на более простые микрооперации (МОП'ы), исполняемые RISC-ядром).
RISC-процессоры
Reduced Instruction Set Computer — вычисления с упрощённым набором команд (в литературе слово «reduced» нередко ошибочно переводят как «сокращённый»). Архитектура процессоров, построенная на основе упрощённого набора команд. Характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации. Концепция RISC разработана Джоном Коком (John Cocke) из IBM Research, название придумано Дэвидом Паттерсоном (David Patterson).
Упрощение набора команд призвано сократить конвейер, что позволяет избежать задержек на операциях условных и безусловных переходов. Однородный набор регистров упрощает работу компилятора при оптимизацииисполняемого программного кода. Кроме того, RISC-процессоры отличаются меньшим энергопотреблением и тепловыделением.
Среди первых реализаций этой архитектуры были процессоры MIPS, PowerPC, SPARC, Alpha, PA-RISC. В мобильных устройствах широко используются ARM-процессоры.
MISC-процессоры
Minimum Instruction Set Computer — вычисления с минимальным набором команд. Дальнейшее развитие идей команды Чака Мура, который полагает, что принцип простоты, изначальный для RISC-процессоров, слишком быстро отошёл на задний план. В пылу борьбы за максимальное быстродействие, RISC догнал и перегнал многие CISC процессоры по сложности. Архитектура MISC строится на стековой вычислительной модели с ограниченным числом команд (примерно 20-30 команд).
VLIW-процессоры
Very Long Instruction Word — сверхдлинное командное слово. Архитектура процессоров с явно выраженным параллелизмом вычислений, заложенным в систему команд процессора. Являются основой для архитектуры EPIC. Ключевым отличием от суперскалярных CISC-процессоров является то, что для них загрузкой исполнительных устройств занимается часть процессора (планировщик), на чтоотводится достаточно малое время, в то время как загрузкой вычислительных устройств для VLIW-процессора занимается компилятор, на что отводится существенно больше времени (качество загрузки и, соответственно, производительность теоретически должны быть выше). Примером VLIW-процессора является Intel Itanium.
15. Типы машинных команд
1. Функциональное назначение.
1.1 Команды передачи данных
1.2 Команды обработки данных
1.3 Команды передачи управления
1.4 Дополнительные команды
2. Адресность команды.
2.1 безадресные команды
2.2 одноадресные команды
2.3 двух адресные команды
2.4 прочие команды
3. По способам адресации
3.1 данных
3.2 команд
4. Способ кодирования операций.
4.1 Команды с фиксированным полем кода операций
4.2 Команды с расширяющимся полем кода операций
5. По длине.
5.1 однобайтные
5.2 двухбайтные
5.3 трехбайтные
5.4 многобайтные
16. Конвейерная и суперскалярная архитектуры.
Термин "конвейер" в компьютерной архитектуре обозначает ... конвейер. Идея конвейера состоит в том, чтобы сложную операцию разбить на множество более простых, которые могут выполняться одновременно. При движении объектов по конвейеру на разных его участках выполняются разные операции, а при достижении каждым объектом конца конвейера он окажется полностью обработанным. Конвейеры применяются как при обработке команд, так и в арифметических операциях. Для эффективной реализации конвейера должны выполняться следующие условия: истема выполняет повторяющуюся операцию; эта операция может быть разделена на независимые части, степень перекрытия которых невелика; трудоемкость подопераций примерно одинакова. Количество подопераций называют глубиной конвейера. Важным условием нормальной работы конвейера является отсутствие конфликтов, то есть данные, подаваемые в конвейер, должны быть независимыми. В том случае, когда очередной операнд зависит от результата предыдущей операции, возникают такие периоды работы конвейера ("пузыри"), когда он пуст. Это еще одна проблема вработе конвейерных систем. Увеличение быстродействия, которое можно получить с помощью конвейера приблизительно дается следующей формулой: (n*d)/(n+d) где n – количество операндов, загружаемых в конвейер, d – глубина конвейера. Пусть требуется выполнить операцию сложения над двумя одномерными массивами по 200 элементов, причем выполнение сложения требует пять операций. В этом случае ускорение составит (200*5)/(200+5)=4.88. Разумеется, это идеальная ситуация, недостижимая в реальной жизни, в частности, считается, что нет "пузырей" и т.д. Это предполагает, как уже упоминалось, взаимную независимость данных. В конвейерах команд также могут возникать простои, источником которых является зависимость между командами. Такие ситуации возникают при наличии в циклах ветвлений, то есть условных операторов.
Суперскалярные процессоры
Суперскалярный процессор представляет собой нечто большее, чем обычный последовательный (скалярный) процессор. В отличие от последнего, он может выполнять несколько операций за один такт. Основными компонентами суперскалярного процессора являются устройства для интерпретации команд, снабженные логикой, позволяющей определить, являются ли команды независимыми, и достаточное число исполняющих устройств. В исполняющих устройствах могут быть конвейеры. Суперскалярные процессоры реализуют параллелизм на уровне команд. Примером компьютера с суперскалярнымпроцессором является IBM RISC/6000. Тактовая частота процессора у ЭВМ была 62.5 МГц, а быстродействие системы на вычислительных тестах достигало 104 Mflop (Mflop – единица измерения быстродействия процессора – миллион операций с плавающей точкой в секунду). Суперскалярный процессор не требует специальных векторизующих компиляторов, хотя компилятор должен в этом случае учитывать особенности архитектуры.
