Отец и Шина: контроль vs данные
«Отец — не сущность. Отец — роль. Просто входной тайл, который открывает шину.»
В Дециме есть два уровня, которые никогда не смешиваются:
- Контроль доступа — бинарный (Открыто/Закрыто)
- Данные — градационные (Level16, 0..15)
«Отец» — это не метафизика. Это просто удобное имя для входного тайла, который управляет доступом к общей шине.
Суть
| Компонент | Что это на самом деле | Функция |
|---|---|---|
| Отец | Входной тайл с флагом BUS_R | Открывает/закрывает доступ к шине (0/1) |
| Сыновья | 8 соседних тайлов (Moore neighborhood) | Вносят активацию в шину (0..15) |
| Шина | Общий накопитель сигнала | Суммирует вклады активных тайлов |
Отец не «умнее» и не «выше». Он просто первый в цепочке. Тот, кто получает внешний стимул и решает: «Пора работать».
Топология: 8 соседей, одна шина
[N]
[NW] [NE]
[W] [Отец] [E] ← Шина: общий сигнал
[SW] [SE]
[S]
Как это работает:
- Внешний стимул приходит на тайл-«Отец».
- Отец проверяет условие:
if (stimulus > threshold). - Если да → открывает шину (
bus_enabled = true). - 8 соседей вносят свою активацию (0..15) в общую шину.
- Суммарный сигнал обрабатывается следующим каскадом.
Это не роутинг. Это — оркестр. Дирижёр (Отец) не играет за музыкантов. Он даёт такт.
В коде
// Любой тайл может быть "Отцом" — просто флаг роли
typedef struct {
uint8_t activation; // 0..15 (Level16)
uint8_t neighbors[8]; // Индексы соседей: N,NE,E,SE,S,SW,W,NW
bool is_gate; // Роль: этот тайл управляет шиной?
} Tile;
// Шина — общий ресурс
typedef struct {
uint16_t signal; // Суммарный сигнал от соседей
Ключевое:
- «Отец» — это не отдельный тип. Это роль, которую может выполнить любой тайл.
- Шина — общий ресурс, не point-to-point.
- Контроль (бинарный) отделён от данных (градационных).
Философски (без мистики)
«Власть — это не быть особенным. Власть — быть первым в цепочке.»
| Принцип | Архитектурно | Философски |
|---|---|---|
| Роль > Сущность | Любой тайл может быть «Отцом» | Лидерство — это функция, не природа |
| Доступ > Содержание | Отец решает «когда», соседи — «что» | Свобода слова ≠ свобода говорить всегда |
| Локальность > Глобальность | 8 соседей, не вся сеть | Влияние распространяется волной, не скачком |
«Отец» — это не бог, а первая костяшка домино в цепочке.
Почему разделение контроля и данных — это важно
| Проблема | Если смешано | Если разделено |
|---|---|---|
| Трассировка | «Кто решил?» — непонятно | Лог: «Отец открыл шину в 15:32:01.020» |
| Отладка | Контроль влияет на данные | Контроль и данные — независимые логи |
| Верификация | Нужно проверять всё вместе | Можно проверить доступ отдельно от содержимого |
| Безопасность | Сбой в данных = сбой контроля | Сбой в данных ≠ сбой контроля доступа |
| Масштабирование | Каждый тайл = свой контроллер | Один «Отец» на кластер тайлов |
Разделение ответственности = устойчивость системы.
Практически
| Преимущество | Как помогает в B2B |
|---|---|
| Энергия | Шина выключена, когда не нужна → экономия |
| Безопасность | «Отец» может заблокировать «сбойного соседа» |
| Трассировка | Лог доступа + лог данных = полная картина |
| Отладка | Можно тестировать контроль без данных и наоборот |
| ASIC | Одна шина на чип → меньше слоёв металла |
Аналогия из реального мира
| Система | «Отец» | «Сыновья» | Шина |
|---|---|---|---|
| Семья | Родитель начинает разговор | Дети говорят, что думают | Семейный совет |
| Оркестр | Дирижёр даёт такт | Музыканты играют ноты | Звук в зале |
| Сеть | Роутер открывает канал | Устройства передают пакеты | Общий кабель |
| Decima-8 | Тайл-«Отец» открывает шину | 8 соседей вносят активацию | Общий сигнал |
«Отец» не говорит за других, а даёт другим возможность говорить.