3,566 karma · joined May 8, 2013
This peaked my interest, but I have no idea which device might have a RK3576
This is what killed Transmeta, not all the technical details.
It is fun to contemplate the alternative universe in which Sony stayed in the workstation market, but I think Sony was more like DEC than Sun, and it would have ended the same way for all.
I "predicted" this three months ago (really, it was inevitable), but gave it 1-6 months.
Now for the what-happens-next popcorn. In a normal world, they would go bankrupt, but this is very much not a normal world.
More characteristic are assumptions about side effects (none for integer, and cumulative flags for FP) and number of register file ports needed.
int main() { for(;;); }
My only regret with Rust is that a “Small Rust Compiler” will be an order of magnitude larger.
Rust isn’t in a difference class from C, it’s a different universe!
I wrote a small NVMe user-space driver using VFIO more than a decade ago this way. Coming from having virtualized ATAPI (SATA) and SCSI, NVMe was such a refreshingly excellent design.
0. Cross-platform (I use ZFS on Linux, FreeBSD, and [previously] macOS).
1. Pervasive check-summing/scrubbing, protection from silent bitrot
2. Low-cost COW snapshots (which can be directly accessed with ~/.zfs/snapshot)
3. Steaming file system state with zfs send / zfs receive (this is super important for backup and replication)
AFAIK, no other FS has all of this.
It is also true that burning up the encoding space for C means pain elsewhere. Example: branch and jump offsets are painfully small. So small that all non-toy code need to use a two instruction sequence to all call (and sometimes more).
These problems don't show up on embedded processors and workloads. They matter for high performance.
This discussion is yet another instance of the fallacy of "Intel has optimized for the current code so let's not improve it!". Other examples include branch prediction (correctly predicted branch as a small but not zero cost) and indirect jump prediction. And this doesn't even begin to address implementations that might be less aggressive about making up for bad code (like most RISCs and RISC-likes).