输入输出处理器转让专利

申请号 : CN200810185602.3

文献号 : CN101452373B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王训文周德成

申请人 : 普安科技股份有限公司

摘要 :

本发明为一输入输出处理器,包含一内嵌式中央处理器;一交换器连接至该内嵌式中央处理器;一外接式中央处理器总线控制器连接至该交换器,用于可选择性地连接一外接式中央处理器;一第一存储器控制器连接至该交换器用于连接一第一存储器;以及一第二存储器控制器连接至该交换器,用于可选择性地连接一第二存储器。本发明的输入输出处理器可视情况连接该外接式中央处理器、连接该第二存储器、或是可连接至不同等级的该外接式中央处理器,以符合成本考量与实际应用需求。

权利要求 :

1.一种于储存虚拟化系统中使用的输入输出处理器,该输入输出处理器包含有:一内嵌式中央处理器;

一交换器,该交换器连接至该内嵌式中央处理器;

一外接式中央处理器总线控制器,连接至该交换器,用于可选择性地连接一外接式中央处理器;

一第一存储器控制器,连接至该交换器,用于连接一第一存储器;以及一第二存储器控制器,连接至该交换器,用于可选择性地连接一第二存储器。

2.如权利要求1所述的输入输出处理器,其中该交换器包含:

一第一仲裁器;

一第二仲裁器;以及

一第一桥接器,连接于该第一与第二仲裁器之间;

其中,该内嵌式中央处理器、外接式中央处理器总线控制器、及该第二存储器控制器连接于该一第二仲裁器上,该第一存储器控制器连接于该一第一仲裁器上。

3.如权利要求2所述的输入输出处理器,其中该第一仲裁器操作于一第一总线协定,且该第二仲裁器操作于一第二总线协定。

4.如权利要求3所述的输入输出处理器,进一步包含一地址重新映射器,连接于该第一与第二仲裁器之间,且与该第一桥接器连接。

5.如权利要求2所述的输入输出处理器,进一步包含一独立冗余磁盘阵列等级6引擎单元,以产生同位数据,该独立冗余磁盘阵列等级6引擎单元连接到第一仲裁器。

6.如权利要求2所述的输入输出处理器,进一步包含一数据一致性字段引擎单元,以产生数据一致性字段数据或通过该数据一致性字段数据检测其相对应的使用者数据的正确性,该数据一致性字段引擎单元连接到第一仲裁器。

7.如权利要求2所述的输入输出处理器,进一步包含一输入输出接口控制器,用以与一输入输出装置连结控制器相连接,该输入输出接口控制器连接到第一仲裁器。

8.如权利要求2所述的输入输出处理器,进一步包含一通用序列总线控制器,用以处理传送至该输入输出处理器的通用序列总线讯号,该通用序列总线控制器连接到第二仲裁器。

9.如权利要求2所述的输入输出处理器,进一步包含一传输控制协定引擎单元用以搬移存储器中的数据,该传输控制协定引擎单元连接到第一仲裁器。

10.如权利要求2所述的输入输出处理器,其中该输入输出处理器选择性地连接有一外接式中央处理器,则该外接式中央处理器及该内嵌式中央处理器两者之一作为一储存虚拟化控制器的主要中央处理器,而两者的另一作为辅助中央处理器,该主要中央处理器可将来自与该储存虚拟化控制器的一输入输出装置连结控制器连接的一主机单元的部分或全部请求,分配给该辅助中央处理器来执行。

11.如权利要求2所述的输入输出处理器,其中该第二存储器控制器选择性地连接有该第二存储器,且该第二存储器专门用来储存该内嵌式中央处理器和/或该外接式中央处理器的数据及指令。

12.如权利要求2所述的输入输出处理器,其中该第二存储器控制器选择性地连接有该第二存储器,且该内嵌式中央处理器和/或该外接式中央处理器的数据及指令以外的其他输入输出数据储存在该第一存储器中。

13.如权利要求1所述的输入输出处理器,进一步包含一独立冗余磁盘阵列等级6引擎单元,以产生同位数据,该独立冗余磁盘阵列等级6引擎单元连接到交换器。

14.如权利要求1所述的输入输出处理器,进一步包含一数据一致性字段引擎单元,以产生数据一致性字段数据或通过该数据一致性字段数据检测其相对应的使用者数据的正确性,该数据一致性字段引擎单元连接到交换器。

15.如权利要求1所述的输入输出处理器,进一步包含一通用序列总线控制器,用以处理传送至该输入输出处理器的通用序列总线讯号,该通用序列总线控制器连接到交换器。

16.如权利要求1所述的输入输出处理器,进一步包含一传输控制协定引擎单元用以搬移存储器中的数据,该传输控制协定引擎单元连接到交换器。

17.如权利要求1所述的输入输出处理器,其中该输入输出处理器选择性地连接有一外接式中央处理器,且该外接式中央处理器及该内嵌式中央处理器两者之一作为一储存虚拟化控制器的主要中央处理器,而两者的另一作为辅助中央处理器,该主要中央处理器可将来自与该储存虚拟化控制器的一输入输出装置连结控制器连接的一主机单元的部分或全部请求,分配给该辅助中央处理器来执行。

18.如权利要求1所述的输入输出处理器,其中该第二存储器控制器选择性地连接有该第二存储器,且该第二存储器专门用来储存该内嵌式中央处理器和/或该外接式中央处理器的数据及指令。

19.如权利要求1所述的输入输出处理器,其中该第二存储器控制器选择性地连接有该第二存储器,且该内嵌式中央处理器和/或该外接式中央处理器的数据及指令以外的其他输入输出数据储存在该第一存储器中。

20.一种储存虚拟化控制器,包含有:

一输入输出处理器;

至少一第一存储器;

至少一输入输出装置连结控制器,与该输入输出处理器相连接;

一主机端口,设置于一该至少一输入输出装置连结控制器中,用于连接至一主机单元;

以及

一装置端口,设置于一该至少一输入输出装置连结控制器中,用于连接至少一实体储存装置;

其中,该输入输出处理器包含有

一内嵌式中央处理器;

一交换器,该交换器连接至该内嵌式中央处理器;

一外接式中央处理器总线控制器,连接至该交换器,用于可选择性地连接一外接式中央处理器;以及一第一存储器控制器,连接至该交换器,用于连接一第一存储器;以及一第二存储器控制器,连接至该交换器,用于可选择性地连接一第二存储器。

21.如权利要求20所述的储存虚拟化控制器,其中该交换器包含:一第一仲裁器;

一第二仲裁器;以及

一第一桥接器,连接于该第一与第二仲裁器之间;

其中,该内嵌式中央处理器、外接式中央处理器总线控制器、及该第二存储器控制器连接于该一第二仲裁器上,该第一存储器控制器连接于该一第一仲裁器上。

22.如权利要求21所述的储存虚拟化控制器,其中该第一仲裁器操作于一第一总线协定,且该第二仲裁器操作于一第二总线协定。

23.如权利要求22所述的储存虚拟化控制器,进一步包含一地址重新映射器,连接于该第一与第二仲裁器之间,且与该第一桥接器连接。

24.如权利要求20所述的储存虚拟化控制器,进一步包含一独立冗余磁盘阵列等级6引擎单元,以产生同位数据,该独立冗余磁盘阵列等级6引擎单元连接到交换器。

25.如权利要求20所述的储存虚拟化控制器,进一步包含一数据一致性字段引擎单元,以产生数据一致性字段数据或通过该数据一致性字段数据检测其相对应的使用者数据的正确性,该数据一致性字段引擎单元连接到交换器。

26.如权利要求20所述的储存虚拟化控制器,进一步包含一通用序列总线控制器,用以处理传送至该输入输出处理器的通用序列总线讯号,该通用序列总线控制器连接到交换器。

27.如权利要求20所述的储存虚拟化控制器,进一步包含一传输控制协定引擎单元用以搬移存储器中的数据,该传输控制协定引擎单元连接到交换器。

28.如权利要求20所述的储存虚拟化控制器,其中当该输入输出处理器选择性地连接有一外接式中央处理器时,则该外接式中央处理器及该内嵌式中央处理器两者之一作为储存虚拟化控制器的主要中央处理器,而两者的另一作为辅助中央处理器,该主要中央处理器可将来自与该输入输出装置连结控制器连接的该主机单元的部分或全部请求,分配给该辅助中央处理器来执行。

29.如权利要求20所述的储存虚拟化控制器,其中该第二存储器控制器选择性地连接有该第二存储器,且该第二存储器专门用来储存该内嵌式中央处理器和/或该外接式中央处理器的数据及指令。

30.如权利要求20所述的储存虚拟化控制器,其中该第二存储器控制器选择性地连接有该第二存储器,且该内嵌式中央处理器和/或该外接式中央处理器的数据及指令以外的其他输入输出数据储存在该第一存储器中。

31.一种储存虚拟化子系统,包含有:

一独立冗余磁盘阵列包含多个实体储存装置,用以提供储存空间;以及一储存虚拟化控制器,连接于该独立冗余磁盘阵列,用以接收来自一主机单元存取该独立冗余磁盘阵列的输入输出请求;其中,该储存虚拟化控制器包含有

一输入输出处理器;

至少一第一存储器;

至少一输入输出装置连结控制器,与该输入输出处理器相连接;

一主机端口,设置于一该至少一输入输出装置连结控制器中,用于连接至该主机单元;

以及

一装置端口,设置于一该至少一输入输出装置连结控制器中,用于连接至该独立冗余磁盘阵列;

且其中,该输入输出处理器包含有:

一内嵌式中央处理器;

一交换器,该交换器连接至该内嵌式中央处理器;

一外接式中央处理器总线控制器,连接至该交换器,用于可选择性地连接一外接式中央处理器;

一第一存储器控制器,连接至该交换器,用于连接一第一存储器;以及一第二存储器控制器,连接至该交换器,用于可选择性地连接一第二存储器。

32.如权利要求31所述的储存虚拟化子系统,其中该交换器包含:一第一仲裁器;

一第二仲裁器;以及

一第一桥接器,连接于该第一与第二仲裁器之间;

其中,该内嵌式中央处理器、外接式中央处理器总线控制器、及该第二存储器控制器连接于该一第二仲裁器上,该第一存储器控制器连接于该一第一仲裁器上。

33.如权利要求32所述的储存虚拟化子系统,其中该第一仲裁器操作于一第一总线协定,且该第二仲裁器操作于一第二总线协定。

34.如权利要求33所述的储存虚拟化子系统,进一步包含一地址重新映射器,连接于该第一与第二仲裁器之间,且与该第一桥接器连接。

35.如权利要求31所述的储存虚拟化子系统,进一步包含一独立冗余磁盘阵列等级6引擎单元,以产生同位数据,该独立冗余磁盘阵列等级6引擎单元连接到交换器。

36.如权利要求31所述的储存虚拟化子系统,进一步包含一数据一致性字段引擎单元,以产生数据一致性字段数据或通过该数据一致性字段数据检测其相对应的使用者数据的正确性,该数据一致性字段引擎单元连接到交换器。

37.如权利要求31所述的储存虚拟化子系统,进一步包含一通用序列总线控制器,用以处理传送至该输入输出处理器的通用序列总线讯号,该通用序列总线控制器连接到交换器。

38.如权利要求31所述的储存虚拟化子系统,进一步包含一传输控制协定引擎单元用以搬移存储器中的数据,该传输控制协定引擎单元连接到交换器。

39.如权利要求31所述的储存虚拟化子系统,其中该输入输出处理器选择性地连接有一外接式中央处理器,且该外接式中央处理器及该内嵌式中央处理器两者之一作为储存虚拟化控制器的主要中央处理器,而两者的另一作为辅助中央处理器,该主要中央处理器可将来自与该输入输出装置连结控制器连接的该主机单元的部分或全部请求,分配给该辅助中央处理器来执行。

40.如权利要求31所述的储存虚拟化子系统,其中该第二存储器控制器选择性地连接有该第二存储器,且该第二存储器专门用来储存该内嵌式中央处理器和/或该外接式中央处理器的数据及指令。

41.如权利要求31所述的储存虚拟化子系统,其中该第二存储器控制器选择性地连接有该第二存储器,且该内嵌式中央处理器和/或该外接式中央处理器的数据及指令以外的其他输入输出数据储存在该第一存储器中。

42.一种用于输入输出处理器的数据处理方法,该输入输出处理器包含一交换器、一内嵌式中央处理器、一外接式中央处理器总线、一内嵌式中央处理器和/或外接式中央处理器以外的其他输入输出处理装置、以及一第一及一第二存储器控制器,其中,该交换器连接至该内嵌式中央处理器;该外接式中央处理器总线连接至该交换器,用于可选择性地连接一外接式中央处理器;第一存储器控制器连接至该交换器,用于连接一第一存储器;一第二存储器控制器连接至该交换器,用于可选择性地连接一第二存储器,该方法包含以下步骤:

提供一第二存储器连接至该第二存储器控制器,该第二存储器主要用于存放该内嵌式中央处理器和/或该外接式中央处理器数据及指令;

提供一第一存储器连接至该第一存储器控制器,该内嵌式中央处理器和/或该外接式中央处理器以外的其它输入输出处理装置的数据或指令存放在该第一存储器中;

提供一该内嵌式中央处理器和/或该外接式中央处理器指令于该第二存储器中;

该内嵌式中央处理器和/或该外接式中央处理器通过该交换器及该第二存储器控制器而至该第二存储器中存取该内嵌式中央处理器和/或该外接式中央处理器指令及数据;

由该内嵌式中央处理器和/或该外接式中央处理器以外的其他输入输出处理装置处理一第一输入输出数据;

该第一输入输出数据通过该交换器而缓冲暂存于该第一存储器中。

43.如权利要求42的方法,其中内嵌式中央处理器和/或该外接式中央处理器以外的其他输入输出处理装置包含一输入输出接口控制器,该输入输出接口控制器用以与一输入输出装置连结控制器相连接,该输入输出接口控制器连接到交换器。

44.如权利要求42的方法,其中该输入输出处理器用于一储存虚拟化控制器中。

45.如权利要求42的方法,还包含以下的步骤:提供一外接式中央处理器与该外接式中央处理器总线连接,且该外接式中央处理器通过该交换器及该第二存储器控制器而至该第二存储器中读取该外接式中央处理器指令及数据。

46.如权利要求42的方法,还包含以下的步骤:在该交换器中提供一第一仲裁器及一第二仲裁器、以及提供一第一桥接器连接于该第一与第二仲裁器之间,且其中,该内嵌式中央处理器、外接式中央处理器总线控制器、及该第二存储器控制器连接于该一第二仲裁器上,该第一存储器控制器连接于该一第一仲裁器上,该外接式中央处理器总线控制器连接于该外接式中央处理器与该第二仲裁器之间。

47.如权利要求46的方法,其中该第一仲裁器操作于一第一总线协定,且该第二仲裁器操作于一第二总线协定。

48.如权利要求47的方法,还包含以下的步骤:提供一地址重新映射器连接于该第一与第二仲裁器之间,且与该第一桥接器连接。

49.如权利要求42所述的方法,还包含以下的步骤:提供一独立冗余磁盘阵列等级6引擎单元连接于该交换器,以产生同位数据。

50.如权利要求42所述的方法,还包含以下的步骤:提供一数据一致性字段引擎单元连接于该交换器,以产生数据一致性字段数据或通过该数据一致性字段数据检测其相对应的使用者数据的正确性。

51.如权利要求42所述的方法,还包含以下的步骤:提供一通用序列总线控制器连接于该交换器,用以处理传送至该输入输出处理器的通用序列总线讯号。

52.如权利要求42所述的方法,还包含以下的步骤:提供一传输控制协定引擎单元用以搬移存储器中的数据,该传输控制协定引擎单元连接于该交换器。

53.如权利要求42所述的方法,还包含以下的步骤:提供一外接式中央处理器与该外接式中央处理器总线连接,以分摊该内嵌式中央处理器的工作负荷。

说明书 :

输入输出处理器

技术领域

[0001] 本发明涉及一种输入输出处理器(IO Processor),特别是涉及一种内部具有内嵌式中央处理器(embedded CPU)且可选择性地连接外接式中央处理器(external CPU)的输入输出处理器。

背景技术

[0002] 传统储存虚拟化系统中,或因仅使用软件(software)来处理大量的输入输出(Input/Output,IO)程序,使得中央处理器(CPU)花费大量时间在处理IO程序上,致使系统整体效能低落;或因未于储存虚拟化控制器(StorageVirtualization Controller,SVC)内配置专用的IO处理器,致使储存虚拟化控制器内电部路复杂且成本增加;或因储存虚拟化控制器(SVC)内所配置专用的IO处理器,其虽具有一内嵌式CPU却无CPU扩充性,但目前因网路的发达,来自众多主机系统端的请求皆需同时被处理的情况下,大量的数据搬移、计算、中断等指令,仅依靠一内嵌式CPU来处理所有的程序并不足以应付实际上应用所需,系统整体效能不佳,IO处理器效能(performance)成为系统上的瓶颈。
[0003] 另外传统储存虚拟化控制器中的IO处理器若搭配内部具双核心(dualcore)架构的一外接式CPU来处理IO程序,虽然处理速度快,但成本高,当其内部一CPU发生故障时,需将该双核心架构的外接式CPU完全更换,无法仅更换该故障的一CPU。又当CPU负荷过重或过轻的情况时,该双核心架构的一外接式CPU,无法弹性的更换其中的一CPU以符合成本考量与实际应用需求。

发明内容

[0004] 本发明提出一种内部具内嵌式中央处理器(Embedded CPU)的输入输出处理器(IO Processor),可弹性地视情况搭配一外接式中央处理器(ExternalCPU),并调整该外接式中央处理器的等级,以符合成本考量与实际应用需求。该输入输出处理器包含有一交换器(Switch)连接至该内嵌式中央处理器;一外接式中央处理器总线(CPU bus)控制器连接至该交换器用于可选择性地连接一外接式中央处理器;一第一存储器控制器连接至该交换器,用于连接一第一存储器;以及一第二存储器控制器,连接至该交换器,用于可选择性地连接一第二存储器。
[0005] 本发明还提出一种储存虚拟化控制器(storage virtualization controller,SVC),包含有一输入输出处理器;至少一第一存储器;至少一输入输出装置连结控制器(IO device interconnect controller),与该输入输出处理器相连接;一主机端口,设置于一该至少一输入输出装置连结控制器中,用于连接至一主机单元(host);以及,一装置端口,设置于一该至少一输入输出装置连结控制器中,用于连接至一实体储存装置(Physical Storage Device,PSD)。其中,该输入输出处理器包含有一内嵌式中央处理器;一交换器,该交换器连接至该内嵌式中央处理器;一外接式中央处理器总线控制器,连接至该交换器,用于可选择性地连接一外接式中央处理器;以及,一第一存储器控制器(memory controller),连接至该交换器,用于连接一第一存储器;及一第二存储器控制器,连接至该交换器,用于可选择性地连接一第二存储器。
[0006] 本发明还提出了一种储存虚拟化子系统,包含有一独立冗余磁盘阵列(disk array)包含多个实体储存装置,用以提供储存空间;以及一储存虚拟化控制器,连接于该独立冗余磁盘阵列,用以接收来自一主机单元的输入输出请求存取该独立冗余磁盘阵列。其中,该储存虚拟化控制器包含有一输入输出处理器;至少一第一存储器;至少一输入输出装置连结控制器,与该输入输出处理器相连接;一主机端口,设置于一该至少一输入输出装置连结控制器中,用于连接至该主机单元;以及,一装置端口,设置于一该至少一输入输出装置连结控制器中,用于连接至该独立冗余磁盘阵列。其中,该输入输出处理器包含有一内嵌式中央处理器;一交换器,该交换器连接至该内嵌式中央处理器;一外接式中央处理器总线控制器,连接至该交换器,用于可选择性地连接一外接式中央处理器;以及一第一存储器控制器,连接至该交换器,用于连接一第一存储器;及一第二存储器控制器,连接至该交换器,用于可选择性地连接一第二存储器。
[0007] 本发明还提出了一种用于输入输出处理器的数据处理方法;其中该输入输出处理器包含一交换器、一内嵌式中央处理器、一外接式中央处理器总线、一内嵌式中央处理器和/或外接式中央处理器以外的其他输入输出(IO)处理装置、以及一第一及一第二存储器控制器,其中,该交换器连接至该内嵌式中央处理器;该外接式中央处理器总线连接至该交换器,用于可选择性地连接一外接式中央处理器;第一存储器控制器连接至该交换器,用于连接一第一存储器;一第二存储器控制器连接至该交换器,用于可选择性地连接一第二存储器,该方法包含以下步骤:提供一第二存储器连接至该第二存储器控制器,该第二存储器主要用于存放该内嵌式中央处理器和/或该外接式中央处理器数据及指令;提供一第一存储器连接至该第一存储器控制器,该内嵌式中央处理器和/或该外接式中央处理器以外的其他输入输出处理装置的数据存放于该第一存储器中;提供一中央处理器指令于该第二存储器中;该内嵌式中央处理器和/或该外接式中央处理器通过该交换器及该第二存储器控制器而至该第二存储器中存取该内嵌式中央处理器和/或该外接式中央处理器指令(Instruction)或数据;由该内嵌式中央处理器和/或该外接式中央处理器以外的其他输入输出处理装置处理一第一输入输出数据;该第一输入输出数据通过该交换器而缓冲暂存(buffer)于该第一存储器中。
[0008] 依据本发明的一实施例,该交换器包含一第一仲裁器(Arbiter);一第二仲裁器;以及一第一桥接器(Bridge),连接于该第一与第二仲裁器之间;其中,该内嵌式中央处理器、外接式中央处理器总线控制器、及该第二存储器控制器连接于该一第二仲裁器上,该第一存储器控制器连接于该一第一仲裁器上。
[0009] 依据本发明的一实施例,该第一仲裁器操作于一第一总线协定(bus protocol),且该第二仲裁器操作于一第二总线协定。
[0010] 依据本发明的一实施例,该输入输出处理器包含一地址重新映射器(Address Remapping Device),连接于该第一与第二仲裁器之间,且与该第一桥接器连接。 [0011] 依据本发明的一实施例,该输入输出处理器包含一独立冗余磁盘阵列等级6引擎单元(RAID 6Engine),以产生同位数据,该独立冗余磁盘阵列等级6引擎单元连接到第一仲裁器。
[0012] 依据本发明的一实施例,该输入输出处理器包含一数据一致性字段引擎单元(Data Integrity Field Engine,DIF Engine),以产生数据一致性字段数据或通过该数据一致性字段数据检测其相对应的使用者数据的正确性,该数据一致性字段引擎单元连接到第一仲裁器。
[0013] 依据本发明的一实施例,该输入输出处理器包含一传输控制协定引擎单元用以搬移存储器中的数据,该传输控制协定引擎单元连接到第一仲裁器。
[0014] 依据本发明的一实施例,该输入输出处理器包含一输入输出接口控制器,用以与一输入输出装置连结控制器相连接,该输入输出接口控制器连接到第一仲裁器。 [0015] 依据本发明的一实施例,该输入输出处理器包含一通用序列总线(universal serial bus,USB)控制器,用以处理传送至该输入输出处理器的通用序列总线讯号,该通用序列总线控制器连接到第二仲裁器。
[0016] 依据本发明的一实施例,该输入输出处理器包含一传输控制协定引擎单元(Transmission Control Protocol Engine,TCP Engine),用以搬移存储器中的数据,该传输控制协定引擎单元连接到第一仲裁器。
[0017] 依据本发明的一实施例,该输入输出处理器选择性地连接有一外接式中央处理器,则该外接式中央处理器及该内嵌式中央处理器两者之一是作为一储存虚拟化控制器的主要中央处理器,而两者的另一是作为辅助中央处理器,该主要中央处理器可将来自与该储存虚拟化控制器的一输入输出装置连结控制器连接的一主机单元(host entity)的部分或全部请求,分配给该辅助中央处理器来执行。
[0018] 依据本发明的一实施例,该输入输出处理器连接有一外接式中央处理器与该外接式中央处理器总线连接,以分摊该内嵌式中央处理器的工作负荷。
[0019] 依据本发明的一实施例,该第二存储器控制器选择性地连接有该第二存储器,且该第二存储器专门用来储存该内嵌式中央处理器和/或该外接式中央处理器的数据及指令(Instruction)。
[0020] 依据本发明的一实施例,该第二存储器控制器选择性地连接有该第二存储器,且该内嵌式中央处理器和/或该外接式中央处理器的数据及指令以外的其他输入输出数据是储存在该第一存储器中。
[0021] 图1为依据本发明的储存虚拟化系统中组成单元的方块图。
[0022] 图2为依据本发明的储存虚拟化控制器的方块图。
[0023] 图3为依据本发明的IO处理器的一实施例的方块图。
[0024] 图4为依据本发明的IO处理器的另一实施例的方块图及该IO处理器与其他电路单元的一连接态样。
[0025] 图5为依据本发明图4的实施例的方块图中该IO处理器与其他电路单元的另一连接态样。
[0026] 附图符号说明
[0027]
[0028] 具体实施方式
[0029] 【储存虚拟化技术】
[0030] 所谓储存虚拟化(storage virtualization)是一种将实体储存空间虚拟化的技术,其是将实体储存装置(physical storage device,PSD)的不同区段结合成可供一主机系统存取使用的逻辑储存体(logical storage entity)-在此称为「逻辑媒体单元」(logical media units,LMU)。该技术主要用于独立冗余磁盘阵列(redundant array of inexpensive disks,RAID)储存虚拟化,经由此独立冗余磁盘阵列的技术,可将较小实体储存装置结合成为容量较大、可容错、高效能的逻辑媒体单元。
[0031] 图1是依据本发明的一储存虚拟化系统(storage virtualization system,SVS)的一实施例中各组成单元的方块图。该储存虚拟化系统包含有一主机单元(host entity)10、一储存虚拟化控制器(storage virtualization controller,SVC)200及一实体储存装置阵列400。虽然于图1中仅有一主机单元10与一储存虚拟化控制器200相互连接,但实际应用上可为一主机单元10连接多个储存虚拟化控制器200,或是多个主机单元10连接一储存虚拟化控制器200,或是多主机单元10连接多储存虚拟化控制器200。 [0032] 主机单元10可为一主机计算机,如一伺服器系统、工作站、个人计算机系统等,而该储存虚拟化控制器200可为一独立冗余磁盘阵列控制器(RAID controller)或是一仅一捆盘磁盘阵列(Just a Bunch of Drives,JBOD)模拟器。实体储存装置阵列400包含了8个实体储存装置100,以作为该储存虚拟化计算机系统储存数据之处。该实体储存装置可为硬磁盘机(hard disk drive,HDD)或光盘机(Optical Disc drive)或多功能数字盘片光盘机(digital versatile disc drive,DVD drive)等等。该数据可分为使用者数据(user data)及检核数据(check data),使用者数据是一般供给主机单元10所使用的数据;检核数据可为镜射数据(mirrored data)或同位数据(parity data);镜射数据为与使用者数据相同的备份数据,同位数据是将使用者数据经过演算法处理后所得的数据,而当部分使用者数据遗失时,可利用同位数据与其他部分的使用者数据,来重建(regenerate)该原来的使用者数据。虽然图1中的实体储存装置阵列400内仅包含8个实体储存装置100,但在实际上并未受限于此数目。
[0033] 图2是依据本发明的一储存虚拟化控制器200的一实施例的方块图。储存虚拟化控制器的主要目的是将实体储存媒体的各区段的组合映射(map) 形成一主机系统可见的逻辑媒体单元。由该主机系统发出的输入输出(IO)请求于接收之后会先被剖析并解译,且相关的操作及数据会被编译成实体储存装置的输入输出请求。这个过程可以是间接地,例如运用快取、延迟(如:回写(write-back))、预期(anticipate)(先读(read-ahead))、群集(group)等操作来加强效能及其他的操作特性,因而一主机输入输出请求并不一定是以一对一的方式直接对应于实体储存装置输入输出请求。
[0034] 储存虚拟化控制器200与实体储存装置阵列400可构成储存虚拟化子系统(storage virtualization subsystem)。当储存虚拟化子系统的逻辑媒体单元的RAID等级(RAID level)为RAID 0或RAID 1以外的型态(例如RAID 3至RAID 5)时,实体储存装置阵列400中会包含有至少一同位实体储存装置100,也就是说,此一实体储存装置100会存放有同位数据,故整体的数据安全性因而提升。而且由于所处理的数据会被分送至不只一个实体储存装置100,所以执行输出入操作的效能亦会有所提升。另外,由于逻辑媒体单元为多个实体储存装置100的结合,所以一单一逻辑媒体单元中的可读储存容量亦可大幅提升。举例来说,RAID 5的RAID子系统即可实现上述所有的功能。
[0035] 当储存虚拟化子系统的一逻辑媒体单元设定为使用RAID 1时,相同的数据会被储存在两个实体储存装置100中。如此一来,虽然使实体储存装置100的成本增加了两倍,但却可大幅提升数据的安全性(availability)或存取效率。
[0036] 另外,当效能提升的重要性大于数据的安全性时,储存虚拟化子系统的一逻辑媒体单元可以设定为RAID 0,此时数据安全性并不会因而提升,然而效能却可以有大幅的提升。例如一采用RAID 0、且有两个硬盘的RAID子系统,其相较于一般仅有一个硬盘的储存装置,所能提升的效能其理论值可达200%,因为不同的数据段可经由储存虚拟化控制器200的控制,而同时储存入两个分开的硬盘。
[0037] 该储存虚拟化控制器200包含主机端输入输出装置连结控制器(host-side I/O device interconnect controller)220、存储器280、装置端输入输出装置连结控制器(device-side I/O device interconnect controller)300、输入输出处理器(IO Processor)224、外接式中央处理器(External CPU)243、只读存储器(read only memory,ROM)246、非易失性存储器(non-volatile random access memory,NVRAM)248、液晶显示器(LCD)350。主机端输入输出装置连结控制器220作为主机单元10与IO处理器224的缓冲接口,可将主机单元10的输入输出请求(IO request)通过主机端输入输出装置连结控制器220送至IO处理器224处理,或是将IO处理器224处理的结果经由主机端输入输出装置连结控制器220回复给主机单元10;装置端输入输出装置连结控制器300则作为IO处理器224与实体储存装置阵列400的缓冲接口。装置端输入输出装置连结控制器300则将IO处理器224的输入输出请求通过装置端输入输出装置连结控制器300送给实体储存装置阵列
400,或是自实体储存装置阵列400经由装置端输入输出装置连结控制器300传送实体储存装置内所储存的数据至存储器280。主机端输入输出装置连结控制器220及装置端输入输出装置连结控制器300内分别设有多个主机端口与装置端口分别用以与主机端输入输出装置连结及置端输入输出装置连结连接。依据本发明的一实施例,该主机端输入输出装置连结控制器220及装置端输入输出装置连结控制器300可结合为一单一的输入输出装置连结控制器,其内设有多个端口分别用以与主机端输入输出装置连结及置端输入输出装置连结连接。主机端输入输出装置连结控制器220、存储器280及装置端输入输出装置连结控制器300皆通过总线与IO处理器224相连。其中,因为该IO处理器224中已具有一内嵌式中央处理器(Embedded CPU)242(见图3),该外接式CPU 243可以选择性地设置或不设置。
存储器(Memory)280可更进一步包含第一存储器2801及第二存储器2802,存储器2801及
2802可用来储存暂存数据和/或CPU数据及指令(Instruction)。其中,该存储器2802可选择性地设置或不设置。
[0038] 图2中该外接式CPU 243可为,例如,一Power PC CPU,而只读存储器(ROM)246可为一快闪存储器(Flash memory),用来储存基本输入输出系统(BIOS)和/或其他程序。NVRAM 248用来储存该实体储存装置阵列输入输出操作执行状态的相关数据,以备输入输出操作尚未做完前发生不正常电源关闭时,作为检验使用。LCD模块350则是用来显示子系统的操作状态。箱体管理服务电路(enclosure management service,EMS)360用来控制该实体储存装置阵列的电源及进行其他的管理。ROM 246,NVRAM 248,LCD模块350皆经由一X-总线(X-bus)连结至IO处理器224。
[0039] 图3是依据本发明的IO处理器224的一实施例的方块图。该IO处理 器224内部包含内嵌式中央处理器(embedded CPU)242、外接式中央处理器总线控制器(external CPU bus controller)244、通用序列总线控制器(universal serial bus controller,USB controller)245、数据一致性字段引擎单元(data integrity field engine,DIF engine)255、传输控制协定引擎单元(transmission control protocol engine,TCP engine)256、RAID 6引擎单元257、两组周边元件连结-快速接口控制器(peripheral component interconnect-express controller,PCI-Express controller)258 及 259、第一及第二存储器控制器(memory access controller)270及275、集成电路间控制器(inter-integrated circuitry controller,I2C controller)292、通用目的输入输出控制器(general purpose input/output controller,GPIO controller)293、以及非同步串列接口控制器(universal asynchronous receiver transmitter controller,UART controller)294,均连接至一交换器(switch)260上,该交换器260为用于与该交换器260相连的各电路区块间的双向传输接口。其中,该IO处理器224通过外接式CPU总线控制器244,可选择性地连接一外接式CPU(external CPU)243,且该第一存储器控制器270是与一第一存储器模块2801相连接,该第二存储器控制器275则可选择性地与第二存储器模块
2802相连接。
[0040] 依据本发明的一实施例,该交换器260中可设有一仲裁器(arbiter,图未示),且所述内嵌式CPU 242、外接式CPU总线控制器244、USB控制器245、DIF引擎单元255、TCP引擎单元256、RAID 6引擎单元257、两PCI-Express接口控制器258及259、第一及第二存储器控制器270及275、I2C控制器292、GPIO控制器293、以及UART控制器294,均连接至该仲裁器上。
[0041] 依据本发明的一实施例,可以仅设置该第一存储器2801与该第一存储器控制器270相连接,而不设置该第二存储器2802与该第二存储器控制器275相连接,也不设置该外接式CPU 243与该外接式CPU总线控制器244相连接。
[0042] 依据本发明的另一实施例,可以同时设置该第一存储器2801与该第一存储器控制器270相连接,及该第二存储器2802与该第二存储器控制器275相连接,但不设置该外接式CPU 243与该外接式CPU总线控制器244相连接。
[0043] 依据本发明的又一实施例,可以仅设置该第一存储器2801与该第一存储器控制器270相连接,而不设置该第二存储器2802与该第二存储器控制 器275相连接,但设置该外接式CPU 243与该外接式CPU总线控制器244相连接。
[0044] 依据本发明的再一实施例,可以同时设置该第一存储器2801与该第一存储器控制器270相连接,及该第二存储器2802与该第二存储器控制器275相连接,且设置该外接式CPU 243与该外接式CPU总线控制器244相连接。依据本发明的一实施例,该第二存储器可专门用来储存该内嵌式CPU和/或外接式CPU的数据及指令(instruction)。 [0045] 依据上述的实施例,当不设置该外接式CPU 243时,该储存虚拟化控制器中仅具有该内嵌式CPU 242处理IO请求(IO request)及运算。当设置该外接式CPU 243与该IO处理器224相连接时,该储存虚拟化控制器中具有该内嵌式CPU 242及该外接式CPU 243来处理IO请求及运算。
[0046] 依据上述的实施例,当仅设置该第一存储器2801而不设置该第二存储器2802时,该第一存储器2801用作为一泛用存储器,用以储存CPU数据及指令、以及其他电路单元的数据。
[0047] 当同时设置该第一存储器2801及该第二存储器2802时,依据本发明的一实施例,该第二存储器2802可以用作为储存CPU数据及指令的专用存储器,该第一存储器2801用作为一泛用存储器,用以储存CPU数据及指令、以及其他各电路单元的数据。依据本发明的又一实施例,该第二存储器可专门用来储存连接在该IO处理器224上的CPU的数据及指令;其中,连接在该IO处理器224上的CPU,是指内嵌式CPU或外接式CPU或是此两者。依据本发明的再一实施例,CPU的数据及指令以外的其他IO数据是储存在该第一存储器中。依据本发明的另一实施例,该第一存储器2801及该第二存储器2802两者皆用作为一泛用存储器。
[0048] 图4是依据本发明的IO处理器224的另一实施例的方块图。该IO处理器224包含一DIF引擎单元255、一TCP引擎单元256、一RAID 6引擎单元257、两PCI-Express接口控制器258及259、以及一第一存储器控制器270,均连接至一第一仲裁器(Arbiter)261上,该第一仲裁器261为用于与该第一仲裁器261相连的各电路区块间的双向传输接口。该处理器224另外包含一内嵌式CPU 242、一外接式CPU总线控制器244、一USB控制器
245、以及一第二存储器控制器275,均连接至一第二仲裁器263上;该IO处理器224又包含一I2C控制器292、一GPIO控制器293、以及一UART 控制器294,皆通过一第二桥接器(bridge)265而连接至该第二仲裁器263上,该第二仲裁器263为用于与该第二仲裁器
263相连的各电路区块间的双向传输接口。该第二仲裁器263则通过一地址重新映射器(address remapping device)262及一第一桥接器(bridge)264而连接至该第一仲裁器
261上;与该第一仲裁器261相连的各电路区块及与该第二仲裁器263相连的各电路区块之间,可通过该地址重新映射器262及该第一桥接器264而沟通。其中,该IO处理器224通过外接式CPU总线控制器244,可选择性地连接一外接式CPU 243,且该第一存储器控制器270与一第一存储器2801相连接,该第二存储器控制器275则可选择性地与第二存储器
2802相连接。图4中各电路区块分别叙述如下。
[0049] 请同时参阅图3及图4。依据本发明的一实施例,内嵌式CPU(embedded CPU)242可为,例如一Power PC CPU PPC440系列,其采用超纯量(super scalar)架构设计,有36条地址线及128条传送数据线及128条接收数据线,前端总线(front side bus,FSB)的频率为166M Hz,工作频率为667M Hz。依据本发明的一实施例,当该外接式CPU 243被连接使用时,该外接式CPU243作为主要的CPU,而该内嵌式CPU 242则作为辅助CPU之用,以协助外接式CPU 243处理部分或全部的工作。外接式CPU 243可利用软件、固件的设定而将部分或全部的工作负荷(work load),分配给内嵌式CPU 242来执行,当该内嵌式CPU 242将该外接式CPU 243所分配的工作处理完毕后,再通知该外接式CPU 243最后处理的结果及结果的相关信息。该内嵌式CPU 242可依照软件所设定来处理部分存储器数据的存取或其他周边接口(Peripheral Interface)的IO工作,让外接式CPU 243有更多时间处理其他工作和/或来自主机单元10的请求,不需要独自处理来自主机单元10所有的请求与IO工作,以减轻该外接式CPU 243的工作负荷,增进该系统整体的效能。依据本发明的另一实施例,该内嵌式CPU 242作为主要的CPU,而该外接式CPU 243则作为辅助的CPU用,以协助内嵌式CPU 242处理部分的工作。依据本发明的又一实施例,所述外接式CPU 243及该内嵌式CPU242可以平行处理方式分工。
[0050] 依据本发明的另一实施例,当该外接式CPU 243被省略时,该内嵌式CPU 242作为主要的CPU,此情况该内嵌式CPU 242便要处理来自主机单元10全部的请求。一般的CPU仅有32条地址线可定址至4GB的存储空间, 然而依据本发明的另一实施例,该内嵌式CPU242中可具有36条地址线而最大可定址至64GB(giga bytes,GB)的存储空间,端视软件需求而弹性应用。依据本发明的另一实施例,该IO处理器224中的内嵌式CPU 242可为多个。
上述该内嵌式CPU 242为一Power PC PPC440系列的CPU,在此仅为本发明说明性的实施例,并非作为本发明其他实施例中的限制。
[0051] 依据本发明的一实施例,外接式CPU总线控制器244可为,例如一60X总线接口控制器(60X bus interface controller),在此仅为本发明说明性实施例,并非作为本发明其他实施例中的限制。该总线接口控制器244作为外接式CPU 243与第二仲裁器263的传输接口,让通讯协定不相同的外接式CPU 243与第二仲裁器263二者可藉由60X总线接口控制器的接口转换相互作数据沟通。依据本发明的另一实施例,该外接式CPU总线控制器244可以连接多个外接式CPU 243。依据本发明的又一实施例,该外接式CPU总线控制器
244可为多个,以连接多个外接式CPU 243。
[0052] 依据本发明的一实施例,外接式CPU 243可为,例如一Power PCPPC750系列,在此仅为本发明说明性实施例,并非作为本发明其他实施例中的限制。该PPC750是一外接式的CPU,通过与IO处理器上的60X总线接口控制器与IO处理器内其他单元来沟通。PPC750也采用超纯量架构设计,有32条地址线及64条数据线,前端总线的频率为200M Hz,CPU工作频率最高为1G Hz,一般情况下为该储存虚拟化控制器处理繁重工作的主要CPU。该外接式CPU 243可以视系统工作的负荷量,弹性地增加CPU的等级来提升该系统的效能。依据本发明的另一实施例,该外接式CPU 243可为多个。
[0053] 依据本发明的一实施例,USB控制器245一般用于计算机周边系统中,可用来执行定义于通用序列总线2.0(USB 2.0)、增强式主机控制器接口(enhanced host controller interface,EHCI)及开放式主机控制器接口(open host controller interface,OHCI)等规格中主机控制器(host controller)的功能。该host controller可支持高速(high speed)480Mbps和/或全速(full speed)12Mbps和/或低速(low speed)1.5Mbps的USB传输功能。USB控制器245可以连接一个USB外接口(图未示),用来外接一个以USB接口作为传输接口的快闪存储器(flash memory)、或以USB接口作为传输接口的硬盘或光盘机、或是其他以USB接口作为传输接口的非易失性(non-volatile)储存装置等, 以作为非易失性存储器使用,而当主要电源断电时,将主存储器中的数据存入该非易失性存储器中。此外,该USB外接口也可以连接一个USB至区域网路(local area network,LAN)的界面,用以执行IO处理器224的除错功能。此外,该USB外接口也可以连接一个人计算机(personal computer,PC)上,用来检查IO处理器的状态。
[0054] 依据本发明的一实施例,DIF引擎单元(data integrity field engine,DIFEngine)255可在每一512字节(bytes)的数据区块(data block)数据上产生一8字节(bytes)的DIF保护数据,该DIF数据中包含4字节的参考标签(reference tag)、2字节的应用标签(application tag)及2字节的循环冗余码(cyclic redundancy code,CRC)。其中该参考标签可为(但不限于)记录该每一512字节的数据区块的数据地址后4字节;应用标签可为由使用者自行定义的值;循环冗余码是对该每一512字节数据执行演算法运算后所得到的错误检测码。该DIF数据可增进数据流(data stream)中的数据区块在传送、接收过程中的正确性,以提早检测出错误数据,避免误用错误数据,增进系统数据操作时的正确性。依据本发明的一实施例,该DIF引擎单元255可包含一产生模式(generation mode)及一认证模式(validation mode)。产生模式对每一512字节的数据产生一DIF数据;认证模式检验所收到的数据中,每一具有DIF数据来保护的使用者数据的正确性。 [0055] 依据本发明的一实施例,传输控制协定引擎单元(transmission control protocol engine,TCP engine)256用来搬移存储器内的数据,并将该搬移的数据依照演算法计算出一检核码(checksum),该检核码可用以检查所搬移的数据是否正确。当内嵌式CPU 242或外接式CPU 243欲自存储器中的某一区域搬至存储器中的另一区域或是搬至其他的存储器上时,会先在存储器280内建立一分散-集合表(scatter-gather list)并初始化TCP引擎单元256,然后由该TCP引擎单元256来执行存储器中的数据搬移工作。其中,该分散-集合表记载欲搬移数据位于存储器中的数据开始位置、数据目的位置及数据长度。TCP引擎单元256辅助该内嵌式CPU 242或该外接式CPU 243搬移存储器280中某区域内的大量数据,可减少内嵌式CPU 242或外接式CPU 243因执行存储器内数据搬移的负荷,故可增进系统执行效能。当该TCP引擎单元256的计算检核码功能关闭时,其可用作为一直接存储器存取(directmemory access,DMA)引擎单元。
[0056] 依据本发明的一实施例,RAID 6引擎单元257可在每一数据条带(Data Stripe,包含使用者数据及同位数据)中,以不同的种演算法产生多个同位数据P1,P2,...,Pn,其中n大于或等于2,n为整数。在同一数据条带遗失不大于n2个数据区块(data chunk)时,可利用同一数据条带中未遗失的使用者数据及所述同位数据根据相关的演算法重新产生(regenerate)所遗失的使用者数据。由于该同位数据包含多个同位数据,对于使用者数据遗失时的重建能力较仅具有单一同位数据者更佳,对于独立冗余磁盘阵列(RAID)系统来说,其具有更好的容错能力。该RAID 6引擎单元257中亦可仅执行单一同位数据计算功能,例如RAID 3或RAID 5。又依据本发明的一实施例,该RAID 6引擎单元257亦可以为其他RAID等级(level)的RAID引擎单元所取代。
[0057] 依据本发明的一实施例,PCI-Express接口控制器258用于连接主机端输入输出装置连结控制器(host-side I/O device interconnect controller)220的IO接口控制器,作为该IO处理器224与主机端之间的IO接口。依据本发明的另一实施例,PCI-Express接口控制器258可为多个,并非仅限定单一PCI-Express接口控制器。
[0058] 依据本发明的一实施例,该PCI-Express接口控制器259用于连接装置端输入输出装置连结控制器(device-side I/O device interconnect controller)300的IO接口控制器,作为该IO处理器224与实体储存装置(PSD)阵列400之间的IO接口。依据本发明的另一实施例,PCI-Express接口控制器259可为多个,并非仅限定单一PCI-Express接口控制器。
[0059] 依据本发明的又一实施例,上述IO接口控制器(258,259)亦可为具有周边元件连结(peripheral components interconnect,PCI)、周边元件连结-延伸(peripheral components interconnect-extension,PCI-X)协定,或者具有其他通讯协定的IO接口控制器。
[0060] 请参阅图4,依据本发明的一实施例,第一仲裁器261可为一多主端对一从端(multi-masters to 1slave)的双向数据传输接口,所述主端(master)单元可为DIF引擎单元255、TCP引擎单元256、RAID 6引擎单元257、两组PCI-Express接口控制器258、259及第一桥接器264等装置,且该从端(slave)单元则可为第一存储器控制器270。该第一仲裁器261用以决定哪一个主端单元可以取得对从端单元的存取控制权。例如,当该DIF引擎单元255从 该第一仲裁器261取得对该第一存储器控制器270的存取控制权后,即可通过该第一存储器控制器270对该第一存储器模块2801进行数据存取。该第一仲裁器261的工作频率为333MHz,总线数据宽度为128条传送数据线及128条接收数据线,该规格在此仅为本发明说明性实施例,并非作为本发明其他实施例中的限制。
[0061] 依据本发明的一实施例,地址重新映射器(address remapping device)262是一存储器地址的转址接口。当在系统中存在两相同存储空间的存储器模块(如:分别为512MB(mega bytes)及512MB的存储器模块)时,对CPU而言只能辨识一0至512MB-1的存储空间,而另一0至512MB-1的存储空间则要通过该转址接口以非0至512MB-1的其他地址呈现给CPU来读取。依据本发明的一实施例,该第二存储器模块2802为256MB,且当第一存储器模块2801与第二存储器模块2802二者均使用时,若该内嵌式CPU242与外接式CPU 243欲存取第一存储器模块2801中0至256MB-1地址上的数据时,由于第一存储器模块2801及第二存储器模块2802上均有0至256MB-1的地址,在设计上该内嵌式CPU 242与外接式CPU 243仅能辨识且存取该第二存储器模块2802中0至256MB-1的地址数据,而第一存储器模块2801中0至256MB-1的地址上的数据则需以其他地址呈现,否则无法存取。通过地址重新映射器262的转址功能,将该第一存储器模块2801中无法直接存取的0至256MB-1地址转换成其他地址,让该内嵌式CPU 242与外接式CPU 243皆可正确地存取第一存储器模块2801中0至256MB-1地址的数据。依据本发明的另一实施例中,当仅使用单一存储器模块时,亦可利用地址重新映射器262来进行转址功能。例如在单一存储器模块的存储空间超过4-GB而超出CPU的定址能力时,亦可利用地址重新映射器262来进行转址,而对存储器模块超过4-GB的部份进行定址。依据本发明的又一实施例中,该地址重新映射器262亦可为其他目的的转址。上述存储器模块上的地址仅为本发明说明性实施例,并非作为本发明其他实施例中的限制。
[0062] 依据本发明的一实施例,第二仲裁器263可为一多主端对二从端(multi-masters to 2slaves)的双向数据传输接口,所述主端单元为外接式CPU243、内嵌式CPU 242及USB控制器245等三单元,且所述从端单元则为第二桥接器265及第二存储器控制器275等装置。该第二仲裁器263用以 决定哪一个主端单元可以取得对从端单元的存取控制权。例如,当该内嵌式CPU 242从该第二仲裁器263取得对该第二存储器控制器275的存取控制权后,即可通过该第二存储器控制器275对第二存储器模块2802进行数据存取。该第二仲裁器263的工作频率为166MHz,总线数据宽度为128条传送数据线及128条接收数据线,该规格在此仅为本发明说明性实施例,并非作为本发明其他实施例中的限制。 [0063] 依据本发明的一实施例,第一桥接器264作为第一仲裁器261与第二仲裁器263间的数据转换接口。通过第二仲裁器263来传输的外接式CPU243或内嵌式CPU 242或USB控制器245欲将数据或控制信号传送至第一存储器控制器270时,由于该两种仲裁器261及263的工作频率及通讯协定(protocol)不相同,双方数据无法直接被对方使用,需通过该第一桥接器264的转换接口,数据方能被对方使用。
[0064] 依据本发明的一实施例,第二桥接器265作为第二仲裁器263与I2C控制器292、GPIO控制器293、UART控制器294等单元间数据的转换接口。当通过第二仲裁器263来传输的外接式CPU 243或内嵌式CPU 242或USB控制器245欲将控制信号或数据传送至I2C控制器292、GPIO控制器293、UART控制器294等单元时、或是I2C控制器292、GPIO控制器293、UART控制器294等单元欲将控制信号或数据传送至通过第二仲裁器263来传输之外接式CPU 243或内嵌式CPU 242或USB控制器245时,由于该第二仲裁器263与I2C控制器292、GPIO控制器293、UART控制器294等单元的工作频率及通讯协定并不相同,双方数据无法直接被对方使用,需通过该第二桥接器265的转换接口,数据方能被对方使用。 [0065] 依据本发明的一实施例,第一存储器控制器(memory access controller)270可为具有支持错误修正程序码(error-correcting code,ECC)功能且可用于双倍速数据传输模式1(double data rate 1,DDR1)或双倍速数据传输模式2(double data rate 2,DDR2)的存储器控制器,其数据总线(data bus)为64位元。该第一存储器控制器270负责接受CPU或其他周边单元(如:DIF引擎单元、RAID 6引擎单元、TCP引擎单元等)的读写请求来存取第一存储器模块2801上的数据。其中,通过第二仲裁器263来传输的各单元,如外接式CPU 243与内嵌式CPU 242及通过第一仲裁器261来传输的各单元(如:DIF引擎单元、RAID 6引擎单元、TCP引擎单元等)皆可经由第一存储 器控制器270来存取第一存储器模块2801内的数据。上述第一存储器控制器270的规格,在此仅为本发明说明性实施例,并非作为本发明其他实施例中的限制。
[0066] 依据本发明的一实施例,第二存储器控制器(memory access controller)275可为具有支持错误修正程序码功能且可用于双倍速数据传输模式1或双倍速数据传输模式2的存储器控制器,其数据总线(data bus)为32位元。该第二存储器控制器275负责接受CPU的读写请求来存取第二存储器模块2802上的数据。其中,通过第二仲裁器263上来传输之外接式CPU 243与内嵌式CPU 242皆可通过第二存储器控制器275来存取第二存储器模块2802上的数据,但通过第一仲裁器261上来传输的各单元(如:DIF引擎单元、RAID 6引擎单元、TCP引擎单元等)则不经由第二存储器控制器275来存取第二存储器模块2802上的数据,其是为了让该第二存储器模块2802可为外接式CPU 243与内嵌式CPU 242所专用,以提高系统效能。依据本发明的另一实施例,通过第一仲裁器261上来传输的各单元(如:DIF引擎单元、RAID 6引擎单元、TCP引擎单元等)也可经由第二存储器控制器275来存取第二存储器模块2802上的数据。上述第二存储器控制器275的规格,在此仅为本发明说明性实施例,并非作为本发明其他实施例中的限制。
[0067] 依据本发明的一实施例,第一存储器模块2801可为具有错误修正程序码功能的双倍速数据传输模式1(double data rate 1,DDR1)或双倍速数据传输模式2(double data rate 2,DDR2)的存储器模块,以提供给外接式CPU 243与内嵌式CPU 242及通过第一仲裁器261来传输的各单元(如:DIF引擎单元、RAID 6引擎单元、TCP引擎单元等)来存取数据。该第一存储器模块2801主要是储存暂存数据。依据本发明的另一实施例,该第一存储器模块2801除了储存暂存数据之外,还可储存外接式CPU 243和/或内嵌式CPU242的指令(instruction)及数据。由于该第一存储器模块2801通常存放较多的数据,故实作上该第一存储器模块2801会比第二存储器模块2802具有较大的存储空间。依据本发明的又一实施例,该`第一存储器模块2801也可为不具有错误修正程序码功能的双倍速数据传输模式1或双倍速数据传输模式2的存储器模块。
[0068] 依据本发明的一实施例,第二存储器模块2802可为具有错误修正程序码功能的双倍速数据传输模式1(double data rate 1,DDR1)或双倍速数据传 输模式2(double data rate 1,DDR2)的存储器模块,其可仅提供给外接式CPU243和/或内嵌式CPU 242来存取数据使用,主要存放内嵌式CPU 242和/或外接式CPU 243的指令(instruction)及其他暂存数据,故在实作上该第二存储器模块2802的存储空间通常会比第一存储器模块2801小。该第二存储器模块2802在储存虚拟化控制器上可以为内建(on-board)存储器模块或外接存储器模块。依据本发明的另一实施例,该第二存储器模块2802可为非必要单元而可以省略。依据本发明的又一实施例,该第二存储器模块2802也可为不具有错误修正码(ECC)功能的双倍速数据传输模式1或双倍速数据传输模式2的存储器模块。 [0069] 依 据 本 发 明 的 一 实 施 例,集 成 电 路 间 控 制 器 (inter-integrated circuitrycontroller,I2C controller)292是一集成电路间总线的控制器,是一种低成本的连结,它可以支持双向数据传输于一可接受的传输速率下,常使用于个人计算机(PC)中,使得CPU可以管理与监控主机板与其他装置的状态(如:温度、风扇转速等)。该I2C控制器292的应用可在储存虚拟化控制器与近端的箱体管理服务(enclosure management service,EMS)中来使用这种连结。
[0070] 依据本发明的一实施例,通用目的输入输出(general purpose I/O,GPIO)控制器293是一通用输入输出控制器,可以依照软件应用需求,将该GPIO控制器293当成IO的输入(单向)或是IO的输出(单向)或是IO的输入及输出(双向)。其为一种低速装置控制器,应用上可利用软件来控制该GPIO控制器293的输入或输出。
[0071] 依据本发明的一实施例,非同步式串列接口(universal asynchronous receiver transmitter,UART)控制器294是一可自周边装置或数据机(MODEM)上将序列信号转换为并列信号(serial signals to parallel signals),或是将CPU上的并列信号转换为序列信号(parallel signals to serial signals)的一装置。
[0072] 依据本发明的一实施例,图4中该IO处理器224与该外接式CPU 243、第一存储器模块2801及第二存储器模块2802相连接,该IO处理器224此时的连接方式可让系统获得最大的效能(performance)。
[0073] 图4中,因为设置有该外接式CPU 243,可以让该外接式CPU 243与内嵌式CPU242相互分工。依据本发明的一实施例,可以将该外接式CPU243设定为主要的(Primary)中央处理器、内嵌式CPU 242则设定为辅助的(slave)中央处理器。外接式CPU 243接受来自众多主机端的IO请求,依照 软件、固件的设定,将需重复执行计算的工作和/或部分的IO处理工作分配给内嵌式CPU 242来执行,随后该外接式CPU 243只需等待该内嵌式CPU242将执行的结果回传。在该内嵌式CPU 242执行该外接式CPU 243分配给该内嵌式CPU 242处理工作的同时,该外接式CPU 243便可继续处理其他的工作或是接受来自主机单元10的其他IO请求。由于该外接式CPU 243与内嵌式CPU 242的相互分工,故系统可获得极佳的效能。例如:该外接式CPU 243若收到软件所传来的数据加密请求,由于加密的行为需要通过复杂的演算法计算来实现,此举将会占用该外接式CPU 243相当大的资源。通过分工,该外接式CPU 243可将加密的工作分派给该内嵌式CPU 242来执行,该外接式CPU 243仅需告知内嵌式CPU 242与该加密工作相关的信息,而由该内嵌式CPU 242负责来执行加密演算法的计算。该外接式CPU
[0074] 243将加密的工作分派给该内嵌式CPU 242后,便等待该内嵌式CPU 242回传工作结果,在等待该内嵌式CPU 242回传工作结果的同时,该外接式CPU 243可继续处理其他工作或是等待接收来自主机单元10的IO请求。该内嵌式CPU 242完成加密演算法计算的工作后,会将该内嵌式CPU 242处理该加密工作的状态讯息及完成加密后数据存放的位置等相关讯息通知该外接式CPU 243,之后再等待或继续执行该外接式CPU 243所分派的工作。依据本发明的另一实施例,可以将该外接式CPU 243与内嵌式CPU 242设定为平行处理来自主机端请求的系统,而由操作系统分派工作。
[0075] 该外接式CPU 243通常为较该内嵌式CPU 242具有更高运算能力的CPU,但该外接式CPU 243可依照系统效能的实际应用需求而弹性地配置不同等级的CPU,当系统对CPU工作的需求小很时,甚至可以将该外接式CPU 243省略以符合成本考量。如图5所示,当该外接式CPU 243省略时,则该内嵌式CPU 242便须独自处理所有来自主机端的IO请求以和/或其他运算。
[0076] 请参阅图4,因为设置有该第一存储器模块2801及该第二存储器模块2802,故可提高系统工作效能。其中,该第一、第二存储器模块2802可为内建(on-board)存储器模块或外接存储器模块。此外,该第二存储器模块2802可被设计为储存CPU指令及CPU数据的专用存储器,用来储存CPU指令及CPU数据;而该第一存储器模块2801可被设计为泛用存储器,用来储存中央处理器指令及数据、以及其他的暂存数据,提供该外接式中央处 理器243或该内嵌式中央处理器242或各其他周边接口单元来存取的暂存数据。以此种设计来存取两存储器模块2801与2802的数据,其优点可避免该内嵌式CPU 242和/或外接式CPU
243与其他单元(如:DIF引擎单元、RAID 6引擎单元、TCP引擎单元等)因共用该第二存储器模块2802而使得系统效能下降。其原因为当该内嵌式CPU 242或外接式CPU 243欲对该第二存储器模块2802存取CPU指令和/或CPU数据时,由于该第二存储器模块2802为CPU专用的存储器模块,仅储存CPU指令及CPU数据,所以仅有该内嵌式CPU 242和/或外接式CPU 243才能对该第二存储器模块2802来存取,所以并不会发生该内嵌式CPU 242和/或外接式CPU 243必须先等待其他周边接口单元存取其所需的数据后才由该内嵌式CPU
242和/或外接式CPU 243存取CPU指令和/或CPU数据的情形。反的,假设该第二存储器模块2802除了储存CPU指令及CPU数据外,也同时储存其他周边接口单元的暂存数据时,当该内嵌式CPU 242和/或外接式CPU 243欲对该第二存储器模块2802存取CPU指令和/或CPU数据时,若其他单元正在对该第二存储器模块2802存取数据,该内嵌式CPU 242和/或外接式CPU 243无法立即对该第二存储器模块2802存取数据,而必须等待其他单元对该第二存储器模块2802存取数据完成后才可对该第二存储器模块2802存取CPU指令和/或CPU数据,因而使得CPU多花费等待的时间,系统效能下降。
[0077] 另外,假设第一存储器模块2801被设计为储存CPU的指令及数据的专用存储器,而第二存储器模块2802则被设计为储存其他非CPU指令的泛用存储器的话,当内嵌式CPU242和/或外接式CPU 243欲至第一存储器模块2801中存取CPU指令和/或数据时,相关的路径需经过第二仲裁器263、地址重新映射器262、第一桥接器264、第一仲裁器261与第一存储器控制器270等单元,其传输路径较长;而相较之下,CPU的指令及数据若储存于第二存储器模块2802中,当内嵌式CPU 242和/或外接式CPU 243欲至第二存储器模块2802中撷取指令时,相关的路径仅需经过第二仲裁器263与第二存储器控制器275等单元,减少了经过地址重新映射器262、第一桥接器264与第一仲裁器261等单元,传输路径较短,相对地减少CPU存取指令和/或数据的时间。此外,当CPU的指令及数据储存于第一存储器模块2801时,也会有该内嵌式CPU 242和/或外接式CPU 243与其他单元因共用该第一存储器模块2801而使得系统效能下降的问题。故图4中第二 存储器模块2802作为储存CPU指令及数据的专用存储器,而除了CPU指令及数据以外的数据储存在第一存储器模块2801中时,可增加系统的效能。
[0078] 在本实施例中,该IO处理器224同时连接有一外接式CPU 243,相较于仅有该内嵌式CPU 242而言,系统具有更佳的效能。另外,当该外接式CPU 243的效能较佳于该内嵌式CPU 242时,可以针对不同的需求,而将一个CPU设定为主要的CPU,另一个CPU则设定为辅助CPU,用来处理来自主机单元10的IO请求及内部运算,或者将该内嵌式CPU 242及该外接式CPU 243两者设定平行处理的系统架构,系统因而可工作于最大效能。 [0079] 图5是依据图4的实施例的另一连接态样,其中该IO处理器224仅与第一存储器模块2801相连接,省略了该外接式CPU 243及第二存储器模块2802。在本实施例中,该IO处理器224与其他装置的连接方式会让系统工作于较低效能的状态,但却也将系统的建置成本(cost)降至最低,对于工作量不高且有成本考量的系统,是一实际应用需求与成本考量兼具的选择。
[0080] 依据本发明的储存虚拟化控制器200,在实际应用需求与成本考量下,还有以下的实施方式:(1)设置该外接式CPU 243及该第一存储器模块2801,但不设置第二存储器模块2802;(2)不设置该外接式CPU 243,但设置该第一存储器模块2801及第二存储器模块2802;或是(3)于设置该外接式CPU243时,视实际应用需求提升或降低该外接式CPU 243的等级等组合。综合上述情况,该IO处理器224与外接式CPU 243、第二存储器模块2802的连接方式可弹性地变化以符合系统实际的应用需求。