Deutsch English Français Italiano |
<5f8ee3d3b2321ffa7e6c570882686b57@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: Tonights Tradeoff - Background Execution Buffers Date: Thu, 26 Sep 2024 14:11:09 +0000 Organization: Rocksolid Light Message-ID: <5f8ee3d3b2321ffa7e6c570882686b57@www.novabbs.org> 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> <vd352q$3s1e$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: i2pn2.org; logging-data="3584008"; mail-complaints-to="usenet@i2pn2.org"; posting-account="65wTazMNTleAJDh/pRqmKE7ADni/0wesT78+pyiDW8A"; User-Agent: Rocksolid Light X-Rslight-Site: $2y$10$d6TI7KJ9xXpR46x8AWW8x.X.JVdt0yvA9HgvIxEq0C8kicYO8hlZO X-Spam-Checker-Version: SpamAssassin 4.0.0 X-Rslight-Posting-User: ac58ceb75ea22753186dae54d967fed894c3dce8 Bytes: 3562 Lines: 42 On Thu, 26 Sep 2024 8:13:12 +0000, Robert Finch wrote: > 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. The depth of predication should be such that if FETCH will "get there" by the time the branch "resolves" that number of instructions should be predicated.