Chinaunix首页 | 论坛 | 博客
  • 博客访问: 152419
  • 博文数量: 43
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 601
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-22 17:24
文章分类
文章存档

2010年(43)

我的朋友

分类: LINUX

2010-12-10 21:29:03

知识扫盲:
RISC(Reduced Instruction Set Computer)
精减指令集计算机
CISC(Complex Instruction Set Computer)
复杂指令系统计算机

apb ahb 总线的高速和低速的区分是提供给他们时钟频率的高低

APB总线(芯片内部,内核外部用)
APB(Advanced Peripheral Bus),外围总线的意思。该总线协议是ARM公司提出的AMBA总线结构之一,几乎已成为一种标准的片上总线结构。
AHB总线(芯片内部高速设备使用,)
AMBA2.0 规范中的AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字节和字的传输。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。
ASB 总线
AMBA2.0 规范中的ASB 总线适用于连接高性能的系统模块。它的读/写数据总线采用的是同一条双向数据总线,可以在某些高速且不必要使用AHB 总线的场合作为系统总线,可以支持处理器、片上存储器和片外处理器接口及与低功耗外部宏单元之间的连接。

网上看到的问题比较有意思,cpy下来看看:
问:
正在做一个ARM核与DSP的双核片上系统,由于刚接触ARM,有些基础的问题还是不明,还请高人指点:
1. 对于像ARM9或者ARM10那种有两套AHB总线的(一套instruction AHB总线,一套data AHB总线),那这两套总线应该是分别有各自的instruction ram和data ram还是共享一个shared ram?
2. 如果是分别有各自的ram,那在instruction AHB总线上是不是还要挂一片flash来存储程序,然后上电的时候由bootloader把程序加载到instruction ram里面执行?
3. 如果是共享一个shared ram的话,ram里面的数据空间和指令空间怎么划分?两套AHB总线怎么接到一个shared ram上?
4. 我看说ARM的执行镜像文件包括几个部分,RO,RW和ZI. 这几个部分都要由bootloader放到instruction ram里或者shared ram的指令空间里么?还是有些要放到data ram或者shared ram的数据空间里面?
回答:
1.你说的两套总线和ARM无关,而是哈佛结构和冯诺依曼结构的区别,既然用DSP想必你知道哈佛结构的特点

2.你所说的shared ram,应该被称做cache,指令和数据是分开还是合用由芯片自己决定,就是ARM有合在一起的也有分开的,另外还有一种叫TCM的东西也是你说的那东西

3.flash严格的说不是挂在AHB总线之上,AHB上挂有许多高速设备,flash或SDRAM都是通过存储器控制器挂到AHB总线上

4.程序在什么地方执行比较复杂,不同芯片都不一样,一般到最后都是放在SDRAM中执行,为了加快执行速度就有了cache的存在

5.对于cache不分I-CACHE和D-CACHE的情况,内部并不区分指令和数据,由硬件直接建立关联,完成此项工作是cache控制器,一个芯片对空间管理的过程非常复杂

6.所谓RW/RO都是软件层面的一些用语,和硬件关系不大,硬件所做的工作就是上电后运行ROM里面的程序bootloader,将真正的应用程序装到SDRAM中然后执行,cache并没有固定的空间地址,对于用户来说一般无法按地址访问

我自己的看法:问问题者所说的RW是指静态或全局初始化数据的堆区,RO是代码段常量区,ZI是静态或全局未初始化数据的区域,还有个栈区,内存总共分成这4个区域。这些区域是存在于内存中的,最开始是由bootloader去指定并且管理,接着就是内核去管理的。

2440的地址线和数据线

从芯片内部向外引出27根地址线,2的27次正好是128m,共有8个bank,还有三根地址线当做了片选,来选这27根地址线接到哪个bank上,总而访问bank上接的外设,片内4g的寻址空间,片外是1g的寻址空间,也就是内存1g,还有2根地址线在芯片内部使用。




arm7没有mmu 所以没有办法去跑大型的操作系统

外面1g的内存分成8个bank,8个bank分别挂载了不同的外设,那么想一下为什么要把1g分成8块呢?

因为地址线共128m的寻址空间,每个bank都是128,这样在访问外设的时候就可以做到全寻址,分成8个bank不是没有道理的。

bank6和bank7 可以用来接sdram,sram,rom
别的bank只能接sram,rom(nor flash)

nor和nand的结构不一样,nor是直接接在总线上的,接在什么总线上?
norflash是接在AHB总线上的,总线是个抽象出来的概念,总线就相当于芯片中的一个管家,通过这个管家来对各种设备进行管理,操作!

bank6,7 上有sdraM控制器
bank67都是不线性寻址的,是因为上面接了sdram,sdram通过sdram控制器,来寻找代码!

为什么会有bootloader?
就是因为内存无法无法线性的寻址

什么是SPI?
PI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

IIs以及IIC总线(音频总线和控制总线)

IIS(Integrate Interface of Sound)接口即集成音频接口,I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频 数据传输而制定的一种总线标准。I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线用两条线(SDA和SCL)在总线和装置之间传递信息,在微控制器和外部设备之间进行串行通讯或在主设备和从设备之间的双向数据传送。I2C器件从地址由I2C总线委员会统一实行编制,器件出厂时就已给定,如E2PROM的地址为1010.i2c(发音为:”I squared see”)能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。I2C是OD输出的,而I2S不是;I2C一般用来传输控制信号,I2S主要用来传输音频信号。另外大部分I2C都是2线的(时钟和数据),而I2S则大部分是3线的(除了时钟和数据外,还有一个左右声道的选择信号)。


为什么要用跳线?


什么是线性寻址,为什么要有线性寻址?
线性寻址就是一个地址对应一条指令!因为norflash(norflash和sdram都是线性寻址)不够大,所需需要bootloader把代码从nandflash(nand不是线性寻址的),拷贝到sram中去!如果norflash够大,就用不着bootloader了,bootloader就是用来把代码拷贝到sdram中去为内核做准备的。

SATA硬盘

SATA的全称是Serial Advanced Technology Attachment(串行高级技术附件,一种基于行业标准的串行硬件驱动器接口),是由Intel、IBM、Dell、APT、Maxtor和Seagate公司共同提出的硬盘接口规范,在IDF Fall 2001大会上,Seagate宣布了Serial ATA 1.0标准,正式宣告了SATA规范的确立。SATA规范将硬盘的外部传输速率理论值提高到了150MB/s,比PATA标准ATA/100高出50%,比ATA/133也要高出约13%,而随着未来后续版本的发展,SATA接口的速率还可扩展到2X和4X(300MB/s和600MB/s)。
 SATA的优势:支持 ,传输速度快,执行效率高。


阅读(803) | 评论(0) | 转发(0) |
0

上一篇:CGI编程(笔记)(草稿)

下一篇:嵌入式

给主人留下些什么吧!~~