计算机硬件介绍之CPU与多线程
一、CPU
1、、CPU的介绍
CPU 是计算机的核心。它主要和内存进行交互,从内存中提取指令并执行它。一个 CPU 的执行周期是从内存中提取第一条指令、解码并决定它的类型和操作数,执行,然后再提取、解码执行后续的指令。重复该循环直到程序运行完毕。
2、每个 CPU 都有一组特定的指令集
每个 CPU 都有一组特定的指令集,特定的指令集只能自己执行。所以,x86 的 CPU 不能执行 ARM 的程序并且 ARM 的 CPU 也不能执行 x86 的程序。
3、寄存器
由于访问内存获取执行或数据要比执行指令花费的时间长,因此所有的 CPU 内部都会包含一些寄存器来保存关键变量和临时结果。
特殊的寄存器
除了用于保存变量和临时结果的通用寄存器外,大多数计算机还具有几个特殊的寄存器,这些寄存器对于程序员是可见的。
- 程序计数器(program counter):程序计数器会指示下一条需要从内存提取指令的地址。提取指令后,程序计数器将更新为下一条需要提取的地址。
- 堆栈指针(stack pointer):它指向内存中当前栈的顶端。堆栈指针会包含输入过程中的有关参数、局部变量以及没有保存在寄存器中的临时变量。
- PSW程序状态字寄存器:用户程序通常可以读取整个PSW,但通常只能写入其某些字段。PSW 在系统调用和 I / O 中起着重要作用。
在时间多路复用(time multiplexing) 的 CPU 中,操作系统往往停止运行一个程序转而运行另外一个。每次当操作系统停止运行一个程序时,操作系统会保存所有寄存器的值,以便于后续重新运行该程序。
4、CPU提升性能的设计
为了提升性能, CPU 设计人员早就放弃了同时去读取、解码和执行一条简单的指令。许多现代的 CPU 都具有同时读取多条指令的机制。
流水线
例如,一个 CPU 可能会有单独访问、解码和执行单元,所以,当 CPU 执行第 N 条指令时,还可以对 N + 1 条指令解码,还可以读取 N + 2 条指令。像这样的组织形式被称为 流水线(pipeline)。
超标量(superscalar) CPU
比流水线更先进的设计是 超标量CPU,其设计如下:
两个或者更多的指令被一次性取出、解码并放入缓冲区中,直至它们执行完毕。只要一个执行单元空闲,就会去检查缓冲区是否有可以执行的指令。如果有,就把指令从缓冲区中取出并执行。
多数 CPU 都有两种模式:内核态和用户态。通常情况下,PSW 寄存器中的一个二进制位会控制当前状态是内核态还是用户态。当运行在内核态时,CPU 能够执行任何指令集中的指令并且能够使用硬件的功能。
用户应用程序通常运行在用户态下,在用户态下,CPU 只能执行指令集中的一部分并且只能访问硬件的一部分功能。一般在用户态下,有关 I/O 和内存保护的所有指令是禁止执行的。设置 PSW 模式的二进制位为内核态也是禁止的。
为了获取操作系统的服务,用户程序必须使用系统调用(system call),系统调用会转换为内核态并且调用操作系统。TRAP 指令用于把用户态切换为内核态并启用操作系统。当有关工作完成之后,在系统调用后面的指令会把控制权交给用户程序。
二、多线程
线程是一种轻量级的进程。多线程允许 CPU 保持两个不同的线程状态并且在纳秒级的时间完成切换。
对于操作系统来讲,多线程是有意义的,因为每个线程对操作系统来说都像是一个单个的 CPU。比如一个有两个 CPU 的操作系统,并且每个 CPU 运行两个线程,那么这对于操作系统来说就可能是 4 个 CPU。
本文仅自己总结笔记,原文来源:硬核操作系统指南
计算机硬件介绍之CPU与多线程相关推荐
- 20线程测试cpu性能软件,评测平台介绍、CPU多线程性能测试
2.平台介绍及CPU性能测试 AMD AM3+平台 CPUAMD FX-8150(4模块/8核) AMD FX-8350(4模块/8核) 主板华硕 Crosshair V Formula(BIOS版本 ...
- 浅谈多核CPU、多线程与并行计算
浅谈多核CPU.多线程与并行计算 xiaofei0859 2017-05-09 17:07:11 3646 收藏 展开 0.前言 笔者用过MPI和C#线程池,参加过比赛,有所感受,将近一年来,对多 ...
- 多CPU 多核CPU | 多进程 多线程 | 并行 并发
文章目录 区分 多CPU && 多核CPU CPU缓存 并行 && 并发 多CPU && 多核CPU | 多进程 && 多线程 | 并行 ...
- 多核cpu与多线程理解
计算机cpu与多线程 进程和线程: 进程包含线程,一个进程中包含多个线程. 线程是cpu调度和分配的基本单位,进程是操作系统进行资源分配(cpu,内存,硬盘io等)的最小单位. 单核cpu: 实现多进 ...
- KVM 介绍之CPU和内存虚拟化
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接 ...
- 计算机硬件功能作用,cpu的作用和主要功能是什么
CPU是计算机的核心单位,也是最重要部件,学习计算机硬件的朋友们,一定会学到CPU,那么CPU的作用是什么呢?分别有哪些功能?和小编一起看看! [cpu的作用] cpucpu的内部结构可分为控制单元, ...
- 计算机硬件:关于CPU的12个硬核干货!
作为一名程序员,与计算机打交道的日子不计其数,不管你玩硬件还是做软件,你的世界自然都少不了计算机最核心的 -- CPU. 01 CPU是什么? CPU与计算机的关系就相当于大脑和人的关系,它是一种小型 ...
- php100并发cpu告警,多线程并发导致CPU100%的一种原因和解决办法
在用自定义线程池的时候,遇到cpu100%,经过验证后,发现问题来源于我定义的子线程. 子线程的主要功能是从任务队列(LinkedBlockingQueue)里面持续拿出任务,并且执行. 以下为令CP ...
- 单核CPU处理多线程
1.(单核CPU)同一时间,cpu只能处理1个线程,只有1个线程在执行 2.多线程同时执行:是CPU快速的在多个线程之间的切换 3.cpu调度线程的时间足够快,就造成了多线程的"同时&quo ...
最新文章
- ajax提交无反应,IE中jquery.form中ajax提交没反应解决方法分享
- android Fragment 学习资料推荐
- 域名过期多长时间才能注册
- html css整理笔记,HTML CSS整理笔记 (八) 定位网页元素
- SCCM2012之客户端发现与安装
- Python 爬虫 大量数据清洗 ---- sql语句优化
- C#通过修改注册表改变IE默认选项
- JS中split对多个分隔符的处理
- 如何在 30 天内重新设计整个应用程序?
- Perceptual Losses for Real-Time Style Transfer and Super-Resolution
- CRMEB首届UI设计大赛报名啦!
- Linux系统安装Nvidia显卡驱动
- Excel中截取特殊字符之前、之间、之后的数据
- 会计的思考(37):“弱水三千,只取一瓢饮”--业务人员的财务意识
- Excel打开时自动开一个sheet1页面
- web页面-JS/DOM/BOM/窗口滚动/修改内容/上传文件
- linux发音,你发对了吗
- photoshop基本的操作
- 9 * 9 数独求解
- python将.mat文件转换为.txt