专利名称:通过总线进行数据读取的装置和方法
技术领域:
本发明涉及通过总线进行数据存取的装置和方法,特别地,涉及通过总线进行数据读取的装置和方法。
背景技术:
随着科技发展的日新月异,电子设备对嵌入式存储器的需求越来越大,由于设备内部的各个功能部件都需要对存储器进行访问,这样就有了总线的概念。各个功能部件都挂在设备内部的总线上,当需要访问存储器时,首先向总线控制器提出请求,如果总线处于空闲状态或者提出请求的功能部件的优先级较高,则被授予总线的控制权,通过总线来完成部件对存储器的访问。
由于所有的功能部件与嵌入式存储器都挂在总线上,因此嵌入式存储器也可以看作是一个功能部件,只不过它完成的功能是数据的存取罢了。而功能部件与功能部件之间也会进行通信,完成数据的交换。
一般地,功能部件与总线控制器之间的通信机制是建立在握手协议的基础上,所有的功能部件都可以看作是总线控制器的客户。当功能部件需要通过总线传输数据时,首先向总线控制器提出总线请求,要求占有总线进行数据传输,当总线控制器经过优先级仲裁认为当前功能部件的优先级最高时,向当前功能部件提供应答信号,允许其占有总线,数据开始传输。如果在传输过程中有更高优先级的功能部件提出总线请求,则中止当前功能部件的应答信号,停止这一次数据传输,并同时向更高优先级的功能部件提供总线占有权。
可以看到,在总线控制过程中,如果某一功能部件的优先级最高,那么从这个功能部件提出总线请求到它开始利用总线传输数据的时间内,总线并没有传输数据,属于额外的开销。这段时间越短,总线的利用效率越高,总线的性能也就越高。在这段时间内,总线控制器从接收到总线请求信号到给出总线应答信号的延时是相对固定的,这一过程也就是总线控制器进行优先级仲裁的过程。因此,从功能部件接收到总线应答信号到真正占有总线,开始数据传输这段时间的延时越短,总线的利用效率也就越高。
而常规的电路由于结构的限制,无法充分利用总线的数据传输能力。参照图1,图1示出了常规的总线请求和应答及相应的数据信号时序关系。其中,CLOCK代表总线时钟;BUS_REQ代表功能部件发出的总线请求信号;BUS_ACK代表总线控制器产生的总线应答信号,表示总线占有权的成功转移;DATA信号代表在总线上传输的数据。由于常规的电路设计都是基于同步电路设计,输出必须经过触发器锁存,所以从功能部件接收到总线应答信号后开始驱动内部数据输出到总线,最快也只能在下个时钟跳变时将第一个数据D0送到数据总线上。也就是说,功能部件从接收到总线应答信号到占有总线传输数据总是要耗费一个时钟周期以上的时间,这样,就有一个时钟周期被白白浪费掉了,降低了总线的利用效率。
发明内容
本发明的目的在于,提高总线的利用效率。
根据本发明的第一方面,提供一种总线系统中的存储装置,所述存储装置连接在总线上进行数据存取并且包括同步存储器,其特征在于,所述存储装置还包括先进先出存储器,该先进先出存储器连接在同步存储器和总线之间;在所述存储装置接收到总线控制器发出的总线应答信号之前,所述先进先出存储器缓存来自同步存储器的需要通过总线读出的数据,其中位于所述先进先出存储器最上面的数据驱动着总线;当所述存储装置接收到所述总线应答信号的时候,所述先进先出存储器开始工作。
在第一方面中,优选地,所述先进先出存储器在存储装置向总线控制器发出总线请求信号之前或同时,缓存来自同步存储器的数据。
优选地,当所述先进先出存储器不满的时候,所述同步存储器中的数据补入先进先出存储器。
优选地,所述先进先出存储器由D触发器构成。
优选地,所述先进先出存储器具有小存储容量。
根据第二方面,提供一种总线系统,包括根据本发明第一方面的存储装置。
根据第三方面,提供一种总线系统中的功能部件,所述功能部件连接在总线上进行数据传输,其特征在于,所述功能部件包括先进先出存储器,在所述功能部件接收到总线控制器发出的总线应答信号之前,所述先进先出存储器缓存需要读出的数据,其中位于所述先进先出存储器最上面的数据驱动着总线;当所述功能部件接收到所述总线应答信号的时候,所述先进先出存储器开始工作。
在第三方面中,优选地,所述功能部件包括同步存储器,用于存储向所述先进先出存储器缓存前的数据。
优选地,所述先进先出存储器在功能部件向总线控制器发出总线请求信号之前或同时,缓存需要读出的数据。
优选地,当所述先进先出存储器不满的时候,所述功能部件中需要读出的数据补入先进先出存储器。
优选地,所述先进先出存储器由D触发器构成。
优选地,所述先进先出存储器具有小存储容量。
根据第四方面,提供一种总线系统,包括根据本发明第三方面的功能部件。
根据第五方面,提供一种通过总线对功能部件进行数据读取的方法,功能部件连接在总线上进行数据传输,其特征在于,所述功能部件具有先进先出存储器,在接收到总线控制器发出的总线应答信号之前,所述功能部件利用该先进先出存储器来缓存需要读出的数据,其中位于所述先进先出存储器最上面的数据驱动着总线;当所述功能部件接收到所述总线应答信号的时候,所述先进先出存储器开始工作。
在第五方面中,优选地,在向总线控制器发出总线请求信号之前或同时,所述功能部件利用该先进先出存储器来缓存需要读出的数据。
优选地,当所述先进先出存储器不满的时候,向其中补入需要读出的数据。
优选地,所述先进先出存储器由D触发器构成。
优选地,所述先进先出存储器具有小存储容量。
根据本发明,在功能部件中加入容量较小的先进先出存储器来进行数据传输,由于先进先出存储器无需寻址,所以可在最短时间内响应总线应答信号,将数据在总线应答有效的当前时钟内就驱动到总线上,从而提高了总线的利用效率。
图1示出了常规的总线请求和应答及相应的数据信号时序关系;图2示出了本发明一个实施例的总线系统结构框图;图3示出了本发明的总线请求和应答及相应的数据信号时序关系。
为更好地理解本发明,下面仅以一个实施例结合附图对本发明作进一步说明。
具体实施例方式
参照图2,图2示出了本发明一个实施例的总线系统结构框图。该总线系统包括总线控制器、总线以及多个功能部件10、20。功能部件10、20可以是具有某种特定功能的任何模块,如存储装置、MP3解码器、编解码器(codec)等。为简明起见,与常规总线系统的工作原理、过程相同的部分,这里不再赘述。
功能部件10包括同步存储器11,还包括先进先出存储器(FIFO)12,先进先出存储器12连接在同步存储器11和总线之间。优选地,使用D触发器来实现先进先出存储器,因此其输出也满足经过触发器锁存的条件。D触发器的特点是比较灵活,可以在当前时钟周期就输出数据。最好该先进先出存储器的容量较小,由此带来的面积开销可以忽略不计。
当有数据需要通过总线进行传输时,功能部件10一方面向总线控制器发出总线请求信号BUS_REQ1;另一方面,在接收到总线控制器发出的总线应答信号BUS_ACK1之前,将同步存储器11中的数据读出并存储在先进先出存储器12中,直到它满为止。优选地,在向总线控制器发出总线请求信号BUS_REQ1之前或同时,将数据读出并缓存在先进先出存储器12中。先进先出存储器12最上面的数据始终驱动着总线,无论总线是否给予它使用权。
当总线应答信号BUS_ACK1产生时,总线占有权被转移给功能部件10,先进先出存储器12开始工作。由于位于该先进先出存储器最上面的数据始终驱动着总线,因此这个数据可以被立刻使用而不会浪费一个时钟周期,在下一个时钟周期,根据先进先出存储器的特性,其第二个数据将被弹到上面来,继续总线传输。同时只要先进先出存储器12不满,就从同步存储器11中读出数据写入先进先出存储器12。这样,总线到功能部件10内部的同步存储器11之间的内部开销被节省掉了。
由于先进先出存储器的读写速度等于总线传输速度,因此除了功能器件的数据传输结束的情况以外,不会出现由于先进先出存储器的读写速度慢而影响总线效率的情况。
参照图3,图3示出了本发明的总线请求和应答及相应的数据信号时序关系。D0代表先进先出存储器12中最上面的数据,它始终驱动着总线,即使没有BUS_ACK1。这样当BUS_ACK1有效的第一个时钟周期内,D0就可以通过总线传输。对比图1和图3,在同样长的总线应答时间内,改进前的常规结构只能传输3个数据,而改进后的结构可以传输4个数据,提高了总线的利用效率。
在此实施例中,虽然先进先出存储器通过D触发器实现,但是在满足总线应答信号有效前读出第一个数据的前提下,先进先出存储器也可采用RAM来实现。另外,功能部件10具有同步存储器,然而,本领域技术人员能够理解的是,功能部件10也可以不具有同步存储器,而只要其中存在需要通过总线读数据来实现数据交换的情况,均适用本发明。
显而易见,在此描述的本发明可以有许多变化,这种变化不能认为偏离本发明的精神和范围。因此,所有对本领域技术人员显而易见的改变,都包括在本权利要求书的涵盖范围之内。
权利要求
1.一种总线系统中的存储装置,所述存储装置连接在总线上进行数据存取并且包括同步存储器,其特征在于,所述存储装置还包括先进先出存储器,该先进先出存储器连接在同步存储器和总线之间;在所述存储装置接收到总线控制器发出的总线应答信号之前,所述先进先出存储器缓存来自同步存储器的需要通过总线读出的数据,其中位于所述先进先出存储器最上面的数据驱动着总线;当所述存储装置接收到所述总线应答信号的时候,所述先进先出存储器开始工作。
2.如权利要求1所述的存储装置,其特征在于,所述先进先出存储器在存储装置向总线控制器发出总线请求信号之前或同时,缓存来自同步存储器的数据。
3.如权利要求1所述的存储装置,其特征在于,当所述先进先出存储器不满的时候,所述同步存储器中的数据补入先进先出存储器。
4.如权利要求1至3中任一项所述的存储装置,其特征在于,所述先进先出存储器由D触发器构成。
5.如权利要求1至3中任一项所述的存储装置,其特征在于,所述先进先出存储器具有小存储容量。
6.一种总线系统,其特征在于,包括权利要求1至5中任一项所述的存储装置。
7.一种总线系统中的功能部件,所述功能部件连接在总线上进行数据传输,其特征在于,所述功能部件包括先进先出存储器,在所述功能部件接收到总线控制器发出的总线应答信号之前,所述先进先出存储器缓存需要读出的数据,其中位于所述先进先出存储器最上面的数据驱动着总线;当所述功能部件接收到所述总线应答信号的时候,所述先进先出存储器开始工作。
8.如权利要求7所述的功能部件,其特征在于,所述功能部件包括同步存储器,用于存储向所述先进先出存储器缓存前的数据。
9.如权利要求7所述的功能部件,其特征在于,所述先进先出存储器在功能部件向总线控制器发出总线请求信号之前或同时,缓存需要读出的数据。
10.如权利要求7所述的功能部件,其特征在于,当所述先进先出存储器不满的时候,所述功能部件中需要读出的数据补入先进先出存储器。
11.如权利要求7至10中任一项所述的功能部件,其特征在于,所述先进先出存储器由D触发器构成。
12.如权利要求7至10中任一项所述的功能部件,其特征在于,所述先进先出存储器具有小存储容量。
13.一种总线系统,其特征在于,包括权利要求7至12中任一项所述的功能部件。
14.一种通过总线对功能部件进行数据读取的方法,所述功能部件连接在总线上进行数据传输,其特征在于,所述功能部件具有先进先出存储器,在接收到总线控制器发出的总线应答信号之前,所述功能部件利用所述先进先出存储器来缓存需要读出的数据,其中位于所述先进先出存储器最上面的数据驱动着总线;当所述功能部件接收到所述总线应答信号的时候,所述先进先出存储器开始工作。
15.如权利要求14所述的方法,其特征在于,在向总线控制器发出总线请求信号之前或同时,所述功能部件利用所述先进先出存储器来缓存需要读出的数据。
16.如权利要求14所述的方法,其特征在于,当所述先进先出存储器不满的时候,向其中补入需要读出的数据。
17.如权利要求14至16中任一项所述的方法,其特征在于,所述先进先出存储器由D触发器构成。
18.如权利要求14至16中任一项所述的方法,其特征在于,所述先进先出存储器具有小存储容量。
全文摘要
本发明公开了一种总线系统中的存储装置及相应的数据读取方法。该存储装置连接在总线上进行数据存取并且包括同步存储器,还包括先进先出存储器,该先进先出存储器连接在同步存储器和总线之间;在该存储装置接收到总线控制器发出的总线应答信号之前,该先进先出存储器缓存来自同步存储器的需要通过总线读出的数据,其中位于该先进先出存储器最上面的数据驱动着总线;当该存储装置接收到总线应答信号时,该先进先出存储器开始工作。本发明可有效提高总线的利用效率。
文档编号G06F13/16GK1687908SQ20051007087
公开日2005年10月26日 申请日期2005年5月20日 优先权日2005年5月20日
发明者刘健, 周芬, 周天夷 申请人:北京中星微电子有限公司