计算机硬件基础-CPU

提示:计算机硬件基础入门必知-CPU


文章目录

  • 计算机硬件基础-CPU
  • 前言
  • 一、基础内容?
    • 1.CPU制作过程
    • 2.CPU原理
    • 3.CPU基本组成
      • 3.1CPU基本组成元素
      • 3.2超线程
    • 4.存储器的层次结构
    • 5.CPU的缓存
    • 6.CPU的乱序执行
    • 7.NUMA

前言


一、基础内容?

1.CPU制作过程

制作过程:

http://www.360doc.com/content/19/0601/18/45644076_839664298.shtml

2.CPU原理

CPU(Central Processing Unit),中文翻译为中央处理器,负责执行用户和操作系统下发的指令。CPU是计算机中最为核心的部分,经常被比作计算机的大脑。CPU只能接受01二进制语言,0和1用来控制高低电位。比如,一个加法运算,在x86处理器上的的二进制代码为:

01001000 00000001 11000011

这样一行代码被称为机器码,它执行了加法操作。除了这样的加法,CPU的电路还要实现很多其他指令,如存取内存数据,进行逻辑判断等。不同厂商的电路设计不同,在电路上所能进行的二进制码不同。某类CPU能支持一种指令集(instruction set architecture)。指令集相当于一种设计图纸,规定了一种CPU架构实现哪些指令。参照指令集,硬件开发人员只需要关心如何设计电路,软件开发人员只关心如何用01机器码实现软件功能。比较常见的指令集有x86、ARM、MIPS、SPARC、Power等。x86和ARM被广泛应用在我们身边的电子产品上,相对比较知名,此外,龙芯实现了MIPS,IBM小型机则采用Power指令集。

3.CPU基本组成

3.1CPU基本组成元素

  • Control Unit(CU)起协调管理功能。
  • Arithmetic Logic Unit(ALU)接受控制单元的命令,负责进行加减乘与或非运算。所有数据都存放在寄存器(Register)里。
  • 寄存器以极高的速度与CU和ALU交互,通常小于1纳秒。从寄存器的名字可以看出来,里面的数据是临时寄存的,这些数据和指令会被ALU和CU拿来立即进行计算。如果寄存器没有CPU想要的数据,CPU会去内存或硬盘中读取。
  • CPU通过Bus(总线)读取内存或其他设备的数据。计算机中有多条总线(数据、地址、控制)。
  • PC程序 计数器(记录当前指令的地址)
  • MMU内存管理单元

3.2超线程

超线程(四核八线程):一个ALU对应多个PC和Register

提示:可以避免线程上下文切换

4.存储器的层次结构

缓存层次:寄存器、L1、L2、L3、主存、磁盘、远程文件存储

CPU读取速度对比:

多核内存缓存架构:

5.CPU的缓存

CPU执行数据读取规则:内存-> L3-> L2-> L1-> 寄存器 (一级一级的拷贝)
cacheLine缓存行(64字节):CPU的数据读取是按块进行的,是因为程序局部性的原理决定的,还有发挥总线一次读取更多数据的能力。
缓存一致性:总线锁 或 缓存一致性协议(MESI Cache)

MESI:Cpu每个CacheLine标记四种状态。有些无法被单个缓存行的数据,依然使用总线锁。

伪共享:多核CPU读取数据使用缓存行时,有可能读取不相干的数据,造成多线程缓存同步时候,效率底下
缓存行对齐:对于一些数字敏感,存在多线程竞争访问,为了保证不发生伪共享,可以使用缓存行对齐当时编程
Java:jdk8加入@Contended注解,缓存行对齐。

6.CPU的乱序执行

CPU指令执行是乱序执行,除非指令有前后依赖关系。
CPU避免指令重排序:内存屏障,总线锁

Intel:ifence mfence sfence原语,添加内存屏障

Java中JVM级别的内存屏障
LoadLoad屏障:举例语句是Load1; LoadLoad; Load2(这句里面的LoadLoad里面的第一个Load对应
Load1加载代码,然后LoadLoad里面的第二个Load对应Load2加载代码),此时的意思就是,在Load2
及后续读取操作从内存读取数据到CPU前,保证Load1从主内存里要读取的数据读取完毕。
StoreStore屏障:举例语句是 Store1; StoreStore; Store2(这句里面的StoreStore里面的第一个Store对应Store1存储代码,然后StoreStore里面的第二个Store对应Store2存储代码)。此时的意思就是在Store2及后续写入操作执行前,保证Store1的写入操作已经把数据写入到主内存里面,确认Store1的写入操作对其它处理器可见。
LoadStore屏障:举例语句是 Load1; LoadStore; Store2(这句里面的LoadStore里面的Load对应Load1加载代码,然后LoadStore里面的Store对应Store2存储代码),此时的意思就是在Store2及后续代码写入操作执行前,保证Load1从主内存里要读取的数据读取完毕。
StoreLoad屏障:举例语句是Store1; StoreLoad; Load2(这句里面的StoreLoad里面的Store对应Store1存储代码,然后StoreLoad里面的Load对应Load2加载代码),在Load2及后续读取操作从内存读取数据到CPU前,保证Store1的写入操作已经把数据写入到主内存里,确认Store1的写入操作对其它处理器可见。

7.NUMA

UMA技术
UMA是并行计算机中的共享存储架构,即物理存储器被所有处理机均匀共享,对所有存储字具有相同的存取时间。每台处理机可以有私用高速缓存,外围设备也以一定形式共享。UMA技术适合于普通需求和多用户共享时间的应用,在时序要求严格的应用中,被用作加速单一大型程序的执行率。

NUMA技术
NUMA是用于多进程计算中的存储设计,存储读取取决于当前存储器与处理器的关联。在NUMA技术下,处理器访问本地存储器比非本地存储器(另一个处理器的本地存储器或者处理器共享的存储器)更快。

计算机硬件基础-CPU相关推荐

  1. 计算机硬件基础-----CPU缓存

    一.什么是缓存 一台电脑有两种内存 一种是动态随机存储器,它是在RAM( ram是芯片的运行内存)模块中使用的DRAM(Dynamic RAM),使用电容器来存储数据的内存需要动态地被电流刷新才能存储 ...

  2. 计算机硬件基础-----CPU超线程

    一.超线程 1.1 什么是线程 首先举个例子:CPU中渲染流水线相似,流水线都会处理大量的图形渲染,每一条流水线可以同时并行处理任务.cpu线程就相似于CPU的流水线,每一线程处理多个程序. cpu的 ...

  3. 计算机硬件基础-笔记

    1.python是什么? Python是一门编程语言 2.什么是编程语言?(*****) 只要是语言,那语言的本质都一样:语言是一种事物与另外一种事物沟通的介质 编程语言是程序员与计算机沟通的介质 3 ...

  4. 计算机硬件知识哪里学,计算机硬件基础知识 计算机硬件是由哪几部分组成的...

    在学习计算机的时候,自然就要对计算机的软硬件要了解,今天小编想要说的就是计算机硬件的相关知识,而重点所要说的就是计算机硬件的组成部分以及工作原理,有兴趣的朋友快来看一看吧. 计算机硬件基础知识--计算 ...

  5. BUAA(2021秋)计算机硬件基础(软件学院计组)P4——用Logisim实现流水线CPU(含测试数据供自测)

    计算机硬件基础(软件学院计组)P4--用Logisim实现流水线CPU 目录 计算机硬件基础(软件学院计组)P4--用Logisim实现流水线CPU 实验内容 实验要求 提交要求 题解 前言及其预备知 ...

  6. 计算机中央处理器相关知识,软考程序员考点计算机硬件基础知识之中央处理器CPU...

    下面希赛小编为大家整理的软考程序员考点计算机硬件基础知识之中央处理器CPU,希望能帮助学友们.具体内容如下: 中央处理器 中央处理器(CPU,Central Processing Unit)是一块超大 ...

  7. 计算机硬件价钱分配,电脑基础知识计算机硬件基础课件.ppt

    电脑基础知识计算机硬件基础课件 操作系统的概念 指直接控制和管理计算机的硬件和软件资源以便于有效的使用这些资源的程序. 操作系统分类 :单用户操作系统.批处理操作系统.实时操作系统.分时操作系统.网络 ...

  8. 软考网络工程师--计算机硬件基础

    计算机硬件基础在整个网络工程师考试中所占的比例在3%至11%之间,为2-8分. 主要考察知识点包括: 1.计算机结构(46%) 1.1.体系结构分类 1.2.系统组成 1.3.CPU特征        ...

  9. 【转】数据库软考笔记(一)第一章 计算机硬件基础知识笔记总结

    转自:https://blog.csdn.net/qq_36411874/article/details/115057569 目录 运算器:ALU.AC.DR.PSW 控制器:IR.PC.AR.ID ...

最新文章

  1. 信息保真度准则_设计保真度的新的非科学公式
  2. 洛谷 P2919 [USACO08NOV]守护农场Guarding the Farm
  3. 2.MongoDB基本操作
  4. linux调用函数和case,Shell篇(3)-单双引号 ,函数及case语句用法
  5. VisualStudio2019 DLL生成并使用教程(C++)最详细Demo教程
  6. 试验Boost在Vxworks上的应用日记 二
  7. jQuery操作元素内容的相关方法
  8. 论文投稿,遭遇身份歧视该咋办?
  9. Springboot的工作机制:2 @SpringBootApplication背后的秘密
  10. gis 数据框裁剪_【更新84篇】地理数据科学技术文章合集,欢迎大家点赞、在看、转发三连!...
  11. css3多变形,CSS3 clip-path polygon图形构建与动画变换二三事
  12. Volatility3用法
  13. android 中动态加载广告sdk
  14. 培训python的学校
  15. DynamoDB系列之--本地二级索引
  16. 利用vscode调试vue代码
  17. 分析:日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯 的一个。以下为4个嫌疑犯的供词, 问题
  18. 鸿蒙 使用hawk存储数据
  19. 线路负载及故障检测装置《我搜集的资料》
  20. SpringCloud学习笔记3:Spring Cloud Netflix 组件(五大神兽)

热门文章

  1. 小米正式宣布:这种手机以后买不到了…
  2. python火车票查询工具tkinter_python 3.6 tkinter+urllib+json实现火车车次信息查询功能...
  3. python web什么意思_理解Python的Web开发
  4. Java趣味问答题^_^
  5. 《Python机器学习及实践》----良/恶性乳腺癌肿瘤预测
  6. Six Sigma点滴
  7. 实用的搜索引擎技巧-写论文资料搜索
  8. 飘雪网吧专用XP系统 v7.0
  9. 【netcore】操作日志
  10. Macbook系统清洁工具Mac加速工具CleanMyMac安装简单清理彻底