# 计算机组成与体系结构
## 计算机体系结构分类--Flynn分类法
|体系结构类型|结构|关键特性|代表|
|:----------|:---|:------|:---|
|SISD(单指令流单数据流)|控制部分:一个;处理器:一个;主存模块:一个||单处理器系统|
|SIMD(单指令流多数据流)|控制部分:一个;处理器:多个;主存模块:多个|各处理器以异步的形式执行同一条指令|并行处理机,阵列处理机,超级向量处理机|
|MISD(多指令流单数据流)|控制部分:多个;处理器:一个;主存模块:多个|被证明不可能,至少不实际|目前没有,有文献称流水线计算机为此类|
|MIMD(多指令流多数据流)|控制部分:多个;处理器:多个;主存模块:多个|能够实现作业、任务、指令等各级全面并行|多处理机系统,多计算机|
## CISC与RISC
| 指令系统类型 | 指令 | 寻址方式 |实现方式|其他|
| :-------- | :----- | :---- |:------|:------|
| CISC(复杂) | 数量多,使用频率差别大,可变长格式 |支持多种|微程序控制技术(微码)|研制周期长,计算机不普及的时候,定制的|
| RISC(精简) |数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存|支持方式少|增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线|优化编译,有效支持高级语言|
## 层次化存储结构
![层次化存储结构](https://github.com/zlychopper/images/blob/master/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E5%B8%88/%E5%B1%82%E6%AC%A1%E5%8C%96%E5%AD%98%E5%82%A8%E7%BB%93%E6%9E%84.png?raw=true)
相联存储器,按内容存储
## Cache概念
1. Cache的功能:提高cpu数据输入输出的速率,突破冯诺依曼瓶颈,即cpu与存储系统间数据传送带宽限制。
2. 在计算机的存储体系中,Cache是访问速度最快的层次,仅次于寄存器。
3. 使用Cache改善系统性能的依据是程序的局部性原理。
如果以h代表Cache的访问命中率,t1表示Cache的周期时间,t2表示主存周期时间,以读操作为例,使用Cache+主存的系统的平均周期t3,则:
```
t3=hxt1+(1-h)t2
```
其中,(1-h)又称为失效率(未命中率).
## 局部性原理
局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。
1. 时间局部性(Temporal Locality):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。程序循环、堆栈等是产生时间局部性的原因。
2. 空间局部性(Spatial Locality):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。
3. 顺序局部性(Order Locality):在典型程序中,除转移类指令外,大部分指令是顺序进行的。顺序执行和非顺序执行的比例大致是5:1。此外,对大型数组访问也是顺序的。
指令的顺序执行、数组的连续存放等是产生顺序局部性的原因。
## 磁盘结构与参数[1]
### 机械硬盘(HDD)
[1]: http://c.biancheng.net/view/879.html
![机械硬盘结构](https://github.com/zlychopper/images/blob/master/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%9C%BA%E6%A2%B0%E7%A1%AC%E7%9B%98%E7%BB%93%E6%9E%84.jpg?raw=true)
机械硬盘主要由磁盘盘片、磁头、主轴与传动轴等组成,我们的数据就存放在磁盘盘片当中。大家见过老式的留声机吗?留声机上使用的唱片和我们的磁盘盘片非常相似,只不过留声机只有一个磁头,而硬盘是上下双磁头,盘片在两个磁头中间高速旋转,类似下图。
![磁盘盘片](https://github.com/zlychopper/images/blob/master/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%A3%81%E7%9B%98%E7%9B%98%E7%89%87.jpg?raw=true)
也就是说,机械硬盘是上下盘面同时进数据读取的。而且机械硬盘的旋转速度要远高于唱片(目前机械硬盘的常见转速是 7200 r/min),所以机械硬盘在读取或写入数据时,非常害怕晃动和磕碰。另外,因为机械硬盘的超高转速,如果内部有灰尘,则会造成磁头或盘片的损坏,所以机械硬盘内部是封闭的,如果不是在无尘环境下,则禁止拆开机械硬盘。
#### 机械硬盘的逻辑结构
们已经知道数据是写入磁盘盘片的,那么数据是按照什么结构写入的呢?机械硬盘的逻辑结构主要分为磁道、扇区和拄面。我们来看看下图
![磁道和扇区](https://github.com/zlychopper/images/blob/master/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%A3%81%E9%81%93%E5%92%8C%E6%89%87%E5%8C%BA.jpg?raw=true)
什么是磁道呢?每个盘片都在逻辑上有很多的同心圆,最外面的同心圆就是 0 磁道。我们将每个同心圆称作磁道(注意,磁道只是逻辑结构,在盘面上并没有真正的同心圆)。硬盘的磁道密度非常高,通常一面上就有上千个磁道。但是相邻的磁道之间并不是紧挨着的,这是因为磁化单元相隔太近会相互产生影响。
那扇区又是十么呢?扇区其实是很形象的,大家都见过折叠的纸扇吧,纸扇打开后是半圆形或扇形的,不过这个扇形是由每个扇骨组合形成的。在磁盘上每个同心圆是磁道,从圆心向外呈放射状地产生分割线(扇骨),将每个磁道等分为若干弧段,每个弧段就是一个扇区。每个扇区的大小是固定的,为 512Byte。扇区也是磁盘的最小存储单位。
柱面又是什么呢?如果硬盘是由多个盘片组成的,每个盘面都被划分为数目相等的磁道,那么所有盘片都会从外向内进行磁道编号,最外侧的就是 0 磁道。具有相同编号的磁道会形成一个圆柱,这个圆柱就被称作磁盘的柱面,如下图所示
![柱面](https://github.com/zlychopper/images/blob/master/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%9F%B1%E9%9D%A2.jpg?raw=true)
硬盘的大小是使用"磁头数 x 柱面数 x 扇区数 x 每个扇区的大小"这样的公式来计算的。其中,磁头数(Heads)表示硬盘共有几个磁头,也可以理解为硬盘有几个盘面,然后乘以 2;柱面数(Cylinders)表示硬盘每面盘片有几条磁道;扇区数(Sectors)表示每条磁道上有几个扇区;每个扇区的大小一般是 512Byte。
#### 磁盘存取时间
```
存取时间 = 寻道时间 + 旋转延迟时间(磁头定位到所在扇区的时间)+ 传输时间
```
1. 寻道时间:磁头从开始移动到移动到数据所在磁道所需要的时间。
2. 旋转延迟时间:等待读取的扇区旋转到磁头下方的时间。
### 固态硬盘(SSD)
固态硬盘和传统的机械硬盘最大的区别就是不再采用盘片进行数据存储,而采用存储芯片进行数据存储。固态硬盘的存储芯片主要分为两种:一种是采用闪存作为存储介质的;另一种是采用DRAM作为存储介质的。目前使用较多的主要是采用闪存作为存储介质的固态硬盘,如下图所示
![固态硬盘](https://github.com/zlychopper/images/blob/master/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E5%B8%88/%E5%9B%BA%E6%80%81%E7%A1%AC%E7%9B%98.jpg?raw=true)
固态硬盘和机械硬盘对比主要有以下一些特点,如表所示
|对比项目|固态硬盘|机械硬盘|
|:------|:------|:-------|
|容量|较小|大|
|读/写速度|极快|一般|
|写入次数|5000~100000|没有限制|
|工作噪声|极低|有|
|工作温度|极低|较高|
|防震|很好|怕震动|
|重量|低|高|
|价格|高|低|
固态硬盘因为丟弃了机械硬盘的物理结构,所以相比机械硬盘具有了低能耗、无噪声、抗震动、低散热、体积小和速度快的优势;不过价格相比机械硬盘更高,而且使用寿命有限。
一键复制
编辑
Web IDE
原始数据
按行查看
历史