X86架构下,从一位锁存器到8位寄存器,再到内存具体的物理结构梳理
复习汇编的时候顺便复习下寄存器这东西具体的物理结构是怎么样的,可以简单的理解成连续的八个锁存器构成了一个8位的寄存器
我们知道,我们可以通过给定一个内存地址,然后往这个地址去写入数据,为了方便讨论,我们先假设这个内容是一个字符,也就是只占一个字节,那么,我们写入的时候存储这8个位的锁存器还是连续的吗?
答案显示不是?为什么呢?首先我们要知道内存的锁存器是怎么摆放的,学过计算机组成原理的同学都知道,为了节省寻址的线,我们把锁存器设置成矩阵排列,这样一来我们只需要N根地址线就可以寻址到 2N 的地址范围。具体如下图:
好了,看内存是这样子的,一片256位的内存我们可以通过8位地址找到具体的一个锁存器,一个锁存器就可以存一个bit(1位数据),
我们要存一个8位的字符数据,那么需要8块256位的内存,具体怎么弄呢?看下面这张图就知道了,
这样对于我们有点难记忆了,为了方便,我们不管里面咋实现的,把上面的8块256位的内存块当成一块,有256个地址每个地址可以存一个8位数据。就得到我们比较熟悉的下面这张图
基本上课本都是从这张图开始讲起后面的内存,但是我们也要知道里面最原始的电路结构和顺序大概是咋样的。
锁存器的具体电路我就不赘述了,这东西大学学过数电的基本都晓得,就是几个与门、或门和非门的组合实现。再深入一点就是与或非三种门的实现
非门就是把三极管的基级b当输入,然后集电极c当输出,像下面的样子,(不懂得同学复习下模电第二章和第三章)
与门则是串联两个三极管(第二个的集电极c与第一个的发射级e相连),然后两个三极管的基级b当两个输入,第二个三极管的发射级e作为输出
或门则是并联两个三极管,然后两个三极管的基级b当两个输入,两个三极管的发射极连到一起作为输出
如果再往下,就要涉及到三极管是PNP,还是NPN的故事了,空穴--电子对,以及最原始的元素电子轨道导致的元素价位(这儿可不是售价,而是化学里面的几价化合物的那种价位)啥的,以我的知识大概就只能到这儿了,再往下没学过,就不知道是啥了,哈哈哈哈哈
感兴趣的话可以去看看计算机速成课的前6级,讲的可能比我这个还好点。