3 ms·
Was there ever a compiler that targeted the Crusoe architecture directly without having to go through the translation layer? I remember there was a big deal ab
by jandrese 4y ago
Was there ever a compiler that targeted the Crusoe architecture directly without having to go through the translation layer? I remember there was a big deal about how the thing would translate your code the first time you ran it and keep the translation in a cache, but I always had the impression that the translation layer was a bit unoptimized because it was a step away from the original code. Also, everybody ever who has tried to make a VLIW architecture for general computing has ended up with a slow and expensive processor that can't compete.
The article makes a big deal about CISC vs. RISC, but in the end all of the CISC architectures ended up being RISC under the hood with front end instruction translation for the more complex CISC instructions. The transition to 64 bit should offer chip manufacturers a golden opportunity to ditch old disused complexity, like multiple addressing modes and variable length instructions.
- dmm 4y agoAn interesting slashdot comment[0] about running directly on the Crusoe: > The article makes it pretty clear why Linux can't run directly on the Crusoe: Linux expects the hardware to have a virtual memory manager, which the Crusoe doesn't have. Consequently, any port of Linux will need to be running on an emulated memory manager. As a side note, the Crusoe is also missing native support for certain other helpful features: Memory protection -- without that, a segfault can take out the entire OS. Running code from user memory -- without this, any application code will need to be piped through the OS to the CPU. [0] https://developers.slashdot.org/comments.pl?sid=96231&cid=8242299 https://developers.slashdot.org/comments.pl?sid=96231&cid=82...
- ksherlock 4y agoInteresting. Linus Torvaldes was once a Transmeta employee.
- FullyFunctional 4y agoThat might be the one fact that most people know about Transmeta. Among other things, he wrote the original x86 interpreter that was the first to touch cold code. Before he joined, x86 code was immediately translated (which was not ideal for many reasons).
- fredoralive 4y agoA then Transmeta employee (of mild fame) says that the raw Transmeta architecture isn't really suited as a target for normal end user code, as things like memory protection don't actually exist in the "real" architecture. (https://marc.info/?l=linux-kernel&m=105606848227636&w=2 https://marc.info/?l=linux-kernel&m=105606848227636&w=2) Some people did do a bit of dive into the raw architecture (https://www.realworldtech.com/crusoe-exposed/ https://www.realworldtech.com/crusoe-exposed/) but I don't think anyone ever really tried to create a compiler for it, and it would be a moving target anyway as the different Transmeta CPUs seem to use different instruction sets widths (128 bit wide on Crusoe, 256 bit on Efficeon).
- cpeterso 4y agoThe "Transmeta employee (of mild fame)" is Linus Torvalds. I don't mean to spoil the surprise; I just want to encourage people to read his explanation who might have overlooked it otherwise. :)
- FullyFunctional 4y agoCMS was written in C and translated with a custom P95/P2000 backend for good ol' GCC. However, your question is of course about a publicly available compiler. Well, it would be a bit tricky as the ISA was never public and the firmware tried very hard to keep the innards secret. An interesting fact was that CMS could occasionally (not always, but not rarely either) do a better job than the ahead-of-time compiler as CMS benefits from: statistics collected at runtime and can generate code under assumption without compensation code. When the assumptions are found to be violated, it can just recompile the code again. The challenge is always having the compilation overhead be [more than] paid off by the runtime gain. Sometimes it worked, others it didn't. Unfortunately, people really notice when it doesn't work which added to a negative perception of Crusoe. The conventional processors (even out-of-order) have far more predictable performance.