Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
huaicheng committed Oct 11, 2019
1 parent d6a2406 commit 9f02b92
Showing 1 changed file with 16 additions and 31 deletions.
47 changes: 16 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
```
______ ______ __ __ _ _
______ ______ __ __ _ _
| ____| ____| \/ | | | |
| |__ | |__ | \ / | | | |
| __| | __| | |\/| | | | |
Expand Down Expand Up @@ -41,13 +41,13 @@ Installation
dependencies can be installed by following instructions below:

```bash
cd $femu
mkdir build-femu
# Switch to the FEMU building directory
cd femu/build-femu
# Recent commits are not safe for public use yet ..
git checkout ba56426057f57f7eab839e860c7672d5289e25c5
cd build-femu
# Copy femu script
cp ../femu-scripts/femu-copy-scripts.sh .
./femu-copy-scripts.sh .
cp ../femu-scripts/femu-copy-scripts.sh .
./femu-copy-scripts.sh .
# only Debian/Ubuntu based distributions supported
sudo ./pkgdep.sh
```
Expand All @@ -59,6 +59,13 @@ Installation
```
FEMU binary will appear as ``x86_64-softmmu/qemu-system-x86_64``

Tested environment:

```
OS: Ubuntu 16.04.5 LTS
gcc: 5.4.0
```

3. Prepare the VM image (For performance reasons, we suggest to use a server
version guest OS [e.g. Ubuntu Server 16.04, 14.04])

Expand Down Expand Up @@ -135,30 +142,10 @@ Run FEMU

### 2. Run FEMU as an emulated blackbox SSD (device-managed FTL) ###

Under this mode, each emulated NVMe SSD needs configuration files in the format
of vssd1.conf, vssd2.conf, ..., etc. (which should correspond to your virtual
NVMe image file names: vssd1.raw, vssd2.raw, etc.) to run.

The key configuration options are explained below:

It configures an emulated SSD with 8 channels and there are 8 chips on each
channel. The total SSD size is 1GB.

PAGE_SIZE 4096 // SSD page size in bytes
PAGE_NB 256 // # of pages in one block
SECTOR_SIZE 512 // # sector size in bytes
FLASH_NB 64 // total # of NAND chips
BLOCK_NB 16 // # of blocks in one chip

REG_WRITE_DELAY 40000 // channel transfer time for one page (program) in nanosecond
CELL_PROGRAM_DELAY 800000 // NAND page program latency in nanosecond
REG_READ_DELAY 60000 // NAND page read latency in nanosecond
CELL_READ_DELAY 40000 // channel transfer time for one page (read) in nanosecond
BLOCK_ERASE_DELAY 3000000 // Block erase latency in nanosecond
CHANNEL_NB 8 // # of channels
GC_MODE 2 // GC blocking mode, see hw/block/ssd/common.h for definition
**TODO:** currently blackbox SSD parameters are hard-coded in
`hw/block/femu/ftl/ftl.c`, please change them accordingly and re-compile FEMU.

After the FEMU configuration file is ready, boot the VM using the following
Boot the VM using the following
script:

```Bash
Expand Down Expand Up @@ -190,12 +177,10 @@ benchmarking.

Tuning
------
To Add ...


Debugging
---------
To Add ...

FEMU Design
-----------
Expand Down

0 comments on commit 9f02b92

Please sign in to comment.