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: Sat, 5 Oct 2024 23:02:28 +0000 Organization: Rocksolid Light Message-ID: <76c2f88bf813f5b9b1e1945ea4cd014e@www.novabbs.org> References: <17537125c53e616e22f772e5bcd61943@www.novabbs.org> <37067f65c5982e4d03825b997b23c128@www.novabbs.org> <5f8ee3d3b2321ffa7e6c570882686b57@www.novabbs.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: i2pn2.org; logging-data="740874"; mail-complaints-to="usenet@i2pn2.org"; posting-account="o5SwNDfMfYu6Mv4wwLiW6e/jbA93UAdzFodw5PEa6eU"; User-Agent: Rocksolid Light X-Spam-Checker-Version: SpamAssassin 4.0.0 X-Rslight-Site: $2y$10$QA1gjvAL50.SEIq0m8xaWeHNR8T9AJ5LJuVPBAWCPZyrpHQubIQtS X-Rslight-Posting-User: cb29269328a20fe5719ed6a1c397e21f651bda71 Bytes: 3108 Lines: 36 On Fri, 4 Oct 2024 4:04:20 +0000, Robert Finch wrote: > Today I am wondering how many predicate registers are enough. Realistically 3 as long as they are orthogonal to each other and to code. > Scanning > webpages reveals a variety. The Itanium has 64-predicates, but they are > used for modulo loops and rotated. Rotating register is Itaniums method > of register renaming, so it needs more visible registers. In a classic > superscalar design with a RAT where registers are renamed, it seems like > 64 would be far too many. Cray had eight vector mask registers. In the ECL logic CRAY used an 8:1 multiplexer costs no more than a 2:1 multiplexer in power and gate count. > I think > the RISCV- Hwatcha has 16 if I looked at the diagram correctly. > I cannot see the compiler making use of very many predicate registers > simultaneously. Since they are not used simultaneously, and register > renaming is in effect, there should not be a great need for predicate > registers. With the orthogonality mentioned above, 3 covers a tree with 8 branches or a 3-deep if()then{}else[}. > Suppose one wants predicated logic in a loop with the predicate being > set outside of the loop. 1 decision per predicate, > It may be desirable to have several blocks of > logic predicated by different predicates in the loop. It is likely > desirable to have more than one predicate then. > ->Reserved four bits in the instruction for predicates. Do not want to > waste bits though. Using a 64-bit instruction.