일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- architecture
- DB
- MacOS
- function
- system
- MIPS
- while
- control
- Java
- Pipelining
- DATAPATH
- computer
- DS
- instruction
- html
- web
- python
- php
- XML
- github
- for
- react
- Algorithm
- DoM
- CSS
- Class
- mysql
- Linux
- data structure
- javascript
- Today
- Total
YYYEJI
[MIPS] Data Mapping(2-Set Associate) 본문
Set Associate Cache란?
Lower lever(ex. HD, memory)에서 data를 가져(loading)올 때 data가 들어갈 (upper level의)주소가 정해져 있는 operation입니다.
Direct mapped랑 달리 set에서는 여러 개의 block이 set의 개수만큼 들어갈 수 있으며,
Direct mapped는 다른 유효한 data가 들어오기 위해 현재 있는 cache의 값을 미뤄버려야 하지만
set associate는 그럴 필요가 없다는 것이 장점입니다.
Data가 들어갈 자리는 아래와 같은 공식으로 구할 수 있습니다.
Location in the Cache = (Block address) modulo (Number of Sets in the Cache)
Index - Data가 들어갈 upper level의 주소
Tag - 현재 upper level에 존재하는 데이터의 유효성
Data - Data
Direct mapped에서도 언급했듯이 아래와 같이 cache가 존재한다고 가정했을 때 Index는 위치 정보일 뿐 cache는 아닙니다.
Index (Set) |
Tag | Data | Tag | Data | Tag | Data | Tag | Data |
0 | ||||||||
1 |
0000(0)
0110(6)
0000(0)
0100(4)
1001(9)
2-Set associate에서는 마지막 한 bit가 data가 들어갈 주소(index)입니다.
Index | Tag | Data | Tag | Data | Tag | Data | Tag | Data |
0 | 000 | Memory[1] | ||||||
1 |
0000(0)
0110(6)
0000(0)
0100(4)
1001(9)
Index | Tag | Data | Tag | Data | Tag | Data | Tag | Data |
0 | 000 | Memory[0] | 011 | Memory[6] | ||||
1 |
0000(1)
0110(6)
0000(0)
0100(4)
1001(9)
Data가 존재하기 때문에 hit입니다.
Index | Tag | Data | Tag | Data | Tag | Data | Tag | Data |
0 | 000 | Memory[0] | 011 | Memory[6] | ||||
1 |
0000(0)
0110(6)
0000(0)
0100(4)
1001(9)
Index | Tag | Data | Tag | Data | Tag | Data | Tag | Data |
0 | 000 | Memory[0] | 011 | Memory[6] | 010 | Memory[4] | ||
1 |
0000(0)
0110(6)
0000(0)
0100(4)
1001(9)
Index | Tag | Data | Tag | Data | Tag | Data | Tag | Data |
0 | 000 | Memory[0] | 011 | Memory[6] | 010 | Memory[4] | ||
1 | 100 | Memory[9] |
◡̈
'Computer architectures' 카테고리의 다른 글
[MIPS] Write through vs Write back (0) | 2022.12.17 |
---|---|
[MIPS] Cache Read Miss (0) | 2022.12.17 |
[MIPS] Data Mapping(Fully Associate) (0) | 2022.12.17 |
[MIPS] Data Mapping(Direct Mapped) (0) | 2022.12.17 |
[MIPS] block, hit, miss (Memory Hierarchy) (0) | 2022.12.03 |