The Essence of Computer System Engineering

Prabhas Chongstitvatana
Department of Computer Engineering
Chulalongkorn University

This is the page to support the textbook.  It contains update information, source code, and tools used in the book.

This is the excerpt from my preface:

It is my attempt in this book to put a whole picture to students, to ask them to build a whole system by themselves.  The essences of computer system engineering are the ability to understand components and compose them into a system.  To tackle a project of this size is not possible without critical assessment of the system we intend to build.  My selections are: language, compiler, code generator, processor and operating system.  All these components are implemented under one language which itself is also a subject to be studied. Each component is carefully designed so that it is as simple as possible and yet is able to demonstrate the principle of its operation.

Building a whole computer system always gives a good insight to understand the current technologies. The ability to ask “what if” questions throughout all levels of a computer system is a great benefit.  Students can discover many principles by themselves.  They can also gain a large factor of confidence in handling a complex system.  They will understand how components interact, how to make tradeoff between various constraints and how to choose among alternatives.

Table of contents

Preface
Chapter 1   An overview of computer system engineering
Chapter 2   High level language Nut
Chapter 3   Nut compiler
Chapter 4   Code generation
Chapter 5   Microprogramming
Chapter 6   Processor Sx
Chapter 7   Performance enhancement
Chapter 8   Operating System Nos
Chapter 9   Optimisation

Source

Appendix A  Common Functions
Appendix B  Nut Compiler
Appendix C  Nut Completion Solution
Appendix D  N-code Evaluator
Appendix E  Code Generator
Appendix F  Code Generator Solution
Appendix G  Sx Simulator :  sx.c  sxm.c  sxbit.h
Appendix H  Microprogram
Appendix I  NOS Supervisor
Appendix J  Nut operating System

Tools

NUT v 3.0  compiler and simulator with source code in C
Nut 32   (include nut-codegen and somv2 simulator)
Sx kit  (with source)
Sx2 kit (with source) 
Microprogram generator  (sxgen)   UNDER CONSTRUCTION

Documents

Nut langauge manual
N-code manual
Discussion on language extension
s-code
Sx2 processor (draft)

last update 25 September  2006