用于控制对具有存储器集线器体系结构的存储模块的存储器存取的方法和系统转让专利

申请号 : CN03824860.3

文献号 : CN100580639C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 约瑟夫·M·杰迪洛特里·R·李

申请人 : 米克伦技术公司

摘要 :

一种计算机系统,包括一个被耦合至多个存储模块的存储器集线器控制器。该存储器集线器控制器包括一个存储器请求队列,该存储器请求队列将存储器请求和相应的请求标识符耦合至存储模块。每个存储模块基于存储器请求存取存储器设备并且当相应的存储器请求被处理时,从请求标识符产生响应状态信号。将这些响应状态信号伴随或独立于任何的读数据从存储模块耦合至存储器集线器控制器。该存储器集线器控制器使用响应状态信号来控制将存储器请求耦合至存储模块,并且因此控制在每个存储模块中的未处理的存储器请求的数目。

权利要求 :

1、一种存储模块,包括:

多个存储器设备;以及

一个存储器集线器,包括:

一个存储器请求队列,用于存储至少一个通过输入端口接收 的存储器请求,将该存储器请求队列耦合至所述存储器设备来把存储 在该存储器请求队列中的每个存储器请求传送到所述存储器设备,该 存储器请求队列用于输出用于标识传送到所述存储器设备的每个读 存储器请求的各自的读释放信号,并输出用于标识传送到所述存储器 设备的每个写存储器请求的各自的写释放信号;

一个流控制单元,该流控制单元被耦合至所述存储器请求队 列,该流控制单元用于从所述存储器请求队列接收所述读释放信号和 所述写释放信号,该流控制单元用于输出与所述释放信号相对应的状 态信号;

一个存储器读队列,该存储器读队列被耦合至所述存储器设 备,该存储器读队列从所述存储器设备接收读数据并且存储用于耦合 至输出端口的该读数据;

一个存储器写队列,该存储器写队列被耦合到所述存储器请 求队列,该存储器写队列用于接收一个信号,该信号指示已经将每个 写存储器请求从该存储器请求队列耦合至所述存储器设备,该存储器 写队列还存储用于指示写请求已经被传送到所述存储器设备的信号; 以及一个响应发生器,该响应发生器被耦合至所述流控制单元、 所述存储器读队列和所述存储器写队列,该响应发生器用于产生和从 输出端口传送读响应,每个读响应包含来自所述读数据队列的读数据 以及与来自所述流控制单元的状态信号相对应的读状态信号,该响应 发生器还用于从所述输出端口传送写响应,每个写响应包含与来自所 述流控制单元的状态信号相对应的写状态信号。

2、如权利要求1所述的存储模块,其中,所述存储器设备包括 各自的动态随机存取存储器设备。

3、如权利要求1所述的存储模块,其中,所述存储器集线器中 的存储器请求队列的输入端口和所述存储器集线器中的响应发生器 的输出端口分别包括光学输入和输出端口。

4、如权利要求1所述的存储模块,其中,所述存储器请求队列 用于同时存储读存储器请求和写存储器请求二者。

5、如权利要求1所述的存储模块,其中,将所述读释放信号耦 合至所述流控制单元来响应所述存储器请求队列传送每个读请求到 存储器设备,并且其中,将所述写释放信号耦合至所述流控制单元来 响应所述存储器请求队列传送每个写请求到所述存储器设备。

6、如权利要求5所述的存储模块,其中,所述流控制单元用于 输出与每个读释放信号相对应的读状态信号,每个读状态信号唯一地 标识各自的读请求,并且其中,所述流控制单元用于输出与每个写释 放信号相对应的写状态信号,每个写状态信号唯一地标识各自的写请 求。

7、如权利要求1所述的存储模块,其中,所述响应发生器用于 产生和从输出端口传送写响应信号,该写响应信号包含所述写状态信 号,或者包含所述读数据和所述写状态信号的组合。

8、如权利要求1所述的存储模块,其中,所述响应发生器用于 产生和从输出端口传送读响应信号,该读响应信号包含所述读数据以 及所述读状态信号,或者包含读数据、所述读状态信号以及所述写状 态信号。

9、如权利要求8所述的存储模块,其中,所述响应发生器还用 于产生和从输出端口传送写响应信号,该写响应信号包含没有所述读 数据的所述写状态信号。

10、一种存储器集线器控制器,包括:

一个存储器请求队列,用于存储至少一个通过输入端口接收的存 储器请求,该存储器请求队列用于响应于流控制信号,从输出端口发 出存储在该存储器请求队列中的每个存储器请求;

一个响应队列,该响应队列用于通过输入端口接收读响应,该读 响应包含每个读数据和读状态信号,该读状态信号用于标识与所述读 数据相对应的读请求,该响应队列还用于通过所述输入端口接收写响 应,每个写响应用于标识已经被处理的写请求,该响应队列用于至少 将来自每个读响应信号的读数据耦合至数据输出端口以及将来自每 个读响应的读状态信号和来自每个写响应的写状态信号耦合至流控 制端口;以及一个流控制单元,该流控制单元被耦合到所述响应队列,该流控 制单元用于从所述响应队列接收所述读状态信号和所述写状态信号, 该流控制单元用于根据所述状态信号,确定由所述存储器请求队列发 出的未处理的存储器请求的数目,并且产生流控制信号并将其耦合至 该存储器请求队列,该流控制信号根据由该存储器请求队列发出的未 处理的存储器请求的数目,指示另外的存储器请求可以被发送到每个 存储模块。

11、如权利要求10所述的存储器集线器控制器,其中,所述存 储器请求队列还用于从所述输出端口发出伴随每个存储器请求的请 求标识,该请求标识唯一地标识所述各自的存储器请求。

12、如权利要求11所述的存储器集线器控制器,其中,所述流 控制单元用于产生每个存储器请求的请求标识并将其耦合至所述存 储器请求队列,并且其中,所述流控制单元还用于,基于被耦合至所 述存储器请求队列的请求标识和从所述响应队列接收的读状态信号 与写状态信号之间的比较,来产生所述流控制信号。

13、如权利要求11所述的存储器集线器控制器,其中,所述存 储器请求队列的输出端口和所述响应队列的输入端口分别包括光学 输出和输入端口。

14、如权利要求11所述的存储器集线器控制器,其中,所述存 储器请求队列用于同时存储读存储器请求和写存储器请求二者。

15、一种存储系统,包括:

多个存储模块,每个存储模块包括:

多个存储器设备;

一个存储器请求队列,用于存储至少一个通过输入端口接收 的存储器请求,将该存储器请求队列耦合至所述存储器设备来把存储 在该存储器请求队列中的每个存储器请求传送到所述存储器设备,该 存储器请求队列用于输出用于标识传送到所述存储器设备的每个读 存储器请求的各自的读释放信号,并且输出用于标识传送到所述存储 器设备的每个写存储器请求的各自的写释放信号;

一个流控制单元,该流控制单元被耦合至所述存储器请求队 列,该流控制单元用于从所述存储器请求队列接收所述读释放信号和 所述写释放信号,该流控制单元用于输出与所述读释放和写释放信号 相对应的状态信号;

一个存储器读队列,该存储器读队列被耦合至所述存储器设 备,该存储器读队列从所述存储器设备接收读数据并且存储用于耦合 至输出端口的该读数据;

一个存储器写队列,该存储器写队列被耦合所述存储器请求 队列,该存储器写队列用于接收指示已经将每个写存储器请求从该存 储器请求队列耦合至所述存储器设备的信号,该存储器写队列还存储 用于耦合至输出端口的信号;以及一个响应发生器,该响应发生器被耦合至所述流控制单元、 所述存储器读队列和所述存储器写队列,该响应发生器用于产生和从 输出端口传送读响应,每个读响应包含来自所述读数据队列的读数据 以及与来自所述流控制单元的状态信号相对应的读状态信号,该响应 发生器还用于从所述输出端口传送写响应,每个写响应包含与来自所 述流控制单元的状态信号相对应的写状态信号;以及一个存储器集线器控制器,包括:

一个存储器请求队列,用于存储至少一个通过输入端口接收 的存储器请求,将该存储器请求队列被耦合至每个存储模块的存储器 请求队列,以响应于流控制信号,将存储在该存储器请求队列中的每 个存储器请求传送到至少一个所述存储模块中;

一个响应队列,该响应队列被耦合至每个所述存储模块中的 响应发生器,该响应队列从所述存储模块中的响应发生器接收读响应 和写响应,该响应队列用于至少将来自每个读响应的读数据耦合至数 据输出端口,以及将来自每个读响应的读状态信号和来自每个写响应 的写状态信号耦合至流控制端口;以及一个流控制单元,该流控制单元被耦合到该响应队列,并用 于从所述存储器集线器控制器的响应队列接收读状态信号和写状态 信号,该流控制单元用于根据所述状态信号,确定在每个所述存储模 块中的未处理的存储器请求的数目,并产生流控制信号并将其耦合至 该存储器集线器控制器的存储器请求队列,该流控制信号指示根据在 每个所述存储模块中的未处理的存储器请求的数目,另外的存储器请 求可以被发送到每个存储模块。

16、如权利要求15所述的存储系统,其中,所述存储器设备包 括各自的动态随机存取存储器设备。

17、如权利要求15所述的存储系统,其中,所述存储器集线器 控制器中的存储器响应队列的输入端口和所述存储模块中的每个存 储器请求队列的输入端口包括各自的光学输入端口,并且其中,所述 存储器集线器控制器中的存储器请求队列的输出端口和所述存储模 块中的每个存储器响应发生器的输出端口包括各自的光学输出端口。

18、如权利要求15所述的存储系统,其中,在所述存储器集线 器控制器以及每个所述存储模块中的存储器请求队列用于同时存储 读存储器请求和写存储器请求二者。

19、如权利要求15所述的存储系统,其中,将所述读释放信号 耦合至每个存储模块中的流控制单元来响应所述存储模块中的存储 器请求队列传送每个读请求到该存储模块中的存储器设备,并且其 中,将所述写释放信号耦合至每个存储模块中的流控制单元来响应所 述存储模块中的存储器请求队列传送每个写请求到该存储模块中的 存储器设备。

20、如权利要求19所述的存储系统,其中,每个存储模块中的 流控制单元用于输出与每个读释放信号相对应的读状态信号,每个读 状态信号唯一地标识各自的读请求,并且其中,每个存储模块中的流 控制单元用于输出与每个写释放信号相对应的写状态信号,每个写状 态信号唯一地标识各自的写请求。

21、如权利要求19所述的存储系统,其中,每个存储模块中的 响应发生器用于产生和从输出端口传送写响应,该写响应包含所述写 状态信号,或者包含所述读数据和所述写状态信号的组合。

22、如权利要求15所述的存储系统,其中,每个存储模块中的 响应发生器用于产生和从输出端口传送读响应,该读响应包含读数据 以及所述读状态信号,或者包含读数据、所述读状态信号以及所述写 状态信号。

23、如权利要求22所述的存储系统,其中,所述响应发生器用 于产生和从输出端口传送写响应,该写响应包含没有读数据的写状态 信号。

24、如权利要求15所述的存储系统,其中,所述存储器集线器 控制器中的存储器请求队列还用于从输出端口发出伴随每个存储器 请求的请求标识,该请求标识唯一地标识各自的存储器请求。

25、如权利要求15所述的存储系统,其中,所述存储器集线器 控制器中的流控制单元用于产生和向所述存储器集线器控制器的存 储器请求队列发送每个存储器请求的请求标识。

26、如权利要求25所述的存储系统,其中,所述存储器集线器 控制器中的流控制单元还用于基于被耦合至所述存储器集线器控制 器的存储器请求队列的请求标识和从所述响应队列接收到的读状态 信号与写状态信号之间的比较,来产生所述流控制信号。

27、一种存储系统,包括:

一个存储器集线器控制器;以及

多个存储模块,所述多个存储模块被耦合至所述存储器集线器控 制器,每个所述存储模块包括:多个存储器设备;以及

一个存储器集线器,该存储器集线器接收从所述存储器集线 器控制器输出的存储器请求,该存储器集线器存储所述收到的存储器 请求,并且将与所存储的存储器请求相对应的存储器请求信号耦合至 所述存储模块中的存储器设备,该存储器集线器用于从所述存储器设 备接收读数据并且将该读数据以及存储器请求状态信号耦合至所述 存储器集线器控制器,该存储器请求状态信号标识已经由被耦合至该 存储器集线器的存储器设备处理的所述存储器请求。

28、如权利要求27所述的存储系统,其中,存储在所述存储器 集线器控制器并且从所述存储器集线器控制器输出的存储器请求包 括读存储器请求和写存储器请求。

29、如权利要求27所述的存储系统,其中,所述存储器集线器 控制器包括存储器请求队列,该存储器请求队列存储所述存储器请求 并且从该存储器请求队列输出所述存储器请求。

30、如权利要求27所述的存储系统,其中,所述存储器集线器 控制器还用于与每个存储器请求一起输出请求标识符,该请求标识符 唯一地标识各自的存储器请求。

31、如权利要求30所述的存储系统,其中,所述存储器集线器 控制器用于从所述存储器请求队列输出所述存储器请求来响应流控 制信号,并且其中,所述存储器集线器控制器用于通过比较所接收的 存储器请求状态信号和所述请求标识符,来产生所述流控制信号。

32、如权利要求31所述的存储系统,其中,所述存储器集线器 用于根据从所述存储器集线器控制器接收到的请求标识符,来产生所 述存储器请求状态信号。

33、如权利要求32所述的存储系统,其中,所述存储器集线器 用于将所述读数据和所述存储器请求状态信号一起耦合至所述存储 器集线器控制器,该存储器请求状态信号指示读请求状态、写请求状 态以及读和写请求状态。

34、如权利要求27所述的存储系统,其中,所述存储器设备包 括动态随机存取存储器设备。

35、一种计算机系统,包括:

一个CPU;

一个系统控制器,该系统控制器被耦合至所述CPU,该系统控 制器具有输入端口和输出端口;

一个输入设备,该输入设备通过所述系统控制器被耦合至所述 CPU;

一个输出设备,该输出设备通过所述系统控制器被耦合至所述 CPU;

一个存储设备,该存储器设备通过所述系统控制器被耦合至所述 CPU;

一个存储器集线器控制器,其与所述CPU相连;以及

多个存储模块,所述存储模块被耦合至所述存储器集线器控制 器,每个所述存储模块包括:多个存储器设备;以及

一个存储器集线器,该存储器集线器被耦合到该存储器集线 器控制器,该存储器集线器接收从所述存储器集线器控制器输出的存 储器请求,该存储器集线器存储所接收的存储器请求,并且将与所存 储的存储器请求相对应的存储器请求信号耦合至所述存储模块中的 存储器设备,该存储器集线器用于从所述存储器设备接收读数据并且 将所述读数据与所述存储器请求状态信号一起耦合至所述存储器集 线器控制器,所述存储器请求状态信号标识已经由被耦合至该存储器 集线器的存储器设备处理的所述存储器请求。

36、如权利要求35所述的计算机系统,其中,存储在所述存储 器集线器控制器并且从该存储器集线器控制器输出的存储器请求包 括读存储器请求以及写存储器请求。

37、如权利要求35所述的计算机系统,其中,所述存储器集线 器控制器包括一个存储器请求队列,该存储器请求队列存储所述存储 器请求并且从所述存储器请求队列输出所述存储器请求。

38、如权利要求35所述的计算机系统,其中,所述存储器集线 器控制器还用于和每个存储器请求一起输出请求标识符,该请求标识 符唯一地标识各自的存储器请求。

39、如权利要求38所述的计算机系统,其中,所述存储器集线 器控制器用于从所述存储器请求队列输出所述存储器请求来响应流 控制信号,并且其中,所述存储器集线器控制器用于通过比较所接收 的存储器请求状态信号和所述请求标识符,来产生所述流控制信号。

40、如权利要求39所述的计算机系统,其中,所述存储器集线 器用于根据从所述存储器集线器控制器接收到的请求标识符,来产生 所述存储器请求状态信号。

41、如权利要求40所述的计算机系统,其中,所述存储器集线 器用于将所述读数据和所述存储器请求状态信号一起耦合至所述存 储器集线器控制器,所述存储器请求状态信号指示读请求状态、写请 求状态以及读和写请求状态。

42、如权利要求35所述的计算机系统,其中所述存储器设备包 括动态随机存取存储器设备。

43、一种计算机系统,包括:

一个CPU;

一个系统控制器,该系统控制器被耦合至所述CPU,该系统控 制器具有输入端口和输出端口;

一个输入设备,该输入设备通过所述系统控制器被耦合至所述 CPU;

一个输出设备,该输出设备通过所述系统控制器被耦合至所述 CPU;

一个存储设备,该存储器设备通过所述系统控制器被耦合至所述 CPU;

多个存储模块,每个存储模块包括:

多个存储器设备;

一个存储器请求队列,用于存储至少一个通过输入端口接收 到的存储器请求,将该存储器请求队列耦合至所述存储器设备,该存 储器请求队列用于把存储在该存储器请求队列中的每个存储器请求 传送到所述存储器设备,该存储器请求队列用于输出用于标识传送到 所述存储器设备的读存储器请求的各自的读释放信号,并输出用于标 识传送到所述存储器设备的写存储器请求的各自的写释放信号;

一个流控制单元,该流控制单元被耦合至所述存储器请求队 列,该流控制单元用于从所述存储器请求队列接收所述读释放信号和 所述写释放信号,该流控制单元用于输出与所述读释放和写释放信号 相对应的状态信号;

一个存储器读队列,该存储器读队列被耦合至所述存储器设 备,该存储器读队列从所述存储器设备接收读数据并且存储用于耦合 至输出端口的该读数据;

一个存储器写队列,该存储器写队列被耦合到该存储器请求 队列,该存储器写队列接收用于指示已经将每个写存储器请求从该存 储器请求队列耦合至所述存储器设备的信号,该存储器写队列存储用 于耦合至输出端口的信号;以及一个响应发生器,该响应发生器被耦合至所述流控制单元、 所述存储器读队列和所述存储器写队列,该响应发生器用于产生和从 输出端口传送读响应,每个读响应包含来自所述读数据队列的读数据 以及与来自所述流控制单元的状态信号相对应的读状态信号,该响应 发生器还用于从所述输出端口传送写响应,每个写响应包含与来自所 述流控制单元的状态信号相对应的写状态信号;以及一个存储器集线器控制器,包括:

一个存储器请求队列,用于存储至少一个通过输入端口接收 到的存储器请求,将该存储器请求队列耦合至每个存储模块的存储器 请求队列,以响应于流控制信号,将存储于该存储器请求队列中的每 个存储器请求传送到至少一个所述存储模块中;

一个响应队列,该响应队列被耦合至每个所述存储模块中的 响应发生器,该响应队列用于从所述存储模块中的响应发生器接收读 响应和写响应,该响应队列用于至少将每个读响应中的读数据耦合至 数据输出端口,以及将每个读响应中的读状态信号和每个写响应中的 写状态信号耦合至流控制端口;以及一个流控制单元,该流控制单元被耦合到该响应队列,该流 控制单元从所述存储器集线器控制器的响应队列接收所述读状态信 号和所述写状态信号,该流控制单元用于根据所述状态信号,确定在 每个所述存储模块中的未处理的存储器请求的数目,并产生流控制信 号并将其耦合至该存储器集线器控制器的存储器请求队列,该流控制 信号根据在每个所述存储模块中的未处理的存储器请求的数目,指示 另外的存储器请求可以被发送到每个存储模块。

44、如权利要求43所述的计算机系统,其中,所述存储器设备 包括各自的动态随机存取存储器设备。

45、如权利要求43所述的计算机系统,其中,所述存储器集线 器控制器中的存储器响应队列的输入端口和所述存储模块中的每个 存储器请求队列的输入端口包括各自的光学输入端口,并且其中,所 述存储器集线器控制器中的存储器请求队列的输出端口和所述存储 模块的每个存储器响应发生器的输出端口包括各自的光学输出端口。

46、如权利要求43所述的计算机系统,其中,在所述存储器集 线器控制器以及每个所述存储模块中的存储器请求队列用于同时存 储所述读存储器请求和写存储器请求二者。

47、如权利要求43所述的计算机系统,其中,将所述读释放信 号耦合至每个存储模块中的流控制单元来响应该存储模块中的存储 器请求队列传送每个读请求到该存储模块中的存储器设备,并且其 中,将所述写释放信号耦合至每个存储模块中的流控制单元来响应该 存储模块中的存储器请求队列传送每个写请求到该存储模块中的存 储器设备。

48、如权利要求47所述的计算机系统,其中,每个存储模块中 的流控制单元用于输出与每个读释放信号相对应的读状态信号,每个 读状态信号唯一地标识各自的读请求,并且其中,每个存储模块中的 流控制单元用于输出与每个写释放信号相对应的写状态信号,每个写 状态信号唯一地标识各自的写请求。

49、如权利要求47所述的计算机系统,其中,每个存储模块中 的响应发生器用于产生和从输出端口传送写响应信号,该写响应信号 包含写状态信号,或者包含所述读数据和所述写状态信号的组合。

50、如权利要求43所述的计算机系统,其中,每个存储模块中 的响应发生器用于产生和从输出端口传送读响应信号,该读响应信号 包含读数据以及所述读状态信号,或者包含读数据、所述读状态信号 以及所述写状态信号。

51、如权利要求50所述的计算机系统,其中,所述响应发生器 还用于产生和从输出端口传送写响应信号,该写响应信号包含没有所 述读数据的所述写状态信号。

52、如权利要求43所述的计算机系统,其中,所述存储器集线 器控制器中的存储器请求队列还用于从所述输出端口发出伴随每个 存储器请求的请求标识,该请求标识唯一地标识各自的存储器请求。

53、如权利要求43所述的计算机系统,其中,所述存储器集线 器控制器中的流控制单元用于产生每个存储器请求的请求标识并将 其耦合至所述存储器集线器控制器的存储器请求队列。

54、如权利要求53所述的计算机系统,其中,所述存储器集线 器控制器中的流控制单元还用于基于被耦合至所述存储器集线器控 制器的存储器请求队列的请求标识和从所述响应队列接收到的读状 态信号与写状态信号之间的比较,来产生所述流控制信号。

55、一种从多个存储模块读数据和向多个存储模块写数据的方 法,包括:

将多个存储器请求传送到所述存储模块;

在所述存储模块中存储所述已传送的存储器请求;

在一个所述存储模块中以不同于将所述存储器请求传送到所述 存储模块中的速率的速率,来处理所述所存储的存储器请求;

确定已经被传送到所述存储模块但是还没有被该存储模块处理 的存储器请求的数目;以及根据所述确定将另外的存储器请求传送到存储模块,该确定是关 于已经被传送但是还没有被所述存储模块处理的存储器请求的数目 做出的。

56、如权利要求55所述的方法,其中,将多个存储器请求传送 到所述存储模块的动作包括伴随一个请求标识符向所述存储模块传 送一个写请求或者传送一个读请求,该请求标识符唯一地标识所述写 请求或者读请求。

57、如权利要求56所述的方法,其中,确定已经被传送到所述 存储模块但是还没有被该存储模块处理的存储器请求的数目的动作 包括:从所述存储模块接收一个存储器请求状态信号,该存储器请求状 态信号标识已经被处理的所述读请求和写请求;以及比较所述存储器请求状态信号和所述请求标识符。

58、在一个计算机系统中通过使用存储器集线器控制器来存取存 储模块的方法,该计算机系统具有被耦合至多个存储模块的存储器集 线器控制器,每个存储模块包括多个存储器设备,该方法包括:从所述存储器集线器控制器将多个存储器请求传送到至少一个 所述存储模块;

将所述传送的存储器请求存储在所述存储器模块中,所述存储器 请求被传送到该存储器模块中;

按照所述存储器请求存取所述存储模块中的存储器设备,存取所 述存储器设备的速率不同于将所述存储器请求传送到该存储模块中 的速率;

在每个所述存储模块中产生存储器请求状态信号,所述存储器请 求状态信号标识在该存储模块中哪些存储器请求已经被处理;

将所述存储器请求状态信号从所述存储模块耦合至所述存储器 集线器控制器,该存储模块包含被存取的存储器设备;以及根据被耦合至所述存储器集线器控制器的存储器请求状态信号, 将另外的存储器请求从该存储器集线器控制器传送到所述存储模块, 该存储模块包含被存取的存储器设备。

59、如权利要求58所述的方法,其中,将多个存储器请求从所 述存储器集线器控制器传送到至少一个所述存储模块的动作包括将 一个写请求或者一个读请求从该存储器集线器控制器传送到至少一 个所述存储模块。

60、如权利要求58所述的方法,其中,所述存储器设备包括动 态随机存取存储器设备。

61、如权利要求58所述的方法,其中,将多个存储器请求从所 述存储器集线器控制器传送到至少一个所述存储模块的动作包括与 每个存储器请求一起传送唯一地标识该存储器请求的各自的请求标 识符。

62、如权利要求61所述的方法,其中,产生所述存储器请求状 态信号的动作包括在所述存储模块中根据传送到该存储模块的请求 标识符产生该存储器请求状态信号。

63、如权利要求61所述的方法,还包括在所述存储器集线器控 制器中存储每个被传送到所述存储模块的请求标识符,并且其中,根 据所述存储器请求状态信号,从该存储器集线器控制器传送另外的存 储器请求的动作包括在该存储器集线器控制器中比较所述存储器请 求状态信号和存储在该存储器集线器控制器中的请求标识符。

说明书 :

技术领域

本发明涉及存储系统,尤其涉及一种具有多个存储模块的存储系 统,每个存储模块包括一个被耦合至多个存储器设备的存储器集线 器。

背景技术

计算机系统使用例如动态随机存取存储器(“DRAM”)设备的存 储器设备来存储被处理器存取的指令和数据。通常将这些存储器设备 用作计算机系统的系统存储器。在一个典型的计算机系统中,处理器 通过处理器总线和存储器控制器与系统存储器进行通信。该处理器发 出存储器请求,存储器请求包括例如读取命令的存储器命令,以及指 向读取数据或指令的位置的地址。存储器控制器使用命令和地址产生 适当的命令信号以及应用于系统存储器的行和列地址。响应于命令和 地址,数据在系统存储器和处理器之间传递。存储器控制器通常是系 统控制器的一部分,系统控制器还包括用于将处理器总线耦合至例如 PCI总线的扩展总线的总线桥接器电路。
存储器设备的操作速度在持续地加快,因此提供了不断增加的存 储带宽。然而,存储带宽的增加并没有和处理器操作速度的提高保持 同步。增加存储带宽的一个方法是存取许多相互并行的存储器设备, 以便在每次存储器存取时,从这些许多的存储器设备中读取数据或者 将数据写到这些许多的存储器设备中去。一种使其自身适合允许同时 存取许多存储器设备的存储器体系结构就是存储器集线器体系结构。 在存储器集线器体系结构中,将一个系统控制器或存储器集线器控制 器耦合至多个存储模块,每个存储模块包括被耦合至多个存储器设备 的存储器集线器。该存储器集线器在控制器和存储器设备之间有效地 路由存储器请求和响应。使用这样的体系结构的计算机系统可以有更 高的带宽,因为处理器可以从一个存储模块读取数据或者向该存储模 块写入数据,而同时另一个存储模块正在响应先前的存储器存取。例 如,处理器可以向一个存储模块中的存储器设备输出写数据,而同时 另一个存储模块中的存储器设备正在准备向该处理器提供读数据。
虽然使用存储器集线器的存储模块可以提供增加的存储带宽,但 是模块中的存储器集线器的存在能够使得协调命令和地址信号到存 储模块的流以及数据信号到存储模块和从存储模块出的流变得困难。 在传统的存储系统中,存储器控制器直接地存取存储模块中的存储器 设备。在存储器控制器和存储器设备之间没有任何例如存储器集线器 的控制设备存在,会使得该存储器控制器协调它和每个存储模块之间 的操作变得相对地容易。特别是,因为存储器控制器主动地控制在每 个存储模块上的活动,所以该存储器控制器能够基于它发送到存储模 块或者从存储模块接收到的信号,来确定对于每个存储模块的存储器 存取的状态。相反地,在每个存储模块上存在存储器集线器来控制存 储器设备的存取,使得控制器确定每个存储模块的存储器请求的状态 变得困难,因为该控制器不再直接地控制存储器存取。例如,控制器 不再能够确定何时将一个读存储器请求发送到那个模块上的存储器 设备。由于控制器不能确定何时发出读存储器请求,所以它也不能确 定何时将从存储模块中发出读数据。结果是,控制器不能确定何时它 能够向同一个或另外一个存储模块发出另外一个读或写存储器请求。 类似地,控制器不能确定是否已经处理了多个发出到存储模块的存储 器请求,并且因此不能确定是否应当将另外的存储器请求发出到该存 储模块。其它类型的协调发出对于本领域的熟练技术人员将是非常明 显的。
因此,需要一种使控制器或者其它设备来协调向存储模块发出存 储器请求的存储器系统体系结构,所述控制器或者其它设备被耦合至 多个基于集线器的存储模块。

发明内容

一个存储模块集线器控制器被耦合至多个存储模块,每个存储模 块包括被耦合至各自模块中的多个存储器设备的存储器集线器。存储 器集线器控制器存储多个存储器请求并且把每个存储的存储器请求 发送到在一个存储模块中的存储器集线器,以响应一个根据存储器请 求状态信号而产生的流控制信号,该存储器请求状态信号接收自存储 器集线器,而存储器请求被发送到该存储器集线器。存储器集线器存 储收到的存储器请求并且将与存储的存储器请求相对应的存储器请 求信号发送到存储模块中的存储器设备。存储器集线器还将写数据发 送到存储器设备或者随后从存储器设备接收读数据。存储器集线器还 产生存储器请求状态信号,该存储器请求状态信号标识已经由被耦合 至存储器集线器的存储器设备处理的存储器请求。存储器集线器然后 将存储器请求状态信号和任何读数据发送到存储器集线器控制器。该 控制器输出收到的读数据并且基于存储器请求状态信号产生流控制 信号来控制那些存储于每个存储模块中的未处理的(outstanding)存 储器请求的数目。
根据本发明的一个方面,一种存储模块包括:
多个存储器设备;以及
一个存储器集线器,包括:
一个存储器请求队列,用于存储至少一个通过输入端口接收 的存储器请求,将该存储器请求队列耦合至所述存储器设备来把存储 在该存储器请求队列中的每个存储器请求传送到所述存储器设备,该 存储器请求队列用于输出用于标识传送到所述存储器设备的每个读 存储器请求的各自的读释放信号,并输出用于标识传送到所述存储器 设备的每个写存储器请求的各自的写释放信号;
一个流控制单元,该流控制单元被耦合至所述存储器请求队 列,该流控制单元用于从所述存储器请求队列接收所述读释放信号和 所述写释放信号,该流控制单元用于输出与所述释放信号相对应的状 态信号;
一个存储器读队列,该存储器读队列被耦合至所述存储器设 备,该存储器读队列从所述存储器设备接收读数据并且存储用于耦合 至输出端口的该读数据;
一个存储器写队列,该存储器写队列被耦合到所述存储器请 求队列,该存储器写队列用于接收一个信号,该信号指示已经将每个 写存储器请求从该存储器请求队列耦合至所述存储器设备,该存储器 写队列还存储用于指示写请求已经被传送到所述存储器设备的信号; 以及
一个响应发生器,该响应发生器被耦合至所述流控制单元、 所述存储器读队列和所述存储器写队列,该响应发生器用于产生和从 输出端口传送读响应,每个读响应包含来自所述读数据队列的读数据 以及与来自所述流控制单元的状态信号相对应的读状态信号,该响应 发生器还用于从所述输出端口传送写响应,每个写响应包含与来自所 述流控制单元的状态信号相对应的写状态信号。
根据本发明的一个方面,一种存储器集线器控制器包括:
一个存储器请求队列,用于存储至少一个通过输入端口接收的存 储器请求,该存储器请求队列用于响应于流控制信号,从输出端口发 出存储在该存储器请求队列中的每个存储器请求;
一个响应队列,该响应队列用于通过输入端口接收读响应,该读 响应包含每个读数据和读状态信号,该读状态信号用于标识与所述读 数据相对应的读请求,该响应队列还用于通过所述输入端口接收写响 应,每个写响应用于标识已经被处理的写请求,该响应队列用于至少 将来自每个读响应信号的读数据耦合至数据输出端口以及将来自每 个读响应的读状态信号和来自每个写响应的写状态信号耦合至流控 制端口;以及
一个流控制单元,该流控制单元被耦合到所述响应队列,该流控 制单元用于从所述响应队列接收所述读状态信号和所述写状态信号, 该流控制单元用于根据所述状态信号,确定由所述存储器请求队列发 出的未处理的存储器请求的数目,并且产生流控制信号并将其耦合至 该存储器请求队列,该流控制信号根据由该存储器请求队列发出的未 处理的存储器请求的数目,指示另外的存储器请求可以被发送到每个 存储模块。
根据本发明的一个方面,一种存储系统包括:
多个存储模块,每个存储模块包括:
多个存储器设备;
一个存储器请求队列,用于存储至少一个通过输入端口接收 的存储器请求,将该存储器请求队列耦合至所述存储器设备来把存储 在该存储器请求队列中的每个存储器请求传送到所述存储器设备,该 存储器请求队列用于输出用于标识传送到所述存储器设备的每个读 存储器请求的各自的读释放信号,并且输出用于标识传送到所述存储 器设备的每个写存储器请求的各自的写释放信号;
一个流控制单元,该流控制单元被耦合至所述存储器请求队 列,该流控制单元用于从所述存储器请求队列接收所述读释放信号和 所述写释放信号,该流控制单元用于输出与所述读释放和写释放信号 相对应的状态信号;
一个存储器读队列,该存储器读队列被耦合至所述存储器设 备,该存储器读队列从所述存储器设备接收读数据并且存储用于耦合 至输出端口的该读数据;
一个存储器写队列,该存储器写队列被耦合所述存储器请求 队列,该存储器写队列用于接收指示已经将每个写存储器请求从该存 储器请求队列耦合至所述存储器设备的信号,该存储器写队列还存储 用于耦合至输出端口的信号;以及
一个响应发生器,该响应发生器被耦合至所述流控制单元、 所述存储器读队列和所述存储器写队列,该响应发生器用于产生和从 输出端口传送读响应,每个读响应包含来自所述读数据队列的读数据 以及与来自所述流控制单元的状态信号相对应的读状态信号,该响应 发生器还用于从所述输出端口传送写响应,每个写响应包含与来自所 述流控制单元的状态信号相对应的写状态信号;以及
一个存储器集线器控制器,包括:
一个存储器请求队列,用于存储至少一个通过输入端口接收 的存储器请求,将该存储器请求队列被耦合至每个存储模块的存储器 请求队列,以响应于流控制信号,将存储在该存储器请求队列中的每 个存储器请求传送到至少一个所述存储模块中;
一个响应队列,该响应队列被耦合至每个所述存储模块中的 响应发生器,该响应队列从所述存储模块中的响应发生器接收读响应 和写响应,该响应队列用于至少将来自每个读响应的读数据耦合至数 据输出端口,以及将来自每个读响应的读状态信号和来自每个写响应 的写状态信号耦合至流控制端口;以及
一个流控制单元,该流控制单元被耦合到该响应队列,并用 于从所述存储器集线器控制器的响应队列接收读状态信号和写状态 信号,该流控制单元用于根据所述状态信号,确定在每个所述存储模 块中的未处理的存储器请求的数目,并产生流控制信号并将其耦合至 该存储器集线器控制器的存储器请求队列,该流控制信号指示根据在 每个所述存储模块中的未处理的存储器请求的数目,另外的存储器请 求可以被发送到每个存储模块。
根据本发明的一个方面,一种存储系统包括:
一个存储器集线器控制器;以及
多个存储模块,所述多个存储模块被耦合至所述存储器集线器控 制器,每个所述存储模块包括:
多个存储器设备;以及
一个存储器集线器,该存储器集线器接收从所述存储器集线 器控制器输出的存储器请求,该存储器集线器存储所述收到的存储器 请求,并且将与所存储的存储器请求相对应的存储器请求信号耦合至 所述存储模块中的存储器设备,该存储器集线器用于从所述存储器设 备接收读数据并且将该读数据以及存储器请求状态信号耦合至所述 存储器集线器控制器,该存储器请求状态信号标识已经由被耦合至该 存储器集线器的存储器设备处理的所述存储器请求。
根据本发明的一个方面,一种计算机系统包括:
一个CPU;
一个系统控制器,该系统控制器被耦合至所述CPU,该系统控 制器具有输入端口和输出端口;
一个输入设备,该输入设备通过所述系统控制器被耦合至所述 CPU;
一个输出设备,该输出设备通过所述系统控制器被耦合至所述 CPU;
一个存储设备,该存储器设备通过所述系统控制器被耦合至所述 CPU;
一个存储器集线器控制器,其与所述CPU相连;以及
多个存储模块,所述存储模块被耦合至所述存储器集线器控制 器,每个所述存储模块包括:
多个存储器设备;以及
一个存储器集线器,该存储器集线器被耦合到该存储器集线 器控制器,该存储器集线器接收从所述存储器集线器控制器输出的存 储器请求,该存储器集线器存储所接收的存储器请求,并且将与所存 储的存储器请求相对应的存储器请求信号耦合至所述存储模块中的 存储器设备,该存储器集线器用于从所述存储器设备接收读数据并且 将所述读数据与所述存储器请求状态信号一起耦合至所述存储器集 线器控制器,所述存储器请求状态信号标识已经由被耦合至该存储器 集线器的存储器设备处理的所述存储器请求。
根据本发明的一个方面,一种计算机系统包括:
一个CPU;
一个系统控制器,该系统控制器被耦合至所述CPU,该系统控 制器具有输入端口和输出端口;
一个输入设备,该输入设备通过所述系统控制器被耦合至所述 CPU;
一个输出设备,该输出设备通过所述系统控制器被耦合至所述 CPU;
一个存储设备,该存储器设备通过所述系统控制器被耦合至所述 CPU;
多个存储模块,每个存储模块包括:
多个存储器设备;
一个存储器请求队列,用于存储至少一个通过输入端口接收 到的存储器请求,将该存储器请求队列耦合至所述存储器设备,该存 储器请求队列用于把存储在该存储器请求队列中的每个存储器请求 传送到所述存储器设备,该存储器请求队列用于输出用于标识传送到 所述存储器设备的读存储器请求的各自的读释放信号,并输出用于标 识传送到所述存储器设备的写存储器请求的各自的写释放信号;
一个流控制单元,该流控制单元被耦合至所述存储器请求队 列,该流控制单元用于从所述存储器请求队列接收所述读释放信号和 所述写释放信号,该流控制单元用于输出与所述读释放和写释放信号 相对应的状态信号;
一个存储器读队列,该存储器读队列被耦合至所述存储器设 备,该存储器读队列从所述存储器设备接收读数据并且存储用于耦合 至输出端口的该读数据;
一个存储器写队列,该存储器写队列被耦合到该存储器请求 队列,该存储器写队列接收用于指示已经将每个写存储器请求从该存 储器请求队列耦合至所述存储器设备的信号,该存储器写队列存储用 于耦合至输出端口的信号;以及
一个响应发生器,该响应发生器被耦合至所述流控制单元、 所述存储器读队列和所述存储器写队列,该响应发生器用于产生和从 输出端口传送读响应,每个读响应包含来自所述读数据队列的读数据 以及与来自所述流控制单元的状态信号相对应的读状态信号,该响应 发生器还用于从所述输出端口传送写响应,每个写响应包含与来自所 述流控制单元的状态信号相对应的写状态信号;以及
一个存储器集线器控制器,包括:
一个存储器请求队列,用于存储至少一个通过输入端口接收 到的存储器请求,将该存储器请求队列耦合至每个存储模块的存储器 请求队列,以响应于流控制信号,将存储于该存储器请求队列中的每 个存储器请求传送到至少一个所述存储模块中;
一个响应队列,该响应队列被耦合至每个所述存储模块中的 响应发生器,该响应队列用于从所述存储模块中的响应发生器接收读 响应和写响应,该响应队列用于至少将每个读响应中的读数据耦合至 数据输出端口,以及将每个读响应中的读状态信号和每个写响应中的 写状态信号耦合至流控制端口;以及
一个流控制单元,该流控制单元被耦合到该响应队列,该流 控制单元从所述存储器集线器控制器的响应队列接收所述读状态信 号和所述写状态信号,该流控制单元用于根据所述状态信号,确定在 每个所述存储模块中的未处理的存储器请求的数目,并产生流控制信 号并将其耦合至该存储器集线器控制器的存储器请求队列,该流控制 信号根据在每个所述存储模块中的未处理的存储器请求的数目,指示 另外的存储器请求可以被发送到每个存储模块。
根据本发明的一个方面,一种从多个存储模块读数据和向多个存 储模块写数据的方法,包括:
将多个存储器请求传送到所述存储模块;
在所述存储模块中存储所述已传送的存储器请求;
在一个所述存储模块中以不同于将所述存储器请求传送到所述 存储模块中的速率的速率,来处理所述所存储的存储器请求;
确定已经被传送到所述存储模块但是还没有被该存储模块处理 的存储器请求的数目;以及
根据所述确定将另外的存储器请求传送到存储模块,该确定是关 于已经被传送但是还没有被所述存储模块处理的存储器请求的数目 做出的。
根据本发明的一个方面,在一个计算机系统中通过使用存储器集 线器控制器来存取存储模块的方法,该计算机系统具有被耦合至多个 存储模块的存储器集线器控制器,每个存储模块包括多个存储器设 备,该方法包括:
从所述存储器集线器控制器将多个存储器请求传送到至少一个 所述存储模块;
将所述传送的存储器请求存储在所述存储器模块中,所述存储器 请求被传送到该存储器模块中;
按照所述存储器请求存取所述存储模块中的存储器设备,存取所 述存储器设备的速率不同于将所述存储器请求传送到该存储模块中 的速率;
在每个所述存储模块中产生存储器请求状态信号,所述存储器请 求状态信号标识在该存储模块中哪些存储器请求已经被处理;
将所述存储器请求状态信号从所述存储模块耦合至所述存储器 集线器控制器,该存储模块包含被存取的存储器设备;以及
根据被耦合至所述存储器集线器控制器的存储器请求状态信号, 将另外的存储器请求从该存储器集线器控制器传送到所述存储模块, 该存储模块包含被存取的存储器设备。

附图说明

图1是按照本发明的一个例子的计算机系统的框图,其中多个存 储模块中的每个都包括存储器集线器;
图2是将用于图1的计算机系统中的存储器集线器控制器的一个 例子耦合至用于图1的计算机系统中的多个存储模块的每一个中的 存储器集线器的一个例子的框图;
图3A和3B所示为存储器请求信息包的格式的一个例子的表格, 该存储器请求信息包从存储器集线器控制器发送到图2的存储器集 线器;
图4A和4B所示为存储器响应信息包的格式的一个例子的表格, 该存储器响应信息包从存储器集线器控制器发送到图2的存储器集 线器。

具体实施方式

图1中示出了按照本发明一个例子的计算机系统100。计算机系 统100包括一个处理器104,用于执行各种计算功能,例如运行具体 的软件来执行具体的运算或者任务。处理器104包括一个处理器总线 106,处理器总线106通常包括一个地址总线、一个控制总线和一个 数据总线。典型地将处理器总线106耦合至高速缓冲存储器108,在 前文曾经提到过,高速缓冲存储器108通常是静态随机存取存储器 (“SRAM”)。最后,将处理器总线106耦合至系统控制器110,系统 控制器110有时也被称为“北桥”或者“存储器控制器”。
系统控制器110作为处理器104和各种其它部件的通信路径。更 具体而言,系统控制器110包括一个图形端口,典型地将该图形端口 耦合至图形控制器112,而将图形控制器112依次耦合至视频终端 114。将系统控制器110也耦合至一个或多个例如键盘或鼠标的输入 设备118,来允许操作者和计算机系统100之间的交互操作。典型地, 计算机系统100还包括一个或多个例如打印机的输出设备120,将输 出设备120通过系统控制器110耦合至处理器104。典型地将一个或 多个数据存储器设备124也通过系统控制器110耦合至处理器104, 来允许处理器104把数据存储到内部或外部存储介质(未示出)中或 者从内部或外部存储介质中重新得到数据。典型的数据存储器设备 124的例子包括硬盘和软盘、盒式磁带和只读光盘存储器 (CD-ROMs)。
系统控制器110还包括一个存储器集线器控制器126,将存储器 集线器控制器126耦合至作为计算机系统100的系统存储器的多个存 储模块130a,b...n。优选为,将存储模块130通过高速链路134耦合 至存储器集线器控制器126,高速链路134可以是光学或电子通信路 径或者一些其它形式的通信路径。如果高速链路134是通过光学通信 路径来实现的,那么光学通信路径可以是例如一个或多个光纤的形 式。在这种情况下,存储器集线器控制器126和存储模块130将包括 耦合至光学通信路径的光学输入/输出端口或者一个单独的输入和输 出端口。存储模块130被示出以多点或菊花链方案被耦合至存储器集 线器控制器126,其中将单个的高速链路134耦合至所有的存储模块 130。然而,可以理解的是,也可以使用其它的拓扑结构,例如点对 点耦合方案,其中使用一个单独的高速链路(未示出)来将每个存储 模块130耦合至存储器集线器控制器126。也可以使用切换拓扑结构, 其中有选择地通过一个开关(未示出)将存储器集线器控制器126耦 合至每个存储模块130。可用的其它类型的拓扑结构对于本领域的熟 练技术人员将是非常明显的。
每个存储模块130包括用于控制对存储器设备148的存取的存储 器集线器140,存储器设备148在图2中的例子中是同步动态随机存 取存储器(“SDRAM”)设备。然而,也可以使用较少的或更多的存 储器设备148,并且当然也可以使用除SDRAM设备之外的其它存储 器设备。将存储器集线器140通过总线系统150耦合至每个存储器设 备148,总线系统150通常包括一个控制总线、一个地址总线和一个 数据总线。
图1的存储器集线器控制器126和存储器集线器140的一个例子 在图2中示出。如图2中所示,将存储器集线器控制器126耦合至存 储器集线器140的高速链路134(见图1)包括互相分开的高速下行 链路154和一个高速上行链路156。如前文所述,下行链路154和上 行链路156可以耦合逻辑信号、光学信号、RF(射频)信号或者任 何其它类型的信号介质。也可以将下行链路154和上行链路156合并 成一个单一的高速双向链路,或者可以进一步将下行链路154和上行 链路156分成许多的通信链路,例如分开命令、地址和数据信号的链 路。其它的变化对于本领域的熟练技术人员将是非常明显的。
更进一步地参考图2,存储器集线器控制器126包括存储器请求 队列160,该存储器请求队列160通过系统控制器110从处理器104 (见图1)接收高层存储器请求信号,该高层存储器请求信号包括命 令信号、地址信号和在存储器写入的情况下的写数据信号。存储器请 求队列160还从流控制单元174接收唯一地识别每个读请求和每个写 请求的请求ID信号。这些请求ID和相应的高层读请求和写请求结合 在一起,并且被存储到存储器请求队列160中,优选为按照它们被接 收到的顺序被存储到存储器请求队列160中。存储于请求队列160中 的存储器请求信号既包括读请求信号又包括写请求信号。高层存储器 请求信号和请求ID信号将共同地被称为存储器请求信号。存储器请 求队列可以、但是不是必需地按照信号被接收到的相同顺序向存储模 块130发出信号。
存储器集线器控制器126还包括从系统控制器110接收读响应信 号和写响应信号的存储器响应队列170。读响应信号包括读数据信号 以及标识与读数据相对应的读请求的读状态信号。写响应信号包括标 识已经由一个存储模块处理过的写请求的写状态信号。存储器响应队 列170按照存储器响应信号被接收到的顺序存储存储器响应信号,并 且优选为,但不是必需地,存储器响应队列170按照相同的顺序将读 数据信号172耦合至系统控制器110。存储器响应队列170还将读状 态信号176和写状态信号178发送至流控制单元174,从而使得流控 制单元174可以确定已经处理了哪些读请求和哪些写请求。流控制单 元174通过比较状态信号176、178和由流控制单元174产生并且被 发送至存储器请求队列160的请求ID,来做出这个确定。流控制单 元174然后向存储器请求队列160输出流控制信号,来使存储器请求 队列160确定是否以及何时其应该向每个存储模块130(见图1)发 出另外的存储器请求。
更进一步地参考图2,在每个存储模块130中的存储器集线器140 包括存储器请求队列190,存储器请求队列190通过高速下行链路154 从存储器集线器控制器126接收一个或者多个存储器请求。存储器请 求队列190包括与传统的存储器控制器相似的电路,来把存储器请求 变成可以被存储器设备148(见图1)使用的命令和地址信号格式, 并且在适当的时间和以适当的次序把这些格式重排的信号发送到存 储器设备148。例如,存储器请求队列190可以把从存储器集线器控 制器126接收到的地址信号转换成行和列地址信号。存储器请求队列 190然后可以向存储器设备148输出行地址信号,以及一个行地址选 通(“RAS”)信号,使得可以将行地址信号锁存进存储器设备148。 相似地,存储器请求队列190可以向存储器设备148输出列地址信号, 以及一个列地址选通(“CAS”)信号,使得可以将列地址信号可以锁 存进存储器设备148。然而,格式重排的命令和地址信号的性质,有 可能还有数据信号的性质,将依赖于存储器设备148的性质,这对于 本领域的熟练技术人员将是非常明显的。
当存储器请求队列190已经向存储器设备148发出格式重排的读 请求信号,来响应来自存储器集线器控制器126的读请求信号时,存 储器请求队列190对流控制单元194应用一个读释放信号来指示已经 将一个读请求发出到存储器设备148。相似地,当存储器请求队列190 已经向存储器设备148发出格式重排的写请求信号,来响应来自存储 器集线器控制器126的写请求信号时,存储器请求队列190对流控制 单元194应用一个写释放信号来指示已经将一个写请求发出到存储 器设备148。使用读释放和写释放信号来分别地明确表达读和写状态 信号192、196,读和写状态信号192、196唯一地标识已经被每个存 储模块130处理的每个读请求和写请求。更加具体而言,流控制单元 194给每个释放的读请求分配一个唯一的读响应ID,优选为,读响应 ID对应于从流控制单元174被发送至存储器请求队列160的请求ID。 流控制单元194还给每个释放的写请求分配一个唯一的写响应ID, 优选为,写响应ID也对应于请求ID。将这些响应ID作为读和写状 态信号耦合至响应队列170。如前文所述,将这些状态信号耦合至存 储器响应队列170,存储器响应队列170把状态信号从任何包含于响 应中的读数据中分离出来,并且把状态信号耦合至流控制单元174。
响应于来自存储器请求队列190的读存储器请求,存储器设备 148把读数据信号耦合至存储器集线器140。这些读数据信号被存储 在读队列200中。读队列200随后把读数据信号耦合至响应发生器 204,响应发生器204也从流控制单元194接收读状态信号192。
当请求队列190发出写请求时,把指示写请求已经被发出的信号 存储在写队列206中。写队列206随后把指示写请求已经被发出的信 号耦合至响应发生器204,响应发生器204还从流控制单元194接收 写状态信号196。
响应发生器204把来自读队列200的读数据信号和来自流控制单 元194的读状态信号192组合在一起,读状态信号192,如前文所述, 标识与读数据相对应的读请求。将组合的读数据信号和读状态信号 192组合到读响应210之中。响应于来自写队列206的信号,响应发 生器204产生包含写状态信号192的写响应214。响应发生器204然 后将读响应210或写响应214传送到存储器集线器控制器126中的响 应队列170。更加具体而言,将读数据信号从响应发生器204传送到 响应队列170。分别将读和写状态信号192、196从响应发生器204 传送到响应队列170,或者在一些写状态信号的情况下单独地传送, 或者在读状态信号或另外的写状态信号的情况下和读数据信号组合 在一起传送。因此,读响应210包含读数据以及可以唯一地标识与读 数据相对应的读请求的信息,写响应214包含可以唯一地标识已经被 存储模块130处理的每个写请求。
在存储器请求队列160没有发出任何另外的存储器请求之前,在 任何存储模块130中的未处理的写请求或读请求的数目可以是固定 的或者用户可选的,用户可以通过利用一个指示允许的请求队列深度 的值对任何一个存储器集线器控制器126编程来选择该数目。此外, 未处理的读请求的数目可以和未处理的写请求的数目一样或者不一 样。
在图3A中示出了一个存储器请求的例子,该存储器请求被从存 储器集线器控制器126中的存储器请求队列160发送到存储器集线器 140中的存储器请求队列190。在图3A中所示出的例子中,存储器 请求的形式为包含多个信息包字的存储器请求信息包220,但是对于 本领域的熟练技术人员来说非常明显的是存储器请求可以有其它的 格式。第一个信息包字224的前4位是一个标识由请求队列160发出 的存储器请求的类型的命令码。在图3B中标识这些命令码。例如, “0000”命令码表示空操作命令,“0001”命令码表示请求写1到16 的双字(也就是,32位的组),“0010”命令码表示请求读1到16的 双字,等等。回到图3A,第一个信息包字224的下面6位包含由流 控制单元174(见图2)发出的唯一地标识每个存储器请求的请求ID。 如前文所述,通过唯一地标识存储器请求,存储器集线器控制器126 中的流控制单元174可以确定已经处理了哪些存储器请求。第一个信 息包字224的最后22位是存储器请求所处的存储器地址的高位37: 16位。
在图3A所示出的例子中,没有使用第二个信息包字228的前2 位。下面的15位是存储器请求所处的存储器地址的低位15:2位。 没有传送地址位1:0,因为这些地址位将选择数据的每个字节中的 明确的位,并且所有的存储器存取都至少是数据的一个字节。
在存储器集线器140之一中的存储器请求队列190可以使用高位 37:16位作为行地址以及低位15:2位作为列地址,或者可以用其 它的一些方式使用这些地址。第二个信息包字228的下面4位是计数 3:0位,计数3:0位指定将要从存储模块的存储器设备148读出或 者写到存储模块的存储器设备148的双字或字节的数目。第二个信息 包字228的最后16位由掩码数据掩码15:0组成,可以通过一个读 存储器请求将掩码15:0耦合至存储器集线器控制器126来代替读数 据。本领域的熟练技术人员对于在这种方式下的掩码数据是非常熟悉 的。
对于写请求,前两个信息包字224、228之后是至少一个写数据 的信息包字230。信息包字230的数目取决于第二个信息包字228中 计数3:0的值、以及存储器写命令是用于写一个双字还是一个字节。 例如,在请求双字写的信息包中,“0100”(也就是,4)的计数3:0 的值将需要写数据的4个信息包字230。在要求字节写的信息包中, 4的计数3:0的值将仅需要写数据的单个信息包字230。当然,在前 两个信息包字224、228之后,读请求的信息包220将不包括任何信 息包字230。
在图4A中示出了一个存储器响应210或214的例子,该存储器 响应被从存储器集线器140之一中的响应发生器204发送至存储器集 线器控制器126中的存储器响应队列170。该存储器响应的形式为包 含多个信息包字的存储器响应信息包240,但是对于本领域的熟练技 术人员来说非常明显的是存储器响应可以有其它的形式。第一个信息 包字244的前4位是标识由响应发生器204发出的存储器响应的类型 的响应码。在图4B中示出了这些响应码。例如,“000”响应码也表 示“空操作”响应,并且“001”响应码表示“读响应”,该读响应将 返回读数据和指示哪个读请求已被处理的读状态信号到存储器集线 器控制器126中的存储器响应队列170。“010”响应码表示“写响应”, 该写响应向存储器集线器控制器126中的响应队列170提供指示哪个 写请求已被处理的写状态信号。最后,“011”响应码表示“写和读响 应”,该写和读响应将在包含读数据的信息包中包括读状态信号和写 状态信号。如上所述,在信息包中的写状态信号将不属于与该信息包 中的读数据信号的存储器请求一样的存储器请求。通常,通过在写和 读响应中与读数据一起包括写状态信号来提供写状态信号是更加有 效的,因为仅需要一个响应就可以提供读和写状态信息。然而,如果 数据不是从存储模块130中读出,那么就需要返回一个“写响应”, 来向存储器集线器控制器126提供关于写请求状态的信息。然而,如 果需要,“写响应”信息包可以被延迟,直到在任何一个存储模块130 中已经积累了预先确定数目的未处理的写响应。
回到图4A,第一个信息包字244的下面6位是由流控制单元194 产生的唯一标识每个存储器读请求的读响应ID。这个读响应ID通常 将对应于每个读请求信息包220的第一个信息包字224中的请求ID。 该读响应ID对应于如上所述的读状态信号。第一个信息包字244的 下面6位也是由流控制单元194产生的唯一标识每个存储器写请求的 写响应ID。这个写响应ID通常也将对应于每个写请求信息包220的 第一个信息包字224中的请求ID。该写响应ID对应于如上所述的写 状态信号。流控制单元可以将这些响应ID值和请求值相比较来确定 是否已经处理了存储器集线器控制器126发出的任何读或写存储器 请求。第一个信息包字244的下面4位是指定在信息包240中将要包 括的读数据的双字的数目的双字计数位。没有使用第一个信息包字 244的最后13位。如果响应信息包240是读响应信息包,则第一个 信息包字244之后将跟随一个或多个读数据信息包字248。当然,读 数据信息包字的数目取决于信息包字244中双字计数的值。
通过前面的叙述可以理解,虽然为了说明的目的而对本发明具体 的实施例进行了描述,但是在不脱离本发明的实质和范围的情况下, 还可以对本发明做出各种修改。例如,虽然已经将存储器集线器控制 器126描述成允许在任何存储模块130中未处理的存储器请求的数目 是一个具体的数目或者是一个可编程数目,但是其它的操作协议也是 可能的。同样,存储器集线器控制器126不是简单地延迟发出存储器 请求到具有太多未处理的存储器请求的存储模块130,存储器集线器 控制器126也可以将存储器请求路由到不同的存储模块130。因此, 本发明除了所附的权利要求外,不受任何限制。