导航:首页 > 物理学科 > cpu是如何找到物理地址的

cpu是如何找到物理地址的

发布时间:2022-07-16 18:51:11

Ⅰ cpu是如何在内存中寻址的

各种内存概念

这里需要明确的是,我们讨论的不同内存的概念是建立在寻址空间上的。
IBM推出的第一台PC机采用的CPU是8088芯片,它只有20根地址线,也就是说,它的地址空间是1MB。
PC机的设计师将1MB中的低端640KB用作RAM,供DOS及应用程序使用,高端的384KB则保留给ROM、视频适配卡等系统使用。从此,这个界限便被确定了下来并且沿用至今。低端的640KB就被称为常规内存即PC机的基本RAM区。保留内存中的低128KB是显示缓冲区,高64KB是系统 BIOS(基本输入/输出系统)空间,其余192KB空间留用。从对应的物理存储器来看,基本内存区只使用了512KB芯片,占用0000至80000这 512KB地址。显示内存区虽有128KB空间,但对单色显示器(MDA卡)只需4KB就足够了,因此只安装4KB的物理存储器芯片,占用了B0000至 B10000这4KB的空间,如果使用彩色显示器(CGA卡)需要安装16KB的物理存储器,占用B8000至BC000这16KB的空间,可见实际使用的地址范围都小于允许使用的地址空间。
在当时(1980年末至1981年初)这么“大”容量的内存对PC机使用者来说似乎已经足够了,但是随着程序的不断增大,图象和声音的不断丰富,以及能访问更大内存空间的新型CPU相继出现,最初的PC机和MS-DOS设计的局限性变得越来越明显。

●1.什么是扩充内存?

到1984年,即286被普遍接受不久,人们越来越认识到640KB的限制已成为大型程序的障碍,这时,Intel和Lotus,这两家硬、软件的杰出代表,联手制定了一个由硬件和软件相结合的方案,此方法使所有PC机存取640KB以上RAM成为可能。而Microsoft刚推出Windows不久,对内存空间的要求也很高,因此它也及时加入了该行列。
在1985年初,Lotus、Intel和Microsoft三家共同定义了LIM-EMS,即扩充内存规范,通常称EMS为扩充内存。当时,EMS需要一个安装在I/O槽口的内存扩充卡和一个称为EMS的扩充内存管理程序方可使用。但是I/O插槽的地址线只有24位(ISA总线),这对于386以上档次的32位机是不能适应的。所以,现在已很少使用内存扩充卡。现在微机中的扩充内存通常是用软件如DOS中的EMM386把扩展内存模拟或扩充内存来使用。所以,扩充内存和扩展内存的区别并不在于其物理存储器的位置,而在于使用什么方法来读写它。下面将作进一步介绍。
前面已经说过扩充存储器也可以由扩展存储器模拟转换而成。EMS的原理和XMS不同,它采用了页帧方式。页帧是在1MB空间中指定一块64KB空间(通常在保留内存区内,但其物理存储器来自扩展存储器),分为4页,每页16KB。EMS存储器也按16KB分页,每次可交换4页内容,以此方式可访问全部 EMS存储器。符合EMS的驱动程序很多,常用的有EMM386.EXE、QEMM、TurboEMS、386MAX等。DOS和Windows中都提供了EMM386.EXE。

●2.什么是扩展内存?

我们知道,286有24位地址线,它可寻址16MB的地址空间,而386有32位地址线,它可寻址高达4GB的地址空间,为了区别起见,我们把1MB以上的地址空间称为扩展内存XMS(eXtend memory)。
在386以上档次的微机中,有两种存储器工作方式,一种称为实地址方式或实方式,另一种称为保护方式。在实方式下,物理地址仍使用20位,所以最大寻址空间为1MB,以便与8086兼容。保护方式采用32位物理地址,寻址范围可达4GB。DOS系统在实方式下工作,它管理的内存空间仍为1MB,因此它不能直接使用扩展存储器。为此,Lotus、Intel、AST及Microsoft公司建立了MS-DOS下扩展内存的使用标准,即扩展内存规范XMS。我们常在Config.sys文件中看到的Himem.sys就是管理扩展内存的驱动程序。
扩展内存管理规范的出现迟于扩充内存管理规范。

●3.什么是高端内存区?

在实方式下,内存单元的地址可记为:
段地址:段内偏移
通常用十六进制写为XXXX:XXXX。实际的物理地址由段地址左移4位再和段内偏移相加而成。若地址各位均为1时,即为FFFF:FFFF。其实际物理地址为:FFF0+FFFF=10FFEF,约为1088KB(少16字节),这已超过1MB范围进入扩展内存了。这个进入扩展内存的区域约为64KB,是1MB以上空间的第一个64KB。我们把它称为高端内存区HMA(High Memory Area)。HMA的物理存储器是由扩展存储器取得的。因此要使用HMA,必须要有物理的扩展存储器存在。此外HMA的建立和使用还需要XMS驱动程序 HIMEM.SYS的支持,因此只有装入了HIMEM.SYS之后才能使用HMA。

●4.什么是上位内存?

为了解释上位内存的概念,我们还得回过头看看保留内存区。保留内存区是指640KB~1024KB(共384KB)区域。这部分区域在PC诞生之初就明确是保留给系统使用的,用户程序无法插足。但这部分空间并没有充分使用,因此大家都想对剩余的部分打主意,分一块地址空间(注意:是地址空间,而不是物理存储器)来使用。于是就得到了又一块内存区域UMB。
UMB(Upper Memory Blocks)称为上位内存或上位内存块。它是由挤占保留内存中剩余未用的空间而产生的,它的物理存储器仍然取自物理的扩展存储器,它的管理驱动程序是EMS驱动程序。

●5.什么是SHADOW(影子)内存?

对于细心的读者,可能还会发现一个问题:即是对于装有1MB或1MB以上物理存储器的机器,其640KB~1024KB这部分物理存储器如何使用的问题。由于这部分地址空间已分配为系统使用,所以不能再重复使用。为了利用这部分物理存储器,在某些386系统中,提供了一个重定位功能,即把这部分物理存储器的地址重定位为1024KB~1408KB。这样,这部分物理存储器就变成了扩展存储器,当然可以使用了。但这种重定位功能在当今高档机器中不再使用,而把这部分物理存储器保留作为Shadow存储器。Shadow存储器可以占据的地址空间与对应的ROM是相同的。Shadow由RAM组成,其速度大大高于ROM。当把ROM中的内容(各种BIOS程序)装入相同地址的Shadow RAM中,就可以从RAM中访问BIOS,而不必再访问ROM。这样将大大提高系统性能。因此在设置CMOS参数时,应将相应的Shadow区设为允许使用(Enabled)。

●6、什么是奇/偶校验?

奇/偶校验(ECC)是数据传送时采用的一种校正数据错误的一种方式,分为奇校验和偶校验两种。
如果是采用奇校验,在传送每一个字节的时候另外附加一位作为校验位,当实际数据中“1”的个数为偶数的时候,这个校验位就是“1”,否则这个校验位就是 “0”,这样就可以保证传送数据满足奇校验的要求。在接收方收到数据时,将按照奇校验的要求检测数据中“1”的个数,如果是奇数,表示传送正确,否则表示传送错误。
同理偶校验的过程和奇校验的过程一样,只是检测数据中“1”的个数为偶数。
●1.什么是CL延迟?
CL反应时间是衡定内存的另一个标志。CL是CAS Latency的缩写,指的是内存存取数据所需的延迟时间,简单的说,就是内存接到CPU的指令后的反应速度。一般的参数值是2和3两种。数字越小,代表反应所需的时间越短。在早期的PC133内存标准中,这个数值规定为3,而在Intel重新制订的新规范中,强制要求CL的反应时间必须为2,这样在一定程度上,对于内存厂商的芯片及PCB的组装工艺要求相对较高,同时也保证了更优秀的品质。因此在选购品牌内存时,这是一个不可不察的因素。
还有另的诠释:内存延迟基本上可以解释成是系统进入数据进行存取操作就绪状态前等待内存响应的时间。
打个形象的比喻,就像你在餐馆里用餐的过程一样。你首先要点菜,然后就等待服务员给你上菜。同样的道理,内存延迟时间设置的越短,电脑从内存中读取数据的速度也就越快,进而电脑其他的性能也就越高。这条规则双双适用于基于英特尔以及AMD处理器的系统中。由于没有比2-2-2-5更低的延迟,因此国际内存标准组织认为以现在的动态内存技术还无法实现0或者1的延迟。
通常情况下,我们用4个连着的阿拉伯数字来表示一个内存延迟,例如2-2-2-5。其中,第一个数字最为重要,它表示的是CAS Latency,也就是内存存取数据所需的延迟时间。第二个数字表示的是RAS-CAS延迟,接下来的两个数字分别表示的是RAS预充电时间和Act- to-Precharge延迟。而第四个数字一般而言是它们中间最大的一个。

总结
经过上面分析,内存储器的划分可归纳如下:
●基本内存 占据0~640KB地址空间。
●保留内存 占据640KB~1024KB地址空间。分配给显示缓冲存储器、各适配卡上的ROM和系统ROM BIOS,剩余空间可作上位内存UMB。UMB的物理存储器取自物理扩展存储器。此范围的物理RAM可作为Shadow RAM使用。
●上位内存(UMB) 利用保留内存中未分配使用的地址空间建立,其物理存储器由物理扩展存储器取得。UMB由EMS管理,其大小可由EMS驱动程序设定。
●高端内存(HMA) 扩展内存中的第一个64KB区域(1024KB~1088KB)。由HIMEM.SYS建立和管理。
●XMS内存 符合XMS规范管理的扩展内存区。其驱动程序为HIMEM.SYS。
●EMS内存 符合EMS规范管理的扩充内存区。其驱动程序为EMM386.EXE等。
内存:随机存储器(RAM),主要存储正在运行的程序和要处理的数据。
补充说一下:
内存的分区就像体育场馆的座位,基本内存(64K以下)为比赛场地,必须有的。
保留内存:为运动员和教练员席,也是必需的。
以上两项加起来,为1024KB,也就是0,1兆。
以后的内存都为体育馆的观众席。观众席越多,体育馆赚的钱越多。但体育馆的设施和管理能力是有限的,操作系统相当体育馆的管理者,只能管理3.5G的内存,1G=1024兆。win7可多管一些,32位的操作系统(xp,win7)都是3.5G。64位的多一些。
所以,内存并不是插得越多越好。而是要匹配,获得最佳性价比才是最好的。
还有虚拟内存的问题,相当于内存的周转库房,一般由系统自动制定,了解即可。如果想学dos的话,可使用EMM386管理,具体的去找DOS教材,不是简介的那种,是命令详解的那种。上面都有。

Ⅱ 80386cpu如何从线性地址得到物理地址

理解最简单的模型!任何复杂的设计方式、数据结构都是在这个基本的模型上改进的!

首先,80386可以工作在2种模式下,而这2种工作模式下的地址转换方式是不一样的。

地址的变换必须要有两个基本的条件:一是地址线,二是地址变换涉及的一些寄存器。首先386有32条地址线,也就是说原则上可以有2^32=4G的寻址空间;然后386还有如下寄存器组:

(1)EAX~EDX、ESP、EBP、ESI、EDI这样一组32位的通用寄存器,

(2)有32位的EIP指令指针寄存器,

(3)有CS、SS、DS、ES、FS、GS这样一组16位的段寄存器,并有各自相应的64位段描述符寄存器与之对应,但是段描述符寄存器是硬件自动设置的

(4)系统地址寄存器GDTR、IDTR,它们都是48位的

(5)CR0~CR3,控制寄存器;CR3有重要的作用

1、实模式

当CPU加电或是复位时,CPU就进入了实模式。

在实模式下,A20~A31总是低电平,所以此时386只有2^20=1M的寻址空间;16位的段寄存器左移4位以后,加上16位的偏移地址(高16位固定),这样就刚好得到了20位的物理地址!

这里需要注意两点:一是16位的段地址寄存器通过硬件机制传“传递给”相应的32位的段基址,然后段基址硬性的将20~31置0,并将16位地址左移4位;二是作为偏移地址的32位寄存器只用了低16位,高16位全部置0,然后相加即可得到相应的物理地址;

2、保护模式

在保护模式下,地址变换无非也就是查表、线性相加等方式——归根到底,地址的变换一定是通过硬件机制完成的。

首先,CPU内部会初始化一个很重要的48位系统地址寄存器GDTR/LDTR/IDTR,以全局描述符寄存器GDTR为例:

GDTR线性基地址段限属性

根据这个线性的基地址,硬件可以找到描述符表的位置;然后段寄存器——现在被称作段选择符的高13位作为这个描述符表的偏移地址,找到里面一个相应的描述符,并将这个描述符装载入描述符寄存器中,这样就得到了相应的段基址;

描述符寄存器中的32位的段基址和32位偏移地址相加,即可以得到一个32位的地址,这个地址称之为线性地址。接下来有两种情况:

(1)如果分页机制被禁止,这个地址就是物理地址了!

(2)采用分页机制。此时32位的线性地址分为3个部分,

(10位)页目录索引(10位)页表索引(12位)偏移地址

首先高10位的页目录索引部分和CR3寄存器(它存放着页目录地址)结合,找到相应的页表的地址;然后根据中间的10位的页表索引,找到相应的页的起始位置;然后,根据低12位的偏移地址,在这个页中就可以找到对应的地址了——而这就是物理地址!

Ⅲ cpu找物理地址先是cache还是快表

如果缓存使用物理寻址,CPU 会先对每一个存储器操作进行 TLB 查寻,并且将取得的物理地址传送给缓存。两种方法各有优缺点。

Ⅳ 在存储系统中,物理地址是怎么样寻找的呢

是使用地址寻址器。
地址寻址器相当于一个开关,主要由于或非门电路组成,当输入不同的信号时打开不同的存储器,在cpu读指令下读出该存储器所存储的数据。如输入1100110101和输入1100110110如果是地址码就找相应的地址。
数据和地址都是用1和0表示的,只是含义不同。

Ⅳ 请教win7 64位 驱动如何取 CPU ID或网卡物理地址

1、CPU型号,可以右键“我的电脑”,属性就可以看到;
2、网络ID号,可以打开网络连接,详细信息,可以看到;
3、网卡物理地址,“win+R”调试出运行,输入“cmd”调出命令框,然后输入命令“ipconfig -all”,找到物理地址即可。

Ⅵ 8088CPU中的寄存器都是16位,那么它是如何寻址20位物理地址的

8088为了对20位物理地址寻址,设置了逻辑地址的概念
表示方式 XXXX:YYYY
对应的物理地址=XXXX*16+YYYY

Ⅶ 现代CPU如何自动把虚拟地址转换成物理地址的硬件电路

虚拟内存是一个由存放在磁盘上的N个连续的字节大小的单元组成的数组。
每个字节都有一个唯一的地址,就是虚拟地址。通常,虚拟地址由页号和偏移量组成,页号就是抽象的虚拟页的编号,偏移量用于计算实际的物理地址。
虚拟地址和物理地址的关系。进程虽然使用虚拟地址,但是用数据时还是要到实际的物理地址去取数据。这就存在一个虚拟地址到物理地址的转化运算,这是由CPU芯片上一个叫做内存管理单元(MMU)的专用硬件来实现的。
通常,物理地址=页号*页大小+页内偏移量。虚拟寻址CPU通过虚拟地址来访问主存,访问内存使用的物理地址,MMU通过将虚拟地址进行翻译,转化为物理地址,然后再用这个物理地址去访问内存数据。

Ⅷ 如何查电脑的物理地址

按步骤操作即可查询电脑的物理地址。

1、按住键盘上的Windows键,再按R键,调出“运行”窗口

(8)cpu是如何找到物理地址的扩展阅读:

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

地址从0开始编号,顺序地每次加1,因此存储器的物理地址空间是呈线性增长的。它是用二进制数来表示的,是无符号整数,书写格式为十六进制数。它是出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果。用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。

在计算机科学中,物理地址(英语:physical address),也叫实地址(real address)、二进制地址(binary address),它是在地址总线上,以电子形式存在的,使得数据总线可以访问主存的某个特定存储单元的内存地址。在和虚拟内存的计算机中,物理地址这个术语多用于区分虚拟地址。尤其是在使用内存管理单元(MMU)转换内存地址的计算机中,虚拟和物理地址分别指在经MMU转换之前和之后的地址。在计算机网络中,物理地址有时又是MAC地址的同义词。这个地址实际上是用于数据链路层,而不是如它名字所指的物理层上的。

参考资料:物理地址 网络

Ⅸ CPU的物理地址

给你一个公式吧
物理地址
=16(应该写成
十六进制
即10H)*段地址+偏移地址
其中段地址和偏移地址为16位,而算出来物理地址为20位

阅读全文

与cpu是如何找到物理地址的相关的资料

热点内容
word中化学式的数字怎么打出来 浏览:745
乙酸乙酯化学式怎么算 浏览:1410
沈阳初中的数学是什么版本的 浏览:1362
华为手机家人共享如何查看地理位置 浏览:1053
一氧化碳还原氧化铝化学方程式怎么配平 浏览:893
数学c什么意思是什么意思是什么 浏览:1420
中考初中地理如何补 浏览:1311
360浏览器历史在哪里下载迅雷下载 浏览:711
数学奥数卡怎么办 浏览:1401
如何回答地理是什么 浏览:1034
win7如何删除电脑文件浏览历史 浏览:1062
大学物理实验干什么用的到 浏览:1493
二年级上册数学框框怎么填 浏览:1712
西安瑞禧生物科技有限公司怎么样 浏览:999
武大的分析化学怎么样 浏览:1254
ige电化学发光偏高怎么办 浏览:1344
学而思初中英语和语文怎么样 浏览:1665
下列哪个水飞蓟素化学结构 浏览:1429
化学理学哪些专业好 浏览:1492
数学中的棱的意思是什么 浏览:1070