XiP Filesystem Primps For Linux 2.6.28
nerdyH writes "The Linux-Embedded discussion list has been abuzz the last two days over a flash filesystem designed to support binary code execution (sometimes called XIP, or "execute-in-place"). When combined with forthcoming "Phase Change Memory" products from Intel/ST JV Numonyx, the "Advanced XiP Filesystem" (AXFS) could radically change Linux systems of all kinds, replacing Flash, hard drives, and even DRAM with a single chunk of low-cost, non-volatile memory that can both store files and serve as a platform for program execution."
Didn't read the article...
So this acts as both memory and "hard drive?"
If true, would data read times be affected at all? I mean, if the operating system is simultaneously accessing a file, and using something in memory, would there be a performance hit?
And what would the performance hit be from running code outside of RAM?
my new choice for bootloader
This upgrade brings the computer closer back to the Turing Machine :)
Did you know that "FTW" ("for the win") is a direct translation of "Sieg Heil"?
The idea of XiP is that if you have a piece of storage that's directly accessible as memory to the CPU (e.g. a piece of old-school ROM, NOR-flash, battery-backed RAM, or phase-change memory), the CPU can just execute a program directly from there instead of first copying it to RAM and executing it there. Storing programs in this memory so they can be executed is something that normal filesystems can't do per default, and that's why this is something interesting: You'll still need RAM for the data parts of the program, but the programs and libraries themselves can remain on disk without taking up precious RAM.
The flash medium must be memory mapped for this to work. This means that nand flash is out without sitting behind some other logic to bridge the nand controller to the memory bus. Nand flash won't lend itself too well to this sort of behavior, though, since when code 'jumps' outside a page boundary there will be a bus stall until the next page gets read. Also, 'real programmers' modify the code during execution :P
Slashdot: Where people pretend to be twice as smart as they really are by behaving like children.
It's block rather than record oriented, but this seems similar to how classic Palm OS worked. In the Handspring Visor, which had directly addressable flash memory, this was used to execute code directly out of flash.
At first I thought it said XiP Filesystem Pimps For Linux 2.6.28...
"XiP" looks entirely too much like "XP". They should have gone with something like "XNP".
I see even classic Slashdot is now pretty much unusable on dial up anymore.
As processor caches increase, could you use this to run the kernel from the processor caches? Intel based processor caches will soon exceed 6mb. Just a idea.
Restore the madness of youth's lechery
unless you're an embedded dev, nothing to see, move along.
the slowest part of the intel cpu cycle is decode - but before your cpu processes streams of op codes for decode you have to load the executable image into ram and then run the dynamic linker. the dynamic linker needs to parse every the segment to be worthwhile, otherwise you'll hit the linker each time you load a segment that's slightly interesting (weaker the symbols/IAT, the more likely) only to find out you didn't need to causing jitter.
its one of those "ill believe it when i see it" performance gains
Matt
6mb? What the heck is a milli-bit?
Perhaps you meant 6Mb, so 0.000715255737 megabytes?
Or just maybe 6MB or 50 million bits.
Ooo, did I just invent a new type of /. nazism - the SI-Nazi??
That would be really cool because it is currently a waste that programs need to take up twice as much "memory" as their actual size: Once for the amount it takes up on the hard drive (or flash or whatever) and once for the copy loaded into memory when you run the damn thing. It would be very, extremely cool if memory didn't wear out like flash currently does after so many writes and whatnot, and if it were plentiful and cheap, and execute-in-place and whatnot. This would actually be a bit more in line with how Joe Sixpacks view their computers. They'll have a billion gigs of free hard drive space and 640 bytes of available RAM (that's enough for anyone, isn't it?) and then a program says, "Out of memory" and they go, "Duh, what the hell? I got a billion gigs of free space!" Or another Joe Luser has a hard drive so full of pr0n that there's about three bits of available space (not even a whole byte) but he has ten gigs of RAM. So the damn thing says, "Device full" or whatever Windoze says when there ain't no more space, and he goes, "Duh, but I got ten gigs of memory!" If it were all one big huge string of memory like the way it was envisioned with Turing machines, then although computers wouldn't make one bit of sense more to these Sixpacks fellows than they do now, at least the terminology will be correct with respect to the whole memory thing.
McCain/Palin '08. Now THAT's hope and change!