2 điểm bởi pjhkorea 15 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp

Đây là một mã nguồn mở trước đây tôi đã chia sẻ bên phía BCI, nay đăng lại vì biết đâu có phần nào đó có thể hữu ích cho mọi người.
Mục tiêu là kéo dài thời gian nhàn rỗi để duy trì mức tỏa nhiệt thấp, đồng thời phát hiện nhanh các tín hiệu sạch không nhiễu.
Bằng cách port 1 đoạn mã lên 1 chip và tổ chức theo cấu trúc song song kiểu bàn cờ, khi xuất hiện nhiễu nghiêm trọng như mất tín hiệu cảm biến,
nút đó sẽ yêu cầu các nút lân cận theo bốn hướng đông tây nam bắc đi vòng qua mình, để bằng mọi cách vẫn duy trì được hệ thống.
Mục tiêu là như vậy.

Nội dung bên dưới là triết lý và các chức năng liên quan.

Dự án này tập trung vào việc hiện thực một bộ máy lõi tăng tốc nhiễu và phát hiện tín hiệu thời gian thực được tối ưu cho môi trường nhúng native 64-bit. Bằng cách loại bỏ hoàn toàn các phép toán ma trận đa chiều nặng và phương trình vi phân riêng phần (PDE), hệ thống đạt được hiệu suất cao.

Kiến trúc phần cứng cơ bản chịu nhiều ràng buộc lớn trong xử lý thời gian thực tần số cao do nhiễu điện và hiện tượng rơi tín hiệu cảm biến. Bộ máy này giải quyết vấn đề đó ở cấp độ phần mềm bằng cách tận dụng topology chip dựa trên mảng lưới chi phí thấp. Thay vì máy tính bo mạch đơn (SBC) đắt tiền, nó sử dụng một lưới vi điều khiển (MCU) giá rẻ chỉ giao tiếp với các láng giềng trực tiếp của mình (đông, tây, nam, bắc). Hãy hình dung một bố cục phần cứng dày đặc dạng bàn cờ, được tạo thành từ các chip MCU siêu nhỏ, giá rẻ. Cấu trúc này bảo đảm thời gian thực thi mang tính quyết định (deterministic) và cung cấp khả năng chịu lỗi (fault tolerance) vượt trội.

Đạt 0% cache miss nhờ thanh ghi vô hướng phẳngĐể đáp ứng vòng lặp 1kHz mang tính quyết định nghiêm ngặt, chúng tôi đã loại bỏ hoàn toàn mảng đa chiều (float[][]) và cách truy đuổi con trỏ (pointer chasing). Thay vào đó, toàn bộ thuật toán được làm phẳng hoàn toàn xuống cấp thanh ghi vô hướng (p00, p11). Nhờ vậy, FPU native 64-bit có thể ánh xạ trực tiếp các thanh ghi và thực thi phép tính trong một chu kỳ xung nhịp duy nhất.

Xoay trạng thái không phân nhánh (xử lý if với jitter bằng 0)Để ngăn CPU phải flush pipeline, các câu điều kiện (if) đã bị loại bỏ hoàn toàn khỏi đường thực thi lõi. Việc giảm nhiễu được xử lý mượt mà thông qua cơ chế xoay trạng thái theo phương dọc của layer 1, cơ chế này dùng phép quay liên tục để notch filter hiệu quả nhiễu năng lượng cao.

Scaling thời gian thực bằng xấp xỉ hữu tỉ Padé [1/1]Việc gọi các hàm siêu việt nặng như exp() bên trong vòng lặp tần số cao là một rủi ro lớn đối với timing của CPU nhúng. Bộ máy này thay thế chúng bằng xấp xỉ hữu tỉ Padé, biến đường cong hàm mũ thành một phương trình số học đơn giản. Điều này cắt giảm mạnh chi phí tính toán cần thiết cho continuous mapping.

Đi vòng trên mesh không dùng vi phân (cô lập lỗi tự trị)Khi một nút cụ thể gặp nhiễu kéo dài và cực mạnh hoặc mất tín hiệu vật lý, layer 1 sẽ tự động kích hoạt apoptosis cục bộ và broadcast tín hiệu cô lập tới các nút lân cận. Thay vì tính lại các phương trình vi phân riêng phần nặng trên toàn bộ lưới, bộ máy áp dụng phép ghép dấu âm chéo trục (-) lên các đầu ra lân cận. Mẹo toán học thông minh này tạo ra vorticity (curl) theo chiều kim đồng hồ một cách tự phát, giúp dòng tín hiệu đi vòng mượt mà theo hướng chéo quanh vùng chết cho đến khi nút lỗi phục hồi về trạng thái ổn định.

1 bình luận

 

Nếu bạn quan tâm đến trình lập lịch nhúng tuần hoàn pha khung gầm ba lớp có tích hợp kernel chuyển mạch cách ly hằng số dạng ngoài, chúng tôi sẽ rất cảm kích nếu bạn xem fluxmesh_constant_slot_test.hREADME4-3.md.