关于计算机组成:计算机中的缓存和缓冲有什么区别

看到这个台湾和大陆有哪些对于同一事物的不同叫法? - innofact的答复 - 知乎,有感而发 缓存:cache,用处:优化读取缓冲:buffer,用处:优化写入 应用 cache 的场景: redis 和 mysql 的搭配就是典型的 cache 应用场景,mysql 作为数据源,而 redis 就作为数据库的 cache,这种搭配次要是服务于读多写少的场景,补救 mysql QPS 天花板不够高的问题 应用 buffer 的场景: 写硬盘的时候,咱们应用编程语言的 write,并不是把数据写到了硬盘,而是把要写的数据交给了 FileSystem,由 FS 异步刷盘!这个时候,FS 就是起了一个 Buffer 的作用 也能够在 write 之后立即调用 flush 来强制刷盘另一个场景就是应用 MQ,MQ 的三大用处:异步、解耦、削峰!咱们能够把数据交给 MQ,再由 MQ 满满的异步刷盘,当然,用 redis 也是能够的

March 22, 2022 · 1 min · jiezi

关于计算机组成:程序中断

前言输入输出零碎是指咱们电脑上的键盘,鼠标,硬盘,打印机等设施。输入输出零碎有三种形式向主机之间进行数据传输。一种是程序查问形式,这种形式要求cpu必须停下手中的工作,一直期待I/O零碎的进行。这就好比树懒申请闪电侠送货色。闪电侠解决货色只有1秒钟,而要期待树懒说十分钟的话。这显然是一种节约CPU资源的一种形式。长处是硬件构造简略。第二种是DMA形式,这在咱们上次讲三总线结构的时候说过。DMA传输方式由一个专门的DMA控制器负责。并且通过DMA总线传输,不会烦扰其余CPU工作的进行。只有DMA在传输完一大段数据时(如1kb),才像CPU报告工作状况。DMA形式实用于磁盘等大批量数据的输入输出零碎。还有一种是中断形式。咱们说程序查问形式比拟节约CPU资源,而DMA形式只实用于磁盘等大量数据的I/O设施。所以中断形式利用于键盘鼠标等大量数据的I/O设施。中断形式是在CPU执行现行工作过程中,如果呈现键盘输入或者鼠标点击等事件,CPU暂停解决现行程序并保留以后环境(打断点)。而后转而去解决I/O输出,在处理完毕后CPU又主动返回现行程序的断点处,继续执行现行程序。这样使得CPU不用始终期待键盘鼠标的输入输出,进步了CPU的效率。程序查问形式像是监视器模式,而中断形式像是观察者模式。中断岂但利用于I/O设施,也利用于各种程序异样,如地址非法,校验谬误,算术溢出谬误,除数为0等异样。 指令周期咱们将一条指令执行周期按性能分为不同的局部。 依据PC的地址从主存中取指令到IR中称为取指周期。依据指令的地址码从内存中取操作数成为间址周期。依据指令执行相应的操作(如加减乘除)称为执行周期。解决中断请求称为中断周期。 一个指令经验取指周期,间址周期,执行周期,中断周期能力成为一个指令周期。 中断判优终端零碎在任意时刻只能解决一个中断请求。因为多个中断源提出中断请求的工夫是随机的,因而当多个中断源同时提出申请时,须要通过中断判优逻辑确定响应那个中断源的申请。例如故障中断的优先级最高,而后是I/O中断。 中断隐指令CPU相应中断后,通过某些操作,转去解决中断请求。这些操作是由硬件间接实现的,咱们将这些操作对立称为中断隐指令。中断隐指令不是一条真正的指令,而是在解决中断前执行的一系列步骤。中断隐指令过程如下:1.关中断。在执行中断隐指令时,为了保障不被别的中断程序所打断,执行关中断操作。关中断操作保障不再承受中断请求,从而保障了中断隐指令是一个原子操作。2.保留断点。为了保障在解决完中断请求后能正确的放回到原来的程序,必须将原来程序的断点保存起来,如保留程序计数器PC的内容。3.引出中断服务程序。引出中断服务程序的本质是,取出中断服务程序的入口地址并传送到程序计数器PC中。中断处理过程爱护现场及屏蔽字。进入中断服务程序后首先要保留现场,现场信息个别是指CPU的一些寄存器的内容。开中断。容许优先级更高的中断请求,实现中断嵌套。执行中断服务。关中断,保障在回复现场和屏蔽字时不被中断。回复现场和屏蔽字。将现场和屏蔽字回复道原来的状态。开中断和中断返回。中断服务程序的最初一条指令个别是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。

November 6, 2021 · 1 min · jiezi

关于计算机组成:寻址方式数据寻址2

前言上次咱们理解了七种较为简单的寻址形式,间接寻址,间接寻址,寄存器寻址,寄存器间接寻址,立刻数寻址,隐含寻址和堆栈寻址。这次来理解剩下三种寻址形式:基址寻址,变址寻址,绝对寻址。 基址寻址在讲基址寻址之前,咱们先来看一下从写程序到程序运行的过程,代码经验了编译,连贯,装入的过程。咱们发现代码先通过编译变成一堆指令而后再装入内存。如果咱们用间接寻址形式的话,咱们在编译出指令的时候是无奈晓得他要装入内存在何处。也就是无奈确定上图中的N,解决这个问题就用到了咱们的基址寻址。基址寻址中应用了一个基址寄存器,咱们说寄存器就是一个长期存一个数的中央。基址寄存器就存着代码装入后在内存的起始地位。这样,咱们就不必思考咱们的操作数会被放在内存的什么地位。编译时只需思考操作数在绝对于整个装入模块的地位,也叫逻辑地址。执行指令时,逻辑地址+基址寄存器的值就失去了咱们最终的操作数地址。基址寄存器能够应用专用寄存器,也能够应用通用寄存器,应用通用寄存器须要指定寄存器地址。访存次数为2次取指令1次,依据相加和的地址取操作数1次 变址寻址变址寻址模式上相似于基址寻址,变址寻址领有一个变址寄存器寻址时也是变址寄存器的值相加逻辑地址,造成最终的地址。变址寄存器是面向用户的,也就是说变址寄存器的内容是用户扭转的。这个利用在数组解决,咱们能够设置逻辑地址为数组首地址,变址寄存器为偏移量,便能够随机拜访数组中任意数据的地址。特地适宜编写循环程序。访存次数为2次取指令1次依据相加和的地址取操作数1次咱们来看一下变址寻址时生成的指令的不同 for (int i = 0; i < 10; i++) { sun += a[i];}如果用原来的寻址形式编译上述代码如果用变址寻址编译 变址寻址与基址寻址的不同基址寻址是面向零碎的,基址寄存器的内容通常由操作系统或管理程序确定。在程序执行过程中其值不可变。变址寻址是面向用户的,变址寄存器的内容由用户设定,在程序执行过程中其值可变。 绝对寻址绝对寻址是程序计数器(PC)的内容加上指令中的模式地址A而造成操作数的无效地址,其中A的值是下一跳指令与操作数的绝对间隔,可正可负。这也能够解决方才问题,并且,这还有利于程序浮动。访存次数两次取指令1次取操作数1次 总结数据寻址形式能够互相组合应用。

October 9, 2021 · 1 min · jiezi

关于计算机组成:乘法计算

##手算乘法 十进制的手算乘法咱们都曾经很相熟了,而在计算机的底层是十进制转二进制再进行运算,二进制乘法与十进制乘法雷同二进制乘法的非凡之处在于乘数的每一位乘以被乘数有简略的法则,如果乘数的那一位为1,则乘进去的为被乘数自身,如果乘数为0,则乘进去为全0。这样在算每一位乘法时,就不须要屡次相加运算,只须要用简略的与非逻辑就可一次计算实现。算完每一位乘法后果后,进行错位相加,失去最终答案。 原码一位乘法1.乘法符号位如何解决?2.4位二进制数乘以4位二进制数变成8位二进制数,如何保留。1.然而如果用机器实现上述逻辑,就会呈现问题,当初是4位数乘以4位数,所得4个位积,也就是4个两头后果,用到4个寄存器。那如果是64位数乘以64位数,会产生64个两头后果,须要用到64个寄存器吗?这里咱们用到移位相加实现。咱们来看看具体过程还是1.1101与0.1011相乘,符号位独自解决。符号位1与0异或为1,将乘数与被乘数的绝对值放到MQ与X寄存器里。 在正式乘法之前,将ACC里的值置全0。计算时,用MQ的每一位与X相乘,如果最低位为1,则ACC加上被乘数,如果最低位是0,则ACC加0.如当初MQ的最初一位1,所以X的01101与ACC的0000后果01101放到ACC里。而后逻辑右移,高位补0。MQ移除的1舍弃。当初MQ的最低位是1,所以x的01101与ACC的00110相加后果10011,放到ACC里而后右移一位,高位补0。当初MQ的最低位是0,所以0与ACC的01001相加后果01001,放到ACC里而后右移一位,高位补0。当初MQ的最低位是1,所以x的01101与ACC的00100相加后果10001,放到ACC里而后右移一位,高位补0。最初依据将ACC最高位批改为正确的符号。手动模仿就是这样运算。 总结在加法运算时,ACC与X别离放着加数与被加数再进行相加,而在乘法运算时也应用到了ACC与X的屡次加法运算。所以ACC与X在加法与乘法操作时起的作用雷同。

September 4, 2021 · 1 min · jiezi

关于计算机组成:计组总线通信控制之异步串行通信的数据传输

在计算机中,总线通信管制次要解决通信单方如何获知传输开始和传输完结,以及通信单方如何协调如何配合。 通常用四种形式:同步通信、异步通信、半同步通信、分离式通信。 在异步通信中,又分为两中形式:并行传送、串行传送。 在进行异步串行通信时,没有同步时钟,也不须要在数据传送中传送同步信号。为了确认被传送字符,约定字符格局为: 1个起始位(低电平)、5~8个数据位(如ASCLL码为7位)、1个奇偶校验位(作检错用)、1或1.5或2个终止位(高电平)。 1)起始位前面紧跟要传送字符的最低位,在奇偶校验位应该为传送字符的最高位,实际上就是将字符的二进制数倒过去搁置,整个字符的完结是一个高电平的终止位。 2)起始位和终止位形成一帧,两帧之间的距离是任意的,这部分距离被称为闲暇位(高电平)。 3)两帧之间的闲暇位越少,其数据传输率越高。 例题:画图阐明用异步串行传输方式发送十六进制数据95H。要求字符格局为:1位起始位、8位数据位、1位奇偶校验位、1位终止位。假如每秒传输120个数据帧,试计算波特率、比特率。 依据题目给出的字符格局,一帧蕴含1+8+1+1=11位 故波特率为:(1+8+1+1)*120=1320bps=1320波特 比特率为:1320*(8/11)=960bps

November 7, 2020 · 1 min · jiezi

关于计算机组成:计组字长

机器字长:CPU一次能解决数据的位数,通常与CPU的寄存器位数无关。存储字长:存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数。指令字长:计算机指令字的位数。数据字长:计算机数据存储所占用的位数。 注:冯诺依曼机中,指令和数据等同重要,都寄存在存储器中,并可按地址寻访。 通常晚期计算机:存储字长 = 指令字长 = 数据字长。故拜访一次便可取一条指令或一个数据,随着计算机利用范畴的不断扩大,三者可能各不相同,但它们必须是字节的整数倍。 计算机中信息存储单位计算机中的信息用二进制示意,罕用的单位有位、字节和字。 1、位(bit):是计算机中最小的数据单位(存储元),寄存一位二进制数,即0或1。它也是存储器存储信息的最小单位,通常用“b”来示意。 2、字节(Byte):字节是计算机中示意存储容量的最罕用的根本单位(存储单元)。一个字节由8位二进制数组成,通常用“B”示意。一个字符占一个字节,一个汉字占两个字节。其它常见的存储单位有: 存储容量的计量单位有字节B、千字节KB、兆字节MB以及十亿字节GB等。它们之间的换算关系如下: 1KB (Kilobyte 千字节)=1024B1MB (Megabyte 兆字节 简称“兆”)=1024KB1GB (Gigabyte 吉字节 又称“千兆”)=1024MB1TB (Trillionbyte 万亿字节 太字节)=1024GB 1PB(Petabyte 千万亿字节 拍字节)=1024TB1EB(Exabyte 百亿亿字节 艾字节)=1024PB1ZB (Zettabyte 十万亿亿字节 泽字节)= 1024 EB1YB (Jottabyte 一亿亿亿字节 尧字节)= 1024 ZB1BB (Brontobyte 一千亿亿亿字节)= 1024 YB 3、字(Word)与字长:字是指在计算机中作为一个整体被存取、传送、解决的一组二进制数。一个字的位数(即字长)是计算机系统构造中的一个重要个性。字长是由CPU的类型所决定,不同的计算机系统的字长是不同的,常见的有8位、16位、32位、64位等,字长越长,计算机一次解决的信息位就越多,精度就越高,字长是计算机性能的一个重要指标,目前支流微机正在由32位机向64位机转变。 **留神字与字长的区别,字是单位,而字长是指标。**机器的字长会影响机器的运算速度。假使CPU字长较短,又要运算位数较多的数据,那么须要通过两次或屡次的运算能力实现,这样势必影响整机的运行速度。 机器的字长对硬件的造价也有较大的影响。它将间接影响加法器(或ALU),数据总线以及存储字长的位数。所以机器字长确实不能单从精度和数的示意范畴来思考。 为了适应不同的要求及协调运算精度和硬件造价间的关系,大多数计算机均反对变字长运算,即机内可实现半字长、全字长(或单字长)和双倍字长运算。

November 5, 2020 · 1 min · jiezi

备战2019计算机912考研系列笔记绪论

计算机912考研系列笔记本笔记记录从2019年3月份到12月份,准备计算机912考研相关内容与912考研进度历程。一方面是给后人提供一些参考,一方面方便自己消化咀嚼知识。912与408区别balabalatop5学校分析balabala复习(学习)计划四大专业课:数据结构操作系统计算机组成原理计算机网络

March 11, 2019 · 1 min · jiezi