毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 嵌入式 >> 正文

burst模式在编程的时候能够体现吗

更新时间:2012-5-24:  来源:毕业论文

很多处理器都支持Burst Read 和Burst write,请问在读写存储器的时候,如果连续读写,处理器就会采用这种模式吗?burst模式在编程的时候能够体现吗?
根据计算机组成原理和计算机系统结构中的内容, cache存在的意义就是在提高命中率的情况下,减少因访问dram所花费的时钟周期。而cache的原理是,程序的时间局部性与空间局部性

说了这么多,是想说明,cache的更新是以一块数据为单位的,也就是一个cache line,根据cpu指令集,risc,cisc,以及具体的指令集下架构的不同,powerpc,arm,mips,x86等,其对一个cache line的大小的定义可能是不同的,假设某 cache line 大小是 32个字节,那么这个cache line 的定义通常是以对dram的 burst 访问来实现的,而根据,dram 和 cpu间 总线的 宽度,dram的 burst的长度,也就是一个burst的字节数,也是可定义的, 在dram 的controller 里边会有相应的寄存器可以设置,给出可编程的几个,通常是2个,或者3个burst的长度设置。比如说,一个burst 可配置成 4个字节长,或者8个字节长。

支持不支持主要在于dram。
我不太确定,即使不是连续读写,应该也是以burst方式访问dram的。
编程的时候,对于burst应该是没有认知的,因为就编程本身而言,关注的是数据本身,对于数据是以什么访问被CPU获得的,这个应该是对于编程透明的。
实现burst的目的,也只是提高访问dram的效率,降低 cpu 在需要数据时的等待时间
通常在对 sdram 访问之前,都会进行初始化, controller 访问 sdram的时候,会有 active, read, write, precharge等命令发送到sdram,而在初始化的时候,有一个 Load Mode Register 命令会被使用,对sdram 内部进行一些设置,其中应该就有关于 burst 模式,长度等的设置,

我不知道你打算 利用 burst的话, fpga 这边是否也需要做类似的事情呢?
首先确认你的AM3715的外部总线确实配置成了burst模式,这个是要配置的。
然后就是一般在app层以访问内存方式读写是较难产生burst的,
如果你有os,在驱动里试试ReadMultiple之类的函数
如果你不用os,看看assemble里有没有Load Multiple或者Sotre Mutiple这样的指令
楼上兄弟说FPGA是异步设备,其实作为FPGA来说,既然是可编程器件,想做同步或异步都可以,由你的vhdl/verilog代码决定。
呃,可能是我的表述有问题
我说的ReadMultiple函数的意思是
能被编译为Load/Read Multiple汇编指令的函数
例如利用memcpy进行字对齐的复制
当然前提条件是你的CPU要支持类似指令(一般现代的CPU都有支持)
你也可以直接嵌入汇编
例如arm架构的,可以直接用LDM或STM汇编指令试试

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。