zoukankan      html  css  js  c++  java
  • 计算机体系

    • 继电器,真空管,晶体管。

    继电器。使用电控制的机械开关。控制导线连接一个中间线圈,电流通过中间线圈产生磁场,吸引金属臂闭合,产生通路。可以连接其它,比如马达。

    真空管。密封玻璃管两个电极,加热一端电极会发射正电荷,另一端吸引这些正电荷,形成通路。如果发射负电荷,则不会吸引,无法形成通路。

    引入控制电级,向控制电极施加正电荷,就会允许电子通过。如果施加负电荷,则阻止电子通过。从而连接或断开电路。

    巨人计算机,第一台可编程的计算机。编程时把一些电线插到电板上即可。真空管的出现使计算机由机电驱动进入电子驱动。

    晶体管。两个电级被某材料隔开,这种材料有时导电,有时不导电,称为半导体。引入控制线,连接一个门电极,改变门电极的电荷,可以控制半导体材料的导电性。控制通路形成。

    • 布尔运算,二进制?半加器,全加器,ALU?

    使用晶体管构造NOT,AND,OR,XOR,逻辑门电路。完成基础的真假运算。只有两个值0和1,通过增加位数来表示更多的数。

    使用一个异或逻辑门和一个与逻辑门构造一个半加器。

    三个数A,B,C相加。A,B使用一个半加器,有输出位,进位两个引脚。输出位和C再构造一个半加器,有了新的输出位,进位。输出位是最终的输出位。进位和第一个半加器的进位组成或门,构造最终进位。

    ALU由算术运算器和逻辑运算器构成。算术运算器实现多位数相加。

    • 与门,或门构造存储器

    存一位,称为锁存器。一个与门和或门共同构成。有设置,复位两个输入。设置为1,复位为0时,输出为1;设置为1,复位为1时,输出为0;设置和复位都是0,输出不变,存放最后一个输出。

    使用一个数据输入线代替设置和复位,一个允许写入线,构成一个门锁,称为锁存器。

    存八位,称为寄存器。八个锁存器并排存放,有一条全局允许写入线,有八条数据输入线,八条结果输出线。

    存256位,使用矩阵。16*16的锁存器构成一个矩阵。有一条输入输出数据线,一条允许写入线,一条允许读出线,16+16根定位一个锁存器的线。

    使用只有4位输入的多路复用器表示矩阵中的一个行,再使用4位输入的多路复用器表示矩阵中的一个列。这样,一个256位存储器就使用8条地址输入线,1条数据输入输出线,一条允许写入线,一条允许读出线。

    并排存放8个256位的寄存器,构成一个256字节的存储器。有8条数据输入输出线,8条地址输入线,一条允许写入线,一条允许读出线。

    • CPU和内存通信

    CPU。指令地址寄存器,指令寄存器。向内存发出第一条指令地址,内存收到后,传入指令,称为取指操作。接下来就是解码,专门的解码电路分析出指令的意义,是把内存中的某个值放到寄存器A中。

    最后就是执行过程,内存读入指令中地址码,拿到地址后,再传入CPU中的寄存器A。

    在第三条指令中需要把寄存器A的值和寄存器B的值相加,就需要一个ALU单元,以寄存器A,B作为输入,相加后的结果存放至ALU中,再传输到寄存器A。

    一些寄存器,控制单元,运算单元ALU共同构成一个CPU。

    上述就是一个简单的程序,描述CPU和内存之间的数据传输以及地址传输。

    • 高端CPU,提升性能?

    CPU和主存之间使用Cache缓解主存速度慢的问题。同时也要注意Cache和主存中的数据不一致的问题。也就是出现了脏位。

    出现脏位后,Cache需要新数据是,对内存进行检查,把脏位数据写入内存。

    另一种提升性能的方法是使用指令流水。以往CPU执行都是取指,译码。执行,一条指令需要三个时钟周期。

    使用指令流水后,可以执行第一条指令,译码第二条指令,取指第三条指令,这样一个时钟周期就执行一条指令。提高了性能。

    指令流水也会造成数据不一致的问题。解决方案是使用数据依赖性,必要时停止流水线,以免造成更大的错误。

    指令流水第二个问题是遇到跳转指令,一般都会停止,等待运行。但这样也会造成资源浪费,所以使用指令预测,预测跳转指令后是什么指令,再执行。

    另一种性能提升方法是超标量指令机。即便使用流水线,还是会有处理机资源空闲的情况。在取值过程中,ALU还是会闲置。

    一次性执行多条指令就更好。这些指令频次都很高。

    第四种提升性能方法是多核处理器。上述三种方法都是优化一条指令流,这种方法就是同时运行多条指令流。上述优化一条指令流的方法同样也也适应在这里。

    • 早期编程方式,编程语言?

    早期使用打孔纸带,插线板,插线板集成后的开关编程。这些方式直接编制二进制0和1代码让计算机运行。

    对二进制机器代码抽象后产生LOAD A 30这样的汇编指令。再对汇编指令抽象后产生高级编程语言。例如C,python,Java等。

    • 现代编程

    算法,数据结构,软件工程,之后的最大软件操作系统诞生。

    操作系统也是一种软件,只是能够驱动硬件,并提供其它程序的运行环境。打开计算机后,第一个运行的就是操作系统。

    操作系统最基本功能有处理机管理,内存管理,设备管理,文件管理。这些功能都是操作系统的内核。

    • 存储器

    有了操作系统,执行任务的程序外。这些程序的存储就是个问题。最开始使用打孔纸卡,打孔纸带存储。后来有磁芯存储器,磁带。

    再到熟悉的硬盘,软盘,U盘,移动硬盘等。这些存储设备内部都是使用集成电路。

    集成电路的制作过程。使用一个硅盘面。上面加氧化层,再加光刻胶,再加光掩膜。光照之下,没被光掩膜遮住的光刻胶会融化,露出氧化层。再使用一种化学物质洗掉光刻胶。

    再使用另一种化学物质洗掉漏出的氧化层,到达硅表面。为了改变硅的导电性,一种掺杂的技术,填充被洗掉的氧化层。

    使用几轮光刻,制作晶体管。多个晶体管组合构成逻辑门。组成集成电路。

    • 文件,压缩

    有了上述的存储器后,就能够存储很大的数据。这些数据高达万亿位。就是操作系统也能够当做文件存储在存储器上。

    文件系统抽象了文件在磁盘的存储情况。也是操作系统的一个具体功能。

    压缩就是减少文件的存储空间,达到相同空间存储更多文件的目的。常见的压缩方法有哈夫曼压缩。

    采用哈夫曼树,到树根的距离代表了使用的频率。如果一个项目使用频繁,就靠近树根,这样二进制代码就相对短。反之,就相对比较长。

    • 输入,输出

    早期电传打印机,按下键盘后,信号通过电报线传到另一台打印机上,并在打印机的纸上输出。

    阴极射线管,把电子发射到有磷光体的屏幕上。电子是带点粒子,路径由磁场控制。两种显示方式,用很多小线段绘制图形,甚至文字。

    矢量扫描,电子只发光一会,重复的足够快,可以显示出图形。

    光栅扫描,按固定路径,一行一行来,只在特定的点打开电子束,以此绘制图形。

    像素,屏幕上显示清晰的点。使用字符生成器(第一代显卡),从内存读出每个字符的二进制代码,显示在屏幕。

    显示任意的形状,使用CRT“矢量模式”,使用矢量指令显示各种形状。矢量指令和字符集一样都存储在内存中,所以程序可以改变。

    sketchpad第一个图形程序,有线连着电脑的触控笔,笔尖用光线传感器,检测显示器的刷新,判断刷新时间,电脑判断笔的位置。有了光笔和按钮电脑就可以做出各种图形。

    内存“帧缓冲区”的各种像素数据可以显示图形。

    3D图形显示。扫描线填充,抗锯齿,光照,纹理化这些技术渲染图形。

    • 计算机网络,网络安全,密码学

    网络安全三个特性。保密性,有权限的用户使用数据。完整性,有权限的用户修改数据。可用性,有权限的用户随时访问数据。

    使用身份验证,访问控制。确定你是谁?你能访问什么?

    身份验证包括,你知道什么?你有什么?你是谁?这三种验证。

    身份验证之后,需要确定用户能访问什么数据。使用三种访问控制方式,绝密,机密,公开。只能向下读,向上写。

    凯撒加密,英格玛,AES都是对称加密。RSA是非对称加密。

    访问一个服务器,验证服务器的密钥,建立临时密钥,使用对称加密保证通信。

    • 机器学习,人工智能,计算机视觉,自然语言处理,计算机未来

    机器学习算法,决策树,支持向量机都源于统计学。

    人工神经网络不来自于统计学,加权,求和,偏置,激活函数是每个神经元的基本过程,有许多隐藏层,每一层的神经元都要执行上述过程,这就成为深度学习。

    把核应用于像素块,这种操作就是“卷积”。两个边缘增强的核叫“prewitt算子”。

    给每个神经元二维数组当做权重来计算,第一层得出是图形的某个特征,层层递进,最后识别出一个完整的图形。这种算法叫做卷积神经网络。

    计算机能听懂人类语言,就是自然语言处理过程。使用短语结构规则,来分析人类语言。深度神经网络处理自然语言。

    VR,AR,无人驾驶,无人机,可穿戴设备,服务型机器人,新服务连接人们,新硬件神经网络,3D图形,无处不在的虚拟助手。

    加密货币,无线通讯,3D打印,生物信息学,量子计算。

  • 相关阅读:
    【css3】使用filter属性实现改变svg图标颜色
    Live CD
    Linux定时任务 crontab(-l -e)、at、batch
    linux图形界面 KDE、GNOME
    shell脚本3——调试
    shell脚本2——控制语句
    bash:双引号和单引号
    shell脚本1——变量 $、read、``
    SSH
    Linux关机、重启、退出
  • 原文地址:https://www.cnblogs.com/feng1014/p/12751260.html
Copyright © 2011-2022 走看看