补充的一些计算机软硬件基础

一  CPU的寻址方式

        1.什么是内存容量

           内存是由很多个内存单元组成的,每个内存单元占8个bit位(1字节),

           也就是说内存中有多少个内存单元就意味着可以存储多少个字节,下

           面是一个只有两个内存单元的内存概念图:

           

          注:该图为博主自己画的概念图并非PCB板的设计图!

          1.首先说一下,什么是总线

             (总线参考文章:https://blog.csdn.net/qq_39759656/article/details/81700114

                     各部件之间通过单独的连线叫做分散连接;将各部件连接到一组

             公共信息传输线上叫做总线连接,早期的计算机使用的是总线连接。

                     所谓总线(Bus),一般指通过分时复用的方式,将信息以一个

             或多个源部件传送到一个或多个目的部件的一组传输线。 按照功能划

             分,大体上可以分为地址总线和数据总线。有的系统中,数据总线和

             地址总线是复用的,即总线在某些时刻出现的信号表示数据而另一些

             时刻表示地址;而有的系统是分开的。51系列单片机的地址总线和数

             据总线是复用的,而一般PC中的总线则是分开的。

                    注:当多个部件与总线相连时,如果出现两个或两个以上的部件

                           同时向总线发送信息,必然会导致信号冲突,传输无效,所

                           以在某一时刻只允许一个部件向总线发送消息,但是可以允

                           许多个部件一同接收消息。                                         

            (1)地址总线

                             地址总线又称位址总线,属于一种电脑总线 (一部份),是由

                     CPU 或有DMA 能力的单元,用来沟通这些单元想要存取(读取/写

                     入)电脑内存元件/地方的实体位址(物理内存)。

                     

                                 地址总线AB是专门用来传送地址的,由于地址只能从CPU传向

                         外部存储器或I/O端口,所以地址总线总是单向三态的,这与数据总

                         线不同。

                             地址总线的位数决定了CPU的直接寻址的内存空间大小,即CPU寻

                         址范围能力,地址总线越多CPU能寻址的范围也就越大,地址总线的

                         位宽以2的次方来算。地址总线就相当于计数器,告诉我们寻址范围

                                使比如8位微机的地址总线为16位,则其最大可寻址空间为

                         216=64KB,6位微型机的地址总线为20位,其可寻址空间为

                         220=1MB。一般来说,若地址总线为n位,则可寻址空间为2n字节。

            (2)数据总线

                             就是指主板上的桥段控制器数据从一个地方传到另一个地方

                     控制其传输速率的称谓数据总线。

                            数据总线是双向三态形式的总线,即他既可以把CPU的数据

                     传送到存储器或I/O接口等其它部件,也可以将其它部件的数据

                     传送到CPU。数据总线的位数是微型计算机的一个重要指标,通

                     常与微处理的字长相一致。例如Intel 8086微处理器字长16位,其

                     数据总线宽度也是16位。需要指出的是,数据的含义是广义的,

                     它可以是真正的数据,也可以指令代码或状态信息,有时甚至是

                     一个控制信息,因此,在实际工作中,数据总线上传送的并不一

                     定仅仅是真正意义上的数据。

                     数据总线的性能指标:

                            * 总线的带宽

                                     程序总线总线的带宽指的是单位时间内总线上传送的数

                                     据量,即每钞钟传送MB的最大稳态数据传输率。与总

                                     线密切相关的两个因素是总线的位宽和总线的工作频率,

                                     它们之间的关系:

                              总线的带宽=总线的工作频率*总线的位宽/8

                            * 总线的位宽

                                      总线的位宽指的是总线能同时传送的二进制数据的位数,

                                      或数据总线的位数,即32位、64位等总线宽度的概念。

                                      总线的位宽越宽,每秒钟数据传输率越大,总线的带宽

                                      越宽。

                            * 总线的工作频率

                                      总线的工作时钟频率以MHZ为单位,工作频率越高,总

                                      线工作速度越快,总线带宽越宽

            (3)控制总线

                            控制总线(ControlBus)简称CB。控制总线主要用来传送控制信

                     号和时序信号。控制信号中,有的是微处理器送往存储器和输入输出

                     设备接口电路的,比如:读/写信号、片选信号、中断响应信号等;也

                     有是其它部件反馈给CPU的,比如:中断申请信号、复位信号、总线

                     请求信号、设备就绪信号等。因此,控制总线的传送方向由具体控制

                     信号而定,一般是双向的,控制总线的位数要根据系统的实际控制需

                     要而定。实际上控制总线的具体情况主要取决于CPU。

            (4)其它总线

                     去https://blog.csdn.net/bjbz_cxy/article/details/78508768里面找

        2.CPU内部寻址方式

                   CPU的寻址是通过总线完成的,所以下面还会讲总线,只是侧重点在

           CPU寻址上。

                  内存是由很多个内存单元组成的,每个内存单元占8个bit位(1字节),

           也就是说内存中有多少个内存单元就意味着可以存储多少个字节,下

           面是一个只有两个内存单元的内存概念图:

          

           注:该图为博主自己画的概念图并非PCB板的设计图!

         (1)地址总线

                         地址总线的位宽决定了CPU的寻址范围能力,地址总线越多CPU

                  能寻址的范围也就越大,地址总线就相当于计数器,告诉我们寻址范

                  围,地址总线是连接在内存的电路接口处的,地址总线的位宽以2的

                  次方来算。

                         注:寻址范围又叫寻址空间,一般指的是CPU对于内存寻址的

                         能力。通俗地说,就是能最多用到多少内存的一个问题。

                  上图是一个有两个内存单元的RAM,所以一根地址总线就可以表示,

                  2的1次方为2,所以CPU的寻址最大范围是2,对应的编号就是00,

                  01,内存中的存储顺序是以0开始的,这也是为什么数组下标都是以

                  0开始。

         (2)数据总线

                         数据总线决定了内存中有多少bit位,当通过地址总线找对应的

                  内存单元时可以通过与指定内存单元连接的数据总线将数据传送回

                  来! 数据总线的位宽决定了一次可以传送多少个bit 位回来,一般均

                  为8bit!位宽不能代表有多少根数据总线.位宽决定了数据总线一次

                  传输bit 位的能力,比如上图有两个内存单元,CPU 通过地址总线找

                  到了第二个内存单元的地址,此时的数据总线位宽为8位; 那么一

                  次可以将第二个内存单元里的bit 全部读取出来,那么倘若将第一个

                  内存单元和第二个内存单元全部读取出来,那么需要分两次来读,

                  如果数据总线的位宽是16 位,那么可以一次读完,数据总线的位

                  宽是和地址总线直接挂钩的,假如说数据总线的宽度是32 位,每一

                  次读取数据都会动用32 根数据总线来读取,也就是一次可以读取4

                  字节,同时地址总线一次寻址范围也必须能够满足4字节,也就是说

                  每一次寻址都需要2根地址总线!

         (2)控制总线

                         控制总线告诉CPU对这块内存单元做怎样的操作,读还是写,

                  同样控制总线也是接在电路接口处的,控制总线的位宽决定了

                  CPU能对电子元件有多少种控制方法,一般情况下内存中只有一

                  根控制总线,因为一般情况下内存就是读与写!

                         如果地址总线不满足要求则会出现硬件中断等,还有就是如

                  果地址总线的一次寻址范围是4字节倘若数据总线跟不上的话则

                  会分开读取!不过一般情况下数据总线的位宽是和地址总线的位

                  宽成正比例的,这也是为什么C语言和很多编程软件会有内存对

                  齐机制!

                   上面介绍的是地址总线,数据总线,控制总线都属于前端总线,前

           端总线是将CPU与北桥芯片和内存连接起来的通讯线路,因为内存不属

           于CPU内部结构单元,内存是在主板上的所以CPU是不能直接操作内存

           的,需要通过前端总线与北桥交互,北桥芯片通过外部总线将内存中的

           数据送到一级缓存中去,CPU在通过内部总线将其取到寄存器中!

         (3)内部总线、外部总线、系统总线参看博客:

                  https://blog.csdn.net/bjbz_cxy/article/details/78508768

                  下面的部分                   

二  指令

              计算机能解题是因为计算机本身存在一种语言,它能理解人的意图又能

       被人识别,机器语言是由一条条语句构成的,某一种语句又能精确表达某种

       语义,例如它可以命令机器做某种操作,指出参与操作的数或其它信息在什

       么地方等。计算机就是连续执行每一条机器语句而实现全自动工作的,人门

       习惯把每一条机器语言的语句叫做机器指令,而又将全部的指令的集合叫做

       机器的指令系统,因此机器的指令系统反应了机器的功能。

三  虚拟内存技术

               虚拟内存技术的核心就是利用了局部性原理,把所要运行的进程中的

       数据不全部加载到内存中执行,而是加载一部分,当CPU在请求页表时,发

       现页表中的页表条目中的有效位为0但是被虚拟存储系统分配了的虚拟页时,

       就会把这个虚拟页从磁盘中调度到内存中(往往磁盘中的数据不常用,而在

       内存中的物理页的数据是频繁使用的数据),这样一来,我们就实现了多个

       进程同时加载到内存中并且还占用不是很多的内存的效果了(可以解决应用

       程序比内存大的问题)。

       详细参考文章:

       https://blog.csdn.net/qq_30137611/article/details/66478426

四  内存分段

     1.内存为什么要分段?

                8086CPU有20根地址线,最大可寻址内存空间为1MB。而8086的寄存

        器只有16位,指令指针(IP)和变址寄存器(SI、DI)也是16位的。用16

        位的地址寻址1MB空间是不可能的。所以就要把内存分段,也就是把1MB空

        间分为若干个段,每段不超过64KB,在8086中设置4个16位的段寄存器,

        用于管理4种段:CS是代码段,DS是数据段,SS是堆栈段,ES是附加段。

    2.段地址

              段地址是针对内存的分段而言的,将每一段的段首地址定义为段地址。

       段地址的存在是由系统的分段存储决定的,通过段地址和偏移地址就能对数

       据进行寻访。

    3.偏移地址(也叫偏移量或有效地址)

     (1)由来

                     偏移地址也称为偏移量,由于8086/8088CPU内部的ALU只能进行

              16位的运算,而8086/8088有20条地址线,直接寻址能力1MB。因此,

              8086/8088所使用的20位物理地址,是由相应的段地址加上偏移地址

              组成的。

     (2)定义

                      偏移地址就是计算机里的内存分段后,在段内某一地址相对于段

              首地址(段地址)的偏移量。如8086存储系统中20位的物理地址(就是数

              据存储的实际地址)=16位的段基地址*16+16位的偏移量。

五  扇区、块、簇(簇的概念并没有摘录,有空补充)

       1. 块、扇区的一些概念

           首先搞清楚扇区一些单位大小关系

           磁盘按层次分为磁盘组合 -> 单个磁盘 -> 某一盘面-> 某一磁道 -> 某一

           扇区

           现在在说扇区是什么

                  每个磁盘有多条同心圆似的磁道,磁道被分割成多个部分。每部分的

                  弧长加上到圆心的两个半径,恰好形成一个扇形,这就是扇区。扇区

                  是磁盘中最小的物理存储单位。通常情况下每个扇区的大小是512字

                  节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是

                                                         4096字节)

                  磁盘块

                         磁盘块属于逻辑层面,是操作系统虚拟出来的, 块是操作系统中

                         最小的逻辑存储单位。操作系统与磁盘打交道的最小单位是磁盘

                         块,磁盘的读写基本单位是块。

                         扇区和磁盘块的关系以及为什么要有磁盘块

                                由于扇区的数量比较小,数目众多在寻址时比较困难,所以

                                操作系统就将相邻的扇区组合在一起,形成一个块,再对块

                                 进行整体的操作。扇区和磁盘块的关系,通过射磁盘块来映

                                 射。

                         磁盘块和扇区大小的基本关系:

                                 一个块大小=一个扇区大小*2的n次方(这个值只是个例子,

                                 并不是固定的,由操作系统自己决定)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值