当前位置:首页 >> 信息与通信 >>

第10章


第十章 Local bus

10.4 功能说明
局部总线控制器(LBC)允许实现具有特定定时要求的存贮器系统。 · SDRAM 器提供了到使用存贮体交叉和连续页面模式的 SDRAM 接口,通过一条复 用的地址/数据总线实现高性能。生成总线时钟的内部 DLL 保证电路板设计时数据上升 沿性能的改善。 · GPCM 为较为简单、性能较低的存贮器和内存映

射设备提供接口。由于不支持突发, 所以它具有较低的性能。所以,GPCM 控制的存贮体主要用于引导装入和访问低性能 的内存映射的外设。 · UPM 支持刷新定时器,外部总线的地址复用和产生可编程的行地址和列地址选通控 制信号,允许到 DRAM 的、突发 SRAM 和几乎其他所有类型外设的最小粘合接口。 UPM 可以用来产生灵活的、用户定义的控制存贮设备的控制信号的定时模式。这些模 式定义了读、写、突发读或突发写期间的外部控制信号的行为。还可以使用刷新定时器 周期地启动用户定义的刷新模式。

图 10-20. LBC 中的存贮控制器的基本操作 可以把每个存贮体(片选)通过其基址寄存器中的机器选择位(BRn[MSEL])分配给 这三种机器的任何一个,如图 10-20 所示。如果存贮体匹配,对应的机器(GPCM、SDRAM 或 UPM)就掌管控制访问的外部信号,并一直保持控制直到操作结束。

10.4.1 基本系统结构
下面几个小节介绍 LBC 的基本系统结构。

10.4.1.1 地址和地址空间检查
将已定义的基址写入 BRn 寄存器,将对应的地址掩码写入 ORn 寄存器。每当请求访问 局部总线时,将内部事务的地址与每一个存贮体进行比较。该地址由 ORn[BA]和 ORn[AM] 屏蔽,通过将该地址的 19 个最高有效位与每个存贮体的基址进行比较来译码地址。如果与 一个存贮控制器存贮体匹配,那么就使用由该存贮体的 BRn 和 ORn 所定义的属性控制存贮 器的访问;如果与多个存贮体匹配,那么编号最小的存贮体处理存贮器访问(也就是说,存 贮体 0 的优先级高于存贮体 1) 。

10.4.1.2 外部地址锁存允许信号(LALE)
局部总线使用一条复用的地址/数据总线, 所以 LBC 必须辨别在同一条总线 (LAD[0:31]) 上出现的地址阶段和数据阶段。当 LALE 信号有效时,表示为地址阶段,此时 LBC 在 LAD[0:31] 信号上驱动存贮器的地址。 外部地址锁存器使用这一信号捕获地址并将其提供给 存贮器或外设的地址信号。当 LALE 无效时,LAD[0:31]作为访问的(双向)数据总线。所 有的地址阶段都使 LALE 有效,信号时长可编程,介于 1 到 4 个总线时钟周期之间。 LALE 有效的频率在三种存贮控制器之间会有所变化。对于 PGCM,将每一次 LCSn 有 效认为是一次独立的访问,相应地,在每一次这样的访问之前 LALE 有效。比如,为了满 足 32 字节 cache 行的传输, 驱动 8 位端口的 GPCM 会让 LALE 和 LCSn 有效 32 次。 SDRAM 控制器使 LALE 有效只是为了启动给定起始地址的一次突发传输,因此,对于 SDRAM 来 说, 通过 32 位端口传输 32 字节的 cache 行可能只需要让 LALE 有效一次。 对于 UPM, LALE 有效的次数依赖于 UPM RAM 是何如编程的。典型地,UPM 单次访问使 LALE 有效一次, 但是可以根据情况对 UPM 编程,多次使 LALE 有效,还能修改 LA[27:31]的值而与 LALE 无关。一般地,当使用 GPCM 和 SDRAM 控制器时,如果使用足够宽的锁存器在 LALE 有 效阶段捕获全部地址,就不必使用 LA[27:31]。如果 LBC 正生成它自己的突发地址序列, UPM 可能使用 LA[27:31]。 为了说明 LBC 如何处理大事务,图 10-21 给出了 GPCM 在执行从地址 0x5420 开始的 32 字节写操作时的 LBC 信号。注意,在 32 次 LALE 有效的每一次有效期间,LA[27:32]精 确地镜像 LAD[27:32],但在数据阶段,只有 LAD[0:7]和 LDP0 由有效数据和奇偶校验位驱 动。

注意:所有地址和信号的值均用 16 进制表示。D(Bk)表示 32 字节数据的第 k 个字节,P(Bk)表示第 k 个数据字节的校验位。

图 10-21. 将 32 个字节写入地址 0x5420 进行 8 位 GPCM 举例

10.4.1.3 数据传输确认(TA)
LBC 内的三种存贮控制器产生内部传输确认信号 TA(transfer acknowledge) ,允许采样 (读)或修改(写)时 LAD[0:31]上的数据。数据采样/数据修改总是发生在总线周期结束的 时候,此时 LBC 使 TA 内部有效。在 LBC 调试模式下,也可以从外部在信号 LDVAL 上观 察到 TA。GPCM 和 SDRAM 控制器根据选项和模式寄存器中的定时参数自动的生成 TA, UPM 只有在 UPM 模式下置位了 UTA RAM 字比特位的情况下才产生 TA。图 10-22 给出了 LALE、 (内部) LCSn 。 TA 和 注意, 和 LALE 不可能同时有效, LALE 有效期间,LCSn TA 在 (或其它任何控制信号)保持无效或冻结。

图 10-22. 使用 LALE、TA 和 LCSn 的基本 LBC 总线周期

10.4.1.4 数据缓冲控制(LBCTL)
存贮控制器为局部总线提供了数据缓冲控制信号 LBCTL,这一信号在访问受 GPCM 或

UPM 控制的存贮体时被激活, 置位 ORn[BCTLD]可以禁止 LBCTL。 访问 SDRAM 机控制的 存贮体不激活 LBCTL 控制。在 GPCM 模式下,LBCTL 可以进一步由 LBCR[BCTLC]配置, 充当外部 LWE 或外部 LOE 信号。 如果把 LBCTL 配置为数据缓冲控制信号(LBCR[BCTLC]=00) ,在存贮控制器操作的 第一个周期的总线时钟的上升沿让该信号有效(高电平) ,与 LALE 一致。如果访问是写, LBCTL 在整个写期间保持高电平。但如果访问是读操作,LALE 无效性和 LBCTL 变为无效 (低电平) ,这样存贮器设备才能驱动总线。如果当前挂起了连续读操作,则在下一次事务 开始之前让 LBCTL 有效一个总线时钟周期(也就是说,LALE 之前一个总线时钟周期) ,允 许总线在驱动下一个地址之前使用整个总线时钟周期进行翻转。 如果使用外部总线收发器,则应使用 LBCTL 高电平表示写方向。注意,LBCTL 缺省 (复位或总线空闲时)也是高电平。

10.4.1.5 奇偶生成和校验(LDP)
通过改变 BRn[DECC]可以为任何一个存贮体配置奇偶校验。使用 LDP[0:3]按字节生成 和校验奇偶位,当 BRn[DECC] = 01 时(正常奇偶校验)是为存贮体,当 BRn[DECC] = 10 时是为读-修改 -写(RMW)奇偶校验。在 LDP[0:3]上产生的字节通道奇偶校验位与 BRn[DECC]的设置无关。注意,RMW 奇偶校验只能用于 32 位端口大小的存贮体。 LBCR[EPAR]确定奇偶校验的全局类型(奇校验或者偶校验) 。

10.4.1.6 总线监控器
总线监控器用来保证每一个总线周期在一个合理的用户定义时间内终止。 当一个事务开 始时,总线监控器从超时值(LBCR[BMT])开始倒计数,直到总线上的数据节拍被确认。 然后,它重新装载超时值,重新倒计数,直到数据占用完成,如果没有尚未完成的事务,就 进入空闲。 置位 LTEDR[BMD]禁止监控器错误检查 (即总线监控器超时不置位 LTESR[BM]) , 但总线监控器仍然是工作的, 并且能产生 UPM 异常 (参见 10.4.1.4 节 “异常请求” 的解释) 或者终止 GPCM 访问。 保证 LBCR[BMT]的值不被设置得过低是很重要的,否则,将会在正常操作中出现虚假 的总线超时,尤其是对 SDRAM,会导致数据传输不完整。相应地,除了复位值 0x00(与 2048 个总线周期的最大超时值一致) ,在任何条件下,LBCR[BMT]的设置都不得低于 0x05 (或者 40 个总线周期的超时) 。

10.4.2 通用片选机(GPCM)
GPCM 允许到 SRAM、EPROM、FEPROM、ROM 器件和外部外设的最小粘合逻辑和 灵活的接口。GPCM 包含两个基本的配置寄存器组——BRn 和 ORn。 图 10-23 给出了 GPCM 模式下 8 位端口大小的 SRAM 器件和 LBC 之间的简单连接。 写 入存贮器的每个字节都可以使用字节写允许信号( LWE ) 。同样,所提供的输出允许信号 ( LOE )使外部粘合逻辑最小。系统复位时,系统完全配置之前,全局(启动)片选可用, 它提供引导 ROM 片选信号 LCS 0 。

图 10-23. 局部总线与 GPCM 设备的接口 图 10-24 显示了由地址线和 CE 之间所要求的建立时间所定义的 LCS 。用户可以配置 ORn[ACS]使 LCS 满足这一要求。

图 10-24. GPCM 基本读时序 (XACS=0,ACS=1x,TRLX=0,CLKDIV=4,8)

10.4.2.1 定时配置
如果 BRn[MSEL]选择 GPCM,则从 ORn 取得存贮器时钟周期属性,这些属性包括 CSNT、ACS、XACS、SCY、TRLX、EHTR 和 SETA 字段。表 10-23 给出了 LCRR[CLKDIV] =4 或 8 时写访问的信号行为和系统响应。表 10-24 给出了 LCRR[CLKDIV]=4 或 8 时读访 问的信号行为和系统响应。表 10-25 和表 10-26 分别显示了 LCRR[CLKDIV]=2 时写和读信 号的行为。

表 10-23. GPCM 写控制信号的时序(LCRR[CLKDIV]=4 或 8) 选项寄存器属性 TRLX 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
1

信号行为(总线时钟周期) CSNT 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1
LCSn 有效 地址

XACS 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1

ACS 00 10 11 00 10 11 00 10 11 00 10 11 00 10 11 00 10 11 00 10 11 00 10 11

地址改变
LCSn 无效 0

LWE 无效,地 址/数据无效

总周期 3+SCY 3+SCY 3+SCY 3+SCY 3+SCY 4+SCY 3+SCY 3+SCY 3+SCY 3+SCY 3+SCY 4+SCY

1

0 1/4 1/2 0 1 2 0 1/4 1/2 0 1 2 0 1+1/4 1+1/2 0 2 3 0 1+1/4 1+1/2 0 2 3

0 0 0 0 0 0 -1/4 -1/4 -1/4 -1/4 -1/4 -1/4 0 0 0 0 0 0 -1/4 -1/4 -1/4 -1/4 -1/4 -1/4

0 0 0 0 0 0 -1/4 -1/4 0 -1/4 -1/4 0 0 0 0 0 0 0 -1-1/4 -1-1/4 0 -1-1/4 -1-1/4

3+2*SCY 4+2*SCY 4+2*SCY 3+2*SCY 4+2*SCY 5+2*SCY 4+2*SCY 5+2*SCY 5+2*SCY 4+2*SCY 5+2*SCY 6+2*SCY

LALE 仅有效一个周期时的总周期(ORn[EAD]=0,ORn[EAD]=1,LCRR[EADC]=01) 。LALE 有效超过一

个时钟周期时将相应地增加总周期数。

表 10-24. GPCM 读控制信号的时序(LCRR[CLKDIV]=4 或 8) 选项寄存器属性 TRLX 0 0 0 0 0 0 0 EHTR 0 0 0 0 0 0 1 XACS 0 0 0 1 1 1 0 ACS 00 10 11 00 10 11 00
LCSn 有效 地址

信号行为(总线时钟周期)
LCSn 无效,地址改变

总周期 4+SCY 4+SCY 4+SCY 4+SCY 4+SCY 5+SCY 5+SCY

1

0 1/4 1/2 0 1 2 0

1 1 1 1 1 1 2

0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
1

1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1

0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1

10 11 00 10 11 00 10 11 00 10 11 00 10 11 00 10 11

1/4 1/2 0 1 2 0 1+1/4 1+1/2 0 2 3 0 1+1/4 1+1/2 0 2 3

2 2 2 2 2 5 5 5 5 5 5 9 9 9 9 9 9

5+SCY 5+SCY 5+SCY 5+SCY 6+SCY 8+2*SCY 9+2*SCY 9+2*SCY 8+2*SCY 9+2*SCY 10+2*SCY 12+2*SCY 13+2*SCY 13+2*SCY 12+2*SCY 13+2*SCY 14+2*SCY

LALE 仅有效一个周期时的总周期(ORn[EAD]=0,ORn[EAD]=1,LCRR[EADC]=01) 。LALE 有效超过一

个时钟周期时将相应地增加总周期数。

表 10-25. GPCM 写控制信号的时序(LCRR[CLKDIV]=2) 选项寄存器属性 TRLX 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 XACS 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 ACS 00 10 11 00 10 11 00 10 11 00 10 11 00 10 11 00 10 11 00 CSNT 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1
LCSn 有效 地址

信号行为(总线时钟周期) 地址改变
LCSn 无效 0
LWE 无效,地 址/数据无效

总周期 3+SCY 3+SCY 3+SCY 3+SCY 3+SCY 4+SCY 3+SCY 3+SCY 3+SCY 3+SCY 3+SCY 4+SCY

1

0 1/2 1/2 0 1 2 0 1/2 1/2 0 1 2 0 1+1/2 1+1/2 0 2 3 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

3+2*SCY 4+2*SCY 4+2*SCY 3+2*SCY 4+2*SCY 5+2*SCY 4+2*SCY

1 1 1 1 1
1

0 0 1 1 1

10 11 00 10 11

1 1 1 1 1

1+1/2 1+1/2 0 2 3

-1 -1 0 -1 -1

-1 -1 -1 -1 -1

5+2*SCY 5+2*SCY 4+2*SCY 5+2*SCY 6+2*SCY

LALE 仅有效一个周期时的总周期(ORn[EAD]=0,ORn[EAD]=1,LCRR[EADC]=01) 。LALE 有效超过一

个时钟周期时将相应地增加总周期数。

表 10-26. GPCM 读控制信号的时序(LCRR[CLKDIV]=2) 选项寄存器属性 TRLX 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
1

信号行为(总线时钟周期) ACS 00 10 11 00 10 11 00 10 11 00 10 11 00 10 11 00 10 11 00 10 11 00 10 11
LCSn 有效 地址 LCSn 无效,地址改变

EHTR 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1

XACS 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1

总周期 4+SCY 4+SCY 4+SCY 4+SCY 4+SCY 5+SCY 5+SCY 5+SCY 5+SCY 5+SCY 5+SCY 6+SCY

1

0 1/2 1/2 0 1 2 0 1/2 1/2 0 1 2 0 1+1/2 1+1/2 0 2 3 0 1+1/2 1+1/2 0 2 3

1 1 1 1 1 1 2 2 2 2 2 2 5 5 5 5 5 5 9 9 9 9 9 9

8+2*SCY 9+2*SCY 9+2*SCY 8+2*SCY 9+2*SCY 10+2*SCY 12+2*SCY 13+2*SCY 13+2*SCY 12+2*SCY 13+2*SCY 14+2*SCY

LALE 仅有效一个周期时的总周期(ORn[EAD]=0,ORn[EAD]=1,LCRR[EADC]=01) 。LALE 有效超过一

个时钟周期时将相应地增加总周期数。

10.4.2.2 片选有效定时
选择与 GPCM 一起工作的存贮体支持一个选项:以多种定时驱动 LCSn 信号(与外部地 址/数据总线有关) 。可以以下述任何一种方式驱动 LCSn :

· 与锁存的存贮器地址同时。 (这指的是外部锁存的地址,而不是 LAD[0:3]上的地址 定时。也就是说,在 LALE 期间,片选不会有效。 ) · 滞后四分之一时钟周期的(LCRR[CLKDIV]=4,8) · 滞后二分之一时钟周期的(LCRR[CLKDIV]=2,4 或 8) · 滞后一个时钟周期(LCRR[CLKDIV]=4,ORn[XACS]=1) · 滞后两个时钟周期(LCRR[CLKDIV]=2,4,8,ORn[XACS]=1) · 滞后三个时钟周期(LCRR[CLKDIV]=2,4,8,ORn[XACS]=1 且 ORn[TRLX]=1) 图 10-24 是 LCRR[CLKDIV]=4 或 8 时的两个片选有效的时序, 如果 LCRR[CLKDIV]=2, ORn[ACS]=10 或 11 的 LCSn 有效相同。

10.4.2.2.1 可编程等待状态配置
GPCM 支持内部生成传输确认,通过设定 ORn[SCY]和 ORn[TRLX],允许为一次访问 增加 0-30 个等待状态。ORn[SETA]=0 时,可以内部生成传输确认。如果 LGTA 在等待状态 计数器过期之前的两个或多个总线时钟周期时外部有效(为了同步延迟) ,那么,当前的存 贮器时钟周期由 LGTA 终止;否则,由等待状态计数器过期终止。不论 ORn[SETA]被如何设 置,等待状态以同样的方式延长 LOE 和 LWEn 的有效时长。当 TRLX=1 时,由存贮控制器 插入的等待状态的数目从 ORn[SCY]翻番为 2×ORn[SCY],允许最多 30 个等待状态。

10.4.2.2.2 片选和写允许无效时序
图 10-23 中给出了局部总线和静态存贮器件之间的基本连接。在这个例子中, LCSn 直 接与存贮器件的 CE 连接。 每一个 LWE [0:3] LWE [0:3]分别与存贮器件的 WE [3:0]信号连接, 信号对应一个不同的数据字节。

图 10-25. GPCM 基本写时序 (XACS=0,ACS=00,CSNT=1,SCY=1,TRLX=0,CLKDIV=4,8) 如图 10-25 所示, LCSn 的时序与锁存地址的时序相同。事务选通由 LOE 或 LWEn 提供, 这依赖于事务的方向——读或者写(图中为写的情况) 。ORn[CSNT]控制写周期中合适的通 道(strobe)有效的时序。当 ORn[CSNT]有效时,如果 LCRR[CLKDIV]=4 或 8,比正常情

况早四分之一个时钟周期置选通(strobe)无效。例如,当 ACS=00、CSNT=1 时, LWEn 提 前四分之一个时钟周期无效,如图 10-25 所示。如果 LCRR[CLKDIV]=2 时, LWEn 要么与 LCSn 一起无效,要么提前一个周期无效。

10.4.2.2.3 松弛定时
ORn[TRLX]是为那些要求更多的信号间松弛定时的存贮系统提供的。设置 TRLX=1 将 产生如下的定时效果: · 在地址和控制信号间加入一个额外的总线周期。 · 将 SCY 确定的等待状态数目加倍,最多达 30 个等待状态。 · 读访问扩展保持时间(EHTR)被进一步扩展。 · LCSn 信号在写期间提前一个周期无效(如果 ACS≠00) 。 · LWE [0:3]信号在写期间提前一个周期无效。

图 10-26. GPCM 松弛定时读 (XACS=0,ACS=1x,SCY=1,CSNT=0,TRLX=1,CLKDIV=4,8)

图 10-27. GPCM 松弛定时连续写 (XACS=0,ACS=1x,SCY=0,CSNT=0,TRLX=1,CLKDIV=4,8) 图 10-26 和图 10-27 显示了松弛定时的读事务和写事务。在这些例子中,CLKDIV=2 的 效果只是把 LCSn 的有效从 ACS=10 的情况延迟到 ACS=11 的情况。图 10-27 所示的例子还 显示了一对连续发出的写操作在 LAD[0:3]上的地址和数据复用。 当在写访问中置位 TRLX 和 CSNT 时,LWE [0:3] 选通信号比正常情况提前一个周期变为无 效,如图 10-28 和 10-29 所示。如果 ACS≠00, LCSn 也会提前一个周期无效。

图 10-28. GPCM 松弛定时写 (XACS=0,ACS=10,SCY=0,CSNT=1,TRLX=1,CLKDIV=4,8)

图 10-29. GPCM 松弛定时写 (XACS=0,ACS=00,SCY=1,CSNT=1,TRLX=1,CLKDIV=4,8)

10.4.2.2.4 输出允许(/LOE)时序
LOE 的时序只受 TRLX 的影响,它总是在总线时钟的上升沿有效或无效。 LOE 要么在 要么与 LCSn 保持一致 (如果 XACS=1 且 ACS=10 LCSn 有效后的总线时钟的上升沿有效, 或者 ACS=11) 。相应地, TRLX=1 可以延迟 LOE 的有效(与 LCSn 的有效一起) LOE 的 。 无效与 LCSn 的无效一致,在时钟的上升沿无效。

10.4.2.2.5 读访问扩展保持时间
那些在读访问时需要很长时间禁止数据总线驱动器的低速存贮器件应选择 ORn[TRLX,EHTR]的组合。 读访问之后对低速存贮体的所有访问在已有的总线周转周期基础 上再被延迟表 10-6 所规定的时钟周期数。 最后一个总线周转周期由 LBC 自动为读访问插入, 不管 ORn[EHTR]如何设置。

图 10-30. 后跟读的 GPCM 读(TRLX=0,EHTR=0,最快定时)

图 10-31 后跟写的 GPCM 读(TRLX=0,EHTR=1,一个周期的读扩展保持时间)

10.4.2.3 外部访问终止( LGTA )
GPCM 使用异步的 LGTA 输入信号支持外部访问终止, LGTA 输入信号由局部总线内部 采样并同步。如果在 LCSn 有效期间,采样的 LGTA 信号有效,则将转换内部生成的传输确 认,终止当前的 GPCM 访问(与 ORn[SETA]设置无关) LGTA 应该有效至少一个总线周期 。 才能起作用。注意,由于 LGTA 是同步的, LGTA 有效后的两个周期后总线才被终止,所以 在读周期中,只要 LOE 有效,设备就必须继续驱动数据。

用户通过设置 ORn[SETA]来选择是内部产生传输确认还是外部 LGTA ) ( 产生传输确认, 有效始终终止一次访问,即使 ORn[SETA]=0(内部产生传输确认) ,但是如果 LGTA ORn[SETA]=1,这是终止访问的唯一方法。 LGTA 的时序如图 10-32 所示。

图 10-32. GPCM 访问的外部终止

10.4.2.4 引导片选操作
引导片选操作允许在系统初始化前为引导 ROM 进行地址解码。 LCS 0 是引导片选输出, 在系统复位后它的操作和其他外部片选输出不一样。 当在系统复位后开始访问存贮器时, 为 每一个本地总线访问宣告 LCS 0 有效,直到 BR0 或 OR0 被重新配置。 引导片选还提供了一个可编程的端口大小,在复位时配置。引导片选不提供写保护,在 OR0 被第一次写入之前, LCS 0 就以这种方法操作,当把首选地址范围装入 BR0 之后,可 以将它用作其他任何片选寄存器。在第一次写 OR0 之后,只能通过硬件复位重启引导片选。 表 10-27 说明了存贮控制器中的引导存贮体的初始值。 表 10-27. 复位后引导存贮体的字段值 寄存器 BR0 字段 BA XBA PS DECC WP MSEL V AM XAM BCTLD CSNT ACS 设定 0000_0000_0000_0000_0 00 来自 RCWH[RPMLOC] 00 0 000 1 0000_0000_0000_0000_0 00 0 1 11

OR0

XACS SCY SETA TRLX EHTR EAD

1 1111 0 1 1 1

10.4.3 SDRAM 机
LBC 为局部总线提供了 SDRAM 机。该机为 Intel PC133 和符合 JEDEC 的 SDRAM 器 件提供控制功能和信号。每一存贮体都可以控制局部总线上的一个 SDRAM 器件。

10.4.3.1 所支持的 SDRAM 配置
存贮控制器支持任意 SDRAM 配置,但受到这样的限制:连接到总线上的所有 SDRAM 器件都应该具有相同的端口大小和定时参数(在 LSDMR 中定义) 。图 10-33 给出了仅用 12 条地址线 LBC 和 32 位 SDRAM 器件之间的一个连接示例。 注意, SDRAM 的地址信号 A[2:0] 与 LA[27:29]直接相连, 地址信号 A10 与 LBC 专用的 LSDA10 信号相连, 而其余地址位 (除 了 A10)均锁存自 LAD[20:26]。

图 10-33. 使用 12 条地址线连接 32 位 SDRAM

10.4.3.2 SDRAM 上电初始化
系统复位后,初始化软件必须配置存贮控制器存贮体寄存器(ORn,BRn 和 LSDMR) 中的可编程参数。在配置了所有存贮器参数之后,系统软件应该为每一个 SDRAM 器件执 行下列初始化步骤: · 发出 1 个 PRECHARGE-ALL-BANK 命令; · 发出 8 个 AUTO-REFRESH 命令; · 发出 1 个 MODE-SET 命令初始化模式寄存器。 执行这些初始化命令,需要设置 LSDMR[OP],并以能够命中相关存贮体的写操作访问 SDRAM。因为任何更新 LSDMR 的结果必须在写 SDRAM 之前有效,所以写 LSDMR 之后 必须立即读 LSDMR,且必须在第一次写 SDRAM 之前完成。而且,第一次写 SDRAM 之后 立即读 SDRAM, 且必须在其它更新 LSDMR 之前完成。 这样, 在更新 LSDMR 和写 SDRAM 之间必须要有正确的顺序。如果正由 e300 进行初始化,那么上述介绍的协议只有在将 SDRAM 映射为高速缓存禁止且被保护的时候才得到保证, 就像包含 LSDMR 的 CCSR 存贮 器区域一样。如果初始化来自外部主机,如上所述,主机必须保证 LSDMR 和 SDRAM 的读 操作必须在后续写操作之前完成。

需要注意的是,软件应当保证只有在这一过程结束后才能操作存贮器。

注意
一般地(不只是在上电复位期间) ,为正确操作,应遵守 LSDMR/SDRAM 访问顺 序协议。

10.4.3.3 Intel PC133 和 JEDEC 标准的 SDRAM 接口命令
SDRAM 机使用 Intel PC133 和 JEDEC 标准的 SDRAM 接口命令访问 SDRAM。 SDRAM 器件在总线时钟的上升沿采样命令和数据输入,在总线时钟上升沿采样 SDRAM 器件的输 出数据。 下列 SDRAM 接口命令可以通过将 LSDMR[OP]设置为非零数值来提供(LSDMR[OP] =000 设置正常的读/写操作) : 表 10-28. SDRAM 接口命令 命令字 (LSDMR[OP])
ACTIVATE

说明 锁存行地址并初始化该行的存贮器读操作。 行数据锁存在SDRAM的读出 放大器中,并且必须在发生另一个ACTIVATE命令之前用PRECHARGE 命令恢复。 允许设置SDRAM选项—CAS等待时间和突发长度。 CAS等待时间依赖于 所采用的SDRAM设备。尽管某些SDRAM提供1,2,4,8或者一页的突 发长度,但是对于8位和32位的端口大小,局部总线存贮控制器只支持8 拍的突发,对于16位的端口大小,只支持4拍的突发。对于SDRAM来说, LBC不支持1,2和一页的突发长度。模式寄存器数据(CAS等待时间和 突发长度) 在复位后由初始化软件写入LSDMR寄存器。 在设置了LSDMR 之后,LBC通过发出一个MODE-SET指令将这些信息传输给SDRAM设 备。 将读出放大器中的数据恢复到SDRAM设备阵列的合适的行并且初始化 读出放大器以准备激活SDRAM中的另外一行。这里要注意,LBC采用 LSDA10位来区别PRECHARGE-ALL-BANKS(LSDA10为高)和 PRECHARGE-SINGLE-BANK(LSDA10为低)。SDRAM必须兼容该格 式。 锁存列地址并将数据从 SDRAM 设备上选定的读出放大器传输至列地址 所指定的输出缓冲区。在每个连续的时钟周期里,读取额外的数据并不 需要额外的读命令。在突发结束时,页还保持打开状态。对于该存贮体 来说,突发长度是一组。LBC 丢弃掉读数据。 锁存列地址并将数据从数据信号线上传输到列地址所指定的 SDRAM 设 备上选定的读出放大器。在每个连续的时钟周期里,从数据信号线上将 额外的数据写到读出放大器中不需要增加额外的命令。在突发结束时, 页还保持打开状态。 对于该存贮体来说, 突发长度是一组。 LSDDQM[0:3] 处于非激活状态并且未定义写数据。 引发对所有存贮体(JEDEC SDRAM)中的某一行的读操作,该行由刷

(110)
MODE-SET

(011)

PRECHARGE

(100:单体 101:所有的存贮 体)
READ

(111)

WRITE

(111)

AUTO-REFRESH

(011)

新行地址计数器(类似 CBR)所指定。刷新行地址计数器是 SDRAM 设 备所内部的。在读完之后,该行将被自动重新写入存贮器阵列中。所有 的存贮体在执行刷新之前都必须处于预充电状态。 允许数据保持在 SDRAM 设备中,甚至在没有任何激活时钟的情况下。 当处于该模式时,SDRAM 设备可发出它自己的刷新命令,而不需要来 自 LBC 的外部时钟信号和来自于 LBC 的 LCKE 信号无效。该命令可以 在任何时刻发出。只有让 LSDMR[OP]=000,并且在向 LBC 发出读或者 写命令之前等待至少 200 个总线周期后才能恢复正常操作。

SELF-REFRESH

(010)

10.4.3.4 页面命中检测
SDRAM 机支持页面模式操作。每当 SDRAM 器件上的一页被激活,SDRAM 机就将其 地址存贮到寄存器。每当请求一个总线周期访问时,就将使用用户写入 ORn 寄存器的页面 信息和存贮体大小将页地址位与页寄存器相比较。 如果匹配且存贮体匹配, 就将这个总线周 期定义为页面命中。 除非 ORn[PMSEL]=1, 否则在总线变得空闲时, 打开的页面将被 SDRAM 机自动关闭。

10.4.3.5 页面管理
对于单个 SDRAM 器件,LBC 可以管理最多四个打开的页面(每个 SDRAM 存贮体一 页) 。页面打开后,如果发生下列某一事件则关闭该页面: · 下 一 次 访 问 的 页 面 在 另 一 个 SDRAM 器 件 中 。 这 种 情 况 下 , 用 PRECHARGE-ALL-BANKS 命令关闭当前器件的所有打开页面。 · 下一次访问的页面在已经有另一页面被打开的 SDRAM 存贮体中。这种情况下,用 PRECHARGE-SINGLE-BANK 命令关闭旧页面。 · 当前 SDRAM 器件请求刷新。这种情况下,用 PRECHARGE-ALL-BANKS 命令关闭 当前器件的所有打开页面。 · 总线变为空闲且 ORn[PMSEL]=0。这种情况下,用 PRECHARGE-ALL-BANKS 命令 关闭当前器件的所有打开页面。

10.4.3.6 SDRAM 地址复用
将较低地址总线位通过存贮控制器复用行/列和内部存贮体选择线与存贮器件的地址端 口相连。 存贮体选择线的位置根据 LSDMR[BSMA]设置。 10-34 显示了支持基于页面交错 图 的 SDRAM 控制器如何在激活时将行地址转换成较低的输出地址信号,如何将体选位转换 成 LSDMR[BSMA]指定的地址信号。逻辑行地址的最低位(图 10-34 中的 An)与所连接的 LAD 的最低位(32 位端口对应 29 位,16 位端口对应 30 位,8 位端口对应 31 位)对齐。

图 10-34. SDRAM 地址复用 注意,在正常读写操作期间,包含行和列的全 32 位地址是在 LAD[0:31]上产生的,但 是,地址/数据复用表明该地址必须由 LALE 控制的外部锁存器锁存。所有 SDRAM 地址信 号需要与被锁存的地址位以及 LBC 的突发地址位(LA[27:31])相连,A10 除外,因为它单 独与 LSDA10 连接。LSDA10 由那些要求以 A10 为地址的 SDRAM 命令所对应的适当的行 地址位驱动。

10.4.3.7 SDRAM 器件特色参数
软件负责为器件相关参数设置正确的值, 这些参数可以从器件数据表中提取出来。 值保 存在 ORn 和 LSDMR 寄存器中。这些参数包括: · · · · · · 预充电到激活的时间间隔(LSDMR[PRETOACT]) 激活到读/写的时间间隔(LSDMR[ACTTORW]) CAS 等待时间,列地址到首次数据输出(LSDMR[CL],LCRR[ECL]) 写恢复,末次数据输入到预充电(LSDMR[WRC]) 刷新恢复时间间隔(LSDMR[RFRC]) 当前控制线上的外部缓存(LSDMR[BUFCMD],LCRR[BUFCMDC])

另外,LBC 硬件保证 10 个总线周期的激活到预充电的缺省时间间隔。下面几节介绍在 LSDMR 中设置的 SDRAM 参数。

10.4.3.7.1 预充电到激活的时间间隔
预充电—激活时间间隔参数由 LSDMR[PRETOACT]控制,定义了对同一 SDRAM 存贮 体执行 PRECHARGE 命令后执行 ACTIAVE 或 REFRESH 命令的最早时间要求。

图 10-35. PRETOACT=2(2 个时钟周期)

10.4.3.7.2 激活到读/写的时间间隔
激活—读/写时间间隔参数受 LSDMR[ACTTORW]控制,定义了对同一 SDRAM 存贮体 执行 ACTIVATE 命令后执行 RAED 或 WRITE 命令的最早时间要求。

图 10-36. ACTTORW=2(2 个时钟周期)

10.4.3.7.3 列地址到首次数据输出——CAS 等待时间
该参数在等待时间为 1、2 或 3 时受控于 LSDMR[CL],在等待时间大于 3 时受控于 CLRR[ECL],定义了列地址被 SDRAM 采样后首次读取数据的时间要求。

图 10-37. CL=2(2 个时钟周期)

10.4.3.7.4 末次数据输入到预充电——写恢复

该 参 数 由 LSDMR[WRC] 控 制 , 定 义 了 向 SDRAM 最 后 一 次 写 入 数 据 之 后 执 行 PRECHARGE 命令的最早时间要求。

图 10-38. WRC=2(2 个时钟周期)

10.4.3.7.5 刷新恢复时间间隔(RFRC)
该参数受 LSDMR[RFRC]控制, 定义了对同一 SDRAM 器件执行 REFRESH 命令后执行 ACTIVATE 或 REFRESH 命令的最早时间要求。

图 10-39. RFRC=4(6 个时钟周期)

10.4.3.7.6 外部地址和命令缓存器(BUFCMD)
如果命令选通(strobe)(/LSDRAS,/LSDCAS,/LSDWE 和 LSDA10)的附加缓存延迟严重 影响到器件的建立时间,那么应该置位 LSDMR[BUFCMD]。置位这一位,会使存贮器控制 器为每个 SDRAM 命令向 SDRAM 控制信号(/LSDRAS,/LSDCAS,/LSDWE 和 LSDA10)的 有效增加 LCRR[BUFCMDC]个附加的总线周期。

图 10-40. BUFCMD=1,LCRR[BUFCMDC]=2

10.4.3.8 SDRAM 接口时序
下面是 SDRAM 不同访问类型的时序图。

图 10-41. SDRAM 单拍写,页面关闭,CL=3

图 10-42. SDRAM 单拍读,页面命中,CL=3

图 10-43. SDRAM 两拍读,页面关闭,CL=3

图 10-44. SDRAM 四拍突发读,页面未命中,CL=3

图 10-45. SDRAM 单拍写,页面命中

图 10-46. SDRAM 三拍写,页面关闭

图 10-47. SDRAM 流水方式的读-读,页面命中,Cl=3

图 10-48. SDRAM 流水方式的写-写,页面命中

图 10-49. SDRAM 流水方式的写-读,页面命中

10.4.3.9 SDRAM 读/写操作
SDRAM 接口支持 1-8 拍、事务大小在 1-32 个字节的读写事务。为每个事务执行一

个全突发,突发长度依赖于端口的大小。8 位或 32 位的端口最大突发拍数为 8,而 16 位端 口的最大突发拍数为 4,由 LSDMR[BL]设置。对于要求小于全突发长度的读操作而言,突 发中无关的数据都被忽略,通过 LSDDQM[0:3]有效来限制。对于要求小于全突发长度的写 操作而言,驱动相关的 LSDDQM 比特位,使之在突发不相关的周期内保持高电平(无效) , 从而保护那些非目标地址。但是,这并不影响系统的性能,因为如果挂起了一个新事务, SDRAM 控制器会立即开始执行它,有效地提前终止突发。

10.4.3.10 SDRAM MODE-SET 命令时序
通过发出 MODE-SET 命令将 LBC 传输模式寄存器数据(CAS 等待时间和突发长度) 保存在 SDRAM 器件的 LSDMR 寄存器中,如图 10-50 所示。这个例子中,锁存的地址携带 命令的模式位。

图 10-50. SDRAM MODE-SET 命令

10.4.3.11 SDRAM 刷新
存贮控制器根据 LSRT(并由 MRTPR[PTP]预分频)中的时间间隔设置,为每一个所连 接的 SDRAM 器件提供 AUTO-REFRESH 命令。 该间隔表示两次刷新之间的时间长度。 LSRT 和 MRTPR 的值取决于所用的特定的 SDRAM 器件以及 LBC 的系统时钟的频率。这个值应 该允许存贮器访问和刷新周期之间的潜在冲突。 刷新间隔时间必须大于访问时间, 以保证读 写操作可以成功完成。 刷新请求优先级分为两级——低和高。 低优先级请求在刷新定时器过期时便会产生, 只 有在存贮控制器已经处理完所有其它请求时才允许该请求; 如果不允许该请求 (存贮控制器 忙)且刷新定时器已过期多于两次以上时,那么,该请求便变为高优先级,在存贮控制器完 成当前操作时得到服务。

10.4.3.11.1 SDRAM 刷新时序
SDRAM 存贮控制器为自动刷新功能实现了存贮体的组交错, 减少存贮器刷新操作的瞬 时电流。 在刷新请求得到允许之后,存贮控制器就向每一个与刷新定时器相关的器件发出 AUTO-REFRESH 命令。将刷新命令发给 SDRAM 器件后,存贮控制器等待在 SDRAM 机模 式 寄 存 器 ( LSDMR[RFCR] ) 中 设 定 的 总 线 时 钟 周 期 数 , 然 后 向 同 一 器 件 发 出 后 续 ACTIVATE。为了避免违反器件的时序限制,用户应该保证由 LSRT 和 MRTPR 定义的刷新

请求时间间隔大于由 LSDMR[RFCR]定义的刷新恢复时间间隔。

图 10-51. SDRAM 存贮体交错自动刷新时序

10.4.4 用户可编程机(UPM)
UPM 是连接宽范围存贮器件的可伸缩接口。 每一个 UPM 的核心是一个内部 RAM 阵列, 这个阵列确定给定时钟周期在外部存贮器控制信号( LCSn , LBS [0:3]和 LGPL [0:5])上驱动 的逻辑值。RAM 阵列中的每一个字提供的比特位允许以最多字节选和片选线上的四分之一 外部总线时钟周期的精度控制存贮器的访问。图 10-52 给出了每一个 UPM 的基本操作。

图 10-52. UPM 功能模块图 下列事件初始化 UPM 周期: · 任一内部设备请求外部访问映射到由 UPM 服务的片选的地址空间 · UPM 刷新定时器过期并且请求一个事务,如 DRAM 刷新

· 正常 UPM 周期中发生的总线监控器超时错误使 UPM 转向执行一个异常序列 每一个 RAM 阵列都包含 64 个 32 位字。 信号时序发生器从 RAM 阵列中装入 RAM 字, 驱动通用信号线:字节选和片选。如果 UPM 在 WAEN 置位时读取 RAM 字,那么外部 LUPWAIT 信号将被存贮器控制器采样并同步,当前请求被冻结。

10.4.4.1 UPM 请求
RAM 阵列中的一个特殊的模式单元与每一个可能的 UPM 请求相联系。内部设备的存 贮器访问的请求初始化下列模式之一(MnMR[OP]=00) : · · · · 单拍读模式(RSS) 突发周期读模式(RBS) 单拍写模式(WSS) 突发周期写模式(WBS)

UPM 刷新定时器请求模式启动刷新定时器模式(RTS) 。 另一个正在运行的 UPM 模式出现的异常(由总线监控器超时错误引起)启动异常状态 模式(EXS) 。 图 10-53 和表 10-29 按周期类型给出了 UPM RAM 中这些模式的起始地址。但 RUN 命 令可以启动以 64 个 UPM RAM 字中任意一个为起始地址的模式。

图 10-53. RAM 阵列索引 表 10-29. UPM 例程起始地址 UPM 例程 单拍读模式(RSS) 突发读模式(RBS) 单拍写模式(WSS) 突发写模式(WBS) 刷新定时器模式(RTS) 例程起始地址 0x00 0x08 0x18 0x20 0x30

异常状态模式(EXS)

0x3C

10.4.4.1.1 存贮器访问请求
用户必须保证请求之前 UPM 已被正确初始化。 UPM 支持两种类型的存贮器读写: · 单拍传输,传输一个由最多一个字组成的操作数(取决于端口大小) 。单拍传输的周 期以一个传输的开始为开始,以一个传输的确认为结束。 · 突发传输,传输四个双字(与端口大小无关) 。对于 32 位的访问,突发传输的周期 以一个传输的开始为开始,在 8 个传输确认(8 位器件要求 32 个传输确认)后结束。 用户必须保证:单拍传输包含且仅包含一个传输确认(RAM 字中 UTA 位设为高) ,突 发传输包含的传输确认数目与要求的完全一致。 不满足单拍传输或突发传输的任何传输都被合成为一系列的单拍传输。UPM 将这些访 问被当成连续的单拍传输。突发传输也可以通过置位 ORn[BI]来禁止。比如,保证 UPM 事 务与 32 字节倍数的事务大小 32 字节对齐与 cache 行的传输自然匹配,可以获得突发性能。

10.4.4.1.2 UPM 刷新定时器请求
每一个 UPM 都包含一个刷新定时器,可以设置它产生 RAM 阵列中特定模式的刷新服 务请求。图 10-54 给出了与生成存贮器刷新定时器请求相关的时钟分频硬件。UPM 刷新定 时器寄存器(LURT)定义了与所有三个 UPM 相关的定时器的时间。

图 10-54. 存贮器刷新定时器请求模块图 缺省时,所有局部总线刷新使用 UPMA 的刷新模式完成,这意味着,如果请求刷新, 就必须置位 MAMR[RFEN]。 它还意味着, UPMA 中只能设置并放入一个刷新例程作为刷 在 新任务的执行者。如果对应 UPM 的 RFEN 位被置位,那么就向分配给该 UPM 的任意存贮 体提供刷新模式。所以,UPMA 分配的存贮体,在 MAMR[RFEN]被置位时,总会接收到刷 新服务;而 UPMB 和 UPMC 分配的存贮体,在对应的 MnMR[RFEN]比特位被置位时,也 会接收到相同的刷新服务。 注意,不应该在 SDRAM 刷新允许的系统中使用 UPM 刷新定时器请求。系统设计者必 须选择使用 SDRAM 刷新还是 UPM 刷新,同时使用这两种会导致存贮器刷新周期的丢失。

10.4.4.1.3 软件请求——RUN 命令
软件可以向 UPM 发出 RUN 命令开始一个 UPM 请求, 有些存贮器器件拥有自己的信号 握手协议,将自己设置为特定的模式,例如自刷新模式。其它存贮器器件则要求在其控制信 号发送特定的命令,比如初始化 SDRAM。 对于这些特定的周期,用户创建可以保存在 UPM RAM 中任何未使用区域的特定 RAM

模式,然后使用 RUN 命令开始周期。UPM 从指定的 RAM 单元开始运行模式,直到遇到一 个 LAST 被置位的 RAM 字。发出 RUN 命令的方法是:设置 MNMR[OP]=11,并且以能命 中对应 UPM 机的写事务访问 UPM 存贮器区域。MnMR[MAD]确定模式在 RAM 阵列中的 起始地址。 注意,对软件请求(RUN 命令) ,传输确认(RAM 字中 UTA 比特位)被忽略,所以 LAD 信号保持高阻抗,除非出现正常的初始 LALE 或者在修改 RAM 字中的 AMX 字段时 RUN 格式引起 LALE 有效。

10.4.4.1.4 异常请求
当 UPM 控制下的 LBC 初始化对存贮器的访问并发生异常 (总线监控器超时) 时, UPM 提供一种机制, 使存贮器控制信号满足器件的时序要求而不丢失数据, 这种机制就是异常模 式,它定义了 UPM 如何以受控方式使其信号无效。

10.4.4.2 对 UPM 编程
UPM 是一个微定序器, 它要求微指令或 RAM 字产生不同存贮周期的信号时序。 UPM 对 编程遵循以下步骤: 1. 设置 BRn 寄存器或 ORn 寄存器。 2. 将模式写入 RAM 阵列。 3. 如果需要刷新,设定 MRTPR、LURT 和 MAMR[RFEN]。 4. 设定 MnMR。 设置 MnMR[OP]=01,并以能够命中相关片选的写事务访问 UPM,就可以将模式写入 RAM 阵列,这样整个 RAM 阵列被一系列交替写所编程:写 MDR(要写入的 RAM 字) , 读 MDR,再(伪)写相关的 UPM 分配的存贮体。MDR 读是为了保证在(伪)写事务之前, 已经更新 MDR。 也可以为调试目的读取 RAM 阵列的内容,比如,可以通过交替(伪)读事务,每次读 RAM 阵列后再读 MDR(当 MnMR[OP]=10 时) 。

注意
伪读/写期间不应更新 MnMR/MDR 寄存器。如果 MnMR[MAD]增加了,那么 先前的伪事务就已经完成。 为了保证 MnMR/MDR 寄存器更新和 UPM 存贮区域伪访问之间的正确顺序, 必须遵循下列两条规则: 1) 2) 因为任何更新 MnMR/MDR 寄存器的结果必须在 UPM 区域伪读/写之 前有效,所以,MnMR/MDR 写之后必须立即进行 MnMR/MDR 读。 UPM 存贮区域应该与包含 MnMR 配置寄存器的存贮区域具有相同的 MMU 设置,它们都应该被 MMU 映射成 cache 禁止和受保护的。这就 避免了 e300c1 核将 MnMR 读附近的 UPM 存贮器读重新排序。 一旦完 成了 UPM 阵列的编程, 相关地址范围的 MMU 参数就可以被设置为正 常操作的正确模式,比如可高速缓存和拷回。

10.4.4.2.1 UPM 编程示例(RAM 阵列的两次连续写)
下面的示例进一步说明了在非连续地址上执行两次 RAM 阵列写所要求的步骤, 假设相 关的 BRx 寄存器和 Orx 寄存器先前已经设置: 1. 为第一次写设定 MnMR(以期望的 RAM 阵列地址) ; 2. 向 MDR 写入模式或数据,保证 MnMR 已经的配置完成更新; 3. 读 MDR, 保证 MDR 已经用期望的模式完成更新 (或者如果未执行步骤 2, MnMR 读 寄存器) ; 4. 执行伪写事务(写操作现在可以进行) ; 5. 读/检测 MnMR[MAD]。如果已经增长了,先前的伪写事务已经完成,继续步骤 6; 否则,重复步骤 5 直到 MnMR[MAD]增长了为止; 6. 为第二次写设置 MnMR(以期望的 RAM 阵列地址) ; 7. 向 MDR 写入模式或数据,保证 MnMR 已经的配置完成更新; 8. 读 MDR,保证 MDR 已经用期望的模式完成更新; 9. 执行伪写事务(写操作现在可以进行) ; 10.读/检测 MnMR[MAD]。如果已经增长了,先前的伪写事务已经完成。 注意,如果步骤 1(或 6) 、步骤 2(或 7)顺序调换,那么,步骤 3(或 8)应替换如下: · 读 MnMR,保证 MnMR 已经以理想的配置完成更新。

10.4.4.2.2 UPM 编程示例(RAM 阵列两次连续读)
也可以为调试目的读取 RAM 阵列的内容,比如,通过交替伪读事务,每次伪读之后跟 随 MDR 读(MnMR[OP]=0b10) 。下面的例子进一步说明了在非连续地址上进行两次 RAM 阵列读事务所要求的步骤,假设相关的 BRx 寄存器和 Orx 寄存器已经在先前设置。 1.为第一次读设定 MnMR(用期望的 RAM 阵列地址) ; 2.读 MnMR,保证 MnMR 已经用期望的配置完成更新,如 RAM 阵列地址; 3.执行伪读事务(读事务现在可以进行) ; 4.读/检测 MnMR[MAD],如果已经增长了,先前的伪读事务已经完成,继续步骤 5; 否则,重复步骤 4 直到 MnMR[MAD]增长了为止; 5.读 MDR; 6.为第二次读设置 MnMR(用期望的 RAM 阵列地址) ; 7.读 MnMR,保证 MnMR 已经用期望的配置完成更新,如 RAM 阵列地址; 8.执行伪读事务(读事务现在可以进行) ; 9.读/检测 MnMR[MAD],如果已经增长了,先前的伪读事务已经完成,继续步骤 10; 否则,重复步骤 9 直到 MnMR[MAD]增长了为止; 10.读 MDR。

10.4.4.3 UPM 信号时序
RAM 字的各个字段设置各种各样的外部信号的值,其粒度每个总线周期最多有 4 个取 值 。 信 号 时 序 发 生 器 使 外 部 信 号 按 照 当 前 RAM 字 所 设 定 的 时 序 工 作 。 对 于 LCRR[CLKDIV]=4 或 8 时的情况, LCSn 和 LBS 时序相关的 RAM 中的每一位确定对应外 与

部信号在每个四分之一总线时钟阶段的取值;如果 LCRR[CLKDIV]=2,外部信号的值只能 在二分之一个总线时钟阶段改变。如果这种情况下(LCRR[CLKDIV]=2)RAM 字确定四分 之一阶段信号改变,那么信号时序发生器将其解释为一个半个周期改变。 UPM 总线周期划分为多个阶段,如图 10-55 和 10-56 所示。如果 LCRR[CLKDIV]=2, 总线周期只包含两个活跃的阶段,T1 和 T3,它们分别对应总线时钟周期的前二分之一和后 二分之一;但是,如果 LCRR[CLKDIV]=4 或 8,则分为四个阶段,T1-T4,定义了四个四 分之一总线时钟周期。因为 T2 和 T4 在 LCRR[CLKDIV]=2 时为非活跃的,所以在 LCRR[CLKDIV]=2 的情况下,UPM 忽略其中任何一个阶段内的信号有效的时序。

图 10-55. UPM 时钟方案(LCRR[CLKDIV]=2)

图 10-56. UPM 时钟方案(LCRR[CLKDIV]=4 或 8) 10.4.4.4 RAM 阵列 每一个 UPM 的 RAM 阵列的深度为 64 个单元, 32 位宽,如图 10-57 所示。图底部的 信号是 UPM 的输出,被选 LCSn 是与当前地址匹配的存贮体的,被选 LBS 是访问读取或写 入的字节通道。

图 10-57 RAM 阵列和信号生成

10.4.4.4.1 RAM 字
RAM 字是一条存贮在 RAM 阵列 64 个单元中某一个单元中的 32 位微指令,它确定受 UPM 控制的外部信号的时序。图 10-58 给出了 RAM 字的各个字段。当 LCRR[CLKDIV]=4 或 8 时, CSTn 和 BSTn 确定 UPM 信号 LCSn 和 LBS [0:3]在每四分之一总线周期阶段的状态。 当 LCRR[CLKDIV]=2 时,CST2 和 CST4 被忽略,外部信号的值由 CST1 和 CST3 定义,只 是时间长度扩展到时钟周期的一半。 LCRR[CLKDIV]=2 时, 当 BSTn 位的情况与 CSTn 类似。

图 10-58. RAM 字字段说明 表 10-30 说明了 RAM 字的各个字段。 表 10-30. RAM 字字段说明 位 0 名称 CST1 说明 片选时序 1。当 LCRR[CLKDIV]=4 或 8 时,定义 LCSn 在总线时钟的 第一个 1/4 阶段期间的状态(0 或者 1) 。当 LCRR[CLKDIV]=2 时, 定义 LCSn 在总线时钟的第一个 1/2 阶段期间的状态(0 或者 1) 。 1 CST2 片选时序 2。当 LCRR[CLKDIV]=4 或 8 时,定义 LCSn 在总线时钟的 第二个 1/4 阶段期间的状态(0 或者 1) 。当 LCRR[CLKDIV]=2 的时 候忽略。 片选时序 3。当 LCRR[CLKDIV]=4 或 8 时,定义 LCSn 在总线时钟的 第三个 1/4 阶段期间的状态(0 或者 1) 。当 LCRR[CLKDIV]=2 时, 定义 LCSn 在总线时钟的第二个 1/2 阶段期间的状态(0 或者 1) 。 3 CST4 片选时序 4。当 LCRR[CLKDIV]=4 或 8 时,定义 LCSn 在总线时钟的

2

CST3

第四个 1/4 阶段期间的状态(0 或者 1) 。当 LCRR[CLKDIV]=2 的时 候忽略。 4 BST1 字节选择时序 1。与 BRn[PS]及 LA[30:31]一起定义 LBS 在总线时钟 的第一个 1/4 阶段(LCRR[CLKDIV]=4 或 8)或在总线时钟的第一个 1/2 阶段(LCRR[CLKDIV]=2)期间的状态(0 或者 1) 。 字节选择时序 2。与 BRn[PS]及 LA[30:31]一起定义 LBS 在总线时钟 的第二个 1/4 阶段 (LCRR[CLKDIV]=4 或 8) 期间的状态 或者 1) (0 。 当 LCRR[CLKDIV]=2 的时候忽略。 字节选择时序 3。与 BRn[PS]及 LA[30:31]一起定义 LBS 在总线时钟 的第三个 1/4 阶段(LCRR[CLKDIV]=4 或 8)或在总线时钟的第二个 1/2 阶段(LCRR[CLKDIV]=2)期间的状态(0 或者 1) 。 字节选择时序 4。与 BRn[PS]及 LA[30:31]一起定义 LBS 在总线时钟 的第四个 1/4 阶段 (LCRR[CLKDIV]=4 或 8) 期间的状态 或者 1) (0 。 当 LCRR[CLKDIV]=2 的时候忽略。 通用线路 0 低端。定义 LGPL0 在总线时钟的第一个和第二个 1/4 阶 段(前一半阶段)期间的状态。 00 由 MnMR[G0CL]定义该值 01 保留 10 有效 11 无效 通用线路 0 高端。定义 LGPL0 在总线时钟的第三个和第四个 1/4 阶 段(后一半阶段)期间的状态。 00 由 MnMR[G0CL]定义该值 01 保留 10 有效 11 无效 通用线路 1 时序 1。 定义 LGPL1 在总线时钟的第一个和第二个 1/4 阶 段(前一半阶段)期间的状态(0 或者 1) 。 通用线路 1 时序 3。 定义 LGPL1 在总线时钟的第三个和第四个 1/4 阶 段(后一半阶段)期间的状态(0 或者 1) 。 通用线路 2 时序 1。 定义 LGPL2 在总线时钟的第一个和第二个 1/4 阶 段(前一半阶段)期间的状态(0 或者 1) 。 通用线路 2 时序 3。 定义 LGPL2 在总线时钟的第三个和第四个 1/4 阶 段(后一半阶段)期间的状态(0 或者 1) 。 通用线路 3 时序 1。 定义 LGPL3 在总线时钟的第一个和第二个 1/4 阶 段(前一半阶段)期间的状态(0 或者 1) 。 通用线路 3 时序 3。 定义 LGPL3 在总线时钟的第三个和第四个 1/4 阶 段(后一半阶段)期间的状态(0 或者 1) 。 通用线路 4 时序 1/延时 3。该位的功能由 MnMR[GPL4]决定。 如 果 MnMR[GPL4]=0 并 且 LGPL4/LUPWAIT 信 号 功 能 为 输 出 (LGPL4) ,那么 G4T1/DLT3 定义 LGPL4 在总线时钟的第一个和第 二个 1/4 阶段(前一半阶段)期间的状态(0 或者 1) 。 如 果 MnMR[GPL4]=1 并 且 LGPL4/LUPWAIT 信 号 功 能 为 输 入 (LUPWAIT) ,那么,在执行读突发或者一个读操作时,G4T1/DLT3

5

BST2

6

BST3

7

BST4

8-9

G0L

10-11

G0H

12 13 14 15 16 17 18

G1T1 G1T3 G2T1 G2T3 G3T1 G3T3 G4T1/DLT3

定义如何对数据总线进行采样,具体如下: 0 在当前字中,应在下一个总线时钟周期的总线时钟的第一个 1/4 阶 段开始时对数据总线进行采样。 1 在当前字中,应在当前总线时钟周期的总线时钟的第三个 1/4 阶段 开始时对数据总线进行采样。 19 G4T3/WAEN 通用线路 4 时序 3/等待允许。该位的功能由 MnMR[GPL4]决定。 如 果 MnMR[GPL4]=0 并 且 LGPL4/LUPWAIT 信 号 功 能 为 输 出 (LGPL4) ,那么,G4T3/WAEN 定义 LGPL4 在总线时钟第三个和第 四个 1/4 阶段(后一半阶段)期间的状态(0 或者 1) 。 如 果 MnMR[GPL4]=1 并 且 LGPL4/LUPWAIT 信 号 功 能 为 输 入 (LUPWAIT) ,那么,G4T3/WAEN 用来允许等待机制: 0 LUPWAIT 检测禁止 1 LUPWAIT 允许。如果 LUPWAIT 被检测处于有效状态,那么将会 冻结内部信号的逻辑值,直到 LUPWAIT 被检测处于无效状态。 通用线路 5 时序 1。定义 LGPL5 在总线时钟周期的第一个和第二个 1/4 阶段(前一半阶段)期间的状态(0 或者 1) 。 通用线路 5 时序 3。定义 LGPL5 在总线时钟周期的第三个和第四个 1/4 阶段(后一半阶段)期间的状态(0 或者 1) 。 重新执行当前 RAM 字。定义执行当前 RAM 字的次数。 00 一次(正常操作) 01 两次 10 三次 11 四次 循环开始/结束。 RAM 阵列中 LOOP 为 1 的第一个 RAM 字作为循 将 环的起始字。LOOP 为 1 的下一个 RAM 字则为循环的结束字。在开 始字和结束字之间的字(包括开始字和结束字)定义为循环部分。在 MnMR 的对应的循环字段中定义了 UPM 执行该循环的次数。 0 当前的 RAM 字不是循环的起始字或者结束字。 1 当前的 RAM 字是循环的起始字或者结束字。 异常允许。允许在异常起始地址(EXS)处进入一个异常模式处理分 支, 当检测到内部总线监控器超时异常并且 RAM 字中的 EXEN 置位 时 UPM 转入特定的异常起始地址 (EXS) ,并按照指定的模式开始操 作。 在受控方式下,用户应一种异常模式,使 UPM 控制的信号无效。对 于 DRAM 控制,处理程序应将 RAS 和 CAS 置为无效以避免数据破 坏。如果 EXEN=0, UPM(不是局部总线)忽略异常并继续执行。 在 UPM 转入异常起始地址后,它继续执行读操作,直到 RAM 字中 的 LAST 位置位为止。 0 UPM 继续执行剩余的 RAM 字,忽略任何内部总线监控器超时。 1 如果检测到异常,当前的 RAM 字允许在当前周期之后转入异常 模式。 地址复用。在 LALE 阶段期间确定 LAD[0:31]的源。AMX 字段的任 何改变开始一个新的 LALE(地址)阶段。 00 LAD[0:31]是非复用地址。例如列地址。

20 21 22-23

G5T1 G5T3 REDO

24

LOOP

25

EXEN

26-27

AMX

01 保留 10 根据 MnMR[AM] LAD[0:31]是地址复用的。例如行地址。 11 LAD[0:31]是 MAR 的内容,比如用来初始化一个模式。 注意:只有当设置 AMX=00 的时候才支持源 ID 调试模式。 28 NA 下一个突发地址。确定在突发访问期间地址何时递增。 0 地址递增功能禁止 1 地址在下一个周期中递增。与 BRn[PS]一起,当端口大小为 8 位、 16 位和 32 位时,LA[27:31]的递增值分别为 1,2 和 4。 UPM 传输确认。指示当前周期中传输确认有效。 0 当前周期中传输确认无效 1 当前周期中传输确认有效 开启禁止定时器。和每个 UPM 相关联的禁止定时器用来保证对同一 个存贮体的两个连续操作之间具有最小的时间间隔。当 DRAM 需要 一个 RAS 预充电时间时,该特性是很关键的。TODT 将定时器打开, 在定时器超时之前禁止另外一个对同一存贮体的 UPM 访问。禁止定 时器的时间由 MnMR[DSn]决定。该禁止定时器不影响对不同存贮体 的访问。 这里要注意的是 TODT 必须和 LAST 一起置位, 否则将无效。 0 关闭禁止定时器 1 激活当前存贮体的禁止定时器, 在定时器超时之前禁止另外一个对 同一存贮体的新访问。比如预充电时间。 最后一个字。当 RAM 字中的 LAST 位被读取的时候,当前的 UPM 模式终止,并将 RAM 字中所设置的控制信号时序用在当前(也是最 后)周期。但是,如果禁止定时器处于激活状态并且下一个访问是针 对同一个存贮体的,那么下一个 UPM 模式的执行将会被延迟,最后 一个字中所指定的控制信号的值将持续延长 MnMR[DSn]所指定的时 钟周期数。 0 UPM 继续执行 RAM 字。 1 指示程序中的最后一个 RAM 字。在该周期完成后对 UPM 请求进 行服务。

29

UTA

30

TODT

31

LAST

10.4.4.4.2 片选信号时序(CSTn)
如果被访问存贮体的 BRn[MSEL]在当前请求周期内选择 UPM,UPM 便以 UPM RAM 字的 CSTn 字段所设置的时序来操作该存贮体的 LCSn 。所选择的 UPM 只影响适当 LCSn 信 号的有效和无效。对应存贮体的被选 LCSn 信号的状态依赖每一个 CSTn 比特位的值。图 10-59 描述了 UPM 对 LCSn 信号的控制。

图 10-59. LCSn 信号选择

10.4.4.4.3 字节选信号时序(BSTn)
如果被访问存贮体的 BRn[MSEL]在当前请求周期内选择 UPM,那么所选择的 UPM 影 响相应 LBS [0:3]信号的有效和无效。 所有四个字节选信号的时序均在 RAM 字中设置, 但是, [0:3]也要受到所访问的存贮体的端口大小、要传输的字节数和访问地址的控制。 LBS 图 10-60 显示了 UPM 如何控制 LBS 。

图 10-60. LBS 信号选择 最上面的(uppermost)字节选择( LBS 0 )有效时,表示在一个周期内 LAD[0:7]包含有 效数据。同样, LBS1 表示 LAD[8:15]包含有效数据, LBS 2 表示 LAD[16:23]包含有效数据, LBS 3 表示 LAD[24:31]包含有效数据。对于 UPM 刷新定时器请求,所有的 LBS [0:3]信号只 能由 UPM 根据刷新模式置为有效或无效。在任何内部总线监控器异常之后,不管异常由哪

一种 UPM 异常模式进行异常处理, LBS [0:3]信号均无效,以防止对外部 RAM 的伪写入。

10.4.4.4.4 通用信号(GnTn,Gon)
每一个通用目的信号都在 RAM 字中占用两个比特位, 这两个比特位定义在总线时钟的 上升沿和下降沿改变信号的逻辑值。与其它 LGPLn 信号相比,LGPL0 提供了增强功能。 GPL0 可以由 MnMR[G0GL]指定的地址线控制。为了使用这一特性,需要在 RAM 字中置位 G0H 和 G0L。比如,对于有多个存贮体的 SIMM,可以使用这一地址线在内部存贮器设备 的存贮体之间切换。

10.4.4.4.5 循环控制(LOOP)
RAM 字中的 LOOP 比特位规定需要重复的一组 UPM RAM 字的开始和结束。 当第一次 LOOP=1 时,存贮控制器认为它是循环开始字,将表 10-31 所示的对应循环字段的内容装 入到存贮器循环计数器中。将下一个 LOOP=1 的 RAM 字认为是循环结束字,当它到来时, 循环计数器减 1。 持续的循环执行由循环计数器决定。如果计数器不是零,下一次执行的 RAM 字是循环 开始字,否则,下一次执行的 RAM 字便是循环结束字后面的那一个字。循环可以顺序的执 行,但不能嵌套。还需要特别注意的是,LAST 和 LOOP 一定不能同时置位。 表 10-31. MnMR 循环字段的使用 所服务的请求 单拍读周期 突发读周期 单拍写周期 突发写周期 刷新定时器周期 RUN 命令 循环字段 RLF RLF WLF WLF TLF RLF

10.4.4.4.6 重复执行当前 RAM 字(REDO)
对于长 UPM 例程中插入的等待状态来说,REDO 功能很有用,否则,长 UPM 例程需 要更多的 RAM 字。将 RAM 字的 REDO 位设为非零值让 UPM 重复执行当前 RAM 字最多 达 3 次,具体次数由当前 RAM 字 REDO 字段定义。 在下列情况下,需要特别小心: · 当 UTA 和 REDO 一起被设置时,TA 有效的次数由 REDO 功能设定; · 当 NA 和 REDO 一起被设置时,地址递增的次数由 REDO 功能设定; · 当 LOOP 和 REDO 一起被设置时,循环机制正常工作,根据 REDO 功能重复行; · LAST 和 REDO 不得同时设定; · REDO 不能在异常例程中使用。

10.4.4.4.7 地址复用(AMX)

地址线可以被 UPM 中用户提供的模式所控制。地址复用位可以在这些中选择:驱动事 务地址、根据 MnMR[AM]字段指定的复用驱动,或者在地址信号上驱动 MAR 的内容。在 上述所有情况中, 不管 RAM 字中的 NA 位是否用于递增当前地址, LBC 的 LA[27:31]由 AMX 所选地址的 5 个最低比特位驱动。只有 AMX=00 选择了列地址,NA=1 的效果才会可见。 表 10-32 列出了当 RAM 字 AMX=10 时,MnMR[AM]的设置对地址复用的影响。当 AMX =10 时,在地址阶段用 0 驱动 LAD[0:31]总线的 16 个最高比特位。 表 10-32. UPM 地址复用
AM LAD[0:31] 作为地址 信号 000 001 010 011 100 101 当地址复 用允许时 AMX=10, 在 外部信号 上驱动的 信号 0 0 0 0 0 0 A8 A7 A6 A5 A4 A3 A9 A8 A7 A6 A5 A4 A10 A9 A8 A7 A6 A5 A11 A10 A9 A8 A7 A6 A12 A11 A10 A9 A8 A7 A13 A12 A11 A10 A9 A8 A14 A13 A12 A11 A10 A9 A15 A14 A13 A12 A11 A10 A16 A15 A14 A13 A12 A11 A17 A16 A15 A14 A13 A12 A18 A17 A16 A15 A14 A13 A19 A18 A17 A16 A15 A14 A20 A19 A18 A17 A16 A15 A21 A20 A19 A18 A17 A16 A22 A21 A20 A19 A18 A17 A23 A22 A21 A20 A19 A18 A0 -A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A28 A29 A30 A31

注意, 在执行一个 RAM 字到下一个 RAM 字时, AMX 字段任何修改都会在 LAD[0:31] 对 上产生 LALE 有效的地址阶段,具体周期的数目为 ORn 和 LCRR 寄存器为 LALE 设置的周 期数。LGPL[0:5]信号在 LALE 期间保持 RAM 字中所设定的值。

10.4.4.4.8 数据有效和数据采样控制(UTA)
当由 UPM 处理读操作且 UTA 位为 1(数据将被 LBC 采样)时,同一 RAM 字中 DLT3 位的值与 MnMR[GPLn4DIS]一起确定 LBC 采样数据输入的时间,具体如下: · 如果 RAM 字中 MnMR[GPLn4DIS]=1(G4T4/DTL3 充当 DTL3 功能)且 DTL3=1, 那么在总线时钟的下降沿,而不是上升沿锁存数据。LBC 在下一个总线时钟(在当前 总线周期的中间) 的下降沿采样数据。 这一特性只能在不要求周期中间采样的外部同步 总线设备的系统中使用。 · 如果 GPLn4DIS=0(G4T4/DTL3 充当 G4T4 功能) ,或者 GPLn4DIS=0 但 DTL3= 0,那么在总线时钟的上升沿锁存数据,这个总线时钟在当前总线时钟周期末(正常操 作) 。 图 10-61 说明了 UPM 是如何控制数据采样的。

图 10-61. UPM 读访问数据采样

10.4.4.4.9 LGPL [0:5]信号无效(LAST)
当读取 RAM 字中的 LAST 位时,当前 UPM 模式将在当前周期末被终止。在下一个周 期(紧跟 LAST) ,除非有一个连续 UPM 请求没有处理完,否则,所有 UPM 信号都将被无 条件地变为无效(变为逻辑 1) 。在这种情况下,LAST 位被置位周期之后的那个周期的信号 值将从尚未完成的 UPM 例程的第一个 RAM 字中取出。

10.4.4.4.10 等待机制(WAEN)
RAM 阵列字中的 WAEN 位可以用来允许所选 UPM RAM 字中的 UPM 等待机制。 如果 UPM 读取的 RAM 字的 WAEN 被置位, 那么, 存贮控制器采样并同步外部 LUPWAIT 信号, 就像它是一个异步信号一样。如果在同一个 RAM 字中,LAST=1,那么 WAEN 位将被忽 略。 在总线时钟的上升沿开始 LUPWAIT 的同步,且至少需要一个总线周期才能完成。如果 LUPWAIT 有效且当前 UPM 字中 WAEN=1, 那么, UPM 被冻结直至 LUPWAIT 无效。 UPM 驱动的外部信号的值保持为前一个 RAM 字指示的值。当 LUPWAIT 无效时,UPM 继续正 常功能。注意,在 WAIT 周期期间,UPM 不处理数据。 图 10-62 说明了如何使用 UPM 读取的 WAEN 位和 LUPWAIT 信号保持 UPM 处于特定 的状态,直到 LUPWAIT 无效为止。如例中所示,LCSn 和 LGPL1 的状态和 WAEN 值被冻结 到检测到 LUPWAIT 无效为止。 典型地, WAEN 在包含 UTA=1 的那一行之前被设置。 注意, 如果 WAEN 和 NA 在同一个 RAM 字中均被置位,那么,不管 UPM 冻结与否,NA 将让突 发地址象正常情况那样递增一次。

图 10-62. LUPWAIT 信号的效果

10.4.4.5 早期传输确认的 LUPWAIT 同步采样
如果将 LUPWAIT 看作是一个异步信号,即它可以在任何时间有效和无效,那么任何 UPM RAM 字都不能同时包含 WAEN=1 和 UTA=1。 但是,在同一个 RAM 字中设置 WAEN=1 和 UTA=1,允许 UPM 将 LUPWAIT 当成一 个同步信号,它必须满足与时钟的上升沿有关的建立和保持时间。这种情况下,只要 UPM 在总线时钟上升沿采样到 LUPAWAIT 无效,它立即产生一个内部传输确认,这个确认信号 允许在一个总线时钟周期之后进行数据传输, 这个传输确认的产生是很早的, 因为 LUPWAIT 还没有重新同步,而且不管 UPM 是否已在 WAIT 周期内被冻结。这一特性允许同步无效 LUPWAIT 以实现数据传输,即使 UTA、WAEN 和 LAST 被同时置位。

10.4.4.6 读访问的扩展保持时间
低速存贮器件需要较长时间关闭读访问的数据总线驱动器,因此应该选择 ORn[TRLX] 和 ORn[EHTR]的一些非零组合。读访问后,将对低速存贮器件的下一次访问延迟,延迟的 时间长度是现有的总线周转周期再加上 ORn 寄存器中所设定时钟周期数。

10.4.4.7 使用 UPM 的存贮器系统接口示例
将局部总线 UPM 控制器与 DRAM 器件连接要求对时序图进行详细的检查,时序图描 绘了访问器件时必须执行的可能的存贮器时钟周期。 本节将以快速页面模式的 DRAM 为例, LCRR[CLKDIV]取 4 或 8,给出各种 UPM 配置的时序图。这些例子不能表示那些与 LBC 一 起使用的任何特定器件的时序。 这里, LGPL1 设置为驱动 DRAM 的 R/ W , 将 尽管任何 LGPLn

信号都可以用于这一目的。

图 10-63. 对 FPM DRAM 的单拍读访问

图 10-64. 对 FPM DRAM 的单拍写访问

图 10-65. 使用 LOOP 的对 FPM DRAM 的突发读访问(图中给出两拍)

图 10-66. FPM DRAM 的刷新周期(CBR)

图 10-67. 异常周期

10.5 初始化/应用信息
该节提供 LBC 和外部设备接口的详细信息。

10.5.1 使用地址/数据复用模式与外围设备接口
局部总线既可用于独立的地址总线和数据总线,也可以用于复用的地址/数据总线。本 节给出了在复用模式下与外围设备接口的原则。

10.5.1.1 地址/数据复用总线和非复用地址信号
为了节省信号线,在同一32位局部总线上复用地址/数据。为了进行复用和重建原始地 址,必须采用一个外部锁存器。此时不需要来自于外部的控制信号,因为LALE提供了正确 的时序来控制标准的逻辑锁存器。LAD信号线可以直接和存贮器/外部设备的数据信号线相 连接。 局部总线上的事务从地址阶段开始, LBC在LAD信号上驱动事务地址并使LALE信号 有效,这样可以锁存地址,然后LBC可以继续数据阶段。 LBC支持的端口大小为8、16和32位的。当设备小于32位时,必须将事务分解,因此 LA[30:31]是非复用的。对于8位的设备,应使用LA[30:31];对于16位的设备,应使用LA30。 对于32位的设备,LA[30:31]都不使用。 此外,LBC还支持突发传输(GPCM机不支持) ,LA[27:29]是包含在普通32字节突发中 的突发地址, 为了使局部总线上所需要的地址阶段的数量最少和优化吞吐率, 这些信号都是 单独的,并且应在某设备需要5位最低有效地址的时候使用。这里不能使用LAD[27:31]。所 有其他的地址线,A[0:26],必须通过锁存器重建。

图10-68. 复用的地址/数据总线

10.5.1.2 局部总线上的外设层次
为了让同步的SRAM和SDRAM获得较高的总线速度接口,连接到局部总线的存贮器和

外设建议采用层次结构,如图10-69所示。

图10-69. 局部总线外设层次结构 复用的地址/数据总线看到的容性负载是高速SDRAM或者同步SRAM的数据信号的负 载,加上一个地址锁存器负载,再加上一个到慢速存贮器的缓冲区负载。所有其他存贮器和 外设的负载都被隐藏在缓冲区和锁存器之后。系统设计者必须考虑负载情况并确保I/O时序 能够满足所连接部件所确定的负载。

10.5.1.3 超高总线速度下的本地总线上的外设层次
为了在本地总线上获得尽可能高的总线速度, 必须尽可能减少直接连接到局部总线上外 设的数量。在这样的情况下,可能只使用同步SRAM或SDRAM中的一个存贮体,而不使用 独立的锁存器和一个独立的总线收发器。 应使用将上述两个功能集成到一个设备的总线复用 器。图10-70给出了这样的层次结构的例子,本节只是一个总体原则,电路的设计者必须对 所选择的情况进行电气特征的仿真以获得最大操作频率。

图10-70. 超高速总线下的局部总线外设层次结构

10.5.1.4 GPCM 时序
如果一个系统既包含高速同步存贮器(SDRAM,同步SRAM) ,也包含低速异步存贮器 (FLASH EPROM和外设)的存贮器层次,应使用缓冲期解除GPCM控制的存贮器的耦合, 以减少总线上的容性负载,在时序计算时必须考虑这些缓冲器。GPCM 地址时序如图10-71 所示。

图10-71. GPCM地址时序 为计算慢速外设/存贮器设备的地址建立时间,必须增加这样的几个因素:地址锁存器 的传播延迟,缓冲器的传播延迟和外设地址的建立时间延迟。两个传输延迟的典型值在 3-6ns,所以在总线频率为166MHz的情况下, LCS 约在3个总线时钟后到达。 对于数据时序,只需要考虑一个缓冲器传播延时加上实际的数据建立时间。

图10-72. GPCM数据时序

10.5.2 总线周转
因为局部总线使用复用的地址和数据, 因此为了避免在总线周转时发生总线争用, 必须 进行特殊的考虑。需要检查下面几种情况: · · · · 上一个读操作后的地址阶段 地址阶段之后的读数据阶段 对具有奇偶保护的存贮器存贮体的读-修改-写周期 带额外地址阶段的UPM周期

总线在下列情况下不会改变方向,因此不需要特殊关注: · 第一拍之后的连续突发 · 地址阶段之后的读数据阶段 · 上一个写操作之后的地址阶段

10.5.2.1 上一个读操作后的地址阶段
在读周期中,存贮器/外部设备驱动总线,总线收发器驱动LAD。在数据采样之后,必 须禁止外部设备的输出驱动器, 这将会占用一些时间; 对于慢速设备, 应使用GPCM的EHTR 特性或UPM的可编程性,确保当LBC存贮控制器结束总线周期时,这些设备已经停止驱动 总线。 在这种情况下,在前一个周期结束之后,LBCTL变高并改变总线收发器的方向,然后 LBC插入一个总线周转周期来避免总线争用,此时外部设备已经将其数据信号置为, 不会发 生总线争用。

10.5.2.2 地址阶段之后的读数据阶段
在地址阶段中,LAD主动驱动地址, LBCTL为高,驱动总线收发器的方向与写操作期 间的方向相同。当地址阶段结束之后, LBCTL变为低并改变了总线收发器的方向。LBC在 其Tdis(LB)之后将LAD信号置为高阻状态,LBCTL在ten(LB)后将有一个新状态,并且由于这 是一个异步输入, 因此收发器在其ten(transceiver)时间之后驱动这些信号。 系统设计者必须确 保[ten(LB)+ ten(transceiver)]大于tdis(LB) 以避免总线争用。

10.5.2.3 对具有奇偶保护的存贮器的某一存贮体的读-修改-写周期
总体上说来,一个读-修改-写周期是一个读周期,其立即紧接着跟一个写周期。由于写 周期在任何情况下都有一个新的地址阶段,这基本上就是上一个读之后的地址周期的情况。

10.5.2.4 额外地址阶段的UPM周期
UPM的灵活性允许用户在读周期中通过修改AMX字段插入额外的地址阶段,这样就可 以在一种模式下转换总线。如果总线(LAD)因为某些原因处于高阻状态,比如一个读周 期,在驱动LALE和用新地址驱动LAD之前,LBC自动插入一个总线周转周期。不在写时插 入周转周期,因为此时总线已开始工作。 但在总线收发器的远端仍可能发生总线争用。因此,UPM模式的设计者有责任保证在UPM 模式中插入中足够的空闲周期来避免这种情况。

10.5.3 到不同端口大小设备的接口
LBC支持8位、16位和32位的数据端口大小。但总线要求用于到各自特色端口大小的传 输的那部分数据总线应是固定的。32位的端口必须位于D[0:31],16位的端口必须位于在 D[0:15],8位的端口必须位于D[0:7]。 ,局部总线始终试图在所有的总线周期中最大限度的传 输数据。图10-73为数据总线上的设备连接示意图。

图10-73. 列不同端口大小设备的接口 表10-33列出了读周期在数据总线上要求的字节。

表10-33. 读周期下的数据总线情况 地址状态1 A[29:31] 000 001 010 字节 011 100 101 110 111 000 001 半字 010 100 101 110 字
1 2

端口大小/数据总线分配 32位
0-7 OP0 — — — OP4 — — — OP0 — — OP4 — — OP0 OP4
2

传输大小

16位
24-31 — — — OP3 — — — OP7 — — OP3 — — OP7 OP3 OP7 0-7 OP0 — OP2 — OP4 — OP6 — OP0 OP2 — OP4 — OP6 OP0 OP4 8-15 — OP1 — OP3 — OP5 — OP7 OP1 OP1 OP3 OP5 OP5 OP7 OP1 OP5 — —

8位
0-7 OP0 OP1 OP2 OP3 OP4 OP5 OP6 OP7 OP0 OP1 OP2 OP4 OP5 OP6 OP0 OP4

8-15 —
3

16-23

OP1 — — — OP5 — — OP1 OP1 — OP5 OP5 — OP1 OP5

OP2 — — — OP6 — — OP2 OP2 — OP6 OP6 OP2 OP6

000 100

地址状态是是端口大小的计算地址 OPn:在那个总线事务期间读或写这些通道。OP0是字操作数的最高有效字节,OP3是字操作数的 —表示在那个写周期中不驱动字节。

最低有效字节。
3

10.5.4 到 SDRAM 的接口
下面几个小节给出了SDRAM接口的应用信息。

10.5.4.1 局部总线的基本SDRAM性能
LBC为局部总线提供了一个SDRAM机,虽然只有一个SDRAM机,但可以设定多个片 选( LCSn ) ,支持多个SDRAM设备。注意,可以为SDRAM设定的片选的数量是不受限制 的。这意味着假定 LCS 0 是保留给GPCM连接FLASH存贮器,那么可以设定 LCS [1:7]支持 SDRAM。 如果在局部总线上配置了多个片选以支持SDRAM,那么每个SDRAM设备都应具有相 同的端口大小和定时参数。这意味着应把用于SDRAM片选的所有选项寄存器(ORn)都配 置成相同的。

注意
尽管在原则上可以将不同的端口大小和定时参数混合起来,但这样的

合并是受限制的,不建议采用这样的操作。

所有的片选都共享相同的局部总线SDRAM模式寄存器(LSDMR)进行初始化,共享相 同的局部总线分配的SDRAM刷新定时寄存器(LSRT) 和存贮器刷新定时期预分频寄存器 (MPTPR)进行刷新。 对于刷新,存贮控制器按照如下所示的在LSRT和MPTPR中所指定的时间间隔对 SDRAM进行自动刷新。 刷新周期=LSTR*(MPTPR[PTP])/系统频率 这表示在不同刷新操作之间所需要的时间间隔。 当刷新定时器期满时, 存贮控制器向每 个片选发出一个CBR,每个CBR通过一个时钟分隔开。多个片选的刷新时序图见10.4.3.11.1 节 “SDRAM刷新定时”图10-51。 当把一个存贮事务分发到局部总线上的时候, 存贮控制器将存贮器地址和每个片选的地 址信息(由BRn和ORn设定)进行比较,如果比较与SDRAM控制的某一片选相匹配,存贮 控制器根据BRn中的信息向局部总线SDRAM机申请服务。尽管可以为SDRAM设定多个片 选,但在任意给定时刻,只有其中的一片有效,这样,多个片选就可以共享同一个SDRAM。

10.5.4.2 所支持SDRAM的最大数量
表10-34汇总了信息,基于Micron提供的SDRAM数据表。 表10-34. Micron SDRAM设备 SDRAM 设备 I/O端口 存贮体 行 列
*4

64M位
*8 *16 *32 *4

128M位
*8 *16 *32 *4

256M位
*8 *16 *32 *4

512M位
*8 *16 *32

4 12 10

4 12 9

4 12 8

4 11 8

4 12 11

4 12 10

4 12 9

4 12 8

4 13 11

4 13 10

4 13 9

4 13 8

4 13 12

4 13 11

4 13 10

4
TBD TBD

数据端口的大小是可编程的, 但下面的例子使用了局部总线的全部32位。 32位端口大小 要求将四个SDRAM设备(8位I/O端口)并行连接到一个片选上。如果采用的是128M位的设 备,那么一个片选可以提供128M位/设备*4个设备=64M字节;如果SDRAM采用四个片选, 那么结果是64M字节*4=256M字节。如果采用的是256M位的SDRAM设备,那么总的可用存 贮器为512M字节。依此类推,如果采用的是512M位的SDRAM,那么总的可用空间为1G字 节。 尽管支持多个片选配置并不存在技术上的难点, 实际上, 用户都希望分配给每个片选的 SDRAM最多,以便成本最低。

10.5.4.3 SDRAM机的局限性
本节介绍局部总线SDRAM机的局限性。

10.5.4.3.1体选(bank select)复用后的最大行号分析
LSDMR[BSMA]用于复用存贮体选择地址。BSMA字段及其对应的复用地址如下所示: 000 LA12-LA13 001 LA13-LA14 … 111 LA19-LA20 注意,LA12是LAD12的锁存值。 可用来复用体选(bank select)的最高地址信号是LA[12:13],将行地址信号限制为 LA[14:31]。对于一个32位的端口,局部总线的最大宽度,LA[30:31]不连接,最大行是 LA[14:29]。局部总线SDRAM机支持15行,这对所有的设备来说都是足够的。

10.5.4.3.2 存贮体选择(体选)信号
基于页的交叉技术允许把存贮体信号复用到更高阶地址信号上,给将来的升级留下空间。 比如,用户可以将存贮体选择信号复用到LA[14:15]上,而将LA16连接到更大存储容量的地 址信号上。 这样就使得系统设计师可以设计出使用当前一代SDRAM设备的板子,并且可以在不改变 电路布线的情况下升级到下一代。

10.5.4.3.3 128M字节的SDRAM
图10-74给出了128M字节SDRAM连接示意图,注意,所有的电路图都只是连接关系图, 并没有给出任何的信号完整性的意义。

图10-74. 128M字节SDRAM结构图 表10-35给出了图10-74例子中LADn信号的详细连接。 表10-35. 128M字节SDRAM的LADn信号连接 LAD(锁存地址) LAD29 LAD28 LAD27 LAD26 LAD25 LAD24 LAD23 LAD22 LAD21 LAD20 LAD19(未连接) LAD18 LAD17 LAD16 LAD15 以下列SDRAM的组织为例: SDRAM地址信号 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10连接到LSDA10 A11 A12 BA0 如果LSDMR[BSMA]=011) ( BA1 如果LSDMR[BSMA]=011) (

· 将32位的端口大小组织为以8×8×32M位的方式 · 每个设备有四个内部存贮体、13根行地址线和10根列地址线。 逻辑地址的划分如表10-36所示: 表10-36. 逻辑地址总线划分 A[0:4] 起始地址的最高有效位 取得下列参数: · COLS=011,10根列地址线 · ROWS=100, 13根行地址线 在地址阶段中,SDRAM地址端口的设置如表10-37所示: 表10-37. 地址阶段中的SDRAM设备的地址端口 LA[0:14] — LA[15:16] 内部存贮体选择 A[18:19] LA[17:29] 行A[5:17] LA[30:31] 不连接 A[5:17] 行 A[18:19] 存贮体选 择 A[20:29] 列 A[30:31] 最低有效位

因为在LA[15:16]上复用内部存贮体选择, 所以LSDMR[BSMA]必须设置成011。 表10-38 给出了READ/WRITE命令期间的地址端口的配置。 表10-38. 读/写命令期间的SDRAM设备的地址端口 LA[0:14] 起始地址的 最高有效位 LA[15:16] 内部存贮 体选择 LA[17:18] 不用关心 LA[19] AP LA[20:29] 列 LA[30:31] 不连接

表10-39给出了该例的寄存器配置。 这里没有给出PSRT和MPTPR寄存器的配置, 但应按 照设备具体的刷新要求设定它们。 表10-39. 128M字节SDRAM的寄存器设置 寄存器 字段 BA XBA BRn PS MS V AM ORn XAM COLS ROWS RFEN LSDMR OP BSMA 基址 Ext.基址 11=32位端口大小 011=SDRAM—局部总线 1 11_1111_1000_0000_0000_0 11 011 100 1 000 011 值

RFRC PRETOACT ACTTOROW BL WRC BUFCMD CL

来自设备数据表(datesheet) 来自设备数据表 来自设备数据表 0 来自设备数据表 0 来自设备数据表

10.5.4.3.4 256M字节的SDRAM
本例采用和上例一样的SDRAM,但所连接的设备数量加倍,因此使用两个片选信号。

10.5.4.3.5 512M字节的SDRAM
本例采用Micron公司的MT48LC64M4A2FB实现512M字节 该SDRAM的组织如下: · 32位端口大小为8×4×64M位×2片选线 · 每个设备有四个内部存贮体、13根行地址线和11根列地址线。 逻辑地址的划分如表10-40所示: 表10-40. 逻辑地址划分 A[0:3] 起始地址的最高有效位 A[4:16] 行 A[17:18] 存贮体选 择 A[19:29] 列 A[30:31] 最低有效位

可以取得下列参数: · COLS=100,11根列地址线 · ROWS=100,13根行地址线 在地址阶段中,SDRAM地址端口的设置如表10-41所示: 表10-41. 地址阶段SDRAM设备的地址端口 LA[0:13] — LA[15:16] 内部存贮体选择 A[17:18] LA[17:29] 行A[4:16] LA[30:31] 不连接

因为在LA[15:16]上复用内部存贮体选择, 所以LSDMR[BSMA]必须设置成011。 表10-42 给出了在READ/WRITE命令期间地址端口的配置。 表10-42. 读/写命令期间的SDRAM设备的地址端口 LA[0:14] 起始地址的 最高有效位 LA[15:16] 内部存贮 体选择 LA[17] 不用关心 LA[18] AP LA[19:29] 列 LA[30:31] 不连接

表10-43给出了该例的寄存器配置。 这里没有给出PSRT和MPTPR寄存器的配置, 但应按照设

备具体的刷新要求设定它们。 表10-43. 512M字节SDRAM的寄存器设置 寄存器 字段 BA XBA BRn PS MS V AM XAM ORn BPD COLS ROWS RFEN OP BSMA RFRC LSDMR PRETOACT ACTTOROW BL WRC BUFCMD CL 基址 扩展基址 11=32位端口大小 011=SDRAM—局部总线 1 11_1110_0000_0000_0000_0 11 01 100 100 1 000 011 来自设备数据表 来自设备数据表 来自设备数据表 0 来自设备数据表 0 来自设备数据表 值

10.5.4.4 SDRAM的奇偶支持
和早期的DRAM技术不同,通常将SDRAM设备组织成×4,×8,×16或者×32,主流 SDRAM都不包含奇偶支持。为了允许在局部总线上的错误保护,必须用附加的SDRAM, 支持四个奇偶校验位。因为局部总线允许在SDRAM访问时可以不使用满端口大小,故 SDRAM写周期支持读-修改-写周期。 图10-75给出了连接示意图。

图10-75. SDRAM奇偶支持

10.5.5 和 ZBT SRAM 的接口
在很多应用中,SDRAM为局部总线提供了足够高的性能。但是,在网络应用中,存贮 器的访问方式通常是随机的且并未为此而优化SDRAM。ZBT SRAM就是为此而设计的以优 化网络应用中的性能。本节介绍如何与ZBT SRAM接口。图10-76给出了连接示意图。UPM 用来产生控制信号。同样的连接方式还用于管道式和直通式(flow-through)版本的ZBT SRAM中。当然必须为这些方案产生不同的UPM模式。因为ZBT SRAM主要应用在性能关 键的应用中,因此假定采用32位最大局部总线宽度。 ZBT SRAM允许不同的配置。对于局部总线来说,应将模式信号接地,将突发顺序设置 成线性突发顺序。 CKE 信号线也应接地。 ZBT SRAM执行四拍的突发。因为LBC产生的是八拍突发的事务(对32位端口而言) , UPM将每个突发分解为两个连续的四拍突发, LBC的内部地址发生器为第二个突发产生新 的A27。

图10-76. 和ZBT SRAM的接口 由于在SRAM上采用了线性突发,所以设备使用突发地址[0:1:2:3]自己进行突发。局部 总线始终产生突发并期待[0:1:2:3:4:5:6:7]。因此,ZBT SRAM的两个连续线性突发,A27=0 为第一个突发,A27=1为第二个突发提供了期望的突发模型。 UPM还支持单拍的访问。但因为ZBT SRAM不支持这种方式,并且始终用一个突发来 响应,因此UPM模式必须注意提供(对于写)和采样(对于读)的是关键节拍的数据,忽 略剩余突发的数据(通过使 WE 无效) 。UPM控制器必须等到SRAM结束,以避免更多总线 活动所引起的总线争用。 注意,可以使用自带奇偶校验的SRAM。在例子中,一使用个×18的SRAM存有2个数 据字节,采用2个奇偶校验位。为了在SDRAM存贮体上支持奇偶校验,局部总线必须使用 读-修改-写周期,对性能进行折中,而SRAM的存贮体可以采用自带的奇偶校验,不需要为 奇偶支持折中性能。

10.5.6 和 DSP 主机端口的接口
在很多应用中,集成的通信处理器汇聚DSP的通信量并将该通信量分发给DSP。局部总 线允许连接不同种类的DSP的主机端口。本节给出一些信息介绍如何连接某些典型的DSP。

10.5.6.1 和MSC8102 DSI的接口
MSC8102直通从接口(DSI—direct-slave interface)允许外部主机直接访问MSC8102。 它向外部主机提供了如下的从接口:

· 异步SRAM式接口,允许主机单拍访问(无外部时钟)。 · 同步SSRAM式接口,允许主机单拍或突发访问256位(32位8节拍或64位4节拍),其 外部时钟和MSC8102的内部总线时钟分离。 DSI支持32或者64位数据总线模式。为了和局部总线连接,必须把DSI配置成32位模式。 作为DSP复位的一部分。 DSI支持两种寻址方式,在MSC8102的引导过程中决定采用何种方式,并且可以用在32 未或64位数据模式中使用。更详细的信息请参见MSC8102的文档。 · 完全地址总线模式,使用HA[11-29] · 滑动窗口模式,使用HA[14-29]

10.5.6.2 异步SRAM-like模式下的DSI
局部总线支持DSI单/双选通操作。图10-77给出了在异步模式下使用双选通配置的 MSC8102 DSI的接口。

图10-77. 异步模式下MSC8102 DSI的接口示意图 DSI的异步SRAM式模式本质上慢于同步模式,只有在通信控制器和MSC8102之间有 少量的数据传输时才采用该模式。为了获得最大的时序灵活性,应使用LBC的UPM机。 UPM的程序员负责确保所有信号建立和保持时序正确。UPM允许进行充分的控制,以 满足所有的要求。 图10-78给出了异步写访问的时序。DSI 在主机写字节选通信号( HWBS )的第一个下 降沿对主片选ID信号 (HCID[0:3]) 进行采样, 此时主片选信号 HCS ) ( 有效。 如果HCID[0:3] 和CHIPID的值相匹配的话,则对DSI进行访问。通过使 HTA 有效,DSI通知它是否已经准备 好对主机数据总线(HD)总线进行采样,并且主机可以立即将 HWBS 置为无效来终止访问。

当DSI处于忙碌状态的时候,必须使用UPM的WAEN特性插入等待状态。MnMR[UWPL]必 须清0以正确解释 HTA 的极性。DSI在 HWBS 的上升沿对主机地址总线(HA)和主机数据总 线(HD)进行采样。此外,在结束时对 HWBS [0:3]的有效性进行采样并将其作为访问属性 的一部分。 因为在此模式下使用了UPM, 因此DCR[HTAAD]必须置1, 同时DCR[HTADT]必须定义 成一个非零值。在实现中使用该模式时,在 HTA 上使用一个上拉电阻。在两次访问之间, 主机在不需要将 HCS 置为无效即可以启动其下一次访问(连续访问)。如果下一次访问针 对的是不同的MSC8102,为了避免 HTA 上的冲突,主机在访问下一个设备之前必须等待, 直到上一个DSI停止驱动 HTA 。如果下一次访问针对的是同一个MSC8102,那么,在上一个 访问将 HTA 置有效之前,主机一定不能启动后续访问。要做到这一点,最简单的解决方法 是在UPM模式结束时插入一个空闲周期,以确保 HTA 无效。

图10-78. MSC8102 DSI的异步写操作的时序图 图10-79给出了异步读访问的时序。DSI 在主机读选通信号( HRDS )的第一个下降沿 对主机地址总线(HA)和HCID进行采样,此时 HCS 信号有效。如果HCID[0:3]和CHIPID 的值相匹配的话,则对DSI进行访问。当DCR[RPE]置位时,对存贮器空间(不是寄存器空 间)的读访问开始从内部存贮器空间的连续的地址中进行数据预取。通过使 HTA 有效,DSI 指示数据有效,此时主机可以对主机地址总线(HA)进行采样,并且通过将 HRDS 置为无 效终止访问。 如果访问的数据由于数据预取机制已经存放在读缓冲区中的话, 那么可以改善
HTA 的有效时间。当DSI处于忙碌状态的时候,必须使用UPM的WAEN特性插入等待状态。 MnMR[UWPL]必须清0以正确解释 HTA 的极性。

因为在此模式下使用了UPM,因此DCR[HTAAD]必须置1,同时驱动时间控制字段 DCR[HTADT]必须定义成一个非零值。 该模式专门用在需要在 HTA 上使用上拉电阻的实施。 在两次访问之间,主机可以在不需要将 HCS 置为无效的情况下即可以启动其下一次访 问(连续访问)。如果下一次访问针对的是不同的MSC8102,此时,为了避免 HTA 上的冲 突,主机在访问下一个设备之前必须等待,直到上一个DSI停止驱动 HTA 。如果下一次访问 针对的是同一个MSC8102,那么,在上一个访问将 HTA 驱动为1之前,主机一定不能启动后 续访问。要做到这一点,最简单的解决方法是在UPM模式结束时插入一个空闲周期,以确

保 HTA 无效。

图10-79. MSC8102 DSI的异步读操作的时序图

10.5.6.3 同步模式下的DSI
DSI的同步类SSRAM(SSRAM-like)式模式本质上快于异步模式,当通信控制器和 MSC8102之间进行大批量的数据传输的时候应当采用该模式。该模式将使总线利用率达到 最大,特别是在一个局部总线上连有多个MSC8102的时候。必须使用LBC的UPM机实现该 接口。 图10-80给出了同步模式的接口。因为在同步模式中甚至突发传输期间由DSI按时钟将
HTA 置为有效和无效,并且由于DSI期望主机在一个时钟周期内响应,因此,需要使用一些 小技巧来实现该接口。 HTA 驱动UPM的LUPWAIT。MnMR[UWPL]必须清0以正确解释 HTA 的极性。因为该 信号影响局部总线时钟的内部状态机,因此,局部总线在一个局部总线时钟周期里无法对 HTA 的变化做出正确的响应。请参考10.4.4.4.10节 “等待机制(WAEN)”。

解决该问题的关键在于局部总线的操作频率高于DSP的DSI接口的频率。可以用一个整 数分频器(1:2,1:3或者1:4)将局部总线时钟分频,以生成DSI时钟。这并不困难,因为局 部总线的设计频率远高于DSI的频率。由于所有时序都是由DSP DSI的时钟周期设定的,因 此,必须对UPM的模式进行适当的调整,需要让信号有效持续2,3或者4个时钟周期(和分 频比率一样),而不是以前的一个时钟周期。幸运的是,UPM具有REDO特性,该特性允许 每个UPM RAM表项运行1×、2×、3×或4×,这对可能的分频比率都是足够的。

图10-80. 同步模式下MSC8102 DSI的接口示意图 该解决方案允许局部总线在多个局部总线时钟内对 HTA 信号做出响应,并且依然在一 个DSI时钟周期内。典型地,LUPWAIT是内部同步的,仅仅在LUPWAIT改变后的2个时钟 周期后,可以采样或提交新数据。举例来说,如果局部总线的时钟比率是DSI时钟率的3倍, 那么可以在局部总线时钟的第三个子时钟里进行数据采样,该子时钟是DSI时钟的最后三分 之一。如果局部总线的时钟率是DSI时钟率的2倍,那么有一种特殊的处理方式,在该方式 中LUPWAIT是不同步的,请参考10.4.4.5节。“提前传输确认时的LUPWAIT同步采样 (Synchronous Sampling of LUPWAIT for Early Transfer Acknowledge )”。在该方式下,在第二个子时钟周期中采样数据,该子时钟即是DSI时钟的后半段。 LUPWAIT的AC时序必须满足该种方式,否则其行为是不确定的。 剩下的问题是UPM周期和DSI时钟周期的开始如何同步。因为在每一个DSI周期里, UPM都执行n个周期,所以UPM的调变(transition)必须和DSI的时钟保持同步。该问题的 解决方法是在该模式的开始处使用一个特殊的同步周期。 用一个GPL信号控制多路复用器并 激活外部同步逻辑,该同步逻辑让LUPWAIT一直有效到下一个DSI周期的开始, 使用DSI时 钟来延迟UPM。此后,在总线的剩余周期里,必须让GPL信号无效,由多路复用器将 LUPWAIT连到 HTA 上。要注意的是,应按无效状态的相反状态使用GPL信号(GPL[0:4]无 效时为1,GPL5无效时为0),来启动同步进程。 图10-81 给出了在时钟分频系数为3时的同步机制。注意,同步周期的长度依赖于同步 进程的相对起点,并且随每一次访问变化。有可能从1变化到n(时钟比率系数)个局部总线 时钟周期。

第二列(调整周期)是用来调整 LUPWAIT的响应时间的,以使用DSI时钟进入锁存步。 举例来说,如果时钟分频比率是1:3且LUPWAIT的响应时间是两个局部总线周期,因为 LUPWAIT是同步的,所以必须插入一个局部总线时钟周期。

图10-81. UPM同步周期 表10-44. UPM同步周期 同步周期 CST1-CST4 BST1-BST4 g0xx g1tx g2tx g3tx g4t1 g4t3 g5tx redo[0] redo[1] loop exen amx0 amx1 na uta todt last 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 补偿周期 DSI周期1 位 0-3 4-7 8-11 12-13 14-15 16-17 18 19 20-21 22 23 24 25 26 27 28 29 30 31

本节介绍了同步单拍写和读,以及同步突发写和读。 局部总线支持DSI单选通和DSI双选通操作。双选通的配置以一个例子来说明。

10.5.6.3.1 同步单拍写
图10-82给出了同步单拍写访问的时序。

图10-82. MSC8102 DSI的同步单拍写访问的时序图 DSI 在HCLKIN的第一个上升沿对HA、 HDST、 HCID、HD、HWBE 、HRDE 和 HBRST 进行采样,此时 HCS 信号有效。如果HCID[0:3]和CHIPID的值相匹配的话,则对DSI进行访 问。至少一个 HWBE 信号有效, HRDE 和 HBRST 无效。 HTA 有效表明DSI已经准备好完成 当前的访问,且主机必须终止此次访问。因为 HTA 和UPM的LUPWAIT信号相连,所以所有 的局部总线信号在 HTA 变为0之前都处于冻结状态,然后,UPM以其模式工作。典型的,立 即使 HTA 信号有效。如果写缓冲区已满, 则推迟 HTA 有效。 HTA 有效一个HCLKIN周期, 在下一个周期被置为逻辑1,在下一个HCLKIN的上升沿被停止驱动。如果是对同一个 MSC8102进行访问,那么在两次操作之间,主机在不需要将 HCS 置为无效情况就可以在下 一个HCLKIN的上升沿立即启动其下一次访问。如果下一次访问针对的是不同的MSC8102, 为了避免在 HTA 上发生冲突,主机在访问下一个设备之前必须等待,直到上一个DSI停止驱 动 HTA 。为做到这一点,最简单的解决方法是在UPM模式结束时插入一个空闲周期,以确 保 HTA 无效。

10.5.6.3.2 同步单拍读
图10-83给出了同步单拍读访问的时序。

图10-83. MSC8102 DSI的同步单拍读访问的时序图 DSI 在HCLKIN的第一个上升沿对HA、HDST、HCID、 HWBE 、 HRDE 和 HBRST 进 行采样, 此时 HCS 信号有效。 如果HCID[0:3]和CHIPID的值相匹配的话, 则对DSI进行访问。 有效, HWBE 和 HBRST 无效。如果DCR[RPE]置位(见MSC8102的文档),对存贮 HRDE 器空间 (不是寄存器空间) 的读访问开始从内部地址空间的连续地址中进行数据预取。HTA 有效表明数据有效,且主机必须采样HD并终止访问。因为 HTA 和UPM的LUPWAIT信号相 连,所以所有的局部总线的信号在 HTA 变为0之前都处于冻结状态,然后,UPM继续以其模 式工作。访问数据已经预取到读缓冲区时, HTA 已提前有效。 HTA 有效一个HCLKIN周期, 在下一个周期被置为逻辑1,在下一个HCLKIN的上升沿被停止驱动。如果是对同一个 MSC8102进行访问,那么在两次操作之间,主机在不需要将 HCS 置为无效的情况下即可以 在下一个HCLKIN的上升沿立即启动其下一次访问。如果下一次访问针对的是不同的 MSC8102,为了避免在 HTA 上发生冲突,主机在访问下一个设备之前必须等待,直到上一 个DSI停止驱动 HTA 。 为做到这一点, 最简单的解决方法是在UPM模式结束时插入一个空闲 周期,以确保 HTA 无效。

10.5.6.3.3 同步突发写
图10-84给出了同步突发写访问的时序。

图10-84. MSC8102 DSI的同步突发写访问的时序图 DSI 在HCLKIN的第一个上升沿对HA、HDST、 HCID、 HD、HWBE 、HRDE 和 HBRST 进行采样,此时 HCS 信号有效。如果HCID[0:3]和CHIPID的值相匹配的话,则对DSI进行访 问。 HWBE 有效, HBRST 有效, HRDE 无效。 HTA 有效状态DSI已准备好完成当前的访问 节拍,且主机必须继续进行该访问下一个节拍。当主机到达最后一个访问节拍时,它必须终 止该突发操作。典型的,对于该访问的每一个节拍,都立即置 HTA 信号有效。如果写缓冲 区已满, 则推迟 HTA 有效。因为 HTA 和UPM的LUPWAIT信号相连,所以所有的局部总线 的信号在 HTA 变为0之前都处于冻结状态,然后UPM继续以其模式工作。在访问的最后一个 节拍完成之后, HTA 被置为逻辑1,在下一个HCLKIN的上升沿被停止驱动。如果是对同一 个MSC8102进行访问,那么在两次操作之间,主机在不需要将 HCS 置为无效情况下即可以 在下一个HCLKIN的上升沿立即启动其下一次访问。如果下一次访问针对的是不同的 MSC8102,为了避免在 HTA 上发生冲突,主机在访问下一个设备之前必须等待,直到上一 个DSI停止驱动 HTA 。 为做到这一点, 最简单的解决方法是在UPM模式结束时插入一个空闲 周期,以确保 HTA 无效。

10.5.6.3.4 同步突发读
图10-85给出了同步突发读访问的时序。DSI 在HCLKIN的第一个上升沿对HA、HDST、 HCID、HWBE 、HRDE 和 HBRST 进行采样,此时 HCS 信号有效。如果HCID[0:3]和CHIPID 的值相匹配的话,则对DSI进行访问。

图10-85. MSC8102 DSI的同步突发读访问的时序图

HRDE 和 HBRST 有效, HWBE 则无效。当DCR[RPE]置位(见MSC8102的文档)时,对存 贮器空间 (不是寄存器空间) 的突发读操作开始从内部地址空间的连续地址中进行数据预取。 HTA 有效表明当前访问节拍的数据有效,且主机必须继续进行该访问的下一个节拍。因为 HTA 和UPM的LUPWAIT信号相连,所以所有的局部总线的信号在 HTA 变为0之前都处于冻 结状态,然后,UPM继续以其模式工作。当主机到达最后一个访问节拍时,它必须终止该
突发操作。当该访问数据已经预取到读缓冲区的时候, HTA 已提前处于有效状态。典型地, 在突发访问的第一个节拍之后, HTA 一直保持有效,直到访问结束。在访问的最后一个节 拍完成之后, HTA 被置为逻辑1,在下一个HCLKIN的上升沿被停止驱动。如果是对同一个 MSC8102进行访问,那么在两次操作之间,主机在不需要将 HCS 置为无效情况下即可以在 下一个HCLKIN的上升沿立即启动其下一次访问。如果下一次访问针对的是不同的 MSC8102,为了避免在 HTA 上发生冲突,主机在访问下一个设备之前必须等待,直到上一 个DSI停止驱动 HTA 。 为做到这一点, 最简单的解决方法是在UPM模式结束时插入一个空闲 周期,以确保 HTA 无效。

10.5.6.4 广播访问(Broadcast Accesses)
通过使用 HBCS 的操作,主机可以在多个MSC8102设备之间共享一个片选信号进行广 播写访问。在广播模式中,DSI不驱动其 HTA ,以避免将同一信号驱动为不同值的冲突。此 外,DSI也不对HCID[0:3]进行译码。 注意,广播方式只适用于写访问。 DSI定义了溢出位,DER[OVF],如果在广播访问的时候发生了溢出,DSI就置位溢出位 DER[OVF]。向该位写入1清除该位。

注意
在广播操作的过程中,为了避免在访问DSI寄存器时出现溢出,在每个DSI寄 存器访问之间, 同步模式下必须等待至少10个主机时钟周期, 异步模式下等待 至少8个内部时钟周期。

为了避免数据出错,如果DER[OVF]置位,则不进行广播写访问,直到复位该位为止。 因此,在最后一个广播访问之后和任一个常规写访问之前,必须首先读取DER[OVF],如果 已经置位就复位该位。

注意
在异步模式下,来自前一个访问(甚至是一个正常的写操作)的写数据可能会因为 广播访问溢出而丢失。为避免这种丢失,应确保先前访问的数据已被发送到FIFO 或者DSI寄存器,依赖于上次访问的类型。在第一次广播访问之前执行一次读访问 就可以做到。 在广播访问中,主机必须遵循如下规则: · 在异步模式下, HWBS [0:3] / HDBS [0:3]有效时间应至少为最小时间。对此MSC8102

技术数据表中的的AC特性一节中有对此进行定义。
· 在同步模式单拍访问下,在终止访问之前,主机必须等待一个周期。访问信号在主机 时钟周期的两个正边沿期间必须处于相同的有效状态。访问持续时间是两个时钟周期(DSI 可以将持续时间超过两个时钟周期的访问变为两个过多个连续访问。) · 在同步模式突发访问下,不允许广播访问。

10.5.6.5 和Texas Instruments TMS320Cxxxx DSPs 的EHPI的接口
Texas Instruments DSP上的增强主机端口接口(EHPI-enhanced host port interface)提供 了一个16位的并行端口,主处理器可以通过该并行端口直接访问DSP的存贮器。主机和DSP 可以在EHPI的地址范围内可以通过DSP的内部和外部存贮器交换信息。EHPI使用23位的地 址,每个地址分配给存贮器中的一个16位的字。 EHPI有两种模式,一种用于复用的地址/数据总线,另一种使用独立的总线。为了在局 部总线上连接多个DSP芯片和其他外设,推荐采用EHPI的非复用模式。EHPI使用的信号如 表10-45所示: 表10-45. EHPI信号 信号 HD[15:0] HA[19:4] HA[3:0] HBE[1:0] HCS HR/ W
HDS1 , HDS 2

类型 I/O/Z I

说明 主机数据总线:非复用模式:仅用于数据 主机地址总线:非复用模式:地址 主机地址总线:最低有效位

连接 LAD[0:15] 锁存的 A[11:26] LA[27:30]
LBS [0:1]

I I I I

主机字节允许信号 00 Word 01 MSB 片选信号 R/ W 信号

10 LSB

11

保留
LCSn LGPLy或者 反相LBCTL

数据选通信号,必须至少为两个DSP时钟周期的 宽度。 ·主机有独立的低有效读和写选通信号:一个 连到 HDS1 上,一个连到 HDS 2 上。 · 主机只有一个低有效选通信号: 连到 HDS1 或 者 HDS 2 上,另外一个置1。 · 主机只有一个高有效选通信号: 连到 HDS1 或

LGPLn

HRDY HCNTL0

O I

者 HDS 2 上,另外一个置0。 EHPI就绪信号 EHPI控制信号。非复用模式: ·HCNTL=1:访问DSP数据存贮器 ·HCNTL=0:访问EHPI控制寄存器 地址选通信号 EHPI模式信号 高:非复用模式 低:复用模式 复位模式信号 DSP到主机的中断信号

LUPWAIT 应用特色: GPIO信号或 锁存的地址 线 高

HAS HMODE

I I

RST_MODE HINT

I O

INTn

为了获得DSP主机端口所需要的时序并优化总线的利用率,建议采用一个UPM。注意, DSP地址信号反映16位的地址,而局部总线地址信号反映字节地址,因此需要一个二进制位 来转换地址信号。 EHPI主机端口有两个选通信号, HDS1 和 HDS 2 ,允许采用不同的选择来控制传输。 UPM支持任何一种选择。但是,最简单的方法是使用单低有效选通模式,并将一个UPM LGPL信号(不论是否可用)连接到 HDS 。 无论在何种情况下, 主机端口都需要一个HR/ W 信号。 该信号可以通过仅用另一个LGPL 信号并调整时序来产生,即和无任何限制。当然,设计者也可以选择将LBCTL置反来产生 该信号。UPM模式的设计者必须考虑UPM模式下的反向器的额外延时,以满足DSP主机端 口的AC时序。

图10-86. 非复用模式下与Texas Instruments EHPI的连接示意图 DSP的访问时刻无需确定。HRDY信号指示EHPI是否已经准备好进行访问。如果该信号 为低,那么在当前周期中必须插入等待状态。UPM的LUPWAIT功能提供了这样的机制。

MnMR[UWPL]必须置位,以连接到该低有效信号上。
图10-87 给出了在非复用模式下EHPI的读时序。

1

当 HCS 未被选中时,HRDY处于Hi-Z状态。

图10-87. EHPI非复用模式下的读时序图 图10-88 给出了在非复用模式下EHPI的写时序图。

1

当 HCS 未被选中时,HRDY处于Hi-Z状态。

图10-88. EHPI非复用模式下的写时序图

10.5.6.5.1 扩展到多个DSP
可以把上面介绍的连接关系很容易的修改为连接多个DSP而不仅仅是一个DSP。每个 DSP主机端口都需要有自己的片选和中断信号,且HRDY的连接必须不同,连接方式依赖于 使用哪一个DSP。其余的所有信号都可以并行连接到主机端口上。 某些DSP可以使用HRDY信号(比如,TMS320VC5510) ,其他DSP(比如, TMS320VC5509) ,则必须使用一个多路复用器,以决定将哪一个HRDY信号发送到局部总 线上。该多路复用器可以由各自的片选信号来控制。 当要连接的DSP数量较多时,必须用一个外部逻辑扩展该方案,采用额外的地址信号为

一个局部总线片选产生多个DSP HCS信号,并对HINT信号和HRDY信号进行复用。UPM的 灵活性允许为外部逻辑提供额外的延时。


相关文章:
第10章习题解答
第10章习题解答_工学_高等教育_教育专区。10.1 简述与或阵列型可编逻辑器件的原理、结构特点。 答:原理: 由逻辑代数知,任何逻辑函数都可表示为输入变量的与或...
第10章习题答案
第10章 习题提示和答案 6页 5财富值喜欢此文档的还喜欢 波的多解问题 19页 1财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击...
第10章 结构动力学
第10章 结构动力学_工学_高等教育_教育专区。结构力学习题10-1 试说明动力荷载与移动荷载的区别。移动荷载是否可能产生动力效应? 10-2 试说明冲击荷载与突加荷载...
第10章 代理
第10章 代理_财会/金融考试_资格考试/认证_教育专区。第十章 代理 第一节 概述 一、代理的概念和特征 (一)概念 代理, 是一人以他人的名义或以自己的名义独立...
第十章答案
第十章答案_财会/金融考试_资格考试/认证_教育专区。专接本机械专业指定教材答案 第十章 10.1 渐开线性质有哪些? 齿轮传动 ? 答: (1)发生线在基圆上滚过的...
有机化学第五版第十章课后答案(李景宁编)
有机化学第五版第十章课后答案(李景宁编)_理学_高等教育_教育专区。第十章 醇酚醚 第十章 醇酚醚 文档贡献者 Chem方 贡献于2015-01-17 ...
第10章习题答案
第10章习题答案_专业资料。由徐凤生主编的离散数学及应参考答案,可以有用的,供大家参考啊 第10 章图 习题 10 1.(1)图 G 的度数列为 2、2、3、3、4,则...
GMP第十章
第十章 质量控制与质量保证 第一节 质量控制实验室管理 第二百一十七条 质量控制实验室的人员、 设施、 设备应当与产品性质和生产规模相适 应。 企业通常不得进...
第10章 特殊图last
《离散数学教程》教案与习题解析 理工学院 段景辉 第 10 章 特殊图 10.1 欧拉图与哈密顿图 10.1.1 欧拉图及欧拉路径定义 10.1 图 G 称为欧拉图(Euler ...
第10章动能定理及其应用习题解
第10 章 动能定理及其应用 10-1 计算图示各系统的动能: - 1.质量为 m,半径为 r 的均质圆盘在其自身平面内作平面运动。在图示位置时,若已知圆盘 上 A、B ...
更多相关标签: