1.内核诸如51/ARM/90/PIC/AVR.....有好多种的,况且内核历来不分类,由于每一家常均可以改内核,你应该问的是架构!!只有懂架构才能用什么片子都得心应手. 我详细的说一下吧. HARVARD(哈佛)架构:ROM(程序空间)与RAM(数据空间)分开,便于程序与数据的同时访问,减小程序运行时访问的瓶颈,提升数据吞吐. PRINCETON(普林斯顿)架构:采用通用计算机普遍使用的ROMRAM合二为一的方式,就是众所周知的冯诺依曼结构,程序指令存储地址和数据指令存储地址指向同一存储器不一样位置,所以程序指令和数据的宽度相同. 举例说明:以英特尔为例:MCS-51用的是哈佛架构,然后及产品16位的MCS-96就是普林斯顿架构.ARM公司卖的内核几乎可能是哈佛架构的.html
2.请问PIC单片机和AVR单片机是51内核的吗?react
不是,都有本身的C编译环境linux
3.STC51单片机和AT89S51的汇编语言同样吗?ios
内核和指令集都是同样的, 因此放心,另外建议你编辑的时候若是对执行时间要求不是很苛刻的话,尽可能使用C语言,毕竟通用性好且比较简单算法
但汇编程序也要会啊!这个能够直接与芯片交流呀!
4.AVR单片机是什么内核?
答:AVR单片机内核就是AVR内核,和51内核是不同的,若是内核同样的话,那它的汇编指令应该是同样的,实际上他们的汇编指令是编程
彻底不同的。AVR是美国ATMEL公司研发的,ATMEL公司有三大系列MCU,一种是老式的以8051内核的单片机,第二种是目前大量使用缓存
的以AVR内核的AVR单片机。第三种是目前高端的以ARM内核的微处理器。ARM已经不是单片机那么简单的概念了,差很少跟电脑CPU相似安全
了。如今手机上的CPU就是AVR的。网络
5.51系列单片机的区别与特色介绍 架构
8031/8051/8751是Intel公司早期的产品。
一、8031的特色
8031片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外接的程序存储器多为EPROM的2764系列。用户若想对写入到EPROM中的程序进行修改,必须先用一种特殊的紫外线灯将其照射擦除,以后再可写入。写入到外接程序存储器的程序代码没有什么保密性可言。
二、8051的特色
8051片内有4k ROM,无须外接外存储器和373,更能体现“单片”的简练。可是你编的程序你没法烧写到其ROM中,只有将程序交芯片厂代你烧写,并是一次性的,从此你和芯片厂都不能改写其内容。
三、8751的特色
8751与8051基本同样,但8751片内有4k的EPROM,用户能够将本身编写的程序写入单片机的EPROM中进行现场实验与应用,EPROM的改写一样须要用紫外线灯照射必定时间擦除后再烧写。
因为上述类型的单片机应用的早,影响很大,已成为事实上的工业标准。后来不少芯片厂商以各类方式与Intel公司合做,也推出了同类型的单片机,如同一种单片机的多个版本同样,虽都在不断的改变制造工艺,但内核却同样,也就是说这类单片机指令系统彻底兼容,绝大多数管脚也兼容;在使用上基本能够直接互换。人们统称这些与8051内核相同的单片机为“51系列单片机”,学了其中一种,便会全部的51系列。
6.内核包含中央运算单元+内部总线+指令解析+..........,内核有不少中,8051,Arm,Mips,power PC,这些都是表明人物,还有不少,不少
内核是软件或者硬件的基本核心部分,能够包含软件和硬件。如LINUX的内核就是软件的,是LINUX最基本的部分,其余软件是在内核的基础上发展。51内核是51系列兼容机的基本部分。包含指令系统、和基本的硬件,如内存结构等。其余加强型51单片机,就是在内核的基础上扩展功能。
系统性能并不等价于计算能力。较低的功耗、丰富的片内外设以及实时的信号处理能力对于大部分嵌入式应用来讲是最为重要的。传统的8位、16位单片机已经很好的处理了这类问题,可是随着当今嵌入式设计不断增加的功能需求和特殊要求,许多微控制器厂商开始抛弃他们传统的8位、16位单片机。可是选择32位处理器对于某些任务来可能并非最适宜的。下面咱们就讨论一下单片机的选型问题。
理解系统性能
MIPS(million instructions per second),是微控制器计算能力的表征。可是,全部的嵌入式应用不只仅是须要计算能力,因此应用的多样化决定了系统性能衡量方式的多样化,大部分参数都同等重要而且难于用一个参数来表示,咱们并不该该仅仅从MIPS就断定系统的好坏。也许某一应用因为成本的限制,须要一款高集成度的微控制器,该控制器须要多个定时器和多种接口。可是另外一个应用须要高的精度和快速的模拟转换能力。二者的共同点可能仅仅是供电部分,好比采用电池供电。对于一个实时的顺序处理应用来讲,通讯的失败可能会致使灾难性后果。这样的场合下就须要一个灵巧的控制器。这个控制器应当可以以正确的顺序处理任务,而且响应时间必须均衡。全部上述应用的共同问题可能就是按期的现场升级能力。
除了与具体的产品要求有关外,系统性能的衡量也能够考虑是否有容易上手、容易使用的开发工具、应用示例、齐全的文档和高效的支持网络。
系统性能的相关问题
1.传统8位单片机的局限
大多数工程师十分关注系统性能,由于愈来愈多的8位和16位单片机家族已经没法知足当今日益增加的需求。陈旧和低效的架构限制了处理能力、存储器容量、外设处理和低功耗要求。8位的处理器架构,好比805一、PIC1四、PIC1六、PIC1八、78K0和HC08是在高级语言(好比C语言)出现以前开发的,其指令集仅用于汇编开发环境。而且这类架构的中央处理单元(CPUs)缺少一些关键功能,好比16位的算数运算支持、条件跳转和存储器指针。
许多CPU架构执行一条指令须要若干时钟周期。Microchip的8位PIC家族执行一条最简单的指令须要4个时钟周期,这致使使用20M的时钟仅能达到5MIPS.对于其余CPU架构,好比8051内核。其执行一条指令至少须要6个时钟周期,这就使得实际的MIPS要比给定的时钟频率低不少。
上述代码是一个简单的C语言函数,表1列出了在三种不一样CPU架构上编译这段代码的相应结果。8051内核的执行时间几乎是PIC16内核的4倍,对于AVR架构更是达到了28倍。
一些半导体厂商解决了时钟分配问题,使得微控制器实现了单时钟周期指令。当时钟频率为100MHz时,Silicon Labs声称他们基于8位8051架构的微控制器可以达到100MIPS的峰值。可是,这里有几个问题:
第一,因为大部分指令须要两个时钟周期甚至更多,因此其实际能力接近于50MIPS;
第二,8051是基于累加器的CPU,全部须要计算的数据必须拷贝到累加器。查看8051处理器的汇编代码,能够发现65%-70%的指令用来移动数据。因为现代8位和16位单片机架构中有一系列和算术逻辑单元(ALU)相连的寄存器。所以,8051内核的50MIPS仅至关于现代8位和16位单片机架构的15MIPS.
第三,较老的CPU架构缺少对大容量存储器的支持。早在七十年代,很难想象须要超过64KB存储器的嵌入式应用,这使得许多CPU设计师选择16位的地址总线。所以,CPU、寄存器、指令集以及程序存储器和数据存储器的数据总线始终受此限制。
第四,在2006年,约有9%的8位嵌入式应用使用了64KB甚至更多的程序存储空间,这表明了8位MCU市场26%的收益。推测2009年,14%的8位嵌入式应用会表明36%的收益。而这14%的应用会使用64KB甚至更多的程序存储空间。
从系统性能的角度来看,全部这些使得较旧的8位MCU逐渐失去竞争力。
2.不适宜32位处理器的场合
旧式CPU架构没法知足当今的市场需求,为了解决这个问题,许多厂商升级至32位的处理平台。对于须要32位处理能力的应用来讲这无疑是最棒的选择,可是许多设计师转换到32位平台并不是最正确的选择。使用32位MCU来解决8位和16位单片机的自身限制将会致使太高的成本。
大部分32位微控制器没法提供高速、高分辨率的模数(ADC)转换,EMC性能一般较低,且ESD保护较弱。而8位和16位单片机在这些方面优点明显。另外,强的IO驱动能力,可供选择的多种内部、外部振荡器,无需外部器件的片内电压调整器等是8位和16位单片机的另外一些优势。
显然,32位CPU包含比任何8位和16位CPU都要多的数字逻辑单元,这致使了高的制形成本。虽然使用一些特殊的半导体工艺能够下降成本,可是弊端是会致使较高的漏电流和静态功耗。某些应用,像水表、燃气表、收费公路电子标签、安全系统等,在他们生命期中的大部分时间,CPU处于睡眠模式,即为中止状态。这类应用的电池寿命必须在5-10年,因此这状况中,不可能将CPU从8位或者16位升级至32位处理器。若是想要提高系统性能只有采用别的方法。
这里有几个定义须要说一下,
外设,顾名思义,就是IC芯片所接的可以与IC通讯的外部设备。早起因为IC集成工艺不发达,不少东西都是外设的,在此以DSP芯片为例,好比PWM、ADC、CAN等等,
本来都是须要芯片外接的,即便是如今,仍然有独立的ADC芯片,好比ADS8364等等,可是如今,PWM、ADC等等东西都已经集成在DSP芯片内,固然,
不管如何,芯片总仍是会须要外接一些设备实现某种系统,为了与那些外设相区别,就将集成在芯片内,可是又不属于芯片自己(好比DSP,是一种微处理器,
所以芯片中不属于微处理器的部分都是外设)的称为“片上外设”。
片内、外设是两个概念,片内指作成芯片的集成电路内部,简称片内;外设是外部设备的简称,是指集成电路芯片外部的设备。集成电路芯片与外部设备的链接通常须要专门的接口电路和总线的链接(包括控制总线路、地址总线和数据总线等)。
因为大规模集成电路的技术发展得很快,如今许多芯片在制造时已经可以将部分接口电路和总线集成到芯片内部。对于这部分电路与传统的接口电路和总线是有区别的,为了加于区别能够称之为片内外设,其含义是在集成电路芯片内部集成的用于与外部设备链接的接口电路和总线。
所以,简单的说,“片内外设”是芯片内部用于与外部设备链接的接口电路和总线。
先附上一张计算机硬件组成图片:
寄存器
寄存器是中央处理器内的组成部份。它跟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)和咱们一般用的“闪盘”,能够在线擦除。
从两个方面来回答:
一方面是cache的行为。Icache大多都是顺序取指,碰到分支指令也会跳转,而Dcache访问的模式变化比较大.也就是前者所说的pattern的问题.指令只有读和refill没有写,而数据有读也有写.最重要的是冯氏的结构是指令和数据分离.I和D在一块儿只有相互干扰.
另外一个方面就是,物理设计上考虑:
一个union的cache,同时须要数据和指令的访问,端口上是很难实现的。
因此通常在流水线的主干上,都是采用分离的icache和dcache.
非主干的L2 cache,从容量的角度考虑采用union的方式.
固然早期的也有不分离icache和dcache.由于早期的结构也简单.
整个系统的层次结构如图1所示,由ICache和DCache构成L1 Cache,以及和L1 Cache接口的L2 Cache,和L2 Cache接口的DRAM。其中L1 Cache和L2 Cache是在微处理器片内,而DRAM是做为主存,存在于片外。这跟目前主流的我的电脑的层次结构很类似。
cache高速缓冲存储器一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。存储器的高速缓冲存储器存储了频繁访问的RAM位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。若是存有该地址,则将数据返回处理器;若是没有保存该地址,则进行常规的存储器访问。由于高速缓冲存储器老是比主RAM存储器速度快,因此当RAM的访问速度低于微处理器的速度时,常使用高速缓冲存储器。
Cache(即高速缓冲存储器(Cache Memory),是咱们最常听到的一个词了。在老鸟们眼中,这个词或许已没有再谈的必要,由于他们对Cache从设计的必要性到工做原理、工做过程等等都已了如指掌了;而对菜鸟朋友们而言,这些未必就很清楚。那么,它们究竟是指的什么呢?不用急,下面就请随笔者一块儿来全面认识Cache。
为何要设计Cache?
咱们知道,电脑的内存是以系统总线的时钟频率工做的,这个频率一般也就是CPU的外频(对于雷鸟、毒龙系列的处理器,因为在设计采用了DDR技术,CPU工做的外频为系统总线频率的两倍)。可是,CPU的工做频率(主频)是外频与倍频因子的乘积。这样一来,内存的工做频率就远低于CPU的工做频率了。这样形成的直接结果是:CPU在执行完一条指令后,经常须要“等待”一些时间才能再次访问内存,极大降了CPU工做效率。在这样一种状况下,Cache就应运而生了!
CACHE:Cache是一种特殊的存储器,它由Cache 存储部件和Cache控制部件组成。Cache 存储部件通常采用与CPU同类型的半导体存储器件,存取速度比内存快几倍甚至十几倍。而Cache 控制器部件包括主存地址寄存器、Cache 地址寄存器,主存—Cache地址变换部件及替换控制部件等。至于它们各自又是怎样工做的、有何做用等等,我想咱们就没有必要作进一步的研究,知道通常Cache分为L1 Cache(其中又分为数据Cache、代码Cache)、L2 Cache就好了。
咱们知道,CPU运行程序是一条指令一条指令地执行的,并且指令地址每每是连续的,意思就是说CPU在访问内存时,在较短的一段时间内每每集中于某个局部,这时候可能会碰到一些须要反复调用的子程序。电脑在工做时,把这些活跃的子程序存入比内存快得多的Cache 中。CPU在访问内存时,首先判断所要访问的内容是否在Cache中,若是在,就称为“命中”,此时CPU直接从Cache中调用该内容;不然,就称为“不命中”,CPU只好去内存中调用所需的子程序或指令了。CPU不但能够直接从Cache中读出内容,也能够直接往其中写入内容。因为Cache的存取速率至关快,使得CPU的利用率大大提升,进而使整个系统的性能得以提高
早在486时代,主板上就设计了Cache插槽,用户能够根据须要本身配置Cache;586级的CPU芯片中已集成了部分Cache,同时还保留了Cache插槽供用户扩充,而到了Pentium Ⅱ时代后,Cache已所有集成到了CPU芯片中,主板上再也没有Cache插槽。如今比较流行的CPU芯片中通常集成了至少16KB的代码Cache 和16KB的数据Cache(做为L1 Cache),以及至少64KB的L2 Cache。
有的朋友可能会问,既然Cache的做用如此重要,那为么不把电脑的所有内存都变为Cache,那样不是更好吗?其实对于这个问题,撇开价格因素,单就其实用性而言也是没有必要的,毕竟,电脑在执任务时,那种使用频率很是高的子程序或指令不是不少的,所以那些使用频率不过高的内容只须保存在速度相对较低的内存中就能够了!
在实际应用中,Cache,尤为是L2Cache对系统的性能,特别是对浮点运算能力有较大的影响。而咱们知道,大部分游戏的流畅运行须要频繁的浮点运算。所以,CPU运行游戏的性能的好坏与L2Cache的容量与速度有很大关系。
地址映像
·地址映像
所谓映象问题是指如何肯定Cache中的内容是主存中的哪一部分的拷贝,即必须应用某种函数把主存地址映象到Cache中定位,也称地址映象。当信息按这种方式装入Cache中后,执行程序时,应将主存地址变换为Cache地址,这个变换过程叫做地址变换。地址映象方式一般采用直接映象、全相联映象、组相联映象三种
一、直接映像
是指每一个主存页只能复制到某一固定的Cache页中。直接映像的规律是:将主存的2048页分为128组,每组有16页,分别与Cache的16页直接对应,即主存的第0页、第16页、第32页……只能映像到Cache的第0页。
二、全相联映像
全相联映像是指主存的每一页能够映像能够映像到Cache的任意一页。
三、组相联映像
组相联映像是直接映像与全相联映像的折中方案,它将Cache分为若干组,如8组;每组若干页,如2页;同时将主存分为若干组,如255组;每组内的页数与Cache的组数相同,如8页。组相联映像的规律是主存中的各页与Cache的组号有固定的映像关系,但可自由映像到对应的Cache组中的任意一页。即组间采用直接映像,而组内的页为全相联映像。
当CPU访问Cache未命中时,应从主存中读取信息,同时写入Cache。若Cache未满,则直接写入;若Cache已满,则须要进行替换。替换机构由硬件组成,并按替换算法进行设计,其做用是指出替换的页号。经常使用的替换算法有先进先出算法(FIFO)和近期最少使用算法(LRU)。
一、读操做
访存时,将主存地址同时送主存和Cache,一则启动对主存的读操做,二则在Cache中按映像方式从中获取Cache地址,并将主存标记与Cache标记比较:若相同,则访问命中,从Cache中读取数据。由于Cache速度比主存速度快,因此不等主存读操做结束,便可继续下一次访存操做;若不相同,则访问未命中,则从主存中读取数据,并考虑是否按某种替换算法更新Cache某页的内容。
二、写操做
将数据写入主存有两种方法,写回法和些直达法。
写回法:信息暂时只写入Cache,并用标志加以注明,直到该页内容需从Cache中替换出来时,才一次写入主存。优势是操做速度快,缺点是写回主存前,主存中没有这些内容,与Cache不一致,易形成错误。
写直达法:信息在写入Cahce时也同时写入主存。优势是主存与Cache始终保持一致,但速度慢。
缓存(cached)是把读取过的数据保存起来,从新读取时若命中(找到须要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把再也不读的内容不断日后排,直至从中删除。
缓冲(buffers)是根据磁盘的读写设计的,把分散的写操做集中进行,减小磁盘碎片和硬盘的反复寻道,从而提升系统性能。linux有一个守护进程按期清空缓冲内容(即写如 磁盘),也能够经过sync命令手动清空缓冲。举个例子吧:我这里有一个ext2的U盘,我往里面cp一个3M的MP3,但U盘的灯没有跳动,过了一下子(或者手动输入sync)U盘的灯就跳动起来了。卸载设备时会清空缓冲,因此有些时候卸载一个设备时要等上几秒钟。
修改/etc/sysctl.conf中的vm.swappiness右边的数字能够在下次开机时调节swap使用策略。该数字范围是0~100,数字越大越倾向于使用swap。默认为60,能够改一下试试。二者都是RAM中的数据。简单来讲,buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的。
buffer是由各类进程分配的,被用在如输入队列等方面,一个简单的例子如某个进程要求有多个字段读入,在全部字段被读入完整以前,进程把先前读入的字段放在buffer中保存。
cache常常被用在磁盘的I/O请求上,若是有多个进程都要访问某个文件,因而该文件便被作成cache以方便下次被访问,这样可提供系统性能。
一般人们所说的Cache就是指缓存SRAM。 SRAM叫静态内存,“静态”指的是当咱们将一笔数据写入SRAM后,除非从新写入新数据或关闭电源,不然写入的数据保持不变。
有了高速缓存,能够先把数据预写到其中,须要时直接从它读出,这就缩短了CPU的等待时间。高速缓存之因此能提升系统的速度是基于一种统计规律,主板上的控制系统会自动统计内存中哪些数据会被频繁的使用,就把这些数据存在高速缓存中,CPU要访问这些数据时,就会先到Cache中去找,从而提升总体的运行速度。通常说来,256K的高速缓存能使整机速度平均提升10%左右。
主板上一般都会提供256K到1M的缓存。在CPU内部也有高速缓存,如486CPU有8K的高速缓存,Pentium有16K的高速缓存。Pentium II有32K 一级缓存,AMD K6-2中有64K的一级Cache,AMD K6-3中有64K 的一级 Cache,和256K 的二级Cache,Cyrix MII 中有64K的Cache。
为了区分它们,CPU内部的缓存叫内部高速缓存(Internal Cache)或一级高速缓存,主板上的缓存叫外部高速缓存(External Cache)或二级高速缓存。不过如今的Pentium II 的CPU已经将主板上的二级缓存封装在CPU的盒子中,AMD K6-3的CPU内部也集成了256K的二级Cache,对于这类CPU来讲,主板上提供的已经是三级缓存了。