GithubHelp home page GithubHelp logo

Comments (8)

Csoyee avatar Csoyee commented on June 19, 2024

현재 Data write 과정은 다음과 같다.

  1. IO_NVM_WRITE command (이하 newCommand)를 받음
  2. LRU 방식에 따라 Data buffer 에서 데이터 하나를 Eviction (실제 NAND write request를 만듦) 함
  3. newCommand 에 대한 DMA request를 보내고 처리가 되면 completion
  • Eviction 함수에서 eviction이 되는 대상 lba에 대해서 new virtualSliceAddr 를 할당하면서 l2v, v2l mapping 정보를 수정한다.

from cosmos-plus-openssd.

JonghyeokPark avatar JonghyeokPark commented on June 19, 2024

(무시가능ㅎㅎ)
data buffer에 있는 sourceLBA에 대해 physical block address를 미리 reserve해놓으면 어떨까요?

from cosmos-plus-openssd.

Csoyee avatar Csoyee commented on June 19, 2024

@JonghyeokPark

개인적인 생각으로는 Physical address 미리 reserve 하면 아래 고려사항이 있을 것 같습니다 ㅎ_ㅎ

  1. targetLBA에 대해 read 명령이 왔을 때 어떻게 처리할지? (해당 physical address 할당 되어 있어서 NAND 접근했는데 데이터가 없는 상황이 생김)
  2. 데이터가 쓰여지지 않았지만 특정 logical address에 reserved physical address에 대해서 SSD 내부에서 고려해야할 사항이 추가로 생기지 않을까? - GC 할 때 해당 페이지가 속해 있는 block이 victim이 된다면 어떻게 처리해야 하는지? (data가 실제 안써있으니까 mapping 정보만 수정?)

from cosmos-plus-openssd.

JonghyeokPark avatar JonghyeokPark commented on June 19, 2024

@Csoyee
고견 감사합니다.

  1. 미리 reserve한다는 것은 바로 nand에 쓰는 것이 아니라 이 physical addr에 쓸거다라고 찜하는 의미였습니당. ecc 비트 일부를 활용해서 아직 "예약"상태를 가르키면 메모리에서 원래 sourceLBA를 가르키도록 하면 될것 같습니당
  2. 역시 ecc 비트 일부를 활용해서 gc때도 policy를 수정하면 될것 같은 느낌입니다.

ps. 말만해서 죄송합니다.ㅎㅎ

from cosmos-plus-openssd.

Csoyee avatar Csoyee commented on June 19, 2024

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.

Csoyee avatar Csoyee commented on June 19, 2024

+)

  • 두 개의 lsn 에 의해서 share 되고 있는 psn 의 데이터가 write/read 명령에 의해 buffer 로 올라가는 경우.

from cosmos-plus-openssd.

Csoyee avatar Csoyee commented on June 19, 2024

(교수님 comment)

  • Share 명령이 내려왔을 때 lsn2 에 대한 data 가 buffer 에 있으면 NAND로 flush.

from cosmos-plus-openssd.

Csoyee avatar Csoyee commented on June 19, 2024

(교수님 comment)

  • Share 명령이 내려왔을 때 lsn2 에 대한 data 가 buffer 에 있으면 NAND로 flush.

일단 이렇게 구현 진행 합니다!!

from cosmos-plus-openssd.

Related Issues (5)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.