first lesson uniq Flashcards
Что означает MIPS и к какому классу процессоров относится?
MIPS (Microprocessor without Interlocked Pipeline Stages) — это архитектура процессоров с набором команд RISC (Reduced Instruction Set Computing).
Назовите три ключевые характеристики архитектуры MIPS.
- RISC-архитектура (простые инструкции, ограниченный набор команд, много регистров). 2. Конвейерная обработка (5 стадий: Fetch, Decode, Execute, Memory, Write-back). 3. Режимы работы (User Mode – ограниченный, Kernel Mode – полный доступ).
Какие стадии выполняет команда в конвейере MIPS?
- Fetch – выборка инструкции. 2. Decode – декодирование. 3. Execute – выполнение. 4. Memory – работа с памятью. 5. Write-back – запись результата.
Сколько регистров общего назначения в MIPS и какая особенность у $0?
В MIPS 32 регистра общего назначения ($0 – $31). Регистр $0 всегда равен 0.
Какие три основных типа инструкций используются в MIPS?
- R-тип – операции с регистрами (арифметические, логические). 2. I-тип – операции с константами и памятью (загрузка, сохранение, ветвления). 3. J-тип – команды переходов (J, JAL).
Как сложить два числа в MIPS Assembly?
lw $t0, val1; lw $t1, val2; add $t2, $t0, $t1; sw $t2, result (Загрузка чисел, сложение, сохранение результата).
В каких устройствах применялась архитектура MIPS?
Игровые консоли (PlayStation 1, PlayStation 2, Nintendo 64), сетевое оборудование (Cisco, Mikrotik), встраиваемые системы, обучение.
В чем основные различия между MIPS, ARM и RISC-V?
MIPS – использовался в встраиваемых системах, но теряет популярность. ARM – доминирует в мобильных устройствах. RISC-V – открытая архитектура, быстро развивается.
Почему популярность MIPS снизилась?
Из-за роста ARM и RISC-V, но некоторые компании (например, Loongson) продолжают разработку процессоров на основе MIPS.
Что такое конвейерная обработка (pipelining) в MIPS?
Метод повышения производительности, при котором несколько инструкций обрабатываются одновременно на разных стадиях выполнения.
Сколько стадий у классического конвейера MIPS и какие они?
5 стадий: 1. IF (Instruction Fetch) – выборка команды. 2. ID (Instruction Decode) – декодирование. 3. EX (Execute) – выполнение. 4. MEM (Memory Access) – доступ к памяти. 5. WB (Write Back) – запись результата.
Что происходит на стадии IF (Instruction Fetch)?
Процессор загружает инструкцию из памяти по адресу Program Counter (PC) и увеличивает PC на 4.
Что происходит на стадии ID (Instruction Decode)?
Процессор расшифровывает инструкцию и извлекает регистры, которые потребуются для выполнения.
Какая функция у стадии EX (Execute)?
Выполнение арифметических и логических операций в ALU (Arithmetic Logic Unit). Для branch-инструкций вычисляется новый адрес.
Что делает стадия MEM (Memory Access)?
Осуществляет доступ к памяти для инструкций загрузки и сохранения (lw
, sw
). Остальные команды пропускают этот этап.
Что выполняет стадия WB (Write Back)?
Записывает результат вычислений или загруженные данные в регистры.
Как работает конвейер MIPS?
Каждая стадия выполняет свою часть работы, что позволяет обрабатывать несколько команд одновременно, повышая производительность.
Какие основные конфликты встречаются в конвейере?
- Структурные – два запроса к одному устройству. 2. По данным – инструкция требует результат предыдущей, но он ещё не записан. 3. По управлению – процессор не знает, какую инструкцию загружать после branch.
Какие методы используются для разрешения конфликтов в конвейере?
Пересылка данных (forwarding
), предсказание переходов (branch prediction
), задержка ветвления (branch delay slot
).
Как таблица выполнения конвейера показывает параллельное выполнение инструкций?
В таблице видно, что пока первая инструкция завершает WB
, вторая находится в MEM
, а третья – в EX
, что увеличивает скорость выполнения.
Почему конвейер MIPS ускоряет выполнение программ?
Конвейер позволяет выполнять несколько инструкций одновременно, распределяя их по разным стадиям выполнения.
Как Go управляет памятью?
Go использует автоматическое управление памятью с разделением на стек (локальные переменные) и кучу (динамически выделенная память).
Чем отличается стек от кучи в Go?
Стек – быстрый, используется для локальных переменных. Куча – медленнее, используется для глобальных объектов и передаваемых по указателю переменных.
Что такое escape analysis
в Go?
Анализ, определяющий, нужно ли переменной ‘убегать’ в кучу или её можно оставить в стеке.