内存控制器和mmu问题

unbutun 2008-07-03 05:56:31
内存控制器和mmu有什么区别?

现在接触davinci系列处理器,其中包含arm926、vpss(主要用于视频处理)、dsp

这些东西都在内存控制器之下工作,而mmu只在arm端有,想问是内存控制器是在arm内还是另外在片内独立的一个东西,而mmu和内存控制器有什么区别?都起什么作用?

...全文
473 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gooogleman 2008-08-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 shuiyan 的回复:]
ARM7一般不会支持外部内存,只有少量的型号支持总线扩展(就是外部RAM/SDRAM),典型的S3C44B0是支持SDRAM。只要支持的,内存控制器都是CPU内置的。
[/Quote]

是这样,也没有必要,因为ARM7跑不了Wince和linux等系统。内部集成的就可以应付需求了
gooogleman 2008-08-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 vsong 的回复:]
ARM9架构的 s3c2410 cpu 的内存控制器有8个bank控制寄存器用于控制片内和片外的存储器,每个bank支持128M的地址空间。

bank0的开始地址为0x0000 0000 结束地址为0x07FF FFFF (128M)
bank1的开始地址为0x0800_0000 结束地址为0x0FFF FFFF (128M)
.
.
.
bank6的开始地址为0x3000 0000 结束地址为0x37FF FFFF (128M)
bank7....

你的外部存储器例如SDRAM接在bank6上,所以cpu操作SDRAM的时候就会从0x3000 0000的地…
[/Quote]

------------对
shuiyan 2008-07-15
  • 打赏
  • 举报
回复
ARM7一般不会支持外部内存,只有少量的型号支持总线扩展(就是外部RAM/SDRAM),典型的S3C44B0是支持SDRAM。只要支持的,内存控制器都是CPU内置的。
unbutun 2008-07-15
  • 打赏
  • 举报
回复
dm6446,再问一下arm7的也是在片内吗?
unbutun 2008-07-15
  • 打赏
  • 举报
回复
ARM7一般不会支持外部内存,只有少量的型号支持总线扩展(就是外部RAM/SDRAM),典型的S3C44B0是支持SDRAM


--------------请问arm7一般不会支持外部内存-----这个是什么意思?为什么不支持外部内存?那arm7在片内集成有flash之类的东西吗?
shuiyan 2008-07-14
  • 打赏
  • 举报
回复
你问的什么平台?首先,不管是哪个平台,内存控制器都不是在“内存”中,内存只是存储芯片。

Intel的X86架构的系列都不在CPU内,所以才要南北桥芯片。
AMD的X86架构都在CPU内。
龙芯的在CPU内。

嵌入式中的ARM9及以上系列,都在CPU内。
MIPS都在CPU内。

其他的……lx补充
unbutun 2008-07-14
  • 打赏
  • 举报
回复
内存控制器是做在片内的还是在板子上还是在内存上?
song x 2008-07-12
  • 打赏
  • 举报
回复
ARM9架构的 s3c2410 cpu 的内存控制器有8个bank控制寄存器用于控制片内和片外的存储器,每个bank支持128M的地址空间。

bank0的开始地址为0x0000 0000 结束地址为0x07FF FFFF (128M)
bank1的开始地址为0x0800_0000 结束地址为0x0FFF FFFF (128M)
.
.
.
bank6的开始地址为0x3000 0000 结束地址为0x37FF FFFF (128M)
bank7....

你的外部存储器例如SDRAM接在bank6上,所以cpu操作SDRAM的时候就会从0x3000 0000的地方操作
song x 2008-07-12
  • 打赏
  • 举报
回复
不完全同意zenny_chen
对于ARM9来说 MMU 和 MEMORY CONTROLLER 都是片内资源,一下的解释适用ARM9

MMU Memory Management Unit 存储器管理单元
主要功能 :
虚拟地址到物理地址映射
存储器访问权限控制
高速缓存支持

MEMORY CONTROLLER 内存控制器
主要功能:为外部存储器存储提供内存控制信号(provides memory control signals required for external memory access.)
特性:

— 小/大端支持 Little/Big endian (selectable by a software)
— 每一个bank支持128M地址空间,总共有8个bank,最大支持1G地址空间 Address space: 128Mbytes per bank (total 1GB/8 banks)
— 除了bank0,其他的bank的存储大小都是可编程的Programmable access size (8/16/32-bit) for all banks except bank0 (16/32-bit)
— 总共有8个bank控制器 Total 8 memory banks
六个分配给ROM,SRAM等 Six memory banks for ROM, SRAM, etc.
剩下的2个给ROM,SRAM,SDRAM等 Remaining two memory banks for ROM, SRAM, SDRAM, etc .
— 7个bank控制器的开始地址是固定的 Seven fixed memory bank start address
— 最后一个bank控制器的开始地址是可自定义的 Adjustable start address for the last bank.
— 最后两个bank的大小是可编程的 Programmable bank size for the last two banks.
— 所有的bank 的存储周期是可编程的 Programmable access cycles for all memory banks
— 使用外部等待扩展总线周期 External wait to extend the bus cycles
— 支持自刷新和掉电模式的SDRAM Supporting self-refresh and power down mode for SDRAM
cpuwolf 2008-07-11
  • 打赏
  • 举报
回复
完全同意zenny_chen的说法。
MMU指CPU内部的。
内存控制器是控制,如SDRAM
zenny_chen 2008-07-03
  • 打赏
  • 举报
回复
MMU言下之意就是Memory Management Unit,通常提供外部存储器的访问权限、分页、Cache设置等操作。
MMU通常在核心芯片上。

内存控制器的话应该是对于某个存储器所持有的控制器,这个与一般外设的控制器(如DMA控制器)差不多,一般在片外。内存控制器个人理解为可以用来控制物理存储器的一些状态,比如对一个SDRAM进行刷新,或使其进入睡眠模式等。

MMU是对整个系统的存储构架体系的控制;而某个特定的存储器控制器(SDRAM、FLASH等)是针对特定存储器硬件而言的。

21,616

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧