20181215《linux设备驱动开发详解》宋宝华 学习笔记(2)

第二章 驱动设计的硬件基础

1. 处理器

通用处理器

主流的ARM移动处理芯片供应商包括高通(Qualcomm)、三星(Samsung)、英伟达(Nvidia)、美满(Marvell)、联发科(MTK)、海思(HiSilicon)、展讯(Spreadtrum)等。德州仪器(TI)、博通(Broadcom)则已淡出手机芯片业务。

中央处理器的体系结构可以分为两类,一类为冯·诺依曼结构,另一类为哈佛结构。Intel公司的中央处理器、ARM的ARM7、MIPS公司的MIPS处理器采用了冯·诺依曼结构;而AVR、ARM9、ARM10、ARM11以及Cortex A系列等则采用了哈佛结构。

(冯诺依曼和哈佛的区别?)这本书真好,马上解决了我的疑问!

冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。而哈佛结构将程序指令和数据分开存储,指令和数据可以有不同的数据宽度。此外,哈佛结构还采用了独立的程序总线和数据总线,分别作为CPU与每个存储器之间的专用通信路径,具有较高的执行效率。(为什么?)图2.2描述了冯·诺依曼结构和哈佛结构的区别。

 

从指令集的角度来讲,中央处理器也可以分为两类,即RISC(精简指令集计算机)和CISC(复杂指令集计算机)。CSIC强调增强指令的能力、减少目标代码的数量,但是指令复杂,指令周期长;而RISC强调尽量减少指令集、指令单周期执行,但是目标代码会更大。ARM、MIPS、PowerPC等CPU内核都采用了RISC指令集。目前,RISC和CSIC两者的融合非常明显。

数字信号处理器

(为什么会突然介绍数字信号处理器?让我想到了之前学的数字信号处理的课。。。)

DSP分为两类,一类是定点DSP,另一类是浮点DSP。浮点DSP的浮点运算用硬件来实现,可以在单周期内完成,因而其浮点运算处理速度高于定点DSP。而定点DSP只能用定点运算模拟浮点运算。德州仪器(TI)、美国模拟器件公司(ADI)是全球DSP的两大主要厂商。

通用处理器和数字信号处理器也有相互融合以取长补短的趋势,如数字信号控制器(DSC)即为MCU+DSP,ADI的blackfin系列就属于DSC。目前,芯片厂商也推出了许多ARM+DSP的双核以及多核处理器,如TI公司的OMAP 4平台就包括4个主要处理引擎:ARM Cortex-A9MPCore、PowerVR SGX 540GPU(Graphic Processing Unit)、C64x DSP和ISP(Image Signal Processor)。

看这张图就明白了!

2. 存储器

存储器主要可分类为只读储存器(ROM)、闪存(Flash)、随机存取存储器(RAM)、光/磁介质储存器。NOR(或非)和NAND(与非)是市场上两种主要的Flash闪存技术。Intel于1988年首先开发出NOR Flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash结构,每位的成本被大大降低。

NOR Flash和CPU的接口属于典型的类SRAM接口(如图2.5所示),不需要增加额外的控制电路。NOR Flash的特点是可芯片内执行(eXecute In Place,XIP),程序可以直接在NOR内运行。而NAND Flash和CPU的接口必须由相应的控制电路进行转换,当然也可以通过地址线或GPIO产生NAND Flash接口的信号。NAND Flash以块方式进行访问,不支持芯片内执行

(这样的区别会带来怎样的结果呢?)

公共闪存接口(Common Flash Interface,CFI)是一个从NOR Flash器件中读取数据的公开、标准接口。它可以使系统软件查询已安装的Flash器件的各种参数,包括器件阵列结构参数、电气和时间参数以及器件支持的功能等。如果芯片不支持CFI,就需
使用JEDEC(Joint Electron Device Engineering Council,电子电器设备联合会)了。JEDEC规范的NOR则无法直接通过命令来读出容量等信息,需要读出制造商ID和设备ID,以确定Flash的大小。

NAND Flash较NOR Flash容量大,价格低;NAND Flash中每个块的最大擦写次数是100万次,而NOR的擦写次数是10万次;
NAND Flash的擦除、编程速度远超过NOR Flash。由于Flash固有的电器特性,在读写数据过程中,偶然会产生1位或几位数据错误,即位反转,NAND Flash发生位反转的概率要远大于NOR Flash。位反转无法避免,因此,使用NAND Flash的同时,应采用错误探测/错误更正(EDC/ECC)算法。

Flash的编程原理都是只能将1写为0,而不能将0写为1。因此在Flash编程之前,必须将对应的块擦除,而擦除的过程就是把所有
位都写为1的过程,块内的所有字节变为0xFF。另外,Flash还存在一个负载均衡的问题,不能老是在同一块位置进行擦除和写
的动作,这样容易导致坏块。

IDE(Integrated Drive Electronics)接口可连接硬盘控制器或光驱,IDE接口的信号与SRAM类似。人们通常也把IDE接口称为
ATA(Advanced Technology Attachment)接口,不过,从技术角度而言,这并不准确。其实,ATA接口发展至今,已经经历了ATA-1(IDE)、ATA-2(Enhanced IDE/Fast ATA,EIDE)、ATA-3(FastATA-2)、Ultra ATA、Ultra ATA/33、Ultra ATA/66、Ultra ATA/100及Serial ATA(SATA)的发展过程。

RAM也可再分为静态RAM(SRAM)和动态RAM(DRAM)。DRAM以电荷形式进行存储,数据存储在电容器中。由于电容器
会因漏电而出现电荷丢失,所以DRAM器件需要定期刷新。SRAM是静态的,只要供电它就会保持一个值,SRAM没有刷新周
期。每个SRAM存储单元由6个晶体管组成,而DRAM存储单元由1个晶体管和1个电容器组成。
通常所说的SDRAM、DDR SDRAM皆属于DRAM的范畴,它们采用与CPU外存控制器同步的时钟工作(注意,不是与CPU的工
作频率一致)。
与SDRAM相比,DDR SDRAM同时利用了时钟脉冲的上升沿和下降沿传输数据,因此在时钟频率不变的情况
下,数据传输频率加倍。此外,还存在使用RSL(Rambus Signaling Level,Rambus发信电平)技术的RDRAM(Rambus
DRAM)和Direct RDRAM。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值