缺氧吧 关注:96,386贴子:1,052,267

【直播】8位静态流水线CPU——QDU3000的设计与制造

只看楼主收藏回复



回复
1楼2020-04-22 02:55
    一分钟过去了


    收起回复
    来自Android客户端2楼2020-04-22 02:56
      1、有用吗?当然没用了。既不能发电又不能制氧。
      2、能干嘛?能编程跑程序,后续如果有空写个简单的编译器的话能跑部分C语言语句。
      3、包教,但不包会;你敢问我就敢答,你一直问我可以一直答。
      4、设计?不,不设计,想到哪造到哪。
      5、之前b站发过一版,做得不好所以不推荐了,这一版主要是性能以及布线优化,预计性能较上代提升5到10倍。
      6、可以配合教程贴食用tieba.baidu.com/p/6501195445


      收起回复
      3楼2020-04-22 02:57
        指令集(暂定)
        1、由于乘除法器体积过大,红字部分暂时不会加入,但会保留接口,预计在后续版本添加(大概率会打mod)
        2、表格中,指令是按照类型来排序的,但操作码的编码没有按照指令的排列顺序,这是为了方便后续的译码
        3、由于操作码为4位,最多编码16条指令,没有位置了,所以寄存器间的mov指令请用addi指令实现;强制跳转请用等于跳转实现(某个寄存器必定和自身相等,因此就可以做到强制跳转)
        4、除法指令只求商,求余指令只求余数,不支持一条指令同时求商和余数,因为一条指令同时求商和余数需要寄存器堆有2个写端口,比较麻烦
        5、支持“low版”间接寻址,仅可以通过R8或R9来间接访问寄存器堆,且不支持基址+偏移量
        6、由于是静态流水线cpu,所以添加了空操作,在延迟槽不可用时向流水线中填入气泡


        收起回复
        4楼2020-04-22 03:13
          设计主频:3倍速下3.75Hz,若超前进位加法器体积过大无法实现,则可能更低;
          通用寄存器:R0~R7,共8个8位寄存器,可读可写;
          间接寄存器:R8、R9,可用于间接访问,同时也可做为普通的寄存器进行直接访问,可读可写;
          输出端口:R10,外接译码器,会将其中的值译码为10进制,可读可写;
          输入端口:R11,接收外部输入,可读不可写;
          指令存储器:32*16bit,最多支持存储32条指令,每条指令16位,指令通过气压传感器进行写入;


          回复
          6楼2020-04-22 03:41
            取指模块
            用于每一周期向指令存储器送出正确的PC。若重置标志有效,则令PC置0;否则若当前执行的不是跳转指令,则每周期PC+1,若是跳转指令(跳转标志有效)则令PC=跳转地址。



            收起回复
            7楼2020-04-22 04:24
              给出一个大概的框图吧,仅供参考,只是标出大致数据通路,不严谨(特别是流水线部分)


              回复
              8楼2020-04-22 05:09
                我看见电子信号就知道有人会写计算器。


                回复
                来自Android客户端9楼2020-04-22 07:19
                  牛逼,mark,想抄作业


                  回复
                  来自Android客户端10楼2020-04-22 08:10
                    可惜贴吧没法投币,不然我三连了。


                    收起回复
                    来自Android客户端11楼2020-04-22 08:11


                      青铜星玩家
                      百度移动游戏玩家均可认证(限百度账号),去领取
                      活动截止:2100-01-01
                      去徽章馆》
                      回复
                      来自Android客户端12楼2020-04-22 08:19
                        所以,你昨天早上不打部落战就是弄计算器了?


                        收起回复
                        来自Android客户端13楼2020-04-22 08:20
                          连压栈出栈的指令都没有,是打算只用寄存器吗?


                          收起回复
                          来自iPhone客户端14楼2020-04-22 08:28
                            前排留名!真的是大佬啊趁加精之前留个名


                            回复
                            15楼2020-04-22 08:50
                              大佬nb666我等凡人只能仰望围观说挖槽


                              回复
                              来自Android客户端16楼2020-04-22 08:55
                                bad apple预订


                                回复
                                17楼2020-04-22 10:06
                                  牛逼🐮


                                  回复
                                  来自Android客户端18楼2020-04-22 10:11
                                    已经收藏,我想知道结果


                                    收起回复
                                    19楼2020-04-22 10:27
                                      异星工厂请


                                      收起回复
                                      来自Android客户端20楼2020-04-22 12:33
                                        赶紧占个楼,楼下会觉得楼上都是能看的懂的大佬。


                                        回复
                                        来自Android客户端21楼2020-04-22 12:53
                                          我想知道实际作用!


                                          收起回复
                                          来自Android客户端22楼2020-04-22 12:58
                                            能跑显示程序,解放双手去做badapple吗,有显示适配器吗类似楼主预订


                                            收起回复
                                            来自Android客户端23楼2020-04-22 13:14
                                              占楼先


                                              回复
                                              来自Android客户端24楼2020-04-22 13:33
                                                大佬🐮b


                                                回复
                                                来自Android客户端25楼2020-04-22 14:15
                                                  这游戏58块钱卖你们真是亏死Klei了(


                                                  回复
                                                  来自Android客户端26楼2020-04-22 14:30
                                                    接下来要造指令存储器了,首先科普一下ROM:只读存储器,这类存储器没有写端口,只能读不能写。我的指令存储器就是ROM,里面存储的内容直接用气压传感器或者开关来给定,程序运行过程中不能修改


                                                    回复
                                                    来自Android客户端27楼2020-04-22 15:59
                                                      每条指令是16位,所以用16个气压传感器来表示一条指令

                                                      4个传感器为一组,汇入总线,这就是可以存储一条指令的“指令寄存器”(只读)

                                                      将它复制32份,得到32个16位的存储单元



                                                      收起回复
                                                      28楼2020-04-22 16:15
                                                        看到这个储存单元,我觉得就是一个巨大的工程


                                                        回复
                                                        29楼2020-04-22 16:33
                                                          接下来要为这32个存储单元建造“读端口”——既数据选择器
                                                          请参考教程贴141楼的“存储器”读端口部分、以及72楼的“数据选择器”
                                                          请注意部分信号线没有连接



                                                          放大部分细节,可以明显看出,“读地址”为0的情况下,0号存储单元,既最上面的存储单元被“选择”了


                                                          收起回复
                                                          30楼2020-04-22 16:47


                                                            回复
                                                            来自Android客户端31楼2020-04-22 17:19