由于本书出版时恰逢政策敏感时期导致图书出版时无法在书中给出任何外链,实属无奈,只能在这里向大家同步。本书实时的最新勘误汇总如下:
https://github.com/Dongguage/bigtalk_about_computer
本页中贴出截至2019-07-26的勘误汇总,后续会长期不定期更新。
由于本书篇幅巨大,细节复杂,冬瓜哥单枪匹马,错误在所难免,给大家带来了阅读时的困惑,深表歉意!对于发现本书错误并提交登记的朋友们万分感激!
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 | |
PII | 结尾,“再版时一并修正”之后追加 | 大家可以到“大话计算机”微信公众号首页的“图书勘误”按钮进行快速勘误登记,冬瓜哥会收集并记录。 | |||
PII | 从II到XI这几页没有页码 | 从II到XI这几页加上页码 | |||
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P5 | 右上 | 口子框 | 口字框 | |
P6 | 左上 | RICS | RISC | |
P8 | 右下 | 异或门又被称为半加器,因为它只能输出和位而输出不了进位。异或门再加上一个与门,就组成了全加器(或者说加法器), | 删除这些字 | |
P10 | 右中 | 其本质上也是有多个逻辑门电路 | 其本质上也是由多个逻辑门电路 | |
P10 | 左下 | S(Summary) 为加和的信号输出, C(Carrier) | S(Sum) 为加和的信号输出,C(Carry) | |
P11 | 右中 | 、半加器和全加器 | 删除这些字 | |
P11 | 右中 | 前人将这种加法器称为全加器,而将之前的加法器称为半加器 | 前人将这种带进位输入信号的加法器称为全加器,而将之前不带进位输入信号的加法器称为半加器 | |
P13 | 右上 | “."右侧的红色引号 | 颜色变为黑色 | |
P13 | 左中 | “也就,” | 去掉 “也就,” | |
P14 | 左下部分 | 公式里的所有的“i”应该是下标 | 公式里的所有的“i”改为下标 | |
P15 | 左侧 | C0=C0 C1=A1B1+(A1⊕B1)C0 C2=A2B2+(A2⊕B2)(A1B1+(A1⊕B1)C0) C3=A3B3+(A3⊕B3)(A2B2+(A2⊕B2)(A1B1+ (A1⊕B1)C0)) C4=A4B4+(A4⊕B4)(A3B3+(A3⊕B3)(A2B2+ (A2⊕B2)(A1B1+(A1⊕B1)C0))) S1= A1⊕B1⊕(A1B1+(A1⊕B1)C0) S 2= A2⊕B2⊕ (A2B2+ (A2⊕B2) (A1B1+ (A1⊕B1)C0)) S 3= A3⊕B3⊕ (A3B3+ (A3⊕B3) (A2B2+ (A2⊕B2)(A1B1+(A1⊕B1)C0))) S 4= A4⊕B4⊕ (A4B4+ (A4⊕B4) (A3B3+ (A3⊕B3)(A2B2+(A2⊕B2)(A1B1+(A1⊕B1) C0)))) | C0=C0 C1=A1B1+(A1⊕B1)C0 C2=A2B2+(A2⊕B2)(A1B1+(A1⊕B1)C0) C3=A3B3+(A3⊕B3)(A2B2+(A2⊕B2)(A1B1+ (A1⊕B1)C0)) C4=A4B4+(A4⊕B4)(A3B3+(A3⊕B3)(A2B2+ (A2⊕B2)(A1B1+(A1⊕B1)C0))) S1= A1⊕B1⊕(A0B0+(A0⊕B0)C0) S2= A2⊕B2⊕ (A1B1+(A1⊕B1)(A0B0+(A0⊕B0)C0)) S3= A3⊕B3⊕(A2B2+(A2⊕B2)(A1B1+(A1⊕B1)(A0B0+(A0⊕B0)C0))) S4= A4⊕B4⊕(A3B3+(A3⊕B3)(A2B2+(A2⊕B2)(A1B1+(A1⊕B1)(A0B0+(A0⊕B0)C0)))) | |
P16 | 右下倒数第5行 | 废了 | 费了 | |
P17 | 倒数第二段结尾 | 也就是当R和S同时为0时,触发了电路的记忆性。此时,如果S的值从0变为1,并不会导致Q值从0变为1,Q值依然保持之前的值(0)。或者说,当R值为1时,输出端Q值会与输入端S值保持相等且跟随S的值同步变化,但是一旦R值从1变为0后,则此后不管S的值怎么变化,Q值恒定为R值从1变到0之前时的那个值。 | 也就是当R=0、S=1时,触发了电路的记忆性。此时,如果S的值从1变为0,并不会导致Q值从1跟随着也变为0,Q值依然保持之前的值1。所以说,上述这个电路可以锁住1这个值。 | |
P25 | 右侧 | “时钟信号(Clock,CLK)” | 加粗处理 | |
P25 | 左上第1行开始 | 既然Q’和Q频率都是一半,那么实际使用中到底是用哪个输出呢?根据图1-31,看上去用Q’更为合适,因为锁存信号为1的时候,Q’也为1,而不是Q的0。但是如果把Q的信号的第一个周期截断丢弃,也可以像Q’一样从1开始振荡。习惯上,Q’是副输出,Q才是主输出,还是用Q符合习惯。如果初始的时候给D端输入1,锁存端也输入1,那么你会发现,此时Q而不是Q’的输出便会从1开始,也就可以与锁存信号对齐了,这相当于两个人同时都迈出左脚。 | 在实际应用中,人们采用Q端输出信号与上下游电路相连接,而忽略Q'端的信号 | |
P26 | 右上 | 名曰“清零” | 清零二字加粗处理 | |
P30 | 右下 | 翻译成7栈灯泡亮灭 | 翻译成7盏灯泡的亮灭 | |
P31 | 右上 | 输出值,, | 输出值, | |
P32 | 左中 | 表明将A的信号 | 表明将D的信号 | |
P32 | 左中 | 表明把B的信号 | 表明将C的信号 | |
P33 | 左上 | 全是1才,输出1, | 全是1才输出1, | |
P34 | 右中 | W1=0 | W1=1 | |
P35 | 右侧 | 1234D=1×1+2×10+3×100+4×1000 | 1234D=1×1000+2×100+3×10+4×1 | |
P39 | 右侧第3段第6行 | 如果能够这些电流变化记录下来 | 如果能够将这些电流变化记录下来 | |
P46 | 右中下 | 上升到32位 | 上升到5位 | |
P52 | 二维码 | |||
P62 | 右下 | 统一场轮 | 统一场论 | |
P63 | 左上角 | 需要的发射天线太长 | 需要较长的发射天线 | |
P74 | 右侧提示框 | 整体替换为新内容 | 图1-108中的导线并不提现数量,只体现了架构关系。比如拥有4个输入的MUX其控制信号至少要两根导线。后续架构图如无必要中也不再标识导线数量(位宽)。 | |
p76 | 右下倒数第二行 | 图1-29是一个4位计数器 | 图1-32是一个4位计数器 | |
P78 | 左中 | 比如,共享FIFO共可容纳1024条数据(10个地址信号就可以表示1024个地址了),可以为发送方#1分配256条,那么发送方#1对应的指针队列就是log2256=8条,每条的容量是10位(因为发送方#1发过来的数据可能被存储在1024条记录中的任何一条)。 | 比如,共享FIFO共可容纳1024条数据(10个地址信号就可以表示1024个地址了,所以用于该FIFO的选路器需要有10根控制信号线)。假设为发送方#1分配这1024条中的256条作为一个逻辑队列,那么发送方#1对应的指针队列就需要有256条记录,每条记录的容量是10位(发送方#1发过来的数据可能被存储在1024条记录中的任何一条中)。 | |
P82 | 左提示框 | “但是将动力传送系统与车轮临时脱开” | “但是将发动机输出与传动系统临时脱开” | |
P83 | 左上 | 去掉 “异步清零,” | ||
P92 | 二维码 | |||
P96 | 图题1-131 | 加减乘数 | 加减乘除 |
建议:
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P6 | 图1-2 | 电路触点的圆点太小 | ||
P16 | 右下 | 我是废了老劲也没想出来,其实有一些特定方法能够从真值表推导出逻辑表达式,有兴趣的读者可自行学习。 | 我是费了老劲也没想出来,其实有一些特定方法能够从真值表推导出逻辑表达式,详见1.3.5一节。 | |
P24 | 图1-29下方 | 叫做反馈 | 反馈二字加粗处理 | |
P24 | 右中 | 假设我们一开始给这个电路的D端输入0,锁存端输入1,电路达到稳态后,A=0且被锁定,B=1且被锁定 | 假设我们一开始给这个电路的D端输入0,锁存端输入1,此时A和B的值是随机的,假设电路达到稳态后A=0且被锁定,B=1且被锁定 | |
P31 | 图1-43 | 显示译码器的输出端,word拼写检查的红色波浪线 |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P99 | 右中上 | 也就是数值A | 也就是数值B | |
P118 | 右中间 | (也就是图中a处) | (也就是图中b处) | |
P119 | 左第三个时钟下沿到来开头 | Load_i 200 B指令信号从a处穿越指令寄存器并被锁定,恒定在b处 | Load_i 200 B指令信号从b处穿越指令寄存器并被锁定,恒定在c处 | |
P119 | 右下第六个时钟下沿到来中 | 回去看下图2-17 | 回去看下图2-15 | |
P129 | 左中间 | 如图2-29 | 如图2-24 | |
P131 | 左倒数第四行 | 在集村期间复制 | 在寄存器间复制 | |
P139 | 提示框 | 这里需要注意,并不是说“SRAM在一个时钟周期内无法读写一条数据”,准确地说应该是“SRAM无法在与运算核心相同的时钟频率下在一个时钟周期吞吐一条数据”,运算核心的时钟频率太高了。 | 这里需要注意,并不是说SRAM在物理上无法在一个时钟周期内读写一条数据,而是由于要读的数据可能并未预先放置在SDRAM中,需要先搜索该数据是否位于SRAM,这个搜索过程无法在1个周期内完成,详见第6章缓存相关章节。 | |
P147 | 右第3小节第7行 | 锁给出 | 所给出 |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P171 | 右下 | 模拟电路计算机 | “模” 字应加颜色 | |
P187 | 左下 | pMOS本身的电阻变得较小 | pMOS改成nMOS | |
P197 | 右上 | N材料去 | N材料区 | |
P221 | 右下倒数第三行 | 视逻辑不通 | 视逻辑不同 | |
P235 | 右上 | 路基1 | 逻辑1 | |
P251 | 图3-264 | 图最上方的三行字,“左”和“右”调换 | ||
P254 | 左下 | 图 1-111
| 图1-114 | |
P256 | 最后一段第8行 | 逻辑1 | 逻辑0 | |
P257 | 右下 | 虽然之前示例的程序代码写那叫一个烂 | 虽然之前示例的程序代码写得那叫一个烂 | |
P257 | 左下 | 意义当然无存 | 意义荡然无存 |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P260 | 左中 | 没发出 | 每发出 | |
P275 | 从下往上数第3根线 | "stor指令写回寄存器数据到主存时的数据通路"标蓝色 | "load指定源地址,直接来自指令源操作数字段"标蓝色 | |
P281 | 右下倒数第3行 | 图4-34 | 图4-35 | |
P283 | 图4-34图题 | 结尾多了一个“女”字 | 去掉“女”字 | |
P291 | 右下倒数第2行第一个字 | 于 | 与 | |
P297 | 左边倒数第11行 | 寄存器A | 寄存器B | |
P346 | 右倒数第3行 | -[1.全0尾数x2...]到+[1.全0尾数x2...] | -[1.全1尾数x2...]到+[1.全1尾数x2...] 注释:把这两处的“全0”改成“全1” | |
P347 | 左倒数第12行 | -[1.全0尾数x2...]到+[1.全0尾数x2...] | -[1.全1尾数x2...]到+[1.全1尾数x2...] 注释:把这两处的“全0”改成“全1” |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P340 | 左中 | else if a=red | else if a==red | |
P353 | 左下 | |||
P357 | 图5-23 | 左上角class2的起始扇区号应为33 | 左上角class2的起始扇区号应为33 | |
P361 | 右上第1行 | 器值达到24时就将日寄存器+1并将时寄存器清零。如果当前是单月,那么日寄存器达到30就将月寄存器+1并清零日寄存器;如果当前是双月,那么日寄存器达到30就将月寄存器+1并清零日寄存器;月寄存器达到12则将年寄存器+1并将月寄存器置1(之所以不清零是因为没有0月,但是有0点0分0时)。 | 器值超过24时就将日寄存器+1并将时寄存器清零。如果当前是单月,那么日寄存器超过31就将月寄存器+1并清零日寄存器;如果当前是双月,那么日寄存器超过30就将月寄存器+1并清零日寄存器;月寄存器超过12则将年寄存器+1并将月寄存器置1(之所以不清零是因为没有0月,但是有0点0分0时)。 | |
P377 | 右第7行 | 把第7行的A替换为B,把第8行的B替换为A | ||
P432 | 右侧第2小姐第5行结尾 | 指定将、将xxxxxxx | 指定、将xxxxxxxx 注释:把“将”字去掉 | |
P433 | 提示框第3行 | 祝贺信 | 主核心 |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P434 | 左上 | 16个逻辑CPU | 64个逻辑CPU | |
P440 | 图6-9 | sdram无框 | sdram加上框 | |
P446 | 左第12行 | 逗号多余 | 把逗号去掉 | |
P465 | 6.3节题 | 关联起来,为了一致性 | 互连,为了一致性 | |
P511 | 左下 | 4U4 | 3U4 | |
脑图 | 右侧 | 把缓存在分割 | 把缓存再分割 |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P603 | 右中 | 控制器内部相应逻辑电路会被处罚从而 | 控制器内部相应逻辑电路会被触发从而 | |
P609 | 右下图 | 队首指针=1 | 队首指针=2 | |
P642 | 左中 | 符号(sybmbol) | 左括号应该是黑色 | |
P661 | 右下红色字体下 | Class Code | Header Type | |
P675 | 右下 | 重新从4号包开始发送 | 重新从5号包开始发送 | |
P682 | 左中 | 英文字体太大而且缩进了 | 这属于日志输出,字体小一些尽量在一行上,段首不用缩进 | |
P739 | 左中 | μs为黑色 | μs改为红色 |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P803 | 右侧提示框 | 电平由下降 | 电平自由下降 | |
P863 | 左上角 | 但这样风险比较高,一旦程序bug乱写寄存器 | 因为这样风险比较高,一旦程序bug乱写寄存器 | |
P879 | 右栏中部 | 如果设计之处就用整数坐标 | 如果设计之初就用整数坐标 |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P1087 | 右侧提示框 | 目前主流的处理器中都会有iTLB(Instruction TLB)和dTLB(Data TLB),分别与iCache和dCache对应。 | 目前主流的处理器中都会有iTLB(Instruction TLB)和dTLB(Data TLB),分别与iCache和dCache对应。另外,切换进程后如果将整个TLB都清除,很不划算,目前主流CPU内部都实现了ASID(Address Space ID)机制,只要为TLB中的每个条目记录一列ASID,就可以避免动辄全清了。 | |
P1090 | 10.1.6.5标题上方3行 | “KB” | KB | |
P1104 | 图10-42 | 图左侧排版有缺失 | 图左侧排版有缺失 |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P1118 | 左下 | 除非线程主动退出或者执行了系统调用 | 除非线程主动退出、执行了系统调用或者发生了内部异常中断或者外部设备中断 | |
P1201 | 右侧第9行 | 请耐…….轰~~~! | 请耐……呃轰~~~! | |
P1224 | 左上 | 亲和性(Affinity) 加粗处理 | ||
P1273 | 右上角 | One-Shot的O没有标蓝色 | O标蓝色 | |
P1298 | 图10-243 | 图片出现了镜像问题 |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 | |
P1351 | -- | FGPA | FPGA | ||
P1352 | -- | 其他一些ROTS比如μC/OS-Ⅱ | 其他一些RTOS比如μC/OS-Ⅱ | ||
P1417 | 右上角 | 只能解决前三个痛点 | 只能解决第二个痛点 | ||
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P1430 | 左下 | a=b=0 | a=1,b=0 | |
P1430 | 左下倒数第7行 | 学习率 | 加粗处理 | |
P1431 | 第6行 | 拟合函数 | 加粗处理 | |
P1438 | 图12-14 | 太靠边以至于+号没了 | 往右靠露出“+” | |
P1440 | 左中 | 而如果用这些参数来画曲线的话发现真的会画出一条类似的曲线。 | 而如果用这些参数来画曲线的话发现真的会画出一条类似的曲线。也就是说,整个机器学习的思路就是将各种待识别和分类的实体抽象成在平面上画曲线的数学几何手段。 | |
P1440 | 左中 | 在上面这段之后插入一段 | 至此,针对分类这个问题,我们有了三个不同的数学模型:直线+与或非处理模型、原始直线与用S函数处理之后的弯曲线相乘平抑不需要区段然后拼接的处理模型、直接用S函数处理后的弯曲线拼接的处理模型。这三种模型对应了不同的数学公式,但是最后都能得到近似结果。这好像成了一个数学问题,没错的。这就像求π可以有多种数学手段一样。最终人们常用的还是上述第三种模型。因为从图12-22中可以明显看出,该模型对应的运算单一,就是多项WiS(Wmx+b)相加,对应的运算就是单纯的乘加。这样的话,采用专用电路去实现就非常方便和高效。 | |
P1441 | 左中 | 硬叫它激励函数就是误导了 | 硬叫它激活函数就是误导了 | |
P1447 | 左下角提示框 | 预先连号 | 预先连好 | |
P1485 | 右中 | FPGA,A斜体了 | FPGA |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P1438 | 在乐高玩具一段下插入一段 | 注意,上文中采用的思路是,用S函数来把一条构造好直线处理成弯曲线,然后用这条弯曲线与原始的、用作分类样点的直线相乘,相乘的目的是把原始分类直线上不需要的区段平抑掉。然后将平抑了非需要区段的所有原始直线相加,便成了最终的曲线。而我们现在要做的是,直接用S函数处理好的弯曲线拼接出目标曲线,不需要原始直线,或者说这些弯曲线就是原始直线。 |
页码 | 具体位置 | 原内容 | 修改后的内容 | 登记日期 |
P1502 | 右上第15行 | 模拟触发器 | 模拟除法器 | |
P1505 | - | 繁衍 | 繁衍。 (注意句号) | |
P1506 | - | 证犹如人类不断地 | 正犹如人类不断地 |
扫码入当当/京东直购《大话计算机》
展阅读展
扩展阅读
《大话计算机》序言⑦ by @去流浪
博主简介:冬瓜哥,《大话计算机》与《大话存储 终极版》、《大话存储 后传》图书作者。多项专利发明人。
现任某半导体公司高级资深架构师。
大话计算机 大话存储
长按扫码可关注