Availab le in 56- and 40-MHz speed grades
System-on-a-chip solution
— 32-bit ARM7 processor with MMU
— 4K unified cache
— FPU (floating point unit)
— Graphics controller drives CRT or LCD
— CD-quality sound audio controller
— DRAM controller
— ROM/Flash controller
— Three-channel DMA for video, cursor, and sound
— PC-style I/O bus
— Two-state power management
— Eight general-purpose I/O lines
Performance
— 50 Vax -MIPS (Dhrystone
— Up to 12 Mflops, double-precision FP (LINPACK)
) at 56 MHz
FPU
— Implements ANSI/IEEE Std 754-1985
— Single, double, and e xtended precision
System-on-a Chip for
Internet Appliance
OVERVIEW
The Cirrus Logic CL-PS7500FE is designed to be
used in internet appliances such as the network
computer, smart-TV, intranet terminal, screen
phones, DVD play ers, and so on.
The massively integrated CL-PS7500FE offers a
complete system-on-a-chip solution that includes a
32-bit ARM CPU with cache and MMU, CRT and
LCD controller, memory controller , FPU, CD-quality
sound controller, interface to the Cirrus Logic DSP
device for 56K modem and speakerphone, and a
PC-type I/O bus. To handle streaming of audio and
video data on the Internet, the CL-PS7500FE
includes a double-precision FPU to accelerate
software codecs.
(cont.)(cont.)
Functional
Block Diagram
June 1997Version 2.0
■
■
■
■
■
CL-PS7500FE
System-on-a-Chip for Internet Appliance
FEATURES
CRT or color/monochrome LCDs
— Resolutions up to 1024 × 768
— 256-entry 28-bit video palette
— Single- and dual-scan panel LCDs (16-bit grayscale)
Serial CD digital sound (32-bit) output
Supports EDO and Fast page mode DRAMs
— Up to 132 Mbytes/sec. (peak) using 64-MHz memory
clock and 32-bit-wide DRAM
— Programmable 16- or 32-bit-wide memory system
— Speed-critical paths are pipelined
OVERVIEW
(cont.)
(cont.)
The video controller features RGB drive of a SVGA
monitor or a color LCD. It also incorporates various
sync inputs, which when combined with an external
encoder, permit the use of interlaced TV displays.
The device incorporates a digital audio controller
with a 32-bit serial interface for connection to the
Cirrus Logic, CS4333 CD-DAC device. The
CL-PS7500FE can also interface to the Cirrus Logic
56K, FastPath modem chipset ideal for Internet
access over a PO TS line .
PC-style I/O bus (40-MHz) for connection to any
Cirrus Logic peripheral device
— 56k fax/modem chipset
— CS89XX Ethernet controller
— Can be expanded to 32 bits with external transceivers
ROM/FLASH
— Supports two 16-Mbyte banks
— Individual read timings
— Burst mode reads
— Allows for writes under register control for FLASH
The CL-PS7500FE supports UMA (unified memory
architecture); EDO DRAMs can be used to achieve
high-memory bandwidth.
The CL-PS7500FE is the main computing engine in
the NC platform defined by Oracle
, and runs the
NC operating system and applications.
The device is available in a 240-pin PQFP (plastic
quad flat pack) package.
The CL-PS7500FE is availab le in two speed grades:
●
ARM CPU running at 40 MHz; memory clock
running up to 64 MHz
●
ARM CPU running at 56 MHz; memory clock
running up to 64 MHz
4.2Instruction Set ..................................................................................................................................33
11.12General-Purpose, 8-bit-wide, I/O Port ............................................................................................120
11.13ID and OD Open-Drain I/O Pins .....................................................................................................121
11.14Version and ID Registers................................................................................................................121
11.15Interrupt Control .............................................................................................................................121
The use of ‘tbd’ indicates values that are ‘to be
determined’; ‘n/a’ designates ‘not available’; ‘n/c’
indicates a pin that is a ‘no connect’.
Acronyms
AcronymDefinition
AcronymDefinition
DRAMdynamic random-access memory
DVDdigital video disk
EDOextended data out
FIFOfirst in/first out
FPAfloating point accelerator
FPUfloating point unit
GPIOgeneral-purpose IO
HBMhuman body model
ICintegrated circuit
IDCinstruction and data cache
ISAindustry standard architecture
LSBleast-significant bit
LUTlookup table
MFLOPSmillion floating points per second
MMUmemory management unit
MSBmost-significant bit
MUXmultiplexer
NaNnot a number
PCprogram counter
PLLphased-locked loop
PQFPplastic quad-flat pack
RAMrandom-access memory
RISCreduced instruction set computer
ROMread-only memory
(cont.)
ACalternating current
ALUarithmetic logic unit
APaccess permissions
A-to-Danalog-to-digital
BIOSbasic input/output system
CISCcomplex instruction set computer
CMOS
CRTcathode ray tube
DACdigital-to-analog converter
DCdirect current
DMAdirect memory access
For outputs and bidirectional signals, drive strength is classified 1, 2, or 3. See Chapter 22 for DC and AC
characteristics.
2.1CL-PS7500FE Pin Descriptions
NameType
LA[28:0]OCZ2LATCHED ADDRESS BUS: This bus is the latched version of the
Drive
Strength
Description
ARM address for memory accesses, changing on the falling edge of
the internal MCLK signal.
LNBWOCZ2LA TCHED NO T BYTE WORD: This is a latched v ersion of the inter-
nal NBW signal from the ARM processor, changing on the falling
edge of the internal MCLK signal.
D[31:0]BTZ2DATA: The main data bus for the CL-PS7500FE. All exter nal data
transfers happen through this bus. When the CL-PS7500FE is configured for operation in 16-bit mode, only the lo wer 16 bits are used.
SnAICSYNCHRONOUS/NOT ASYNCHRONOUS: This pin is set accord-
ing to the relationship required between the internal clock signals,
MCLK and FCLK, for the ARM.
If this pin is set high, both the memory system and the CPU are
driven from the MEMCLK pin, and the required synchronous timing
relationship between the ARM processor clocks is generated automatically on-chip. If different clocks are to be used for the MEMCLK
and CPUCLK inputs, the SnA pin must be set low.
June 199715
ADVANCE DATA BOOK v2.0PIN DESCRIPTIONS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1CL-PS7500FE Pin Descriptions
NameType
Drive
Strength
(cont.)
Description
BOUTAOBLUE ANALOG OUTPUT: The video signal analog outputs are
designed to drive doubly-terminated 75-Ω lines.
ECLK OCZ3EXTERNAL CLOCK: When enabled, this clock validates the data
on ED[7:0]. In normal video mode, it runs at the pix el rate , but when
LCD data is being produced, it runs at a quarter of the pixel rate.
ED[7:0]OCZ2EXTERNAL DATA: This is the digital video output port of the
CL-PS7500FE. From this, the digital equivalent of the analog output
can be produced in any color , or data from the external palette may
be produced. This can be used for a variety of purposes such as
fading or supremacy. Also, data for driving LCD panels is output
from this port. Data produced is validated b y ECLK.
GOUTAOGREEN ANALOG OUTPUT: The video signal analog outputs are
designed to drive doubly-terminated 75-Ω lines.
HCLKITHIGH SPEED CLOCK: This is the clock used with video sub-
system.
HSYNCOCZ3HORIZONTAL SYNCHRONIZATION: There are two synchroniza-
tion outputs on
the CL-PS7500FE, HSYNC and VSYNC . Dependent
on the state of bits 17 and 16 in the video External register, either a
horizontal or a composite (NOR) sync can be output on this pin, in
either polarity . The width of the HSYNC pulse is definable in units of
2 pixels.
PCOMPOCZ1PHASE COMPARATOR OUTPUT: Used with VCLK pins.
ROUTAORED ANALOG OUTPUT: The video signal analog outputs are
designed to drive doubly-terminated 75-Ω lines.
SCLKITSOUND CLOCK: This signal can be used to clock the sound sys-
tem, when a clock asynchronous to the internal video reference
clock is required.
SDCLKOCZ2SERIAL DA TA CLOCK: This clock v alidates serial sound data on its
rising edge.
SDOOCZ2SERIAL DATA OUT: Serial sound data is output from this pin.
SYNCITEXTERNAL SYN: This signal is used to synchronize CL-PS7500FE
with another video system.
VCLKIICPHASE COMPARATOR CLOCK IN (for video subsystem).
VCLKOOCZ2PHASE COMPARATOR CLOCK OUT (for video subsystem).
PIN DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 199716
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1CL-PS7500FE Pin Descriptions
NameType
Drive
Strength
(cont.)
Description
VIREFIAVIDEO REFERENCE CURRENT: The video DACs need a refer-
ence current to calibrate them. A constant current source is recommended, although a resistor up to V
is sufficient for many
DD
applications. This current also generates the constant source f or the
A-to-D comparators.
VSYNC OCZ3VERTICAL SYNCHRONIZATION: Dependent on the state of bits
19 and 18 in the external register, either a ver tical or a composite
(XNOR) sync can be output on this pin, in either polarity. The width
of the VSYNC pulse can be defined in units of a raster.
WSOCZ2WORD SELECT: This signal denotes whether the output serial data
is for the left-hand or right-hand stereo channel.
nTEST ITTEST MODE INPUT: This pin should be held permanently high. It
is only intended to be used during production test of the
CL-PS7500FE. An on-chip pull-up resistor is included, but it is
advised to apply an external pull-up resistor to this pin.
nWEOCZ2WRITE ENABLE: This is a active-low signal.
RA[11:0] OCZ2DRAM ROW/COLUMN MULTIPLEXED ADDRESS BUS:
Addresses for this bus are decoded from the ARM processor
address for normal memory accesses, and are generated by the
DMA controller for DMA.
nRAS[3:0] OCZ3DRAM ROW ADDRESS STROBES: Each of these selects one of
the four banks of DRAM available.
nCAS[3:0]OCZ3DRAM COLUMN ADDRESS STROBES: These select the byte
within the word for DRAM accesses.
ATOD[3:0] IAODANALOG-TO-DIGITAL: These are the four A-to-D channel input
voltages.
ATODREF IAANALOG-TO-DIGITAL REFERENCE: This is the reference v oltage
for the A-to-D converter comparators.
OSCPOWEROCZ1OCILLA TOR PO WER: This is the enab le signal for the system oscil-
lator(s). When low, this signal can be used to disable the external
oscillator(s).
OSCDELAY CSOD1OCILLATOR DELAY: This signal requires an RC netw ork to gener-
ate a fixed delay when restarting the system oscillator(s) on exit
from STOP mode.
June 199717
ADVANCE DATA BOOK v2.0PIN DESCRIPTIONS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1CL-PS7500FE Pin Descriptions
NameType
Drive
Strength
(cont.)
Description
RESET OCZ2RESET OUTPUT: This is the synchronized version of internal sys-
tem reset signal.
nRESET CSOD2RESET: This is an open-drain output and a ‘soft’ reset input. This pin
is sampled every 1µs for reset events, so to guarantee a successful
reset, a reset pulse applied to this pin must be longer than 1µs (1µs,
assuming the internal I/O clock is 32 MHz).
nROMCS OCZ1ROM CHIP SELECT: This signal goes low to indicate a ROM
access.
I_OCLKICI/O SYSTEM CLOCK: This clock input should always be 32 MHz
when in Divide-by-1 mode, and 64 MHz in Divide-by-2 mode.
MEMCLK ICMEMORY SYSTEM CLOCK: In synchronous mode, the ARM pro-
cessor FCLK is also driven from this clock.
CPUCLK [MHz]MEMCLK [MHz]SnANotes
Low40High
4056Low
4064Low
Low56HighRecommended
5664Low
CPUCLK ICThis clock creates FCLK for the ARM CPU in asynchronous mode.
When SnA is high, this signal should be permanently tied high or
low.
BD[15:0] BTZ2This is the main external 16-bit I/O bus.
MSCLK TOD2MOUSE CLOCK: An open-drain pin for the mouse PS/2 interface.
MSDATA TOD2MOUSE DATA: An open-drain pin for the mouse PS/2 interface.
KBCLK TOD2KEYBOARD CLOCK: An open-drain pin for the keyboard PS/2
interface.
KBDATA TOD2KEYBOARD DATA: An open-drain pin for the keyboard PS/2 inter-
face.
nPOR ICSPOWER ON RESET: Any low transitions on this pin are detected
and stretched to ensure a full reset.
PIN DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 199718
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1CL-PS7500FE Pin Descriptions
NameType
Drive
Strength
(cont.)
Description
IOP[7:0] TOD1I/O PORT : This is the 8-bit-wide I/O port. Each bit is directly control-
lable through an CL-PS7500FE register, and can be used as an
interrupt source if required.
ID TOD1ID: This pin activates a system ID chip. It is forced low during the
power-on reset sequence.
OD[1:0] TOD1OPEN DRAIN 1:0: These are the tw o open-drain pins, which (unlike
the IOP[7:0] bus) cannot be used to generate interrupts, but can be
used as general-purpose I/O pins (for example to communicate with
a realtime clock chip).
SETCS ICThis signal selects between two address decoding options for the
three main I/O chip selects. It aff ects the outputs nEASCS , nMSCS,
and nSIOCS2.
nINT1 ITThis is a falling-edge-triggered interrupt. The nINT1 value can be
read directly in the IOCR I/O control register.
INT2ITThis is a rising-edge-triggered interrupt pin that can generate an
IRQ interrupt.
nINT3 ITThis is an active-low interrupt that can generate an IRQ interrupt.
nINT4ITThis is an active-low interrupt that can generate an IRQ interrupt.
INT5 ITThis is an active-high interrupt that can generate either an IRQ or a
FIQ interrupt, depending on the status of the relevant mask register
bits.
nINT6 ITThis is an active-low interrupt that can generate either an IRQ or a
FIQ interrupt, depending on the programming of the mask registers.
INT7 ITThis is an active-high interrupt that can generate an IRQ interrupt.
nINT8 ITThis is an active-low interrupt that can generate either a FIQ or an
IRQ interrupt.
INT9 ITThis is an active-high interrupt that can only generate a FIQ (highest
priority) interrupt.
nEVENT1 ITThis is the active-low asynchronous event pin 1. A falling edge ter-
minates the STOP or SUSPEND power-saving modes.
nEVENT2 ITThis is the active-low asynchronous event pin 2. A falling edge ter-
minates the STOP or SUSPEND power-saving modes.
June 199719
ADVANCE DATA BOOK v2.0PIN DESCRIPTIONS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1CL-PS7500FE Pin Descriptions
NameType
Drive
Strength
(cont.)
Description
READYITREADY: This pin can stretch I/O accesses when set low during a
16-MHz PC-type I/O cycle.
nIORQ OCZ2I/O REQUEST: This signal is for the module-type I/O for handshak-
ing, together with nIOGT.
nIOGT ITI/O GRANT: This signal is for the module-type I/O f or handshaking,
together with nIORQ.
nBLI ITThis input is used during module-type I/O reads to cause the latch-
ing of data from the BD port.
nBLO OCZ1This signal is the latching signal for use with external latches on the
upper 16 bits of the external datapath to create a 32-bit-wide I/O
bus.
nRBEOCZ1This active-low read enable is used to create a 32-bit-wide I/O bus
for an external transceiver attached to the upper 16 bits of the I/O
bus.
nWBEOCZ1This active-low write enable is used to create a 32-bit-wide I/O bus
for an external transceiver attached to the upper 16 bits of the I/O
bus.
nXIPMUX16ITThis signal is for XIP (execute in place) suppor t. This signal multi-
plexes 16 bits of data from the upper or lower halfword of the
CL-PS7500FE internal data bus to the 16-bit I/O bus, depending on
its state during writes.
nXIPLATCHITThis signal is for XIP support and latches the upper 16 bits of data
from the I/O bus while the lower 16 bits are being read. This signal
is used in conjunction with nXIPMUX16 to enable XIP (for e xample ,
from a 16-bit PCMCIA card).
nSIOCS1 OCZ1This is the active-low chip select for simple I/O.
nSIOCS2OCZ1This is the active-low chip select f or simple I/O, with address decode
modified according to the state of SETCS.
nMSCSOCZ2This is the active-low chip select for module-type I/O, with address
decode modified according to the state of SETCS.
nEASCSOCZ1This is the active-low chip select for extended 16-MHz PC-type I/O,
with address decode modified according to the state of SETCS.
nCCSOCZ1NOT COMBO CHIP SELECT: This is the chip select signal for a PC
Combo chip.
PIN DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 199720
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.1CL-PS7500FE Pin Descriptions
NameType
Drive
Strength
(cont.)
Description
nCDACKOCZ1NOT COMBO DACK: This is the chip select and DACK signal for a
PC Combo chip.
TCOCZ1TERMINAL COUNT: This active-high signal is used in conjunction
with the nCDACK signal for pseudo DMA to a PC Combo chip.
nPCCS1OCZ1This is the active-low chip select for an area of 16-MHz PC-type I/O
space.
nPCCS2OCZ1This is the active-low chip select for an area of 16-MHz PC-type I/O
space.
LNBWOCZ2LA TCHED NO T BYTE WORD: This is a latched version of the inter-
nal NBW signal from the ARM processor, which transitions on the
falling edge of the internal MCLK signal.
IORNWOCZ2I/O READ/NOT WRITE: This signal goes high during an I/O read,
and low during an I/O write.
nIOROCZ2NOT I/O READ: This signal has two functions:
1) It transitions low during simple and PC-type I/O reads; not used for
module-type I/O.
2) It is asserted low during ROM read cycles to act as an output
enable.
nIOWOCZ2NOT I/O WRITE: This signal has two functions:
1) It transitions low during simple and PC-type I/O reads; not used for
module-type I/O.
2) It is asserted low during writes to ROM space, to act as a write
enable, if writes are enabled in the ROMCR register.
CLK2OCZ2This is the 2-MHz I/O clock output.
CLK8OCZ2This is the 8-MHz I/O clock output, the inverted version of REF8M.
REF8MOCZ2This is the 8-MHz I/O clock output.
CLK16OCZ2This is the 16-MHz I/O clock output, for PC-type I/O.
June 199721
ADVANCE DATA BOOK v2.0PIN DESCRIPTIONS
System-on-a-Chip for Internet Appliance
2.2Power and Ground Pins
NamePin No.Description
CL-PS7500FE
V
DD
8
24
These 15 pins supply +5 volts to the digital logic of the CL-PS7500FE. Each pin
must be connected to the V
CC
plane.
41
56
61
62
79
106
117
132
149
166
198
216
233
V
SS
10
21
These 20 pins supply the ground reference to the digital logic of the
CL-PS7500FE. Each pin must be connected to the ground plane.
35
47
58
63
64
66
74
85
104
115
130
144
159
170
193
210
226
238
VDD_CORE32
65
89
153
214
PIN DESCRIPTIONS
These five pins supply +5 volts to the core logic of the CL-PS7500FE. Each pin
must be connected to the V
CC
plane.
ADVANCE DATA BOOK v2.0
June 199722
CL-PS7500FE
System-on-a-Chip for Internet Appliance
2.2Power and Ground Pins
NamePin No.Description
VSS_CORE30
67
These five pins supply the ground ref erence to the core logic. Each pin must be
connected to the ground plane.
(cont.)
87
151
212
VDD_ATOD 121This pin is the positive (+5V) supply for the A-to-D converter comparators. This
pin must be connected directly to the V
plane.
CC
VSS_ATOD 127This pin is the analog ground for the A-to-D converter comparators. This pin
must be connected to the ground plane.
VDD_Analog91This pin supplies the positive (+5V) supply for analog video system. This pin
must be connected directly to the V
CC
plane.
VSS_Analog95This pin supplies ground for analog video system. This pin must be connected
to the ground plane.
June 199723
ADVANCE DATA BOOK v2.0PIN DESCRIPTIONS
System-on-a-Chip for Internet Appliance
2.3Numerical Pin Listing
The following table is a numeric listing of the pins of the CL-PS7500FE.
CL-PS7500FE
Pin numberSignal name
1LA[15]
2LA[16]
3LA[17]
4LA[18]
5LA[19]
6LA[20]
7LA[21]
8V
DD
9LA[22]
10V
SS
11LA[23]
12LA[24]
13LA[25]
14LA[26]
15LA[27]
Pin numberSignal name
30VSS_CORE
31D[20]
32VDD_CORE
33D[19]
34D[18]
35V
SS
36D[17]
37D[16]
38D[15]
39D[14]
40D[13]
41V
DD
42D[12]
43D[11]
44D[10]
Pin numberSignal name
59VCLKI
60VCLKO
61V
62V
63V
64V
DD
DD
SS
SS
65VDD_CORE
66V
SS
67VSS_CORE
68SDO
69SCLK
70SDCLK
71WS
72SYNC
73ECLK
16LA[28]
17D[31]
18D[30]
19D[29]
20D[28]
21V
SS
22D[27]
23D[26]
24V
DD
25D[25]
26D[24]
27D[23]
28D[22]
29D[21]
PIN DESCRIPTIONS
45D[9]
46D[8]
47V
SS
48D[7]
49D[6]
50D[5]
51D[4]
52D[3]
53D[2]
54D[1]
55D[0]
56V
DD
57PCOMP
58V
SS
74V
75HCLK
76ED[7]
77ED[6]
78ED[5]
79V
80ED[4]
81ED[3]
82ED[2]
83ED[1]
84ED[0]
85V
86VSYNC
87VSS_CORE
ADVANCE DATA BOOK v2.0
SS
DD
SS
June 199724
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Pin numberSignal name
88HSYNC
89VDD_CORE
90VIREF
91VDD_ANALOG
92ROUT
93BOUT
94GOUT
95VSS_ANALOG
96nTEST
97nINT8
98nINT3
99nINT6
100INT7
101RA[11]
102RA[10]
103RA[9]
Pin numberSignal name
120nRAS[0]
121VDD_ATOD
122ATODREF
123ATOD[3]
124ATOD[2]
125ATOD[1]
126ATOD[0]
127VSS_ATOD
128nCAS[3]
129nCAS[2]
130V
SS
131nCAS[1]
132V
DD
133nCAS[0]
134nWE
135OSCPOWER
Pin numberSignal name
152MEMCLK
153VDD_CORE
154BD[9]
155BD[8]
156BD[7]
157BD[6]
158BD[5]
159V
SS
160BD[4]
161BD[3]
162BD[2]
163BD[1]
164BD[0]
165MSCLK
166V
DD
167MSDATA
104V
SS
105RA[8]
106V
DD
107RA[7]
108RA[6]
109RA[5]
110RA[4]
111RA[3]
112RA[2]
113RA[1]
114RA[0]
115V
SS
116nRAS[3]
117V
DD
118nRAS[2]
119nRAS[1]
136OSCDELAY
137SnA
138RESET
139nRESET
140nROMCS
141BD[15]
142BD[14]
143I_OCLK
144V
SS
145nEVENT2
146BD[13]
147BD[12]
148BD[11]
149V
DD
150BD[10]
151VSS_CORE
168KBCLK
169KBDATA
170V
SS
171nPOR
172IOP[7]
173IOP[6]
174IOP[5]
175IOP[4]
176IOP[3]
177IOP[2]
178IOP[1]
179IOP[0]
180ID
181OD[1]
182OD[0]
183SETCS
June 199725
ADVANCE DATA BOOK v2.0PIN DESCRIPTIONS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Pin numberSignal name
184INT9
185nINT4
186INT5
187READY
188nIOGT
189nBLI
190nXIPMUX16
191nINT1
192INT2
193V
SS
194nEVENT1
195nXIPLATCH
196TC
197nSIOCS2
198V
DD
199nSIOCS1
Pin numberSignal name
216V
DD
217nCCS
218nCDACK
219IORNW
220nPCCS2
221nPCCS1
222LNBW
223LA[0]
224LA[1]
225LA[2]
226V
SS
227LA[3]
228LA[4]
229LA[5]
230LA[6]
231LA[7]
200nEASCS
201nMSCS
202nBLO
203nRBE
204nWBE
205CLK2
206REF8M
207CLK8
208CLK16
209nIORQ
210V
SS
211nIOR
212VSS_CORE
213CPUCLK
214VDD_CORE
215nIOW
232LA[8]
233V
DD
234LA[9]
235LA[10]
236LA[11]
237LA[12]
238V
SS
239LA[13]
240LA[14]
PIN DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 199726
CL-PS7500FE
System-on-a-Chip for Internet Appliance
3.FUNCTIONAL DESCRIPTION
The CL-PS7500FE is a high-performance, low-power RISC-based single-chip computer built around an
ARM microprocessor core. To maximize the potential of the ARM processor macrocell, the CL-PS7500FE
contains memory and I/O control on-chip, enabling the direct connection of external memory devices and
peripherals with the minimum of external components. The FPA (floating-point accelerator) is also integrated, resulting in outstanding math performance.
NOTE: The CL-PS7500FE is based on the ARM7500FE architecture from ARM Ltd., U.K. (http://www.arm.com).
The CL-PS7500FE includes features that make it particularly suitable for low-po wer portable applications.
Both 32- and 16-bit-wide memory systems are suppor ted, allowing the design of a lower-cost 16-bitbased system. The CL-PS7500FE drives color CRT or color LCD panels. Monochrome single- or dualpanel LCDs with 16 levels of g reyscaling can also be driven. Power-management circuitry is included with
two power-saving states. The high level of integration achieved allows significant PCB area saving, and
results in a very cost-competitive system.
The CL-PS7500FE is also particularly suited to any application requiring high-quality video, sound, and
general I/O requirements, such as multimedia. The video controller provides up to 16 million colors from
a 256-entry palette, running at up to a 120-MHz pixel clock rate. The sound subsystem includes a serial
sound interface for CD-quality 32-bit sound. Four on-chip A-to-D converters allow the connection of analog joysticks or similar control devices. The clocking scheme is very flexible, allowing either a very cheap
system to be built using a single oscillator , or separate asynchronous clocks to be used f or the CPU, memory and I/O subsystems, which gives an extremely flexible system, able to take advantage of the fastest
available DRAM memory.
3.1Functional Block Diagram
Figure 3-1 on page 28 presents a more detailed view of the functionality of the CL-PS7500FE single-chip
computer.
3.2ARM Processor Macrocell
The ARM processor contains an ARM7 core with MMU, 4-Kbyte cache, and write buffer.
3.3FPA Macrocell
The FPA is a fully IEEE-754 compliant floating-point accelerator, and supports single, double, and
extended precision formats. It is connected to the ARM through the coprocessor interface and provides
the same floating-point functionality as the FPA11.
Concurrent load/store and arithmetic units, and speculative ex ecution are emplo yed to giv e good floatingpoint performance.
June 199727
ADVANCE DATA BOOK v2.0FUNCTIONAL DESCRIPTION
ARM PROCESSOR
MMU
FPA
ADDRESS
BUFFER
CL-PS7500FE
System-on-a-Chip for Internet Appliance
LATCHED ADDRESS
ADDRESS LATCH
INTERNAL
ADDRESS
ADDRESS
DECODE
I/O
CONTROL
WRITE BUFFER
D
A
T
A
P
A
T
H
DATA BUFFER
VIDEO AND SOUND
HORIZONTAL AND
VERTICAL TIMING
AND
CLOCK CONTROL
SOUND
FIFO
DIGITAL
SOUND
4-KBYTE
CACHE
INTERNAL DATA
VIDEO FIFO
AND
SERIALIZER
VIDEO
PALETTES
ANALOG
RGB
OUTPUTS
ARM7
CPU
DATA LATCH
CURSOR FIFO
AND
SERIALIZER
CURSOR
PALETTES
MUX
EXTERNAL
LCD
OUTPUTS
INTERRUPTS
AND TIMERS
SERIAL
AND
AND
RESET
CONTROL
PORT 1
SERIAL
PORT 2
DRAM
DATA
BUFFER
BUS CONTROL
ARBITRATION
CLOCK CONTROL,
POWER MANAGEMENT,
DMA
CONTROL
ROM CONTROL
4 A-TO-D
CONVERTORS
Figure 3-1. Functional Block Diagram of the CL-PS7500FE
FUNCTIONAL DESCRIPTION
ADVANCE DATA BOOK v2.0
June 199728
CL-PS7500FE
System-on-a-Chip for Internet Appliance
3.4Video and Sound Macrocell
The video and sound macrocell gives the CL-PS7500FE the flexibility to drive high analog CRT or low
power LCD displays, and features the following:
● Up to 120-MHz pixel clock rate
● Resolutions of up to 1024 × 768 pixels are directly supported
(greater if external serialization is used)
● Fully programmable display parameters
● 256-entry by 28-bit video palette
● Red, green and blue 8-bit linear DACs to drive CRT
● 1-, 2-, 4-, 8-, 16-, and 32-bpp CRT modes
● Up to 16 million colors
● External bits in palette for supremacy, fading, HiRes
● Single- or dual-panel LCD driving
● 16-level gray scalar for LCD
● Power management features
● Hardware cursor for all display modes
● Sound system — serial CD digital output
3.5Clock Control and Power Management
The clocking strategy for CL-PS7500FE has been designed f or maximum fle xibility , and includes separ ate
clock inputs for the:
● CPU core clock
● Memory system clock
● I/O system clock (in addition to the video clock inputs).
Each of the three clock inputs has a selectable divide-by-two prescalar to generate an internal 50/50
mark-space ratio if required. Throughout this data book, all timing diagrams assume that CPUCLK, MEMCLK, and I_OCLK are divided by one.
There are two levels of power management included:
● SUSPEND mode: The clock to the CPU is stopped, but the display continues to work normally, that is, DMA
unaffected.
● STOP mode: All clocks are stopped. Two asynchronous wake-up event pins are provided to terminate stop
mode. Circuitry is included on-chip to stop external oscillators and restart them cleanly when required.
3.6Memory System
The memory system interface control logic is completely asynchronous in operation to the I/O control
logic. This means that the clock to the memory controller can be increased in frequency to allow faster
memory to be used. This implementation gives maximum system flexibility.
June 199729
ADVANCE DATA BOOK v2.0FUNCTIONAL DESCRIPTION
CL-PS7500FE
System-on-a-Chip for Internet Appliance
The CL-PS7500FE can control a 32- or 16-bit-wide memory system. The width of each bank of ROM or
DRAM is selectable by programming appropriate register bits. Fast page mode or EDO DRAMs are supported.
A DRAM controller is included that can directly drive up to four banks of DRAM. Four nRAS strobes individually select one of the four banks, and f our nCAS strobes pro vide individual byte selection. The DRAM
address multiplexing option provided allows a wide variety of DRAM sizes to be used – from 256 Kbytes
to beyond 16 Mbytes . Up to 256 page mode transfers can occur in one sequential burst. When configured
for operation with a 16-bit-DRAM system, the DRAM controller conv erts the access into two DRAM cycles
to access the two halves of the 32-bit word. Byte transfers only take one DRAM access cycle, e v en in 16bit mode.
A programmable register allows one of four DRAM refresh rates to be selected. In addition, a register is
provided to enable direct software control of the nCAS and nRAS lines f or setting DRAM into a self-refresh
state.
A ROM controller supports two 16-Mbyte banks of ROM with individually programmable read cycle timings. Support is provided for b urst mode reads. Each ROM bank can be programmed to operate in 16-bitwide mode and, like the DRAM controller, converts accesses into two ROM cycles for the two halves of
the 32-bit word. The R OM controller can be programmed to allow write cycles through this interf ace, allowing FLASH to be programmed.
3.6.1DMA
Three fully programmable DMA channels are included, for video, cursor, and sound data. The DMA controller includes additional support for dual-panel LCDs.
3.6.2I/O Control
The I/O bus of the CL-PS7500FE is 16-bits wide, but for some types of access can be expanded to 32
bits by the use of external transceivers. The input clock I_OCLK provides a reference for the I/O subsystem nominally 32 MHz. The I/O features of this device can be separated into three distinct cycle types:
● Simple I/O with fixed 8-MHz timings
● Module I/O with variable length 8-MHz timings
● PC bus style I/O with fixed 16-MHz timings and support for 32-bit data
Simple I/O
The Simple I/O type of access is 16-bit-only and has a selection of four different cycle speeds selectable
by address. When writing, the upper half-word of the ARM data bus is written out on the I/O bus. When
reading, the I/O bus data is read back onto the lower half-word of the ARM data bus. During these
accesses, a chip select is asserted with the appropriate nIOR/nIOW read or write strobe, based on the
8-MHz clock CLK8.
Module I/O
The Module I/O type of access is 16 bits only and timing is controlled by a handshake mechanism with
the external hardware. The signals nIORQ (output) and nIOGT (input) are used for this handshaking and
are referenced to REF8M. When writing, the upper half-word of the ARM data bus is written out on the
I/O bus. When reading, the I/O bus data is read back onto the lower half-word of the ARM data bus.
FUNCTIONAL DESCRIPTION
ADVANCE DATA BOOK v2.0
June 199730
CL-PS7500FE
System-on-a-Chip for Internet Appliance
During these accesses, a chip select is asserted but the nIOR/nIOW read and write strobes are not used,
although the IORNW signal is active.
PC Bus Style I/O
The PC bus style I/O type of access routes the lower half-word of the ARM bus through the device providing a direct 16-bit interface. Signals are generated to support the addition of external latches/drivers to
extend the I/O data by 16 bits . The upper half-word of the ARM data bus is routed through these external
devices if present.
There are five different address areas that generate five different chip selects using the same type of
access. There are four fixed-cycle types based on the 16-MHz clock, although the largest area only supports two of these cycle types. Any access can be held up by external circuitry removing the READY signal before the end of the cycle.
During these accesses, the relevant chip select is asserted, as well as the appropriate read or wr ite
strobes.
Two special inputs are provided to allow external circuitry to route the full 32 bits through the 16-bit I/O
bus using multiplexing. This allows, for example, the execution of code from a 16-bit PCMCIA card with
suitable external controller . On a read I/O, if this latching signal is used, the data read back onto the ARM
data bus comes from the I/O bus instead of the external extension latches.
3.7Other Features
The CL-PS7500FE includes four analog comparators used to create f our A-to-D con v erter channels, and
two serial keyboard/mouse ports.
There are eight general-purpose, open-drain I/O lines that can be used as inputs or open drain outputs
and, if required, as interrupt sources.
An interrupt handler processes a variety of internal and external interrupt sources to generate the IRQ
and FIQ interrupts for the ARM processor.
3.8Test Modes
The CL-PS7500FE has an nTEST pin used to invoke various test modes. When nTEST is set low, the
functionality of many of the pins change depending on the values applied to the nINT3, nINT6 and nINT8
pins. The nTEST pin includes an on-chip pull-up resistor , but it is recommended that the pin be also pulled
up to V
NOTE: The nTEST pin should never be forced low during normal operation.
externally. See Appendix F.
DD
3.9Structure of the CL-PS7500FE
The CL-PS7500FE includes three modified ARM macrocells:
● ARM processor
● FPA
● Video and sound macrocells
These macrocells are self-contained and the relevant control registers are contained within them. This
has the effect that there are four sets of programmable registers within the CL-PS7500FE, which are
accessed in different ways depending on their location.
June 199731
ADVANCE DATA BOOK v2.0FUNCTIONAL DESCRIPTION
CL-PS7500FE
System-on-a-Chip for Internet Appliance
3.9.1Register Programming
ARM processor register programming is described in Chapter 4. FPA register programming is described
in Chapter 18
The video and sound macrocell registers are programmed using only the internal CL-PS7500FE data bus
(the address bus is not passed to the macrocell). The address 0x03400000 is decoded to provide a write
strobe for the video macrocell registers, and the addressing of registers within the macrocell is decoded
from the upper four or eight bits of the data word. This system is described in more detail in Chapter 16.
The remaining CL-PS7500FE registers, associated with Memory , I/O , and general miscellaneous control,
form a separate group and are programmed between addresses 0x03200000 and 0x032001F8. The
majority of the registers are only 8 bits wide, although all register addresses are word-aligned. These registers are described in Chapter 7.
3.9.2Interaction Between Macrocells
Interaction between the macrocells occurs mainly across the internal 32-bit data bus of the
CL-PS7500FE, which is routed to the ARM and video/sound macrocells, and most of the other memory
and I/O control logic. The address bus of the ARM processor is routed to an internal address decoder
where memory space is decoded to determine required cycle types and register addresses. The same
address bus is latched and exported from the device as the LA[28:0] bus. Only these 29 bits of the
address bus are available externally.
.
3.10Resetting CL-PS7500FE Systems
The CL-PS7500FE is designed to operate with both 16- and 32-bit-wide ROMs, which means that it must
be capable of booting from either . To achiev e this, the de vice is alwa ys reset into 16-bit mode, which might
be expected to cause difficulty when the device is being booted up from 32-bit ROM. However,
Appendix A
under these circumstances.
describes a simple code sequence that allows the device to be started up without difficulty
FUNCTIONAL DESCRIPTION
ADVANCE DATA BOOK v2.0
June 199732
CL-PS7500FE
System-on-a-Chip for Internet Appliance
4.THE ARM PROCESSOR MACROCELL
The CL-PS7500FE contains a 32-bit RISC ARM processor, similar to the ARM710C macrocell. It has a
4-Kbyte cache, write buffer, and an MMU. The ARM processor macrocell offers high-level RISC performance, yet its fully static design ensures minimal power consumption. This makes it ideal f or incorporation
into the CL-PS7500FE. The CL-PS7500FE aims to make maximum use of the performance and flexibility
offered by the ARM processor.
This section describes the features of the ARM processor macrocell availab le to the user in its embedded
state within the CL-PS7500FE single-chip computer.
4.1Architecture
The ARM processor architecture is based on RISC principles, and the instruction set and related decode
mechanism are greatly simplified compared with microprogrammed CISCs.
The mixed data and instruction cache, together with the write buffer, substantially raise the average execution speed and reduce the average amount of memory bandwidth required by the processor. This
allows the CL-PS7500FE bus structure to support DMA channels with minimal performance loss.
The MMU supports a conventional two-level page-table structure and a number of extensions, making it
ideal for embedded control, UNIX, and object-oriented systems.
4.2Instruction Set
The instruction set comprises ten basic instruction types:
● Two instruction types make use of the on-chip ALU, barrel shifter, and multiplier to perform high-speed oper-
ations on the data in a bank of 31 registers, each 32 bits wide.
● Three classes of instruction control data transfers between memory and the registers:
— one optimized for flexibility of addressing,
— another for rapid context switching, and
— the third for swapping data.
● Two instructions control the flow and privilege level of execution.
● Three instruction types are dedicated to the control of coprocessors that allow the functionality of the instruc-
tion set to be extended in an open and uniform way; the on-chip FPA is one such processor.
However, the facility to add external coprocessors to the CL-PS7500FE is not available, and software emulation of coprocessor activity is required if instructions, other than those for the on-chip FPA or control coprocessor #15, are to perform a defined function.
The ARM instruction set is a good target for compilers of many different high-level languages. Where
required for critical code segments, assembly code programming is also straightforward, unlike some
RISC processors that depend on sophisticated compiler technology to manage complicated instruction
interdependencies.
June 199733
ADVANCE DATA BOOK v2.0THE ARM PROCESSOR MACROCELL
CL-PS7500FE
System-on-a-Chip for Internet Appliance
4.3Memory Interface
The memory interface has been designed to allow the performance potential to be realized without incurring high costs in the memory system. Speed-critical control signals are pipelined to allow system control
functions to be implemented in standard low-power logic, and these control signals permit the
CL-PS7500FE to exploit the page mode access offered by industry-standard DRAMs.
4.4Clocks and Synchronous/Asynchronous Modes
The ARM processor uses two independent clock sources, MCLK and FCLK. Both are generated internally
to the CL-PS7500FE from MEMCLK and CPUCLK. The ARM7 core CPU switches between MCLK and
FCLK according to the operation being carried out. For example, if the ARM7 core CPU is reading data
from the cache, it is clocked by FCLK; if the core CPU is reading data from uncached memory then it is
clocked by MCLK. The control logic of the ARM processor ensures that the correct clock is used internally
and switches between the two clocks automatically.
When SnA is tied high, MEMCLK creates both FCLK and MCLK; MCLK has half the frequency of FCLK.
This synchronous mode ensures that there are no synchronization penalties whenever the ARM 7 core
is switched between FCLK and MCLK.
When SnA is tied low, MEMCLK creates MCLK and CPUCLK must be driven to supply FCLK. MEMCLK
and CPUCLK can be of unrelated frequency . There is a synchronization penalty whenev er the ARM7 core
clock switches between MCLK and FCLK. This penalty is symmetric, and varies between nothing and a
whole period of the clock where the core resynchronized. Thus, when changing there is an av erage resynchronization penalty of one-half a clock period, MCLK or FCLK as appropriate.
A[31:0]NR/WNB/W
ADDRESS BUFFER
MMU
WRITE
BUFFER
DBE
D[31:0]
INTERNAL ADDRESS BUS
4-KBYTE
CACHE
INTERNAL DATA BUS
CONNECTION TO
FPA COPROCESSOR
MCLK SNA FCLKNRESET
CLOCK
CONTROL
ARM7
CPU
CONTROL
COPROC
NMREQ
NIRQ
NFIQ
Figure 4-1. ARM Processor Block Diagram
THE ARM PROCESSOR MACROCELL
ADVANCE DATA BOOK v2.0
June 199734
CL-PS7500FE
System-on-a-Chip for Internet Appliance
5.IDC
ARM processor contains a 4-Kbyte mixed-instruction and data cache. The IDC has 256 lines of 16 bytes
(4 words), organized as a four-way set associative cache, and uses the virtual addresses generated by
the processor core. The IDC is always reloaded one line at a time (four words). It can be enabled or disabled through the ARM processor Control register and is disabled on nRESET.
The operation of the cache is further controlled by the
cacheable
or C bit stored in the Memory Management Page table (see the Section 6 on page 38). For this reason, to use the IDC the MMU must be
enabled. How e ver, the two functions can be enabled simultaneously with a single write to the Control register.
5.1Cacheable Bit
The C bit determines whether data being read can be placed in the IDC and used for subsequent read
operations. Typically, main memor y is marked as cacheable to improve system perfor mance, and I/O
space as non-cacheable to stop the data being stored in the cache of the CL-PS7500FE. (For example,
if the processor is polling a hardware flag in I/O space, it is important that the processor is forced to read
data from the external peripheral, and not a copy of initial data held in the cache.) The Cacheable bit can
be configured for both pages and sections.
5.2IDC Operation
In the ARM processor the cache is searched regardless of the state of the C bit, only reads that miss the
cache are affected.
● Cacheable reads
— C = 1: A line fetch of 4 words is performed and randomly placed in a cache bank.
● Uncacheable reads
— C = 0: An external memory access is performed and the cache is not written.
5.2.1IDC V alidity
The IDC operates with virtual addresses, so ensure that the contents remain consistent with the virtualto-physical mappings performed by the MMU . If the memory mappings are changed, the IDC validity must
be ensured.
5.2.2Software IDC Flush
The entire IDC can be marked as invalid by writing to the ARM processor IDC Flush register (register 7).
The cache is flushed immediately the register is written, but note that the next two instruction fetches ma y
come from the cache before the register is written.
5.2.3Doubly-Mapped Space
Since the cache works with virtual addresses, it is assumed that every virtual address maps to a different
physical address. If the same physical location is accessed by more than one virtual address, the cache
cannot maintain consistency, since each virtual address has a separate entry in the cache, and only one
entry is updated on a processor write operation. To avoid an y cache inconsistencies, both doubly-mapped
virtual addresses should be marked as uncacheable.
June 199735
ADVANCE DATA BOOK v2.0IDC
CL-PS7500FE
System-on-a-Chip for Internet Appliance
5.2.4Read-Locked-Write
The IDC treats the Read-Locked-Write instruction as a special case. The read phase alwa ys forces a read
of external memory, regardless of whether the data is contained in the cache. The write phase is treated
as a normal write operation (and if the data is already in the cache, the cache is updated). Externally the
two phases are flagged as indivisible by asserting the LOCK signal.
5.3IDC Enable/Disable and Reset
The IDC is automatically disabled and flushed on nRESET. Once enabled, cacheable read accesses
cause lines to be placed in the cache.
5.3.1Enable the IDC
To enable the IDC, make sure that the MMU is enabled first by setting Control register, bit 0, then enable
the IDC by setting Control register, bit 2. The MMU and IDC can be simultaneously enabled with a single
control register write.
5.3.2Disable the IDC
To disable the IDC, clear Control register, bit 2 and perform a flush by writing to the flush register.
5.4Write Buffer (WB)
The ARM processor WB is provided to improve system performance. It can buffer up to 8 words of data,
and four independent addresses. It can be enabled or disabled through the W bit (bit 3) in the ARM processor Control register and the buffer is disabled and flushed on reset.
The operation of the write buffer is further controlled by one bit, B or
agement Page Tables. For this reason, to use the write buffer the MMU must be enabled.
The two functions may, howev er , be enabled sim ultaneously, with a single write to the Control register. For
a write to use the write buffer, both the W bit in the Control register, and the B bit in the corresponding
page table must be set.
5.4.1Bufferable Bit
This bit controls whether a write operation may or may not use the write buffer. Typically main memory is
bufferable and I/O space unbufferable. The B bit can be configured for both pages and sections.
5.4.2Write Buffer Operation
When the CPU performs a write operation, the translation entry for that address is inspected and the state
of the B bit determines the subsequent action. If the write buffer is disabled through the ARM processor
Control register, bufferable writes are treated in the same way as unbuffered writes.
buffer able
, stored in the Memory Man-
Bufferable Write
If the write buffer is enabled and the processor performs a write to a bufferable area, the data is placed in
the write buffer at FCLK speeds and the CPU continues execution. The write buffer then performs the
external write in parallel. If the write buffer is full (either because there are already 8 words of data in the
buffer , or because there is no slot f or the new address) then the processor is stalled until there is sufficient
space in the buffer.
IDC
ADVANCE DATA BOOK v2.0
June 199736
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Unbufferable Writes
If the write buffer is disabled or the CPU perf orms a write to an unbuff erab le area, the processor is stalled
until the write buffer empties and the write completes externally. This process ma y require synchronization
and several external clock cycles.
Read-Locked Write
The write phase of a read-locked-write sequence is treated as an unbuffered write, even if it is marked as
buffered.
NOTE: A single write requires one address slot and one data slot in the write buffer; a sequential write of n words
requires one address slot and n data slots. The entire eight data slots in the buffer can be used as required.
So for instance there could be three non-sequential writes and one sequential write of 5 words in the buffer,
and the processor could continue as normal: a fifth write or a sixth word in the fourth write would stall the
processor until the first write is complete.
5.4.3Enable the Write Buffer
To enable the WB, ensure the MMU is enabled by setting Control register, bit 0, then enable the write
buffer by setting Control register, bit 3. The MMU and write buffer can be enabled simultaneously with a
single write to the Control register.
5.4.4Disable the Write Buffer
To disable the WB, clear the control register, bit 3.
NOTE: Any writes already in the write buffer completes normally.
5.5Coprocessors
The on-chip FPA is a coprocessor and its operation are described later in this manual.
The ARM processor also has an internal coprocessor designated #15 for internal control of the device.
Howev er, the CL-PS7500FE has no external coprocessor bus, so it is not possible to add further external
coprocessors to this device. All coprocessor operations, other than those implemented by the FPA, MRC,
or MCR to registers 0–7 on coprocessor #15, cause the undefined instruction trap to be taken.
June 199737
ADVANCE DATA BOOK v2.0IDC
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.ARM PROCESSOR MMU
The MMU performs two primary functions: it translates virtual addresses into physical addresses, and it
controls memory access permissions. The MMU hardware required to perform these functions consists
of a TLB, access control logic, and translation table walking logic.
The MMU supports memory accesses based on Sections or Pages:
● Sections are comprised of 1-Mbyte blocks of memory.
● Pages – two different page sizes are supported:
— Small pages consist of 4-Kbyte blocks of memory. Additional access control mechanisms are e xtended
within small pages to 1-Kbyte subpages.
— Large pages consist of 64-Kbyte bloc ks of memory . Additional access control mechanisms are extended
within large pages to 16-Kbyte subpages. Large pages are supported to allow mapping of a large region
of memory while using only a single entry in the TLB.
The MMU also supports the concept of domains — areas of memory that can be defined to possess individual access rights. The Domain Access Control register specifies access rights for up to 16 separate
domains.
The TLB caches 64 translated entries. During most memor y accesses, the TLB provides the translation
information to the access control logic. If the TLB contains a translated entry for the virtual address, the
access control logic determines whether access is permitted. If access is permitted, the MMU outputs
the appropriate physical address corresponding to the virtual address. If access is not permitted, the
MMU signals the CPU to abort.
If the TLB misses (that is, it does not contain a translated entry for the virtual address), the translation
table walk hardware is invoked to retrieve the translation information from a translation table in physical
memory . Once retrieved, the translation inf ormation is placed into the TLB , possibly ov erwriting an existing
value. The entry to be overwritten is chosen by cycling sequentially through the TLB locations.
When the MMU is turned off (for example, on reset), the virtual address is output directly onto the physical
address bus.
6.1MMU Program-Accessible Registers
The ARM processor provides sev eral 32-bit registers that determine the operation of the MMU. The format
for these registers and a brief description is shown in Figure 6-1 on page 39. Each register is discussed
in more detail within the section that describes its use.
Data is written to and read from the MMU registers using the ARM CPU MRC and MCR coprocessor
instructions.
The Translation Table Base register contains the physical address of the base of the translation table
maintained in main memory. Note that this base must reside on a 16-Kbyte boundary.
6.1.2Domain Access Control Register
The Domain Access Control register consists of sixteen 2-bit fields, each defines the access permissions
for one of the sixteen domains (D[15:0]).
NOTE: The registers not shown are reserved and should not be used.
6.1.3Fault Status Register
The Fault Status register indicates the domain and type of access being attempted when an abort
occurred. Bits 7:4 specify the accessed of the sixteen domains (D[15:0]) during a fault. Bits 3:1 indicate
the type of access being attempted. The encoding of these bits is different for internal and external faults
(as indicated by bit 0 in the register) and is shown in Table 6-4 on page 47. A write to this register flushes
the TLB.
6.1.4Fault Address Register
The Fault Address register holds the virtual address of the access attempted when a fault occurred. A
write to this register causes the data written to be treated as an address and, if it is found in the TLB, the
entry is marked as invalid. (This operation is known as a TLB ‘purge’.) The F ault Status and F ault Address
registers are only updated for data faults, not for prefetch faults.
6.2Address T ranslation
The MMU translates virtual addresses generated by the CPU into physical addresses to access external
memory, and also derives and checks the access permission. Translation information, consisting of both
the address translation data and the access per mission data, resides in a translation table located in
physical memory. The MMU provides the logic needed to traverse this translation table, obtain
the translated address, and check the access permission.
June 199739
ADVANCE DATA BOOK v2.0ARM PROCESSOR MMU
CL-PS7500FE
System-on-a-Chip for Internet Appliance
There are three routes for address translation and permission checking. The selected route depends on
if the address in question is marked as a section-mapped access or a page-mapped access; there are
two sizes of page-mapped access (large pages and small pages). However, the translation process
always starts out in the same way, as descr ibed in Section 6.3.2, with a Level One fetch. A sectionmapped access only requires a Level One fetch, but a page-mapped access also requires a Level Two
fetch.
6.3Translation Process
6.3.1TTB (Translation Table Base)
The translation process is initiated when the on-chip TLB does not contain an entry for the requested virtual address. The TTB register points to the base of a table in physical memory that contains Section
and/or Page descriptors. The 14 low-order bits of the TTB register are set to zero as illustrated in
Figure 6-2
,
the table must reside on a 16-Kbyte boundary.
TRANSLATION T ABLE BASE
0131431
Figure 6-2. Translation Table Base Register
6.3.2Level One Fetch
Bits 31:14 of the TTB register are concatenated with bits 31:20 of the virtual address to produce a 30-bit
address, as illustrated in Figure 6-3. This address selects a 4-byte translation table entry that is a First
Level descriptor f or either a Section or a P age (bit 1 of the descriptor returned specifies if it is for a Section
or Page).
VIRTUAL ADDRESS
0192031
TABLE INDEXSECTION INDEX
TRANSLATION T ABLE BASE
031
12
031
00
TRANSLATION BASE
18
TRANSLATION BASE
1314
12
1314
TABLE INDEX
Figure 6-3. Accessing the Translation Table First Level Descriptors
ARM PROCESSOR MMU
FIRST LEVEL DESCRIPTOR
ADVANCE DATA BOOK v2.0
031
June 199740
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.3.3Level One Descriptor
The Level One descriptor returned is either a Page Table descriptor or a Section descriptor , and the format
varies accordingly. Figure 6-4 illustrates the format of Level One descriptors.
01234589101112192031
0
0FAULT
PAGE TABLE BASE ADDRESS
SECTION BASE ADDRESS1
DOMAIN
DOMAINAP
1
CB
01
10
11
PAGE
SECTION
RESERVED
Figure 6-4. Level One Descriptors
The two least-significant bits indicate the descriptor type and validity, and are interpreted as in Table 6-1.
Table 6-1.Interpreting Level One Descriptor Bits 1:0
ValueMeaningNotes
00InvalidGenerates a Section Translation fault.
01PageIndicates that this is a Page descriptor.
10SectionIndicates that this is a Section descriptor.
11ReservedReserved for future use.
6.3.4Page T able Descriptor
BitDescription
3:2 Always write as ‘0’.
4 Write as ‘1’ for backward compatibility.
8:5 Specify one of the sixteen possible domains (held in the Domain Access Control register) that contain the primary
access controls.
31:10 Form the base for referencing the Page Table entr y. (The page table index for the entry is derived from the virtual
address as illustrated in Figure 6-7 on page 45.)
If a Page Table descriptor is returned from the Lev el One f etch, a Lev el T wo f etch is initiated, as described
in the following section.
June 199741
ADVANCE DATA BOOK v2.0ARM PROCESSOR MMU
6.3.5Section Descriptor
BitDescription
CL-PS7500FE
System-on-a-Chip for Internet Appliance
3:2
(C, B)
4 Write as ‘1’ for backward compatibility.
8:5 Specify one of the sixteen possible domains (held in the Domain Access Control register) that contain the pri-
11:10
(AP)
19:12 Always write as ‘0’.
31:20 Form the corresponding bits of the physical address for the 1-Mbyte section.
Control the cache- and write-buffer-related functions as follows:
● C – Cacheable:data at this address is placed in the cache (if the cache is enabled).
● B – Bufferable: data at this address is written through the write buffer (if enabled).
mary access controls.
Specify the access permissions for this section (see Table 6-2). The interpretation depends upon the setting of
the S and R bits (control register bits 8 and 9). Note that the Domain Access Control specifies the primary
access control; the AP bits only have an effect in Client mode. Refer to Section 6.9.
00 00No accessNo access Any access generates a permission fault.
00 10Read onlyNo accessSupervisor read-only permitted.
Supervisor
Permissions
User
Permissions
Notes
0001Read onlyRead onlyAny write generates a permission fault.
0011Reserved
01 X
10 XXRead/writeRead only Writes in User mode cause permission fault.
11 XXRead/writeRead/write All access types permitted in both modes.
XX11Reserved
a
‘X’ indicates a don’t care state.
a
XRead/writeNo access Access allowed only in Supervisor mode.
6.4Translating Section References
Figure 6-6 on page 44 illustrates the complete Section translation sequence. Note that the access per-
missions contained in the Level One descriptor must be checked before the physical address is generated. The sequence for checking access permissions is described in Section 6.10.4 on page 50.
6.4.1Level Tw o Descriptor
If the Level One fetch retur ns a Page Table descriptor, this provides the base address of the page table
to be used. The page table is then accessed as described in Figure 6-7 on page 45, and a Page Table
ARM PROCESSOR MMU
ADVANCE DATA BOOK v2.0
June 199742
CL-PS7500FE
01234589101112192031
0FAULT
LARGE PAGE
SMALL PAGE
RESERVED
0
01
10
11
CBAP3
LARGE PAGE BASE ADDRESS
SMALL PAGE BASE ADDRESS
671516
AP3
AP2
AP2
AP1
AP1
AP0
AP0 CB
System-on-a-Chip for Internet Appliance
entry, or Level Two descriptor, is returned. This in tur n may define either a small page or large page
access. Figure 6-5 shows the format of Level Two descriptors.
Figure 6-5. Page Table Entry (Level Two Descriptor)
The two least-significant bits indicate the page size and validity, and are interpreted as shown in Table 6-3.
Table 6-3.Interpreting Page Table Entry Bits 1:0
ValueMeaningNotes
00InvalidGenerates a Page Translation fault.
01Large PageIndicates that this is a 64-Kbyte page.
10Small PageIndicates that this is a 4-Kbyte page.
11Reserved Reserved for future use.
June 199743
ADVANCE DATA BOOK v2.0ARM PROCESSOR MMU
System-on-a-Chip for Internet Appliance
VIRTUAL ADDRESS
TABLE INDEXSECTION INDEX
TRANSLATION T ABLE BASE
1314
TRANSLATION BASE
CL-PS7500FE
0192031
031
18
1314
TRANSLATION BASE
FIRST LEVEL DESCRIPTOR
SECTION BASE ADDRESS
12
SECTION BASE ADDRESSSECTION INDEX
PHYSICAL ADDRESS
TABLE INDEX
12
031
12
00
01234589101112192031
DOMAINAP
20
1
CB
10
0192031
Figure 6-6. Section Translation
BitDescription
2(B – Bufferable) Indicates that data at this address is written through the WB (if the write buffer is enabled).
3(C – Cacheable) Indicates that data at this address is placed in the IDC (if the cache is enabled).
11:4 Specify the access permissions (AP[3:0]) for the four subpages and interpretation of these bits is described earlier in
Table 6-1 on page 41.
15:12 For large pages, these bits are programmed as ‘0’.
Bits 31:12 (small pages) or bits 31:16 (large pages) form the corresponding bits of the physical address — the
number
. (The page index is derived from the virtual address as illustrated in Figure 6-7 and Figure 6-8.)
physical page
6.5Translating Small Page References
Figure 6-7 illustrates the complete translation sequence for a 4-Kbyte small page. Page translation
involves one additional step beyond that of a section translation: the Level One descr iptor is the Page
Table descriptor, and this is used to point to the Level Two descriptor, or Page Table entry. (Note that the
access permissions are now contained in the Level Two descriptor and must be chec ked bef ore the ph ysical address is generated. The sequence for checking access permissions is described in Section 6.10.4
on page 50.)
ARM PROCESSOR MMU
ADVANCE DATA BOOK v2.0
June 199744
CL-PS7500FE
System-on-a-Chip for Internet Appliance
VIRTUAL ADDRESS
1112
0192031
TABLE INDEXPAGE INDEX
12
TRANSLATION BASE
18
TRANSLATION BASE
PAGE TABLE BASE ADDRESS
PAGE TABLE BASE ADDRESS
PAGE BASE ADDRESS
L2 TAB LE INDEX
8
TRANSLATION T ABLE BASE
1314
1314
TABLE INDEX
FIRST LEVEL DESCRIPTOR
L2 TAB LE INDEX
SECOND LEVEL DESCRIPTOR
AP2 AP1 AP0
12
031
12
031
00
01245891031
01DOMAIN
01291031
00
67
0123458910111231
10CBAP3
PHYSICAL ADDRESS
0111231
PAGE BASE ADDRESS
PAGE INDEX
Figure 6-7. Small Page Translation
6.6Translating Large Page References
Figure 6-8 illustrates the complete translation sequence for a 64-Kbyte large page. Note that since the
upper 4 bits of the Page Inde x and low-order 4 bits of the P age Table index o verlap , each Page Table entry
for a large page must be duplicated 16 times (in consecutive memory locations) in the Page Table.
June 199745
ADVANCE DATA BOOK v2.0ARM PROCESSOR MMU
VIRTUAL ADDRESS
1516
CL-PS7500FE
System-on-a-Chip for Internet Appliance
1112
0192031
TABLE INDEXPAGE INDEX
12
TRANSLATION BASE
18
TRANSLATION BASE
PAGE TABLE BASE ADDRESS
PAGE BASE ADDRESS
L2 TAB LE INDEX
8
TRANSLATION T ABLE BASE
1314
1314
FIRST LEVEL DESCRIPTOR
SECOND LEVEL DESCRIPTOR
1516
TABLE INDEX
DOMAINPAGE TABLE BASE ADDRESS
L2 TAB LE INDEX
67
AP2 AP1 AP0
031
12
031
00
01245891031
01
01291031
00
0123458910111231
01CBAP3
12
PAGE BASE ADDRESS
ARM PROCESSOR MMU
PHYSICAL ADDRESS
1516
PAGE INDEX
Figure 6-8. Large Page Translation
ADVANCE DATA BOOK v2.0
031
June 199746
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.7MMU Faults and CPU Aborts
The MMU generates four types of faults:
● Alignment
● Translation
● Domain
● Permission
The access control mechanisms of the MMU detect the conditions that produce these faults. If a fault is
detected as the result of a memory access, the MMU aborts the access and signal the fault condition to
the CPU. The MMU is also capable of retaining status and address inf ormation about the abort. The CPU
recognizes two types of abort, data and prefetch, and these are treated differently by the MMU.
If the MMU detects an access violation, it detects it before the external memory access occurs, and inhibit
the access.
6.8Fault Address and Fault Status Registers (FAR, FSR)
Aborts resulting from data accesses (data aborts) are acted upon by the CPU immediately, and the MMU
places an encoded 4-bit value FS[3:0], along with the 4-bit encoded Domain number , in the FSR. In addition, the virtual processor address that caused the data abort is latched into the FAR. If an access violation simultaneously generates more than one source of abort, they are encoded in the priority given in
Table 6-4.
On the other hand, CPU instructions are prefetched so a prefetch abort simply flags the instruction as it
enters the instruction pipeline. Only when (and if) the instruction is executed does it cause an abort; an
abort is not acted upon if the instruction is not used (that is, it is branched around). Because instruction
prefetch aborts may or may not be acted upon, the MMU status inf ormation is not preserved for the resulting CPU abort; for a prefetch abort, the MMU does not update the FSR or FAR.
The following sections describe the various access permissions and controls supported by the MMU and
detail how these are interpreted to generate faults.
In Table 6-4 X indicates a don’t care state and can read as ‘0’ or ‘1’.
NOTE: Any abort masked by the priority encoding can be regenerated by fixing the primary abort and restarting the
instruction. In fact, this register contains bits 8:5 of the Level One entry, which are undefined, but would
encode the domain in a valid entry.
Table 6-4.Priority Encoding of Fault Status Register
MMU accesses are primarily controlled through domains. There are 16 domains, and each has a 2-bit
field to define it. Two basic kinds of users are supported:
● Clients use a domain, and
● Managers control the behavior of the domain.
The domains are defined in the Domain Access Control register. Figure 6-9 illustrates how the 32 bits of
the register are allocated to define the sixteen 2-bit domains.
defines how the bits within each domain are interpreted to specify the access permissions.
Table 6-5.Interpreting Access Bits in Domain Access Control Register
ValueMeaningNotes
00No accessAny access generates a Domain fault.
01Client Accesses are checked against the access permission bits in the Section or Page descriptor.
10ReservedReserved. Currently behaves like the No Access mode.
11Manager
Accesses are
erated.
not
checked against the access Permission bits, so a Permission fault cannot be gen-
6.10Fault-Checking Sequence
The sequence used by the MMU to check for access faults is slightly different for Sections and Pages.
Figure 6-9 illustrates the sequence for both types of accesses. The f ollowing sections and figures describe
the conditions that generate each of the faults.
ARM PROCESSOR MMU
ADVANCE DATA BOOK v2.0
June 199748
CL-PS7500FE
System-on-a-Chip for Internet Appliance
VIRTUAL ADDRESS
SECTION
TRANSLATION
FAULT
SECTION
DOMAIN
FAULT
INVALID
NO ACCESS (‘00’)
RESERVED (‘10’)
CHECK ADDRESS ALIGNMENT
GET LEVEL ONE DESCRIPTOR
SECTIONPAGE
GET PAGE
TABLE ENTRY
CHECK DOMAIN STATUS
SECTIONPAGE
CLIENT(‘01’)CLIENT(‘01’)
MANAGER(‘11’)
MISALIGNED
INVALID
NO ACCESS (‘00’)
RESERVED (‘10’)
ALIGNMENT
FAULT
PAGE
TRANSLATION
FAULT
PAGE
DOMAIN
FAULT
SECTION
PERMISSION
FAULT
VIOLATION
CHECK ACCESS
PERMISSIONS
PHYSICAL ADDRESS
CHECK ACCESS
PERMISSIONS
VIOLATION
SUB-PAGE
PERMISSION
FAULT
Figure 6-10. Sequence for Checking Faults
6.10.1 Alignment Fault
When Alignment fault is enabled (bit 1 in Control register is set), the MMU generates an Alignment fault
on any data word access where the address is not word-aligned irrespective of whether the MMU is
enabled or not; in other words, if either of virtual address bits 1:0 are not ‘0’.
An Alignment fault is not generated on any instruction f etch or on any b yte access. Note that if the access
generates an Alignment fault, the access sequence aborts without reference to further permission
checks.
June 199749
ADVANCE DATA BOOK v2.0ARM PROCESSOR MMU
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.10.2 Translation Fault
There are two types of Translation fault:
● Section is generated if the Lev el One descriptor is marked as invalid. This happens if bits 1:0 of the descriptor
are both ‘0’ or both ‘1’.
● Page is generated if the Page Table entry is marked as invalid. This happens if bits 1:0 of the entry are both
‘0’ or both ‘1’.
6.10.3 Domain Fault
There are two types of Domain fault:
● Section
● Page
In both cases the Level One descriptor holds the 4-bit Domain field that selects one of the sixteen 2-bit
domains in the Domain Access Control register. The two bits of the specified domain are then checked
for access permissions as detailed in Table 6-2 on page 42. For a Section fault, the domain is checked
once the Level One descriptor is returned. For a Page fault, the domain is checked once the Page Table
entry is returned.
If the specified access is either ‘no access’ (‘00’) or ‘reserved’ (‘10’), then either a Section Domain or Page
Domain fault occurs.
6.10.4 Permission Fault
There are two types of Permission fault:
● Section
● Subpage
Permission faults are checked at the same time as Domain faults. If the 2-bit domain field returns Client
(01), then the permission access check is invoked as follows:
1) Section
If the Level One descriptor defines a section-mapped access, then the AP bits of the descriptor define whether
or not the access is allowed according to Table 6-2. Their interpretation is dependent upon the setting of the S
bit (Control register, bit 8). If the access is not allowed, a Section Permission fault is generated.
2) Subpage
If the Level One descriptor defines a page-mapped access, then the Level Two descriptor specifies four access
permission fields (AP3–AP0) each corresponding to one quarter of the page. For small pages, AP3 is selected
by the top 1 Kbyte of the page, and AP0 is selected by the bottom 1 Kbyte of the page; for large pages, AP3 is
selected by the top 16 Kbytes of the page, and AP0 is selected b y the bottom 16 Kbyte of the page. The selected
AP bits are then interpreted in exactly the same way as for a section (see Table 6-2), the only difference is that
the fault generated is a Subpage Permission fault.
6.11External Aborts
The CL-PS7500FE does not support external aborts.
ARM PROCESSOR MMU
ADVANCE DATA BOOK v2.0
June 199750
CL-PS7500FE
System-on-a-Chip for Internet Appliance
6.11.1 Interaction of the MMU, IDC, and Write Buffer
The MMU, IDC, and WB can be enabled/disabled independently. However there are only five valid combinations. There are no hardware interlocks on these restrictions, so invalid combinations cause undefined results.
Table 6-6.Valid MMU, IDC, and WB Combinations
MMUIDCWB
OffOffOff
OnOffOff
OnOnOff
OnOffOn
OnOnOn
The following procedures must be observed.
Enable the MMU
1. Program the TTB and Domain Access Control registers.
2. Program Level One and Level Two page tables as required.
3. Enable the MMU by setting bit 0 in the Control register.
NOTE: Care must be taken if the translated address differs from the untranslated address as the two instructions
following the enabling of the MMU are fetched using ‘flat translation’ and enabling the MMU may be considered as a branch with delayed e x ecution. A similar situation occurs when the MMU is disab led. Consider the
following example code sequence:
1. Disable the WB by clearing bit 3 in the Control register.
2. Disable the IDC by clearing bit 2 in the Control register.
3. Disable the MMU by clearing bit 0 in the Control register.
NOTE: If the MMU is enabled, then disabled, then subsequently re-enabled the contents of the TLB are preserved.
If these are now invalid, the TLB should be flushed before re-enabling the MMU.
Disabling of all three functions can be done simultaneously.
June 199751
ADVANCE DATA BOOK v2.0ARM PROCESSOR MMU
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.REGISTER DESCRIPTIONS
The CL-PS7500FE supports a variety of operating configurations. Some are controlled by register bits
and are known as t
as
operating modes
7.1Register Configuration
The CL-PS7500FE provides three register configuration settings that can be changed while the processor
is running. These are discussed below.
7.1.1Big and Little Endian (the Bigend Bit)
The Bigend bit in the Control register sets whether the CL-PS7500FE treats words in memory as being
stored in big endian or little endian format. Memory is viewed as a linear collection of bytes numbered
upwards from zero. Bytes 0–3 hold the first stored word; bytes 4–7 the second, and so on.
Little Endian
he
configurations
.
. Other configurations can be controlled by software and are known
In the little endian scheme, the lowest-numbered byte in a word is considered to be the least-significant
byte of the word; the highest-numbered byte is the most-significant byte.
In this scheme, byte 0 of the memory system should be connected to D[7:0] (data lines 7 through 0).
LITTLE ENDIAN
HIGHER
ADDRESS31 2423 1615 87 0
1110988
76544
32100
LOWER
ADDRESS
● LEAST-SIGNIFICANT BYTE IS AT LOWEST ADDRESS
● WORD IS ADDRESSED BY BYTE ADDRESS OF LEAST-SIGNIFICANT BYTE
WORD
ADDRESS
Figure 7-1. Little Endian Addresses of Bytes within Words
REGISTER DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 199752
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Big Endian
In the big endian scheme, the most-significant byte of a word is stored at the lowest-numbered byte, and
the least-significant byte is stored at the highest-numbered byte.
Byte 0 of the memory system should therefore be connected to D[31:24] (data lines 31 through 24).
Load and store are the only instructions affected by the endianism.
Big Endian
HIGHER
ADDRESS
LOWER
ADDRESS
31 2423 1615 87 0WORD
ADDRESS
8910118
45674
01230
● Most-significant byte is at lowest address
● Word is addressed by byte address of most-significant byte
Figure 7-2. Big Endian Addresses of Bytes within Words
7.1.2Configuration Bits for Backward Compatibility
Two register bits,
1) 26-bit program and data space
PROG32 LOW, DATA32 LOW
This configuration forces the ARM processor to operate like the earlier ARM processors with 26-bit address
space. The prog rammer’ s model f or these processors applies , but the ne w instructions to access the CPSR and
SPSR registers operate as detailed in the
sible to select a 32-bit operating mode, and all exceptions (including address exceptions) enter the exception
handler in the appropriate 26-bit mode.
PROG32 and DATA32, select one of three processor configurations:
CL-PS7500FE Programmer’ s Guide
. In this configur ation, it is impos-
2) 26-bit program space and 32-bit data space
PROG32 LOW, DATA32 HIGH
This is the same as the 26-bit program and data space configuration, but with address exceptions disabled to
allow data transfer operations to access the full 32-bit address space.
3) 32-bit program and data space
PROG32 HIGH, DATA32 HIGH
This configuration extends the address space to 32 bits, introduces major changes in the programmer’s model
and provides support for running existing 26-bit programs in the 32-bit environment.
NOTE: Do not select the fourth processor configuration, 26-bit data space and 32-bit program space.
June 199753
ADVANCE DATA BOOK v2.0REGISTER DESCRIPTIONS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
26-bit Program Space
When configured for 26-bit program space , the CL-PS7500FE is limited to operating in one of f our modes
known as the 26-bit modes. These modes correspond to the modes of the earlier ARM processors and
are known as:
● User26
● FIQ26
● IRQ26
● Supervisor26
NOTE: The PROG32 and DATA32 bits are only used for backward compatibility with earlier ARM processors and
should normally be set to ‘1’. The 32-bit mode is recommended f or compatibility with future ARM processors
and all new code should be written to use only the 32-bit operating modes.
Because the original ARM instruction set is modified to accommodate 32-bit operation, there are certain
additional restrictions that programmers must note. The following sections discuss these restrictions.
7.2Operating Mode Selection
The ARM processor has a 32-bit data bus and a 32-bit address bus. However, only 29 of the address bits
are available at the CL-PS7500FE pins. The data types the processor supports are:
● Bytes (8-bits)
● Words (32-bits) that must be aligned to 4-byte boundaries.
Instructions are exactly one word, and data operations (for example ADD) are only performed on word
quantities. Load and store operations can transfer either bytes or words.
ARM processor supports six modes of operation:
● User mode (usr)The normal program execution state.
● FIQ mode (fiq)Designed to support a data transfer or channel process.
● IRQ mode (irq)Used for general-purpose interrupt handling.
● Supervisor mode (svc)A protected mode for the operating system.
● Abort mode (abt)Entered after a data or instruction prefetch abort.
● Undefined mode (und)Entered when an undefined instruction is executed.
Mode changes can be made under software control or brought about by external interrupts or exception
processing. Most application programs execute in User mode. The other modes, known as
modes
, are entered to service interrupts or exceptions, or to access protected resources.
Privileged
REGISTER DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 199754
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.3Registers
The processor macrocell has a total of 37 registers made up of:
● 31 general 32-bit registers
● Six status registers
At any one time, 16 general registers (R0 to R15) and one or two status registers are visible to the programmer. The visible registers depend on the processor mode, and the other registers (the
isters
) are switched in to support IRQ, FIQ, Supervisor, Abort, and Undefined mode processing.
The register bank organization is shown in Figure 7-3. The banked registers are shaded.
In all modes, 16 registers (R0 to R15) are directly accessible. All registers except R15 are general-purpose and can be used to hold data or address values. Register R15 holds the PC. When R15 is read, bits
1:0 are ‘0’, and bits 31:2 contain the PC . A seventeenth register , CPSR (Current Program Status register),
is also accessible. It contains condition code flags and the current mode bits and can be thought of as an
extension to the PC.
R14 is used as the subroutine link register and receives a copy of R15 when a Br anch and Link instruction
is executed. It can be considered a general-purpose register at all other times. R14_svc, R14_irq,
R14_fiq, R14_abt, and R14_und are used to hold the return values of R15 when interrupts and exceptions
arise, or when Branch and Link instructions are executed within interrupt or exception routines.
FIQ mode has seven banked registers mapped to R8–14 (R8_fiq–R14_fiq). Many FIQ programs do not
need to save any registers.
User mode, IRQ mode, Supervisor mode, Abort mode, and Undefined mode each have two banked registers mapped to R13 and R14. The two banked registers allow these modes to each hav e a private stack
pointer and link register.
Supervisor, IRQ, Abort, and Undefined mode programs require more than these two banked registers and
are expected to save some or all of the caller’s registers (R0 to R12) on their respective stacks. They are
then free to use these registers that they restore before returning to the caller.
In addition, there are also five SPSRs (Saved Program Status registers) that are loaded with the CPSR
when an exception occurs. There is one SPSR for each privileged mode.
7.3.1PSRs (Program Status Registers)
The format of the PSRs is shown in Figure 7-4.
FLAGS
...
Overflow
Carry / Borrow / Extend
Zero
Negative / Less Than
CONTROL
0123456782728293031
M0M1M2M3M4.FIVCZN
Mode bits
FIQ disable
IRQ disable
Figure 7-4. Format of the PSRs
7.3.1.1 Condition Code Flags
The N, Z, C, and V bits are the
condition code
flags. The condition code flags in the CPSR can be changed
as a result of arithmetic and logical operations in the processor and can be tested by all instructions to
determine if the instruction is to be executed.
Interrupt Disable Bits
The I and F bits are the
FIQ interrupts when set.
REGISTER DESCRIPTIONS
interrupt disable
bits. The I bit disab les IRQ interrupts when set; the F bit disab les
ADVANCE DATA BOOK v2.0
June 199756
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.3.1.2 Mode Bits
mode
Bits M[4:0] are the
bits is shown in Table 7-1. Not all combinations of the mode bits define a valid processor mode. Only those
explicitly described are used.
bits that determine the processor operating mode. The interpretation of the mode
7.3.1.3 Control Bits
The bottom 28 bits of a PSR (incorporating I, F, and M[4:0]) are known collectively as the
control
bits. The
control bits change when an exception arises and, in addition, can be manipulated by software when the
processor is in a privileged mode. Un used bits in the PSRs are reserved and their state must be preserved
when changing the flag or control bits. Programs must not rely on specific values from the reserved bits
when checking the PSR status, since they can read as ‘1’ or ‘0’ in future processors.
7.4Exceptions
Exceptions arise whenever there is a need to break the normal flow of program execution. For example,
the processor can be diverted to handle an interrupt from a peripheral. The processor state just prior to
handling the exception must be preserved so that the original program can be resumed when the e xception routine is complete. Many exceptions can arise at the same time.
The ARM processor handles exceptions by making use of the bank ed registers to sa v e state . The old PC
and CPSR contents are copied into the appropriate R14 and SPSR, and the PC and mode bits in the
CPSR bits are forced to a value that depends on the exception. Interr upt disable flags are set where
required to prevent otherwise unmanageable nestings of exceptions. In the case of a re-entrant interrupt
handler, R14 and the SPSR should be saved onto a stack in main memory before re-enabling the interrupt.
NOTE: When transferring the SPSR to and from a stack, it is important to transfer the whole 32-bit value, and not
just the flag or control fields.
When simultaneous multiple exceptions arise, a fixed pr iority determines their order. The priorities are
listed in Section 7.4.7 on page 61.
7.4.1 FIQ
The FIQ (Fast Interrupt reQuest) e xception is generated by the interrupt handler within the CL-PS7500FE.
This input is delayed by one clock cycle for synchronization before it can affect the processor execution
flow. It is designed to support a data transfer or channel process, and has sufficient private registers to
June 199757
ADVANCE DATA BOOK v2.0REGISTER DESCRIPTIONS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
remove the need f or register sa ving in such applications (thus minimizing the overhead of context switching).
NOTE: The FIQ exception can be disabled by setting the F flag in the CPSR (but note that this is not possible from
User mode).
If the F flag is clear, the ARM processor checks for a low level on the output of the FIQ synchronizer at
the end of each instruction. When a FIQ is detected, the ARM processor performs the following:
1) Saves the address of the next instruction to be executed plus 4 in R14_fiq; saves CPSR in SPSR_fiq.
2) Forces M[4:0]=10001 (FIQ mode) and sets the F and I bits in the CPSR.
3) Forces the PC to fetch the next instruction from address 0x1C.
Returning from FIQ
To return normally from FIQ, use SUBS PC, R14_fiq, #4 to restore both the PC (from R14) and the CPSR
(from SPSR_fiq) and resume execution of the interrupted code.
7.4.2 IRQ
The IRQ (Interrupt ReQuest) exception is a normal interrupt caused by the interrupt handler within the
CL-PS7500FE. It has a lower priority than FIQ, and is masked out when a FIQ sequence is entered. Its
effect can be masked out at any time by setting the I bit in the CPSR (but note that this is not possible
from User mode).
If the I flag is clear, the ARM processor chec ks f or a low le v el on the output of the IRQ synchroniz er at the
end of each instruction. When an IRQ is detected, the ARM processor performs the following:
1) Saves the address of the next instruction to be executed plus 4 in R14_irq; saves CPSR in SPSR_irq.
2) Forces M[4:0]=10010 (IRQ mode) and sets the I bit in the CPSR.
3) Forces the PC to fetch the next instruction from address 0x18.
Returning from IRQ
T o return normally from IRQ, use SUBS PC,R14_irq, #4 to restore both the PC and the CPSR and resume
execution of the interrupted code.
7.4.3 Abor t
An abort is signalled by the internal MMU and indicates that the current memory access cannot be completed. For instance, in a virtual memory system the data corresponding to the current address may have
been moved out of memory onto a disk, and considerable processor activity may be required to recover
the data before the access can be performed successfully.
The abort mechanism allows a
demand paged virtual memory system
to be implemented when suitable
memory management software is available. The processor is allowed to generate arbitrary addresses,
and when the data at an address is unavailab le , the MMU signals an abort. The processor traps into system software that must then work out the cause of the abort, make the requested data availab le, and retry
the aborted instruction. The application program needs no knowledge of the amount of memory available
to it, nor is its state in any way affected by the abort.
REGISTER DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 199758
CL-PS7500FE
System-on-a-Chip for Internet Appliance
The ARM processor checks for ABORT dur ing memory access cycles. When successfully aborted the
ARM processor responds in one of two ways:
● a prefetch abort
● a data abort
Prefetch Abort
If the abort occurred during an instruction prefetch (a
prefetch abort
), the prefetched instruction is marked
as invalid b ut the abort exception does not occur immediately. If the instruction is not e xecuted, for example, as a result of a branch being taken while it is in the pipeline, no abort occurs. An abort takes place if
the instruction reaches the head of the pipeline and is about to be executed.
Data Abort
If theabort occurred during a data access (a
● Single data transfer instructions (LDR and STR) write back modified base registers and the Abort handler
must be aware of this.
● The sw ap instruction (SWP) is aborted as though it had not executed, though e xternally the read access can
occur.
● Block data transfer instructions (LDM and STM) complete and, if write-back is set, the base updates. If the
instruction would normally have overwritten the base with data (such as, LDM with the base in the transfer
list), this overwriting is prevented. All register overwriting is prevented after the abort is indicated, which particularly means that R15 (always last to transfer) is preserved in an aborted LDM instruction.
data abort
), the action depends on the instruction type:
Abort Sequence
When either a prefetch or data abort occurs, the ARM processor performs the following:
1) Saves the address of the aborted instruction plus four (for prefetch aborts) or eight (for data aborts) in
R14_abt; saves CPSR in SPSR_abt.
2) Forces M[4:0]=10111 (Abort mode) and sets the I bit in the CPSR.
3) Forces the PC to fetch the next instruction from either:
a) address 0x0C (prefetch abort), or
b) address 0x10 (dataabort).
Returning from an Abort
To return after fixing the reason for the abort, use SUBS PC, R14_abt, #4 (for a prefetch abort) or SUBS
PC, R14_abt, #8 (for a data abort). This restores both the PC and the CPSR, and retry the aborted instruction.
7.4.4 Software Interrupt
The SWI gets into Supervisor mode, usually to request a particular super visor function. When a SWI is
executed, the ARM processor performs the following:
1) Saves the address of the SWI instruction plus four in R14_svc; saves CPSR in SPSR_svc.
2) Forces M[4:0]=10011 (Supervisor mode) and sets the I bit in the CPSR.
3) Forces the PC to fetch the next instruction from address 0x08.
June 199759
ADVANCE DATA BOOK v2.0REGISTER DESCRIPTIONS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
Returning from a SWI
To return from a SWI, use MOVS PC, R14_svc. This restores the PC and CPSR, and return to the instruction following the SWI.
7.4.5 Undefined Instruction Trap
When the ARM processor comes across an instruction that it cannot manage, it takes the undefined
instruction trap. This includes all coprocessor instructions, except MCR and MRC operations that access
the internal control coprocessor.
The trap can be used for software emulation of a coprocessor in a system that does not have the coprocessor hardware, or for general-purpose instruction set extension by software emulation.
When the ARM processor takes the undefined instruction trap, it performs the following:
1) Saves the address of the Undefined or coprocessor instruction plus 4 in R14_und; saves CPSR in
SPSR_und.
2) Forces M[4:0]=11011 (Undefined mode) and sets the I bit in the CPSR.
3) Forces the PC to fetch the next instruction from address 0x04.
Returning from an Undefined Instruction Trap
To return from this trap after emulating the failed instruction, use MOVS PC,R14_und. This restores the
CPSR and returns to the instruction following the undefined instruction.
7.4.6 Vector Summary
These are byte addresses and normally contain a branch instruction pointing to the relevant routine.
The FIQ routine might reside at 0x1C onwards, thereby avoiding the need for (and execution time of) a
NOTE: Not all exceptions can occur at once. Undefined instruction and software interrupt are mutually exclusive
since they each correspond to particular (non-overlapping) decodings of the current instruction.
If a data abort occurs at the same time as a FIQ and FIQs are enabled (that is, the F flag in the CPSR is
clear), the ARM processor enters the data abort handler and then immediately proceed to the FIQ vector.
A normal return from FIQ causes the data abor t handler to resume execution. Placing data abor t at a
higher priority than FIQ is necessary to ensure that the transfer error does not escape detection; the time
for this exception entry should be added to worst-case FIQ latency calculations.
7.4.8 Interrupt Latencies
Calculating the worst-case interrupt latency for the ARM processor is quite complex due to the cache,
MMU and write buffer and is dependent on the configuration of the whole system.
7.4.9 Reset
When the CL-PS7500FE is reset, the ARM processor abandons the executing instruction and then performs idle cycles from incrementing word addresses.
When the CL-PS7500FE comes out of reset, the ARM processor does the following:
1) Overwrites R14_svc and SPSR_svc by copying the current v alues of the PC and CPSR into them. The value
of the saved PC and CPSR is not defined.
2) Forces M[4:0] = 10011 (Supervisor mode) and sets the I and F bits in the CPSR.
3) Forces the PC to fetch the next instruction from address 0x00.
End of Reset Sequence
At the end of the reset sequence:
● The MMU disabled and the TLB flushed, forcing ‘flat’ translation (that is, the physical address is the virtual
address, and there is no permission checking)
● Alignment faults also disabled
● The cache disabled and flushed
● The write buffer disabled and flushed
● The ARM7 CPU core placed into 26-bit Data and Address mode, with early abort timing and Little Endian
mode
June 199761
ADVANCE DATA BOOK v2.0REGISTER DESCRIPTIONS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.5Configuration Control Registers
The operation and configuration of the ARM processor is controlled both directly via coprocessor instructions and indirectly through the Memory Management Page tables.
The coprocessor instructions manipulate a number of on-chip registers that control the configuration of
the Cache, write buffer, MMU, and several other configuration options.
7.5.1 Backward Compatibility
To ensure backward compatibility of future CPUs:
● Program all reserved or unused bits in registers and coprocessor instructions to ‘0’.
NOTE: Program the areas marked ‘reserved’ in the register and translation diagrams to ‘0’ for future compatibility.
7.5.2 Internal Coprocessor Instructions
The on-chip registers can be read using MRC instructions and written using MCR instructions. These
operations are only allowed in non-user modes and the undefined instruction trap is taken if accesses are
attempted in user mode. Refer to the
Figure 7-5. Format of Internal Coprocessor Instructions MRC and MCR
REGISTER DESCRIPTIONS
ADVANCE DATA BOOK v2.0
June 199762
CL-PS7500FE
System-on-a-Chip for Internet Appliance
7.5.3 Registers
The ARM processor contains registers that control the cache and MMU operation. These registers are
accessed using CPRT instructions to coprocessor #15 with the processor in a privileged mode.
Only some of registers 0–7 are valid:
● An access to an invalid register causes neither the access or an undefined instruction trap, and therefore
should never be carried out.
● An access to any of the registers 8–15 cause the undefined instruction trap to be taken.
Table 7-3.Cache and MMU Control Registers
RegisterRegister ReadsRegister Writes
0CPU IDReserved
1ReservedControl
2ReservedTranslation T able Base
3ReservedDomain Access Control
4ReservedReserved
5Fault StatusFlush TLB
6Fault AddressPurge TLB
7ReservedFlush IDC
This register is write-only and contains control bits. All bits in this register are forced low at reset.
M Bit 0
ENABLE/DISABLE: When this bit is ‘0’, the on-chip MMU is turned off. When this
bit is ‘1’, the on-chip MMU is turned on.
A Bit 1
ADDRESS FAULT ENABLE/DISABLE: When this bit is ‘0’, the alignment fault is
disabled. When this bit is ‘1’, the alignment fault is enabled.
C Bit 2
CACHE ENABLE/DISABLE: When this bit is ‘0’, the instruction/data cache is
turned off. When this bit is ‘1’, the instruction/data cache is turned on
W Bit 3
WRITE BUFFER ENABLE/DISABLE: When this bit is ‘0’, the WB is turned off.
When this bit is ‘1’, the WB is turned on.
P Bit 4
ARM 32/26-BIT PROGRAM SPACE: When this bit is ‘0’, the 26-bit program space
is selected. When this bit is ‘1’, the 32-bit program space is selected.
D Bit 5
ARM 32/26-BIT DATA SPACE: When this bit is ‘0’, the 26-bit data space is
selected. When this bit is ‘1’, the 32-bit data space is selected.
B Bit 7
BIG/LITTLE ENDIAN: When this bit is ‘0’, the CL-PS7500FE is in little-endian operation. When this bit is ‘1’, the CL-PS7500FE is in big-endian operation.
S Bit 8
R Bit 9
This system bit controls the ARM processor permission system.
This ROM bit controls the ARM processor permission system.
7.7Register 2: Level One Page Table (Write only)
This register is write only and holds the base of the currently active Level One page table.
Read: Fault StatusA read of this register returns the status of the last data fault.
It is not updated for a prefetch fault. (See Section 6 on
page 38 for more details.)
Note that only the bottom 12 bits are returned. The upper 20
bits are the last value on the internal data bus, and theref ore
have no meaning. Bits 11:8 are always returned as zero.
Write: Translation Look-aside Buffer FlushA write to this register flushes the TLB. The data written is
discarded.
7.11Register 6: Fault Address/TLB Purge
MSB 310 LSB
Fault address
Read: Fault AddressA read of this register returns the virtual address of the last data fault.
MSB 3114 130 LSB
Purge address
Write: TLB PurgeA write of this register purges the TLB; the data is treated as an address,
and the TLB is searched for a corresponding page table descriptor. If a
match is found, the corresponding entry is marked as invalid. This allows
the page table descriptors in main memory to be updated and invalid
entries in the on-chip TLB to be purged without requiring the entire TLB to
be flushed.
7.12Register 7: IDC Flush (Write only)
This register is write only. Data written to this register is discarded and the IDC is flushed.
7.13Registers 8–15: Reserved
An access of any of these registers causes the undefined instruction trap to be taken.
June 199765
ADVANCE DATA BOOK v2.0REGISTER DESCRIPTIONS
System-on-a-Chip for Internet Appliance
8.MEMORY MAP
All addresses featured in the CL-PS7500FE memory map table are physical addresses.
Table 8-1.CL-PS7500FE Memory Map Table
CL-PS7500FE
Memory
(Mbytes)
00000000000FFFFFFROM bank 0
160100000001FFFFFFROM bank 1
320200000002FFFFFFReserved
48030000000300FFFFModule I/O space
640400000007FFFFFFReserved
128080000000FFFFFFFExtended I/O space
Address
(Hex)
030100000302BFFF16-MHz PC-style I/O
0302C0000302FFFFReserved
030300000303FFFFFurther module I/O space
03040000031FFFFFReserved
03200000 0320FFFFCL-PS7500FE registers
03210000033FFFFFSimple I/O space
03400000034FFFFFVideo registers
0350000003FFFFFFReserved
To (Hex)Device
25610000000DRAM bank 0
32014000000DRAM bank 1
38418000000DRAM bank 2
4481C000000DRAM bank 3
51220000000
MEMORY MAP
ROM bank 0
(repeated)
ADVANCE DATA BOOK v2.0
June 199766
CL-PS7500FE
System-on-a-Chip for Internet Appliance
9.MEMORY SUBSYSTEMS
9.1ROM Interface
The CL-PS7500FE ROM interface supports both non sequential and burst mode read and write cycles,
with a range of programmable timings for each type. A single chip select signal, nROMCS, is generated
for addresses between 0x00000000 and 0x01FFFFFF that can be split e xternally to provide separate chip
selects for two 16-Mbyte banks of R OM. Each bank of ROM can be 16- or 32-bits wide. The ROM access
time depends on the MEMCLK frequency and to enable slow ROMs to be used with a high-frequency
MEMCLK, there is a half-speed bit availab le that causes all R OM timings to slo w to twice as man y MEMCLK cycles, when the half-speed bit is set to ‘0’.
The ROM interface of CL-PS7500FE can also support write cycles with the generation of an output and
write enable. The feature is disabled on reset so that write cycles do not:
● produce a chip select – nROMCS,
● write enable, or
● drive the data out onto the external data bus
When this feature is disabled, an output enable is still generated on read cycles.
The ability to write data to ROM space devices is primarily intended to allow the programming of FLASH
devices directly. With only one write enable, byte writes to 16- or 32-bit-wide devices are not handled
directly. External logic can decode address bits LA[1:0], and the write enable can enable a full SRAM
interface to be generated (if required). However, the interface is not designed to provide a high-performance interface to SRAM.
Assuming a MEMCLK frequency of 32 MHz, the access time for a non-sequential cycle can be varied from
220 to 62.5 ns in 31.25-ns increments. For burst mode cycles, the two LSBs of the latched address from
the CL-PS7500FE increment to allow up to four sequential reads. The access time f or burst mode cycles
can be programmed from 125 ns down to 62.5 ns, again in 31.25-ns increments.
NOTE: Due to the timing of the write enable, the smallest cycle length for a write cycle is three MEMCLK cycles –
that is, 93.75 ns.
If a frequency other than 32 MHz is used for MEMCLK, these timings scale accordingly.
Support for 16-bit-wide ROMs is provided through a programmable bit in each of the ROM control regis-
ters. If a 16-bit-wide device is selected, then two memory system cycles are required to fetch the full 32bit word required by the ARM. If burst mode is disabled for that bank, then CL-PS7500FE performs two
non-sequential fetches using the programmed non-sequential timing, latch the intermediate 16-bit value ,
and present the full 32-bit word to the ARM processor macrocell.
If the burst mode timing bits are programmed into an enabled state , then the first 16-bit read is a standard
non-sequential cycle, but the second is a burst mode cycle to minimize the total access time.
When a 16-bit-wide ROM bank is being addressed, the ROM address is shifted up by one bit such that
the LSB appears on LA[2], thus allowing the same PCB lay out to be used f or 16-bit or 32-bit R OM banks.
June 199767
ADVANCE DATA BOOK v2.0MEMORY SUBSYSTEMS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
When using a 16-bit-wide ROM device, data must be stored so that the least-significant bytes of a 32-bit
word are stored at the lower memory address:
There are two identical registers that control the configuration and timing of the two ROM banks. Both
registers default to read-only 16-bit mode and the slowest possible non-sequential timings on reset. This
means that one of the first actions when using 32-bit-wide ROM must be to reprogram these registers f or
32-bit-wide operation. A detailed description of how to boot up a CL-PS7500FE system using 32-bit-wide
ROM is contained in Appendix A, “Initialization and Boot Sequence”.
03471256
WSHBBNNN
To program these registers, write a byte to 0x03200080 for the ROMCR0 register (address range
0x00000000 to 0x00FFFFFF) or to 0x03200084 for the ROMCR1 register (address range 0x01000000 to
0x0FFFFFFF). The details of these registers are shown below.
N non-sequential access time (H = 1):
B burst mode access time (H = 1):
H half-speed select, that is, double the above cycle time when H=0
S 16/32-bit mode
WWrite enable
Writebit[7]
1normal speed
Readreturn above values
Resetset to 0x40, that is, 16-bit, slowest access time, and writes disabled.
The output and write enable signals are output on the pins nIOR and nIOW respectively. This reuse of I/O
signals is not expected to cause any difficulties since I/O chip selects is not active during accesses to
ROM space.
9.2DRAM Interface
The DRAM interface can directly drive four banks of DRAM to give a maximum of 64 Mbytes in each
DRAM bank:
● Four nRAS strobes to select the bank
● Four nCAS strobes to select the byte within the word
The nRAS strobes are decoded directly from bits 27 and 26 of the address. This means that the DRAM
address space is non-contiguous if the entire 64 Mbytes is not used for each bank.
The DRAM controller supports page mode burst cycles with up to 255 sequential accesses in a burst.
Each of the four banks can be a 16- or 32-bit-wide device.
The interface can be programmed to support either Fast Page or EDO type DRAMs. When EDO DRAM
has been selected, the data is latched into CL-PS7500FE one cycle later, taking advantage of the data
latches resident in the output stage of the DRAM. The memory clock frequency can then be increased to
realize the greater sequential access bandwidth available with EDO DRAMs.
NOTE: With a lower frequency memory clock, the interface may support EDO DRAM even without the configur ation
bit being set.
Support is provided for CAS-before-RAS refresh, and direct programmability of the nRAS and nCAS outputs through a special register allows software to directly control self-refresh DRAM.
DRAM cycle speed is controlled by the frequency of MEMCLK. Non-sequential DRAM cycles require
between five and nine MEMCLK cycles, depending on the selected mode and RAS pre-charge requirements. Page mode sequential cycles require two MEMCLK cycles.
9.2.1 DRAM Control Registers
There are three registers associated with DRAM control:
DRAMCR has seven bits, including four (one for each bank) to allow selection between 16- and 32-bit
modes of operation for each bank. Of the three remaining bits:
● One selects EDO memory support
● One inserts an extra wait state between falling nRAS and falling nCAS on read cycles to preserve t
June 199769
ADVANCE DATA BOOK v2.0MEMORY SUBSYSTEMS
RAC
CL-PS7500FE
System-on-a-Chip for Internet Appliance
● The final bit selects between 3 and 4 MEMCLK cycles of minimum nRAS[x] precharge time, t
RP
SELFREF allows direct forcing of the nRAS and nCAS outputs. The default state of each of these bits is
‘0’, allowing normal operation of the nRAS and nCAS outputs. But, when a bit is set high, the relevant
nCAS or nRAS output is immediately forced active (low).
REFCR controls the refresh rate for CAS-before-RAS refresh. There are four possible refresh periods
from 128–16 µs.
9.2.2 DRAM Address Multiplexing
The multiplexing of the DRAM address onto the RA[11:0] outputs is slightly different for 32- and 16-bit
modes. The DRAM address requested by the ARM or DMA controller must be shifted up by one bit in 16bit mode, to enable two locations to be accessed to read or write one 32-bit word. The row/column
address multiplexing arrangements are sho wn below, where the numbers in the table refer to the address
bits provided by the ARM or DMA controller.
32-bit-wide DRAM Bank
RA[11:0]
Row address
Column address
01234567891011
101112131415161718192224
2345678920212325
16-bit-wide DRAM Bank
RA[11:0]
Row address
Column address
● This bit is generated separately by DRAM controller to access each 16-bit half-word sequentially.
2224234567820
19•
01234567891011
101112131415161718
92123
9.2.3 Selection Between 16- and 32-bit DRAM
03471256
XPRESSSS
The DRAMCR at address 0x032000D0 allows the width of each of the four DRAM banks to be defined
for CL-PS7500FE. On reset, all banks are defined as 32-bits wide, so if a 16-bit system is being used it
is necessary to program this register before any writes to DRAM occur . It is not possib le to write to DRAM
in 16-bit mode and read back from the same bank in 32-bit mode, or vice versa.
S16- or 32-bit mode select, one for each bank
Writebit[3] bank 3 DRAM width
032-bit
116-bit
MEMORY SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 199770
CL-PS7500FE
System-on-a-Chip for Internet Appliance
bit[2] bank 2 DRAM width
032-bit
116-bit
bit[1] bank 1 DRAM width
032-bit
116-bit
bit[0] bank 0 DRAM width
032-bit
116-bit
Readreads above values
Resetset bits to zero (32-bit)
9.2.4 EDO and Timing Mode Selection
03471256
XPRESSSS
The DRAMCR at address 0x032000D0 also controls EDO mode and some other timing features. On reset
all these bits are set low, that is, inactive. To ensure reliable operation in many systems after reset, these
register bits must be correctly programmed before the DRAM is used.
Write:
PPrecharge RAS control
03 MEMCLK cycles minimum RAS precharge
14 MEMCLK cycles minimum RAS precharge
RRAS to CAS delay
02 MEMCLK cycles RAS to CAS delay on reads
13 MEMCLK cycles RAS to CAS delay on reads
E EDO Control
0Fast Page DRAMs selected
1EDO DRAMs selected
Readreads above values
Resetset all bits to zero (Fast page, no extra delays)
To take advantage of the faster page mode accesses of EDO DRAMs, the memory clock frequency
should be increased accordingly . F or example, a system using 80-ns F ast P age DRAMs require a memory
clock of ~32 MHz; 80-ns EDO DRAMs could use a memory clock of ~50 MHz. This improves the asymptotic DRAM bandwidth from 64 to 100 Mbytes for a 32-bit-wide system.
Howev er, the increase in memory clock may cause the T r ac time and the Trp times to be violated at 4 and
3 MEMCLK cycles respectively (when EDO selected). The register configuration bits R and P allow each
of these to be increased by one MEMCLK cycle when appropriate.
16-bit Mode
In 16-bit mode CL-PS7500FE must perform two reads or writes for each 32-bit word DRAM access
requested by the ARM processor or the DMA controller. Only nCAS[1] and nCAS[0] are used, to access
the two bytes of each word. nCAS[3:2] are held at logic one. In 16-bit mode, the same n umber of ph ysical
June 199771
ADVANCE DATA BOOK v2.0MEMORY SUBSYSTEMS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
addresses are availab le as for 32-bit mode , meaning that only 32 Mbytes of DRAM is supported per bank.
Words are stored in DRAM with the upper half-word at the lower address.
In 16-bit mode, byte reads and writes only require a single DRAM access, and the LSB of the column
address is decoded in conjunction with the nCAS[1:0] outputs to select a single byte from four. For this
reason byte reads and writes for 16-bit-wide DRAMs have the same timing as for the non-sequential 32bit case.
16-bit mode word accesses involv e a non-sequential access for the upper halfword, f ollowed b y a sequential access for the lower half w ord at the next memory location. A non sequential 16-bit mode word access
thus requires 7 MEMCLK cycles, then sequential accesses can continue until a page boundary is
reached, taking two cycles for each half word.
9.2.5 DRAM Refresh
DRAM refresh is controlled by a small state machine and counter within CL-PS7500FE. The refresh interval timer is clocked by a clock derived from the fixed frequency I_OCLK, and thus the refresh intervals
remain the same even if the frequency of MEMCLK is increased f or use with f aster DRAM. There are four
timings available for refresh, controlled by the REFCR refresh control register at address 0x0320008C.
During reset, the refresh timer is reset to the fastest value (16 µs), and the counter and state machine are
clocked such that refresh continues even during reset.
all others are undefined
Readreturn above values
Resetset to ‘0001’ (fastest available refresh rate)
MEMORY SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 199772
CL-PS7500FE
System-on-a-Chip for Internet Appliance
9.2.6 DRAM Self-Refresh
03471256
RRCCRRCC
The nCAS and nRAS lines can be forced active b y progr amming bits in the SELFREF register at address
0x032000D4. This is intended for use with self refresh DRAM, and particularly in conjunction with STOP
mode so that DRAM can retain state when all the CL-PS7500FE clocks hav e been stopped. All DMA must
be stopped and the code that writes to this register must be executing from ROM.
Cforce all nCAS low
Rforce all nRAS low
Writebits[7:4]
0normal
1force to zero
bits[3:0]
0normal
1force to zero
Readreads above values
Resetset bits to zero (normal)
9.2.7 Non-Sequential Access Time and RAS Precharge
At the end of one DRAM access, the earliest the next access can start is two memory clock cycles later.
The new access must be to a different DRAM bank than the previous for this to be allowed. If the new
access is to the same bank as the previous, to maintain the RAS precharge time (t
), an extra clock cycle
RP
is inserted before the nRAS[x] signal is asserted again.
Thus, the minimum RAS precharge time is guaranteed to be 3 MEMCLK cycles. This can be increased
to 4 MEMCLK cycles by setting DRAMCR[7] high. These wait states increase the access time of a nonsequential DRAM access by 1 or 2 cycles.
To provide adequate RAS access delay (t
) at higher memory clock frequencies, DRAMCR[6] can be
RAC
set. This inserts a wait state between the falling nRAS and the first falling nCAS of a read cycle.
Setting bit 5 of the DRAMCR delays the latching of data into CL-PS7500FE by one cycle to support EDO
DRAMs and so increases non-sequential access time by one cycle.
Table 9-1 shows how to calculate the non-sequential DRAM read access time:
Table 9-1.Non-Sequential DRAM Read Access Times
DRAMCR
Bit 6 = 0Bit 6 = 1
Fast Page (bit 5 = 0)56
EDO (bit 5 = 1)67
The non-sequential write access remains at 5 cycles for the above conditions.
June 199773
ADVANCE DATA BOOK v2.0MEMORY SUBSYSTEMS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
To preserve minimum RAS precharge times when one access closely follows another to the same DRAM
bank, the following must be added to these values
if bit 7 is low0 or 1 cycles
if bit 7 is high 0, 1, or 2 cycles
9.3DMA Channels
The CL-PS7500FE supports video, cursor and sound DMA to enable direct transfer of qwords of data
from DRAM to the video and sound processing interfaces. All DMA is in units of four words (qwords) and
data can be read from any of the four banks of DRAM in either 16- or 32-bit mode. CL-PS7500FE contains
a DMA address generator that has a number of programmable control registers associated with each
channel. Most of these registers contain 28-bit ph ysical addresses. The DMA controller also includes support for DMA to dual-panel LCD screens.
All three of the DMA channels have at least one CURRENT register that contains the address in memory
of the next data to be fetched from DRAM on that channel. Each channel uses START, INIT, and END
registers to define the size and location of the buffer in memory where DMA occurs. However, all three
channels have slightly diff erent methods of using these registers. Exact details of the contents of all these
registers can be found in Chapter 10, “MEMORY AND I/O PROGRAMMERS’ MODEL”.
9.3.1 Video DMA
The video DMA channel can be used in two modes. Duplex mode fetches DMA data for use with a dualpanel LCD display, and involv es fetching a qword of data f or the top half of the display, follow ed by a qword
of data for the bottom half of the display, then the next qword for the top half and so on. This is implemented using two parallel sets of registers that must be programmed accordingly. A description of how to
use the CL-PS7500FE with a dual panel LCD display can be found in Appendix B, “Dual-Panel
Liquid Crystal Displays”.
Normal mode is used for standard CRT and LCD displa ys and data is fetched sequentially from the fr ame
buffer. Selection between normal and duplex mode of operation is achie v ed through VIDCR[7] at location
0x032001E0. VIDCR[5] enables the video DMA channel and should not be enabled until the other
address registers are programmed to sensible values.
The registers associated with video DMA should only be programmed during the FLYBACK period, to
avoid corrupting data while DMA is in progress or while the displa y is half w ay through a raster. The state
of the internal FLYBACK signal is available for polling in the IOCR, and can create an interrupt by programming the IRQA mask register appropriately.
There is a single VIDSTART register that should be programmed with the location in memory of the first
qword of video data at the start of the frame buffer . The VIDEND register is prog rammed with the location
in memory of the start of the last qword in the frame buffer image.
For normal mode operation, the VIDINITA register should be programmed with the address in memory of
the data that creates the pixels at the top-left corner of the display. This need not necessarily be at the
same address as that programmed into the VIDSTART register, thus allowing hardw are scrolling b y moving the address in the VIDINITA register through the frame buffer. The value in the VIDINITA register is
automatically transferred into the VIDCURA register dur ing the FLYBACK period, so there is no need to
program the current register separately.
MEMORY SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 199774
CL-PS7500FE
System-on-a-Chip for Internet Appliance
For normal operation, the VIDINITB register should be programmed to 0x00000000, so that the value in
the VIDCURB register is defined. All video channel registers should be programmed with addresses that
are qword aligned (that is, bits 3:0 are ‘0’).
There is an extra bit (30) in the VIDINITA register that must be programmed high if the address in the
VIDINITA register is the same as the address in the VIDEND register. At all other times it should be programmed low.
Once all bits have been programmed, the enable bit in the VIDCR can be written to, and the video DMA
channel becomes operational. The channel is then controlled by a video request signal from the video
controller part of CL-PS7500FE. When a request for more video data arr ives and the current bus cycle
finishes, the bus controller arbitrates in favor of the DMA (having the highest priority on the bus) to fetch
a qword of data for the video sub system. Immediately after each DMA access, the address in the current
register is incremented by 16 (one qword) and the address is compared with the address in the VIDEND
register. If they are the same, the DMA controller knows that the next DMA is the last one in the buffer,
and after the next DMA, the current register is reloaded from the VIDSTART register . During the FLYBACK
period, the current register is automatically reloaded with the value in the VIDINITA register.
Programming of the DMA and video subsystem for use with dual panel LCDs is described in full in
Appendix B, “Dual-Panel Liquid Crystal Displays”, and uses identical principles, e xcept there are two Cur-
rent registers and two Init registers – one for each panel. On each successive DMA access, the
CL-PS7500FE toggles between the two sets of registers providing data first f or the upper panel and then
from the lower panel. This means that the two init registers should alw ays be prog rammed with addresses
with are equidistantly spaced through the wrapped-around frame buffer.
9.3.2 Cursor DMA
There are only two registers associated with the cursor channel, the CURSCUR current register and the
CURSINIT register. The channel is enabled under the control of the video enable bit in the VIDCR. The
operation of the channel is the same for normal or duplex modes, b ut it is necessary to program the cursor
differently depending on the mode being used. Details of the programming required can be found in
Appendix B, “Dual-Panel Liquid Crystal Displays”.
The CURSINIT register should be programmed with the address of the first word of cursor data in memory . There is no END register as the width of the cursor is predetermined (32 pixels) and the height of the
cursor is defined by programming the VCSR and VCER in the video subsystem. Each qword fetches
results in two rasters worth of cursor data being transferred (except in HiRes mode). At the end of each
fetch, the value in the CURSCUR is increased by 16, to address the start of the next qword. The value
programmed into the CURSINIT register must be qword-aligned.
9.3.3 Sound DMA
The Sound DMA channel provides data for the CL-PS7500FE sound interface. There are two sets of
pointer registers so that data transfers can be double b uffered to ensure that DMA data is alw ays av ailable
even when the data in one b uffer is e xhausted. One set of registers can be reprogrammed while the others
are being used.
Sound DMA transfers are constrained to a single 4-Kbyte page, as only the lowest 12 bits of the DMA
address are incremented and compared to check for the end of the buffer. All sound DMA is qword and
must be from qword aligned addresses, so the lowest four bits of the registers are not used and should
be programmed to zero . Bit 30 of each of the END registers is the ‘last’ bit and must be programmed high
if the initial value in the current register is the same as the end register for that buffer (that is, for a single
transfer).
June 199775
ADVANCE DATA BOOK v2.0MEMORY SUBSYSTEMS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
There is also an interrupt mask and status bit for the sound channel that allows the status of the sound
DMA state machine to be monitored. The state machine generates an interrupt when the end of the current buffer is reached, and it is up to the system software to take appropriate action to reprogram that
channel as required while DMA continues from the location pointed to by the other set of buffers.
Sound data is requested by the CL-PS7500FE sound subsystem that asserts a request signal, and the
bus controller arbitrates in favor of the sound DMA when the current bus cycle has completed as long as
there is not an outstanding video or cursor DMA request.
9.3.4 The Sound DMA State Machine
The sound DMA channel is controlled by a simple state machine. The state machine remains in an idle
state when the enable bit in the sound DMA control register has not been set. The state bits of the state
machine are directly mapped to the Sound DMA status register, where they are named Overrun, Int and
A/B. On reset, the state machine is set to ‘110’, setting the Overrun and Int bits. The Overrun bit indicates
when a channel has stopped because it has finished a transfer and the other pointer pair is not programmed. The Int bit indicates when the channel is requesting an interrupt. The A/B bit indicates the pair
of current/end pointers in use.
The state machine diagram in Figure 9-1 on page 77 shows how the state machine transfers between
buffers A and B to allow DMA to continue uninterrupted when both sets of DMA address registers have
been programmed. The transitions between states occur either when the ARM processor programs an
pointer register pair, or when a buffer is completed. To ensure correct operation, the current pointer must
be programmed before the end pointer as it is the action of progr amming the end pointer that causes the
state transition. The ‘stop’ bit in the end register terminates a sequence of DMA, by forcing the state
machine back into one of the idle states at the end of the last buffer.
During operation of the state machine, when the end of one buffer is reached, an interrupt is generated
that can be used to signal to the ARM processor that it is time to reprogram that pair of pointers. If one
buffer’ s address pointers ha ve not been reprogr ammed before the other b uffer is e xhausted, then both the
Int and Overrun bits are set, and DMA cannot continue until the pointers are reprogrammed.
MEMORY SUBSYSTEMS
ADVANCE DATA BOOK v2.0
June 199776
CL-PS7500FE
System-on-a-Chip for Internet Appliance
IDLE OR WRITE BUFF BBUSY (BUFF A ACTIVE)BUSY (BUFF A ACTIVE)
OR
INT
BUFF A
WRITE BUFF A
INT
FINISHED
(110)(010)(000)
(NOT STOPB)
FINISHED
(STOPB)
BUFF A
FINISHED
BUFF B
(001)(011)(111)
BUSY (BUFF B ACTIVE)BUSY (BUFF B ACTIVE)IDLE OR WRITE BUFF A
WRITE BUFF B
(NOT STOPA)
WRITE BUFF A
BUFF A
FINISHED
INT
BUFF B
FINISHED
WRITE BUFF B
FINISHED
(STOPA)
OR
INT
BUFF B
Figure 9-1. Hardware DMA State Machine Diagram
June 199777
ADVANCE DATA BOOK v2.0MEMORY SUBSYSTEMS
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10. MEMORY AND I/O PROGRAMMERS’ MODEL
10.1Introduction
The CL-PS7500FE contains over 100 programmab le registers (in addition to those in the ARM processor
and the 256 video palette entries), grouped into three sets. Registers inside the ARM processor are
described in Those inside the video and sound macrocell are all programmed by writing to memory locations 0x03400000 to 0x034FFFFF, with the upper bits of the programmed data determining which
video/sound register is to be programmed. All these registers are write-only, and are described in
Chapter 12 and Chapter 13. The remaining CL-PS7500FE registers are programmed by writing a full 32-
bit data word to an address between 0x03200000 and 0x032001F8. Although most of these registers are
only 8- or 16-bits wide, all the register addresses are word-aligned. All the CL-PS7500FE registers that
do not form part of the ARM processor or the video and sound macrocell are described in the following
sections.
10.2Register Summary
In Table 10-1, all addresses are hex and relative to the base address 0x03200000.
This register controls various I/O functions. The value of the FLYBACK signal from the video subsystem
can be examined by reading bit 7 of this register, this is impor tant for GENLOCK as FLYBACK provides
information about the vertical timing of the display. The FLYBACK bit also gives information about when
the video palette registers can safely be reprogrammed without causing any visual effects. This can only
be done during the FLYBACK period, when this bit is set high. Control of the open drain OD[1:0] and ID
pins is provided from this register. It is also possible to read the status of the nINT1 pin.
F FLYBACK value
N nINT1 value
I ID open drain pin control
C OD[1] open drain pin control
D OD[0] open drain pin control
Writebits[7:4, 2] ignored
bit[3, 1:0] open drain pin controls:
0force pin low
1pin is input only
Readbit[7] reads current FLYBACK value from video and sound macrocell
bit[6] reads current nINT1 pin value
bits[5:4, 2] read one
bit[3] reads current ID pin value
bit[1] reads current OD[1]pin value
bit[0] reads current OD[0] pin value
Resetbits[3, 1:0] set as inputs (high)
10.3.2KBDDAT (0x04) — Keyboard Data
03471256
DDDDDDDD
D keyboard data
Writenext byte to be sent over serial interface to keyboard
Readlast byte of data received from keyboard
June 199781
ADVANCE DATA BOOK v2.0MEMORY AND I/O PROGRAMMERS’ MODEL
10.3.3KBDCR (0x08) — Keyboard Control
Ttransmit status
R receive status
E enable
P received parity
D data pin status
C clock pin status
Writebits[7:4, 2] ignored
bit[3] enable:
0state machine cleared
1state machine enabled
bit[1] force KBDATA pin low:
0don't force low
1force low
bit[0] force KBCLK pin low:
0don't force low
1force low
Readbit[7] TXE shift register empty:
0not ready
1enabled and ready to transmit
bit[6] TXB, transmitter busy:
0not busy
1currently sending data
bit[5] RXF, receive shift register full:
0not full
1ready to read
bit[4] RXB, receiver busy:
0not busy
1currently receiving data
bit[3] ENA, state machine enable:
0disabled
1enabled
bit[2] RXP, receive parity bit, odd parity bit for last received data
bit[1] SKD, KBDATA pin value after synchronization
bit[0] SKC, KBCLK pin value after synchronization
CL-PS7500FE
System-on-a-Chip for Internet Appliance
03471256
DCTTRREP
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 199782
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.4IOLINES (0x0C) — IOP[7:0] Port Control
03471256
IIIIIIII
This register is the control for the 8-bit I/O port included in the CL-PS7500FE. Each bit independently controls the state of one of the open drain I/O pins IOP[7:0]. On reset, all the bits are configured to be inputs .
IIOP open drain pin
Write corresponding pin:
0 force corresponding pin low
1corresponding pin becomes an input
Readread value on corresponding pin
Resetset all as inputs
10.3.5IRQSTA (0x10) — IRQ A Interrupts Status
03471256
TR1UFN0P
This is the first of four sets of IRQ interrupt control, masking and status registers in CL-PS7500FE. Not
all the bits in each register are used. Note that this status register contains a bit (7) that is always active,
and can force an interrupt from software by progr amming the corresponding bit in the IRQA mask register
high.
1 always active bit
T 2-MHz timer 1, rising-edge triggered
U 2-MHz timer 0, rising-edge triggered
R power on reset
F FLYBACK, rising-edge triggered
N nINT1, falling-edge triggered
PINT2, rising-edge triggered
Writeignored
Readstatus
bit[7] is always ‘1’
bits[6:2, 0]
0not triggered since last cleared
1triggered since last cleared
bit[1] is always 0
Resetclear bits[6:5, 3:2, 0] to ‘0’
power on reset sets bit[4] to ‘1’
push button reset maintains the current bit[4] value
June 199783
ADVANCE DATA BOOK v2.0MEMORY AND I/O PROGRAMMERS’ MODEL
System-on-a-Chip for Internet Appliance
10.3.6IRQRQA (0x14) — IRQ A Interrupts Request/Clear
03471256
TR1UFNP
1 always active bit
T 2-MHz timer 1, rising-edge triggered
U 2-MHz timer 0, rising-edge triggered
R power on reset
F FLYBACK, rising edge triggered
NnINT1, falling-edge triggered
PINT2, rising-edge triggered
Writeclear triggered interrupts
0do not clear interrupt
1clear interrupt
Readrequests, as status, but bitwise AND’ed with mask
X
CL-PS7500FE
10.3.7IRQMSKA (0x18) — IRQ A Interrupts Mask
TR1UFN0P
1 always active bit
T 2-MHz timer 1, rising-edge triggered
U 2-MHz timer 0, rising-edge triggered
R power on reset
F FLYBACK, rising-edge triggered
N nINT1, falling-edge triggered
PINT2, rising-edge triggered
Writeset mask for each interrupt source
0do not form part of nIRQ
1form part of nIRQ
Readvalue set by write
Resetset all ‘0’ (none affect nIRQ)
03471256
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 199784
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.8SUSMODE (0x1C) — SUSPEND Mode
03471256
XXXXXXXS
This register allows the CPU to set the CL-PS7500FE into SUSPEND mode. Only one bit (0) is used, and
a write to this bit causes SUSPEND mode to be entered. The v alue written to bit 0 determines if the external I/O clocks, normally output from the device, are also disab led during SUSPEND mode. The value programmed depends on the peripherals being driven by these clocks.
S SUSPEND mode control of external I/O clocks.
Enter SUSPEND mode with MEMCLK, FCLK, I/O clocks, and some internal
clocks stopped. DMA continues and the write to this location completes on
either wakeup event, nIRQ or nFIQ or reset.
Writeturn off external I/O clocks when in this mode
0turn off
1do not turn off
Readreturn above value
Resetset to ‘0’
10.3.9IRQSTB (0x20) — IRQ B Interrupts Status
TFPKJISC
Kkeyboard receive interrupt
J keyboard transmit interrupt
P nINT3, active-low
TnINT4, active-low
I INT5, active-high
S nINT6, active-low
C INT7, active-high
F nINT8, active-low
Writeignored
Readstatus
0inactive
1active
03471256
June 199785
ADVANCE DATA BOOK v2.0MEMORY AND I/O PROGRAMMERS’ MODEL
10.3.10 IRQRQB (0x24) — IRQ B Interrupts Request
TFPKJISC
Kkeyboard receive interrupt
J keyboard transmit interrupt
PnINT3, active-low
T nINT4, active-low
I INT5, active-high
S nINT6, active-low
C INT7, active-high
F nINT8, active-low
Writeignored
Readrequest, status bitwise AND’ed with mask
CL-PS7500FE
System-on-a-Chip for Internet Appliance
03471256
10.3.11 IRQMSKB (0x28) — IRQ B Interrupts Mask
TFPKJISC
K keyboard receive interrupt
J keyboard transmit interrupt
P nINT3, active-low
T nINT4, active-low
I INT5, active-high
S nINT6, active-low
C INT7, active-high
F nINT8, active-low
Writeset mask for each interrupt source:
0do not form part of nIRQ
1form part of nIRQ
Readvalue set by write
Resetset all ‘0’ (none affect nIRQ)
03471256
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 199786
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.12 STOPMODE (0x2C) — STOP Mode
03471256
XXXXXXX
This register exists only as an address decode and is used to enter STOP mode. It is very important that
DMA activity is stopped before this register is written to. The value written to the register is permanently
forced out on the main data bus during STOP mode, and for most systems it is desirable to ensure that
this value is 0xFFFFFFFF. The address bus is automatically forced high during STOP mode.
Write(any value), enter STOP mode with OSCPOWER set low. The write to this
register completes on either wakeup event, nEVENT, nEVENT2, or reset
Readignored
10.3.13 FIQST (0x30) — FIQ Interrupts Status
1F0S00ID
X
03471256
The FIQ control registers take a similar form to the IRQ registers previously described. Again, bit 7 is
always active so that a FIQ interrupt can be forced via software.
1 always active
FnINT8, active-low
S nINT6, active-low
I INT5, active-high
D INT9, active-high
Writeignored
Readstatus
0inactive
1active
10.3.14 FIQRQ (0x34) — FIQ Interrupts Request
03471256
1F0S00ID
1always active
F nINT8, active-low
S nINT6, active-low
I INT5, active-high
D INT9, active-high
Writeignored
Readrequest, status bitwise AND’ed with mask
June 199787
ADVANCE DATA BOOK v2.0MEMORY AND I/O PROGRAMMERS’ MODEL
10.3.15 FIQMSK (0x38) — FIQ Interrupts Mask
1F0S00ID
1 always active
F nINT8, active-low
S nINT6, active-low
I INT5, active-high
D INT9, active-high
Writeset mask for each interrupt source:
0do not form part of nFIQ
1form part of nFIQ
Readvalue set by write
Resetset all ‘0’ (none affect nFIQ)
10.3.16 CLKCTL (0x3C) — Clock Control
XXXXXFMI
CL-PS7500FE
System-on-a-Chip for Internet Appliance
03471256
03471256
On system power up, the clock control register is reset so that all three main clocks have a Divide-by-2
prescale at the inputs to the chip. This register sometimes needs to be reprogrammed as part of the initial
tasks of the operating system, to set the prescalars into Divide-by-1 mode.
Divide-by-2 mode allows faster oscillators to be used with less rigorous mark-space requirements.
FFCLK divide control
M MEMRFCK divide control
II/O clock divide control
Writebit[2]
0FCLK × 2 = CPUCLK
1FCLK = CPUCLK
bit[1]
0MEMRFCK × 2 = MEMCLK
1MEMRFCK = MEMCLK
bit[0]
0IOCK32 × 2 = I_OCLK
1IOCK32 = I_OCLK
Readreturn above value
Power On Reset only
set all to ‘0’, that is, the Divide-by-2 clocks
Push button reset does not affect this register
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 199788
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.17 T0low (0x40) — Timer 0 Low Bits
03471256
LLLLLLLL
There are eight registers associated with the two 16-bit timers in CL-PS7500FE.
Llow byte of timer
Writeset low byte latch value that is loaded into timer when it reaches end count
Readread value of low count latched by the ‘Latch’ command T0LAT
10.3.18 T0high (0x44) — Timer 0 High Bits
03471256
HHHHHHHH
Hhigh byte of timer
Writeset high byte latch value that is loaded into timer when it reaches end count
Readread value of high count latched by the ‘Latch’ command T0LAT
10.3.19 T0GO (0x48) — Timer 0 Go Command
Writeload counter with high and low latch values and start to decrement (value
ignored)
Readignored
10.3.20 T0LAT (0x4C) — Timer 0 Latch Command
Writelatch timer value in high and low count latches (value ignored)
Readignored
10.3.21 T1low (0x50) — Timer 1 Low Bits
LLLLLLLL
L low byte of timer
Writeset low byte latch value loaded into timer when it reaches end count
Readread value of low count latched by the ‘Latch’ command T1LAT
10.3.22 T1high (0x54) — Timer 1 High Bits
HHHHHHHH
03471256
03471256
H high byte of timer
Writeset high byte latch value that is loaded into timer when it reaches end count
Readread value of high count latched by the ‘Latch’ command T1LAT
June 199789
ADVANCE DATA BOOK v2.0MEMORY AND I/O PROGRAMMERS’ MODEL
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.23 T1GO (0x58) — Timer 1 Go Command
Writeload counter with high and low latch values and start to decrement (value
ignored)
Readignored
10.3.24 T1LAT (0x5C) — Timer 1 Latch Command
Writelatch timer value in high and low count latches (value ignored)
Readignored
10.3.25 IRQSTC (0x60) — IRQ C Interrupts Status
03471256
IIIIIIII
The IRQC set of control registers control the effect of the IOP[7:0] I/O port bits on the main interrupts.
Their functionality is identical to that described for IRQB.
I IOP[7:0] pins, active-low
Writeignored
Readrequest, status bitwise AND’ed with mask
10.3.27 IRQMSKC (0x68) — IRQ C Interrupts Mask
IIIIIIII
I IOP[7:0] pins, active-low
Writeset mask for each interrupt source
0do not form part of nIRQ
1form part of nIRQ
Readvalue set by write
Resetset all ‘0’ (none affect nIRQ)
03471256
03471256
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 199790
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.28 VIDMUX (0x6C) — Video LCD and Serial Sound MUX Control
03471256
XXXXXI
This register has two functions:
Bit 1allows selection of the type of serial sound interface to be supported.
The timing of the two possibilities is shown in the Chapter 13.
Bit 0 controls the color LCD multiplexer used with the video pixel cloc k to double the
available bandwidth of color LCD data provided.
Further details of how to use this feature can be found in the video and sound macrocell chapters.
L color LCD support MUX control
I Serial Sound Format selection
Writebit[0]
0ESEL[0] = EREG[0]
1ESEL[0] = ECLK
bit[1]
0normal format
1Japanese format
Readreturn above value
Resetset to ‘0’ (normal)
X
L
10.3.29 IRQSTD (0x70) — IRQ D Interrupts Status
03471256
XXX21ATR
The IRQD control registers are used in an identical way to the IRQB and C registers.
2 nEVENT2, reads back high during an active-low wakeup event 2
1 nEVENT1, reads back high during an active-low wakeup event 1
AA-to-D, active-high
Tmouse transmit active-high
R mouse receive active-high
Writeignored
Readstatus
bits[7:5] unused
bits[4:0]
0inactive
1active
June 199791
ADVANCE DATA BOOK v2.0MEMORY AND I/O PROGRAMMERS’ MODEL
10.3.30 IRQRQD (0x74) — IRQ D Interrupts Request
XXX21ATR
2 nEVENT2, active-low wakeup event 2
1 nEVENT1, active-low wakeup event 1
A A-to-D, active-high
T mouse transmit active-high
R mouse receive active-high
Writeignored
Readrequest, status bitwise AND’ed with mask
10.3.31 IRQMSKD (0x78) — IRQ D Interrupts Mask
XXX21ATR
CL-PS7500FE
System-on-a-Chip for Internet Appliance
03471256
03471256
2 nEVENT2, active-low wakeup event 2
1 nEVENT1, active-low wakeup event 1
A A-to-D, active-high
T mouse transmit active-high
R mouse receive active-high
Writeset mask for each interrupt source
0do not form part of nIRQ
1form part of nIRQ
Readvalue set by write
Resetset all ‘0’ (none affect nIRQ)
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 199792
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.32 ROMCR1:0 (0x80 and 0x84) — ROM Control
03471256
WSHBBNNN
The ROM interface is ver y flexible, allowing the length of non sequential and burst cycles to be programmed. These two registers allow this programming to take place.
The half-speed select bit is included so the interface can be used with slow ROMs when fast DRAM is
being used, and the memory system clock is running at a higher frequency . When the half-speed bit is set
low , CL-PS7500FE doubles the length of all the timings and allows the ROM interface to function correctly
with slower ROMs. In normal operation with sufficiently fast ROM devices, this bit should be programmed
to ‘1’.
Each register also contains a bit (6) that, when set, allows a 16-bit wide ROM device to be used for that
bank, by performing two 16-bit f etches to f orm the 32-bit word required by the CL-PS7500FE. Bit 7 allows
writes to occur to this address space; the data is driven out, and a write enable generated, if enabled.
H half-speed select, that is, double the above delays when H = 0.
Normally, the H bit should be programmed to ‘1’ (normal speed)
S 16- or 32-bit mode
WWrite Enable
Writebit[7]
0writing disabled
1writing enabled
bit[6]
032-bit
116-bit
bit[5]
0half-speed mode
1normal speed
Readreturn the above values
Resetset to 0x40, that is, the 16-bit, slowest access time, to ensure all systems can
be booted from reset.
June 199793
ADVANCE DATA BOOK v2.0MEMORY AND I/O PROGRAMMERS’ MODEL
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.33 REFCR (0x8C) — Refresh Period
03471256
XXXRXRRR
This register programs the DRAM refresh period. It is set to the fastest available rate during reset, as
refresh continues during reset to ensure that the requirements of DRAM specification can be fully met.
all others are undefined
Readreturn the above values
Resetset to ‘0001’ (fastest available refresh rate)
10.3.34 ID0 (0x94) — Chip ID Number (Low Byte)
03471256
0111110
0
The ID registers and the version register read back the CL-PS7500FE ID and version numbers. These
registers are read-only and must
not
be written to, as they are used to set the CL-PS7500FE into special
modes during production test.
Writedo not write to this location
Readlow byte of chip ID: 0x7C
10.3.35 ID1 (0x98) — Chip ID Number (High Byte)
03471256
10010101
Writedo not write to this location
Readhigh byte of chip ID: 0xAA
10.3.36 VERSION (0x9C) — Chip Version Number
Writeignored
Readchip version number byte
10.3.37 MSEDAT (0xA8) — Mouse Data
The Mouse Data and Control registers are identical to the keyboard data and control registers, and are
written to and read from in exactly the same way.
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 199794
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.38 MSECR (0xAC) — Mouse Control
As KBDCR register.
10.3.39 IOTCR (0xC4) — I/O Timing Control
03471256
XXXXCSCS
This register sets up the cycle types for two areas of I/O space.
C combo area access speed
S NPCCS 1/2 area access speed
Writebits[7:4] reserved
bits[3:2]
00Type A (slowest)
01Type B
10Type C
11Type D (fastest)
bits[1:0]
00Type A (slowest)
01Type B
10Type C
11Type D (fastest)
Readread back the above values
10.3.40 ECTCR (0xC8) — I/O Expansion Card Timing Control
03471256
EEEEEEEE
This register sets up the access speed for eight portions of extended address space within the area of I/O
space from 08FFFFFF to 0FFFFFFF. (Types A and C only.)
Eexpansion card area access speed
Writebit[7] (0F00 0000..0FFF FFFF)
0Type A
1Type C
bit[0] (0800 0000..08FF FFFF)
0Type A
1Type C
Readread back above values
June 199795
ADVANCE DATA BOOK v2.0MEMORY AND I/O PROGRAMMERS’ MODEL
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.41 ASTCR (0xCC) — I/O Asynchronous Timing Control
03471256
AXXXXXXX
This register is used where I/O is being used with a very fast memory system clock. Normally it is programmed to ‘0’ to giv e the minimum dela y for these cycles; how ev er , in some configurations it ma y be necessary to program the register bit to ‘1’ to slow down the internal synchronization between I/O clocks and
memory clocks and thus ensure sufficient address hold time for the I/O address.
A asynchronous timing control
0minimal delay to I/O cycles
1wait states to ensure address hold time
10.3.42 DRAMCR (0xD0) — DRAM Control
03471256
XPRESSSS
This register selects between 16- and 32-bit modes of operation for each of the four available banks of
DRAM. Each bank can be individually selected for 16 or 32-bit operation. This allows a mixed 16/32-bitwide system to be built. It also controls EDO support and some timing options.
02 memory clock cycles from falling nRAS to falling nCAS
13 memory clock cycles from falling nRAS to falling nCAS
EEDO memory
0Fast Page memory
1EDO memory
S 16- or 32-bit mode select, one for each bank
Writebit 3, bank 3 DRAM width
032-bit
116-bit
bit 2, bank 2 DRAM width
032-bit
116-bit
bit 1, bank 1 DRAM width
032-bit
116-bit
bit 0, bank 0 DRAM width
032-bit
116-bit
Readreads above values
Resetset bits to ‘0’ (32-bit)
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 199796
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.43 SELFREF (0xD4) — DRAM Self-Refresh Control
03471256
RRCCRRCC
Direct software control of the external nRAS[3:0] and nCAS[3:0] lines is provided by this register. This is
intended for use with self-refresh DRAMs, so that before the CL-PS7500FE is forced into STOP mode,
the banks of DRAM can be set into a self-refresh state from software by forcing the nRAS and nCAS lines
as specified in the DRAM data sheet.
C force all nCAS low
R force all nRAS low
Writebits[7:4]
0normal
1force to ‘0’
bits[3:0]
0normal
1force to ‘0’
Readreads above values
Resetset bits to ‘0’ (normal)
10.3.44 ATODICR (0xE0) — A-to-D Interrupt Control
03471256
SFAC4321
The A-to-D convertor interface is designed so that various combination of interrupts from the channels
can be used to generate an interrupt request in the IRQD interrupt request register. Note that the logical
OR of all four basic enables po wers up the comparators. As the comparators consume static current, they
must be powered down by disabling all the A-to-D channels using this register before STOP mode is
entered.
1 channel 1 interrupt enable
2 channel 2 interrupt enable
3 channel 3 interrupt enable
4 channel 4 interrupt enable
C any combination of channels generates nIRQ
A only all channels enabled generates nIRQ
F first pair enabled generates nIRQ
S second pair enabled generates nIRQ
Writebit[7:0]
0disabled
1enabled
Readreturn above values
Resetreset to 0x0F
NOTE: The OR of bit[3:0] powers up all the comparators. Thus they reset to the powered-up state.
June 199797
ADVANCE DATA BOOK v2.0MEMORY AND I/O PROGRAMMERS’ MODEL
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.45 ATODSR (0xE4) — A-to-D Status
03471256
RRRRSSSS
This register shows which of the A-to-D channels were triggered and can have their counters read to
ascertain the analog value at the input to the channel. The interrupt request status bits are generated from
the stop flags logically AND’ed with the interrupt enables from the interrupt control register.
R[3:0]interrupt request state for channels 4–1
S[3:0]stop flag for channels 4–1
Writeignored
Readbit[7:4]
0not requesting
1requesting
bit [3:0]
0not stopped
1stopped
Resetset all ‘0’ (not requesting or stopped)
10.3.46 ATODCC (0xE8) — A-to-D Convertor Control
03471256
CCCCDDDD
The lower 4 bits of this register directly reset each of the four counters, so that the counters can be set
back to ‘0’ before a new analog to digital conversion cycle takes place. The counter star ts counting as
soon as the relevant clear bit is set bac k to ‘0’. The discharge transistor controls causes the channel comparator input to be pulled firmly down to V
, thus discharging an external capacitor and ensuring zero
SS
volts across the capacitor until the discharge bit is programmed low again. With the system connected
conventionally, the external capacitor begins charging as soon as the discharge bit is reset. The discharge
bit should be reset at the same time as the counter clear bit for that channel to be re-enabled.
D[3:0] discharge transistor control for channels 4–1
C[3:0] clear counter for channels 4–1
Writebit[7:4]
0transistor off
1transistor on (discharge)
bit[3:0]
0clear counter
1enable counter
Readreturn above values
Resetset all ‘0’ (clear counters and don't discharge)
MEMORY AND I/O PROGRAMMERS’ MODEL
ADVANCE DATA BOOK v2.0
June 199798
CL-PS7500FE
System-on-a-Chip for Internet Appliance
10.3.47 ATODCNT1 (0xEC) — A-to-D Counter 1
Writeignored
Readreturns 16-bit counter value
10.3.48 ATODCNT2 (0xF0) — A-to-D Counter 2
Writeignored
Readreturns 16-bit counter value
10.3.49 ATODCNT3 (0xF4) — A-to-D Counter 3
Writeignored
Readreturns 16-bit counter value
10.3.50 ATODCNT4 (0xF8) — A-to-D Counter 4
Writeignored
Readreturns 16-bit counter value
10.3.51 SDCURA (0x180) — Sound DMA Current A
29
XXX
PPPPPPPPPPPPPPPPP FFFFFFFF
0000
03411122831
The operation of the sound DMA channel is described in Chapter 9. The sound current registers are programmed with a page address and the offset within that page to describe the precise location of the first
DMA fetch. The value in the register is then increased by 16 following each DMA access.
P page[16:0]
F offset[11:0]
Writebits[31:29] unused
bits[28:12] page of next DMA fetch
bits[11:4] offset within page of next DMA fetch
bits[3:0] ignored
Readbits[31:29] undefined
bits[28:4] current DMA fetch location
bits[3:0] always ‘0’
June 199799
ADVANCE DATA BOOK v2.0MEMORY AND I/O PROGRAMMERS’ MODEL
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.