#Microcode
The "jmp" instructions look almost high level, for microcode, and vaguely Perl-ish. Is that how it's actually repsented in microcode?
September 26, 2026 at 5:06 PM
Credits: I've been working on this with the members of the "Opcode Collective", especially Smartest Blob and
@gloriouscow.bsky.social, who used ML to convert ROM images to microcode data and extensively analyzed the contents.
7/7
September 26, 2026 at 5:00 PM
The 8087 chip implements its algorithms in microcode, specialized low-level code inside the chip. By examining the microcode ROM under a microscope, the Opcode Collective extracted the bits and I reverse-engineered the algorithm.
September 26, 2026 at 5:00 PM
How do computers calculate complicated trig functions such as tangent? I took a look at Intel's 8087 floating-point chip under the microscope to find out. The chip combines two techniques to evaluate the tan function quickly and accurately: polynomials and an algorithm called CORDIC...
September 26, 2026 at 5:00 PM
Want the full origin story? The floppy began as a mainframe microcode loader at IBM in 1967 — and 5 billion were sold annually at their mid-1990s peak. 💾

IBM History: Floppy disk storage
Floppy disk — Wikipedia
September 23, 2026 at 9:57 PM
[September 22nd, 1986] A federal judge ruled that microchip microcode is protected by U.S. copyright law. In a case between Intel and NEC, Judge William Ingram found that microcode resembles software. The court did not rule on whether NEC's specific actions were illegal.
September 22, 2026 at 8:03 PM
I bought eight i9-14900Ks, replaced seven, and refused to give up on the last dying bastard. This is the debugging trail from Kernel-Power 41 and random bugchecks to the tiny +50 mV offset that finally shut the crashes up.
i9-14900Ks the last bastard
Intel has been costing me money for a while now. To be fair, it has also made me money in the stock market with those delicious dividends, so apparently this is a toxic relationship with benefits. The fact is, you've probably heard about the i9-14900K disaster. Unless you were high or in some kind of trance, you probably heard something about it. These processors became a massive headache for a lot of people because of a microcode-related degradation problem. And guess what: I bought **eight of them** at the end of 2023. Man, I've never won the lottery. But somehow, when it comes to getting lucky with defective hardware, I'm fucking gifted. And the story of those eight doesn't get any prettier. It gets worse. At the time, I imported the processors. Four arrived. Four disappeared in transit. I had to get into endless arguments with the logistics system until, many months later, they finally agreed to reimburse me so I could buy replacements. Honestly, if I had known the headache those little beauties were going to give me, I would've asked them to set fire to the ship they came on. The problem had a weird name: `Kernel-Power 41 (0x00020001)` Something like the name of Elon Musk's fortieth child. Basically, the bug worked like this: **PC uses very little power. PC crashes.** This shit nearly drove Intel into bankruptcy. I managed to replace seven of the eight processors that failed, but I refused to replace one of them. That one started failing two weeks ago, roughly a year and a half after the last one had been replaced. And somehow this final CPU pissed me off more than all the others. It had survived this long. I needed to cure it. I **was going to cure it**. Knowing the problem had something to do with power consumption, blah blah blah, and knowing that my BIOS was properly updated while the problem still persisted, I came up with a plan. ## The machine Component | What it is ---|--- CPU | Intel Core i9-14900K, Raptor Lake, Family 6 Model 183 Stepping 1 Motherboard | ASRock B660M Phantom Gaming 4, LGA1700, B660 chipset, DDR4 Memory | 4× Kingston Fury `KF3600C18D4/32GX`, 128 GB, running at JEDEC 2400 MT/s with XMP disabled BIOS | 14.01, dated 09/30/2025, microcode `0x147` System | Windows 11 Pro 26200, with VBS/HVCI enabled Two things on that list matter more than they seem. The microcode was already newer than `0x12B`, which was Intel's mitigation for the degradation problem affecting 13th- and 14th-generation CPUs. And HVCI being enabled meant the Windows hypervisor was active all the time, a detail that would later explain the error code. Event Viewer had recorded three reboots on August 28, 29 and 30. All three showed `Kernel-Power 41`, followed by bugcheck `0x00020001`, which is `HYPERVISOR_ERROR`. Two initial checks eliminated some obvious suspects. **No WHEA events.** Windows had not recorded a single hardware error in the previous 72 hours. That weighed against a PCIe bus failure or a classic CPU machine-check. **Nothing in the minutes before the crashes.** I filtered the System and Application logs for the three minutes before each crash, looking for errors and warnings. Nothing. All three crashes were instantaneous. The system didn't even have time to leave a trail before falling over. That already told me something. A driver that slowly shits itself usually leaves evidence behind, normally some kind of timeout. Here, there was nothing. ## The minidumps Windows stores minidumps in: C:\Windows\Minidump But the folder requires administrative privileges even to list its contents, and the machine didn't have a debugger installed. So I solved both problems at once. I installed WinDbg with: winget install Microsoft.WinDbg Then I used the `cdb.exe` bundled with it and pointed it at Microsoft's symbol server: set _NT_SYMBOL_PATH=srv*C:\symbols*https://msdl.microsoft.com/download/symbols cdb.exe -z <dump>.dmp -c "!analyze -v; q" The first result was specific enough to look like an answer: BUGCHECK_CODE: 20001 Arg1: 0000000000000011, An unhandled exception occurred in the hypervisor. STACK_TEXT: nt!KeBugCheckEx nt!HvlSkCrashdumpCallbackRoutine nt!KiProcessNMI nt!KxNmiInterrupt nt!KiNmiInterrupt nt!HvcallInitiateHypercall nt!HvlRequestProcessorHalt nt!PpmIdleExecuteTransition nt!PoIdle nt!KiIdleLoop MODULE_NAME: intelppm IMAGE_NAME: intelppm.sys FAILURE_BUCKET_ID: 0x20001_1_..._intelppm!HvRequestIdle The stack is read from bottom to top. The processor enters an idle state through `KiIdleLoop` and `PoIdle`. Intel's power-management driver asks the core to sleep through `intelppm` and `HvlRequestProcessorHalt`. The call reaches the hypervisor, an NMI fires, and the whole thing turns into a bugcheck. The machine was crashing **while sitting there doing nothing**. Two of the three crashes happened in the middle of the night, while the PC was idle. ## The pattern that changed the diagnosis If the story had ended there, the obvious conclusion would've been: > The problem is `intelppm.sys`. Except the crashes kept happening, and the error codes started changing. Date | Bugcheck | Module pointed at | Context ---|---|---|--- Aug 28–30 | `0x00020001` `HYPERVISOR_ERROR` | `intelppm.sys` | Idle, entering C-state Sep 3 | `0x0000007E` access violation / `0xC0000005` | `nvlddmkm.sys` | NVIDIA driver Sep 7 | `0x00000154` `UNEXPECTED_STORE_EXCEPTION` | — | Memory exception Sep 11 | `0x00020001` `HYPERVISOR_ERROR` | `nt` / `ntkrnlmp.exe` | Under load, during an `NtCreateFile` That last one was the useful bastard. The stack showed a completely ordinary file operation: NtCreateFile → IopCreateFile → ObpLookupObjectName → IofCallDriver And then an NMI interrupted it. The process running at the time was Resilio Sync, which had done absolutely nothing wrong. It just happened to be the poor asshole standing next to the body when the police arrived. This is the reasoning that finally cracked the case: **A broken driver usually fails in the same way.** Different bugcheck codes appearing in completely unrelated subsystems point to the layer underneath all of them. The CPU screws up a calculation wherever it happens to be working, and the crash gets blamed on whatever happened to be nearby. The NVIDIA driver crash is the most misleading example. Graphics code is heavy and runs constantly, so it's often where an unstable CPU trips first. A lot of people end up replacing their GPU because of this. And `HYPERVISOR_ERROR` follows the same logic. With HVCI enabled, the hypervisor is always active. When the CPU produces an invalid result, the hypervisor may simply be the first thing to notice and bring the system down. The hypervisor was the detector. It wasn't the culprit. ## What it wasn't The dead ends are worth documenting because they may save someone else from wasting the same damn time. **Outdated microcode.** The machine was already on `0x147`, newer than Intel's `0x12B` mitigation. There wasn't another magical update left to fix this. **Minimum processor state.** Windows was already configured with the minimum processor state at 100%, and the crashes still happened. This is a common point of confusion. That setting controls the **P-state** , meaning frequency. The failure was happening when entering a **C-state** , meaning the core was going to sleep. Different layers. One does not protect you from the other. **ParkControl and similar tools.** For the same reason, they wouldn't help. Those tools change core parking and frequency scaling, not C-states. And no software utility is going to repair an electrical failure. **Memory.** I ran MemTest86 for an entire night and got exactly zero errors. That test wasn't optional. I was on the fourth processor, and when four parts fail in basically the same way, it's perfectly reasonable to start wondering whether some other component is the actual asshole. With the RAM clean, the CPU moved right back to the top of the suspect list. **Factory BIOS defaults.** I reflashed the BIOS and loaded Intel's defaults. That did have a real effect, but only a partial one. The crash frequency went from **three crashes in 48 hours** to **one every four days**. It spread them out. It didn't cure anything. ## Vmin shift At that point, the whole picture matched the known degradation problem affecting Intel's 13th- and 14th-generation processors, the so-called **Vmin shift**. The chip degrades over time and starts needing more voltage than it used to need in order to remain stable. The problem shows up first where voltage is lowest, which is exactly when the CPU is idle. That explained both situations: At first, it crashed while idle, when voltage dropped. Later, as degradation progressed, it also began crashing under load. ## The fix The solution was to give back the voltage margin that degradation had taken away. A small increase in core voltage. On the ASRock BIOS, the path was: `OC Tweaker → Voltage Configuration` Then: * `CPU Core/Cache Voltage` → **Offset Mode** * `Offset Voltage (mV)` → **50** * `CPU Core/Cache Load-Line Calibration` → **Level 3** * Intel Performance profile kept enabled: * PL1: **125 W** * PL2: **253 W** * ICCMAX: **307 A** Two stupid little details cost me an entire failed attempt. First, the field is in **millivolts** , not volts. Entering `0.050` doesn't work. The correct value is: 50 Second, changing the mode to **Offset** is not enough. On my first attempt, I changed the mode but left the actual value field on **Auto** , which means that in practice no offset gets applied at all. I found that out in HWMonitor, which showed: IA Voltage Offset 0 mV Voltage 0 +0.00 Volts (IA Offset) Checking whether the setting actually took effect is just as important as changing the damn setting. ## Making the evidence collect itself I didn't want to depend on noticing every crash manually, so I created a Windows Scheduled Task triggered by the `Kernel-Power 41` event and configured it to run as `SYSTEM`. Whenever a crash happens, it records the date, bugcheck code and parameters in a log, then copies the minidump to an accessible folder. That way, the evidence is already waiting for me before I even sit down at the machine. ## And then... nothing The baseline was September 11 at 11:28, on the first boot with the offset actually active. Eleven days later, the system log had recorded **zero bugchecks**. No Event `1001`. No new minidumps. Three `Kernel-Power 41` events did appear on September 16, 17 and 19, but all of them had: Bugcheck=0x0 PowerButton=0 That's the signature of a power loss, and those were shutdowns I had caused myself. A real crash always left a non-zero bugcheck code and a dump. The full progression looked like this: Configuration | Crashes ---|--- Old BIOS | 3 in 48 hours Intel factory defaults | 1 every 4 days +50 mV offset | 0 in 11 days So, after eight cursed processors, seven replacements, disappearing shipments, random bugchecks, fake suspects, hypervisor errors, NVIDIA getting framed for a crime it didn't commit, and more time staring at Event Viewer than any human being should willingly spend... the last bastard finally shut up. * * *
pablomurad.com
September 22, 2026 at 7:37 AM
music
movies
microcode
high-speed burrito taxi
September 21, 2026 at 6:21 PM
Awesome way to upcycle! Just be mindful that 2011-era hardware may have unpatched firmware vulnerabilities. Keep your kernel and microcode updated to mitigate risks. It’s a great way to give old tech a second life!
September 21, 2026 at 1:50 PM
Gotta love proprietary microcode blobs 💀🔫
September 20, 2026 at 11:48 AM
'Vibe coder' sounds like someone who writes embedded microcode for a sex toy.
September 19, 2026 at 2:37 AM
“Unexpected behavior” in applications used to be bugs in programs because someone made a mistake in the code. Make no mistake: AI is made up of algorithms written by humans. Programs only do what humans tell them to do.

Algorithms include Excel macros all the way to processor microcode.
September 17, 2026 at 8:43 AM
[RSS] Microcode in Intel's 8087 floating-point chip: the scale instruction


www.righto.com ->


Original->
September 15, 2026 at 10:27 AM
If two people write exactly the same program, each should be put into microcode and then they certainly won’t be the same.

#programming #pearls
September 15, 2026 at 6:13 AM
Just being disconnected from Meta is a huge plus, of course. That FEX works so well is no minor feat either, having microcode be functionally agnostic about intermediates is such a win.
September 14, 2026 at 5:10 PM
@atax1a
I wonder whether there's enough room in the microcode patch facility in recent x86 processors to implement it.
The main complexity of it in the 360/67 and 370 is that they have to run it twice, once as a preflight to determine whether it will hit any page faults, because they use […]
Original post on mastodon.social
mastodon.social
September 14, 2026 at 4:44 AM
📰 Microcode in Intel's 8087 floating-point chip: the scale instruction

🔗 https://www.righto.com/2026/09/8087-microcode-reverse-engineering-fscale.html

💬 Discuss on HN
September 13, 2026 at 5:29 PM
📰 **Analyzing the FScale Instruction in Intel’s 8087 FPU**

During his continuing analysis of the architecture and microcode of Intel’s highly influential 8087 floating point unit (FPU) co-processor, [Ken Shirriff] has now arrived at the point where […]

[Original post on igeek.gamer-geek-news.com]
September 13, 2026 at 2:01 PM
**Analyzing the FScale Instruction in Intel’s 8087 FPU**

During his continuing analysis of the architecture and microcode of Intel’s highly influential 8087 floating point unit (FPU) co-processor, [Ken Shirriff] has now arrived at the point where he can put […]

[Original post on poliverso.org]
September 13, 2026 at 2:05 PM