The Knob & Switch Computer:
An Incremental Machine Simulator
for Breadth-Based CS Courses
Grant Braught
Department of Mathematics and Computer Science
Dickinson College
General Information:
The Knob & Switch Computer uses an intuitive metaphore and an incremental approach to introduce introductory CS students to the big ideas in computer organization. Students are introduced to a datapath containing an ALU and 4 registers. The ALU operation and the registers on which it will operate are selected by rotating (clicking) a collection of knobs. A second increment adds a main memory unit to the datapath along with switches that control the flow of data between the CPU and the memory. The third increment adds a microprogram control unit that allows the machine to be programmed using 1's and 0's that correspond to the knob and switch settings. The final increment turns the K&S into a complete stored program computer that executes assembly/machine language programs stored in its main memory unit.
The Knob & Switch Computer Simulations:
NOTE: The following links open a new browser window and work best if your browser's default fonts are set to 12 point.
- The K&S Datapath Simulation
- This simulator introduces the K&S datapath. The key features are the knobs and switches that can be set to control the operands, operations and storage of the result.
- The K&S Datapath Simulation with Main Memory
- This simulator adds a main memory unit to the datapath to increase the storage capacity of the machine. The key features are that memory accesses require more time than register accesses, and that memory and ALU operations happen in parallel even though one of them will be ignored.
- The K&S with Microprogramming
- This simulator makes the K&S programmable by adding a microprogram store. The concept of microprogramming is intuitive in that the bits of each microprogram simply encocde the positions of the knobs and switches.
- The Complete K&S Model 2 Computer
- This simulator is a complete stored program computer. It uses a control unit that translates machine language commands into the microinstructions that carry out the operation. Instructions entered in main memory locations in assembly language are automatically assembled into machine language. The assembly / machine language instructions are documented on the: Assembly/Machine Language Programming Card.