《软/硬件协同设计》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)帕特利克 R.肖蒙(Patrick R.Schaumont)著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2016
  • ISBN:9787111520184
  • 页数:348 页
图书介绍:本书共四部分,分15章。第一部分(第1~4章)介绍软件和硬件的基本性质并讨论软/硬件协同设计的动因。第1章重点介绍软硬件的概念与性质。第2章介绍数据流系统的稳定性分析,与数据流模型的性能优化策略。第3章介绍如何将数据流模型实现为硬件和软件。第4章介绍C代码的控制流和数据流分析。第二部分(第5~8章)阐述自定义体系结构的设计空间。第5章介绍带数据路径的有限状态机。第6章介绍微程序的系统结构。第7章介绍通用的嵌入式RISC内核。第8章将通用嵌入式内核集成在片上系统(SoC)的FSMD模块中。第三部分(第9~12章)描述片上系统(SoC)中硬件与软件的交互机制。第9章介绍软、硬件通信的核心概念。第10章讨论片上总线的结构。第11章描述微处理器接口。第12章讨论把硬件模块封装到一个预定义的软/硬件接口的设计技术。第四部分(第13~15章)描述3个软硬件协同设计的应用实例。第13章给出Trivium流密码算法的一个协处理器的设计方案。第14章给出AES的一个协处理器的设计方案。第15章给出计算CORDIC旋转的一个协处理器的设计方案。

第一部分 基本概念 2

第1章 何为硬件,何为软件 2

1.1 软/硬件协同设计简介 2

1.1.1 硬件 2

1.1.2 软件 3

1.1.3 硬件与软件 5

1.1.4 定义软/硬件协同设计 8

1.2 探求高能效 9

1.2.1 性能 9

1.2.2 能效 10

1.3 软/硬件协同设计的驱动因素 11

1.4 软/硬件协同设计的空间 12

1.4.1 平台的设计空间 12

1.4.2 应用的映射 13

1.5 软、硬件设计的二重性 14

1.6 抽象层次的建模 15

1.7 并发与并行 17

1.8 小结 19

1.9 扩展阅读 19

1.10 问答题 19

第2章 数据流建模与变换 22

2.1 数据流图介绍 22

2.1.1 令牌、参与者、队列 25

2.1.2 触发率、触发规则、调度 26

2.1.3 同步数据流图 26

2.1.4 SDF图的确定性 27

2.2 剖析SDF图 28

2.2.1 构建周期性容许顺序调度方案(PASS) 28

2.2.2 实例:构建一个PAM-4系统的PASS 30

2.3 控制流建模以及数据流建模的局限 31

2.3.1 以SDF语义仿真控制流 31

2.3.2 扩展SDF语义 32

2.4 添加时间与资源 32

2.4.1 实时性限制与输入/输出采样率 33

2.4.2 数据流的资源模型 33

2.4.3 对吞吐量的限制 34

2.5 设计转换 35

2.5.1 多速率扩展 36

2.5.2 重定时 37

2.5.3 流水线 37

2.5.4 铺展 38

2.6 数据流建模小结 39

2.7 扩展阅读 40

2.8 问答题 40

第3章 数据流的软件与硬件实现 43

3.1 数据流的软件实现 43

3.1.1 队列和参与者的软件实现 43

3.1.2 基于动态调度器的软件实现 47

3.1.3 实例:四点快速傅里叶变换的SDF表示 48

3.1.4 基于静态调度的顺序触发 52

3.2 数据流的硬件实现 54

3.2.1 单速率SDF图的硬件实现 54

3.2.2 流水线 57

3.3 数据流的软/硬件结合实现 58

3.4 小结 61

3.5 扩展阅读 61

3.6 问答题 62

第4章 数据流与控制流分析 63

4.1 C程序的数据边与控制边 63

4.2 数据边与控制边的实现 65

4.3 构建控制流图 66

4.4 构建数据流图 67

4.5 应用实例:C程序的硬件转换 70

4.5.1 数据通路的设计 70

4.5.2 控制电路的设计 71

4.6 单赋值程序 72

4.7 小结 75

4.8 扩展阅读 75

4.9 问答题 75

第二部分 自定义体系结构的设计空间 80

第5章 FSMD 80

5.1 基于时钟周期的位并行硬件 80

5.1.1 连线和寄存器 80

5.1.2 精度和符号 82

5.1.3 表达式的硬件映射 83

5.2 硬件模块 85

5.3 有限状态机 87

5.4 FSMD简介 89

5.4.1 建模 89

5.4.2 FSMD模型:两个堆叠的FSM 91

5.4.3 FSMD的不唯一性 92

5.4.4 实现 93

5.5 FSMD设计实例:一个中位数处理器 95

5.5.1 设计规范:计算中位数 95

5.5.2 映射中位数模型到硬件 96

5.5.3 数据输入的序列化 96

5.5.4 完全顺序化的计算 97

5.6 恰当的FSMD 101

5.7 FSMD的语言映射实例 102

5.7.1 GEZEL语言的GCD 102

5.7.2 Verilog语言的GCD 103

5.7.3 VHDL语言的GCD 104

5.7.4 SystemC语言的GCD 106

5.8 小结 108

5.9 扩展阅读 108

5.10 问答题 109

第6章 微程序的体系结构 113

6.1 有限状态机的局限性 113

6.1.1 状态激增 113

6.1.2 异常的处理 114

6.1.3 运行时的灵活性 114

6.2 微程序的控制 114

6.3 微指令的编码 115

6.3.1 转移域 115

6.3.2 命令域 116

6.4 微程序的数据通路 118

6.4.1 数据通路的体系结构 118

6.4.2 撰写微程序 119

6.5 实现微程序机 121

6.6 微程序的解释器 126

6.7 微程序的流水线 130

6.7.1 微指令寄存器 130

6.7.2 数据通路的条件码寄存器 131

6.7.3 流水线的下一个地址逻辑 131

6.8 微控制器中的微程序设计 132

6.8.1 系统结构 132

6.8.2 实例:Bresenham直线演算法 133

6.9 小结 137

6.10 扩展阅读 137

6.11 问答题 137

第7章 通用嵌入式核 140

7.1 处理器 140

7.1.1 典型微处理器的工具链 140

7.1.2 从C程序到汇编指令 141

7.2 RISC的流水线 144

7.2.1 控制冒险 146

7.2.2 数据冒险 147

7.2.3 结构冒险 148

7.3 程序的组织 149

7.3.1 数据类型 149

7.3.2 存储器层次结构中的变量 150

7.3.3 函数的调用 152

7.3.4 程序的布局 154

7.4 编译器工具 155

7.4.1 大小检查 156

7.4.2 段检查 157

7.4.3 汇编代码检查 158

7.5 低级程序分析 159

7.6 处理器的仿真 162

7.6.1 指令集的仿真 162

7.6.2 基于目标代码执行的分析 163

7.6.3 低抽象级仿真 167

7.7 小结 167

7.8 扩展阅读 168

7.9 问答题 168

第8章 SoC 174

8.1 SoC的概念 174

8.1.1 角色的分配 174

8.1.2 SoC与自定义硬件的接口 175

8.2 SoC体系结构的四个设计原则 176

8.2.1 异构分布式数据处理 176

8.2.2 异构分布式通信 177

8.2.3 异构分布式存储 178

8.2.4 分层控制 180

8.3 实例:便携式多媒体系统 181

8.4 SoC的GEZEL建模 183

8.4.1 一个带有StrongARM核的片上系统 183

8.4.2 带有8051核的乒乓缓存 186

8.4.3 AVR ATMega28上的UART 189

8.5 小结 192

8.6 扩展阅读 192

8.7 问答题 193

第三部分 软/硬件接口 196

第9章 软/硬件通信原理 196

9.1 连接软件和硬件 196

9.2 同步化方案 197

9.2.1 同步化概念 197

9.2.2 信号量 199

9.2.3 单向与双向交握 201

9.2.4 阻塞、非阻塞式传输 203

9.3 通信限制与计算限制 203

9.4 紧耦合与松耦合 205

9.5 小结 206

9.6 扩展阅读 206

9.7 问答题 206

第10章 片上总线 208

10.1 片上总线系统 208

10.1.1 几个现今的片上总线标准 208

10.1.2 共享总线上的元件 209

10.1.3 点到点总线上的元件 210

10.1.4 片上总线的物理实现 210

10.1.5 总线命名的约定 211

10.1.6 总线的时序图 211

10.1.7 通用总线的定义 212

10.2 总线传输 213

10.2.1 简单的读写传输 213

10.2.2 传输数据的大小和字节顺序 214

10.2.3 改进的总线传输 217

10.3 多个主设备的总线系统 219

10.3.1 总线的优先级 221

10.3.2 总线锁定 221

10.4 总线的拓扑结构 223

10.4.1 总线开关 224

10.4.2 片上网络 225

10.5 小结 226

10.6 扩展阅读 227

10.7 问答题 227

第11章 微处理器接口 231

11.1 内存映射接口 231

11.1.1 内存映射寄存器 231

11.1.2 信箱 233

11.1.3 FIFO队列 234

11.1.4 主从式交握 234

11.1.5 共享内存 235

11.1.6 内存映射接口的GEZEL建模 236

11.2 协处理器接口 239

11.2.1 快速单工链路 240

11.2.2 LEON-3浮点协处理器接口 242

11.3 自定义指令接口 243

11.3.1 ASIP设计流程 244

11.3.2 实例:端字节序处理器 245

11.3.3 实例:Nios-II自定义指令接口 249

11.3.4 寻找合适的ASIP指令 251

11.4 小结 254

11.5 扩展阅读 254

11.6 问答题 255

第12章 硬件接口 258

12.1 协处理器的硬件接口 258

12.1.1 协处理器硬件接口的功能 258

12.1.2 处理器接口的布局 259

12.2 数据设计 259

12.2.1 灵活的寻址机制 260

12.2.2 复用和掩码 260

12.3 控制设计 261

12.3.1 层次控制 262

12.3.2 内部流水线的控制 263

12.4 编程模型=控制设计+数据设计 266

12.4.1 地址映射 267

12.4.2 指令集 267

12.5 小结 268

12.6 扩展阅读 268

12.7 问答题 268

第四部分 应用实例 274

第13章 Trivium密码协处理器 274

13.1 Trivium流密码算法 274

13.1.1 流密码 274

13.1.2 Trivium 275

13.1.3 Trivium的硬件映射 276

13.1.4 Trivium的硬件测试平台 279

13.2 8位平台上的Trivium 280

13.2.1 8051协处理器的总体设计 280

13.2.2 8051协处理器的硬件平台 281

13.2.3 8051的软件驱动程序 284

13.3 32位平台上的Trivium 287

13.3.1 存储器映射接口的硬件平台 288

13.3.2 存储器映射接口的软件驱动程序 291

13.3.3 自定义指令接口的硬件平台 293

13.3.4 自定义指令接口的软件驱动程序 296

13.4 小结 297

13.5 扩展阅读 298

13.6 问答题 298

第14章 AES协处理器 299

14.1 AES加密和解密 299

14.2 AES加密协处理器的存储映射 300

14.2.1 硬件的接口操作 300

14.2.2 编程模型 300

14.2.3 软件驱动程序的设计 302

14.2.4 硬件接口设计 304

14.2.5 系统性能评估 306

14.3 带自定义指令的AES加/解密 307

14.3.1 AES T盒的参考实现 307

14.3.2 AES T盒的自定义指令设计 310

14.3.3 在GEZEL中AEST盒的自定义指令设计 312

14.3.4 AES T盒的软件集成和性能 315

14.4 小结 317

14.5 扩展阅读 317

14.6 问答题 317

第15章 CORDIC协处理器 318

15.1 坐标旋转数字计算机算法 318

15.1.1 算法 318

15.1.2 C语言的参考实现 319

15.2 CORDIC的硬件协处理器 321

15.2.1 CORDIC硬件核 321

15.2.2 快速单工链路协处理器的硬件接口 323

15.3 CORDIC协处理器的FPGA原型 326

15.4 大量旋转问题的处理 328

15.5 小结 332

15.6 扩展阅读 332

15.7 问答题 333

附录A GEZEL软件实践 334

参考文献 346