Download ARM System-on-Chip Architecture (2nd Edition) PDF

TitleARM System-on-Chip Architecture (2nd Edition)
PublisherAddison-Wesley Professional
ISBN 139780201675191
File Size17.5 MB
Total Pages426
Document Text Contents
Page 1




This book introduces the concepts and methodologies employed in designing a
system-on-chip (SoC) based around a microprocessor core and in designing the
microprocessor core itself. The principles of microprocessor design are made con-
crete by extensive illustrations based upon the ARM.

The aim of the book is to assist the reader in understanding how SoCs and micro-
processors are designed and used, and why a modern processor is designed the way
that it is. The reader who wishes to know only the general principles should find that
the ARM illustrations add substance to issues which can otherwise appear somewhat
ethereal; the reader who wishes to understand the design of the ARM should find that
the general principles illuminate the rationale for the ARM being as it is.

Other microprocessor architectures are not described in this book. The reader who
wishes to make a comparative study of architectures will find the required informa-
tion on the ARM here but must look elsewhere for information on other designs.

The book is intended to be of use to two distinct groups of readers:

• Professional hardware and software engineers who are tasked with designing an
SoC product which incorporates an ARM processor, or who are evaluating the
ARM for a product, should find the book helpful in their duties. Although there
is considerable overlap with ARM technical publications, this book provides a
broader context with more background. It is not a substitute for the manufac
turer's data, since much detail has had to be omitted, but it should be useful as an
introductory overview and adjunct to that data.

• Students of computer science, computer engineering and electrical engineering
should find the material of value at several stages in their courses. Some chapters
are closely based on course material previously used in undergraduate teaching;
some other material is drawn from a postgraduate course.

Prerequisite This book is not intended to be an introductory text on computer architecture or

Page 213

Thumb applications 203

• Since the only conditional Thumb instructions are branches, the condition
'always' is used in translating all other Thumb instructions.

• Whether or not a Thumb data processing instruction should modify the condition

codes in the CPSR is implicit in the Thumb opcode; this must be made explicit in
the ARM instruction.

• The Thumb 2-address format can always be mapped into the ARM 3-address format
by replicating a register specifier. (Going the other way is not, in general, possible.)

The simplicity of the decompression logic is crucial to the efficiency of the Thumb
instruction set. There would be little merit in the Thumb architecture if it resulted in
complex, slow and power-hungry decompression logic.

7.10 Thumb applications

To see where Thumb offers a benefit we need to review its properties. Thumb
instructions are 16 bits long and encode the functionality of an ARM instruction in
half the number of bits, but since a Thumb instruction typically has less semantic
content than an ARM instruction, a particular program will require more Thumb
instructions than it would have needed ARM instructions. The ratio will vary from
program to program, but in a typical example Thumb code may require 70% of the
space of ARM code. Therefore if we compare the Thumb solution with the pure
ARM code solution, the following characteristics emerge:


• The Thumb code requires 70% of the space of the ARM code.
• The Thumb code uses 40% more instructions than the ARM code.
• With 32-bit memory, the ARM code is 40% faster than the Thumb code.
• With 16-bit memory, the Thumb code is 45% faster than the ARM code.
• Thumb code uses 30% less external memory power than ARM code.

So where performance is all-important, a system should use 32-bit memory and
run ARM code. Where cost and power consumption are more important, a 16-bit
memory system and Thumb code may be a better choice. However, there are inter-
mediate positions which may give the best of both worlds:

Thumb systems • A high-end 32-bit ARM system may use Thumb code for certain non-critical rou-

tines to save power or memory requirements.

Similer Documents