From 73c615b55857e8132c06156c3e5b4bbe929d45d7 Mon Sep 17 00:00:00 2001 From: Andrei Solodovnikov Date: Sun, 10 Sep 2023 20:57:04 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=A08.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D1=87=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .pic/Labs/lab_08_lsu/fig_01.drawio.png | Bin 0 -> 89992 bytes .pic/Labs/lab_08_lsu/fig_02.png | Bin 0 -> 5173 bytes .pic/Labs/lab_08_lsu/fig_03.drawio.png | Bin 0 -> 251727 bytes Labs/08. Load-store unit/README.md | 236 +++++++++++++++++++++++++ 4 files changed, 236 insertions(+) create mode 100644 .pic/Labs/lab_08_lsu/fig_01.drawio.png create mode 100644 .pic/Labs/lab_08_lsu/fig_02.png create mode 100644 .pic/Labs/lab_08_lsu/fig_03.drawio.png create mode 100644 Labs/08. Load-store unit/README.md diff --git a/.pic/Labs/lab_08_lsu/fig_01.drawio.png b/.pic/Labs/lab_08_lsu/fig_01.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..08a79a1c713965873b3c2b6ac77b2c19c4ae7b1e GIT binary patch literal 89992 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 literal 0 HcmV?d00001 diff --git a/.pic/Labs/lab_08_lsu/fig_02.png b/.pic/Labs/lab_08_lsu/fig_02.png new file mode 100644 index 0000000000000000000000000000000000000000..b6671e382d1f86b555033ec1c7286956ad976d14 GIT binary patch literal 5173 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 literal 0 HcmV?d00001 diff --git a/.pic/Labs/lab_08_lsu/fig_03.drawio.png b/.pic/Labs/lab_08_lsu/fig_03.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..36827409d75b0bed5bb964ad6b4aa089b90eef79 GIT binary patch literal 251727 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ŲZRwI$6UXsmZQ(cjRHf_Eqeq>)w8bZh0k-NAJ0?! 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 literal 0 HcmV?d00001 diff --git a/Labs/08. Load-store unit/README.md b/Labs/08. Load-store unit/README.md new file mode 100644 index 0000000..2032c41 --- /dev/null +++ b/Labs/08. Load-store unit/README.md @@ -0,0 +1,236 @@ +# Лабораторная работа 8 "Блок загрузки и сохранения" + +Итогом шестой лабораторной работы стал практически завершенный процессор архитектуры RISC-V. Особенностью той реализации процессора было отсутствие поддержки инструкций `LB`, `LBU`, `SB`, `LH`, `LHU`, `SH`. Тому было две причины: + +- в третьей лабораторной работе была реализована память данных, не поддерживавшая возможность обновления отдельных байт; +- необходимо подготовить считанные из памяти полуслова / байты для записи в регистровый файл. + +В седьмой лабораторной работе была реализована новая память данных, в которой можно управлять записью в отдельные байты посредством управляющего сигнала `byte_enable`, каждый отдельный бит которого является разрешением записи в соответствующий байт слова. Необходимо управлять этим сигналом, используя интерфейс памяти процессора. + +Для этих целей используется специальный модуль — **Блок загрузки и сохранения** (**Load and Store Unit**, **LSU**). + +## Цель + +Разработка и блока загрузки и сохранения для подключения к внешней памяти данных, поддерживающей запись в отдельные байты памяти. + +--- + +## Ход работы + +Изучить: + +- Функции и задачи блока загрузки/сохранения +- Интерфейс процессора и блока загрузки/сохранения +- Интерфейс блока загрузки/сохранения и памяти + +Реализовать и проверить модуль `riscv_lsu`. + +--- + +## Теория + +Модуль загрузки и сохранения (**Load/Store Unit** – **LSU**) служит для исполнения инструкций типа `LOAD` и `STORE`: является прослойкой между внешним устройством – памятью, и ядром процессора. **LSU** считывает содержимое из памяти данных или записывает в нее требуемые значения, преобразуя 8- и 16-битные данные в знаковые или беззнаковые 32-битные числа для регистров процессора. В процессорах с **RISC** архитектурой с помощью **LSU** осуществляется обмен данными между регистрами общего назначения и памятью данных. + +![../../.pic/Labs/lab_08_lsu/fig_01.drawio.png](../../.pic/Labs/lab_08_lsu/fig_01.drawio.png) + +_Рисунок 1. Место LSU в микроархитектуре RISC-процессора_ + +### Интерфейс процессора и блока загрузки/сохранения + +Параграф посвящен описанию сигналов и правил взаимодействия между процессором и блоком загрузки/сохранения **LSU** **(core protocol)**. + +На входной порт `core_addr_i` от процессора поступает адрес ячейки памяти, к которой будет произведено обращение. Намеренье процессора обратиться к памяти (и для чтения, и для записи) отражается выставлением сигнала `core_req_i` в единицу. Если процессор собирается записывать в память, то сигнал `core_we_i` выставляется в единицу, а сами данные, которые следует записать, поступают от него на вход `core_wd_i`. Если процессор собирается читать из памяти, то сигнал `core_we_i` находится в нуле, а считанные данные подаются для процессора на выход `core_rd_o`. + +Инструкции `LOAD` и `STORE` в **RV32I** поддерживают обмен 8-битными, 16-битными или 32-битными значениями, однако в самом процессоре происходит работа только с 32-битными числами, поэтому загружая байты или полуслова из памяти их необходимо предварительно расширить до 32-битного значения. Для выбора разрядности на вход **LSU** подается сигнал `core_size_i`, принимающий следующие значения: + +| Название |Значение| Пояснение | +|----------|--------|-------------------------------| +| LDST_B | 3'd0 |Знаковое 8-битное значение | +| LDST_H | 3'd1 |Знаковое 16-битное значение | +| LDST_W | 3'd2 |32-битное значение | +| LDST_BU | 3'd4 |Беззнаковое 8-битное значение | +| LDST_HU | 3'd5 |Беззнаковое 16-битное значение | + +Формат представления числа (является оно **знаковым** или **беззнаковым**) имеет значение только для операций типа `LOAD`: если число знаковое, то производится расширение знака до 32 бит, а если беззнаковое – расширение нулями. + +Для операций типа `STORE` формат представления чисел не важен, для них `core_size_i` сможет принимать значение только от 0 до 2. + +Выходной сигнал `core_stall_o` нужен для остановки программного счетчика. Ранее логика этого сигнала временно находилась в модуле `riscv_unit` — теперь она займет свое законное место в модуле **LSU**. + +### Интерфейс блока загрузки/сохранения и памяти + +В параграфе описывается организация внешней памяти, и то, как к ней подключается **LSU**. + +Память данных имеет 32-битную разрядность ячейки памяти и поддерживает побайтовую адресацию. Это значит, что существует возможность записи значения по одному байту в пределах одного слова (4-байтовой ячейки памяти). Для указания на необходимые байты интерфейс к памяти предусматривает использование 4-битного сигнала `mem_be_o`, подаваемого вместе с адресом слова `mem_addr_o`. Позиции битов 4-битного сигнала соответствуют позициям байтов в слове. Если конкретный бит `mem_be_o` равен 1, то соответствующий ему байт будет записан в память. Данные для записи подаются на выход `mem_wd_o`. На результат чтения из памяти состояние `mem_be_o` не влияет, так как чтение производится всегда по 32-бита. + +После получения запроса на чтение/запись из ядра, **LSU** перенаправляет запрос в память данных, взаимодействие осуществляется следующими сигналами: + +- сигнал `mem_req_o` сообщает памяти о наличии запроса в память (напрямую подключен к `core_req_i`); +- сигнал `mem_we_o` сообщает памяти о типе этого запроса (напрямую подключен к `core_we_i`): + - `mem_we_o` равен 1, если отправлен запрос на запись, + - `mem_we_o` равен 0, если отправлен запрос на чтение; +- сигнал `mem_wd_o` содержит данные на запись в память. В зависимости от размера записи, данные этого сигнала будут отличаться от пришедшего сигнала `core_wd_i` и будут является результатом определенных преобразований. +- сигнал `mem_rd_i` содержит считанные из памяти данные. Перед тем, как вернуть считанные данные ядру через выходной сигнал `core_rd_o`, эти данные будет необходимо подготовить. +- сигнал `mem_ready_i` сообщает о готовности памяти завершить транзакцию на текущем такте. Этот сигнал используется для управления выходным сигналом `core_stall_o`. + + + + + +--- + +## Практика + +> Познай как описать выходные сигналы модуля — и ты познаешь как описать сам модуль. ©Джейсон Стейтем + +Реализация любого модуля сводится к реализации логики, управляющей каждым отдельным выходным сигналом посредством входных сигналов. Разберем принцип работы каждого выходного сигнала: + +### mem_req_o + +`mem_req_o` напрямую подключается к `core_req_i`. + +### mem_we_o + +`mem_we_o` напрямую подключается к `core_we_i`. + +### mem_addr_o + +`mem_addr_o` напрямую подключается к `core_addr_i`. + +### mem_be_o + +По запросу на запись (`core_req_i == 1`, `core_we_i == 1`), если `core_size_i` соответствует инструкции записи байта (`SB`), то в сигнале `mem_be_o` бит с индексом равным значению двух младших бит адреса `core_addr_i` должен быть равен единице. + +Допустим, пришел запрос на запись байта по адресу 18: + +- `core_req_i == 1`, +- `core_we_i == 1`, +- `core_size_i == LDST_B` +- `core_addr_i == 32'b10010` + +В данном случае, необходимо выставить единицу во втором (считая с нуля) бите сигнала `mem_be_o` (поскольку значение двух младших бит `core_addr_i` равно двум): `mem_be_o == 4'b0100`. + +Если пришел запрос на запись полуслова (`SH`, `core_size_i == LDST_H`), то в сигнале `mem_be_o` необходимо выставить в единицу либо два старших, либо два младших бита (в зависимости от `core_addr[1]`) + +Если пришел запрос на запись слова (`SW`, `core_size_i == LDST_W`), то в сигнале `mem_be_o` необходимо выставить в единицу все биты. + +### mem_wd_o + +Сигнал `mem_wd_o` функционально связан с сигналом `mem_be_o`, т.к. они оба выполняют функцию записи конкретных байт в памяти. Допустим процессор хочет записать байт `0xA5` по адресу 18. Для этого он формирует сигналы: + +- `core_req_i == 1`, +- `core_we_i == 1`, +- `core_size_i == LDST_B` +- `core_addr_i == 32'b10010` +- `core_wd_i == 32h0000_00A5` + +Мы уже знаем, что `mem_be_o` должен быть при этом равен `4'b0100`. Однако если в память придут сигналы: + +- `mem_be_o == 4'b0100`, +- `mem_wd_o == 32'h0000_00A5` + +то по адресу 18 будет записано значение `0x00` (поскольку второй байт на шине `mem_wd_o` равен нулю). + +Для того, чтобы по 18-ому адресу записалось значение `A5`, это значение должно оказаться во втором байте `mem_wd_o`. А в случае 17-го адреса, значение должно оказаться в первом байте и т.п. + +Получается, что в случае записи байта, проще всего продублировать записываемый байт во все байты шины `mem_wd_o`, ведь в память запишется только тот, которому будет соответствовать бит `mem_be_o`, равный единице. Дублирование можно осуществить с помощью [конкатенации](../../Basic%20Verilog%20structures/Concatenation.md). + +В случае записи полуслова (`core_size_i == LDST_H`) ситуация схожа, только теперь дублировать надо не 1 байт 4 раза, а полслова (16 младших бит шины `core_wd_i`) два раза. + +В случае записи слова (`core_size_i == LDST_W`), сигнал `mem_wd_o` будет повторять сигнал `core_wd_i`. + +### core_rd_o + +Сигнал `core_rd_o` — это сигнал, который будет содержать данные для записи в регистровый файл процессора во время инструкций загрузки из памяти (`LW`, `LH`, `LHU`, `LB`, `LBU`). Для того, чтобы понять как управлять этим сигналом, нужно понять что происходит во время этих инструкций. + +Предположим, по адресам `16-19` лежит слово `32'hA55A_1881`. Чтение по любому из адресов 16, 17, 18, 19 вернет это слово на входном сигнале `mem_rd_i`. В случае инструкции `LB` (`core_size_i == LDST_B`) по адресу 19 (чтение байта, который интерпретируется как знаковое число), в регистровый файл должно быть записано значение `32'hFFFF_FFA5`, поскольку по 19-ому адресу лежит байт `A5`, который затем будет знакорасширен. В случае той же самой инструкции, но по адресу 18, в регистровый файл будет записано значение `32'h0000_005A` (знакорасширенный байт `5A`, расположенный по 18ому адресу). + +Получить нужный байт можно из входного сигнала `mem_rd_i`, но чтобы понять какие биты этого сигнала нас интересуют, необходимо посмотреть на входные сигналы `core_size_i` и `core_addr_i[1:0]`. `core_size_i` сообщит конкретный тип инструкции (сколько нужно взят байт из считанного слова), а `core_addr_i[1:0]` укажет номер начального байта, который нужно взять из `mem_rd_i`. + +В случае инструкции `LH` будет все тоже самое, только знакорасширяться будет не байт, а полуслово. + +А для инструкций `LBU` и `LHU` будет все тоже самое, только результат будет не знакорасширен, а дополнен нулями. + +Для инструкций `LW` на выход `core_rd_o` пойдут данные `mem_rd_i` без изменений. + +### core_stall_o + +Сигнал `core_stall_o` запрещает менять значение программного счетчика на время обращения в память. Этот сигнал должен: + +- стать равным единице в тот же такт, когда пришел сигнал `core_req_i` +- удерживать это значение до тех пор, пока не придет сигнал `mem_ready_i`, но не менее 1 такта (т.е. даже если сигнал `mem_ready_i` будет равен единице, `core_req_i` должен подняться хотя бы на 1 такт). + +Для реализации подобного функционала вам потребуется вспомогательный регистр `stall_reg`, каждый такт записывающий значение выхода `core_stall_o` и следующая таблица истинности для этого выхода: + +![../../.pic/Labs/lab_08_lsu/fig_02.png](../../.pic/Labs/lab_08_lsu/fig_02.png) + +_Рисунок 2. Таблица истинности выхода `core_stall_o`_ + +--- + +## Задание + +Реализовать блок загрузки и сохранения со следующим прототипом: + +```SystemVerilog +module riscv_lsu( + input logic clk_i, + input logic rst_i, + + // Интерфейс с ядром + input logic core_req_i, + input logic core_we_i, + input logic [ 2:0] core_size_i, + input logic [31:0] core_addr_i, + input logic [31:0] core_wd_i, + output logic [31:0] core_rd_o, + output logic core_stall_o, + + // Интерфейс с памятью + output logic mem_req_o, + output logic mem_we_o, + output logic [ 3:0] mem_be_o, + output logic [31:0] mem_addr_o, + output logic [31:0] mem_wd_o, + input logic [31:0] mem_rd_i, + input logic mem_ready_i +); + +``` + +![../../.pic/Labs/lab_08_lsu/fig_03.drawio.png](../../.pic/Labs/lab_08_lsu/fig_03.drawio.png) + +_Рисунок 3. Структурная схема модуля `riscv_lsu`_ + +--- + +### Порядок выполнения задания + +1. Внимательно ознакомьтесь с описанием функционального поведения выходов **LSU**. В случае возникновения вопросов, проконсультируйтесь с преподавателем. +2. Реализуйте модуль `riscv_lsu`. Для этого: + 1. В `Design Sources` проекта с предыдущих лаб, создайте `SystemSystemVerilog`-файл `riscv_lsu.sv`. + 2. Опишите в нем модуль `riscv_lsu` с таким же именем и портами, как указано в [задании](#задание). + 1. При описании обратите внимание на то, что большая часть модуля является чисто комбинационной. В этом плане реализация модуля будет частично похожа на реализацию декодера. + 2. Однако помимо комбинационной части, в модуле будет присутствовать и один регистр. +3. Проверка модуля будет проведена в рамках работы по интеграции модуля **LSU** в процессорную систему.