- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:pic32mxのデータ幅)
PIC32MXのデータ幅について
このQ&Aのポイント
- PIC32MXは32ビットアドレス空間のCPUであり、内部レジスタ関連も32ビットです。
- しかし、メモリ幅は8ビットであり、データメモリを参照すると1アドレス1バイトデータで表示されます。
- このように、PIC32MXは32ビットのCPUであるが、メモリ幅は8ビットであると言えます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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 ビットデバイスの場合は同じワードサイズ) である必要がある
その他の回答 (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 の表示幅の選択が可能です
お礼
koujikuu様、 ご回答ありがとうございました。 よくわかりました。
補足
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が一般的であるようにも思えますが、いかがでしょう。