# Лекция 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) на видеозапись лекции