home bbs files messages ]

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 129,546 of 131,241   
   John Savard to All   
   Concedtina III May Be Returning   
   31 Aug 25 06:17:07   
   
   From: quadibloc@invalid.invalid   
      
   I have had so much success in adjusting Concertina II to achieve my goals   
   more fully than I had thought possible... that I now think that it may be   
   possible to proceed from Concertina II to a design which gets rid of the   
   one feature of Concertina II that has been the most controversial.   
      
   Yes, I think that I could actually do without block structure.   
      
   What would Concertina III look like?   
      
   Well, the basic instruction set would be similar to that of Concertina II.   
   But the P bits would be taken out of the operate instructions, and so   
   would the option of replacing a register specification by a pseudo-   
   immediate pointer.   
      
   The tiny gaps between the opcodes of some instructions to squeeze out   
   space for block headers would be removed.   
      
   But the big spaces for the shortest block header prefixes would be what is   
   used for doing without headers.   
      
   Instead of a block header being used to indicate code consisting of   
   variable-length instructions, variable-length instructions would be   
   contained within a sequence of pairs of 32-bit instructions of this form:   
      
   11110xx(17 bits)(8 bits)   
   11111x(9 bits)(17 bits)   
      
   Instructions could be 17 bits long, 34 bits long, 51 bits long, and so on,   
   any multiple of 17 bits in length.   
      
   In the first instruction slot of the pair, the two bits xx indicate, for   
   the two 17-bit regions of the variable-length instruction area that start   
   in it, if they are the first 17-bit area of an instruction. The second   
   instruction slot only contains the start of one 17-bit area, so only one   
   bit x is needed. Since 17 is an odd number, this meshes perfectly with the   
   fact that the 17-bit area which straddles both words isn't split evenly,   
   but rather one extra bit of it is in the second 32-bit instruction slot.   
      
   I had been hoping to use 18-bit areas instead, but after re-checking my   
   calculations, I found there just wasn't enough opcode space.   
      
   Long instructions that contain immediates would not be part of variable-   
   length instruction code. Instead, their lengths would be multiples of 32   
   bits, making them part of ordinary code with 32-bit instructions.   
      
   Their form would be like this:   
      
   32-bit immediate:   
      
   1010(12 bits)(16 bits)   
   10111(11 bits)(16 bits)'   
      
   where the first parenthesized area belongs to the instruction, and the   
   second to the immediate.   
      
   48-bit immediate:   
      
   1010(12 bits)(16 bits)   
   10110(11 bits)(16 bits)   
   10111(11 bits)(16 bits)   
      
   64-bit immediate:   
      
   1010(12 bits)(16 bits)   
   10110(3 bits)(24 bits)   
   10111(3 bits)(24 bits)   
      
   Since the instruction, exclusive of the immediate, really only needs 12   
   bits - 7 bit opcode, and 5 bit destination register - in each case there's   
   enough additional space for the instruction to begin with a few bits that   
   indicates its length, so that decoding is simple.   
      
   The scheme is not really space-efficient.   
      
   But the question that I really have is... is this really any better than   
   having block headers? Or is it just as bad, just as complicated?   
      
   John Savard   
      
   --- 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