International Business Machines Corporation 1999, 2000.
Printed in the United States of America, March 2000. All Rights reserved.
IBM Microelectronics, PowerPC, PowerPC 603e, RISCWatch, and AIX are trademarks of the IBM corpora-
tion. IBM and the IBM logo are registered trademarks of the IBM corporation. Other company names and
product identifiers are trademarks of the respective companies.
This document contains information which is subject to change by IBM without notice. IBM assumes no
responsibility or liability for any use of the information contained herein. Nothing in this document shall
operate as an express or implied license or indemnity under the intellectual property rights of IBM or third
parties. The products described in this document are not intended for use in implantation or other direct
life-support applications where malfunction may result in physical harm or injury to persons. NO WARRANTIES OF ANY KIND, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE OFFERED IN THIS DOCUMENT.
The CPC700 Memory Controller and PCI Bridge (CPC700) contains a bridge from the PowerPC processor
to the PCI bus, as well as a high-speed memory controller, internal peripherals, and control for external
ROM and external peripherals. The CPC700 is meant to be a general purpose solution to the problem of
interfacing a high performance, superscalar, PowerPC 603e, 740, and 750 microprocessors to any PCI
bus. These microprocessors feature multiple, independent execution units and large onboard instruction
and data caches.
The CPC700 adds the following features:
• PowerPC 60x/7xx bus with operation to 66 MHz (CPC700-66) or to 83 MHz (CPC700-83).
• Synchronous DRAM interface operating at the processor bus speed.
- 64-bit interface for non-ECC applications.
- 72-bit interface (64 bits of data plus 8 checkbits) for ECC applications.
- ECC protection applied to address as well as data.
• ROM/SRAM/External Peripheral Controller.
- Flash ROM/Boot ROM interface.
- Direct support for 8-, 16-, 32-, or 64-bit SRAM or external peripherals.
- PCI Bus Interface may be configured to operate synchronously or asynchronously to the processor
bus (synchronous clock is limited to 33 MHz PCI bus operation).
- Internal PCI Bus Arbiter for up to six external devices at PCI bus speeds up to 33 MHz.
• Interrupt Controller supports interrupts from a variety of sources.
- Internal Peripherals (UARTs, IICs, Timers).
- External Peripherals.
- ECC correctable error.
- PCI writes to PCI Command Register.
- PCI writes to a specific memory address range.
• Programmable Timers.
• Two 2-wire 8-bit Serial Ports (16550 compatible UART).
• Two IIC interfaces.
• Supports JTAG for board level testing.
• Byte swapping supported for bi-endian operation.
With versions that support processor bus speeds up to 66 MHz and 83 MHz, the CPC700 allows the PowerPC to realize its full potential. To complement this operation, the CPC700 memory subsystem keeps up
with the processor by providing an optimized memory controller. The memory architecture focuses on performance, cost, and board space. Support is provided for 16-bit wide SDRAMs, reducing the number of
memory devices that are needed to support the 64-bit PowerPC bus size. The device will support four
banks of SDRAM, with up to 512 Mbytes per bank.
CPC700 User’s Manual—Preliminary1-1
For mission critical, zero down time operations , the CPC700 incorporates Error Correction Code (ECC) circuitry with the ability to correct data errors as well as detect address errors. The device also supports the
processor’s address and data parity scheme. If processor data parity is not required, the unused pins can
be configured to provide PCI arbitration.
A complement of internal peripherals are available, including an interrupt controller, programmable timers,
dual UARTs, and two independent IIC ports. If the design requires additional functionality, an integrated
peripheral bus supports 8-, 16-, 32-, or 64-bit device operations for external peripherals. This bus also supports the Boot ROM. Additional chip selects are provided to eliminate the need for external glue logic. A
total of five chip selects are provided that may be programmed to support ROM banks, SDRAM banks, or
peripherals, providing a very flexible system environment.
Critical to intelligent embedded applications, the PCI interface offers features that allow the CPC700 to
operate in a host role, as an intelligent add-in card, or in stand-alone operating modes. The following diagram shows the CPC700 in a typical system configuration.
1-2CPC700 User’s Manual—Preliminary
PowerPC
60x/7xx
Processor
Interrupts
60x/7xx Bus
CPC700
Timers
2 UARTs
2
C
2 I
ROM/SRAM
External
Peripheral
PCI Devices
PCI arbiter
PCI Bus
SDRAM
Figure 1. System Block Diagram
CPC700 User’s Manual—Preliminary1-3
1.2 CPC700 Block Diagram
8
Parity
or
Arbiter
66MHz Processor Bus
119
Processor
Interface
Data
Parity
PCI
Arb
PCI
Interface
104
SDRAM
ROM
Peripherals
ECC
66MHz Processor Local Bus (PLB)
DCR Bus
JTAG
Misc.
(interrupts)
UIC
5
System
&
PLL
1/2X
OPB
Bridge
CPC700 ASIC
UART
UART
2
I
I2C
33MHz On Chip Peripheral Bus (OPB)
GPT
(Timers)
2
2
C
2
2
52
25 to 66MHz PCI Bus
1219
Figure 2. Functional Block Diagram
The block diagram illustrates the internal and external bus frequencies of the CPC700, given a 66MHz processor bus. Each of the blocks in the diagram represents a core from the IBM Blue Logic core library. The
architecture is based on two primary busses, the Processor Local Bus (PLB) and the On Chip Peripheral
Bus (OPB). The PLB operates at the same frequency as the local processor bus. The OPB operates at half
of the frequency of the PLB.
1-4CPC700 User’s Manual—Preliminary
Processor to PLB Interface
The CPC700 provides an interface to attach a 60x or 7xx processor to the internal PLB and to provide the
processor with a low latency access path to local memory. Through this interface, the processor may
access the PCI bus, local memory, external peripherals, and internal peripherals (UARTs, I2Cs, Timers,
and interrupt controller).
Processor interface features:
• Supports PowerPC 603e, 740, and 750 families.
• One level processor address pipelining.
• Support for processor “no-DR
• Processor bus arbiter arbitrates between local processor and internal snoop engine.
• L1 cache coherency support during PCI access to local memory.
• 32-byte write buffer to memory.
• 32-byte write buffer to PLB.
• lwarx/stwx. support (reservation cancelling snoops).
• Address only cycle support.
• External MCP_REQ input may be programmed to drive MCP to processor.
• Error tracking/status for processor transactions.
• Provides low latency access path to local memory.
Address Map Support
The CPC700 incorporates a simple fixed processor address map that serves the PowerPC family of processors. The address map has provisions for ROM, RAM, and I/O. Mapping does not require flexibility
because the CPC700 has the ability to map primary and secondary resources independently. This mapping can be performed solely from the processor side or from a combination of the processor and the PCI
side. This mechanism lets the same fixed secondary resources become flexible to the primary side, while
providing local processor operating space stability.
TRY” mode.
Through the use of “Mapping Port Windows,” either the PowerPC or PCI can gain access to the other
side’s resources. There are three local windows available to the PowerPC to access PCI memory. These
windows can be programmed to powers of 2 boundaries, are variable in size, and may be used to access
any location in a 64-bit PCI address space yet are invisible to the PCI bus.
PCI to local processor memory access “Port Windows” are handled in the PCI standard method, through
the programming of the Base Address Registers (BARs) in PCI configuration space. These registers are
defined to allow the PowerPC processor to request allocation of resources on the PCI side. There are
some fundamental differences though, that differentiate the CPC700 from other embedded solutions. The
first of these differences is that the PowerPC can program the size of the allocation as well as the type: I/O
or Memory. The second difference is that the actual location allocated by the host is translated to the PowerPC space via secondary registers allowing the PowerPC to maintain its local allocation independent of
PCI mappings.
There are two BARs available in the CPC700 for this function.
CPC700 User’s Manual—Preliminary1-5
Table 1. Address Map
Start
FunctionSub Function
Local Memory/Peripherals
PCI Core Space
Device Configuration
Register (DCR) Space
Internal Peripherals
Local Memory/Peripherals
Boot ROMFFE0 0000FFFF FFFF2MB
1. The Local Memory/Peripheral areas of the memory map may be configured for SDRAM, ROM, or Peripherals.
The PLB to PCI interface core provides a mechanism for connecting PCI devices to the local PowerPC
processor and local memory. This interface is compliant with version 2.1 of the PCI Specification. Features
of this core include:
• 32-bit PCI address bus
• PCI bus clock frequency from 25 to 66MHz
• Supports processor access to all PCI address spaces:
- Single-beat PCI I/O reads and writes
- PCI memory single-beat and prefetch-burst reads and single-beat writes.
- Single-beat PCI configuration reads and writes (type 0 and type 1)
- PCI interrupt acknowledge
- PCI special cycle
• Buffering between PLB and PCI:
- PCI target 32-byte write post buffer
- PCI target 32-byte read prefetch buffer
- PCI master 32-byte write post buffer
1-6CPC700 User’s Manual—Preliminary
- PCI master 64 byte read prefetch buffer
• Error tracking/status
• Internal PCI bus arbiter for up to six external devices at PCI bus speeds up to 33MHz. Internal arbiter
use is optional and may be disabled for systems which employ an external arbiter.
• Support for synchronous and asynchronous clocking between Processor and PCI busses. Support for
synchronous clocking is limited to a 33MHz PCI bus operation.
Memory Controller
The CPC700 Memory Controller provides the local PowerPC processor with a low latency access path to
local memory and external peripherals. In addition, it supports hardware coherent accesses to the processor’s local memory from the PCI bus. Coherency is maintained on PCI accesses to local memory by
snooping the processor’s L1 cache and posted write buffers before allowing the PCI interface to complete
the requested access.
Industry standard 72-pin and 168-pin modules are supported, allowing for a variety of system memory configurations. The memory controller supports up to five banks (five Chip Select outputs). Bank 0 is dedicated to Boot ROM, while banks 1-4 may be programmed to support either SDRAM, ROM, SRAM, or
external peripherals. Up to 512 MBytes per bank, are supported up to a maximum of 2 GBytes. Memory
timings, starting and ending address ranges, and memory addressing modes are programmable. During
reset, Bank 0 defaults to ROM and is enabled while all other banks are disabled.
Synchronous DRAM:
• Up to 4 banks (Bank 0 defaults to ROM).
• 11x9 to 13x11 addressing for SDRAM (2 and 4 bank internal SDRAM chip architecture supported).
• 8 MByte to 512 MByte per bank.
• Programmable timings and address mapping.
• CAS before RAS refresh w/programmable refresh timer.
• Supports hardware coherency.
• Page mode accesses.
• Sync DRAM configuration via mode set command.
• Memory bus operates at same frequency as processor bus.
• 64-bit and 32-bit memory interface options (72-bit or 40-bit if implementing ECC).
• Support for auto-precharge.
• Support for SRAM self-refresh mode (bank 4 only).
ROM/Peripheral:
• ROM, EPROM, SRAM, and Peripherals supported.
• Burst and Non-Burst devices.
• 1-5 banks (shared with SDRAM).
• 8-, 16-, 32-, and 64-bit data bus widths supported.
CPC700 User’s Manual—Preliminary1-7
• Programmable timing per bank.
• Shared address/data/control with SDRAM interface.
• External latch control for shared address bus support.
• Programmable address mapping.
• Peripheral Device pacing with external “Ready”.
ECC
The CPC700 generates, checks, and corrects ECC bits on their way to and from the memory controller.
Write cycles to memory that are less than a word in width require the ECC controller to generate a read
cycle to fetch the appropriate word, modify that word, generate the ECC bits, and write the word back out
to memory.
The ECC controller implements a 64-bit, single-error-correct, double-error-detect, over data and address.
ECC data is 8 bits wide.
• Corrects single-bit data errors.
• Detects double-bit data errors.
• Detects single-bit address errors.
• Detects concurrent single-bit address and single-bit data errors.
• Detects any errors within an aligned nibble.
• Eight check bits support 32- or 64-bit data bus widths.
• Support for mixing ECC and non-ECC DIMMs in the same system.
• ECC checking may be disabled.
UART
The CPC700 contains two UARTs that provide two wire, full duplex serial interfaces to support communications with serial peripheral devices. Each UART is compatible with the NS 16550 and includes a 16-byte
send and a 16-byte receive FIFO. Features of the UART include:
• Compatible with the NS 16550.
• 16-byte send FIFO, 16-byte receive FIFO.
• Full duplex operation.
• Programmable baud rate generator.
• Supports 5- to 8-bit word size, 1/2 stop bits, even/odd/no parity.
• Two wire transmit/receive external interface.
The UARTs perform serial-to-parallel conversion on data characters received from a peripheral device and
parallel-to-serial conversion on data characters received from the processor. The processor can read the
complete status of the UARTs at any time during the functional operation. Status information reported
includes the type and condition of the transfer operations being performed by the UARTs, as well as any
error conditions, such as parity, overrun, framing and break interrupt.
1-8CPC700 User’s Manual—Preliminary
The CPC700 UARTs are functionally identical to NS16450 in character mode (on power up they will be in
this mode). The UARTs can be put into FIFO mode to relieve the processor of excessive software overhead. Here internal FIFOs are activated, allowing 16 bytes (plus three bits per byte of error data in the
RCVR FIFO) to be stored in both receive and transmit modes. The timing reference clock is the CPC700
SYS_CLOCK input divided by 4. This will generally be 8.333MHz in a typical application (PowerPC local
processor operating with a 66MHz bus frequency).
The UARTs include a programmable baud rate generator capable of dividing the timing reference clock by
a divisor of 1 to (2
16
-1), and they produce a 16x clock for driving the internal transmitter logic. This 16x
clock can also be used to drive the receiver logic.
The UARTs have a processor interrupt system. Interrupts can be programmed to the user’s requirements,
minimizing the computing required to handle the communications link.
IIC Bus Interface
The CPC700 provides two fully independent IIC bus interfaces. The IIC bus is a two wire, bidirectional,
open-drain, low speed serial interface. Both the serial clock (SCL) and the serial data (SDA) lines are bidirectional to support multiple bus masters and to mix “fast“ and “slow” devices on the same bus. The
CPC700 IIC interfaces support the following standard and/or enhanced features of the Philips
ductors I
2
C Specification, dated 1995:
• 100 or 400 kHz operation.
• 8-bit data.
• 10- or 7-bit address.
• Slave transmitter and receiver.
• Master transmitter and receiver.
• Multiple bus masters.
®
Semicon-
• Two independent 4x1 byte data buffers.
• 12 memory mapped and fully programmable configuration registers.
• One programmable interrupt request signal.
• Provides full management of all IIC bus protocol
.
General Purpose Timers (GPT)
The General Purpose Timer (GPT) provides a separate time base counter and system timers for the
CPC700. Five capture timers and five compare timers are implemented in the GPT macro. Features of the
GPT core include:
• 32-bit time base.
- Updated once every CPC700 SYS_CLOCK.
• Five capture event timers.
• Five compare timers.
• 10 interrupt outputs, one for each capture and compare timer.
CPC700 User’s Manual—Preliminary1-9
Universal Interrupt Controller (UIC)
The Universal Interrupt Controller (UIC) provides the control, status, and communications necessary
between the various sources of interrupts and the local PowerPC processor. Features of the UIC include
the following:
• Status registers provide both of the following for interrupts.
- Current state of interrupts.
- Current state of all enabled interrupts (masked with Enable register).
Phase Locked Loop (PLL)
Table 2. PLL Usage
PLLInput FrequencyOutput FrequencyUsage
PLL 0 33MHz
PLL 125MHz to 66MHzSame as inputAsync PCI Interface
The CPC700 clocking is controlled by two PLLs that minimize clock skew between the internal latches of
the CPC700 and the external devices in the system. PLL1 is only used when the PCI interface is used in
asynchronous mode. When in synchronous mode, PLL1 is placed in bypass mode via pin strappings, and
the PCI clock input pin must be pulled to ground.
33MHzUART, IIC, and Timers
66MHzAll Other Cores
1-10CPC700 User’s Manual—Preliminary
JTAG
The IEEE 11.49.1 (JTAG) Boundary scan is included to facilitate tester requirements as well as for the
support of board level testing and debug.
The following JTAG commands are supported by the CPC700 JTAG TAP controller:
1.EXTEST
2.SAMPLE/PRELOAD
3.BYPASS
4.CLAMP
5.IDCODE
6.USERCODE
The CPC700 IDCODE value is 14940049. The CPC700 USERCODE value is 0.
Refer to IEEE 1149.1 specification for details on JTAG operation.
CPC700 User’s Manual—Preliminary1-11
1-12CPC700 User’s Manual—Preliminary
Chapter 2. Signal Descriptions
2.1 Processor Interface Signals
Active
Signal Name
LevelI / ODescription
DH[0:31]HighI/O
DL[0:31]HighI/O
DP[0:3] /
REQ[2:5]_N
DP[4:7] /
GNT[2:5]_N
- / LowI/O
- / LowI/O
Data Bus High: Processor Data bus - High 32 bits. The correspondence
of the processor data paths to byte lanes is as follows:
[DH0 - DH7] - Byte Lane 0
[DH8 - DH15] - Byte Lane 1
[DH16 - DH23] - Byte Lane 2
[DH24 - DH31] - Byte Lane 3
Data Bus Low: Processor Data bus - Low 32 bits. The correspondence
of the processor data paths to byte lanes is as follows:
[DL0 - DL7] - Byte Lane 4
[DL8 - DL15] - Byte Lane 5
[DL16 - DL23] - Byte Lane 6
[DL24 - DL31] - Byte Lane 7
Data Parity[0-3] / Request[2-5]: When the internal PCI arbiter is
disabled these signals carry the Processor Data Parity bits [0-3]. Odd
Parity is driven / received on the processor bus. The correspondence of
the Data parity pin to processor data paths is as follows:
DP0 - [DH0 - DH7]
DP2 - [DH8 - DH15]
DP3 - [DH16 - DH23]
DP4 - [DH24 - DH31]
If the internal PCI arbiter is enabled these signals carry the PCI Request
inputs [2-5] providing for a total of 6 PCI Request inputs.
Data Parity[4-7] / Grant[2-5]: When the internal PCI arbiter is disabled
these signals carry the Processor Data Parity bits [4-7]. The
correspondence of the Data parity pin to processor data paths is as
follows:
DP4 - [DL0 - DL7]
DP5 - [DL8 - DL15]
DP6 - [DL16 - DL23]
DP7 - [DL24 - DL31]
If the internal PCI arbiter is enabled these signals carry the PCI Grant
outputs [2-5] providing for a total of 6 PCI Grant outputs.
AP[0:3]-I/O
A[0:31]HighI/O
Address Parity: Odd parity for each of the four bytes of the address
bus. The correspondence of the Address parity pins to processor
address bytes is as follows:
AP0 - [A0 - A7]
AP1 - [A8 - A15]
AP2 - [A16 - A23]
AP3 - [A24 - A31]
Address Bus:
Input: Represents the physical address of the data to be transferred.
Output: Represents the physical address of a snoop operation.
CPC700 User’s Manual—Preliminary2-1
Signal Name
Active
LevelI / ODescription
TT[0:4]HighI/O
TSIZ[0:2]HighI/O
ARTRY_N LowI/O
TBST_NLowI/O
GBL_NLowI/O
TS_NLowI/O
BR_N LowI
BG_N LowO
TA_NLowO
AACK_N LowO
T ransfer Type: Indicates the type of the transfer currently in progress.
Transfer Size: Indicates the data transfer size for the current operation.
Address Retry: This signal is asserted by either the processor or the
CPC700 to indicate that the current address tenure needs to be rerun at
a later time.
T ransfer Bur st: Indicates a burst transfer of f our 64-bit double-words on
the processor bus.
Global: This signal is asserted during snoop operations to indicate to
the processor that it must snoop the transaction.
Transfer Start: Asserted low for one clock cycle to signal a valid
address on the A[0:31] lines. This signal is an input when the local
processor initiates a cycle on the bus and acts as an output when the
CPC700 initiates a snoop cycle on behalf of a PCI master access to
local memory.
Bus Request: Processor bus request from the local processor.
Bus Grant: Grant output indicating that the local processor may assume
mastership of the processor bus.
Transfer Acknowledge: Indicates that a single-beat data transfer has
completed or that a data beat in a burst transfer completed successfully.
Address Acknowledge: Indicates that the address phase of a
transaction has completed.
DBG_N LowOData Bus Grant: Indicates that the local processor may assume
mastership of the processor data bus.
MCP_N LowOMachine Check Pin: Indicates that an error condition has occurred and
that a machine check exception should be taken.
MCP_REQ HighIMachine Check Interrupt Request: Input which may be used by an
external device to signal a machine check to the processor through the
MCP_N signal.
2-2Signal Descriptions
Loading...
+ 238 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.