A one-bit processor explained: reverse-engineering the vintage MC14500B
righto.com
righto.com
This made me remember the first project where I have worked after graduating. It was in a metalworking plant, at a huge rolling mill for aluminum sheet.
The controller for that system could be implemented today in a small micro-controller unit or in an FPGA, but in that old installation the controller occupied 3 cabinets. Two cabinets contained an analog computer made with operational amplifiers, which controlled the speed and torque of all the very large DC motors used in the rolling mills.
The third cabinet contained a one-bit programmable logic controller (PLC), which was very similar to Motorola 14500B.
It was even older, so it was made with TTL gates. However, in the next generation of that PLC, the large PCB with many TTL integrated circuits that implemented it was replaced by a simpler board with 14500B and other CMOS ICs.
So I had to write a program for that 14500B-like programmable logic controller. It read data from a large number of sensors and then switched on or off almost a hundred of hydraulic valves that caused the movements of various things and also the electrical power supplies for various devices, e.g. pumps or fans.
Writing programs for it was far less convenient than it would be to do the same thing today with an ARM MCU, but nonetheless it did the required job without problems.
https://en.wikichip.org/wiki/File:Motorola_MC14500B_Industia...
> Thanks to David of Usagi Electric for driving the MC14500B analysis project and thanks to John McMaster for decapping the chips and creating the MC14500B images
How/where are projects like this initially organized and then driven to completion?
I’d like to answer the question “what went wrong with the first batch of 6502’s ROR instruction,” but don’t have the resources to do that entire project myself.
The 6502 ROR bug sounds like an interesting puzzle. As far as I know, there's nothing conclusive on it. The last I heard is https://www.pagetable.com/?p=406
With that in mind the early ROR behavior should probably be considered like other illegal opcodes as just a side effect of how the decode worked.
Info on what happened when the 'ROR' instruction was used on an early 6502. https://www.pagetable.com/?p=406
It would still be fun to look at the early 6502 and contrast it with the later version to see the changes that were made and how much work was involved.
> In 1977, the MC14500B cost $7.58 in quantities of 100 ($32 in current dollars), which seems expensive. However, at the time, an 8080A CPU cost $20 and a Z80 cost $50 ($85 and $215 in current dollars) so there was a significant cost saving to the MC14500B.5 However, the steady fall of processor prices soon made the MC14500B less attractive.
Perhaps in 1977 you couldn’t source the 4004 in the quantities you might need to make a product leaving you only with more expensive contemporary processors?
"Computers and microcomputers may also be used [for control tasks], but they tend to overcomplicate the task and often require highly trained personnel to develop and maintain the system. A simpler device, designed to operate on inputs and outputs one-at-a-time and configured to resemble a relay system, was introduced. These devices became known to the controls industry as Programmable Logic Controllers (PLC). The Motorola MCI4500B Industrial Control Unit (ICU) is the monolithic embodiment of the PLC's central architecture."
I couldn't find data on how popular the MC14500B was, but I think microcontrollers such as the Texas Instruments TMS1000 were much more popular.
But the user manual has sections on how to translate ladder logic and similar control logic into a program counter circuit and appropriate code, step by step. If someone was familiar with industrial control and basic digital electronics, I think the manual is about all they would need. The same can't be said for most other microcontrollers which are indisputably full computers, with all of their complexity.
One-bit programmable controllers like 14500B were good enough to handle those.
In such old installations, the sensors and actuators that could not be handled by one-bit controllers were handled by analog controllers, unlike in modern installations, where a MCU handles digitally not only the Boolean variables but also the analog values through ADCs and DACs, so arithmetic computations are also required, besides the logic operations that could already be performed by something like 14500B.
Besides that, semi vendors have on occasion been known to manufacture a device that has no market success to due to poor product/market fit, or technology bypassing it by the time it was finished. Most devices were originally made as custom designs for some specific customer or application so perhaps there's a boatload of these in some 1970's car.
Very different order of magnitude but wasn't the connection machine single bit based?
You can call this a 1-bit processing element, but I think calling it a 32-bit serial processor is more descriptive. Processing data serially using a 1-bit ALU was not uncommon, from the early EDSAC computer to the PDP-8/S minicomputer to the Datapoint 2200 desktop computer, but these are not considered 1-bit computers. The Connection Machine was more flexible with word size than these, so calling it a 32-bit computer isn't quite accurate either.
In any case, the MC14500B didn't have any support for bit-serial operations. (For instance, you want the processor to add the carry from one bit to the next bit to do addition.) Arithmetic was possible on the MC14500B (Turing machine and so forth), but it was very slow, taking 12 instructions per bit to manipulate the sum and carry. The documentation recommended using an external chip if you needed to do arithmetic.
More: http://bitsavers.org/pdf/thinkingMachines/CM2/Architecture_a...
I still think it is one of the most interesting computer architectures that ever made it into (low volume) production.
Random Connection Machine fact I found on Wikipedia: Maya Lin, who designed the famous Vietnam War memorial in Washington also designed the exterior of the Connection Machine CM-5.
They later implemented a floating-point accelerator that worked with 32 of the 1-bit processors in "slice-wise" mode to do 32 (and possibly 64) bit arithmetic, where the word was spread across all 32 processors.
The CM-5 used true 32-bit SPARC processors.
Also, the CM-2 had up to 128k bits per processor, and you could have 64k of them in one CM-2.
>"Another key circuit in the processor is the transmission gate. This acts as a switch, either passing a signal through or blocking it."
This is the first time I think I've come across a "transmission gate" circuit in one of your posts. Is this uncommon then? What is the actual input to the transmission gate?
It takes a logic signal as input, as well as a control signal. If the control signal is 1, the logic signal goes through to the output. If the control signal is 0, the transmission gate is disconnected. You can think of it like a relay-controlled switch, or a tri-state buffer.
The nice thing about MOS circuits is the gate resistance is almost infinite, so if you open a pass transistor, a gate on the output side will keep the old value (for a few milliseconds at least). So you can create latches almost for free. This is used very often in microprocessors. The disadvantage is the chip has a minimum clock speed, or else the data will leak away.
Pass transistors / transmission gates can also be used to implement multiplexers, selecting one of the inputs.
A disadvantage compared to regular logic gates is that a logic gate amplifies the input signal, while a pass transistor weakens the input signal. So you usually can't connect two pass transistor circuits together directly.
A bigger problem with a Xerox Alto replica is the wire-wrapped backplane. It would be a pain to redo that by hand.
For most purposes, you'd be better off using the ContrAlto emulator.
Schematic link: http://bitsavers.org/pdf/xerox/alto/schematics ContrAlto link: https://github.com/livingcomputermuseum/ContrAlto
"This is not a Motorola MC14500 computer, but it was the MC14500 that introduced me to the idea of one-bit computing. Exploring ways to reduce the chip count, a series of pencil & paper designs revealed the MC14500 itself could be omitted!"
-- Jeff
[1]https://laughtonelectronics.com/Arcana/One-bit%20computer/On...
[2]https://news.ycombinator.com/item?id=7616831
There's an obvious translation from the ladder logic to a MC14500B program, so it's easy to replace those devices with a simpler MC14500B device.
I even think I've seen ladder logic mentioned in some of the MC14005B documentation (but it's been some time since I looked at that).
According to this article link Ladder Logic still makes the top 50 languages. OK so it's 50. https://spectrum.ieee.org/static/interactive-the-top-program...
[a]: Are there von Neumann architectures with different width code and data?
The iAPX 432 was designed to be Intel's revolutionary follow-on processor to the 8080 with all sorts of bizarre features such as objects implemented in hardware. However, it fell behind schedule, so Intel created the 8086 as a stopgap processor until the iAPX 432 was ready. Things didn't turn out as expected; the 8086 took over the world and the iAPX 432 was a failure.
Even many machines that started out with one instruction per data word (ARM, MIPS, Nova...) eventually evolved to larger data words while keeping the same instruction size. An exception was the PDP-8, but there might have been others.
The IBM 360 had 32 bit data words but instructions were 16, 32 and 48 bits long.
A modern example is RISC-V. A RV64GC chip, for example, has 64 bit data words but the instructions are 32 and 16 bits wide.
The ubiquitous 64-bit ARM has 32-bit instructions and 64-bit data registers.