Fatima Michael College of Engineering & Technology Ee6008 - Microcontroller Based System Design
Fatima Michael College of Engineering & Technology Ee6008 - Microcontroller Based System Design
Fatima Michael College of Engineering & Technology Ee6008 - Microcontroller Based System Design
com
TEXT BOOKS:
1. Peatman,J.B., Design with PIC Micro ControllersPearsonEducation,3rdEdition, 2004.
2. Furber,S., ARM System on Chip Architecture AddisonWesley trade Computer
Publication, 2000.
www.rejinpaul.com
UNIT I
INTRODUCTION TO PIC MICROCONTROLLER
INTRODUCTION
Simplicity and ease, which the higher programming languages bring for program writing as well
as broader application of the microcontrollers, was enough to incite some companies as Micro
engineering to embark on the development of BASIC programming language. What did we
thereby get? Before all, the time of writing was shortened by employment of prepared functions
that BASIC brings in (whose programming in assembler would have taken the biggest portion of
time). In this way, the programmer can concentrate on solving the essential task without losing
his time on writing the code for LCD display. To avoid any confusion in the further text, it is
necessary to clarify three terms one encounters very often.
BASIC compiler is the program run on PC and it's task is to translate the original BASIC code
into the language of 0 and 1 understandable to the microcontroller.
PIC microcontrollers
The creation of PIC BASIC followed the great success of Basic stamp (small plate with
PIC16F84 and serial eeprom that compose the whole microcontroller system) as its modification.
PIC BASIC enables the programs written for the original Basic stamp to be translated for the
direct execution on the PIC16xxx, PIC17Cxxx and PIC18Cxxx members of the microcontrollers
family. By means of PIC BASIC it is possible to write programs for the PIC microcontrollers of
the following families PIC12C67x, PIC14C000, PIC16C55x, PIC16C6x, PIC16C7x, PIC16x84,
PIC16C9xx, PIC16F62x, PIC16C87x, PIC17Cxxx and PIC 18Cxxx. On the contrary, the
programs written in PIC BASIC language cannot be run on the microcontrollers possessing the
hardware stack in two levels as is for example the case of PIC16C5x family (that implies that by
using the CALL command any subroutine can be called not more than two times in a row).
For the controllers that are not able to work with PIC BASIC there is an adequate substitution.
For example, instead of PIC16C54 or 58, we can use pin compatible chips PIC16C554, 558, 620
and 622 also operating with PIC BASIC without any difference in price.
Currently, the best choice for application development, using PIC BASIC are microcontrollers
from the family : PIC16F87x, PIC16F62X and of course the famous PIC16F84. With this family
of PIC microcontrollers, program memory is created using FLASH technology which provides
fast erasing and reprogramming, thus allowing faster debugging. By a single mouse click in the
programming software, microcontroller program can be instantly erased and then reloaded
without removing chip from device. Also, program loaded in FLASH memory can be stored after
power supply has been turned off. The older PIC microcontroller series (12C67x, 14C000,
16C55x, 16C6xx, 16C7xx and 16C92x) have program memory created using EPROM/ROM
technology, so they Basic for PIC Microcontrollers 5 can either be programmed only once (OTP
version with ROM memory) or have glass window (JW version with EPROM memory), which
allows erasing by few minutes exposure to UV light. OTP versions are usually cheaper and are
used for manufacturing large series of products. Besides FLASH memory, microcontrollers of
PIC16F87x and PIC16F84 series also contain 64-256 bytes of internal EEPROM memory, which
can be used for storing program data and other parameters when power is off. PIC BASIC has
built -in READ and WRITE instructions that can be used for loading and saving data to
EEPROM. In order to have complete information about specific microcontroller in the
application, you should get the appropriate Data Sheet or Microchip CD-ROM.
PIC Microcontrollers
PIC stands for Peripheral Interface Controller coined by Microchip Technology to identify its
single chip microcontrollers. These devices have been phenomenally successful in 8-bit
microcontroller market.
The main reason is that Microchip Technology has constantly upgraded the device architecture
and added needed peripherals to the microcontroller to suit customers requirements. The
development tools such as assembler and simulator are freely available on the internet.
Low-end Architectures
Microchip PIC microcontrollers are available in various types.
When PIC became available from General Instruments in early 1980s, the microcontroller
consisted of a very simple processor executing 12-bit wide instructions with basic I/O functions.
These devices are known as low-end architectures. Some of the low-end device past numbers are
12C5XX, 16C5X, and 16C505
www.rejinpaul.com
Mid-range Architectures
Mid-range Architectures are built by upgrading low-end architecture with more number of
peripherals, more numbers of register and more data memory. Some of the mid-range devices are
16C6X 16C7X, 16F873 Program memory type
C = EPROM
F = Flash
RC = Mask ROM
CPU Registers
W, the working register, is used by many instructions as the source of an operand. It may also
serve as the destination for the result of the instructions execution. It works as the accumulator.
www.rejinpaul.com
FSR is the pointer used for indirect addressing. The program is supported by an eight-level stack.
When an interrupt occurs, the program counter is automatically pushed on to the stack. Since
PIC microcontrollers programs are normally designed for handling one interrupt at a time,
further
Basic Architecture of PIC Microcontroller
www.rejinpaul.com
Memory Organization
The PIC 16C7X family has a 13-bit program counter capable of addressing 8k14 program
memory.
PIC16C74A has 4k14 program memory. For those devices with less than 8k program memory,
accessing a location above the physically implemented address will cause a wrap around.
Program memory map and stack
16C74A has 4k program memory. The address range is 0000H - 0FFFH. The reset vector is
0000H and the interrupt vector is 0004H.
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
UNIT II
INTERRUPTS AND TIMER
Four of PORTBs pins RB7 : RB4 have an interrupt on change feature. Only pins configured on
inputs can cause this interrupt to occur. The input pins (of RB7 : RB4) are compared with the old
values on the last read of Port B. the mismatch outputs of RB7 : RB4 are used together to
generate the RB port change interrupt flag bit RB1F.
www.rejinpaul.com
UNIT III
PERIPHERALS AND INTERFACING
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
V
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
www.rejinpaul.com
UNIT IV
INTRODUCTION TO ARM PROCESSOR
ARM designs microprocessor technology that lies at the heart of advanced digital products, from
mobile phones and digital cameras to games consoles and automotive systems, and is leading
intellectual property (IP) provider of high-performance, low-cost, power-efficient RISC
processors, peripherals, and system-on-chip (SoC) designs through involvement with
organizations such as the Virtual Socket Interface Alliance (VSIA) and Virtual Component
Exchange (VCX).
ARM also offers design and software consulting services.
ARM's architecture is compatible with all four major platform operating systems: Symbian OS,
Palm OS, Windows CE, and Linux. As for software, ARM also works closely with with its
partners to provide optimized solutions for existing market segments.
These benefits are making the ARM company a complete solution provider.
The company offers a complete solution that is essential to the manufacturing process. Although
ARM does not manufacture processors itself, ARM licenses its cores to semi-conductor
manufacturers to be integrated into ASIC standards and then the company in using test chips
manufactured by its partners to measure and validate the functionality of the core. ARM is able
to accelerate OEM time-to-market by capitalizing on its architecture. By providing the IP and
supporting services, customers can gain a jump on their design cycle and obtain a competitive
edge in their targeted market segment. At that point, the architecture is portable to further
product generations or applications as all code creation is directly compatible with any future
architecture produced by ARM.
ARM's Global Technology Partner Network is the largest in the industry, spanning from
semiconductor manufacturers to distributors. ARM has worked diligently to ensure that the
partnerships provide proven solutions in real-time operating systems (RTOS), EDA tools,
development systems, applications software, and design consulting, all built around the ARM
architecture.
This block diagram describes the ARM solution. The company recognizes that it cannot just
present hardened macros and synthesizable CPUs to the industry, but it must also provide the
ASIC infrastructure in the form of AMBA, the PrimeCell Peripherals, and models and modeling
tools for the cores. There is also the need for ARM to pursue ports for RTOSs, develop debug
hardware and software development tools, and, of course, embedded software for "off-the-shelf"
integration. ARM combines all these futures together with support and training, to accelerate the
design cycle and favour a successful product.
www.rejinpaul.com
Architecture V1 was implemented only in the ARM1 CPU and was not utilized in a commercial
www.rejinpaul.com
product. Architecture V2 was the basis for the first shipped processors. These two architectures
were developed by Acorn Computers before ARM became a company in 1990. After that
introduced ARM the Architecture V3, which included many changes over its predecessors.
These changes resulted in an extremely small and power-efficient processor suitable for
embedded systems.
Architecture V4, co-developed by ARM and Digital Electronics Corporation, resulted in the
Strong ARM series of processors. These processors are very performance-centric and do not
include the onchip debug extensions. This architecture was further developed to include the
Thumb 16-bit instruction set architecture enabling a 32-bit processor to utilize a 16-bit system.
Today, ARM only licenses cores based on Architecture V4T or above. The latest architectures,
version 5TE and 5TEJ, embody added instructions for DSP applications and the Jazelle-Java
extensions, respectively. Currently, the ARM9E and 10E family of processors are the only
implementations of these architectures.
From a development standpoint, ARM cores offer the advantage of a fully 32-bit processor
designed specifically for embedded applications. An important feature is the embedded core
debug facilities, which reduce the debugging stage of development. In some cases, this can be
two-thirds of the overall development cycle.
Architecture compatibility allows code re-use and results in reduced design time. This in turn
leads to reduced system cost, by eliminating investment in a second set of development tools to
write code for a new processor architecture. The modular approach of the advanced micro-
controller bus architecture, (AMBA), enables design reuse. This lowers the complexity of system
on-chip (SoC) designs and reduces future design costs.
ARM and third parties offer the developer proven compiler technology and debug solutions.
Multiple RTOSs and silicon sources mean that the developer will not need to change the
preferred vendor in order to migrate to this architecture.
Since the introduction of the ARM7 architecture, there has been huge leaps in core processing
performance. As shown here, ARM families provide a wide range of performance, from 100
MIPS to 1000 MIPS.This increase in performance can be attributed to two main driving factors.
The most obvious factor is the advances that have been made in new process technologies. The
other is the engineering changes implemented in each subsequent generation of ARM processors
and architectures.
Specific examples include a new pipeline in the ARM9 family, and the implementation of a
Harvard bus architecture in the ARM 9 over the Von Neumann architecture in the ARM7. The
result is that the ARM9 family doubles the performance of the ARM7 family. Recent
developments include DSP and Jazelle-Java extensions to some of the new architectures.
These products enable feature rich applications to benefit from the high-performance and low
power consumption intrinsic to ARM processor cores. Because of the fact that true embedded
control applications typically require a processor with cache and memory protection to utilize
real-time operating systems, ARM has developed a vertical expansion of CPUs to match these
requirements. Each processor provides a unique, and in some cases configurable, amount of
cache.
For example, the ARM9E-S family offers the ability to configure the size of instruction and data
cache, as well as the ability to configure tightly coupled SRAM blocks. These features enable
you to custom fit the CPU to specific application requirements. Many other features can be
added via the co-processor interface, such as the Vector Floating Point
unit for the ARM10 and ARM9E families.
In other words, ARM has produced architectural families that are compatible, flexible, and
encompass the full range of embedded requirements. Each product is designed to allow multi-
sourcing at every level of development. ARM is now the de-facto standard in embedded IP.
Explanation of the ARM architecture
ARM cores use a 32-bit, Load-Store RISC architecture. That meanins that the core cannot
directly manipulate the memory. All data manipulation must be done by loading registers with
information located in memory, performing the data operation and then storing the value back to
memory. There are 37 total registers in the processor. However, that number is split among seven
different processor modes.
The seven processor modes are used to run user tasks, an operating system, and to efficiently
handle exceptions such as interrupts. Some of the registers with in each mode are reserved for
specific use by the core, while most are available for general use. The reserved registers that are
used by the core for specific functions are r13 is commonly used as the stack pointer (SP), r14 as
a link register (LR), r15 as a program counter (PC), the Current Program Status Register (CPSR),
and the Saved Program Status Register (SPSR).
The SPSR and the CPSR contain the status and control bits specific to the properties the
processor core is operating under. These properties define the operating mode, ALU status flags,
interrupt disable/enable flags and whether the core is operating in 32-bit ARM or 16-bit Thumb
state.
www.rejinpaul.com
There are 37 total registers divided among seven different processor modes. Fifgure 09 shows
the bank of registers visible in each mode. User mode, the only non-privileged mode, has the
least number of total registers visible. It has no SPSR and limited access to the CPSR. FIQ and
IRQ are the two interrupt modes of the CPU.
Supervisor mode is the default mode of the processor on start up or reset. Undefined mode traps
unknown or illegal instructions when they are passed through the pipeline. Abort mode traps
illegal memory accesses as a result of fetching instructions or accessing data.
Finally, system mode, which uses the user mode bank of registers, was introduced to provide an
additional privileged mode when dealing with nested interrupts.
Each additional mode offers unique registers that are available for use by exception handling
routines. These additional registers are the minimum number of registers required to preserve the
state of the processor, save the location in code, and switch between modes.
FIQ mode, however, has an additional five banked registers to provide more flexibility and
higher performance when handling critical interrupts.
When the ARM core is in Thumb state, the registers banks are split into low and high register
domains. The majority of instructions in Thumb state have a 3-bit register specifier. As a result,
these instructions can only access the low registers in Thumb, R0 through R7. The high registers,
R8 through R15, have more restricted use. Only a few instructions have access to these registers.
3.2 TDMI
T-D-M-I stands for:
Thumb, which is a 16-bit instruction set extension to the 32-bit ARM architecture, referred as
states of the processor. "D" and "I" together comprise the on-chip debug facilities offered on all
ARM cores.
These stand for the Debug signals and EmbeddedICE logic, respectively.
The M signifies the support for 64-bit results and an enhanced multiplier, resulting in higher
performance. This multiplier is now standard on all ARMv4 architectures and above.
Thumb 16-bit Instructions
With growing code and data size, memory contributes to the system cost. The need to reduce
memory cost leads to smaller code size and the use of narrower memory. Therefore ARM
developed a modified instruction set to give market-leading code density for compiled standard
www.rejinpaul.com
C language. There is also the problem of performance loss due to using a narrow memory path,
such as a 16-bit memory path with a 32-bit processor.
The processor must take two memory access cycles to fetch an instruction or read and write data.
To address this issue, ARM introduced another set of reduced 16-bit instructions labeled Thumb,
based on the standard ARM 32-bit instruction set. For Thumb to be used, the processor must go
through a change of state from ARM to Thumb in order to begin executing 16-bit code. This is
because the default state of the core is ARM. Therefore, every application must have code at
boot up that is written in ARM. If the application code is to be compiled entirely for Thumb, then
the segment of ARM boot code must change the state of the processor. Once this is done, 16-bit
instructions are fetched seamlessly into the pipeline without any result.
It is important to note that the architecture remains the same. The instruction set is actually a
reduced set of the ARM instruction set and only the instructions are 16-bit; everything else in the
core still operates as 32-bit.
An application code compiled in Thumb is 30% smaller on average than the same code compiled
in ARM and normally 30% faster when using narrow 16-bit memory systems.
An example: ARM7TDMI Block Diagram Figure 10 shows the register bank in the center of the
diagram, plus the required address bus and data bus. The multiplier, in-line barrel shifter, and
ALU are also shown.
In addition, the diagram illustrates the in-line decompression process of Thumb instructions
while in the decode stage of the pipeline. This process creates a 32-bit ARM equivalent
instruction from the 16-bit Thumb instruction, decodes the instruction, and passes it on to the
execute stage.
Debug Extensions
The Debug extensions to the core add scan chains to monitor what is occurring on the data path
of the CPU. Signals were also added to the core so that processor control can be handed to the
debugger when a breakpoint or watchpoint has been reached. This stops the processor enabling
the user to view such characteristics as register contents, memory regions, and processor status.
Embedded ICE Logic
In order to provide a powerful debugging environment for ARM-based applications the
Embedded ICE logic was developed and integrated into the ARM core architecture. It is a set of
registers providing the ability to set hardware breakpoints or watchpoints on code or data. The
www.rejinpaul.com
Embedded ICE logic monitors the ARM core signals every cycle to check if a breakpoint or
Watch point has been hit. Lastly, an additional scan chain is used to establish contact between
the user and the Embedded ICE logic.
Communication with the EmbeddedICE logic from the external world is provided via the test
access port, or TAP, controller and a standard IEEE 1149.1 JTAG connection.
The advantage of on-chip debug solutions is the ability to rapidly debug software, especially
when the software resides in ROM. This is critical in shortening the development cycle. The use
of Multi- ICE and EmbeddedICE provides full debug capabilities for a processor integrated deep
inside an ASIC, even in a production version of a consumer product.
Architecture details, features & comparison of the ARM7, ARM9, and ARM10 core
families
4.1 ARM7TDMI Processor Core
Architecture version 4T:
-- 3-stage pipeline
-- Unified bus architecture
-- 32-bit ARM ISA plus 16-bit Thumb extension
Forward compatible code
EmbeddedICE on-chip debug
Hard Macrocell IP
-- Smallest Die Size: 0.53 mm2 on 0.18 m process
Up to 110 MHz* on TSMC standard 0.18 m
Industry leading 0.25 mW/MHz
The ARM7TDMI has a core based on the fourth version of the ARM architecture. This
implementation uses a three stage pipeline - a standard fetch-decode-execute organization.
It features a unified cache, as well as the Thumb extension permitting 32-bit and 16-bit
operation. It is completely forward compatible, meaning that any code written for this core will
be compatible with any new core releases, such as ARM9 or ARM10. This core also includes the
on-chip debug extension discussed in the previous training module.
The core is successful mainly because of the extremely small but high performance processor -
slightly more than 70,000 transistors in all an with extremely low power consumption.
ARM7TDMI-S
Synthesizable RTL compliant with the ARM7TDMI
Custom Macrocell:
-- Fully compatible with the ARMv4T architecture.
www.rejinpaul.com
Figure 12 presents a model of the ARM7 processor that is a synthesizable version of the
ARM7TDMI.
This version is fully compatible with the ARMv4T architecture and is functionally identical to
the hardened ARM7TDMI macrocell. Although it is a synthesizable solution, the licensee does
not have the right to change any feature of this core.
ARM720T
Cached Macrocell for Platform OS Applications
ARM7TDMI core:
-- ARM v4T ISA
-- THUMB 16-bit instruction set
-- Rev 3 onwards supports ETM7 for non-stop debug
8 KB cache:
-- High processor performance with low-speed
memory interface
Memory Management Unit:
-- Full support for WindowsCE and Symbian OS
ASB bus interface
ARM720Tcore offers 8 KB of unified instruction and data cache. Also included is a memory
management unit (MMU) that offers virtual-to-physical address translation, 64-entry translation
look aside buffer (TLB), two-level page tables stored in memory, and hardware page-table
walking. There is also a highly flexible mapping scheme that supports 1 MB sections with
permissions, 64 KB large
www.rejinpaul.com
pages with four sets of permissions, and 4 KB small pages with four sets of permissions. This
processor enables up to 16 domains, each with individual access rights. It also features cyclic
replacement and lockdown features to lock instructions or data into cache for critical real-time
code.
The ARM720T was designed to be flexible and application-specific, especially for devices
running complex operating systems such as Linux, Windows CE, Symbian OS, or PalmOS. It
includes a system control coprocessor for cache and system initialization and the AMBA
Advanced System Bus, or ASB, interface.
ARM7EJ
New Jazelle-enhanced 32-bit processor core
Thumb, Jazelle and DSP extensions
Five stage pipeline and high performance multiplier
Unified instruction and data bus
v5TEJ architecture
Real-time trace with the ETM9 macrocell
Contact ARM for availability and characteristics data
The ARM7EJ solution is a compact CPU specifically designed for applications demanding low
power consumption. It has a memory interface identical to that of the ARM7TDMI-S? core. It
features the V5TEJ architecture instructions, including DSP extensions. This core
implementation also features a five-stage pipeline similar to that of an ARM9 class processor,
and supports easy integration of the Embedded Trace Macrocell-9 for real-time-trace capability.
ARM SC100 Secure Code
Optimized processor family for smart card solutions
Security enhanced ARM7TDMI design
-- ARMv4T compliant
-- Low power, high performance and
small die size
-- Memory Protection Unit (MPU)
-- Anti-tampering/counterfeiting measures
-- JavaCard support
-- Standard coprocessor interface for
incorporation of cryptographic solutions.
SC100 - Small synthesizable IP:
-- 35K gates - 1 mm2 area
-- 66 MHz* on 0.25 mm @2.5 V
-- Power: 0.7 mW/MHz
The ARM SecurCore family provides unique 32-bit RISC-based solutions for smart card
development needs, offering system designers privileged access to ARM processor cores to
create fast and secure e-commerce solutions.
The flexible Memory Protection Unit was specifically designed to ensure security of operating
system and application data. This enables future generations of smart card solutions having
multiple applications running on a single card. Special features in the core have been designed to
help obscure
www.rejinpaul.com
UNIT V
ARM ORGANIZATION
Processor activity and hide application program signatures, making SecurCore activity difficult
to detect and observe.
The SC100 runs all existing ARM JavaCard software implementations. Future SecurCore
processors will include ARM's Jazelle technology for direct execution of Java byte codes to
enable high performance low-power JavaCard applications. The advantages over a purely
software-emulated JavaCard virtual machine are clear: significant reduction in execution time,
improved responsiveness, and significantly power consumption.
The SecurCore family of processors also includes a standard coprocessor interface for simple
incorporation of cryptographic coprocessors. A coprocessor can be designed for a very specific
purpose and can contain as many registers and data paths as needed to implement the specific
functions.
To provide one solution, ARM has integrated into the SC100 core a cryptographic accelerator,
the Montgomery Multiplier Engine (MME). This engine is optimized for RSA calculations,
providing five times the performance of software solutions without any restrictions on key
length.
The SecurCore family offers all the benefits of ARM's industry leading high-performance, low-
power architecture, with significant design differences that make the ARM approach ideal for
secure applications.
4.3 Comparison of the ARM7TDMI with the ARM9TDMI families
To increase performance, the pipeline of the ARM9TDMI core was re-engineered from the three
stage system used by the ARM7TDMI family to five stages.
Operations previously performed in the execute stage of ARM7 are spread across four stages in
the ARM9 pipeline: decode, execute, memory, and write. The reorganization and removal of
these critical paths resulted in a much higher clock frequency.
Another performance improvement is the reduced cycles per instruction rating of the processor.
This is due to improved load and store instruction cycle counts. Single load and store instructions
are now single-cycle operations. This is an enhancement over the ARM7 operation, which used
the execute stage three times: first, to calculate the address; second, to access the memory and
www.rejinpaul.com
cache; and third, to write the data to the register bank. On ARM9, each step has a separate
pipeline stage requiring only one cycle, avoiding pipeline stalls.
The ARM7TDMI family is popular with applications where small die size, high performance,
and low power consumption help reduce system costs, especially when the system does not
require cache. Applications include cellular phones, MP3 players, and mass storage.
The ARM9TDMI family are used for high performance applications that previously could not be
implemented at the same cost. This family of cores was developed with twice the performance of
the ARM7TDMI and without changes to the architecture. It is ideally suited for the next
generation of cell phones, personal digital assistants, multi-function peripherals and fast printers,
and set-top box applications.
ARM9TDMI Processor Core
ARM 32-bit and Thumb 16-bit instructions (v4T ISA).
Very high code compatibility with ARM7TDMI:
-- Only change is simplified data-abort handler
Portable to 0.25, 0.18 m CMOS and below.
Harvard 5-stage pipeline implementation:
-- Higher performance from reduced cycle per instruction (1.5)
Coprocessor interface for on-chip coprocessors:
-- Allows floating point, DSP, graphics accelerators.
EmbeddedICE debug capability with extensions:
-- Hardware single step
-- Breakpoint on exception.
The Harvard bus architecture creates separate instruction and data memory interfaces, enabling
simultaneous access to instructions and data.
The ARM9TDMI represents a new family of CPU technology. The enhancements made to this
core family doubles the performance of the ARM7TDMI family.
ARM940T Macrocell
Processor for real-time embedded applications:
-- ARM9TDMI Core (v4T ISA)
www.rejinpaul.com
ARM920T Macrocell
Cached processor for platform OS applications:
-- 16 KB instruction and data cache
-- ARMv4 MMU for Palm OS, Symbian OS,
Linux, and Windows CE
-- Code compatible from ARM7 Thumb CPUs
-- Hard Macro IP:
-- 11.8 mm2 on 0.18 m
-- Up to 200 MHz (worst case) on TSMC
standard 0.18 m
-- Power: 0.8 mW/MHz
The ARM920T was created to address the needs of more complex systems using a platform
operating system, such as Windows CE or Symbian OS. This core replaces the MPU of the 940T
with a full memory management unit, and increases the instruction and data cache sizes to 16 KB
for each. The performance, MMU, and cache of this core make it ideal for Personal Digital
Assistants, smartphones, and set-top box applications.
ARM922T
Cached processor for Platform OS applications:
8 KB instruction and data cache
ARMv4 MMU for: Palm OS, Symbian OS, Linux, and Windows CE
Code compatible from ARM7 Thumb CPUs
Hard Macro IP:
-- 8.1 mm2 on 0.18 m
Up to 200 MHz (worst case) on TSMC standard 0.18 m
Power: 0.8 mW/MHz
The ARM922T core was created with half the amount of instruction and data caches of the 920T,
resulting in smaller silicon overhead. Other than this simple difference, the two cores are
fundamentally identical.
As mentioned hard macrocells always have been the ultimate answer for optimized performance
and die size in any given processor design. But newer synthesized design flows are pushing the
envelope for SoC applications.
The ARM9E family was built upon the standard set by the ARM9TDMI family, but it also
provides freedom for defining the cache and tightly coupled SRAM configurations used by the
core.
It was also the first family of CPUs designed to the AHB bus of the AMBA 2.0 specification.
Another key technological enhancement to this family of CPUs includes DSP extensions for true
realtime systems. This improvement to the architecture introduces additional multiply and
saturated math instructions for use by complex DSP algorithms. This family is also fully code
compatible with ARMv4T architecture cores.
Lastly, to enhance the debug capabilities already common in ARM CPUs, the Embedded Trace
Macrocell interface was added. This interface enables real-time debugging of complex real-time
systems.
www.rejinpaul.com
ARM966E-S
The ARM946E-S core takes the developments made by the 966E-S and adds selectable
instruction and data caches. Since the memory protection unit is integrated with cache, this
processor is an excellent High performance solution for embedded real-time applications, such as
engine management systems in automobiles and network appliances.
ARM946E-S Caches
Cache is 4-way set associative:
Can be built with compiled ASIC RAM.
Sizes of 0 KB, 4 KB, 8 KB ? 1 MB supported:
I and D cache sizes are independently selectable.
Cache lock-down on per-set basis:
Granularity is a quarter of the cache size.
Software selectable replacement algorithm:
Supports pseudo-random and round-robin
Write through and write back s/w selectable
Line length fixed at 8 words
The cache memory blocks of this core are selectable up to 1 MB. The cache is 4-way set
associative and selectable up to 1 MB. It also features lock-down support on a per-set basis,
random and round robin replacement support, software selectable options for write through and
write back, and eight word cache lines.
ARM9EJ-S Core Architecture
32-bit load/store RISC architecture
www.rejinpaul.com
The ARM1020E and ARM1022E processor cores offer the highest performance per unit of
power of any 32-bit processor running above 200 MHz. With an unprecedented 0.7 mW/MIPS
power consumption ratio, worst case on 0.15 m process technology, these processors offers
ideal solutions for high end platform applications. Examples include MPEG4 videophones,
smartphones, and Web pads.
Memory Management and caches are comparable to the ARM920T, ARM922T and ARM720T
products - ensuring code portability and protection for existing software investments. Future
implementation in this family will also integrate the Jazelle Java enhancements established by
the ARM9EJ-S family.
www.rejinpaul.com