問題の定義
RAMモジュールの設計は、以前にも増して重要になっています。古い低速のMacintoshコンピュータで動作していたモジュールが、新しい高速マシンで間欠的な動作不良や、場合によっては全く動作しないというような問題がおこる場合があります。トレース長(trace
length)、タイミング、バスローディング(bus
loading)などは、今日の高速システムでは避けられない問題点となっています。
問題の領域
RAMモジュール設計者が直面する領域を以下に列挙します。
- 信号線の経路設計(Routing of signal lines)
- 部分スタッフィングオプション(Partial Stuffing
options)
- 信号線の長さ
- バイパス容量の分配
- クロックタイミング
なぜ過去には、さほど問題にはならなかったか
安定したRAMメモリの設計は常に難しいものでしたが、過去の比較的遅いバススピードでは設計にかなりの余裕が許されました。システムをより高速にしたいという要求は、CPUの速度を新しいレベルに到達させ、このことは技術の進歩とともに今後も確実に続いて行きます。それとともに、より完全なものをつくることは困難になってきています。現代のシステムでは、高性能を絞り出すため、メモリーとI/Oスピードはつり上げられ、それに伴ってシステム全体のバランスを取る必要が生じます。その結果、システム全体の性能を可能な限り向上させるため、メモリバスは高速になってきています。これらの新しい高速なバスにより、伝統的なRAMモジュールの設計の限界が明らかになってきています。
現代のRAMモジュール設計の留意点
RAMメモリの安定性の向上に役立つ、多くの設計技法があります。第一にトポロジーの設計に注意してください。全ての信号線の長さに気を配り、可能な限り同じ長さにしてください。特にアドレスバスには注意してください。というのは、通常もっとも負荷がかかるからです。さらにデータバスのそれぞれのバイトの経路(routing)は、最も単純になるよう計画してください。以上のような目標を達成するためにRAMとクロックチップの配置にも考慮してください。
製品にスタッフオプション(stuffing
options)を付けようとする場合(いわゆる部分スタッフ版、partially
stuffed version)、終端処理をしていないスタブ(unterminated
stabs)を残さないように、スタッフRAM(stuffed
RAM)を信号線の末端に置くようにしたください。さらにその上にクロックの負荷は全てのスタッフオプション(staffing
optons)と調和させてください。
製品は100Mhzで動作するよう設計してください。また、非常に重要な信号線の経路設計は、可能であれば手作業で設計(hand-route)してください。自動ルータ(autorouters)の多くは、制約条件が非常に多い状況では、うまく機能を果たしません。そのような機能を持つ自動ルータ(autorouters)の場合でも、全ての制約条件を取り入れて複雑になってしまうため、効率が良くありません。とりあえず手作業で経路設計(routing)したほうが、許される時間内では、良い結果をだす場合が多くあります。心に留めていただきたいことは、新規の設計の場合は、実際の設計上の制約条件の感じをつかむため、何回か手作業での経路設計(routing)を繰り返す必要があることです。
RAMに可能な限り近くに配置した、バイパスキャップ(bypass
caps)を持つ電源と接地(ground)の専用面
を計画して下さい。コネクタパッドから電源と接地(ground)、そしてデバイスへのバイア(via)の数は適切にしてください。デバイス当たり、電源ピンと接地(ground)ピンに対してバイア(via)一つを推奨します。電源と接地(ground)に対して25ミリ(.025)を強く推奨しまが、どのような環境でも10ミリ(.010)以下にはしないでください。
最後に、クロックに対してはゼロ遅延バッファ(zero-delay
buffer)を使用して下さい。Cypress
CY2305が例としては非常に良く、メモリとPCIのクロックの問題を非常にうまく解決しています。このデバイスは、常にCLKOUTをREF入力に比較して歪みゼロ(zero
skew)に調整します。この特性のため、このデバイスに対してはいくつかの設計法が選ぶことができます。

Cypress
CY2305クロックバッファの遅延アジャスト可能な構成
Reference
1において、CLK1からCLK4までの出力は、CLKOUT信号上のCLoadに合わせるように、進めたり遅らせたりすることができます。CLKOUTの対する負荷が大きければ、REFに相対するCLK1からCLK4の信号は進められます。その反対に、CLKOUTに対する負荷が少なければ、REFに相対するCLK1からCLK4までの信号は遅れさせられます。この意味することは、駆動デバイス(この場合はRAMですが)によってなされる実際の負荷を補償するようにクロックが合わされるということです。タイミングの進みあるいは遅れの割合は大凡50ps/pfです(正確の数値はCypressの仕様を見て下さい)。注意していただきたいのは、CLK1からCLK4までの全ての出力に対して負荷が等しく、個々の出力間でのクロックの歪み(skew)を最小にすることです。

Cypress
CY2305クロックバッファの自動遅延構成
REF相対でのクロックの遅れや進みが特にないとき、Reference
2の設計が採用されると思います。この場合、CLKOUTが直接に駆動クロック信号の一つとして使われます。デバイスのREFからCLKOUT信号への歪み(skew)がゼロのため、残りのCLK2からCLK4までの全ての信号は、実際の負荷の影響のあるなしに関わらず、REF信号と同調しています(繰り返しますが、全ての負荷は等しいと仮定します)。
最後に、メモリの密度を上げるために、メモリの並列化を検討するメーカもあるかと思います。この技法は「スタック」メモリ(stacking
memory)あるいは複合メモリ(composit
memory)として知られています。個々のRAMデバイスを、基盤上に半田付けするというスタック法を利用した設計もあります。これは数年前の複数のSIMMあるいはDIMMモジュールを一つの結合用の基盤に差し込んで、それをホストに差し込んだ、複合メモリ製品の現代版そのものです。複数のダイをチップパッケージのなかで実際に並列に結線した、内蔵RAMデバイスという設計を採用した技法もあります。どちらの場合でも、このアーキテクチャが並列バスという特性を持つため、バスの負荷とタイミングが非常に重要になります。これを書いている時点で、アップルはこのような技法での動作を保証していはいませんし、デバイススタックに基づく技法での動作を保証していません。
もう一度、注意とコメント
以下にあなたが(ここに今直面している問題点を書いてください)の問題の解決しようと作業しているとき検討すべき重要な項目を列挙します:
- デバイスと駆動するクロックの数を合わせて下さい。
- クロックと部分的にスタッフされた製品とを確実にバランスさせてください。
- CAD/CAMからの出力の信号線の長さ(絶対長と相対長)を充分調べてください。
- 重要な信号については手作業で経路設計(hand
route)して下さい(あるいは少なくとも自動ルーティングされた信号を解析してください)。
- 製品を設計する場合、スタックされたデバイス(stacked
deveices)に依存しないでください。
まとめ
システムが高速になるにしたがい、安定したよいRAMを設計することはますます難しくなってきています。しかしながら前もって充分に気を配り、考えて設計すれば、うまく動作するよう製品を設計することができます。
|