数据传送方法和数据传送设备的制作方法

文档序号:6371754阅读:189来源:国知局
专利名称:数据传送方法和数据传送设备的制作方法
技术领域
本发明涉及数据传送方法和数据传送设备,用于在连接到两种不同的总线上的两个装置或存储器之间进行数据传送,更具体讲,本发明涉及进行诊断的数据传送方法和数据传送设备,比如诊断数据传送是否在正常作用。
背景技术
迄今为止,已知有这样一种系统,其中,不同的总线,比如主总线和子总线,通过比如网关等的总线中继器(repeater)连接,以便由设在主总线中的DMA(直接存储器存取)控制器在这些总线之间进行DMA数据传送。
例如,在图1所示的结构中,主总线101和子总线102都连接到总线中继器103,比如网关等。比如CPU或各种接口等的装置104,和DMA控制器105连接到主总线101,而装置106和比如ROM等的存储器107连接到子总线102。
在图1的例子中,主总线101上的DMA控制器105也通过总线中继器103控制子总线102,从而在比如装置104和装置106之间实现DMA传送。如上所述,如果即使在不同的总线101、102之间,各总线的接入时间也在相同的数量级上,那么就可以在没有无用等待(备用)时间的情况下实现有效的数据传送。
同时,当在一个系统中同时存在不同总线时,许多情况下都是总线宽度和/或数据存取速度不同。例如,在图1的例子中,主总线101具有32位总线宽度和高数据存取速度,而子总线102具有16位总线宽度和低数据存取速度。
当让DMA传送在总线宽度和/或数据存取速度不同的总线之间进行时,有一个缺点就是使无用等待(备用)时间占据高速总线,如,图1的主总线101。
从以上来看,有可能通过缓冲存储器连接两种不同的总线,以便通过该缓冲存储器进行DMA传送。在这种情况下,当试图进行比如DMA传送是否正常起作用的诊断时,需要使各总线的CPU运行于调试模式。这是很麻烦的。
然而,当数据传送还没有正常进行时,由于考虑到两条总线的CPU或诊断程序有一些不足,在很多情况下找到原因都变得非常困难。
尤其是,当CPU或DMA控制器等设在一个LSI内部时,需要很长的开发时间,并且诊断进程等变为很大问题。
在LSI被设计或实践中试制之前,进行包括外围设备的软件仿真,以尽可能多地确认功能。然而,由于它需要大量仿真时间,不能进行充分验证,并且,实际情况中还需要在做好了试验制品LSI等之后,在短时间内严密检查问题。这样,就出现了许多如上所述的调试困难的情况,造成了产品开发的障碍。
此外,当在装置之间进行数据传送时,为方便各个装置而安排数据。为处理这种情况,需要舍去(round down)额外的数据,或者将另一数据插入已传送的数据串之间的部分。
当CPU试图对于在存储器上形成的数据串进行如上所述的操作时,它一次将这种数据串读入CPU的寄存器,此后须第二次将其写入。由于此,效率很差(低)。这就减少了当CPU试图进行其它工作时所需的时间,并且是不可取的。
在此,可以看出,DMA控制器在数据传送时改变每一次的传送源地址或传送目的地址。在这种情况下,传送源地址和传送数量表已准备,并且DMA控制器每一次都根据该表进行DMA传送。然而,CPU必须准备传送规程表。结果,造成的困难是产生了每一次都检验传送规程等的额外工作。
而且,如上所述,当在一个系统中同时存在不同总线时,许多情况下都是总线宽度不同。例如,在图1的例子中,主总线101具有32位总线宽度和高数据存取速度,而子总线102具有16位总线宽度和低数据存取速度。并且,当让DMA传送在如上所述总线宽度不同的总线之间进行时,很多情况下都是舍去额外的数据,或者将另一数据插入已传送的数据串之间的部分。并且,在这种情况下,有可能很容易地进行数据结构的改变或地址的确定。

发明内容
鉴于这样的实际情况提出了本发明,并且本发明的一个目的是提供一种能够容易地在不同的两条总线之间实施DMA传送功能,并能够在短时间内指定问题所在的数据传送方法和数据传送设备。
此外,本发明的另一个目的是提供一种能够在不同的总线之间的数据传送中,在不增加CPU负担的情况下,轻易改变传送数据块,从而实现工作效率的提高的数据传送方法和数据传送设备。
那就是说,为解决上述问题,本发明包括第一总线和第二总线;总线中继装置,具有连接到第一和第二两条总线的缓冲存储器;连接到第一总线的第一DMA(直接存储器存取)控制装置;和连接到第一总线的第一数据处理装置(CPU),其中所述总线中继装置具有发出DMA请求到第一DMA控制装置的功能,并具有通过第一数据处理装置屏蔽该DMA请求的功能,以通过第一数据处理装置屏蔽总线中继装置的DMA请求,从而在总线中继装置内直接存取该缓冲存储器。
在这种情况下,需提到的是第二DMA(直接存储器存取)控制装置和第二数据处理装置(CPU)连接到所述第二总线,第一和第二DMA控制装置对于总线中继装置内的缓冲存储器执行数据读/写操作,从而在第一和第二总线之间进行数据传送,所述总线中继装置具有发出DMA请求到第二DMA控制装置的功能,并具有通过第二数据处理装置屏蔽该DMA请求的功能,以通过第二数据处理装置屏蔽总线中继装置的DMA请求,从而在总线中继装置内直接存取该缓冲存储器。
在这种情况下,需提到的是在总线中继装置的其它总线上的DMA请求由第一和第二数据处理装置(CPU)中的一个屏蔽,以便在在总线中继器内从所述其它总线开始存取所述缓总存储器。
而且,本发明的特征在于彼此不同的所述第一和第二总线通过具有缓冲存储器的总线中继装置连接,第一DMA(直接存储器存取)控制装置连接到第一总线,而第二DMA控制装置连接到第二总线,以便在连接到第一总线的存储器或装置和连接到第二总线的存储器或装置之间,通过所述第一和第二DMA控制装置实施DMA传送,并通过数据处理装置(CPU)屏蔽从总线中继装置到第一或第二DMA控制装置的DMA请求,从而在总线中继装置内通过数据处理装置直接存取缓冲存储器。
在这种情况下,需提到的是第一数据处理装置设于第一总线处,而所述第二数据处理装置设于第二总线处,第一数据处理装置屏蔽第一总线上的DMA请求,而第二数据处理装置屏蔽第二总线上的直接存储器存取请求,并且,第一和第二数据处理装置直接存取总线中继器内的缓冲存储器,其传送条件与第一和第二数据处理装置存取各总线上的控制装置的传送条件相同。
此外,需提到的是第一数据处理装置屏蔽第二总线上的DMA请求,并且第一数据处理装置从第二总线侧直接存取总线中继器内的缓冲存储器。
在各总线上的存储器或装置以及总线中继装置的缓冲存储器之间,通过第一和第二总线上的各自的DMA控制装置,进行DMA传送,从而能够在不同总线的各存储器和装置之间通过该缓冲存储器实现DMA传送。此时,各总线上的数据处理装置(CPU)屏蔽各总线上的DMA请求,以便直接存取该缓冲存储器,从而能够检验DMA功能。而且,第一总线上的数据处理装置屏蔽第二总线上的DMA请求,以便从第二总线侧存取缓冲存储器,从而能够检验第二总线的DMA功能。
此外,为解决上述,问题本发明的特征在于,彼此不同的第一和第二总线通过具有缓冲存储器的总线中继装置连接,以便通过总线中继装置内的缓冲存储器在第一总线和第二总线之间进行数据传送,并且,总线中继装置在数据传送时加入虚数据(dummy data),从而扩大传送数据块的大小,或者,总线中继装置在数据发送时略去一部分数据,从而减小传送数据块的大小。
在这种情况下,需提到的是在总线中继装置内的第一总线和缓冲存储器之间,由连接到第一总线的第一直接存储器存取控制装置,进行数据传送控制,并且,在总线中继装置内的第二总线和缓冲存储器之间,由连接到第二总线的第二直接存储器存取控制装置,进行数据传送控制。此外,需提到的是总线中继装置是可操作的,以便即使缓冲存储器中的数据在数据传送时丢失,总线中继装置也能在提供了输出请求时输出虚数据,从而扩大传送数据块的大小,或者,在缓冲存储器中的数据于输出端的数据传送结束的数据传送之时保持时,总线中继装置消除保留数据,从而减小传送数据块的大小。
调节传送的总线中继器另外具有了扩大或减小传送数据的块大小的功能,从而使其有可能在数据传送时进行简单数据结构的改变。


图1是说明传统的使用两条总线的系统的方框图;图2是说明本发明一个实施例的结构概况的方框图;图3是说明用在本发明实施例中的总线中继器的内部结构例子的方框图;图4是用于解释本发明实施例的操作的一个例子的流程图;图5是用于解释本发明实施例的操作的另一个例子的流程图;图6是说明更实用的传送之前的数据串例子的图;图7是说明更实用的通过略去传送中的一部分而获得的数据串例子的图;图8是说明更实用的通过在传送中补充另一个数据而获得的数据串例子的图;图9是说明要传送到纹理图片(texture picture)上的数据区域的一个例子的图;图10是说明图9中存储器上的数据安排的图;图11是说明将标题分别加到几个数据串的一个例子的图;图12是说明更实用的加到图11的标题的例子的图;图13是说明应用本发明实施例的系统的一个例子的方框图。
具体实施例方式
下面将参照附图描述本发明的实施例。
图2是说明应用作为本发明实施例的数据传送方法的系统结构的方框图。
在图2中,第一总线11和第二总线12连接到采用FIFO(先进先出)之类缓冲存储器构成的总线中继器13,这就使得通过总线中继器13在总线11和12之间进行数据的相互传送。CPU 21、DMA(直接存储器存取)控制器22、装置23和存储器24等连接到第一总线11,而CPU 26、DMA控制器27、装置28和存储器29等连接到第二总线12。
装置23能够向DMA控制器22发出DMA请求,而装置28能够向DMA控制器27发出DMA请求。作为装置23、28的,可以是用于图片或语音的编码器/解码器、用于图形处理的图形引擎、图片处理或语音处理IC等,通过其各个接口的硬盘单元、磁光盘单元、软盘单元和/或比如CD-ROM单元的外围设备等。总线中继器13能够分别向DMA控制器22、27发出DMA请求(DREQ)。通过DMA请求,有可能指定多个DMA通道中的任何一个。此外,总线中继器13比如能够向总线12上的CPU 26发出使用总线12的权利的请求(BREQ总线请求),并从CPU 26接收总线使用允许响应(BACK总线确认)。
图3示出用在图2的系统中的总线中继器13的结构的一个例子。在图3中,图2中的第一总线11在此指示为分为数据总线11a和地址/控制总线11b,而第二总线12在此指示为分为数据总线12a和地址/控制总线12b。在总线中继器13内,提供了连接到第一总线11的数据总线11a的内部总线31,和连接到第二总线12的数据总线12a的内部总线32。FIFO存储器33连接到这些内部总线31、32。而且,缓冲控制单元34可连接到可连接到这些内部总线31、32。缓冲控制单元还连接到第一总线11的地址/控制总线11b和第二总线12的地址/控制总线12b。此外,用于在缓冲控制单元34和图2的DMA控制器22、27之间进行DMA请求(DREQ)或通道指定等的控制信号线连接到缓冲控制单元34。
屏蔽标志35是禁止总线11侧的DMA的标志。当通过控制图2的CPU21使该标志为ON或“1”时,不输出从缓冲控制单元34到图2的DMA控制器22的DMA请求(DREQ)。屏蔽标志36是禁止总线12侧的DMA的标志。当通过控制图2的CPU 26使该标志为ON或“1”时,不输出从缓冲控制单元34到图2的DMA控制器27的DMA请求(DREQ)。
DREQ位37和38是分别表示对于相应的总线11和12的DMA请求ON/OFF(或“1”/“0”)的标志。这些位能够从CPU 21、26读取。这些DREQ位37和38的标志即便在上述屏蔽标志35、36为ON时也不被屏蔽,并且,不在DMA请求(DREQ)中出现的,对于相应的DMA控制器22、27的DMA请求的状态可由相应的CPU 21、26读取。
总线网关39用于连接内部总线31和32,以便图2的总线11侧的CPU21访问总线12。这些屏蔽标志35,36、DREQ位37,38和总线网关39连接到缓冲控制单元34。
在图3所示的总线中继器13中,FIFO存储器33是用作缓冲器的存储器,并适合于使数据的输入/输出对应于总线11、12而被控制,总线11、12由缓冲控制单元34来访问,即,由与其连接的内部总线31、32来访问。缓冲控制单元34控制FIFO存储器33的存取操作,并发出对于相应总线11、12的DMA控制器22、27的DMA请求(DREQ),以接收其响应(DARKDMA确认)。该DMA请求可以指定多个DMA通道中的任何一个来输出它。来自DMA控制器22、27的DMA通道选择信息也被发送到缓冲控制单元34。
此外,例如,当CPU 21对于总线12的地址进行访问时,总线中继器13的缓冲控制单元34向总线12的CPU 26发出总线12的使用权请求(BREQ总线请求)。响应于该总线请求,CPU 26向总线中继器13的缓冲控制单元34发送允许使用总线12的响应(BACK总线确认)。此后,CPU 21可访问总线12上的总线中继器13的内部总线32侧的屏蔽标志36、FIFO 33、DMA控制器27、装置28和存储器29等。
同时,当通过总线中继器13在第一总线11和第二总线12之间进行DMA传送时,必须使DMA控制器22和27的设定(即,数据大小等)相互对应,而没有不一致现象。CPU 21进行对应于DMA控制器22的总线上的DMA设定,而CPU 26进行对应于DMA控制器27的总线上的DMA设定。
在从第一总线11的存储器24到第二总线12的存储器29进行DMA方式的数据传送的情况下,必须进行设定,使得对于从存储器24到第一总线11的DMA控制器22中的总线中继器13的DMA来说,以及对于从总线中继器13到第二总线12的DMA控制器27中的存储器29的DMA来说,所提供的DMA通道相互对应于同样的数据大小(数据量)。在此设定后的处理步骤如图4所示。
在图4中,在第一步骤S61,执行从总线中继器13到DMA控制器22的DMA请求(DREQ)。在下一步骤S62中,DMA控制器22向CPU 21发出对总线11的使用权请求(BREQ),以获得总线使用权从而进行从存储器24到总线中继器13的DMA传送。在下一步骤S63中,总线中继器13执行对于DMA控制器27的DMA请求(DREQ)。在下一步骤S64中,DMA控制器27向CPU 26发出对总线12的使用权请求(BREQ),以获得总线使用权从而进行从总线中继器13到存储器24的DMA传送。
此外,在从第二总线12上的装置28到第一总线11上的装置23进行DMA方式的数据传送的情况下,必须进行设定,使得对于从装置28到DMA控制器27中的总线中继器13的DMA来说,以及对于从总线中继器13到DMA控制器22中的装置23的DMA来说,所提供的DMA通道相互对应于同样的数据大小(数据量)。在此设定后的处理步骤如图5所示。
在图5的第一步骤S71,第二总线上的装置28对于DMA控制器27执行DMA请求(DREQ)。在下一步骤S72中,总线中继器13对于DMA控制器27执行DMA请求(DREQ)。在步骤S73,DMA控制器27响应以分别接收来自装置28和总线中继器13的DMA请求,从而向CPU 26请求总线12的使用权(BREQ),以获得总线使用权,从而进行从装置28到总线中继器13的DMA传送。此时,类似于正常的DMA传送,当CPU 26响应于总线请求(BREQ)而打开总线时,CPU 26向DMA控制器27回送响应,并且DMA控制器27向总线中继器13回送DMA确认(DARK),等。在下一步骤S74中,总线中继器13对于第一总线上的DMA控制器22执行DMA请求(DREQ)。在步骤S75,装置23对于DMA控制器22执行(DREQ)。在下一步骤S76中,DMA控制器22响应以分别接收来自装置23和总线中继器13的DMA请求,从而向CPU 21请求总线11的使用权(BREQ),以获得总线使用权,从而进行从总线中继器13到装置23的DMA传送。
应注意,由于总线中继器13的比如FIFO等的存储器容量是有限的,当发送大于上述容量大小的数据时,只要对于DMA控制器22、27设定分传送以重复从步骤S61到S64或步骤S71到S76的过程就可以了。由总线中继器13的存储容量来决定该分传送的一个传送(块)。
因此,通过总线中继器13的缓冲存储器而使DMA传送在两条总线11、12之间进行,从而能够在两条不同总线之间执行DMA,而没有等待(备用)时间出现。而且,多个DMA通道允许在同一时间进行操作,从而简化了CPU的处理,实现了简单编程和较少的负担。此外,可轻易写入多线程序(programof multi-sled)。
同时,例如,当CPU 21访问总线12时,总线中继器13向CPU 26请示总线12的使用权(BREQ),以接收其响应(BACK),从而访问总线12上的DMA控制器27、装置28和存储器29等。
此时,图3的FIFO 33为可操作的,以使当对于DMA控制器22、27的DMA请求(DREQ)由屏蔽标志35、36禁止时,能够在相应的总线11、12上进行I/O存取操作。在这种情况下,这种I/O存取必须等同进行,没有DMA处理上的不一致性。因此,访问不能随机进行,但允许I/O存取在与DMA存取相同的条件下进行。这种I/O存取条件的一个例子如下面的表1所示。
表1

该表1的“信号和标志状态”一栏中的“*”表示任意(随意)状态。
在这种情况下,作为诊断DMA功能的条件,可以是如下所述情况。
条件#1利用DMA控制器22、27以及总线11、12进行数据传送。
条件#2CPU 21通过I/O存取仅在总线11侧进行数据的发送/接收。
条件#3CPU 26通过I/O存取仅在总线12侧进行数据的发送/接收。
条件#4CPU 21、26通过I/O存取在总线11和总线12两侧进行数据的发送/接收。
条件#5在总线12侧的装置不存在或者不使用总线12侧的装置的情况下,通过总线11侧的DMA控制器22进行DMA方式的数据传送,并且CPU21通过总线12侧的I/O存取进行数据传送。
条件#6在总线12侧的装置不存在或者不使用总线12侧的装置的情况下,CPU 21通过总线11和12两侧的I/O存取进行数据传送。
应注意,在此认为以条件#6开始的相反顺序作为实际调试顺序进行DMA功能的诊断。
通过以如上所述程序在上述各条件#1到#6下进行数据传送,以检测问题发生在什么条件下,能够指出不完善功能单元或出问题的功能单元。
条件#1屏蔽标志35off,屏蔽标志36off传送方向*CPU 21传送到DMAC 22的指令CPU 26传送到DMAC 27的指令条件#2屏蔽标志35on,屏蔽标志36off传送方向总线11→总线12CPU 26传送到DMAC 27的指令CPU 21等待DREQ位37的on状态,以将数据写入总线中继器13。
传送方向总线12→总线11CPU 26传送到DMAC 27的指令CPU 21等待DREQ位37的on状态,以从总线中继器13读取数据。
条件#3屏蔽标志35off,屏蔽标志36on传送方向总线11→总线12CPU 21传送到DMAC 22的指令CPU 26等待DREQ位38的on状态,以从总线中继器13读取数据。
传送方向总线12→总线11CPU 21传送到DMAC 22的指令CPU 26等待DREQ位38的on状态,以将数据写入总线中继器13。
条件#4屏蔽标志35on,屏蔽标志36on传送方向总线11→总线12CPU 21等待DREQ位37的on状态,以将数据写入总线中继器13。
CPU 26等待DREQ位38的on状态,以从总线中继器13读取数据。
传送方向总线12→总线11CPU 21等待DREQ位38的on状态,以将数据写入总线中继器13。
CPU 26等待DREQ位37的on状态,以从总线中继器13读取数据。
条件#5屏蔽标志35off,屏蔽标志36on传送方向总线11→总线12CPU 21传送到DMAC 22的指令等待DREQ位38的on状态,以从总线中继器13读取数据。
传送方向总线12→总线11CPU 21传送到DMAC 22的指令等待DREQ位38的on状态,以将数据写入总线中继器13。
条件#6屏蔽标志35on,屏蔽标志36on传送方向总线11→总线12CPU 21等待DREQ位37的on状态,以将数据写入总线中继器13。等待DREQ位38的on状态,以从总线中继器13读取数据。
传送方向总线12→总线11CPU 21等待DREQ位38的on状态,以将数据写入总线中继器13。等待DREQ位37的on状态,以从总线中继器13读取数据。
通过确定在什么条件下这六种特别状态条件发生,进行出错部分或问题点的诊断。在这种情况下,发送到总线12上的数据可以由CPU 21的测试程序通过使CPU 21直接访问总线12而确认。
因此,根据本发明的这种实施例,能够容易地在不同总线11、12之间调试DMA传送功能,从而指定有问题部分。而且,仅通过用作主总线的总线11上的CPU 21,可进行功能确认。而且,通过直接提供对其它总线12的访问,除DMA功能之外的调试也可进行。
总结上述说明,根据本发明的实施例,在第一总线和第二总线之间提供具有缓冲存储器的总线中继装置,并且第一直接存储器存取(DMA)控制装置连接到第一总线,而第二直接存储器存取控制装置连接到第二总线,以便通过缓冲存储器,利用这些第一和第二直接存储器存取控制装置,在连接到第一总线的存储器或装置和连接到第二总线的存储器或装置之间进行直接存储器存取传送,并通过数据处理装置(CPU)屏蔽从总线中继装置到第一或第二直接存储器存取装置的直接存储器存取请求,从而通过数据处理装置在总线中继装置内直接访问缓冲存储器,由此,通过缓冲存储器在不同总线的各存储器或装置之间进行直接存储器存取传送。此时,各总线上的数据处理装置(CPU)屏蔽各总线上的直接存储器存取请求,以直接存取缓冲存储器,从而能够检验直接存储器存取功能。此外,第一总线上的数据处理装置屏蔽第二总线上的直接存储器存取请求,以便从第二总线侧访问缓冲存储器,从而能够检验第二总线侧的直接存储器存取功能。
因此,有可能容易调试不同总线之间的直接存储器存取传送功能。而且,仅通过主总线上的数据处理装置,可以进行功能确认。此外,通过提供对其它总线的直接访问,也可进行除直接存储器存取功能之外的调试。
下面将结合例子给出解释,在该例子中,可以容易改变通过存储器在不同总线之间进行DMA传送的系统的传送数据的块大小。
在该例中,总线中继器13在发送时加入虚数据,或略去数据的一部分,从而改变块大小。
也就是说,在来自传送源的连续数据串在DMA传送中全部写入传送目的情况下(如参照上述图2到5所解释的),进行设定,以使一个传送单元(块)的大小为总线中继器13内的FIFO 33及DMA控制器22的大小,从而可进行最有效的传送。
在输入到缓冲器(FIFO 33)中的数据量和从其中输出的数据量互不相同的情况下,总线中继器13具有进行如下所述的处理的作用。
也就是说,首先,在甚至输入数据从缓冲器(FIFO 33)丢失也进一步发出输出请求的情况下,总线中继器13输出虚数据。
其次,在完成输出侧的DMA输入数据留在缓冲器(FIFO 33)中的情况下,舍去所留数据。
利用这样的总线中继器13的功能,能够改变要传送的数据串的结构。作为数据串结构的变化,要提到的是在DMA传送时附加虚数据从而扩大数据块大小,和在DMA传送时略去部分数据从而减小数据块大小。
下面将解释在总线中继器13的缓冲器(FIFO 33)的容量为64字节的情况下的一个更实用的例子。
例如,假定图6所示的数据串S1A、S1B、S1C、S2A…形成于图2的存储器29中,这些数据串S1A、S1B、S1C、S2A…的下标A、B、C代表种类互不相同的数据,并假定仅将此三个种类的数据中的B、C类数据传送到图2的装置23中。此时,有必要将图7所示的数据串写入装置23。在这种情况下,数据串S1A、S1B、S1C、S2A…的下标的数字1、2、3表示分别为一个传送单元的数据块号码。
在DMA控制器27中,对这样的DMA传送进行设定,以传送从数据串S1B开始的,包括数据S1A、S1B、S1C、S2A…的所有种类(A、B、C)(即,以32字节作为一个块)的三个块。相反,在DMA控制器22中,进行设定,以便仅以两个种类B、C(即,以24字节作为一个块)传送三个数据块。这样,舍去了种类C的数据串(S1C、S2C)之后的8个字节(数据串S2A、S3A)。鉴于此,图7所示的数据串可被最终写入到装置23。
然后,假设为这种情况,其中,试图从图2的装置23输出如图7所示格式的数据串,以将这样的数据串形成于比如存储器29中,并如图8所示将种类D数据串插入到种类C数据串之后。
在这种情况下,在DMA控制器27中,进行设定,以便以36字节为一个块来传送3个块。此时,作为DMA传送的结果,12字节的虚数据写入到种类B、C的24字节数据串之后的部分。鉴于此,图2的CPU 26可直接将种类D数据串写入该虚数据区。也就是说,CPU 26可省去用于转移存储器29上的数据的工作。
应注意,例如,在图2的装置28输出图8所示的数据串以便仅将其种类B、C的数据串写入到装置23的情况下,在DMA控制器27中进行设定,以便从数据串开始之处以36字节为1块传送3个块就可以了,并且,在DMA控制器27中以24字节为1块传送3个块也可以了。
通过使调节传送的总线中继器额外具有上述功能,就能够在传送数据串时进行简单数据结构的转换,这样就能提高系统性能。
下面将结合更实用的例子参照附图进行解释,在该例子中,舍去了如上所述的额外数据或将其它数据插入数据串之间部分。
图9示出在计算机图形等图片处理中用于纹理映射的纹理图片区,假设传送宽纹理区内的一部分,比如由图中斜线部分所示的区域T1、T2、T3、T4。纹理图片形成于如图10所示的比如存储器上,并要求当传送该存储器上的部分区域T1、T2、T3、T4的数据时,舍去额外的数据。
此外,作为数据附加的例子,提到了如图11所示的将标题(header)分别附加到几个数据串,如多边形数据的情况。也就是说,对于多边形数据,数据串的大小根据顶点数目、阴影或纹理的存在/不存在等而变化。此外,为了区别纹理数据或区别传送目的地,有附加标题(GPUIFtag)的情况。由GPU(图形处理单元)的接口GPUIF传送的数据,使得由引导标题(GPUIFtag)构成的称为源的一组数据和其后的数据成为基本单元,而在一束(bundle)中处理的多个源成为集合的GPU包。图12示出标题(GPUIFtag)结构的例子,其包括从MSB开始的寄存器描述符REGS、寄存器描述符数码NREG和数据形式FLG等。当如上所述将标题(GPUIFtag)加到多边形数据时,有必要将另一数据插入数据串之间的部分。
当需要如上所述的简单数据结构的转换时,采用本发明的上述实施例,从而省去了其中CPU对以DMA传送到存储器上的数据串进行排序(sequencing)和对要以DMA传送到存储器上的数据串进行排序的低效率工作。这样,提高了系统性能。并且能够在不同数据格式的装置之间进行DMA传送。此外,也省去了准备特别指定传送源地址或传送量表,或者对表进行参照的工作。
从上述说明中可以明显看出,根据参照本发明实施例的图6到11的例子所说明的,具有缓冲存储器的总线中继装置设在第一总线和第二总线之间,以通过总线中继装置内的缓冲存储器在第一总线和第二总线之间进行数据传送。总线中继装置在数据传送时加入虚数据,从而扩大传送数据块大小,或者在数据传送时略去一部分数据,从而减小传送数据块大小,因此能够在传送时进行简单数据结构的改变。这样,就能提高系统性能。
此外,第一直接存储器存取控制装置连接到第一总线,以在第一总线和总线中继装置内的缓冲存储器之间进行数据传送控制,并且,第二直接存储器存取控制装置连接到第二总线,以在第二总线和总线中继装置内的缓冲存储器之间进行数据传送控制。使总线中继装置具有在发出输出请求时,即使缓冲存储器内的数据在数据传送时丢失也能输出虚数据的功能,并具有在缓冲存储器中的数据于输出端的数据传送结束的数据传送之时保持时,消除保留数据,从而减小传送数据块的大小的功能。这样,就省去了诸如CPU对已进行数据传送的存储器上的数据进行排序处理,和对要进行数据传送的存储器上的数据进行排序处理的低效率工作。而且,也省去了准备或参照用于数据传送的传送源地址,或传送量的特别传送指定表等的精力。此外,还能够在不同数据格式的装置之间进行数据传送。
图13示出采用本发明的上述实施例的系统的例子。在此系统中,执行高速图片处理的主总线111,和连接低速外围装置如CD-ROM驱动器等的子总线112,通过具有缓冲存储器如FIFO等的总线中继器113相连。
也就是说,主CPU 121、DMA控制器122、用于高速图片处理的图形引擎123和主存储器124连接到高速主总线111,而子CPU 126、DMA控制器127、比如CD-ROM等的数据记录介质128和子总线129连接到相对低速子总线122。如上所述,这些主总线111和子总线112通过具有缓冲存储器比如FIFO等的总线中继器113连接,并且总线中继器113能发出对应于多个DMA通道的多种DMA请求,例如,三种DMA请求。由于总线中继器113的更实用的结构和操作类似于参照图2到5所述的本实施例的总线中继器13,因而省去了对它的解释。
当如上所述在高速总线和低速总线之间进行DMA传送时,可在不使等待时间出现的情况下在高速总线上进行数据传送,并可简化CPU的处理。此外,能够容易地在不同总线之间进行DMA传送功能的调试。
应注意,本发明不限于本实施例。虽然已结合双向DMA传送在第一总线和第二总线之间进行的例子进行了说明,但本发明还可用于DMA传送仅从第一总线到第二总线,或DMA传送仅从第二总线到第一总线进行的情况。此外,当然,DMA通道数目和/或连接到各总线的电路等并不限于那些实施例。
权利要求
1.一种数据传送方法,数据传送由一个用于通过一个缓冲存储器在第一总线和第二总线之间传送数据的设备进行,所述第一总线和第二总线通过一个具有所述缓冲存储器的总线中继装置相互连接,而所述第一总线的作为在单一传送中数据量的单位量与所述第二总线的单位量是不同的,所述方法包括下列步骤利用所述总线中继装置,存储从所述第一总线向所述缓冲存储器中传送的数据;和利用所述总线中继装置,将在缓冲存储器中所述存储数据的量调整为所述第二总线的单位量,并将调整后的数据传送至所述第二总线。
2.如权利要求1所述的数据传送方法,其中,如果所述第一总线的单位量大于所述第二总线的单位量,则所述总线中继装置,依照存储在缓冲存储器中的数据,传送对应于所述第二总线的单位量的数据量,并在数据传送之后丢弃剩余的数据。
3.如权利要求1所述的数据传送方法,其中,如果所述第一总线的单位量小于所述第二总线的单位量,则所述总线中继装置,依照存储在缓冲存储器中的数据,增加虚数据到对应于所述第二总线的单位量的数据量,并将该数据传送到所述第二总线。
4.一种数据传送设备,包括第一总线和第二总线,所述第一总线的作为在单一传送中数据量的单位量与所述第二总线的单位量是不同的;和具有一个缓冲存储器的总线中继装置,所述总线中继装置适合于通过所述缓冲存储器在所述第一总线和所述第二总线之间传送数据,其中,所述总线中继装置,存储从所述第一总线向所述缓冲存储器中传送的数据,并将在缓冲存储器的所述存储数据的、对应于第一总线的单位量,调整为第二总线的单位量,并将调整后的数据传送至所述第二总线。
5.如权利要求4所述的设备,其中,如果所述第一总线的单位量大于所述第二总线的单位量,则所述总线中继装置,依照存储在所述缓冲存储器中的数据,传送对应于所述第二总线的单位量的数据量,并从所述缓冲存储器中丢弃剩余的数据。
6.如权利要求4所述的设备,其中,如果所述第一总线的单位量小于所述第二总线的单位量,则所述总线中继装置,依照存储在缓冲存储器中的数据,增加虚数据到对应于所述第二总线的单位量的数据量,并将该数据传送到所述第二总线。
7.如权利要求4所述的设备,其中,直接存储器存取控制装置与所述第一总线和所述第二总线中的至少一条连接,以便向所述缓冲存储器进行直接存储器数据传送。
全文摘要
第一总线(11)和第二总线(12)通过具有缓冲存储器的总线中继器(13)连接,DMA(直接存储器控制)控制器(22、27)分别连接这两条总线(11和12)。总线中继器(13)能发出DMA请求到DMA控制器(22、27),CPU(21、26)能屏蔽这些DMA请求,DMA控制器(22)DMA传送总线(11)上的数据到总线中继器(13)中的缓冲存储器,或从该缓冲存储器中DMA传送数据。DMA控制器(27)在缓冲存储器和总线(12)之间DMA传送数据。CPU(21)能屏蔽来自总线中继器的DMA请求,并直接存取该缓冲器以检验DMA功能。这就有助于要通过缓冲器在不同总线之间进行DMA传送的系统调试。
文档编号G06F13/28GK1497461SQ03147639
公开日2004年5月19日 申请日期1998年4月22日 优先权日1997年4月22日
发明者山本靖之 申请人:索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1