Deutsch English Français Italiano |
<va1412$3881u$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Brett <ggtgp@yahoo.com> Newsgroups: comp.arch Subject: Re: Banked register files Date: Tue, 20 Aug 2024 03:54:11 -0000 (UTC) Organization: A noiseless patient Spider Lines: 46 Message-ID: <va1412$3881u$1@dont-email.me> References: <va0eev$31fml$1@dont-email.me> <484586d667d1e9e7ae11184dbd362619@www.novabbs.org> <va0k4v$32dgq$1@dont-email.me> <2cf5a18a58a4281b1b67935b31a8fe49@www.novabbs.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Tue, 20 Aug 2024 05:54:11 +0200 (CEST) Injection-Info: dont-email.me; posting-host="d70a99a3390f4a82bea332449318e856"; logging-data="3416126"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+QJYZcSwgjpu3C3N9Crrxf" User-Agent: NewsTap/5.5 (iPad) Cancel-Lock: sha1:/iB1BZ8TEiZcwoMPQXVU3c4jxT4= sha1:qAHOVqp5hFFElTKem88o+b9wEEw= Bytes: 3057 MitchAlsup1 <mitchalsup@aol.com> wrote: > On Mon, 19 Aug 2024 23:23:11 +0000, Brett wrote: > >> MitchAlsup1 <mitchalsup@aol.com> wrote: >>> On Mon, 19 Aug 2024 21:46:07 +0000, Brett wrote: >>> >>>> Banked register files, a mental exercise at expanding the register file. >>>> Four Banked register files, a mental exercise at expanding the register file. With three operand RISC you have you have three 5 bit register specifiers using 15 bits. If instead you have four banks of sixteen registers you have a 2 bit bank specifier and three 4 bit register specifiers with one override bit for the destination for 15 total bits, the same as a 32 register RISC chip. The override bit specifies bank zero for destination, 64 total registers. Two operand plus 16 bit offset instructions would need to sacrifice one bit of offset. Four operand instructions would save two bits, quite useful. Addressing can be done from any bank. The compiler can handle large banks easily, simple dependency grouping and if you need more than 16 registers for a single calculation you use the Base override flag to total to the base registers. So you have two chains that total in two banks and both write to the base registers where the last total of the two chains are added. Call and return parameters are in the base registers. Simple code only uses base registers, or base plus one bank. Is this a good idea, i think so, but this is a mental exercise, it proves I am mental. ;) How does banked compare to high registers? Slightly better. Intel could pull off something like this to one up ARM. A new fixed width instruction set with a nice patent moat, and fits the x86 mindset. Yes you can do Rd,[Rbase+Rindex<<scale+LargeDisplacement] Large displacements would be in extension words like My 66000. Nothing stops you from doing add from memory, besides being costly in opcode bits and die size.