Добавление конспектов лекций

This commit is contained in:
Andrei Solodovnikov
2023-12-11 18:04:56 +03:00
parent 26b0f592f5
commit c3bb1df66b
242 changed files with 3573 additions and 0 deletions

View File

@@ -0,0 +1,143 @@
# Лекция 13. Виды и классификация архитектур
## Содержание
- [Лекция 13. Виды и классификация архитектур](#лекция-13-виды-и-классификация-архитектур)
- [Содержание](#содержание)
- [Архитектура](#архитектура)
- [Классификация архитектур](#классификация-архитектур)
- [Классификация архитектур по способу хранения операндов](#классификация-архитектур-по-способу-хранения-операндов)
- [Классификация архитектур по составу и сложности команд](#классификация-архитектур-по-составу-и-сложности-команд)
- [Классификация архитектур по способу реализации условных переходов](#классификация-архитектур-по-способу-реализации-условных-переходов)
- [Классификация инструкций](#классификация-инструкций)
- [Классификация инструкций по функциональному назначению](#классификация-инструкций-по-функциональному-назначению)
- [Классификация инструкций по способу адресации операндов](#классификация-инструкций-по-способу-адресации-операндов)
- [Классификация инструкций по количеству операндов в инструкции](#классификация-инструкций-по-количеству-операндов-в-инструкции)
- [Основные материалы лекции](#основные-материалы-лекции)
## Архитектура
**Архитектура** - абстрактная модель функциональных возможностей процессора (средства, которыми может пользоваться программист)
_Строгое определение:_
**Архитектура набора команд** (Instruction set architecture) включает в себя два понятия:
- Система команд (инструкции аппаратно реализуемые в процессоре)
- Средства для выполнения команд:
- форматы данных
- системы регистров
- способы адресации
- модели памяти
## Классификация архитектур
### Классификация архитектур по способу хранения операндов
- **Аккумуляторная архитектура**
Архитектура на базе аккумулятора исторически возникла одной из первых. В ней для хранения одного из операндов арифметической или логической операции в процессоре имеется выделенный регистр — аккумулятор. В этот же регистр заносится и результат операции. Поскольку адрес одного из операндов предопределен, в командах обработки достаточно явно указать местоположение только второго операнда. Изначально оба операнда хранятся в основной памяти, и до выполнения операции один из них нужно загрузить в аккумулятор. После выполнения команды обработки результат находится в аккумуляторе и, если он не является операндом для последующей команды, его требуется сохранить в ячейке памяти.
- **Регистровая архитектура**
В машинах данного типа процессор включает в себя массив регистров (регистровый файл), известных как регистры общего назначения. Эти регистры можно рассматривать как явно управляемый кэш для хранения недавно использовавшихся данных.
Регистровая архитектура допускает расположение операндов в одной из двух запоминающих сред: основной памяти или регистрах.
- **Load/store архитектура**
Load/store архитектура представляет собой архитектуру набора команд, которая делит инструкции на две категории: доступ к памяти (загрузка и сохранение между памятью и регистрами) и операции ALU (которые происходят только между регистрами).
- **Стековая архитектура**
В вычислительных машинах, где реализована архитектура на базе стека, операнды выбираются из двух верхних ячеек стековой памяти. Результат операции заносится в вершину стека.
### Классификация архитектур по составу и сложности команд
**CISC** (complex instruction set computer)
Архитектура с полным набором команд (относится к регистровой архитектуре набора команд)
**Особенности**:
- Имеет большое количество различных команд, каждая из которых выполняется несколько тактов
- Устройство управления с программируемой логикой
- Небольшое количество регистров общего назначения
- Различные форматы команд с разной длиной
- Преобладание двухадресной адресации
- Развитый механизм адресации операндов, включающий различный методы косвенной адресации
---
**RISC** (reduced instruction set computer)
Архитектура с сокращенным набором команд (относится к load/store архитектуре набора команд).
**Особенности**:
- Большая часть команд выполняется за один такт
- Стандартная однословная длина всех команд, равная естественной длине слова и ширине шины данных и допускающая унифицированную конвейерную обработку всех команд
- Малое число стандартных команд (не более 128)
- Малое количество форматов команд (не около 4)
- Малое число способов адресации (не более 4)
- Доступ к памяти только посредством команд чтения и записи (load/store)
- Все команды, кроме чтения и записи, используют внутрипроцессорные межрегистровые пересылки
- Устройство управления с аппаратной (жесткой) логикой
---
![../.pic/Lectures/13.%20Processor%20architecture%20classification/fig_01.png](../.pic/Lectures/13.%20Processor%20architecture%20classification/fig_01.png)
---
**VLIW** (very long instruction word)
![../.pic/Lectures/13.%20Processor%20architecture%20classification/fig_02.png](../.pic/Lectures/13.%20Processor%20architecture%20classification/fig_02.png)
Архитектура с длинным командным словом (грубо говоря, объединение нескольких RISC процессоров работающих параллельно).
**Особенности**:
- Сложный регистровый файл, усложненные связи с вычислительными устройствами
- Большой объем программного кода
- Невозможность миграции программ, написанных под другие архитектуры
- Сложность отладки
---
### Классификация архитектур по способу реализации условных переходов
- Переход происходит или не происходит исходя из значений _флагов_, формируемых операционными устройствами
- Специальные операции меняют содержимое _регистра состояний_ (state register). Команда условного перехода происходит, если содержимое регистра состояний соответствует выполняемой инструкции
## Классификация инструкций
### Классификация инструкций по функциональному назначению
- **Инструкции работы с данными**
- Перемещение данных
- Модификация данных
- Арифметические
- Логические
- Сдвига
- Сравнения
- **Инструкции управления**
- Управление программой
- Условный переход
- Безусловный переход
- Управления процессором
### Классификация инструкций по способу адресации операндов
- Непосредственная (операнд содержится внутри инструкции)
- Прямая (указывается адрес операнда в основной памяти)
- Регистровая (указывается адрес регистра в регистровом файле)
- Косвенно-регистровая (указывается адрес регистра, в кортом лежит адрес операнда в основной памяти)
- Косвенно-регистровая со смещением (указывается адрес регистра, в котором лежит базовый адрес, к которому прибавляется константа из инструкции, полученное число является адресом операнда в основной памяти)
- Относительная (является суммой регистра специального назначения и константы)
### Классификация инструкций по количеству операндов в инструкции
- 0 - Нет операндов
- 0 - Подразумеваемый операнд
- 1 - один операнд
- 2 - два операнда
### Основные материалы лекции
1. [Ссылка](https://www.youtube.com/watch?v=w4KbkQSDJLU) на видеозапись лекции