GithubHelp home page GithubHelp logo

ssd-as-sql-engine / cosmos-plus-openssd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cosmos-openssd/cosmos-plus-openssd

1.0 1.0 2.0 97.75 MB

Cosmos OpenSSD integrated with SQLite-raw

License: GNU General Public License v3.0

C 0.47% C++ 0.01% Verilog 2.90% SystemVerilog 0.02% Tcl 0.04% Coq 0.06% VHDL 95.72% HTML 0.78% CSS 0.01% Perl 0.01%

cosmos-plus-openssd's People

Contributors

cosmos-openssd avatar csoyee avatar timtot avatar wurikiji avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

wurikiji csoyee

cosmos-plus-openssd's Issues

[SHARE] ReqTransSliceToLowLevel, share command 처리 로직 추가

가정

  • (targetLBA, sourceLBA) : targetLBA 는 새로이 physical mapping을 해야하는 LBA.

이슈

  • sourceLBA 에 대한 데이터가 Data buffer 에 존재하는 경우에 어떻게 처리할 것인지?
  • sourceLBA 에 physical mapping이 잘 되어 있는 경우 어느 시점에서 targetLBA 에 대한 mapping을 수정하고 command completion을 할 것인지?

[SHARE] VirtualSliceMap 관리

Share 에서는 여러 lsa가 하나의 vsa 에 mapping 될 수 있다. 이 때 v2l mapping 정보를 어떻게 관리해야 하는지?

lsa1, lsa2vsa 에 연결되어 있을 때

  • 하나의 v2l mapping(vsa --> lsa1) 만을 가지고 있는 경우: lsa1 에 대한 write 명령이 들어오면 vsa 가 invalidate 되면서 lsa1 이 접근할 수 없게 된다.
  • 여러개의 v2l mapping을 모두 가지는 경우: memory 많이 쓴다.

[POR] 버퍼 Address 참조 관련

Data buffer address 계산 시에 16K + 256 byte (data + spare region of nand page) 로 접근함

  • LogicalSliceMap 을 NAND 에 쓸 때 별도의 reserved buffer 을 사용하기에는 mapping table 이 커서 바로 logiacalSliceMapPtr address 를 참조해야 하는데 이 때 spare 영역이 buffer 에 쓰여지지 않도록 해야함.

[Share] Completion 시점

[현재 greedyFTL 구현 내용]

  • 기존 Write command 수행 시에 NAND request 에 대한 mapping 정보의 수정은 NAND request 가 완전히 종료(NAND schedular에 의해서 채택되어 NAND에 실제 write 가 수행) 되기 이전에 이뤄진다.

[share command 에 대한 completion 시점]

  • share (lsn1, lsn2) command 에 대한 completion 은 언제 수행해야 하는지?: lsn1 mapping table 정보를 수정하면 command completion 되었다고 보아도 되는지?
  • lsn2 에 대한 데이터가 data buffer 에 존재하는 경우 해당 data 를 NAND 에 flush 하는 과정 수행함. 해당 flush 명령이 종료 된 후에 completion 을 수행해야 하는지?

[POR] Read Fail

(현상) mapping table 을 NAND write 한 후 read 하는 과정에서 read failed 발생.

Read TransferFAIL on ~~ / status Report 1FFC1

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.