Nios II Gen2 プロセッサー・リファレンス・ガイド

ID 683836
日付 10/28/2016
Public
ドキュメント目次

3.9.1. データ転送命令

Nios II アーキテクチャーは、ロード / ストアー・アーキテクチャーの一種です。レジスター、メモリー、およびペリフェラル間のすべてのデータ移動は、ロード命令とストア命令によって処理されます。メモリーとペリフェラルは共通アドレス空間を共有します。一部の Nios II プロセッサー・コアは、メモリー・キャッシングと書き込みバッファリングの両方または一方を使用して、メモリー帯域幅を向上させています。このアーキテクチャーは、キャッシュアクセスと非キャッシュアクセスの両方に対する命令を提供しています。
表 49.  データ転送命令幅
命令 説明
ldw

stw

ldwおよびstw命令はそれぞれ、32 ビット・データ・ワードをメモリーからロード / メモリーに格納します。有効アドレスは、レジスターの内容と命令に含まれる符号付き即値との合計です。メモリー転送をキャッシュまたはバッファリングすると、プログラムの性能が向上します。このキャッシングおよびバッファリングによってメモリーサイクルの発生が乱れたり、キャッシングによって一部のサイクルが完全に抑制される場合があります。

I/O ペリフェラルのデータ転送では、ldwioおよびstwioを使用する必要があります。

ldwio

stwio

ldwioおよびstwio命令はそれぞれ、キャッシングやバッファリングを実行せずに、32 ビット・データ・ワードをペリフェラルからロードし、また、ペリフェラルに格納します。 ldwioおよびstwio命令のアクセスサイクルは、命令の順に発生することが保証されており、抑制されません。
表 50.  Narrow データ転送命令
命令 説明
ldb
ldbu
stb 
ldh
ldhu
sth ldbldbuldhおよびldhuはバイトまたはハーフワードをメモリーからレジスターにロードします。ldbおよびldhは値を 32 ビットに符号拡張し、ldbuおよびldhuは値を 32 ビットにゼロ拡張します。

stbおよびsthはそれぞれバイト値およびハーフワード値を格納します。

メモリーアクセスをキャッシュまたはバッファーすると、性能が向上します。データを I/O ペリフェラルに転送するには、表の次に説明する io バージョンの命令を使用します。

ldbio
ldbuio
stbio
ldhio
ldhuio
sthio これらの処理では、キャッシングまたはバッファリングを実行せずに、バイトおよびハーフワード・データをペリフェラルからロード / ペリフェラルに格納します。