这次就边学边总结吧,不等到最后啦

Textbook:

《计算机组成与设计——硬件/软件接口》    HI

《计算机体系结构——量化研究方法》         QR

Ch3. Memory Hierarchy

1. Physical Memory

SRAM:CPU缓存(比如PentiumII的外置二级缓存芯片)

DRAM:内存芯片,需要Dynamic刷新。

从概念上分为:Channel > DIMM > Rank > Chip > Bank > Row/Column

Channel:一个主板上可能有多个插槽,用来插多根内存。这些槽位分成两组或多组,组内共享物理信号线。这样的一组数据信号线、对应几个槽位、对应几根内存条称为一个channel,一个通道。

DIMM是主板上的一个内存插槽

Rank是一组内存芯片的集合。当芯片位宽x芯片数=64bits(内存总位宽)时,这些芯片就组成一个Rank。一般是一个芯片位宽8bit,然后内存每面8个芯片,那么这一面就构成一个Rank。(为了提高容量,有些双面内存条就有两个rank。在DDR总线上可以用一根地址线来区分当前要访问的是哪一组)

Chip是内存条上的一个芯片

Bank:假设一个chip的位宽是8bit,那么这个芯片就包括8个bank。每个bank可以理解成一个二维数组bool[row][column]。这样通过指定row和column,就可以从所有bank中一共取出8bit的数据。

Row/Column:上面说过啦……

这个内存一共双面16芯片,芯片型号为N2CB2G80BN,查datasheet可知每个芯片有8 Internal memory banks,位宽也是8bit。这样每一面的8个芯片就构成一个Rank,整个内存条一共两个Rank。

那么CPU是如何读取内存的呢?• CPU一次需要访问64bit的数据(也叫做一个字)。那么对于上面这根内存,一个Rank可以提供8bit per chip * 8 chips per Rank = 64bit的带宽,就正好对接上啦。每个chip的同一bank(bank=k )的同一地点(row=i, col=j)都会被读出8bit,那么8个chip就会同时读出64bit,然后由memory controllers传送给cpu。如图:

为了保证和CPU的沟通(要满64bit),一个内存至少要有一个RANK。但是为了保证大容量,DDR3内存经常是采用一个内存两个RANK的架构,一般也就是双面16颗粒。(过去也有用几个模组组成一个RANK的情况。比如EDO内存的带宽只有32bit,但586及以上cpu的数据总线都是64bit,所以就需要成对使用)

Ref:

2. Locality(PPT P12/HI P253)

Programs tend to reuse data and instructions near those they have used recently, or that were recently referenced themselves.

Temporal locality: Recently referenced items are likely to be referenced in the near future.

Spatial locality: Items with nearby addresses tend to be referenced close together in time.

利用局部性原理,可以将存储器组织成存储器层次结构。相邻两层之间数据交换的单位叫做块(block)

3. Cache(PPT P15 /HI P254)

以块为单位从level k+1 cache到 level k

Cache hit: level k中有目标块

Cache miss: 块在level k中没有,要从level k+1中读进来

Placement policy: where can the new block be placed in level k?      E.g., b mod 4

Replacement policy: which block should be evicted from level k?      E.g., LRU

4. Question about caching

1,2: Where can a block be placed in the upper level?     •     How is a block found if it is in the upper level?  (PPT P17 / HI P259)

地址映像方式:内存中block地址与cache中block地址的对应方式(内存和cache中一个块的大小都相等)。缓存中这个block又叫做cacheline。

cache分成多个组,每个组分成多个行,cacheline是cache的基本单位,从主存向cache迁移数据按照cacheline为单位替换。

全相连:主存中的一块可以映象到Cache中的任意一块。在cache中维护一个目录表,记录主存块号对应的cache块号

直接相联:主存储器中一块只能映象到Cache的一个特定的块中。(HI P260-P264)

N路组相连:主存和Cache都分组,主存中一个组内的块数与Cache中的分组数相同(主存中每组N个块,cache分为N个组)。组间采用直接映射,组内采用全相联映射(a block goes any frame in exactly one set,主存中一个组内的N个块可映射到cache中某特定组内N个块中的任意一个)。如图是一个Cb组相连的cache:

Ref:

3: Which block should be replaced on a miss? (PPT P22)

3种cache miss:

Compulsory—The first access to a block is not in the cache, so the block must be brought into the cache. Also called cold start misses or first reference misses.

Capacity—If the cache cannot contain all the blocks needed during execution of a program, capacity misses will occur due to blocks being discarded and later retrieved.

Conflict—If block-placement strategy is set associative or direct mapped, conflict misses (in addition to compulsory & capacity misses) will occur because a block can be discarded and later retrieved if too many blocks map to its set. Also called collision misses or interference misses.

Least recently used — LRU

Not most recently used — NMRU

4: What happens on a write(PPT P29)

计算

Virtual Memory   P41

原文:https://www.cnblogs.com/pdev/p/11617051.html

计算机组成与设计ch3,计算机体系结构总结相关推荐

  1. 计算机组成与设计 视频,《计算机组成与设计》计算机组成原理视频教程 清华大学王诚著...

    <计算机组成与设计>计算机组成原理视频教程 清华大学王诚著教学视频简介 计算机组成原理课程作为计算机专业学生的专业基础课,在教学中极为重视打好同学们的基础,力图讲解清楚单CPU计算机的基本 ...

  2. 模型计算机控制器的设计,模型计算机控制器的设计.pdf

    第 0 页模型计算机控制器的设计 <计算机组成原理> 课 程 设 计 报 告 设计题目 : 模型计算机控制器的设计 学 生: 学 号: 专业班级: 13 计师 X 班 指导教师: 麦 山 ...

  3. 计算机组成原理课程设计a,计算机组成原理课程设计报告.doc

    计算机组成原理课程设计报告.doc (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 计算机组成原理课程设计报告实验项目:1.设计一 ...

  4. 王换招计算机组成与设计课件,计算机基础知识(课件)..ppt

    计算机基础知识(课件). 计算机文化基础 教学课件 第一章 计算机基础知识1.1 计算机概述1.2 微型计算机系统的组成1.3 数据在计算机中的表示 1.1 计算机概述 1.1.1 计算机的分代与分类 ...

  5. 计算机原理综合设计,《计算机组成原理综合设计报告》.doc

    华南农业大学信息学院 设计性.综合性实验 实验项目名称: 计算机组成原理综合设计 实验项目性质: 综合性.设计性实验 所属课程名称: 计算机组成原理 开 设 时 间: 2009学年第一学期 一.实验目 ...

  6. 模型计算机控制器的设计,模型计算机_控制器的设计.doc

    <计算机组成原理> 课 程 设 计 报 告 设计题目: 模型计算机控制器的设计 学 生: 学 号: 专业班级: 13计师X班 指导教师: 麦 山 提交日期: 2015 年 6 月 XX 日 ...

  7. 计算机组成原理课程设计总结,计算机组成原理课程设计的实验报告

    计算机组成原理课程设计的实验报告 长治学院课程设计报告课程名称: 计算机组成原理课程设计 设计题目: 设计一台性能简单的计算机 系 别: 计算机系 专 业: 计科1101班 组 别: 第三组 学生姓名 ...

  8. 用多媒体计算机画图教学设计,用计算机画图教学设计

    <用计算机画图教学设计>由会员分享,可在线阅读,更多相关<用计算机画图教学设计(3页珍藏版)>请在人人文库网上搜索. 1.教学设计教材分析涂上美丽的颜色是画图模块的第二课.在学 ...

  9. 飞控计算机功能硬件设计,飞控计算机测试设备的设计与实现论文

    飞控计算机测试设备的设计与实现论文 为了对飞控计算机进行全面准确测试,本文提出了一种飞控计算机测试设备的软硬件设计方案.硬件部分主要是设计工控机中的两块板卡,产生测试系统需要的信号.软件部分以Wind ...

最新文章

  1. NTP时间同步服务器搭建
  2. 碾压专业机构,27 岁华裔小伙推出美国最准新冠预测模型
  3. 基于matlab_simulink汽车三自由度模型仿真
  4. 自定义ListView背景(解决了拖动变黑的效果)
  5. SAP FI 会计凭证过账bapi BAPI_ACC_DOCUMENT_POST
  6. Java扩展机制可加载所有JAR
  7. input输入框的input事件和change事件
  8. jquery form java_springmvc利用jquery.form插件异步上传文件示例
  9. 域控制器部署组策略,立即下发强制更新,显示“远程过程调用被取消”,错误代码 8007071a;以及RPC服务器不可用,800706ba【解决方案】
  10. c代码格式化_Python 只用一行代码,可以实现哪些事儿?
  11. Python实现文字合成音频文件
  12. STM32单片机最小系统
  13. 寻找2020java 蓝桥杯
  14. javascript从入门到跑路-----小文的js学习笔记(6)-----三大流程控制语句---顺序控制、分支控制、循环控制
  15. C#子窗体控制父窗体dgv刷新
  16. 2n 用c语言编程程序,用C语言编写程序.ppt
  17. 74HC138芯片简析
  18. canvas高效绘制10万图形,你必须知道的高效绘制技巧
  19. 后端接收Get请求与Post请求 参数示例
  20. html单文档编辑器,用VC++MFC做文本编辑器(单文档模式)

热门文章

  1. java项目-第155期ssm班级同学录网站-java毕业设计_计算机毕业设计
  2. 基于Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 四路光纤卡226
  3. AHB to APB bridge
  4. 搭建SecureCRT
  5. scroll-view的描点跳转
  6. 怎么撰写一份优秀的数据分析报告(一)
  7. [ MySQL ] 使用Navicat进行MySQL数据库备份 / 还原(Part 2:备份.sql文件方式)
  8. this指向,并改变this指向
  9. this指向 改变this指向
  10. 关于Halcon::threshold 用时