我是一个刚开始学习,嵌入式的小白,最近对协议接口和存储的控制器,有了小小的理解,首先第一点,程序是在存储控制器里面跑起来的,在驱动程里,对相关的驱动寄存器 进行赋值,调用相关的功能。
存储控制器基本理解
存储控制器的定义:
存储控制器是按照一定的时序规则对存储器的访问进行必要控制的设备,包括地址信号、数据信号以及各种命令信号的控制,使主设备(访问存储器的设备)能够根据自己的要求使用存储器上的存储资源。
存储控制器的作用主要就是进行接口的转换,将主设备发出的读、写等命令转换成存储器能够识别的信号,还要完成主设备与存储器之间地址译码、数据格式的转换(比如数据位宽)。
就我目前的认知水平:所谓的存储控制器,就是进行协议接口的转换,将主设备发出的读写命令转换为存储器能够识别的信号,还要完后主设备与存储器之间地址译码,数据个格式的转换(比如数据位宽)。
通俗的讲就是:存储控制器是一个翻译机,去识别主设备的语言,翻译给存储器听
小知识点:
内存的工作原理:控制时序,及相关控制器的配置方法
程序在运行之前现由操作系统载入内存中,内存是RAM(随机访问存储器),可以通过地址定位一个字节的数据
cpu在执行程序时将pc的值设为程序的内存中的开始地址
cpu会一次的从内存里取值,译码,执行
内存没有初始化之前 ,是无法进行随机访问的,所以内存必须进行初始化
而且每一个bank都对应一个外设
每个bank都有相应的内存地址范围进行划分
其实不大懂这个bank的到底是什么,感觉像是物理存储器,每一个都可以外接一个外设的存储器
存储控制器的分类
SDRAM :同步动态随机存储器,(俗称内存)
通用设备存储器:
ROM: 只读存储器
BIOS:基本输入输出系统,也是只读的存储器,无法进行修改
RAM: 随机访问存储器
DRAM :动态随机存储器 基本元件小电容,电容的充电过程,叫做刷新
SRAM:静态随机存储器 精致存储功能的内存,常用作cpu的寄存器(寄存器的好坏决定了cpu的性能)
NOR FLASH : ROM存储器,通常用来保存bootloader,引导系统启动
NAND FLASH :保存操作系统映像文件和文件系统
SDRAM :内存,用来执行程序
DDR:双倍速率内存,同步动态随机存储器
R-BANK :CPU要实现对存储单元的访问,首先要选择存储芯片,即进行片选;然后再从选中的芯片中依地址码选择出相应的存储单元,以进行数据的存取,这称为字选。片内的字选是由CPU送出的N条低位地址线完成的,地址线直接接到所有存储芯片的地址输入端,而存储芯片的片选信号则大多是通过高位地址译码后产生的。
ADDR:内存地址
SDRAM的访问过程:
1.CPU发出的片选信号,选中SDRAM芯片
2.SDRAM 中有一个4个L-BANK,需要两根地址信号线选中其中一个
3.对被选中的芯片进行统一的行/列寻址
具体怎么实现存储控制器,每个不同的cpu型号不同存储控制器的实现方法也不相同,关键是我不会!!!