计算机系统结构 概论与基础

计算机系统结构是什么?

用文字拆解法了解概念
比如我们可以把计算机系统结构拆成三个部分:计算机,系统,结构。这三个词的意义在这里面代表什么
计算机:任何可以用作运算,存储等功能的机器
系统:这里面是形容词,对某一个群体的描述
结构:一种有序的构成方式
所以合在一起理解为:计算机各个部分,部件之间的关系,联系和影响

计算机各个部分,部件之间的关系,联系和影响

怎样研究计算机系统结构?

分而治之,逐个击破
计算机中有不同的方向,而计算机科学家们是如何去研究的呢?那就是分层次和领域进行研究,比如机器学习方向和视觉处理方向。
当然也可以从构成的层次进行研究,比如可以分为六个层级
L5:应用语言机器级
L4:高级语言机器级
L3:汇编语言机器级
L2:操作系统机器级
L1:机器语言机器级 
L0:微程序机器级

分层:

人                    转换器(翻译器,解释器)               作用
L5:应用语言机器级      应用程序包
L4:高级语言机器级      编译程序
L3:汇编语言机器级      汇编程序
L2:操作系统机器级                                           中介,环境提供,工具集。包括文件管理,进程管理等
L1:机器语言机器级      微指令
L0:微程序机器级                                             控制电路
硬件

其中的L0,L1属于物理机,而L2,L3,L4,L5属于虚拟机。其中L5->L4->L3->L1都是属于翻译,而L1->L0属于解释。因为机器语言是指令,需要一条一条执行,所以是解释。在上面描述中,操作系统不属于转换器,而是提供一个平台和环境,把L5,L4,L3这三个语言转化为机器语言。而为微程序则是通过微指令控制电路。一般情况下,语言翻译都是更高一级翻译为更第一级,而不是直接跨级别翻译。但是有时候高级语言可以直接翻译为机器语言。

我们把每一级之间成为界面,这个界面的意思并不是UI的意思,而是每个级别之间的界限

怎样区分计算机系统结构、组成与实现?

用黄金圈法则快速区分

三者不同,各有分工,但又相互作用,互相影响

1种系统结构:对应N种组成设计:对应M种实现技术
意思就是1种系统结构可以拥有N种组成设计,而1种组成设计又可以拥有M种实现技术

结构:高层,偏向设计实现
组成:中层,偏向逻辑实现
实现:底层,硬件组成实现

如果按照黄金圈法则区分就是:
结构:做什么,指定做事情的方向,要不要做这个事情等意思
组成:怎么做,做到什么程度,类似讲思路的ppt工程师那样
实现:具体怎么做

换句话说就是,先定好方向,然后再做好计划,最后进行实施

是什么决定了软、硬件的取舍?

一般情况下,我们考虑这方面问题,我们都会从三个方面考虑:复杂性,成本,性能
  • 性价比
性能和价格这两个属性
  • 不要过多限制组成和实现技术的采用
  • 软硬兼顾、统筹考量
既然考虑性价比,那么对应软硬件来说,从业务出发,那就应该考虑怎么用最低成本达到最好的性价比,所以需要从大局出发同时考虑软件和硬件的实现
  • 灵活性,适应性
或许有分的写法,毕竟对于计算机来说,肯定需要有一定的灵活性和适应性,不能限制死了,算是:不要过多限制组成和实现技术的采用。的写法的替代方式

设计计算机系统要遵循什么理论?

定量设计原理
因为计算机属于处理数据的机器,同时按照字面意思,就是按照某种数据进行计算机设计。
而数据来源是收集过来的,然后再分析,最后再进行使用(统计)。这样追求设计出高性能低成本的计算机
  • 哈夫曼压缩原理
  • 阿姆达尔(Amdahl)定律
  • 局部性定律
这三个定律其实都是为了解决一个事情,就是解决高频率的优化,包括从时间,空间层面解决
哈夫曼压缩原理,就是用小的空间存储原本的高频值
阿姆达尔定律和局部性定律都可以看成一个。从时间上的角度,比如某一个数据A在t1的时候使用到了,然后在t4的时候还会用到。
而空间上的角度则是,A指令在当前被用到,经过一段时间后,A指令又被用到。例如A,B,C,A这里面A的频率是明显高于B和C的,如
果此时我们集中精力去优化A的执行时间,比如原本的A需要运行10s,优化后运行时间为6s,在这个例子种则可以加快4s的运行速度

计算机系统某一功能处理时间占整个系统的50%,若把该功能的处理速度加快到原先的10倍,整个系统性能提高多少?

阿姆达尔计算题目
这题里面的系统性能提高多少,问的就是加速比,就是原本时间/优化后的时间
所以这里可以带入数据,或者设置总时间为x,都可以计算出来
比如设整体时间为x,则该功能原时间为0.5x,其他功能总时间为0.5x,该功能优化十倍,则是0.5x/10,所以可以得到x/(0.5x + 0.5x/10),最后得到20/11

怎样设计计算机系统?

我们不需要真的知道如何设计计算机系统,毕竟我们并不是这方面的专家,我们只需要了解计算机是如何被设计出来的,知道思路即可
  • 任务
其实计算机的设计主要围绕成本和性能这两个话题,然后可以加上适应性和灵活性,最后加上软硬兼顾,统筹考量的大局观即可
  • 方法
就如同软件开发一样,我们首先得知道需求,根据需求来进行软件和硬件的分配,所以我们是从中间到两边的策略。而纯粹的软件开发则是从上到下的策略,或者从下到上的策略

软件、应用、器件的发展对系统结构产生了什么影响?

  • 软件(移植性)
    • 统一高级语言
    • 采用系列机
    上下兼容:
    如同小米14mini,小米14,小米14 旗舰版pro这三个机器,属于同结构,同时间发布的机器,区别就是不同配置,不同性能,不同价格。
    而如果以小米14作为锚点,开发软件,则软件兼容必须向上兼容,尽量向下兼容,也就是说小米14 旗舰版pro这个必须完美运行这个软件,而小米14mini尽量让它可以运行
    
    所以,上下兼容指的是性能的好坏
    
    前后兼容:
    如同小米13,小米14,小米15这三个机器,不同时间阶段发布的机器,以14为锚点,则基于14开发的机器,必须要在15上面完美运行该软件,尽量可以在13上面运行
    
    因为一般后发布的机器的性能理论上肯定比前面发布的机器性能更好
    
    说白了就是基于当前机器性能,必须保证更高性能的机器可以兼容,而更低性能的机器尽量兼容
    
    • 模拟和仿真
    模拟:拥有自己的微程序和指令集,这里是由宿主机的微程序对虚拟机的微程序进行解释,效率较低,成本较低,复杂度较低,适用性更高,灵活性更高
    仿真:无自己的微程序,使用宿主机的微程序对虚拟机上的机器语言进行解释,效率高,复杂度高,成本高,适用性低,灵活性低
    
  • 应用
    • 计算机应用归类:数据处理、信息处理、知识处理、智能处理
  • 器件(元器件,硬件)
    • 通用片(非用户片)、现场片、用户片

什么是并行性?

并行与并发,从时间点的角度理解真“同时”与假“同时”。

单核、多核、物理核、逻辑核、单核单线程、超线程技术、大小核

物理核就是拆机后真实存在的核心个数
逻辑核就是基于物理核上使用超线程技术形成的多个逻辑上的核心,一般情况下,一个物理核,拥有两个逻辑核,
而这种拥有多个逻辑核的物理核被称为大核,而一个物理核只有一个逻辑核的被称为小核。同时逻辑核也可以被称为线程

从不同角度来看,并行性有哪些等级?

  • 从执行程序的角度
    • 指令内部
    • 指令之间
    • 任务或进程之间
    • 作业或程序之间
我们可以这样理解:
从宏观到围观的方式:一台电脑上面可以同时运行多个程序(作业),而每个程序中可能拥有多个进程,
每个进程执行的时候会调度不同的指令,而每个指令执行过程中是互不干扰的情况下
  • 从处理数据的角度
    • 位串字串
    • 位并字串
    • 位(片)串字并
    • 全并行或位(片)并字并
位串字串:处理位和字的时候都是串行的
位并字串:处理位的时候是并行的,处理字的时候是串行的
位(片)串字并:处理位的时候是串行的,处理字的时候是并行的
全并行或位(片)并字并:处理位和字的时候都是并行的
  • 从信息加工步骤核阶段的角度
    • 存储器操作并行
      • 并行存储器系统
      • 相联处理机
    • 处理器操作步骤并行
      • 流水线处理机
    • 处理器操作并行
      • 阵列处理机
    • 指令、任务、作业并行
      • 多处理机

怎样实现并行性?

用换位思考法自问自答

资源共存:同时读取一个内存
资源重复:多台机器同时运行
时间重叠:在一段时间内,处理完成多个任务,并且在处理过程中每个任务都是单独处理的,只不过在多任务之间频繁切换

关于时间重叠,举一个例子,在小学上学一天,会有多个课程,从一天的角度来看,这一天是并行的状态,因为一天内学习完成了多门课程。
只不过每门课程需要一定的单独的时间学习,然后切换为下一个课程继续学习

计算机机器指令间的“一次重叠”是什么?

计算机有三个指令操作:取指,分析,执行

通过上图我们可以观察到指令1,指令2,指令3的执行过程,其中当指令2开始取值的时候,指令1为分析,
而指令3取值的时候,指令2为分析,指令1为执行,也就可以推得规律为:取值k+1,分析k,执行k-1

什么是紧耦合、松耦合?

计算机系统结构中的耦合指的是物理上的硬件上的紧密程度和交叉作用
  • 最低耦合系统
  • 松散(间接)耦合系统
  • 紧密耦合系统
最低耦合系统数据交互非常低效,可以独立完成自己的工作,和周围设备没有过多的线路连接
紧密耦合系统数据交互非常频繁高效,和周围设备或部件有大量的线路连接

计算机系统有哪些类型?

  • 弗林(Flynn)分类法
弗林分类是按照指令流数据流多倍性进行分类的,按照瓶颈部件一次最多能处理多少条指令或者数据

S(Single ):单
I(Instruction):指令
M(Multiple):多
D(Data):数据
  • SISD:单指令流单数据流
  • SIMD:单指令流多数据流
  • MISD:多指令流单数据流
  • MIMD:多指令流多数据流
  • 冯氏(冯泽云)分类法
    • 字串位串
    • 字串位并
    • 字并位串
    • 字并位并
posted @ 2024-09-23 14:45  影梦无痕  阅读(131)  评论(0)    收藏  举报