Skip to content

Commit

Permalink
docs: add os challenge
Browse files Browse the repository at this point in the history
  • Loading branch information
howardlau1999 committed Sep 12, 2023
1 parent 8a5a1a0 commit e237b45
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
3 changes: 3 additions & 0 deletions docs/labs/challenge1-running-os.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# 挑战实验一 运行操作系统

尝试在 CPU 上运行 [egos-2000](https://github.com/yhzhang0128/egos-2000),这是一个 2000 行左右实现的教学操作系统,可以在 QEMU 上运行。
10 changes: 10 additions & 0 deletions docs/labs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,13 @@
- **中断机制**:本实验在单周期 CPU 的基础上,添加了中断控制器以及中断控制流的内容,使单周期 CPU 可以处理来自外部设备的中断,响应 IO。完成本实验之后,CPU 将具备响应 UART 数据中断、时钟中断的功能,你将可以使用 UART 端口来操作 CPU 运行中的程序。
- **流水线 CPU**:本实验在以上两个实验基础上,对 CPU 进行性能优化,从单周期的 CPU 修改为多周期的 CPU。本实验将通过几个性能评测,来验证 CPU 性能优化的效果。
- **总线处理**:本实验在流水线 CPU 的基础上,给 CPU 添加总线功能,实现外设与 CPU 的解耦。在完成总线实验后,添加外设无需修改 CPU 本身,只需要实现总线协议并与总线对接即可。本实验目的是进一步完善 CPU 实验的总体框架,提供更贴近真实计算机系统的结构实践。

## 挑战实验

在完成上述基本实验后,你就有了一个能运行简单程序的 RV32I CPU 了。如果你想实现更多功能,运行更复杂的程序,或者想提升 CPU 的性能,可以尝试以下挑战实验:

- **运行操作系统**:本实验需要你将 CPU 的功能进一步完善,使其能够运行一个简单的教学操作系统。
- **实现 MMU**:本实验需要你将 CPU 的功能进一步完善,使其具备虚拟内存管理的能力。
- **实现特权级指令**:本实验需要你将 CPU 的功能进一步完善,使其具备运行不同特权级指令的能力。
- **实现 Cache**:通过添加 Cache,提升 CPU 的性能。
- **实现乱序执行**:通过添加乱序执行,提升 CPU 的性能。
7 changes: 4 additions & 3 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ nav:
- "实验二 中断": "labs/lab2-interrupt.md"
- "实验三 流水线 CPU": "labs/lab3-pipelined-cpu.md"
- "实验四 总线": "labs/lab4-bus.md"
- "挑战实验一 运行操作系统": "labs/challenge1-running-os.md"
- FAQ: "faq/index.md"
- 参考资料: "references/index.md"
- 致谢: "acknowledgement/index.md"
Expand Down Expand Up @@ -80,9 +81,9 @@ markdown_extensions:
- footnotes
- admonition
- def_list
- toc:
permalink: true
slugify: !!python/name:pymdownx.slugs.uslugify
- markdown.extensions.toc:
slugify: !!python/object/apply:pymdownx.slugs.slugify {kwds: {case: lower}}
permalink: "\ue157"
- pymdownx.emoji:
emoji_index: !!python/name:materialx.emoji.twemoji
emoji_generator: !!python/name:materialx.emoji.to_svg
Expand Down

0 comments on commit e237b45

Please sign in to comment.