硬 件 世 界
1 2 计 算 机 与 网 络 创 新 生 活
CPU 依靠指令来计算和控制系统 .
每款 CPU在 设计时就规定 了一系 列与
其硬件 电路相配合的指令系统。指令的
强弱 也是 CPU 的重要指 标 ,指令 集是
提高 微处 理器 效率 的最 有效 工具 之一 。
从现阶段 的主流体 系结 构讲 ,指令集可
分为 复杂指令集和 精简指令集两 部分 ,
而 从 具 体 运 用 看 。如 Intel的 MMX
(Multi Media Extended)、SSE、 SSE2
(Streaming —Single instruction multiple
data-Extensions 2) 和 AMD 的 3DNow!
等都是 CPU 的扩 展指令集 。分别增强
了 CPU 的多媒体 、图形图 象和 Internet
等的处理 能力。我们通 常会 把 CPU 的
扩 展指令集称 为“CPU 的指令集”。
1 精 简 指 令 集 的 运 用
在 最初发 明计 算机 的数 十年里 ,随
着计 算机 功能 日趋增 大 ,性 能 日趋变
强 ,内部 元器件 也 越来 越多 。指 令集 日
趋 复杂 ,过于冗杂 的指 令严重地影 响了
计 算 机 的工作 效 率。后 来 经过 研究 发
现 , 在 计 算 机 中 ,80%程 序 只 用 到 了
20%的指令 集 ,基 于这一发 现 ,RISC 精
简指令 集被 提了出来 ,这是计 算机 系统
架构 的一次 深刻革命 。RISC体系结构
的基本 思路是 :抓住 CISC 指令 系统指
令种 类太 多 、指 令格式 不规 范 、寻址方
式太多 的缺 点 。通过减 少指令种类 、规
范指令格式 和简化寻址方式 ,方 便处理
器 内部 的并 行处理 ,提高 VLSI器件 的
使 用效率 ,从而大幅度 地提高处理 器的
性 能 。
RISC 指 令 集 有许 多特 征
指令种类少,指令格式规范:RISC
指令 集通 常只 使用 一种 或 少数 几种 格
式 。指令长 度单一 (一般 4个 字节 )。并
且在 字边 界上对 齐 ,字段位 置 、特 别 是
操 作码 的位 置是固定 的。
寻 址 方 式简化 :几 乎所有指 令 都 使
CPU指令集详解
用寄存器寻址方 式 ,寻址方式总数 一般
不超 过 5个。其 他更 为复 杂 的寻址 方
式 ,如 间接寻址等 则由软件利用 简单的
寻址方 式来合成 。
大量 利用 寄存 器 间操 作 :RISC 指
令 集 中大 多数操 作都 是寄 存器 到寄 存
器操作 ,只 以简单的 Load和 Store操作
访 问内存 。因此 ,每条指令中访 问的内
存 地址不会超过 1个 ,访 问内存 的操作
不会与算术操作混在一起 。
简化处理器结构 :使用 RISC指令
集 。可 以大大简 化 处理器 的控 制器和 其
他功 能单元的设计 ,不 必使 用大量 专用
寄存器 ,特别 是允许以硬件 线路来 实现
指令操作 ,而不必像 CISC处理器那样
使 用 微 程 序 来 实 现 指 令 操 作 。 因此
RISC处理器 不 必像 CISC处 理 器那 样
设 置微 程序控 制 存储器 ,就 能够快速地
直接执行指令。
便于 使 用 VLSI技 术 : 随 着 LSI和
VLSI技 术 的发 展 ,整个 处理 器 (甚至 多
个 处理 器 )都 可 以 放 在 一个 芯 片 上 。
RISC体 系结 构可 以给 设 计 单芯片 处 理
器 带来很多好处 ,有利于提 高性 能 ,简
化 VLSI芯片 的设计和实现 。基于 VLSI
技术 ,制 造 RISC处理 器 要 比 CISC处
理器工 作量小得多 ,成本 也低得 多。
加 强 了处理 器 并 行能 力 :RISC 指
令 集能 够非常 有效 地适 合 于采 用流 水
线 、超 流 水线和 超标 量技 术 ,从 而实 现
指令级 并行操作 ,提 高处理器 的性 能 。
目前常 用的处理 器 内部 并行 操作 技 术
基本上是基 于 RISC体 系结构发展和走
向成熟的。
正 由 于 RIsC 体 系 所 具 有 的 优
势 。它在 高端 系统 得到 了广泛 的应 用 ,
而 CISC 体 系则 在 桌面 系统 中 占据 统
治 地 位 。如 今 ,在 桌面 领 域 。RISC 也
不 断渗 透 ,预 计未 来 ,R.ISC将 要 “一 统
江 湖 ”。
2、CPU 的扩展 指令集
对于 CPU来 说 ,在基本 功能方面 ,
它们 的差别 并不太大 ,基本 的指 令集也
都差不 多 .但 是许 多厂家为 了提 升某一
方面 性能 ,又开发 了扩 展指 令集 ,扩 展
指令集 定义了新的数据 和指令 ,能够大
大提高 某方 面数据处理 能力一,但 必需要
有软件 支持。
MMX指 令集
MMX(Multi Media eXtemion,多媒
体 扩 展 指令集 )指令 集是 Intel公 司于
1996年推 出的一项 多媒 体 指令 增 强 技
术 。MMX 指令集中包括有 57条多媒体
指令 ,通 过这些指令可 以一次处理 多个
数 据 ,在处理 结果超过 实际处理能 力的
时候也能进行 正常处理 ,这样在软件 的
配 合下 ,就可以得到更高的性 能。MMX
的益处在于 。当时存在 的操 作系统 不必
为 此而 做 出任 何修 改便 可 以轻松 地 执
行 MMX程 序。但是 ,问题也 比较明显 。
那 就是 MMX 指令 集 与 x87浮 点 运 算
指令不 能够 同时执行 ,必须做 密集式 的
交错切换 才可以正常执行 ,这 种情况就
势必造成整个系统运 行质量 的下降 。
SSE指令集
sSE(Streaming SIMD Extensions,单
指令 多数据 流扩展 )指令 集是 Intel在
Pentium III处理器 中率先推 出的。其实 ,
早在 Pill正 式 推 出之 前 ,Intel公 司就曾
经 通 过 各 种 渠 道 公 布 过 所 谓 的 KNI
(Katmai New Instruction)指 令 集 ,这 个
指令 集也就是 SSE指令集 的前身 。并 一
度被很 多传媒称之 为 MMX 指令集的
下一个版本 ,即 MMX2指令集 。究其 背
景 ,原来“KNI”指令集是 Intet公 司最 早
为其下一 代芯片命名 的指 令集名称 ,而
所谓 的 “/VlMX2”则完 全是 硬件 评论 家
们和媒体 凭感觉和印象对 “KNI”的 评
《计算机与网络 》2008年第 16期