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
He was trying to say corespondent
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.
Didn't linux support RISC already?
I would think it's safe to say that there is no Intel ME in their low-level hardware design. But Trustzone is an ARM chip, and I wouldn't be surprised if that wound up in the spec somewhere.
Since it is an open-source effort, expect that the Russians and Chinese will be looking at it for domestic adoption, perhaps in violation of whatever licenses cover the hardware designs. Russia has already essentially adopted Elbrus (for now) while the Chinese seem to be vacillating between their own homebrew Loongson chips and VIA CPUs. And whatever else they can appropriate from others.
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...
gcc + binutils?
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.
"aiming to push the RISC-V architecture to transform the hardware industry in the way that Linux transformed the software industry"
So... virtually no users, then?
So SiFive sells a dev PCB for one of their chips that is Arduino compatible. Since this chip seems to be more for higher end embedded systems perhaps it would be smart to build up a dev board that is in the same form factor as a Raspberry Pi. Complete with the same 40 pin header. It would help not only hardware hobbyists with piles of Pi Hats already in existence but also serve as a development board for professionals. Saving the cost that would normally be associated with designing a dev kit.
- List of Soviet computer systems
https://en.wikipedia.org/wiki/...
- History of computer hardware in Soviet Bloc countries
https://en.wikipedia.org/wiki/...
- Category:Computing in the Soviet Union
https://en.wikipedia.org/wiki/...
That's a start, comrade!
I came here to ask this question. Does it tie into existing kernel support in such a way that it is actually supporting them, or are they contributing to those projects to provide support, or what?
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.
Linux has not transformed the software industry.
contain no [omitted] UEFI stuff
Minor nitpick: UEFI has been ported to RISC-V, but this CPU will most likely work with non-UEFI boot firmware.
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.
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.
no DMA memory access
What, you want the processor to block every time it is loading something to cache and for a core or more to be churning when transferring to/from memory and peripherals? DMA isn't a problem in general, although it is possible to have bad implementations and security is harder if peripherals are allowed to just pull from memory without bounds. Making a sane and secure setup where DMA is controlled and requests are validated would still be DMA in the sense the processor can go back to work or sit idle while dedicated hardware handles the transfer.
Sigh. Again I was being brief and unspecific, mea culpa. I was thinking of the Firewire remote DMA access, not *local* DMA access that is useful and appropriate within the machine. I was recalling avenues that had been in past used to compromise Apple machines (no, I don't have references here, it's late and I'm lazy. I fully admit I don't recall all of the details and probably even got some wrong.. this isn't a technical discussion, but one of general principles.) Perhaps it's not germane to this thread. I was just thinking of avenues that might be used to compromise an otherwise-trusted architecture. Tear away at my vague assertions as much as you like.. I was simply trying to portray the things we should look for, being paranoid, in a new architecture that serves people rather than intelligence agencies.
Please stop being so pedantic people. I was just trying to point out ways in which a supposedly open architecture could still be un-trustworthy if we're all not careful to demand proper auditing of all possible avenues of exfiltration.
Funny. I don't see anything but disaster, division and uncertainty. Not to mention a whole lot of trolling.
...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.
Can't you do a first article inspection and closely observe thr processor coming out of the reset vector?
Processors DO still need to boot up out of reset vectors, and oscilloscopes still exist. In fact very good oscilloscopes exist, though software folks are VERY abstracted away from the reality of processor cycles at that level these days. Even if it's buried in the silicon power supply ripple analysis can be performed.
https://en.wikipedia.org/wiki/RISC-V
IMHO, the 32-bit float instructions must be removed. Only 64-bit double instructions will be accepted for better accuracy (very useful for supercomputers).
>. 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.
> IMHO, the 32-bit float instructions must be removed. Only 64-bit double instructions will be accepted for better accuracy (very useful for supercomputers).
In https://en.wikipedia.org/wiki/Double-precision_floating-point_format#JavaScript says:
As specified by the ECMAScript standard, all arithmetic in JavaScript shall be done using double-precision floating-point arithmetic.
Question for you then:
How do the J2/3/4 open source SuperH designs compare?
I know the reason for current limitations is waiting for patents to expire which should lead to future chips with even more opcodes and features as a result. And they had pretty extreme FP performance back in the late 90s/early 00s when they were produced. 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, and must be done while we still can before it gets ingrained into law that it is required.
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?
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
I think that Mozilla & Google will be happier if RISC-V supports JavaScript efficiently.
It's my list of popular languages for RISC-V in a near future:
1st JavaScript. ... ...
2nd ActionScript.
3rd TypeScript.
4th Rust.
5th Python.
20th Java.
30th C#.
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.
Original AC here. Thank you for taking the time to reply, and I daren't use /. as my personal research machine. But I can't find *any* actual details online along the lines you mention.
USB3 worked before, it will work after (the USB2 specification has not changed, for example).
NVME affects storage, again, I can't find any details online.
What I was asking was: why announce "Skylake does not work on Windows 7 and won't receive any Windows updates" instead of "Windows 7 will have limited support for Skylake architecture. Running Windows 7 disables or restricts these features: ..., ..., ..., ...," etc...
I'm not pointing fingers or ascribing blame here, I'm giving an example. When Microsoft stopped releasing details for security patches because "reasons" I feel like tech reporting has just all gone downhill and it is almost impossible to get any actual details.
Does anyone have any thoughts on that? I don't think I'm going too far off topic, as it all relates to CPU support and having a better understanding of how it all works leads to a better understanding of whether RISC-V will work for you.
None of these chip designs has been fabbed in a serious attempt at commercial market penetration.
The best outcome would be a board fabbed with a custom LGA775 style northbridge+southbridge and a patent free standardized frontside bus that open sparc, superh j and risc-v chips could all be plugged into.
This would eliminate monoculture risks, help multiple processor architectures get bootstrapped, and help us decentralize the motherboard ecosystem to what it was like before Intel fucked all the chipset designers in the mid 90s with first the Pentium and then Pentium Pro/2 chipsets leading to the demise of basically every 3rd party chipset company except Acer Labs and VIA.
> "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
"Skylake is NOT "Ivy Bridge, faster" - it's a different microarchitecture."
So Skylake is not x64????????????????????????
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