Deutsch English Français Italiano |
<ii877jl5vj4h1ip4uk16v7n6hdl7hfk2bs@4ax.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: John Savard <quadibloc@servername.invalid> Newsgroups: comp.arch Subject: Re: Concertlina II: Full Circle Date: Wed, 19 Jun 2024 21:39:11 -0600 Organization: A noiseless patient Spider Lines: 44 Message-ID: <ii877jl5vj4h1ip4uk16v7n6hdl7hfk2bs@4ax.com> References: <v4c17j5eo503i93fb7imjpom5jqs3oivtv@4ax.com> <50c85586e1aec0eef53e83cef7cb1d5d@www.novabbs.org> <4mb37jdb25571s1q1pjlc3ludaaks7tukr@4ax.com> <e4c37jd4l9spbi5b23b525unp9p60ird8q@4ax.com> <1401408dead0bbc0b1e2ea7e053c873a@www.novabbs.org> <fbn37jpc0banppburc1t6r4hnp3kih23ui@4ax.com> <adc60d6b4791061485b8290897609bb3@www.novabbs.org> <el047jt94n4eb0l3f829p1jnatncunm5dj@4ax.com> <b9790766475e970e390f6c88acba0577@www.novabbs.org> <4dk47j1pimbd443oeh06p36ickbdklr2ni@4ax.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Injection-Date: Thu, 20 Jun 2024 05:39:13 +0200 (CEST) Injection-Info: dont-email.me; posting-host="c0884c951618dc0b5d1da09bdf5ffb68"; logging-data="2532405"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19CozpnPfk/DbjviA3r0tKq+JHdOA9pCx8=" Cancel-Lock: sha1:fvIBXEXORwZd1CpGvX2peuSLz6k= X-Newsreader: Forte Free Agent 3.3/32.846 Bytes: 3499 On Tue, 18 Jun 2024 21:36:06 -0600, John Savard <quadibloc@servername.invalid> wrote: >On Tue, 18 Jun 2024 23:57:54 +0000, mitchalsup@aol.com (MitchAlsup1) >wrote: >>John Savard wrote: > >>> And so you indicate this explicitly in VVM as well. I tended to assume >>> only a limited number of registers would be needed to live in, plus I >>> have both floating and integer register files, hence the differences. >> >>It ends up that the majority of register uses in a loop do not need to >>be visible outside of the loop. This is almost the contrapositive of >>annotating which registers are temporary in the loop. 90%+ of loops do >>not even need the index register to be live outside of the loop. >> >You have convinced me here to learn from your wisdom: I will do two >things. One is to add a bit that decides whether my 1 bits (confined >to a single group of 8 registers) are live-in or live-out bits. The >other is to specify clearly to implementors that if a register is >specified as "live-in" but is never actually used in a loop, this must >not cause any problems. I have not yet added my attempt at an imitation of VVM to Concertina II. However, I have now laid some important groundwork for it. In my architecture, there are already Cray-style long vectors. They are intended to nbe the principal and most efficient way of working with vector quantities in the architecture. So if my VVM-alike was disjoint from them, and could only interact with them through memory, this would be an awkwardness in the ISA that needlessly constrains performance. So I've added operate instructions that allow operations where one operand is in a normal register, and the other operand is in a selected element of a vector register. The element is itself specified by the contents of an integer register, for convenient use within loops. Thus, a VVM-alike loop, instead of going from some vectors in memory to other vectors in memory, could go from some vector registers to other vector registers. The vectors aren't virtual any more. John Savard