4 ms·
I have to assume that the TI Lisp chip was effectively just a CADR-on-a-chip (actually Lambda-on-a-chip) rather than a new architecture, necessary to support th
by pinewurst 1y ago
I have to assume that the TI Lisp chip was effectively just a CADR-on-a-chip (actually Lambda-on-a-chip) rather than a new architecture, necessary to support their software base.
- rjsw 1y agoIt has some extra hardware to do type checking in parallel with numeric instructions [1]. [1] https://dl.acm.org/doi/10.1145/1317224.1317226 https://dl.acm.org/doi/10.1145/1317224.1317226
- p_l 1y agoMajor difference between Lambda and TI machines was a switch from 24bit fixnum (and addressing) to 25bit fixnums (and address)
- rjsw 1y agoYou could run 25bit images and microcode on any of the CADR/Lambda/TI machines.
- p_l 1y agoTIL. The only mentions I have seen were of changes for TI Explorer from Lambda, so I could not figure if it involved any kind of different circuitry
- rjsw 1y agoThe change was to remove the "flag bit" from each memory word. This was done before MIT System 99 which was before the first LMI release. The Lambda had memory management hardware that could make use of the extra virtual address space, the CADR didn't. Any of the machines could handle 24 or 25 bit integers.
- amszmidt 1y agoMIT System 99 was made after the first LMI release, which was based on MIT System 98 (and even slightly older releases) - which removed the flag bit. See the release notes here https://tumbleweed.nu/lm-3/sys-msg/sys98-msg.html https://tumbleweed.nu/lm-3/sys-msg/sys98-msg.html programs. ] Pointer Fields Now 25 Bits; Flag Bit Gone. Each typed data word in Lisp machine memory used to have one bit called the "flag bit" which was not considered part of the contents of the word. This is no longer so. There is no longer a flag bit; instead, the pointer field of the word is one bit larger, making it 25 bits in all. This extra bit extends the range of integers that can be represented without allocation of storage, and also extends the precision of small-floats by one bit. On the Lambda processor, the maximum size of virtual memory is doubled. This is the primary reason for the change. Unfortunately, the CADR mapping hardware is not able to use the extra bit as an address bit, so the maximum virtual memory size on a CADR is unchanged. The functions %24-BIT-PLUS, %24-BIT-DIFFERENCE and %24-BIT-TIMES still produce only 24 bits of result. If you wish to have a result the full size of the pointer field, however wide that is, you should use the functions %POINTER-DIFFERENCE and %POINTER-TIMES (the last is new), and %MAKE-POINTER-OFFSET with a first argument of DTP-FIX to do addition. The functions %FLOAT-DOUBLE, %DIVIDE-DOUBLE, %REMAINDER-DOUBLE and %MULTIPLY-FRACTIONS use the full width of the pointer field. The values returned by SXHASH have not changed! They are always positive fixnums less than 2*23.
- kjs3 1y agoI would assume that as well. It was a 32-bit, single chip version of the TI Explorer, which descended directly from the MIT machines.