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