diff --git a/Labs/03. Register file and memory/README.md b/Labs/03. Register file and memory/README.md index 1179b51..3b4af97 100644 --- a/Labs/03. Register file and memory/README.md +++ b/Labs/03. Register file and memory/README.md @@ -33,7 +33,7 @@ В общем случае `V = 2^a * d`. -Для объема памяти в 1 KiB ([кибибайт](https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D0%B1%D0%B8%D0%B1%D0%B0%D0%B9%D1%82), 1024 байта или 8192 бита) разрядность адреса может быть, например, 10 бит (что покрывает 210 = 1024 адреса), тогда разрядность хранимых данных должна быть 8 бит. 1024 * 8 = 8192, то есть 1 кибибайт. Если разрядность адреса составляет 8 бит (что покрывает 28 = 256 адресов), то разрядность данных `d = V / 2^a` это 8192 / 256 = 32 бита. +Для объема памяти в 1 KiB ([кибибайт](https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D0%B1%D0%B8%D0%B1%D0%B0%D0%B9%D1%82), 1024 байта или 8192 бита) разрядность адреса может быть, например, 10 бит (что покрывает 210 = 1024 адреса), тогда разрядность хранимых данных должна быть 8 бит. 1024 * 8 = 8192, то есть 1 кибибайт. Если разрядность адреса составляет 8 бит (что покрывает 28 = 256 адресов), то разрядность данных `d = V / 2^a` это 8192 / 256 = 32 бита. Однако, может быть такое, что не все ячейки памяти реализованы на кристалле микросхемы, то есть некоторые адреса существуют, но по ним не имеет смысла обращаться, а объем памяти, соответственно, не равен `V ≠ 2^a * d` — он меньше. @@ -70,7 +70,7 @@ _Рисунок 2. Структурная схема логического бл Для реализации многопортовой памяти небольшого размера лучше воспользоваться расположенным в логическом блоке D-триггером (**DFF** на _рис. 2_). Несмотря на то, что D-триггер позволяет воспроизвести только 1 разряд элемента памяти, он не ограничивает реализацию по портам. -Таким образом, преимущество распределенной памяти относительно регистровой заключается в лучшей утилизации ресурсов: одним трёхвходовым LUT можно описать до 8 бит распределенной памяти, в то время как одним D-триггером можно описать только один бит регистровой памяти. Предположим, что в ПЛИС размещены логические блоки, структура которых изображена на _рис. 2_ и нам необходимо реализовать 1KiB памяти. Мы можем реализовать распределенную память, используя 64 логических блока (в каждом блоке два трёхвходовых LUT), либо регистровую память, используя 1024 логических блока. +Таким образом, преимущество распределенной памяти относительно регистровой заключается в лучшей утилизации ресурсов: одним трёхвходовым LUT можно описать до 8 бит распределенной памяти, в то время как одним D-триггером можно описать только один бит регистровой памяти. Предположим, что в ПЛИС размещены логические блоки, структура которых изображена на _рис. 2_ и нам необходимо реализовать 1 KiB памяти. Мы можем реализовать распределенную память, используя 64 логических блока (в каждом блоке два трёхвходовых LUT), либо регистровую память, используя 1024 логических блока. Недостатком является ограниченность в реализации многопортовой памяти. diff --git a/Labs/13. Peripheral units/README.md b/Labs/13. Peripheral units/README.md index f229c00..4109f77 100644 --- a/Labs/13. Peripheral units/README.md +++ b/Labs/13. Peripheral units/README.md @@ -28,7 +28,7 @@ ### Адресное пространство -Архитектура RISC-V подразумевает использование совместного адресного пространства — это значит, что в лабораторной работе будет использована единая шина для подключения памяти и регистров управления периферийными устройствами. При обращении по одному диапазону адресов процессор будет попадать в память, при обращении по другим – взаимодействовать с регистрами управления/статуса периферийного устройства. Например, можно разделить 32-битное адресное пространство на 256 частей, отдав старшие 8 бит адреса под указание конкретного периферийного устройства. Тогда каждое из периферийных устройств получит 24-битное адресное пространство (16 MiB). Допустим, мы распределили эти части адресного пространства в следующем порядке (от младшего диапазона адресов к старшему): +Архитектура RISC-V подразумевает использование совместного адресного пространства — это значит, что в лабораторной работе будет использована единая шина для подключения памяти и регистров управления периферийными устройствами. При обращении по одному диапазону адресов процессор будет попадать в память, при обращении по другим – взаимодействовать с регистрами управления/статуса периферийного устройства. Например, можно разделить 32-битное адресное пространство на 256 частей, отдав старшие 8 бит адреса под указание конкретного периферийного устройства. Тогда каждое из периферийных устройств получит 24-битное адресное пространство (16 MiB). Допустим, мы распределили эти части адресного пространства в следующем порядке (от младшего диапазона адресов к старшему): 0. Память данных 1. Переключатели @@ -697,7 +697,7 @@ _Рисунок 4. Отрисовка символа `F` в разрешении Данный символ состоит из 16 строчек по 8 пикселей. Каждый пиксель кодируется одним битом (горит/не горит, цвет символа/фоновый цвет). Каждая строчка кодируется одним байтом (8 бит на 8 пикселей). Таким образом, каждый символ в шрифте требует 16 байт памяти. -Данный модуль поддерживает 256 символов. Следовательно, для хранения шрифта под каждый из 256 символов требуется 16 * 256 = 4KiB памяти. +Данный модуль поддерживает 256 символов. Следовательно, для хранения шрифта под каждый из 256 символов требуется 16 * 256 = 4 KiB памяти. Для хранения шрифтов в модуле отведён диапазон адресов `0x00002000-0x00002FFF`. В отличие от предыдущих диапазонов адресов, где каждый адрес был закреплён за соответствующей позицией символа в сетке `80x30`, адреса данного диапазона распределены следующим образом: diff --git a/Lectures/21. Microcontrollers.md b/Lectures/21. Microcontrollers.md index 6502eda..83a389d 100644 --- a/Lectures/21. Microcontrollers.md +++ b/Lectures/21. Microcontrollers.md @@ -49,7 +49,7 @@ 5. EEPROM (электрически перезаписываемая программируемая память); 6. PWM (Pulse-width modulation или широтно-импульсная модуляция); 7. Waveform generator (генерирует сигналы); -8. Цифро-аналоговый преобразователь (ЦАП или DAG) и другие. +8. Цифро-аналоговый преобразователь (ЦАП или DAC) и другие. Микроконтроллеры внутри рассматриваемого семейства отличаются размером памяти, количеством ножек, аналогово-цифровых преобразователей и максимальной аналогово-цифровой разрешающей способностью. @@ -60,7 +60,7 @@ Например: - это RISC контроллер, поддерживающий 48 инструкций; -- его входная тактовая частота — 32 MHz, минимальный тактовый цикл — 125 ns (величина критического пути); +- его входная тактовая частота — 32 MHz, минимальный тактовый цикл — 125 ns (величина критического пути); - Он имеет C-компилятор, систему прерываний, 16-уровневый стек для вызова подпрограмм, четыре 8-битых таймера, Watchdog Timer (когда таймер досчитывает до конца, он сбрасывает микроконтроллер, то есть перезапускает его. Он нужен для того, чтобы избежать зависаний во время работы) и т.д. Данный микроконтроллер имеет 3 конфигурации: с 8-ю, 14-ю и 16-ю ножкам. @@ -127,7 +127,7 @@ Посмотрим 32-битный ARM микроконтроллер [STM32H723VE](https://www.st.com/en/microcontrollers-microprocessors/stm32h723ve.html). -Видим, что у данного контроллера ядро Cortex-M7, он работает на частоте 550MHz, имеет 1 MB флэш-памяти, 564 KB оперативной памяти. +Видим, что у данного контроллера ядро Cortex-M7, он работает на частоте 550 MHz, имеет 1 MB флэш-памяти, 564 KB оперативной памяти. ![../.pic/Lectures/21.%20Microcontrollers/fig_11.png](../.pic/Lectures/21.%20Microcontrollers/fig_11.png) @@ -216,6 +216,7 @@ Cortex-A9 — более современное, чем ARM7 и ARM9, ядро. Современные реализации микроконтроллеров могут включать в себя несколько ядер. ![../.pic/Lectures/21.%20Microcontrollers/fig_16.png](../.pic/Lectures/21.%20Microcontrollers/fig_16.png) + *Рис. 16. Cortex-A7 и Cortex-A15.* При использовании двух ядер, одно может быть мене производительным чем другое, но при этом потреблять меньше энергии и использоваться в сценариях, где не нужна высокая эффективность. Переключения между ядрами позволяет балансировать между затратами на энергию и производительностью.