System Architecture An Ordinary Engineering Discipline - Paul, Wolfgang J.; Baumann, Christoph; Lutsyk, Petro; Schmaltz, Sabine; SpringerLink (Online service) (Cham : Springer International Publishing : Imprint: Springer, 2016)
The pillars of the bridge on the cover of this book date from the Roman Empire and they are in daily use today, an example of conventional engineering at its best. Modern commodity operating systems are examples of current system programming at its best, with bugs discovered and fixed on a weekly or monthly basis. This book addresses the question of whether it is possible to construct computer systems that are as stable as Roman designs. The authors successively introduce and explain specifications, constructions and correctness proofs of a simple MIPS processor; a simple compiler for a C dialect; an extension of the compiler handling C with inline assembly, interrupts and devices; and the virtualization layer of a small operating system kernel. A theme of the book is presenting system architecture design as a formal discipline, and in keeping with this the authors rely on mathematics for conciseness and precision of arguments to an extent common in other engineering fields. This textbook is based on the authors' teaching and practical experience, and it is appropriate for undergraduate students of electronics engineering and computer science. All chapters are supported with exercises and examples.
Introduction -- Understanding Decimal Addition -- Basic Mathematical Concepts -- Number Formats and Boolean Algebra -- Hardware -- Five Designs of RAM -- Arithmetic Circuits -- A Basic Sequential MIPS Machine -- Some Assembler Programs -- Context-Free Grammars -- The Language C0 -- A C0-Compiler -- Compiler Consistency Revisited -- Operating System Support -- A Generic Operating System Kernel.
Keywords: Computer science; Computer hardware; Computer organization; Software engineering; Electrical engineering; Computer Science; Computer Systems Organization and Communication Networks; Software Engineering/Programming and Operating Systems; Computer Hardware; Electrical Engineering