Skip to content

ETOgaosion/nemu

Repository files navigation

ICS2022 Programming Assignment

This project is the programming assignment of the class ICS (Introduction to Computer System) in Department of Computer Science and Technology, Nanjing University.

For the guide of this programming assignment, refer to https://nju-projectn.github.io/ics-pa-gitbook/ics2022/

This repo use riscv64 arch.

Progress (2023):

  • pa1: sdb [8.7]
  • pa2: simple machine [8.26]
    • pa2-1: decoder [8.11]
    • pa2-2: infrastructure(2), all tess pass [8.25]
      • advanced itrace: show register value
      • mtrace
      • ftrace
      • diff test
    • pa2-3: IOE [8.26]
      • serial
      • timer
      • dtrace
      • keyboard
      • VGA
      • audio
  • pa3: batch OS [8.30]
    • pa3-1: hardware support [8.27]
      • csr registers and operations
      • trap and context switch
      • etrace
    • pa3-2: user programs and syscalls [8.28]
      • load user programs
      • syscall: exit, yield, write(0/1), brk
    • pa3-3: FS, VFS, devices [8.30]
      • FS operations
      • IOE: serial, timer, keyboard, vedio
      • TODO: other VFS directories
  • pa4: TDM OS (Time-Division Multiplexing) [9.12]
    • pa4-1: multiplexing [9.8]
      • context switch
      • kernel threads and user processes
      • all tests pass
    • pa4-2: VME [9.11]
      • VME Support
        • THIS IS THE MOST DIFFICULT PART, for more info like suggestions and bug record, check ./doc
      • S/U mode support, stack context switch
    • pa4-3: TIE [9.12]
      • time-division multiplexing
      • preempt multiplexing

Beyond normal contents, TODOs:

  • Optimization:
    • rv64 program instruction analysis, adjust decoding order [+11 pts]
    • refactor decode operation with hash decoder and force jump table [+10 pts]
      • this is as far as we can do, cannot be equal to 1

Documentation is in ./doc

About

NEMU emulator from NJU-ProjectN, ICS PA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •