深入浅出计算机组成原理
徐文浩
bothub创始人
立即订阅
13019 人已学习
课程目录
已完结 62 讲
0/4登录后,你可以任选4讲全文学习。
入门篇 (5讲)
开篇词 | 为什么你需要学习计算机组成原理?
免费
01 | 冯·诺依曼体系结构:计算机组成的金字塔
02 | 给你一张知识地图,计算机组成原理应该这么学
03 | 通过你的CPU主频,我们来谈谈“性能”究竟是什么?
04 | 穿越功耗墙,我们该从哪些方面提升“性能”?
原理篇:指令和运算 (12讲)
05 | 计算机指令:让我们试试用纸带编程
06 | 指令跳转:原来if...else就是goto
07 | 函数调用:为什么会发生stack overflow?
08 | ELF和静态链接:为什么程序无法同时在Linux和Windows下运行?
09 | 程序装载:“640K内存”真的不够用么?
10 | 动态链接:程序内部的“共享单车”
11 | 二进制编码:“手持两把锟斤拷,口中疾呼烫烫烫”?
12 | 理解电路:从电报机到门电路,我们如何做到“千里传信”?
13 | 加法器:如何像搭乐高一样搭电路(上)?
14 | 乘法器:如何像搭乐高一样搭电路(下)?
15 | 浮点数和定点数(上):怎么用有限的Bit表示尽可能多的信息?
16 | 浮点数和定点数(下):深入理解浮点数到底有什么用?
原理篇:处理器 (18讲)
17 | 建立数据通路(上):指令+运算=CPU
18 | 建立数据通路(中):指令+运算=CPU
19 | 建立数据通路(下):指令+运算=CPU
20 | 面向流水线的指令设计(上):一心多用的现代CPU
21 | 面向流水线的指令设计(下):奔腾4是怎么失败的?
22 | 冒险和预测(一):hazard是“危”也是“机”
23 | 冒险和预测(二):流水线里的接力赛
24 | 冒险和预测(三):CPU里的“线程池”
25 | 冒险和预测(四):今天下雨了,明天还会下雨么?
26 | Superscalar和VLIW:如何让CPU的吞吐率超过1?
27 | SIMD:如何加速矩阵乘法?
28 | 异常和中断:程序出错了怎么办?
29 | CISC和RISC:为什么手机芯片都是ARM?
30 | GPU(上):为什么玩游戏需要使用GPU?
31 | GPU(下):为什么深度学习需要使用GPU?
32 | FPGA和ASIC:计算机体系结构的黄金时代
33 | 解读TPU:设计和拆解一块ASIC芯片
34 | 理解虚拟机:你在云上拿到的计算机是什么样的?
原理篇:存储与I/O系统 (17讲)
35 | 存储器层次结构全景:数据存储的大金字塔长什么样?
36 | 局部性原理:数据库性能跟不上,加个缓存就好了?
37 | 高速缓存(上):“4毫秒”究竟值多少钱?
38 | 高速缓存(下):你确定你的数据更新了么?
39 | MESI协议:如何让多核CPU的高速缓存保持一致?
40 | 理解内存(上):虚拟内存和内存保护是什么?
41 | 理解内存(下):解析TLB和内存保护
42 | 总线:计算机内部的高速公路
43 | 输入输出设备:我们并不是只能用灯泡显示“0”和“1”
44 | 理解IO_WAIT:I/O性能到底是怎么回事儿?
45 | 机械硬盘:Google早期用过的“黑科技”
46 | SSD硬盘(上):如何完成性能优化的KPI?
47 | SSD硬盘(下):如何完成性能优化的KPI?
48 | DMA:为什么Kafka这么快?
49 | 数据完整性(上):硬件坏了怎么办?
50 | 数据完整性(下):如何还原犯罪现场?
51 | 分布式计算:如果所有人的大脑都联网会怎样?
应用篇 (5讲)
52 | 设计大型DMP系统(上):MongoDB并不是什么灵丹妙药
53 | 设计大型DMP系统(下):SSD拯救了所有的DBA
54 | 理解Disruptor(上):带你体会CPU高速缓存的风驰电掣
55 | 理解Disruptor(下):不需要换挡和踩刹车的CPU,有多快?
结束语 | 知也无涯,愿你也享受发现的乐趣
免费
答疑与加餐 (5讲)
特别加餐 | 我在2019年F8大会的两日见闻录
FAQ第一期 | 学与不学,知识就在那里,不如就先学好了
用户故事 | 赵文海:怕什么真理无穷,进一寸有一寸的欢喜
FAQ第二期 | 世界上第一个编程语言是怎么来的?
特别加餐 | 我的一天怎么过?
深入浅出计算机组成原理
登录|注册

12 | 理解电路:从电报机到门电路,我们如何做到“千里传信”?

徐文浩 2019-05-22
我们前面讲过机器指令,你应该知道,所有最终执行的程序其实都是使用“0”和“1”这样的二进制代码来表示的。上一讲里,我也向你展示了,对应的整数和字符串,其实也是用“0”和“1”这样的二进制代码来表示的。
那么你可能要问了,我知道了这个有什么用呢?毕竟我们人用纸和笔来做运算,都是用十进制,直接用十进制和我们最熟悉的符号不是最简单么?为什么计算机里我们最终要选择二进制呢?
这一讲,我和你一起来看看,计算机在硬件层面究竟是怎么表示二进制的,以此你就会明白,为什么计算机会选择二进制。

从信使到电报,我们怎么做到“千里传书”?

马拉松的故事相信你听说过。公元前 490 年,在雅典附近的马拉松海边,发生了波斯和希腊之间的希波战争。雅典和斯巴达领导的希腊联军胜利之后,雅典飞毛腿菲迪皮德斯跑了历史上第一个马拉松,回雅典报喜。这个时候,人们在远距离报信的时候,采用的是派人跑腿,传口信或者送信的方式。
但是,这样靠人传口信或者送信的方式,实在是太慢了。在军事用途中,信息能否更早更准确地传递出去经常是事关成败的大事。所以我们看到中国古代的军队有“击鼓进军”和“鸣金收兵”,通过打鼓和敲钲发出不同的声音,来传递军队的号令。
如果我们把军队当成一台计算机,那“金”和“鼓”就是这台计算机的“1”和“0”。我们可以通过不同的编码方式,来指挥这支军队前进、后退、转向、追击等等。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《深入浅出计算机组成原理》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(23)

  • 子杨
    这一讲终于又开始可以看懂了,哈哈哈。
    异或就是用两个开关,两个开关状态相同就关闭,有一个打开就接通,用两个继电器实现。
    2019-05-22
    1
    18
  • Ant
    很棒,大学一直逃课,毕业后该还债了。
    2019-05-22
    10
  • 活的潇洒
    决心从头把计算机所有的基础课程全部补上,夯实基础,一定要坚持到最后
    day12笔记:https://www.cnblogs.com/luoahong/p/10906253.html

    作者回复: 👍加油

    2019-05-22
    8
  • kirogiyi
    原来电报机和摩尔斯码是这样来的,很有意思。在学校的时候,老师总是讲继电器是放大信号用的,具体用在什么地方和什么场景,就再也没有提及。

    作者回复: 👍
    可以读一读《编码》这本书,写得很好。

    2019-05-22
    4
  • lianlian
    对于学过电路,数电,模电的我,感觉这是在复习我的专业基础课嘛哈哈哈(ಡωಡ)hiahiahia

    作者回复: 👍

    2019-05-22
    1
    3
  • DreamItPossible
    思考题 。
    答:参考维基百科 https://en.wikipedia.org/wiki/XOR_gate
    一个异或门的代数表达式为$(A+B) \cdot(\bar{A}+\bar{B})$,或者$A\cdot(\bar{B})+(\bar{A})\cdot B$。
    以$(A+B) \cdot(\bar{A}+\bar{B})$为例,需要两个或门电路,一个与门电路,两个非门电路;
    这里蕴含的一个基本思想:将电路设计通过布尔代数运算简化为逻辑运算。
    2019-08-13
    2
  • Geek_54edc1
    A^B = ((~A)&B)|(A&(~B))
    2019-06-15
    2
  • -W.LI-
    老师。为啥上学时的教材没这么生动啊。如果当时老师这么讲的话指不定我就好好学了。。。有个问题,电报不能复用吧,同一条电线一个时间只能一个人用。后来有办法实现复用么?
    2019-06-03
    1
    2
  • Seven.Lin澤耿
    其实和大学讲的内容差不多,但是加上例子以及应用之后理解完全不同的,也希望大学老师能够如此结合例子讲课,有趣好多!

    作者回复: 谢谢支持

    2019-05-24
    2
  • Geek
    思考题~
    需要四个元件,开关A,开关B,初始状态是闭合态的由A开关控制的继电器A1,初始状态是闭合态的由B开关控制的继电器B1,

    连接方式,A和B1串联成~串1
                         B和A1串联成~串2
                         串1和串2并联
    这样似乎可以实现 “相同为0,不同为1”。

    但具体怎么让开关控制指定继电器我就不知道了。。
    2019-05-24
    2
  • 我这是听了一节高中物理??

    作者回复: 哈哈,高中物理课里面的确也有右手螺旋定律。所以高考让大家学习物理并不是无的放矢。

    2019-05-24
    1
  • 庄风
    我感觉异或(XOR)门需要三组电路,第三组的开关在前两组之间。前两组如果都为开或都为关时,第三个开关左右受到的磁力相同,保持不动,是关的状态;前两组为一开一关状态时,第三个开关左右受到的磁力不同,会偏向有磁力的一组,使第三组电路接通。
    2019-05-22
    1
  • 王加武
    门电路的输入端和输出端只有两种状态(正逻辑)
    “0”表示的是无信号
    “1”表示的是有信号

    如果是负逻辑就不一样了哦
    2019-12-11
  • 核桃
    其实存储器的本质是什么呢?可以说是一个个与非门,但是真正来说是一个个D上升沿触发器,这个的出现标志着电子元器件可以真正存储起来一个位数,然后后面才有了其他的触发器,接着就是地址译码器等。
    2019-10-22
  • 天王
    计算机为什么要要使用二进制1 信号的传递从人工到烽火台光信号,受限于传输的方式比较简单无法表达复杂的意思,同时传输的距离受限,所以有了电报机 2 电报机和计算机的模型比较相近,电报机有点和划,对应计算机的0和1,用不同的编码,可以表达复杂的意思。另外,电报机用电传输,传输速度快,电信号弱之后,可以用继电器加强信号,传输距离也比较远。3 相比于电报机,电报机依赖电报员,需要记住复杂的编码,计算机人工按下子母键盘,计算机转换成二进制,千万个晶体管组合指挥计算机干活。
    2019-09-27
  • 瀚海星尘
    准备两个开关a和b,和五个继电器。a和b先各控制两个继电器,由a或b控制的一组继电器里一个初始闭合,一个初始断开。之后先让a控制的闭合继电器和b控制的断开继电器串联控制第五个继电器,再让a控制的断开继电器和b控制的闭合继电器串联,也同时用来控制第五个继电器,相当于两条控制第五个继电器的线路并联。这样,只有当按下一个开关的时候,才可能有一条控制第五个继电器的电路是通,也就是异或逻辑了。
    2019-07-10
  • 曾经瘦过
    想问下 学习数字电路之后会对哪些方面有提高 不清楚 学了之后对软件有什么用
    2019-05-30
  • Knight²º¹⁸
    一直没有弄明白 异或 这个运算具体运行场景和原理
    2019-05-30
  • 冰激凌的眼泪
    01开关
    继电器
    与或非电路门
    2019-05-25
  • 铁皮
    我们都知道异或门(XOR)的输入和输出是这样的:
    输入:0, 0 输出:0
    输入:0, 1 输出:1
    输入:1, 0 输出:1
    输入:1, 1 输出:0

    要想得到上面的输入和输出的结果,那么我们就得需要利用与门(AND)、或门(OR)、与非门(NAND)的组合:
    先是两个输入分别经过或门和与非门,然后或门和与非门的输出再作为与门的两个输入,最后产生的输出就是异或门的结果

    输入A 输入B 或门 与非门 与门
    0 0 0 1 0
    1 0 1 1 1
    0 1 1 1 1
    1 1 1 0 0

    如不对还请老师纠正。貌似设计有点复杂了。
    2019-05-22
收起评论
23
返回
顶部