背景技术
涉及用于个人计算机和工作站等一系列信息处理装置的总线及其控制方法的以往技术,己知记载于特开平5-324544号公报等中的技术。用图8说明以往的总线控制方法。现在,由于接口电路设计容易,与总线连接的多个模块,与作为各模块中公共时钟的系统时钟同步地进行数据的收发控制的同步式总线已成为主流。
以四数据周期的突发写入为例说明以往的同步式总线传输方式,则如图8所示。图8是以往总线的突发写入定时图(传输目的地模块端的缓冲器为空的状态)。图8中,801是用于进行同步传输的系统时钟信号,802是从传输源模块(总线主控制器)通过总线模块,把地址/数据传送到传输目的地(从属部件)的地址/数据(A/D)信号,803是表示地址/指令有效期间的地址有效(ADV-N)信号,804是表示数据有效期间的数据有效(DTV-N)信号,805是指定传输种类等的指令(CMD)信号,806是让传输源模块(总线主控制器)知道总线模块接收传输的确认(ACK-N)信号,807是传输目的地模块(从属部件)因本身模块内部的缓冲器满负荷而成为不可接收的状态,然后请求传输源模块(总线主控制器)再次进行的再试信号(RTY-N)信号。
作为传输源的总线主控制器与系统时钟801同步地在总线上发送传输地址和传输指令。此时,总线主控制器通过断言地址有效信号803指定地址/指令周期。然后,从传输目的地的从属模块对总线主控制器,通过确认信号806,传送确实接收地址/指令周期的报告。接收其的总线主控制器与系统时钟801同步,在四个连续的数据周期总线上发送,结束数据传输。此时,作为数据周期,用数据有效信号804来指定。
另一方面,近年来,LSI集成度提高,在一个芯片上可同时集成构成处理器、存储器、各种周边功能模块等系统的多个功能。在这种情况下,上述总线作为片上总线,认为可置于LSI内部。在LSI内部设置总线的优点可例举出:各模块的接口电路可公共化,各种功能模块向其它LSI的流用容易化等。
把总线作为片上总线置于LSI内部的以往例有美国专利USP5761516。
一般来说,在使用上述那样的总线的系统中,由于传输目的地模块的缓冲器满负荷,产生总线中的等待,有降低系统性能的问题。图9示出以四数据周期的突发写入为例来进行的说明。
图9是以往总线突发写入定时图(传输目的地模块侧缓冲器为满负荷状态)。图9中,901是进行同步传输的系统时钟信号,902是从传输源模块(总线主控制器)通过总线模块,把地址/数据传送到传输目的地(从属部件)的地址/数据(A/D)信号,903是表示地址/指令有效期间的地址有效(ADV-N)信号,904是表示数据有效期间的数据有效(DTV-N)信号,905是指定传输种类等的指令(CMD)信号,906是让传输源模块(总线主控制器)知道总线模块接收传输的确认(ACK-N)信号,907是传输目的地模块(从属部件)因本身模块内部的缓冲器满负荷而成为不可接收的状态,然后请求传输源模块(总线主控制器)再次进行的再试信号(RTY-N)信号。作为传输源的总线主控制器与系统时钟901同步地在总线上发送传输地址和传输指令。此时,总线主控制器通过断言地址有效信号903来指定地址/指令周期。
其中,在因传输目的地的从属模块内的缓冲器满负荷,成为不可接收上述传输的状态的情况下,从属模块用再试请求(RTY-N)信号907对总线主控制器请求再次进行传输。经过一定时间之后,总线主控制器再次起动总线上的传输,如果传输目的地的从属模块内的缓冲器满负荷,来自从属部件的确认报告接收(再试请求)之后,进行四周期的突发写入传输,完成传输。其中,由于总线配备再试协议,因而总线主控制器占有总线而原样等待,不会妨碍其它传输。但是,接收再试请求后,不能接收传输源模块的传输,仍然存在传输源模块的处理不能先进行的问题。
本发明的目的在于,在使用片上总线的LSI系统中,可防止因传输目的地模块的缓冲器状态而使总线转输等待,传输源的模块不能进行下一次的处理。
发明的实施例
利用图1至图12说明本发明的实施例。图1是使用采用本发明的片上总线的系统LSI的信息处理装置的方框图,图2是采用本发明的片上总线的系统LSI的方框图,图3是采用本发明的片上总线的系统LSI的内部结构方框图,图4是在芯片上实现非芯片上的采用纵横开关的总线结构的系统LSI内部结构的方框图,图5是表示本发明的片上总线地址分配的地址空间表,图6是本发明的片上总线的突发写入定时图(接收侧缓冲器为空状态),图7是本发明的片上总线的突发写入定时图(接收侧缓冲器为满负荷状态),图8是以往例的片上总线的突发写入定时图(接收侧缓冲器为空状态),图9是以往例的片上总线的突发写入定时图(接收侧缓冲器为满负荷状态),图10是表示本发明的片上总线的连接关系的连接图,图11是表示本发明的片上总线的传输顺序的流程图,图12是表示以往的片上总线的传输顺序的流程图。
图1中,101是采用本发明的片上总线的系统LSI,102是主存储装置,103是ROM,104是在系统总线109和I/O总线110之间进行协议变换的总线适配器,105是用于通信的模块,106、107是输入输出装置,108是片上总线,109是系统总线,110是I/O总线,111是包含存储器管理单元(MMU)和超高速缓冲存储器的CPU模块,112是片上的DRAM模块,113是图形模块,114是MPEG(活动图像专家组)译码器模块,115是外部总线(系统总线)接口模块,116是DSP(数字信号处理器)模块,从117至122是向片上总线108的公共接口。
图2中,201是作为系统LSI内部的模块的模块A,202是模块B,203是模块C,204是模块D,205是模块E,206是模块F,207是模块G,208是模块H,209是片上总线的纵横开关部,210是纵横开关控制部,211是设置于纵横开关内部的缓冲器部,从212到219分别是从模块A到模块H的片上总线接口部,从220到227是片上总线的模块接口部。
图3中,301、302是在总线模块108内的传输路径上设置的传输用缓冲器,303、305、307、309分别是模块A、B、C、D的数据输出缓冲器,304、306、308、310分别是模块A、B、C、D的数据输入缓冲器,311、313、315、317分别是来自模块A、B、C、D的数据输出线,312、314、316、318分别是向模块A、B、C、D的数据输入线,319是不通过缓冲器301的旁路线,320是不通过缓冲器302的旁路线,从321到328是构成纵横开关的选择器,从329到336是来自决定数据路径的纵横开关控制部210的控制线。
如图3所示,通过在模块之间设置多个共用的传输用缓冲器,可对传输用缓冲器并联地进行输入输出操作。
图4中,401、402、403、404分别是模块A、B、C、D的输入数据用缓冲器,从405到412是构成纵横开关的选择器,从413到420是来自决定数据路径的纵横开关控制部210的控制线。
图5中,501是模块A的地址空间,502是模块B的地址空间,503是模块C的地址空间,504是模块D的地址空间。
图6中,601是进行同步传输的系统时钟信号,602是把地址/数据从传输源模块(总线主控制器)传输到总线模块108的地址/数据(A/D-1)信号,603是表示地址/指令有效期间的地址有效(ADV-N)信号,604是表示数据有效期间的数据有效(DTV-N)信号,605是指定传输种类等的指令(CMD)信号,606是把总线模块108接收传输之事通知传输源模块(总线主控制器)的确认(ACK-N)信号,607是让总线模块108知道传输目的地模块(从属部件)因本身模块内部的缓冲器满载而处于不可接收状态的缓冲器满负荷(BFL-N)信号,608是从总线模块108把地址/数据传输到传输目的地模块(从属部件)的地址/数据(A/D-2)信号。
图7中,701是同步进行传输的系统时钟信号,702是从传输源模块(总线主控制器)把地址/数据传输到总线模块108的地址/数据(A/D-1)信号,703是表示地址/指令有效期间的地址有效(ADV-N)信号,704是表示数据有效期间的数据有效(DTV-N)信号,705是指定传输种类等的指令(CMD)信号,706是让传输源模块(总线主控制器)知道总线模块108已接收传输的确认(ACK-N)信号,707是让总线模块108知道传输目的地模块(从属部件)因本身模块内部的缓冲器满载而处于不可接收的状态的缓冲器满负荷(BFL-N)信号,708是从总线模块把地址/数据传输到传输目的地模块(从属部件)的地址/数据(A/D-2)信号。
图10中,1001是模块A与总线模块108之间的指令信号,1002是模块A与总线模块108之间的缓冲器满负荷信号,1003是模块A与总线模块108之间的确认信号,1004是模块A与总线模块108之间的数据有效信号,1005是模块A与总线模块108之间的地址有效信号,1006是从模块A到总线模块108的地址/数据信号,1007是从总线模块108到模块A的地址/数据信号,1008是模块B与总线模块108之间的指令信号,1009是模块B与总线模块108之间的缓冲器满负荷信号,1010是模块B与总线模块108之间的确认信号,1011是模块B与总线模块108之间的数据有效信号,1012是模块B与总线模块108之间的地址有效信号,1013是从模块B到总线模块108的地址/数据信号,1014是从总线模块108到模块B的地址/数据信号。
首先,说明系统构成。图1是采用本发明的片上总线的系统LSI用的信息处理装置的方框图,在系统总线109上连接采用本发明的片上总线的系统LSI(内置周边功能模块的处理器)、主存储装置102、ROM103、通信模块105,并且通过总线适配器104,连接I/O总线110上的多个输入输出装置106、107。系统LSI内的CPU模块、DRAM模块、图形模块等各模块都具有公共的接口部(117、116等),都与片上总线108连接。图2是表示系统LSI101内部结构的方框图。
本实施例中系统LSI内部的片上总线为由多个选择器构成的纵横开关结构,并且在其内部,设有与总线连接的在各模块传输数据等中共用的传输缓冲器。本说明书中,把这些(还包含控制部210)统称为总线模块108。其中,纵横开关具有对于一个以上的输入选择一个输出的功能。总线模块中包括控制纵横开关的传输路径以及传输定时的纵横开关控制部210。图3表示总线模块108内部的数据流动。
此外,由于本发明的总线是纵横开关结构,因而如图5所示,预先分配各模块的地址空间。其中,图3中,考虑模块A(201)相对于模块C(203)实行突发写入(四数据周期)传输的情况。如图6的定时图所示,模块A把分配给模块C的地址和指定突发写入传输的指令输出到总线上(A/D-1适用于图3的数据输出线311,定时是图6的602)(1102)。其中,用地址有效(ADV-N)信号603指定地址/指令周期。在总线模块108的路由中,通过总线信号线(图10的1008、1011、1012、1013)接收突发写入访问请求的模块C,把作为其接收报告的确认(ACK-N)606通过总线模块108传输到模块A(1103)。
同时,模块C利用缓冲器(BFL-N)信号607,让模块A知道本模块内部的传输接收缓冲器的空状态(1104)。图6表示在模块C内部的缓冲器有空,处于可接收传输状态的情况。此时,图3内的纵横开关控制部108进行控制,控制选择器324、322、327,经由数据输出线311、不通过总线模块内的传输路径上设置的传输用缓冲器302的旁路线320、数据输入线316,传输数据(1105)。
另一方面,图7表示在模块C中,其模块内部的缓冲器不空,处于不可接收状态的定时图。通过总线信号线(图10的1008、1011、1012、1013)接收突发写入访问请求的模块C,把作为其接收报告的确认(ACK-N)706通过总线模块108传输到模块A,同时利用缓冲器(BFL-N)信号707,让模块A知道该模块内部的传输接收缓冲器处于不可接收状态(1106)。
在这种情况下,图3内的纵横开关控制部201进行控制,控制选择器324、322、327,经由数据输出线311、在总线模块内的传输路径上设置的传输用缓冲器302、数据输入线316,传输数据。其中,在传输用缓冲器302上按地址/数据信号(A/D-1)702的定时写入数据。对于模块C,等待缓冲器满负荷(BFL-N)信号707被取消(1107),按地址/数据信号(A/D-2)708的定时,通过总线模块108,进行数据写入(1108)。图11用流程图来表示这一连串的动作。
这里,比较一下在上述说明的具有公共传输用缓冲器的情况下与不具有传输用缓冲器的情况下的传输控制例。图4表示不具有传输缓冲器情况的总线结构。其中,图4表示在芯片上实现使用纵横开关的总线结构的系统LSI的总线模块108的内部数据流动。
图4中,考察模块A在模块C中突发写入(四数据周期)的情况。如图8的定时图所示,模块A输出指定模块C的地址和突发写入的指令。其中,用地址有效(ADV-N)信号803指定地址/指令周期。通过来自总线模块108的总线控制信号,接收突发写入访问请求的模块C,通过总线模块108,把作为其接收报告的确认(ACK-N)806传输到模块A。
图8表示该模块内部的缓冲器有空,处于可接收传输状态的情况。此时,图4内的纵横开关控制部210控制选择器(例如:405、411路由),对通过数据输出线311、数据输入线316传输数据的路径进行控制。另一方面,图9表示在模块C中,其模块内部的缓冲器不空,处于不可接收状态的情况。
如图9的定时图所示,模块A输出指定模块C的地址和突发写入的指令(1202,1203)。其中,用地址有效(ADV-N)信号903指定地址/指令周期。通过来自总线模块108的总经控制信号接收突发写入访问请求的模块C,用再试请求信号(RTY-N)907让模块A知道该模块内部的缓冲器没空,已处于不可接收的状态(1204)。通过再试请求,传输被拒绝的模块A,在一定期间之后再次起动传输。
在模块C侧的缓冲器有空,有作为接收报告的肯定(ACK-N)应答906时,图4内的纵横开关控制部210控制选择器405、411(例如:405、411路由),进行总线控制,以通过数据输出线311、数据输入线316传输数据,实现向模块C的数据传输(1205)。图12示出这一连串控制的流程图。
在印刷基板上安装某一以往总线的情况下,只有总线本身在基板上的布线。为此,在总线上设置按本方式的缓冲器,即意味着追加LSI部件。为此,通常在象本发明那样设计缓冲器的情况下,在与总线连接的所有模块的总线接口部(接收侧)上内装缓冲器。结果,产生在以往基板上的总线情况的模块门数增多的问题。
与此相对,按照本发明,如果把总线的布线部作为总线模块108,在其中设置可共用的缓冲器,可防止增加不必要的布线部。这是由于全模块同时传输的情况很少,通常,可内装比较总线使用率的缓冲器(例如,如果使用率为50%,那么为全模块具有缓冲器的情况下的缓冲器容量的一半)。
本实施例中,示出总线结构为纵横开关的结构,但即使是分时使用共用母线的常规总线的形态也没有任何妨碍。
按照本发明,例如,即使是在作为传输目的地的从属部件模块内的缓冲器满负荷,不接收以上传输状态的情况下,总线主控制器也可把数据传输到设置于LSI的片上总线上的传输缓冲器。作为传输源的总线主控制器,尽管在从属部件内部的缓冲器为空的状态,但也不必等待传输,因而有提高系统总处理性能的效果。
并且,本发明具有提高LSI频率的效果。近年来,LSI处理的微细化进一步发展,由于增大布线容量,门延迟的布线延迟成为问题。因此,在芯片的角部并且在对角上配置的模块间的传输,很有可能成为芯片全体的关键路径。(这时,布线长度是芯片一边长度的大约2倍。)
因此,通过把总线模块108安装于芯片中央,内装的缓冲器中一旦中继,布线长度可以为约二分之一,作为关键路径的对策,可以有效利用本方式。即,从提高频率的观点来看是有效的。
此外,与印刷基板上安装的以往总线相比,本发明在片上总线上设置共用缓冲器,可缩短布线长度,因而可降低布线延迟。
图1的信息处理装置内部的结构要素根据其应用产品而不同。作为典型例,可例举出有线TV和卫星传输用的STB(置顶盒)、小型携带终端、互连网专用终端等。在STB中,作为内置于系统LSI101中的模块,除DRAM、DMA(直接存取)控制器和基本I/O之外,可考虑MPEG解码器、TV输出机构。在系统总线109上,除ROM和主存储装置之外,还必须有作为通信用模块的有线调制解调器或卫星调谐器。
此外,在I/O总线110上,作为选择,可考虑印刷接口、硬盘装置等。另一方面,作为小型携带终端,作为内置于系统LSI101内的模块,除DRAM、DMA(直接存取)控制器、基本I/O之外,可考虑带有加速器的LCD(液晶)控制器。在系统总线109上,除ROM和主存储装置之外,可考虑调制解调器、PC卡接口、FD(软盘接口)等,为了小型化,认为不必根据不同场合来设置I/O总线110。
作为互连网专用终端,作为内置于系统LSI101内的模块,除DRAM、DMA(直接存取)控制器、基本I/O之外,可考虑带有加速器的图形控制器。在系统总线109上,除ROM和主存储装置之外,作为通信模块,必须有以太网(办公用)或调制解调器(家庭用)接口。此外,在I/O总线110上,可考虑打印接口、硬盘装置等。
再有,本发明考虑在打印基盘上设置共用缓冲器的情况。
图13是本发明第一实施例的内部总线分层结构的方框图,图14是展示图13中总线复示器的内部结构的方框图。图13中,1301是把图1中片上总线108分离为两个的总线复示器,1302是在被总线复示器分离为两个的片上总线中,连接CPU模块和外部总线接口一侧的片上总线,1303是在被总线复示器分离为两个的片上总线中,未连接CPU模块和外部总线接口一侧的片上总线,1304是用于连接片上总线1303与芯片上的低速I/O总线的总线适配器,1305是芯片上的低速I/O总线,1306、1307是低速I/O。图14中,1401是片上总线1302的接口,1402是片上总线1303的接口,1403是传输缓冲器部,1404是来自片上总线1302侧的传输接收控制部,1405是向片上总线1302侧的传输发射控制部,1406是向片上总线1303侧的传输发射控制部,1407是来自片上总线1303侧的传输发射控制部,1408是从片上总线1302到片上总线1303传输时的传输用缓冲器(包括地址、数据、传输控制信息),1409是从片上总线1303到1302传输时的传输用缓冲器(包括地址、数据、传输控制信息),1410是从片上总线1302到总线复示器1301的输入线,1411是从总线复示器1301到片上总线1302的输出线,1412是从片上总线1303到片上总线1301的输入线,1413是从总线复示器1301到片上总线1303的输出线。
这里,考虑进一步提高该系统LSI的工作频率的方式。作为阻碍LSI的工作频率提高的要因,有总线上连接的模块的个数。在总线上连接的模块的个数越少,就越能使布线延迟缩短和纵横开关的理论规模小型化,结果,可提高工作频率。因此,用总线复示器把片上总线分离为两个以上,认为可部分提高频率。例如,连接8个模块,用总线复示器可把按100MHz动作的片上总线分离成2个模块和6个模块。由此,如果2个模块侧的片上总线包含总线复示器,那么实际3个模块、6个模块侧的片上总线变成为需要7模块的负荷。因此,6模块侧的片上总线不怎么改变条件,但2模块侧的片上总线减少模块负荷的部分,可提高频率。当然,其中在从2模块侧的片上总线把数据传输到6模块侧的片上总线的情况下,对应1次传输的开销增加,有等待时间变长的问题。因此,必须充分地注意模块的分配。图13中,用总线复示器,把主片上总线分离成2个(片上总线1302和1303)。然后,在片上总线1302侧,CPU模块111仅和外部总线接口115连接。另一方面,其它功能模块与片上总线1303侧连接。其中,在片上总线1302中包含总线复示器,由于只连接3个模块,因而与片上总线分离前相比可提高频率。即,CPU和外部存储器之间的传输可高速化,提高系统的处理性能。另一方面,CPU和外部存储器以及片上总线1303上的模块之间存在传输等待时间变长之类的问题,但可以认为,与CPU和主存储器之间的传输请求性能相比,向周边模块的传输请求性能较低的情况较多,此外,CPU与主存储器之间的传输比率高的系统较多,可提高系统总性能的情况较多。通常,由于总线复示器中的同步化的损失小,最好片上总线1302和1303的频率之比为1∶1、2∶1、4∶1等整数比。此外,由于性能低的I/O,因而最好准备低速I/O总线1305等,用总线适配器连接。此外,图14表示总线复示器的内部结构。