写在后面
很多小伙伴认为程序员就是写写代码,不须要理解计算机底层的常识和原理。其实,这种观点是谬误的。如果你想冲破程序员的职业倒退瓶颈,计算机硬件、操作系统原理、编译原理等是肯定要把握的常识。而【冰河技术】微信公众号的【程序员进阶系列】专题就是要零碎的向大家分享程序员进阶须要把握的各项常识技能。明天,咱们来聊聊一个让程序员很头疼的话题:计算机中的主存是如何进行编址和计算的?
文章已收录到:
https://github.com/sunshinelyz/technology-binghe
https://gitee.com/binghe001/technology-binghe
主存编址与计算
这里,小伙伴们首先要辨别两个概念, 一个是编址,一个是寻址。
编址: 存储器是由一个个存储单元形成的,为了对存储器进行无效的治理,就须要对各个存储单元编上号,即给每个单元赋予一个地址码,这叫编址。经编址后,存储器在逻辑上便造成一个线性地址空间。
寻址: 存取数据时,必须先给出地址码,再由硬件电路译码找到数据所在地址,这叫寻址。
编址能够分为两种: 按字编址和按字节编址 。
- 按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字。
- 按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节。
对于主存编址中最常见的计算模式为:依据存储器所要求的容量和选定的存储芯片的容量,就能够计算出所须要的芯片的数量。公式如下所示。
总片数 = 总容量 / 每片的容量
这里,给小伙伴们举一个例子:若内存地址区间为 4000H ~ 43FFH,每个存储单元可存储 16 位二进制数,该内存区域应用 4 片存储器芯片形成,则形成该内存所用的存储器芯片的容量是多少?
解题思路也比较简单,咱们一起来看看如何解题:
(1)首先,咱们来求解 4000H ~ 43FFH 地址空间的总容量,应用终止地址 - 起始地址 + 1 即可失去总容量,也就是 43FFH – 4000H + 1 = 43FFH + 1 – 4000H = 4400H – 4000H = 400H。
留神:在计算机中,以 H 结尾的数字是十六进制,逢 16 进 1,而 F 在十六进制中示意 15,所以,43FFH + 1 = 4400H。
所以,4000H ~ 43FFH 地址空间的总容量为 400H。
(2)接下来,咱们要把 400H 转换成二进制,对于十六进制数转换成二进制数来说,每一位十六进制数对应着四位的二进制数,咱们能够把 400H 拆分成 4、0、0 三局部,4 转换成二进制数就示意 0100,十六进制的 0 转换成二进制为 0000。所以,400H 转换成二进制的后果为:0100 0000 0000。
0100 0000 0000 也就是 2 的 10 次方,即为 2^10^。
(3)题目中说的每个存储单元可存储 16 位二进制数,所有总共能够存储的二进制数就是:2^10^ * 16。
(4)该区域应用 4 片存储器芯片形成,所以,存储芯片的容量为:2^10^ 16 / 4 = 2^10^ 4 = 2^12^,最终的后果单位为 bit。
总线
一条总线同一时刻只容许一个设施发送数据,但容许多个设施接收数据。
总线的分类
总线能够分为数据总线、地址总线和管制总线。
- 数据总线(Data Bus):在 CPU 和 RAM 之间来回传送须要解决或是须要存储的数据。
- 地址总线(Address Bus):用来指定在 RAM(Random Access Memory)之中存储的数据的地址。
- 管制总线(Control Bus):将微处理器管制单元(Control Unit)的信号传送到周边设备,个别常见的为 USB Bus 和 1394 Bus。
串联零碎与并联零碎
这里,先给小伙伴们简略介绍下什么是串联零碎,什么是并联零碎。
串联零碎
串联零碎是组成零碎的所有单元中任一单元生效就会导致整个零碎生效的零碎。把用电器各元件一一依次连接起来,接入电路就组成了串联电路。咱们常见的装璜用的 ” 满天星 ” 小彩灯,经常就是串联的。串联电路有以下一些特点:⑴电路连贯特点: 串联的整个电路是一个回路,各用电器顺次相连,没有 ” 分支点 ”。⑵用电器工作特点: 各用电器相互影响,电路中一个用电器不工作,其余的用电器就无奈工作。⑶开关管制特点: 串联电路中的开关管制整个电路,开关地位变了,对电路的管制作用没有影响。即串联电路中开关的管制作用与其在电路中的地位无关。
注:以上对于串联零碎的形容来源于网络。
接下来,咱们来看一个对于串联零碎的图形示意,这里咱们假如串联零碎中每个局部的牢靠度顺次为 R1,R2,…Rn,如下所示。
则整个零碎的牢靠度为:R = R1 R2 … * Rn。
并联零碎
并联零碎指的是组成零碎的所有单元都生效时才生效的零碎。把电路中的元件并列地接到电路中的两点间,电路中的电流分为几个分支,别离流经几个元件的连贯形式叫并联。并联电路是使在形成并联的电路元件间电流有一条以上的互相独立通路,为电路组成二种根本的形式之一。例如,一个蕴含两个电灯泡和一个 9 V 电池的简略电路。若两个电灯泡别离由两组导线离开地连贯到电池,则两灯泡为并联。
即若干二端电路元件独特跨接在一对节点之间的连贯形式。这样连成的总体称为并联组合。其特点是:①组合中的元件具备雷同的电压;②流入组合端点的电流等于流过几个元件的电流之和;③线性时不变电阻元件并联时,并联组合等效于一个电阻元件,其电导等于各并联电阻的电导之和,称为并联组合的等效电导,其倒数称为等效电阻
注:以上对于并联零碎的形容来源于网络。
接下来,咱们来看一个对于并联零碎的图形示意,这里咱们假如并联零碎中每个局部的牢靠度顺次为 R1,R2,…Rn,如下所示。
则整个并联零碎的牢靠度 R = 1 – (1 – R1) (1 – R2) … * (1-Rn)。
混合型零碎
混合型零碎就是既有串联零碎,又有并联零碎的零碎,这里,咱们也应用一个图形进行示意,如下所示。
所以,上图并联零碎的牢靠度为:R (1 – (1 – R) ^3^) (1 – (1 – R) ^2^)
好了,明天就到这儿吧,我是冰河,大家有啥问题能够在下方留言,也能够加我微信:sun_shine_lyz,我拉你进群,一起交换技术,一起进阶,一起牛逼~~