![]() So like software abstractions, we have hardware abstractions which provide higher level constructs for low level software to talk to. Modern mainframes don't even control stuff at that level anymore. So, imagining that an "OS" can control this mess like a 1960's mainframe is nonsense. In some of these cases, the firmware probably isn't even that special, they are doing basically the same thing as every one of their competitors, but you will never get them to admit it. ![]() Every single one of these companies hides their "secret sauce" in the firmware of these devices, be that how to minimize latency on a NVMe device, to how to get maximum throughput on a wifi chip, to how to increase a DRAM controllers power efficiency. None of that is going to be documented anytime in the near future. The worst part isn't looking for the piles of scattered SPI flash eeproms on random boards, its the integrated "Secure" sides of these devices which happen to be all but invisible. So, while I would love if the manufacture of every little USB device or whatever published the full register documentation, firmware listings, whatever, that ship has long sailed. ![]() The last fully open disk stack on a PC was probably an MFM/RLL controller in the mid 1980's. I was reading about some of the latest m.2 NVMe controllers a while back and IIRC there were something like a half dozen independent Arm's just inside the controller. In the past those controllers were isolated to a few areas (disk controllers, higher end network cards), but the drive over the past decade+ for more efficient devices and "universal" packetized buses (ex PCIe, USB), has sprinkled them in places simply to monitor utilization and adjust bus clocks, as well as packet scheduling and error/retry logic, etc, etc, etc. Its just that even that talk vastly underestimated just how many microcontrollers exist on a modern machine. I sorta disagree with the premise of that talk, although the problem is real.
0 Comments
Leave a Reply. |