从算盘到微处理器,通过古老的计算技术理解现代计算机的底层逻辑

来源:IT之家   发布时间:2022-11-26 17:39:07   阅读量:6864  

如果你研究现代微处理器,你可能会注意到它们和旧的机械计算设备之间的相似之处更具体地说,微处理器中的算术逻辑单元与旧的机械计算器有许多相似之处ALU可以看作是微处理器的计算器它读取存储在寄存器中的数字,执行加,减或移位操作,并将结果存储回另一个寄存器

从算盘到微处理器,通过古老的计算技术理解现代计算机的底层逻辑

微处理器内部的算术逻辑单元执行算术运算这些寄存器被命名为r1,r2和r3

这些基本操作与计算器执行的操作完全相同。它有三个寄存器来保存计算过程中使用的数字:

输入寄存器:一个5位寄存器,你可以拉控制杆来定义输入的数字。

累加器寄存器:一个13位寄存器,用于存储多次计算的结果。

计数寄存器:一个8位数的寄存器,用来记录你做了多少次加法运算。

欧登纳计算器,1873年在俄罗斯发明。

这里不详细解释微处理器ALU或者老式机械计算器我们将进一步追溯到算盘这种不同形式的手动计算机早在罗马时代之前就存在了

为什么想了解珠算及其运算因为了解珠算可以让你看到更深层次的东西,把几千年前处理数字的方法和现代微处理器的方法联系起来现代微处理器非常复杂,当你试图理解它们时,你很容易误入歧途

算盘就像微处理器的ALU现代计算机基于二进制数字系统,其中每个数字称为一位下图所示的算盘最多可以处理四个十进制数算盘上的每一列代表一个数字

典型算盘的插图每一列代表十进制系统中的一个数字

从右数第一列是一位,第二列是第十分之一位,第三列是一百位,依此类推这意味着,如果我想在算盘上代表数字4023,那么我会按上图所示排列珠子利用这种布置,可以容易地执行加法和减法如果我要加12,只需要在单个位置多拉两个珠子,在第十个位置多拉一个珠子

加法和减法都很简单,我们来看看如何在算盘上做乘法乘法的方式与旧的机械计算器和早期的微处理器非常相似他们只有ALU,没有专门的乘法硬件

用算盘相乘

我们来做一个简单的乘法:32 × 4,结果应该是128为此,我们为每一列指定一个特定的含义前两列被转换为计数器寄存器,而第三列被定义为输入寄存器最后,我们让最后两列作为累加寄存器,它将保存最终结果

乘法可以被认为是执行多个加法运算在这个例子中,我们将4 ^ 32次相加

乘以列数

先把累加器加四次单行中的四颗珠子向下移动为了记录我们添加的四个珠子的数量,我们从计数器中移走一个珠子实际上,我们从32倒数到0

我们在累加器上加4,计数器减少到30此时,累加器的值为8我们得再加30个,4个

乘以十列

在单位柱上移动四个珠子超过30次可能会很繁琐幸运的是,我们不必这样做相反,我们执行移位操作来加速加法我们把每个移动的珠子数十乘以四这是怎么做到的每当我们移动计数器第十个数字上的一个珠子,我们就移动累加器第十个数字上的四个珠子执行此操作一次,计数器从30减少到20,累加器增加到48

我们再次重复相同的操作,从而将计数器从20减少到10,并向累加器再加40,其值现在是88。

注意,在上图中,我们不能再向下移动4颗珠子,因为累加器的十列只剩下2颗珠子了我们需要使用第三列,并使用一个累加器来表示数百位我们把第十位的十颗珠子换成第一百位的一颗珠子

另外,十个人一共需要12颗珠子,我们用它来换一百个人一颗珠子,十个人两颗珠子此时,我们已经花光了计数器上的所有珠子,我们可以看到最终结果是128

移位操作

乘除法不能直接用算盘,机械计算器或ALU来做可是,我们可以很容易地乘以10的倍数将输入的数字乘以10,100或1000很容易你所要做的就是移动1,2或3列的珠子做2 × 4需要连续移动4颗珠子两次如果要表演20 × 4,把十排的四颗珠子移动两次如果是200 × 4,就是在百行中移动8颗珠子你所做的实际上是加法和移位的结合

如果你看一下机械计算器,你会看到累加寄存器位于一个滑块上向左滑动一格,从输入寄存器添加的数字将是原来的十倍向左滑动两个凹槽,输入的数字会变成原来数字的100倍我们也可以向右滑动,使添加的数字变小一个有趣的效果是滑杆产生移位,也会影响计数寄存器假设您指定输入寄存器为42接下来,将控制杆向左滑动两个凹槽当您转动手柄将输入添加到累加器时,您将添加4200计数器寄存器上将显示100因此,它看起来就像你拧了一百次把手换句话说,移位可以让我们大幅减少加法运算的次数

这些移位操作和我们在算盘上实现的没什么区别关键区别在于,您需要通过手动移动珠子来更新累加器和计数器

移位操作在微处理器中的应用

移位操作帮助我们在微处理器ALU上加速乘法和除法运算因为现代微处理器使用二进制数字系统,所以移位操作使用的是2的倍数的多个输入因此,我们不是将输入乘以10,100,1000或10000,而是将输入乘以2,4,8,16,32等等

编程初期,这些知识其实很有用20世纪90年代初,个人电脑的普及非常缓慢我们必须使用乘法来计算图形存储器中特定x,y坐标处的像素位置因为屏幕分辨率是320 × 240,所以你得把Y坐标乘以320再加上X坐标,才能得到屏幕内存中的位置

重点是,我要把任意数y乘以320无数次这非常慢解决方法是将计算改为移位和加法的组合

用两次移位运算和一次加法运算代替乘法运算可以显著提高运算速度。

声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多企业信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。投资有风险,需谨慎。

为你推荐

火速护盘!当天制定回购方案,当天下场买股!上市公司真金白银看好后市

火速护盘!当天制定回购方案,当天下场买股!上市公司真金白银看好后市

4月25日,不少上市公司在下跌中果断实施回购。25日晚间,恒瑞医药、建霖家居、劲嘉股份等公司纷纷公告在盘中实施了回购;威...更多

2022-04-26 01:11:00
人弃我取时间已到!券商首席一致看多,A股迎接反攻时刻?

人弃我取时间已到!券商首席一致看多,A股迎接反攻时刻?

4月25日,上证指数重挫逾5%,失守3000点,创下2020年7月以来新低。盘后,券商中国记者采访了多位券商策略、宏观分...更多

2022-04-26 01:11:00
实实在在赚钱了!2021年收入增34%,这家公司要冲击“纯SaaS业务模

实实在在赚钱了!2021年收入增34%,这家公司要冲击“纯SaaS业务模

4月25日,新三板挂牌公司和创科技晒出了2021年“成绩单”,2021年实现收入1.45亿元,同比增长34%;经营现金流...更多

2022-04-26 01:00:00
高玩不买单了水冷头一哥EKWB裁员1/4:业绩持续暴跌

高玩不买单了水冷头一哥EKWB裁员1/4:业绩持续暴跌

虽然AIO一体式水冷很方便,但分体式水冷依然是目前散热最好、效果最炫的方案,只不过价格很贵,只有高玩才会折腾。然而这个高...更多

2022-04-26 00:38:00
IEEE发布首个供应链金融区块链国际标准蚂蚁集团牵头制定

IEEE发布首个供应链金融区块链国际标准蚂蚁集团牵头制定

,IEEE计算机协会区块链和分布式记账标准委员会召开全体会议,《基于区块链的供应链金融标准》正式发布。这是IEEE发布的...更多

2022-04-26 00:37:00
外媒预计在建设P3晶圆厂后三星电子还将在平泽建设P4晶圆厂

外媒预计在建设P3晶圆厂后三星电子还将在平泽建设P4晶圆厂

,据国外媒体报道,此前有报道称,三星电子2020年年中开始在韩国平泽建设的P3晶圆厂,将在下月开始设备的安装,设备的进入...更多

2022-04-26 00:35:00
万华化学首季净利降近两成2021年分红超78亿

万华化学首季净利降近两成2021年分红超78亿

25日盘后,万华化学披露2022年第一季度报告。一季度,公司在营业收入增超30%的情况下,净利润回落近两成。具体来看,一...更多

2022-04-26 00:35:00
盈利下滑、应收账款和现金流状况恶化!泽达易盛股价较高点已跌超八成

盈利下滑、应收账款和现金流状况恶化!泽达易盛股价较高点已跌超八成

董事长、财务总监协助调查,股价暴跌,业绩下滑,笼罩在泽达易盛头上的疑云久久不散。3月17日晚,泽达易盛发布重大事项公告,...更多

2022-04-26 00:34:00