Корректировка конспектов лекций (#131)

* Корректировки конспектов лекций

* Корректировка конспекта лекции 5

* Корректировка конспекта лекции 8

* Корректировка конспекта лекции 9

* Корректировка конспекта лекции 10

* Корректировка конспекта лекции 11

* Корректировка конспекта лекции 12

* Корректировка конспекта лекции 13

* Корректировка конспекта лекции 12

* Корректировка конспекта лекции 14

* Корректировка конспекта лекции 16

* Корректировка конспекта лекции 17

* Корректировка конспекта лекции

* Корректировка конспекта лекции 20

* Корректировка конспекта лекции 21

* Корректировка конспекта лекции 22

* Корректировка конспекта лекции 23

* Корректировка конспекта лекции 13

* Корректировка конспекта лекции 12

* Корректировка конспекта лекции 20
This commit is contained in:
markast555
2025-06-22 16:54:22 +03:00
committed by GitHub
parent 773af1088c
commit 469f42e7f5
16 changed files with 116 additions and 111 deletions

View File

@@ -114,7 +114,7 @@ _Пример_: Перемещение мыши. Если бы не было п
- **Цепочечная схема**
От процессора идет сигнал подтверждения `ПДТ`, который приходит только тогда, когда процессор готов обработать какое-то прерывание (см. рис. 5.). Этот сигнал приходит на вход первого устройства, которое, в случае необходимости, выдаёт процессору сигнал на прерывание и вектор прерывания. Если же в прерывании от первого устройства нет необходимости, то сигнал подтверждения передаётся на следующее устройство и т.д. Цепочечная схема проста в реализации, но очень медленная. К тому же в этой схеме некоторые устройства имеют приоритет на другими в очерёдности обработки запроса на прерывание. Также существует вероятность, что до последних устройств никогда не дойдёт сигнал подтверждения, и процессор не обработает их запрос на прерывание.
От процессора идет сигнал подтверждения `ПДТ`, который приходит только тогда, когда процессор готов обработать какое-то прерывание (см. рис. 5.). Этот сигнал приходит на вход первого устройства, которое, в случае необходимости, выдаёт процессору сигнал на прерывание и вектор прерывания. Если же в прерывании от первого устройства нет необходимости, то сигнал подтверждения передаётся на следующее устройство и т.д. Цепочечная схема проста в реализации, но очень медленная. К тому же в этой схеме некоторые устройства имеют приоритет над другими в очерёдности обработки запроса на прерывание. Также существует вероятность, что до последних устройств никогда не дойдёт сигнал подтверждения, и процессор не обработает их запрос на прерывание.
![../.pic/Lectures/14.%20Interrupt%20subsystem/fig_05.jpg](../.pic/Lectures/14.%20Interrupt%20subsystem/fig_05.jpg)
@@ -122,7 +122,7 @@ _Пример_: Перемещение мыши. Если бы не было п
- **Схема с циклическим опросом**
Каждый раз, когда в счётчик `СТ` приходит сигнал `C` (тактирование), он увеличивает своё значение (см рис. 6). Затем это значение подаётся на вход дешифратору `DC`, который только на одном выходе выдаёт 1. И каждый такт меняется номер выхода от 0 до N. Если во время обхода всех выходов появится сигнал на прерывание, то этот сигнал отправится на RS триггер, который затем отправит `interrupt` сигнал процессору. А на вход `C` счётчика `CT` будет отправлен 0. В таком случае счётчик перестанет суммировать, и он будет иметь значение кода номера прерывания.
Каждый раз, когда в счётчик `СТ` приходит сигнал `C` (тактирование), он увеличивает своё значение (см. рис. 6). Затем это значение подаётся на вход дешифратору `DC`, который только на одном выходе выдаёт 1. И каждый такт меняется номер выхода от 0 до N. Если во время обхода всех выходов появится сигнал на прерывание, то этот сигнал отправится на RS триггер, который затем отправит `interrupt` сигнал процессору. А на вход `C` счётчика `CT` будет отправлен 0. В таком случае счётчик перестанет суммировать, и он будет иметь значение кода номера прерывания.
![../.pic/Lectures/14.%20Interrupt%20subsystem/fig_06.jpg](../.pic/Lectures/14.%20Interrupt%20subsystem/fig_06.jpg)
@@ -151,19 +151,19 @@ _Пример_: Перемещение мыши. Если бы не было п
| Номер | Привилегия | Имя | Описание |
|:------------|:-----------|:----------|:-----------------------------------------------------------|
| Ox304 | MRW | mie | Регистр маски |
| Ox305 | MRW | mtvec | Регистр вектора прерывания |
| Ox340 | MRW | mscratch | Регистр указателя на стек прерывания |
| Ox341 | MRW | mepc | Регистр адреса инструкции, на котором случилось прерывание |
| Ox342 | MRW | mcause | Регистр причины (кода) прерывания |
| 0x304 | MRW | mie | Регистр маски |
| 0x305 | MRW | mtvec | Регистр вектора прерывания |
| 0x340 | MRW | mscratch | Регистр указателя на стек прерывания |
| 0x341 | MRW | mepc | Регистр адреса инструкции, на котором случилось прерывание |
| 0x342 | MRW | mcause | Регистр причины (кода) прерывания |
Инструкции для работы с CSR:
| Opcode | func3 | Тип | Инструкция | Описание | Операция |
|:----------|:------|:-----|:--------------------|:--------------------------|:------------------------|
| 1110011 | 000 | I | mret | Возврат и прерывание | PC=merc |
| 1110011 | 000 | I | mret | Возврат и прерывание | PC=mepc |
| 1110011 | 001 | I | csrrw rd, csr, rs1 | Чтение/запись CSR | rd = csr, csr=rs1 |
| 1110011 | 010 | I | csrrs rd, csr, rs1 | Чтение/установка бит CSR | rd = csr, csr=rs1\|rs1 |
| 1110011 | 010 | I | csrrs rd, csr, rs1 | Чтение/установка бит CSR | rd = csr, csr=csr\|rs1 |
| 1110011 | 011 | I | csrrc rd, csr, rs1 | Чтение/очистка бит CSR | rd=csr, csr=csr&~rs1 |
## Подсистема прерываний для RISC-V