显示操作-FMC/FSMC(3)

先说几个名词:

1、FMC:(Static Memory Controller)静态存储控制器

2、FSMC:(Flexible Static Memory Controller)灵活的静态存储控制器

3、FLASH:(fast large area scan hardware)快速大面积扫描硬件

4、SDRAM:(synchronous dynamic random-access memory)同步动态随机存取内存

5、DDR:全称是DDR SDRAM(Double Data Rate SDRAM),根据DDR2,DDR3,DDR4,速度倍数不同

先说下内存条吧。内存有几个重要的参数:

1、频率:计算机系统的时钟速度是以频率来衡量的。内存主频和CPU主频一样,习惯上被用来表示内存的速度, 它代表着该内存所能达到的最高工作频率。而内存本身并不具备晶体振荡器,因此内存工作时的时钟信 号是由主板芯片组的北桥或直接由主板的时钟发生器提供的,也就是说内存无法决定自身的工作频率, 其实际工作频率是由主板来决定的。但是最高工作频率,每种内存都是限定的。

​ 有时,内存的频率还有超频或低频,这与CPU工作时可以超频或低频一样。

2、容量

3、延迟值:读取数据所延迟的时间,相关有

​ (1)系统时钟循环周期---他表示了SDRAM能运行的最大频率。

​ (2)存取时间---类似于EDO/FPM DRAM,他代表了读取数据所延迟的时间。

​ (3)CAS(纵向地址脉冲)反应时间---CAS的延迟时间。

以上5个名词,都是外部存储器,其性能比一般IO操作快,且运作时序不需要CPU、单片机进行具体操作。

一、FMC/FSMC

​ FSMC与FMC是总线接口,只要给定目的地址和数据,它运行相关逻辑。单片机通过操作对应的地址表,进行数据的读写。还可以根据不同外设要求,配置时序、协议、传输字节数。

​ 控制LCD的方法有两种,一个是通过普通IO口,一个是通过外部存储控制。而IO控制时序控制麻烦,占用大量接口,传输速度慢。如果单片机内部存储空间不足,IO口控制的传输数据量又会受到限制。所以,常用的方式是使用外部存储控制。

二、为什么要用FMC/FSMC

​ 根据电脑里,CPU与内存的关系。内存相当于缓存,毕竟CPU的运算速度和数据吞吐量有限,假设CPU每秒读写5000次,如果不用不用缓存,一旦每秒有超过500次请求数据运算,50次并发请求。那么CPU的负荷会非常大,即便CPU能支撑,也会造成服务不稳定和访问速度下降等问题。

​ 缓存,就是将从CPU、数据库中获取的结果,暂时保存起来,在下次使用的时候,无需重新到CPU重新运算或数据库中获取,减少读写次数,从而降低CPU、数据库的压力。

​ 使用缓存的好处:

​ (1)获取数据可直接从缓存获取,如果没有再到CPU、数据库中读写。这样减少对CPU、数据库的负载,减少读写次数,有利于释放运行资源

​ (2)对于不经常改变、活跃度不高的数据,由缓存暂存,下次读写直接从缓存中获取,无需经过CPU、数据库

​ (3)高性能。提高CPU、数据库性能,加快速率,减少耗时操作

​ (4)高并发。减少卡机、速度慢的可能性

三、注意事项

​ 缓存与数据库双写不一致的情况。

​ 一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去。

​ 串行化可以保证一定不会出现不一致的情况,但是它也会导致系统的吞吐量大幅度降低,用比正常情况下多几倍的机器去支撑线上的一个请求。

​ 最经典的就是缓存+数据库读写的模式(Cache Aside Pattern)。

  • 读的时候,先读缓存,缓存没有的话,再读数据库,然后取出数据后放入缓存,同时返回响应。
  • 更新的时候,先更新数据库,然后再删除缓存。

posted @ 2019-07-01 10:20  code609的博客  阅读(826)  评论(0编辑  收藏  举报