Turing Complete【图灵完备steam游戏教你如何从0到1造一台cpu】-5.处理器架构

精彩的部分来了,完成至本章,一台可以运行的图灵完备的cpu就造好了,废话不多说,开搞!

算数引擎

CPU的核心部件之一,算数运算单元ALU就是本关,需要进行加减乘除和按位与或非,每种运算都按其逻辑方式来即可,难度不高但非常重要
在这里插入图片描述

寄存器之间

本关也是核心部件之一,寄存器之间,主要是进行寄存器之间的相互赋值的操作,寄存器的作用就是用来存储计算单元ALU的临时值,正因为有寄存器,计算机才有了算数的记忆功能。
本关可以实现控制六个寄存器和输入输出,需要注意PROGRAM里面存储的是程序代码,由一个一个8位的字节组成,可以叫做指令代码,指令代码的最低三位可以控制源操作寄存器,由三位构成的二进制数可以表示8种状态,正好用来设定6个源操作寄存器和输入输出,中间三位同理,控制目的操作,最高两位暂时不用,后续会用到,这样就可完全控制源和目的的寄存器之间的操作了。(注意:随着后续条件判断和指令译码的电路部分加入,此关卡的电路也会随之改动,因此下面展示的其实是完整的图灵完备的电路)。
在这里插入图片描述

元件工坊

本关主要是把功能电路做成模块化,以便再后续的应用中实现更复杂的电路。
在这里插入图片描述

指令解码器

本关用到了指令代码的最高两位,通过这两位控制我们的cpu进入何种模式,二位二进制数可以表示四种状态,即立即数模式(00),计算模式(01),复制模式(10),条件跳转(11)。
在这里插入图片描述

计算单元

往寄存器之间的那关电路加入计算单元,需要动用之间做好的模块。
在这里插入图片描述

条件判断

本关比较麻烦,主要是地方太小,需要画的内容多,条件判断是重要的程序转移的电路部分,主要是和0比较得到8种状态结果,需要细细思考。
在这里插入图片描述
在这里插入图片描述

程序

本关主要是把之前现有的指令输入改成自建的代码输入,主要加入计数器部分,到这里我们就可以得知,程序是通过计数器加1,一步一步运行的,难度不大。
在这里插入图片描述

立即数

立即数的主要改动部分是R0寄存器,这样我们可以直接从程序里往R0寄存器写值,这个值叫做立即数,就是可以立即拿来做运算的意思。
在这里插入图片描述

图灵完备

恭喜你到达本关,只需要加入条件跳转部分,我们就可以控制程序从任意的位置执行,这样代码和数据就可以相互影响,我们可以自由的改变程序的执行位置从而实现任意的计算,即图灵完备!
在这里插入图片描述

下一章

编程

### 图灵完备性概念 图灵完备性指的是计算系统的表达能力,即该系统能够模拟通用图灵机的行为。任何图灵完备的语言都可以执行条件判断、循环以及函数调用等操作来完成复杂的算法设计[^1]。 ### Switch语句的功能特性 `switch`语句是一种多分支选择结构,在编程语言中用于简化多个`if...else if...else`的选择逻辑。它允许程序根据变量的不同取值跳转到不同的代码块执行特定的操作。尽管`switch`本身并不具备完整的控制流功能,但它可以与其他控制结构组合起来构建更复杂的应用场景。 ```c++ switch (variable) { case value1: // 执行某些操作 break; case value2: // 执行其他操作 break; default: // 默认情况下要做的事情 } ``` ### 关联分析 虽然单独来看,`switch`只是提供了有限的状态转移机制,并不足以证明其所在语言具有图灵完备性的特点;但是当把`switch`放在整个编程环境下去考量时——尤其是结合循环、递归和其他高级抽象手段之后——就可以看出即使是简单的语法糖也能成为构成强大计算模型的一部分。 例如,在支持自定义标签和goto指令的环境中,通过巧妙运用`switch`配合break/continue/fallthrough等关键字,完全可以实现任意形式的数据遍历与模式匹配过程,从而间接体现了底层平台所固有的图灵完全性质。 然而值得注意的是,真正决定一门语言是否达到图灵完备水平的关键因素在于能否提供足够的灵活性去描述任何形式化的数学命题求解流程,而不仅仅是依靠某单一语法组件的表现力。因此可以说,`switch`作为众多可用工具之一确实有助于增强整体表现力,但绝不是唯一标志或核心要素。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我像风一样自由&

感谢打赏,祝您事业有成!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值