* ЛР5. Исправление примера формирования управляющих сигналов для инструкции sw * Update ERRATA.md --------- Co-authored-by: Vlad Nikiforov <bfly@mail.ru> Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
5.0 KiB
Список исправлений
25.08.2025: Обнаружена ошибка в примере формирования управляющих сигналов декодером инструкций на стр. 133. При инструкции sw
, декодер должен выставить на сигнале b_sel_o
значение 3'd3
, а не 3'd1
.
Исправленная версия абзаца
Пример: для выполнения инструкции записи 32-бит данных из регистрового файла во внешнюю память (инструкции
sw
), дешифратор должен направить в АЛУ два операнда (базовый адрес и смещение) вместе с кодом операции АЛУ (сложения) для вычисления адреса записи. Базовый адрес берется из регистрового файла, а смещение является непосредственным операндом инструкции S-типа. Таким образом для вычисления адреса записи декодер должен выставить следующие значения на выходах:
a_sel_o = 2'd0
,b_sel_o = 3'd3
,alu_op_o= ALU_ADD
.
11.07.2025: Обнаружена ошибка вёрстки в примере использования битовых сдвигов на стр. 79. Операции по установке, очистке и чтению N-го бита выглядят следующим образом:
X = X | (1 << N); // Установка N-го бита
X = X & ~(1 << N); // Очистка N-го бита
Y = (X & (1 << N)) != 0; // Чтение N-го бита
11.07.2025: Исправлена опечатка в предпоследнем абзаце стр. 227 (в конце первого предложения должен был быть написан LMA):
- задав какой-нибудь заведомо большой VMA для секции данных
+ задав какой-нибудь заведомо большой LMA для секции данных
Исправленная версия абзаца
Таким образом, мы можем сделать общие VMA (процессор, обращаясь к секциям инструкций и данных будет использовать пересекающееся адресное пространство), а конфликт размещения секций компоновщиком разрешить, задав какой-нибудь заведомо большой LMA для секции данных. В последствии, мы просто проигнорируем этот адрес, проинициализировав память данных начиная с нуля.
16.06.2025: Исправлена ошибка в листинге II.14-2.
Предпоследнюю инструкцию (lw a0, 40(a0)
) следует читать как lw a0, 24(a0)
.
22.05.2025: Исправлено несоответствие в названиях модулей в ЛР10-12.
irq_controller
следует читать какinterrupt_controller
;processor_unit
следует читать какprocessor_system
.
В рисунке II.12-3 добавлена разрядность сигнала irq_ret_o
(должна быть 16 бит).
13.05.2025: Исправлен рисунок II.8-3 — исправлена опечатка в названии нижнего сигнала (mem_wd_i
→ mem_wd_o
).
Обновлённый рисунок
Рисунок II.8-3. Временна́я диаграмма запросов на запись со стороны ядра и сигнала mem_wd_o.
29.03.2025: Исправлен рисунок II.4-4 — убрана логика безусловного перехода, т.к. она должна была появиться только в следующем параграфе.