Регистры и шина: дисциплина общего провода
Паспорт модуля
| Параметр | Значение |
|---|---|
| Аудитория | 🟡🔴; 🟢 — занятие 1 (регистры) в упрощении; пройдены М5–М6 |
| Аутентичная задача | собрать регистры A и B и общую 8-битную шину — «нервную систему» процессора, по которой пойдут все данные М13 |
| Объём | 4 занятия × 90 мин |
| Оборудование | 74HC173 ×4 (по два корпуса 4 бита на регистр) или 74HC377+74HC245, 74HC245 ×2, линейки светодиодов с буферами, узел CLK из М6, RP2350-монитор |
| Ограничения | 5 В; шинный конфликт = перегрев — правило «одного передатчика» отрабатывается до автоматизма |
Аутентичная задача. После модуля обучающиеся смогут: переслать байт из регистра A в регистр B через общую шину одним тактом, управляя сигналами AO/BI вручную, — это половина любой будущей команды процессора.
Цели
| № | Обучающиеся … | Блум—Андерсон | Миллер | Проверка |
|---|---|---|---|---|
| 1 | объясняют three-state выход и правило «на шине один передатчик» | понимать | знает | квиз |
| 2 | собирают 8-битный регистр с сигналами загрузки (·I) и выдачи (·O) | применять | показывает как | практикум |
| 3 | пересылают данные A→шина→B, управляя сигналами вручную с DIP | применять | показывает как | демонстрация пересылки |
| 4 | диагностируют шинный конфликт и «пустую шину» по симптомам | анализировать | показывает как | дебаг-кейс |
Оценивание
| Занятие | Цель | Средство | Тип |
|---|---|---|---|
| 2 | 1, 2 | регистр проходит сценарии: загрузка по фронту при AI=1, хранение при AI=0 | формирующее |
| 3 | 3 | «эстафета байта»: 0x5A проходит A→B→A без искажений (контроль RP2350-монитором) | формирующее |
| 4 | 4 | дебаг-кейс: 2 заложенные неисправности (конфликт, вечная «пустая шина»), лимит 25 мин, протокол | итоговое |
Путь и разборы
| № | Тема | Разминка | Ядро |
|---|---|---|---|
| 1 | Регистр 8 бит | фронт vs уровень (М5) | worked example 74HC173: тактируемая загрузка, входы разрешения; два корпуса = один байт; индикация всегда через отдельный буфер, не с шины |
| 2 | Выход на шину | 3 вопроса зан. 1 | 74HC245: DIR, /OE; сигнал AO открывает буфер регистра A на шину |
| 3 | Пересылка A→B | сценарии регистра | ручное «микропрограммирование» DIP-переключателями: AO=1, BI=1, такт; затем AO=0 |
| 4 | Дебаг шины | кумулятивный квиз М5–М7 | кейс конфликтов + подключение RP2350-монитора как штатной практики |
flowchart TB
BUS(("ШИНА 8 бит")):::bus
A[Регистр A\nAI загрузка / AO выдача] <--> BUS
B[Регистр B\nBI / BO] <--> BUS
MON[RP2350-монитор\nтолько слушает] --> BUS
classDef bus fill:#f5f5f5,stroke:#333
Дисциплина шины — главный концепт модуля. В каждый момент времени ровно один источник держит шину (его /OE активен), остальные — в высокоимпедансном состоянии Z. Слушать могут все. Сигналы ·I защёлкивают шину в регистр по фронту CLK. Вся будущая работа УУ (М11–М12) — это раздача разрешений «кто говорит, кто слушает» по тактам. Обучающиеся уже на этом модуле вручную исполняют то, что потом автоматизирует микрокод, — приём «сначала руками, потом автоматом» снижает нагрузку при интеграции.
Типичные ошибки и опасности: два открытых /OE одновременно — шинный конфликт: корпуса греются, уровни «серые» (≈2–3 В), возможно повреждение — при первом подозрении снять питание; «пустая шина» (никто не передаёт) — входы читают мусор: для отладки допустимы слабые подтяжки 100 кОм; индикаторные светодиоды прямо на шине искажают уровни — только через буфер; сигналы управления без определённого уровня по умолчанию (все ·O — подтяжка к неактивному).
Уровни
Один 8-битный регистр с индикацией: загрузка/хранение по монтажке.
Два регистра на шине, эстафета байта, дебаг-кейс в лимит времени.
Третий участник шины (регистр B из М4-АЛУ), расчёт нагрузочной способности выхода 74HC (IOH/IOL из даташита) на N входов; вопрос «сколько устройств можно повесить на шину и что ограничивает».