Skip to content

Отец и Шина: контроль vs данные

«Отец — не сущность. Отец — роль. Просто входной тайл, который открывает шину.»

В Дециме есть два уровня, которые никогда не смешиваются:

  • Контроль доступа — бинарный (Открыто/Закрыто)
  • Данные — градационные (Level16, 0..15)

«Отец» — это не метафизика. Это просто удобное имя для входного тайла, который управляет доступом к общей шине.

Суть

Компонент Что это на самом деле Функция
Отец Входной тайл с флагом BUS_R Открывает/закрывает доступ к шине (0/1)
Сыновья 8 соседних тайлов (Moore neighborhood) Вносят активацию в шину (0..15)
Шина Общий накопитель сигнала Суммирует вклады активных тайлов

Отец не «умнее» и не «выше». Он просто первый в цепочке. Тот, кто получает внешний стимул и решает: «Пора работать».

Топология: 8 соседей, одна шина

        [N]
    [NW]   [NE]
[W]   [Отец]   [E]   ← Шина: общий сигнал
    [SW]   [SE]
        [S]

Как это работает:

  1. Внешний стимул приходит на тайл-«Отец».
  2. Отец проверяет условие: if (stimulus > threshold).
  3. Если да → открывает шину (bus_enabled = true).
  4. 8 соседей вносят свою активацию (0..15) в общую шину.
  5. Суммарный сигнал обрабатывается следующим каскадом.

Это не роутинг. Это — оркестр. Дирижёр (Отец) не играет за музыкантов. Он даёт такт.

В коде

// Любой тайл может быть "Отцом" — просто флаг роли
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 соседей вносят активацию Общий сигнал

«Отец» не говорит за других, а даёт другим возможность говорить.

Читать дальше