进入20世纪第二个十年,计算机已经成为生活中一个必不可小的工具了,但我们真的了解计算机吗?计算机有哪些部分构成?不同的计算机又可以做什么样的事情呢?我们的PC和用来做加减乘除的计算器都属于计算机范畴吗?下面我们就来来接认识一下【注:本人从事Java开发小白一枚,有志于增强自身功力,所以自20171130开始从事菜鸟崛起笔记总结和记录,所录材料来自于网络和书籍,会有备注,如果有所忽视,尚请见谅,另小白写日记繁琐,片面,欢迎各位指正和提问,成长需要挫折和责难!】

1.1 计算机:大脑风暴

  计算机其实是:接收用户输入指令与数据,经过中央处理器的数据与逻辑单元处理后,以产生或存储成有用的信息。因此,只要有输入设备(不管是键盘还是触摸式屏幕)及输出设备(屏幕或者直接打印出来),让你可以输入数据使该机器产生信息,那就是一台计算机了,如下图1-1-1所示:

  根据这个定义我们可以分辨出来什么是计算机了,简而言之计算机=输入设备+数据处理+输出设备。了解了计算机的概念,我们会不会产生这样一个疑问,那就是计算机是由什么构成的呢?除了输入输出设备和处理数据的设备,还有那些部分呢?下面我们就来对计算机的组成进行一下认识,并在后面具体分析一下,通过本章学习,我们能够明白为什么会有32bit和64bit,平台又是怎么回事,为什么要有OS等等;

1.1.1  计算机硬件的五大单元

  我们通过易拆解的台式计算机开始,来认识一下计算机的构成。通过外观来看,计算机分为三部分:

  • 输入单元:包括键盘、鼠标、卡片阅读机、扫描仪、手写板、触摸屏幕等;
  • 中央处理器(CPU):含有算数逻辑、控制、记忆等单元。
  • 输出单元:例如屏幕、硬盘、打印机等。

  我们主要通过输入设备来将一些数据输入到主机里面,然后由主机的功能处理成为图表或文章等信息后,将结果信息传回输出设备。这是计算机的一个工作流程,这里重点在于主机,主机是一个整体吗?拆开计算机发现主机里边是由一块主板、电源以及其它的一些芯片等构成的,这里边我们最应该注意的就是CPU和内存条了。

  CPU(Central Processing Unit 中央处理器)是整台计算机的核心,CPU是一个具有特定功能的芯片,芯片里边有编写好的微指令集,我们在主机上的所有操作,如输入输出,阅读,视频,上网等这些都要参考CPU是否内置有相关微指令集才行。如果没有那么CPU无法处理这些操作。这里我们可以提前认识两个概念微指令、微操作,这里我们就不多介绍了,放在后面的1.2.1 CPU中一块认识。

  由于CPU的工作主要在于管理和运算,因此在CPU中又可分为两个主要的单元,分别是算术逻辑单元和控制单元。其中算术逻辑单元主要负责程序运算与逻辑判断,控制单元则主要协调各组件和各单元的工作。

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

  综合上面所说的,我们会知道其实计算机是由:输入单元、输出单元、CPU(控制单元、算术逻辑单元)与主存储器五大单元构成的。也可以说CPU+输入输出+主存储器构成了电子计算机的三大核心组件,相关性如下图:

  上图中的系统单元其实指的就是计算机主机内的主要组件,重点在于CPU与内存,特别要关注的是CPU所发布的控制命令!而CPU实际要处理的数据则完全来自于主存储器!这个流程很重要。

  通过上面我们知道计算机主要功能是处理输入设备输入的数据,这些数据会进入到内存中,所有的数据都是交由CPU的控制单元来负责协调的,由逻辑单元来处理的,处理后的数据仍然返回到内存中然后才会输出或者是存储,所以CPU才是计算机系统中最重要的部分!那么目前世界上的主流CPU由那些呢?我们笔记本上贴的Intel、AMD是怎么回事呢?下面我们来认识一下;

1.1.2  CPU的种类

  前面我们已经知道CPU内部是含有微指令集的,我们所使用的的软件都要经过CPU内部的微指令集来完成才行。这些指令集的设计主要又被分为两种设计理念,这就是目前世界上常见到的两种主要的CPU种类:分别是精简指令集(RISC)与复杂指令集(CISC)系统。下面我们就来谈谈这两种不同CPU种类的差异!

1.1.2.1  精简指令集

  精简指令集(Reduced Instruction Set Computing,RISC):这种CPU的设计中,微指令集较为精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳;但是若要做复杂的事情,就要由多个指令来完成。常见的RISC指令集CPU主要例如Sun公司的SPARC系列、IBM公司的Power Architecture(包括PowerPC)系列、与ARM系列等。【注:Sun已经被Oracle收购;】

  • SPARC架构的计算机常用于学术领域的大型工作站中,包括银行金融体系的主服务器也都有这类的计算机架构;
  • PowerPC架构的应用,如Sony出产的Play Station 3(PS3)使用的就是该架构的Cell处理器。
  • ARM是世界上使用范围最广的CPU了,常用的各厂商的手机、PDA、导航系统、网络设备等,几乎都用该架构的CPU。

1.1.2.2  复杂指令集

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

  由于AMD、Intel、VIA所开发出来的x86架构CPU被大量使用于个人计算机(Personal Computer)上面,因此,个人计算机常被称为x86架构的计算机!举个例子,我们在MySQL官网下载MySQL时名字为:

  我们发现名字中有x86,这其实就是告诉我们该软件应用于x86结构的计算机。那么为何称为x86架构呢?这是因为最早的那颗Intel发展出来的CPU代号称为8086,后来依此架构又开发出80285、80386....,因此这种架构的CPU就被称为x86架构了。

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

  不同的x86架构的CPU的差别在哪呢?除了CPU的整体结构(如第二层缓存、每次运作可执行的指令数等)之外,主要是在于微指令集的不同。新的x86的CPU大多含有很先进的微指令集,这些微指令集可以加速多媒体程序的运作,也能够加强虚拟化的效能,而且某些微指令集更能够增加能源效率,让CPU耗电量降低,这对于高电费是个不错的消息。 试想一下,如果CPU的指令集都相同,那么OS是不是就不用分32bit和64bit了,各种程序的跨平台是不是就更简单了呢。

1.1.2.3  CPU历史

  计算机的发展主要表现在其核心部件——微处理器【微处理器由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片组成微型计算机。】的发展上,每当一款新型的微处理器出现时,就会带动计算机系统的其他部件的相应发展,如计算机体系结构的进一步优化,存储器存取容量的不断增大、存取速度的不断提高,外围设备的不断改进以及新设备的不断出现等。根据微处理器的字长和功能,可将其发展划分为以下几个阶段。

  • 第1阶段(1971——1973年)是4位和8位低档微处理器时代,通常称为第1代。
  • 第2阶段(1974——1977年)是8位中高档微处理器时代,通常称为第2代。
  • 第3阶段(1978——1984年)是16位微处理器时代,通常称为第3代。
  • 第4阶段(1985——1992年)是32位微处理器时代,又称为第4代。
  • 第5阶段(1993-2005年)是奔腾(pentium)系列微处理器时代,通常称为第5代。
  • 第6阶段(2005年至今)是酷睿(core)系列微处理器时代,通常称为第6代。“酷睿”是一款领先节能的新型微架构,设计的出发点是提供卓然出众的性能和能效,提高每瓦特性能,也就是所谓的能效比。

若想具体了解CPU历史参见链接:

https://baike.baidu.com/item/%E4%B8%AD%E5%A4%AE%E5%A4%84%E7%90%86%E5%99%A8/284033?fr=aladdin&fromid=368184&fromtitle=%EF%BC%A3%EF%BC%B0%EF%BC%B5#10

  总结:CPU按照指令集可以分为精简指令集CPU和复杂指令集CPU两种,区别在于前者的指令集精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳;但是若要做复杂的事情,就要由多个指令来完成。后者的指令集每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。

  根据位数又可分为32bit和64bit,这个具体后面了解。

1.1.3  接口设备

  单有CPU也无法运作计算机的,所以计算机还需要其他的接口设备才能够实际运作。除了前面稍微提到的输入输出设备,以及CPU与主存储器外,还有什么接口设备呢?其实最重要的接口设备是主板!因为主板负责将所有的设备通通连接在一起,让所有的设备能够进行协调与沟通。而主板上面最重要的组件就是主板芯片组!这个芯片组可以将所有的设备汇集在一起!

其他重要的设备还有:

  • 储存设备:包括硬盘、软盘、光盘、磁带等;
  • 显示设备:显示适配器对于3D游戏来说是非常重要的一环,他与显示的精致度、色彩与分辨率都有关系;
  • 网络装置:网络成为生活不可分割的一部分,所以网卡对于计算机也是相当重要的!没有网络的计算机就好像没有眼睛一样,缺少了看世界的机会。

  了解了计算机的各种接口,我们下面了解一下各组件的相关关系,也就是计算机是如何运作的。

1.1.4  运作流程

  我们思考一个问题假设计算机是一个人,那么它的每个组件对应人类的什么部位呢?如下图:

  • CPU:人的大脑,每个人会做的事情都不一样(微指令集的不同),但人所有的活动却都是通过大脑来判断和控制身体各部分完成的。
  • 内存==脑袋中的记录区块:在实际活动中,我们的大脑能够将外界的活动暂时记录起来,提供CPU来进行判断。
  • 硬盘==大脑中的记忆区块:将重要的数据存储起来,以便将来再次调用。对比上面我们发现记录和记忆,在这里我们要区别来,记录我们可以看做是缓存等待大脑处理,记忆可以看做是对以前的现在的数据的记录。
  • 主板==神经系统:像人类的神经中枢一样,将所有重要的组将都连接起来,包括手脚的活动都是大脑发布命令后,通过神经(主板)传输给手脚来进行活动。
  • 各项接口设备==人体与外界通信的手、脚、皮肤、眼睛等;就好像手脚一般,是人体与外界互动的关键部位。
  • 显卡==脑袋中的影像:将来自眼睛的刺激装换成影像在脑袋中显现,所以显卡显示的数据也是CPU控制的。文件==》内存---》CPU---》内存----》显卡------》输出
  • 电源(Power)==心脏:所有的组件要能运作,得要有足够的电力供给才行。这就好像心脏一样,如果心脏不跳动了,人就嗝屁了,电脑也是如果没有电源,那也就是一堆垃圾,什么作用都没有。

  从上面的关系图中,我们知道整个活动中最重要的就是脑袋,而脑袋中与当前正在进行的工作有关的就是CPU与内存了。任何外界活动都必须由脑袋中的内存记录起来,然后交给脑袋中的CPU依据这些数据进行判断后,再发布命令给各个接口设备。如果需要过去的经验,那么就到过去的经验区块(硬盘)中读取。用计算机来说,对数据进行处理就一定会将数据先加载到内存,然后CPU处理,处理结果返回内存,然后才会交给其它接口进行处理。

1.1.5  计算机分类

  上面我们了解了CPU的分类,下面我们来了解一下计算机的分类。我们总会在新闻中看到超算的排名,今年中国的神威·太湖之光”和“天河二号”第三次携手夺得前两名。那么什么是超算呢?和我们的PC是一样的吗?这其实就牵涉到了计算机的分类。以计算机的复杂度和运算能力进行分类的话,主要可以分为一下几类。

  • 超级计算机(Supercomputer):是运算速度最快的计算机,但是相对的维护和操作费用也最高。主要用于需要有高速计算的计划中。例如:国防军事、气象预测、天空科技,用于模拟的领域较多。
  • 大型计算机(Mainframe Computer):MaC通常也具有数个高速的CPU,功能上虽不及SC,但也可用来处理大量资料与复杂的运算。例如大型企业的主机、全国性的证券交易所等每天需要处理数百万笔数据的企业机构,或者是大型企业的数据库服务器等等。
  • 迷你计算机(Minicomputer):MiC仍保有大型计算机同时支持多用户的特性,但是主机可以放在一般作业场所,不必像前两个大型计算机需要特殊的空调场所。通常用来作为科学研究、工程分析与工厂的流程管理等。
  • 工作站(Workstation):Ws的价格又比迷你计算机便宜许多,是针对特殊用途而设计的计算机。在个人计算机的效能还没提升到目前的状况之前,工作站计算机的性能/价格比是所有计算机当中较佳的,因此在学术研究与工程分析方面相当常见。
  • 微电脑(Microcomputer):又可以成为个人电脑,也是这里我们主要探讨的目标,体积最小,价格最低,单功能还是五脏俱全的。大致又可分为台式机和笔记本等。

  若光以效能来说,目前的个人计算机效能已经够快了,甚至已经比工作站等级以上的计算机指令周期还要快。但是工作站计算机强调的是稳定不当机,并且运算过程要完全正确,因此工作站以上等级的计算机在设计时的考虑与个人计算机并不相同。这也是为啥工作站等级以上的个人计算机售价较高的原因了。

1.1.6  计算机上常用的计算单位

  实现核心部件全部国产的中国超算“神威·太湖之光”,一年前以每秒9.3亿亿次的浮点运算速度首次夺冠。通过这句话我们知道计算机的运算能力是由速度来决定的,而储存在计算机的储存设备中的数据容量也是有单位的。

1.1.6.1  大小单位

  计算机依据有没有通电来记录信息,所以理论上它只认识0与1而已。0/1的单位我们称之为位(bit)。但bit实在太小,只能存储一个0或1,并且在存储数据时每份简单的数据都会使用用到8个bits的大小来记录,因此定义出byte(字节)这个单位,[ 1 Byte = 8 bit ],但是Byte还是太小了,在较大容量的情况下,使用byte相当不容易判断数据的大小,例如一部电影2G,那么2147483648bytes这样的显示方法你能看出来是多大吗?所以我们后来有了一些简化单位表示法,下面就列出了常见的单位与进位制对应:

  一般来说,文件大小使用的是二进制的方式,所以1GBytes实际就是1024*1024*1024Bytes这么多,速度单位则常用十进制,例如1GBytes实际就是1000*1000*1000Hz的意思。

1.1.6.2  速度单位

  CPU的指令周期(运算速度)常使用MHz或者GHz之类的单位,这个Hz其实就是秒分之一。而在网络传输方面,由于网络使用的是bit为单位,因此网络常使用的单位为Mbps是Mbits per second,亦既是每秒多少Mbit。举例说,我们常说的8M/1M ADSL传输速度,如果转成文件容量的byte时,其实理论最大传输值为:每秒1Mbyte/每秒125kbytes的上传/下载容量。

1.1.6.3  日常中见到的容量及速率转换

  我们在日常中经常看到一些容量和速率的计算和我们所认知的有异议,这多会令我们困扰,这里挑两个来介绍一下;

1.1.6.3.1  网速的计算

  • 传输速率:在数据传输中,两个设备之间数据流动的物理速度成为传输速率,单位为bps。比特是数据量最小单位,秒是时间的最小单位, 所以速率单位为bps。类似的,有kb/s,Mb/s(M=10^6),Gb/s(G=10^9),Tb/s(t=10^12),1Byte=8bit, 所以1Bps=8bps我们平常说的速率是额定速率KBs,而供应商的速率则是kbs,这中间差别很大一个是KBytes,一个是Kbits,这中间有一个8的倍数差距.
  • 带宽:计算机网络中的主机在数字信道上,单位时间内从一段传送到另一端的最大数据量,即最大速率。类比:一个供水管,假设管子中有流动的水,这里的水为数据。单位时间内,从管子的某个横截面就是速率,即单位时间内传送的数据量。当管子充满水的时候,管子的某个横截面就是最大速率,即带宽,单位同速率一样,为bps
  • 吞吐量:主机之间实际的传输速率,被称为吞吐量,不仅仅衡量带宽,还衡量CPU的处理能力,网络拥堵程度及报文中数据字段的占有份额。说的通俗一点,就是单位时间内某个(信道。端口)实际的数据量,可以理解为实际的贷款。

  好奇宝宝们在看到家里的上网速度时一定会好奇,为什么我们一般看到的下载速度为125KB/S等,但是ISP声称的都是1M宽带,10M宽带等,难道是ISP欺骗了我们?NONONO,ISP说我们真冤枉。其实是软件中显示的数据单位,一般用字节来衡量。但是其实我们听到运营商ISP给我们的衡量数据的单位是bit。所以拿1M宽带举个例子:

  1Mb/s=1000Kb/s=1000/8KB/S=125KB/S
  所以通常我们看到的ISP声称2M宽带的,实际上理论能达到250KB/S的下载速率,但是因为受到计算机性能,网络设备质量,资源使用情况,网站能力,信号衰减等影响,那么实际的传输速率为80-20KB/S,4M的理论下载速度为500KB/S,实际速率只能达到200-440KB/S。

1.1.6.3.2  硬盘容量的计算

  我们买笔记本总会看到说的是500G的硬盘,但是格式化后发现硬盘容量只要400多G,难道是厂商欺骗了我们,其实不是的是因为我们的计算方式和厂商的计算方式不同。厂商在计算硬盘容量时是以十进制进行计算的500G=500*1000*1000*1000Bytes,而我们对硬盘的计算却是以二进制(1024为底)来计算的,那么500G按照我们的计算就是500*1000*1000*10000/1024/1024/1024,结果就是不到466G了。

  硬盘厂商是不是在欺骗我们呢,其实并非如此,只是因为硬盘的最小物理量为512Bytes,最小的组成单位是扇区(sector),通常硬盘容量的计算采用【多少个sector】,所以才会使用十进制来处理的,关于硬盘我们在后面的个人计算机架构与接口设备中再详细介绍。

  了解了计算机的基本构成,我们是不是更有兴趣对这些构成进入深入探讨呢?下面我们就来深入认识一下这些构造与接口,认识一些我们没有见识过的东西。

1.2 个人计算机架构与接口设备

我们现在常见的计算机通常就是x86架构的个人计算机架构,因此我们有必要来了解一下这个架构的各个组件。

因为两大主流的x86开发商(Intel,AMD)的CPU架构并不兼容,而且设计理念也有所差异,所以两大主流CPU所需要的主板芯片组设计也就不太相同。下面我们以《鸟哥的Linux私房菜基础篇所载来认识一下个人计算机架构与接口设备》,该书所载主板或许已经不主流甚至停产,但我们仍然可以借助研究一下架构和接口设备各自担负的功能。

上图是09年主流的主板架构,前面讲过整个主板上面最重要的就是芯片组了!而芯片组通常又分为两个网桥来控制各组件的沟通,分别是:北桥【负责链接速度较快的CPU、主存储器与显示适配器等组件】,南桥【负责连接速度较慢的周边接口,包括硬盘、USB、网卡等】。至于AMD的芯片组架构如下图所示:

与Intel不同的地方在于主存储器是直接与CPU沟通而不透过北桥。从前面的说明我们可以知道CPU的数据主要来自于主存储器提供,因此AMD为了加速这两者的沟通,所以将内存控制组件整合到CPU当中,理论上这样可以加速CPU与主存储器的传输速度。这是两种CPU在架构上面主要的差异点。

毕竟目前世界上x86的CPU主要的供货商为Intel,所以下面我们将以Intel的主板架构来介绍各组件,我们以技嘉公司出的主板,型号:Gigabyte GA-X48-DQ6作为一个说明的范例,主板各组件如下所示:

主要组件为:CPU、主存储器、磁盘装置(IDE/SATA)、总线芯片组(南桥/北桥)、显示适配器接口(PCI-Express)与其他适配卡(PCI)。下面我们以上图的主板各组件来讲解计算机的架构与接口设备。

1.2.1  CPU

在技嘉主板上最上方的中央部分,那就是CPU插槽。由于CPU负责大量运算,因此CPU通常是具有相当高发热量的组件。所以如果你曾经拆开过主板,应该就会看到CPU上头通常会安插一颗风扇来主动散热。

X86个人计算机的CPU主要供货商为Intel与AMD,目前主流的CPU都是四核及四核以上的架构了。原本的单核的CPU仅有一个运算单元,所谓的多核原则是在一颗CPU封装当中嵌入了两个以上的运算核心,简单的说,就是一个实体的CPU外壳中,含有两个以上的CPU单元就是了。

不同的CPU型号大多具有不同的脚位(如同积木一样,计算机的组件在主板上的安装大多是插针和插槽),不同的脚位造成主板自然会有些许的不一样了,能够搭配的主板芯片组也不同,所以将你的主机升级时,不能只考虑CPU,你还得要留意你的主板上面所支援的CPU型号。不然买了最新的CPU也不能够安插在你的旧主板上头的。目前主流的CPU由Intel的Core i5、i7与AMD的龙系列等。

1.2.1.1  CPU的频率

我们前面说过CPU内部含有微指令集,不同的微指令集会导致CPU工作效率的优劣。除了这点之外,还有哪些参数可以用来比较CPU的效能呢?那就是CPU的频率了。什么是频率呢?简单来说,频率就是CPU每秒中可以进行的工作次数。所以频率越高表示这颗CPU单位时间内可以做更多的事情。举例来说,Intel的Core 2 Duo型号E8400的CPU频率为3.0GHz,表示这颗CPU在一秒内可以进行3.0x10^9次工作,每次工作都可以进行少数的指令运作之意。但是难道所有的CPU都可以以此来判断运行效能吗?这是不可以的,因为每颗CPU的微指令集不相同,架构也不见得一样,每次频率能够进行的工作指令数也不同之处。所以,频率目前仅能用来比较同款CPU的速度。

1.2.1.2  CPU的外频与倍频

我们在图2.1.1的芯片架构图中看到各种组件都是透过北桥与南桥所连接在一起。但就像一群人共同在处理一个连续作业一般,如果这一群人里面有个人的动作特别快或特别慢,将导致前面或者是后面的人事情一堆处理不完。这也比较符合木桶效应,也就是说,这一群人最好能够速度一致较佳。所以,CPU与外部各组件的速度理论上应该要一致才好。但是因为CPU需要较强大的运算能力,因为很多判断与数学都是在CPU内处理的,因此CPU开发商就在CPU内再加上一个加速功能,所以CPU有所谓的外频与倍频。

所谓的外频指的是CPU与外部组件进行数据交换的速度倍频则是CPU内部用来加速工作效能的一个倍数两者相乘才是CPU的频率速度。我们以刚刚Intel Core 2 Duo E8400 CPU来说,他的频率是3.0GHz,而外频是333MHz,因此倍频就是9倍了(3.0G=333M*9,其中1G=1000M)。现在除了外频与倍频外,还有一个超频,所谓的超频指的是:将CPU的倍频或者是外频透过主板的设定功能更改成较高频率的一种方式。但因为CPU的倍频通常在出厂时已经被锁定而无法更改,因此较常被超频的为外频。举例来说,像上述3.0GHz的CPU如果想要超频,可以将它的外频333MHz调整为400MHz。但如此一来整个主板的各个组件的运作频率可能都会被增加成原本的1.333倍(4/3),虽然CPU可能可以达到3.6GHz,但因为频率并非正常速度,故可能造成当机。

1.2.1.3  32bit与64bit

我们知道OS有32bit和64bit之分,那么这是为什么呢?下面我们来看看。

我们前面说到CPU运算的数据都是由主存储器提供的,主存储器与CPU的沟通速度靠的是外部频率,那么每次工作可以传送的数据量有多大呢?那就是总线的功能了。一般主板芯片有南北桥之分,北桥的总线称为系统总线,因为是内存传输的主要信道,所以速度较快。南桥就是所谓的I/O总线,主要在于联系硬盘、USB、网络卡等接口设备。

目前北桥所支持的频率可高达333/400/533/800/1066/1333/1600MHz等不同频率,支持情况依芯片组功能而有不同。北桥所支持的频率我们称之为前端总线速度(Front Side Bus,FSB),而每次传送的位数则是总线宽度。那所谓的总线带宽则是:【FSB*总线宽度】亦既每秒可传送的最大数据量。目前最常见的总线宽度有32/64位(bits)。如图2.1.1中,在该架构中FSB最高可达1600MHz。我们看到内存与北桥的带宽为12.8Gbytes/s,亦既是1600MHz*64bits = 1600MHz*8Bytes = 12800MBytes/s = 12.8GBytes/s。

与总线宽度相似的,CPU每次能够处理的数据量称为字组大小(word size字组大小依据CPU的设计而有32bit64bit我们现在所称的计算机是32位的还是64位的主要就是依据这个CPU解析的字组大小而来的。早期的32位CPU中,因为CPU每次能够解析的数据量有限,因此由主存储器传来的数据量就有所限制了。这也导致32位的CPU最多只能支持最大到4GBytes的内存(意思是CPU只能处理内存传过来4G的数据,再多CPU处理不了),所以即使你装了8G的内存,CPU还是只会使用4G的(实际上不到4G)。

字组大小与总线宽度是可以不同的。举例来说,在Pentium Pro时代,该CPU是32位的处理器,但当时的芯片组可以设计出64位的总线宽度。在这样的架构下我们通常还是以CPU的字组大小来称呼该架构,个人计算机的64位CPU是到2003年由AMD Athlon64后才出现的。

Question20171231  聊聊为什么32bit只能支持4GB内存

为什么32bit的只能支持4GB内存,为什么我们4GB的内存条查看的时候发现只有3G多呢?http://www.cnblogs.com/lin-jing/p/8164429.html

1.2.1.4  CPU等级

由于x86架构的CPU在Intel的Pentium系列(1993年)后就有不统一的脚位与设计,为了将不同种类的CPU规范等级,所以就有i386、i586、i686等名词出现了。基本上,在Intel Pentium MMX与AMD K6年代的CPU称为i586等级,而Intel Celeron与AMD Athlon(K7)年代之后的32位CPU就称为i686等级。至于目前的64位CPU则统称为x86_64等级。

目前很多的程序都对CPU做优化的设计,万一哪天你发现一些程序是注明给686的CPU使用时,就不要将其安装在586以下等级的计算机中,否则可能是无法执行该软件的。不过,在686倒是可以安装386的软件。也就是说,这些东西具有向下兼容的能力。

1.2.2  内存

如图2.1.3、技嘉主板示意图中的右上方部分的那四根插槽,那就是主存储器的插槽了。主存储器插槽中间通常有个突起物将整个插槽稍微切分为两个不等长的距离,这样的设计可以让用户在安装主存储器时,不至于前后脚位安插错误,是一种防误的设计。

我们知道CPU中的数据是来自于主存储器(main memory),不论是软件程序还是数据,都必须要读入主存储器后CPU才能利用。个人计算机的主存储器主要组件为动态随机存取内存(Dynamic Random Access Memory,DRAM),随机存取内存只有在通电时才能记录与使用,断电后数据就消失了。因此我们也称这种RAM为挥发性内存。

DRAM根据技术的更新又分好几代,而使用上较广泛的有所谓的SDRAM与DDR SDRAM两种,这两种内存的差别除了在于脚位与工作电压上的不同之外,DDR是所谓的双倍数据传送速度(Double Date Rate),他可以在一次工作周期中进行两次数据的传送,感觉上就好像是CPU的倍频啦。所以传输频率方面比SDRAM还要好。新一代的PC大多使用DDR内存了。下表列出SDRAM与DDR SDRAM的型号与频率及带宽之间的关系。

DDR SDRAM又依据技术的发展,有DDR、DDRII,DDRIII等等。

主存储器型号的挑选与CPU及芯片组有关,所以主板、CPU与内存在购买的时候必须要考虑其相关性。并不是任何主板都可以安插DDRIII的内存。

主存储器除了频率/带宽与型号需要考虑之外,内存的容量也是很重要的。因为所有的数据都得要加载在内存当中才能够被CPU判断,如果内存容量不够大的话将会导致某些大容量数据无法被完整的加载,此时已存在内存当中但暂时没有被使用到的数据必须要先被释放,使得可用内存容量大于该数据,那份新数据才能够被加载。所以,通常越大的内存代表越快速的速度,这是因为系统不用常常释放一些内存内部的数据。以服务器来说,主存储器的容量有时比CPU的速度还要来的重要的。

1.2.2.1  双通道设计

由于所有的数据都必须要存放在主存储器,所以主存储器的数据宽度当然是越大越好。但传统的总线宽度一般大约仅为64位,为了要加大这个宽度,因此芯片组厂商就将两个主存储器汇整到一起,如果一只内存可达64位,两只就可以达到128位了,这就是双通道的设计理念。

如上所述,要启用双信道的功能你必须要安插两支(或四支)主存储器,这两支内存最好连型号都一模一样比较好,这是因为启动双信道内存功能时,数据是同步写入/读出这一对主存储器中,如此才能够提升整体的宽带。所以当然除了容量大小要一致之外,型号也最好相同啦。

仔细观察图2.1.3、技嘉主板示意图上那四根内存插槽的颜色。分为两种颜色,且两两成对。为什么是这种设计呢?这其实就是为了双通道来的。要启动双信道的功能时,你必须要将两根容量相同的主存储器插在相同颜色的插槽当中。

1.2.2.2  CPU频率与主存储器的关系

理论上,CPU与主存储器的外频应该相同才好。不过,因为技术方面的提升,因此这两者的频率速度不会相同,但外频则应该是一致的较佳。举例来说,上面提到的Intel E8400 CPU外频为333MHz,则应该选用DDR II 667这个型号,因为该内存型号的外频为333MHz之故。

1.2.2.3  DRAM与SRAM

除了主存储器之外,事实上整部个人计算机当中还有许许多多的内存存在。最为我们所知的就是CPU内的第二层高速缓存。我么么现在知道CPU的数据都是由主存储器提供,但主存储器的数据毕竟得经由北桥送到CPU内。如果某些很常用的程序或数据可以放置在CPU内部的话,那么CPU资料的读取就不需要经过北桥了。对于效能来说不就可以大大提升了吗。这就是第二层高速缓存的设计概念。第二层高速缓存与主存储器及CPU的关系如下图所示:

因为第二层高速缓存(L2 cache)整合到CPU内部,因此这个L2内存的速度必须要CPU频率相同。使用DRAM是无法达到这个频率速度的,此时就需要静态随机存取内存(Static Random Access Memory,SRAM)的帮忙了。SRAM在设计上使用的晶体管数量较多,价格较高,且不易做成大容量,不过由于其速度快,因此整合到CPU内成为高速缓存以加快数据的存取是个不错的方式。新一代的CPU都有内建容量不等的L2快取在内存内部,以加快CPU的运作效能。

1.2.2.4  只读存储器(ROM

主板上面的组件是非常多的,而每个组件的参数又具有可调整性。举例来说,CPU与内存的频率是可调整的;而主板上面如果有内建的网卡或者是显示适配器时,该功能是否要启动与该功能的各项参数,是被记录到主板上头的一个称为CMOS的芯片上,这个芯片需要借着额外的电源来发挥记录功能,这也是为什么你的主板上面会有一颗电池的缘故。

那CMOS内的数据是如何读取与更新呢?还记得计算机在开机的时候可以按下【del】按键来进入一个名为BIOS的画面吧。BIOS(Basic Input Output System)是一套程序,这套程序是写死到主板上面的一个内存芯片中,这个内存芯片在没有通电时也能够将数据记录下来,那就是只读存储器(Read Only Memory,ROM)。ROM是一种非挥发性的内存。另外,BIOS对于个人计算机来说是非常重要的,因为他是系统在开机的时候首先会去读取的一个小程序。

另外,固件(firmware)很多也是使用ROM来来进行软件的写入的。固件像软体一样也是一个被计算机所执行的程序,然而他是对于硬件内部而言更加重要的部分。例如BIOS就是一个固件,BIOS虽然对于我们日常操作计算机系统没有什么太大的关系,但是他却控制着开机时各项硬件参数的取得。所以我们会知道很多的硬件上头都会有ROM来写入固件这个软件。

BIOS对计算机系统来讲是非常重要的,因为他掌握了系统硬件的详细信息与开机设备的选择等等。但是计算机发展的速度太快,因此BIOS程序代码也可能需要作适度的修改才行,所以才会在很多主办官网找到BIOS的更新程序啊。但是BIOS原本使用的是无法改写的ROM,因此根本无法修正BIOS程序代码。因此现在的BIOS通常是写入类似闪存(flash)或EEPROM中。

1.2.2.5  如何查看内存型号

有些时候我们会想要扩展我们的CPU内存,那么根据我们对内存的了解此时挑选一条与已有内存规格相符的是最好的选择,但是怎么知道我们的内存规格呢?特别是对于笔记本,下面给出方法:

通过软件CPU-Z可以查看当前内存如图:

从上面可以知道当前内存是DDR3,那么频率呢,如何查询内存的频率呢,可以通过DOS命令来查看:

1.2.3  显示适配器

显示适配器插槽如同图2.1.3、技嘉主板示意图所示,是在中央较长的插槽。这张主板中提供了两个显示适配器插槽。

显示适配器又称为VGA(Video Graphics Array),他对于图形影像的显示扮演相当关键的角色。一般对于图形影像的显示重点在于分辨率与颜色深度,因为每个图像显示的颜色会占用掉内存因此显示适配器上面会有一个内存的容量,这个显示适配器内存容量将会影像到最终你的屏幕分辨率与颜色深度

除了显示适配器内存之外,现在由于三度空间游戏(3D game)与一些3D动画的流行,因此显示适配器的【运算能力】越来越重要。一些3D的运算早期是交给CPU去运作的,但是CPU并非完全针对这些3D来进行设计的,而且CPU平时已经非常忙碌了,所以后来显示适配器厂商直接在显示适配器上面嵌入一个3D加速的芯片,这就是所谓的GPU称谓的由来。

显示适配器主要也是透过北桥芯片与CPU、主存储器等沟通。如前面提到的,对于图形影像(尤其是3D游戏)来说,显示适配器也是需要高速运作的一个组件,所以数据的传输也是越快越好。因此显示适配器的规格由早期的PCI导向AGP,近期AGP又被PCI-Express规格所取代了。如前面技嘉主板图示当中看到的就是PCI-Express的插槽。这些插槽最大的差异就是在数据传输的带宽了。如下所示:

比较特殊的是,PCIe(PCI-Express)使用的是类似管线的概念来处理,每条管线可以具有250MBytes/s的带宽效能,管线越大(最大可达x32)则总带宽越高。目前显示适配器大多使用x16的PCIe规格,这个规格至少可以达到4GBytes/s的带宽。比起AGP是快很多的。此外,新的PCIe 2.0规格也已经推出来,这个规格又可将每个管线的效能提升一倍。很可怕的传输量。

如果你的主机是用来打3D游戏的,那么显示适配器的选购是非常重要的,如果你的主机是用来作为网络服务取得,那么简单的入门级显示适配器对你的主机来说就非常够用了。因为网络服务器很少用到3D与图形影像功能。

问题:假如你的桌面使用的是1024*768分辨率,且使用全彩(每个像素占用3bytes的容量),请问你的显示适配器至少需要多少内存才能使用这样的彩度?

答:因为1024*768分辨率中会有1024*768个像素,每个像素占用3bytes,所以总共需要2.25MBytes以上才行。但如果考虑屏幕的更新率(每秒钟屏幕的更新次数),显示适配器的内存还是越大越好。

1.2.4  硬盘与储存设备

计算机总是需要记录与读取数据的,而这些数据当然不可能每次都由用户通过键盘来输入。所以就需要有储存设备。计算机系统上面的储存设备包括有:硬盘、软盘、MO、CD、DVD、磁带机、随身碟(闪存),还有新一代的蓝光光驱等,乃至于大型机器的局域网网络储存设备(SAN、NAS)等等,都是可以用来储存数据的。而其中最常见的应该就是硬盘了吧。

1.2.4.1  硬盘的物理组成

硬盘依据台式机和笔记本分为3.5寸及2.5寸的大小。我们以3.5寸的桌面计算机使用硬盘来说明。在硬盘盒里面其实就是由许许多多的圆形磁盘盘片、机械手臂、磁盘读取头与主轴马达所组成的,整个内部如下图所示:

实际的数据都是写在具有磁性物质的磁盘盘上头,而读写主要是透过机械手臂上的读写头(head)来达成。实际运作时,主轴马达让磁盘盘转到,然后机械手臂可伸展让读取头在磁盘盘上头进行读写的动作。另外,由于单一磁盘盘的容量有限,因此有的硬盘内部会有两个以上的磁盘盘。

1.2.4.2  磁盘盘上的数据

既然数据都是写入磁盘盘上头,那么磁盘盘上头的数据又是如何写入的呢?其实磁盘盘上头的数据有点像下面的图所示:

图2.4.2 磁盘盘上的数据格式

整个磁盘盘上头好像有多个同心圆绘制出的饼图,而由圆心以放射状的方式分割出磁盘的最小储存单位,那就是扇区(Sector),在物理组成分面,每个扇区大小为512Bytes,这个值是不会改变的。而扇区组成一个元就称为磁道(track),如果是在多碟的磁盘上面,在所有的磁盘盘上面的同一个磁道可以组成一个磁柱(Cylinder),磁柱也是一般我们分割硬盘时的最小单位了。

在计算整个硬盘的存储量时,简单的计算公式就是:【header数量*每个header负责的磁柱数量*每个磁柱所含有的扇区数量*扇区的容量】,单位换算为【header*cylinder/header*sector/cylinder*512bytes/sector】,简单的写法如下:Head*Cylinder*Sector*512Bytes。不过要注意的是,一般硬盘制造商在显示硬盘的容量时,大多是以十进制来进行编号,因此市售的500GB硬盘,理论上仅会有460GBytes作业的容量。

1.2.4.3  传输接口

由于传输速度的需求提升,目前硬盘与主机系统的联系主要有几种传输接口规格:

IDE界面

如图2.1.3、技嘉主板图示右侧的较宽的插槽所示,那就是IDE的接口插槽。IDE接口插槽所使用的的扁平电缆较宽,每条扁平电缆上面可以接两个IDE装置,由于可以接两个装置,那为了判别两个装置的主/从架构,因此这种磁盘驱动器上面需要调整跳针(Jump)称为Master或slave才行。这种接口的最高传输速度为Ultra 133规格,亦既每秒理论传输可达133MBytes。

SATA界面

如同技嘉主板图右下方所示为SATA硬盘的连接接口插槽。我们可以看到该插槽要比IDE接口小很多,每条SATA连接线仅能接一个SATA装置。SATA接口除了速度较快之外,由于其扁平线缆较细小所以有利于主机机壳内的散热和安装。目前SATA已经发展到了第二代,其速度由SATA-1每秒150MBytes提升到SATA-2每秒300MBytes的传输速度,也因此目前主流的个人计算机硬盘已经被SATA取代了。SATA的插槽示意图如下:

由于SATA一条扁平电缆仅接一颗硬盘,所以不需要调整跳针。不过一张主板上面SATA插槽的数量并不是固定的,且每个插槽都有编号,在连接SATA硬盘与主板的时候,还是需要留意一下。

SCSI界面

另一种常见于工作站等级以上的硬盘传输接口为SCSI接口,这种接口的硬盘在控制器上含有一颗处理器,所以除了运转速度快之外,也比较不会耗费CPU资源。在个人计算机上面这种接口的硬盘不常见。

1.2.4.4  硬盘选购须知

如果我们想为自己的电脑扩容,除了需要考虑你的主板可接受的插槽接口(IDE/SATA)之外,还有什么要注意的呢?

l 容量:通常首先考虑的就是容量问题了,硬盘是一种消耗品,且极易损坏,所以日常我们需要经常注意备份。

l 缓冲存储器:磁盘上头含有一个缓冲存储器,这个内存主要可以将硬盘内常使用的数据快取起来,以加速系统的读取效能。通常这个缓冲存储器越大越好,因为缓冲存储器的速度要比数据从硬盘盘中被找出来要快得多。目前主流的产品可达到16M左右的内存大小。

l 转速:因为硬盘主要是利用主轴马达转动磁盘来存取,因此转速的快慢会影响到效能。主流的桌面计算机硬盘位每分钟7200转,笔记本电脑则是5400转。有的厂商也有推出高达10000转的硬盘,若有高效能的资料存取需求,可以考虑购买高转速的硬盘。

运转须知

由于内部机械手臂上的磁头与硬盘盘的接触空间是很细微的空间,如果有抖动或者是脏污在磁盘头与硬盘盘之间就会造成数据的损毁或者是实体硬盘整个损毁~因此,正确的使用计算机的方式,应该是在计算机通电之后,就绝对不要移动主机,并免抖动到硬盘,而导致真个硬盘数据发生问题。另外不要随便将插头拔掉就以为是顺利关机了,因为机械手臂必须要回归原位,随意使用OS的正常关机方法,才能够很好的保养磁盘,因为他会让磁盘的机械手臂归回原位。多说一句,我们工作中有时会因为机箱内发出异响就去拍打机箱这是很危险的,会损坏到硬盘。

1.2.5  PCI适配卡

PCI(Peripheral Component Interconnect 外设部件互连标准)适配卡的插槽就如同图2.1.3、技嘉主板所示的左下方那个白色的插槽,这种PCI插槽通常会提供多个给使用者,如果用户有额外需要的功能卡,就能够安插在这种PCI界面插槽上。

我们在前面显示适配器的部分稍微提过PCI接口,事实上有相当多的组件是使用PCI接口作为传输的,例如网卡、声卡、特殊功能卡等等。但由于PCI Express规格的发展,很多制造商都往PCIe接口开发硬件了。不过还是有很多硬件使用PCI接口啦,例如大卖场上面常见的网卡就是一个。

目前在个人计算机上面常见到的网卡是一种称之为以太网络(Ethernent)的规格,目前以太网卡速度轻轻松松的就能到达10/100/1000 Mbits/second的速度,但同样速度的以太网卡所支持的标准可能不太一样,因此造成的价差是非常大的。如果想要在服务器主机上面安装新的网络卡时,得要特别注意标准的差异。

由于各组件的价格一直降落,现在主板上通常已经整合了相当多的设备组件了。常见整合到主板的组件包括声卡、网卡、USB控制卡、显示适配器、磁盘阵列卡等等。你可以在主板上面发现很多方形的芯片,那通常是一些个别的设备芯片。由于主板已经整合了很多常用的功能芯片,所以现在的主板上面所安插的PCI适配卡就少很多了。

1.2.6  主板

主板可以说是整部主机上相当重要的一个部分了,因为上面我们所谈到的所有组件都是安插在主板上面的。而主板上面负责沟通各个组件的就是芯片组,如同图2.1.1、Intel芯片组图示所示,图中我们也可以发现芯片组一般分为北桥与南桥。北桥负责CPU/RAM/VGA等的连接,南桥则负责PCI接口与速度较慢的IO装置。

由于芯片组负责所有设备的沟通,所以事实上芯片组(尤其是北桥)也是一个可能会散发出高热量的组件。因此在主板上面常会发现一些外接的小风扇或者是散热片在这组芯片上面。在本文所附的主板图示中,技嘉使用较高散热能力的热导管技术,因此你可以发现图中的南桥与北桥上面覆盖着黄铜色的散热片,且连接着数根圆形导管,主要就是为了要散热的。

1.2.6.1  芯片组功能

所有的芯片组几乎都是参考CPU的能力去规划的,而CPU能够接受的主存储器规格也不相同,因此在新购买或升级主机时,CPU、主板、主存储器与相关的接口设备都需要同时考虑才行。此外,每一种芯片组的功能可能都不太相同,有的芯片组强调的是全功能,因此连显示适配器、音效、网络等都整合了,在这样的整合芯片中,你几乎只要购买CPU、主板、主存储器再加上硬盘,就能够组装成一部主机了。不过整合型芯片的效能通常比较弱,对于爱玩3D游戏的玩家以及强调高效能运算的主机来说,就不是这么合适了。

至于独立型芯片组虽然可能具有较高的效能,不过你可能必须要额外负担接口设备的花费。例如显示适配器、网卡、声卡等。但独立型芯片组也有一定程度的好处,那就是你可以随时抽换接口设备。

1.2.6.2  设备I/O地址与IRQ中断信道

主板是负责各个计算机组件之间的沟通,但是计算机组件实在太多了,有输出/输入/不同的储存装置等等,主板芯片组怎么知道如何负责沟通呢?这个时候就需要用到所谓的IO地址与IRQ了。

IO地址有点类似每个装置的门牌号码,每个装置都有自己的地址,一般来说,不能有两个装置使用同一个IO地址,否则系统就会不晓得该如何运作这两个装置了。而除了IO地址之外,还有个IRQ中断(Interrupt)这个东西。

如果把IO地址想要成各装置的门牌号码的话,那么IRQ就可以想成是各个门牌连接到邮件中心(CPU)的专门路径了。各装置可以透过IRQ中断信道来告知CPU该装置的工作情况,以方便CPU进行工作分配的任务。老式的主板芯片组IRQ只有15个,如果你的周边接口太多时可能就会不够用,这个时候你可以选择将一些没有用到的周边接口关掉,以空出一些IRQ来给真正需要使用的接口。当然也有所谓的sharing IRQ的技术了。

1.2.6.3  CMOS与BIOS

前面内存的地方我们有提过CMOS与BIOS的功能,在这里我们再来强调一下:CMOS主要的功能为记录主板上面的重要参数,包括系统时间、CPU电压与频率、各项设备的IO地址与IRQ等,由于这些数据的记录要花费电力,因此主板上面才有电池。BIOS为写入到主板上某一块闪存或EEPROM的程序,他可以在开机的时候执行,以加载CMOS当中的参数,并尝试呼叫储存装置中的开机程序,进一步进入操作系统之中。BIOS程序也可以修改CMOS中的数据,每种主板呼叫BIOS设定程序的按键都不同,一般台式机是del,笔记本,联想为F12.

1.2.6.4  连接接口设备的接口

主板与各项输入输出设备的链接主要都是在主机机壳的后方,主要有:

l PS/2界面:这是最常见的键盘和鼠标的接口,不过渐渐有被USB接口取代的趋势;

l USB界面:目前相当主流的一个接口,支持即插即用。主流的USB版本为USB2.0,这个规格的速度可达480Mbps,相对之下的USB1.1仅达12Mbps差异很大,购买接口设备要注意,不然进行大数据移动时会很慢的。

l 声音输出、输入与麦克风:这个是一些圆形的插孔,而必须你的主板上面有内建音效芯片时,才会有这个东西。

l RJ-45网络头:如果有内建网络芯片的话,那么就会有这种接头出现。这种接头有点类似电话接头,不过内部有八芯线。接上网络线后再这个接头上会有灯号亮起。

l 其它过时接口:包括早期的用来连接鼠标的九针串行端口(com1),以及链接打印机的25针并列端口(LPT1)等等。

我们以技嘉主板的链接接口来看的话,主要有这些:

1.2.7  电源供应器

我们说CPU是计算机中最重要的,但是CPU离了电源也是狗屁不是,所以CPU的重要性是要建立在电源(Power)的基础之上的。在台式机的大铁盒子里,上头有很多电源线,那就是电源供应器了。我们的CPU/RAM/主板/硬盘等等都需要用电,而近来的计算机组件耗电量越来越高,以前很古老的230W电源已经不够用了,有的系统甚至得要有500W以上的电源才能够运作。

电源供应器的价差也是很大的,区别在于Power的用料不同,电源供应的稳定性也会差很多,而一颗稳定的电源会很好的支持计算机的运行,稳定度差的电源供应器甚至是造成计算机不稳定的元凶呢!所以,尽量不要使用质量太次的电源。

1.2.7.1  能源转换率

电源供应器本身也会消耗一部分电力,如果你的主机系统需要300W的电力时,因为电源供应器本身也会消耗掉一部分电力,因此最好挑选400W以上的电源供应器。电源供应器出厂前会有一些测试数据,最好挑选高转换率的电源供应器。所谓的高转换率指的是【输出功率/输入的功率】。意思是说,假如你的主板用电量为250W,但是电源供应器其实已经使用掉320W的电力,则转换率为:250/320=0.78的意思了。这个值越高表示被电源供应器消耗的电力越少,那就符合能源效益了。

1.2.7.2  连接接口

目前主板与电源供应器的连接接口主要有20pin与24pin两种规格,购买时也需要注意你的主板所需要的规格。

1.2.8  购买参考

在购买电脑时应该进行整体的考虑,很难依照某一项标准来选购。实际上,我们需要一部电脑或服务器时,建议不要自行组装,买品牌计算机会更好些,这是因为品牌计算机的各项设备之间是经过检测过的完美匹配。

另外,在效能方面也并非仅仅考虑CPU的能力,速度的快慢与整体系统的最慢的那个设备是有直接关系的。

系统不稳定的可能原因

除此之外,到达=底哪个组件特别容易造成系统的不稳定性呢?有几个常见的系统的不稳定性的状态是:

l 系统超频:这个行为很不好,属于饮鸩止渴,容易死机。

l 电源稳定性不好:这事很严重的问题,特别要注意。

l 内存无法负荷:现在的内存质量差很多,差一点的内存,可能造成主机在忙碌的工作时产生不稳定或当机状态。

l 系统过热:热是造成电子零件运作不良的主因之一,如果您的主机在夏天容易当机,冬天却还好,那么就要考虑散热的问题了。

了解了个人计算机架构和接口设计,那么我们我们是不是应该都计算机的主要功能操作数据的数据进行一下了解呢。下面我们就来了解一下计算机中数据的表示方式。

1.3 数据表示方式

都知道计算机只认识0和1,只能支持二进制,那么计算机是如何记录现实世界中繁杂的语言符号呢?这就需要通过一系列的转换才可以了,下面我们就来认识一下二进制和编码。【注,最早0和1其实是用来记录通电情况的】

1.3.1  进制转换

进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。二进制就是逢2进1,八进制就是逢8进1,以此类推;

对于整数常量,Java语言支持常见的三种进制,八进制 十进制 十六进制;

1.3.1.1 二进制的由来

任何数据在计算机中都是以二进制的形式存在的。二进制早期由电信号开关演变而来。一个整数在内存中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦。所以就想把一大串缩短点,将二进制中的三位用一位表示。这三位可以取到的最大值就是7.超过7就进位了,这就是八进制。但是对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位表示一位的情况,四个二进制位最大是15,这就是十六进制。规律,进制越大,表现形式越短。

1.3.1.2 进制的基本转换

1.3.1.2.1 二进制与十进制之间的相互转换

十进制转换为二进制分为整数部分和小数部分

l 整数部分

方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个不走一直持续下去,知道商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。举例如下:

例:将十进制的168转换为二进制  将十进制的167转换为二进制

分析:第一步:将168除以2,商84,余数为0;将167除以2,商83,余数为1;

第二步:将84除以2,商42,余数为0;将83除以2,商41,余数为1;

第三步:将42除以2,商21,余数为0;将41除以2,商20,余数为1;

第四步:将21除以2,商10,余数为1;将20除以2,商10,余数为0;

第五步:将10除以2,商5,余数为0;将10除以2,商5,余数为0;

第六步:将5除以2,商2,余数为1;将5除以2,商2,余数为1;

第七步:将2除以2,商1,余数为0;将2除以2,商1,余数0;

第八步:将1除以2,商0,余数为1;将1除以2,商0,余数为1;

得出结果:将十进制的数168转换为二进制---(10101000)

将十进制的数167转换为二进制---(10100111)

l 小数部分

方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,以此类推直到小数部分为0为止.如果永远不能为0,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是0,舍掉,如果是1,向前入一位,换句话就是0舍1入。读数要从前面的整数读到后面的整数,举例说明。

例:将0.125换算为二进制

分析:第一步:将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;

第二步:将0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;

第三步:将0.5乘以2,得1.0,则整数部分为1,小数部分为0;

第四步:读数,从第一位读起,读到最后一位,即为0.001;

例:将0.45转换为二进制(保留到小数点第四位)

分析:第一步:将0.45乘以2,得0.9,则整数部分为0,小数部分为0.9;

第二步:将0.9乘以2,得1.8,则整数部分为1,小数部分为0.8;

第三步:将0.8乘以2,得1.6,则整数部分为1,小数部分为0.6;

第四步:将0.6乘以2,得1.2,则整数部分为1,小数部分为0.2;

第五步:将0.2乘以2,得0.4,则整数部分为0,小数部分为0.4;

从上面的步骤中可以看出,当第五次做乘法时,得到的结果是0.4,小数部分继续乘以2,但是是永远不会使小数部分为0的,这个时候只好采取十进制的四舍五入了,但是在二进制中只有0和1,于是就出现了0舍1入。这个也是计算机在转换中产生误差,但是由于保留位数很多,精度很高所以忽略不计。那么,我们可以得出结果将0.45转换为二进制(保留到小数点后四位)等于0.0111。

从上面介绍的整数部分和小数部分我们可以注意到这么几点:

1.十进制转换为二进制时,需要分成整数部分和小数部分分别转换;

2.整数转换是除2,小数部分转换则是乘以2;

3.注意读数方向,整数部分是由下向上,小数部分是由上向下;

因此,我们从上面的方法可以得出十进制数转换为二进制数168.125=10101000.001

167.45(保留小数点后四位)=10100111.0111

l 二进制转换为十进制

二进制转换为十进制,不分小数部分和整数部分

方法:按权相加法,即将二进制每位上的数乘以权,然后相加之和既是十进制数,举例如下:

例:101.101转换为十进制数。

分析:第一步:整数部分1*2^2+0*2^1+1*2^0=5

第二步:小数部分1*2^-1+0*2^-2+1*2^-3=0.5+0+0.125=0.625

第三步:两者相加得5.625

在做二进制转换为十进制时需要注意:

1.要知道二进制的权值;整数部分从右往左一次我0,1,2....,小数部分从左往右依次为-1,-2...

2.要能求出每位的值;

1.3.1.2.2 二进制与八进制之间的相互转换

首先我们需要知道这么几个东西二进制111转换为十进制为7,1000转换为十进制为8,所以我们可以知道八进制是由3位二进制来表示的;而十六进制是由4位二进制来表示的。

l 二进制转换为八进制

方法:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。举列如下:

例1:将二进制数101110.101转换为八进制;

分析:第一步:我们将101110.101从右至左整数部分分为101 110,小数部分为101这三部分;

第二步:我们将分成的三部分(101 110 101)转换为八进制

1*2^2+0*2^1+1*2^0=5  1*2^2+1*2^1+0*2^0=6  1*2^2+0*2^1+1*2^0=5

第三步:将所得的数按照顺序组合得到56.5

例2:将二进制数1101.1转换为八进制

分析:第一步:我们将二进制数按三位分成一组,不够的话整数部分在最左边添加0,小数       部分在最右边添加0,分成的三组为001 101 100;

第二步:我们将分成的三组数转换为八进制001=1 101=5 100=4

第三步:将所得的数按照顺序组合得到15.4;

l 八进制转换为二进制

方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。举例如下:

例1:将八进制数67.54转换为二进制

分析:第一步:我们将每一位八进制数转换为二进制:6<-->110 7<-->111 5<-->101 4<-->100

第二步:我们将所得数按照位置组合得到110111.101100,

第三步:因为这是八进制,在上面我们八进制转换为二进制时我们知道不够三位时的补      位方法所以我们可以将小数上面的0去掉,得数110111.1011;

以上就是二进制与八进制之间的相互转换,我们需要注意的是:

1.他们之间的转换是一位与三位转换,有别于二进制与十进制的转换;

2.我们在做需要填零时,要注意整数部分添加在最高位,小数部分添加在最低位;

1.3.1.2.3 二进制与十六进制的相互转换

方法:与二进制与八进制的转换相似,只不过是一位(十六进制)与四位(二进制)之间的转换;

l 二进制转换为十六进制

方法:取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,得到的数就是一位十六位二进制数,然后按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。举例如下:

例1:将二进制数11101001.1011转换为十六进制

分析:第一步:以小数点为分界线将整数部分和小数部分按每四位分成一组得到三组数字

1110 1001 1011

第二步:将分得的二进制数转换为十六进制1110<-->1*2^3+1*2^2+1*2^1+0*2^0=14

1001<-->9   1011<-->11

第三步:将所得的数按顺序组合得到结果E9.B

例2:将二进制数101011.101转换为十六进制

分析:第一步:以小数点为分界线将整数部分和小数部分按每四位分成一组(整数部分不够            的在最高位(左边)上添0,小数部分不够在最低位(右边)上添0)得到三          组数字0010  1011  1010

第二步:将所得的二进制数转换为十六进制 0010<-->2  1011<-->11  1010<-->10

第三步:将所得的数按顺序组合得到结果2B.A

l 十六进制转换为二进制

方法:取一分四法,即将一位十六进制数,即将一位十六进制数分解为四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧。举例如下:

例1:将十六进制6E.2转换为二进制数

分析:第一步:将每一位十六进制数转换为二进制数 6<-->0110  E<-->1110   2<-->0010

第二步:按顺序组合得到最终结果为:1101110.001

1.3.1.2.4 八进制与十六进制之间的相互转换

方法:一般不能直接互相转换,一般将八进制(十六进制)先转换为二进制,然后再将二进制转换为十六进制(八进制),小数点位置不变。

1.3.1.2.5 八进制与十进制之间的相互转换

l 八进制转换为十进制

方法:按权相加法,即将八进制每位上的数乘以位权,然后相加之和就是十进制数。举例如下:

例:将八进制数67.35转换为十进制数

分析:第一步:将八进制数分为整数部分和小数部分,将每部分上的每一位数乘以位权相加

6*8^1+7*8^0=55  3*8^-1+5*8^-2=0.453125

第二步:将所得结果按顺序排列得到最后结果:55.453

l 十进制转换为八进制

十进制转换为八进制有两种方式

l 间接法:先将十进制转换成二进制,然后将二进制转换成八进制

l 直接法:前面我们讲过八进制是由二进制衍生而来的,因此我们可以采取与十进制转换为二进制相似的办法,还是整数部分和小数部分两部分转换,下面具体讲解

整数部分

方法:除8取余法,即每次将整数部分除8,余数为该位权上的数,商继续除以8,余数为上一个位权上的数,依次往下直到商为0,最后读数时候从最后一个余数读起,到最前面一个余数为止;

小数部分

方法:乘8取整法,即小数部分乘以8取整数部分,剩下的小数部分继续乘以8,直到小数部分为0为止。若果永远不能为0,就同十进制数的四舍五入一样,暂取个名字叫3舍4入

例1:将十进制数796.703125转换为八进制数

分析:第一步:将十进制数以小数点为分界线分为整数部分和小数部分

第二步:将整数部分除8取余结果1434,小数部分乘8得到结果0.55

第三步:将结果汇总得到1434.55

1.3.1.2.6 十进制与十六进制之间的相互转换

十六进制与八进制有很多相似支出可以参照上面八进制与十进制的转换;

1.3.1.2.7 有符号的二进制表现形式

首先我们要知道这么一件事那就是整数属于int类型,而java中int类型是四个字节,那么他在计算机中就是以32位二进制形式存在的;我们以整数5来举例,5在计算机中的其实是是这样的00000000  000000000  00000000  00000101,那么-5是什么样的呢?在这里我们要知道这么几点:

计算机中符号的表示正数的符号位是0,负数的是1;

计算机中正数是以原码显示的,而负数是以原码的补码形式显示的;

原码:一个正数,按照绝对值大小转换成的二进制数,一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码;举例如下:

例:5的原码: 00000000  00000000  00000000  00000101

-5的原码:10000000  00000000  00000000  00000101

反码:正数的反码与原码相同,负数的反码为该数的原码除符号位外其他各位取反

例:5的反码: 00000000  00000000  00000000  00000101

-5的反码:11111111  11111111  11111111  11111010

补码:正数的补码还和原码一样,负数的补码为该数的原码除符号位外其他各位取反,然后最后一位加1

例:5的补码:00000000  00000000  00000000  00000101

-5的补码:11111111  11111111  11111111  11111011

综上:我们可以对5与-5进行相加验证,超过32取消那么最后得到的就是:

00000000  00000000  000000000  00000000

符号位为1是如何转换为十进制:我们将符号位为1的二进制数按照补码-->反码-->原码,进行逆操作,得到源码后然后将原码转换为十进制加符号位即可;【注:补码转换为原码和原码转换为补码格式一样】

1.3.2  文字编码系统

计算机只认识0和1,甚至记录实际都是使用byte/bit等单位来记录的,那么文字该如何记录呢?事实上文本文件也是被记录成0和1的,这中间有一个转换的规则,那就是编码格式,我们按照某种编码规则,例如127代表“我”,那么汉字我在计算机中就是127来表示的,原理如下:

当我们需要读取文本文件时在经过解码,将127取出对照编码表返回一个“我”。目前最常用的编码规则是UTF-8.关于编码在这里不多做介绍了。

1.4 软件程序运行

上面我们介绍了计算机的硬件构成,但是只有硬件的计算机只是一堆废铁,不能帮助我们做任何的工作,要让计算机变得能够符合我们的心意是离不开软件的支持的,硬件是计算机的骨肉,那么软件就是灵魂了。

一般来说,目前的计算机系统将软件分为两大类,一个是系统软件(OS),一个是应用程序,我们在了解OS之前先来了解一下什么是程序,尤其是机器程序。

1.4.1 机器程序与编译程序

我们前面谈到计算机只认识0和1,而且计算机最重要的运算与逻辑判断是在CPU内部,而CPU其实是具有微指令集的。因此,我们需要CPU帮忙工作时,就得要参考微指令集的内容,然后撰写让CPU读的懂的脚本给CPU执行,这样才能让CPU运作。

不过这样的流程有几个很麻烦的地方,包括:

l 需要了解机器语言:机器只认识0和1,因此你必须要学习直接写给计算机看的语言,这是相当困难的。

l 需要了解硬件的相关功能函数:因为你的程序必须要写给机器看,当然你就得要参考机器本身的功能,然后针对该功能去撰写程序代码。例如,你要让DVD影片能够播放,那就得要参考DVD光驱的硬件信息才行。万一你的系统有比较冷门的硬件,光是参考技术手册可能就会累死。

l 程序不具有可移植性:每个CPU都有独特的微指令集,同样的,每个硬件都有其功能函数。因此,你为A计算机写的程序,理论上是没有办法在B计算机上面运作的。而且程序代码的修改也是非常困难的,因为是机器码,并不是人类看得懂的程序语言。

l 程序具有专一性:因为这样的程序必须要针对硬件功能函数来编写,如果已经开发了一支浏览器程序,想要再开发档案管理程序时,还得从头再参考硬件的功能函数来继续编写,每天都在和硬件奋战。

从上面的图示我们可以看到高阶程序语言与程序代码是很容易查看的。问题是,在这样的环境底下我们还是得要考虑整体的硬件系统来设计程序。

举例来说,当你需要将运作的数据写入内存中,你就得要自行分配一个内存区块出来让自己的数据能够填上去,所以你还得要了解内存地址是如何定位的,想到这里就不禁觉得程序员知道的好多啊。

为了克服硬件方面老是需要重复撰写内存地址句柄的问题,所及就有了操作系统(Operating System,OS)的出现。下面我们就来认识一下OS。

1.5 大魔头:操作系统OS与应用程序

如同前面提到的,在早期想要让计算机执行程序就得要参考一堆硬件功能参数,并且学习机器语言才能撰写程序。同时每次写程序时都必须要重新改写,因为硬件与软件功能不见得都一致之故。那如果我能够将所有的硬件都驱动,并且提供一个发展软件的参考接口来给工程师开发软件的话,那发展软件不就变得非常简单了?这就是操作系统的主要职责了。

1.5.1 操作系统的核心

OS其实就是一组程序,这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件。我们刚刚谈到计算机如果没有软件只是一堆废铁,那么操作系统的功能就是让CPU可以开始判断逻辑与运算数值、让主存储器可以开始加载/读出数据与程序代码、让硬盘可以开始被存取、让网卡可以开始传输数据、让所有周边可以开始运转等等。总之,硬件的所有动作都必须要透过这个操作系统来达成就是了。

上述的功能就是操作系统的核心(Kernel)了,你的计算机能不能做到某些事情,都与核心有关。只有核心有提供的功能,你的计算机系统才能帮你完成。举例来说,你的核心并不支持TCP/IP的网络协议,那么无论你购买什么样的网卡,这个核心都无法提供网络能力。

但是单有核心我们使用者也不知道能做什么,因为核心主要在管控硬件与提供相关的能力(例如网络功能),这些管理的动作是非常的重要的,如果使用者能够直接使用到核心的话,万一用户不小心将核心程序停止或破坏,将会导致整个系统的崩溃。因此核心程序所放置到内存当中的区块是受保护的。并且开机后就一直常驻在内存当中。所以整部系统只有核心的话,那么我们就能看着一个已经准备好运作的计算机系统,但是我们无法运行他。这个时候就需要软件的帮忙了。

1.5.2 系统呼叫(System Call

既然计算机的硬件都是由OS核心管理,那么如果我想要开发软件的话,自然就得要去参考这个核心的相关功能了。如此一来不是从原来的参考硬件函数变成参考OS Kernel,还是很麻烦的,那么有没有更简单的方法呢?

为了解决这个问题,OS通常会提供一整组的开发接口给工程师开开发软件。工程师只要遵守该开发接口那就很容易开发软件了。举例来说,我们学习C程序语言只要参考C程序语言的函数即可,不需要再去考虑其他核心的相关功能,因为核心的系统呼叫接口会主动将C程序语言的相关语法转为核心可以了解的任务函数,那核心自然就能够顺利运作该程序了。

如果我们将整个计算机系统的相关软件/硬件绘制成图的话,他们的关系如下:

计算机系统主要由硬件构成,然后核心程序主要在管理硬件,提供合理的计算机系统资源分配(包括CPU资源、内存使用资源等等),因此只要硬件不同(如x86架构与RISC架构的CPU),核心就得要进行修改才行。而由于核心只会进行计算机系统的资源分配,所以在上头还需要有应用程序的提供,用户才能够操作系统的。

为了保护核心,并且让程序设计师比较容易开发软件,因此操作系统除了核心程序之外,通常还会提供一整组开发接口,那就是系统呼叫层。软件开发工程师只要遵循公认的系统呼叫参数来开发软件,该软件就能够在该核心上头运作。所以你可以发现,软件与核心有比较大的关系,与硬件关系则不大。硬件也与核心有比较大的关系,至于与用户有关的,那就是应用程序啦。

在定义上,只要能够让计算机硬件正确无误的运作,那就算是操作系统了。所以说,操作系统其实就是核心与其提供的接口工具,不过就如同上面讲的,因为内核缺乏了与用户沟通的亲和接口,因此在目前,一般我们提到的操作系统都会包含核心与相关的用户应用软件。

简单的说,上面的图示可以带给我们底下的概念:

l 操作系统的核心层直接参考硬件规格写成,所以同一个操作系统程序不能够在不一样的硬件架构下运作。这个硬件不仅指的是CPU,包括声卡,内存等计算机的构成。

l 操作系统只是在管理整个硬件资源,包括CPU、内存、IO装置及文件系统文件。如果没有其他的应用程序辅助,操作系统只能让计算机准备妥当罢了。并无法运作其他功能,所以我们想要操作计算机还要安装其他应用软件。

l 应用程序的开发都是参考操作系统提供的开发接口,所以该应用程序只能在该操作系统上面运作而已,不可以在其他操作系统上面运作。我们发现有时候安装软件会提示该软件只能安装在什么什么系统上,其实就是这个道理。

1.5.3 核心功能

既然核心主要是在负责整个计算机系统相关的资源与管理,那我们知道其实整部计算机系统最重要的就是CPU与主存储器,因此,核心至少也要有这些功能:

l 系统呼叫接口(System Call Interface),上面说过,这是为了方便程序开发者可以轻易的透过与核心的沟通,将硬件的资源进一步的利用,于是需要有这个简易的接口来方便程序开发者。

l 程序管理(Process control)我们在工作过程中总会听说多任务环境,一部计算机可能同时间有很多的工作跑到CPU等待运算处理,核心这个时候就必须能够控制这些工作,让CPU的资源作有效的分配才行!另外。良好的CPU排程机制(就是CPU先运作哪个工作的排列顺序)将会有效的加快整体系统的效能。

l 内存管理(Memory management)控制整个系统的内存管理,这个内存控制是非常重要的,因为系统所有的程序代码与数据必须要先存放在内存中。通常核心会提供虚拟内存功能,当内存不足时可以提供内存置换(swap)的功能。

l 文件系统管理(Filesystem management)文件系统的管理,例如数据的输入输出等等的工作了,还有不同文件格式的支持啦等等,如果你的核心不认识某个文件系统,那么您将无法使用该文件格式的档案。

l 装置的驱动(Device drivers)就如同上面提到的,硬件的管理是核心的主要工作之一,当然了,装置的驱动程序就是核心所需要做的事情了,好在目前都有所谓的可加载模块功能,可以将驱动程序编辑成模块,就不需要重新的编译核心了。

事实上,驱动程序的提供是硬件厂商的事情,硬件厂商要推出新硬件时,应该要参考OS的驱动程序接口,开发完毕后将驱动程序连同硬件一同销售,并且现实也是这样的。

1.5.4 操作系统与驱动程序

老实说,驱动程序可以说是操作系统里面相当重要的一环了。不过,硬件可是持续在进步当中的,包括主板、显示适配器、硬盘等等。那么比较晚推出的较新的硬件,我们的OS当然是不认识的,那OS该如何驱动这些新的硬件呢,为了克服这个问题,OS通常会提供一个开发接口给硬件开发商,让他们可以根据这个接口设计可以驱动他们硬件的驱动程序,如此一来,只要使用者安装驱动程序后,自然就可以在他们的OS上面驱动这些硬件了。

由上图我们可以得到几个小重点:

l 操作系统必须要能够驱动硬件,如此应用程序才能够使用该硬件功能;

l 一般来说,OS会提供开发接口,让开发商制作他们的驱动程序;

l 要是用新硬件功能,必须要安装厂商提供的驱动程序才行;

l 驱动程序是由厂商提供的,与OS开发者无关。

所以,如果你想要更换硬件的话,那么就要求该供应商提供该硬件专用的驱动吧,注意不同的硬件对应不同的驱动。

1.5.5 应用程序

应用程序是参考OS提供的开发接口所开发出来的软件,这些软件可以让用户操作,以达到某些计算机的功能利用。举例来说,办公室软件office主要就是用来让使用者办公使用的;图像处理软件就是用来处理影音资料的。

需要注意的是,应用程序是与OS有关系的,如同上面的图示当中的说明。因此,如果你想要购买新软件,一定要参考软件说明,软件是否支持你的OS。

1.6 三言两语简而概之

l 计算器的定义为:接受用户输入指令与数据,经由中央处理器的数学与逻辑单元运算处理后,以产生或存储成有用的信息。

l 计算机的五大单元包括:输入设备、输出设备、CPU内部的控制单元、算数逻辑单元与主存储器五大部分。

l 数据会流进/流出内存是CPU所发布的控制命令,而CPU实际要处理的数据则完全来自于主存储器。

l CPU依设计理念主要分为:精简指令集(RISC)与复杂指令集(CISC)系统。

l 关于CPU的频率部分:外频指的是CPU与外部组件进行数据传输时的速度,倍频则是CPU内部用来加速工作效率能的一个倍数,两者相乘才是CPU的频率速度。

l 一般主板芯片组有分北桥与南桥,北桥的总线称为系统总线,因为是内存传输的主要信道,所以速度较快,南桥就是所谓的输入输出(I/O)总线,主要在联系硬盘、USB、网卡等接口设备。北桥所支持的频率我们称之为前端总线速度(Front Side Bus,FSB),而每次传送的位数则是总线宽度。

l CPU每次能够处理的数据量称为字组大小(word size),字组大小依据CPU的设计而有32位与64位。我们现在所称的计算机是32或64位主要是依据这个CPU解析的字组大小而来的。

l 个人计算机的主存储器主要组件为动态随机存取内存(Dynamic Random Access Memory,DRAM),至于CPU内部的第二层缓存则使用静态随机存取内存(Static Random Access Memory,SRAM)。

l BIOS(Basic Input Output System)是一套程序,这套程序是写死到主板上面的一个内存芯片中,这个内存芯片在没有通电时也能够将数据记录下来,那就是只读存储器(Read Only Memory,ROM)。

l 显示适配器的规格有PCI/AGP/PCIe,目前主流的是PCIe接口。

l 磁盘的组成为:圆形磁盘盘片、机械手臂、磁盘读取头与主轴马达所组成,其中磁盘盘片的组成为扇区、磁道与磁柱。

l 操作系统(Operating System,OS)其实也是一组程序,这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件。

l 计算机主要以二进制为单位,常用的磁盘容量单位为bytes,其单位换算为1Byte = 8bites

l OS仅在于驱动与管理硬件,而要使用硬件时,就得需要通过应用软件或者是shell(DOS)的功能,来调用OS操纵硬件工作。目前,OS除了上述功能外,通常已经包含了日常工作所需要的应用软件在内了。

转载于:https://www.cnblogs.com/lin-jing/p/8265701.html

菜鸟笔记 -- Chapter 1 计算机从0到1相关推荐

  1. 菜鸟笔记 -- Chapter 6.4.2 详解继承

    6.4.2  详解继承 6.4.2.1  继承入门 继承使得程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性.基本思想是基于某个父类 ...

  2. 菜鸟笔记(一) - Java常见的乱码问题

    2019独角兽企业重金招聘Python工程师标准>>> 本文将介绍一种Java Web/Api 开发常见的乱码问题. 前提摘要:在学习Java Web的过程中,乱码问题是经常遇到的, ...

  3. php入门公开课,【PHP公开课|送你一篇有关laravel入门教程的php菜鸟笔记】- 环球网校...

    [摘要]PHP作为一种超文本预处理器,已经成为了我们常用的网站编程语言,并且结合了C语言,Java等我们常见的编程语言,所以,有很多web开发领域的新人都看中了他的使用广泛性,有很多人都想了解php的 ...

  4. 《Real-Time Rendering》第四版学习笔记——Chapter 9 Physically Based Shading(一)

    一.光的物理特性 光与物体的交互形成了基于物理着色的基础. 在物理层面上,光的模型为电磁横波.每个波都有一个单一的波长λ\lambdaλ.具有单一波长的光叫单色光(monochromatic ligh ...

  5. 计算机组成与设计chapter3,Chapter 1 计算机概要与技术

    <Chapter 1 计算机概要与技术>由会员分享,可在线阅读,更多相关<Chapter 1 计算机概要与技术(66页珍藏版)>请在人人文库网上搜索. 1.电子科技大学计算机科 ...

  6. 《Real-Time Rendering》第四版学习笔记——Chapter 9 Physically Based Shading(二)

    上接文章:<Real-Time Rendering>第四版学习笔记--Chapter 9 Physically Based Shading(一) 六.微观几何 每个可见的表面点都包含了很多 ...

  7. 菜鸟笔记-DuReader阅读理解基线模型代码阅读笔记(八)—— 模型训练-训练

    系列目录: 菜鸟笔记-DuReader阅读理解基线模型代码阅读笔记(一)--数据 菜鸟笔记-DuReader阅读理解基线模型代码阅读笔记(二)-- 介绍及分词 菜鸟笔记-DuReader阅读理解基线模 ...

  8. 软考-软件设计师 笔记一(计算机组成与体系结构)

    本栏博客目录 软考-软件设计师 笔记一(计算机组成与体系结构) 软考-软件设计师 笔记二(操作系统基本原理) 软考-软件设计师 笔记三(数据库系统) 软考-软件设计师 笔记四(计算机网络) 软考-软件 ...

  9. php laravel 入门教程,PHP语言菜鸟笔记,laravel 入门教程

    本文主要向大家介绍了PHP语言菜鸟笔记,laravel 入门教程,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 安装 Laravel: 查看laravel包: composer sea ...

最新文章

  1. JAVA生成不重复随机数算法
  2. python 函数练习集锦
  3. java二分查找法_java算法之二分查找法的实例详解
  4. php接口调用实例源代码,小蚂蚁学习APP接口开发(7)—— APP接口实例——读取缓存方式开发APP接口的代码案例...
  5. V星入侵(V 2009)第一季全集下载
  6. golang 并发实践
  7. 数据结构 - 二叉树
  8. Java,JavaFX的流畅设计风格拨动开关
  9. python中seaborn_python的seaborn模块
  10. 微软、英特尔和高盛牵头成立供应链安全工作组
  11. 【Kindle】Kindle免费推送网
  12. Go http Server
  13. Tensorflow入门(二)文本自动生成
  14. GNSS 周跳探测方法 之 TurboEdit
  15. android 视频做背景图片,视频后面怎么加背景图片?安卓手机给视频添加背景图片的方法...
  16. vue element-ui 日期弹出框右侧被遮挡
  17. db2 reorg详解
  18. 深度挖掘:FIashGet下载隐藏链接[转]
  19. ubuntu14.04系统下对SD卡分区
  20. 上百本中文书籍中对《人月神话》的引用(8)

热门文章

  1. MAC 电脑怎么找到 host 文件
  2. WIN32 常见IPC方式
  3. 小米游戏本装苹果网卡BCM943224PCIEBT2BX
  4. 金仓数据库KingbaseES之存储过程的RETURN语句
  5. Loadrunner 2021 入门
  6. 区块链赋能供应链金融|应用优势与四类常见模式
  7. 计算机的硬盘和光驱的接口是什么类型的接口,硬盘现在有哪些接口类型,各自有什么差异?-faq排名-迷你兔...
  8. CSS 计数器之 counters()
  9. 华容道06--屏幕点击事件和角色间的碰撞
  10. 诺霉素(DNR)、P-糖蛋白抑制剂5-溴粉防己碱(5-BrTet)与磁性纳米颗粒复合纳米材料(Fe3O4-MNPs-DNR-5-BrTet)