(57)【要約】【課題】内部プロセッサ、メインメモリ用のメモリＩ／Ｆ、外部プロセッサを有するデバイス用の外部Ｉ／Ｆ、及びレジスタを備えた半導体集積回路において、内部プロセッサからレジスタ制御を行った場合と外部プロセッサからレジスタ制御を行った場合との応答性能差異を少なくすると共に、外部プロセッサからメインメモリへのアクセス制御を行う場合の応答性能を向上させる。【解決手段】半導体集積回路（ＳｏＣ１ｃで例示）は、プロセッサ１１及びメモリコントローラ１５がバス接続された第１の内部バス（バス１０で例示）とレジスタ３１がバス接続された第２の内部バス（バス３０で例示）とを含む複数の内部バスを備える。外部Ｉ／Ｆ１６は、第１の内部バスと第２の内部バスとの間に多重バス接続され、メインメモリにメモリコントローラ１５を介してアクセスする場合とレジスタ３１にアクセスする場合とで、利用する内部バスを切り替える。【選択図】図８
2012177966.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ、メインメモリ用のメモリＩ／Ｆ、外部プロセッサを有するデバイス用の外部Ｉ／Ｆ、及びレジスタを備えた半導体集積回路において、
該半導体集積回路は、前記プロセッサ及び前記メモリＩ／Ｆがバス接続された第１の内部バスと前記レジスタがバス接続された第２の内部バスとを含む複数の内部バスを備え、且つ前記プロセッサ及び前記外部プロセッサの両方から前記レジスタにアクセス可能なように構成され、
前記外部Ｉ／Ｆは、前記第１の内部バスと前記第２の内部バスとの間に多重バス接続され、前記メインメモリに前記メモリＩ／Ｆを介してアクセスする場合と前記レジスタにアクセスする場合とで、利用する内部バスを切り替えることを特徴とする半導体集積回路。
【請求項２】
前記外部Ｉ／Ｆは、前記半導体集積回路の外部からアクセス要求されたアドレスが、前記メインメモリについて予め割り当てられたアドレスであれば前記第１の内部バスを利用し、前記レジスタについて予め割り当てられたアドレスであれば前記第２の内部バスを利用することを特徴とする請求項１に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、より詳細には、プロセッサ、メインメモリ用のメモリＩ／Ｆ（Interface）、外部プロセッサを有するデバイス用の外部Ｉ／Ｆ、及びレジスタを備えた半導体集積回路に関する。
【背景技術】
【０００２】
近年のＬＳＩ（Large Scale Integration）のプロセス微細化により、ＬＳＩに搭載可能な回路規模はどんどん増加し、ＬＳＩが処理する機能や性能は加速度的に向上している。なお、回路規模によっては、その半導体集積回路をＶＬＳＩ（Very LSI）、ＵＬＳＩ（Ultra-LSI）などと呼ぶこともある。
【０００３】
機能向上の１つとして、プロセッサ機能をＬＳＩの中に取り込むと、ＬＳＩ内部のプロセッサがＬＳＩ全体を内部から制御することが可能となり、ＬＳＩ内部にあたかも一つのシステムを構築できる。このように、半導体集積回路であって、その内部にプロセッサを内蔵してシステムを構築するデバイスは、ＳｏＣ（System on a Chip）と呼ばれている。
【０００４】
ＳｏＣと呼ばれる半導体集積回路には、様々なデバイスがある。非常に高性能なプロセッサを搭載し、ＳｏＣの外部に接続される全てのデバイスを統合的に管理できるものや、複数のプロセッサを内蔵し、さらに処理能力や演算能力を高めたもの、また、外部デバイスの制御は他のプロセッサに任せて、自身はＳｏＣ内部の制御のみを行うものなど様々である。
【０００５】
このようなＳｏＣのシステム構成方法の１つとして、以下のような要求がある。ＳｏＣ内部のプロセッサは内部のモジュール群を制御することが可能であるが、ＳｏＣ外部に接続されたプロセッサからもＳｏＣの制御を可能にする機能が要求されている。用途として、例えば、基本的にはＳｏＣ内部のプロセッサによってシステム全体の処理を実施するが、さらなる性能を求められた場合、高性能なプロセッサを有する外部デバイスを用意して、外部からＳｏＣを制御することにより、さらなるシステム性能向上を実現するものである。
【０００６】
このようなＳｏＣでは、外部プロセッサに接続するための外部Ｉ／Ｆを備える構成とするだけでなく、内部及び外部のプロセッサの両方がシステムを制御するためのレジスタ群にアクセスできるように構成し、さらにシステムの状態変化を通知するための割り込み処理などを内部及び外部のプロセッサの両方が処理できるように構成することが必要不可欠となる。
【０００７】
さらに、外部プロセッサからのレジスタやメインメモリへのアクセス性能については、内部プロセッサからのアクセス性能と比較すると劣る構成となってしまうため、何らかの工夫や性能検証を実施しなければ、システム性能向上のために外部プロセッサを増設しても、処理速度の高速化を含めたシステム全体の性能の向上を図ることができない。
【０００８】
なお、システム構成に際し、システムバスは多重化されることがあり、その方式として、バス使用権の調停を行うバスアービタを設ける技術が開示されている（例えば特許文献１を参照）。また、バスアービタを必要としないシステムバスの多重化技術も開示されている（例えば特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開昭６１−１１７６４９号公報
【特許文献２】特開２００８−１８１４２４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の技術では、ＳｏＣにおいて、例えば高速バスと低速バスとを具備するなど複数のバスを含めるような構成を採用する場合で、且つ外部プロセッサを増設可能なように外部Ｉ／Ｆを付加する構成とする場合、処理速度を含めたシステム全体の性能を向上させることができない。
【００１１】
本発明は、上述のような実状に鑑みてなされたものであり、その目的は、内部プロセッサ、メインメモリ用のメモリＩ／Ｆ、外部プロセッサを有するデバイス用の外部Ｉ／Ｆ、及びレジスタを備えた半導体集積回路において、内部プロセッサからレジスタ制御を行った場合と外部プロセッサからレジスタ制御を行った場合との応答性能差異を少なくすると共に、外部プロセッサからメインメモリへのアクセス制御を行う場合の応答性能を向上させ、それにより、処理速度を含めたシステム全体の性能を向上させることにある。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の第１の技術手段は、プロセッサ、メインメモリ用のメモリＩ／Ｆ、外部プロセッサを有するデバイス用の外部Ｉ／Ｆ、及びレジスタを備えた半導体集積回路において、該半導体集積回路は、前記プロセッサ及び前記メモリＩ／Ｆがバス接続された第１の内部バスと前記レジスタがバス接続された第２の内部バスとを含む複数の内部バスを備え、且つ前記プロセッサ及び前記外部プロセッサの両方から前記レジスタにアクセス可能なように構成され、前記外部Ｉ／Ｆは、前記第１の内部バスと前記第２の内部バスとの間に多重バス接続され、前記メインメモリに前記メモリＩ／Ｆを介してアクセスする場合と前記レジスタにアクセスする場合とで、利用する内部バスを切り替えることを特徴としたものである。
【００１３】
第２の技術手段は、第１の技術手段において、前記外部Ｉ／Ｆは、前記半導体集積回路の外部からアクセス要求されたアドレスが、前記メインメモリについて予め割り当てられたアドレスであれば前記第１の内部バスを利用し、前記レジスタについて予め割り当てられたアドレスであれば前記第２の内部バスを利用することを特徴としたものである。
【発明の効果】
【００１４】
本発明に係る半導体集積回路によれば、内部プロセッサからレジスタ制御を行った場合と外部プロセッサからレジスタ制御を行った場合との応答性能差異を少なくすると共に、外部プロセッサからメインメモリへのアクセス制御を行う場合の応答性能を向上させることができ、それにより、処理速度を含めたシステム全体の性能を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】ＳｏＣ及びそれに接続されたデバイスでなるシステム構成例を示す図である。
【図２】ＳｏＣ及びそれに接続されたデバイス（外部プロセッサを含む）でなるシステム構成例を示す図である。
【図３】図１及び図２のＳｏＣの内部構成例を示すブロック図である。
【図４】図３のＳｏＣの一部のみを抽出したブロック図である。
【図５】図３の代わりに適用可能なＳｏＣの内部構成例を示すブロック図である。
【図６】図５のＳｏＣの一部のみを抽出したブロック図である。
【図７】図３の代わりに適用可能な、本発明に係るＳｏＣの内部構成例を示すブロック図である。
【図８】図７のＳｏＣの一部のみを抽出したブロック図である。
【図９】図７のＳｏＣにおける外部Ｉ／Ｆのアドレスマップの一例を示す図である。
【発明を実施するための形態】
【００１６】
本発明に係る半導体集積回路は、プロセッサ（内部プロセッサ）、メインメモリ用のメモリＩ／Ｆ、外部プロセッサを有するデバイス（外部プロセッサそのものでもよい）用の外部Ｉ／Ｆ、及びレジスタを備えたＬＳＩ等の回路であり、以下、内部プロセッサを有するため、ＳｏＣとして説明する。
【００１７】
図１は、ＳｏＣ及びそれに接続されたデバイスでなるシステムの構成例を示す図で、図２は、ＳｏＣ及びそれに接続されたデバイス（外部プロセッサを含む）でなるシステムの構成例を示す図である。
【００１８】
図１で例示するシステムでは、ＳｏＣ１は内部プロセッサ１１を備えると共に、図示しない内部モジュールとして、外部端子を利用してデバイスと接続するための各種Ｉ／Ｆを備える。図１の例では、それらＩ／Ｆにより、メインメモリとして機能するメモリモジュール２、ＲＯＭ（Read Only Memory）３、液晶ディスプレイ（ＬＣＤ；Liquid Crystal Display）４、及びＨＤＤ（Hard Disk Drive）５といったデバイスに接続されている。なお、各種Ｉ／Ｆについては図３等を参照しながら後述する。また、内部プロセッサ１１や後述の外部プロセッサとしては、例えばＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＧＰＵ（Graphics Processor Unit）など、様々なプロセッサが適用できる。
【００１９】
一方、図２で例示するシステムでは、図１で例示したシステムに加えて外部プロセッサ６が接続されている。外部プロセッサ６は図示しない外部Ｉ／Ｆのモジュールによって接続されており、外部からレジスタアクセスが可能な状態にバスが構成されている。つまり、ＳｏＣ１は、内部プロセッサ１１及び外部プロセッサ６の両方がシステムを制御するためのレジスタ群にアクセスできるように構成されている。外部プロセッサ６からＳｏＣ１を制御するためにはメインメモリへのアクセスも必須となるため、外部プロセッサ６が外部Ｉ／Ｆのモジュールを介してメインメモリ用のＩ／Ｆに命令を出すことも可能に構成されている。無論、ＳｏＣ１は、システムの状態変化を通知するための割り込み処理などを、内部プロセッサ１１及び外部プロセッサ６の両方が処理できるように構成しておく。
【００２０】
従って、図１のシステムでは内部プロセッサ１１がＳｏＣ１を制御するシステムとなるが、図２のシステムでは外部プロセッサ６についてもＳｏＣ１を制御することが可能となる。このとき、内部プロセッサ１１は停止し、外部プロセッサ６がＳｏＣ１の内部全てを制御する構成でもよいし、内部プロセッサ１１及び外部プロセッサ６の両方が分担してＳｏＣ１を制御する構成でも実現可能である。このように、ＳｏＣ１は、内部プロセッサ１１のみで制御される構成として実装することも、外部プロセッサを有するデバイス（例えばＡＳＩＣ［Application Specific Integrated Circuit］や他のＳｏＣなど）を接続した構成として実装することもできる。
【００２１】
図３は、図１及び図２のＳｏＣの内部構成例を示すブロック図である。図３で例示するＳｏＣ１ａは、図１や図２で例示したＳｏＣ１として適用可能なシステムであり、高速バスＡ（１０）、高速バスＢ（２０）、及び低速バスＣ（３０）を備えている。これらのバスは、図示しないバスブリッジなどの接続手段で連結しておけばよい。
【００２２】
高速バスＡ（１０）には、内部プロセッサ１１、ＤＭＡ（Direct Memory Access）１２，１４、及びメモリコントローラ１５がバス接続されている。高速バスＢ（２０）には、ＤＭＡ２１〜２３がバス接続されており、ＤＭＡ２１にはＨＤＤコントローラ２４が、ＤＭＡ２２にはＬＣＤコントローラ２５がそれぞれ接続されている。また、低速バスＣ（３０）には、レジスタ３１とＲＯＭ  Ｉ／Ｆ３２とがバス接続されている。
【００２３】
高速バス（高速バスＡ，Ｂ）は、複数のマスタ及びスレーブモジュールを接続し、高速なデータ転送処理を実現することを目的としたバスである。高速バスは、低速バスと比べ非常に多くのデータを処理することが可能なため、高速バスＡ（１０）の例を挙げると内部プロセッサ１１、メモリコントローラ１５、複数のＤＭＡ１２，１４など、多くのモジュールが接続される。接続するモジュール数が多い場合には、複数の高速バスを準備し、高速バス間をバスブリッジなどで接続することによって、さらに多くのモジュールを接続することが可能となる。図３の例では、２つの高速バスＡ（１０），Ｂ（２０）を準備し、高速バスＡ（１０）と高速バスＢ（２０）との間を接続することで、より多くのモジュール（内部プロセッサ１１、メモリコントローラ１５、複数のＤＭＡ１２，１４，２１〜２３など）を接続している。
【００２４】
低速バスは、高速バスに比べ、比較的転送パフォーマンスを要求しないモジュール群を接続するバスであり、上述のように、レジスタ３１やＲＯＭ  Ｉ／Ｆ３２、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）、ＵＳＡＲＴ（Universal Synchronous Asynchronous Receiver Transmitter）やＩ２Ｃ（Inter-Integrated Circuit）などのシリアルインターフェースなどが接続される。なお、高速バスＡ（１０）と高速バスＢ（２０）との転送速度は同じであっても差があってもよく、無論、レジスタ３１が接続されたバスも高速バスＡ（１０）又は高速バスＢ（２０）と同等の高速なバスを採用しておいてもよい。
【００２５】
内部プロセッサ１１は、図３に示すＳｏＣ１ａがもつ全モジュールを制御し、加えてＳｏＣ１ａに接続される周辺デバイスを制御することでシステムを制御することを可能にするモジュールである。ＳｏＣ１ａの内部モジュールを制御する場合は、レジスタ３１へアクセスすることによって各モジュールの動作を決定する。
【００２６】
ＤＭＡ１２，１４，２１〜２３や後述するＤＭＡ１３ａ，１３ｂは、内部プロセッサ１１や外部プロセッサ（図２の外部プロセッサ６）からの指示により、様々なメモリに対してアクセスを行うモジュールであり、ＤＭＡコントローラとも言える。各ＤＭＡ１２，１３ａ，１３ｂ，１４，２１〜２３は、メインメモリ（図２のメモリモジュール２）等のメモリから取得したデータを処理する機能をもち、例えば外部Ｉ／Ｆ１６とデータを送受信する機能や画像処理を行う機能、暗号化／復号化を行う機能など、メモリアクセスと機能とを結びつけることによりデータ処理を実現する。ＤＭＡ転送を可能に構成することで、内部プロセッサ１１自身や外部プロセッサ６自身がメモリアクセスを行う負荷を減らすことができるため、プロセッサの仕事量を減らしシステムパフォーマンスを上げることができる。
【００２７】
外部Ｉ／Ｆ１６は、ＳｏＣ１ａに接続される外部デバイスとデータ転送やメッセージ転送を行うためのＩ／Ｆモジュールである。外部デバイスとは、例えば基板上で接続された別のＳｏＣやＡＳＩＣなどであり、プロセッサ（図２の外部プロセッサ６）を備える。また、このインターフェース規格としては、ＰＣＩ（Peripheral Component Interconnect）やＰＣＩ  Ｅｘｐｒｅｓｓなどがある。
【００２８】
外部Ｉ／Ｆは、高速バスＡ（１０）、高速バスＢ（２０）、低速バスＣ（３０）のいずれか１つにバス接続することでも搭載可能であるが、ここでは２つのバスの双方へのアクセス経路を短くするために、多重バス接続するものとする。このような３つ以上のバスがブリッジ等により接続されたシステムにおいて、外部Ｉ／Ｆを２つのバスに多重バス接続する際には、図３の例のように外部Ｉ／Ｆ１６が隣り合う高速バスＡ（１０）と高速バスＢ（２０）との間に多重バス接続することが考えられる。図３のＳｏＣ１ａでは、この多重バス接続のために、高速バスＡ（１０）にＤＭＡ１３ａがバス接続され、高速バスＢ（２０）にＤＭＡ１３ｂがバス接続され、それらＤＭＡ１３ａ，１３ｂの双方に外部Ｉ／Ｆ１６が接続されている。なお、多重バス接続の方式としては例えば特許文献２，３に記載の技術など既存の技術を適用すればよく、このことは図３の例に限らず後述する各図の例においても同様である。
【００２９】
メモリコントローラ１５は、メインメモリ（図２のメモリモジュール２）を接続するためのメモリＩ／Ｆの一例であって、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）やＤＤＲ  ＳＤＲＡＭ（Double-Data-Rate SDRAM）など、基板上で接続されたメインメモリとのデータ送受信を行うモジュールである。メモリコントローラ１５は、内部プロセッサ１１、外部プロセッサ６、各種ＤＭＡ１２，１３ａ，１４などからのデータ送受信要求を、高速バスＡ（１０）経由で受け付け、指示に従ってメインメモリに対してデータ送受信要求を行う。また、その結果を、指示元であるプロセッサや各種ＤＭＡに対して戻す。無論、上記データ送受信要求は、その指示元が他のバスＢ（２０），Ｃ（３０）を介したものであってもよい。
【００３０】
ＨＤＤコントローラ２４は、図２のＨＤＤ５のようなＨＤＤデバイスとのデータ送受信を実現するモジュールである。また、ＬＣＤコントローラ２５は、メインメモリに保存された液晶画面表示用イメージデータをＳｏＣ１ａに接続している図２のＬＣＤ４に対して転送するモジュールである。
【００３１】
レジスタ３１は、ＳｏＣ１ａの各モジュールの動作を決定したり、各モジュールの状態（ステータス）を内部プロセッサ１１や外部プロセッサ６に伝える目的のモジュールである。レジスタ３１は、主に内部プロセッサ１１や外部プロセッサ６が各モジュールを制御するために利用される。レジスタ３１は、例えばフリップフロップ群で構成されており、各フリップフロップの値をプロセッサから書き換えることにより、モジュールに対して指示を出す。
【００３２】
上述のように、レジスタ３１にアクセス可能なモジュール及びデバイスはＳｏＣ１ａの内部モジュールを制御することが可能になる。言い換えれば、レジスタ３１にアクセスできなければＳｏＣ１ａの機能全体を制御することができない。そこで、レジスタ３１へのアクセス可能なモジュールやデバイスは予め決定する必要があり、ＳｏＣ１ａの内部プロセッサ１１と外部Ｉ／Ｆ１６に接続された外部プロセッサ６との両方からアクセス可能に構成されている必要がある。アクセス可能にするためには、各プロセッサ１１，６からレジスタ３１へのアクセス経路が存在すること、各プロセッサ１１，６からレジスタ３１に割り当てられたアドレス空間に対してアクセス要求があると、各バスがその要求を受け付けるように構成されている必要がある。このようにして、レジスタ３１は、ＳｏＣ１ａの内部のプロセッサ１１と外部のプロセッサ６から制御可能となっている。
【００３３】
ＲＯＭ  Ｉ／Ｆ３２は、ＳｏＣ１ａの外部に接続している不揮発性のＲＯＭ（図２のＲＯＭ３）に対してアクセスするために、ＲＯＭ３からデータを取得するためのＩ／Ｆモジュールである。電源起動時、ＲＯＭ３に保存しているプログラムデータを取得し、メインメモリに展開する。展開されたプログラムデータを読み出すことによって各プロセッサ１１，６は動作する。
【００３４】
本発明に係るＳｏＣは、上述したようなＳｏＣ１ａにおいて、外部Ｉ／Ｆ１６の配置を改良したものである。より具体的には、本発明に係るＳｏＣは、内部プロセッサ１１及びメモリコントローラ１５がバス接続された第１の内部バス（高速バスＡで例示）とレジスタ３１がバス接続された第２の内部バス（低速バスＣで例示）とを含む複数の内部バスを備え、且つ内部プロセッサ１１及び外部プロセッサ６の両方からレジスタ３１にアクセス可能なようにバス及びシステムが構成されている。
【００３５】
そして、本発明の主たる特徴として、外部Ｉ／Ｆ１６は、上記第１の内部バスと上記第２の内部バスとの間に多重バス接続される。つまり、本発明では、外部Ｉ／Ｆ１６の配置を、アクセス経路的にメインメモリの傍、レジスタ３１の傍といった両方の条件を満足するように決めている。
【００３６】
外部Ｉ／Ｆ１６（及びＤＭＡ１３ａ，１３ｂ）の配置の具体的な例やこのような配置がよい理由の詳細については後述するが、このような接続により、外部Ｉ／Ｆ１６を第１の内部バスに設けるよりも外部プロセッサ６におけるレジスタ３１へのアクセス性能を向上させ、外部Ｉ／Ｆ１６を第２の内部バスに設けるよりも外部プロセッサ６におけるメインメモリ（メモリモジュール２）へのアクセス性能を向上させることができる。つまり、本発明によれば、内部プロセッサ１１からレジスタ制御を行った場合と外部プロセッサ６からレジスタ制御を行った場合との応答性能差異を少なくすると共に、外部プロセッサ６からメインメモリへのアクセス制御を行う場合の応答性能を向上させることができる。そして、本発明によれば、結果的に、処理速度を含めたシステム全体の性能を向上させることができる。
【００３７】
図４〜図８を参照しながら、多重バス接続を行う場合について外部Ｉ／Ｆ１６のバス接続位置とシステムパフォーマンスとの関係について検証を行う。簡単のため、主に図３（図４）、図５（図６）、図７（図８）の３種類のバス接続位置について検討を進める。
【００３８】
図４は、図３のＳｏＣの一部のみを抽出したブロック図である。また、図５は、図３の代わりに適用可能なＳｏＣの内部構成例を示すブロック図で、図６は図５のＳｏＣの一部のみを抽出したブロック図である。図７は、図３の代わりに適用可能な、本発明に係るＳｏＣの内部構成例を示すブロック図で、図８は、図７のＳｏＣの一部のみを抽出したブロック図である。
【００３９】
なお、図５及び図６で例示するＳｏＣ１ｂや本発明に関して図７及び図８で例示するＳｏＣ１ｃは、図１や図２で例示したＳｏＣ１として適用可能なシステムであり、外部Ｉ／Ｆ１６及びＤＭＡ１３ａ，１３ｂの接続位置以外は、図３で例示した通りの例が同様に適用できる。つまり、図５のＳｏＣ１ｂ又は図７のＳｏＣ１ｃの内部構成例については、基本的に、図３の説明におけるＳｏＣ１ａをＳｏＣ１ｂ又はＳｏＣ１ｃと読み替えれば済む。よって、ＳｏＣ１ｂ，ＳｏＣ１ｃについては、変更箇所以外の説明を省略する。
【００４０】
図４で例示したＳｏＣ１ａは、外部Ｉ／Ｆ１６（ここではＤＭＡ転送を行う例を挙げているため、実際には外部Ｉ／Ｆ１６及びＤＭＡ１３ａ，１３ｂでなる外部Ｉ／Ｆモジュール）を、内部プロセッサ１１やメインメモリ用のメモリコントローラ１５を含むバスである高速バスＡ（１０）と、高速バスＢ（２０）との間に多重バス接続した構成をもつ。
【００４１】
この位置に接続すると、外部Ｉ／Ｆ１６はメモリコントローラ１５に近い位置に配置することができ、最も近い位置に配置することもできることからメモリアクセスのレイテンシを最も小さくすることができる。また、この配置では、外部Ｉ／Ｆ１６が高速なデータ転送が可能なバスである高速バスＡ（１０）への接続となるため、レイテンシが小さくなることと合わせ、外部Ｉ／Ｆ１６とのデータ転送を非常に高速に実施することができる。次に、外部Ｉ／Ｆ１６に外部プロセッサ６が接続され、ＳｏＣ１ａの外部からレジスタ３１に対してアクセスするシステムを考える。この場合、外部プロセッサ６からレジスタ３１のブロックへのアクセス経路は、「高速バスＢ（２０）→低速バスＣ（３０）→レジスタ３１」となり、レジスタアクセスするためのアクセスレイテンシがやや長くなってしまう。
【００４２】
このように、図４のような配置では、メモリアクセス性に着目すると、アクセス経路が高速バスＡのみとなる最短経路での配置が可能となるため、メモリアクセス性は高いものとなるが、レジスタアクセス性に着目すると、アクセス経路が高速バスＢ（２０）から低速バスＣ（３０）へと続くやや長い経路となり、レジスタアクセス性はあまり良いとは言えない。以上のような理由から、本発明は、図４（図３）のような配置を採用しない。
【００４３】
図５で例示したＳｏＣ１ｂは、図６で図示した一部抽出部分から明らかなように、外部Ｉ／Ｆ１６（実際には外部Ｉ／Ｆモジュール）を、レジスタ３１を含むバスである低速バスＣ（３０）と、高速バスＢ（２０）との間に多重バス接続した構成をもつ。
【００４４】
この位置に接続すると、レジスタ３１のブロックへのアクセス経路が非常に短くなり、外部Ｉ／Ｆ１６を経由してアクセスする外部プロセッサ６は、レジスタアクセス性能、つまりシステム制御性能を高めることができる。一方、ＳｏＣ１ｂの構成では、メインメモリへのアクセス性能は、アクセス経路が「高速バスＢ（２０）→高速バスＡ（１０）→メモリコントローラ１５」とやや長くなるため、悪くなる。このように、図６（図５）のような配置では、レジスタアクセス性に着目すると、アクセス経路が低速バスＣ（３０）のみとなり、最短経路での配置が可能となるため、レジスタアクセス性は高いものとなるが、メモリアクセス性に着目すると、アクセス経路が高速バスＢ（２０）から高速バスＡ（１０）へと続くため、メモリアクセス性は低いものとなる。以上のような理由から、本発明は、図６（図５）のような配置を採用しない。
【００４５】
なお、多重バス接続ではなく、例えば高速バスＡのみに属するように外部Ｉ／Ｆモジュールを配置した場合には、レジスタへのアクセス経路が長くなり、レジスタアクセス性が低いものとなる。さらに、高速バスＡは、内部プロセッサをはじめとしてメインメモリや周辺モジュールへ頻繁に若しくは大量にデータアクセスするモジュールが多いバスであるため、他のバスと比べてバス内部が非常に混雑する状態となる。このような状態で外部プロセッサがレジスタへアクセスを行うと、他のモジュールのメモリアクセスに邪魔をされる形となり、レジスタアクセスレイテンシがさらに悪化することとなる。また、高速バスＢのみに外部Ｉ／Ｆモジュールを配置した場合には、メモリ、レジスタ双方についてのアクセス経路に高速バスＢが追加されるため、やや長くなる。また、低速バスＣのみに外部Ｉ／Ｆモジュールを配置した場合には、メモリへのアクセス経路が長くなり、メモリアクセス性が低いものとなる。
【００４６】
これらの構成に対し、本発明に係るＳｏＣでは、図７及び図８で例示するような構成を採用する。図７で例示したＳｏＣ１ｃは、図８で図示した一部抽出部分から明らかなように、外部Ｉ／Ｆ１６（実際には外部Ｉ／Ｆモジュール）を、内部プロセッサ１１やメモリコントローラ１５を含むバスである高速バスＡ（１０）と、レジスタ３１を含むバスである低速バスＣ（３０）との間に多重バス接続した構成、つまり外部Ｉ／Ｆ１６を上記第１の内部バスと上記第２の内部バスとの間に多重バス接続した構成をもつ。つまり、この例では、外部Ｉ／Ｆ１６は高速バスＡ（１０）と低速バスＣ（３０）の双方に属するように接続される。
【００４７】
この位置に接続すると、外部Ｉ／Ｆ１６はメモリコントローラ１５に近い位置に配置することができ、最も近い位置に配置することもできることからメモリアクセスのレイテンシを最も小さくすることができる。また、この配置では、外部Ｉ／Ｆ１６が高速なデータ転送が可能なバスである高速バスＡ（１０）への接続となるため、レイテンシが小さくなることと合わせ、外部Ｉ／Ｆ１６とのデータ転送を非常に高速に実施することができる。さらに、この例ではバス１０，２０としていずれも高速バスを採用しているため、高速バスＡ（１０）及び高速バスＢ（２０）はどちらもバスアクセス性能は高く、外部Ｉ／Ｆモジュールは十分なデータ転送性能を確保できるようになる。
【００４８】
また、外部プロセッサ６からのレジスタアクセスを考えても、レジスタ３１のブロックへのアクセス経路が低速バスＣ（３０）のみとなって非常に短くなり、外部Ｉ／Ｆ１６を経由してアクセスする外部プロセッサ６は、レジスタアクセス性能、つまりシステム制御性能を高めることができる。
【００４９】
実際、このような性能を得るため、ＳｏＣ１ｃでは、メインメモリにメモリコントローラ１５を介してアクセスする場合とレジスタ３１にアクセスする場合とで、利用する内部バスを、高速バスＡ（１０）と低速バスＣ（３０）との間で切り替えている。図７及び図８の例では、ＤＭＡ転送を可能にしているため、２つのＤＭＡコントローラを用いて、ＤＭＡ１３ａを介して高速バスＡ（１０）にバス接続し、ＤＭＡ１３ｂを介して低速バスＣ（３０）にバス接続した構成を採用し、さらに、利用する内部バスを切り替え可能にしている。無論、ＤＭＡ転送を採用しない場合にも、外部Ｉ／Ｆ１６に高速バスＡ（１０）側と低速バスＣ（３０）側との２つのインターフェース、つまり２つのバス接続機能をもたせておき、且つ利用するバスを切り替え可能にしておけばよい。
【００５０】
切り替えは、メインメモリ、レジスタ３１それぞれのアクセスに最適なバスを選択的に利用可能にすればよく、図７及び図８の例では、メインメモリにアクセスする場合にはＤＭＡ１３ａ側、レジスタ３１にアクセスする場合にはＤＭＡ１３ｂ側を、それぞれ利用可能にすればよい。
【００５１】
このような制御により、メインメモリへのアクセス経路は「高速バスＡ（１０）→メモリコントローラ１５」、レジスタ３１へのアクセス経路は「低速バスＣ（３０）→レジスタ３１」となり、どちらも最短経路でアクセスが可能となり、メモリアクセス性、レジスタアクセス性ともに高いものとなる。
【００５２】
このように、ＳｏＣ１ｃは、外部Ｉ／Ｆ１６に２つのバス接続機能をもたせ、高速バスＡ（１０）と低速バスＣ（３０）の両方に外部Ｉ／Ｆ１６を接続し、メインメモリへのアクセスの場合は高速バスＡ（１０）の接続を利用することでメインメモリへのアクセスパフォーマンスを向上させ、レジスタ３１へのアクセスの場合は低速バスＣ（３０）の接続を利用することでレジスタ３１へのアクセス性能を向上させることができる。
【００５３】
ここで、図７及び図８のＳｏＣ１ｃでは、レジスタ３１へのアクセスか、それ以外のアクセスかを判断して、利用するバスを選択する必要があるが、その具体的な方法について、図９を併せて参照しながら説明する。図９は、図７のＳｏＣにおける外部Ｉ／Ｆのアドレスマップの一例を示す図である。
【００５４】
図９で例示する外部Ｉ／Ｆ１６のメモリ空間アドレスマップ９０では、メモリコントローラ１５に接続されるメインメモリについてアドレスが予め割り当てられており、且つレジスタ３１についてもアドレスが予め割り当てられている。メモリ空間アドレスマップ９０では、レジスタ３１への割り当て領域は０ｘＦ０００〜０ｘＦＦＦＦの範囲（レジスタ領域９２という）に、メインメモリへの割り当て領域は０ｘ００００〜０ｘＡＦＦＦの範囲（メインメモリ領域９１という）に割り当てている。無論、外部プロセッサ６はこのルールに基づきアドレスを発して命令すればよい。なお、メインメモリ領域９１とレジスタ領域９２とを離間させた例を示しているが、隣接させてもよい。
【００５５】
そして、外部Ｉ／Ｆ１６は、外部プロセッサ６からアドレスを受信したとき、メモリ空間アドレスマップ９０を参照して、外部プロセッサ６から受信したアドレスがメインメモリについて予め割り当てられたアドレスであれば上記第１の内部バス（高速バスＡで例示）を利用し、レジスタ３１について予め割り当てられたアドレスであれば上記第２の内部バス（低速バスＣで例示）を利用する。
【００５６】
図９の例では、外部プロセッサ６から外部Ｉ／Ｆ１６に対して、０ｘ００００のアドレスなどメインメモリ領域９１内のアドレスにアクセス要求があれば、外部Ｉ／Ｆ１６はメインメモリへのアクセス要求と判断して、高速バスＡ（１０）側からメモリコントローラ１５に対してアクセス要求を発行する。一方で、外部プロセッサ６から外部Ｉ／Ｆ１６に対して、０ｘＦＦＦＦのアドレスなどレジスタ領域９２内のアドレスにアクセス要求があれば、外部Ｉ／Ｆ１６はレジスタ３１へのアクセス要求と判断して、低速バスＣ（３０）側からレジスタ３１に対してアクセス要求を発行する。
【００５７】
このように、外部Ｉ／Ｆ１６は、利用する内部バスを切り替える手段として、レジスタ３１の割り当てアドレスとメインメモリの割り当てアドレスとを、受信した要求アドレスを利用するバスの判断基準にし、要求アドレスに応じて利用するバスを切り替えることにより、容易に利用バスを選択することができ、レジスタ３１とメインメモリのいずれへのアクセス性能をも向上させることが可能となる。
【００５８】
以上、本発明に係るＳｏＣ１ｃについて主に図７〜図９を参照しながら説明したが、図８で例示したＳｏＣ１ｃにおいて、外部Ｉ／Ｆ１６の属する高速バスＡ（１０）又は低速バスＣ（３０）に、各マスタからのアクセス優先度を設定可能なようなバスシステムを設けるように構成してもよい。これにより、外部プロセッサ６からのレジスタ変更の応答性能を上げ下げすることができる。
【００５９】
また、上記第１の内部バス、上記第２の内部バスの例としてそれぞれ高速バスＡ（１０）、低速バスＣ（３０）を備えた例を挙げたが、低速バスＣ（３０）の代わりに高速バスＡ（１０）と同等又はそれより高速のバスを設けてもよい。
【００６０】
また、ＳｏＣ１ｃでは、バスが３つ以上で構成されたとしても内部プロセッサ１１及びメインメモリ側のバスとレジスタ側のバスとの２つのバスに外部Ｉ／Ｆモジュールを接続することで、メインメモリへのアクセス性能とレジスタへのアクセス性能両方を向上することが可能になる。例えば図８のＳｏＣ１ｃにおいて、例えば外部Ｉ／Ｆ１６にさらに別のＤＭＡを介して高速バスＢ（２０）にも接続し、合計３つのバスに多重バス接続されるように構成してもよい。このように、本発明では、外部Ｉ／Ｆ１６が少なくとも、内部プロセッサ１１やメモリＩ／Ｆ（メモリコントローラ１５で例示）がバス接続された高速バスＡ（１０）とレジスタ３１がバス接続された低速バスＣ（３０）との双方に接続されていればよい。また、本発明は、ＳｏＣ１ｃにおいて高速バスＢ（２０）を設けない構成を採用しても、上記第１の内部バスと上記第２の内部バスとが設けられていればよい。
【符号の説明】
【００６１】
１，１ａ，１ｂ，１ｃ…ＳｏＣ、２…メモリモジュール、３…ＲＯＭ、４…ＬＣＤ、５…ＨＤＤ、６…外部プロセッサ、１０…高速バスＡ、１１…内部プロセッサ、１２，１３ａ，１３ｂ，１４，２１，２２，２３…ＤＭＡ、１５…メモリコントローラ、１６…外部Ｉ／Ｆ、２０…高速バスＢ、２４…ＨＤＤコントローラ、２５…ＬＣＤコントローラ、３０…低速バスＣ、３１…レジスタ、３２…ＲＯＭ  Ｉ／Ｆ、９０…メモリ空間アドレスマップ、９１…メインメモリ領域、９２…レジスタ領域。
【図１】
2012177966.tif 000003
【図２】
2012177966.tif 000004
【図３】
2012177966.tif 000005
【図４】
2012177966.tif 000006
【図５】
2012177966.tif 000007
【図６】
2012177966.tif 000008
【図７】
2012177966.tif 000009
【図８】
2012177966.tif 000010
【図９】
2012177966.tif 000011