软件设计师/系统架构师---计算机结构体系

一、计算机硬件结构

     现代计算机都是遵循着冯·诺依曼架构,还没有冯·诺依曼架构之前,计算机也是五大部件组成。

分别为运算器(ALU)、控制器(CU)、存储器(Memory)、输入设备(Input Devices)和输出设备(Output Devices)。这些部分构成了一个完整的计算系统,能够接收输入、处理数据、存储信息和产生输出。特点就是以运算器为中心。

      而后冯·诺依曼架构的一个关键特性是存储程序的概念。在这一架构中,程序指令和数据都存储在相同的存储器中,这意味着计算机能够从存储器中读取程序指令并执行它们,而不仅仅是处理数据。这种设计使得计算机能够执行一系列预先编写的指令集,从而实现了程序的自动运行。特点就是以存储器中为中心。

 两个结构不同,但本质都一样,把数据输入到计算机,然后在输出。能被计算机处理都叫"数据"。

1.CPU

  CPU(中央处理器)常见的有inte、AMD。一个CPU的组成由运算器和控制器组成。大概带大家了解一下CPU参数。

  主频是CPU的时钟频率,即工作频率,单位通常是  (GHz)。主频越高,理论上CPU的处理速度就越快。1Hz 意思是一秒一下,100Hz一秒一下。例如手机显示器电脑显示器有60Hz 、120Hz。人的心跳1.17 Hz。

  核心数量指CPU中的物理核心数量。现代CPU通常有多核心设计,可以同时处理更多的任务,例如CPU主频2.9GHz,核心数是六核心,意味着这个CPU里面有6个2.9GHz理核心数量。

  线程数量每个核心可以通过超线程技术同时处理多个线程,增加线程数可以提高多任务处理能力。例如六核心采用inte超线程技术,每个一个物理核心虚拟出两个线程。6核心*2 = 12线程数。线程成为了调度的基本单位。

 缓存 (Cache):缓存是位于CPU内部的高速存储器,用于暂存常用数据和指令,以减少从较慢的主存读取数据所需的等待时间。

1.1运算器(ALU)

    运算器的作用:算术运算(加减乘除等)、逻辑运算(与或非)

   运算器组成结构:

  •      逻辑运算单元ALU:通过内部复杂的电路实现加减乘除、与或非运算。
  •      累加寄存器AC(通用寄存器):ALU运算结果暂存累加器,用于存放操作数,或运算结果。
  •      数据缓冲寄存器DR:补偿CPU和DRAM之间的访问速度。
  •      状态条件寄存器PSW:保存指令状态。

    

1.2 控制器(CU)

   控制器的作用是指挥程序运行

   控制器的组成:

  •      指令寄存器IR:CPU储存当前所需要访问的
  •      程序计数器PC :储存下一条指令、为了实现指令顺序执行,程序计数器值加1
  •      地址寄存器AR:地址寄存器的主要功能是暂时存储将要访问的内存单元的地址
  •      指令译码器:指令译码器的作用是对从内存中读取的机器指令进行解码

2.存储器(Memory)

    这里所说的存储器是主存,也就是内存条,运行内存。是计算机运行时可以直接访问的存储器。内存通常是易失性的,也就是说当电源关闭时,内存中的数据会丢失。

  

3.输入设备(Input Devices)

   输入设备用于将外部数据或命令传送给计算机系统,常见的输入设备有键盘、鼠标、扫描仪、麦克风、摄像头等

4.输出设备(Output Devices)

   输出设备用于从计算机系统中获取结果或信息,常见的输出设备有显示器、打印机、音响、投影仪等。

二、数据的表示

 1.进制转换

2.数据表示

三、Flynn分类法

是一种高效能计算机的分类方式,记一下,不常考

四、CISC与RISC

  是两种不同的指令集架构,在做芯片设计的时候选择采用的指令集架构,CISC(复杂指令集)多数Intel x86 架构的处理器,Intel 和AMD,而RISC(精简指令集)多数用于移动端,例如手机、路由器、平板、嵌入式开发。

1.CISC(复杂指令集计算)

  • 特点

    • 指令集丰富,提供了许多复杂的指令,可以完成较复杂的任务。
    • 指令长度可变,指令格式多样。
    • 一些指令可以访问内存,直接进行数据加载和存储操作。
    • 寄存器数量相对较少。
    • 通常需要更多的硬件逻辑来实现复杂的指令,可能导致更高的功耗和更复杂的电路设计。

2.RISC(精简指令集计算)

  • 特点

    • 指令集简单,只包含最基本的指令。
    • 指令长度固定,通常为32位或64位。
    • 大多数指令只需要一个时钟周期就可以完成。
    • 寄存器数量较多,尽量避免访问内存,以减少访存延迟。
    • 通常不支持直接访问内存的指令,而是通过寄存器到寄存器的计算和显式的载入/存储指令来处理内存访问。

五、流水线技术

1.流水线指令

  流水线的三个步骤取指令、分析指令、执行指令。实际上不止三步,多数情况这三步来出题。工作原理是CPU读取运行内存的数据(属于取指令,取内存中的操作指令,并不是直接数据),取到指令后分析指令,分析该指令做什么计算,例如加减法、哪块地址数据相加。而后执行指令,执行分析后的数据写会到运行内存。

2.不采用流水线

    不采用流水线计算公式 顺序执行的工作方式需要的时间为:n*(t1+t2+t3)

    n:指令执行次数,看图有三条指令 执行了三次的

   t1、t2、t3:取指令时间、分析指令时间、执行指令时间。

 带入公式计算:3*\left ( 1+1+1 \right )=9

来个复杂点的,如下:

 带入公式计算:3*\left ( 1+3+2+2 \right )=24

再来个真题:

3.采用流水线

采用流水线计算公式:\left ( 1t+t2+t3 \right )+\left ( n-1 \right )*t

m:表示取指令、分析指令、执行指令。以上图所属表示3

t:表示最长指令时间。假如指令=1t、分析指令=3t、执行指令=2t。那么最长就是分析指令=3t

t1、t2、t3:取指令时间、分析指令时间、执行指令时间。

n:指令执行次数。

带入公式计算:\left ( 1+1+1 \right )+\left (3-1 \right )*1 =5

4.吞吐率(在单位时间内,所完成的量)

   流水线的吞吐率,是指在单位时间内流水线所完成的任务数量或输出的结果数量。

    吞吐率=执行条数/流水线执行时间 

5.流水线的加速比

    完成同一批任务,不适用流水线所用的时间与使用流水线所用的时间之比为流水线的加速比。

    s=不适用流水线执行时间/使用流水线执行时间

六、存储系统

    存储系统是指计算机中由存放程序和数据的各种存储设备。存放二进制的东西。存储器可划分的类型有很多,看图。

再来看层次划分图

1.Regs

Regs(寄存器) 离CPU最近,速度最快。不常考,了解即可

2.Cache(高速缓冲存储器)

     2.1 Cache是什么东西?为什么需要它Cache?

     Cache是在CPU内部很小的存储器,Cache的读和写比运行内存快很多。Cache存在的意义就是为了解决速度不同步问题。

      假如一台计算机CPU性能很强,但是没有Cache,而这台计算机运行内存读和写的速度很一般,通过CPU直接和运行内存读写,CPU的性能已被运行内存限制。因此为了解决CPU和运行内存速度不匹配的问题,在CPU和运行内存直接添加了CaChe。(运行内存也就是主存DRAM)

   2.2  Cache概念

       Cache按内容存取址

       提高CPU数据输入输出的速率,突破冯诺依曼瓶颈,既CPU与存储系统间数据传送带宽限制

       在计算机的存储体系中,Cache是访问深度最快的层次

       使用Cache改善系统性能的依据是程序的局部性原理

       Cache命中当处理器需要访问某个数据时,先在Cache中查找该数据,如果能找到,则表示             发生了Cache命中,可以直接从Cache中读取数据,而不需要从主存中读取。

 2.3 主存于Cache地址映射

        主存于Cache地址映射:主存的任意一块可以映像到cache中任意一块

        直接相联映射:各区中一块只能存入缓冲的同组好的空间内

        组内关联:组相联映射是直接映射和全相联映射的折中方案

3.多级Cache(高速缓冲存储器)

   

     多级Cache就是CPU速度太快了。加了一个Cache还是速度不匹配,那就加多几层。现在在市场上的英特尔都是三级缓存的。你也可以通过任务管理器看看你的电脑是几级缓存。

4.存储器

   存储器生活中很常见,存储器有区分主存和辅存

  定义:主存储器简称主存或内存,用来存放电器正在使用的或将要使用的数据。

 最常见的主存是电脑上的内条DRAM.

还包括ROM、PROM、EPROM。

种类:

  1.随机存储器RAM:特点是数据可读写,断电后会丢失数据,

     RAM又分为用于制作内存的DRAM动态存储器 和用于制作高速缓存的SRAM静态存储器

  2.只读存储器ROM:特点是智能读取数据,断电后不会丢失数据,例如以前的磁带,光盘,只读读取数据,不能写数据。

     特列: PROM 和 EPROM 可擦除可编程只读存储器,PROM只能写入一次,EPROM可以多次写入

   外存(辅存):辅助存储器指的是计算机内部或外部的存储设备,用于存储大量的数据和程序,硬盘,U盘。CPU需要处理数据时,外存加载到主存才能被CPU处理,例如打开一份文件word文档时,从辅助加载到主存。

5.磁盘阵列(详细 推荐学习 RAID磁盘阵列 - misakivv - 博客园

        磁盘阵列(RAID,Redundant Array of Independent Disks)是将多个硬盘驱动器组合在一起,形成一个逻辑存储单元的技术。

      磁盘阵列是一种数据存储虚拟化技术,用户可以采用多个硬盘组合,在体验上是只有一块磁潘。

  • 数据冗余:通过将数据复制到多个硬盘上,RAID能够在一块硬盘故障时保护数据。
  • 性能提升:某些RAID级别可以通过并行读写操作提升整体性能。
  • 容错能力:某些配置(如RAID 1、RAID 5)允许系统在硬盘故障时继续运行,不影响数据的可用性。

七、总线系统

   1.为什么要用总线

   早期的计算机,各个部件都是分撒连接的,线路非常复杂,可扩张性很差,所以使用总线的主要作用是共享传输介质、简化通信提高效率。

 2.什么是总线

总线是计算机中用于在不同设备或组件之间传输数据的共享通信通道。它是一组能够传递信息的物理连接线,也可以被理解为一种通信协议,用于控制和协调各个硬件组件之间的数据交换。

3.总线的分类

  • 数据总线: 传输数据。
  • 地址总线: 传输数据的存储地址。
  • 控制总线: 传输控制信号,如读写操作的控制信息。

4.串行总线和并行总线的区别

八、可靠性

  (真题)某计算机系统构成如下图所示,假设每个软件的干小时可靠度R为0.95,则该系统的干小时可靠度约为

公式:

 1.串联部件可靠度 = 各个部件的可靠度的乘积

 2.并联部件的可靠度= 1 - 部件实失效的乘

看图有4个R,最左边和最右边的R是串行的,中心的2个是并行的。

先看并行的 并联部件的可靠度 = 1 - 部件失效率的乘积  那么 它就是 1- (1 - 0.95)^2   。   

再看 最左边和最右边的R是串行的 可靠都是 0.95 。那么 0.95 * (1- (1 - 0.95)^2) *0.95

九、校验码(建议看视频学习)

1.奇偶校验

用于简单的错误检测。可以是奇校验或偶校验。在数据位中添加一个额外的比特位,使得所有比特位的总和为奇数(奇校验)或偶数(偶校验)如果接收的数据的总和与预期的奇偶性不符,就表示发生了错误。

      例子:

       数据位:1011001

  1的数量:4(偶数)

        偶校验位:1(使总数变为偶数)

       最终结果:10110011(数据 + 校验位)

2.循环冗余校验(CRC)

    是一种更复杂的错误检测方法,常用于网络通信和存储设备。数据被视为多项式,使用生成多项式进行计算,生成一个短的校验值(CRC码)。接收端通过相同的多项式重新计算CRC,并与发送的CRC进行比较,以检测错误。

3.海明码

       海明码(Hamming Code),又称汉明码,是一种用于错误检测和纠正的编码技术,由理査德:海明(Richard Hamming)在1950年代提出。海明码通过在数据中添加冗余位(parity bits),使得在传输过程中出现的错误可以被检测和纠正。

  • 兄余位:海明码中除了原始数据位之外的额外位,用于存储校验信息,帮助检测和纠正错误。
  • 校验位:冗余位在海明码中的特定位置,通常位于2的幂次方位置(如第1位、第2位、第4位等)。
  • 错误检测与纠正:海明码能够检测并纠正单个位错误,同时能够检测多个位错误但无法纠正

           海明码的构成方法是在数据位之间的特定位置上插入K个校验位,通过扩大码距来实现检错和 纠错。设数据位是n位,校验位是K位,则n和k必须满足以下关系:2k>=n+k+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值