Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.arch    |    Apparently more than just beeps & boops    |    131,241 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 130,339 of 131,241    |
|    Robert Finch to BGB    |
|    Re: Tonights Tradeoff (4/4)    |
|    22 Nov 25 12:45:57    |
      [continued from previous message]              Many vector machines (RISCV-V) have a way of specifying the vector       length and element size, but it tends to be a global setting which may       be overridden in some cases by specifying in the instruction. For Qupls       it also allows setting based on the data type which is a bit of a       misnomer, it would be better named data format. It is just three bits in       the instruction that select one of the fields in the VLEN, VELSZ       registers. The instruction itself specifies the data type for the       operation on an opaque bag of bits. It is possible to encode selecting       the integer size fields, then performing a float operation on the data.              The size agnostic instructions use the micro-op translator to convert       the instructions into size specific versions. The translator calculates       the number of architectural registers required then puts the appropriate       number of instructions (up to eight) in the micro-op queue.              Therefore, there are lots of vector instructions in the ISA. SIMD type       instructions where the size of a vector is assumed to be one register,       and the element size is specified by the instruction. So, separate       instructions for 1,2,4 or 8 elements. (For example 50 instructions *       four different sizes = 200 instructions). Then also size agnostic       instructions where the size/format comes indirectly from the VLEN       (vector length) and VELSZ (vector lane size) registers.              The size agnostic instructions allow writing a generic vector routine       without needing to code the size of the operation. This avoids having a       switch statement with a whole bunch of cases for different vector       lengths. It also avoids having thousands of vector instructions. (50       instructions * 5 different lanes sizes * 64 different lengths).              The vectors are opaque blobs of bytes in my case. Size specs are in       terms of bytes. The vectors are not a fixed length. They may (currently)       use from 0 to 8 GPR registers. Hence the need to specify the length in       use. While the length could be specified as part of the format for the       instruction, that would require a wide instruction.              *****              .flic file format is supposed to be fast enough to allow use “on the       fly”. But I just decompress all the frames into a matrix of bitmaps at       game startup, then select the appropriate one based on direction and       timing. With dozens of different sprites and hundreds of frames, I think       it takes about 3GB of memory just for the sprite data. I had trouble       running this on my machine a few years ago, but maybe with newer       technology it could work.              Experimented some with LZ4 and Huffman encoding. Huffman used for ECC logic.              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca