硬件、固件和软件

我们经常说一个功能用软件实现还是用硬件实现,实际上的区别是硬件实现不需要(并不一定是完全不需要,也有可能是简化了其中的使得原来几个指令才能达到的效果现在用硬件设计上改成一条指令实现)预取指、取指的一系列操作,而只是利用硬件本身的结构来实现这个算法,如一个硬件乘加器,你只要按规定将数据输入,硬件乘加器直接经过一系列组合逻辑(和一些时序逻辑)实现了一次乘加的功能。但如果用软件实现,则意味着你需要(通用)处理器预取指、取指、译指、执行的操作,如乘加器,需要程序总线取指多次加法操作来实现一次乘加操作,硬件实现与软件实现类似于ASIC和通用CPU的区别。举例如中科院的DianNao、DaDianNao、PuDianNao、DianNaoYu等的工作,从处理器体系结构上的改进也算是用硬件实现神经网络加速,而不是采用在传统通用CPU、GPU上采取分布式计算或者并行计算的软件设计来加速神经网络计算。
固件和软件的不同是固件与底层硬件打交道,而软件大多数不用考虑硬件结构,在写固件时你需要了解硬件的结构,比如显示功能,而软件则是不怎么需要考虑硬件的差别的,直接调用下一层开放的API即可。固件为硬件而服务,驱动(软件)为操作系统及应用服务。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值