21.总线连接

  • 总线是提供给计算机中每块电路板的数字信号的集合,这些信号可以分为4类:地址信号,数据输入信号,数据输出信号,控制信号。另外,总线给计算机中的各个电路板提供电源。
  • S-100总线:早期流行,可以用在8080和6800处理器上。规格为5.3×10英寸,电路板的一边有100个 接头可插在插槽里。S-100有16个地址信号,8个数据输入信号,8个数据输出信号,8个中断信号。
  • IBM的ISA总线(Industry standard architecture)----->IBM的MCA总线(Micro channel architecture)----->9家公司(不含IBM)联合推出的32位EISA总线(Extended Industry standard architecture)----->Intel的PCI总线(peripheral component interconnect)
  • 8080的电路板上通常有一个Intel 8214优先级中断控制单元,用来处理中断。
  • 通常微处理器处理所有的内存读 /写操作,但通过DMA,其他设备可绕过微处理器通过总线直接进行内存读 /写操作。
  • 存储器芯片2102中的片选信号(CS),当信号为1时芯片不被选中,即低电平有效。为什么低电平有效呢,网上搜了一下:

主要是为了降低功率,因为选中信号输出时,地址译码器输出端为低电平,此时译码器不输出功率;选中信号没有输出(不选中)时,译码器输出端为高阻状态,输出消耗功率也为0。因此芯片的CS信号采用低电平有效可以最大程度减小片选控制的功率消耗。此外,低电平有效也可以最大程度地减小干扰和保证控制的可靠性。低电平有效时,外部的任何干扰都不能进入被控制的芯片,因而保证芯片的可靠工作。这样在干扰信号能够进入芯片时是在芯片不工作时(片选无效),也就是说,干扰信号对芯片的工作没有影响。而若采用高电平有效,在芯片工作时不要说外部干扰信号能够很容易地进入芯片干扰,造成各种误动作,就连电源的任何波动都可能影响芯片的正常工作。

  • 如果连接的是有4个存储体的4KB存储器板,则存储器板中16位地址信号完成的功能如下:

  • 如何灵活的连接存储板并设置存储地址范围?书中给出了解答。

  • 2102存储芯片的数据输出信号是三态输出。除了逻辑0和逻辑1外,数据输出信号还可以是第三种状态,这种状态就是什么都不是。当CS输入为1的时候,2102芯片就进入第三种状态,这意味着可以把 4个存储体对应的数据输出信号连接到一 起,并用这8个组合输出作为总线的8个数据输入信号。任何时候,连到总线上的众多电路板中只有一个用来确定总线上的数据输入信号是什么。其他电路板不被选中,输出为第三态。
  • 2102芯片是静态随机访问存储芯片(SRAM),除此之外还有动态RAM(DRAM)。SRAM存储1位需要多个晶体管,而DRAM只需要1个晶体管,但DRAM的外围支持电路比较复杂,而且需要刷新。

什么是ROM、RAM、DRAM、SRAM和FLASH的区别?http://www.21ic.com/jichuzhishi/mcu/memory/2014-04-23/322864.html

  • 键盘扫描码的工作原理:

  • 书中提到:软盘和硬盘所有这些接口均使用DMA来接管总线和在随机访问存储器和硬盘之间直接传送数据,且不需经过微处理器。每次传输的数量是磁盘扇区字节数的倍数。此处存疑?待后续查证吧。

22.操作系统

  • 历史上最流行的8位微处理器操作系统是CP/M,为8080而生。CP/M文件系统满足2个基本要求:

        1)磁盘中的每个文件有一个名字作为标识,这个文件名字也存放在磁盘里。

        2)文件在磁盘中并不占用连续的扇区。

  • CP/M的三个部件:基本输入/输出系统(BIOS)、基本磁盘操作系统(BDOS)和控制台命令处理系统(CCP)。
  • 操作系统的3个主要功能:提供命令和 实用程序以便对文件进行基本的操作;将程序装载到内存中并执行;为程序提供方便的访问计算机硬件的应用程序接口(API:application programming interface)。
  • 理论上讲,应用程序只能通过操作系统提供的接口它们来访问计算机的硬件。但对针对20世纪70年代和80年代早期的小型操作系统的应用程序而言,经常绕过操作系统,尤其是在处理视频显示器的时候。直接写入字节到视频存储器的程序比采用其他方式的程序执行速度要快。因此产生了GPU吗?催生了NVIDA和ATI?
  • 本章书中最后提到了UNIX,我只想评价一句话:UNIX牛X,贝尔实验室牛X,反垄断法更牛X!

23.定点数和浮点数

  • 虚数揭示了现实世界的奥秘,可以用来(例如)解决电子学的一些高级问题。虚数早就学过,但没用过,以后会不会用上这个工具呢?
  • 小数点通常固定在特定位置的标记方法称作定点格式。定点格式不标记小数点,处理定点格式数的程序应该知道小数点在哪。定点格式只在知道这些数不会超过预先确定的内存单元且没有太多小数位的场合比较适用,在数可能很大或可能很小的场合定点格式完全不适用。
  • 小数点不固定的标记方法称作浮点格式。浮点格式用来存储较小或较大的数比较理想。
  • ANSI/IEEE Std754-1985称作IEEE二进制浮点数算术运算标准。该标准定义了两种基本格式:单精度格式(4个字节);双精度格式(8个字节)。规格化二进制浮点数的有效数通常在二进制小数点左边为1,所以在IEEE格式中这一位不包含在浮点数的存储空间中。
  • 单精度浮点格式表示:(单精度浮点格式的精度约为7位十进制精度,1/16 777 216)

    

8位指数范围从0~255,称为移码指数,意思是必须从指数中减去一个数才能确定有符号指数的实际值。对单精度浮点数,偏移量为127。

  • 双精度浮点格式表示:(双精度浮点格式的精度约为16位十进制精度)

    

  • 浮点运算最初是编写软件在微处理器上执行运算,后续出现了浮点运算硬件——数学协处理器(或称浮点运算单元,FPU,Floating-point unit)。

24.高级语言和低级语言

  • 首先吐槽一句,汇编语言,Assembly Language,什么鬼,明明就是装配语言嘛!Assembly,装配,总成。
  • 汇编语言程序冗长,是在芯片级进行程序编程,另外还不能移植。汇编语言是低级语言。

计算机科学更像工程——都是用一些东西来实现另一些东西。

  • 编译程序是读取一个源文件,并产生一个可执行文件;而解释程序读取源代码并在读的过程中直接执行而不生成可执行文件。解释程序比编译程序容易编写,但解释程序的执行时间慢。
  • 一般来说,编程语言是冯诺依曼语言。但是至少有2个语言不是,LISP和APL。其实我想知道怎样才算非冯诺依曼语言?

25.图形化革命

  • 由键盘和CRT组合而成,对来自远方计算机的ASCII码或别的什么码作出响应,这样的设备有时称作哑终端。有点客户端的感觉。
  • 显示器技术发展促进了图形化革命,图形化革命引出了图形操作系统,面向对象的编程语言,图像处理,压缩算法,音频处理,数模转换,视频处理,视频压缩算法等等。。
  • 然后,信息时代就到来了,我就miss了。

本书作者网站(含官方勘误。怎么说呢,订正了好多汇编错误,好多都是立即数相关的)

http://www.charlespetzold.com/code/

《CODE》读后笔记——第21~25章的更多相关文章

  1. 【C#4.0图解教程】笔记(第19章~第25章)

    第19章 泛型 1.泛型概念 泛型提供了一种更准确地使用有一种以上的类型的代码的方式. 泛型允许我们声明类型参数化的代码,我们可以用不同的类型进行实例化. 泛型不是类型,而是类型的模板.   2.声明 ...

  2. 第25章 串行FLASH文件系统FatFs—零死角玩转STM32-F429系列

    第25章     串行FLASH文件系统FatFs 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.c ...

  3. 2016年12月30日 星期五 --出埃及记 Exodus 21:25

    2016年12月30日 星期五 --出埃及记 Exodus 21:25 burn for burn, wound for wound, bruise for bruise.以烙还烙,以伤还伤,以打还打 ...

  4. JavaScript高级程序设计(第三版)学习笔记22、24、25章

    第22章,高级技巧 高级函数 安全的类型检测 typeof会出现无法预知的行为 instanceof在多个全局作用域中并不能正确工作 调用Object原生的toString方法,会返回[Object ...

  5. 【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识

    第25章      DHCP动态主机配置协议基础知识 本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP ...

  6. CHAPTER 25 The Greatest Show on Earth 第25章 地球上最壮观的演出

    CHAPTER 25 The Greatest Show on Earth 第25章 地球上最壮观的演出 Go for a walk in the countryside and you will f ...

  7. 【STM32H7教程】第25章 STM32H7的TCM,SRAM等五块内存基础知识

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第25章       STM32H7的TCM,SRAM等五块内 ...

  8. 第25章 Pytorch 如何高效使用GPU

    第25章 Pytorch 如何高效使用GPU 深度学习涉及很多向量或多矩阵运算,如矩阵相乘.矩阵相加.矩阵-向量乘法等.深层模型的算法,如BP,Auto-Encoder,CNN等,都可以写成矩阵运算的 ...

  9. 《CODE》读后笔记——第14~20章

    14.反馈与触发器 振荡器不需要人的干涉即可自主且不断地实现断开和闭合.所有计算机都靠某种振荡器来使其他部件同步工作. 当两个开关都断开时,电路有两个稳定状态,这样的一个电路称为触发器.触发器具有记忆 ...

随机推荐

  1. Python自动化 【第十六篇】:JavaScript作用域和Dom收尾

    本节内容: javascript作用域 DOM收尾 JavaScript作用域 JavaScript的作用域一直以来是前端开发中比较难以理解的知识点,对于JavaScript的作用域主要记住几句话,走 ...

  2. SpringMVC无法获取请求中的参数的问题的调查与解决(1)

    *更新:本文第一版中犯了比较大的错误,无论@RequestBody还是@RequestParam注解一样,都会使用全局的Encoding进行解码,会导致特殊编码的参数值丢失. 只要抛弃掉注解,就完全可 ...

  3. 使用python的redis 实现消息的pub/sub功能

    直接上代码: 首先需要明确的是,客户端向服务端去发送消息,服务端只需要订阅是哪些各频道即可,然后客户端向这些个频道发送消息 在客户端的代码: #!/usr/bin/env python #coding ...

  4. Hibernate一对一外键双向关联(Annotation配置)

    如上图所示:一个学生有一个学生证号,一个学生证号对应一名学生.在Hibernate中怎么用Annotation来实现呢? 学生类,主键是id:学生证的主键也是Id: Student.java pack ...

  5. window7下karma 报 nodejs request TypeError: The header content contains invalid characters BUG

    这个BUG 估计只有中国人才 遇到 打开你的依赖node_modules\karma\node_modules\connect\lib\patch.js 将里面的setHeader方法改成下面这样,干 ...

  6. sql join用法学习

    为了在两个或更多的表中获取结果,我们常常会用到join inner join(又叫join) out join包括left join,right join和full join(也就是left+righ ...

  7. Python中出现的异常

    简单的写几种我知道的关于Python中出现的异常含义,希望大神批评指正,我只是学软件开发的菜鸟,前面的路还很长,我会努力学习! 什么是异常? 异常既是一个事件,该事件会在程序执行过程中发生,影响了程序 ...

  8. Android菜鸟成长记16 -- JSON的解析

    JSON的定义  一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

  9. NodeJS搭建HTTPS服务器

    [NodeJS搭建HTTPS服务器] http://cnodejs.org/topic/54745ac22804a0997d38b32d

  10. vim 标记 mark 详解 (转载)

    http://www.cnblogs.com/jianyungsun/archive/2011/02/14/1954057.html Vim 允许你在文本中放置自定义的标记.命令 "ma&q ...