News for hackers. Stuff that matters.
Re:Architecture of Lisp Machines (2008) [pdf] by fulafel on Saturday July 03, 2021 @06:03AM (#27720539)
Speed, like is usual with hw vs software implementations of things. But the difference is these days less than it used to be, because processors spend most of their time stalled on all kinds of things and the ALU processing capacity is underused most of the time.

An interesting question for a modern ISA design would be to figure out how to make tagged words and memory work well with SIMD.

Re:Architecture of Lisp Machines (2008) [pdf] by gumby on Saturday July 03, 2021 @11:23AM (#27722188)
> An interesting question for a modern ISA design would be to figure out how to make tagged words and memory work well with SIMD.

Not sure what the issue might be. Let’s say you’re doing a multiply-add: you’d call the one for the data type you want and if any operand were of the wrong type you’d get a fault. Am I missing something?

Re:Architecture of Lisp Machines (2008) [pdf] by fulafel on Saturday July 03, 2021 @12:00PM (#27722517)
That sounds like a lot of mode bits or instruction variants to me. But maybe it wouldn't be a problem.
Re:Architecture of Lisp Machines (2008) [pdf] by gumby on Saturday July 03, 2021 @12:33PM (#27722808)
Consider that your SIMD instruction might itself take a tag mask and the ALU need only do equality on the tag field. In fact it could do that in parallel with the ALU op; on mismatch you could simply discard the current state and abort the operation. However realistically you’d want the same set of SIMD instructions as an I tagged architecture anyway.

Also I expect any compiler would assume that the contents of an array subject to SIMD computation would be homogeneous anyway, perhaps trying to enforce it elsewhere.

In any case this doesn’t seem like a big deal to me…but I could be wrong!

Re:Architecture of Lisp Machines (2008) [pdf] by fulafel on Sunday July 04, 2021 @05:29AM (#27728360)
Yep, sounds like a good sketch.

I guess to really get into it a good start would be to work with existing SIMD and take a quantitative approach to what is actually the most hot part of it. I wonder if any existing language implementations (eg Common Lisp) attempt to do these kinds of things in the first place.