JP3345050B2 - 二次元配列型メモリシステム - Google Patents

二次元配列型メモリシステム

Info

Publication number
JP3345050B2
JP3345050B2 JP23241692A JP23241692A JP3345050B2 JP 3345050 B2 JP3345050 B2 JP 3345050B2 JP 23241692 A JP23241692 A JP 23241692A JP 23241692 A JP23241692 A JP 23241692A JP 3345050 B2 JP3345050 B2 JP 3345050B2
Authority
JP
Japan
Prior art keywords
address
register
page
column
pointer
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
Application number
JP23241692A
Other languages
English (en)
Other versions
JPH0683696A (ja
Inventor
雅嗣 亀谷
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP23241692A priority Critical patent/JP3345050B2/ja
Priority to US08/113,811 priority patent/US5724540A/en
Publication of JPH0683696A publication Critical patent/JPH0683696A/ja
Application granted granted Critical
Publication of JP3345050B2 publication Critical patent/JP3345050B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、リアルタイムで大規模
なデ−タを扱う処理装置に好適な二次元配列型メモリシ
ステムに関するものである。
【0002】
【従来の技術】計算機システムで使用するメモリシステ
ムの容量は近年急速に増加しつつある。現在ワ−クステ
−ションレベルで8Mbytes〜128Mbytesの主記憶を有
し、リニアにアクセス可能な大容量メモリシステムを有
することがア−キテクチャ構成上の必須条件になりつつ
ある。すなわち、OSやその作業領域及び汎用化された
ファイルシステム及びテ−ブルが大量のメモリを消費
し、十分な容量のリニアメモリシステムを備えていない
と有効な処理を行えないのが現状である。従来のリニア
メモリ空間を前提としたメモリインターフェース構成例
として、インテル社の文献資料番号231732J−0
03(8036ハードウェアリファレンス・マニュア
ル)のP43〜P62に示されたものがある。
【0003】
【発明が解決しようとする課題】現状の計算機システム
のメモリシステムア−キテクチャは汎用性に富むのは事
実だが、逆に、アクセス操作やその管理(メモリマネ−
ジメント)におけるCPU負荷及びOS負荷は非常に高
く、大きなオ−バ−ヘッドになっている。また、大容量
メモリシステムを有することが前提となっているため、
コスト面でも高価にならざるを得ない。このような問題
点を詳しく述べると次のようになる。 (1)比較的大きなリニアメモリシステムを必要とし、
その操作はすべてCPUのアドレッシング処理とアクセ
ス命令とに頼り切る思想で処理装置部を構成している。
従って、メモリ空間の管理やアクセス操作をOSやソフ
トで記述する必要があり、汎用性に富む反面、オ−バ−
ヘッドが大きい。 (2)上記(1)に伴いメモリをアクセスするのに必要
な命令数が増加するため、それらの命令コ−ドを保持す
るのに多くのメモリを必要とする。1デ−タを読み書き
(Read and Write)する一連の操作で平均10〜12バイ
ト(32bitプロセッサ)が命令コ−ドとして必要とな
る。その分多くのコ−ドメモリを消費し、1メモリアク
セス当たりのコストが大きい。 (3)上記(1)、(2)よりコストオリエンテッドな
産業用計算機を設計する際、メモリの占めるコストが大
きくなり過ぎる傾向にある。 (4)命令コ−ド列や配列デ−タ列(ファイルシステ
ム、数値処理デ−タ、テ−ブル、モデルデ−タ等)等、
ベクトル的に処理できるデ−タがメモリシステムの大半
を占めるにも拘らず、すべての領域をランダムアクセス
することを前提としてシステムが設計されている。従っ
て、アクセス操作が冗長となったりアドレッシング処理
に必要以上のオ−バ−ヘッドを要する。 (5)計算機システムにとってメモリアクセス上の最大
のクリティカルパスは、指定したメモリデ−タ(オペラ
ンドデ−タ)をどれだけ早い時刻にCPU内に取り込
み、そのデ−タに処理を加えることができるかである。
必要なデ−タがCPUに入力されないと、CPUは待ち
状態になり処理効率を直接的に低下させる原因となる。
従来のシステムでは、オペランドデ−タアドレッシング
をCPU内で実行中のアクセスインストラクションの中
で行う。そして、その結果をメモリに出力してアクセス
タ−ゲットデ−タがメモリから読み出されるまで待った
後そのデ−タを取り込み、必要な処理を加える。従っ
て、必ずアクセス待ちオ−バ−ヘッドを要する。
【0004】上記した従来技術の問題点から考えると、
コストオリエンテッドな計算機システムから大規模な高
性能システムまで様々な性能要求をカバ−し、かつ統一
したア−キテクチャの下で将来にわたって設計していく
ことは非常に困難であることが明かであり、コストパフ
ォ−マンスまで考慮するとさらに問題は大きくなる。こ
の点から問題点をさらに詳しくみると、次のようにな
る; (6)大きなアドレス空間をサポ−トしようとすると、
多くのアドレス線、多ビットのアドレッシング処理装置
(カウンタや加算器)及びアドレスレジスタをCPU内
に備える必要があり、必然的に高価なCPU(32bitC
PU等、8 bitCPUでは扱えるアドレス空間が小さ
い)を用いることになる。 (7)ハ−ドウェアコストを抑え込もうとすると、安価
なCPU(8bitCPU、16bitCPU等)を用いること
になるが、アドレッシング処理能力も同時に低くなり、
扱えるメモリ容量が少なくなるばかりでなく処理能力そ
のものも低くならざるを得ない。 (8)完全にコストオリエンテッドな設計が現時点で要
求されていても、将来メモリ容量や数値処理能力の面で
もより高い性能要求が必須である場合には、ア−キテク
チャやソフトウェアの資産性を考慮すると、現時点から
ある程度高機能設計にせざるを得ない。 (9)ソフトウェアの資産性及び継承性を考慮すると、
高級言語を用いてプログラムを記述しておく必要が生ず
る。従って、プログラムの実行速度が低下するだけでな
く、メモリ容量も大きなものが要求されるため、コスト
パフォ−マンスは非常に悪くなる。この条件で性能を上
げようとすると、CPUを高レベルなものに変更する必
要が生じ絶対的にハ−ドウェアコストが上昇する。 (10)メモリシステムは小容量で良くても、高い数値
処理能力が要求された場合、その性能の大部分がメモリ
システムへのアクセス効率に依存している。従って、高
レベルのCPUを用いメモリシステムへのアドレッシン
グ能力を強化する必要が生じ、それに伴ってメモリシス
テムも比較的大規模にならざるを得ない。 (11)高性能マシンと大容量メモリシステム上で構築
されたプログラムは、OSやシステムソフトウェアへの
依存性が非常に高く、コ−ドサイズ及びデ−タサイズが
大きくなりがちである。すなわち、マシンの性能とメモ
リ量を気にせずに製作されているため、コストパフォ−
マンスが非常に悪い。従って、コストオリエンテッドな
マシンに移植しようとすると、大幅なチュ−ニング(ほ
とんどつくり直しに近い)が必要となったり、資産性を
考慮すると結局高級マシンが必要となり、目標とするコ
ストから大幅にかけ離れたものになる可能性が高い。
【0005】本発明の目的は、メモリ管理のためのOS
やソフトのオーバヘッドが少なく、また目盛り管理のた
めの命令数を少なくして全体のメモリ容量を、従ってコ
ストを低減でき、さらに大容量のメモリアクセスを高速
化することのできる二次元配列メモリシステムを提供す
るにある。
【0006】
【課題を解決するための手段】本発明は、ぺ一ジポイン
タとコラムポインタの組でアドレス指定を行うように構
成されたメモリアレイと、前記ぺ一ジポインタを生成す
るページアドレスコントローラと、前記コラムポインタ
を生成するコラムアドレスコントローラとを備え、CP
Uとメインバスを介して接続されて動作する二次元配列
型メモリシステムであって、前記ページアドレスコント
ローラは、その各々がページポインタを格納する複数の
ページアドレスレジスタと、このぺージアドレスレジス
タに格納されたページポインタの更新方法を示すモード
情報を格納するページアドレス用モードレジスタと、ぺ
一ジアドレスレジスタに格納されたページポインタを更
新するためのぺ一ジアドレスカウンタと、CPUからの
コマンド入力を解読するためのページアドレス用デコー
ダと、起動信号が与えられているときにCPUから当該
メモリシステムに対するアクセスを示すコマンドが入力
されたときに、そのコマンド入力のタイミングで前記ペ
ージアドレス用デコーダにより解読されたコマンドの内
容に従って前記ページアドレスレジスタを1つ選択し、
この選択したページアドレスレジスタのぺ一ジポインタ
が前記ページアドレス用モードレジスタに格納されたモ
ード惰報に従って前記ペーシアドレスカウンタによって
更新されるように制御する機能を備えたぺ一ジアドレス
用制御部と、を有し、前記コラムアドレスコントローラ
は、その各々がコラムポインタを格納する複数のコラム
アドレスレジスタと、このコラムアドレスレジスタに格
納されたコラムポインタの更新方法を示すモード情報を
格納するコラムアドレス用モードレジスタと、コラムア
ドレスレジスタに格納されたコラムポインタを更新する
ためのコラムアドレスカウンタと、CPUからのコマン
ド入力を解読するためのコラムアドレス用デコーダと、
ページポインタおよぴコラムポインタをラッチして前記
メモリアレイヘ出力するためのラッチ回路と、CPUか
ら当該メモリシステムに対するアクセスを示すコマンド
が入力されたときに、そのコマンド入力のタイミングで
前記ラッチ回路にラッチされていたページポインタおよ
ぴコラムポインタを前記メモリアレイヘ出力してメモリ
アレイとCPUとの聞のデータアクセスが行われるよう
に制御するとともに、前記タイミングと同じタイミング
で前記起動信号を前記ぺ一ジアドレスコントローラヘ出
力し、前記コラムアドレス用デコーダにより解読された
コマンドの内容に従って前記コラムアドレスレジスタを
1つ選択し、この選択したコラムアドレスレジスタのコ
ラムポインタが前記コラムアドレス用モードレジスタに
格納されたモード情報に従って前記コラムアドレスカウ
ンタによって更新されるように制御し、こうして前記ぺ
一ジアドレスコントローラおよぴ当核コマンドアドレス
コントローラにより更新されたぺ一ジポインタおよぴコ
ラムポインタを前記ラッチ回路ヘラツチするように制御
する機能を加えたコラムアドレス用制御部と、を有した
ことを特微とする二次元配列型メモリシステムを開示す
る。。
【0007】更に本発明は、二次元配列型メモリシステ
ムにおいて、前記ぺ一ジアドレスコントローラはCPU
からオフセット値が設定可能なぺ一ジアドレス用オフセ
ットレジスタを有し、前記ページアドレス用モードレジ
スタに格納された前記モード情報による指示があったと
きには、前記ぺ一ジアドレス用制御部は前記ぺ一ジアド
レス用カウンタにより前記選択されたページアドレスレ
ジスタのページポインタを前記ぺ一ジアドレス用オフセ
ットレジスタのオフセット値を用いて更新するように制
御することを特徴とする二次元配列型メモリシステムを
開示する。更に本発明は、二次元配列型メモリシステム
において、前記コラムアドレスコントローラはCPUか
らオフセット値が設定可能なコラムアドレス用オフセッ
トレジスタを有し、前記コラムアドレス用モードレジス
タに格納された前記モード情報による指示があったとき
には、前記コラムアドレス用制御部は前記コラムアドレ
ス用カウン夕により前記選択されたコラムアドレスレジ
スタのコラムポインタを前記コラムアドレス用オフセッ
トレジスタのオフセット値を用いて更新するように制御
することを特徹とする二次元配列型メモリシステムを開
示する。
【0008】
【実施例】以下、本発明を実施例により詳細に説明す
る。図1は本発明の二次元配列メモリシステムの一実施
例を示すブロック図で、1つの中央処理装置(以下CP
Uと略記する)1013に対して2つのアクセス制御部100
3、1004と、これらに制御される2つのメモリアレイ100
1、1002が設けられている。本実施例ではメモリアレイ1
001、1002の一方は命令コ−ドデ−タ用メモリシステム
(CDRAM)として、他方はオペランドデ−タ用メモ
リシステム(DDRAM)として用いられる(どちらが
どの用途に用いられてもよい)。個々のメモリアレイ
は、特願昭63-7145号及び特願平1-71723号に示されてい
るように、ダイナミックメモリ素子を用い、ペ−ジング
インタ−リ−ブアクセス方式で管理される。各アクセス
制御部は、ペ−ジアドレスコントロ−ラ(PACTL、
以下PAコントローラという)1009とコラムアドレスコ
ントロ−ラ(CACTL、以下CAコントローラとい
う)1010の2つのアクセス管理ユニットからなり、メイ
ンCPU部から制御信号、アドレス信号及びデ−タ信号
を受け取り、対応メモリアレイのアドレスを制御する。
このアドレスは各メモリアレイの二次元配列に対応し
て、ページアドレス(行方向のアドレス)を与えるペー
ジポインタと、コラムアドレス(列方向のアドレス)を
与えるコラムポインタの組である。
【0009】図2はメモリアレイ1個分の構成を示すも
のである。バンク0〜nから成り、各バンクは32ビッ
トのデータを1データとした場合、コラムポインタとし
て2048個、ページポインタとして4096個の合計2048×40
96のアドレスを有する二次元配列メモリである。これは
32Mバイトの容量である。このメモリアレイに於て、
ベクトルデータは図のX0VEC0、Yj+2VEC0 等の
ように、コラムポインタまたはページポインタの方向の
隣接データの組で記憶され、行列データは図のX1MA
T0 等のようにコラムポインタ、ページポインタ両方向
の矩形領域に記憶される。このようにして、メモリデー
タマトリックス上にベクトル(XmVECn)やマトリッ
クス(XmMATn)を定義していく。そしてこれらのベ
クトル、マトリックスの先頭を示すページポインタm、
コラムポインタnの組(m、n)で、それらの多次元変
数の属性(配列名に相当する)を表現している。ここ
で、先頭データのポインタとする横方向のベクトルをX
mVECn、縦方向のベクトルをYmVECn、そしてマト
リックスをXmMATnと表現している。
【0010】本実施例の概略動作を、アクセス制御部10
03を例として次に説明する。図1に於て、メインCPU
部1013は、配列デ−タ処理時、例えば、ベクトル演算処
理ル−プの実行時に、前もってそのル−プ管理情報をア
クセス制御部内のPAコントローラ1009及びCAコント
ローラ1010に与え、プログラムしておく。すなわち、メ
インCPU部がメモリアレイをアクセスしていくとき、
ポインタm及びnがどの様に更新されていくべきかとい
う情報と配列デ−タの先頭ポインタの値とを、デ−タバ
ス(DATA)1014又はアドレスバス(ADDR)1015
を介してPAコントローラ1009及びCAコントローラ10
10内にセットしておく。又、メモリアレイをアクセスす
るときのアドレッシング処理として、ポインタを次の値
に更新すべきか否か、更新すべき値は現在のポインタに
オフセットを加算したものかそれともインクリメント又
はデクリメントしたデ−タか、等の情報を予めプログラ
ムしておき、デフォ−ルトアドレッシングとして実行さ
せたり、メインCPU部1013がアクセス命令を用いてデ
−タアクセス時に直接指令し、アクセス動作と並行にア
ドレッシング処理を実行させることが出来る。これらの
アドレッシング処理は、PAコントローラ1009内のペー
ジアドレスカウンタ(PACNT、以下PAカウンタと
いう)1016及びCAコントローラ1010内のコラムアドレ
スカウンタ(CACNT、以下CAカウンタという)10
18によって、ポインタm及びnに対してそれぞれ独立並
行に処理される。これによって、2つのポインタを自動
的に制御し、従来CPU内で実行していた複雑なアドレ
ッシング処理をCPUのアクセス動作と並列に実行し
て、アクセス効率を向上させる役割を果たす。
【0011】PAコントローラ1009で生成されたページ
アドレスデ−タ(OPA)1017は、メモリアレイシステ
ム1001の上位アドレスとして一度CAコントローラ1010
へ送られた後、ここで生成された下位アドレスに相当す
るコラムアドレスデ−タ(OCA)1025とともにアドレ
スラッチ(AL)1019にラッチされ、全体のアドレスデ
−タが生成される。ページアドレスデ−タ1017を物理的
に直接メモリアレイシステム1001に与えることも可能で
あるが、メインCPU部1013からの物理アドレスそのも
のを透過して出力するモ−ドもアクセス制御部内1003に
備えているため、メモリアレイシステム1001から見たア
ドレス情報の性質や出力タイミングが各条件で同等にな
る様にするために、上記のようにページアドレスデータ
を一旦CAコントローラ1010へ入力してタイミング調整
を行っている。CAコントローラ1010は、メインCPU
部1013のメモリアレイ1001に対するアクセス動作に直接
呼応した形で、ページポインタ1005、コラムポインタ10
07と制御情報1020,1021(読み出し情報、書き込み情
報、アドレスストロ−ブ等)をメモリアレイシステム10
01へ出力する。メモリアレイシステム1001は、それらの
アクセス情報に応答して、メインCPU部1013に対し必
要なデ−タの出力を実行する。
【0012】このように、本実施例では、従来CPUで
実行していた複雑なアドレッシング処理を、アクセス制
御部でCPUとは独立に実行することにより、アクセス
動作の高速化、CPUのオーバヘッドの軽減を図ってい
る。図1に示した二次元配列メモリシステムのうち、ア
クセス制御部に相当する部分を将来CPUの機能の一つ
としてCPU内に集積することも可能である(LSIの
集積度が向上すれば1チップCPU内にその機能を集積
することもできるようになる)。ただし、通常のリニア
アクセスを必要とする他のサブシステムやリソースへの
アクセスに、別のバスシステムを用意する必要が生じる
可能性がある。その場合、LSI化されたCPUでは入
出力ピン数が増加する。しかし、配列メモリシステムへ
のアクセスと他のサブシステム、リソースへのアクセス
とを並列に実行できるようにCPUを設計することも可
能となり、より高速化が図れる可能性もある。
【0013】次に、本実施例の各部の構成と動作を詳し
く説明する。まず、ペ−ジポインタの管理制御部である
PAコントローラ1009は、図1に示したように、CPU
部1013からの命令やアクセス動作情報をデコ−ドし、自
身へのコマンドが生成されているか否かを解析するデコ
−ダ(DEC)1022と、CPUのアクセス動作に呼応し
て内部で使用する様々な制御信号(コマンド、ラッチト
リガ等)やクロック信号を生成するマシンステ−トコン
トローラ(MSC)1023と、ペ−ジアドレスレジスタ
(PAREG、以下PAレジスタという)8個を1セッ
トとして計8セット分準備したペ−ジアドレスレジスタ
ファイル(PAREGF)1011と、PAレジスタのアド
レッシング演算(加算インクリメント、デクリメント)
処理を実行してその値を適切な値に更新するペ−ジカウ
ンタ(PACNT、以下PAカウンタという)1016とか
ら成る。PAレジスタへの値の設定は、アドレスバスA
DDR1015コントロ−ルバス(CTL)1024によって送
られてくる設定コマンドに呼応して、マシンステートコ
ントローラ1023がメインCPU部1013からデ−タバス10
14により送られてくるペ−ジデ−タを書き込むことによ
り行われる。
【0014】PAレジスタファイル(PAREGF)10
11の構造及びPAカウンタ(PACNT)1016の構造
は、後述の図3に示したコラムアドレスレジスタファイ
ル(CAREGF、以下CAレジスタファイルという)
及び図4に示したコラムアドレスカウンタ(CACN
T、以下CAカウンタという)と、一部を除いてほぼ同
じ構造である。そこで詳しい説明は後のCAコントロー
ラのところで述べることとし、ここでは簡単に説明して
おく。PAレジスタファイル1011は、8つのペ−ジアド
レスレジスタ(PAREG、以下、PAレジスタとい
う)を一組のバンクとし、そのバンクを8セット設けて
構成している。8つのPAレジスタのうちいずれを選択
するかを決める値をスタックアドレスと呼び、8セット
のバンクのうちいずれを選択するか決める値をバンクア
ドレスと呼んでいる。この2つのアドレス値は、スタッ
クアドレスカウンタとバンクアドレスカウンタによって
それぞれ生成される。スタックアドレスとバンクアドレ
スにより、使用すべき1つのPAレジスタが選択され、
そのPAレジスタの値に基づいてペ−ジポインタが決定
される。
【0015】PAカウンタ(PACNT)1016は、選択
されたPAレジスタに対し、指定されたアドレッシング
処理を施す機能を有する。基本的なアドレッシング処理
には、
【数1】PAREG←PAREG+OFFSET、PA
REG←PAREG+1、 PAREG←PAREG−1 、PAREG変
化無し、 の4つがある。OFFSET値は、通常各PAレジスタ
バンクセットに対応して1つずつ設けられたオフセット
レジスタの値が用いられるが、メインCPU部1013から
直接即値(イミ−ディエイトデ−タ)として与えること
もできる。
【0016】以上のようなPAコントローラの構成にお
いて、バンクアドレスカウンタを操作することにより、
ベクトル処理時のル−プネストの管理や、同レベルのル
−プ内に複数のページポインタ変数を必要とする複雑な
ル−プ処理の管理を実現する。この操作を実行する命令
をインクリメントスタックポイント(Increment Stack
Point)、デクリメントスタックポイント(Decrement St
ack Point)と称し、メインCPU部1013は、ル−プ処
理内でこれらの命令を用いてペ−ジポインタを切り換え
ることにより、複数のポインタ変数を管理できる。また
スタックカウンタの操作命令とメインCPU部1013から
PAレジスタへのデ−タロ−ド又はデ−タストア操作と
を組み合わせて同時に実行する命令も用意されている。
【0017】図5はPAコントローラ1009に用意されて
いる基本命令を示している。WTCD0、1、3、6と
RDCD0、1、3、6が、PAレジスタ(PARE
G)へのデ−タロ−ド、ストアおよびスタックアドレス
の変更に関する命令であり、WTCD5、7とRDCD
5、7がバンクアドレスの変更に関する命令である。こ
の図5に示した命令のアセンブリ言語におけるインプリ
メンテ−ション方法と、アセンブリ言語を用いたアプリ
ケ−ションソフトウェアの記述方法については、後に詳
述する。
【0018】一方、CAポインタの管理制御部(CAコ
ントローラ)1010は、PAコントローラ1009と同様に、
CPU部1013からの命令やアクセス動作情報及びアクセ
ス動作そのものに呼応して動作する。それらの情報をデ
コ−ドするデコ−ド回路(DEC)1026とCPUのアク
セス動作に呼応して内部で使用する様々な制御信号(コ
マンド、ラッチトリガ等)やクロック信号を生成するマ
シンステ−トコントローラ(MSC)1027と、コラムア
ドレスレジスタ(CAREG、以下CAレジスタとい
う)を8レジスタ分で1セットとして計8セット分準備
したコラムアドレスレジスタファイル(CAREGF、
以下CAレジスタファイルという)1012と、CAレジス
タのアドレッシング演算(加算、インクリメント、デク
リメント)処理を実行してCAレジスタの値を適切なC
Aポイントデ−タ値に更新するCAカウンタ(CACN
T)1018、及びPAコントローラ1009から送られて来た
ページポイントデ−タと、CAコントローラ1010内で生
成されたCAポイントデ−タを合成し、メモリアレイシ
ステムに与えるべきアドレスデ−タを生成するアドレス
ラッチ(AL)1019とから構成される。
【0019】このCAコントローラ1010の基本的な動作
は、PAコントローラ1009と多くの部分で同じである
が、その基本命令の指令にメインCPU部1013からアド
レスバス(ADDR)1015とコントロ−ル信号(CT
L)1024を用いている。これは、メインCPU部1013の
デ−タバス(DATA)1014を実デ−タ(メインCPU
部1013の処理対象デ−タ)の転送処理にアサインするこ
とにより、CAコントローラ1010への命令指令処理とメ
モリアレイへのアクセス処理とを並行動作させて、アク
セスオ−バ−ヘッドをできるだけ減らすためである。ま
た、コラムポインタ1007はメインCPU部1013からラン
ダムにアクセスされる可能性も高く、アドレッシング処
理を高効率化しておく必要がある。特に、メインCPU
部1013がメモリデ−タをアクセスする際、同時にアドレ
ッシングモ−ドを指定する機能は重要であり、それらを
実現する命令をアクセスインストラクション(Access
Instruction)と呼んでいる。アクセスインストラクシ
ョンを利用してアクセス動作を行えば、通常のアクセス
オ−バ−ヘッドでその時点のポインタの指し示すメモリ
アドレスのデ−タにアクセスでき、それと同時並行して
次にアクセスすべきアドレス値に相当するポインタをC
Aコントローラ1010内のCAカウンタ1018が計算してお
いて、アクセスが終了するとすぐに現在指定されている
CAレジスタ1012の内容をその値に更新する。
【0020】図3は、CAレジスタファイル(CARE
GF)1012の構成を示したものである。前述したPAレ
ジスタファイル1011もこれとほぼ同じ構成で、ここでの
説明においてコラムアドレス(CA)をページアドレス
(PA)に置き換えれば、対応する部分についてはその
ままPAレジスタファイルの説明になる。図3におい
て、CAレジスタファイル1012は、8つのCAレジスタ
(CAREG)セット2003〜2010と8つのオフセットレ
ジスタセット(OFFSETREG)2022〜2029を有
し、対応する(図3で左右に位置する)CAレジスタセ
ット1つとオフセットレジスタ1つからなる1組は、ま
とめてレジスタバンク(レジスタバンク0〜7)と呼ば
れる。さらに1つのCAレジスタセットは8つのCAレ
ジスタ(REG0〜REG7)2012〜2019で構成され
る。CAポインタは、1つのレジスタバンクを構成する
CAレジスタセット及びオフセットレジスタから出力さ
れるコラムアドレス(CADDR)10201とオフセット
(OFFSETADDR)10202とを、図1のCAカウ
ンタ1018で加算することにより得られる。そして通常の
使用法として、1つの演算ル−プ又は1つの演算タスク
(又はジョブ)に、1つのCAレジスタセットが割り付
けられる。その中で実行される複数のル−プ又は多重ル
−プを構成する個々のル−プ処理は、当該CAレジスタ
セット内の1つ又は数個のCAレジスタを用いて管理さ
れる。各CAレジスタセット内の8つのレジスタの選択
は、レジスタ選択回路(REGSELCTL)2037内の
スタックアドレスカウンタ(STACKADDRCOU
NTER)2036から出力されるスタックアドレス(SA
DDR)10203 を、各CAレジスタセット内のデコ−ダ
回路(DEC)2011がデコ−ドすることにより行う。ま
た、レジスタバンク0〜7の選択は、レジスタ選択回路
内2037のバンクアドレスカウンタ(BANKADDRC
OUNTER)2039から出力されるバンクアドレス(B
ADDR)10204を用いて行う。スタックアドレスカウ
ンタ2036内には、当該レジスタバンクに対応する8つの
スタックアドレスが内蔵されており、バンクアドレス10
204が切り替わるとスタックアドレス10203もそのレジス
タバンクに対応するものに切り替えられる。スタックア
ドレスカウンタ2036はその時選択されているスタックポ
インタを増減させることにより、その時選択されている
レジスタバンク内のCAレジスタの選択(PUSH、P
OP機能に相当する)処理をSADDRl0203信号を介
して指示する。
【0021】レジスタバンク0〜7の選択には、CAレ
ジスタセット2003〜2010の選択とオフセットレジスタの
選択が必要である。このうち、CAレジスタセットの選
択は、そのレジスタセットへのライト時にはライト処理
用のデコ−ダ(DEC forWT)2001がバンクアドレス
10204をデコ−ドして書き込み対象のCAレジスタセッ
トを指定し、そのCAレジスタセットからのリ−ド時に
は、コラムアドレス(CA)10205〜10212選択用のマル
チプレクサ(MUX)2021の選択入力Sをバンクアドレ
ス10204で指令することにより行う。一方、オフセット
レジスタセットの選択は、オフセットデ−タ(OFFS
ET)10213〜10220及びモ−ドデ−タ(MD)10221〜1
0228の読み出しを指令するマルチプレクサ(MUX)20
35の選択入力Sを、バンクアドレス10204で指令するこ
とにより行う。
【0022】オフセットレジスタ2022〜2029の各々は、
2つのテンポラリオフセットレジスタ(TOFFSET
H)2030 及びTOFFSETLRG2031と、モ−ドレ
ジスタ(MODERG)2032を有している。オフセット
デ−タは、対応するCAレジスタセット内の選択された
CAレジスタのデータの内のオフセットフィ−ルドの値
(OFFSETL)10229と、テンポラリオフセットレ
ジスタ(TOFFSETH)2030とで
【数2】 OFFSET=TOFFSETH:OFFSETL として構成されるか、2つのテンポラリオフセットレジ
スタにより
【数3】OFFSET=TOFFSETH:TOFFS
ETLRG として構成されるかを、マルチプレクサ(MUX)2034
で選択できる。この様にして構成されたオフセットデ−
タ10213〜10220の1つが当該オフセットレジスタの出力
値として定義され、それがマルチプレクサ2035で選択さ
れてオフセットアドレス10237となり、さらにマルチプ
レクサ2052経由でオフセットアドレス(OFFSETA
DDR)10202としてCAカウンタ1018へ送られる。ま
たこのオフセットアドレス10202は、メインCPU部か
らのアドレス入力(IADDR)10230により直接指定
することができる。即ち、マシンステートコントローラ
1027からの制御信号(ICTL)10231により外部指定
モ−ドが指令されると、レジスタ選択回路2037がマルチ
プレクサ(MUX)2052の選択入力Sを操作し、IAD
DR10230の値をオフセットアドレス10202として直接C
Aカウンタ1018へ送る。各オフセットレジスタ内に1つ
ずつ設けられたモードレジスタ(MODERG)2032
は、後述するように、当該CAレジスタが使用されてい
る時の各種の動作モ−ド(アクセスモ−ド 、アドレッ
シングモ−ド等)を規定するのに用いられる。このレジ
スタ2032のデ−タは、マルチプレクサ(MUX)2035、
その情報に基づいて、レジスタ選択回路(RGSELC
TL)2037はメインCPU部1013のアクセス動作に呼応
した適切なステ−トを生成する。
【0023】以上のバンクレジスタの他に、メインCP
U部1013からIADDR10230を介して指令された一時
的なデ−タをコラムアドレス10201として用いることが
できる様に、テンポラリアドレスレジスタ(TADDR
REG)2051を設けている。また、現在のコラムアドレ
ス10201の値、すなわち、現在選択されているCAレジ
スタ又はテンポラリアドレスレジスタを一時的に別の用
途に用いたい時、その値を一時的にコピ−しておき、後
でコピ−しておいたデ−タを復帰して処理が進められる
様に、一時記憶用の8つのテンポラリレジスタ(TRE
G0〜TREG7)2041〜2048を備えている。このテン
ポラリレジスタの操作命令として、任意のテンポラリレ
ジスタと現在選択されているCAレジスタ間のロ−ド・
ストア命令や任意のTREGと現在選択されているCA
REGの内容を交換するEXCHANGE命令を設けて
いる。テンポラリレジスタのオペレ−ションに関するこ
れらの命令もメインCPU部1013によって指令され、レ
ジスタ選択回路2037が必要なステ−トを生成して実行す
る。
【0024】CAレジスタは、そのすべてのステ−トを
レジスタ選択回路2037により管理されている。レジスタ
選択2037は、メインCPU部1013の動作をモニタしてい
るマシンステ−トコントロ−ラ1027からの制御信号(I
CTL)10231と、メインCPU部1013からのアドレス
入力(IADDR)10230及びモ−ドレジスタからのM
ODE情報とを総合して、CAレジスタファイル1012の
ステ−トを決定する。また、メインCPU部1013のメモ
リアレイへのアクセス動作に呼応して、アドレッシング
処理操作を含む必要なシ−ケンスを生成する。以下にレ
ジスタ選択回路2037の機能をまとめてみる。 (1)マシンステ−トコントロ−ラ(MSC)1027の情
報と、CPUからのアドレス入力IADDR10230の情
報を基に、メインCPU部1013のメモリアレイへのアク
セス動作をモニタし、そのアクセス動作に呼応して各ス
イッチ信号(MUXの選択信号)やレジスタファイルへ
の書き込み信号WT及び各デコ−ダへのアドレス信号を
出力する。 (2)メインCPU部1013からの命令のデコ−ドをアド
レス入力(IADDR)10230とマシンステートコント
ローラ1027からの制御信号(ICTL)10231を用いて
レジスタ選択内2037のデコード回路で行い、自身への指
令を識別して対応する処理を実行する。 (3)スタックアドレスカウンタ2036やバンクアドレス
カウンタ2039を管理し、CAレジスタセット内のレジス
タ(REGn)を選択するスタックアドレス10203及び
使用するCAレジスタセット及びオフセットレジスタを
選択するバンクアドレス10204 を生成する。 (4)テンポラリレジスタ(TREG)ファイルの選択
信号S及び選択されたTREGnへのデ−タ(ID)の
書き込み信号WTと読み出すべきTREGの選択信号S
を出力する。上記2つの選択信号は同時に生成すること
も可能である(EXCHANGE命令等に使用する)。
これらの信号出力を用いて、任意のTREGに対するロ
−ド・ストア、EXCHANGE命令を実行する。 (5)デ−タの流れを制御するためのマルチプレクサ
(MUX)の制御に関しては、次の機能を規定する。 (a)CAレジスタセットへのデ−タの入力(ID)
に、外部アドレスデ−タ(IADDR)10230を用いる
か、テンポラリレジスタ2041〜2048からのデ−タを用い
るか、CAカウンタでアドレッシング演算処理を加えた
後のデ−タIRADDR10232を用いるかを選択する。 (b)どのCAレジスタセット及びオフセットレジスタ
セットを使用するかを選択する。 (c)コラムアドレス10201として、現在使用されてい
るCAレジスタ10235の値を用いるか、テンポラリアド
レスレジスタ10236の値を用いるかを選択する 。 (d)オフセットアドレス10202として、現在選択され
ているオフセットレジスタの出力10237の値を用いる
か、外部アドレスデ−タ(IADDR)10230を用いる
かを選択する。 (6)CAカウンタ1018への制御信号及び選択信号(こ
れらをまとめてOCTL10234としている)を出力す
る。 (7)スタックアドレスカウンタ2036が増減(INC/
DEC)処理を行う対象となるスタックアドレスを、バ
ンクアドレスカウンタ2039からのバンクアドレス10204
を用いて、対応するバンクレジスタセットに対応する様
に決定する。 (8)CAカウンタ1018からのアドレッシング演算処理
後のリタ−ンアドレスデ−タ(IRA)10232を、CA
レジスタに入力するモ−ドにマルチプレクサ(MUX)
2002を設定し、メインCPU部1013からメモリアレイ10
01への現在のアクセス動作が終了したら、直ちにIRA
10232を選択されているCAレジスタに書き込む。これ
により、CAカウンタ1018によるオフセット加算を伴っ
たベクトル型のアドレッシング処理(CAREG=CA
REG+OFFSET)を実行する。
【0025】次に、図4にCAカウンタ(CACNT)
1018内のブロックダイヤグラムを示す。(PAカウンタ
も同様である)このカウンタは、基本的に、CAレジス
タファイル1012から送られて来たコラムアドレス10304
とオフセットアドレス10306を加算するか、又はコラム
アドレス10304に+1(INCREMENT)又は−1
(DECREMENT)を加算してコラムアクセスアド
レス(CADDR)を生成する。その制御信号として
は、CAレジスタファイル1012内のレジスタ選択回路20
37から出力されるOCTL10234を受けたICTLA制
御信号10305と、マシンステ−トコントロ−ラ(MS
C)1027から直接出力されるICTLB制御信号バス10
308とを用いる。主に、ICTLA10305はCAカウンタ
1018のステ−ト(マルチプレクスの選択状態、アドレッ
シングモ−ドの選択状態を規定する)を規定し、ICT
LB10308はCAカウンタ1018の動作するタイミングを
規定する。動作は以下のとおりである。
【0026】まず、加算器(ADDER)3002は、Aに
入力された被加算デ−タ(ADAT)10304と、Bに入
力されたアドレ スオフセット値とを加算し、結果10313
を出力(OUT)する。アドレスオフセット値10312
は、CAレジスタファイル1012からのオフセットアドレ
スを受けたBDAT10306 と、INC/DEC回路3003
からのデ−タ(1 for INC、−1 for DEC)とを
マルチプレクサ(MUX)3001によって切り換えて用い
る。加算器3002からの出力10313とCAレジスタファイ
ル1012からのコラムアドレスそのものの値(ADAT)
10304と外部からの直接アドレスデ−タ(ADDR)103
01の内1つをマルチプレクサ3004で選択して、最終的な
コラムアクセスアドレス(CAADDR)10314の値を
決定する。この決定された値は、CAレジスタファイル
1012のIRADDR(IRA)10314入力に戻ると共
に、アドレスラッチ(AL)1019にラッチされる。アド
レスラッチ1019は、PAコントローラ1009から送られて
きたペ−ジアドレスデ−タ(IPA)10310もCAAD
DR10314をラッチするタイミングと同じタイミングで
ラッチし、メモリアレイに与える全体アドレスOPAD
DR10316:OCADDR10315を生成する。アドレスラ
ッチ1019へのラッチのタイミングは、マシンステートコ
ントローラ1027からのラッチコントロ−ル(CTL)10
309 にて適切に行われる。これにより、外部のメモリシ
ステムからみると、一連のメモリアドレス信号がメイン
CPU部1013から直接送られて来たアドレス信号の様に
観測される。メインCPU部1013からのアドレス信号を
直接OCADDR10315として用いる場合は、マルチプ
レクサ3004が外部アドレス(ADDR)10301を選択す
るように選択信号Sをセッティングすれば良い。
【0027】INC/DEC3003回路は、前述した様
に、アドレスオフセット値に1又は−1を与えることに
より、インクリメントアドレッシング又はデクリメント
アドレッシングを加算器3002に指令する。INC/DE
C回路3003への指令は、CAレジスタファイル1012内の
レジスタ選択回路2037からの選択信号10305 によるモ−
ド切り換え(INCモ−ドかDECモ−ドかを決める)
と、マシンステートコントローラ1027からのタイミング
信号10308により行う。
【0028】これらのCAカウンタによるアドレッシン
グ処理のモ−ド指定には、CAレジスタファイル1012内
のモ−ドレジスタによってアドレッシングモ−ドを予め
選択しておく方式と、アクセス命令が指令されたときに
メモリアレイへのアクセスと同時にアドレッシングモ−
ドを選択する方式とがある。処理されたアドレスをアド
レスラッチ1019にラッチするタイミングは、メインCP
U部1013によりメモリアレイ1001へのアクセス動作が実
行された直後である。
【0029】図11は、CAコントローラ1010に用意さ
れている基本命令セットを示している。PAコントロー
ラ1009とほぼ同じ構成を採っているが、テンポラリレジ
スタ操作命令やCAレジスタへのデ−タPUSH/PO
P命令とアドレッシング処理を組み合わせて一度に実行
する命令等を追加している。また、図5に示したような
デ−タアクセスとモ−ド選択を含めたアドレッシング処
理とを組み合わせて一命令で実行するダイレクトアクセ
ス命令も備えている。CAコントローラ1010命令の詳し
い説明と、アセンブリ言語におけるインプリメンテ−シ
ョン方法と、アプリケ−ションソフトウェアの記述方法
については以下で述べる。
【0030】二次元配列メモリシステムは、メインCP
U部からアクセス制御部への指令により、メインCPU
部からメモリアレイへの様々なベクトルタイプアクセス
機能と通常のスカラタイプランダムアクセス機能の双方
をサポ−トする。このうち、前述のように、アクセス制
御部のハ−ドウェア機能が有効に活用されるのは、ベク
トルタイプのアクセスを実行した場合である。これらの
機能を具体化する命令セットは、メインCPU部からみ
ると自身の命令セットの一部に組み込まれた形で、通常
のメインCPU部の命令と混在してプログラム上で用い
ることができる。全ての二次元配列メモリシステムオペ
レ−ション命令は、メインCPU部と特定のアドレス領
域との間のデ−タ転送命令(MOV命令等)で置き換え
て、メインCPU部のほかの命令セットと一体化してい
る。従って、通常のデ−タ転送命令のように、リソ−ス
とレジスタ間のデ−タ移動しか機能として実現しないの
と異なり、本システムではそれに加えてアドレス線又は
デ−タ線で指令された特定の機能(二次元配列メモリシ
ステムの機能)を実現する。
【0031】命令セットは、1つのアクセス制御部内で
PAコントローラに対するものとCAコントローラに対
するものとの2組備えられている。また、システム内に
存在するアクセス制御部のユニット数の分だけ独立に命
令セットを備えることになる。本システムの場合、アク
セス制御部1003及び1004に対して独立に命令を発行する
ことが出来る。以下にその詳細を命令セット表を用いて
説明する。
【0032】まず、PAコントローラに対する命令セッ
トとアセンブリ言語へのインプリメンテ−ションについ
て述べる。PAコントローラは、二次元配列A(m、
n)の列方向パラメ−タm(ページポインタ)をコント
ロ−ルする。PAレジスタセット及びオフセットレジス
タセットの構成と、バンクレジスタのセット数等はCA
コントローラと同様だが、テンポラリレジスタファイル
は現在のところ備えていない。ハ−ドウェア機能が、C
Aコントローラと比べて少ないのは、CAコントローラ
による行方向パラメ−タn(コラムポインタ)と比べ
て、一般に列方向パラメ−タはより外側のル−プ(ネス
トの浅い側のル−プ)を管理するため、行方向のパラメ
−タを制御するオ−バ−ヘッドに比してそのオ−バ−ヘ
ッドは全体の処理時間に対し十分小さいと考えられるか
らである。そのため、命令セットも後述するCAコント
ローラの命令セットに比べて縮小されており、よりコン
パクトになっている。また、メインCPU部によるアク
セス動作と並行にアドレッシングモ−ドの選択を含めた
アドレッシング処理を一命令で実現するダイレクトアク
セス命令もPAコントローラには備えていない。メイン
CPU部からメモリアレイへのアクセス動作は、まずC
Aコントローラ側で管理して、必要に応じPAコントロ
ーラを起動させるための信号(OPGCAS)によって
PAコントローラに列方向パラメ−タのアドレッシング
処理を指令する。従って、基本的なメモリアレイへのア
クセス管理はCAコントローラ側で行っていることにな
り、そのスレ−ブユニットとしてPAコントローラが動
作する。
【0033】図5は前述したPAコントローラの基本命
令セットである。基本的な命令の指定は、PAコントロ
ーラがアサインされているアドレスのデコ−ド情報CS
N、バイトアクセスイネ−ブルBE1N〜BE3N、ラ
イト/リ−ド指定信号W/Rとで行う。命令の機能で分
類すると次の様になる。 (PA1)PAレジスタ(PAREG)操作命令 WTCD1----外部からPAレジスタへのデ−タ(D
T)ロ−ド WTCD0----PAレジスタのスタックポインタをイン
クリメントした後、外部からPAレジスタへのデ−タ
(DT)ロ−ド RDCD1----PAレジスタのスタックポインタをデク
リメントした後、PAレジスタから外部へのデ−タ(D
T)ストア (PA2)オフセットレジスタ(OFFSETREG)
操作命令 WTCD4----外部からオフセットレジスタへのデ−タ
(DT)ロ−ド RDCD4----オフセットレジスタから外部へのデ−タ
(DT)ストア (PA3)スタックポインタ(スタックアドレスカウン
タの値)操作命令 WTCD3----外部からスタックポインタへのデ−タ
(DT)ロ−ド RDCD3----スタックポインタから外部へのデ−タ
(DT)ストア (PA4)バンクポインタ(バンクアドレスカウンタの
値)或いはモ−ドレジスタ操作命令(ここでのD22,D2
3については図6で説明する)。 WTCD5----外部からバンクポインタへのデ−タ(D
T)ロ−ド〈D22=0、D23=0〉 RDCD5----バンクポインタから外部へのデ−タ(D
T)ストア MODE------モ−ドセット〈D22=1、D23=0〉、
(このモードセット命令によってセットされるモードビ
ットの働きについては、図7、図8に示した通りであ
る。) (WTCD5) 外部アドレスセット〈D22=0、D23
=1〉、 ソフトウェアリセット〈D22=1、D23=1〉 (PA5)スタックポインタインクリメント(PUS
H)、デクリメント(POP)命令 WTCD6----STACK POINT(SP)=SP
+1(PAREG PUSH、INCrement) RDCD6----STACK POINT(SP)=SP
−1(PAREG POP、DECrement) (PA6)バンクポインタインクリメント(PUS
H)、デクリメント(POP)命令 WTCD7----BANK POINT(BP)=BP+
1(BANK PUSH、INCrement) RDCD7----BANK POINT(BP)=BP−
1(BANK POP、DECrement)
【0034】図6は、命令WTCD5とRDCD5の場
合のモ−ドセレクションを示している。デ−タバス(D
ATA)の中のD22、D23bitを用いて4種類のライト
コマンドWTCD5を選択できる。リ−ドコマンドRD
CD5を発行した場合には常にバンクアドレスの現在の
値を読み出すことが出来る。上記の命令(PA1)〜
(PA6)の中で、外部とデ−タ(DT)をやりとりす
る必要のある命令は、メインCPU部との間のデ−タバ
ス(DATA)を介して必要なデ−タ(DT)の通信を
行う。このとき、有効なデ−タバス上のバイトを示すバ
イトイネ−ブル/BEn(本システムでは32bitバスを
前提としているので、4バイト分のバイトイ ネ−ブル
/BE0〜/BE3が存在する)がアクティブ(0)で
あるバイトが、PAコントローラとのデ−タ入出力にお
いて有効なデ−タを保持している。しかし、上述したよ
うに、図6に示したモ−ドセレクションに関しては、デ
−タビットD22、D23を機能選択信号として使用するた
め、有効なデ−タビットはD16〜D21の5bitとであ
る。D16をbit0としD21をbit5として、モ−ドレジス
タのセット命令(Set Operation Mode D22=1、
D23=0)発行時に定義される機能を図7に示す。この
命令により各種のアドレッシングモ−ド及び機能が定義
され、メインCPU部がメモリアレイへアクセスした
際、CAコントローラからのPGCAS信号に呼応した
形で、指定した機能が実行される。
【0035】図8に、モ−ドレジスタ2032(図3)の各
モ−ドビットの指定によって、PAレジスタをデスティ
ネ−ションレジスタとしたアドレッシング処理が、メイ
ンCPU部のアクセスに呼応してどの様に実行されるか
を示した。メインCPU部がメモリアレイへのアクセス
を実行し、かつCAコントローラがPGCAS信号をア
クティブにした時に、指定されたアドレッシング処理が
実行され、PAレジスタの値が更新される場合(Acces
s and PG Change)と、同じ条件の下でPAレジスタ
の値が更新されない場合(Access and PG no Chang
e)との2通りの条件に大別してまとめてある。
【0036】次にPAコントローラ用命令セットのアセ
ンブリ言語へのインプリメンテ−ションであるが、これ
はメインCPU部の形態にかかわらず、すべてデ−タ転
送命令(例えばMOV命令)で置換することができる。
デ−タ転送命令は、どの様なCPUを用いても必ずその
命令セットに存在するところの、CPUの世代や種類を
越えた共通命令である。従って、PAコントローラ用命
令セット(CAコントローラ用命令セットも共通)の移
植性、資産性は非常に高いと言える。
【0037】具体的なアセンブリ言語への命令登録の例
を図9、図10に示す。CPUとしては、インテル社のi8
086CPU又はi80X86CPUを用いた場合を想定してい
る。これらのPAコントローラの命令は、命令がアサイ
ンされているアドレス値を表現するパラメ−タ(アドレ
スラベル)名を命令ニ−モニック(Inst.)に一致さ
せ ることにより表現できる。図9は、基本命令のアセ
ンブリ言語における命令セットモデル(Instruction
Set Model)を示している。実際にプログラムで用い
る時の記述方法は以下の通りである。 PACTLx ES:〔Inst.〕、AX(or AL) for WRITE PACTLx AX(or AL)、ES:〔Inst.〕 for READ ここで、xは複数のPAコントローラを区別するための
パラメ−タであり、本システムではアクセス制御部1003
にx=0を、アクセス制御部1004にx=1をアサインし
ている。一方、図10は、バンクポイント操作命令、モ−
ドビットセット命令及びアクセス命令のアセンブリ言語
におけるパラメ−タセッティングモデルを示している。
命令表現は以下の様になる。 PACTLx ES:〔MDSET〕、Parameter+Data(DT) for WRITE PACTLx ES:〔BPSET〕、Parameter+Data(DT) for WRITE PACTLx AL、ES:〔BPRD〕 for READ アドレスラベルMDSET、BPSET及びBPRD
は、図9のSETMDの値と同じであるが、判り易いニ
−モニックとして便宜的に用いている。MDSETはモ
−ドビットセット命令を、BPSETはベ−スポインタ
セットを、BPRDはベ−スポインタリ−ドをそれぞれ
表現している。
【0038】次にCAコントローラに対する命令セット
とアセンブリ言語へのインプリメンテ−ションについて
説明する。CAコントローラは、二次元配列A(m、
n)の行方向パラメ−タn(コラムポインタ)をコント
ロ−ルする。PAコントローラと異なるのは、命令をア
サインするための特別なアドレスエリアを設けず、その
代わりに、メインCPU部から見たメモリアレイのアサ
インされているアドレス空間にオ−バ−ラップして命令
生成用のアドレス空間をアサインする方式を採ってい
る。この具体的な方法は次のようである。 a)メインCPU部からメモリアレイへのアクセスを、
特定なアドレス領域について、ダブルワ−ド(32bit)
アクセスとワ−ド(16bit)アクセスの2種類に限定す
る。すなわち、その領域におけるメモリアレイへのバイ
トアクセス、ダブルワ−ド境界にまたがるダブルワ−ド
アクセス及びワ−ド境界にまたがるワ−ドアクセスは無
効とし、それらのアクセスモ−ドをCAコントローラへ
の命令としてアサインする。 b)本システムにおいて、a)で述べた特定のアドレス
領域は、バイトアクセス及びダブルワ−ドアクセス時(0
000000000000)2〜(1111111111111)2、すなわち全領域で
あり、ワ−ドアクセス時(1110000000000)2〜(11111111
11111)2である。
【0039】また、内部レジスタへのパラメ−タの設定
もアドレスバス(ADDR)を用いて行い、PAコント
ローラの様に、その書き込まれたデ−タの値又は内部レ
ジスタの状態を直接読み出すことは出来ない(もちろ
ん、回路を工夫すれば可能であるが、内部にテンポラリ
レジスタファイルを備えているためメリットは少ないと
考えている)。この様な命令アサイン方式を用いるメリ
ットは以下のとおりである。 1)命令を指示するのにデ−タバス(DATA)を用い
なくて済むため、メモリアレイとメインCPU部との間
のデ−タバスを用いたタ−ゲットデ−タの転送処理とC
Aコントローラへの命令生成処理とを同時並行して実行
できる。 2)命令アサインのために余分なメモリ空間を消費しな
い。1つのメモリアレイに対して常に1つのCAコント
ローラ用命令セットが対応するので、より多くのメモリ
アレイを設けた場合でも本メリットは常に有効である。
【0040】図11にCAコントローラ用基本命令セッ
トを示す。命令の指定は、アドレスビットA2〜A12、
ライト/リ−ド指定信号W/R及びバイトアクセスイネ
−ブルBE0N〜BE3Nとで行う。対応するメモリア
レイのアサインされているアドレス空間をアクセスして
いる期間CAコントローラへの命令の指定が可能になる
(PAコントローラに命令を指示する際のCSN信号の
役割と等価)。命令の機能を分類すると次の様になる。 (CA1)CAレジスタ(CAREG)操作命令 WTCD0----外部からCAレジスタへのデ−タ(D
T)ロ−ド WTCD1----CAレジスタへのスタックポインタをイ
ンクリメントした後、外部からCAレジスタへのデ−タ
(DT)ロ−ド RDCD0----CAレジスタへのスタックポインタをデ
クリメントした後、外部からCAレジスタへのデ−タ
(DT)ロ−ド RDCD1----外部からの直接デ−タ(Imm.Data)
を現在のCAレジスタ加算し、結果をそのCAレジスタ
へ戻す。 (CA2)オフセットレジスタ(OFFSETREG)
操作命令 WTCD2----外部からオフセットレジスタへのデ−タ
(DT)ロ−ド RDCD2----外部からの直接デ−タ(Imm.Data)
を現在のオフセットレジスタに加算し、結果をそのオフ
セットレジスタへ戻す。 (CA3)スタックポインタ(スタックアドレスカウン
タの値)及びバンクポインタ(バンクアドレスカウンタ
の値)操作命令 WTCD3----外部からスタックポインタへのデ−タ
(DT)ロ−ド RDCD3----外部からバンクポインタへのデ−タ(D
T)ロ−ド (CA4)スタックポインタインクリメント(PUS
H)、デクリメント(POP)命令 WTCD12----STACKPOINT(SP)=SP+
1 RDCD12----STACKPOINT(SP)=SP−
1 (CA5)バンクポインタインクリメント(PUS
H)、デクリメント(POP)命令 WTCD13----BANKPOINT(BP)=BP+1 RDCD13----BANKPOINT(BP)=BP−1 (CA6)モ−ドレジスタ、アドレッシングモ−ド設定
命令 WTCD4----モ−ドレジスタ設定(図12参照) RDCD8----アドレスバス等価モ−ド設定(外部アド
レスをメモリアレイに直接出力) RDCD9----加算アドレスモ−ド設定(CAREG=
CAREG+OFFSETREG) RDCD10----インクリメントアドレスモ−ド設定(C
AREG=CAREG+1) RDCD11----デクリメントアドレスモ−ド設定(CA
REG=CAREG−1) (CA7)システムモ−ド設定命令 WTCD14----テンポラリアドレスレジスタモ−ド設定
(CAレジスタの代わりにテンポラリアドレスレジスタ
を選択) RDCD14----部分リセット(スタックポインタをイニ
シャライズし、デフォルト値をモ−ドレジスタに設定) WTCD15----CAレジスタを変化させないモ−ド(N
o Change Mode)に設定 RDCD15----CAコントローラのソフトウェアキセッ
ト(ハ−ドリセットと同等の機能) (CA8)テンポラリレジスタ操作命令 WTCD16----CAレジスタの内容をテンポラリレジス
タnにストア WTCD17----CAレジスタヘテンポラリレジスタnの
内容をロ−ド WTCD18----CAレジスタの内容とテンポラリレジス
タnの内容とを交換 (CA9)PAコントローラ起動命令、スタック操作付
アドレッシング実行命令 WTCD19----アクティブなPGCAS信号をPAコン
トローラに出力(PAコントローラの起動) RDCD16----SP=SP−1、CAREG=CARE
G+1(CAREG POP and CAREG INC) RDCD17----SP=SP−1、CAREG=CARE
G−1(CAREG POP and CAREG DEC) RDCD18----SP=SP−1、 CAREG=CAREG+OFFSETREG (CAREG POP and CAREG ADD) RDCD19----SP=SP−1、CAREG=CARE
G+Imm. (CAREG POP and CAREG Imm. ADD)
【0041】図12はモ−ドレジスタ設定命令WTCD
4で設定されるモ−ドレジスタの右ビットの機能を示す
ものである。PAコントローラのモ−ドレジスタとほぼ
同じ機能をアサインしている。モ−ドレジスタへ設定さ
れるデ−タは、アドレスビットのA2〜A7(計5bi
t)で指定する。
【0042】CAコントローラにおけるアクセス命令
は、PAコントローラのそれと異なり、メモリアレイへ
のアクセス時にリアルタイムでアドレッシング処理とタ
−ゲットデ−タの入出力とを同時に実行することができ
る。また、PAコントローラの起動トリガ信号であるP
GCAS信号をアクティブにするか否かも同時に指定で
きる。すなわちCAコントローラのアクセス命令によ
り、PAコントローラと連動して、メモリアレイ上の二
次元配列A(m、n)におけるポインタm及びn(ペー
ジポインタ及びコラムポインタ)を同時に制御でき、か
つ並行してデ−タの入出力を実行することができる。
【0043】図13はCAコントローラのサポ−トして
いるアクセス命令セットを示す。アクセスモ−ドとして
ダブルワ−ド(32bit)アクセスとワ−ド(16bit)(上
位ワ−ド、下位ワ−ド)アクセスがあり、アドレッシン
グモ−ドとして加算(CAREG ADDition)、イン
クリメント(CAREG INCrement)、デクリメン
ト(CAREG DECrement )及びゼロ加算(No
Change)がある。PAコントローラを連動させるか否
かはアドレスビットA4指定(A4=0の場合PGCA
S active、A4=1 の場合PGCAS noactive)
し、デ−タの読み出しか書き込みかはW/R信号 で指
定(W/R=0の場合読み出し、W/R=1の場合書き
込み)する。
【0044】CAコントローラ用命令セットのアセンブ
リ言語へのインプリメンテ−ションは、PAコントロー
ラの場合と同様、非常に容易である。PAコントローラ
の場合は、代表ニ−モニックとして”PGCTL”を用
い、命令の機能を表現するニ−モニック”Inst.”はオ
ペランドアドレス指定値(アドレスラベル)そのものを
用いて表現できた。しかし、CAコントローラでは、オ
ペランドアドレス指定値にデ−タフィ−ルドを含むた
め、機能を表現するニ−モニックが代表ニ−モニックと
一致する様にインプリメンテ−ションしている。これに
より、一般的なオペラントアドレス指定値は、その命令
を表現する特定のアドレス値とCAコントローラへ指令
すべきデ−タ値との合計で表現できる。
【0045】図14は、CAコントローラにおけるアセ
ンブリ言語表現の基本命令セットモデルを示している。
PAコントローラの場合と同様、インテル社のi8086、i
80X86系CPUのアセンブリ言語を表現した一例であ
る。複数のCAコントローラを区別するために、メモリ
アレイの先頭アドレスの値を基準アドレス値(CACT
LADDRx)として規定し、それに各命令を表現する
ためのオフセットアドレス値と場合に応じて指定デ−タ
値n*4またはn*16とを加算して、全体のオペラント
アドレス値を決定する。ここで、nの値が本来の指定す
べきデ−タ(DT)に相当し、それに4又は16を掛けた
もの(シフトしたもの)が実際に指定する値(n*4、
n*16)である。本システムの場合2つのメモリアレイ
が存在するため、基準アドレス値CACTLADDRx
は、アクセス制御ユニット1003に対応してCACTLA
DDR0、アクセス制御ユニット1004に対応してCAC
TLADDR1としている。現実の運用では、指定デ−
タ(DT)が存在しない場合にはオペラント部を指定す
る必要はないし、指定デ−タが存在する場合でも、指定
デ−タ以外のオペラントアドレス指定は必要ない。以下
にアセンブリ言語上での実際の記述例を示す。 (ex1)オペランドデ−タが存在する場合 INST.〈ES:CACTLx〉〔n*4〕 INST.〈ES:CACTLx〉〔n*16〕 以上の2つは定数データ指定の場合である。 INST.〈ES:CACTLx〉〔BX(or SI or
DI)〕 これは変数データ指定の場合である。 (ex2)オペランドデ−タが存在しない場合 INST.〈ES:CACTLx〉
【0046】図15に、CAコントローラのモ−ドレジ
スタへのデ−タ(DT)設定におけるパラメ−タモデル
を示す。アセンブリ言語によるモ−ドレジスタへのデ−
タ設定命令表現は以下のとおりである。 SETMD 〈ES:CACTLx、〉AX レジスタデ−タ SETMD 〈ES:CACTLx、〉Imm. 直接デ−タ
【0047】図16は、CAコントローラにおけるアセ
ンブリ言語表現のアクセス命令セットモデルを示してい
る。アセンブリ言語上での実際の記述例は以下のとおり
である。 (ex3)ライトアクセスの場合 INST.〈ES:CACTLx、〉ERX(or RX
or Imm.) (ex2)リ−ドアクセスの場合 INST.ERX(or RX or Imm.)〈、ES:C
ACTLx〉 *ERX ダブルワ−ドレジスタ RX ワ−ドレジスタ
【0048】
【発明の効果】本発明によれば、以下の効果がある。 1.大きなリニアメモリシステムを必要とせず、その操
作はすべてCPUに頼らなくともアドレッシング処理
や、アクセス命令処理ができる。従って、メモリ空間の
管理やアクセス操作をOSやソフトで記述する必要がな
く、汎用性に富みながら、オ−バ−ヘッドを小さくする
ことができる。 2.メモリをアクセスするのに必要な命令数が減少する
ことによって、命令コ−ドを保持するのに多くのメモリ
を必要としない。1デ−タを読み書きする一連の操作が
わずかな命令コ−ド数で済むため、1メモリアクセス当
たりのコストを低くすることができる。 3.上記1.、2.より、コストオリエンテッドな産業
用計算機を設計する際、メモリの占めるコストを最小限
に押さえることができる。 4.命令コ−ド列や配列デ−タ列(ファイルシステム、
数値処理デ−タ、テ−ブル、モデルデ−タ等)等、ベク
トル的に処理できるデ−タがメモリシステムの大半を占
めることを前提として設計しているので、アドレッシン
グ処理等を事前に実行しておくことができるため、アク
セス時に無駄な操作がなくなり、短いアクセス時間で高
速にアクセスすることが可能となる。 5.CPU内でのアドレッシング処理が必要なくなるた
め、アクセス待ちオ−バ−ヘッドが少なくなり、指定し
た(アドレッシングした)デ−タ(オペランドデ−タ)
を素早くCPU内に取り込み、そのデ−タに処理を加え
ることができる。 以上から、CPU側のアクセス効率をより高め、CPU
自体の高速化に寄与できる効果がある。
【図面の簡単な説明】
【図1】本発明の二次元配列メモリシステムの一実施例
を示すブロック図である。
【図2】メモリアレイの1ユニット分の構成説明図であ
る。
【図3】コラムアドレスレジスタファイル(CAREG
F)の構成例を示すブロック図である。
【図4】コラムアドレスカウンタ(CACNT)の構成
例を示すブロック図である。
【図5】PAコントローラの基本命令セットの一覧であ
る。
【図6】PAコントローラ命令WTCD5およびRDC
D5のモード選択コードを示す図である。
【図7】モードレジスタセット命令発行時の機能一覧で
ある。
【図8】モードレジスタの内容に対応するアドレッシン
グ処理を示す図である。
【図9】PAコントローラ基本命令のアセンブリ言語に
おける命令セットモデルを示す図である。
【図10】バンクポイント操作指令、モードビットセッ
ト命令及びアクセス命令のアセンブリ言語におけるパラ
メータセッティングモデルを示す図である。
【図11】CAコントローラの基本命令セットの一覧で
ある。
【図12】モードレジスタの右ビットの機能を示す図で
ある。
【図13】CAコントローラのサポートしているアクセ
ス命令セットを示す図である。
【図14】CAコントローラ基本命令のアセンブリ言語
における命令セットモデルを示す図である。
【図15】CAコントローラのモードレジスタへのデー
タ設定パラメータモデルである。
【図16】CAコントローラにおけるアセンブリ言語表
現のアクセス命令セットモデルである。
【符号の説明】
1001 メモリアレイ 1002 メモリアレイ 1003 アクセス制御部 1004 アクセス制御部 1009 ペ−ジコントロ−ラ 1010 コラムアドレスコントロ−ラ 1011 ページアドレスレジスタファイル 1012 コラムアドレスレジスタファイル 1013 メインCPU部 1018 コラムアドレスカウンタ 1019 アドレスラッチ 1023 マシンステートコントローラ 1027 マシンステ−トコントロ−ラ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 - 12/06

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 ぺ一ジポインタとコラムポインタの組で
    アドレス指定を行うように構成されたメモリアレイと、
    前記ぺ一ジポインタを生成するページアドレスコントロ
    ーラと、前記コラムポインタを生成するコラムアドレス
    コントローラとを備え、CPUとメインバスを介して接
    続されて動作する二次元配列型メモリシステムであっ
    て、 前記ページアドレスコントローラは、 その各々がページポインタを格納する複数のページアド
    レスレジスタと、 このぺージアドレスレジスタに格納されたページポイン
    タの更新方法を示すモード情報を格納するページアドレ
    ス用モードレジスタと、 ぺ一ジアドレスレジスタに格納されたページポインタを
    更新するためのぺ一ジアドレスカウンタと、 CPUからのコマンド入力を解読するためのページアド
    レス用デコーダと、 起動信号が与えられているときにCPUから当該メモリ
    システムに対するアクセスを示すコマンドが入力された
    ときに、そのコマンド入力のタイミングで前記ページア
    ドレス用デコーダにより解読されたコマンドの内容に従
    って前記ページアドレスレジスタを1つ選択し、この選
    択したページアドレスレジスタのぺ一ジポインタが前記
    ページアドレス用モードレジスタに格納されたモード惰
    報に従って前記ペーシアドレスカウンタによって更新さ
    れるように制御する機能を備えたぺ一ジアドレス用制御
    部と、を有し、 前記コラムアドレスコントローラは、 その各々がコラムポインタを格納する複数のコラムアド
    レスレジスタと、 このコラムアドレスレジスタに格納されたコラムポイン
    タの更新方法を示すモード情報を格納するコラムアドレ
    ス用モードレジスタと、 コラムアドレスレジスタに格納されたコラムポインタを
    更新するためのコラムアドレスカウンタと、 CPUからのコマンド入力を解読するためのコラムアド
    レス用デコーダと、 ページポインタおよぴコラムポインタをラッチして前記
    メモリアレイヘ出力するためのラッチ回路と、 CPUから当該メモリシステムに対するアクセスを示す
    コマンドが入力されたときに、そのコマンド入力のタイ
    ミングで前記ラッチ回路にラッチされていたページポイ
    ンタおよぴコラムポインタを前記メモリアレイヘ出力し
    てメモリアレイとCPUとの聞のデータアクセスが行わ
    れるように制御するとともに、前記タイミングと同じタ
    イミングで前記起動信号を前記ぺ一ジアドレスコントロ
    ーラヘ出力し、前記コラムアドレス用デコーダにより解
    読されたコマンドの内容に従って前記コラムアドレスレ
    ジスタを1つ選択し、この選択したコラムアドレスレジ
    スタのコラムポインタが前記コラムアドレス用モードレ
    ジスタに格納されたモード情報に従って前記コラムアド
    レスカウンタによって更新されるように制御し、こうし
    て前記ぺ一ジアドレスコントローラおよぴ当核コマンド
    アドレスコントローラにより更新されたぺ一ジポインタ
    およぴコラムポインタを前記ラッチ回路ヘラツチするよ
    うに制御する機能を加えたコラムアドレス用制御部と、 を有したことを特微とする二次元配列型メモリシステ
    ム。
  2. 【請求項2】 請求項1に記載の二次元配列型メモリシ
    ステムにおいて、前記ぺ一ジアドレスコントローラはC
    PUからオフセット値が設定可能なぺ一ジアドレス用オ
    フセットレジスタを有し、前記ページアドレス用モード
    レジスタに格納された前記モード情報による指示があっ
    たときには、前記ぺ一ジアドレス用制御部は前記ぺ一ジ
    アドレス用カウンタにより前記選択されたページアドレ
    スレジスタのページポインタを前記ぺ一ジアドレス用オ
    フセットレジスタのオフセット値を用いて更新するよう
    に制御することを特徴とする二次元配列型メモリシステ
    ム。
  3. 【請求項3】 請求項1に記載の二次元配列型メモリシ
    ステムにおいて、前記コラムアドレスコントローラはC
    PUからオフセット値が設定可能なコラムアドレス用オ
    フセットレジスタを有し、前記コラムアドレス用モード
    レジスタに格納された前記モード情報による指示があっ
    たときには、前記コラムアドレス用制御部は前記コラム
    アドレス用カウン夕により前記選択されたコラムアドレ
    スレジスタのコラムポインタを前記コラムアドレス用オ
    フセットレジスタのオフセット値を用いて更新するよう
    に制御することを特徹とする二次元配列型メモリシステ
    ム。
  4. 【請求項4】 請求項1に記載の二次元配列型メモリシ
    ステムにおいて、前記ページアドレスレジスタと互いに
    データを転送可能な第1ページアドレス用テンポラリレ
    ジスタを設けたことを特徴とする二次元配列型メモリシ
    ステム。
  5. 【請求項5】 請求項1に記載の二次元配列型メモリシ
    ステムにおいて、前記コラムアドレスコントローラに前
    記コラムアドレスレジスタと互いにデータ転送可能な第
    1コラムアドレス用テンポラリレジスタを設けたことを
    特徴とする二次元配列型メモリシステム。
  6. 【請求項6】 請求項1に記載の二次元配列型メモリシ
    ステムにおいて、前記ページアドレスコントーラに中央
    処理装置から直接アドレス設定可能な第2テンポラリレ
    ジスタとマルチプレクサとを設け、このマルチプレクサ
    により前記選択されたページアドレスレジスタのページ
    ポインタと前記第2テンポラリレジスタに設定されたペ
    ージポインタとを選択して出力するようにしたことを特
    徴とする二次元配列型メモリシステム。
  7. 【請求項7】 請求項1に記載の二次元配列型メモリシ
    ステムにおいて、前記コラムアドレスコントローラに中
    央処理装置から直接アドレス設定可能な第2テンポラリ
    レジスタとマルチプレクサとを設け、このマルチプレク
    サにより前記選択されたコラムアドレスレジスタのコラ
    ムポインタと前記第2テンポラリレジスタに設定された
    コラムポインタとを選択して出力するようにしたことを
    特徴とする二次元配列型メモリシステム。
JP23241692A 1988-03-28 1992-08-31 二次元配列型メモリシステム Expired - Fee Related JP3345050B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP23241692A JP3345050B2 (ja) 1992-08-31 1992-08-31 二次元配列型メモリシステム
US08/113,811 US5724540A (en) 1988-03-28 1993-08-31 Memory system having a column address counter and a page address counter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23241692A JP3345050B2 (ja) 1992-08-31 1992-08-31 二次元配列型メモリシステム

Publications (2)

Publication Number Publication Date
JPH0683696A JPH0683696A (ja) 1994-03-25
JP3345050B2 true JP3345050B2 (ja) 2002-11-18

Family

ID=16938914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23241692A Expired - Fee Related JP3345050B2 (ja) 1988-03-28 1992-08-31 二次元配列型メモリシステム

Country Status (1)

Country Link
JP (1) JP3345050B2 (ja)

Also Published As

Publication number Publication date
JPH0683696A (ja) 1994-03-25

Similar Documents

Publication Publication Date Title
US5724540A (en) Memory system having a column address counter and a page address counter
EP0138419B1 (en) Central processing unit for a digital computer
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
EP0465248A2 (en) A microcontroller having a pseudo-linear bank switching memory expansion scheme
JP2001216194A (ja) 演算処理装置
US6029241A (en) Processor architecture scheme having multiple bank address override sources for supplying address values and method therefor
GB2024475A (en) Memory access controller
KR100272622B1 (ko) 데이타 처리장치
US5127096A (en) Information processor operative both in direct mapping and in bank mapping, and the method of switching the mapping schemes
JP3088303B2 (ja) キャッシュ・メモリ・バンク制御装置
JP3345050B2 (ja) 二次元配列型メモリシステム
KR100534613B1 (ko) 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법
JPH0619711B2 (ja) 優先ブランチ機構を備えたデータ処理システム
WO2000075747A2 (en) Microcontroller virtual memory system and method
KR100960095B1 (ko) 마이크로컨트롤러 명령어 셋트
JP2568017B2 (ja) マイクロプロセッサ及びそれを使用したデータ処理システム
EP0795827B1 (en) Memory device and method for accessing memories of the memory device
JP2000207203A (ja) マイクロコントロ―ラ
US6321319B2 (en) Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction
AU632542B2 (en) Ring reduction logic mechanism
JPS6362778B2 (ja)
JP3539951B2 (ja) データ処理装置
JPH10247150A (ja) データ処理システム
JP2003196087A (ja) マイクロコントローラのメモリアドレッシング方法及びページマッピング装置
JP2696578B2 (ja) データ処理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees