• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:pic32mxのデータ幅)

PIC32MXのデータ幅について

このQ&Aのポイント
  • PIC32MXは32ビットアドレス空間のCPUであり、内部レジスタ関連も32ビットです。
  • しかし、メモリ幅は8ビットであり、データメモリを参照すると1アドレス1バイトデータで表示されます。
  • このように、PIC32MXは32ビットのCPUであるが、メモリ幅は8ビットであると言えます。

質問者が選んだベストアンサー

  • ベストアンサー
  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.1

PIC32MX は、32bitデータバスなので 一度に32bit(4バイト) のデータ読み書きが可能です またMIPSマイクロプロセッサは、32bit(ワード) , 16bit(ハーフワード) , 8bit(バイト) 単位のアクセスもできます MIPS データ転送命令 参照 http://ocw.kyushu-u.ac.jp/menu/faculty/09/4/10.pdf XC32 ユーザガイド より引用 ネイティブデータサイズ(Native Data Size) ネイティブトレースの場合、[Watch] ウィンドウで使用する変数のサイズは選択したデバイスのデータメモリと同じサイズ(PIC18 の場合は同じバイトサイズ、16 ビットデバイスの場合は同じワードサイズ) である必要がある

a5900
質問者

お礼

koujikuu様、 ご回答ありがとうございました。 よくわかりました。

a5900
質問者

補足

koujikuu様、 ご回答ありがとうございました。32ビットCPUが1度に32ビット値を扱えることは理解できます。知りたいのは、内蔵RAMサイズがアドレスx32ビットの大きさなのか、アドレスx8ビットなのかということです。 XC32のNative Data Sizeに関するからするとPIC32MXは1アドレス32ビットの幅の内蔵RAMを持つデバイスのようにも思えますが、MPLAB X IDEでData Memoryを参照させると1アドレス8ビットで表示されます。 これがXC32の仕様なのかPIC32MXの仕様なのかということです。 実際は1アドレス32ビット幅のメモリが実装されているが、XC32で下位互換を考えて、1アドレス8ビットでオブジェクトを作っているのかどちらでしょう。 http://www5d.biglobe.ne.jp/~noocyte/Programming/Alignment.html#AlignmentTolerantCPU こちらのページを見ると、32ビットCPUは8ビットCPU等との互換性を考え1アドレス8ビットのRAMが一般的であるようにも思えますが、いかがでしょう。

その他の回答 (1)

  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.2

No.1 補足 データメモリ構成は、8ビット幅のメモリが 4っ並列に接続され 32ビット同時アクセスが可能と考えた方が良いです その為 アライメント制約があり32ビット境界をまたぐメモリアクセスは2回に分ける必要があり 命令により8ビットアクセス、16ビットアクセス、32ビットアクセス を選択します なお Data Memory は、Hex Display Width - One / Two / Four の表示幅の選択が可能です

関連するQ&A