第1章 基础知识

1.1 机器语言

        每一种处理器,由于硬件设计和内部结构不同,就需要使用不同的电平脉冲来控制,使它工作。每一种微处理器都有自己的机器指令集,也就是机器语言。


        我有限的认识当中,了解的CPU体系结构就两个,intel的x86架构和arm公司的arm架构,虽然我没有接触过arm处理器,但据我猜想,这两个不同的CPU架构的指令集应该是不同的。

1.2 汇编语言的产生

        汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。

1.3 汇编语言的组成

        汇编语言发展至今,由以下3类指令组成。

        汇编指令:机器码的助记符,由对应的机器码。
        伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
        其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码。

1.4 存储器

        磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,无法被CPU使用。

1.5 指令和数据

        指令和数据是应用上的概念,在内存和磁盘中指令和数据都是一样的,都是二进制信息。CPU在工作时把有的信息看作指令,有的信息看作数据。


        哪些二进制信息看作指令,哪些看作数据呢?根据后面的知识CS和IP指向的二进制信息是看作指令的。

1.6 存储单元

        


        我通过《计算机组成原理》这本书,对存储单元的理解是:存储单元应该是内存最小的寻址单位。一个存储单元有多少个二进制位?如果内存是字节编址就是8位;如果是字编址就是16位(普遍1word=2byte=16bit)。

        CPU中MAR、MDR这两个寄存器,跟内存联系比较紧密。MAR寄存器反映了内存的地址空间大小,也就是可以寻址多少个存储单元。MDR反映了存储单元的大小,也就是一个存储单元可以保存多少个比特位。

1.7 CPU对存储器的读写

        CPU要想进行数据的读写,必须和外部器件进行下面3类信息的交互。

        存储单元的地址(地址信息);
        器件的选择,读或写的命令(控制信息);
        读或写的数据(数据信息)。

        总线从物理上讲,就是一根根导线的集合。根据传送信息的不同,从逻辑上又分为3类,地址总线、控制总线和数据总线。

        每个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出3种总线的宽度标志了这个CPU的不同方面的性能:

        地址总线的宽度决定了CPU的寻址能力;
        数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;
        控制总线的宽度决定了CPU对系统中其他器件的控制能力。

1.8 地址总线

1.9 数据总线

1.10 控制总线

1.11 内存地址空间(概述)

        什么是内存地址空间呢?举例来讲,一个CPU的地址总线宽度为10,那么可以寻址1024个内存单元,这1024个可寻址的内存单元就构成这个CPU的内存地址空间。

1.12 主板

1.13 接口卡

        计算机系统中,所有可用程序控制其工作的设备,必须受到CPU控制。CPU对外部设备都不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展槽上的接口卡。


        可能是因为这本书主要介绍的汇编语言,对接口卡这段只是简要介绍,所以我看这小节的表述时挺费劲的,并不是内容多难,只是不通透,可能是因为简要介绍的缘故。
        写点我从《计算机组成原理》上获得的自己的理解。接口卡肯定指的的是IO设备相关的知识。IO设备又两部分组成:机、电、光、磁部件和设备控制器。
        机、电、光、磁部件属于纯硬件范畴,每个IO设备利用的机、电、光、磁的原理都不同,跟计算机也是间接联系,我也不是很懂。
        设备控制器是每个IO设备都有的,我们安装操作系统时,安装的驱动程序就是负责跟设备控制器交换信息的。CPU执行IO指令时的地址信息、控制信息、数据信息就是经过驱动程序到达设备控制器,在驱动设备的机、电、光、磁部件。
        其实关于IO设备我也有些问题没有想通透。设备控制器中包含多个寄存器,IO编址时是不是对设备控制器中的每个寄存器都编址?还是只对一个设备编址,设备中设备控制器内的多个寄存器,设备有自己的方法区分?《微机原理与接口技术》这本书可能有我想要的答案,因为跟我看的《计算机组成原理》这本书重复内容太多,加上没时间,电子书下载了暂时没看,这点细节等我有空看了找到答案再补充。

1.14 各类存储器芯片

        从读写属性上分类:随机存储器(RAM)和只读存储器(ROM)

        从功能和连接上分类:
        随机存储器(RAM):用于存放CPU使用的绝大部分程序和数据。
        装有BIOS(Basic Input/Output System,基本输入输出系统)的ROM:某些接口卡上也存储有相应的BIOS的ROM。
        接口卡上的RAM:某些接口卡需要对大批量输入、输出数据进行暂时存储,在其上装有RAM。最典型的是显卡上的RAM,一般称为显存。


        在我原本的认知里,计算机的存储器,只有内存(RAM)存放指令和数据;主板上的只读存储器(ROM)存放BIOS,用于开机自检,安装操作系统。对于某些接口卡可能存在ROM存放BIOS完全没有这个概念。对于显存知道这个是和显卡相关的,完全没想到它是一个RAM,而且不只是显卡可能其他的接口卡上也存在这样的RAM.

1.15 内存地址空间

        上述存储器,在物理上是独立器件,但是在以下两点上相同。
        都和CPU的总线相连。
        CPU对他们进行读或写的时候都通过控制线发出内存读写命令。

        CPU在操作这些存储器时,把它们当作内存看待,把它们总的看作一个由若干个存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间。每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间。CPU在这段地址空间读写数据,实际上就是在相应的物理存储器中读写数据。


        据我所知,CPU的工作模式有三种:实模式、保护模式、虚拟8086模式。后两种模式是因为计算机的发展而诞生的。一开始CPU只有访问物理地址的实模式这一种工作方式,经典的CPU8086诞生后,因为它的地址线是20位,所以能访问1M的内存地址空间。随着CPU处理能力的提升,在32位、64位CPU工作在实模式时是不是也只能访问1M的空间?我隐约记得我看的某个资料上好像介绍了32位、64位CPU可以通过某种方式访问1M以外的空间,后续确认了我再来补充。
        不管你的计算机是什么样的CPU,在刚开机时,你的CPU都是先运行在实模式,做好加载系统的准备工作,系统启动后都运行在保护模式,如果需要在保护模式运行一个DOS程序,那么windows将CPU切换到虚拟8086模式下运行该程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值