计算机组成原理
文章平均质量分 88
MiracleWW
这个作者很懒,什么都没留下…
展开
-
程序是怎么装载到内存并被运行的
在后续所有内容之前,我们需要先达成一个共识,所有的程序都是被装载进内存然后才被使用的。装载器会把对应的指令和数据加载到内存里面来,让 CPU 去执行,而程序,包括操作系统就是一堆指令和数据的集合。下面开始套娃,BIOS硬件初始化并开始加载主引导扇区(多系统需要选择启动哪个系统的原因),将操作系统加载到内存;移交加载控制权给操作系统,操作系统开始装载非操作系统程序到内存。因为Linux和Windows系统的装载器不同,所以这也是为什么Windows上的一部分程序没法在Linux上跑的原因,如.exe。原创 2021-03-17 17:18:25 · 8144 阅读 · 0 评论 -
计算机组成原理(七)-IO,DMA原理与零拷贝机制
什么是IO?IO是输入输出的意思,也就是Input和Output,这不是重点,重点是IO是相对谁,在我们编写代码的时候也有I/O的概念。以Java为例,InputStream一般都伴随read方法,OutputStream一般对应write方法,所以所有的IO都是针对自身来说的,以CPU和主存为例,CPU要拿主存中的数据,那么对于CPU来说自己是I,但是对于主存来说那自己就是O了。IO接口:IO设备的代言人大部分的输入输出设备,都有两个组成部分。第一个是它的接口,第二个才是实际的 I/O 设备。原创 2021-03-13 15:22:41 · 1565 阅读 · 0 评论 -
计算机组成原理(六)-浮点数存储和浮点数计算
你的程序、打开的文本为什么老是乱码?先来认识一下世界的编码集ASCII:因为最开始计算机是美国人发明的,所以最早的编码集只为美国服务,包含95个可打印字符,33个不可打印字符(包括控制字符)一共127个,而127个只需要7个bit就可以表示,为了以后拓展方便(后续确实也扩充了),最后定为8个二进制表示一个对应的字符,这也是1byte=8bit的由来,所以ASCII表中的每个值都是一个字节表示。如阿拉伯数字1就在表中的49位,用二进制表示就是00110001。Unicode:随着互联网的普及.原创 2021-03-13 15:21:13 · 2071 阅读 · 0 评论 -
计算机组成原理(五)-一条指令是怎么被执行的
什么是指令:程序代码的本质就是一条一条的指令,我们需要通过编码的方式让CPU知道我们需要它干什么,最后由译码器翻译成一条条的机器指令。机器指令主要有两部分组成:操作码、地址码。地址码直接给出操作数和操作数的地址,分三地址指令、二地址指令和一地址指令,最后还有零地址指令,零地址指令在机器指令中没有地址码,用来进行空操作、停机操作、中断返回操作等。那么一条简单的指令执行,涉及到了那些组件?控制器(CU)和运算器(ALU)PC寄存器(程序计数器):用于存放下一条需要执行的指令地址信息,注.原创 2021-03-13 15:19:48 · 5459 阅读 · 1 评论 -
计算机组成原理(四)-CPU的高速缓存
当我们对各组件有了认识之后,那么我们在认识了CPU直接去访问内存的时候,需要申请总线控制权,而且一个8G的内存我们需要访问的地址也许就高达2的30次方,一次寻址访问拿到数据可能就要近百ns,而在CPU主频普遍高于3GHz的今天,内存无疑成为了拖累CPU的主要部件,而速率较快的SRAM又造价昂贵,所以早在一开始,内存速率开始拖累CPU的时候,就引入了高速缓存的机制。什么是高速缓存?我们在购买电脑时,通常查看参数时除了注意CPU的主频及核心数量,也会注意到有个缓存数量和缓存大小,一般分为L1,L2,L3原创 2021-03-13 15:18:58 · 3242 阅读 · 0 评论 -
计算机组成原理(三)-存储器
存储器也是计算机组成的重要部件,充分认识各存储器是一个必要的过程。存储器的分类:存储器按照存取方式进行分类分为RAM,ROM和普通磁盘RAM:随机存储器,统一特点为数据断电即失,根据构造不同又被区分为静态存储器(SRAM)和动态存储器(DRAM)SRAM:静态存储器,只要通电,里面的数据就会一直存在,由晶体管组成,6个晶体管左右才能组成一个bit的数据,电路简单,随存随取速度极快,极快,极快。但是因为成本比较高常被用作CPU高速缓存存储器。DRAM:动态存储器,动态存储器是基于电容设计的存储原创 2021-03-13 15:17:42 · 800 阅读 · 0 评论 -
计算机组成原理(二)-总线
认识了计算机的基本组成,那么各个组件之间是如何进行交流的呢?那就是总线。什么是总线?总线是计算机各种功能部件之间传送信息的公共通信干线,英文名Bus,跟名字一样用于信息传递,一条总线同一时间只能向一个方向传递一种信息。总线的分类:总线按照连接组件的大小可以分为片内总线、系统总线和连接外部设备的拓展总线片内总线:芯片内部用于连接控制器和运算器、运算器和寄存器、寄存器和寄存器之间等,或者存储体内部用于连接各个存储单元的组件内部的总线,被称为片内总线系统总线:CPU,主存这种组件和组件之间原创 2021-03-13 15:17:04 · 1131 阅读 · 0 评论 -
计算机组成原理(一)-基本组成
为什么要学习计算机组成原理?所谓“练拳不练功,到老一场空”,越早的学习计算机底层只是,可以越早的享受底层知识带来的“红利”,好多我们生产工作过程中遇到的问题,如缓存的使用、线程的使用、线程池为什么不是越大越好、volatile关键字的使用原理等,都能在计算机底层知识中找到答案。而我,深受其害,所以痛定思痛,决定重学计算机底层知识!那么我们作为软件开发人员需要学习计算机组成的哪些知识?作为软件开发人员,可能我们不太需要去直接接触硬件,所以我们应该通过硬件运行原理能对应到我们实际开发中的问题,所以我原创 2021-03-13 15:12:13 · 249 阅读 · 0 评论