嵌入式系统原理与设计 徐端全 华中科技大学电子与信息工程系 如发现错误请指正:xuduanquan(@126.com
如发现错误请指正:xuduanquan@126.com 嵌入式系统原理与设计 徐 端 全 华中科技大学电子与信息工程系
第一章 嵌入式系统概述 1.1什么是嵌入式系统 1.1.1计算机的基本概念 嵌入式系统(Embedded system)也称嵌入式计算机系统。顾名思义,嵌入式系统是计 算机的一种特殊形式,所以在理解嵌入式系统概念前,必须先明确计算机的基本概念。 计算机是能按照指令对各种数据进行自动加工处理的电子设备,一套完整的计算机系 统包括硬件和软件两个部分。软件是指令与数据的集合,而硬件则是执行指令和处理数据 的环境平台,是那些看得见、摸得着的部件。计算机的硬件系统主要由中央处理器(CPU)、 存储器、外部设备以及连接各个部分的计算机总线组成。 应用软件 系统软件 外部设备 CPU 存储器 图1.1计算机系统的组成 自1946年第一台电子计算机问世以来,计算机技术发展迅猛,经历了电子管计算机、 晶体管计算机、小规模集成电路计算机和大规模集成电路计算机四个阶段。 现在为人所熟知的台式机、便携机等性能强大,安装不同的软件就能实现不同的功能, 其应用并不局限于特定的领域,如果安装了专门的软件开发工具,它就是一台软件开发计 算机:如果安装了办公软件,它就是一台办公计算机:如果安装了游戏软件,它就是一台 游戏机..… 随着计算机技术的发展,计算机应用越来越广泛,大量的设备需要采用计算机技术实 现数据采集、自动控制、信息处理的功能,而这种应用中的计算机是专用的、是整个设备 或系统的固定组成部分。这就是我们所说的嵌入式系统。 1.1.2嵌入式系统定义 嵌入式系统是以应用为中心、计算机技术为基础,软、硬件可剪裁,适应应用系统对 功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 上述定义较好地描述了嵌入式系统各方面的特征,不同的应用对计算机的有不同的需 求,嵌入式计算机在满足应用对功能和性能需求的前提下,还要适应应用对计算机的可靠 性、机械结构、功耗、环境适应性等方面的要求,在一般情况下,还要尽量降低系统的成 本。 简单地说,嵌入式系统是为具体应用定制的专用计算机系统,定制过程既体现在软件 方面,也体现在硬件方面。硬件上,针对应用,选择适当的芯片、体系结构,设计满足应 用需求的接口、设计方便安装的机械结构:软件上则明确是否需要操作系统、配置适当的 如发现错误请指正:xuduanquan(@126.com
如发现错误请指正:xuduanquan@126.com 第一章 嵌入式系统概述 1.1 什么是嵌入式系统 1.1.1 计算机的基本概念 嵌入式系统(Embedded system)也称嵌入式计算机系统。顾名思义,嵌入式系统是计 算机的一种特殊形式,所以在理解嵌入式系统概念前,必须先明确计算机的基本概念。 计算机是能按照指令对各种数据进行自动加工处理的电子设备,一套完整的计算机系 统包括硬件和软件两个部分。软件是指令与数据的集合,而硬件则是执行指令和处理数据 的环境平台,是那些看得见、摸得着的部件。计算机的硬件系统主要由中央处理器(CPU)、 存储器、外部设备以及连接各个部分的计算机总线组成。 图 1.1 计算机系统的组成 自 1946 年第一台电子计算机问世以来,计算机技术发展迅猛,经历了电子管计算机、 晶体管计算机、小规模集成电路计算机和大规模集成电路计算机四个阶段。 现在为人所熟知的台式机、便携机等性能强大,安装不同的软件就能实现不同的功能, 其应用并不局限于特定的领域,如果安装了专门的软件开发工具,它就是一台软件开发计 算机;如果安装了办公软件,它就是一台办公计算机;如果安装了游戏软件,它就是一台 游戏机…… 随着计算机技术的发展,计算机应用越来越广泛,大量的设备需要采用计算机技术实 现数据采集、自动控制、信息处理的功能,而这种应用中的计算机是专用的、是整个设备 或系统的固定组成部分。这就是我们所说的嵌入式系统。 1.1.2 嵌入式系统定义 嵌入式系统是以应用为中心、计算机技术为基础,软、硬件可剪裁,适应应用系统对 功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 上述定义较好地描述了嵌入式系统各方面的特征,不同的应用对计算机的有不同的需 求,嵌入式计算机在满足应用对功能和性能需求的前提下,还要适应应用对计算机的可靠 性、机械结构、功耗、环境适应性等方面的要求,在一般情况下,还要尽量降低系统的成 本。 简单地说,嵌入式系统是为具体应用定制的专用计算机系统,定制过程既体现在软件 方面,也体现在硬件方面。硬件上,针对应用,选择适当的芯片、体系结构,设计满足应 用需求的接口、设计方便安装的机械结构;软件上则明确是否需要操作系统、配置适当的 CPU CPU 存储器 存储器 外部设备 外部设备 应用软件 应用软件 系统软件 系统软件
系统软件环境、编写专门的应用软件。 1.2嵌入式系统与通用计算机系统 根据用途可以把计算机分成两大类:通用计算机和嵌入式计算机。嵌入式计算机是针 对特定的应用进行专门设计的,发展方向是提高嵌入性能、提高控制能力和控制的可靠性: 而通用计算机则不同,其硬件功能全面,而且具有较强的扩充能力,软件上配置标准操作 系统及其它常用系统软件与应用软件,发展方向是计算速度的无限提升、总线带宽的无限 扩展、存储容量的无限扩大。 都是计算机,嵌入式系统与通用计算机系统基本原理上没有什么根本的不同,但因为 应用目标不一样,嵌入式系统有着自身的特点: 1)嵌入式系统具有应用针对性。 这是嵌入式系统的一个基本特征,体现这种应用针对性的首先是软件,软件实现特定 应用所需要的功能,所以嵌入式系统应用中必定配置了专用的应用程序:其次是硬件,大 多数嵌入式系统的硬件是针对应用专门设计的,但也有一些标准化的嵌入式硬件模块,采 用标准模块降低开发的技术难度和风险,缩短开发时间,但灵活性不足。 2)嵌入式系统硬件一般对扩展能力要求不高。 硬件上,作为一种专用的计算机系统,功能、机械结构、安装要求比较固定,所以嵌 入式系统一般没有或仅有较少的扩展能力:软件上,嵌入式系统往往是一个设备固定组成 部分,其软件功能由设备的需求决定,在相对较长的生命周期里,一般不需要对软件进行 改动。但也有一些特例,比如现在的手机,尤其是安装有嵌入式操作系统的智能手机,软 件安装、升级比较灵活,但相对桌面计算机其软件扩展能力还是相当弱。 3)嵌入式系统一般采用专门针对嵌入式应用设计的中央处理器。 这与嵌入式系统应用针对性有关,相对通用计算机处理器,嵌入式处理器种类繁多, 不同的嵌入式处理器功能/性能差异非常大,主频从几兆赫兹到千兆赫兹、引脚数量从几个 到几百个,只有这种多样化才能适应千差万别的嵌入式系统应用。 4)嵌入式系统中操作系统可能有也可能没有,且嵌入式操作系统与桌面计算机操作 系统有较大差别。 在现代的通用计算机中,没有操作系统是无法想象的,而在嵌入式计算机中情况则大 不相同。在一个功能简单的嵌入式系统中,可能根本不需要操作系统,直接在硬件平台上 运行应用程序:而一些功能复杂的嵌入式系统,可能需要支持有线/无线网络、文件系统、 实现灵活的多媒体功能、支持实时多任务处理,此时,在硬件平台和应用软件之间增加一 个操作系统层,可使应用软件的设计变得简单,而且便于实现更高的可靠性,缩短系统开 发时间,使系统的研发工作变得可控。 目前存在很多种嵌入式操作系统,如Vx Works、pSOS、嵌入式Linux、WinCE等,这 些操作系统功能日益完善,以前只在桌面通用操作系统具备的功能,如网络浏览器、HTTP 服务器、Wod文档阅读与编辑等,也可以在嵌入式系统中实现。但为适应嵌入式系统的 需要,嵌入式操作系统相对通用操作系统,具有模块化、结构精练、定制能力强、可靠性 高、实时性好、便于写入非易失性存储器(固化)等特点。 5)嵌入式系统一般有实时性要求。 设备中的嵌入式系统常用于实现数据采集、信息处理、实时控制等功能,而采集、处 理、控制往往是一个连续的过程。一个过程要求必须在一定长的时间内完成,这就系统实 时性的要求。 如在图1.3所示的语音处理系统中,实现实时的数据采集、编码、并通过网络传输的 如发现错误请指正:xuduanquan(@126.com
如发现错误请指正:xuduanquan@126.com 系统软件环境、编写专门的应用软件。 1.2 嵌入式系统与通用计算机系统 根据用途可以把计算机分成两大类:通用计算机和嵌入式计算机。嵌入式计算机是针 对特定的应用进行专门设计的,发展方向是提高嵌入性能、提高控制能力和控制的可靠性; 而通用计算机则不同,其硬件功能全面,而且具有较强的扩充能力,软件上配置标准操作 系统及其它常用系统软件与应用软件,发展方向是计算速度的无限提升、总线带宽的无限 扩展、存储容量的无限扩大。 都是计算机,嵌入式系统与通用计算机系统基本原理上没有什么根本的不同,但因为 应用目标不一样,嵌入式系统有着自身的特点: 1) 嵌入式系统具有应用针对性。 这是嵌入式系统的一个基本特征,体现这种应用针对性的首先是软件,软件实现特定 应用所需要的功能,所以嵌入式系统应用中必定配置了专用的应用程序;其次是硬件,大 多数嵌入式系统的硬件是针对应用专门设计的,但也有一些标准化的嵌入式硬件模块,采 用标准模块降低开发的技术难度和风险,缩短开发时间,但灵活性不足。 2) 嵌入式系统硬件一般对扩展能力要求不高。 硬件上,作为一种专用的计算机系统,功能、机械结构、安装要求比较固定,所以嵌 入式系统一般没有或仅有较少的扩展能力;软件上,嵌入式系统往往是一个设备固定组成 部分,其软件功能由设备的需求决定,在相对较长的生命周期里,一般不需要对软件进行 改动。但也有一些特例,比如现在的手机,尤其是安装有嵌入式操作系统的智能手机,软 件安装、升级比较灵活,但相对桌面计算机其软件扩展能力还是相当弱。 3) 嵌入式系统一般采用专门针对嵌入式应用设计的中央处理器。 这与嵌入式系统应用针对性有关,相对通用计算机处理器,嵌入式处理器种类繁多, 不同的嵌入式处理器功能/性能差异非常大,主频从几兆赫兹到千兆赫兹、引脚数量从几个 到几百个,只有这种多样化才能适应千差万别的嵌入式系统应用。 4) 嵌入式系统中操作系统可能有也可能没有,且嵌入式操作系统与桌面计算机操作 系统有较大差别。 在现代的通用计算机中,没有操作系统是无法想象的,而在嵌入式计算机中情况则大 不相同。在一个功能简单的嵌入式系统中,可能根本不需要操作系统,直接在硬件平台上 运行应用程序;而一些功能复杂的嵌入式系统,可能需要支持有线/无线网络、文件系统、 实现灵活的多媒体功能、支持实时多任务处理,此时,在硬件平台和应用软件之间增加一 个操作系统层,可使应用软件的设计变得简单,而且便于实现更高的可靠性,缩短系统开 发时间,使系统的研发工作变得可控。 目前存在很多种嵌入式操作系统,如 VxWorks、pSOS、嵌入式 Linux、WinCE 等,这 些操作系统功能日益完善,以前只在桌面通用操作系统具备的功能,如网络浏览器、HTTP 服务器、Word 文档阅读与编辑等,也可以在嵌入式系统中实现。但为适应嵌入式系统的 需要,嵌入式操作系统相对通用操作系统,具有模块化、结构精练、定制能力强、可靠性 高、实时性好、便于写入非易失性存储器(固化)等特点。 5) 嵌入式系统一般有实时性要求。 设备中的嵌入式系统常用于实现数据采集、信息处理、实时控制等功能,而采集、处 理、控制往往是一个连续的过程。一个过程要求必须在一定长的时间内完成,这就系统实 时性的要求。 如在图 1.3 所示的语音处理系统中,实现实时的数据采集、编码、并通过网络传输的
功能。按照8kHZ采样率、精度8bits的工作模式进行单通道语音采样,这时系统会以每秒 8kB的速率连续产生数据,计算机需要“及时”地进行语音数据采集、数据压缩编码、通 过网络把数据发送出去这些处理,任何一个环节处理不及时,都会导致语音数据丢失。 RAM FLASH 语音 网络 采样 微处理器 控制器 图1.2语音处理系统结构图 实时性和处理器速度不是一回事,速度快的系统不一定实时性好,速度慢的系统实时 性未必不能满足要求。计算机运行速度高,当然更有条件实现实时性,但不是实时性的充 要条件。嵌入式系统的设计要求精练,因此在运算速度上不会留太多余量,为了保证实时 性要求,更需要对硬件、软件精心设计。 6)嵌入式系统一般有较高的成本控制要求。 在满足需求的前提下,在嵌入式系统开发中,要求高效率地设计,减少硬件、软件冗 余,恰到好处的设计可以最大限度地降低系统成本,并有利于提高系统的可靠性。 通用计算机则追求更快的计算速度、更大的存储容量、更丰富的配置、更大的显示器。 强大的硬件平台才能满足日益复杂的桌面操作系统及各种类型软件的需要,这样的计算机 “通用性”才最强。 嵌入式系统软件一般有固化的要求。 在现代的通用计算机中,硬盘是操作系统和应用软件的载体,对于这些几GB,甚至 几十GB、几百GB的软件及数据,硬盘是最好的记录媒介。 嵌入式系统软件一般把操作系统和应用软件直接固化在非易失性存储器(如FLASH 存储器)中。首先,嵌入式系统一般没有硬盘,就算有硬盘或存储卡之类的外部存储器, 也很少用于存储系统软件,多是用于存储数据或用户扩展的软件:其次,无论是操作系统 还是应用软件都很精练,所占容量相对通用计算机要小得多,所以有固化的条件:再次, 嵌入式系统不象通用计算机那么容易安装和升级软件,而且也很少需要改动,所以要求软 件存储可靠性高,因此有必要把软件固化:最后,软件固化有利于提高嵌入式系统的启动 速度。 8)嵌入式系统软件一般采用交叉开发的模式。 目前软件设计工作大多采用集成开发环境,将代码编辑、编译、链接、仿真、调试等 软件开发工具集成在一起。嵌入式系统针对具体的应用进行设计,其硬件、软件的配置往 往不便于或不可能支持应用软件开发。实际开发中,一般用通用计算机(主要是PC机) 作为开发机,进行嵌入式软件的编辑、编译、链接,在开发机上进行仿真,或下载到嵌入 式目标系统是运行测试,最终的目标代码固化到目的系统的存储器中运行,这就是所谓交 叉开发的软件设计模式。 9)嵌入式系统在体积、功耗、可靠性、环境适应性上一般有特殊要求 嵌入式系统作为一个固定的组成部分“嵌入”在设备中,因受装配、供电、散热等条 件的约束,其体积、功耗必然有一定的限制。例如,现在的手机功能日益强大,但体积越 做越小,集成度和装配密度非常高,在这种应用环境里,嵌入式计算机部分的芯片封装、 如发现错误请指正:xuduanquan(@126.com
如发现错误请指正:xuduanquan@126.com 功能。按照 8kHZ 采样率、精度 8bits 的工作模式进行单通道语音采样,这时系统会以每秒 8kB 的速率连续产生数据,计算机需要“及时”地进行语音数据采集、数据压缩编码、通 过网络把数据发送出去这些处理,任何一个环节处理不及时,都会导致语音数据丢失。 图 1.2 语音处理系统结构图 实时性和处理器速度不是一回事,速度快的系统不一定实时性好,速度慢的系统实时 性未必不能满足要求。计算机运行速度高,当然更有条件实现实时性,但不是实时性的充 要条件。嵌入式系统的设计要求精练,因此在运算速度上不会留太多余量,为了保证实时 性要求,更需要对硬件、软件精心设计。 6) 嵌入式系统一般有较高的成本控制要求。 在满足需求的前提下,在嵌入式系统开发中,要求高效率地设计,减少硬件、软件冗 余,恰到好处的设计可以最大限度地降低系统成本,并有利于提高系统的可靠性。 通用计算机则追求更快的计算速度、更大的存储容量、更丰富的配置、更大的显示器。 强大的硬件平台才能满足日益复杂的桌面操作系统及各种类型软件的需要,这样的计算机 “通用性”才最强。 7) 嵌入式系统软件一般有固化的要求。 在现代的通用计算机中,硬盘是操作系统和应用软件的载体,对于这些几 GB,甚至 几十 GB、几百 GB 的软件及数据,硬盘是最好的记录媒介。 嵌入式系统软件一般把操作系统和应用软件直接固化在非易失性存储器(如 FLASH 存储器)中。首先,嵌入式系统一般没有硬盘,就算有硬盘或存储卡之类的外部存储器, 也很少用于存储系统软件,多是用于存储数据或用户扩展的软件;其次,无论是操作系统 还是应用软件都很精练,所占容量相对通用计算机要小得多,所以有固化的条件;再次, 嵌入式系统不象通用计算机那么容易安装和升级软件,而且也很少需要改动,所以要求软 件存储可靠性高,因此有必要把软件固化;最后,软件固化有利于提高嵌入式系统的启动 速度。 8) 嵌入式系统软件一般采用交叉开发的模式。 目前软件设计工作大多采用集成开发环境,将代码编辑、编译、链接、仿真、调试等 软件开发工具集成在一起。嵌入式系统针对具体的应用进行设计,其硬件、软件的配置往 往不便于或不可能支持应用软件开发。实际开发中,一般用通用计算机(主要是 PC 机) 作为开发机,进行嵌入式软件的编辑、编译、链接,在开发机上进行仿真,或下载到嵌入 式目标系统是运行测试,最终的目标代码固化到目的系统的存储器中运行,这就是所谓交 叉开发的软件设计模式。 9) 嵌入式系统在体积、功耗、可靠性、环境适应性上一般有特殊要求 嵌入式系统作为一个固定的组成部分“嵌入”在设备中,因受装配、供电、散热等条 件的约束,其体积、功耗必然有一定的限制。例如,现在的手机功能日益强大,但体积越 做越小,集成度和装配密度非常高,在这种应用环境里,嵌入式计算机部分的芯片封装、 微处理器 微处理器 RAM RAM FLASH FLASH 网络 控制器 网络 控制器 语音 采样 语音 采样 网络
电路板设计、系统装配等都要求紧凑、小巧。在功耗方面也有严格的要求,一方面密封在 手机里,没有良好的散热条件,功耗控制不好会导致手机温度过高:另一方面,电路的功 耗直接决定了手机一次充电后持续工作的时间。 嵌入式系统作为设备的核心,其可靠性直接决定了设备可靠性,因此在这方面有严格 的要求。尤其在航空、航天、武器装备等应用中,嵌入式系统的可靠性更是生死悠关的事 情。 10)嵌入式系统技术标准化程度不高。 PC是最普及的通用计算机,其主板结构、计算机扩展总线、扩展板结构、内存扩展、 电源、机箱、外部设备接口,甚至安装螺钉等都完全标准化,所以P℃机完全以社会化分 工的形式进行批量大规模生产。PC的标准化不仅体现在硬件上,软件上也有很高的标准 化趋势,如数据库标准、操作系统标准、文本标准等等。 每个嵌入式系统都是针对具体应用设计,所以千差万别,不可能象PC一样制定高度 一致的标准,也正是因为这个原因,在嵌入式领域才不会形成个别企业垄断市场的现象。 标准化有利于社会化的分工合作,嵌入式领域也存在一定程度的标准化,如P℃104总 线标准、Compact PCI总线标准等,只是这些标准的应用相对于整个嵌入式领域还是很小 的一部分。 嵌入式系统与通用计算机系统技术上是相通的,通用计算机发展快、性能强,很多技 术可以应用到嵌入式系统中,如PC中的ISA总线经过改造成为嵌入式系统中的PC104总 线、PCI总线经过改造成为嵌入式系统中的CompactPCI总线:桌面Windows XP操作系统 有对应的嵌入式版本一一Windows XP Embedded,而桌面Linux也有对应的嵌入式Linux 版本。在应用中,还经常可见经过机械结构、环境适应性改造的通用计算机应用在嵌入式 领域中。 1.3嵌入式系统的发展与应用 如果问哪种计算机最普及,有人会说是P℃机,可实际上嵌入式系统在数量上远远超 过了以PC机为代表的通用计算机,只是嵌入式系统一般集成在设备内部,不象PC那样 本身是一个独立的系统,配备显示器、键盘、鼠标等标准设备。 人们在使用设备时,往往在意的是设备提供的功能,而忽略了在设备内部高速运转、 起着核心作用的嵌入式系统,例如在用MP3欣赏音乐的时候,人们只关心音乐的音质、 操控方式、系统容量、支持的音乐格式等,有多少人会关心在MP3内部发挥作用的嵌入 式计算机呢?可实际上所有的功能都是内部的计算机完成的。 早期计算机由电子管组成,体积庞大,主要用于完成复杂的计算任务。随着晶体管计 算机的出现,尤其是集成电路在计算机中的应用,计算机体积越来越小、性能越来越强, 除了数值计算外,计算机还可以实现数据采集、信息处理、自动控制等功能,将专门设计 的计算机集成到传统设备中,可显著提高设备的性能。此时,一种新的计算机类型一一嵌 入式系统应运而生。 嵌入式系统发展之初,因为计算机还是个昂贵的电子设备,所以应用仅限于军事、工 业控制等成本不敏感的领域。随着微处理器技术的飞速发展,计算机集成度越来越高,在 性能提高的同时,计算机也变得越来越小、越来越廉价,嵌入式系统的进入蓬勃发展时期。 现代社会生活中,嵌入式系统无处不在,广泛应用在国防电子、数字家庭、工业自动 化、汽车电子、医学科技、消费电子、无线通讯、电力系统等各行各业。嵌入式系统是数 字化社会的技术基础,正如中科院院士沈绪榜教授所说,“计算机是认识世界的工具,而 嵌入式系统则是改造世界的产物。” 如发现错误请指正:xuduanquan(@126.com
如发现错误请指正:xuduanquan@126.com 电路板设计、系统装配等都要求紧凑、小巧。在功耗方面也有严格的要求,一方面密封在 手机里,没有良好的散热条件,功耗控制不好会导致手机温度过高;另一方面,电路的功 耗直接决定了手机一次充电后持续工作的时间。 嵌入式系统作为设备的核心,其可靠性直接决定了设备可靠性,因此在这方面有严格 的要求。尤其在航空、航天、武器装备等应用中,嵌入式系统的可靠性更是生死悠关的事 情。 10) 嵌入式系统技术标准化程度不高。 PC 是最普及的通用计算机,其主板结构、计算机扩展总线、扩展板结构、内存扩展、 电源、机箱、外部设备接口,甚至安装螺钉等都完全标准化,所以 PC 机完全以社会化分 工的形式进行批量大规模生产。PC 的标准化不仅体现在硬件上,软件上也有很高的标准 化趋势,如数据库标准、操作系统标准、文本标准等等。 每个嵌入式系统都是针对具体应用设计,所以千差万别,不可能象 PC 一样制定高度 一致的标准,也正是因为这个原因,在嵌入式领域才不会形成个别企业垄断市场的现象。 标准化有利于社会化的分工合作,嵌入式领域也存在一定程度的标准化,如 PC104 总 线标准、Compact PCI 总线标准等,只是这些标准的应用相对于整个嵌入式领域还是很小 的一部分。 嵌入式系统与通用计算机系统技术上是相通的,通用计算机发展快、性能强,很多技 术可以应用到嵌入式系统中,如 PC 中的 ISA 总线经过改造成为嵌入式系统中的 PC104 总 线、PCI 总线经过改造成为嵌入式系统中的 CompactPCI 总线;桌面 Windows XP 操作系统 有对应的嵌入式版本——Windows XP Embedded,而桌面 Linux 也有对应的嵌入式 Linux 版本。在应用中,还经常可见经过机械结构、环境适应性改造的通用计算机应用在嵌入式 领域中。 1.3 嵌入式系统的发展与应用 如果问哪种计算机最普及,有人会说是 PC 机,可实际上嵌入式系统在数量上远远超 过了以 PC 机为代表的通用计算机,只是嵌入式系统一般集成在设备内部,不象 PC 那样 本身是一个独立的系统,配备显示器、键盘、鼠标等标准设备。 人们在使用设备时,往往在意的是设备提供的功能,而忽略了在设备内部高速运转、 起着核心作用的嵌入式系统,例如在用 MP3 欣赏音乐的时候,人们只关心音乐的音质、 操控方式、系统容量、支持的音乐格式等,有多少人会关心在 MP3 内部发挥作用的嵌入 式计算机呢?可实际上所有的功能都是内部的计算机完成的。 早期计算机由电子管组成,体积庞大,主要用于完成复杂的计算任务。随着晶体管计 算机的出现,尤其是集成电路在计算机中的应用,计算机体积越来越小、性能越来越强, 除了数值计算外,计算机还可以实现数据采集、信息处理、自动控制等功能,将专门设计 的计算机集成到传统设备中,可显著提高设备的性能。此时,一种新的计算机类型——嵌 入式系统应运而生。 嵌入式系统发展之初,因为计算机还是个昂贵的电子设备,所以应用仅限于军事、工 业控制等成本不敏感的领域。随着微处理器技术的飞速发展,计算机集成度越来越高,在 性能提高的同时,计算机也变得越来越小、越来越廉价,嵌入式系统的进入蓬勃发展时期。 现代社会生活中,嵌入式系统无处不在,广泛应用在国防电子、数字家庭、工业自动 化、汽车电子、医学科技、消费电子、无线通讯、电力系统等各行各业。嵌入式系统是数 字化社会的技术基础,正如中科院院士沈绪榜教授所说,“计算机是认识世界的工具,而 嵌入式系统则是改造世界的产物
图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 总线控制器等