Copyright (C) 2010 to Shawn Tan (shawn.tan@sybreon.com). All Rights Reserved.
This is a book on Physical Programming - the art of exploiting hardware in software, and vice versa.
I have a PhD in Engineering from the University of Cambridge in the field of chip design. I have also been actively programming since I started as a child with LOGO in 1989.
I began to think about writing this book in 2009, when I began noticing an invisible divide that tends to separate the hardware and software developers in a team. The hardware developers tend to ignore mecurial algorithms and data structures while the software developers do not want to think about semiconductor physics when they code.
As a result, hardware-software co-design tends to suffer.
Therefore, I started to raise awareness on this issue by giving seminars and discussing this issue with industry practitioners. Through these venues, I found that the problem was real and not imaginary.
This book attempts to bridge that divide by providing clear examples of how software should be written to exploit hardware, and how hardware could be designed to support software.
This book is targeted at an intermediate reader - someone who already knows how to code in C/C++ and who has the necessary electronics and microprocessor fundamentals.