JP2004005108A - データ転送制御方法およびデータ転送制御装置 - Google Patents
データ転送制御方法およびデータ転送制御装置 Download PDFInfo
- Publication number
- JP2004005108A JP2004005108A JP2002158858A JP2002158858A JP2004005108A JP 2004005108 A JP2004005108 A JP 2004005108A JP 2002158858 A JP2002158858 A JP 2002158858A JP 2002158858 A JP2002158858 A JP 2002158858A JP 2004005108 A JP2004005108 A JP 2004005108A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- access
- cycle
- master device
- master
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】複数のマスターが短いウェイトサイクルでメモリにアクセスできるデータ転送制御方法を提供する。
【解決手段】マスター1とマスター2とからのメモリ3Aへのアクセスを制御するデータ転送制御方法は、マスター1がアドレスをインクリメントしながらメモリ3Aへライトアクセスするサイクルごとに、そのアクセスアドレスが偶数を示すサイクルであるか奇数を示すサイクルであるかに応じて、マスター1に対して、サイクルt1においてメモリ3Aへのアクセスをウェイトさせ、サイクルt2においてメモリ3Aへアクセスさせる。そして、サイクルt1においては、マスター2にメモリ3Aへアクセスさせる。
【選択図】 図2
【解決手段】マスター1とマスター2とからのメモリ3Aへのアクセスを制御するデータ転送制御方法は、マスター1がアドレスをインクリメントしながらメモリ3Aへライトアクセスするサイクルごとに、そのアクセスアドレスが偶数を示すサイクルであるか奇数を示すサイクルであるかに応じて、マスター1に対して、サイクルt1においてメモリ3Aへのアクセスをウェイトさせ、サイクルt2においてメモリ3Aへアクセスさせる。そして、サイクルt1においては、マスター2にメモリ3Aへアクセスさせる。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、半導体装置内で、複数のマスターが1つのメモリに対して短いウェイトサイクルでアクセスを可能にするデータ転送制御方法に関するものである。
【0002】
【従来の技術】
従来のデータ転送制御方法は、プロセッサや処理ユニットなどの各マスターは、アクセスのための優先順位を調節して、メモリへのアクセスを行っていた。
【0003】
すなわち、従来のデータ転送制御方法において、あるマスターの処理が必要になったときには、そのマスターのメモリに対するアクセスの優先度を上昇させる。そして、そのマスターの処理が行われ後はアクセスの優先度を低下させて、そのマスターは順番待ち状態にする。さらに、次にメモリへのアクセスを要する別のマスターの優先度を上昇させる。このように、マスターのメモリへのアクセスを優先度にしたがって調停することによって、データ転送の制御を行っていた。
【0004】
【発明が解決しようとする課題】
今日、デジタルテレビやDVDにおけるLSIの価格低下によって1チップ化が進んでいるため、メインメモリに使用されるデータの転送レートが非常に大きくなってきている。この場合、上記従来例のようなデータ転送制御方法であれば、長いサイクルの間、マスターがメモリにアクセスできない状態が生じると、動作上必要なマスターが停止し、システムが破綻してしまう。
【0005】
そこで、本発明の目的は、複数のマスターが短いウェイトサイクルでメモリにアクセスできるデータ転送制御方法を提供することである。その結果、メモリを効率良く利用でき、データの転送レートの削減を可能にする。
【0006】
【課題を解決するための手段】
上記課題を解決するために、請求項1に記載の発明は、第1のマスターデバイスと第2のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御方法であって、前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへライトアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへのアクセスをウェイトさせた後、前記第2のサイクルにおいて前記メモリへアクセスさせ、前記第2のマスターデバイスに対して、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第1のサイクルにおいて、前記メモリへアクセスさせるものである。
【0007】
請求項1の発明によると、第1のマスターデバイスからメモリへのライトアクセスを行うサイクルごとのアクセスアドレスの奇偶に応じて、サイクルごとに第1のマスターデバイスにメモリへアクセスまたはウェイトを行わせ、第1のマスターデバイスがウェイトするサイクルにおいて、第2のマスターデバイスにアクセスさせる。これにより、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。その結果、メモリを効率利用でき、データ転送レートを削減することができる。
【0008】
また、請求項2の発明は、第1のマスターデバイスと第2のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御方法であって、前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへリードアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへアクセスさせた後、前記第2のサイクルにおいて前記メモリへのアクセスをウェイトさせ、前記第2のマスターデバイスに対して、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第2のサイクルにおいて、前記メモリへアクセスさせるものである。
【0009】
請求項2の発明によると、第1のマスターデバイスからメモリへのリードアクセスを行うサイクルごとのアクセスアドレスの奇偶に応じて、サイクルごとに第1のマスターデバイスにメモリへアクセスまたはウェイトを行わせ、第1のマスターがウェイトするサイクルにおいて、第2のマスターデバイスにアクセスさせる。これにより、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。その結果、メモリを効率利用でき、データ転送レートを削減することができる。
【0010】
また、請求項3の発明は、請求項1または請求項2のいずれかに記載のデータ転送制御方法において、当該データ転送制御方法は、前記第1のマスターデバイスと前記第2のマスターデバイスとからの前記メモリが有する複数のバンクへのアクセスを制御する方法であって、前記第1のマスターデバイスに対して前記メモリへアクセスさせる場合に、前記第2のマスターデバイスから前記メモリへのアクセス要求がある場合は、前記第1のマスターデバイスにアクセスさせる前記メモリのバンクと前記第2のマスターデバイスからアクセス要求がある前記メモリのバンクとが異なれば、前記第1のマスターデバイスとともに前記第2のマスターデバイスに前記メモリへアクセスさせるものとする。
【0011】
請求項3の発明によると、第1および第2のマスターデバイスからアクセスするメモリが複数のバンクを有する場合に、第1および第2のマスターデバイスから同時にアクセスすることを可能にするため、第1および第2のマスターデバイスのメモリへのウェイトサイクルをさらに短縮できる。その結果、メモリを効率利用でき、データ転送レートをさらに削減することができる。
【0012】
また、請求項4の発明は、請求項1または請求項3のいずれかに記載のデータ転送制御方法において、前記第1のマスターデバイスの前記メモリへのアクセスがライトアクセスである場合は、前記第1のサイクルにおいて、前記第1のマスターデバイスから転送された偶数アドレス2k(kは整数)と前記偶数アドレス2kに書き込むべきデータとを保持することによって前記メモリへのアクセスをウェイトさせ、前記第2のサイクルにおいて、前記第1のマスターデバイスから転送された奇数アドレス(2k+1)と前記奇数アドレス(2k+1)に書き込むべきデータと、前記第1のサイクルにおいて保持された前記偶数アドレス2kと前記偶数アドレス2kに書き込むべきデータとを前記メモリに転送することによって前記メモリへアクセスさせるものとする。
【0013】
請求項4の発明によると、第1のサイクルにおいて第1のマスターデバイスから転送されるデータを保持してメモリへのアクセスをウェイトさせ、第2のサイクルにおいて第1のマスターデバイスから転送されるデータと第1のサイクルにおいて保持されたデータと合わせてメモリへのライトアクセスを行わせる。これにより、第1のマスターデバイスがメモリへのアクセスをウェイトする第1のサイクルにおいて、第2のマスターデバイスからメモリへのアクセスが可能となり、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。
【0014】
また、請求項5の発明は、請求項2または請求項3のいずれかに記載のデータ転送制御方法において、前記第1のマスターデバイスの前記メモリへのアクセスがリードアクセスである場合は、前記第1のサイクルにおいて、前記第1のマスターデバイスから転送された偶数アドレス2k(kは整数)と、前記偶数アドレス2kの次にインクリメントされる奇数アドレス(2k+1)とを前記メモリに転送することによって前記メモリへアクセスさせ、前記第2のサイクルにおいて、前記メモリから転送される前記偶数アドレス2kから読み出されたデータを前記第1のマスターデバイスに転送し、前記メモリから転送される前記奇数アドレス(2k+1)から読み出されたデータを保持することによって前記メモリへのアクセスをウェイトさせ、前記第2のサイクルにおいて保持された前記奇数アドレス(2k+1)から読み出されたデータは、前記第2のサイクルの次のサイクルにおいて、前記第1のマスターデバイスに転送するものとする。
【0015】
請求項5の発明によると、第1のサイクルにおいて第1のマスターデバイスから転送されるアドレスとそのアドレスの次にインクリメントされるアドレスとを合わせてメモリへのリードアクセスを行わせ、第2のサイクルにおいてメモリから転送されるデータのうちの一方を第1のマスターデバイスに転送し、他方を保持してメモリへのリードアクセスをウェイトする。これにより、第1のマスターデバイスがメモリへのアクセスをウェイトするサイクルにおいて、第2のマスターデバイスからメモリへのアクセスが可能となり、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。また、第1のサイクルにおいて、次にインクリメントするアドレスを先読みするため、リードデータのレーテンシを固定することができる。
【0016】
また、請求項6の発明は、請求項4に記載のデータ転送制御方法において、前記第2のサイクルにおいて、前記第2のマスターデバイスから前記メモリへアクセス要求がある場合は、前記第1のマスターデバイスから転送された前記奇数アドレス(2k+1)にもとづいて、前記第2のサイクルの間、前記第2のマスターデバイスに前記メモリへのアクセスをウェイトさせるものとする。
【0017】
また、請求項7の発明は、請求項5に記載のデータ転送制御方法において、前記第1のサイクルにおいて、前記第2のマスターデバイスから前記メモリへアクセス要求がある場合は、前記第1のマスターデバイスから転送された前記偶数アドレス2kにもとづいて、前記第1のサイクルの間、前記第2のマスターデバイスに前記メモリへのアクセスをウェイトさせるものとする。
【0018】
また、請求項8の発明は、請求項4に記載のデータ転送制御方法において、前記第2のサイクルにおいて、前記第1のマスターデバイスから奇数アドレス(2k+1)と前記奇数アドレス(2k+1)に書き込むべきデータとが転送されない場合は、前記第1のサイクルにおいて保持された前記偶数アドレス2kと前記偶数アドレス2kに書き込むべきデータとを転送し、前記メモリにおける前記奇数アドレス(2k+1)に書き込むべきデータの領域にはデータを書き込まないように制御するものとする。
【0019】
また、請求項9の発明は、請求項4から請求項8のいずれかに記載のデータ転送制御方法において、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる場合に行うデータの保持は、前記第1のマスターデバイスからサイクルごとに転送される一のアドレスに対応するデータのみを有するデータバッファを用いて行うものとする。
【0020】
請求項9の発明によると、より少ない回路規模で、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。
【0021】
また、請求項10の発明は、第1のマスターデバイスと第1のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御装置であって、前記データ転送制御装置は、前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへライトアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへのアクセスをウェイトさせた後、前記第2のサイクルにおいて前記メモリへアクセスさせるデータ制御回路と、前記第1のマスターデバイスが前記メモリへアクセスするアドレスと前記第2のマスターデバイスが前記メモリへアクセスするアドレスとにもとづいて、前記第2のマスターデバイスに対して、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第1のサイクルにおいて、前記メモリへアクセスさせる調停回路とを備えるものである。
【0022】
請求項10の発明によると、第1のマスターデバイスからのメモリへのライトアクセスを行うサイクルごとのアクセスアドレスの奇偶に応じて、サイクルごとに第1のマスターデバイスにメモリへアクセスまたはウェイトを行わせ、第1のマスターデバイスにウェイトさせるサイクルにおいて、第2のマスターデバイスにアクセスさせる。これにより、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。その結果、メモリを効率良く利用でき、データ転送レートを削減することができる。
【0023】
また、請求項11の発明は、第1のマスターデバイスと第1のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御装置であって、前記データ転送制御装置は、前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへリードアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへアクセスさせた後、前記第2のサイクルにおいて前記メモリへのアクセスをウェイトさせるデータ制御回路と、前記第1のマスターデバイスが前記メモリへアクセスするアドレスと前記第2のマスターデバイスが前記メモリへアクセスするアドレスとにもとづいて、前記第2のマスターデバイスに対して、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第2のサイクルにおいて、前記メモリへアクセスさせる調停回路とを備えるものである。
【0024】
請求項11の発明によると、第1のマスターデバイスからのメモリへのリードアクセスを行うサイクルごとのアクセスアドレスの奇偶に応じて、サイクルごとに第1のマスターデバイスにメモリへアクセスまたはウェイトを行わせ、第1のマスターデバイスにウェイトさせるサイクルにおいて、第2のマスターデバイスにアクセスさせる。これにより、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。その結果、メモリの効率良く利用でき、データ転送レートを削減することができる。
【0025】
【発明の実施の形態】
以下、本発明の各実施形態について図面を参照しながら説明する。
【0026】
(第1の実施形態)
〜ライトアクセス〜
図1は、本実施形態におけるデータ転送制御方法を説明するためのブロック図であり、プロセッサや処理ユニットなどのマスター1(第1のマスターデバイスに対応する)が、メモリ制御装置10A(データ転送制御装置に対応する)を介して、メモリ3Aにライトアクセスする場合の図である。
【0027】
マスター1は、プロセッサや処理ユニットなどであり、マスター1はビット幅nのデータバスWb1によってメモリ制御装置10Aと接続されている。マスター1がメモリ3Aにライトアクセスする場合は、リクエスト/アドレス線L1を介して、メモリ制御装置10Aにライトリクエストを行うとともに、アドレスをインクリメントしながらメモリ制御装置10Aに転送する。なお、ライトアクセスを行うアドレスに書き込むべきビット幅nのデータは、データバスWb1を介してメモリ制御装置10Aに転送する。
【0028】
マスター2(第2のマスターデバイスに対応する)は、プロセッサや処理ユニットなどであり、マスター2はビット幅2nのデータバスW/Rb2によってメモリ制御装置10Aと接続されている。マスター2がメモリ3Aにライトまたはリードアクセスする場合は、リクエスト/アドレス線L2を介して、メモリ制御装置10Aにライトまたはリードリクエストを行うとともに、所定のアドレスをランダムにメモリ制御装置10Aに転送する。
【0029】
メモリ3Aは、ビット幅2nのデータバスWb3によってメモリ制御装置10Aと接続されており、リクエスト/アドレス線L3を介して転送されるリクエストおよびアドレスとにもとづいて、データバスWb3を介してマスター1からのライトアクセスを行う。なお、マスター2がメモリ3Aに対してライトまたはリードアクセスを行う場合は、リクエスト/アドレス線L3を介して転送されるリクエストおよびアドレスとにもとづいて、所定のバス(図示せず)を介して行われる。
【0030】
メモリ制御装置10Aは、データ制御回路4Aと調停回路5Aとセレクタ10aとを備える。データ制御回路4Aはリクエストやアドレス、データを保持する共有バッファ4aを有する。調停回路5Aはマスター1やマスター2からのライトやリードリクエストとともにアドレスを入力する。また、調停回路5Aは入力されるリクエストおよびアドレスにもとづいて、マスター1またはマスター2のいずれにメモリへアクセスさせるかを判定する判定信号S2をセレクタ10aに出力する。また、マスター2にメモリ3Aへのアクセスをウェイトさせる場合は、アクセスをウェイトさせるためのビジー信号S1をマスター2に送信する。セレクタ10aは、調停回路5Aからの判定信号S2にしたがって、メモリ3Aにアクセスさせるマスター1またはマスター2からのデータをセレクトする。なお、メモリ制御装置10Aは、セレクトされるデータに対応するリクエスト、アドレスをメモリ3Aに転送する。
【0031】
以下に、ライトアクセスする場合の本実施形態に係るデータ転送制御方法について説明する。
【0032】
図2は、マスター1がメモリ3Aにライトアクセスする場合のタイミングチャートである。
【0033】
まず、マスター1がメモリ3Aにアクセスするアドレスが偶数アドレス(偶数アドレス2kに対応する)であるサイクルt1(第1のサイクルに対応する)での制御方法について説明する。
【0034】
マスター1は、ライトアクセスのリクエストとともに偶数アドレスad−0をリクエスト/アドレス線L1を介してメモリ制御装置10Aに転送する。また、このリクエストおよびアドレスは、メモリ制御装置10A内部のデータ制御回路4Aおよび調停回路5Aに転送される。またこのとき、マスター1は、メモリ制御装置10Aに転送する偶数値のアドレスad−0に書き込むべきデータda−0をデータバスWb1を介して、メモリ制御装置10A内のデータ制御回路4Aに転送する。データ制御回路4Aは、ライトアクセスのリクエスト、偶数アドレスad−0、およびデータda−0を共有バッファ4aにおいて保持する。なお、図2に示す共有バッファ4aのデータとは、共有バッファ4aにバッファリングされているデータを示す。
【0035】
次に、マスター1がメモリ3Aにアクセスするアドレスが奇数アドレス(奇数アドレス(2k+1)に対応する)であるサイクルt2(第2のサイクルに対応する)での制御方法について説明する。
【0036】
マスター1は、サイクルt1に引き続いてライトアクセスのリクエストを行うとともに、奇数アドレスad−1をリクエスト/アドレス線L1を介してメモリ制御装置10Aに転送する。またこのとき、マスター1は、メモリ制御装置10Aに転送する奇数アドレスad−1に書き込むべきデータda−1をデータバスWb1を介して、メモリ制御装置10A内のデータ制御回路4Aに転送する。このサイクルt2では、メモリ制御装置10Aは、転送されたデータda−1を共有バッファ4aを介させずに、サイクルt1で共有バッファ4aに保持したデータda−0と合わせて、ビット幅2n分のデータとして、データバスWb3を介して、メモリ3Aにライトアクセスする。またこのライトアクセスの際、メモリ制御装置10Aは、上記ビット幅2n分のデータに対応するアドレスad−1およびアドレスad−0とライトアクセスのリクエストをメモリ3Aに転送する。
【0037】
このように、マスター1がメモリ制御装置10Aに偶数アドレスを渡すサイクル(図2では、サイクルt1、t3、t5)では、マスター1はメモリ3Aにアクセスせずにウェイトしている状態なので、マスター2はメモリ3Aにアクセスすることが可能になる。
【0038】
例えば、サイクルt1において、マスター1からのライトアクセスのリクエストとともに偶数アドレスad−0を受ける一方、マスター2からはライトまたはリードアクセスのリクエストを受ける場合は、調停回路5Aはマスター2にメモリ3Aへのアクセスを認める判定を行う。つまり、この場合は、調停回路5Aはセレクタ10aに対して、マスター2からのメモリ3Aへのアクセスを認める判定信号S2を送信し、判定信号S2を受けたセレクタ10aによって、マスター2に対してメモリ3Aへアクセスさせる。(なお、図示はしていないが、マスター2からのメモリ3Aへのアクセスはアドレスやデータバスを転送する所定の信号線を介して行われることは言うまでもない。)
これにより、マスター1がライトアクセスする場合、マスター1およびマスター2のメモリへのウェイトサイクルを短縮できる。その結果、メモリの効率使用が可能になり、データ転送レートを削減することができる。
【0039】
<マスター1のアクセスサイクルにマスター2からのアクセス要求がある場合>
次に、マスター1がメモリ制御装置10Aに奇数アドレスを転送するサイクル(図2では、サイクルt2、t4、t6)において、マスター2がメモリ3Aにアクセスしようとする場合について説明する。
【0040】
例えば、サイクルt4においては、図2に示すように、マスター1からメモリ3Aに対してライトアクセスのリクエストが行われている。すなわち、マスター1からライトアクセスのリクエストおよび奇数アドレスad−3と奇数アドレスad−3に書き込むべきデータda−3がメモリ制御装置10Aに転送されている。一方、図2に示すように、マスター2からもライトまたはリードアクセスのリクエストが行われている。この場合、調停回路5Aは、マスター1から奇数アドレスad−3が転送されており、このサイクルではマスター1にメモリ3Aへのアクセスをさせるため、マスター2に対してメモリ3Aへのアクセスをウェイトさせるビジー信号S1を出力する。このため、ビジー信号S1を受けたマスター2はメモリ3Aへのアクセスをウェイトする。なお、この場合、調停回路5Aは、セレクタ10aに対しては、マスター1にメモリ3Aへアクセスさせるための判定信号S2を出力する。そして、判定信号S2を受けたセレクタ10aは、マスター1にメモリ3Aへのアクセスをさせる。
【0041】
そして、次のサイクルt5において、調停回路5Aは、マスター1から偶数アドレスad−4を転送されており、このサイクルではマスター1にメモリ3Aへのアクセスをウェイトさせるため、マスター2からメモリ3Aへのアクセスが可能であると判定し、ビジー信号S1を解除する。そのため、マスター2は、再度同じアドレスをメモリ制御装置10Aに転送し、メモリ制御装置10Aを介して、メモリ3Aにアクセスを行う。
【0042】
<マスター1からのアクセスアドレスが偶数、奇数の順のペアにならない転送が起きた場合>
例えば、上記のようにサイクルt2においては、マスター1からのライトアクセスのリクエストと偶数アドレスad−0とがメモリ制御装置10Aに転送されるとともに、偶数アドレスad−0に書き込むべきデータda−0が転送される。そして、サイクルt2において、何らかの要因でマスター1からのライトアクセスのリクエストがアクティブでなくなった場合を考える。この場合、メモリ制御装置10Aは、サイクルt2において、マスター1からのライトアクセスのリクエストが転送されないことにもとづいて、ライトアクセスのリクエストがあったデータda−0に対応するメモリ3Aのデータ領域にだけデータを書き込み、ライトアクセスのリクエストがなかったアドレスad−1にはデータを書き込まないように、制御線L4を介してメモリ3Aを制御する。
【0043】
(第2の実施形態)
〜リードアクセス〜
図3は、本実施形態におけるデータ転送制御方法を説明するための図であり、プロセッサや処理ユニットなどのマスター1(第1のマスターデバイスに対応する)が、メモリ制御装置10B(データ転送制御装置に対応する)を介して、メモリ3Bにリードアクセスする場合の図である。
【0044】
なお、上記図1に示した構成要素と同一または共通の構成要素には、同一または同様の符号を付しており、各構成要素における共通する動作の説明は省略し、相違する部分を中心に説明する。
【0045】
マスター1は、メモリ3Bにリードアクセスする場合は、リクエスト/アドレス線L1を介して、メモリ制御装置10Bにリードリクエストを行うとともに、アドレスをインクリメントしながら転送する。 なお、マスター2(第2のマスターデバイスに対応する)およびメモリ3Bは、第1の実施形態と同様の動作を行う。
【0046】
メモリ制御装置10Bは、データ制御回路4Bと調停回路5Bとを備える。データ制御回路4Bは、第1の実施形態と同様の共有バッファ4bとセレクタ4cとを有する。調停回路5Bはマスター1やマスター2からのリードまたはライトアクセスのリクエストとアドレスとを入力する。また、調停回路5Bは上記マスター1およびマスター2からのリクエストおよびアドレスにもとづいて、マスター2をウェイトさせるビジー信号S1を出力する。セレクタ4cは、マスター1からのリクエストおよびアドレスに応じて、メモリ3Aから読み出されるデータを共有バッファ4bに保持させるか、共有バッファ4bを介さずにマスター1に転送するかをセレクトする。またメモリ制御装置10Bは、リクエスト/アドレス線L3を介して、マスター1またはマスター2からのリクエストおよびアドレスをメモリ3Aに転送する。
【0047】
以下に、リードアクセスする場合の本実施形態に係るデータ転送制御方法について説明する。
【0048】
図4は、マスター1がメモリ3Bにリードアクセスする場合のタイミングチャートである。
【0049】
まず、マスター1がメモリ3Bにアクセスするアドレスが偶数アドレス(偶数アドレス2kに対応する)であるサイクルt1(第1のサイクルに対応する)での制御方法について説明する。
【0050】
マスター1は、リードアクセスのリクエストとともに偶数アドレスad−0をリクエスト/アドレス線L1を介してメモリ制御装置10Bに転送する。また、このリクエストおよびアドレスは、メモリ制御装置10B内部のデータ制御回路4Bおよび調停回路5Bに転送される。そして、データ制御回路4Bは、転送されたリクエストおよび偶数アドレスad−0と、偶数アドレスad−0の次にインクリメントされることになる奇数アドレスad−1とをメモリ3Bに転送し、それぞれのアドレスからビット幅2n分のデータを読み出すようにメモリ3Bに対して要求する。すなわち、偶数アドレスad−0に対応するデータda−0と奇数アドレスad−1に対応するデータda−1の読み出しをメモリ3Bに要求する。
【0051】
次に、マスター1がメモリ3Bにアクセスするアドレスが奇数アドレス(奇数アドレス(2k+1)に対応する)であるサイクルt2(第2のサイクルに対応する)での制御方法について説明する。
【0052】
メモリ3Bは、上記サイクルt1で要求されたビット幅2n分のデータをデータバスRb3を介してメモリ制御装置10Bに転送する。そして、メモリ制御装置10Bは、偶数アドレスad−0から読み出されたデータda−0をデータバスRb1を介してマスター1にすぐに転送し、奇数アドレスad−1から読み出されたデータda−1を共有バッファ4bに保持する。なお、上記のように、セレクタ4cは、マスター1からのリクエストおよびアドレスに応じて、マスター1に転送するデータをセレクトする。
【0053】
次に、マスター1がメモリ3Bにアクセスするアドレスが偶数アドレスであるサイクルt3での制御方法について説明する。
【0054】
メモリ制御装置10Bは、共有バッファ4bに保持されたデータda−1をマスター1に転送する。なお、このとき、セレクタ4cは、マスター1からのリクエストおよびアドレスに応じて、マスター1に転送するデータとしてデータda−1をセレクトしている。また、このサイクルでは、上記サイクルt1と同様に、マスター1から転送されるリクエストとアドレスを受けて、メモリ制御装置10Bは、メモリ3Bに対してビット幅2n分のデータのリードアクセスを行う。
【0055】
このようにすることで、マスター1がメモリ制御装置10Bに奇数アドレスを渡すサイクル(図4では、サイクルt2、t4、t6)においては、マスター1はメモリ3Bにアクセスせずにウェイトしているため、マスター2はメモリ3Bにアクセスすることが可能になる。例えば、サイクルt2において、マスター1からのリードアクセスのリクエストとともに奇数アドレスad−1を受ける一方、マスター2からはライトまたはリードアクセスのリクエストを受ける場合、調停回路5Aはマスター1から転送されるアドレスが奇数アドレスad−1であることにもとづいて、マスター2からのメモリ3Aへのアクセスを認める判定をする。
【0056】
これにより、マスター1がリードアクセスする場合、マスター1およびマスター2が短いウェイトサイクルでメモリにアクセスすることができる。その結果、メモリを効率使用を可能にし、データ転送レートを削減できる。また、マスター1から偶数アドレスを転送するサイクルにおいて、メモリ制御装置10Bで次にインクリメントされることになるアドレスを先読みし、2つアドレスに対応するビット幅2n分のデータのリードリクエストを行うことで、マスター1の要求するリードデータのレーテンシを一定にすることができる。
【0057】
<マスター1のアクセスサイクルにマスター2からのアクセス要求がある場合>
次に、マスター1がメモリ制御装置10Bに偶数アドレスを転送するサイクル(図4では、サイクルt1、t3、t5)において、マスター2がメモリ3Bにアクセスしようとする場合を説明する。
【0058】
例えば、サイクルt5においては、図4に示すように、マスター1からメモリ3Bに対してリードアクセスのリクエストが行われている。すなわち、マスター1からリードアクセスのリクエストおよび偶数アドレスad−4がメモリ制御装置10Bに転送されており、上記と同様に2つのアドレスに対応するビット幅2n分のデータのリードアクセスを行う。一方、サイクルt5に示すように、マスター2からもライトまたはリードアクセスのリクエストが行われている。この場合、調停回路5Bはマスター1から偶数アドレスad−4が転送されていることにもとづいて、マスター2に対してメモリ3Bへのアクセスをウェイトさせるビジー信号S1を出力する。このため、ビジー信号S1を受けたマスター2はメモリ3Bへのアクセスをウェイトする。
【0059】
そして、次のサイクルt6において、調停回路5Aは、マスター1から奇数アドレスad−5を渡されることによって、マスター2からのアクセスが可能であると判定し、ビジー信号S1を解除する。そのため、マスター2は、再度同じアドレスをメモリ制御装置10Bに転送し、メモリ3Bにアクセスを行う。
【0060】
<マスター1から転送されるアクセスアドレスが奇数アドレスから始まった場合>
例えば、メモリ制御装置10Bに対して、マスター1から最初のサイクルで偶数アドレスではなく奇数アドレスが転送された場合(図示せず)を説明する。メモリ制御装置10B内のデータ制御回路4Bが、最初のサイクルでマスター1からのリクエストと奇数アドレスを受けると、上記のように次にインクリメントされることになるアドレスを先読みし、アドレスを2つ分合わせて転送することなく、奇数アドレスのみをメモリ3Bに転送し、この奇数アドレスに対応するデータ部分だけをマスター1に転送する。
【0061】
そして、次の偶数アドレスを読み出すサイクルにおいて、メモリ3Bから出力されるリードデータを、共有バッファ4bを経由せずに、このサイクルでマスター1に転送する。なお、ここでは、マスター1からのアドレスおよびリクエストに応じて、セレクタ4cは、そのリードデータを共有バッファ4bを経由さずにすぐにマスター1へ転送するデータパスを選択する。これにより、この偶数アドレスを読むサイクルから、上記と同様にして、偶数、奇数の順のアドレスをペアにしたデータ転送に戻す。
【0062】
(第3の実施形態)
〜ライトアクセス〜
図5は、本発明の第3の実施形態に係るデータ転送制御方法を説明するための図であり、プロセッサや処理ユニットなどのマスター1(第1のマスターデバイスに対応する)が、メモリ制御装置10C(データ転送制御装置に対応する)を介して、メモリ3Cにライトアクセスする場合の図である。
【0063】
図5において、メモリ3Cは、図1に示したメモリ3Aと異なってバンクBA1とバンクBA2とからなる構成になっている。バンクBA1とバンクBA2は、メモリ制御装置10CとそれぞれデータバスWb4、データバスWb5を介して接続されている。また、メモリ制御装置10Cは、図1に示したメモリ制御装置10Aのセレクタ10aの代わりに、セレクタ10bおよびセレクタ10cを有している。その他の点は図1と同様であるため、同様の説明は省略する。
【0064】
本実施形態は、メモリ3Cをバンク構成にすることで、マスター1およびマスター2(第2のマスターデバイスに対応する)が同時にメモリ3Cにアクセスできる場合を説明するものである。なお、以下では、第1の実施形態でのライトアクセスにおけるデータ転送制御方法を前提にして、マスター1およびマスター2が同時にメモリ3Cにアクセスできる場合を中心に説明する。
【0065】
図6は、マスター1とマスター2がメモリ3Cに同時にアクセスできる場合を説明するためのタイミングチャートである。
【0066】
サイクルt1(第1のサイクルに対応する)において、第1の実施形態と同様に、マスター1からライトアクセスのリクエストと偶数アドレスad−0、およびその偶数アドレスad−0に書き込むべきデータda−0がデータ制御回路4Cに転送され、データda−0は共有バッファ4aに保持されている。そして、サイクルt2(第2のサイクルに対応する)において、マスター1およびマスター2からメモリ3Cへのアクセスリクエストがあり、図6に示すように、マスター1はバンクBA1に対してライトリクエストを行い(信号レベルがハイの場合がバンクBA1を示す)、またマスター2はバンクBA2に対してアクセスリクエストを行う(信号レベルがローの場合がバンクBA2を示す)場合、調停回路5Cは、マスター1とマスター2とから転送されたアクセスアドレスのバンク部分が一致しているかどうかを判定する。ここでは、マスター1およびマスター2のアクセスアドレスのバンク部分が異なっていると判定するので、調停回路5Cはセレクタ10bおよびセレクタ10cに対して、マスター1およびマスター2がそれぞれバンクBA1およびバンクBA2にアクセスできるように判定信号S2を送信する。そして、判定信号S2を受けたセレクタ10bは、マスター1にメモリ3CのバンクBA1へのライトアクセスを行わせ、セレクタ10cは、マスター2にメモリ3CのバンクBA2へのアクセスを行わせる。
【0067】
また一方、マスター1およびマスター2からアクセスしようとするメモリ3Cのバンク部分が一致している場合を説明する。
【0068】
例えば、マスター1から奇数アドレスが転送されるサイクルt4ににおいて、図6に示すように、マスター1からはメモリ3CのバンクBA1にライトアクセスのリクエストがあり、マスター2からもメモリ3CのバンクBA1にアクセスリクエストがある場合を説明する。この場合、調停回路5Cは、マスター1とマスター2とから転送されるアドレスのバンク部分が一致していると判定するので、セレクタ10bおよび10cに対して、マスター1がバンクBA1へアクセスできるように、判定信号S2を送信する。判定信号S2を受けたセレクタ10bは、マスター1にメモリ3CのバンクBA1へのライトアクセスを行わせる。また、この際、調停回路5Cはマスター2に対してビジー信号S1を出してマスター2をウェイトさせる。
【0069】
そして、次のサイクルt5において、マスター1から転送されるアドレスad−4が偶数であるため、マスター1から偶数アドレスad−4を受けた調停回路5Cは、マスター2に対するビジー信号S1を解除するとともに、セレクタ10bおよびセレクタ10cに対して、マスター2がメモリ3CのバンクBA1にアクセスできるように判定信号S2を送る。判定信号S2を受けたセレクタ10bは、このサイクルでマスター2にメモリ3CのバンクBA1へのアクセスを行わせる。
【0070】
このように、マスター1およびマスター2がアクセスするメモリ3C内バンクが一致するか否かを判定して、一致しない場合は、マスター1およびマスター2の双方がメモリ3Cに同時にアクセスすることが可能になる。そのため、より短いウェイトサイクルでメモリ3Cへのアクセスが可能になる。その結果、メモリの効率使用が可能になり、データ転送レートをより削減することができる。
【0071】
〜リードアクセス〜
また同様に、図7はマスター1がメモリ制御装置10Dを介して、メモリ3Dにリードアクセスする場合の図である。
【0072】
図7においてメモリ3Dは、図5に示したメモリ3Cと同様に、バンクBA1とバンクBA2とからなる構成になっている。また、メモリ制御装置10Dは、図3に示したメモリ制御装置10Bと比較して、セレクタ10dと、データ制御回路4D内にセレクタ4dを新たに備えている。その他は図3と同様であるため、同様の説明は省略する。また、以下では、第2の実施形態でのリードアクセスにおけるデータ転送制御方法を前提にして、マスター1およびマスター2が同時にメモリ3Dにアクセスできる場合を中心に説明する。
【0073】
さらに、リードアクセスの場合も上記ライトアクセスの場合と同様に、調停回路5D内で、マスター1およびマスター2からアクセスするメモリ3Dのバンク部分が一致しているかどうかを判定することによって、マスター1およびマスター2からのメモリへのアクセスを制御する。そのため、以下のリードアクセスの場合については簡単に説明する。
【0074】
図8は、マスター1とマスター2がメモリ3Dに同時にアクセスできる場合を説明するためのタイミングチャートである。
【0075】
例えば、サイクルt1において、マスター1はバンクBA1にリードアクセスのリクエストを行い、またマスター2はバンクBA2にアクセスリクエストを行う。この場合は、調停回路5Dでメモリ3Dへアクセスしようとするそれぞれのアドレスのバンク部分が相違すると判定する。そのため、マスター1およびマスター2が双方ともメモリ3Dに同時にアクセスできるように、判定信号S2をセレクタ4dおよびセレクタ10dに送信する。これにより、マスター1およびマスター2は、メモリ3Dに同時にアクセスすることができる。
【0076】
また、サイクルt5に示すように、マスター1およびマスター2からアクセスしようとするそれぞれのアドレスのバンク部分が同一の場合、調停回路5Dは、サイクルt5ではマスター1からのバンクBA1へのアクセスを認める判定信号S2をセレクタ4dおよびセレクタ10dに送信するとともに、マスター2に対してはビジー信号S1を送信する。そのため、このサイクルt5において、マスター1はメモリ3DのバンクBA1にアクセスし、マスター2はメモリ3DのバンクBA1へのアクセスをウェイトする。そして、マスター1から奇数アドレスが転送される次のサイクルt6では、マスター1はメモリ3Dにアクセスしないため、調停回路5Dはマスター1からのアドレスad−5が奇数アドレスであることを判定することで、マスター2に対するビジー信号S1を解除する。またこの際、調停回路5Dは、マスター2にバンクBA1へのアクセスを認める判定信号S2をセレクタ4dおよびセレクタ10dに送信する。このため、マスター2は、このサイクルt6でメモリ3DのバンクBA1にアクセスする。
【0077】
このように、マスター1がメモリ3Dへライトアクセスする場合も同様に、より短いウェイトサイクルでメモリ3Cへのアクセスが可能になる。その結果、メモリの効率使用が可能になり、データ転送レートをより削減することができる。
【0078】
なお、上記各実施形態では、アクセスするアドレス1ビットの奇偶の値で、1サイクルおきに各マスターに対してメモリへのアクセスを振り分けるデータ転送制御を行う場合について説明した。しかしながら、本発明はこれに限る趣旨ではなく、アクセスするアドレス2ビットの奇偶の値で、2サイクルおきに各マスターに対してメモリへのアクセスを振り分けるデータ転送制御も容易に実現可能であることは言うまでもない。
【0079】
また、上記各実施形態では、マスター1およびマスター2の2つのマスターを想定して説明したが、本発明はこれに限る趣旨ではなく、二以上のマスターがある場合でも同様に本発明は実施可能である。
【0080】
【発明の効果】
以上のように、本発明は、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮することを可能にする。その結果、メモリの効率使用を可能になり、データ転送レートを削減することができる。
【図面の簡単な説明】
【図1】第1の実施形態に係るライトアクセスの場合のデータ転送制御方法を説明するためのブロック図である。
【図2】ライトアクセスする場合のメモリアクセスのタイミングチャートである。
【図3】第2の実施形態に係るリードアクセスの場合のデータ転送制御方法を説明するためのブロック図である。
【図4】リードアクセスする場合のメモリアクセスのタイミングチャートである。
【図5】第3の実施形態に係るライトアクセスの場合のデータ転送制御方法を説明するためのブロック図である。
【図6】ライトアクセスする場合のメモリアクセスのタイミングチャートである。
【図7】第3の実施形態に係るリードアクセスの場合のデータ転送制御方法を説明するためのブロック図である。
【図8】リードアクセスする場合のメモリアクセスのタイミングチャートである。
【符号の説明】
1 マスター(第1のマスターデバイスに対応する)
2 マスター(第2のマスターデバイスに対応する)
3A、3B、3C、3D メモリ
4A、4B、4C、4D データ制御回路
5A、5B、5C、5D 調停回路
4a、4b 共有バッファ
10A、10B、10C、10D メモリ制御装置(データ転送制御装置に対応する)
Wb1、Rb1、W/Rb2 ビット幅nのデータバス
Wb3、Rb3、Wb4、Rb4、Wb5、Rb5 ビット幅2nのデータバスL1、L2、L3 リクエスト/アドレス線
L4 制御線
S1 ビジー信号
S2 判定信号
BA1、BA2 バンク
【発明の属する技術分野】
本発明は、半導体装置内で、複数のマスターが1つのメモリに対して短いウェイトサイクルでアクセスを可能にするデータ転送制御方法に関するものである。
【0002】
【従来の技術】
従来のデータ転送制御方法は、プロセッサや処理ユニットなどの各マスターは、アクセスのための優先順位を調節して、メモリへのアクセスを行っていた。
【0003】
すなわち、従来のデータ転送制御方法において、あるマスターの処理が必要になったときには、そのマスターのメモリに対するアクセスの優先度を上昇させる。そして、そのマスターの処理が行われ後はアクセスの優先度を低下させて、そのマスターは順番待ち状態にする。さらに、次にメモリへのアクセスを要する別のマスターの優先度を上昇させる。このように、マスターのメモリへのアクセスを優先度にしたがって調停することによって、データ転送の制御を行っていた。
【0004】
【発明が解決しようとする課題】
今日、デジタルテレビやDVDにおけるLSIの価格低下によって1チップ化が進んでいるため、メインメモリに使用されるデータの転送レートが非常に大きくなってきている。この場合、上記従来例のようなデータ転送制御方法であれば、長いサイクルの間、マスターがメモリにアクセスできない状態が生じると、動作上必要なマスターが停止し、システムが破綻してしまう。
【0005】
そこで、本発明の目的は、複数のマスターが短いウェイトサイクルでメモリにアクセスできるデータ転送制御方法を提供することである。その結果、メモリを効率良く利用でき、データの転送レートの削減を可能にする。
【0006】
【課題を解決するための手段】
上記課題を解決するために、請求項1に記載の発明は、第1のマスターデバイスと第2のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御方法であって、前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへライトアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへのアクセスをウェイトさせた後、前記第2のサイクルにおいて前記メモリへアクセスさせ、前記第2のマスターデバイスに対して、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第1のサイクルにおいて、前記メモリへアクセスさせるものである。
【0007】
請求項1の発明によると、第1のマスターデバイスからメモリへのライトアクセスを行うサイクルごとのアクセスアドレスの奇偶に応じて、サイクルごとに第1のマスターデバイスにメモリへアクセスまたはウェイトを行わせ、第1のマスターデバイスがウェイトするサイクルにおいて、第2のマスターデバイスにアクセスさせる。これにより、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。その結果、メモリを効率利用でき、データ転送レートを削減することができる。
【0008】
また、請求項2の発明は、第1のマスターデバイスと第2のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御方法であって、前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへリードアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへアクセスさせた後、前記第2のサイクルにおいて前記メモリへのアクセスをウェイトさせ、前記第2のマスターデバイスに対して、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第2のサイクルにおいて、前記メモリへアクセスさせるものである。
【0009】
請求項2の発明によると、第1のマスターデバイスからメモリへのリードアクセスを行うサイクルごとのアクセスアドレスの奇偶に応じて、サイクルごとに第1のマスターデバイスにメモリへアクセスまたはウェイトを行わせ、第1のマスターがウェイトするサイクルにおいて、第2のマスターデバイスにアクセスさせる。これにより、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。その結果、メモリを効率利用でき、データ転送レートを削減することができる。
【0010】
また、請求項3の発明は、請求項1または請求項2のいずれかに記載のデータ転送制御方法において、当該データ転送制御方法は、前記第1のマスターデバイスと前記第2のマスターデバイスとからの前記メモリが有する複数のバンクへのアクセスを制御する方法であって、前記第1のマスターデバイスに対して前記メモリへアクセスさせる場合に、前記第2のマスターデバイスから前記メモリへのアクセス要求がある場合は、前記第1のマスターデバイスにアクセスさせる前記メモリのバンクと前記第2のマスターデバイスからアクセス要求がある前記メモリのバンクとが異なれば、前記第1のマスターデバイスとともに前記第2のマスターデバイスに前記メモリへアクセスさせるものとする。
【0011】
請求項3の発明によると、第1および第2のマスターデバイスからアクセスするメモリが複数のバンクを有する場合に、第1および第2のマスターデバイスから同時にアクセスすることを可能にするため、第1および第2のマスターデバイスのメモリへのウェイトサイクルをさらに短縮できる。その結果、メモリを効率利用でき、データ転送レートをさらに削減することができる。
【0012】
また、請求項4の発明は、請求項1または請求項3のいずれかに記載のデータ転送制御方法において、前記第1のマスターデバイスの前記メモリへのアクセスがライトアクセスである場合は、前記第1のサイクルにおいて、前記第1のマスターデバイスから転送された偶数アドレス2k(kは整数)と前記偶数アドレス2kに書き込むべきデータとを保持することによって前記メモリへのアクセスをウェイトさせ、前記第2のサイクルにおいて、前記第1のマスターデバイスから転送された奇数アドレス(2k+1)と前記奇数アドレス(2k+1)に書き込むべきデータと、前記第1のサイクルにおいて保持された前記偶数アドレス2kと前記偶数アドレス2kに書き込むべきデータとを前記メモリに転送することによって前記メモリへアクセスさせるものとする。
【0013】
請求項4の発明によると、第1のサイクルにおいて第1のマスターデバイスから転送されるデータを保持してメモリへのアクセスをウェイトさせ、第2のサイクルにおいて第1のマスターデバイスから転送されるデータと第1のサイクルにおいて保持されたデータと合わせてメモリへのライトアクセスを行わせる。これにより、第1のマスターデバイスがメモリへのアクセスをウェイトする第1のサイクルにおいて、第2のマスターデバイスからメモリへのアクセスが可能となり、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。
【0014】
また、請求項5の発明は、請求項2または請求項3のいずれかに記載のデータ転送制御方法において、前記第1のマスターデバイスの前記メモリへのアクセスがリードアクセスである場合は、前記第1のサイクルにおいて、前記第1のマスターデバイスから転送された偶数アドレス2k(kは整数)と、前記偶数アドレス2kの次にインクリメントされる奇数アドレス(2k+1)とを前記メモリに転送することによって前記メモリへアクセスさせ、前記第2のサイクルにおいて、前記メモリから転送される前記偶数アドレス2kから読み出されたデータを前記第1のマスターデバイスに転送し、前記メモリから転送される前記奇数アドレス(2k+1)から読み出されたデータを保持することによって前記メモリへのアクセスをウェイトさせ、前記第2のサイクルにおいて保持された前記奇数アドレス(2k+1)から読み出されたデータは、前記第2のサイクルの次のサイクルにおいて、前記第1のマスターデバイスに転送するものとする。
【0015】
請求項5の発明によると、第1のサイクルにおいて第1のマスターデバイスから転送されるアドレスとそのアドレスの次にインクリメントされるアドレスとを合わせてメモリへのリードアクセスを行わせ、第2のサイクルにおいてメモリから転送されるデータのうちの一方を第1のマスターデバイスに転送し、他方を保持してメモリへのリードアクセスをウェイトする。これにより、第1のマスターデバイスがメモリへのアクセスをウェイトするサイクルにおいて、第2のマスターデバイスからメモリへのアクセスが可能となり、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。また、第1のサイクルにおいて、次にインクリメントするアドレスを先読みするため、リードデータのレーテンシを固定することができる。
【0016】
また、請求項6の発明は、請求項4に記載のデータ転送制御方法において、前記第2のサイクルにおいて、前記第2のマスターデバイスから前記メモリへアクセス要求がある場合は、前記第1のマスターデバイスから転送された前記奇数アドレス(2k+1)にもとづいて、前記第2のサイクルの間、前記第2のマスターデバイスに前記メモリへのアクセスをウェイトさせるものとする。
【0017】
また、請求項7の発明は、請求項5に記載のデータ転送制御方法において、前記第1のサイクルにおいて、前記第2のマスターデバイスから前記メモリへアクセス要求がある場合は、前記第1のマスターデバイスから転送された前記偶数アドレス2kにもとづいて、前記第1のサイクルの間、前記第2のマスターデバイスに前記メモリへのアクセスをウェイトさせるものとする。
【0018】
また、請求項8の発明は、請求項4に記載のデータ転送制御方法において、前記第2のサイクルにおいて、前記第1のマスターデバイスから奇数アドレス(2k+1)と前記奇数アドレス(2k+1)に書き込むべきデータとが転送されない場合は、前記第1のサイクルにおいて保持された前記偶数アドレス2kと前記偶数アドレス2kに書き込むべきデータとを転送し、前記メモリにおける前記奇数アドレス(2k+1)に書き込むべきデータの領域にはデータを書き込まないように制御するものとする。
【0019】
また、請求項9の発明は、請求項4から請求項8のいずれかに記載のデータ転送制御方法において、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる場合に行うデータの保持は、前記第1のマスターデバイスからサイクルごとに転送される一のアドレスに対応するデータのみを有するデータバッファを用いて行うものとする。
【0020】
請求項9の発明によると、より少ない回路規模で、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。
【0021】
また、請求項10の発明は、第1のマスターデバイスと第1のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御装置であって、前記データ転送制御装置は、前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへライトアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへのアクセスをウェイトさせた後、前記第2のサイクルにおいて前記メモリへアクセスさせるデータ制御回路と、前記第1のマスターデバイスが前記メモリへアクセスするアドレスと前記第2のマスターデバイスが前記メモリへアクセスするアドレスとにもとづいて、前記第2のマスターデバイスに対して、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第1のサイクルにおいて、前記メモリへアクセスさせる調停回路とを備えるものである。
【0022】
請求項10の発明によると、第1のマスターデバイスからのメモリへのライトアクセスを行うサイクルごとのアクセスアドレスの奇偶に応じて、サイクルごとに第1のマスターデバイスにメモリへアクセスまたはウェイトを行わせ、第1のマスターデバイスにウェイトさせるサイクルにおいて、第2のマスターデバイスにアクセスさせる。これにより、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。その結果、メモリを効率良く利用でき、データ転送レートを削減することができる。
【0023】
また、請求項11の発明は、第1のマスターデバイスと第1のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御装置であって、前記データ転送制御装置は、前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへリードアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへアクセスさせた後、前記第2のサイクルにおいて前記メモリへのアクセスをウェイトさせるデータ制御回路と、前記第1のマスターデバイスが前記メモリへアクセスするアドレスと前記第2のマスターデバイスが前記メモリへアクセスするアドレスとにもとづいて、前記第2のマスターデバイスに対して、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第2のサイクルにおいて、前記メモリへアクセスさせる調停回路とを備えるものである。
【0024】
請求項11の発明によると、第1のマスターデバイスからのメモリへのリードアクセスを行うサイクルごとのアクセスアドレスの奇偶に応じて、サイクルごとに第1のマスターデバイスにメモリへアクセスまたはウェイトを行わせ、第1のマスターデバイスにウェイトさせるサイクルにおいて、第2のマスターデバイスにアクセスさせる。これにより、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮できる。その結果、メモリの効率良く利用でき、データ転送レートを削減することができる。
【0025】
【発明の実施の形態】
以下、本発明の各実施形態について図面を参照しながら説明する。
【0026】
(第1の実施形態)
〜ライトアクセス〜
図1は、本実施形態におけるデータ転送制御方法を説明するためのブロック図であり、プロセッサや処理ユニットなどのマスター1(第1のマスターデバイスに対応する)が、メモリ制御装置10A(データ転送制御装置に対応する)を介して、メモリ3Aにライトアクセスする場合の図である。
【0027】
マスター1は、プロセッサや処理ユニットなどであり、マスター1はビット幅nのデータバスWb1によってメモリ制御装置10Aと接続されている。マスター1がメモリ3Aにライトアクセスする場合は、リクエスト/アドレス線L1を介して、メモリ制御装置10Aにライトリクエストを行うとともに、アドレスをインクリメントしながらメモリ制御装置10Aに転送する。なお、ライトアクセスを行うアドレスに書き込むべきビット幅nのデータは、データバスWb1を介してメモリ制御装置10Aに転送する。
【0028】
マスター2(第2のマスターデバイスに対応する)は、プロセッサや処理ユニットなどであり、マスター2はビット幅2nのデータバスW/Rb2によってメモリ制御装置10Aと接続されている。マスター2がメモリ3Aにライトまたはリードアクセスする場合は、リクエスト/アドレス線L2を介して、メモリ制御装置10Aにライトまたはリードリクエストを行うとともに、所定のアドレスをランダムにメモリ制御装置10Aに転送する。
【0029】
メモリ3Aは、ビット幅2nのデータバスWb3によってメモリ制御装置10Aと接続されており、リクエスト/アドレス線L3を介して転送されるリクエストおよびアドレスとにもとづいて、データバスWb3を介してマスター1からのライトアクセスを行う。なお、マスター2がメモリ3Aに対してライトまたはリードアクセスを行う場合は、リクエスト/アドレス線L3を介して転送されるリクエストおよびアドレスとにもとづいて、所定のバス(図示せず)を介して行われる。
【0030】
メモリ制御装置10Aは、データ制御回路4Aと調停回路5Aとセレクタ10aとを備える。データ制御回路4Aはリクエストやアドレス、データを保持する共有バッファ4aを有する。調停回路5Aはマスター1やマスター2からのライトやリードリクエストとともにアドレスを入力する。また、調停回路5Aは入力されるリクエストおよびアドレスにもとづいて、マスター1またはマスター2のいずれにメモリへアクセスさせるかを判定する判定信号S2をセレクタ10aに出力する。また、マスター2にメモリ3Aへのアクセスをウェイトさせる場合は、アクセスをウェイトさせるためのビジー信号S1をマスター2に送信する。セレクタ10aは、調停回路5Aからの判定信号S2にしたがって、メモリ3Aにアクセスさせるマスター1またはマスター2からのデータをセレクトする。なお、メモリ制御装置10Aは、セレクトされるデータに対応するリクエスト、アドレスをメモリ3Aに転送する。
【0031】
以下に、ライトアクセスする場合の本実施形態に係るデータ転送制御方法について説明する。
【0032】
図2は、マスター1がメモリ3Aにライトアクセスする場合のタイミングチャートである。
【0033】
まず、マスター1がメモリ3Aにアクセスするアドレスが偶数アドレス(偶数アドレス2kに対応する)であるサイクルt1(第1のサイクルに対応する)での制御方法について説明する。
【0034】
マスター1は、ライトアクセスのリクエストとともに偶数アドレスad−0をリクエスト/アドレス線L1を介してメモリ制御装置10Aに転送する。また、このリクエストおよびアドレスは、メモリ制御装置10A内部のデータ制御回路4Aおよび調停回路5Aに転送される。またこのとき、マスター1は、メモリ制御装置10Aに転送する偶数値のアドレスad−0に書き込むべきデータda−0をデータバスWb1を介して、メモリ制御装置10A内のデータ制御回路4Aに転送する。データ制御回路4Aは、ライトアクセスのリクエスト、偶数アドレスad−0、およびデータda−0を共有バッファ4aにおいて保持する。なお、図2に示す共有バッファ4aのデータとは、共有バッファ4aにバッファリングされているデータを示す。
【0035】
次に、マスター1がメモリ3Aにアクセスするアドレスが奇数アドレス(奇数アドレス(2k+1)に対応する)であるサイクルt2(第2のサイクルに対応する)での制御方法について説明する。
【0036】
マスター1は、サイクルt1に引き続いてライトアクセスのリクエストを行うとともに、奇数アドレスad−1をリクエスト/アドレス線L1を介してメモリ制御装置10Aに転送する。またこのとき、マスター1は、メモリ制御装置10Aに転送する奇数アドレスad−1に書き込むべきデータda−1をデータバスWb1を介して、メモリ制御装置10A内のデータ制御回路4Aに転送する。このサイクルt2では、メモリ制御装置10Aは、転送されたデータda−1を共有バッファ4aを介させずに、サイクルt1で共有バッファ4aに保持したデータda−0と合わせて、ビット幅2n分のデータとして、データバスWb3を介して、メモリ3Aにライトアクセスする。またこのライトアクセスの際、メモリ制御装置10Aは、上記ビット幅2n分のデータに対応するアドレスad−1およびアドレスad−0とライトアクセスのリクエストをメモリ3Aに転送する。
【0037】
このように、マスター1がメモリ制御装置10Aに偶数アドレスを渡すサイクル(図2では、サイクルt1、t3、t5)では、マスター1はメモリ3Aにアクセスせずにウェイトしている状態なので、マスター2はメモリ3Aにアクセスすることが可能になる。
【0038】
例えば、サイクルt1において、マスター1からのライトアクセスのリクエストとともに偶数アドレスad−0を受ける一方、マスター2からはライトまたはリードアクセスのリクエストを受ける場合は、調停回路5Aはマスター2にメモリ3Aへのアクセスを認める判定を行う。つまり、この場合は、調停回路5Aはセレクタ10aに対して、マスター2からのメモリ3Aへのアクセスを認める判定信号S2を送信し、判定信号S2を受けたセレクタ10aによって、マスター2に対してメモリ3Aへアクセスさせる。(なお、図示はしていないが、マスター2からのメモリ3Aへのアクセスはアドレスやデータバスを転送する所定の信号線を介して行われることは言うまでもない。)
これにより、マスター1がライトアクセスする場合、マスター1およびマスター2のメモリへのウェイトサイクルを短縮できる。その結果、メモリの効率使用が可能になり、データ転送レートを削減することができる。
【0039】
<マスター1のアクセスサイクルにマスター2からのアクセス要求がある場合>
次に、マスター1がメモリ制御装置10Aに奇数アドレスを転送するサイクル(図2では、サイクルt2、t4、t6)において、マスター2がメモリ3Aにアクセスしようとする場合について説明する。
【0040】
例えば、サイクルt4においては、図2に示すように、マスター1からメモリ3Aに対してライトアクセスのリクエストが行われている。すなわち、マスター1からライトアクセスのリクエストおよび奇数アドレスad−3と奇数アドレスad−3に書き込むべきデータda−3がメモリ制御装置10Aに転送されている。一方、図2に示すように、マスター2からもライトまたはリードアクセスのリクエストが行われている。この場合、調停回路5Aは、マスター1から奇数アドレスad−3が転送されており、このサイクルではマスター1にメモリ3Aへのアクセスをさせるため、マスター2に対してメモリ3Aへのアクセスをウェイトさせるビジー信号S1を出力する。このため、ビジー信号S1を受けたマスター2はメモリ3Aへのアクセスをウェイトする。なお、この場合、調停回路5Aは、セレクタ10aに対しては、マスター1にメモリ3Aへアクセスさせるための判定信号S2を出力する。そして、判定信号S2を受けたセレクタ10aは、マスター1にメモリ3Aへのアクセスをさせる。
【0041】
そして、次のサイクルt5において、調停回路5Aは、マスター1から偶数アドレスad−4を転送されており、このサイクルではマスター1にメモリ3Aへのアクセスをウェイトさせるため、マスター2からメモリ3Aへのアクセスが可能であると判定し、ビジー信号S1を解除する。そのため、マスター2は、再度同じアドレスをメモリ制御装置10Aに転送し、メモリ制御装置10Aを介して、メモリ3Aにアクセスを行う。
【0042】
<マスター1からのアクセスアドレスが偶数、奇数の順のペアにならない転送が起きた場合>
例えば、上記のようにサイクルt2においては、マスター1からのライトアクセスのリクエストと偶数アドレスad−0とがメモリ制御装置10Aに転送されるとともに、偶数アドレスad−0に書き込むべきデータda−0が転送される。そして、サイクルt2において、何らかの要因でマスター1からのライトアクセスのリクエストがアクティブでなくなった場合を考える。この場合、メモリ制御装置10Aは、サイクルt2において、マスター1からのライトアクセスのリクエストが転送されないことにもとづいて、ライトアクセスのリクエストがあったデータda−0に対応するメモリ3Aのデータ領域にだけデータを書き込み、ライトアクセスのリクエストがなかったアドレスad−1にはデータを書き込まないように、制御線L4を介してメモリ3Aを制御する。
【0043】
(第2の実施形態)
〜リードアクセス〜
図3は、本実施形態におけるデータ転送制御方法を説明するための図であり、プロセッサや処理ユニットなどのマスター1(第1のマスターデバイスに対応する)が、メモリ制御装置10B(データ転送制御装置に対応する)を介して、メモリ3Bにリードアクセスする場合の図である。
【0044】
なお、上記図1に示した構成要素と同一または共通の構成要素には、同一または同様の符号を付しており、各構成要素における共通する動作の説明は省略し、相違する部分を中心に説明する。
【0045】
マスター1は、メモリ3Bにリードアクセスする場合は、リクエスト/アドレス線L1を介して、メモリ制御装置10Bにリードリクエストを行うとともに、アドレスをインクリメントしながら転送する。 なお、マスター2(第2のマスターデバイスに対応する)およびメモリ3Bは、第1の実施形態と同様の動作を行う。
【0046】
メモリ制御装置10Bは、データ制御回路4Bと調停回路5Bとを備える。データ制御回路4Bは、第1の実施形態と同様の共有バッファ4bとセレクタ4cとを有する。調停回路5Bはマスター1やマスター2からのリードまたはライトアクセスのリクエストとアドレスとを入力する。また、調停回路5Bは上記マスター1およびマスター2からのリクエストおよびアドレスにもとづいて、マスター2をウェイトさせるビジー信号S1を出力する。セレクタ4cは、マスター1からのリクエストおよびアドレスに応じて、メモリ3Aから読み出されるデータを共有バッファ4bに保持させるか、共有バッファ4bを介さずにマスター1に転送するかをセレクトする。またメモリ制御装置10Bは、リクエスト/アドレス線L3を介して、マスター1またはマスター2からのリクエストおよびアドレスをメモリ3Aに転送する。
【0047】
以下に、リードアクセスする場合の本実施形態に係るデータ転送制御方法について説明する。
【0048】
図4は、マスター1がメモリ3Bにリードアクセスする場合のタイミングチャートである。
【0049】
まず、マスター1がメモリ3Bにアクセスするアドレスが偶数アドレス(偶数アドレス2kに対応する)であるサイクルt1(第1のサイクルに対応する)での制御方法について説明する。
【0050】
マスター1は、リードアクセスのリクエストとともに偶数アドレスad−0をリクエスト/アドレス線L1を介してメモリ制御装置10Bに転送する。また、このリクエストおよびアドレスは、メモリ制御装置10B内部のデータ制御回路4Bおよび調停回路5Bに転送される。そして、データ制御回路4Bは、転送されたリクエストおよび偶数アドレスad−0と、偶数アドレスad−0の次にインクリメントされることになる奇数アドレスad−1とをメモリ3Bに転送し、それぞれのアドレスからビット幅2n分のデータを読み出すようにメモリ3Bに対して要求する。すなわち、偶数アドレスad−0に対応するデータda−0と奇数アドレスad−1に対応するデータda−1の読み出しをメモリ3Bに要求する。
【0051】
次に、マスター1がメモリ3Bにアクセスするアドレスが奇数アドレス(奇数アドレス(2k+1)に対応する)であるサイクルt2(第2のサイクルに対応する)での制御方法について説明する。
【0052】
メモリ3Bは、上記サイクルt1で要求されたビット幅2n分のデータをデータバスRb3を介してメモリ制御装置10Bに転送する。そして、メモリ制御装置10Bは、偶数アドレスad−0から読み出されたデータda−0をデータバスRb1を介してマスター1にすぐに転送し、奇数アドレスad−1から読み出されたデータda−1を共有バッファ4bに保持する。なお、上記のように、セレクタ4cは、マスター1からのリクエストおよびアドレスに応じて、マスター1に転送するデータをセレクトする。
【0053】
次に、マスター1がメモリ3Bにアクセスするアドレスが偶数アドレスであるサイクルt3での制御方法について説明する。
【0054】
メモリ制御装置10Bは、共有バッファ4bに保持されたデータda−1をマスター1に転送する。なお、このとき、セレクタ4cは、マスター1からのリクエストおよびアドレスに応じて、マスター1に転送するデータとしてデータda−1をセレクトしている。また、このサイクルでは、上記サイクルt1と同様に、マスター1から転送されるリクエストとアドレスを受けて、メモリ制御装置10Bは、メモリ3Bに対してビット幅2n分のデータのリードアクセスを行う。
【0055】
このようにすることで、マスター1がメモリ制御装置10Bに奇数アドレスを渡すサイクル(図4では、サイクルt2、t4、t6)においては、マスター1はメモリ3Bにアクセスせずにウェイトしているため、マスター2はメモリ3Bにアクセスすることが可能になる。例えば、サイクルt2において、マスター1からのリードアクセスのリクエストとともに奇数アドレスad−1を受ける一方、マスター2からはライトまたはリードアクセスのリクエストを受ける場合、調停回路5Aはマスター1から転送されるアドレスが奇数アドレスad−1であることにもとづいて、マスター2からのメモリ3Aへのアクセスを認める判定をする。
【0056】
これにより、マスター1がリードアクセスする場合、マスター1およびマスター2が短いウェイトサイクルでメモリにアクセスすることができる。その結果、メモリを効率使用を可能にし、データ転送レートを削減できる。また、マスター1から偶数アドレスを転送するサイクルにおいて、メモリ制御装置10Bで次にインクリメントされることになるアドレスを先読みし、2つアドレスに対応するビット幅2n分のデータのリードリクエストを行うことで、マスター1の要求するリードデータのレーテンシを一定にすることができる。
【0057】
<マスター1のアクセスサイクルにマスター2からのアクセス要求がある場合>
次に、マスター1がメモリ制御装置10Bに偶数アドレスを転送するサイクル(図4では、サイクルt1、t3、t5)において、マスター2がメモリ3Bにアクセスしようとする場合を説明する。
【0058】
例えば、サイクルt5においては、図4に示すように、マスター1からメモリ3Bに対してリードアクセスのリクエストが行われている。すなわち、マスター1からリードアクセスのリクエストおよび偶数アドレスad−4がメモリ制御装置10Bに転送されており、上記と同様に2つのアドレスに対応するビット幅2n分のデータのリードアクセスを行う。一方、サイクルt5に示すように、マスター2からもライトまたはリードアクセスのリクエストが行われている。この場合、調停回路5Bはマスター1から偶数アドレスad−4が転送されていることにもとづいて、マスター2に対してメモリ3Bへのアクセスをウェイトさせるビジー信号S1を出力する。このため、ビジー信号S1を受けたマスター2はメモリ3Bへのアクセスをウェイトする。
【0059】
そして、次のサイクルt6において、調停回路5Aは、マスター1から奇数アドレスad−5を渡されることによって、マスター2からのアクセスが可能であると判定し、ビジー信号S1を解除する。そのため、マスター2は、再度同じアドレスをメモリ制御装置10Bに転送し、メモリ3Bにアクセスを行う。
【0060】
<マスター1から転送されるアクセスアドレスが奇数アドレスから始まった場合>
例えば、メモリ制御装置10Bに対して、マスター1から最初のサイクルで偶数アドレスではなく奇数アドレスが転送された場合(図示せず)を説明する。メモリ制御装置10B内のデータ制御回路4Bが、最初のサイクルでマスター1からのリクエストと奇数アドレスを受けると、上記のように次にインクリメントされることになるアドレスを先読みし、アドレスを2つ分合わせて転送することなく、奇数アドレスのみをメモリ3Bに転送し、この奇数アドレスに対応するデータ部分だけをマスター1に転送する。
【0061】
そして、次の偶数アドレスを読み出すサイクルにおいて、メモリ3Bから出力されるリードデータを、共有バッファ4bを経由せずに、このサイクルでマスター1に転送する。なお、ここでは、マスター1からのアドレスおよびリクエストに応じて、セレクタ4cは、そのリードデータを共有バッファ4bを経由さずにすぐにマスター1へ転送するデータパスを選択する。これにより、この偶数アドレスを読むサイクルから、上記と同様にして、偶数、奇数の順のアドレスをペアにしたデータ転送に戻す。
【0062】
(第3の実施形態)
〜ライトアクセス〜
図5は、本発明の第3の実施形態に係るデータ転送制御方法を説明するための図であり、プロセッサや処理ユニットなどのマスター1(第1のマスターデバイスに対応する)が、メモリ制御装置10C(データ転送制御装置に対応する)を介して、メモリ3Cにライトアクセスする場合の図である。
【0063】
図5において、メモリ3Cは、図1に示したメモリ3Aと異なってバンクBA1とバンクBA2とからなる構成になっている。バンクBA1とバンクBA2は、メモリ制御装置10CとそれぞれデータバスWb4、データバスWb5を介して接続されている。また、メモリ制御装置10Cは、図1に示したメモリ制御装置10Aのセレクタ10aの代わりに、セレクタ10bおよびセレクタ10cを有している。その他の点は図1と同様であるため、同様の説明は省略する。
【0064】
本実施形態は、メモリ3Cをバンク構成にすることで、マスター1およびマスター2(第2のマスターデバイスに対応する)が同時にメモリ3Cにアクセスできる場合を説明するものである。なお、以下では、第1の実施形態でのライトアクセスにおけるデータ転送制御方法を前提にして、マスター1およびマスター2が同時にメモリ3Cにアクセスできる場合を中心に説明する。
【0065】
図6は、マスター1とマスター2がメモリ3Cに同時にアクセスできる場合を説明するためのタイミングチャートである。
【0066】
サイクルt1(第1のサイクルに対応する)において、第1の実施形態と同様に、マスター1からライトアクセスのリクエストと偶数アドレスad−0、およびその偶数アドレスad−0に書き込むべきデータda−0がデータ制御回路4Cに転送され、データda−0は共有バッファ4aに保持されている。そして、サイクルt2(第2のサイクルに対応する)において、マスター1およびマスター2からメモリ3Cへのアクセスリクエストがあり、図6に示すように、マスター1はバンクBA1に対してライトリクエストを行い(信号レベルがハイの場合がバンクBA1を示す)、またマスター2はバンクBA2に対してアクセスリクエストを行う(信号レベルがローの場合がバンクBA2を示す)場合、調停回路5Cは、マスター1とマスター2とから転送されたアクセスアドレスのバンク部分が一致しているかどうかを判定する。ここでは、マスター1およびマスター2のアクセスアドレスのバンク部分が異なっていると判定するので、調停回路5Cはセレクタ10bおよびセレクタ10cに対して、マスター1およびマスター2がそれぞれバンクBA1およびバンクBA2にアクセスできるように判定信号S2を送信する。そして、判定信号S2を受けたセレクタ10bは、マスター1にメモリ3CのバンクBA1へのライトアクセスを行わせ、セレクタ10cは、マスター2にメモリ3CのバンクBA2へのアクセスを行わせる。
【0067】
また一方、マスター1およびマスター2からアクセスしようとするメモリ3Cのバンク部分が一致している場合を説明する。
【0068】
例えば、マスター1から奇数アドレスが転送されるサイクルt4ににおいて、図6に示すように、マスター1からはメモリ3CのバンクBA1にライトアクセスのリクエストがあり、マスター2からもメモリ3CのバンクBA1にアクセスリクエストがある場合を説明する。この場合、調停回路5Cは、マスター1とマスター2とから転送されるアドレスのバンク部分が一致していると判定するので、セレクタ10bおよび10cに対して、マスター1がバンクBA1へアクセスできるように、判定信号S2を送信する。判定信号S2を受けたセレクタ10bは、マスター1にメモリ3CのバンクBA1へのライトアクセスを行わせる。また、この際、調停回路5Cはマスター2に対してビジー信号S1を出してマスター2をウェイトさせる。
【0069】
そして、次のサイクルt5において、マスター1から転送されるアドレスad−4が偶数であるため、マスター1から偶数アドレスad−4を受けた調停回路5Cは、マスター2に対するビジー信号S1を解除するとともに、セレクタ10bおよびセレクタ10cに対して、マスター2がメモリ3CのバンクBA1にアクセスできるように判定信号S2を送る。判定信号S2を受けたセレクタ10bは、このサイクルでマスター2にメモリ3CのバンクBA1へのアクセスを行わせる。
【0070】
このように、マスター1およびマスター2がアクセスするメモリ3C内バンクが一致するか否かを判定して、一致しない場合は、マスター1およびマスター2の双方がメモリ3Cに同時にアクセスすることが可能になる。そのため、より短いウェイトサイクルでメモリ3Cへのアクセスが可能になる。その結果、メモリの効率使用が可能になり、データ転送レートをより削減することができる。
【0071】
〜リードアクセス〜
また同様に、図7はマスター1がメモリ制御装置10Dを介して、メモリ3Dにリードアクセスする場合の図である。
【0072】
図7においてメモリ3Dは、図5に示したメモリ3Cと同様に、バンクBA1とバンクBA2とからなる構成になっている。また、メモリ制御装置10Dは、図3に示したメモリ制御装置10Bと比較して、セレクタ10dと、データ制御回路4D内にセレクタ4dを新たに備えている。その他は図3と同様であるため、同様の説明は省略する。また、以下では、第2の実施形態でのリードアクセスにおけるデータ転送制御方法を前提にして、マスター1およびマスター2が同時にメモリ3Dにアクセスできる場合を中心に説明する。
【0073】
さらに、リードアクセスの場合も上記ライトアクセスの場合と同様に、調停回路5D内で、マスター1およびマスター2からアクセスするメモリ3Dのバンク部分が一致しているかどうかを判定することによって、マスター1およびマスター2からのメモリへのアクセスを制御する。そのため、以下のリードアクセスの場合については簡単に説明する。
【0074】
図8は、マスター1とマスター2がメモリ3Dに同時にアクセスできる場合を説明するためのタイミングチャートである。
【0075】
例えば、サイクルt1において、マスター1はバンクBA1にリードアクセスのリクエストを行い、またマスター2はバンクBA2にアクセスリクエストを行う。この場合は、調停回路5Dでメモリ3Dへアクセスしようとするそれぞれのアドレスのバンク部分が相違すると判定する。そのため、マスター1およびマスター2が双方ともメモリ3Dに同時にアクセスできるように、判定信号S2をセレクタ4dおよびセレクタ10dに送信する。これにより、マスター1およびマスター2は、メモリ3Dに同時にアクセスすることができる。
【0076】
また、サイクルt5に示すように、マスター1およびマスター2からアクセスしようとするそれぞれのアドレスのバンク部分が同一の場合、調停回路5Dは、サイクルt5ではマスター1からのバンクBA1へのアクセスを認める判定信号S2をセレクタ4dおよびセレクタ10dに送信するとともに、マスター2に対してはビジー信号S1を送信する。そのため、このサイクルt5において、マスター1はメモリ3DのバンクBA1にアクセスし、マスター2はメモリ3DのバンクBA1へのアクセスをウェイトする。そして、マスター1から奇数アドレスが転送される次のサイクルt6では、マスター1はメモリ3Dにアクセスしないため、調停回路5Dはマスター1からのアドレスad−5が奇数アドレスであることを判定することで、マスター2に対するビジー信号S1を解除する。またこの際、調停回路5Dは、マスター2にバンクBA1へのアクセスを認める判定信号S2をセレクタ4dおよびセレクタ10dに送信する。このため、マスター2は、このサイクルt6でメモリ3DのバンクBA1にアクセスする。
【0077】
このように、マスター1がメモリ3Dへライトアクセスする場合も同様に、より短いウェイトサイクルでメモリ3Cへのアクセスが可能になる。その結果、メモリの効率使用が可能になり、データ転送レートをより削減することができる。
【0078】
なお、上記各実施形態では、アクセスするアドレス1ビットの奇偶の値で、1サイクルおきに各マスターに対してメモリへのアクセスを振り分けるデータ転送制御を行う場合について説明した。しかしながら、本発明はこれに限る趣旨ではなく、アクセスするアドレス2ビットの奇偶の値で、2サイクルおきに各マスターに対してメモリへのアクセスを振り分けるデータ転送制御も容易に実現可能であることは言うまでもない。
【0079】
また、上記各実施形態では、マスター1およびマスター2の2つのマスターを想定して説明したが、本発明はこれに限る趣旨ではなく、二以上のマスターがある場合でも同様に本発明は実施可能である。
【0080】
【発明の効果】
以上のように、本発明は、第1および第2のマスターデバイスのメモリへのウェイトサイクルを短縮することを可能にする。その結果、メモリの効率使用を可能になり、データ転送レートを削減することができる。
【図面の簡単な説明】
【図1】第1の実施形態に係るライトアクセスの場合のデータ転送制御方法を説明するためのブロック図である。
【図2】ライトアクセスする場合のメモリアクセスのタイミングチャートである。
【図3】第2の実施形態に係るリードアクセスの場合のデータ転送制御方法を説明するためのブロック図である。
【図4】リードアクセスする場合のメモリアクセスのタイミングチャートである。
【図5】第3の実施形態に係るライトアクセスの場合のデータ転送制御方法を説明するためのブロック図である。
【図6】ライトアクセスする場合のメモリアクセスのタイミングチャートである。
【図7】第3の実施形態に係るリードアクセスの場合のデータ転送制御方法を説明するためのブロック図である。
【図8】リードアクセスする場合のメモリアクセスのタイミングチャートである。
【符号の説明】
1 マスター(第1のマスターデバイスに対応する)
2 マスター(第2のマスターデバイスに対応する)
3A、3B、3C、3D メモリ
4A、4B、4C、4D データ制御回路
5A、5B、5C、5D 調停回路
4a、4b 共有バッファ
10A、10B、10C、10D メモリ制御装置(データ転送制御装置に対応する)
Wb1、Rb1、W/Rb2 ビット幅nのデータバス
Wb3、Rb3、Wb4、Rb4、Wb5、Rb5 ビット幅2nのデータバスL1、L2、L3 リクエスト/アドレス線
L4 制御線
S1 ビジー信号
S2 判定信号
BA1、BA2 バンク
Claims (11)
- 第1のマスターデバイスと第2のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御方法であって、
前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへライトアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、
前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへのアクセスをウェイトさせた後、前記第2のサイクルにおいて前記メモリへアクセスさせ、
前記第2のマスターデバイスに対して、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第1のサイクルにおいて、前記メモリへアクセスさせる
ことを特徴とするデータ転送制御方法。 - 第1のマスターデバイスと第2のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御方法であって、
前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへリードアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、
前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへアクセスさせた後、前記第2のサイクルにおいて前記メモリへのアクセスをウェイトさせ、
前記第2のマスターデバイスに対して、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第2のサイクルにおいて、前記メモリへアクセスさせる
ことを特徴とするデータ転送制御方法。 - 請求項1または請求項2のいずれかに記載のデータ転送制御方法において、
当該データ転送制御方法は、前記第1のマスターデバイスと前記第2のマスターデバイスとからの前記メモリが有する複数のバンクへのアクセスを制御する方法であって、
前記第1のマスターデバイスに対して前記メモリへアクセスさせる場合に、前記第2のマスターデバイスから前記メモリへのアクセス要求がある場合は、
前記第1のマスターデバイスにアクセスさせる前記メモリのバンクと前記第2のマスターデバイスからアクセス要求がある前記メモリのバンクとが異なれば、前記第1のマスターデバイスとともに前記第2のマスターデバイスに前記メモリへアクセスさせる
ことを特徴とするデータ転送制御方法。 - 請求項1または請求項3のいずれかに記載のデータ転送制御方法において、
前記第1のマスターデバイスの前記メモリへのアクセスがライトアクセスである場合は、
前記第1のサイクルにおいて、前記第1のマスターデバイスから転送された偶数アドレス2k(kは整数)と前記偶数アドレス2kに書き込むべきデータとを保持することによって前記メモリへのアクセスをウェイトさせ、
前記第2のサイクルにおいて、前記第1のマスターデバイスから転送された奇数アドレス(2k+1)と前記奇数アドレス(2k+1)に書き込むべきデータと、前記第1のサイクルにおいて保持された前記偶数アドレス2kと前記偶数アドレス2kに書き込むべきデータとを前記メモリに転送することによって前記メモリへアクセスさせる
ことを特徴とするデータ転送制御方法。 - 請求項2または請求項3のいずれかに記載のデータ転送制御方法において、
前記第1のマスターデバイスの前記メモリへのアクセスがリードアクセスである場合は、
前記第1のサイクルにおいて、前記第1のマスターデバイスから転送された偶数アドレス2k(kは整数)と、前記偶数アドレス2kの次にインクリメントされる奇数アドレス(2k+1)とを前記メモリに転送することによって前記メモリへアクセスさせ、
前記第2のサイクルにおいて、前記メモリから転送される前記偶数アドレス2kから読み出されたデータを前記第1のマスターデバイスに転送し、前記メモリから転送される前記奇数アドレス(2k+1)から読み出されたデータを保持することによって前記メモリへのアクセスをウェイトさせ、
前記第2のサイクルにおいて保持された前記奇数アドレス(2k+1)から読み出されたデータは、前記第2のサイクルの次のサイクルにおいて、前記第1のマスターデバイスに転送する
ことを特徴とするデータ転送制御方法。 - 請求項4に記載のデータ転送制御方法において、
前記第2のサイクルにおいて、前記第2のマスターデバイスから前記メモリへアクセス要求がある場合は、
前記第1のマスターデバイスから転送された前記奇数アドレス(2k+1)にもとづいて、前記第2のサイクルの間、前記第2のマスターデバイスに前記メモリへのアクセスをウェイトさせる
ことを特徴とするデータ転送制御方法。 - 請求項5に記載のデータ転送制御方法において、
前記第1のサイクルにおいて、前記第2のマスターデバイスから前記メモリへアクセス要求がある場合は、
前記第1のマスターデバイスから転送された前記偶数アドレス2kにもとづいて、前記第1のサイクルの間、前記第2のマスターデバイスに前記メモリへのアクセスをウェイトさせる
ことを特徴とするデータ転送制御方法。 - 請求項4に記載のデータ転送制御方法において、
前記第2のサイクルにおいて、前記第1のマスターデバイスから奇数アドレス(2k+1)と前記奇数アドレス(2k+1)に書き込むべきデータとが転送されない場合は、
前記第1のサイクルにおいて保持された前記偶数アドレス2kと前記偶数アドレス2kに書き込むべきデータとを転送し、前記メモリにおける前記奇数アドレス(2k+1)に書き込むべきデータの領域にはデータを書き込まないように制御する
ことを特徴とするデータ転送制御方法。 - 請求項4から請求項8のいずれかに記載のデータ転送制御方法において、
前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる場合に行うデータの保持は、前記第1のマスターデバイスからサイクルごとに転送される一のアドレスに対応するデータのみを有するデータバッファを用いて行う
ことを特徴とするデータ転送制御方法。 - 第1のマスターデバイスと第1のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御装置であって、
前記データ転送制御装置は、
前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへライトアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへのアクセスをウェイトさせた後、前記第2のサイクルにおいて前記メモリへアクセスさせるデータ制御回路と、
前記第1のマスターデバイスが前記メモリへアクセスするアドレスと前記第2のマスターデバイスが前記メモリへアクセスするアドレスとにもとづいて、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第1のサイクルにおいて、前記第2のマスターデバイスに前記メモリへアクセスさせる調停回路とを備える
ことを特徴とするデータ転送制御装置。 - 第1のマスターデバイスと第1のマスターデバイスとからのメモリへのアクセスを制御するデータ転送制御装置であって、
前記データ転送制御装置は、
前記第1のマスターデバイスがアドレスをインクリメントしながら前記メモリへリードアクセスするサイクルごとに、そのアクセスアドレスが偶数を示す第1のサイクルであるか奇数を示す第2のサイクルであるかに応じて、前記第1のマスターデバイスに対して、前記第1のサイクルにおいて前記メモリへアクセスさせた後、前記第2のサイクルにおいて前記メモリへのアクセスをウェイトさせるデータ制御回路と、
前記第1のマスターデバイスが前記メモリへアクセスするアドレスと前記第2のマスターデバイスが前記メモリへアクセスするアドレスとにもとづいて、前記第1のマスターデバイスに前記メモリへのアクセスをウェイトさせる前記第2のサイクルにおいて、前記第2のマスターデバイスに前記メモリへアクセスさせる調停回路とを備える
ことを特徴とするデータ転送制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002158858A JP2004005108A (ja) | 2002-05-31 | 2002-05-31 | データ転送制御方法およびデータ転送制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002158858A JP2004005108A (ja) | 2002-05-31 | 2002-05-31 | データ転送制御方法およびデータ転送制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004005108A true JP2004005108A (ja) | 2004-01-08 |
Family
ID=30428884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002158858A Pending JP2004005108A (ja) | 2002-05-31 | 2002-05-31 | データ転送制御方法およびデータ転送制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004005108A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013210985A (ja) * | 2012-03-30 | 2013-10-10 | Sony Computer Entertainment Inc | メモリシステム、その制御方法及び情報処理装置 |
-
2002
- 2002-05-31 JP JP2002158858A patent/JP2004005108A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013210985A (ja) * | 2012-03-30 | 2013-10-10 | Sony Computer Entertainment Inc | メモリシステム、その制御方法及び情報処理装置 |
US9465727B2 (en) | 2012-03-30 | 2016-10-11 | Sony Corporation | Memory system, method for controlling the same, and information processing device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4737438B2 (ja) | 複数の処理ユニットでリソースを共有する情報処理装置 | |
US6950910B2 (en) | Mobile wireless communication device architectures and methods therefor | |
US6052738A (en) | Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory | |
US6295586B1 (en) | Queue based memory controller | |
KR100814904B1 (ko) | 칩 내부 회로 간의 데이터 전송을 위한 통신 시스템 | |
JP2007220046A (ja) | バス装置、バスシステムおよび情報転送方法 | |
US8667199B2 (en) | Data processing apparatus and method for performing multi-cycle arbitration | |
US6360305B1 (en) | Method and apparatus for optimizing memory performance with opportunistic pre-charging | |
JP2007172112A (ja) | メモリコントローラ | |
US7343457B1 (en) | Dual active bank memory controller | |
KR101022472B1 (ko) | 효율적으로 버스를 사용하는 방법 | |
US5627968A (en) | Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory | |
JP5382113B2 (ja) | 記憶制御装置及びその制御方法 | |
JP6142783B2 (ja) | メモリコントローラ,情報処理装置及びメモリコントローラの制御方法 | |
JP2011028343A (ja) | 演算処理装置、およびデータ転送方法 | |
JP5829106B2 (ja) | 信号転送回路 | |
JP2004005108A (ja) | データ転送制御方法およびデータ転送制御装置 | |
US8301816B2 (en) | Memory access controller, system, and method | |
JP2010124439A (ja) | バス中継装置 | |
JP2004355271A (ja) | データ転送システム | |
JPH10307787A (ja) | バッファメモリ装置 | |
JP4593220B2 (ja) | メモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法 | |
US20010005870A1 (en) | External bus control system | |
JP2005316546A (ja) | メモリコントローラ | |
US6839820B1 (en) | Method and system for controlling data access between at least two memory arrangements |