Deutsch English Français Italiano |
<8c40234e61f022a506f56f7422cf27c5@www.novabbs.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: mitchalsup@aol.com (MitchAlsup1) Newsgroups: comp.arch Subject: Re: is Vax adressing sane today Date: Sun, 8 Sep 2024 00:52:25 +0000 Organization: Rocksolid Light Message-ID: <8c40234e61f022a506f56f7422cf27c5@www.novabbs.org> References: <vbd6b9$g147$1@dont-email.me> <memo.20240905225550.19028d@jgd.cix.co.uk> <2024Sep6.080535@mips.complang.tuwien.ac.at> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: i2pn2.org; logging-data="1240770"; mail-complaints-to="usenet@i2pn2.org"; posting-account="65wTazMNTleAJDh/pRqmKE7ADni/0wesT78+pyiDW8A"; User-Agent: Rocksolid Light X-Rslight-Site: $2y$10$Gf1oLpkaSUZ6vYOGB0jX/eSHOru9wN7Rqs1fTQVGHQXTyHEvM8.8e X-Rslight-Posting-User: ac58ceb75ea22753186dae54d967fed894c3dce8 X-Spam-Checker-Version: SpamAssassin 4.0.0 Bytes: 2357 Lines: 35 On Fri, 6 Sep 2024 6:05:35 +0000, Anton Ertl wrote: > jgd@cix.co.uk (John Dallman) writes: >>Memory-to-memory instructions, in general, are hard to get to run fast >>with today's processors and memory, simply because memory access times >>are long enough for many register-to-register instructions to execute. > > Given modern OoO technology, even VAX can fly. It does not matter > whether, say, > > *a++ = *b++ + *c++; > > is encoded as 1 VAX instruction, or as 4 ARM A64 instructions, or as 7 > RISC-V instructions, what goes on inside the OoO engine is pretty > similar in all cases, and so is the performance. When I faced a similar set of desires, I had my movememory MM instruction do:: for( control_register = 0, control_register < Rs3, control+register+=size ) rd[control_register] = rs1[control_register]; where size is determined by alignment, memory type (from PTE). Thus, when a page fault or interrupt cuts the instruction in the middle I don't have to recover any of the registers. This also allows the instruction to be thrown over to the Memory Function Unit and be performed in parallel with other calculation instructions. Getting back to the originating:: It is faster these days to write:: a[i] = b[i] + c[i];i++; than the pre/post increment/decrement style of PDP-11.