在实时显示时,为了保证画面显示的完整性须要对SDRAM进行乒乓操做。缓存
SDRAM 中有 4 个bank ,地址分别为00 01 10 11,后面将用 0 1 2 3来描述spa
bank 0和1 做为第一个乒乓块,简称 P_1设计
bank 2和3 做为第二个乒乓块,简称 P_2请求
乒乓操做的步骤总结
一、将第 1 帧数据存入 P_2 中, 当 P_2 中完整的存储了第 1 帧图像数据后,而后进入乒乓操做。数据
二、将第 2 帧数据存入 P_1 , 同时从 P_2 中读取存储的第 1 帧数据。co
此时共有3种状态
第 1 帧数据已经读取完毕,可是第 2 帧数据尚未存储完成
第 1 帧数据没有读取完成,可是第 2 帧数据已经存储完成
第 1 帧数据读取完成、第 2 帧数据存储完成
该怎么办呢?如何处理?总结以下
对于存储:只要一帧图像数据存储完成,则马上切换到另外一个乒乓块继续存储,而与是否读取完成无关。(所以若是存储的速度和读取的速度不相同,就会出现存储和读取位于同一个乒乓块,或者位于不一样乒乓块)
对于读取:读取一帧数据完成后,只要存储数据和读取数据同时处于一个乒乓块,则切换到另外一个乒乓块继续进行读取,不然不切换,继续在原乒乓块进行读取。
SDRAM每次只能操做一个命令,存储和读取须要交替进行,不然会给 SDRAM 外部的缓存fifo或者ram形成很大的压力,所以进行设计的时候须要对读写进行优先级的判断
读请求和写请求不是同时的,则是什么请求就执行什么请求
若是读请求和写请求是同时的,则就要看上一次的状态,上一次是读,则执行写,上一次是写则执行读。