frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

BIO: The Bao I/O Coprocessor

https://www.bunniestudios.com/blog/2026/bio-the-bao-i-o-coprocessor/
51•zdw•2d ago

Comments

dmitrygr•1h ago
> Above is the logic path isolated as one of the longest combination paths in the design, and below is a detailed report of what the cells are.

which is an argument that "fpga_pio" is badly implemented or that PIO is unsuitable for FPGA impls. Real silicon does not need to use a shitton of LUT4s to implement this logic and it can be done much more efficiently and closes timing at higher clocks (as we know since PIO will run near a GHz)

Retr0id•1h ago
PIO is unsuitable for FPGA impls, that's what the article says.

> If you’re thinking about using it in an FPGA, you’d be better off skipping the PIO and just implementing whatever peripherals you want directly using RTL.

dmitrygr•1h ago
Yes, my point is that the article throws a lot of shade at PIO while the real issue is that the author is trying to shove a third-party FPGA reimpl of it into a place it never belonged. PIO itself is a perfectly good design for what it does and where it does it.
Retr0id•1h ago
It didn't read that way, to me.
bunnie•49m ago
Actually, the PIO does what it does very well! There is no "worse" or "better" - just different.

Because it does what it does so well, I use the PIO as the design study comparison point. This requires taking a critical view of its architecture. Such a review doesn't mean its design is bad - but we try to take it apart and see what we can learn from it. In the end, there are many things the PIO can do that the BIO can't do, and vice-versa. For example, the BIO can't do the PIO's trick of bit-banging DVI video signals; but, the PIO isn't going to be able to protocol processing either.

In terms of area, the larger area numbers hold for both an ASIC flow as well as the FPGA flow. I ran the design through both sets of tools with the same settings, and the results are comparable. However, it's easier to share the FPGA results because the FPGA tools are NDA-free and everyone can replicate it.

That being said, I also acknowledge in the article that it's likely there are clever optimizations in the design of the actual PIO that I did not implement. Still, barrel shifters are a fairly expensive piece of hardware whether in FPGA or in ASIC, and the PIO requires several of them, whereas the BIO only has one. The upshot is that the PIO can do multiple bit-shifts in a single clock cycle, whereas the BIO requires several cycles to do the same amount of bit-shifting. Again, neither good or bad - just different trade-offs.

bunnie•21m ago
As a side note about speed comparisons - please keep in mind the faster speeds cited for the PIO are achieved through overclocking.

The BIO should also be able to overclock. It won't overclock as well as the PIO, for sure - the PIO stores its code in flip-flops, which performance scales very well with elevated voltages. The BIO uses a RAM macro, which is essentially an analog part at its heart, and responds differently to higher voltages.

That being said, I'm pretty confident that the BIO can run at 800MHz for most cases. However, as the manufacturer I have to be careful about frequency claims. Users can claim a warranty return on a BIO that fails to run at 700MHz, but you can't do the same for one that fails to run at 800MHz - thus whenever I cite the performance of the BIO, I always stick it at the number that's explicitly tested and guaranteed by the manufacturing process, that is, 700MHz.

Third-party overclockers can do whatever they want to the chip - of course, at that point, the warranty is voided!

bunnie•1h ago
Hello again HN, I'm bunnie! Unfortunately, time zones strike again...I'll check back when I can, and respond to your questions.
dmitrygr•53m ago
very cool. tiny processors everywhere. but be nice to PIO. PIO is good :)
bunnie•34m ago
Agreed! The PIO is great at what it does. I drew a lot of inspiration from it.
dmitrygr•32m ago
What are your thoughts on efficiency? BIO vs PIO implementing, say, 68k 16-bit-wide bus slave. I know i can support 66MHz 68K bus clock with PIO at 300MHz. How much clock speed would BIO need?
bunnie•10m ago
It depends a lot upon where the processing is happening. For example, you could do something where all the data is pre-processed and you're just blasting bits into a GPIO register with a pair of move instructions. In which case you could get north of 60MHz, but I think that's sort of cheating - you'll run out of pre-processed data pretty quickly, and then you have to take a delay to generate more data.

The 25MHz number I cite as the performance expectation is "relaxed": I don't want to set unrealistic expectations on the core's performance, because I want everyone to have fun and be happy coding for it - even relatively new programmers.

However, with a combination of overclocking and optimization, higher speeds are definitely on the horizon. Someone on the Baochip Discord thought up a clever trick I hadn't considered that could potentially get toggle rates into the hundreds of MHz's. So, there's likely a lot to be discovered about the core that I don't even know about, once it gets into the hands of more people.

jauntywundrkind•1h ago
3 comments on this, from 2d ago, https://news.ycombinator.com/item?id=47469744
mrlambchop•54m ago
I loved this article and had wanted to play with PIO for a long time (or at least, learn from it through playing!).

One thing jumped out here - I assumed CISC inside PIO had a mental model of "one instruction by cycle" and thus it was pretty easy to reason about the underlying machine (including any delay slots etc...).

For this RISC model using C, we are now reasoning about compiled code which has a somewhat variable instruction timing (1-3 cycles) and that introduces an uncertainty - the compiler and understanding its implementation.

I think this means that the PIO is timing-first, as timing == waveform where BIO is clarity-first with C as the expression and then explicit hardware synchronization.

I like both models! I am wondering about the quantum delays however that are being used to set the deadlines - here, human derived wait delays are utilized knowledge of the compiled instructions to set the timing.

Might there not be a model of 'preparing the next hardware transaction' and then 'waiting for an external synchronization' such as an external signal or internal clock, so we don't need to count the instruction cycles so precisely. On the external signal side, I guess the instruction is 'wait for GPIO change' or something, so the value is immediately ready (int i = GPIO_read_wait_high(23) or something) and the external one is doing the same, but synchronizing (GPIO_write_wait_clock( 24, CLOCK_DEF)) as an alternative to the explicit quantum delays.

This might be a shadow register / latch model in more generic terms - prep the work in shadow, latch/commit on trigger.

Anyway, great work Bunnie!

bunnie•35m ago
The idea of the wait-to-quantum register is that it gets you out of cycle-counting hell at the expense of sacrificing a few cycles as rounding errors. But yes, for maximum performance you would be back to cycle counting.

That being said - one nice thing about the BIO being open source is you can run the verilog design in Verilator. The simulation shows exactly how many cycles are being used, and for what. So for very tight situations, the open source RTL nature of the design opens up a new set of tools that were previously unavailable to coders. You can see an example of what it looks like here: https://baochip.github.io/baochip-1x/ch00-00-rtl-overview.ht...

Of course, there's a learning curve to all new tools, and Verilator has a pretty steep curve in particular. But, I hope people give the Verilator simulations a try. It's kind of neat just to be able to poke around inside a CPU and see what it's thinking!

I tried Karpathy's Autoresearch on an old research project

https://ykumar.me/blog/eclip-autoresearch/
38•ykumards•33m ago•1 comments

iPhone 17 Pro Demonstrated Running a 400B LLM

https://twitter.com/anemll/status/2035901335984611412
300•anemll•4h ago•180 comments

Trivy under attack again: Widespread GitHub Actions tag compromise secrets

https://socket.dev/blog/trivy-under-attack-again-github-actions-compromise
83•jicea•1d ago•29 comments

BIO: The Bao I/O Coprocessor

https://www.bunniestudios.com/blog/2026/bio-the-bao-i-o-coprocessor/
52•zdw•2d ago•14 comments

Cyber.mil serving file downloads using TLS certificate which expired 3 days ago

https://www.cyber.mil/stigs/downloads
117•Eduard•3h ago•108 comments

The quadratic problem nobody fixed

https://iev.ee/blog/the-quadratic-problem-nobody-fixed/
21•lalitmaganti•4d ago•1 comments

US govt pays TotalEnergies nearly $1B to stop US offshore wind projects

https://www.lemonde.fr/en/international/article/2026/03/23/us-and-totalenergies-reach-nearly-1-bi...
87•lode•1h ago•29 comments

Digs: Offline-first iOS app to browse your Discogs vinyl collection

https://lustin.fr/blog/building-digs/
16•rlustin•10h ago•4 comments

Bombadil: Property-based testing for web UIs

https://github.com/antithesishq/bombadil
188•Klaster_1•4d ago•74 comments

An unsolicited guide to being a researcher [pdf]

https://emerge-lab.github.io/papers/an-unsolicited-guide-to-good-research.pdf
120•sebg•4d ago•19 comments

I built an AI receptionist for a mechanic shop

https://www.itsthatlady.dev/blog/building-an-ai-receptionist-for-my-brother/
121•mooreds•8h ago•137 comments

Show HN: Threadprocs – executables sharing one address space (0-copy pointers)

https://github.com/jer-irl/threadprocs
42•jer-irl•3h ago•30 comments

Is it a pint?

https://isitapint.com/
121•cainxinth•3h ago•107 comments

Two pilots dead after plane and ground vehicle collide at LaGuardia

https://www.bbc.com/news/articles/cy01g522ww4o
163•mememememememo•11h ago•292 comments

Migrating to the EU

https://rz01.org/eu-migration/
710•exitnode•8h ago•565 comments

Walmart: ChatGPT checkout converted 3x worse than website

https://searchengineland.com/walmart-chatgpt-checkout-converted-worse-472071
321•speckx•3d ago•223 comments

PC Gamer recommends RSS readers in a 37mb article that just keeps downloading

https://stuartbreckenridge.net/2026-03-19-pc-gamer-recommends-rss-readers-in-a-37mb-article/
777•JumpCrisscross•1d ago•357 comments

If DSPy is so great, why isn't anyone using it?

https://skylarbpayne.com/posts/dspy-engineering-patterns/
166•sbpayne•4h ago•100 comments

GitHub appears to be struggling with measly three nines availability

https://www.theregister.com/2026/02/10/github_outages/
367•richtr•8h ago•189 comments

General Motors is assisting with the restoration of a rare EV1

https://evinfo.net/2026/03/general-motors-is-assisting-with-the-restoration-of-an-1996-ev1/
71•betacollector64•3d ago•81 comments

Side-Effectful Expressions in C (2023)

https://blog.xoria.org/expr-stmt-c/
19•surprisetalk•5d ago•1 comments

The gold standard of optimization: A look under the hood of RollerCoaster Tycoon

https://larstofus.com/2026/03/22/the-gold-standard-of-optimization-a-look-under-the-hood-of-rolle...
534•mariuz•1d ago•143 comments

“Collaboration” is bullshit

https://www.joanwestenberg.com/collaboration-is-bullshit/
188•mitchbob•17h ago•89 comments

Reports of code's death are greatly exaggerated

https://stevekrouse.com/precision
546•stevekrouse•1d ago•408 comments

Tin Can, a 'landline' for kids

https://www.businessinsider.com/tin-can-landline-kids-cellphone-cell-alternative-how-2025-9
283•tejohnso•3d ago•230 comments

The future of version control

https://bramcohen.com/p/manyana
629•c17r•1d ago•353 comments

Show HN: The King Wen Permutation: [52, 10, 2]

https://gzw1987-bit.github.io/iching-math/
50•gezhengwen•10h ago•24 comments

Cyberattack on vehicle breathalyzer company leaves drivers stranded in the US

https://techcrunch.com/2026/03/20/cyberattack-on-vehicle-breathalyzer-company-leaves-drivers-stra...
114•speckx•6h ago•149 comments

Can you get root with only a cigarette lighter? (2024)

https://www.da.vidbuchanan.co.uk/blog/dram-emfi.html
154•HeliumHydride•3d ago•30 comments

Nanopositioning Metrology, Gödel, and Bootstraps

https://www.pi-usa.us/en/tech-blog/nanopositioning-metrology-goedel-and-bootstraps
22•nill0•4d ago•3 comments