计算机原理与应用第五章——半导体存储器

第五章——半导体存储器

文章目录

  • 第五章——半导体存储器
    • 一、半导体存储器概述※
      • (一)分类
      • (二)结构
    • 二、典型存储器芯片及其接口特性※
      • (一)典型的SRAM——6116
      • (二)典型的DRAM——2164A
      • (三)典型的ROM——2732A
      • (四)典型的NOR Flash 和 NAND Flash
      • (五)双端口存储器——IDT7132
    • 三、主存储器的设计※
      • (一)存储器系统的组织
    • 四、分级存储体系
    • 五、高速缓存技术
    • 六、虚拟存储技术
    • 七、STM32存储器结构※
      • (一)STM32的存储器组织
      • (二)位绑定

一、半导体存储器概述※

(一)分类

计算机原理与应用第五章——半导体存储器_第1张图片

  • 随机存取存储器RAM:
    能够随时进行数据的读出和写入,掉电后信息全部丢失。

    • SRAM :静态RAM,SRAM速度快计算机中的高速缓冲存储器大多用SRAM。
    • DRAM:动态RAM,目前计算机内的主存储器都是DRAM,它的集成度高、功耗很低,缺点是需要外加刷新电路,工作速度比SRAM慢。
  • 只读存储器ROM:
    用户在使用时只能读出其中的信息,不能修改和写入信息,掉电不会消失。

    • ROM
    • PROM:可编程,写入一次
    • EPROM:可擦除可编程,写入多次(用紫外线灯)
    • EEPROM:点可擦除可编程,写入多次(用电)
    • FALSH:可擦除(用电),操作简便

(二)结构

半导体存储器一般由存储器、译码驱动电路、地址寄存器、读写驱动电路、数据寄存器、控制逻辑组成。
计算机原理与应用第五章——半导体存储器_第2张图片

  • 存储体:
    存放1位信息:0、1——记忆单元/基本存储电路
    N个记忆单元——存储单元
    2^M个存储单元——存储体

  • 数据:
    存储体里一个存储单元为N位,故需要N条数据线。

  • 地址:
    存储体里有2^M个存储单元,要选完这些单元要用M条地址线。

因此——存储器容量:

半导体存储器芯片的存储容量是指存储器可以容纳的二进制信息量。用m×n表示,m为存储单元数,n为每个存储单元存储信息的位数。

因此,若某存储器芯片有M位地址总线、N位数据总线,则其存储容量为2^M×N位。

	例:某存储器芯片的地址线为16位,存储字长为8位,则其存储容量为多少?
	解:该存储器芯片中M为16位,N为8位,则其存储容量为2^16×8位=64K×8位。

	2^10 = 1k
	2^20 = 1M
	2^30 = 1G

二、典型存储器芯片及其接口特性※

(一)典型的SRAM——6116

计算机原理与应用第五章——半导体存储器_第3张图片

6116有2K × 8位= 2^11 x 8 = 16384个存储位,排列成128x128的矩阵,可构成2KB的内存。
2K 表示芯片内的地址有11位(A0-A10),因此有11条地址线,
8位表示一个单元有8个二进制位,因此有8条数据线,
芯片内有128×128的存储单元矩阵。
它有11条地址线,
7条用于行地址译码(可选择2^	7=128个),
4条用于列地址译码(可选择2^4 = 16个),共128x16 = 2048 = 2K。

计算机原理与应用第五章——半导体存储器_第4张图片

  • ~CE:片选,有效时,芯片才工作,否则为“高阻”
  • ~WE:读写控制,为0时写,为1时读;
  • ~OE:输出控制,为0时,允许输出。

(二)典型的DRAM——2164A

DRAM芯片都设计成位结构形式,即每个存储单元只有一位数据位
一个芯片上含有若干字,如4K×1位,8K×1位,16K×1位, 64K×1位或256K×1位等。
存储体的这一结构形式是DRAM芯片的结构特点之一。

Intel 2164A的内部结构

  • 存储体:64K×1 = 64 x 2^10 = 64 x 8 x 128的存储体由4个128×128的存储阵列成。要选完,需要16位地址线,1位数据线
  • 地址锁存器:由于Intel 2164A 采用双译码方式,故其16位地址信息要分两次送入芯片内部。但由于封装的限制,这16位地址信息必须通过同一组引脚分两次接收,因此,在芯片内部有一个能保存8位地址信息的地址锁存器;
  • 数据输入/输出缓冲器: 用以暂存输入/输出的数据;
  • 1/4 I/O门电路:由行、列地址信号的最高位控制,能从相应的4个存储矩阵中选择一个进行输入/输出操作;
  • 行、列时钟缓冲器:用以协调行、列地址的选通信号;
  • 写允许时钟缓冲器:用以控制芯片的数据传送方向;
  • 128读出放大器:与4个128×128存储阵列相对应,共有4个128读出放大器,它们能接收由行地址选通的4×128个存储单元的信息,经放大后,再写回原存储单元,是实现刷新操作的重要部分;
  • 1/128行、列译码器: 分别用来接收7位的行、列地址,经译码后,从128×128个存储单元中选择一个确定的存储单元,以便对其进行读/写操作。

计算机原理与应用第五章——半导体存储器_第5张图片
Intel 2164A的外部结构

  • A0~A7:地址信号的输入引脚,用来分时接收CPU送来的8位行、列地址
  • ~RAS:行地址选通信号输入引脚(row),低电平有效,兼作芯片选择信号。当为低电平时,表明芯片当前接收的是行地址;
  • ~CAS:列地址选通信号输入引脚(column),低电平有效,表明当前正在接收的是列地址(此时应保持为低电平);**
  • ~WE: 写允许控制信号输入引脚,当其为低电平时,执行写操作;否则,执行读操作。
  • DIN:数据输入引脚;
  • DOUT:数据输出引脚;
  • VDD:+5V电源引脚;
  • Vss:地;
  • N/C:未用引脚。

(三)典型的ROM——2732A

计算机原理与应用第五章——半导体存储器_第6张图片
Intel 2732A是一种4K×8 b的EPROM
4k = 2^12,因此需要12条地址线A_11~A_0
8位数据,需要8条数据线O_7~O_0;

~CE为芯片允许信号,用来选择芯片;
~OE为输出允许信号,用来把输出数据送上数据线,只有当这两条控制线同时有效时,才能从输出端得到读出的数据。
计算机原理与应用第五章——半导体存储器_第7张图片

(四)典型的NOR Flash 和 NAND Flash

  • NOR FLASH最初由Intel公司于1988年推出,其采用了ETOX(EPROM Tennel Oxide)技术,因此具有EPROM的数据非易失性和可更新性。

    • 其数据的写入和擦除由主机系统内用电信号实现。
    • 与EEPROM 的数据擦除方式不同,NOR FLASH的数据擦除方式只能采用按块擦除的方式(块的大小一般为256KB~20MB);
    • 且NOR FLASH比较适合应用于频繁随机读写的场合,常用于手机等嵌入式系统的程序代码存储器。
  • NAND FLASH结构最初由东芝公司于1989年推出,与前几种ROM不同,其数据和地址采用同一总线进行串行读取,不能随机按字节进行访问

    • 但与NOR FLASH相比,其成本相对较低,容量大,适用于纯数据存储和文件存储的场合
    • 我们常用的U盘和数码存储卡大都是采用NAND型闪存。

(五)双端口存储器——IDT7132

双端口存储器具有两组相互独立的读写控制电路,两组电路独立并行工作,因而工作速度较快而得到较为广泛的应用。

典型的双端口静态存储器芯片IDT7132
在高速双端口存储器IDT7132 中,有两个相互独立的端口:左端口和右端口。分别具有各自的地址线、数据线和控制信号。当任意一个端口被选中时,即可对整个存储器进行读写。
计算机原理与应用第五章——半导体存储器_第8张图片
计算机原理与应用第五章——半导体存储器_第9张图片

三、主存储器的设计※

(一)存储器系统的组织

  1. 存储器结构确定
    微机中的内存往往被分为片内存储器和扩展的片外存储器。构建存储器系统时,应根据微处理器的不同,选择不同的存储器组织结构。如:

    • 8086/8088CPU 以及MCS-51单片机只使用片外存储器
    • 部分型号的C8051F单片机在片内集成了一定容量的数据存储器。当系统的容量超出该范围时,则必须通过扩展片外存储器来解决
    • 某些嵌入式芯片的适用范围有限制。如S3C2410(ARM920T内核)虽然理论上支持0~232-1的寻址空间,但只有1G的地址空间(0X00000000-0X40000000)用于支持片外存储器的连接,其他空间有一小部分用于I/O端口或部件的寻址。
  2. 外部存储器系统设计步骤

    • 确定存储容量,根据容量选择存储芯片的类型和数量
    • 划分RAM.ROM去,画出地址分配图
    • 根据地址分配图确定译码方法
    • 画译码电路图
      (见笔记)

四、分级存储体系

存储层次(Memory hierarchy)是综合考虑容量、速度、价格的因素,建立的存储器组合,以满足系统对存储器在性能和经济两个方面的要求。
存储层次的结构:
计算机原理与应用第五章——半导体存储器_第10张图片

为了缓解CPU与内存之间额速度差异,目前的微机型技术一般采用在CPU和内存之间插入一速度较快的SRAM,起缓冲作用。

五、高速缓存技术

问题的提出:
微机系统中的内部存储器通常采用动态RAM构成,具有价格低,容量大的特点,但由于动态RAM采用MOS管电容的充放电原理来表示与存储信息,其存取速度相对于CPU的信息处理速度来说较低。这就导致了两者速度的不匹配,也就是说,慢速的存储器限制了高速CPU的性能,影响了微机系统的运行速度,并限制了计算机性能的进一步发挥和提高。高速缓冲存储器就是在这种情况下产生的。

存储器访问的局部性:
CPU需要频繁地与内存进行数据交换,包括取指令代码及数据的读写操作。
在一个较短的时间内,取指令代码的操作往往集中在存储器逻辑地址空间的很小范围内(多数情况下,指令顺序执行,因此指令代码地址的分布就是连续的,再加上循环程序段和子程序段都需要重复执行多次,因此对这些局部存储单元的访问就具有时间上集中分布的倾向);
数据读写操作的这种集中性倾向虽不如取指令代码那么明显,但对数组的存储和访问以及工作单元的选择也可以使存储器单元相对集中。
这种对局部范围的存储器单元的访问比较频繁,而对此范围以外的存储单元访问相对甚少的现象,称为程序访问的局部性

Cache-主存存储结构及其实现:
在主存和CPU之间设置高速缓冲存储器Cache,把正在执行的指令代码单元附近的一部分指令代码或数据从主存装入Cache中,供CPU在一段时间内使用。由于存储器访问的局部性,在一定容量Cache的条件下,可以做到使CPU大部分取指令代码及进行数据读写的操作都只要通过访问Cache,而不是访问主存而实现

优点:

  • Cache的读写速度几乎能够与CPU进行匹配,所以微机系统的存取速度可以大大提高;
  • Cache的容量相对主存来说并不是太大,所以整个存储器系统的成本并没有上升很多。

如果数据在Cache中,则CPU对Cache进行读写操作,称为一次命中。命中时,CPU从Cache中读(写)数据。由于Cache速度与CPU速度相匹配,因此不需要插入等待状态,故CPU处于零等待状态,也就是说CPU与Cache达到了同步,因此有时称高速缓存为同步Cache;
若数据不在Cache中,则CPU对主存操作,称为一次失败。失败时, CPU必须在其总线周期中插入等待周期TW。

例如:RAM的存取时间为80ns,CACHE的存取时间为6ns,CACHE的命中率为90%。
	 则存储器整体访问时间由没有CACHE的80ns减少为:
6ns×90% + 80ns×10% = 13.4ns

在一定的范围内,Cache越大,命中率就越高,但相应成本也相应提高。

Cache与内存的空间比一般为1:128。

六、虚拟存储技术

虚拟存储器(Virtual Memory)是指在内存不足的情况下,利用外存储器的一部分空间模拟内存,使软件可以将其当成一般的内存使用,从使用的角度来看,除了速度较慢外,其他的和内存相比并无明显区别。

(1) 主存-辅存层次
主存一般由半导体器件构成,辅存一般为磁存储器和光存储器。主存的速度远高于辅存,但辅存成本低,容量 大,而且断电后信息不会丢失。
CPU不能直接访问辅存,辅存主要用于存放大量程序、数据文件。当CPU执行某程序时,在存储管理软件和有关硬件的支持下,把有关程序从辅存调入主存,再由CPU执行,这样便形成了主-辅存的存储层次

(2) 虚拟存储器的概念
一台计算机主存容量有限,而辅存容量很大,如果一个程序及数据要比主存容量大,就无法运行。为解决这类问题,采用了硬件和软件的综合技术 ——虚拟存储器

  • 将主存和辅存的地址空间统一编址,提供了比实际物理内存大得多的存储空间。
  • 在程序运行时,存储器管理软件只是把虚拟地址空间的一小部分映射到主存储器,其余部分则仍存储在磁盘上。
  • 当访问存储器的范围发生变化时,处于后台的存储器管理软件再把用户所需要的内容从磁盘调入内存,覆盖原先存在的部分后继续运行。

七、STM32存储器结构※

(一)STM32的存储器组织

在STM32的存储器系统中,存储器与外设空间采用统一编址方式,且各字节按小端格式在存储器中存储。
STM32 采用了固定的存储映射结构,其地址空间是4 GB,程序存储器、数据存储器、寄存器和 I/O 端口排列在此空间内,整个存储空间分为8个主要块,每个块为 512 MB
计算机原理与应用第五章——半导体存储器_第11张图片
通过地址计算内存:
地址0x00000000 ~ 0x1FFFFFFF,就是2x16^7 = 0.5G = 512 MB)

  • 代码区(0x00000000 ~ 0x1FFFFFFF):用于存放程序。

  • SRAM 区(0x20000000 ~ 0x3FFFFFFF):用于片内SRAM,可存储数据,亦可以存放程序,用于固件升级等维护工作。

  • 片上外设区(0x40000000 ~ 0x5FFFFFFF):用于片上外设。STM32通过把片上外设的寄存器映射到外设区,从而可以简单地通过访问内存的方式来访问这些外设的寄存器,以控制外设的工作。

    • 外部外设区的前半段(0xA000 0000 ~ 0xBFFF FFFF):用于片外外设的寄存器,也用于多核系统中的共享内存。
    • 外部外设区的后半段(0xC000 0000 ~ 0xDFFF FFFF):用于片外外设的寄存器,也用于多核系统中的共享内存。这两部分合起来可以组成1GB的片外外设空间。
  • 外部RAM 区的前半段(0x6000 0000 ~ 0x7FFF FFFF):指向片上RAM 或片外RAM。

  • 外部RAM 区的后半段(0x8000 0000 ~ 0x9FFF FFFF):指向片上RAM 或片外RAM。这两部分合起来可以组成1GB的片外RAM空间。

  • 系统区(0xE000 0000 ~ 0xFFFF FFFF):用于私有外设和芯片厂商指定功能区。

STM32系列采用可变静态存储控制器(Flexible Static Memory Controller, FSMC)这种新型的存储器扩展技术来进行外部存储器扩展,其可根据系统的应用需要,灵活方便地进行不同类型大容量静态存储器的扩展。
FSMC支持多种数据宽度的异步读/ 写操作,而且支持对NOR闪存、PSRAM、NAND 闪存的同步突发访问,支持程序从FSMC扩展的外部存储器直接运行。

外部RAM的扩展:
STM32支持1GB 的外部RAM扩展,在进行存储器扩展时,FSMC可以将外部存储器划分为256MB 的连续4个存储块。(0x60000000 到 0x9FFFFFFF)

  • 存储块(0x60000000 ~ 0x6FFFFFFF)用于访问最多4个64MB 的NOR闪存或者PSRAM。
  • 存储块(0x70000000 ~ 0x7FFFFFFF)和(0x80000000~0x8FFFFFFF)用于访问NAND 闪存,容量为512MB
  • 存储块(0x90000000~0x9FFFFFFF) 用于访问PC卡存储设备.

(二)位绑定

位绑定操作是指把一个地址单元的32 位变量中的每一位,通过一个简单的地址变换算法,映射到另一个地址空间,使得每一位占用1个地址,当对此地址空间进行操作时,只有数据的最低位是有效的。
当对某空间位操作时,就不必进行传统的读取-屏蔽-操作,可以直接对32位变量中的每一位进行直接操作,从而优化了RAM和I/O寄存器的读/写方式,提高了32位变量中位操作的速度。

计算机原理与应用第五章——半导体存储器_第12张图片

在SRAM区的下部,地址空间0x2000 0000~ 0x2010 0000为存储器“1MB的位绑定区(Bit - Band)”,与之对应的是 32MB 的“位绑定别名区”,位于地址空间0x2200 0000~0x23FF FFFF。
位绑定别名区里面的每一个字(32 位) 就对应位绑定区的一位,而在位绑定区中,每一位都会映射到别名地址区的一个字中的最末位,从而使得对别名地址的访问最终会变换成对位绑定区的访问。

别名区中的每个字与对应位绑定区的相应位的对应关系为:
在这里插入图片描述
计算机原理与应用第五章——半导体存储器_第13张图片
如SRAM 地址为0x20000300 的字节中的第2 位,对应别名区中地址计算如下:
在这里插入图片描述

  • 对0x22006008 地址的读操作将返回SRAM 中地址0x20000300 字节的第2 位的值
  • 而对0x22006008 地址的写操作,则与对SRAM 中地址0x20000300 字节的第2 位执行“读—改—写” 操作有着相同的效果。

你可能感兴趣的:(计算机原理,stm32)