35
Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt Controller

Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Embed Size (px)

Citation preview

Page 1: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Samsung ARM S3C4510B

Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt Controller

Page 2: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Product overview

S3C4510B 16/32-bit RISC Cost-effective, high-performance microcontroller solution for Ethern

et-based system S3C4510B built an outstanding CPU core

16/32-bit ARM7TDMI RISC processor TDMI means Thumb mode, Debugger core, faster Multiplier, embed

ded ICE logic

Page 3: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

ARMTDMI Block Diagram

Page 4: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Introduction to AMBA

AMBA: Advanced Microcontroller Bus Architecture Three distinct buses are defined within the AMBA specification:

the Advanced High-performance Bus (AHB) for high-performance, high clock frequency system modules. acts as the high-performance system backbone bus. supports the efficient connection of processors, on-chip memories and off-chip external

memory interfaces with low-power peripheral macrocell functions. the Advanced System Bus (ASB)

for high-performance system modules. suitable for use where the high-performance features of AHB are not requi

red. the Advanced Peripheral Bus (APB).

for low-power peripherals. optimized for minimal power consumption and reduced interface complexit

y to support peripheral functions.

Page 5: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt
Page 6: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Product overview

Integrated the following on-chip functions 8k-byte unified cache/SRAM I2C interface Ethernet controller HDLC GDMA UART Timers Programmable I/O ports Interrupt Controller

Page 7: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Product Overview - Features Architectures

Embedded in Circuit emulator (ICE) Little/big-endian mode supported (Internal architecture is big-endian)

System manager 8/16/32-bit external bus support for ROM/SRAM, flash memory, DRAM, and e

xternal I/O, Support EDO/normal or SDRAM Four-word depth write buffer Cost-effective memory-to-peripheral DMA interface

Unified instruction/data cache Two-way set-associative, unified 8k-byte cache Support for LRU (least recently used) replacement protocol

I2C serial intrface Ethernet controller (10/100-Mbps full-duplex) HDLC DMA controller (2-channel general DMA)

For memory-to-memory, memory-to-UART, UART-to-memory UARTs (two UART with DMA-based or interrupt-based operation) Timers (two 32-bit timers with interval mode or toggle mode operation) Programmable I/O (18 programmable I/O ports) Interrupt controller (21 interrupt sources, includes 4 external interrupt)

Page 8: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt
Page 9: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt
Page 10: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Product overview – special registers

Page 11: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

System manager

Handle the following functions Decide little and big endian for external memory or I/O devices To enable the cache function or not For the external memory operations (6 ROM/SRAM/Flash memory

banks, 4 normal/EDO DRAM or SDRAM banks, and 4 I/O bank) Memory bank locations External bus width access cycle Control signal timing (Ex: RAS, CAS) The size of memory banks to be used for arbitrary address spacing The address resolution for each memory bank base pointer is 64k-bytes

(16 bits) The base address pointer is 10 bits for each memory banks (therefore, t

he total address space for memory bank space is 16 M words)

Page 12: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

System memory map The size and location of each memory

bank is determined by Current bank base pointer

Start address: base pointer << 16 Current bank end pointer (next pointer)

End address: end pointer << 16 -1 The maximum access memory space for

each memory bank is 4 Mbytes The address boundaries of consecutive

banks must not overlap For external I/O banks are defined in a

continuous address space Only set the base pointer of external I/O

bank 0 The start address of external I/O bank 1

is bank 0 start address + 16K After power-on or system reset

All bank pointers except for the next pointer of ROM bank 0 are set to zero

The next pointer and the base pointer of ROM bank 0 are 0x200 and 0x000 (is 32-Mbyte space with a start address of zero

16K

64K

Page 13: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

The memory map after power-on or reset

Page 14: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

System manager registers

Page 15: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

External address translation depends on the width of external memory

Page 16: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Connection of external memory with various data width

When the CPU issues an arbitray address to access an external memory device The CPU compares the upper 10 bits of the issued address with the addre

ss pointers of all memory banks When the bank is identified and the offset has been derived, the correspo

nding bank selection signal (nRCS[5:0] or nECS[3:0]) is generated, and the derived offset is driven to address external memory through the physical address bus

Page 17: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt
Page 18: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Bus arbitration

Page 19: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Control registers: system configuration register (SYSCFG)

Determine the start address of the system manager’s special registers

Start address of internal SRAM Enable the write buffer Cache enable and cache mode Stall enable operation All DRAM banks set to the synchronous DRAM (SDRAM) mode

Page 20: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt
Page 21: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Start address setting If a reset initialize the start address to 3FF0000H The offset address of the ROMCON register is 3014H The physical address for ROMCON is 3FF0000H + 3014H = 3FF3014H

Cache disable/enable To enable or disable the cache Does not have an auto-flush feature (not auto write-back) The memory area that is allocated to DMA access operation must be non-cach

able (don’t maintain cache coherence problem) Internal 8-Kbyte SRAM can be used as a cache area or normal SRAM accordin

g to the CM field (cache mode) The address of internal SRAM is set by internal SRAM base pointer field

Write buffer disable/enable Four programmable write buffer registers To maintain data coherency between the cache and external memory, the S3C

4510B uses a write-through policy

Page 22: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Clock control register (CLKCON)

Page 23: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

System clock

Page 24: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

External I/O access control registers (EXTACON0/1)

Page 25: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Data bus with register (EXTDBWTH)

Allow interface for 8/16/32-bit external ROMs, SRAMs, flash memories, DRAMs, SDRAMs, and external I/O ports

Page 26: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

ROM/SRAM/FLASH control registers (ROMCON)

Has six control registers for ROM, SRAM, and flash memory The external data bus width of ROM/SRAM/Flash bank 0 is determined

by the signal at the B0SIZE[1:0] pins

Page 27: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt
Page 28: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

ROM bank 5 address/data multiplexed bus

The S3C4510B has separate address and data bus S3C4510B supports multiplexed address/data bank (ROM bank 5)

which can support address/data multiplexed bus and 4-data burst access by GDMA. For this feature, you should set the MUX enable bit and wait enable bit of CLKCON register

Four-data burst access by GDMA When FB (4-data burst enable) bit in the GDMACON register, the

GDMA request 4-data burst access. When you access ROM bank 5 by 4-data burst mode, the

multiplexed ROM bank 5bus has only one address phase

Page 29: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

DRAM refresh and external I/O control register

Page 30: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

External I/O bank address map

Page 31: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Unified instruction/data cache

The S3C4510B CPU has a unified internal 8K byte instruction/data cache.

Using cache control register settings, you can use part or all of this cache as internal SRAM

The cache is configured using two-way, set-associative addressing

The replacement algorithm is pseudo-LRU (least recently used) The cache line size is four words (16 bytes) Cache configuration

If cache size is 4 kbyte, two-way set associative instruction/data cache uses a 15-bit tag address for each set (line)

The CS bits is tag memory stores information for cache replacement When a reset occurs, the CS value is 00 (set 0 and 1 is invalid) The first cache fill after the reset, the CS value become 01 (set 0 is

valid, set 1 is invalid)

Page 32: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt
Page 33: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Cache replace operations

Page 34: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt

Cache disable/enable Set SYSCFG[1] to “0” can disable cache

Cache flush operation To flush the cache line

Write a zero to tag memory bits 31 and 30, respectively The 4-Kbyte set 0 RAM area, 4-Kbyte set 1 RAM area, and the 1-Kbyte Tag

RAM area (total 356 words) can be accessed from locations 0x10000000h, 0x10800000h, and 0x11000000h, respectively

Tag RAM is normally cleared by hardware following a power-on reset If the cache or memory bank configuration is changed and the cache is

enabled The application program must clear the Tag RAM area

Non-cacheable area control bit If ADDR[26] in the ROM/SRAM, flash memory, DRAM, or external I/O

bank’s access address is “0”, then the accessed data is cacheable If the ADDR[26] value is “1”, the accessed data is non-cacheable

Page 35: Samsung ARM S3C4510B Product overview System manager Unified instruction/data cache I2C bus controller Ethernet controller 32-bit timers I/O Ports Interrupt