Octo SPIインタフェースは、2つの異なるプロトコルで動作することができます。レギュラーコマンドプロトコル(シングルエンドクロック:3.3V信号)とHyperBusプロトコル(差動クロック:1.8V信号)です。各プロトコルは、インダイレクトモード、自動ステータスポーリングモード、メモリマップドモードの3つの動作モードをサポートしています。
レギュラーコマンドプロトコルは、OCTOSPIがコマンドを使って外部メモリデバイスと通信する基本的なフレームフォーマットで、各コマンドは最大5つのフェーズを含むことができます。対応可能な外部メモリデバイスは、Single SPI、Dual SPI、Quad SPI、Dual Quad SPI、Octo SPI のメモリです(図4)
HyperBusプロトコルは、HyperRAMやHyperフラッシュ・メモリと通信するプロトコルです(図5)
HyperBusは、ダブルデータレート・インタフェースを採用し、1クロック当たり2つのデータバイトがDQ入出力(IO)信号を介して転送されるので、高いスループットの読み出し/書き込みが可能です。フレームは、コマンド/アドレスフェーズ(以下、CA)とデータフェーズの2つのフェーズで構成されます。
CA期間中、OCTOSPI_DQSラインはリードライトデータストローブ(以下、RWDS)として使用され、追加の初期アクセスレイテンシを挿入する必要があるかどうかを示します。CA期間中にRWDSがLowだった場合、1つのレイテンシーカウント(以下、tACC)のみが挿入されます。また、Highであった場合、追加で2倍のtACCが挿入されます。
tACCは、データが転送される前に初期レイテンシー要件を満たすために使用され、データ転送のないクロックサイクル数を表します。特定のクロック周波数に必要な初期レイテンシーカウントはデバイスに依存し、HyperRAMのコンフィギュレーションレジスタで定義されます。
Hyperフラッシュメモリの場合、RWDSはリードデータストローブとしてのみ使用されます。
動作モードには、「インダイレクトモード」「自動ステータスポーリングモード」「メモリマップドモード」の3種類があります。
「インダイレクトモード」は、通常のSPIと同じモード(読み出し/書き込み/消去操作)です。HyperBusプロトコルやレギュラーコマンドプロトコルは問いません。CPUやDMAを用いてOcto SPIのデータレジスタを介して行う全ての操作に対応しています。外部メモリデバイスの設定にも使えます。
「自動ステータスポーリングモード」では、メモリのステータスレジスタをハードウェアで完全に管理する自動ポーリングが可能です。この機能により、ソフトウェアのオーバーヘッドやソフトウェアによるポーリングの必要がなくなります。
ポーリングの結果が一致した場合には、割り込みを発生させることもできます。
「メモリマップドモード」は、外部メモリに対し、あたかもメモリマップに割り当てられた内蔵メモリのようにアクセスできるモードです。外部メモリからコードを実行することもできます(図6)
(次の記事を読む)
Copyright © ITmedia, Inc. All Rights Reserved.