一种CLB总线内用于写操作的装置转让专利

申请号 : CN201010156996.7

文献号 : CN101894084B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林峰

申请人 : 苏州国芯科技有限公司

摘要 :

一种CLB总线内用于写操作的装置,该装置包括:微处理器,CLB总线,用于供微处理器访问的设备;所述CLB总线与设备之间设有用于锁存读/写操作指令和数据的命令缓冲器,此命令缓冲器内设有第一级命令存储单元,此第一级命令存储单元包括:用于标识第一级命令存储单元是否存有等待被执行信息的第一命令有效位,用于标识访问属性的第一标志存储区、控制操作数据位宽的第一位宽存储区、用于存储访问地址的第一地址存储区、用于存储数据的第一数据储存区。本发明使得微处理器不必等待慢速设备写操作完成,即可进行后续总线操作,从而提高了系统的效率。

权利要求 :

1.一种CLB总线内用于写操作的装置,该装置包括:

微处理器,该微处理器按照CLB总线协议向系统内设备发送信息;

CLB总线,用于按照CLB总线协议在微处理器与设备之间传输信息;

用于供微处理器访问的设备;

其特征在于:所述CLB总线与设备之间设有用于锁存读/写操作指令和数据的命令缓冲器,此命令缓冲器内设有第一级命令存储单元,此第一级命令存储单元包括:用于标识第一级命令存储单元内是否存有需要被执行信息的第一命令有效位(V1)、用于标识访问属性的第一标志存储区(RW1)、控制操作数据位宽的第一位宽存储区(SZ1)、用于存储访问地址的第一地址存储区(A1)、用于存储写数据的第一数据储存区(D1);

此命令缓冲器被配置如下:

当总线读或写操作信号(p_rw_b)处于写操作状态电平,微处理器此次访问为写操作,将总线读或写操作信号(p_rw_b)、总线操作数据位宽信号(p_tsiz[1:0])和总线操作地址信号(p_addr[31:0])分别存入第一标志存储区(RW1)、第一位宽存储区(SZ1)和第一地址存储区(A1),将第一命令有效位(V1)置为有效,同时,将总线写操作数据(p_data_out[31:0])存入第一数据储存区(D1),且命令缓冲器向所述微处理器和设备分别发送有效的总线操作应答信号(p_ta_b)和总线读或写操作信号(p_rw_b),微处理器接收到总线操作应答信号(p_ta_b)后,微处理器结束本次写操作,命令缓冲器继续控制对设备的写操作,当命令缓冲器接收到来自设备返回的应答信号,命令缓冲器结束本次对设备进行的写操作;

当总线读或写操作信号(p_rw_b)处于读操作状态电平,微处理器此次访问为读操作,将总线读或写操作信号(p_rw_b)、总线操作数据位宽信号(p_tsiz[1:0])和总线操作地址信号(p_addr[31:0])分别存入第一标志存储区(RW1)、第一位宽存储区(SZ1)和第一地址存储区(A1),将第一命令有效位(V1)置为有效,同时,且命令缓冲器向所述设备发送总线读或写操作信号(p_rw_b)、总线操作数据位宽信号(p_tsiz[1:0])和总线操作地址信号(p_addr[31:0]),微处理器等待本次读操作的应答信号,当设备向命令缓冲器返回应答信号,此次读操作完成,命令缓冲器向微处理器发送总线操作应答信号(p_ta_b),微处理器接收到总线操作应答信号(p_ta_b)后结束本次对设备进行的读操作。

2.根据权利要求1所述的装置,其特征在于:所述命令缓冲器内还设有第二级命令存储单元,此第二级命令存储单元包括:用于标识第二级命令存储单元是否存有等待被执行信息的第二命令有效位(V2),用于标识访问属性的第二标志存储区(RW2)、控制操作数据位宽的第二位宽存储区(SZ2)、用于存储访问地址的第二地址存储区(A2)、用于存储写数据的第二数据储存区(D2);

此命令缓冲器还被配置为,当命令缓冲器对设备进行写操作即第一命令有效位(V1)有效且微处理器接收到总线操作应答信号(p_ta_b)后,将来自所述微处理器的新总线读或写操作信号(p_rw_b)、新总线操作数据位宽信号(p_tsiz[1:0])和新总线操作地址信号(P_addr[31:0])分别存入第二标志存储区(RW1)、第二位宽存储区(SZ1)和第二地址存储区(A1);

当对设备进行的所述写操作访问结束即命令缓冲器接收到设备返回的应答信号,此时第一命令有效位(V1)无效,再将第二级命令存储单元内相应的信息复制到第一级命令存储单元相应的区域内,同时第一命令有效位(V1)置为有效,第二命令有效位(V2)置为无效。

3.根据权利要求1或2所述的装置,其特征在于:所述命令缓冲器采用二级深度的先进先出存储队列。

说明书 :

一种CLB总线内用于写操作的装置

技术领域

[0001] 本发明涉及集成电路技术领域,尤其涉及一种CLB总线内用于写操作的装置。

背景技术

[0002] 在C*CORE系统中,C*CORE微处理器通过CLB(C-Core Local Bus)总线对设备进行读写操作,CLB(C-Core Local Bus)总线是本申请人在摩托罗拉公司半导体重用标准的基础上进行了改进和优化而来的开放总线。现有技术中对设备进行读写操作最快可以在2个时钟周期完成。
[0003] 现有的C*CORE微处理器与外部设备的连接图如附图三所示,不管设备速度快慢,都直接连接到CLB总线上。这样,快速的设备(比如寄存器)可以在一个时钟周期内响应C*CORE微处理器的读写访问,但是慢速的设备无法在一个时钟周期内完成CCORE的读写操作,所以需要等待周期即在操作中插入足够数量的等待周期。本文通过简单的控制,可以实现减少或消除CCORE对慢速设备进行写操作中的等待周期,以提高系统的效率。对于慢速设备的写操作,现有技术的做法就是在操作中插入足够数量的等待周期,直到设备返回应答信号为止,如附图二所示,这样做的问题是C*CORE微处理器在等待周期中不能再进行其它的总线操作,效率低下。
[0004] 因此,如何开发减少C*CORE微处理器的等待时间,以提高系统资源利用率成为本领域技术人员努力的方向。

发明内容

[0005] 本发明目的是提供一种CLB总线内用于写操作的装置,该装置使得C*CORE微处理器不必等待慢速设备写操作完成,即可进行后续总线操作,从而提高了系统的效率。
[0006] 为达到上述目的,本发明采用的技术方案是:一种CLB总线内用于写操作的装置,该装置包括:
[0007] 微处理器,该微处理器按照CLB总线协议向系统内设备发送信息;
[0008] CLB总线,用于按照CLB总线协议在微处理器与设备之间传输信息;
[0009] 用于供微处理器访问的设备;
[0010] 所述CLB总线与设备之间设有用于锁存读/写操作指令和数据的命令缓冲器,此命令缓冲器内设有第一级命令存储单元,此第一级命令存储单元包括:用于标识第一级命令存储单元内是否存有等待被执行信息的第一命令有效位、用于标识访问属性的第一标志存储区、控制操作数据位宽的第一位宽存储区、用于存储访问地址的第一地址存储区、用于存储写数据的第一数据储存区;
[0011] 此命令缓冲器被配置如下:
[0012] 当总线读或写操作信号处于写操作状态电平,微处理器此次访问为写操作,将总线读或写操作信号、总线操作数据位宽信号和总线操作地址信号分别存入第一标志存储区、第一位宽存储区和第一地址存储区,
[0013] 将第一命令有效位置为有效,同时,将总线写操作数据存入第一数据储存区,且命令缓冲器向所述微处理器和设备分别发送有效的总线操作应答信号和总线读或写操作信号,
[0014] 微处理器接收到总线操作应答信号后,微处理器结束本次写操作,命令缓冲器继续控制对设备的写操作,
[0015] 当命令缓冲器接收到来自设备返回的应答信号,命令缓冲器结束本次对设备进行的写操作;
[0016] 当总线读或写操作信号处于读操作状态电平,微处理器此次访问为读操作,将总线读或写操作信号、总线操作数据位宽信号和总线操作地址信号分别存入第一标志存储区、第一位宽存储区和第一地址存储区,
[0017] 将第一命令有效位置为有效,同时,且命令缓冲器向所述设备发送总线读或写操作信号、总线操作数据位宽信号和总线操作地址信号,微处理器等待本次读操作的应答信号,
[0018] 当设备向命令缓冲器返回应答信号,此次读操作完成,命令缓冲器向微处理器发送总线操作应答信号,微处理器接收到总线操作应答信号后结束本次对设备进行的读操作。
[0019] 上述技术方案中的有关内容解释如下:
[0020] 1、上述方案中,所述命令缓冲器内还设有第二级命令存储单元,此第二级命令存储单元包括:用于标识第二级命令存储单元是否存有等待被执行信息的第二命令有效位,用于标识访问属性的第二标志存储区、控制操作数据位宽的第二位宽存储区、用于存储访问地址的第二地址存储区、用于存储写数据的第二数据储存区;
[0021] 此命令缓冲器还被配置为,当命令缓冲器对设备进行写操作即第一命令有效位有效且微处理器接收到总线操作应答信号后,将来自所述微处理器的新总线读或写操作信号、新总线操作数据位宽信号和新总线操作地址信号分别存入第二标志存储区、第二位宽存储区和第二地址存储区;
[0022] 当所述写操作访问结束即命令缓冲器接收到设备返回的应答信号,此时第一命令有效位无效,再将第二级命令存储单元内相应的信息复制到第一级命令存储单元相应的区域内,同时第一命令有效位置为有效,第二命令有效位置为无效。
[0023] 2、上述方案中,所述命令缓冲器采用二级深度的先进先出存储队列。
[0024] 由于上述技术方案运用,本发明与现有技术相比,本发明通过增加简单的控制,使得微处理器不必等待慢速设备写操作完成,从而可以立即进行后续的总线操作,提高了系统的效率。其次,通过增加第二级命令存储单元,使得在写操作过程中可进行下次读或写操作,从而提高了系统资源整理利用率。

附图说明

[0025] 附图1为无慢速设备的CLB总线写操作示意图;
[0026] 附图2为有慢速设备的CLB总线写操作示意图;
[0027] 附图3为现有的C*CORE微处理器与外设连接示意图;
[0028] 附图4为具有命令缓冲器的C*CORE微处理器与外设连接示意图。

具体实施方式

[0029] 下面结合附图及实施例对本发明作进一步描述:
[0030] 实施例:一种CLB总线内用于写操作的装置,
[0031] 该装置包括:
[0032] C*CORE微处理器,该微处理器按照CLB总线协议向系统内设备发送信息;
[0033] CLB总线,用于按照CLB总线协议在C*CORE微处理器与设备之间传输信息;
[0034] 用于供C*CORE微处理器访问的设备;
[0035] 所述CLB总线与设备之间设有用于锁存读/写操作指令和数据的命令缓冲器,所述命令缓冲器采用二级深度的先进先出存储队列,此命令缓冲器内设有第一级命令存储单元,此第一级命令存储单元包括:用于标识第一级命令存储单元内是否存有等待被执行信息的第一命令有效位V1、用于标识访问属性的第一标志存储区RW1、控制操作数据位宽的第一位宽存储区SZ1、用于存储访问地址的第一地址存储区A1、用于存储写数据的第一数据储存区D1;所述命令缓冲器内还设有第二级命令存储单元,此第二级命令存储单元包括:用于标识第二级命令存储单元是否存有等待被执行信息的第二命令有效位V2,用于标识访问属性的第二标志存储区RW2、控制操作数据位宽的第二位宽存储区SZ2、用于存储访问地址的第二地址存储区A2、用于存储写数据的第二数据储存区D2;
[0036] 此命令缓冲器被配置如下:
[0037] 当总线读或写操作信号p_rw_b处于写操作状态电平,C*CORE微处理器此次访问为写操作,将总线读或写操作信号p_rw_b、总线操作数据位宽信号p_tsiz[1:0]和总线操作地址信号p_addr[31:0]分别存入第一标志存储区RW1、第一位宽存储区SZ1和第一地址存储区A1,
[0038] 将第一命令有效位V1置为有效,同时,将总线写操作数据p_data_out[31:0]存入第一数据储存区D1,且命令缓冲器向所述C*CORE微处理器和设备分别发送有效的总线操作应答信号p_ta_b和总线读或写操作信号p_rw_b,
[0039] C*CORE微处理器接收到总线操作应答信号p_ta_b后,C*CORE微处理器结束本次写操作,命令缓冲器继续控制对设备的写操作,
[0040] 当命令缓冲器接收到来自设备返回的应答信号,命令缓冲器结束本次对设备进行的写操作;
[0041] 当总线读或写操作信号p_rw_b处于读操作状态电平,C*CORE微处理器此次访问为读操作,将总线读或写操作信号p_rw_b、总线操作数据位宽信号p_tsiz[1:0]和总线操作地址信号p_addr[31:0]分别存入第一标志存储区RW1、第一位宽存储区SZ1和第一地址存储区A1,
[0042] 将第一命令有效位V1置为有效,同时,且命令缓冲器向所述设备发送总线读或写操作信号p_rw_b、总线操作数据位宽信号p_tsiz[1:0]和总线操作地址信号p_addr[31:0],C*CORE微处理器等待本次读操作的应答信号,
[0043] 当设备向命令缓冲器返回应答信号,此次读操作完成,命令缓冲器向C*CORE微处理器发送总线操作应答信号p_ta_b,C*CORE微处理器接收到总线操作应答信号p_ta_b后结束本次对设备进行的读操作。
[0044] 当命令缓冲器对设备进行写操作即第一命令有效位V1有效且C*CORE微处理器接收到总线操作应答信号p_ta_b后,将来自所述C*CORE微处理器的新总线读或写操作信号p_rw_b、新总线操作数据位宽信号p_tsiz[1:0]和新总线操作地址信号p_addr[31:0]分别存入第二标志存储区RW1、第二位宽存储区SZ1和第二地址存储区A1;
[0045] 当所述写操作访问结束即命令缓冲器接收到设备返回的应答信号,此时第一命令有效位V1无效,再将第二级命令存储单元内相应的信息复制到第一级命令存储单元相应的区域内,同时第一命令有效位V1置为有效,第二命令有效位V2置为无效。
[0046] 本实施例上述内容具体解释和工作过程如下。
[0047] CLB总线相关信号定义:
[0048] p_treq_b,总线操作请求信号,低电平有效,当有效时表明CCORE正在进行一个总线操作请求。只有在p_ta_b或p_tea_b有效、或者p_tbusy_b无效的时候,该请求才能被接受并发起。
[0049] p_ta_b,总线操作应答信号,低电平有效,当有效时表明设备已经完成一个总线操作。
[0050] p_tea_b,总线操作出错应答信号,低电平有效,当有效时表明设备在执行当前总线操作时出错,当前操作在当前周期以错误的方式结束。
[0051] p_tbusy_b,总线忙信号,低电平有效,当有效时表明CCORE正在进行一个总线操作。
[0052] p_rw_b,总线读或写操作信号,在当前总线操作请求被接受并发起时,指定该操作是一个读操作(p_rw_b为高)或写操作(p_rw_b为低)。
[0053] p_tsiz[1:0],总线操作数据位宽信号,在当前总线操作请求被接受并发起时,指定该操作是一个32位操作(p_tsiz为00)、16位操作(p_tsiz为10)、或8位操作(p_tsiz为01),p_tsiz为11未定义。
[0054] p_addr[31:0],总线操作地址信号,在当前总线操作请求被接受并发起时,指定该操作的地址。
[0055] p_data_out[31:0],总线写操作数据,在当前总线操作请求为写操作并且被接受和发起时,指定该写操作需要传输的数据。
[0056] 在CLB总线写操作协议中规定,C*CORE微处理器对CLB总线的写操作是分两个过程完成的,如附图一所示:
[0057] 第一个过程C*CORE微处理器向CLB总线发送写命令包括:总线操作请求信号p_treq_b,总线读或写操作信号p_rw_b,总线操作数据位宽信号p_tsiz,总线操作地址信号p_addr。这四个信号的组合在第一个时钟周期构成了一个特殊状态,就是向总线发送了一个写命令。
[0058] 第二个过程,C*CORE微处理器向CLB总线发送总线写操作数据p_data_out。其中第一步只持续一个时钟周期,而第二步可以持续一个或者多个时钟周期,这取决于被访问设备的响应速度。第二步的完成标志是被访问设备返回的总线操作应答信号p_ta_b。若被访问设备能够在第二个周期就完成写操作,则应该立即将总线操作应答信号p_ta_b驱动为低电平,否则驱动总线操作应答信号p_ta_b为高电平并一直保持,直到该写操作完成,才将总线操作应答信号p_ta_b驱动为低电平;在第二步,C*CORE微处理器向CLB总线发送的总线写操作数据p_data_out保持不变。如附图二所示。
[0059] 附图一和附图二中圈内表示总线操作应答信号p_ta_b、总线操作出错应答信号p_tea_b和总线忙信号p_tbusy_b三个信号之一满足图中要求即可启动本次写操作,箭头表示下一次总线操作可以启动的时间。
[0060] 在设备将总线操作应答信号p_ta_b驱动为高电平的这段时间里,C*CORE微处理器等待设备的应答信号,无法进行后续的总线操作,称为等待周期。实际上从第二个周期开始,C*CORE微处理器已经将本次写操作所需的所有信息都发送到CLB总线上,后续的时钟周期所做的动作仅仅是等待而已;因此,命令缓冲器可以将C*CORE微处理器的本次写操作锁存并及时返回应答信号,后续对其他设备进行的读写操作完全可以与本次写操作同时进行。命令缓冲器位于慢速的设备(如图三中Device2)与CLB总线,在对Device2写操作的时候,将该写命令存入命令缓冲器,同时立刻向C*CORE微处理器返回应答信号;而对Device2的写操作则由命令缓冲器代替C*CORE微处理器来执行。这样C*CORE微处理器可以立即开始下一个总线访问而不需要做任何等待。若下一个总线操作是对其它设备的读写访问,则这些访问可以和之前对Device2写操作并行进行。若下一个总线操作必须也对Device2进行操作,那么这样的操作必须等到命令缓冲器正在进行的对Device2的写操作完成之后才能开始,从而避免数据相关的操作发生错误。在实际应用中,通过对软件进行优化,在绝大部分情况下,可以保证在对慢速设备的写操作之后不会紧接着对同一设备的读写操作;这样对该慢速设备的写操作的等待周期可以被忽略从而加快整个系统的效率。增加了命令缓冲器的C*CORE微处理器与外部设备的连接图如图四所示,图中红色方框所示即为命令缓冲器。使用命令缓冲器之后,设备的应答信号不再返回给C*CORE微处理器而是返回给命令缓冲器。需要注意,设备返回的读数据依然直接输送到数据总线上。
[0061] 命令缓冲器是二级深度的先进先出存储队列FIFO,其结构如图五所示。图中编号为0的第一行为第一级命令存储单元,新的命令总是先存储到第一级命令存储单元;编号为1的第二行为第二级命令存储单元,当第一级存有有效命令时又有新的命令需要存储,则存入第二级命令存储单元。命令缓冲器的各存储域说明如下:
[0062] 1、命令有效位V,包括第一命令有效位V1和第二命令有效位V2,第二命令有效位V1有效即置1表明第一级命令存储单元正在被执行,由命令缓冲器控制总线操作,V2为1表明第二级命令存储单元正在等待被执行;可能存在V1和V2都为0的情况,表明当前命令缓冲器没有任何命令正在或需要执行,这样命令缓冲器就不对总线施加任何控制时。
[0063] 2、标志存储区RW,包括第一标志存储区RW1和第二标志存储区RW2,用于标识访问属性读或写标志,存储总线读或写操作信号p_ rw_b,。
[0064] 3、位宽存储区SZ[1:0],包括第一位宽存储区SZ1和第二位宽存储区SZ2,访问数据宽度标志,存储总线操作数据位宽信号p_tsiz[1:0]。
[0065] 4、地址存储区A[31:0],包括第一地址存储区A1和第二地址存储区A2,用于存储访问地址,存储总线操作地址信号p_addr[31:0]。
[0066] 5、数据储存区D[31:0],包括第一数据储存区D1和第二数据储存区D2,用于存储写数据,存储总线写操作数据p_data_out[31:0];若RW为1则D值可忽略。
[0067] 下面详细说明命令缓冲器的更新和对慢速设备的控制过程。
[0068] A、初始状态,命令缓冲器为空,即第一命令有效位V1和第二命令有效位V2都为0。
[0069] B、当命令缓冲器为空,若C*CORE微处理器对设备进行写操作,则在第一个周期将总线读或写操作信号p_rw_b、总线操作数据位宽信号p_tsiz和总线操作地址信号p_addr存储到命令缓冲器相应的第一级命令存储单元中,此时不对设备做任何操作。
[0070] C、然后将V1置为1,将总线写操作数据p_data_out存入命令缓冲器的第一级命令存储单元的第一数据储存区即D域,并且向C*CORE微处理器发送有效的总线操作应答信号p_ta_b,同时向设备发送写操作命令。命令缓冲 器向设备发送的写操作命令一直保持到设备返回应答信号才结束。当设备完成本次写操作的时候,向命令缓冲器返回应答信号,命令缓冲器在下一时钟周期撤消正在对设备进行的写操作。
[0071] D、当命令缓冲器为空,若C*CORE微处理器对设备进行读操作,则在将总线读或写操作信号p_rw_b、总线操作数据位宽信号p_tsiz和总线操作地址信号p_addr存储到命令缓冲器第一级命令存储单元中,此时不对设备做任何操作。
[0072] E、然后将第一命令有效位V1置为1,向设备发送读操作命令。命令缓冲器向设备发送的读操作命令,一直保持到设备返回应答信号才结束。当设备完成本次读操作的时候,向命令缓冲器返回应答信号,命令缓冲器在同一周期向C*CORE微处理器发送有效的总线操作应答信号p_ta_b,并在下一周期撤消正在对设备进行的读操作。
[0073] F、若在命令缓冲器正在对设备进行的读写操作完成之前,即V1为1,C*CORE微处理器又有新的访问需要对同一设备进行,则新的命令将被存储到第二命令存储单元,等待第一命令存储单元正在进行的访问完成之后才能被执行。
[0074] G、当命令缓冲器对设备进行的访问结束,即设备向命令缓冲器返回应答信号,第一命令存储单元需要被更新。若此时第二命令有效位V2置为0,则将V1置0,命令缓冲器切换到状态A;若V2为1,则将第二级命令存储单元的所有内容(包括V位)全部复制到第一级,并立即向设备发起新的操作,同时将V2置0。若新的操作是写操作,则切换到状态C;若新的操作是读操作,则切换到状态E。
[0075] 上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。