按字编址与按字节编址

按字编址与按字节编址


要清楚按字编址和按字节编址的区别,先要知道 比特(bit),字节(byte),字(word) 之间的关系。

在计算机系统中,总线以固定大小的一块数据进行传输,这一块的数据也称为字(word),如今的计算机一般是32位和64位的,这里的位数则是指总线进行数据传输时一块数据的内存大小,也就是前面字的大小。

32位的计算机中:32位(bit)=4字节(byte)=1字(word)
64位的计算机中:64位(bit)=8字节(byte)=1字(word)

由此可见,在不同位数的计算机中,一个字的大小也是不同的,所以一个字等于多少字节,是多少位,与计算机的系统硬件有关,不可以错误的对一个字是几字节下固定的判断。

关于字节,也叫做byte,是用于计算机存储容量的一种单位(b代表位bit,B代表字节byte),也用来表示计算机编程语言中数据类型的单位,例如在Java中:

  • 整数类型:
    byte:1字节
    short:2字节
    int:4字节
    long:8字节
  • 浮点类型:
    float:4字节
    double:8字节
  • 字符型:
    char:2字节
  • 布尔型:
    boolean:1字节

在不同编码方式中,英文字符和中文汉字所占的字节也不同:
ASCII:英文字符(1字节)、中文汉字(2字节)
UTF-8:英文字符(1字节)、中文汉字(3字节)
Unicode:英文字符(2字节)、中文汉字(2字节)

1byte=8bit,1024byte=1KB,1024KB=1MB,1024MB=1GB,1024GB=1TB
一般在做题过程中,单位的转换以二进制表示:1KB=2的10次方B,然后依次类推,1MB=2的20次方B…

在计算机组成原理存储器章节中讲到,一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,均可以存储一位二进制代码。这个二进制代码位,是存储器中最小的存储单位,称为存储位元。由若干个存储位元组成一个存储单元,然后再由许多存储单元组成一个存储器。

存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址叫字地址
存放一个字节的存储单元,称为字节存储单元,相应的地址称为字节地址
如果计算机中可编程的最小单位是字存储单元,则该计算机称为按字寻址的计算机
如果计算机中可编程的最小单位是字节,则该计算机称为按字节寻址的计算机
一个机器字可以包含数个字节,所以一个存储单元也可以包含数个能够单独编制的字节地址。

例如,一个16位二进制的字存储单元可存放两个字节,可以按字编址,也可以按字节编址。当用字节编址时,16位的存储单元占两个字节地址。


例题

例题1.某存储器按字节编址,容量为1MB,cache为256B,块大小为4个字,一个字为4个字节。
(1)cache地址为几位?有多少块?
(2)主存地址为几位?有多少块?

例题中又出现了另外的一个单位:
说到块,就不得不提到cache高速缓冲存储器,cache的引入也是为了解决CPU与主存之间速度的不匹配问题,CPU访问数据的速度远大于主存。cache与主存之间数据交换以块为单位,CPU与cache之间的数据交换以字为单位。一个块由若干个字组成,是定长的。当CPU读取内存中的一个字时,便发出此字的内存地址到cache和主存中,块的大小要通过实验的方式来决定。

在这里插入图片描述

这里说一下程序访问的局部性原理:

(1)程序执行时,除了少部分的转移和过程调用指令外,在大多数情况下仍然是顺序执行的。
(2)过程调用将会使程序的执行轨迹由一部分区域转移至另一部分区域,但是经研究发现,过程调用的深度在大多数情况下小于等于5。
(3)程序中存在许多循环结构,这些虽然只由少数指令构成,但是它们将多次被执行。
(4)程序中还包括许多对数据结构的处理,它们往往局限于很少的范围。

局部性原理体现的方面:

  1. 时间局部性:一条指令被执行了,则不久后可能再次被执行。
  2. 空间局部性:某一存储单元被调用,在一定时间内,与它相邻的单元可能被使用。

存储系统中专Cache-主存层次属和主存-辅存层次均采用了程序访问的局部性原理。
在计算机操作系统中,非连续分配的基本分页存储管理中,快表的引入就是以局部性原理为原理支持。页表放在内存中,先从内存中访问页表,再根据页表访问内存中的物理地址,把页号,页表项放入高速cache中,这样就形成了快表(TLB)。

回到正题,块的大小,先把主存和缓存按照大小相等的块进行划分。主存分成M个块,缓存分成C个块,其中M远大于C

在这里插入图片描述

具体的解答过程:
某存储器按字节编址,容量为1MB,cache为256B,块大小为4个字,一个字为4个字节。
(1)cache地址为几位?有多少块?
(2)主存地址为几位?有多少块?
解:
存储器即主存,容量为1MB=2的20次方B,块大小为4个字,一个字4个字节。一个块=16个字节=2的4次方个字节。

按字节编址,主存容量为2的20次方个字节,即主存地址的位数为20
2的20次方/2的4次方=2的16次方=64K(块数=主存的字节数/一个块的字节数),即主存有64K个块

按字节编址,cache容量为256B=2的8次方个字节,即cache的位数为8
2的8次方/2的4次方=2的4次方=16,即cache有16个块

总结:

  1. 先要明白块的意义:cache与主存之间数据交换的单位
  2. 关于二进制数的转换,B、KB、MB…
  3. 明确cache的工作原理

例题2. 某存储器按字编址,容量位为2MB,cache为512B,块大小为8个字,一个字为4个字节,n,m,b,c分别为多少位?

在这里插入图片描述
存储器容量2MB=2的21次方B
按字编址,1字=4B=2的2次方B,所以存储器的位数=2的21次方B/2的2次方B=2的19次方B,即n=19
存储器的块内地址与缓存的块内地址相等,就是求一个块的大小。
记住cache与主存之间数据交换的单位就是块,就明白了为什么存储器的块内地址与缓存的块内地址相等
1块=8字=2的3次方,即块内地址b=3
所以求得:m=n-b=19-3=16
缓存cache的容量为512B,512B/4B=128=2的7次方,即b+c=7
求得c=7-b=4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021年AI关键趋势,AI芯片初创公司可能发生并购

来源:雷锋网作者:包永刚编译:雷锋网人工智能(AI)和机器学习仍然是技术决策者、行业人士和投资者关注的重点。标普全球市场财智(S&P Intelligence)2020 7月发布的调查显示,有58%的…

English trip -- VC(情景课)5 Around Town

Around Town 城市周围 Talk about the picture 看图说话 sentences Where are you? Im in the Meten classroom. What do you do? I study English at the school. I eat dinner at the restaurant I go shopping at the supermarket Do you study English at th…

CPU组成结构

CPU组成结构 CPU总体构图 CPU中央处理器(Central Processing Unit) CPU的结构框图:CPU内部由ALU(算术逻辑单元)、CU(控制器)、寄存器(PC、IR、PSW、DR、通用寄存器等)、…

【剑指offer】面试题26: 树的子结构(Java)

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 代码: package offer; class TreeNode { int val; TreeNode left null; TreeNode right null; Tr…

每一个科学家的内心都住着一位哲学家(节选)

来源:腾讯大学(ID: tencent_university)作者:张首晟(斯坦福大学)不少科学家的哲学造诣都很高。在哲学中,有着正负对立的世界观:有阴必有阳、有正必有负、有天使就会有魔鬼。这种哲学观念是如何在…

win10安装RabbitMQ

安装Erlang 去官网下载Erlang的最新版本:https://www.erlang.org/downloads 我这里下载的是OTP 21.0.1 Windows 64-bit Binary File。 下载下来点击一步步进行安装,我的安装位置是D:\Program Files\erl10.0.1 安装好之后, 添加环境变量ERLANG…

总结下载Spring Framework的jar包

总结下载Spring Framework的jar包 下载官网:Spring官网

ros2中gazebo安装的注意事项

Install From source(推荐安装Fortress版本,好像很方便) ROS Be sure youve installed ROS Humble (at least ROS-Base). More ROS dependencies will be installed below. Gazebo Install either Edifice, Fortress, or Garden.(没有har…

谷歌对2021年的六个预测:数据和云技术的革命即将到来

来源:AI前线作者:Debanjan Saha译者:平川策划:钰莹预测是充满挑战的,因为具体的预测取决于特定的时间框。但从云应用方面表现出的趋势来说,我们 2020 年看到的一些事情可能预示着 2021 年可能出现的变化。经…

Vue笔记:webpack项目vue启动流程

VUE启动流程 1. package.json 在执行npm run dev的时候,会在当前目录中寻找 package.json 文件, 有点类似 Maven 的 pom.xml 文件,包含项目的名称版本、项目依赖等相关信息。 { # 版本信息"name": "kitty-ui","version":…

IntelliJ IDEA汉化版jar包

IntelliJ IDEA汉化版jar包 链接:IntelliJIDEA汉化版jar包 提取码:ymdx

哈工大等实现人工肌肉重大突破登上 Science!多国科学家联合实现全新驱动机理...

来源:雷锋网2021 年,机器人已经「成精」了,公然吵架、组团热舞再也不是人类专属。然鹅在很多人心里,机器人还是僵硬、机械甚至冰冷的。即便如此,技术日新月异,柔性机器人快速发展,我们对机器人的…

WOJ 18 动态无向图

一开始我是不会写的,后来点开了题解: 无话可说……那就写吧……然而第一发跑成暴力分,后来加了一个优化:就是在询问里面提到过的边都不用再加了。 然后……然后就过了呀…… 其实还有面向数据的编程的骚操作……既然卡过了那也没什…

Snipaste-2.4-Beta-x64.zip下载

Snipaste-2.4-Beta-x64.zip下载 链接:Snipaste-2.4-Beta-x64.zip下载 提取码:s8lo

AI如何帮助我们理解意识——麻省理工最新大脑研究

来源:ScienceAI编辑:文龙麻省理工学院和麻省总医院的一组研究人员最近发表了一项将社会意识与单个神经元活动联系起来的研究。据悉,这是首次在单神经元级别下找到「心智理论」的证据。测量大量的神经元是神经学的基础。即使是普通的核磁共振成…

CodeForces - 1017D The Wu

题面在这里&#xff01; 比较显而易见的暴力&#xff0c;O(2^(2n) 2^n * 100) 就可以直接做了 #include<bits/stdc.h> #define ll long long using namespace std; const int N4105; #define pb push_backinline int getint(){int x0; char chgetchar();for(;!isdigit(c…

typora-setup-x64.exe下载

typora-setup-x64.exe下载 链接&#xff1a;typora-setup-x64.exe下载 提取码&#xff1a;wiu8

【剑指offer】面试题30:包含min函数的栈

定义栈的数据结构&#xff0c;请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中&#xff0c;调用min、push及pop的时间复杂度都是O(1)。 代码&#xff1a; package offer; import java.util.Stack; class MinInStack { Stack<Integer> stack new St…

计算机操作系统——处理机调度算法

计算机操作系统——处理机调度算法 一、处理机调度的层次和调度算法的目标 1.处理及调度的层次 高级调度&#xff1a;&#xff08;周期较长&#xff0c;大约几分钟一次&#xff09; 又称为长程调度或作业调度 调度对象&#xff1a;作业 功能&#xff1a;根据算法决定将外存中…

宇宙即计算~一种新科学:斯蒂芬·沃尔夫勒姆

编辑 &#xff1a;Gemini来源&#xff1a;人机与认知实验室斯蒂芬沃尔夫勒姆这个名字&#xff0c;在中文世界里可能远谈不上家喻户晓&#xff1b;但他的英文名Stephen Wolfram恐怕反而却要熟悉得多。他是Mathematica软件的发明者和首席设计师&#xff0c;被广泛地认为是当今科学…