6 ms·
F8 – an 8 bit architecture designed for C and memory efficiency [video]
- dirkt 2y agohttps://github.com/f8-arch https://github.com/f8-arch
- ruslan 2y agoHow does F8 compare to RV16 in terms of resources (die size) used and performance ?
- kjs3 2y agoHow does it compare to AVR, another "8 bit architecture designed for C..."?
- userbinator 2y agoThe amount of research (or lack thereof) into whether the name was already taken in the same domain is disappointing. For me, F8 will always be this: https://en.wikipedia.org/wiki/Fairchild_F8 https://en.wikipedia.org/wiki/Fairchild_F8
- makapuf 2y agoQuestion was raised (and answered) at 16:35 on the video.
- drfuchs 2y agoThe speaker’s claim that it’s hard to find a two-character name that hasn’t already been used for a CPU architecture seems ridiculous on its face. And his tone seems to indicate that he knows that (to me, anyway). I programmed the real F8 back in the day, so I’m quite defensive about it. It’s most charming quirk: doing a long jump clobbers the accumulator.
- kjs3 2y ago[flagged]
- sjsdaiuasgdia 2y agoFunnily enough, I did a quick search and immediately found an E8 processor - https://www.andestech.com/en/products-solutions/andescore-processors/v3-e8/ https://www.andestech.com/en/products-solutions/andescore-pr... Wasn't quite as strong a match for "G8", but G[n] does show up in a lot of product descriptions to indicate what generation of the product is involved. LG also put out a phone named the G8 Thinq in 2019. I would generally agree with the speaker that it's hard not to collide when using a 2 character name. The "for a CPU architecture" narrows the collision space substantially, which does affect the full accuracy of the statement. But the spirit of "2 char IDs are collision prone" is true.
- kjs3 2y agoOh, wow...never heard of the E8 or Andes, but I guess RISC-V startups are thick on the ground these days. And I can't imagine searching for G8 and not getting carpet bombed with hits for HP servers. But the fundamental question is still "why would you even want a 2 character ID in a world where searching for it (even without the massive historical name collision with F8) will make it fruitless to search for".
- Joker_vD 2y agoWhat a strange variation on Z80, extending it with 16-bit wide data paths... Who needs that? We have enough 16-bit ISAs around already, including PDP-11, original 8086 and even 65C816.
- kjs3 2y agoMSP430 has entered the chat.
- stevekemp 2y agoThe EZ80 offers enhancements to the Z80, allowing the size of the register-pairs to be 24 bits.. https://en.wikipedia.org/wiki/Zilog_eZ80 https://en.wikipedia.org/wiki/Zilog_eZ80
- imtringued 2y agoI honestly don't see the point. I personally would prefer a CPU architecture with as wide a memory bus as possible. All the way to 16384 bit and at least 4, but preferably 16 cores, each core with at least 1 MiB of on chip SRAM. Now that would be useful to me.
- kjs3 2y agoYou need 16 cores and 16MB+ of memory to control a toaster? A water heater? The washing machine? At the cheapest possible BoM and low power usage? Because that's the kind of stuff an 8-bit micro does.
- glouwbug 2y agoNo one dreamed of controlling a toaster with an 8 bit CPU in 1969
- kjs3 2y agoFaggin started the 4004 in '69 and Hoff was pushing off the bat for it to be more than a calculator chip so it could be used as a general purpose processor. So they might not have specifically been 'dreaming of controlling a toaster', they and others were clearly dreaming about similar control tasks, like printers. They wrote the history down, first person...you might check it out. Or, gee, was the comment intended to tell us how you tied an onion to your belt in 1969 (which was the style at the time) and made toast as the good lord intended without any newfangled chips in the way, up hills both ways, and we should all get off your lawn? /s
- burjui 2y agoI wonder what's the point. 8 bits is not enough to store most values for most applications, it's bad for timers and multiplication, it's just a big waste of CPU cycles in general. The more work CPU has to do, the less time it spends sleeping, which is bad for battery-powered embedded devices. Perhaps, it has its place somewhere, but realistically, an 8-bit CPU these days is very niche at best. Imho, it's not going to take off in mainstream embedded.
- osigurdson 2y agoI haven't use these in a long time but fairly certain the memory address is more like 16 bit (otherwise, yeah how could you do anything). Still with 8 bit instructions many ops require several instructions. If that doesn't matter and it needs to be super cheap / small / etc., I think that is why these exist.
- boesboes 2y agoIt's a 9 billion market, projected to grow at 5-6% per year. And flipping/storing more bits also use more power, it is a trade off.
- PaulHoule 2y agoPersonally I'm a fan of AVR-8 which has 32 8-bit registers so if you want to do 16-bit or 24-bit or 32-bit or 40-bit math you can do it just fine, it just takes longer. The biggest AVR-8 device has about 8k of RAM and about 240k of rewritable program ROM. Those are on different buses so it can suck down an instruction at the same time it transfers data, and clocked at 16 MHz it beats the pants off any of the 8-bit micros of 1980. You're not going to create really large systems for it, but if you want to work a gas pump or a hot water heater or make a tester for 74xx chips or a display controller for persistence of vision displays it is great. You can code for it in C but I feel like I'm strangling puppies when I do it because it is moving the stack pointer around and doing things to support C calling conventions that I don't really need for the programs I write [1] AVR-8 assembly is fun but I still write C for it because if I need a bigger device I can recompile it for ESP32 or ARM. Something weird about AVR-8 is that it does not have a unified address space, so in the case of that display controller, it is easy to spool graphic data out of the ROM, not so easy to upload a small amount into RAM (via serial port) and combine that with data from the ROM. I've had the crazy idea of making a AVR-8 on AVR-8 emulator (would get me to A-rank if not S-rank on AVR-8 assembly) which would make it possible to upload tiny programs into RAM but that probably requires software emulation of unified pointers for program memory. [1] https://betterembsw.blogspot.com/2014/07/dont-overflow-stack.html https://betterembsw.blogspot.com/2014/07/dont-overflow-stack...
- dmitrygr 2y agoThere already is an 8bit architecture designed for C: AVR
- v1ne 2y agoYep, and AVR-8 has excellent documentation, is easy to learn and I find really fun to work with. Honestly, AVR-8 is the reason I'm really into low-level hardware. If I would have started with amd64, I guess I would have given up long before.
- nxobject 2y agoThere's also an 8-bit architecture designed for emulating 32-bit architectures: AVR! (https://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bit https://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bi... ... and, yes, that's the joke, it's still an amazing hack more than a decade later!)
- artemonster 2y agoOh, looks interesting, lets check out the architecture documentation! searching.... Ah, found it: Makefile and manual.tex... Yeah, f off :)
- Joker_vD 2y agoWhile I agree that repos with docs should have "releases", in GitHub parlances, with compiled PDFs/ebooks/whatever, building it yourself is as simple as git clone https://github.com/f8-arch/doc.git f8-doc && cd f8-doc docker run --rm -v "$(pwd)":/data fabtesta/ubuntu-xelatex make # or any other container with XeLaTeX that you trust xdg-open manual.pdf The future is now, old man.
- artemonster 2y agoI know how to do it. The sheer audacity that I am being asked to do it rubs me the wrong way. Once I am on my phone, then I am on my work pc with no rights. Then by the time I got home i have lost my interest
- PhilipRoman 2y agoOut of curiosity, what would you prefer? I wouldn't say tex is my all time favorite format, but definitely better than 90% of the documentation solutions out there.
- artemonster 2y agoA clickable PDF. Dont ask me to jump through loops and hoops to read about your stuff
- stevefan1999 2y agoC is undeniably a legendary programming language, but it's time to move beyond the constraints of the C abstract machine, which was heavily shaped by the PDP-11 due to Unix's origins on that architecture. C feels outdated for modern computing needs. It lacks features like lambda calculus, closures, and coroutines—powerful and proven paradigms that are essential in modern programming languages. These limitations make it harder to fully embrace contemporary programming practices. The dominance of C and its descendants has forced our systems to remain tied to its design, holding back progress. Intel tried to introduce hardware assisted garbage collection, which unfortunately failed miserably because C doesn't need it, and we are still having to cope with garbage collection entirely in software. While I’m not suggesting we abandon C entirely (I still use it, like when writing C FFI for some projects), we need to explore new possibilities and move beyond C to better align with modern architectures and programming needs.
- codr7 2y agoI'm pretty sure the second there is a significantly better alternative that offers the same flexibility and control, plenty of people will jump. Same for C++. Assuming everyone else is an idiot leads nowhere worth going.
- ff317 2y agohttps://ziglang.org/ https://ziglang.org/ is a solid future C-replacement, IMHO. There's pretty much no downsides and all upsides from a C hacker's perspective. It just hasn't reached 1.0 yet!
- flohofwoe 2y agoZig is a nice language, but from a 10000 ft view it's not fundamentally different from C (thankfully) - at least from the CPU's point of view. Any hardware that's a good match for C is also a good match for Zig.
- baranul 2y agoNot everyone thinks of Zig as a "no downsides and all upsides" C-replacement. First, a lot of people will take issue with it still being in beta and it being unknown how many more years will it take to reach 1.0. There are a bunch of C-replacements, or at least viable alternative languages out there. Both old and new. With more "C-killers" likely to pop-up in the not so distant future. There are also a lot of people, after doing their Zig language reviews, that don't like it. Muratori (Handmade Hero) won't touch it and there was a recent article that's been covered on here and other sites, where the person explained why they stopped using it (linked below). https://strongly-typed-thoughts.net/blog/zig-2025 https://strongly-typed-thoughts.net/blog/zig-2025 (Zig; what I think after months of using it)
- restalis 2y agoFor people comparing this to existing solutions: this is an open-source work, ready for anyone with chip production capability, with no product licensing involved or due royalties to be paid. And, given chip's simplicity, the production capability needs are not that high. Existing chip manufacturers may provide a good and convenient ready available solutions, but that's just a different thing (with you merely as a chip manufacturer's client). This is the vertical integration option, if you need it.