(57)【要約】【課題】集積回路において処理に必要な時間を確保しつつ、集積回路同士のバスにおけるデータ転送能力の向上を可能とすること。【解決手段】集積回路システム１であって、第一バス幅を有する第一データバスに接続されデータ送受信に第一時間を要する第一集積回路２０と、第一バス幅よりも広い第二バス幅の第二データバスに接続されデータ送受信に第一時間よりも長い第二時間を要する第二集積回路４０と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路３０とを備える。【選択図】図１
2011008489.tif 000002
【特許請求の範囲】
【請求項１】
第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムであって、
前記第一集積回路は、書き込みデータ、第一書き込み信号、書き込み先アドレスを出力し、
前記中継回路は、所定のｎ−1回分（ｎは２以上の整数）の出力に相当する前記書き込みデータを保持するとともに、前記ｎ−1回分の前記第一書き込み信号を遮断し、ｎ回目に前記第一集積回路から出力された前記第一書き込み信号から前記第二集積回路に対する第二書き込み信号を生成するとともに、保持していた前記ｎ−1回分の前記書き込みデータとｎ回目に前記第一集積回路から出力された前記書き込みデータとを前記第二集積回路へ出力し、
前記第二集積回路は、前記中継回路により生成された前記第二書き込み信号に応じて、前記第一集積回路によって最初に出力された書き込み先アドレスに、前記中継回路から出力された前記書き込みデータを書き込む、
ことを特徴とする集積回路システム。
【請求項２】
第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムであって、
前記第一集積回路は、第一読み出し信号、連続する受信すべき読み出しデータに第二データバスのアクセス一回分に相当するｍ回分（ｍは１以上の整数）を加えた読み出し元アドレスを出力し、前記中継回路から受信すべき読み出しデータに余分なデータを加えた全てを受信するとき前記余分なデータを除く前記受信すべき読み出しデータを取得し、
前記中継回路は、前記第一集積回路から所定のｍ回分の前記第一読み出し信号を受信するごとに、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｍ回分に相当するデータを取得して保持し、その後に前記第一集積回路へデータを出力し、
前記第二集積回路は、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力する、
ことを特徴とする集積回路システム。
【請求項３】
第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムであって、
前記第一集積回路は、第一読み出し信号、受信すべき読み出しデータの読み出し元アドレスを出力し、前記中継回路から受信すべきデータを取得し、
前記中継回路は、前記第一集積回路から前記第一読み出し信号を受信すると、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｎ回分（ｎは２以上の整数）に相当するデータを取得して第一データバスのビット幅に相当するデータを第一データバスに即時出力するとともに残るデータを保持し、その後n回の第一データバスからの前記第一読み出し信号に対し、第二データバスに対するアクセスを行う代わりに保持したデータを第一データバスのビット幅ずつ前記第一集積回路へ出力し、
前記第二集積回路は、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力する、
ことを特徴とする集積回路システム。
【請求項４】
第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備え、第一の読み出しモード又は第二の読み出しモードで動作する集積回路システムであって、
前記第一の読み出しモードで動作する場合、
前記第一集積回路は、第一読み出し信号、第一のデバイス制御信号、連続する受信すべき読み出しデータに第二データバスのアクセス一回分に相当するｍ回分（ｍは１以上の整数）を加えた読み出し元アドレスを出力し、前記中継回路から受信すべき読み出しデータに余分なデータを加えた全てを受信するとき前記余分なデータを除く前記受信すべき読み出しデータを取得し、
前記中継回路は、前記第一集積回路から前記第一のデバイス制御信号を受信すると、前記第一集積回路から所定のｍ回分の前記第一読み出し信号を受信するごとに、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｍ回分に相当するデータを取得して保持し、その後に前記第一集積回路へデータを出力し、
前記第二集積回路は、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力し、
前記第二の読み出しモードで動作する場合、
前記第一集積回路は、第一読み出し信号、第二のデバイス制御信号、受信すべき読み出しデータの読み出し元アドレスを出力し、前記中継回路から受信すべきデータを取得し、
前記中継回路は、前記第一集積回路から前記第二のデバイス制御信号を受信すると、前記第一集積回路から前記第一読み出し信号を受信すると、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｍ回分に相当するデータを取得して第一データバスのビット幅に相当するデータを第一データバスに即時出力するとともに残るデータを保持し、その後ｍ回の第一データバスからの前記第一読み出し信号に対し、第二データバスに対するアクセスを行う代わりに保持したデータを第一データバスのビット幅ずつ前記第一集積回路へ出力し、
前記第二集積回路は、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力する、
ことを特徴とする集積回路システム。
【請求項５】
前記中継回路は、第二データバスのアクセス一回分に相当するｍ回分のカウントを繰り返し行うサイクルカウンターを備え、ｍ回分のアクセスを連続して行うことができない場合に、前記サイクルカウンターを初期化することを特徴とする請求項２又は４に記載の集積回路システム。
【請求項６】
前記中継回路は、前記第一集積回路より前記第二デバイス制御信号を有効にして書き込み信号が発行されたときに、前記サイクルカウンターを初期化することを特徴とする、請求項５に記載の集積回路システム。
【請求項７】
前記第一集積回路を制御する演算回路をさらに備え、前記演算回路上で動作するソフトウェアがアプリケーション実行部、オペレーティングシステム実行部、ドライバー実行部に階層化されており、前記アプリケーション実行部のデータ読み出し要求に対して、前記オペレーティングシステム実行部を経由して要求を実行するドライバー制御部が、前記第一の読み出しモードと前記第二の読み出しモードとのいずれを用いるか選択することを特徴とする、請求項４に記載の集積回路システム。
【請求項８】
第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムにおけるデータ書き込み方法であって、
前記第一集積回路が、書き込みデータ、第一書き込み信号、書き込み先アドレスを出力するステップと、
前記中継回路が、所定のｎ−1回分（ｎは２以上の整数）の出力に相当する前記書き込みデータを保持するとともに、前記ｎ−1回分の前記第一書き込み信号を遮断し、ｎ回目に前記第一集積回路から出力された前記第一書き込み信号から前記第二集積回路に対する第二書き込み信号を生成するとともに、保持していた前記ｎ−1回分の前記書き込みデータとｎ回目に前記第一集積回路から出力された前記書き込みデータとを前記第二集積回路へ出力するステップと、
前記第二集積回路が、前記中継回路により生成された前記第二書き込み信号に応じて、前記第一集積回路によって最初に出力された書き込み先アドレスに、前記中継回路から出力された前記書き込みデータを書き込むステップと、
を備えるデータ書き込み方法。
【請求項９】
第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムにおけるデータ読み出し方法であって、
前記第一集積回路が、第一読み出し信号、連続する受信すべき読み出しデータに第二データバスのアクセス一回分に相当するｍ回分（ｍは１以上の整数）を加えた読み出し元アドレスを出力し、前記中継回路から受信すべき読み出しデータに余分なデータを加えた全てを受信するとき前記余分なデータを除く前記受信すべき読み出しデータを取得するステップと、
前記中継回路が、前記第一集積回路から所定のｍ回分の前記第一読み出し信号を受信するごとに、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｍ回分に相当するデータを取得して保持し、その後に前記第一集積回路へデータを出力するステップと、
前記第二集積回路が、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力するステップと、
を備えるデータ読み出し方法。
【請求項１０】
第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムにおけるデータ読み出し方法であって、
前記第一集積回路が、第一読み出し信号、受信すべき読み出しデータの読み出し元アドレスを出力し、前記中継回路から受信すべきデータを取得するステップと、
前記中継回路が、前記第一集積回路から前記第一読み出し信号を受信すると、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｎ回分（ｎは２以上の整数）に相当するデータを取得して第一データバスのビット幅に相当するデータを第一データバスに即時出力するとともに残るデータを保持し、その後n回の第一データバスからの前記第一読み出し信号に対し、第二データバスに対するアクセスを行う代わりに保持したデータを第一データバスのビット幅ずつ前記第一集積回路へ出力するステップと、
前記第二集積回路が、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力するステップと、
を備えるデータ読み出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、それぞれ異なるバス幅でデータを送受信する複数の集積回路と、異なるバス幅を中継するバス変換回路を備える集積回路システム、データ書き込み方法、データ読み出し方法に関する。
【背景技術】
【０００２】
集積回路同士をバスで接続する場合、必要に応じてバス変換回路や制御装置等がバス上に設けられる。例えば、同一バス上にノイマンプロセッサ及びハーバードプロセッサを接続して共通のメモリへアクセスすることを可能とするメモリ制御装置が提案されている（特許文献１参照）。
【０００３】
集積回路の一種として、演算回路、ＤＲＡＭ（Dynamic Random Access Memory）コントローラー、描画回路、周辺インタフェース制御回路などを統合したシステム統合型プロセッサ（ＳＯＣ：System-On-a-Chip）がある。ＳＯＣは、半導体の製造プロセス微細化に伴い多くの機能が一つのＩＣ（Integrated Circuit）パッケージに統合されて構成される。一方で、ＩＣの端子数は、大きさ、コスト、端子配置などの様々な量産性の制約を受けるため、柔軟に増加させることが難しい。そこで、ＳＯＣはシステムに必要とされる多くの機能をＩＣに統合することに主眼を置き、外部の集積回路とデータを送受信するためのバスは端子数を要するため、最小限の構成とされる傾向にある。
【０００４】
前記の理由により、汎用製品として販売されているＳＯＣには１６ビットデータバスを採用している物が多く、ＳＯＣの外部にコントローラーを接続する場合には、１６ビットデータバスのコントローラーを使用することになる。この場合、実際にはさらにバス幅の大きなコントローラー（例えば３２ビットデータバスのコントローラー）が汎用品として販売されているとしても、上述のようにＳＯＣの端子数を柔軟に増加させることができない。そのため、バス幅の大きなコントローラーを接続することによってデータ転送能力の向上を図ることはできなかった。したがって、従来はデータバスの一回のアクセスに要する時間を短縮することによって、データ転送能力を向上させていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−２５４７６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、リード処理（コントローラーからＳＯＣへ任意のデータを読み出す処理）やライト処理（ＳＯＣがコントローラーへ任意のデータを書き込む処理）では、コントローラーにおいて一定の時間を要する。そのため、コントローラーにおける処理時間を確保するために、バスのアクセスに要する時間を短縮できない場合があった。
【０００７】
上記事情に鑑み、本発明は、集積回路において処理に必要な時間を確保しつつ、集積回路同士のバスにおけるデータ転送能力の向上を可能とする集積回路システム、データ書き込み方法、データ読み出し方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様は、第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムであって、前記第一集積回路は、書き込みデータ、第一書き込み信号、書き込み先アドレスを出力し、前記中継回路は、所定のｎ−1回分（ｎは２以上の整数）の出力に相当する前記書き込みデータを保持するとともに、前記ｎ−1回分の前記第一書き込み信号を遮断し、ｎ回目に前記第一集積回路から出力された前記第一書き込み信号から前記第二集積回路に対する第二書き込み信号を生成するとともに、保持していた前記ｎ−1回分の前記書き込みデータとｎ回目に前記第一集積回路から出力された前記書き込みデータとを前記第二集積回路へ出力し、前記第二集積回路は、前記中継回路により生成された前記第二書き込み信号に応じて、前記第一集積回路によって最初に出力された書き込み先アドレスに、前記中継回路から出力された前記書き込みデータを書き込む、ことを特徴とする。
【０００９】
本発明の一態様は、第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムであって、前記第一集積回路は、第一読み出し信号、連続する受信すべき読み出しデータに第二データバスのアクセス一回分に相当するｍ回分（ｍは１以上の整数）を加えた読み出し元アドレスを出力し、前記中継回路から受信すべき読み出しデータに余分なデータを加えた全てを受信するとき前記余分なデータを除く前記受信すべき読み出しデータを取得し、前記中継回路は、前記第一集積回路から所定のｍ回分の前記第一読み出し信号を受信するごとに、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｍ回分に相当するデータを取得して保持し、その後に前記第一集積回路へデータを出力し、前記第二集積回路は、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力する、ことを特徴とする。
【００１０】
本発明の一態様は、第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムであって、前記第一集積回路は、第一読み出し信号、受信すべき読み出しデータの読み出し元アドレスを出力し、前記中継回路から受信すべきデータを取得し、前記中継回路は、前記第一集積回路から前記第一読み出し信号を受信すると、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｎ回分（ｎは２以上の整数）に相当するデータを取得して第一データバスのビット幅に相当するデータを第一データバスに即時出力するとともに残るデータを保持し、その後n回の第一データバスからの前記第一読み出し信号に対し、第二データバスに対するアクセスを行う代わりに保持したデータを第一データバスのビット幅ずつ前記第一集積回路へ出力し、前記第二集積回路は、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力する、ことを特徴とする。
【００１１】
本発明の一態様は、第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備え、第一の読み出しモード又は第二の読み出しモードで動作する集積回路システムであって、前記第一の読み出しモードで動作する場合、前記第一集積回路は、第一読み出し信号、第一のデバイス制御信号、連続する受信すべき読み出しデータに第二データバスのアクセス一回分に相当するｍ回分（ｍは１以上の整数）を加えた読み出し元アドレスを出力し、前記中継回路から受信すべき読み出しデータに余分なデータを加えた全てを受信するとき前記余分なデータを除く前記受信すべき読み出しデータを取得し、前記中継回路は、前記第一集積回路から前記第一のデバイス制御信号を受信すると、前記第一集積回路から所定のｍ回分の前記第一読み出し信号を受信するごとに、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｍ回分に相当するデータを取得して保持し、その後に前記第一集積回路へデータを出力し、前記第二集積回路は、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力し、前記第二の読み出しモードで動作する場合、前記第一集積回路は、第一読み出し信号、第二のデバイス制御信号、受信すべき読み出しデータの読み出し元アドレスを出力し、前記中継回路から受信すべきデータを取得し、前記中継回路は、前記第一集積回路から前記第二のデバイス制御信号を受信すると、前記第一集積回路から前記第一読み出し信号を受信すると、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｍ回分に相当するデータを取得して第一データバスのビット幅に相当するデータを第一データバスに即時出力するとともに残るデータを保持し、その後ｍ回の第一データバスからの前記第一読み出し信号に対し、第二データバスに対するアクセスを行う代わりに保持したデータを第一データバスのビット幅ずつ前記第一集積回路へ出力し、前記第二集積回路は、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力する、ことを特徴とする。
【００１２】
本発明の一態様は、上記の集積回路システムにおいて、前記中継回路は、第二データバスのアクセス一回分に相当するｍ回分のカウントを繰り返し行うサイクルカウンターを備え、ｍ回分のアクセスを連続して行うことができない場合に、前記サイクルカウンターを初期化することを特徴とする。
【００１３】
本発明の一態様は、上記の集積回路システムにおいて、前記中継回路は、前記第一集積回路より前記第二デバイス制御信号を有効にして書き込み信号が発行されたときに、前記サイクルカウンターを初期化することを特徴とする。
【００１４】
本発明の一態様は、上記の集積回路システムにおいて、前記第一集積回路を制御する演算回路をさらに備え、前記演算回路上で動作するソフトウェアがアプリケーション実行部、オペレーティングシステム実行部、ドライバー実行部に階層化されており、前記アプリケーション実行部のデータ読み出し要求に対して、前記オペレーティングシステム実行部を経由して要求を実行するドライバー制御部が、前記第一の読み出しモードと前記第二の読み出しモードとのいずれを用いるか選択することを特徴とする。
【００１５】
本発明の一態様は、第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムにおけるデータ書き込み方法であって、前記第一集積回路が、書き込みデータ、第一書き込み信号、書き込み先アドレスを出力するステップと、前記中継回路が、所定のｎ−1回分（ｎは２以上の整数）の出力に相当する前記書き込みデータを保持するとともに、前記ｎ−1回分の前記第一書き込み信号を遮断し、ｎ回目に前記第一集積回路から出力された前記第一書き込み信号から前記第二集積回路に対する第二書き込み信号を生成するとともに、保持していた前記ｎ−1回分の前記書き込みデータとｎ回目に前記第一集積回路から出力された前記書き込みデータとを前記第二集積回路へ出力するステップと、前記第二集積回路が、前記中継回路により生成された前記第二書き込み信号に応じて、前記第一集積回路によって最初に出力された書き込み先アドレスに、前記中継回路から出力された前記書き込みデータを書き込むステップと、を備える。
【００１６】
本発明の一態様は、第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムにおけるデータ読み出し方法であって、前記第一集積回路が、第一読み出し信号、連続する受信すべき読み出しデータに第二データバスのアクセス一回分に相当するｍ回分（ｍは１以上の整数）を加えた読み出し元アドレスを出力し、前記中継回路から受信すべき読み出しデータに余分なデータを加えた全てを受信するとき前記余分なデータを除く前記受信すべき読み出しデータを取得するステップと、前記中継回路が、前記第一集積回路から所定のｍ回分の前記第一読み出し信号を受信するごとに、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｍ回分に相当するデータを取得して保持し、その後に前記第一集積回路へデータを出力するステップと、前記第二集積回路が、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力するステップと、を備える。
【００１７】
本発明の一態様は、第一バス幅を有する第一データバスに接続され一回あたりのデータ送受信に第一時間を要する第一集積回路と、前記第一バス幅よりもビット幅の大きい第二バス幅の第二データバスに接続され一回あたりのデータ送受信に第一時間よりも長い第二時間を要する第二集積回路と、第一データバス及び第二データバスに接続されそれぞれのバスを介して第一集積回路及び第二集積回路とデータを送受信する中継回路と、を備える集積回路システムにおけるデータ読み出し方法であって、前記第一集積回路が、第一読み出し信号、受信すべき読み出しデータの読み出し元アドレスを出力し、前記中継回路から受信すべきデータを取得するステップと、前記中継回路が、前記第一集積回路から前記第一読み出し信号を受信すると、最初の前記第一読み出し信号が受信されたときのみ前記第二集積回路へ第二読み出し信号を出力し、前記第二集積回路から第二データバスのアクセス一回で受信される第一データバスのアクセスｎ回分（ｎは２以上の整数）に相当するデータを取得して第一データバスのビット幅に相当するデータを第一データバスに即時出力するとともに残るデータを保持し、その後n回の第一データバスからの前記第一読み出し信号に対し、第二データバスに対するアクセスを行う代わりに保持したデータを第一データバスのビット幅ずつ前記第一集積回路へ出力するステップと、前記第二集積回路が、前記中継回路から出力される前記第二読み出し信号に応じて、前記第一集積回路によって最初に指定された読み出し元アドレスからデータを前記中継回路へ出力するステップと、を備える。
【００１８】
本発明により、第一の集積回路は、第二の集積回路よりもビット幅の小さいバスを有しながら、第二の集積回路のビット幅に相当するデータ転送を行うことが可能となる。そのため、集積回路において処理に必要な時間を確保しつつ、集積回路同士のバスにおけるデータ転送能力を向上させることが可能となる。
【図面の簡単な説明】
【００１９】
【図１】集積回路システムのシステム構成を表す概略ブロック図である。
【図２】演算回路の機能構成を表す概略ブロック図である。
【図３】バス変換回路の機能構成を表す概略ブロック図である。
【図４】ＳＯＣがコントローラーへデータを書き込む際の各信号の変化を表すタイミングチャートである。
【図５】ＳＯＣがコントローラーへデータを書き込む際の各装置の動作を表すシーケンス図である。
【図６】ＳＯＣがコントローラーからデータを高速リード処理によって読み出す際の各信号の変化を表すタイミングチャートである。
【図７】ＳＯＣがコントローラーからデータを高速リード処理によって読み出す際の各装置の動作を表すシーケンス図である。
【図８】ＳＯＣがコントローラーからデータを即時リード処理によって読み出す際の各信号の変化を表すタイミングチャートである。
【図９】ＳＯＣがコントローラーからデータを即時リード処理によって読み出す際の各装置の動作を表すシーケンス図である。
【発明を実施するための形態】
【００２０】
図１は、集積回路システム１００のシステム構成を表す概略ブロック図である。集積回路システム１００は、ＤＲＡＭ１０、ＳＯＣ（システム統合型プロセッサ：System-On-a-Chip）２０、バス変換回路（以下、「ＣＶ」とも表記する）３０、コントローラー（以下、「ＣＯＮ」とも表記する）４０を備える。ＤＲＡＭ１０は、集積回路によって構成される記憶装置であり、ＳＯＣ２０によってデータを読み書きされる。コントローラー４０は、集積回路によって構成され、バス変換回路３０を介してＳＯＣ２０によってデータを読み書きされる。
【００２１】
ＳＯＣ２０とバス変換回路３０とは第一データバスによって接続され、バス変換回路３０とコントローラー４０とは第二データバスによって接続される。第二データバスは第一データバスよりもビット幅が大きい。以下の説明では、第一データバスのバス幅が１６ビット（ｂｉｔ）であり第二データバスのバス幅が３２ビットである場合について説明する。
【００２２】
また、バス変換回路３０は、ＳＯＣ２０が出力するアドレス信号のうち、値が変化する最も低い桁から、第二データバスと第一データバスとのバス幅の比に応じた分の桁数の信号を変換処理に使用する。ここでアドレス信号とは、ＳＯＣ２０がコントローラー４０から読み出すデータが記憶された記憶領域又はＳＯＣ２０がコントローラー４０にデータを書き込む際の書き込み先の記憶領域を識別するための信号である。具体的には、バス変換回路３０は、底を“２”とする比の対数分の桁数の信号を使用する。例えば、第二データバスのバス幅が３２ビットであり第一データバスのバス幅が１６ビットである場合、バス幅の比の値が“２”となるため、底を“２”とする比“２”の対数は“１”となる。そのため、この場合、バス変換回路３０は値が変化する最も低い１桁分の信号を使用する。アドレス信号の単位を１バイト（８ビット）とし、ＳＯＣ２０から外部出力されるアドレス信号の内、コントローラー４０の制御に必要とされるＮ＋１桁のアドレス信号をＡ［Ｎ：０］で表すとすると、第一データバスのビット幅は１６ビットであるため、Ａ［０］の値は常に“０”であり変化しないため、バス変換回路３０はＡ［１］の信号を使用する。また、前記第二データバスのアクセス一回分に相当する第一データバスのアクセス回数ｎ（ｎは２以上の整数）は前記バス幅の比に等しい。
【００２３】
また、コントローラー４０は、３２ビット幅のデータバスでアクセスされる場合には、
３２ビットよりも小さな単位を示すためのＡ［１］およびＡ［０］は常に”０”でなければならないため、ＳＯＣ２０の出力ではなく、回路基板の基準電位（ＧＲＯＵＮＤ）に接続されている。このとき、Ａ［１］およびＡ［０］の値は常に”０”が入力されているものとして動作する。
【００２４】
ＳＯＣ２０は、内部バスによって互いに接続された演算回路２０１、描画回路２０２、ＤＲＡＭ制御回路２０３、メモリーバス制御回路２０４を備える。演算回路２０１はＣＰＵ（Central Processing Unit）およびデータ一時記憶用のキャッシュメモリーで構成され、プログラムを実行することによりデータの移動や加工を行う。
【００２５】
図２は、演算回路２０１上で動作するソフトウェアの階層図である。図示されるように、演算回路２０１上で動作するソフトウェアはハードウェアが抽象化され、機能を具体化するアプリケーション実行部２０１１、システム上にある複数のハードウェアおよび複数のアプリケーションの動作の調停を図るＯＳ実行部２０１２、ハードウェアを直接制御し、データの読み書きおよび動作を制御するドライバー実行部２０１３の３つに階層化されている。各階層はソフトウェアのモジュールとして演算回路２０１上で時分割に演算器を割り当てられて並行動作しており、階層間は演算回路２０１内部のレジスターあるいはＤＲＡＭ１０上に配置された変数およびデータを介して制御を受け渡している。
【００２６】
アプリケーション実行部２０１１は、システムの機能を具体化する層である。直接ハードウェアにアクセスを行うのではなく、ファイルをオープンして読み書きを行う、映像や音声を出力する等のハードウェアに関わる要求が生じた場合には、ＯＳ実行部２０１２にデータを入出力する要求を発行することで操作を行い、ハードウェアの構造については関知しない。
【００２７】
ＯＳ実行部２０１２は、システム上にあるハードウェアおよびソフトウェアの管理を行う。ハードウェアの動作状況やＤＲＡＭ１０の記憶容量、アプリケーションに割り当てる演算時間を調停する。ＯＳ実行部２０１２は、アプリケーション実行部２０１１からデータを入出力する要求を受けると、その依頼がハードウェアの制御を伴う動作である場合には、該当するハードウェアを制御しているドライバー実行部２０１３に処理を引き渡す。
【００２８】
ドライバー実行部２０１３は、コントローラー４０に対する制御を担当する。ＯＳ実行部２０１２からデータの入出力の要求を受けると、実体のデータが存在するアドレスを算出し、データを入出力するために必要な制御をメモリーバス制御回路２０４を操作してコントローラー４０の制御回路に指示する。データ書込みの場合には、ＤＲＡＭ１０上にあるデータをコントローラー４０に書き込み、データ読み込みの場合にはコントローラー４０からデータを読み出してＤＲＡＭ１０に書き込む。
【００２９】
図１に戻ってＳＯＣ２０の説明を続ける。描画回路２０２は、画像データに基づいて映像信号を生成し、ＳＯＣ２０を備える画像表示装置の表示機器に出力する。例えば、ＳＯＣ２０がプロジェクターに備えられている場合には、描画回路２０２は、液晶表示部や発光部を備える画像投影部に対して映像信号を出力する。
【００３０】
ＤＲＡＭ制御回路２０３は、ＳＯＣ２０がＤＲＡＭ１０に対してデータを読み書きする際に各種信号を生成してＤＲＡＭ１０の動作を制御する。メモリーバス制御回路２０４は、ＳＯＣ２０がコントローラー４０に対してデータを読み書きする際に、ドライバー実行部２０１３による要求に応じてアドレス信号、ライト信号、リード信号、第一デバイス選択信号、第二デバイス選択信号を生成し、各信号線から出力する。また、メモリーバス制御回路２０４は、第一データバスを介してバス変換回路３０とデータの送受信を行う。
【００３１】
図３は、バス変換回路３０の機能構成を表す概略ブロック図である。バス変換回路３０は、動作判別部３０１、サイクルカウンター３０２、第一データバス制御部３０３、ライト用一時記憶部３０６、即時リード用一時記憶部３０７、第一高速リード用一時記憶部３０８、第二高速リード用一時記憶部３０９、第二データバス制御部３１０を備える。第一データバス制御部３０３は、第一サイクル制御部３０４及び第二サイクル制御部３０５を備える。
【００３２】
図４は、ＳＯＣ２０がコントローラー４０へデータを書き込む際の各信号の変化を表すタイミングチャートである。図４において、タイミングチャート中に記載された文字（例えば“０ｘ００００”）は、アドレス信号の内容を表す。一段目に記載の信号は、ＳＯＣ２０からバス変換回路（ＣＶ）３０へ出力されるライト信号を表す。二段目に記載の信号は、ＳＯＣ２０からバス変換回路３０へ出力されるライトデータを表す。ライトデータとは、ＳＯＣ２０がコントローラー４０へ書き込むデータである。三段目に記載の信号は、ライト用一時記憶部３０６に記憶されるライトデータを表す。四段目に記載の信号は、バス変換回路３０からコントローラー４０へ出力されるライト信号を表す。五段目に記載の信号は、バス変換回路３０からコントローラー４０へ出力されるライトデータを表す。
【００３３】
図５は、ＳＯＣ２０がコントローラー４０へデータを書き込む際の各装置の動作を表すシーケンス図である。以下、図４、５を用いて、ＳＯＣ２０がコントローラー４０へデータを書き込む際の各装置の動作について説明する。まず、ＳＯＣ２０のメモリーバス制御回路２０４が、データの書き込み先を表すアドレス信号Ａ［Ｎ：０］、デバイス選択信号、ライト信号をバス変換回路３０及びコントローラー４０へ出力し、ライトデータを第一データバスに１６ビットずつ出力する（ステップＳ１０１）。
【００３４】
バス変換回路３０は、動作クロックを有しておらず、第一データバスを介してライト信号を受信することに応じて非同期で以下の処理を行う。第一データバス制御部３０３がライト信号を受信し、且つ、動作判別部３０１によって受信されたアドレス信号Ａ［１］が“０”である場合には（ステップＳ２０１−ＹＥＳ：例えば図４の“０ｘ００００”の場合）、第一データバスを介して受信されるライトデータをライト用一時記憶部３０６がバッファリングする（ステップＳ２０２）。このとき、バス変換回路３０内部の第二データバス制御部３１０は、第二データバスに対してライト信号を発行しない（ステップＳ２０３）。
【００３５】
一方、第一データバス制御部３０３がライト信号を受信し、且つ、動作判別部３０１によって受信されたアドレス信号Ａ［１］が“１”である場合には（ステップＳ２０１−ＮＯ：例えば図４の“０ｘ００１０”の場合）、第二データバス制御部３１０が、ライト用一時記憶部３０６にバッファリングされているライトデータを下位１６ビットとして出力し（ステップＳ２０４）、新たに第一データバスを介して受信されたライトデータを上位１６ビットとして第二データバスへスルーする（ステップＳ２０５）。この場合、第二データバス制御部３１０は、第二データバスに対してデバイス選択信号及びライト信号を発行する（ステップＳ２０６）。
【００３６】
前記第二データバスに対してライト信号を発行するかどうかの判別には、前記アドレス信号Ａ［１］を判別する方法だけではなく、第一データバスの書き込みサイクルが一回目であるかニ回目であるかを第一データバス制御部３０３内部で判別し、第一サイクルである場合にはライト信号を発行せず、第二サイクルであればライト信号を発行するように構成してもよい。
【００３７】
コントローラー４０は、ステップＳ２０５において出力されたライト信号を受信すると、ステップＳ１０１においてＳＯＣ２０から出力されたアドレス信号Ａ［Ｎ：２］の下２桁に“００”を加えたアドレスに、ステップＳ２０４において出力された３２ビットのライトデータを書き込む（ステップＳ３０１）。
【００３８】
このように動作することにより、規定のバス幅が１６ビットであるＳＯＣ２０が、バス幅が２倍の３２ビットであるコントローラー４０に対して３２ビットデータを書き込むことが可能となる。ＳＯＣ２０が１６ビットのデータを２回送るのに要する時間で、コントローラー４０が３２ビットのデータを１回受け取ることになるため、コントローラー４０において書き込み処理に必要となる時間を確保しつつ、ＳＯＣ２０がコントローラー４０に対してライトデータを書き込む処理のデータ転送を高速化することが可能となる。言い換えれば、２回必要となるはずのコントローラー４０のデータ書き込み処理に要する時間がバス変換回路３０により１回のみとなるため、ＳＯＣ２０は３２ビットデータの書きこみに要する時間を約半分に短縮することが可能となる。
【００３９】
図６は、ＳＯＣ２０がコントローラー４０からデータを高速リード処理によって読み出す際の各信号の変化を表すタイミングチャートである。ＳＯＣ２０は、高速リード処理によってデータを読み出す場合には、第二デバイス選択信号を有効とし、リード信号を出力する。
【００４０】
１段目のリード信号は、ＳＯＣ２０からバス変換回路（ＣＶ）３０へ出力されるリード信号を表し、タイミングチャート中に記載された文字（例えば“０ｘ００００”）は、アドレス信号の内容を表す。２段目のリード信号は、バス変換回路３０からコントローラー４０へ出力されるリード信号を表す。３段目のデータ信号は、コントローラー４０からバス変換回路３０に出力される３２ビットのリードデータを表す。リードデータとは、ＳＯＣ２０がコントローラー４０から読み出すデータである。
【００４１】
９段目の第一高速リード用一時記憶２−１は、第一高速リード用一時記憶部３０８に記憶（バッファリング）される３２ビットのリードデータを表す。なお、図６では便宜のため、場合によってこのリードデータを符号“２−１”で表すことがある。１０段目の第二高速リード用一時記憶２−２は、第二高速リード用一時記憶部３０９に記憶される３２ビットのリードデータを表す。なお、図６では便宜のため、場合によってこのリードデータを符号“２−２”で表すことがある。１１段目の第一・第二高速リード用一時記憶２−１、２−２の合成信号は、バス変換回路３０から第一データバスに出力されＳＯＣ２０によってＤＲＡＭ１０に書き込まれる１６ビットのリードデータを表す。
【００４２】
図７は、ＳＯＣ２０がコントローラー４０からデータを高速リード処理によって読み出す際の各装置の動作を表すシーケンス図である。以下、図３、６、７を用いて、ＳＯＣ２０がコントローラー４０から高速リード処理によってデータを読み出す際の各装置の動作について説明する。
【００４３】
前記ドライバー実行部２０１３はコントローラー４０の送り元アドレスＳＲＣから転送データサイズＳＩＺＥ分の連続データをＤＲＡＭ１０の送り先アドレスＤＳＴから転送データサイズＳＩＺＥの連続領域に読み出しを行うものとする。転送データサイズＳＩＺＥの単位は前記バイトであるので、３２ビット転送であればＬ＝ＳＩＺＥ／４（回）の転送が行われる。このとき、余りがある場合には、Ｌ＝ＳＩＺＥ／４＋１（回）の転送が行われる。ここで、ステップＳ１１１をＬ回、実行する。
【００４４】
前記ドライバー実行部２０１３は、はじめに即時リードでアドレスＳＲＣ番地のデータを読み出しておき、演算回路２０１の一次記憶レジスターに退避する。３２ビットで次の番地はＳＲＣ＋４になるので、次に前記ドライバー実行部２０１３は、ＳＲＣ＋４番地から高速リードを行い、読み出した値を送り先アドレスＤＳＴ番地に書きこむ。高速リードでは、読み出される値が１回の３２ビットアクセスずつ遅れるので、このときに読み出される値はＳＲＣ＋４番地に格納されていた値ではなく、不定なデータになる。
【００４５】
続けて前記ドライバー実行部２０１３は、ＳＲＣ＋８番地から高速リードを行い、読み出した値をＤＳＴ＋４番地に書き込む。すると、高速リードでは、読み出される値が１回の３２ビットアクセスずつ遅れるので、このときに読み出される値はＳＲＣ＋８番地に格納されていた値ではなく、ＳＲＣ＋４番地に格納されていた値となる。このため、本来期待するＳＲＣ＋４番地に格納されていた値をＤＳＴ＋４番地に転送する処理が行われる。この処理をＬ回繰り返すと、ＤＲＡＭ１０の送り先アドレスＤＳＴから転送データサイズＳＩＺＥの連続領域には、先頭のＤＳＴ番地を除いて正しいデータが書き込まれる。
【００４６】
最後に、演算回路２０１の一次記憶レジスターに退避しておいた、ＳＲＣ番地のデータをＤＳＴ番地に書き込むと、ＤＲＡＭ１０の送り先アドレスＤＳＴから転送データサイズＳＩＺＥの連続領域には、送り元アドレスＳＲＣから転送データサイズＳＩＺＥ分の連続データが転送されたことになる。
【００４７】
ＳＯＣ２０のメモリーバス制御回路２０４は、上記前記ドライバー実行部２０１３が発行する読み出し処理に応じて、データの読み出し元を表すアドレス信号Ａ［Ｎ：０］、リード信号、第二デバイス選択信号をバス変換回路３０及びコントローラー４０へ出力する。
バス変換回路３０は、動作クロックを有しておらず、第一データバスを介してリード信号を受信することに応じて非同期で以下の処理を行う。第一データバス制御部３０３がリード信号及び第二デバイス選択信号を受信し、サイクルカウンター３０２の値が“０１”である場合には（ステップＳ２１１−ＹＥＳ）、第二データバス制御部３１０はコントローラー４０へデバイス選択信号及びリード信号を出力する（ステップＳ２１３およびＳ２１９）。コントローラー４０はステップＳ２１３およびＳ２１９においてバス変換回路３０から出力されたリード信号を受信すると、ステップＳ１１１においてＳＯＣ２０から出力されたアドレス信号Ａ［２：Ｎ］の下２桁に“００”を加えたアドレスから３２ビットのリードデータを読み出し、第二データバスに出力する（ステップＳ３１１およびＳ３１２）。
【００４８】
サイクルカウンター３０２は、図６の１３および１４の２つのデータ出力順序制御カウンタ信号により構成され、リード信号の上りエッジ（”０”から”１”への変化のタイミング）で、図６の５、７、８の各信号の状態の組み合わせにより”００”、”０１”、”１０”、”１１”の順に変化を繰り返す信号である（図７のＳ２２２）。リード初期化が行われたときのみ、強制的に”００”に変化する。
【００４９】
第一データバス制御部３０３は、高速リードの読み出しに対し、サイクルカウンターが”０１”であれば第一高速リード用一時記憶部３０８（図６の２−１）の下位１６ビット（図７のＳ２１１、Ｓ２１２の条件が成立）、”１０”であれば第一高速リード用一時記憶部３０８（図６の２−１）の上位１６ビット（図７のＳ２１５、Ｓ２１６の条件が成立）、”１１”であれば第二高速リード用一時記憶部３０９（図６の２−２）の下位１６ビット（図７のＳ２１７、Ｓ２１８の条件が成立）、”００”であれば第二高速リード用一時記憶部３０９（図６の２−２）の上位１６ビット（図７のＳ２２１の条件が成立）を出力する。
【００５０】
第二データバス制御部３１０は、リード信号の下りエッジ（”１”から”０”への変化のタイミング）で、図６の６．上りエッジトリガ信号が”１”である場合に第二データバスの状態を取得し、図６の８．上りエッジサイクル判別信号が”１”である場合には第一高速リード用一時記憶部３０８（図６の２−１）に３２ビットデータを格納し（図７のＳ２１４）、”０”である場合には第一高速リード用一時記憶部３０８（図６の２−１）に３２ビットデータを格納する（図７のＳ２２０）。
【００５１】
上記第一データバス制御部３０３の一次記憶部からのデータ出力の動作と、上記第二データバス制御部３１０の一次記憶部へのデータ格納の動作は、独立して行われる。しかしながら、リード信号の上り・下りのエッジをトリガとして動作するため、第一高速リード用一時記憶部３０８（図６の２−１）にデータが格納されている間は第二高速リード用一時記憶部３０９（図６の２−２）からデータが出力され、第二高速リード用一時記憶部３０９（図６の２−２）にデータが格納されている間は第一高速リード用一時記憶部３０８（図６の２−１）からデータが出力されるように、両者は交互に動作する。この結果、格納されたデータが、常に第二データバスの１アクセス分遅延して第一データバスに出力されることになる。
【００５２】
図６からも明らかなように、高速リード処理では、あるリード信号が出力されてから次のリード信号が出力されるまでの間の時間が、リード信号に対応してコントローラー４０がリードデータを出力するのに要する時間よりも短いため、ＳＯＣ２０が最初にリード信号を出力したタイミングではコントローラー４０から正しいリードデータを受信することができない。そのため、このタイミングでＳＯＣ２０がバス変換回路３０から受信するデータは、受信されるべきリードデータではなく、その時点に置いて、バス変換回路３０の第一高速リード用一時記憶部３０８あるいは第二高速リード用一時記憶部３０９が格納していたデータである。そのため、ドライバー実行部２０１３は、最初に読み出された３２ビット分データを不定値として前記退避しておいた値に置き変えることによって、本来のリードデータを形成する。
【００５３】
このように動作することにより、規定のバス幅が１６ビットであるＳＯＣ２０が、バス幅が２倍の３２ビットであるコントローラー４０からリードデータを読み出すことが可能となる。ＳＯＣ２０が１６ビットのデータを２回受けるのに要する時間をかけて、コントローラー４０に対して３２ビットのデータを１回読み込むことができればよいため、コントローラー４０において読み出し処理に必要となる時間を確保しつつ、ＳＯＣ２０がコントローラー４０からリードデータを読み出す処理のデータ転送を高速化することが可能となる。言い換えれば、２回必要となるはずのコントローラー４０のデータ読み出し処理に要する時間がバス変換回路３０により１回のみとなるため、ＳＯＣ２０は３２ビットデータの書きこみに要する時間を約半分に短縮することが可能となる。
【００５４】
バス変換回路３０は、ＳＯＣ２０が第二データバスのアクセス一回分に相当するｎ回分のアクセスを連続して行うことができない事態に陥った場合に、次のアクセスを待つ状態が継続することにより、正しくデータを送ることができない状態が継続することを回避する機構を有するように構成してもよい。例えば、読み出しには即時リードと高速リードを区別するために第一デバイス選択信号、第二デバイス選択信号を用いるが、書込みは単一のデバイス選択信号でよいため、ＳＯＣ２０が第二デバイス制御信号を有効にして書きこみを行った場合に、図６の１２．データ出力順序制御カウンタのクリア信号のように、バス変換回路３０がサイクルカウンターを強制的に”００”に初期化する信号を生成するように構成してもよい。
【００５５】
図８は、ＳＯＣ２０がコントローラー４０からデータを即時リード処理によって読み出す際の各信号の変化を表すタイミングチャートである。図８において、タイミングチャート中に記載された文字（例えば“０ｘ００００”）は、アドレス信号の内容を表す。一段目に記載の信号は、ＳＯＣ２０からバス変換回路（ＣＶ）３０へ出力されるリード信号を表す。二段目に記載の信号は、バス変換回路３０からコントローラー４０へ出力されるリード信号を表す。三段目に記載の信号は、コントローラー４０からバス変換回路３０へ出力されるリードデータを表す。四段目に記載の信号は、即時リード用一時記憶部３０７に記憶される１６ビット分のリードデータを表す。五段目に記載の信号は、バス変換回路３０からＳＯＣ２０へ出力されるリードデータを表す。
【００５６】
図９は、ＳＯＣ２０がコントローラー４０からデータを即時リード処理によって読み出す際の各装置の動作を表すシーケンス図である。以下、図８、９を用いて、ＳＯＣ２０がコントローラー４０から即時リード処理によってデータを読み出す際の各装置の動作について説明する。
【００５７】
まず、ＳＯＣ２０のメモリーバス制御回路２０４が、データの読み出し元を表すアドレス信号Ａ［Ｎ：０］、リード信号、デバイス選択信号をバス変換回路３０及びコントローラー４０へ出力する（ステップＳ１３１）。
【００５８】
バス変換回路３０は、動作クロックを有しておらず、第一データバスを介してリード信号を受信することに応じて非同期で以下の処理を行う。第一データバス制御部３０３がリード信号及びデバイス選択信号“０”を受信し、アドレス信号Ａ［１］の値が“０”である場合には（ステップＳ２３１−ＹＥＳ）、第二データバス制御部３１０はリード信号を生成しコントローラー４０へ出力する（ステップＳ２３２）。コントローラー４０はステップＳ２３２においてバス変換回路３０を通過したリード信号を受信すると、ステップＳ１３１においてＳＯＣ２０から出力されたアドレス信号Ａ［２：Ｎ］の下２桁に“００”を加えたアドレスから３２ビットのリードデータを読み出し、第二データバスに出力する（ステップＳ３３１）。
【００５９】
第二データバス制御部３１０及び第一データバス制御部３０３は、第二データバスから３２ビットのリードデータを受信すると、リードデータの下位１６ビット分を第一データバスへ通過させる（ステップＳ２３３）。このとき、第二データバス制御部３１０は、３２ビットのリードデータの上位１６ビット分を即時リード用一時記憶部３０７に格納する（ステップＳ２３４）。
【００６０】
第一データバス制御部３０３がリード信号及びデバイス選択信号“０”を受信し、アドレス信号Ａ［１］の値が“１”である場合には（ステップＳ２３１−ＮＯ）、第二データバス制御部３１０はリード信号を生成しない（ステップＳ２３５）。また、第一データバス制御部３０３は、即時リード用一時記憶部３０７に格納された１６ビットのリードデータを第一データバスへ出力する（ステップＳ２３６）。
【００６１】
前記第一データバスに対する出力データの切り替えの判別には、前記アドレス信号Ａ［１］を判別する方法だけではなく、第一データバスの書き込みサイクルが一回目であるかニ回目であるかを第一データバス制御部３０３内部で判別し、第一サイクルである場合には第二データバスの下位１６ビットを通過させ、第二サイクルであれば即時リード用一時記憶部３０７に格納されたデータを出力するように構成してもよい。
【００６２】
このように動作することにより、規定のバス幅が１６ビットであるＳＯＣ２０が、バス幅が２倍の３２ビットであるコントローラー４０からリードデータを読み出すことが可能となる。即時リード処理では、ＳＯＣ２０がリード信号を出力してからコントローラー４０がリードデータを出力するまでの時間を待たなければならないため、高速リード処理のように高速化される効果はない。その代わりに、ＳＯＣ２０は第二データバスの３２ビット１回分のアクセス時間で正しいデータを取得することができる。そのため、ＳＯＣ２０が受信すべきデータが、例えば３２ビット程度の短いリードデータである場合には、高速リード処理よりも即時リード処理が有効となる。このため、ドライバー実行部２０１３は、ＯＳ実行部２０１２から要求されたデータの大きさに応じて、高速リード処理を実行すべきか即時リード処理を実行すべきか判断し、判断結果に応じてデバイス選択信号の値を決定する。
【００６３】
ＳＯＣ２０が第二データバスの３２ビット読み出し１回分に相当するｎ回の読み出しを行う場合に、最初の読み出し時間に比べ、以降の読み出し時間を短く制御することができる場合には、コントローラー４０がリードデータを出力するまでの時間を待たなくてもよいため、読み出しにかかる総時間を短縮することができる。
【符号の説明】
【００６４】
１…集積回路システム，  １０…ＤＲＡＭ，  ２０…ＳＯＣ（第一集積回路），  ２０１…演算回路，  ２０２…描画回路，  ２０３…ＤＲＡＭ制御回路，  ２０４…メモリーバス制御回路，  ３０…バス変換回路（中継回路），  ３０１…動作判別部，  ３０２…サイクルカウンター，  ３０３…第一データバス制御部，  ３０４…第一サイクル制御部，  ３０５…第二サイクル制御部，  ３０６…ライト用一時記憶部，  ３０７…即時リード用一時記憶部，  ３０８…第一高速リード用一時記憶部，  ３０９…第二高速リード用一時記憶部，  ３１０…第二データバス制御部，  ４０…コントローラー（第二集積回路）
【図１】
2011008489.tif 000003
【図２】
2011008489.tif 000004
【図３】
2011008489.tif 000005
【図４】
2011008489.tif 000006
【図５】
2011008489.tif 000007
【図６】
2011008489.tif 000008
【図７】
2011008489.tif 000009
【図８】
2011008489.tif 000010
【図９】
2011008489.tif 000011