The Essence of Computer System
      Engineering
    Prabhas Chongstitvatana
      Department of Computer Engineering
      Chulalongkorn University
    
    
    The complete book (in Bookstore)
    
    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 17 May  2025