0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单周期CPU是什么意思呢

冬至配饺子 来源:天奇工作室 作者:LRC 2022-08-07 10:21 次阅读

CPU又名中央处理器,作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。Logisim是一款逻辑电路设计仿真软件,我们可以在这个软件上面绘制各种逻辑电路,当然也包括CPU。

电脑中有intelAMD、Apple的CPU,手机中也有华为、高通、Apple的SOC,每次我研究这些他们设计的硬件时,总是觉得研究得不能很深入,往往只是看看官网参数和一些评测数据罢了。但是有些时候,总是有那么些不合常理的存在让我对CPU的认知一次又一次地被刷新。半年前是AMD(他们的笔记本CPU性能竟然直逼台式机),几个月前是Apple(他们的15W的M1芯片竟然砍倒一片几十W乃至几百W的台式机CPU,核显更是剑指独显)。这使我很烦躁,因为只是在外头看个热闹,很多原因我不能探明。所以就有了以下的一切。

这是第一章节《单周期CPU》

下面直接上图:

poYBAGLvISaALZZLAAG7FI3XMvg377.png

这便是该CPU全貌了

左上的部分是取指单元,其作用是从指令内存中取出指令。右上是译码单元,其作用是把指令所需操作翻译成电路的控制信号。右下是计算单元,通过调整对应的控制信号可以进行两数四则运算,并且可以访问数据内存,读取或者写入对应的数据。图中有深绿、亮绿和黑色的线,深绿色意味着这条线的电压是0V,亮绿色则为1V,黑色是因为每根黑色线都由若干根深绿或亮绿线组成,所以统一显示成黑色。

这个CPU采用自己瞎编指令集(ISA),属于精简指令集。与复杂指令集的区别在于它精简……之所以没有使用别人的指令集是因为我还在学习,下一次更新会采用RISC-V的开源指令集。有人可能会觉得难道自己造指令集不好吗?好又不好。这个问题我先挖个坑放着,有空我再讲。

字长为16位宽,意味着每次可以做16位的二进制运算,也就是最大2的16次方(65536)的运算,可以寻65536的内存地址。目前主流在32位和64位,只有少数单片机还在用16位,下次更新会更到32位。可能有人会有疑惑,如果我要计算的数字是天文数字呢?你就是64位也不够怎么办?首先,我们可以多做几次运算,这个可以通过专门的计算器程序来实现。(求积分的软件都有这个不算什么),其次可以使用浮点运算。但是我这个CPU没有浮点运算单元。(滑稽脸)这个挖个坑以后讲。

单周期(single cycle),每个时钟周期只能做一次运算。难道还能做好多次吗?能的,那就是流水线或者超标量技术甚至多核心。级数越高的流水线每个时钟周期可以做越多次的运算。五级流水线是最经典的流水线级数,当下主流的CPU的流水线级数都在8-15之间,也有20多的超流水线。但是流水线不是越深越好,凡事都有个度。再挖个坑,以后讲。

仅具备简单加减乘除的运算功能,当然也可以写个开方或者幂程序来支持高级运算。目前大多数的复杂运算也都是基于程序来实现的,直接固化在硬件电路中的也比较少见。据我所知,intel有把开平方写在指令集和硬件电路中,这样的好处是可以更快地求得结果,减少中途程序的调度过程。下一次更新会增加好多个运算电路,同时砍掉乘除,因为RISC-V中的RC32I不支持乘除指令,所以下次先砍掉。

该CPU一共有4个寄存器,没有缓存。相比之下,目前的CPU有几十到几百个寄存器,以及数kb的缓存。这个也会在下次更新补足到32个的。

这个CPU的解码部分也很有趣。我参考了x86的微指令设计。什么意思呢,就是正常的解码电路都是靠硬件逻辑解码硬解出来的,我这个不一样,是像查字典一样查出来的。这个字典就是图右上部分的ROM。这样的好处是不用设计电路了,实际电路生产中,如果电路设计有问题就得从头再来,再设计再生产。但是如果是我这种设计方式,改改ROM里的数值就行了,无法是给个软件升级。坏处也有,就是ROM实现方式占地太大,并且速度慢,功耗高。不过如果是在FPGA中大家都一样。FPGA我就再挖个坑吧。

对了,这个CPU有个bug,就是立即数(直接在程序中给明的数)不能直接参与运算,本来实现之初是有考虑到的,这个改也不难,但是现在忙着设计第二代,算了,留点遗憾才是完美。


审核编辑:刘清


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 逻辑电路
    +关注

    关注

    13

    文章

    494

    浏览量

    42654
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10873

    浏览量

    212093
  • 中央处理器
    +关注

    关注

    1

    文章

    124

    浏览量

    16533
收藏 人收藏

    评论

    相关推荐

    ADC器件连续转换和次转换的区别是什么?

    次转换指的是, ADC根据信号请求对输入信号进行一次切换,将转换值存储到内部转换寄存器,然后进入断电状态。这种模式适用于仅需要周期性转换,或者转换之间有较长空闲周期的系统,从而减少功耗。 而连续
    发表于 11-28 06:23

    LMX2491能否在2us内完成一次周期

    能否在2us内完成一次周期?我环路是按照手册上得,我按照图片上得设置锁定不了
    发表于 11-08 14:19

    端甲类和推挽甲类功放的区别

    (Class A) 定义 :端甲类功放是指在放大过程中,晶体管始终处于导通状态,即晶体管的输出电流始终存在。 工作原理 :在端甲类功放中,晶体管的导通时间是整个信号周期的100%,这意味着晶体管在整个信号
    的头像 发表于 10-09 17:18 1262次阅读

    CPU时钟周期与主频的关系和区别

    CPU时钟周期与主频是计算机体系结构中两个紧密相连且至关重要的概念,它们之间既存在关系又有所区别。以下将详细阐述CPU时钟周期与主频的关系和区别。
    的头像 发表于 09-26 15:46 1853次阅读

    总线时钟周期CPU时钟周期的区别

    总线时钟周期CPU时钟周期是计算机体系结构中两个重要但有所区别的概念。为了深入探讨它们之间的区别,本文将从定义、作用、关系、影响因素以及实际应用等多个方面进行详细阐述。
    的头像 发表于 09-26 15:43 2533次阅读

    CPU时钟周期、机器周期和指令周期的关系

    CPU时钟周期、机器周期和指令周期是计算机体系结构中三个紧密相连且至关重要的概念,它们共同构成了CPU执行指令和处理数据的基本时间框架。以下
    的头像 发表于 09-26 15:38 3279次阅读

    CPU时钟周期的组成和作用

    CPU时钟周期是计算机体系结构中一个至关重要的概念,它直接关联到CPU的运行速度和性能。以下是对CPU时钟周期的定义、组成和作用的详细解析。
    的头像 发表于 09-26 15:32 695次阅读

    CPU 双项目开发实现更好的维护性和可行性应用说明

    电子发烧友网站提供《CPU 双项目开发实现更好的维护性和可行性应用说明.pdf》资料免费下载
    发表于 09-12 09:42 0次下载
    <b class='flag-5'>单</b><b class='flag-5'>CPU</b> 双项目开发实现更好的维护性和可行性应用说明

    晶振频率、脉冲、时钟周期与机械周期的关系

    上次我们聊到了晶振的占空比,即信号在高电平持续时间与整个周期时间的比例。今天,我们来聊聊晶振频率信号中的脉冲、时钟周期和机械周期之间的关系。
    的头像 发表于 07-17 14:38 1606次阅读

    示波器的周期和频率怎么算

    需要注意的是,示波器频率计算公式只适用于周期性信号,对于非周期性信号,无法使用该公式计算频率。此外,示波器通常具有自动测量功能,可以自动测量信号的周期和频率,并显示在屏幕上,这使得计算过程更为简单。
    的头像 发表于 05-07 15:45 6986次阅读

    如何使用S7-1200 CPU的存储卡

    S7-1200 CPU 使用的存储卡为 SD 卡,存储卡中可以存储用户项目文件,有如下3种功能
    的头像 发表于 02-26 09:53 1979次阅读
    如何使用S7-1200 <b class='flag-5'>CPU</b>的存储卡<b class='flag-5'>呢</b>?

    TLE9879电阻方案驱动BLDC如何配置一个周期内采样两次?采样时间如何触发?

    TLE9879电阻方案驱动BLDC 如何配置一个周期内采样两次?采样时间如何触发?
    发表于 02-19 07:56

    为什么颗裸芯会被称为die

    Wafer、die、chip是半导体领域常见的术语,但是为什么颗裸芯会被称为die
    的头像 发表于 01-24 09:14 3056次阅读
    为什么<b class='flag-5'>单</b>颗裸芯会被称为die<b class='flag-5'>呢</b>?

    pwm如何控制占空比和周期

    如果使用可编程PWM控制器,可以通过软件来控制占空比和周期。软件可以直接修改占空比寄存器的值,以控制高电平的持续时间,从而改变占空比。还可以修改周期寄存器的值,以改变整个PWM信号的周期
    的头像 发表于 01-17 15:00 5776次阅读

    ADuC7060一个指令周期为几个机器周期?一个机器周期为多少个振荡周期

    假定使用内部32.768Khz振荡频率,倍频至10.24MHZ,内核频率为一分频即10.24MHZ,那么一个指令周期是多少?一个指令周期为几个机器周期?一个机器周期为多少个振荡
    发表于 01-15 07:22