一种类ahb总线及其实现方法

文档序号:6484140阅读:380来源:国知局
专利名称:一种类ahb总线及其实现方法
技术领域
本发明涉及一种总线及其方法,尤其涉及一种类AHB总线及其实 现方法。
背景技术
随着SOC技术的发展, 一颗芯片内集成的功能模块越来越多。而 各个模块对于存储器的访问要求也越来越高,因此片内内存的访问总 线在芯片架构中显得非常重要。 一定程度上说,片内内存的访问总线是 决定后续其他设计的基础。
目前很多芯片设计采用AMBA芯片内总线协议中的AHB协议。但对 于32位总线的芯片来说, 一般设计会采用AHB或者AHBJJTE协议作为 片内互连总线协议,这存在一定问题,主要体现在以下两个方面
其一,由于AHB协议需要地址,读数据,写数据各32位(共96bit), 以及其他一些控制信号,从而导致芯片内总线总裁模块上星型连接的 线太多,给后端布线带来一定的困难。
其二,AHB协议中,地址线(Haddr)会随着每一个Hready的有效^f直 更改为下一个地址,这在实际中基本是没有任何用处的。因为从模块端 为了实现流水线访问机制,会实现自动计算下一个地址,而不是从地址 总线上去获得下一个地址。
因此,如何减少片内总线数并充分利用流水线访问机制,成为优化 AHB协议所需解决的问题。

发明内容
有鉴于此,本发明着眼于减少片内总线数量并充分利用流水线访 问机制以优化AHB协议,提供了一种全新的类AHB总线及其信号处理方
法o
根据本发明的第一方面,提供了一种类AHB总线。
该类AHB总线包括至少一个主模块端、至少一个从模块端、总线仲裁器和读数据多路器以及读数据总线连接线,其特征在于还包括
地址和写数据多路器,对主模块端和从模块端之间的地址和写数 据信号在总线仲裁器的控制下进行选通;和
地址和写数据所复用的总线连接线,对主模块端和从模块端与地址 和写数据多路器进行连接,所述地址和写数据信号在选通和传递时对
该连接线进行复用。
优选地,所述地址和写数据信号对连接线的复用具体为
当一次写数据请求开始时,地址和写数据多路器对主模块端和从 模块端的地址和写数据所复用的总线连接线进行选通,所述地址和写 数据所复用的总线连接线在该次写数据请求的第 一 个周期内给出此次 传输的起始地址;
此次传输请求余下的时钟周期内,根据连接线提前一个时钟周期 给出的写数据地址进行写数据橾作,直到此次传输请求结束。
根据本发明的第二方面,提供了一种类AHB总线信号处理方法。 该方法包括以下步骤
步骤1:当Hsel信号状态发生变化时, 一次传输请求开始;
步骤2:判断Hwrite信号为写操作时,Haddr需要在Hse I信号有 效的第一个周期给出此次传输的起始地址,并在第二个周期给出第一 个写数据;
步骤3:当Hready信号在此次传输请求余下的时钟周期内每次为 有效时,Haddr线上都要给出下一个写数据,直到此次传输请求结束。
优选地,在所述步骤2中,判断Hwrite信号为读搡作时,Haddr 信号为读数据,并在Hsel信号状态发生变化的第一个周期内给出此次 传输的起始地址;Haddr在第二个周期开始无任何意义,直至该周期结 束并不再执行步骤3。
本发明提供的类AHB总线及其总线信号处理方法,通过对地址线和 写数据线的复用,有效减少了片内总线的物理连接线,降低了 , ^线星形 连接的布线难度。


下面将参照附图对本发明的具体实施方案进行更详细的说明,其
中图1是现有AHB总线结构图2是本发明类AHB总线结构图3是本发明类AHB总线信号处理波形图;以及
图4是本发明类AHB总线信号处理流程图。
具体实施例方式
为了实现利用流水线访问机制以对地址线和写数据线的复用,本 发明提供了一种类AHB总线及其总线信号处理方法。接下来具体说明 该类AHB总线及其总线信号处理方法。
图2示出本发明类AHB总线结构图。如图2所示,该类AHB总线 包括至少一个主模块端、至少一个从模块端、总线仲裁器和读数据多 路器以及读数据总线连接线、地址和写数据多路器和地址和写数据所 复用的总线连接线。
地址和写数据多路器对主模块端和从模块端之间的地址和写数据 信号在总线仲裁器的控制下进行选通。
地址和写数据所复用的总线连接线对主模块端和从模块端与地址 和写数据多路器进行连接,所述地址和写数据信号在选通和传递时对 该连接线进行复用。
结合图1并与图2作比较,不难看出,本发明的总线的连接线明显 减少。其地址和写数据共用一个多路选择器,并在仲裁器的仲裁控制下 对地址和写数据进行复用,这样可减少地址或写数据的连线。
需补充说明的是,图1和图2中的除仲裁控制和译码连接线之外, 其他的连接线都表示一定宽度的总线,它们不只是一条,其可为16位或 32位,也可为64位或128位。其代表多少位的连接线,其就有多少根实 际的物理连接线。以图2中地址和写数据多路器与从模块3之间的连 接线来说,图中只显示一条,以32位为例的话,其表示有32根物理的连 接线。
接下来将以3 2位的连接线为例,说明基于上述复用结构的类AH B 总线信号处理的过程。
图3示出本发明类AHB总线信号处理波形图。如图3所示,包括 信号Hclk、 Hsel、 Hwrite、 Hsize、 Haddr、 Hrdata和Hready的各自波形。
上述的各信号具备各自的信号特性和相互关系,接下来分别加以说明(1表示高电平,o表示低电平,方向为总线的主模块端的方向)。
① Hclk,位宽为1,为总线的时钟信号,其每个时钟周期包括一 个1和0信号。
② Hsel,位宽为1,从0到1表示一次请求开始,可以只持续1 个周期,方向为输出。
③ Hwrite,位宽为1,读写信号,1表示写,0为读,方向为输出。
④ Hsize,位宽为3,读写字节数为2Hsi"个,只支持Hsize >= 2 的情况,方向为输出。
Haddr,位宽为32,地址及写数据复用线,如果为写搡作,Hse I 为高的第一个周期给出地址,之后为写数据,如果为读操作,Hsel为 高的第一个周期给出地址,那么Haddr在第二个周期开始后无任何意 义,方向为f叙出。
⑥ Hrdata,位宽为32,读数据,方向为输入。
⑦ Hready,位宽为1,读写数据有效信号,方向为输入。
这7組信号构成了本发明类AHB总线的协议。针对这些信号,分別 构成了该协议的特征要素,具体如下
1Hsel可以持续最少1个周期,但必须在该次请求的所有数据 结束前更改为0;否则当所有数据传输结束时会被从模块认为一次新的 请求开始了。
2Hsize从2到7,表示该协议可支持1, 2, 4, 8, 16, 32个 word(4byte二32bit)这6种突发传输方式
Hsize 2 对应 1 word;
3Haddr在Hsel为高的第一个周期表示传输的起始地址。 如果该次操作为写,那么从第二个周期开始Haddr必须为第一个 写数据;从写操作开始第二个周期后每当收到 一个Hready为高的信号, Haddr更改为下一个写数据,直到该次传输结束。
如果该搡作为读,那么Haddr在第二个周期开始后无任何意义。4Hrdata为从模块给出的读数据。当从模块准备好数据时,会
3
4
5
6
2 wo r d; 4 wordj 8 word; 16 word; 32 word。
7同时将Hready置高,并给出Hrdata。
5Hready为从模块的读写数据有效信号;当该橾作为写操作, 那么Hready每次为高时,Haddr上都必须给出下一个写数据;
当该操作为读操作,那么Hready每次为高时,Hrdata上都为有效
的读数据。
下面对相关信号的相互关系和相互作用以图3的实例为例,分时钟 段的加以分析和说明。
在第0时钟周期起,Hclk信号作为时钟信号输入。
在第1时钟周期,Hsel信号从0到1,说明一次请求开始。同时, Hwrite信号从0到1,说明该请求为写数据请求;Hsize信号同时为4, 并持续到第9时钟周期,也即给出了写数据的字节数为4个word。
Hsize为4对应的内容为WD1,WD2, WD3,WD4,其中WD为WriteData 的缩写。
4对应的4个word分别是WD1,WD2,WD3,WD4,每个均是32bit,共 16byte。
3对应的2个word分別是RD1,RD2 (Read Data的缩写),每个均 是32bit,共8byte。
与此同时,在第1时钟周期内,也即在Hsel信号为1的第一个周 期,在Haddr上给出此次传输的起始地址WA1 。
在第2个时钟周期内,所述Haddr给出第一个写数据WD1,所述从 模块在写数据WD1的有效时钟周期内将所述Haddr给出的第一个写数 据WD1写入所述起始地址WA1,在第4个时钟周期,所述Hready由O 变1。
由于Hready为1,在第5个时钟周期,所述Haddr给出第二个写 数据WD2,所述从模块根据起始地址WA1计算出下一个地址WA2,并在 写数据WD2的有效时钟周期内将所述Haddr给出的第二个写数据WD2 写入所述下一个地址WA2,在第6个时钟周期,所述Hready再次由0 变1。
从写搡作开始第2个周期后每当收到一个Hready为高的信号, Haddr更改为下一个写数据,直到该次传输结束。这样,在第7个周期, 所述Haddr给出的第三个写数据WD3,在第8个周期所述Haddr给出的 第四个写数据WD4。所述从模块则把所述第三个写数据WD3和第四个写 数据WD4写入指定的地址内。所述从模块可以实现流水线访问机制,其会实现自动计算下一个
地址,比如WD1对应起始地址WA1 ,则WD2对应WA1的下一个地址(一 般为WA1+1,也可以为地址WA1+1绕回)。也就是说,在Slave从模块 端获得WD2的时候,所述从模块已经可以根据WD1的地址计算出WD2的 地址WD2,之后还会自动计算出WD3和WD4。
在第9时钟周期内,Hsel信号又从0到1,说明一次新的请求开始; 同时,Hwrite信号从1到0,说明该请求为读数据请求。
Hsize信号同时为3,并持续到第9时钟周期,也即给出了读数据的 字节数为2个word。
与此同时,在第9时钟周期内,也即在Hsel信号重新为1的第一 个周期,在Haddr给出此次读数据传输的起始地址RA2。
在第12至13时钟周期内,根据这个地址,读出数据RD1。
同理,在第13至14时钟周期内Haddr线由流水线访问机制自动 计算得到并提前给出地址,以供读出数据RD2。
关于流水线机制,需补充说明的是
对于Master主模块端来说,它知道读写地址应该是多少,可以理解 为不需要计算,也就是说WA1, RA2都是Master发出来的,无需计算。因 此当写入WD4并且Hready为高的下一个周期,如果需要有新的总线搡 作,比如读搡作,需要在下一个周期把读地址写入,也就是这里的RA2。
综上所述,本发明充分利用流水线访问机制,并通过有效的信号控 制处理,实现了地址和写数据的复用,同时不影响读数据的操作。
图4示出本发明类AHB总线信号处理流程图。如图4所示,该类 AHB总线信号处理方法包括以下步骤
步骤1:当Hsel信号从0到1时, 一次传输请求开始。
步骤2:判断Hwrite信号是否为1,如果为1时,表明此次传输 请求是写请求,Haddr需要在Hsel信号为1的第一个周期给出此次传 输的起始地址,并在第二个周期给出第一个写数据。
步骤3:当Hready信号在此次传输请求余下的时钟周期内每次为 1时,Haddr线上都要给出下一个写数据,直到此次传输请求结束。
在一个实施例中,进一步包括所述步骤2中,判断Hwrite信号是 否为1,如果为0时,表明此次传输请求是读请求,并在Hsel信号为 1的第一个周期内给出此次传输的起始地址;Haddr在第二个周期开始 无任何意义,直至该周期结束并不再执行步骤3。
9如图4所示的 一个实施例中其类AHB总线信号的完整处理流程如

步骤400中,处理流程开始。
接下来,步骤402中,Hsel信号从0到1变化时, 一次传输请求 开始。
需说明的是,每次传输请求包括至少一个的写数据或读数据操作, 以Haddr位宽为32来说,每个写数据或读数据搡作对应一个word。也 就是说,在包括多个写数据或读数据操作时,即对应多个word,当完成 多个word的操作时,该次请求才算完成。
然后,进入步骤404中,判断Hwrite信号是否为1。 如果为0时,紧跟着进入步骤408中,表明此次传输请求是读请 求,并在Hsel信号为1的第一个周期内给出此次读数据传输的起始地 址。然后在步骤412中,Haddr在第二个周期开始无任何意义,Hrdata 给出读数据,直至该周期结束,并进入步骤418中结束此次请求的处 理过程。
如果为1时,紧跟着进入步骤406中,表明此次传输请求是写请 求,在Hsel信号为1的第一个周期内,Haddr需要给出此次写数据传 输的起始地址。
在步骤407中,Haddr在第二个周期给出第 一个写数据,也即此次 写数据传输请求的起始地址对应写数据。
然后进入步骤410中,在每个时钟周期内,判断Hready信号是否为1。
如果否,则进入步骤416中,判断此次传输请求是否已经完成,完成 与否主要看此次所传输的数据是否都进行完了,以Hsize为4例,那就 是所对应的4个w o r d都传输完了才表明该次传输请求已经完成。
如果是,则进入步骤414中,Haddr线上必须给出下一个写数据, 并进行写地址的搡作。该地址是结合上一个地址并通过流水线机制计 算得到。
接下来,进入步骤416中,判断此次传输请求是否已经完成。如 果仍有效,需返回步骤410中,循环判断并执行后续的操作。
当此次传输请求已完成时,进入步骤418中,结束整个处理流程。
在实际芯片中,由于通过总线读写内存一般都有一定的延迟时间, 因此,通过将地址和写数据复用,可以充分利用该延迟时间;但在做 了一定优化的系统中(尤其是从模块端有较大读写緩冲时),就失去了AHB总线可以每个时钟读写一个数据的高带宽能力,相应的每次请求的 第一个周期一定无法读写数据。
本发明虽然丧失了一定的带宽,但不同程度上简化了片内总线的互 连,适合对带宽要求不高的片内互连的技术方案。
以上对本发明的具体描述旨在说明具体实施方案的实现方式,不 能理解为是对本发明的限制。本领域普通技术人员在本发明的教导下, 可以在详述的实施方案的基础上做出各种变体,这些变体均应包含在 本发明的构思之内。本发明所要求保护的范围仅由所述的权利要求书 进行限制。
权利要求
1. 一种类AHB总线,包括至少一个主模块端、至少一个从模块端、总线仲裁器和读数据多路器以及读数据总线连接线,其特征在于还包括地址和写数据多路器,对主模块端和从模块端之间的地址和写数据信号在总线仲裁器的控制下进行选通;和地址和写数据所复用的总线连接线,对主模块端和从模块端与地址和写数据多路器进行连接,所述地址和写数据信号在选通和传递时对该连接线进行复用。
2. 如权利要求1所述的类AHB总线,其特征在于, 所述地址和写数据信号对连接线的复用具体为当一次写数据请求开始时,地址和写数据多路器对主模块端和从 模块端的地址和写数据所复用的总线连接线进行选通,所述地址和写 数据所复用的总线连接线在该次写数据请求的第一个周期内给出此次 传输的起始地址;此次传输请求余下的时钟周期内,根据连接线提前一个时钟周期 给出的写数据地址进行写数据操作,直到此次传输请求结束。
3. 如权利要求1所述的类AHB总线,其特征在于所述地址和写数据所复用的总线连接线及读数据总线连接线均为 32根。
4. 如权利要求3所述的类AHB总线,其特征在于所述总线的传输字节数支持1, 2, 4, 8, 16, 32个word中任何一 种突发传输模式。
5. 如权利要求1至4任一项所述的类AHB总线,其特征在于 所述地址和写数据所复用的总线连接线选通传递中,需要在每次选通或请求的第 一个周期给出 一个地址。
6. 如权利要求5所述的类AHB总线,其特征在于 所述地址和写数据所复用的总线连接线,会根据访问有效值利用流水线访问机制自动计算下一个地址(每次请求的第一个周期所要给 出的地址除外)。
7. —种类AHB总线信号处理方法,包括以下步骤步骤1:当Hsel信号状态发生变化时, 一次传输请求开始;步骤2:判断Hwrite信号为写操作时,Haddr需要在HseI信号状态发生变化的第一个周期给出此次传输的起始地址,并在第二个周期 给出第一个写数据;步骤3:当Hready信号在此次传输请求余下的时钟周期内每次为 有效时,Haddr线上都要给出下一个写数据,直到此次传输请求结束。
8. 如权利要求7所述的类AHB总线信号处理方法,其特征在于在所述步骤2中,判断Hwrite信号为读操作时,Haddr在Hsel信 号状态发生变化的第一个周期内给出此次传输的起始地址;Haddr在第 二个周期开始无任何意义,直至该周期结束并不再执行步骤3。
9. 如权利要求8所述的类AHB总线信号处理方法,其特征在于所迷步骤3中,Haddr线上给出下一个写数据,其方式是通过根据 每次请求的第 一 个周期所要给出的地址并利用流水线访问机制自动计 算下一个地址的。
10. 如权利要求7至8任一项所述的类AHB总线信号处理方法, 其特征在于所述Haddr信号的带宽均为32位。
全文摘要
本发明披露了一种类AHB总线及其总线信号处理方法。该类AHB总线包括至少一个主模块端、至少一个从模块端、总线仲裁器和读数据多路器以及读数据总线连接线,其特征在于还包括地址和写数据多路器,对主模块端和从模块端之间的地址和写数据信号在总线仲裁器的控制下进行选通;地址和写数据所复用的总线连接线,对主模块端和从模块端与地址和写数据多路器进行连接,所述地址和写数据信号在选通和传递时对该连接线进行复用。本发明有效实现了地址和写数据的复用,简化了片内总线的互连难度,在对带宽要求不高的片内互连产品有较强的实用性。
文档编号G06F13/40GK101533381SQ200910080750
公开日2009年9月16日 申请日期2009年3月27日 优先权日2009年3月27日
发明者李晓强, 马凤翔 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1