Comments (8)
현재 Data write 과정은 다음과 같다.
- IO_NVM_WRITE command (이하 newCommand)를 받음
- LRU 방식에 따라 Data buffer 에서 데이터 하나를 Eviction (실제 NAND write request를 만듦) 함
- newCommand 에 대한 DMA request를 보내고 처리가 되면 completion
- Eviction 함수에서 eviction이 되는 대상 lba에 대해서 new virtualSliceAddr 를 할당하면서 l2v, v2l mapping 정보를 수정한다.
from cosmos-plus-openssd.
(무시가능ㅎㅎ)
data buffer에 있는 sourceLBA에 대해 physical block address를 미리 reserve해놓으면 어떨까요?
from cosmos-plus-openssd.
개인적인 생각으로는 Physical address 미리 reserve 하면 아래 고려사항이 있을 것 같습니다 ㅎ_ㅎ
- targetLBA에 대해 read 명령이 왔을 때 어떻게 처리할지? (해당 physical address 할당 되어 있어서 NAND 접근했는데 데이터가 없는 상황이 생김)
- 데이터가 쓰여지지 않았지만 특정 logical address에 reserved physical address에 대해서 SSD 내부에서 고려해야할 사항이 추가로 생기지 않을까? - GC 할 때 해당 페이지가 속해 있는 block이 victim이 된다면 어떻게 처리해야 하는지? (data가 실제 안써있으니까 mapping 정보만 수정?)
from cosmos-plus-openssd.
@Csoyee
고견 감사합니다.
- 미리 reserve한다는 것은 바로 nand에 쓰는 것이 아니라 이 physical addr에 쓸거다라고 찜하는 의미였습니당. ecc 비트 일부를 활용해서 아직 "예약"상태를 가르키면 메모리에서 원래 sourceLBA를 가르키도록 하면 될것 같습니당
- 역시 ecc 비트 일부를 활용해서 gc때도 policy를 수정하면 될것 같은 느낌입니다.
ps. 말만해서 죄송합니다.ㅎㅎ
from cosmos-plus-openssd.
Memory에 targetLBA --> sourceLBA 정보를 가지고 있으면 physical page reservation 하지 않고 sourceLBA가 data buffer에 존재하면 sourceLBA에 대한 DMA read command를 보내면 될 것 같습니다
- targetLBA -> sourceLBA 정보 mapping table 에 유지하면 memory 사용량이 높음
- 방안, share command 에 대한 LOG (atomicity 보장을 위해서 어쩌피 필요할 것으로 보임) 를 남기고 LOG 확인하기 {==> 문제점, read command 마다 LOG 를 확인하면 overhead가 되지 않을까}
from cosmos-plus-openssd.
+)
- 두 개의 lsn 에 의해서 share 되고 있는 psn 의 데이터가 write/read 명령에 의해 buffer 로 올라가는 경우.
from cosmos-plus-openssd.
(교수님 comment)
- Share 명령이 내려왔을 때 lsn2 에 대한 data 가 buffer 에 있으면 NAND로 flush.
from cosmos-plus-openssd.
(교수님 comment)
- Share 명령이 내려왔을 때 lsn2 에 대한 data 가 buffer 에 있으면 NAND로 flush.
일단 이렇게 구현 진행 합니다!!
from cosmos-plus-openssd.
Related Issues (5)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cosmos-plus-openssd.