• 计算机组成原理


    计算机分为五大组成部分,分别为:控制器、运算器、存储器、输入设备和输出设备。其中控制器+运算器是计算机的中央处理器(CPU),相当于人类的大脑。

    一、控制器(一)

    计算机的指挥系统。大脑指挥全身的器官运作,但是大脑不会随意的指挥身体行动,大脑只有在接受指令后才会控制身体行动(如果你患有急性注意缺陷多动障碍(多动症),你可以找Doctor Wei)。

    undefined

    二、运算器(二)

    运算器是计算机的运算系统。大脑除了指挥,无时无刻还在运算。即实现算术运算和逻辑运算。

    算术运算:1+1=2
    逻辑运算:碰到疯狗,表白?

    undefined

    三、控制器+运算器(计算机的中央处理器CPU)

    吃饭流程示例。

    当你吃饭的时候,大脑会接受吃饭的指令,之后把指令翻译成你身体需要进行的动作(控制器)
    如果吃的是西餐,则使用勺子;如果吃的是中餐,则使用筷子(运算器)。

    undefined

    四、存储器(三)

    计算机的存储系统。需要注意的是:无论是内存还是外存,计算机存储的数据格式都是01,01的形式,0和1由电压的电频控制(了解知识点)。计算机的存储的一个二进制单位称为1bit,8bit=1Bytes称为一个字节,1024Bytes=1KB,1024KB=1MB,1024MB=1GB,1024GB=1TB,1024TB=1PB。

    undefined

    下图展示了目前市面上常用的存储器,从图中可以看出存储器的速度、容量和价格是相互矛盾的。

    undefined

    4.1 内存(主存)

    内存是计算机内临时存储数据的硬件设备。由于内存读取数据速度较快内存,CPU下达的指令会直接传输给内存,即CPU会与内存直接交互。常见的内存有内存条。

    • 优点(较于外存):
    • 存取速度快。
    • 缺点(较于外存):
    • 容量小。
    • 由于内存基于电存储数据,因此断电数据马上会消失。

    4.2 外存

    外存是计算机内永久存储数据的硬件设备,由于外存容量大,所以外存主要用于存储软件等占用量大的数据。当需要使用外存上的某个软件时,CPU下达的指令需要传输给内存后,内存再从外存中读取软件信息,即CPU不与外存直接交互。常见的外存有磁带、磁盘和u盘等。

    • 优点(较于内存):
    • 容量大
    • 可以永久存储数据。
    • 缺点(较于内存):
    • 存取速度慢。

    五、CPU+内存+外存(计算机的三大核心组件)

    电脑打开QQ流程示例。

    • 双击QQ图标,CPU先向内存发出取指的命令(CPU+内存)
    • 内存从硬盘中取出 运行QQ 的指令(硬盘)
    • 控制器分析 运行QQ 的指令并告知运算器工作(控制器)
    • 运算器进行一系列的算术运算和逻辑运算打开QQ,并从硬盘从读取QQ的代码至内存(运算器+内存+硬盘)
    • 计算机在内存中运行QQ的代码(内存)
    • 如果此时从QQ好友接受一个文件并下载,该文件将会永久保存在硬盘中(硬盘)
    • 关闭QQ时CPU向内存发出关闭QQ的指令,内存关闭QQ并清理内存中QQ的代码(内存)

    六、输入设备(四)

    计算机输入信息(程序、数据、声音、文字、图形、图像等)的设备。
    常见的输入设备有:键盘、鼠标、图形扫描仪、触摸屏、条形码输入器、光笔等。外存储器(U盘等)也是一种输入设备。

    七、输出设备(五)

    计算机输出信息的设备。
    常见的输出设备有:显示器、打印机和绘图仪等。外存储器也是一种输出设备。
    注意:由于外存储器即是一种输入设备,也是一种输出设备,因此外存储器也被称为IO设备,其中I为Input(输入);O为Output(输出)。

    undefined

    八、计算机五大组成部分补充

    补充部分作为选看部分,主要是为了介绍计算机的启动流程。

    8.1 CPU相关

    多核CPU:多个CPU,电脑可以同时干多件事,如4核CPU的电脑可以同时干四件事。
    X86-64位:X86是CPU的一种型号,64表示CPU每次能取64位二进制数。X86-32表示CPU每次取32位二进制数。CPU具有向下兼容性,即64位电脑能下载32位的软件,而32位的软件下载64位的软件会丢失数据。

    8.2 存储器相关(了解)

    ROM存储器:ROM只读存储器(不可写)在工厂中就被编程完毕,然后再也不能修改。它一般存放BIOS(Basic input output system)程序,该程序一般用于启动计算机,或用于处理底层设备的控制。
    CMOS存储器:CMOS存储器由一块电脑内置的电池驱动供电,它一般用来保持当前时间和日期的更新,也就是说,即使计算机没有充电,时间也会持续更新;同时它也可以存储启动磁盘的路径。(装机的时候一般会告诉计算机操作系统在计算机中的位置,如C:/)

    8.3 总线

    总线相当于人类的神经、血管,连接计算机的所有硬件设备。

    undefined

    8.4 启动计算机的流程(了解)

    • 计算机加电。
    • BIOS开始运行,检测硬件:CPU、内存、硬盘灯。
    • BIOS读取CMOS存储器中的参数,选择启动设备等。
    • 从启动设备上读取第一个扇区的内容。
    • 根据分区信息读入bootloader启动装载模块,启动操作系统。
    • 操作系统询问BIOS,获得配置信息。对于每种设备,系统会检查其设备驱动是否存在,如果没有,系统则会要求用户按照设备驱动程序,一旦有了全部的设备驱动程序,操作系统则会将它们调入内核,然后初始有关的表格(如进程表)。

    8.5 硬盘工作原理

    如今市场上的硬盘分为机械硬盘和固态硬盘两大类,我们将从这两大类出发和同学们介绍硬盘的工作原理

    8.6 机械硬盘

    机械硬盘主要由机械手臂、磁道和扇区组成,接下来我们将从这三个方面展开介绍机械硬盘的工作原理。

    undefined

    • 机械手臂:机械硬盘通过机械手臂读取数据,机械手臂的末端是磁头。
    • 磁道:磁道是机械硬盘的磁面中的一个一个圈,磁道用于存储数据。
    • 扇区:扇区的最小单位通常为512KB(由于磁盘大小不断增大,也有部分厂商设定每个扇区的大小是4096字节)。为了减小IO操作,机械硬盘也会将多个相邻的扇区组合在一起,形成一个块,这个块便就是我们在Windows系统中看到的C、D分区。
    • 平均寻道时间:由于数据存放在磁道上,因此机械手臂需要读取数据首先要找到磁道。受限于工业水平的限制,目前机械手臂找到磁道的时间为5ms,这个时间被称为平均寻道时间。
    • 平均延迟时间:机械手臂寻道之后,需要寻找数据。由于数据的位置是不确定的,而目前的机械硬盘寻找数据会从硬盘的头部扫描到尾部。以7200r/min的硬盘为例,如果碰巧在硬盘头部找到数据,时间约为0ms;如果在硬盘尾部找到数据,时间约为8.3ms,因此我们采用一个平均时间4.15ms作为机械手臂在磁道找到数据的时间,这个时间被称为平均延迟时间。
    平均延迟时间:
    		7200/60=120(r/s)
    		1/120=0.0083(s/r)=8.3(ms/r)
    		8.3/2=4.15(ms/r)
    

    从上述描述可以得出:

    寻找数据的时间=平均寻道时间+平均延迟时间

    8.7 固态硬盘

    随着人们对数据需求增多,存储系统的瓶颈越来越明显。而在嵌入式领域移动设备和工业自动化控制等恶劣环境下,传统硬盘机械结构已经无法满足要求,而所有这一切随着固态存储(SSD)的到来而发生了改变。

    undefined

    传统的机械硬盘(HDD)运行主要是靠机械驱动头,包括马达、盘片、磁头摇臂等必需的机械部件,它必须在快速旋转的磁盘上移动至访问位置,至少95%的时间都消耗在机械部件的动作上。SSD却不同机械构造,无需移动的部件,主要由主控与闪存芯片组成的SSD可以以更快速度和准确性访问驱动器到任何位置。传统机械硬盘必须得依靠主轴主机、磁头和磁头臂来找到位置,而SSD用集成的电路代替了物理旋转磁盘,访问数据的时间及延迟远远超过了机械硬盘。SSD有如此的“神速”,完全得益于内部的组成部件:主控--闪存--固件算法。SSD通过这套组成部件,让数据以电荷的方式存储在每个NAND存储单元内。

    上面讲了这么多,牢记一点:固态硬盘是基于固态电子(SSD,断电数据也会保留)和算法实现数据存储的。

  • 相关阅读:
    Code Forces 650 C Table Compression(并查集)
    Code Forces 645B Mischievous Mess Makers
    POJ 3735 Training little cats(矩阵快速幂)
    POJ 3233 Matrix Power Series(矩阵快速幂)
    PAT 1026 Table Tennis (30)
    ZOJ 3609 Modular Inverse
    Java实现 LeetCode 746 使用最小花费爬楼梯(递推)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
  • 原文地址:https://www.cnblogs.com/Dr-wei/p/11844573.html
Copyright © 2020-2023  润新知