(57)【要約】【課題】回路規模の増大を抑えながら、出力クロックの周波数の変更に対応可能であり、変更する周波数によってはデータ処理動作の停止を避けることができるようにする。【解決手段】ＦＰＧＡによってクロック供給源例えばＰＬＬとクロック分周回路を形成し、クロック供給源をリコンフィギュレーション可能とし、出力クロックの周波数を変更する際、変更後の周波数がクロック分周回路の分周比の変更で実現可能である場合には、分周比の制御で対応し、分周比の変更で実現可能でない場合には、クロック供給源のリコンフィギュレーションを行う。【選択図】図４
2014183333.tif 000002
【特許請求の範囲】
【請求項１】
ＦＰＧＡと、
前記ＦＰＧＡのコンフィギュレーションを行うＦＰＧＡ制御部とを含み、
前記ＦＰＧＡ制御部は、コンフィギュレーション制御部と全体制御部とを有し、
前記コンフィギュレーション制御部は、
前記ＦＰＧＡのコンフィギュレーションを行って、
クロックを出力するクロック供給源と、
前記クロック供給源から出力されたクロックを受け、該クロック、及び該クロックを分周したクロックのいずれかを選択して出力クロックとして出力するクロック分周回路と、
前記クロック分周回路から出力された前記出力クロックに同期してデータ処理を行い、データ処理の結果得られた出力データを出力するデータ処理コア部と
を含む回路を構成し、
前記ＦＰＧＡのパーシャルリコンフィギュレーションによって、前記クロック供給源を再構成して、前記クロック供給源から出力されるクロックの周波数を変更し、
前記全体制御部は、
前記出力クロックの周波数を変更する際、前記変更後の周波数の出力クロックが、前記クロック供給源が現在出力しているクロックに基づいて前記クロック分周回路が出力し得るものであるかどうかを判断し、
前記変更後の周波数の出力クロックが、前記クロック供給源が現在出力しているクロックに基づいて前記クロック分周回路が出力し得るものであると判断した場合には、前記クロック分周回路における前記選択に対する制御によって、前記変更後の周波数のクロックを出力させ、
前記変更後の周波数の出力クロックが、前記クロック供給源が現在出力しているクロックに基づいて前記クロック分周回路が出力することができず、前記クロック供給源の再構成のみ、又は前記クロック供給源の再構成及び前記クロック分周回路における前記選択に対する制御によって出力し得るものであると判断した場合、前記コンフィギュレーション制御部に、前記クロック供給源が出力するクロックの周波数が変わるように前記クロック供給源を再構成させ、かつ必要に応じて前記クロック分周回路における前記選択に対する制御を行うことによって、前記変更後の周波数の出力クロックを出力させる
ことを特徴とするデータ処理装置。
【請求項２】
前記ＦＰＧＡ制御部は、前記データ処理装置の外部からの前記クロック周波数の変更の指示を受けるためのインターフェースを有し、
前記全体制御部は、前記外部からの変更の指示に応じて前記クロック周波数の変更のための制御を行う
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記クロック分周回路は、前記クロック供給源が出力するクロックを分周する１又は２以上の、各々分周比が２のべき乗に等しい分周部と、前記クロック供給源が出力するクロック、及び前記１又は２以上の分周部が出力するクロックのいずれかを選択する選択部とを有し、
前記選択部は、前記コンフィギュレーション制御部による制御に従って、前記選択を行う
ことを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記クロック供給源はＰＬＬである
ことを特徴とする請求項１乃至３のいずれかに記載のデータ処理装置。
【請求項５】
前記ＦＰＧＡ制御部は、
前記ＦＰＧＡ制御部に形成すべき回路を構成するコンフィギュレーションデータと、前記クロック供給源の再構成のための１又は２以上のパーシャルリコンフィギュレーションデータとを蓄積するコンフィギュレーションメモリをさらに備え、
前記コンフィギュレーション制御部は、
前記データ処理装置の起動時に、前記コンフィギュレーションデータを前記コンフィギュレーションメモリに蓄積した後に、該コンフィギュレーションデータを前記ＦＰＧＡに書き込むことで前記コンフィギュレーションを行い、
前記全体制御部から前記クロック供給源の再構成を指示されたときに、前記コンフィギュレーションメモリに蓄積された前記１又は２以上のパーシャルリコンフィギュレーションデータのいずれかを選択して前記ＦＰＧＡに書き込むことで前記クロック供給源のみの再構成を行う
ことを特徴とする請求項１乃至４のいずれかに記載のデータ処理装置。
【請求項６】
前記ＦＰＧＡ制御部が、
前記コンフィギュレーションデータ又は前記パーシャルリコンフィギュレーションデータを前記ＦＰＧＡに書き込むことで構成され又は再構成される前記クロック供給源が出力するクロックに基づいて前記クロック分周回路が出力することができるクロックの周波数を前記データ処理装置が対応可能な周波数として、保持する出力クロック管理部をさらに備え、
前記全体制御部は、
前記データ処理装置の外部から、前記出力クロックの周波数を変更する指示が入力された際、前記出力クロック管理部を参照することによって、前記指示された変更後の周波数が、前記対応可能なものか否かの判断をする
ことを特徴とする請求項２に記載のデータ処理装置。
【請求項７】
前記全体制御部は、前記データ処理装置の外部から、周波数を変更する指示が入力された際、前記出力クロック管理部を参照することによって、前記指示された変更後の周波数が、前記対応可能なものでない場合に、外部に対し対応不可を通知する
ことを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
前記ＦＰＧＡのコンフィギュレーションによって構成される回路が、
前記出力データおよび前記出力クロックの外部への出力の停止および再開を前記データ処理コア部に指示するデータ出力制御部と、
前記データ処理装置の外部に対し、前記データ処理コア部における処理の対象となる入力データの入力を要求し、該入力データの入力の要求に応じて入力されたデータを受ける入力データ制御部と
をさらに有し、
前記出力クロックの周波数の変更のために、前記ＰＬＬを再構成する場合には、前記データ出力制御部は、前記全体制御部に制御されて、
前記データ処理コア部に前記出力データの外部への出力を停止させ、前記入力データ制御部に前記入力データの入力の要求を停止させ、
前記ＰＬＬの再構成が完了した際、前記データ出力制御部は、前記全体制御部に制御されて、前記データ処理コア部に前記出力データの外部への出力を再開させ、前記入力データ制御部に前記データの入力の要求を再開させる
ことを特徴とする請求項１乃至７のいずれかに記載のデータ処理装置。
【請求項９】
ＦＰＧＡと、
前記ＦＰＧＡのコンフィギュレーションを行うＦＰＧＡ制御部を含み、
前記ＦＰＧＡ制御部は、コンフィギュレーション制御部と全体制御部とを有し、
前記ＦＰＧＡは、前記コンフィギュレーション制御部によってコンフィギュレーションされたときに、
クロックを出力するクロック供給源と、
前記クロック供給源から出力されたクロックを受け、該クロック、及び該クロックを分周したクロックのいずれかを選択して出力クロックとして出力するクロック分周回路と、
前記クロック分周回路から出力された前記出力クロックに同期してデータ処理を行い、データ処理の結果得られた出力データを出力するデータ処理コア部と
を含む回路を構成するものであり、
さらに前記クロック供給源は、前記コンフィギュレーション制御部によるパーシャルリコンフィギュレーションによって、前記クロック供給源が出力するクロックの周波数を変更することができるものである
データ処理装置における、出力クロックの周波数を変更する方法において、
前記全体制御部が、
前記出力クロックの周波数を変更する際、前記変更後の周波数の出力クロックが、前記クロック供給源が現在出力しているクロックに基づいて前記クロック分周回路が出力し得るものであるかどうかを判断し、
前記変更後の周波数の出力クロックが、前記クロック供給源が現在出力しているクロックに基づいて前記クロック分周回路が出力し得るものであると判断した場合には、前記クロック分周回路における前記選択に対する制御によって、前記変更後の周波数のクロックを出力させ、
前記変更後の周波数の出力クロックが、前記クロック供給源が現在出力しているクロックに基づいて前記クロック分周回路が出力することができず、前記クロック供給源の再構成のみ、又は前記クロック供給源の再構成及び前記クロック分周回路における前記選択に対する制御によって出力し得るものであると判断した場合、前記コンフィギュレーション制御部に、前記クロック供給源が出力するクロックの周波数が変わるように前記クロック供給源を再構成させ、かつ必要に応じて前記クロック分周回路における前記選択に対する制御を行うことによって、前記変更後の周波数の出力クロックを出力させる
ことを特徴とする出力クロックの周波数の変更方法。
【請求項１０】
前記ＦＰＧＡ制御部は、
前記ＦＰＧＡ制御部に形成すべき回路を構成するコンフィギュレーションデータと、前記クロック供給源の再構成のための１又は２以上のパーシャルリコンフィギュレーションデータとを蓄積するコンフィギュレーションメモリをさらに備え、
前記コンフィギュレーション制御部が、
前記データ処理装置の起動時に、前記コンフィギュレーションデータを前記コンフィギュレーションメモリに蓄積した後に、該コンフィギュレーションデータを前記ＦＰＧＡに書き込むことで前記コンフィギュレーションを行い、
前記全体制御部から前記クロック供給源の再構成を指示されたときに、前記コンフィギュレーションメモリに蓄積された前記１又は２以上のパーシャルリコンフィギュレーションデータのいずれかを選択して前記ＦＰＧＡに書き込むことで前記クロック供給源のみの再構成を行う
ことを特徴とする請求項９に記載の出力クロックの周波数の変更方法。
【請求項１１】
前記ＦＰＧＡ制御部が、
前記コンフィギュレーションデータ又は前記パーシャルリコンフィギュレーションデータを前記ＦＰＧＡに書き込むことで構成され又は再構成される前記クロック供給源が出力するクロックに基づいて前記クロック分周回路が出力することができるクロックの周波数を前記データ処理装置が対応可能な周波数として、保持する出力クロック管理部をさらに備え、
前記全体制御部が、
前記出力クロックの周波数を変更する際、前記出力クロック管理部を参照することによって、前記指示された変更後の周波数が、前記対応可能なものか否かの判断をする
ことを特徴とする請求項９又は１０に記載の出力クロックの周波数の変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）で構成された部分を有するデータ処理装置に関する。本発明はまた、上記データ処理装置における出力クロックの周波数変更方法に関する。
【背景技術】
【０００２】
データ処理を行う回路（データ処理回路）では、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）で生成したクロック（ＰＬＬクロック）に、動作及びデータ出力を同期させることが一般的に行われている。また、動作及びデータ出力の速度の切替えのため、クロックの周波数を変更することも行われている。
【０００３】
クロックの周波数の変更のためには、用いられる可能性のある周波数の数だけ別個のＰＬＬを設けて、使用する周波数に応じて使用するＰＬＬを選択する方法がある。しかし、この方法には、ＰＬＬを複数個設ける必要があるため回路規模が大きいと言う問題がある。
【０００４】
また、周波数の変更のため、ＰＬＬ内部の分周器の分周比を変更する方法も知られている。しかし、この方法では、分周比の設定を変更した後動作が安定するまでの時間（引き込み時間）の間は、設定した分周比に対応する周波数のクロックを供給できないため、データ処理回路の動作が停止するという問題がある。
この引き込み時間を短縮するための技術も提案されているが（特許文献１）、回路の追加が必要であるため、回路規模が大きくなるとう問題がある。
【０００５】
さらに、設定を変えることで分周比を変えることができる分周比を持つＰＬＬは、分周比が固定されたＰＬＬに比べて、回路規模が大きいと言う問題がある。
【０００６】
ところで近年、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を利用する技術において、起動時に回路の構成を決定した後で、その回路の一部を書き換える部分動的再構成（パーシャルリコンフィギュレーション）技術が実用段階となり、用いられるようになってきている。この技術を用いれば、データ処理回路及びＰＬＬをＦＰＧＡによって構成し、パーシャルリコンフィギュレーションを用いてＰＬＬを書き換えると、データ処理回路の出力クロックの周波数を変更することが可能である。
【０００７】
上記の方法を採用すると、書き換えるＰＬＬの回路データが複数個必要となり、コンフィギュレーションデータ用のメモリの容量は増大するが、回路規模の増大は抑えることができる。一般的には、メモリの容量の増大より回路規模の増大がデータ処理装置のコストにはより大きく影響するため回路規模の抑制によって、コスト増を抑えることができる。
【０００８】
その一方で、パーシャルリコンフィギュレーションには一定の時間を要すため、その間ＰＬＬからのクロックの出力が停止し、データ処理回路の動作が停止する期間が発生する。これには、ＰＬＬの分周器の設定を変更した場合と同様、データ処理回路の動作が停止する期間が発生すると言う問題がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１２−１６５１８７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、ＦＰＧＡの回路規模の増大を抑え低コストのＦＰＧＡを選択できるようにするとともに、出力クロックの周波数変更の際、変更する周波数によってはデータ処理回路の動作を停止させる必要がなく、従って、全体として、データ処理回路の動作の停止を少なくすることを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明に係るデータ処理装置は、
ＦＰＧＡと、
前記ＦＰＧＡのコンフィギュレーションを行うＦＰＧＡ制御部とを含み、
前記ＦＰＧＡ制御部は、コンフィギュレーション制御部と全体制御部とを有し、
前記コンフィギュレーション制御部は、
前記ＦＰＧＡのコンフィギュレーションを行って、
クロックを出力するクロック供給源と、
前記クロック供給源から出力されたクロックを受け、該クロック、及び該クロックを分周したクロックのいずれかを選択して出力クロックとして出力するクロック分周回路と、
前記クロック分周回路から出力された前記出力クロックに同期してデータ処理を行い、データ処理の結果得られた出力データを出力するデータ処理コア部と
を含む回路を構成し、
前記ＦＰＧＡのパーシャルリコンフィギュレーションによって、前記クロック供給源を再構成して、前記クロック供給源から出力されるクロックの周波数を変更し、
前記全体制御部は、
前記出力クロックの周波数を変更する際、前記変更後の周波数の出力クロックが、前記クロック供給源が現在出力しているクロックに基づいて前記クロック分周回路が出力し得るものであるかどうかを判断し、
前記変更後の周波数の出力クロックが、前記クロック供給源が現在出力しているクロックに基づいて前記クロック分周回路が出力し得るものであると判断した場合には、前記クロック分周回路における前記選択に対する制御によって、前記変更後の周波数のクロックを出力させ、
前記変更後の周波数の出力クロックが、前記クロック供給源が現在出力しているクロックに基づいて前記クロック分周回路が出力することができず、前記クロック供給源の再構成のみ、又は前記クロック供給源の再構成及び前記クロック分周回路における前記選択に対する制御によって出力し得るものであると判断した場合、前記コンフィギュレーション制御部に、前記クロック供給源が出力するクロックの周波数が変わるように前記クロック供給源を再構成させ、かつ必要に応じて前記クロック分周回路における前記選択に対する制御を行うことによって、前記変更後の周波数の出力クロックを出力させる
ことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、回路規模の増大を抑制しつつ、出力クロックの周波数を変更することができ、さらに、変更によって新たに用いようとする出力クロックの周波数が現在のＰＬＬクロックを分周部で分周することで得られるものであれば、データ処理コア部の動作を停止することなく出力クロックの周波数を変更することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係るデータ処理装置の構成を示すブロック図である。
【図２】図１のデータ処理装置の、データ処理部の構成例を示すブロック図である。
【図３】（ａ）〜（ｃ）は、図１のデータ処理装置の、出力クロック管理部（２４）が有するクロック周波数リストの構成を示す図である。
【図４】図１のデータ処理装置の、ＦＰＧＡ制御部（２）の処理を示すフローチャートである。
【図５】図１のデータ処理装置の、ＦＰＧＡ本体部（３）の処理を示すフローチャートである。
【図６】図１のデータ処理装置において、クロック分周器の制御のみで出力クロックの周波数を変更する場合の処理を示すタイミングチャートである。
【図７】図１のデータ処理装置において、ＰＬＬを再構成する場合の処理を示すタイミングチャートである。
【発明を実施するための形態】
【００１４】
図１に本発明に係る、データ処理装置を示す。図示のデータ処理装置１は、ＦＰＧＡ制御部２とＦＰＧＡ本体部３とを備えている。
【００１５】
ＦＰＧＡ制御部２は、全体制御部２１、コンフィギュレーションメモリ２２、コンフィギュレーション制御部２３、及び出力クロック管理部２４を備える。
ＦＰＧＡ本体部３は、ＦＰＧＡ３１を内部に有する。
【００１６】
全体制御部２１は、コンフィギュレーションデータ情報インターフェース１１、出力クロック指示インターフェース１２及び対応不可通知インターフェース１３を介して外部（外部の情報処理装置）に接続されている。
【００１７】
例えば、データ処理装置の起動時に実行される初期設定において、ＦＰＧＡ３１のコンフィギュレーションデータが、コンフィギュレーションデータインターフェース１４を通じて外部からコンフィギュレーション制御部２３に入力される。コンフィギュレーション制御部２３は、入力されたコンフィギュレーションデータをコンフィギュレーションメモリ２２に蓄積する。
【００１８】
全体制御部２１は、コンフィギュレーションデータのコンフィギュレーションメモリ２２への蓄積が完了すると、コンフィギュレーション制御部２３にコンフィギュレーション指示を出力する。
【００１９】
コンフィギュレーション指示を受けたコンフィギュレーション制御部２３は、コンフィギュレーションメモリ２２からコンフィギュレーションデータを読み出し、ＦＰＧＡ本体部３のＦＰＧＡ３１のコンフィギュレーションを行う。即ち、コンフィギュレーションデータをＦＰＧＡ３１に書き込む（ロードする）ことで、所望の回路を形成する。
【００２０】
ＦＰＧＡ３１のコンフィギュレーションが完了すると、ＦＰＧＡ本体部３からコンフィギュレーション完了がコンフィギュレーション制御部２３を介して全体制御部２１に通知され、全体制御部２１はコンフィギュレーションの制御動作を完了する。
【００２１】
図１のＦＰＧＡ３１は、コンフィギュレーションによって形成された回路の一例を示す。
図示の例では、ＦＰＧＡ３１のコンフィギュレーションによって、ＰＬＬ３２、データ出力メモリ３３、及びデータ処理部３４を含む回路が構成されている。
【００２２】
ＰＬＬ３２は、クロック供給源として用いられているものであり、外部クロックインターフェース１５を介して外部の図示しない発振回路に接続されており、発振回路の出力が、外部クロックインターフェース１５を介してＰＬＬ３２に供給される。
【００２３】
ＰＬＬ３２は、ＦＰＧＡ３１のパーシャルリコンフィギュレーション（部分動的再構成）によって、その構成を変更することが可能であり、構成の変更によって、出力するクロックの周波数を変えることができるものである。以下の説明では、データ処理装置１において、パーシャルリコンフィギュレーションによる再構成の対象はＰＬＬ３２のみであるとする。即ち、以下の説明における「パーシャルリコンフィギュレーション」は、ＰＬＬ３２を再構成するためのものである。
【００２４】
ＰＬＬ３２のコンフィギュレーションに当たり、外部からＰＬＬクロックの周波数情報が全体制御部２１に入力される。この周波数情報は、ＰＬＬ３２が供給するＰＬＬクロックの周波数を指定するものであり、ＦＰＧＡ３１のコンフィギュレーションの際に、コンフィギュレーションデータととともに、ＦＰＧＡ３１に供給されて、これに基づいてＰＬＬ３２の構成、特にその出力周波数を決める構成が決定される。
【００２５】
データ処理部３４は、入力データインターフェース１６、入力データ指示インターフェース１７、出力データインターフェース１８、及び出力クロックインターフェース１９を介して外部に接続されている。
【００２６】
データ処理部３４は、データ処理装置１の外部から入力データインターフェース１６を介して入力されるデータを、データ出力メモリ３３に蓄積させる。
データ出力メモリ３３に蓄積されたデータは、データ処理部３４に読み出され、データ処理部３４でデータ処理が行われた後、出力データインターフェース１８からデータ処理装置１の外部に出力される。
【００２７】
データ処理部３４はデータ処理装置１が行う主たる（本来の）データ処理を行うものであり、例えば図２に示すように、クロック分周回路４１と、データ処理コア部４６と、入力データ制御部４７と、データ出力制御部４８とを有する。
【００２８】
クロック分周回路４１は、ＰＬＬ３２からのクロックを受けて、入力されたクロック、複数の分周比ｎ１、ｎ２、…で分周することで得られた複数のクロックのいずれかを生成する。
【００２９】
図２に示されるクロック分周回路４１は、２分周部４３と、４分周部４４と、選択部４５を有する。２分周部４３は、ＰＬＬクロックインターフェース５１を介してＰＬＬ３２から入力されたＰＬＬクロックＤ３２を２分周して出力する。４分周部４４は、入力されたＰＬＬクロックＤ３２を４分周して出力する。
【００３０】
選択部４５は、ＰＬＬクロックＤ３２、２分周部４３から出力されたクロックＤ４３、及び４分周部４４から出力されたクロックＤ４４のうち、データ出力制御部４８によって指定されたものを選択して出力する。
選択部４５の出力が、クロック分周回路４１の出力（出力クロック）Ｄ４１として、データ処理コア部４６に供給される。
なお、図示の例では、分周部（４３、４４）の数は２であるが、分周部の数は、１個でも良く、また３個以上でも良い。いずれの場合にも、分周比は２のべき乗である。これはクロックはデューティー比５０％が前提であり、その場合、分周比が２のべき乗である分周部は、構成が簡単になると言う利点による。また、後述のように、選択部４５の切替えによる分周比の変更の際、切替えの前後で出力クロックの位相を揃え、クロックの連続性を保つことが容易であると言う利点がある。
【００３１】
入力データ制御部４７は、入力データ指示インターフェース１７を通じてデータ処理装置１の外部にデータ処理部３４が処理するデータ（データ処理部３４で処理の対象とすべきデータ）の入力を要求する。
この要求に応じて外部からデータが入力データインターフェース１６を通じて入力されると、入力データ制御部４７は、メモリ出力インターフェース５４を通じてデータ出力メモリ３３に出力し、蓄積させる。
【００３２】
データ出力制御部４８は、全体制御部２１から、出力制御インターフェース５２を通じて伝えられる、出力開始（再開）指示、出力停止指示、分周比変更指示を受け、これに基づいて動作を行う。
データ出力制御部４８は、例えば、全体制御部２１からの分周比変更指示に従って、選択部４５の切替え（従って、クロック分周回路４１の出力クロック周波数の変更）を制御する。
データ出力制御部４８はまた、全体制御部２１からの出力停止指示に従って、データ処理コア部４６に出力データの外部への出力を停止させ、入力データ制御部４７に入力データの入力の要求を停止させる。
【００３３】
データ出力制御部４８はまた、全体制御部２１からの出力開始（再開）の指示に従って、データ出力メモリ３３に蓄積されたデータを読み出して、データ処理コア部４６に供給する。これとともに、入力データ制御部４７にデータの入力の要求を開始（再開）させる。入力データ制御部４７の動作によって、外部からのデータのデータ出力メモリ３３への蓄積が開始（再開）され、データ出力メモリ３３から読み出されたデータは、メモリ入力インターフェース５３を介してデータ出力制御部４８に供給され、データ出力制御部４８からデータ処理コア部４６に供給される。
【００３４】
データ処理コア部４６は、データ出力制御部４８からのデータを受けて、これに処理を加え、出力する。データ処理コア部４６で行われる処理は、例えば、パラレルシリアル変換、画像処理などである。データ処理コア部４６におけるデータの処理及び出力は、クロック分周回路４１からのクロックに同期して行われる。データ処理コア部４６によって処理されたデータは、データ処理コア部４６に供給されたクロックとともに出力される。即ち処理されたデータは、出力データインターフェース１８を介して出力され、クロックは、出力クロックインターフェース１９を介して出力される。
【００３５】
上記のように、全体制御部２１には、外部からＰＬＬクロックの周波数情報が全体制御部２１に入力されるが、この周波数情報は、全体制御部２１から出力クロック管理部２４にも伝達される。
出力クロック管理部２４は伝達された周波数情報を、クロック周波数リストの一部として記憶し、管理する。
【００３６】
上記のように、ＰＬＬ３２は、リコンフィギュレーション（再構成）によって、出力クロックの周波数を変更可能なものであり、コンフィギュレーション制御部２３にはまた、外部からＰＬＬ３２が出力するＰＬＬクロックの周波数の変更のために、パーシャルリコンフィギュレーションデータが、初期設定時のコンフィギュレーションデータと同様にコンフィギュレーションデータインターフェース１４を通じてコンフィギュレーション制御部２３に入力され、コンフィギュレーション制御部２３は入力されたパーシャルリコンフィギュレーションデータを、コンフィギュレーションメモリ２２に蓄積する。
【００３７】
このパーシャルリコンフィギュレーションデータに対応するＰＬＬクロックの周波数情報もコンフィギュレーションデータ情報インターフェース１１を通じて全体制御部２１に入力され、全体制御部２１は、この周波数情報を出力クロック管理部２４に出力する。
出力クロック管理部２４は全体制御部２１から入力された周波数情報を、クロック周波数リストに追加して記憶し、管理する。
【００３８】
パーシャルリコンフィギュレーションデータは、再構成の必要が生じる毎に入力することとしても良く、必要が生じる可能性を予測して、予め入力し、蓄積しておいても良い。
パーシャルリコンフィギュレーションデータは、コンフィギュレーションメモリ２２の空き容量が許す限り、２つ以上蓄積しても良い。
【００３９】
全体制御部２１は、パーシャルリコンフィギュレーションデータのコンフィギュレーションメモリ２２への蓄積が完了した後、必要に応じて、コンフィギュレーション制御部２３にＰＬＬ再構成指示を出力する。
【００４０】
ＰＬＬ３２のリコンフィギュレーション指示を受けたコンフィギュレーション制御部２３は、コンフィギュレーションメモリ２２からパーシャルリコンフィギュレーションデータを読み出し、ＦＰＧＡ本体部３のＰＬＬ３２の再構成を行う。
コンフィギュレーションメモリ２２に２以上のパーシャルリコンフィギュレーションデータが蓄積されている場合には、蓄積されているパーシャルリコンフィギュレーションデータのうちで、所望の周波数の出力クロックの生成が可能となるように、ＰＬＬ３２を再構成するためのパーシャルリコンフィギュレーションデータを選択して読み出し、再構成に用いる。
ＰＬＬ３２の再構成が完了すると、ＦＰＧＡ本体部３から再構成完了がコンフィギュレーション制御部２３を介して全体制御部２１に通知され、全体制御部２１は再構成の制御動作を完了する。
【００４１】
出力クロック管理部２４のクロック周波数リストの一例を図３（ａ）〜（ｃ）に示す。
クロック周波数リストは、データ処理装置１が動作可能な周波数範囲中の、対応可能な周波数を示すリスト、即ち、各周波数について当該データ処理装置が対応可能かどうかを示すリストであり、初期設定時（データ処理装置１の起動時）にコンフィギュレーションデータのＰＬＬクロックの周波数情報が入力されるまでは、図３（ａ）に示すように、動作可能な周波数範囲の全体において対応不可能を示す状態となっている。
ここで、データ処理装置１が動作可能な周波数範囲とは、コンフィギュレーションによって、動作可能になる周波数の範囲を言い、
対応可能な周波数とは、特定のコンフィギュレーションデータを書き込むことで構成された（回路が定義された）状態で利用可能な周波数、又はクロック分周回路４１の分周比の変更又はＰＬＬの再構成を行うことで利用可能となる周波数を意味する。
【００４２】
初期設定時のコンフィギュレーションデータのＰＬＬクロックの周波数情報が入力され、例えばその値がＦａであった場合、図３（ｂ）に示すように、クロック周波数リストにおいて、Ｆａ、Ｆａ／２、Ｆａ／４（「２」、「４」は、分周部４３、４４の分周比）の周波数について、対応可能フラグが立てられて、記憶され、管理される。
【００４３】
また、パーシャルリコンフィギュレーションデータに対応する周波数情報が入力され、例えばその値がＦｂであった場合、クロック周波数リストにおいて、図３（ｃ）に示すように、Ｆｂ、Ｆｂ／２、Ｆｂ／４の周波数について対応可能フラグが立てられて、記憶され、管理される。
【００４４】
以降、同様に出力クロック管理部２４はパーシャルリコンフィギュレーションデータが入力される度に、そのＰＬＬクロックの周波数情報に従い、クロック周波数リストを更新する。
【００４５】
なお、コンフィギュレーションデータおよびパーシャルリコンフィギュレーションデータは、データ処理装置１が動作可能な周波数範囲において、可能な限り高い周波数を定めるものにすると、その数を減らすことができる。例えば、Ｆｂの代わりにＦｃ＝Ｆｂ／２をパーシャルリコンフィギュレーションデータによって定まる周波数とした場合、Ｆｃ、Ｆｃ／２、Ｆｃ／４が対応可能な周波数となる一方、Ｆｂ（＝２×Ｆｃ）は対応可能とならない。これに対して、Ｆｂをパーシャルリコンフィギュレーションデータによって定まる周波数とした場合、Ｆｃ（＝Ｆｂ／２）にも対応できる。
また、コンフィギュレーションデータおよびパーシャルリコンフィギュレーションデータは、すでに蓄積されているデータで対応可能な場合は、新たに蓄積をしないように外部で制御される。
【００４６】
先にも述べたように、ＰＬＬ３２は、クロック供給源を構成するものであり、初期設定時にはコンフィギュレーションデータによって、それ以降の動作中にはパーシャルリコンフィギュレーションデータによって、ＰＬＬクロックＤ３２の周波数が決定される。
【００４７】
全体制御部２１は現在動作中のＰＬＬクロックＤ３２の周波数を、コンフィギュレーション時あるいはパーシャルリコンフィギュレーション時の制御を行うときに取得して、記憶している。
【００４８】
以下、図４及び図５を参照して、データ処理装置１の出力クロックの周波数を変更する手順を説明する。
【００４９】
出力クロックの周波数の変更は、外部から指示される。この指示は、出力クロック指示インターフェース１２を介して全体制御部２１に伝えられる。なお、初期設定時には、コンフィギュレーションデータによってコンフィギュレーションされたＰＬＬ３２から供給されるＰＬＬクロックＤ３２が出力クロックＤ４１とされている。即ち、データ出力制御部４８は、選択部４５に対して、ＰＬＬクロックＤ３２を出力クロックとして選択するように制御している。
【００５０】
図４は、ＦＰＧＡ制御部の処理を示すフローチャートで、主に全体制御部２１で実行される処理の手順を示したものである。
全体制御部２１が上述の初期設定時のコンフィギュレーションの制御動作を完了すると、データ処理装置１は図４に示す動作を開始する。
【００５１】
まず、ステップＳ１０１において、全体制御部２１は、出力クロックの制御を開始する。
次に、ステップＳ１０２において、全体制御部２１は、出力クロック指示インターフェース１２を通じて外部から出力クロックの変更が指示されたか否かの判定を行い、出力クロックの変更が指示されたことを確認した場合（Ｓ１０２でＹＥＳ）、ステップＳ１０３に進む。
【００５２】
ステップＳ１０３では、全体制御部２１は、出力クロック管理部２４で管理されているクロック周波数リストを参照し、指示された変更後の出力クロックの周波数（新たな出力クロックの周波数）が対応可能なものか否か（対応可能フラグが立てられているか否か）を判定する。
【００５３】
対応可能フラグが立てられていれば、コンフィギュレーションデータ、あるいはパーシャルリコンフィギュレーションデータがコンフィギュレーションメモリ２２に格納されており、出力クロックが対応可能な周波数のものであることを意味している。この場合には、ステップＳ１０５に進む。
【００５４】
ステップＳ１０３において対応不可能と判断された場合は、ステップＳ１０４に進む。
全体制御部２１は、ステップＳ１０４では、指示された周波数に変更できない旨の通知（対応不可通知）を、対応不可通知インターフェース１３を通じて、データ処理装置１の外部に出力する。その後、ステップＳ１０２に戻って、外部から再度出力クロックの周波数の変更が指示されるのを待つ（周波数の変更の指示が入力されていないかどうかの確認を繰り返す）。
【００５５】
上記動作によって、データ処理装置１が対応不可能な周波数への切替え指示によって、データ処理装置の動作が停止することを防ぐとともに、外部に周波数の変更のし直しを要求することができる。
【００５６】
ステップＳ１０３において対応可能と判断された場合はステップＳ１０５に進む。
全体制御部２１は、ステップＳ１０５では、指示された変更後の周波数（新たな周波数）が、クロック分周回路４１における分周比の変更のみで（選択部４５の切替え動作のみで）対応可能か（ＰＬＬクロックＤ３２自体若しくはいずれかの分周部（４３、４４）の出力に一致するか否か）の判定を行う。
【００５７】
分周比の変更のみで対応可能と判断した場合は、全体制御部２１は、ステップＳ１０６に進み、分周比変更指示を、出力制御インターフェース５２を通じてデータ出力制御部４８に出力し、ステップＳ１０２に戻って外部から再度出力クロックの周波数の変更が指示されるのを待つ。
【００５８】
全体制御部２１は、ステップＳ１０５で、指示された変更後の周波数が、分周比の変更のみでは対応可能でないと判断した場合は、ステップＳ１０７に進み、データ出力停止指示を、出力制御インターフェース５２を通じてデータ出力制御部４８に出力する。
【００５９】
ステップＳ１０７の次にステップＳ１０８に進み、全体制御部２１は、コンフィギュレーション制御部２３にパーシャルリコンフィギュレーション指示を出力する。
【００６０】
コンフィギュレーション制御部２３はこの指示によって、コンフィギュレーションメモリ２２から該当する周波数（指示された変更後の周波数）の出力を可能にするパーシャルリコンフィギュレーションデータを読み出し、パーシャルリコンフィギュレーションによるＰＬＬ３２の再構成を行う。
【００６１】
全体制御部２１は、ステップＳ１０９においてＦＰＧＡ本体部３からパーシャルリコンフィギュレーション完了が通知されると、ステップＳ１１０に進む。
【００６２】
ステップＳ１１０において、全体制御部２１は、パーシャルリコンフィギュレーション後のＰＬＬクロックＤ３２から、指示された出力クロックの周波数を生成するための分周比を選択させる指示を選択部４５に出力し、および出力再開指示をデータ出力制御部４８に出力する。
その後、ステップＳ１０２に戻って外部から再度出力クロックの周波数の変更が指示されるのを待つ。
【００６３】
図５は、ＦＰＧＡ本体部３の処理を示すフローチャートで、主にデータ出力制御部４８で実行される処理の手順を示したものである。
【００６４】
データ出力制御部４８は、ステップＳ１２１によって初期設定が完了し、データ処理部３４が動作を開始すると、ステップＳ１２２に進む。
【００６５】
データ出力制御部４８は、ステップＳ１２２において出力制御インターフェース５２を通じて全体制御部２１からデータ出力停止指示（図４のステップＳ１０７で発せられる）が入力されたかどうか確認し、入力されていない場合は、ステップＳ１２３に進む。
【００６６】
データ出力制御部４８は、ステップＳ１２３において出力制御インターフェース５２を通じて全体制御部２１から分周比変更指示（図４のステップＳ１０６で発せられるもの）が入力されたかどうか確認し、入力されていない場合はステップ１２２に戻る。すなわち、ステップＳ１２２及びステップＳ１２３の処理は、出力停止指示、または分周比変更指示が入力されるまで繰り返される。
【００６７】
ステップＳ１２３において分周比変更指示が入力された場合は、ステップＳ１２４に進む。
データ出力制御部４８は、ステップＳ１２４において選択部４５を、分周比変更指示によって指定された周波数のクロックを選択するよう制御する。
【００６８】
この選択の制御は、クロック分周回路４１が出力することができるクロックのうちで最も周波数の低いクロック（図２の例では４分周部４４が出力するクロック）の立ち上がりでクロックが切替わるように、行われる。
図６には、このような切り替わりのタイミングが符号ｔａで示されている。図６に示す例では、出力クロックの周波数が１／２倍に変更されており、切り替え前のクロックと切り替え後のクロックは、周波数の変更が２のべき乗分の１への変更であるので、位相が揃っている。さらに、最も周波数の低い分周クロックの立ち上がりタイミングは、それよりも周波数の高いクロックの立ち上がりタイミングでもある。従って、図６に示す通り、周波数の変更の前後でクロックを出力停止することなく連続させることが可能である。
【００６９】
ステップＳ１２４の後、ステップＳ１２２に戻り、ステップＳ１２２およびステップＳ１２３によって、出力停止指示、または分周比変更指示が入力されるのを待つ。
【００７０】
ステップＳ１２２において出力停止指示が入力された場合は、ステップＳ１２５に進む。
ステップＳ１２５において、データ出力制御部４８は、出力停止指示に応じて、データ処理コア部４６に対し、出力クロックの出力および出力データの出力を停止させる制御を行う。
その結果、データ処理コア部４６から出力される出力クロックは図７に符号ｔｂで示すように、停止する。
【００７１】
ステップＳ１２５の次にステップＳ１２６に進み、データ出力制御部４８は、入力データ制御部４７に対して、外部からの入力データの入力を停止させるための指示（制御信号）を出力し、入力データ制御部４７はこの指示に応じて、入力データ指示インターフェース１７を通じて外部に入力データの入力の停止要求を出力する。これらの処理は、データ処理装置１の出力データの出力の停止中に、データ出力メモリ３３がオーバーフローしないために行われる。
【００７２】
ステップＳ１２６の次にステップＳ１２７に進み、データ出力制御部４８は、出力再開指示が入力されたか否かの判定を行う。この出力再開指示は、図４のステップＳ１１０の処理で発せられるものであり、全体制御部２１から出力制御インターフェース５２を介してデータ出力制御部４８に伝えられる。ステップＳ１２７で、出力再開指示が入力されたと判定された場合には、ステップＳ１２８に進む。
ステップＳ１２７で出力再開指示を待つ期間は、ＰＬＬ３２のパーシャルリコンフィギュレーション完了を待つ期間である。
【００７３】
ステップＳ１２８においては、データ出力制御部４８は、図４のステップＳ１１０で発せられ、全体制御部２１からインターフェース５２を介してデータ出力制御部４８に伝えられた分周比選択指示に対して、分周比の変更が必要か否かの判定をする。選択を指示された分周比が、現に選択している分周比と同じであれば、変更の必要はないと判断する。選択を指示された分周比が、現に選択している分周比と異なる場合には、変更の必要があると判断する。
【００７４】
ステップＳ１２８において分周比の変更が必要と判断された場合は、ステップＳ１２９に進み、ステップＳ１２４と同様に、データ出力制御部４８は選択部４５を分周比選択指示によって指定された分周比に対応する周波数のクロックを選択するよう制御する。
ステップ１２９の後ステップＳ１３０に進む。
【００７５】
ステップＳ１２８において分周比を変更する必要がないと判断された場合にも、ステップＳ１３０に進む。
【００７６】
ステップＳ１３０において、データ出力制御部４８は、データ処理コア部４６に対し、出力クロックの出力および出力データの出力の再開を指示する。
その結果、データ処理コア部４６は図７に符号ｔｃで示すように出力クロックの出力を再開する。なお、図７では、出力クロックの周波数が３／４倍に変更される場合を示している。
【００７７】
ステップＳ１３０の後、ステップＳ１３１に進み、データ出力制御部４８は、入力データ制御部４７に対し、入力データの入力の再開を指示し、これに応じて、入力データ制御部４７は、入力データ指示インターフェース１７を通じて外部に入力データの入力の再開要求を出力する。
ステップＳ１２６およびステップＳ１３１において外部からのデータの入力を停止、再開する制御を行うことによって、出力クロックの周波数変更前後でデータ処理装置をリセットすることなく処理を継続することができる。
【００７８】
ステップＳ１３１の後、ステップＳ１２２に戻り、ステップＳ１２２およびステップＳ１２３によって、出力停止指示、または分周比変更指示が入力されるのを待つ。
【００７９】
以上のように、データ処理装置１は、出力クロックの周波数変更の際、パーシャルリコンフィギュレーションによるＰＬＬ３２の再構成を実行し、その期間出力クロックが停止する。しかし、上述の通りパーシャルリコンフィギュレーションを制御することによって、回路規模の増大を抑えることができる。
【００８０】
以上説明したように本発明のデータ処理装置を用いれば、外部からの出力クロックの周波数変更指示に対して、変更後の周波数に応じてＰＬＬの再構成又はクロック分周回路の分周比の切り替えを行うので、回路規模を増大させずに出力クロックを変更することができる。また、分周比の切替えのみで対応可能な場合には、データ処理回路の動作を停止することなく出力クロックを変更することができる。さらに、外部からのデータの入力を停止、再開する制御を行うことによって、出力クロックの周波数変更の際に、装置のリセットなしに処理を継続することができる。
【符号の説明】
【００８１】
１  データ処理装置、  ２  ＦＰＧＡ制御部、  ３  ＦＰＧＡ本体部、  ２１  全体制御部、  ２２  コンフィギュレーションメモリ、  ２３  コンフィギュレーション制御部、  ２４  出力クロック管理部、  ３１  ＦＰＧＡ、  ３２  ＰＬＬ、  ３３  データ出力メモリ、  ３４  データ処理部、  ４１  クロック分周回路、  ４３  ２分周部、  ４４  ４分周部、  ４５  選択部、  ４６  データ処理コア部、  ４７  入力データ制御部、  ４８  データ出力制御部。
【図１】
2014183333.tif 000003
【図２】
2014183333.tif 000004
【図３】
2014183333.tif 000005
【図４】
2014183333.tif 000006
【図５】
2014183333.tif 000007
【図６】
2014183333.tif 000008
【図７】
2014183333.tif 000009