美文网首页
计算机系统结构

计算机系统结构

作者: 谭英智 | 来源:发表于2021-05-16 15:18 被阅读0次

Architecture

  • Acceleration, Amdahl

    加快任务完成时间

    根据Amdahl定律,加快经常性事件

    利用程序的局部性原理

  • Instruction, Interface

    使用精简指令集或者复杂指令集

  • Processing, Parallel

    并行处理

    指令并行与数据并行

  • Storage(Memory), System

    局部性原理与加快经常性事件

  • Network, connection

    多核架构下,如果连接CPU

    数据中心如何连接机器

    需要考量延迟和带宽

    数据包如何传

现代计算机的四大基石

  • 图灵机

    问:存不存在一个解决所有数学问题的一般算法

    图灵:有

cs-tuling

图灵机由以下三项组成:

  • 存储:一条无限长的0 1条带

  • 处理:一个对条带进行有规则的变换

  • 传输:一个可以移动条带的读写头

  • 冯诺依曼体系结构

    图灵机简单的模型,虽然可以解决了一切的数学问题

    但是由于结构单一,造成性能上无法达到要求

    冯诺依曼的出现正是解决在图灵机的基础上的性能问题

cs-feng
  • 摩尔定律

    芯片上晶体管的数量每18-24个月翻一番

    计算机需要硬件的支持,摩尔定律保证了计算的硬件发展

  • Amdahl定律

    系统的瓶颈一般在经常性事件

    在优化系统时,先找出经常性事件,然后再对经常性时间优化

    是最快最有效的优化手段

计算机系统架构师的任务

  • 向前看

    理解历史为什么这么设计

  • 向后看

    理解未来技术的发展趋势

  • 向上看

    理解需要解决的问题和它的特性

  • 向下看

    理解底层技术的功能特性

优化系统的万能手段

  • 找出经常性事件
  • 找出加快经常性事件的方法
cs-amuda

局部性原理

  • 时间局部性
  • 空间局部性

并行性

  • 位并行
  • 字并行
  • 指令并行
  • 线程级并行
  • 进程级并行
  • 机器级并行

提升并行的途径

  • 流水线技术

    把任务拆分成不同的步骤

    不同的步骤由不同的硬件完成

  • 重复资源

    对于耗时的步骤,可以摆放多个设备处理

  • 资源共享

    同一个设备,分时的处理不同的任务

计算机系统设计的四大要素

  • 性能
  • 成本
  • 能耗
  • 可靠性

冯诺依曼的发展

  • 输入输出
    • CPU轮询IO
    • 中断通知
    • DMA直接访存
    • IO处理机
  • 并行处理
  • 存储器
    • 寄存器位数和个数的增多
    • 高速cache的发展
  • 指令集
    • 复杂指令集CISC
    • 精简指令集RISC

流水线技术

不适合使用流水线的任务:

  • 稀疏的任务
  • 只有一个任务
  • 多个不同的任务组合

适合使用流水线的任务:

  • 密集且任务类似的任务

例子:

  • 处理及流水线

    取指 -> 译码 -> 执行 -> 访存 -> 写回

  • MR

    Map -> Reduce

相关

cs-xiangguan

相关的分类:

  • 数据相关

    一条指令操作完的数据,会流向另一条指令

    编译器通过乱序局部指令,来减少数据冲突

  • 名相关

    指令间没有数据的流动,但是它们使用了相同的变量

    可以通过编译器使用换名技术来消除相关

  • 控制相关

    例如使用if,while等指令

    由于CPU无法直到下一条指令到底是什么

    编译器会选取其中一个分支的指令让CPU执行

    如果控制指令的判断不是预期的

    则丢弃执行的部分

cache

减少cache不命中

  • 第一次不命中

    通过预取(编译或者硬件)

  • 容量太小导致不命中

    一个块由于太大,一次缓存无法全部载入

    导致后续继续访问此块时

    再次发生缓存不命中

    可以通过增大缓存容量来解决

  • 冲突不命中

    由于使用了hash或者组相联cache,原本加载的cache被新的cache代替,然后又再次发生访问,导致cache不命中

    可以提高组相联的容量来解决

提高cache的性能

  • 增加多一级cache
  • 使用写回法来代替写直达方法
  • 使用写缓冲
  • 使用非阻塞cache技术,在不命中cache时,cpu依然可以运行做别的事情
  • 硬件越简单,速度越快
  • 让cache与CPU片内
  • 使用虚拟cache而不是物理cache,用虚拟地址来标志cache会比使用物理地址快(由于少了地址转换带来的开销)
  • cache访问流水化
  • 编译器优化,减少相关性

cache结构

  • 直接相联
  • 全相联
  • 组相联

关于共享变量的设计

根据cache的MSI协议,多个核之间共享了一个变量,此变量在一个核内发生变化,势必会广播到其他监听此变量的核中。

  • 设计的共享变量应该尽量减少核的共享
  • 利用链表等数据结构可以减少共享的次数

相关文章

  • 系统结构复习提纲

    第1章 计算机系统结构基础及并行性的开发 1.2 计算机系统结构、组成、实现 计算机系统结构、组成、实现三者互不相...

  • 课程

    电子技术、离散数学、程序设计、数据结构、操作系统、计算机组成原理、微机系统、计算机系统结构、编译原理、计算机网络、...

  • 计算机本科课程

    大学计算机专业课程:电子技术、离散数学、程序设计、数据结构、操作系统、计算机组成原理、微机系统、计算机系统结构、编...

  • 软件设计师考试 | 第一章 计算机系统知识 | 计算机体系结构

    (一)计算机体系结构的发展 1.计算机系统结构概述 计算机体系结构。指计算机的概念性结构和功能属性。 计算机组织。...

  • 计算机组成原理

    计算机系统概论 计算机的发展及应用 系统总线 存储器 输入输出系统 计算机运算系统 指令系统 CPU的结构和功能 ...

  • 计算机系统结构重点知识点

    第1章 计算机系统结构的基本概念 1.1 解释下列术语 层次结构:按照计算机语言从低级到高级的次序,把计算机系统按...

  • 第二部分 计算机组成原理(45 分)

    (一)计算机系统概述 1、计算机发展历程2、计算机系统层次结构(1)计算机系统的基本组成(2)计算机硬件的基本组成...

  • 2018-08-05

    在计算机科学领域中有很多牛逼的人,比如提出了通用的计算机系统结构的冯诺依曼,直到今天,系统结构依然是计算机设计中最...

  • 01_计算机系统的组成

    一、计算机系统的基本组成结构 计算机系统由硬件系统和软件系统两大部分组成。 1.硬件系统 计算机硬件系统是由运算器...

  • 计算机原理1

    计算机原理程序操作计算机 计算机软硬化层次结构: 硬件-->软件-->程序 系统软件 :操作系统 编译器 汇编器 ...

网友评论

      本文标题:计算机系统结构

      本文链接:https://www.haomeiwen.com/subject/mdcrjltx.html