34、P1 W5 U5.3 中央处理器(待完善)

视频:
如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接
P1W5U5.3 - Central Processing Unit

第五周,前两节课 U5.1 和 U5.2 基本上大概描述了一下 总线 和 CPU 执行程序时的运行方式。

这节课 U5.3,老师就提供了一种实现CPU的 逻辑单元组成图。

老师在给出一种方案前,还是要再说说抽象概念。感叹了一下CPU的神奇与美丽,静态程序马上就可以被运行起来了,仔细想想是挺不可思议。

CPU黑盒

CPU黑盒,执行当前命令,准备下一条要执行的命令

讲CPU的内部方案前,先说明一下黑盒对外的输入输出,主要就是和 数据存储和 程序存储 的交互。

黑盒左侧三个输入

16位data 要被当前命令处理的数据
16位instruction 当前的命令
还有1位输入之后再说 reset

CPU 的 输入项

黑盒右侧四个输出

16位outM 要写回的数据(往data memory存的数据)
1位writeM 是否写标识 (决定上面数据要不要写,也可以丢弃)
15位addressM 要存哪 (如果决定写入,那么这个提供写入data memory里的地址)
15位pc 下一条要执行的命令的地址(这个很重要,接下来会讲到)

CPU 的 输出项

打开黑盒

老师提供了其中一种高效简洁的方案,如下图

蓝色框的左右侧是上面提到的 输入和输出。

蓝色框内部,一看都是我们之前学过的。
(ALU 回顾 U2.4)
(PC 回顾 U3.4)

c 符号是控制位 control bits 不过这些从哪里来?老师故意不说清楚的,就是让学生在作业里自己搞明白...,命令里提取出来的?

黑盒内部

下面老师分三部分来讲解 CPU黑盒的内部

黑盒第一部分

19.png

第一部分主要是 处理指令,放大如下

首先如下图,看一个 指令@3001,回顾U4.3我们知道
@3001 就是把 3001 存入A register

(指令分 A指令 和 C指令,回顾U4.3)

A register 还有可能存入 ALU 的数据输出 (上图的outM),有一个Mux16的c控制位决定。

A register 根据之前 U4.3 的知识回顾,有三个功能。

A命令有设置常数参与计算的功能。应该就是上图A register输出 走入ALU的箭头路线。

A命令,还有自动选取M 寄存器 的功能。所以上图 A register输出 不加控制位,直接有一箭头走到 addressM

A命令,还有可能参与跳转,所以上图再往下 A register输出 有一箭头走到了PC(回顾U4.3 实例练习3)

@3001 的二进制数最左侧是0,代表是A指令

黑盒第二部分

在开始讲第二部分前,回顾一下C指令 (具体请看 U4.4)

最左边一位为1,代表C-指令,然后依次往右两位没用到,但是惯例设成1。
然后7位 蓝色0011111 代表 comp (决定选择哪些寄存器,参与什么运算)
然后3位 绿色010 代表 dest(决定结果存在哪里)
最后3位 红色111 代表 jump(决定运算结果与0进行那种判断,跳转位置需提前存在A寄存器)

C指令,回顾第四周内容

接下来讲解最黑盒内部复杂的部分-ALU

ALU 回顾 U2.4

放大如下图

ALU 输入

一个 D 寄存器
一个 A寄存器或者M寄存器

对进入的两个数,进行怎样的操作,由C指令上的 蓝色 数决定(不应该是7位吗?回顾U2.4 和 U4.4,为啥图里只有6位)

命令中的蓝色位决(comp)定由谁(D、A、M寄存器)参与什么计算

ALU 输出

上面提到回顾U4.4时,ALU输出存在哪里由 下图绿色三位决定(dest)

ALU 的输出会同时 送到 D、A、M寄存器,但是三个寄存器是不是要接受,就由dest决定了。

这个看来图中c标志都是根据 指令里提取出来的

注意上图里 ALU 还有两个 输出位,如下图所示

一个说明 ALU的计算结果是否为 负
一个说明 ALU的计算结果是否为 零

这个和接下来黑盒第三部分PC,有关

是负吗?是零吗?

黑盒第三部分

第三部分
Reset:它就像计算机重启按钮,一按hack小电脑就从头开始执行程序
(估计就是把PC地址设置成 instruction memory 的第一个位置。)

PC:决定下一条指令的地址

Reset、 PC

下图左侧C指令里红色位(jjj)回顾U4.4

如果
jjj = 000,不跳转,下一步执行,PC自加1的位置
jjj = 111,直接跳转,下一步执行,PC等于当前A存的位置
有条件跳转,参考U4.4里的一个图表。

这里具体几个细节如何实现老师让自己想

这里老师给出一个大概判断顺序,如下图

先判断 Reset
再通过 当前指令的jump(jjj) 和 ALU 两个输出 控制位(是负?是零?)
得出一个结果(load)
在通过load来判断PC如何设置下一条指令的地址。

原理讲清楚了,具体怎么实现还是自己想

到此 HACK小电脑的 CPU 就算讲解完了。
照理说,现在可以去写那个 HDL吧。
老师说别急。
因为CPU涉及到整个架构(存储啊,显示器,键盘)
总之先听完下节课再动手。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容

  • 总有人隔着屏幕问你 一个人身在外地还好吗 你看看空荡荡的屋子 笑着回答 还好啊 其实你不用笑的 毕竟 你们隔着屏幕...
    方歇歇阅读 180评论 0 0