对cpu和内存的简单理解

1.前端总线:

cpu利用总线来跟内存,硬盘,输入输出设备等进行数据交流

总线:总线就是一根根导线的集合

总线的种类: 数据(进行传输的数据),地址(地址进行寻址操作),控制总线(控制读写操作)


地址总线:

地址总线的宽度决定cpu的寻址能力,单次能寻找地址的最大容量

eg:

8086的寻址总线宽度为20,则它的寻址地址能力为: 2^20(byte)= 1MB,

如果是32根,则寻址地址能力最大为4GB.这也是32位系统内存最大支持4GB的原因.

如果是64根,则寻址地址能力最大为16EB,这也是现在普遍使用64位操作系统的原因.

注意:

1.寻址地址的根数是32位或者64位由操作系统决定,也就是说内存地址的空间大小受寻址地址的根数影响.

2.为什么寻址单位的是字节而不是位? 因为数据存储在内存或者磁盘中最小单位是字节.

2.i5和i7决定内核数,i5一般为(4核8线程), i7一般为(8核16线程),这里主要指cpu处理任务的能力.

为什么4核8线程指的是8线程而不是指8进程? 因为线程是cpu调度的基本单位,而进程是操作系统分配资源的基本单位,(详细信息可以参考进程和线程的区别!)

3.常用的存储单位:Byte,KB,MB,GB,TB,PB,EB,ZB,YB,BB,NB,DB(2^110Byte)

数据总线:

数据总线的宽度决定了cpu的单次数据传输量,也就是说数据传输的速度,或者说数据的吞吐量

数据总线的宽度为: 16, 则为16位, 则为2个字节

注意:

1.1个字节8位, 1 Byte = 8 bit

2.64位操作系统决定cpu的单次数据的传输量为8个字节.

控制总线:

控制总线的宽度决定了cpu对器件的控制能力,即读写操作.

补充

1.系统总线:前端总线(就是上面说的数据总线,地址总线,控制总线)和外部总线(用于连接各种外设控制芯片,比如io控制器)

2.内部总线:处理器内所有的结构单元相连,在cpu内部,寄存器和算术逻辑部件之间的通讯总线

2.内存

为什么说内存地址的空间大小受寻址地址的根数影响?

比如说内存的地址:0x00000~0xFFFFFFFF, 那么内存的大小: 2^4*8=4GB

假如寻址地址的根数为16,则最大寻址能力为2^16= 64KB,一次寻址的最大范围也就为64k,内存再大,一次寻址也找不完整个cpu.但是可以多次寻址,可是多次寻址会浪费一定的时间性能.

3.寄存器

寄存器是在cpu中从缓存,或者内存中取出放在cpu中需要处理的暂存数据.

高速缓存器: 内存地址和高速缓存之间有一个一一映射的关系,先将要执行的指令代码以及数据复制到高速缓存中去(这一步是由操作系统完成的)。而CPU直接从高速缓存中依次读取指令来执行。当高速缓存的数据用完或者找不到,操作系统会自动从内存中拷贝一份到高速缓存区.

寄存器分类:

1.通用寄存器

2.pc寄存器.

<1> 为指令指针寄存器,它指示CPU当前要读取指令的地址

<2> 在内存或者磁盘上,指令和数据没有任何区别,都是二进制信息

<3> CPU在工作的时候把有的的信息看作指令,有的信息看做数据,为同样的信息赋予了不同的意义

3.数据寄存器:

数据地址寄存器通常用来做数据计算的临时存储、累加、计数、地址保存等功能。定义这些寄存器的作用主要用于在CPU指令中保存操作数,在CPU中当做一些常规变量来使用。

4.浮点和向量寄存器

因为浮点数的存储以及运算的特殊性,CPU中专门提供浮点数寄存器来处理浮点数

目前的CPU它支持向量运算(向量运算在图形处理相关的领域用的非常多)。为了支持向量计算,系统也提供了众多的向量寄存器。

比如说: 1+1 = 2? cpu怎么操作?

  1. cpu会先从内存中将两个存储数据放在通用寄存器中
  2. 再使用运算器对这个数据进行处理,
  3. 并将处理后的数据返回给内存 .

扩展知识:

1>CPU在读取内存中的数据时先通过前端总线与北桥交互,北桥芯片将内存中的数据送到一级缓存中,

2>再由CPU通过内部总线将一级缓存中的数据取出放到指令寄存器里,然后执行,

3>这里怎么区分读或写?首先内存中的指令是组合好的,一条完整的指令是由操作码,地址码操作数组合完成,CPU根据操作码决定执行那些操作,在CPU指令集里读和写的指令集是区分开的,通过地址码选中对应的地址,将立即数写入,如果是读的话没有立即数!

这是个人的简单理解!如果错误之处!还请各位大佬指正!

参考的网站:https://www.jianshu.com/p/44afea340016

对cpu和内存的简单理解相关推荐

  1. 栈内存与堆内存的简单理解

    栈内存 栈内存存储的内容都是局部变量,而当局部变量的作用域结束后,该变量所占的内存就会被释放. 堆内存 堆内存中存放的为通过new产生的数组和对象实体(数组也可以理解为对象的一种),当对象被建立时,栈 ...

  2. 堆内存 和 栈内存的简单理解 (未完待续~)

    看一个例子: var a =3; var b = a; a=1; console.log(a,b); var arr1 = [1,2,3,4]; var arr2 = arr1; arr1.push( ...

  3. CPU和内存之间——地址映射(理解很重要)

    CPU和内存之间有三根总线,地址,数据,控制总线.CPU和内存之间用地址来查找数据,但是两者的地址并不总是一样的,CPU产生的是逻辑地址,而内存的就是物理地址.通常都是不一样的,所以需要地址映射. 正 ...

  4. 简单理解计算机内存乱序

    作者 | 后端技术小牛说   责编 | 张文 头图 | CSDN 下载自视觉中国 本文探讨了自己对内存一致性模型的理解,由于不可避免的需要和操作系统底层打交道,本文主要例子和代码是 C++ 和汇编语言 ...

  5. 理解CPU/寄存器/内存之间的关系

    CPU/寄存器/内存 因为要了解多线程,自然少不了一些硬件知识的科普,我没有系统学习过硬件知识,仅仅是从书上以及网络上看来的,如果有错误请指出来. CPU,全名Central Processing U ...

  6. 简单理解结构体的内存对齐

    学习总结 内存对齐三原则: 数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子 ...

  7. CPU核心数线程数、程序进程线程、并发并行的简单理解

    CPU核心数线程数.程序进程线程.并发并行.简单理解和区分 这篇文章是对上述感念的简单理解,想深入研究可以看看<计算机组成原理> CPU的核心数 线程数 当我们买电脑的时候,会看到CPU的 ...

  8. 【计算机系统】 信息在计算机中的表示和内存地址与空间的简单理解

    1. 信息在计算机系统中的表示 我们知道,信息在计算机系统中是以二进制的方式进行传送,存储的.那么信息在计算机系统中是如何表示的呢?在这里可分为数值信息和非数值信息两个方面进行讨论. 数据信息分类示意 ...

  9. 理解CPU/寄存器/内存三者关系

    CPU/寄存器/内存 CPU,全名Central Processing Unit(中央处理器).这是一块超大规模的集成电路,包含上亿的晶体管,是一台计算机的运算核心(Core)和控制核心(Contro ...

最新文章

  1. Python setup.py开发与安装
  2. 1.1 对象的概念及面向对象的三个基本特征
  3. HDU 4611 Balls Rearrangement 数学
  4. 善用Object.defineProperty巧妙找到修改某个变量的准确代码位置
  5. Mac OS使用技巧之十五:快捷方便的Mini Dock
  6. VMware “Transport(VMDB)error -44:Message”
  7. 今年面试,光靠技术肯定不行了!
  8. 【Elasticsearch】如何使用 Elasticsearch 6.2 搜索中文、日文和韩文文本 - 第 2 部分: 多字段
  9. 当自己颓废的时候怎么激励自己?
  10. rocket mq 监听端口_如何使用Jmeter实现MQ数据的发送和接收?性能测试实战篇
  11. c语言线性规划建模及求解,C语言大作报告线性规划求解基科3字班.doc
  12. VAssistX使用总结
  13. SQL2008卸载。
  14. 深度篇——人脸识别(二)  人脸识别代码 insight_face_pro 项目讲解
  15. C# 学习笔记-Chart控件使用
  16. php获取客户端IP和服务器端IP
  17. TbSchedule的简单使用及其配置
  18. 小程序外部样式类的使用
  19. 苹果手机上linux编程,iOS真机调试 - iOS学习笔记_Linux编程_Linux公社-Linux系统门户网站...
  20. 个人理解设计为何要多用组合,少用继承

热门文章

  1. android无法接收短信广播,android – 广播接收器不适用于短信
  2. 【Vapor】03 Chapter 5: Fluent Persisting Models
  3. 前后端数据交互——ajax技术
  4. 单目视觉SLAM和其它传感器结合的意义
  5. 自己的Flash作品(1)截图
  6. 销售管理的工作原理(ERP的工作原理5)------(转)
  7. 汽车电子常用英文单词
  8. C++ 哈希表 hash_map详解
  9. php实现一周课程发布,php中文网一周学会php直接课程开课时间公告
  10. 如何分析软件测试结果,软件测试结果对比