Linux Now Has its First Open Source RISC-V Processor (designnews.com)
"SiFive has declared that 2018 will be the year of RISC V Linux processors," writes Design News. An anonymous reader quotes their report:
When it released its first open-source system on a chip, the Freeform Everywhere 310, last year, Silicon Valley startup SiFive was aiming to push the RISC-V architecture to transform the hardware industry in the way that Linux transformed the software industry. Now the company has delivered further on that promise with the release of the U54-MC Coreplex, the first RISC-V-based chip that supports Linux, Unix, and FreeBSD... This latest development has RISC-V enthusiasts particularly excited because now it opens up a whole new world of use cases for the architecture and paves the way for RISC-V processors to compete with ARM cores and similar offerings in the enterprise and consumer space...
"The U54 Coreplexes are great for companies looking to build SoC's around RISC-V," Andrew Waterman co-founder and chief engineer at SiFive, as well as the one of the co-creators of RISC-V, told Design News. "The forthcoming silicon is going to enable much better software development for RISC-V." Waterman said that, while SiFive had developed low-level software such as compilers for RISC-V the company really hopes that the open-source community will be taking a much broader role going forward and really pushing the technology forward. "No matter how big of a role we would want to have we can't make a dent," Waterman said. "But what we can do is make sure the army of engineers out there are empowered."
"The U54 Coreplexes are great for companies looking to build SoC's around RISC-V," Andrew Waterman co-founder and chief engineer at SiFive, as well as the one of the co-creators of RISC-V, told Design News. "The forthcoming silicon is going to enable much better software development for RISC-V." Waterman said that, while SiFive had developed low-level software such as compilers for RISC-V the company really hopes that the open-source community will be taking a much broader role going forward and really pushing the technology forward. "No matter how big of a role we would want to have we can't make a dent," Waterman said. "But what we can do is make sure the army of engineers out there are empowered."
What's the big advantage with RISC over ARM or x86? I'm especially curious as to the advantages with embedded devices since that's what this seams to be geared towards.
When they say "Unix", which OS are they talking about? Solaris? AIX? HP-UX? macOS? UnixWare? OpenServer? One of the many other variants?
Seriously, how the fuck did that crap end up in the summary? Yes, I realize it's from the article, but EditorDavid should've seen that it's nonsensical and should have fixed up the summary before it ended up on the Slashdot front page!
Even timothy probably wouldn't have screwed up like this!
Quite an achievement !
It always amazes me that governments dont invest in this level, for example the french military will avoid certain american tech but seem happy to pay an unauditable Intel corporation
at least the European Space Agency made their own Sparc processor but I've seen little other investments made with public money that might actually benefit the public and be verifiable by outsiders...
I think the big take-away that will drive the adoption of an open source CPU, is the fact that governments and corporations can be sure that there's no secret spying implemented within it.
This presumes that you can trust whoever ends up making these CPUs based on the design.
READY.
PRINT ""+-0
This company needs to (if they haven't already) get an international, non-goverment group of silicon and firmware security experts do a full audit to ensure the architecture and reference designs contain no Intel ME or UEFI stuff and no undocumented instructions; no silicon- or BIOS-level network stack, no DMA memory access, and a fully-open BIOS. They would have a real comfy niche that neither Intel, AMD nor ARM (with their non-TrustZones) are now willing to fill.
Best get those designs hosted and fabbed outside of the US, Russian and Chinese spheres of influence, too.. or maybe that's not possible, so just make them in all three, with auditing up the wazoo.
I am a huge supporter of open hardware projects, especially the ESA and Oracle supported opensparc architectures.
https://en.m.wikipedia.org/wik...
However without a trusted silicon foundry to make chips without hardware back doors, all of the vetting of the hardware design "source" RTL won't be enough to establish trust. Even running netlists in FPGAs won't be enough if you can't trust the FPGA manufacturer or the foundry that built it.
In the end, we as consumers are stuck without any truly secure hardware options, free of backdoors.
My advice, assume all processors have backdoors and select those designed and made in places that cannot be compelled by the country in which you live for backdoor access.
The article says RISC-V supports Linux. I always assumed an operating systems supports the processor. Not the other way around.
"Eve of Destruction", it's not just for old hippies anymore...
TrustZone is basically a masked boot ROM included in many ARM SoC's. As RISC V isn't compatible with ARM it isn't really applicable. The problem here is can you trust that when you get the silicon the first instruction you execute is really the first instruction. It's hard to say that an evil chip manufacturer doesn't put in a small virtualization ROM in the chip at the bootstrap address. So even if you are writing a bootloader from scratch you can't guarantee you aren't running in a VM prison and your HW is compromised.
This is a rather tricky problem. It would take the likes of an organization like DARPA to solve it.
As in "can we prove our HW is trusted even when we don't trust the manufacturer." To really provide any sort of trust every word in memory would have to have an origin tag that is asserted on the bus and you basically break the CPU up into two chips (made by separate manufacturers, of course) that cross-check each other using these tag bits. It will result in some performance sacrifice. A multi-chip CPU will always perform worse than a single chip one; especially in terms of power consumption. But it's probably the only way to ensure that a chip manufacturer doesn't put you in a prison that you don't even know you're in.
Kind of like a Truman show for software.
If not, the "open source" part does not mean a lot for most people.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
I'm not optimistic this cpu would be allowed to be mass-produced, since it appears it won't have any of backdoors the Intel and AMD ones have.
Can ANYBODY provide any REAL evidence of this supposed AMD ARM chip? Because I have scoured the net and have only found a couple of 2012 articles saying "We plan to do this sometime" and ZERO actual code, ZERO actual layouts showing the location of this ARM core, and ZERO lists of any actual CPU/APU that have this installed.
The only actual facts I can find are 1.- AMD licensed an ARM Coretex 5, and 2.- They have used it on exactly ONE CHIP, the Jaguar APU which they sold to MSFT and Sony for their game consoles, that's it. NO other chips, NO security features that having such a chip would have that would appeal to business customers like remote corporate control of assets, not a damned thing but a bunch of FUD that all trace back to the same articles from 2012.
ACs don't waste your time replying, your posts are never seen by me.
And interestingly enough, neither of you two can spell it.
This is not the first. That would have been LEON SPARC. There are a few others also, but the next 'actively maintained' might be J-Core (SH). RISC-V is interesting, I'm a big fan of open computing. But no, it's not a first.
2 Billion devices running Android, not to mention all the other cheap computing devices (IoT), isn't enough???
It goes both ways. A manufacturer isn't going to release a new high-power CPU that can't run any operating system. The CPU needs to "support" (be compatible with) some operating system, and the company making the CPU will likely need to be involved with the first OS port.
The case of AMD64, aka x64, is a good example. Before the CPU was actually produced, AMD made a emulator, then AMD and Suse ported Linux to the new instruction set. By actually running Linux on the new instruction set they could identify any problems with the CPU design design before making it in actual silicon.
Four years later, Microsoft released some x64 support in Windows. So you could say that first the hardware CPU was manufactured to support 64-bit Linux, which existed before the CPU was produced. Years later, Windows started supporting the CPU. Similarly, back in 1995, Linux added support for 64 Alpha processors, which existed before Linux supported them.
like this one ?
Nullius in verba
...does it run Windows ? (ducks...)
This is a rather tricky problem. It would take the likes of an organization like DARPA to solve it.
DARPA's SSITH program is attempting to address this, but I suspect that a complete solution is much bigger than a single DARPA program.
I am TheRaven on Soylent News
The guy in the office diagonally across from me has one on his desk, not sure if you count that as 'real evidence'. They were the boards that ARM was selling as early developer systems for ARMv8. I've not seen much evidence of AMD trying to make them into a large-scale product.
I am TheRaven on Soylent News
While the RISC-4 IA is open, the U54 is a closed design. So while the having an open IA is better than nothing, don't expect to be looking at the intricate details of how processors like the U54 are designed as that part is strictly closed. It is unfortunate that semiconductor fabrication is so prohibitively expensive leaving FPGAs as the only viable option for community designs.
Even Microsoft is shipping Ubuntu with their Windows these days. I'd say it transformed the software industry quite a bit.
"Everybody's naked underneath" -- The Doctor
>. But if Windows 7 is truly incompatible with Skylake CPUs, then doesn't that mean the Skylake CPU is not compatible with x64?
Applications written on / for Windows 7 should work on Skylake. The operating system needs to be concerned with more than just the instruction set. The OS has to support the busses in use (NVME and USB3), the power management scheme, the boot process (UEFI, not BIOS), hardware interrupts, etc. A few manufacturers have tested some of their Skylake models with Windows 7.
I'd expect someone with such an extreme opinion to at least try to argue for it.
Floats are generally enough. They require less hardware and the hardware consume less power per operation. Less memory bandwidth and less memory space are needed. IMO most uses of doubles are either to be safe or to try to compensate for lack of analysis of the problem at hand.
But I can be even more extreme than you: only 128 bit fixpoint numbers should be allowed. Of course stored in ones complement.
How do the J2/3/4 open source SuperH designs compare?
I've not looked at SuperH in detail, so I can't really compare.
I seem to remember there were other pitfalls to their architecture, but getting a processor that is Management Engine (Aka Clipper+Palladium+TPM) free is a huge boon to the future of computer security
I disagree. A TPM, secure enclave, or equivalent, is increasingly vital for computer security. It is absolutely essential that you have some write-only storage for encryption keys into a coprocessor that will perform signing / signature verification / encryption / decryption, but which does not allow the keys to be exfiltrated. Anything less than this and a single OS-level compromise means that you need to reset every password and revoke every key that you've used on that machine.
Having said all this: Is it perhaps time for a different CPU project, or a fork of RISC-V with these missing features added, at the risk of binary incompatibility, but to the benefit of performance and perhaps security?
There are lots of extensions to RISC-V, but the problem there is fragmentation. You need the A extension if you want to run a real OS. You probably need the C extension, because compilers are starting to default to using it. The M extension is useful, so people will probably start using it soon. Hardware floating point is expensive on low-end parts, so you're going to end up with some having F, some having D, and some having neither (this was a pain for OS support for ARM until recently - now ARM basically mandates floating point on anything that is likely to run an OS), and a few will support Q. L is unlikely to be used outside of COBOL and Java, so isn't too much of an issue (one is niche, the other is typically JIT'd so it doesn't matter too much if only some targets support it). And that's before there's any widely deployed silicon. Expect vendors to add their own special RISC-V instructions, making their own versions of toolchains and operating systems incompatible.
RISC-V isn't the first project to try this. OpenRISC has been around for a lot longer, but RISC-V managed to get a lot more momentum. I don't think that a competing project would find it easy to get any of this. It remains to be seen whether this momentum can translate to a viable ecosystem.
I am TheRaven on Soylent News
RISC-V is cool insomuch that it's free as in freedom. However, as an ASM programmer, I won't be touching it. As others have already pointed out more eloquently, the RISC idea was to make up for lack of decent ISA with compilers. For the most part, it worked out. However, it doesn't change the fact that most RISC processors are freakin MISERABLE to program. I'm speaking from everyday experience. People might complain about x86 having some stupid addressing modes, but trust me, that's NOTHING compared to how austere the environment is when you are doing modern ASM on an RISC based system. I'm much more excited about the non-open source Apollo M68080 core for AmigaOS (and possibly Macs and Atari ST's soon). It's not going to excite the *nix crowd, and it's not free or open source. However, it's much fun & easy to write ASM on. I'm not dissing the RISC-V, it sounds like they already have compiler back ends lined up. So, that should be interesting, but as an ASM coder, I'm not especially interested in RISC-V. I could make a LONG post of the things I'd miss if I had to stay on a RISC platform. However, few others would, since almost everything is in C or C++ that matters nowadays.
Risc architecture will change everything!
triple the speed of a pentium!
it even has a pci bus!
https://youtu.be/wPrUmViN_5c
Just wanted to chime in with some notes on conditional execution:
First of all, if all you care about is single-issue non-superscalar with a relatively deep pipeline, conditional execution is probably a good idea in my experience due to the very low implementation cost. Especially if your branch prediction is lousy. However, if you are aiming for high-end systems conditional move may not be that big of a deal. See for example the following analysis from Linus Torvalds regarding cmov: http://yarchive.net/comp/linux... where it can be seen that cmov is basically a win only if you have situations where a branch predictor wouldn't do a good job. However, it may still be a good idea to keep some sort of conditional instruction around since it is likely to be useful if you are dealing with for example lossless compression/decompressions since you are typically dealing with unpredictable data in this case.
I could also chime in with an interesting tidbit from ARM1. Conditional execution was probably a really big deal here since the ARM1 didn't have any caches. It did however have support for burst reads from memory. As long as it was fetching instructions sequentially it could basically sustain a very high instruction throughput. A branch would however reduce the performance significantly since the burst had to be aborted. Conditional execution could be done while maintaining the burst however. This is one of the reasons why ARM1 with about 30000 transistors was competitive in performance with for example the 68020 which had close to 200000 transistors. If the ARM instruction set was designed today however it is likely that the designers would not go crazy with conditional execution since the bits could be better used for something else.
> "Running Windows 7 disables or restricts these features:"
They don't know what all features in various updates may not work, and they don't want to figure that out for an officially obselete operating system. One thing that often may not work is booting. Installing from a OEM disk probably won't work because it won't have the drivers for a USB3 keyboard and mouse. Power management will often not work - once the machine goes to sleep, it may not wake up again.
APPLICATION code generally is tied to a specific instruction set and OS. Application code doesn't generally care about the hardware, because the operating system takes care of the hardware. On the other hand, the operating system DOES care about the hardware, and Skylake hardware is different. Skylake is NOT "Ivy Bridge, faster" - it's a different microarchitecture.
> USB3 worked before, it will work after (the USB2 specification has not changed, for example).
Windows 7 does not support USB3 out of the box. USB2 is not USB3. They have one thing in common - similar names. USB2 is a synchronous, half duplex protocol over
one pair of wires. USB3 is an asynchronous, full duplex protocol with three pairs.
However, if you are aiming for high-end systems conditional move may not be that big of a deal. See for example the following analysis from Linus Torvalds regarding cmov
The problem with Torvalds' analysis (which is otherwise pretty good and worth reading) is that it only looks at local effects. The problem with branches is not that they're individually expensive, it's that each one makes all of them slightly more expensive. A toy branch predictor is basically a record of what happened at each branch, to hint what to do next time. Modern predictors use a variety of different strategies (normally in parallel) with local state stored in something like a hash table and global state shared with all branch locations. If the branch that you've added happens to hit the same table entry as another, then it may cause mispredictions elsewhere. This is horrible to try to model, because you have a performance cliff that moves depending on code layout (which is part of the reason why randomising the order of functions in a program can have around a 20% impact on performance).
The probability of misses increases based on branch density. Short branches have another issue, which is that typical superscalar processors don't make per-instruction predictions, they make predictions per fetch granule. If you have an 4-way superscalar processor, then you get one prediction for each 4 instructions. If you have two branches in there, then they'll be predicted together. This means that you really don't want a short branch immediately followed by another branch (or following a not-taken branch) unless you're really careful about alignment.
Note that some processors have spectacularly bad implementations of either branch prediction or conditional moves. PowerPC is notorious for this, where the performance difference between the two representations varies hugely between different iterations by the same vendor (and more between vendors), so compiler tuning is almost impossible.
If the ARM instruction set was designed today however it is likely that the designers would not go crazy with conditional execution since the bits could be better used for something else
You can see this with ARMv8. Most of the predication is gone, there are basically just conditional moves (conditional select) and conditional branches. There was apparently a lot of argument about whether to allow conditional loads. These are very useful because most other conditional patterns can be reduced to a conditional move: calculate both sides and select the one that you wanted, but is the condition is 'pointer is not null' then you can't speculatively load and then decide not to take the trap. Another proposed alternative is to have a non-trapping load (i.e. one that returns zero if that load would trap), though this can be difficult in the presence of swapping (the processor doesn't know the difference between a not-present page and a not-present-now-but-can-be-swapped-in page).
I am TheRaven on Soylent News
I can see languages like Scheme (Gambit, Chez, Gauche...) being happy with FP64-only operations and FP64/FP32/FP16 stores/loads since the language doesn't know (shorter) "C"-floats anyway, with the loads and stores solving the memory problems but with intermediate results at desired higher precisions. Outside of GPUs, the benefits of FP32 availability seem much smaller. And regarding the "trying to compensate for lack of analysis", I vaguely recall even Kahan himself recommending for going for the widest word you can use as being the most logical thing you can do regardless of your analysis, and even expecting x87's 80 bits not to be the ultimate width of FPU logic but only a stepping stone until we get more transistors (it got kind of stuck since then but we *did* get standardized 128b floats quite recently).
Ezekiel 23:20
So in other words no actual products on shelves which backs up what I've been saying all along, the "AMD does it too!" is nothing but FUD being shoved out probably by fanboys.
ACs don't waste your time replying, your posts are never seen by me.
AMD's ARM strategy is... complicated. As far as I can tell, they are very enthusiastic in their desire to plan to have a plan.
I am TheRaven on Soylent News