DRAM segmentation modification

From OpenSSDWiki
Viewed 4774 times, With a total of 1 Posts
Jump to: navigation, search

Just Got Here
Threads 3
Posts 4
Hello,

I want to modify 'greedy ftl(v1.0.6)' by modifying DRAM segmentation.

I confirmed that write buffer size is 46MB.

I want to use some of that space(About 20MB) for other purposes.

And I changed the source code as follows.

So, I success compile and install firmware. But, formatting operation (Win7 drive format)was failed.

The weird thing is, Original greedy ftl operated well.

What can i do more?




  1. define RD_BUF_ADDR DRAM_BASE
  2. define RD_BUF_BYTES (NUM_RD_BUFFERS * BYTES_PER_PAGE)

  1. define WR_BUF_ADDR (RD_BUF_ADDR + RD_BUF_BYTES)
  2. define WR_BUF_BYTES (NUM_WR_BUFFERS * BYTES_PER_PAGE - 20971520)

  1. define COPY_BUF_ADDR (WR_BUF_ADDR + WR_BUF_BYTES)
  2. define COPY_BUF_BYTES (NUM_COPY_BUFFERS * BYTES_PER_PAGE)

  1. define FTL_BUF_ADDR (COPY_BUF_ADDR + COPY_BUF_BYTES)
  2. define FTL_BUF_BYTES (NUM_FTL_BUFFERS * BYTES_PER_PAGE)

  1. define HIL_BUF_ADDR (FTL_BUF_ADDR + FTL_BUF_BYTES)
  2. define HIL_BUF_BYTES (NUM_HIL_BUFFERS * BYTES_PER_PAGE)

  1. define TEMP_BUF_ADDR (HIL_BUF_ADDR + HIL_BUF_BYTES)
  2. define TEMP_BUF_BYTES (NUM_TEMP_BUFFERS * BYTES_PER_PAGE)

  1. define BAD_BLK_BMP_ADDR (TEMP_BUF_ADDR + TEMP_BUF_BYTES)
  2. define BAD_BLK_BMP_BYTES (((NUM_VBLKS / 8) + DRAM_ECC_UNIT - 1) / DRAM_ECC_UNIT * DRAM_ECC_UNIT)

  1. define PAGE_MAP_ADDR (BAD_BLK_BMP_ADDR + BAD_BLK_BMP_BYTES)
  2. define PAGE_MAP_BYTES ((NUM_LPAGES * sizeof(UINT32) + BYTES_PER_SECTOR - 1) / BYTES_PER_SECTOR * BYTES_PER_SECTOR)


============= This buffer is added ===============
  1. define PB_BUF_ADDR (PAGE_MAP_ADDR + PAGE_MAP_BYTES)
  2. define PB_BUF_BYTES 20971520

  1. define VCOUNT_ADDR (PB_BUF_ADDR + PB_BUF_BYTES)
  2. define VCOUNT_BYTES ((NUM_BANKS * VBLKS_PER_BANK * sizeof(UINT32) + BYTES_PER_SECTOR - 1) / BYTES_PER_SECTOR * BYTES_PER_SECTOR)

Edited On 3:44:35 PM - Thu, Jul 26th 2012 by Rookie

Clicked A Few Times
Threads 2
Posts 6
1. First change DRAM_BYTES_OTHER to accomodate 20MB of your space, that automatically changes NUM_WR_BUFFERS
2. Then add your PB_BUF_ADDR and PB_BUF_BYTES after PAGE_MAP as you have done.

Refer DAC FTL: it adds more metadata for FTL in similar manner.


Forum >> Jasmine OpenSSD Platform >> Jasmine Firmware



Who's here now Members 0 Guests 0 Bots/Crawler 0


AWC's: 2.5.12 MediaWiki - Stand Alone Forum Extension
Forum theme style by: AWC
Views
Personal tools