Replies: 9 comments 15 replies
-
|
Добрый день! |
Beta Was this translation helpful? Give feedback.
-
Вам как раз-таки будет удобней, если вы будете выполнять все лабораторные работы в одном проекте, т.к. все модули, которые вы описываете в конечном итоге будут объединены в одну процессорную систему. В противном случае, вам придется каждый раз перенстраивать проект и добавлять в него модули из предыдущих лабораторных работ. Касательно ссылок — мне известна эта проблема, но я пока не знаю как подступиться к её решению. Судя по всему, вы читаете курс со страницы https://mpsu.github.io/APS. В этом представлении ссылки на разделы чувствительны к регистру (иными словами, ссылка Labs/02%20ALU#задание будет работать только если в документе будет раздел "задание" именно с маленькой буквы). При этом, если читать материалы со страницы самого репозитория, чувствительности к регистру нет. Эта проблема вскрылась на довольно поздних этапах написания курса и я пока не нашел в себе силы исправить все такие ссылки). Помимо прочего я хотел бы ещё раз выразить свою признательность за такой обширный фидбэк и предложить отправить вам экземпляр печатного издания в качестве благодарности. Если вас это заинтересует, мне потребуется ваш почтовый адрес и ФИО (их можно прислать на почту hepoh3@gmail.com). |
Beta Was this translation helpful? Give feedback.
-
Распределенная память тоже может менять свое значение в процессе работы, для этого логика ПЛИС, которая используется для программирования памяти на этапе конфигурации переопределяется таким образом, чтобы она работала и в процессе работы дизайна.
Можно просто сконфигурировать логический блок таким образом, чтобы он выполнял только роль 1-битной ячейки памяти (подробней о комбинациях функционала ЛБ) Затем, собрав набор таких ячеек, добавим поверх них логику мультиплексирования адресов для записи, и демультиплексирования адресов для чтения:
|
Beta Was this translation helpful? Give feedback.
-
Сложный для восприятия вопрос, попробую объяснить то как его понял. В задании предлагается реализовать память с 512-ю 32-битными ячейками. Для того чтобы индексироваться по такому массиву 32-битных ячеек, требуется 9 бит (т.к. 2^9=512). Но 512-ть 32-битных ячеек занимают 512*4=2048 байт, поэтому для байтовой адресации нам необходимо уже 11 бит. Процессор обязан использовать именно такие байтовые адреса. Допустим процессор хочет обратиться к 5-му байту. Этот байт будет находиться в 1-й ячейке памяти (счёт ведется с нуля, в 0-ой ячейке хранятся 0-3 байты, в первой ячейке: 4-7). Получается, чтобы понять, к какой ячейке памяти нам нужно обратиться, мы должны разделить пришедший от процессора адрес на 4. Спецификация RISC-V использует байтовую адресацию, 32-битный RISC-V процессор использует 32-битный адрес для указания любого из 2^32 байт (не 32-битных ячеек) памяти. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Я сперва начну издалека, а потом перейду к памяти инструкций.
Поскольку мы используем кучу инструкций доступа к памяти с разными объемами данных, при вычислении адреса будет куда проще, если мы будем представлять память как массив байт, нежели чем массив другой гранулярности (например 32-битных слов). В этом случае достаточно указать адрес начального байта загружаемой единицы (байта/слова/полуслова) и указать какую порцию данных мы хотим получить. Если бы была пословная адресация, в случае инструкции lb приходилось бы считать, в каком слове памяти находится искомый байт (делить нацело адрес на 4). В первых архитектурах иногда использовали пословную адресацию, но насколько мне известно, это был вынужденный ход, позволявший расширить адресное пространство (в пересчете на байты это адресное пространство в 4 раза больше). Возвращаясь к памяти инструкций. Во-первых, хоть в нашем процессоре инструкции и будут только 32-битные, спецификация RISC-V поддерживает расширение в виде набора сжатых инструкций, где каждая инструкция занимает только 16-бит. |
Beta Was this translation helpful? Give feedback.
-
|
Насчет слайда из презентации. Картинка в методичке иллюстрирует то, как будет накладываться байтовое представление памяти, какой ее видит процессор на реальный блок памяти, который хранит данные в виде 32битных ячеек. |
Beta Was this translation helpful? Give feedback.
-
В ЛР№4 предлагается в качестве контрольной точки остановиться и реализовать простейший процессор из тех блоков, что были сделаны на первых 3-х лабораторных работах. Это еще не процессор архитектуры RISC-V, у него нет памяти данных, только регистровый файл, и он может выполнять только 16 инструкций, но этого уже достаточно, чтобы писать простенькие программы по обработке данных. Начиная с ЛР№5 уже происходит подготовка в реализации полноценного однотактного процессора архитектуры RISC-V. Несмотря на то, что показанная в этой лабораторной микроархитектура будет реализованна только к ЛР№11, в ЛР№5 уже нужно знать как будет устроен будущий процессор, чтобы понять какие сигналы декодера за что будут отвечать в будущем. |
Beta Was this translation helpful? Give feedback.







Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Здравствуйте!
Сейчас изучаю этот курс, в процессе накопилось некоторое количество предложений о правках, которые сделали ли бы текст немного чище и точнее, на мой взгляд.
Чтобы вам ознакомиться с ними, прикрепляю ниже ссылку на онлайн-документ, в нем собраны мои находки разной степени важности. Можете их удалять(предоставил права на редактирование) по мере внесения изменений или просто, если считаете их не существенными или некорректными, так как я где-то ошибся.
По мере прочтения/выполнения новые находки я тоже думаю добавлять в документ.
Ссылка: https://disk.yandex.ru/i/XdnZNQK7bPSuNA
Beta Was this translation helpful? Give feedback.
All reactions