Path: ...!news.nobody.at!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Robert Finch Newsgroups: comp.arch Subject: Re: Tonights Tradeoff Date: Thu, 12 Sep 2024 06:21:29 -0400 Organization: A noiseless patient Spider Lines: 51 Message-ID: References: <17537125c53e616e22f772e5bcd61943@www.novabbs.org> <591c5cb1b4634d2b73e5bebad1e5d384@www.novabbs.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Thu, 12 Sep 2024 12:21:31 +0200 (CEST) Injection-Info: dont-email.me; posting-host="cda5ef7a46dacac920df66c1f90c09de"; logging-data="225446"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+CatQENXgPVEPTISoEMvE8X1p38tEbBDY=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:BE5VytudPimWONb9vJ9BwcwhGOc= In-Reply-To: Content-Language: en-US Bytes: 3396 On 2024-09-12 4:21 a.m., BGB wrote: > On 9/12/2024 12:37 AM, Thomas Koenig wrote: >> MitchAlsup1 schrieb: >>> On Tue, 10 Sep 2024 7:00:00 +0000, BGB wrote: >>> >>>> On 9/9/2024 10:59 PM, Robert Finch wrote: >>>>> >>>>> Still trying to grasp the virtual vector method. Been wondering if it >>>>> can be implemented using renamed registers. >>>>> >>>> >>>> I haven't really understood how it could be implemented. >>>> But, granted, my pipeline design is relatively simplistic, and my >>>> priority had usually been trying to make a "fast but cheap and simple" >>>> pipeline, rather than a "clever" pipeline. >>> >>> "Good, Fast, Cheap; choose any 2" Lee Higbe 1982. >> >> Still beeter than "Good, Fast, Cheap: Chose one." > > One can take note of all my corner-cutting... > > I was mostly trying to prioritize fast and cheap, but sadly it is > neither as fast nor as cheap as I would want. > > > > Though, ironically, will put at least some of the cost blame on RISC-V, > which doesn't go quite so hard on the corner cutting. > > But, one can maybe argue that it is a bit much to try to push for a 64- > bit ISA that only natively has 32-bit integer multiply, ... > > Though, this is not to say that other possible implementations couldn't > try to do everything "properly". > > I am partial to good and fast myself. Spare no expense. Have to ensure that things are expensive enough, but no more expensive than needed. Cost is always a factor. There were case statements and shifters to handle applying a vector mask for different precisions. Too much logic. So, the case statements were eliminated, and the lowest common denominator used. Now, vector masking is applied only at the byte level. There is a mask bit for each byte of the vector register. To mask off a tetra-byte for instance, four consecutive mask bits must be cleared. I do not think this is a big deal as it is a matter of loading one constant or another into a mask register. A helper instruction to handle the masking could be added.