ICE3028: Embedded Systems Design (Spring 2013)

[Projects]

  • Project #2
    • Final presentation
      • 6/11 Tue, 85529, 16:30 ~
    • Experimental environment
      • Total capacity (for host): 8GB - Host에게 보여주는 디바이스의 총 용량
      • Spare block : 256 MB - Total capacity외에 log block 등 FTL을 위해 사용하는 공간
      • Bad block remapping은 위의 두가지 공간을 제외한 나머지를 사용하면 됩니다.
    • 설정방법
      • 아래와 같이 상수값을 바꾸어 준다.
      • include/jasmine.h
        • #define VBLK_PER_BANK (256 + 8)
        • #define SPARE_VBLKS_PER_BANK (8)
        • #define NUM_LSECTORS (16777216)
    • Tracer : Tracer.zip
      • Pleace use this program at Linux environment
      • GC 등의 발생을 빠르게 하기 위하여 Jasmine 보드의 전원이 켜지면 format 부분에서 전체 PAGE에 걸쳐 write를 수행하도록 하여야 합니다.
    • Traces
    • Team list
      • 우승진, 박성보: KAST (★★)
      • 우정재, 김진원: Delta-FTL (★★★★)
      • 권준길, 권세준: CFTL (★★★)
      • 김재주, 서경원: KAST+a (★★★)
      • 최광헌, 김재혁: CFTL (★★★) --> DFTL (★)
      • 강두석, 최어빈: Kernel-based DAC + compression (★★★★★)
  • Project #1 : Log Block FTL
    • Project 1 Score
    • 제출 여부 메일 확인 해주세요
      • 제출 확인을 하는 즉시 확인 메일을 답신해드립니다.
      • 실행파일을 같이 압축해서 보낸 경우 메일이 차단될 수 있습니다.
      • 제출을 했는데도 메일이 안왔다면 build로 생성된 파일들을 제거한 뒤 압축해서 다시 보내주세요
    • I/O meter관련
      • I/O meter동작이 안되는 경우에 대한 질문이 잦습니다.
      • 호스트에서 Jasmine 보드를 인식하려면 0번 lba에 대하여 read요청이 들어옵니다.
      • 이 read 요청은 write를 하지 않은 곳에 대한 것입니다.
      • 대부분의 경우는 read에서 g_ftl_read_buf_id를 제대로 처리하지 않았기 때문일 가능성이 큽니다.
      • ftl read buffer에 대한 정보는 Dummy_FTL를 참조하세요
    • Test file : ftl_test.zip
      • 0. Unzip ftl_test.zip into ./logblock_ftl directory
      • 1. Open ./build_gnu_win/Makefile and modify #16 line "SRC = ftl.c .." to "SRC = ftl_test.c ftl.c ..".
      • 2. Set OPTION_FTL_TEST macro in Jasmine.h as 1.
      • 3. Allocate 4MB DRAM for test cases. Write following codes into ./logblock_ftl/ftl.h (XXX_BUF_ADDR is the last allocated DRAM address) :
        • #define FTL_TEST_ADDR (XXX_BUF_ADDR + XXX_BUF_BYTES)
        • #define FTL_TEST_BYTES (4 * 1024 * 1024) // 4MB
      • 4. Please set your log blocks per bank as 3. (less than 10)
    • Due: May 5, 11:59PM
    • Specification: project1.pdf
    • Firmware: OpenSSD-1.1.1.zip
    • Notice
      • mem_set_dram() and mem_set_sram() require 4-Byte value for the second argument of these functions
      • mem_set_dram() and _mem_set_dram() require the start address and the number of bytes that are multiple of 128-byte
      • SPARE_VBLKS_PER_BANK is defined in "./include/jasmine.h" header file