Motor escalar híbrido integrado de 32/64 bits para procesamiento de señales en tiempo real
(github.com/PJHkorea)Este es un proyecto de código abierto que antes compartí en el ámbito de BCI, y lo comparto por si alguna parte pudiera serles útil.
El objetivo es mantener largos tiempos de inactividad para conservar una baja generación de calor, mientras se detectan rápidamente señales limpias y sin ruido.
La idea era portar un código por chip y formar una estructura paralela tipo tablero de ajedrez, de modo que, cuando se produjera ruido severo como la pérdida de una señal del sensor,
el nodo afectado indicara a los nodos vecinos al este, oeste, sur y norte que lo rodearan para mantener el sistema funcionando de cualquier manera.
A continuación se describen la filosofía y las funciones relacionadas.
Este proyecto se centra en implementar un motor central de aceleración de ruido y detección de señales en tiempo real, optimizado para entornos embebidos nativos de 64 bits. Logra una alta eficiencia al eliminar por completo las operaciones pesadas con matrices multidimensionales y las ecuaciones diferenciales parciales (PDE).
La arquitectura básica de hardware tiene grandes limitaciones al procesar en tiempo real a alta frecuencia debido al ruido eléctrico y a la pérdida de señal de los sensores. Este motor resuelve ese problema a nivel de software utilizando una topología de chips basada en una disposición de cuadrícula de bajo costo. En lugar de usar una costosa single-board computer (SBC), emplea una cuadrícula de microcontroladores (MCU) económicos que solo se comunican con sus vecinos directos (este, oeste, sur y norte). Pueden imaginar una disposición de hardware densa, con forma de tablero de ajedrez, compuesta por chips MCU ultrapequeños y de muy bajo costo. Esta estructura garantiza tiempos de ejecución determinísticos y ofrece una excelente tolerancia a fallos.
Logro de 0% de fallos de caché mediante registros escalares planosPara cumplir con un estricto tiempo de bucle determinístico de 1 kHz, se abandonaron por completo los arreglos multidimensionales (float[][]) y el enfoque de pointer chasing. En su lugar, todos los algoritmos se aplanaron por completo al nivel de registros escalares (p00, p11). Con esto, la FPU nativa de 64 bits puede mapear directamente los registros y ejecutar operaciones dentro de un solo ciclo de reloj.
Rotación de estado sin bifurcaciones (procesamiento if con jitter cero)Para evitar flushes en el pipeline de la CPU, se eliminaron por completo las sentencias condicionales (if) de la ruta de ejecución principal. La mitigación de ruido se maneja de forma fluida mediante el mecanismo de rotación vertical de estado de la capa 1, que utiliza rotación continua para aplicar notch filtering de manera eficaz al ruido de alta energía.
Escalado en tiempo real usando aproximación racional de Padé [1/1]Invocar funciones trascendentales pesadas como exp() dentro de un bucle de alta frecuencia es un gran riesgo para el temporizado de una CPU embebida. Este motor las reemplaza con una aproximación racional de Padé, convirtiendo la curva exponencial en una ecuación aritmética simple. Esto reduce drásticamente el costo computacional necesario para el mapeo continuo.
Desvío de malla sin derivadas (aislamiento autónomo de fallos)Si en un nodo específico se produce ruido persistente y severo, o una pérdida física de señal, la capa 1 activa automáticamente una apoptosis local y transmite una señal de aislamiento a los nodos vecinos. En lugar de recalcular ecuaciones diferenciales parciales pesadas en toda la cuadrícula, el motor aplica un acoplamiento de signo negativo (-) de eje cruzado a las salidas adyacentes. Este ingenioso truco matemático genera una vorticidad espontánea en sentido horario, desviando suavemente el flujo de señal en diagonal alrededor de la zona muerta hasta que el nodo defectuoso recupere un estado estable.
1 comentarios
Si a alguien le interesa el scheduler embebido de circulación de fase en triple chasis con kernel de conmutación de aislamiento constante externo integrado, le agradecería que revisara
fluxmesh_constant_slot_test.hyREADME4-3.md.