- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
打算整理汇编语言与接口微机这方面的学习记录。本部分介绍存储器及其扩展方法.
参考资料 。
外存:磁盘、U盘、光盘等,外存严格来说属于IO设备.
顺序存储器和随机存储器:读写数据的方式不同.
内存:本文主要讲内存.
只读存储器:存放系统管理程序,比如计算机主板ROM里的BIOS程序.
ROM:一次性写,只读.
PROM:一次性可编程、只读; 。
每个新的芯片为空片:如果以字节为单位,则为FFH.
EPROM:常用,紫外线可擦除ROM,借助专用写入器可以将程序写入(写入的时候要先擦干净).
目前常用型号:2716(2K乘8字节==2KB),2732,2764,27128.
后两者目前常用.
E 2 PROM:电可擦除ROM。可以反复写入,先擦除干净后写,且掉电后信息不丢失 。
常用是28系列.
随机读写存储器RAM:能读能写,但是掉电后信息丢失.
SRAM:静态,像寄存器/锁存器.
常用型号6264(8k×8bit==8KB)、62128、62256、2114(1K乘半字节,需要用两个2114并成一个字节--位扩展) 。
DRAM:动态,像电容,存1相当于给电容充电,所以需要反复给DRAM上电刷新(读出来再写入,刷新周期要满足一定条件,太长就不能让系统辨认原有数据了).
应用DRAM需要设计地址刷新电路,而这个刷新电路很复杂,所以自己设计系统一般使用SRAM.
DRAM集成度更高(虽然较于SRAM速度慢一点点),而计算机使用的都是DRAM.
本章主要是内存中ROM和SRAM的设计.
从结构角度的分类/微机系统中存储器的层次结构:
容量 。
如果要设计32KB,62256(32K乘8bit==32KB)需要1片,2114需要64片 。
这里尽量选择接近的芯片来做,比如2114的话占用面积大且对电源要求高.
速度 。
存取时间:启动一次存储器操作到完成此次操作的时间 。
存储周期:两次独立的存储器单元操作的 最小时间间隔 。
可以从半导体公司手册查到.
要求:(针对8086读写周期需要4个clk周期这一点) 。
下面的公式应该不会考,了解吧:
存储器芯片的最小读出时间: \(t_{cyc}(R)<4T-t_{da}-t_D-T\) 。
- T:8086时钟周期
- tda:8086的地址总线延时时间
- tD:各种因素引起的总线附加延时。总线长度、附加逻辑电路、总线驱动器等之和、
减去一个T是因为工程上的要求.
存储器芯片的最小写入时间: \(t_{cyc}(W)<4T-t_{da}-t_D-T\) 。
存储带宽:单位时间传输数据容量的大小.
带宽(B,MB/s)==存储器时钟频率(F,MHZ)*存储器数据总线位数(D)/8 。
\(B=F\times D/8\) 。
非易失性:是选择ROM还是RAM.
可靠性:平均故障时间间隔.
功耗、成本等 。
8K×8bit,有13根地址线(编码8k),数据引脚8根(引脚8bit),此外还需要片选信号.
6264有两个片选信号CS1fei和CS2:
还有一个输出允许脚OEfei,片选有效且输出允许有效时,可以输出数据。一个写允许脚WEfei,与片选结合可以写入数据.
注意不能同时写或读。OE和WE只能一个有效.
与8088CPU的地址总线结合起来来看,则8086的低13位地址线A12 A0直接寻址6264内部,这叫片内寻址;而高位地址线A19 A13,片外寻址,也就是决定是1MB的哪一个8KB,引出译码作为控制信号,作为片选信号。这一点比较好理解.
注意这里8088没有奇偶地址的概念,比较简单.
8086CPU的地址总线。则A1 A13来片内寻址,A0决定是奇还是偶地址,高位A14 A19片外寻址.
而如果用6264给8088微机系统设计32KB的SRAM:
上述思路是字节扩展,P198 6.4.2 。
注意 译码电路不仅是地址,还有控制信号。 比如8088最小方式中有IO/Mfei,表示对存储器操作.
这里实际只需要两位A13和A14来选择芯片块,同时也可以再加上其他不变的高位地址线,参与译码 。
1K×4bit。有10根地址线,4位数据线.
使用2114给8088系统扩充4KB存储系统:
需要8片 。
先两两相并位扩展,再串联字节扩展.
8K×8,所以13根地址线,8根数据线 。
要对2764先擦除后写入数据:
擦除.
OEfei无效,CEfei有效.
不是直接接到地址线和数据线,两边各需要一个锁存。将地址和数据都锁存起来 。
当上层命令来到,VPP电压加上,PGM加负脉冲,在这个负脉冲期间,锁存也解除,向选中地址写入相应数据 。
CE OE有效,将写入的数据读出(无锁存器的通道),比较是否符合预期,如果符合,则写入完成.
如果不相等,可重新操作,如果多次操作不行,可能地址单元损坏.
hhh,学了这个可以做编程器了... 。
2764的正常工作/只读模式:
例题见书P200 6.1 。
P205 例6.5 。
第一题,简单,16KB为2的14次方,16进制是4000H,地址范围就是80000H~83FFFH 。
第二题:
进行地址分析:
逻辑电路(不用型号):
整体设计如下图所示:
如果使用74LS138来做译码器(这个我没有学,跟上图原理相同,只不过封装了一些东西) 。
第三题:用到一点点汇编知识。这里55H和AAH数据图案检测,给要检测的RAM存储区每个地址单元分别写入55H(0101_0101)和AAH(1010_1010),并读出比较是否符合预期,如果符合,则读写正常。如果不正常,则应作出相应出错报警提示.
MOV AX,8000H
MOV DS,AX
MOV SI,0
MOV CX,16*1024
MOV AL,55H
NEXT1: MOV [SI], AL
MOV BL, [SI]
CMP BL, AL
JNE ERROR ;不相等则转到ERROR
INC SI ;地址增加继续比较
LOOP NEXT1
MOV SI,0
MOV CX,16*1024
MOV AL, 0AAH
NEXT2: MOV [SI],AL
MOV BL,[SI]
CMP BL,AL
JNE ERROR
INC SI
LOOP NEXT2
...
ERROR: ...
扩展原理基本相同,相较于8088,多的是奇偶地址的片选:
P208 例6.6:
上图改为74LS138,但这个器件我不总结了,我没学.
设计图如下图所示:
最后此篇关于微机原理与系统设计笔记6|存储器系统设计的文章就讲到这里了,如果你想了解更多关于微机原理与系统设计笔记6|存储器系统设计的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
概述 限流,其基础含义为对流量进行限制,其既包括在速率上的限制,又包括在资源上的限制,这里主要讨论的是对速率进行限制。 本文分为三部分,第一部分中我们将讨论在做限流前必须要弄清的问题: 为什么要去做限
我在一个项目中与两位顾问合作。问题是我们已经到了一个地步,他们都无法达成协议(protocol),而且每个人都提供了不同的方法。 问题是我们有一家商店有四个部门,我们想找到在同一个数据库中与所有部门合
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
从系统设计/可扩展性的角度来看,在处理需要大量写入数据库中特定表的系统时,有哪些行业标准策略。 为简单起见,假设该表是产品的库存表,有一个“产品名称”列和一个“计数”列,并且每次将新产品购买到系统中时
我需要构建一个 /search API,允许某人发送 POST,并检索稍后可以通过单独的 /results API 查询的 ID。 我查看了 Spring 方法: DeferredResult @As
我是一名优秀的程序员,十分优秀!