The IBM PC included a coprocessor socket for the 8087 floating-point unit. Logical enough; some customers wanted to use the 8087 to make numeric calculations run faster.
But why was the 8087 designed such that it needed a special socket? Why could it not be simply placed on an expansion card? As I understand it, the ISA bus basically just runs the address and data lines from the CPU, such that RAM could be placed on expansion cards (and indeed this was the only way to go past 64K), and if that can be done with RAM, I would expect it to be doable with a coprocessor.
Was it because its designers were not sure in advance that 8088 computers would have expansion slots?
Was it because expansion slots were scarce, and it was considered worth saving one?
Or was there some reason a floating-point coprocessor needed a special socket?