1
1
mirror of https://github.com/foxsen/archbase.git synced 2026-02-02 18:09:17 +08:00
Files
archbase/04-preface.Rmd
2021-10-27 19:14:51 +08:00

23 lines
6.0 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 前言 {-}
\markboth{前言}{前言}
计算机体系结构是一门比较抽象的学科很有可能经过一个学期的学习只学到一些概念。本课程教学希望达到三个目的。一是建立学生的系统观。计算机系统的复杂性体现在计算机中各部分之间的关系非常复杂。如苹果iPhone的CPU性能不如Intel的X86 CPU但用户体验明显好于桌面计算机这就是系统优化的结果。希望学生学完这门课程后能够从系统的角度看待计算机不再简单地以主频论性能或者简单地把用户体验归结于CPU的单项性能。二是掌握计算机体系结构的若干概念。计算机体系结构中的概念很多虽然抽象但是必须掌握。比如计算机体系结构的四大设计原则指令系统结构处理器流水线等等。三是掌握一些重点知识并具备一些重点能力。主要包括计算机的ABI接口存储管理中的虚实地址转换过程通过IO地址空间扫描进行IO设备初始化计算机系统的启动过程重要总线如AXI总线、内存总线、PCIE总线的信号及其时序用Verilog编写RTL代码的能力先行进位加法器的逻辑两位一乘补码乘法器逻辑用Perf进行性能分析的能力等等。
本书第一部分为引言介绍体系结构研究内容、主要性能指标、发展趋势以及设计原则。计算机体系结构Computer Architecture是描述计算机各组成部分及其相互关系的一组规则和方法是程序员所看到的计算机属性。计算机体系结构的主要研究内容包括指令系统结构Instruction Set Architecture简称ISA和计算机组织结构Computer Organization。微体系结构Micro-architecture是微处理器的组织结构并行体系结构是并行计算机的组织结构。冯·诺依曼结构的存储程序和指令驱动执行原理是现代计算机体系结构的基础。
本书第二部分介绍以指令系统结构为核心的软硬件界面包括指令系统总体介绍、指令集结构、异常与中断、存储管理、软硬件协同等内容。贯穿该部分内容的一个核心思想是建立高级语言如C语言与指令系统结构的关系。例如C语言的语句与指令系统的关系算术语句可直接映射为相关运算指令for循环映射为条件跳转switch语句映射为跳转索引和跳转表等操作系统中地址空间的组织与指令访问内存的关系静态全局变量映射到地址空间的静态数据区、局部变量映射到堆栈区、动态分配的数据则映射到进程空间的堆中操作系统中进程和线程的表示及切换在指令和地址映射方面的具体体现敲击键盘和移动鼠标等事件如何通过指令系统的外部中断传递到CPU以及指令系统对操作系统处理外部中断的必要支持等等。
本书第三部分介绍计算机硬件结构。该部分的核心思想是搞清楚计算机内部包括CPU、GPU、内存、IO之间是如何协同完成软件规定的各种操作的。例如在计算机开机过程中BIOS完成硬件初始化后把操作系统从硬盘拷贝到内存执行的过程中南北桥与CPU是如何配合的CPU和GPU是如何协同操作完成计算机屏幕显示的在显示过程中哪些活是CPU干的哪些活是GPU干的以太网接口、USB接口等各种接口的驱动在硬件上的具体体现是什么等等。
本书第四部分介绍微结构。该部分的核心思想是建立指令系统和晶体管之间的“桥梁”。微结构是决定CPU性能的关键因素。由于微结构是“计算机体系结构”硕士课程的主要内容因此本科课程的微结构内容在追求系统地介绍有关概念的基础上重点把先行进位加法器和五级静态流水线讲透希望学生通过对先行进位加法器、五级静态流水线、简单转移猜测和高速缓存原理的深入了解举一反三地了解微结构的实现方式。微结构中动态流水线、乱序执行和多发射等内容只做概念性的介绍。
本书第五部分介绍并行处理结构。应用程序的并行行为是并行处理的基础现代计算机通过多层次的并行性开发来提高性能。并行处理编程模型包括消息传递模型如MPI和共享存储模型如OpenMP等。多核处理器的设计需要考虑存储一致性模型、高速缓存一致性协议、片上互连、多核同步等核心问题。
本书第六部分介绍计算机的性能分析方法。性能不是由一两个具体指标(如主频)决定的,而是若干因素综合平衡的结果;性能评测也没有绝对合理公平的办法,不同的计算机对不同的应用适应性不一样,对某类应用甲计算机比乙计算机性能高,对另外一类应用可能反之。巨大的设计空间和工作负载的多样性,导致计算机系统的性能分析和评价成为一个非常艰巨的任务。计算机性能分析的主要方法包括理论建模,用模拟器进行性能模拟,以及对实际系统进行性能评测等。
上述面面俱到的课程安排主要是考虑体系结构学科的完整性,但本科课程重点是软硬件界面及计算机硬件结构。对于一般高校,并行处理结构和计算机系统性能分析可以不讲。
在选修本课程前学生应对C语言程序设计、数字逻辑电路有一定的基础。本课程试图说明一个完整的计算系统的工作原理其中涉及部分操作系统的知识。为了有更好的理解学生还可以同时选修操作系统课程。课程中的实例和原理介绍以LoongArch体系结构为主。与传统课程中讲授的X86体系结构相比LoongArch结构相对简单明晰而又不失全面。学生可以通过配套的实验课程自底而上构建自己的计算机系统包括硬件、操作系统以及应用软件从而对“如何造计算机”有更深刻的认识。
\newpage