(57)【特許請求の範囲】
【請求項１】
チップ上にＣＰＵと複数のメモリマクロとインターリーブコントローラが配置され、前記複数のメモリマクロが交互に動作するインターリーブ構成を備えたシングルチップ・マイクロコンピュータであって、
システムクロックが入力される複数のリードクロック生成回路が前記複数のメモリマクロに隣接して各々配置され、前記リードクロック生成回路によって前記システムクロックを分周したリードクロックが前記メモリマクロに供給され、前記リードクロックにより前記メモリマクロから読み出されたデータを前記ＣＰＵが前記システムクロックでサンプリングすることを特徴とするシングルチップ・マイクロコンピュータ。
【請求項２】
前記リードクロック生成回路は、前記メモリマクロのクロック入力端子に隣接して各々配置されていることを特徴とする請求項１に記載のシングルチップ・マイクロコンピュータ。
【請求項３】
前記システムクロックは、前記チップ上に張り巡らされたクロックツリーにより供給されていることを特徴とする請求項１または２に記載のシングルチップ・マイクロコンピュータ。
【請求項４】
前記リードクロック生成回路は、前記システムクロックと、アドレスの奇数・偶数番地を判別するためのアドレス信号と、前記メモリマクロのチップセレクト信号と、アドレスの再構築状態を判別するための信号とを入力し、これらの入力信号に基づいて前記システムクロックを分周したリードクロックを対応する前記メモリマクロに出力することを特徴とする請求項１〜３のいずれかに記載のシングルチップ・マイクロコンピュータ。
【請求項５】
前記インターリーブコントローラは、前記ＣＰＵに隣接して配置され、前記ＣＰＵからのアドレスデータに基づいて前記複数のメモリマクロに対応したアドレスを再構築して前記複数のメモリマクロそれぞれに対するアクセスアドレスとして出力する機能と、前記複数のメモリマクロから読み出されたデータを、相互に切り替えながらデータ信号として前記ＣＰＵに出力する機能を有していることを特徴とする請求項１〜４のいずれかに記載のシングルチップ・マイクロコンピュータ。
【請求項６】
前記メモリマクロは、フラッシュＲＯＭであることを特徴とする請求項１〜５のいずれかに記載のシングルチップ・マイクロコンピュータ。
【請求項７】
前記メモリマクロは、ＲＯＭまたはＲＡＭであることを特徴とする請求項１〜６のいずれかに記載のシングルチップ・マイクロコンピュータ。
【請求項８】
前記リードクロック生成回路は、前記ＣＰＵが前記メモリマクロの連続したアドレスにアクセスする場合には前記システムクロックを分周した分周クロックを前記メモリマクロに供給し、前記ＣＰＵが前記メモリマクロの非連続アドレスにアクセスする場合には前記分周クロックの周期を更に伸ばしたクロックを前記メモリマクロに供給することを特徴とする請求項１に記載のシングルチップ・マイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、チップ上にメモリマクロが配置されたシングルチップ・マイクロコンピュータにおけるリードクロック分配方法に関する。
【０００２】
【従来の技術】
図６は、チップ上にＣＰＵおよび複数のフラッシュROMを配置したシングルチップ・マイクロコンピュータ回路配置の従来例を示しており、CPU(1)、プログラムを格納する複数のフラッシュROMマクロ(2-1〜2-4)、フェッチバスをインターリーブ構成としたときの制御をおこなうインターリーブコントローラ(3)を備えている。
【０００３】
CPU(1)およびインターリーブコントローラ(3)は、外部から入力されるシステムクロックで動作する。このシステムクロックは、チップ上に張られたクロックツリーを経由して供給される。このクロックツリーにより各回路素子に供給されるクロックのクロックスキューは一定範囲内に抑えられたものとなっている。
【０００４】
フラッシュROM(2-1〜2-4)は、CPU(1)などの動作速度に比較して低速であるため、通常シングルチップ・マイクロコンピュータの動作速度を向上させるために、インターリーブ構成を採用し、複数のフラッシュROM(2-1〜2-4)を交互に動作させることによって見かけ上CPU(1)の動作速度と同等の動作速度を得ることが出来るようになっている。その時のフラッシュROM(2-1〜2-4)へ供給されるリードクロックとしては、インターリーブコントローラ(3)内でシステムクロックを分周したクロックが使用される。
【０００５】
図７は、偶数側、奇数側の２個のフラッシュROM(2-1,2-2)を備えて構成した場合の従来のシングルチップ・マイクロコンピュータ回路構成を示すブロック図である。
【０００６】
CPU(1)はインターリーブコントローラ(3)を介してフラッシュROM(2-1,2-2)と接続される。CPU(1)とインターリーブコントローラ(3)間の接続は、CPU(1)からは、フラッシュROM(2-1,2-2)に格納されているプログラムをフェッチしたり、データにアクセスするためのアドレスと、フェッチバスの状態を制御する制御信号出力およびクロックの状態を制御しクロックを生成するための制御信号がインターリーブコントローラ(3)へ出力される。一方、連続アクセス時には、インターリーブコントローラ(3)からは、フラッシュROM奇数側(2-1)、偶数側(2-2)から読み出されたデータが、相互に切り替えられながらCPU(1)へデータ信号として出力される。
【０００７】
また、インターリーブコントローラ(3)とフラッシュROM(2-1,2-2)間の接続は、インターリーブコントローラ(3)からは、CPU(1)からのアドレスデータに基づいてインターリーブコントローラ(3)内にてフラッシュROM奇数側(2-1)および偶数側(2-2)に対応して再構築されたアドレスが、フラッシュROM奇数側(2-1)および偶数側(2-2)それぞれに対して出力される。また、インターリーブコントローラ(3)は、フラッシュROM奇数側(2-1)および偶数側(2-2)の両者のリードクロックを生成して供給する。一方、フラッシュROM(2-1,2-2)からは、それぞれインターリーブコントローラ(3)からのリードクロックに同期して読み出されたデータがインターリーブコントローラ(3)へ出力される。
【０００８】
図８は、図６の回路配置に対応させて２組のフラッシュROMを採用した場合の従来のシングルチップ・マイクロコンピュータ回路構成を示すブロック図であり、２組のフラッシュROM(2-1〜2-4)が配置されている点を除いて図７に示す回路構成と同様である。
【０００９】
これらの従来の回路構成において、インターリーブコントローラ(3)では、CPU(1)からの制御信号を使用しCPU(1)と同一周波数のシステムクロックで動作するために、CPU(1)・インターリーブコントローラ(3)間信号のセットアップ、ホールド時間を満たす必要があるが、動作周波数が高くなるにしたがって、セットアップ時間のマージンが少なくなってくる。そこで動作周波数を上げていく場合には、インターリーブコントローラ(3)はCPU(1)に近づけて配置される。インターリーブコントローラ(3)では、CPU(1)からの制御信号を使用して再構築したアドレス信号とリードクロックを生成してフラッシュROM(2-1〜2-4)へ供給する。
【００１０】
一方、フラッシュROM(2-1〜2-4)は大きな領域を占有するため、チップ内の配置位置は限られたものになり、かつ、各フラッシュROM(2-1〜2-4)のクロック入力端子はそれぞれ１カ所に限定されている。そこで、フラッシュROM(2-1〜2-4)のチップ内での配置を決定したあと、インターリーブコントローラ(3)から各フラッシュROM(2-1〜2-4)へのリードクロックは迂回させないでそれぞれ直接供給するように配線され、各フラッシュROM(2-1〜2-4)毎のリードクロックスキューを一定範囲内に抑えるようにしている。
【００１１】
また、その他の接続すべき信号も迂回配線をおこなわないように配線を実施することにより、スキューの均一化が図られている。
【００１２】
図９は、従来のシングルチップ・マイクロコンピュータにおける連続フェッチ動作時の状態を示すタイムチャートである。以下、従来例の動作を、図６〜図９を参照して説明する。
【００１３】
シングルチップ・マイクロコンピュータ内では、クロックツリーが張り巡らされ、システムクロック(a)は、そのクロックツリーによってクロック間のスキューは一定範囲内に抑えられている。
【００１４】
このシステムクロック(a)に対し、フラッシュROM偶数側(2-2,2-4)リードクロック(d)、フラッシュROM奇数側(2-1,2-3)リードクロック(g)共にインターリーブコントローラ(3)にて生成し、最短距離で各フラッシュROMマクロに供給している。このように最短距離で配線してはいるが、インターリーブコントローラ(3)から各フラッシュROM(2-1〜2-4)までは或長さの配線が必要であるので、インターリーブコントローラ(3)からのリードクロックは、図９に示すように、各フラッシュROM(2-1〜2-4)のクロック入力端子においてこの配線長による遅延（配線遅延）を生ずる。
【００１５】
また、フラッシュROM(2-1〜2-4)からのデータ読み出しは、各フラッシュROM(2-1〜2-4)に入力されるリードクロックの立ち上がりに同期してその読み出し動作が開始されるが、図９に示すように、フラッシュROM(2-1〜2-4)の出力遅延が大きいために、例えばクロックサイクル▲１▼で指定したアドレス(An)の読み出しデータ(Dn)が確定する時点はクロックサイクル▲２▼にずれ込み、さらに、各フラッシュROM(2-1〜2-4)の出力端からCPU(1)までの配線長による遅延（配線遅延）を受ける。
【００１６】
従って、図９に示すように、CPU(1)側では、クロックサイクル▲１▼で指定したアドレスのデータは、クロックサイクル▲３▼の立ち上がりエッジにてデータをサンプリングし、クロックサイクル▲２▼で指定したアドレスのデータは、クロックサイクル▲４▼の立ち上がりエッジにてデータをサンプリングするように動作する。しかし、システムクロックの周期が短くなってくると、この時点でも、CPU(1)のサンプリングポイントにおけるセットアップ時間を確保することが難しくなる。
【００１７】
【発明が解決しようとする課題】
このように上記従来技術では、フラッシュROM(2-1〜2-4)の出力遅延に加えて、フラッシュROMマクロに供給するリードクロックをインターリーブコントローラ(3)で生成して配線を引き回してフラッシュROMマクロに供給しているため、配線による遅延が生じる。この配線による遅延は、データを出力する際のきっかけとなるリードクロックの遅延と、データ出力後CPU(1)に到達するまでの遅延の両者が積算されることになり、CPU(1)のフェッチ動作周波数の限界に対して大きな影響を与えることとなる。
【００１８】
例えば、図１０のタイムチャートに示されているように、CPU(1)のフェッチ動作周波数が高くなると、クロックサイクル▲１▼で指定したアドレスのデータが、クロックサイクル▲３▼の立ち上がり時点では未だCPU(1)に到達しないのでデータサンプリングができなくなるような状況が生じ、このような高いシステムクロック周波数ではフラッシュROM(2-1〜2-4)からのデータ読み出し動作が不可能となり、CPU(1)がデータをサンプリングすることの出来るシステムクロックの上限が上記遅延要因により制限されてしまう。
【００１９】
これらの遅延要因の内、フラッシュROM(2-1〜2-4)の出力遅延については、並行して読み出し可能なフラッシュROMの数を増やすことにより対応する方法が考えられるが、フラッシュROMマクロからのデータ出力後CPU(1)に到達するまでのデータの配線遅延が生じることは避けられないため、データ出力のきっかけを遅らせないための工夫が必要になる。
【００２０】
本発明の目的は、上記問題点に鑑み、配線による遅延を極力排除することにより、シングルチップ・マイクロコンピュータの動作周波数が、レイアウト状態に依存して低下することを防止する手段を提供することにある。
【００２１】
【課題を解決するための手段】
本発明は、チップ上にインターリーブ構成を採用する複数のメモリマクロが配置されたシングルチップ・マイクロコンピュータにおいて、前記複数のメモリマクロの各近傍に、前記システムクロックが直接入力される専用のリードクロック生成回路をそれぞれ配置し、前記複数のメモリマクロに対してそれぞれ専用の前記リードクロック生成回路からリードクロックを供給することを特徴とする。
【００２２】
各リードクロック生成回路は、各メモリマクロのクロック入力端子の近くにそれぞれ配置すればより好適である。また、各リードクロック生成回路にはCPUに供給されているシステムクロックが直接供給され、このシステムクロックと同期したリードクロックをそれぞれのメモリマクロに供給する。その際、メモリマクロの動作クロックはCPUに供給するシステムクロックを分周したものが使用される。
【００２３】
本発明の構成によれば、データ出力のきっかけとなるリードクロックが配線による遅延を受けることがないので、その分データの読み出しタイミングを早めることができ、より高い周波数のシステムクロックを用いることができる。その結果、シングルチップ・マイクロコンピュータの動作周波数をより高くすることができ、処理の高速化が可能となる。
【００２４】
【発明の実施の形態】
図１は、本発明の実施形態を示すシングルチップ・マイクロコンピュータ回路配置図であり、CPU(1)、プログラムを格納する複数のフラッシュROM(2-1〜2-4)、フェッチバスをインターリーブ構成としたときの制御をおこなうインターリーブコントローラ(3)を備えている点では従来例と同様であるが、本発明では、各フラッシュROM(2-1〜2-4)のクロック入力端子近傍に、システムクロックを分周したリードクロックをそれぞれのフラッシュROMに供給するリードクロック生成回路(4-1〜4-4)を配置している。
【００２５】
前述のように、インターリーブコントローラ(3)では、CPU(1)からの制御信号を使用しCPU(1)と同一周波数のシステムクロックで動作するために、CPU・インターリーブコントローラ間信号のセットアップ、ホールド時間を満たす必要があるが、動作周波数が高くなるにしたがってセットアップ時間のマージンが少なくなってくるので、動作周波数を上げていく場合には、インターリーブコントローラ(3)をCPU(1)に近づけて配置する。
【００２６】
また、フラッシュROM(2-1〜2-4)は大きな領域を占有するため、チップ内の配置は限られたものになる。そして、フラッシュROM(2-1〜2-4)のクロック入力端子は１カ所に限定されている。そこで本発明では、フラッシュROM(2-1〜2-4)の配置が決定したあと、このクロック入力端子のすぐ近くにシステムクロックを分周するリードクロック生成回路(4-1〜4-4)を配置する。
【００２７】
その他、接続すべき信号は迂回配線を行わないように配線を実施している点では従来例と同様である。
【００２８】
CPU(1)、インターリーブコントローラ(3)、リードクロック生成回路(4-1,4-2)は、外部から供給されるシステムクロックで動作する。そのシステムクロックは、クロックツリーが張られた状態で動作するものとし、そのクロックツリーにより各々のクロックスキューは一定範囲内に抑えられたものとなっている。
【００２９】
フラッシュROM(2-1〜2-4)は、CPU(1)などの動作速度に比較して低速であるため、シングルチップ・マイクロコンピュータの動作速度を向上させるために、インターリーブ構成を採用し、フラッシュROM(2-1〜2-4)を交互に動作させることによって見かけ上CPU(1)の動作速度と同等の動作速度を得ることが出来る。その時のフラッシュROM(2-1〜2-4)へ供給するクロックは、リードクロック生成回路(4-1〜4-4)によりシステムクロックを分周したクロックを使用する。
【００３０】
図２は、偶数側、奇数側の２個のフラッシュROM(2-1,2-2)を備えて構成した本実施形態のシングルチップ・マイクロコンピュータ回路構成を示すブロック図であり、シングルチップ・マイクロコンピュータ内の、プログラムを格納するフラッシュROM(2-1,2-2)、CPU(1)、フェッチバスをインターリーブ構成としたときの制御をおこなうインターリーブコントローラ(3)、フラッシュROM(2-1,2-2)のリードクロック生成のためのリードクロック生成回路(4-1,4-2)を備えている。
【００３１】
図２の構成において、CPU(1)はインターリーブコントローラ(3)に対して、フラッシュROM(2-1,2-2)に格納されているプログラムをフェッチしたり、データにアクセスするためのアドレスと、CPUからのフェッチバスの状態を制御する制御信号を出力し、一方、インターリーブコントローラ(3)はCPU(1)に対して、フラッシュROM奇数側(2-1)、偶数側(2-2)から読み出されたデータを、相互に切り替えながらデータ信号として出力する。
【００３２】
また、インターリーブコントローラ(3)は、CPU(1)からのアドレスデータに基づいてインターリーブコントローラ(3)内にてフラッシュROM奇数側(2-1)および偶数側(2-2)に対応したアドレスを再構築し、フラッシュROM奇数側(2-1)および偶数側(2-2)それぞれに対するアクセスアドレスとして出力する。一方、フラッシュROM(2-1,2-2)は、それぞれリードクロック生成回路(4-1,4-2)から供給されたリードクロックに同期して読み出されたデータをインターリーブコントローラ(3)へ出力する。
【００３３】
リードクロック生成回路(4-1,4-2)は、システムクロックを分周したリードクロックを各々フラッシュROM(2-1,2-2)に対して供給する。また、CPU(1)は、リードクロック生成回路(4-1,4-2)に対して、クロックの状態を制御しリードクロックを生成するための制御信号を出力する。
【００３４】
図３は、図１の回路配置に対応させて２組のフラッシュROMを採用した場合の本実施形態のシングルチップ・マイクロコンピュータ回路構成を示すブロック図であり、２組のフラッシュROM(2-1〜2-4)が配置されている点を除いて図２に示す回路構成と同様であるので、詳細説明は省略する。
【００３５】
図４は、本実施形態で用いられるリードクロック生成回路(4-1,4-2)の入出力の関係を示す概略図である。リードクロック生成回路(4-1,4-2)は、システムクロックの分周を行い、必要に応じてクロックの周期を変化させる動作を行う。
【００３６】
リードクロック生成回路(4-1,4-2)には、システムクロックと、アドレスの奇数・偶数番地を判別するためのアドレス信号と、フラッシュROMのチップセレクト信号およびジャンプ命令等でアドレスの再構築状態を判別するための信号が入力される。アドレスの奇数・偶数番地を判別するためのアドレス信号は、フラッシュROMデータが４バイトの場合には、下位から３ビット目のアドレス信号を使えばよい。
【００３７】
アドレスの奇数・偶数番地を判別するためのアドレス信号、フラッシュROMのチップセレクト信号およびジャンプ命令等でアドレスの再構築状態を判別するための信号は、CPU(1)からの制御信号として入力される。また、連続アクセス時には、システムクロックを分周した周期のクロックがリードクロックとして出力されるが、フェッチが停止したりジャンプを行い、離れたアドレスにアクセスする場合には、このリードクロックの周期を延ばす。
【００３８】
図５は、本実施形態のシングルチップ・マイクロコンピュータにおける連続フェッチ動作時の状態を示すタイムチャートである。以下、本実施形態の動作について図２及び図５を参照して説明する。
【００３９】
シングルチップ・マイクロコンピュータ内では、クロックツリーが張り巡らされ、そのクロックツリーによってシステムクロック(a)間のスキューは一定範囲内に抑えられている。
【００４０】
このシステムクロック(a)に対し、リードクロック生成回路(4-1,4-2)は、フラッシュROM偶数側リードクロック(d)およびフラッシュROM奇数側リードクロック(g)を、共に遅延を最小限に抑えてフラッシュROMマクロに供給している。
【００４１】
フラッシュROM偶数側データ(f)は、例えばクロックサイクル▲１▼の立ち上がりと同期して立ち上がるリードクロック(d)の立ち上がりに同期して出力されるが、フラッシュROMの出力遅延が大きいために、図５に示すようにクロックサイクル▲２▼までデータが確定しない。
【００４２】
そのため、リードクロックのフラッシュROMへの供給の際に少しでも遅延が大きくなるとCPU(1)のフェッチデータ入力点までの伝搬が遅れることになる。CPU(1)側では、クロックサイクル▲１▼でアクセスしたアドレスから読み出されたデータを、クロックサイクル▲３▼の立ち上がりエッジにてサンプリングする。したがって、データをサンプリングするクロックサイクル▲３▼の立ち上がりエッジに対して、セットアップ時間を確保した上でデータがCPU(1)に到達しなければならない。
【００４３】
本実施形態においては、システムクロックはクロックツリーによりそのスキューが保証され、また、リードクロックは、その生成回路(4-1,4-2)をフラッシュROM(2-1,2-2)のクロック入力端子のすぐ近くに配置することにより、配線によるフラッシュROMへのリードクロックの遅延を極力排除しているので、シングルチップ・マイクロコンピュータの動作周波数を従来よりも高くしても、CPU(1)のデータサンプリングポイントからセットアップ時間分前のデータ到達が可能となり、処理の高速化を図ることができる。
【００４４】
なお、上記実施形態では、フラッシュROMが２個の場合について説明したが、図３に示すようにフラッシュROMが４個の場合、あるいはフラッシュROMが２×ｎ個の場合にも適用可能である。また、インターリーブ構成を採用し、分周クロックにてメモリに対してアクセスをおこなう他のメモリ（ROMあるいはRAM等の）マクロ構成にも適用できる。
【００４５】
【発明の効果】
本発明は、複数のフラッシュROMマクロを備えたシングルチップ・マイクロコンピュータに対して、フラッシュROMのクロック入力端子のすぐ近くにフラッシュROM毎にそれぞれ専用のリードクロック生成回路を配置しているので、リードクロックの配線による遅延を極力排除することができ、シングルチップ・マイクロコンピュータの動作周波数が、マクロのレイアウト状態に依存して低下することを防止することが出来る。
【図面の簡単な説明】
【図１】本発明の実施形態を示すシングルチップ・マイクロコンピュータ回路配置図である。
【図２】本実施形態のシングルチップ・マイクロコンピュータ回路構成例を示すブロック図である。
【図３】本実施形態のシングルチップ・マイクロコンピュータ回路構成の他の例を示すブロック図である。
【図４】本実施形態で用いられるリードクロック生成回路の入出力の関係を示す概略図である。
【図５】本実施形態のシングルチップ・マイクロコンピュータにおける連続フェッチ動作時の状態を示すタイムチャートである。
【図６】従来のシングルチップ・マイクロコンピュータ回路配置図である。
【図７】従来のシングルチップ・マイクロコンピュータ回路構成例を示すブロック図である。
【図８】従来のシングルチップ・マイクロコンピュータ回路構成の他の例を示すブロック図である。
【図９】従来のシングルチップ・マイクロコンピュータにおける連続フェッチ動作を時の状態を示すタイムチャートである。
【図１０】従来のシングルチップ・マイクロコンピュータにおける連続フェッチ動作においてシステムクロックを高速にした時の状態を示すタイムチャートである。
【符号の説明】
1  CPU
2-1〜2-4  フラッシュROM
3  インターリーブコントローラ
4-1〜4-4  リードクロック生成回路
【図１】
0004074110.tif 000002
【図２】
0004074110.tif 000003
【図３】
0004074110.tif 000004
【図４】
0004074110.tif 000005
【図５】
0004074110.tif 000006
【図６】
0004074110.tif 000007
【図７】
0004074110.tif 000008
【図８】
0004074110.tif 000009
【図９】
0004074110.tif 000010
【図１０】
0004074110.tif 000011