服务器学习心得


存储体系介绍

<ul> <li><a href="https://www.topgoer.cn/docs/data-structures-questions/data-structures-questions-1d94t1bk0bgcl#%E8%BF%9B%E7%A8%8B%E7%AE%A1%E7%90%86">https://www.topgoer.cn/docs/data-structures-questions/data-structures-questions-1d94t1bk0bgcl#%E8%BF%9B%E7%A8%8B%E7%AE%A1%E7%90%86</a></li> </ul> <h2>存储体系</h2> <ul> <li>寄存器</li> <li>高速缓冲存储器</li> <li>内存</li> <li>硬盘</li> </ul> <h2>寄存器:</h2> <ul> <li>是中央处理器的组成部份,可用来暂存指令、数据和位址。</li> <li>通用寄存器 <ul> <li>如指令寄存器IR、程序计数器(PC)、累加器(ACC)、堆栈指针寄存器(SP)等,</li> </ul></li> <li>状态寄存器(标记状态Z、N、V、C)</li> <li>寄存器最靠近CPU,随取随用,速度最快。</li> </ul> <h2>高速缓冲存储器(Cache)</h2> <ul> <li>位于CPU与内存之间,容量小但速度快。</li> <li>由于CPU快而内存慢,CPU不存在直接读或者写内存的情况,每次读或者写内存都要访问Cache。</li> <li>Cache Line是cache与内存同步的最小单位,典型的虚拟内存页面大小为4K,Cache line为32或64字节。</li> <li>Cache中一般保存着CPU刚用过或循环使用的部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就抹平了CPU与内存的速度差。Cache又分为L1、L2、L3(L1、L2一般集成在CPU上)。</li> <li>理论上L1有着跟寄存器相同的速度,但L1工作在写通过(write-through)模式下时,需要加锁用来同步cache和内存的内容,这段期间L1不能被访问,所以L1就没寄存器快。</li> <li>L2、L3同样需要加锁,并且L2比L1慢,L3比L2慢。因此呢,L1速率最快,与CPU速率最接近,是RAM速率的100倍,L2速率就降到了RAM的25倍,L3的速率更靠近RAM的速率。</li> <li>Cache下还有一个TLB,TLB是一个内存管理单元用于改进虚拟地址到物理地址转换速度的缓存。</li> </ul> <h2>内存(RAM)</h2> <p>用于暂存CPU的运算数据,以及与硬盘等外部存储器交换的数据。</p> <p>内存的一个存储周期是从存储器收到有效地址(EA)开始,经过地址译码、驱动,直到被访问的存储单元被读出/写入为止。</p> <h2>CPU访问内存简单流程:</h2> <ul> <li>找到数据(一般为操作数)地址(或地址的地址)。(地址一般放在通用寄存器内)</li> <li>将地址送往内存管理单元(MMU),由MMU将虚拟的内存地址翻译成实际的物理地址。</li> <li>将物理地址送往内存控制器,由控制器进行译码找到对应的存储体。</li> <li>从对应的存储体读取数据送回给控制器,最后再送回CPU。</li> </ul> <h2>硬盘(HardDisk)</h2> <p>HardDisk又称硬盘驱动器,常见的有磁性旋转机械盘和基于闪存的固态硬盘SSD,这里主要讲机械盘,当进行数据存取时,主要的速度影响来自于磁头的寻道时间和盘片的旋转时间,通常需要花费数毫秒的时间。</p> <p>如果是顺序I/O还好,如果是随机I/O,速度将很慢。虽然磁盘内部、操作系统及应用程序都对磁盘进行了缓存优化,但速度还是远远不及内存。</p> <p>存储体系的分层设计,自顶向下,速率越来越低,访问时间越来越长,从磁盘到CPU寄存器,上一层都可以看做是下一层的缓存。</p>

页面列表

ITEM_HTML