当前位置:首页 » 存储配置 » 内存储器物理地址的计算

内存储器物理地址的计算

发布时间: 2022-08-27 13:42:42

存储器地址的段地址、偏移地址和物理地址

1、(1)段地址:2314H,偏移地址:0035H,物理地址:23175H
(2)
段地址:1FD0H,偏移地址:00A0H,物理地址:1FDA0H2、依次为85H~8CH,计算公式:有效地址=物理地址-DS*16。由于是16位机,一次处理数据16位,即2字节,这里有8个字节,所以,要访问4次。

㈡ 什么是逻辑地址什么是物理地址在实模式下,如何求存储器的物理地址假设一个

逻辑地址和物理地址的区别是:
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。
物理地址(Physical Address) 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。
虚拟内存(Virtual Memory)是指计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员编制并运行比实际系统拥有的内存大得多的程序。这使得许多大型项目也能够在具有有限内存资源的系统上实现。一个很恰当的比喻是:你不需要很长的轨道就可以让一列火车从上海开到北京。你只需要足够长的铁轨(比如说3公里)就可以完成这个任务。采取的方法是把后面的铁轨立刻铺到火车的前面,只要你的操作足够快并能满足要求,列车就能象在一条完整的轨道上运行。这也就是虚拟内存管理需要完成的任务。在Linux 0.11内核中,给每个程序(进程)都划分了总容量为64MB的虚拟内存空间。因此程序的逻辑地址范围是0x0000000到0x4000000。有时我们也把逻辑地址称为虚拟地址。因为与虚拟内存空间的概念类似,逻辑地址也是与实际物理内存容量无关的。 逻辑地址与物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。

㈢ 计算机的物理地址是用多少位表示的

计算机的物理地址是用20位表示的。
物理地址指的是在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址(Physical Address),又叫实际地址或绝对地址。
地址从0开始编号,顺序地每次加1,因此存储器的物理地址空间是呈线性增长的。它是用二进制数来表示的,是无符号整数,书写格式为十六进制数。
它是出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果。用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
在实地址方式下,物理地址是通过段地址乘以16加上偏移地址得到的。而16位的段地址乘以16等同于左移4位二进制位,这样变成20位的段基地址,最后段基地址加上段内偏移地址即可得到物理地址。
20位物理地址计算方法如下:
物理地址=段地址*16d+偏移地址

㈣ 操作系统的物理地址怎么计算

其实第一条回答是正确的,我在这里为网友们追加一个解释:

按照书上定义,在页式存储系统中,

绝对地址 = 块号 x块长 +业内偏移地址。
相对地址 由一段内存的高bit位作为页号,低bit位作为页内偏移地址

那重要的一点是,如果找出这三个变量。且看该题:
每页1KB,说明了,业内偏移地址的范围是0~1023byte 换句话说,页内偏移地址占16bit中的 0-9bit, 那按照相对地址的概念,那10-15 bit就该为页号地址了。

那么, 0x0A5C <=> 0000 1010 0101 1100
则前面 0000 10 这6个bit 表示页号,换算成十进制为 2,也即是页号为2,再按照页表推算,即物理块号就为4, 而4再换算成16进制,即是0001 00;而后面 10 0101 1100 这10个bit位,理所当然的为页内偏移地址了。 则物理地址就该为0001 00 (占据10-15bit)+ 10 0101 1100 (占据0-9bit) = 0001 0010 0101 1100

他的所谓凭接,其实就是让0001 00 占用bit 10-15.

㈤ 若某存储器容量为2KB,在计算机存储系统中,其起始地址为2000H:3000H,请计算出该存储器物理地址的范围。

存储器容量为2KB,其地址范围就是0000H~07FFH。
其起始地址为2000H:3000H,该存储器物理起始地址就是23000H。
那么,末尾地址:237FFH。

㈥ 逻辑地址转换成物理地址的计算题

页表可以实现从页号到物理块号的地址映射。通过逻辑地址的页号来寻找页表,从而获得物理块号;在将页内地址直接送入物理地址寄存器的块内地址字段中。将块号和块内地址拼接成实际访问地址,即可得到物理地址。

物理地址的计算公式为:物理地址=块的大小(即页的大小L)* 块号f+页内地址d

代入本题解答:

页号=int(2500/1024)=2;页内位移=2500mod1024=452;假设页号2对应块号1,则物理地址为:

物理地址=1024*1+452=1476

(6)内存储器物理地址的计算扩展阅读:

逻辑地址(LogicalAddress)即通过电脑程序产生的与段相关的偏移地址部分,也叫做相对地址;

物理地址,即计算机中每一个字节单元的唯一存储地址,也叫做实际地址或绝对地址。

利用所给的逻辑地址首先找到在页表中的那一页,即页号,再者利用所给的逻辑地址计算出在页表的页偏移量,从而利用页表所对应的物理块计算出块号,再利用块号的基础上计算出所给的偏移量。(一般只针对于动态重定位的变化使用)

㈦ 什么是逻辑地址什么是物理地址

逻辑地址: 是指由程序产生的与段相关的偏移地址部分。又称绝对地址。

物理地址:在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址,又叫实际地址或绝对地址。

一、关系:逻辑地址和物理地址相对的。物理地址是唯一的,逻辑地址的相对的。

二、表达方式:

1、逻辑地址:其表达形式为“段地址:段内偏移地址”。

2、物理地址:CPU与存储器进行数据交换时在地址总线上 。

(7)内存储器物理地址的计算扩展阅读:

一、逻辑地址的产生背景

追根求源,Intel的8位机8080CPU,数据总线(DB)为8位,地址总线(AB)为16位。那么这个16位地址信息也是要通过8位数据总线来传送,也是要在数据通道中的暂存器,以及在CPU中的寄存器和内存中存放的,但由于AB正好是DB的整数倍,故不会产生矛盾!

但当上升到16位机后,Intel8086/8088CPU的设计由于当年IC集成技术和外封装及引脚技术的限制,不能超过40个引脚。但又感觉到8位机原来的地址寻址能力2^16=64KB太少了,但直接增加到16的整数倍即令AB=32位又是达不到的。

故而只能把AB暂时增加4条成为20条。则2^20=1MB的寻址能力已经增加了16倍。但此举却造成了AB的20位和DB的16位之间的矛盾,20位地址信息既无法在DB上传送,又无法在16位的CPU寄存器和内存单元中存放。于是应运而生就产生了CPU段结构的原理。

二、物理地址的计算方法

在实地址方式下,物理地址是通过段地址乘以16加上偏移地址得到的。而16位的段地址乘以16等同于左移4位二进制位,这样变成20位的段基地址,最后段基地址加上段内偏移地址即可得到物理地址。

20位物理地址计算方法如下:

物理地址=段地址*16d+偏移地址。

㈧ 内部RAM中 位所在字节的字节地址的计算

单片机内部RAM中低128字节的20H~2FH共16个字节可以用位寻址方式访问其各位。共128个位地址为00H~7FH。假设位地址为48H,那么单元地址=48H/8+20H=29H。特殊功能寄存区中有的可以位寻址,用查表法,就可以得到,例如90H,查表得到,对应的字节地址为90H。

低128字节中的00H~1FH共32个单元通常作为工作寄存器区;30H~37H共80个单元为用户RAM去,作堆栈或数据缓冲;80H~7FH单元组成高128字节的专用寄存器区,也就是特殊功能寄存区。它们零散地分布在其中,并没有占满所有地址空间,对空闲地址的操作是无意义的。

(8)内存储器物理地址的计算扩展阅读

MCS-51单片机存储器结构介绍:

MCS-51单片机存储器采用哈佛结构(har-vard),在物理结构上分为程序存储器空间和数据存储器空间,细分为:片内、片外程序存储器和片内、片外数据存储器。

这4个存储空间存在地址冲突问题:数据存储器与程序存储器的64KB地址空间重叠;程序存储器中片内与片外的低4KB地址重叠;数据存储器中片内与片外最低的256B(8031仅有低128B)地址重叠。

在程序存储器中,片内地址某些单元存储空间,留给系统使用。片内数据存储器共256B地址空间,分为低128B和高128B。

低128B又分为工作寄存器区、位寻址区和用户RAM区;高128B又叫特殊功能寄存器,这些寄存器的功能具有专门的规定,用户不能修改其结构。存储器中共有11个可位寻址的位地址。其中,片内数据存储器中有128个;特殊功能寄存器中有83个。

㈨ 内存单元物理地址怎么计算,如内存单元偏移地址为20C0H,DS=0C00EH,求物理地址,主要是计算过程、、、

要相信自己,明显答案错了

㈩ 微机内存储器的地址是按字节编址的是什么意思

按照字节编址,每个内存单元的地址,不称为物理地址而是线性地址,线性地址通过CPU内存管理单元(MMU)来进行转换
32位cpu地址线拥有32根,寻址能力达到4GB,而P4处理器的地址线则拥有35根,可以寻址更大的空间。但是实际内存达不到CPU的寻址空间大小,此时CPU的MMU就需要对线性地址进行向物理地址的转化,此时线性地址就和物理地址不一样了。
决定一个内存单元的物理地址时需要根据当前的内存管理方式进行计算,首先根据虚拟地址计算得到线性地址,然后根据分页机制是否打开,如果没有使用分页机制,线性地址就是物理地址,如果打开分页机制则根据页目录和页表项来计算得物理地址。
按照x86 32位处理器,虚拟地址就是程序中所使用的逻辑地址,虚拟地址计算如下:
首先通过查段选择子寄存器(16位模式下成为段基址寄存器,比如读取数据用DS寄存器)中选择子的第2位,0则从全局描述符表(GDT,Global Descriptor Table)1则从局部描述符表(LDT Local Descriptor Table)。全局描述符从GDTR寄存器找到描述符表的物理基地址(后称简称为GDTBA,GDT Base Address),然后GDTBA + DS & 0xFFF8得到的地址就是该选择子指向的描述符,然后根据描述符中记录的段基址 + 偏移(可以是指令中的地址码,也可是si,di中的数值)就得到了线性地址(Linear Address),而局部则有些不同,因为LDTR中放的不是局部描述符表的物理基地址,而是在全局描述符表的一个描述符选择子。首先会计算LDT的物理基地址,方法同上,然后再计算描述符地址,最后计算成Linear Address.如果没打开分页,这个就可以是物理地址了。如果打开分页机制,还要做Linear Address 到物理地址的转化(Physical Address)。
线性地址是32位,高十位是页目录项索引,中间十位是页表项索引,最后12位是页内偏移,当然这是在选用4KB小页的情况,大页是4MB,则后22位都是页内偏移。页目录物理基地址存放在CR3中,共有1024项,因此用线性地址高10位作索引,找到相应的页目录项。在小页模式中,该项保存的是页表的高20位地址,因为页表只有4KB,所以低12位不需要。通过线性地址中间十位作页表项索引和页表基址进行计算得到页表项,该项中保存的物理页面的基址,基址加上线性地址低12位页内偏移,就得到了物理地址。在大页模式中,就省去了查页表这一步骤。

热点内容
sql注入补丁 发布:2024-12-22 13:32:58 浏览:120
小区高层消防逃生怎么配置 发布:2024-12-22 13:29:20 浏览:716
服务器配置光纤网卡ip 发布:2024-12-22 13:22:47 浏览:516
地图下载源码 发布:2024-12-22 13:18:40 浏览:393
navicat存储过程导出 发布:2024-12-22 13:12:44 浏览:299
androidservice线程 发布:2024-12-22 13:04:57 浏览:301
ntplinux服务器配置 发布:2024-12-22 12:28:23 浏览:268
android模拟机 发布:2024-12-22 12:26:08 浏览:609
贪玩蓝月密码如何修改 发布:2024-12-22 12:16:54 浏览:985
ps4无法上传存档 发布:2024-12-22 12:10:23 浏览:524