计算机的核心:ALU(算术和逻辑单元)

news2025/7/20 17:09:19

        本节我们将揭秘计算机的核心部件:算术和逻辑单元。了解计算机里基础的加法,左移,右移,非,与,或,异或,比较操作是如何被选择和处理的。

算术和逻辑单元

        目前,我们已经见到了计算机的其中设备:加法,左移,右移,非,与,或,异或。把它们放在一个单元里,并提供一种方法来选择在任何给定时间使用哪一台设备,这被称为“算术和逻辑单元”,简称“ALU”。

        所有七个设备都连接了一个输入“a”,如果设备具有两个输入,那就连接着输入端“b”。所有七个设备都始终连接到输入,但每个设备的输出都连接到其中一个使能器。开启使能器的导线连接到解码器的输出,因此在给定时间只能打开一个使能器。解码器的七个输出使单个设备能够继续使用公共输出“c”。当您根本不想选择任何设备时,将使用解码器的第八个输出。解码器的三条输入线被标记为“op”,因为它们选择了所需的“操作”。

        这里的一个小问题是来自加法器的进位,以及来自移位器的“移入”和“移出”位。它们的使用方式非常相似,因此从这里开始,我们将把它们统称为进位。加法器和两个移位器将进位作为输入,并生成进位作为输出。因此,三个进位输入连接到一个ALU输入,三个输出中的一个与器件的总线输出一起被选择。查看上面3X8解码器的最右侧输出,并确认它同时启用加法器总线和加法器进位。

        我们这里是有两个总线输入、一个总线输出、四个bit其他输入和四个bit其他输出的盒子。三个输入bit选择在输入和输出总线之间发生的“操作”。下面是一种简化的绘制方法

        请注意,上面标记为“op”的三个单位输入可以有八种不同的组合。其中七种组合选择了前面描述的设备之一。第八种组合不选择任何输出字节,但“较大”和“相等”位仍然有效,所以第八种组合是比较器的操作。

        “op”的位组合意味着什么。这听起来像是另一个代码。是的,这是一个三位代码,我们将很快使用:

        算术和逻辑单元是计算机的核心。这就是计算机里所有动作发生的地方。这里面比你想象的要复杂得多。

处理器

        至此,计算机CPU里还有另一个非常简单的装置,它有一个总线输入、一个总线输出和一个其他输入bit。它非常类似于使能器。其中七位通过与门,其中一位通过或门。一个bit的输入决定了当一个字节试图通过这个设备时会发生什么。当“总线1”位关闭时,输入总线的所有位都不变地传递到输出总线。当“总线1”位接通时,输入字节被忽略,输出字节将为0000 0001,这是二进制数字1。我们将此设备称为“总线1”,因为当我们需要时,它会将数字1放在总线上。

        现在我们可以将这个“总线1”和ALU放入CPU。我们将改变导线进出ALU的位置,使其更适合我们的图表。总线输入位于顶部,总线输出位于底部,所有输入和输出bit位于右侧。

        ALU的输出连接到ACC。ACC接收并临时存储最近ALU操作的结果。ACC的输出然后连接到总线,因此其内容可以根据需要发送到其他地方。

        当我们想进行单输入ALU操作时,我们必须将ALU的三个“运算”位设置为所需的操作,将我们想要的寄存器启用到总线上,并将结果连接到ACC。

        对于两个输入ALU操作,有两个步骤。首先,我们在总线上启用其中一个寄存器,并将其设置为TMP。然后,我们在总线上启用第二个寄存器,选择ALU操作,并将答案设置为ACC。

        如您所见,如果我们在正确的时间打开和关闭适当的启用和设置位,我们现在可以将字节数据从RAM移动到RAM,从寄存器移动到寄存器,通过ALU移动到ACC,然后从那里移动到寄存器或RAM。这就是电脑内部发生的事情。

        这里只缺少一件事,这与寄存器、ALU和RAM上的所有这些控制位有关。RAM有三个控制位,一个用于设置MAR,一个设置当前选择的字节,一个启用当前选择的输出。寄存器R0、R1、R2、R3和ACC中的每一个都有一个置位和一个使能位,TMP仅有一个设置位,总线1有一个控制位,ALU有三个选择所需操作的“操作”位。

        我们需要在适当的时间打开和关闭所有这些控制位的东西,这样我们才能做一些有用的事情。标有“控制部分”的框将在接下来开始揭秘。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hadoop集群搭建

Hadoop集群搭建 Hadoop集群简介 Hadoop集群包括两个集群: HDFS集群、YARN集群两个集群逻辑上分离、通常物理上在一起两个集群都是标准的主从架构集群 HDFS集群(分布式存储) 主角色:NameNode 从角色:DataNode 主角色辅…

理学知识01-ppm、ppb、ppt换算

1. 浓度 浓度是分析化学中的一个名词。含义是以1升溶液中所含溶质的摩尔数表示的浓度。以单位体积里所含溶质的物质的量(摩尔数)来表示溶液组成的物理量,叫作该溶质的摩尔浓度,又称该溶质物质的量浓度。 2. 浓度单位 在文献阅读过…

关于支付宝授权用户信息

最近做的一个项目授权支付宝信息 进行报名支付 以下是流程 1、一个首先引进阿里相关配置信息 2、因为我这边项目是支持 小程序、H5、支付宝 登录 报名的,我这边只展示支付宝代码哦 对啦 微信不同应用下 unionid 是一样的,所以可以将小程序/H5下的视…

UE引擎的UWorld是什么,UWorld与GWorld的关系

UE引擎的UWorld是什么,UWorld与GWorld的关系 UWorld有一些关于游戏的重要信息,比如(PersistentLevel,NetDriver,GameState),没有它,你不能做你想做的大部分事情。 GWorld是个全局指…

m无线通信的调制解调过程的matlab仿真,包括ASK,FSK,PSK

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 传输模拟信号时一样,传输数字信号时也有三种基本的调制方式:幅移键控(ASK)、频移键控(FSK)和相移键控(PSK)。它们分别对应于用载波(正弦波&#xff09…

react-router-dom v6的几个方法

Router是React-Router导航命令的传递者,作为React应用的顶层组件,为应用提供组件化的路由响应能力,如果没有引入Router组件,那么任何路由调整都不会生效。根据接收外部的history对象的不同来提供不同的功能: 如果接收的是browserHistory,得到的BrowserRouter,叫做浏览器…

Linux之Shell编程快速上手

Shell编程快速上手一、Shell编程基础1.1 Shell脚本程序1.2 创建Shell脚本二、Shell的语法2.1Shell的变量2.2 设置环境变量2.3 位置参数变量2.4预定义变量一、Shell编程基础 在linux系统中,shell不仅能够执行命令(启动、挂起、停止甚至编写一些程序),还可…

工业无线呼叫安灯(Andon)系统上线须知

在很多现代化生产制造企业内,工业无线呼叫安灯(Andon)系统是一个非常重要的管理系统。安灯系统本质上是发现问题及时将问题传递给相关人员,将问题阻止在最初的地方并及时解决问题。安灯系统是一种提高制造质量和生产效率的最有效手…

重建恐龙化石,摄影测量在古生物学中有怎样的意义?

一直以来,恐龙都是很多人喜欢的对象,各种恐龙主题的影视作品也是层出不穷,特别是《侏罗纪公园》系列电影,将恐龙推上了电影明星的位置。各种收藏恐龙巨型化石的博物馆也相当受欢迎。 随着三维重建的普及,建模打印和恐龙…

http请求和响应格式说明,http的get和post请求方式说明,http的请求体body的几种数据格式

HTTP内容说明 请求报文 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成, 请求报文的一般格式 <request-line> <headers> &am…

Firefly RK3399 PC pro开发板资料

一. 基本介绍 产品介绍:Firefly | 让科技更简单,让生活更智能开发板规格书:https://download.t-firefly.com/product/Board/RK3399/Document/Hardware/ROC-RK3399-PC%20Pro/Specification/ROC-RK3399-PC%20Pro%20%E4%BA%A7%E5%93%81%E8%A7%84…

AES实现接口的安全性

文章目录Maven项目结构图引入依赖AESUtilsEnDecryptUtilEncryptPropertiesEncryptAutoConfigurationspring.factories打成jar包,供其他项目 / 人使用打成jar 包导入 jar 包测试application.yamlUser类HelloController 测试代码地址: 链接:htt…

深入理解java虚拟机:类文件结构(1)

文章目录1. 概述2. Class类文件的结构2.1 魔数与Class文件的版本2.2 常量池2.3 访问标志2.4 类索引、父类索引与接口索引集合2.5 字段表集合1. 概述 如果计算机的CPU指令集就只有x86一种,操作系统就只有Windows一种,那也许就不会有Java语言的出现。Java…

云原生:容器与微服务

目录 一、虚拟化与容器 1.1 虚拟机 1.2 容器 1.3 Docker 1.4 Docker代码示例 二、微服务 2.1 微服务的概念 2.2 微服务的特点 三、为什么使用微服务 3.1 微服务的优缺点 3.2 云原生的支持服务 云原生技术使组织能够在新式动态环境(如公有云、私有云和混…

攻防世界-pwnCTFM-Off_By_one漏洞与Tcachebin绕过

攻防世界-pwnCTFM-Off_By_one漏洞与Tcachebin绕过 保护机制 healerhealer-virtual-machine:~/Desktop/pwnCTFM/attachments$ checksec pwn [*] /home/healer/Desktop/pwnCTFM/attachments/pwnArch: amd64-64-littleRELRO: Full RELROStack: Canary foundNX: …

线性判别分析(机器学习)

目录 线性判别分析的原理 LDA的降维过程如下 线性判别分析(LDA) 是一种有监督的线性降维算法。 与PCA不同,LDA是为了使降维后的数据点尽可能地容易被区分 线性判别分析的原理 线性判别分析是对于给定的训练集,设法将样本投影到…

基于HTML+CSS+JavaScript+Bootstarp响应式健身网站(web前端期末大作业)

网站题目> 🏀校园篮球网页设计、⚽足球体育运动、🤽体育游泳运动、🏓兵乓球 、🎾网球、等网站的设计与制作。 二、✍️网站描述> 🏷️ 大学生校园运动静态HTML网页设计作品,采用DIV CSS布局制作&am…

数据结构体进阶链表【带头双向循环链表,单向链表的优化,从根部解决了顺序表的缺点】一文带你深入理解链表

前言: 对于链表,上一篇的单链表解决了顺序表的一部分缺陷,但并没有彻底的解决顺序表的问题,比如在进行单链表尾插尾删的时候还是需要进行遍历找尾,并没有达到全部的O(1),并且在头插的时候还要分情况来考虑&…

【ASM】字节码操作 工具类与常用类 AdviceAdapter 介绍 打印方法进入 和 方法退出 的参数

文章目录 1.概述2. AdviceAdapter类2.1 class info2.2 fields2.3 constructors2. 4 methods2.案例2.1 打印方法参数3.总结1.概述 在上一篇文章:【ASM】字节码操作 工具类与常用类 Printer、ASMifier、Textifier 介绍 我们简单的介绍了 Printer、ASMifier、Textifier 三个类的…

idea2021版本创建一个javaweb项目(含额外知识--添加tomcat相关jar包)

前言: 建立一个javaweb项目需要用到JDK、idea、Tomcat 1. JDK是11版本的 2.IDEA是2021版本的 3.Tomcat是8.5版本的 这些下载在我的其他文章里面也有讲到下载和应用,大致都是殊途同归的 一、打开ided,按照以下步骤点击创建一个工程项目…