存储器层次结构
存储技术
随机访问存储器
存储器是由许多触发器或其他记忆元件构成的用以存储一系列二进制数码的器件。若字长为n位,则一个存储单元内将含有n个记忆元件或记忆单元。存储器内的记忆单元有规则地排列成m×n的矩阵形式。
存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。 按照存储单元的工作原理,随机存储器又分为静态随机存储器(英文:Static RAM,SRAM)和动态随机存储器(英文Dynamic RAM,DRAM)。
磁盘存储
存储密度
存储密度分道密度,位密度和面密度。道密度是沿磁盘半径方向单位长度上的磁道数,单位为道/英寸.位密度是磁道单位长度上能记录的二进制代码位数,单位为位/英寸.面密度是位密度和道密度的乘积,单位为位/平方英寸。
存储容量
一个磁盘存储器所能存储的字节总数,称为磁盘存储器的存储容量.存储容量有格式化容量和非格式化容量之分,格式化容量是指按照某种特定的记录格式所能存储信息的总量,也就是用户可以真正使用的容量。非格式化容量是磁记录表面可以利用的磁化单元总数。将磁盘存储器用于某计算机系统中,必须首先进行格式化操作,然后才能供用户记录信息。格式化容量一般是非格式化容量的60%―70%。3.5英寸的硬盘机容量可达4.29GB。
磁盘操作
磁盘以扇区大小的块来读写数据。
访问时间的分类:
(1)寻道时间
——移动传动臂所用的时间。
依赖于读/写头以前的位置和传动臂在盘面上移动的速度。
通常为3-9ms,最大可达20ms。
(2)旋转时间
——驱动器等待目标扇区的第一个位旋转到读/写头下
依赖于盘面位置和旋转速度。
最大旋转延迟=1/RPM X 60secs/1min (s)
平均旋转时间是最大值的一半。
(3)传送时间
依赖于旋转速度和每条磁道的扇区数目
平均传送时间= 1/RPM x 1/(平均扇区数/磁道) x 60s/1min
访问一个磁盘扇区内容的平均时间为平均寻道时间,平均旋转延迟和平均传送时间之和。
根据课本393页的示例可以得出结论:
1.主要时间是寻道时间和旋转延迟。
2.将寻道时间x2是估计磁盘访问时间的简单而合理的方法。
固态硬盘
固态硬盘(Solid State Drives),简称固盘,固态硬盘(Solid State Drive)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。
优点:
缺点:
存储技术优势
不同的存储技术有不同的价格和性能折中
不同存储技术的价格和性能属性以截然不同的速率变化着
增加密度从而降低成本比降低访问时间更容易
DRAM和磁盘的性能滞后于cpu的性能
局部性
局部性原理:
一个编写良好的计算机程序,常常倾向于引用临近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。
分类:
时间局部性
空间局部性
对程序数据引用的局部性
步长为k的引用模式:一个连续变量中,每隔k个元素进行访问,就被称为步长为k的引用模式。
步长为1的引用模式:就是顺序访问一个向量的每个元素,有时也被称为顺序引用模式,它是程序中 空间局部性常见和重要的来源。
一般来说,随着步长增加,空间局部性下降。
多维数组(以二维数组为例)
int sumarraycols(int a[M][N])
{
int i,j,sum = 0;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
sum += a[i][j];
return sum;
}
和
int sumarraycols(int a[M][N])
{
int i,j,sum = 0;
for(j=0;j<M;j++)
for(i=0;i<N;i++)
sum += a[i][j];
return sum;
}
上面的代码是按照行优先顺序执行的,下面的代码是按照列优先顺序执行的,而c数组在存储器中是按照行顺序存放的,所以第一个空间局部性良好,第二个空间局部性很差。
取指令的局部性
程序指令是存放在存储器中的,CPU必须取出(读出)这些指令。
但是代码区别于程序数据的一个重要属性是:在运行时它是不能被修改的。
局部性小结
量化评价一个程序中局部性的简单原则:
重复引用同一个变量的程序有良好的时间局部性
对于具有步长为k的引用模式的程序,步长越小,空间局部性越好
对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。
参考资料:百度百科
www.cnblogs.com/20135222yjx