(57)【要約】【課題】システムの立ち上げを高速に行なうことが可能なデータ処理装置を提供すること。【解決手段】ＳＲＡＭ３０は、ＲＯＭ１３とアドレス空間を共有するＰｒｅｓｅｔ領域３４を有する。フラグレジスタ３２は、Ｐｒｅｓｅｔ領域３４の所定ワードに対応して設けられ、当該所定ワードの領域にデータ書込みがあったか否かを示す情報を記憶する。そして、セレクタ３３は、ＣＰＵがＰｒｅｓｅｔ領域３４にアクセスするときに、フラグレジスタ３２の内容に応じてＲＯＭ１３の出力およびＳＲＡＭ３０の出力のいずれかを選択的にＣＰＵに出力する。したがって、プログラムのバグ対策やコード変更の部分のみＳＲＡＭ３０にデータ転送を行なえばよいため、外部記憶装置からＳＲＡＭ３０に転送するデータ量を削減することができ、システムの立ち上げを高速に行なうことが可能となる。【選択図】図５
2010211595.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサによって実行されるプログラムを記憶する不揮発性の第１のメモリと、
前記第１のメモリとアドレス空間を共有する第１の領域を有するデータ書換え可能な第２のメモリと、
前記第２のメモリの前記第１の領域の所定ワードに対応して設けられ、当該所定ワードの領域にデータ書込みがあったか否かを示す情報を記憶する複数の書き込み履歴記憶手段と、
前記プロセッサが前記第１の領域にアクセスするときに前記第１のメモリおよび前記第２のメモリの両方にアクセスし、前記複数の書き込み履歴記憶手段の内容に応じて前記第１のメモリの出力および前記第２のメモリの出力のいずれかを選択的に前記プロセッサに出力する選択手段とを含む、データ処理装置。
【請求項２】
前記プロセッサが前記第１の領域にアクセスするときに、前記選択手段は、対応する書き込み履歴記憶手段の内容が当該所定ワードの領域にデータ書込みがないことを示す場合には前記第１のメモリの出力を選択し、
対応する書き込み履歴記憶手段の内容が当該所定ワードの領域にデータ書込みがあったことを示す場合には前記第２のメモリの出力を選択する、請求項１記載のデータ処理装置。
【請求項３】
前記複数の書き込み履歴記憶手段のそれぞれは、前記第１の領域の所定ワードに対応する１ビットとして前記第２のメモリに割当てられる、請求項１または２記載のデータ処理装置。
【請求項４】
前記第１のメモリは、テストモード時に前記第２のメモリと重複しないメモリ空間にマッピングされており、
前記テストモード時に前記プロセッサが前記第１の領域にアクセスするときに、前記選択手段は、前記複数の書き込み履歴記憶手段の内容に関わらず前記第２のメモリの出力を選択し、
前記プロセッサが前記第１のメモリがマッピングされる第２の領域にアクセスするときに、前記選択手段は、前記第１のメモリの出力を選択する、請求項１〜３のいずれかに記載のデータ処理装置。
【請求項５】
プロセッサと、
データを記憶する不揮発性の第１のメモリと、
前記第１のメモリとアドレス空間を共有する第１の領域を有するデータ書換え可能な第２のメモリと、
前記第２のメモリの前記第１の領域の所定ワードに対応して設けられ、当該所定ワードの領域にデータ書込みがあったか否かを示す情報を記憶する複数の書き込み履歴記憶手段と、
前記プロセッサが前記第１の領域にアクセスするときに前記第１のメモリおよび前記第２のメモリの両方にアクセスし、前記複数の書き込み履歴記憶手段の内容に応じて前記第１のメモリの出力および前記第２のメモリの出力のいずれかを選択的に出力する選択手段とを含む、データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Central Processing Unit）を搭載したシステムに関し、特に、システム立ち上げ時にＣＰＵがＲＯＭ（Read Only Memory）などの外部記憶装置からＲＡＭ（Random Access Memory）にデータ転送を行ない、転送したプログラムを実行するシステムで使用されるデータ処理装置に関する。
【背景技術】
【０００２】
近年、ＣＰＵを搭載したシステムの高機能化、多機能化が進んでいる。このようなシステムにおいては、システムの立ち上げ時にＣＰＵがＲＯＭに記憶される初期化ルーチンを実行するのが一般的である。このとき、バグ対策やコード変更に対応するために、ＣＰＵがＬＯＡＤ−ＳＴＯＲＥ命令を繰り返し実行したり、ＤＭＡＣ（Direct Memory Access Controller）を制御したりして、外部記憶装置からＲＡＭにプログラム転送が行なわれるのが一般的である。これに関連する技術として、下記の特許文献１〜３に開示された発明がある。
【０００３】
特許文献１は、フラッシュメモリにおけるプログラムの更新を容易且つ確実に行うようにすることを目的とする。ＲＯＭの領域を分割し、分割した領域ごとにフラッシュＲＯＭ又はＲＯＭの何れを読み出すかを設定する領域設定レジスタを設けることにより、上記分割した領域ごとにブートプログラムの書き込みが正常に完了したか否かを判定する。このようにして、ＣＰＵのアクセス空間が狭い場合であっても、フラッシュＲＯＭに対してブートプログラムを容易且つ確実に書き込むことができるようにする。
【０００４】
特許文献２は、ＲＯＭに格納されたプログラムで動作する情報処理装置においてＲＯＭに格納されたデータ修正を可能とする情報処理装置の提供を目的とする。情報処理装置は、プログラム命令及び／又はデータが書き込まれたＲＯＭと、修正プログラム命令及び／又はデータが格納されるＲＡＭと、アドレスバスに出力されるアドレス信号が予め設定された修正対象アドレス範囲内にあるか否かを検出する検出手段と備える。さらに、アドレス信号でアクセスされるＲＯＭの出力と該アドレス信号に対応したアドレスでアクセスされるＲＡＭの出力とを入力としＲＯＭコレクションイネーブル状態にあり、且つアドレス信号が修正対象アドレス範囲内にある場合ＲＡＭの出力を選択し、アドレス信号が修正対象アドレス範囲外の場合にはＲＯＭの出力を選択する選択手段を備える。選択手段から出力される命令又はデータは命令実行部に供給される。
【０００５】
特許文献３は、命令ＲＯＭに誤りがある場合に、その箇所を複数個同時に訂正することができ、ＴＡＴ（Turn Around Time）を短縮することを目的とする。命令ＲＯＭに格納されている命令のうち、プログラムカウンタから指示されたアドレスの命令が出力されてこれがマルチプレクサに入力される。一方、命令ＲＡＭには訂正すべき命令内容が格納されている。マルチプレクサは制御信号の入力により命令ＲＯＭの内容と命令ＲＡＭの内容とのいずれかを選択し、命令レジスタに出力する。フラグ設定コントローラは、命令ＲＯＭの各アドレスにフラグを設定していく。即ち命令ＲＯＭから命令を読み出すアドレスについては“０”のフラグを付け、命令ＲＯＭに格納された命令に誤りがあってそのアドレスについては命令ＲＡＭから読み出したい場合には、その命令ＲＯＭのアドレスに“１”のフラグをつける。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−３２３３１３号公報
【特許文献２】特開２００１−０７５７９８号公報
【特許文献３】特開２０００−２５９４０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように、バグ対策やコード変更に対応するために、ＣＰＵが外部記憶装置からＲＡＭにプログラムを転送するが、プログラムの全ワードを転送するためシステム立ち上げに要する時間が長くなってしまう。また、製品開発時の検証時間や開発コストが増大するといった問題点もある。しかしながら、上記特許文献１〜３を用いたとしても、このような問題点を解決することはできない。
【０００８】
本発明は、上記問題点を解決するためになされたものであり、その目的は、システムの立ち上げを高速に行なうことが可能なデータ処理装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明の一実施例によれば、データ処理装置が提供される。データ処理装置は、ＣＰＵと、ＣＰＵによって実行されるプログラムを記憶するＲＯＭと、ＲＯＭとアドレス空間を共有するＰｒｅｓｅｔ領域を有するＳＲＡＭと、ＳＲＡＭのＰｒｅｓｅｔ領域の所定ワードに対応して設けられ、当該所定ワードの領域にデータ書込みがあったか否かを示す情報を記憶するフラグレジスタと、ＣＰＵがＰｒｅｓｅｔ領域にアクセスするときにＲＯＭおよびＳＲＡＭの両方にアクセスし、フラグレジスタの内容に応じてＲＯＭの出力およびＳＲＡＭの出力のいずれかを選択的にＣＰＵに出力するセレクタとを含む。
【発明の効果】
【００１０】
この実施例によれば、ＣＰＵがＰｒｅｓｅｔ領域にアクセスするときにＲＯＭおよびＳＲＡＭの両方にアクセスし、セレクタが、フラグレジスタの内容に応じてＲＯＭの出力およびＳＲＡＭの出力のいずれかを選択的にＣＰＵに出力するので、入れ替えアドレスの初期設定等は不要で、プログラムのバグ対策やコード変更の部分のみデータ転送を行なえばよい。そのため、外部記憶装置からＳＲＡＭに転送するデータ量を削減することができ、システムの立ち上げを高速かつ容易に行なうことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】ＣＰＵを搭載したシステムの構成例を示すブロック図である。
【図２】図１に示すデータ処理装置１の一般的な初期化処理の手順を説明するためのフローチャートである。
【図３】ＣＰＵを搭載したシステムの他の構成例を示すブロック図である。
【図４】図３に示すデータ処理装置の一般的な初期化処理の手順を説明するためのフローチャートである。
【図５】本発明の第１の実施の形態におけるデータ処理装置の構成例を示すブロック図である。
【図６】本発明の第１の実施の形態におけるデータ処理装置の初期化処理の手順を説明するためのフローチャートである。
【図７】本発明の第２の実施の形態におけるデータ処理装置の構成例を示すブロック図である。
【図８】本発明の第２の実施の形態におけるデータ処理装置の初期化処理の手順を説明するためのフローチャートである。
【図９】本発明の第３の実施の形態におけるデータ処理装置の構成例を示すブロック図である。
【図１０】本発明の第４の実施の形態におけるデータ処理装置の構成例を示すブロック図である。
【図１１】本発明の第５の実施の形態におけるデータ処理装置のメモリマップの一例を示す図である。
【図１２】本発明の第５の実施の形態におけるデータ処理装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００１２】
まず、本発明の実施の形態におけるデータ処理装置の詳細を説明する前に、その背景となる技術について説明する。
【００１３】
図１は、ＣＰＵを搭載したシステムの構成例を示すブロック図である。このシステムは、ＣＰＵを搭載したデータ処理装置１と、データ処理装置１に接続される記憶装置２とを含む。
【００１４】
データ処理装置１は、ＣＰＵ１１と、ＲＡＭ１２と、ＲＯＭ１３と、ＤＭＡＣ１４と、バスブリッジ１５と、ＳＩＯ（Serial Input Output）１６とを含む。ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、ＤＭＡＣ１４およびバスブリッジ１５は、高速バス１７を介して接続される。また、バスブリッジ１５およびＳＩＯ１６が、低速バス１８を介して接続される。
【００１５】
また、記憶装置２は、データ処理装置１内のＳＩＯ１６との間でシリアルデータ転送を行なうＳＩＯ２１と、データ処理装置１が実行するプログラムなどを記憶する、ＲＯＭやフラッシュメモリなどによって構成される外部記憶装置２２とを含む。ＳＩＯ２１および外部記憶装置２２は、バス２３を介して接続される。
【００１６】
一般的なシステムにおいて、データ処理装置１内のＲＯＭ１３は、初期化ルーチンと、外部記憶装置２２からＲＡＭ１２へのデータ転送のためのプログラムのみを格納しており、初期化処理後に実行するプログラムは外部記憶装置２２に格納されている。これは、プログラムのバグ対策やコード変更に対応するためである。
【００１７】
図２は、図１に示すデータ処理装置１の一般的な初期化処理の手順を説明するためのフローチャートである。まず、システムがリセットされると（Ｓ１１）、ＣＰＵ１１はＲＯＭ１３に格納される処理化ルーチンから実行することによりシステムの初期化処理を開始する（Ｓ１２）。
【００１８】
次に、ＣＰＵ１１は、ＤＭＡＣ１４を制御して、初期化処理後に実行すべきプログラムの全ワードを外部記憶装置２２からＲＡＭ１２に転送する（Ｓ１３）。この処理は、ＣＰＵ１１がＬＯＡＤ−ＳＴＯＲＥ命令を繰り返し実行することにより行なわれてもよい。いずれの場合でも、外部記憶装置２２に格納されるデータが、ＳＩＯ２１、ＳＩＯ１６、低速バス１８、バスブリッジ１５および高速バス１７を経由してＲＡＭ１２に転送される。
【００１９】
次に、ＣＰＵ１１が、ＲＡＭ１２に転送されたプログラムを実行することによって（Ｓ１４）、以降の処理が行われる。
【００２０】
上述のように、外部記憶装置２２に格納されるデータをＲＡＭ１２に転送するためには、ＳＩＯ２１、ＳＩＯ１６、低速バス１８、バスブリッジ１５および高速バス１７を経由しなければならないため、プログラムの全ワードを転送するのに必要となる時間は多大なものとなってしまう。また、外部記憶装置２２に格納されるデータをＲＡＭ１２に転送しているときにはバスが占有されてしまうため、ＣＰＵ１１は他の処理を行なうことができない。したがって、外部記憶装置２２からＲＡＭ１２へのデータ転送量が少ない程システムの立ち上げを高速に行なうことができる。
【００２１】
図３は、ＣＰＵを搭載したシステムの他の構成例を示すブロック図である。このデータ処理装置は、ＣＰＵ１１と、ＲＡＭ１２と、ＲＯＭ１３と、ＤＭＡＣ１４と、ＶＲＡＭ（Video RAM）１９と、モニタ２０とを含む。ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、ＤＭＡＣ１４およびＶＲＡＭ１９は、高速バス１７を介して接続される。
【００２２】
ＲＯＭ１３は、システムの初期化時にモニタ２０に表示する初期化画面のデータを格納している。
【００２３】
図４は、図３に示すデータ処理装置の一般的な初期化処理の手順を説明するためのフローチャートである。まず、システムがリセットされると（Ｓ２１）、ＣＰＵ１１はＲＯＭ１３に格納される初期化ルーチンから実行することによりシステムの初期化処理を開始する（Ｓ２２）。
【００２４】
次に、ＣＰＵ１１は、ＤＭＡＣ１４を制御して、初期化画面用のデータをＲＯＭ１３からＶＲＡＭ１９に転送する（Ｓ２３）。この処理は、ＣＰＵ１１がＬＯＡＤ−ＳＴＯＲＥ命令を繰り返し実行することにより行なわれてもよい。いずれの場合でも、ＲＯＭ１３に格納される初期化画面のデータをＶＲＡＭ１９に転送する必要があり、それに要する時間が必要となる。モニタ２０は、ＶＲＡＭ１９に転送された初期化画面のデータに応じて表示を行なう。
【００２５】
そして、表示画面の更新がある場合には、ＲＡＭ１２などからＶＲＡＭ１９に表示画面の更新データが転送される（Ｓ２４）。モニタ２０は、ＶＲＡＭ１９に記憶される更新後のデータに応じて表示を行なう。
【００２６】
（第１の実施の形態）
図５は、本発明の第１の実施の形態におけるデータ処理装置の構成例を示すブロック図である。なお、データ処理装置の全体的な構成は図１に示すものと同様であり、図５は、図１に示すデータ処理装置１に追加される構成を説明するための図である。
【００２７】
このデータ処理装置１はさらに、ＳＲＡＭ（Static RAM）３０と、アドレスデコーダ（ａｄｅｃ）３１と、フラグレジスタ（ｗｒｉｔｅ−ｆｌａｇ）３２と、セレクタ３３とを含む。なお、以下の説明においては、データ読み出し／データ書込みに、命令フェッチ／プログラム書込みなども含まれるものとする。
【００２８】
ＳＲＡＭ３０の一部または全部が、ＲＯＭ１３とアドレス空間を共有している。図５においては、アドレス空間を共有するＳＲＡＭ３０の部分をＰｒｅｓｅｔ領域３４としている。したがって、メモリマップ上ではＲＯＭ１３とＰｒｅｓｅｔ領域３４とが同じアドレス空間にマッピングされていることになる。
【００２９】
フラグレジスタ３２は、Ｐｒｅｓｅｔ領域３４の各領域にデータが書き込まれたか否かを示す情報を保持する。フラグレジスタ３２の１ビットがＰｒｅｓｅｔ領域３４の１ワードに対応している。たとえば、ＲＯＭ１３の容量が４Ｋワード、すなわちＰｒｅｓｅｔ領域３４の容量が４Ｋワードの場合、フラグレジスタ３２は４Ｋビットのレジスタ群によって構成される。なお、初期状態においては、フラグレジスタ３２の全ビットが“０”となっている。このフラグレジスタ３２は、アドレスデコーダ３１から出力されるデコード結果に応じて対応する１ビットのレジスタの内容をセレクタ３３に出力する。
【００３０】
アドレスデコーダ３１は、アドレスをデコードしてフラグレジスタ３２の１ビットを選択しており、ＳＲＡＭ３０のＰｒｅｓｅｔ領域３４に対するデータ書込みがあったとき（ｗｒｉｔｅ−ｅｎａｂｌｅ信号が出力されたとき）に、フラグレジスタ３２の対応する１ビットに“１”を書き込む。
【００３１】
セレクタ３３は、フラグレジスタ３２から出力されるフラグの内容に応じて、ＲＯＭ１３の出力およびＳＲＡＭ３０内のＰｒｅｓｅｔ領域３４の出力のいずれかを選択する。なお、ＲＯＭ１３およびＰｒｅｓｅｔ領域３４がマッピングされる領域からデータ読み出しを行なう場合、ＲＯＭ１３およびＳＲＡＭ３０に対して同時にアクセスが行なわれ、ＲＯＭ１３およびＳＲＡＭ３０の両方からデータが出力されている。
【００３２】
このように、初期状態においては必ずＲＯＭ１３から出力されるデータが選択されるが、Ｐｒｅｓｅｔ領域３４にデータ書込みがあった後は、そのアドレスに対するデータ読み出しに対してＲＯＭ１３から出力されるデータではなく、ＳＲＡＭ３０から出力されるデータが選択される。したがって、ＲＯＭ１３に格納されるプログラムの中で、書き換えたい部分のみをＰｒｅｓｅｔ領域３４に書き込むことにより、そのアドレスに対するデータ読み出しがＳＲＡＭ３４から行なわれ、それ以外のアドレスに対するデータ読み出しがＲＯＭ１３から行なわれるようになる。
【００３３】
図６は、本発明の第１の実施の形態におけるデータ処理装置の初期化処理の手順を説明するためのフローチャートである。まず、システムがリセットされると（Ｓ３１）、ＣＰＵ１１はＲＯＭ１３に格納される処理化ルーチンから実行することによりシステムの初期化処理を開始する（Ｓ３２）。
【００３４】
次に、ＣＰＵ１１は、ＤＭＡＣ１４を制御して、プログラムの変更箇所に対応する部分のみを外部記憶装置２２からＳＲＡＭ３０のＰｒｅｓｅｔ領域３４に転送する（Ｓ３３）。この処理は、ＣＰＵ１１がＬＯＡＤ−ＳＴＯＲＥ命令を繰り返し実行することにより行なわれてもよい。
【００３５】
次に、ＣＰＵ１１が、ＲＯＭ１３およびＳＲＡＭ３０のＰｒｅｓｅｔ領域３４に格納されるプログラムを実行することによって（Ｓ３４）、以降の処理が行われる。
【００３６】
以上の説明においては、Ｐｒｅｓｅｔ領域３４を含むメモリとしてＳＲＡＭの場合について説明したが、ＤＲＡＭ、ＳＤＲＡＭ、ＭＲＡＭなどのデータ書換え可能なメモリであればどのようなものであっても構わない。また、初期化ルーチンを記憶するメモリとしてＲＯＭの場合について説明したが、フラッシュメモリなどの不揮発メモリであればどのようなものであっても構わない。
【００３７】
以上説明したように、本実施の形態におけるデータ処理装置によれば、Ｐｒｅｓｅｔ領域３４の中のデータ書込みがあったアドレスに対してデータ読み出しがある場合にのみＳＲＡＭ３０から出力されるデータを選択し、それ以外のアドレスに対してデータ読み出しがある場合にはＲＯＭ１３から出力されるデータを選択するようにした。これによって、プログラムのバグ対策やコード変更の部分のみデータ転送を行なえばよいため、外部記憶装置２２からＳＲＡＭ３０に転送するデータ量を削減することができ、入れ替えアドレスの初期設定等も不要で、システムの立ち上げを高速かつ容易に行なうことが可能となった。
【００３８】
また、初期化処理後に実行すべきプログラムもＲＯＭ１３に格納しておけるため、外部記憶装置２２からＳＲＡＭ３０に転送するデータ量をさらに削減することができ、製品開発時の検証時間や開発コストを削減することが可能となった。
【００３９】
（第２の実施の形態）
図７は、本発明の第２の実施の形態におけるデータ処理装置の構成例を示すブロック図である。このデータ処理装置は、図３に示すデータ処理装置と比較して、ＶＲＡＭ１９がＲＯＭ１３、ＳＲＡＭ３０およびセレクタ３３などに置換されている点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００４０】
なお、図示しないが、ＲＯＭ１３、ＳＲＡＭ３０およびセレクタ３３の接続は、図５に示す構成と同様であり、セレクタ３３から出力されるデータに応じてモニタ２０の表示が行なわれる。
【００４１】
第１の実施の形態と同様に、初期状態においては必ずＲＯＭ１３から出力される初期化画面のデータが選択されるが、Ｐｒｅｓｅｔ領域３４に表示画面の更新データが書込まれた後は、そのアドレスに対するデータ読み出しに対してＲＯＭ１３から出力されるデータではなく、ＳＲＡＭ３０から出力されるデータが選択される。したがって、ＲＯＭ１３に格納される初期化画面の中で、書き換えたい部分のみをＰｒｅｓｅｔ領域３４に書き込むことにより、そのアドレスに対するデータ読み出しがＳＲＡＭ３４から行なわれ、それ以外のアドレスに対するデータ読み出しがＲＯＭ１３から行なわれるようになる。
【００４２】
図８は、本発明の第２の実施の形態におけるデータ処理装置の初期化処理の手順を説明するためのフローチャートである。まず、システムがリセットされると（Ｓ４１）、ＣＰＵ１１はＲＯＭ１３に格納される初期化ルーチンから実行することによりシステムの初期化処理を開始する（Ｓ４２）。このとき、モニタ２０は、ＲＯＭ１３に格納される初期化画面用のデータを表示する（Ｓ４３）。
【００４３】
そして、表示画面の更新がある場合には、ＲＡＭ１２などからＳＲＡＭ３０に表示画面の更新データが転送される（Ｓ４４）。モニタ２０は、ＲＯＭ１３およびＳＲＡＭ３０のＰｒｅｓｅｔ領域３４に記憶される表示画面のデータに応じて表示を行なう。
【００４４】
以上説明したように、本実施の形態におけるデータ転送装置によれば、Ｐｒｅｓｅｔ領域３４の中のデータ書込みがあったアドレスに対してデータ読み出しがある場合にのみＳＲＡＭ３０から出力されるデータを選択し、それ以外のアドレスに対してデータ読み出しがある場合にはＲＯＭ１３から出力されるデータを選択するようにした。したがって、初期化画面の表示のためにデータ転送を行なう必要がなくなり、システムの立ち上げを高速に行なうことが可能となった。
【００４５】
（第３の実施の形態）
図９は、本発明の第３の実施の形態におけるデータ処理装置の構成例を示すブロック図である。なお、データ処理装置の全体的な構成は図１または図７に示すものと同様であり、図９は、図１または図７に示すデータ処理装置に追加される構成を説明するための図である。
【００４６】
図９に示す構成は、図５に示す構成と比較して、アドレスデコーダ３１およびフラグレジスタ３２が削除され、ＳＲＡＭ３０のＰｒｅｓｅｔ領域３４にライトフラグビット（ｗｒｉｔｅ−ｆｌａｇ−ｂｉｔ）が付加されている点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００４７】
ＳＲＡＭ３０は、たとえば１ワード（３２ビット）のデータ幅を有しており、１ワードに対応して１ビットのライトフラグビット３５が付加されている。したがって、３３ビット幅のＳＲＡＭが用いられることになる。
【００４８】
ライトフラグビット３５は、Ｐｒｅｓｅｔ領域３４の対応する１ワードの領域にデータが書き込まれたか否かを示す情報を保持する。初期状態においては、ライトフラグビットが全て“０”となるよう構成される。このライトフラグビット３５は、Ｐｒｅｓｅｔ領域３４の対応する１ワードの領域にデータが書込まれたときに、“１”が書込まれる。
【００４９】
セレクタ３３は、ＳＲＡＭ３０から出力されるライトフラグビット３５の内容に応じて、ＲＯＭ１３の出力およびＳＲＡＭ３０内のＰｒｅｓｅｔ領域３４の出力のいずれかを選択する。なお、ＲＯＭ１３およびＰｒｅｓｅｔ領域３４がマッピングされる領域からデータ読み出しを行なう場合、ＲＯＭ１３およびＳＲＡＭ３０に対して同時にアクセスが行なわれ、ＲＯＭ１３およびＳＲＡＭ３０の両方からデータが出力されると共に、Ｐｒｅｓｅｔ領域３４に付加されたライトフラグビット３５の内容が出力される。
【００５０】
以上説明したように、本実施の形態におけるデータ処理装置によれば、Ｐｒｅｓｅｔ領域３４に付加されたライトフラグビット３５の内容に応じて、ＲＯＭ１３からの出力およびＳＲＡＭ３０からの出力のいずれかを選択するようにした。これによって、第１の実施の形態および第２の実施の形態において説明した効果に加えて、アドレスデコーダやフラグレジスタなどの構成を削減することができ、半導体装置のチップ面積を削減することが可能となった。
【００５１】
（第４の実施の形態）
図１０は、本発明の第４の実施の形態におけるデータ処理装置の構成例を示すブロック図である。なお、データ処理装置の全体的な構成は図１または図７に示すものと同様であり、図１０は、図１または図７に示すデータ処理装置に追加される構成を説明するための図である。
【００５２】
図１０に示す構成は、図５に示す構成と比較して、フラグレジスタ５１の１ビットがＰｒｅｓｅｔ領域３４の複数ワードに対応しており、それに応じてアドレスデコーダ３１がデコードするアドレスの本数が減っている点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００５３】
図１０に示すデータ処理装置は、Ｐｒｅｓｅｔ領域３４に１ワードのデータを書込むときに、そのワードを含んだ複数ワードのデータが書き換えられることを前提としている。それによって、フラグレジスタ５１のビット数を削減し、アドレスデコーダ３１の構成を簡略化するものである。
【００５４】
以上説明したように、本実施の形態におけるデータ処理装置によれば、Ｐｒｅｓｅｔ領域３４の複数ワードに対して１ビットのフラグレジスタ５１を設けるようにした。これによって、第１の実施の形態および第２の実施の形態において説明した効果に加えて、アドレスデコーダ３１およびフラグレジスタ５１の構成を削減することができ、半導体装置のチップ面積を削減することが可能となった。
【００５５】
（第５の実施の形態）
第１〜第４の実施の形態においては、ＳＲＡＭ３０の一部または全部が、ＲＯＭ１３とアドレス空間を共有するものであった。本発明の第５の実施の形態におけるデータ処理装置においては、テストモード時にＲＯＭ１３をＳＲＡＭ３０と重複しない領域にマッピングするようにしたものである。
【００５６】
図１１は、本発明の第５の実施の形態におけるデータ処理装置のメモリマップの一例を示す図である。図１１の左側に示すように、システムモード（非テストモード）時には第１〜第４の実施の形態において説明したのと同様にＰｒｅｓｅｔ領域３４がＲＯＭ１３と同じ領域にマッピングされる。たとえば、００００ｈ〜０ｆｆｆｈの領域にはＳＲＡＭ３０がマッピングされており、そのうち００００ｈ〜０１ｆｆｈの領域がＰｒｅｓｅｔ領域としてＲＯＭ１３と重複してマッピングされている。１０００ｈ〜１１ｆｆｈの領域は予約済みである。なお、図１１においては、下位アドレスのみを示しており、上位アドレスは省略している。
【００５７】
図１１の右側に示すように、テストモード時には１０００ｈ〜１１ｆｆｈの予約済み領域にＲＯＭ１３がマッピングされる。このように、テストモード時にはＲＯＭ１３およびＳＲＡＭ３０がそれぞれ別々の領域にマッピングされる。
【００５８】
図１２は、本発明の第５の実施の形態におけるデータ処理装置の構成例を示すブロック図である。このデータ処理装置は、図１１に示すメモリマップに対応した構成を有しており、ＲＯＭ（５１２ワード×３２ビット）１３と、ＳＲＡＭ（４Ｋワード×３３ビット）３０と、セレクタ６１とを含む。
【００５９】
第３の実施の形態と同様に、ＳＲＡＭ３０のＰｒｅｓｅｔ領域３４に１ビットのライトフラグビットが付加されており、その値がＱ＿ｒａｍ［３２］としてセレクタ６１に与えられる。なお、ＳＲＡＭ３０から出力されるデータは、Ｑ＿ｒａｍ［３１：０］としてセレクタ６１に与えられる。
【００６０】
セレクタ６１は、図１２の右側に示すようなＲＴＬ（Register Transfer Level）記述で構成可能である。このＲＴＬ記述を論理合成することによって、セレクタ６１の論理回路を生成することができる。ｔｅｓｔ＿ｍｏｄｅは、通常動作モード（システムモード）であるか、テストモードであるかを示す信号である。
【００６１】
図１２に示すように、テストモードの場合であって、アドレスのＡ［１２］が“１”の場合に、セレクタ６１はＲＯＭ１３から出力されるデータＱ＿ｒｏｍを選択する。この記述は、図１１の右側に示す１０００ｈ〜１１ｆｆｈの領域からデータ読み出しが行なわれる場合を意味している。
【００６２】
また、テストモードの場合であって、アドレスのＡ［１２］が“０”の場合に、セレクタ６１はＳＲＡＭ３０から出力されるデータＱ＿ｒａｍを選択する。この記述は、図１１の右側に示す００００ｈ〜０ｆｆｆｈの領域からデータ読み出しが行なわれる場合を意味している。
【００６３】
システムモードの場合であって、Ｑ＿ｒａｍ［３２］（ライトフラグビットの値）が“１”の場合に、セレクタ６１はＳＲＡＭ３０から出力されるデータＱ＿ｒａｍを選択する。この記述は、図１１の左側に示す００００ｈ〜０１ｆｆｈの領域であって、Ｐｒｅｓｅｔ領域３４からデータ読み出しが行なわれる場合を意味している。
【００６４】
また、システムモードの場合であって、Ｑ＿ｒａｍ［３２］が“０”であり、Ａ［１１：９］が“０００”の場合に、セレクタ６１はＲＯＭ１３から出力されるデータＱ＿ｒｏｍを選択する。この記述は、図１１の左側に示す００００ｈ〜０１ｆｆｈのアドレスであって、ＲＯＭ１３からデータ読み出しが行なわれる場合を意味している。
【００６５】
また、システムモードの場合であって、Ｑ＿ｒａｍ［３２］が“０”であり、Ａ［１１：９］が“０００”以外の場合に、セレクタ６１はＳＲＡＭ３０から出力されるデータＱ＿ｒａｍを選択する。この記述は、図１１の左側に示す０２００ｈ〜０ｆｆｆｈのアドレスからデータ読み出しが行なわれる場合を意味している。
【００６６】
以上説明したように、本実施の形態におけるデータ処理装置によれば、テストモード時にはＲＯＭ１３をＳＲＡＭ３０と重ならない領域にマッピングするようにしたので、製品検査時にＲＯＭおよびＳＲＡＭに対して個別にアクセスできるようになり、検査を容易に行なうことが可能となった。また、テストモードにすることによって、ソフトウェアデバッグも容易に行なえるようになった。
【００６７】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００６８】
１  データ処理装置、２  記憶装置、１１  ＣＰＵ、１２  ＲＡＭ、１３  ＲＯＭ、１４  ＤＭＡＣ、１５  バスブリッジ、１６，２１  ＳＩＯ、１７  高速バス、１８  低速バス、１９  ＶＲＡＭ、２０  モニタ、２２  外部記憶装置、２３  バス、３０  ＳＲＡＭ、３１  アドレスデコーダ、３２，５１  フラグレジスタ、３３，６１  セレクタ、３４  Ｐｒｅｓｅｔ領域、３５  ライトフラグビット。
【図１】
2010211595.tif 000003
【図２】
2010211595.tif 000004
【図３】
2010211595.tif 000005
【図４】
2010211595.tif 000006
【図５】
2010211595.tif 000007
【図６】
2010211595.tif 000008
【図７】
2010211595.tif 000009
【図８】
2010211595.tif 000010
【図９】
2010211595.tif 000011
【図１０】
2010211595.tif 000012
【図１１】
2010211595.tif 000013
【図１２】
2010211595.tif 000014