存储器概述
存储器:计算机中存放指令和数据的主要场所
理想的存储系统:大容量、高速度、低成本
存储器分类
按存取方式
随机存储器:random access memory
存储单元的内容可以按需随机的取出或存入,且存取的速度与存储单元位置无关
早期使用的磁芯存储器,和现在广泛使用的半导体存储器都是随机存储器
顺序存储器:sequential access memory
存储单元的内容只能依地址顺序访问,且访问速度与存储单元的位置有关
磁带存储器、CD-ROM等都是顺序存储器
直接存取存储器:direct access memory
不必经过顺序搜索就能在存储器中直接存取信息,这类存储器兼有随机存储器和顺序存储器的访问特性】
磁盘属于DAM,寻道和找扇区的过程与RAM类似,扇区内读写数据与SAM类似
读写存储器
既能读出又能写入
只读寄存器:read only memory
内容不允许随意改变,只能读取,不能修改
按存储介质
磁性材料存储器
又称磁存储器,包括磁芯存储器、磁盘存储器、磁带存储器,它们以磁性材料作为存储介质
半导体存储器
用半导体器件组成,有两大类,一是三极管型,分为TTL和ECL两种,二是MOS管型,分为静态(SRAM)和动态(DRAM)两种
光存储器
信息以刻痕的形式保存在盘面上,用激光束照射盘面,靠盘面的不同反射率来读取信息,分为CD-ROM,WORM,MO
按功能和存取速度
寄存器型存储器
由寄存器组成,如CPU内部的寄存器组,速度与CPU匹配,但是容量一般很小
高速缓冲寄存器
是一个高速小容量寄存器,用于存放CPU近期要执行的指令和数据,用于提高存储系统的访问速度
主存储器
简称主存,用于存放程序和数据,CPU可以随机访问,一般由MOS存储器组成
外存储器
简称外存,是主机外部的存储器,也称辅助存储器,容量大速度低,存放暂不运行的程序和数据,CPU无法直接访问
按信息保存的时间
易失性存储器
断电后,保存的信息丢失,如RAM
非易失性存储器
断电后,信息不丢失,如ROM,磁盘存储器,光存储器
存储器系统的层次结构
主存的主要技术指标
容量
存储器可以存储的二进制信息总量称为存储容量,常用的单位是位和字节
存取速度
存取时间:又称存储器的访问时间,是指启动一次存储器操作到该操作完成所需要的时间
存取周期:连续启动两次访问操作之间最短的时间间隔,该时间段内不进行读写,仅用于寄存器状态恢复,并为下一次操作预留时间,该时间略大于存取时间
存储器带宽:单位时间内存储器所能传输的信息量,带宽是衡量数据传输速率的重要指标、
存储器的可靠性
用平均故障间隔时间MTBF(mean time between failure)来衡量
主存中数据的存放
存储字长与数据字长
存储字长:主存中一个存储单元所存储的二进制位数
数据字长:计算机一次能处理的二进制位数
存储字长和数据字长不一定相同,32位的计算机可以采用8、16、32、64位的存储字长
大端和小端数据存放方式
大小端模式指的是多字节数据在内存中的存放顺序
大端:低位字节存储在较大的地址上
小端:低位字节存储在较小的地址上
边界对齐的数据存放方法
数据按照边界对齐的方式存放可以提高存储系统的访问效率
主存的基本结构和工作过程
存储体:实际存放程序和数据的位置
地址译码器:接收来自CPU的地址信号,经过译码驱动后,形成地址选择信号,选择对应的存储单元
数据寄存器:读的时候,存放从存储体中取出的数据,写的时候,存放从CPU送来的数据
控制线路:接收CPU的读写控制信号后,产生存储器内部的控制信号,从而进行读写操作
主存的大致工作流程
CPU想要读取或写入某个数据,先给出相应的地址
该地址经过译码驱动后,选中对应的存储单元
由控制线路产生的信号,控制读出或写入
存储系统的层次结构
对存储系统的基本要求是存储速度快,存储容量大、成本价格低,而这些条件相互矛盾,为了解决这些矛盾,构建了如图的存储系统
高速缓冲cache:提高CPU对存储系统的访问速度
辅存:解决容量不足的问题
半导体存储器
半导体存储器的主要特点是存取速度快、体积小、成本低、可靠性高,通常分为RAM和ROM
静态MOS存储器 SRAM
静态MOS存储单元
存储单元:是存储器中最小存储单位,存储一位二进制信息
先通过字线和位线选通T5~T8四个门控管
如果要写1,则给D线加高电平,同时给负D先加低电平
高电平经过T7、T5,使得T2导通,低电平经过T8、T6使得T1截止
如果要读取信息,同样先给行列信号打开门控管T5~T8
如果存储的信息为1,则D线输出高电平,存储的是0,则D线输出低电平
不对存储单元操作时,门控管T5~T8截止,电源通过T3、T4提供电流,保持数据
静态MOS存储器的结构
一般由存储体、地址译码电路、I/O电路和控制电路组成
存储体:由静态MOS存储元组成,4096个存储单元组成64*64的阵列组织
地址译码器:将地址翻译成驱动存储单元门控管的控制信号,选择相应的存储单元
驱动器:每条选择线要控制与它相连的所有存储单元,负载很大,因此用驱动器增加其负载能力
I/O电路:用以控制数据的输入与输出,也就是对选中的单元进行读写控制
片选和读写控制电路:只有片选信号为低时,代表选中该存储器,读写控制电路用以控制读或写
动态MOS存储器 DRAM
四管动态MOS存储元的工作原理
为了提高集成度,动态MOS存储器不像静态MOS一样持续供电,因此去掉了供电的管子
T1、T2为工作管,T5~T8为门控管
读写前,先打开T5~T8门控管
写1时,则给D线加高电平,同时给负D先加低电平
D线的高电平经过T7、T5,使得T2导通,C2保持高电位,低电平经过T8、T6,使得T1截止,C1放电保持低电平
读操作前,先通过预充信号打开T9、T10,对Cd,负Cd电容充电,如果原来存储的是1,则Cd对D线放电,输出高电平1,同时补充C2的电荷,负Cd经过B和T2,连通到地,负D线会出现反方向电流脉冲
刷新操作:DRAM中,信息以电荷形式存储在C1和C2上,需要定期刷新,否则会因为电容放电而丢失信息
单管动态MOS存储单元的工作原理
可以用一个MOS管和一个电容构成单管动态存储单元
写入时,选通T1、T2,位线D上的信息写入电容C
读出时,选通T1、T2,电容C输出信息到位线D上
读出时信息会被破坏,因此一般将读出的信息重新写入,恢复原来保存的信息,该动作称为再生
动态MOS存储的刷新
不同材料、不同生产工艺的DRAM刷新时间不同
刷新地址由刷新地址计数器产生,而不是CPU发出
刷新方式
集中刷新
最后的n个读写周期全部用来刷新,优点是读写操作期间不受刷新影响,缺点是死时间比较长,刷新期间不能读写
分散刷新
将一个周期分为两部分,前半段读写或保持,后半段用于刷新,优点是不存在死时间,缺点是影响系统速度
异步刷新
是集中刷新和分散刷新的折中方式
透明刷新
由于指令译码期间不访问存储器,在这段时间刷新,不占用CPU时间,对CPU透明
只读存储器
只能读,不能写,断电后可长期保存,称为ROM
MROM:掩膜式只读存储器,信息由生产厂家写入,不可修改
PROM:可编程只读存储器,只能编写一次程序,常采用熔丝工艺
EPROM:可擦除可编程只读存储器,能多次编程,利用紫外线擦除
EEPROM:电可擦除可编程只读存储器,能通过程序擦除及烧写
闪存 FLASH
快速擦写,非易失性,可以在线擦除和重写,主要作为BIOS存放的存储器或移动存储器
主存的组织与CPU的连接
单片存储芯片的存储容量有限,要获得一个大容量的存储器,通常需要用多片存储芯片,按照一定的组织方式与CPU连接,这就是存储器的组织
存储器的拓展
由于存储芯片的容量及字长与目标存储器的容量及字长可能存在差异,因此要进行拓展
位拓展
当存储芯片的数据位小于CPU对数据位的要求时,采用为位拓展方式
地址线,读写控制线:存储芯片的并联,然后与CPU相连
数据线:读写芯片的串联,然后与CPU相连
字拓展
也称容量拓展,解决存储芯片容量不足的问题
数据线,读写控制线:存储芯片的并联,然后与CPU相连
片选信号:由CPU多余的地址线产生
字位同时拓展
当存储芯片的数据位和存储容量均不能满足时,采用字位同时拓展
并行存储系统
目前,主存的存取速度已经成为计算机系统的性能瓶颈,除了选择更高速的元件来提高访问速度,也可以通过存储体的并行工作来提高存储器的访问速度,缓解CPU与主存速度不匹配的矛盾
双端口存储器
同一个存储器具有两组相互独立端口的存储器,每个端口有各自独立的数据端口、地址端口以及读写控制端口、片选端口等,每个端口可以独立进行读写操作
并行读写:当左右两个端口的地址不同时,同时读写不冲突
冲突处理:访问地址相同时,会发生读写冲突,为解决冲突,为每个端口设置一个标志BUSY
单体多字存储器
采用多个并行的存储模块共用一套地址寄存器,按同一地址并行访问不同存储模块的同一单元,从而实现在同一个存储周期内访问多个存储字,提高主存带宽
多体交叉存储器
多体交叉存储器也由多个存储模块组成,这些模块的容量和存取速度相同,具有各自独立的地址寄存器、地址译码器、驱动电路和读写控制电路,根据对多个模块编址方式的不同,又可分为高位多体交叉和低位多体交叉两种
高位多体交叉
高位多体交叉主要是为了拓展存储器的容量,与存储字扩展完全相同,也就是用高位段地址经过译码产生片选信号,选择不同的存储体,而低位段地址选择具体的存储单元
可以看出高位交叉有如下特点:
相邻地址在同一存储体内
不同存储体的地址不相邻
高位多体交叉一般应用在共享存储器的多机系统中,在这些系统中,各处理机通常访问各自所需的数据对象,当这些数据对象存放在不同存储体时,存取操作可以并行
低位多体交叉
用低位段地址经过译码产生片选信号,高位地址选择具体的存储单元
相邻的地址在不同存储体内
同一存储体中的地址不相邻
设存储模块的存储周期是T,总线传输周期及相应的处理延迟总和为τ,交叉模块数为m,要实现流水线方式存取,应该满足的条件是:
T = mτ
也就是每经过τ的延时后,启动下一个模块
示例:m=4的情况,从图中可以看出
每个存储体各自的存储周期仍然为T
每个存储体错开1/4个存储周期分时启动读写操作,每个存储周期内可访问4次
低位交叉存储器比较适合单处理机内的高速数据存取以及带有cache的主存
高速缓冲存储器 cache
cache是计算机系统中广泛使用的一种减少CPU与内存之间速度差异的方法
程序访问的局部性原理
在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内,这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的线性,称为程序访问的局部性
时间局部性:
当程序访问一个存储位置时,有很大的可能性在不就的将来会再一次访问同一位置,循环结构就是如此
空间局部性:
一旦程序访问了某个存储单元,则不就之后,其附近的存储单元也将被访问
利用程序的局部性原理,可以在主存和CPU通用寄存器之间设置cache,把正在执行的地址附近的一部分指令或数据从主存中调入这个存储器,供CPU在一段时间内使用,从而提高CPU访问存储系统的速度
cache的工作原理
主存地址的划分
为了便于比较和查找,cache和主存都被分为大小相等的若干块,每块又包含若干个字
根据不同的地址映射方法,对cache和主存地址进行不同的逻辑划分
主存块地址:
对CPU访问主存单元地址按块大小划分后,得到的一个地址,用以标识CPU所访问的主存单元所在的主主存块号
块内偏移地址:
表示CPU所要访问的单元在某块内的偏移值,找到数据所在的块后,根据该值可以定位CPU要访问的具体单元
索引:
索引是对主存块地址进一步划分后得到的更细粒度的地址,用于指示CPU访问cache的位置,即作为cache存储体的地址指示器,指出CPU访问cache存储器的范围,如指定cache的某一行或某几行
标记:
标记也是对主存块地址进一步划分后得到的更新粒度的地址,作为判断CPU要访问的内容是否在cache中的依据
cache的基本结构
cache结构主要包括三个部分:
数据存储体:用以存放主存数据的副本
标记存储体:用以存放标记
有效位:用以标识存放在cache中的数据是否有效,CPU在查找和更新cache时需要使用到有效位
cache的组织及CPU访问cache的流程
访问流程:
对CPU访问寄存器的地址进行逻辑划分,得到标记、索引、块内地址
按照索引字段,从cache标记存储体特定单元读出标记值,并与之前得到的标记进行比较,如相同则命中
命中后,根据索引和块内地址,访问cache数据存储体,读出数据送到CPU
未能命中,分为cache未满和已满的情况
cache未满时,从主存调取信息到cache
cache已满时,将cache中某单元的数据交换到主存上,再从主存调取信息到cache
更新cache时,同时更新标记、索引和块内地址
cache的命中率
命中率:命中的次数占总次数的比例
丢失率:未命中次数占总次数的比例
平均访问时间:命中率 * 命中访问时间 + 丢失率 * 未命中访问时间
访问效率:命中访问时间 / 平均访问时间
如果全部命中,则访问效率为1,否则小于1
相联存储器
相联存储器是一种按内容访问的存储器,一般由存储体、检索寄存器、屏蔽寄存器、符合寄存器、比较线路、代码寄存器、控制线路几部分组成
检索寄存器:用以存放检索字,其位数和相联存储器的存储单元位数相等
屏蔽寄存器:屏蔽寄存器也称为表征码寄存器,用以存放屏蔽码,以确定检索寄存器参与检索的位数
符合寄存器:存放按检索项内容检索cache存储体时命中存储体单元地址
比较线路:把检索项和从存储体内读出的单元内容进行比较,如果比较结果相同,则符合寄存器对应位置1
代码寄存器:用来存放存储体中读出的数据,或者存放向存储体中写入的数据
存储体:用以存放标记
译码选择电路:根据符合寄存器的状态译码选出被检索命中的地址,并将其内容读出送到代码寄存器
计算机系统中,相联存储器主要用以虚拟存储器中存放段表、页表、快表以及高速缓冲存储器中的查找
cache的地址映射及变换方法
地址映射:是指把主存地址空间映射到cache的地址空间,即把存放在主存中的内容按照某种规则装入cache,并建立两者之间地址的对应关系
地址变换:在程序运行时,把主存地址变换为cache地址
一个假设
假设本章节的内容,都是基于以下内容来讲解
cache的容量为4K字节
cahce和主存中,数据块大小为256字节,即cache划分为16块
主存容量为1M,即地址线20根,主存被划分为4096个块
指令或数据从主存的0号单元开始存放
全相联映射
associative mapping,在全相联映射下,只对主存和cache分块,包含块号和块内地址两部分
全相联映射下,主存中任意块,可以映射到cache中的任意块
由于没有索引,地址变换时,需要将cache所有行的标记部分送到比较器中,与当时访问地址中的标记部分进行对比,判断内容是否在cache中
全相联映射的特点
主存数据块可以映射到cache的任意一行,因此cache的利用率高
只要cache中还有空行就不会引起冲突,因此cache冲突率低
每次地址变换时要比较cache中所有行的标记,因此电路复杂
适合小容量cache(行数少)
直接映射
direct mapping,在对主存分块的基础上,直接映射还对主存分区,每个分区中包含的块数与cache的行数相同,直接映射对主存地址的逻辑划分为:
根据之前说的假设,主存被分为256个区,每个区16块,每块256个字节
直接映射的特点:
由于主存的一个数据块只能映射到cache的特定行,因此cache利用率低
索引值相同的所有主存块映射到cache的同一行,因此cache冲突率高
地址变化时只根据索引值取cache特定行的标记值进行比较,因此比较电路简单,与cache行数无关
适合于大容量cache使用
组相连映射
set associative mapping,是直接映射和全相联映射的折中方案
组相连方式一
将cache分为p组,每组有k行,称cache中每组包含k行的组相联称为k-路组相联,在这个方式中,主存也分组,每组中包含的块数同cache的组数,即主存中每组中包含p块,该方式下,主存地址的逻辑划分为
根据映射算法,只将主存数据直接映射到cache数据存储体的特定组,该组的位置由索引字段的值确定,至于调入该组的哪一行(块)则是任意的
组相连方式二
设cache分为p组,每组有k行,主存先分区,每区中包含的块数同cache的行数(即p * k行),也就是说每个区的大小等同于cache整个的大小,然后对每个区再分组,每区中包含的组数及每组中的块数与cache包含的组数及每组的行数相同,即组相联方式2中,主存组的大小与cache组的大小完全相同,该方式对主存地址的逻辑划分为
需要注意的是,存入cache标记存储器的,是主存区号+组内块号,区内组号用作索引
组相联方式2的映射算法也是将主存数据直接映射到cache数据存储体的特定组,该组的位置由索引字段决定,至于调入该组的哪一行,则是任意的
对比两种组相联方式,发现同一主存块映射到cache的组号可能不同,但是无论是哪种,它们都结合了全相联映射和直接映射的特点
替换算法
如果cache中已装满数据,新的数据要进入时,就要将原来的数据块替换掉
先进先出算法 FIFO
按照数据块进入cache的先后顺序进行替换
优点:系统开销小,实现容易
缺点:不考虑程序的局部性,导致cache命中率不高
近期最少使用算法 LRU
least recently used, 将近期内长久未被访问的行换出
优点:cache命中率较高
缺点:实现比FIFO复杂
最不经常使用算法 LFU
least frequently used,将一段时间内被访问次数最少的那行数据换出
优点:cache命中率较高,但是不如LRU
缺点:不能严格反应近期访问情况
随机替换算法
random replacement,进行替换时,从特定的行位置中随机地选取一行
优点:硬件实现最容易,速度较前几种快
缺点:cache命中率和cache工作效率不高
随着cache行数的增加,这种算法的负面影响会越小
cache的写策略
CPU在执行程序期间,除了对cache进行大量的读操作外,也存在对cache的写操作
写回法 WB
write-back,使用这种策略,cpu对cache写命中时,只修改cache的内容,只有换出时才被写入主存
为了支持这种策略,每个cache行必须配置一个标志位,即脏位,如果被cpu修改过则脏位为1
写直达法 WT
write-through,当cpu写命中时,同时对cache和主存中同一数据块进行修改
多cache结构
多cache结构在计算机系统中普遍采用
片内和片外两级cache
第一级 L1:将cache与处理器集成在同一芯片内,减少了对外总线的访问
第二级 L2:由于L1通常较小,在CPU片外和主存之间再设置一个cache
统一和独立cache
统一cache:指令和数据放在同一个cache,优点是设计和实现简单,命中率高
独立cache:指令和数据放在不同cache
虚拟存储器
虚拟存储器的工作原理
虚拟存储器出现的原因:
受技术和成本限制,主存空间不能无限扩大
程序员希望有一个很大的编程空间,在编写程序时不受主存大小的限制
计算机系统是多进程的,每个进程都需要有自己的地址空间,不可能为每个进行提供完整地址空间的存储器
在存储系统的层次结构中,虚拟存储器处于“主存-辅存”存储层次,通过在主存和辅存之间增加部分软件(如OS)和必要的硬件(如地址映射与转换机构、缺页中断结构等),使辅存和主存构成一个有机的整体,就像一个单一的、可供CPU直接访问的大容量主存
程序员可以使用虚拟存储器提供的地址(虚拟地址)进行编程,这种存储系统称为虚拟存储器
虚拟地址通过MMU转换成实际的物理地址
虚拟存储器的地址映射和变换
在虚拟存储器中有三种地址空间
虚拟地址空间:称为虚拟空间,是应用层程序员编写程序的地址空间
主存的地址空间:称为物理地址空间或实地址空间
辅存地址空间:磁盘存储器的地址空间
在cache中,地址映射是将主存中的数据按照规则调入cache
虚拟存储器类似,将虚拟地址空间映射到主存空间,并通过MMU建立虚地址与实地址的对应关系
地址变换,则是在程序装入主存后,在实际运行时,把虚拟地址变换成实际地址或磁盘存储器地址,以便CPU读取相应的信息
页式虚拟存储器
页式虚拟存储器就是将其基本单位划分为页,且将主存的物理空间划分为与虚拟存储器等长的页
系统基本信息的传送单位是定长的页,需要通过地址变换机构实现访问过程,当访问页面不存在时,通过页面置换算法,将需要的页面调入主存
优点:由于页面的起点、终点地址是固定的,因此页表简单,调入方便,主存空间浪费小
缺点:由于页面不是逻辑上的独立实体,因此处理、保护、共享都不如段式虚拟存储器方便
段式虚拟存储器
段式虚拟存储器是一种将主存按段分配的存储管理方式,各段的长度因程序而已,段是利用程序的模块化性质,按照程序的逻辑结构划分成的多个相对独立部分,系统的基本信息传送单位为段,并通过地址变换机构实现访存过程
优点:段的分界与程序的自然分界相对应,段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享,某些类型的段具有动态可变长度,允许自由调度以便有效利用主存空间
缺点:段的长度各不相同,段的起点和终点不定,给主存空间分配带来麻烦,而且容易在段间留下许多空余的不易于利用的零碎存储空间,造成浪费
段页式虚拟存储器
段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合,在这种方式下,把程序按逻辑单位分段以后,再把每个段分成固定大小的也,程序对主存的调入调出是按页面进行的,但它又可以实现按段共享和保护
优点:兼备页式虚拟存储器和段式虚拟存储器的优点
缺点:在地址映射过程中需要多次查表
快表 TLB
为了加快查找速度,利用程序的局部性原理,把页表分为快表和慢表,一般的页表称为慢表放在主存中,最常用的页表信息放在cache中,称为快表,快表是慢表的子集
存储保护
为了保证计算机系统正常运行,在处理多进程时,某一程序改写或占用其它程序的存储空间,是不允许的
段保护、页保护:每个程序都有自己的段表和页表,当虚拟的段号或页号出错时,找不到对应的内存
键保护:为主存的每一页分配一个键,称为存储键,每个用户的实存页面的键都相同,每道程序都有访问键,当数据要写入某一页时,比较键值,相同则允许访问
越界保护:对于没有MMU的主存而言,可采用越界保护方法,系统为每个程序划定存储区域,用确定的上下界地址实现区域保护,禁止越界访问
辅助存储器
磁表面存储器
在金属或塑料的表面涂上一层薄薄的磁性材料,再在磁性材料上存储信息
主要特点:存储容量大、价格低、非破坏性读出、可长期保存、反复使用、存取速度慢、工作环境要求高
读写原理
磁表面存储器利用磁性材料剩磁的两种磁化方向来记录信息
写入时,在线圈中通脉冲电流(电流方向不同,写入信息不同),磁头气隙处的磁场把它下面一小块区域的磁层向某一方向磁化,形成某种剩磁状态,因而记下一位二进制信息,磁层上这个被磁化的小区域,称为磁化单元,随着磁层的运动,线圈通不同方向的电流,在磁层上依次形成相应的磁化单元
读出时,某一磁化单元移动到磁头处,在磁层与磁头交链的磁路中磁通发生变化,于是在线圈中感生出不同方向的电流,经读写放大和整形后,还原出写入时的信息
记录方式
磁层上的信息是靠磁头线圈中通不同方向的电流脉冲形成的,因此写入时需要把二进制信息变为对应的写电流脉冲序列,将写入电流波形的组成方式称为记录方式
归零制:写1时加正向电流,写0时加负向电流,在写入信息前,电流归零,记录简单容易实现,但是抗干扰能力差
不归零制:写1时正向电流,写0是负向电流,电流不归零,抗干扰能力强
调相制:利用电流相位的变化来写1或0,如写1时电流先负后正,写0时电流先正后负,抗干扰能力强
调频制:不论写0或1,电流在位周期结束时一定要改变方向,写1的电流频率是写0的两倍,记录密度高,具有自同步能力,磁盘存储常用这种记录方式
磁盘存储器
磁盘存储器由IBM公司在1956年研发成功
磁盘存储器的组成
信息的载体是一个绕轴旋转的圆盘,圆盘表面涂有一层磁性材料,盘面上有一个磁头,磁头装在磁头臂上,磁头臂在步进电机的驱动下直线运动
圆盘的基片如果用金属铝制成,则称为硬盘,如果是塑料制成,则称为软盘
如图是磁盘存储器的逻辑结构,它仅表示信息的读写逻辑,未画出寻址定位机构
写入时,从主机来的信息经过并转串,由写驱动器逐位功率放大后送读写磁头线圈
读出时,磁头先找到指定磁道,磁道相对磁头运动,产生感生电流经过读出放大器还原,然后经过串转并后输出
磁盘上信息的编址和记录格式
为了在指定的磁盘区域内读写信息,需要将盘面划分为若干区,称为扇区(sector),每条磁道以扇区为界分为若干个记录(扇段),每个记录中信息的数量相同,记录是磁盘地址的最小单位,只要知道磁道号和扇区号,就可以定位记录。除了磁道号和扇区号,还有记录面号,软盘只有两个记录面,磁盘组有N个记录面,所有这些记录面上,半径相等的磁道的集合称为圆柱面(cylinder)
磁盘与主机交换信息时,一次最少要交换一个记录
磁盘存储器的技术指标
存储密度:磁盘单位面积上所能存储的二进制信息,它包括道密度(沿半径方向单位长度的磁道数)和位密度(磁道单位长度上的二进制位数)两个指标
存储容量:所能存放的总的信息量,单位是字节
平均定位时间:从发出磁盘读写命令开始,磁头从当前位置移动到指定的记录位置,并开始读写操作所需要的时间
寻道时间:将磁头定位到指定磁道上所需的时间
等待时间:找到指定磁道后至指定的记录移动到磁头下的时间
数据传输速率:单位时间读取的信息量
磁带存储器
读写原理与磁盘存储器相同,不过它的载体是塑料带
光盘存储器
利用光学原理存取信息的存储器,主要特点是存储容量大、寿命长、可靠性高
光盘存储器的类型
只读型光盘:CD-ROM,由厂家预先写入,用户只能读取
一次写入光盘:WORM,可由用户一次性写入信息
可擦可重写光盘:Rewrite
直接重写光盘:Overwrite
数字化视频光盘:DVD
光盘存储器的组成
由盘片、驱动器、控制器组成,驱动器主要由光头和控制电路组成
光头部分:大功率激光器、光学系统、光电探测系统、调焦跟踪执行机构及快速径向移动机构
控制电路:主轴恒角速度控制、光盘自动加载控制、点调焦跟踪伺服控制、快速存取控制、激光器读写功率控制、信号处理及内部系统控制。
存储器概述
存储器:计算机中存放指令和数据的主要场所
理想的存储系统:大容量、高速度、低成本
存储器分类
按存取方式
随机存储器:random access memory
存储单元的内容可以按需随机的取出或存入,且存取的速度与存储单元位置无关
早期使用的磁芯存储器,和现在广泛使用的半导体存储器都是随机存储器
顺序存储器:sequential access memory
存储单元的内容只能依地址顺序访问,且访问速度与存储单元的位置有关
磁带存储器、CD-ROM等都是顺序存储器
直接存取存储器:direct access memory
不必经过顺序搜索就能在存储器中直接存取信息,这类存储器兼有随机存储器和顺序存储器的访问特性】
磁盘属于DAM,寻道和找扇区的过程与RAM类似,扇区内读写数据与SAM类似
读写存储器
既能读出又能写入
只读寄存器:read only memory
内容不允许随意改变,只能读取,不能修改
按存储介质
磁性材料存储器
又称磁存储器,包括磁芯存储器、磁盘存储器、磁带存储器,它们以磁性材料作为存储介质
半导体存储器
用半导体器件组成,有两大类,一是三极管型,分为TTL和ECL两种,二是MOS管型,分为静态(SRAM)和动态(DRAM)两种
光存储器
信息以刻痕的形式保存在盘面上,用激光束照射盘面,靠盘面的不同反射率来读取信息,分为CD-ROM,WORM,MO
按功能和存取速度
寄存器型存储器
由寄存器组成,如CPU内部的寄存器组,速度与CPU匹配,但是容量一般很小
高速缓冲寄存器
是一个高速小容量寄存器,用于存放CPU近期要执行的指令和数据,用于提高存储系统的访问速度
主存储器
简称主存,用于存放程序和数据,CPU可以随机访问,一般由MOS存储器组成
外存储器
简称外存,是主机外部的存储器,也称辅助存储器,容量大速度低,存放暂不运行的程序和数据,CPU无法直接访问
按信息保存的时间
易失性存储器
断电后,保存的信息丢失,如RAM
非易失性存储器
断电后,信息不丢失,如ROM,磁盘存储器,光存储器
存储器系统的层次结构
主存的主要技术指标
容量
存储器可以存储的二进制信息总量称为存储容量,常用的单位是位和字节
存取速度
存取时间:又称存储器的访问时间,是指启动一次存储器操作到该操作完成所需要的时间
存取周期:连续启动两次访问操作之间最短的时间间隔,该时间段内不进行读写,仅用于寄存器状态恢复,并为下一次操作预留时间,该时间略大于存取时间
存储器带宽:单位时间内存储器所能传输的信息量,带宽是衡量数据传输速率的重要指标、
存储器的可靠性
用平均故障间隔时间MTBF(mean time between failure)来衡量
主存中数据的存放
存储字长与数据字长
存储字长:主存中一个存储单元所存储的二进制位数
数据字长:计算机一次能处理的二进制位数
存储字长和数据字长不一定相同,32位的计算机可以采用8、16、32、64位的存储字长
大端和小端数据存放方式
大小端模式指的是多字节数据在内存中的存放顺序
大端:低位字节存储在较大的地址上
小端:低位字节存储在较小的地址上
边界对齐的数据存放方法
数据按照边界对齐的方式存放可以提高存储系统的访问效率
主存的基本结构和工作过程
存储体:实际存放程序和数据的位置
地址译码器:接收来自CPU的地址信号,经过译码驱动后,形成地址选择信号,选择对应的存储单元
数据寄存器:读的时候,存放从存储体中取出的数据,写的时候,存放从CPU送来的数据
控制线路:接收CPU的读写控制信号后,产生存储器内部的控制信号,从而进行读写操作
主存的大致工作流程
CPU想要读取或写入某个数据,先给出相应的地址
该地址经过译码驱动后,选中对应的存储单元
由控制线路产生的信号,控制读出或写入
存储系统的层次结构
对存储系统的基本要求是存储速度快,存储容量大、成本价格低,而这些条件相互矛盾,为了解决这些矛盾,构建了如图的存储系统
高速缓冲cache:提高CPU对存储系统的访问速度
辅存:解决容量不足的问题
半导体存储器
半导体存储器的主要特点是存取速度快、体积小、成本低、可靠性高,通常分为RAM和ROM
静态MOS存储器 SRAM
静态MOS存储单元
存储单元:是存储器中最小存储单位,存储一位二进制信息
先通过字线和位线选通T5~T8四个门控管
如果要写1,则给D线加高电平,同时给负D先加低电平
高电平经过T7、T5,使得T2导通,低电平经过T8、T6使得T1截止
如果要读取信息,同样先给行列信号打开门控管T5~T8
如果存储的信息为1,则D线输出高电平,存储的是0,则D线输出低电平
不对存储单元操作时,门控管T5~T8截止,电源通过T3、T4提供电流,保持数据
静态MOS存储器的结构
一般由存储体、地址译码电路、I/O电路和控制电路组成
存储体:由静态MOS存储元组成,4096个存储单元组成64*64的阵列组织
地址译码器:将地址翻译成驱动存储单元门控管的控制信号,选择相应的存储单元
驱动器:每条选择线要控制与它相连的所有存储单元,负载很大,因此用驱动器增加其负载能力
I/O电路:用以控制数据的输入与输出,也就是对选中的单元进行读写控制
片选和读写控制电路:只有片选信号为低时,代表选中该存储器,读写控制电路用以控制读或写
动态MOS存储器 DRAM
四管动态MOS存储元的工作原理
为了提高集成度,动态MOS存储器不像静态MOS一样持续供电,因此去掉了供电的管子
T1、T2为工作管,T5~T8为门控管
读写前,先打开T5~T8门控管
写1时,则给D线加高电平,同时给负D先加低电平
D线的高电平经过T7、T5,使得T2导通,C2保持高电位,低电平经过T8、T6,使得T1截止,C1放电保持低电平
读操作前,先通过预充信号打开T9、T10,对Cd,负Cd电容充电,如果原来存储的是1,则Cd对D线放电,输出高电平1,同时补充C2的电荷,负Cd经过B和T2,连通到地,负D线会出现反方向电流脉冲
刷新操作:DRAM中,信息以电荷形式存储在C1和C2上,需要定期刷新,否则会因为电容放电而丢失信息
单管动态MOS存储单元的工作原理
可以用一个MOS管和一个电容构成单管动态存储单元
写入时,选通T1、T2,位线D上的信息写入电容C
读出时,选通T1、T2,电容C输出信息到位线D上
读出时信息会被破坏,因此一般将读出的信息重新写入,恢复原来保存的信息,该动作称为再生
动态MOS存储的刷新
不同材料、不同生产工艺的DRAM刷新时间不同
刷新地址由刷新地址计数器产生,而不是CPU发出
刷新方式
集中刷新
最后的n个读写周期全部用来刷新,优点是读写操作期间不受刷新影响,缺点是死时间比较长,刷新期间不能读写
分散刷新
将一个周期分为两部分,前半段读写或保持,后半段用于刷新,优点是不存在死时间,缺点是影响系统速度
异步刷新
是集中刷新和分散刷新的折中方式
透明刷新
由于指令译码期间不访问存储器,在这段时间刷新,不占用CPU时间,对CPU透明
只读存储器
只能读,不能写,断电后可长期保存,称为ROM
MROM:掩膜式只读存储器,信息由生产厂家写入,不可修改
PROM:可编程只读存储器,只能编写一次程序,常采用熔丝工艺
EPROM:可擦除可编程只读存储器,能多次编程,利用紫外线擦除
EEPROM:电可擦除可编程只读存储器,能通过程序擦除及烧写
闪存 FLASH
快速擦写,非易失性,可以在线擦除和重写,主要作为BIOS存放的存储器或移动存储器
主存的组织与CPU的连接
单片存储芯片的存储容量有限,要获得一个大容量的存储器,通常需要用多片存储芯片,按照一定的组织方式与CPU连接,这就是存储器的组织
存储器的拓展
由于存储芯片的容量及字长与目标存储器的容量及字长可能存在差异,因此要进行拓展
位拓展
当存储芯片的数据位小于CPU对数据位的要求时,采用为位拓展方式
地址线,读写控制线:存储芯片的并联,然后与CPU相连
数据线:读写芯片的串联,然后与CPU相连
字拓展
也称容量拓展,解决存储芯片容量不足的问题
数据线,读写控制线:存储芯片的并联,然后与CPU相连
片选信号:由CPU多余的地址线产生
字位同时拓展
当存储芯片的数据位和存储容量均不能满足时,采用字位同时拓展
并行存储系统
目前,主存的存取速度已经成为计算机系统的性能瓶颈,除了选择更高速的元件来提高访问速度,也可以通过存储体的并行工作来提高存储器的访问速度,缓解CPU与主存速度不匹配的矛盾
双端口存储器
同一个存储器具有两组相互独立端口的存储器,每个端口有各自独立的数据端口、地址端口以及读写控制端口、片选端口等,每个端口可以独立进行读写操作
并行读写:当左右两个端口的地址不同时,同时读写不冲突
冲突处理:访问地址相同时,会发生读写冲突,为解决冲突,为每个端口设置一个标志BUSY
单体多字存储器
采用多个并行的存储模块共用一套地址寄存器,按同一地址并行访问不同存储模块的同一单元,从而实现在同一个存储周期内访问多个存储字,提高主存带宽
多体交叉存储器
多体交叉存储器也由多个存储模块组成,这些模块的容量和存取速度相同,具有各自独立的地址寄存器、地址译码器、驱动电路和读写控制电路,根据对多个模块编址方式的不同,又可分为高位多体交叉和低位多体交叉两种
高位多体交叉
高位多体交叉主要是为了拓展存储器的容量,与存储字扩展完全相同,也就是用高位段地址经过译码产生片选信号,选择不同的存储体,而低位段地址选择具体的存储单元
可以看出高位交叉有如下特点:
相邻地址在同一存储体内
不同存储体的地址不相邻
高位多体交叉一般应用在共享存储器的多机系统中,在这些系统中,各处理机通常访问各自所需的数据对象,当这些数据对象存放在不同存储体时,存取操作可以并行
低位多体交叉
用低位段地址经过译码产生片选信号,高位地址选择具体的存储单元
相邻的地址在不同存储体内
同一存储体中的地址不相邻
设存储模块的存储周期是T,总线传输周期及相应的处理延迟总和为τ,交叉模块数为m,要实现流水线方式存取,应该满足的条件是:
T = mτ
也就是每经过τ的延时后,启动下一个模块
示例:m=4的情况,从图中可以看出
每个存储体各自的存储周期仍然为T
每个存储体错开1/4个存储周期分时启动读写操作,每个存储周期内可访问4次
低位交叉存储器比较适合单处理机内的高速数据存取以及带有cache的主存
高速缓冲存储器 cache
cache是计算机系统中广泛使用的一种减少CPU与内存之间速度差异的方法
程序访问的局部性原理
在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内,这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的线性,称为程序访问的局部性
时间局部性:
当程序访问一个存储位置时,有很大的可能性在不就的将来会再一次访问同一位置,循环结构就是如此
空间局部性:
一旦程序访问了某个存储单元,则不就之后,其附近的存储单元也将被访问
利用程序的局部性原理,可以在主存和CPU通用寄存器之间设置cache,把正在执行的地址附近的一部分指令或数据从主存中调入这个存储器,供CPU在一段时间内使用,从而提高CPU访问存储系统的速度
cache的工作原理
主存地址的划分
为了便于比较和查找,cache和主存都被分为大小相等的若干块,每块又包含若干个字
根据不同的地址映射方法,对cache和主存地址进行不同的逻辑划分
主存块地址:
对CPU访问主存单元地址按块大小划分后,得到的一个地址,用以标识CPU所访问的主存单元所在的主主存块号
块内偏移地址:
表示CPU所要访问的单元在某块内的偏移值,找到数据所在的块后,根据该值可以定位CPU要访问的具体单元
索引:
索引是对主存块地址进一步划分后得到的更细粒度的地址,用于指示CPU访问cache的位置,即作为cache存储体的地址指示器,指出CPU访问cache存储器的范围,如指定cache的某一行或某几行
标记:
标记也是对主存块地址进一步划分后得到的更新粒度的地址,作为判断CPU要访问的内容是否在cache中的依据
cache的基本结构
cache结构主要包括三个部分:
数据存储体:用以存放主存数据的副本
标记存储体:用以存放标记
有效位:用以标识存放在cache中的数据是否有效,CPU在查找和更新cache时需要使用到有效位
cache的组织及CPU访问cache的流程
访问流程:
对CPU访问寄存器的地址进行逻辑划分,得到标记、索引、块内地址
按照索引字段,从cache标记存储体特定单元读出标记值,并与之前得到的标记进行比较,如相同则命中
命中后,根据索引和块内地址,访问cache数据存储体,读出数据送到CPU
未能命中,分为cache未满和已满的情况
cache未满时,从主存调取信息到cache
cache已满时,将cache中某单元的数据交换到主存上,再从主存调取信息到cache
更新cache时,同时更新标记、索引和块内地址
cache的命中率
命中率:命中的次数占总次数的比例
丢失率:未命中次数占总次数的比例
平均访问时间:命中率 * 命中访问时间 + 丢失率 * 未命中访问时间
访问效率:命中访问时间 / 平均访问时间
如果全部命中,则访问效率为1,否则小于1
相联存储器
相联存储器是一种按内容访问的存储器,一般由存储体、检索寄存器、屏蔽寄存器、符合寄存器、比较线路、代码寄存器、控制线路几部分组成
检索寄存器:用以存放检索字,其位数和相联存储器的存储单元位数相等
屏蔽寄存器:屏蔽寄存器也称为表征码寄存器,用以存放屏蔽码,以确定检索寄存器参与检索的位数
符合寄存器:存放按检索项内容检索cache存储体时命中存储体单元地址
比较线路:把检索项和从存储体内读出的单元内容进行比较,如果比较结果相同,则符合寄存器对应位置1
代码寄存器:用来存放存储体中读出的数据,或者存放向存储体中写入的数据
存储体:用以存放标记
译码选择电路:根据符合寄存器的状态译码选出被检索命中的地址,并将其内容读出送到代码寄存器
计算机系统中,相联存储器主要用以虚拟存储器中存放段表、页表、快表以及高速缓冲存储器中的查找
cache的地址映射及变换方法
地址映射:是指把主存地址空间映射到cache的地址空间,即把存放在主存中的内容按照某种规则装入cache,并建立两者之间地址的对应关系
地址变换:在程序运行时,把主存地址变换为cache地址
一个假设
假设本章节的内容,都是基于以下内容来讲解
cache的容量为4K字节
cahce和主存中,数据块大小为256字节,即cache划分为16块
主存容量为1M,即地址线20根,主存被划分为4096个块
指令或数据从主存的0号单元开始存放
全相联映射
associative mapping,在全相联映射下,只对主存和cache分块,包含块号和块内地址两部分
全相联映射下,主存中任意块,可以映射到cache中的任意块
由于没有索引,地址变换时,需要将cache所有行的标记部分送到比较器中,与当时访问地址中的标记部分进行对比,判断内容是否在cache中
全相联映射的特点
主存数据块可以映射到cache的任意一行,因此cache的利用率高
只要cache中还有空行就不会引起冲突,因此cache冲突率低
每次地址变换时要比较cache中所有行的标记,因此电路复杂
适合小容量cache(行数少)
直接映射
direct mapping,在对主存分块的基础上,直接映射还对主存分区,每个分区中包含的块数与cache的行数相同,直接映射对主存地址的逻辑划分为:
根据之前说的假设,主存被分为256个区,每个区16块,每块256个字节
直接映射的特点:
由于主存的一个数据块只能映射到cache的特定行,因此cache利用率低
索引值相同的所有主存块映射到cache的同一行,因此cache冲突率高
地址变化时只根据索引值取cache特定行的标记值进行比较,因此比较电路简单,与cache行数无关
适合于大容量cache使用
组相连映射
set associative mapping,是直接映射和全相联映射的折中方案
组相连方式一
将cache分为p组,每组有k行,称cache中每组包含k行的组相联称为k-路组相联,在这个方式中,主存也分组,每组中包含的块数同cache的组数,即主存中每组中包含p块,该方式下,主存地址的逻辑划分为
根据映射算法,只将主存数据直接映射到cache数据存储体的特定组,该组的位置由索引字段的值确定,至于调入该组的哪一行(块)则是任意的
组相连方式二
设cache分为p组,每组有k行,主存先分区,每区中包含的块数同cache的行数(即p * k行),也就是说每个区的大小等同于cache整个的大小,然后对每个区再分组,每区中包含的组数及每组中的块数与cache包含的组数及每组的行数相同,即组相联方式2中,主存组的大小与cache组的大小完全相同,该方式对主存地址的逻辑划分为
需要注意的是,存入cache标记存储器的,是主存区号+组内块号,区内组号用作索引
组相联方式2的映射算法也是将主存数据直接映射到cache数据存储体的特定组,该组的位置由索引字段决定,至于调入该组的哪一行,则是任意的
对比两种组相联方式,发现同一主存块映射到cache的组号可能不同,但是无论是哪种,它们都结合了全相联映射和直接映射的特点
替换算法
如果cache中已装满数据,新的数据要进入时,就要将原来的数据块替换掉
先进先出算法 FIFO
按照数据块进入cache的先后顺序进行替换
优点:系统开销小,实现容易
缺点:不考虑程序的局部性,导致cache命中率不高
近期最少使用算法 LRU
least recently used, 将近期内长久未被访问的行换出
优点:cache命中率较高
缺点:实现比FIFO复杂
最不经常使用算法 LFU
least frequently used,将一段时间内被访问次数最少的那行数据换出
优点:cache命中率较高,但是不如LRU
缺点:不能严格反应近期访问情况
随机替换算法
random replacement,进行替换时,从特定的行位置中随机地选取一行
优点:硬件实现最容易,速度较前几种快
缺点:cache命中率和cache工作效率不高
随着cache行数的增加,这种算法的负面影响会越小
cache的写策略
CPU在执行程序期间,除了对cache进行大量的读操作外,也存在对cache的写操作
写回法 WB
write-back,使用这种策略,cpu对cache写命中时,只修改cache的内容,只有换出时才被写入主存
为了支持这种策略,每个cache行必须配置一个标志位,即脏位,如果被cpu修改过则脏位为1
写直达法 WT
write-through,当cpu写命中时,同时对cache和主存中同一数据块进行修改
多cache结构
多cache结构在计算机系统中普遍采用
片内和片外两级cache
第一级 L1:将cache与处理器集成在同一芯片内,减少了对外总线的访问
第二级 L2:由于L1通常较小,在CPU片外和主存之间再设置一个cache
统一和独立cache
统一cache:指令和数据放在同一个cache,优点是设计和实现简单,命中率高
独立cache:指令和数据放在不同cache
虚拟存储器
虚拟存储器的工作原理
虚拟存储器出现的原因:
受技术和成本限制,主存空间不能无限扩大
程序员希望有一个很大的编程空间,在编写程序时不受主存大小的限制
计算机系统是多进程的,每个进程都需要有自己的地址空间,不可能为每个进行提供完整地址空间的存储器
在存储系统的层次结构中,虚拟存储器处于“主存-辅存”存储层次,通过在主存和辅存之间增加部分软件(如OS)和必要的硬件(如地址映射与转换机构、缺页中断结构等),使辅存和主存构成一个有机的整体,就像一个单一的、可供CPU直接访问的大容量主存
程序员可以使用虚拟存储器提供的地址(虚拟地址)进行编程,这种存储系统称为虚拟存储器
虚拟地址通过MMU转换成实际的物理地址
虚拟存储器的地址映射和变换
在虚拟存储器中有三种地址空间
虚拟地址空间:称为虚拟空间,是应用层程序员编写程序的地址空间
主存的地址空间:称为物理地址空间或实地址空间
辅存地址空间:磁盘存储器的地址空间
在cache中,地址映射是将主存中的数据按照规则调入cache
虚拟存储器类似,将虚拟地址空间映射到主存空间,并通过MMU建立虚地址与实地址的对应关系
地址变换,则是在程序装入主存后,在实际运行时,把虚拟地址变换成实际地址或磁盘存储器地址,以便CPU读取相应的信息
页式虚拟存储器
页式虚拟存储器就是将其基本单位划分为页,且将主存的物理空间划分为与虚拟存储器等长的页
系统基本信息的传送单位是定长的页,需要通过地址变换机构实现访问过程,当访问页面不存在时,通过页面置换算法,将需要的页面调入主存
优点:由于页面的起点、终点地址是固定的,因此页表简单,调入方便,主存空间浪费小
缺点:由于页面不是逻辑上的独立实体,因此处理、保护、共享都不如段式虚拟存储器方便
段式虚拟存储器
段式虚拟存储器是一种将主存按段分配的存储管理方式,各段的长度因程序而已,段是利用程序的模块化性质,按照程序的逻辑结构划分成的多个相对独立部分,系统的基本信息传送单位为段,并通过地址变换机构实现访存过程
优点:段的分界与程序的自然分界相对应,段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享,某些类型的段具有动态可变长度,允许自由调度以便有效利用主存空间
缺点:段的长度各不相同,段的起点和终点不定,给主存空间分配带来麻烦,而且容易在段间留下许多空余的不易于利用的零碎存储空间,造成浪费
段页式虚拟存储器
段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合,在这种方式下,把程序按逻辑单位分段以后,再把每个段分成固定大小的也,程序对主存的调入调出是按页面进行的,但它又可以实现按段共享和保护
优点:兼备页式虚拟存储器和段式虚拟存储器的优点
缺点:在地址映射过程中需要多次查表
快表 TLB
为了加快查找速度,利用程序的局部性原理,把页表分为快表和慢表,一般的页表称为慢表放在主存中,最常用的页表信息放在cache中,称为快表,快表是慢表的子集
存储保护
为了保证计算机系统正常运行,在处理多进程时,某一程序改写或占用其它程序的存储空间,是不允许的
段保护、页保护:每个程序都有自己的段表和页表,当虚拟的段号或页号出错时,找不到对应的内存
键保护:为主存的每一页分配一个键,称为存储键,每个用户的实存页面的键都相同,每道程序都有访问键,当数据要写入某一页时,比较键值,相同则允许访问
越界保护:对于没有MMU的主存而言,可采用越界保护方法,系统为每个程序划定存储区域,用确定的上下界地址实现区域保护,禁止越界访问
辅助存储器
磁表面存储器
在金属或塑料的表面涂上一层薄薄的磁性材料,再在磁性材料上存储信息
主要特点:存储容量大、价格低、非破坏性读出、可长期保存、反复使用、存取速度慢、工作环境要求高
读写原理
磁表面存储器利用磁性材料剩磁的两种磁化方向来记录信息
写入时,在线圈中通脉冲电流(电流方向不同,写入信息不同),磁头气隙处的磁场把它下面一小块区域的磁层向某一方向磁化,形成某种剩磁状态,因而记下一位二进制信息,磁层上这个被磁化的小区域,称为磁化单元,随着磁层的运动,线圈通不同方向的电流,在磁层上依次形成相应的磁化单元
读出时,某一磁化单元移动到磁头处,在磁层与磁头交链的磁路中磁通发生变化,于是在线圈中感生出不同方向的电流,经读写放大和整形后,还原出写入时的信息
记录方式
磁层上的信息是靠磁头线圈中通不同方向的电流脉冲形成的,因此写入时需要把二进制信息变为对应的写电流脉冲序列,将写入电流波形的组成方式称为记录方式
归零制:写1时加正向电流,写0时加负向电流,在写入信息前,电流归零,记录简单容易实现,但是抗干扰能力差
不归零制:写1时正向电流,写0是负向电流,电流不归零,抗干扰能力强
调相制:利用电流相位的变化来写1或0,如写1时电流先负后正,写0时电流先正后负,抗干扰能力强
调频制:不论写0或1,电流在位周期结束时一定要改变方向,写1的电流频率是写0的两倍,记录密度高,具有自同步能力,磁盘存储常用这种记录方式
磁盘存储器
磁盘存储器由IBM公司在1956年研发成功
磁盘存储器的组成
信息的载体是一个绕轴旋转的圆盘,圆盘表面涂有一层磁性材料,盘面上有一个磁头,磁头装在磁头臂上,磁头臂在步进电机的驱动下直线运动
圆盘的基片如果用金属铝制成,则称为硬盘,如果是塑料制成,则称为软盘
如图是磁盘存储器的逻辑结构,它仅表示信息的读写逻辑,未画出寻址定位机构
写入时,从主机来的信息经过并转串,由写驱动器逐位功率放大后送读写磁头线圈
读出时,磁头先找到指定磁道,磁道相对磁头运动,产生感生电流经过读出放大器还原,然后经过串转并后输出
磁盘上信息的编址和记录格式
为了在指定的磁盘区域内读写信息,需要将盘面划分为若干区,称为扇区(sector),每条磁道以扇区为界分为若干个记录(扇段),每个记录中信息的数量相同,记录是磁盘地址的最小单位,只要知道磁道号和扇区号,就可以定位记录。除了磁道号和扇区号,还有记录面号,软盘只有两个记录面,磁盘组有N个记录面,所有这些记录面上,半径相等的磁道的集合称为圆柱面(cylinder)
磁盘与主机交换信息时,一次最少要交换一个记录
磁盘存储器的技术指标
存储密度:磁盘单位面积上所能存储的二进制信息,它包括道密度(沿半径方向单位长度的磁道数)和位密度(磁道单位长度上的二进制位数)两个指标
存储容量:所能存放的总的信息量,单位是字节
平均定位时间:从发出磁盘读写命令开始,磁头从当前位置移动到指定的记录位置,并开始读写操作所需要的时间
寻道时间:将磁头定位到指定磁道上所需的时间
等待时间:找到指定磁道后至指定的记录移动到磁头下的时间
数据传输速率:单位时间读取的信息量
磁带存储器
读写原理与磁盘存储器相同,不过它的载体是塑料带
光盘存储器
利用光学原理存取信息的存储器,主要特点是存储容量大、寿命长、可靠性高
光盘存储器的类型
只读型光盘:CD-ROM,由厂家预先写入,用户只能读取
一次写入光盘:WORM,可由用户一次性写入信息
可擦可重写光盘:Rewrite
直接重写光盘:Overwrite
数字化视频光盘:DVD
光盘存储器的组成
由盘片、驱动器、控制器组成,驱动器主要由光头和控制电路组成
光头部分:大功率激光器、光学系统、光电探测系统、调焦跟踪执行机构及快速径向移动机构
控制电路:主轴恒角速度控制、光盘自动加载控制、点调焦跟踪伺服控制、快速存取控制、激光器读写功率控制、信号处理及内部系统控制。
举报