CPU,内核,寄存器,缓存,RAM,ROM的作用和他们之间的联系 !
一、计算机硬件组成图:

二、内核:
内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分,附上百科链接:内核_百度百科(http://baike.baidu.com/item/%E5%86%85%E6%A0%B8?fr=aladdin)
附一张内核体系结构照片

三、CPU:
中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。
它的功能主要是解释计算机指令以及处理计算机软件中的数据。
中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。
它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。寄存器寄存器是中央处理器内的组成部份。它跟CPU有关。
寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。
在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。
在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。存储器存储器范围最大,它几乎涵盖了所有关于存储的范畴。寄存器,内存,都是存储器里面的一种。凡是有存储能力的硬件,都可以称之为存储器,这是自然,硬盘更加明显了,它归入外存储器行列,由此可见——。
内存即专业名上的内存储器,包涵的范围很大,一般分为只读存储器(ROM)和随机存储器(RAM),以及最强悍的高速缓冲存储器(CACHE)。
只读存储器应用广泛,它通常是一块在硬件上集成的可读芯片,作用是识别与控制硬件,它的特点是只可读取,不能写入。
随机存储器的特点是可读可写,断电后一切数据都消失,我们所说的内存条就是指它了。
缓存CACHE缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。
因为缓存往往使用的是RAM(断电即掉的非永久储存),所以在用完后还是会把文件送到硬盘等存储器里永久存储。电脑里最大的缓存就是内存条了,最快的是CPU上镶的L1和L2缓存,显卡的显存是给显卡运算芯片用的缓存,硬盘上也有16M或者32M的缓存。
CACHE是在CPU中速度非常块,而容量却很小的一种存储器,它是计算机存储器中最强悍的存储器。由于技术限制,容量很难提升。
四、ROM、RAM的区别:
ROM(只读存储器或者固化存储器)RAM(随机存取存储器)ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。
ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。
RAM有两大类,一种称为静态RAM(Static RAM/SRAM),当数据被存入其中后不会消失。SRAM速度非常快,是目前读写最快的存储设备了。当这个SRAM 单元被赋予0 或者1 的状态之后,它会保持这个状态直到下次被赋予新的状态或者断电之后才会更改或者消失。但是存储1bit 的信息需要4-6 只晶体管。因此它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。
另一种称为动态RAM(Dynamic RAM/DRAM),DRAM 必须在一定的时间内不停的刷新才能保持其中存储的数据。DRAM 只要1 只晶体管就可以实现。DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很 多,计算机内存就是DRAM的。 DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,
不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用 得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。 ROM也有很多种,PROM是可编程的ROM,
PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修 改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。 最初,把只能读的存储器叫做ROM(Read Only Memory),并且掉电后数据不会丢失。由于不能改写,因而使用起来很不方便。随着技术的进步,在ROM中使用一些新技术,就可以使它具有可以编程的功能。比较早的是熔丝型的可编程ROM,由于是通过熔断熔丝来编程的,所以这类ROM编程后,就不能再写了,是一次性的(OTP)。
后来又出现了EPROM,是通过紫外线来擦除的,并且通过高压来编程,这类ROM上面一般有一个透明的石英玻璃窗,看上去挺漂亮的,它就是用来给紫外线照射的。后来又出现了EEPROM,不用紫外线照射就可以擦除,因而可以直接在电路中编程。另外还有FLASH ROM,又可分为NOR FLASH和NAND FLASH。FLASH ROM一般有一个特点,就是写数据时,可以将1改为0,而不能将0改为1,因而写数据前需要擦除,擦除时将所有数据置1。之所以依然叫做ROM,归纳一下:
大概有几个原因:①不能像RAM那样快速的写;
②可能需要特殊的擦写电压;
③可能需要特殊的擦写时序;
④可能需要在写之前进行擦除操作;
⑤擦写次数有限,不像RAM那样可以随意写而不损坏;
⑥掉电后数据不会丢失;
⑦有些可写的存储器只能写一次(OTP)。
举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦出可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据 (NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来 Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。 目前Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一快的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户 不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。 一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的“闪盘”,可以在线擦除。
简要总结:
cpu主要就是处理各种指令,运算、跳转、存取内存之内的。
这些指令所需的数据以及指令本身一般都是存储在ram中的。cpu必须将ram中的指令和数据取到cpu中的各种寄存器中,指令才能执行。
指令的地址存储在一个叫做PC的寄存器中,注意这边的PC不是个人电脑的意思,而是pointer of code的意思,即指令指针,而数据可以放在各种通用寄存器中。
cpu中还有很多其他寄存器,控制着cpu各种功能。汇编语言即是操作这些寄存器,完成各种运算任务。 现代高性能cpu内部一般都会有缓存,一般分为指令缓存和数据缓存。缓存的访问速度比外部ram要快很多,所以如果把一部分数据和指令存储在缓存中,cpu再从缓存中获取指令和数据能够提高cpu的速度。
可以被称作rom的东西很多,如pc主板上的rom芯片,pc关机后,rom的数据不会丢失,开机时先运行其中的bios程序,完成硬件配置和检测,之后会将磁盘第一个扇区中操作系统的引导程序装入内存,然后徐跳到引导程序。引导程序会进一步将操作系统存储在磁盘上的内核装入内存,最后执行内核程序。内核加载文件系统,并执行gui程序,便可以看到pc的桌面了。
计算机从硬件到操作系统再到应用层,《深入理解计算机系统》,即入门又足够深入。
拓展:
对于cpu来说,不管是读取ram或者rom,都不过是给一个地址,返回一个指令呗。只是rom中数据断电不会丢失,所以开机时会执行rom中程序,此时ram还没有初始化,还不能工作。当ram初始化完毕,会将之后的启动代码或者操作系统代码复制到ram中,接着跳到ram中执行
地址0到FFFFFFFF,可以统一编址,也可以分开。根据机器,有些机器可能还需要不同的指令去访问ram和rom。

浙公网安备 33010602011771号