内存编址
- 格式:doc
- 大小:28.00 KB
- 文档页数:2
内存地址的计算⽅法
内存是按字节编址的,所以单位是字节哈,1字节可是等于8位的。
因为计算的范围⼀般⽐较⼩,所以就记住两个就够了。
记住⼏个常⽤的2的10次⽅为1024即1KB
2的20次⽅=(2的10次⽅)的平⽅,即1MB就⾏了
如果要求更⼤的,那就再记住2的40次⽅=(2的10次⽅)的4次⽅=1GB,⼀般就够⽤了。
DFFFF-A0000 = 3FFFF
⼀眼看不出来⼤⼩滴,或许你要⽤笔算,不过⽤这个⽅法两眼就能看出来:
3FFFF展开为2进制就是2的18次⽅,是吧,即
2的10次⽅乘以2的8次⽅=1K*256即256KB
或者直接2的20次⽅/2的2次⽅=2的18次⽅。
⼀般选就近原则。
1MB/4=256KB
32K*8bit=256Kb=(256KB/8bit)
在⽹上找的另外⼀道题:
计算机SRAM容量为4K x 8,配置地址⾸地址为:06800H,则其末地址是多少
a.38800H B.10800H C.077FFH D.07800H
分析:
公式:
内存容量=末地址-⾸地址+1
4K*8bit = 4KB即2的平⽅乘以2的10次⽅,2的12次⽅,12/4=3(转为16进制)即1000H
01000H=末地址-6800H+1H
末地址=01000H+6800H-1H
末地址=077FFH。
内存编址方法
内存编址方法是计算机系统中的一种重要的数据存储方式。
内存编址方法将内存中的数据按照一定的规律进行编址和存储,以方便计算机系统对数据的访问和操作。
常见的内存编址方法包括线性编址、分段编址和分页编址。
在线性编址中,内存中的地址是连续的,每个内存单元都有一个唯一的地址。
分段编址将内存空间划分为若干个段,每个段有不同的起始地址和长度,不同的段可以共享同一个物理地址空间。
分页编址则将内存空间划分为若干个固定大小的页面,每个页面有一个唯一的页面号,不同的页面可以分配在不同的物理地址空间中。
不同的内存编址方法适用于不同的应用场景。
线性编址适用于内存容量较小的系统,分段编址则适用于需要动态管理内存空间的大型系统,而分页编址则可以提高内存访问的效率,减少内存碎片和浪费。
总之,内存编址方法是计算机系统中非常重要的一部分,它决定了计算机系统对数据的访问和操作方式。
了解不同的内存编址方法可以帮助我们更好地理解计算机系统的工作原理,提高对计算机系统的认识和应用能力。
- 1 -。
理解“统一编址与独立编址、I/O端口与I/O内存”引言:从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接入,就用自己的接口和总线上的某个匹配接口对接……于是总线上出现了各种设备:内存、硬盘,鼠标、键盘,显示器……对于CPU而言,如果它要发数据到某个设备,其实是发到对应的接口,接口电路里有多个寄存器(也称为端口),访问设备实际上是访问相关的端口,所有的信息会由接口转给它的设备。
那么CPU 会准备数据到数据总线,但是诸多接口,该发给谁呢?这时就须要为各接口分配一个地址,然后把地址放在地址总线上,需要的控制信息放到控制总线上,就可以和设备通信了。
对一个系统而言,通常会有多个外设,每个外设的接口电路中,又会有多个端口,每个端口都需要一个地址,为他们标识一个具体的地址值,是系统必须解决的事,与此同时,你还有个内存条,可能是512M或1G或更大的金士顿、现代DDR2之类,他们的每一个地址也都需要分配一个标识值,另外,很多外设有自己的内存、缓冲区,就像你的内存条一样,你同样需要为它们分配内存……你的CPU可能需要和它们的每一个字节都打交道,所以:别指望偷懒,它们的每一寸土地都要规划好!这听起来就很烦,做起来可能就直接导致脑细胞全部阵亡。
但事情总是得有人去做,ARM可能会这样做:他这次设计的CPU是32位的,最多也就能寻址2^32=4G空间,于是把这4GB空间丢给内存和端口,让他们瓜分。
但英特尔或许有更好的分配方式……(一)地址的概念1)物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义。
物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上(如显存、BIOS等)。
在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU 的地址线上。
内存编址方法
内存编址方法是计算机中非常重要的概念之一。
它是指将内存中的每一个存储单元都赋予一个唯一的地址,以便计算机可以准确地读取和写入内存中的数据。
在计算机内存中,每个存储单元的地址通常是连续的,也就是说,一个存储单元的地址是前一个存储单元的地址加上一个固定的值。
内存编址方法可以分为两种:直接编址和间接编址。
直接编址是指将数据存储在内存中的具体地址上,这种方法通常用于访问内存中的固定数据。
而间接编址则是通过指针来访问内存中的数据,这种方法通常用于访问内存中的变量和数据结构。
另外,内存编址方法还可以根据寻址方式分为三种:顺序寻址、随机寻址和串行寻址。
顺序寻址是指按顺序读取内存中的数据,随机寻址是指可以随机访问内存中的任何存储单元,而串行寻址则是按照一定的顺序访问内存中的数据,常用于存储大量的连续数据。
总之,内存编址方法是计算机中非常重要的一环,它为计算机的数据存储和访问提供了基础。
了解和掌握不同的内存编址方法,对于理解计算机的工作原理和开发高效的程序都是非常有帮助的。
- 1 -。
主存编址计算题
主存编址计算通常涉及到计算一个内存地址在主存中的具体位置。
在计算机系统中,主存(RAM)被分割为多个存储单元,每个单元都有一个唯一的地址。
主存编址计算题:
1.假设基地址是0x00400000,要访问偏移量为0x00000234 的位置,
计算实际地址(这个实际地址就是要访问的内存位置)。
2.在一个32位计算机系统中,主存容量为2GB,基地址为
0x00800000。
计算偏移量为0x00003000的地址。
3.一个16位计算机系统中,主存容量为64KB,基地址为0x3000。
计算偏移量为0x0025的地址。
4.在一个64位计算机系统中,主存容量为8TB,基地址为
0x100000000000。
计算偏移量为0x003A5000的地址。
5.一个8位计算机系统中,主存容量为256字节,基地址为0x40。
计算偏移量为0x1A的地址。
6.在一个32位计算机系统中,主存容量为1GB,基地址为
0x40000000。
计算偏移量为0x0000FABC的地址。
7.一个16位计算机系统中,主存容量为32KB,基地址为0x2000。
计算偏移量为0x0014的地址。
8.在一个64位计算机系统中,主存容量为16TB,基地址为
0x800000000000。
计算偏移量为0x007A8000的地址。
9.一个12位计算机系统中,主存容量为4KB,基地址为0x300。
计
算偏移量为0x01F的地址。
一.内存的参数:内存条的性能参数正因为内存条的性能直接关系着能否充分发挥电脑数据高速处理能力,以及电脑运行的稳定性和可靠性,所以选择内存条时一定要注意。
选择内存条应主要考虑其引脚数、容量,奇偶性、速度、品牌等几项性能指标。
1.引脚数目内存乘机的引脚数目必须与主机板上的SIMM插口的数目相匹配。
SIMM的插口有30线,72线和168线三种,所以相应的内存条也有30线,72线和168线三种。
应注意,在72线系统中,有奇偶校验使用的36位内存条,无奇偶校验则使用32线内存条。
在30线的系统中,有奇偶校验的则使用9位的内存条,无奇偶校验的使用8位的内存条。
2. 容量:30线的内存条在容量大小上一般有三种:256KB、1MB、4MB;72线的内存条现有五种容量规格:1MB、4MB、8MB、16MB、32MB,其中8MB和32MB为双面内存条。
对于30线内存条,由于它们的数据是8位/条,而奔腾机具有64位数据线,因此若用30线内存条,每次至少要用两个BANK即8条,不但滥占插槽,争抢机箱空间,且易发生接触不良和损坏等问题,再加上每条内存最大仅4MB,故586主板不用这种形式,而直接使用72线内存条。
72线内存条的数据线为32位,因此在32位的主机板上,可以单独使用。
如果用于586电脑,每次用两个完全一样的SIMM组成一个BANK即可。
3.存取速度内存条的一个重要性能是存取速度,用ns(纳秒)表示,说明系统在内存无错误的情况下作出反应的时间,常见有60ns、70ns、80ns、120ns几种,在内存条上标有-6、-7、-8等字样,该数值越小,说明内存速度越快。
内存条的存取速度与主机板速度相匹配时,方能发挥出最大的效率。
如果系统要求内存速度为80ns,但使用60ns或70ns的内存条,并没有实际的效益。
如果系统要求内存速度为60ns,而使用70ns或80ns的内存条,可千万系统崩溃。
不同速度的内存条可混合使用,但以最慢的速度为准。
内存编址和关于按字寻址和按字节寻址的理解我们先从⼀道简单的问题说起!设有⼀个1MB容量的存储器,字长32位,问:按字节编址,字编址的寻址范围以及各⾃的寻址范围⼤⼩?如果按字节编址,则1MB = 2^20B1字节=1B=8bit2^20B/1B = 2^20地址范围为0~(2^20)-1,也就是说需要⼆⼗根地址线才能完成对1MB空间的编码,所以地址寄存器为20位,寻址范围⼤⼩为2^20=1M 如果按字编址,则1MB=2^20B1字=32bit=4B2^20B/4B = 2^18地址范围为0~2^18-1,也就是说我们⾄少要⽤18根地址线才能完成对1MB空间的编码。
因此按字编址的寻址范围是2^18以上题⽬注意⼏点:1.区分寻址空间与寻址范围两个不同的概念,寻址范围仅仅是⼀个数字范围,不带有单位⽽寻址范围的⼤⼩很明显是⼀个数,指寻址区间的⼤⼩⽽寻址空间指能够寻址最⼤容量,单位⼀般⽤MB、B来表⽰;本题中寻址范围为0~(2^20)-1,寻址空间为1MB。
2.按字节寻址,指的是存储空间的最⼩编址单位是字节,按字编址,是指存储空间的最⼩编址单位是字,以上题为例,总的存储器容量是⼀定的,按字编址和按字节编址所需要的编码数量是不同的,按字编址由于编址单位⽐较⼤(1字=32bit=4B),从⽽编码较少,⽽按字节编址由于编码单位较⼩(1字节=1B=8bit),从⽽编码较多。
3.区别M和MB。
M为数量单位。
1024=1K,1024K=1MMB指容量⼤⼩。
1024B=1KB,1024KB=1MB.2. 内存编址前⾯我们知道了DRAM颗粒以及内存模块是如何扩展字长和容量的。
⼀个内存可能是8位,也可能是64位,容量可能是1M,也可能是1G。
那么内存是如何编地的呢?和地址总线,计算机字长之间⼜有什么关系呢?2.1 字长计算机在同⼀时间内处理的⼀组⼆进制数称为⼀个计算机的“字”,⽽这组⼆进制数的位数就是“字长”。
通常称处理字长为8位数据的CPU叫8位CPU,32位CPU就是在同⼀时间内处理字长为32位的⼆进制数据。
计算机原理学习之内存工作原理1. 内存工作原理CPU和内存是计算机中最重要的两个组件,前面已经知道了CPU是如何工作的,上一篇也介绍了内存采用的DRAM的存储原理。
CPU工作需要知道指令或数据的内存地址,那么这样一个地址是如何和内存这样一个硬件联系起来的呢?现在就看看内存到的是怎么工作的。
1.1 DRAM芯片结构上图是DRAM芯片一个单元的结构图。
一个单元被分为了N个超单元(可以叫做cell),每个单元由M个DRAM单元组成。
我们知道一个DRAM单元可以存放1bit数据,所以描述一个DRAM芯片可以存储N*M位数据。
上图就是一个有16个超单元,每个单元8位的存储模块,我们可以称为16*8bit 的DRAM芯片。
而超单元(2,1)我们可以通过如矩阵的方式访问,比如 data = DRAM[2.1] 。
这样每个超单元都能有唯一的地址,这也是内存地址的基础。
每个超单元的信息通过地址线和数据线传输查找和传输数据。
如上图有2根地址线和8根数据线连接到存储控制器(注意这里的存储控制器和前面讲的北桥的内存控制器不是一回事),存储控制器电路一次可以传送M位数据到DRAM芯片或从DRAM传出M位数据。
为了读取或写入【i,j】超单元的数据,存储控制器需要通过地址线传入行地址i 和列地址j。
这里我们把行地址称为RAS(Row Access Strobe)请求, 列地址称为(Column Access Strobe)请求。
但是我们发现地址线只有2为,也就是寻址空间是0-3。
而确定一个超单元至少需要4位地址线,那么是怎么实现的呢?解决这个问题采用的是分时传送地址码的方法。
看上图我们可以发现在DRAM芯片内部有一个行缓冲区,实际上获取一个cell的数据,是传送了2次数据,第一次发送RAS,将一行的数据放入行缓冲区,第二期发送CAS,从行缓冲区中取得数据并通过数据线传出。
这些地址线和数据线在芯片上是以管脚(PIN)与控制电路相连的。
存储字长和编址单位在计算机学科中,存储字长和编址单位都是指计算机内存中的数据存储方式。
存储字长是指计算机内存中可以存储的单个数据元素的位数,而编址单位则是指计算机内存中数据的最小寻址单位。
本文将详细介绍存储字长和编址单位的概念、作用以及在计算机系统中的应用。
一、存储字长存储字长是计算机内存中用于存储单个数据元素的位数。
通常情况下,存储字长决定了计算机的数据处理能力和存储容量。
在早期计算机中,存储字长较短,一般为8位或16位,而在现代计算机中,存储字长一般为32位或64位。
较长的存储字长可以提供更大的数据处理能力和存储容量,但同时也会增加计算机的成本和功耗。
存储字长的选择需要根据计算机的应用需求和性能要求来确定。
对于一些需要处理大量数据的科学计算和图形处理应用,较长的存储字长可以提高计算效率和数据处理能力。
而对于一些资源受限的嵌入式系统或移动设备,较短的存储字长可以减小计算机的体积和功耗。
二、编址单位编址单位是计算机内存中数据的最小寻址单位。
计算机内存是按照一定的编址单位进行划分和管理的,每个编址单位都有一个唯一的地址。
编址单位的大小决定了计算机内存的地址空间大小和数据的粒度。
常见的编址单位包括字节(Byte)、字(Word)和双字(Double Word)。
字节是计算机内存中最小的寻址单位,通常表示为8位。
字是指存储字长的整数倍,例如在一个32位存储字长的计算机中,一个字就是4字节。
双字则是指两个字的大小,即8字节。
编址单位的选择需要根据计算机的数据结构和存储需求来确定。
对于一些需要对数据进行精确控制和管理的应用,较小的编址单位可以提供更细粒度的数据读写和操作。
而对于一些需要高速处理大量数据的应用,较大的编址单位可以提高计算机的存取效率。
三、存储字长和编址单位的应用存储字长和编址单位在计算机系统中有着广泛的应用。
首先,存储字长决定了计算机的数据处理能力和存储容量。
较长的存储字长可以提供更大的数据处理能力和存储容量,从而支持更复杂和庞大的计算任务。
存储字长和编址单位字长是计算机处理器中用来表示和处理数据的基本单位,它决定了计算机一次能够处理的最大数据量。
编址单位是计算机内存中的最小寻址单位,它决定了内存地址的最小变化单位。
在早期计算机中,字长通常是固定的,比如8位、16位或32位。
随着技术发展,现代计算机的字长一般为32位或64位。
字长的增加可以提高计算机的处理能力和数据处理精度。
比如,64位计算机相比32位计算机能够处理更大范围的整数和更高精度的浮点数,能够更高效地处理大型数据和复杂计算任务。
编址单位是计算机内存中的最小寻址单位,它决定了内存地址的最小变化单位。
在早期计算机中,编址单位通常是字节。
一个字节由8个二进制位组成,可以存储一个字符或者一个整数等数据。
随着计算机技术的发展,出现了字、双字、四字等更大的编址单位。
比如,在32位计算机中,字长为32位,编址单位可以是字节或者双字(两个字节),在64位计算机中,字长为64位,编址单位可以是字节或者四字(四个字节)。
字长和编址单位之间的关系是,字长决定了一次能够处理的最大数据量,而编址单位决定了内存地址的最小变化单位。
字长越大,计算机能够处理的数据范围越广,但同时也需要更多的内存地址来寻址。
编址单位越小,内存空间的利用率越高,但同时也需要更多的内存地址来表示相同的数据。
因此,字长和编址单位的选择需要根据具体的计算需求和成本效益来决定。
在现代计算机中,字长和编址单位的选择通常是根据处理器的架构来确定的。
比如,x86架构的计算机一般使用32位或64位的字长,编址单位可以是字节或者双字。
ARM架构的计算机一般使用32位或64位的字长,编址单位可以是字节或者四字。
不同架构的计算机可能有不同的字长和编址单位,这也是为什么不同计算机之间的程序和数据不一定能够通用的原因之一。
总结来说,字长和编址单位是计算机中两个重要的概念。
字长决定了一次能够处理的最大数据量,编址单位决定了内存地址的最小变化单位。
字长和编址单位的选择需要根据具体的计算需求和成本效益来决定,而不同架构的计算机可能有不同的字长和编址单位。
计算机软硬件--硬件计算机软硬件--硬件1.【单选题】1分| 在CPU中,()不仅要保证指令的正确执行,还要能够处理异常事件。
A 运算器B 控制器C 寄存器组D 内部总线2.【单选题】1分| 位于CPU与主存之间的高速缓冲存储器Cache 用于存放部分主存数据的拷贝,主存地址与Cache地址之间的转换工作由()完成。
A 硬件B 软件C 用户D 程序员3.【单选题】1分| Flynn分类法基于信息流特征将计算机分成()只有理论意义而无实例A SISDB MISDC SIMDD MIMD4.【单选题】1分| 常用的虚拟存储器由()两级存储器组成A 主存-辅存B Cache-主存C Cache-辅存D 主存—硬盘5.【单选题】1分| 计算机中主存储器主要由存储体、控制线路、地址寄存器、数据寄存器和()组成A 地址译码电路B 地址和数据总线C 微操作形成部件D 指令译码器6.【单选题】1分| 若CPU要执行的指令为:MOV R1, #45(即将数值45传送到寄存器R1中),则该指令中采用的寻址方式为()。
A 直接寻址和立即寻址B 寄存器寻址和立即寻址C 相对寻址和直接寻址D 寄存器间接寻址和直接寻址7.【单选题】1分| 若某条无条件转移汇编指令采用直接寻址,则该指令的功能是将指令中的地址码送入()。
A PC(程序计数器)B AR(地址寄存器)C AC(累加器)D ALU(算逻运算单元)8.【单选题】1分| 指令系统中采用不同寻址方式的目的是()。
A 提高从内存获取数据的速度B 提高从外存获取数据的速度C 降低操作码的译码难度D 扩大寻址空间并提高编程灵活性9.【单选题】1分| 为了便于实现多级中断,使用()来保护断点和现场最有效。
A ROMB 中断向量表C 通用寄存器D 堆栈10.【单选题】1分| DMA工作方式下,在()之间建立了直接的数据通路。
A CPU与外设B CPU与主存C 主存与外设D 外设与外设11.【单选题】1分| 总线复用方式可以()。
在计算机系统中,存储器中每个单元的位数是相同且固定的,称为存储器编址单元。
不同的计算机,存储器的编址方式是不同的,主要有字编址和字节编址。
内存一般以字节(8位)或字(字的长度可大可小,16位、32位等)为单位。
1、存储地址从AC000H到C7FFFH,则共有C7FFFH –AC000H + 1 = 1C000H = 112K
如果内存地址按字(16位)编址,则共有112k * 16 位,假设该内存由28片存储器芯片构成,已知每片有16K个存储单元,则芯片的每个存储单元存储(112K * 16) / (28 * 16K) = 4位。
2、内存按字节编址[即说明一个地址占一个字节],地址从A4000H到CBFFFH,共有_字节。
若用存储容量为32K×8bit的存储芯片构成该内存,至少需要_片。
(1)A.80K B.96K C.160K D.192k
(2)A.2 B.5 C.8 D.10
解析:CBFFFH - A4000H = 27FFFH
27FFFH + 1 = 28000H [这里的+1H不可忘记哦]
转换成10进制为163840位163840B/1024=160K X 8位
160 / 32 * (8 / 8) = 5
所以选CB
3、如果主存容量为16M字节,且按字节编址,表示该主存地址至少应需要_位。
供选的答案
A.16B.20 C.24 D.32
解析:按字节编址,则一个地址占一字节,现有16M字节=2^4*2^20=2^24个字节C[即必须有24位才能表示完2^24个字节]
4、若内存按字节编址,用存储容量为32K×8比特的存储器芯片构成地址编号AOOOOH 至FFFFH的内存空间,则至少需要__片。
(1)A.4 B.6 C.8 D.10
选C 同理同理了。
5、内存按字节编址,地址从A4000H到CBFFFH,共有多少字节?若用存储容量为32K*8bit 的存储器芯片构成该内存,至少需要多少片
解析:
1) CBFFF-A4000+1=28000H 这个结果是16进制转换成2进制=0010 1000 0000 0000 0000
2)转换成10进制=2的15次方+2的17次方=160K
3)160K/32K=5块。