(57)【要約】  全てのポインタ・ベースのアクセスは、最初にポインタ・レジスタ（２００ａ，２００ｂ，２００ｃ，２００ｄ）に格納されている値が読み出され、次にその値がランダム・アクセス・メモリ（ＲＡＭ）（１０４）内の適切な領域のアドレスとして使用されることを必要とする。今日、実施されているように、これは２つのメモリ読み出しアクセス・サイクルを必要とするが、その各々は少なくとも１クロック・サイクルかかり、そのため、この実施は単一サイクル操作を可能にしない。本発明の一実施形態によれば、ポインタの内容を読み出すためにポインタ・メモリ（１０３ａ，１０３ｂ，１０３ｃ，１０３ｄ）へのアクセスが実行されるとき、実際に読まれ、ポインタ値を返すのは、シャドウ・メモリである。シャドウ・メモリはポインタ・レジスタ（２００ａ，２００ｂ，２００ｃ，２００ｄ）から構築されるので、読み出しアクセスは、これらのポインタ・レジスタ（２００ａ，２００ｂ，２００ｃ，２００ｄ）からポインタ・アドレス用の適切なデータを１つ選択して、目標ポインタ・アドレスを形成することが必要である。レジスタ・アクセスは純粋に組み合わせ的であり、ＲＡＭ（１０４）へのアクセスが必要とするようには、クロック位相関連のタイミングを必要としないので、この目標ポインタ・アドレスはその後、クロックのオーバヘッドなしにＲＡＭ（１０４）にアクセスするためのアドレスとして使用される。
2007500393.tif 000002
【特許請求の範囲】
【請求項１】
メモリ回路にアクセスするためのメモリ・アクセス命令を含む命令データを処理するプロセッサと、
前記命令データの一部を形成するポインタ・アドレスを保存する少なくとも１つのポインタ・メモリ回路と、
前記ポインタ・アドレスの複製を保存する少なくとも１つのポインタ・レジスタと、
前記少なくとも１つのポインタ・メモリ回路からの読み出し操作および前記少なくとも１つのポインタ・メモリ回路への書き込み操作の一方が行われるべきかどうかを決定する制御回路であって、書き込み操作の場合、前記ポインタ・アドレスを前記少なくとも１つのポインタ・メモリ回路に保存し、かつ自動的に複製を前記少なくとも１つのポインタ・レジスタに保存し、読み出し操作の場合、前記少なくとも１つのポインタ・メモリにアクセスする代わりに、前記少なくとも１つのポインタ・レジスタを利用して、そこに保存された前記ポインタ・アドレスから得られる目標ポインタ・アドレスによって指し示されるデータにアクセスする制御回路とを備えるマイクロコントローラ・アーキテクチャ。
【請求項２】
ポインタ・アドレスを受け取るために前記少なくとも１つのポインタ・レジスタに結合される少なくとも１つの入力ポートと、前記メモリ回路内に保存されたデータに対する間接アドレス指定操作のために使用される前記ポインタ目標アドレスを提供する出力ポートとを含むポインタ・マルチプレクサ・ブロックを備える、請求項１に記載のマイクロコントローラ・アーキテクチャ。
【請求項３】
現在のプログラム・カウンタ値に現在の命令の長さを加算して得られる次のプログラム・アドレスを受け取る第１の入力ポートと、前記ポインタ・マルチプレクサ・ブロックから前記ポインタ目標アドレスを受け取る第２の入力ポートと、ソース選択ブロックの出力ポートからポインタ・データ出力信号を提供するために、前記第１および第２の入力ポートで受け取られる前記入力信号の少なくとも一方のどのデータ・ビットが使用されるべきかを決定するために、前記制御回路から選択信号を受け取る第３の入力ポートとを含むソース選択ブロックを備える、請求項２に記載のマイクロコントローラ・アーキテクチャ。
【請求項４】
前記少なくとも１つのポインタ・レジスタが、複数のポインタ・レジスタを含み、前記マイクロコントローラ・アーキテクチャが、前記ポインタ・データ出力信号をそこから受け取るために前記ソース選択ブロックの前記出力ポートに結合される入力ポートと、前記複数のポインタ・レジスタに保存するための前記ポインタ・アドレスを形成する際に、前記ポインタ・データ出力信号から得られるどのビットが使用されるべきかを決定するための入力データ・マルチプレクサ制御信号を前記制御ブロックから受け取る入力ポートとを含む入力マルチプレクサを備える、請求項３に記載のマイクロコントローラ・アーキテクチャ。
【請求項５】
前記少なくとも１つのポインタ・メモリ回路が、複数のポインタ・メモリ回路を含み、前記マイクロコントローラ・アーキテクチャが、前記複数のポインタ・メモリ回路内に保存された前記保存ポインタ・アドレスから得られるデータ・ビットを受け取るために複数のポインタ・メモリ回路に結合される入力ポートと、割り込みからの復帰命令中に回復されるプログラム・カウンタ値を提供する出力ポートとを含む出力マルチプレクサを備える、請求項４に記載のマイクロコントローラ・アーキテクチャ。
【請求項６】
前記ポインタ・マルチプレクサ、前記出力マルチプレクサ、および前記入力マルチプレクサは、クロック回路作動型とは異なる、請求項５に記載のマイクロコントローラ・アーキテクチャ。
【請求項７】
クロック・サイクルを有し、前記少なくとも１つのメモリ回路に結合されたクロック回路と、前記少なくとも１つのポインタ・レジスタと、前記制御ブロックとを備え、前記読み出し操作が、前記目標ポインタ・アドレスによってアドレス指定される前記メモリ回路内の領域に単一クロック・サイクル内でアクセスする、請求項１に記載のマイクロコントローラ。
【請求項８】
ポインタ・ベースのアドレス指定の方法であって、
少なくとも１つのポインタ・メモリを提供するステップと、
少なくとも１つのポインタ・レジスタを提供するステップと、
前記少なくとも１つのポインタ・メモリにポインタ・アドレス・データを保存するステップと、
前記少なくとも１つのポインタ・メモリにポインタ・アドレス・データを保存するときに、前記少なくとも１つのポインタ・レジスタに前記ポインタ・アドレス・データの複製である複製ポインタ・アドレス・データを自動的に保存するステップとを備える方法。
【請求項９】
前記自動的に保存するステップが、前記保存するステップと同じクロック・サイクル内で実行される、請求項８に記載の方法。
【請求項１０】
前記自動的に保存するステップが完了されるまで、前記少なくとも１つのポインタ・メモリが、その他の操作によってアクセス可能にならないように、前記自動的に保存するステップが、前記保存するステップの後に実行される、請求項８に記載の方法。
【請求項１１】
前記複製ポインタ・アドレス・データを自動的に保存するために前記少なくとも１つのポインタ・メモリに対する全ての変更を検出するステップを備える、請求項８に記載の方法。
【請求項１２】
メモリ内のメモリ・ロケーションに対するメモリ・アクセス要求を、前記ポインタ・アドレスによってアドレス指定される前記メモリ・ロケーションに保存されたデータを取り出すために受け取るステップと、
前記ポインタ・レジスタから前記複製ポインタ・アドレス・データを取り出すステップと、
前記少なくとも１つのポインタ・メモリに保存された前記ポインタ・アドレス・データから得られる目標ポインタ・アドレスを使用するのではなく、前記複製ポインタ・アドレス・データから得られる目標ポインタ・アドレスを使用して前記メモリにアクセスするステップとを備える、請求項８に記載の方法。
【請求項１３】
クロック・サイクルを有するクロック回路を提供するステップを備え、前記受け取る、取り出す、およびアクセスするステップが、単一クロック・サイクル内で実行される、請求項１２に記載の方法。
【請求項１４】
前記目標ポインタ・アドレスを前記少なくとも１つのポインタ・レジスタと前記少なくとも１つのポインタ・メモリとに書き戻すステップを備える、請求項１２に記載の方法。
【請求項１５】
前記複製ポインタ・アドレス・データを自動的に保存するために前記少なくとも１つのポインタ・メモリに対する全ての変更を検出するステップを備える、請求項１２に記載の方法。
【請求項１６】
前記少なくとも１つのポインタ・レジスタが、複数のポインタ・レジスタを含み、前記アクセスするステップが、前記ランダム・アクセス・メモリにアクセスするための前記目標ポインタ・アドレスを形成するために、前記複数のポインタ・レジスタに保存された前記ポインタ・アドレス・データを１つ選択するステップを含む、請求項１２に記載の方法。
【請求項１７】
処理システムを実施するための保存されたデータを有する記憶媒体であって、
少なくとも１つのポインタ・メモリを提供するための第１の命令データと、
少なくとも１つのポインタ・レジスタを提供するための第２の命令データと、
前記少なくとも１つのポインタ・メモリにポインタ・アドレスを保存するときに、前記少なくとも１つのポインタ・レジスタに前記ポインタ・アドレスの複製である複製ポインタ・アドレスを自動的に保存するための第３の命令データと、
メモリ内のメモリ・ロケーションに対するメモリ・アクセス要求を、前記ポインタ・アドレスによってアドレス指定される前記メモリ・ロケーションに保存されたデータを取り出すために受け取るための第４の命令データと、
前記少なくとも１つのポインタ・レジスタから前記複製ポインタ・アドレスを取り出すための第５の命令データと、
前記少なくとも１つのポインタ・メモリに保存された前記ポインタ・アドレスから得られる目標ポインタ・アドレスを使用するのではなく、前記複製ポインタ・アドレスから得られる目標ポインタ・アドレスを使用して前記メモリにアクセスするための第６の命令データとを備える記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコントローラ・メモリ機構の分野に関し、より詳細には、減少されたクロック・サイクルを使用してアクセスを促進するメモリ機構の分野に関する。
【背景技術】
【０００２】
通常、当業者に知られている８０５１マイクロコントローラの場合、２つの異なるメモリの組が存在する。一方はプロセッサによって実行される命令データを保存するための命令メモリであり、他方はその命令によって使用されるデータを保存し、また取り出すためのデータ・メモリである。マイクロコントローラによって処理される命令の一部は、ポインタ・ベースの命令である。マイクロコントローラは、これらの命令を実行する際に、第１のメモリ・ロケーションにアクセスするために使用される第１のポインタ・アドレスを読み出す。一般に、ポインタ・アドレスは、第１のメモリ・ロケーション、または第１のメモリ・ロケーションのオフセットを示す。第１のメモリ・ロケーションには、第２のポインタ・アドレスが保存される。この第２のポインタ・アドレスは、第２のポインタ・アドレスによって指し示される第２のメモリ・ロケーションに保存されたデータにアクセスするために、プロセッサによって読み出される。ポインタ・ベースのメモリ・アクセス・サイクルを完了する際、プロセッサは、データを取り出すためにメモリ・アクセス操作を２つ使用するが、これらのメモリ・アクセス操作は両方ともクロック依存であり、その結果、ポインタ・ベースの命令の実行時間は、クロック周波数と第１および第２のメモリ・ロケーションが見出されるメモリの速度とに依存する。
【０００３】
処理時間を短縮するため、またマイクロコントローラの電力消費を削減するため、命令実行時間の短縮は、メモリ・アクセス操作の減少と同様に好ましい。したがって、単一クロック・サイクル・データ・メモリ・アクセス操作を可能にするマイクロコントローラ・アーキテクチャを提供することが必要とされている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、本発明の目的は、単一クロック・サイクル内でのポインタ・メモリ・アクセス操作を容易にするマイクロコントローラ・アーキテクチャを提供することである。
【課題を解決するための手段】
【０００５】
本発明によれば、メモリ回路にアクセスするためのメモリ・アクセス命令を含む命令データを処理するためのプロセッサと、前記命令データの一部を形成するポインタ・アドレスを保存するための少なくとも１つのポインタ・メモリ回路と、前記ポインタ・アドレスの複製を保存するための少なくとも１つのポインタ・レジスタと、前記少なくとも１つのポインタ・メモリ回路からの読み出し操作、および前記少なくとも１つのポインタ・メモリ回路への書き込み操作の一方が行われるべきかどうかを決定するための制御回路であって、書き込み操作の場合、前記ポインタ・アドレスを前記少なくとも１つのポインタ・メモリに保存し、かつ自動的に複製を前記少なくとも１つのポインタ・レジスタに保存し、読み出し操作の場合、前記少なくとも１つのポインタ・メモリにアクセスする代わりに、前記少なくとも１つのポインタ・レジスタを利用して、そこに保存された前記ポインタ・アドレスから得られる目標ポインタ・アドレスによって指し示されるデータにアクセスする制御回路とを備えるマイクロコントローラ・アーキテクチャが提供される。
【０００６】
本発明によれば、ポインタ・ベースのアドレス指定の方法であって、少なくとも１つのポインタ・メモリを提供するステップと、少なくとも１つのポインタ・レジスタを提供するステップと、前記少なくとも１つのポインタ・メモリにポインタ・アドレス・データを保存するステップと、前記少なくとも１つのポインタ・メモリにポインタ・アドレス・データを保存するときに、前記少なくとも１つのポインタ・レジスタに前記ポインタ・アドレス・データの複製である複製ポインタ・アドレス・データを自動的に保存するステップとを備える方法が提供される。
【０００７】
本発明によれば、処理システムを実施するための保存されたデータを有する記憶媒体であって、少なくとも１つのポインタ・メモリを提供するための第１の命令データと、少なくとも１つのポインタ・レジスタを提供するための第２の命令データと、前記少なくとも１つのポインタ・メモリにポインタ・アドレスを保存するときに、前記少なくとも１つのポインタ・レジスタに前記ポインタ・アドレスの複製である複製ポインタ・アドレスを自動的に保存するための第３の命令データと、メモリ内のメモリ・ロケーションに対するメモリ・アクセス要求を、前記ポインタ・アドレスによってアドレス指定される前記メモリ・ロケーションに保存されたデータを取り出すべく受け取るための第４の命令データと、前記少なくとも１つのポインタ・レジスタから前記複製ポインタ・アドレスを取り出すための第５の命令データと、前記少なくとも１つのポインタ・メモリに保存された前記ポインタ・アドレスから得られる目標ポインタ・アドレスを使用するのではなく、前記複製ポインタ・アドレスから得られる目標ポインタ・アドレスを使用して前記メモリにアクセスするための第６の命令データとを備える記憶媒体が提供される。
【０００８】
これから、本発明の例示的な実施形態が、添付の図面に関連させて説明される。
【発明を実施するための最良の形態】
【０００９】
図１は、フィリップス・セミコンダクターズ社によって製造される８０Ｃ５１  ＭＸ１コア（登録商標）マイクロコントローラのアーキテクチャを示したものであり、このアーキテクチャは、本発明の好ましい実施形態による、拡張データ（ＥＤＡＴＡ）ランダム・アクセス・メモリ（ＲＡＭ）アクセス論理ブロック（ＥＤＡＴＡアクセス論理ブロック）１００を備えている。プロセッサ１０１は、ＥＤＡＴＡアクセス論理ブロック１００の外部に配置され、処理リソースを提供するためにＥＤＡＴＡアクセス論理ブロックに結合される。４つのＲＡＭ回路（ＥＲＡＭ）１０３ａないし１０３ｄは、ＥＤＡＴＡアクセス論理ブロック１００の外部に配置され、ＥＲＡＭ１０３ａないし１０３ｄは、ＥＤＡＴＡ  ＲＡＭ１０５にアクセスするのに使用されるポインタ・メモリを実装するために使用される。クロック回路１０４は、ＥＤＡＴＡ  ＲＡＭ１０５およびＥＲＡＭ１０３ばかりでなく、ＥＤＡＴＡアクセス論理ブロック１００内に配置される回路ブロックにもクロック信号（ｃｌｋ）を供給する。
【００１０】
ＥＤＡＴＡアクセス論理ブロック１００内には、制御ブロック１０２と、４つのポインタ・レジスタ２００ａないし２００ｄと、入力ＭＵＸブロック４００と、出力ＭＵＸブロック５００と、ポインタＭＵＸブロック３００と、ソース選択ブロック６００とが配置される。ＥＤＡＴＡアクセス論理ブロック１００は、ＥＤＡＴＡ  ＲＡＭ１０５にアクセスするためのものである。これらの各ブロックの機能は、以下本明細書でより詳細に説明される、それらの入力信号および出力信号と個々の図とを検討することで、より良く理解されよう。表１は、プロセッサ１０１から制御ブロック１０２に供給される入力信号を要約したものである。
【００１１】
Seq_eoi入力信号は、プロセッサからの命令終了フラグに依存する。この入力信号は、ＥＲＡＭ１０３ａないし１０３ｄおよびポインタ・レジスタ２００ａないし２００ｄにいつデータを書き込むべきかを決定するために使用される。
【００１２】
表２は、ポインタ・レジスタ２００ａないし２００ｄおよびＥＲＡＭ  １０３ａないし１０３ｄに、制御ブロック１０２から供給される出力信号の概要である。
【表１】
2007500393.tif 000003
【表２】
2007500393.tif 000004
【００１３】
読み出しおよび書き込みアドレス信号ｒａ０ないしｒａ３が、個々のＥＲＡＭ１０３ａないし１０３ｄおよび個々のポインタ・レジスタ２００ａないし２００ｄに供給される。つまり、読み出しおよび書き込みアドレス信号ｒａ０は、第１のＥＲＡＭ１０３ａおよび第１のポインタ・レジスタ２００ａに供給され、ｒａ１信号は、第２のＥＲＡＭ１０３ｂおよび第２のポインタ・レジスタ２００ｂに供給され、ｒａ２信号は、第３のＥＲＡＭ１０３ｃおよび第３のポインタ・レジスタ２００ｃに供給され、ｒａ３信号は、第４のＥＲＡＭ１０３ｄおよび第４のポインタ・レジスタ２００ｄに供給される。読み出しストローブ信号ram_rd0_nないしram_rd4_nおよび書き込みストローブ信号ram_wr0_nないしram_wr4_nは、それぞれのＥＲＡＭにのみ供給される。ポインタ・レジスタ２００ａないし２００ｄには、それぞれの書き込みストローブ信号ptr_wr0_nないしptr_wr3_n、および同じポインタ・レジスタ読み出しアドレス信号ptr_rd_adrが供給される。
【表３】
2007500393.tif 000005
【００１４】
制御ブロックから供給される表３に要約された出力信号は、ＥＤＡＴＡアクセス論理ブロック１００内の他の回路ブロックを制御するために使用されるが、そのことは、これらの回路ブロックの機能が、以下本明細書でより詳細に説明されるときに明らかとなろう。
【００１５】
図２は、図１に示されるアーキテクチャの場合、ポインタ・レジスタ２００ａないし２００ｄとして４回実装されることになる、単一のポインタ・レジスタ・ブロック２００を示している。各ポインタ・レジスタ・ブロックは、好ましくはＥＲＡＭ１０３ａないし１０３ｄに保存されたバンク化されたレジスタＲ０からＲ７をミラー化するのに使用される８バイトのデータを保存する。第１のポインタ・レジスタ・ブロックは、レジスタＲ０およびＲ４の４つのレジスタ・バンクを全て保存し、第２のポインタ・レジスタ・ブロックは、レジスタＲ１およびＲ５の４つのレジスタ・バンクを全て保存し、第３のポインタ・レジスタ・ブロックは、レジスタＲ２およびＲ６の４つのレジスタ・バンクを全て保存し、第４のポインタ・レジスタ・ブロックは、レジスタＲ３およびＲ７の４つのレジスタ・バンクを全て保存する。データｄｍ０ないしｄｍ３は、各ポインタ・レジスタ・ブロック２００ａないし２００ｄに入力されるが、それらは、対応するＥＲＡＭ１０３ａないし１０３ｄのためのものと同じデータである。ポインタ読み出しアドレスは、制御ブロック１０２によって受け取られるid_src_adrまたはid_dest_adr信号から供給される。単一のポインタ・レジスタ・ブロックへの入力信号、および単一のポインタ・レジスタ・ブロックからの出力信号が表２に要約されている。
【表４】
2007500393.tif 000006
【００１６】
出力信号ｐｄ０ないしｐｄ３は、ポインタ・レジスタからポインタＭＵＸ３００に配置された４つの入力ポートに供給される。
【００１７】
図３は、ポインタ・マルチプレクサ（ＭＵＸ）ブロック３００を示している。ポインタ・マルチプレクサ（ＭＵＸ）ブロックに供給される入力信号、およびポインタ・マルチプレクサ（ＭＵＸ）ブロックから供給される出力信号が、表５に要約されている。ポインタＭＵＸブロックは、各ポインタ・レジスタ２００ａないし２００ｄからデータ信号ｐｄ０，ｐｄ１，ｐｄ２およびｐｄ３を受け取る。このブロック内で、間接メモリ・アドレス指定操作のために使用されるべきポインタ・レジスタ出力データの選択が実行される。さらに、ユニバーサル・ポインタ(universal pointer)値に対してオフセット調整を行うために、ポインタ・レジスタ・データ内のオフセットが、ポインタＭＵＸブロック３００内で求められる。Ed_uptr出力信号または目標ポインタ・アドレスは、ユニバーサル・ポインタ値と２ビット即値データであるオフセットとの加算値か、または２４ビット長とするために０でパディングされた８ビットのポインタ・レジスタ値であり、制御ブロックから受け取られるptr_mux_sel信号によって決定される。目標ポインタ・アドレスは、間接メモリ・アクセス操作中に使用され、この目標ポインタ・アドレスは、制御ブロック１０２とソース選択ブロック６００に配置された入力ポートとの両方に供給される。
【表５】
2007500393.tif 000007
【００１８】
図４は、４つのＥＲＡＭブロック１０３ａないし１０３ｄおよび４つのポインタ・レジスタ・ブロック２００ａないし２００ｄにデータ信号ｄｍ０ないしｄｍ３を供給するのに使用される入力ＭＵＸブロック４００を示しており、表６は、入力ＭＵＸブロック４００に供給される入力信号および入力ＭＵＸブロック４００から供給される出力信号を要約したものである。
【表６】
2007500393.tif 000008
【００１９】
図示されるように、データ信号ｄｍ０，ｄｍ１，ｄｍ２およびｄｍ３は、それぞれのＥＲＡＭおよびポインタ・レジスタ・ブロックに供給される。入力ＭＵＸブロック４００はまた、４つの入力バイト、alu_src,src_low，src_midおよびsrc_highを現在の命令動作で使用される所定のバイト境界に合わせて調整するため、これらのバイトの操作も実行する。標準８ビット操作の場合、alu_src入力信号が選択される。その他の入力信号src_low，src_midおよびsrc_highは、ポインタおよびスタック操作をサポートするため、入力ＭＵＸブロック４００の入力ポートに供給される。Alu_src入力信号は、演算論理ユニット（図示せず）から供給される。入力データＭＵＸ制御信号（in_mux_sel信号）は、データ信号ｄｍ０，ｄｍ１，ｄｍ２およびｄｍ３用のデータ・ビットが、alu_src入力信号から選択されるべきか、またはその他の入力信号src_low，src_midおよびsrc_highから選択されるべきかを選択するため、制御ブロック１０２から入力ＭＵＸブロックの入力ポートに供給される。
【００２０】
図５は、出力ＭＵＸブロック５００を示しており、このブロックは、ＥＤＡＴＡアクセス論理ブロック１００の出力ポート１００ａおよび１００ｂから伝播されるべきプログラム・カウンタ（ＰＣ）用の値を選択する。出力ＭＵＸブロックは、それぞれのＥＲＡＭから受け取られる４つの入力バイトｒｄ０，ｒｄｌ，ｒｄ２およびｒｄ３をローテートして、ＥＤＡＴＡアクセス論理ブロック１００の現在の操作のための所定の境界に合わせる操作を実行する。出力ＭＵＸ５００に供給される入力信号および出力ＭＵＸ５００から供給される出力信号が、表７に要約されている。
【表７】
2007500393.tif 000009
【００２１】
制御ブロック１０２は、出力ＭＵＸ５００に出力ＭＵＸ制御信号（out_mux_sel信号）を供給し、この入力信号は、ＥＤＡＴＡアクセス論理ブロック１００の現在の操作のための所定のバイト境界合わせを提供する。出力ＭＵＸに配置された２つの出力ポートは、割り込みからの復帰命令中に回復されるＰＣ値のための高位の１５データ・ビット（ed_pc）および低位の８データ・ビット（ed_src）を供給する。
【００２２】
図６は、ソース選択ブロック６００を示しており、ソース選択ブロックは、入力ＭＵＸ４００の入力ポートに供給されるsrc_high，src_midおよびsrc_low出力信号を供給するための出力ポートを含む。ソース選択ブロック６００に配置される第１の入力ポートは、現在のプログラム・カウンタ値に現在の命令の長さを加算して得られる次のプログラム・アドレスを受け取るためのものである。ソース選択ブロックに配置される第２の入力ポートは、間接アクセス操作中に使用されるポインタ目標アドレス（ed_uptr信号）を受け取るためのものである。選択信号（src_mux_sel信号）は、制御ブロック１０２からソース選択ブロック６００の第３の入力ポートに供給される。選択信号は、src_high, src_midおよびsrc_low出力信号のどれが、ソース選択ブロック６００の第１および第２の入力ポートの少なくとも一方から受け取られた入力信号から得られたデータ・ビットをその中に有するかを決定する。選択ブロック６００に供給される入力信号および選択ブロック６００から供給される出力信号が、表８に要約されている。
【表８】
2007500393.tif 000010
【００２３】
ＥＲＡＭに供給される入力信号が表９に要約されており、これらの入力信号は、制御回路１０２に配置された出力ポートおよび入力ＭＵＸ４００から受け取られる。これらの入力信号の大部分は、制御ブロック１０２から受け取られるが、入力信号ed_dm0ないしed_dm3は、入力ＭＵＸ４００の出力信号ｄｍ０ないしｄｍ３から受け取られる。クロックｃｌｋ入力信号は、ＥＲＡＭ１０３にも供給される。
【００２４】
ポインタ・アクセスを伴う単一サイクル操作を可能にするため、ポインタによって使用されるアドレスをその中に保存するメモリ領域は、「シャドウ化」される。シャドウイング（shadowing）では、ランダム・アクセス・メモリ・コンポーネントを使用する代わりに、ポインタ・レジスタ２００ａないし２００ｄを使用して、複製メモリが生成される。もちろん、非シャドウ化メモリのように、メモリに対してポインタが使用される前、またはレジスタ・アクセスの前に、それらの事前の初期化が実行される。そのポインタのアドレスへの書き込みは、この初期化を実行する。ポインタのメモリ・アドレスへの書き込みのプロセスにおいて、ポインタ・レジスタ２００ａないし２００ｄにも同様に書き込まれる。表９は、ＥＲＡＭに供給される入力および出力信号を要約したものである。
【表９】
2007500393.tif 000011
【００２５】
ポインタ・メモリに保存されたポインタの内容を読み出すためにＲＡＭアクセス操作が実行されるとき、保存されたポインタ・アドレス・データ値を返すために読まれ、使用されるのは、ポインタ・レジスタ２００ａないし２００ｄを使用して実装されるシャドウ・メモリである。図７を参照すると、ポインタ・アドレスをポインタ・メモリに保存するとき、ポインタ・アドレスの複製である複製ポインタ・アドレスが、ポインタ・レジスタに自動的に保存される（ステップ７０１）。ポインタ・アドレス用に予約されたメモリ・ロケーションに書き込みが行われると、対応するポインタ・メモリ・ロケーションにも同じデータが書き込まれるので、ポインタ・メモリとポインタ・レジスタとの間の一貫性が常に維持される。もちろん、ポインタが初期化されていない電源投入時は、一貫性は維持されていない。初期化されていないポインタの挙動は予測し得ないので、それはポインタ・メモリ内の初期化されていないロケーションの挙動と類似している。ステップ７０２で、メモリ・ロケーションに対するメモリ・アクセス要求が、ポインタ・アドレスによってアドレス指定されるメモリ・ロケーションに保存されたデータを取り出すために受け取られる。したがって、ステップ７０３で、複製ポインタ・アドレスが、ポインタ・レジスタから取り出され、ステップ７０４で、ランダム・アクセス・メモリが、ポインタ・メモリに保存されたポインタ・アドレスから得られる目標ポインタ・アドレスを使用するのではなく、複製ポインタ・アドレスから得られる目標ポインタ・アドレスを使用してアクセスされる。
【００２６】
ポインタ・レジスタはランダム・アクセス・メモリ回路には実装されないので、ポインタ・メモリ読み出し操作は、これらのポインタ・レジスタから目標ポインタ・アドレスの適切な値を１つ選択する（multiplex）ことを含み、その後、この目標ポインタ・アドレスは、ランダム・アクセス・メモリに対する読み出しまたは書き込み操作のために使用される。これにより、２クロック・サイクル分のオーバヘッドは必要なくなる。クロック・サイクルの節約は、純粋に組み合わせ的な、ランダム・アクセス・メモリにアクセスする場合のようにはクロックおよび位相関連のタイミングを必要としない、レジスタ・アクセスの結果である。したがって、ＥＲＡＭのセットアップ時間内にポインタ・マルチプレクサを使用可能にすることで、クロック・サイクルおよびメモリ・アクセス操作を節約するように、組み合わせ論理が実施される。入力ＭＵＸブロック４００およびポインタＭＵＸブロック３００は、ＥＲＡＭのようなクロック回路作動型（clock circuit gated）ではなく、したがって、これらの回路のセットアップ時間は、クロック依存ではない。ポインタ・メモリ（ＥＲＡＭ）には、ポインタ・レジスタと同時に書き込みが行われるので、制御回路ブロックは、ポインタ・メモリに十分なセットアップ時間を提供する。このセットアップ時間は、ポインタ・メモリ１０３ａないし１０３ｄにアドレス・ビットを設定すること、ならびに入力ＭＵＸブロック４００からのポインタ書き込みアドレスｄｍ０ないしｄｍ３が、ポインタ・レジスタ２００ａないし２００ｄおよびポインタ・メモリ１０３ａないし１０３ｄへの書き込みが行われる前に有効になることを保証することを可能にする。
【００２７】
本発明の実施形態は、条件分岐など２以上のプログラム・メモリ・アクセスを必要とする命令を除いて、命令が１クロック・サイクルで実行される「１クロック」操作を実現する。電力節約はクロック周波数に直接的に比例するので、多数を占める１クロック操作の結果、エンドユーザ製品においてコスト節約が実現される。さらに、電磁妨害（ＥＭＩ）はクロック周波数に比例するので、より低いクロック周波数はより低いＥＭＩしか発生させず、その結果、より少ないシステム・コンポーネントしか必要にならない。加えて、このファミリに基づく製品は、０．１８ミクロン・フラッシュ・プロセス（flash process）を使用して生産されるものとされているので、所与の機能セットに要するダイ・サイズが結果的に縮小することから、歩留まり救済（yield saving）が実現される。
【００２８】
ＥＲＡＭのメモリ領域をシャドウ化することによって、長さが異なるポインタの操作が、任意のバイト境界で実行可能になる。制御ブロック内に配置されたポインタ・アドレス生成論理回路は、プロセッサによって実行されている現在の命令で指定されるメモリ・アクセスを実行するため、適切なアドレス信号およびストローブ信号を発生させる。一般に、実行される命令は、８ビット、１６ビットまたは２４ビット引数の長さを含む。さらに、単一サイクルの読み出し−修正−書き込みが、ＥＤＡＴＡアクセス論理ブロック１００によってサポートされ、ポインタ・レジスタは、ポインタ・メモリＥＲＡＭにばかりでなく、それ自体の保存ロケーションにもポインタ・データを書き戻すことが可能なる。
【００２９】
数々のその他の実施形態が、本発明の趣旨または範囲から逸脱することなく構想され得る。
【図面の簡単な説明】
【００３０】
【図１】本発明の好ましい一実施形態による、ＥＤＡＴＡアクセス論理ブロックを示した図である。
【図２】図１に示されるアーキテクチャの場合、第１ないし第４のポインタ・レジスタとして４回実装されることになる、単一のポインタ・レジスタ・ブロックを示した図である。
【図３】ポインタ・レジスタの各々からデータ信号を受け取るためのポインタ・マルチプレクサ（ＭＵＸ）ブロックを示した図である。
【図４】４つのＥＲＡＭブロックおよび４つのポインタ・レジスタ・ブロックにデータ信号ｄｍ０ないしｄｍ３を供給するのに使用される入力ＭＵＸブロックを示した図である。
【図５】ＥＤＡＴＡアクセス論理ブロックの出力ポートから伝播させるべきデータ信号を選択するのに使用される出力ＭＵＸブロックを示した図である。
【図６】入力ＭＵＸの入力ポートに出力信号を供給するのに使用されるソース選択ブロックを示した図である。
【図７】ポインタ・レジスタおよびポインタ・メモリにアクセスするために利用されるステップを概説した図である。
【図１】
2007500393.tif 000012
【図２】
2007500393.tif 000013
【図３】
2007500393.tif 000014
【図４】
2007500393.tif 000015
【図５】
2007500393.tif 000016
【図６】
2007500393.tif 000017
【図７】
2007500393.tif 000018
【国際調査報告】
2007500393.tif 000019
2007500393.tif 000020