信息处理装置、 信息处理方法和程序 技术领域 本公开涉及信息处理装置、 信息处理方法和程序。 更具体地, 本公开涉及用于利用 连接到网络的存储器、 存储空间 (storage) 或其它记录介质作为虚拟存储区的信息处理装 置、 信息处理方法和程序。
背景技术
存在通过使用虚拟存储区来扩展计算机的存储器区域的方法。 虚拟存储区是由计 算机的操作系统 (OS) 等虚拟地提供的存储器区域。例如, 如果执行程序所需的存储器容量 变得大于实际合并的存储器的容量, 则计算机的 OS 等可能必须利用使用中的存储器或存 储空间的存储区作为执行程序所需的存储器容量。在此情况下, 将存储器或存储空间的存 储区设为虚拟存储区。
更具体地, 可能首先在虚拟存储区中建立虚拟地址。然后将虚拟地址变换为计算 机中实际并入的记录介质上的存储区的物理地址。可以使用物理地址来读取和写入数据 ( 例如, 参见日本专利特开 No.Hei 8-272754)。 发明内容 对于普通计算机, 附接至每一台计算机的存储器或存储空间的存储区可以由此用 作虚拟存储区。然而, 这些计算机不能使用经由网络连接到每一台计算机的服务器中的硬 盘等上的存储区作为它们的虚拟存储区。
本公开鉴于以上情形而做出, 并且提供了如下的信息处理装置、 信息处理方法和 程序 : 其用于利用连接到网络的记录介质作为虚拟存储区, 以便使用虚拟地址的当前执行 程序可以获得对于连接到网络的记录介质上的存储区的容易访问。
根据本公开的一个实施例, 提供了一种信息处理装置, 其连接到网络, 所述信息处 理装置包括 : 地址变换部件, 配置为当在地址变换模块中保存分配给虚拟存储区的虚拟地 址, 并且在其中将所述虚拟地址与指定连接到所述网络的存储部分的位置的网络节点信息 相关联并与所述存储部分中的物理地址相关联时, 所述地址变换部件基于所述地址变换模 块将所述虚拟地址变换为所述网络节点信息和所述物理地址 ; 以及访问通信部件, 配置为 基于由所述地址变换部件获取的所述网络节点信息和所述物理地址, 所述访问通信部件访 问由连接到所述网络的所述存储部分保存的多个存储区之一, 所访问的存储区由所述物理 地址指定。
优选地, 所述信息处理装置可以进一步包括具有多个存储区的存储部件 ; 其中, 如 果由所述地址变换部件获取的所述网络节点信息表示连接到所述网络的所述存储部件的 位置, 则所述访问通信部件可以访问由所述存储部件保存的所述多个存储区之一, 所访问 的存储区由所述地址变换部件获取的所述物理地址指定 ; 以及如果由所述地址变换部件获 取的所述网络节点信息表示与所述网络上的所述存储部件不同的外部存储部分的位置, 则 所述访问通信部件可以访问由所述外部存储部分保存的多个存储区之一, 所访问的存储区
由所述地址变换部件获取的所述物理地址指定。
优选地, 所述地址变换模块可以保存多个地址变换表, 其每一个将所述虚拟地址 与所述网络节点信息和所述物理地址相关联 ; 以及基于由所述地址变换模块保存的所述多 个地址变换表, 所述地址变换部件可以将所述虚拟地址变换为对应的物理地址和对应的网 络节点信息。
优选地, 所述地址变换模块可以保存地址变换表, 所述地址变换表将所述虚拟地 址与所述网络节点信息和所述物理地址相关联 ; 以及所述信息处理装置可以进一步包括更 新部件, 配置为更新由所述地址变换模块保存的所述地址变换表。
优选地, 所述网络节点信息可以是已知为 IP 地址的因特网协议地址、 已知为 MAC 地址的介质访问控制地址或域信息中的一部分或全部。
优选地, 所述地址变换模块可以保存地址变换表, 所述地址变换表将所述虚拟地 址与所述网络节点信息和所述物理地址相关联 ; 并且所述信息处理装置可以进一步包括传 输部件, 其配置为将由所述地址变换模块保存的所述地址变换表传送到与所述网络连接的 另一个信息处理装置, 以便与所述另一个信息处理装置共享所述地址变换表。
根据本公开的另一个实施例, 提供了一种信息处理方法, 用于连接到网络的信息 处理装置, 所述信息处理装置包括地址变换部件和访问通信部件, 所述信息处理方法包括 : 当在地址变换模块中保存分配给虚拟存储区的虚拟地址, 并且在其中将所述虚拟地址与指 定连接到所述网络的存储部分的位置的网络节点信息相关联并与所述存储部分中的物理 地址相关联时, 使得所述地址变换部件基于所述地址变换模块将所述虚拟地址变换为所述 网络节点信息和所述物理地址 ; 以及基于由所述地址变换部件获取的所述网络节点信息和 所述物理地址, 使得所述访问通信部件访问由连接到所述网络的所述存储部分保存的多个 存储区之一, 所访问的存储区由所述物理地址指定。
根据本公开的进一步的实施例, 提供了一种程序, 使得控制连接到网络的信息处 理装置的计算机用作地址变换部件和访问通信部件, 所述程序包括 : 当在地址变换模块中 保存分配给虚拟存储区的虚拟地址, 并且在其中将所述虚拟地址与指定连接到所述网络的 存储部分的位置的网络节点信息相关联并与所述存储部分中的物理地址相关联时, 使得所 述地址变换部件基于所述地址变换模块将所述虚拟地址变换为所述网络节点信息和所述 物理地址 ; 以及基于由所述地址变换部件获取的所述网络节点信息和所述物理地址, 使得 所述访问通信部件访问由连接到所述网络的所述存储部分保存的多个存储区之一, 所访问 的存储区由所述物理地址指定。
根据本公开, 如以上概述的那样, 当在地址变换模块中保存分配给虚拟存储区的 虚拟地址, 并且在其中将所述虚拟地址与指定连接到网络的存储部分的位置的网络节点信 息相关联并与该存储部分中的物理地址相关联时, 基于地址变换模块将虚拟地址变换为网 络节点信息和物理地址。然后基于通过地址变换获得的网络节点信息和物理地址, 访问由 连接到网络的存储部分保存的多个存储区之一, 所访问的存储区由物理地址指定。
因此, 根据本公开, 连接到网络的记录介质可以容易地用作虚拟存储区。 附图说明
图 1 是示出体现本公开的信息处理系统的典型配置的框图 ;图 2 是示出信息处理装置的典型结构的框图 ;
图 3 是示出处理器的详细结构的框图 ;
图 4 是示出在结合存储器管理单元 (MMU) 使用变换后备缓冲器 (TLB) 的情况下配 备的多个条目的示例的示意图 ;
图 5 是示出在结合 MMU 使用地址变换寄存器的情况下配备的典型条目的示意图 ;
图 6 是示出写信息的示例的示意图 ;
图 7 是说明如何在 DMA 控制器的控制下写入写数据的示意图 ;
图 8 是示出写信息的另一示例的示意图 ;
图 9 是示出请求信息的示例的示意图 ;
图 10 是示出响应于请求信息而创建的读出信息的示例的示意图 ;
图 11 是示出基于接收到的读出信息来写入读出数据的示例的示意图 ;
图 12 是说明由信息处理装置执行的写处理的流程图 ;
图 13 是说明由信息处理装置执行的读处理的流程图 ; 以及
图 14 是示出信息处理装置的另一典型结构的示意图。 具体实施方式 现在描述本公开的一些优选实施例 ( 下文称为优选实施例 )。将在下列标题之下 给出描述 :
1. 本公开的实施例 ( 利用地址变换表 ( 其中附加了网络节点地址 ) 的示例 )
2. 变型。
<1. 优选实施例 >
[ 信息处理系统 1 的典型配置 ]
图 1 示出体现本公开的信息处理系统 1 的典型配置。
信息处理系统 1 由经由网络 22( 如, 因特网 ) 互连的信息处理装置 21-1 到 21-N 构成。
信息处理装置 21-1 到 21-N 均拥有本地存储器, 其典型地由存储数据和程序的硬 盘等构成。每一个本地存储器具有多个存储区, 所述多个存储区可以由每一个信息处理装 置 21-1 到 21-N 利用作为虚拟存储区。
例如, 可以将唯一的虚拟地址分配给多个本地存储器的每一个中的多个存储区的 每一个。
[ 信息处理装置 21-n 的典型结构 ]
图 2 示出信息处理装置 21-n 的典型结构。
信息处理装置 21-n 例如可以是连接到网络 22 的个人计算机等。信息处理装置 21-n 典型地由处理器 41、 输入 / 输出接口 (IF)42、 直接存储器访问 (DMA) 控制器 43、 本地 存储器 44 和网络接口 (IF)45 构成。
由 CPU( 中央处理单元 ) 等构成的处理器 41 控制所配置的各组件。此外, 例如, 处 理器 41 可以响应于来自输入 / 输出接口 42 的操作信号来执行适当的处理。稍后将参照图 3 详细讨论处理器 41。
输入 / 输出接口 42 连接到诸如鼠标和键盘之类的操作部分 ( 未示出 )。输入 / 输
出接口 42 提供有来自用户操作的操作部分的操作信号, 并且将提供的信号送至处理器 41。
在处理器 41 的控制下, DMA 控制器 43 通过 DMA 传输将数据从处理器 41 发送到本 地存储器 44 以便存储。此外, 在处理器 41 的控制下, DMA 控制器 43 从本地存储器 44 读取 数据, 并通过 DMA 传输将取回的数据发送到处理器 41。
此外, DMA 控制器 43 在处理器 41 的控制下, 通过 DMA 传输将处理器 41 中的数据传 输到网络接口 45。DMA 控制器 43 还通过 DMA 传输将数据从网络接口 45 发送到处理器 41。
本 地 存 储 器 44 例 如 可 以 是 硬 盘、 EEPROM( 电 可 擦 除 可 编 程 只 读 存 储 器 ) 或 DRAM( 动态随机存取存储器 ), 存储通过 DMA 传输从 DMA 控制器 43 发送的数据等。本地存 储器 44 由多个存储区 ( 其每一个均与表示正讨论的存储区的位置的物理地址相关联 ) 构 成。
网络接口 45 经由网络 22 将来自 DMA 控制器 43 的数据发送到另一信息处理装置 21-p(p ≠ n)。网络接口 45 还将通过网络 22 从另一信息处理装置 21-p 发送的数据提供给 DMA 控制器 43。
[ 处理器 41 的典型结构 ]
图 3 示出处理器 41 的典型详细结构。 处理器 41 由 CPU 61、 存储器管理单元 (MMU)62、 并入在 MMU 62 中的变换后备缓冲 器 (TLB) 和高速缓存存储器 64 构成。
CPU 61 控制 MMU 62、 DMA 控制器 43 和其它组件。此外, CPU 61 将本地存储器 44 中预先保存的程序通过 DMA 控制器 43 和 MMU 62 写入高速缓存存储器。此外, 通过 MMU 62, CPU 61 从高速缓存存储器 64( 其中保留程序 ) 获取程序。
CPU 61 通过执行获取的程序来进行预定处理。例如, CPU 61 可以向 MMU 62 提供 分配给虚拟存储区的虚拟地址, 以便通过 MMU 62 从高速缓存存储器 64 读取与该虚拟地址 对应的数据。如将在稍后说明的那样, 高速缓存存储器 64 与对应的虚拟地址相关联地保留 预定数据。
CPU 61 然后对于读出数据执行诸如计算和操作这样的处理。CPU 61 将处理的结 果写入高速缓存存储器 64 或本地存储器 44。
例如, 如果在高速缓存存储器 64 中未发现发送到 MMU 62 的虚拟地址所对应的 数据, 则 CPU 61 可以控制 DMA 控制器 43 等以从本地存储器 44 或从另一信息处理装置 21-p( 其中存在正讨论的数据 ) 读取对应数据, 并将取回的数据供给 MMU 62。
然后 CPU 61 可以控制 MMU 62 以将来自 DMA 控制器 43 的数据与对应的虚拟地址 相关联, 并将数据供给高速缓存存储器 64 以便存储。以这种方式, CPU 61 可以通过 MMU 62 从高速缓存存储器 64 获得供给 MMU 62 的虚拟地址所对应的数据。
通过使用合并的 TLB 62, MMU 62 将来自 CPU 61 的虚拟地址变换为对应的物理地 址和网络节点地址 ( 两者将在稍后描述 ), 或者将与来自 DMA 控制器 43 的数据相关联的物 理地址和网络节点地址逆变换为对应的虚拟地址。
TLB 63 预先保存地址变换表, 其包含多个之前创建的条目 1 到 m。
图 4 示出 TLB 63 的示例。
如图 4 所示, TLB 63 预先配备有具有多个条目 1 到 m 的地址变换表, 所述多个条目 1 到 m 的每一个均包含分配给虚拟存储区的虚拟地址、 与虚拟地址对应且分配给本地存储
器 44 上的存储区的物理地址、 在将虚拟地址变换为物理地址时用于控制的控制信息、 以及 表示保留物理地址指定的存储区的本地存储器 44( 或拥有存储器 44 的信息处理装置 21-n) 的网络上的位置的网络节点地址。
网络节点地址可以由唯一表示信息处理装置 21-n 的信息形成。例如, 网络节点地 址可以是信息处理装置 21-n 的 IP( 因特网协议 ) 地址或 MAC( 介质访问控制 ) 地址。可替 代地, 网络节点地址可以是表示信息处理装置 21-n 的网络上的位置的域信息的一部分或 全部 ( 如, 部分的主页地址或邮件地址 )。
如果需要, MMU 62 读取并保留多个虚拟地址, 所述多个虚拟地址中的每一个均与 高速缓存存储器 64 中保存的数据相关联。
MMU 62 确定其保留的多个虚拟地址中的每一个是否与来自 CPU 61 的虚拟地址匹 配。
如果确定保留的多个虚拟地址中之一与来自 CPU 61 的虚拟地址匹配, 则 MMU 62 从高速缓存存储器 64 读取与匹配的虚拟地址相关联的数据, 并将取回的数据供给 CPU 61。
如果确定保留的多个虚拟地址均不与来自 CPU 61 的虚拟地址匹配, 则 MMU 62 基 于 TLB 63 中保存的多个条目 1 到 m, 将来自 CPU 61 的虚拟地址变换为对应的物理地址和网 络节点地址。
MMU 62 进入将经由地址变换获得的物理地址和网络节点地址提供给 DMA 控制器43。 通过使用 TLB 63, MMU 62 还将与来自 DMA 控制器 43 的数据相关联的物理地址和 网络节点地址逆变换为对应的虚拟地址。MMU 62 与来自 DMA 控制器 43 的数据相关联地将 通过逆变换获得的虚拟地址供给高速缓存存储器 64 以便在其中存储。
高速缓存存储器 64 可以由 RAM( 随机存取存储器 ) 等组成。这样, 高速缓存存储 器 64 容纳来自 MMU 62 且与虚拟地址相关联的数据。
之前各段说明了在处理器 41 中, MMU 62 使用地址变换表 ( 诸如如图 4 所示那样 具有多个条目 1 到 m 的地址转换表 ) 来执行地址变换。可替代地, MMU 62 可以是如图 5 中 所示那样使用仅包含一个条目的地址变换表来执行地址变换的地址变换寄存器。
在这种情况下, 可以按照需要在使得 CPU 61 执行相关处理的 OS 或类似程序的控 制下更新图 5 中指示的单个条目。
MMU 62 可以由单个变换寄存器组成或者多个地址变换寄存器组成。
如果 MMU 62 由多个地址变换寄存器组成, 则多个地址变换寄存器可以共享相同 的地址变换表, 或者每一个均利用不同的地址变换表。在此情况下, TLB 63 可以典型地构 造为保存多个地址变换表, 以便由多个地址变换寄存器构成的 MMU 62 使用。
除了将网络节点地址添加到 TLB 63 中保存的地址变换表之外, 图 3 所示的处理器 41 基本上与现有处理器相同。
这意味着现有处理器可以不加以修改地用作根据本公开的处理器 41, 这是由于只 需要以通过网络节点地址补充的地址变换表替换 TLB 63 中所保存的地址变换表。这使得 可以降低处理器 41 的制造成本。
[ 传送写信息的示例 ]
图 6 是示出当信息处理装置 21-a 将数据写入另一信息处理装置 21-b 的本地存储
器 44b 中的存储区时所创建的写信息的示例的示意图。
参考字符 “a” 和 “b” 均表示范围从 1 到 N 的不同整数中的一个。在随后的描述中, 为了进行区分的目的, 组成信息处理装置 21-a 的一部分的 CPU 61 将被称为 CPU 61a, 而信 息处理装置 21-b 的 CPU 61 将被称为 CPU61b。对于信息处理装置 21 的其它组件同样如此。
信息处理装置 21-a 的 CPU 61a 处理与给定虚拟地址对应的数据, 并将处理的数据 与处理数据所对应的虚拟地址一起供给 MMU 62a。
在 CPU 61a 的控制下, MMU 62a 通过使用 TLB 63a 等将来自 CPU 61a 的虚拟地址 变换为对应的网络节点地址和物理地址。MMU 62a 将变换的地址与来自 CPU 61a 的数据一 起发送到 DMA 控制器 43a。
在这种情况下, 假设通过地址变换获得的网络节点地址表示网络 22 上信息处理 装置 21-b 的位置, 并且同样获得的物理地址表示 ( 即, 指定 ) 信息处理装置 21-b 的本地存 储器 44b 中多个存储区的对应一个。
DMA 控制器 43a 向网络接口 45a 提供信息处理装置 21-b 的网络节点地址和物理地 址以及数据, 所述地址和数据从 MMU 62a 供给。
网络接口 45a 并入协议信号设置寄存器 ( 未示出 ), 其预先保存通信中使用的现有 传输协议信号 ( 包括现有因特网协议等 )、 传输源地址信息 ( 如, 信息处理装置 21-a 的网络 节点地址 ) 和另一传输协议信号 ( 包括与现有因特网协议不同的协议 )。
在 DMA 控制器 43a 的控制下, 网络接口 45a 从内部协议信号设置寄存器读取现有 传输协议信号和另一传输协议信号。
网络接口 45a 然后构造写信息 ( 如图 6 所示那样 ), 其包括取回的现有传输协议 信号和另一传输协议信号、 由来自 DMA 控制器 45a 的网络节点地址构成的传输目的地地址、 从 DMA 控制器 45a 提供的写数据、 以及由来自 DMA 控制器 45a 的物理地址形成并指向写数 据要写入到的信息处理装置 21-b 的本地存储器 44b 中的那个存储区的存储地址 (memory address)。由此构造的写信息通过网络 22 传送到信息处理装置 22-b。
[ 写入写数据的示例 ]
图 7 示出这样的示例 : 基于从信息处理装置 21-a 发送到信息处理装置 21-b 的写 信息, 将写信息中包括的写数据写入本地存储器 44b 中的多个存储区之一, 其中要写入数 据的存储区由写信息中包括的存储地址指定。
信息处理装置 21-b 的网络接口 45b 通过网络 22 接收另一传输协议信号和现有协 议信号, 作为从信息处理装置 21-a 传送的写信息 ( 如图 7 所示 ) 的一部分。
网络接口 45b 前进至将接收到的另一传输协议信号和现有传输协议信号存储至 内部协议信号设置寄存器。 此外, 基于由此存储的另一传输协议信号和现有传输协议信号, 网络接口 45b 接收写信息中包括的写数据和存储地址, 并将接收到的地址和数据供给 DMA 控制器 43b。
DMA 控制器 43b 将来自网络接口 45b 的写数据送往本地存储器 44b, 以便将数据写 入通过网络接口 45b 提供的存储地址所指定的本地存储器 44b 中的那个存储区。
在前面的描述中, 示出了创建并传送例如如图 6 所示的写信息的信息处理装置 21-a, 所述写信息包括指定写数据要写入到的存储区的存储地址。 可替代地, 如果写数据要 写入到的存储区对于信息处理装置 21-b 来说是预先已知的, 则信息处理装置 21-a 可以创建例如如图 8 所示的不包括任何存储地址的写信息。
在这种情况下, 由于不需要执行具有写信息中包括的存储地址的处理, 因此可以 更快速地创建和传送写信息。
下面参照图 9 到图 11 说明的是这样的示例 : 信息处理装置 21-a 从信息处理装置 21-b 读取相关数据, 即, 信息处理装置 21-a 请求从信息处理装置 21-b 发送感兴趣的数据, 并接收响应于请求所传送的数据。
[ 传送请求信息的示例 ]
图 9 示出信息处理设备 21-a 所创建的请求信息处理装置 21-b 发送感兴趣的数据 的请求信息的示例。
当从虚拟存储区中的正讨论的虚拟地址读取数据时, 信息处理装置 21-a 的 CPU 61a 将相关的虚拟地址供给 MMU 62a。
在 CPU 61a 的控制下, MMU 62a 确定其保留的多个虚拟地址 ( 即, 与高速缓存存储 器 64 中保存的数据相关联的虚拟地址 ) 中的任何一个是否与 CPU 61a 发送的虚拟地址相 匹配。
如果确定保留的多个虚拟地址之一与来自 CPU 61a 的虚拟地址匹配, 则 MMU 62a 从高速缓存存储器 64a 读取与匹配的虚拟地址相关联的数据, 并将取回的数据供给 CPU 61a。 如果确定所保留的多个虚拟地址均不与来自 CPU 61a 的虚拟地址匹配, 则 MMU 62a 通过例如使用 TLB 63a 将来自 CPU 61a 的虚拟地址变换为对应的网络节点地址和物理 地址, 并将变换的地址提供到 DMA 控制器 43a。
基于 MMU 62a 供给的网络节点地址是否匹配之前保留的信息处理装置 21-a 的网 络节点地址, DMA 控制器 43a 确定 MMU 62a 供给的网络节点地址是否为信息处理装置 21-a 的网络地址。
如果确定 MMU 62a 供给的网络节点地址是信息处理装置 21-a 的网络地址, 则 DMA 控制器 43a 将来自 MMU 62a 的物理地址发送到本地存储器 44a, 以便从本地存储器 44a 中的 多个存储区之一读取数据, 要从其读取数据的存储区由物理地址指定。
DMA 控制器 43a 将取回的数据与 MMU 62a 供给的网络节点地址和物理地址相关联, 并将数据提供到 MMU 62a。
在这种情况下, MMU 62a 例如通过使用 TLB 63, 将与来自 DMA 控制器 43a 的数据相 关联的网络节点地址和物理地址逆变换为对应的虚拟地址。MMU 62a 前进至将来自 DMA 控 制器 43a 的数据与经由逆变换获得的虚拟地址相关联, 并将数据发送到高速缓存存储器 64 以便在其中存储。
如果确定 MMU 62a 供给的网络节点地址不是信息处理装置 21-a 的网络地址, 则 DMA 控制器 43a 向网络接口 45a 提供来自 MMU 62a 的网络节点地址和物理地址。
在这种情况下, 假设通过地址变换获得的网络节点地址表示信息处理装置 21-b 在网络 22 上的位置, 并且同样获得的物理地址表示信息处理装置 21-b 的本地存储器 44b 中多个存储区的对应一个。
在 DMA 控制器 43a 的控制下, 网络接口 45a 从内部协议信号设置寄存器读取现有 传输协议信号和另一传输协议信号。
此外, 网络接口 45a 创建请求数据, 所述请求数据包括从 DMA 控制器 45a 发送的物 理地址并且用以请求本地存储器 44b 的多个存储区之一中存储的数据, 要从其读取数据的 存储区由来自 DMA 控制器 45a 的物理地址指定。
此外, 网络接口 45a 将来自 DMA 控制器 45a 的网络节点地址当作传输目的地地址。 网络接口 45a 前进至创建如图 9 所示的由取回的现有传输协议信号和另一传输协议信号、 传输目的地地址和请求数据构成的请求信息。网络接口 45a 将由此创建的请求信息经由网 络传送到信息处理装置 21-b。
[ 传送读出信息的示例 ]
图 10 示出信息处理装置 21-b 基于从信息处理装置 21-a 接收到的请求信息将相 关数据传送到信息处理装置 21-a 的示例。
信息处理装置 21-b 的网络接口 45b 经由网络 22 接收从信息处理装置 21-a 提供 的请求信息中包括的另一传输协议信号和现有传输协议信号。网络接口 45a 然后将接收到 的另一传输协议信号和现有传输协议信号供给内部协议信号设置寄存器以便在其中存储。
基于写入内部协议信号设置寄存器的另一传输协议信号和现有传输协议信号, 网 络接口 45b 接收请求信息中包括的请求数据, 并将接收到的请求数据供给 DMA 控制器 43b。 基于来自网络接口 45b 的请求数据, DMA 控制器 43b 从本地存储器 44b 中的存储 区之一读取数据, 要从其读取数据的存储区由请求数据中包括的物理地址指定。DMA 控制 器 43b 向网络接口 45b 提供所取回的数据作为读出数据。此外, DMA 控制器 43b 向网络接 口 45b 提供由指定据以取回读出数据的存储区的物理地址 ( 即, 请求数据中包括的物理地 址 ) 形成的存储地址。
通过使用内部协议信号设置寄存器, 网络接口 45b 将请求数据中包括的传输目的 地地址 ( 即, 信息处理装置 21-a 的网络节点地址 ) 当作其传输目的地地址。
网络接口 45b 然后创建由传输目的地地址、 内部协议信号设置寄存器中保留的另 一传输协议信号和现有传输协议信号以及 DMA 控制器 43b 供给的读出数据和存储地址构成 的读出信息。 网络接口 45b 将由此创建的读出信息经由网络 22 传送到信息处理装置 21-a。
[ 接收读出信号并存储读出数据的示例 ]
图 11 示出这样的示例 : 信息处理装置 21-a 响应于发送到信息处理装置 21-b 的请 求信息, 接收从信息处理装置 21-b 传送的读出信息, 所述信息处理装置 21-a 进一步存储接 收到的读出信息中所包括的读出数据。
信息处理装置 21-a 的网络接口 45a 经由网络 22 接收从信息处理装置 21-b 供给 的读出信息中包含的另一传输协议信号和现有传输协议信号。网络接口 45a 前进至将接收 到的另一传输协议信号和现有传输协议信号发送到内部协议信号设置寄存器以便在其中 存储。
基于写入协议信号设置寄存器的另一传输协议信号和现有传输协议信号, 网络接 口 45a 经由网络 22 接收从信息处理装置 21-b 供给的读出信息中包含的读出数据和存储地 址, 并将接收到的读出数据和存储地址提供到 DMA 控制器 43a。
此外, 网络接口 45a 提取协议信号设置寄存器中保存的另一传输协议信号中包括 的传输源 ( 即, 信息处理装置 21-b) 的网络节点地址, 并将提取的网络节点地址供给 DMA 控 制器 43a。
与同样从网络接口 45a 供给的存储地址和网络节点相关联地, DMA 控制器 43a 将 来自网络接口 45a 的读出数据提供给处理器 41a 的 MMU 62a。
在这种情况下, MMU 62a 通过使用 TLB 63a, 将与来自 DMA 控制器 43a 的读出数据 相关联的存储地址和网络节点地址逆变换为对应的虚拟地址。
然后 MMU 62a 在将通过逆变换获得的虚拟地址发送到高速缓存存储器 64a 以便在 其中存储之前, 将虚拟地址与来自 DMA 控制器 43a 的读出数据相关联。
[ 信息处理装置 21-a 执行的写处理 ]
下面参照图 12 的流程图说明的是由信息处理装置 21-a 执行的典型写处理, 用于 将数据写入信息处理装置 21-a 的本地存储器 44a 或信息处理装置 21-b 的本地存储器 44b。
写处理可以在如下面这样的情况下开始 : 当 CPU 61a 处理给定虚拟地址处的数据 并控制 MMU 62a 等以将处理的数据写入由虚拟地址对应的网络节点地址指定的本地存储 器中的多个存储区之一时, 要写入数据的存储区由与虚拟地址对应的物理地址指定。
例如, CPU 61a 可以将处理的数据与对应的虚拟地址一起供给 MMU62a。
在步骤 S21, MMU 62a 通过使用内部 TLB 63a 等, 将来自 CPU 61a 的虚拟地址变换 为对应的物理地址和网络节点地址。MMU 62a 将通过地址变换获得的物理地址和网络节点 地址与 CPU61a 供给的数据一起发送到 DMA 控制器 43a。
在步骤 S22, 基于 MMU 62a 供给的网络节点地址是否与表示信息处理装置 21-a 的 位置的之前保留的网络节点地址相互相匹配, DMA 控制器 43a 确定来自 MMU 62a 的网络节 点地址是否为表示信息处理装置 21-a 的位置的网络节点地址。
如果基于来自 MMU 62a 的网络节点地址是否与表示信息处理装置 21-a 的位置的 之前保留的网络节点地址匹配, 在步骤 S22 中确定 MMU 62a 供给的网络节点地址确实为表 示信息处理装置 21-a 的位置的网络节点地址, 则到达步骤 S23。
在步骤 S23, DMA 控制器 43a 将来自 MMU 62a 的数据供给本地存储器 44a, 以便将 数据写入本地存储器 44a 中的一个存储区, 其中要写入数据的存储区由 MMU 62a 发送的物 理地址指定。
如果基于来自 MMU 62a 的网络节点地址是否与表示信息处理装置 21-a 的位置的 之前保留的网络节点地址相匹配, 在步骤 S22 中确定 MMU 62a 供给的网络节点地址不是表 示信息处理装置 21-a 的位置的网络节点地址, 则到达步骤 S24。
在步骤 S24, DMA 控制器 43a 向网络接口 45a 提供 MMU 62a 供给的网络节点地址、 物理地址和数据。
基于 DMA 控制器 43a 供给的网络节点地址、 物理地址和数据, 网络接口 45a 创建诸 如图 6 所示的写信息。
在步骤 S25, 网络接口 45a 将由此创建的写信息经由网络 22 传送到信息处理装置 21-b。 继而, 信息处理装置 21-b 基于网络接口 45a 经由网络 22 提供的写信息来写数据。 该 步骤完成写处理。
[ 信息处理装置 21-a 执行的读处理 ]
下面参照图 13 的流程图说明的是由信息处理装置 21-a 执行的典型读处理, 用于 从信息处理装置 21-a 的本地存储器 44a 或信息处理装置 21-b 的本地存储器 44b 读取数据。
读处理可以在诸如当 CPU 61a 控制 MMU 62a 等以从虚拟存储区读取与给定虚拟地址相关联的数据时这样的情况下开始。
例如, CPU 61a 向 MMU 62a 发送与作为读出目标的数据对应的虚拟地址。
对于读处理, 假设在高速缓存存储器 64a 中未发现信息处理装置 21-a 的 CPU 61a 所需的数据。如果在高速缓存存储器 64a 中保留 CPU 61a 所需的数据, 则 CPU 61a 从高速 缓存存储器 64a 读取数据。
在步骤 S41, MMU 62a 通过使用内部 TLB 63a 等, 将 CPU 61a 供给的虚拟地址变换 为对应的物理地址和网络节点地址。MMU 62a 将经由地址变换获得的物理地址和网络节点 地址提供到 DMA 控制器 43a。
在步骤 S42, 基于从 MMU 62a 供给的网络节点地址是否与表示信息处理装置 21-a 的位置的之前保留的网络节点地址匹配, DMA 控制器 43a 确定来自 MMU 62a 的网络节点地 址是否为表示信息处理装置 21-a 的位置的网络节点地址。
如果基于来自 MMU 62a 的网络节点地址是否与表示信息处理装置 21-a 的位置的 之前保留的网络节点地址匹配, 在步骤 S42 确定 MMU 62a 供给的网络节点地址确实为表示 信息处理装置 21-a 的位置的网络节点地址, 则到达步骤 S43。
在步骤 S43, DMA 控制器 43a 将来自 MMU 62a 的物理地址供给本地存储器 44a, 以 便将从本地存储器 44a 中的存储区之一读取数据, 从其读取数据的存储区由 MMU 62a 发送 的物理地址指定。
DMA 控制器 43a 在将读出数据发送到 MMU 62a 之前, 将读出数据与 MMU 62a 供给的 物理地址和网络节点地址相关联。MMU 62a 将与来自 DMA 控制器 43a 的读出数据相关联的 物理地址和网络节点地址逆变换为对应的虚拟地址。
MMU 62a 然后在将数据供给高速缓存存储器 64a 以便在其中存储之前, 将来自 DMA 控制器 43a 的读出数据与通过逆变换所获得的虚拟地址相关联。这允许 CPU 61a 对置于高 速缓存存储器 64 中的读出数据执行相关处理。
如果基于来自 MMU 62a 的网络节点地址是否与表示信息处理装置 21-a 的位置的 之前保留的网络节点地址匹配, 在步骤 S42 确定 MMU 62a 供给的网络节点地址不是表示信 息处理装置 21-a 的位置的网络节点地址, 则 DMA 控制器 43a 将 MMU 62a 供给的物理地址和 网络节点地址发送到网络接口 45a, 并将控制传至步骤 S44。
在步骤 S44, 如参照图 9 在以上说明的那样, 网络接口 45a 基于内部协议信号设置 寄存器中先前保留的现有传输协议信号和另一传输协议信号以及从 DMA 控制器 43a 供给的 物理地址和网络节点地址, 创建例如如图 9 所示的请求信息。
网络接口 45a 经由网络 22 将由此创建的请求信息传送到信息处理装置 21-b。
在步骤 S45, 网络接口 45a 响应于已经传送的请求信息, 通过网络 22 接收从信息处 理装置 21-b 供给的读出信息中包括的另一传输协议信号和现有传输协议信号。网络接口 45a 前进至将接收到的另一传输协议信号和现有传输协议信号供给内部协议信号设置寄存 器, 以便在其中存储。
基于协议信号设置寄存器中存储的另一传输协议信号和现有传输协议信号, 网络 接口 45a 经由网络 22 接收从信息处理装置 21-b 供给的读出信息中包括的读出数据和存储 地址。网络接口 45a 将接收到的读出数据和存储地址发送到 DMA 控制器 43a。
此外, 网络接口 45a 提取协议信号设置寄存器中保存的另一传输协议信号中包括的传输源 ( 即, 信息处理装置 21-b) 的网络节点地址, 并将提取的网络节点地址供给 DMA 控 制器 43a。
与同样从网络接口 45a 供给的存储地址和网络节点相关联地, DMA 控制器 43a 将 来自网络接口 45a 的读出数据提供给处理器 41a 的 MMU 62a。
在这种情况下, MMU 62a 通过使用 TLB 63a, 将与来自 DMA 控制器 43a 的读出数据 相关联的存储地址和网络节点地址逆变换为对应的虚拟地址。
MMU 62a 然后在将经由逆变换获得的虚拟地址发送到高速缓存存储器 64a 以便在 其中存储之前, 将虚拟地址与来自 DMA 控制器 43a 的读出数据相关联。这完成了读处理。
在写处理中, 如之前所述的那样, 通过使用预先保存地址变换表 ( 其包含将虚拟 地址与对应的物理地址和网络节点地址相关联的条目 ) 的 TLB 63 等, 将与感兴趣的写数据 对应的虚拟地址变换为对应的物理地址和网络节点地址。 然后将数据写入通过地址变换获 得的网络节点地址所对应的信息处理装置 21-n 拥有的本地存储器 44 中的多个存储区之 一, 数据要写入到的存储区由同样通过地址变换所获得的物理地址指定。
在读处理中, 如以上讨论的那样, 通过使用 TLB 63 等, 将与感兴趣的读出数据对 应的虚拟地址变换为对应的物理地址和网络节点地址。 然后从通过地址变换获得的网络节 点地址所对应的信息处理装置 21-n 拥有的本地存储器 44 中多个存储区之一读取数据, 要 从其读取数据的本地地址由同样通过地址变换所获得的物理地址指定。
以上述方式, 信息处理装置 21-a 不仅可以利用本地存储器 44a, 而且可以利用例 如经由网络 22 连接的信息处理装置 21-b 的本地存储器 44b 作为用于实施虚拟存储区的记 录介质。
因此, 根据以上讨论的优选实施例, 信息处理装置 21-a 可以自由地存取 ( 即, 读和 写 ) 连接到网络 22 上的信息处理装置 21-1 到 21-N 的多个本地存储器 44 中存储的数据, 而不论要读取或写入的数据是否存储在本地存储器 44a 中。
<2. 变型 >
在优选实施例的以上描述中, 示出由每一个信息处理装置 21-1 到 21-N 拥有的本 地存储器 44 的存储区用作虚拟存储区。可替代地, 网络 22 上存在的服务器或硬盘也可以 用作虚拟存储区。即, 网络 22 上发现的任何记录介质可以用作虚拟存储区。
根据上述优选实施例, DMA 控制器 43 控制数据的写和读。可替代地, 控制数据读 写操作的实体不限于 DMA 控制器 43 或任何其它特定组件。
例如, 在图 14 中所示的信息处理装置 21-n’ 的情况下, 在 CPU 61 的控制下执行数 据读写操作时, 网络接口 81 可以接管 DMA 控制器 43。
根据上述优选实施例, 信息处理装置 21-a 的 DMA 控制器 43a 确定 MMU62a 供给的 网络节点地址是否为信息处理装置 21-a 的网络节点地址。可替代地, 进行确定的实体不限 于 DMA 控制器 43a 或任何其它特定组件。
例如, 在处理器 41 内部可以提供代替 DMA 控制器 43 的、 用于进行确定的确定功能 块。
根据上述优选实施例, 每一个信息处理装置 21-n 的 TLB 63 预先配备有地址变换 表。可替代地, 信息处理装置 21-a 可以创建地址变换表, 并经由网络 22 将其发送到譬如信 息处理装置 21-b。在这种情况下, 信息处理装置 21-b 将通过网络 22 从信息处理装置 21-a 发送的地 址变换表存储到 TLB 63b 中。
在此示例中, 信息处理装置 21-a 创建的地址变换表经由网络 22 传送到信息处理 装置 21-b, 以便装置 21-a 创建的地址变换表可以在信息处理装置 21-1 到 21-N 之间共享。 如果信息处理装置 21-a 更新地址变换表, 则将更新的地址变换表分发到所涉及的信息处 理装置。
根据上述优选实施例, 网络接口 45a 创建写信息、 请求信息和读出信息。可替代 地, 处理器 41a 的 CPU 61a 所执行的程序可被安排用以创建写信息、 请求信息和读出信息, 并将这些种类的信息供给网络接口 45a。
上述一系列处理可以由硬件或者软件执行。在要执行基于软件的处理的情况下, 构成软件的程序可以预先并入至计算机的专用硬件以便使用或者在使用时安装到能够基 于安装的程序执行不同功能的通用个人计算机或类似装置。
如果期望单独用硬件执行上述一系列处理 ( 如创建和传送写信息、 请求信息或读 出信息的那些 ), 则可能需要根据仅可由所涉及的硬件实施的专有协议, 构成写信息、 请求 信息或读出信息中要包括的现有传输协议信号和另一传输协议信号。
如果例如采用用于加密写数据、 读出信息或请求数据以便通信的适当协议作为专 有协议, 则与采用现有协议的情况相比, 可以更安全地利用虚拟存储区。
可替代地, 如果期望单独用软件执行用于创建并传送写信息、 请求信息或读出信 息的处理, 则构成软件的程序可以通过使用写信息、 请求信息或读出信息中包括的现有传 输协议信号来实施。这将会消除对于准备专有协议的需要。
例如, 本公开可适用于允许网络上存在的数据和程序由方案中的各方共享的所谓 的云计算或类似方案。
在本说明书中, 以上讨论的描述了一系列处理的步骤不仅表示要以所描绘的次序 ( 即, 基于时间顺序 ) 执行的处理, 而且表示可以并行执行或单独执行且不一定按时间顺序 执行的处理。
本领域的技术人员应当理解, 根据设计要求和其它因素可能出现各种修改、 组合、 部分组合和变更, 只要其在所附权利要求或其等同体的范围内即可。
本公开包含与 2010 年 7 月 16 日向日本专利局提交的日本优先权专利申请 JP 2010-161190 中公开的主题有关的主题, 其全部内容通过引用的方式合并在此。