Processor Design: System-On-Chip Computing for ASICs and FPGAs

Jari Nurmi
Tampere University of Technology
This chapter provides a condensed view of essential computer/embedded system architecture concepts and terminology are clarified. An experienced reader may wish to skip this chapter or browse through it quickly and return later, in case some clarification is needed when reading the following chapters. The chapter is not based on any particular reference, but the author has learned a major part of the issues presented here from the bible of computer architecture by Hennessy and Patterson [187]. Other good references include textbooks by Stallings [388], Tanenbaum [409], Heuring and Jordan [192], and Patterson and Hennessy [336]. Regarding parallel architectures the books by Flynn [128], Sima, Fountain and Karsuk [377], Silc, Robic and Ungerer [376], and Corporaal [92] are good reading.
We first discuss the components of an embedded computer: datapath, control, memory, I/O, and interconnects, and how these are represented in the Instruction Set Architecture. Next, we look at different processor architectures from the organization point of view. Different ways of introducing parallelism in a processor are also addressed. The memory subsystem issues such as memory hierarchy and virtual memory are discussed, and a quick overview of I/O operations and peripherals ends the chapter.
In general, a computer or an embedded system can be considered as a combination of a processor that is responsible for executing programs, some memory for storing programs and data, and input/output (I/O) functionality that provides an extension to peripheral devices of the...