JP4257626B2 - メモリアクセス装置 - Google Patents
メモリアクセス装置 Download PDFInfo
- Publication number
- JP4257626B2 JP4257626B2 JP27773599A JP27773599A JP4257626B2 JP 4257626 B2 JP4257626 B2 JP 4257626B2 JP 27773599 A JP27773599 A JP 27773599A JP 27773599 A JP27773599 A JP 27773599A JP 4257626 B2 JP4257626 B2 JP 4257626B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- indirect
- main storage
- storage device
- 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.)
- Expired - Fee Related
Links
- 238000006243 chemical reaction Methods 0.000 claims description 71
- 238000000034 method Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 14
- 238000001514 detection method Methods 0.000 description 3
- 101150016456 Hexa gene Proteins 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
Images
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、仮想記憶方式にメモリバッファ制御を適用したメモリアクセス装置に関する。
【0002】
【従来の技術】
あるデバイスがメモリ空間上にある開始アドレスと終了アドレスとにはさまれた空間を開始アドレスから終了アドレスまでをアクセスし、繰り返し、開始アドレスに戻るように、リング状にアクセスするメモリアクセス装置が知られている。
このようなメモリ資源の使用方法は、データのフロー制御等で一時的にデータを保持しておくリングバッファとしてよく用いられている。
【0003】
このようなリングバッファを用いることにより、メモリ資源を効率よく使用することができ、しかもアドレス変換の制御が簡単になる。
また、計算機アーキテクチャにおいて、主記憶装置の一部を使い、プログラムが仮想的に連続エリアとしてメモリをアクセスする考え方がある。仮想記憶方式はこの考え方に基づいた方式であって、デバイスが論理アドレスを指定し、所定のアドレス変換テーブルを参照することにより、その論理アドレスを主記憶装置の物理アドレスに変換する方式である。その代表的な方式としてページング方式がある。
【0004】
この仮想記憶方式は一般的にソフト制御で行われるが、ハード制御によるリングバッファ制御にも応用でき、上位変換テーブルを動的に書き換えることによりリングバッファを実現することができる。
【0005】
【発明が解決しようとする課題】
ところで、従来のこのようなメモリアクセス装置では、2つのデバイスが同じメモリ空間をアクセスする場合、データ読み出しのための入力デバイスとデータ書き込み用の出力デバイスとでアクセスすべきメモリ空間が異なることが考えられる。このため、アドレス変換テーブルを複数備える必要がある。
【0006】
また、高速化のため、F/F(フリップフロップ)回路などでアドレス変換テーブルを構成した場合、アドレス変換テーブルを書き換える必要があることから複数のデバイスがF/F回路等を共通に使うことができず、デバイス毎に設ける必要がある。このため、回路規模が大きくなってしまう。
従って、できるだけ回路規模が大きくならないようにリングバッファ制御を行えるようにすることが好ましい。
【0007】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
〈構成1〉
請求項1の発明に係るメモリアクセス装置は、連続した論理アドレスを、アドレス変換テーブルを用いて主記憶装置のメモリ空間の物理アドレスに変換することにより主記憶装置のメモリ空間を連続エリアと仮想する仮想記憶方式を、主記憶装置における所定のメモリ空間をリング構造とみなして周回するようにアクセスする制御方式に適用して前記主記憶装置のメモリ空間をアクセスするものにおいて、前記アドレス変換テーブルには、複数のアドレスが格納され、前記主記憶装置に対するアクセスを要求するデバイス毎に間接テーブルを備え、該間接テーブルが、アドレス変換テーブルのアドレスを指定する複数のアドレスデータを格納し、対応するデバイスからのアクセスが終了したときに格納されたアドレスデータが所定テーブルのテーブルサイズの中で周回するように更新され、前記間接テーブルの前記テーブルサイズは、前記アドレス変換テーブルのテーブルサイズよりも小さく、前記間接テーブルの複数のアドレスデータのアドレス総数は、前記アドレス変換テーブルのテーブルサイズと等しく、前記アドレスデータが、アドレスの総数の周期で周回するように、前記間接テーブルが更新されるように構成されている。
【0008】
〈構成2〉
請求項2の発明に係るメモリアクセス装置では、前記デバイスのアクセス終了後、間接テーブルに格納されたアドレス変換テーブルのアドレスデータが所定テーブルサイズの中で周回するように間接テーブルを更新する間接テーブル更新手段を備えている。
【0009】
〈構成3〉
請求項3の発明に係るメモリアクセス装置では、連続した論理アドレスを、アドレス変換テーブルを用いて主記憶装置のメモリ空間の物理アドレスに変換することにより主記憶装置のメモリ空間を連続エリアと仮想する仮想記憶方式を、主記憶装置における所定のメモリ空間をリング構造とみなして周回するようにアクセスする制御方式に適用して前記主記憶装置のメモリ空間をアクセスするメモリアクセス装置において、前記主記憶装置に対するアクセスを要求するデバイス毎に間接テーブルを備え、該間接テーブルは、アドレス変換テーブルのアドレスを指定するアドレスデータを格納し、対応するデバイスからのアクセスが終了したときに格納されたアドレスデータが所定テーブルのテーブルサイズの中で周回するように更新されるように構成され、前記デバイスのアクセス終了後、前記間接テーブルに格納されたアドレス変換テーブルのアドレスデータが所定テーブルサイズの中で周回するように前記間接テーブルを更新する間接テーブル更新手段を備え、前記間接テーブル更新手段が、間接テーブルに格納されたアドレス変換テーブルのアドレスデータに間接テーブルのテーブルサイズを加算する加算手段と、該加算手段により加算された加算データをアドレス変換テーブルのテーブルサイズから減算する減算手段と、該減算手段による減算の結果、減算データが零未満のときは、格納されたアドレス変換テーブルのアドレスデータを加算データに書き換え、減算データが零のときは、格納されたアドレス変換テーブルのアドレスデータを零に書き換える書き換え手段と、を備えている。
【0010】
〈構成4〉
請求項4の発明に係るメモリアクセス装置では、主記憶装置にデータを書き込む書き込み要求が書き込み用デバイスからあり、主記憶装置からデータを読み出す読み出し要求が読み出し用デバイスからあったとき、主記憶装置へのアクセスの競合を回避するように、前記書き込み用デバイス及び読み出し用デバイスのアクセスを制御するアクセス制御手段を備えている。
【0011】
〈構成5〉
請求項5の発明に係るメモリアクセス装置では、前記アクセス制御手段が、書き込み用デバイスによってデータが書き込まれた書き込みアドレスと読み出し用デバイスによってデータが読み出された読み出しアドレスとを比較して主記憶装置に書き込み可能な領域があるか読み出し可能なデータがあるかを判定する判定手段と、該判定手段により、書き込み可能な領域があると判定されたときは、書き込み用デバイスに書き込みを許可する書き込み要求許可手段と、前記判定手段により、読み出し可能なデータがあると判定され、書き込み用デバイスが書き込み要求をしていないときに読み出し用デバイスに読み出しを許可する読み出し要求許可手段と、を備えている。
【0012】
〈構成6〉
請求項6の発明に係るメモリアクセス装置では、前記間接テーブルに格納されているアドレスデータの更新すべきデータを予め演算して格納するレジスタテーブルを備えている。
【0013】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
〈具体例1〉
具体例1は、間接テーブルをデバイス毎に備え、デバイスがアドレス変換テーブルを間接的に参照することにより、アクセス空間が異なるデバイスが複数存在するときでもアドレス変換テーブルを1つにすることができるようにしたものである。
【0014】
図1は、具体例1の構成を示すブロック図である。
主記憶装置100は、例えばプログラムを展開するための実記憶空間を有するメモリである。
【0015】
上位アドレス変換テーブル200は、ページング方式により連続した論理アドレス(仮想アドレス)を主記憶装置100の物理アドレス(実アドレス)に変換するためのテーブルであり、CPU500によってデータの読み書きが可能なレジスタを備えて構成されている。このレジスタに、主記憶装置100の使用可能エリアの上位アドレスが格納される。
【0016】
デバイス300A,Bは、主記憶装置100に読み書きするためのデバイスであり、それぞれデータ転送部301Aを備えている。
尚、具体例1では、デバイス300Aは外部からデータを取り込んで主記憶装置100に書き込む入力専用の入力デバイス、デバイス300Bは主記憶装置100に書き込まれたデータを読み出して外部に出力する出力専用の出力デバイスとして説明する。
【0017】
テーブル参照部400は、デバイス300A,Bが上位アドレス変換テーブル200を参照できるように制御するブロックであり、間接テーブル410A,Bと、間接テーブル更新部420A,Bと、終了アドレス検出部430A,Bと、アービタ440と、を備えて構成されている。
【0018】
間接テーブル410A,Bは、それぞれデバイス300A,Bに対応するように備えられ、CPU500によってデータの読み書きが可能なレジスタによって構成されたテーブルである。間接テーブル410A,Bの各レジスタには上位アドレス変換テーブル200のアドレスが格納される。
【0019】
間接テーブル更新部420A,Bは、それぞれ間接テーブル410A,Bを更新してリングバッファ処理を行うための間接テーブル更新手段である。
間接テーブル410A,B及び間接テーブル更新部420A,Bの詳細な構成については後述する。
【0020】
アービタ440は、デバイス300A,Bのメモリアクセスの競合を回避するためのブロックである。アービタ440の詳細な構成については後述する。
終了アドレス検出部430A,Bは、それぞれデバイス300A,Bの書き込み又は読み出しが終了したことを示す終了アドレスを検出するブロックであり、デバイス300A,Bから出力されたデータの終了アドレスを検出し、間接テーブル更新部420A,Bに終了タイミング信号を出力する。
【0021】
CPU500は、主記憶装置100、上位アドレス変換テーブル200及び間接テーブル410A,Bを制御するとともに、上位アドレス変換テーブル200、間接テーブル410A,Bに対してデータの読み書きを行う演算装置である。
【0022】
次に、間接テーブル更新部420A,B及び間接テーブル410A,Bの構成について説明する。
図2は間接テーブル410A,B及び間接テーブル更新部420A,Bの構成を示すブロック図である。
【0023】
具体例1の間接テーブル410A,Bは、それぞれ4つのレジスタ411a〜dを備えている。このレジスタ411a〜dにそれぞれ上位アドレス変換テーブルのアドレスが格納される。
間接テーブル更新部420A,Bは、書き込みタイミング発生部421と、セレクタ422と、演算部423と、を備えている。
書き込みタイミング発生部421は、終了アドレス検出部430A又はBから終了タイミング信号を入力して間接テーブル410A,Bのデータを書き換える書き換えタイミング信号を作成し、この書き換えタイミング信号を各レジスタ411a〜dに出力する。
【0024】
セレクタ422は、間接テーブル410A,Bの各レジスタ411a〜dのデータの演算部423への出力を切り換えるものである。
演算部423は、更新データを演算するものである。
【0025】
図3は具体例1の演算部423の構成を示すブロック図である。
演算部423は、加算器425と、減算器426と、比較器427と、セレクタ428と、を備えて構成されている。
【0026】
加算器425は、各レジスタ411a〜dのデータと間接テーブル長とを入力して両データの加算を行う加算手段である。尚、この間接テーブル長は、間接テーブル410A,Bのサイズを示すデータであり、具体例1の間接テーブル長は「4」である。
減算器426は、加算器425の出力データが上位アドレス変換テーブル長を越えるかどうかを判定するために、上位アドレス変換テーブル長から加算器425の出力データを減算する減算手段である。尚、上位アドレス変換テーブル長は上位アドレス変換テーブル200のサイズを示すデータである。
【0027】
セレクタ428は、比較器427によって制御されて加算器425の出力データ及び減算器426の出力データのうち、いずれか一方を選択出力するものである。
比較器427は、減算器426によって減算された減算データを“0”と比較することにより加算器425の加算データが上位アドレス変換テーブル長と等しいかどうかを判定し、加算器425の出力データが上位アドレス変換テーブル長と等しくないときは、セレクタ428から加算器425の出力データが出力され、等しいときは減算器426の出力データが出力されるようにセレクタ428を制御する。
このセレクタ428と比較器427とが書き換え手段に相当する。
【0028】
次に、アービタ440の構成について説明する。
図4は、具体例1のアービタ440の構成を示すブロック図である。
書き込みアドレス記憶部441は、間接テーブル410Aに最後に書き込んだアドレスに、1を加えたアドレスを保持するブロックである。
【0029】
読み出しアドレス記憶部442は、間接テーブル410Bから最後に読み出したアドレスに、1を加えたアドレスを保持するブロックである。
セレクタ443は、デバイス300Aから書き込み要求信号が入力されたとき、書き込み要求を行ったデバイス300Aからのアドレス及び書き込みアドレス記憶部441により保持されたアドレスのうち、いずれか一方を書き込みアドレスとして選択出力するブロックである。
【0030】
セレクタ444は、デバイス300Bから読み出し要求信号が入力されたとき、読み出し要求を行ったデバイス300Bからのアドレス及び書き込みアドレス記憶部441により保持されたアドレスのうち、いずれか一方を読み出しアドレスとして選択出力するブロックである。
【0031】
アドレス比較部445は、セレクタ443から出力された書き込みアドレス及びセレクタ444から出力された読み出しアドレスを比較することにより書き込み可能な領域があるか読み出し可能なデータがあるかを判定する判定手段であり、書き込み可能な領域があると判定したときは、書き込み要求受付信号作成部446に書き込み可能信号を出力し、読み出し可能なデータがあると判定したときは、読み出し要求受付信号作成部447に読みだし可能信号を出力する。
【0032】
書き込み要求受付信号作成部446は、デバイス300A、アドレス比較部445から、それぞれ書き込み要求信号、書き込み可能信号が入力されたとき、デバイス300Aにデータの書き込みを許可する書き込み受付信号を出力する書き込み要求許可手段である。また、書き込み要求受付信号作成部446は、データの書き込み中、読み出し要求受付信号作成部447に書き込み中信号を出力する。
【0033】
読み出し要求受付信号作成部447は、デバイス300B、アドレス比較部445から、それぞれ読み出し要求信号、読み出し可能信号が入力され、さらに書き込み要求受付信号作成部446から書き込み中信号が出力されていないときに、デバイス300Bにデータの読み出しを許可する読み出し受付信号を出力する読み出し要求許可手段である。
【0034】
〈動作〉
ページング方式では、プログラムを主記憶装置100上に展開して動作させるとき、プログラムが一定の長さのいくつかのページに区切られて主記憶装置100上に配置される。従って、プログラムが格納されているエリアは、メモリ資源を確保するため、通常は不連続となる。
このため、上位アドレス変換テーブル200を使用して連続した論理アドレスが主記憶装置100上の物理アドレスに変換される。
【0035】
図5は、具体例1の動作説明図である。
尚、具体例1では、分かりやすくするため、この図5に示すようにプログラムが256×4のサイズで収まるものとして説明する。
また、主記憶装置100は32ビットのアドレス空間を有し、1エリアは、256(8ビット)毎に区切られているものとし、デバイス300A,Bがアクセスできるアドレス空間を10ビット、使用できるエリアをエリア0〜6の7エリアとする。従って、上位アドレス変換テーブル長は、「7」となる。尚、ここでは、1ワードのビット数は特に限定されない。
【0036】
この場合、プログラムのアドレス空間は256×4なので8+2=10ビットということになる。下位8ビットは主記憶装置100のアドレスとしてそのまま使用することができるので変換するのは上位2ビットとなる。
【0037】
このプログラム空間の上位2ビットのアドレスが上位アドレス変換テーブル200のアドレスとなる。テーブルの大きさは、テーブル1アドレス当たりのビット数は主記憶装置100の上位24ビットであり、これが4つ分(アドレス分)ということになる。また、上位アドレス変換テーブル200のレジスタ210〜216には、それぞれ主記憶装置100のエリア0〜6の上位24ビットのアドレスデータが入力される。
【0038】
このように、上位2ビットのアドレスを上位アドレス変換テーブル200を通して変換し、下位のアドレスをそのまま使用することにより、あたかもプログラムがエリア0のアドレスから起動されたように動作させることができる。
具体的に、アドレス変換を行うには、まず、上位アドレス変換テーブル200の各レジスタ210〜216に、それぞれ主記憶装置100のエリア0〜6の上位アドレスを格納し、主記憶装置100上でのデバイスが使用可能なエリア0〜6を上位アドレス変換テーブル200の各レジスタ210〜216に割り当てる。これはプログラムによって実行される。
【0039】
このように割り当てが行われた後、プログラムによってデバイス300A用の間接テーブル410Aの初期化が行われる。
間接テーブル410Aの初期化を行うには、デバイス300A用の間接テーブル410Aのレジスタ411aに上位アドレス変換テーブル200のレジスタ210を指定するデータ“0”をセットする。同様にして間接テーブル410Aのレジスタ411b〜dに、それぞれ上位アドレス変換テーブル200のレジスタ211〜213を指定するデータ“1”〜“3”をセットする。
【0040】
デバイス300B用の間接テーブル410Bについても同様に初期化が行われる。
間接テーブル410Aの初期化後、プログラムによりデバイス300Aに起動をかけて入力動作を開始させる。
デバイス300Aが入力動作を開始して主記憶装置100にデータを書き込むとき、アドレス変換が行われる。
【0041】
図5の例では、デバイス300Aによって例えばヘクサ表現でアドレス「0x2a5」(「0x」はヘクサ表現であることを示す。)が指定される。このとき、上位2ビットは「2」であるので、間接テーブル410Aのアドレスは「2」となり、レジスタ411cのデータ「2」が得られる。このデータ「2」が上位アドレス変換テーブル200のアドレスデータとなる。
【0042】
このアドレスデータ「2」に基づいて上位アドレス変換テーブル200のレジスタに格納されているデータ「0X000007」が得られる。
このデータ「0X000007」は、主記憶装置100の上位24ビットのアドレスデータであるので、このデータ「0X000007」とデバイス300Bの下位8ビットのデータ「0xa5」に基づいて主記憶装置100のアドレス「0X000007a5」が得られる。
【0043】
そして、このアドレス「0X000007a5」を指定して主記憶装置100のエリア6に格納されているデータが読み出される。
主記憶装置100へのデータの書き込みが終了したとき、アクセスの終了タイミングが終了アドレス検出部430によって検出され、終了信号が間接テーブル410Aの書き込みタイミング発生部421に入力される。
【0044】
間接テーブル更新部420Aはこの信号をトリガとして間接テーブル410Aのデータを更新する。
更新は以下のようにして行われる。
まず、セレクタ422が制御されて間接テーブル410Aのレジスタ411aのデータが演算部423に入力される。
【0045】
演算部423では、このデータに間接テーブル長が加算器425により加算される。
例えば、レジスタ411aに格納されているデータが「0」のときは、データ「0」に「4」が加算されて「4」となる。このときは、更新されたデータ「4」がレジスタ411aに格納される。
【0046】
同じようにして、セレクタ422が切り換えられ、間接テーブル410Aのレジスタ411a〜dに格納されているデータが順次更新される。
間接テーブル410Aのレジスタに格納されているデータが「3」のときは、加算値は「3」+「4」=「7」となり、上位アドレス変換テーブル長と等しくなる。このときは、セレクタ422が比較器427によって切り換えられてデータ「0」が出力される。
このようにして主記憶装置100のエリア6を越えないように、間接テーブル410Aの更新が行われる。
【0047】
図6は間接テーブル410Aの遷移を説明するための説明図である。
図6に示すように、状態1では、間接テーブル410Aのレジスタ411a〜dには、それぞれ上位アドレス変換テーブル200のアドレスデータ0〜3がセットされている。間接テーブル410Aが更新されたとき、間接テーブル410Aの各レジスタ411a〜dが書き換えられて状態1は状態2のように変化し、この状態2において、さらに間接テーブル410Aが更新されて状態3のように変化する。
【0048】
読み出しができる程度にデータが蓄積されたとき、今度は、デバイス300Bを起動する。このときも同じようにしてアドレス変換が行われ、データの読み出しが行われる。
【0049】
そして、デバイス300Bによる主記憶装置100からのデータの読み出しが終了したときは、書き込み終了時と同様に読み出しアクセスの終了タイミングが終了アドレス検出部430によって検出され、終了タイミング信号が間接テーブル410Aの書き込みタイミング発生部421に入力される。この信号がトリガとなって書き込みタイミング発生部421から書き換えタイミング信号が出力され、間接テーブル410Aのデータが更新される。
【0050】
デバイス300Aにより書き込み要求が行われたとき、あるいはデバイス300Bによって読み出し要求が行われたとき、アービタ440によってメモリアクセスがコントロールされ、メモリアクセスの競合が回避される。
【0051】
例えば、デバイス300Aからアービタ440に書き込み要求信号が入力されてデバイス300Aにより書き込み要求が行われたとき、アドレス比較部445によって書き込みアドレスと読み出しアドレスとが比較される。そして、書き込みアドレスが読み出しアドレスよりも小さいときは、書き込み領域があると判定されてアドレス比較部445から書き込み要求受付信号作成部446に書き込み可能信号が出力される。
【0052】
この書き込み可能信号が書き込み要求受付信号作成部446に出力されたとき、書き込み受付信号が書き込み要求受付信号作成部446からデバイス300Aに出力され、デバイス300Aにより主記憶装置100へのデータの書き込みが行われる。
【0053】
同様に、デバイス300Bからアービタ440に読み出し要求信号が入力されて読み出し要求が行われたとき、書き込みアドレスが読み出しアドレスよりも小さいときは、読み出すデータがあるとアドレス比較部445によって判定され、アドレス比較部445から書き込み要求受付信号作成部446に書き込み可能信号が出力される。そして、書き込み要求受付信号作成部446から書き込み中信号が出力されていないときは、読み出し要求受付信号作成部447からデバイス300Bに読み出し受付信号が出力され、デバイス300Bにより主記憶装置100からデータの読み出しが行われる。
【0054】
一方、書き込みアドレスが読み出しアドレスよりも大きいときは、デバイス300Aから書き込み要求信号が入力されても書き込み領域はないとアドレス比較部445によって判定され、アドレス比較部445から書き込み可能信号は出力されない。また、デバイス300Bから読み出し要求信号が入力されても読み出すデータはないとアドレス比較部445によって判定されて読み出し可能信号は出力されない。このようにしてメモリアクセスの競合が回避され、デバイス300Aが主記憶装置100にデータを書き込む前にデバイス300Bによってデータの読み出しが行われないようになる。
【0055】
〈具体例1の効果〉
以上、説明したように具体例1によれば、間接テーブル410A,Bをデバイス300A,B毎に備え、上位アドレス変換テーブル200を間接的に参照するようにしたので、上位アドレス変換テーブル200を複数設ける必要がなく、回路規模を大幅に削減することができる。
【0056】
ここで、アドレス変換を目的とするテーブルを上位アドレス変換テーブルのみで構成する場合と間接テーブルを追加して構成する場合とで、その回路規模を比較する。
【0057】
尚、ここでも、主記憶装置のメモリ空間を32ビットのアドレス空間、1エリアのアドレス空間を8ビット、デバイスのアクセスできるアドレス空間を10ビットとし、使用できるエリア数を7つとする。
【0058】
各テーブルをF/F回路で構成した場合、1つの上位アドレス変換テーブルは24×7ビットとなる。デバイスが2つのとき、これを2つ使うので、F/F回路24×7×2=336の数だけ必要となる。
これに対して、間接テーブルを設けた場合、上位アドレス変換テーブルは1つで済むため、F/F回路は、24×7+3×4×2=192の数で済み、回路規模を削減できることになる。
【0059】
尚、具体例1では、デバイスを2つとしたので、2つの間接テーブルを必要としたが、間接テーブルの数はこの具体例1には限定されない。また、テーブル長も各デバイスのアクセス空間に応じて増減することもできる。
【0060】
また、上位アドレス変換テーブルも主記憶装置の使用可能エリアの数に応じて増減することができ、主記憶装置の使用可能エリア取得の範囲を制限する事でテーブルの各アドレスのビット数を減らすことが可能になる。
【0061】
例えば、主記憶装置のメモリアドレス空間が32ビットで使用可能エリアが常に主記憶装置のアドレス空間の後半と制限すれば、最上位の1ビットは常に固定となるためテーブルの全てのアドレスで最上位の1ビットを省くことができる。
【0062】
また、デバイス空間が使用可能エリアの空間より大きい場合でも間接テーブルをデバイス空間に合わせたテーブル長にすれば処理可能となる。
例えば、デバイスのアドレス空間が4エリア分で実際に使えるエリアが3つのときは、間接テーブルの内容を“0”、“1”、“2”、“0”というように設定することにより、リングバッファとして使用可能となる。
【0063】
また、間接テーブル更新部の演算部も間接テーブルのアドレス分備えることもでき、このようにすれば間接テーブルの更新を全て同時に行える。一方、間接テーブル更新部のセレクタの入力数を増やし、書き込みタイミング発生部を全デバイス共通のものにすることにより、全デバイスの間接テーブルの更新用の演算部が1つで済むことになる。
【0064】
また、具体例1では、間接テーブル更新部の演算部をハードウェア構成としたが、ソフトウェアによって構成することもできる。
図7はその動作を示すフローチャートである。
ステップ(図中、ステップを「S」と記す。)1では、間接テーブル410A(又はB)のデータを入力する。
【0065】
ステップ2では、間接テーブル410Aのデータと間接テーブル長を加算する。
ステップ3では、この加算値を上位アドレス変換テーブル長と比較する。
そして、加算値が上位アドレス変換テーブル長よりも大きいときは、ステップ4に進み、上位アドレス変換テーブル長から加算値を減算する。
【0066】
ステップ5では、この値を出力する。
また、加算値が上位アドレス変換テーブル長を越えたときは、ステップ6に進み、変数Bに加算値を代入し、ステップ5に進んでこの変数Bを出力する。
このように、演算部423をソフトウェアによって構成することもできる。
【0067】
〈具体例2〉
具体例2は、更新時間を短縮するため、間接テーブルの各レジスタと対応するレジスタテーブルを備え、あらかじめ更新用のデータを演算させてレジスタテーブルに格納するようにしたものである。
【0068】
図8は、具体例2の構成を示すブロック図である。
具体例2の間接テーブル更新部420A,Bは、それぞれ書き込み可能なレジスタ452a〜dを有するレジスタテーブル450を備えている。
尚、具体例1と同一要素については同一符号を付して説明を省略する。
【0069】
〈動作〉
次に具体例2の更新動作を説明する。
具体例2では、間接テーブル410A(又はB)の更新前に、間接テーブル410Aのレジスタ411aのデータを読み取り、演算部423により更新データが作成される。
尚、具体例2においても、演算部423をハードウェアにより構成してもよいし、ソフトウェアによって構成してもよい。
【0070】
そして、この演算結果がレジスタテーブル450のレジスタ452aに書き込まれる。
同様にして間接テーブル410Aのレジスタ411b〜dについてもデータが読み取られ、演算結果が各レジスタテーブル450の452b〜dに書き込まれる。
【0071】
間接テーブル410Aの更新時、書き込みタイミング発生部421から書き換えタイミング信号が出力されたとき、このレジスタテーブル450のレジスタ452a〜dのデータが間接テーブル410Aの各レジスタ411a〜dに同時に出力され、コピーされる。
【0072】
尚、間接テーブル410の書き換えタイミングは、割り込み信号等を用いてCPU500にも通知される。
レジスタテーブル450から間接テーブル410へのコピーは通常1クロックで終了する。
そして、コピー終了後、次の更新に備えて再び更新用データがレジスタテーブル450に書き込まれる。
このように、レジスタテーブル450の書き換え、レジスタテーブル450から間接テーブル410Aへのコピーを繰り返すことによりリングバッファが実現される。
【0073】
〈具体例2の効果〉
以上、説明したように具体例2によれば、レジスタが間接テーブル410A,Bの各レジスタと対応するレジスタテーブル450を備え、あらかじめ演算した更新用データを間接テーブル410A,Bの更新時、同時に更新するようにしたので、更新時間を大幅に短縮することができる。従って、デバイス300A,Bは主記憶装置100を、高速かつ連続的にアクセスすることができる。
【図面の簡単な説明】
【図1】具体例1の構成を示すブロック図である。
【図2】具体例1の間接テーブル及び間接テーブル更新部の構成を示すブロック図である。
【図3】具体例1の演算部(間接テーブル更新部)の構成を示すブロック図である。
【図4】具体例1のアービタの構成を示すブロック図である。
【図5】具体例1の動作説明図である。
【図6】具体例1の間接テーブルの遷移を示す説明図である。
【図7】具体例1の演算部をソフトウェアで構成した場合のその動作を示すフローチャートである。
【図8】具体例2の間接テーブル及び間接テーブル更新部の構成を示すブロック図である。
【符号の説明】
100 主記憶装置
200 上位アドレス変換テーブル
300A,B デバイス
400 テーブル参照部
410 間接テーブル
420 間接テーブル更新部
440 アービタ
450 レジスタテーブル
500 CPU
Claims (6)
- 連続した論理アドレスを、アドレス変換テーブルを用いて主記憶装置のメモリ空間の物理アドレスに変換することにより主記憶装置のメモリ空間を連続エリアと仮想する仮想記憶方式を、主記憶装置における所定のメモリ空間をリング構造とみなして周回するようにアクセスする制御方式に適用して前記主記憶装置のメモリ空間をアクセスするメモリアクセス装置において、
前記アドレス変換テーブルには、複数のアドレスが格納され、
前記主記憶装置に対するアクセスを要求するデバイス毎に間接テーブルを備え、該間接テーブルは、アドレス変換テーブルのアドレスを指定する複数のアドレスデータを格納し、対応するデバイスからのアクセスが終了したときに格納されたアドレスデータが所定テーブルのテーブルサイズの中で周回するように更新され、
前記間接テーブルの前記テーブルサイズは、前記アドレス変換テーブルのテーブルサイズよりも小さく、
前記間接テーブルの複数のアドレスデータのアドレス総数は、前記アドレス変換テーブルのテーブルサイズと等しく、
前記アドレスデータが、アドレスの総数の周期で周回するように、前記間接テーブルが更新されるように構成されたことを特徴とするメモリアクセス装置。 - 前記デバイスのアクセス終了後、間接テーブルに格納されたアドレス変換テーブルのアドレスデータが所定テーブルサイズの中で周回するように間接テーブルを更新する間接テーブル更新手段を備えたことを特徴とする請求項1に記載のメモリアクセス装置。
- 連続した論理アドレスを、アドレス変換テーブルを用いて主記憶装置のメモリ空間の物理アドレスに変換することにより主記憶装置のメモリ空間を連続エリアと仮想する仮想記憶方式を、主記憶装置における所定のメモリ空間をリング構造とみなして周回するようにアクセスする制御方式に適用して前記主記憶装置のメモリ空間をアクセスするメモリアクセス装置において、
前記主記憶装置に対するアクセスを要求するデバイス毎に間接テーブルを備え、該間接テーブルは、アドレス変換テーブルのアドレスを指定するアドレスデータを格納し、対応するデバイスからのアクセスが終了したときに格納されたアドレスデータが所定テーブルのテーブルサイズの中で周回するように更新されるように構成され、
前記デバイスのアクセス終了後、前記間接テーブルに格納されたアドレス変換テーブルのアドレスデータが所定テーブルサイズの中で周回するように、前記間接テーブルが更新される間接テーブル更新手段を備え、
前記間接テーブル更新手段は、間接テーブルに格納されたアドレス変換テーブルのアドレスデータに間接テーブルのテーブルサイズを加算する加算手段と、
該加算手段により加算された加算データをアドレス変換テーブルのテーブルサイズから減算する減算手段と、
該減算手段による減算の結果、減算データが零未満のときは、格納されたアドレス変換テーブルのアドレスデータを加算データに書き換え、減算データが零のときは、格納されたアドレス変換テーブルのアドレスデータを零に書き換える書き換え手段と、
を備えたことを特徴とするメモリアクセス装置。 - 主記憶装置にデータを書き込む書き込み要求が書き込み用デバイスからあり、主記憶装置からデータを読み出す読み出し要求が読み出し用デバイスからあったとき、主記憶装置へのアクセスの競合を回避するように、前記書き込み用デバイス及び読み出し用デバイスのアクセスを制御するアクセス制御手段を備えたことを特徴とする請求項1〜請求項3のいずれか1つに記載のメモリアクセス装置。
- 前記アクセス制御手段は、書き込み用デバイスによってデータが書き込まれた書き込みアドレスと読み出し用デバイスによってデータが読み出された読み出しアドレスとを比較して主記憶装置に書き込み可能な領域があるか読み出し可能なデータがあるかを判定する判定手段と、
該判定手段により、書き込み可能な領域があると判定されたときは、書き込み用デバイスに書き込みを許可する書き込み要求許可手段と、
前記判定手段により、読み出し可能なデータがあると判定され、書き込み用デバイスが書き込み要求をしていないときに読み出し用デバイスに読み出しを許可する読み出し要求許可手段と、
を備えたことを特徴とする請求項4に記載のメモリアクセス装置。 - 前記間接テーブルに格納されているアドレスデータの更新すべきデータを予め演算して格納するレジスタテーブルを備えたことを特徴とする請求項1〜請求項5のいずれか1つに記載のメモリアクセス装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP27773599A JP4257626B2 (ja) | 1999-09-30 | 1999-09-30 | メモリアクセス装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP27773599A JP4257626B2 (ja) | 1999-09-30 | 1999-09-30 | メモリアクセス装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2001101072A JP2001101072A (ja) | 2001-04-13 |
| JP4257626B2 true JP4257626B2 (ja) | 2009-04-22 |
Family
ID=17587606
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP27773599A Expired - Fee Related JP4257626B2 (ja) | 1999-09-30 | 1999-09-30 | メモリアクセス装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4257626B2 (ja) |
-
1999
- 1999-09-30 JP JP27773599A patent/JP4257626B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2001101072A (ja) | 2001-04-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3170301B2 (ja) | アドレス変換装置 | |
| EP0373291B1 (en) | Digital signal processor | |
| KR970011207B1 (ko) | 원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치 | |
| JP2504206B2 (ja) | バスコントロ―ラ | |
| EP0669579B1 (en) | Coherence index generation for use by an input/output adapter | |
| JP2001290706A (ja) | Tlbキャッシュのためのプリフェッチ | |
| US6684267B2 (en) | Direct memory access controller, and direct memory access control method | |
| JP3506024B2 (ja) | 情報処理装置 | |
| JP3803196B2 (ja) | 情報処理装置、情報処理方法および記録媒体 | |
| JP2000040029A (ja) | デ―タ処理システムにおけるメモリ・アドレス変換装置及びデ―タ処理方法 | |
| JP4257626B2 (ja) | メモリアクセス装置 | |
| US6378058B1 (en) | Method of and apparatus for processing information, and providing medium | |
| US4628450A (en) | Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor | |
| JPH09282221A (ja) | 主記憶制御装置 | |
| US5524221A (en) | Next instruction pointer calculation system for a microcomputer | |
| JPH0689229A (ja) | バッファメモリの無効化装置および無効化方法 | |
| JP4363431B2 (ja) | データ転送方式 | |
| JPH03271859A (ja) | 情報処理装置 | |
| JPH10247150A (ja) | データ処理システム | |
| JP3476376B2 (ja) | 仮想記憶アドレス空間アクセス制御方法とそのための装置 | |
| JP2000172675A (ja) | リストベクトル処理装置 | |
| JPH04266140A (ja) | アドレス変換バッファ装置 | |
| JP3242847B2 (ja) | データ制御装置 | |
| JP2001100991A (ja) | ディジタル信号処理装置 | |
| JPH05250156A (ja) | Riscプロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050830 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051124 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080929 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081007 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081204 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081224 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090122 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120213 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130213 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140213 Year of fee payment: 5 |
|
| LAPS | Cancellation because of no payment of annual fees |