Prefetch engine – Silicon Laboratories C8051F347 User Manual

Page 99

Advertising
background image

Rev. 1.3

99

C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D

10. Prefetch Engine

The 48 MHz versions of the C8051F34x family of devices incorporate a 2-byte prefetch engine. Because
the access time of the FLASH memory is 40 ns, and the minimum instruction time is roughly 20 ns, the
prefetch engine is necessary for full-speed code execution. Instructions are read from FLASH memory two
bytes at a time by the prefetch engine, and given to the CIP-51 processor core to execute. When running
linear code (code without any jumps or branches), the prefetch engine allows instructions to be executed
at full speed. When a code branch occurs, the processor may be stalled for up to two clock cycles while the
next set of code bytes is retrieved from FLASH memory. The FLRT bit (FLSCL.4) determines how many
clock cycles are used to read each set of two code bytes from FLASH. When operating from a system
clock of 25 MHz or less, the FLRT bit should be set to ‘0’ so that the prefetch engine takes only one clock
cycle for each read. When operating with a system clock of greater than 25 MHz (up to 48 MHz), the FLRT
bit should be set to ‘1’, so that each prefetch code read lasts for two clock cycles.

SFR Definition 10.1. PFE0CN: Prefetch Engine Control

Bits 7–6: Unused. Read = 00b; Write = Don’t Care
Bit 5:

PFEN: Prefetch Enable.
This bit enables the prefetch engine.
0: Prefetch engine is disabled.
1: Prefetch engine is enabled.

Bits 4–1: Unused. Read = 0000b; Write = Don’t Care
Bit 0:

FLBWE: FLASH Block Write Enable.
This bit allows block writes to FLASH memory from software.
0: Each byte of a software FLASH write is written individually.
1: FLASH bytes are written in groups of two.

R

R

R/W

R

R

R

R

R/W

Reset Value

PFEN

FLBWE

00100000

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

SFR Address: 0xAF

Advertising
This manual is related to the following products: