【计算机硬件CPU】

【计算机硬件CPU】

    • 1、计算机硬件的五大单元
    • 2、一切设计的起点: CPU 的架构
    • 3、精简指令集 (Reduced Instruction Set Computer, RISC)
    • 4、复杂指令集(Complex Instruction Set Computer, CISC)
    • 5、例题:最新的Intel/AMD的x86架构中,请查询出多媒体、虚拟化、省电功能各有哪些重要的 微指令集?(仅供参考)
    • 6、其他单元的设备
    • 7、Intel芯片架构
    • 8、执行脑袋运算与判断的 CPU
    • 9、CPU的工作频率:外频与倍频
    • 10、CPU超频
    • 11、32位与64位的CPU与总线“宽度”
    • 12、CPU等级
    • 13、超线程 (Hyper-Threading, HT)

1、计算机硬件的五大单元

输入单元输出单元、CPU 内部的控制单元算数逻辑单元内存五大部分
在这里插入图片描述

2、一切设计的起点: CPU 的架构

CPU 其实内部已经含有一些微指令,我们所使用的软件都要经过 CPU 内部的微指令集来达成才行。 那这些指令集的设计主要又被分为两种设计理念,这就是目前世界上常见到的两种主要 CPU 架构, 分别是:精简指令集 (RISC)复杂指令集 (CISC) 系统。下面我们就来谈谈这两种不同 CPU 架构的差异啰!

3、精简指令集 (Reduced Instruction Set Computer, RISC)

这种 CPU 的设计中,微指令集较为精简,每个指令的执行时间都很短,完成的动作也很单纯,指令的执行性能较佳; 但是若要做复杂的事情,就要由多个指令来完成。常见的 RISC微指令集 CPU 主要例如甲骨文 (Oracle) 公司的 SPARC 系列IBM 公司的 Power Architecture (包括 PowerPC) 系列、与安谋公司 (ARM Holdings) 的 ARM CPU 系列等。在应用方面,SPARC CPU 的电脑常用于学术领域的大型工作站中,包括银行金融体系的主要服务器也都有这类的电脑架构; 至于PowerPC架构的应用上,例如索尼(Sony)公司出产的Play Station 3(PS3)就是使用PowerPC架构的Cell处理器; 那安谋的 ARM 呢?你常使用的各厂牌手机、PDA、导航系统、网络设备(交换器、路由器等)等,几乎都是使用 ARM架构的 CPU 喔! 老实说,目前世界上使用范围最广的 CPU 可能就是 ARM 这种架构的呢!

4、复杂指令集(Complex Instruction Set Computer, CISC)

与RISC不同的,CISC在微指令集的每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂, 每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长, 但每条个别指令可以处理的工作较为丰富。常见的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架构的CPU。由于AMD、Intel、VIA所开发出来的x86架构CPU被大量使用于个人电脑(Personal computer)用途上面, 因此,个人电脑常被称为x86架构的电脑!那为何称为x86架构[8]呢?这是因为最早的那颗Intel发展出来的CPU代号称为8086,后来依此架构又开发出80286,80386…, 因此这种架构的CPU就被称为x86架构了。在2003年以前由Intel所开发的x86架构CPU由8位升级到16、32位,后来AMD依此架构修改新一代的CPU为64位, 为了区别两者的差异,因此64位的个人电脑CPU又被统称为x86_64的架构喔!

Tips: 所谓的位指的是CPU一次数据读取的最大量!64位CPU代表CPU一次可以读写64bits这么多的数据,32位CPU则是CPU一次只能读取32位的意思。 因为CPU读取数据量有限制,因此能够从内存中读写的数据也就有所限制。所以,一般32位的CPU所能读写的最大数据量,大概就是4GB左右。

那么不同的x86架构的CPU有什么差异呢?除了CPU的整体结构(如第二层高速缓存、每次运行可执行的指令数等)之外, 主要是在于微指令集的不同。新的x86的CPU大多含有很先进的微指令集, 这些微指令集可以加速多媒体程序的运行,也能够加强虚拟化的性能,而且某些微指令集更能够增加能源效率, 让CPU耗电量降低呢!由于电费越来越高,购买电脑时,除了整体的性能之外, 节能省电的CPU特色也可以考虑喔!

5、例题:最新的Intel/AMD的x86架构中,请查询出多媒体、虚拟化、省电功能各有哪些重要的 微指令集?(仅供参考)

答:

  • 多媒体微指令集:MMX, SSE, SSE2, SSE3, SSE4, AMD-3DNow!
  • 虚拟化微指令集:Intel-VT, AMD-SVM
  • 省电功能:Intel-SpeedStep, AMD-PowerNow!
  • 64/32位相容技术:AMD-AMD64, Intel-EM64T

6、其他单元的设备

五大单元中最重要的控制、算术逻辑被整合到 CPU 的封装中,但系统当然不可能只有 CPU啊!那其他三个重要电脑单元的设备还有哪些呢? 其实在主机机箱内的设备大多是通过主板(main board) 连接在一块,主板上面有个链接沟通所有设备的芯片组,这个芯片组可以将
所有单元的设备链接起来, 好让 CPU 可以对这些设备下达命令。其他单元的重要设备主要有:

  • 系统单元:系统单元包括 CPU 与内存及主板相关元件。而主板上头其实还有很多的连接接口与相关的适配卡,包括鸟哥近期常使用的 PCI-E 10G 网卡、 磁盘阵列卡、还有显卡等等。尤其是显卡,这东西对于玩3D游戏来说是非常重要的一环,他与显示的精致度、色彩与分辨率都有关系。
  • 存储单元:包括内存 (main memory, RAM) 与辅助内存,其中辅助内存其实就是大家常听到的“储存设备”啰!包括硬盘、软盘、光盘、磁带等等的。 输入、输出单元:同时涵盖输入输出的设备最常见的大概就是触摸屏了。至于单纯的输入设备包括前面提到的键盘鼠标之外,目前的体感设备也是重要的输入设备喔! 至于输 出设备方

7、Intel芯片架构

由于主板是链接各元件的一个重要项目,因此在主板上面沟通各部元件的芯片组设计优劣,就会影响性能不少喔!早期的芯片组通常分为两个桥接器来控制各元件的沟通, 分别是:
(1)北桥:负责链接速度较快的CPU、内存与显卡接口等元件;
(2)南桥:负责连接速度较慢的设备接口, 包括硬盘、USB、网卡等等。

8、执行脑袋运算与判断的 CPU

由于CPU负责大量运算,因此CPU通常是具有相当高发热量的元件。所以如果你曾经拆开过主板, 应该就会看到CPU上头通常会安插一颗风扇来主动散热的。x86个人电脑的CPU主要供应商为Intel与AMD,目前(2015)主流的CPU都是双核以上的架构了! 原本的单核心CPU仅有一个运算单元,所谓的多核心则是在一颗CPU封装当中嵌入了两个以上的运算核心, 简单的说,就是一个实体的CPU外壳中,含有两个以上的CPU单元就是了。
不同的CPU型号大多具有不同的脚位(CPU上面的插脚),能够搭配的主板芯片组也不同,所以当你想要将你的主机升级时,不能只考虑CPU,你还得要留意你的主板上面所支持的CPU型号喔! 不然买了最新的CPU也不能够安插在你的旧主板上头的!目前主流的CPU有
Intel的 i3/i5/i7 系列产品中,甚至先后期出厂的类似型号的脚位也不同, 例如 i7-2600 使用LGA1155 脚位而 i7-4790 则使用 FCLGA1150 脚位,挑选时必须要很小心喔!我们前面谈到CPU内部含有微指令集,不同的微指令集会导致CPU工作效率的优劣。除了这点之外, CPU性能的比较还有什么呢?那就是CPU的频率了!什么是频率呢?简单的说, 频率就是CPU每秒钟可以进行的工作次数。 所以频率越高表示这颗CPU单位时间内可以作更多的事情。举例来说,Intel的 i7-4790 CPU频率为3.6GHz, 表示这颗CPU在一秒内可以进行3.6x109次工作,每次工作都可以进行少数的指令运行之意。

Tips 注意,不同的CPU之间不能单纯的以频率来判断运算性能喔!这是因为每颗CPU的微指令集不相同,架构也不见得一样,可使用的第二层高速缓存及其计算机制可能也不同, 加上每次频率能够进行的工作指令数也不同!所以,频率目前仅能用来比较同款CPU的速度!

9、CPU的工作频率:外频与倍频

早期的 CPU 架构主要通过北桥来链接系统最重要的 CPU、内存与显卡设备。因为所有的设备都得通过北桥来链接,因此每个设备的工作频率应该要相同。 于是就有所谓的前端总线(FSB) 这个东西的产生。但因为 CPU 的运算速度比其他的设备都要来的快,又为了要满足FSB 的频率,因此厂商就在 CPU 内部再进行加速, 于是就有所谓的外频与倍频了。

总结来说,在早期的 CPU 设计中,所谓的外频指的是CPU与外部元件进行数据传输时的速度,倍频则是 CPU 内部用来加速工作性能的一个倍数, 两者相乘才是CPU的频率速度。例如 Intel Core 2 E8400 的内频为 3.0GHz,而外频是333MHz,因此倍频就是9倍啰!(3.0G=333Mx9, 其中1G=1000M)

10、CPU超频

  • 很多计算机硬件玩家很喜欢玩“超频”,所谓的超频指的是: 将CPU的倍频或者是外频通过主板的设置功能更改成较高频率的一种方式。但因为CPU的倍频通常在出厂时已经被锁定而无法修改,因此较常被超频的为外频。
  • 举例来说,像上述3.0GHz的CPU如果想要超频,可以将他的外频333MHz调整成为400MHz,但如此一来整个主板的各个元件的运行频率可能都会被增加成原本的1.333倍(4/3),虽然CPU可能可以到达3.6GHz,但却因为频率并非正常速度,故可能会造成死机等问题。但如此一来所有的数据都被北桥卡死了,北桥又不可能比CPU 更快,因此这家伙常常是系统性能的瓶颈。
  • 为了解决这个问题,新的 CPU 设计中, 已经将内存控制器整合到 CPU 内部,而链接 CPU 与内存、显卡的控制器的设计,在Intel部份使用 QPI (QuickPathInterconnect) 与 DMI 技术,而 AMD 部份则使用 Hyper Transport 了,这些技术都可以让CPU 直接与内存、显卡等设备分别进行沟通,而不需要通过外部的链接芯片了。
  • 因为现在没有所谓的北桥了 (整合到 CPU 内),因此,CPU 的频率设计就无须考虑得要同步的外频,只需要考虑整体的频率即可。所以,如果你经常有查阅自己 CPU 频率的习惯,当使用 cpu-z这个软件时,应该会很惊讶的发现到,怎么外频变成 100MHz而倍频可以到达 30 以上!相当有趣呢!

Tips 现在 Intel 的 CPU 会主动帮你超频喔!例如 i7-4790 这颗 CPU 的规格 [10] 中,基本频率为 3.6GHz,但是最高可自动超频到 4GHz 喔! 通过的是 Intel 的 turbo 技术。同时,如果你没有大量的运算需求,该 CPU 频率会降到 1.xGHz 而已,借此达到节能省电的目的!所以,各位好朋友, 不需要自己手动超频了!Intel 已经自动帮你进行超频了…所以,如果你用cpu-z 观察 CPU 频率,发现该频率会一直自动变动,很正常!你的系统没坏掉!

11、32位与64位的CPU与总线“宽度”

  • 从前面的简易说明中,我们知道 CPU 的各项数据通通得要来自于内存。因此,如果内存能提 供给 CPU的数据量越大的话,当然整体系统的性能应该也会比较快! 那如何知道内存能提 供的数据量呢?此时还是得要借由 CPU 内的内存控制芯片与内存间的传输速度“前端总线速 度(Front Side Bus, FSB) 来说明。
  • 与 CPU 的频率类似的,内存也是有其工作的频率,这个频率限制还是来自于 CPU 内的内存 控制器所决定的。以图0.2.1 为例, CPU内置的内存控制芯片对内存的工作频率最高可达到 1600MHz。这只是工作频率(每秒几次)。一般来说,每次频率能够传输的数据量,大多为 64位,这个 64 位就是所谓的“宽度”了! 因此,在图0.2.1 这个系统中,CPU可以从内存中取 得的最快带宽就是 1600MHz
    64bit = 1600MHz 8 Bytes = 12.8GByte/s。
  • 与总线宽度相似的,CPU每次能够处理的数据量称为字组大小(word size), 字组大小依据CPU的设计而有32位与64位。我们现在所称的电脑是32或64位主要是依据这个 CPU解析的字组大小而来的!早期的32位CPU中,因为CPU每次能够解析的数据量有限, 因此由内存传来的数据量就有所限制了。这也导致32位的CPU最多只能支持最大到4GBytes的内存。

Tips 得利于北桥整合到 CPU 内部的设计,CPU 得以“个别”跟各个元件进行沟通!因此,每种元件与 CPU 的沟通具有很多不同的方式!例如内存使用系统总线带宽来与 CPU 沟通。而显卡则通过PCI-E的序列信道设计来与CPU沟通喔!详细说明我们在本章稍后的主板部份再来谈谈。

12、CPU等级

由于x86架构的CPU在Intel的Pentium系列(1993年)后就有不统一的脚位与设计,为了将不同种类的CPU规范等级, 所以就有i386,i586,i686等名词出现了。基本上,在Intel Pentium MMX与AMD K6年代的CPU称为i586等级, 而Intel Celeron与AMD Athlon(K7)年代之后的32位CPU就称为i686等级。 至于目前的64位CPU则统称为x86_64等级。目前很多的程序都有对CPU做最优化的设计,万一哪天你发现一些程序是注明给x86_64的CPU使用时, 就不要将他安装在686以下等级的电脑中,否则可是会无法执行该软件的! 不过,在x86_64的硬件下倒是可以安装386的软件喔!也就是说,这些东西具有向下相容的能力啦!

13、超线程 (Hyper-Threading, HT)

我们知道现在的 CPU 至少都是两个核心以上的多核心 CPU 了,但是 Intel 还有个很怪的东西,叫做 CPU 的超线程 (Hyper-Threading) 功能! 那个是啥鬼东西?我们知道现在的CPU 运算速度都太快了,因此运算核心经常处于闲置状态下。而我们也知道现在的系统大多都是多任务的系统, 同时间有很多的程序会让 CPU 来执行。因此,若 CPU 可以假象的同时执行两个程序,不就可以让系统性能增加了吗?反正 CPU 的运算能力还是没有用完啊!

那是怎么达成的啊这个 HT 功能?在每一个CPU 内部将重要的寄存器 (register) 分成两群, 而让程序分别使用这两群寄存器。也就是说,可以有两个程序“同时竞争 CPU 的运算单元”,而非通过操作系统的多任务切换! 这一过程就会让 CPU 好像“同时有两个核心”的模样!因此,虽然大部分 i7 等级的 CPU 其实只有四个实体核心,但通过 HT 的机制, 则操作系统可以抓到八个核心!并且让每个核心逻辑上分
离,就可以同时运行八个程序了。

虽然很多研究与测试中,大多发现 HT 虽然可以提升性能,不过,有些情况下却可能导致性能降低喔!因为,实际上明明就仅有一个运算单元嘛! 不过在使用数值模式的情况下,因为操作的数值模式主要为平行运算功能,且运算通常无法达到 100% 的 CPU 使用率,通常仅有大约60%运算量而已。 因此在鸟哥的实作过程中,这个 HT 确实提升相当多的性能!至少应该可以节省大约30%~50%的等待时间喔!不过网络上大家的研究中, 大多说这个是 case by case,而且使用的软件影响很大!所以,在我的例子是启用 HT 帮助很大!您的案例就得要自行研究啰!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/64792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue框架--Vue中el和data的两种写法

data与el的2种写法 1.el有2种写法 (1).new Vue时候配置el属性。 (2).先创建Vue实例,随后再通过vm.$mount(#root)指定el的值。 2.data有2种写法 (1).对象式 (2).函数式 如何选择:目前哪种写法都可以,以后学习到组件时&#xff…

一些测试知识

希望能起到帮助,博主主页: https://blog.csdn.net/qq_57785602/category_12023254.html?spm1001.2014.3001.5482 软件测试理论 测试的依据: 需求,规格说明,模型,用户需求等 什么是软件测试 描述一种来…

Python Opencv实践 - 矩形轮廓绘制(直边矩形,最小外接矩形)

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/stars.png") plt.imshow(img[:,:,::-1])img_gray cv.cvtColor(img, cv.COLOR_BGR2GRAY) #通过cv.threshold转换为二值图 ret,thresh cv.threshold(img_gray,…

手写Mybatis:第5章-数据源的解析、创建和使用

文章目录 一、目标:数据源的解析、创建和使用二、设计:数据源的解析、创建和使用三、实现:数据源的解析、创建和使用3.1 引入依赖3.2 工程结构3.3 数据源解析、创建和使用关系图3.4 事务管理接口和事务工厂3.4.1 事务的隔离级别3.4.2 定义事务…

配置环境变量的作用

配置环境变量的作用 一般运行过程:寻找QQ.exe所在的目录,输入QQ.exe配置环境变量:把QQ所在的路径配给操作系统Path, 在任何路径下都能运行QQ.exe 举例: 定义变量:SCALA_HOME SCALA_HOME、JAVA_HOME 等这…

【论文精读】Learning Transferable Visual Models From Natural Language Supervision

Learning Transferable Visual Models From Natural Language Supervision 前言Abstract1. Introduction and Motivating Work2. Approach2.1. Creating a Sufficiently Large Dataset2.2. Selecting an Efficient Pre-Training Method2.3. Choosing and Scaling a Model2.4. P…

基于STM32的ADC采样及各式滤波实现(HAL库,含VOFA+教程)

前言:本文为手把手教学ADC采样及各式滤波算法的教程,本教程的MCU采用STM32F103ZET6。以HAL库的ADC采样函数为基础进行教学,通过各式常见滤波的实验结果进行分析对比,搭配VOFA工具直观的展示滤波效果。ADC与滤波算法都是嵌入式较为…

【FreeRTOS】信号量的相关函数使用及示例解释

FreeRTOS中的信号量是一种用于任务间同步的机制。它可以用来实现任务之间的互斥访问共享资源或者等待某个事件发生。 文章目录 信号量类型1. 二进制信号量(Binary Semaphore):2. 计数信号量(Counting Semaphore)&…

python in excel 如何尝鲜 有手就行

众所周知,微软在8月下旬放出消息python已入驻excel,可到底怎么实现呢。 今天我就将发布python in excel的保姆级教程,开始吧! 获取office 365 账号 首先我们要有微软office365 这时候需要再万能的某宝去找一个账号,…

Android JNI系列详解之ndk-build工具的使用

一、Android项目中使用ndk-build工具编译库文件 之前介绍过CMake编译工具的使用,今天介绍一种ndk自带的编译工具ndk-build的使用。 ndk-build目前主要有两种配置使用方式: 如上图所示,第一种方式是Android.mkApplication.mkgradle的方式生成…

5.Redis-string

string 字符串 字符串类型是 Redis 最基础的数据类型,关于字符串需要特别注意: 1.⾸先Redis中所有 key 的类型都是字符串类型,⽽且其他⼏种数据结构也都是在字符串类似基础上构建的,例如 list 和 set 的元素类型是字符串类型。 2…

Web_单一视频文件mp4转换为m3u分段ts文件实现边下边播

一、下载ffmpeg: Builds - CODEX FFMPEG @ gyan.dev 二、转换视频文件: 先解压缩,会看到如下结构: 进入bin目录,把需要转换的视频文件复制过来,同时新建一个文件夹用来存放转换后的文件,然后按住Shift键同时单击鼠标右键,选择打开Powershell窗口: 输入以下命令(根据…

【管理运筹学】第 7 章 | 图与网络分析(1,图论背景以及基本概念、术语)

文章目录 引言一、图与网络的基本知识1.1 图与网络的基本概念1.1.1 图的定义1.1.2 图中相关术语1.1.3 一些特殊图类1.1.4 图的运算 写在最后 引言 按照正常进度应该学习动态规划了,但我想换换口味,而且动态规划听说也有一定难度,还不一定会考…

UE5- c++ websocket客户端写法

# 实现目标 ue5 c 实现socket客户端,读取服务端数据,并进行解析 #实现步骤 {projectName}.Build.cs里增加 "WebSockets","JsonUtilities", "Json"配置信息,最终输出如下: using UnrealBuildTool;…

基于科大讯飞AIGC创作平台,构建数字人虚拟主播

笔者为体验目前数字人虚拟主播创作视频的质量,特意制作了一段测试视频。 基于讯飞智作创建 总体感受,数字人虚拟主播具有成本低、可定制性强等优点,但是也存在缺乏人情味、技术限制和法律问题等缺点。因此,在使用数字人虚拟主播时…

opencv 提取选中区域内指定hsv颜色的水印

基于《QT 插件化图像算法研究平台》做的功能插件。提取选中区域内指定hsv颜色的水印。 《QT 插件化图像算法研究平台》有个HSV COLOR PICK功能,可以很直观、方便地分析出水印 的hsv颜色,比如, 蓝色:100,180,0,255,100,255。 然后利用 opencv …

QtConcurrent和QFuture的使用

在Qt中,有时候我们会遇到这样一种情况,需要执行一个很长时间的操作,这时候我们的主界面就会卡住。我们的通常做法就是把这个很长时间的操作扔到线程里去处理,可以使用标准库中的线程也可以使用QThread。 如果我们要在这个很长时间…

C# 跨线程访问窗体控件

在不加任何修饰的情况下,C# 默认不允许跨线程访问控件,实际在项目开发过程中,经常使用跨线程操作控件属性,需要设置相关属性才能正确使用,两种方法设置如下: 方法1:告诉编译器取消跨线程访问检…

ModaHub魔搭社区——未来向量数据库会不像传统数据库那样,在国内涌现 200 多家出来?

I. 引言:数据库市场的持续扩张与向量数据库的崛起 随着技术的迭代速度越来越快,技术门槛也在逐渐降低,数据库市场的持续扩张是不可避免的。当前存在着大量的需求,这将吸引越来越多的数据库甚至向量数据库加入竞争。然而,从业界角度看,这种市场扩张是有利的。它可以促使更…

实现公网远程访问:Windows本地快速搭建SFTP文件服务器并配置端口映射

文章目录 1. 搭建SFTP服务器1.1 下载 freesshd服务器软件1.3 启动SFTP服务1.4 添加用户1.5 保存所有配置 2 安装SFTP客户端FileZilla测试2.1 配置一个本地SFTP站点2.2 内网连接测试成功 3 使用cpolar内网穿透3.1 创建SFTP隧道3.2 查看在线隧道列表 4. 使用SFTP客户端&#xff0…