From e237b45ce7178772aa95bf1f3c6b5422cafca053 Mon Sep 17 00:00:00 2001 From: Howard Lau Date: Tue, 12 Sep 2023 21:20:01 +0800 Subject: [PATCH] docs: add os challenge --- docs/labs/challenge1-running-os.md | 3 +++ docs/labs/index.md | 10 ++++++++++ mkdocs.yml | 7 ++++--- 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 docs/labs/challenge1-running-os.md diff --git a/docs/labs/challenge1-running-os.md b/docs/labs/challenge1-running-os.md new file mode 100644 index 0000000..7ac9072 --- /dev/null +++ b/docs/labs/challenge1-running-os.md @@ -0,0 +1,3 @@ +# 挑战实验一 运行操作系统 + +尝试在 CPU 上运行 [egos-2000](https://github.com/yhzhang0128/egos-2000),这是一个 2000 行左右实现的教学操作系统,可以在 QEMU 上运行。 \ No newline at end of file diff --git a/docs/labs/index.md b/docs/labs/index.md index 7b9a0fe..5dab7d0 100644 --- a/docs/labs/index.md +++ b/docs/labs/index.md @@ -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 的性能。 \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 313054c..6b914c7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -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" @@ -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