跳转至

计算系统综合实验

欢迎来到中国科学技术大学《计算系统综合实验》(Comprehensive Experiment of Computing System)课程主页!

image-20230906130314843

课程简介

《计算系统综合实验》是中国科学技术大学计算机科学与技术系计算机系统结构选修课,于 2023 年秋季学期面向计算机科学与技术专业三、四年级本科生全新开设。

本门课程与计算机系统结构领域密切相关,旨在介绍计算机系统结构研究的一般方法,并带领学生完成一个可用的计算机系统原型。课程实验主要由硬件、软件两部分组成:

  • 硬件系统:
    • 处理器架构设计
    • 内存总线与外设接口
  • 软件系统:
    • 操作系统与应用程序
    • 汇编语言与编译器
计算机系统结构课程系列
  • 《模拟与数字电路》:掌握数字电路设计基本知识,构建简单逻辑电路;
  • 《计算机组成原理》:掌握处理器设计的思路,并实现简单流水线处理器;
  • 《操作系统原理与设计》:掌握操作系统原理,理解软硬件系统交互;
  • 《计算系统综合实验》:综合运用系统结构知识,设计可用片上系统;
  • 《计算机体系结构》:掌握计算系统结构性能分析与调优方法。

课程信息

授课信息

  • 时间:2-11 周,5(6, 7, 8, 9)
  • 地点:高新校区 GT-A405
  • 主讲教师:卢建良

通知交流

  • 课程 QQ 群:635127986

实验代码框架

  • 课程代码框架维护在 GitHub 仓库中,你可以点此访问

  • 对每一次的实验,我们都会单独给出一个目录,这个文件夹中有一个脚本 zinit.sh,可以获取到当次实验所需的代码框架,并把需要完成的部分通过符号链接的方式链接到 Labx 目录下。

  • 在每次实验开始前,你需要通过 git pull 命令来获取最新的代码框架,然后在对应目录下运行 zinit.sh 脚本。

实验文档约定

以下是实验文档中的一些约定:

彩色标签约定

我是必做任务

这种框中的内容是实验必做任务。

我是选做任务

这种框中的内容是实验选做任务,完成后可以得到一定加分。

我是提示

这种框中的内容是对同学们完成实验可能有一定帮助的提示。

我是警告

这种框中的内容是对同学们可能会遇到的一些问题的警示。

我是拓展阅读

这种框中的内容为对实验文档的补充和拓展,与实验任务并非紧密相关,默认被折叠。

我是 FAQ

这种框中的内容为实验中可能会或实际上被问得很多的问题,默认被折叠。

在实验教学过程中可能会根据实际情况,随时增加新的 FAQ 内容。

代码块约定

我们约定,代码块使用如下的格式

<language> [<filename>]
<code>

其中的 <language> 是代码块所使用的语言,<code> 是一些代码。 特别地,对于在命令行环境下执行的命令与部分输出,我们用以下形式表示:

shell
$ <command> <some-args>
<outputs>

$ 开头的行是执行的命令,否则为命令行的输出。

代码块中的占位符和参数

你可能已经发现,在上面的代码块中,我们使用尖括号包裹的一些内容表示代码块中的一些占位符或参数。 在自己修改、执行这些代码时,你需要将这些占位符替换为合适的内容,例如:

shell
$ make -j <nproc>

若你需要在自己的机器上使用 12 线程执行此命令,则需要执行 make -j 12

类似地,我们使用方括号包括的一些内容表示可选的占位符或参数,你可以根据实际的情况选择是否添加相应的内容。例如:

shell
$ gcc [-std=c++14] [-I <include-path>] <src-files>

你可以根据需要决定是否添加 -std=c++14 选项或若干包含路径。

在后面的实验文档中,我们将沿用关于占位符的这些约定。 若使用到真实的尖括号与方括号,将另外说明。

鸣谢

特别感谢所有为《计算系统综合实验》课程建设付出努力、提出建议的老师和同学!部分名单如下:

  • 教师团队:卢建良
  • 助教团队:吕涵祺、马子睿、沈周毅
  • 技术支持:付佳伟、古宜民
  • 学生团队:唐灏、吴骏东