绪论

目前打算学习一下计算机组成原理的相关内容,本专栏主要放一些学习过程中觉得重要的或者一些需要记忆的知识点。对于冯诺依曼结构的工作原理等知识这里不再赘述

计算机系统的性能评价

计算机性能评价指标主要包括非时间指标时间指标
非时间指标主要有:机器字长总线宽度主存容量存储带宽
(1)机器字长
机器字长指机器一次能处理的二进制位数。
其主要由加法器和寄存器的位数决定;一般与内部寄存器的位数相等(字长);
字长越长,表示的数据范围越大,精确度越高;目前常见的有32位和64位字长。
(2)总线宽度
总线宽度指数据总线一次能并行传送的最大信息的位数。一般指运算器与存储器之间的数据总线位数。
某些计算机内部和外部总线宽度不一致:例如8088、80386SX外部总线宽度为8位,内部总线宽度为16位(目的是为了更好的兼容)。
(3)主存容量和存储带宽
主存容量:是指一台计算机主存所包含的存储单元总数。
存储带宽:指单位时间内与主存交换的二进制信息量,常用单位B/s(字节/秒)。
影响存储带宽的指标包括数据位宽数据传输速率

时间指标包括:主频f/时钟周期T外频倍频CPIMIPSCPU时间等。
(1)主频f/时钟周期T外频倍频
主频f指CPU内核工作的时钟频率,即CPU内数字脉冲信号振荡的速率,与CPU实际的运算能力之间不是唯一的、直接关系。
时钟周期T是主频f的倒数,也称节拍器,是计算机中最基本、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。

其中:主频=外频×倍频。
例如:Pentium 4 2.4G CPU主频-> 2400M=133M(外频)×18(倍频); 如何超频?
(2)CPI(Clock cycles Per Instruction)
CPI指执行一条指令(平均)需要的时钟周期数(即T周期的个数)
CPI=程序中所有指令的时钟周期数之和/程序指令总数=sigma(程序中各类指令的CPI×程序中该类指令的比例)

IPC(Instruction per Clock):每个时钟周期内执行的指令条数(并行)

实际上频率和IPC在真正影响CPU性能。
准确的CPU性能判断标准应该是:CPU性能=IPC×频率(MHz时钟速度)
(3)MIPS(Million Instructions Per Second)
MIPS指每秒钟CPU能执行的指令总条数(单位:百万条/秒)

(4)CPU时间
CPU时间指执行一段程序所需的时间(CPU时间+I/O时间+存储访问时间+各类排队时延等)。
CPU时间=程序中所有指令的时钟周期数之和×T=程序中所有指令的时钟周期数之和/f
计算方法主要有以下两种:

时间指标的应用思考

**

计算机性能测试

测试原理:计算机系统中配置了大量的传感器和寄存器,系统运行的相关参数保存在对应的寄存器中;测试程序通过读取相应寄存器的值得到系统运行的状况;之后通过图形/数据方式显示获取的状态数值。
常见的测试工具
CPU测试工具:CPUMark、SysID、Hot CPU Tester
显卡测试工具:3DMark、N-Bench2、FurMark
硬盘测试工具:Hard Disk Speed、Disk Benchmark、IOmeter、HDD Temperature Pro
内存测试工具:CTSPD、Memory Speed、Memory Transfer Timing Utility
其他综合测试工具:鲁大师

Amdahl定律

Gene Amdahl,计算领域的早期先锋之一,对提升系统某一部分性能所带来的的效果做出了简单却有见地的观察,这个观察称为Amdahl定律。该定律的主要思想是,当我们对系统的某一部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。
若系统执行某应用程序需要时间为Told,假设系统某部分所需执行时间与该时间的比例为α,而该部分性能提升比例为k。即该部分初始所需时间为αTold,现在所需时间为(αTold)/k。因此,总的执行时间应为:

由此,可以计算加速比S=Told/Tnew为

举个例子,考虑这样一种情况,系统的某个部分初始耗时比例为60%(α=0.6),其加速比例因子为3(k=3)。则我们可以获得的加速比为1/[0.4+0.6/3]=1.67倍。虽然我们对系统的一个主要部分做出了重大改进,但是获得的系统加速比却明显小于这部分的加速比。这就是Amdahl定律的主要观点:要想显著加速整个系统,必须提升全系统中相当大的部分的速度。

并发和并行

这一部分我将只记下基本概念,对于更深的知识之后会专门写博客。

线程级并发
构建在进程这个抽象之上,我们能够设计出同时有多个程序执行的系统,这就导致了并发,使用线程,我们甚至能够在一个进程中执行多个控制流。很早以前,计算机系统就开始有了对并行执行的支持。传统意义上,这种并发执行只是模拟出来的,是通过使一台计算机在它正在执行的进程间快速切换来实现的。这种并发形式允许多个用户同时与系统交互,例如多人想要从一个Web服务器获取页面。它还允许一个用户同时从事多个任务,例如在一个窗口中开启Web浏览器,在另一个窗口中运行字处理器,同时又播放音乐。在以前,即使处理器必须在多个任务间切换,大多数实际的计算也都是由一个处理器来完成的。这种配置称为单处理器系统
当构建一个由单操作系统内核控制的多处理器组成的系统时,我们就得到了一个多处理器系统。随着多核处理器和超线程的出现,这种系统才变得常见。(下边几个图出自《深入理解计算机系统》)

多核处理器是将多个CPU(称为“核”)集成到一个集成电路芯片上,下图描述的是一个典型多核处理器的组织结构,其中微处理器芯片有4个CPU核,每个核都有自己的L1和L2高速缓存,其中的L1高速缓存分为两部分–一个保存最近取到的指令,另一个存放数据。这些核共享更高层次的高速缓存,以及到主存的接口。

超线程,有时称为同时多线程,是一项允许一个CPU执行多个控制流的技术。它涉及CPU某些硬件有多个备份,比如程序计数器和寄存器文件,而其他的硬件部分只有一份,比如执行浮点算术运算的单元。常规的处理器需要大约20000个时钟周期做不同线程间的转换,而超线程的处理器可以在单个周期的基础上决定要执行哪一个线程。这使得CPU能够更好地利用它的处理资源。比如,假设一个线程必须等到某些数据被装在到高速缓存中,那CPU就可以继续去执行另一个线程。举例来说,Intel Core i7处理器可以让每个核执行两个线程,所以一个4核的系统实际上可以并行地执行8个线程。
之后会专门开篇记录并发学习过程中的重要知识。

指令级并行
在较低的抽象层次上,现代处理器可以同时执行多条指令的属性称为指令级并行。早期的微处理器,如1978年的Intel 8086,需要多个(通常为3到10个)时钟周期来执行一条指令。最近的处理器可以保持每个时钟周期2~4条指令的执行速率。但其实每条指令从开始到街上需要长得多的时间,大约20个或者更多的周期,但是处理器使用了分厂多的聪明技巧来同时执行多达100条指令(流水线)。如果处理器可以达到比一个周期一条指令更快的执行速率,就称之为超标量处理器。大多数现代处理器都支持超标量操作。

单指令、多数据并行
在最低层次上,许多现代处理器拥有特殊的硬件,允许一条指令产生多个可以并行指向的操作,这种方式称之为单指令、多数据,即SIMD并行。例如,较新几代的Intel和AMD处理器都具有并行地对8对单精度浮点型做加法的指令。
提供这些SIMD指令多是为了提高处理影像、声音和视频数据应用的执行速度。

计算机系统中抽象的重要性
抽象的使用是计算机科学中最为重要的概念之一。例如,为一组函数规定一个简单的应用程序接口(API)就是一个很好的编程习惯,程序员无需了解它的内部的工作便可以使用这些代码。

如上图所示,在处理器里,指令集架构提供了对实际处理器硬件的抽象。使用这个抽象,机器代码程序表现得就好像运行在一个一次只执行一条指令的处理器上。底层的硬件远比抽象描述的要复杂精细,它并行地执行多条指令,但又总是与那个简单有序的模型保持一致。只要执行模型一样,不同的处理器实现也能执行同样的机器代码,而又提供不同的开销和性能。

持续更新…

计算机系统:基本知识相关推荐

  1. 第一代计算机到第四代计算机基本知识,[Ch01_计算机系统基本知识.ppt

    [Ch01_计算机系统基本知识 王子仁 wzr@zjut.edu.cn 第 1 章计算机系统基本知识 主要内容简介 1.1 计算机概述 1.2 计算机软件概述 1.3 文件管理概述 1.4 计算机中的 ...

  2. 初级计算机信息处理员笔试题,初级信息处理技术员计算机系统基础知识考试卷模拟考试^题...

    <初级信息处理技术员计算机系统基础知识考试卷模拟考试^题>由会员分享,可在线阅读,更多相关<初级信息处理技术员计算机系统基础知识考试卷模拟考试^题(9页珍藏版)>请在人人文库网 ...

  3. 软考 程序员教程-第一章 计算机系统基础知识

    软考 程序员教程-第一章 计算机系统基础知识 为了督促自己学习,告别懒惰,在此先给自己定个小目标,请大家监督哟! 目标:一个月内过一遍<程序员教程>,下一个月开始上真题. 简单看了下,我在 ...

  4. 软件设计师教程(一)计算机系统知识-计算机系统基础知识

    计算机系统基础知识 计算机系统硬件基本组成 中央处理单元 CPU的功能 CPU的组成 多核 CPU 数据表示 校验码 计算机系统硬件基本组成 计算机系统 = 硬件 + 软件 (协同工作运行) 计算机基 ...

  5. 微型计算机的必备部件,微型计算机系统基础知识

    选填,简要介绍文档的主要内容,方便文档被更多人浏览和下载. 第2章 微型计算机系统基础知识 1.ROM的中文名称是______. A.软盘存储器 B.硬盘存储器 C.只读存储器 D.随机存储器 2.关 ...

  6. 程序员教程-1章-计算机系统基础知识

    觉得自己看第一章看了很长时间,才看了二.三十页,而且也是稀里糊涂的,先记下吧.(补记:稀里糊涂看完了,这章只考选择题,也就没深入了解,其实是了解一下头就大) 先记录一下目录结构,方便以后回忆内容. 本 ...

  7. 蠕虫病毒往往是通过进入计算机系统,基础知识1计算机基础.doc

    大学计算机基础实验指导与测试 第二部分 基础知识 基础知识1 计算机基础 一 单选题 1.一般认为,信息(information)是_____. A.数据B.人们关心的事情的消息 C.反映物质及其运动 ...

  8. 计算机系统 理论知识试卷,计算机系统操作员中级理论知识试卷10

    职业技能鉴定国家题库 计算机系统操作员中级理论知识试卷 注 意 事 项 线1.考试时间:120分钟. 2.请首先按要求在试卷的标封处填写您的姓名.准考证号和所在单位的名称. 3.请仔细阅读各种题目的回 ...

  9. 计算机系统基础知识6多媒体基础知识

    文章目录 多媒体基本概念 媒体的分类和特征 多媒体计算机系统 音频 数字声音系统 声音文件格式 图形和图像 图像的基础知识 图形与图像信息的表示和获取 图形图像编码 动画和视频 动画的基本概念 模拟视 ...

  10. 利用计算机系统基础知识分析程序结果,计算机二级公共基础知识笔记

    计算机二级公共基础知识 计算机系统 考点一:计算机概述 1.计算机的发展历程 目前公认的第一台电子数字计算机是ENIAC,它于1946年在美国宾夕法尼亚大学研制成功. 根据计算机本身采用的物理器件不同 ...

最新文章

  1. AI换脸、声音篡改等,明确写入新版《民法典》
  2. 在VSO8中使用QT
  3. Ubuntu10.04下PDF中文无法显示或显示乱码的解决方法
  4. 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录
  5. Spring Cloud Zuul –编写过滤器
  6. JavaFX:太空侵略者在175 LOC以下
  7. Linux下使用ntpdate进行时间同步
  8. 线性瘤是良性吗_良性聚会:露营者如何构建开放源代码工具来解决时区
  9. pandas时间序列与自回归ARIMA模型
  10. java short s=s 1_Java 面试题 short s = 1; s = s + 1; 与 s += 1; 背后的秘密
  11. 【django小练习之主机管理界面】
  12. 双流棠湖中学怎么样_最强攻略!春节去哪儿high?双流这些免费活动别错过~
  13. 学报格式和论文格式一样吗_工大学报论文格式要求
  14. 如何让搜索引擎收录我的站点
  15. 老毛桃 固态硬盘 系统迁移
  16. 关于使用腾讯乐固加固,涉及的签名及其他问题
  17. css 矩形切角,特殊border的样式 -- CSS3实现三种切角效果
  18. linux中execvp函数,Linux shell的实现——execvp
  19. 计算机十进制转为八位二进制,Java将十进制转换为8位二进制(Java convert from decimal to 8-bit binary)...
  20. java nio attachment_7. 彤哥说netty系列之Java NIO核心组件之Selector

热门文章

  1. 用python编写一个篮球计分系统_毕业设计(3)基于MicroPython的篮球计时计分器模型的设计与实现...
  2. Highway Networks网络详解
  3. 多相位图像插值算法(Lanczos、sinc)
  4. win10 docker 容器修改端口映射
  5. 【ava数据集】ava数据集下载 使用迅雷
  6. linux for循环套for循环格式_FOR循环指令案例详解
  7. 计算机专业读研外文文献怎么找,计算机专业学术论文参考文献推荐 计算机专业学术外文文献怎么找...
  8. 【微积分易错点总结】函数、极限和连续
  9. cookies的清空和保存
  10. Ubuntu安装hp打印机