JP2008171335A - レジスタアクセス方式 - Google Patents

レジスタアクセス方式 Download PDF

Info

Publication number
JP2008171335A
JP2008171335A JP2007006057A JP2007006057A JP2008171335A JP 2008171335 A JP2008171335 A JP 2008171335A JP 2007006057 A JP2007006057 A JP 2007006057A JP 2007006057 A JP2007006057 A JP 2007006057A JP 2008171335 A JP2008171335 A JP 2008171335A
Authority
JP
Japan
Prior art keywords
register
cpu
read
register access
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007006057A
Other languages
English (en)
Inventor
Naoki Irisa
直喜 入佐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2007006057A priority Critical patent/JP2008171335A/ja
Publication of JP2008171335A publication Critical patent/JP2008171335A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

【課題】CPUとバスシステムを介して接続されるモジュールが複数ある場合でもレジスタアクセスを高速化する。
【解決手段】CPU10がシステムバス30を介して所定の機能を有する複数のモジュール40と接続される情報処理システム100でのレジスタアクセス方式であって、CPUとシステムバスの間には、CPUからモジュールのレジスタへのアクセスコマンドを受信してからモジュールへのレジスタアクセスを実行するレジスタアクセス制御部20が備わり、このレジスタアクセス制御部は、CPUからのアクセスコマンドとしてリードコマンドを受信すると、モジュールの所定のレジスタにリードコマンドを発行して行われるレジスタリードの際に読み出されたリードデータのうち、最頻出のリードデータをCPUに返信する。
【選択図】図2

Description

本発明は、画像処理装置等に使用される大規模集積回路( Large Scale Integration;LSI )を含む情報処理システムのシステムバス制御におけるレジスタアクセス方式に関し、特に、CPU( Central Processing Unit )からレジスタアクセスをうけて、LSIに配置された複数のモジュールのレジスタを読み出し、効率的にCPUに返すレジスタアクセスの制御方式に関する。
一般的に、システムバスを介して、アプリケーションを実行すると共に外部からの割込みに対応した処理を行うCPUと、所定の機能を有する各種ソフトウェア・ハードウェアの構成ユニットである複数のモジュールを備えるLSIを含む情報処理システムでは、CPUがLSIに備わる各モジュールの制御を実行する機能を有する。例えば、CPUは、アプリケーションの実行中における外部からの割込みに対応した処理として、LSIのシステムバスを介して接続されたモジュールを使用することによって、ある処理を行う場合、モジュール内のパラメータの初期設定を行ってから動作起動をかけ、動作終了後の割り込みを検知して、割り込み処理までを実行している。これらの処理は、具体的には、LSIのモジュール内のレジスタに対して、CPUからのライト・リードコマンドによって行われている。
CPUからLSIのモジュールのレジスタにデータを書き込みたい場合、CPUは、CPUバス上にライトコマンドを発行し、それを受けたモジュールが指定されたアドレスのレジスタに指定されたパラメータでの書き込みをして、指定されたデータの書き込みが完了すると、CPUバスに書き込み完了を通知する信号を出力することで、CPUは、レジスタに指定されたパラメータを書き込むことができる。
CPUからモジュールのレジスタのデータを読み出したい場合、まず、CPUは、CPUバス上にリードコマンドを発行し、それを受けたモジュールが指定されたアドレスのレジスタのデータを読み出してCPUバスに出力することで、CPUは、レジスタのデータを読み出すことができる。
この一連のシーケンスをレジスタリードといい、1つのレジスタを読み出しにかかる時間は、CPUがリードコマンドを発行してから、モジュールがリードコマンドを受け取り、当該リードコマンドを解釈し、指定されたアドレスのレジスタに格納されたデータを読み出して、リードデータをCPUに渡すまでの時間を必要とする。
CPUが非常に高速な周波数で動作しているのに対し、LSI側に備わるモジュールは、その1/10程度の周波数で動作しているため、レジスタリードコマンドを発行しても、モジュールの応答が遅いため、CPUは、その間ずっと待機状態となり、モジュールの数が増えれば増えるほど、システムのスループットに影響を与えることになる。
このレジスタリードに要する時間は、モジュール数が少ない場合や、読み出すレジスタ数が少ない場合には、特に問題はなかったが、モジュール数が多くなってくると、レジスタリードに要する時間も比例して増加し、システムのスループットが低下するといった問題が発生してくる。
そこで、レジスタアクセスに要する時間を短縮させる発明として、特許文献1に、連続して転送されるデータを並列化してメモリセルへ書き込むことで、高速な書き込みを実現する半導体メモリへの書き込みを高速化する方法に関する発明が開示されている。
特開平9−153278号公報
しかしながら、上述の半導体メモリでは、連続して転送されるデータを並列化してメモリセルへ書き込むことで、高速な書き込みを実現しているが、読み出しについては言及されてなく、CPUとバスシステムを介して接続されるモジュールが複数ある場合に、レジストの読み出し時間の短縮を実現するには至らなかった。
そこで、本発明は、従来の半導体集積回路等のシステムバス制御におけるレジスタアクセス方式が有する上記問題点に鑑みてなされたものであり、本発明の目的は、CPUとバスシステムを介して接続されるモジュールが複数ある場合でもレジスタアクセスを高速化することの可能な、新規かつ改良されたレジスタアクセス方式を提供することである。
上記課題を解決するために、本発明のある実施の態様(観点)によれば、CPUがシステムバスを介して所定の機能を有する複数のモジュールと接続される情報処理システムでのレジスタアクセス方式であって、CPUとシステムバスの間には、CPUからモジュールのレジスタへのアクセスコマンドを受けてからモジュールへのレジスタアクセスを実行するレジスタアクセス制御部が備わり、このレジスタアクセス制御部は、CPUからのアクセスコマンドとしてリードコマンドを受信すると、モジュールの所定のレジスタにリードコマンドを発行して行われるレジスタリードの際に読み出されたリードデータのうち、最頻出のリードデータをCPUに返信することを特徴とするレジスタアクセス方式が提供される。
このような構成とすることにより、CPUは、全てのモジュールのレジスタアクセスを行わずに、レジスタの値を読み出すことができるので、レジスタリードに要する時間が短縮され、情報処理システム全体のスループットが向上する。
このとき、上記実施の態様において、レジスタリードの際に読み出された最頻出のリードデータをCPUに返信する際に、最頻出のリードデータが読み出されたモジュールに対応する識別子が付加されることを特徴とする請求項1に記載のレジスタアクセス方式としてもよい。
このような構成とすることにより、CPUが最頻出のリードデータの出力元のモジュールを判別できるようになるので、情報処理システム全体のスループットをより向上させられるようになる。
このとき、上記実施の態様において、CPUは、レジスタリードを実行するに際して、複数のモジュールのうち、所望のモジュールを選択してレジスタリードを実行することとしてもよい。
このような構成とすることにより、読み出したい所望のモジュールだけを指定することで、無駄なリード時間がなくなるので、レジスタリードに要する時間がさらに短縮され、情報処理システム全体のスループットが向上する。
このとき、上記実施の態様において、所望のモジュールは、同一の使用目的を有するモジュールであることとしてもよい。
このような構成とすることにより、例えば、画像データ圧縮や画像再生等の同一の使用目的を有するモジュールだけを指定することで、レジスタリードをするに際して、同一の処理を施すので、無駄なリード時間がなくなり、レジスタリードに要する時間がさらに短縮され、情報処理システム全体のスループットが向上する。
このとき、上記実施の態様において、レジスタリードの際に、CPUとレジスタアクセス制御部のインターフェースの動作周波数がシステムバスの動作周波数と略同一の場合、複数のモジュールへのレジスタアクセスを同時に並行して実行することとしてもよい。
このような構成とすることにより、外部CPU I/Fと内部システムバスの周波数差がない場合には、各レジスタへのアクセスパスを接続されるモジュールの数の分持たせることにより、レジスタアクセスの際の同時読み出しが可能となり、高速なレジスタアクセスが実現される。
このとき、上記実施の態様において、レジスタリードの際に、システムバスの動作周波数の方がCPUとレジスタアクセス制御部のインターフェースの動作周波数より高い場合、複数のモジュールへのレジスタアクセスをシーケンシャルに実行することとしてもよい。
このような構成とすることにより、内部システムバスの動作周波数が外部CPU I/Fの動作周波数より高い場合、各レジスタへのアクセスは並列でなく、シーケンシャルに読み出しても十分高速であるため、レジスタI/Fをモジュールの数だけもつ必要がなくなり、ゲート規模の拡大を必要最小限に止めることが可能となる。
以上説明したように本発明によれば、CPUがLSIに備わる所定の機能を有する複数のモジュールの制御を実行する情報処理システムにおいて、全てのモジュールのレジスタにCPUがアクセスしなくても、これらのモジュールのレジスタのリードを実行できるようになる。このため、レジスタアクセスにかかる時間を短縮可能とし、特に、同一処理を行うモジュールが複数個搭載されているような場合において、レジスタアクセスに要する時間を短縮できる。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
まず、本発明のレジスタアクセス方式の第1の実施の形態の概略全体構成について、図面を使用しながら説明する。図1は、本実施の形態のレジスタアクセス方式を取り入れた情報処理システムの概略基本構成図を示すブロック図である。
本実施の形態のレジスタアクセス方式は、画像処理装置等に使用される情報処理システム100のシステムバス制御に際して使用される。本実施の形態のレジスタアクセス方式が使用される情報処理システム100では、CPU10に制御されるLSI50にレジスタアクセス制御部20、システムバス30、および所定の機能を有する複数のモジュール40(本実施の形態では、M1〜M8の8個)が備わる。LSI50に備わる各モジュール40は、レジスタアクセス制御部20およびシステムバス30を介してCPU10に接続されている。
CPU10は、LSI100を備える画像処理装置等の装置の各種情報処理を行うために、不図示のプログラムメモリに格納された各種処理プログラムのアプリケーションを実行する。また、外部からの割込みに対応した処理を行うための各モジュール40にレジスタアクセスを実行する。
CPU10は、LSI50に備わる各モジュール40へレジスタアクセスを行う場合、まず、レジスタアクセス制御部20にレジスタアクセスするための書き込み(ライト)または読み込み(リード)のアクセスコマンドを発行する。
レジスタアクセス制御部20は、CPU10からのレジスタアクセスを処理する。すなわち、CPU10からのコマンドを解析して、当該解析結果に基づいたコマンドに応じた動作を各モジュール40に対して行う。当該コマンド解析に際して、コマンドがライトであれば、CPU10から受信したライトデータを各モジュール40に対して出力する。もし、コマンドがリードであれば、各モジュール40から読み出したリードデータをCPU10に対して出力する。
次に、本実施の形態のレジスタアクセス方式を取り入れた情報処理システムに含まれるレジスタアクセス制御部の構成について、図面を使用しながら説明する。図2は、本実施の形態のレジスタアクセス方式を取り入れた情報処理システムに含まれるレジスタアクセス制御部の構成を示すブロック図である。
レジスタアクセス制御部20は、コマンド受信部21、制御部22、アドレステーブル23、コマンド発行部24、メモリ25、比較部26を含む構成である。
コマンド受信部21は、CPU10からのコマンドとしてリードコマンドまたはライトコマンドを受け取って、当該コマンドを制御部22に送信する機能を有する。
制御部22は、コマンド受信部21から受信したコマンドを解析して、内部処理を行う機能を有する。また、制御部22は、その解析結果を元に、どのモジュール40にアクセスするかの判定をする。当該判定をする際に、外部からの割込みに対応するターゲットとなるモジュール40のアドレスが記載されているアドレステーブル23を参照する。
アドレステーブル23は、各モジュール40のレジスタのアドレスが格納されており、制御部22からの命令を受けて、外部からの割込みに対応するターゲットとなるモジュール40のアドレスが制御部22に示される。
コマンド発行部24は、制御部22で解析されたコマンドを受け、リードコマンドで指定されたモジュール40のアドレスに対し、リードコマンドをシステムバス30に発行する機能を有する。
メモリ25は、外部からの割込みに対応するターゲットとなるモジュール40からのリードデータを一時的に記憶しておくRAM( Random Access Memory )等の一時記憶手段である。本実施の形態では、各モジュール40(M1〜M8)ごとにそれぞれ対応するように8つのメモリ25(m1〜m8)が設けられている。換言すると、レジスタアクセス制御部20に設けられるメモリ25は、LSI50に設けられる各モジュール40に対応するように、それぞれ設置されるので、モジュールの数に応じて、メモリ25の数も変更される。
比較部26は、これらのメモリ群25に一時的に格納されている各データを比較して、所望のデータを抽出して制御部22に出力する機能を有する。なお、比較部26での所望のデータの抽出動作については、後述する。
このような構成のレジスタアクセス制御部20では、CPU10は、レジスタアクセス制御部20に対してリードコマンドを発行した場合には、CPU10からのリードコマンドを受信したコマンド受信部21は、受信したリードコマンドのアドレスおよびコマンドの内容を制御部22に送信する。
制御部22は、CPU10で発行されたリードコマンドで指定されたアドレスから、外部からの割込みに対応するターゲットとなるモジュール40のアドレスをアドレステーブル23から参照し、リードコマンドであることをコマンド発行部24へ通知する。
コマンド発行部24は、制御部22からのコマンドを受け、リードコマンドで指定されたアドレスに対し、リードコマンドをシステムバス30に発行する。
システムバス30は、ターゲットとなる各モジュール40のレジスタアクセスを行い、アクセス先のモジュール40の読み出されたデータをレジスタアクセス制御部20に送信する。
レジスタアクセス制御部20は、システムバス30を介して各モジュール40( M1〜M8 )から受信したリードデータを、各モジュール40( M1〜M8 )に対応するメモリ25( m1〜m8 )に一時的に格納する。
その後、全てのモジュール40( M1〜M8 )からのリードデータが各メモリ25( m1〜m8 )に格納されたら、比較部26は、これらのメモリ25( m1〜m8 )に格納されたデータをチェックして、同一のリードデータである数が最も多い値すなわち最頻出のリードデータを抽出して制御部22に出力する。
制御部22は、当該最頻出のリードデータをCPU10からのリードコマンドの読み出し値(リードデータ)として、CPU10に出力する。
このように、本実施の形態では、CPU10から各モジュール40のレジスタとアクセスするに際して、CPU10は、全てのモジュール40のレジスタアクセスを行わずに、レジスタの値を読み出すことができる。このため、レジスタリードに要する時間が短縮され、本実施の形態のレジスタアクセス方式を使用する情報処理システム全体のスループットを向上させる。
次に、本実施の形態のレジスタアクセス方式を使用することによるレジスタアクセスのタイミングの従来例との変化について、図面を使用しながら説明する。図3は、従来例におけるレジスタアクセス方式によるレジスタアクセスのタイミング図であり、図4は、本実施の形態のレジスタアクセス方式によるレジスタアクセスのタイミング図である。なお、図3および図4に示す信号名に付加されて識別子の(c)は、CPU I/F( 外部CPUとLSIのインターフェース )の信号線を意味し、(s)は、LSI内部のシステムバスの信号線を意味する。
図3に示す実施例として、CPUは、アクセス先のモジュールとして4つのモジュール( M1〜M4 )へのレジスタリードを直接行うケースを挙げる。
まず、CPUは、レジスタリードコマンドをCPU I/F上に出力する(T1サイクル)。
T1サイクルでは、コマンドアドレス信号cmd/adrには、コマンドの内容(ライト・リード)とアドレスA1が出力されると同時に、CPUは、コマンドアドレス信号cmd/adrの内容が確定値であることを示すコマンド確定信号validoを1( High )にしてアドレスを参照する。
次に、LSIは、CPU I/F上のコマンドをラッチ(記憶保持)する(T2サイクル)。当該T2サイクルでは、ラッチした値を内部システムバスのアドレス信号adrにアドレスA1を出力する。そして、リードコマンドのときは、リード信号rdを1( High )にし、ライトのときは、不図示のライト信号wrを1( High )にする。
アドレスの値によって指定されたモジュールは、そのアドレスで示されるレジスタの値をリードデータ信号dataに出力すると同時に、データが確定値であることを示すリード確定信号rd_rdyを1( High )にする(T4サイクル)。
最後に、システムバスは、モジュールからのリードデータをラッチして、CPU I/Fのコマンドアドレス信号cmd/adrにリードデータD1を出力し、CPUに対してリードデータが確定していることを通知するコマンド確定出力信号validiを1( High )にして、当該リードデータD1の値が確定していることを示す(T5サイクル)。
上述のT1〜T6の一連のサイクルを各モジュールごとに4回繰り返すことによって、CPUは、4つのモジュール(M1〜M4)のレジスタを読み出すことができる。なお、図3に示す実施例では、24サイクルを必要としている。
一方、本実施の形態のレジスタアクセス方式によるレジスタアクセスとして、4つのモジュール40のレジスタの読み込みを実行した場合は、図4に示すように、従来と同様に、まず、CPU10がリードコマンド信号cmdを発行する(T1サイクル)。このときのアドレス(Ax)は、従来例と異なり、モジュール40のレジスタではなく、レジスタアクセス制御部20を示すことになる。
また、T1サイクルでは、リードコマンド信号cmdには、アドレスAxが出力されると同時に、CPU10は、リードコマンド信号cmdの内容が確定値であることを示すコマンド確定信号validoを1( High )にしてアドレスを参照する。
レジスタアクセス制御部20には、どのアドレスにアクセスされたら、どのモジュール40のどのレジスタを参照するのかを指し示すアドレステーブル23が備わり、このアドレステーブル23は、予めCPU10が設定する。
レジスタアクセス制御部20は、CPU10が指定したアドレスAxをアドレステーブル23から参照し、モジュール40のレジスタアドレスをシステムバス30のアドレス信号adrに出力する(T2サイクル)。
この図4に示すタイミング図では、アドレス信号adrには、A1〜A4と記載しているが、これは、レジスタアクセスを高速化するために、レジスタアクセス制御部20から、各モジュール40(M1〜M4)へのレジスタI/Fとなるアクセスパスは、モジュール毎に有していることを意味する。すなわち、レジスタアクセス制御部20から各モジュール40(M1〜M4)へのレジスタI/Fとなるアクセスパスがモジュール毎に設けられていることより、複数のモジュール40(M1〜M4)へのレジスタアクセスが同時に実行されることを示す。
リードコマンドを受信した各モジュール40(M1〜M4)は、アドレスが指し示すレジスタの値をシステムバス30のリードデータ信号dataに出力して、リードデータD1〜D4が確定値であることを示すために、リード確定信号rd_rdyを1( High )にする(T4サイクル)。
レジスタアクセス制御部20は、各モジュール40(M1〜M4)からのレジスタリードデータD1〜D4を取り込み、それぞれの値を比較し、一致した数の多い値Dxを代表値として、CPU I/Fに出力し、CPU10に対してリードデータDxが確定していることを通知するコマンド確定出力信号validiを1( High )にして、当該リードデータDxの値が確定していることを示す(T5サイクル)。
この例では、4つのモジュール40(M1〜M4)から読み出したリードデータの値が全て一致したことを前提としているが、このときレジスタアクセスに必要なサイクル数は、最小の6サイクルとなっている。
もし、4つのモジュール40(M1〜M4)のうち、3つのモジュール40のリードデータが一致しており、1つだけが異なる場合は、最初にCPU10に返す値は、3つのモジュール40が出力したリードデータ、換言すると最頻出のリードデータとなる。
このとき、リードデータDxがどのモジュール40(M1〜M4)からの出力かをCPU10が識別できるようにするために、リードデータDxにモジュール識別子を付加させてから、CPU10に伝達する。CPU10は、当該モジュール識別子の値を元に、未読の残りの1つのモジュール40のレジスタを読み出すことで、全てのモジュール40(M1〜M4)のレジスタを読み出したことになる。この場合、必要なサイクル数は、6サイクルが2回で12サイクルとなる。なお、その際に、CPU10内での判断処理のオーバーヘッドは、除くものとする。
このように、本実施の形態のレジスタアクセス方式では、システムバス30を介してCPU10と接続されている各モジュール40(M1〜M4)がデータ圧縮機能等の同一の機能を有するモジュールの比率が大きい程、レジスタリードに要する時間を短縮することができる。すなわち、本実施の形態のレジスタアクセス方式では、CPU10とシステムバス30を介して接続される複数のモジュール40の機能が全て同一であれば、これらのモジュール40を同時に動作させることによって、読み出されるデータも同じ時刻で同じ値が読み出されるので、レジスタリードに要する時間の短縮の効果が最大限に得られる。
また、CPU10は、レジスタリードを実行するに際して、各モジュール40のうち、所望のモジュール40として例えば、画像データ圧縮や画像再生等の同一の使用目的を有するモジュール40を選択する。このため、CPU10がレジスタリードを実行するに際して、同一の処理を施すので、無駄なリード時間がなくなり、レジスタリードに要する時間がさらに短縮され、情報処理システム全体のスループットが向上する。
さらに、図4に示す本実施の態様のレジスタアクセス方式では、レジスタリードの際に、外部CPU I/Fの動作周波数が内部システムバス30の動作周波数と略同一であるので、複数のモジュール40へのレジスタアクセスを同時に並行して実行する。
このように、外部CPU I/Fと内部システムバス30の周波数差がない場合には、各レジスタへのアクセスパスをCPU10とシステムバス30を介して接続させるモジュール40の数の分だけ持たせることによって、レジスタアクセスの際の同時読み出しが可能となり、高速なレジスタアクセスが実現される。
次に、本実施の形態のレジスタアクセス方式におけるレジスタアクセス制御部での比較処理について図面を使用しながら説明する。図5は、本実施の形態のレジスタアクセス方式に含まれるレジスタアクセス制御部における比較処理の動作説明図である。
図5では、モジュール40(M1〜M4)のリードデータがこれらモジュール40(M1〜M4)に対応するメモリ25(m1〜m4)に格納された状態を示す。ここでは、モジュールM1、M2、M4に対応するメモリm1、m2、m4が16進数で0x1234_5678という値が格納され、モジュールM3に対応するメモリm3は、0x1234_0000という値が格納されているものとする。
まず、モジュールM1〜M4に対応したメモリm1〜m4に格納されたリードデータが比較部26に入力され、これらリードデータの比較処理が行われる。当該比較処理では、具体的には、同じ値が最も多いリードデータ、すなわち最頻出のリードデータが抽出される。この例では、0x1234_5678が3つのモジュール40(M1、M2、M4)に対応するメモリ25(m1、m2、m4)から出力され、0x1234_0000が1つのモジュールに対応するメモリ25(m3)から出力されているので、比較部26の制御部22への出力は、0x1234_5678となる。
また、比較部26から最頻出のリードデータを出力するに際して、比較部26は、どのモジュールからの出力かを示すためのモジュール識別子1、2、4を付加する。これらモジュール識別子1、2、4を付加したリードデータを比較部26から制御部22に出力し、当該リードデータをCPU10へ送信するリードデータとする。
このように、比較部26で抽出された最頻出のリードデータに当該モジュール識別子1、2、4を付加することによって、CPU10が当該最頻出のリードデータの出力元のモジュール40を判断できるようになるので、本実施の形態のレジスタアクセス方式を使用する情報処理システム全体のスループットを向上させる。
上述した本実施の形態のレジスタアクセス方式を使用した情報処理の実際の適用例を挙げると、LSIに搭載するモジュールとして画像圧縮モジュールを複数個配置して、これらの画像圧縮モジュールを並列で同時に画像データの圧縮処理をするようなケースが考えられる。このように複数の画像圧縮モジュールを使って、複数の画像データを圧縮するような場合に、圧縮処理を同時に開始すると、これら圧縮処理が終了するのもほぼ同時となる。従って、画像圧縮モジュールの動作状態を表すステータスレジスタを読み出すと、全てのモジュールから同じ値が出力されることが多い。このようなケースにおいて、本実施の形態のレジスタアクセス方式のような複数のモジュールのレジスタを一括で読み出せる効果が大きい。
次に、本実施の形態におけるレジスタアクセス方式によるレジスタアクセス動作について、図面を使用しながら説明する。図6は、本実施の形態におけるレジスタアクセス方式によるレジスタリードの動作フロー図である。
まず、CPU10が動作させたいモジュール40の初期パラメータをレジスタ設定する(工程S10)。
次に、CPU10は、起動コマンドを発行してモジュール40を起動させて、当該モジュール40を動作状態にする(工程S11)。モジュール40を動作状態にした後、モジュール40からの割り込みの発生の有無の判別をする状態で待機する(工程S12)。工程S12では、モジュール40からの割り込みを検出して、モジュール40の動作が完了すると、CPU10に割り込みが出力される。なお、工程S12でモジュール40からの割り込みを検出されない場合は、再度、工程S12のモジュール40からの割り込みの有無の判別を行う。
工程S12でモジュール40からの割り込みを検出すると、CPU10は、当該割り込みをトリガにして、各モジュール40のレジスタの読み出しを開始して、当該モジュール40のレジスタのステータスを確認する(工程S13)。その後、全てのモジュール40のレジスタの読み出しが完了したか否かを判別し(工程S14)、読み終えた場合は、レジスタアクセス処理を終了してから、当該レジスタアクセス処理がリセットされる。一方、工程S14でまだ読み出しが実行されていないモジュール40があると検出された場合は、工程S13に戻って、再度レジスタ読み出しを行う。
次に、本実施の形態のレジスタアクセス方式でCPU I/Fの動作周波数より、システム内部の動作周波数が高い場合でのレジスタアクセスについて、図面を使用しながら説明する。図7は、本実施の形態のレジスタアクセス方式でCPU I/Fの動作周波数より、システム内部の動作周波数が高い場合でのレジスタアクセスのタイミング図である。なお、図7に示す信号名に付加されて識別子の(c)は、CPU I/F( 外部CPUとLSIのインターフェース )の信号線を意味し、(s)は、LSI内部のシステムバスの信号線を意味する。
図4に示す本実施の形態のレジスタアクセス方式によるレジスタアクセスのタイミング図では、CPU10からアドレスが発行されたサイクルを起点として、リードデータがCPU10に返ってくるまでサイクルに要する時間をレスポンスタイムと定義すると、図4に示すレジスタアクセスのタイミング図では、T1からT5までの4サイクルがレスポンスタイムとなる。すなわち、図4に示すレジスタアクセスのタイミング図では、CPU I/Fの動作周波数とLSI内部のシステムバスの動作周波数の両者の動作周波数が同じ場合には、CPU10からのリードリクエスト(T1)に対するリードデータの返答(T5)までは、4サイクルとなる。このレスポンスタイムの値は、LSI内部のシステムバスの信号線であるリード信号(s)rdが1になってから、リード確定信号(s)rd_rdy が1になるまでのシステムバスのリード遅延に依存する。このとき、CPU I/Fからのレジスタアクセスを受けて、レジスタアクセス制御部20は、同時に複数(4つ)のモジュール40に対してアドレスを出して、同時に複数(4つ)のモジュール40からリードデータを受けて、複数(4つ)のモジュール40へのレジスタアクセスを行っている。すなわち、4つのモジュール40にレジスタアクセスを同時にするに際して、それぞれのアクセスパスが必要になってくる。このため、LSI50のゲート規模は、所定の大きさ、換言すると各モジュールごとに要するレジスタI/Fとなるアクセスパスの占める容積の分だけ余分な大きさを必要とする。
それに対して、図7に示すレジスタアクセスのタイミング図では、CPU I/Fの動作周波数より、システム内部の動作周波数の方が高いので、各モジュール40に対して、同時にレジスタアクセスを行わずに、各モジュール40の1つずつシーケンシャルにレジスタアクセスを行っても、レスポンスの遅延は、殆ど増加しない。例えば、図7に示すような周波数比が4倍のケースの場合でも、レスポンスの遅延は、1サイクル増加しただけである。このように、図7に示すレジスタアクセスのタイミング図では、LSI内部のシステムバスの動作周波数がCPU I/Fの動作周波数より4倍高い場合を例にしているが、当該システムバスのリード信号(s)rdが1になってからリード確定信号(s)rd_rdy が1になるまでのシステムバスのリード遅延に依存するレスポンスタイムで示されるリードサイクルを見ると、4回シーケンシャルに実行されている。すなわち、システムバスとCPU I/Fバスの動作周波数が同一の場合は、並列アクセス回路を設けない限り、1つのマスタのみしかアクセスできないが、システムバスとCPU I/Fバスの動作周波数の差が4倍になると、並列アクセス回路を設けなくても、アクセスできるマスタの数が4倍に増やせるようになる。また、同様にして、周波数差が2倍なら2マスタ、8倍なら8マスタにアクセス可能となる。
このように、LSI50の内部システムバス30の動作周波数が外部CPU I/Fの動作周波数より高い場合は、図7に示すT1からT6までの5サイクルがレスポンスタイムとなり、図4に示す場合と比べて、レスポンスの遅延(増加量)が殆どない。すなわち、各モジュール40のレジスタへのアクセスは、並列しての読み出しでなく、シーケンシャルに読み出しても十分高速でアクセス可能なため、レジスタI/Fをモジュール40の数だけ持つ必要がなくなり、LSI50のゲート規模を必要最小限に止めることができる。すなわち、内部システムバス30の動作周波数が、CPU I/Fの動作周波数より高い場合に、各モジュール40のレジスタへシーケンシャルにアクセスを行っても、レスポンス遅延がなく、ゲート規模も増加しない効果が得られる。
以上説明したように、本実施の形態のレジスタアクセス方式では、CPU10からのレジスタアクセス命令を受けて、各モジュール40のレジスタへアクセスをするに際して、レジスタアクセス制御部20を介してレジスタアクセスを実行する。その際に、レジスタアクセス制御部20は、CPU10からのレジスタリード命令を受けると、モジュール40の同一レジスタにリード命令を発行し、読み出された値が最も一致するモジュール40の値をCPU10に返す。このため、CPU10は、全てのモジュール40のレジスタアクセスを行わずに、各モジュール40のレジスタの値を読み出すことができるので、レジスタリードに要する時間が削減され、システム全体のスループットが向上する。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
本発明の第1の実施形態のレジスタアクセス方式を取り入れた情報処理システムの概略基本構成図を示すブロック図である。 同実施の形態のレジスタアクセス方式を取り入れた情報処理システムに含まれるレジスタアクセス制御部の構成を示すブロック図である。 従来例におけるレジスタアクセス方式によるレジスタアクセスのタイミング図である。 同実施の形態のレジスタアクセス方式によるレジスタアクセスのタイミング図である。 同実施の形態のレジスタアクセス方式に含まれるレジスタアクセス制御部における比較処理の動作説明図である。 同実施の形態におけるレジスタアクセス方式によるレジスタリードの動作フロー図である。 同実施の形態のレジスタアクセス方式でCPU I/Fの動作周波数より、システム内部の動作周波数が高い場合でのレジスタアクセスのタイミング図である。
符号の説明
10 CPU
20 レジスタアクセス制御部
22 制御部
25 メモリ
26 比較部
30 システムバス
40 モジュール
50 LSI
100 情報処理システム

Claims (6)

  1. CPU( Central Processing Unit )がシステムバスを介して所定の機能を有する複数のモジュールと接続される情報処理システムでのレジスタアクセス方式であって、
    前記CPUと前記システムバスの間には、該CPUから前記モジュールのレジスタへのアクセスコマンドを受けてから前記モジュールへのレジスタアクセスを実行するレジスタアクセス制御部が備わり、
    前記レジスタアクセス制御部は、前記CPUからの前記アクセスコマンドとしてリードコマンドを受信すると、前記モジュールの所定のレジスタに前記リードコマンドを発行して行われるレジスタリードの際に読み出されたリードデータのうち、最頻出のリードデータを前記CPUに返信することを特徴とするレジスタアクセス方式。
  2. 前記レジスタリードの際に読み出された前記最頻出のリードデータを前記CPUに返信する際に、前記最頻出のリードデータが読み出されたモジュールに対応する識別子が付加されることを特徴とする請求項1に記載のレジスタアクセス方式。
  3. 前記CPUは、前記レジスタリードを実行するに際して、前記複数のモジュールのうち、所望のモジュールを選択して前記レジスタリードを実行することを特徴とする請求項1または2に記載のレジスタアクセス方式。
  4. 前記所望のモジュールは、同一の使用目的を有するモジュールであることを特徴とする請求項3に記載のレジスタアクセス方式。
  5. 前記レジスタリードの際に、前記CPUと前記レジスタアクセス制御部のインターフェースの動作周波数が前記システムバスの動作周波数と略同一の場合、前記複数のモジュールへのレジスタアクセスを同時に並行して実行することを特徴とする請求項1〜4の何れか1項に記載のレジスタアクセス方式。
  6. 前記レジスタリードの際に、前記システムバスの動作周波数の方が前記CPUと前記レジスタアクセス制御部のインターフェースの動作周波数より高い場合、前記複数のモジュールへのレジスタアクセスをシーケンシャルに実行することを特徴とする請求項1〜4の何れか1項に記載のレジスタアクセス方式。
JP2007006057A 2007-01-15 2007-01-15 レジスタアクセス方式 Pending JP2008171335A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007006057A JP2008171335A (ja) 2007-01-15 2007-01-15 レジスタアクセス方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007006057A JP2008171335A (ja) 2007-01-15 2007-01-15 レジスタアクセス方式

Publications (1)

Publication Number Publication Date
JP2008171335A true JP2008171335A (ja) 2008-07-24

Family

ID=39699349

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007006057A Pending JP2008171335A (ja) 2007-01-15 2007-01-15 レジスタアクセス方式

Country Status (1)

Country Link
JP (1) JP2008171335A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116680088A (zh) * 2023-08-03 2023-09-01 青岛本原微电子有限公司 一种针对多寄存器存储的多模块同时访问系统及访问方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116680088A (zh) * 2023-08-03 2023-09-01 青岛本原微电子有限公司 一种针对多寄存器存储的多模块同时访问系统及访问方法
CN116680088B (zh) * 2023-08-03 2023-10-13 青岛本原微电子有限公司 一种针对多寄存器存储的多模块同时访问系统及访问方法

Similar Documents

Publication Publication Date Title
US9026746B2 (en) Signal control device and signal control method
JP2006293927A (ja) ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi
CN114328350B (zh) 一种基于axi总线的通讯方法、装置以及介质
US20090138633A1 (en) Computer, external storage and method for processing data information in external storage
CN111383704B (zh) 一种存储器内建自测试电路和对存储器的测试方法
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
JP2005293596A (ja) データ要求のアービトレーション
US8117626B2 (en) Asynchronous remote procedure calling method and computer product in shared-memory multiprocessor
JP2008171335A (ja) レジスタアクセス方式
US20020004861A1 (en) DMA controller in which bus access ratio can be set
US20080209085A1 (en) Semiconductor device and dma transfer method
JP2004127305A (ja) メモリ制御装置
JP2005165592A (ja) データ転送装置
JP2006285872A (ja) マルチcpuシステム
US10025730B2 (en) Register device and method for software programming
US20080288967A1 (en) Procedure calling method, procedure calling program, and computer product
US20100138577A1 (en) Apparatus and method for writing bitwise data in system on chip
US20040019777A1 (en) Sharing data using a configuration register
JP2006024134A (ja) Dma転送装置及びdma転送方法
JPH1185673A (ja) 共有バスの制御方法とその装置
JP2008003786A (ja) 論理シミュレーション方法及びその装置
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
JP2000099391A (ja) プリンタ装置およびプリンタ制御方法、並びに記録媒体
JP2005339426A (ja) データ処理システム及び設定方法
CN117116323A (zh) 对单端口sram进行读写的方法、fifo模块、芯片