首页 > 代码库 > 计算机概论

计算机概论

计算机硬件  

一.计算机硬件的五大单元

  输入单元、输出单元、CPU内的控制单元、CPU内的算数逻辑单元、内存。

  其中,算术逻辑单元主要负责程序运算和逻辑判断。控制单元主要协调各组件和各单元间的工作。

 

二.计算机的常用单位

  大小单位:计算机依有没有通电来记录信息,所以理论上它只认识 0 与 1 而已。0/1 的单位我们称为 bit。但 bit 实在太小了, 并且在储存数据时每份简单的数据都会使用到 8 个 bits 的大小来记录,因此定义出 byte 这个单位,他们的关系为:

  1Byte=8bit,1K=1024Byte,M,G,T,P(1024小到大换算) 

进位制KMGTP
二进位10241024K1024M1024G1024T
十进位10001000K1000M1000G1000T

  速度单位:运算速度Mhz或Ghz,hz就是秒分之一。网络传输:Mbit/s,每秒多少Mbit。

 

三.主板构架

X86:主板上的芯片组分为两个桥接器:北桥负责链接速度较快的CPU、内存与显卡等组件,南桥负责链接速度较慢的周边接口,包括硬盘、USB、网卡等。

ARM:内存直接与CPU通信而不通过北桥,达到加速两者通信的目的。

 

四.CPU

  CPU为一个具有特定功能的芯片,里头含有微指令集,用来让计算机执行相应的功能。而CPU所处理的数据都是从内存读取来的。

  CPU的微指令集主要被分为两种设计理念:精简指令集(Reduced Instruction Set Computer)和复杂指令集(Complex Instruction Set Computer)。

  精简指令集:微指令集较为精简,每个指令的执行时间很短,完成的操作较为简单,指令执行的性能好,但是复杂的功能需要多个指令来完成。常见有Sun公司的SPARC系列,IBM的PowerPC系列,ARM系列。其中ARM是世界上使用范围最广的CPU。

  复杂指令集:每个小指令可以执行一些较低阶的硬件操作,指令数目多而复杂,每条指令的长度不同,每条指令花费的时间较长,但每条指令可以处理的工作较为丰富。常见有AMD、Intel、VIA等x86构架的CPU。

  CPU特点:

  1.多核CPU就是在CPU封装当中嵌入了两个以上的运算内核。

  2.不同CPU之间不能单纯以频率来判断运算性能,因为每个CPU的微指令集不同,构架也不一样,每次频率能够进行的工作指令数也不一样,所以频率仅能用来比较同款CPU的速度。

  3.CPU的外频指的是CPU与外部组件进行数据传输/运算的速度,常被超频的为外频

  4.CPU的倍频是CPU内部用来加速工作性能的一个倍数,外频和倍频相乘等于CPU的频率。

  5.北桥的总线称为系统总线,是内存传输的主要信道,速度较快。南桥就是输入输出(I/O)总线。

  6.北桥所支持的频率称为前端总线速度FSB,每次传输的位数则为总线宽度。

  7.总线频宽=FSB*总线宽度,即每秒可传递的最大数据量。常见的总线宽度有32/64位(bit)。

  8.与总线宽度相似,CPU每次可以处理的数据量称为字组大小(word size),现在计算机是32位还是64位主要依据CPU解析的字组大小。

 

五.内存

  个人计算机的内存主要组件是动态随机访问内存DRAM,通电时才能记录与使用,断电后数据就消失,因此也称为RAM挥发性内存。

  对于服务器而言,内存的容量有时比CPU的速度还重要,通常内存越大表示系统越快,这是因为系统不用常常释放一些内存的内部数据。

  如果将某些很常用的程序或数据放置到内存内部的话,那么CPU数据的读取就不需要通过北桥了,这就是二层缓存的设计概念。因为第二层缓存集成到了CPU内,因此这个L2内存的速度必须要与CPU的频率相同,DRAM的频率无法达到,就需要静态随机访问内存了。SRAM设计上是哟个晶体管数量较多,价格较高,不易做成大容量,速度快。

 

六.显卡

  显卡上面会有一个内存的容量,这个显卡内存容量将会影响到你的屏幕分辨率和色彩深度。

 

七.硬盘和存储设备

  硬盘其实是由许多的盘片、机械手臂、磁头与主轴马达所组成。

  实际的数据都是写在具有磁性物质的盘片上,读写主要通过机械手臂上的读取头(Head)来完成的。

  磁盘的最小存储单位是扇区(Sector),每个扇区的大小为512Byte,这个值是不变的。扇区组成的一个圆就是磁道(Track)。多硬盘上面,在所有盘片上面的同一磁道可以组成一个柱面(Cylinder),柱面也是一般分割硬盘时的最小单位。

  硬盘存储量计算公式=Head*Cylinder*Sector*512Byte(读取头数量*每个读取头负责的柱面数量*每个柱面所还有的扇区的数量*扇区的容量)

  硬盘上面有一个缓冲存储器,这个内存主要可以将硬盘内常使用的数据缓存起来,以加速系统的读写性能。

  使用操作系统正常关机方式才能够有较好的硬盘保养,因为它会让硬盘的机械手臂归位。

 

八.PCI适配卡

  如果用户有额外需要的功能卡,就能够将适配卡安插PCI接口插槽上。

 

九.  主板

  主板可以说是整部主机相当重要的一个部分,因为上面我们所谈到的所有组件都是安插在主板上面的。而主板上面负责沟通各个组件的就是芯片组,芯片组一般分为北桥与南桥。北桥负责CPU/RAM/VGA等的连接,南桥则负责PCI介面与速度较慢的I/O装置。

  I/O地址类似每个设备的门牌号码,每个设备都有它自己的地址。

  各设备通过IRQ中断信道告知CPU该设备的工作情况,以便CPU进行工作分配的任务。

 

计算机软件

一.  文字编码系统

  常用的英文编码表为ASCII系统,每个符号占用1B的记录,因此有256种变化。

  常见的中文编码表为Big5系统,每个中文字占用2B,理论上有65536种变化。

  为了解决乱码问题,国际组织ISO/IEC制定出UTF8(统一码)。

 

二.  机器程序与编译程序

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

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

  • 需要了解机器语言:机器只认识0与1,因此你必须要学习直接写给机器看的语言。
  • 需要了解所有硬件的相关功能函数:因为你的程序必须要写给机器看, 当然你就得要参考机器本身的功能,然后针对该功能去撰写程序码。例如,你要让DVD影片能够放映, 那就得要参考DVD光驱的硬件信息才行。万一你的系统有比较冷门的硬件,光是参考技术手册可能会昏倒。
  • 程序不具有可携性:每个CPU都有独特的微指令集,同样的,每个硬件都有其功能函数。 因此,你为A计算机写的程序,理论上是没有办法在B计算机上面运作的。而且程序码的修改非常困难,因为是机器码,并不是人类看的懂得程序语言。
  • 程序具有专一性:因为这样的程序必须要针对硬件功能函数来撰写, 如果已经开发了一支浏览器程序,想要再开发档案管理程序时,还是得从头再参考硬件的功能函数来继续撰写, 每天都在和“硬件”挑战。

  为了解决这个问题,计算机科学家设计出一种让人类看的懂得程序语言, 然后创造一种“编译器”来将这些人类能够写的程序语言转译成为机器能看懂得机器码, 如此一来我们修改与撰写程序就变的容易多了!目前常见的编译器有C, C++, Java, Fortran等等。

 

三.  操作系统

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

  操作系统也是一组程序,这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件--操作系统内核。

  操作系统内核程序所放置到内存当中的区块是受保护额,并且开机后就一直常驻在内存中。

  为了保护内核,并且让程序员比较容易开发软件,因此操作系统除了内核程序外,通常会提供一整组开发接口--系统调用层。

  操作系统只是在管理整个硬件资源,包括CPU、内存、输入输出设备及系统文件。如果没有其他的应用程序辅助,操作系统只能让计算机主机准备妥当而已。并无法运作其他功能。 

  应用程序的开发都是参考操作系统提供的开发接口,所以该应用程序只能在该操作系统上面运行而已,不可以在其他操作系统上面运行的。

  内核功能包括:系统调用接口、程序管理、内存管理、文件系统管理、设备驱动。

 

参考:

《鸟哥的Linux私房菜》

http://blog.csdn.net/u013181216/article/details/47664901

http://www.jiangpenghui.cn/250.html

 

计算机概论