【计算机概论 ①】- 电脑:辅助人脑的好工具

目录

一、电脑硬件的五大单元

二、一切设计的起点:CPU 的架构

三、其他单元的设备

四、运行流程

五、电脑的分类

六、电脑上面常用的计算单位(容量、速度等)


 

操作系统硬件有相当程度的关联性,所以,如果不了解一下计算机概论,要很快地了解 Linux 的概念是有点难度的。

计算机:接受用户输入的命令与数据,经由中央处理器的算数与逻辑单元运算处理后,产生或存储有用的信息。因此,只要有输入设备(不管是键盘还是触摸屏)及输出设备(例如电脑屏幕或直接由打印机打印出来),让你可以输入数据使该机器产生信息的,那就是一台计算机了。

根据计算机的定义,一般商店用的简易型加减乘除计算器、打电话用的手机、开车时用的卫星定位系统、取款用的提款机、上课会使用的台式电脑、外出可能会带的笔记本电脑,还有平板电脑、智能手机、单板电脑、智能手表、智能穿戴式电脑等等都是计算机。

那么计算机主要的组成组件是什么呢?下面我们以常见的个人电脑或服务器工作站主机来作说明。


一、电脑硬件的五大单元

关于电脑的硬件组成部分,其实你可以观察台式电脑来分析一下,依外观来说主要可以分为以下三个部分:

  • 输入单元:包括键盘、鼠标、读卡器、扫描仪、手写板、触摸屏等;

  • 主机部分:这个就是系统单元,被主机机箱保护着,里面含有一堆板子、CPU 与内存等;

  • 输出单元:例如屏幕、打印机等。

我们主要通过输入设备,如鼠标与键盘,将一些数据输入到主机里面,然后再由主机处理成图表或文章等信息后,将结果传输到输出设备,如屏幕或打印机上面。那主机里面含有什么组件呢?如果你曾经拆开过电脑主机机箱(包括拆开你的智能手机也一样),会发现其实主机里面最重要的就是一块主板,上面安插了中央处理器(CPU)以及内存、硬盘(或存储卡),还有一些适配卡设备而已。当然大部分智能手机是将这些组件直接焊接再主板上面而不是插卡。

整台主机的重点在于中央处理器(Central Processing Unit,CPU),CPU 为一个具有特定功能的芯片,里面含有微指令集,如果你想要让主机进行什么特殊的功能,就得参考这颗 CPU 是否有相关内置的微指令集才可以。由于 CPU 的工作主要在于管理与运算,因此在 CPU 内又可分为两个主要单元,分别是:算数逻辑单元控制单元。其中算数逻辑单元主要负责程序运算与逻辑判断,控制单元则主要在协调各周边组件与各单元间的工作。

既然 CPU 的重点是在进行运算与判断,那么要被运算与判断的数据是从哪里来的?CPU 读取的数据都是从内存中来的,内存中的数据则是从输入单元所传输进来的,而 CPU 处理完毕的数据也必须要先写回内存中,最后数据才从内存传输到输出单元

为什么我们都会说,要加快系统性能,通常将内存容量加大就可以获得相当好的效果?如同下图以及上面的说明,因为所有的数据都要经过内存的传输,所以内存的容量如果太小,数据读写性能就不足,对性能的影响相当大,尤其针对 Linux 最为服务器的环境下。

综合上面所说的,我们知道其实电脑是由几个单元所组成的,包括输入单元输出单元CPU 内部的控制单元算数逻辑单元内存五大部分,它们的关联性如下图所示:

上图中的 "系统单元" 其实指的就是电脑机箱内的主要组件,而重点在于 CPU 与内存。特别要看的是实现部分的传输方向,基本上数据都是流经内存再转出去的,至于数据会流进/流出内存则是 CPU 所发出的命令控制。而 CPU 实际要处理的数据则完全来自于内存(不管是程序还是一般文件)。这是个很重要的概念,这也是为什么当你的内存不足时,系统的性能就很糟糕,也是为什么现在人们买智能手机时,对于可用内存的要求都很高的原因。

由上图我们也能知道,所有单元都是由 CPU 内部的控制单元来负责协调的,因此 CPU 是整个电脑系统的最重要部分!那么目前世界上有哪些主流的 CPU 呢


二、一切设计的起点:CPU 的架构

如前面说过的,CPU 其实内部已经含有一些微指令,我们所使用的软件都要经过 CPU 内部的微指令集来完成。那这些指令集的设计又主要被分为两种设计理念,这就是目前世界上常见到的两种主要 CPU 架构,分别是:

  • 精简指令集(Reduced Instruction Set Computer,RISC)

    这种 CPU 的设计中,微指令集较为精简,每个指令的运行时间都很短,完成的操作也很简单,指令的执行性能较佳;但是若要做复杂的事情,就要由多个指令来完成。常见的 RISC 微指令集 CPU 主要例如甲骨文(Oracle)公司的 SPARC 系列、IBM 公司的 Power Architecture(包括 PowerPC)系列与 ARM 公司的 ARM CPU 系列等。

    在应用方面,SPARC CPU 的电脑常用于学术领域的大型工作站中,包括银行金融体系的主要服务器也都有这类的电脑架构;至于 PowerPC 架构的应用上,例如索尼(Sony)公司出产的 Play Station 3(PS3)就是使用 PowerPC 架构的 Cell 处理器;那 ARM 公司的 的 ARM 呢?你常使用的各品牌手机、PDA、导航系统、网络设备(交换器、路由器等)等,几乎都是使用 ARM 架构的 CPU。老实说,目前世界上使用最广的 CPU 可能就是 ARM 这种架构

  • 复杂指令集(Complex Instruction Set Computer,CISC)

    与 RISC 不同,CISC 在微指令集的每个小指令可以执行一些较低级的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂,所以每条指令花费的时间较长,但每条别指令可以处理的工作较为丰富。常见的 CISC 微指令集 CPU 主要有 AMD、Intel、VIA 等的 x86 架构的 CPU。

    由于 AMD、Intel、VIA 所开发出来的 x86 架构 CPU 被大量使用于个人电脑(Personal Computer),因此个人电脑常被称为 x86 架构电脑。那为何称为 x86 架构?这是因为最早的那块 Intel 研发出来的 CPU 代号称为 8086,后来依此架构又开发出 80286、80386 等,因此这种架构的 CPU 就被称为 x86 架构了

    在 2003 年以前由 Intel 所开发的 x86 架构 CPU 由 8 位升级到 16、32 位,后来 AMD 依此架构修改新一代的 CPU 为 64 位,为了区分两者的差异,因此 64 位的个人电脑 CPU 又被统称为 x86_64 的架构

    所谓的位指的是 CPU 一次数据读取的最大量,64 位 CPU 代表 CPU 一次可以读写 64 位数据,32 位 CPU 则是 CPU 一次可以读写 32 位数据。

    那么不同的 x86 架构的 CPU 有什么差异呢?除了 CPU 的整体结构(如第二层高速缓存、每次运行可执行的指令数等)之外,主要是在于微指令集的不同。


三、其他单元的设备

五大单元中最重要的控制、算数逻辑被整合到 CPU 的封装中,但系统当然不可能只有 CPU。那其他三个重要电脑单元的设备还有哪些?其实在主机机箱内的设备大多是通过主板(main board)连接在一块,主板上面有连接沟通所有设备的芯片组,这个芯片组可以将所有单元的设备连接起来,好让 CPU 可以对这些设备下达命令。其他单元的重要设备主要有:

  • 系统单元:包括 CPU 与内存及主板相关组件。而主板上面其实还有很多的硬件接口与相关的适配卡,包括网卡、磁盘阵列卡、还有显卡等。尤其是显卡,这东西对于玩 3D 游戏来说是非常重要的一环,它与显示的精细度、色彩与分辨率都有关系。

  • 存储单元:包括内存(main memory,RAM)与辅助存储,其中辅助存储其实就是大家常听到的 "存储设备",包括硬盘、软盘、光盘、磁带等。

  • 输入、输出单元:同时覆盖输入输出的设备最常见的大概就是触摸屏了。至于单纯的输入设备包括前面提到的键盘鼠标之外,目前的体感设备也是重要的输入设备。至于输出设备,除了屏幕外,打印机、扬声器、HDMI 电视、投影仪、蓝牙耳机等都算。


四、运行流程

假设电脑是一个人体,那么每个组件对应到哪个地方?

  • CPU = 脑袋:每个人会做的事情都不一样(微指令集的差异),但主要都是通过脑袋来判断与控制身体各部分的活动。

  • 内存 = 脑袋中存放正在被思考的数据的区块:在实际活动过程中,我们的脑袋需要有外界刺激的数据(例如光线、环境、语言等)来分析,那这些互动数据暂时存放的地方就是内存,主要是用来提供给脑袋判断用的信息。

  • 硬盘 = 脑袋中存放回忆的记忆区块:跟刚刚的内存不同,内存是提供脑袋目前要思考与处理的信息,但是有些生活琐事或其他没有要立刻处理的事情,就当成回忆先放置到脑袋的记忆深处吧!那就是硬盘!主要目的是将重要的数据记录起来,以便未来将这些重要的数据(经验)再次使用。

  • 主板 = 神经系统:好像人类的神经一样,将所有重要的组件连接起来,包括手脚的活动都是脑袋发布命令后,通过神经(主板)传导给手脚来进行活动。

  • 各项周边设备 = 人体与外界沟通的手、脚、皮肤、眼睛等:就好像手脚一般,是人体与外界互动的重要关键。

  • 显卡 = 脑袋中的影像:将来自眼睛的刺激转成影像后在脑袋中呈现,所以显卡所产生的数据源也是 CPU 控制的。

  • 主机电源(Power)= 心脏:所有的组件要能运行得要有足够的电力供给才行。这电力供给就好像心脏一样,如果心脏不够给力,那么全身也就无法动弹得。心脏不稳定呢?那你的身体当然可能就断断续续地不稳定了。

由这样的关系图当中,我们知道整个活动中最重要的就是脑袋。而脑袋当中与现在正在进行的工作有关的就是 CPU 与内存。任何外界的接触都必须要由脑袋中的内存记录下来,然后脑袋中的 CPU 依据这些数据进行判断后,再发布命令给各个周边设备。如果需要用到过去的经验,就得从过去的经验(硬盘)当中读取。


五、电脑的分类

电脑的分类非常多样,如果以电脑的复杂度与计算能力进行分类的话,主要可以分为以下这几类:

  • 超级计算机(Supercomputer):超级计算机是运行速度最快的电脑,但是它的维护、操作费用也很高。主要是用于需要有高速计算的项目中,例如:国防军事、气象预测、太空科技,用在仿真的领域也比较多。

  • 大型计算机(Mainframe Computer):大型计算机通常也具有数个高速的 CPU,功能上虽不及超级计算机,但也可用来处理大量数据与复杂的计算,例如:大型企业的主机、全国性的证券交易所等每天需要处理数百万条数据的企业机构,或者是大型企业的数据库服务器等。

  • 迷你电脑(Minicomputer):迷你电脑仍保有大型计算机同时支持多使用者的特性,但是主机可以放在一般工作环境中,不必像前两个大型计算机需要特殊的空调机房。通常用来作为科学研究、工程分析与工厂的流程管理等。

  • 工作站(Workstation):工作站的价格又比迷你电脑便宜许多,是针对特殊用途而设计的电脑。在个人电脑的性能还没有提升到目前的状况之前,工作站电脑的性能/性价比是所有电脑当中较佳的,因此在学术研究与工程分析方面相当常见。

  • 微电脑(Microcomputer):个人电脑就属于这部分的电脑分类,也是我们本章主要探讨的目标。体积最小,价格最低,但功能还是五脏俱全的。大致又可分为桌上型、笔记型等

若光以性能来来说,目前的个人电脑性能已经最够快了,甚至已经比工作站等级以上的电脑运算速度还要快,但是工作站电脑强调的是稳定不死机,并且计算过程要完全正确,因此工作站等级以上的电脑在设计时的考虑与个人电脑并不相同,这也是为什么工作站等级以上的电脑售价比较贵的原因


六、电脑上面常用的计算单位(容量、速度等)

电脑的运算能力除了 CPU 微指令集设计的优劣之外,主要还是由速度来决定的,至于存放在电脑存储设备当中的数据也是有单位的。

  • 容量单位

    电脑对数据的判断主要依据有没有通电来记录信息,所以理论上对于每一个记录而言,它只认识 0 与 1 而已。0/1 这个二进制的单位我们称为位(bit,亦称比特),但位实在太小了,所以在存储数据时每份简单的数据都会使用 8 个位的大小来记录,因此定义出了字节(Byte)这个单位,它们的关系为:1 字节 = 8 位

    不过同样的,字节还是太小了,在较大的容量情况下,使用字节相当不容易判断数据的大小,所以后来就有了一些常见的简化单位表达式,例如 K 表示 1024,M 表示 1024K 等,而这些单位在不同的进位制下有不同的数值表示,下面就列出了常见的单位与进位制对应:

    进位制KiloMegaGigaTeraPetaExaZetta
    二进制10241024K1024M1024G1024T1024P1024E
    十进制10001000K1000M1000G1000T1000P1000E

    一般来说,数据容量使用的是二进制的方式,所以 1GB 的文件大小实际上为:1024*1024*1024B;速度单位则常使用十进制,例如 1GHz 就是 1000*1000*1000Hz

  • 速度单位

    CPU 的运算速度常使用 MHz 或者是 GHz 之类的单位,这个 Hz 其实就是 "次数/秒" 的意思。而在网络传输方面,由于网络使用的是 bit 为单位,因此网络常使用的单位为 Mbps 是 Mbits per second,亦即每秒多少 Mbit

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

hls实现播放m3u8视频将视频流进行切片 HLS.js简介

github官网GitHub - video-dev/hls.js: HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.HLS.js is a JavaScript library that plays HLS in browsers with support for MSE. - GitHub - video-dev/hls.js: HLS.js is a JavaScript library …

文艺复兴!ICO或再次兴起?香港Web3崛起前五部曲之一!

近日,香港证券及期货专业总会发布了《2024至2025年度财政预算案》,提出了一系列举措,其中最引人注目的莫过于政府考虑推出ICO发行机制,这一预算案被广泛视为香港在Web3崛起前的文艺复兴五部曲之一,引发了业界和投资者的…

Maxscript到Python转换工具教程

Maxscript到Python转换器教程 Maxscript到Python转换器采用MAXScript程序,将其解析为语法树,然后从语法树中生成等效的Python代码。通过提供python的自动翻译,帮助python程序员理解maxscript示例。 【项目状况】 将正确解析最正确的maxcript…

【算法】动态规划中的路径问题

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,如果给算法的难度和复杂度排一个排名,那么动态规划算法一定名列前茅。今天,我们通过由简单到困难的两道题目带大家学会动…

ios 长传发布审核+safari浏览器,直接安装ipa文件

蒲公英二维码方法 个人开发者账号发布证书AD-hoc 描述文件蒲公英上传链接通过苹果safari 浏览器下载IPA包 浏览器下载方法 前置条件 1.下载 ipa 包的设备的 uuid 已加入 苹果测试设备列表如何添加到测试列表 2.web 服务, 文件服务. 3.需要AD-hoc 描述文件 添加链接描述 1.创…

Linux系统之部署Plik临时文件上传系统

Linux系统之部署Plik临时文件上传系统 一、Plik介绍1.1 Plik简介1.2 Plik特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本 四、下载Plik软件包4.1 创建下载目录4.2 下载Plik软件包4.3 查看下载的Plik软件…

卡码网语言基础课 | 18. 开房门

目录 一、 map基础 二、 map的使用 2.1 map头文件的引入 2.2 声明映射关系 2.3 插入键值 2.4 查找键的存在 三、 范围for循环 题目: 假设你手里有一串钥匙,这串钥匙上每把钥匙都有一个编号,对应着一个房门的编号。现给你一个房门编号&a…

C语言-指针_01

指针基础 1. 概述 地址编号:计算机为了存储数据,每一个程序在 32位 机中 占4G,最小操作单位 是 一个字节,每一个字节都有其对应的地址,该地址就是 地址编号。 指针:地址编号这个数据 的 数据类型。 指针变…

flutter开发实战-实现获取视频的缩略图封面video_thumbnail

flutter开发实战-实现获取视频的缩略图封面video_thumbnail 在很多时候,我们查看视频的时候,视频没有播放时候,会显示一张封面,可能封面没有配置图片,这时候就需要通过获取视频的缩略图来显示封面了。这里使用了video…

【linux】信号——信号保存+信号处理

信号保存信号处理 1.信号保存1.1信号其他相关概念1.2信号在内核中的表示 2.信号处理2.1信号的捕捉流程2.2sigset_t2.3信号集操作函数2.4实操2.5捕捉信号的方法 3.可重入函数4.volatile5.SIGCHLD信号 自我名言:只有努力,才能追逐梦想,只有努力…

手写链表反转

LeetCode206 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 1. 建立虚拟头结点辅助反转 在分析链表插入元素的时候,会发现如何处理头…

【Python】实现一个简单的区块链系统

本文章利用 Python 实现一个简单的功能较为完善的区块链系统(包括区块链结构、账户、钱包、转账),采用的共识机制是 POW。 一、区块与区块链结构 Block.py import hashlib from datetime import datetimeclass Block:"""区…

简单搭建Python开发环境

Python环境安装 Python官网: Welcome to Python.org 1. 选择Python3.x版本下载,建议使用稳定版3.9.13(Stable Releases),绝大数库对3.9版本Python已良好支持,但对3.10及以上支持不完全: https://www.…

华清远见嵌入式学习——C++——作业4

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;class Stu {friend const Stu operator*(const Stu &L,const Stu &R);friend bool operator<(const Stu &L,const Stu &R);friend Stu operator-(Stu &L,const S…

Git 简介及异常场景处理

一、简介 介绍Git之前&#xff0c;还得先介绍下 版本控制系统&#xff08;VCS&#xff09;&#xff0c; 和它的发展历史 纵观版本控制系统的发展历史&#xff0c;广义上讲&#xff0c;版本控制工具的历史可以分为三代&#xff1a; 第一代 第一代版本控制系统被称为本地版本控…

C语言结构体详解(一)(能看懂文字就能明白系列)

&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;个人主页&#xff1a; 古德猫宁- &#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;…

Gateway跨域解决可copy配置代码

globalcors: # 全局跨域处理配置add-to-simple-url-handler-mapping: true # 解决options请求被拦截的问题cors-configurations:[/**]:allowed-origins:- "http://localhost:8090"- "http://www.qvfan.com"allowedMethods:- "GET"- "POST&q…

C++相关闲碎记录(3)

1、reference wrapper 例如声明如下的模板&#xff1a; template <typename T> void foo(T val); 如果调用使用&#xff1a; int x; foo(std::ref(x)); T变成int&&#xff0c;而使用调用 int x; foo(std::cref(x)); T变成const int&。 这个特性被C标准库用…

【每日一题】1094. 拼车-2023.12.2

题目&#xff1a; 1094. 拼车 车上最初有 capacity 个空座位。车 只能 向一个方向行驶&#xff08;也就是说&#xff0c;不允许掉头或改变方向&#xff09; 给定整数 capacity 和一个数组 trips , trip[i] [numPassengersi, fromi, toi] 表示第 i 次旅行有 numPassengersi…

vue中中的动画组件使用及如何在vue中使用animate.css

“< Transition >” 是一个内置组件&#xff0c;这意味着它在任意别的组件中都可以被使用&#xff0c;无需注册。它可以将进入和离开动画应用到通过默认插槽传递给它的元素或组件上。进入或离开可以由以下的条件之一触发&#xff1a; 由 v-if 所触发的切换由 v-show 所触…