计算机极简发展史(二)

简介: 计算机自从 20 世纪 40 年代诞生以来,一直以史无前例的进步向前发展,如果说农业革命是第一次革命、工业革命是第二次革命的话,那么第三次革命就是 信息革命。

硬件入门


看到这里你可能会有疑问,为什么要学硬件呢?换个角度来讲,凭什么培训三个月出来的程序员能够和科班学习四年的程序员一起竞争找工作?想过这个问题没有?

那是因为,培训机构不会为你的长远考虑,短期找到工作能够交差即可。把一个程序员的素养等价为找到工作即可,这本来就是这个行业的污点所在,CRUD 程序员不需要专业的程序素养,完成工作即可。为什么程序总有填不完的坑,不考虑程序健壮性、可拓展性、设计模式,写代码只为了自己,而不是以工程化的标准来要求自己就是培训班和科班的素养和差距。这也是我为什么最近在研究计算机基础的原因,因为我不够有素质

为什么学硬件?就是能够让你从计算机的角度思考问题。好了不多说了,说多了该被培训班 diss 了。

任何一台计算机的基础硬件都需要完成最基本的功能:输入数据、输出数据、处理数据、存储数据。我们讨论的主题就是描述这些功能是怎样完成的。

下面我们就要探讨一下这些硬件

显示器

显示器是一个非常吸引人的输出设备,大多数个人移动设备都用 液晶显示(Liquid Crystal Display, LCD) 来获得轻巧、低功耗的显示效果。LCD 能够控制光的传输。今天,大多数 LCD 显示器都采用 动态矩阵显示(active matrix display) 技术,其每个像素(pixel) 都由一个晶体管精确的控制电流,从而使图像更加清晰。在彩色动态矩阵 LCD 中,还有一个 红 - 绿 - 蓝屏决定三种颜色分量的强度,每个点需要三个晶体管开关。

  • 液晶显示,这是一种显示技术,用液体聚合物薄层的带电或者不带电来传输或者阻止光线的传输
  • 动态矩阵显示,一种液态显示技术,使用晶体管控制单个像素上光线的传输
  • 像素,图像元素的最小单位,屏幕由成千上万的像素来组成

图像由像素矩阵组成,可以表示成二进制位的矩阵,称为 位图(bit map)。不同分辨率所能够支持的矩阵大小不同,彩色显示器使用 8 位来表示每个三原色(红、绿和蓝),每个像素用 24 位表示,可以显示百万种不同的颜色。

计算机硬件使用光栅刷新缓冲区(又称为帧缓冲区)来保存位图以支持图像。

微信图片_20220414213121.png

图中的 X0 Y0 ,X1 Y1 都表示像素

触摸屏

后 PC 时代,移动设备的高速发展,使触摸屏成为一种趋势,触摸屏有两种实现

电阻式触摸屏(Resistive touchscreens):电阻式触摸屏基于施加到屏幕上的压力来工作。电阻屏由许多层组成。当按下屏幕时,外部的后面板将被推到下一层,下一层会感觉到施加了压力并记录了输入。电阻式触摸屏用途广泛,可以用手指,指甲,手写笔或任何其他物体进行操作。

微信图片_20220414213410.png

电容式触摸屏(capacitive touchscreen):电容式触摸屏通过感应物体(通常是指尖上的皮肤)的导电特性来工作。手机或智能手机上的电容屏通常具有玻璃表面,并且不依赖压力。当涉及到手势(如滑动和捏合)时,它比电阻式屏幕更具响应性。电容式触摸屏只能用手指触摸,而不能用普通的手写笔,手套或大多数其他物体来响应。

微信图片_20220414213413.png

机箱

下面是一个 ipad2 的剖面图

微信图片_20220414213418.png

这里面包括集成电路,也称为芯片(chip)、CPU、前置摄像头、后置摄像头、麦克风、耳机插孔、扬声器、加速计、陀螺仪、Wi-Fi 网络和蓝牙网络等。

为了进一步理解硬件,下面展示了一款苹果 A5 微处理器的实现细节,处理器从逻辑上包括两个主要部件:数据通路和控制器

微信图片_20220414213445.png

数据通路主要用来执行算数运算

控制器主要负责指导数据通路、存储器和 I/O 设备按照正确的指令进行执行

除此之外,上述剖面图还包括 GPIO,通用型之输入输出的简称。

DDR SDRM 接口是内存条接口,通过提供多个隔行扫描的内存访问,从而提高内存带宽

内存是程序运行的存储空间,它同时用于保存程序运行时所使用的数据,内存由 DRAM 芯片组成。DRAM(Dynamic random access memory) 是动态随机访问存储器的缩写。在处理器内部使用的是另外一种存储器 - 缓存(cache memory) ,这是一种小而快的存储器,一般作为 DRAM 的缓冲。cache 使用的是 静态访问存储器(Static Random Access Memory, SRAM) ,它的速度要比 DRAM 更快,价格也更加昂贵。

我们上面探讨了影响计算机的几大设计思想,其中非常重要的一个思想就是 抽象,计算机硬件和软件的接口就是一种抽象,这种抽象又被叫做 指令集体系结构(instruction set architecture) ,或者简称为 体系结构(architecture)。提供给应用程序员基本指令集和操作系统接口称为 应用二进制接口(Application Binary Interface)

这种抽象的好处是让程序员能够单独的实现应用程序,而不用考虑其内部的硬件,内部硬件和系统应用程序只提供对用户的服务。对程序员隐藏内部实现细节。

与其他计算机通信

上面我们已经基本介绍到了输入、输出、控制器、存储器,但是对于计算机,还有一项非常重要的功能我们没有介绍 - 计算机网络,通过计算机联网,可以实现与其他计算机通信,任何计算机都不能成为信息的 孤岛,计算机通信能为我们带来下面这些好处

  • 信息交互:在联网的两台计算机之间实现信息交互
  • 资源共享:有些 I/O 设备可以由网络上的计算机共享
  • 远距离访问:用户可以通过远距离操作计算机

随着传输速度以及通信传输的距离,通信代价也在随之增长,网络的传输是多种多样的,最常见的就是 以太网,以太网是一种连接局域网的传统技术,它能够使设备通过协议(一组规则或通用网络语言)相互通信,以太网的接入设备可以相互识别对方,以太网中的一个例子就是 局域网(Local Area Network, LAN) ,局域网通过交换机进行组网。还有一种距离更远的网络是 广域网,广域网可支持万维网(World Wide Web)

  • 局域网:一种在一定的地理区域使用的传输数据的网络
  • 广域网:一种可将区域扩展到几百几千米范围的网络

随着计算机的不断发展,通信速度和性能也在不断提升。

处理器和存储器制造技术

处理器和存储器在高速发展,计算机最初使用的是晶体管,然后后面慢慢出现了集成电路、超大规模集成电路。下表展示了这个演变过程

时间 计算机构造
1951 真空管
1965 晶体管
1975 集成电路
1995 超大规模集成电路
2013 更大规模集成电路

晶体管(transistor)是一种固体半导体器件,具有多种功能。晶体管作为一种可变电流开关,能够基于输入电压控制输出电流。集成电路(IC) 由成千上万的晶体管组成。后面不断的发展为更多晶体管组成的 超大规模集成电路(VLSL)

性能

计算机的性能是很难评判的,我们将从以下几个方便来展开探讨

性能的定义

个人计算机用户比较感兴趣的就是 响应时间(response time),响应时间就是指一个任务从开始到完成所需要的时间,又称为执行时间。而数据中心感兴趣的常常是 吞吐率(throughput)

  • 响应时间:也叫执行时间(execution time),是计算机完成某项任务所需要的总时间,包括硬盘访问、内存访问、I/O 活动、操作系统开销和 CPU 的执行时间等。
  • 吞吐率:也叫 带宽(bandwidth),性能的另一种度量参数,表示单位时间内完成的任务数量。

性能的度量

如果使用时间来度量计算机,那么完成同样的任务,需要时间最少的计算机是最快的。程序的执行时间一般以为单位。我们可以使用 CPU 执行时间 来表示在 CPU 上花费的时间,而不包括其他 I/O 或应用程序的时间。CPU 时间可以进一步分为用于用户程序的时间和操作系统为用户服务花去的 CPU 时间,前者称为 CPU 时间,后者称为系统 CPU 时间。

  • CPU 执行时间:简称 CPU 时间,执行某一任务在 CPU 上花费的时间
  • 用户 CPU 时间:为用户服务所花费的时间
  • 系统 CPU 时间:为执行程序花费在操作系统上的时间。

为了一致性,我们使用 CPU 性能表示用户 CPU 时间,用系统性能表示系统空运行的响应时间。

几乎所有的计算机都会使用时钟来驱动硬件中的各种事件。时钟间隔的时间称为 时钟周期(clock cycle)。也可以用它的倒数来描述,称为 时钟频率(clock rate)

CPU 性能及其因素

我们一般使用下面的公式来表示 CPU 的性能

CPU 执行程序的时间 = 程序 CPU 时钟周期数 * 时钟周期时间

由于时钟频率和时钟周期互为倒数的关系,所以也可以用

CPU 执行程序的时间 = 程序 CPU 时钟周期数 / 时钟频率

有了公式后,我们可以对各个指标进行描述,在时钟周期时间内,程序 CPU 时钟周期数越低,CPU 性能越高。在周期数相同的情况下,时钟频率越高,CPU 性能越高。

指令的性能

CPU 最终是要执行指令的,一个考虑指令执行时间的方法是:执行时间等于执行的指令 * 每条指令的平均时间。所以,一个程序需要的时钟周期数为

CPU 时钟周期数 = 程序指令数 * 每条指令的平均执行周期

我们一般使用 CPI(clock cycle per instruction) 表示执行每条指令所需的时钟周期的平均值。不同指令执行的周期可能不同,所以 CPI 表示的是一个平均值。

所以我们可以使用 CPU 时间 = 指令数 * CPI * 时钟周期时间

或者 CPU 时间 = 指令数 * CPI / 时钟频率



 总结



本篇文章我们主要介绍了 计算应用分类、计算机发展的八大思想、计算机结构层次、基本硬件入门,还有计算机通信、处理器发展、性能的定义。

相关文章
|
11月前
|
缓存 NoSQL Linux
Linux调试
本文介绍了Linux调试、性能分析和追踪的培训资料,涵盖调试、性能分析和追踪的基础知识及常用工具。
693 63
Linux调试
|
11月前
|
运维 Devops jenkins
DevOps实践:持续集成与持续部署在现代软件开发中的作用
【10月更文挑战第42天】在快节奏的软件开发世界里,DevOps已经成为一种提升效率、确保质量和加速交付的重要方法。本文将深入探讨DevOps的核心组成部分—持续集成(CI)和持续部署(CD)—并展示它们如何通过自动化流程优化开发周期。我们将从基础概念讲起,逐步过渡到实际操作,最终通过一个简单代码示例来演示这一过程。文章旨在为读者提供清晰的指导,帮助他们理解和实现CI/CD流程,从而在软件开发领域取得竞争优势。
|
11月前
|
监控 前端开发 jenkins
Jenkins 在前端项目持续部署中的应用,包括其原理、流程以及具体的实现方法
本文深入探讨了Jenkins在前端项目持续部署中的应用,涵盖其基本原理、流程及具体实现方法。首先介绍了Jenkins的基本概念及其在自动化任务中的作用,随后详细解析了从前端代码提交到生产环境部署的全过程,包括构建、测试、部署等关键步骤。最后,强调了持续部署中的代码质量控制、环境一致性、监控预警及安全管理等注意事项,旨在帮助开发者高效、安全地实施持续部署。
255 5
|
11月前
|
缓存 JavaScript 安全
深入理解Docker镜像构建过程
深入理解Docker镜像构建过程
236 0
|
机器学习/深度学习 算法
贝叶斯线性回归:概率与预测建模的融合
本文探讨了贝叶斯方法在线性回归中的应用,从不确定性角度出发,介绍了如何通过概率来表达变量间关系的不确定性。文章首先回顾了古希腊天文学家使用本轮系统模拟行星运动的历史,并将其与傅里叶级数分解方法类比,强调了近似的重要性。接着,通过高斯分布和贝叶斯推断,详细讲解了线性回归中的不确定性处理方法。文章使用Howell1数据集,展示了如何构建和拟合高斯模型,并通过先验预测模拟验证模型合理性。最后,介绍了多项式回归和样条方法,展示了如何逐步增加模型复杂性以捕捉更细微的数据模式。贝叶斯方法不仅提供了点估计,还提供了完整的后验分布,使得模型更具解释性和鲁棒性。
331 1
贝叶斯线性回归:概率与预测建模的融合
|
存储 弹性计算 运维
阿里云国际站代理商:阿里云服务器怎么用,解析、配置和管理教程
@luotuoemo 飞机@TG 【聚搜云】服务器运维专家!阿里云国际站代理商:阿里云服务器怎么用,解析、配置和管理教程,阿里云服务器(ECS)作为阿里云云计算平台的核心产品之一,提供稳定、强大的云服务器资源,广泛应用于各行各业。本文将深入探讨阿里云服务器的使用方法,包括解析、配置和管理等方面的教程,帮助您更好地了解和使用阿里云服务器。
|
存储 移动开发 JavaScript
手把手教你用 Vue 搭建带预览的「上传图片」管理后台
手把手教你开发带预览的 Vue 图片上传组件,即图片上传管理后台。只要你跟本教程一步一步走,最终能很好的理解整个前后端传图的工程逻辑。前端我们使用 Vue + Axios + Multipart 来搭建前端上传图片应用,后端我们使用 Node.js + Express + Multer 来搭建后端上传图片的后端处理。
1373 0
|
机器学习/深度学习 人工智能 大数据
【深度学习之美】一入侯门“深”似海,深度学习深几许(入门系列之一)
当你和女朋友在路边手拉手一起约会的时候,你可曾想,你们之间早已碰撞出了一种神秘的智慧–深度学习。恋爱容易,相处不易,不断磨合,打造你们的默契,最终才能决定你们是否在一起。深度学习也一样,输入各种不同的参数,进行训练拟合,最后输出拟合结果。 恋爱又不易,且学且珍惜!
53667 1