小米首款高端快充移动电源拆解!
前言
小米新推出了一款25000mAh容量的充电宝,型号为P03MI,具备212W的总输出功率。充电宝具备2C1A接口,两个USB-C接口均支持输入和输出,USB-C1接口支持100W充电和140W放电,USB-C2接口支持45W充放电,USB-A接口支持120W快充输出。
充电宝内置5节三星21700电池串联,标称能量为90.8Wh。机身设有彩色液晶屏幕,支持电量百分比、剩余毫安时和输出毫安时显示,还具备协议显示功能。其中充电的UI为绿色界面,放电的UI界面为黄色,便于区分充放电状态。
小米充电宝25000采用塑料外壳,三面均为透明设计,正面屏幕下方还设有探索风格的装饰板,更具有硬核科技范。下面充电头网就带来小米这款25000mAh充电宝的拆解,一起看看内部的用料和设计。
小米212W充电宝外观
小米25000mAh充电宝包装盒整体为白色基调,正面印有产品名称:小米充电宝25000 212W,充电宝外观,90.8Wh容量和Airline Safe字样。
包装盒背面印有产品卖点,信息参数和商家信息。
充电宝具备100W快速自充能力,具备1.3英寸TFT彩屏,具备智能显示,单口140W MAX超级闪充,支持PD3.1快充。多口输出为212W MAX,容量小于100Wh,可上飞机。
包装盒上参数特写,下面到产品实物环节再详细介绍。
包装内含小米25000充电宝,数据线和说明书。
充电宝附带C to C线,两端外壳磨砂方便插拔,末端设有抗弯折网尾保护。
使用ChargerLAB POWER-Z KM003C测得数据线带有E-Marker芯片,电力传输能力为20V5A。
测得数据线长度约为101.5cm。
充电宝外壳一览,正面和侧面均设有透明装饰板。
机身正面一览,上方设有液晶屏幕,功能按键,中间位置设有装饰板,底部标注25000字样,表示充电宝容量。
黄色功能按键特写。
液晶屏幕显示充电宝内置电池的剩余百分比。
液晶屏幕显示支持的快充协议。
壳体侧面采用螺丝固定。
充电宝侧面设有透明盖板。
侧面标注产品信息
小米充电宝25000 212W
产品名称:小米充电宝 型号:P03MI
电池能量(额定/典型):89.0Wh/90.8Wh(18.15V 4900mAh/18.15V 5000mAh)
输入:USB-C(C1):5V3A、9V3A、12V3A、15V3A、20V3.25A、20V5A
USB-C(C2):5V3A、9V3A、12V3A、15V3A、20V2.25A
额定容量:14000mAh(5V6A)
充电宝背面也标注产品信息。
输出:212W MAX
本品内置5颗5000mAh电芯 电池种类:锂离子电池
(多口)5V6A、9V8A、11V9A、12V7.5A、15V6A、20V9.25A 212W MAX
USB-C(C1):5V3A、9V3A、11V3A、11V6.1A、12V3A、15V3A、20V2.25A、20V3.25A、20V4.5A、20V6A、28V5A 140W MAX
USB-C(C2):5V3A、9V3A、12V3A、15V3A、20V2.25A 45W MAX
USB-A(A):5V3A、9V3A、10V2.25A、11V3A、11V6.1A、12V1.67A、12V3A、15V3A、20V3A、20V6A 120W MAX
充电宝另一侧设有二维码。
二维码分别为产品序列号和使用视频。
机身底部设有盖板,盖板中间设有小米logo。
机身四角外壳凸起起到支撑作用。
充电宝顶部设有2C1A三个USB接口,接口旁印有标识以及输入输出提示。
在顶部标注充电宝的输出功率规格,与机身侧面标注相同。
USB-C1接口和USB-A口分别标注了140W MAX和120W MAX输出功率。
测得充电宝机身高度约为159.8mm。
机身宽度约为55.3mm。
机身厚度约为55.3mm。
充电宝拿在手上的大小直观感受。
另外测得充电宝重量约为627.3g。
连接充电器为充电宝充电,屏幕显示电量百分比和剩余充电毫安时以及充电剩余时间。
显示快充协议为PD3.1快充。
连接负载为充电宝放电,屏幕显示剩余电量,剩余毫安时和输出速度。
显示快充协议为PD3.1快充。
使用KM003C测得USB-C1口支持QC3.0、PD3.1、PPS、QC5、DCP、Apple 2.4A充电协议。
PDO报文显示USB-C1口还具备5V3A、9V3A、12V3A、15V3A、20V5A、28V5A六组固定电压档位,以及5-11V5A、5-20V5A两组PPS快充档位。
USB-C2接口支持QC3.0、FCP、SCP、AFC、PD3.0、PPS、QC4+、DCP、Apple 2.4A充电协议。
PDO报文显示USB-C2口还具备5V3A、9V3A、12V3A、15V3A、20V2.25A五组固定电压档位,以及5-11V3A、5-20V2.25A两组PPS快充档位。
测得USB-A接口支持QC3.0、DCP、Apple 2.4A充电协议。
小米212W充电宝拆解
看完了小米这款充电宝的外观展示和功能测试,下面就进行拆解,一起看看内部的做工和用料。
首先拆下充电宝顶部盖板的固定螺丝,拆下盖板。
电池组使用塑料外壳绝缘,并使用螺丝固定。
连接电池的镍带粘贴胶带绝缘。
用于固定电池组壳体的螺丝特写。
电池组壳体通过螺丝与外壳固定。
液晶屏幕通过排线和连接器连接。
接下来拆解取下充电宝底部的盖子,盖子通过卡扣和双面胶粘贴固定。
盖子内部设有固定螺丝。
拧下螺丝拆下盖子,内部设有电池组壳体的固定螺丝。
两颗固定螺丝特写。
拧下底部的固定螺丝,从外壳中取出充电宝机芯。
在充电宝机芯上层设有电池和PCBA模块。
PCBA模块四角通过螺丝固定。
单独的一节电池特写,为21700电池。
电池下方的散热片通过螺丝固定。
充电宝机芯侧面一览,在两层PCB之间设有一体式铝合金散热片。
电池组通过塑料壳体包裹。
壳体侧面通过卡扣固定。
另一侧同样设有铝合金散热片。
充电宝接口端一览,USB-C1和USB-A接口设置在下层的PCB上,USB-C2接口设置在上层的PCB上,电池连接镍带上焊接导线,并粘贴高温胶带绝缘。
另一侧连接电池的镍带上同样粘贴高温胶带绝缘。
拧下固定螺丝,拆下上层的PCB。
铝合金散热片通过螺丝与电池组壳体固定,左侧镂空设有固态电容用于输出滤波。
拧下固定螺丝,拆下铝合金散热片,对应USB-C1接口的VBUS开关管、同步升降压开关管和升降压电感位置设有导热垫加强散热。
散热片边缘设有凸起,增大散热面积。
散热片对应电池组正极设有橡胶垫绝缘。
对应负极位置也设有橡胶垫绝缘。
下层的PCB对应同步升降压开关管位置和电感位置粘贴导热垫加强散热。
电池正极通过镍带点焊连接。
导热垫通过胶水粘贴固定。
电池单体电压检测线通过插座连接。
电池负极也通过镍带点焊连接。
PCB通过螺丝固定。
拧下固定螺丝,拆下下层的PCB。
电池组分体连接线粘贴橡胶垫绝缘。
在橡胶垫下方为电池正负极导线焊点。
两颗热敏电阻涂有导热胶粘贴固定。
从电池组塑料壳体内部取出电池。
电池来自SAMSUNG SDI,型号INR21700-50G,电池容量为4900mAh,额定电压为3.63V,充电限制电压4.2V,电池最大充电电流4.9A,最大放电电流14.7A。
用于检测电池组温度的两颗热敏电阻特写。
下层PCB一览,左侧为电池输入端,焊接电池单体电压插座。右方设有同步升降压开关管和合金电感,以及输出滤波电容。上下两侧设有连接排针,右侧设有USB-C和USB-A母座。
另一面焊接电池保护芯片、电池保护管、保险丝,两颗同步升降压控制器和协议芯片。对应电感和开关管背面的位置大面积露铜加锡,增强散热。
电池保护芯片来自CellWise赛微,型号CW1274,是一颗支持7串锂电池应用的电池保护芯片,支持磷酸铁锂以及高压平台等多种锂电池保护,支持电池均衡,支持高精度过充电、过放电、过流保护,还支持电池温度保护和断线保护等功能,采用SSOP24封装。
电池保护管来自AOS万国半导体,型号AON6512,NMOS,耐压30V,导阻1.4mΩ,采用DFN5*6封装,两颗对向串联。
万国半导体 AON6512 资料信息。
电池组设有一颗贴片保险丝,用于过流保护。
两颗5mΩ取样电阻并联,用于检测电池电流。
电池保护芯片外置的均衡开关管和均衡电阻特写。
共计5颗开关管和电阻,分别对应5串电池组。
用于连接电池单体电压检测线的插座特写。
电池电量计芯片来自CellWise赛微,型号CW2017BAAD,芯片内置14位高精度ADC,用于电池组电量检测,温度检测和识别电阻检测,支持系统端和电池端应用,通过I2C接口通信,采用TDFN8封装。
用于USB-C接口的同步升降压控制器来自南芯科技,型号SC8815A,是一颗高效双向同步升降压控制器,支持1-6节电池充电,支持36V工作电压。芯片支持完整的锂电池充电管理,其中电池充电电流和电压,反向放电输出电压,输入输出电流限制参数均可由I2C总线控制。
SC8815A内置10位ADC,具备充电状态指示,支持自动适配器插入和负载插入检测,具备欠压保护、过压保护和过流保护,并且支持短路保护和过热关断保护。芯片采用QFN32封装,适用于PD快充移动电源,USB-C集线器,工业电源应用。
南芯科技 SC8815A 资料信息。
同步升降压开关管来自AOS万国半导体,型号AONS66406,NMOS,耐压40V,导阻5mΩ,采用DFN5*6封装。两颗用于电池端。
万国半导体 AONS66406 资料信息。
另外两颗开关管型号相同,用于USB-C端。
2.2μH合金电感特写。
用于USB-C1接口的滤波电容来自丰宾,为PM系列固态电容,规格为100μF35V,两颗并联。
五颗并联的MLCC滤波电容特写。
两颗VBUS开关管来自捷捷微电,型号JMTQ130P04A,PMOS,耐压-40V,导阻10.3mΩ,采用PDFN3*3-8L封装。
USB-C1母座采用沉板过孔焊接。
用于USB-A接口的同步升降压控制器采用南芯科技SC8815A,与USB-C1接口同步升降压控制器型号相同。
用于USB-A接口的同步升降压开关管来自AOS万国半导体,型号AON6354,NMOS,耐压30V,导阻2.75mΩ,采用DFN5*6封装。
万国半导体 AON6354 资料信息。
两颗同型号的开关管组成电池端半桥。
2.2μH合金电感特写。
另外两颗开关管也采用AON6354。
共计四颗开关管型号相同。
USB-A口输出滤波电容来自丰宾,为PM系列固态电容,规格为100μF25V,两颗并联。
五颗并联的MLCC滤波电容特写。
VBUS开关管来自TOSHIBA东芝,型号TPCC8104,PMOS,耐压-30V,导阻6.8mΩ,采用TSON Advance封装。
USB-A接口采用过孔焊接固定,正负极加宽支持大电流快充。
用于连接USB-C2小板的连接器特写。
另一侧的连接器特写。
五颗并联的MLCC滤波电容特写。
协议芯片来自ABOV现代单片机,型号A94P829KUN,是一颗支持PD3.1的协议芯片,支持两个USB-C接口和一个USB-A接口。芯片内置8051内核,快充协议支持广泛,采用32QFN封装。
用于检测USB-C接口电流的放大器采用3PEAK思瑞浦TP199A2。
检测USB-A接口电流的放大器型号相同。
在USB-C2小板上焊接MCU,同步升降压控制器,协议芯片和一颗开关管。
另一面焊接VBUS开关管,滤波电容,同步升降压开关管,合金电感和降压电路。
用于USB-C2接口的同步升降压控制器采用南芯科技SC8815A,三个接口同步升降压控制器型号相同。
USB-C2同步升降压电路也采用万国半导体AON6354开关管。
另一颗开关管型号相同。
对应输出端半桥的同步升降压MOS管型号相同。
2.2μH合金电感特写。
滤波电容来自丰宾,为PM系列固态电容,规格为100μF25V。
输出VBUS开关管来自AOS万国半导体,型号AON7534,NMOS,耐压30V,导阻4.1mΩ,采用DFN3*3 EP封装。
万国半导体 AON7534 资料信息。
USB-C口协议芯片采用天德钰FP6606。这是一颗高性能的USB PD3.0协议芯片,支持USB PD3.0,PD3.1快充,还支持QC4+、QC3.0、QC2.0、AFC、FCP、SCP以及APPLE 2.4A等主流的充电协议,采用TQFN-16封装。
天德钰FP6606B详细规格资料。
充电头网了解到,天德钰FP6606芯片已被紫米20号200W PD快充移动电源、紫米10号 Pro移动电源、小米10000mAh移动电源 50W超级闪充版、紫米18W双向PD快充移动电源尊享版10000mAh、小米20000mAh移动电源 50W超级闪充版等多款产品采用。
USB-C2母座过孔焊接固定。
充电宝主控芯片来自GigaDevice兆易创新,型号GD32W515PIQ6,芯片内置ARM Cortex-M33处理器,集成2MB FLASH和448KB SRAM,具备USART、I2C,SPI、SDIO和USB接口,芯片内置2.4GHz WiFi功能,采用QFN56封装。
一颗MCU来自ABOV现代单片机,型号MC96F6232AU,为8位8051内核,主频为16MHz,内置32KB FLASH和1KB SRAM,采用24-QFN封装。
3PEAK思瑞浦TP199A2用于检测USB-C2接口输出电流。
用于供电控制的开关管来自捷捷微电,型号JMTQ130P04A,与USB-C1接口VBUS开关管型号相同。
同步降压芯片来自SILERGY矽力杰,丝印Iu,型号SY8301,芯片内部集成开关管,输入电压最高40V,输出电流1A,采用SOT23-6封装,用于将电池组降压为MCU供电。
搭配使用的降压电感特写。
稳压芯片来自3PEAK思瑞浦,丝印L4J,型号TPL810F33,支持24V输入电压,输出电流180mA,具备电流限制和过流保护,采用SOT23-5封装。
升压芯片来自SILERGY矽力杰,丝印HM,型号SY7302,开关频率为1MHz,内置200mΩ开关管,采用SOT23-6封装。
搭配使用的4.7μH升压电感特写。
多颗并联的MLCC滤波电容特写。
用于连接PCB的排针特写。
连接屏幕排线的连接器特写。
最后拆下壳体内部的装饰板。
装饰板左侧印有25000字样,中间为芯片和走线装饰,右侧为按键和液晶屏幕。
装饰板背面使用双面胶粘贴固定,右侧设有按键小板和液晶屏幕,通过排线连接。
液晶屏幕来自亿华显示有限公司。
屏幕通过排线连接。
贴片开关按键特写。
全部拆解一览,来张全家福。
充电头网拆解总结
最后附上小米充电宝25000 212W的核心器件清单,方便大家查阅。
小米充电宝25000内置5节三星21700电池,总输出功率为212W,其中USB-C1接口支持100W充电输入和140W PD3.1快充输出,USB-C2接口支持45W充放电,USB-A口支持120W快充输出。充电宝机身设有液晶屏幕,支持电量百分比,剩余毫安时以及协议显示。
充电头网通过拆解了解到,小米充电宝25000内置5节21700电池串联,采用三星INR21700-50G电池,并使用支架固定,设有热敏电阻检测电池温度。充电宝内部设有两块PCB,通过排针连接,并使用铝合金散热板和导热垫加强散热。充电宝内部设有三路同步升降压电路,各个接口均为独立。
三路同步升降压电路均采用南芯科技SC8815A同步升降压控制器搭配万国半导体MOS管,使用现代单片机和天德钰协议芯片。电池组采用赛微CW1274保护芯片,并配有均衡电路。充电宝内部使用兆易创新MCU用于屏幕显示等功能,接口设有TVS进行静电防护,安全措施到位,做工用料扎实。
RISC-V学习笔记「2」8051竟然是“复杂指令集CISC”?
RISC-V学习笔记【1】RISC-V概述
【1】8位、16位、32位、64位
除了 CISC与 RISC 之分,处理器指令集架构的位数也是一个重要的概念。通俗来讲处理器架构的位数是指通用寄存器的宽度,其决定了寻址范围的大小、数据运算能力的强弱譬如32位架构的处理器,其通用寄存器的宽度为 32位,能够寻址的范围为 232Byte,即4GB的寻址空间,运算指令可以操作的操作数为 32 位。
注意:处理器指令集架构的宽度和指令的编码长度无任何关系。并不是说 64 位架构的指令长度为 64位(这是一个常见的误区)。从理论上来讲,指令本身的编码长度越短越好因为可以节省代码的存储空间。因此即便在64 位的架构中,也大量存在16位编码的指
且基本上很少出现过 64 位长的指令编码。
综上所述,在不考虑任何实际成本和实现技术的前提下,理论上来讲:。通用寄存器的宽度,即指令集架构的位数越多越好,因为这样可以带来更大的寻址范围和更强的运算能力。
指令编码的长度越短越好,因为这样可以更加节省代码的存储空间常见的架构位数分为8位、16位、32位和64位。早期的单片机以8位和 16 位为主,知名的 8051 单片机是使用广泛的8位架构。
目前主流的嵌入式微处理器均在向 32 位架构转移。
目前主流的移动手持、个人计算机和服务器领域,均使用 64 位架构。
【2】CISC、RISC
常见的指令集架构大体上可以分为两大类:复杂指令集体系(CISC)和精简指令集体系(RISC)。
RISC全称Reduced Instruction Set Compute,精简指令集计算机。
CISC全称Complex Instruction Set Computers,复杂指令集计算机。
CISC既有简单指令也有复杂指令,后来人们发现典型程序中80%的语句都是使用计算机中20%的指令,而这20%的指令都属于简单指令;因此花再多时间去研究复杂指令,也仅仅只有20%的使用概率,并且复杂指令会影响计算机的执行速度。既然典型程序的80%都是使用简单指令完成,那剩下的20%语句用简单语句来重新组合一下模拟这些复杂指令就行了,而不需要使用这些复杂指令,于是RISC就出现了。
RISC的主要特点:
1)选取使用频率较高的一些简单指令以及一些很有用但不复杂的指令,让复杂指令的功能由使用频率高的简单指令的组合来实现。
2)指令长度固定,指令格式种类少,寻址方式种类少。
3)只有取数/存数指令访问存储器,其余指令的操作都在寄存器内完成。
4)CPU中有多个通用寄存器(比CISC的多)
5)采用流水线技术(RISC一定采用流水线),大部分指令在一个时钟周期内完成。采用超标量超流水线技术,可使每条指令的平均时间小于一个时钟周期。
6)控制器采用组合逻辑控制,不用微程序控制。
7)采用优化的编译程序
CICS的主要特点:
1)指令系统复杂庞大,指令数目一般多达200~300条。
2)指令长度不固定,指令格式种类多,寻址方式种类多。
3)可以访存的指令不受限制(RISC只有取数/存数指令访问存储器)
4)各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成。
5)控制器大多数采用微程序控制。
6)难以用优化编译生成高效的目标代码程序
RISC与CISC的比较
1.RISC比CISC更能提高计算机运算速度;RISC寄存器多,就可以减少访存次数,指令数和寻址方式少,因此指令译码较快。
2.RISC比CISC更便于设计,可降低成本,提高可靠性。
3.RISC能有效支持高级语言程序。
4.CISC的指令系统比较丰富,有专用指令来完成特定的功能,因此处理特殊任务效率高。
复杂指令集最常见的例子是现在绝大多数家用计算机和网络服务器所使用的 AMD64 指令集(也叫 x86-64、x86_64、Intel 64、EM64T 等等,本文以发明人为基准称为 AMD64。)除此以外有一定使用量,和有历史意义的复杂指令集还有 IA-32、MC68000、MOS6502、Intel 8051 、Intel 8080 等等。复杂指令集其复杂在于指令种类数量巨大,非常多次常用到不常用的功能都会被整合进处理器指令集中。同时复杂指令集系统每条指令的操作数寻址方式复杂,几乎所有指令都可以直接访问内存;相应的指令的机器码编码方式复杂,普遍使用不定长指令等。同时,复杂指令集系统一般没有独立的专用内存访问指令,处理器内所设置的通用寄存器数量也偏少。(例如 IA-32 没有严格意义上的通用整数寄存器,到了 AMD64 也才勉强设置了八个通用整数寄存器。)
精简指令集最常见的例子则是常见于智能设备和嵌入式平台的 ARM 指令集家族。除此以外除此以外有一定使用量,和有历史意义的精简指令集还有龙芯 LoongArch、MIPS、RISC-V、PowerPC、AVR 等等。精简指令集其精简在于指保留最基本最必要的指令,将复杂功能完全交给上层的软件算法和下层的专用外设去解决。同时精简指令集系统指令寻址方式往往非常单一,除了专门的访存指令以外所有指令都只能在寄存器范围内操作,相应的精简指令集系统普遍使用固定长度指令,也会配备相对比较多的通用寄存器。(例如上个世纪的 ARMv4T、MIPS32 就都已经有 29~31 个通用寄存器了,相比于同时期 IA-32 的 0 个。)
实际到了应用层面上,对于高级语言程序来说,对于处理器设计来说,两种指令集架构分类的实际差异已经不大了。Intel 和 AMD 的 AMD64 实现都使用了微代码,而从复杂指令翻译出来的微代码普遍都用了类 RISC 设计。本世纪初的时候还普遍认为复杂指令集处理器速度更快,到了现在精简指令集已经很强大了,完全比CISC更快。有些CISC最终也是转化为RISC进行执行了。
【3】8位的CISC——8051
8位和CISC两个似乎是矛盾的,但是8051活生生的辉煌了40年。
说起 8051 内核,几乎无人不知无人不晓。8051 作为一款生了数十年之久的微处理器内核,在8位入式微处理器内核领域,它是当之无愧的传“前辈”
自从Inlel于1980年为入式系统开发Intel MCS-51(通常简称 8051)单芯片微控制(单片机)至今,8051 内核架构已经走过将近 40个年头。Intel 还以专利转让的形式8051内核转让给了许多其他半导体公司,这些公司进一步发展出不同型号基于 8051内核微控制器芯片,因此形成了一个庞大的 8051 家族。
几十年发展下来的庞大的用户群和生态环境,以及多年来众多备受肯定的成功产品,可以说 8051内核几乎成为8 位微处理器内核的业界标杆。8051 内核架构在 1998 年失去专利保护,久经沙场的它再次进发出强大的二次生命力,各种形式的 8051 架构 MCU(微控制器Microcontroller Unit)进一步涌入市场,各种基于 8051内核的芯片产品层出不穷,各种免费版本的 8051 内核IP 也可以从各种渠道获取。
当然由于 8051 内核并没有一个统一的组织和标准进行管理,所以也存在着体系结构浪乱,各种增强型复杂多样的问题。虽然时常也都自称为 8051 内核,但是其实各有差别,琅满目让人难以分辨。但是这丝毫不影响 8051 内核的经典地位,时至今日,虽然目前微处理器内核正在经历着向32位架构迁移的大趋势,但是 8051内核仍然有着举足轻重的地位在大量的MCU、数模混合信号芯片、SoC 芯片中仍能看到 8051 内核的身影,并且在相当长的时间内,在适合8位架构处理器内核的应用领域中都将继续使用 8051 内核,可以说是“廉颇虽老,尚能饭也”。
8051 内核能在嵌入式领域取得如此成功的地位,可以归功于如下几个方面的原因。
广泛的被认知度,简单的体系结构。
没有知识产权的限制,商业和开源的版本众多,非常适合中小型芯片公司采用。
用庞大的用户群以及相应的生态系统。
成熟且免费的软件工具链支持。
——你似乎感受到RISC-V从其一诞生就符合以上几条的气质。
尽管如此,8051作为一款诞生了接近 40 年的8位CISC(复杂指令集)架构内核,虽然是“老骥伏析,壮心不已”,但是由于其性能低下,寻址范围受限,已经难以适应更多的新兴应用领域。随着IoT的发展和崛起,虽然嵌入式领域对于处理器内核的需求更加井喷,但是更多的是开始采用 32 位架构,且很多传统的 8 位应用领域也在开始向着32位架构迁移。这样ARM的Cortex-M系列有了成长的机会。
然而在20世纪80年代该单片机刚刚问世时,半导体的制造工艺还只能达到um 级,处理器所能达到的时钟频率偏低。而且当时硬件设计语言还处于起步阶段也缺乏自动设计的工具,软件多以手工汇编编程为主。这就导致流水线设计的优势无法得到发挥,并且每条指令需要多个时钟周期才能完成。由于上述原因,当时的指令集设计往往具有以下特点:
(1)尽量在每条指令中实现更多的功能。例如 8051的CJNE 指令,就需要在一条指令中依次实现:
①与累加器做减法
②修改进位标示
③将结果做相等比较
④根据比较结果决定是否跳转
(2)指令集庞大,以实现更多的复杂功能。例如 8051 虽然是 8 位单片机其指令集却包含高达 255 种不同的指令和格式
(3)由于以上两点,导致变长指令的出现,以提高内存利用率。8051的指令就有单字节、双字节与三字节三种不同的种类,而且除了对指令解码以外,没有其他的手段帮助判定指令长度。
(4)寻址方式众多。例如在 8051 指令集中,对数值的操作包括如下方式
①立即数寻址。将常数包含在指令中。
② 直接寻址。将内存地址包含在指令中。
③间接寻址。将内存地址放入寄存器中,然后将寄存器地址包含在指令中.
④寄存器寻址。将操作数放入寄存器中,然后将寄存器地址包含在指令中
【4】8051具备CISC的所有缺点
1)尽量在每条指今中实现更多的功能
为了在实现这些复杂功能的同时保持高吞吐率,流水线的设计者不得不花更多的时间规划流水线的各级。即便如此,有些指令依然无法实现单周期吞吐,例如上文提到的CJNE 指令,就需要两个时钟周期。
另外,现代的8051 处理器开发,早已经采用C语言代替了早期的汇编语言而高级语言的编译器往往很难把这类复杂、多功能机器指令的威力全部发挥出来有违当初指令集的设计初衷。
当然,指令集复杂这个特点也并非一无是处。由于 CISC 指令集的指令复杂也使得其代码密度(Code Density)一般要优于同等字宽的RISC处理器
2)庞大的指令集浪费逻辑资源
庞大的指令集必然导致指令的解码阶段变得更为复杂,需要耗费更多的逻辑资源。指令集被分为两部分对它们各自的解码分别占用了流水线的一级。这样设计的原因之一就是为了在庞大指令集下实现高吞吐率、高时钟频率,而不得不做出的妥协。同样时钟频率的RISC-V处理器,由于指今集比较精简,就无须做这样的妥协,从而大大节省了逻辑资源,简化了流水线设计。
3)变长指令的出现,以提高内存利用率
8051的指令有单字节、双字节和三字节三种不同的种类,除解码(Decode)外没有其他的手段帮助判定指令长度。这种变长的指令结构,导致指令之间的边界很难判定,甚至有可能导致内存的非对齐读取(Unaligned Memory Access),从而对流水线的取指器(Instruction Fetch)设计带来挑战。
8051的内存架构是哈佛架构,其代码与数据在不同的地址空间中分开存放。这就使得代码存储部分可以单独做一些优化设计。
由于8051指令集没有其他辅助手段来帮助判定指令长度,为了确定指令的边界,8051的取指器不得不为此花费比 RISC-V 更多的逻辑资源
4)众多的寻址方式
由于8051存在众多的寻址方式,使得指令集中的许多指令都可以访间内存这导致流水线的数据冲突(Data Hazard)很难判断,有时不得不通过硬件自动插入空操作( Operation,NOP)来保持数据的正确和完整。这样既消耗了逻辑资源,又降低了流水线的效率,从而对功耗和性能造成双重打击。
参考资料及书目:
《基于FPGA与RISC-V的嵌入式系统设计》作者:顾长怡
《RISC-V嵌入式开发快速入门》作者:胡振波
《第六篇:CISC vs. RISC 引发的思考》知乎:Serena Wang
《(计算机组成原理)RISC与CISC的区别》CSDN:我真不聪明
——书籍推荐——
相关问答
8051引脚图及功能?
8051单片机引脚图及引脚功能介绍:40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。⒈电源:⑴VCC-芯片电源,接+5V;⑵VSS-...8051单片...
51单片机中,8051,80C51和C8051分别是什么?
80C51一般指普通的8051,就是我们常说的51,相比之下C8051是非常高端的一种51(这么说是因为不管怎么样,它还是51,没有贬义。。),价格也比较高,全兼容51,但...c8...
8051芯片正负极接反会烧坏芯片吗?
8051芯片属于组合逻辑电路。当组合逻辑电路中集成电路芯片+5伏电源正负极接反,一般短时间内应该不会损坏集成电路芯片。如果集成电路芯片损坏了,也说明这个集...
8051单片机种类?
8051单片机有三种主要类型:原始的8031型、8032型和标准的8051型。8031型是首次推出的芯片,它的RAM大小为128字节,ROM大小为4KB,它是唯一支持外置扩展ROM和RAM...
mcu芯片是什么级芯片?
MCU是MicrocontrollerUnit的简称,中文叫微控制器,俗称单片机,是把CPU的频率与规格做适当缩减,并将内存、计数器、USB、A/D转换、UART、PLC、DMA等周边接口...
c8051f120单片机是什么公司?
以前是美国cynal公司的,后来被美国siliconLAB公司收购,,,现在就是siliconLAB的产品了。SiliconLaboratories(芯科实验室)成立于1996年,位于美国德...
什么是8051单片机的三总线结构?
1、数据总线51单片机的数据总线为P0口,CPU从P0口送出和读回数据。2、地址总线51系列单片机的地址总线为16位。为了节约芯片引脚,采用P0口复用方式...
keilfor8051怎么设置?
要设置Keilfor8051,首先确保已经安装了Keil软件。然后打开Keil,选择“Project”菜单,点击“NewProject”。在弹出的对话框中,选择8051系列的芯片型号,并...
与8051相比89c51的最大特点是什么?
8051的特点8051片内有4kROM,无须外接外存储器和373,更能体现“单片”的简练。但是你编的程序你无法烧写到其ROM中,只有将程序交芯片厂代你烧写,并是一次性...
c8051spi接哪些io口?
需要注意的是,具体的引脚分配可能会因不同的C8051单片机型号而有所不同。因此,在使用SPI接口时,你需要参考所使用的具体单片机型号的数据手册或引脚图来确定正...