超标量机器原理详解
立即解锁
发布时间: 2025-08-20 02:12:44 阅读量: 1 订阅数: 4 


计算机架构:软件、编码与硬件的综合探讨
### 超标量机器原理详解
#### 1. 计算机系统分类
从计算机系统的指令流和数据流角度来看,所有机器可分为三类:
- **SISD(单指令单数据)**:包含标量处理器,每条指令只能处理一个数据。
- **SIMD(单指令多数据)**:包含向量处理器,每条指令可处理一个向量(即数据数组)。
- **MIMD(多指令多数据)**:意味着多个处理器相互连接。
本文主要探讨超标量机器的设计原理。
#### 2. 并行操作
超标量处理器允许同时执行多条指令,但每条指令仍仅处理一个数据。在指令功能上,超标量处理器与标量处理器的区别仅在于速度和复杂度。由于所有操作并行执行,超标量处理器运行速度更快。这种并行性也体现在内存方面,从而使 CPU 速度与操作数访问时间相平衡。强大的 CPU 通常由具有多个不同速度组件的内存系统支持,目标是在各个层面实现并行操作,即让 CPU 和所有内存组件都保持忙碌状态。在设计快速 CPU 时,通常有两种方法:管道或解耦管道。在讨论平衡系统中的 CPU 设计之前,先了解一下内存结构。
#### 3. 存储层次结构
内存和存储的概念相近。常见的层次化存储系统通常有四个层次:寄存器、高速缓存、主存和磁盘。前两个层次在芯片上,后两个层次在芯片外。越靠近 CPU 的层次,存储容量越小,但速度越快。目标是让存储系统的各个层次都保持忙碌。
|存储层次|位置|特点|访问时间|
| ---- | ---- | ---- | ---- |
|寄存器|芯片上|容量小、速度快|一个时钟周期(如 500 MHz 时为 2 ns)|
|高速缓存|芯片上|由多个高速临时寄存器组成,是内存部分内容的副本,对用户程序透明。为提高性能,指令缓存和数据缓存通常分开|1 - 2 个时钟周期|
|主存|芯片外|计算过程中存储结果,大型机通常有 4 GB 或更多内存,PC 约有 128 MB 以满足图形应用需求,内存数据总线可为 64 位| - |
|磁盘|芯片外|转速比软盘快,容量大|因磁盘而异|
下面是存储层次结构的 mermaid 流程图:
```mermaid
graph LR
A[CPU] --> B[寄存器]
A --> C[高速缓存]
A --> D[主存]
A --> E[磁盘]
B -->|最快| A
C -->|快| A
D -->|适中| A
E -->|慢| A
```
##### 3.1 内存地址交错
中央内存可以采用地址交错的方式来提高带宽。例如,一个有两个存储体的中央内存,左存储体包含偶数地址块,右存储体包含奇数地址块,这种内存被称为两路地址交错内存。目的是让两个存储体同时忙碌,从而缩短内存周期时间,增加带宽。
内存设计为两种操作模式,由控制线路 opdsize(操作数大小)决定:0 表示 64 位,1 表示 128 位。CPU 可以在一个原子周期内检索 64 位块,借助两路地址交错特性,也能在同一数据总线上的一个原子周期内检索 128 位块。内存会提供两个数据可用信号,分别对应第一个 64 位块和第二个 64 位块。CPU 通过将 opdsize 位设置为 1 并在总线上放置块地址来发出 128 位数据请求。如果块地址为偶数,内存先读取偶数块,再读取奇数块;如果块地址为奇数,则相反。
内存为每个存储体设置了忙碌标志,因此可以同时处理两个 64 位数据请求。只要存储体不忙碌,仲裁逻辑就会分配一个周期。收到请求后,存储体变为忙碌状态,后续请求必须推迟到前一个周期完成。总之,两路交错内存可以在一个周期内传输 128 位数据,使带宽翻倍。
##### 3.2 硬盘
硬盘转速比软盘快得多,容量也大得多。一个有六个堆叠盘片的硬盘,除了顶部和底部盘片,中间的每个盘片都使用两面存储数字信息。六个盘片作为一个整体旋转,侧面有 10 个磁盘头安装在机械臂上,用于选择柱面(即具有相同半径的一组磁道)。硬盘有许多柱面,每个柱面由 10 个磁道组成。选择特定柱面时,机械臂和 10 个磁头作为一个整体精确移动,访问同一柱面内的磁道时无需移动机械臂。
磁道进一步划分为扇区,扇区是固定大小的物理记录,通常物理记录大小在 512B 到 4KB 之间,这也是分配的 I/O 缓冲区大小。每次 I/O 例程可以从磁盘读取或写入一个物理记录。高性能磁盘的位密度通常为每平方英寸 4 Gb 或更高。
- **延迟时间**:将机械臂从当前柱面移动到目标柱面所需的时间,取决于当前磁道和目标磁道之间的相对距离。如果目标磁道与当前磁道相同,延迟时间为零;从最内磁道到最外磁道或反之,延迟时间约为 0.25。有些高速磁盘采用固定磁头,即每个磁道都有一个固定位置的磁头,因此延迟时间始终为零。
- **访问时间**:访问磁道上扇区的时间与磁头位置和被访问记录之间的相对距离呈线性关系,平均访问时间是旋转半圈的时间。例如,磁盘转速为 10,000 转/分钟时,访问时间为 3 毫秒:
\[
\begin{align*}
访问时间&=(1/2) \div 10,000 \text{ Rpm}\\
&=(1/2) \times 60 \times 1000 \div 10,000 \text{ ms}\\
&= 3 \text{ ms}
\end{align*}
\]
#### 4. 数据依赖
高速 CPU 可简单设计为三级管道:指令检索、解码和执行。第三级可能包含多个功能单元,每个功能单元的执行时间不同。只要不存在数据依赖问题(即冒险),许多指令就可以进入第三级。数据依赖有三
0
0
复制全文
相关推荐










