图灵完备之路(数电学习三分钟)----内存原理

news/2025/7/8 16:28:51

我们在前面已经将计算机的运算控制,时序控制以及数据管理都设计好了,此时我们已经可以完成少部分数据量的运算了,但如果我们要运行多个/多种算式在不同时序输出到不同通道的任务时该怎么办?当然可以通过设计出满足要求的定制电路来实现,可是若要求稍微变动,总不能又设计电路吧,有这个时间,手算都完成了,所以此时我们需要设计一个通用的电路,能实现不同的要求。

首先,我们需要将我们的要求放到一个地方,需要这个要求就取出来,而不是到某个时间点我们还需要手动去输入;其次,我们运算复杂的式子时,需要将临时结果找个地方放置,基于以上两个需求,我们将设计一个东西来放置命令与数据,这就是内存

1.储存1bit数据

还是从简单的开始,我们的命令与数据都是以1bit为单位的,所以我们要设计一个存1位数据的东西。无疑,逻辑门通过设计是可以储存数据的(锁存器),但我们有更好的选择---延时线,延时线可以暂时(1刻)存储1字节的数据。那么如何设计呢?

首先,我们需要两个输入,一个是待写入的数据,一个是控制写入的信号,当不准写入时,哪怕有数据,数据也不能输入到电路中,所以还需要一个开关,那么设计就可以如下:

乍一看没有问题,但其实这一电路只能存住一拍的数据,如何让数据一直存着呢?我们可以再设计一个存储器,在这一拍结束后,将这拍的数据写入到另一个存储器中,下一拍再重复操作,数据便能一直存贮了。

那么怎么加呢?直接加还需要一个控制写入的命令,但我们发现,第一个储存器写入数据时,第二个不能传给第一个,不然会导致数据冲突,同理,第二个写入时也是如此,因此我们便可以用一个输入来控制两个开关了:

2.储存1字节数据

既然1位数据没有问题,那么我们就可以设计8位(1字节)的存储器了:

我们约定一位存储器如下:

首先,1字节(8位)写入必然是靠一个信号控制的,所以我们先设计如下:

8位数据按位操作,但输入输出是一个8位数据线,所以还需要拆线与集线:

这样我们就实现了1字节数据的存储,但该电路的数据会一直不断的输出,既然写入能控制,那么输出(读取)也应该可以控制,我们再加入一位输入,以便对内存进行管理:

1字节内存,get!!!


https://dhexx.cn/news/show-5552592.html

相关文章

PyTorch中 item()、tolist()使用详解和实战示例

在 PyTorch 中,.item() 和 .tolist() 是两个常用于从 Tensor 中提取 Python 原生数据的方法,尤其在调试、日志记录或将结果传给非张量库时非常有用。下面是它们的详解与代码示例。 1. .item() 方法 用途: 将仅包含一个元素的张量&#xff0…

量化交易中的隐藏模式识别:基于潜在高斯混合模型的机会挖掘

*——从市场噪声中提取黄金信号的数学艺术** > 2025年3月,某对冲基金使用潜在高斯混合模型捕捉到铜期货的异常波动模式,提前布局实现单月收益47%。核心代码仅20行,却颠覆了传统技术分析范式。 --- ### 01 市场迷思:为何90%的交易者失败? 金融市场本质是**非…

FFmpeg录制屏幕及声音

目录 前言 一、dshow 二、gdigrab(强烈建议) 抓取整张桌面 抓取屏幕中特定的一个窗口 抓取屏幕及声音 前言 在Windows系统使用抓取屏幕数据有两种方法:gdigrab和dshow。 一、dshow 使用前需要先安装screen-capture-recorder,下载地址 下载完后直接…

Qt开发:QListWidget的介绍和使用

文章目录 一、QListWidget的简介二、QListWidget的基本用法三、QListWidget的数据操作2.1 插入数据2.2 查找数据2.3 选项设置 四、QListWidget的信号与槽 一、QListWidget的简介 QListWidget 是 Qt 框架中用于显示和操作条目列表的控件,它是 QListView 的一个子类&a…

【Oracle专栏】大批量插入数据 BULK COLLECT

Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.背景 最近发现从一个表插入另一个表,表行数少的 很快就可以了,但是上十几万、百万的数据,插入会很卡顿,甚至几个小时都无法完成。 原因:insert插入时没有做批量提交,另外可能导致undo表空间撑爆。…

Eureka、Nacos、LoadBalance、OpenFeign​之间的区别联系和协作 (附代码讲解)

这篇文章聊聊微服务里的这几个老伙计:Eureka、Nacos、LoadBalance、OpenFeign。 咱们做微服务开发,总会跟这几个组件打交道:Eureka、Nacos、Spring Cloud LoadBalancer、OpenFeign。它们各司其职又互相配合,今天就把它们的关系、…

【Elasticsearch】检索高亮

检索高亮 1.什么是片段2.案例实战2.1 测试数据准备2.2 基础高亮语法2.3 自定义高亮标签2.4 多字段高亮2.5 返回完整字段内容2.6 长文本多匹配点场景2.7 限制片段数量和大小 3.为什么有时片段长度会超过 fragment_size3.1 示例分析3.1.1 查询1:严格限制片段大小3.1.2…

AWS WebRTC:通过shell分析viewer端日志文件

在并发过程中,每个viewer会产生一个对应的日志文件,日志文件名为: viewer_channel_index_20250626_030943_145.logviewer端日志比master端日志文件数量多,比例大概是5:1,有1个master就会有5个viewer,每个viewer对应一个日志文件。 我要统计的是从启动viewer到出第一帧视…

成为git砖家(12): 看懂git合并分支时冲突提示符

拉取远程更新并合并到本地当前分支时&#xff0c;遇到冲突&#xff1a; git pull --rebase查看冲突的文件 git/.gitconfig.d/basic: # buffer size [http]postBuffer 1048576000 # 1GB, default is 1MB <<<<<<< HEAD[url "gitgithub.com:"]i…

【Elasticsearch】检索排序 分页

检索排序 & 分页 1.测试数据准备2.排序功能2.1 简单字段排序2.2 多字段排序2.3 日期排序 3.分页功能3.1 基础分页3.2 深度分页&#xff08;不推荐大数据量使用&#xff09;3.3 使用 search_after 进行高效分页 4.综合示例&#xff1a;高亮排序分页5.实践建议 1.测试数据准备…