Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. How Meta's Muse works, revealed by the 6.8 GB filesystem it sent me(mouse.dev)
    37comments
  2. OpenAI GPT–6 Astra breaks Enigma message that has resisted solution since 2005(cryptocellar.org)
    225comments
  3. Apple has added persistent 'ads' to iOS, and it's driving users crazy(techradar.com)
    139comments
  4. Show HN: Drop – a rootless Linux sandbox with gVisor support(droprun.sh)
    18comments
  5. Jev – a curation of Jev demos on X, tools, skills, and integrations(github.com/amal-david)
    10comments
  6. Can gzip be a language model?(nathan.rs)
    119comments
  7. OpenAI is about to eat Jev's lunch – Arcturus Labs(arcturus-labs.com)
    65comments
  8. MiMo v2.6(xiaomi.com)
    455comments
  9. Spymarks, Not Watermarks(brand.io)
    147comments
  10. Muse, Meta's extraordinarily privileged AI assistant, has a serious 0-day(arstechnica.com)
    14comments
  11. Line Scan Photos from MUNI Heritage Weekend in San Francisco(lawrence.lu)
    15comments
  12. Solitaire Alone Together(solitairealonetogether.com)
    3comments
  13. Teleoperated Humans(jefftk.com)
    11comments
  14. Attention is all you have(alicegg.tech)
    296comments
  15. Transformers Explained Visually(poloclub.github.io)
    81comments
  16. The Economics of Open-Weight Inference(ornn.com)
    2comments
  17. What Sun got wrong(dtrace.org)
    375comments
  18. I said no and Apple said yes(dbushell.com)
    482comments
  19. A font that reads what you wrote(rohanadwankar.github.io)
    36comments
  20. I don't want to read what you didn't write(colinbreck.com)
    383comments
  21. Vacate a Drone Restriction That Criminalized Recording Immigration Agents(eff.org)
    4comments
  22. MiMo-v2.6-Pro: Intelligence, Performance and Price Analysis(artificialanalysis.ai)
    54comments
  23. AMD's random number generator can't generate a 0?(flatassembler.net)
    142comments
  24. AI coding has made CI a bottleneck, so we reworked ours to keep up(linear.app)
    358comments
  25. Engineering Memory: On learning to memorize first 100 digits of pi (2024)(gregorygundersen.com)
    30comments
  26. What It's Like to Work in One of America's Data Centers(wsj.com)
    41comments
  27. AI Has No Wisdom and Neither Will You(alexn.org)
    436comments
  28. 9 Ads per Minute: FIFA Cup 26 – "the price of the beautiful game"(bristol.ac.uk)
    194comments
  29. Divide by depth for instant 3D(gabrieloc.com)
    35comments
  30. Verda (Finland) raises $189M in Series B(verda.com)
    34comments

A Superscalar Out-of-Order x86 Soft Processor for FPGA (2017)

90 pointsby 7y agotspace.library.utoronto.ca
21 comments
7y agoHN ↗

How is this legally handled considering amd owns x86-64 and Intel owns x86?

As long as it's not used in commercial settings, will they pretend not to see it while users are in a legally gray area?

7y agoHN ↗

This is x86 only, and a quick skim of the dissertation suggests that it doesn't implement any post-P6 (Pentium Pro) instructions. The P6 is 24 years old now so presumably all patents are expired?

7y agoHN ↗

The last time I looked, the MMX patents were close to expiry too, and by now they might be.

7y agoHN ↗

MMX is from P5.

P6 supports MMX and later revisions SSE 1.

The next one after P6 is NetBurst, it introduced SSE2 and later revisions SSE3.

7y agoHN ↗

I am by no means an expert in digital design (I have only worked with them as a SWE), but it seems to me that the use cases for a high performance soft processor are pretty few and far between. After all, if you want a fast processor you can get a hard processor with excellent performance/support for less than the FPGA fabric likely cost.

Still a cool piece of tech though.

7y agoHN ↗

Section 1.1 makes a pretty good argument in favor.

7y agoHN ↗

What I am trying to say is that FPGA fabric is expensive, and at some point if you use too much, then it will push you to a new part. Most of the time I would guess it to be cheaper to have a separate processor for more intensive tasks. Of course if you have some IP that is partially implemented in a soft core, then it might not be practical to offload it to an external cpu.

7y agoHN ↗

Actually, I think FPGAs are amazingly cheap compared to what it would cost you to fab a chip of similar specs. A leading-edge FPGA will get you near-leading edge DSPs, memory blocks, SerDes, etc. What you _don't_ get is the frequency of a custom part for the full design (this is the FPGA overhead).

Simple RISC softcores run at 200-400 MHz in modern parts. Couple this with custom softcore accelerators and you can get very performant designs. The biggest issue with deploying FPGAs however is that it's much harder to design for, especially dealing with hard blocks, like memory controllers and PCIe.

7y agoHN ↗

"Couple this with custom softcore accelerators and you can get very performant designs."

Can you elaborate on what these softcore accelerators are or how they work? Might you have any links?

7y agoHN ↗

I don't have good references handy where I am right now, but Hotchips a couple of years ago had many examples, including a Memcache accelerator.

A more down-to-earth example shipped with an Arrow FPGA dev kit I got: they took a software and ported MPG123 (mp3 decoding). They then profiled it and isolated a candidate for acceleration (some moderately wide integer operation). The result saved meaningful amount of CPU cycles and power. (The FPGA board was battery driven, which is still unusual).

7y agoHN ↗

Most decent sized designs, hard or soft, have little processors embedded in them in addition to their core logic. It's an interesting space/time/ease of development trade-off between a special little processor, and doing the same work in just logic.

GPUs are pretty well documented (relatively speaking), so they make a good case study. Generally special processors will handle FIFO pulling (so the part that reads the command lists), DMA engines, power management, video codecs, DRM key management, and some other miscellaneous pieces (like run this code on the GPU' on certain interrupts, instead of interrupting the CPU). And that's all in addition to the shader cores you normally think of as 'the GPU'.

In the past, I've used simple processor cores in FPGAs for motor control.

7y agoHN ↗

This is not for commodity tasks, though. Think reimplementing an old x86 system on FPGA and using it to keep old software (games, utilities, cool demos) properly functioning, even for things that might not work properly with simple software emulation. With Intel now planning to abandon support for the BIOS and for 16-bit and 32-bit system boot in new x86 architectures, an independent reimplementation is something we should have.

7y agoHN ↗

The main use for soft processors is for hybrid designs. Stuff that needs some significant programmable logic for really performance or timing sensitive applications, but where other functionality is better implemented in an easier to program CPU. If you're gonna have to use an FPGA anyway, it is frequently easier/cheaper to just implement a soft core processor versus adding a separate discrete processor (which is more involved than just adding a single chip, you need all the supporting circuitry, interconnects, routing on the board etc).

The other use case is sorta the same thing, but is as a normal CPU with a few custom extensions. Sometimes no manufacturer's product fits your needs well and ASICs are expensive (also difficult to change), so some companies just ship customized CPUs on FPGAs with whatever extensions they need.

Xilinx's Zynq chips (FPGA with an ARM core) have been very successful, which kinda demonstrates that this is an attractive combination.

7y agoHN ↗

Time to market is also sometimes a factor; putting a soft processor onto the unused parts of an FPGA is far easier than bringing up a SoC combining CPU cores with special-purpose compute or IO.

The high-end SSD market has had a lot of FPGA-based products for years, and recently many of them are using any leftover gates to add user-accessible CPUs (or occasionally ML-focused compute resources). It turns out that there are quite a few uses for having a CPU extremely close to your massive pile of data, rather than having a relatively narrow PCIe link between the storage and the CPU. These SSD controllers are usually forced to use pretty large FPGAs in order to have a high enough pin count to manage several TB of flash, and it seems that they often have logic elements to spare.

7y agoHN ↗

Suppose that my board already has an FPGA, and that the choice between a soft CPU and an additional chip hinges on performance. You don't want a fast CPU for no particular reason. Rather, you want a CPU that is fast enough to perform its intended tasks.

7y agoHN ↗

From section 6.8 (p. 69) "Note that the decoder’s microarchitecture design is complete, including the branch predictor design and micro-op sequences for nearly every x86 instruction and behaviour. Our circuit implementation is less complete than our microarchitecture design (implemented as a detailed pipeline simulation)"

Still an impressive work.

7y agoHN ↗

Our microarchitecture achieves 2.7 times the per-clock performance of a performance-tuned Nios II/f, Alteraâ s fastest (RISC-like, single-issue, pipelined) soft processor, and 0.8 times the frequency, for a total performance improvement of 2.2 times.

It'd be very interesting to compare this to RISC-V.

7y agoHN ↗

Note that this the Nios II/f is an in-order CPU, while this is a superscalar CPU. A more relevant benchmark would be the superscalar dual-issue ARM Cortex-A9, illustrated in figure 13.4. It's about the same performance as that one if you average all the benchmarks.

In theory, RISC-V should be at about the same performance as ARMv8 (note that Cortex-A9 is ARMv7): https://news.ycombinator.com/item?id=15343287

7y agoHN ↗

In theory, RISC-V should be at about the same performance as ARMv8

Or POWER9, the cpu with the fastest IPC. And it's RISC.

There's nothing to prevent RISC-V ISA from getting high performance implementations.

7y agoHN ↗

It'd be very interesting to compare this to RISC-V.

BOOM was close to ivy bridge performance in 2016.