JPH08106431A - ダイレクトメモリアクセス制御回路 - Google Patents

ダイレクトメモリアクセス制御回路

Info

Publication number
JPH08106431A
JPH08106431A JP24046594A JP24046594A JPH08106431A JP H08106431 A JPH08106431 A JP H08106431A JP 24046594 A JP24046594 A JP 24046594A JP 24046594 A JP24046594 A JP 24046594A JP H08106431 A JPH08106431 A JP H08106431A
Authority
JP
Japan
Prior art keywords
data
transfer
direct memory
memory access
address register
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.)
Granted
Application number
JP24046594A
Other languages
English (en)
Other versions
JP2715933B2 (ja
Inventor
Hiroichi Ozaki
博一 尾崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP24046594A priority Critical patent/JP2715933B2/ja
Publication of JPH08106431A publication Critical patent/JPH08106431A/ja
Application granted granted Critical
Publication of JP2715933B2 publication Critical patent/JP2715933B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

(57)【要約】 【目的】 引数データ量が多い場合やサブルーチンコー
ルの頻度が高い場合でもスタック操作に伴うメモリ間デ
ータ転送にかかる時間を低減し、CPUにかかる負荷を
削減してソフトウェア全体の処理速度を向上させる。 【構成】 DMAC1のデータ長レジスタ11は転送デ
ータ長を保持し、ソースアドレスレジスタ12は転送元
アドレスを保持し、ディスティネーションアドレスレジ
スタ13は転送先アドレスを保持する。SP検出演算部
2はデータバス100上でスタックポインタ操作命令を
検出すると、検出したスタックポインタ操作命令のデー
タ長に基づいてスタックポインタ値を算出し、そのスタ
ックポインタ値をソースアドレスレジスタ12とディス
ティネーションアドレスレジスタ13とに夫々設定す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はダイレクトメモリアクセ
ス制御回路に関し、特にCPUを用いた情報処理装置に
おけるメモリ間データ転送方式に関する。
【0002】
【従来の技術】従来、この種の情報処理装置において
は、図3に示すように、ダイレクトメモリアクセスコン
トローラ(以下、DMACとする)1とCPU3とメモ
リ4とがデータバス100を介して夫々互いに接続され
ている。
【0003】ここで、DMAC1には転送データ長を保
持するデータ長レジスタ(L)11と、転送元アドレス
を保持するソースアドレスレジスタ(SA)12と、転
送先アドレスを保持するディスティネーションアドレス
レジスタ(DA)13とが設けられている。
【0004】上記のシステムにおいてメモリ間で大量の
データを転送する場合、DMAC1の制御によってダイ
レクトメモリアクセスが行われている。このダイレクト
メモリアクセスを行うときには、図4に示すように、ま
ずCPU3がDMAC1のソースアドレスレジスタ12
に転送元アドレスを設定する(図4手順S11)。
【0005】次に、CPU3はディスティネーションア
ドレスレジスタ13に転送先アドレスを設定し(図4手
順S12)、データ長レジスタ11にデータ長を設定す
る(図4手順S13)。
【0006】この後に、CPU3はDMAC1にダイレ
クトメモリアクセス転送指示を出力することで(図4手
順S14)、メモリ間のデータ転送が開始される。
【0007】
【発明が解決しようとする課題】一般に、CPUを用い
た情報処理装置のソフトウェアでは、プログラム構成の
階層化や構造化のためにサブルーチンあるいは関数を多
数定義し、プログラムを細分化している。
【0008】したがって、実際にソフトウェアが情報処
理装置上で動作するとき、サブルーチンや関数の呼出
(コール)が極めて頻繁に行われる。このとき、メモリ
上にスタック領域を確保しておき、このスタック領域を
引数の一時格納領域としてサブルーチンとの間で情報
(引数)の受け渡しを行っている。
【0009】上述した従来のメモリ間データ転送方式で
は、上記のスタック領域に大量の引数データを頻繁に転
送する場合、あるいはスタック領域から大量の引数デー
タを頻繁に取出す場合、CPUが転送元アドレス、デー
タ長、転送先アドレスをその都度DMACに設定してい
る。
【0010】このため、引数データ量が多いほど、ある
いはサブルーチンコールの頻度が高いほど、転送元アド
レスやデータ長、及び転送先アドレスの設定回数が増え
るので、スタック操作に伴うメモリ間データ転送にかか
る時間が増大し、ソフトウェア全体の処理速度が大きく
低下してしまう。
【0011】そこで、本発明の目的は上記の問題点を解
消し、引数データ量が多い場合やサブルーチンコールの
頻度が高い場合でもスタック操作に伴うメモリ間データ
転送にかかる時間を低減することができ、CPUにかか
る負荷を削減することができるとともに、ソフトウェア
全体の処理速度を向上させることができるダイレクトメ
モリアクセス制御回路を提供することにある。
【0012】
【課題を解決するための手段】本発明によるダイレクト
メモリアクセス制御回路は、メモリ装置のスタック領域
に対するダイレクトメモリアクセスを制御するための転
送元アドレスを保持する第1の保持手段と、前記ダイレ
クトメモリアクセスを制御するための転送先アドレスを
保持する第2の保持手段とを有するダイレクトメモリア
クセス制御回路であって、前記スタック領域に対するダ
イレクトメモリアクセスの検出時にこのアクセスにより
転送されるデータ長を基に転送後のスタックポイント値
を算出する算出手段と、前記算出手段の算出結果を前記
第1及び第2の保持手段に書込む書込み手段とを備えて
いる。
【0013】本発明の他のダイレクトメモリアクセス制
御回路は、上記の構成のほかに、前記スタック領域から
データを読出す時に前記第2の保持手段にそのデータの
転送先アドレスを書込むよう構成されている。
【0014】本発明の別のダイレクトメモリアクセス制
御回路は、上記の構成のほかに、前記スタック領域への
データの書込み時に前記第1の保持手段にそのデータの
転送元アドレスを書込むよう構成されている。
【0015】本発明のさらに別のダイレクトメモリアク
セス制御回路は、上記の構成のほかに、起動時に前記ス
タック領域の先頭アドレスを前記第1及び第2の保持手
段に書込む手段を具備している。
【0016】
【作用】メモリのスタック領域に対するダイレクトメモ
リアクセス転送におけるスタックポインタ操作命令の検
出時に算出されたスタックポインタ値を、そのデータ転
送後にソースアドレスレジスタ及びディスティネーショ
ンアドレスレジスタに夫々設定する。
【0017】これによって、スタック領域へのデータ転
送及びスタック領域からのデータ引取りに際し、データ
転送の方向に応じてソースアドレスレジスタ及びディス
ティネーションアドレスレジスタのうちの一方へのCP
Uによる設定が不要となる。
【0018】よって、引数データ量が多い場合やサブル
ーチンコールの頻度が高い場合でも転送元アドレスや転
送先アドレスの設定回数を減らすことができるので、ス
タック操作に伴うメモリ間データ転送にかかる時間の低
減が可能となり、CPUにかかる負荷を削減してソフト
ウェア全体の処理速度の向上が図れる。
【0019】
【実施例】次に、本発明の一実施例について図面を参照
して説明する。
【0020】図1は本発明の一実施例の構成を示すブロ
ック図である。図において、ダイレクトメモリアクセス
コントローラ(以下、DMACとする)1と、スタック
ポインタ検出演算部(以下、SP検出演算部とする)2
と、CPU3と、メモリ4とは夫々データバス100を
介して互いに接続されている。
【0021】ここで、DMAC1には転送データ長を保
持するデータ長レジスタ(L)11と、転送元アドレス
を保持するソースアドレスレジスタ(SA)12と、転
送先アドレスを保持するディスティネーションアドレス
レジスタ(DA)13とが設けられている。
【0022】SP検出演算部2はその出力情報を、DM
AC1のソースアドレスレジスタ12とディスティネー
ションアドレスレジスタ13とに夫々直接転送して設定
できるようになっている。
【0023】また、SP検出演算部2はデータバス10
0上のスタックポインタ操作命令を常時検出し、検出し
たスタックポインタ操作命令のデータ長に基づいてスタ
ックポインタ値を算出する。
【0024】SP検出演算部2はスタックポインタ操作
命令を検出すると、そのスタックポインタ操作命令によ
ってメモリ4のスタック領域(図示せず)との間にデー
タ転送が行われた後に、上記の処理で算出したスタック
ポインタ値をDMAC1のソースアドレスレジスタ12
とディスティネーションアドレスレジスタ13とに夫々
設定し、次のデータ転送に備える。
【0025】尚、SP検出演算部2はプログラム起動時
に、スタック領域の先頭アドレスを初期値としてDMA
C1のソースアドレスレジスタ12とディスティネーシ
ョンアドレスレジスタ13とに夫々設定するよう構成さ
れている。
【0026】図2は本発明の一実施例によるスタック操
作時のソフトウェア処理シーケンスを示す図である。こ
れら図1及び図2を用いて、サブルーチンコールに伴っ
てスタック操作を行う場合のソフトウェア処理シーケン
スについて説明する。
【0027】サブルーチンコールに伴ってスタック操作
を行う場合、CPU3は引数データ領域を示すソースア
ドレスをソースアドレスレジスタ12に、その引数のデ
ータ長をデータ長レジスタ11に夫々設定する(図2手
順S1,S2)。
【0028】次に、CPU3はダイレクトメモリアクセ
ス(DMA)転送指示をDMAC1に対して与える(図
2手順S3)。このとき、転送先アドレス情報はSP検
出演算部2における上記の処理によって前回のデータ転
送後にディスティネーションアドレスレジスタ13に設
定されている。
【0029】したがって、CPU3は転送先アドレスの
設定を省略してダイレクトメモリアクセス転送指示をD
MAC1に与える。この場合、SP検出演算部2はデー
タバス100上でスタックポインタ操作命令を検出する
ので、検出したスタックポインタ操作命令のデータ長に
基づいてスタックポインタ値を算出する。
【0030】上記のダイレクトメモリアクセス転送指示
によってスタック領域へのデータ転送が完了すると、S
P検出演算部2は上記の処理で算出したスタックポイン
タ値をDMAC1のソースアドレスレジスタ12とディ
スティネーションアドレスレジスタ13とに夫々設定
し、次のデータ転送に備える。
【0031】サブルーチンからの復帰時に、CPU3は
DMAC1内のソースアドレスレジスタ12とディステ
ィネーションアドレスレジスタ13とに値を設定してダ
イレクトメモリアクセス転送指示をDMAC1に与え
る。
【0032】この場合、ダイレクトメモリアクセス転送
がスタック領域からの読出しとなるので、CPU3はソ
ースアドレスレジスタ12に対する転送元アドレスの設
定を行わない。
【0033】上述した如く、SP検出演算部2がデータ
バス100上でのスタックポインタ操作命令の検出時に
算出してソースアドレスレジスタ12とディスティネー
ションアドレスレジスタ13とに夫々設定した内容のう
ちの一方をCPU3が上書きして変更し、その後にダイ
レクトメモリアクセス転送の指示を与えることで、メモ
リ4のスタック領域との間のデータ転送を実現してい
る。
【0034】このように、メモリ4のスタック領域に対
するダイレクトメモリアクセス転送におけるスタックポ
インタ操作命令の検出時にSP検出演算部2で算出され
たスタックポインタ値を、そのデータ転送後にソースア
ドレスレジスタ12とディスティネーションアドレスレ
ジスタ13とに夫々設定することによって、スタック領
域へのデータ転送及びスタック領域からのデータ引取り
に際し、データ転送の方向に応じてソースアドレスレジ
スタ12及びディスティネーションアドレスレジスタ1
3の一方へのCPU3による設定が不要となる。
【0035】よって、引数データ量が多い場合やサブル
ーチンコールの頻度が高い場合でも転送元アドレスや転
送先アドレスの設定回数を減らすことができるので、ス
タック操作に伴うメモリ間データ転送にかかる時間を低
減することができ、CPU3にかかる負荷を削減するこ
とができるとともに、ソフトウェア全体の処理速度を向
上させることができる。
【0036】
【発明の効果】以上説明したように本発明によれば、ス
タック領域に対するダイレクトメモリアクセスの検出時
にこのアクセスにより転送されるデータ長を基に転送後
のスタックポイント値を算出し、この算出結果を、転送
元アドレスを保持する第1の保持手段及び転送先アドレ
スを保持する第2の保持手段各々に書込むことによっ
て、引数データ量が多い場合やサブルーチンコールの頻
度が高い場合でもスタック操作に伴うメモリ間データ転
送にかかる時間を低減することができ、CPUにかかる
負荷を削減することができるとともに、ソフトウェア全
体の処理速度を向上させることができるという効果があ
る。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図であ
る。
【図2】本発明の一実施例によるスタック操作時のソフ
トウェア処理シーケンスを示す図である。
【図3】従来例の構成を示すブロック図である。
【図4】従来例によるスタック操作時のソフトウェア処
理シーケンスを示す図である。
【符号の説明】
1 ダイレクトメモリアクセスコントローラ 2 スタックポインタ検出演算部 3 CPU 4 メモリ 11 データ長レジスタ 12 ソースアドレスレジスタ 13 ディスティネーションアドレスレジスタ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 メモリ装置のスタック領域に対するダイ
    レクトメモリアクセスを制御するための転送元アドレス
    を保持する第1の保持手段と、前記ダイレクトメモリア
    クセスを制御するための転送先アドレスを保持する第2
    の保持手段とを有するダイレクトメモリアクセス制御回
    路であって、前記スタック領域に対するダイレクトメモ
    リアクセスの検出時にこのアクセスにより転送されるデ
    ータ長を基に転送後のスタックポイント値を算出する算
    出手段と、前記算出手段の算出結果を前記第1及び第2
    の保持手段に書込む書込み手段とを有することを特徴と
    するダイレクトメモリアクセス制御回路。
  2. 【請求項2】 前記スタック領域からデータを読出す時
    に前記第2の保持手段にそのデータの転送先アドレスを
    書込むよう構成されたことを特徴とする請求項1記載の
    ダイレクトメモリアクセス制御回路。
  3. 【請求項3】 前記スタック領域へのデータの書込み時
    に前記第1の保持手段にそのデータの転送元アドレスを
    書込むよう構成されたことを特徴とする請求項1または
    請求項2記載のダイレクトメモリアクセス制御回路。
  4. 【請求項4】 起動時に前記スタック領域の先頭アドレ
    スを前記第1及び第2の保持手段に書込む手段を含むこ
    とを特徴とする請求項1から請求項3のいずれか記載の
    ダイレクトメモリアクセス制御回路。
JP24046594A 1994-10-05 1994-10-05 ダイレクトメモリアクセス制御回路 Expired - Lifetime JP2715933B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24046594A JP2715933B2 (ja) 1994-10-05 1994-10-05 ダイレクトメモリアクセス制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24046594A JP2715933B2 (ja) 1994-10-05 1994-10-05 ダイレクトメモリアクセス制御回路

Publications (2)

Publication Number Publication Date
JPH08106431A true JPH08106431A (ja) 1996-04-23
JP2715933B2 JP2715933B2 (ja) 1998-02-18

Family

ID=17059918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24046594A Expired - Lifetime JP2715933B2 (ja) 1994-10-05 1994-10-05 ダイレクトメモリアクセス制御回路

Country Status (1)

Country Link
JP (1) JP2715933B2 (ja)

Also Published As

Publication number Publication date
JP2715933B2 (ja) 1998-02-18

Similar Documents

Publication Publication Date Title
US6175890B1 (en) Device for efficiently handling interrupt request processes
JPH0563829B2 (ja)
JPH0496163A (ja) Dmaコントローラ
JP2715933B2 (ja) ダイレクトメモリアクセス制御回路
KR960012354B1 (ko) 마이크로 프로세서
JPH0333934A (ja) レジスタ退避復帰方式
JPS62221059A (ja) 中央処理装置
JPS63118949A (ja) 情報処理装置
JP2501393B2 (ja) 直接メモリアクセス装置
JP2747154B2 (ja) 入出力処理装置
JP2560312B2 (ja) 情報処理システム
JPH06161944A (ja) Dma制御装置
JPH05120205A (ja) Dma転送用アドレス変換装置付きプロセツサシステムおよびdma転送方法
JPH0355642A (ja) メモリー制御方式
JPH05113888A (ja) マイクロプロセツサユニツト
JPH02183342A (ja) 割込み制御装置
JPH0333943A (ja) クロックステップ方式
JPH01292451A (ja) 情報処理装置
JPH03268967A (ja) ドットマトリクスプリンタの制御回路
JPH0675925A (ja) 情報処理装置
JPS62219032A (ja) 初期診断方式
JPH02118729A (ja) 情報処理装置
JPH01193948A (ja) データ転送制御方式
JPS61250740A (ja) メモリ切換方式
JPS6223342B2 (ja)