NullStarfish/HwOS: HwOS 1.1 : Ownership, Functional Hardware, and Zero-Bubble Concurrency
Authors/Creators
Description
🚀 Release Notes: HwOS v1.1.0 - The "Functional Hardware" & Observability Update
We are thrilled to announce the release of HwOS v1.1.0. This update represents a major paradigm shift in Thread-Level RTL (TL-RTL) design. We have moved away from rigid, explicit driver boundaries and fully embraced a bottom-up Ownership Model, Functional Hardware (HwFunction), and Semantic Observability.
This release equips designers with OS-level capabilities—including hardware garbage collection and time-travel debugging—without sacrificing a single cycle of performance.
🔥 Major Features & Architectural Shifts
1. Bottom-Up Ownership Model & ACL
We have deprecated the heavy PhysicalDriver abstraction. Instead, resources are now managed via a decentralized Ownership Model.
HwOwnerTrait: Hardware logic agents (Threads/Daemons) now explicitlyownphysical resources andgrantAccess Control List (ACL) permissions to other agents.- Context-Gated Assignment (
<==): A new physical assignment operator that automatically gates wire driving based on the thread'sisActivestate. If a thread dies, its physical assignments are safely severed.
2. Functional Hardware (HwFunction)
Hardware logic is no longer tightly coupled to the state machine container.
- Treat your
HardwareThreadas the CPU and theHwFunctionas the Program. - Hardware logic can now be passed around, nested, and invoked seamlessly using
SysCall.Call(), enabling true functional RTL design.
3. HwOSgdb: Source-Level Semantic Debugger
Say goodbye to guessing FSM states from flat VCD waveforms. We've introduced HwOSgdb, an ncurses-based TUI debugger powered by SystemVerilog DPI-C and Verilator.
- Dual-Track CallStack: The compiler now exports
hwos.symbols, tracking both the macro-temporal stack (Thread calls) and the micro-combinational tree (Atomic unrolling). - Live Telemetry & Time-Travel: Step through your code cycle-by-cycle, scroll back through the History Buffer to pinpoint deadlocks, and view exact
Stepnames and active drivers in real-time.
4. Hardware Garbage Collection (OS Reaper & HwLease)
Killing a hardware thread no longer results in permanent deadlocks over shared resources.
HwLease: Stateful resource locks (like Mutexes) are now formalized as contracts and registered into the thread's PCB (HwContext).- The OS Reaper: When a thread is terminated (
SysCall.kill), the OS Reaper steps in, bypassing user-space ACLs using the privileged<==!operator to forcefully reclaim leases and tear down locks.
đź› Compiler & Safety Upgrades
- Zero-Bubble
Next.hijack(): We've transformed FSM state transitions.hijackis now a powerful compiler-level metaprogramming directive. It intercepts AST generation during elaboration, inlining the next step's closure into the current cycle to achieve true 0-cycle, zero-bubble state transitions without runtime MUX overhead. - Context-Aware Safety (
ContextScope): Hardware generation is now sandboxed into strict execution scopes (ThreadCtx,AtomicCtx,LogicCtx). The compiler will statically block you from writing PC-mutating sequential logic inside a pure combinational datapath, ensuring Correct-by-Construction hardware. - First-Class Lifecycle Delegation: Thread lifecycles are now treatable as standard hardware signals. Using
grantLifecycle(), a parent can spawn a worker and hand over its execution control to a background OS scheduler or daemon logic.
📦 Standard Library (HwOS.stdlib)
HwOS 1.1.0 ships with a highly optimized, out-of-the-box concurrency standard library:
Mutex&Semaphore: Featuring distributed priority encoders for fair, multi-client lock arbitration.WaitGroup: Utilizes concurrent adder-trees and single-cyclePopCountto safely synchronize multiple worker threads resolving in the exact same clock cycle.Scoreboard&ScoreboardRegfile: A plug-and-play architectural component demonstrating how to completely decouple raw memory datapaths from complex RAW/WAW hazard scheduling logic.
⚠️ Breaking Changes
PhysicalDriveris deprecated. Migrate your resource wrappers to inherit fromHwProcessand utilize theHwOwnerAPI (own,grant).Thread.start()andThread.kill()have been moved to the globally accessibleSysCallobject (SysCall.start(target),SysCall.kill(target)).- Standard
:=assignments insideStepblocks should be replaced with<==to ensure lifecycle-gated safety, unless driving unmanaged combinational logic.
Files
NullStarfish/HwOS-v1.1.0.zip
Files
(483.5 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:2aac205abb289a2b4cd61a16729c62c5
|
483.5 kB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/NullStarfish/HwOS/tree/v1.1.0 (URL)
Software
- Repository URL
- https://github.com/NullStarfish/HwOS