存储系统
层次结构
主存----辅存:实现虚拟存储系统,解决主存容量不够的问题
Cache----主存:解决主存与CPU速度不匹配的问题
分类
位置:
内存(主存):存储当前运行所需要的程序和数据
外存(辅存):存储当前不参与运行的数据
材料:
磁存储器:磁存储器就像是一块可以被磁铁影响的小磁盘或者磁带。当你保存东西的时候,电脑会用一个带有磁场的东西去改变磁片上的某些地方,这样就能记住你的信息了。读取的时候,再通过检测这些地方的磁性来还原出你保存的信息。
半导体存储器:半导体存储器就像是一个超级小的电路板,上面有很多开关。这些开关可以用电控制,打开就是1,关闭就是0,这样就可以用来存储信息了。这种存储器不需要磁性材料,所以它可以做得非常小,而且速度很快,比如我们常用的U盘和手机里的存储卡都是用的这种技术。
光存储器:光存储器就像是一个可以记录信息的光盘,比如CD和DVD。这些光盘表面有很多小坑和空白的地方,当你把音乐或者电影存进去的时候,激光会在光盘上刻下这些信息。读取的时候,激光再扫描这些坑和空白,通过反射回来的光来读取你保存的数据。
工作方式
读/写存储器(RAM):RAM就像是你的工作台,你正在做的作业或者玩的游戏的信息都会暂时放在这里。你可以随时修改这个工作台上的东西,但是如果你关机了,工作台上所有的东西都会消失。这是因为RAM是易失性的存储器,需要电力才能保持数据。
只读存储器(ROM):ROM就像是你课本里的内容,一旦印刷好了就不能更改了。电脑启动时需要的一些基本信息就放在ROM里,这些信息只能读取,不能修改。即使断电了,ROM里的信息也不会丢失。
高速缓存Cache
目的:提高存储器的平均访问速度,使存储器速度与CPU速度相匹配
Cache的存在对程序员来说是透明的,其地址变换和数据块的替换算法均由硬件实现
通常Cache被集成在CPU中
组成:
Cache存储器部分:用来存放主存的部分复制信息
控制部分的功能:判断CPU要访问的信息是否在Cache存储器中,若在即为命中
Cache的三种地址映像
- 直接映射
- 在直接映射中,每个内存块只能映射到Cache的一个特定行中。也就是说,每个内存地址有一个固定的Cache位置与之对应。
- 这种方法简单直观,但可能导致冲突较多,因为如果多个常用数据块映射到同一Cache行,就容易发生替换,从而降低命中率。
- 全相联映射
- 在全相联映射中,任意一个内存块可以映射到Cache中的任何一个行。这意味着每个内存块都可以放置在Cache的任何位置。
- 这种方式提供了最大的灵活性,可以减少冲突的机会,但同时也增加了查找的时间复杂度和硬件成本。
- 组相联映射
- 组相联映射是直接映射和全相联映射的一种折中方案。它将Cache分为若干个组(Sets),每个组包含几个行(Ways)。内存块可以映射到指定组内的任意一行。
- 这种方式既保留了一定程度的灵活性以减少冲突,又不像全相联那样复杂和昂贵。常见的组相联Cache有2-way、4-way等。
Cache的性能分析
若H为Cache的命中率,tc为Cache的存储时间,tm为主存的访问时间
则Cache的等效访问时间为 ta=H*tc+(1-H)*tm
使用 比 和不使用Cache 提高的倍数r=tm/ta
虚拟存储系统
虚拟存储系统就像是给你的电脑增加了一个超级大的“虚拟内存”,让你的电脑看起来好像有更多的内存一样。实际上,它并不是真的给你增加内存,而是巧妙地利用了硬盘的空间来扩展内存的功能。
它是怎么工作的?
-
虚拟地址空间:
- 想象一下,你的电脑有一个巨大的“虚拟内存”空间,这个空间比你实际拥有的内存要大得多。程序在这个虚拟空间里运行时,感觉就像是独享了所有的内存。
-
分页(Paging):
- 电脑把这个巨大的虚拟内存空间分成很多小块,叫做“页面”。同样,真正的内存也被分成一样大小的小块。
- 当你需要使用某个页面时,如果它已经在内存里,程序可以直接使用;如果不在,就需要从硬盘里找出来,放到内存里。
-
缺页处理:
- 如果程序要访问的页面不在内存里,就会告诉操作系统:“哎,我找不到这个页面!”
- 这时候,操作系统会停下来,从硬盘上找到这个页面,然后把它搬进内存里。如果内存满了,操作系统会选择一个不怎么用的页面先存回硬盘,腾出空间。
虚拟存储系统使存储系统既具有外存的储存容量又具有接近主存的访问速度
磁盘存储器
磁盘存储器是计算机用来长期保存数据的一种设备。你可能知道硬盘(HDD)或者固态硬盘(SSD),这些都是磁盘存储器的例子。简单来说,磁盘存储器就像是一个大仓库,用来存放你的文件、照片、视频等各种数据。
磁盘存储器的种类
-
传统硬盘(HDD):
- 传统硬盘就像一个装满磁带的大圆盘,只不过这里的磁带是平铺在一个或多个圆形的盘片上。
- 盘片旋转时,磁头会读取或写入数据。磁头就像一个小小的笔,可以在磁盘上记录信息,也可以读取之前写下的信息。
- 优点是价格便宜,容量较大;缺点是机械结构导致速度较慢,容易损坏。
-
固态硬盘(SSD):
- 固态硬盘没有旋转的盘片,而是使用闪存(Flash Memory)来存储数据。
- SSD就像一个超大的U盘,但它通常比U盘快得多,因为它没有移动部件,读写速度非常快。
- 优点是速度快、耐用;缺点是价格相对较高,尤其是对于大容量的SSD。
磁盘存储器的工作原理
无论是HDD还是SSD,它们的基本工作原理都是存储和检索数据。不同之处在于它们存储数据的方式和读取数据的速度。
-
HDD的工作原理:
- 数据存储在旋转的磁盘上,磁盘上有许多扇区。
- 当你需要读取数据时,磁头会移动到正确的磁道(Track)和扇区(Sector),然后读取数据。
- 写入数据时,磁头会在相应的位置上记录信息。
-
SSD的工作原理:
- 数据存储在许多微小的存储单元(Cells)中,这些单元组成更大的存储块(Blocks)。
- 读取数据时,直接从存储单元中读取;写入数据时,也是直接写入到相应的单元。
- 由于没有机械运动,读写速度更快,响应时间更短。
为什么需要磁盘存储器?
- 长期保存:磁盘存储器可以长时间保存数据,即使你不使用电脑,数据也不会丢失。
- 大量存储:相比内存(RAM),磁盘可以存储更多的数据。
- 非易失性:即使断电,磁盘上的数据仍然存在,而内存中的数据会丢失。
存取时间=寻道时间+等待时间
总线系统
总线系统是什么?
总线系统就像是电脑内部的一条高速公路,它让电脑的不同部件可以互相通信。想象一下,你的电脑是一个小镇,各个部件(如CPU、内存、显卡等)就像是小镇上的不同建筑。总线就是连接这些建筑的道路,让信息可以在它们之间传递。
总线的作用
总线系统的主要作用是让电脑的不同部分能够互相传输数据和指令。比如,当你玩游戏时,CPU需要从内存中获取游戏数据,然后把这些数据发送给显卡来显示图像。总线就是完成这些任务的重要通道。
总线的类型
-
数据总线:
- 数据总线是用来传输数据的。比如,当你输入文字时,键盘会通过数据总线告诉CPU你按了哪个键。
- 数据总线的宽度决定了每次能传输多少位数据。常见的宽度有32位、64位等。
-
地址总线:
- 地址总线是用来传输内存地址的。当你需要访问内存中的某个位置时,地址总线会告诉内存控制器应该去哪里寻找数据。
- 地址总线的宽度决定了你能访问多大的内存空间。比如,一个32位的地址总线可以访问4GB的内存空间。
-
控制总线:
- 控制总线用来传输控制信号,比如读取、写入等命令。这些信号告诉各个部件何时开始工作,何时停止工作。
- 控制总线确保各个部件之间的协调运作。
总线的工作方式
-
数据传输:
- 当CPU需要从内存读取数据时,它会通过地址总线发送内存地址。
- 内存接收到地址后,会通过数据总线把数据传回给CPU。
- CPU也可以通过数据总线向内存写入数据。
-
协调控制:
- 控制总线发送控制信号,确保各个部件按照正确的顺序工作。
- 例如,当CPU需要读取数据时,它会发送一个“读取”信号,内存接收到信号后才会开始传输数据。
为什么需要总线系统?
- 高效通信:总线系统提供了一个高效的方式来让各个部件共享数据和指令。
- 简化设计:有了总线系统,各个部件只需要连接到总线上,而不是彼此直接连接,简化了硬件设计。
- 易于扩展:通过总线系统,可以轻松添加新的硬件设备,如网卡、声卡等。
总结
总线系统就像是电脑内部的交通网络,确保各个部件之间能够顺畅地交流。通过数据总线、地址总线和控制总线,电脑的不同部件可以有效地协同工作,从而实现各种复杂的任务。总线系统是现代计算机不可或缺的一部分,它让计算机能够高效地处理各种数据和指令。
磁盘阵列技术
磁盘阵列技术是一种将多个硬盘组合在一起,作为一个逻辑单元来使用的技术。这样做的目的是为了提高数据的存储效率、增强数据的安全性和提高数据访问速度。最著名的磁盘阵列技术是RAID,也就是“独立磁盘冗余阵列”。
RAID级别 | 描述 | 所需硬盘数 |
---|---|---|
RAID 0 | 将数据分成小块,并行写入到多个硬盘上。 | 至少2个 |
RAID 1 | 将数据同时写入两个或多个硬盘,形成镜像。 | 至少2个 |
RAID 2 | 早期的RAID级别,使用位级条带和海明码进行错误校验。(已废弃) | 至少3个 |
RAID 3 | 数据以位为单位分散到多个硬盘上,并有一个专门的硬盘用于存储奇偶校验信息。 | 至少3个 |
RAID 4 | 数据以块为单位分散到多个硬盘上,并有一个专门的硬盘用于存储奇偶校验信息。 | 至少3个 |
RAID 5 | 数据和奇偶校验信息分散到所有硬盘上,没有专门的校验盘。 | 至少3个 |
RAID 6 | 类似于RAID 5,但有两个级别的奇偶校验信息,可以容忍两个硬盘同时故障。 | 至少4个 |
RAID 10 | 先做镜像(RAID 1),然后再条带化(RAID 0)。 | 至少4个 |
RAID 0+1 | 先做条带化(RAID 0),然后再镜像(RAID 1)。 | 至少4个 |
计算机可靠性
串联部件可靠度=各部件的可靠度乘积
并联部件可靠度=1-部件失效率的乘积