mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 17:20:10 +00:00
149 lines
12 KiB
Markdown
149 lines
12 KiB
Markdown
# Лекция 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)
|
||
- Все команды, кроме чтения и записи, используют внутрипроцессорные межрегистровые пересылки
|
||
- Устройство управления с аппаратной (жесткой) логикой
|
||
|
||
---
|
||
|
||

|
||
|
||
---
|
||
|
||
**VLIW** (very long instruction word)
|
||
|
||

|
||
|
||
Архитектура с длинным командным словом (грубо говоря, объединение нескольких RISC процессоров работающих параллельно).
|
||
|
||
**Особенности**:
|
||
|
||
- Сложный регистровый файл, усложненные связи с вычислительными устройствами
|
||
- Большой объем программного кода
|
||
- Невозможность миграции программ, написанных под другие архитектуры
|
||
- Сложность отладки
|
||
|
||
---
|
||
|
||
### Классификация архитектур по способу реализации условных переходов
|
||
|
||
- Переход происходит или не происходит исходя из значений _флагов_, формируемых операционными устройствами
|
||
|
||
- Специальные операции меняют содержимое _регистра состояний_ (state register). Команда условного перехода происходит, если содержимое регистра состояний соответствует выполняемой инструкции
|
||
|
||
## Классификация инструкций
|
||
|
||
### Классификация инструкций по функциональному назначению
|
||
|
||
- **Инструкции работы с данными**
|
||
- Перемещение данных
|
||
- Модификация данных
|
||
- Арифметические
|
||
- Логические
|
||
- Сдвига
|
||
- Сравнения
|
||
|
||
- **Инструкции управления**
|
||
- Управление программой
|
||
- Условный переход
|
||
- Безусловный переход
|
||
- Управления процессором
|
||
|
||
### Классификация инструкций по способу адресации операндов
|
||
|
||
- Непосредственная (операнд содержится внутри инструкции)
|
||
- Прямая (указывается адрес операнда в основной памяти)
|
||
- Регистровая (указывается адрес регистра в регистровом файле)
|
||
- Косвенно-регистровая (указывается адрес регистра, в кортом лежит адрес операнда в основной памяти)
|
||
- Косвенно-регистровая со смещением (указывается адрес регистра, в котором лежит базовый адрес, к которому прибавляется константа из инструкции, полученное число является адресом операнда в основной памяти)
|
||
- Относительная (является суммой регистра специального назначения и константы)
|
||
|
||
### Классификация инструкций по количеству операндов в инструкции
|
||
|
||
- 0 - Нет операндов
|
||
- 0 - Подразумеваемый операнд
|
||
- 1 - один операнд
|
||
- 2 - два операнда
|
||
|
||
## Основные материалы лекции
|
||
|
||
1. [Ссылка](https://www.youtube.com/watch?v=w4KbkQSDJLU) на видеозапись лекции
|