Deutsch   English   Français   Italiano  
<vqevg6$3iv5i$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Terje Mathisen <terje.mathisen@tmsw.no>
Newsgroups: comp.arch
Subject: Re: Why VAX Was the Ultimate CISC and Not RISC
Date: Fri, 7 Mar 2025 15:23:02 +0100
Organization: A noiseless patient Spider
Lines: 64
Message-ID: <vqevg6$3iv5i$1@dont-email.me>
References: <vpufbv$4qc5$1@dont-email.me>
 <2025Mar1.125817@mips.complang.tuwien.ac.at> <vpvrn5$2hq0$1@gal.iecc.com>
 <2025Mar1.232526@mips.complang.tuwien.ac.at> <vq2dfr$2skk$1@gal.iecc.com>
 <2025Mar2.234011@mips.complang.tuwien.ac.at> <5pkg9l-kipt.ln1@msc27.me.uk>
 <2025Mar3.174417@mips.complang.tuwien.ac.at> <vq4qav$1dksd$1@dont-email.me>
 <vq5dm2$1h3mg$5@dont-email.me> <2025Mar4.110420@mips.complang.tuwien.ac.at>
 <vq829a$232tl$6@dont-email.me> <2025Mar5.083636@mips.complang.tuwien.ac.at>
 <vqdljd$29f8f$2@paganini.bofh.team> <20250307135702.00000976@yahoo.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 07 Mar 2025 15:23:03 +0100 (CET)
Injection-Info: dont-email.me; posting-host="81fbb9cf14c37b98f12a3e0df4167174";
	logging-data="3767474"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+oHWLuN7mvBdYxIiE2E3xZAdkSD2iMo5U14MgXDfN4bw=="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101
 Firefox/128.0 SeaMonkey/2.53.20
Cancel-Lock: sha1:xuzO6qqJwvQZKhh4fhgAQ7TDiUs=
In-Reply-To: <20250307135702.00000976@yahoo.com>
Bytes: 4155

Michael S wrote:
> On Fri, 7 Mar 2025 02:27:59 -0000 (UTC)
> antispam@fricas.org (Waldek Hebisch) wrote:
> 
>> Anton Ertl <anton@mips.complang.tuwien.ac.at> 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.
> 
> In specific case of i486, with its small (8KB) unfied I+D cache,
> you will see good gain from load+Op combining, even if going by cycle
> count in the manual they are the same.
> For Pentium , not necessarily so.

Right:

My Pentium-optimized Word Count program ran nearly twice as fast (in 
cycle counts) on a Pentium as on a 486. The inner loop was inverted to 
maximize the load-use distance and I got close to perfect pairing:

 From memory, similar to

REPT 64
   add ax,dx
   mov dx,increment_table[bx]
   mov bl,[es:di]	;; 64 KB table to classify a pair of chars
   mov di,[si+OFFSET]

   add ax,dx
   mov dx,increment_table[bx+16]
   mov bh,[es:di]
   mov di,[si+OFFSET+2]
ENDM

On the Pentium this was only possible with separate load and operate 
instructions.

Terje

-- 
- <Terje.Mathisen at tmsw.no>
"almost all programming can be viewed as an exercise in caching"