Deutsch English Français Italiano |
<vucbbe$mvlc$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Robert Finch <robfi680@gmail.com> Newsgroups: comp.arch Subject: Re: asynch register rename Date: Wed, 23 Apr 2025 23:31:56 -0400 Organization: A noiseless patient Spider Lines: 15 Message-ID: <vucbbe$mvlc$1@dont-email.me> References: <vbgdms$152jq$1@dont-email.me> <vtsbga$1tu26$1@dont-email.me> <b8859e8d6b909a4505c0f487a6a0fe35@www.novabbs.org> <vu2542$38qev$1@dont-email.me> <vu46su$1170i$1@dont-email.me> <2025Apr21.080532@mips.complang.tuwien.ac.at> <d47cdad26528b4d2309ac9df60120315@www.novabbs.org> <2025Apr22.071010@mips.complang.tuwien.ac.at> <DwONP.2213540$eNx6.1757109@fx14.iad> <2025Apr22.193103@mips.complang.tuwien.ac.at> <f5e5bf81ac2c7e2066d2a181c5a70baf@www.novabbs.org> <2025Apr23.194456@mips.complang.tuwien.ac.at> <126700f99b6f97d7483bb5355d68c361@www.novabbs.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 24 Apr 2025 05:31:59 +0200 (CEST) Injection-Info: dont-email.me; posting-host="c4194d5464e84b265786cd07de92deb0"; logging-data="753324"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Avs2XchsHd9HgTJiof5ezfReNerdYRU8=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:0z0MNGVYH4lxh+0CV8d52PhHia8= Content-Language: en-US In-Reply-To: <126700f99b6f97d7483bb5355d68c361@www.novabbs.org> Bytes: 2515 Changed the rename logic for StarkCPU, moved it from the in-order rename stage to an asynchronous process that operates on the re-order buffer. Primary reason was instructions may need too many destination register renames, causing stalls in the pipeline. As an async process the name supplier picks off up to four destination registers per clock. Following instructions do not stall because of the name supply. Usually this would be four instructions worth, but it may be less. This is in lieu of implementing instructions with micro-ops. Instructions with multiple targets could be implemented using multiple micro-ops. For Stark many instructions have a compare-to-zero built in that requires updating a condition register in addition to the destination register update. Signified with the ‘.’ suffix in assembler. With both carry and compare-to-zero at the same time there may be three destination registers in an instruction.