数据传输装置的制作方法

文档序号:6637176阅读:237来源:国知局
专利名称:数据传输装置的制作方法
技术领域
本发明涉及一种对例如总线桥等中的数据传输实现控制的技术。
背景技术
近来,已经采用了符合例如吉字节以太网和光纤信道的高速通信标准的输入/输出(I/O)装置。为了与此保持同步,信息处理装置也需要提高在例如实现I/O总线和存储器总线之间的数据传输的总线桥中的数据传输性能。
图14示意性地示出了传统总线桥的结构;而图15示意性地示出了配备有总线桥的信息处理装置的结构。图15中示出的信息处理装置100包括中央处理单元(CPU)21-1和21-2、系统控制器23-1和23-2、总线桥20-1和20-2、纵横交换器24、存储器22-1、22-2、22-3和22-4以及I/O装置25。
将CPU 21-1、存储器22-1和22-2以及纵横交换器24连接到系统控制器23-1;同样,将CPU 21-2、存储器22-3和22-4以及纵横交换器24分别连接到系统控制器23-2。
两个I/O装置25通过I/O总线26分别连接到总线桥20-1和20-2;并且所述总线桥20-1和20-2通过存储器总线27分别连接到纵横交换器24。
换句话说,各系统控制器23-1和23-2通过纵横交换器24分别连接到总线桥20-1、20-2,以便能够在其间通信。
后面,对于表示总线桥的参考标号,当需要指定多个总线桥之一时,将使用参考标号20-1和20-2;而当要表示任一总线桥时,则使用参考标号20。
如图14所示,将总线桥(存储器I/O总线桥)20设置于I/O装置25和纵横交换器24之间的I/O总线26和存储器总线27之间,并且进行这种方式的配置,使得在所述I/O总线26和存储器总线27之间传输数据,其中I/O总线26和存储器总线27具有彼此不同的协议例如将要传输的数据的时钟频率和数据长度。
在配备有传统总线桥20的信息处理装置100中,存储器总线27包括写数据信号线27b,通过该写数据信号线27b而发送写数据和用于在存储器22-1到22-4中写入数据的请求(地址);以及读数据信号线27a,通过该读数据信号线27a发送从存储器22-1和22-4中读出的读数据。此外,I/O总线26包括用于从I/O装置25接收数据的I/O接收信号线26a和用于向I/O装置25发送数据的I/O发送信号线26b。
如图14所示,传统总线桥20包括发送缓冲器201、接收缓冲器202以及控制信息表203。
发送缓冲器201用于临时存储从存储器22-1到22-4读出的数据,以执行直接存储器存取(DMA)读取。将I/O发送信号线26b和读数据信号线27a连接到发送缓冲器201,以便能够在其间通信,并且进行这样的配置,使得通过读数据信号线27a将来自存储器22-1到22-4的数据存储于发送缓冲器201中,并且通过I/O发送信号线27b将存储于发送缓冲器201的读数据发送到I/O装置25。
接收缓冲器202用于临时存储将要写入存储器22-1到22-4的数据,以执行DMA写入。将I/O接收信号线26a和写数据信号线27b连接到接收缓冲器202,以便能够在其间通信。并且进行这样的配置,使得将来自I/O装置25的数据存储于接收缓冲器202中;并且根据存储于控制信息表203中的控制信息,通过写数据信号线27b而将存储于接收缓冲器202中的数据作为写数据发送到存储器22-1到22-4。
换句话说,如图14所示,在传统总线桥20中,存储器总线27和I/O总线26共用发送缓冲器201和接收缓冲器202。此外,对存储器总线27进行这样的配置,使得通过同一写数据信号线27b而发送请求和数据。在存储器总线27中,将请求和数据作为相同的包处理。如果同时处理多个存储器请求,则顺序地执行相应的处理。
对发送缓冲器201和接收缓冲器202进行这样的设置,使得以先进先出(FIFO)的方式存储和读出数据。
控制信息表203用于控制对存储器22-1到22-4的存取。控制信息表203用于实现向存储器22-1到22-4发送请求、读出存储于发送缓冲器201中的读数据、向存储器22-1到22-4发送存储于接收缓冲器202的写数据等的控制。
按上述配置的传统总线桥20从I/O装置25向存储器22-1到22-4发送数据,并将存储于存储器22-1到22-4的数据发送到I/O装置25;从而,传统总线桥20实现了在I/O总线26和存储器总线27间的数据传输。
如上所述,人们期望增强传统总线桥20中的数据传输的性能。例如,日本特许公开(KoKai)号2000-132503公开了一种数据传输装置,其中包含目标的接口板设有多个接收缓冲器,以便始发方(initiator)能够有效地处理数据。
然而,在传统总线桥20中,进行这样的配置,使得每个电路都设置发送缓冲器201和接收缓冲器202以作为电路配置,从而引起了难以将发送缓冲器201和接收缓冲器202配置为对于存储器总线27和I/O总线26的协议都最优化的缺陷。
此外,也出现了下面的经济上的缺陷。例如,在I/O总线26或存储器总线27中,当改变例如总线时钟或数据长度的协议时,传统总线桥20不能处应付所述改变。从而,就要将整个总线桥20换成新的总线桥。
此外,通常在例如CPU的处理器单元中,使用一种已知的技术,其中不考虑程序中描述的顺序而执行程序中的指令(无序执行),以便实现高速处理。
同时,存在一种已知技术,其中在总线桥20中,通过将发送到存储器总线27的包中的地址部分和数据部分视作不同的包,而对这些包进行处理和发送。
然而,在传统总线桥20中,对I/O发送缓冲器201和I/O接收缓冲器202进行这样的设置,使得以FIFO的方式读取和写入数据。从而,不能通过将地址部分和数据部分作为不同的包来处理的技术而实现无序执行。
此外,在传统总线桥20中,存在下面的问题即,当实现虚拟信道功能时(其中在虚拟信道功能中假设物理上的一条I/O总线26虚拟连接有多个信道),不能实现包的过载(overtaking)控制。

发明内容
考虑到上述问题设计出本发明。从而,本发明的一个目的是提供一种数据传输装置及一种信息处理装置,其具有对于存储器总线和输入/输出总线的协议都最优化的配置,并且还能够进行无序执行(out-of-order execution)。
因此,根据本发明的一种数据传输装置,用于在存储器总线和输入输出总线之间传输数据,其中以这种方式连接该存储器总线,使其能够在与配备有请求信号线、写数据信号线和读数据信号线的存储器的通信中,将请求、写数据和读数据分别作为包来传送;所述输入/输出总线配备有发送信号线和接收信号线,通过发送信号线和接收信号线分别将该发送数据与该接收数据作为包括发送数据和该发送数据的发送地址的包与包括接收数据和该接收数据的接收地址的包发送到输入/输出装置或者从该输入/输出装置接收,所述数据传输装置包括输入/输出接收缓冲器,能够存储通过该接收信号线从该输入/输出装置接收的该接收数据;输入/输出发送缓冲器,能够存储通过该发送信号线而发向该输入/输出装置的该发送数据;写数据缓冲器,能够存储将通过该写数据信号线而发送到该存储器的该写数据;读数据缓冲器,能够存储通过该读数据信号线而从该存储器接收的该读数据;控制信息表,具有多个相应于对该存储器的存取而形成的条目(entry);写数据缓冲器存储处理部件,将存储于该输入/输出接收缓冲器中的该接收数据存储到该写数据缓冲器中;写数据发送部件,通过该写数据信号线,将存储于该写数据缓冲器中的该接收数据作为写数据而发向该存储器;读数据缓冲器存储处理部件,将从该存储器接收的该读数据存储于该读数据缓冲器中;输入/输出发送缓冲器存储处理部件,读取存储于该读数据缓冲器的读数据,将该数据作为该发送数据与该发送数据的发送地址一起存储于该输入/输出发送缓冲器中;以及控制部件,根据该控制信息表而控制由该写数据发送部件和该读数据缓冲器存储部件进行的对该存储器的存取。
可进行这样的配置,使得当进行写处理以从该输入/输出装置向该存储器传输数据时,该写数据发送部件通过该写数据信号线而发送该写数据,所述写数据是通过将存储于该写数据缓冲器中的该接收数据分成存储器存取大小而形成的。
此外,可进行这样的配置,使得该控制信息表在请求和存储位置信息(其中存储有与写数据缓冲器中的请求对应的写数据)之间建立对应关系,并对其进行管理,当向该存储器总线发送该数据时,该控制部件利用序列ID作为指针来读出写入到该控制信息表的条目处的、所述写数据缓冲器中的该存储位置信息,并根据该存储位置信息而从该写数据缓冲器提取该写数据。
此外,可进行这样的配置,使得当进行从该存储器向该输入/输出装置的读处理时,在存储于该读数据缓冲器中的多个读数据的总数据量满足发送包大小的条件时,该输入/输出发送缓冲器存储处理部件读出存储于该读数据缓冲器的读数据,将该数据作为该发送数据,并与该发送数据的发送地址一起存储于该输入/输出发送缓冲器中。
此外,可进行这样的配置,使得该控制信息表在至少与该请求相关的序列ID和关于读数据(其对应于读数据缓冲器中的请求)的存储位置的存储位置信息之间建立对应关系,并对其进行管理,当从该存储器总线接收该读数据时,该控制部件利用该序列ID作为该指针来读出写入到该控制信息表的条目处的、所述读数据缓冲器中的该存储位置信息,并根据该存储位置信息而将该读数据存储到该读数据缓冲器中。
此外,可进行这样的配置,使得该控制信息表在同一字段中存储所述读数据缓冲器的该存储位置信息和所述写数据缓冲器的该存储位置信息,并且存储用于依据请求从写处理中辨别读处理的识别信息。
如上所述,根据本发明,将至少获得一项下述的效果和优点(1)增强了数据传输的性能;(2)获得了对存储器总线和输入/输出总线的协议都适合的配置;(3)即使执行虚拟信道功能时,也可实现包的过载控制;(4)在存储器总线中可进行读数据的无序执行。


图1示意性地示出了作为本发明第一实施例的总线桥(数据传输装置)的结构;图2示意性地示出了配备有总线桥的信息处理装置的结构;图3是说明在作为本发明第一实施例的总线桥中传输写数据时的处理的顺序图;图4是说明在作为本发明第一实施例的总线桥中传输读数据时的处理的顺序图;图5示意性地示出了作为本发明第二实施例的总线桥的结构;
图6示出了根据本发明第二实施例的总线桥中的控制信息表的结构的实例;图7示出了在作为本发明第二实施例的总线桥中传输读数据时的数据流;图8示出了作为本发明第三实施例的总线桥中的控制信息表的结构的实例;图9示出了在作为本发明第二实施例的总线桥中传输写数据时的数据流;图10是说明在作为本发明第三实施例的总线桥中传输写数据时的处理的顺序图;图11示意性地示出了作为本发明第四实施例的总线桥的结构;图12示出了作为本发明第四实施例的总线桥中的控制信息表的结构的实例;图13示出了在根据本发明第四实施例的总线桥中传输读数据和写数据时的数据流;图14示意性地示出了传统总线桥的结构;以及图15示意性地示出了配备有传统总线桥的信息处理装置的结构。
具体实施例方式
下面,将说明本发明的实施例。
(A)第一实施例的说明图1示意性地示出了作为本发明第一实施例的总线桥(数据传输装置)的结构;而图2示意性地示出了配备有总线桥的信息处理装置的结构。
如图2所示,信息处理装置1包括CPU(中央处理单元)21-1和21-2、系统控制器23-1和23-2、存储器22-1、22-2、22-3和22-4、纵横交换器24、I/O装置25以及总线桥10a-1和10a-2。
CPU 21-1和21-2运行OS(操作系统)和应用程序,从而实现各种操作处理。
系统控制器23-1和23-2用于管理CPU 21-1和21-2、存储器22-1到22-4、I/O装置25等间的数据发送和接收。将系统控制器23-1连接到CPU 21-1、存储器22-1和22-2以及纵横交换器24,以便能够在其间通信,并进行这种方式的配置,使其管理CPU 21-1、存储器22-1和22-2以及纵横交换器24之间的数据发送和接收。
同样,将系统控制器23-2连接到CPU 21-2、存储器22-3和22-4以及纵横交换器24,以便能够在其间通信,并进行这种方式的配置,使其管理CPU21-2、存储器22-3和22-4以及纵横交换器24之间的数据发送和接收。
存储器22-1到22-4用于存储当CPU 21-1和21-2执行操作时所使用的数据、指令等。后面,对于表示存储器的参考标号,当需要指定多个存储器中的一个存储器时,使用参考标号22-1到22-4。然而,当指定任一存储器时,使用参考标号22。
纵横交换器24用于当在CPU 21-1和21-2、存储器22-1到22-4等之间发送和接收数据时,动态地选择数据的发送路径(地址和目标数据)。在图2所示的实例中,纵横交换器24连接到系统控制器23-1和23-2,以便能够在其间通信,并且通过存储器总线30而分别连接到总线桥10a-1和10a-2,以便能够在其间通信。
I/O(输入/输出)装置25是安装到例如硬盘、扫描仪等的信息处理装置1上的各种电子装置,并通过I/O总线(输入/输出总线)31分别连接到总线桥10a-1和10a-2,以便能够在其间通信。
如图1所示,存储器总线30包括读数据信号线30a、写数据信号线36b以及请求信号线30c;并通过纵横交换器24将总线桥10a-1和10a-2连接到存储器22,以便能够彼此通信。进行这样的配置,使得分别在读数据信号线30a中接收读数据、在写数据信号线30b中发送写数据并在请求信号线30c中发送作为包(包格式)的请求(地址)。后面将会给出关于请求、写数据和读数据的说明。
在本实施例中,进行这样的配置,使得在未收到来自存储器22的任何响应的情况下,分别从总线桥10a-1和10a-2连续发送八次请求;并且,将读数据和写数据的一个包的数据长度(存储器存取大小)固定为128字节。
I/O总线31连接I/O装置25和总线桥10a-1和10a-2,以便能够彼此通信,并且包括I/O接收信号线(接收信号线)31a和I/O发送信号线(发送信号线)31b。I/O接收信号线(接收信号线)31a用于从I/O装置25接收接收数据(reception data)。I/O发送信号线(发送信号线)31b用于向I/O装置25发送发送数据(transmission data)。进行这样的配置,使得将物理上两条不同的信号线用于接收和发送数据。此处,进行这样的配置,使得实现全双工的发送和接收。
此外,对I/O发送信号线31b进行这样的配置,使其将数据作为包含发送数据和发送数据的发送地址的包而发送。对I/O接收信号线31a进行这样的配置,使其将接收数据作为包含接收数据和接收数据的接收地址的包而接收。此外,通过I/O接收信号线31a和I/O发送信号线31b发送和接收的接收数据和发送数据的包的数据长度是可变的长度,且最大值为4K字节。
将总线桥10a-1和10a-2设置于I/O装置25和纵横交换器24之间的I/O总线31和存储器总线30之间,并且进行这样的配置,使得在I/O总线31和存储器总线30之间传输数据,其中I/O总线31和存储器总线30具有彼此不同的协议,例如时将要传输的数据的钟频率和数据长度等。
随后,在第一实施例中,对于用于表示总线桥的参考标号,当指定多个总线桥之一时,使用参考标号10a-1和10a-2;而当要表示任一总线桥时,则使用参考标号10a。
如图1所示,第一实施例的总线桥10a包括读数据缓冲器12、写数据缓冲器13、I/O发送缓冲器(输入/输出发送缓冲器)14、I/O接收缓冲器(输入/输出接收缓冲器)15、控制部件16、控制信息表11a、接收数据处理部件(写数据缓冲器存储处理部件)17、I/O发送缓冲器存储处理部件(输入/输出发送缓冲器存储处理部件)18、总线19a、19b、19c和19d、读数据缓冲器存储处理部件33以及写数据发送部件34。
I/O接收缓冲器(输入/输出接收缓冲器)15临时存储从I/O装置25接收的数据。将I/O接收信号线31a和总线19a连接到I/O接收缓冲器15,以便能够彼此通信;并且进行这样的配置,使得在I/O接收缓冲器15中存储从I/O装置25接收的I/O接收数据(接收数据)。在I/O接收缓冲器15中,进行这样的配置,使得以FIFO(先进先出)的方式存储和读出I/O接收数据。
此外,在第一实施例的总线桥10a中,进行这样的配置,使得实现虚拟信道功能,其中,将物理上的一条I/O总线31处理为假设其虚拟连接有多条信道。为实现虚拟信道功能,为各虚拟信道设置关于I/O接收缓冲器15的读和写的指针。
接收数据处理部件17从I/O总线31接收数据,并且处理存储于I/O接收缓冲器15中的包。特别的,对接收数据处理部件17进行这种方式的设置,使其提取写入I/O接收缓冲器15的包、判断提取的包是读请求还是写请求、将接收的包的报头分成存储器存取的大小(在本实施例中为128字节)以及向控制部件16传输必要的信息(控制信息)以在控制信息表11a中存储数据。
此外,接收数据处理部件(写数据缓冲器存储处理部件)17将存储于I/O接收缓冲器15中的I/O接收数据存储到写数据缓冲器13中。对接收数据处理部件17进行这种方式的配置,使其当执行将写数据发送到存储器总线30的写处理(写交易)时,从I/O接收缓冲器15读出I/O接收数据、将I/O接收数据分为报头部分和报头部分以外的数据部分以及将数据部分写入写数据缓冲器13中,直到写数据缓冲器13为满状态或I/O接收缓冲器15为空状态。
写数据缓冲器13存储将通过写数据信号线30b而发送的写数据,以将数据写入存储器22中。写数据缓冲器13连接到写数据信号线30b和总线19a,以便能够彼此通信,并且进行这样的配置,使得由接收数据处理部件17存储写数据。
对写数据发送部件34进行这样的配置,使得针对从控制部件16发向存储器总线30的写数据发送请求(后面将作出详细说明),允许从存储器总线30发送写数据(其后将会详述)时,产生均为一个包的数据大小的128字节的写数据,并通过存储器总线30b发送产生的写数据。
读数据缓冲器12存储通过读数据信号线30a从存储器22接收的读数据。对读数据缓冲器12进行这样的配置,使得当控制部件16发送后面将说明的读请求时,预先确保对应于待接收的读数据长度的区域,并作为对读请求的响应,在确保的区域中存储从存储器22接收的读数据。从而,能够防止发生由读数据引起的读数据缓冲器12的溢出。
对读数据缓冲器12进行这样的配置,使得在控制信息表11a中存储指向相应于发送的读请求而确保的区域的指针。
读数据缓冲器存储处理部件33将通过读数据信号线30a从存储器22接收的读数据存储于读数据缓冲器12中。对读数据缓冲器存储处理部件33进行这种方式的配置,使其查询控制信息表11a以获取指向读数据缓冲器12中的接收的读数据的存储位置的指针,并将接收的读数据存储于该存储位置中。
I/O发送缓冲器存储处理部件(输入/输出发送缓冲器存储处理部件)18读出存储于读数据缓冲器12中的读数据,并将该数据作为发送数据,与关于该发送数据的报头(发送地址)一起存储于I/O发送缓冲器14中。
对I/O发送缓冲器存储处理部件18用于当在读数据缓冲器12中存储了达到通过I/O总线31发送的一个包的容量(发送包大小的条件)的读数据时,即,当满足发送包大小的条件时,读出存储于读数据缓冲器12中的一个包的读数据,并将该数据作为发送数据,与该发送数据的发送地址一起存储于I/O发送缓冲器14中。
I/O发送缓冲器(输入/输出发送缓冲器)14存储通过I/O发送信号线31b发向I/O装置25的发送数据。对I/O发送缓冲器14进行这样的配置,使其以FIFO的方式存储和读取读数据。此外,将I/O发送缓冲器14连接到I/O发送信号线31b和总线19c,以便能够彼此通信。
总线19a连接在I/O接收缓冲器15和写数据缓冲器13之间,以便使其能够彼此通信。总线19b连接I/O接收缓冲器15和控制信息表11a,以便使其能够彼此通信。总线19c连接读数据缓冲器12和I/O发送缓冲器14,以便使其能够彼此通信。并且总线19d连接控制信息表11a和I/O发送缓冲器14,以便使其能够彼此通信。
控制信息表11a具有八个条目(字段),并且管理发送到存储器总线30的请求。对控制信息表11a的这些条目进行这样的配置,使得当从控制部件16向存储器总线30发送请求时,控制部件16登记控制信息;并且,当完成了通过存储器总线30的数据传输时,控制部件16删除该控制信息。
此处,存储于控制信息表11a的条目中的控制信息例如包括,指向作为对发送的读请求的响应而由读数据缓冲器12确保的区域的指针。
控制部件16根据控制信息表11a,执行存取控制,以便控制通过写数据发送部件34和读数据缓冲器存储处理部件33对存储器22(存储器总线30)的存取。特别的,控制部件16向存储器总线30发送例如读请求和写请求的请求(地址)。
将按照图3中所示的顺序说明在传输写数据时,在作为根据上述内容构建的本发明的第一实施例的总线桥10a中的处理。
在总线桥10a中,当通过I/O总线31(I/O接收信号线31a)将从I/O装置25发送的I/O接收数据(接收数据,写数据)的包发送到总线桥10a时(参考图3中的箭头A10),从I/O总线31接收的包被写入I/O接收缓冲器15。
然后,接收数据处理部件17从I/O接收缓冲器15中提取写入I/O接收缓冲器15的包,并且当提取的包是写数据时,提取报头并将数据分成128字节,并且控制部件16在控制信息表中登记必要的信息(控制信息)。
此外,接收数据处理部件17将写入I/O接收缓冲器15的包的数据部分写入写数据缓冲器13。
进行这样的配置,使得当实现虚拟信道功能时,在I/O接收缓冲器15中为各虚拟信道准备读指针和写指针,并首先处理具有较高优先级的包。
控制部件16根据均被分为128字节的报头信息创建写请求,并将数据发送到存储器总线30(参考图3中的箭头A20)。当作为对这些写请求的响应而从存储器22(存储器总线30)发送数据发送许可包时(参考图3中的箭头A30),将表示I/O接收缓冲器15的可用空间的信用量(credit)从总线桥10a发送到I/O装置25(参考图3中的箭头A40),并且写数据发送部件34通过写数据信号线30b将写数据发送到存储器22(参考图3中的箭头A50)。
然后,每当从存储器22(存储器总线30)发送数据发送许可包时(参考图3中的箭头A60),写数据发送部件34就将写数据发送到存储器22(参考图3中的箭头A70)。
下面,将按照图4所示的顺序说明在传输读数据时,作为本发明的第一实施例的总线桥10a中的处理。当通过I/O总线31(I/O接收信号线31a)将从I/O装置25发送的I/O接收数据(接收数据,读请求)的包发送到总线桥10a时(参考图4中的箭头B10),在总线桥10a中,从I/O总线31接收的包被写入I/O接收缓冲器15。
接收数据处理部件17从I/O接收缓冲器15中提取写入I/O接收缓冲器15的包。当提取的包是读请求时,接收数据处理部件17提取其报头,并分别将其分成128字节,并且向控制信息表登记控制部件16所需的信息。
当实现虚拟信道功能时,进行这样的设置,使得在I/O接收缓冲器15中为各虚拟信道准备读指针和写指针;并首先处理具有较高优先级的包。
控制部件16根据分成128字节的报头信息创建读请求,并向存储器总线30发送请求(参考图4中的箭头B20)。此外,将表示I/O接收缓冲器15的空状态的信用量从总线桥10a发送到I/O装置26(参考图4中的箭头B30)。作为对读请求的响应,从存储器22(存储器总线30)发送读数据(参考图4中的箭头B40),并且读数据缓冲器存储处理部件33将通过存储器总线30a接收的读数据存入读数据缓冲器12。
当读数据缓冲器12中达到了I/O总线31中的一个包的读数据时,I/O发送缓冲器存储处理部件18从读数据缓冲器12中提取读数据,并将数据写入I/O发送缓冲器14。
当信用量允许发送读数据时(参考图4中的箭头B50),I/O发送缓冲器14向I/O总线31发送读数据包(I/O发送信号线31b)(参考图4中的箭头B60)。
如上所述,根据本发明第一实施例的总线桥10a包括读数据缓冲器12、写数据缓冲器13、I/O发送缓冲器14以及I/O接收缓冲器15。因而,存储器总线30和I/O总线31分别具有专用的缓冲器,从而可采用适合于存储器总线30和I/O总线31的两种协议的缓冲器大小和指针控制方法。
此外,即使当存储器总线30和I/O总线31中的任一个的协议等发生改变时,读数据缓冲器12、写数据缓冲器13、I/O发送缓冲器14和I/O接收缓冲器15中只有一个需要改变用以能够处理改变的协议。从而,该结构具有灵活性、通用性和良好的经济效果。
此外,当实现虚拟信道功能时,总线桥10a能够进行包的过载控制。
此外,存储器总线30包括请求信号线30c、写数据信号线30b以及读数据信号线30a,并且通过这些信号线,以各个包的格式执行数据的发送和接收。从而,当将本发明的总线桥10a应用到具有用于控制CPU21-1和21-2以及存储器22的多个系统控制器23-1和23-2的大规模系统中时,在从控制部件16发送请求之后并从数据的目的端接收通知之后,向系统控制器23-1和23-2发送实际将被处理的数据,从而提高了数据传输的性能。
(B)第二实施例的说明图5示意性地示出了作为本发明第二实施例的总线桥10b的结构。图6示出了作为本发明第二实施例的总线桥10b中的控制信息表的结构的实例。
与第一实施例的总线桥10a的情况相同,在信息处理装置1的I/O装置25和纵横交换器24之间(参考图2),将作为第二实施例的总线桥10b(10b-1和10b-2)设置于I/O总线31和存储器总线30之间。对总线桥10b进行这种方式的配置,使其在I/O总线31和存储器总线30之间执行传输数据,其中I/O总线31和存储器总线30具有彼此不同的协议例如在其间将要传输的数据的时钟频率和数据长度等。
后面,在第二实施例中,对于用于表示总线桥的参考标号,当需要指定多个总线桥之一时,使用参考标号10b-1和10b-2;而当要表示任一总线桥时,则使用参考标号10b。
如图5所示,第二实施例的总线桥10b包括第一实施例的总线桥10a中的控制信息表11b,并且其其他部分以与第一实施例的总线桥10a相同的方式构建。在图中,与上述的参考标号相同的参考标号表示相同或实质上相同的部分;从而略去其详细说明。
在第二实施例的总线桥10b中,进行这样的配置,使得为控制部件16发送的、正在执行的读请求(最多八个)中的每一个读请求分别设置唯一的序列ID,并通过这些序列ID管理每个读请求。
此外,在第二实施例的总线桥10b中,从存储器总线30接收到的读数据在其包的报头部分中也具有上述的序列ID。此外,在第二实施例的总线桥10b中,来自于存储器总线30的读数据并不总是按照从控制部件16发送请求的顺序到达。但是进行这样的配置,使得通过存储器总线30顺序地接收由CPU 21或存储器总线30已完成处理的数据(无序执行),并且读数据缓冲器存储处理部件33在根据序列ID参考控制信息表11b时,在读数据缓冲器12中的预定位置存储从存储器总线30接收的读数据。
如图6所示,在八个条目的每一个条目中,控制表11b都由作为控制信息且彼此对应产生的序列ID、存储器地址和读数据缓冲器指针值(RD缓冲器指针值;存储位置信息)构成。换句话说,控制信息表11b至少管理彼此对应产生的、与请求相关的序列ID和关于读数据缓冲器12中与请求相关的读数据的存储位置的存储位置信息。
读数据缓冲器指针值是表示当控制部件16向存储器总线30发送读请求时,指向预先确保用以存储相应于读请求接收的读数据的区域的指针值。对读数据缓冲器12的写指针进行这种方式的配置,使其不仅以递增的方式运行,而且控制处理随机值,从而能够进行无序执行。
对读数据缓冲器存储处理部件33进行这种方式的配置,使得当接收读数据时,利用附着于读数据的序列ID查询控制信息表11b,以便从对应于序列ID的条目中读取读数据缓冲器12的指针值,并确定读数据的存储位置。
换句话说,对第二实施例的总线桥10b进行这样的配置,使得利用与每个条目相关的序列ID指定控制表11b中的每个条目。在图5所示的实例中,为构成控制表11b的八个条目分别分配自然数1-8表示的序列ID。
根据序列ID确定在控制表11b中使用的条目。
此外,对第二实施例的总线桥10b也进行这样的配置,使得当在读数据缓冲器12中已经接收到一个包的读数据时,I/O发送缓冲器存储处理部件18将该数据传送到I/O发送缓冲器14。
图7示出了当在作为本发明的第二实施例的总线桥10b中传输读数据时的数据流。
在第二实施例的总线桥10b中,将从I/O总线31接收的包写入I/O接收缓冲器15;并且接收数据处理部件17提取写入I/O接收缓冲器15的包。此处,当提取的包是读请求时,接收数据处理部件17将报头分别分成128字节,并实现对读数据的数据长度的累积计数。
根据接收数据处理部件17的累积计数,控制部件16在控制信息表11b中登记按照读数据长度预先确保的存储区域中的读数据缓冲器12的指针值,以及作为由序列ID表示的条目中的控制信息的其他必要信息。
控制部件16根据分别分成128字节的报头信息和序列ID创建读请求(请求),并向存储器总线30发送请求。在第二实施例的总线桥10b中,读请求包括存储器地址和序列ID;而且,在作为对读请求的响应而从存储器总线30接收的读数据中,将包含于读请求的序列ID附着于报头。
当从存储器总线30接收读数据时,读数据缓冲器存储处理部件33将读数据分为报头部分和数据部分,并从报头部分获取序列ID。读数据缓冲器存储处理部件33根据序列ID查询控制信息表11b,并获取由序列ID表示的条目的读数据缓冲器的指针值(存储位置信息)。
此外,读数据缓冲器存储处理部件33利用获得的读数据缓冲器指针值作为写指针,将读数据写入读数据缓冲器12中由指针值指向的位置中。
当在读数据缓冲器12中接收到达到经由I/O总线31发送的一个包的容量(发送包大小的条件)的读数据时,I/O发送缓冲器存储处理部件18读取存储于读数据缓冲器12中的一个包的读数据,并将该数据作为发送数据,与该发送数据的发送地址一起存储于I/O发送缓冲器14中。
然后,当信用量允许发送读数据时,第二实施例的总线桥10b就向I/O总线31发送读数据的包。
如上所述,根据作为本发明第二实施例的总线桥10b,可获得与上述的第一实施例相同的工作效果。此外,还可获得下面的效果。即,将序列ID附着于从控制部件16发送的读请求,并且控制信息表11b管理彼此对应产生的序列ID(其与请求相关)和关于读数据缓冲器12中与请求对应的读数据的存储位置的存储位置信息。从而,即使未按照读请求的顺序(无序)从存储器总线30接收读数据时,读数据缓冲器存储处理部件33也能够根据附着于接收的读数据的序列ID而查询控制信息表11b,以获得读数据的存储位置。从而,在读数据缓冲器12中,可按照从I/O总线31接收到的读请求的顺序存储读数据。
换句话说,在第二实施例的总线桥10b中,可在存储器总线30中实现读数据的无序执行。
此外,根据各序列ID在控制信息表11b中存储读数据缓冲器12的指针值。从而,能够在读数据缓冲器12中以正确的顺序存储数据,而无需依据从存储器总线30接收到读数据的顺序。
而且,消除了通过存储器总线30传输的读数据的顺序依赖性。从而,消除了由读数据信号线30a的顺序限制而引起的等待状态。因此,增强了存储器总线30的有效吞吐量。
(C)第三实施例的说明图8示出了作为本发明第三实施例的总线桥10c中的控制信息表的结构的实例。
与第一实施例的总线桥10a的方式相同,在信息处理装置1的I/O装置25和纵横交换器24之间(参考图2),作为本发明第三实施例的总线桥10c(10c-1、10c-2)设置于I/O总线31和存储器总线30之间;并进行这种方式的配置,使得在I/O总线31和存储器总线30之间实现数据传输,其中I/O总线31和存储器总线30具有彼此不同的协议,例如在其间将要传输的数据的时钟频率和数据长度等。
第三实施例的总线桥10c包括控制信息表11c,其代替了第二实施例(参考图5)的总线桥的控制信息表11b。其他的部分则以与第二实施例的总线桥10b相同的方式配置。
后面,在第三实施例中,对于用于表示总线桥的参考标号,当需要指定多个总线桥之一时,使用参考标号10c-1和10c-2;而当要指定任一总线桥时,则使用参考标号10c。
在第三实施例的总线桥10c中,对写数据缓冲器13的读指针进行这种方式的配置,使其不仅以递增形式运行,而且被控制为处理随机值,从而可随机地从写数据缓冲器13提取数据;因而,可与来自存储器总线30的数据发送请求一致。
此外,在第三实施例的总线桥10c中,与第二实施例的总线桥10b中的读请求的方式相同,进行这样的配置,使得为正在执行的、由控制部件16发送的写请求(最多八个)分别分配唯一的序列ID;并利用序列ID管理每个请求。
在第三实施例的总线桥10c中,与第二实施例的总线桥10b中的读请求的方式相同,发送到存储器总线30的写数据在其报头部分也具有上述的序列ID。此外,对第三实施例的总线桥10c进行这样的配置,使得将从存储器总线30发送的数据发送许可和数据重发请求输入到控制部件16中。
如图8所示,控制表11c具有八个条目;每个条目由作为控制信息且彼此对应产生的序列ID、存储器地址和写数据缓冲器指针值(WD缓冲器指针值;存储位置信息)构成。换句话说,控制信息表11c至少管理彼此对应产生的、与请求互相关联的序列ID和关于写数据缓冲器13中与请求相对应的写数据的存储位置的存储位置信息。
写数据缓冲器指针值是接收数据处理部件17用于指定写数据缓冲器13中存储与写请求包相关的数据部分(写数据)的位置的信息(位置信息、指针值),其中从I/O总线30(I/O接收信号线31a)接收写请求包,并将其存储到I/O接收缓冲器15中;并且在当接收数据处理部件17在写数据缓冲器13中存储写数据时确定写数据缓冲器指针值。
在第三实施例的总线桥10c中,与第二实施例的控制信息表11b的方式相同,也对控制表11c的各个条目进行这种方式的配置,使其由与各个条目相关的序列ID指定。在图8所示的实例中,为构成控制表11b的八个条目中的每一个条目分配自然数1-8表示的序列ID。
并且对控制表11c进行这样的配置,使其利用序列ID确定待使用的条目。
此外,对第三实施例的总线桥1Oc进行这样的设置,使得对于从I/O总线30(I/O接收信号线31a)接收的且存储于I/O接收缓冲器15的写请求包,接收数据处理部件17将数据部分(写数据)存储在写数据缓冲器13中,并将写数据缓冲器13的存储位置(写数据缓冲器指针值)存储在控制信息表11c中。
对写数据发送部件34进行这种方式的配置,使其利用附着于写请求的序列ID查询控制信息表11c,从相应于序列ID的条目中读取写数据缓冲器13的指针值以确定写数据在写数据缓冲器13中的存储位置,并向存储器总线30(写数据信号线30b)发送存储于该存储位置的写数据。
图9示出了当在作为本发明第三实施例的总线桥10c中传输写数据时的数据流。
在第三实施例的总线桥10c中,将从I/O总线31接收的包写入I/O接收缓冲器15,并且接收数据处理部件17提取出写入I/O接收缓冲器15的包。此处,当提取出的包是写请求时,接收数据处理部件17将报头分别分成128字节,对读数据的数据长度进行累积计数,并在写数据缓冲器13中存储数据部分(写数据)。
控制部件16根据接收数据处理部件17所作的累积计数,在控制信息表11c中由序列ID表示的条目中登记表示写数据缓冲器13中写数据存储位置的指针值,以及作为控制信息的其他必要信息。
控制部件16根据分别分成128字节的报头信息和序列ID,创建写请求(请求)并向存储器总线30发送请求。在第三实施例的总线桥10c中,写请求包括存储器地址和序列ID。此外,作为对写请求的响应而从存储器总线30接收的数据发送许可以及数据重发请求分别将附着于写请求的序列ID附着于其报头。
例如,当向存储器总线30发送写数据时,控制部件16从存储器总线30接收的数据发送许可及数据重发请求中获取序列ID,并根据该序列ID查询控制信息表11c,并获取相应于该序列ID的写数据缓冲器指针值(存储位置)。
写数据发送部件34利用获取的写数据缓冲器指针值作为读指针,读取在写数据缓冲器13中由指针值指向的位置中存储的写数据,将写数据与报头合并,并将数据发送到存储器总线30(读数据信号线30a)。
将按照图10所示的顺序说明在按上述内容构建的、作为本发明第三实施例的总线桥10c中的写数据发送的处理。图10中所示的顺序图说明了通过第三实施例的总线桥10c和存储器22间的存储器总线30而执行的数据传输。
控制部件16根据分别分成128字节的报头信息来创建写请求,并将该请求发送到存储器总线30(参考图10中的箭头C10)。当作为对写请求的响应而从存储器22发出数据发送许可时(参考图10中的箭头C20),在控制信息表11c中,控制部件16从附着于数据发送许可的序列ID表示的条目中获取写数据缓冲器13的指针值。
写数据发送部件34利用指针值作为读指针,从写数据缓冲器13中读取写数据,并通过写数据信号线30b将写数据从总线桥10c发送到存储器22(参考图10中的箭头C30)。
当存储器22由于某些原因无法收到写数据时,存储器22向总线桥10c发出数据重发请求(参考图10中的箭头C40)。写数据发送部件34再一次从控制信息表11c中附着于数据重发请求的序列ID表示的条目中获取写数据缓冲器13的指针值。并且存储器22利用该指针值作为读指针,从写数据缓冲器13中读取写数据,并通过写数据信号线30b再一次将写数据从总线桥10c发送到存储器22(参考图10中的箭头C50)。
当存储器22已经成功地接收到正确的写数据时,存储器22向总线桥10c发送数据完成通知(参考图10中的箭头C60)。并且在总线桥10c中,根据数据传输完成通知,释放数据缓冲器13和控制信息表11c,并结束处理。
如上所述,根据作为本发明第三实施例的总线桥10c,可获得与上述的第一实施例相同的工作效果。此外,还可获得下面的效果。即,将序列ID附着于从控制部件16发送的写请求;并且控制信息表11c管理彼此对应产生的序列ID(其与请求相关)和关于写数据缓冲器13中与请求相对应的写数据的存储位置的存储位置信息。从而,例如,即使未能按照从控制部件16发出写请求的顺序从存储器总线30发送数据发送许可,也可通过发出数据重发请求,而使写数据发送部件34能够根据接收的数据发送许可和附着于数据重发请求的序列ID来查询控制信息表11c,以获取写数据的存储位置,该写数据能够从写数据缓冲器13读出并以来自存储器总线30的数据发送许可或数据重发请求的顺序从写数据缓冲器13发送。
换句话说,在第三实施例的总线桥10c中,可利用序列ID而随机地从写数据缓冲器13提取写数据,从而可利用序列ID在存储器总线30中实现重发功能和无序执行。
此外,在控制信息表11c中,请求(序列ID)和写数据彼此相应产生。从而,通过从控制信息表11c中删除条目,可防止写数据被读出。从而,当发生错误时,无需通过读出来删除数据。
(D)第四实施例的说明图11示意性地示出了作为本发明第四实施例的总线桥10d的结构。
与第一实施例的总线桥10a的方式相同,在信息处理装置1的I/O装置25和纵横交换器24之间(参考图2),作为本发明第四实施例的总线桥10d(10c-1、10c-2)设置于I/O总线31和存储器总线30之间。对总线桥10d进行这种方式的配置,使得在I/O总线31和存储器总线30之间进行数据传输,其中I/O总线31和存储器总线30具有彼此不同的协议,例如将要在其间传输的数据的时钟频率和数据长度等。
后面,在第四实施例中,对于用于表示总线桥的参考标号,当需要指定多个总线桥之一时,使用参考标号10d-1和10d-2;而当要指定任一总线桥时,则使用参考标号10d。
如图11所示,第四实施例的总线桥10d包括控制信息表10d,其代替了第一实施例中的总线桥10a的控制信息表11a。而总线桥10d的其它部分以与第一实施例的总线桥10a相同的结构配置。在图中,与上述的参考标号相同的参考标号表示相同或实质上相同的部分。从而,略去其详细说明。
控制信息表11d具有第二实施例中的总线桥10b的控制信息表11b和第三实施例中的总线桥10c的控制信息表11c的功能。
图12示出了作为本发明第四实施例的总线桥10d中的控制信息表11d的结构的实例。
如图12所示,控制信息表11d包括八个条目。每个条目包括作为控制信息且彼此相应产生的序列ID、存储器地址、写数据缓冲器指针值或读数据缓冲器指针值(WD/RD缓冲器指针值;存储位置信息)以及识别比特(识别信息)。
识别比特是用于辨别相关的交易是关于读请求(读处理)还是关于写请求(写处理)的识别信息。例如,将关于读请求的交易登记为“1”;而将关于写请求的交易登记为“0”。
换句话说,控制信息表11d至少管理与请求相关的序列ID,关于写数据缓冲器13中与请求相对应的写数据的存储位置的存储位置信息,或者关于读数据缓冲器12中与请求相对应的读数据的存储位置的存储位置信息,以及关联于其间的识别比特。
图13示出了当在作为本发明第四实施例的总线桥10d中传输读数据和写数据时的数据流。图13示出了在第二实施例的总线桥10b中传输读数据(参考图7)和在第三实施例的总线桥10c中传输写数据(参考图9)二者结合时的数据流。
在第四实施例的总线桥10d中,将从I/O总线31接收的包写入I/O接收缓冲器15;并且接收数据处理部件17提取写入I/O接收缓冲器的包。
此处,当提取的包是读请求时,接收数据处理部件17将报头分别分成128字节,并对读数据的数据长度执行累积计数。
根据接收数据处理部件17的累积计数,控制部件16在控制信息表11d中登记指向存储区域的指针值以及作为控制信息的其他必要信息,其中该存储区域是按照由控制信息表11d中的序列ID表示的条目中的读数据长度,在读数据缓冲器12中预先确保的;而且,在与序列ID关联的同时登记表示交易为读取的识别比特“1”。
另一方面,当提取的包为写请求时,接收数据处理部件17将报头分别分成128字节,对写数据的数据长度进行累积计数,并在写数据缓冲器13中存储数据部分(写数据)。
根据接收数据处理部件17的累积计数,控制部件16在控制信息表11d中由序列ID表示的条目中,登记指针值(其指向写数据缓冲器13中的写数据存储位置),以及作为控制信息的其他必要信息。此时,控制部件16按照序列ID登记表示交易是写入的识别比特“0”。
在作为本发明第四实施例的总线桥10d中,控制部件16从存储器总线30接收的读数据中或数据发送许可/数据重发请求的报头中获取序列ID,根据序列ID查询控制信息表11,并根据识别比特判断与序列ID相关的处理是关于读取的处理还是关于写入的处理。
当与序列ID相关的处理是关于读取的处理时,根据图7所示的流程执行处理。而当与序列ID相关的处理是关于写入的处理时,则根据图9所示的流程执行处理。
如上所述,根据作为本发明第四实施例的总线桥10d,可以获得与上述的第一到第三实施例相同的工作效果。此外,还可获得下面的工作效果。即,在读取和写入的交易中,可共用控制信息表11d;从而,能够减小电路规模、安装空间等。
(E)其它本发明并未限于上述实施例;而是可在本发明的精神的范围内进行各种修改。
例如,在上述各实施例中,各控制信息表11a、11b、11c和11d包括八个条目。然而,本发明并未限于此。控制信息表可以包括七个或更少、或者九个或更多的条目。
此外,在上述实施例中,提供了本发明的实施例的实例,其中包括有两个CPU 21-1和21-2、两个系统控制器23-1和23-2、四个存储器22-1到22-4以及四个I/O装置25的信息处理装置1设有总线桥10a、10b、10c和10d中的两个。然而,本发明并未限于上述内容。本发明可以包括上述数量以外的CPU 21、系统控制器23、存储器22、I/O装置25以及总线桥10a、10b、10c、10d。可在本发明的精神的范围内进行各种修改来实现本发明。
当公开了本发明的实施例时,本领域的技术人员能够实现并制造本发明。
本发明可应用于在彼此具有不同的协议的两条总线间的数据传输。
权利要求
1.一种数据传输装置,用于在存储器总线(30)和输入输出总线(31)之间传输数据,其中以这种方式连接该存储器总线(30),使其能够在与配备有请求信号线(30c)、写数据信号线(30b)和读数据信号线(30a)的存储器的通信中将请求、写数据和读数据分别作为包而进行传送,所述输入/输出总线(31)配备有发送信号线(31b)和接收信号线(31a),通过所述发送信号线(31b)和接收信号线(31a)分别将发送数据与接收数据作为包括发送数据和该发送数据的发送地址的包与包括接收数据和该接收数据的接收地址的包发送到输入/输出装置或者从该输入/输出装置接收,所述数据传输装置包括输入/输出接收缓冲器(15),其能够存储通过该接收信号线(31a)从该输入/输出装置接收的接收数据;输入/输出发送缓冲器(14),其能够存储通过该发送信号线(31b)发送到该输入/输出装置的发送数据;写数据缓冲器(13),其能够存储待通过该写数据信号线(30b)发送到该存储器的写数据;读数据缓冲器(12),其能够存储通过该读数据信号线(30a)从该存储器接收的读数据;控制信息表(11a、11b、11c、11d),其具有相应于对该存储器的存取而形成的多个条目;写数据缓冲器存储处理部件(17),其将存储于该输入/输出接收缓冲器(15)中的接收数据存储于该写数据缓冲器(13)中;写数据发送部件(34),其通过该写数据信号线(30b),将存储于该写数据缓冲器(13)中的接收数据作为写数据发送到该存储器;读数据缓冲器存储处理部件(33),其将从该存储器接收的读数据存储于该读数据缓冲器(12)中;输入/输出发送缓冲器存储处理部件(18),其读出存储于该读数据缓冲器(12)的读数据,并将该数据作为发送数据,与该发送数据的发送地址一起存储于该输入/输出发送缓冲器(14)中;以及控制部件(16),其根据该控制信息表(11a、11b、11c、11d)控制由该写数据发送部件(34)和该读数据缓冲器存储部件(33)对该存储器进行的存取。
2.如权利要求1所述的数据传输装置,其中,当进行写处理以从该输入/输出装置向该存储器传输数据时,该写数据发送部件(34)通过该写数据信号线(30b)发送写数据,所述写数据是通过将存储于该写数据缓冲器(13)中的接收数据分成存储器存取大小而形成的。
3.如权利要求2所述的数据处理装置,其中该控制信息表(11c)至少在与请求相关的序列ID和在该写数据缓冲器(13)中存储相应于该请求的写数据的存储位置信息之间建立对应关系,并对其进行管理,当向该存储器总线(30)发送数据时,该控制部件(16)利用该序列ID作为指针来读出写到该控制信息表的条目处的、所述写数据缓冲器(13)中的存储位置信息,并根据该存储位置信息从该写数据缓冲器(13)提取写数据。
4.如权利要求1到3中的任何一项所述的数据传输装置,其中当进行读处理以从该存储器向该输入/输出装置传输数据时,在存储于该读数据缓冲器(12)中的多个读数据的总数据量满足发送包大小的条件时,该输入/输出发送缓冲器存储处理部件(18)读出存储于该读数据缓冲器(12)的读数据,并将该数据作为发送数据,与该发送数据的发送地址一起存储于该输入/输出发送缓冲器(14)中。
5.如权利要求4所述的数据传输装置,其中该控制信息表(11b)至少在与请求相关的该序列ID和关于在该读数据缓冲器(12)中相应于该请求的读数据的存储位置的存储位置信息之间建立对应关系,并对其进行管理,当从该存储器总线(30)接收读数据时,该控制部件(16)利用该序列ID作为指针来读出写到该控制信息表的条目处的、所述读数据缓冲器(12)中的存储位置信息,并根据该存储位置信息将该读数据存储到该读数据缓冲器(12)中。
6.如权利要求5所述的数据传输装置,其中该控制信息表(11d)在同一字段中存储所述读数据缓冲器(12)的存储位置信息和所述写数据缓冲器(13)的存储位置信息,并且存储用于相应于该请求从写处理中辨别读处理的识别信息。
全文摘要
本发明提供一种数据传输装置,其包括输入/输出接收缓冲器(15)、输入/输出发送缓冲器(14)、写数据缓冲器(13)、读数据缓冲器(12)、控制信息表(11a)、写数据存储处理部件(17)、写数据发送部件(34)、读数据缓冲器存储处理部件(33)、输入/输出发送缓冲器存储处理部件(18)以及控制部件(16),其中该控制部件(16)根据控制信息表(11)执行用于控制由写数据发送部件(34)和读数据缓冲器存储处理部件(33)对存储器进行的存取的存取控制;从而,获得了对于存储器总线和输入/输出总线的协议都最优化的配置,并能够实现无序执行。
文档编号G06F13/38GK1834947SQ20051009198
公开日2006年9月20日 申请日期2005年8月15日 优先权日2005年3月17日
发明者稻垣淳一, 小薮正夫, 对木润, 藏本昌宏 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1