计算机组成原理-1

编程语言的作用

语言作为人类交流的工具,它可以将我们脑海中的想法表达出来。编程语言的作用就是我们与计算机之间交流的语言。

操作系统和硬件的关系

操作系统说白了也就是软件,它可以操控计算机硬件。如果我们只有硬件而没有操作系统,是没办法使用的,程序用编程语言写程序,最终开发出一款软件,这些软件必须运行在操作系统的基础上。软件通过操作系统对系统硬件进行控制,从而实现功能。

应用程序、操作系统和硬件的关系

应用程序通过操作系统实现对计算机硬件的控制。

CPU->内存->磁盘

CPU是中央处理,运行速度最快,内存运行速度次之,磁盘运行速度最慢。数据从操作系统写入内存,内存可以向硬盘中写入数据也可以调出数据,也可以向CPU发送指令。
* CPU从内存中取指令-》解码啊-》执行*然后循环往复的过程。

cpu与寄存器

CPU向内存取指令操作时有一个时间差,因此需要一个运行速度介于两者之间的寄存器,将地址存入寄存器中。 因访问内存以得到指令或数据的时间比cpu执行指令花费的时间要长得多,所以,所有CPU内部都有一些用来保存关键变量和临时数据的寄存器,这样通常在cpu的指令集中专门提供一些指令,用来将一个字(可以理解为数据)从内存调入寄存器,以及将一个字从寄存器存入内存。cpu其他的指令集可以把来自寄存器、内存的操作数据组合,或者用两者产生一个结果,比如将两个字相加并把结果存在寄存器或内存中。

寄存器分类

1 通用寄存器
保存变量和临时结果。
2 程序计数器
保存了将要取出的下一条指令的内存地址。指令取 出后,程序计数器就被更新以便执行后期的指令。 3 堆栈指针
它指向内存中当前栈的顶端。
4 程序状态字寄存器(PSW)
这个寄存器包含了条码位、CPU优先级、模式、以及各种其他控制位。

用户态和内核态

用户态只从CPU中读出一部分指令集,并不能对计算机硬件进行全部的操作,从而限制了应用程序的功能。内核态是从CPU中读出全部指令集,对计算机硬件进行全部的操作。
内核态和用户态的切换方式为存储在PSW中的二进制位信息所决定。
用户态下工作的软件不能操作硬件,但是我们的软件比如暴风影音,一定会有操作硬件的需求,比如从磁盘上读一个电影文件,那就必须经历从用户态切换到内核态的过程,为此,用户程序必须使用系统调用(system call),系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。

寄存器——L1缓存

与CPU相同的材质。速度与CPU一样快,因而CPU访问它时无延迟,但是容量很小。
访问时间为1ns,典型的容量小于1KB

高速缓存——L2缓存

主要由硬件控制高速缓存的存取,内存中有高速缓存行按照0~64字节为行0,64~127为行1。最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。如果是,则称为高速缓存命中,缓存满足了请求,就不需要通过总线把访问请求送往主存(内存),这毕竟是慢的。高速缓存的命中通常需要两个时钟周期。高速缓存为命中,就必须访问内存,这需要付出大量的时间代价。由于高速缓存价格昂贵,所以其大小有限,有些机器具有两级甚至三级高速缓存,每一级高速缓存比前一级慢但是容易大。
缓存在计算机科学的许多领域中起着重要的作用,并不仅仅只是RAM(随机存取存储器)的缓存行。只要存在大量的资源可以划分为小的部分,那么这些资源中的某些部分肯定会比其他部分更频发地得到使用,此时用缓存可以带来性能上的提升。一个典型的例子就是操作系统一直在使用缓存,比如,多数操作系统在内存中保留频繁使用的文件(的一部分),以避免从磁盘中重复地调用这些文件,例如一个web页面的url地址转换为网络地址(IP)地址后,这个转换结果也可以缓存起来供将来使用。
缓存是一个好方法,在现代cpu中设计了两个缓存。第一级缓存称为L1总是在CPU中,通常用来将已经解码的指令调入cpu的执行引擎,对那些频繁使用的数据自,多少芯片还会按照第二L1缓存 。。。另外往往设计有二级缓存L2,用来存放近来经常使用的内存字。L1与L2的差别在于对cpu对L1的访问无时间延迟,而对L2的访问则有1-2个时钟周期(即1-2ns)的延迟。
内存:再往下一层是主存,此乃存储器系统的主力,主存通常称为随机访问存储RAM,就是我们通常所说的内存,容量一直在不断攀升,所有不能再高速缓存中找到的,都会到主存中找,主存是易失性存储,断电后数据全部消失
除了主存RAM之外,许多计算机已经在使用少量的非易失性随机访问存储如ROM(Read Only Memory,ROM),在电源切断之后,非易失性存储的内容并不会丢失,ROM只读存储器在工厂中就被编程完毕,然后再也不能修改。ROM速度快且便宜,在有些计算机中,用于启动计算机的引导加载模块就存放在ROM中,另外一些I/O卡也采用ROM处理底层设备的控制。
EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,但是与ROM相反,他们可以擦除和重写。不过重写时花费的时间比写入RAM要多。在便携式电子设备中中,闪存通常作为存储媒介。闪存是数码相机中的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了。
还有一类存储器就是CMOS,它是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,除此之外CMOS还可以保存配置的参数,比如,哪一个是启动磁盘等,之所以采用CMOS是因为它耗电非常少,一块工厂原装电池往往能使用若干年,但是当电池失效时,相关的配置和时间等都将丢失.**
这里写图片描述

磁盘结构

磁盘有磁头,磁道,扇区,柱面。每个磁头可以读取一段换新区域,称为磁道。把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面。每个磁道划成若干扇区,扇区典型的值是512字节。
数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间。
平均寻道时间
机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置。
平均延迟时间
机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间。
虚拟内存
许多计算机支持虚拟内存机制,该机制使计算机可以运行大于物理内存的程序,方法是将正在使用的程序放入内存取执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存,在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)。
PS:从一个程序切换到另外一个程序,成为上下文切换(context switch),缓存和MMU的出现提升了系统的性能,尤其是上下文切换。

磁带

在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。
I/O设备一般包括两个部分
设备控制器和设备本身。
控制器
是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。
控制器的功能
通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口
设备本身
有相对简单的接口且标准的,这样大家都可以为其编写驱动程序了。要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统。必须把设备驱动程序安装到操作系统中。

总线

北桥即PCI桥:连接高速设备
南桥即ISA桥:连接慢速设备
这里写图片描述

操作系统的启动流程

1 计算机加点
2 BIOS开始运行,检测硬件:CPU、内存、硬盘等。
3 BIOS读取CMOS存储器中的参数,选择启动设备。
4 从启动设备读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,最后两个为标志位)
5 根据分区信息读入bootloader启动装载模块,启动操作系统。
6 然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的驱动程序,操作系统就会将它们调入内核。然后初始有关的表格,穿件需要的进程,并在每个终端上启动登录程序或GUI。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值