cache: don't allow dirty data in the i-cache
Review Request #1284 - Created July 2, 2012 and submitted
| Information | |
|---|---|
| Tony Gutierrez | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
Changeset 9086:8a09d8787f5a --------------------------- cache: don't allow dirty data in the i-cache removes the optimization that forwards an exclusive copy to a requester on a read, only for the i-cache. this optimization isn't necessary because we typically won't be writing to the i-cache.
Added i-cache invalidation instruction for ARM. These instructions invalidate i-cache entries without writing them back, because it is not expected for there to be dirty data in the caches. While invalidating I would get assert failures and/or the program would hang due to dirty data in the i-cache being invalidated. Doing this fixed those problems. Ran BBench to completion with this fix and inv instructions in place. This is a necessary step towards adding the inv instructions for ARM.
Summary: |
|
||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description: |
|
||||||||||||||||||||||||
Diff: |
Revision 2 (+1 -1) |
looks reasonable to me.
Testing Done: |
|
|---|
It looks reasonable. I am not entirely sure about the distinction of the packets though. What happens for shared I and D? Would it not be better to make it a property of the cache rather than the packet, i.e. a parameter on the class?
Ship It!
Description: |
|
||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 3 (+3 -1) |
Description: |
|
||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 4 (+4 -2) |
Ship It!
