cpu基本知识与技巧
20块钱自制简易cpu?
20块钱自制简易cpu?
如果想要制作一个CPU,首先得明白下计算机的组成结构(或者计算机的替代品,因为并不是只有计算机有CPU,现在的电子产品都很先进,很多设备例如手机、洗衣机甚至电 视和你家的汽车上面都得装一个CPU),数字电路基础,还最好有点编程的基础(当然,没有也没关系,这些知识都很容易获得,各种书上面都会提到,并且在接下来的过程中我会提到这些知识)
我们要实现的是一个RISC指令集的CPU,并且我们最后要自己为这个CPU设计指令并且编码。
首
cpu怎么全部启用?
我们可以参考下面的操作教程全部开启我们电脑上的CPU个数,下面分享详细的操作教程。
首先我们需要打开我们电脑上的配置信息,如果是win10的话我们直接输入中文搜索系统配置。如果是win7的话可以直接输入命令msconfig
打开之后我们点击进入到系统配置下,这里我们点击高级。
点击引导之后依次点击下面的高级设置。
在高级设置属性下有一个处理器个数我们勾选一下。
勾选之后我们可以选择最大的数字。
然后点击右下角的确定保存即可。
解析电脑CPU后面英文字母,阿拉伯数字的含义?
Intel中文 英特尔 。 core中文 酷睿(celeron赛扬 pentium奔腾)。i7代表cpu等级。4712Q含义:4表示:第4代(如果是5就是第五代)。712表示:CPU等级,理论上第二位阿拉伯数字越大越好。(只能i7跟i7比。不是一个等级的没有可比性)。Q表示四核(M表示cpu是正常电压的cpu,功耗高。U表示CPU是低电压的cpu,功耗低。H表示haswell架构下的一种封装规格(保证性能,降低功耗发热,但是不可拆卸)。Y表示超低功耗版) @2.30GHz 2.3GHz @后面的数字估计大家都知道:主频。主频越高越好。
cpu是怎么工作的?
对于没有硬件和电子相关知识的人来说,“计算机到底为什么能工作”这个问题确实比较深奥。
首先你需要明白计算机的CPU实际上和汽车的引擎是一个道理,只不过一个是机械的,一个是电子的。它们在飞速运转中遵循某些固定的状态,外界通过对其输入的控制来产生输出。对于CPU来说,带动其运转的东西叫“时钟”。时钟在0和1之间按特定频率变换,由此同步各个电路组件的状态变化,以便输出正确的值。(有些人没事儿就喜欢超频,说白了就是在加快这个时钟的变换频率。)时钟和寄存器有关,但是为了不跑题,我就不具体解释了。
为了便于理解,我们在此问题中只讨论MIPS架构的CPU。
首先,指令【instruction】由更上层的编程语言(比如C)编译而来,它在内存中是许多串由0和1组成的数列,本身代表的就是电路通断,不用再次进行编译。
由于早期的MIPS是基于“精简指令集”的32位计算机架构,因此每条指令长度一样,都是32位的,每条指令都是32个“0和1”。我们日常使用的CPU(比如酷睿i7)并不基于“精简指令集”,而是基于“复杂指令集”。它们所用的指令长度并不一样,因此它们的电路设计更加复杂,但基本原理还是一样的,同样是一堆“0和1”。
看上面的表
第一行 add
add $1 $2 $3这条指令在内存中应该长什么样?
000000 | 00010 | 00011 | 00001 | 00000 | 100000
这些0和1用竖线隔开后,每一块都用来控制不同的电路部件。
比如Rs Rt 和 Rd 代表的是这次运算所需要的三个寄存器,
寄存器是比内存还要快许多,可以理解为计算机中最基本的储蓄部件(算完了您得就近找个地儿搁啊)
再比如funct指的是算术逻辑单元【Arithmetic Logic Unit】所进行的相关操作,100000对于算术逻辑单元,代表的是“加”。
因此,如果把00000000010000110000100000100000翻译成人话,是这个意思:
“将寄存器$2和寄存器$3的数进行相加,并把结果存入寄存器$1”
以上是CPU工作原理的一部分。
至于“它如何控制某个晶体管的通断状态”,
首先,电路中这些所需的部件,都是由晶体管所组成的。
比如,上面提到的算术逻辑单元【ALU】:
这是某个ALU的门级电路,尽管这不是MIPS所用到的ALU,但他们类似。
A和B是输入,Result是计算结果输出,Carry-out是进位输出。由于这部分电路不含任何寄存器,我们忽略电路做出反应所需要的时间,并且默认电路的输出会随着输入的改变而立即改变。
你可以看到ALU Opcode,这就是上文提到的funct,你输入三位不同的控制信号,它会进行不同的操作。比如ALU Opcode = 000在这里代表将A和B相加。
电路中的逻辑门实现了程序中最基本的布尔逻辑,相信大家对最基本的编程都有一点了解。
神马叫布尔逻辑?
举个比较笼统的例子,你在C语言中写了这么几行:
//判断变量x是否是100和30中间的一个数, ampamp(and)表示同时满足两个条件,and就是布尔逻辑的一种。
if ((x lt 100) ampamp (x gt 30)) {
//如果是,就。。。。
}
那么这个“同时满足”到底应该由CPU的什么东西来判断?
答案是某种逻辑门或几种逻辑门的组合。
因此,我们再进一步放大,看这个ALU中的逻辑部件之一:与门【AND gate】
与门有什么性质?
比如:
1 AND 0 等于0
1 AND 1 等于1
简而言之,与门可以用来对比两个输入。因为对于它来说,只有当输入的A和B都为高电平(1)时,输出才会是高电平(1),否则输出低电平(0)。
最后,这个与门,其实是由晶体管
组成的。希望你已经对这个问题有了一个大概的理解。以后有时间会再补充。