From a51d46faaec6d2bfb3eb07970a0f467ea6c1235f Mon Sep 17 00:00:00 2001 From: Andrei Solodovnikov Date: Tue, 11 Nov 2025 13:43:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BD=D0=B8=D1=84=D0=B8=D0=BA=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D0=B8=D0=BC=D0=B5=D0=BD=D0=B8=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=86=D0=B5=D1=81=D1=81=D0=BE=D1=80=D0=B0=20CYBERc?= =?UTF-8?q?obra?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Labs/04. Primitive programmable device/README.md | 14 +++++++------- Labs/05. Main decoder/README.md | 2 +- Labs/06. Main memory/README.md | 2 +- Labs/07. Datapath/README.md | 4 ++-- Labs/README.md | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Labs/04. Primitive programmable device/README.md b/Labs/04. Primitive programmable device/README.md index b46d231..1367413 100644 --- a/Labs/04. Primitive programmable device/README.md +++ b/Labs/04. Primitive programmable device/README.md @@ -10,7 +10,7 @@ ## Цель -Реализовать простейшее программируемое устройство с архитектурой `CYBERcobra 3000 Pro 2.1` +Реализовать простейшее программируемое устройство. ## Ход работы @@ -36,7 +36,7 @@ 4. изменяется значение `PC`; 5. цикл повторяется с `п.1`. -Любая инструкция приводит к изменению состояния памяти. В случае процессора с архитектурой `CYBERcobra 3000 Pro 2.1` есть два класса инструкций: одни изменяют содержимое регистрового файла — это инструкции записи. Другие изменяют значение `PC` — это инструкции перехода. В первом случае используются вычислительные инструкции и инструкции загрузки данных из других источников. Во втором случае используются инструкции перехода. +Любая инструкция приводит к изменению состояния памяти. В случае процессора, рассматриваемого в данной лабораторной работе, есть два класса инструкций: одни изменяют содержимое регистрового файла — это инструкции записи. Другие изменяют значение `PC` — это инструкции перехода. В первом случае используются вычислительные инструкции и инструкции загрузки данных из других источников. Во втором случае используются инструкции перехода. Если процессор обрабатывает вычислительную инструкцию, то `PC` перейдет к следующей по порядку инструкции. В ЛР№3 мы реализовали память инструкций с [побайтовой адресацией](../03.%20Register%20file%20and%20memory/#1-Память-инструкций). Это означает, что каждый байт памяти имеет свой собственный адрес. Поскольку длина инструкции составляет `4 байта`, для перехода к следующей инструкции `PC` должен быть увеличен на `4` (`PC = PC + 4`). При этом, регистровый файл сохранит результат некоторой операции на АЛУ или данные с порта входных данных. @@ -48,9 +48,9 @@ ![../../.pic/Labs/lab_04_cybercobra/logoCC3000.svg](../../.pic/Labs/lab_04_cybercobra/logoCC3000.svg) -В качестве первого разрабатываемого программируемого устройства предлагается использовать архитектуру специального назначения `CYBERcobra 3000 Pro 2.1`, которая была разработана в **МИЭТ**. Главным достоинством данной архитектуры является простота её понимания и реализации. Главным её минусом является неоптимальность ввиду неэффективной реализации кодирования инструкций, что приводит к наличию неиспользуемых битов в программах. Но это неважно, так как основная цель разработки процессора с архитектурой `CYBERcobra 3000 Pro 2.1` — это более глубокое понимание принципов работы программируемых устройств, которое поможет при разработке более сложного процессора с архитектурой **RISC-V**. +В качестве первого разрабатываемого программируемого устройства предлагается использовать архитектуру специального назначения `CYBERcobra 3000 Pro 2.1` (далее "CYBERcobra"), которая была разработана в **МИЭТ**. Главным достоинством данной архитектуры является простота её понимания и реализации. Главным её минусом является неоптимальность ввиду неэффективной реализации кодирования инструкций, что приводит к наличию неиспользуемых битов в программах. Но это неважно, так как основная цель разработки процессора с архитектурой `CYBERcobra` — это более глубокое понимание принципов работы программируемых устройств, которое поможет при разработке более сложного процессора с архитектурой **RISC-V**. -Простота архитектуры `CYBERcobra 3000 Pro 2.1` проявляется, в том числе, за счёт отсутствия памяти данных. Это значит, что данные c которыми работает программа могут храниться только в регистровом файле. Также в таком процессоре почти полностью отсутствует устройство управления (формально оно существует, но состоит только из проводов и пары логических вентилей). +Простота архитектуры `CYBERcobra` проявляется, в том числе, за счёт отсутствия памяти данных. Это значит, что данные c которыми работает программа могут храниться только в регистровом файле. Также в таком процессоре почти полностью отсутствует устройство управления (формально оно существует, но состоит только из проводов и пары логических вентилей). Архитектурой предусмотрена поддержка 19 инструкций (5 типов команд): @@ -97,7 +97,7 @@ _Рисунок 0. Размещение на схеме основных бло ![../../.pic/Labs/lab_04_cybercobra/ppd_code_1.png](../../.pic/Labs/lab_04_cybercobra/ppd_code_1.png) -_Таблица 1. Кодирование вычислительных инструкций в архитектуре CYBERcobra 3000 Pro v2.1._ +_Таблица 1. Кодирование вычислительных инструкций в архитектуре CYBERcobra._ ``` C reg_file[WA] ← reg_file[RA1] {alu_op} reg_file[RA2] @@ -258,7 +258,7 @@ _Таблица 5. Кодирование безусловного перехо Кроме того, при безусловном переходе в регистровый файл также ничего не пишется. А значит, необходимо обновить логику работы сигнала разрешения записи `WE`, который будет равен 0 если сейчас инструкция условного или безусловного перехода. -На _рис. 5_ приводится итоговый вариант микроархитектуры процессора `CYBERcobra 3000 Pro 2.1`. +На _рис. 5_ приводится итоговый вариант микроархитектуры процессора `CYBERcobra`. ![../../.pic/Labs/lab_04_cybercobra/ppd_5.drawio.svg](../../.pic/Labs/lab_04_cybercobra/ppd_5.drawio.svg) @@ -266,7 +266,7 @@ _Рисунок 5. Реализация безусловного переход ### Финальный обзор -Итого, архитектура `CYBERcobra 3000 Pro 2.1` поддерживает 5 типов инструкций, которые кодируются следующим образом (символами `x` помечены биты, которые не задействованы в данной инструкции): +Итого, архитектура `CYBERcobra` поддерживает 5 типов инструкций, которые кодируются следующим образом (символами `x` помечены биты, которые не задействованы в данной инструкции): 1. 10 вычислительных инструкций `0 0 01 alu_op RA1 RA2 xxxx xxxx WA` 2. Инструкция загрузки константы `0 0 00 const WA` diff --git a/Labs/05. Main decoder/README.md b/Labs/05. Main decoder/README.md index b17f104..e78b46a 100644 --- a/Labs/05. Main decoder/README.md +++ b/Labs/05. Main decoder/README.md @@ -32,7 +32,7 @@ _Рисунок 1. Микроархитектура будущего процессорного ядра._ -Предложенная микроархитектура похожа на микроархитектуру процессора **CYBERcobra 3000 Pro 2.0** из ЛР№4, но с некоторыми изменениями. +Предложенная микроархитектура похожа на микроархитектуру процессора `CYBERcobra` из ЛР№4, но с некоторыми изменениями. В первую очередь изменились входы и выходы процессора: diff --git a/Labs/06. Main memory/README.md b/Labs/06. Main memory/README.md index fa2a91d..2b3eb59 100644 --- a/Labs/06. Main memory/README.md +++ b/Labs/06. Main memory/README.md @@ -1,6 +1,6 @@ # Лабораторная работа 6 "Основная память" -Процессор CYBERcobra 2000 использовал в качестве основного хранилища данных регистровый файл, однако на практике 31-го регистра недостаточно для выполнения сложных программ. Для этих целей используется **основная память**, роль которой в нашей системе будет выполнять **память данных**. +Процессор `CYBERcobra` использовал в качестве основного хранилища данных регистровый файл, однако на практике 31-го регистра недостаточно для выполнения сложных программ. Для этих целей используется **основная память**, роль которой в нашей системе будет выполнять **память данных**. ## Цель diff --git a/Labs/07. Datapath/README.md b/Labs/07. Datapath/README.md index 5ef7e56..341061e 100644 --- a/Labs/07. Datapath/README.md +++ b/Labs/07. Datapath/README.md @@ -43,7 +43,7 @@ endmodule _Рисунок 1. Микроархитектура ядра процессора RISC-V._ -Предложенная микроархитектура имеет схожую структуру c процессором `CYBERcobra 3000 Pro 2.0` из [ЛР№4](../04.%20Primitive%20programmable%20device/), с некоторыми изменениями. +Предложенная микроархитектура имеет схожую структуру c процессором `CYBERcobra` из [ЛР№4](../04.%20Primitive%20programmable%20device/), с некоторыми изменениями. В первую очередь изменились входы и выходы процессора: @@ -172,7 +172,7 @@ _Листинг 2. Программа из Листинга 1, представ 1. Внимательно ознакомьтесь микроархитектурной реализацией процессорного ядра. В случае возникновения вопросов, проконсультируйтесь с преподавателем. 2. Замените файл `program.mem` в `Design Sources` проекта новым файлом [program.mem](program.mem), приложенном в данной лабораторной работе. Данный файл содержит программу из _листинга 1_. 3. Опишите модуль процессорного ядра с таким же именем и портами, как указано в задании. - 1. Процесс реализации модуля похож на процесс описания модуля cybercobra, однако теперь появляется: + 1. Процесс реализации модуля похож на процесс описания модуля CYBERcobra, однако теперь появляется: 1. декодер 2. дополнительные мультиплексоры и знакорасширители. 2. Сперва рекомендуется создать все провода, которые будут подключены к входам и выходам каждого модуля на схеме. diff --git a/Labs/README.md b/Labs/README.md index 0ed4ece..bdf2b7f 100644 --- a/Labs/README.md +++ b/Labs/README.md @@ -138,7 +138,7 @@ https://github.com/MPSU/APS/assets/17159587/4daac01f-dc9a-4ec8-8d3f-c5dc1ef97119 ## 6. Основная память -Процессор CYBERcobra 2000 использовал в качестве основного хранилища данных регистровый файл, однако на практике 31-го регистра недостаточно для выполнения сложных программ. Для этих целей используется **основная память**. +Процессор `CYBERcobra` использовал в качестве основного хранилища данных регистровый файл, однако на практике 31-го регистра недостаточно для выполнения сложных программ. Для этих целей используется **основная память**. ## 7. Тракт данных