COA U5 PPT Full
COA U5 PPT Full
COA U5 PPT Full
Lack of Parallelism: SISD systems do not exploit parallelism, which can limit their
performance for computationally intensive tasks.
Inefficient for Parallel Workloads: Applications that inherently involve parallelism
may not benefit from SISD architectures.
SIMD (Single Instruction, Multiple Data):
The Thumb instruction set is used in various ARM processor families, especially in
microcontrollers and other resource-constrained devices.
Instruction Encoding: Thumb instructions are 16 bits long, which is half the size of the
standard ARM instructions. This reduced size allows for more compact code, saving
memory space.
Performance: While Thumb instructions are more compact, they typically execute
faster than pure software-based solutions. However, they may not be as fast as ARM
instructions in terms of execution speed.
Compatibility: Thumb instructions are compatible with ARM instructions, meaning that
a processor supporting the Thumb instruction set can execute both Thumb and ARM
instructions. This provides flexibility for developers to choose the instruction set that
best suits their application.
Thumb-2: In addition to the original Thumb instruction set, ARM introduced Thumb-2,
which combines the benefits of Thumb with improved performance. Thumb-2
instructions are 16 or 32 bits in length and provide better performance while
maintaining code density advantages.
Compiler Support: To write code for the Thumb instruction set, developers typically
use compilers that generate Thumb instructions. Most ARM development toolchains
include support for both Thumb and ARM instruction sets, making it easy to switch
between them as needed.
Trade-offs: While Thumb instructions are efficient in terms of code size and are
suitable for many embedded applications, they may not be ideal for tasks requiring
ARM Processor: Processor and
CPU cores
ARM (Advanced RISC Machine) processors are a family of microprocessor architectures originally
developed by ARM Holdings (now part of NVIDIA) and widely used in a variety of computing
devices, from mobile phones to embedded systems and supercomputers.
ARM processors are known for their power efficiency, scalability, and versatility.
These processors can be found in single-core and multi-core configurations, each with its own set
of characteristics and applications.
Before ARM, x86 processors were used, which were launched in 1978.
Whenever we remove the predefined instructions like complex instructions and hard-to-
implement instructions, the remaining instructions take less power and pace and run faster,
this is called Reduced Instruction Set Computer (RISC) Architecture.
One of the most common electronic
ARM Processor architectural designs in the market is
Advanced RISC Machine Architecture,
even better than x86, which is very
common in the server market.
Multiprocessing System
Memory Management
Thumb-2 Technology
Pipelining
Operation Code (Opcode): The opcode field specifies the operation to be performed, such
as arithmetic operations, data transfers, branching, etc. It usually occupies the first six bits
of the instruction.
Condition Field: ARM instructions often include a condition field that specifies under which
conditions the instruction should be executed. The condition field is typically a 4-bit
portion that follows the opcode. Common conditions include "equal," "not equal," "greater
than," and so on.
Operands and Registers: Depending on the instruction, there are fields that specify
the source and destination operands, as well as the registers involved in the
operation. These fields can vary in size and position within the instruction, depending
on the specific instruction format.
Immediate Values: Some instructions allow for immediate values (constants) to be
encoded within the instruction itself. The immediate value field specifies these
constants, which can be used in arithmetic operations or as offsets for memory
access.
Shift and Rotate Operations: ARM instructions often include fields that specify shift
or rotate operations on data. These fields define how data should be shifted or
rotated before the operation is performed.
Data Size and Type: The instruction encoding includes fields that specify the data
size and type (e.g., byte, half-word, word) being operated on.
Condition Flags: ARM instructions can set or modify condition flags in the
processor's status register (e.g., the N flag for negative results or the Z flag for zero
results). These flags help control program flow through conditional branching.
Addressing Modes: Instructions may include addressing mode fields that determine
how memory addresses are calculated, especially in load and store operations.
Bit-Handling Instructions: Some ARM instructions are used for bit manipulation
operations, such as setting, clearing, testing, or toggling individual bits within
registers or memory. These instructions have specific fields for specifying the target
bit(s).
It's important to note that while this is the basic format for ARM instructions, there
are different instruction sets and variations within the ARM architecture, such as
Thumb, Thumb-2, ARMv7-A, ARMv8-A, and others. Each of these may have its own
specific encoding formats and instruction set extensions to cater to different
application domains, including 32-bit and 64-bit instruction sets. The specifics of
the instruction encoding can vary between these architectures and instruction sets.
ARM Processor: Memory load and Store instruction
ARM processors use load and store instructions to manipulate data stored in
memory.
LDR Rd, [Rn, #offset]: Loads a word from memory at the address specified by Rn plus the
#offset into register Rd.
Example: LDR R0, [R1, #4] loads a word from the memory location at R1 + 4 into R0.
STR (Store Register):
STR Rd, [Rn, #offset]: Stores the value in register Rd into memory at the address
specified by Rn plus the #offset.
Example: STR R0, [R1, #8] stores the value in R0 into the memory location at R1 + 8.
Example: LDM R1, {R2, R3, R4} loads values from memory into R2, R3, and R4 starting
at the address in R1.
Example: STM R1, {R2, R3, R4} stores the values in R2, R3, and R4 into memory
starting at the address in R1.
ARM Processor: Basics of I/O operations
In ARM-based systems, I/O (Input/Output) operations encompass various
types of interactions between the ARM processor and external devices.
It involve the interaction between the CPU (Central Processing Unit) and
external devices such as sensors, displays, keyboards, and storage devices.
The I/O operations are essential for interfacing ARM processors with a
diverse range of external devices and for enabling various functionalities in
embedded systems, IoT (Internet of Things) devices, and other applications.
The specific type of I/O operation used depends on the nature of the
external devices and the requirements of the application.
Here are the key aspects of I/O operations with ARM processors:
Memory-Mapped I/O (MMIO):
Purpose: Memory-mapped I/O is a common technique where I/O devices are mapped into the memory
address space of the ARM processor.
Usage: It allows the ARM processor to read from and write to I/O devices using standard load (LDR) and
store (STR) instructions, treating I/O registers as if they were memory locations.
Port-Mapped I/O:
Purpose: Port-mapped I/O is an alternative to memory-mapped I/O where I/O devices are accessed
through specific I/O port addresses.
Usage: Specialized instructions or commands are used to read from and write to I/O ports, which are
distinct from regular memory locations.
Purpose: Serial communication protocols like UART, SPI (Serial Peripheral Interface), and I2C (Inter-
Integrated Circuit) are used for communication between the ARM processor and external devices.
Usage: These protocols enable the ARM processor to exchange data serially with devices such as
sensors, displays, and other microcontrollers.
File I/O (Sequential and Random Access):
Purpose: File I/O operations involve reading from and writing to files stored in external storage devices
like SD cards or hard drives.
Usage: The ARM processor uses file I/O operations to access and manipulate data stored in files
sequentially or randomly.
Purpose: GPIO pins are used for basic digital I/O operations, allowing the ARM processor to read input
signals from external devices (e.g., sensors) and control output signals to external devices (e.g., LEDs).
Usage: GPIO pins can be configured as inputs or outputs, and their states can be controlled
programmatically.
Interrupt Handling:
Purpose: Interrupts are used to signal the ARM processor when external events, such as data arrival or
device status changes, require attention.
Usage: ARM processors handle interrupts by executing interrupt service routines (ISRs), allowing for
timely responses to external events without constant polling.
DMA (Direct Memory Access):
Purpose: DMA is used for high-speed data transfer between external devices and memory without CPU
intervention.
Usage: DMA controllers in ARM-based systems enable peripherals to read from or write to memory directly,
reducing CPU load and increasing data transfer speed.
Purpose: ADC and DAC operations involve converting analog signals to digital and vice versa, enabling the ARM
processor to interface with sensors and control analog devices.
Usage: ARM processors can read analog data from sensors through ADCs and generate analog output signals
through DACs.
Purpose: ARM processors can communicate with other devices over Ethernet networks for data transfer and
network-based I/O operations.
Usage: Network protocols like TCP/IP and UDP are commonly used for tasks such as data exchange, remote
control, and device management.
Purpose: USB interfaces allow ARM-based systems to connect to a wide range of USB devices, such as keyboards,
mice, storage devices, and more.
Case study: ARM 5 Architecture
ARMv5 Architecture Overview:
32-bit Architecture: ARMv5 is a 32-bit architecture, meaning it primarily deals with 32-bit data and instructions.
It was widely used in various embedded systems, mobile devices, and microcontrollers.
Thumb Instruction Set: ARMv5 introduced the Thumb instruction set, which is a 16-bit subset of the ARM
instruction set. Thumb is designed for code density, making it suitable for applications with limited memory
space.
Classic RISC Design: ARMv5 processors typically use a classic RISC (Reduced Instruction Set Computer) pipeline
architecture, which consists of multiple stages for instruction execution. This design emphasizes simplicity and
efficiency.
Memory Management: ARMv5 supports virtual memory management and includes a Memory Management
Unit (MMU) for address translation and memory protection. This enables features like multitasking and memory
isolation.
Clock Speeds: The clock speed of ARMv5 processors can vary depending on the specific chip design and
application requirements. ARMv5 processors were used in a wide range of devices with different clock
frequencies.
Use Cases and Applications of ARM 5 Architecture
ARM7500
It is a highly integrated single chip computer based around the ARM RISC microprocessor microcell.
ARM7500 contains all the functionality required to create a complete computing system with the minimum
of external components.
The wide range of features incorporated into ARM7500 make it an extremely flexible device, which can be
programmed according to the required application to optimize for high performance or low power, or a
combination of both.
Features of ARM7500
Highly integrated RISC computer
30 Dhrystone 2.1 MIPS ARM7 core @ 33MHz
4 Kbyte combined instruction and data cache
Flexible Memory Management Unit
Supports 16 or 32 bit wide memory via internal ROM and DRAM controllers
3 channel DMA
I/O controller
2 serial ports, 4 A/D channels
8 stereo sound channels
32-bit CD quality serial sound channel
Video controller with up to 120MHz pixel clock
16 million colours from 256-entry palette
16-level grey scales for LCD displays
Suspend and stop power saving modes 9444954195
Applications of ARM7500
These include:
Telecomms GSM terminal controller
This makes it ideal for portable applications where both these features are essential.