Руководство по интеграции
### Введение в S-CORE v15.3
S-CORE v15.3 представляет собой нативный C++ модуль сверхнизкой задержки (Ultra-Low Latency), скомпилированный под инструкции AVX-512 и FMA. Ядро использует бесконечный цикл опроса (busy-polling) для обработки ценового фида без использования условных переходов в критическом пути исполнения (hot path).
### Архитектура разделяемой памяти (Shared Memory Arena)
Обмен данными между C++ ядром и Python-рантаймом управления происходит через mmap-файл разделяемой памяти `/dev/shm/s_core_v15_3_arena` размером ровно `704 байта`. Для исключения ложного разделения кэш-линий (False Sharing) все структуры данных выровнены по границе `alignas(64)`:
1. **CleanSbeMarketPayload (64 байта)**: Включает временные метки биржи и получения (в наносекундах), последовательность тиков (sequence), цены Bid/Ask (в формате $E8$), скаляр волатильности ATR ($E4$), флаг удержания приоритета Slot 0 и ID актива.
2. **LedgerSnapshot (64 байта)**: Баланс маржи, доступные средства USDC и индикаторы риска.
3. **SharedHotPathMemory (704 байта)**: Объединяет атомарные переменные состояния машины, маски задержек, цену Mid и счетчик итераций.
### Математический AVX-512 контур Хокса (Hawkes MLE)
Интенсивность микроструктурного потока ордеров рассчитывается с помощью Hawkes-процессов. Для вычисления экспоненты в C++ используется SIMD-векторизованная функция `fast_exp512_pd` поверх регистров `__m512d`. В вычислениях отсутствуют ветвления, что предотвращает промахи предсказателя переходов процессора (Branch Misprediction).
### Бесветвистая логика стейт-машины (Branchless State Machine)
Смена состояний ядра (`IDLE`, `SCANNING`, `ACTIVE`, `SPECULATIVE`, `DEFER`, `HALT`) реализована с помощью битовых масок и ассемблерных инструкций условного переноса (CMOV). Вычисление следующего состояния происходит за счет битовых операций:
```cpp
inline constexpr std::uint32_t mask32_if(const bool condition) noexcept {
return 0u - static_cast(condition);
}
inline constexpr std::uint32_t branchless_select_u32(
const std::uint32_t keep, const std::uint32_t replace, const std::uint32_t all_ones_mask) noexcept {
return keep ^ ((keep ^ replace) & all_ones_mask);
}
```
Это гарантирует детерминированное время исполнения каждого тика независимо от рыночных условий.
S-CORE v15.3 представляет собой нативный C++ модуль сверхнизкой задержки (Ultra-Low Latency), скомпилированный под инструкции AVX-512 и FMA. Ядро использует бесконечный цикл опроса (busy-polling) для обработки ценового фида без использования условных переходов в критическом пути исполнения (hot path).
### Архитектура разделяемой памяти (Shared Memory Arena)
Обмен данными между C++ ядром и Python-рантаймом управления происходит через mmap-файл разделяемой памяти `/dev/shm/s_core_v15_3_arena` размером ровно `704 байта`. Для исключения ложного разделения кэш-линий (False Sharing) все структуры данных выровнены по границе `alignas(64)`:
1. **CleanSbeMarketPayload (64 байта)**: Включает временные метки биржи и получения (в наносекундах), последовательность тиков (sequence), цены Bid/Ask (в формате $E8$), скаляр волатильности ATR ($E4$), флаг удержания приоритета Slot 0 и ID актива.
2. **LedgerSnapshot (64 байта)**: Баланс маржи, доступные средства USDC и индикаторы риска.
3. **SharedHotPathMemory (704 байта)**: Объединяет атомарные переменные состояния машины, маски задержек, цену Mid и счетчик итераций.
### Математический AVX-512 контур Хокса (Hawkes MLE)
Интенсивность микроструктурного потока ордеров рассчитывается с помощью Hawkes-процессов. Для вычисления экспоненты в C++ используется SIMD-векторизованная функция `fast_exp512_pd` поверх регистров `__m512d`. В вычислениях отсутствуют ветвления, что предотвращает промахи предсказателя переходов процессора (Branch Misprediction).
### Бесветвистая логика стейт-машины (Branchless State Machine)
Смена состояний ядра (`IDLE`, `SCANNING`, `ACTIVE`, `SPECULATIVE`, `DEFER`, `HALT`) реализована с помощью битовых масок и ассемблерных инструкций условного переноса (CMOV). Вычисление следующего состояния происходит за счет битовых операций:
```cpp
inline constexpr std::uint32_t mask32_if(const bool condition) noexcept {
return 0u - static_cast
}
inline constexpr std::uint32_t branchless_select_u32(
const std::uint32_t keep, const std::uint32_t replace, const std::uint32_t all_ones_mask) noexcept {
return keep ^ ((keep ^ replace) & all_ones_mask);
}
```
Это гарантирует детерминированное время исполнения каждого тика независимо от рыночных условий.