408备考笔记

记录向,记录备考学习过程中的疑问和解答。

注:本人容易抠字眼和部分专有名词较真,大部分也都是这类问题

组成原理——Cache

Q:为什么在 寄存器→Cache→主存→外存 这个储存上写一个英文名字?Cache是什么?写中文名不行吗?为什么考题中计算Cache未命中需要去主存查找的损耗时间叫做“缺失代价”?为什么不能叫“缺失时间”或者“损耗时间”?平均访问时间AMAT的计算公式:命中时间+缺失率×缺失代价是什么意思?为什么不能是命中率×命中时间+缺失率×(命中时间+缺失代价)?

A:Cache(高速缓存)

Cache 来自法语 cacher,意思是“隐藏、藏起来”。

早期计算机里,它就是一个“藏起来的快速小仓库”,所以叫 Cache。

中文翻译成“高速缓存”是意译,但:

  • 太长了,说“高速缓存”不如说 Cache 方便;
  • 业界习惯用英文;
  • 类似 CPU、RAM、I/O,大家都直接用缩写。

所以不是非用英文,而是约定俗成。

把他叫做“Cache”或“高速缓存”都可以,考试里简答题最好写“Cache(高速缓存)”。

为什么叫“缺失代价”,英文是 miss penalty。

  • miss:缺失,没在 Cache 里找到。
  • penalty:惩罚、代价、损失。

合起来就是:

因为缺失,导致不得不额外付出的时间代价。

它不叫“额外时间”,是因为在体系结构里,缺失不仅多花时间,还可能:

  • 占用总线;
  • 浪费带宽;
  • 增加功耗;
  • 阻塞流水线。

所以用一个更抽象的“代价”来概括。

但考试里,它基本就是额外花的时间,考试只考额外花的时间。
在考试时可以把它理解成:

缺失代价 = 缺失时额外花的时间。
考试时叫它“额外时间”也没问题,意思一样。非考试时需要记得还有其他损耗

平均访问时间AMAT的计算公式:

标准公式:AMAT=命中时间+缺失率×缺失代价

  • 每次都要花 1ns 查 Cache。
  • 20% 的情况,再多花 50ns 去主存。

我觉得记忆起来很奇怪。

根据Cache的原理:访问数据时先访问Cache,假设消耗2ns,找到后(俗称命中后)即可使用,而找到的概率是80%。若没有找到(俗称未命中),就需要去主存寻找,去主存寻找较慢,假设在主存消耗的时间为50ns,这50ns叫做缺失代价,没有找到的概率也就是20%,这20%叫做缺失率,那么平均访问时间也就是80%的只花了2ns和20%的花了52ns,也就是:

我自己理解的计算公式:AMAT=命中率×命中时间+缺失率×(命中时间+缺失代价)

标准公式更简洁,但我理解的公式计算出来也没有错误,可以按自己理解的来。

组成原理:I/O中断

Q:I/O代表的是输入输出,中断是中断,I/O不一定产生中断,中断也不全是I/O产生的,也会有别的产生原因,那I/O和中断是什么关系?

A:“中断”是一个大机制,“I/O 中断”只是这个机制里的一种具体来源

不是只学 I/O 中断,也不是中断只由I/O造成,只是 输入/输出(I/O)所造成的中断是考试重点,所以经常提到还会单独拿出来说,其他的较为少考,提到较少,并不代表没有其他中断

因为:

  1. I/O 操作慢,最需要中断来通知 CPU;
  2. 操作系统管理 I/O 主要靠中断;
  3. 考试里“中断控制 I/O 方式”是高频简答。

要学:

  • I/O 中断:外设完成 I/O 后通知 CPU。
  • 时钟中断:时间片轮转,进程调度。
  • 缺页异常:虚拟存储器里,页不在内存,需要从磁盘调入。
  • 系统调用/陷阱:用户程序请求 OS 服务。
  • 除零、溢出、非法指令:内部异常。

中断类型分为:

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

You Found Me.

支付宝
微信