JPH042976B2 - - Google Patents

Info

Publication number
JPH042976B2
JPH042976B2 JP60229537A JP22953785A JPH042976B2 JP H042976 B2 JPH042976 B2 JP H042976B2 JP 60229537 A JP60229537 A JP 60229537A JP 22953785 A JP22953785 A JP 22953785A JP H042976 B2 JPH042976 B2 JP H042976B2
Authority
JP
Japan
Prior art keywords
port
page
memory bank
address
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.)
Expired - Lifetime
Application number
JP60229537A
Other languages
English (en)
Other versions
JPS6289149A (ja
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 filed Critical
Priority to JP60229537A priority Critical patent/JPS6289149A/ja
Priority to PCT/JP1986/000136 priority patent/WO1987002488A1/ja
Priority to DE8686902020T priority patent/DE3688505T2/de
Priority to EP86902020A priority patent/EP0248906B1/en
Priority to KR1019870700030A priority patent/KR880700354A/ko
Publication of JPS6289149A publication Critical patent/JPS6289149A/ja
Priority to SU874202747A priority patent/SU1561834A3/ru
Priority to US07/344,507 priority patent/US4930066A/en
Publication of JPH042976B2 publication Critical patent/JPH042976B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Description

【発明の詳細な説明】 〔概要〕 複数のデータ入出力用のポートP0〜PM-1と、
複数のメモリバンクMB0〜MBN-1と、各ポート
Piと各メモリバンクMBjとを接続するスイツチン
グ・ネツトワークSNとを有し、ページを全メモ
リバンクMB0〜MBN-1にまたがるように格納し、
ページ単位で各入出力用ポートPiからアドレスが
指定される多ポートページメモリシステムにおい
て、ページアドレスを前記スイツチング・ネツト
ワークSNのデータ線1,2を用いて転送、設定
し、アドレスの計算を各メモリバンクMBj側で
行ない、複数のポートからの連続したデータの読
出しおよび書込みが同一ページに対しても行なえ
るようにする。
〔産業上の利用分野〕
本発明は多数の同種または異種のプロセツサま
たはデイスクシステム(デイスクユニツトおよび
デイスクコントローラからなる)等からページ単
位で同時にアクセスされるような多ポートメモリ
システムに関するものである。
〔従来の技術〕
従来の複数のプロセツサ等からアクセス可能な
メモリシステムは、各プロセツサ間で時分割を行
なうか、アービタ等を用いて各プロセツサからの
アクセスの競合に対処するかしていた。
時分割を行なう場合には、メモリのアクセスタ
イムの制限から、プロセツサの数は高々数個であ
り、一方アービタを用いた場合には競合をおこし
た他のプロセツサの処理が終了するまで待たされ
ることになり、プロセツサ数が増えると待ち時間
が非常に長くなるという欠点があつた。
これに対して、最近、アクセス単位をページと
し、ページ内であればどこからアクセスしてもよ
いとすることにより、多数のプロセツサから待ち
時間なしで同時にアクセスすることが可能な多ポ
ートメモリシステムが発表された(Yuzuru
Tanaka、“A Multiport Page−Memory
Architecture and A Multiport Disk−Cache
System”New Generation Computing.Vol.2、
No.3、pp.241−260、1984。)。
しかし、上記論文にはアドレスの指定方法につ
いては記述がない。また、プロセツサ数が増大し
た場合に接続バス幅が広くなり実装上困難になる
こと、多段スイツチング・ネツトワークを用いる
ことによる遅延をカバーするためのパイプライン
化処理が複雑になり、経済性が悪いこと等の欠点
がある。
〔発明が解決しようとする問題点〕
本発明は従来の複数のプロセツサ等からアクセ
ス可能なメモリシステムの持つ欠点を解決し、或
る程度の数(数十)の入出力用ポートからの同時
アクセスに対して、十分短い待ち時間でページ単
位で同一ページの読出しおよび書込みが可能な簡
略かつ経済的な多ポートメモリシステムを提供し
ようとするものである。
〔問題点を解決するための手段〕
本発明は、第1図に示すようにM個のデータ入
出力用のポートP0〜PM-1と、Mの整数倍のN個
のメモリバンクMB0〜MBN-1と、各ポートと各
メモリバンクとを接続するスイツチング・ネツト
ワークSNと、スイツチング・ネツトワークのコ
ントローラCNTとから構成され、ページを全メ
モリバンクへまたがるように格納する。そして接
続バスは入力用、出力用データバスおよび数本の
コントロールラインからなり、各々のポートから
入力用データバスを用いてまずアクセスすべきペ
ージアドレスをメモリバンク側へ転送し、ページ
内のアドレスのインクリメントをメモリバンク側
で行ない、同期してデータを入出力することによ
り、複数のポートから連続したデータの読出しお
よび書込みを同一ページに対しても行なえるよう
にしている。
スイツチング・ネツトワークは、システム全体
を簡略かつ経済的にするために、遅延が少なく構
成しやすいものが好ましく、例えば、接続バスを
ビツトスライス化して、PLA(Programmable
Logic Array)とカウンタを用いて構成すること
ができる。
メモリバンク側ではスイツチング・ネツトワー
クによるポートの切換に伴い、ページアドレスを
その都度ポート側から設定し直すのを避けるた
め、各メモリバンクがそれぞれ持つポート対応の
ページアドレスを切換えられたメモリバンクへ転
送する必要がある。このため、スイツチング・ネ
ツトワークの切換の方法を、一つずつ右または左
へずらすようにし、これと同期して各メモリバン
クの持つページアドレスをスイツチング・ネツト
ワークの切換の方向の隣のメモリバンクへ転送す
る。この場合ページアドレスの設定と転送用にシ
フトレジスタを用い、シフトとメモリアクセスを
同時に行なうことが可能なようにシフト中ページ
アドレスを固定しておくラツチと、メモリアクセ
ス用にページ内のアドレスを一つずつ増加させる
ためのカウンタとを各メモリバンクに持つことが
好ましい。
さらに上記本発明の構成において、一つのペー
ジをいくつかのブロツクに分け、例えばメモリバ
ンク切換の一周で一ブロツク分のメモリをアクセ
スするようにする構成をその態様に含む。このブ
ロツクという単位を導入する理由は次の作用の項
で詳しく説明する。
さらに、本発明はスイツチング・ネツトワーク
と各ポートとの間にバツフアを設け、スイツチン
グ・ネツトワークと転送し合うページ内のアドレ
スをスイツチング・ネツトワークの切換用カウン
タの値と各ポートの番号との和から計算するよう
にアドレス計算用加算器を各バツフアに持たせる
ことにより、各メモリバンクと各ポートの接続関
係と独立に、アクセスが開始できる多ポートメモ
リシステムを提供する。
〔作用〕
第1図において、メモリバンクおよびポートの
数をNとし、時刻t=0の時左からi番目のメモ
リバンクMBiとi番目のポートPiが接続されてい
て、t=jの時(つまりj番目の切換の時)
MB(i+j)npdNとPiが接続されるようにスイツチン
グ・ネツトワークを切換るようにすると、メモリ
バンクは右隣のメモリバンクへページアドレスを
転送すればよい。ただし、最右端のメモリバンク
については、ページアドレスを最左端のメモリバ
ンクへ送るようにする。転送すべきビツト数は、
メモリバンクへ格納できる最大ページ数をK、ペ
ージ長をLP、ブロツク長をLBとすると、「log2K」
+「log2N」+「log2(LP/LB)」となる。ただし、
「X」はX以上の最小の整数とする。「log2K」は
ページアドレス分、「log2(LP/LB)」はページ内
のブロツクアドレス分、「log2N」はアクセスを
開始したメモリバンクを示すためのビツト数であ
る。ここで、ページの他にブロツクという単位を
導入した理由を以下に述べる。
1ポートの最大待ち時間はアクセス開始のメモ
リバンクをポート側で認識できるとすればスイツ
チング・ネツトワークの切換間隔であり、ブロツ
クを考えないとするとLP/N分のデータ転送時
間待つ必要がある。待ち時間を短くするためにペ
ージ長を短くすると、ページアドレスが長くなる
上メモリ管理が繁雑になる。そこで、ポートから
指定するのはページ単位とし、1ページを複数の
ブロツクに分割し、メモリバンクの切換が1周す
ると1ブロツク分のメモリがアクセスされるよう
にする。つまり、メモリバンクの切換の間隔中に
アクセスする単位はLB/Nであり、LP/LB周す
ることにより、1ページ分のデータをアクセスす
る。LB/Nがあまり小さいと各メモリバンク間
でのページアドレス転送の時間がなくなるため、
LBは、 LB/N≧「log2K」+「log2N」 +「log2(LP/LB)」+α を満足する必要がある。ここで、αはポートから
ページアドレスを設定するのに要する間隔であ
る。
各ポート側では、アクセスを開始したメモリバ
ンクとは独立に、ブロツクの先頭をMB0にする
必要がある。ポートPiが時刻jに接続されている
メモリバンクはMB(i+j)npdNであるから、そのブロ
ツクの、 〔(LB/N){(i+j)modN}+1〕番目のデ
ータから、 (LB/N){i+j)modN+1}番目のデー
タをアクセスすればよい。このため、スイツチン
グ・ネツトワークと各ポートの間にバツフアを持
ち、スイツチング・ネツトワーク側からアクセス
するバツフア内のアドレスを、切換用のカウンタ
の値と各ポートの番号の値との和から計算するよ
うにすることが望ましい。ブロツク内のアドレス
は、メモリバンク側とバツフア側で同期する必要
がある。
次に、本発明の多ポートメモリシステムの実装
上の問題について説明する。接続バス幅が広いと
実装上困難を来すが、本発明においては、ページ
アドレスをスイツチング・ネツトワークのデータ
線を用いて転送、設定し、ページ内のアドレスの
インクリメントをメモリバンク側で行なうので接
続バス幅が従来方式より狭くでき、実装上の困難
性が少ない。また経済的である。
以下さらに詳細に本発明を説明するために、実
施例を用いて説明する。
〔実施例〕
第2図は本発明の一実施例の要部ブロツク構成
図である。P0,P1…P15は、16本のデータ入出力
用ポート、PB0,PB1…PB15はバツフア、MB0
MB15は16個のメモリバンク、SNは16×16スイ
ツチング・ネツトワーク、CNTは16進のカウン
タである。接続バスおよびは書込みデータ用
に1バイトとパリテイビツト1ビツトの計9ビツ
ト、読出し用も同様に9ビツト、制御用に6ビツ
トの合計24ビツト幅である。スイツチング・ネツ
トワークの切換は、システムクロツクφと同期し
て右回りで一周するようになつており、このため
16進カウンタCNTを用いている。第3図に16進
カウンタCNTの値と各ポートと各メモリバンク
の接続関係を示す。第3図において、P0…P15
ポートの番号、MB0…MB15はメモリバンクの番
号を表す。各メモリバンクでは、上記スイツチン
グ・ネツトワークSNの切換に同期してアドレス
を右隣のメモリバンク(最右端の場合は、最左端
のメモリバンク)へ転送する。そのために、シフ
トレジスタ(メモリバンク側のアドレス計算部
CSに含む)と各メモリバンクMB0〜MB15間を結
ぶ1ビツトのデータ線を用いる。
以下各メモリバンクの構成について更に詳しく
説明する。
第4図は第2図におけるメモリバンクの一つを
詳細に表したブロツク図である。また、第5図に
本実施例におけるシステムの全体のメモリの分割
の様子を示している。
この実施例においては、第5図に示すように、
本メモリシステムの全記憶容量を256メガバイト
とし、1ページのサイズを4キロバイト、1ブロ
ツクのサイズを512バイトとすることにした。1
ブロツクのサイズについては、メモリバンク数を
16とした場合に1メモリバンク当りのブロツクサ
イズが、シフトレジスタによるアドレスの転送お
よびポートP0〜P15からのアドレスの設定に要す
る時間とオーバラツプしてアクセス可能な程度で
あるため、1バンクのブロツクを32バイトとした
ので32×16で512バイトとなつた。また、1ペー
ジのサイズを4キロバイトとしたことにより、全
記憶容量は64キロページ分となり、ページアドレ
ス指定に2バイト必要になる。1メモリバンク中
の記憶容量は256メガバイトを16で割つて、16メ
ガバイトとなる。
第4図において、Mは8ビツト×16メガの16メ
ガバイト分のメモリ、S8-1,S8-2はそれぞれペー
ジアドレスの上下8ビツトずつを持つシフトレジ
スタ兼カウンタである。また、S3は1ページ8ブ
ロツクのブロツクをカウンタするための3ビツト
シフトレジスタ兼カウンタ、C5は1ブロツク32
バイトをカウントするための32進カウンタであ
る。シフトレジスタ兼カウンタS8-1,S8-2のペー
ジアドレスおよびシフトレジスタ兼カウンタS3
ブロツクアドレスは、スイツチング・ネツトワー
クの切換と同期して右隣のメモリバンクに転送さ
れなければならないため、シフトレジスタ兼カウ
ンタS8-1,S8-2はページアドレス設定のため8ビ
ツトパラレル入力と、メモリへアドレスを示すた
め8ビツトパラレル出力の他に1ビツトのシリア
ル入出力を持つ必要がある。また、同様に、S3
3ビツトのパラレル出力と1ビツトのシリアル入
出力を持つ必要がある。ポート側から指定される
アドレスはページ単位であり、ページの先頭から
アクセスされることを前提とするため、S3はペー
ジアドレスが設定された時点でリセツトされる必
要がある。さらに、メモリバンクを一周すると次
のブロツクに移らなければならないため、16ブロ
ツク分をカウントする4ビツトのシフトレジスタ
兼カウンタS4を用意し、そのキヤリーをS3へ入力
する。なお、各ポートとスイツチング・ネツトワ
ーク間のバツフアを取り除き、必ずMB0からア
クセスを開始すると仮定した場合にはこのS4を省
略することができる。その場合にはMB0で必ず
S3を一つ増加させるようにする。さらに、ページ
を越えて連続した領域をページをいちいち設定し
なおすことなしにアクセス可能とするために、S3
のキヤリーをS8-1へ、S8-2のキヤリーをS8-1へ入
力することが望ましい。
ページアドレスおよびブロツクアドレスを隣の
メモリバンクへ転送するのとメモリアクセスをオ
ーバーラツプして可能とするために、ページアド
レスおよびブロツクアドレスを固定しておくため
に、L8-1,L8-2というページアドレス用の8ビツ
トのラツチとL3というブロツクアドレス用の3
ビツトのラツチを用いる。また、1ブロツク内で
アドレスを一つずつ増加させるための5ビツトつ
まり32進カウンタC5を用意する。ページアドレ
スおよびブロツクアドレスは、この32バイトをア
クセス中に隣のメモリバンクへ転送するか、また
はポートから別のページアドレスおよびブロツク
アドレスが設定されなければならない。
データおよびアドレスは、8ビツト+パリテイ
ビツトの計9ビツトの単方向性バス2本21,2
2を用いてポート間を転送される。パリテイのチ
エツク並びにパリテイビツトの付加は、4図の
PCおよびPAのように各メモリバンクの出入口で
行なわれる。
書込み、読出しのタイミングやイネーブル等は
システムクロツクΦおよびポートからの制御信号
を用いて第4図のメモリバンク制御部MBCで解
析され、各カウンタやラツチおよびメモリに制御
信号が送られる。
第6図は第2図および第4図における多ポート
メモリシステムのタイミングチヤートである。各
メモリバンクのアドレスは第6図におけるA0
A1,A2,A3,A4,…のように指定され、システ
ムクロツクφと同期して各ポートからアクセスさ
れる。これと同時にページアドレスおよびブロツ
クアドレスを隣のメモリバンクに転送させるため
に、転送に先立ちラツチセツトLsのタイミングで
ラツチL8-1,L8-2およびL3にシフトレジスタ兼カ
ウンタS8-1,S8-2およびS3のアドレスをセツト
し、ページアドレス16ビツト、ブロツクアドレス
3ビツトおよびバンクカウント4ビツトの計23ビ
ツトをシフトクロツクφsに従つて右隣へ1ビツト
ずつ転送する。ここで、前述したように各ポート
ともバンクメモリMB0からアクセスを開始する
とした場合には、バンクカウントの4ビツト分は
不要となる。もしそうでないとすると、S4カウン
トアツプのタイミングでバンクカウント用のカウ
ンタを一つカウントアツプする必要がある。この
場合、このS4カウンタはページアドレスを設定す
る時点でリセツトしなければならない。ページア
ドレスがポートから設定可能な期間は、S4のカウ
ントアツプが終了してからアドレスのシフトを開
始するまでの間で、第6図のアドレスセツトイネ
ーブルAEのタイミングはその区間を示している。
また、スイツチング・ネツトワークの切換も、こ
のシステムクロツクφに同期して行なわれる必要
があり、ラツチにアドレスが設定されると同時に
切換られるのが好ましい。第6図のネツトワーク
切換NSWのタイミングは、この切換時期を示し
ている。
第7図は本発明の多ポートメモリシステムにお
いて、入出力ポートを4とした時のある時点(t
=j)の各ポートからのアクセス状況と、次にス
イツチング・ネツトワークの切換を行なつた時点
(t=j+1)の各ポートからのアクセス状況を
示したものである。
第8図は4×4のスイツチング・ネツトワーク
のポートからメモリバンク側へ書込むデータライ
ンの1ビツト分をPLAを用いて構成した場合の
例を示している。IP0〜IP3が入力側、つまりポー
ト側で、OMB0〜OMB3が出力側つまりメモリバン
ク側、またA0,A1が接続切換用の4進カウンタ
の出力である。論理式でこのカウンタの出力A0
A1、IP0〜IP3およびOMB0〜OMB3の関係を表すと次
式(1)のようになる。
OMB0=A0・A1・IP0∨A0・A1・IP3∨A0・A1
・IP2∨A0・A1・IP1 OMB0=A0・A1・IP0∨A0・A1・IP3∨A0・A1
・IP2∨A0・A1・IP1 OMB1=A0・A1・IP1∨A0・A1・IP0∨A0・A1・IP3∨A0・A
1・IP2 OMB0=A0・A1・IP0∨A0・A1・IP3∨A0・A1
・IP2∨A0・A1・IP1 OMB1=A0・A1・IP1∨A0・A1・IP0∨A0・A1・IP3∨A0・A
1・IP2 OMB2=A0・A1・IP2∨A0・A1・IP1∨A0・A1・IP0∨A0・A
1・IP3 OMB0=A0・A1・IP0∨A0・A1・IP3∨A0・A1
・IP2∨A0・A1・IP1 OMB1=A0・A1・IP1∨A0・A1・IP0∨A0・A1・IP3∨A0・A
1・IP2 OMB2=A0・A1・IP2∨A0・A1・IP1∨A0・A1・IP0∨A0・A
1・IP3 OMB3=A0・A1・IP3∨A0・A1・IP2∨A0・A1・IP1∨A0・A
1・IP0(1) また、第9図は4×4のスイツチング・ネツト
ワークのポートからメモリバンク側を読出すデー
タラインの1ビツト分を同様にPLA
(Programmable Logic Array)を用いて構成し
た場合の例を示している。IMB0〜IMB3が入力側つ
まりメモリバンク側で、OP0〜OP3が出力側つま
りポート側、A0,A1は第8図と同様に接続切換
用の4進カウンタの出力である。論理式でA0
A1、IMB0〜IMB3、OP0〜OP3の関係を表すと次式(2)
のようになる。
OP0=A0・A1・IMB0∨A0・A1・IMB1∨A0・A
1・IMB2∨A0・A1・IMB3 OP0=A0・A1・IMB0∨A0・A1・IMB1∨A0・A
1・IMB2∨A0・A1・IMB3 OP1=A0・A1・IMB1∨A0・A1・IMB2∨A0・A1・IMB3∨A0
・A1・IMB0 OP0=A0・A1・IMB0∨A0・A1・IMB1∨A0・A
1・IMB2∨A0・A1・IMB3 OP1=A0・A1・IMB1∨A0・A1・IMB2∨A0・A1・IMB3∨A0
・A1・IMB0 OP2=A0・A1・IMB2∨A0・A1・IMB3∨A0・A1・IMB0∨A0
・A1・IMB1 OP0=A0・A1・IMB0∨A0・A1・IMB1∨A0・A
1・IMB2∨A0・A1・IMB3 OP1=A0・A1・IMB1∨A0・A1・IMB2∨A0・A1・IMB3∨A0
・A1・IMB0 OP2=A0・A1・IMB2∨A0・A1・IMB3∨A0・A1・IMB0∨A0
・A1・IMB1 OP3=A0・A1・IMB3∨A0・A1・IMB0∨A0・A1・IMB1∨A0
・A1・IMB2(2) 上記(1)式および(2)式を入力16ビツト、出力16ビ
ツト、接続切換用の16進カウンタの出力4ビツト
にそのまま拡張することにより、第2図で示した
ポートとメモリバンクの接続関係を双方で実現す
ることができ、その拡張した下記の式:(3)式(4)式
を16×16のPLAに適用し、そのPLAをバス幅の
個数分つまり24個並列に用いることにより、第2
図で示した多ポートメモリシステム用の小型で経
済的なスイツチング・ネツトワークを作ることが
できる。
OMB0=A0・A1…A15・IP0∨A0・A1…A15・I
P15∨…∨A0・A1…A15・IP1 OMB0=A0・A1…A15・IP0∨A0・A1…A15・I
P15∨…∨A0・A1…A15・IP1 OMB1=A0・A1…A15・IP1∨A0・A1…A15・IP0∨…∨A0
A1…A15・IP2 〓 〓 OMB15=A0・A1…A15・IP15∨A0・A1…A15・IP14∨…∨A
0・A1…A15・IP0(3) OP0=A0・A1…A15・IMB0∨A0・A1…A15・I
MB1∨…∨A0・A1…A15・IMB15 OP0=A0・A1…A15・IMB0∨A0・A1…A15・I
MB1∨…∨A0・A1…A15・IMB15 OP1=A0・A1…A15・IMB1∨A0・A1…A15・IMB2∨…∨A0
・A1…A15・IMB0 〓 〓 OP15=A0・A1…A15・IMB15∨A0・A1…A15・IMB0∨…∨A
0・A1…A15・IMB14(4) PLAを用いたスイツチング・ネツトワークSN
の構成は前述した通りである。しかし、PLAを
用いずに一般の論理回路を組み合せても前記式(1)
〜(4)が実現できる。
第10図は第2図におけるポートバツフアPBi
の一つを詳細に表したブロツク図である。
このポートバツフアは書込み及び読出しの全体
としての効率を向上させるためのものである。
或る1ページの書込みの時、書込みをその時ス
イツチング・ネツトワークSNで接続した任意の
メモリバンクMBiにページの先頭から行なうと、
読出し時にはどこがページの始めかがわかり難
く、アクセスに困難性が生じる。そこで、ページ
の始めは特定のメモリバンク、例えばメモリバン
クMB0であると決めておくことが望ましい。と
ころが書込み時に当該ポートがスイツチング・ネ
ツトワークSNによりメモリバンクMB0に切換ら
れるまで待つのでは全体として効率が悪い。
この第10図の実施例においては、4キロバイ
トのバツフアを2面持ち(11及び12)、一方
のバツフア11(または12)がポート側からア
クセスされている時、もう一方のバツフア12
(または11)をメモリバンクとのデータ転送に
利用できるようにダブルバツフアを構成してい
る。その際バツフア11,12のいずれを、ポー
ト側からのアクセス、メモリバンクとのデータ転
送に用いるかの選択は、各バツフア11,12の
アドレス側のセレクタ11AS及び12ASとデー
タ側のセレクタ11SD及び12SDで切換制御さ
れる。例えばメモリバツフア11がポートの上方
からアクセスされるようにセレクタ11AS,1
1SDで切換接続されている時、セレクタ12AS
及び12SDはメモリバツフア12をメモリバン
ク側に切換接続する。
メモリバンク側とデータ転送し合うためのアド
レスは、下位5ビツトA0〜A4をシステムクロツ
クφをDI1で分周して作り、その上の4ビツト
A8〜A5をスイツチPBSでセツトされたポートの
番号とスイツチング・ネツトワークの切換用カウ
ンタ(CNT)の出力を加算器ADDで和をとつて
作り、上位3ビツトA9〜A11をシステムクロツク
φをDI2で分周して作つている。なお、PBCは
ポート側のコントローラ、PBPAはポート側から
の書込みデータのパリテイ付加部、PBPCはメモ
リバンク側から読出したデータのパリテイチエツ
ク部を示す。このポートバツフアを用いることに
より、スイツチング・ネツトワークCNTの接続
関係と独立して、ポート側からページ単位でアク
セスすることができる。例えばポートの上方から
の書込みを考えると、第10図のポートバツフア
(11又は12)では、書込む1ページ内のどこ
から送るかというアドレス:書込み開始アドレス
を計算している。先に説明したように一つのペー
ジ(4キロバイト)というのは第5図のように縦
に8ブロツクに分れており、さらにその1ブロツ
クは32バイトずつ分けて右回りで隣のメモリバン
クに順に格納されている。例えば第3図の16進カ
ウンタの値が0の時にポート4から書込む時は第
2図のメモリバンクMB4から書込みが開始され
る。またカウンタの値が1の時にポート4から書
込みを開始する時にはメモリバンクMB5から書
込みが開始される。即ち、16進カウンタの値プラ
スポートの番号のメモリバンクMBiに当該ポート
は切換られている。従つて、ポート側から書込み
を開始するメモリバンクへ格納するページのデー
タを適当な部分から転送し、1ページのブロツク
の途中から当該書込み開始メモリバンクに書込
み、順に前記の態様で隣のメモリバンクに書込み
そのページの一番最後まできて、そのページのブ
ロツクの頭までもどつた時、丁度メモリバンクの
頭(例えばMB0)に来るようにすれば良い。本
実施例ではその、書込むページの書込み開始アド
レスの計算は16進のカウンタCNTの値と書込み
を行なうポートが持つているアドレス:ポート
P5なら5という値を加算してやると丁度そのペ
ージの書込み開始アドレスの値がでてくる。従つ
て、それぞれのポートでこの計算を行なうように
すれば良い。
以上は書込みの場合であるが、読出しの場合も
同様であり、ポートの上からのアクセス時に、当
該ポートが接続しているメモリバンクMBiから読
出しを開始し、その読出したデータを11,12
の一方例えば11のバツフアに書込む時、やはり
加算器ADDで当該ポートの持つ番号と16進カウ
ンタCNTの値の和の計算し、それを書込むバツ
フア11をアクセスするアドレスA5〜A8に用い
ることにより、書込み完了時には該バツフア11
にはページの始めからメモリバンク側から読出し
たデータが格納される。従つて、当該ポートの上
方からこのメモリバンク11をアクセスして読出
すことが容易になる。
以上本発明について実施例を示したが、本発明
に係る多ポートメモリシステムはこれに限らず、
特許請求の範囲内で種々変更可能なこと勿論であ
る。
〔発明の効果〕
本発明によれば、ページアドレスをデータ線を
用いて転送し、メモリバンク内でアドレスの計算
を行なうようにすることにより、各ポートメモリ
システムにおいて実装上困難を来すバス幅をせま
くすることができ、システム全体を小型で経済的
に構成することができる。
さらに、スイツチング・ネツトワーク自体をビ
ツトスライス化してPLAを用いて構成すること
により、遅延の少ない簡略なスイツチング・ネツ
トワークを構成することができる。
また、スイツチング・ネツトワークの接続の切
換を一つずつ隣へ移すようにすることにより、ア
ドレスをシフトレジスタを用いて各メモリバンク
の隣へ転送するだけで、バンクの切換毎にアドレ
スを設定しなおす必要がなくなり、連続した領域
を効率よくアクセスすることが可能なシステムを
構成することができる。その上、アドレスの隣の
メモリバンクへの転送と、ポートからのメモリへ
のアドレスを独立して同時に行なうことが可能に
なるため、連続した領域をアクセスタイムのよど
みなく、読出し、書込みが可能となる。
さらに、本発明によればスイツチング・ネツト
ワークと各ポートとの間にバツフアを設け、スイ
ツチング・ネツトワークと転送し合うページ内の
アドレスをスイツチング・ネツトワークの切換用
カウンタの値と各ポートの番号との和から計算す
るようにアドレス計算用加算器を各バツフアに持
たせることにより、各メモリバンクと各ポートの
接続関係と独立に、アクセスが開始できる。
このような本発明の多ポートメモリシステム
は、並列処理システムにおける共有メモリとして
多用することが可能であり、特にページ単位のア
クセスを基本とする関係データベースマシンや知
識ベースマシンの構成に極めて有用である。
【図面の簡単な説明】
第1図は本発明による多ポートメモリシステム
の構成図、第2図は本発明の実施例の要部ブロツ
ク構成図、第3図は16進カウンタの値と各ポート
と各メモリバンクの接続関係を示す図、第4図は
第1図における1メモリバンク中のさらに詳細な
ブロツク図、第5図は第1図および第4図におけ
るシステムの全体のメモリの分割の様子を示した
図、第6図は第1図および第4図におけるシステ
ムの処理のタイミングチヤート、第7図は時刻t
=jと時刻t=j+1における各ポートからのア
クセスの様子を示した図、第8図および第9図は
4×4のスイツチング・ネツトワークの1ビツト
分をそれぞれポートからメモリバンク方向へとメ
モリバンクからポート方向へ接続するために
PLAを用いて構成した場合の実施例のPLA内の
配線図、第10図は第2図における1ポートバツ
フア中のさらに詳細なブロツク図である。 (主な符号)、P0〜PM-1:データ入出力用のポ
ート、MB0〜MBN-1:メモリバンク、SN:スイ
ツチング・ネツトワーク、CNT:スイツチン
グ・ネツトワークのコントローラ、M:8ビツト
×16メガの16メガバイト分のメモリ、MBC:メ
モリバンク制御部、S8-1,S8-2:それぞれページ
アドレスの上下8ビツトずつを持つシフトレジス
タ兼カウンタ、S3:1ページ8ブロツクのブロツ
クをカウンタするための3ビツトシフトレジスタ
兼カウンタ、C5:1ブロツク32バイトをカウン
トするための32進カウンタ、S4:シフトレジスタ
兼カウンタ、L8-1,L8-2:ページアドレス用の8
ビツトのラツチ、L:ブロツクアドレス用の3ビ
ツトのラツチ、11,12:バツフア、11AS,
12AS,11SD,12SD:セレクタ、DI1,
DI2:カウンタ、ADD:加算器、PBS:スイツ
チ、PBC:コントローラ、PBPA,PA:パリテ
イ付加部、PBPC,PC:パリテイチエツク部。

Claims (1)

  1. 【特許請求の範囲】 1 複数のデータ入出力用のポートP0〜PM-1と、
    複数のメモリバンクMB0〜MBN-1と、各ポート
    Piと各メモリバンクMBjとを接続するスイツチン
    グ・ネツトワークSNとを有し、ページを全メモ
    リバンクMB0〜MBN-1にまたがるように格納し、
    ページ単位で各入出力用ポートPiからアドレスが
    指定される多ポートページメモリシステムにおい
    て、ページアドレスを前記スイツチング・ネツト
    ワークSNのデータ線1,2を用いて転送、設定
    し、アドレスの計算を各メモリバンクMBj側で
    行なうように構成し、前記各メモリバンクMBj
    間でポートの切換と同期してページアドレスを転
    送し合うためにスイツチング・ネツトワークSN
    の切換をローテートさせると共にアドレスを隣接
    メモリバンクMBj+1またはMBj-1へ転送するため
    のシフトレジスタSxと、シフト中のページアドレ
    スを固定させておくラツチLyと、該転送の間ペ
    ージアドレスを一つずつ増加させるためのカウン
    タCzと、切換が1周したときにブロツクのアドレ
    スを一つ増加させるためのカウンタSxとを各メモ
    リバンクMBjに持つことを特徴とする多ポート
    メモリシステム。 2 前記スイツチング・ネツトワークSNは、デ
    ータ転送バスを2方向に持ち、該バスはビツトス
    ライス化され、PLAとカウンタを用いて構成さ
    れることを特徴とする特許請求の範囲第1項記載
    の多ポートメモリシステム。 3 各々からページ単位でアドレスが指定される
    複数のデータ入出力用のポートP0〜PM-1と、複
    数のメモリバンクMB0〜MBN-1と、該各ポート
    Piと各メモリバンクMBjとの接続の切換をローテ
    ートさせるスイツチング・ネツトワークSNと、
    アドレスを隣接メモリバンクMBj+1またはMBj-1
    へ転送するためのシフトレジスタSxと、そのシフ
    トの間ページアドレスを固定させておくラツチ
    Lyと、そのシフトの間ページアドレスを一つず
    つ増加させるためのカウンタCzと、該各ポートと
    各メモリバンクとの切換が1周した時にブロツク
    のアドレスを一つ増加させるためのカウンタSx
    を各メモリバンクMBjに有し、前記各メモリバ
    ンク間でのポートの切換と同期してページアドレ
    スを転送し合うようになし、ページを全メモリバ
    ンクへまたがるように格納し、ページアドレスを
    上記スイツチング・ネツトワークSNのデータ線
    1,2を用いて転送、設定し、アドレスの計算を
    各メモリバンク側で行ない、複数のポートからの
    連続したデータの読出しおよび書込みを同一ペー
    ジに対しても行なえるようにした多ポートメモリ
    システムにおいて、 さらに、前記スイツチング・ネツトワークSN
    と各ポートPiとの間にそれぞれバツフア11,1
    2を持ち、該各バツフア11,12はスイツチン
    グ・ネツトワークSNと転送し合うページ内のア
    ドレスを前記スイツチング・ネツトワークSNの
    切換用カウンタの値と各ポートの番号との和から
    計算するアドレス計算用加算器ADDを持ち、各
    メモリバンクと各ポートの接続関係と独立に、ア
    クセスが開始されるようになすことを特徴とする
    多ポートメモリシステム。
JP60229537A 1985-10-15 1985-10-15 多ポ−トメモリシステム Granted JPS6289149A (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP60229537A JPS6289149A (ja) 1985-10-15 1985-10-15 多ポ−トメモリシステム
PCT/JP1986/000136 WO1987002488A1 (en) 1985-10-15 1986-03-24 Multi-port memory system
DE8686902020T DE3688505T2 (de) 1985-10-15 1986-03-24 Multiportspeichersystem.
EP86902020A EP0248906B1 (en) 1985-10-15 1986-03-24 Multi-port memory system
KR1019870700030A KR880700354A (ko) 1985-10-15 1987-01-16 다포오트 메모리 시스템
SU874202747A SU1561834A3 (ru) 1985-10-15 1987-06-12 Устройство адресации к пам ти
US07/344,507 US4930066A (en) 1985-10-15 1989-04-26 Multiport memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60229537A JPS6289149A (ja) 1985-10-15 1985-10-15 多ポ−トメモリシステム

Publications (2)

Publication Number Publication Date
JPS6289149A JPS6289149A (ja) 1987-04-23
JPH042976B2 true JPH042976B2 (ja) 1992-01-21

Family

ID=16893724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60229537A Granted JPS6289149A (ja) 1985-10-15 1985-10-15 多ポ−トメモリシステム

Country Status (7)

Country Link
US (1) US4930066A (ja)
EP (1) EP0248906B1 (ja)
JP (1) JPS6289149A (ja)
KR (1) KR880700354A (ja)
DE (1) DE3688505T2 (ja)
SU (1) SU1561834A3 (ja)
WO (1) WO1987002488A1 (ja)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5692139A (en) * 1988-01-11 1997-11-25 North American Philips Corporation, Signetics Div. VLIW processing device including improved memory for avoiding collisions without an excessive number of ports
JPH07107792B2 (ja) * 1988-01-19 1995-11-15 株式会社東芝 マルチポートメモリ
US5146581A (en) * 1988-02-24 1992-09-08 Sanyo Electric Co., Ltd. Subprogram executing data processing system having bank switching control storing in the same address area in each of memory banks
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
JP2872251B2 (ja) * 1988-10-12 1999-03-17 株式会社日立製作所 情報処理システム
US5043874A (en) * 1989-02-03 1991-08-27 Digital Equipment Corporation Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory
JP2673390B2 (ja) * 1991-03-13 1997-11-05 三菱電機株式会社 マルチポートメモリ
WO1994007200A1 (en) * 1992-09-21 1994-03-31 Unisys Corporation Multiported buffer memory system for disk drive complex
US5337414A (en) * 1992-09-22 1994-08-09 Unisys Corporation Mass data storage and retrieval system
WO1996007139A1 (en) * 1994-09-01 1996-03-07 Mcalpine Gary L A multi-port memory system including read and write buffer interfaces
KR960042372A (ko) * 1995-05-10 1996-12-21 가나이 쯔또무 멀티채널 메모리시스템, 전송정보 동기화방법 및 신호전송회로
WO1997011419A2 (en) * 1995-09-08 1997-03-27 Shablamm Computer, Inc. Synchronous multi-port random access memory
US5717646A (en) * 1996-12-05 1998-02-10 Kyi; Ben-I Random access multiport memory capable of simultaneously accessing memory cells from a plurality of interface ports
US6212607B1 (en) 1997-01-17 2001-04-03 Integrated Device Technology, Inc. Multi-ported memory architecture using single-ported RAM
US6108756A (en) * 1997-01-17 2000-08-22 Integrated Device Technology, Inc. Semaphore enhancement to allow bank selection of a shared resource memory device
US5978889A (en) * 1997-11-05 1999-11-02 Timeplex, Inc. Multiple device data transfer utilizing a multiport memory with opposite oriented memory page rotation for transmission and reception
US6874013B2 (en) 1999-05-24 2005-03-29 Koninklijke Philips Electronics N.V. Data processing arrangement and memory system
DE19937176A1 (de) * 1999-08-06 2001-02-15 Siemens Ag Multiprozessor-System
JP2002007201A (ja) * 2000-06-21 2002-01-11 Nec Corp メモリシステム、メモリインターフェース及びメモリチップ
US7143185B1 (en) * 2000-08-29 2006-11-28 Advanced Micro Devices, Inc. Method and apparatus for accessing external memories
JP2002109885A (ja) * 2000-09-28 2002-04-12 Toshiba Corp 半導体記憶装置
US7380085B2 (en) * 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US6895488B2 (en) * 2002-05-22 2005-05-17 Lsi Logic Corporation DSP memory bank rotation
TWI446356B (zh) 2005-09-30 2014-07-21 Mosaid Technologies Inc 具有輸出控制之記憶體及其系統
US7747833B2 (en) * 2005-09-30 2010-06-29 Mosaid Technologies Incorporated Independent link and bank selection
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
US20070130374A1 (en) * 2005-11-15 2007-06-07 Intel Corporation Multiported memory with configurable ports
CN103646009B (zh) 2006-04-12 2016-08-17 索夫特机械公司 对载明并行和依赖运算的指令矩阵进行处理的装置和方法
US8059128B1 (en) * 2006-04-19 2011-11-15 Nvidia Corporation Apparatus and method for performing blit operations across parallel processors
CN101558649A (zh) * 2006-09-26 2009-10-14 皇家飞利浦电子股份有限公司 具有多个存储体的数据处理
EP2122461A4 (en) 2006-11-14 2010-03-24 Soft Machines Inc DEVICE AND METHOD FOR PROCESSING COMMUNICATIONS IN A MULTITHREAD ARCHITECTURE WITH CONTEXT CHANGES
US20080170571A1 (en) * 2007-01-12 2008-07-17 Utstarcom, Inc. Method and System for Synchronous Page Addressing in a Data Packet Switch
US8250312B2 (en) 2009-04-29 2012-08-21 Micron Technology, Inc. Configurable multi-port memory devices and methods
EP3156896B1 (en) 2010-09-17 2020-04-08 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
KR101620676B1 (ko) 2011-03-25 2016-05-23 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트
KR101638225B1 (ko) 2011-03-25 2016-07-08 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행
KR101826121B1 (ko) 2011-03-25 2018-02-06 인텔 코포레이션 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트
CN103649931B (zh) 2011-05-20 2016-10-12 索夫特机械公司 用于支持由多个引擎执行指令序列的互连结构
WO2012162188A2 (en) * 2011-05-20 2012-11-29 Soft Machines, Inc. Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
US9065860B2 (en) * 2011-08-02 2015-06-23 Cavium, Inc. Method and apparatus for multiple access of plural memory banks
KR101832679B1 (ko) 2011-11-22 2018-02-26 소프트 머신즈, 인크. 마이크로프로세서 가속 코드 최적화기
CN104040490B (zh) 2011-11-22 2017-12-15 英特尔公司 用于多引擎微处理器的加速的代码优化器
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
KR102083390B1 (ko) 2013-03-15 2020-03-02 인텔 코포레이션 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
EP2972845B1 (en) 2013-03-15 2021-07-07 Intel Corporation A method for executing multithreaded instructions grouped onto blocks
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9760481B2 (en) 2014-06-13 2017-09-12 Sandisk Technologies Llc Multiport memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5128450B2 (ja) * 1971-10-06 1976-08-19
US3883854A (en) * 1973-11-30 1975-05-13 Ibm Interleaved memory control signal and data handling apparatus using pipelining techniques
JPS5148937A (en) * 1974-10-25 1976-04-27 Fujitsu Ltd Kiokusochi niokeru junjoseigyohoshiki
US4158227A (en) * 1977-10-12 1979-06-12 Bunker Ramo Corporation Paged memory mapping with elimination of recurrent decoding
US4285039A (en) * 1978-03-28 1981-08-18 Motorola, Inc. Memory array selection mechanism
US4254463A (en) * 1978-12-14 1981-03-03 Rockwell International Corporation Data processing system with address translation
US4707781A (en) * 1979-01-09 1987-11-17 Chopp Computer Corp. Shared memory computer method and apparatus
US4652993A (en) * 1984-04-02 1987-03-24 Sperry Corporation Multiple output port memory storage module
US4710868A (en) * 1984-06-29 1987-12-01 International Business Machines Corporation Interconnect scheme for shared memory local networks

Also Published As

Publication number Publication date
EP0248906A1 (en) 1987-12-16
DE3688505D1 (de) 1993-07-01
JPS6289149A (ja) 1987-04-23
DE3688505T2 (de) 1993-09-09
SU1561834A3 (ru) 1990-04-30
EP0248906A4 (en) 1989-08-22
WO1987002488A1 (en) 1987-04-23
US4930066A (en) 1990-05-29
EP0248906B1 (en) 1993-05-26
KR880700354A (ko) 1988-02-22

Similar Documents

Publication Publication Date Title
JPH042976B2 (ja)
US5410727A (en) Input/output system for a massively parallel, single instruction, multiple data (SIMD) computer providing for the simultaneous transfer of data between a host computer input/output system and all SIMD memory devices
FI91814B (fi) Moniprosessorin yhteinen liukuhihnavälimuisti
EP1222559B1 (en) Multiprocessor node controller circuit and method
JPS618785A (ja) 記憶装置アクセス制御方式
EP0460853B1 (en) Memory system
EP0229932B1 (en) High-capacity memory for multiprocessor systems
KR20000034787A (ko) Sram 캐시용 워드 폭 선택
US6092136A (en) Multi-processor central processing unit
JPH11203192A (ja) 並列プロセッサおよび演算処理方法
CN1017837B (zh) 具有单比特置位和复位功能的主存储器插板
JPH0282330A (ja) ムーブアウト・システム
JPH06348593A (ja) データ転送制御装置
JPS6125178B2 (ja)
JPH0232648B2 (ja)
JPH0232647B2 (ja)
JPH024020B2 (ja)
JPH0215150Y2 (ja)
JPH05108586A (ja) 並列演算機構及び並列演算方法
JPH0521262B2 (ja)
JP2610500B2 (ja) 並列ベクトル計算機
JPS61256458A (ja) 情報転送方式
JPS6116115B2 (ja)
JPH01241645A (ja) 演算処理装置
JPH11203252A (ja) 並列プロセッサおよびメモリ制御方法

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term