Arm Community
Site
Search
User
Site
Search
User
Groups
Arm Research
DesignStart
Education Hub
Graphics and Gaming
High Performance Computing
Innovation
Multimedia
Open Source Software and Platforms
Physical
Processors
Security
System
Software Tools
TrustZone for Armv8-M
中文社区
Blog
Announcements
Artificial Intelligence
Automotive
Healthcare
HPC
Infrastructure
Innovation
Internet of Things
Machine Learning
Mobile
Smart Homes
Wearables
Forums
All developer forums
IP Product forums
Tool & Software forums
Pelion IoT Platform
Support
Open a support case
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
Developer Community
IP Products
Processors
Jump...
Cancel
Processors
Classic processors forum
ARM1176JZ-S, cache confg: effective cache size calculation
Blogs
Forums
Videos & Files
Help
Jump...
Cancel
New
State
Accepted Answer
+1
person also asked this
people also asked this
Replies
11 replies
Subscribers
2 subscribers
Views
5117 views
Users
0 members are here
ARM1176JZ-S
Arm11
Related
ARM1176JZ-S, cache confg: effective cache size calculation
Offline
deven deven
over 7 years ago
Note: This was originally posted on 22nd February 2009 at
http://forums.arm.com
Hello,
1) I am using ARM1176JZ-S core with WinCE Platform. The cache memory is configured as follows
DCache: 128 sets, 4 ways, 32 line size, 16384 size
ICache: 128 sets, 4 ways, 32 line size, 16384 size
Now I want to know the effective data cache size, I mean the total data from the main memory
could be cached and accessed without cache trashing within a function.
2) Is the cache set size(128 sets) and cache block/segment(of other processors) size are same?
Kindly reply this mail, thanks in advance
Regards,
Deven
Top replies
Offline
Peter Harris
over 7 years ago
+1
verified
Note: This was originally posted on 9th March 2009 at http://forums.arm.com Assuming that your QUERY_START and QUERY_END macros are calling a system function to get the time stamp, I would think that...
Parents
0
Offline
Simon Craske
over 7 years ago
Note: This was originally posted on 25th February 2009 at
http://forums.arm.com
Deven,
From the data you have provided, the data-cache is 128 lines of 4 way set associative with each way containing 32 bytes per line; multiplying all these numbers together produces the 16384 byte total size. A 32kB cache on this implementation would have twice the number of lines (256) and a 64kB variant would have twice the number of lines again (512).
The line and byte offset within the line is a fixed mapping for any particular byte in memory, however, the byte may live in any of the 4 ways (hence the cache is 4-way set associative). The choice of way is made when the data is first fetched into the cache based on a victim way pointer, which in turn is based on some replacement algorithm (psuedo random, round-robin etc.).
Given this information, it is theoretically possible for this data-cache to hold 16kB of sequential data starting from any cache line size aligned memory address, though achieving this will be dependent on interactions between code and the cache replacement algorithm.
The 4kB number you appear to be refering to is the size of a single way of the cache (128 lines * 32 bytes per line). This, assuming you don't have any literal loads in your code, is the size of a contiguous, cache line size aligned, block of data you could repeatedly read (in a loop) where it should be impossible for any evictions to occur after the first time through the loop (each group of 32-bytes will be in a separate line, though not necessarily in the same way).
hth
s.
Cancel
Up
0
Down
Reply
Accept answer
Cancel
Reply
0
Offline
Simon Craske
over 7 years ago
Note: This was originally posted on 25th February 2009 at
http://forums.arm.com
Deven,
From the data you have provided, the data-cache is 128 lines of 4 way set associative with each way containing 32 bytes per line; multiplying all these numbers together produces the 16384 byte total size. A 32kB cache on this implementation would have twice the number of lines (256) and a 64kB variant would have twice the number of lines again (512).
The line and byte offset within the line is a fixed mapping for any particular byte in memory, however, the byte may live in any of the 4 ways (hence the cache is 4-way set associative). The choice of way is made when the data is first fetched into the cache based on a victim way pointer, which in turn is based on some replacement algorithm (psuedo random, round-robin etc.).
Given this information, it is theoretically possible for this data-cache to hold 16kB of sequential data starting from any cache line size aligned memory address, though achieving this will be dependent on interactions between code and the cache replacement algorithm.
The 4kB number you appear to be refering to is the size of a single way of the cache (128 lines * 32 bytes per line). This, assuming you don't have any literal loads in your code, is the size of a contiguous, cache line size aligned, block of data you could repeatedly read (in a loop) where it should be impossible for any evictions to occur after the first time through the loop (each group of 32-bytes will be in a separate line, though not necessarily in the same way).
hth
s.
Cancel
Up
0
Down
Reply
Accept answer
Cancel
Children
No data
More questions in this forum
By title
By date
By reply count
By view count
By most asked
By votes
By quality
Descending
Ascending
All recent questions
Unread questions
Questions you've participated in
Questions you've asked
Unanswered questions
Answered questions
Questions with suggested answers
Questions with no replies
Answered
Program Counter, Stack Pointer and Link Register Status During an Interrupt Service in ARM based Processors
+1
3463
views
2
replies
Latest
over 1 year ago
by
Aman007kc
Answered
ARM Assembly how to print numbers instead of their ascii representation of that number
+1
Armv6
Arm Assembly Language (ASM)
5897
views
2
replies
Latest
over 1 year ago
by
Kanan Jarrus
Not Answered
Why there is no translation tables concatenation for stage 1 of VA translation?
0
1490
views
0
replies
Started
over 1 year ago
by
Uzi Shvadron
Answered
Arm Cortex-A8 program flow prediction
+1
Armv7-A
Cache
Out-of-order Execution
Cortex-A
1788
views
1
reply
Latest
over 1 year ago
by
Andy Neil
Suggested Answer
Shifted binary generated by arm-none-eabi-objcopy
0
GCC
Cortex-A
Cortex-M
Baremetal
4949
views
8
replies
Latest
over 1 year ago
by
en2senpai
<
>
View all questions in Classic processors forum