일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- while
- github
- instruction
- XML
- DS
- Class
- DATAPATH
- control
- Pipelining
- MIPS
- javascript
- web
- Java
- CSS
- DB
- react
- DoM
- mysql
- data structure
- MacOS
- for
- Linux
- system
- php
- architecture
- html
- Algorithm
- computer
- python
- function
- 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 |