目标
CS61C学习 —— 第一课
- 计算机处理器和内存是如何工作的?
- 处理器和内存是如何影响软件设计和性能的?
- 介绍计算机系统领域相关知识(CS 152, CS 164, CS 161, CS 149, CS 162, EECS 151等等):
- 架构
- 编译器
- 安全
- 嵌入式
- 操作系统
- 数字设计
- …
课程概述
软硬件接口
对于软件开发来说,
-
需要了解软件开发的工具 —— 计算机!
- 计算机有各种形状和大小
- 现代计算机技术以许多不同的方式实现
-
需要知道如何改善程序性能
- 并行技术
- 操作系统 + 计算机架构基础
-
设计大型系统的能力 —— 硬件中抽象
-
设计方法学 —— 限制和权衡
学完该课程后,需要具有如下的能力:
- 识别和解释各抽象层,让计算机用户在不理解计算机硬件实际做什么的情况下执行复杂的软件任务
- 能够评判改变计算机部件(如处理器、内存、硬盘、高速缓存)对计算机程序性能的影响
- 理解内存分层结构如何实现快速内存访问
- 可以针对指定的指令集体系结构从逻辑门构造一个可工作的CPU
- 可识别不同类型的并行性,并预测它们对于不同类型应用程序的影响
另外, 该课程需要学生掌握如下技能:
- 创建和修改设计以满足给定的规格的能力
- 使用调试工具识别意外的或有问题的情况,并创建测试用例以确保正确的行为
- 基于权衡和限制的设计选择
计算机架构中的六大思想:
- 抽象
- 摩尔定律
- 局部性原理/存储层次架构
- 并行
- 性能度量&改进
- 基于冗余的可靠性
课程信息
课程网址: https://cs61c.org/
本课程所用课本:
-
Computer Organization and Design RISC-V Edition
-
The C Programming Language
-
The Datacenter as a Computer
课程包含如下内容: -
课程讲义
-
实验
-
讨论
-
工作时间答疑
-
工程项目
-
家庭作业
-
测验
该课程学习经验:
-
多实践
- 边干边学
- 成长型思维: 成功来自努力和反复实践
-
寻找一个学习社区
- 做最好的自己,只看自己的进步
-
从错误中学习
- 不要怕犯错,学习的过程就是不断犯错,并改正的过程。