아무튼 공부중/system programing
[시프] GC from a Performance Standpoint
멍정
2023. 11. 2. 15:58
Time for Moving Valid Pages
그렇다면.
erase하기 위해서 옮기고 지우고 해야하는데 얼마나 시간이 걸릴까?
The Intrinsic Latencies of Flash Memory
대략적으로 읽기는 25ns ~ 65us
쓰기는 300us ~ 1.5ms
지우기는 2ms ~ 5ms
Time for Reclaiming a Victim Block
피해 블록 회수 시간.
읽기 : 40나노초 * 200pages = 8밀리초
쓰기 : 800나노초 * 200pages = 160밀리초
지우기 : 3밀리초 * 1block = 3밀리초
Time for Reclaiming Multiple Victim Blocks
여러개의 블럭을 한 번에 쓰고 지울 수 있지만 쓰고 지우는걸 동시에는 못한다는걸까?
??
Interference between GC and I/O
- GC는 SSD의 자체적인 과정이기 때문에 host system은 아무것도 모른다!
-> 하지만 GC의 write랑 read는 I/O의 write랑 read랑 동일하기 때문에 GC가 실행되고 있다면 I/O요청을 바로 처리할 수 없다.
Victim Block Selection
그렇다면 GC의 overheads를? 줄이기 위해선 어떻게 해야할까?
-> valid pages가 적은 block부터 GC를 처리한다!
-> valid pages가 적은 block순으로 block을 나열한다.