• CPU设计实战
  • CPU设计实战
21年品牌 40万+商家 超1.5亿件商品

CPU设计实战

全新正版 极速发货

53.71 5.4折 99 全新

库存6件

广东广州
认证卖家担保交易快速发货售后保障

作者汪文祥,邢金璋

出版社机械工业出版社

ISBN9787111674139

出版时间2021-04

装帧平装

开本16开

定价99元

货号1202319475

上书时间2024-06-01

大智慧小美丽

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
目录
丛书序言<br/>序<br/>前言<br/>第1章CPU芯片研发过程概述  1<br/>1.1处理器和处理器核  1<br/>1.2芯片产品的研制过程  2<br/>1.3芯片设计的工作阶段  3<br/>第2章硬件实验平台及FPGA设计流程  5<br/>2.1硬件实验平台  5<br/>2.1.1龙芯CPU设计与体系结构教学实验系统  5<br/>2.1.2龙芯计算机系统能力培养远程实验平台  7<br/>2.2FPGA的设计流程  8<br/>2.2.1FPGA的一般设计流程  9<br/>2.2.2基于Vivado的FPGA设计流程  10<br/>2.2.3Vivado使用小贴士  33<br/>2.3任务与实践  35<br/>第3章数字逻辑电路设计基础  36<br/>3.1数字逻辑电路设计与Verilog代码开发  36<br/>3.1.1面向硬件电路的设计思维方式  37<br/>3.1.2行为描述的Verilog编程风格  38<br/>3.1.3自顶向下的设计划分过程  38<br/>3.1.4常用数字逻辑电路的Verilog描述  39<br/>3.2数字逻辑电路功能仿真的常见错误及其调试方法  55<br/>3.2.1功能仿真波形分析  56<br/>3.2.2波形异常类错误的调试  60<br/>3.3进一步使用Vivado  66<br/>3.3.1定制同步RAM IP核  66<br/>3.3.2定制异步RAM IP核  68<br/>3.3.3查看时序结果和资源利用率  69<br/>3.4任务与实践  69<br/>3.4.1实践任务一:寄存器堆仿真  70<br/>3.4.2实践任务二:同步RAM和异步RAM仿真、综合与实现  71<br/>3.4.3实践任务三:数字逻辑电路的设计与调试  72<br/>第4章简单流水线CPU设计  74<br/>4.1设计一个简单的单周期CPU  75<br/>4.1.1设计单周期CPU的总体思路  75<br/>4.1.2单周期CPU的数据通路设计  76<br/>4.1.3单周期CPU的控制信号生成  88<br/>4.1.4复位的处理  91<br/>4.2不考虑相关冲突的流水线CPU设计  92<br/>4.2.1添加流水级间缓存  92<br/>4.2.2同步RAM的引入  93<br/>4.2.3调整更新PC的数据通路  96<br/>4.2.4不考虑相关冲突情况下流水线控制信号的设计  96<br/>4.3CPU设计开发环境(CPU_CDE)  97<br/>4.3.1快速上手CPU设计的开发环境  97<br/>4.3.2CPU设计开发环境的组织与结构  99<br/>4.3.3CPU设计开发环境使用进阶  113<br/>4.4CPU设计的功能仿真调试技术  117<br/>4.4.1为什么要用基于Trace比对的调试辅助手段  117<br/>4.4.2基于Trace比对调试手段的盲区及其对策  119<br/>4.4.3学会阅读汇编程序和反汇编代码  119<br/>4.4.4CPU调试中要抓取的信号以及如何看这些信号  124<br/>4.5指令相关与流水线冲突  125<br/>4.5.1处理寄存器写后读数据相关引发的流水线冲突  126<br/>4.5.2转移计算未完成  127<br/>4.6流水线数据的前递设计  127<br/>4.6.1前递的数据通路设计  128<br/>4.6.2前递的流水线控制信号调整  130<br/>4.6.3前递引发的主频下降  131<br/>4.7任务与实践  131<br/>4.7.1实践任务一:简单CPU参考设计调试  132<br/>4.7.2实践任务二:用阻塞技术解决相关引发的冲突  132<br/>4.7.3实践任务三:用前递技术解决相关引发的冲突  133<br/>第5章在流水线中添加运算类指令  134<br/>5.1算术逻辑运算类指令的添加  134<br/>5.1.1ADD、ADDI和SUB指令的添加  134<br/>5.1.2SLTI和SLTIU指令的添加  135<br/>5.1.3ANDI、ORI和XORI指令的添加  135<br/>5.1.4SLLV、SRLV和SRAV指令的添加  135<br/>5.2乘除法运算类指令的添加  136<br/>5.2.1调用Xilinx IP实现乘除法运算部件  136<br/>5.2.2电路级实现乘法器  140<br/>5.2.3电路级实现除法器  147<br/>5.3乘除法配套数据搬运指令的添加  154<br/>5.3.1乘法运算实现为单周期的情况  155<br/>5.3.2乘法运算实现为多周期流水的情况  155<br/>5.4任务与实践  156<br/>第6章在流水线中添加转移指令和访存指令  157<br/>6.1转移指令的添加  157<br/>6.1.1BGEZ、BGTZ、BLEZ和BLTZ指令  158<br/>6.1.2J指令  158<br/>6.1.3BLTZAL和BGEZAL指令  158<br/>6.1.4JALR指令  158<br/>6.2访存指令的添加  158<br/>6.2.1LB、LBU、LH和LHU指令的添加  158<br/>6.2.2SB和SH指令的添加  159<br/>6.2.3非对齐访存指令的说明  160<br/>6.2.4LWL和LWR指令的添加  162<br/>6.2.5SWL和SWR指令的添加  164<br/>6.3任务与实践  164<br/>第7章例外和中断的支持  166<br/>7.1例外和中断的基本概念  166<br/>7.1.1例外是一套软硬件协同处理的机制  166<br/>7.1.2精确例外  167<br/>7.2MIPS指令系统中与例外相关的功能定义  168<br/>7.2.1CP0寄存器  168<br/>7.2.2例外产生条件的判定  168<br/>7.2.3例外入口  170<br/>7.2.4MFC0和MTC0指令  170<br/>7.2.5ERET指令  170<br/>7.3流水线CPU实现例外和中断的设计要点  170<br/>7.3.1例外检测逻辑  170<br/>7.3.2精确例外的实现  172<br/>7.3.3CP0寄存器  173<br/>7.3.4CP0冲突  179<br/>7.4任务与实践  180<br/>7.4.1实践任务一:添加syscall例外支持  181<br/>7.4.2实践任务二:添加其他例外支持  181<br/>第8章AXI总线接口设计  184<br/>8.1类SRAM总线  184<br/>8.1.1主方和从方  185<br/>8.1.2类SRAM总线接口信号的定义  185<br/>8.1.3类SRAM总线的读写时序  186<br/>8.1.4类SRAM总线的约束  189<br/>8.2类SRAM总线的设计  189<br/>8.2.1取指设计的考虑  190<br/>8.2.2访存设计的考虑  195<br/>8.3AXI总线协议  195<br/>8.3.1AXI总线信号一览  195<br/>8.3.2理解AXI总线协议  197<br/>8.3.3类SRAM总线接口信号与AXI总线接口信号的关系  202<br/>8.4类SRAM-AXI的转接桥设计  203<br/>8.4.1转接桥的顶层接口  203<br/>8.4.2转接桥的设计要求  204<br/>8.4.3转接桥的设计建议  204<br/>8.5任务与实践  205<br/>8.5.1实践任务一:添加类SRAM总线支持  205<br/>8.5.2实践任务二:添加AXI总线支持  208<br/>8.5.3实践任务三:完成AXI随机延迟验证  210<br/>第9章TLB MMU设计  211<br/>9.1TLB模块的基础知识  212<br/>9.1.1TLB的虚实地址转换  212<br/>9.1.2TLB的软件访问  214<br/>9.1.3TLB的软硬件交互机制  215<br/>9.2TLB模块设计的分析  217<br/>9.3TLB相关的CP0寄存器与指令的实现  219<br/>9.4利用TLB进行虚实地址转换及TLB例外  221<br/>9.5任务与实践  222<br/>9.5.1实践任务一:TLB模块设计  222<br/>9.5.2实践任务二:添加TLB相关指令和CP0寄存器  224<br/>9.5.3实践任务三:添加TLB相关例外支持  225<br/>第10章高速缓存设计  226<br/>10.1Cache模块的设计  227<br/>10.1.1Cache的设计规格  227<br/>10.1.2Cache模块的数据通路设计  228<br/>10.1.3Cache模块内部的控制逻辑设计  237<br/>10.1.4Cache的硬件初始化问题  241<br/>10.2将Cache模块集成至CPU中  242<br/>10.2.1Cache命中情况下的CPU流水线适配  242<br/>10.2.2Cache缺失情况下的CPU流水线适配  243<br/>10.2.3Uncache访问的处理  243<br/>10.3CACHE指令  245<br/>10.3.1CACHE指令的定义  245<br/>10.3.2CACHE指令的实现  247<br/>10.4性能测试程序  247<br/>10.4.1Dhrystone  247<br/>10.4.2Coremark  250<br/>10.5Cache的性能  251<br/>10.6任务与实践  252<br/>10.6.1实践任务一:Cache模块设计  252<br/>10.6.2实践任务二:在CPU中集成ICache  254<br/>10.6.3实践任务三:在CPU中集成DCache  255<br/>10.6.4实践任务四:在CPU中添加CACHE指令  256<br/>第11章进阶设计  258<br/>11.1运行Linux内核  258<br/>11.1.1复杂SoC搭建  259<br/>11.1.2CPU的进一步完善  259<br/>11.1.3调试建议  260<br/>11.2提升主频的常用方法  261<br/>11.2.1平衡各级流水线的延迟  261<br/>11.2.2优化大概率事件的处理逻辑  261<br/>11.2.3用面积和功耗换时序  262<br/>11.2.4进一步切分流水线  262<br/>11.3静态双发射流水线的实现  262<br/>11.4动态调度机制的实现  263<br/>11.4.1一个双发射动态调度流水线的设计实例  263<br/>11.4.2动态调度中常见电路结构的RTL实现  266<br/>11.5硬件转移预测技术  266<br/>11.5.1硬件转移预测的流水线设计框架  267<br/>11.5.2一个轻量级转移预测器的设计规格  268<br/>11.6访存优化技术  269<br/>11.6.1store buffer  269<br/>11.6.2Non-blocking Cache  270<br/>11.6.3访存乱序执行  271<br/>11.6.4多级Cache  271<br/>11.6.5Cache预取  272<br/>11.7多核处理器的实现  272<br/>11.7.1多核互联结构  273<br/>11.7.2多核编号  273<br/>11.7.3核间中断  273<br/>11.7.4多核情况下的存储一致性  274<br/>11.7.5LL-SC指令对的访存原子性  282<br/>附录A龙芯CPU设计与体系结构教学实验系统  285<br/>附录BVivado的安装  288<br/>附录C简单MIPS指令系统规范  301<br/>附录DVivado使用进阶  345

内容摘要
本书系统介绍了CPU设计的开发过程、各个开发环节的知识要点、开发过程中需要关注的工程问题等内容。通过学习本书,读者可以自行设计出一个具有基本功能的CPU。本书内容循序渐进,从设计CPU所需的基础知识,到设计简单流水线CPU设计、多周期流水线CPU、高速缓存,以及提升主频、运行Linux内核等进阶功能,使读者逐步掌握CPU设计的方法和设计要点。本书适合作为高校计算机及相关专业计算机组成、计算机体系结构等课程的实践教材,也可供对CPU开发感兴趣的读者阅读。

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP