学习c++内存操作之硬件介绍
来源:互联网 发布:android demo源码下载 编辑:程序博客网 时间:2024/06/06 03:08
在学习c++内存操作之前,首先需要了解一下c++内存操作的目的:主要是用来对数据进行空间分配,其重点在于数据和空间,而数据是用来被cpu进行操作的,空间是用来存储数据的。所以,要想了解内存的操作,需要补充一点关于cpu的工作过程的知识及存储器的基本概念。以下内容主要来源于百度百科的解释:
1.cpu的基本工作过程:
cpu从存储器或高速缓存存储器(cpu操作内存中常用数据的过渡)中取出指令,放入指令寄存器(是cpu的一部分),并对指令译码,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。
提取
解码
执行
写回
2.缓存
3.存储器
存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
按用途
根据存储器在计算机系统中所起的作用,可分为主存储器、辅助存储器、高速缓冲存储器、控制存储器等。
为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。
用途特点
高速缓冲存储器Cache 高速存取指令和数据存取速度快,但存储容量小
主存储器内存存放计算机运行期间的大量程序和数据存取速度较快,存储容量不大
外存储器外存存放系统程序和大型数据文件及数据库存储容量大,位成本低
4.寄存器、存储器及cache之间的区别
(转自http://wenku.baidu.com/view/536bc26ba45177232f60a246.html)
寄存器跟存储器有什么区别?
如仅讨论CPU的范畴 :寄存器是CPU内部存储单元,在cpu的内部,,寄存器只是用来暂时存储,是临时分配出来的,断电,后,里面的内容就没了,容量小,速度快,数目有限,CPU访问几乎没有任何延迟,分通用寄存器、特殊功能寄存器,寄存器是中央处理器内的组成部份。它跟CPU有关。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。存储器范围最大,它几乎涵盖了所有关于存储的范畴。你所说的寄存器,内存,都是存储器里面的一种。凡是有存储能力的硬件,都可以称之为存储器,这是自然,硬盘更加明显了,它归入外存储器行列,由此可见——。而通常说的存储器是独立于cpu之外的,,容量大,速度稍慢 ,比如内存,硬盘,光盘等。
从根本上讲,寄存器与RAM的物理结构不一样。一般寄存器是指由基本的RS触发器结构衍生出来的D触发, 就是一些与非门构成的结构,这个在数电里面大家都看过;而RAM则有自己的工艺,一般1Bit由六MOS管构成。所以, 这两者的物理结构不一样也导致了两者的性能不同。寄存器访问速度快,但是所占面积大。而RAM相反,所占面积小,功率低,可以做成大容量存储器,但访问速度相对慢一点。
一般数据在内存里面,要处理(或运算)的时候,读到寄存器里面,然后CPU到寄存器里面拿值,拿到运算核内部,算好了在送到寄存器里面,再到内存。
寄存器和cache区别
cache是一个高速小容量的临时存储器,可以用高速的静态存储器芯片实现,或者集成到CPU芯片内部,存储CPU最经常访问的指令或者操作数据。而寄存器不同,寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径,寄存器存放的是当前CPU环境以及任务环境的数据,而cahe则存放最近经常访问的指令和数据的.
把CPU比做大脑 寄存器就像你正在思考的问题,而cahe就是你的记忆(临时的)
大脑的其他部分存储了记忆,但是大脑直接处理比较慢则需要一个更加快的地方来临时存放你从大脑其他部分提取的记忆这个地方就是cahe
当然不一样,寄存器是CPU为了运算,存储关键数据的和临时数据的,cache是为了弥补CPU和内存的速度上的差异设置的缓存cache 是给cpu用的,Cache是存储内存中你用过的数据,而且尽量存储用的频繁的数据
寄存器是CPU为了运算,必须要有的临时存放数据的器件,而cache是为了弥补CPU和内存的速度上的差异设置的缓存
Register可以给Programer用,cache的速度在register与内存之间,所以叫他缓存,起到弥补CPU和内存的速度上的差异这个作用,但是register是为了运算而设置的临时存储单元,register是直接与CPU接触的,是程序员控制CPU的工具,cpu的cache就是高速缓存, 分一级和二级,全速和半速,空间相寄存器来说比较大 ,而register也就是寄存器,是cpu内部运算和执行指令时存放数据的存储器,相对cache来说,空间小很多。
内存解释:
内存既专业名上的内存储器,它不是个什么神秘的东西,它也只是存储器中的沧海一粟,它包涵的范围也很大,一般分为只读存储器和随即存储器,以及最强悍的高速缓冲存储器(CACHE),ROM:只读存储器应用广泛,它通常是一块在硬件上集成的可读芯片,作用是识别与控制硬件,它的特点是只可读取,不能写入。RAM:随机存储器的特点是可读可写,断电后一切数据都消失,我们所说的内存条就是指它了。CACHE是在CPU中速度非常块,而容量却很小的一种存储器,它是计算机存储器中最强悍的存储器。由于技术限制,容量很难提升,一般都不过兆http://www.doc88.com/p-251201232195.html
- 学习c++内存操作之硬件介绍
- C学习之------内存相关操作(1)
- C学习之------内存相关操作(2)
- C语言学习之 内存管理及数据结构操作
- STM32F407ZGT6之硬件介绍
- C语言嵌入式编程之:内存操作
- c 语言嵌入式之:内存操作
- 【Linux】LDD学习笔记——操作硬件——IO内存
- Linux驱动之----硬件操作
- Ok6410硬件操作之MMU
- Ok6410硬件操作之中断
- LCD驱动程序之硬件操作
- 【C/C++学习】之十五、内存管理
- 【C/C++学习】之十五、内存管理
- objective-c 学习之NSMutableDictionary介绍
- STM32F407学习之硬件认识
- ios学习之硬件测试
- 学习TQ2440之硬件篇
- Java私塾:Hive JDBC——深入浅出学Hive
- Microsoft Help Library 管理器安装-更改库位置-错误等总结(转)
- Can't connect to local MySQL server through socket
- 如何更优雅的实现ExtJS的前端MVC模式下一个App多个Controller的动态加载
- 飞鸽传书已经写了5年,还是老样子。
- 学习c++内存操作之硬件介绍
- Qt Graphics View Framework绘制直线
- ubuntu下DNS服务器配置
- Oracle查询表空间使用情况
- APK反编译
- struts小知识点
- c++ stl string 常用函数
- Android手机听筒和扬声器切换
- 抽象工厂模式