(57)【特許請求の範囲】
【請求項１】
同期式ＲＡＭに対するデータのリード及びライトアクセスを制御するアクセス制御回路において、
前記同期式ＲＡＭに対するリード及びライトアクセスを行う命令実行部でライト命令を実行する時には、該命令実行部から出力されるアドレスをライトアドレスとして前記同期式ＲＡＭに出力し、前記命令実行部でリード命令を実行する時には、該リード命令の実行より１サイクル前に、該リード命令の対象であるリードアドレスを前記同期式ＲＡＭに出力することを特徴とする同期式ＲＡＭのアクセス制御回路。
【請求項２】
前記命令実行部は、読み出した命令を格納するインストラクションレジスタと、デコーダされた前記命令を実行するパイプラインレジスタとからなり、
前記命令実行部でライト命令を実行する時には前記パイプラインレジスタから出力されるアドレスを選択してライトアドレスとして前記同期式ＲＡＭに出力し、前記命令実行部でリード命令を実行する時には、該リード命令の実行より１サイクル前に、該リード命令の対象である前記パイプラインレジスタの入力アドレスを選択し、前記同期式ＲＡＭに出力する選択回路とを備えることを特徴とする請求項１記載の同期式ＲＡＭのアクセス制御回路。
【請求項３】
同期式ＲＡＭに対するデータのリード及びライトアクセスを制御するアクセス制御回路において、
命令を格納する第１のレジスタと、デコードされた前記命令を実行する第２のレジスタとからなる命令実行部と、
前記命令実行部でライト命令を実行する時には、前記第２のレジスタから出力されるアドレスを選択してライトアドレスとして前記同期式ＲＡＭに出力し、前記命令実行部でリード命令を実行する時には、該リード命令の実行より１サイクル前に、該リード命令の対象である前記第２のレジスタの入力アドレスを選択し、前記同期式ＲＡＭに出力する選択回路とを備えることを特徴とする同期式ＲＡＭのアクセス制御回路。
【請求項４】
命令を順次実行する命令実行部と、
同期式ＲＡＭと、
前記命令実行部でライト命令を実行する時には前記命令実行部から出力されるライトアドレスを選択して前記同期式ＲＡＭに出力し、前記命令実行部でリード命令を実行する時には、該リード命令の実行より１サイクル前に、該リード命令の対象であるリードアドレスを選択して前記同期式ＲＡＭに出力する選択回路とを備えることを特徴とするデータ処理プロセッサ。
【請求項５】
前記命令実行部は、命令を格納するインストラクションレジスタと、前記命令をデコードして命令解釈を行うデコーダと、デコード結果を格納すると共に解釈された命令を実行するパイプラインレジスタとからなり、
前記選択回路は、前記パイプラインレジスタの入力アドレスと出力アドレスとを入力し、前記命令実行部でライト命令を実行する時には前記パイプラインレジスタから出力されるアドレスをライトアドレスとして前記同期式ＲＡＭに出力し、前記命令実行部でリード命令を実行する時には、該リード命令の実行より１サイクル前に、該リード命令の対象である前記パイプラインレジスタに入力するアドレスを前記同期式ＲＡＭに出力することを特徴とする請求項４記載のデータ処理プロセッサ。
【請求項６】
デュアルポート同期式ＲＡＭと、
前記デュアルポート同期式ＲＡＭの２つのポートに対応して、それぞれライト命令とリード命令を実行する第１及び第２の命令実行部と、
前記第１の命令実行部でライト命令を実行する時には前記第１の命令実行部の出力アドレスを選択してライトアドレスとして前記デュアルポート同期式ＲＡＭの一方のポートに出力し、前記第１の命令実行部でリード命令を実行する時には、該リード命令の実行より１サイクル前に、該リード命令の対象であるリードアドレスを前記一方のポートに出力する第１の選択回路と、
前記第２の命令実行部で実行されるリード命令の１サイクル前のアドレスを前記デュアルポート同期式ＲＡＭの他方のポートに出力するアドレス出力回路と、
前記デュアルポート同期式ＲＡＭのライトデータを記憶する記憶回路と、
同一サイクルにおける前記デュアルポート同期式ＲＡＭの一方のポートのライトアドレスと、他方のポートのリードアドレスとを比較するアドレス比較回路と、
前記アドレス比較回路で前記２つのポートのライトアドレスとリードアドレスとの一致が検出されたとき、前記記憶回路に記憶されているデータを選択して前記デュアルポート同期式ＲＡＭのリードデータとして出力する第２の選択回路とを備えることを特徴とするデータ処理プロセッサ。
【請求項７】
同期式ＲＡＭに対するデータのリード及びライトアクセスを制御するアクセス制御方法において、
命令実行部でライト命令を実行する時には該命令実行部から出力されるアドレスをライトアドレスとして前記同期式ＲＡＭに出力し、命令実行部でリード命令を実行する時には、該リード命令の実行より１サイクル前に、該リード命令の対象であるリードアドレスを前記同期式ＲＡＭに出力することを特徴とする同期式ＲＡＭのアクセス制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シングルポート及びデュアルポート同期式ＲＡＭのアクセス制御回路、データ処理プロセッサ及びその制御方法に関する。
【０００２】
【従来の技術】
クロック信号に同期したタイミングでデータの書き込み及び読み出しが行われる同期式ＲＡＭが知られている。同期式ＲＡＭのアクセス基本波形は、図８に示すようにライトサイクルでは、ライト信号がイネーブル（ローレベル）となり、１サイクルの間にアドレスとデータが入力されてデータの書き込みが行われる。リードサイクルでは、１クロック目に読み出しアドレスが入力され、次の２クロック目にデータが読み出される。つまり、ライトサイクルは１サイクル、リードサイクルは２サイクルのアクセス時間がかかる。
【０００３】
図９は、シングルポート同期式ＲＡＭ１５の入出力ポートを示す図であり、図１０はその基本波形を示す図である。シングルポート同期式ＲＡＭ１５は、クロック入力端子ＣＬＫと、アドレス入力端子ＡＤ、ライト信号入力端子＊ＷＴ、データ入力端子ＤＩ及びデータ出力端子ＤＯを備えている。
【０００４】
先ず、ライトサイクルではアドレス入力”Ｘ’１０”が与えられ、同一サイクルにデータ入力として”Ｘ’１０００”が与えられる。ライトサイクルとリードサイクルとが連続した場合、ライトサイクルの次のサイクルでは、読み出しアドレス”Ｘ’２０”が出力されても、このときデータは同期式ＲＡＭ１５から出力されず、その次のサイクルでデータ”Ｘ’２０００”が出力される。つまり、ライトサイクルの次のサイクルでリードアドレスが指定されても、同期式ＲＡＭ１５の出力データは不定となり、その次のサイクルでデータが確定する。従ってライトサイクルに１クロック、リードサイクルに２クロックのアクセス時間がかかる。
【０００５】
次に、図１１は、シングルポート同期式ＲＡＭ１５を使用した従来のパイプライン制御方式のデータ処理プロセッサ１０のブロック図である。
命令制御部１１は、読み出した命令を格納するインストラクションレジスタＩＲＧ(instruction register) １２と、その格納された命令をデコードして命令解釈を行う命令デコード１３と、デコード１３で解釈された命令を格納及び実行するパイプラインレジスタＰＬＲ(pipeline register)１４とからなる。
【０００６】
パイプラインレジスタＰＬＲ１４は、アドレスデータとライト信号を同期式ＲＡＭ１５に出力し、リード信号とライト信号をデータ処理部１６へ出力し、さらに演算部１７における演算を指示する命令制御信号を出力する。演算部１７は、ＡＣＣ(accumulator)１８とＡＬＵ(arithmetic logic unit)１９とからなる。ＡＬＵ１９は、命令制御信号に従ってＡＣＣ１８のデータとデータ処理部１６から出力されるデータに対して演算を行い、演算結果をＡＣＣ１８に出力する。また、ＡＣＣ１８に格納されたデータは、データ処理部１６を介して同期式ＲＡＭ１５に書き込まれる。
【０００７】
次に、図１１のデータ処理プロセッサ１０において、同期式ＲＡＭ１５から読み出したデータとＡＣＣ１８のデータとの加算と、その加算結果を同期式ＲＡＭ１５へ書き込む２つの演算を行う場合について、図１２の命令実行タイミングチャートを参照して説明する。
【０００８】
先ず、サイクルａで同期式ＲＡＭ１５からアドレス”Ｘ’１０”のデータをリードして、そのデータとＡＣＣ１８のデータとを加算する命令がインストラクションレジスタＩＲＧ１２に取り込まれ、同じサイクルで命令デコード１３により命令がデコードされる。次のサイクルｂで、デコード結果がパイプラインレジスタＰＬＲ１４に格納され、その命令が実行される。しかしながら、リードアドレスが与えられて同期式ＲＡＭ１５から実際にデータが出力されるのは次のサイクルであり、データの読み出しに２サイクル必要であるので、パイプラインレジスタＰＬＲ１４に格納されている命令はＷＡＩＴ制御信号により１サイクルウエイトされる。そして、次のサイクルｃで、同期式ＲＡＭ１５のアドレス”Ｘ’１０”から読み出されるデータ”Ｘ’２００”とＡＣＣ１８に格納されているデータ”Ｘ’１００”との加算が行われる。
【０００９】
次のサイクルｄでライトイネーブル信号が出力されると、ＲＡＭ１５のアドレス”Ｘ’２０”にＡＣＣ１８に格納されている加算結果のデータ”Ｘ’３００”が書き込まれる。
【００１０】
上述したデータ処理プロセッサ１０では、同期式ＲＡＭ１５からデータを読み出す処理が２サイクルのアクセス時間を必要とし、ＡＣＣ１８の格納データをＲＡＭ１５に書き込む処理が１サイクルのアクセス時間を必要とするので合計で３サイクルのアクセス時間が必要であった。
【００１１】
次にデュアルポート同期式ＲＡＭ２１における基本動作を図１３及び図１４を参照して説明する。デュアルポート同期式ＲＡＭ２１は、図１３に示すようにＡ系ポートのアドレス入力端子ＡＤＡ、データ入力端子ＤＩ、ライト信号入力端子ＷＴ、データ出力端子ＤＯＡ、Ｂ系ポートのアドレス入力端子ＡＤＢ、データ出力端子ＤＯＢからなり、Ａ系ポートはリード／ライトポート、Ｂ系ポートはリード専用ポートである。
【００１２】
図１４の▲１▼に示すように同一サイクルにＡ系ポート、Ｂ系ポートの同じアドレスに対してリード動作を行う場合には、Ａ系ポート、Ｂ系ポートとも支障なくアクセスできる。また、同図▲２▼に示すように同一サイクルで異なるアドレスに対してＡ系ポートがライト動作で、Ｂ系ポートがリード動作の場合も両ポートとも支障無くアクセスできる。しかしながら、同図▲３▼に示すように同一サイクルで同一アドレスに対してＡ系ポートがライト動作で、Ｂ系ポートがリード動作を行う場合、Ｂ系ポートの出力データが不定となる。
【００１３】
従って、図１４の▲３▼のようなアクセスが発生しないようにＡ系ポートとＢ系ポートのアクセスを排他制御するためのソフトウェア処理、あるいはハードウェア回路が必要となり、処理時間の増大、あるいはハードウェア回路の複雑化を生じさせるという問題点があった。
【００１４】
次に、上記のデュアルポート同期式ＲＡＭ２１をデータ処理プロセッサのワークレジスタとして使用した場合について図１５及び図１６を参照して説明する。Ａ系ポートをソースレジスタ及びディストネーションレジスタ、Ｂ系ポートをソースレジスタとして使用して、▲１▼Ａ系ポートのソースレジスタからデータを読み込み、▲２▼Ｂ系ポートのソースレジスタからデータを読み込み、▲３▼それらを加算してＡ系ポートのディストネーションレジスタに書き込む命令と、▲４▼Ａ系ポートのソースレジスタからデータを読み出し、▲５▼Ｂ系ポートのソースレジスタからデータを読み出し、▲６▼それらを加算してＡ系ポートのディストネーションレジスタに書き込む命令の２つの命令を実行する場合について説明する。
【００１５】
デュアルポート同期式ＲＡＭ２１では、１つのポートに対してライトサイクルとリードサイクルを連続して行うことができないので、▲３▼のＡ系ポートへの書き込みサイクルの次に▲４▼のＡ系ポートからのデータの読み出しを行うことができない。
【００１６】
従って▲１▼＋▲２▼＝▲３▼と、▲４▼＋▲５▼＝▲６▼の２つの命令を連続して実行することができないので、従来、プログラムを作成する際に、▲１▼＋▲２▼＝▲３▼の命令の次に”ＮＯＰ”を記述して、図１６に示すように無処理の期間を設ける必要があった。
【００１７】
【発明が解決しようとする課題】
上述したようにシングルポート同期式ＲＡＭにおいて、データのリードサイクルが２クロックかかるので、同期式ＲＡＭのアクセス時間が長くなるという問題点があった。
【００１８】
また、デュアルポート同期式ＲＡＭにおいて、アクセスの競合を避けるために排他制御を行う必要があり、そのためにソフトウェア、あるいはハードウェアによるインタロックが必要であり、プログラム及び演算処理時間の増加、あるいは回路規模が増大するという問題点があった。
【００１９】
さらに、デュアルポート同期式ＲＡＭをワークレジスタとして使用した場合に、１つのポートに対するライトサイクルとリードサイクルを連続して処理できないので、”ＮＯＰ”等をライトサイクルの次に挿入する必要があり、プログラム量が増え、処理時間が長くなるという問題点があった。
【００２０】
本発明の課題は、同期式ＲＡＭにおいて、データの読み出しを１クロックで行えるようにすることである。
本発明の他の課題は、デュアルポート同期式ＲＡＭにおいて、同一サイクルでライトアドレスとリードアドレスが一致する場合でもデータの読み出しが行えるようにすることである。
【００２１】
さらに他の課題は、デュアルポート同期式ＲＡＭに対してライトサイクルとリードサイクルを連続して実行できるようにすることである。
【００２２】
【課題を解決するための手段】
本発明は、同期式ＲＡＭに対するデータのリード及びライトアクセスを制御するアクセス制御回路において、同期式ＲＡＭに対するリード及びライトアクセスを行う命令実行部でライト命令を実行する時には、命令実行部から出力されるアドレスをライトアドレスとして同期式ＲＡＭに出力し、命令実行部でリード命令を実行する時には、リード命令の実行より１サイクル前に、該リード命令の対象であるリードアドレスを前記同期式ＲＡＭに出力することを特徴とする。
【００２３】
本発明によれば、リードサイクルでアドレスが出力される従来のタイミングの１サイクル前にリードアドレスが同期式ＲＡＭに出力され、その次のサイクルにそのアドレスのデータが読み出されるので、リードサイクルを１サイクルで完了することができ、同期式ＲＡＭのアクセス時間を短縮できる。
【００２７】
【発明の実施の形態】
以下、本発明を図面を参照して説明する。図１は、本発明の第１の実施の形態のパイプライン制御方式のデータ処理プロセッサ３０のブロック図である。このデータ処理プロセッサ３０と、図１１の従来のデータ処理プロセッサ１０で共通するブロックには、同一の符号を付けてそれらの説明は省略する。
【００２８】
セレクタ（選択回路）３１には、パイプラインレジスタＰＬＲ(pipline register)１４の入力アドレスと出力アドレスとが入力され、その制御端子にシングルポート同期式ＲＡＭ１５のライト信号が入力されている。
【００２９】
セレクタ３１は、ライト信号がディセーブル（ローレベル）のとき、つまりリードサイクルのときに、パイプラインレジスタＰＬＲ１４に入力されるアドレスを選択してシングルポート同期式ＲＡＭ１５に出力し、ライト信号がイネーブルのとき、パイプラインレジスタＰＬＲ１４の出力アドレスをシングルポート同期式ＲＡＭ１５に出力する。
【００３０】
すなわち、リード命令がパイプラインレジスタＰＬＲ１４に格納されて実行される１サイクル前に、パイプラインレジスタＰＬＲ１４に入力されるリードアドレスがセレクタ３１で選択されてシングルポート同期式ＲＡＭ１５に供給される。従って、パイプラインレジスタＰＬＲ１４に格納されている命令が実行される１サイクル前にシングルポート同期式ＲＡＭ１５にリードアドレスが出力され、次のサイクルにそのアドレスのデータが読み出されるので、リードサイクルを含む命令が１サイクルで完了する。
【００３１】
また、ライトサイクルの場合には、パイプラインレジスタＰＬＲ１４に格納されているライト命令が実行されるのと同一サイクルに、パイプラインレジスタＰＬＲ１４から出力されるライトアドレスが、セレクタ３１で選択されてシングルポート同期式ＲＡＭ１５に供給され、そのアドレスにデータが書き込まれるので、ライトサイクルを含む命令が１サイクルで完了する。
【００３２】
図２は、シングルポート同期式ＲＡＭ１５のアドレス”Ｘ’１０”のデータとＡＣＣ(accumrater)１８のデータを加算し、加算結果をシングルポート同期式ＲＡＭ１５のアドレス”Ｘ’２０”に書き込む場合のデータ処理プロセッサ３１の命令実行タイミングチャートである。
【００３３】
サイクルａでインストラクションレジスタＩＲＧ１２に格納された命令をデコードして命令解釈を行う。このとき、ライト信号＊ＷＴはディセーブルで、リードサイクルであるのでパイプラインレジスタＰＬＲ１４に入力されるアドレス”Ｘ’１０”がセレクタ３１で選択されてシングルポート同期式ＲＡＭ１５にリードアドレスとして出力される。次のサイクルｂでは、１つ前のサイクルａでシングルポート同期式ＲＡＭ１５のアドレス”Ｘ’１０”が指定されているので、そのアドレス”Ｘ’１０”のデータ”Ｘ’２００”の読み出しと、読み出したデータとＡＣＣ１８のデータ”Ｘ’１００”との加算が行われる。
【００３４】
すなわち、リードサイクル時には、セレクタ３１により１サイクル前に、同期式ＲＡＭ１５へリードアドレスが出力されるので、次の１サイクルでデータのリードが行われ、データのリードサイクルが実質的に１サイクルで完了する。
【００３５】
そして、次のサイクルｃで、ＡＣＣ１８に格納された加算結果の”Ｘ’３００”がシングルポート同期式ＲＡＭ１５のアドレス”Ｘ’２０”に書き込まれる。この場合、データのライトサイクルは１サイクルで完了する。
【００３６】
この第１の実施の形態によれば、リードサイクルでは、パイプラインレジスタＰＬＲ１４の入力アドレスを、同期式ＲＡＭ１５に供給することにより、実質的に１サイクルで同期式ＲＡＭ１５からのデータの読み出しを完了することができ、データを高速でリード／ライトできる。
【００３７】
次に、図３は、デュアルポート同期式ＲＡＭ４１の同一アドレスに対してデータのライトとリードを連続して行えるようにした本発明の第２の実施の形態のパイプライン制御方式のデータ処理プロセッサ４０のブロック図である。なお、既に説明した回路ブロックと同一の部分には同じ符号を付けてそれらの説明を省略する。
【００３８】
デュアルポート同期式ＲＡＭ４１は、Ａ系ポートとＢ系ポートの２つのポートを有し、この実施の形態ではＡ系をライトポート、Ｂ系をリードポートとして使用している。
【００３９】
セレクタ４２には、パイプラインレジスタＰＬＲ１４ａに入力されるアドレスと、パイプラインレジスタＬＰＲ１４ａから出力されるアドレスとが入力されており、セレクタ４２の制御端子にはパイプラインレジスタＰＬＲ１４ａから出力されるライト信号が入力している。このセレクタ４２は、ライト信号がイネーブルのとき、パイプラインレジスタ１４ａから出力されるアドレスを選択してデュアルポート同期式ＲＡＭ４１のＡ系ポートのアドレス入力端子ＡＤＡに出力し、ライト信号がディセーブルのときには、パイプラインレジスタＰＬＲ１４ａの入力側のアドレスを選択してＡ系ポートのアドレス入力端子ＡＤＡに出力する。また、セレクタ４２の出力はアドレスコンパレータ４３に出力されている。
【００４０】
これにより、リードサイクルの１サイクル前に、デュアルポートＲＡＭ４１のＡ系ポートにリードアドレスが入力され、次のサイクルにそのアドレスのデータが出力されるので、リードサイクルを１サイクルで完了することができる。
【００４１】
ライトサイクルのときには、セレクタ４２でパイプラインレジスタ１４ａの出力アドレスが選択されてデュアルポート同期式ＲＡＭ４１のＡ系ポートに出力され、データ処理部４４から出力され、Ａ系ポートのデータ入力端子ＤＩに入力するデータがそのアドレスに書き込まれ、同時にそのデータが補助レジスタ４５に書き込まれる。
【００４２】
デュアルポートＲＡＭ４１のＢ系ポートのアドレス入力端子ＡＤＢには、パイプラインレジスタ１４ｂの入力アドレスが入力しており、この入力アドレスはアドレスコンパレータ４３の他方の入力端子に入力している。
【００４３】
アドレスコンパレータ４３は、Ａ系ポートのライトアドレスとＢ系ポートのリードアドレスとを比較し、両者が一致したとき、ハイレベルの信号をアンドゲート４６に出力する。アンドゲート４６の他の入力端子にはパイプラインレジスタ１４ａから出力されるライト信号が入力されており、ライト信号がディセーブル（ハイレベル）で、かつＡ系ポートのライトアドレスと、Ｂ系ポートのリードアドレスとが一致したときハイレベルの信号をアドレス一致フラグレジスタ４７に出力する。アドレス一致フラグレジスタ４７は、アンドゲート４６の出力がハイレベルのときアドレス一致フラグを”１”にする。
【００４４】
セレクタ４８は、アドレス一致フラグレジスタ４７から出力されるアドレス一致フラグの内容によって、デュアルポート同期式ＲＡＭ４１のＢ系ポートの出力と、補助レジスタ４５の出力との一方を選択してデータ処理部４９に出力する回路である。アドレス一致フラグが”１”のとき、つまり同一サイクルのライトアドレスとリードアドレスとが一致する場合には、補助レジスタ４６に格納されているライトサイクルで書き込まれたデータを選択してデータ処理部４９に出力する。
【００４５】
これにより、デュアルポート同期式ＲＡＭ４１の異なるポートにライト及びリードが行われ、同一サイクルにおけるライトアドレスとリードアドレスが一致して、デュアルポート同期式ＲＡＭ４１の出力が不定となっても、デュアルポート同期式ＲＡＭ４１の出力データの代わりに補助レジスタ４５に格納されているライトデータを出力することで、デュアルポート同期式ＲＡＭ４１の指定されたアドレスに書き込まれたデータを読み出すことができる。
【００４６】
他方、アドレス一致フラグレジスタ４７のアドレス一致フラグが”０”のときには、セレクタ４８はデュアルポート同期式ＲＡＭ４１の出力データを選択してデータ処理部４９に出力するので、同一サイクルでライトアドレスとリードアドレスが同一である時以外は、デュアルポート同期式ＲＡＭ４１のデータがデータ処理部４９に出力される。
【００４７】
図４は、上述した第２の実施の形態のデータ処理プロセッサ４０のアクセスタイミングチャートである。
サイクルａでライト信号＊ＷＴがイネーブルとなり、Ａ系ポートの入力アドレスとして”ｘ’１０”が指定され、Ａ系入力データとして”Ｘ’１００”が入力されると、デュアルポート同期式ＲＡＭ４１のアドレス”ｘ’１０”にデータ”Ｘ’１００”が書き込まれ、同時に補助レジスタ４５にそのデータ”Ｘ’１００”が格納される。このサイクルａでは同時にＢ系ポートのリードアドレスとして、ライトアドレスと同じ”Ｘ’１０”が出力されており、アドレスが一致するのでアドレスコンパレータ４３の出力はハイレベルとなる。
【００４８】
次のサイクルｂでは、ライト信号＊ＷＴがディセーブルとなる。また、１サイクル前のライトサイクルでＡ系ポートのライトアドレスとＢ系ポートのリードアドレスが共に”Ｘ’１０”でアドレスが一致し、アドレスコンパレータ４３の出力はハイレベルとなっているので、アドレス一致フラグレジスタ４７の出力が”１”になる。このとき、Ｂ系ポートの出力データは不定となっているが、アドレス一致フラグが”１”であるので、セレクタ４８は補助レジスタ４５に記憶されているデータ”ｘ’１００”、つまり、ライトサイクルで書き込まれたデータを選択してデータ処理部４９に出力する。
【００４９】
この第２の実施の形態によれば、同一サイクルにおいてライトアドレスとリードアドレスとが一致した場合でも、補助レジスタ４５に記憶されているデータを読み出すことで、デュアルポートＲＡＭ４１の指定されたアドレスのデータと同一のデータを読み出すことができる。従って、デュアルポートＲＡＭに対するアクセスの競合を意識せずにプログラムを作成でき、プログラムも簡素化でき、処理時間も短縮できる。
【００５０】
なお、この第２の実施の形態では、パイプラインレジスタＰＬＲ１４ａの入力アドレスをリードアドレスとして出力してリードサイクルを１サイクルで完了させる場合について説明したが、従来のようにパイプラインレジスタＰＬＲ１４の出力アドレスをリードアドレスとして出力してリードサイクルに２サイクル要する場合にも適用できる。
【００５１】
次に、図５は、２個のデュアルポート同期式ＲＡＭを使用して、ライトサイクルとリードサイクルを連続して行えるようにした本発明の第３の実施の形態のデータ処理プロセッサ５０のブロック図である。同図において、既に説明した回路ブロックと同一の部分には同じ符号を付けて説明を省略する。
【００５２】
２個のデュアルポート同期式ＲＡＭ５１，５２のＡ系ポートはライト専用ポートとなっており、Ｂ系ポートは読み出し専用ポートとなっており、それぞれ独立にアクセスできる。デュアルポート同期式ＲＡＭ５１，５２のＡ系ポートのアドレス端子ＡＤＡにはパイプラインレジスタＰＬＲ１４から出力されるディストネーション（ＲＤ）アドレスが入力し、データ入力端子ＤＩにはＡＬＵ１９の出力データが入力している。つまり２個のデュアルポート同期式ＲＡＭ５１，５２の同一のアドレスに同一のデータが同時に書き込まれるようになっている。
【００５３】
レジスタＲＳ１として使用されるデュアルポート同期式ＲＡＭ５１のＢ系ポートのアドレス端子ＡＤＢには、デコーダ１３から出力されるレジスタＲＳ１のリードアドレスが入力し、出力端子ＤＯＢから読み出されるデータがＡＬＵ１９の一方の入力端子に出力される。
【００５４】
レジスタＲＳ２として使用されるデュアルポートＲＡＭ５２のＢ系ポートのアドレス端子ＡＤＢには、デコーダ１３から出力されるＲＳ２のリードアドレスが入力し、データ出力端子ＤＯＢから読み出されるデータがＡＬＵ１９の他方の入力端子に出力される。
【００５５】
以下、第３の実施の形態において、レジスタＲＳ１及びＲＳ２の値を加算してディストネーションレジスタに格納するときの動作を、図６を参照して説明する。
【００５６】
デュアルポート同期式ＲＡＭ５１のＢ系ポートにレジスタＲＳ１のリードアドレスが入力され、そのアドレスのデータがＡＬＵ１９の一方の入力端子に出力される（図６▲１▼）。次にデュアルポート同期式ＲＡＭ５２のＢ系ポートにレジスタＲＳ２のリードアドレスが入力され、そのアドレスのデータが読み出されてＡＬＵ１９の他方の入力端子に出力される（図６▲２▼）。さらに、デュアルポート同期式ＲＡＭ５１，５２のＡ系ポートにライトアドレスが入力され、レジスタＲＳ１とレジスタＲＳ２の値を加算した結果がデュアルポート同期式ＲＡＭ５１，５２のＡ系ポートの同じアドレスに書き込まれる（図６▲３▼）。
【００５７】
次にデュアルポート同期式ＲＡＭ５２のＢ系ポートにレジスタＲＳ１のリードアドレスが入力され、そのアドレスのデータが読み出されてＡＬＵ１９の一方の入力端子に出力される（図６▲４▼）。
【００５８】
この場合、ライトサイクルとリードサイクルが連続しているが、ライト動作がデュアルポート同期式ＲＡＭ５１及び５２のＡ系ポートで、リード動作がデュアルポート同期式ＲＡＭ５２のＢ系ポートとなっているので、同一のポートに対するライト動作とリード動作ではないので、それらの命令を連続して実行できる。
【００５９】
以下同様に、デュアルポート同期式ＲＡＭ５２にレジスタＲＳ２のリードアドレスが入力され、そのアドレスのデータが読み出されてＡＬＵ１９の他方の入力端子に出力される（図６▲５▼）。さらに、ＡＬＵ１９から出力されるレジスタＲＳ１の値とレジスタＲＳ２の値の加算結果（▲１▼＋▲２▼）を、パイプラインレジスタＰＬＲ１４から出力されるアドレスに書き込む（図６▲６▼）。
【００６０】
この第３の実施の形態によれば、同一ポートに対してライトサイクルとリードサイクルが連続することがなくなる。従って、従来のようにライトサイクルとリードサイクルとの間にＮＯＰを挿入する必要がなくなるので、その分プログラム量を少なくなり処理時間も短縮される。
【００６１】
次に、図７は、デュアルポート同期式ＲＡＭに対するライトサイクルとリードサイクルを連続して実行できると共に、同一サイクルの同一アドレスに対するアクセスの競合を防止するようにした本発明の第４の実施の形態のデータ処理プロセッサ６０のブロック図である。
【００６２】
デュアルポート同期式ＲＡＭ５１，５２は、第３の実施の形態で述べたのと同一のものであり、２つのデュアルポート同期式ＲＡＭ５１，５２のＡ系のポートがライト専用で同一のアドレスに同一のデータが書き込まれ、Ｂ系のポートがリード専用でそれぞれレジスタＲＳ１、レジスタＲＳ２として独立にアクセスできるようになっている。
【００６３】
補助レジスタ６１には、デュアルポート同期式ＲＡＭ５１に書き込まれた最新のデータが記憶される。アドレスコンパレータ６２は、デュアルポート同期式ＲＡＭ５１のＡ系ポートのライトアドレスと、Ｂ系ポートのレジスタＲＳ１のリードアドレスとを比較し、比較結果をアドレス一致フラグレジスタ６３に出力する。アドレス一致フラグレジスタ６３は、アドレスコンパレータ６２からアドレスの一致を示す信号が入力すると、アドレス一致フラグを”１”にし、その”１”の信号をセレクタ６４の制御端子に出力する。
【００６４】
セレクタ６４は、アドレス一致フラグの内容に従って、デュアルポートＲＡＭ５１から読み出されるデータと、補助レジスタ６１の出力データの一方を選択してＡＬＵ１９に出力する。
【００６５】
デュアルポートＲＡＭ５２にも同様に補助レジスタ６５、アドレスコンパレータ６６、アドレス一致フラグレジスタ６７、セレクタ６８が設けられており、デュアルポート同期式ＲＡＭ５２のライトアドレスとレジスタＲＳ２のリードアドレスとを比較し、両者が一致した場合には、補助レジスタ６５のデータが選択されてＡＬＵ１９の他方の入力端子に出力される。
【００６６】
今、ライトサイクルでデュアルポート同期式ＲＡＭ５１，５２のＡ系ポートの同一アドレスに同一データが書き込まれると、同時に補助レジスタ６１，６５にも同一のデータが書き込まれる。そして、次のサイクルがリードサイクルであると、リードサイクルの１サイクル前、つまりライトアドレスが出力されるのと同一のサイクルにデコーダ１３からリードアドレスが出力される。そして、アドレスコンパレータ６２，６６でライトアドレスとリードアドレスとが比較され、アドレスコンパレータ６２または６６がアドレスの一致を検出すると、アドレス一致フラグレジスタ６３または６７の出力を”１”にセットする。すると、セレクタ６４または６８が補助レジスタ６１または６５に格納されているデータを選択してＡＬＵ１９に出力する。
これにより、同一サイクルでライトアドレスとリードアドレスが同一であったときにも、そのアドレスに記憶されているデータと同一のデータが補助レジスタ６１（または補助レジスタ６５）から出力される。
【００６７】
従って、同一サイクルで同一アドレスに対するアクセスが生じないようにアクセスの競合を防止するための制御を行う必要が無くなるので、プログラムが簡素になり処理時間も短くなる。
【００６８】
さらに、デュアルポート同期式ＲＡＭ５１、５２のＡ系ポートをライト専用ポートとして同一のアドレスに同一のデータを書き込み、Ｂ系ポートをリード専用ポートとしてそれぞれ独立にアクセスするようにしたので、ライトアクセスとリードアクセスが連続する場合でも、ＮＯＰを挿入することなくそれらの命令を連続して実行できる。
【００６９】
なお、上記の実施の形態は、本発明をパイプライン制御方式のデータ処理プロセッサに適用した場合であるが、一般的なマイクロプログラム制御方式のデータ処理プロセッサに適用することもできる。
【００７０】
【発明の効果】
本発明によれば、同期式ＲＡＭのリードサイクルが１サイクルで完了するので、同期式ＲＡＭのアクセス時間を短縮できる。  
【図面の簡単な説明】
【図１】第１の実施の形態のデータ処理プロセッサのブロック図である。
【図２】第１の実施の形態のデータ処理プロセッサの命令実行タイミングチャートである。
【図３】第２の実施の形態のデータ処理プロセッサのブロック図である。
【図４】第２の実施の形態のデータ処理プロセッサのアクセスタイミングチャートである。
【図５】第３の実施の形態のデータ処理プロセッサのブロック図である。
【図６】第３の実施の形態の連続命令実行時の同期式ＲＡＭの動作を示す図である。
【図７】第４の実施の形態のデータ処理プロセッサのブロック図である。
【図８】同図（Ａ）、（Ｂ）は同期式ＲＡＭのアクセスの基本波形を示す図である。
【図９】シングルポート同期式ＲＡＭの入出力ポートを示す図である。
【図１０】シングルポート同期式ＲＡＭの基本波形を示す図である。
【図１１】従来のパイプライン制御方式のデータ処理プロセッサのブロック図である。
【図１２】従来のパイプライン制御方式のデータ処理プロセッサの命令実行タイミングチャートである。
【図１３】デュアルポート同期式ＲＡＭの入出力ポートを示す図である。
【図１４】デュアルポート同期式ＲＡＭの基本波形を示す図である。
【図１５】連続命令実行時の同期式ＲＡＭの動作を示す図である。
【図１６】ＮＯＰ命令を追加した連続命令実行時の同期式ＲＡＭの動作を示す図である。
【符号の説明】
１５    シングルポート同期式ＲＡＭ
４１，５１，５２      デュアルポート同期式ＲＡＭ
３１，４２，４８、６４，６８    セレクタ
４３，６２，６６      アドレスコンパレータ
４７，６３，６７      アドレス一致フラグレジスタ
４５，６１，６５      補助レジスタ
【図１】
0003954159.tif 000002
【図２】
0003954159.tif 000003
【図３】
0003954159.tif 000004
【図４】
0003954159.tif 000005
【図５】
0003954159.tif 000006
【図６】
0003954159.tif 000007
【図７】
0003954159.tif 000008
【図８】
0003954159.tif 000009
【図９】
0003954159.tif 000010
【図１０】
0003954159.tif 000011
【図１１】
0003954159.tif 000012
【図１２】
0003954159.tif 000013
【図１３】
0003954159.tif 000014
【図１４】
0003954159.tif 000015
【図１５】
0003954159.tif 000016
【図１６】
0003954159.tif 000017