• 沒有找到結果。

嵌入式系统

N/A
N/A
Protected

Academic year: 2022

Share "嵌入式系统"

Copied!
377
0
0

加載中.... (立即查看全文)

全文

(1)
(2)

嵌入式系统

接口原理与应用

主 编 文全刚

副主编 陈 远 纪 绪 朱天元

(3)

本 书主 要内 容分 成3个部分:第一部分介绍以 ARM 为内核的嵌入式微处理器基本知识、嵌入式开发环 ,包括第1、2章。第二部分介绍存储器接口、基本输入/输出接口、外部总线接口、网络接口、嵌入式系统软 件 设计 等知 识,包括第3~7章。第三部分是实验内容,包括第8章。本书含光盘1张,内含相关实验的源代 码 和相 应视 频,读者可根据实际情况选做其中的实验。

本 书可 作为 高等 院校 计算 机、电子及相关专业的教材或参考书,也适合工程技术人员参考。

图书在版编目(CIP)数据

嵌入式系统接口原理与应用/文全刚主编�—北京:北 京航空航天大学出版社,2009�10

ISBN978 7 81124 929 3

Ⅰ� 嵌… Ⅱ� 文… Ⅲ� 微型计算机—接口—系统设计

Ⅳ�TP364.721

中国版本图书馆 CIP数据核字(2009)第178828号

® 2009,北京航空航天大学出版社,版权所有。

未经本书出版者书面许可,任何单位和个人不得以任何形式或手段复制本书及所附光盘内容。

侵权必究。

嵌入式系统接口原理与应用 主 编 文全刚 副主编 陈 远 纪 绪 朱天元

责任编辑 董立娟

*

北京航空航天大学出版社出版发行

北京市海淀区学 院路37号(100191) 发行部电话:010 82317024 传真:010 82328026 www.buaapress.com.cn E-mail:[email protected]

印 刷厂印装 各地书店经销

*

开本:787×960 1/16 印张:23.75 字数:532千字 2009年10月第1版 2009年10月第1次印刷 印数:4000册

ISBN978 7 81124 929 3 定价:42.00元(含光盘)

(4)

目前,嵌入式产品已经无处不在:通信、信息、数字家庭、工业控制等领域,随处都能 见到嵌入式产品;国内也掀起了学习嵌入式知识的热潮。嵌入式知识的学习范围很广, 不仅要学习软件知识还要学习硬件知识。学习嵌入式要以应用为导向,因此,建议学习 者首先选择一款主流芯片,以点带面、循序渐进地进行。目前,以 ARM 为核心的嵌入 式技术逐渐成为我国嵌入式教学的主流。

结合多年的教学实践,我们编写了嵌入式系列教材,《嵌入式系统接口原理与应用》

是软硬件结合最紧密的知识模块。目前,嵌入式设计中大多数是结合某种开发板做二 次开发,因此,硬件的比重只占到20%,而软件的比重却占到80%。本书按照“接口原 理→典型电路→接口编程”这种模式对常用接口进行了介绍,重点是接口驱动程序的编 写。本书的接口驱动程序不是基于某种操作系统,而是用 C语言编写从而直接控制接 口控制器。通过 ADS集成开发调试环境,读者可以很清楚地看到软件对硬件的控制过 程。这个理解过程对于读者编写基于某种操作系统下的接口驱动程序有很大的帮助。

本书的前导课程是《计算机组成原理》、《C 语言程序设计》、《汇编语言程序设计———基 于ARM 体系结构》,后续课程是《嵌入式 Linux操作系统原理与应用》、《嵌入式系统原 理与应用》。

本书主要内容分成3个部分:第一部分介绍以 ARM 为内核的嵌入式微处理器基 本知识、嵌入式开发环境,包括第1、2章。第二部分介绍存储器接口、基本输入/输出接 口、外部总线接口、网络接口、嵌入式系统软件设计等知识,包括第3~7章。第三部分 是实验内容,包括第8章。具体章节安排如下:

第1章 嵌入式微处理器:首先介绍嵌入式系统的基本组成结构,然后介绍微处理 器的基 本知 识以 及常 用的 嵌入式 微处 理器,最后重点介绍国内几种以 ARM 为内核的 嵌入式微处理器以及ARM 芯片的选型。

第2章 嵌入式开发环境:介绍接口硬件开发的基本知识、基于开发板的二次开 发、最小硬件系统模块、电源复位电路、时钟电路、JTAG 接口等知识,结合实例重点介 绍本书接口软件开发所用的开发工具———ADS平台。

第3章 嵌入式系统的存储器:结合半导体存储器件的发展过程分别介绍 ROM、

(5)

·2 ·

EPROM、FlashROM 等器件的原理和基本结构,重点介绍国内用得比较多的两种 Nand Flash芯片和 NORFlash芯片。最后介绍常用的外部存储器,如硬盘、光盘、U 盘等。

第4章 基本输入/输出接口:结合国内常用的 ARM 芯片 S3C2410,介绍常用的 输入/输出接口,如 GPIO、键盘与鼠标接口、数/模转换、触摸屏、显示器接口、音频接口 等,并结合电路介绍如何对基本的输入/输出接口进行软件编程。

第5章 外部总线接口:结合国内常用的 ARM 芯片 S3C2410,介绍常用的外部总 线接口,如 RS 232接口、PCI接口、SPI接口、I2C 接口、USB 接口、PCMCIA 接口等, 并结合电路介绍如何对外部总线进行接口编程。

第6章 网络接口:主要介绍以太网络、CAN 总线、GPRS接口、ZigBee技术、GPS 接口技术。

第7章 嵌入式系统软件设计:首先介绍通用操作系统和嵌入式操作系统的基本 联系和区别,然后重点介绍μC/OS Ⅱ操作系统的基本结构及其在 ARM 内核 CPU 中 的移植,最后结合实例介绍μC/OS Ⅱ下应用程序的编写。

第8章 常用接口实验:首先介绍嵌入式接口开发环境,然后对常用的接口实验进 行介绍,其中,基本实验主要包括存储器实验、矩阵键盘实验、A/D 转换实验、触摸屏实 验、LCD实验、串口实验、SPI总线接口、μC/OS Ⅱ实验;扩展实验包括I2C 实验、CAN 总线接口、GPRS实验。基本实验都有相应的视频作参考,读者可根据实际情况选做其 中的实验。

本书有如下几个特点:

① 本书是学习 ARM 架构嵌入式知识中接口知识模块的课程,适用于嵌入式方向 应用型本科教学,也适合读者自学。

② 本书编写中融入了作者多年的项目经验,编写时注重实践操作部分,尽量避免 繁琐、高深的理论介绍,强调培养学生的动手能力。

③ 配套的实验教学视频,结合国内常用的 UP-NETARM2410S 实验 平 台,本 书 90%以上的程序都可以在 ADS开发环境中进行在线调试。针对这些实验我们做了19

个视频供学习者参考,真正做到了手把手教学。

④ 配套光盘,本书 中 用 到 的 学 习 资 料 和 所 有 的 源 程 序 都 在 光 盘 中,利 于 教 学 与 自学。

⑤ 配套的网络资源,读者可以登录 http://jsjpg.jluzh.com/,找到嵌入式系统实 验室教学网,里面提供了一些免费的教学资源。

本书在编写过程中得到了北京航空航 天 大 学 何 立 民 教 授、北京航空航天大学出版 社马广云博士的很多帮助和鼓励,在此表示衷心的感谢。参与本书编写工作的人员如 下:吉林大学珠海学院陈远、朱天元、罗建、纪绪、苗雨、孙奇、陈卓、张荣高、乔瑞芳、孙永

(6)

,湖南铁道职业技术学院刘志成副教授,一并表示感谢。同时,感谢康学林副院长、

教学工作部杨文彦主任、王元良教授、庞振平教授、陈守孔教授、姜云飞教授、司玉娟教 授、张立教授、闫维和教授、刘亚松高级工程师等,以及家人的大力支持。

由于时间仓促,加之作者水平有限,错误和不足之处在所难免,敬请读者批评指正。

有兴趣的读 者,可以发送电子邮件到:[email protected],与作者进一步交 流;也可以发送电子邮件到:[email protected],与本书的策划编辑进行交流。

作 者 2009年6月于珠海

(7)

目 录

第1章 嵌入式微处理器

1.1 概 述 ………1

1.1.1 嵌入式系统的组成 ………1

1.1.2 嵌入式处理器的分类 ………2

1.1.3 嵌入式处理器的评估指标 ………5

1.2 嵌入式微处理器基础 ………6

1.2.1 微处理器设计中的基本概念 ………6

1.2.2 体系结构 ………9

1.2.3 CISC和 RISC技术 ……… 10

1.2.4 流水线技术……… 11

1.2.5 多核技术………15

1.2.6 嵌入式处理器发展趋势……… 17

1.3 总线概述……… 19

1.3.1 基本概念………19

1.3.2 片内总线………21

1.3.3 芯片总线………22

1.3.4 系统内总线……… 22

1.3.5 外部总线………24

1.4 常见的嵌入式微处理器………25

1.4.1 PowerPC处理器 ………25

1.4.2 68K/ColdFire处理器 ……… 28

1.4.3 MIPS处理器 ……… 28

1.4.4 SPARC处理器 ………29

1.4.5 ARM 处理器 ……… 30

1.5 ARM 处理器 ………35

(8)

1.5.1 ARM 内核 ………35

1.5.2 ARM 寄存器 ………37

1.5.3 信息存储的字节顺序………42

1.5.4 ARM 指令系统 ………44

1.5.5 ARM 处理器的中断和异常 ………48

1.6 ARM 内核 ………52

1.6.1 ARM7系列 ………52

1.6.2 ARM9系列 ………53

1.6.3 ARM10系列 ………55

1.6.4 ARM11系列 ………57

1.6.5 SecurCore微处理器系列 ………58

1.6.6 StrongARM 和 XScale系列………58

1.6.7 ARM Cortex处理器系列………60

1.7 基于 ARM 核的芯片选择………61

1.7.1 ARM 内核的选择 ………61

1.7.2 接口控制器的选择………62

1.7.3 多核的选择………64

1.7.4 国内常用 ARM 芯片………65

1.7.5 选择方案举例………68

习 题 ………69

第2章 嵌入式开发环境 2.1 硬件设计基础………70

2.1.1 电路设计基本流程………70

2.1.2 常用的电路设计工具………71

2.1.3 接口的作用………72

2.1.4 接口设计………75

2.2 基于开发板的二次开发………77

2.2.1 基于开发板的二次开发概述………77

2.2.2 嵌入式最小系统的硬件模块………78

2.2.3 嵌入式系统的启动架构………81

2.3 电源和复位接口………82

2.3.1 电源接口概述………82

2.3.2 低功耗设计和电源管理………83

(9)

·3 ·

2.3.3 电源接口电路……… 86

2.3.4 RST 电路 ……… 86

2.4 调试接口……… 88

2.4.1 嵌入式系统的调试方法……… 88

2.4.2 JTAG 调试接口………88

2.5 ADS1.2集成开发环境………90

2.5.1 CodeWarriorIDE ……… 90

2.5.2 AXD 调试器 ……… 92

2.5.3 使用 ADS开发软件过程 ………92

2.5.4 汇编语言和 C语言交互编程 ……… 95

习 题 ………98

第3章 嵌入式系统的存储器 3.1 存储系统概述………99

3.1.1 存储器的分类……… 99

3.1.2 存储系统的层次结构 ……… 101

3.1.3 半导体存储器的主要性能指标 ……… 102

3.1.4 嵌入式系统存储设备 ……… 103

3.2 随机存储器 RAM ………103

3.2.1 概 述 ………103

3.2.2 静态随机存储器 SRAM ………104

3.2.3 动态随机存储器 DRAM ………107

3.2.4 同步动态随机存储器SDRAM ……… 110

3.2.5 双倍速率随机存储器 DDRAM ……… 111

3.2.6 存储器接口 ……… 111

3.2.7 存储器接口编程 ………113

3.3 只读存储器 ROM ………116

3.3.1 掩膜 ROM ……… 116

3.3.2 可编程 ROM ………117

3.3.3 可擦除可编程 ROM ……… 117

3.3.4 电可擦除可编程 ROM ………118

3.3.5 Flash存储器 ………119

3.4 NorFlash芯片介绍 ………123

3.4.1 SST39VF160 ………123

(10)

3.4.2 SST39VF160的操作命令 ………124

3.4.3 NorFlash接口电路 ……… 128

3.4.4 NorFlash接口编程 ……… 129

3.5 NandFlash存储器 ………134

3.5.1 K9F1208UOB概述……… 134

3.5.2 K9F1208UOB的操作命令………137

3.5.3 NandFlash控制器 ……… 140

3.5.4 NandFlash接口电路 ……… 142

3.5.5 NandFlash接口编程 ……… 143

3.6 外部存储器 ………148

3.6.1 硬 盘 ………148

3.6.2 光盘存储器 ……… 150

3.6.3 Flash卡 ……… 151

习 题………154

第4章 基本输入/输出接口 4.1 输入/输出接口概述………155

4.1.1 GPIO 的结构与原理 ……… 155

4.1.2 S3C2410中的 GPIO ……… 157

4.2 键盘和鼠标接口 ……… 160

4.2.1 键盘接口 ……… 160

4.2.2 键盘接口编程 ………162

4.2.3 PS/2接口……… 164

4.3 A/D 转换器 ………167

4.3.1 A/D 转换器概述 ………167

4.3.2 A/D 转换的原理 ………168

4.3.3 D/A 转换的方法 ………173

4.3.4 A/D 转换电路 ………175

4.3.5 A/D 转换接口编程 ……… 177

4.4 触摸屏接口 ………179

4.4.1 触摸屏的工作原理 ……… 179

4.4.2 S3C2410触摸屏控制器 ………182

4.4.3 S3C2410触摸屏接口编程 ………185

4.5 显示器接口 ………188

(11)

·5 ·

4.5.1 CRT 显示器……… 189

4.5.2 LED 显示器……… 192

4.5.3 液晶显示器 ……… 196

4.6 LCD 控制器接口与编程……… 199

4.6.1 LCD 控制器概述 ………199

4.6.2 控制流程 ………200

4.6.3 LCD 接口编程………203

4.7 音频接口 ……… 206

4.7.1 I2S总线概述 ………206

4.7.2 基于I2S接口的硬件设计 ………209

4.7.3 基于I2S接口的软件设计 ………211

习 题………212

第5章 外部总线接口 5.1 串行与并行接口 ……… 213

5.1.1 概 述 ………213

5.1.2 RS 232 C串行接口 ………216

5.1.3 UART 控制器………218

5.1.4 串行接口编程 ………222

5.1.5 并行接口 ……… 224

5.2 USB接口……… 227

5.2.1 概 述 ………227

5.2.2 USB通信原理 ………231

5.2.3 S3C2410的 USB接口……… 233

5.2.4 USB接口软件设计……… 235

5.3 IEEE1394接口 ……… 236

5.3.1 概 述 ………236

5.3.2 IEEE1394协议结构 ……… 238

5.4 SPI接口 ……… 239

5.4.1 概 述 ………239

5.4.2 S3C2410中的SPI接口 ………241

5.4.3 SPI接口编程 ………243

5.5 I2C总线接口 ……… 244

5.5.1 概 述 ………244

(12)

5.5.2 I2C总线工作原理 ……… 245

5.5.3 I2C总线接口电路 ……… 247

5.5.4 I2C总线接口编程 ……… 248

5.6 PCMCIA 接口和 PCI总线……… 250

5.6.1 PCMCIA 接口 ………250

5.6.2 PCI总线 ……… 251

习 题………253

第6章 网络接口 6.1 以太网接口 ………254

6.1.1 概 述 ………254

6.1.2 以太网接口工作原理 ……… 258

6.1.3 以太网接口软件设计 ……… 258

6.2 CAN 总线接口……… 260

6.2.1 概 述 ………260

6.2.2 CAN 总线工作原理……… 261

6.2.3 CAN 总线接口………262

6.2.4 CAN 总线接口编程……… 264

6.3 常用无线接入技术 ………267

6.3.1 概 述 ………267

6.3.2 红外技术 ……… 267

6.3.3 HomeRF技术 ………268

6.3.4 GPRS/CDMA 接入技术………269

6.3.5 WLAN 技术……… 270

6.4 蓝牙接口 ……… 271

6.4.1 概 述 ………271

6.4.2 蓝牙的基本原理 ………273

6.4.3 蓝牙接口 ……… 276

6.5 GPRS接口 ………279

6.5.1 概 述 ………279

6.5.2 GPRS的基本原理 ……… 280

6.5.3 GPRS接口 ……… 282

6.5.4 GPRS接口编程 ………285

6.6 ZigBee技术 ………286

(13)

·7 ·

6.6.1 概 述 ………286

6.6.2 ZigBee技术的基本原理 ………288

6.6.3 ZigBee接口 ……… 290

6.7 GPS接口 ……… 292

6.7.1 概 述 ………292

6.7.2 GPS的基本原理 ………293

6.7.3 GPS接口 ………295

6.7.4 GPS接口编程 ………296

习 题………297

第7章 嵌入式系统软件设计 7.1 嵌入式系统软件结构 ………298

7.1.1 嵌入式软件体系结构 ……… 298

7.1.2 设备驱动层 ……… 299

7.1.3 实时操作系统 ………300

7.1.4 中间件层 ………301

7.1.5 应用程序 ………302

7.2 嵌入式操作系统 ……… 302

7.2.1 操作系统的基本功能 ……… 302

7.2.2 嵌入式操作系统 ………303

7.2.3 嵌入式操作系统μC/OS Ⅱ概述 ………305

7.3 μC/OS Ⅱ的内核结构 ……… 305

7.3.1 多任务 ………305

7.3.2 任务调度 ………308

7.3.3 中断与时间管理 ………309

7.3.4 μC/OS Ⅱ的初始化 ……… 311

7.3.5 μC/OS Ⅱ的任务通信和同步 ……… 312

7.4 μC/OS Ⅱ的原理与移植 ……… 314

7.4.1 移植μC/OS Ⅱ基本要求 ………314

7.4.2 主体移植过程 ………315

7.5 基于μC/OS Ⅱ的应用程序设计 ……… 318

7.5.1 基于μC/OS Ⅱ扩展的 RTOS体系结构 ………318

7.5.2 基于μC/OS Ⅱ的应用程序 ……… 319

7.5.3 基于绘图 API的应用程序 ………320

(14)

习 题………323

第8章 常用接口实验 8.1 嵌入式系统开发环境 ………324

8.2 存储器实验 ………326

8.3 矩阵键盘实验 ……… 333

8.4 A/D 转换实验……… 336

8.5 触摸屏实验 ………338

8.6 LCD 实验……… 342

8.7 串口实验 ……… 343

8.8 SPI实验 ……… 347

8.9 I2C接口实验 ……… 349

8.10 CAN 总线实验 ……… 353

8.11 GPRS总线实验……… 355

8.12 μC/OS Ⅱ实验……… 359

参考文献……… 363

(15)

第 1

嵌入式微处理器

嵌入式产品的设计是以处理器为 核 心 的 系 统 设 计,以 ARM 为内核的嵌入式处理器得到 了广泛的应用。本章首先介绍嵌入式系统的基本组成结构,然后介绍微处理器的基本知识以 及常用的嵌入式微 处 理 器,最后重点介绍国内几种以 ARM 为内核的嵌入式微处理器以及 ARM 芯片的选型方法。

1. 1 概 述

1.1.1 嵌入式系统的组成

嵌入式系统是软/硬件结合紧密的系统。一般而言,嵌入式系统由嵌入式硬件平台、嵌入 式软件组成。其中,嵌入式系统硬件平台包括各种嵌入式器件,图 1 1下半部分是一个以 ARM 嵌入式处理器为中心,由存储器、I/O 设备、通信模块以及电源等必要辅助接口组成的嵌 入式系统。嵌入式系统的硬件核心是嵌入式微处理器,有时为了提高系统的信息处理能力,常 外接DSP和 DSP协处理器(也可内部集成),以完成高性能信号处理。

嵌入式系统不同于普通计算机,它是为产品量身定做的专用计算机应用系统。在实际应 用中的嵌入式系统硬件配置非常精简,除了微处理器和基本的外围电路以外,其余的电路都可 根据需求和成本进行裁减、定制,非常经济、可靠。随着计算机技术、微电子技术、应用技术的 不断发展及纳米芯片加工工艺技术的发展,以微处理器为核心,集成多功能的 SOC 系统芯片 已成为嵌入式系统的核心。在嵌入式系统设计中,要尽可能地选择满足系统功能接口的 SOC 芯片,这些SOC集成了大量的外围 USB、UART、以太网、ADC/DAC等功能模块。

可编程片上系统SOPC(System OnProgrammableChip)结合了 SOC 和 PLD、FPGA 各 自的技术特点,使得系统具有可编程的功能,是可编程逻辑器件在嵌入式应用中的完美体现, 极大地提高了系统在线升级、换代的能力。以 SOC/SOPC 为核心,用最少的外围部件和连接 部件构成一个应用系统,满足系统的功能需求,这是嵌入式系统发展的一个方向。

嵌入式系统软件一般包含4个方面:设备驱动层、实时操作系统(RTOS)、中间件层、实际 应用程序层,如图1 1上半部分所示。

(16)

1 1 典型的嵌入式系统组成

1.1.2 嵌入式处理器的分类

嵌入式系统的硬件是以嵌入式处理器为核 心,配置必要的外围接口部件。在嵌入式系统 设计中,应尽可能选择适于系统功能接口的 SOC/SOPC 芯片,以最少的外围部件构成一个应 用系统,满足嵌入式系统的特殊需求。

嵌入式处理器可分为4类:嵌入式微处理器(MPU,MicroProcessorUnit)、嵌入式微控制 器(MCU,MicrocontrollerUnit)、嵌入式 DSP(EDSP,EmbeddedDigitalSignalProcessor)、嵌 入式片上系统(System OnChip)。随着嵌入式系统复杂性的提高,控制算法更加复杂。嵌入 式Internet的广泛应用、嵌入式操作系统的引入以及触摸屏等复杂人机接口的使用,使32位 处理器核的应用也日趋广泛。

1.嵌入式微处理器

嵌入式微处 理 器(MPU,MicroProcessorUnit)就是与 通用计算机 的 微 处 理 器 对 应 的 CPU。在应用中它的特征是具有32位以上的处理器,具有较高的性能,当然其价格也相应较 高。但与计算机处理器不同的是,在实际嵌入式应用中只保留和嵌入式应用紧密相关的功能 硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。和 工业控制计算机相比,嵌入式微处理器具有体积小、质量小、成本低、可靠性高的优点。早期的 嵌入式系统是将微处理器装配在专门设计的电路板上,并在电路板上设计了与嵌入式系统相

(17)

·3 · 关的功能模块,这样可以满足嵌入式系统体积小和功耗低的要求。目前,嵌入式处理器主要包 括Am186/88、386EX、PowerPC、Motorola68000、ARM/StrongARM、MIPS 等 系 列。其 中, ARM/StrongARM 是专为手持设备开发的嵌入式微处理器,属于中档价位。

2.嵌入式微控制器

嵌入式微控制器(MCU,MicrocontrollerUnit)将 CPU、存储器(少量的 RAM、ROM 或两 者都有)和其他外设封装在同一片集成电路里。嵌入式微控制器的典型代表是单片机,从20 世纪70年代末单片机出现到今天,虽然已经经过了近30年的发展,但这种8位电子器件目前 在嵌入式设备中仍然 有 着 极 其 广 泛 的 应 用。单片机芯片内部集成 ROM/EPROM、RAM、总 线、总线逻 辑、定 时/计 数 器、看 门 狗、I/O、串行口、脉宽调制 输 出、A/D、D/A、FlashRAM、

E2PROM等各种必要的功能和外设。和嵌入式微处理器相比,微控制器的最大特点是单片 化,体积大大减小,从而降低功耗和成本、提高可靠性。微控制器是目前嵌入式系统工业的主 流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。

由于MCU 具有低廉的价格、优良的性能等优势,所以拥有的品种和数量最多,其中比较 有代表 性 的 有8051、MCS�251、MCS�96/196/296、P51XA、C166/167、68K 系 列 以 及 MCU 8XC930/931、C540、C541。另 外,还 有 许 多 半 通 用 系 列,如 支 持 USB 接 口 的 MCU8XC930/

931、C540、C54l;支持I2C、CAN(控制器局域网)、LCD 及众多专用 MCU 和兼容系列。目前, MCU 占嵌入式系统约70%的市场份额。

3.嵌入式 DSP处理器

嵌入式DSP专门用来对离散时间信号进行极快地处理计算,提高了编译效率和执行速 度。DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行 DSP算法,编译效率较 高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面,DSP算法正在大量进入嵌入式 领域。

DSP的理论算法在20世纪70年代就已经出现,但是由于专门的 DSP 处理器还未出现, 所以这种理论算法只能通过 MPU 等分立元件实现。MPU 较低的处理速度无法满足 DSP的 算法要求,其应用领域仅仅局限于一些尖端的高科技领域。随着大规模集成电路技术发展, 1982年世界上诞生了首枚 DSP芯片,其运算速度比 MPU 快了几十倍,在语音合成和编码解

码器中得到了广泛应用。至20世纪80年代中期,随着 CMOS技术的进步与发展,第二代基 于CMOS工艺的 DSP 芯片应运而生,其存储容量和运算速度都得到成倍提高,成为语音处 理、图像硬件处理技术的基础。到20世纪80年代后期,DSP的运算速度进一步提高,应用领 域也从上述范围扩大到了通信和计算机方面。20世纪90年代后,DSP发展到了第五代产品, 集成度更高,使用范围也更加广阔。

DSP应用正在从通用微处理器中以普通指令实现 DSP功能过渡到采用嵌入式 DSP处理 器实现DSP功能。嵌入式 DSP处理器有两个发展方向:一是嵌入式 DSP处理器和嵌入式处

(18)

理器经过单片化设计,片上增加丰富的外设,从而成为具有高性能 DSP功能的SOC;二是在通 用微处理器、微控制器或 SOC中增加 DSP协处理器,如Intel公司的 MCS 296和 Siemems 公司的TriCore。推动嵌入式 DSP处理器发展的是嵌入式系统的智能化,如各种带有智能逻 辑的消费类产品、生物信息识别终端、带有加解密算法的键盘、ADSL、接入和实时语音压缩解 压系统等。这些应用的智能化算法的运算量一般都较大,特别是矢量运算、指针线性寻址等较 多,而这些正是 DSP处理器的长处所在。而随着嵌入式处理器技术的发展,许多嵌入式微处 理器核已设计、集成了 DSP的主要功能,也留有特殊算法的协处理器接口,这样很容易设计具 有DSP功能的高性能嵌入式SOC。目前,应用最为广泛的 DSP有 TI公司的 TMS320C2000/

C5000系列等,另外如Intel公司的 MCS 296 和 Siemens公司的 TriCore也有各自的应用 范围。

4.嵌入式片上系统

20世纪90年代后期,嵌入式系统设计从以嵌入式微处理器为核心的“集成电路”级设计 不断转向“集成系统”级设计,提出了 SOC 的基本概念。目前,嵌入式系统已进入单片系统 SOC的设计阶段,并开始逐步进入实用化、规范化阶段。集成电路已进入SOC的设计流程。

系统芯片出现的原因是信息市场快速的变化和竞争的日益加剧使得新产品在市场上的生 命期大为缩短,平均从36个月缩短为9~15个月,而具有原始创新思想的产品的设计周期也 大大缩短,这样 Time to Market给SOC提供了良好的发展空间。随着高性能系统对系统 复杂度、处理速度、功耗、功能多样化的需求,在信息处理与通信系统(如网络、多媒体、移动通 信)中迫切需要开发高性能的SOC芯片,传统的通过多种芯片集成系统的方法已很难满足实 际发展中对高性能的需求。因此,市场的需求对传统的IC设计和系统设计提出了新的挑战, 使得整机和IC设计在一个产品的设计初期就必须紧密结合于一体。另外,成本、价格、可靠性 等对集成电路设计者也同样提出了新的挑战。因此,不断发展和竞争日益激烈的信息市场不 断地推动着SOC技术的迅速发展。

集成电路技术自身的不断发展、器件特征尺寸的不断缩小、集成度的不断提高、多种工艺 及工艺集成技术的发展、设计方法的提高和 EDA 工具的发展,为将一个应用系统融合为SOC 从技 术 上 提 供 了 可 能。进入 21世纪后,集成电路设计进入了高度集成的 SOC 时代。采用 SOC设计技术可大幅度提高系统的可靠性,减小系统的面积,降低系统成本和功耗,极大地提

高系统的性能价格比。

SOC技术的出现,表明了微电子设计由以往的IC(电路集成)向IS(系统集成)发展,因 此,以功能设计为基础的传统IC设计流程必须转变到以功能整合为基础的 SOC 设计全新流 程,而面向嵌入式系统的SOC设计将是未来推动集成电路设计业发展至关重要的因素。

这种设计方法不是把系统所需要用到的所有 集 成 电 路 简 单 地 二 次 集 成 到 一 个 芯 片 上;如 果这样实现单片系统,是不可能达到单片系统所要求的高密度、高速度、高性能、小体积、低电 压、低功耗等指标的,特别是低功耗要求。单片系统设计要从整个系统性能要求出发,把微处

(19)

·5 · 理器、模型算法、芯片结构、外围器件各层次电路直至器件的设计紧密结合起来,并通过建立在 全新理念上的系统软件和硬件的协同设计,在单个芯片上实现整个系统的功能。有时,也可能 把系统做在几个芯片上,这是因为实际上并不是所有系统都能在一个芯片上实现;还可能因为 实现某种单片系统的工艺成本太高,以至于失去商业价值。目前,实际中应用的单片系统还属 于简单的单片系统,如智能IC卡等,但几个著名的半导体厂商正在紧锣密鼓地研制和开发像 单片PC这样的复杂单片系统。

1.1.3 嵌入式处理器的评估指标

嵌入式领域中有许多用来分析处理器性能的 标 准,如测量处理器执行一段指定程序的速 度。目前,一般消费者能够使用的测试向量非常多,问题是如何正确选择最为接近目标应用的 测试向量。换句话说,要先明确预期最终应用程序在待选平台的运行情况和测试目的,然后再 挑选符合要求的特定测试向量。常用的嵌入式处理器有如下几种指标:

(1) MIPS测试基准

MIPS测试方法是计算在单位时间内各类指令的平均执行条数,即根据各种指令的使用 频度和执行 时 间 来 计 算。其 单 位 是 每 秒 百 万 条 指 令,表 示 为 MIPS。MIPS 开 始 是 定 义 在 VAX11/70小型计算机上的,它是第一 台 以 MIPS 速 度 运 行 的 机 器。但 许 多 专 业 人 士 认 为 MIPS测试结果说明不了什么问题,因为指令只是性能度量空间中的一维而已,当把它扩展到 不同体系结构上时,其工作方式完全不同;除非用 VAX 系列的机器进行对比,否则 MIPS并 没什么意义。

(2) Dhrystone

Dhrystone测试基准是个简单的 C语言程序,它可以编译成大约2000条汇编代码,并且 不使用操作系统提供的服务功能。Dhrystone测试基准也符合古老的 VAX系列标准。目前, Dhrystone是市面上最普遍适用的测试向量,但 EEMBC 验证实验室(EEMBCCertification�

Labs,ECL)的最新研究指出,Dhrystone不仅不适于作为嵌入式系统的测试向量,甚至在其他 大多数场合下都不适合进 行 应 用。Dhrystone有许多漏洞,例如,易被非法利用、人为痕迹明 显、代码长度太短、缺乏验证及标准的运行规则等。

(3) EEMBC

EEMBC(EmbeddedMicroprocessorBenchmarkConsortium)测试向量是现在新兴流行 的被认为比Dhrystone和 MIPS更具有实际价值的测试基准。不同于 Dhrystone测试基准, EEMBC由其技术委员会开发,表示实际应用中能用来测量处理器能力的算法。EEMBC是一

个非营利性组织,致力于帮助设计人员快速有效地选择处理器;该组织到目前为止共发布了 46个性能测试向量,分别应用于电信、网络、消费性产品、办公室设备和汽车电子这5大领域。

EEMBC测试基于每秒钟算法执行的次数和编译代码大小的统计结果。因为编译器对代码大 小和执行效率会产生巨大的影响,所以每种测试必须包括足够多的编译器信息并设置不同的

(20)

优化选项。EEMBC发展势头很好,并有可能成为嵌入式系统开发人员进行处理器和编译器 性能比较的工业标准。

需要说明的是,虽然某些定量指标能够帮助评价不同的嵌入式处理器,但是一次详细的分 析比较仍然非常重要;这些需要仔细衡量的因素包括性能分析、功耗和效率分析、开发工具支 持以及价格。

1. 2 嵌入式微处理器基础

1.2.1 微处理器设计中的基本概念

1.ASIC与 FPGA

ASIC(ApplicationSpecificIntergratedCircuits)即专用集成电路,是指应特定用户要求和 特定电子系统的需要而设计、制造的集成电路。

FPGA(FieldProgrammableGateArray)即 现 场 可 编 程 门 阵 列,是 在 可 编 程 阵 列 逻 辑 PAL(ProgrammableArrayLogic)、门阵列逻辑 GAL(GateArrayLogic)、可编程逻辑器 件 PLD(ProgrammableLogicDevice)等可编程器件的基础上进一步发展的产物。它是作为专用 集成电路ASIC领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有 可编程器件门电路数有限的缺点。

图1 2为 FPGA 结构原理。FPGA 能完成任何数字器件的功能,上至高性能 CPU,下至 简单的74系列电路。FPGA 如同一张白纸或一堆积木,工程师可以通过传统的原理图输入法 或是硬件描述语言自由设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。

PCB完成以后,还可以利用 FPGA 的在线修改能力随时修改设计而不必改动硬件电路。用户 对FPGA 的编程数据放在 Flash芯片中,通过上电加载到 FPGA 中对其进行初始化;也可在 线对 其 编 程,实现系统在线重构,这一特性可以构建一个根据计算任务不同而实时定制的 CPU,这是当今研究的热门领域。使用 FPGA 来开发数字电路,可以大大缩短设计时间,减少 PCB面积,提高系统的可靠性。FPGA 的这些优点使得PLD 技术在20世纪90年代以后得到 飞速的 发 展,同时也大大推动了电子设计自动化 EDA(ElectronicDesignAutomatic)软件和 硬件描述语言VHDL的进步。

目前,用CPLD(复杂可编程逻辑器件)和FPGA(现场可编程门阵列)来进行 ASIC设计是 最为流行的方式之一,共性是都具有用户现场可编程特性、都支持边界扫描技术,但两者在集 成度、速度以及编程方式上具有各自的特点。ASIC有它固有的优势,特点是面向特定用户的 需求,它作为集成电路技术与特定用户的整机或系统技术紧密结合的产物,具有体积小、质量 小、功耗低、可靠性与性能高、保密性强、成本低等优点,所以在今后一段时间内 ASIC 仍然会 占据高端芯片市场和大批量应用的成熟中低端市场。

(21)

·7 · 1 2 FPGA 结构原理

FPGA 特别适合于样品研制或小批量产品开发,使产品能以最快的速度上市,而当市场扩 大时,它可以很容易地由 ASIC实现,因此开发风险也大为降低。

2.IP核

如果单片系统设计从零开始,则既不现实也无必要。因为除了设计不成熟外,未经过时间 考验,系统性能和质量得不到保证外;此外,还会因为设计周期太长而失去商业价值。为了缩 短单片系统设计周期和提高系统的可靠性,目前最有效的一个途径就是通过授权,使用已成熟 且经过优化的IP核模块来进行设计集成和二次开发,利用胶粘逻辑技术 GLT(GlueLogic Technology)把这些IP核模块嵌入到SOC中。

IP(IntellectualProperty)就是常说的知识产权。美国 Dataquest咨询公司将半导体产业 的IP定义为用于 ASIC、ASSP、PLD 等当中,并且是预先设计好的电路功能模块。

1997年,CICC(CustomICConference,专用IC 国际年会)的《单元建库》论文分册首次出 现有关IP的报道,而第二年 CCIC年会的IP论文数量已发展到3个分册。同年,半导体战略 论坛’98(SiliconStrategies�98)则组织了IP 专题国际研讨会,到 1999 年更进一步发展到 ASICStatus’99的论文总量的三分之一是讨论IP的文章。最著名的微电子国际年会(半导体 战略论坛)于1998年3月16~17日在美国加州的硅谷(SanJose)召开,并以IP产业的现状和 发展为大会主题。共有48个全球最著名的微电子公司的主要负责人作了大会发言,声势之盛 堪称史无前例。这些IC业界的主要学术年会历来是集成电路领域的风向标,具有方向性的指 导意义,它们从另一个角度展示了IP产业迅猛的发展势头。

IP分为软IP、固IP和硬IP。

软IP用计算机高级语言的形式描述功能块的行为,但是并不涉及用什么电路和电路元件 实现这些行为。软IP的最终产品基本上与通常的应用软件大同小异,开发过程与应用软件也 十分相似,只是所需的开发软、硬件环境,尤其工具软件要昂贵很多。软IP的设计周期短,设

(22)

计投入少,且由于不涉及物理实现,为后续设计留有很大的发挥空间,增大了IP的灵活性和适 应性。当然,软IP的一个不可避免的弱点是:会有一定比例的后续工序无法适应软IP设计, 从而造成一定程度的软IP修正。

固IP是完成了综合的功能块,有较大的设计深度,以网表的形式提交给客户使用。如果 客户与固IP使用同一个生产线的单元库,则IP的成功率会比较高。

硬IP提供设计的最终阶段产品:掩膜。随着设计深度的提高,后续工序所需要做的事情 就越少,当然,灵活性也就越少。不同的客户可以根据自己的需要订购不同的IP产品。

IP产业获利的途径主要有两种:一是从IP供应商来看,通过转让IP核、提供IP使用许可 证或以知识产权的形式进行技术参股等多种 形 式 获 得 直 接 收 益;二是从IP的集成商/开发商 来看,通过购买IP或IP的使用权来进行系统和SOC的二次开发,以实现价值增值。

在国外,IP专营公 司 也 日 见 增 多。目 前,自 主 开 发 和 经 营IP 核 的 公 司 有 英 国 的 ARM (AdvancedRISC Machine)、Amphion以及美国的 DeSOC等。以 ARM 公司为例,ARM 公司 以IP提供者的身份向各大半导体制造商出售知识产权,自己却不介入芯片的生产和销售。从 1985年设计开发出第一块 RISC处理器IP模块,到1990年首次将其IP专利权转让给 Apple

公司,一直到2000年,全球共有诸如IBM、TI、NXP、NEC、Sony等几十家公司采用其IP核开 发自己的产品;只用了不到15年的时间,基于 ARM 处理器核的SOC芯片的应用开发得到了 广泛的应用。SOC芯片已成为提高移动通信、网络、信息家电、高速计算、多媒体应用及军用 电子系统性能的核心器件,是嵌入式系统的硬件核心。

近年来,我国已经在IP产业上也有了很大的动作。科技部于2000年启动了“十五”国家 863计划超大规模集成电路SOC专项工作,希望通过这一努力,初步建成具有自主知识产权、

品种较为齐全、管理科学的国家级IP核库;并掌握国际水平的 SOC软硬件协同设计、IP核复 用和超深亚微米集成电路设计的关键技术。我国IP产业正在从概念阶段向实用阶段过渡。

3.硬件描述语言 HDL

随着EDA 技术的发展,使用硬件语言设计 PLD/FPGA 成为一种趋势。目前,最主要的 硬件描述语言是VHDL和 VerilogHDL。

VHDL诞生于1982年。1987年底,VHDL被IEEE 和美国国防部确认为标准硬件描述 语言。自IEEE公布了 VHDL的标准版本IEEE 1076(简称87版)之后,各 EDA 公司相继 或推出了自己的VHDL设计环境,或宣布自己的设计工具可以和 VHDL 接口。此后,VHDL 在电子设计领域得到了广泛的 推 广,并逐步取代了原有的非标准的硬件描述语言。1993年, IEEE对 VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL 的内容,公布

了新版本的VHDL,即IEEE标准的1076 1993版本(简称93版)。

VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征 的语 句 外,VHDL 的 语 言 形 式、描 述 风 格 及 句 法 是 十 分 类 似 于 一 般 的 计 算 机 高 级 语 言。

VHDL的程序结构特点是将一项工程设计或称设计实体(可以是一个元件、一个电路模块或

(23)

·9 · 一个系统)分成外部(或称可视部分、端口)和内部(或称不可视部分),即涉及实体的内部功能 和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计 就可以直接调用这个实体。这种将设计实体分成内、外两部分的概念是 VHDL系统设计的基 本点。

VerilogHDL就是在使用最广泛的 C语言的基础上发展起来的一种硬件描述语言,是由 GDA(GatewayDesignAutomation)公司的PhilMoorby在1983年末首创的,最初只设计了一 个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年,Moorby推 出它的第三个商用仿真器Verilog XL,获得了巨大的成功,从而使得 VerilogHDL迅速得到 推广应用。1989年,CADENCE公司收购了 GDA 公司,使得 VerilogHDL成为了该公司的独 家专利。1990年,CADENCE公司公开发表了 VerilogHDL,并成立 LVI组织以促进 Verilog HDL成为IEEE 标准,即IEEEStandard1364 1995.VerilogHDL 的最大特点就是易学易 用,如果有 C语言的编程经验,可以在一个较短的时间内很快的学习和掌握。

VHDL和 VerilogHDL两者相比,VHDL 的书写规则比 Verilog繁琐一些,学习起来要 困难一些;但 Verilog自由的语法也容易让少数初学者出错。从国内来看,VHDL的参考书很 多,便于 查 找 资 料,而 Verilog HDL 的参考书相对较少,这给学习 Verilog HDL 带 来 一 些 困难。

现在,VHDL和 Verilog作为IEEE的工业标准硬件描述语言,又得到众多 EDA 公司的 支持,在电子工 程 领 域,已 成 为 事 实 上 的 通 用 硬 件 描 述 语 言。有 专 家 认 为,在 新 的 世 纪 中, VHDL与 Verilog语言将承担起大部分的数字系统设计任务。

1.2.2 体系结构

1.冯·诺依曼体系结构

我们将数据和指令都存储在一个存储器中的 计 算 机 称 为 冯·诺依曼机,这种结构的计算 机系统由一个中央处理器单元(CPU)和一个存储器组成。存储器拥有数据和指令,并且可以 根据所给的地址对它进行读/写,图1 3(a)所示。

CPU 有几个可以存放内部使用值的内部寄存器。其中,存放指令在存储器中地址的寄存 器是程序计数器(PC)。CPU 先从存储器中取出指令,然后对指令进行译码,最后执行。程序 计数器并不直接决定机器下一步要做什么,它只是间接地指向了存储器中的指令。只要改变 指令,就能改变 CPU 所做的事情。

2.哈佛结构

另一种体系结构是哈佛结构,它与冯·诺依曼结构很相似,如图1 3(b)所示。哈佛结构 为数据和程序提供了各自独立的存储器,程序计数器只指向程序存储器而不指向数据存储器, 这样做的结果是很难在哈佛机上编写一个自修改的程序(写入数据值,然后使用这些值作为指

(24)

令的程序)。

哈佛体系结构现今仍广泛使用的原因很简单,即独立的程序存储器和数据存储器为数字 信号处理提供了较高的性能。实时处理信号会对数据存取系统带来两方面的压力:首先,大量 的数据流通过CPU;其次,数据必须在一个精确的时间间隔内处理,而不是恰巧轮到 CPU 时 进行处理。连续的定期到达的数据集合叫做流数据。让两个存储器有不同的端口就相当于提 供了较大存储器带宽,这样一来,数据和程序就不必再竞争同一个端口,这使得数据适时地移 动更容易。

1 3 冯·诺依曼结构和哈佛结构

1.2.3 CISC和 RISC技术

1.复杂指令集计算机

随着大规模集成电路技术的发展,计算机的硬件成本不断下降,软件成本不断提高,使得 指令系统增加了更多更复杂的指令,以提高操作系统的效率。另外,同一系列的新型机对其指 令系统只能扩充而不能减去旧型机的任意一条以 达 到 程 序 兼 容。这样一来,指令系统越来越 复杂,有的计算机指令甚至达到数百条,人们就称这种计算机为 CISC(ComplexInstruction SetComputer)。如我们所熟悉的IBM 公司的大、中型计算机,Intel公司的系列 CPU8086、

80286、80386微处理器等就是 CISC类 CPU 的典型代表。

当指令过于复杂时,机器的设计周期会很长,资金耗费会更大,同时使处理器的设计、验证 和日常维护也变得日益繁杂。例如,Intel8038632位机器耗资达1.5亿美元,开发时间长达3 年多,结果正确性还很难保证,维护也很困难;1975年,IBM 公司投资数亿美元研制的高速机 器FS机,最终以“复杂结构不宜构成高速计算机”的结论,宣告研制失败。

2.精简指令集计算机

RISC(ReducedInstructionSetComputer)的基本思想是尽量简化计算机指令功能,只保 留那些功能简单、能在一个节拍内执行完成的指令,而把较复杂的功能用一段子程序来实现。

RISC技术的精华就是通过简化计算机指令功能,使指令的平均执行周期减少,从而提高计算 机的工作主频,同时大量使用通用寄存器来提高子程序执行的速度。

(25)

·11 · RISC结构一般具有如下一些特点:

① 指令格式的规格化和简单化:选取使用频率最高的指令,并补充一些最有用的指令。

为与流水线结构相适应且提高流水线的效率,指令的格式必须趋于简单和固定的格式。比如 指令采用16位或32位的固定的长度,并且指令中的操作码字段、操作数字段都尽可能具有统 一的格式。此外,尽量减少寻址方式,从而使硬件逻辑部件简化且缩短译码时间,同时也提高 了机器执行效率和可靠性。

② 单周期的 执 行:大 部 分 指 令 在 一 个 或 小 于 一 个 机 器 周 期 完 成。这 从 根 本 上 克 服 了 CISC指令周期数有长有短而造成运行中偶发不确定性,致使运行失常的问题。

③ 采用面向寄存器堆的指令:RISC结构采用大量的寄存器———寄存器操作指令,使指令 系统更为精简。控制部件更为简化,指令执行速度大大提高。VLSI技术的迅速发展,使得在 一个芯片上做大量的寄存器成为可能,这也促成了 RISC结构的实现。

④ 采用高效的流水线操作:使指令在流水线中并行操作,从而 提 高 处 理 数 据 和 指 令 的 速度。

⑤ 硬布线控制:CISC处理器使用大的微码 ROM 进行指令译码;微代码的使用会增加复 杂性和每条指令的 执 行 周 期。RISC 中采用硬布线控制逻辑为主,不用或少用微程序控制。

硬布线控制逻辑可加快指令执行速度,减少微程序码中的指令解释开销。

⑥ 采用加载/存储(Load/Store)指令结构:在 CISC结构中,大量设置存储器操作指令、频 繁地访问内存会使执行速度降低。RISC结构的指令系统中,只有加载/存储指令可以访问内 存,而其他指令均在寄存器之间对数据进行处理。用加载指令从内存中将数据取出,再送到寄 存器;在寄存器之间对数据进行快速处理,并将它暂存在那里,以便再有需要时,不必再次访问 内存。在适当的时候,使用一条存储指令再将这个数据送回内存。采用这种方法可以提高指 令执行的速度。

1986年,IBM 公司正式推出采用 RISC 体系结构的工作站———IBM RTPC,并采用了新 的虚拟存储技术,主要用来完成 CAE、CAD、CAM 等方面的任务。采用了 RISC 体系结构的 还有SUN 公 司 的 SPARC、SuperSPARC、UtraSPARC,SGI公 司 的 84000、R5000、Rl0000, IBM 公 司 的 Power,PowerPC,Intel公 司 的 80860、80960,DEC 公 司 的 Alpha,HP 公 司 的

HP3000/930系列、950系列。另外,在有些典型的 CISC 处理机中也采用了 RISC 设计思想, 如Intel公司的80486、Pentium 系列等。而 RISC 思想在嵌入式方面最成功的应用实例就是 ARM 系列处理器。

1.2.4 流水线技术

1.流水线的工作原理

计算机指令的执行过程可以简单地分为取指和执行两个阶段。在不采用流水技术的计算 机里,取指令和执行指令是周而复始重复出现的,各条指令只能串行顺序地执行,即任一时刻

(26)

只能进行一个操作,如图1 4所示。

1 4 指令串行执行

图1 4中取指令的操作可由指令部件完成,执行指令的操作可由执行部件完成。这种串 行执行虽然控制简单,但是执行中各部件的利用率不高。如指令部件工作时,执行部件基本空 闲;而执行部件工作时,指令部件基本空闲,不能充分发挥 CPU 的性能。如果指令执行阶段 不访问主存,则完全可以利用这段时间取下一条指令,这样就使得取下一条指令的操作和执行 当前指令的操作同时进行,如图1 5所示。这就实现了两条指令的重叠,即指令的二级流水。

1 5 二级流水线

所谓流水线技术,是指将一个重复的时序过程分解为若干个子过程,而每一个子过程都可 有效地在其专用功能段上与其他子过程并行执行。并行性有两种含义:一是同时性,指2个以 上事件在同一时刻发生;二是并发性,指2个以上事件在同一时间间隔内发生。计算机的并行 处理技术主要有:时间并行、空间并行。时间并行技术是指时间重叠,在并行性概念中引入时 间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以 加快硬 件 周 转 而 赢 得 速 度。空间并行技术是指资源重复,在并行性概念中引入空间因素,以

“数量取胜”为原则来大幅提高计算机的处理速度。空间并行技术主要体现在多处理器系统和 多计算机系统。

如果将指令的执行过程进一步细分,则可构成3级或多级流水线。描述流水线的工作常 采用时空图的方法。

2.流水线分类

从不同的级别上可对流水线进行不同的分类,这些“分类”对理解流水线的概念有着重要 的作用,下面就从不同角度对流水线的分类进行描述:

① 从流水的级别上,可分为部件级、处理机级以及系统级流水线。

② 从流水的功能上,可分为单功能流水线和多功能流水线。

③ 从流水的连接上,可分为静态流水线和动态流水线。

④ 从流水是否有反馈回路,可分为线性流水线和非线性流水线。

⑤ 从流水的流动顺序上,可分为同步流水线和异步流水线。

⑥ 从流水线的数据表示上,可分为标量流水线和向量流水线。如果机器没有向量数据表

(27)

·13 · 示,只对标量数据进行流水处理就称为标量流水线。如果机器具有向量数据表示、设置了相应 的向量运算硬件和向量处理指令、能流水地对向量的各元素并行处理就称为向量流水线。

3.流水线处理机的主要指标

流水线性能的主要指标是吞吐率(Throughput)、效率(Efficiency)、流水深度(Deep)以及 加速比(Speedup)。

4.流水线中的多发技术

流水线技术使计算机系统结构产生重大革新,为了进一步发展,除了采用好的指令调度算 法、重新组织指令执行顺序、降低相关问题带来的干扰以及优化编译外,还可开发流水线中的 多发技术,设法在一个时钟周期(机器主频的倒数)内产生更多条指令的结果。常见的多发技 术有超标量技 术、超 流 水 线 技 术 和 超 长 指 令 字 技 术。假 设 处 理 一 条 指 令 分 4 个阶 段:取 指 (FI)、译码(ID)、执行(EX)和回写(WR)。图1 6是3种多发技术与普通4级流水线的比较。

1 6 4种流水技术的比较 1)超标量技术

超标量(SuperScalar)技术如图1 6(b)所示,是指在每个时钟周期内可同时并发多条独 立指令,即以并行操作方式将两条或两条以上(图1 6为3条)指令编译并执行。

2)超流水线技术

超流水线(SuperPipeLining)技术是将一些流水线寄存器插入到流水线段中,好比将流

(28)

水线再分道,如图1 6(c)所示。图1 6中将原来的一个时钟周期又分成3段,使超级流水线 的处理器周期比一般流水 线 的 处 理 器 周 期 短,如图1 6(a)所示。这样,在原来的时钟周期 内,功能部件被使用3次,使流水线以3倍于原来时钟频率的速度运行。与超标量计算机一 样,硬件不能调整指令的执行顺序,靠编译程序解决优化问题。

3)超长指令字技术

超长指令字(VLIW)技术和超标量技术都是采用多条指令在多个处理部件中并行处理的 体系结构,在一 个 时 钟 周 期 内 能 流 出 多 条 指 令。但 超 标 量 的 指 令 来 自 同 一 标 准 的 指 令 流, VLIW 则是由编译程序在编译时挖掘出指令间潜在的并行性后,把多条能并行操作的指令组 合成一条具有 多 个 操 作 码 字 段 的 超 长 指 令(指 令 字 长 可 达 几 百 位)。由 这 条 超 长 指 令 控 制 VLIW 机中多个独立工作的功能部件,由每一个操作码字段控制一个功能部件,相当于同时执 行多条指令,如图1 6(d)所示。VLIW 较超标量具有更高的并行处理能力,但对优化编译器 的要求更高,对 Cache的容量要求更大。

5.ARM 处理器中的流水线

从1995年以来,ARM 公司推出了几个新的 ARM 核,它们采用3级、5级流水线,使用指 令和数据存储器分离的 哈 佛 体 系 结 构(包括指令和数据分开的 Cache),获得了优越的性能。

到ARM7为止,ARM 处理器使用的简单3级流水线分别为:取指级、译码级、执行级。

当处理器执行简单的数据处理指令时,流水线使得一个时钟周期能执行一条指令。一条 指令用3个时钟周期来完成,因此有3周期的完成时间(Latency),但吞吐率(Throughput)是 每个周期一条指令。图1 7为 ARM 单周期指令的3级流水线操作。

1 7 ARM 单周期指令的3级流水线操作

3级流水线 ARM 处理器核的内部组织结构如图1 8所示,按处理器核的功能架构可分 成数据路径和控制通路。数据路径基本功能模块如下:

寄存器堆:寄存器堆主要用来保存处理器状态和处理器工作中的数据。

桶形移位器:主要完成指令中第2个操作数移位或循环移位。

运算器ALU:运算器 ALU 要求进行的算术或逻辑运算功能。

地址寄存器和增值器:用来选择和保存所有存储器地址,并在需要时通过地址增值器产 生顺序地址。

数据寄存器:数据寄存器对传送到存储器或从存储器取回的数据保存。

(29)

·15 · 1 8 3级流水线 ARM 的组织 控制通路基本功能模块是指令解码器和相关的控

制逻辑。对于单周期数据处理类指令,执行时需要读 取2个操作数到 A 总线和B总线。B总线上的数据可 能来自寄存器或立即数,经过桶式移位器移位后,与 A 总线上的 数 据 在ALU 中进行指令需 要 的 各 种 运 算, 再将结果写回到目的寄存器中。程序计数器的数据在 地址寄存器中,地址寄存器的数据送入地址增值器,然 后将增加后的 地 址 数 据 写 到R15,同时还写到地址寄 存器作为下一次取指的地址选择。

在ARM9TDMI中使用了典型的5级 ARM 流水 线。使用5级流水线 的 ARM 处 理 器 包 含 5 个 流 水 线,即取指、译码、执行、缓冲数据、回写。

1.2.5 多核技术

近20年来,推动微处理器性能不断提高的因素主 要有2个:半导体工艺技术的飞速进步和体系结构的 不断发展。半导体工艺技术的每一次进步都为微处理 器体系结构的研究提出了新的问题,开辟了新的领域;

体系结构的进展又在半导体工艺技术发展的基础上进

一步提高了微处理器的性能。这2个因素是相互影响,相互促进的。

2001 年,IBM 公 司 推 出 了 基 于 双 核 的 处 理 器 POWER4,这 是 世 界 上 第 一 款 采 用 多 核 技 术 的 高 性 能 服 务 器 处 理 器;随后 Sun公司 和 HP公 司 先 后 推 出 了 基 于 双 核 体 系 结 构 的 UltraSPARC及 PA RISC芯片。多核芯片通 过 在 一 个 芯 片 上 集 成 多 个 微 处 理 器 核 心 来 提 高 程 序 的 并 行 性,发挥其最大的能效。每个 微 处 理 器 核 心 实 质 上 都 是 一 个 相 对 简 单 的 单 线 程 微 处 理 器 或 者 比 较 简 单 的 多 线 程 微 处 理 器,这 样 多 个 微 处 理 器 核 心 就 可 以 并 行 地 执 行 程 序 代 码,因而 具 有 了 较 高 的 线 程 级 并 行 性。 多 核 CPU 采 用 了 相 对 简 单 的 微 处 理 器 作 为 处 理 器 核 心,使得多核 CPU 具有高主频、设计和验证周期短、控制逻 辑 简 单、扩 展 性 好、易于实现、功耗低、通信延迟小等优 点。 此 外,多 核 CPU 还能充分 利 用 不 同 应 用 的 指 令 级 并 行 和 线 程 级 并 行,具有较高线程级并行性的应用(如 商 业 应 用 等)可 以 很 好 地 利 用 这 种 结 构 来 提 高 性 能。目前,单芯片多处理 器 已 经 成 为 处 理 器 体 系 结 构 发 展 的 一 个 重 要 趋 势。

图1 9是 POWER4的芯片封装技术和大致的内部结构排列图。IBM 用于大型机的多 核心模块(MCM,Multi ChipModules)设计和芯片制造技术被发展到极限,4个各自独立的 POWER4处理器核重新组合在一块不到5英寸的金属基板上,而每个 POWER4核心内部又

(30)

1 9 POWER4的芯片封装技术及内部结构排列

集成了两个各自独立的处理 器,共享一个二级缓存,带宽高达100Gbps! 而每个核心之间的 带宽也 达 到 了 惊 人 的30Gbps。就一个 完整的 POWER4 处 理器个体 来 说,一 般 包 括 4 块 POWER4内核,共计8块处理器组成一个完整的SMP系统。

POWER4的架构为64位,采用深管道、乱序执行指令和超标量设计,除此之外,它还能运 行POWER 的指令集。每个 POWER4处理器拥有2个加载/存储单元;2个双精度的乘法浮 点计算单元;1个分支决定单元和1个条件代码寄存器执行单元。2个加载/存储单元也有能 力执行简单的整数指令,如加、减和位逻辑运算等。每个 POWER4处理器拥有32KB的数据 缓存(DataCache)和64KB的指令缓存(InstructionCache),数据缓存每个时钟周期可以完成 2个加载动作和1个存储动作。L1逻辑控制器支持在数据缓存和指令缓存中实现硬件指令

预取。

通常采用2种方式实现2个或多个内核协调工作。一种是采用对称(Symmetric)多处理 技术,就像IBM Power4处理器一样,将2颗完全一样的处理器封装在一个芯片内,达到双倍 或接近双倍的处理性能,由于共享了缓存和系统总线,因此这种做法的优点是能节省运算资 源。另一种技术采用非对称多处理(Asymmetric)的工作方式,即2个处理器内核彼此不同, 各自处理和执行特定的功能,在软件的协调下分担不同的计算任务,比如一个执行加密,而另 一个执行TCP/IP协议处理。这种处理器的内部结构更像人的大脑,某部分区域在执行某种 任务时具有更高的优先级和更强的能力。

(31)

·17 ·

1.2.6 嵌入式处理器发展趋势

1.高度集成化的SOC趋势

ARM 公司是一家IP供应商,核心业务是IP核以及相关工具的开发和设计。半导体厂商 通过 购 买ARM 公 司 的IP 授 权 来 生 产 自 己 的 微 处 理 器 芯 片。由 此 以 来,处 理 器 内 核 来 自 ARM 公司,各芯片厂商结合自身已有的技术优势以及芯片的市场定位等因素使芯片设计最 优化,从而产生了一大批高度集成、各具特色的 SOC芯片。例如,Intel公司的 XScale系列集 成了LCD 控制器、音频编/解码器,定位于智能 PDA 市场;Atmel公司的 AT91系列片内集成 了大容量Flash和 RAM、高精度 A/D 转换器以及大量可编程I/O 端口,特别适合于工业控制 领域;NXP公司的 LPC2000系列片内集成了128位宽的零等待 Flash存储器以及I2C、SPI、

PWM、UART 等传统接口,极高的性价比使它对传统的8/16位 MCU 提出了严峻的挑战。

然而如此众多的高集成度SOC 芯片将其内核统一于 ARM 核心,从而使得软、硬件平台 的移植变得相当容易;只要掌握了 ARM 开发技术的核心,就可以达到“一通百通”的目的,为 用户大大降低了培训、学习的成本,缩短了产品上市的时间。

高集成度SOC芯片的使用可以带来一系列好处,如减少了外围器件和 PCB面积、提高系 统抗干扰能力、缩小产品体积、降低功耗等。

ARM 公司的IP核也由 ARM7、ARM9发展到今天的 ARM11、Cortex系列。ARM11囊 括了Thumb 2、CoreSight、TrusZone等众多业界领先技术,同时由单一的处理器内核向多核 发展,为高端的嵌入式应用提供了强大的处理平台。

图1 10是 HMS30C7202一个SOC的功能和系统配置图。HMS30C7202是韩国现代公 司开发的基于ARM720T 内核、主频为70 MHz、功能非常强大、高集成度的片上系统;其片内 外设的资源很多,广泛应用于 PDA、智能电器、工业控制、网络设备、音频设备、电子图书、POS 等;其片上外围设备包括 UART、USB、PS2和 CAN 接口,I2S接口通过外部 DAC提供高质量 的音频输出。电源管理单元的特点是低功耗。

2.软核与硬核同步发展的SOPC技术

用可编程逻辑技术 把 整 个 系 统 放 到 一 块 硅 片 上,称作可编程片上系统 SOPC。SOPC 是 一种特殊的嵌入式系统:首先,它是 SOC,即由单个芯片实现整个系统的主要逻辑功能,具有 一般SOC的基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁 减、可扩充、可升级等灵活的设计方式。SOPC技术是可编程逻辑器件在嵌入式应用中的完美 体现。SOPC结合了 SOC和 PLD、FPGA 各自的优点,涵盖了嵌入式系统设计技术的全部内 容。除了以处理器和实时多任务操作系统(RTOS)为中心的软件设计技术、以 PCB和信号完 整性分析为基础的高速电路设 计 技 术 以 外,SOPC还涉及目前已引起普遍关注的软硬件协同 设计技术。由于SOPC的主要逻辑设计是在可编程逻辑器件内部进行,而 BGA 封装已广泛

(32)

1 10 HMS30C7202系统配置图

应用于微封装领域,传统的调试设备(如逻辑分析仪和数字示波器)已很难进行直接测试分析, 因此必将对以仿真技术为基础的软硬件协同设计 技 术 提 出 更 高 的 要 求。同时,新的调试技术 也将不断涌现。

SOPC是 PLD 和 ASIC 技术的融合,目前,0.13μm 的 ASIC 产品制造价格仍然相当高 昂;相反,信号处理算法、软件算法模块、控制逻辑等均可以以IP核形式体现,集成了硬核或软 核CPU、DSP、存储器、外围I/O 及可编程逻辑的 SOPC 芯片在应用上具有极高的灵活性,在 价格上具有极大的优势,因此,SOPC被业界称为“半导体产业的未来”。

SOPC技术中以 Nios和 MicroBlaze为代表的 RISC处理器、IP核以及用户以 HDL 语言 开发的逻辑部件可以最终综合 到 一 片FPGA 芯片中,实现真正的可编程片上系统,此时的嵌 入式处理器称之为“软处理器”或“软核”。Altera公司最新推出的 NiosII可以嵌入到 Altera 公司的StratixII、Stratix、Cyclone和 HardCopy 等 系 列 可 编 程 器 件 中,用 户 可 以 获 得 超 过 2000 MIPS的性能,而只需花费不到35美分的逻辑的资源。用户可以从3种处理器以及超过 60个的IP核中选择所需要的,设计师可以以此来创建一个最适合他们需求的嵌入式系统。

软核技术提供了极高的灵活性和性价比。

SOPC技术的另一个重要分支是嵌入硬核。集高密度逻辑(FPGA)、存储器(SRAM)及嵌

(33)

·19 · 入式处理器(ARM/PPC)于单片可编程逻辑器件上,实现了高速度与编程能力的完美结合。

Altra公司的 EPXA10芯片内部集成了工作频率可达200 MHz的 ARM922T 处理器、100万 门可编程逻辑、3MB的内部 RAM 以及512个可编程I/O 引脚,可以通过嵌入各种IP核实现 多种标准工业接口,如 PCI、USB等。软硬核同步发展,为用户提供了更多、更灵活的选择。

3.与 DSP技术融合

传统 的 嵌 入 式 微 处 理 器 可 以 分 为 微 控 制 器 MCU、微 处 理 器 MPU 和 数 字 信 号 处 理 器 DSP,然而随着技术的发展,它们之间的区别也变得越来越模糊,并有逐步融合的趋势。现在 不少的MCU 和 MPU 具备了 DSP的特征,如采用哈佛结构、增加了乘加运算指令等;同时,不 少DSP芯片内部也集成了 A/D、D/A、定时/计数器和 UART 等。这种技术融合趋势也有两 条不同的技术路线:

① 在中低端应用中,传统 MPU 内部集成 DSP宏单元以及在指令集中加入 DSP 功能指 令。ARM9E系列处理器采用哈佛结构的同时增加了16位数据乘法和乘加操作指令、双字数 据操作指令、Cache预取指令等,可以满足数字消费品、存储设备、马达控制和低端网络设备对 于控制和高密度运算能力的双重需求。

② 高端复杂应用中,向多内核、并行处理的方向发展。如 TI公司的开放媒体应用处理器 OMAP集成了 TI的 TMS320C5XXDSP内核、一个增强了的 ARM926 EJS内核以及内部处 理器通信机制和音频、视频、网络通信等部件,使之成为一个强大的多媒体移动计算平台。

1. 3 总线概述

1.3.1 基本概念

1.总线及总线分类

总线(Bus)是一组信号线的集合,是系统与系统之间或系统内部各部件之间进行信息传 输所必需的全部信号线的总和。总线是系统各部件之间的标准信息通路,部件之间的通信联 系必须通过这些总线;离开了这些总线,部件之间的任何联系都不可能发生。

总线按其本质可分为并行总线和串行总线 两 大 类,如图1 11所示。这两类总线有其自 身独特的优点和缺点,各有其生命力。并行总线的主要优点是高速、高效,缺点是通信距离短 (且速度越高,传输距离越短)。串行总线的特点是通信距离远、接口简单,缺点是速度慢。由 于并行总线速度高,所以主要以内部总线的形式用于微机内部高速通信;而串行总线信号线较 少,适合于远距离通信,所以主要便于微机的远程通信和构成由微机组成的系统或网络。并行 总线和串行总线按传送方式又可分为同步、异步等方式。

总线按其规模、功能和所处的位置可分为4大类:片内总线、芯片总线、系统内总线和外总

(34)

1 11 总线分类

线,通常将后3类并称为片外总线。嵌入式系统中,这4类总线构成了一个层次结构。

2.衡量总线的参数

总线是各种信号线的集合,是嵌入式系统中各部件之间传送数据、地址和控制信息的公共 通路。衡量总线的主要参数如下:

总线带宽:总线的带宽指的是一定时间内总线上可以传送的数据量,即人们常说的每秒传 送多少兆字节(MB)的最大稳态数据传输率。与总线带宽密切相关的两个概念是总线的位宽 和总线的工作时钟频率。

总线位宽:总线的位宽指的是总线能同时传送的数据位数(bit),即人们常说的32位、64 位等总线宽度的概念。总线的位宽越宽,总线每秒数据传输率越大,也就是总线带宽越宽。

总线工作时钟频率:总线的工作时钟频率以 MHz为单位,工作频率越高,则总线工作速 度越快,也即总线带宽越宽。总线带宽=总线位宽×总线频率/8,单位是 Mbps。

3.嵌入式系统总线的层次结构

现代微机系统中,总线的层次化结构发展十分迅速。层次化总线结构主要分4个层次:片 内总线、芯片总线、系统内总线和外总线,如图1 12所示。

① 片内总线是大规模集成电路(LSI,LargeScaleIntegratedCircuit)和超大规模集成电 路(VLSI)内部各寄存器或功能单元之间的信息交换通道,由生产厂家决定。

② 芯片总线又称元件级总线(Component LevelBus),它是指系统内或插件板内各元件 之间所使用的总线以及芯片与芯片间的总线(如SPI、I2C、并行总线)。

③ 系统内总线(SystemBus)又称插板级总线(Board LevelBus),是指微型计算机系统 内连接各插件板的总线,如IBM PC/XT 总线(62线)、ISA 总线以及 PCI总线等,板卡间总线 (ISA、PCI、VME)。

④ 外总线又称为通信总线(CommunicationBus),指用于完成计算机系统与系统之间、计 算机与外部设备之间通信的一类总线,如IEEE 488并行标准总线、RS 232 C串行标准总 线、设备间总线(USB、1394、RS 232)等。

(35)

·21 · 1 12 嵌入式系统总线的层次结构

1.3.2 片内总线

目前,业界采用 比 较 多 的 标 准 化、开 放 化 的 总 线 方 案,包 括IBM 公 司 的 CoreConnect、

ARM 的 AMBA 和Silicore公司的 Wishbone。

IBM 的 CoreConnect总线适合复杂和高端的应用,需要遵守严格的操作协议;ARM 的 AMBA 总线适合较复杂的应用,需要遵守较简单的操作协议;而 Wishbone总线适合较简单、

灵活、增加自己定义部分的应用,使用是完全免费的。

IBM 的先天 优 势 使 得 CoreConnect能 在 业 界 长 期 存 在,即 便 它 不 被 广 泛 接 受。 由 于 ARM 的大力推广和 AMBA 自身的技术特性,这种总线协议会在大多数应用领域被更多的设 计者采用;而由于 OpenCoreS组织的大力支持,Wishbone总线也将在比较长的时间内,在自 由设计者和中小型EDA 企业中占据主导地位。

图1 13是典型的基于 AMBA 总 线 的 芯 片 框 图,以 高 性 能 ARM 处 理 器 为 核 心;通 过

1 13 典型的基于 AMBA 总线的系统

數據

表 1 4 指令的条件码 条件码 助记符后缀 标  志 含  义 0000 EQ Z置位 相等 0001 NE Z清零 不相等 0010 CS C置位 无符号数大于或等于 0011 CC C清零 无符号数小于 0100 MI N 置位 负数 0101 PL N 清零 正数或零 0110 VS V 置位 溢出 0111 VC V 清零 未溢出 1000 HI C置位 Z清零 无符号数大于 1001 LS C清零 Z置位 无符号数小于或等于 1010 GE N 等于 V 带符号数大于或等于 1011 LT N
表 1 5 ARM 指令及功能描述 助记符 指令功能描述 ADC 带进位加法指令 ADD 加法指令 AND 逻辑 “与”指令 B 分支指令 BIC 位清零指令 BL 带返回的分支指令 BLX 带返回和状态切换的分支指令 BX 带状态切换的分支指令 CDP 协处理器数据操作指令 CMN 比较反值指令 CMP 比较指令 EOR “异或”指令 LDC 存储器到协处理器的数据传输指令 LDM 加载多个寄存器指令 LDR 存储器到寄存器的数据加载指令 MCR 从 ARM 寄存 器 到 协 处 理 器 寄 存 器 的

參考文獻

相關文件

 一般我們如過是透過分享器或集線器來連接電腦 的話,只需要壓制平行線即可(平行線:兩端接 頭皆為EIA/TIA 568B),

 一般我們如過是透過分享器或集線器來連接電腦 的話,只需要壓制平行線即可(平行線:兩端接 頭皆為 EIA/TIA 568B ), 如果是接機器對機器 的話,需要製作跳線( Crossover :一端為

学校现有教学仪器设备超过1亿元,学校图书馆纸质藏书125万册,电子图书

对于二元函数的自变量,我

通常把这种过去时期的,具有滞后作用的变量 叫做 滞后变量(Lagged Variable) ,含有滞后变量

FORTH ENGINE 的機器碼大部分都是 Forth 的基本指令。但也有一些較 複雜的 Forth 指令,需用幾個機器碼組合而成。這種指令,一般可用副程 式的方式來建造。但是在 FORTH

《妞出嫁》是表现一位少女在出嫁的过程中所呈

接收器: 目前敲擊回音法所採用的接收 器為一種寬頻的位移接收器 其與物體表