计算机核心组成原理

1、为啥要学习编程语言

  现在一般学习的编程语言例如Python,是一种程序员和操作系统之间的交流介质,编程语言可以编写程序,程序运行在操作系统上面。然而程序员编程的本质是想直接和计算机进行交流,实现控制计算机的目的。想要让计算机为你工作,就需要掌握编程语言,了解操作系统和计算机的组成结构以及工作原理等。

2、计算机的组成结构

上图为计算机的硬件组成,可以形象的类比为人类:

cpu是人的大脑,负责运算

内存是人的记忆,负责临时存储

硬盘是人的笔记本,负责永久存储

输入设备是耳朵或眼睛,负责接收外部的信息传给cpu

输出设备是你的表情,负责经过处理后输出的结果

以上所有的设备都通过总线连接,总线相当于人的神经

1、处理器

处理器的工作流程为,从内存中取指令>>解码>>执行,周而复始,知道程序被执行完成。

每一种架构处理器都有专门的指令集,所以一种指令集不能用于另一种架构的指令集。

处理器的执行速度远快于内存读取指令的速度,为了减小这个速度差,处理器内部都会有寄存器来保存关键变量和临时数据。

寄存器也就是L1缓存,解决CPU、内存、硬盘之间的速度差 ,优点速度快,缺点临时存储空间小。

1.1 寄存器

四种寄存器:通用寄存器,程序计数器,堆栈指针,程序状态字寄存器(最重要)

*程序状态字寄存器(Program Status Word,PSW),这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户通常读入整个PSW,但是只对其中少量的字段写入。在系统调用和I/O中,PSW非常重要。

1.2 内核态与用户态:

内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)

用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),当然,在用户态下,将PSW中的模式设置成内核态也是禁止的。

应用软件工作在CPU的用户态,操作系统可调用硬件工作在CPU 的内核态,这两种状态工作中不断切换。在时间多路复用的CPU中,操作系统会经常中止正在运行的某个程序并启动(或再次启动)另一个程序。每次停止一个运行着的程序时,操作系统必须保存所有的寄存器,这样在稍后该程序被再次运行时,可以把这些寄存器重新装入。

1.3 处理器设计演变

最开始取值、解码、执行这三个过程是同时进行的,这意味着任何一个过程完成都需要等待其余两个过程执行完毕,时间浪费。后来被设计成了流水线式的设计,即执行指令n时,可以对指令n+1解码,并且可以读取指令n+2,完全是一套流水线。超变量cpu,比流水线更加先进,有多个执行单元,可以同时负责不同的事情,比如看片的同时,听歌,打游戏。两个或更多的指令被同时取出、解码并装入一个保持缓冲区中,直至它们都执行完毕。只有有一个执行单元空闲,就检查保持缓冲区是否还有可处理的指令。

这种设计存在一种缺陷,即程序的指令经常不按照顺序执行,在多数情况下,硬件负责保证这种运算结果与顺序执行的指令时的结果相同。

1.4 多线程和多核芯片

多线程:一个cpu中的处理逻辑增多,intel公司首次提出,称为多线程(multithreading)或超线程(hyperthreading),对用户来说一个有两个线程的cpu就相当于两个cpu,我们后面要学习的进程和线程的知识就起源于这里,进程是资源单位而线程才是cpu的执行单位。多线程运行cpu保持两个不同的线程状态,可以在纳秒级的时间内来回切换,速度快到你看到的结果是并发的,伪并行的,然而多线程不提供真正的并行处理,一个cpu同一时刻只能处理一个进程(一个进程中至少一个线程)

多核芯:除了多线程,还出现了傲寒2个或者4个完整处理器的cpu芯片,如下图。要使用这类多核芯片肯定需要有多处理操作系统。

2、存储器

存储器的分层结构

2.1 寄存器即L1缓存

用与cpu相同材质制造,与cpu一样快,因而cpu访问它无时延,典型容量是:在32位cpu中为32*32,在64位cpu中为64*64,在两种情况下容量均<1KB。

2.2 高速缓存为L2缓存

第一级缓存称为L1总是在CPU中,通常用来将已经解码的指令调入cpu的执行引擎。另外往往设计有二级缓存L2,用来存放近来经常使用的内存字。L1与L2的差别在于对cpu对L1的访问无时间延迟,而对L2的访问则有1-2个时钟周期(即1-2ns)的延迟。

2.3 内存

内存(RAM)是存储系统的主力,目前容量一般为8G以上,特点是易失性,断电后数据全部消失。

2.4 非易失性随机访问存储(ROM)的特点是断电后存储内容不会消失,只能读取不能写入,速度快而且便宜,在有些计算机中,用于启动计算机的引导加载模块就存放在ROM中,另外一些I/O卡也采用ROM处理底层设备的控制。

2.5 EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,特点是可写入,但是写入速度比内存慢比磁盘速度快,擦除写入次数过多会有磨损。闪存可用于替代磁盘,应用广泛。

2.6 CMOS,存储特点是有易失性,常用于计算机中存储时间日期以及配置信息,耗电少,电池可供电很久,所以常配电池工作。

3、磁盘

3.1 磁盘主要由盘片,机械臂组成,工作过程中盘片告诉转动,机械臂控制磁头基础盘片读取或写入数据。

3.2 扇区是磁头在磁道上可读取的一段区域,扇区是磁盘级别的最小读写单位:512Bytes,操作系统级别的最小读写单位是:1block=8*512Bytes,操作系统级别的最小读写单位是:1block。

3.3 如图,每个扇区垂直面上可读取到的磁盘区域为柱面,在windows系统中,划分磁盘分区可以说是以柱面为单位。

3.4 平均寻道时间是机械臂从一个柱面随机转到另一个柱面寻找磁道的时间,跟磁盘转速有关,平均延迟时间是找到磁道后找到数据的时间,也跟磁盘转速有关。

3.5 虚拟内存:许多计算机支持虚拟内存机制,该机制使计算机可以运行大于物理内存的程序,方法是将正在使用的程序放入内存取执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存,在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)

4、磁带

在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。(常见于大型数据库系统中)

5、I/O设备

I/O设备一般包括两个部分:设备控制器和设备本身

控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。

控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口

设备本身:有相对简单的接口且标准的,这样大家都可以为其编写驱动程序了。要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统。必须把设备驱动程序安装到操作系统中。

6、总线

北桥即PCI桥:连接高速设备

南桥即ISA桥:连接慢速设备

7、计算机的启动过程

BIOS:在计算机的主板上有一个基本的输入输出程序(Basic  Input Output system)

BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存RAM中。

启动流程

1.计算机加电

2.BIOS开始运行,检测硬件:cpu、内存、硬盘等

3.BIOS读取CMOS存储器中的参数,选择启动设备

4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)

5.根据分区信息读入bootloader启动装载模块,启动操作系统

6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI

参考:http://www.cnblogs.com/linhaifeng/p/6523843.html

egon写的已经太好了,so按照自己的思路写+摘录,方便自己查阅,感谢!

时间: 2024-11-03 00:57:51

计算机核心组成原理的相关文章

计算机核心期刊

计算机核心期刊排名 2013年07月05日 ? 综合 ? 共 6632字 ? 字号 小 中 大 ? 评论关闭 1 计算机学报    北京    中国计算机学会等 2 软件学报    北京    中国科学院软件研究所 3 计算机研究与发展    北京    中国科学院计算技术研究所等 4 自动化学报    北京    中国科学院等 5 计算机科学    重庆    国家科技部西南信息中心 6 控制理论与应用    广州    中国科学院系统科学研究所等 7 计算机辅助设计与图形学学报    北京 

计算机核心知识

核心课程 计算机体系结构 操作系统原理 计算机网络 算法与数据结构 编译原理 “核心课程”可能不限于以上,另外个人建议加一门“程序语言原理”(和编译原理不同) 做Web开发而不懂网络原理,有时会犯很低级的错误: 深入理解数据库,离不开操作系统.编译原理.数据结构等

计算机核心课单

离散数学Discrete Mathematics 数据结构Data Structure 数字电路与逻辑设计Digital Circuit and Logic Design 汇编语言程序设计Assembly Language Programming 数值分析Numerical Analysis 操作系统原理Operating System 接口技术 Interface Techniques 数据库系统原理Database System 计算机组成原理Computer Organization 计算

重学计算机组成原理(十)- &quot;烫烫烫&quot;乱码的由来

程序 = 算法 + 数据结构 对应到计算机的组成原理(硬件层面) 算法 --- 各种计算机指令 数据结构 --- 二进制数据 计算机用0/1组成的二进制,来表示所有信息 程序指令用到的机器码,是使用二进制表示的 存储在内存里面的字符串.整数.浮点数也都是用二进制表示的 万物在计算机里都是0和1,搞清楚各种数据在二进制层面是怎么表示的,是我们的必修课. 在实际应用中最常遇到的问题,也就是文本字符串是怎么表示成二进制的,特别是我们会遇到的乱码究竟是怎么回事儿 在开发的时候,所说的Unicode和UT

计算机的组成

1.什么是学会了 自己能将出来,帮别人讲会,张开嘴,勤动手 2.什么叫过目不忘 课前一定预习,交流讨论 1.计算机的组成 服务器(加强版的台式机) 运维的职责 网站数据不能丢 网 站7*24小时运行 升用户体验-访问的 运维人员的原则: 简 单,易用,高效====(简单粗暴) * 1u服务器(u表示服务器的厚度)1U=1.75英寸=4.445cm=4.45cm 服务器的分类: 刀片式(服务器)每一片是相当于一台服务器 塔式服务器:比较小 笔记本和式机的组成原理:cpu风扇,cup(主要计算)硬盘

02 计算机基础

仅为个人学习备忘,方便日后查阅   一.红帽认证培训 红帽5.0培训认证考试 基础(RHCE): RH033:基础 RH133: 操作系统管理 RH253:服务 红帽架构师(RHCA): RH401: RH423: (红帽自己的 LDAP) RH442: 系统调优 black art,硬件运行的基本原理,操作系统基本原理. 调优 (内存的使用,CPU的使用) RH436: 集群和存储 RHS333: 集群:基本的负载均衡集群,高可用集群,高性能集群 二.电脑是怎么运行的 程序如何运行 CPU只有

[java基础]计算机基础知识

计算机=硬件+软件 1.硬件 计算机核心:CPU.CPU是计算机运算和控制的核心,用来接收计算机指令和运行计算程序. 数据从硬盘加载到内存,CUP从内存读取数据进行运算.内存存取数据快,但是断电或者退出程序后,内存中相关的的数据会丢失. 硬盘(机械+固态):可以永久保存数据. 2.软件 软件是一系列按照特定顺序组织的计算机数据和指令的集合. 软件 = 指令+数据+文档(软件使用说明书) 系统软件(xp.win7.linux.Unix ) 应用软件(QQ.飞秋.凌波) 3.常见ODS命令 盘符:

关于计算机大概要了解的东西

我们知道计算机之父冯诺依曼提出了计算机由控制器.运算器.存储器.输入设备.输出设备组成.整个计算机核心的部分也就是控制器.运算器.存储器,今天就这三者做一些总结. 在CPU中有寄存器,寄存器负责将传入的数据暂时保存起来,用于计算,然后输出.CPU会从内存上取出指令,来执行相应的操作.因此指令必须在内存中,内存中必须要事先放好的指令.那么在电脑开机加电时会有一个芯片会映射指令到内存中. 下图是主板结构 下图为走线架构图 SATA是Serial ATA的缩写,即串行ATA.这是一种完全不同于并行AT

【转】给计算机专业大学生整理的书单

闲来无事,利用大半天的时间将自己对计算机课程的而看法整理成一张书单,希望对现在仍然迷茫的大学生有帮助.(转载请注明出处) 本人推荐的97%以上的书籍都是国外书籍,国内大学的教材还是别看了.切记,切记! 0.000 计算机科学导论 教材: 1.<编码:隐藏在硬件背后的语言> 2.<通灵芯片> 3.<D is for digital:What a well-informed person should know about computers and communications