News for hackers. Stuff that matters.
Re:Coming Soon: AWS Graviton2 Processor for AWS by jonstewart on Wednesday December 04, 2019 @08:16PM (#21709077)
Well, and for 25-30 years, everyone’s been crowing about how they were doomed to fail because of x86 as a CISC design. Intel killed off most RISC competitors as Moore’s Law held in the 90 and they could just add more transistors to turn x86 into a facade. But that increase in transistors and doing whatever possible to keep x86 performant meant they were doomed to lose the power/performance war that came with mobile processors. ARM held on just long enough in the low margin embedded world to then conquer mobile. Intel was able to win price/performance through superior fabrication and economies of scale, but power/performance really does require a superior design.

If Intel recovers, it may need to jettison x86, or offload x86 interpretation to a secondary unit for desktop processor with it gone from server procs.

This would make me happy because it’s been crushing to think I might go my entire career/lifetime with little endian processors being the mainstream. :-/

Re:Coming Soon: AWS Graviton2 Processor for AWS by atq2119 on Wednesday December 04, 2019 @08:38PM (#21709210)
Little endian has nothing to do with CISC vs RISC or x86 though. Everybody is little endian today.

x86 helped with that historically, certainly, but fundamentally endianness just doesn't matter most of the time, and when it does, little endian makes more sense from first principles.

Re:Coming Soon: AWS Graviton2 Processor for AWS by amluto on Wednesday December 04, 2019 @11:30PM (#21709996)
I think big endian is better: with little endian, treating a pointer to one size integer as a pointer to a different size integer has a decent chance of working, which allows bugs and sloppiness to fester. With big endian, screwing up your pointer type is very unlikely to work, which is IMO a good thing.
Re:Coming Soon: AWS Graviton2 Processor for AWS by Reelin on Thursday December 05, 2019 @04:58AM (#21711154)
> Everybody is little endian today.

ACKCHYUALLY, PowerPC (POWER9 included) supports both big and little endian. Software wise, last I checked the Linux kernel, Debian (PPC port), Gentoo, FreeBSD, and several other major projects supported both. I believe KVM also supports flipping VM endianness versus the hypervisor.

Acknowledged, of course, that the spirit of what you said is indeed correct - the majority of systems in active use are little endian.

Re:Coming Soon: AWS Graviton2 Processor for AWS by my123 on Thursday December 05, 2019 @10:06AM (#21712843)
ARM too.

https://developer.arm.com/tools-and-software/open-source-sof...

See: > AArch64 GNU/Linux big-endian target (aarch64_be-linux-gnu)

Re:Coming Soon: AWS Graviton2 Processor for AWS by ksec on Thursday December 05, 2019 @05:29AM (#21711283)
>and when it does, little endian makes more sense from first principles

Could you explain why little endian would make more sense? While I dont take side in this debate, I have always thought Big Endian would make more sense from First principles.

Re:Coming Soon: AWS Graviton2 Processor for AWS by atq2119 on Thursday December 05, 2019 @12:33PM (#21714267)
There are two main applications where I find little endian is more logical: big integer implementations, and bit stream encoding.

With big integers, the logic is simple: if you use little endian, you can operate on the same memory representation of the bigints quite easily with machine integers of different sizes.

A similar phenomenon happens with bit encoding. Let's say you want to encode a sequence of 25-bit integers tightly packed in memory. How do you do that? With little endian, you get a somewhat more natural representation especially for seeking into the bitstream (especially for architectures that allow unaligned memory accesses).

Re:Coming Soon: AWS Graviton2 Processor for AWS by BeeOnRope on Friday December 06, 2019 @01:38PM (#21724715)
> With big integers, the logic is simple: if you use little endian, you can operate on the same memory representation of the bigints quite easily with machine integers of different sizes.

That's true with big endian too, but you just have to store your integers in the opposite way as you would on little endian: with the MSB at the lowest address (which of course is the same as the distinction between little and big endian in the first place).

Basically the bigint layout has to be compatible with the the endianess.

I don't know what bignum implementations do in practice on big endian systems though.

Re:Coming Soon: AWS Graviton2 Processor for AWS by api on Wednesday December 04, 2019 @08:57PM (#21709296)
If anyone wants to see why little endian is better try implementing a sigint. Big endian makes everything backwards in terms of iteration order.
Re:Coming Soon: AWS Graviton2 Processor for AWS by takeda on Wednesday December 04, 2019 @09:08PM (#21709343)
You are presenting argument in favor of little endian, yet you're provide enough information that is only useful for someone who already knows the answer.
Re:Coming Soon: AWS Graviton2 Processor for AWS by tedunangst on Wednesday December 04, 2019 @10:05PM (#21709627)
The answer is also only useful to those who know it? I mean, nerds love to shout about the superiority of this or that, but they're mostly just parroting their tribe motto. If you have reason to really care about endian order, I would encourage you to do more research than you'll find in an HN comment. Perhaps there's even more than one right answer depending on circumstance.
Re:Coming Soon: AWS Graviton2 Processor for AWS by takeda on Thursday December 05, 2019 @12:12PM (#21714049)
I don't have too much knowledge in that area, but my understanding is as follows: for a software engineer big endian simpler to use, for hardware engineer little endian is simpler to implement.

I think it's similar to scientific calculator vs RPN calculator.

Re:Coming Soon: AWS Graviton2 Processor for AWS by atq2119 on Thursday December 05, 2019 @01:28PM (#21714807)
I don't think big vs little endian makes a difference in terms of hardware implementation. It's just a simple swap of wires.
Re:Coming Soon: AWS Graviton2 Processor for AWS by takeda on Thursday December 05, 2019 @01:58PM (#21715166)
it's more optimal when you're doing pipelining, for example adding two numbers to do the operation you start from the lowest byte and add them together and move up. With little endian bytes are already positioned in the order you want.

x86 architecture also was big on backward compatibility. You have registers that can be accessed as 8bit, 16bit, 32bit (and I believe 64bit) adding the extra bytes after similarly makes it easier, because the little significant bits are always in the same place.

Again, I don't have extensive understanding of hardware side, so I might be wrong.

Re:Coming Soon: AWS Graviton2 Processor for AWS by jonstewart on Thursday December 05, 2019 @12:14AM (#21710158)
I know endianness is separate from CISC vs RISC, and mostly a pointless and useless debate.
Re:Coming Soon: AWS Graviton2 Processor for AWS by xxpor on Wednesday December 04, 2019 @10:39PM (#21709777)
Except MIPS and the network.
Re:Coming Soon: AWS Graviton2 Processor for AWS by wmf on Wednesday December 04, 2019 @11:39PM (#21710036)
MIPS processors have mostly been replaced by ARM already.
Re:Coming Soon: AWS Graviton2 Processor for AWS by saagarjha on Thursday December 05, 2019 @02:14AM (#21710544)
Not in routers.
Re:Coming Soon: AWS Graviton2 Processor for AWS by dirkf on Thursday December 05, 2019 @04:34AM (#21711056)
I work in that area. All consumer-grade router/gateway SoCs from Broadcom have been exclusively ARM for several years now. They were MIPS before.
Re:Coming Soon: AWS Graviton2 Processor for AWS by gonzo on Thursday December 05, 2019 @12:11PM (#21714045)
Caviun also went ARM, and is now owned by Marvell.
Re:Coming Soon: AWS Graviton2 Processor for AWS by goosehonk on Wednesday December 04, 2019 @09:25PM (#21709428)
ARM has never enjoyed a Op/J advantage over x86. They have low-power designs, yes, but they don’t do more work for a given amount of energy.

x86 won fair and square. The risc people failed to foresee that instruction density would be extremely important to performance. Intel didn’t beat them with physics. CISC is just fundamentally better.

Re:Coming Soon: AWS Graviton2 Processor for AWS by StillBored on Wednesday December 04, 2019 @11:09PM (#21709909)
<i>ARM has never enjoyed a Op/J advantage over x86.</i>

I'm not sure that exactly accurate, its more accurate to say, that there was a lack of market crossover that allowed similar power or perf envelopes.

That is because ARM did/does make much more efficient CPU's, they just aren't anywhere close to the perf of common x86 cores. AKA a low clocked in order ARM with small caches, etc is more efficient per op but it can't touch even a medium size x86. Intel sort of was in that market for a bit and their cores were efficient too, but the main selling point for an architecture is the software around it, and a 50 mhz in-order x86 can't exactly run modern windows in a reasonable way.

Now that ARM & friends are building higher perf parts, the power efficiency keeps getting worse. When someone makes a 5Ghz ARM core it will likely consume more than a couple mW.

The perf/power ratios have more to do with culture and market than ISA.

Re:Coming Soon: AWS Graviton2 Processor for AWS by amluto on Wednesday December 04, 2019 @11:26PM (#21709973)
I suspect that, at least for lower-power or lower-area designs, a compact ISA with a friendlier encoding than x86 would be a win. A significant problem with x86 is that a high-performance core needs to decode multiple instructions per cycle, but x86 has a nasty problem that the length of an instruction can’t be determined until it’s fully decoded. I think that modern front-ends try all possible offsets at once and throw out the wrong guesses. This costs area and power.

A design where all instructions have one of just a few sizes and where the first byte unambiguously encodes the length would be nicer.

RISV-V is decent in this respect.

FWIW, x86’s legacy is a security problem, too. The ISA is so overcomplicated that nasty interactions cause all manner of security bugs. As a recent example, the sequence mov (ptr), %ss; syscall with a data breakpoint at ptr could be used to root most kernels. With virtualization, this type of thing is much worse. A hypervisor needs to handle all the nasty corner cases in a guest user program without crashing itself or the guest kernel, and it needs to handle all the nasty corner cases in guest kernels without dying. There are various ways that native kernels can literally put the microcode in an infinite loop, and hypervisors need complex mitigations because an infinite-looping microcode bug triggered by a guest can’t be preempted by the host, and it will take down the system.

So yes, x86 is not fantastic.

Re:Coming Soon: AWS Graviton2 Processor for AWS by namibj on Thursday December 05, 2019 @05:44AM (#21711342)
Can you provide a link to the infinite-loop microcode issue?
Re:Coming Soon: AWS Graviton2 Processor for AWS by my123 on Thursday December 05, 2019 @10:10AM (#21712881)
Re:Coming Soon: AWS Graviton2 Processor for AWS by etaioinshrdlu on Wednesday December 04, 2019 @09:56PM (#21709594)
I had assumed the opposite, that ARM was better in terms of Op/J. Can you provide a reference to make it certain?

Also, I wonder if the low density of RISC could be countered by introducing execution of compressed/zipped machine code. Some compressors like brotli are highly tuned to the expected type of data to be compressed and are very compact. All entry points to basic blocks in the code are generally known at compile time, so it can be ensured that the jump destinations are decompressible without any context, avoiding the slow process of needing to scan backwards to start decompressing...

Re:Coming Soon: AWS Graviton2 Processor for AWS by kevin_thibedeau on Wednesday December 04, 2019 @10:41PM (#21709787)
Arm Thumb is a compressed ISA. Intel has been decompressing x86 instructions into an internal RISC machine since the Pentium Pro. The benefit is getting more instructions through the chokepoint from DRAM to L1 cache.
Re:Coming Soon: AWS Graviton2 Processor for AWS by tigershark on Thursday December 05, 2019 @03:10AM (#21710713)
The Apple arm chips are way more efficient than any x86. They have comparable performance with a much, much lower power requirement.
Re:Coming Soon: AWS Graviton2 Processor for AWS by spamizbad on Wednesday December 04, 2019 @09:33PM (#21709472)
The writing was on the wall in the early 90s. The SuperH ISA basically gave you the best of both world's: Fixed-width, relatively easy to decode instructions that were 16-bit, rather than 32 bits of many RISC ISAs.
Re:Coming Soon: AWS Graviton2 Processor for AWS by dogma1138 on Wednesday December 04, 2019 @09:17PM (#21709379)
All modern x86 CPUs are essentially “RISC” CPUs that translate x86 instructions into uOPS so they already do what you want to do.

I’m not seeing why the higher level x86 instruction set needs to be jettisoned or killed off...

Re:Coming Soon: AWS Graviton2 Processor for AWS by pjscott on Wednesday December 04, 2019 @09:59PM (#21709606)
And ARM processors these days tend to do the same, translating from the Thumb-2 variable-width instruction encoding into whatever each processor uses internally.
Re:Coming Soon: AWS Graviton2 Processor for AWS by floatboth on Thursday December 05, 2019 @04:46AM (#21711098)
Thumb-2 is for microcontrollers (and not all of them even). Anything unix-capable (Cortex-A series and custom cores) reads fixed width AArch64 instructions.
Re:Coming Soon: AWS Graviton2 Processor for AWS by pepemon on Wednesday December 04, 2019 @09:29PM (#21709456)
> All modern x86 CPUs are essentially “RISC” CPUs

Where can I read more about that?

Re:Coming Soon: AWS Graviton2 Processor for AWS by grantisu on Wednesday December 04, 2019 @09:40PM (#21709520)
If you can work around the formatting issues, there's some classic articles on Ars Technica, e.g. http://archive.arstechnica.com/cpu/4q99/risc-cisc/rvc-1.html
Re:Coming Soon: AWS Graviton2 Processor for AWS by scarface74 on Wednesday December 04, 2019 @10:04PM (#21709625)
Intel “won” because they had the money to invest in processors from owning the PC market. Now, Apple ships more ARM devices by itself than all personal computer sells combined (not counting the servers - it’s hard to find numbers on servers). Apple by itself can afford to pour money into ARM designs.

Now we see that Amazon makes enough money and has enough volume to invest in server processors.

Re:Coming Soon: AWS Graviton2 Processor for AWS by dman on Wednesday December 04, 2019 @08:24PM (#21709133)
This space will be interesting to watch! We live in extremely interesting times hardware wise.