6 ms·
It's interesting to look at two early development highlighted early in the article. The first was register windows: one of those "seems like a good idea at fir
by gumby 4y ago
It's interesting to look at two early development highlighted early in the article. The first was register windows: one of those "seems like a good idea at first", but which turned out to be not worth the transistors. You can understand the motivation: memory access was slow and expensive and IIRC the cache architectures of the day, when there even was one, were commonly just an I-cache or a D-cache even though the machines were von Neumann devices.
OTOH the lack of interlock was a kind of inverse: why waste transistors on something known at compile time anyway (same motivation for delay slots in branches, another idea that turned out not to be worth it). In reality, computation is dynamic, so runtime branch prediction (and later speculative execution) turned out to be a much better performance win, regardless of the design cost.
Edited to remove a comment about the 801, to which the author replied below.
- klelatti 4y agoAuthor here. Thanks for the comment and feedback. Really interesting point on MIPS vs RISC-I approaches. I was a bit puzzled by the IBM 801 comment as the second para of the previous post mentions the 801 and links to an earlier post that is all about the 801. Was there something you think I missed in these earlier posts?
- gumby 4y ago> I was a bit puzzled by the IBM 801 That didn't show as a link when I read it (shows as a link on my current device). Apologies for the oversight; I edited my comment. The 801 was an insightful jump from then-current trends in processor design and that insight, to me, is what RISC is all about. There were lean and orthogonal instruction sets already (most notably, to me, the PDP-6/10 and Seymour Cray's work at CDC) but the central idea of offloading a lot of heavy lifting to the compiler (and recognizing Multics' insight of writing an OS in a HLL, pointing to a practically assembly-language free future) was groundbreaking, a kind of Special Relativity of computing.
- klelatti 4y agoHi thanks so much for editing the comment. Much appreciated. Completely agree with your succinct summary of the what RISC is all about and the 801's place in the story. I've heard others call Cray's CDC's computers the first RISC designs, which I don't think is quite right. Probably deserves a fuller explanation than I can manage here though!
- chasil 4y agoHere is salient commentary on register windows, and other bad ideas from early RISC (from the perspective of debugging assembly language). https://www.jwhitham.org/2016/02/risc-instruction-sets-i-have-known-and.html https://www.jwhitham.org/2016/02/risc-instruction-sets-i-hav...
- gumby 4y agoA good post, though I have a couple of minor criticisms: > Nobody writes assembly code any more, except when they do, His very first sentence turns out to be the primary assumption of RISC: essentially nobody writes assembly code so don't worry about making that easy, and depend on the HLL compiler to do a lot of heavy lifting. The small amount of assembly is just to boot the processor, boot a process, and some small glue in the OS, and as that stuff is heavily used but almost never written you don't have to worry about alleviating those peoples' suffering. Oh, and compiler and debugger writers, and he does point out how some of these decisions make things more complex for them! > CISC had always involved decoding instructions into micro-instructions. That isn't actually true; into the 60s instructions were implemented in hardware, and the roots of CISC lie there -- essentially some quintessentially CISC instructions (BCD support, string handling, etc) were subroutines implemented in hardware because they were so common and that made the computer easier to sell. (as an aside: back in those days, when the machines had high level languages they were often unique to the vendor or even the specific machine model!) Then again, even tiny machines like the 8080 that weren't really RISC or CISC had microcode, but that was later.
- userbinator 4y agoThe 8080 has nothing resembling microcode, and neither do the 8085 nor Z80. They're all based on an instruction decode PLA with a simple sequencer/state machine logic. Perhaps you're thinking of the 8086?
- gumby 4y agoYes that was a typo (or thinko), perhaps because I was discussing this very topic with Stan Mazor the day before yesterday! Thanks.