{"version":"https://jsonfeed.org/version/1.1","title":"苏迟但到的主页","home_page_url":"https://kexohproject.pages.dev","feed_url":"https://kexohproject.pages.dev/json/","description":"<p>你好，欢迎访问个人主页！</p><p>擅长密码学，安全分析，数字水印等技术。</p><p>你可以联系我通过:findmykexin@gmail.com或者知乎私信。</p><p>我的知乎链接：<a href=\"https://www.zhihu.com/people/su-chi-dan-dao\" rel=\"noopener noreferrer\" target=\"_blank\">苏迟但到 - 知乎 (zhihu.com)</a></p><p>我的github链接：<a href=\"https://github.com/kexinoh\" rel=\"noopener noreferrer\" target=\"_blank\">kexinoh</a></p>","icon":"https://kexohcdn.gptapi.cyou/kexohproject/production/images/channel-2e54d141ee195646ca12a9d16507a908.jpg","favicon":"https://kexohcdn.gptapi.cyou/kexohproject/production/images/favicon-340a2925d02a0386f3b954a032834917.jpg","authors":[{"name":"苏迟但到"}],"language":"zh-cn","items":[{"id":"TtBcr83ygRm","title":"按字或者按字节编址，是不是说一个存储单元的位数就与字或字节的位数相同？","content_html":"<p data-pid=\"ePpqZxAB\">#计算机组成原理#存储单元和字的大小没有必然的关系。</p><p data-pid=\"0tfdn3XZ\">同样，地址也和字的大小没有必然关系。</p><p data-pid=\"_Ry9OL9f\">一个存储单元里面可以包含了多个字，地址也可以由多个字复合而成。</p><p data-pid=\"r9k5CMtn\">存储单元中包含多个字的就叫做多字存储器。</p><p data-pid=\"a0ZWqLar\"><b>注意：</b>在这里声明一下，在计算机中字有着很多意思，单独拿出来说的时候是指CPU进行整数运算的字的大小，但是在存储器这里指存储字长，等于数据线的宽度。</p><p data-pid=\"mN10IRbA\">为什么要开发多字存储器呢？</p><p data-pid=\"KG5ZKbWF\">因为CPU的速度很快，远快于存储器。当CPU请求一个地址内容后，会将硬盘的数据转送到主存里面，再转存到CPU中。如果单字的话，那么许多个存取周期后才能完成运输，造成了整体上的速度的短板效应。如果我们采用多字存储器的话，例如8字存储器，那么可以将转运时间减小到1/8.可以极大的减小IO所浪费的时间。</p><p data-pid=\"guOxZCgU\">同样32位的地址可以索引4GB的空间，但是64位的地址索引的空间又太大了，因此在当前版本的AMD64架构就规定了只用48位地址；一个表示虚拟内存地址的64位指针只有低48位有效并带符号扩展到64位——换句话说，其高16位必须是全1或全0，而且必须与低48位的最高位（第47位）一致，否则通过该地址访问内存会产生#GP异常（general-protection exception）。<br/>只用48位的原因很简单：因为现在还用不到完整的64位寻址空间，所以硬件也没必要支持那么多位的地址。<br/>设计为带符号扩展的原因也很简单：很多环境中，寻址空间的高一半（higher-half）有特殊用途，而低一半（lower-half）给用户做一般用途。这“高/低”可以通过最高位是1还是0来判断；如果把地址看成带符号整数，那么“负数”部分就是高一半，“正数”部分就是低一半。所以AMD64在设计成只用64位中的48位时，要求canonical form要满足带符号扩展的要求。以后就算允许更多位地址，满足当前限制的地址也仍然会是合法地址，保证了向前兼容性。</p><p data-pid=\"dlkZo52x\">在古老的DOS时代，也会用两个16位的字来描述20位的地址。如果学过汇编的话，那么这个将很容易理解。</p><p data-pid=\"AP55jMmf\">结论：存储单元包含的字的多少与字的位数无关，地址也不一定为一个字的大小。</p><p data-pid=\"44b5KDX3\">推荐一本好书，欢迎大家购买</p><a data-draft-node=\"block\" data-draft-type=\"mcn-link-card\" data-mcn-id=\"1533444443469897728\"></a><p></p>","content_text":"#计算机组成原理#存储单元和字的大小没有必然的关系。\n\n同样，地址也和字的大小没有必然关系。\n\n一个存储单元里面可以包含了多个字，地址也可以由多个字复合而成。\n\n存储单元中包含多个字的就叫做多字存储器。\n\n注意：在这里声明一下，在计算机中字有着很多意思，单独拿出来说的时候是指CPU进行整数运算的字的大小，但是在存储器这里指存储字长，等于数据线的宽度。\n\n为什么要开发多字存储器呢？\n\n因为CPU的速度很快，远快于存储器。当CPU请求一个地址内容后，会将硬盘的数据转送到主存里面，再转存到CPU中。如果单字的话，那么许多个存取周期后才能完成运输，造成了整体上的速度的短板效应。如果我们采用多字存储器的话，例如8字存储器，那么可以将转运时间减小到1/8.可以极大的减小IO所浪费的时间。\n\n同样32位的地址可以索引4GB的空间，但是64位的地址索引的空间又太大了，因此在当前版本的AMD64架构就规定了只用48位地址；一个表示虚拟内存地址的64位指针只有低48位有效并带符号扩展到64位——换句话说，其高16位必须是全1或全0，而且必须与低48位的最高位（第47位）一致，否则通过该地址访问内存会产生#GP异常（general-protection\nexception）。\n只用48位的原因很简单：因为现在还用不到完整的64位寻址空间，所以硬件也没必要支持那么多位的地址。\n设计为带符号扩展的原因也很简单：很多环境中，寻址空间的高一半（higher-half）有特殊用途，而低一半（lower-half）给用户做一般用途。这“高/低”可以通过最高位是1还是0来判断；如果把地址看成带符号整数，那么“负数”部分就是高一半，“正数”部分就是低一半。所以AMD64在设计成只用64位中的48位时，要求canonical\nform要满足带符号扩展的要求。以后就算允许更多位地址，满足当前限制的地址也仍然会是合法地址，保证了向前兼容性。\n\n在古老的DOS时代，也会用两个16位的字来描述20位的地址。如果学过汇编的话，那么这个将很容易理解。\n\n结论：存储单元包含的字的多少与字的位数无关，地址也不一定为一个字的大小。\n\n推荐一本好书，欢迎大家购买\n\n","date_published":"2022-07-21T05:34:39.000Z","_microfeed":{"web_url":"https://kexohproject.pages.dev/i/yuan-TtBcr83ygRm/","json_url":"https://kexohproject.pages.dev/i/TtBcr83ygRm/json/","rss_url":"https://kexohproject.pages.dev/i/TtBcr83ygRm/rss/","guid":"TtBcr83ygRm","status":"published","itunes:title":"New Article Title for iTunes","date_published_short":"Thu Jul 21 2022","date_published_ms":1658381679000}}],"_microfeed":{"microfeed_version":"0.1.2","base_url":"https://kexohproject.pages.dev","categories":[{"name":"Education","categories":[{"name":"Language Learning"}]},{"name":"Technology"}],"subscribe_methods":[{"name":"RSS","type":"rss","url":"https://kexohproject.pages.dev/rss/","image":"https://kexohproject.pages.dev/assets/brands/subscribe/rss.png","enabled":true,"editable":false,"id":"4KlfbtkEfzy"},{"name":"JSON","type":"json","url":"https://kexohproject.pages.dev/json/","image":"https://kexohproject.pages.dev/assets/brands/subscribe/json.png","enabled":true,"editable":false,"id":"DVFm7TYiNSq"}],"description_text":"你好，欢迎访问个人主页！\n\n擅长密码学，安全分析，数字水印等技术。\n\n你可以联系我通过:findmykexin@gmail.com或者知乎私信。\n\n我的知乎链接：苏迟但到 - 知乎 (zhihu.com)\n\n我的github链接：kexinoh","copyright":"©2024","itunes:type":"episodic","items_sort_order":"newest_first"}}