(57)【特許請求の範囲】
【請求項１】
中間言語コードで記述された第１命令コードを格納するメモリ領域と、
第２命令コード体系で動作する中央演算装置と、
前記第１命令コードを、前記中央演算処理装置で実行可能な第２命令コードへと変換する翻訳手段とを有し、
前記中間言語コードは外部から前記中央演算装置を介し前記翻訳手段へ入力されるものであるであって、
前記中央演算装置は、前記翻訳手段により前記第１命令コードから変換された前記第２命令コードを実行するものであって、
前記翻訳手段は、専用ロジックとしての機能ブロックであることを特徴とする情報処置装置。
【請求項２】
請求項１に記載の情報処理装置において、前記翻訳手段における前記第１命令コードを前記第２命令コードへと変換する処理と、前記第１中央演算装置での前記変換された第２命令コードの実行は、並列に行われることを特徴とする情報処理装置。
【請求項３】
請求項１又は２のいずれか記載の情報処理装置において、
前記第１命令コードはJAVAコードであることを特徴とする情報処理装置。
【請求項４】
請求項１から３のいずれかに記載の情報処理装置において、
前記第１コードは、ネットワークを介し転送されてくるものであることを特徴とする情報処置装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークコンピュータに適した、演算機能付き半導体メモリに関わり、特に入力プログラムの命令コード体系を異なるコード体系のプログラムに翻訳する機能を有するメモリに関する。
【０００２】
【従来の技術】
近年、ネットワークコンピューティング（以下ＮＣ）という概念が提唱・実用化されている。ＮＣは、ネットワークで接続された少数のサーバーと多数の端末から構成されるシステムである。端末内の中央演算処理装置（以下ＣＰＵ）で実行されるソフトウエアプログラムは、サーバー側に保持され、ユーザーが端末側でプログラムを実行しようとする時に、必要なプログラムのみが端末内のメモリに転送されて実行される。このような方式をとることにより、多数の端末各々の中に同じプログラムソフトウエアを保持しておく必要がなくなり、プログラムソフトウエアの保守が容易になり、それに必要なコストの低減が可能となる。また、端末装置もハードディスク装置のようなプログラムソフトウエアを保持しておく大容量記憶装置が不要となるため、端末の単価を低減することが可能となる。
【０００３】
上記ＮＣにおいては、ネットワークを介して転送されるソフトウエアプログラムは、端末のＣＰＵが直接実行可能な命令コードではなく、たとえばＪＡＶＡなどの中間言語で表記されるのが一般的である。ＪＡＶＡは、米国Sun Microsystems, Incが開発したインターネット用のオブジェクト指向言語及びその実行環境である。ＪＡＶＡなどの中間言語で表記されたプログラムは端末内のメモリに保持され、端末内のＣＰＵにより、そのＣＰＵが実行可能な命令に一度翻訳されてから実行される。これにより命令コード体系の異なるＣＰＵを持つ任意の端末において、まったく同じプログラムを実行することが可能となる。
【０００４】
通常上記の翻訳処理は、端末内ＣＰＵ上で実行されるインタープリター、またはコンパイラによっておこなわれる。入出力だけを見ると中間言語を実行する仮想的な装置と考えられるため、このような方式は「仮想マシンによる言語処理系の実装」と呼ばれる。
【０００５】
従来のＮＣにおいては、上記仮想マシンによる言語処理系の実装が採用され、端末内のＣＰＵが翻訳処理と翻訳結果の実行の両方を並列して行うため、ＣＰＵの負荷が重く処理能力が低いという問題があった。この課題に対し、米国Sun Microelectronicsは翻訳をしなくても中間言語を命令コードとして直接実行可能なＣＰＵという意味あいで、ＪＡＶＡチップを開発し、上記の課題に対応している。このような問題解決方法および上記のＮＣ全般に関する従来技術に関しては「ＪＡＶＡチップ登場、組み込み用でポストＲＩＳＣをねらう」（日経エレクトロニクス  １９９６年６月１７日号  No.664）に詳しく紹介されている。
【０００６】
図４には同引用文献に掲載されているＪＡＶＡ仮想マシンの概念図を示す。高級言語の１つであるＪＡＶＡ言語で記述されたプログラムは、ＪＡＶＡコンパイラによって中間言語コードの１つであるバイト・コードに変換される、バイト・コードに変換されたプログラムは、各種オペレイティーングシステム（以下ＯＳ）上のインタプリタまたはコンパイラによって、各端末のＯＳとＣＰＵの命令体系に沿ったコードに変換され、実行される。また、バイト・コードをそのまま命令語として実行できるＪＡＶＡチップの場合には、バイト・コードがそのまま実行される。
【０００７】
【発明が解決しようとする課題】
上記した従来のＮＣにおいては、端末の処理速度を向上させる手段として、ＪＡＶＡチップなどの中間言語を直接実行する専用のＣＰＵが提案されている。しかし、この方法では、インタープリターあるいはコンパイラを用いた仮想マシンによる実装に比べて、実効速度を向上させることはできるものの、高速化のためには端末のＣＰＵをＪＡＶＡチップなどの特殊なＣＰＵに変更しなくてはならない。すなわち、端末ＣＰＵやＯＳに依存せず同じプログラム資源を共通に利用できるというＮＣの利点を保ったまま処理速度向上のための中間言語を利用することはできない。一方、情報処理端末のＣＰＵやＯＳに依存させないために、端末ＣＰＵ上でＪＡＶＡコンパイラをづささせてＪＡＶＡプログラムを処理可能なＪＡＶＡ仮想マシンを用いると、端末ＣＰＵの処理が増加して、主となる処理の実効速度の向上が望めなくなってしまう。
【０００８】
本発明の目的は、端末で使用するＣＰＵやＯＳの任意性を保ったまま、仮想マシンによる実装よりも原理的に高速化が可能な、ＮＣ端末の構成を提供することにある。
【０００９】
本発明の他の目的は、メインの処理言語以外の言語で記述されたプログラムを高速に実行することができる情報処理装置を提供することにある。
【００１０】
さらに、本発明の他の目的は、ＮＣ端末のＣＰＵに接続されて好適なメモリチップまたはメモリ装置を提供することにある。
【００１１】
【課題を解決するための手段】
本発明の代表的手段を示せば以下の通りである。即ち、中間言語コードで記述された第１命令コードを格納する第１メモリ領域と、第２命令コード体系で動作する第１中央演算装置と、前記第１命令コードを、第１中央演算処理装置で実行可能な第２命令コードへと変換する翻訳手段と、前記翻訳手段から変換された前記第２命令コードを受け取って、前記第１中央演算装置に前記第２命令コードを供給する第２メモリ領域とを備え、前記翻訳手段は、前記第１命令コードを前記第２命令コードへ変換するための翻訳プログラムを格納するプログラムメモリと、前記翻訳プログラムを実行する第２中央演算装置とを有し、前記翻訳プログラムは入れ替え可能であるよう情報処理装置を構成する。
【００１２】
前記情報処理装置は、外部から入力された中間言語コードをメモリ領域内の第１の領域に保持する。機能メモリ内に設けられた翻訳手段は、この保持された中間言語を翻訳し、ＣＰＵが実行可能な命令コードへと変換し、変換結果をメモリ内の第２の領域に保持する。ＣＰＵはこの第２の領域に保持された命令コードを実行する。これにより、中間言語の翻訳処理とＣＰＵでのプログラム実行が並列に行われるので、ＣＰＵ上で翻訳処理とプログラムの実行の双方を行う必要がある「仮想マシンによる実装」の場合に比べ、全体の処理時間を低減することが可能となる。また、中間言語はＣＰＵの形式に依存した命令コード体系に翻訳されるので、ＣＰＵとその上で使用するＯＳには任意のものを使用することが可能となる。
【００１３】
【発明の実施の形態】
以下、本発明の内容を実施例を用いて詳しく説明する。
【００１４】
図１は、本発明の第１の実施例を示す図である。本実施例においては、ＣＰＵ２はどのような命令体系をもったものでもかまわない。また、図１には図示されていないが、ＣＰＵ２にはデータバスを介して情報処理装置として必要な一般構成、すなわち、ディスプレイ、キーボード、マウス等の入出力手段、を接続することができる。これらの構成は後述の図２、図３においても同様にＣＰＵ２に接続可能である。機能メモリ１の内部には、メモリ手段１１と翻訳処理手段１２がある。メモリ手段は２つの領域１１１と１１２に別れており、１１１には中間言語で記述されたプログラムが保持され、１１２には翻訳手段１２で処理された結果が保持される。翻訳手段１２は、メモリ領域１１１に保持された中間言語コードを、ＣＰＵ２が実行可能な命令コード体系に変換し、その変換結果をメモリ領域１１２に出力する。そして、ＣＰＵ２はメモリ領域１１２に保持された命令コードを実行する。なお、本実施例では、中間言語コードはＣＰＵ２に接続されたネットワーク接続手段４、ＣＰＵ２およびメモリバス３を介してメモリ領域１１１に与えられる。また、翻訳手段１２は１つのハードウエア、たとえば専用ロジックとしての機能ブロックとして実現される。
【００１５】
図２には、本発明の第２の実施例を示す。本実施例では、機能メモリ内の翻訳手段１２が、１つのハードウエアとしてではなく、第２のＣＰＵ１２１と翻訳プログラムを保持するプログラムメモリ１２２により構成されている点が、上記第１の実施例とは異なる。プログラムメモリ１２２は、フラッシュメモリなどの、書き換え可能な不揮発性メモリからなる。プログラムメモリ１２２には、第２のＣＰＵ１２１で実行可能な翻訳プログラム１２３が保持されている。第２のＣＰＵ１２１は、この翻訳プログラム１２３を実行し、メモリ領域１１１に保持された中間言語コードを、ＣＵＰ２が実行可能なコードに変換し、その結果をメモリ領域１１２に出力する。そしてＣＰＵ２はメモリ領域１１２に保持された命令コードを実行する。なおプログラムメモリ１２２に保持される翻訳プログラムは、機能メモリの製造時にプログラムメモリ１２２に記録するだけでなく、ネットワークおよびＣＰＵ２を通じて随時交換することも可能である。例えばＣＰＵ２のハードウエア的アップグレード、あるいはＣＰＵ２の上で実行するＯＳのアップグレードなどのために、ＣＰＵ２で実行される命令コード体系に変更が生じた場合、翻訳機能も新しい命令コード体系に対応させる必要があるが、本実施例によれば、機能メモリ１全体を交換する必要はなく、翻訳プログラム１２３を入れ替えを変えるだけでよい。
【００１６】
図３は、本発明の第３の実施例を示す図である。本実施例では、機能メモリ内部に、通常はＣＰＵ２で行われるネットワーク制御処理を専用に行うネットワーク処理手段１３を設けた点が、上記第１および第２の実施例と異なる。前記ネットワーク処理手段１３は、ネットワークを介して送られてくる中間言語コードを受け取り、メモリ領域１１１に保持する。この中間言語コードは、上記第１あるいは第２の実施例の構成により（第３図には第２の実施例の構成を用いた場合を示した）、ＣＰＵ２が実行可能な命令コードに翻訳され、ＣＰＵ２によって実行される。
【００１７】
図５は本発明の機能メモリを用いた情報処理装置の構成図である。本装置８においては、機能メモリ１がメインCPU２の外部メモリとしてメモリバス３を通じて接続されている。またメインCPU２には、ネットワーク接続手段４のほかに、出力インタフェース手段５２を通じて、例えばディスプレイなどの情報表示手段５１が、入力インタフェース手段６２を通じて、例えばキーボードなどの情報入力手段６１が、さらに記憶装置制御手段７２を通じて、例えばハードディスクなどの記憶装置７１が接続されている。
【００１８】
本情報処理装置８においては、機能メモリ１は、例えばメモリボードあるいはメモリカードなどの、装置８に実装しやすいメモリ実装手段１０の上に実装されており、メモリ部分を独立に交換できる構成となっている。これにより、前述した本発明の機能メモリ１の機能を使用せず、本装置８を通常の情報処理装置として使用したい場合には、このメモリ実装手段１０の部分を通常のメモリを使用したもに交換するだけでよい。
【００１９】
また、上述の機能メモリ１を実装するメモリ実装手段１０として、例えばSIMMなどの規格統一されたメモリボードを用いれば、従来の情報処理装置のメモリボードを、機能メモリ搭載のボードに交換することにより、本発明の機能メモリによる中間言語プログラムの高速化という効果を、容易に得ることができるようになる。
【００２０】
なお、図５の情報処理装置においては、記憶装置制御手段７２および記憶装置７１を有する、いわゆるパーソナルコンピュータの構成を用いて説明したが、これら２つの要素を有しない、いわゆるネットワークコンピュータの構成を持つ情報処理装置の場合でも、全く同様の効果が得られることは明らかである。
以上の実施例から本発明を要約すると、以下の通りである。
（１）任意の言語コードにより記述されたソフトウエアプログラムを保持する第１のメモリ領域と、前記第１のメモリ領域に保持された上記任意の言語コードを異なる命令コード体系に翻訳する翻訳手段と、前記翻訳手段により翻訳された結果であるところの実行命令コードを保持する第２のメモリ領域とを有することを特徴とする機能メモリ。
（２）任意の言語コードにより記述されたソフトウエアプログラムを保持する第１のメモリ領域と、前記第１のメモリ領域に保持された上記任意の言語コードを異なる命令コード体系に翻訳する翻訳手段と、前記翻訳手段により翻訳された結果であるところの実行命令コードを保持する第２のメモリ領域と、上記任意の言語で記述されたプログラムソフトウエアをネットワークから受け取り、前記第１のメモリ領域に保持するネットワーク処理手段とを有することを特徴とする機能メモリ。
（３）前記翻訳手段は、メモリ装置上に混載可能な論理回路により構成された専用回路であることを特徴とする、（１）または（２）記載の機能メモリ。
（４）前記翻訳手段は、中央演算処理装置と、前記中央演算処理装置で実行するプログラムを保持するプログラムメモリと、前記プログラムメモリ上に保持される翻訳プログラムとからなることを特徴とした、（１）または（２）記載の機能メモリ。
（５）前記プログラムメモリは書き換え可能な不揮発性メモリからなり、かつ、前記翻訳プログラムは、前記翻訳結果であるところの実効命令コードを実行する外部の中央演算処理装置から、前記プログラムメモリに転送されることを特徴とする、（４）の機能メモリ。（６）前記ソフトウエアプログラムは中間言語コードにより記述されていることを特徴とする（１）または（２）の機能メモリ。
（７）前記不揮発性メモリはフラッシュメモリであることを特徴とする（５）記載の機能メモリ。
（８）任意のプログラム言語コードを記憶するメモリ領域と、上記任意のプログラム言語コードを他のプログラム言語に変換する処理手段と、上記任意のプログラム言語コードを外部から入力し、かつ、上記処理手段の処理結果を外部の他のＣＰＵに出力する入出力手段を備え、上記他のプログラム言語は上記他のＣＰＵの処理で扱うプログラム言語であることを特徴とする半導体装置。
（９）（８）において、上記処理手段は前記半導体装置装置上にメモリと混載可能な論理回路により構成された専用回路であることを特徴とする半導体装置。
（１０）ネットワークを経由してプログラムコードを入手可能な情報処理装置であって、少なくとも、上記情報処理装置の制御を行うＣＰＵと、上記ＣＰＵに接続され、上記プログラムコードを記憶する第１の記憶領域と、上記プログラムコードを入力して、上記ＣＰＵ上で動作可能な異なる言語体系のプログラムコードに翻訳する翻訳手段と、上記翻訳の結果であるプログラムコードを保持する第２の記憶領域とを有する機能メモリ、を備えたことを特徴とする情報処理装置。
【００２１】
【発明の効果】
上記本発明の第１の実施例によれば、翻訳手段１２はＣＰＵ２の命令体系に適していなくてはならず、ＣＰＵ２に適した機能メモリチップを使用しなくてはならないが、機能メモリ１はＣＰＵ２の外部に接続してと使用するチップなので、任意のＣＰＵを使用し外部メモリチップとしてこの機能メモリを用いるだけで、中間言語で与えられるプログラムの実行速度を向上させることが可能となる。
【００２２】
上記本発明の第２の実施例によれば、上記第１の実施例による効果に加えて、プログラムメモリ１２２に保持される翻訳プログラムを交換することによって、翻訳処理をＣＰＵ２に適合されることが可能になるという効果がある。すなわち、上記第１の実施例では、ＣＰＵ２の形式に適した翻訳手段を有する機能メモリチップを選ばなくてはならないのに対し、本実施例の場合には、プログラムメモリ内の翻訳プログラムを交換することで、同じ機能メモリチップをあらゆる命令体系のＣＰＵ２と組み合わせて使用できるようになる。さらに、ＣＰＵ２を通じてプログラムメモリ内の翻訳プログラムを交換することによって、ハードウエアの交換をすることなく、翻訳処理ソフトの改善（バージョンアップ）をチップを製造した後からでも反映させることが可能になる。
【００２３】
上記本発明の第３の実施例によれば、中間言語コードをネットワークを介して受け取る際に、従来ＣＰＵ２で行っていたネットワーク制御処理を、機能メモリ側で平行して行うので、上記第１および第２の実施例による効果に加えて、ＣＰＵ２の全体の処理量を低減することが可能となり、翻訳結果の実行をさらに高速化することが可能となるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の機能メモリの第１の実施例の構成図。
【図２】本発明の機能メモリの第２の実施例の構成図。
【図３】本発明の機能メモリの第３の実施例の構成図。
【図４】従来のＮＣ端末における処理手順の説明図。
【図５】本発明の機能メモリを用いた情報処理装置の構成図。
【符号の説明】
１：機能メモリ
１１：メモリ手段
１１１：中間言語コード保持領域
１１２：実行可能な命令コード保持領域
１２：翻訳手段
１２１：第２のＣＰＵ
１２２：プログラムメモリ
１２３：翻訳プログラム
２：ＣＰＵ
３：メモリバス
４：ネットワーク接続手段
５１：情報表示手段（ディスプレイ）、５２：出力インタフェース手段
６１：情報入力手段（キーボード）、６２：入力インタフェース手段
７１：記憶装置、７２：記憶装置制御手段
８：情報処理装置
１０：メモリ実装手段（メモリボード、メモリカード）。
【図１】
0003765148.tif 000002
【図２】
0003765148.tif 000003
【図３】
0003765148.tif 000004
【図４】
0003765148.tif 000005
【図５】
0003765148.tif 000006