作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
为什么计算机有字节可寻址内存,而不是 4 字节可寻址内存(或 64 位的 8 字节可寻址内存)?是的,我看到它有时是如何有用的,它只是看起来不优雅和过度。优势是实质性的,还是真的只是因为传统?
最佳答案
处理器实际上确实以 64 位的数量访问内存(x86 从 Pentium 左右就开始了); 64 位处理器通常具有 128 位总线。此外,在访问主内存时,您会出现填满整个高速缓存行的突发,这甚至是更大的内存单元。
只是寻址是基于字节的;这增加了一点开销,而且一点也不过度。
今天,网络协议(protocol)绝对需要基于字节的寻址。使用基于字的寻址实现 TCP 将很困难:如果您收到 17 个字节的内容,您希望 read() 返回什么?同样,更高的层是基于字节的:如果你得到像“GET/HTTP/1.0”这样的请求行以四个字节为单位呈现,那么 HTTP 将很难实现。您基本上必须使用移位操作等将单词拆分回字节(现在处理器在硬件中执行此操作,这要归功于基于字节的寻址)。
关于memory - 为什么是字节可寻址存储器而不是 4 字节可寻址存储器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1586944/
我是一名优秀的程序员,十分优秀!