JP2009289232A - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP2009289232A
JP2009289232A JP2008144233A JP2008144233A JP2009289232A JP 2009289232 A JP2009289232 A JP 2009289232A JP 2008144233 A JP2008144233 A JP 2008144233A JP 2008144233 A JP2008144233 A JP 2008144233A JP 2009289232 A JP2009289232 A JP 2009289232A
Authority
JP
Japan
Prior art keywords
register
data
cpu
peripheral module
entry
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
JP2008144233A
Other languages
English (en)
Inventor
Takahiro Shiina
崇弘 椎名
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2008144233A priority Critical patent/JP2009289232A/ja
Publication of JP2009289232A publication Critical patent/JP2009289232A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Microcomputers (AREA)

Abstract

【課題】データ処理装置において周辺モジュールへのアクセス性能を改善する。
【解決手段】半導体集積回路(7)は、バスマスタ(10,20)と、レジスタを含む周辺モジュール(61,62)と、上記バスマスタによってアクセス可能なレジスタエントリ(70)とを含む。上記レジスタエントリは、上記バスマスタから見て上記周辺モジュール内のレジスタよりも高速アクセス可能な位置に配置され、且つ、上記周辺モジュール内のレジスタに保持されたデータと同一データが保持されるデータ保持部を含む。上記バスマスタは、上記周辺モジュール内のレジスタからのデータリードに代えて、上記レジスタエントリからのデータリードを行うアクセスモードを含む。バスマスタからのリード要求はレジスタエントリに対してのみ行い、周辺モジュールに対するリード要求は行わないようにすることで、所望の周辺モジュールに対応するレジスタ情報を高速に得る。
【選択図】図5

Description

本発明は、半導体集積回路、さらにはバスマスタによってアクセス可能な周辺モジュールを備えた半導体集積回路に関する。
半導体集積回路の一例とされるマイクロコンピュータ(マイクロプロセッサ、データプロセッサなどと称されることもある)は、例えば特許文献1でも述べられているように、応用範囲の拡大にともないCPU(Central Processing Unit)の高速化、大容量のメモリ、さらには豊富な周辺モジュール内蔵と多様化している。周辺モジュールとしては、例えばシリアルインターフェイス、DMAC(Direct Memory Access Controller)、各種タイマ、A/Dコンバータ、D/Aコンバータ、およびPWM(Pulse Width Modulator)などを挙げることができる。
特開2004−185060号公報
近年のマイクロコンピュータについて本願発明者が検討したところ、CPUと周辺モジュールの動作速度の乖離、高機能化に伴う周辺モジュールアクセスの増大が発生していることが見いだされた。つまり、マイクロコンピュータのデータアクセス時間に占める周辺モジュールのアクセス時間が増大し、このため、CPUの性能(マイクロコンピュータ全体の性能)を引き出すために、アクセス時間が長く、かつアクセス回数が多くなっている周辺モジュールアクセス性能の改善が必須である。
例えば周辺モジュールへの書き込み動作を高速化し、アドレスやデータをバス制御回路で保持して書き込み動作とCPUの次の命令実行とを並列化することにより、性能向上を図ることが考えられる。しかしながら、この方法は、レジスタへのライト(書き込み)動作に対するものであり、レジスタからのリード(読み出し)動作まで改善することはできない。レジスタの読み出しが行われる場合、レジスタからCPUへのデータ転送が完了するまで、CPUの次の処理が待たされる。キャッシュメモリを用いることでCPUの高速化を可能にしているが、アクセス対象がレジスタの場合はキャッシュ非対象アクセスとなり性能向上を図ることができない。CPU処理能力の向上、大規模システム設計容易化などのため、CPUからレジスタまでにバスブリッジ回路が多数存在する構成が増えている。これはCPUからレジスタまでの距離が遠くなっていることを意味し、アクセスレイテンシの悪化につながっている。
本発明の目的は、周辺モジュールへのアクセス性能を改善するための技術を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
すなわち、半導体集積回路は、バスマスタと、それによってアクセス可能なレジスタを含む周辺モジュールと、上記バスマスタによってアクセス可能なレジスタエントリと、を含む。上記レジスタエントリは、上記バスマスタから見て上記周辺モジュール内のレジスタよりも高速アクセス可能な位置に配置され、且つ、上記周辺モジュール内のレジスタに保持されたデータと同一データが保持されるデータ保持部を含む。上記バスマスタは、上記周辺モジュール内のレジスタからのデータリードに代えて、上記レジスタエントリからのデータリードを行うアクセスモードを含む。バスマスタからのリード要求はレジスタエントリに対してのみ行い、周辺モジュールに対するリード要求は行わないようにする。このことが、所望の周辺モジュールに対応するレジスタ情報を高速に得るという、本発明の目的を達成する。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、周辺モジュールへのアクセス性能を改善するための技術を提供することができる。
1.代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係る半導体集積回路(7)は、バスマスタ(10,20,801)と、上記バスマスタによってアクセス可能なレジスタを含む周辺モジュール(61,62,811〜813)と、上記バスマスタによってアクセス可能なレジスタエントリ(70,806)と、を含む。上記レジスタエントリは、上記バスマスタから見て上記周辺モジュール内のレジスタよりも高速アクセス可能な位置に配置され、且つ、上記周辺モジュール内のレジスタに保持されたデータと同一データが保持されるデータ保持部(808)を含み、上記バスマスタは、上記周辺モジュール内のレジスタからのデータリードに代えて、上記レジスタエントリからのデータリードを行うアクセスモードを含む。
上記の構成において、バスマスタからのリード要求はレジスタエントリに対してのみ行い、周辺モジュールに対するリード要求は行わないようにする。これにより、周辺モジュール内のレジスタ内のデータに代えて、レジスタエントリ内のデータが使用されるので、バスマスタは、所望の周辺モジュールに対応するレジスタ情報を高速に得ることができる。このことが、周辺モジュールへのアクセス性能を改善を達成する。
〔2〕上記〔1〕において、上記バスマスタには、上記周辺モジュール内のレジスタへのデータライトを行うとき、そのライト動作に並行して、同一データを上記レジスタエントリへライトしておく機能を含めることができる。
〔3〕上記〔1〕において、上記周辺モジュールには、上記周辺モジュール内のレジスタの保持情報が変更された際に、それに対応する上記レジスタエントリ内のデータを自ら更新する機能を含めることができる。
〔4〕上記〔1〕において、上記周辺モジュールは、上記周辺モジュール内のレジスタのライト動作が完了する前に、当該ライト動作が完了した旨の通知を上記レジスタエントリに対して行うように構成することができる。ライト動作完了とは、ライト対象レジスタへの書き込みが、周辺モジュール内で確定したタイミングを指す。
〔5〕上記〔1〕において、上記レジスタエントリには、上記周辺モジュールのレジスタに保持されているデータと、上記レジスタエントリ内に保持されている対応データとが一致するか否かを示すバリッドビットを含めることができる。
〔6〕上記〔1〕において、上記バスマスタをCPUとすることができる。その場合において、上記レジスタエントリは、上記CPUからのアクセスを可能とするCPUインタフェース(807)と、上記周辺モジュールからのアクセスを可能とする入力インタフェース(809)と、上記周辺モジュールに対応するデータ保持部(808)とを含んで構成することができる。また、上記データ保持部には、上記周辺モジュール内のレジスタに保持されているデータと、上記レジスタエントリ内のデータ保持部に保持されているデータとが一致しているか否かを示すバリッドビットの記憶エリアを含めることができる。
2.実施の形態の説明
次に、実施の形態について更に詳述する。
<実施の形態1>
一般にデータアクセスを行う場合、リードアクセスに関しては必ずバスマスタに対して所定のレイテンシを発生させる。すなわち、リードデータ待ちによるCPUのストールが発生する。現状の対策方法としては、キャッシュや、プリフェッチなどの技術を挙げることができる。また、バースト(連続)アクセスにより、一度に大量のデータアクセスを可能にすることも行われている。
ここで、周辺モジュールのレジスタアクセスは、一般にキャッシュ対象にできないため、CPUがデータを取り込むまで絶対時間を要している。この課題に対して、(a)CPUのアクセス時間が小さい場所からのアクセスを実現すること、及び(b)レジスタが更新された時は、モジュール側からCPUに向けデータを自ら送り出す(ライトする)ことを検討した。またこの二つを成立させるために、周辺モジュールのレジスタ値のコピーを保持する領域(レジスタエントリ)を用意し、CPUはレジスタエントリからデータを取得することでリードアクセスに対するCPUのストールを低減させる。関連して、周辺モジュールとレジスタエントリを接続する技術も組み合わせる。
ここでリードアクセスに着目した理由は、リードとライトではバスの利用の仕方に違いがあることが分かったためである。例えば、ライトでは、CPUライトコマンドが実行されて、ライトデータがバスシステム処理され、レジスタへの(ライト完了の)書き込みが行われる。また、リードでは、CPUによりリードコマンドが実行され、バスシステムにデータのリクエストが行われ、モジュールの応答により、リードデータがバスシステムを介してCPUに取り込まれる。
このように、ライトはCPUから周辺モジュールへ一方向に処理を流しているのに対し、リードではCPUと周辺モジュールの間を情報が往復していると考えられる。これをライトと同様に一方向に処理できないかを検討した結果が図2に示される。
図2に示されるように、周辺モジュール3を中心として、入力側と出力側とを別々に配置した場合、データの流れは一方向となる。バスシステム1,2ではCPUなどのバスマスタのアクセス時間が比較的に短いのに対して、周辺モジュール3ではバスマスタによるアクセス時間が長くなる。この図2においてリードとライトで異なる点は、リードの場合はCPUなどのバスマスタ4が所定の順序でデータを必要とするため、周辺モジュールの都合だけでデータを送り出すことができない点である。そこで図1に示されるように改善する。
図1では、周辺モジュール3がバスマスタ4に対してデータを出力する対象としてレジスタエントリ5が設けられる。このレジスタエントリ5はアクセス時間が小さい所に配置できればよく、可能であればCPUコア本体に内蔵することも否定しない。レジスタエントリは所定のバスプロトコル実現のために、データの一貫性を示すためのバリッドビットなどを持たせることができる。周辺モジュール3については、自らデータを出力できるように、レジスタエントリと接続される専用高速バスにおけるバスマスタとしての機能を持たせることができる。それは図1で「BM」と記した箇所である。周辺モジュール3は、自身のレジスタ情報を全てレジスタエントリ5に出力しても良いし、必要なレジスタを限定して出力しても良い。その制御はバスシステム1内やレジスタエントリ5に制御レジスタを用意して行う。また、レジスタエントリを必ず使用すべきであると限定する必要もないため、従来形式のリード用バスインタフェースと併用できるものとする。レジスタエントリの使用方法についてこのように考えた理由は、レジスタごとにアクセス頻度は異なるはずで、レジスタエントリの面積を最適化する場合、全レジスタを高速リードアクセスできなくても良いからである。またDMAコントローラなどの代替データ転送により、CPUが容易にアクセスできる場所にデータを移すことも十分有効である。
実施の形態を更に具体的に説明する。
図3には、二つのCPUを含むマイクロコンピュータの基本的な構成が示される。
図3に示されるマイクロコンピュータ7は、デュアルコア演算処理部9と、周辺モジュール51,61、ユーザ論理部66を含み、公知の半導体集積回路製造技術により単結晶シリコン基板などの一つの半導体基板に形成される。尚、ユーザ論理部66も周辺モジュールの一例とされる。図3に示されるマイクロコンピュータ7は、それが搭載されるユーザシステムにおいて、外部メモリ8に結合され、この外部メモリ8のランダムアクセスが可能とされる。
上記デュアルコア演算処理部9は、第1CPU10、第2CPU20、デバッグ機能部30、コア共通レジスタ40、マルチレイヤープラットフォーム50、クロック生成部80とを含む。第1CPU10及び第2CPU20は、それぞれ所定のプログラムに従った演算処理を行う。特にこの第1CPU10及び第2CPU20では、互いに異なるOS(オペレーティングシステム)による処理が可能とされる。第1CPU10及び第2CPU20からそれぞれ200MHzのバス11,12と、100MHzのバス13,14が引き出される。バス11,12,13,14にはデバッグ機能部30が結合され、このバス11,12,13,14を介してシステムデバッグのための各種情報のやり取りが可能とされる。また、バス13,14には、コア共通レジスタ40が結合され、このコア共通レジスタ40を介してCPU10,20間で各種情報のやり取りが可能とされる。第1CPU10及び第2CPU20は、互いに同一構成とされ、それぞれCPUコア101、ユーザRAM(URAM)102、キャッシュバスステートコントローラ(CBSC)103、キャッシュコントローラ(CCN)104、命令オペランドキャッシュ(I$/O$)105、内部バスコントローラ(IBSC)106とを含んで成る。
上記マルチレイヤープラットフォーム50は、DMAC(Direct Memory Access Controller)501、BIU(Bus Interface Unit)503,504,505、マルチレイヤバス(MLB)502とを含む。上記DMAC501及びBIU503〜505は、上記マルチレイヤバス502に結合される。また、上記マルチレイヤバス502は、CPU10,20における内部バスコントローラ106に結合される。上記BIU503には、周辺バス(HPB)60を介して周辺モジュール51,52が結合され、上記BIU504にはユーザ論理部53が結合され、上記BIU505には外部メモリ8が結合される。
尚、図3において、図1,2におけるバスシステムに対応するものについてはハッチングが付されている。
上記の構成において、各バス階層のクロック比を4:2:1に、動作周波数を200MHzに設定した場合を想定する。
(1)CPU10,20は、命令オペランドキャッシュ105及びURAM102に対しては1ステートアクセスが可能とされる(200MHz動作)。
(2)マルチレイヤーバス502からコア共通レジスタ40などに対しては最短1ステートアクセスが可能とされる(100MHz動作)。マルチレイヤープラットフォーム50は、CPU10,20の1/2の動作速度のため、2倍のアクセス時間が必要となり、CPU10,20とマルチレイヤープラットフォーム50との間で同期制御時間がさらに必要となる場合がある。
(3)周辺モジュールバスは、仕様上最短2ステートアクセスが可能である(50MHz以下の動作)。ただしCPU10,20の1/4、マルチレイヤーバス502の1/2の動作速度のため、アクセス時間は、マルチレイヤーバス502の2倍で、マルチレイヤーバス(MLB)502と周辺バス(HPB)60との間の同期制御時間がさらに必要となる場合がある。つまりCPU10,20からは最短で4ステート以上のアクセスになる。
(4)システム規模の増大、CPU10,20の高速化に応じて、バスの階層が深くなっている。
(5)周辺モジュールの動作速度は、機能仕様からCPU10,20よりも低速である。また、接続容易性、再利用性、リアルタイム性を優先したバスプロトコルを採用する必要がある。
図4には、図3に示される構成における主要部の動作タイミングが示される。図4において、CPUアドレス及びバスコマンドによって、例えば周辺モジュール51内のレジスタが指定され、そこにCPUライトデータWR1が書き込まれる。このとき、マルチレイヤバス(MLB)502では、MLBクロックに同期してデータが転送され、周辺バス(HPB)60では、HPBクロックに同期してデータ転送が行われる。このとき、CPU10,20におけるCBSC103のライトバッファ機能により、CPU10又は20は、周辺モジュールへのライト動作の終了を待たずに次の処理に移ることができる。CPU10又は20による読み出しデータはRD1で示される。図4に示される例では、周辺モジュールをリードすると、CPU10又は20のデータバスにデータが到達するまで10ステート必要となる。つまり、マルチレイヤバス・周辺モジュール間(8ステート)+マルチレイヤバス・CPU間(2ステート)=10ステートとなる。
ライトの場合も同様に、最短で10ステート必要であるが、CPU10,20におけるCBSC103のライトバッファ機能を使用してライト動作させることで、ライト動作の終了を待たずにCPUを次の処理に進ませることが可能である。しかし、CPU10又は20が周辺モジュール内のレジスタをリードすると、待ち時間(ストール時間)は非常に大きく無視出来なくなる。
図5には、本発明にかかるデータ処理装置の一例とされるマイクロコンピュータが示される。図5に示されるマイクロコンピュータが図3に示されるのと大きく相違するのは、レジスタエントリ70が設けられた点であり、CPU10又は20による周辺モジュールアクセス時のストール時間の短縮が図られている。
尚、図5ではCPU20の内部構成が省略されている。
上記レジスタエントリ70は、バス11、デバッグ機能部30、CPU10,20におけるIBSC106、周辺モジュール61,62、及びユーザ論理66に結合される。上記レジスタエントリ70は、CPU10,20に対して各種信号の出力を可能とするCPUインタフェースと、周辺モジュール61やユーザ論理66からの信号取り込みを可能とする入力インタフェース、データの保持を可能とするデータ保持部、上記CPUインタフェースや入力インタフェース及びデータ保持部の動作制御を可能とする制御部等を含む。
図6には、図5に示される構成において、ライト時はCPU10,20におけるCBSC103のライトバッファ機能を利用して高速化を図り、リード時はレジスタエントリからのリードによる高速化を図った場合の動作タイミングが示される。
周辺モジュールにおける動作モード設定レジスタへのライト動作はマルチレイヤープラットフォーム50を介して行われる。従って、ここでは、図3に示される構成の場合と同様に、ライトバッファ機能が利用される。そして本例ではこのライト動作と並行してレジスタエントリ70に上記ライトデータWR1のコピーが書き込まれる。周辺モジュール内のレジスタへのライト完了よりもレジスタエントリ70へのライトが早いため、一定時間コヒーレンシが保たれなくなる。そのため、周辺バス(HPB)60のライトサイクルのT2ステートに入った段階で、周辺モジュールからレジスタエントリ70にライト完了通知を送信し、データの一致を示すフラグ(バリッドビット)を立てる。CPU10又は20は、このバリッドビットの論理値を判定することで、周辺モジュール61,62と、それに対応するレジスタエントリ70との間でデータが一致するか否かを判断することができる。上記の完了通知はCPUクロックと同速で送受信される。上記のように周辺バス(HPB)60のライトサイクルのT2ステートに入った段階で、周辺モジュールからレジスタエントリ70にライト完了通知が送信される。CPU10又は20が動作モード設定レジスタをリードする時、レジスタエントリ70からデータを取り出すように制御する。このとき、CPU10又は20からのリード要求はレジスタエントリ70に対してのみ行い、周辺モジュールに対するリード要求は行わないようにする。これにより、MLBリードデータ(RD1)に代えて、レジスタエントリ70内のデータが使用されるので、CPU10又は20は、所望の周辺モジュールに対応するレジスタ情報を高速に得ることができる。
このように、ライト時はCPU10,20におけるCBSC103のライトバッファ機能を利用して高速化を図り、リード時はレジスタエントリ70からのリードによって高速化を図ることによって、周辺モジュールへのアクセス性能を改善することができる。
図7には、図5に示される構成において、周辺モジュールでフラグがセットされるなどレジスタ値が更新された時、周辺モジュールからレジスタエントリを更新する場合の動作タイミングが示される。
CPU10又は20がライトした値を「WR1」とし、新しい値を「UP1」とする。周辺モジュール内のレジスタの値は、周辺バス60のHPBクロックに同期して、タイミングTM2でUP1に更新される。タイミングTM2で周辺モジュール内のレジスタが更新され、レジスタエントリ70の値と不一致になる。そこでCPU10又は20と同じかそれ以上のクロックでレジスタ値が更新されるかを確認し、タイミングTM1で検出する。レジスタが更新される場合は、直ちに更新値をレジスタエントリ70へ転送する。図7の例では、タイミングTM3でレジスタエントリが新しいレジスタ値をラッチしたと仮定している。レジスタエントリ70は、タイミングT3から可能な限り早くエントリ情報を更新する。図7の例では、CPUクロックで更新すると仮定し、エントリ書き換えに2ステート要している。CPU10又は20が任意のタイミング、または割込み要求などでレジスタリードを行う際、レジスタエントリ70に新しいデータが既にあるため、それを1ステートでリードすることが可能である。このように、周辺モジュールでフラグがセットされるなどレジスタ値が更新された時、周辺モジュールからレジスタエントリが更新されることによって、周辺モジュールへのアクセス性能を改善することができる。
上記例によれば、以下の作用効果を得ることができる。
(1)図6に示されるように、ライト時はCPU10,20におけるCBSC103のライトバッファ機能を利用して高速化を図ることができる。
(2)リード時はレジスタエントリ70からのリードによって高速化を図ることができる。
(3)図7に示されるように、周辺モジュールでフラグがセットされるなどレジスタ値が更新された時、周辺モジュールからレジスタエントリを更新することによって、周辺モジュールへのアクセス性能を改善することができる。
(4)上記(1),(2),(3)の作用効果により、周辺モジュールへのアクセス性能を改善することができる。
<実施の形態2>
図8には、本発明にかかるデータ処理装置の一例とされるマイクロコンピュータの別の構成例が示される。図8に示されるマイクロコンピュータは、CPU801、ROM/RAMなどの半導体メモリ802、命令オペランドキャッシュ(I$/O$)803、バスシステム804、レジスタエントリ806、及び周辺モジュール811,812,813を含み、公知の半導体集積回路製造技術により単結晶シリコン基板などの一つの半導体基板に形成される。バスシステム804は、図5に示されるようなマルチレイヤープラットフォーム50を含む。周辺モジュール811,812,813は、自らデータを出力できるようにバスマスタとしての機能が搭載されている。上記バスシステム804は、バスインタフェースや、バスステートコントローラなどを含んで成る。レジスタの高速リードを可能とする高速リードインタフェース814と、レジスタへのライト動作や通常リードの際に使用されるライト及び通常リードインタフェース815とが設けられる。高速リードインタフェース814は、レジスタエントリ806や、バスシステム804の一部、及び周辺モジュール811,812,813の一部によって形成される。ライト及び通常リードインタフェース815は、バスシステム804の一部及び周辺モジュール811,812,813の一部を含んで成る。
本例において、上記レジスタエントリ806は以下のような機能を持つ。
(1)周辺モジュールのレジスタ値のコピーを保持する記憶エリアを有する(データ保持はフリップフロップ回路やメモリなどが適用可能)。
(2)周辺モジュール811〜813へのライト動作と並行してレジスタエントリのデータも更新できる機能を有する。
(3)レジスタエントリと実レジスタの間でデータの一貫性が保障できていることを表示するバリッド(V)ビットの記憶エリアを有する。
(4)実レジスタに付されたIDによる、レジスタエントリへの書き込み指定や制御機能を有する。
(5)周辺モジュールの特性やレジスタ本数に応じて入力インタフェースを選択する機能を有する。接続数が少ない場合は、高速パラレルデータバス(CPU速度と同等)が使用でき、接続数が多い場合にはCPU速度と同等以上の周波数でアクセス可能な高速シリアルバスが使用できる。また、実レジスタへの書き込み完了通知のために専用信号線が用いられる。
(6)CPU801から1ステートアクセス可能なインタフェース機能を有する。
上記の機能を有するレジスタエントリ806は、具体的にはバスマスタインタフェース(I/F)807、データ保持部808、入力インタフェース(I/F)809、及び制御部810を含んで成る。バスマスタインタフェース807は、CPUバス805に結合され、CPU801やその他のバスマスタへのデータ出力を可能とする。データ保持部808には、各種動作モード設定レジスタに書き込まれるデータのコピーなどが保持される。入力インタフェース809は、周辺モジュール811,812,813との間で各種信号のやり取りを可能とする。周辺モジュール811,812,813との間でやりとりされる各種信号には、バリッド制御信号(14)、リードサイクル実行通知信号(15)、周辺モジュール811,812,813からの読み出しデータ(16)が含まれる。
図9には、上記レジスタエントリ806の更に詳細な構成例が示される。
制御部810は、レジスタエントリ全体制御部8101、リード制御部及びコピー制御部8102、レジスタライトデータインタフェース8103、直接リードインタフェース8104を含む。レジスタエントリ全体制御部8101は、入力されたレジスタエントリ制御信号に基づいてレジスタエントリの有効・無効や一括して初期化をするなど、レジスタエントリの全体的な制御を行う。リード制御部及びコピー制御部8102は、レジスタエントリ用アクセス制御信号に基づいてデータ保持部808のリード制御やコピー(並行書き込み)制御を行う。レジスタライトデータインタフェース8103は、周辺モジュールへのデータライトの際にそれに並行してレジスタエントリ806へライトされるデータの取り込みを可能とする。上記データ保持部808に格納されるデータは、上記周辺モジュール811〜813に対応して割り当てられたID番号によって管理される。バリッドビットの記憶エリアと、データ(〜32bit)の記憶エリアが設けられ、上記ID番号に関連づけて、上記周辺モジュール811,812,813に対応するデータやバリッドビットの設定が可能とされる。
上記レジスタエントリ806の制御について詳述する。
レジスタエントリ806は、主に記憶回路とインタフェース回路から作られることを想定している。また、従来のバスアクセス方式との両立を計る為、レジスタエントリ806の制御機構は、CPU801と周辺モジュール811〜813との間に配置するのが好ましいと考えられる。図8において、レジスタエントリ806への入力をバスシステム804と周辺モジュール811〜813とに分けているのはこのためである。バス制御部810はコントロールレジスタを含み、このコントロールレジスタには、レジスタエントリ全体の有効又は無効制御を行う第1レジスタ、レジスタエントリを使用する単数または複数のレジスタのID番号を設定する第2レジスタ、レジスタエントリの初期化制御のための第3レジスタ、レジスタアクセス高速化の有効及び無効を設定する第4レジスタ、エントリサイズの変更を設定可能な第5レジスタなどの各種レジスタが含まれる。
レジスタエントリを使用するレジスタのID番号を設定する第2レジスタにおいて、レジスタに割り当てるIDは、設計段階でコンフィギュレーションして、あらかじめ決定しておくようにする。レジスタエントリの初期化制御のための第3レジスタとしては、全領域の一括消去、指定IDのバリッドビットのクリア機能などがあると有用である。レジスタアクセス高速化有効又は無効を設定する第4レジスタは、レジスタアクセス高速化設定を最終的に有効に設定される。レジスタIDごとに個別に設定可能とし、状況に応じて通常アクセス方式を使用することも可能である。エントリサイズの変更を設定可能な第5レジスタは、実レジスタのサイズを最大32ビットと想定すると、一つのIDに32ビットのデータを割り当てることになる。しかしデータバッファ的に使用するなど、32ビット以上のデータ保持の要求があった場合、一つのIDに32×nビット長のデータを格納できる使用方法を提供する事が可能である。
図10には、図8及び図9に示される構成における主要部の動作タイミングが示される。
図10に示される例は、周辺モジュールとレジスタエントリ間をシリアルバスで接続し、シリアル送信クロック(周辺モジュール送信クロック)の周波数をCPUクロックの仮に5倍とした場合である。レジスタエントリ70では、図7に示される場合と同様に、タイミングTM3から可能な限り早くエントリ情報が更新される。つまり、シリアルデータがレジスタエントリ807に届いてからシリアル−パラレル変換が行われ、その後にエントリデータの更新が行われる。
ここでは純粋なデータ部(8ビット)のみを送信するようになっているが、実際には周辺モジュール毎のID番号も送る必要がある。さらに、この方式で32ビット長のデータを送るには、図10に示される場合の4倍の時間が必要になってしまう。これについて改善した方式が図11に示される。
図11に示される動作タイミング例では、周辺モジュールの送信クロックを高速化している。8ビットのシリアル転送路を4本組み合わせて、32ビットのデータを送ることができるようにした。8ビット単位に4本束ねる方式は、バイトアクセスへの対応や8ビット、16ビットレジスタへの対応への適用性を考慮したものである。
上記の構成において、先ず周辺モジュール内でレジスタの更新があることが確認される。次にタイミングTM4でデータ送信開始を示すためにデータ信号を1クロックローレベルにする。さらに1クロックローレベルが続いた場合、ローレベルを検出したデータを更新対象として認識する。ハイレベルであった場合は、送信されてきたデータを無視する。
次に図11におけるタイミングT5において、2クロック期間で、ID番号を送る。ID番号は4本のデータ信号の状態を並列に読み取る。1クロック目で上位4ビット、2クロック目で下位4ビットを読み取るようにすれば、8ビットのIDを送信できる。引き続き、レジスタのデータを送信し、8ビットのデータを送信完了したら、全てのデータ信号を1クロックだけローレベルにしてからハイレベルに戻す。これによりデータ転送終了を通知する。この後パラレルデータへの変換と、エントリデータの更新を行う。このような動作により、周辺モジュール811〜812内の実レジスタと並行してレジスタエントリ806の更新を完了できる。
ここで、上記レジスタエントリ807の使用手順をまとめると、以下の通りである。
(1)レジスタエントリにクロックが供給され、レジスタ設定が行われる。このとき、クロックイネーブル設定や、供給するクロック周波数設定が行われる。
(2)レジスタエントリをイネーブルにし、初期化を行う(レジスタ設定)。このとき、マスタイネーブルが設定され、バリッドビットがクリアされる。又はデータ保持部808の全面一括クリアを実行しても良い。
(3)レジスタエントリを利用したいレジスタのID番号を制御810内のレジスタに設定する(レジスタ設定)。このとき、どのエントリに、どのID番号のレジスタデータを格納するかが登録される。また、エントリサイズが設定される。
(4)周辺モジュールを使用する設定が行われる。
(5)レジスタエントリの各ID番号毎のイネーブルビットをセットし、周辺モジュールからの書き込みを許可する(レジスタ設定)。
(6)動作中においては、周辺モジュールへライトしたら、レジスタエントリにも同じデータを並列してライトする。また、バリッドビットをクリア(インバリッド状態)とする。周辺モジュールにおける実レジスタへのライトが終わり、周辺モジュール側からのバリッドビットセット信号を受けた場合には、それに応じてバリッドビットがセットされる。また、周辺モジュールからレジスタエントリにデータ更新が発生した場合には、それに呼応して、レジスタエントリが速やかに更新される。
(7)レジスタエントリを使用しなくなった場合は、各ID番号毎のイネーブルビットをクリアする。完全に使用しない場合は、さらにマスタイネーブルもクリアする。これにより、通常のレジスタアクセスのみが有効の状態になる。
(8)低消費電力などを意図した場合は、さらにクロック供給を停止するようにする。
次に、本発明の適用対象レジスタについて説明する。
本発明で用いるレジスタエントリは、記憶回路であり有限な資源である。これを有効活用するために、対象とするレジスタとして適当と思われる条件を検討した。対象とするレジスタとして適当と思われるのは以下のレジスタである。
(1)高い頻度でアクセスが発生するレジスタ、(2)ビット操作が多く実行されるレジスタ(バスアクセスにリードが必ず含まれるもの)、(3)シリアル通信などで複数のチップ間の通信を行う場合の受信データレジスタ、(4)符号化/復号化を行うモジュールの処理結果を格納するレジスタ、(5)モジュールの制御ビットや、状態フラグを持つレジスタ、(6)CPUの演算(DSP/Codec)処理のために、多量のデータをハンドリングするレジスタ、(7)割り込み要求を受付けた結果、データをリードするようなレジスタなどである。
尚、反対に、あまり適さないと思われるレジスタは、不具合の原因になりやすいレジスタや、高速化のメリットが少ないレジスタなどである。例えば、アクセス頻度が低いものや、LSIの動作の根本に関わるシステムレジスタ、DMA転送による処理が重視されるレジスタ、システム制御タイマなどである。
上記の例によれば、以下の作用効果を得ることができる。
(1)図6に示されるように、ライト時はCPU10,20におけるCBSC103のライトバッファ機能を利用して高速化を図ることができる。
(2)リード時はレジスタエントリ70からのリードによって高速化を図ることができる。
(3)図7に示されるように、周辺モジュールでフラグがセットされるなどレジスタ値が更新された時、周辺モジュールからレジスタエントリが更新されることによって、周辺モジュールへのアクセス性能を改善することができる。
(4)上記(1),(2),(3)の作用効果により、周辺モジュールへのアクセス性能を改善することができる。
(5)32ビット長のデータを送るには、図11に示されるように、8ビットのシリアル転送路を4本組み合わせるようにすれば、32ビットのデータを高速に送ることができるようになる。
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
周辺モジュールのレジスタアクセスには、特徴的なアクセスがある。イネーブルビットやフラグのセットやクリア動作である。コントローラ系ではかなり多用されるアクセスで、リードしたレジスタの該当する1ビットについて、論理値“0”や“1”にデータを書き換えて同じレジスタに書き戻す動作である。CISC系のマイクロコンピュータでは、ビット操作命令を使用し、一連の動作を1命令でアトミックに実行できるものがある。ビット操作を行った時、リードする対象がレジスタエントリである場合、リード後のライトで不具合が発生する。フラグなどのビットは、フラグセット状態を読み出した後にクリアができるものがある。論理的には、図12に示されるようにステートマシンによりフラグの制御が行われている。すなわち、図12では、フラグセット状態を読み出すと「11」状態を示し、この状態でフラグクリアのライト動作を行うと初期状態の「00」に遷移する。レジスタエントリに対して「1リード後の0ライト」動作が高速に行われると、実レジスタへのライトにおいて、リードが行われていないことになる。すなわち、周辺モジュール内の実レジスタを正常に書き換えることができない。そこで、図9において、入力インタフェース809においてレジスタリード通知インタフェースを設ける。CPU801がビット操作命令により、レジスタに対するビット操作(Read-Modify-Write)をした場合、レジスタエントリがリードされたことを周辺モジュールへ通知する。この通知があった後にライトが行われれば、周辺モジュールにおける実レジスタに対しても正しくビット操作を実施できる。ただし、ライトが発生する前にリード通知を行う必要があるため、動作速度は周辺-レジスタエントリ間のバス速度と同じにしなければならない。
本発明の効果を向上させるために、CPUの命令や機能を改善することが有効である。本発明の実施の形態で述べたように、レジスタエントリと周辺モジュールの実レジスタの間で値が一致していない期間が想定される。不一致である場合、CPU801はソフトウェアで処理を行わなければならない場合がある。そこでCPU801がレジスタエントリ70からデータをリードする時に、図示はしないが、レジスタエントリのデータ保持部808が保持するバリッドビット情報をCPUに対して出力可能な回路有し、CPUは上記回路から出力されたバリッドビット情報に基づき動作するロード命令を持つ。例えば、「レジスタエントリから有効なデータをリードする」という命令であり、レジスタエントリ70からリードした時のバリッドビット情報が無効を示した場合は、レジスタエントリ70から出力されるバリッドビット情報が有効を示すまでレジスタエントリのデータをリードし続ける。つまり、一種の条件付ロード命令の様な命令をさらに追加することで、CPUにおいては有効なレジスタ値を最短の時間でリードすることが可能となる。また、一つの命令によって、バリッドビット情報を条件とする条件比較とレジスタエントリのデータをロードするロード命令とを実現できるので、命令コードサイズも削減可能である。バスシステムの改善にCPU機能を組み合わせることは、よりシステム性能向上を図ることが出来るものである。
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種データ処理装置に適用することができる。
本発明は、少なくとも、周辺モジュールを含むことを条件に適用することができる。
本発明にかかる半導体集積回路の一例とされるマイクロコンピュータの構成例ブロック図である。 図1に示される構成の比較対象とされるマイクロコンピュータの構成例ブロック図である。 図5に示される構成の比較対象とされるマイクロコンピュータの構成例ブロック図である。 図3に示される構成における主要部の動作タイミング図である。 本発明にかかる半導体集積回路の一例とされるマイクロコンピュータの構成例ブロック図である。 図5に示される構成における主要部の動作タイミング図である。 図5に示される構成における主要部の別の動作タイミング図である。 本発明にかかる半導体集積回路の一例とされるマイクロコンピュータの別の構成例ブロック図である。 図8における主要部の詳細な構成例ブロック図である。 図8及び図9に示される構成における主要部の動作タイミング図である。 図8及び図9に示される構成における主要部の別の動作タイミング図である。 ステートマシンによるフラグ制御論理の状態遷移図である。
符号の説明
1,2 バスシステム
3 周辺モジュール
4 バスマスタ
5 レジスタエントリ
7 マイクロコンピュータ
8 外部メモリ
9 デュアルコア演算処理部
10,20 CPU
30 デバッグ機能
40 コア共通レジスタ
50 マルチレイヤープラットフォーム
51,52 周辺モジュール
53 ユーザ論理
70 レジスタエントリ
101 CPUコア
102 ユーザRAM(URAM)
103 キャッシュバスステートコントローラ(CBSC)
104 キャッシュコントローラ(CCN)
105 命令オペランドキャッシュ(I$/O$)
106 内部バスコントローラ(IBSC)
501 DRAM
502 マルチレイヤバス(MLB)
503,504,505 BIU
801 CPU
802 半導体メモリ
803 命令オペランドキャッシュ(I$/O$)
804 バスシステム
806 レジスタエントリ
807 バスマスタインタフェース
808 データ保持部
809 入力インタフェース
810 制御部
811,812,813 周辺モジュール

Claims (8)

  1. バスマスタと、
    上記バスマスタによってアクセス可能なレジスタを含む周辺モジュールと、
    上記バスマスタによってアクセス可能なレジスタエントリと、を含み、
    上記レジスタエントリは、上記バスマスタから見て上記周辺モジュール内のレジスタよりも高速アクセス可能な位置に配置され、且つ、上記周辺モジュール内のレジスタに保持されたデータと同一データが保持されるデータ保持部を含み、
    上記バスマスタは、上記周辺モジュール内のレジスタからのデータリードに代えて、上記レジスタエントリからのデータリードを行うアクセスモードを含むことを特徴とする半導体集積回路。
  2. 上記バスマスタは、上記周辺モジュール内のレジスタへのデータライトを行うとき、そのライト動作に並行して、同一データを上記レジスタエントリへライトしておく機能を含む請求項1記載の半導体集積回路。
  3. 上記周辺モジュールは、上記周辺モジュール内のレジスタの保持情報が変更された際に、それに対応する上記レジスタエントリ内のデータを更新する機能を含む請求項1記載の半導体集積回路。
  4. 上記周辺モジュールは、上記周辺モジュール内のレジスタのライト動作が完了する前に、当該ライト動作が完了した旨の通知を上記レジスタエントリに対して行う請求項1記載の半導体集積回路。
  5. 上記レジスタエントリは、上記周辺モジュールのレジスタに保持されているデータと、上記レジスタエントリ内に保持されている対応データとが一致するか否かを示すバリッドビットを含む請求項1記載の半導体集積回路。
  6. 上記バスマスタはCPUとされ、
    上記レジスタエントリは、上記CPUからのアクセスを可能とするCPUインタフェースと、
    上記周辺モジュールからのアクセスを可能とする入力インタフェースと、
    上記周辺モジュールに対応するデータ保持部と、を備え、
    上記データ保持部は、上記周辺モジュール内のレジスタに保持されているデータと、上記レジスタエントリ内のデータ保持部に保持されているデータとが一致しているか否かを示すバリッドビットの記憶エリアを含む請求項1記載の半導体集積回路。
  7. 上記バスマスタはCPUとされ、
    上記レジスタエントリは、上記CPUがデータ保持部から読み出したデータに対応するバリッドビットの情報を上記CPUへ出力する回路をさらに備える請求項5記載の半導体集積回路。
  8. 上記バスマスタはCPUとされ、
    上記レジスタエントリのバリッドビットの情報により、上記CPUは、バリッドビット情報が有効状態を示すまでデータをリードする命令を有する請求項5記載の半導体集積回路。
JP2008144233A 2008-06-02 2008-06-02 半導体集積回路 Pending JP2009289232A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008144233A JP2009289232A (ja) 2008-06-02 2008-06-02 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008144233A JP2009289232A (ja) 2008-06-02 2008-06-02 半導体集積回路

Publications (1)

Publication Number Publication Date
JP2009289232A true JP2009289232A (ja) 2009-12-10

Family

ID=41458353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008144233A Pending JP2009289232A (ja) 2008-06-02 2008-06-02 半導体集積回路

Country Status (1)

Country Link
JP (1) JP2009289232A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012202174A1 (de) 2011-02-28 2012-08-30 Denso Corporation Mikrocomputer

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266616A (ja) * 1993-03-12 1994-09-22 Toshiba Corp メモリアクセス制御装置
JP2000227895A (ja) * 1999-02-05 2000-08-15 Nec Niigata Ltd 画像データ転送装置および画像データ転送方法
JP2001014259A (ja) * 1999-06-28 2001-01-19 Hitachi Ltd データ処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266616A (ja) * 1993-03-12 1994-09-22 Toshiba Corp メモリアクセス制御装置
JP2000227895A (ja) * 1999-02-05 2000-08-15 Nec Niigata Ltd 画像データ転送装置および画像データ転送方法
JP2001014259A (ja) * 1999-06-28 2001-01-19 Hitachi Ltd データ処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012202174A1 (de) 2011-02-28 2012-08-30 Denso Corporation Mikrocomputer
US9015272B2 (en) 2011-02-28 2015-04-21 Denso Corporation Microcomputer

Similar Documents

Publication Publication Date Title
JP7227680B2 (ja) ノンブロッキング高性能トランザクションクレジットシステムを備えるマルチコアバスアーキテクチャ
US9372808B2 (en) Deadlock-avoiding coherent system on chip interconnect
JP4982375B2 (ja) 複数のコアを介してのモニタリングされたキャッシュラインの共有
JP4170218B2 (ja) キャッシュミスに応答してタスクを切り替えることによってキャッシュベース埋め込みプロセッサのスループットを改善する方法および装置
US11803505B2 (en) Multicore bus architecture with wire reduction and physical congestion minimization via shared transaction channels
US20120198165A1 (en) Mechanism to Update the Status of In-Flight Cache Coherence In a Multi-Level Cache Hierarchy
US7581054B2 (en) Data processing system
JP5102789B2 (ja) 半導体装置及びデータプロセッサ
JP6382446B2 (ja) デッドロック回避のための方法及び回路
JP5499987B2 (ja) 共有キャッシュメモリ装置
JPWO2004031943A1 (ja) データプロセッサ
JP3623379B2 (ja) マイクロプロセッサ
JP4178268B2 (ja) マイクロコントローラ
JP2009289232A (ja) 半導体集積回路
US5881256A (en) Bus interface unit capable of simultaneously proceeding with two bus cycles in a high-performance microprocessor
JP4024247B2 (ja) 半導体データプロセッサ
JP2006079394A (ja) データ処理装置
JP2001034533A (ja) キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法
US8560748B2 (en) Information processing system including interrupt processing function
JP2008287557A (ja) バスシステム及びマイクロコンピュータ
JP2011076584A (ja) 半導体集積回路装置
JP3077807B2 (ja) マイクロコンピュータシステム
CN115658601A (zh) 多核处理器系统及其控制方法
JP2009048322A (ja) インタフェースモジュール及び半導体集積回路
JP4319788B2 (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100527

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130606