Path: ...!2.eu.feeder.erje.net!feeder.erje.net!newsfeed.bofh.team!paganini.bofh.team!not-for-mail From: antispam@fricas.org (Waldek Hebisch) Newsgroups: comp.arch Subject: Re: Why VAX Was the Ultimate CISC and Not RISC Date: Fri, 7 Mar 2025 02:27:59 -0000 (UTC) Organization: To protect and to server Message-ID: References: <2025Mar1.125817@mips.complang.tuwien.ac.at> <2025Mar1.232526@mips.complang.tuwien.ac.at> <2025Mar2.234011@mips.complang.tuwien.ac.at> <5pkg9l-kipt.ln1@msc27.me.uk> <2025Mar3.174417@mips.complang.tuwien.ac.at> <2025Mar4.110420@mips.complang.tuwien.ac.at> <2025Mar5.083636@mips.complang.tuwien.ac.at> Injection-Date: Fri, 7 Mar 2025 02:27:59 -0000 (UTC) Injection-Info: paganini.bofh.team; logging-data="2407695"; posting-host="WwiNTD3IIceGeoS5hCc4+A.user.paganini.bofh.team"; mail-complaints-to="usenet@bofh.team"; posting-account="9dIQLXBM7WM9KzA+yjdR4A"; User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (Linux/6.1.0-9-amd64 (x86_64)) X-Notice: Filtered by postfilter v. 0.9.3 Bytes: 3021 Lines: 32 Anton Ertl wrote: > By contrast, making good use of the complex instructions of VAX in a > compiler consumed significant resources (e.g., Figure 2 of > https://dl.acm.org/doi/pdf/10.1145/502874.502876 reports about a > factor 1.5 more code in the code generator for VAX than for RISC-II). > Compilers at the time did not use the CISCy features much, which is > one reason why the IBM 801 project and later the Berkeley RISC and > Stanford MIPS proposed replacing them with a load/store architecture. VAX intstructions are very complex and much of that complexity is hard to use in compilers. But even extremaly simple compiler can generate load-op combinations decreasing number of instructions. Rather simple hack is enough to combine additions in address artihmetic into addressing mode. Also, operations with two or three memory addresses are easy to generate from compiler. I think that chains of pointer dereferences in C should be not hard to convert to indirect addressing mode. I think that state of chip technology was more important. For example 486 has RISC-like pipeline with load-ops, but load-ops take the same time as two separate instructions. Similarly, operations on memory take the same time as load-op-store. So there were no execution time gain from combined instructions and clearly some complication compared to load/store architecture. Main speed gain of RISC came from having pipeline on a chip (multichip processors were pipelined, but expensive, earlier single chip ones had no pipeline). So load/store architecture (and no microcode) meant that early RISC could offer good pipeline earlier. -- Waldek Hebisch