JP2012014436A - ダイレクトメモリアクセス制御装置及び方法 - Google Patents
ダイレクトメモリアクセス制御装置及び方法 Download PDFInfo
- Publication number
- JP2012014436A JP2012014436A JP2010150349A JP2010150349A JP2012014436A JP 2012014436 A JP2012014436 A JP 2012014436A JP 2010150349 A JP2010150349 A JP 2010150349A JP 2010150349 A JP2010150349 A JP 2010150349A JP 2012014436 A JP2012014436 A JP 2012014436A
- Authority
- JP
- Japan
- Prior art keywords
- address
- register
- descriptor
- access control
- direct memory
- 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.)
- Withdrawn
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】本実施形態では、ダイレクトメモリメモリアクセス制御(DMAC)の機能アップ、融通性を実現する。
【解決手段】実施形態によれば、ディスクリプタテーブルを複数格納しているディスクリプタテーブルメモリを有する。前記ディスクリプタテーブルは、複数のディスクリプタ側アドレスの記述領域を有するとともに、所定のディスクリプタ側アドレスの代わりにレジスタに記述されているレジスタ側アドレスを使用するか否かを示すオプション情報の記述領域を有する。レジスタは、前記レジスタ側アドレスの格納領域を有する。そして、ダイレクトメモリアクセス制御部は、シーケンスに応じて指定されるディスクリプタテーブルの記述内容を読み取り、前記オプション情報の内容に応じて、前記ディスクリプタ側アドレスの領域またはレジスタ側アドレスの領域のいずれかのアドレスを用いる。
【選択図】図1
【解決手段】実施形態によれば、ディスクリプタテーブルを複数格納しているディスクリプタテーブルメモリを有する。前記ディスクリプタテーブルは、複数のディスクリプタ側アドレスの記述領域を有するとともに、所定のディスクリプタ側アドレスの代わりにレジスタに記述されているレジスタ側アドレスを使用するか否かを示すオプション情報の記述領域を有する。レジスタは、前記レジスタ側アドレスの格納領域を有する。そして、ダイレクトメモリアクセス制御部は、シーケンスに応じて指定されるディスクリプタテーブルの記述内容を読み取り、前記オプション情報の内容に応じて、前記ディスクリプタ側アドレスの領域またはレジスタ側アドレスの領域のいずれかのアドレスを用いる。
【選択図】図1
Description
本発明の実施形態はダイレクトメモリアクセス制御装置及び方法に関する。
半導体メモリをアクセスしてデータ処理を行う高速データ処理装置においては、ダイレクトメモリアクセス(Direct Memory Access :DMA)制御装置が利用される。DMA制御装置は、メモリとメモリの間、またはメモリと入出力デバイスの間のデータ転送を独自のシーケンス処理により実行する。
DMA制御装置の動作の一例を述べると次のような動作を実行している。ディスクリプタテーブルに記述されているアドレス及びデータを読み取り、読み取ったデータを、他のメモリの当該アドレスへ転送する。あるいはディスクリプタテーブルに記述されているアドレスを読み取り、このアドレスを利用して他のメモリからデータを取得する。次のディスクリプタテーブルを読出し、その記述内容を参照する。
しかし近年では、メモリ素子の大容量化、高速化などの発展とともに情報処理が複雑化している。このためにダイレクトメモリメモリアクセス制御(DMAC)に関してもその機能アップ、融通性が要望されている。
そこで本実施形態では、ダイレクトメモリメモリアクセス制御(DMAC)の機能アップ、融通性を実現するダイレクトメモリアクセス制御装置及び方法を提供することを目的とする。
本実施形態によれば、ディスクリプタテーブルを複数格納しているディスクリプタテーブルメモリを有する。前記ディスクリプタテーブルは、複数のディスクリプタ側アドレスの記述領域と、所定のディスクリプタ側アドレスの代わりにレジスタに記述されているレジスタ側アドレスを使用するか否かを示すオプション情報の記述領域を有する。レジスタは、前記レジスタ側アドレスの格納領域を有する。そして、ダイレクトメモリアクセス制御部は、シーケンスに応じて指定されるディスクリプタテーブルの記述内容を読み取り、前記オプション情報の内容に応じて、前記ディスクリプタ側アドレスの領域またはレジスタ側アドレスの領域のいずれかのアドレスを用いる。
以下、実施の形態について、図面を参照して説明する。図1において、101は内部バスであり、バスインターフェース(バスI/F)18を介して外部バス(システムバスと称しても良い)102に接続されている。
バス101には、ダイレクトメモリアクセスコントローラ(DMACと称する)11が接続されている。バス101には、ディスクリプタテーブルメモリ12も接続されている。ディスクリプタテーブルメモリ12には、複数のディスクリプタテーブルが保存されており、この複数のディスクリプタテーブルは、DMAC11の動作シーケンスに影響を及ぼす。また、バス101には、レジスタ13が接続されている。レジスタ13は、複数のレジスタを含む。複数のレジスタは次ディスクリプタアドレス指定レジスタ131、ディスティネーション指定レジスタ132、ソースアドレス指定レジスタ133、レングスレジスタ134である。ここでは代表的なものを示したが、さらに別のレジスタが含まれても良い。このレジスタ13内に記述されているアドレスを後で説明するディスクリプタ側アドレスと区別するためにレジスタ側アドレスと称する。
またバス101には、ワークメモリ14、バスマスター15、演算器16、17、バスインターフェース18、バスアービタ19などが接続されている。バスインターフェース18は、バス101を外部バス102に接続している。外部バス102には、システムを統括する中央演算処理装置(CPU)103が接続されている。
ワークメモリ14は演算処理途中で生じるような一時的なデータを格納するのに利用される。バスマスター15は、バス101のバスサイクルを制御し、バス上に接続された各ブロックのデータフローの管理を行っている。演算器16,17は、四則演算、論理演算、暗号演算、ハッシュ演算などを実施する際に利用される。バスアービタ19は、バス101、101上のデータフローの衝突が生じないように、CPUやバスマスター間の調停を行う。
ディスクリプタテーブルのフォーマット200は、次ディスクリプタアドレス、ディスティネーション、ソースアドレス、レングス、演算モードの各情報を含む。ディスクリプタテーブルに記述されているアドレスをレジスタ側アドレスと区別するためにディスクリプタ側アドレスと称する。
次ディスクリプタアドレスの領域211Aには、オプション情報の領域211Bが付加されている。ディスティネーションの領域212Aには、オプション情報の領域212Bが付加されている。ソースアドレス領域213Aには、オプション情報の領域213Bが付加されている。またレングスの領域214Aにも、オプション情報の領域214Bが付加されている。オプション情報は、例えば“1”又は“0”であり、“1”が記述されているときは、レジスタ13内の対応する情報が用いられることを指示しており、“0”が記述されているときは、ディスクリプタテーブル内の対応する情報が用いられることを指示している。領域215は、演算モードを指定する領域である。
なお、上記オプション情報が、“1”の場合、レジスタ13内の対応する情報が用いられるので、ディスクリプタテーブルの対応する情報は記述されていないか、または、一定の内容たとえば0hが記述さていることがある。また逆にオプション情報が、“0”の場合、ディスクリプタテーブル内の対応する情報が用いられるので、レジスタ13内の対応する情報は記述されていないか、または、一定の内容たとえば0hが記述さていることがある。
図2(A)乃至図2(C)には、上記した装置の動作形態をそれぞれ示している。まずDMAC11は、CPU103からの指令を受けると、ディスクリプタテーブルメモリ12に格納されているディスクリプタテーブル内の記述情報に基づいて動作を実行する。複数のディスクリプタは、予めコーディングされており、次ディスクリプタアドレスにより、その読み取り処理される順序も決まる。
図2(A)の実行状態は、次に使用するディスクリプタテーブルの次ディスクリプタアドレスが決まるときの状態である。次ディスクリプタアドレスは、読み取ったディスクリプタテーブルに記述されているが、もし、対応するオプション情報が“1”になっていた場合、選択器161により、レジスタ131内の次ディスクリプタアドレス指定レジスタ131内のアドレスが採用される。逆にこのオプション情報が“0”になっていた場合、選択器161により、読み取ったディスクリプタテーブル内の次ディスクリプタアドレスが採用される。
図2(B)の実行状態は、データを格納するディスティネーションのアドレスが決まるときの状態である。ディスティネーションのアドレスも、読み取ったディスクリプタテーブルに記述されているが、もし、対応するオプション情報が“1”になっていた場合、選択器161により、レジスタ13内のディスティネーション指定レジスタ132内のアドレスが採用される。逆にこのオプション情報が“0”になっていた場合、選択器161により、読み取ったディスクリプタ内のアドレスが採用される。
図2(C)の実行状態は、データをメモリから読み取るときのソースアドレスを指定するときの状態である。ソースアドレスも、読み取ったディスクリプタテーブルに記述されているが、もし、対応するオプション情報が“1”になっていた場合、選択器161により、レジスタ13内のソースアドレス指定レジスタ133内のアドレスが採用される。逆にこのオプション情報が“0”になっていた場合、選択器161により、読み取ったディスクリプタテーブル内のアドレスが採用される。このときは、データのレングス(転送数と称してもよい)を表すレングス情報も出力される。レングス情報は、バスのビット数、或いは1回の転送バイトに応じてきまる転送数の情報と記してもよい。
このレングス情報についても、読み取ったディスクリプタテーブルに記述されているが、もし、対応するオプション情報が“1”になっていた場合、選択器171により、レジスタ13内のレングスレジスタ134内のレングス情報が採用される。逆にこのオプション情報が“0”になっていた場合、選択器171により、読み取ったディスクリプタ内のレングス情報が採用される。
本実施形態を用いた動作例について説明する。CPU103は演算処理を行うデータをシステムメモリ104上に配置する。CPU103は、演算処理を行うデータのシステムメモリ104上のソースアドレス、処理後のデータを格納するシステムメモリ104上のディスティネーションアドレス、レングス、動作モードなどをDMAC11に指定してDMAC11を起動する。DMAC11は指定された動作モードに応じたディスクリプタテーブルを読み出し、ディスクリプタテーブルの内容に応じて順次処理を行う。
複数の演算処理を行う動作モードが指定された場合、例えば、
1)システムメモリ104からデータをリードし、演算器1を用いて演算処理を行い、処理後のデータをワークメモリ14に格納する。
1)システムメモリ104からデータをリードし、演算器1を用いて演算処理を行い、処理後のデータをワークメモリ14に格納する。
2)ワークメモリ14に格納したデータをリードし、演算器2を用いて演算処理を行い、処理後のデータをシステムメモリ104に格納する。
という処理をDMAC11が行うようにディスクリプタテーブルが用意される場合を例として説明する。
第一のディスクリプタテーブルはCPU103から指定されたシステムメモリ104上のソースアドレスをソースアドレス指定レジスタに設定するためのディスクリプタテーブルである。
第二のディスクリプタテーブルは前記1)の動作を実施するためのディスクリプタテーブルである。このとき、ディスクリプタテーブルのソースアドレスのオプション情報に”1”、ディスクリプタテーブルのディスティネーションアドレスのオプション情報に”0”、ディスティネーションアドレスにはワークメモリ14上のアドレスが書かれているものを用意する。これにより、システムメモリ104から読み出されたデータが、演算器1で演算処理(演算内容は演算モードで指定)され、処理後のデータがワークメモリ14に格納される。
第三のディスクリプタテーブルはCPU103から指定されたシステムメモリ104上のディスティネーションアドレスをディスティネーションアドレス指定レジスタに設定するためのディスクリプタテーブルである。
第四のディスクリプタテーブルは前記2)の動作を実施するためのディスクリプタテーブルである。このとき、ディスクリプタテーブルのソースアドレスのオプション情報に”0”ソースアドレスにはワークメモリ14上のアドレス(第二のディスクリプタテーブルのディスティネーションアドレスと同じアドレス)、ディスクリプタテーブルのディスティネーションアドレスのオプション情報に”1”が書かれているものを用意する。
これにより、先に演算してワークメモリ14に格納したデータが読み出され、演算器2を用いて演算処理され、処理後のデータがシステムメモリ104に格納される。
CPU103から指定されるシステムメモリ104上のソースアドレスやシステムメモリ上のディスティネーションアドレスがどこに指定されるかはソフトウェアに依存するが、本実施形態において前記第一から第四のディスクリプタテーブルを順次実行することにより、CPU103から指定されるシステム上の任意のアドレスに対応して前記1)、2)の動作を行うことが可能となる。
図3はさらに別の実施形態である。この装置は上記した開示範囲に限定されるものではなく、使用するアドレスを演算により生成してもよい。
例えばディスティネーション指定レジスタ123の出力アドレスと、ディスクリプタテーブルに記述されているアドレスとが、演算器16で加算された後、選択器161に入力されるようにしてもよい。そして選択器161では、加算器16又はディスクリプタからのアドレスのいずれか一方が、オプション情報の内容に応じて選択され、そして出力される。
上記したように、DMA装置が処理シーケンスに基づいて動作するとき、レジスタ13の内容(アドレス)を選択的に利用できる仕組みを構成している。この結果、ダイレクトメモリメモリアクセス制御(DMAC)の機能アップ、融通性を実現することができる。機能アップの面からは、レジスタ13の内容(アドレス)を使用できるようにしたことで、ディスクリプタテーブルに記述された決まりきった内容ではなく、種々のデータ処理を実施させることができる。またレジスタ13内の各種レジスタにアドレスを記述することができるため、記録・読出しのためのメモリ或いはメモリ容量が増設された場合も対応することができ、融通性がある。またアドレスにより指定されるデータ内容も、アクセスするメモリ増設や変更により変更することができる。
またDMAC11は、ディスクリプタテーブルを実行している途中、演算モードのコマンドあるいはオプション情報を拡張することにより、レジスタ13内に記述されているアドレスを修正変更することも可能である。あるいは、レジスタ13内のレジスタに内部バス上でのアドレスを割り当て、DMAC11が内部バスを介してレジスタ13にアクセスすることで、レジスタ13内に記述されているアドレスを修正変更することも可能である。
図4は、さらに別に実施の形態である。図1に示した実施の形態のブロックに対応するブロックには同一符号を付している。
この実施形態ではDMCA11の内部がさらに詳しく示されている。またレジスタ13の内部にはアドレス指定ポインタ用レジスタ135が増設されている。
図5には装置が利用するディスクリプタテーブルのフォーマットの他の例を示している。このディスクリプタテーブルは、コマンド領域510、オプション情報領域511、第1、第2のソースアドレス領域512、レングス領域513、ディスティネーションアドレス領域514、第1、第2の次ディスクリプタアドレス領域515を含む。ここで第1の次ディスクリプタアドレス領域Nextは、次アドレス用として利用され、第2の次ディスクリプタアドレス領域Jampは、ジャンプアドレス用として利用される。
オプション情報領域511には、コマンドが記述され、ポインタ更新指令と、ポインタ使用指令がある。ポインタ更新指令が記述されている場合は、ジャンプアドレス領域Jampに記載されているアドレスを、レジスタ13のアドレス指定ポインタに記述しなさいと言う命令である。これに対して、ポインタ使用指令が記述されている場合は、レジスタ13のアドレス指定ポインタに記述されているアドレスを次アドレスとして使用しなさいという命令である。このオプション情報の領域511に記述されるコマンドと、第1、第2の次ディスクリプタアドレス(次アドレス、ジャンプアドレス)の利用例は、後でも説明する。
図5において、図1のディスクリプタテーブルのフォーマットと一部が異なる部分と、共通する部分を説明する。まず共通する部分はレングス、ディスティネーションアドレスである。ソースアドレスは、第1、第2のソースアドレス領域512を有するが、図1のソースアドレスの領域と同じと理解してもよい。図5の場合、ソースアドレスを2つ示した例を示している。四則演算機能を使ってA+Bの加算を行う場合は、この2つのソースアドレスが利用されて、AとBのアドレスが設定される。
次アドレス及びジャンプアドレスを記述した領域515と、オプション情報を記述した領域511は、本実施形態の特徴的な部分である。コマンドの領域510は、図1の演算モードの記述領域に相当する。
図4に戻り説明する。DMAC11は、内部バス101上のマスターユニットであり、ディスクリプタテーブルメモリ12は内部バス101上のスレーブユニットである。外部バス102よりディスクリプタテーブル12の起動要求があると、DMAC11は指定された開始アドレスから開始フォーマットに応じて動作を開始する。まずDMAC11は、ディスクリプタテーブルメモリ12をアクセスする。選択された最初のディスクリプタテーブルは、ディスクリプタテーブルメモリ12から読み出され、バス101、インターフェース114を介して、ディスクリプタテーブルフェッチモジュール111でフェッチされる。
フェッチされたディスクリプタテーブルには、処理命令を示すコマンド(コマンド領域510)、ディスクリプタテーブルのオプション情報(オプション情報領域511)、転送元であるソースアドレス(第1、第2のソースアドレス領域512)、転送データのデータ長(レングス領域513)、転送先を示すディスティネーションアドレス(ディスティネーションアドレス領域514)、次にフェッチするディスクリプタテーブルの開始アドレス(次アドレス領域、ジャンプアドレス領域)が含まれている。
指定されたコマンドは、ディスリプタテーブルデコード処理モジュール112で解析される。解析結果は、ディスクリプタテーブル実行モジュール113に転送され、このディスクリプタテーブル実行モジュール113が解析結果に応答して情報処理を実行する。
ソースアドレスで指定されたデータは、 内部バス101を介して取得される。取得されたデータの演算処理が必要な場合は、DMAC11と内部バス101を介してやり取りを行える演算器16又は17が利用され演算処理が実行され、結果が内部バス101を介してディスティネーションアドレスへ出力される。この時、転送元データや転送先データは内部バス101に接続されたワークメモリ14やバススレーブ、もしくは外部バスインターフェース18を介した外部バス102を利用して、転送や保存が行われる。
1つのディスクリプタテーブル処理が終了すると、次のディスクリプタテーブルのフェッチへ移行する。通常は予め内部に保存した開始アドレス(Next Address)を用いる(図1の実施形態)が、本実施形態では、ディスクリプタテーブル処理の結果により、次アドレス(Next Address)とジャンプアドレス(Jump Address)を選択される。以降同様に処理実行とフェッチを繰り返し、最終ディスクリプタテーブルの処理が終了したら、DMA制御回路は起動したチェイン処理を終了する。
図6を参照しながら本実施形態の特徴的な動作を説明する。図6の左側にスタートからディスクリプタテーブルA,B,C,D,サブルーチン(ディスクリプタテーブルL,M,N)、ディスクリプタテーブルE,F,G,H,I,J、エンドまでのステップを示している。さらに各ステップが実行される順序を矢印で示している。また図6の右側には、ディスクリプタテーブルB,N,Fの内容を示している。
また、オプション情報として用意されたコマンドに応答して、レジスタ13内のアドレス指定ポインタが利用される様子を示している。
外部バス102よりディスクリプタテーブルの起動要求があると、DMAC11は、例えば最初ディスクリプタテーブルAから処理を順次行っていく。テーブルBの処理が終了するとサブルーチンへ移動することになる。
テーブルBのオプション情報の領域B511にはポインタ更新が指定されている。この場合、DMAC11は、ジャンプアドレスの領域に書かれたアドレス(テーブルCを指定している)をレジスタ13のアドレス指定ポインタに保存する。またテーブルBは、次アドレスとしてテーブルLを指定している。
したがって、テーブルBに関する処理が終了すると、テーブルLに関する処理に移行し、サブルーチンの処理が開始される。サブルーチンでは、テーブルL,Mに関する処理が行われ、テーブルNが終了テーブルである。テーブルNに記述されている内容は、図6の右側に示されている。このテーブルNのオプション情報領域N511には、フィールドには次にフェッチするテーブルはポインタを使用するように指定がされている。このためDMAC11は、アドレス指定ポインタに保存されているアドレスを用いる。このアドレスは、テーブルBの処理が行われているときに記述されたものであり、テーブルCのアドレスが記述されている。
したがって、今度は、テーブルCの記述内容がフェッチされる。次にテーブルC,D,E,Fに関する処理が進む。テーブルFでは、図6の右側に示すようにオプション情報領域F511にポインタを更新しなさいというコマンドが記述されている。このときは、DMAC11は、ジャンプアドレスの領域に書かれたアドレス(テーブルIを指定している)をレジスタ13のアドレス指定ポインタに保存する。またテーブルFは、次アドレスとしてテーブルLを指定している。
この結果、処理はテーブルLに関する処理に移行する。そして、サブルーチンが再度実行され、サブルーチン内のテーブルL〜Nは同じものを使用する。次にテーブルNに関する処理を実行しているとき、テーブルNでは、オプション情報としてポインタを使用しなさいというコマンドが記述されているので、次にフェッチするテーブルはテーブルIとなる。
テーブルI、テーブルJを順次処理を行いDMA制御回路は起動したチェイン処理を終了する。
上記したように本実施形態では、サブルーチン内のテーブル(テーブルL〜N)は同一であるにも関わらず、サブルールチンから次に行う処理を種々設定することが可能である。つまりサブルーチンの処理の次に行う処理を種々分岐させることを可能とする。
通常のディスクリプタテーブルで処理をした場合、テーブルNの後にどこから移動してきたのか判定を行い、その結果から次にフェッチすべきアドレスを決定することが考えられる。しかしこれではサブルーチンを読み出す元の数分のディスクリプタテーブルを必要とした上、順次チェックを行うことになるため処理段数も増加することになる。しかし本実施形態によると、アドレス指定ポインタと、ポインタ更新命令、ポインタ使用命令を活用することにより、高速で簡単に種々のディスクリプタテーブルへジャンプすることが可能となる。
上記したようにDMACが利用するディスクリプタテーブルは、1つのテーブルの中に様々な情報を入れることで高機能なテーブルを作ることができる。これにより装置の処理の効率を向上させることができると共に、ディスクリプタテーブルをチェインさせることで複雑な処理を行うことができる。しかし、これによりディスクリプタテーブル自体の容量を増加させる場合があるため、チェインの圧縮が要求される。
そこで、チェインによる次のディスクリプタテーブルの開始位置の指定に(次アドレスとして)固定アドレス若しくはアドレス指定ポインタを用いる手法を取り入れることで、ディスクリプタテーブルのサブルーチンへの移行及びサブルーチンからメインルーチンへの復帰を容易にすることを可能としている。これによりディスクリプタテーブルの容量増大を防ぐことができ内蔵メモリの規模縮小が行え、また、ディスクリプタテーブルに基づく処理のステップ数の増大を防ぐことができ、システムとしての処理速度向上を行える。
また、サブルーチンへの移行とメインルーチンへの復帰はディスクリプタテーブルにより制御が可能であるため、DMA制御回路にはサブルーチンを実現するためのスタックへのプッシュ(push)処理やポップ(pop)処理を必要とせず、回路の規模を増大させることなく実現が可能となる。
いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
11・・・ダイレクトメモリアクセスコントローラ(DMAC)、12・・・ディスクリプタテーブルメモリ、13・・・レジスタ、14・・・ワークメモリ、15・・・バスマスター、16,17・・・演算器、18・・・バスインターフェース、19・・・バスアービタ、101,102・・・バス、103・・・中央演算処理装置(CPU)、
111・・・ディスクリプタテーブルフェッチモジュール、112・・・ディスリプタテーブルデコード処理モジュール、113・・・ディスクリプタテーブル実行モジュール、114・・・インターフェース、131・・・次ディスクリプタアドレス指定レジスタ、132・・・ディスティネーション指定レジスタ、133・・・ソースアドレス指定レジスタ、134・・・レングスレジスタ、161,171・・・選択器、501・・・コマンド領域、511・・・オプション情報領域、512・・・第1、第2のソースアドレス領域、513・・・レングス領域、514・・・ディスティネーションアドレス領域、514・・・第1、第2の次ディスクリプタアドレス領域、
111・・・ディスクリプタテーブルフェッチモジュール、112・・・ディスリプタテーブルデコード処理モジュール、113・・・ディスクリプタテーブル実行モジュール、114・・・インターフェース、131・・・次ディスクリプタアドレス指定レジスタ、132・・・ディスティネーション指定レジスタ、133・・・ソースアドレス指定レジスタ、134・・・レングスレジスタ、161,171・・・選択器、501・・・コマンド領域、511・・・オプション情報領域、512・・・第1、第2のソースアドレス領域、513・・・レングス領域、514・・・ディスティネーションアドレス領域、514・・・第1、第2の次ディスクリプタアドレス領域、
Claims (10)
- 複数のディスクリプタ側アドレスの記述領域と、所定のディスクリプタ側アドレスの代わりにレジスタに記述されているレジスタ側アドレスを使用するか否かを示すオプション情報の記述領域を有するディスクリプタテーブルを複数格納しているディスクリプタテーブルメモリと、
前記レジスタ側アドレスの格納領域を有するレジスタと、
シーケンスに応じて指定されるディスクリプタテーブルの前記オプション情報の内容に応じて、前記ディスクリプタ側アドレスの領域またはレジスタ側アドレスの領域のいずれかのアドレスを用いるダイレクトメモリアクセス制御部(11)を有するダイレクトメモリアクセス制御装置。 - 前記レジスタ側のアドレスは、前記ダイレクトメモリアクセス制御部により、書き換え可能である請求項1記載のダイレクトメモリアクセス制御装置。
- 前記オプション情報は、前記レジスタ側アドレスの格納領域に関する命令であり、新たなレジスタ側アドレスの格納を指示する命令、又は、格納されているレジスタ側アドレスの使用を指示する命令のいずれかである請求項2記載のダイレクトメモリアクセス制御装置。
- 前記複数のディスクリプタ側アドレスの記述領域は、次のディスクリプタテーブルを読み出すための次アドレスの記述領域と、前記レジスタ側アドレスの格納領域へ格納されるジャンプアドレスの記述領域を有し、
前記オプション情報の内容は前記レジスタ側アドレスを使用するのか、または前記ジャンプアドレスを前記レジスタに記述するのかいずれかを示している請求項2記載のダイレクトメモリアクセス制御装置。 - 前記ジャンプアドレスは、サブルーチンに移行するためのアドレスである請求項4記載のダイレクトメモリアクセス制御装置。
- 前記サブルーチンの最後に読み取られるディスクリプタテーブルのオプション情報は、前記レジスタ側アドレスを使用することを指令する情報である請求項5記載のダイレクトメモリアクセス制御装置。
- ディスクリプタテーブルを複数格納しているディスクリプタテーブルメモリと、レジスタと、シーケンスに応じて指定されるディスクリプタテーブルの記述内容を読み取り、メモリ制御のために少なくとも使用アドレスを決定するダイレクトメモリアクセス制御部を用いるダイレクトメモリアクセス制御方法において、
前記レジスタにはレジスタ側アドレスの格納領域を設け、
前記ディスクリプタテーブルには複数のディスクリプタ側アドレスの記述領域とオプション情報の記述領域を設け、
前記ダイレクトメモリアクセス制御部が前記オプション情報の内容に応じて、前記ディスクリプタ側アドレスの領域またはレジスタ側アドレスの領域のいずれかのアドレスを前記使用アドレスとして決定するダイレクトメモリアクセス制御方法。 - 前記ダイレクトメモリアクセス制御部が前記レジスタ側のアドレスを書き換える請求項7記載のダイレクトメモリアクセス制御方法。
- 前記オプション情報は、前記レジスタ側アドレスの格納領域に関する命令であり、新たなレジスタ側アドレスの格納を指示するか、又は、格納されているレジスタ側アドレスの使用を指示する請求項8記載のダイレクトメモリアクセス制御方法。
- 前記複数のディスクリプタ側アドレスの記述領域は、次のディスクリプタテーブルを読み出すための次アドレスの記述領域と、前記レジスタ側アドレスの格納領域へ格納されるジャンプアドレスの記述領域を有し、
前記オプション情報の内容は前記レジスタ側アドレスを使用するのか、または前記ジャンプアドレスを前記レジスタに記述するのかいずれかを示している請求項9記載のダイレクトメモリアクセス制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010150349A JP2012014436A (ja) | 2010-06-30 | 2010-06-30 | ダイレクトメモリアクセス制御装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010150349A JP2012014436A (ja) | 2010-06-30 | 2010-06-30 | ダイレクトメモリアクセス制御装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012014436A true JP2012014436A (ja) | 2012-01-19 |
Family
ID=45600784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010150349A Withdrawn JP2012014436A (ja) | 2010-06-30 | 2010-06-30 | ダイレクトメモリアクセス制御装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012014436A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015130058A (ja) * | 2014-01-07 | 2015-07-16 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US9886411B2 (en) | 2013-04-10 | 2018-02-06 | Mitsubishi Electric Corporation | Data transfer device and data transfer method |
-
2010
- 2010-06-30 JP JP2010150349A patent/JP2012014436A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9886411B2 (en) | 2013-04-10 | 2018-02-06 | Mitsubishi Electric Corporation | Data transfer device and data transfer method |
JP2015130058A (ja) * | 2014-01-07 | 2015-07-16 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US10049063B2 (en) | 2014-01-07 | 2018-08-14 | Renesas Electronics Corporation | Semiconductor apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101817397B1 (ko) | 하나의 아키텍처의 코드 모듈이 다른 아키텍처의 라이브러리 모듈을 사용할 수 있게 하는 아키텍처 간 호환성 모듈 | |
JP5764257B2 (ja) | レジスタをアライメントするためのシステム、装置、および方法 | |
CN109219805B (zh) | 一种多核系统内存访问方法、相关装置、系统及存储介质 | |
US20110231616A1 (en) | Data processing method and system | |
TWI481991B (zh) | 改良型排列指令之裝置及方法 | |
US9317445B2 (en) | Rapid memory buffer write storage system and method | |
JP5287301B2 (ja) | ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法 | |
US10303630B2 (en) | Configurable hardware accelerators | |
TW201346744A (zh) | 遮蔽排列指令的裝置及方法 | |
US11907120B2 (en) | Computing device for transceiving information via plurality of buses, and operating method of the computing device | |
CN116685943A (zh) | 可编程原子单元中的自调度线程 | |
TWI644256B (zh) | 用以執行向量飽和雙字/四字加法的指令及邏輯 | |
JP5583893B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2012014436A (ja) | ダイレクトメモリアクセス制御装置及び方法 | |
JP2690406B2 (ja) | プロセッサおよびデータ処理システム | |
JP7567133B2 (ja) | 半導体記憶装置及び半導体記憶装置の制御方法 | |
US20080209085A1 (en) | Semiconductor device and dma transfer method | |
JP2011118744A (ja) | 情報処理装置 | |
JP5437878B2 (ja) | 情報処理装置 | |
JP2861560B2 (ja) | データ処理装置 | |
WO2023047762A1 (ja) | プロセッサおよびエンディアン変換方法 | |
JPWO2010029682A1 (ja) | 情報処理装置 | |
US20080195805A1 (en) | Micro Controller Unit System Including Flash Memory and Method of Accessing the Flash Memory By the Micro Controller Unit | |
US9274794B2 (en) | Processor and instruction processing method in processor | |
JP2015014934A (ja) | メモリ制御装置及びメモリ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20130730 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130903 |
|
A072 | Dismissal of procedure |
Free format text: JAPANESE INTERMEDIATE CODE: A072 Effective date: 20131126 |