4 ms·
- SPARC & register windows. A very unfortunate design choice in hindsight. What do you mean, unfortunate design choice? The register windows help compilers and
by Annatar 10y ago
- SPARC & register windows. A very unfortunate design choice in hindsight.
What do you mean, unfortunate design choice? The register windows help compilers and provide 256 virtual registers, thus significantly boosting performance. It's one of the biggest, best features of the Scalable Processor ARChitecture.
And that's the exact feature RISC-V considers "unfortunate". I cannot believe it!
Considering that the OpenSPARC cores are under the GPL, what impact do patents have in that case?
- rwmj 10y agoRegister renaming is a better way to provide large numbers of hardware registers. Another aim of RISC-V is to provide an architecture which is both easy to implement at the low end, and can be scaled at the high end. Register windows are not easy to implement. Register renaming OTOH can be left out of low end designs and included (as an invisible microarchitectural detail) at the high end. The smallest RISC-V implementation is PicoRV32 which is ridiculously small (https://github.com/cliffordwolf/picorv32 https://github.com/cliffordwolf/picorv32 - smallest is 725 LUTs in an FPGA). It couldn't have been done if the architecture had register windows. BTW I'm fairly certain that high end SPARC implementations must be doing register renaming, otherwise each function is limited to 8 or 16 registers.
- Annatar 10y agoOkay, so if we assume that implementing register windows is hard, why tackle the problem again, instead of reusing what is already there? The entire work appears to me to be the authors' personal bias against SPARC, possibly wanting to implement an entire processor from scratch, at all costs, no matter what. The patent argument seems very illogical for a code base under the GPL. Something just doesn't seem right.
- deleted 10y ago[deleted]
- 0xcde4c3db 10y ago> possibly wanting to implement an entire processor from scratch Wanting to facilitate others to do so, sure. This is a common thing to do in a computer engineering program, and I believe it was an explicit design goal that student projects could be real RISC-V implementations instead of targeting the toy ISAs commonly used for this purpose.
- popgoescarrot 10y agoIf RISC-V is supposed to scale down to the low end, why doesn't it have delay slots? On an implementation with a simple instruction pipeline, delay slots not only improve performance, they also simplify the hardware.
- rwmj 10y agoBecause you shouldn't expose such micro-architectural details in an ISA which is trying to be stable for the next 50 years (yes really -- see discussions on the mailing list). The very very low end PicoRV32 is not pipelined (unsurprisingly). More ordinary low end (eg. Rocket) has the canonical Hennessey-and-Patterson 5 stage pipeline and still doesn't need to expose branch delay slots in the ISA. I should say also that the classical MIPS -- ie. no instruction dependencies -- was another mistake in hindsight.
- Annatar 10y agoBecause you shouldn't expose such micro-architectural details in an ISA which is trying to be stable for the next 50 years ...and earlier you wrote However the vast majority of even kernel/embedded programmers rarely touch assembler these days. It is unclear to me why this double-standard is okay: on one hand, that which is really important, like assembler syntax and mnemonics is exposed and yet not considered relevant, but "micro-architectural details" which really don't hurt me as the coder one way or the other should be hidden. I am not sure who the RISC-V designers expect for their audience, nor why this double standard, but in the light of "the 50 year plan", it appears that the designers haven't given it much thought, if any at all. In the end is this: we have a RISC-V processor design which is not human friendly as far as mnemonics go, and with such processors, relying on compilers will be the only practical solution. Who has not learned from the lessons of history is in for another bitter teaching: such attempts have failed miserably in the past. As evidence, I point to PA-RISC and Itanium. If it were but for a better compiler!
- rwmj 10y agoMicroarchitecture has a technical meaning here - it means the implementation of the chip. The ISA should be separate from the microarchitecture, although very often they are not (common examples being: branch delay slots, register windows, non-interlocking pipeline stages). The microarchitecture is nothing to do with the assembler syntax or instruction set.
- david-given 10y agoMy understanding is that the very large number of registers on the SPARC made context switching very slow --- you need to flush up to several hundred registers onto the physical stack and then restore them again later; while at the same time, processors rarely had enough registers to run non-trivial programs without causing overflow traps. So, the extra complexity wasn't really considered worth it, and it was better to devote silicon to other optimisations rather than exposing what is basically a processor implementation detail in the ISA. However, my knowledge is years old. Have these problems been solved?
- Annatar 10y agoHowever, my knowledge is years old. Have these problems been solved? They must have been. I used some Snoracle T4 hardware, and the CPU's were blazingly fast. How they did it though, I don't know, as I didn't have a chance to look into it.
- BuuQu9hu 10y agoOracle is the steward of SPARC, who knows what might happen to it. RISC-V is controlled by a non-profit industry consortium.
- Annatar 10y agoSPARC International is the steward of SPARC.