
xxiii
Preface
language, rather, that assembly language coding skills are required by the operating
system developer. Some developers may only be required to utilize assembly coding
to implement, say, a small interrupt handler routine.
Chapter 4
deals with the complex subject of 29K interrupts. Because 29K
processors make no use of microcode, the range of interrupt handler options is
extended over the typical CISC type processor. Techniques new to the reader familiar
with CISC, such as lightweight interrupts and interrupt context caching, are
presented. Most application developers are moving toward writing interrupt
handlers in a high level language, such as C. This chapter describes the process of
preparing the 29K to handle a C level signal handler after taking an interrupt or trap.
Chapter 5
deals with operating system issues. It describes, in detail, the process
of performing an application task context switch. This is one of the major services
performed by an operating system. A detailed knowledge of the utilized
procedural–linkage mechanism and 29K architectural features is required to
implement a high performance context switch. Also dealt with are issues concerning
the operation and maintenance of on–chip instruction and data memory cache.
Chapter 6
describes the Translation Look–Aside Buffer (TLB) which is
incorporated into many of the 29K family members. Its use as a basic building block
for a Memory Management Unit (MMU) is described. This chapter also
demonstrates the use of the TLB to implement a software–controlled cache which
improves overall system performance.
Chapter 7
explains the operation of popular software debugging tools such as
MiniMON29K and GDB. The process of building a debug environment for an
embedded application is described. Also dealt with is the Universal Debug Interface
(UDI) which is used to connect the user–interface process with the process
controlling the target hardware. The use of UDI introduces new freedom in tool
choice to the embedded product developer.
Chapter 8
helps with the sometimes difficult task of processor selection.
Performance benchmarks are presented for all the current 29K family members. The
effect on–chip cache and memory system performance have on system performance
is quantified. Systems are considered in terms of their performance and software
programming requirements.
Although I am the sole author of this book, I would like to thank my colleagues
at Advanced Micro Devices for their help with reviewing early manuscripts. I am
also grateful for their thoughtful suggestions, many of which were offered during the
porting of 4.3bsd UNIX to the Am29000 processor. I would also like to thank Grant
Maxwell for his helpful comments and in particular his review of chapters 1, 5 and 8.
Bob Brians also extensively reviewed the first edition and suggested a number of
improvements; he also made many helpful comments when he reviewed the