Deutsch English Français Italiano |
<a3304eadd68c10acb8385c43e326f4ec@www.novabbs.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!news.quux.org!news.nk.ca!rocksolid2!i2pn2.org!.POSTED!not-for-mail From: mitchalsup@aol.com (MitchAlsup1) Newsgroups: comp.arch Subject: Re: Why VAX Was the Ultimate CISC and Not RISC Date: Tue, 11 Mar 2025 17:57:02 +0000 Organization: Rocksolid Light Message-ID: <a3304eadd68c10acb8385c43e326f4ec@www.novabbs.org> References: <vpufbv$4qc5$1@dont-email.me> <2025Mar1.125817@mips.complang.tuwien.ac.at> <vpvrn5$2hq0$1@gal.iecc.com> <2025Mar1.232526@mips.complang.tuwien.ac.at> <vq2dfr$2skk$1@gal.iecc.com> <2025Mar2.234011@mips.complang.tuwien.ac.at> <5pkg9l-kipt.ln1@msc27.me.uk> <2025Mar3.174417@mips.complang.tuwien.ac.at> <vq4qav$1dksd$1@dont-email.me> <vq5dm2$1h3mg$5@dont-email.me> <2025Mar4.110420@mips.complang.tuwien.ac.at> <vq829a$232tl$6@dont-email.me> <2025Mar5.083636@mips.complang.tuwien.ac.at> <vqdljd$29f8f$2@paganini.bofh.team> <vqdrh9$3cdrc$1@dont-email.me> <vqek6h$3fro6$1@dont-email.me> <fe70b48cd6fef0aaf89278163d8b6322@www.novabbs.org> <vqfmr4$3npgk$1@dont-email.me> <vqg04o$3p80h$1@dont-email.me> <vqgbao$3rbkh$1@dont-email.me> <9371fe9be75cdd606c876f539e1d2d78@www.novabbs.org> <vqnps4$1j63b$1@dont-email.me> <0da86de26bac1912b190793512255aa4@www.novabbs.org> <vqofeo$1qgv6$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="3912459"; mail-complaints-to="usenet@i2pn2.org"; posting-account="o5SwNDfMfYu6Mv4wwLiW6e/jbA93UAdzFodw5PEa6eU"; User-Agent: Rocksolid Light X-Rslight-Site: $2y$10$9SAptk2bSrt4iHxpb1P/Me58wtXt8firTsOETuKUVSOoeKRF2bY5C X-Rslight-Posting-User: cb29269328a20fe5719ed6a1c397e21f651bda71 X-Spam-Checker-Version: SpamAssassin 4.0.0 On Tue, 11 Mar 2025 4:49:16 +0000, BGB wrote: > On 3/10/2025 7:53 PM, MitchAlsup1 wrote: ------------------- >>> I guess one could argue the use-case for adding a generic funnel shift >>> instruction. >> >> My 66000 has CARRY-SL/SR which performs a double wide operand shifted >> by a single wide count (0..63) and produces a double wide result {IO}. >> > > OK. > > >>> If I added it, it would probably be a 64-bit encoding (generally needed >>> for 4R). >> >> By placing the width in position {31..37} you can compress this down >> to 3-Operand. >> > > It is 3 operand if being used as a 128-bit shift op. > But, funnel shift operators implies 3 independent inputs and 1 output. And 2 shifts or exotic masking. Which is why I stopped early. >> ---------- >>>> Architecture is more about what gets left OUT than what gets left IN. >>> >>> Well, except in this case it was more a question of trying to fit it in >>> with C semantics (and not consideration for more ISA features). >> >> Clearly, you want to support C semantics--but you can do this in a way >> that also supports languages with real bit-field support. >> --------------- > > Yeah. > > Amidst debugging and considering Verilog support... > > >>> There are still some limitations, for example: >>> In my current implementation, CSR's are very limited (may only be used >>> to load and store CSRs; not do RMW operations on CSRs). >> >> My 66000 only has 16 CPU CRs, and even these are R/W through MMI/O >> space. All the other (effective) CRs are auto loaded in line quanta. >> >> This mechanism allows one CPU to figure out what another CPU is up to >> simply by meandering through its CRs... >> > > I had enough space for 64 CRs, but only a small subset are actually > used. Some more had space reserved, but were related to non-implemented > features. > > RISC-V has a 12-bit CSR space, of which: > Some map to existing CRs; > My whole CR space was stuck into an implementation-dependent range. My whole space is mapped by BAR registers as if they were on PCIe. > Some read-only CSRs were mapped over to CPUID. I don't even have a CPUID--if you want this you go to config space and read the configuration lists and extended configuration lists. > Of which, all of the CPUID indices were also mapped into CSR space. CPUID is soooooo pre-PCIe. > > Seemingly lacks defined user CSRs for timer or HW-RNG, which do exist in > my case. It is very useful to be able to access a HW timer in userland, > as otherwise it would waste a lot of clock-cycles using system calls for > "clock()" and similar. That is why they are ALL available in MMI/O Space. If this user needs access to that timer, then there is a PTE that translated the LD/ST into an access to that device. > >>> Though, have noted that seemingly some number of actual RISC-V cores >>> also have this limitation. >>> >>> >>> A more drastic option might be to try to rework the hardware interfaces >>> and memory map hopefully enough to try to make it possible to run an OS >>> like Linux, but there doesn't really seem to be a standardized set of >>> hardware interfaces or memory map defined. >>> >>> Some amount of SOC's though seem to use a map like: >>> 00000000..0000FFFF: ROM goes here. >>> 00010000..0XXXXXXX: RAM goes here. >>> ZXXXXXXX..FFFFFFFF: Hardware / MMIO >> >> My 66000:: >> 00 0000000000000000..FFFFFFFFFFFFFFFF: DRAM >> 01 0000000000000000..FFFFFFFFFFFFFFFF: MMI/O >> 10 0000000000000000..FFFFFFFFFFFFFFFF: config >> 11 0000000000000000..FFFFFFFFFFFFFFFF: ROM >> >> Whatever you are trying to do, you won't run out of address space until >> 64 bits becomes insufficient. Note: all HW interfaces are in config >> space >> and all CRs are in MMI/O space. >> > > There seems to be a lot here defined in terms of 32-bit physical spaces, > including on 64-bit targets. > > Though, thus far, my existing core also has pretty all of its physical > map in 32-bit space. My 66000 does not even have a 32-bit space to map into. You can synthesize such a space by not using any of the top 32-address bits in PTEs--but why ?? > > The physical ranges from 0001_00000000 .. 7FFF_FFFFFFFF currently > contain a whole lot of nothing. > > > I once speculated on the possibility of special hardware to memory-map > the whole SDcard into physical space, but nothing has been done yet (and > such a hardware interface would be a lot more complicated than my > existing interface). > > > An intermediate option being to expand the SPI interface to support 256 > bit bursts. My interconnect bus is 1 cache line (512-bits) per cycle plus address and command. > Say: > P_SPI_QDATA0..P_SPI_QDATA3 > > It appears this has already been partly defined (though not fully > implemented in the 256-bit case). > > Where, the supported XMIT sizes are: > 8 bit: Single Byte > 64 bit: 8 bytes > 256 bit: 32 bytes > > With larger bursts mostly to reduce the amount of round-trip delay over > the bus. My 66000 interconnect bus can transmit a whole page in a single burst--that appears ATOMIC to interested 3rd parties.