mirror of
https://github.com/MPSU/APS.git
synced 2025-11-20 06:50:41 +00:00
Изменение регистра в ссылках на заголовки (#151)
По умолчанию, якоря на параграфы страницы генерируются в VSCode в нижнем регистре. Гиперссылки работают нормально при просмотре страниц непосредственно в репозитории github, но при просмотре в электронной книге mdbook, эти гиперссылки не открываются. Для того чтобы они работали, необходимо чтобы регистр якорей ссылки совпадал с регистром параграфов страницы. --------- Co-authored-by: Andrei Solodovnikov <voultboy@yandex.ru>
This commit is contained in:
@@ -2,29 +2,29 @@
|
||||
|
||||
## Содержание
|
||||
|
||||
- [Лекция 14. Подсистема прерывания](#лекция-14-подсистема-прерывания)
|
||||
- [Содержание](#содержание)
|
||||
- [Определение](#определение)
|
||||
- [Сканирование-входов](#сканирование-входов)
|
||||
- [Передача управления при прерывании](#передача-управления-при-прерывании)
|
||||
- [Классификация событий прерывания](#классификация-событий-прерывания)
|
||||
- [Основные характеристики прерываний](#основные-характеристики-прерываний)
|
||||
- [Допустимые моменты прерывания программы](#допустимые-моменты-прерывания-программы)
|
||||
- [Маски́рование прерывания](#маски́рование-прерывания)
|
||||
- [Способы выявления прерывания](#способы-выявления-прерывания)
|
||||
- [Схемы реализации контроллера прерываний](#схемы-реализации-контроллера-прерываний)
|
||||
- [Контроллер прерывания](#контроллер-прерывания)
|
||||
- [Лекция 14. Подсистема прерывания](#Лекция-14-подсистема-прерывания)
|
||||
- [Содержание](#Содержание)
|
||||
- [Определение](#Определение)
|
||||
- [Сканирование-входов](#Сканирование-входов)
|
||||
- [Передача управления при прерывании](#Передача-управления-при-прерывании)
|
||||
- [Классификация событий прерывания](#Классификация-событий-прерывания)
|
||||
- [Основные характеристики прерываний](#Основные-характеристики-прерываний)
|
||||
- [Допустимые моменты прерывания программы](#Допустимые-моменты-прерывания-программы)
|
||||
- [Маски́рование прерывания](#Маскирование-прерывания)
|
||||
- [Способы выявления прерывания](#Способы-выявления-прерывания)
|
||||
- [Схемы реализации контроллера прерываний](#Схемы-реализации-контроллера-прерываний)
|
||||
- [Контроллер прерывания](#Контроллер-прерывания)
|
||||
- [Control and Status Register RISC-V](#control-and-status-register-risc-v)
|
||||
- [Подсистема прерываний для RISC-V](#подсистема-прерываний-для-risc-v)
|
||||
- [Программа, реализующая прерывания на ассемблере](#программа-реализующая-прерывания-на-ассемблере)
|
||||
- [Основные материалы лекции](#основные-материалы-лекции)
|
||||
- [Дополнительные материалы к лекции для саморазвития](#дополнительные-материалы-к-лекции-для-саморазвития)
|
||||
- [Подсистема прерываний для RISC-V](#Подсистема-прерываний-для-risc-v)
|
||||
- [Программа, реализующая прерывания на ассемблере](#Программа-реализующая-прерывания-на-ассемблере)
|
||||
- [Основные материалы лекции](#Основные-материалы-лекции)
|
||||
- [Дополнительные материалы к лекции для саморазвития](#Дополнительные-материалы-к-лекции-для-саморазвития)
|
||||
|
||||
## Определение
|
||||
|
||||
**Прерывание** — событие, на которое реагирует процессор.
|
||||
|
||||
_Пример_: Перемещение мыши. Если бы не было прерываний, то процессор был бы вынужден постоянно обращаться к мыши с целью узнать: изменилось ли её положение или нет, стоит ли перерисовать курсор. А это очень ресурсоёмко. Такой подход называется [сканирование входов](#сканирование-входов).
|
||||
_Пример_: Перемещение мыши. Если бы не было прерываний, то процессор был бы вынужден постоянно обращаться к мыши с целью узнать: изменилось ли её положение или нет, стоит ли перерисовать курсор. А это очень ресурсоёмко. Такой подход называется [сканирование входов](#Сканирование-входов).
|
||||
|
||||
### Сканирование-входов
|
||||
|
||||
@@ -90,7 +90,7 @@ _Пример_: Перемещение мыши. Если бы не было п
|
||||
|
||||
Этот метод позволяет реагировать на прерывание на любом такте.
|
||||
|
||||
### Маски́рование прерывания
|
||||
### Маскирование прерывания
|
||||
|
||||
**Маска прерывания** — это регистр, отвечающий за разрешение на прерывание (см. рис. 4). Эта маска побитово перемножается с запросами на прерывание других устройств/модулей. Если в результате перемножения получилась хотя бы одна 1, то формируется сигнал `interrupt`, который подаётся на блок управления процессора.
|
||||
|
||||
@@ -110,7 +110,7 @@ _Пример_: Перемещение мыши. Если бы не было п
|
||||
|
||||
## Схемы реализации контроллера прерываний
|
||||
|
||||
[**Контроллер прерывания**](#контроллер-прерывания) — устройство, которое отвечает за передачу сигнала прерывания процессору и формирование кода причины прерывания.
|
||||
[**Контроллер прерывания**](#Контроллер-прерывания) — устройство, которое отвечает за передачу сигнала прерывания процессору и формирование кода причины прерывания.
|
||||
|
||||
- **Цепочечная схема**
|
||||
|
||||
@@ -191,7 +191,7 @@ _Пример_: Перемещение мыши. Если бы не было п
|
||||
*Рис. 12. Верхняя часть схемы CSR.*
|
||||
|
||||
Она нужна для реализации инструкций для работы с CSR. В зависимости от нужной инструкции у выхода `WD` будет своё значение. На нулевой вход мультиплексора поступают нули, если не требуется запись в регистры.
|
||||
Отдельно стоит отметить, что значение регистра причины прерывания `mcause` берётся из контроллера прерывания. А значение регистра маски прерывании `mie`, которое мы устанавливаем в блоке CSR, отправляется в контроллер прерывания. Давайте рассмотрим устройство контроллера прерывания. У него будет [схема с циклическим опросом](#схемы-реализации-контроллера-прерываний) (см. рис. 13):
|
||||
Отдельно стоит отметить, что значение регистра причины прерывания `mcause` берётся из контроллера прерывания. А значение регистра маски прерывании `mie`, которое мы устанавливаем в блоке CSR, отправляется в контроллер прерывания. Давайте рассмотрим устройство контроллера прерывания. У него будет [схема с циклическим опросом](#Схемы-реализации-контроллера-прерываний) (см. рис. 13):
|
||||
|
||||

|
||||
|
||||
|
||||
Reference in New Issue
Block a user