计算机硬件基础-程序员宅基地

技术标签: # 软件设计师笔记  计算机基础  

一、计算机系统硬件基本组成

计算机系统是由硬件和软件组成的,它们协同工作来运行程序;
计算机的基本硬件系统由运算器控制器存储器输入设备输出设备五大部件组成;
运算器、控制器等部件被集成在一起,统称为中央处理单元(Central Processing Unit, CPU);
CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能;
存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器;
内部存储器速度高、容量小,一般用于临时存放程序、数据及中间结果;
外部存储器速度慢、容量大,可以长期保存程序和数据;
输入设备和输出设备合称为外部设备(简称:外设);
输入设备用于输入原始数据及各种命令;
输出设备用于输出计算机运行的结果;


二、中央处理单元

中央处理单元(CPU)是计算机系统的核心部件,它负责获取程序指令、对指令进行译码并加以执行;

1、CPU的功能

程序控制:CPU通过执行指令来控制程序的执行顺序,这是CPU的重要功能;
操作控制:一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能进行操作;
时间控制:CPU对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制;
数据处理:CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用,所以对数据的加工处理也是CPU最根本的任务;
此外,CPU还需要对系统内部和系统外部的中断(异常)做出响应,进行相应的处理;


2、CPU的组成

CPU主要由运算器、控制器、寄存器和内部总线等组件组成;

1)运算器

运算器由算术逻辑单元累加寄存器数据缓冲寄存器状态条件寄存器等组成,它是数据加工处理部件,用于完成计算机的各种算术和逻辑运算。

相对于控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。

运算器主要有两个功能:

执行所有的算术运算,例如加、减、乘、除等基本运算及附加运算;
执行所有的逻辑运算并进行逻辑测试,例如与、或、非、零值测试或两个值的比较等;

(1)算术逻辑单元(Arithmetic and Logic Unit,ALU)
​ ALU是运算器的重要组成部件,负责处理数据,实现对数据的算术运算和逻辑运算;

(2)累加寄存器(AC)
​ AC通常简称为累加器,它是一个通用寄存器,其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。例如:在执行一个减法运算前,先将被减数取出暂存在AC中,再从内存储器中取出减数,然后同AC的内容相减,将所得的结果送回AC中。运算的结果是放在累加器中的,运算器中至少要有一个累加寄存器;

(3)数据缓冲寄存器(DR)
​ 在对内存储器进行读/写操作时,用DR暂时存放由内存储器读/写的一条指令或一个数据字,将不同时间段内读/写的数据隔离开来。

DR的主要作用为:

作为CPU和内存、外部设备之间数据传送的中转站;
作为CPU和内存、外围设备之间在操作速度上的缓冲;
在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器;

(4)状态条件寄存器(PSW)
​ PSW保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,主要分为状态标志和控制标志,例如:

运算结果进位标志(C);
运算结果溢出标志(V);
运算结果为0标志(Z);
运算结果为负标志(N);
中断标志(I);
方向标志(D);
单步标志
这些标志通常分别由1位触发器保存,保存了当前指令执行完成之后的状态。通常,一个算术操作产生一个运算结果,而一个逻辑操作产生一个判决;

2)控制器

运算器只能完成运算,而控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且能够处理异常事件。

控制器一般包括指令控制逻辑时序控制逻辑总线控制逻辑中断控制逻辑

指令控制逻辑

指令控制逻辑要完成:取指令、分析指令和执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤;

(1)指令寄存器(IR)
​ 当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,,再送入IR暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。

(2)程序计数器(PC)
​ PC具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分两种情况,一时顺序执行,二是转移执行。

在程序开始执行前,将程序的起始地址传入PC,该地址在程序加载到内存时确定,因此PC的内容及时程序第一条指令的地址。执行指令时,CPU自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移的地址得到。

(3)地址寄存器(AR)
​ AR保存当前CPU所访问的内存单元的地址。由于内存和CPU存在着操作速度上的差异,所以需要使用AR保存地址信息,直到内存的读/写操作完成为止。

(4)指令译码器(ID)
​ 指令包含操作码和地址码两部分,为了能执行任何给定的指令,必须对操作码进行分析,以便识别所完成的操作。指令译码器就是对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需功能。

时序控制逻辑

时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。

总线控制逻辑

总线控制逻辑是为多个功能部件服务的信息通路的控制电力。

中断控制逻辑

中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。

3)寄存器组

寄存器组可分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器,其作用是固定的。通用寄存器用途广泛并可由程序员规定起用途,其数目因处理器不同有所差异。


3、多核CPU

核心又称为内核,是CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算、接收/存储命令、处理数据都由核心执行。各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元都会有合理的布局。

多核即在一个单芯片上面集成两个甚至更多个处理器内核,其中,每个内核都有自己的逻辑单元、控制单元、终端处理器、运算单元,一级Cashe、二级Cache共享或独有,其部件的完整性和单核处理器内核相比完全一致。

CPU的主要厂商AMD和Intel的双核技术在物理结构上有所不同。AMD将两个内核做在一个Die(晶元)上,通过直连架构连接起来,集成度更高,因此将AMD的方案称为“双核”。Intel则是将放在不同核心上的两个内核封装在一起,因此将Intel的方案称为“双芯”。

从用户端的角度来看,AMD的方案能够使双核CPU的管脚、功耗等指标跟单核CPU保持一致,从单核升级到双核,不需要更换电源、芯片组、散热系统和主板,只需要刷新BIOS软件即可。

多核CPU系统最大的优点(也是开发的最主要目的)是可满足用户同事进行多任务处理的要求。

单核多线程CPU是交替地转换执行多个任务,只不过交替转换的时间很短,用户一般感觉不出来。如果同时执行的任务太多,就会感觉到“慢”或者“卡”。而多核在理论上则是在任何时间内每个核执行各自的任务,不存在交替问题。因此,单核多线程和多核(一般每核也是多线程的)虽然都可以执行多任务,但是多核的速度更快。

虽然采用了Intel超线程技术的单核可以视为是双核,4核可以视为是8核。然而,视为是8核一般比不上实际是8核的CPU性能。

要发挥CPU的多核性能,就需要操作系统能够及时、合理地给各个核分配任务和资源(如缓存、总线、内存等),也需要应用软件在运行时可以把并行的线程同时交付给多个核心分别处理。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Mr_robot_strange/article/details/126265878

智能推荐

ASAN 问题总结-程序员宅基地

文章浏览阅读940次,点赞3次,收藏11次。MemShadowshadow memory也是内存中的一块区域,但与main memory又不同,shadow memory中有元数据的思想,其中的数据存放的是 main memory 的状态信息。因此,可以将 shadow memory 看做是 main memory 的元数据,而 main memory 中存储的才是程序真正的数据。_asan

算法导论 CLRS 19.2-8 解答-程序员宅基地

文章浏览阅读180次。假设二项堆H的第一个空缺的二项树为Bk, 则插入一个关键字x之后,必然是有B0, B1, .., Bk-1加上x组成Bk过程如下1. 遍历H的根表,同时比较x和各个二项树的根关键字,记录最小的关键字,直到空缺的二项树Bk2.如果最小关键字为某个二项树Bj的根,则将Bj的根替换为x,然后将x下沉;3. 以最小的关键字为根,B0, B1,...,Bk-1为孩子组成..._clrs 19.2-1

数学通道的应用(十五)-电阻的测量_示波器测高电阻通道乘几-程序员宅基地

文章浏览阅读1.2k次。在我们推出4425A示波器PicoBNC+电阻测试线的介绍视频之后,有人提出了可不可以用4425示波器测量电阻这个问题。这绝对是有可能的。我们必须了解正在测量的电路,捕获电压和电流信号(在有负载的情况下),并使用欧姆定律来计算电阻。图1是一个典型示例,我们在Maths is Cool第一篇文章中介绍过了起动机的电压和电流。 图1 电..._示波器测高电阻通道乘几

c语言指针取10个数中最大值和最小值,C语言提问:用指针法,有10个数围成一个圈,求出相邻三个数之和的最小值。,从0,1,2……9等1...-程序员宅基地

文章浏览阅读1.1k次。#includevoid _max_cycle_sum(int *a,int len){int *p,*q,sum,i=0,j,total=0;p=a;q=a;for(i=0;i<=len-1;i++){//用total作为待比较的数对其初始化,因为连续的三位和比其数组总和小total+=*q++;}i=0;while(i<=len-1){//不难分析出的到的每三个数为一组答案,共有l..._用while写指针查找最大值和最小值

机房服务器显示器切换主机,某机关单位机房运用迈拓维矩IP-KVM切换器解决方案...-程序员宅基地

文章浏览阅读375次。使用背景:某机关单位在机房有16台独立工控主机,要求既可以在机房本地通过一套IP KVM切换器能实现对这16台设备上架管理,另外,管理员可以在外地通过因特网能随时登陆 IP KVM切换器上 ,实现对IP KVM 所连接主机的访问,管控操作。技术要求:1、机柜内的16台设备作为一个独立单元,要求通过一套设备即可实现对本机柜内的主机进行管控。2、管理员能够实现通过IP远程进行服务器的休眠唤醒。3、所有..._底图功能 迈拓维矩

Android逆向之反编译APK_apk反编译-程序员宅基地

文章浏览阅读895次。1、反编译资源,主要通过 apktool2、反编译代码,主要通过 dex2jar + jd-gui3、基于一个 app 打造一个新的 app,主要通过 apktool 反编译后,修改 activity_main.xml 文件,然后进行重新打包,签名,对齐,最后安装展示了预期的效果。_apk反编译

随便推点

7个顶级资源搜索网站,不知道太可惜了!_最强搜索引擎入口-程序员宅基地

文章浏览阅读10w+次,点赞25次,收藏192次。 说起搜索资源,大家肯定先想到百度,的确“度娘”很万能,能帮我们解决很多问题,但毕竟百度资源有限,用的人多了就造成重复的问题,接下来,小编给大家分享7个顶级资源搜索网站,能满足你很所多需求哦。一、 疯狂影视搜索http://www.ifkdy.com/ 一款全能影视搜索引擎,里面的视频资源都是高清的,而且每天不重样,适合喜欢看影视的朋友。二、 BT搜索http..._最强搜索引擎入口

【券商报告】基础化工行业月报:行业维持景气态势,继续关注制冷剂和化纤——附下载链接_化纤 行研报告-程序员宅基地

文章浏览阅读63次。来源 | 中原证券全球基础化学品需求总量约为 6.5 亿吨/年,其中乙烯、丙烯、甲醇、氯气、苯和对二甲苯六大价值链约占其中的 80%。2020 年, 这 6 种化学品需求较前一年下降约 1000 万吨,下降幅度远低于预期。基础化学品需求下降幅度相对较小主要是因为 50%的基础化学品作为塑料被消费。与食品、饮料、卫生和医疗包装等 相关的非耐用品的乙烯需求得到聚乙烯(PE)需求支撑,这一块需求占到全球乙烯需求的 63%。 此外,对于乙烯行业,由于前一段时期盈利持续强劲和新项目投资增加,造成需求与产能之间 的_化纤 行研报告

mysql 单独join_MySQL的各种Join-程序员宅基地

文章浏览阅读564次。写在最前面所有的内容都是通过资料自行整理总结出来的,包括SQL代码也是自己一行一行自己敲出来试过的,因此未授权禁止进行转载由于本人能力有限,自行进行整理的内容未必100%准确,因此若有内容不当之处,还请各位大神指正为了更好理解其中的各种 join,现在建立两张表 tbl_subject 和 tbl_student_score ,表结构如下:tbl_subject 表结构及内容.pngtbl_stu..._mysql 单独使用join

图像处理与计算机视觉基础,经典以及最近发展--转载-程序员宅基地

文章浏览阅读277次。*************************************************************************************************************** 在这里,我特别声明:本文章的源作者是 杨晓冬 (个人邮箱:[email protected])。原文的链接是http://www.iask.s..._scale space localization, blur, and contour-based image coding

批量查询ip地址的归属地-程序员宅基地

文章浏览阅读1.3k次。1234567#!/bin/bash#批量查找ip地址所在地whilereadidosring=`curl-s"http://ip138.com/ips138.asp?ip=${i}&action=2"|iconv-fgb2312-tutf-8|grep'1.'|awk-F..._批量查询ip地址归属地

Python--网络编程-程序员宅基地

文章浏览阅读54次。Python--网络编程socket模块套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本的 Unix,即人们所说的 BSD Unix。 因此,有时人们也把套接字称为“伯克利套接字”或“BSD 套接字”。一开始,套接字被设计用在同 一台主机上多个应用程序之间的通讯。这也被称进程间通讯,或 IPC。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。基于...