处理器装置、 多线程处理器装置 技术领域 本发明涉及具有一边切换处理器装置的程序一边执行的多个处理器的处理器装 置以及多线程处理器装置, 尤其涉及使硬件资源在多个处理器中共享的处理器装置以及多 线程处理器装置。
背景技术 近些年随着数字技术、 运动图像以及声音的压缩扩展技术的急速进展, 被搭载于 数字电视、 数字录像机 (DVD 记录器等 )、 便携式电话、 以及影像声音设备 ( 摄像机等 ) 的处 理器被要求具有更高的性能。
例如, 作为实现高性能化的处理器有周知的多线程处理器 ( 例如, 参照专利文献 1)。该多线程处理器通过同时执行多个线程, 来提高处理效率。并且, 多线程处理器在多个 线程的执行过程中, 由于能够共享资源, 因此与将多个处理器独立设置相比, 能够提高处理 器的面积优化 (area-efficient)。
另外, 在这样的处理器中所进行的处理有 : 没有被要求实时性的与控制相关的主 处理、 和被要求了实时性的运动图像的压缩与扩展处理等媒体处理。
例如, 专利文献 2 所记载的影像声音处理用集成电路包括 : 进行主处理的微电脑 块以及进行媒体处理的媒体处理块。
并且, 作为使 FPU( 浮点处理单元 : Floating Point number processing Unit) 的 上下文切换的必要性成为最小的技术, 提出了延迟上下文切换 (Lazy context switch) 这 种技术。根据这种方法, 以执行上下文, 直到需要执行 FPU 指令为止, 使 FPU 上下文的保存 与恢复延迟。即, 在通常的处理器的上下文的保存以及恢复为不同步的状态, 进行 FPU 的上 下文切换, 并将这一机会抑制成需要的最小限度。
从 FPU 具有多个寄存器、 以及在被时分多路复用的程序中存在不使用 FPU 程序上 来看, 上述的方法试图降低 FPU 上下文的保存以及恢复的额外开销量。
( 现有技术文献 )
专利文献
专利文献 1 日本特开 2006-302261 号公报
专利文献 2 国际公开第 2005/096168 号
专利文献 3 日本特开 2003-271399 号公报
专利文献 4 日本特开 2008-123045 号公报
专利文献 5 日本特开 2004-246862 号公报
然而, 在多处理器中利用 FPU 等硬件资源的情况下, 具有以下的问题。
在按每个处理器具备 FPU, 并按每个处理器适用延迟上下文切换的情况下, 则电路 规模增大。而且, 在每个处理器之间产生 FPU 有效性的不均匀, 不能提高使用效率。
发明内容本发明的目的在于提供一种能够使 FPU 等硬件资源在多个处理器共享, 并能够使 使用效率提高的处理器装置以及多线程处理器装置。
为了解决上述的课题, 本发明的处理器装置包括 : 多个处理器, 对多个程序一边进 行切换一边执行 ; 一个以上的硬件资源, 具有保持数据的寄存器, 补充所述多个处理器的指 令执行 ; 存储器, 按照所述多个程序中的包含利用所述硬件资源的规定指令的每个程序, 记 忆扩展上下文数据, 该扩展上下文数据是所述硬件资源内的寄存器数据的复制 ; 控制部, 在 所述硬件资源与所述存储器之间, 控制扩展上下文数据的保存与恢复 ; 第一判断部, 判断目 前正在执行中的程序的扩展上下文数据是否有被保持在所述硬件资源内的可能性 ; 以及第 二判断部, 判断所述硬件资源内的扩展上下文数据, 是否属于将要执行所述规定指令的处 理器 ; 在由所述第一判断部判断出有所述可能性、 且由所述第二判断部判断出所述硬件资 源内的扩展上下文数据属于将要执行所述规定指令的处理器的情况下, 所述控制部不进行 扩展上下文数据的保存以及恢复, 所述硬件资源执行该规定指令。
根据此构成, 能够在多个处理器共享各个硬件资源。 即, 不论哪个处理器都能够使 用各个硬件资源。因此, 能够使硬件资源的使用效率提高。由于不需要按照每个处理器来 具备硬件资源, 因此只需要按照所需的处理性能来具备最小限度的硬件资源即可, 从而能 够减小电路规模或能够进行最佳化。 在此, 也可以是, 所述控制部包括 : 第一转移部, 按照所述第一判断部以及所述第 二判断部的判断结果, 将扩展上下文数据从硬件资源保存到存储器, 将与保存了的扩展上 下文数据属于同一个处理器的上下文数据恢复 ; 以及第二转移部, 按照所述第一判断部以 及所述第二判断部的判断结果, 将扩展上下文数据从硬件资源保存到存储器, 将与保存了 的扩展上下文数据属于不同的处理器的扩展上下文数据恢复。
在此, 也可以是, 所述硬件资源是扩展运算单元, 执行所述多个处理器所不能执行 的扩展指令, 所述规定指令是所述扩展指令。
根据此构成, 能够高效率地在多个处理器共享 FPU 以及硬件加速器等扩展运算单 元, 从而能够使扩展上下文数据的保存以及恢复成为最小限。
在此, 也可以是, 所述第一判断部包括被设置在多个处理器的每一个的数据判断 部; 各个数据判断部, 在该数据判断部所对应的处理器将要执行程序中的所述规定指令之 时, 判断在与该数据判断部相对应的处理器目前正在执行中的程序的扩展上下文数据, 是 否有被保持在所述硬件资源内的可能性 ; 所述第二判断部包括被设置在多个处理器的每一 个的处理器判断部 ; 各个处理器判断部判断所述硬件资源内的扩展上下文数据是否属于将 要执行所述规定指令的处理器。
根据此构成, 由于按照每个处理器具备了数据判断部以及处理器判断部, 在硬件 资源保持了目前正在执行中的程序 ( 即发出规定指令的程序 ) 的扩展上下文数据的情况 下, 能够不会给其他的处理器带来任何影响, 来使用硬件资源。
在此, 也可以是, 所述多个处理器的每一个具有状态寄存器 ; 各个状态寄存器的数 据的复制被包含在每个程序的上下文数据中 ; 各个状态寄存器保持第一状态信息和第二 状态信息, 所述第一状态信息按照每个所述硬件资源示出, 目前正在执行中的程序的扩展 上下文数据是否有被保持在该硬件资源内的可能性, 所述第二状态信息按照每个所述硬件 资源示出, 被保持在该硬件资源内的扩展上下文数据所对应的处理器 ; 所述各个数据判断
部包括第一判断电路, 该第一判断电路在对应的处理器将要执行程序中的所述规定指令之 时, 判断所述第一状态信息是真还是假, 在判断为是假之时, 产生第一例外中断信号 ; 所述 各个处理器判断部包括第二判断电路, 该第二判断电路在对应的所述第一判断电路判断为 假之时, 判断对应的处理器与所述第二状态信息所示的处理器是否一致, 在判断为是假之 时, 产生第二例外中断信号 ; > 所述硬件资源, 在所述第二判断电路判断为一致之时, 不等 待扩展上下文数据的保存以及恢复, 而按照该规定指令立即工作。
根据此构成, 由于数据判断部以及处理器判断部由硬件 ( 第一判断电路以及第二 判断电路 ) 构成, 因此在硬件资源保持了目前正在执行中的程序 ( 即发出规定指令的程序 ) 的扩展上下文数据的情况下, 既不会给其他的处理器带来任何影响, 又能够高速地使用硬 件资源。
在此, 也可以是, 所述第一转移部包括被设置在每个处理器的保存恢复部 ; 各个保 存恢复部, 在产生了所述第一例外中断信号的情况下, 将扩展上下文数据从所述硬件资源 保存到所述存储器, 将将要执行所述规定指令的处理器的扩展上下文数据, 从所述存储器 恢复到所述硬件资源 ; 所述多个处理器包括第一处理器和第二处理器 ; 所述第一处理器通 过执行第一操作系统, 从而以时分多路复用来执行多个程序 ; 所述第二处理器通过执行与 第一操作系统不同的第二操作系统, 从而以时分多路复用来执行多个程序 ; 所述第一处理 器内的所述保存恢复部, 在所述第一处理器内的所述第一判断电路产生了所述第一例外中 断信号之时, 由所述第一操作系统启动 ; 所述第二处理器内的所述保存恢复部, 在所述第二 处理器内的所述第一判断电路产生了所述第一例外中断信号之时, 由所述第二操作系统启 动。 根据此构成, 能够在执行不同的操作系统 ( 以下简称为 OS) 的处理器之间, 共享硬 件资源。在处理器的程序之间需要进行硬件资源的扩展上下文数据的切换的情况下, 能够 在不会给其他的 OS 带来影响的情况下, 在 OS 内高效率地切换扩展上下文数据。
在此, 也可以是, 所述多个处理器的至少一个执行第三操作系统, 该第三操作系统 管理所述第一操作系统和所述第二操作系统 ; 所述第二转移部, 在任一个所述第二判断电 路产生了所述第二例外中断信号之时, 由第三操作系统启动。
根据此构成, 能够在执行不同的操作系统 ( 以下简略成为 OS) 的处理器之间共享 硬件资源。在执行不同的 OS 的处理器之间需要进行硬件资源的扩展上下文数据的切换的 情况下, 在第三 OS 的管理下, 对扩展上下文数据进行切换。据此, 由于不论针对哪个处理器 上的程序, 扩展上下文数据的切换都能够被隐蔽, 因此能够容易地使以往的程序流通。
在此, 也可以是, 所述第三操作系统, 在任一个所述第二判断电路产生了所述第二 例外中断信号之时, 在该硬件资源正在执行其他的处理器的规定指令的情况下, 等待该硬 件资源的释放, 在确保了该硬件资源之后, 启动所述第二转移部。
根据此构成, 即使在不同的 OS 的处理器之间发生了规定指令的竞争的情况下 ( 硬 件资源的使用发生了竞争的情况下 ), 也能够在第三 OS 的管理下容易地进行调停。
在此, 也可以是, 所述第二转移部, 从所述其他的处理器所对应的扩展上下文数据 从所述硬件资源保存到所述存储器的工作开始, 直到将要执行所述规定指令的处理器的扩 展上下文数据从所述存储器恢复到所述硬件资源的工作的改善为止, 连续地进行处理。
根据此构成, 由于第二转移部从上述的保存开始直到恢复结束为止连续地进行处
理, 因此不会在每个程序的上下文数据 ( 尤其是第一状态信息以及第二状态信息 ) 中产生 矛盾, 并且不会受到其他的处理器的干涉, 能够在不同的处理器之间共享硬件资源。
在此, 也可以是, 各个处理器进一步包括清除电路, 该清除电路在该处理器迁移到 停止状态、 等待状态、 或停顿状态之时, 清除该处理器所对应的第二状态信息。
根据此构成, 在一个处理器迁移到停止状态、 等待状态或停顿状态之时, 通过清除 电路能够释放该处理器正在使用的硬件资源, 从而能够提高在多个处理器之间共享的硬件 资源的使用效率。
在此, 也可以是, 所述各个状态寄存器保持第三状态信息, 该第三状态信息示出是 否锁定第二状态信息 ; 所述第三操作系统, 在第三状态信息示出锁定第二状态信息之时, 禁 止由所述清除电路清除第二状态信息。
根据此构成, 在使用硬件资源的处理器为固定的情况下, 以及在硬件资源优先被 某个处理器使用的情况下, 程序员通过将第三状态信息设定为 “锁定” , 从而该处理器能够 持续占有硬件资源, 从而能够减少不不要的扩展上下文数据的保存以及恢复。
并且, 本发明的处理器装置的构成也可以是, 包括 : 多线程处理器, 该多线程处理 器包括, 通过同时执行多个线程来切换多个程序的多个虚拟处理器 ; 一个以上的硬件资源, 具有保持数据的寄存器, 辅助具有保持数据的寄存器的所述多个虚拟处理器的指令执行 ; 存储器, 按照所述多个程序中的包含利用所述硬件资源的规定指令的每个程序, 记忆扩展 上下文数据, 该扩展上下文数据是所述硬件资源内的寄存器数据的复制 ; 控制部, 在所述硬 件资源与所述存储器之间, 控制扩展上下文数据的保存与恢复 ; 第一判断部, 判断目前正在 执行中的程序的扩展上下文数据是否有被保持在所述硬件资源内的可能性 ; 以及第二判断 部, 判断所述硬件资源内的扩展上下文数据, 是否属于将要执行所述规定指令的处理器 ; 在 由所述第一判断部判断出有所述可能性、 且由所述第二判断部判断出所述硬件资源内的扩 展上下文数据属于将要执行所述规定指令的处理器的情况下, 所述控制部不进行扩展上下 文数据的保存以及恢复, 所述硬件资源执行该规定指令。
根据此构成, 具有与上述同样的效果。
在此, 也可以是, 所述控制部包括 : 第一转移部, 按照所述第一判断部以及所述第 二判断部的判断结果, 将扩展上下文数据从硬件资源保存到存储器, 将与保存了的扩展上 下文数据属于同一个处理器的上下文数据恢复 ; 以及第二转移部, 按照所述第一判断部以 及所述第二判断部的判断结果, 将扩展上下文数据从硬件资源保存到存储器, 将与保存了 的扩展上下文数据属于不同的处理器的扩展上下文数据恢复。
在此, 也可以是, 所述多个虚拟处理器的每一个至少与一个线程相对应 ; 所述多线 程处理器具有 : 多个指令准备部, 取线程的指令并进行译码 ; 执行部, 同时执行与一个以上 的线程相对应的一个以上的指令, 并且这些指令是由所述多个指令准备部译码的指令 ; 以 及状态寄存器, 被设置在每个指令准备部 ; 所述控制部, 通过按照每个指令准备部, 将目前 的线程替换为其他的线程, 从而对所述多个虚拟处理器中的正在执行中的虚拟处理器与不 是正在执行中的虚拟处理器进行替换 ; 各个状态寄存器的数据的复制被包含在每个虚拟处 理器的上下文数据中 ; 各个状态寄存器保持第一状态信息和第二状态信息, 所述第一状态 信息, 按照每个所述硬件资源示出, 目前正在执行中的虚拟处理器的扩展上下文数据是否 有被保持在该硬件资源内的可能性 ; 所述第二状态信息, 按照每个所述硬件资源示出, 与被保持在该硬件资源内的扩展上下文数据相对应的虚拟处理器 ; 所述多线程处理器还包括清 除电路, 该清除电路在由于线程的替换而正在执行中的虚拟处理器成为不是正在执行中之 时, 对进行了线程的替换的指令准备部内的状态寄存器的第二状态信息进行清除。
在此, 也可以是, 所述第一判断部包括被设置在所述多个指令准备部的每一个的 数据判断部 ; 所述各个数据判断部, 在对应的指令准备部的线程将要执行所述规定指令之 时, 通过判断所述第一状态信息是真还是假, 来判断目前正在执行中的程序的扩展上下文 数据是否有被保持在所述硬件资源内的可能性 ; 所述第二判断部包括被设置在多个指令准 备部的每一个的处理器判断部 ; 所述各个处理器判断部, 在对应的指令准备部内的所述数 据判断部判断为是假之时, 判断对应的指令准备部的虚拟处理器是否与所述第二状态信息 所示的虚拟处理器一致, 在判断为是假之时, 产生第二例外中断信号 ; 所述多线程处理器还 包括清除电路, 将由来自所述处理器判断部的第二例外中断信号而被启动的第二例外中断 处理, 作为操作系统的一部分的功能来执行 ; 所述操作系统包括所述硬件资源的获得处理 和等待所述硬件资源的释放的等待处理 ; 所述操作系统进行以下工作 : 在属于使所述第二 例外中断信号产生的虚拟处理器所属的指令准备部以外的指令准备部的虚拟处理器中, 在 该硬件资源不是正在使用中的情况下, 作为获得处理, 将示出为真的第一状态信息和示出 使所述第二例外中断信号产生的虚拟处理器的第二状态信息, 设定到使所述第二例外中断 信号产生的指令准备部内的状态寄存器 ; 在使所述第二例外中断信号产生的虚拟处理器所 属的指令准备部以外的指令准备部, 在虚拟处理器中该硬件资源为正在使用中的情况下, 进行所述等待处理。 通过这种构成, 能够将硬件资源 ( 例如 FPU 以及硬件加速器等扩展运算单元 ) 在 多个处理器中效率良好地共享。即不论哪个处理器都能够使用各个硬件资源。因此, 能够 提高硬件资源的使用效率。 由于无需使每个处理器都具备硬件资源, 因此, 只需要应对所需 要的处理性能的数量最少的硬件资源即可, 因此能够减小电路规模或者对电路规模进行最 佳化。
附图说明
图 1 是示出实施例 1 中的处理器装置的构成的方框图。 图 2 是实施例 1 中的状态寄存器部内的第一至第三状态信息的一个例子的图。 图 3 是有关实施例 1 中的处理器装置中的操作系统的说明图。 图 4 是示出实施例 1 中的硬件资源切换工作的流程图。 图 5 示出了实施例 1 中的第三操作系统所管理的数据的一个例子。 图 6 是示出实施例 1 中的硬件资源切换工作的详细流程图。 图 7 是实施例 2 所涉及的处理器系统的构成的方框图。 图 8 是实施例 2 所涉及的处理器块的构成的方框图。 图 9 示出了实施例 2 所涉及的上下文的构成。 图 10 示出了实施例 2 所涉及的逻辑地址空间的管理。 图 11 示出了实施例 2 所涉及的地址管理表的构成。 图 12 示出了实施例 2 中的逻辑地址的对应关系。 图 13 示出了实施例 2 所涉及的条目指定寄存器的构成。图 14 示出了实施例 2 所涉及的 TLB( 旁路转换缓冲 ) 所进行的条目的分配处理。 图 15 是实施例 2 所涉及的 TLB 所进行的处理的流程图。 图 16 示出了实施例 2 所涉及的物理保护寄存器的构成。 图 17 示出了在实施例 2 中, 由 PVID 保护的物理地址空间。 图 18 示出了实施例 2 所涉及的保护违反寄存器的构成。 图 19 示出了实施例 2 所涉及的错误地址寄存器的构成。 图 20 示出了实施例 2 所涉及的 FPU 分配寄存器的构成。 图 21 示出了实施例 2 所涉及的 FPU 分配部所进行的 FPU 的分配处理。 图 22A 示出了实施例 2 所涉及的路 (way) 指定寄存器的构成。 图 22B 示出了实施例 2 所涉及的路指定寄存器的构成。 图 23 在模式上示出了实施例 2 所涉及的高速缓冲存储器所进行的路 (way) 的分 图 24 是实施例 2 所涉及高速缓冲存储器所进行的处理的流程图。 图 25 示出了实施例 2 所涉及的中断控制寄存器的构成。 图 26 示出了实施例 2 所涉及的处理器系统中的存储器存取管理。 图 27 示出了实施例 2 所涉及的存储器 IF 块所进行的总线带宽的分配。 图 28 是实施例 2 所涉及的处理器系统中的资源分割处理的流程图。配处理。
具体实施方式
( 实施例 1)
在本实施例中的处理器装置中, 在多个处理器之间共享硬件资源, 该处理器装置 包括 : 第一判断部, 判断在硬件资源内的寄存器中, 是否保持有目前正在执行中的某个程序 的扩展上下文数据 ; 第二判断部, 判断所述硬件资源内的扩展上下文数据与哪个处理器相 对应 ; 第一转移部, 在处理器内的程序之间进行扩展上下文数据的保存与恢复 ; 以及第二 转移部, 在处理器之间的程序之间进行扩展上下文数据的保存与恢复。
图 1 是示出本发明的实施例 1 中的处理器装置的构成的方框图。该处理器装置包 括: 指令准备部 210、 220 和 230、 执行流水线部 240、 控制部 250、 硬件资源 260 和 270、 以及 存储器 310、 320、 330。
指令准备部 210、 220、 230 以及执行流水线部 240 构成多线程处理器。指令准备部 210、 220、 230 分别独立地从线程 ( 程序 ) 中取指令并译码, 并将译码结果发行到执行流水线 部 240。
执行流水线部 240 包括多个功能单元 (ALU、 加载 / 存储单元、 分支处理单元、 乘法 器、 除法器等 ), 在多个功能单元中同时执行多个指令译码结果中的能够执行的指令。由于 一个指令准备部与执行流水线部 240 所组成的组实际上作为一个处理器来发挥功能, 因此 称为虚拟处理器或逻辑处理器。即, 指令准备部 210、 220、 230 以及执行流水线部 240 相当 于三个虚拟处理器 0 ~ 2。各个虚拟处理器一边切换程序一边执行。另外, 也可以取代指令 准备部 210、 220、 230 以及执行流水线部 240, 而具备独立工作的多个物理处理器。以下, 在 没有特别需要区分三个虚拟处理器 0 ~ 2( 逻辑处理器 ) 和三个物理处理器的情况下, 简单 称为处理器 0 ~ 2。存储器 310、 320 和 330 具有与三个处理器相对应的地址空间。存储器 310 记忆程 序、 程序的通常的上下文数据 311、 硬件资源的扩展上下文数据 312 等。存储器 320 和 330 也是同样。三个存储器 310、 320 和 330 的物理地址空间为一个, 而具有三个独立的虚拟地 址空间。另外, 三个存储器 310、 320 和 330 也可以具有三个独立的物理地址空间。并且, 也 可以将上下文数据 311、 321 和 331 存储到其他的上下文数据专用的存储器。
指令准备部 210 包括 : 从存储器 310 中取指令的指令取出部 211、 译码被取出的 指令的指令译码部 212、 状态寄存器部 213、 寄存器部 214、 第一判断部 215 以及第二判断部 216。
指令准备部 220 包括 : 从存储器 320 中取指令的指令取出部 221、 译码被取出的指 令的指令译码部 222、 状态寄存器部 223、 寄存器部 224、 第一判断部 225、 以及第二判断部 226。
指令准备部 230 包括 : 从存储器 330 中取指令的指令取出部 231、 译码被取出的指 令的指令译码部 232、 状态寄存器部 233、 寄存器部 234、 第一判断部 235、 以及第二判断部 236。
状态寄存器部 213 以及寄存器部 214 的各个数据构成正在执行中的程序的上下文 数据。状态寄存器部 223 以及寄存器部 224 也是同样。状态寄存器部 233 以及寄存器部 234 也是同样。 控制部 250 具有第一转移部 251 和第二转移部 252, 在硬件资源 260 和 270 以及存 储器 310、 320 和 330 之间控制扩展上下文数据的保存和恢复。
硬件资源 260 和 270 分别具有保持数据的寄存器群 261 和 271, 辅助多个处理 器。各个硬件资源例如可以是 FPU( 浮点处理单元 : Floating Point number processing Unit)、 硬件加速器、 扩展运算单元等。FPU 执行程序中的浮点运算指令 ( 以下称为 FPU 指 令 )。 硬件加速器从处理器中接受指令, 针对被指定的数据高速执行乘累加运算、 蝶形运算、 数据块的量化或逆量化等。扩展运算单元执行处理器所不能直接执行的扩展指令 ( 乘法指 令、 除法指令、 扩展运算单元所专用的指令等 )。
寄存器群 261、 271 分别保持对应的硬件资源的上下文 ( 以下称为扩展上下文数 据 )。 各个硬件资源由多个处理器共享。 在此, 扩展上下文数据在各个处理器的程序的上下 文数据的保存与恢复中是非同步进行的。即, 处理器实际上执行利用硬件资源的规定指令 ( 上述的 FPU 指令、 命令、 扩展指令 ), 只有在需要该扩展上下文数据时才被保存以及恢复。
存储器 310 记忆上下文数据 311 和扩展上下文数据 312, 所述上下文数据 311 是由 多个处理器进行了时分多路复用的各个程序的上下文数据, 所述扩展上下文数据 312 是按 照多个程序中的、 利用硬件资源的、 包含规定指令的程序的每一个的, 所述硬件资源内的寄 存器数据的复制。同样, 存储器 320 记忆上下文数据 321 和扩展上下文数据 322。存储器 330 记忆上下文数据 331 和扩展上下文数据 332。
第一判断部 215, 在对应于指令准备部 210 的处理器将要执行程序中的规定指令 时, 判断硬件资源内的寄存器中是否保持有目前正在执行的程序的扩展上下文数据。
第二判断部 216 判断硬件资源内的扩展上下文数据, 是否属于将要执行该规定指 令的处理器。
第一转移部 251 按照第一判断部 215 以及第二判断部 216 的判断结果, 从硬件资
源中将扩展上下文数据保存到存储器 310、 320、 330 的某一个, 并将属于与保存的扩展上下 文数据相同的处理器 ( 或相同的存储器 ) 的上下文数据恢复。恢复后, 硬件资源 260 或 270 执行该规定指令。
第二转移部 252 按照第一判断部 215 以及第二判断部 216 的判断结果, 从硬件资 源将扩展上下文数据保存到存储器 310、 320、 330 的某一个, 将属于与保存的扩展上下文数 据不同的处理器 ( 或不同的存储器 ) 的上下文数据恢复。恢复后, 硬件资源 260 或 270 执 行该规定指令。
硬件资源 260 或 270, 在由第一判断部 215 判断出目前正在执行的程序的扩展上下 文数据被保持在硬件资源内的寄存器中, 并且在由第二判断部 216 判断出硬件资源内的扩 展上下文数据属于将要执行该规定指令的处理器的情况下, 不等待扩展上下文数据的保存 以及恢复, 而立即执行该规定指令。
通过以上的构成, 各个硬件资源 260 或 270 能够在多个处理器中共享。即, 不论哪 个处理器都能够使用各个硬件资源。因此, 能够提高硬件资源的使用效率。并且, 由于无需 按每个处理器来具备硬件资源, 因此, 只要具备与所需的处理性能相对应的所需数量最小 限的硬件资源就可以, 从而能够减小电路规模或能够进行最佳化。
图 2 示出了本发明的实施例 1 中的状态寄存器部内的第一至第三状态信息的一个 例子。
该图示出了状态寄存器部 213、 223、 或 233 的一部分。在此, 以状态寄存器部 213 为例进行说明。状态寄存器部 213 包括 : 被称为 PSR(Processor Status Register : 处理 机状态寄存器 ) 的寄存器、 和被称为 LPFOSR(Logical Processor FPU Operation Status Register) 的寄存器。其中, PSR(Processor Status Register : 处理机状态寄存器 ) 被包 含在程序的上下文数据 311 中。LPFOSR 或者被包含在程序的上下文数据 311 中, 或者不被 包含在程序的上下文数据 311 中而由另外的 OS( 操作系统 ) 来管理。
PSR 中包含作为第一状态信息的 FE(FPU Enable) 位, 所述第一状态信息示出了, 目前正在执行的程序的扩展上下文数据有被保持在硬件资源内的可能性。
LPFOSR 包含作为第二状态信息的 LPFE0(Logical Processor FPU Enable 0) 和 LPFE1 位, 所述第二状态信息示出与被保持在硬件资源内的扩展上下文数据相对应的处理 器。LPFE0、 LPFE1 位, 仅在排他性地某一个为 1 比特时成为 “1” , 或者是全部成为 “0” 。在 该例子中, LPFE0 位与处理器 0 相对应, LPFE1 位与处理器 1 以及 2 相对应。LPFOSR 还包括 第三状态信息 (FL 位 ), 该第三状态信息示出是否锁定第二状态信息。
即, 正在执行的程序的 PSR 的 FE 位示出了, 扩展上下文数据有被保持在硬件资源 内的可能性, 而且, 在由 LPFE0 或 LPFE1 示出了, 正在执行该程序的处理器与被保持在硬件 资源内的扩展上下文数据相对应的情况下, 该处理器则能够使用由 LPFE0 或 LPFE1 所示的 某一个硬件资源。
第一判断部 215 包括第一判断电路 ( 数据判断部 ), 该第一判断电路在对应的处理 器将要执行程序中的所述规定指令之时, 判断所述第一状态信息是真还是假, 在判断为是 假之时, 产生第一例外中断信号。
第二判断部 216 包括第二判断电路 ( 处理器判断部 ), 该第二判断电路在对应的第 一判断电路判断为假的情况下, 判断对应的处理器与所述第二状态信息所表示的处理器是否一致, 在判断为假之时, 生成第二例外中断信号。第一以及第二判断电路由硬件构成。这 样, 尤其在不需要替换扩展上下文数据的情况下, 能够使处理高速化。
图 3 是本发明的实施例 1 中的处理器装置中的操作系统的说明图。
在该图中, 处理器 0 ~ 2 与三个虚拟处理器或三个物理处理器相对应。
处理器 0 通过执行第一操作系统 ( 以下略称为 OS), 从而以时分多路复用来执行多 个程序。
处理器 1 以及 2 通过执行与第一 OS 不同的第二 OS, 从而以时分多路复用来执行多 个程序。第一 OS 例如是 Linux, 第二 OS 例如是实时 OS。
第一转移部 251 包括按照每个处理器而被设置的保存恢复部 251a、 251b、 251c。 各 个保存恢复部, 在第一例外中断信号产生的情况下, 将扩展上下文数据从所述硬件资源中 保存到所述存储器, 并从所述存储器中将将要执行所述规定指令的处理器的扩展上下文数 据恢复到所述硬件资源, 在处理器 0 内的第一判断部 215 产生了第一例外中断信号之时, 处 理器 0 内的所述保存恢复部 251a 由第一 OS 启动。
在处理器 1 以及 2 的第一判断部 225、 235 产生了第一例外中断信号之时, 处理器 1 以及 2 的保存恢复部 251b、 251c 由第二 OS 启动。
处理器 0 ~ 2 之中的至少一个, 通过执行管理第一 OS 和第二 OS 的第三 OS, 来控 制第二转移部 252。也就是说, 在某一个第二判断部产生了第二例外中断信号之时, 第二转 移部 252 由第三操作系统启动。在属于其他的处理器的扩展上下文数据, 从硬件资源保存 到存储器 310、 320、 330 的某一个的工作开始之时, 直到将要执行所述规定指令的处理器的 扩展上下文数据从所述存储器恢复到所述硬件资源的工作结束为止, 被启动的第二转移部 252 连续地进行处理。 据此, 在每个程序的上下文数据 ( 尤其是第一状态信息以及第二状态 信息 ) 中不会产生矛盾, 也不会受到其他的处理器的干扰, 并且能够在不同的处理器之间 共享硬件资源。
而且, 第三 OS 控制清除部 253。清除部 253 是每个处理器所具备的清除电路的总 称。各个清除电路在与该清除电路相对应的处理器迁移到停止状态、 等待状态或停顿状态 之时, 清除与该处理器相对应的第二状态信息 (LPFE0 以及 LPFE1 位 )。 据此, 能够释放该处 理器所使用的硬件资源, 并能够提高在多个处理器被共享的硬件资源的使用效率。 但是, 在 第三状态信息 (FL 位 ) 被设定 (FL = 1) 的情况下, 清除电路的工作被禁止。据此, 在使用 硬件资源的处理器为固定的情况下, 以及硬件资源由某个处理器优先使用的情况下, 程序 员通过将第三状态信息设定为 “锁定” , 从而硬件资源能够由该处理器持续占有, 从而能够 减少不必要的扩展上下文数据的保存以及恢复。
图 4 是示出本发明的实施例 1 中的硬件资源切换工作的概略的流程图。在该图中 示出了, 处理器 0 ~ 2 之中的某一个处理器的工作。在此, 以该图示出处理器 0 的工作, 以 及硬件资源是 FPU 为例进行说明。
在处理器 0 将要执行 FPU 指令之时 (FPU 指令的执行请求由处理器 0 通过硬件来 检测出之时 )(S30), 判断 FPU 寄存器是否为不能使用 (S31)。 “FPU 寄存器不能使用” 的意 思是, FE = 1、 且 LPFE0 = 1( 或者 LPFE1 = 1) 的情况, 在 FPU 寄存器中保持有属于发出 FPU 指令的执行请求的处理器 0 的程序的扩展上下文数据。该判断是由第一判断电路以及第二 判断电路在几乎没有延迟时间的情况下被执行的。 在这种情况下, FPU 指令立即由 LPFE0 或LPFE1 中示出 1 的一方所对应的 FPU 来执行 (S34)。
而且, 在 “FPU 寄存器不能使用” 的情况下, 判断 FPU 寄存器中是否保持有属于其他 的处理器的扩展上下文数据 (S32)。该判断由第一判断电路以及第二判断电路执行。
在 FPU 寄存器保持有属于相同处理器 0 的扩展上下文数据, 但不是当前处理 器 0 正在执行中的程序的扩展上下文数据的情况下, 也就是说, 该处理器的 PSR 的 FE 位 为 1, LPFOSR 的 LPFE1 或 LPFE0 的某一个为 1 的情况下, 进行 LP 内的上下文切换 (S36)。 LP(Logical Processor : 逻辑处理器 ) 内的上下文切换由第一转移部 251 执行。
在 FPU 寄存器中保存有属于不同的处理器 1 或 2 的扩展上下文数据的情况下, 即 该处理器的 LPFOSR 的 LPFE1 和 LPFE0 均为 0 的情况下, 进行 LP 间的上下文切换 (S41)。 LP(Logical Processor : 逻辑处理器 ) 间的上下文切换由第二转移部 252 执行。
在 LP 内或 LP 间上下文切换之后, FPU 指令立即由 FPU 执行 (S34)。
上述的步骤中, S30、 S31、 S32 由处理器内的硬件执行。S34 由 FPU 执行。S36 在第 一 OS 的控制下, 由第一转移部 251 执行。S41 在第一 OS 的控制下, 由第二转移部 252 执行。
图 5 示出了本发明的实施例 1 中的第三 OS 所管理的数据的一个例子。
该图的表 T1 是, 将处理器的 ID( 在此为 LPID) 与将要使用的硬件资源 ( 在此为 FPU0 和 FPU1) 对应起来的表。表 T2 是, 将 FPU 编号、 占有目前 FPU 的处理器 ID(LPID)、 以 及锁定属性 (FL 比特 ) 对应起来的表。第三 OS 不停地分别将表 T1、 T2 更新为最新状态, 在 软件上管理 FPU。 第三 OS 参考这样的表, 进行 (1)FPU0、 1 与 LPID 的相关联 ( 应该重新分配给 LP 的 FPU 的选择 ), (2) 使用当前的 FPU0、 1 的 LPID, (3) 目前正在使用 FPUn 的 LP 的锁定属性的 管理。
更具体而言, (1) 第三 OS 管理各个 LP 准备使用哪个 FPUn( 在软件上管理各个 LP 准备使用的 FPUn), 决定将图 2 所示的 LPFOSR 内的 LPFE0、 LPFE1 设定为哪个比特。即, 能 够管理在各个 LP 使用哪个 FPUn 的上下文。
(2) 第三 OS 通过管理目前正在使用 FPU0、 1 的 LPID, 从而管理现状的 FPU0、 1 是由 哪个处理器使用, 以及是否马上要被使用, 并将 LP 间的上下文恢复和保存作为连续的操作 来管理。
(3) 第三 OS 能够通过软件来进行使用 FPUn 的 LP 的锁定管理, 并能够通过软件来 管理 FPUn 的锁定属性。据此, 关于 FPU 的占有状态, 能够由自身 LP 来锁定, 也可以从其他 的 LP 中解除。
图 6 是示出本发明的实施例 1 中的硬件资源切换工作的详细流程图。在该图中分 别示出了, 由处理器的硬件执行的步骤、 由第一 OS 或第二 OS 执行的步骤、 以及由第三 OS 执 行的步骤。在该图中示出了处理器 0 ~ 3 中的某一个处理器的工作。在此, 以该图表示处 理器 0 的工作、 硬件资源是 FPU 为例进行说明。
处理器 0 在将要执行 FPU 之时 ( 在处理器 0 通过硬件检测出 FPU 指令的执行请求 之时 )(S30), 第一判断部 215 通过判断 PSR 内的 FE 位 ( 第一状态信息 ) 是真还是假, 来判 断 FPU 寄存器是是否能够使用 (S31), 而且, 第二判断部 216 判断 LPFE0 和 1 位 ( 第二状态 信息 ) 的某一个位是否为真 (S32)。据此, 在 FE = 1 且 LOFE0 = 1 的情况下, 意味着在 FPU 寄存器保持有, 属于发出了 FPU 执行的执行请求的寄存器 0 的程序的扩展上下文数据。该
判断是由第一判断电路以及第二判断电路在几乎没有延迟时间的状态下进行的。 在这种情 况下, FPU 指令立即由 FPU 执行 (S33)。
并且, 第一判断部 215 在 FE = 0 的情况下 (FPU 寄存器为不能使用的情况下 ), 产 生第一例外中断信号 (S34)。据此, 控制移向第一 OS 或第二 OS( 在此为第一 OS)。第一 OS 为了确保 FPU( 在此为 FPU0) 而设定 FE = 1(S35), 并按照需要进行 OS 内的 FPU 的上下文 的保存与恢复。在第二判断部 216 判断为 FPU0 内的扩展上下文数据属于同一个处理器的 情况下, 将扩展上下文数据从 FPU0 保存到存储器 310, 并恢复将要执行目前正在执行中的 FPU 指令的程序的扩展上下文数据 (S36), 从中断处理开始返回 (S37)。据此, 将要执行 FPU 指令的程序就像什么都没有发生那样, 经过 S31(True : 真 )、 S32(True : 真 ) 的判断。据此, FPU0 执行 FPU 指令。
另外, 虽然第一 OS 设定为 FE = 1(S36), 将要保存 FPU0 内的扩展上下文数据, 但是 在由第二判断部 216 判断为 FPU0 内的扩展上下文数据属于其他的处理器的情况下, 产生第 二例外中断信号 (S38)。据此, 控制迁移到第三 OS。
接受了第二例外中断信号的第三 OS, 为了确保 FPU0 的使用权而设定 LPFE0 = 1(S38a), 判断是否确保了 FPU0 的使用权 (S38b), 在能够确保的情况下, 参照表 T2, 判断目 前占有 FPU0 的处理器 (FPU0-LPID) 与将要执行 FPU 指令的处理器是否为同一个 (S40), 如 果不相同进行不同的处理器间的上下文替换 (S41), 退出中断处理 (S42)。 在 S38b 不能确保 FPU0 的情况下 ( 不管是否将 1 写入到 LPFE0, 在 LPFE0 = 0 的情 况下, 即在由其他的物理处理器确保了 FPU0 的情况下 ), 第三 OS 直到 FPU0 被释放为止进入 等待处理 (S39)。在该等待处理中, 可以通过轮询、 事件等待等来检查是否被释放。
并且, 在 S40, 在目前占有 FPU0 的处理器 (FPU0-LPID) 与将要执行 FPU 指令的处理 器相同的情况下, 由于不需要上下文替换, 因此直接退出中断处理。 该例子是在处理器执行 的程序在一旦成为间歇状态、 停止状态的情况下, 因 FE 位被清除而引起的。
以下, 对上述的处理中的接受了第二例外中断信号的第三 OS 处理进行进一步地 详细说明。
图 3 所示的第三 OS, 将由来自第二判断部 216、 226、 236 的各个第二例外中断信号 启动的第二例外中断处理, 作为操作系统的一部分功能来执行。第三 OS 为了支持第二例外 中断处理, 而包括所述硬件资源的获得处理和所述硬件资源的释放等待处理等。
第三 OS 在获得处理中, 在属于产生了第二例外中断信号的虚拟处理器所属的指 令准备部以外的指令准备部的虚拟处理器中, 在该硬件资源不是正在被使用的情况下 ( 情 况 1), 将表示真的第一状态信息和表示产生了所述第二例外中断信号的处理器的第二状态 信息, 设定到产生了第二例外中断信号的指令准备部内的状态寄存器。表示真的第一状态 信息示出了, 目前正在执行的程序的扩展上下文数据有被保持在硬件资源内的可能性。在 上述步骤 S38b 中, 被判断为 FPU0 的使用权已被确保的情况为情况 1。
并且, 第三 OS 在与产生了第二例外中断信号的虚拟处理器所属的指令准备部以 外的指令准备部相对应的虚拟处理器中, 在该硬件资源为正在被使用的情况下 ( 情况 2), 执行等待所述硬件资源的释放的等待处理。在上述步骤 S38b 中, 被判断为 FPU0 的使用权 没有被确保, 且进入到步骤 S39( 等待处理 ) 的情况为情况 2。
在步骤 S38b, 获得硬件资源的处理例如具有用于对资源进行排他控制的 MUTEX 等
的管理对象, 并且可以利用这样的管理对象。
如以上说明, 通过本实施例的处理器装置, 能够在多个处理器共享各个硬件资源。 即, 不论在哪个处理器都能够使用各个硬件资源。因此, 能够提高硬件资源的使用效率。由 于无需使每个处理器都具备硬件资源, 因此只需要按照所需的处理性能具备所需最小限的 数量的硬件资源即可, 从而能够减小电路规模或能够进行最佳化。能够在多个处理器高效 率地共享 FPU 以及硬件资源加速器等扩展运算单元, 并能够使扩展上下文数据的保存以及 恢复成为最小限度。
( 实施例 2)
在本实施例中, 对将在实施例 1 说明的处理器装置适用于媒体处理器的情况的构 成进行说明。
本实施例所涉及的处理器系统包括单一的处理器块, 该单一的处理器块共享资 源, 进行主处理和媒体处理。处理器块具有与实施例 1 的处理器装置相同的功能, 并且, 由 单一的处理器装置进行, 该单一的处理器装置共享资源, 进行主处理和媒体处理。 本发明的 实施例所涉及的处理器系统在针对主处理的线程和媒体处理的线程给予不同的标签信息 的同时, 将处理器系统所具有的资源与该标签信息对应起来分割。 据此, 本发明的实施例所 涉及的处理器系统不仅能够提高面积优化, 而且能够保证性能以及提高坚固性。
首先, 对本发明的实施例所涉及的处理器系统的构成进行说明。
图 7 是示出实施例 2 所涉及的处理器系统 10 的基本构成的功能方框图。
该处理器系统 10 是进行与影像声音流有关的各种信号处理的系统 LSI, 利用外部 存储器 15 来执行多个线程。例如, 处理器系统 10 被搭载于数字电视系统、 DVD 记录器、 数 字相机以及便携式电话等。该处理器系统 10 包括 : 处理器块 11、 流 I/O( 输入 / 输出 ) 块 12、 AVIO(Audio Visual Input Output : 音频视频输入输出 ) 块 13、 以及存储器 IF( 接口 ) 块 14。
处理器块 11 与实施例 1 中所说明的处理器装置相同。以下, 省略相同之处, 以不 同之处为中心进行说明。
处理器块 11 是控制整个处理器系统 10 的处理器, 通过控制总线 16 来控制流 I/O 块 12、 AVIO 块 13、 以及存储器 IF 块 14, 并通过数据总线 17 以及存储器 IF 块 14 来针对外 部存储器 15 进行存取。并且, 处理器块 11 是一电路块, 通过数据总线 17 以及存储器 IF 块 14, 从外部存储器 15 读出压缩图像声音流等图像声音数据, 在进行了压缩或扩展等媒体处 理之后, 再次通过数据总线 17 以及存储器 IF 块 14, 将处理后的图像数据或声音数据存储到 外部存储器 15。
即, 处理器块 11 进行主处理和媒体处理, 所述主处理是指, 不依存于影像声音的 输出周期 ( 帧率等 ) 的非实时的通用 ( 与控制相关联的 ) 处理, 所述媒体处理是指, 依存于 影像声音的输出周期的实时的通用 ( 与媒体相关联的 ) 处理。
例如, 处理器系统 10 搭载于数字电视系统的情况下, 主处理进行该数字电视系统 的控制, 媒体处理进行数字影像的扩展。
流 I/O 块 12 是一电路块, 在由处理器块 11 所进行的控制下, 从蓄积媒体以及网络 等周边设备中, 读取压缩图像声音流等流数据, 通过数据总线 18 以及存储器 IF 块 14, 存储 到外部存储器 15, 或进行相反方向的流传送。这样, 流 I/O 块 12 进行不依存于影像声音的输出周期的非实时的 IO 处理。
AVIO 块 13 是一电路块, 在由处理器块 11 所进行的控制下, 通过数据总线 19 以及 存储器 IF 块 14 从外部存储器 15 中读出图像数据以及声音数据等, 在施行了各种图形处理 等之后, 作为图像信号以及声音信号输出到外部的显示装置以及扬声器等, 或进行相反方 向的数据传送。这样, AVIO 块 13 进行依存于影像声音的输出周期的实时的 IO( 输入输出 ) 处理。
存储器 IF 块 14 是一电路块, 在由处理器块 11 所进行的控制下, 进行控制, 以使得 在处理器块 11、 流 I/O 块 12、 AVIO 块 13、 以及存储器 IF 块 14 和外部存储器 15 之间, 并行 地进行数据请求。并且, 存储器 IF 块 14 按照来自处理器块 11 的请求, 在确保处理器块 11、 流 I/O 块 12、 AVIO 块 13、 以及存储器 IF 块 14 和外部存储器 15 之间的传输频带的状态下, 保证等待时间。
接着, 对处理器块 11 的详细构成进行说明。
图 8 是示出处理器块 11 的构成的功能方框图。
该 处 理 器 块 11 包 括 : 执 行 部 101、 VMPC( 虚 拟 多 处 理 器 控 制 部 )102、 TLB(Translation Lookaside Buffer : 旁 路 转 换 缓 冲 )104、 物 理 地 址 管 理 部 105、 FPU(Floating Point number processing Unit : 浮点处理单元 )107、 FPU 分配部 108、 高速 缓冲存储器 109、 BCU110、 以及中断控制部 111。
在此, 处理器块 11 作为虚拟多处理器 (VMP : Virtual Multi Processor) 发挥作 用。虚拟多处理器一般是指指令并行处理器的一种, 其将多个逻辑处理器 (LP : Logical Processor) 的功能以时间分割来表现。在此, 一个 LP 实质上与被设定在物理处理器 (PP : Physical Processor) 的寄存器群的一个上下文相对应。 通过管理分配到各个 LP 的时间单 位 ( 时隙 : Time Slot) 的频度, 从而能够保证由各个 LP 执行的应用程序间的负载平衡。另 外, 至于 VMP 的构成以及工作, 其中具有代表性的一个例子已经由日本特开 2003-271399 号 公报 ( 专利文献 3) 详细公开, 因此在此省略详细说明。
并且, 处理器块 11 作为多线程流水线型处理器 ( 多线程处理器 ) 发挥作用。多 线程流水线型处理器通过同时处理多个线程, 并且为了不使执行流水线空闲而处理多个线 程, 从而能够提高处理效率。另外, 至于多线程流水线型处理器的构成以及工作, 作为一个 代表例子由于已经由日本特开 2008-123045 号公报 ( 专利文献 4) 详细公开, 因此在此省略 详细说明。
执行部 101 同时执行多个线程。该执行部 101 包括 : 多个物理处理器 121、 运算控 制部 122、 以及运算部 123。
多个物理处理器 121 分别包括寄存器。每个寄存器保持一个以上的上下文 124。 在此, 上下文 124 是指, 与多个线程 (LP) 的每一个对应, 为了执行对应的线程而所需的控制 信息以及数据信息等。各个物理处理器 121 取线程 ( 程序 ) 中的指令并译码, 将译码结果 发行到运算控制部 122。
运算部 123 具有多个运算器, 同时执行多个线程。
运算控制部 122 进行多线程流水线型处理器中的流水线控制。具体而言, 运算控 制部 122 为了不使执行流水线空闲, 而将多个线程分配给具有运算部 123 的运算器之后执 行。VMPC102 控制虚拟多线程处理。该 VMPC102 包括 : 排程器 126、 上下文存储器 127、 以及上下文控制部 128。
排程器 126 是硬件排程器, 按照多个线程的优先级, 进行决定多个线程的执行顺 序以及执行线程的 PP 的调度。具体而言, 排程器 126 通过将 LP 分配到 PP 或取消该分配, 来切换执行部 101 所执行的线程。
上下文存储器 127 记忆分别与多个 LP 对应的多个上下文 124。另外, 该上下文存 储器 127 或多个物理处理器 121 所具备的寄存器相当于本发明的保持单元。
上下文控制部 128 进行所谓的上下文的恢复以及保存。具体而言, 上下文控制部 128 将执行结束了的物理处理器 121 所保持的上下文 124 写入到上下文存储器 127。并且, 上下文控制部 128 从上下文存储器 127 中读出今后将要执行的线程的上下文 124, 并将读出 的上下文 124 转送到与该线程相对应的 LP 所指派的物理处理器 121。
图 9 是示出一个上下文 124 的构成的图。并且, 图 9 中没有示出用于执行线程的 所需的通常的控制信息以及通常的数据信息等, 仅示出了新被附加到上下文 124 的信息。
如图 9 所示, 上下文 124 包括 : TVID(TLB 存取虚拟标识符 )140、 PVID( 物理存储器 保护虚拟标识符 )141、 以及 MVID( 存储器存取虚拟标识符 )142。
该 TVID140、 PVID141 以及 MVID142 是表示, 多个线程 (LP) 的每一个是属于主处理 的线程还是属于媒体处理的线程的标签信息。
TVID140 用于设定多个虚拟存储器保护组。 例如, 对主处理的线程和媒体处理的线 程分别赋予不同的 TVID140。执行部 101 利用此 TVID140, 能够制作分别独立的逻辑地址空 间的页面管理信息。
PVID141 用于限制物理存储器区域的存取。
MVID142 用于设定向存储器 IF 块 14 的存取方式。 存储器 IF 块 14 利用此 MVID142 来决定是优先等待时间 ( 重视响应度 ), 还是优先总线带宽 ( 保证性能 )。
图 10 在模式上示出了处理器系统 10 中的逻辑地址空间的管理。如图 10 所示, 处 理器系统 10 由用户级、 管理程序级以及虚拟监视器级这三个层次来控制。
用户级是进行每个线程 (LP) 的控制的层次。管理程序级是与进行多个线程的控 制的操作系统 (OS) 相对应的层次。 例如, 图 10 所示的管理程序级中包括 : 作为主处理的 OS 的 Linux 内核程序, 和作为媒体处理的 OS 的系统管理 (System Manager)。
虚拟监视器级是控制管理程序级的多个 OS。具体而言, 由虚拟监视器级的 OS( 监 视器程序 ) 来进行利用了 TVID140 的逻辑地址空间的区分。即, 处理器系统 10 为了不 使多个 OS 所使用的逻辑地址空间相互干扰, 而管理逻辑地址空间。例如, 各个上下文的 TVID140、 PVID141 以及 MVID142 使设定只能在虚拟监视器级进行。
并且, 虚拟监视器级的 OS 是本发明的分离单元, 将处理器系统 10 所具有的多个资 源分割为, 与属于主处理的线程相对应的第一资源和与属于媒体处理的线程相对应的第二 资源。在此, 资源具体是指, 外部存储器 15 的存储器区域 ( 逻辑地址空间以及物理地址空 间 )、 高速缓冲存储器 109 的存储区域、 TLB104 的存储区域以及 FPU107。
这样, 通过在虚拟监视器级分割资源, 从而设计者能够以与由处理器独立地执行 主处理和媒体处理相同的情况, 来设计主处理以及媒体处理的 OS。
TLB104 是一种高速缓冲存储器, 保持地址变换表 130, 该地址变换表 130 是示出逻辑地址与物理地址的对应关系的页表的一部分。该 TLB104 利用地址变换表 130, 进行逻辑 地址与物理地址之间的变换。
图 11 示出了地址变换表 130 的构成。
如图 11 所示, 地址变换表 130 包括多个条目 150。 各个条目 150 包括 : 用于识别逻 辑地址的 TLB 标签部 151、 以及与该 TLB 标签部 151 相对应的 TLB 数据部 152。TLB 标签部 151 包括 : VPN153、 TVID140、 以及 PID154。TLB 数据部 152 包括 : PPN155 和 Attribute156。
VPN153 是用户级的逻辑地址, 具体而言是逻辑地址空间的页编号。
PID154 是用于识别使用了该数据的处理的 ID。
PPN155 是与该 TLB 标签 151 相对应的物理地址, 具体而言是物理地址空间的页编 号。
Attribute156 示 出 了 与 该 TLB 标 签 部 151 相 对 应 的 数 据 的 属 性。 具 体 而 言, Attribute156 示出了 : 是否能够针对该数据进行存取、 是将该数据存储到高速缓冲存储器 109 还是不存储、 以及该数据是否具有特权等。
并且, TLB104 对多个线程 (LP) 所使用的逻辑地址空间进行管理。
图 12 在模式上示出了处理器系统 10 中的逻辑地址的对应关系。如以上所述, TLB104 针对每个处理的逻辑地址 (VPN153) 和 PID154 以及 TVID140 的组, 使一个物理地址 (PPN155) 与其对应。 这样, 在具有相同 TVID 的 LP 上的管理程序级中, 通过将一个物理地址 与每个处理的逻辑地址 (VPN153) 和 PID154 组成的组相对应, 从而能够在管理程序级中, 在 区分了各个处理的逻辑地址的基础上, 使该逻辑地址与物理地址相对应。
在此, 在 TLB104 的更新时, 被更新的条目 TVID 由被设定到进行更新的 LP 的 TVID 来设定。
并且, TLB104 针对将 TVID140 附加到每个处理的逻辑地址 (VPN153) 和 PID154 的 组, 使一个物理地址 (PPN155) 与其对应。据此, TLB104 在虚拟监视器级中, 通过对主处理 和媒体处理分别设定不同的 TVID, 从而能够给予独立地逻辑地址空间。
并且, 该 TLB104 具备条目指定寄存器 135。条目指定寄存器 135 保持用于指定分 配给 TVID140 的条目 150 的信息。
图 13 示出了条目指定寄存器 135 中所存储的数据的一个例子。如图 13 所示, 条 目指定寄存器 135 保持 TVID140 与条目 150 的对应关系。并且, 条目指定寄存器 135 由虚 拟监视器级的 OS( 监视器程序 ) 设定并被更新。
TLB104 利用被设定在条目指定寄存器 135 的信息, 按照各个 TVID140 来决定使用 的条目 150。具体而言, TLB104 在 TLB 失败 (TLB miss)( 从 LP 输入的逻辑地址 (TLB 标签 部 151) 没有被保持在地址变换表 130 中 ) 的情况下, 置换与该 LP 的 TVID140 相对应的条 目 150 的数据。
图 14 在模式上示出了在 TLB104 的条目 150 的分配状态。
如图 14 所示, 多个条目 150 由多个 LP 共享。并且, TLB104 利用 TVID140, 与具有 相同的 TVID140 的 LP 之间共享条目 150。例如, 在具有 TVID0 的 LP0 中被分配有条目 0- 条 目 2, 在具有 TVID1 的 LP1 以及 LP2 中被分配有条目 3- 条目 7。据此, TLB104 能够针对属 于主处理的线程使用条目 0- 条目 2, 针对属于媒体处理的线程使用条目 3- 条目 7。
图 15 是示出 TLB104 所进行的处理的流程的流程图。如图 15 所示, 在发生从 LP 向外部存储器 15 的存取的情况下, 首先, TLB104 判断 是否存储了与从进行存取的 LP 输入的逻辑地址 (VPN153、 TVID140 以及 PID154) 相同的逻 辑地址 (S101)。
在没有存储的情况下, 即 TLB 失败的情况下 (S101 的 “是” ), TLB104 更新被分配在 进行存取的 LP 的 TVID140 的条目 150。换而言之, TLB104 更新进行存取的 LP 的 TVID140 和同一个 TVID140 的条目 150(S102)。具体而言, TLB104 从被存储在外部存储器 15 等的页 表中, 读出 TLB 失败后的逻辑地址与物理地址的对应关系, 并将读出的对应关系存储到被 分配在进行存取的 LPTVID140 的条目 150 中。
接着, TLB104 利用更新的对应关系, 将逻辑地址变换为物理地址 (S103)。
另外, 在步骤 S101, 在存储了与从 LP 输入的逻辑地址相同的逻辑地址的情况下, 即 TLB 命中的情况下 (S101 的 “否” ), TLB104 利用 TLB 命中后的对应关系, 将逻辑地址变换 为物理地址 (S103)。
在此, 被存储在外部存储器 15 等的页表是按照每个 TVID140 或每个 PVID141 而被 事先制作的, 以便分配外部存储器 15 的物理地址。该页表例如由管理程序级或虚拟监视器 级 OS 制作以及更新。
物理地址管理部 105 利用 PVID141 来进行物理地址空间的地址保护。该物理地址 管理部 105 包括 : 多个物理存储器保护寄存器 131、 保护违反寄存器 132、 错误地址寄存器 133。
各个物理存储器保护寄存器 131 按照各个物理地址范围, 保持示出能够针对该物 理地址范围进行存取的 LP 的信息。
图 16 示出了被保持在一个物理存储器保护寄存器 131 中的信息的构成。如 图 16 所示, 物理存储器保护寄存器所保持的信息中包含 : BASEADDR161、 PS162、 PN163、 PVID0WE-PVID3WE164、 PVID0RE-PVID3WE165。
BASEADDR161、 PS162、 以 及 PN163 是 指 定 物 理 地 址 范 围 的 信 息。 具 体 而 言, BASEADDR161 是指定的物理地址范围的开头的地址的上位 16 位。PS162 表示页面大小。例 如, 作为页面大小被设定有 1KB、 64KB、 1MB 或 64MB。PN163 示出被设定到 PS162 的页面大小 的页面数。
PVID0WE-PVID3WE164 以 及 PVID0RE-PVID3RE165 示 出, 能 够 在 以 BASEADDR161、 PS162 以及 PN163 指定的物理地址范围内进行存取的 LP 的 PVID141。
具 体 而 言, PVID0WE-PVID3WE164 分 别 按 照 PVID141 设 置 1 位。 并 且, PVID0WE-PVID3WE164 示出, 被赋予了对应的 PVID141 的 LP 能否将数据写入到被指定的物理 地址范围。
PVID0RE-PVID3RE165 分别按照每个 PVID141 设置 1 位。 并且, PVID0RE-PVID3RE165 示出, 被赋予了对应的 PVID141 的 LP 能否读出被指定的物理地址范围的数据。
并且, 在此虽然是 4 种 PVID141 被赋予在多个 LP, 不过只要是 2 种以上的 PVID141 被赋予在多个 LP 即可。
图 17 示出了由 PVID141 保护的物理地址空间的一个例子。并且, 在此, 物理地址 管理部 105 具有 4 个物理存储器保护寄存器 131(PMG0PR-PMG3PR)。并且, PVID0 被赋予在 Linux( 主处理 ) 的 LP 群, PVID1 被赋予在媒体处理的 LP 中的图像处理的 LP 群, PVID2 被赋予在媒体处理的 LP 中的声音处理的 LP 群, PVID3 被赋予在 System Manager( 系统信息 管理, 媒体处理的 OS) 的 LP 群。
并且, 物理地址管理部 105, 在 LP 对没有被该 LP 的 PVID141 许可的物理地址进行 了存取的情况下, 在发生例外中断的同时, 将发生了错误的存取信息写入到保护违反寄存 器 132, 并且, 将成为错误的原因的存取的被存取的物理地址写入到错误地址寄存器 133。
图 18 示出了保护违反寄存器 132 中所保持的存取信息的构成。如图 18 所示, 保 护违反寄存器 132 中所保持的存取信息包括 PVERR167 和 PVID141。PVERR167 示出, 该错误 是否为物理存储器空间保护违反 (LP 对没有被该 LP 的 PVID141 许可的物理地址进行存取 的错误 )。PVID141 被设定有发生了物理存储器空间保护违反的 PVID141。
图 19 示出了错误地址寄存器 133 中所保持的信息的构成。如图 16 所示, 错误地 址寄存器 133 保持成为错误原因的存取的被存取的物理地址 (BEA[31:0])。
如以上所述, 通过利用 PVID141 保护物理地址, 从而能够提高系统的坚固性。具体 而言, 在错误排除时, 设计者能够容易地从发生了错误的物理地址以及 PVID 中, 判别图像 处理以及声音处理中的哪个处理发生了错误。 并且, 在主处理的错误排除时, 对于在不能写 入图像处理等地址发生的误工作, 能够毫不迟疑地对图像处理的误工作进行错误排除。
FPU 分配部 108 将多个 FPU107 分配给 LP。该 FPU 分配部 108 具备 FPU 分配寄存器 137。 图 20 示出了 FPU 分配寄存器 137 中所存储的数据的一个数据的例子。如图 20 所 示, 按照每个 TVID140FPU107 对应于 FPU 分配寄存器 137。并且, FPU 分配寄存器 137 由虚 拟监视器级的 OS( 监视器程序 ) 来设定以及更新。
图 21 在模式上示出了由 FPU 分配部 108 进行的 FPU107 的分配处理。
如图 21 所示, 多个 FPU107 由多个 LP 共享。 并且, FPU 分配部 108 利用 TVID140, 在 具有相同 TVID140 的 LP 之间共享 FPU107。例如, FPU 分配部 108 将 FPU0 分配给具有 TVID0 的 LP0, 将 FPU1 分配给具有 TVID1 的 LP1 以及 LP2。
并且, LP 利用由 FPU 分配部 108 分配的 FPU107 来执行线程。
高速缓冲存储器 109 是对在处理器块 11 所使用的数据进行暂时存储的存储器。 并且, 高速缓冲存储器 109 针对具有不同的 TVID140 的 LP, 使用独立的不同的数据区域 (Way168 : 路 168)。该高速缓冲存储器 109 具有路指定寄存器 136。
图 22A 以及图 22B 示出了路指定寄存器 136 中所存储的数据的一个例子。
如图 22A 所示, 按照每个 TVID140, 路 168 对应于路指定寄存器 136。并且, 路指定 寄存器 136 由虚拟监视器级的 OS( 监视器程序 ) 设定以及更新。
并且, 如图 22B 所示, 也可以按照每个 LP 来与路 168 对应。在这种情况下, 例如上 下文 124 内包含该 LP 所使用的路的信息, 虚拟监视器级的 OS 或管理程序级的 OS 参考上下 文 124, 设定并更新路指定寄存器 136。
图 23 在模式上示出了由高速缓冲存储器 109 进行的路 168 的分配处理。
如图 23 所示, 高速缓冲存储器 109 具有多个路 168(way0-way7), 以作为数据存储 单位。该高速缓冲存储器 109 利用 TVID140, 在具有相同 TVID140 的 LP 之间共享路 168。 例 如, 在 具 有 TVID0 的 LP0 被 分 配 有 way0-way1, 具 有 TVID1 的 LP1 以 及 LP2 被 分 配 有 way2-way7。 据此, 高速缓冲存储器 109 将属于主处理的线程的数据高速缓存到 way0-way1,
将属于媒体处理的线程的数据高速缓存到 way2-way7。
这样, 高速缓冲存储器 109 能够在具有不同的 TVID140 的 LP 之间, 不相互驱逐高 速缓存数据。
图 24 是由高速缓冲存储器进行的处理的流程的流程图。
如图 24 所示, 在由 LP 向外部存储器 15 进行了存取的情况下, 首先, 高速缓冲存储 器 109 判断是否存储了与从进行存取的 LP 输入的地址 ( 物理地址 ) 相同的地址 (S111)。
在没有存储的情况下, 即高速缓存失败的情况下 (S111 的 “是” ), 高速缓冲存储 器 109 将从进行存取的 LP 输入的地址以及数据, 高速缓存到由路指定寄存器 136 指定的路 168(S112)。具体而言, 在读操作 (read-access) 的情况下, 高速缓冲存储器 109 从外部存 储器 15 等读出数据, 并将读出的数据存储到由路指定寄存器 136 指定的路 168。 并且, 在写 操作 (write-access) 的情况下, 高速缓冲存储器 109 将从进行存取的 LP 输入的数据存储 到由路指定寄存器 136 指定的路 168。
另外, 在步骤 S111, 在存储了与从进行存取的 LP 输入的地址相同的地址的情况 下, 即在高速缓存命中的情况下 (S111 的 “否” ), 高速缓冲存储器 109 将高速缓存命中的数 据更新 ( 写操作时 ) 或输出到进行存取的 LP( 读操作时 )(S113)。
BCU110 用于控制处理器块 11 与存储器 IF 块 14 之间的数据传送。
中断控制部 111 进行中断的检测、 请求以及许可等。该中断控制部 111 具备多个 中断控制寄存器 134。例如, 中断控制部 111 具备 128 个中断控制寄存器 134。中断控制部 111 参考中断控制寄存器 134, 将发生了中断之事通知给与发生了中断的中断因素对应的 线程 (LP)。
在中断控制寄存器 134 中被设定有与中断因素相对应的将要被中断的线程。
图 25 示出了一个中断控制寄存器 134 的构成。 图 25 所示的中断控制寄存器 134 包 括与中断因素相对应的、 系统中断 171(SYSINT)、 LP 标识符 172(LPID)、 LP 中断 173(LPINT)、 HW 事件 174(HWEVT)。
系统中断 171 示出该中断是否为系统中断 ( 全局中断 )。LP 标识符 172 示出将要 被中断的 LP。LP 中断 173 示出该中断是否为 LP 中断 ( 局部中断 )。HW 事件 174 示出是否 由于该中断因素而产生硬件事件。
在系统中断的情况下, 中断控制部 111 将发生了中断之事通知给正在执行当前线 程的 LP。并且, 在 LP 中断的情况下, 中断控制部 111 针对 LP 标识符所表示的 LP 进行中断。 并且, 在硬件事件的情况下, 针对 LP 标识符 172 所表示的 LP 发送硬件事件。由该硬件事件 而该 LP 被唤起。
并且, 系统中断 171 以及 LP 标识符 172 只有虚拟监视器级的 OS( 监视器程序 ) 能 够改写, LP 中断 173 以及 HW 事件 174 只有虚拟监视器级以及管理程序级的 OS 能够改写。
以下对处理器系统 10 内的存储器存取管理进行说明。
图 26 在模式上示出了处理器系统 10 中的存储器存取管理的状态。如图 26 所示, MVID142 从处理器块 11 被发送到存储器 IF 块 14。存储器 IF 块 14 利用该 MVID142, 按照 每个 MVID142, 在对总线带宽进行了分配的基础上, 利用被分配到请求存取一方的线程的 MVID142 的总线带宽, 向外部存储器 15 进行存取。
并且, 存储器 IF 块 14 具备总线带宽指定寄存器 138。图 27 示出了存储器 IF 块 14 中的总线带宽指定寄存器 138 所保持的数据的一个 例子。另外, 在图 27 中, 在作为主处理的 Linux、 媒体处理中所包含的声音处理 (Audio)、 以 及媒体处理中所包含的图像处理 (Video) 中分别被赋予了不同的 MVID142。
如图 27 所示, 存储器 IF 块 14 按照每个 MVID142 来分配总线带宽。并且, 按照每 个 MVID142 来决定优先顺序, 根据该优先顺序来进行向外部存储器 15 的存取。
据此, 在按照每个 MVID142 确保了所需的总线带宽的同时, 请求的存取等待时间 也得到了保证。因此, 处理器系统 10 能够实现多个应用程序的性能保证以及实时性的保 证。
并且, 通过利用 MVID142 来分割总线带宽, 从而即使在存储器 IF 块 14 与处理器块 11 仅通过一个数据总线 17 来连接的情况下, 也能够进行与通过多个数据总线来连接的存 储器 IF 块 14 和处理器块 11 的情况相同的控制。即, 能够进行与针对多个块分割总线的情 况相同的控制。
并且, 由于用于针对来自多个块的存取请求, 确保总线带宽以及保证等待时间的 技术, 其中具有代表性的例子由日本特开 2004-246862 号公报 ( 专利文献 5) 详细公开, 因 此在此省略详细说明。
并且, 在处理器系统 10, 能够利用 TVID140 以及以往的 MVP 的功能, 来任意地设定 媒体处理和主处理的处理时间的分配。具体而言, 例如, 通过虚拟监视器级的 OS, 针对各个 TVID140 的处理时间的分配 ( 媒体处理和主处理的处理时间的分配 ) 被设定到 VMPC102 所 具备的寄存器 ( 图中未示出 )。VMPC102 参考像以上这样被设定的处理时间的分配和各个 线程的 TVID140, 来切换执行部 101 所执行的线程, 以便满足该处理时间的分配。
接着, 对虚拟监视器级的 OS( 监视器程序 ) 所进行的资源分割处理进行说明。
图 28 是示出由监视器程序进行的资源分割处理的流程的流程图。
首先, 监视器程序通过设定多个上下文 124 的 TVID140、 PVID141 以及 MVID142, 从 而将多个线程分割为多个组 (S121、 S122、 S123)。
接着, 监视器程序通过将 TVID140 与条目 150 的对应关系设定到条目指定寄存器 135, 从而将 TLB104 所具有的多个条目 150 分割到与主处理相对应的第一条目和与媒体处 理相对应的第二条目 (S124)。
参照被设定到该条目指定寄存器 135 的对应关系和进行存取的线程的 TVID140, TLB104 将条目 150 分配到属于主处理的线程和属于媒体处理的线程。
并且, 监视器程序通过将 TVID140( 或 LP) 和路 168 的对应关系设定到路指定寄存 器 136, 从而将高速缓冲存储器 109 所具有的多个路 168 分割为与主处理相对应的第一路和 与媒体处理相对应的第二路 (S125)。
参考被设定到该路指定寄存器 136 的对应关系和进行存取的线程的 TVID140, TLB104 将路 168 分配到属于主处理的线程和属于媒体处理的线程。
并且, 监视器程序通过将 TVID140 与 FPU107 的对应关系设定到 FPU 分配寄存 器, 从而将多个 FPU107 分割为与主处理相对应的第一 FPU 和与媒体处理相对应的第二 FPU(S126)。
参考被设定到该 FPU 分配寄存器 137 的对应关系和线程的 TVID140, FPU 分配部 108 将 FPU107 分配到属于主处理的线程和属于媒体处理的线程。并且, 监视器程序通过将 MVID142 与总线带宽的对应关系设定到总线带宽指定寄 存器 138, 从而将外部存储器 15 与存储器 IF 块 14 之间的总线带宽, 分割为与主处理对应的 第一总线带宽和与媒体处理相对应的第二总线带宽 (S127)。
参考被设定在该总线带宽指定寄存器 138 的对应关系和进行存取的线程的 MVID142, 存储器 IF 块 14 将总线带宽分配给属于主处理的线程和属于媒体处理的线程。
并且, 监视器程序制作示出物理地址和逻辑地址的对应关系的页表。 此时, 监视器 程序通过设定 PVID141 与物理地址的对应关系, 从而在将外部存储器 15 的物理地址空间, 分割为与主处理对应的第一物理地址范围和与媒体处理对应的第二物理地址范围的同时, 将第一物理地址范围分配给主处理的线程, 将第二物理地址范围分配给第二物理地址范围 (S128)。并且, 监视器程序通过将 PVID141 与物理地址的对应关系设定到物理存储器保护 寄存器 131, 从而进行物理地址的保护。
并且, 监视器程序与各个中断因素相对应, 将将要被中断的 LP 等设定到中断控制 寄存器 134(S129)。据此, 监视器程序能够对主处理和媒体处理分别进行独立地中断控制。
参考被设定到该中断控制寄存器 134 的对应关系和中断因素, 中断控制部 111 使 与该中断因素对应的线程中断。
并且, 通过监视器程序的各个设定的顺序, 并非受图 28 所示的顺序所限。
并且, 可以不以监视器程序来制作页表, 由被分配了 TVID140 的管理程序级的 OS 来决定, 分别被分配的与物理地址对应的逻辑地址, 能够分别制作页表, 不过, 本发明并非 受这些所限制。
通过以上所述, 本实施例所涉及的处理器系统 10 由于具备, 共享资源并进行主处 理和媒体处理的单一的处理器块 11, 因此能够提高面积优化。并且, 处理器系统 10 在将不 同的标签信息 (TVID140、 PVID141 以及 MVID142) 给予到主处理的线程和媒体处理的线程的 同时, 将处理器系统 10 所具有的资源与该标签信息对应起来进行分割。据此, 处理器系统 10 能够将资源分别独立地分配给主处理和媒体处理。因此, 由于在主处理与媒体处理之间 不会产生资源的竞争, 所以处理器系统 10 能够提高性能的保障以及坚固性。
并且, 物理地址管理部 105 利用 PVID141, 在各个线程将要存取被指定的物理地址 范围以外的情况下, 发生中断。据此, 处理器系统 10 能够提高系统的坚固性。
以上, 对本实施例所涉及的处理器系统 10 进行了说明, 不过本发明并非受这些实 施例所限。
例如, 在以上的说明中, 以处理器块 11 进行主处理和媒体处理这两种处理为例进 行了说明, 不过也可以进行包括除此之外的处理的三种以上的处理。 在这种情况下, 分别与 该三种以上的处理相对应的三种以上的 TVID140 被赋予到多个线程。
同样, PVID141 以及 MVID142 的种类也不受上述的数量所限, 只要是多个即可。
并 且, 在 上 述 的 说 明 中, 作 为 对 多 个 线 程 进 行 分 组 的 标 签 信 息, 在此说明了 TVID140、 PVID141 以及 MVID142 这三种, 不过, 处理器系统 10 也可以仅利用一个标签信息 ( 例如, TVID140)。即, 处理器系统 10 也可以不利用 PVID141 以及 MVID142, 物理地址的管 理以及总线带宽的控制也可以利用 TVID140。并且, 处理器系统 10 也可以利用两种标签信 息, 也可以利用四种以上的标签信息。
并且, 在上述的说明中, 虽然说明了中断控制寄存器 134、 条目指定寄存器 135、 路指定寄存器 136、 FPU 分配寄存器 137 以及页表, 是由虚拟监视器级的 OS( 监视器程序 ) 设 定以及更新的, 不过也可以是, 通过虚拟监视器级的 OS 的指示, 管理程序级的 OS 也可以对 中断控制寄存器 134、 条目指定寄存器 135、 路指定寄存器 136、 FPU 分配寄存器 137 以及页 表进行设定以及更新。 即, 也可以是, 通过虚拟监视器级的 OS, 管理程序级 OS 中被通知有被 分配到该管理程序级的 OS 的资源, 该管理程序级的 OS 为了利用被通知来的资源, 而对中断 控制寄存器 134、 条目指定寄存器 135、 路指定寄存器 136、 FPU 分配寄存器 137 以及页表进 行设定以及更新。
并且, 以上实施例所涉及的处理器系统 10 中所包含的各个处理部典型地可以作 为集成电路的 LSI 来实现。这些可以被单独地制为一个芯片, 也可以将其中的一部分或全 部制成一个芯片。
在此, 虽然称作了 LSI, 不过根据集成度的不同, 也可以被称作 IC、 系统 LSI、 超级 LSI、 以及极超级 LSI。
并且, 集成电路化不仅限于 LSI, 也可以以专用电路或通用处理器来实现。在 LSI 制造后, 也可以利用可编程的 FPGA( 现场可编程门阵列 ) 或利用能够将 LSI 内部的电路单 元的连接以及设定重新构建的可重装处理器。
而且, 随着半导体技术的进步或派生出的其他的技术, 若出现了能够取代 LSI 的 集成电路化的技术, 当然也可以利用这些技术来对使用了这种技术的各个处理部进行集成 化。生物技术的适用等也将成为可能。
并且, 本发明的实施例所涉及的处理器系统 10 的功能的一部分或全部, 也可以通 过执行部 101 等执行程序来实现。
并且, 本发明可以作为上述的程序, 也可以作为记录了上述程序的记录介质。并 且, 上述的程序可以通过互联网等传送介质来流通也是不言而喻的。
并且, 上述实施例所涉及的处理器系统 10 以及其变形例的功能中至少一部分也 可以被组合。
本发明能够适用于处理器装置以及多线程处理器装置, 尤其能够适用于数字电 视、 DVD 记录器、 数字摄像机以及便携式电话等中所搭载的媒体处理用的处理器装置以及多 线程处理器装置。
符号说明
10 处理器系统
11 处理器块
12 流 I/O( 输入输出 ) 块
13 AVIO 块
14 存储器 IF 块
15 外部存储器
16 控制总线
17, 18, 19 数据总线
101 执行部
102 VMPC
104 TLB( 旁路转换缓冲 )26102334102 A CN 102334118
说物理地址管理部 FPU( 浮点处理单元 ) FPU 分配部 高速缓冲存储器 BCU 中断控制部 物理处理器 运算控制部 运算部 上下文 排程器 上下文存储器 上下文控制部 地址转换表 物理存储器保护寄存器明书22/23 页105 107 108 109 110 111 121 122 123 124 126 127 128 130 131132 保护违反寄存器 133 错误地址寄存器 134 中断控制寄存器 135 条目指定寄存器 136 路 (way) 指定寄存器 137 FPU 分配寄存器 138 总线带宽指定寄存器 150 条目 151 TLB 标签部 152 TLB 数据部 168 路 (way) 171 系统中断 172 LP 标识符 173 LP 中断 174 HW 事件 210 指令准备部 213, 223, 233 状态寄存器部 214 寄存器部 215, 225, 235 第一判断部 216, 226, 236 第二判断部 220 指令准备部 230 指令准备部 240 执行流水线部 250 控制部251 第一转移部 251a, 251b, 251c 保存恢复部 252 第二转移部 253 清除部 260, 270 硬件资源 261, 271 寄存器群 310, 320, 330 存储器 311 上下文数据 312 扩展上下文数据