ARM7TDMI编程辅导、讲解OS程序、辅导I/O ports程序设计、讲解I/O
- 首页 >> OS编程COMP2121 Assignment: An Overview of the Instruction Set
Architecture of ARM7TDMI
In this assignment, you will explore the ISA (Instruction Set Architecture) of the
ARM microprocessor ARM7TDMI, and write a report of approximately 3,000 words.
You will work solo in this assignment. The deadline is 23:59 September 9, 2018.
Please follow the following guidelines when writing your report.
As you know, an ISA consists of four components: memory models, registers, data
types and instructions. Therefore, you need to explore each component of the ISA of the
ARM microprocessor ARM7TDMI and present your results in your report. Specifically,
your report should have the following sections.
1. Introduction. In this section, you give an overview of the ARM microprocessor
ARM7TDMI. Your overview should focus on the salient features of ARM7TDMI.
Examples include conditional execution, hardware support for power saving and
caching.
2. Memory models. You need to explain the memory models in details. How many
memory spaces are there in ARM microprocessors? Is there a separate memory
space for program and constants? Are registers mapped into a memory space as in
AVR microcontrollers? What is the maximum memory size for each memory
space? What is the size of addressable cells of each memory space? How is the
alignment problem handled? Which endianness is used?
3. Registers. Give detailed descriptions of all the registers. Why is the link register
needed? Does PC always point to the next instruction? Pay special attention to the
Current Program Status Register (CPSR).
a. N, Z, C and V flags. Explain how ARM7TDMI uses these flags for overflow,
signed comparison and unsigned comparison.
b. The least significant 5 bits are reserved for operating modes. You need to give
detailed descriptions for each operating mode. Why are these operating modes
needed? How does each operating mode work?
c. There is an interrupt enable/disable bit. This bit is used to enable/disable
ARM7TDMI interrupt system. Give detailed descriptions of ARM7TDMI
interrupt structure. How many hardware interrupts does ARM7TDMI support?
Explain in detail how ARM7TDMI handles a hardware interrupt.
In addition to hardware interrupts, ARM7TDMI provides software interrupt.
What is the software interrupt used for? How is the software interrupt
processed?
4. Instruction Set. You don’t need to describe each instruction. Instead, you need to
focus on the salient features of ARM7TDMI instructions listed as follows.
a. Describe the instruction formats including encoding scheme, the number of
operands etc.
b. Describe all the addressing modes in ARM7TDMI.
c. ARM7TDMI provides conditional execution of an instruction i.e. the
operation given in an instruction is executed only if some condition holds.
Describe the conditional execution in detail. Why is the conditional
execution a good feature?
d. Describe all the instructions for stack operations in ARM7TDMI in detail.
e. ARM7TDMI provides multiple-bit shift instructions. Describe them in
detail.
f. AVR microcontrollers provide the special instructions in and out to access
I/O registers (ports). Does ARM also provide in and out? If not, how do
programmers access I/O ports and I/O registers in ARM7TDMI?
g. AVR microcontrollers provide a special instruction sleep for power saving.
Does ARM also provide a similar instruction? Can ARM7TDMI operate in
different frequencies? What are the major advantages with different
frequencies?
h. AVR microcontrollers provide a watchdog timer to prevent software from
corruption. The instruction wdr is to reset the watchdog timer. Does ARM
also provide a similar instruction?
5. Data types. Describe all data types in ARM7TDMI in detail. How would you
implement in software the data types such as 64-bit signed and unsigned integers
that are not supported by ARM7TDMI? Write ARM7TDMI assembly programs
for addition and subtraction of two 64-bit signed and unsigned integers.
6. Conclusion. You need to explain for what applications you need to use an AVR
microcontroller and for what applications you need to use ARM7TDMI. The
factors you may consider are cost–performance ratio, memory capacity and
processor speed.