控制外围设备输出数据到总线的方法及其相关装置 【技术领域】
本发明提供一种数据传输控制方法及其相关装置,特别是指一种控制外围设备经由一总线传输数据的方法及其相关装置。
背景技术
一般而言,一计算机系统中包含有多个计算机元件,此外,计算机系统亦设置有多个总线以便将一计算机元件所纪录的数据传送到其他计算机元件,换句话说,多个总线建立起多个计算机元件之间的互相连接。请参阅图1,图1为公知计算机系统10的示意图。计算机系统10包含有中央处理器12、北桥电路14、南桥电路16、PCI总线18、显示控制电路20、存储器22、小型计算机系统接口(small computer system interface,SCSI)控制电路24、硬盘26、网络控制电路28以及音频控制电路30。中央处理器12用来控制计算机系统10的整体操作,北桥电路14用来协调高速的外围设备(例如显示控制电路20与存储器22)与中央处理器12之间的信号传输,南桥电路16则用来协调低速的外围设备(例如硬盘26、网络控制电路28与音频控制电路30)与北桥电路14之间的信号传输。如前所述,计算机系统10包含有PCI总线18用来建立外围设备之间的互相连接。显示控制电路20用来接收图像信号以驱动一外部显示装置(例如显示屏幕),存储器22为易失性存储装置,用来寄存数据。SCSI控制电路24则是作为一桥接电路,用来控制连接SCSI控制电路24上的装置(例如硬盘26)与PCI总线18之间的信号传输,其中硬盘26为非易失性存储装置,用来纪录数据。网络控制电路28,例如区域网卡,则是用来连接计算机系统10与外部计算机网络,而音频控制电路30,例如音卡,则是执行数字声音信号与模拟声音信号之间的信号转换,亦即可将数字声音信号转换为模拟声音信号来驱动一喇叭,或是可将一麦克风所输入的模拟声音信号转换为相对应数字声音信号。
如上所述,使用PCI总线18的外围设备(网络控制电路28、音频控制电路30以及硬盘26)可经由北桥电路14与南桥电路16而传送数据到存储器22或中央处理器12。请参阅图2,图2为公知外围设备40的示意图。外围设备40包含有控制单元42以及总线接口电路44。控制单元42用来控制与执行外围设备40上地硬件操作,亦即控制单元42驱动外围设备40以执行其功能,而总线接口电路44连接到相对应的总线46,用来作为外围设备40的输入/输出接口。此外,总线接口电路44还包含有一寄存器48。若外围设备40欲将数据传输到另一装置,则外围设备40必须使用总线46来将数据传送到另一装置,例如图1所示的网络控制电路28可将由一计算机网络所下载的数据,通过PCI总线18的辅助而顺利地传输到存储器22以便进行后续相关处理。
请参阅图3,图3为图2所示的外围设备40的第一种操作时序图。由上而下分别代表时钟信号Clock、开始信号START、数据长度信号LEN、传输准备信号WRDY、传输数据WDATA以及时间Time。举例来说,外围设备40可以为图1所示的网络控制电路28,总线46则为图1所示的PCI总线18,另外,PCI总线18可以为32位(32bit)的总线或是64位的总线,换句话说,网络控制电路28可同时输出32位,亦即1DW(double word)的数据量到PCI总线18,或者网络控制电路28可同时输出64位,亦即1QW(quad word)的数据量到PCI总线18,以便经由PCI总线18传送到一目标装置。首先,若外围设备40欲自一计算机网络下载6DW的数据,并传输到存储器22中存储,因此当控制单元42开始接收该数据时,控制单元42必须将下载数据传输到总线接口电路44,以便通过总线接口电路44将下载数据输出到相对应总线46。在时间t0时,控制单元42输出开始信号START到总线接口电路44以便启动控制单元42与总线接口电路44之间的数据传输(transaction),同时控制单元42亦会将数据传输所对应的数据量经由数据长度信号LEN所传输的数据长度LI来告知总线接口电路44。此外,经由数据传输所对应的数据量大小,控制单元42便可决定传输准备信号WRDY需历时多少个时钟信号Clock的周期。举例来说,若控制单元42与总线接口电路44之间的内部传输对应32位的总线结构,由于该下载数据的数据量为6DW,因此控制单元42需启动传输准备信号WRDY达到6个时钟信号Clock的周期,亦即,控制单元42在时钟信号Clock的每一周期中会传输1DW的数据量到总线接口电路44,所以控制单元42便需要6个时钟信号Clock的周期才可成功地完成该下载数据寄存在寄存器48的操作。如图3所示,在时间t6时,传输准备信号WRDY由低电平转变为高电平,同时时钟信号Clock亦产生一上升边缘而触发控制单元42开始传输下载数据(亦即传输数据WDATA),因此控制单元42在时钟信号Clock的每一周期中传送1DW数据量到寄存器48存储。如前所述,传输准备信号WRDY依据传输数据WDATA的数据量而会在时钟信号Clock的6个周期中维持高电平,因此在该时间段中,时钟信号Clock会产生6次上升边缘而驱动控制单元42完成传输数据WDATA传送到寄存器48的操作,所以,在时间t18时,控制单元42即重置传输准备信号WRDY,亦即,传输准备信号WRDY在时间t18时由高电平恢复到低电平。
如前所述,若外围设备40为图1所示的网络控制电路28,则网络控制电路28常会下载大量数据,因此总线接口电路44需耗费时间在等待寄存器48完成存储需输出的数据,换句话说,外围设备40输出数据的效能不佳。此外,寄存器48需设置有足够的容量以便大量存储需输出的数据,因此寄存器48会占用较大的芯片面积来形成所需的存储单元,因此制造成本较高,并进一步地使公知外围设备40的整体成本上升而降低其市场竞争力。如业界所公知,除非外围设备40欲输出到另一计算机元件的数据已完全地经由控制单元42传送到寄存器48存储,否则总线接口电路44不会将寄存器48中所纪录的数据输出到总线46,换句话说,当传输准备信号WRDY由高电平恢复到低电平后(亦即传输数据WDATA已完全地记录在寄存器48中),总线接口电路44才会依据公知先进先出(first in first out,FIFO)的存储结构将寄存器48中纪录的数据输出到总线46,然后通过总线46而进一步地使该数据到达一目标计算机元件(例如存储器22)。
图3的操作时序图对应于寄存器48的容量大于传输数据WDATA,然而,当传输数据WDATA大于寄存器48的容量时则会使外围设备40进入等待装态。请参阅图4,图4为图2所示的外围设备40的第二种操作时序图。由上而下分别代表时钟信号Clock、开始信号START、数据长度信号LEN、传输准备信号WRDY、传输数据WDATA以及时间Time,其定义已说明如上,因此在此不再重复赘述。假设外围设备40欲将8DW的数据传输到另一计算机元件,且寄存器48本身的容量为6DW,因此在时间t6-t18的时间段中,传输准备信号WRDY会对应高电平,而控制单元42便将6DW的数据传输到寄存器48存储,由于在时间t18时,寄存器48的数据存储容量已满,因此如业界所公知,总线接口电路44便会开始将寄存器48中的数据经由总线46输出到另一计算机元件,此外,由于寄存器48在时间t18时已满而无法继续用来存储数据,因此传输准备信号WRDY会由高电平转变到低电平,用来告知控制单元42目前寄存器48已无法继续存储控制单元42所输出的任何数据。若总线46为32位的总线结构,因此总线接口电路44需时钟信号Clock的6周期才可完全将寄存器48中的数据完全输出,所以在时间t30时,寄存器48的可用容量恢复为6DW。已知外围设备40所要传输的数据量为8DW,因此尚有2DW的数据尚未由外围设备40输出到总线46,因此在时间t30时,传输准备信号WRDY会由低电平转变到高电平,所以控制单元42便可继续将2DW的数据传输到寄存器。如前所述,传输准备信号WRDY成为高电平的时间对应于传输数据WDATA的数据量,所以传输准备信号WRDY会在时间t34时重置为低电平以表示6DW的数据传输操作已经完成。在图4中,时间t18-t30的时间段中,外围设备40取得总线46的使用权以利用总线46传输寄存器48的存储数据,然而,在时间t30-t34的时间段中,外围设备40并未使用总线46,因此总线46的资源不再被外围设备40占用,所以总线46上的其他外围设备便可能取得总线46的使用权,因此当寄存器48在时间t34接收到最后的2DW数据时,由于总线46目前正由其他外围设备占用,所以外围设备40即进入所谓的等待状态,亦即造成外围设备40输出数据的效能不佳。
【发明内容】
本发明公开一种控制外围设备的数据输出的方法,外围设备设置在一计算机系统中,外围设备包含有一总线接口电路以及一控制单元。总线接口电连接到该计算机系统的总线,用来控制外围设备与该总线之间的数据传输。控制单元电连接到总线接口电路。该方法至少包含设置一第一存储块与一第二存储块在该总线接口电路中,将控制单元的数据输入第一存储块,使用总线接口电路同时控制第一存储块输出其内的数据到总线以及将控制单元的数据输入第二存储块,以及使用总线接口电路控制第二存储块输出其内的数据到总线。
本发明另公开一种计算机系统,其至少包含一总线以及一外围设备。外围设备包含有一总线接口电路电连接到总线,以及一控制单元电连接到总线接口电路。总线接口电路包含有至少一第一存储块及一第二存储块,以及控制单元用来同时驱动第一存储块输出其内的数据到总线以及将数据输入第二存储块。
由于本发明外围设备的总线接口电路中设置有多个小容量的寄存器,且其存储数据的速度不小于其输出数据到总线的速度,因此不但可避免本发明外围设备在利用一总线输出数据到另一计算机元件的过程中进入等待状态,且多个寄存器的容量小而可进一步地降低制造成本。
【附图说明】
图1为公知计算机系统结构的示意图。
图2为公知计算机系统的外围设备的示意图。
图3为图2所示的公知外围设备的第一种操作时序图。
图4为图2所示的公知外围设备的第二种操作时序图。
图5为本发明的外围设备的示意图。
图6为图5所示的外围设备的操作时序图。
附图符号说明
10 计算机系统 12 中央处理器
14 北桥电路 16 南桥电路
18 PCI总线 20 显示控制电路
22 存储器 24 SCSI控制电路
26 硬盘 28 网络控制电路
30 音频控制电路 40、50 外围设备
42、52 控制单元 44、54 总线接口电路
46、56 总线 48、58、60 寄存器
62a、62b 开关电路
【具体实施方式】
请参阅图5,图5为本发明外围设备50的示意图。外围设备50包含有一控制单元52以及一总线接口电路54。控制单元52为外围设备50的主要硬件,用来执行与控制外围设备50的主要功能,而总线接口电路54连接到一相对应的总线56,用来作为外围设备50的输入/输出接口。此外,总线接口电路54还包含有二寄存器58、60以及二开关电路62a、62b。本发明外围设备50应用于图1所示的计算机系统10中,其可连接到计算机系统10中的任何总线,例如外围设备50可连接到图1所示的PCI总线18,连接到公知ISA(industry standard architecture)总线,或最近业界为满足高速数据传输需求所制订的PCIX总线等,而外围设备50可以是任何数据提取装置,例如一光盘装置(未示出)或图1所示的网络控制电路28、音频控制电路30或硬盘26。此外,总线接口电路54可对应于SCSI接口,例如图1所示的硬盘26经由其SCSI接口而连接到SCSI控制电路24,因此便可进一步地使用PCI总线18,同样地,总线接口电路54亦可对应于公知USB接口、IEEE1394接口等不同接口规格,并经由相对应USB控制电路、IEEE1394控制电路来存取上述图1所示的PCI总线18。本实施例中,寄存器58、60对应于公知先进先出的存储模式,亦即先存入寄存器58、60的数据会先输出寄存器58、60。开关电路62a用来控制寄存器58或寄存器60电连接到总线56,所以当寄存器58电连接到总线56后,寄存器58所存储的数据才可成功地输出到总线56;同样地,当寄存器60电连接到总线56后,寄存器60所存储的数据才可成功地输出到总线56。另外,开关电路62b用来选择控制单元52电连接到寄存器58或寄存器60,因此当控制单元52经由开关电路62b而电连接到寄存器58后,控制单元52才可成功地输出数据到寄存器58以纪录数据在寄存器58中;同样地,当控制单元52经由开关电路62b而电连接到寄存器60后,控制单元52才可成功地输出数据到寄存器60以纪录数据在寄存器60中。
请参阅图6,图6为图5所示的外围设备50的操作时序图。由上而下分别代表时钟信号Clock、开始信号START、数据长度信号LEN、传输准备信号WRDY、传输控制信号WAVL、传输数据WDATA以及时间Time。假设寄存器58、60的存储容量相同而均为8DW,且控制单元52欲将20DW的数据传送到另一计算机元件,例如外围设备50为图1所示的网络控制电路28,而该另一计算机元件为图1所示的存储器22,因此外围设备50必须将数据传送到总线56(例如图1所示的PCI总线18),然后经由总线56传送到该另一计算机元件。如前所述,总线接口电路54提供外围设备50与总线56之间的接口以便外围设备50输出数据到总线56,换句话说,控制单元52需先寄存数据在总线接口电路54的寄存器58、60中。在时间t1时,控制单元52输出一开始信号START到总线接口电路54以启动控制单元52与总线接口电路54之间的数据传输,同时,控制单元52亦会经由数据长度信号LEN而输出数据长度LI到总线接口电路54,以告知总线接口电路54需接收对应数据传输的数据量,本实施例中,由于控制单元52欲将20DW的数据传送到另一计算机元件,因此数据长度LI即用来告知数据传输的数据量为20DW。由于一开始时,寄存器58、60并无存储任何数据,因此总线接口电路54会输出对应高电平的传输控制信号WAVL,用来告知控制单元52目前寄存器58、60可用来接收数据。在时间t4时,控制单元52输出高电平的传输准备信号WRDY以告知总线接口电路54需开始接收数据。请注意,为了便于说明,假设在时钟信号Clock的一周期中,控制单元52可传输2DW的数据到寄存器58、60,然而,在时钟信号Clock的一周期中,寄存器58、60仅可传输1DW的数据到总线56。换句话说,本实施例中,控制单元52与总线接口电路54之间的数据传输速度需不小于总线接口电路54与总线56之间的数据传输速度,主要目的避免外围设备50进入等待状态,其原理稍后再详述。
当传输准备信号WRDY在时间t4时由低电平转换到高电平时,总线接口电路54会控制开关电路62b以选取寄存器58、60两者的一来寄存控制单元52所传送的数据,例如开关电路62b先电连接寄存器58与控制单元52,因此寄存器58(存储容量为8DW)便于时间t4-t8时持续接收控制单元52输出8DW的数据。请注意,在时间t8时,寄存器58已满,而寄存器60尚未使用而仍可纪录8DW的数据。所以,当外围设备50取得总线56的使用权后,总线接口电路54便控制开关电路62a以连接寄存器58与总线56,并开始驱动寄存器58将其存储的数据传送到总线56。此时,由于控制单元52尚未完全将20DW的数据输出到总线接口电路54,因此总线接口电路54便同时在时间t8时控制开关电路62b以连接寄存器60与控制单元52,亦即启动寄存器60来继续地接收控制单元52所传送到总线接口电路54的数据。同样地,由于寄存器60的存储容量为8DW,因此控制单元52需要时钟信号Clock的4个周期才可使寄存器60储满8DW的数据,亦即在时间t8-t12之间的时间段中进行控制单元52与寄存器60之间的数据传输操作。如上所述,在时钟信号Clock的一周期中,寄存器58、60仅可传输1DW的数据到总线56,因此寄存器58在时间t8-t12间仅完成输出4DW的数据,所以在时间t12时,寄存器58中仍存储有4DW的数据而尚未完成将其存储数据完全地输出到总线56的操作,所以寄存器58、60在时间t12后均无法接收任何数据。因此,总线接口电路54便会在时间t12时使传输控制信号WAVL由高电平重置为低电平,用来告知控制单元52目前寄存器58、60已无法用来存储数据。
明显地,寄存器58会在时间t16时成功地完成将其存储数据完全地输出到总线56的操作,亦即寄存器58在时间t8-t16的时间段中完全地输出其存储8DW数据。由于寄存器58此时并未存储任何数据,因此寄存器58便可用来寄存控制单元52的输出数据,所以总线接口电路54在时间t16时使传输控制信号WAVL由低电平转变到高电平,用来告知控制单元52可开始继续传输数据到总线接口电路54,并且控制开关电路62来连接寄存器58与控制单元52以便寄存器58可顺利地接收控制单元52输出到总线接口电路54的数据。同一时间,总线接口电路54会控制开关电路62a连接寄存器60与总线56,并随即驱动寄存器60开始输出其存储数据。在时间t4-t12的时间段中,控制单元52已传送16DW的数据到总线接口电路54,而由于已知控制单元52欲将20DW的数据传送到另一计算机元件,因此控制单元52需时钟信号Clock的2周期以便输出最后4DW的数据。如图6所示,在时间t18时,寄存器58便存储了4DW的数据而完成控制单元52与总线接口电路54之间的数据传输操作。因此,控制单元52便在时间t18时使传输准备信号WRDY由高电平重置为低电平,用来告知总线接口电路54上述数据传输操作已完成。然后,当寄存器60完成输出其记录的8DW数据到总线56时,总线接口电路54便随即控制开关电路62a以连接寄存器58与总线56来输出其纪录的4DW数据到总线56,亦即当寄存器60在时钟信号Clock的8周期中完成输出其存储数据到总线时,总线接口电路54会继续控制寄存器58在时钟信号Clock的2周期中输出其存储的4DW数据到总线56。
当寄存器60在时间t8-t12接收控制单元52的输出数据时,寄存器58亦会同时将其存储数据传输到总线56,如前所述,控制单元52与总线接口电路54之间的数据传输速度需不小于总线接口电路54与总线56之间的数据传输速度,因此在寄存器60储满数据前,寄存器58不会完全地将其存储数据传送到总线56,换句话说,当寄存器60储满数据时,外围设备40会因为寄存器58仍持续地输出数据到总线56而继续取得总线56的使用权,因此本实施例中,外围设备40并不会进入等待状态。相反地,若控制单元52与总线接口电路54之间的数据传输速度小于总线接口电路54与总线56之间的数据传输速度,因此在寄存器60储满数据前,寄存器58已完全地将其存储数据传送到总线56,换句话说,当寄存器58已空而寄存器60未满时,如业界所公知,总线接口电路54不会控制寄存器60输出数据,因此在寄存器60储满数据前,外围设备50便会因为无数据可输出到总线56而进入等待状态。所以,总线56上的其他外围设备便可能取得总线56的使用权,换句话说,当外围设备50的寄存器60稍后完成寄存8DW的数据时,外围设备50由于失去总线56的使用权,因此外围设备50必须等到总线56可使用(available)时,外围设备50才可经由重新取得总线56的使用权以传输寄存器60所纪录的数据。综合上述,在本实施例中,控制单元52与总线接口电路54之间的数据传输速度需不小于总线接口电路54与总线56之间的数据传输速度,因此在控制单元52将数据传送到另一计算机元件的整体过程中,外围设备50不会进入等待状态而可持续地使用总线56来执行传送数据到另一计算机元件的操作。
本实施例中,寄存器58与寄存器60对应相同的存储容量,然而亦可使用不同存储容量的寄存器58、60,举例来说,若寄存器60的存储容量两倍于寄存器58的存储容量,只要控制单元52与总线接口电路54之间的数据传输速度大于总线接口电路54与总线56之间的数据传输速度的两倍以上,则寄存器60储满其存储容量的数据所需时间必定会小于寄存器58输出其存储容量的数据的时间。换句话说,外围设备50在使用总线56传送数据的过程中,外围设备50不会进入等待状态而影响其传输数据的效能,亦即本实施例中,寄存器58、60的存储容量必须配合控制单元52与总线接口电路54之间的数据传输速度以及总线接口电路54与总线56之间的数据传输速度,以避免外围设备50在传送数据的过程中进入等待状态。此外,本实施例的总线接口电路54仅包含二寄存器58、60,然而亦可使用多个寄存器,举例来说,若总线接口电路54包含有三寄存器A、B、C,则依据前述操作步骤,总线接口电路54依序使用寄存器A、B、C来存储控制单元52所传送的数据,例如,一开始时,总线接口电路54启动寄存器A来存储控制单元52所输出的数据直到寄存器A储满数据,然后当外围设备50取得总线56的使用权时,总线接口电路54控制寄存器A开始输出数据到总线56,同时总线接口电路54亦会启动寄存器B来持续存储控制单元52所输出的数据。如前所述,为了避免外围设备50进入等待状态,寄存器B储满数据所需时间必须不大于寄存器A完全输出其存储数据的相对应所需时间,亦即在寄存器A完成数据输出的操作前,寄存器B需完成储满数据的操作,因此当寄存器B储满数据时,由于寄存器C仍包含有可使用的存储容量,所以总线接口电路54即可控制寄存器C开始接收控制单元52所输出的数据,而当寄存器A完全输出其存储数据时,总线接口电路54即会控制已储满数据的寄存器B开始输出其存储数据。同样地,为了避免外围设备50进入等待状态,寄存器C储满数据所需时间必须不大于寄存器B完全输出其存储数据的相对应所需时间,亦即在寄存器B完成数据输出的操作前,寄存器C需完成储满数据的操作,因此当寄存器C储满数据时,由于寄存器A包含有可使用的存储容量,所以总线接口电路54即可控制寄存器A开始接收控制单元52所输出的数据,而当寄存器B完全输出其存储数据时,总线接口电路54即会控制已储满数据的寄存器C开始输出其存储数据。重复上述操作,寄存器A、B、C即可依序被使用来接收控制单元52传输的数据以及输出其存储数据到总线56,亦即可完成外围设备40输出数据的目的,均属本发明的范畴。
与公知技术相比较,本发明外围设备的数据传输控制方法使用多个容量小的寄存器来切换地存储一外围设备欲传送到另一外围设备的数据,且对于该外围设备而言,一控制单元与一总线接口电路之间的数据传输速度需不小于总线接口电路与一相对应总线之间的数据传输速度,因此可避免该外围设备在输出数据的过程中因为进入等待状态而失去该总线的使用权。本发明外围设备的数据传输控制方法所使用的寄存器对应小容量(例如64DW),因此可大幅降低寄存器的生产成本与总线接口电路的芯片面积,同时可避免该外围设备在输出数据的过程中因为进入等待状态而影响输出数据的效能。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所进行的等效变化与修改,皆应属本发明的涵盖范围。