- 572 名前:552 mailto:sage [2006/03/20(月) 01:10:48 ]
- >>565
>>566 >>567 私、まだわかってないみたいですね・・・ 皆さんのアドバイスを元に私なりに整理してみました。 添削していただけると幸いです。 前提条件(簡単化のため) プロセッサがサポートするバイトオーダー: ビッグエンディアン プロセッサが使用可能なデータバス幅 : 16bit プロセッサに接続しているメモリのデータバス幅 : 16bit メモリのスペック:2Mワードx16bit (容量4Mbit) このシステムで使用したいメモリの総容量: 4Mbit この前提条件の場合、プロセッサには1個のメモリが接続される構成となる。(メモリとプロセッサのデータバス幅が同じなので) また、 このメモリの0番地からプロセッサが16bitリードすると、メモリの最初のワードが読み込まれる。 2番地からプロセッサが16bitリードすると、2番目のワードが読み込まれる。 1番地からプロセッサが16bitリードすると、最初の下位ハーフワードと2番目の上位ハーフワードが読み込まれる。 (プロセッサが奇数番地からのワード読み込みをサポートしていたならばの話) さらに unsigned char tmp; *(unsigned long*)0x0000 = 0xaabbccdd; tmp = *(unsigned char*)0x0001; をするとtmpの中身は0xbbということになる。(メモリの最初のワードから読み出される) そして、 この場合、プロセッサが使用可能な物理メモリ空間の大きさは512k(4M / 8) どんなもんでしょうか?
|

|