Publication | Closed Access
Step-by-step design and simulation of a simple CPU architecture
30
Citations
3
References
2013
Year
Unknown Venue
Hardware ModelingEngineeringComputer ArchitectureProcessor ArchitectureHardware ArchitectureHardware SecurityComputer DesignSimple 8-Bit CpuModeling And SimulationParallel ComputingInstruction-level ParallelismControl UnitHigh-level Programming LanguageComputer EngineeringWord (Computer Architecture)Computer ScienceSimple Cpu ArchitectureCentral Processing UnitProgram AnalysisFormal MethodsParallel ProgrammingSystem Software
This paper describes a sequence of assignments, each building upon the next, leading students to a working simulation of a simple 8-bit CPU (Central Processing Unit). The design features a classic Von Neumann architecture comprising a simple data path with a few registers, a simple ALU (Arithmetic Logic Unit), and a microprogram to direct all the control signals. The first step involves the design of the ALU which is capable of eight basic operations. The second step guides students to construct a datapath complete with several 8-bit registers. The third step involves the design and implementation of a control unit which uses a microprogram to implement machine code instructions. The microprogram implements nine basic machine language instructions which are sufficient for writing many simple programs. The final step involves adding program memory and an input and output device to form a simple working simulation of a computer. At this point, students may hand-assemble code for their CPU and simulate its execution. All simulations are performed using a free and open source simulator called Logisim which performs digital logic simulations with the ability to build larger circuits from smaller subcircuits. Students can set an adjustable clock rate and observe the internal CPU state and registers as it retrieves instructions and steps through the microcode. The basic CPU architecture provides many opportunities for more advanced exercises, such as adding an instruction fetch unit, adding pipelining, or adding more machine language instructions. The assignments were introduced in a second year course on computer organization, providing an effective hands-on approach to understanding how a CPU actually operates.
| Year | Citations | |
|---|---|---|
Page 1
Page 1