(57)【要約】【課題】  初期化データレジスタの物量の増加を抑えつつ、メモリの初期化を高速に行なうことができるＤＭＡコントローラを提供することを目的とする。【解決手段】  初期化データが設定される第１のビット幅を有する初期化データ格納手段１２と、初期化データ格納手段１２に設定された第１のビット幅の初期化データを第２のビット幅に拡張してバスに出力するビット幅拡張手段１１とを備えており、第２のビット幅の初期化データをメモリ２にＤＭＡ転送してメモリ２の初期化を行なうことを特徴とするＤＭＡコントローラ３により上記課題を解決する。【選択図】  図１
2006215991.tif 000002
【特許請求の範囲】
【請求項１】
初期化データが設定される第１のビット幅を有する初期化データ格納手段と、
前記初期化データ格納手段に設定された第１のビット幅の初期化データを第２のビット幅に拡張してバスに出力するビット幅拡張手段とを備えており、
前記第２のビット幅の初期化データをメモリにＤＭＡ転送して前記メモリの初期化を行なうことを特徴とするＤＭＡコントローラ。
【請求項２】
前記ビット幅拡張手段は、前記初期化データ格納手段に設定された第１のビット幅の初期化データを前記第２のビット幅を有するバスのビット幅に拡張することを特徴とする請求項１記載のＤＭＡコントローラ。
【請求項３】
前記ビット幅拡張手段は、前記初期化データ格納手段に設定された第１のビット幅の初期化データを分配して前記第２のビット幅に拡張することを特徴とする請求項１又は２記載のＤＭＡコントローラ。
【請求項４】
初期化データが設定される第１の容量を有する初期化データ格納手段と、
前記初期化データ格納手段に設定された第１の容量の初期化データをバースト転送させるバースト転送制御手段とを備えており、
前記第１の容量の初期化データをメモリにバースト転送して前記メモリの初期化を行なうことを特徴とするＤＭＡコントローラ。
【請求項５】
前記初期化データ格納手段に設定された第１のビット幅の初期化データを第２のビット幅に拡張してバスに出力するビット幅拡張手段を更に備えており、
前記第２のビット幅の初期化データをメモリにバースト転送して前記メモリの初期化を行なうことを特徴とする請求項４記載のＤＭＡコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＤＭＡコントローラに係り、特にメモリの初期化を行なうＤＭＡコントローラに関する。
【背景技術】
【０００２】
近年、映像処理や音声処理などのアプリケーションプログラムが要求する処理の１つには大量のデータが格納されたメモリの初期化が挙げられる。例えばプリンタ等における画像処理のように複数枚の画像を連続で処理する場合は、大量のデータが格納されたメモリの初期化を複数回行なう為、メモリの初期化を高速に行なう必要があった。
【０００３】
マイクロプロセッサとメモリとを含むマイクロプロセッサシステムにおいてメモリを初期化する方法としては、マイクロプロセッサがメモリ初期化プログラムを実行することによりメモリを初期化する方法が知られている。しかし、この方法では初期化するメモリの容量が大きくなるとメモリの初期化に要する時間が長くなるため、マイクロプロセッサシステムの処理能力が低下するという問題があった。
【０００４】
この問題の解決方法としては、初期化データを設定するレジスタ（以下、初期化データレジスタという）をＤＭＡコントローラに用意し、ＤＭＡコントローラが初期化データでメモリの初期化を行なうことが知られている（例えば、特許文献１参照）。
【特許文献１】特開昭６４−２５２２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の方法では、マイクロプロセッサシステムにおけるデータバスのビット幅と初期化データレジスタのビット幅とを等しくする必要がある為、データバスが高速データ転送バスであるときに初期化データレジスタのビット幅が大きくなるという問題があった。また、バースト転送可能な高速データ転送バスにおいても同様な問題があった。さらに、複数チャネルを有するＤＭＡコントローラでは、各チャネルにメモリ初期化機能を持たせた場合、初期化データレジスタのビット幅がチャネル数に応じて増大するという問題があった。
【０００６】
本発明は、上記の点に鑑みなされたもので、初期化データレジスタの物量の増加を抑えつつ、メモリの初期化を高速に行なうことができるＤＭＡコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００７】
そこで、上記課題を解決するため、本発明のＤＭＡコントローラは、初期化データが設定される第１のビット幅を有する初期化データ格納手段と、前記初期化データ格納手段に設定された第１のビット幅の初期化データを第２のビット幅に拡張してバスに出力するビット幅拡張手段とを備えており、前記第２のビット幅の初期化データをメモリにＤＭＡ転送して前記メモリの初期化を行なうことを特徴とする。
【０００８】
本発明では、ビット幅拡張手段を備えたことにより、初期化データ格納手段のビット幅を拡張することなく、初期化データのビット幅を拡張できる。したがって、本発明では初期化データ格納手段のビット幅を拡張することなく、より大きいビット幅のバスを介してＤＭＡコントローラによるメモリの初期化が可能となる。
【０００９】
また、上記課題を解決するため、本発明のＤＭＡコントローラは、初期化データが設定される第１の容量を有する初期化データ格納手段と、前記初期化データ格納手段に設定された第１の容量の初期化データをバースト転送させるバースト転送制御手段とを備えており、前記第１の容量の初期化データをメモリにバースト転送して前記メモリの初期化を行なうことを特徴とする。
【００１０】
本発明では、バースト転送制御手段を備えたことにより、バースト転送の各ビートで同じ初期化データ格納手段に設定された初期化データを使用でき、初期化データ格納手段の容量を大きくする必要がない。したがって、本発明では初期化データ格納手段のハードウェア量の増加を軽減しつつ、バースト転送によるメモリの初期化が可能となる。
【発明の効果】
【００１１】
上述の如く、本発明によれば、初期化データ格納手段のハードウェア量（物量）の増加を抑えつつ、メモリの初期化を高速に行なうことができるＤＭＡコントローラを提供可能である。
【発明を実施するための最良の形態】
【００１２】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。
【００１３】
図１は、本発明によるマイクロプロセッサシステムの一実施例の構成図である。図１のマイクロプロセッサシステムは、マイクロプロセッサ１，メモリ２，ＤＭＡコントローラ３，アドレスバス４及びデータバス５を有する構成である。
【００１４】
ＤＭＡコントローラ３は、ビット幅拡張回路１１，初期化データレジスタ１２，データバッファ１３，ＤＭＡ制御回路１４，アドレスレジスタ１５，転送数カウンタ１６を有する構成である。また、ＤＭＡ制御回路１４は、起動レジスタ１０１，初期化モードレジスタ１０２，転送量レジスタ１０３，バーストモードレジスタ１０４，バースト転送制御回路１０５を有する構成である。
【００１５】
なお、本実施例ではＤＭＡコントローラ３のチャネル数が１つの例を示しているが、チャネル数を１つに限定するものではない。また、本実施例では初期化データレジスタ１２のビット幅が３２ビット、データバス５のビット幅が６４ビットの例を示しているが、初期化データレジスタ１２及びデータバス５のビット幅を限定するものではない。
【００１６】
なお、データバス５のビット幅は、初期化データレジスタ１２のビット幅よりも大きいものとする。マイクロプロセッサシステムは、マイクロプロセッサ１，メモリ２及びＤＭＡコントローラ３が，アドレスバス４及びデータバス５を介して接続されている。
【００１７】
マイクロプロセッサ１は、ＤＭＡコントローラ３の初期化データレジスタ１２，アドレスレジスタ１５，転送数カウンタ１６，起動レジスタ１０１，初期化モードレジスタ１０２，転送量レジスタ１０３，バーストモードレジスタ１０４に値を設定する。
【００１８】
メモリ２は、初期化を行なう対象である。ＤＭＡコントローラ３は、メモリ２の初期化をＤＭＡ転送により行なう。この際、バースト転送により高速な初期化が可能である。ＤＭＡ転送とは、マイクロプロセッサ１を介さずにデータ転送を行なうデータ転送方法である。バースト転送とは、データを連続的に転送するデータ転送方法である。
【００１９】
ＤＭＡコントローラ３は、メモリ２の初期化すべき全てのアドレスに初期化データを転送することにより初期化を行なう。メモリ２の初期化すべき全てのアドレスは、アドレスレジスタ１５に設定されたアドレスと転送量レジスタ１０３に設定された転送量とに応じて決定される。また、初期化データは初期化データレジスタ１２に設定されている。
【００２０】
初期化データレジスタ１２から出力された初期化データは、ビット幅拡張回路１１でビット幅が拡張される。例えば図１の例では、ビット幅が３２ビットの初期化データレジスタ１２から出力されたビット幅が３２ビットの初期化データが、ビット幅拡張回路１１でビット幅が６４ビットの初期化データに拡張される。
【００２１】
図２は、ビット幅拡張回路の一実施例の構成図である。ビット幅拡張回路１１は、初期化データレジスタ１２から出力されたビット幅が３２ビットの初期化データを分配してビット幅が６４ビットの初期化データに拡張している。図２の例では、初期化データレジスタ１２から出力されたビット幅が３２ビットの初期化データが、０〜３１ビット目および３２〜６３ビット目に分配されたビット幅が６４ビットの初期化データに拡張される。ビット幅拡張回路１１によりビット幅が拡張された初期化データは、データバス５を介してメモリ２に転送される。
【００２２】
ＤＭＡ転送によりメモリ２を初期化する場合は、６４ビット単位の任意の初期化データを設定できないというデメリットもあるが、初期化データレジスタ１２のビット幅を半分にすることができる。もっとも、メモリ２を初期化する場合に利用される初期化データは単一の値（例えば０や２５５など）であることが多く、デメリットよりもメリットの方が大きい。
【００２３】
なお、ＤＭＡコントローラ３はメモリ初期化機能の他、メモリ間のデータコピー機能を備える。この為、ＤＭＡコントローラ３はデータバッファ１３を備えている。ＤＭＡコントローラ３は、メモリ間のデータコピーを行なう場合にデータバッファ１３を使用し、メモリ２の初期化を行なう場合に初期化データレジスタ１２を使用する。メモリ初期化機能とメモリ間のデータコピー機能との切り替えは、初期化モードレジスタ１０２に設定された値に基づいて行なう。
【００２４】
アドレスレジスタ１５は、メモリ２の初期化およびメモリ間のデータコピーを行なう際の先頭アドレスが設定される。転送数カウンタ１６は、現在のデータ転送数を記憶するものである。ＤＭＡコントローラ３は、転送数カウンタ１６のデータ転送数が転送量レジスタ１０３に設定された転送量に達したときに、例えば初期化データの転送を停止する。
【００２５】
また、本発明によるマイクロプロセッサシステムでは、バースト転送機能を有する高速データ転送バスにおいてもバースト転送制御回路１０５により初期化データレジスタ１２の容量を増加させることなく、メモリ２の初期化を高速に行なうことができる。例えば８回連続でデータを出力可能な高速データ転送バスでは、バースト転送制御回路１０５からの制御信号に応じて、８回連続で同一の初期化データレジスタ１２に設定されている初期データを出力可能である。
【００２６】
バースト転送によりメモリ２を初期化する場合は、６４バイト（６４ビット×８回）単位の任意の初期化データを設定できないというデメリットもあるが、初期化データレジスタ１２の容量を８分の１にすることができる。もっとも、メモリ２を初期化する場合に利用される初期化データは単一の値（例えば０や２５５など）であることが多く、デメリットよりもメリットの方が大きい。
【００２７】
次に、本発明によるマイクロプロセッサシステムの動作をフローチャートを参照しつつ説明していく。図３は、本発明によるマイクロプロセッサシステムの動作を表した一例のフローチャートである。
【００２８】
メモリ２の初期化を行なう場合、マイクロプロセッサ１はステップＳ１０に進み、ＤＭＡコントローラ３を起動する為のＤＭＡコントローラ起動処理を行う。ステップＳ１０のＤＭＡコントローラ起動処理は、例えば図４に示すような手順で行なう。
【００２９】
図４は、ＤＭＡコントローラ起動処理の一例のフローチャートである。ステップＳ１１に進み、マイクロプロセッサ１はＤＭＡコントローラ３の初期化モードレジスタ１０２にメモリ初期化機能を表す「１」を設定する。即ち、ＤＭＡコントローラ３はメモリ２の初期化を行なう状態となる。
【００３０】
ステップＳ１２に進み、マイクロプロセッサ１はバーストモードレジスタ１０４に値を設定する。ここでは、バースト転送を行なう場合に「１」が設定され、バースト転送を行わない場合に「０」が設定される。ステップＳ１３に進み、マイクロプロセッサ１は初期化データレジスタ１２に初期化データを設定する。
【００３１】
ステップＳ１４に進み、マイクロプロセッサ１はアドレスレジスタ１５にメモリ２の初期化を行なう際の先頭アドレスを設定する。ステップＳ１５に進み、マイクロプロセッサ１は転送量レジスタ１０３に初期化データの転送量を設定する。ここで初期化データの転送量は、初期化を行なうサイズ（容量）を指定するものである。
【００３２】
ステップＳ１６に進み、マイクロプロセッサ１は転送数カウンタ１６に「０」を設定する。即ち、マイクロプロセッサ１は転送数カウンタ１６をリセットする。ステップＳ１７に進み、マイクロプロセッサ１は起動レジスタ１０１に「１」を設定する。ステップＳ１１〜Ｓ１７の処理により、マイクロプロセッサ１によるＤＭＡコントローラ起動処理が終了する。
【００３３】
図３に戻り、ＤＭＡコントローラ３は起動レジスタ１０１に「１」が設定されたことにより起動され、ステップＳ２０のメモリ初期化処理を行なう。ステップＳ２０のメモリ初期化処理は、例えば図５に示すような手順で行う。
【００３４】
図５は、メモリ初期化処理の一例のフローチャートである。ステップＳ２１に進み、ＤＭＡコントローラ３は初期化データレジスタ１２に設定されている初期化データをアドレスレジスタ１５に設定されているメモリ２のアドレスに転送する。
【００３５】
ステップＳ２２に進み、ＤＭＡコントローラ３はアドレスレジスタ１５及び転送数カウンタ１６に、ステップＳ２１で転送したデータ量を加算する。ステップＳ２３に進み、ＤＭＡコントローラ３は転送数カウンタ１６が転送量レジスタ１０３の値に一致するか否かを判定する。
【００３６】
一致しない場合（Ｓ２３においてＮＯ）、ＤＭＡコントローラ３はステップＳ２１の処理に戻る。一致する場合（Ｓ２３においてＹＥＳ）、ＤＭＡコントローラ３は起動レジスタ１０１に「０」を設定したあと、メモリ初期化処理を終了する。
【００３７】
以上のように、本発明によるマイクロプロセッサシステムでは、ビット幅拡張回路１１を備えたことにより、初期化データレジスタ１２のビット幅を拡張することなく、初期化データのビット幅を拡張できる。したがって、初期化データレジスタ１２のビット幅を拡張することなく、より大きいビット幅のデータバス５を介してメモリ２の初期化が可能となる。
【００３８】
また、本発明によるマイクロプロセッサシステムでは、バースト転送制御回路１０５を備えたことにより、バースト転送の各ビートで初期化データレジスタ１２に設定された初期化データを使用することができ、初期化データレジスタ１２の容量を大きくする必要がない。したがって、本発明では初期化データレジスタ１２のハードウェア量の増加を軽減しつつ、バースト転送によるメモリ２の初期化が可能となる。
【００３９】
なお、本発明はＤＭＡコントローラ３への適用に限定されることなく、ＤＭＡ転送又はバースト転送の機能を有する半導体装置（例えばチップセット等）にも適用できる。本発明は、ＤＭＡコントローラ３を有するマイクロプロセッサシステムの他、マザーボードや情報処理装置にも適用可能である。
【００４０】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
初期化データが設定される第１のビット幅を有する初期化データ格納手段と、
前記初期化データ格納手段に設定された第１のビット幅の初期化データを第２のビット幅に拡張してバスに出力するビット幅拡張手段とを備えており、
前記第２のビット幅の初期化データをメモリにＤＭＡ転送して前記メモリの初期化を行なうことを特徴とするＤＭＡコントローラ。
（付記２）
前記ビット幅拡張手段は、前記初期化データ格納手段に設定された第１のビット幅の初期化データを前記バスのビット幅に拡張することを特徴とする付記１記載のＤＭＡコントローラ。
（付記３）
前記ビット幅拡張手段は、前記初期化データ格納手段に設定された第１のビット幅の初期化データを分配して前記第２のビット幅に拡張することを特徴とする付記１又は２記載のＤＭＡコントローラ。
（付記４）
初期化データが設定される第１の容量を有する初期化データ格納手段と、
前記初期化データ格納手段に設定された第１の容量の初期化データをバースト転送させるバースト転送制御手段とを備えており、
前記第１の容量の初期化データをメモリにバースト転送して前記メモリの初期化を行なうことを特徴とするＤＭＡコントローラ。
（付記５）
前記初期化データ格納手段に設定された第１のビット幅の初期化データを第２のビット幅に拡張してバスに出力するビット幅拡張手段を更に備えており、
前記第２のビット幅の初期化データをメモリにバースト転送して前記メモリの初期化を行なうことを特徴とする付記４記載のＤＭＡコントローラ。
（付記６）
初期化データが設定される第１のビット幅を有する初期化データ格納手段と、
前記初期化データ格納手段に設定された第１のビット幅の初期化データを第２のビット幅に拡張してバスに出力するビット幅拡張手段とを備えており、
前記第２のビット幅の初期化データをメモリにＤＭＡ転送して前記メモリの初期化を行なうことを特徴とするチップセット。
（付記７）
マイクロプロセッサ，メモリ，ＤＭＡコントローラ及びバスを有するマイクロプロセッサシステムであって、
前記ＤＭＡコントローラは、
初期化データが設定される第１のビット幅を有する初期化データ格納手段と、
前記初期化データ格納手段に設定された第１のビット幅の初期化データを第２のビット幅に拡張してバスに出力するビット幅拡張手段とを備えており、
前記第２のビット幅の初期化データをメモリにＤＭＡ転送して前記メモリの初期化を行なうことを特徴とするマイクロプロセッサシステム。
（付記８）
マイクロプロセッサ，メモリ，ＤＭＡコントローラ及びバスを有するマイクロプロセッサシステムにより構成される情報処理装置であって、
前記ＤＭＡコントローラは、
初期化データが設定される第１のビット幅を有する初期化データ格納手段と、
前記初期化データ格納手段に設定された第１のビット幅の初期化データを第２のビット幅に拡張してバスに出力するビット幅拡張手段とを備えており、
前記第２のビット幅の初期化データをメモリにＤＭＡ転送して前記メモリの初期化を行なうことを特徴とする情報処理装置。
（付記９）
第１のビット幅を有する初期化データ格納手段に初期化データが設定される段階と、
前記初期化データ格納手段に設定された第１のビット幅の初期化データを第２のビット幅に拡張してバスに出力する段階とを備えており、
前記第２のビット幅の初期化データをメモリにＤＭＡ転送して前記メモリの初期化を行なうことを特徴とするメモリ初期化方法。
【００４１】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００４２】
【図１】本発明によるマイクロプロセッサシステムの一実施例の構成図である。
【図２】ビット幅拡張回路の一実施例の構成図である。
【図３】本発明によるマイクロプロセッサシステムの動作を表した一例のフローチャートである。
【図４】ＤＭＡコントローラ起動処理の一例のフローチャートである。
【図５】メモリ初期化処理の一例のフローチャートである。
【符号の説明】
【００４３】
１    マイクロプロセッサ
２    メモリ
３    ＤＭＡコントローラ
４    アドレスバス
５    データバス
１１    ビット幅拡張回路
１２    初期化データレジスタ
１３    データバッファ
１４    ＤＭＡ制御回路
１５    アドレスレジスタ
１６    転送数カウンタ
１０１    起動レジスタ
１０２    初期化モードレジスタ
１０３    転送量レジスタ
１０４    バーストモードレジスタ
１０５    バースト転送制御回路
【図１】
2006215991.tif 000003
【図２】
2006215991.tif 000004
【図３】
2006215991.tif 000005
【図４】
2006215991.tif 000006
【図５】
2006215991.tif 000007