《CODE》读后笔记——第21~25章

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/

 

posted @ 2016-12-06 01:33  why2cs  阅读(301)  评论(0编辑  收藏  举报