计算机里的刻度:时钟和步进器

news2025/1/18 3:16:20

        计算机的底层逻辑很简单,它们被定义为完成一些简单的事情。计算机是一个复杂系统,复杂的是如何规划好处理这些简单的事情的时间和步骤。本节就可以了解到计算机的时间刻度和步进器的构成,帮助我们进一步理解计算机的底层工作原理。

时钟是什么?

        上节我们介绍了要在适当的时间打开和关闭适当的控制位。本节我们就介绍一下合适的时间是怎么控制的。这是一种新的绘图,我们称之为图形。它显示了一个bit是如何随时间变换的。从左边开始,向右前进。图形上的线有两个可能的位置,向上表示位打开,向下表示位关闭。

        该图显示了位“X”的开和关、开和关的规律。底部可能会有一个时间刻度来显示这种情况发生的速度。如果页面的整个宽度代表一秒,那么位“X”将每秒打开和关闭大约八次。但我们不需要这些图中的时间刻度,因为我们只关心两个或更多比特之间的相对时间。实际计算机的速度会非常快,比如每秒十亿次的bit开关操作。

        当某物有规律地重复某个动作时,其中一个动作单独地被称为循环。上图显示了大约八个循环。 “circle”一词来源于’ Cycle’,根据规律,所以当bit变化了一个全周期时候,就是一个循环。德国科学家Heinrich Hertz(海因里希·赫兹)引导了无线电的发展,还研究了快速通断的电,所以人们决定用他的名字来描述电的开和关速度,或者每秒发生多少次循环。因此,一赫兹(或简称Hz)意味着电流每秒通断一次。500 Hz表示每秒500次,每秒一千次被称为千赫(kHz)。每秒上下一百万次称为兆赫(mHz),十亿次称为千兆赫兹(gHz)。

        每台计算机都有一个特殊的比特。计算机中的所有其他位都来自某个地方,它们由其他位或开关设置。这一个特殊的位可以自行打开和关闭。但它并没有什么神秘之处,它只是非常有规律地、非常迅速地进行着。如下图,右边是更精简的版本。

  

        本质上是一个非门组成,将非门的输出连接回其输入。这个门会尽可能快地打开和关闭。这实际上太快了,不能用于任何事情,所以只要延长形成环路的导线就可以减缓速度。

        这个特殊的比特有一个名字:时钟。这有点不像我们平常见到的时钟,但作为计算机的计时单位,这是一致的。如果我们想谈论告诉你现在是什么时间的时钟类型,我们会称它为“一天中的时间钟”,简称“TOD clock”。

        这个时钟开的有多快,如今,它的频率远远超过每秒十亿次,或几十亿赫兹。这是计算机公司告诉你的一个主要特征,用来向你展示他们的计算机有多棒。当你看到电脑在出售时,他们宣传的速度就是它的时钟速度。计算机速度越快,价格就越高,因为它可以在一秒钟内完成更多的事情。正是这一位的速度决定了整个计算机的节奏。

如何通过设置时钟获取寄存器数据呢?

        还记得我们之前介绍过的每个寄存器自带的一个set,enable两个状态位吗?要通过总线移动数据,我们首先需要启用一个且仅启用一个寄存器的输出,以便其电能通过总线传输到其他寄存器的输入。然后,当数据在总线上时,我们希望打开和关闭目标寄存器的设置位。由于目标寄存器在设置位关闭的瞬间捕获总线的状态,我们希望在关闭第一个寄存器的启用位之前确保它关闭,以确保没有问题.

        让我们先将一段导线连接到时钟的输出端。这会稍微延迟供电。我们希望它延迟大约四分之一个周期.

        如果我们在图上显示原始时钟输出(clk)和延迟时钟输出(clk d),它们将如下所示:

        现在我们要做一些相当简单的事情。我们将使用原始时钟和延迟时钟,并使用and和OR来创建两个新bit,如下所示

        当“clk”或“clk d”打开时,其中一个新bit打开,只有当“clk”和“clk d”都打开时,另一个新bit才打开。此处显示了与门和或门的输入和输出的图表。它们仍然定期开关,但其中一个打开的时间比关闭的时间长,另一个关闭的时间比打开的时间长。且第二个的打开时间正好在第一个的打开的时间中间。

        你是否注意到,它们有名称“clk e”,代表时钟启用,“clk s”代表时钟设置。你知道吗,这两个bit有完美的时间通过总线将一个字节的数据从一个寄存器移动到另一个寄存器。只需将“clk e”连接到“from”寄存器的启用位,并将“clk-s”连接到到“to”寄存器的设置位。这是这两个位的单个开/关周期。

        正是在这样的时钟周期里,把一个寄存器的数据传递到了另一个寄存器里。当然,这些时钟位不能直接连接到每个寄存器。在这两者之间必须有其他门,确保它们在任何时候都只允许一个寄存器获得使能,并且只允许所需的寄存器接收集合。但所有启用和设置最终都来自这两个bit,因为它们具有正确的时间。以后我们将使用以下图表来显示时钟:

步进器

        如果我们想让计算机做一个加法,这需要一个以上的时钟周期才能完成。

  1. 在第二个循环中,我们可以在总线上启用R0,将ALU设置为ADD,并将答案设置为ACC。
  2. 在第三个循环中,我们可以在总线上启用ACC,并将其设置为R0。
  3. 在第一个时钟周期中,我们可以在总线上启用R1,并将其设置为TMP。

        我们现在有R0的旧值,加上R0中的R1。也许这看起来不是很有用,但这就是计算机所做的一种小步骤。许多这样的小步骤使计算机看起来能够做非常复杂的事情。

        因此,我们看到处理器要做一些有用的事情,需要几个步骤。它需要能够按顺序执行操作。我们需要在“控制区”里添加另一个叫做“步进器”的部件。这是一个完整的步进器。

        它有两个输入,其中一个被称为“clk”,因为这是连接一个开关位的地方,比如原来的时钟位。另一个输入被称为“复位”,用于将步进器返回到第一步。对于输出,它有许多位,每个位将在一个完整的时钟周期内打开,然后依次关闭。标有“步骤1”的输出在一个时钟周期内开启,然后在下一个时钟循环内开启“步骤2”,等等

        可以构建为具有您想要执行的任何特定任务所需的任意步骤。就我们正在建造的这台计算机而言,七个步骤就足够了。当最后一个步骤(7)打开时,它保持打开,步进器不做任何其他事情,直到重置位被短暂打开,此时步骤从“步骤1”开始重新开始。这里是输入“clk”位和七步步进器输出的图表

        这是步进器的构造。步进器由几个连接在一串的存储器位组成,其中一个的输出连接到下一个的输入。下面是一张图,显示了大部分步进器:

        “M”就是Memory的意思,在这张图中,有十二个连接在一起,其中一个的输出端连接到下一个的输入端,一直沿着线路往下。左边第一位的输入连接到一个总是通电的地方,所以当“M”的set位接通时,“M”将接收该接通状态,并将其传递到其输出端。

        仔细看这些M的设置位,你会发现偶数M的设置位连接到clk,奇数M的设定比特在经过非门后连接到同一个时钟。这个通过非门传递clk而产生的新比特可以称为“NOT clk”,我们可以在这个图上显示这两个比特

        当“clk”首次打开时,什么都不会发生,因为第一个“M”的设置位连接到“not clk”,当“clk”打开时,“not clk”关闭。当“clk’关闭时,“not clk’打开,第一个“M”将打开,但第二个“M’不会发生任何事情,因为它的“设置”位连接到现在关闭的“clk‘。当“clk”重新打开时,第二个“M”现在将亮起。随着时钟的滴答声,进入第一个存储位的“on”将沿行递减,时钟打开运行一个bit,时钟关闭运行一个bit。因此,每个时钟周期有两bit作用。

        现在,转到下面的全步进图,步骤1来自连接到第二个“M”的输出的非门,由于所有的“M”都开始了,步骤1将一直持续到第二个“M”开始,此时步骤1将结束。对于剩余的步骤,每个步骤将从其左侧“M”打开的时间一直持续到其右侧“M”开启的时间。当左侧“M’打开,右侧“M’关闭时,步骤2-6的“与”门的两个输入都打开。如果我们将一个“M”的输出和一个“M”的输出的“非”连接两个空格,它的输出将开启一个完整的时钟周期。每一个位在其左输入端开启时开启,但其右输入端尚未开启。这给了我们一系列位,每个位开启一个时钟周期,然后关闭。

        这里唯一缺少的是“M”位开始并保持。一旦它们全部打开,尽管时钟继续滴答作响,但没有更多的动作。因此,我们需要一种方法将它们全部重置,以便重新开始。我们必须有一种方法来关闭第一个“M”的输入,然后同时打开所有设置位。当这种情况发生时,第一个“M”输入端的“off”将以最快的速度穿过所有“M”。我们将添加一个名为“重置”的新输入,它将完成这些任务。

        当我们打开“重置”时,它会使第一个“M”位的输入为零,并同时打开所有“集合”,这样零可以很快地沿着“M”的线移动。复位也与步骤1进行“或”运算,以便步骤1立即打开。现在所有的位都关闭了,我们开始了另一个新序列。重置只需要在一个时钟周期的一小部分时间内打开

        总而言之,这是一台步进器。它有两个输入:时钟和复位。对于输出,它有许多位,每个位将在一个时钟周期内开启。事实上,我们可以根据需要延长更多步骤,但就本书而言,七级步进机就足够了。我们的计算机中只有一个步进器,我们将用这个简化图来表示

        我们将重置位重新定位到图的右侧,并将其连接到最后一步(7),以便步进器自动重置。然而,第7步不会持续很长时间,因为只要零能够通过M的字符串,它就会自动关闭。这意味着步骤7的持续时间不够长,无法用于总线上的数据传输。我们想要完成的所有事情都将在步骤1到6中完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/18705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis三(3-1)

分布式缓存 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题 一、redis持久化 - RDB持久化 - AOF持久化1.1RDB持久化 RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的…

java项目-第150期ssm网络视频播放器-java毕业设计_计算机毕业设计

java项目-第150期ssm网络视频播放器-java毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm网络视频播放器》 该项目分为2个角色,管理员、用户。 用户可以浏览前台查看视频信息、系统公告、论坛信息。 并且可以进入到个人中心查看视频信息、…

计算机毕业设计java基于javaweb+ssm+vue婚纱摄影网站

本站不同于其它摄影网站,本网站不但可以展示本店的摄影作品,更可以列出众多摄影套餐供用户选择预约,用户看中哪款套餐了,可以预约时间进行拍摄,即增加了店内本身的业务量,也方便了客户直接在线订套餐。 对于…

[附源码]计算机毕业设计JAVA基于JAVAWEB的高校实训管理系统

[附源码]计算机毕业设计JAVA基于JAVAWEB的高校实训管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术:…

nacos源码分析-服务注册(客户端)

前言 一直都想写SpringCloudAlibaba的源码分析,终于开始动手第一篇了,如果想要看懂Nacos源码至少要把《SpringBoot自动》配置看了,不然就是看天书。本篇文章呢带大家一起来看一下Nacos-Client 客户端服务注册这一部分的源码。 基础环境 首…

MongoDB基本查询语句

文章目录 查询选择器查询就是获取存储在数据库中的数据。在MongoDB中,查询通常针对一个集合来操作。查询可以指定查询条件,只返回匹配的文档;还可以指定投影项,只返回指定的字段,减少返回数据到客户端的网络流量。 为了进行测试,我们先假想一个常用的电子商务网站上可能用…

svg VS canvas,哪种在移动端适配度更好?实战经历告诉你~

最近做了一个画图的功能,后端提供棋盘数据,前端需要把数据转换成一个棋盘画出来,当时有两种实现方法,一种是使用canvas画图,一个是使用svg画图. ui提供的设计稿如下: 由于这是一个轮播图,当后端返回多少张棋盘数据时,就需要渲染多少张棋盘,最多有十张,基于canvas和svg画图,为了…

【Milvus的以图搜图】

0. 介绍 Milvus官方在bootcamp项目中给开发者提供多种解决方案,包含常见的以图搜图、人脸检索、DNA相似性检索、视频检索等等,具体可以参考bootcamp项目。 本文主要就bootcamp中以图搜图reverse_image_search的代码介绍如何运行该样例,进而了…

文献阅读-VSE++:使用困难负样本来改经视觉语义嵌入

Title:《VSE: Improving Visual-Semantic Embeddings with Hard Negatives》 Authors:Fartash FaghriDavid FleetJ. KirosS. FidlerJournal:ArXiv (2017)Date:2017 code:GitHub - fartashf/vsepp: PyTorch Code for t…

Java基础38 面向对象三大特征之多态

OOP之多态 多态1.多态的具体体现2.向上转型3.向下转型4.属性重写5.instanceOf6.动态绑定机制(核心)● Java的动态访问机制7.多态数组8.多态参数)多态 ● 多【多种】态【状态】 方法或对象具有多种形态。 是建立在封装和继承之上的面向对象的第三大特征…

一文带你学会Vue3基本语法

Vue3 起步1.通过 CDN 使用 Vue32.Vue3 模板语法文本Html属性表达式指令参数3.模板用户输入双向绑定1.通过 CDN 使用 Vue3 你可以借助 script 标签直接通过 CDN 来使用 Vue&#xff1a; <script src"https://unpkg.com/vuenext"></script>通过 CDN 使用…

在WPF中使用Prism弹出自定义窗体样式的对话框

概述 我们在Prism中弹出一个对话框&#xff0c;默认是一个Windows默认样式的窗口&#xff0c;这样会同自己所开发的项目完全不搭调&#xff0c;譬如下面这样子 那么如果为了配合软件主体的风格&#xff0c;可以做出类似这样效果 其实原理也很简单&#xff0c;Prism也考虑到了这…

不科学,RocketMQ生产者在一个应用服务竟然不能向多个NameServer发送消息

前言 目前有两套RocketMQ集群&#xff0c;集群A包含topic名称为cluster_A_topic&#xff0c;集群B包含topic名称为cluster_B_topic&#xff0c;在应用服务OrderApp上通过RocketMQ Client创建两个DefaultMQProducer实例发送消息给集群A和集群B&#xff0c;架构图如下&#xff1…

使用Vue脚手架配置代理服务器的两种方式

1 前言 本文主要介绍使用Vue脚手架配置代理服务器的两种方式 注意&#xff1a;Vue脚手架给我们提供了两种配置代理服务器的方式&#xff0c;各有千秋&#xff0c;使用的时候只能二选一&#xff0c;不能同时使用 2 代理 除了cros和jsonp&#xff0c;还有一种代理方式&#x…

传奇GM调整极品属性的命令------技术分享

传奇GM调整极品属性的命令 GM命令supermake命令用法&#xff01; 以下格式皆为supermake a b c   以上命令含义&#xff1a;调整A(装备)的B(属性)到C(点数) supermake 1 0 10  1代表武器  0代表攻击 10代表调整的点数 B参数代表需要调整的那项属性如攻击 魔法 道术 …

黑*头条_第4章_文章搜索前后端成形记 实名认证审核

黑*头条_第4章_文章搜索前后端成形记 & 实名认证审核 文章目录黑*头条_第4章_文章搜索前后端成形记 & 实名认证审核文章搜索前后端成形记 & admin实名认证审核1 文章详情-前端开发1.1登录接口1.1.1 基本定义1.1.2 code定义1.1.3 mapper实现1.1.4 service代码实现1.…

宝塔一键安装wordpress

使用宝塔面板来部署网站是非常方便的&#xff0c;以WordPress网站为例来说&#xff1a; 一般有两种方式安装WordPress网站&#xff0c;第一种是上传网站程序到网站根目录手动安装&#xff0c;另外一种是在宝塔面板后台左侧菜单&#xff0c;找到“WordPress一键部署”&#xff…

Map 和 Set

模型 一般我们把搜索的数据称为 关键字(key) , 关键字对应的值叫做 值(value) , 将之称为 key-value 键值对. 衍生出两种模型: 1. 纯 key 模型 例如 : 班级上点名, 在花名册上找人的名字. 2. key-value 模型 例如 : 统计一个字符串中每个字母出现的次数, 结果是每个字母和它对…

简易版 图书管理系统

目录 1. Book包 1.1 Book类 1.2 BookList类 2. User包 2.1 User抽象类 2.2 AdminUser类 2.3 NormalUser类 3. Operate包 3.1 MyOperate接口 3.2 AddOperation类 3.3 DelOperation类 3.4 ExitOperation 3.5 FindOperation类 3.6 ShowOperation类 3.7 BorrowedOpe…

MySQL——数据库、表的操作

文章目录数据库的操作创建数据库创建数据库例子字符集和校验规则查看数据库支持的字符集查看默认的字符校验规则校验规则对数据库的影响查看数据库显示详细的创建数据库语句修改数据库删除数据库查看连接情况表的操作创建表显示创建表的详细过程不同的数据库引擎查看表结构修改…