Java教程

浅谈机组

本文主要是介绍浅谈机组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  之前刷了一遍机组的书,就计算机组成原理来发一篇基础的文章,浅谈一下机算计的结构基础,大致从四个方面进行解释。(有错的还请各位大佬斧正)

1.内存  2.高速缓存器(cache)  3.cpu  4.外设(IO设备)


  前导

  计算机的核心就是二进制的编码,通过高低电频为基础制造不同的电子原件来满足计算机的运作,因此在存储数据的时候就选用了二进制存储法(大小端存储)。当然计算机不仅能记录digit还能记录字符(ASCII),包括国标码。同时为了防止存储时的错误,也加入了一些验证的方法,如奇偶校验码,海明码,CRC码。

  在从数值的运算上分,为了解决运算的问题,牛犇们把加减乘除全部归至加法中,因此引入了原码补码移码反码的一些细节,来满足不同的运算需求。在小数方面最典型的就是IEEE754的定义。那么在运算的时候就插入了ALU硬件如下图是一个ALU电路图:

              

  ALU通过一些基本的电路,如与门(&)或门(|)非门(!)的基础电路元件,与非门或非门异或门等复合逻辑电路组成,随着时代的发展(摩尔定律ing),从最简单的一位全加器到串行加法器以至于组内并行同时组间也并行的ALU设计大大提升了计算机的运行速度。


 

内存

   主存是一个位于硬盘和CPU(cache)之间的硬件,可分为ROM(只读存储器)和RAM(随机存储器)两类。主存一般用DRAM(Dynamic)。

   其中有一些重要的线路与其连接,如写入读出时的数据线,访问地址的地址线,确定位置片选线,译码驱动,读写控制线。同时可以在RAM上开双端口模式,运用多模块存储来提高存储量和系统效率。


  Cache

    Cache(SRAM)的引入是为了缓冲cpu高速运作和内存提供信息不及时的不匹配问题。

  Cache的信息可从任务管理器中查看,可见一般有两到三个cache在计算机中,当然为了提高运行速度Cache的容量是较小的,因此在设计的时候我们对cache存储的时候划分了区域,包括主存字印地址,字块内地址,cache字块地址,并且引入了替换算法(RAND,FIFO,LRU,LFU等):


 

过渡延申 

  虚拟内存:当内存空间不足时,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,来满足需求。

  指令:计算机内部的存储数据时我们人为把它归为数据段,指令段等,不同的电脑在配置时所使用的指令定义方式是不同的,这时便要提到一个大名鼎鼎的名词X86汇编(X86架构(The X86 architecture)是微处理器执行的计算机语言指令集,指一个inter通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。)。这是

yyds!!在打逆向(RE)的时候必然是一个非常重要的内容(doge)。


 CPU 

  先上图,核心之核心,人类之精华!!!

  首先先看左上角的reg这便是寄存器了现在应该是32(64)位reg了,这个算是cpu里的存储单元了,主要内容是记录一些栈位置,栈顶,数据段,psw(状态),具体可去DOSBOX里看看。

  接下来右下角的是PC(CS+IR)指向代码的运行点。

  中间部分就是ALU运算器了,是CPU计算的中心。

  右下角是control(控制器),这个可以算是计算机的大脑,控制着计算机的一举一动,有硬布线,微程序之分,现在应该偏向于后面一种。

  最后看整张图,到处布置了总线,这个相当于人类的神经血脉,由control控制,应用于传输数据与内存,cache,外设进行交流。


外设(IO设备)

    在之前的计算机中我们采用的是直接与cpu进行交流,后来发现可以提速,于是往主存拉了一根线叫(DMA),这一块我们把它分为输入输出设备(如鼠标,电脑,显屏),外存储设备(如磁表面存储器),I/O接口(通过这些接口使数据得以交换)。


 

  总之机组是一门较为底层但是非常重要的科目,可以让我们更好的了解其基础构造。 

 

这篇关于浅谈机组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!