CPU,内存理解

计算机的系统框图,嵌入式设备也一样。

控制单元和算术运算单元组成CUP,图中的主记忆体也就是我们常讲的内存,这个内存就是内存条。


CPU 為一個具有特定功能的晶片, 裡頭含有微指令集,如果你想要讓主機進行什麼特異的功能,就得要參考這顆 CPU 是否有相關內建的微指令集才可以。 

上面所述的微指令集:  精简指令集  复杂指令集组成


一个典型的CPU由运算器、控制器、寄存器(寄存器就相当于一段内存)等器件组成,这些器件靠内部总线相连


内部总线实现CPU内部各个器件之间的联系。

外部总线实现CPU和主板上其它器件的联系


CPU内部有数据总线,地址总线,控制总线。CPU外部也有数据总线,地址总线,控制总线,

例如内存条和CPU就是通过外部总线所连接的。CPU在进行数据读取的时候都必须先经过内存,内存相当于一个缓冲地带。所以内存的容量应该大一点。但也不是越大越好的,由于总线有位数限制(不能无限多),所以读取速度会被钳制 ,当读取速度最大时,再继续增加内存也没有什么用来了

电脑开机:上电复位之后,CPU会去读寄存器或者内存里的某一个指定地址( 到底是从哪里读或者是读到的是什么么不重要。重要的是在上电之后,会有指令自动的去告诉下一步去哪里,干什么),根据地址上的指令,CPU就会发去到那里启动系统(系统装到在硬盘上面),内存里的指令就是告诉去硬盘上的哪里去开机。


内存 

CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。我们将这个唯一的地址称为物理地址。


16位结构的CPU

概括的讲,16位结构描述了一个CPU具有以下几个方面特征:

1、运算器一次最多可以处理16位的数据。

2、寄存器的最大宽度为16位。

3、寄存器和运算器之间的通路是16位的


8086CPU给出物理地址的方法

8086有20位地址总线,可传送20位地址,寻址能力为1M。

8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K。

 

问题:那么,8086CPU如何用内部16位的数据转换成20位的地址呢?

自问自答:8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址~


8086CPU读写内存时,发生了这么一些事:

CPU中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址;

段地址和偏移地址通过内部总线送入一个称为地址加法器的部件;

地址加法器将两个16位地址合并成一个20位的地址;

地址加法器工作原理

地址加法器合成物理地址的方法:物理地址=段地址×16+偏移地址


8086CPU访问地址为123C8H的内存单元:




根据上述过程,我们可以了解到,内存其实是一整块的,并不是分成一段一段的,但是由于CPU在访问过程的方法,导致看起来内存像是被分成一段一段的。被分成一段一段是因为段地址的从在,所以内存的每一段都是由16的倍数开始的。每一段的大小都是由偏移地址决定的。8086中偏移地址为16位,即64KB(2^16=65536,65536/1024=64KB)。












  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值