计算机组成原理 1 概论

 主要内容

介绍运算器、控制器、存储器结构、工作原理、设计方法互连构成整机的技术。

主要内容:

◼ 数值表示与运算方法

◼ 运算器的功能、组成和基本运行原理

◼ 存储器及层次存储系统

◼ 指令系统

◼ CPU功能、组成和运行原理

◼ 流水线

◼ 系统总线

◼ 输入输出系

 前置知识

  • C语言程序设计
  • 数值逻辑:组合电路、同步电路概念、寄存器传输、有限状态机
  • 汇编语言程序设计:能看懂指令即可
  • Verilog硬件描述语言:作为实验工具(可选)

冯诺依曼体系结构原理

  • 采用二进制
  • 存储程序:将程序存放在计算机的存储器中
  • 程序控制:指令地址访问存储器并取出指令,经译码依次产生指令执行所需的控制信号,实现对计算的控制,完成指令的功能。
  • ·诺伊曼机体系(延续至今)

  •         主机:CPU (运算器 + 控制器)、内存
  •         总线:地址线、数据线、控制线 
  •         外设:输入设备、输出设备、外存储器

        运算器

        功能:执行算数运算、逻辑运算。

        基本结构:ALU (Arithmetic Logical Unit) 、寄存器、连接通路

        控制器 

        功能:产生指令执行过程所需要的所有控制信号(电平信号、 脉冲信号),控制相关功能部件执行相应操作。

        产生信号的依据:指令、状态、 时序

        产生方式:微程序、 硬布线。

存储器 

        功能:存储原程序、 原数据、运算中间结果。

        工作模式:读/写

        工作原理:按地址访问, 读/写数据。

        容量➡地址线数量

        1K➡10

        1M ➡ 20

        1G ➡ 30

 输入/输出设备

        输入设备:向计算机输入数据(键盘、鼠标、网卡、扫描仪等)

        输出设备:输出处理结果(显示器、声卡、网卡、打印机等)

软件系统

  • 可运行的思想和内容的数字化
  • 思想:算法、规律、方法---程序表达
  • 内容:图形、图像、数据、声音、文字等被处理的对象
  • 软件的表现形式: 程序和数据(以二进制表示的信息)
  • 软件的核心: 算法

        分类

  1.         系统软件:如操作系统、网络系统和编译系统
  2.         应用软件:字处理软件、游戏软件等
  3.         支持软件:开发工具、界面工具等

        计算机层次结构

        硬件与软件系统间的关系

                相互依存、 协同发展、 逻辑等效性(某些功能软硬都可实现)

                软硬分界线:分界线即软、硬件的接口,是指令操作硬件的入口;

计算机系统性能评价

      非时间指标

                机器字长

                        指机器一次能处理的二进制位数

  • 由加法器、寄存器的位数决定;
  • 一般与内部寄存器的位数相等(字长);
  • 字长越长,表示数据的范围就越大,精确度越高;
  • 目前常见的有32位和64位字长。

                总线宽度

                        数据总线一次能并行传送的最大信息的位数 

  • 一般指运算器与存储器之间的数据总线位数。
  • 有些计算机内部与外部数据总线宽度不一致:
  • 8086、80286、80386内外数据总线等宽;
  • 8088、80386SX 外部总线宽度8位内部总线宽度 16位;
  • Pentium外总线64位,内总线32位(两条32位流 水线)

                主存容量与存储带宽 

        主存容量:是指一台计算机主存所包含的存储单元总数。

        存储带宽: 指单位时间内与主存交换的二进制信息量, 常用单位B/s(字节/秒)。(影响存储带宽的指标包括数据位宽和数据传输速率)。

        时间指标 

                主频f/时钟周期T , 外频、倍频

  • 主频f:CPU内核工作的时钟频率,即CPU内数字脉冲信号振荡的速率,与CPU实际的运算能力之间不是唯一的、直接关系
  • 时钟周期T:也称节拍周期,是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作
  • f 与T的关系:互为倒数, f 越高,T就越小 (f =100MHz时T=10ns, f =1GHz时 T=1ns)。
  • 外频:CPU(内存)与主板之间同步的时钟频率(系统总线的工作频率);
  • 倍频:CPU主频与外频之间的倍数;
  • 主频 = 外频 × 倍频 比如:Pentium 4 2.4G CPU主频 2400M = 133M (外频) × 18 (倍频)

        CPI (Clock cycles Per Instruction) 

         执行一条指令(平均)需要的时钟周期数(即T周期的个数),有单条指令CPI 、一段程序中所有指令的CPI、指令系统CPI 等

        CPI = 程序中所有指令的时钟周期数之和 / 程序指令总数 = \sum(程序中各类指令的CPI ×程序中该类指令的比例)

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

        实际上频率和IPC在真正影响CPU性能。

        准确的CPU性能判断标准应该是:(由英特尔提出并被业界广泛认可)

                CPU性能=IPC(CPU每一时钟周期内所执行的指令多少)×频率(MHz时钟速度)

        MIPS (Million Instructions Per Second)

每秒钟CPU能执行的指令总条数 (单位:百万条/秒)

        MIPS = 指令条数 / (执行时间×10^6) 

                  = 指令条数 / (所有指令CPU时钟周期数之和 / f × 10^6) 

                  = f  / (CPI × 10^6) 

                CPU时间 

                CPU时间 = 程序中所有指令的时钟周期数之和×T

                                = 程序中所有指令的时钟周期数之和 / f 

                执行一段程序所需的时间:CPU时间+ I/O时间 + 存储访问时间+ 各类排队时延等。

                计算CPU时间:

                或者由MIPS = 指令条数 / (执行时间×10^6) 得:程序执行时间t = 指令数量 / (MIPS ×10^6

计算机性能测试

        测试的基本原理

  •         计算机系统中配置了大量的传感器和寄存器,系统运行的相关参数保存在对应的寄存器中;
  •         通过图形 / 数据方式显示获取的状态数值;
  •         测试程序通过读取相应寄存器的值得到系统运行的状况;

        CPU测试工具

  •         CPUmark : 综合CPU测试,包括系统存储,浮点运算和逻辑运算;
  •         SysID : 测试CPU电压,运行频率,L1 、L2 Cache等;
  •         Hot CPU Tester :可测试机器稳定性,尤其是超频后的稳定性,找出 CPU 的最高超频点或缺陷,还可检测CPU的详细性能指标并给出量化的分数值。

        显卡测试工具

  •         3DMark :除衡量显卡性能外,已渐渐转变成一款衡量整机性能的软件;
  •         N-Bench2: 重点测试CPU以及系统图形性能;
  •         FurMark:通过皮毛渲染算法来衡量显卡的性能及其稳定性。

        硬盘测试工具 

  •         Hard Disk Speed : 硬盘测速软件;
  •         Disk Benchmark : 通过对不同大小的数据块对磁盘读/写速度的影响, 检测硬盘、U盘、 存储卡及其它可移动磁盘的读/写入速率 ;
  •         iometer : 可被配置为基准测试程序的磁盘和网络I/O的负载,可测试磁盘和网络控制器的性能、总线带宽和时延等参数;
  •         HDD Temperature Pro: 硬盘温度探测软件。 

        内存测试工具 

  •         CTSPD :选择主板厂商及型号后可详细测试内存的信息,包括:CAS latency (列地址选通时延)、RAS to CAS delay(RAS到CAS的相对延迟时间)、RAS precharge Trp (RAS预充电时间)、DIMM内存生产厂商和DIMM编号等信息。
  •         Memory Speed: 通过读写不同大小的块状数据来测试内存的性能;
  •         Memory Transfer Timing Utility :通过对源文件和目标文件进行校正和非校正复制,测试内存的读、写速率; 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【蓝桥杯选拔赛真题34】C++最大值 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C最大值 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C/C最大值 第十三届蓝桥杯青少年创意编程大赛C选拔赛真题 一、题目要求 1、编程实现(C) 给定一个…

C# WinFrom+AspNetCore WebApi实现大文件下载与上传

客户端UI: 服务端WebApi: 客户端代码&#xff1a; App.config&#xff1a; <?xml version"1.0" encoding"utf-8" ?> <configuration><appSettings><add key"WebApi" value"https://localhost:7285"/><…

Days 29 ElfBoard LCD屏双电荷泵电路原理

7寸LCD屏幕的屏幕排线中采用的供电电压是5V供电&#xff0c;但是在屏幕工作时需要VCOM-5.3V、AVDD-12.5V、VGL--7V、VGH-17V几组电压&#xff0c;所以要对初始的5V电源进行DC-DC电压变换&#xff0c;在这里我们用到了双电荷泵电路。 再此电路中VCC_5V为电源输入&#xff0c;E…

2024年2月5日-2月11日周报

论文阅读 1. 本周计划2. 完成情况2.1 论文摘要2.2 网络结构2.3 损失函数2.4 优化器2.5 代码2.5.1 代码结果2.5.2 代码大致流程 4. 总结及收获4. 下周计划 1. 本周计划 阅读论文《Data-Driven Seismic Waveform Inversion: A Study on the Robustness and Generalization》并实…

嵌入式Qt 第一个Qt项目

一.创建Qt项目 打开Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项 弹出New Project对话框&#xff0c;选择Qt Widgets Application 选择【Choose】按钮&#xff0c;弹出如下对话框 设置项目名称和路径&#xff0c;按照向导进行下一步 选…

vue3中Pinia

一、pinia的简单使用 vuex和pinia的区别 参考网址&#xff1a;[Vuex] Vuex 5 by kiaking Pull Request #271 vuejs/rfcs GitHub 1.pinia没有mutations&#xff0c;只有&#xff1a;state、getters、actions 2.pinia分模块不需要models&#xff08;之前vuex分模块需要models…

肿瘤微环境异质性对治疗反应的影响(综述)

Influence of tumour micro-environment heterogeneity on therapeutic response | Nature 肿瘤的形成涉及肿瘤细胞与细胞外基质、肿瘤血管和免疫细胞的共同进化。肿瘤的成功生长和最终转移并不完全取决于肿瘤细胞的基因改变&#xff0c;还取决于这种突变在特定环境中带来的适…

【Java程序设计】【C00270】基于Springboot的moba类游戏攻略分享平台(有论文)

基于Springboot的moba类游戏攻略分享平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的游戏攻略分享平台 本系统分为系统功能模块、管理员功能模块、以及用户后台功能模块。 系统功能模块&#xff1a;在平台首…

算法-3-基本的数据结构

单双链表 1.单链表双链表如何反转 import java.util.ArrayList; import java.util.List;public class Code01_ReverseList {public static class Node {public int value;public Node next;public Node(int data) {value data;}}public static class DoubleNode {public int…

ZigBee学习——BDB

✨本博客参考了善学坊的教程&#xff0c;并总结了在实现过程中遇到的问题。 善学坊官网 文章目录 一、BDB简介二、BDB Commissioning Modes2.1 Network Steering2.2 Network Formation2.3 Finding and Binding&#xff08;F & B&#xff09;2.4 Touchlink 三、BDB Commissi…

图像处理之《黑盒扰动的可逆噪声流鲁棒水印》论文阅读

一、文章摘要 近年来&#xff0c;基于深度学习的数字水印框架得到了广泛的研究。现有的方法大多采用基于“编码器-噪声层-解码器”的架构&#xff0c;其中嵌入和提取过程分别由编码器和解码器完成。然而&#xff0c;这种框架的一个潜在缺点是编码器和解码器可能不能很好地耦合…

linux系统下vscode portable版本的python环境搭建003:venv

这里写自定义目录标题 python安装方案一. 使用源码安装&#xff08;有[构建工具](https://blog.csdn.net/ResumeProject/article/details/136095629)的情况下&#xff09;方案二.使用系统包管理器 虚拟环境安装TESTCG 本文目的&#xff1a;希望在获得一个新的系统之后&#xff…

电路设计(15)——篮球赛24秒违例倒计时报警器的proteus仿真

1.设计要求 设计、制作一个篮球赛24秒违例倒计时报警器。要求&#xff1a; &#xff08;1&#xff09;具有倒计时功能。可完整实现从“24”秒开始依序倒计时并显示倒计时过程&#xff0c;显示时间间隔为1秒。 &#xff08;2&#xff09;具有消隐功能。当“24”秒倒计时…

洛谷: P1308 [NOIP2011 普及组] 统计单词数

前言: 这道题没理解清题目表达意思&#xff0c;我开始想的是用map来记录个数&#xff0c;然后一个变量记录一开始出现的单词位置&#xff0c;不挺简单的吗&#xff0c;然后....就AC了2个..从错误提示能看到个数没啥问题&#xff0c;但是第一个单词位置不对&#xff0c;看了新样…

【C语言】assert断言:保护程序的利器

在软件开发过程中&#xff0c;我们经常会遇到一些假设条件或者预期行为。例如&#xff0c;我们可能假设一个函数的输入参数必须在某个范围内&#xff0c;或者某个变量的值应该满足特定的条件。当这些假设或预期行为被打破时&#xff0c;程序可能会出现异常行为&#xff0c;甚至…

GEE:随机森林回归教程(样本点、特征添加、训练、精度、参数优化)

作者:CSDN @ _养乐多_ 对于分类问题,这个输出通常是一个类别标签 ,而对于回归问题,输出通常是一个连续的数值。回归可以应用于多种场景,包括预测土壤PH值、土壤有机碳、土壤水分、碳密度、生物量、气温、海冰厚度、不透水面积百分比、植被覆盖度等。 本文将介绍在Google…

嵌入式Qt Qt 中的坐标系统

一.Qt中的坐标系统 实验1&#xff1a;窗口坐标大小 #include <QtGui/QApplication> #include <QPushButton> #include <QDebug> #include "widget.h" int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();qDebug()&…

Vue中v-on 可以监听多个方法吗

当然可以&#xff01;Vue.js是一款非常强大的JavaScript库&#xff0c;它提供了很多方便的方法和指令&#xff0c;使我们可以更容易地构建交互式的Web应用程序。其中&#xff0c;v-on指令是Vue.js中一个非常重要也非常常用的指令&#xff0c;它用于监听DOM事件&#xff0c;并在…

【DDD】学习笔记-四色建模法

或许正是认识到彩色 UML 在建模过程的不足之处&#xff0c;ThoughtWorks 的徐昊才在彩色 UML 基础之上提出了自己的“四色建模法”。可考的四色建模法资料仅见于徐昊在 InfoQ 上发表的文章运用四色建模法进行领域分析。在这篇文章中&#xff0c;徐昊回答了建模活动的一个关键问…