话说CPU(不谈硬件)

2023-11-03 02:00
文章标签 cpu 硬件 不谈

本文主要是介绍话说CPU(不谈硬件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

105915_Fc8m_3241202.png

话说CPU:

    当下的人类环境,计算机离我们有多近,可见一斑。上至眼睛老花的长者,下至1~2岁的“北鼻”,早上起床后到晚上睡觉前,都会忍禁不住喵一眼?。有人会说,你错了,你说的那是手机?。同志们呐,现在的手机不是一台计算机(电脑)吗?有些手机的价格比笔记本电脑还贵,内部配置比较台式机也不相上下。

    提及计算机,首先提到的就是CPU,(有些非“挨踢”行业童鞋们,可能对于内存空间和硬盘空间大小是混淆的,不过不影响使用就行),CPU这个名词连老人都不会弄错了,地球人都知道CPU越快越好.....这里对于硬件相关的制造工艺、针脚、硬件布线、频率、cache...在此我们都不做介绍,这些对消费者和使用者来说,也许是商家的营销标语或是区别不同代产品的标示,有兴趣的童鞋可以自行查阅一些相关资料。

大家或许听过这样的话:“做图,用苹果电脑最好....”,作为一个敬业的IT屌丝,我禁不住问,why?

多数人:“处理快,显示好,外观好看.....”

好吧,外观和显示问题,先不说了,这个不涉及计算机的处理,我们单说“处理快”。所谓处理快,字面理解那应该是一款软件处理图像的能力很强,效率很高吧,这些东西,统统都离不开CPU的处理,那就不得不说说CPU那点事了。

在这里我们着重说一下CPU的指令,为什么要说指令呢?隔壁老王都一直在说“频率快,有能力”呢?

因为跟我们生活和工作最密切相关的就是程序(操作系统其实也是一种程序),简单的理解程序有两个部分组成:

  1. 指令(软件处理图像的各种操作,后台就是发给CPU的一个个指令)
  2. 数据 (需要处理的图像)

这里我们先说指令,程序就是一组只读的指令组成,将这些指令交由CPU处理,就能得到我们想要的结果。其实这也是一系列指令转换的过程,比如,由高级语言(c语言)编写的一个程序,程序员在写程序时就使用了c语言的相关指令,但是这些指令cpu并不认识,需要层层转换为cpu可以运算的指令。

抽象的过程:

人类比较容易识别的指令(高级语言,c语言指令)-->半人类识别指令(低级语言,汇编指令)-->机器语言(硬件指令,比如cpu指令)

这里就说一下机器语言-cpu指令,从指令集说起:

CPU指令集(架构之分)

主要分为两种:

  1. RISC(Reduced Instruction Set Computing,精简指令集计算机)
  2. CISC(Complex Instruction Set Computer,复杂指令集计算机)

以上两种时当前CPU的两种架构,它们的区别在于不同的CPU设计理念和方法。大家不要以为先有的RISC,事实上先有的CISC。为什么叫做精简指令,因为是在复杂指令集的基础上,精简出一些必须用到,单个指令只能实现简单功能,但是多个指令的组合可以实际多种功能。

举个例子,作为强大的吃货,复杂指令就属于比较方便快捷的食品那种,拿北方面食为例,复杂指令集里面已经有了面条、包子、饺子、大饼、馒头...,貌似很方便提供的食物比较丰富,但是我们会发现,饺子或许一个月就吃几次,面条和馒头每天都在吃;饺子对应的指令,利用率很低,也有可能发现,现成的这些食物口味和口感并不是自己想要的,就算面条,可能每个地域的人喜欢的也都不一样,比如南方人喜欢碱水面,北方人可能喜欢拉面、刀削面、拉条子等等。

而作为精简指令集,可能就只提供面粉,至于怎么做,看个人的喜好,味道如何看自己的手艺;这样就能吃到妈妈的味道,在饭店永远也吃不到家里妈妈的味道,也是这个情况。

 CISC和RISC的区别详见下表:

指令系统                         复杂,庞大                     简单,精简  
指令数目                         一般大于200                  一般小于100  
指令格式                         一般大于4                      一般小于4  
寻址方式                         一般大于4                      一般小于4  
指令字长                         不固定                           等长  
可访存指令                      不加限制                        只有LOAD/STORE指令  
各种指令使用频率             相差很大                        相差不大  
各种指令执行时间             相差很大                        绝大多数在一个周期内完成  
优化编译实现                    很难                             较容易  
程序源代码长度                 较短                             较长  
控制器实现方式                 绝大多数为微程序控制     绝大多数为硬布线控制  
软件系统开发时间              较短                             较长

 

CISC和RISC对应的硬件:

一般来说RISC多数用在小型机主机上,IBM的 Power PC为RISC CPU的结构,HP的PA-RISC CPU,CISCO 的CPU也是RISC的结构。 


经常见到的PC中的CPU使用的大都是CISC,Pentium-Pro(P6)、Pentium-II,Cyrix的M1、M2、AMD的K5、K6实际上是改进了的CISC,也可以说是结合了CISC和RISC的部分优点。

题外话:

早期Macintosh,Apple公司的主机使用的是RISC指令集,使用IBM-power pc CPU,算是桌面服务器比较特殊的,一直公认apple power系列处理图像等运算比普通pc好很多,原因也在与此。同样的频率下,使用RISC性能会优于CISC。

从侧面也说明,CPU性能按照业界公布出来的所谓频率....为主要指标,也是忽悠广大群众的,因为CISC的CPU研发周期相对短些,自然整出些指标来宣示自己的进步。大家是否发现,pc已经更新这么高的配置,微软的系统依然还是那样的速度,office依然还是卡顿,动不动还是会hung;

CPU指令(使用权限之分)

上面说了CPU指令集,这个是对硬件或事整体对外的情况,我们说一下指令使用方面的分类:

我们需要提及“环”(Ring)的概念,这个就像孙大圣保护唐僧画的一个圈圈⭕️,叫啥名字多个版本,也能算是个结界。CPU有四个环,0、1、2、3: 其中

环1、环2:保留不用

环0:这是特权环指令,直接由内核接管,也叫内核空间,负责与硬件相关的操作。

环3:这个是用户空间,主要是应用程序调用的普通指令。

x86的保护环

 

题外话:

    可以想象如果环0开放,分分钟黑客可以让全球的电子设备化为乌有......那就天下大同了。

转载于:https://my.oschina.net/xinghaitao/blog/988744

这篇关于话说CPU(不谈硬件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/334809

相关文章

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

Java程序到CPU上执行 的步骤

相信很多的小伙伴在最初学习编程的时候会容易产生一个疑惑❓,那就是编写的Java代码究竟是怎么一步一步到CPU上去执行的呢?CPU又是如何执行的呢?今天跟随小编的脚步去化解开这个疑惑❓。 在学习这个过程之前,我们需要先讲解一些与本内容相关的知识点 指令 指令是指导CPU运行的命令,主要由操作码+被操作数组成。 其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也

win10不用anaconda安装tensorflow-cpu并导入pycharm

记录一下防止忘了 一、前提:已经安装了python3.6.4,想用tensorflow的包 二、在pycharm中File-Settings-Project Interpreter点“+”号导入很慢,所以直接在cmd中使用 pip install -i https://mirrors.aliyun.com/pypi/simple tensorflow-cpu下载好,默认下载的tensorflow

定位cpu占用过高的线程和对应的方法

如何定位cpu占用过高的线程和对应的方法? 主要是通过线程id找到对应的方法。 1 查询某个用户cpu占用最高的进程号 top -u 用户名 2 查询这个进程中占用cpu最高的线程号 top –p 进程号-H    3 查询到进程id后把进程相关的代码打印到jstack文件 jstack -l pid > jstack.txt 4 在jstack文件中通过16进制的线程id搜索到

机器视觉硬件选型根据某项目相机镜头

一 项目总需求 1、大视野检测需求: (1)大视野: ①产品尺寸15.6寸屏幕,产品大小:350mm x 225mm; ②产品料盘尺寸大小:565mm x 425mm; ③工作距离:880mm;检测精度:500μm; 1、大视野检测需求: (1)大视野: ①产品尺寸15.6寸屏幕,产品大小:350mm x 225mm; ②产品料盘尺寸大小:565mm x 425mm; 工作距离:

CPU亲和性设置 代码示例 sched_setaffinity sched_getaffinity

视频教程在这: cpu亲和性设置,NCCL,sched_setaffinity sched_getaffinity,CPU_ZERO、SET、ISSET、linux_哔哩哔哩_bilibili 一、CPU亲和性简介 CPU亲和性(CPU Affinity)设置是操作系统中一个重要的性能优化手段,它允许程序或进程被绑定到特定的CPU核心上运行。这样做的好处包括减少缓存未命中、降低线程迁移(co

ubuntu16.04 caffe(github源码cpu)+python3.5+opencv3.4.5安装编译

https://www.cnblogs.com/hanjianjian90/p/10604926.html

学习硬件测试05:NTC(ADC)+正弦波(DAC)+DMA(ADC+DAC)(P73、P76、P78)

文章以下内容全部为硬件相关知识,鲜有软件知识,并且记的是自己需要的部分,大家可能看不明白。 一、NTC(ADC) 1.1实验现象 本实验用 NTC 采集温度,数码管实时显示温度数据(整数),左下角 USB 小串口每隔 1S 打印温度信息。 1.2硬件电路 NTC 电阻是一个模拟温度传感器,随着温度的升高,电阻值逐渐减小。电路简单介绍如下: 电源滤波电容在 25℃ 室温下 NTC 电

集运系统需要与哪些硬件设备集成?

随着电商和跨境贸易的不断发展,集运服务越来越受到海外用户的青睐。集运系统作为一种高效的跨境物流管理工具,可以协调各个环节之间的物流流程,提高物流效率和管理水平,被越来越多的集运企业采用。而集运系统作为集运服务的重要组成部分,也需要配套相应的硬件设备才能更好地支持跨境集运业务。下面就来介绍一下集运系统需要哪些硬件设备支持呢? 1.PDA:是一种便携式电子设备,可以轻松地进行数据采集和处理,具有移

Ubuntu 标题栏实时显示网速CPU内存

1.用 wget 下载 indicator-sysmonitor,终端执行命令: $ wget -c https://launchpad.net/indicator-sysmonitor/trunk/4.0/+download/indicator-sysmonitor_0.4.3_all.deb2.安装依赖: sudo apt-get install python python-psu