容量が小さくてもアドレスやデータが2組必要なために大きめの48 pinパッケージ。特有のロゴというか型番のプリフィックスが大きいですね。
このようなデュアルポートメモリは何に使われるのかというと、典型的なのはマルチプロセッサ構成のシステムのプロセッサ間通信のためのメモリです。
たとえばメイン処理を行うプロセッサと外部との通信を行うI/Oプロセッサから構成されるシステムを考えてみます。メインプロセッサがまとまった量のデータをI/Oプロセッサにコマンドとともに送りつけ、I/Oプロセッサが時間のかかる通信処理を行ってその結果を返すまでの間、メインプロセッサは別のデータ処理を継続するといったシステムです。このとき、メインプロセッサとI/Oプロセッサの間のデータ交換をどのように行うかが問題になります。
現代的なPCIを内部バスとして採用したシステムなんかだと、I/Oプロセッサ側にバスマスタ機能を付けて、メインプロセッサのメインメモリ内に定義されたコマンドパケットを読みにいくのが流行ですね。この方式が一般には性能的にもっとも有利となります。しかし、それは大規模なLSIを自在にあつかえることによって実現容易となった背景があります。過去にはかなり困難でした。
逆に、双方向のI/Oポートを用意して、データの送受信をプログラムで行うという回路的にはもっとも単純な方法も考えられます。しかし、これではホストプロセッサのI/O負荷が比較的大きくなり、性能的に不利となります。
これらの中間段階に存在するのがデュアルポートメモリを利用した方法です。メインプロセッサとI/Oプロセッサの両方からアクセス可能な小容量のメモリを、メインメモリとは別のアドレスに配置しておき、その共有メモリにデータを書き込んで受け渡しを行う方法です。
このようなデュアルポートメモリは、普通のメモリを用いても実装できます。メモリ以外に、複数のバスからアクセスされるので、そのタイミングを調整するバス調停回路が必要で、ほかにアドレスやデータを切り替えるためのマルチプレクサがあれば、それなりのデュアルポートメモリを構成できます。VMEバスシステムでは4
MByte前後のダイナミックメモリを用いたデュアルポートメモリを実装した製品もたくさんありました。
そういった周辺回路までメモリに組み込み、さらにメモリアレイ自体にも工夫が行われているのが、IDT7132などの専用デュアルポートメモリです。
このIDT7132の場合、ふたつのポートから別々のアドレスのメモリセルにアクセスするかぎりは、まったく衝突が生じません。同じアドレスのメモリセルにアクセスした場合に限り、内蔵バス調停回路の働きによって一方のアクセスが延期され、そのタイミングを指示するためにBUSY*信号が出力されます。そのBUSY*信号を用いてメモリ参照サイクルを引き伸ばすなどすれば、双方のポートから自由にランダムアクセスできるメモリシステムが実現できます。
一般のメモリに外部回路を追加したデュアルポートメモリだと、アドレスやデータをマルチプレクスしている都合上、一方のポートからアクセスしている瞬間はもう一方のポートから読み書きできず、強制的に待ち合わせさせる必要があります。このIDT社のデュアルポートメモリだと、アドレスさえ異なっていれば待ち合わせをさせる必要がないわけで、部品数も大幅に減少する上にパフォーマンスも向上します。最初からデュアルポート用に開発されたメモリシステムだから可能になる特徴です。
Return to IC Collection