SRAM存储器的逻辑电路实现
实现读写一位数据的逻辑电路,被称为门锁。实现这样功能的还可以使用电容等其他物理结构,所以本文只介绍SRAM,但是其抽象都是一样的,只是物理层不一样而已。
门锁的抽象表示
输入:数据输入、允许写入线
输出:数据输出
在门锁周围加入允许读写控制线和逻辑电路门和一个单独的三极管可以使门锁变成一个具有独立功能的存储单元。
这样一个存储单元被称为锁存器,而一组这样的锁存器就被称为寄存器。连接的方式就是把所有的允许写入线连成一根线,数据输入线不变。寄存器的位宽就是能存多少个bit。
早期电脑用8位寄存器,后来用16位、32位、64位。
连成一根线就不能单独控制某个锁存,于是采用网格连接方式再加入一个and门实现精准控制。逻辑电路实现如下。
这样对某个锁存器操作只需要2n+3条线,n代表网格边长,3代表允许读线,允许写线,数据输入线。
而实现网格线中某两条线通电的机器叫做多路复用器。多路复用器指的是两个条,它的功能是输入一个数,输出对应于数的接口通电,变为1。用逻辑电路应该可以实现。(但我目前还没有想好如何实现)
所以最终形成的寄存器抽象长这样
然后进一步组合
这样每个格子同时对应存一个,相当于同时存了一个字节,总共可以存256个字节,这样组合的好处是以前存一个字节是一个一个存,现在是同时存,节省了存储时间。当时一个字节从物理上来看是分散的,这既有助于数据保密,也增加了数据丢失意义的可能性和风险。
我们把它内部封装一下,得到了一个内存RAM。这个就和我们操作系统中学到过的RAM抽象表示一摸一样了,但现在你知道了它的逻辑电路实现原理。你只要再知道逻辑电路的实现,就可以自己手动做出一个RAM!令人感概。
同时也说明寄存器和内存基础上原理都一样,都是门锁电路存取数据,只不过组合方式不同罢了。
这个8位寻址的内存是极小的,现代生活中我们往往要用到32位内存寻址,甚至更大。可见拓展内存的主要方式是拓展网格的边数。
最终实物就长这个样子啦。
这是1980的内存,大小只有1MB
这里有八个内存模块,每个模块里都有一个锁存矩阵,那么可见这个内存条是八位的,每次存取一个字节。
这是黑方块内部,还是又很多小方块,每个小方块是无数的锁存。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南