(57)【特許請求の範囲】
【請求項１】
Ｋ個（Ｋ：２以上の整数）の、カウンタから出力されたカウント値に基づき、メモリにアクセスするためのアドレス情報を生成するためのアドレス係数を第１モードに対応して発生する一方、Ｌ個（Ｌ：Ｋを上回る整数）の、カウンタから出力されたカウント値に基づき、メモリにアクセスするためのアドレス情報を生成するためのアドレス係数を第２モードに対応して発生する発生手段、
前記発生手段によって発生されたアドレス係数の値を１／Ｍ（Ｍ：２以上の整数）の値に変換する第１変換手段、
前記発生手段によって発生されたアドレス係数に基づくアドレス情報を前記第１モードに対応して生成する一方、前記第１変換手段によって変換されたアドレス係数に基づくアドレス情報を前記第２モードに対応して生成する生成手段、および
ＮビットおよびＮ／Ｍビットのいずれか一方に相当するビット幅を各々が有する複数のアドレスが設けられたメモリへのアクセスのために前記生成手段によって生成されたアドレス情報を出力する出力手段を備え、
前記メモリはバーストアクセス方式を採用し、
前記出力手段は前記生成手段によって生成されたアドレス情報を前記メモリのバースト長に対応する周期でラッチするラッチ手段を含み、
前記出力手段から出力されたアドレス情報の基礎となるアドレス係数を検出する検出手段、
前記検出手段によって検出されたアドレス係数の値をＭ倍の値に変換する第２変換手段、および
前記検出手段によって検出されたアドレス係数を前記第１モードに対応して選択する一方、前記第２変換手段によって変換されたアドレス係数を前記第２モードに対応して選択する選択手段をさらに備えるメモリアクセス装置。
【請求項２】
各ワードが前記Ｎビットに相当するビット幅を有するデータを前記Ｎ／Ｍビットに相当するビット幅を有する部分データに分割する分割手段、および
前記分割手段によって分割された部分データを前記メモリに向けて出力するデータ出力手段をさらに備える、請求項１記載のメモリアクセス装置。
【請求項３】
各ワードが前記Ｎ／Ｍビットに相当するビット幅を有して前記メモリから読み出されたデータを結合して各ワードが前記Ｎビットに相当するビット幅を有する結合データを作成する結合手段、および
前記結合手段によって作成された結合データを出力する出力手段をさらに備える、請求項２のいずれかに記載のメモリアクセス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、メモリアクセス装置に関し、特に、ビット幅の異なるメモリにアクセスするためのアドレス情報を生成する、メモリアクセス装置に関する。
【背景技術】
【０００２】
この種の装置の一例が、特許文献１に開示されている。この背景技術によれば、読み出しタイミング制御回路は、メモリに与えられる読み出しアドレスを１リードサイクルの途中で変化させる。ラッチ回路は、読み出しアドレスが変化する前にメモリから読み出されたデータをラッチする。データバスは、ラッチ回路によってラッチされたデータと読み出しアドレスが変化した後にメモリから読み出されたデータとを並列的に伝達する。これによって、データバス幅より小さいバス幅を有するメモリからのデータ読み出し動作の効率が向上する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−２５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、背景技術では、１アドレスあたりのアクセスサイクルがバス幅によって変化する。このため、背景技術ではアクセス性能に限界がある。
【０００５】
それゆえに、この発明の主たる目的は、ビット幅の異なるメモリへのアクセス性能を高めることができる、メモリアクセス装置を提供することである。
【課題を解決するための手段】
【０００６】
この発明に従うメモリアクセス装置(10：実施例で相当する参照符号。以下同じ)は、Ｋ個（Ｋ：２以上の整数）のアドレス係数を第１モードに対応して発生する一方、Ｌ個（Ｌ：Ｋを上回る整数）のアドレス係数を第２モードに対応して発生する発生手段(24)、発生手段によって発生されたアドレス係数の値を１／Ｍ（Ｍ：２以上の整数）の値に変換する第１変換手段(26, 28)、発生手段によって発生されたアドレス係数に基づくアドレス情報を第１モードに対応して生成する一方、第１変換手段によって変換されたアドレス係数に基づくアドレス情報を第２モードに対応して生成する生成手段(20~22, 30~32)、およびＮビットおよびＮ／Ｍビットのいずれか一方に相当するビット幅を各々が有する複数のアドレスが設けられたメモリ(18)へのアクセスのために生成手段によって生成されたアドレス情報を出力する出力手段(34~36)を備える。
【０００７】
好ましくは、第１モードはＮビットに相当するビット幅のアドレスが設けられたメモリに対応し、第２モードはＮ／Ｍビットに相当するビット幅のアドレスが設けられたメモリに対応する。
【０００８】
好ましくは、ＬはＫのＭ倍からＭ＋１倍の範囲に属する値を示す。
【０００９】
好ましくは、メモリはバーストアクセス方式を採用し、出力手段は生成手段によって生成されたアドレス情報をメモリのバースト長に対応する周期でラッチするラッチ手段(36)を含む。
【００１０】
さらに好ましくは、出力手段から出力されたアドレス情報の基礎となるアドレス係数を検出する検出手段(46)、検出手段によって検出されたアドレス係数の値をＭ倍の値に変換する第２変換手段(52)、および検出手段によって検出されたアドレス係数を第１モードに対応して選択する一方、第２変換手段によって変換されたアドレス係数を第２モードに対応して選択する選択手段(54)がさらに備えられる。
【００１１】
或る局面では、メモリに設けられた複数のアドレスの各々はカラムアドレスを有し、選択手段によって選択されたアドレス係数はアクセス先のカラムアドレスを特定する係数に相当する。
【００１２】
他の局面では、各ワードがＮビットに相当するビット幅を有するデータをＮ／Ｍビットに相当するビット幅を有する部分データに分割する分割手段(60~96)、および分割手段によって分割された部分データをメモリに向けて出力するデータ出力手段(98~118)がさらに備えられる。
【００１３】
その他の局面では、各ワードがＮ／Ｍビットに相当するビット幅を有してメモリから読み出されたデータを結合して各ワードがＮビットに相当するビット幅を有する結合データを作成する結合手段(130~198)、および結合手段によって作成された結合データを出力する出力手段(200)がさらに備えられる。
【発明の効果】
【００１４】
第１モードの下では、発生手段によって発生されたＫ個のアドレス係数に基づいてアドレス情報が生成される。これに対して、第２モードでは、発生手段によって発生されたＬ個のアドレス係数の各々の値が１／Ｍの値に変換され、変換された値を示すＬ個のアドレス係数に基づいてアドレス情報が生成される。一方、メモリに設けられたアドレスは、ＮビットおよびＮ／Ｍビットのいずれか一方に相当するビット幅を有する。
【００１５】
したがって、Ｎビットに相当するビット幅を有するメモリに対応して第１モードを選択し、Ｎ／Ｍビットに相当するビット幅を有するメモリに対応して第２モードを選択することで、ビット幅の異なるメモリに対する適応的なアクセスが実現される。この結果、メモリアクセス性能が向上する。
【００１６】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００１７】
【図１】この発明の実施例の基本的構成を示すブロック図である。
【図２】この発明の一実施例の構成を示すブロック図である。
【図３】図２実施例に適用されるアドレス指定回路の構成の一例を示すブロック図である。
【図４】図２実施例に適用されるアドレス変換回路の構成の一例を示すブロック図である。
【図５】（Ａ）はクロックＣＬＫ１の一例を示す波形図であり、（Ｂ）はクロックＣＬＫ２の一例を示す波形図であり、（Ｃ）はカウンタ２４の出力の一例を示す図解図であり、（Ｄ）はセレクタ３２の出力の一例を示す図解図であり、（Ｅ）はＦ／Ｆ回路３６から出力される統合アドレスの一例を示す図解図であり、（Ｆ）はＦ／Ｆ回路５８から出力されるカラムアドレスの一例を示す図解図であり、（Ｇ）はバスから入力されるデータの一例を示す図解図であり、（Ｈ）はＳＤＲＡＭへ出力されるデータの一例を示す図解図であり、（Ｉ）はＳＤＲＡＭから入力されるデータの一例を示す図解図であり、（Ｊ）はバスへ出力されるデータの一例を示す図解図である。
【図６】（Ａ）はクロックＣＬＫ１の一例を示す波形図であり、（Ｂ）はクロックＣＬＫ２の一例を示す波形図であり、（Ｃ）はカウンタ２４の出力の一例を示す図解図であり、（Ｄ）はセレクタ３２の出力の一例を示す図解図であり、（Ｅ）はＦ／Ｆ回路３６から出力される統合アドレスの一例を示す図解図であり、（Ｆ）はＦ／Ｆ回路５８から出力されるカラムアドレスの一例を示す図解図であり、（Ｇ）はバスから入力されるデータの一例を示す図解図であり、（Ｈ）はＳＤＲＡＭへ出力されるデータの一例を示す図解図であり、（Ｉ）はＳＤＲＡＭから入力されるデータの一例を示す図解図であり、（Ｊ）はバスへ出力されるデータの一例を示す図解図である。
【図７】図２実施例に適用される書き込みデータ転送回路の構成の一例を示すブロック図である。
【図８】（Ａ）はクロックＣＬＫ１の一例を示す波形図であり、（Ｂ）はバスから入力されるデータの一例を示す図解図であり、（Ｃ）はＦ／Ｆ回路６０から出力されるデータの一例を示す図解図であり、（Ｄ）はセレクタ１１６から出力されるデータの一部を示す図解図であり、（Ｅ）はクロックＣＬＫ２の一例を示す波形図であり、（Ｆ）はＳＲＡＭ９２から読み出されるデータの一例を示す図解図であり、（Ｇ）はＦ／Ｆ回路９４から出力されるデータの一例を示す図解図であり、（Ｈ）はセレクタ１１６から出力されるデータの他の一部を示す図解図であり、（Ｉ）はＳＤＲＡＭへ出力されるデータの一例を示す図解図である。
【図９】（Ａ）はクロックＣＬＫ１の一例を示す波形図であり、（Ｂ）はバスから入力されるデータの一例を示す図解図であり、（Ｃ）はＦ／Ｆ回路６０から出力されるデータの一例を示す図解図であり、（Ｄ）はＳＤＲＡＭへ出力されるデータの一例を示す図解図である。
【図１０】図２実施例に適用される読み出しデータ転送回路の構成の一例を示すブロック図である。
【図１１】（Ａ）はクロックＣＬＫ１の一例を示す波形図であり、（Ｂ）はＳＤＲＡＭから入力されるデータの一例を示す図解図であり、（Ｃ）は結合器１３４から出力されるデータの一例を示す図解図であり、（Ｄ）はＳＲＡＭ１３６から読み出されるデータの一例を示す図解図であり、（Ｅ）はセレクタ２００から出力されるデータの一部を示す図解図であり、（Ｆ）はセレクタ２００から出力されるデータの他の一部を示す図解図であり、（Ｇ）はバスへ出力されるデータの一例を示す図解図である。
【図１２】（Ａ）はクロックＣＬＫ１の一例を示す波形図であり、（Ｂ）はＳＤＲＡＭから入力されるデータの一例を示す図解図であり、（Ｃ）はバスへ出力されるデータの一例を示す図解図である。
【発明を実施するための形態】
【００１８】
以下、この発明の実施の形態を図面を参照しながら説明する。
［基本的構成］
【００１９】
図１を参照して、この発明の実施例であるメモリアクセス装置は、基本的に次のように構成される。発生手段１は、Ｋ個（Ｋ：２以上の整数）のアドレス係数を第１モードに対応して発生する一方、Ｌ個（Ｌ：Ｋを上回る整数）のアドレス係数を第２モードに対応して発生する。第１変換手段２は、発生手段１によって発生されたアドレス係数の値を１／Ｍ（Ｍ：２以上の整数）の値に変換する。生成手段３は、発生手段１によって発生されたアドレス係数に基づくアドレス情報を第１モードに対応して生成する一方、第１変換手段２によって変換されたアドレス係数に基づくアドレス情報を第２モードに対応して生成する。出力手段４は、ＮビットおよびＮ／Ｍビットのいずれか一方に相当するビット幅を各々が有する複数のアドレスが設けられたメモリへのアクセスのために生成手段３によって生成されたアドレス情報を出力する。
【００２０】
第１モードの下では、発生手段１によって発生されたＫ個のアドレス係数に基づいてアドレス情報が生成される。これに対して、第２モードでは、発生手段１によって発生されたＬ個のアドレス係数の各々の値が１／Ｍの値に変換され、変換された値を示すＬ個のアドレス係数に基づいてアドレス情報が生成される。一方、メモリに設けられたアドレスは、ＮビットおよびＮ／Ｍビットのいずれか一方に相当するビット幅を有する。
【００２１】
したがって、Ｎビットに相当するビット幅を有するメモリに対応して第１モードを選択し、Ｎ／Ｍビットに相当するビット幅を有するメモリに対応して第２モードを選択することで、ビット幅の異なるメモリに対する適応的なアクセスが実現される。この結果、メモリアクセス性能が向上する。
［実施例］
【００２２】
図２を参照して、この実施例のデータ処理装置１０は、データ書き込みを担うデータ処理回路１２とデータ読み出しを担うデータ処理回路１４を含む。データ処理回路１２はアドレス指定回路１２ａおよびデータ出力回路１２ｄによって形成され、データ処理回路１４はアドレス指定回路１４ａおよびデータ入力回路１４ｄによって形成される。
【００２３】
アドレス指定回路１２ａは、ＳＤＲＡＭ１８のビット幅に応じて異なる数の統合アドレスを、ＳＤＲＡＭ１８のビット幅に応じて異なる態様で発生する。発生された統合アドレスは、バスＢＳ１を経た後、メモリ制御回路１６のアドレス変換回路１６ｃに与えられる。一方、データ出力回路１２ｄは、各ワードが３２ビット幅を有するデータを１６ワードずつ繰り返し出力する。出力されたデータは、バスＢＳ１を経た後、メモリ制御回路１６の書き込みデータ転送回路１６ｗに与えられる。
【００２４】
ここで、統合アドレスには、アクセス先のバンクアドレス，ロウアドレスおよびカラムアドレスが記述される。また、ＳＤＲＡＭ１８はバーストアクセス方式を採用し、ＳＤＲＡＭ１８に設けられた複数のアドレスの各々は１６ビットまたは３２ビットのビット幅を有する。ＳＤＲＡＭ１８が１６ビット幅を採用するメモリの場合は、１回のバーストアクセスに対応して８つの統合アドレスがアドレス指定回路１２ａから発生される。一方、ＳＤＲＡＭ１８が３２ビット幅を採用するメモリの場合は、１回のバーストアクセスに対応して４つの統合アドレスがアドレス指定回路１２ａから発生される。
【００２５】
アドレス変換回路１６ｃは、統合アドレスに記述されたバンクアドレス，ロウアドレスおよびカラムアドレスを検出し、検出されたバンクアドレス，ロウアドレスおよびカラムアドレスをＳＤＲＡＭ１８に向けて出力する。ここで、カラムアドレスの値は、ＳＤＲＡＭ１８のビット幅を参照して調整される。
【００２６】
ＳＤＲＡＭ１８が１６ビット幅を採用する場合、書き込みデータ転送回路１６ｗは、バスＢＳ１から与えられたデータ（各ワードが３２ビット幅を有する１６ワードのデータ）を各ワードが１６ビット幅を有する３２ワードのデータに変換し、変換されたデータをＳＤＲＡＭ１８に向けて出力する。これに対して、ＳＤＲＡＭ１８が３２ビット幅を採用する場合、書き込みデータ転送回路１６ｗは、バスＢＳ１から与えられたデータをそのままＳＤＲＡＭ１８に向けて出力する。こうして出力されたデータは、アドレス変換回路１６ｃによって指定されたアドレスに書き込まれる。
【００２７】
データ処理回路１４に設けられたアドレス指定回路１４ａもまた、ＳＤＲＡＭ１８のビット幅に応じて異なる数の統合アドレスを、ＳＤＲＡＭ１８のビット幅に応じて異なる態様で発生する。上述と同様、ＳＤＲＡＭ１８が１６ビット幅を採用する場合は、８つの統合アドレスがアドレス指定回路１４ａから発生される。また、ＳＤＲＡＭ１８が３２ビット幅を採用する場合は、４つの統合アドレスがアドレス指定回路１４ａから発生される。
【００２８】
発生された統合アドレスはバスＢＳ１を経てアドレス変換回路１６ｃに与えられ、これに基づくバンクアドレス，ロウアドレスおよびカラムアドレスが上述の要領でＳＤＲＡＭ１８に向けて出力される。この結果、指定アドレスに格納されたデータが読み出される。
【００２９】
ＳＤＲＡＭ１８が１６ビット幅を採用するＳＤＲＡＭである場合は、各ワードが１６ビット幅を有するデータが３２ワードずつ読み出される。一方、ＳＤＲＡＭ１８が３２ビット幅を採用するＳＤＲＡＭである場合は、各ワードが３２ビット幅を有するデータが１６ワードずつ読み出される。
【００３０】
読み出しデータ転送回路１６ｒは、ＳＤＲＡＭ１８が１６ビット幅を採用するメモリであるとき、読み出されたデータ（各ワードが１６ビット幅を有する３２ワードのデータ）を各ワードが３２ビット幅を有する１６ワードのデータに変換し、変換されたデータをバスＢＳ１に向けて出力する。これに対して、ＳＤＲＡＭ１８が３２ビット幅を採用するメモリであれば、読み出しデータ転送回路１６ｒは、読み出されたデータをそのままバスＢＳ１に向けて出力する。バスＢＳ１を経たデータはその後、データ入力回路１４ｄによって取り込まれる。
【００３１】
アドレス指定回路１２ａおよび１４ａの各々は、図３に示すように構成される。カウンタ２０は、バンクアドレスの一部およびロウアドレスの一部が上位１４ビットに記述された２６ビットのカウント値を発生する。一方、カウンタ２４は、バンクアドレスの一部およびロウアドレスの一部およびカラムアドレスが記述された１２ビットのカウント値を、モード情報が示すモードに応じて異なる回数だけ発生する。
【００３２】
モード情報は、ＳＤＲＡＭ１８が１６ビット幅を採用するメモリである場合に“ＭＤ１６”を示し、ＳＤＲＡＭ１８が３２ビット幅を採用するメモリである場合に“ＭＤ３２”を示す。カウンタ２４は、モード情報が“ＭＤ１６”を示すとき、“０”から“２８”まで“２”毎に増大する合計１５個のカウント値をクロックＣＬＫ２の立ち上がりに応答して出力する。カウンタ２４はまた、モード情報が“ＭＤ３２”を示すとき、“０”から“１２”まで“２”毎に増大する合計７個のカウント値をクロックＣＬＫ２の立ち上がりに応答して出力する。
【００３３】
したがって、ＳＤＲＡＭ１８が１６ビット幅を採用する場合、カウント値は、図５（Ｂ）に示すクロックＣＬＫ２に同期して、図５（Ｃ）に示す要領で出力される。これに対して、ＳＤＲＡＭ１８が３２ビット幅を採用する場合、カウント値は、図６（Ｂ）に示すクロックＣＬＫ２に同期して、図６（Ｃ）に示す要領で出力される。なお、クロックＣＬＫ２の周期は、図５（Ａ）または図６（Ａ）に示すクロックＣＬＫ１の周期の２倍に相当する。
【００３４】
加算器２２は、カウンタ２０および２４からそれぞれ出力された２つのカウント値を互いに加算し、これによって得られた加算値をセレクタ３２の一方入力端に与える。加算器３０は、カウンタ２０から出力されたカウント値と結合器２８から出力された１２ビット値（後述）とを互いに加算し、これによって得られた加算値をセレクタ３２の他方入力端に与える。
【００３５】
分配器２６は、カウンタ２４から出力されたカウント値を上位１０ビット値，下位から２番目の１ビット値，および最下位の１ビット値に分割する。このうち、上位１１ビット値は結合器２８に与えられ、下位から２番目の１ビット値はインバータ３４を介してＦ／Ｆ回路３６に与えられ、そして最下位の１ビット値は廃棄される。結合器２８は、分配器２６から与えられた１１ビット値の上位に“０”を示す１ビット値を結合し、これによって得られた１２ビット値（＝カウンタ２４から出力されたカウント値の１／２の値）を加算器３０に与える。
【００３６】
セレクタ３２は、モード情報が“ＭＤ１６”を示すとき加算器３０から出力された加算値を選択し、モード情報が“ＭＤ３２”を示すとき加算器２２から出力された加算値を選択する。したがって、セレクタ３２によって選択された加算値の下位１２ビットは、ＳＤＲＡＭ１８が１６ビット幅を採用する場合に図５（Ｄ）に示す要領で変化し、ＳＤＲＡＭ１８が３２ビット幅を採用する場合に図６（Ｄ）に示す要領で変化する。
【００３７】
Ｆ／Ｆ回路３６は、インバータ３４の出力がＨレベルを示す期間に能動化され、セレクタ３２から出力された加算値をクロックＣＬＫ２の立ち上がりに応答してラッチする。ラッチされた加算値は、統合アドレスとしてアドレス指定回路１２ａまたは１４ａから出力される。
【００３８】
したがって、統合アドレスの下位１２ビットは、モード情報が“ＭＤ１６”を示すとき図５（Ｅ）に示す要領で変化し、モード情報が“ＭＤ３２”を示すとき図６（Ｅ）に示す要領で変化する。ＳＤＲＡＭ１８のバースト長はビット幅に関係なく“４”に設定され、下位１２ビット値は図５（Ｅ）および図６（Ｅ）のいずれにおいてもクロックＣＬＫ１の４周期毎に更新される。
【００３９】
アドレス変換回路１６ｃは、図４に示すように構成される。セレクタ４０は、アドレス指定回路１２ａから出力された統合アドレスおよびアドレス指定回路１４ａから出力された統合アドレスのいずれか一方を選択する。選択された統合アドレスは、クロックＣＬＫ２に応答してラッチ動作を実行するＦ／Ｆ回路４２および４４を経て、分配器４６に与えられる。
【００４０】
分配器４６は、統合アドレスに相当する２６ビット値のうち、上位１７ビット値または上位１６ビット値をバンク／ロウアドレス生成回路４８に与える。上位１７ビット値は“ＭＤ１６”のモード情報に対応してバンク／ロウアドレス生成回路４８に与えられ、上位１６ビット値は“ＭＤ３２”のモード情報に対応してバンク／ロウアドレス生成回路４８に与えられる。
【００４１】
バンク／ロウアドレス生成回路４８は、与えられた１７ビット値または１６ビット値に基づいてバンクアドレスおよびロウアドレスを生成する。生成されたバンクアドレスおよびロウアドレスは、クロックＣＬＫ１に応答してラッチ動作を実行するＦ／Ｆ回路５０を経た後、ＳＤＲＡＭ１８に向けて出力される。
【００４２】
分配器４６はまた、統合アドレスに相当する２６ビット値のうち、下位１０ビット値をセレクタ５４の一方入力端に与え、下位９ビット値を結合器５２に与える。結合器５２は、与えられた９ビット値の下位に“０”を示す１ビット値を結合し、これによって得られた１０ビット値（＝分配器４６から出力された９ビット値の２倍の値）をセレクタ５４の他方入力端に与える。
【００４３】
セレクタ５４は、結合器５２から与えられた１０ビット値を“ＭＤ１６”のモード情報に対応して選択する一方、分配器４６から与えられた１０ビット値を“ＭＤ３２”のモード情報に対応して選択する。こうして選択された１０ビット値は、クロックＣＬＫ２に応答してラッチ動作を実行するＦ／Ｆ回路５６とクロックＣＬＫ１に応答してラッチ動作を実行するＦ／Ｆ回路５８を介して、カラムアドレスとして出力される。
【００４４】
したがって、ＳＤＲＡＭ１８が１６ビット幅を採用するメモリである場合、カラムアドレスは、図５（Ｅ）に示す統合アドレスに基づいて、図５（Ｆ）に示す要領でＦ／Ｆ回路５８から出力される。これに対して、ＳＤＲＡＭ１８が３２ビット幅を採用するメモリである場合、カラムアドレスは、図６（Ｅ）に示す統合アドレスに基づいて、図６（Ｆ）に示す要領でＦ／Ｆ回路５８から出力される。
【００４５】
書き込みデータ転送回路１６ｗは、図７に示すように構成される。バスＢＳ１を転送されたデータは、各ワードが３２ビット幅を有する１６ワードのデータであり、図８（Ａ）または図９（Ａ）に示すクロックＣＬＫ１に同期して図８（Ｂ）または図９（Ｂ）に示す要領でＦ／Ｆ回路６０に与えられる。Ｆ／Ｆ回路６０は３２ビット幅を有し、クロックＣＬＫ１に応答して入力データをラッチする。ラッチされたデータは、図８（Ｃ）または図９（Ｃ）に示すタイミングでＦ／Ｆ回路６０から出力される。
【００４６】
なお、１６ワードの各々には、説明の便宜上、参照符号“Ａ”〜“Ｐ”のいずれか１つを割り当てる。
【００４７】
Ｆ／Ｆ回路６０から出力された１ワード目のデータＡは、分配器７６によって部分データＡ１およびＡ２に分割される。部分データＡ１は上位１６ビットデータに相当し、部分データＡ２は下位１６ビットデータに相当する。部分データＡ１はセレクタ１１６の端子Ｔ１に直接入力される一方、部分データＡ２はＦ／Ｆ回路９８を経てセレクタ１１６の端子Ｔ２に入力される。Ｆ／Ｆ回路９８は１６ビット幅を有し、クロックＣＬＫ１に応答してラッチ動作を実行する。したがって、部分データＡ２はクロックＣＬＫ１の１周期分遅れてセレクタ１１６に入力される。
【００４８】
Ｆ／Ｆ回路６０から出力された２ワード目〜８ワード目のデータＢ〜Ｈは、直列接続された７個のＦ／Ｆ回路６２〜７４に与えられる。Ｆ／Ｆ回路６２〜７４の各々は３２ビット幅を有し、２ワード目〜８ワード目のデータＢ〜ＨをクロックＣＬＫ１に応答してラッチする。
【００４９】
分配器７８は、Ｆ／Ｆ回路６２から出力された２ワード目のデータＢを、上位１６ビットデータに相当する部分データＢ１と下位１６ビットデータに相当する部分データＢ２とに分割する。部分データＢ１は、セレクタ１１６の端子Ｔ３に直接入力される。一方、部分データＢ２は、１６ビット幅を有するＦ／Ｆ回路１００を経て、クロックＣＬＫ１の１周期分遅れてセレクタ１１６の端子Ｔ４に入力される。
【００５０】
分配器８０は、Ｆ／Ｆ回路６４から出力された３ワード目のデータＣを、上位１６ビットデータに相当する部分データＣ１と下位１６ビットデータに相当する部分データＣ２とに分割する。部分データＣ１は、セレクタ１１６の端子Ｔ５に直接入力される。一方、部分データＣ２は、１６ビット幅を有するＦ／Ｆ回路１０２を経て、クロックＣＬＫ１の１周期分遅れてセレクタ１１６の端子Ｔ６に入力される。
【００５１】
分配器８２は、Ｆ／Ｆ回路６６から出力された４ワード目のデータＤを、上位１６ビットデータに相当する部分データＤ１と下位１６ビットデータに相当する部分データＤ２とに分割する。部分データＤ１は、セレクタ１１６の端子Ｔ７に直接入力される。一方、部分データＤ２は、１６ビット幅を有するＦ／Ｆ回路１０４を経て、クロックＣＬＫ１の１周期分遅れてセレクタ１１６の端子Ｔ８に入力される。
【００５２】
分配器８４は、Ｆ／Ｆ回路６８から出力された５ワード目のデータＥを、上位１６ビットデータに相当する部分データＥ１と下位１６ビットデータに相当する部分データＥ２とに分割する。部分データＥ１は、セレクタ１１６の端子Ｔ９に直接入力される。一方、部分データＥ２は、１６ビット幅を有するＦ／Ｆ回路１０６を経て、クロックＣＬＫ１の１周期分遅れてセレクタ１１６の端子Ｔ１０に入力される。
【００５３】
分配器８６は、Ｆ／Ｆ回路７０から出力された６ワード目のデータＦを、上位１６ビットデータに相当する部分データＦ１と下位１６ビットデータに相当する部分データＦ２とに分割する。部分データＦ１は、セレクタ１１６の端子Ｔ１１に直接入力される。一方、部分データＦ２は、１６ビット幅を有するＦ／Ｆ回路１０８を経て、クロックＣＬＫ１の１周期分遅れてセレクタ１１６の端子Ｔ１２に入力される。
【００５４】
分配器８８は、Ｆ／Ｆ回路７２から出力された７ワード目のデータＧを、上位１６ビットデータに相当する部分データＧ１と下位１６ビットデータに相当する部分データＧ２とに分割する。部分データＧ１は、セレクタ１１６の端子Ｔ１３に直接入力される。一方、部分データＧ２は、１６ビット幅を有するＦ／Ｆ回路１１０を経て、クロックＣＬＫ１の１周期分遅れてセレクタ１１６の端子Ｔ１４に入力される。
【００５５】
分配器９０は、Ｆ／Ｆ回路７４から出力された８ワード目のデータＨを、上位１６ビットデータに相当する部分データＨ１と下位１６ビットデータに相当する部分データＨ２とに分割する。部分データＨ１は、セレクタ１１６の端子Ｔ１５に直接入力される。一方、部分データＨ２は、１６ビット幅を有するＦ／Ｆ回路１１２を経て、クロックＣＬＫ１の１周期分遅れてセレクタ１１６の端子Ｔ１６に入力される。
【００５６】
セレクタ１１６は、クロックＣＬＫ１が立ち上がる毎に、端子Ｔ１〜Ｔ１６を順次選択する。この結果、部分データＡ１〜Ｈ２は、図８（Ｄ）に示すタイミングでセレクタ１１６から出力される。
【００５７】
Ｆ／Ｆ回路６０から出力された１６ワードのデータＡ〜Ｐはまた、ＳＲＡＭ９２に書き込まれる。このうち、９ワード目〜１６ワード目のデータＩ〜Ｐは、図８（Ｅ）に示すクロックＣＬＫ２の３周期分遅れて、図８（Ｆ）に示すタイミングでＳＲＡＭ９２から読み出される。
【００５８】
ＳＲＡＭ９２の出力端には、３２ビット幅を有するＦ／Ｆ回路９４が接続される。Ｆ／Ｆ回路９４は、クロックＣＬＫ２に応答してラッチ動作を実行する。したがって、ＳＲＡＭ９２から読み出された８ワードのデータＩ〜Ｐは、図８（Ｇ）に示すタイミングでＦ／Ｆ回路９４から出力される。
【００５９】
分配器９６は、Ｆ／Ｆ回路９４から出力された各ワードのデータを上位１６ビットの部分データと下位１６ビットの部分データとに分割する。９ワード目のデータＩは部分データＩ１およびＩ２に分割され、１０ワード目のデータＪは部分データＪ１およびＪ２に分割され、１１ワード目のデータＫは部分データＫ１およびＫ２に分割され、１２ワード目のデータＬは部分データＬ１およびＬ２に分割され、１３ワード目のデータＭは部分データＭ１およびＭ２に分割され、１４ワード目のデータＮは部分データＮ１およびＮ２に分割され、１５ワード目のデータＯは部分データＯ１およびＯ２に分割され、そして１６ワード目のデータＰは部分データＰ１およびＰ２に分割される。
【００６０】
上位１６ビットの部分データは、セレクタ１１６の端子Ｔ１７に直接入力される。一方、下位１６ビットの部分データは、１６ビット幅を有するＦ／Ｆ回路１１４を経て、クロックＣＬＫ１の１周期分遅れてセレクタ１１６の端子Ｔ１８に入力される。
【００６１】
セレクタ１１６は、端子Ｔ１６の選択が完了した後、クロックＣＬＫ１が立ち上がる毎に端子Ｔ１７およびＴ１８を交互に選択する。この結果、部分データＩ１〜Ｐ２は図８（Ｈ）に示すタイミングでセレクタ１１６から出力される。
【００６２】
Ｆ／Ｆ回路１１８は１６ビット幅を有し、セレクタ１１６から出力された部分データＡ１〜Ｐ２をクロックＣＬＫ１に応答してラッチする。この結果、部分データＡ１〜Ｐ２は、図８（Ｉ）に示すタイミングでＦ／Ｆ回路１１８から出力される。
【００６３】
Ｆ／Ｆ回路６０から出力された１６ワードのデータＡ〜Ｐはまた、３２ビット幅を有するＦ／Ｆ回路１２０に与えられる。Ｆ／Ｆ回路１２０は、与えられたデータＡ〜ＰをクロックＣＬＫ１に応答してラッチする。ラッチされたデータＡ〜Ｐは、図９（Ｄ）に示すタイミングでＦ／Ｆ回路１２０から出力される。
【００６４】
セレクタ１２２は、ＳＤＲＡＭ１８が１６ビット幅を採用するメモリであるときにＦ／Ｆ回路１１８から出力された部分データＡ１〜Ｐ２を選択する一方、ＳＤＲＡＭ１８が３２ビット幅を採用するメモリであるときにＦ／Ｆ回路１２０から出力されたデータＡ〜Ｐを選択する。選択されたデータは、ＳＤＲＡＭ１８に向けて出力される。
【００６５】
なお、図８（Ｂ）に示すデータＡ〜Ｐは、図５（Ｆ）に示すカラムアドレスに対して図５（Ｇ）に示すタイミングで入力される。また、図８（Ｉ）に示すデータＡ１〜Ｐ２は、図５（Ｆ）に示すカラムアドレスに対して図５（Ｈ）に示すタイミングで出力される。さらに、図９（Ｂ）に示すデータＡ〜Ｐは、図６（Ｆ）に示すカラムアドレスに対して図６（Ｇ）に示すタイミングで入力される。また、図９（Ｄ）に示すデータＡ〜Ｐは、図６（Ｆ）に示すカラムアドレスに対して図６（Ｈ）に示すタイミングで出力される。
【００６６】
読み出しデータ転送回路１６ｒは、図１０に示すように構成される。ＳＤＲＡＭ１８が１６ビット幅を採用するメモリである場合は、上述した３２ワードのデータＡ１〜Ｐ２がＳＤＲＡＭ１８から読み出される。読み出されたデータＡ１〜Ｐ２は、図１１（Ａ）に示すクロックＣＬＫ１に同期して、図１１（Ｂ）に示す要領で入力される。一方、ＳＤＲＡＭ１８が３２ビット幅を採用するメモリである場合は、上述した１６ワードのデータＡ〜ＰがＳＤＲＡＭ１８から読み出される。読み出されたデータＡ〜Ｐは、図１２（Ａ）に示すクロックＣＬＫ１に同期して、図１２（Ｂ）に示す要領で入力される。
【００６７】
ＳＤＲＡＭ１８が１６ビット幅を採用するメモリである場合に注目して、ＳＤＲＡＭ１８から入力されたデータＡ１〜Ｐ２は、直列接続されたＦ／Ｆ回路１３０〜１３２に与えられる。Ｆ／Ｆ回路１３０〜１３２の各々は１６ビット幅を有し、データＡ１〜Ｐ２をクロックＣＬＫ１に応答してラッチする。Ｆ／Ｆ回路１３０〜１３２から同時に出力されたデータは、クロックＣＬＫ１の２周期毎に、結合器１３４によって結合される。これによって、各ワードが３２ビット幅を有する１６ワードの結合データＡ〜Ｐが作成される。
【００６８】
ここで、結合データＡはデータＡ１およびＡ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当し、結合データＢはデータＢ１およびＢ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当する。結合データＣはデータＣ１およびＣ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当し、結合データＤはデータＤ１およびＤ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当する。
【００６９】
結合データＥはデータＥ１およびＥ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当し、結合データＦはデータＦ１およびＦ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当する。結合データＧはデータＧ１およびＧ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当し、結合データＨはデータＨ１およびＨ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当する。
【００７０】
結合データＩはデータＩ１およびＩ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当し、結合データＪはデータＪ１およびＪ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当する。結合データＫはデータＫ１およびＫ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当し、結合データＬはデータＬ１およびＬ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当する。
【００７１】
結合データＭはデータＭ１およびＭ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当し、結合データＮはデータＮ１およびＮ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当する。結合データＯはデータＯ１およびＯ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当し、結合データＰはデータＰ１およびＰ２が上位１６ビットおよび下位１６ビットにそれぞれ配置されたデータに相当する。
【００７２】
結合データＡ〜Ｐは図１１（Ｃ）に示すタイミングで結合器１３４から出力され、このうち結合データＡ〜ＦがＳＲＡＭ１３６に書き込まれる。ＳＲＡＭ１３６に格納された結合データＡ〜Ｆは、図１１（Ｄ）に示すタイミングつまり結合データＨが結合器１３４から出力されるタイミングで、クロックＣＬＫ１に応答して読み出される。Ｆ／Ｆ回路１３８は、ＳＲＡＭ１３６から出力された結合データＡ〜ＦをクロックＣＬＫ１に応答してラッチし、ラッチされた結合データＡ〜ＦをクロックＣＬＫ１の１周期分遅れて出力する。出力された結合データＡ〜Ｆは、セレクタ２００の端子Ｔ１を介して図１１（Ｅ）に示すタイミングで出力される。
【００７３】
ＳＤＲＡＭ１８から入力されたデータＡ１〜Ｐ２はまた、直列接続された２０個のＦ／Ｆ回路１４０〜１７８に与えられる。Ｆ／Ｆ回路１４０〜１７８の各々は１６ビット幅を有し、３２ワードのデータＡ１〜Ｐ２をクロックＣＬＫ１に応答してラッチする。
【００７４】
Ｆ／Ｆ回路１４０〜１４２から同時に出力されたデータは、クロックＣＬＫ１の２周期毎に結合器１８０によって結合され、これによって作成された結合データはセレクタ２００の端子Ｔ１１に与えられる。Ｆ／Ｆ回路１４４〜１４６から同時に出力されたデータは、クロックＣＬＫ１の２周期毎に結合器１８２によって結合され、これによって作成された結合データはセレクタ２００の端子Ｔ１０に与えられる。
【００７５】
Ｆ／Ｆ回路１４８〜１５０から同時に出力されたデータは、クロックＣＬＫ１の２周期毎に結合器１８４によって結合され、これによって作成された結合データはセレクタ２００の端子Ｔ９に与えられる。Ｆ／Ｆ回路１５２〜１５４から同時に出力されたデータは、クロックＣＬＫ１の２周期毎に結合器１８６によって結合され、これによって作成された結合データはセレクタ２００の端子Ｔ８に与えられる。
【００７６】
Ｆ／Ｆ回路１５６〜１５８から同時に出力されたデータは、クロックＣＬＫ１の２周期毎に結合器１８８によって結合され、これによって作成された結合データはセレクタ２００の端子Ｔ７に与えられる。Ｆ／Ｆ回路１６０〜１６２から同時に出力されたデータは、クロックＣＬＫ１の２周期毎に結合器１９０によって結合され、これによって作成された結合データはセレクタ２００の端子Ｔ６に与えられる。
【００７７】
Ｆ／Ｆ回路１６４〜１６６から同時に出力されたデータは、クロックＣＬＫ１の２周期毎に結合器１９２によって結合され、これによって作成された結合データはセレクタ２００の端子Ｔ５に与えられる。Ｆ／Ｆ回路１６８〜１７０から同時に出力されたデータは、クロックＣＬＫ１の２周期毎に結合器１９４によって結合され、これによって作成された結合データはセレクタ２００の端子Ｔ４に与えられる。
【００７８】
Ｆ／Ｆ回路１７２〜１７４から同時に出力されたデータは、クロックＣＬＫ１の２周期毎に結合器１９６によって結合され、これによって作成された結合データはセレクタ２００の端子Ｔ３に与えられる。Ｆ／Ｆ回路１７６〜１７８から同時に出力されたデータは、クロックＣＬＫ１の２周期毎に結合器１９８によって結合され、これによって作成された結合データはセレクタ２００の端子Ｔ２に与えられる。
【００７９】
セレクタ２００は、端子Ｔ１に与えられたデータＦの出力後、クロックＣＬＫ１が立ち上がる毎に端子Ｔ２〜Ｔ１１を順に選択する。この結果、結合器１９８〜１８０でそれぞれ作成された結合データＧ〜Ｐが、図１１（Ｆ）に示すタイミングでセレクタ２００から出力される。
【００８０】
セレクタ２０４は、ＳＤＲＡＭ１８が１６ビット幅を採用するメモリであるとき、セレクタ２００を選択する。セレクタ２００から出力された結合データＡ〜Ｐは、図１１（Ｇ）に示す要領でバスＢＳ１に向けて出力される。
【００８１】
ＳＤＲＡＭ１８が３２ビット幅を採用するメモリである場合に注目して、ＳＤＲＡＭ１８から入力されたデータＡ〜Ｐは、３２ビット幅のＦ／Ｆ回路２０２に与えられる。Ｆ／Ｆ回路２０２は、データＡ〜ＰをクロックＣＬＫ１に応答してラッチし、ラッチされたデータＡ〜Ｐをセレクタ２０４に与える。セレクタ２０４は、ＳＤＲＡＭ１８が３２ビット幅を採用するメモリであるとき、Ｆ／Ｆ回路２０２を選択する。したがって、Ｆ／Ｆ回路２０２から与えられたデータＡ〜Ｐは、図１２（Ｃ）に示す要領でバスＢＳ１に向けて出力される。
【００８２】
なお、図１１（Ｂ）に示すデータＡ１〜Ｐ２は、図５（Ｆ）に示すカラムアドレスに対して図５（Ｉ）に示すタイミングで入力される。また、図１１（Ｇ）に示すデータＡ〜Ｐは、図５（Ｆ）に示すカラムアドレスに対して図５（Ｊ）に示すタイミングで出力される。さらに、図１２（Ｂ）に示すデータＡ〜Ｐは、図６（Ｆ）に示すカラムアドレスに対して図６（Ｉ）に示すタイミングで入力される。また、図１２（Ｃ）に示すデータＡ〜Ｐは、図６（Ｆ）に示すカラムアドレスに対して図６（Ｊ）に示すタイミングで出力される。
【００８３】
以上の説明から分かるように、カウンタ２４は、７個のカウント値（＝Ｋ個のアドレス係数）をモード情報“ＭＤ３２”に対応して出力する一方、１５個のカウント値（＝Ｌ個のアドレス係数）をモード情報“ＭＤ１６”に対応して出力する。分配器２６および結合器２８は、カウンタ２４から出力されたカウント値を１／２（＝１／Ｍ）の値に変換する。セレクタ３２は、カウンタ２４から出力されたカウント値に基づく加算値（＝アドレス情報）をモード情報“ＭＤ３２”に対応して生成する一方、結合器２８から出力された数値に基づく加算値をモード情報“ＭＤ１６”に対応して生成する。ＳＤＲＡＭ１８に設けられた複数のアドレスの各々は、３２ビット（＝Ｎビット）および１６ビット（＝Ｎ／Ｍビット）のいずれか一方に相当するビット幅を有する。Ｆ／Ｆ回路３６は、このようなＳＤＲＡＭ１８へのアクセスのために、セレクタ３２によって選択されたカウント値を統合アドレスとして出力する。
【００８４】
このように、モード情報が“ＭＤ３２”を示すときは、カウンタ２４から出力された７個のカウント値に基づいて統合アドレスが生成される。これに対して、モード情報が“ＭＤ１６”を示すときは、カウンタ２４から出力された１５個のカウント値の各々の値が１／２の値に変換され、変換されたＬ個の数値に基づいて統合アドレスが生成される。一方、ＳＤＲＡＭ１８に設けられたアドレスは、３２ビットおよび１６ビットのいずれか一方に相当するビット幅を有する。
【００８５】
したがって、ＳＤＲＡＭ１８が３２ビット幅を有する場合にモード情報を“ＭＤ３２”に設定し、ＳＤＲＡＭ１８が１６ビット幅を有する場合にモード情報を“ＭＤ１６”に設定することで、ビット幅の異なるＳＤＲＡＭに対する適応的なアクセスが実現される。この結果、メモリアクセス性能が向上する。
【００８６】
なお、この実施例のデータ処理装置１０としては、ディジタルカメラ，オーディオプレーヤなどのＳＤＲＡＭを利用してデータを処理するあらゆる電子機器が想定される。
【符号の説明】
【００８７】
１０  …データ処理装置
１２ａ，１４ａ  …アドレス指定回路
１６ｃ  …アドレス変換回路
２０，２４  …カウンタ
３２，５４  …セレクタ
２６  …分配器
２８，５２  …結合器
３６  …Ｆ／Ｆ回路
【図１】
0005597120.tif 000002
【図２】
0005597120.tif 000003
【図３】
0005597120.tif 000004
【図４】
0005597120.tif 000005
【図５】
0005597120.tif 000006
【図６】
0005597120.tif 000007
【図７】
0005597120.tif 000008
【図８】
0005597120.tif 000009
【図９】
0005597120.tif 000010
【図１０】
0005597120.tif 000011
【図１１】
0005597120.tif 000012
【図１２】
0005597120.tif 000013