Implementing a One Address CPU in Logisim
Charles W. Kann, Gettysburg College
Copyright Year: 2016
Publisher: A.T. Still University
Conditions of Use
Given the title of the book limits the coverage of the book to implementing a one address CPU, I think the book does a good job of covering the basics required to understand the components necessary to build this type of CPU as well as the... read more
Given the title of the book limits the coverage of the book to implementing a one address CPU, I think the book does a good job of covering the basics required to understand the components necessary to build this type of CPU as well as the reasoning behind the design choices made. The book also goes into some detail about other possible architectures and provides good insight on assembly language, and the assembly process.
I think the book portrays the material accurately, however there were several grammatical and spelling errors that stood out from the generally excellent material.
The ideas presented in this book are fundamental to understanding the basics of modern processors and could be found in a textbook forty years ago and without a dramatic shift in computing technology will probably be valid for the foreseeable future.
I think this book is written in a way that is very easy to understand and presents concepts in a way that I think is very accessible to students see the material for the first time. The only problem I encountered was the occasional grammatical or spelling error that detracted from the flow of information and caused some temporary confusion.
I did not have any issues with the consistency of the material
The modularity of the book was on par with a commercial textbook, in my opinion.
I thought the organization was logical and concepts were presented in a order that allows later topics to build on concepts introduced earlier in the book.
The interface with the book was through a PDF and worked normally. Ideally this book would be built as a website with separate pages devoted to the different chapters and material that is currently included as a zip file, accessible based on the chapter it goes with. Obviously this would take time and money and is not strictly necessary
I found several grammatical and spelling errors in the text. This is unfortunate because these errors really detract from an otherwise good text and could be fixed with less that a week of the authors or a graduate students time.
The content of this book is not culturally insensitive or offensive.
I really liked this book and am considering using at least part of it in a future class. Also the other two books by this author, Introduction To MIPS Assembly Language Programming, and Digital Circuit Projects: An Overview of Digital Circuits Through Implementing Integrated Circuits - Second Edition, are also valuable, with with caveat of a few grammatical and spelling errors.
Table of Contents
- 1.1 Basic Components in a CPU
- 1.2 Comparisons of Computer Architectures
- 1.3 Von Neumann and Harvard Architectures
2. Assembly Language
- 2.1 What is Assembly Language
- 2.2 Assembly Language Caveats
- 2.3 Assembler Directives
- 2.4 Data types
- 2.5 Designing an Assembly Language
- 2.6 Assembler Programs
3. Machine Code
- 3.1 Overview of the machine code instruction format
4. Assembler program
- 4.1 Running a program on the One-Address CPU
5. CPU implementation
- 5.1 The sign extend unit
- 5.2 The ALU
- 5.3 The Control Unit (CU)
- 5.4 The CPU
- 5.5 Implementing the CU
About the Book
Most computer users have an incorrect, but useful, cognitive metaphor for computers in which the user says (or types or clicks) something and a mystical, almost intelligent or magical, behavior happens. It is not a stretch to describe computer users as believing computers follow the laws of magic, where some magic incantation is entered, and the computer responds with an expected, but magical, behavior. This magic computer does not actually exist. In reality computer are machines, and every action a computer performs reduces to a set of mechanical operations. In fact the first complete definition of a working computer was a mechanical machine designed by Charles Babbage in 1834, and would have run on steam power. Probably the biggest success of Computer Science (CS) in the 20th century was the development of abstractions that hide the mechanical nature of computers. The fact that average people use computers without ever considering that they are mechanistic is a triumph of CS designers. This purpose of this monograph is to break the abstract understanding of a computer, and to explain a computer's behavior in completely in mechanistic terms. It will deal specifically with the Central Processing Unit (CPU) of the computer, as this is where the magic happens. All other parts of a computer can be seen as just providing information for the CPU to operate on. This monograph will deal with a specific type of CPU, a one-address CPU, and will explain this CPU using only standard gates, specifically AND, OR, NOT, NAND and XOR gates, and 4 basic Integrated Circuits (ICs), the Decoder, Multiplexer, Adder, and Flip Flop. All of these gates and components can be described as mechanical transformations of input data to output data, and the overall CPU can then be seen as a mechanical device.
About the Contributors
Charles W. Kann, Gettysburg College