RISC-V架构DSP处理器设计 / “人工智能+”核心理论与关键技术丛书
定价:¥89.00
作者: 张志伟
出版时间:2025-07-01
出版社:机械工业出版社
- 机械工业出版社
- 9787111764175
- 1-1
- 2025-07-01
- 234
内容简介
本书从指令集定义、运算部件、存储结构、工具链开发等诸多环节,系统全面地介绍RISC-V架构DSP的设计过程,并分享了每个设计环节中的思考、原则和技术选择过程,以及如何充分利用开源成果进行敏捷开发。本书是基于RISC-V架构进行DSP设计工程技术实践的成果,其特点是产品导向,注重技术的可操作性和系统性,并进行了必要的创新。
目录
CONTENTS
目 录
序一
序二
前言
第1章 数字信号处理器简介 1
1.1 数字信号处理器的发展历程 1
1.2 数字信号处理器的主要特征 6
1.2.1 指令集 6
1.2.2 存储结构 7
1.2.3 数据格式与算法 7
1.2.4 运算部件 9
1.2.5 寻址方式 10
1.3 数字信号处理器的应用领域 12
1.4 本章小结 13
第2章 RISC-V架构 14
2.1 RISC-V的发展历程 14
2.2 RISC-V的优势 15
2.2.1 技术优势 15
2.2.2 生态优势 16
2.2.3 知识产权优势 17
2.3 RISC-V的主要特征 18
2.3.1 模块化设计 18
2.3.2 基础整数指令集 19
2.3.3 M扩展 23
2.3.4 F扩展 23
2.3.5 C扩展 25
2.3.6 Zifencei扩展 27
2.3.7 Zicsr扩展 28
2.3.8 特权架构 29
2.4 RISC-V开源项目 31
2.4.1 加州大学伯克利分校 32
2.4.2 PULP组织 33
2.4.3 OpenHW组织 33
2.4.4 lowRISC组织 35
2.4.5 平头哥 36
2.4.6 北京开源芯片研究院 37
2.4.7 印度理工学院马德拉斯分校 37
2.5 本章小结 38
第3章 SpringCore体系结构 39
3.1 设计目标 39
3.2 数字信号处理算法 40
3.3 指令集 42
3.3.1 支持的数据类型 42
3.3.2 结构寄存器 43
3.3.3 控制和状态寄存器 43
3.3.4 编码概括 44
3.3.5 指令扩展 45
3.4 内核结构 47
3.4.1 取指单元 48
3.4.2 译码单元 48
3.4.3 控制单元 48
3.4.4 执行单元 49
3.4.5 访存单元 50
3.4.6 存储空间 51
3.5 本章小结 51
第4章 SpringCore流水线设计 52
4.1 流水线技术简介 52
4.2 取指单元 54
4.2.1 取指单元结构 55
4.2.2 指令对齐 55
4.3 译码单元 56
4.3.1 预译码 57
4.3.2 基础译码 58
4.3.3 异常检测 59
4.3.4 指令发射 60
4.4 相关检测 61
4.4.1 数据相关 61
4.4.2 结构相关 63
4.4.3 控制相关 66
4.5 流水线低功耗控制 67
4.6 循环控制 68
4.7 控制和状态寄存器 70
4.8 本章小结 71
第5章 访存结构 72
5.1 存储结构 72
5.2 存储属性与保护 74
5.2.1 物理存储属性 75
5.2.2 安全域 76
5.2.3 访存保护机制 77
5.3 访存模块设计 78
5.3.1 访存功能 78
5.3.2 访存流水线 81
5.4 存储一致性 84
5.4.1 存储一致性定义及意义 84
5.4.2 存储一致性模型 84
5.4.3 顺序同步指令及原子指令 86
5.5 本章小结 87
第6章 运算部件 88
6.1 定点运算部件设计 88
6.1.1 定点运算部件的结构 89
6.1.2 超前进位加法器 90
6.1.3 布什-华莱士树乘法器 93
6.1.4 乘累加部件 99
6.1.5 移位器 100
6.1.6 基4 SRT除法器 103
6.2 浮点运算部件设计 105
6.2.1 浮点数据格式 105
6.2.2 浮点控制和状态寄存器 108
6.2.3 浮点运算部件的结构 109
6.2.4 浮点乘加器 111
6.2.5 浮点除法和开平方根部件 116
6.3 本章小结 121
第7章 异常和中断机制 122
7.1 异常和中断介绍 122
7.2 中断处理机制 123
7.2.1 中断类型 124
7.2.2 处理器中断控制器 125
7.2.3 中断处理机制的流程 128
7.3 本章小结 131
第8章 调试单元设计 132
8.1 JTAG简介 132
8.1.1 JTAG背景 132
8.1.2 JTAG接口 133
8.1.3 TAP控制器 133
8.2 调试单元的结构 135
8.2.1 调试单元总览 135
8.2.2 调试传输模块 137
8.2.3 调试模块 138
8.2.4 核内调试支持 144
8.3 调试处理机制 145
8.3.1 调试流程 145
8.3.2 复位控制与运行控制 146
8.3.3 抽象命令 147
8.4 调试功能实现示例 149
8.4.1 单步调试 149
8.4.2 访问连续存储区域 150
8.5 本章小结 151
第9章 软件开发环境 152
9.1 编译器 152
9.1.1 LLVM的工作流程 153
9.1.2 LLVM后端的处理流程 155
9.1.3 有向无环图 158
9.1.4 指令合法化 162
9.1.5 调用下降 163
9.2 汇编器和反汇编器 164
9.2.1 工作过程 164
9.2.2 使用方法 166
9.3 链接器 166
9.3.1 链接器的选择 167
9.3.2 链接器松弛 167
9.3.3 栈的增长方向 168
9.4 模拟器 168
9.4.1 模拟器软件架构 169
9.4.2 模拟器定制开发 170
9.5 调试器 171
9.5.1 调试器方案概述 171
9.5.2 GDB介绍 172
9.5.3 OpenOCD介绍 172
9.6 集成开发环境 173
9.6.1 软件框架与插件开发 174
9.6.2 工程创建与管理 175
9.6.3 工具链集成与配置 175
9.6.4 调试方案 176
9.7 本章小结 177
第10章 基于SpringCore的DSP芯片 178
10.1 FDM320RV335 178
10.2 功能结构 181
10.3 引脚说明 183
10.4 地址映射 184
10.5 低功耗模式 187
10.6 原型板卡 188
10.7 芯片性能 189
10.8 本章小结 191
参考文献 192
目 录
序一
序二
前言
第1章 数字信号处理器简介 1
1.1 数字信号处理器的发展历程 1
1.2 数字信号处理器的主要特征 6
1.2.1 指令集 6
1.2.2 存储结构 7
1.2.3 数据格式与算法 7
1.2.4 运算部件 9
1.2.5 寻址方式 10
1.3 数字信号处理器的应用领域 12
1.4 本章小结 13
第2章 RISC-V架构 14
2.1 RISC-V的发展历程 14
2.2 RISC-V的优势 15
2.2.1 技术优势 15
2.2.2 生态优势 16
2.2.3 知识产权优势 17
2.3 RISC-V的主要特征 18
2.3.1 模块化设计 18
2.3.2 基础整数指令集 19
2.3.3 M扩展 23
2.3.4 F扩展 23
2.3.5 C扩展 25
2.3.6 Zifencei扩展 27
2.3.7 Zicsr扩展 28
2.3.8 特权架构 29
2.4 RISC-V开源项目 31
2.4.1 加州大学伯克利分校 32
2.4.2 PULP组织 33
2.4.3 OpenHW组织 33
2.4.4 lowRISC组织 35
2.4.5 平头哥 36
2.4.6 北京开源芯片研究院 37
2.4.7 印度理工学院马德拉斯分校 37
2.5 本章小结 38
第3章 SpringCore体系结构 39
3.1 设计目标 39
3.2 数字信号处理算法 40
3.3 指令集 42
3.3.1 支持的数据类型 42
3.3.2 结构寄存器 43
3.3.3 控制和状态寄存器 43
3.3.4 编码概括 44
3.3.5 指令扩展 45
3.4 内核结构 47
3.4.1 取指单元 48
3.4.2 译码单元 48
3.4.3 控制单元 48
3.4.4 执行单元 49
3.4.5 访存单元 50
3.4.6 存储空间 51
3.5 本章小结 51
第4章 SpringCore流水线设计 52
4.1 流水线技术简介 52
4.2 取指单元 54
4.2.1 取指单元结构 55
4.2.2 指令对齐 55
4.3 译码单元 56
4.3.1 预译码 57
4.3.2 基础译码 58
4.3.3 异常检测 59
4.3.4 指令发射 60
4.4 相关检测 61
4.4.1 数据相关 61
4.4.2 结构相关 63
4.4.3 控制相关 66
4.5 流水线低功耗控制 67
4.6 循环控制 68
4.7 控制和状态寄存器 70
4.8 本章小结 71
第5章 访存结构 72
5.1 存储结构 72
5.2 存储属性与保护 74
5.2.1 物理存储属性 75
5.2.2 安全域 76
5.2.3 访存保护机制 77
5.3 访存模块设计 78
5.3.1 访存功能 78
5.3.2 访存流水线 81
5.4 存储一致性 84
5.4.1 存储一致性定义及意义 84
5.4.2 存储一致性模型 84
5.4.3 顺序同步指令及原子指令 86
5.5 本章小结 87
第6章 运算部件 88
6.1 定点运算部件设计 88
6.1.1 定点运算部件的结构 89
6.1.2 超前进位加法器 90
6.1.3 布什-华莱士树乘法器 93
6.1.4 乘累加部件 99
6.1.5 移位器 100
6.1.6 基4 SRT除法器 103
6.2 浮点运算部件设计 105
6.2.1 浮点数据格式 105
6.2.2 浮点控制和状态寄存器 108
6.2.3 浮点运算部件的结构 109
6.2.4 浮点乘加器 111
6.2.5 浮点除法和开平方根部件 116
6.3 本章小结 121
第7章 异常和中断机制 122
7.1 异常和中断介绍 122
7.2 中断处理机制 123
7.2.1 中断类型 124
7.2.2 处理器中断控制器 125
7.2.3 中断处理机制的流程 128
7.3 本章小结 131
第8章 调试单元设计 132
8.1 JTAG简介 132
8.1.1 JTAG背景 132
8.1.2 JTAG接口 133
8.1.3 TAP控制器 133
8.2 调试单元的结构 135
8.2.1 调试单元总览 135
8.2.2 调试传输模块 137
8.2.3 调试模块 138
8.2.4 核内调试支持 144
8.3 调试处理机制 145
8.3.1 调试流程 145
8.3.2 复位控制与运行控制 146
8.3.3 抽象命令 147
8.4 调试功能实现示例 149
8.4.1 单步调试 149
8.4.2 访问连续存储区域 150
8.5 本章小结 151
第9章 软件开发环境 152
9.1 编译器 152
9.1.1 LLVM的工作流程 153
9.1.2 LLVM后端的处理流程 155
9.1.3 有向无环图 158
9.1.4 指令合法化 162
9.1.5 调用下降 163
9.2 汇编器和反汇编器 164
9.2.1 工作过程 164
9.2.2 使用方法 166
9.3 链接器 166
9.3.1 链接器的选择 167
9.3.2 链接器松弛 167
9.3.3 栈的增长方向 168
9.4 模拟器 168
9.4.1 模拟器软件架构 169
9.4.2 模拟器定制开发 170
9.5 调试器 171
9.5.1 调试器方案概述 171
9.5.2 GDB介绍 172
9.5.3 OpenOCD介绍 172
9.6 集成开发环境 173
9.6.1 软件框架与插件开发 174
9.6.2 工程创建与管理 175
9.6.3 工具链集成与配置 175
9.6.4 调试方案 176
9.7 本章小结 177
第10章 基于SpringCore的DSP芯片 178
10.1 FDM320RV335 178
10.2 功能结构 181
10.3 引脚说明 183
10.4 地址映射 184
10.5 低功耗模式 187
10.6 原型板卡 188
10.7 芯片性能 189
10.8 本章小结 191
参考文献 192




