(57)【特許請求の範囲】
【請求項１】
少なくとも３つの復号化された映像を記憶できＮビットデータバスを通しアクセス可能なメモリ（１２）と共同して、内部，予測および両方向モードに従い映像を処理するのに適した映像プロセッサ（１０）を有する映像処理システムにおいて、
Ｎ／２ビットバスを通し前記メモリの半分のサイズのハーフサイズメモリと共同して内部および予測モードのみに従い映像を処理するために、
（１）前記ハーフサイズメモリ内で１つのＮビットワードの書込み命令をプロセッサにより実行する毎に、ＮビットワードのＮ／２ビットサブワードの各々を連続的に書込む手段（１４’）と、
（２）前記ハーフサイズメモリ内でＮビットワードの読み出し命令を実行する毎に、前記ハーフメモリ内で２つのＮ／２ビットサブワードを連続的に読み出し、これらのサブワードをＮビットバスの上に並置する手段（１４’）と、
（３）（ａ）前記プロセッサにより与えられる各アドレスに対し２つの異なったアドレスを前記ハーフサイズメモリに与えるアドレス回路（８６）と、
（ｂ）前記アドレス手段により提供されるアドレスが境界外のアドレスのときは前記ハーフサイズメモリのアドレス境界内でアドレスを提供する手段（８０−８４）と、
を有するアドレス折り返し回路（５２）とを有し、
（４）前記映像プロセッサ（１０）は書込みモードの時に前記ハーフサイズメモリに与えられるアドレスが未だ読み出されていないデータに対応するならば前記プロセッサを停止させる手段（８８−９４）を有する、映像処理システム。
【請求項２】
同じ読み出しまたは書込み命令が２度実行されるように前記プロセッサ内で１番目の読み出しまたは書込み命令（ＣＡＳ１）を実行した後次のクロックサイクルの間、読み出しまたは書込み命令を禁止する禁止手段（４８）を有する、請求項１記載のシステム。
【請求項３】
前記禁止手段はプロセッサの命令ポインタ（１１０）の増加を禁止する手段（９６−１０２）を有する、請求項２記載のシステム。
【請求項４】
前記アドレス回路（８６）は、前記プロセッサにより提供される各アドレスに２を乗算する手段と、２つの同じ読み出しまたは書込み命令の一番目を実行した後に乗算の結果のアドレスを、増加または減少させる手段とを有する請求項２記載のシステム。
【請求項５】
イネーブル信号（ＥＮ’）がアクティブのときＮビットバス（Ｄ６４）からＮビットデータを受け取るように接続された装置（１０−１）をふくみ、該信号は読み出し命令の実行毎にアクティブになり、２つの同じ読み出し命令の２番目が実行される間のみ前記イネーブル信号をアクティブにする手段（５０）を有する、請求項２記載のシステム。
【請求項６】
イネーブル信号（ＥＮ’）がアクティブのときＮビットバス（Ｄ６４）にＮビットデータを書込む装置（１０−１）をふくみ、該信号は書込み命令の実行毎にアクティブになり、２つの同じ書込み命令の２番目が実行される間のみ前記イネーブル信号をアクティブにする手段（５０）を有する、請求項２記載のシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は一般に可変サイズダイナミックメモリと情報をやり取りするプロセッサを内蔵したシステムに関する。
【０００２】
この発明は、より詳細には種々のメモリフィールドの間、およびメモリフィールドとシステムの１つの入力更には１つの出力との間のデータの転送を制御するプロセッサを内蔵した映像処理システムに関する。
【０００３】
【従来の技術】
図１ＡはＭＰＥＧ標準に基づく復号化用７２０×４８０画素の映像に使用されているメモリの典型的な配置を示している。このメモリの大きさは１６メガビットである。それぞれが４メガビットの３つのメモリフィールドＩＢ１−ＩＢ３は映像バッファであり、それぞれ復号化映像に対応したデータを含んでいる。
【０００４】
残った４メガビットには圧縮（符号化）映像データを含むほぼ３．３メガビットのフィールドＣＤと、いわゆる“プライベート”データを含むほぼ０．７メガビットのフィールドＰＤとがあるが、このプライベートデータは復号化には使用されておらず、例えばスクリーン上に表示される映像の上に情報を重畳するため復号器にユーザフレンドリな機能を与えるため使用されている。
【０００５】
ＭＰＥＧ標準によれば、３つの映像バッファＩＢ１−ＩＢ３が与えられることになっている。“内部”、“予測”および“両方向”と呼ばれる３つのタイプの復号がある。
【０００６】
内部復号化では、フィールドＣＤから来る符号化されたデータはバッファＩＢ１−ＩＢ３の１つに記憶された映像に直接対応している。
【０００７】
予測符号化では、符号化されたデータＣＤは既に復号化された映像の一部と必ず結合される映像の一部に対応している；従って既に復号化された映像を含むために１つの映像バッファが必要であり、これから復号される映像を含むために１つの映像バッファが必要である。つまり合計２つの映像バッファが必要である。
【０００８】
両方向復号化では、符号化されたデータＣＤは既に復号化された２つの映像内に取り出される映像の２つの部分と必ず結合される映像の一部分に対応している；それ故、２つのバッファが既に復号化された２つの映像を記憶するため必要であり、更に１つのバッファが復号化される映像を記憶するため必要である。つまり合計３つの映像バッファが必要である。
【０００９】
予測または両方向復号化はプログレッセブまたはインターリーブ形式である。プログレッセブ形式の場合は、映像の１つの部分が既に復号化された映像内に取り出されており、この映像の部分は一連の偶数および奇数ラインに対応している。インターリーブ形式の場合は、映像に２つの部分が既に復号化された同じ映像内に取り出されており、一方の部分は偶数ラインに、他方の部分は奇数ラインに対応している。
【００１０】
更に、予測タイプは前方型および後方型がある。前方型の場合、映像の１つの部分は表示の順に現在復号化された映像の前の映像内に取り出される。後方型の場合、映像の１つの部分は表示の順に現在復号化された映像の後の映像内に取り出されている。これは符号化された映像は表示の順と異なる順序で到来することを意味している。更に、現在復号化されている映像を含むバッファに加えて、前方予測用に１つの映像を記憶し、後方予測用に１つの映像を記憶するため２つのバッファの追加が必要である。
【００１１】
図１Ｂは復号化回路すなわちプロセッサ１０とメモリとの間にあるＭＰＥＧ復号器の従来の典型的なアーキテクチャの概要を示している。メモリは一般には低廉でサイズの大きくないダイナミックメモリ（ＤＲＡＭ）である。復号化システムＭＰＥＧのダイナミックメモリは４つのブロック１２に分割され、各ブロックの容量は２５６×１６ビットキロワードである（４メガビット）。各ブロック１２は１６ビットデータバスＤ１６を通しインターフェイス１４に接続されている。インターフェイス１４は通常は“システムバス”と呼ばれている６４ビットデータバスＤ６４を通してＭＰＥＧ復号化回路１０に接続されている。従って、システムのメモリは６４ビットの２５６キロワードを有するように構成されている。
【００１２】
２５６キロワードにアクセスするため、１８ビットのアドレスバスが使用されている。ダイナミックメモリはページと呼ばれる幾つかのフィールドに分割されている。ダイナミックメモリの１ワードにアクセスするため、通常は行アドレスストローブ（ＲＡＳ）と呼ばれるページの１つを選択する一番目のアドレスサイクルが一番目に実行される；次に通常は列アドレスストローブ（ＣＡＳ）と呼ばれるページ内の１ワードを選択する二番目のアドレスサイクルが実行される。実際には所定の例ではＲＡＳサイクルの間プロセッサ１０が発生するアドレスＲＡ＋ＣＡに対する上位の９個のビットＲＡに対応し、ＣＡＳサイクルの間同上アドレスに対する下位の９個のビットＣＡに対応した９ビットアドレスＡがダイナミックメモリにある。プロセッサ１０により与えられる信号Ｒ／Ｃで制御されるマルチプレクサ１５は上位ビットＲＡまたは下位ビットＣＡを選択しダイナミックメモリにアドレスＡとして与える。
【００１３】
アドレスサイクルＲＡＳまたはアドレスサイクルＣＡＳの何れかが実行されるかをダイナミックメモリに示すため、プロセッサ１０はそれぞれ信号ＲＡＳまたは信号ＣＡＳをイネーブルにする。更に、回路１０はメモリの読み出しまたは書き込みモードを選択する信号Ｒ／Ｗ＊を出力する。
【００１４】
回路はクロックゼネレータ（ＣＬＫ）１６により与えられるクロック信号ＣＫにより制御されている。
【００１５】
図２は従来のメモリインターフェイス１４の実施態様を示している。バスＤ６４は一連の三状態ゲート１８の出力と一連のフリップフロップ２０の入力に接続されている。三状態ゲート１８は信号Ｒ／Ｗ＊により制御され、フリップフロップ２０はクロック信号ＣＫにより制御されている。４つの並列バスＤ１６は三状態ゲート２２の出力とフリップフロップ２４の入力に接続されている。三状態ゲート２２は信号Ｒ／Ｗ＊のコンプリメントにより制御され、フリップフロップ２０の出力を受けている。フリップフロップ２４は信号ＣＡＳにより制御されその出力は三状態ゲート１８に接続されている。
【００１６】
ダイナミックメモリと他の回路とのインターフェイスを理解するためのこれ以上の説明はダイナミックメモリのデータシートの中に見いだすことができる。
【００１７】
完全なＭＰＥＧ復号化システムにおいては、前述の通り少なくとも３つの映像バッファが必要である。完全なＭＰＥＧ符号化／復号化システムは圧縮比が高いが、これは電波とコンパチブルな周波数で符号化されたデータを伝送するためである。有線テレビジョンシステムの場合、許容周波数はより高く、従ってそれ程圧縮比を高くする必要がない。従って、有線伝送の場合は内部符号化および前方予測符号化のみを用いたＭＰＥＧ符号化／復号化システムを提供することが可能である。このようなシステムに使用される復号器には２つの映像バッファのみが必要である。従って、４メガビットのメモリが節約される。
【００１８】
しかし図１Ｂのようなシステムでは、ブロック１２は標準のコンポーネントであり、２５６キロワードの容量は最小の標準値である。従って、メモリの大きさを減少させたいならば１以上のブロック１２を除去しメモリバスの大きさを少なくする必要がある。メモリバスの大きさを変更することは、ＭＰＥＧ復号器のアーキテクチャの変更、とりわけシステムバスＤ６４に接続され、メモリとデータの交換を行なう種々の周辺エレメントの変更を含んでいる。
【００１９】
【発明の概要】
この発明の一般的な目的は、メモリとデータの交換を行なう周辺エレメントのアーキテクチャを変更する必要を生ずることなく、可変サイズを有したメモリバスに適合できるプロセッサを内蔵したシステムを提示することである。
【００２０】
この発明の更に他の目的は所定の大きさのメモリすなわち容量が半分のメモリで動作でき、従来のＭＰＥＧ復号器を使用することができるＭＰＥＧ復号器を提示することである。
【００２１】
これらの目的を達成するため、この発明ではＮがｎの倍数でありｎが可変で、大きさが一定のＮビットのデータバスを有し、大きさがｎビットであるバスを通しＮビットのワードメモリに接続されているプロセッサを内蔵したシステムを提示している。このシステムにはメモリ内のＮビットワードの書き込み命令がプロセッサにより実行される毎に、異なったアドレスでＮビットワードを構成するｎビットの各サブワードを連続的に書き込む手段と、メモリ内のＮビットワードの読み出し命令を実行する毎に、ｎビットの異なったアドレスサブワードのメモリ内で連続的に読み出し、更に一定サイズのバスの上でこれらのサブワードを並置する手段とがある。
【００２２】
この発明の実施態様によれば、このシステムには（Ｎ／ｎ）−１回の命令サイクルの間、プロセッサ内で各読み出しまたは書き込み命令をロックする手段があり、同じ読み出しまたは書き込み命令がＮ／ｎ回実行される。
【００２３】
この発明の実施態様によれば、ロックの手段にはプロセッサの命令ポインタの増加を禁止する手段がある。
【００２４】
この発明の実施態様によれば、ロックの手段にはプロセッサにクロック信号を送ることを禁止する手段がある。
【００２５】
この発明の実施態様によれば、このシステムにはプロセッサにより与えられるメモリアドレスにＮ／ｎを掛ける手段と、同一の読み出しまたは書き込み命令を実行する毎にアドレスを増加または減少させる手段がある。
【００２６】
この発明の実施態様によれば、このシステムには各イネーブル信号をアクティブにすることにより一定長のバスの上にＮビットを受けるため接続された装置があり、各々の装置は読み出し命令がそれぞれ実行される毎に規則的にアクティブにされる。Ｎ／ｎ回の同じ読み出し命令の最後の命令を実行する間のみイネーブル信号をアクティブにする手段も与えられている。
【００２７】
この発明の実施態様によれば、このシステムには各イネーブル信号をアクティブにすることにより一定長のバスの上にＮビットを書き込むため接続された装置があり、各々の装置は書き込み命令が実行される毎に規則的にイネーブルされる。Ｎ／ｎ回の同じ書き込み命令の最初を実行する間のみイネーブル信号をアクティブにする手段も与えられている。
【００２８】
この発明の実施態様によれば、このシステムにはアドレス折り返し（ｆｏｌｄｉｎｇ）手段があり、これによりプロセッサにより発生されるアドレスがフィールドの上限より大きくてもメモリが受け取るアドレスは予測されるフィールドの範囲内にある。
【００２９】
この発明の実施態様によれば、このシステムはＭＰＥＧ標準に従い符号化された映像を復号化するシステムである。メモリフィールドには復号化された映像が記憶される。このメモリフィールドの大きさは表示される２つの映像の大きさより小さい。更に復号化されたデータが未だ表示されない映像の部分に対応したデータの上に書き込まれる前に復号化を停止する手段がある。
【００３０】
【実施例】
この発明は不完全なＭＰＥＧ符号化／復号化（ＣＯＤＥＣ）システム、即ち内部符号化および直接予測符号化のみを使用したシステムに関連して記載する。当業者はこの発明はハーフサイズの映像を処理する完全符号化／復号化システムにも適合できることが判るであろう。
【００３１】
不完全システムは圧縮比が完全システムより小さいが、符号化されたデータを有線で伝送することには適合性がある。前述のように、この種のシステムの復号器には２つだけのバッファが必要である。
【００３２】
この発明はシステムバスに接続される周辺エレメントのアーキテクチャを変更することなく、完全なＭＰＥＧ符号化／復号化システム、およびメモリが完全なシステムの半分である不完全な符号化／復号化システムの両方に使用できる復号器アーキテクチャを提示している。このようなアーキテクチャにより、２つの問題が生ずる。
【００３３】
一番目には、前述のように、メモリの大きさを半分にすることによりメモリバスの大きさが二分割される。従って、メモリと復号器の他のエレメントとの間でデータの交換を続ける希望があるならば、これらのエレメントのアーキテクチャを変更する必要がある。この変更を避けるため、この発明では一定サイズのシステムバスを保持し、更にシステムバスと可変サイズメモリバスの間に（後述する）特別なインターフェイスを実現することを提案している。
【００３４】
更に、メモリの大きさを半分にすることにより２つの映像バッファと圧縮データを入れておく十分なスペ−スが理論的には残らなくなる。
【００３５】
図３にはこの発明に基づき大きさが半分にされたメモリの典型的なアーキテクチャを示している。メモリにはアドレスＡｉで始まる４メガビットの映像バッファＩＢ１と、アドレスＡｉ＋Ｌで終わる２メガビットのハーフ映像バッファ１／２ＩＢがある。符号化されたデータＣＤには１．７５メガビットがあり、プライベートデータＰＤには０．２５メガビットがある。ＭＰＥＧ−２標準では記憶される符号化データの数が１．７５メガビットを越えないように勧めている。
【００３６】
この発明に基づくＭＰＥＧ復号器の実施例によれば、２未満の映像バッファ（この例では１．５）が従来の復号器の２個の代わりに使用されている。以下ではこの発明による１．５個の映像バッファを使用した場合を記載する。
【００３７】
図４Ａは２つの映像バッファＩＢ１とＩＢ２を使用した従来の予測復号化を図示している。バッファＩＢ１には既に復号化された映像Ｉ１があり、バッファＩＢ２には復号化される映像Ｉ２がある。バッファＩＢ２では、斜線領域は既に復号化されている映像Ｉ２の一部分を示している。
【００３８】
映像の復号化の段階はブロック毎に行なわれ、各ブロックは一般に１６×１６画素を含んだ映像スクエアに対応している。バッファＩＢ２では、太い線は復号化されるブロックＣＢを示している。ブロックＣＢが予測復号化から生じていれば、前の映像Ｉ１で取り出された予測ブロックＰＢから再生される。予測ブロックＰＢを見つけるため、ブロックＣＢを復号化するのに役立つデータによりベクトルＶが与えられるが、このベクトルにより映像内でブロックＣＢの位置に対する予測ブロックＰＢの位置が定められる。
【００３９】
図４Ｂはこの発明に基づき構成されたメモリ内の予測復号化サイクルを図示している。バッファＩＢ１には始めは、既に復号化され表示中の映像Ｉ１を含んでいる。映像Ｉ１はライン毎に表示される。バッファＩＢ１の低い部分の、斜線領域は未だ表示されていない映像Ｉ１の部分を示している。
【００４０】
ハーフバッファ１／２ＩＢは再構成中の映像Ｉ２により完全に満たされている。ハーフバッファ１／２ＩＢは点線で示した仮想領域ＶＩＢにより拡大して示され、仮想領域とハーフバッファ１／２ＩＢの和が完全な映像バッファに対応する。図示のように、再構成される映像Ｉ２のブロックＣＢは仮想領域ＶＩＢ内にある。実際には、（以下に記載する）アドレス折り返し装置により、仮想領域ＶＩＢは映像バッファＩＢ１の始めの半分内に配置される。従って、映像Ｉ２の現在の実際のブロックＣＢは太い線で示すように、バッファＩＢ１の始めの半分内にある。
【００４１】
従って、この種のメモリ構造の正しい動作を満足する一番目の必要性は、映像Ｉ２のブロックＣＢに書き込まれるバッファＩＢ１のフィールドが図４Ｂに示すように既に表示された映像Ｉ１のフィールドと対応することである。これを行なうため、（以下に記載する）システムでは復号化される映像（Ｉ２）が表示される映像（Ｉ１）の未だ表示されないフィールドに到達する時復号化を禁止している。このようなシステムの使用が可能であるのは、映像の復号化の時間が平均して映像の表示時間より厳密に短いためである。
【００４２】
正しい動作を行なうための二番目の必要性は、再構成される映像Ｉ２により占有されるバッファＩＢ１のフィールドが既に復号化された映像Ｉ１内で取り出される予測ブロックに対応しないことであるが、これはこれらの予測ブロックが映像Ｉ２のブロックにより重ね書きされるためである。既に示したように、現在のブロックＣＢを再生するのに役立つ予測ブロックＰＢの位置はベクトルＶにより決定されるが、そのベクトルの始まりは映像Ｉ１では映像Ｉ２の仮想ブロックＣＢの位置に対応した位置Ｐである。ベクトルＶの高さがハーフ映像の高さからブロックの高さを引いた高さになるならば、既に重ね書きされた予測ブロックが映像Ｉ１内で取り出される危険性があることに注意する必要がある。実際にはベクトルＶの高さはハーフ映像の高さより小さい値に制限される。とりわけ、ＭＰＥＧ−２標準では例えばハーフ映像の高さが２４０画素であるが、不完全符号化／復号化システムの場合ベクトルＶの高さが１２８画素までに制限される。それ故、再構成される映像により重ね書きされた予測ブロックを取り出す危険性がない。
【００４３】
一般的に、この二番目の必要性は１６がブロックの高さでＨｖがベクトルの最大の高さの時、バッファ１／２ＩＢがＨｖ＋１６映像ラインを有する十分な大きさならば常に満たされる。７２０×４８０画素の映像でベクトルＶが１２８画素の最大の高さの例の場合、０．３−映像バッファ１／２ＩＢで十分である。
【００４４】
映像Ｉ２が再構成され映像Ｉ１が表示されると、映像Ｉ２の始まりはバッファ１／２ＩＢの中にあり、映像Ｉ２の終わりはバッファＩＢ１の始めの半分の中にある。後続の再構成映像は最初バッファＩＢ１の二番目の半分を満たし、次にバッファ１／２ＩＢを満たす。同様に、映像Ｉ２の二番目の半分がバッファＩＢ１の一番目の半分を満たす、等々となる。
【００４５】
図５にはこの発明による大きさが可変サイズのメモリバスを有するＭＰＥＧ復号器のアーキテクチャの概要を図示している。図１Ｂと同じエレメントには同じ参照文字を付けている。２つの下位バスＤ１６がメモリブロック１２に接続されている。２つの上位バスＤ１６はメモリ装置に接続されていない。ＭＯＤＥラインの状態は復号器に対し２つの上位バスＤ１６がメモリに与えられているか否かを示している。ここでも、および以下でも参照番号が１４’であるメモリとのインターフェイスの回路はＭＯＤＥラインの状態の関数として図１Ｂの回路に対し変更されている。これはバス６４の６４本のラインを４つのバスＤ１６のラインに向けるか、２つの下位のバスＤ１６のラインのみに向けるためである。これを行なうため、インターフェイス１４’は補助回路４８により与えられる選択信号ＳＥＬを受ける。回路４８はＭＯＤＥライン、信号ＣＫ、ＲＡＳ、Ｒ／Ｗ＊を受け、更に信号ＶＡＬとＩＮＨを与えるがその機能は以下に記載する。
【００４６】
図５に示すように、バスＤ６４は復号化回路１０に従来内蔵されている先き入れ／先き出し（ＦＩＦＯ）バッファメモリ１０−１に接続されている。複数のこれらのＦＩＦＯはバスＤ６４により書き込みモードでアクセスされ、残りのＦＩＦＯは読み出しモードでアクセスされる。従来のシステムの図１Ｂでは、各ＦＩＦＯはバスＤ６４の上でデータを伝送する時、又はバスＤ６４からデータを読み出す時信号ＥＮによりイネーブルにされる。図５では、各ＦＩＦＯは信号ＥＮ’によりイネーブルにされるが、この信号は前述の信号ＥＮおよび補助回路４８により与えられる信号ＶＡＬとを受けるＡＮＤゲートの出力により与えられている。
【００４７】
プロセッサ１０により発生するアドレスＲＡ＋ＣＡは、以下に詳細を記載するアドレス折返し回路（ＦＯＬＤ）５２を通しマルチプレクサ１５に与えられている。回路５２もＭＯＤＥラインを受ける。
【００４８】
図６はこの発明によるインターフェイス回路１４’の詳細な実施態様を示している。図２と同じエレメントは同じ参照文字を付けている。三状態ゲート１８と２２と図２のフリップフロップ２４はそれぞれ２つのサブセットに分割されている。一番目のサブセット１８−１，２２−１，２４−１はバスＤ６４の下位ビット（０：３１）に割り当てられている；二番目のサブセットはバスＤ６４の上位ビット（３２：６３）に割り当てられている。フリップフロップ２４−１は２つの下位バスＤ１６からラインを受けている。これらの下位バスＤ１６のラインはマルチプレクサ６０の入力にも加えられ、その二番目の入力は２つの上位バスＤ１６からのラインを受けている。マルチプレクサ６０はＭＯＤＥラインにより制御されており、その出力はフリップフロップ２４−２に加えられている。三状態ゲート２２−２はフリップフロップ２０から上位出力ライン（３２：６３）を直接受けている。マルチプレクサ６２は一番目の入力でフリップフロップ２０からの上位出力ラインを受け、二番目の入力でフリップフロップからの下位出力ラインを受けている。マルチプレクサ６２は図５に関連し述べた信号ＳＥＬにより制御されており、その出力は三状態ゲート２２−１に加えられている。
【００４９】
信号ＣＡＳは、ＡＮＤゲート６４と６５を通してそれぞれフリップフロップ２４−１と２４−２のイネーブル入力に加えられており、ＡＮＤゲートのそれぞれは復号器６６の出力をも受けている。復号器６６ではＭＯＤＥライン、信号ＳＥＬ、およびＣＡＳの状態が検討される。復号器６６にはＯＲゲート６８と６９があり、それぞれのＯＲゲートはＡＮＤゲート６５、６４に接続され、各ＯＲゲートの一番目の入力にＭＯＤＥラインを受けている。ＯＲゲート６８の二番目の入力はラッチ７０の非反転出力を受けている。ラッチ７０の反転出力はゲート６９の二番目の入力に加えられている。ラッチ７０のイネーブル入力は信号ＣＡＳを受け、更にラッチ７０のデータ入力は信号ＳＥＬを受けている。
【００５０】
この発明によるシステムは、ハーフサイズメモリバス（２つの下位バスＤ１６のみ）を使用する時、概略以下のように動作する。
【００５１】
好ましいことに、メモリバスの大きさ（フルサイズ又はハーフサイズ）に拘らず、データの転送を制御するプロセッサにより実行されるルーチンはいずれの場合も同じである。
【００５２】
ハーフサイズメモリバスの場合、データをメモリ内に読み出しまたは書き込む命令は二度実行される。この命令はフルサイズメモリバスでは通常一度だけ実行されている。同じ命令をダブルに実行する方法を以下に記載する。
【００５３】
同じ読み出しまたは書き込み命令を二回実行する間、同じアドレスＲＡ＋ＣＡが折り返し回路５２の入力に現れる。折り返し回路５２の機能の１つは、例えば２をアドレスＲＡ＋ＣＡに掛け更に異なる下位ビットを同じ命令の二度の実行のそれぞれに加えることにより、同じ命令を二度実行する間異なるアドレスＡをメモリに確実に印加することである。従って、同じ読み出しまたは書き込み命令の二度の実行のそれぞれの間、異なるメモリの位置がアクセスされる。
【００５４】
二度実行される命令がメモリ書き込み命令ならば、書き込まれるデータは二回の実行の間バスＤ６４上にロックされる。一番目の実行の間、マルチプレクサ６２は例えばバスＤ６４の３２個の上位ビットの方向を（適当な信号ＳＥＬを通して）２つの下位バスＤ１６の上に送る。従って、書き込まれるデータの上位ビットは一番目のアドレスに書き込まれる。二番目の実行の間、マルチプレクサ６２は、バスＤ６４の３２個の下位ビットの方向を２つの下位バスＤ１６に送る。従って、書き込まれる下位データは一番目のアドレスと異なる二番目のアドレスに書き込まれる。勿論、新しいデータが二番目の実行の間バスＤ６４の上に現れないようにステップが取られる。これは二番目の実行の間ＦＩＦＯを二回イネーブルにしない信号ＶＡＬにより行われる。
【００５５】
二回実行される命令が読み出し命令の場合、前述に記載したものと反対の動作が行われる。二回の実行のそれぞれの間、折り返し回路５２はアドレスバスＡの上で種々のアドレスを現しており、一番目の実行ではバスＤ６４の上で伝送されるデータの上位ビットが読み出され、更に二番目の実行では同じデータの下位ビットが読み出される。マルチプレクサ６０とフリップフロップ２４−１と２４−２の正しい制御により、読み出されるデータの上位ビットは一番目の実行の間にバスＤ６４の上位ラインの上に現れ、更に読み出されるデータの下位ビットは二番目の実行の間バスＤ６４の下位ラインの上に現れる。勿論、ＦＩＦＯにより二番目の実行においてのみバスＤ６４の上のデータが検討されるが、これは一般に一番目の実行の間アクティブでない状態によりＦＩＦＯの有効性を妨げる信号ＶＡＬにより決定される。
【００５６】
メモリバスがフルサイズの時、ＭＯＤＥラインはインターフェイスが図２のインターフェイスに等しくなるように図６のインターフェイス回路の上で動作する。前述の信号ＶＡＬは常にアクティブであり、しかもＦＩＦＯは読み出しまたは書き込み命令の各実行でイネーブルになる。更に、折り返し回路５２によりアドレスＲＡ＋ＣＡは変更なしに通過する。
【００５７】
図７Ａと図７Ｂは縮小サイズ（３２ビット）のメモリバスを通したメモリ内の２つの６４ビットデータＤ１とＤ２の書き込みサイクルと読み出しサイクルをそれぞれ図示している。これらの図は各命令が１クロックサイクル内で実行される制限命令領域（ＲＩＳＣアーキテクチャ）を有したプロセッサを使用した例に対応している。
【００５８】
ＭＯＤＥラインはメモリバスが縮小サイズであることを示すため“０”にある。
【００５９】
図７Ａは書き込みサイクルに対応し、信号Ｒ／Ｗ＊は“０”にある。時間ｔ１−ｔ７はクロック信号ＣＫの連続した立ち上がりエッジを示している。時間ｔ１で、メモリ内に連続してデータＤ１とＤ２を書き込みたいとする。ページアドレスＲＡを計算するのに必要な不動作サイクルＮＯＯＰが時間ｔ１とｔ２の間で実行される。時間ｔ２とｔ３の間のサイクルＲＡＳではページ選択サイクルが実行され、その間ページアドレスＲＡがアドレスバスＡの上にある。アドレスＲＡは時間ｔ２とｔ３の間で発生する信号ＲＡＳの立ち下がりエッジでダイナミックメモリにより検討される。
【００６０】
信号ＲＡＳの立ち下がりエッジの間に、信号ＶＡＬは時間ｔ３までイネーブルにされる。信号ＶＡＬのアクティブ状態によりイネーブル信号ＥＮ’がＦＩＦＯに伝送される；信号ＥＮ’によりイネーブルにされたＦＩＦＯはバスＤ６４の上にデータＤ１を表す。
【００６１】
時間ｔ３で、一番目のＣＡＳサイクルであるＣＡＳ１がスタートし、更にアドレスバスＡの上に表れるアドレスＣＡ１＋１によりメモリの位置が選択される。信号ＶＡＬがデセーブルされ、これによりＦＩＦＯがイネーブルにされない。信号ＳＥＬがイネーブルにされ、これによりマルチプレクサ６２が切り替えられるが、これは２つの下位バスＤ１６の上にデータＤ１の上位ビットＤ１（６３：３２）を与えるためである。これらの上位ビットＤ１（６３：３２）は、時間ｔ３とｔ４の間に生ずる信号ＣＡＳの立ち下がりエッジの間にアドレスＣＡ１＋１でメモリ内に転送される。
【００６２】
時間ｔ４で、二番目のＣＡＳサイクルであるＣＡＳ２がスタートし、更に新しいアドレスＣＡ１がアドレスバスＡの上に表れる。信号ＶＡＬがイネーブルにされる。信号ＳＥＬがデセーブルされ、これによりマルチプレクサが切り替えられるが、これは下位バスＤ１６の上にデータＤ１の下位ビットＤ１（３１：０）を与えるためである。これらの下位ビットＤ１（３１：０）は時間ｔ５の前に、信号ＣＡＳの次の立ち下がりエッジの時にアドレスＣＡ１でメモリ内に転送される。信号ＣＡＳの立ち下がりエッジの間、信号ＥＮ’は信号ＶＡＬがアクティブであることにより再びイネーブルになるが、これによりバスＤ６４の上に新しいデータＤ２を表すＦＩＦＯがイネーブルにされる。
【００６３】
時間ｔ５から、前のサイクルＣＡＳに等しい２つの新しいサイクルＣＡＳ１とＣＡＳ２が、メモリ内で順次データＤ２の上位ビットＤ２（６３：３２）をアドレスＣＡ２＋１に、下位ビットＤ２（３１：０）をアドレスＣＡ２に書き込むため発生している。
【００６４】
図７Ｂはハーフサイズバスを通しダイナミックメモリ内にある２つのデータＤ１とＤ２の読み出しサイクルに対応している。信号Ｒ／Ｗ＊は読み出しサイクルが実行されることを示すため“１”である。ＭＯＤＥラインは“０”のままである。図７Ａの場合のように、時間ｔ１とｔ３の間で、不動作サイクルＮＯＯＰとメモリのページを選択するためのサイクルＲＡＳが実行される。図７Ａとは反対に、信号ＶＡＬ（それ故信号ＥＮ’）は時間ｔ２とｔ３の間でイネーブルにされない。
【００６５】
時間ｔ３では、一番目のＣＡＳサイクルであるＣＡＳ１がアドレスＣＡ１＋１でスタートする。信号ＳＥＬはイネーブルにされる。時間ｔ４の前で信号ＣＡＳの立ち下がりエッジの直後に、アドレスＣＡ１＋１にある上位ビットＤ１（６３：３２）が２つの下位バスＤ１６の上にダイナミックメモリにより表れる。
【００６６】
時間ｔ４で、二番目のＣＡＳサイクルであるＣＡＳ２がアドレスＣＡ１でスタートする。信号ＳＥＬがデセーブルされ、これによりゲート６５の出力Ｓ１がイネーブルする。信号Ｓ１がアクティブになることによりバスＤ６４の上位ラインの上にビットＤ１（６３：３２）がロックされる。時間ｔ５の前で信号ＣＡＳの新しい立ち下がりエッジの直後に、アドレスＣＡ１にある下位ビットＤ１（３１：０）が２つの下位バスＤ１６の上に現われる。
【００６７】
時間ｔ５で、例えばバスＤ６４の上で新しいデータＤ２の２つの新しい読み出しサイクルＣＡＳ１とＣＡＳ２がスタートする。信号ＳＥＬは再びイネーブルにされ、信号ＶＡＬは初めてイネーブルにされる。信号ＳＥＬがアクティブになることにより、ゲート６４の出力Ｓ２はイネーブルにされる。フリップフロップ２４−１により２つのバスＤ１６の上にある下位ビットＤ１（３１：０）は、バスＤ６４の下位ラインの上でロックされる。６４ビットデータである完全なデータＤ１はバスＤ６４の上にある。信号ＶＡＬがイネーブルにされると、ＦＩＦＯ１０−１の１つに対応した信号ＥＮ’がイネーブルにされ、これによりＦＩＦＯ１０−１はバスＤ６４の上にあるデータＤ１に検討を加える。
【００６８】
図８Ａはアドレス折り返し回路５２の詳細な実施態様を示している。回路５２はプロセッサにより伝送される１６メガビットメモリのアドレスＲＡ＋ＣＡで図３に基づき構成された８メガビットメモリをアクセスする働きをする。
【００６９】
これを行なうため、折り返し回路５２の一番目の機能は、プロセッサ１０’により与えられるアドレスＲＡ＋ＣＡがハーフバッファ１／２ＩＢの終わりを示すアドレスＡｉ＋Ｌ（ＬはバッファＩＢ１および１／２ＩＢの長さ）を越える時、映像バッファＩＢ１の始まりのアドレスＡｉでスタートするアドレスを与えることである。
【００７０】
折り返し回路５２の二番目の機能は、読み出しまたは書き込み命令の各実行において特別のアドレスを発生することである。
【００７１】
この回路の一番目の部分には一番目の入力でプロセッサにより与えられるアドレスＲＡ＋ＣＡを受けるアダー８０がある。アダー８０の二番目の入力は、ＡＮＤゲート８２が導通であれば値−Ｌを受けている。ＡＮＤゲート８２の入力の１つはＭＯＤＥラインの反転の値を受けている。二番目の入力は比較器８４の出力ａ＞ｂを受けている。比較器８４の入力ａはアドレスＲＡ＋ＣＡを受け、入力ｂはアドレスＡｉ＋Ｌを受けている。このように、ＭＯＤＥラインが“０”であれば（ハーフサイズメモリバス）、アダー８０の出力はＲＡ＋ＣＡがＡｉ＋Ｌより低ければＲＡ＋ＣＡであり、高ければＲＡ＋ＣＡ−Ｌである。
【００７２】
復号化システムは内部および直接予測符号化のみを使用しているので、プロセッサは２つの入力バッファに対応したＲＡ＋ＣＡアドレスのみを与える。即ちこれらのアドレスは決してＡｉ＋２Ｌを越えない。これは、アドレスがＡｉ＋３Ｌになる３つの入力バッファを有した完全なシステムと異なる。
【００７３】
従って、折り返し回路５２は図３に基づき構成された８メガビットメモリを使用できるアドレスを発生する。これらのアドレスは正常時に１６メガビットメモリの中の１２メガビットに対し発生するものである。
【００７４】
折り返し回路５２の二番目の部分にはマルチプレクサ８６があり、一方の入力でアダー８０の出力を受け、二番目の入力のウエイト１−１７のビットにアダー８０の出力のウエイト０−１６のビットを受け、更にこの二番目の入力のウエイト０のビットは信号ＳＥＬに接続されている。マルチプレクサ８６はＭＯＤＥラインにより制御されており、更にその出力はアドレスＡを与えるマルチプレクサ１５に接続されている。ＭＯＤＥラインが“０”であれば（縮小したサイズのメモリバス）、マルチプレクサ８６は図示の構成では２を乗算したアダー８０の出力値に対応した二番目の入力を選択し、下位のビットは信号ＳＥＬの値に置き換えられる。信号ＳＥＬは図７Ａと図７Ｂでは各サイクルＣＡＳ１では“１”であり、各サイクルＣＡＳ２では“０”である。サイクルＣＡＳ１の間バスの上に表れるアドレスは図示のようにサイクルＣＡＳ２の間表れるアドレスより１だけ高い。
【００７５】
このように、折り返し回路５２はサイズが縮小されたメモリバスで使用できるアドレスを発生しているが、これらのアドレスはサイズが完全なメモリバスに対しては正常に発生している。
【００７６】
図８Ｂは再生される映像を未だ表示される前の映像の部分に重ね書きすることから防ぐ回路の概略的な実施態様である。
【００７７】
ＭＰＥＧ復号器には従来から可変長復号器（ＶＬＤ）８８とビデオインターフェイス９０がある。ＶＬＤはメモリのフィールドＣＤに記憶された記憶情報を受け、ＶＬＤが再生される映像のブロックに対応したデータを復号する毎にパルス１を出す。ビデオインターフェイス９０は表示される映像のデータを受け、映像ラインが表示される毎にパルス１Ｌを出す。ＶＬＤは信号ＥＮＶＬＤを通して規則的にイネーブルされる。
【００７８】
この発明によれば、制御回路９２はパルス１Ｂと１Ｌを受け復号化禁止信号ＤＩＮＨ＊を出す。この信号のアクティブ状態（０）は例えばＡＮＤゲート９４を通しこれらの２つの信号を結合することにより信号ＥＮＶＬＤがＶＬＤに到達しないようにする。制御回路９２には例えばパルス１Ｂの数（復号化されたブロックの数）を計算し、復号化ブロックの数が完全な映像に一致した時リセットするカウンタＮＢがある。二番目のカウンタＮＬはパルス１Ｌの数（表示ラインの数）を計算し、表示ラインの数が完全な映像に一致した時リセットする。以下ではＮＢおよびＮＬもカウンタＮＢとＮＬのそれぞれの内容を示すものとする。
【００７９】
いわゆる“プログレッセブ”および“インターリーブ”と呼ばれる２つの表示モードがある。プログレッセブモードによれば、偶数および奇数ラインが連続的に表示され、インターリーブモードによれば、最初に奇数ラインが表示され次に偶数ラインが表示される。
【００８０】
以下に示す典型的な記載では、各映像は７２０×４８０画素から構成されており、各ブロックには１６×１６画素が含まれている。従って、各映像に対し１３５０個のブロックがあり、ラインの幅は４５ブロックである。
【００８１】
プログレッセブ表示モードでは、表示される映像を記憶する映像バッファは直線的に空にされる。制御回路９２は復号化されるブロックの数ＮＢがハーフ映像に対応したブロックの数（６７５）と表示されるラインに対応したラインの数（４５ｉｎｔ［ＮＬ／１６］で、ここにｉｎｔ［…］は…の部分の整数部を意味する）を加えた数になる度に、禁止信号ＤＩＮＨ＊をイネーブルにする。ＤＩＮＨ＊は次の場合イネーブルにされる：
ＮＢ＞６７５＋４５ｉｎｔ［ＮＬ／１６］
【００８２】
インターリーブモードでは、表示される映像を含む映像バッファは例えば最初奇数ラインを空にし、次に偶数ラインを空にする。このように一番目の段階では、表示されるラインの数がハーフ映像に一致していなければ（ＮＬ＜２４０）、信号ＤＩＮＨ＊は復号化ブロックの数がハーフ映像に一致したブロックの数に到達する毎に（ＮＢ＞６７５）イネーブルにされる。二番目の段階では、表示されるラインの数がハーフ映像より大きければ（ＮＬ＞２４０）、信号ＤＩＮＨ＊は復号化されるブロックの数がハーフ映像に対応したブロックの数に表示される偶数ラインに対応したブロックの数を加えた数になる毎にイネーブルされる。表示される偶数ラインの数を知るため映像内（２４０）の奇数ラインの数は表示されるＮＬラインのトータル数から差引かれる。このように、ＤＩＮＨ＊は次の条件であればこの第二段階でイネーブルにされる：
ＮＢ＞６７５＋４５ｉｎｔ［（ＮＬ−２４０）／８］
【００８３】
制御回路９２はカウンタ、アダー、および比較器により当業者が容易に製造できる。
【００８４】
図９Ａは補助回路４８の実施態様を示している。回路４８には反転出力Ｑ＊がそのデータ入力に接続されているフリップフロップ９６がある。フリップフロップ９６のクロック入力はクロック信号ＣＫを受けている；“０”でアクティブになるクリア入力ＣＬはＡＮＤゲート９８の出力を受けている。この構成により、入力ＣＬが（“１”で）デセーブルになるとすぐ、フリップフロップ９６は“リリース”となり、クロックＣＫの周波数を半分にする２分割デバイダとして動作する。
【００８５】
ゲート９８はフリップフロップ９９の出力およびＭＯＤＥラインの他に、信号ＲＡＳのコンプリメントＲＡＳ＊を受ける。フリップフロップ９９のデータ入力は信号ＣＡＳを受け、更にクロック入力は信号ＲＡＳ＊を受ける。このアーキテクチャにより、ＭＯＤＥラインが“０”であれば（これはサイズが縮小したメモリバスの場合である）、フリップフロップ９６は読み出しまたは書き込みサイクル間のみリリースされる（従って、信号ＣＡＳの後、信号ＲＡＳもイネーブルである、メモリのリフレッシュサイクルの間生ずるフリップフロップ９６のリリースが除去される）。
【００８６】
フリップフロップ９６の出力Ｑ＊はＡＮＤゲート１００の一番目の入力に接続されている。ゲート９８の出力はゲート１００の二番目の入力に接続されている。ＭＯＤＥラインが“０”であれば、フリップフロップ９６の出力Ｑにより信号ＳＥＬが与えられ、更にゲート１００の出力により図７Ａの信号ＶＡＬが与えられる（メモリ内の書き込みサイクル）。（メモリの読み出しサイクルに対する）図７Ｂの信号ＶＡＬは図７Ａの信号ＶＡＬに対し３クロックサイクルだけシフトされている。信号ＳＥＬは図７Ａの信号ＶＡＬに対し１クロックサイクルだけシフトされている。従って、図７Ｂの信号ＶＡＬはフリップフロップ９６の出力Ｑに対し直列に配置されている２つのフリップフロップ１０２と１０４を通し２クロックサイクルだけ信号ＳＥＬを遅延させることにより得られている。適当な信号ＶＡＬはフリップフロップ１０４の出力とゲート１００の出力を受け、更に信号Ｒ／Ｗ＊により制御されるマルチプレクサ１０６により選択されている。信号ＶＡＬは完全なメモリバスが使用されている時常にアクティブになるように、ＯＲゲート１０７はＭＯＤＥラインとマルチプレクサ１０６の出力を受けている。
【００８７】
図９Ａはメモリの書き込みまたは読み出し命令を処理する従来のプロセッサのコンポーネントの幾つかをも示している。プロセッサには１６メガビットのメモリが与えられたＭＰＥＧ復号化システムのためにあるプログラムを有した命令メモリ１０８がある。命令ポインタ１１０により実行される命令ＩのアドレスＩＡが与えられている。命令ＩはアドレスＲＡ＋ＣＡと信号ＲＡＳ、ＣＡＳ、Ｒ／Ｗ＊およびＲ／Ｃを発生する処理ユニット（ＡＬＵ）１１２にメモリ１０８により加えられている。命令ポインタ１１０はアダー１１４により各クロックサイクル毎に増加する。従って、各クロック信号ＣＫの時点で、プロセッサ１１２内で実行される新しい命令がメモリ１０８に取り出される。
【００８８】
この発明の実施態様によれば、アダー１１４はフリップフロップ１０２の出力により与えられる信号ＩＮＨにより禁止される。信号ＩＮＨは図７Ａと図７Ｂの各サイクルＣＡＳ２の間アクティブである。従って一番目の読み出しまたは書き込み命令（ＣＡＳ１）をそれぞれ実行した後、次のクロックサイクルの間命令ポインタは増加することを妨げられるが、これにより同じ読み出しまたは書き込み命令が次のサイクルの間常に実行される。勿論、この命令が２度目に実行される間、アドレスＲＡ＋ＣＡは通常変更されない。折り返し回路５２は同じ読み出しまたは書き込み命令の２つの実行のそれぞれの間異なったアドレスを発生するように動作する。
【００８９】
図９Ｂは読み出しまたは書き込み命令で２つの実行を行なうため、特に簡単な変更を行なったプロセッサの他のアーキテクチャを示している。このプロセッサには図９Ａの処理ユニット１１２の一部と、命令ポインタ１１０、命令メモリ１０８、アダー１１４に関連する制御ユニット１２０がある。信号ＲＡＳ、ＣＡＳおよびＲ／Ｗ＊はクロック信号ＣＫ、トリプル周波数クロック信号３ＣＫ、およびユニット１２０により与えられる制御信号からユニット１２２により発生している。この制御信号はユニット１２０内で実行するためロードされた命令に直接対応している。
【００９０】
通常、制御ユニット１２０は入力ＣＬＫでクロック信号ＣＫを受けている。この発明の実施態様によれば、信号ＣＫとＳＥＬを受けるＯＲゲート１２４がユニット１２０のクロック入力ＣＬＫに置かれている。この構成により、制御ユニット１２０は信号ＳＥＬがアクティブである度に、“停止”されるが、信号ＲＡＳと信号ＣＡＳは正常に伝送される。読み出しまたは書き込み命令がユニット１２０内でロードされると、この命令は信号ＳＥＬが（図７Ａと図７Ｂの一番目のサイクルＣＡＳのそれぞれの間に）アクティブである限り次の命令により置換されない。ユニット１２２は無変更のクロック信号ＣＫ、３ＣＫを受けているので、ユニット１２２の動作はロードされた命令が維持される限り各クロックサイクルで繰り返される。
【００９１】
この実施態様は製造が特に簡単であるが、これはＯＲゲート１２４を前に配置するユニット１２０のクロック入力が容易にアクセスできるからである。前述のように、この発明についての好都合な実施態様は従来のアーキテクチャを少し変更して記載しているが、これによりアーキテクチャが完全メモリを使用しているか、または縮小メモリバスをしているかに拘らずデータを簡単に転送するプログラムが与えられている。折り返し回路５２と命令ポインタ１１０またはクロックＣＫの命令に対する禁止機能とを使用したくないならば、アーキテクチャが完全メモリバスまたは縮小メモリバスのいずれかを使用しているかにより、２つの異なったプログラムを与えることも勿論可能である。
【００９２】
図７Ａと図７Ｂに関連した典型的な動作はＲＩＳＣアーキテクチャプロセッサに対応している、すなわち各クロックサイクルは１つの命令の実行に対応している。このようなアーキテクチャによりＲＡＳサイクルの後いくつかの連続したＣＡＳサイクルを実施できる。複雑な命令回路（ＣＩＳＣ）により、読み出しまたは書き込み命令はサイクルＮＯＯＰ、ＲＡＳおよびＣＡＳのアセンブリに少なくとも対応している。読み出しまたは書き込み命令がこのようなアーキテクチャ内で二度実行されるとき、サイクルＮＯＯＰ、ＲＡＳまたはＣＡＳのシーケンスが二度実行される。当業者は当該信号ＶＡＬ、ＩＮＨおよびＳＥＬの波形を決定し、これらの信号を発生させることができる。これを実現するため、例えば図９の回路には命令サイクルには一致するがクロックサイクルには一致しないパルスＣＫが与えられている。
【００９３】
図６、図８Ａ、図８Ｂ、図９Ａおよび図９Ｂの回路は例として提示している。これらの回路は種々の方法で記載の機能を使用することにより当業者が容易に実現できる。
【００９４】
この発明はＭＰＥＧ復号器を使用することに関連して記載しており、この発明はメモリの大きさを考慮することなく固定長システムバスおよび可変長メモリバスを内蔵したあらゆるプロセッサに適応できることに注意する必要がある。
【００９５】
実際、メモリバスの大きさがｎ＝２ｐで、システムバスの大きさがＮ＝２Ｐであるとすれば、単一ＭＯＤＥラインおよび単一信号ＳＥＬを使用するかわり、いくつかのＭＯＤＥラインおよび幾つかのラインＳＥＬが使用される。
【００９６】
図９Ａの実施態様では、命令カウンタＩＰの増加を禁止する信号ＩＮＨは同じ読み出しまたは書き込み命令がＮ／ｎ回実行されるようにするため（Ｎ／ｎ）−１回の読み出しまたは書き込みサイクルの間アクティブのままである。
【００９７】
プロセッサが与えるアドレスＲＡ＋ＣＡは折り返し回路内でＮ／ｎが掛算されており、更にこれらのアドレスの下位ビットはラインＳＥＬの状態と置き換えられるが、これは同じ読み出しまたは書き込み命令の実行において異なるアドレスを使用するためである。
【００９８】
この発明の実施態様によれば、システムバスとメモリバスの間のインターフェイス回路には２つのシフトレジスタ、すなわちメモリ書き込みレジスタとメモリ読み出しレジスタがある。
【００９９】
書き込みシフトレジスタはシステムバス（Ｄ６４）のＮ本のラインを受けており、メモリバス（４つのバスＤ１６）のＮ本のラインが出ている。書き込みシフトレジスタはＭＯＤＥバスによりプログラムされ、各クロックサイクルでｎビットを右にシフトする。従って、システムバスの上にあるワードに対するＮ／ｎ個の連続したｎビットのサブワードがメモリバスの利用可能なライン（下位）の上にあらわれる。
【０１００】
読み出しシフトレジスタはメモリバスのＮ本のラインを受けており、システムバスのＮ本のラインが出ている。読み出しシフトレジスタはＭＯＤＥバスによりプログラムされており、各クロックサイクルでｎビットを左にシフトする。従って、Ｎ／ｎ回のサイクルの終わりに、シフトレジスタは読み出すべきＮビットのワードを有している。サブワードは書き込みと逆の順序で読み出される。
【０１０１】
図１０Ａと図１０Ｂには例えばシステムバスＤ６４が６４ラインのバスシステムであり、メモリバスの大きさが６４、３２、１６および８本のラインの中から選択できるシフトレジスタインターフェイスを示している。これらの４つの可能性を選択するため２本のラインのＭＯＤＥバスが使用されている。
【０１０２】
次の表にはＭＯＤＥバスの上に表される値の関数としてメモリバスの大きさの選択をまとめてある。
【０１０３】
【表１】
0003787847.tif 000002
【０１０４】
図１０Ａにはメモリ読み出しシフトレジスタの実施態様を示している。このシフトレジスタには８ビットのフリップフロップ１３０がある。図２のフリップフロップ２４のように、フリップフロップ１３０の出力は三状態ゲート１８を通してバスＤ６４に接続されており、フリップフロップ１３０のクロック入力は信号ＣＡＳを受けている。
【０１０５】
フリップフロップ１３０のデータ入力は４入力マルチプレクサの出力にそれぞれ接続されている。マルチプレクサ１３２はＭＯＤＥバスにより制御されている。マルチプレクサに一般に選択された入力はＭＯＤＥバスの上に表される１０進数の値（０、１、２、３）により表示されている。８個のマルチプレクサ１３２の入力０はメモリバス４×Ｄ１６の８本のラインの組を８個受けている。
【０１０６】
以下では、ランクｉと呼ぶパラメータはメモリバスまたはシステムに対し重みｉ−１からｉ＋６のラインに関連したパラメータである。
【０１０７】
フリップフロップ１３０とマルチプレクサ１３２は循環的に次のように相互接続されている：ランクｉのフリップフロップ１３０の出力は、ランクｉ＋１のマルチプレクサ１３０の入力３と、ランクｉ＋２のマルチプレクサの入力２と、ランクｉ＋４のマルチプレクサの入力１に接続されている。ランク１のマルチプレクサの全ての入力は相互接続されており、ランク２のマルチプレクサに入力０から２も相互接続されており、更にランク３のマルチプレクサの入力０と１も相互接続されている。ランク１のマルチプレクサは取り除き可能であることは勿論であるが、接続に規則性を示すように表されている。
【０１０８】
このような構成により、ＭＯＤＥバスの上に表される値により０、８、１６または３２ビットを左側にシフトするシフトレジスタが形成される。
【０１０９】
図１０Ｂはメモリ書き込みシフトレジスタの実施態様を示している。書き込みレジスタには、それぞれバスＤ６４の８本のラインに対する４つの組を内蔵した８個の８ビットフリップフロップ１４０がある。図２のフリップフロップ２０のように、フリップフロップ１４０の出力は三状態ゲート２２を通してメモリバス４×Ｄ１６のラインに接続されており、更にフリップフロップ１４０のクロック入力はクロック信号ＣＫを受けている。
【０１１０】
フリップフロップ１４０のデータ入力は、それぞれ“４対１”マルチプレクサ１４２の出力に接続されている。マルチプレクサ１４２は信号ＶＡＬのコンプリメントも受けるＡＮＤゲート１４４を通しＭＯＤＥバスにより制御されている。この構成により、信号ＶＡＬがアクティブ（１で）あれば各マルチプレクサ１４２の入力０がＭＯＤＥバスの状態とは独立に選択される。信号ＶＡＬがアクティブでなければ、ＭＯＤＥバスの値に対応する入力が各マルチプレクサ内で選択されている。
【０１１１】
マルチプレクサ１４２とフリップフロップ１４０は、マルチプレクサ／フリップフロップの組を有したランクが図１０Ａのランクに対し逆接続されていることを除けば図１０Ａのフリップフロップと同じように接続されている。
【０１１２】
このような構成で、ＭＯＤＥバスの上にある値により０、８、１６または３２ビットを右側にシフトされるレジスタが実現できる。更に、マルチプレクサ１４２の全ての入力０は信号ＶＡＬがアクティブの時選択され、これによりメモリ内の書き込みサイクルの始めにバスＤ６４の上にある６４ビットのデータがフリップフロップ１４０の中に記憶される。
【０１１３】
図１１は前述のシステムの種々の信号を発生する補助回路４８の実施態様を示しており、メモリバスは４つの異なる大きさを取る。図１１には図９ＡのＡＮＤゲート９８とフリップフロップ９９も示しており、これらはＡＮＤゲート９８がＭＯＤＥラインを受けていないことを除いて同じ方法で接続されている。ゲート９８の出力はプログラム可能なカウンタ１５０の反転リセット入力に接続されており、カウンタ１５０は読み出しまたは書き込みサイクルの間信号ＲＡＳがアクティブ（０で）である時のみリリースされる。
【０１１４】
カウンタ１５０はクロック信号ＣＫによりクロックが加えられており、更に０を保つように、又はＭＯＤＥバスの上の値により２、４、８をカウントするように、ＭＯＤＥバスによりプログラムされている。カウンタ１５０の３ビット出力ＳはバスＳＥＬの３本のラインに加えられる前にフリップフロップ１５２を通し１クロックサイクルだけ遅延されている。この構成により、バスＳＥＬの上の値は一番目のサイクルＣＡＳの間０であり同じ読み出しまたは書き込み命令の繰り返し実行の後のサイクルＣＡＳにおいて増加する。図９Ａに関連し述べた信号ＩＮＨはバスＳＥＬの３本のラインを受けるＯＲゲート１５４の出力に与えられている。このように、信号ＩＮＨは一番目のサイクルを除いて同じ読み出しまたは書き込み命令の繰り返し実行の各サイクルＣＡＳの間アクティブである（すなわち、新しい命令がプロセッサ内にロードされるのを防ぐ時）。図９Ｂの例では、バスＳＥＬの全てのラインはＯＲゲート１２４に与えられている。
【０１１５】
３本のラインＳはＮＯＲゲート１５６にも加えられている。ＮＯＲゲートの出力は読み出しまたは書き込み命令の繰り返し実行に対する一番目のサイクルＣＡＳの前のクロックサイクルの間“１”である。それ故ゲート１５６の出力は信号ＶＡＬに対応しメモリ内の書き込みサイクルの間与えられる。信号ＶＡＬはラインＲ／Ｗ＊が制御するマルチプレクサ１５８の一番目の位置により選択される。
【０１１６】
ゲート１５６の出力はＡＮＤゲート１６０の一番目の入力にも加えられているが、このＡＮＤゲートの二番目の入力はフリップフロップ１６２を通し１クロックサイクル遅延されたゲート９８の出力を受けている。ゲート１６０の出力はフリップフロップ１６４を通し１クロックサイクル遅延している。従ってフリップフロップ１６４の出力は同じ読み出しまたは書き込み命令の繰り返し実行に対する最後のサイクルＣＡＳの後のクロックサイクルの間“１”である。それ故フリップフロップ１６４の出力はメモリ内での読み出しサイクルの間印加される信号ＶＡＬに対応しており、マルチプレクサ１５８の二番目の入力に印加される。
【０１１７】
図１２は、同じ読み出しまたは書き込み命令の繰り返し実行の間メモリに与えられるアドレスＡを変更する変更回路の実施態様を示している。プロセッサにより発生するアドレスＲＡ＋ＣＡの１８ビット（１７：０）は一番目の復号器１６６の入力に加えられている。復号器１６６は前述のマルチプレクサ１５に加えられる１８ビットアドレスの１５個の上位ビット（１７：３）を出している。二番目の復号器１６８はアドレスＲＡ＋ＣＡの３つの下位ビット（２：０）、３つのラインＳＥＬおよびＲ／Ｗ＊を受けている。復号器１６８はアドレスＢの３つの下位ビットを出している。各復号器１６６と１６８もバスＭＯＤＥの２つのラインを受けている。次の表はＭＯＤＥバスの値の関数として復号器１６６と１６８の出力の値を示している。
【０１１８】
【表２】
0003787847.tif 000003
【０１１９】
上記の表で、例えば３行目の表現ＲＡ＋ＣＡ（０）：ＳＥＬ＊（１：０）はアドレスＢの３個の下位ビット（２：０）が重みの減少の順に、アドレスＲＡ＋ＣＡの最下位ビットおよびバスＳＥＬの２つの下位のリバースビットに等しいことを意味している。
【０１２０】
上の表ではラインＲ／Ｗ＊が“１”（メモリ内で読み出しサイクル）の時にはラインＳＥＬが直接使用され、ラインＲ／Ｗ＊が“０”（メモリ内で書き込みサイクル）の時にはラインＳＥＬのコンプリメントが使用される。この構成により、縮小メモリバスによりメモリバス内に書き込まれた６４ビットワードのサブワードは書き込まれたのと逆の順で再び読み出される。これはシフトレジスタのインターフェイスが使用されるので必要である。
【０１２１】
以上、この発明の１つの特別な実施態様について記載したが、種々の取替え、変更および改善が当業者には容易に可能である。この取替え、変更および改善はこの開示の一部であり、この発明の内容および範囲内である。従って前述の記載は一例であるが、これには制限されない。
【図面の簡単な説明】
【図１Ａ】  ＭＰＥＧ復号器の従来のメモリアーキテクチャ
【図１Ｂ】  メモリとシステムバスの間の従来のリンク
【図２】  システムバスとメモリバスとの間の従来の詳細な典型的なインターフェイス
【図３】  この発明によるＭＰＥＧ復号器の典型的なメモリアーキテクチャ
【図４Ａ】  従来のメモリアーキテクチャを有した予測復号化のステップ
【図４Ｂ】  この発明によるメモリアーキテクチャを有した予測復号器
【図５】  この発明によるＭＰＥＧ復号化アーキテクチャの実施態様
【図６】  この発明によるシステムバスとメモリバスの間のインターフェイス回路の詳細な実施態様
【図７Ａ】  この発明による縮小メモリバスに関する書き込みサイクル
【図７Ｂ】  この発明による縮小メモリバスに関する読み出しサイクル
【図８Ａ】  この発明によるアドレス折り返し回路の実施態様
【図８Ｂ】  この発明によるアーキテクチャ内のメモリの充満を制御する回路の実施態様
【図９Ａ】  この発明によるアーキテクチャに必要な種々の信号を与える補助回路の実施態様とこの発明に基づき変更された典型的なプロセッサアーキテクチャの部分図
【図９Ｂ】  この発明による変更プロセッサアーキテクチャの他の例
【図１０Ａ】  ４つの異なる大きさを有するメモリバスに適応されこの発明に基づくインターフェイスの他の実施態様
【図１０Ｂ】  ４つの異なる大きさを有するメモリバスに適応されこの発明に基づくインターフェイスの他の実施態様
【図１１】  この発明による補助回路の他の実施態様
【図１２】  この発明によるアドレス折り返し回路の他の実施態様
【符号の説明】
１０  復号化回路（プロセッサ）
１０’  プロセッサ
１０−１  ＦＩＦＯバッファメモリ
１２  メモリブロック
１４  インターフェイス回路
１４’  インターフェイス回路
１５  マルチプレクサ
１６  クロックゼネレータ
１８  三状態ゲート
２０  フリップフロップ
２２  三状態ゲート
２２−１  三状態ゲート
２４  フリップフロップ
２４−１  フリップフロップ
２４−２  フリップフロップ
４８  補助回路
５０  ゲート回路
５２  アドレス折り返し回路
６０  マルチプレクサ
６２  マルチプレクサ
６４  ＡＮＤゲート
６５  ＡＮＤゲート
６６  復号器
６８  ＯＲゲート
６９  ＯＲゲート
７０  ラッチ
８０  アダー
８２  ＡＮＤゲート
８４  比較器
８６  マルチプレクサ
８８  可変長復号器
９０  ビデオインターフェイス
９２  制御回路
９４  ＡＮＤゲート
９６  フリップフロップ
９８  ＡＮＤゲート
９９  フリップフロップ
１００  ＡＮＤゲート
１０２  フリップフロップ
１０４  フリップフロップ
１０６  マルチプレクサ
１０７  ＯＲゲート
１０８  命令メモリ
１１０  命令ポインタ
１１２  処理装置
１１４  アダー
１２０  制御装置
１２２  装置
１２４  ＯＲゲート
１３０  フリップフロップ
１３２  マルチプレクサ
１４０  フリップフロップ
１４２  マルチプレクサ
１４４  ＡＮＤゲート
１５０  プログラム可能なカウンタ
１５２  フリップフロップ
１５４  ＯＲゲート
１５６  ＮＯＲゲート
１５８  マルチプレクサ
１６０  ＡＮＤゲート
１６２  フリップフロップ
１６４  フリップフロップ
１６６  一番目の復号器
１６８  復号器
【図１Ａ】
0003787847.tif 000004
【図１Ｂ】
0003787847.tif 000005
【図２】
0003787847.tif 000006
【図３】
0003787847.tif 000007
【図４Ａ】
0003787847.tif 000008
【図４Ｂ】
0003787847.tif 000009
【図５】
0003787847.tif 000010
【図６】
0003787847.tif 000011
【図７Ａ】
0003787847.tif 000012
【図７Ｂ】
0003787847.tif 000013
【図８Ａ】
0003787847.tif 000014
【図８Ｂ】
0003787847.tif 000015
【図９Ａ】
0003787847.tif 000016
【図９Ｂ】
0003787847.tif 000017
【図１０Ａ】
0003787847.tif 000018
【図１０Ｂ】
0003787847.tif 000019
【図１１】
0003787847.tif 000020
【図１２】
0003787847.tif 000021