Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <va1412$3881u$1@dont-email.me>
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.