Quad SPI的DLP优化原理

2024-05-04 15:36
文章标签 优化 原理 spi dlp quad

本文主要是介绍Quad SPI的DLP优化原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 前言

1.1 Quad SPI Flash

        QSPI的I/O接口如图1所示,其中:

        ① CS:片选信号,低电平有效(FLASH被选中);

        ② CK:时钟信号,由主设备产生;

        ③ SI/SO: SI,即MOSI(master out slave in);SO,即MISO(master in slave out);

        对于master(一般为芯片)来说,MOSI通常为数据发送口,MISO为数据接收口;

        对于slave(一般为flash)来说,MOSI通常为数据接收口,MISO为数据发送口。

        ④ WP:写保护接口;

图1 QSPI  I/O接口示意图

        SI/SO组成了SPI(Serial Peripheral Interface)全双工通信的基础,可同时收发。对于传统SPI来说,SI对于主设备只能是输出,用于发送数据;SO对于主设备只能接收数据,即这两个I/O口是单向的。QSPI将这两个I/O口作为普通I/O口来使用,即数据可以双向传输,同时将WP和RESET口也用作数据传输的I/O口,组成了DQ0~DQ3双向四通道,数据传输速度直接起飞。

1.2 数据有效窗口(Data Valid Window)

1.2.1 传统DDR频率较低情形

        如图2所示,DDR Quad在时钟的上升沿和下降沿读取数据。

图2 传统低频DDR时序示意图

        其中:

        ① tv: clock-to-data-out time,表示从时钟上升沿或下降沿开始,到数据变得有效的这一过程所经历的时间;

        ② tHo: hold time,表示在一次时钟变化沿后,数据保持有效的时间;

        ③ Pck:clock period,时钟周期,对于DDR来说,显然是以半周期进行数据采样的;

        ④ tDV: 数据有效窗口的最小值(the minimum data valid window);

        当DDR的频率较低时,若tv小于Pck,且tv和tho的值不变时,则由tdv = Pck/ 2- tv + tho可知,DDR的时钟(CK)频率越高,Pck越小,tv就越小。所以,DDR的CK频率存在上限(66 MHz),举例来说:

• Pck = 15 ns (66 MHz)
• tv [max] = 6.5 ns
• tho [min] = 1.5 ns
• tdv = Pck / 2 - tv + tho: 15 ns / 2 - 6.5 ns + 1.5 ns = 2.5 ns

1.2.2 高频率下数据有效窗口

        当DDR的频率较高时,tv和tho正相关,这就使得数据有效窗口与tv和下一个时钟沿的到来时间强相关;才外,由于CK很高,这使得tv会很接近Pck,甚至会超过Pck,从而需要新的方法来确定数据有效窗口(如图3所示),并在窗口中找到合适的数据采样点(DLP正致力于此,by using the DLP feature an optimal strobe point can be found within the data window)。

 图3 高频DDR时序示意图

2 DLP原理

2.1 DLP的作用及基本原理

        如前文所述,SPI接口已经从单向单比特SDR I/O接口发展到SDR/DDR双向四比特Qaud接口,单向变双向,单车道变四车道, I/O效率显著提升。

        随之而来的问题是,由于Quad SPI Flash 66MB /s (SDR@133 MHz)和80MB /s (DDR@80 MHz)的高时钟速率,使用tv(max)作为数据窗口内的数据采样点(strobe point)的传统方法不再奏效;DLP(data learn pattern)则闪亮登场,用于优化QSPI的数据读取性能。

        DLP在每个数据信号上提供一个已知的数据序列(通常表现为在指定位置放置指定DLP数据,以用于主控制器的训练),使得主控制器(主设备)可以确定收数时最佳捕获数据时序。简单来说,可以理解为DLP是对读数据操作进行了标定,或者说时监督式的训练,从而帮助主控制器确定合适的数据读取时序。

        总的来说,在数据读取过程中,主设备会使用DLP进行过采样,从而确定最佳的数据捕获点;此外,DLP会对读操作进行校准,对由于工艺、电压、温度等因素带来的误差进行补偿,使得DDR频率轻松上80MBps不是梦。

2.2 主设备抓取数据策略(Host Capture Strategy)

        总的来说,主机控制器会将DLP的输入数据作为测试序列(即DLP数据已知),进而根据读该数据序列时系统的反馈确定tv和tDV,而一旦DLP找到合适的数据有效窗口,读数据的时间余量最大的那个采样点会被选为最优采样点(Once the data eye has been identified during the DLP portion of the read sequence, the controller selects the optimal data-capture point to maximize the timingmargin for the read data)。 

图4 Host Capture Strategy DDR

        通常可以用过采样的方法,建立多个贯穿数据有效窗口 (data-valid window)的数据捕获点(data-capture points),以作为样本。如图4所示,单个DQ由五个样本通道组成,每个通道之间由固定的采样延迟。这五个通道延迟的采样点(A到E)可以用延迟锁定环路( delay-locked loop,DLL)或过采样时钟(oversampling clock)生成,过采样时钟又使用内部可用的更高频率时钟生成。当DLP输出时,主控制器对目标DQ进行采样。

        其中,B/C/D三个通道都成功地抓取了DLP输入数据,且通道C的余量最大,因此被选为最佳训练参数。

3 结论

        随着嵌入式应用程序性能要求的不断提高,传统的SPl接口和协议已无法满足读取速度进一步提高的需求。DLP方法的出现,使得基于Quad SPI的Flash可以实现更高的数据速率。这一增强型的解决方案,在合理的成本控制前提下,极大程度地提高了数据读取速率,同时最大限度地减少了引脚数、PCB复杂性、封装尺寸和成本,极大地改善了系统设计和性能。

这篇关于Quad SPI的DLP优化原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959532

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6