本周咱们了解了存储器的层次结构,了解了存储器的种类以及工做方式,并知道了程序代码应该对高速缓存友好。如下是对本章内容的总结。html
一、随机访问寄存器:
随机访问存储器可分为静态随机访问存储器以及动态随机访问存储器。静态RAM速度快、成本高,一般用做高速缓存,动态RAM对干扰较为敏感,速度较慢,成本较为低廉,经常使用做系统内存。编程
二、磁盘存储以及固态硬盘
磁盘由盘片组成,一个盘片有两个面,一个面中又包含磁道、扇区以及间隙。一个磁盘的容量等于字节数乘以扇区数乘以磁道数乘以表面数乘以盘片数。固态硬盘由一个或多个闪存芯片和闪存翻译层组成。数组
局部性是指程序倾向于引用邻近于其余最近引用过的数据项的数据项,或者最近引用过的数据项自己。这种倾向性,被称为局部性。局部性一般有两种不一样的形式:时间局部性和空间局部性。在一个具备良好时间局部性的程序中,被引用过一次的内存位置极可能在不远的未来再被屡次引用。在一个具备良好空间局部性的程序中,若是一个内存位置被引用了一次,那么程序极可能在不远的未来引用附近的一个内存位置。局部性良好的程序能够更加高效地利用存储器。缓存
在存储器的层次结构中,通常而言,从高层往低层走,存储设备变得更慢、更便宜和更大,从高层到低层,访问周期愈来愈长。对于第k层,它做为第k+1层的缓存,第k层的缓存包含第k+1层的一个子集的副本。安全
高速缓存一般被组织为一个有着S个高速缓存组的数组,每一个组包含E个高速缓存行,每行有B个字节数据块组成。而每组又有一个有效位,用于标记该行是否有效,t个标记位,用于表示不一样的行。学习
对高速缓存友好的代码会让最多见的状况运行的块,且会尽可能减少每一个循环内部的缓存不命中数量。因为高速缓存读取以及修改的特色,咱们在编写代码时尽可能确保对局部变量的反复引用,且多使用步长为1的引用模式。翻译
多为基础概念,没有遇到较大困难。设计
本周主要是理论内容,代码量不大,运行过程当中并无碰到问题。调试
本章的内容主要介绍了存储器组织结构,以及高速缓存的运行方式。虽然内容并非不少,难度也不是很大,但涉及了许多的基础概念,若是基础概念以及名词不太清楚,那么后面基于一些专有名词的内容就会变得比较困难。htm
博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|
目标 | 30篇 | 400小时 | |
第三周 | 1/1 | 13/13 | |
第四周 | 1/2 | 22/35 | |
第五周 | 1/3 | 30/65 | |
第六周 | 1/4 | 25/90 | |
第七周 | 1/5 | 22/112 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进本身的计划能力。这个工做学习中很重要,也颇有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。