首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

有一个很大很大的疑问。

哈佛结构是指程序和数据空间独立的体系结构, 目的是为了减轻程序运行时的
访存瓶颈.
例如最常见的卷积运算中, 一条指令同时取两个操作数, 在流水线
处理时, 同时还有一个取指操作, 如果程序和数据通过一条总线访问,  
取指和取数必会产生冲突, 而这对大运算量的循环的执行效率是很不利的.
哈佛结构能基本上解决取指和取数的冲突问题.
而对另一个操作数的访问, 就只能采用Enhanced 哈佛结构了, 例如像TI那样,
数据区再split, 并多一组总线. 或向AD 那样, 采用指令cache, 指令区可存放
一部分数据.
不过C6200 不了解, 那位大侠能解释一下呢?  
总之, 这个问题对DSP 的性能很关键呢, 如果哪位能总结一下就好了.
C6200系列的dsp芯片内部的程序ram和数据ram的确采用不同的总线,但这只是在片内不同而已,cpu访问片外的存储空间都要通过一个统一的接口EMIF,因此是片外的程序和数据共享一条数据bus和地址bus,这样的体系结构对流水线操作造成不利了把!!!
假如把程序放在片外的sdram,同时sdram也有数据,那么在进行流水操作的时候,在一个时钟就做不到同时取指令和取数据了。
不知我这样说对不对?
哈佛结构是指程序和数据空间独立的体系结构, 目的是为了减轻程序运行时的
访存瓶颈.
例如最常见的卷积运算中, 一条指令同时取两个操作数, 在流水线处理时, 同时还有一个取指操作, 如果程序和数据通过一条总线访问,取指和取数必会产生冲突, 而这对大运算量的循环的执行效率是很不利的.哈佛结构能基本上解决取指和取数的冲突问题. 而对另一个操作数的访问, 就只能采用Enhanced 哈佛结构了, 例如像TI那样,数据区再split, 并多一组总线. 或向AD 那样, 采用指令cache, 指令区可存放一部分数据.

有一个很大很大的疑问。

都说dsp芯片内部采用哈佛结构,程序和数据的存储空间分开,并独立编址。但我知道在TI的C6200芯片中,内部的程序和数据RAM在物理上是分开的,但是对dsp核来说,两者的物理地址不是独立编址的呀,而是统一编址的。请问这样还算不算哈佛结构?哈佛结构究竟是什么概念?应该不算吧,DSP也不一定是程序,数据分开的比方说TMS320C30就是混合的。
但是我不知道怎么把片内的程序ram设置为 cache呀,请你告诉我怎么设置这个的?
谢谢!
返回列表