图2给出的是数字手机电路的原理框图,嵌入式系统在手机里完成人机接口、信息管 理、设备控制等功能,在多媒体手机中,嵌入式系统还要实现语音记录、视频记录、数码 相机、音视频文件播放等多媒体功能。嵌入式系统是数字手机的核心。 射频 语音基带 处理电路 处理电路 flash ram 键盘 中央 处理器 sim卡行 LCD 图1.3手机电路原理框图 现代社会日益数字化、信息化,嵌入式系统在这样的社会中必将扮演重要的角色。如 在日常生活中,将来嵌入式系统不仅存在于电视机、洗衣机、冰箱、洗衣机、手机这些设 备里,甚至我们穿的鞋子、戴的帽子、穿的衣服中也装备了计算机系统。 1999年,BM提出了普适计算的概念,指得是随时随地获取信息、处理信息。普适 计算涉及移动通信技术、小型计算机设备制造技术、小型计算机设备上的操作系统技术及 软件技术等。嵌入式系统是实现普适计算的基础技术之一。 1.4嵌入式系统的组成 嵌入式系统是具有应用针对性的专用计算机系统,应用时作为一个固定的组成部分 “嵌入”在应用对象中。每个嵌入式系统都是针对特定应用定制的,所以彼此间在功能、 性能、体系结构、外观等方面可能存在很大的差异,但从计算机原理的角度看,嵌入式系 统包括硬件和软件两个组成部分。 图1.4给出的是一个典型的嵌入式系统组成,实际系统中可能并不包括所有的组成部 分。 嵌入式系统硬件部分以嵌入式处理器为核心,扩展存储器及外部设备控制器。在某些 应用中,为提高系统性能,还可能为处理器扩展DSP或FPGA等作为协处理器,实现视 频编码、语音编码及其它数字信号处理等功能。在一些SOC(System On Chip)中,将DSP 或FPGA与处理器集成在一个芯片内,降低系统成本、缩小电路板面积、提高系统可靠性。 嵌入式系统软件部分,驱动层向下管理硬件资源,向上为操作系统提供一个抽象的虚 拟硬件平台,是操作系统支持多硬件平台的关键。在嵌入式系统软件开发过程中,用户的 主要精力一般在用户应用程序和设备驱动程序开发上。 如发现错误请指正:xuduanquan(@126.com
如发现错误请指正:xuduanquan@126.com 图 2 给出的是数字手机电路的原理框图,嵌入式系统在手机里完成人机接口、信息管 理、设备控制等功能,在多媒体手机中,嵌入式系统还要实现语音记录、视频记录、数码 相机、音视频文件播放等多媒体功能。嵌入式系统是数字手机的核心。 图 1.3 手机电路原理框图 现代社会日益数字化、信息化,嵌入式系统在这样的社会中必将扮演重要的角色。如 在日常生活中,将来嵌入式系统不仅存在于电视机、洗衣机、冰箱、洗衣机、手机这些设 备里,甚至我们穿的鞋子、戴的帽子、穿的衣服中也装备了计算机系统。 1999 年,IBM 提出了普适计算的概念,指得是随时随地获取信息、处理信息。普适 计算涉及移动通信技术、小型计算机设备制造技术、小型计算机设备上的操作系统技术及 软件技术等。嵌入式系统是实现普适计算的基础技术之一。 1.4 嵌入式系统的组成 嵌入式系统是具有应用针对性的专用计算机系统,应用时作为一个固定的组成部分 “嵌入”在应用对象中。每个嵌入式系统都是针对特定应用定制的,所以彼此间在功能、 性能、体系结构、外观等方面可能存在很大的差异,但从计算机原理的角度看,嵌入式系 统包括硬件和软件两个组成部分。 图 1.4 给出的是一个典型的嵌入式系统组成,实际系统中可能并不包括所有的组成部 分。 嵌入式系统硬件部分以嵌入式处理器为核心,扩展存储器及外部设备控制器。在某些 应用中,为提高系统性能,还可能为处理器扩展 DSP 或 FPGA 等作为协处理器,实现视 频编码、语音编码及其它数字信号处理等功能。在一些 SOC(System On Chip)中,将 DSP 或 FPGA 与处理器集成在一个芯片内,降低系统成本、缩小电路板面积、提高系统可靠性。 嵌入式系统软件部分,驱动层向下管理硬件资源,向上为操作系统提供一个抽象的虚 拟硬件平台,是操作系统支持多硬件平台的关键。在嵌入式系统软件开发过程中,用户的 主要精力一般在用户应用程序和设备驱动程序开发上。 射频 处理电路 射频 处理电路 语音基带 处理电路 语音基带 处理电路 中央 处理器 键盘 LCD flash ram rom sim卡
应用层:系统应用程序、用户应用程序 操作系统层:Linux、WinCE、VxWorks、u/COS等 驱动层:板级支持包/驱动程序/硬件适配层 嵌入式系统软件 Flash DRAM 嵌入式处理器 外部设备接口控 SRAM 制器 系统电源 嵌入式系统硬件 图1.4嵌入式系统组成 1.5嵌入式系统的分类 嵌入式系统种类繁多,应用在各行各业里,对其分类有很多不同的方法。 1.5.1按处理器位宽分类 按处理器位宽可将嵌入式系统分为4位、8位、16位、32位系统,一般情况下,位宽 越大,性能越强。 对于通用计算机处理器,因为要追求尽可能高的性能,在发展历程中总是高位宽处理 器取代、淘汰低位宽处理器。而嵌入式处理器不同,千差万别的应用对处理器要求也大不 相同,因此不同性能处理器都有各自的用武之地。 1.5.2按有无操作系统分类 现代通用计算机中,操作系统是比不可少的系统软件。在嵌入式系统中则有两种情况: 有操作系统的嵌入式系统和无操作系统(裸机)的嵌入式系统。 在有操作系统支持的情况下,嵌入式系统的任务管理、内存管理、设备管理、文件管 理等都由操作系统完成,并且操作系统为应用软件提供丰富的编程接口,用户应用软件开 发可以把精力都放在具体的应用设计上,这与在PC上开发软件相似。 在一些功能单一的嵌入式系统中,如基于8051单片机嵌入式系统,硬件平台很简单, 系统不需要支持复杂的显示、通信协议、文件系统、多任务的管理等,这种情况下可以不 用操作系统。 1.5.3按实时性分类 根据实时性要求,可将嵌入式系统分为软实时系统和硬实时系统两类。 在硬实时系统中,系统要确保在最坏情况下的服务时间,即对事件响应时间的截止期 限必须得到满足。在这样的系统里,如果一个事件在规定期限内不能得到及时处理则会导 如发现错误请指正:xuduanquan(@126.com
如发现错误请指正:xuduanquan@126.com 嵌入式系统硬件 嵌入式系统硬件 嵌入式处理器 嵌入式处理器 Flash DRAM SRAM Flash DRAM SRAM 外部设备接口控 制器 外部设备接口控 制器 嵌入式系统软件 嵌入式系统软件 驱动层:板级支持包/驱动程序/硬件适配层 驱动层:板级支持包/驱动程序/硬件适配层 操作系统层:Linux、WinCE、VxWorks、u/COS等 操作系统层:Linux、WinCE、VxWorks、u/COS等 应用层:系统应用程序、用户应用程序 应用层:系统应用程序、用户应用程序 系统电源 系统电源 图 1.4 嵌入式系统组成 1.5 嵌入式系统的分类 嵌入式系统种类繁多,应用在各行各业里,对其分类有很多不同的方法。 1.5.1 按处理器位宽分类 按处理器位宽可将嵌入式系统分为 4 位、8 位、16 位、32 位系统,一般情况下,位宽 越大,性能越强。 对于通用计算机处理器,因为要追求尽可能高的性能,在发展历程中总是高位宽处理 器取代、淘汰低位宽处理器。而嵌入式处理器不同,千差万别的应用对处理器要求也大不 相同,因此不同性能处理器都有各自的用武之地。 1.5.2 按有无操作系统分类 现代通用计算机中,操作系统是比不可少的系统软件。在嵌入式系统中则有两种情况: 有操作系统的嵌入式系统和无操作系统(裸机)的嵌入式系统。 在有操作系统支持的情况下,嵌入式系统的任务管理、内存管理、设备管理、文件管 理等都由操作系统完成,并且操作系统为应用软件提供丰富的编程接口,用户应用软件开 发可以把精力都放在具体的应用设计上,这与在 PC 上开发软件相似。 在一些功能单一的嵌入式系统中,如基于 8051 单片机嵌入式系统,硬件平台很简单, 系统不需要支持复杂的显示、通信协议、文件系统、多任务的管理等,这种情况下可以不 用操作系统。 1.5.3 按实时性分类 根据实时性要求,可将嵌入式系统分为软实时系统和硬实时系统两类。 在硬实时系统中,系统要确保在最坏情况下的服务时间,即对事件响应时间的截止期 限必须得到满足。在这样的系统里,如果一个事件在规定期限内不能得到及时处理则会导
致致命的系统错误。 在软实时系统中,从统计的角度看,一个任务能够得到确保的处理时间,到达系统的 时间也能够在截止期限前得到处理,但截止期限条件没得到满足时并不会带来致命的系统 错误。 1.5.4按应用分类 嵌入式系统应用在各行各业,按照应用领域的不同可对嵌入式系统进行分类。 1)消费类电子产品 消费类电子产品是嵌入式系统需求最大的应用领域,日常生活中的各种电子产品都有 嵌入式系统的身影,从传统的电视、冰箱、洗衣机、微波炉,到数字时代的影碟机、MP3、 MP4、手机、数码相机、数码摄像机等,在可预见的将来,可穿戴计算机也将走入我们的 生活。现代社会里,人们被各种嵌入式系统的应用产品包围着,嵌入式系统己经在很大程 度上改变了我们的生活方式。 2)过程控制类产品 这一类的应用有很多,如生产过程控制、数控机床、汽车电子、电梯控制等等。过程 控制引入嵌入式系统可显著提高效率和精确性。 3)信息、通信类产品 通信是信息社会的基础,其中最重要的是各种有线、无线网络,在这个领域大量应用 嵌入式系统,如路由器、交换机、调制解调器、多媒体网关、计费器等。 很多与通信相关的信息终端也大量采用嵌入式技术,如POS机、ATM自动取款机等。 使用嵌入式技术的信息类产品还包括键盘、显示器、打印机、扫描仪等计算机外部设备。 4)智能仪器、仪表产品 嵌入式系统在智能仪器、仪表大量应用,采用计算机技术不仅提高仪器、仪表性能, 还可以设计出传统模拟设备所不具备的功能。如传统的模拟示波器能显示波形,通过刻度 人为计算频率、幅度等参数,而基于嵌入式计算机技术设计的数字示波器,除更稳定显示 波形外,还能自动测量频率、幅度,甚至可以将一段时间里的波形存储起来,供事后详细 分析。 5)航空、航天设备与武器系统 航空、航天设备与武器系统一向是高精尖技术集中应用的领域,如飞机、宇宙飞船、 卫星、军舰、坦克、火箭、雷达、导弹、智能炮弹等等,嵌入式计算机系统是这些设备的 关键组成部分。 6)公共管理与安全产品 这类应用包括智能交通、视频监控、安全检查、防火防盗设备等。饿现在常见的可视 安全监控系统已基本实现数字化,在这种系统中,嵌入式系统常用于实现数字视频的压缩 编码、硬盘存储、网络传输等,在更智能的视频监控系统中,嵌入式系统甚至能实现人脸 识别、目标跟踪、动作识别、可疑行为判断等高级功能。 生物、医学微电子产品 这类应用包括生物特征(指纹、虹膜)识别产品、红外温度检测、电子血压计、一些 电子化的医学化验设备、医学检查设备等。 如发现错误请指正:xuduanquan(@126.com
如发现错误请指正:xuduanquan@126.com 致致命的系统错误。 在软实时系统中,从统计的角度看,一个任务能够得到确保的处理时间,到达系统的 时间也能够在截止期限前得到处理,但截止期限条件没得到满足时并不会带来致命的系统 错误。 1.5.4 按应用分类 嵌入式系统应用在各行各业,按照应用领域的不同可对嵌入式系统进行分类。 1) 消费类电子产品 消费类电子产品是嵌入式系统需求最大的应用领域,日常生活中的各种电子产品都有 嵌入式系统的身影,从传统的电视、冰箱、洗衣机、微波炉,到数字时代的影碟机、MP3、 MP4、手机、数码相机、数码摄像机等,在可预见的将来,可穿戴计算机也将走入我们的 生活。现代社会里,人们被各种嵌入式系统的应用产品包围着,嵌入式系统已经在很大程 度上改变了我们的生活方式。 2) 过程控制类产品 这一类的应用有很多,如生产过程控制、数控机床、汽车电子、电梯控制等等。过程 控制引入嵌入式系统可显著提高效率和精确性。 3) 信息、通信类产品 通信是信息社会的基础,其中最重要的是各种有线、无线网络,在这个领域大量应用 嵌入式系统,如路由器、交换机、调制解调器、多媒体网关、计费器等。 很多与通信相关的信息终端也大量采用嵌入式技术,如 POS 机、ATM 自动取款机等。 使用嵌入式技术的信息类产品还包括键盘、显示器、打印机、扫描仪等计算机外部设备。 4) 智能仪器、仪表产品 嵌入式系统在智能仪器、仪表大量应用,采用计算机技术不仅提高仪器、仪表性能, 还可以设计出传统模拟设备所不具备的功能。如传统的模拟示波器能显示波形,通过刻度 人为计算频率、幅度等参数,而基于嵌入式计算机技术设计的数字示波器,除更稳定显示 波形外,还能自动测量频率、幅度,甚至可以将一段时间里的波形存储起来,供事后详细 分析。 5) 航空、航天设备与武器系统 航空、航天设备与武器系统一向是高精尖技术集中应用的领域,如飞机、宇宙飞船、 卫星、军舰、坦克、火箭、雷达、导弹、智能炮弹等等,嵌入式计算机系统是这些设备的 关键组成部分。 6) 公共管理与安全产品 这类应用包括智能交通、视频监控、安全检查、防火防盗设备等。饿现在常见的可视 安全监控系统已基本实现数字化,在这种系统中,嵌入式系统常用于实现数字视频的压缩 编码、硬盘存储、网络传输等,在更智能的视频监控系统中,嵌入式系统甚至能实现人脸 识别、目标跟踪、动作识别、可疑行为判断等高级功能。 7) 生物、医学微电子产品 这类应用包括生物特征(指纹、虹膜)识别产品、红外温度检测、电子血压计、一些 电子化的医学化验设备、医学检查设备等
第二章嵌入式处理器 2.1处理器原理 (RISC CISC哈佛冯) 处理器,即中央处理器(CPU),是所有计算机的核心,在理解嵌入式处理器前,不 妨先回顾一下处理器的原理。 2.1.1CPU的指令系统 指令是CPU能理解并执行的命令单元,一条完整的指令一般包括操作码和操作数两 个部分,操作码决定要完成的操作,而操作数则是操作过程中需要的数据或数据的地址。 现代CPU都采用二进制表达方法,计算机硬件只识别“0”和“1”两个数字,所有 的CPU指令都由这两个数字进行编码。例如某个指令系统的指令长度为32位,操作码长 为8位,地址码长度也为8位,当收到一个“0000010000001000000000100000110”的指 令时,先分析前面的8位操作码,判断为减法操作,后面是三个操作数地址,CPU在 00000100地址中取出被减数,在00000001地址取出减数,送到CPU的算术逻辑单元中进 行减法运算,并将计算结果送到00000110地址中。 一条指令只能完成一个简单的功能,如加/减运算、逻辑判断、读数据、写数据等,如 果要完成复杂功能,就需要把很多很多指令组合起来协调执行,这些有机组合在一起的一 串指令就是程序。 不同CPU支持的指令不同,CPU支持的所有指令的集合就是该CPU的指令系统,如 x86指令系统、ARM指令系统、MCS-51指令系统等。指令系统是CPU的基本属性。 指令系统主要包括以下几种类型的指令: )算术运算指令 主要包括加、减、乘、除等数的计算。 2)逻辑运算指令 实现逻辑数的与、或、非、异或等逻辑运算。 3)数据传送指令 实现寄存器与寄存器、寄存器与存储单元以及存储单元与存储单元之间数据的传送。 4)移位操作指令 包括算术移位、逻辑移位和循环移位三种,实现对操作数左移、右移一位或若干位。 5)其它指令 除以上指令外还有一些其它指令,如堆栈操作指令、转移类指令、输入输出指令、多 处理器控制指令、空操作指令等。 2.1.2CPU的分类 根据结构不同,可把处理器分为哈佛结构处理器和冯·诺依曼结构处理器。 在冯·诺伊曼结构处理器中,程序指令和数据采用统一的存储器,对数据和指令的寻 址不能同时进行,只能交替完成。 有别于冯·诺伊曼结构,在哈佛结构的处理器中,数据和指令分开存储,通过不同的 总线访问,具体特点体现在两个方面: ·程序存储器和数据存储器分离,分开存储指令和数据 使用两套彼此独立的存储器总线,CPU通过两套总线分别读、写程序存储器或数 据存储器 哈佛结构的处理器中,因为有两套相互独立的指令和数据存储器总线,因此可以同时 如发现错误请指正:xuduanquan(@126.com
如发现错误请指正:xuduanquan@126.com 第二章 嵌入式处理器 2.1 处理器原理 (RISC CISC 哈佛 冯) 处理器,即中央处理器(CPU),是所有计算机的核心,在理解嵌入式处理器前,不 妨先回顾一下处理器的原理。 2.1.1 CPU 的指令系统 指令是 CPU 能理解并执行的命令单元,一条完整的指令一般包括操作码和操作数两 个部分,操作码决定要完成的操作,而操作数则是操作过程中需要的数据或数据的地址。 现代 CPU 都采用二进制表达方法,计算机硬件只识别“0”和“1”两个数字,所有 的 CPU 指令都由这两个数字进行编码。例如某个指令系统的指令长度为 32 位,操作码长 为 8 位,地址码长度也为 8 位,当收到一个“0000010 00000100 00000001 00000110”的指 令时,先分析前面的 8 位操作码,判断为减法操作,后面是三个操作数地址,CPU 在 00000100 地址中取出被减数,在 00000001 地址取出减数,送到 CPU 的算术逻辑单元中进 行减法运算,并将计算结果送到 00000110 地址中。 一条指令只能完成一个简单的功能,如加/减运算、逻辑判断、读数据、写数据等,如 果要完成复杂功能,就需要把很多很多指令组合起来协调执行,这些有机组合在一起的一 串指令就是程序。 不同 CPU 支持的指令不同,CPU 支持的所有指令的集合就是该 CPU 的指令系统,如 x86 指令系统、ARM 指令系统、MCS-51 指令系统等。指令系统是 CPU 的基本属性。 指令系统主要包括以下几种类型的指令: 1) 算术运算指令 主要包括加、减、乘、除等数的计算。 2) 逻辑运算指令 实现逻辑数的与、或、非、异或等逻辑运算。 3) 数据传送指令 实现寄存器与寄存器、寄存器与存储单元以及存储单元与存储单元之间数据的传送。 4) 移位操作指令 包括算术移位、逻辑移位和循环移位三种,实现对操作数左移、右移一位或若干位。 5) 其它指令 除以上指令外还有一些其它指令,如堆栈操作指令、转移类指令、输入输出指令、多 处理器控制指令、空操作指令等。 2.1.2 CPU 的分类 根据结构不同,可把处理器分为哈佛结构处理器和冯·诺依曼结构处理器。 在冯·诺伊曼结构处理器中,程序指令和数据采用统一的存储器,对数据和指令的寻 址不能同时进行,只能交替完成。 有别于冯·诺伊曼结构,在哈佛结构的处理器中,数据和指令分开存储,通过不同的 总线访问,具体特点体现在两个方面: z 程序存储器和数据存储器分离,分开存储指令和数据 z 使用两套彼此独立的存储器总线,CPU 通过两套总线分别读、写程序存储器或数 据存储器 哈佛结构的处理器中,因为有两套相互独立的指令和数据存储器总线,因此可以同时
进行指令和数据的访问,从而提高系统性能。而改进的哈佛结构处理器中,独立的存储总 线可以不只两套,比如有多套数据存储器总线,可以进一步提高数据访问的速度。 根据指令格式的不同可以把CPU分为CISC(Complex Instruction Set Computer,复杂 指令集计算机)处理器和RISC(Reduced Instruction Set Computer,精简指令集计算机)处 理器。 早期的CPU都采用CISC指令,最典型的就是x86系列处理器。CISC的特点是有大 量复杂的指令、指令长度可变、寻址方式多样。 在计算机发展之初,CPU指令系统包含很少的指令,一些复杂的操作通过简单指令的 组合来实现,如两个数a和b相乘可以用a个b的加法来实现。随着集成电路技术的迅速 发展,为了软件编程方便和提高程序运行速度,在CPU的设计中不断增加可实现复杂功 能的指令,如乘法运算中直接使用乘法指令而不是多个数的累加。随着复杂指令增多,CPU 指令系统变得越来越复杂。 指令越来越多、越来越复杂带来另一个问题,因为指令系统的指令数量由指令操作码 的位数决定。如指令数量为n,指令码位数为k,则=2。CPU指令编码宽度不可能随 意增加,促使操作码扩展技术出现。假如操作码为2位,则正常情况可表示四个指令,分 别是00、01、10、11。为了增加指令长度,如果把编码“11”作为扩展码,并把操作码扩 展到4位,则该指令系统就有00、01、10、1100、1101、1110、1111等七条指令,这就是 长度可变的操作码编码方式。 上述这种具有大量复杂指令、指令长度可变、且寻址方式多样的指令系统就是传统 CISC指令系统。 采用复杂指令系统的计算机有着较强的处理高级语言的能力,这有益于提高计算机的 性能,但另一方面,复杂的指令、变长的编码、灵活的寻址方式大大增加了指令解码的难 度,而在现在的高速硬件发展下,复杂指令所带来的速度提升已不及在解码上浪费点的时 间。 BM公司于1975年组织力量研究指令系统的合理性问题,发现CISC存在的一些缺 点:首先,在这种计算机中,各种指令的使用率差别很大,一个典型程序的运算过程所使 用的80%指令,只占一个处理器指令系统的20%,最频繁使用的是取、存和加这些最简 单的指令,而占指令数80%的复杂指令却只有20%的机会用到。复杂的指令系统必然带来 结构的复杂性,增加了设计、制造的难度,尽管大规模集成电路技术已达发展到很高的水 平,但也很难把CISC的全部硬件做在一个芯片上,妨碍单片计算机的发展:另外,在CI$C 中,许多复杂指令需要完成复杂的操作,这类指令多数是某种高级语言的直接翻版,因而 通用性差,采用二级的微码执行方式,降低了那些被频繁调用的简单指令系统的运行速度。 针对CISC的这些弊病,业界提出了精简指令的设计思想,即指令系统应当只包含那 些使用频率很高的少量指令,并提供一些必要的指令以支持操作系统和高级语言,按照这 个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC) 结构,简称RISC。 R$C的最大特点是指令长度固定,指令种类少,寻址方式种类少,大多数是简单指 令且都能在一个时钟周期内完成,易于设计超标量与流水线,寄存器数量多,大量操作在 寄存器之间进行。一般认为RISC处理器有以下几个方面的优点: 1)芯片面积小 实现精简的指令系统需要的晶体管少,芯片面积自然就小一些。节约的面积可以用于 实现提高性能的功能部件,如高速缓存、存储器管理和浮点运算器等,也便于在单片上集 成更多其它模块,如网络控制器、语音/视频编码器、SDRAM控制器、PCI总线控制器等。 如发现错误请指正:xuduanquan(@126.com
如发现错误请指正:xuduanquan@126.com 进行指令和数据的访问,从而提高系统性能。而改进的哈佛结构处理器中,独立的存储总 线可以不只两套,比如有多套数据存储器总线,可以进一步提高数据访问的速度。 根据指令格式的不同可以把 CPU 分为 CISC(Complex Instruction Set Computer,复杂 指令集计算机)处理器和 RISC(Reduced Instruction Set Computer,精简指令集计算机)处 理器。 早期的 CPU 都采用 CISC 指令,最典型的就是 x86 系列处理器。CISC 的特点是有大 量复杂的指令、指令长度可变、寻址方式多样。 在计算机发展之初,CPU 指令系统包含很少的指令,一些复杂的操作通过简单指令的 组合来实现,如两个数 a 和 b 相乘可以用 a 个 b 的加法来实现。随着集成电路技术的迅速 发展,为了软件编程方便和提高程序运行速度,在 CPU 的设计中不断增加可实现复杂功 能的指令,如乘法运算中直接使用乘法指令而不是多个数的累加。随着复杂指令增多,CPU 指令系统变得越来越复杂。 指令越来越多、越来越复杂带来另一个问题,因为指令系统的指令数量由指令操作码 的位数决定。如指令数量为 n ,指令码位数为 k ,则 k n = 2 。CPU 指令编码宽度不可能随 意增加,促使操作码扩展技术出现。假如操作码为 2 位,则正常情况可表示四个指令,分 别是 00、01、10、11。为了增加指令长度,如果把编码“11”作为扩展码,并把操作码扩 展到 4 位,则该指令系统就有 00、01、10、1100、1101、1110、1111 等七条指令,这就是 长度可变的操作码编码方式。 上述这种具有大量复杂指令、指令长度可变、且寻址方式多样的指令系统就是传统 CISC 指令系统。 采用复杂指令系统的计算机有着较强的处理高级语言的能力,这有益于提高计算机的 性能,但另一方面,复杂的指令、变长的编码、灵活的寻址方式大大增加了指令解码的难 度,而在现在的高速硬件发展下,复杂指令所带来的速度提升已不及在解码上浪费点的时 间。 IBM 公司于 1975 年组织力量研究指令系统的合理性问题,发现 CISC 存在的一些缺 点:首先,在这种计算机中,各种指令的使用率差别很大,一个典型程序的运算过程所使 用的 80%指令,只占一个处理器指令系统的 20%,最频繁使用的是取、存和加这些最简 单的指令,而占指令数 80%的复杂指令却只有 20%的机会用到。复杂的指令系统必然带来 结构的复杂性,增加了设计、制造的难度,尽管大规模集成电路技术已达发展到很高的水 平,但也很难把 CISC 的全部硬件做在一个芯片上,妨碍单片计算机的发展;另外,在 CISC 中,许多复杂指令需要完成复杂的操作,这类指令多数是某种高级语言的直接翻版,因而 通用性差,采用二级的微码执行方式,降低了那些被频繁调用的简单指令系统的运行速度。 针对 CISC 的这些弊病,业界提出了精简指令的设计思想,即指令系统应当只包含那 些使用频率很高的少量指令,并提供一些必要的指令以支持操作系统和高级语言,按照这 个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC) 结构,简称 RISC。 RISC 的最大特点是指令长度固定,指令种类少,寻址方式种类少,大多数是简单指 令且都能在一个时钟周期内完成,易于设计超标量与流水线,寄存器数量多,大量操作在 寄存器之间进行。一般认为 RISC 处理器有以下几个方面的优点: 1) 芯片面积小 实现精简的指令系统需要的晶体管少,芯片面积自然就小一些。节约的面积可以用于 实现提高性能的功能部件,如高速缓存、存储器管理和浮点运算器等,也便于在单片上集 成更多其它模块,如网络控制器、语音/视频编码器、SDRAM 控制器、PCI 总线控制器等