(57)【要約】【課題】内部プロセッサ、メインメモリ用のメモリＩ／Ｆ、外部プロセッサを有するデバイス用の外部Ｉ／Ｆ、及びレジスタを備えた半導体集積回路において、内部プロセッサからレジスタ制御を行った場合と外部プロセッサからレジスタ制御を行った場合との応答性能差異を少なくすると共に、外部プロセッサからメインメモリへのアクセス制御を行う場合の応答性能を向上させ処理速度を含めたシステム全体の性能を向上させる。【解決手段】半導体集積回路（ＳｏＣ１ｃで例示）は、プロセッサ１１、メモリコントローラ１５がバス接続された第１の内部バス（バス１０で例示）とレジスタ３１がバス接続された第２の内部バス（バス３０で例示）とを含む複数の内部バスを備え、且つプロセッサ１１及び外部プロセッサの両方からレジスタ３１にアクセス可能なように構成される。外部Ｉ／Ｆ１６は第１の内部バスと第２の内部バスとに接続された他の内部バスにバス接続される。【選択図】図６
2012118687.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）など、基板上で接続されたメインメモリとのデータ送受信を行うモジュールである。メモリコントローラ１５は、内部プロセッサ１１、外部プロセッサ６、各種ＤＭＡ１２〜１４などからのデータ送受信要求を、高速バスＡ（１０）経由で受け付け、指示に従ってメインメモリに対してデータ送受信要求を行う。また、その結果を、指示元であるプロセッサや各種ＤＭＡに対して戻す。無論、上記データ送受信要求は、その指示元が他のバスＢ（２０），Ｃ（３０）を介したものであってもよい。
【００２９】
ＨＤＤコントローラ２４は、図２のＨＤＤ５のようなＨＤＤデバイスとのデータ送受信を実現するモジュールである。また、ＬＣＤコントローラ２５は、メインメモリに保存された液晶画面表示用イメージデータをＳｏＣ１ａに接続している図２のＬＣＤ４に対して転送するモジュールである。
【００３０】
レジスタ３１は、ＳｏＣ１ａの各モジュールの動作を決定したり、各モジュールの状態（ステータス）を内部プロセッサ１１や外部プロセッサ６に伝える目的のモジュールである。レジスタ３１は、主に内部プロセッサ１１や外部プロセッサ６が各モジュールを制御するために利用される。レジスタ３１は、例えばフリップフロップ群で構成されており、各フリップフロップの値をプロセッサから書き換えることにより、モジュールに対して指示を出す。
【００３１】
上述のように、レジスタ３１にアクセス可能なモジュール及びデバイスはＳｏＣ１ａの内部モジュールを制御することが可能になる。言い換えれば、レジスタ３１にアクセスできなければＳｏＣ１ａの機能全体を制御することができない。そこで、レジスタ３１へのアクセス可能なモジュールやデバイスは予め決定する必要があり、ＳｏＣ１ａの内部プロセッサ１１と外部Ｉ／Ｆ１６に接続された外部プロセッサ６との両方からアクセス可能に構成されている必要がある。アクセス可能にするためには、各プロセッサ１１，６からレジスタ３１へのアクセス経路が存在すること、各プロセッサ１１，６からレジスタ３１に割り当てられたアドレス空間に対してアクセス要求があると、各バスがその要求を受け付けるように構成されている必要がある。このようにして、レジスタ３１は、ＳｏＣ１ａの内部のプロセッサ１１と外部のプロセッサ６から制御可能となっている。
【００３２】
ＲＯＭ  Ｉ／Ｆ３２は、ＳｏＣ１ａの外部に接続している不揮発性のＲＯＭ（図２のＲＯＭ３）に対してアクセスするために、ＲＯＭ３からデータを取得するためのＩ／Ｆモジュールである。電源起動時、ＲＯＭ３に保存しているプログラムデータを取得し、メインメモリに展開する。展開されたプログラムデータを読み出すことによって各プロセッサ１１，６は動作する。
【００３３】
本発明に係るＳｏＣは、上述したようなＳｏＣ１ａにおいて、外部Ｉ／Ｆ１６の配置を改良したものである。より具体的には、本発明に係るＳｏＣは、内部プロセッサ１１及びメモリコントローラ１５がバス接続された第１の内部バス（高速バスＡで例示）とレジスタ３１がバス接続された第２の内部バス（低速バスＣで例示）とを含む複数の内部バスを備え、且つ内部プロセッサ１１及び外部プロセッサ６の両方からレジスタ３１にアクセス可能なようにバス及びシステムが構成されている。
【００３４】
そして、本発明の主たる特徴として、外部Ｉ／Ｆ１６は、上記第１の内部バスと上記第２の内部バスとの間に接続される。より具体的には、外部Ｉ／Ｆ１６は、上記第１の内部バスと上記第２の内部バスとに接続された他の内部バスにバス接続される。つまり、本発明では、外部Ｉ／Ｆ１６の配置を、メインメモリの傍、レジスタ３１の傍といった両方の条件を満足するように決めている。
【００３５】
外部Ｉ／Ｆ１６（及びＤＭＡ１３）の配置の具体的な例やこのような配置がよい理由の詳細については後述するが、このような接続により、外部Ｉ／Ｆ１６を第１の内部バスに設けるよりも外部プロセッサ６におけるレジスタ３１へのアクセス性能を向上させ、外部Ｉ／Ｆ１６を第２の内部バスに設けるよりも外部プロセッサ６におけるメインメモリ（メモリモジュール２）へのアクセス性能を向上させることができる。つまり、本発明によれば、内部プロセッサ１１からレジスタ制御を行った場合と外部プロセッサ６からレジスタ制御を行った場合との応答性能差異を少なくすると共に、外部プロセッサ６からメインメモリへのアクセス制御を行う場合の応答性能を向上させることができる。そして、本発明によれば、結果的に、処理速度を含めたシステム全体の性能を向上させることができる。
【００３６】
図４〜図６を参照しながら、外部Ｉ／Ｆ１６のバス接続位置とシステムパフォーマンスとの関係について検証を行う。簡単のため、外部Ｉ／Ｆ１６のバス接続位置を図３（図４）、図６、図５の３種類について進める。
【００３７】
図４は、図３のＳｏＣの一部のみを抽出したブロック図で、図５は、図４の代わりに適用可能なバス構成の一例を示すブロック図である。また、図６は、図４の代わりに適用可能なバス構成の他の例を示すブロック図で、本発明に係るＳｏＣの内部構成例を示すブロック図でもある。なお、図５で例示するＳｏＣ１ｂや図６で例示するＳｏＣ１ｃは、図１や図２で例示したＳｏＣ１として適用可能なシステムであり、外部Ｉ／Ｆ１６及びＤＭＡ１３の接続位置以外は、図３で例示した通りの例が同様に適用できる。つまり、図５のＳｏＣ１ｂ又は図６のＳｏＣ１ｃの内部構成例については、基本的に、図３の説明におけるＳｏＣ１ａをＳｏＣ１ｂ又はＳｏＣ１ｃと読み替えれば済む。よって、ＳｏＣ１ｂ，ＳｏＣ１ｃについては、変更箇所以外の説明を省略する。
【００３８】
図４で例示したＳｏＣ１ａは、外部Ｉ／Ｆ１６（ここではＤＭＡ転送を行う例を挙げているため、実際には外部Ｉ／Ｆ１６及びＤＭＡ１３でなる外部Ｉ／Ｆモジュール）を、内部プロセッサ１１やメインメモリ用のメモリコントローラ１５を含むバスである高速バスＡ（１０）に接続した構成をもつ。
【００３９】
この位置に接続すると、外部Ｉ／Ｆ１６はメモリコントローラ１５に近い位置に配置することができ、無論、最も近い位置に配置することもできるため、メモリアクセスのレイテンシを小さくすることができる。また、この配置では、外部Ｉ／Ｆ１６が高速なデータ転送が可能なバスである高速バスＡ（１０）への接続となるため、レイテンシが小さくなることと合わせ、外部Ｉ／Ｆ１６とのデータ転送を非常に高速に実施することができる。外部Ｉ／Ｆ１６が、高速なデータ転送が可能な外部Ｉ／Ｆの場合、一般的にはこのバスの位置に外部Ｉ／Ｆ１６が接続されることが多い。
【００４０】
次に、外部Ｉ／Ｆ１６に外部プロセッサ６が接続され、ＳｏＣ１ａの外部からレジスタ３１に対してアクセスするシステムを考える。この場合、高速バスＡ（１０）からレジスタ３１のブロックへのアクセス経路は、「高速バスＡ（１０）→高速バスＢ（２０）→低速バスＣ（３０）→レジスタ３１」となり、レジスタアクセスするためのアクセスレイテンシが長くなってしまう。さらに、高速バスＡ（１０）には内部プロセッサ１１をはじめとして、メインメモリや周辺モジュールへ頻繁に若しくは大量にデータアクセスするモジュールが多い。従って、高速バスＡ（１０）は他のバスと比べてバス内部が非常に混雑する状態となる。このような状態で外部プロセッサ６がレジスタ３１へアクセスを行うと、他のモジュールのメモリアクセスに邪魔をされる形となり、レジスタアクセスレイテンシがさらに悪化することとなる。以上のような理由から、本発明は、図４のような配置を採用しない。
【００４１】
図５で例示したＳｏＣ１ｂは、外部Ｉ／Ｆ１６（実際には外部Ｉ／Ｆモジュール）を、レジスタ３１を含むバスである低速バスＣ（３０）に接続した構成をもつ。この位置に接続すると、レジスタ３１のブロックへのアクセス経路が非常に短くなり、外部Ｉ／Ｆ１６を経由してアクセスする外部プロセッサ６は、レジスタアクセス性能、つまりシステム制御性能を高めることができる。一方、ＳｏＣ１ｂの構成では、メインメモリへのアクセス性能は非常に悪くなる。なぜなら、アクセス経路が「低速バスＣ（３０）→高速バスＢ（２０）→高速バスＡ（１０）→メモリコントローラ１５」と長くなるためである。また、外部Ｉ／Ｆ１６が高速なデータ転送を実現可能なインターフェースであった場合、経路が長くなるだけでなく、低速バスＣ（３０）を経由するためデータ処理能力が低くなり、外部Ｉ／Ｆ１６のメリットを潰してしまう。以上のような理由から、本発明は、図５のような配置を採用しない。
【００４２】
図６で例示したＳｏＣ１ｃは、外部Ｉ／Ｆ１６（実際には外部Ｉ／Ｆモジュール）を高速バスＢ（２０）に接続した構成、つまり外部Ｉ／Ｆ１６を上記第１の内部バス（高速バスＡで例示）と上記第２の内部バス（低速バスＣで例示）との間であって、上記第１の内部バスと上記第２の内部バスとに接続された他の内部バス（この例では高速バスＢ）にバス接続した構成をもつ。つまり、この例では、外部Ｉ／Ｆ１６は高速バスＢ（２０）に属するように接続される。
【００４３】
まず、図６のＳｏＣ１ｃにおけるメインメモリへのアクセス性能を考えると、アクセス経路が「高速バスＢ（２０）→高速バスＡ（１０）→メモリコントローラ１５」となるため、図４のＳｏＣ１ａよりはアクセスレイテンシが悪化するものの、図５のＳｏＣ１ｂよりは良くなる。さらに、この例ではバス１０，２０としていずれも高速バスを採用しているため、高速バスＡ（１０）及び高速バスＢ（２０）はどちらもバスアクセス性能は高く、外部Ｉ／Ｆモジュールは十分なデータ転送性能を確保できるようになる。次に、外部プロセッサ６からのレジスタアクセスを考えても、アクセス経路が「高速バスＢ（２０）→低速バスＣ（３０）→レジスタ３１」となるため、図５のＳｏＣ１ｂとの比較では悪化するものの、図４のＳｏＣ１ａよりもアクセス性能を高めることができる。
【００４４】
図６のように、外部Ｉ／Ｆ１６のモジュールを内部プロセッサ１１及びメインメモリ用のメモリＩ／Ｆを含むバスとレジスタ３１を含むバスとに配置せずに別のバスに配置することで、メインメモリへのアクセス性能低下を極力抑えつつ、最もバス混雑度の高い位置に外部Ｉ／Ｆ１６を配置することを避けて、レジスタ３１へのアクセス性能を高めることができる。
【００４５】
さらに、高速バスＡ（１０）側に、内部プロセッサ１１の他にも頻繁にメモリアクセスをするモジュールを配置しておくことが好ましい。このような配置により、高速バスＢ（２０）はバス混雑度を軽減することができ、外部プロセッサ６からレジスタ３１にアクセスする際に、外部プロセッサ６自身が高速バスＢ（２０）を利用できる時間を多くとることが可能となる。
【００４６】
また、上記第１の内部バス、上記第２の内部バスの例としてそれぞれ高速バスＡ、低速バスＣを備えた例を挙げたが、低速バスＣの変わりに高速バスＡと同等又はそれより高速のバスを設けてもよい。
【００４７】
無論、本発明のＳｏＣとしては、さらに多くのバスを連結させた構成を採用してもよい。その場合には、外部Ｉ／Ｆ１６及びＤＭＡ１３は、メモリコントローラ１５が属するバスと、レジスタ３１が属するバスとの間に位置するバスに接続しておけばよい。より好ましくは、中間のバス若しくは中間よりレジスタが属するバス側に位置するバスに接続しておけばよい。この点については、図６のような３つのバスでなるＳｏＣでも同様であり、外部Ｉ／Ｆ１６の接続位置を内部プロセッサ１１よりもレジスタ３１よりに置けばよい。一般的には外部Ｉ／Ｆ１６をメインメモリの近くに配置するとシステム性能を向上できるが、そのような配置に比べ、外部Ｉ／Ｆ１６をレジスタ３１側に近づけて配置することで、外部Ｉ／Ｆ１６からレジスタ３１への応答性能が向上し、内部／外部からのレジスタ変更を比較的同程度の応答性能で制御することが可能になる。つまり、このような配置を採用することで、レジスタ３１に対するアクセスレイテンシを短くし、外部プロセッサ６の利用時のコントロール性能低下を防止することを優先させることができる。
【００４８】
さらに、図６で例示したＳｏＣ１ｃにおいて、外部Ｉ／Ｆ１６の属する高速バスＢに、各マスタからのアクセス優先度を設定可能なようなバスシステムを設けることにより、外部プロセッサ６からのレジスタ変更の応答性能を上げ下げすることができる。
【符号の説明】
【００４９】
１，１ａ，１ｂ，１ｃ…ＳｏＣ、２…メモリモジュール、３…ＲＯＭ、４…ＬＣＤ、５…ＨＤＤ、６…外部プロセッサ、１０…高速バスＡ、１１…内部プロセッサ、１２，１３，１４，２１，２２，２３…ＤＭＡ、１５…メモリコントローラ、１６…外部Ｉ／Ｆ、２０…高速バスＢ、２４…ＨＤＤコントローラ、２５…ＬＣＤコントローラ、３０…高速バスＣ、３１…レジスタ、３２…ＲＯＭ  Ｉ／Ｆ。
【図１】
2012118687.tif 000003
【図２】
2012118687.tif 000004
【図３】
2012118687.tif 000005
【図４】
2012118687.tif 000006
【図５】
2012118687.tif 000007
【図６】
2012118687.tif 000008