奇地址存取的限制
来源:互联网 发布:韩国电影 知乎 编辑:程序博客网 时间:2024/04/30 03:28
CPUからメモリへのアクセスは、8ビット単位で行ない、一回に8ビット、16ビット、あるいは32ビットの読み書きをします。(64ビットまで可能なものもあります)
一回のアクセス単位が32ビットなら32ビット境界のアドレス、16ビットなら16ビット境界のアドレスにアクセスを限定することで、CPU-メモリ間のハードウェア回路上で信号をやり取りするメカニズムが簡略化・高速化できるので、そういうアーキテクチャを採用している場合は、ソフトウェアもそれに従ってプログラムを組まないといけません。
イメージとしては、メモリ空間が一定のビット幅で帯状につながっているイメージです。例えば32ビット幅でメモリ空間をみて、
0番地 |01|02|03|04|
4番地 |11|12|13|14|
8番地 |21|22|23|24|
32ビットアクセスは、これを真横に一直線に切る形のアクセスだけが許可されています。01~04、11~14は可。02~11もひとつながりの4バイトですが、アクセスできません。32ビット境界をまたいでしまうからです。13~22の4バイトも同様の理由でアクセス不能です。13は偶数番地ですが、ダメです。
16ビットアクセスも同じで、イメージとしては16ビット幅でメモリ空間が見えていて、それを真横に切るアクセスだけが許可されています。上のメモリイメージを16ビット幅で見るとこうなります。
0番地 |01|02|
2番地 |03|04|
4番地 |11|12|
6番地 |13|14|
8番地 |21|22|
「03、04」の2バイトはアクセスできますが、「12、13」は一度のアクセスではできません。16ビット境界をまたいでしまうからです。
単純に奇数番地がアクセスできないのではなく、「アクセスしたいデータのビット幅のアドレス境界をまたぐようなアクセス」ができないのです。
1バイト(8ビット)アクセスがどのアドレスに対しても(偶数番地・奇数番地問わず)可能なことは自明ですね。
- 奇地址存取的限制
- 对IP地址的存取技巧
- memcached存取限制
- 奇艺地址
- PHP加密文本文件并限制特定页面的存取
- ogPHP加密文本文件并限制特定页面的存取
- [Thread] 執行緒資源存取限制的同步機制 - Semaphore
- 数据库中存储的是什么?数据库存取的是地址
- 关于内存高低地址 以及 数据的存取
- MAC地址绑定:克服ISP的MAC地址绑定限制
- 奇奇和小猫的故事
- 奇的哲学观
- 城也有这样的奇
- 最大的奇约数
- 最大的奇约数
- 最大的奇约数
- 最大的奇约数
- 奇校验的逻辑
- 生日处理
- 为管理成本降压
- java中的Proxy模式(二)
- 杭电 ACM 2016
- MyISAM和InnoDB的插入性能测试
- 奇地址存取的限制
- 自定义Html的Title标签显示时间
- JAVA里合并多个不相关正则表达式在一起的代码例子
- TD报Server is Not Available 解决方案汇总
- 质疑《北京年底可免费无线上网》
- Ajax第一个项目,与一个普通servlet传值进行比较,Jquery和dom方式
- Select中DISTINCT关键字的用法
- 告一段落——v0.5
- RegistryValueKind.DWord的一个bug