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

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

Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Robert Finch <robfi680@gmail.com>
Newsgroups: comp.arch
Subject: Re: Tonights Tradeoff - Background Execution Buffers
Date: Thu, 26 Sep 2024 04:13:12 -0400
Organization: A noiseless patient Spider
Lines: 39
Message-ID: <vd352q$3s1e$1@dont-email.me>
References: <vbgdms$152jq$1@dont-email.me>
 <17537125c53e616e22f772e5bcd61943@www.novabbs.org>
 <vbj5af$1puhu$1@dont-email.me>
 <a37e9bd652d7674493750ccc04674759@www.novabbs.org>
 <vbog6d$2p2rc$1@dont-email.me>
 <f2d99c60ba76af28c8b63b9628fb56fa@www.novabbs.org>
 <vc61e6$21skv$1@dont-email.me> <vc8gl4$2m5tp$1@dont-email.me>
 <vcv5uj$3arh6$1@dont-email.me>
 <37067f65c5982e4d03825b997b23c128@www.novabbs.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 26 Sep 2024 10:13:14 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="ce9c1918d4f27312f05c3755708ed671";
	logging-data="127022"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19Of8K4pY88dRmRGocHPccGiS5fAu44YYQ="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:A+itJbO3NJrnpo+nALWa9FNastw=
Content-Language: en-US
In-Reply-To: <37067f65c5982e4d03825b997b23c128@www.novabbs.org>
Bytes: 3407

On 2024-09-24 4:38 p.m., MitchAlsup1 wrote:
> On Tue, 24 Sep 2024 20:03:29 +0000, Robert Finch wrote:
> 
>> Under construction: Q+ background execution buffers for the block memory
>> operations. For instance, a block store operation can be executed in the
>> background while other instructions are executing. Store operations are
>> issued when the MEM unit is not busy. Background instructions continue
>> to execute even when interrupts occur. The background operations may be
>> useful for initializing blocks of memory that are not needed right-away.
>> When the operation is issued a handle for the buffer is returned in the
>> destination register so that the status of the operation may be queried,
>> or the operation cancelled.
> 
> This is how My 66000 performs:: LDM, STM, ENTER, EXIT, MM, and MS.
> Addresses are AGENED and then a state machine over in the memory
> unit performs the required steps. {{Not usefully different than the
> divider performing the individual steps of division.}} While the
> unit performs its duties, other units can be fed and complete
> other instructions.
> 
> You just have to mark the affected registers to prevent hazards.

Q+ releases the registers right away, so things can continue on.
Q+ captures the register values at issue then does not modify the 
registers. Did not want an instruction with three updates happening. It 
keeps track of its own values. In theory anyway. Have not got to testing 
it yet. A status operation might be used to query the final operation 
results.

Altering Q+ to use 64-bit instructions and 256 registers instead of 
supporting a vector instruction set. Two pipeline stages can be removed 
then and it is a simpler design. Code density will decrease <200%. 
Relying on software to assign registers for vectors.

Also adding a predicate field to instructions. Branches are horrendously 
slow in this simple implementation. It may be faster to predicate a 
dozen instructions.