手把手教你设计CPU
¥
37
3.7折
¥
99
九五品
仅1件
作者胡振波 著
出版社人民邮电出版社
ISBN9787115480521
出版时间2018-06
版次1
装帧平装
开本16开
纸张胶版纸
页数405页
字数99999千字
定价99元
上书时间2024-06-29
商品详情
- 品相描述:九五品
- 商品描述
-
基本信息
书名:手把手教你设计CPU
定价:99.00元
作者:胡振波 著
出版社:人民邮电出版社
出版日期:2018-06-01
ISBN:9787115480521
字数:598000
页码:405
版次:1
装帧:平装
开本:16开
商品重量:
编辑推荐
系统介绍RISC-V指令集架构。结合实际RISC-V开源实例进行教学。深入剖析RISC-V处理器的微架构以及代码实现。使读者能够快速掌握并轻松使用RISC-V架构处理器。通过学习实例蜂鸟E200的Verilog代码,您将能成为一名合格的数字IC设计工程师。通过学习本书推荐的完整开源SoC平台,您也可以快速搭建FPGA原型平台,运行完整的软件实例。
内容提要
本书是一本介绍通用CPU设计的入门书,以通俗的语言系统介绍了CPU和RISC-V架构,力求为读者揭开CPU设计的神秘面纱,打开计算机体系结构的大门。本书共分为四部分。靠前部分是CPU与RISC-V的综述,帮助初学者对CPU和RISC-V快速地建立起认识。第二部分讲解如何使用Verilog设计CPU,使读者掌握处理器核的设计精髓。第三部分主要介绍蜂鸟E203配套的SoC和软件平台,使读者实现蜂鸟E203 RISC-V处理器在FPGA原型平台上的运行。第四部分是附录,介绍了RISC-V指令集架构,辅以作者加入的背景知识解读和注解,以便于读者理解。本书不仅适合CPU或芯片设计相关从业者阅读使用,也适合作为大中专院校相关师生学习RISC-V处理器设计(使用Verilog语言)和CPU设计的指导用书。
目录
部分CPU与RISC-V综述章一文读懂CPU之三生三世21.1眼看他起高楼,眼看他宴宾客,眼看他楼塌了——CPU众生相31.1.1ISA——CPU的灵魂41.1.2CISC与RISC51.1.332位与64位架构61.1.4ISA众生相61.1.5CPU的领域之分101.2ISA请扛起这口锅——为什么国产CPU尚未足够成功121.2.1MIPS系——龙芯和君正121.2.2x86系——北大众志、兆芯和海光131.2.3Power系——中晟宏芯131.2.4Alpha系——申威141.2.5ARM系——飞腾、华为海思、展讯和华芯通141.2.6背锅侠ISA151.3人生已是如此艰难,你又何必拆穿——CPU从业者的无奈171.4无敌是多么寂寞——ARM统治着的世界181.4.1独乐乐与众乐乐——ARM公司的盈利模式181.4.2小个子有大力量——无处不在的Cortex-M系列211.4.3移动王者——Cortex-A系列在手持设备领域的巨大成功231.4.4进击的巨人——ARM进军PC与服务器领域的雄心251.5东边日出西边雨,道是无晴却有晴——RISC-V登场251.6原来你是这样的“薯片”——ARM的免费计划281.7旧时王谢堂前燕,飞入寻常百姓家——你也可以设计自己的处理器28第2章大道至简——RISC-V架构之魂292.1简单就是美——RISC-V架构的设计哲学302.1.1无病一身轻——架构的篇幅302.1.2能屈能伸——模块化的指令集322.1.3浓缩的都是精华——指令的数量322.2RISC-V指令集架构简介332.2.1模块化的指令子集332.2.2可配置的通用寄存器组342.2.3规整的指令编码342.2.4简洁的存储器访问指令342.2.5高效的分支跳转指令352.2.6简洁的子程序调用362.2.7无条件码执行372.2.8无分支延迟槽372.2.9零开销硬件循环382.2.10简洁的运算指令382.2.11优雅的压缩指令子集392.2.12特权模式402.2.13CSR寄存器402.2.14中断和异常402.2.15矢量指令子集402.2.16自定制指令扩展412.2.17总结与比较412.3RISC-V软件工具链422.4RISC-V和其他开放架构有何不同442.4.1平民英雄——OpenRISC442.4.2豪门显贵——SPARC442.4.3名校优生——RISC-V45第3章乱花渐欲迷人眼——盘点RISC-V商业版本与开源版本463.1各商业版本与开源版本综述473.1.1RocketCore(开源)473.1.2BOOMCore(开源)493.1.3FreedomSoC(开源)503.1.4LowRISCSoC(开源)503.1.5PULPinoCoreandSoC(开源)503.1.6PicoRV32Core(开源)513.1.7SCR1Core(开源)513.1.8ORCACore(开源)513.1.9AndesCore(商业IP)523.1.10MicrosemiCore(商业IP)523.1.11CodasipCore(商业IP)533.1.12蜂鸟E200Core与SoC(开源)533.2总结53第4章开源RISC-V——蜂鸟E200系列超低功耗Core与SoC544.1与众不同的蜂鸟E200处理器554.2蜂鸟E200简介——蜂鸟虽小,五脏俱全564.3蜂鸟E200型号系列574.4蜂鸟E200性能指标584.5蜂鸟E200配套SoC594.6蜂鸟E200配置选项60第二部分手把手教你使用Verilog设计CPU第5章先见森林,后观树木——蜂鸟E200设计总览和顶层介绍655.1处理器硬件设计概述665.1.1架构和微架构665.1.2CPU、处理器、Core和处理器核665.1.3处理器设计和验证的特点665.2蜂鸟E200处理器核设计哲学675.3蜂鸟E200处理器核RTL代码风格介绍685.3.1使用标准DFF模块例化生成寄存器685.3.2推荐使用assign语法替代if-else和case语法705.3.3其他若干注意事项715.3.4小结725.4蜂鸟E200模块层次划分725.5蜂鸟E200处理器核源代码735.6蜂鸟E200处理器核配置选项735.7蜂鸟E200处理器核支持的RISC-V指令子集745.8蜂鸟E200处理器流水线结构745.9蜂鸟E200处理器核顶层接口介绍745.10总结77第6章流水线不是流水账——蜂鸟E200流水线介绍786.1处理器流水线概述796.1.1从经典的五级流水线说起796.1.2可否不要流水线——流水线和状态机的关系816.1.3深处种菱浅种稻,不深不浅种荷花——流水线的深度816.1.4向上生长——越来越深的流水线826.1.5向下生长——越来越浅的流水线836.1.6总结836.2处理器流水线中的乱序836.3处理器流水线中的反压846.4处理器流水线中的冲突846.4.1流水线中的资源冲突846.4.2流水线中的数据冲突856.5蜂鸟E200处理器的流水线866.5.1流水线总体结构866.5.2流水线中的冲突876.6总结87第7章万事开头难吗——一切从取指令开始887.1取指概述897.1.1取指特点897.1.2如何快速取指907.1.3如何处理非对齐指令917.1.4如何处理分支指令927.2RISC-V架构特点对于取指的简化977.2.1规整的指令编码格式977.2.2指令长度指示码放于低位977.2.3简单的分支跳转指令987.2.4没有分支延迟槽指令1007.2.5提供明确的静态分支预测依据1007.2.6提供明确的RAS依据1017.3蜂鸟E200处理器的取指实现1017.3.1IFU总体设计思路1027.3.2Mini-Decode1037.3.3Simple-BPU分支预测1057.3.4PC生成1097.3.5访问ITCM和BIU1117.3.6ITCM1157.3.7BIU1167.4总结116第8章一鼓作气,执行力是关键——执行1178.1执行概述1188.1.1指令译码1188.1.2指令执行1188.1.3流水线的冲突1198.1.4指令的交付1198.1.5指令发射、派遣、执行、写回的顺序1198.1.6分支解析1218.1.7小结1218.2RISC-V架构特点对于执行的简化1218.2.1规整的指令编码格式1228.2.2优雅的16位指令1228.2.3精简的指令个数1228.2.4整数指令都是两操作数1228.3蜂鸟E200处理器的执行实现1238.3.1执行指令列表1238.3.2EXU总体设计思路1238.3.3译码1248.3.4整数通用寄存器组1308.3.5CSR寄存器1338.3.6指令发射派遣1348.3.7流水线冲突、长指令和OITF1398.3.8ALU1458.3.9高性能乘除法1578.3.10浮点单元1588.3.11交付1598.3.12写回1598.3.13协处理器扩展1608.3.14小结160第9章善始者实繁,克终者盖寡——交付1619.1处理器交付、取消、冲刷1629.1.1处理器交付、取消、冲刷简介1629.1.2处理器交付常见实现策略1639.2RISC-V架构特点对于交付的简化1649.3蜂鸟E200处理器交付硬件实现1649.3.1分支预测指令的处理1659.3.2中断和异常的处理1689.3.3多周期执行指令的交付1699.3.4小结1690章让子弹飞一会儿——写回17010.1处理器的写回17110.1.1处理器写回功能简介17110.1.2处理器写回常见策略17110.2蜂鸟E200处理器的写回硬件实现17110.2.1终写回仲裁17210.2.2OITF和长指令写回仲裁17410.2.3小结1771章哈弗还是比亚迪——存储器架构17811.1存储器架构概述17911.1.1谁说处理器一定要有缓存17911.1.2处理器一定要有存储器18011.1.3ITCM和DTCM18211.2RISC-V架构特点对于存储器访问指令的简化18311.2.1仅支持小端格式18311.2.2无地址自增自减模式18311.2.3无“一次读多个数据”和“一次写多个数据”指令18311.3RISC-V架构的存储器相关指令18411.3.1Load和Store指令18411.3.2Fence指令18411.3.3“A”扩展指令18411.4蜂鸟E200处理器存储器子系统硬件实现18511.4.1存储器子系统总体设计思路18511.4.2AGU18611.4.3LSU19011.4.4ITCM和DTCM19211.4.5“A”扩展指令处理19511.4.6Fence与Fence.I指令处理20011.4.7BIU20211.4.8ECC20211.4.9小结2022章黑盒子的窗口——总线接口单元BIU20312.1片上总线协议概述20412.1.1AXI20412.1.2AHB20412.1.3APB20512.1.4TileLink20512.1.5总结比较20512.2自定义总线协议ICB20612.2.1ICB总线协议简介20612.2.2ICB总线协议信号20712.2.3ICB总线协议时序20712.3ICB总线的硬件实现21012.3.1一主多从21012.3.2多主一从21112.3.3多主多从21212.4蜂鸟E200处理器核BIU21212.4.1BIU简介21212.4.2BIU微架构21312.4.3BIU源码分析21412.5蜂鸟E200处理器SoC总线21412.5.1SoC总线简介21512.5.2SoC总线微架构21512.5.3SoC总线源码分析21612.6总结2163章不得不说的故事——中断和异常21713.1中断和异常概述21813.1.1中断概述21813.1.2异常概述21913.1.3广义上的异常21913.2RISC-V架构异常处理机制22113.2.1进入异常22113.2.2退出异常22413.2.3异常服务程序22513.3RISC-V架构中断定义22613.3.1中断类型22613.3.2中断屏蔽22813.3.3中断等待22913.3.4中断优先级与仲裁23013.3.5中断嵌套23013.3.6总结比较23113.4RISC-V架构异常相关CSR寄存器23213.5蜂鸟E200异常处理的硬件实现23213.5.1蜂鸟E200处理器的异常和中断实现要点23213.5.2蜂鸟E200处理器的异常类型23313.5.3蜂鸟E200处理器对于mepc的处理23413.5.4蜂鸟E200处理器的中断接口23413.5.5蜂鸟E200处理器CLINT微架构及源码分析23513.5.6蜂鸟E200处理器PLIC微架构及源码分析23813.5.7蜂鸟E200处理器交付模块对中断和异常的处理24213.5.8小结2454章不起眼的,其实是难的——调试机制24614.1调试机制概述24714.1.1交互调试概述24714.1.2跟踪调试概述24914.2RISC-V架构的调试机制24914.2.1调试器软件的实现25014.2.2调试模式25014.2.3调试指令25114.2.4调试机制CSR25114.2.5调试中断25114.3蜂鸟E200调试机制的硬件实现25114.3.1蜂鸟E200交互式调试概述25114.3.2DTM模块25314.3.3硬件调试模块25314.3.4调试中断处理25714.3.5调试机制CSR寄存器的实现25814.3.6调试机制指令的实现25814.3.7小结2595章动如脱兔,静若处子——低功耗的诀窍26015.1处理器低功耗技术概述26115.1.1软件层面低功耗26115.1.2系统层面低功耗26115.1.3处理器层面低功耗26215.1.4单元层面低功耗26215.1.5寄存器层面低功耗26315.1.6锁存器层面低功耗26415.1.7SRAM层面低功耗26415.1.8组合逻辑层面低功耗26415.1.9工艺层面低功耗26515.2RISC-V架构的低功耗机制26515.3蜂鸟E200低功耗机制的硬件实现26515.3.1蜂鸟E200系统层面低功耗26515.3.2蜂鸟E200处理器层面低功耗26715.3.3蜂鸟E200单元层面低功耗26915.3.4蜂鸟E200寄存器层面低功耗26915.3.5蜂鸟E200锁存器层面低功耗27215.3.6蜂鸟E200SRAM层面低功耗27315.3.7蜂鸟E200组合逻辑层面低功耗27415.3.8蜂鸟E200工艺层面低功耗27515.4总结2756章工欲善其事,必先利其器——RISC-V可扩展协处理器27616.1专用领域架构DSA27716.2RISC-V架构的可扩展性27816.2.1RISC-V的预留指令编码空间27816.2.2RISC-V的预定义的Custom指令27916.3蜂鸟E200的协处理器接口EAI27916.3.1EAI指令的编码27916.3.2EAI接口信号28016.3.3EAI流水线接口28116.3.4EAI存储器接口28216.3.5EAI接口时序28316.4蜂鸟E200的协处理器参考示例28616.4.1示例协处理器需求28616.4.2示例协处理器指令28716.4.3示例协处理器实现28816.4.4示例协处理器性能28916.4.5示例协处理器代码290第三部分使用Verilog进行仿真和在FPGASoC原型上运行软件7章冒个烟先——运行Verilog仿真测试29217.1E200开源项目的代码层次结构29317.2E200开源项目的测试用例29417.2.1riscv-tests自测试用例29417.2.2编译ISA自测试用例29517.3E200开源项目的测试平台(TestBench)29817.4在VerilogTestBench中运行测试用例2998章套上壳子上路——实现SoC和FPGA原型30218.1FreedomE310SoC简介30318.2HBird-E200-SoC简介30418.2.1HBird-E200-SoC组成结构30418.2.2HBird-E200-SoC代码结构30918.3HBird-E200-SoCFPGA原型平台31118.3.1FPGA开发板31118.3.2生成mcs文件烧写FPGA31418.3.3JTAG调试器31718.3.4FPGA原型平台DIY总结32018.4蜂鸟E200专用FPGA开发板3209章画龙点睛——运行和调试软件示例32119.1Freedom-E-SDK平台简介32219.2SIRV-E-SDK平台简介32319.2.1SIRV-E-SDK简介32319.2.2SIRV-E-SDK代码结构32419.3使用SIRV-E-SDK运行示例程序32519.4使用GDB和OpenOCD调试示例程序32819.5Windows图形化IDE开发工具331第20章是骡子是马?拉出来遛遛——运行跑分程序33220.1跑分程序简介33320.2Dhrystone简介33320.3运行DhrystoneBenchmark33520.4CoreMark简介33720.5运行CoreMarkBenchmark33820.6总结与比较340附录部分RISC-V架构详述附录ARISC-V架构指令集介绍342附录BRISC-V架构CSR寄存器介绍374附录CRISC-V架构的PLIC介绍384附录D存储器模型背景介绍392附录E存储器原子操作指令背景介绍397附录FRISC-V指令编码列表400附录GRISC-V伪指令列表404
作者介绍
胡振波,上海交通大学电子工程系本科、微电子学院硕士。拥有业界多年ASIC和CPU设计与验证经验,先后在Marvell任职ARM架构CPU设计不错工程师、在Synopsys任职研发经理、在比特大陆任职IC设计总监、在武汉聚芯微电子任职架构师,现致力于推动RISC-V架构在靠前的传播和发展。
序言
— 没有更多了 —
以下为对购买帮助不大的评价