PL310 Cache Controller Technical Reference Manual

Revision: r0p0

Table of Contents

About this manual
Product revision status
Intended audience
Using this manual
Additional reading
Feedback on this product
Feedback on this manual
1. Introduction
1.1. About the cache controller
1.1.1. Features
1.2. Typical system configuration
1.3. Product revisions
2. Functional Overview
2.1. AXI master and slave interfaces
2.1.1. Clock enable usage model in the cache controller AXI interfaces
2.2. Cache attributes
2.3. Cache operation
2.3.1. Shared attribute
2.3.2. Force write allocate
2.3.3. Exclusive cache configuration
2.4. AXI locked and exclusive accesses
2.5. Master and slave port IDs
2.6. Exported AXI control
2.7. TrustZone support in the cache controller
2.8. Power modes
2.8.1. Run mode
2.8.2. Standby mode
2.8.3. Dormant mode
2.8.4. Shutdown mode
2.9. Implementation details
2.9.1. Disabled operation
2.9.2. Store buffer operation
2.9.3. Cache configurability
2.9.4. Hazards
2.9.5. External error support for L3 memory
2.9.6. Cache event monitoring
2.9.7. Cache interrupts outputs
2.9.8. Parity and RAM error support
2.9.9. Error signalling and handling
2.9.10. Cacheable read requests on AXI slave ports
2.9.11. Write access from the store buffer
2.9.12. AXI master or store buffer allocation requests
2.9.13. Clean maintenance
2.9.14. Invalidate maintenance operation
2.9.15. Clean and Invalidate maintenance operation
2.10. MBIST support
2.11. RAM organization
2.11.1. Data RAM
2.11.2. Tag RAM
2.11.3. Parity RAM
2.11.4. RAM bus usage versus cache associativity and way size
3. Programmer’s Model
3.1. About the programmer’s model
3.1.1. Initialization sequence
3.2. Summary of registers
3.3. Register descriptions
3.3.1. Register 0, Cache ID Register
3.3.2. Register 0, Cache Type Register
3.3.3. Register 1, Control Register
3.3.4. Register 1, Auxiliary Control Register
3.3.5. Register 2, Event Counter Control Register
3.3.6. Register 2, Event Counter Configuration Registers
3.3.7. Register 2, Event Counter Value Registers
3.3.8. Register 2, Interrupt Registers
3.3.9. Register 7, Cache Maintenance Operations
3.3.10. Register 9, Cache Lockdown
3.3.11. Register 12, Address Filtering
3.3.12. Register 15, Debug Register
A. Signal Descriptions
A.1. Clock and reset
A.2. Configuration
A.3. Slave and master ports
A.3.1. Slave port 0
A.3.2. Slave port 1
A.3.3. Master port 0
A.3.4. Master port 1
A.4. RAM interface
A.4.1. Data RAM interface
A.4.2. Tag RAM interface
A.5. Cache event monitoring
A.6. Cache interrupt
A.7. MBIST interface
B. AC Parameters
B.1. Reset and configuration signal timing parameters
B.2. Slave port 0 I/O signal timing parameters
B.3. Slave port 1 I/O signal timing parameters
B.4. Master port 0 I/O signal timing parameters
B.5. Master port 1 I/O signal timing parameters
B.6. RAMs signal timing parameters
B.6.1. Data RAM
B.6.2. Tag RAM
B.7. Event monitor signal timing parameters
B.8. Cache interrupt ports signal timing parameters
B.9. MBIST interface signal timing parameters
C. Timing Diagrams
C.1. Single read hit transaction
C.2. Single read miss transaction
C.3. Single noncacheable read transaction
C.4. Outstanding read hit transaction
C.5. Hit under miss read transactions
C.6. Single bufferable write transaction
C.7. Single nonbufferable write transaction

List of Tables

1.1. Typical memory sizes and access times
1.2. RTL options
1.3. Master port transactions for a two master port system
2.1. AXI master interface attributes
2.2. AXI slave interface attributes
2.3. AWCACHE and ARCACHE definitions
2.4. Cache operation descriptions
2.5. Master port ID values for writes
2.6. Master port ID values for reads
2.7. Exported master ports AXI control signals
2.8. Cache controller cache configurability
2.9. Error responses for all combinations of L3 access
2.10. Event pins
2.11. Interrupts
2.12. Cacheable read requests on AXI slave ports
2.13. Write-through/write-back write access from store buffer
2.14. AXI M0 and AXI M1 masters or store buffer allocation requests
2.15. Clean maintenance operation cases
2.16. Invalidate maintenance operation cases
2.17. Clean and Invalidate maintenance operation cases
3.1. Cache controller register map
3.2. Summary of cache controller registers
3.3. Cache ID Register bit assignments
3.4. Cache Type Register bit assignments
3.5. Control Register bit assignments
3.6. Auxiliary Control Register bit assignments
3.7. Event Counter Control Register bit assignments
3.8. Event Counter Configuration Register bit assignments
3.9. Event Counter 1 Value Register bit assignments
3.10. Interrupt Mask Register bit assignments
3.11. Masked Interrupt Status Register bit assignments
3.12. Raw Interrupt Status Register bit assignments
3.13. Interrupt Clear Register bit assignments
3.14. Maintenance operations
3.15. Cache maintenance operations
3.16. Cache lockdown
3.17. Lockdown by Line Enable Register bit assignments
3.18. Unlock All Lines Register bit assignments
3.19. Data Lockdown 0 Register, offset 0x900
3.20. Instruction Lockdown 0 Register, offset 0x904
3.21. Data Lockdown 1 Register, offset 0x908
3.22. Instruction Lockdown 1 Register, offset 0x90C
3.23. Data Lockdown 2 Register, offset 0x910
3.24. Instruction Lockdown 2 Register, offset 0x914
3.25. Data Lockdown 3 Register, offset 0x918
3.26. Instruction Lockdown 3 Register, offset 0x91C
3.27. Data Lockdown 4 Register, offset 0x920
3.28. Instruction Lockdown 4 Register, offset 0x924
3.29. Data Lockdown 5 Register, offset 0x928
3.30. Instruction Lockdown 5 Register, offset 0x92C
3.31. Data Lockdown 6 Register, offset 0x930
3.32. Instruction Lockdown 6 Register, offset 0x934
3.33. Data Lockdown 7 Register, offset 0x938
3.34. Instruction Lockdown 7 Register, offset 0x93C
3.35. Address Filtering Start Register bit assignments
3.36. Address Filtering End Register bit assignments
3.37. Debug Control Register bit assignments
A.1. Clock and reset signals
A.2. Configuration signals
A.3. Slave port 0 signals
A.4. Slave port 1 signals
A.5. Master port 0 signals
A.6. Master port 1 signals
A.7. Data RAM interface signals
A.8. Tag RAM interface
A.9. Cache event monitoring signals
A.10. Cache Interrupt signals
A.11. MBIST interface signals
B.1. Reset and configuration
B.2. Slave port 0 I/O
B.3. Slave port 1 I/O
B.4. Master port 0 I/O
B.5. Master port 1 I/O
B.6. Data RAM
B.7. Tag RAM
B.8. Event monitor
B.9. Cache interrupt ports
B.10. MBIST interface signal

Proprietary Notice

Words and logos marked with ® or ™ are registered trademarks or trademarks of ARM Limited in the EU and other countries, except as otherwise stated below in this proprietary notice. Other brands and names mentioned herein may be the trademarks of their respective owners.

Neither the whole nor any part of the information contained in, or the product described in, this document may be adapted or reproduced in any material form except with the prior written permission of the copyright holder.

The product described in this document is subject to continuous developments and improvements. All particulars of the product and its use contained in this document are given by ARM in good faith. However, all warranties implied or expressed, including but not limited to implied warranties of merchantability, or fitness for purpose, are excluded.

This document is intended only to assist the reader in the use of the product. ARM Limited shall not be liable for any loss or damage arising from the use of any information in this document, or any error or omission in such information, or any incorrect use of the product.

Where the term ARM is used it means “ARM or any of its subsidiaries as appropriate”.

Confidentiality Status

This document is Non-Confidential. The right to use, copy and disclose this document may be subject to license restrictions in accordance with the terms of the agreement entered into by ARM and the party that ARM delivered this document to.

Product Status

The information in this document is final, that is for a developed product.

Revision History
Revision A30 November 2007First release for r0p0
Copyright © 2007 ARM Limited. All rights reserved.ARM DDI 0246A