计算机组成原理一篇过
内容参照王道考研计算机组成原理课程视频。
在学习操作系统之前有必要对计算机硬件的组成以及各部分的功能有较清晰的认识,尤其操作系统中内存管理部分对硬件的理解要求较高。针对这部分知识先大致了解基本概念,后面项目中用到,再深入学习。
1. 概述
1.1 早期冯诺依曼机
“存储程序”的概念是指将指令以二进制代码的形式事先输入计算机的主存储器(内存),然后按其在存储器中的首地址执行程序的第一条指令,之后按该程序的规定顺序执行其他指令,直至程序执行结束。
存储器即常说的内存。
上述的过程可以这样描述:原始的数据经过输入设备第一次处理(转化成二进制数据)送到运算器加工成为计算结果,再由输出设备输出我们能看懂的结果(翻译二进制数据),而这个过程由控制器协调控制。但这样存在一个问题,只有当一次计算完成,人拿到计算结果才能进行下一次输入计算,效率很低,所以再增加一个部件存储器,这样可以把计算的中间结果暂时存放在存储器中,直至输出最终结果。在上面的图中,可以发现一条数据线连接存储器和控制器,这个传到控制器的数据就是指令(计算步骤、程序),它告诉控制器该如何控制。
冯·诺依曼计算机的特点:
1.计算机由五大部件组成;
2.指令和数据以同等地位存于存储器,可按地址寻访;
3.指令和数据用二进制表示;
4.指令由操作码和地址码组成;
5.存储程序;
6.以运算器为中心(输入/输出设备与存储器之间的数据传送通过运算器完成)。
1.2 现代计算机结构
以运算器为中心的早期冯诺依曼计算机,运算器既要负责计算还要负责把输入设备传过来的数据和计算步骤搬到存储器,效率也不高,所以现代计算机结构以存储器为中心,输入的数据可以直接存在存储器,但需要注意由于运算器和存储器都由控制器指挥,也可能导致运算器和存储器不能同时工作,但相比之下效率已有很大提升。
1.3 小结
2. 主要功能部件介绍
2.1 主存储器
2.1.1 存储器的种类
2.1.2 存储器的结构
主存储器即内存,可以想象成一个大楼,内存中有很多单元相当于大楼的房间,房间上号码相当于内存单元的地址,通过这个地址我们就可以找到指定的内存单元。内存中通常以一个字节Byte(8位bit)为一个内存单元进行编址。
MAR:存储地址寄存器( 根据里面存放的地址访问主存内某个位置的数据) ;MDR:存储数据寄存器(存放着准备写入或来自主存内某个位置的数据);这两个寄存器一般集成在CPU中。
**下图是实现输出某个单元数据的电路结构。**当对应地址单元的线路接通,就可以访问其中的八位数据。
译码器的作用是将有限的地址线传送的数据,映射成多种状态,例如如果有32根地址线,那么所能对应232=22×230=4G2^{32}=2^2\times 2^{30}=4G232=22×230=4G种状态,也就有4GB的寻址能力。所以你电脑的内存是多大的:)。
下图中D0 ~D7表示数据输出端,一次可以输出8位的数据;A0 ~A12一共13位数据输出端,有23×210=8k2^{3} \times 2^{10}=8k23×210=8k的寻址能力;A13 ~A14一共2位数据输出端,有22=42^2=422=4种状态,可以控制4个扩展主存的选取。
2.1.3 练习题
2.2 运算器
2.3 控制器
前面说过一条数据线连接存储器和控制器,这个传到控制器的数据就是指令(计算步骤、程序),它告诉控制器该如何控制。对于控制器来说,完成一条指令分为三个阶段:取指令(PC);分析指令(IR);执行指令(CU)。
1.由PC当前指向的地址值找到存储器内的指令,将这条指令存放在IR中,到此取指令过程结束;
2.IR中指令的操作码部分送到CU给出控制信号,至此分析指令结束;
3.后面根据指令内容,完成相关操作,至此执行指令结束,完成一个指令周期。
一条指令由操作码和地址码组成。例如:000001
000000101这条指令,000001
就是操作码代表取数
操作,000000101就是地址码代表从哪里取数,最后将取出的数放到累加器ACC中(默认)。
注意:CPU依据指令周期的不同阶段区分(MDR)中是指令还是数据。
2.4 小结
3. 各部件协调工作过程
下图主存地址0~4存储着机器指令。
下面的计算机工作过程一定要自己分析一下。
4. 计算机性能指标
CPI (Clock cycle Per Instruction ):执行一条指令所需的时钟周期数;
IPS ( Instructions Per Second ):即每秒执行多少条指令;
FLOPS (Floating-point Operations Per Second):即每秒执行多少次浮点运算。
5. 多模块存储器
CPU和主存储器的速度不匹配问题一直以来都是计算机系统发展的障碍,到现在,这个问题变得越来越严重,以至于主存的存储速度成为了计算机系统的瓶颈。为了解决这一瓶颈,尝试了多种办法,除通过寻找高速元件来提高访问速度外,还可以通过采用双口RAM和多模块存储器,使在一个存取周期内可以并行地读写多个字,从而提高存储器的访问速度。这里重点介绍多模块存储器。
顾名思义,多模块存储器是指由多个模块组成的存储器,不过这些模块具有相同的容量和存取速度,各模块都有独立的地址寄存器、数据寄存器、地址译码、驱动电路和读/写电路,它们既能并行工作,又能交叉工作。
5.1 多体并行存储器
存取周期的概念:当启动存取后,数据不是立马就能存取完毕,需要等待一段时间;在下一次存取之前还要稳定一段时间即对应下图中的恢复时间,所以一个存取周期实际上包括存取时间和恢复时间两部分。
在低位交叉编址的多体存储器中,因为每次数据是在不同的存储体中进行存取,不像高位交叉编址的多体存储器那样每次数据在相同的存储体中存取,不会有存取下一个地址数据要等待上一个存取周期结束的限制,可以同时进行,这样就提高了存取速率。
上一个存取结束时还要恢复,所以存取下一个地址数据就在上一个恢复时同时进行存取。
6. Cache高速缓存
Cache高速缓存(因为价格高昂,通常容量较小,但肯定比CPU大)的引入是为了解决CPU与主存速度不匹配的问题,所以将主存的数据暂时存储到Cache,因为Cache的访问速度与CPU相当,这就极大提高程序的运行速度。随之而来的问题是主存的数据怎么放到Cache里,还有Cache满了之后该怎么办。
6.1 局部性原理
空间局部性: 在最近的未来要用到的信息(指令和数据),很可能与现在正在使用的信息在存储空间上是邻近的。
时间局部性: 在最近的未来要用到的信息,很可能是现在正在使用的信息。
利用局部性原理,把将要用到的数据先放在Cache里,因为CPU访问Cache的速度很快,也就提高了程序的执行效率。
6.2 引入Cache需要解决的问题
1.主存中的块放到Cachet中哪个位置?
2.Cache满了如何处理?对应位置被占用如何处理?
3.修改Cache中的内容后,如何保持与主存中相应内容的一致性?
6.3 地址映射
(1)全相联映射:空位随意放
(2)直接映射:对号入座
(3)组相联映射:按号分组,组内随意放
主存的大小是256MB即256M个字节,因为Cache是分成了8个块,每个块里面有64个字节,为了方便映射我们将主存也进行分块,每个块也有64个字节,这样原来256M个字节就划分成了2222^{22}222个块。256MB=28×220B256MB=2^8\times2^{20}B256MB=28×220B,28×220B÷64B=2222^8\times2^{20}B\div64B=2^{22}28×220B÷64B=222
6.3.1 全相联映射
主存中的数据随机放到Cache中的空位,通过有效位判断Cache块是否为空,为了保证主存的数据进入Cache后依然能够找到原先在主存中的位置,所以主存编址的高22位也要保存在Cache中,加上一位有效位(有效位用来识别Cache块中有没有数据),共23位就能区分64字节的数据来自主存的哪里。
6.3.2 直接映射
主存的数据按照与Cache块号一一对应的方式放入Cache中,对主存块号(地址)取余所得余数即对应Cache中的块号,此时通过主存编址的高19位加上一位有效位,就能区分64字节的数据来自主存的哪里。
6.3.3 组相联映射
组相联映射是将Cache进行分组,主存也进行分组,二者的组对应关系按照直接映射,但组内是按照全相联映射方式,即按块号分组,组内随意放。
6.3.4 三种映射的比较
Cache中存储的内容: 标记项+数据
标记项: 主存字块标记、有效位、脏位…
6.4 替换算法
替换算法是为了解决如何取代Cache中原先数据的问题。
第一种不用考虑;第二种没有考虑局部性原理;第三种是一种局部性方法,着眼于近期; 第四种是一种全局性方法,着眼于历史的积累,操作系统中进一步了解。
6.5 Cache的工作原理小结
CPU给出地址交给主存和Cache主存地址映射变换机构,经过地址映射变换机构之后就会翻译成对应的Cache地址,命中时Cache就会把相应的数据传到数据总线,没有命中时,在Cache替换机构控制下Cache与主存通过直接通路进行快速数据交换,交换好了交给CPU,或直接给CPU。
在写操作时,如果在Cache中命中,为了提高执行效率,只修改Cache的内容, 而不立即写入主存,只有当Cache块中数据要换出时才写回主存,利用脏位进行标记是否命中。
全写法是CPU直接将数据写入内存,为了解决速度不匹配的问题,写数据先存储在缓存中,然后CPU就不管了,当写很频繁时,可能导致缓存数据的溢出。
6.5.1 习题
题中的二路指的是一个组中有两个Cache块。
7. 虚拟存储器
上面提到的Cache地址和主存地址之间的映射是以块为单位的,虚拟地址和物理地址之间的映射也是有一定单位的——页,段,段页式。
注意:下面会同时出现很多全新的概念,慢慢体会一下。
页内地址类似于之前的块内地址, 虚页号类似于之前的主存字块标记。虚页号到实页号的映射关系存储在页表中,页表中存放的是实页号以及装入位,装入位表明虚拟地址所指向的数据是已经在内存中了还是在外部磁盘里(1表示在主存,0表示不在主存),如果在主存中,得到的实页号与页内地址拼接一下,去主存中访问数据就行,反之需要操作系统将外部磁盘的数据调到主存中来。
根据虚页号如何找到在实页号在页表中的位置: 虚页号与页表基址寄存器中的页表起始地址拼接出的页表项地址(页表存放在主存中,所以即是主存上地址)就可以找到实页号在页表中的位置。将实页号与虚拟地址的页内地址进行拼接,即可上Cache或主存上对应的地址访问数据。
7.1 习题
题中页框号就是实页号,标记就是虚页号。
8. 指令系统
指令(又称机器指令):是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。一台计算机的所有指令的集合构成该计算机的指令系统,也称为指令集。
注:一台计算机只能执行自己指令系统中的指令,不能执行其他系统的指令。
8.1 指令格式
符号含义:(A):把 A中的数据取出来,A可能是一个地址也可能是一个寄存器,这个取出来的数据可能还是地址,也可能是数字,指令等。OP对应相关的操作。
8.2 操作数类型
一条指令通常包含操作和操作数两大部分,在汇编中指令后面通常跟着源操作数和目的操作数,例如:MOV 20000H,AX,将地址2000H送到寄存器中。
操作的类型对应汇编语言进行学习。
指令的存储方式。
9. 寻址方式
9.1 指令寻址方式
转移指令的实现方式还是要通过修改PC的值完成指令的跳转。
9.2 数据寻址方式
9.2.1 立即寻址
9.2.2 直接寻址
9.2.3 间接寻址
9.2.4 寄存器寻址
9.2.5 隐含寻址
隐含寻址:如LDA D。虽然指令中没有寄存器ACC,但其作用是(D)→ACC。ADD D+1表示把(D+1)中数据与(ACC)数据相加,再把结果存回ACC中。
9.3 偏移寻址
在进行偏移寻址时,通常要选取的寄存器(基址寄存器)隐含在操作码中,不需要特别指明。有点类似上面提到的由虚拟地址找实页号在页表中的位置的方式。
形式地址也叫偏移量。
9.4 堆栈寻址
硬堆栈:在寄存器中进行;软堆栈:在主存中进行。
上述的几种寻址方式心中有这些概念就行,不用刻意去记,在实际用到的时候就会有更深的体会。
10. CISC和RISC
CISC: Complex Instruction Set Computer(复杂指令集)
设计思路:一条指令完成一个复杂的基本功能;
代表: x86架构,主要用于笔记本、台式机等。
80-20规律:典型程序中80%的语句仅仅使用处理机中20%的指令。
RISC:Reduced Instruction Set Computer(精简指令集)
设计思路:一条指令完成一个基本“动作”;多条指令组合完成一个复杂的基本功能;
代表: ARM架构,主要用于手机、平板等。
两者的对比
11. 中央处理器
11.1 CPU功能和结构
- 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
- 操作控制。一条指令的功能往往是由若干操作信号的组合来实现的。CPU管
理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件
从而控制这些部件按指令的要求进行动作。 - 时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间
顺序提供应有的控制信号。 - 数据加工。对数据进行算术和逻辑运算。
- 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。
CPU中两大部件的功能:
运算器: 对数据进行加工;
控制器: 协调并控制计算机各部件执行程序的指令序列。
控制器基本功能包括取指令、分析指令、执行指令。
取指令: 自动形成指令地址;自动发出取指令的命令。
分析指令: 操作码译码(分析本条指令要完成什么操作);产生操作数的有效地址。
执行指令: 根据分析指令得到的“操作命令”和“操作数地址”,形成操作信号控制序列,控制运算器、存储器以及I/O设备完成相应的操作。
中断处理: 管理总线及输入输出;处理异常情况(如掉电)和特殊请求(如打印机请求打印一行字符)。
运算器的基本结构:
1.算术逻辑单元:主要功能是进行算术/逻辑运算。
2.通用寄存器组:如AX、 BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP 是堆栈指针,用于指示栈顶的
地址。
图中黑色方框部分部件对用户不可见,不能编程操作。
总得来看CPU的核心电路分为:组合逻辑电路ALU;时序电路控制单元CU;寄存器电路;中断系统(上图没有体现)。
11.2 指令执行过程
指令周期通常包括取指周期;间址周期;指令执行周期三大部分。带有中断周期的指令还有中断周期。
不同周期的识别方式是通过标志触发器FE、IND、EX、INT进行。
取指周期的任务:就是把指令取到CPU中,指令的地址放在PC里面,CPU跟存储器的交流是依靠MAR(放地址)和MDR(放数据,地址也是一种数据)。在下图第3步具体流程为:MAR存放的地址经地址总线发送到存储器,存储器这个地址中的数据经过数据总线传回MDR。
间址周期的任务就是取有效地址,有效地址是由指令的形式地址部分和寻址特征共同给出的。在下图第1步具体流程为:指令的形式地址部分放入MAR。
因为在主存中选一片区域做堆栈时,是由高地址向低地址扩增,进栈SP-1,出栈SP+1。
11.3 数据通路的功能和基本结构
数据在功能部件之间传送的路径称为数据通路,路径上的部件称为数据通路部件,如ALU、通用寄存器等。数据通路的功能是实现 CPU 内部的运算器与寄存器及寄存器之间的数据交换。
基本结构:
解释下 ((R)):R是寄存器名,里面是地址,(R)表示取出R中对应地址存放的数据,这个数据依然是一个地址,((R))表示把这个地址中的数据取出。
11.4 控制器的功能和工作原理
控制器控制外部设备首先通过地址总线定位到外部设备,再通过控制总线给出外部设备要进行的任务,之后通过数据总线进行数据交换。
通过操作码译码器将一种编码转化成一种状态。
11.4.1 微程序
微程序工作原理: 事先把微操作控制信号存储在一个专门的存储器(CPU中控制存储器)中,将每一条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,类似于寻指的方式寻址每个微程序中的微指令。
微操作指的是具体的操作过程,比如把某个存储器的某个数据放在MDR(相当于机器指令LOAD),微命令(微操作命令)指的是控制这个操作完成的控制信号,比如允许存储器允许读信号,MDR允许写信号。
取指周期微程序默认是公共的,故如果某指令系统中有n条机器指令,则控制存储器CM中微程序的个数至少是n+1个(至少有一个公共的取址周期微程序);间址周期微程序和中断周期微程序不一定是公共的。此处做成公共的,故如果这台计算机指令系统中有n条机器指令,则CM中微程序的个数是n+3个(这个3指的是:取指周期微程序、间址周期微程序、中断周期微程序)。
11.4.2 微指令编码方式
微指令的地址形成方式:
(1)直接由微指令的下地址字段指出。微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式。
(2)根据机器指令的操作码形成。当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。
11.5 指令流水线
指令流水线是为提高处理器执行指令的效率,把一条指令的操作分成多个细小的步骤,每个步骤由专门的电路完成的方式。
举个例子: 例如一条指令要执行要经过3个阶段:取指令、译码、执行,每个阶段都要花费一个机器周期,如果没有采用流水线技术,那么这条指令执行需要3个机器周期;如果采用了指令流水线技术,那么当这条指令完成“取指”后进入“译码”的同时,下一条指令就可以进行“取指”了,这样就提高了指令的执行效率。
11.5.1 性能指标
吞吐率ТP;加速比S;效率E
11.5.2 影响流水线的因素
12. 总线
总线是一组能为多个部件分时共享的公共信息传送线路。这里的线路指的是实际存在的物理电路,而前面提到的数据通路是指在指令执行的不同阶段,数据流动的路径。
为什么要用总线?
早期计算机外部设备少时大多采用分散连接方式,不易实现随时增减外部设备。为了更好地解决I/O设备和主机之间连接的灵活性问题,计算机的结构从分散连接发展为总线连接。
12.1 总线的特性
- 机械特性:尺寸、形状、管脚数、排列顺序;
- 电气特性:传输方向和有效的电平范围;
- 功能特性:每根传输线的功能(地址、数据、控制);
- 时间特性:信号的时序关系。
12.2 性能指标
- 总线的传输周期(总线周期)
一次总线操作所需的时间(包括申请阶段、寻址阶段、传输阶段和结束阶段),通常由若干个总线时钟周期构成。 - 总线时钟周期
即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。 - 总线的工作频率
总线上各种操作的频率,为总线周期的倒数。
若总线周期-N个时钟周期,则总线的工作频率=时钟频率/N. - 总线的时钟频率
即机器的时钟频率,为时钟周期的倒数。若时钟周期为T,则时钟频率为1/T。实际上指一秒内有多少个时钟周期。 - 总线宽度
又称为总线位宽,它是总线上同时能够传输的数据位数,通常是指数据总线的根数,如32根称为32位(bit)总线。 - 总线带宽
可理解为总线的数据传输率,即单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。
总线带宽=总线工作频率×总线宽度(bit/s)=总线工作频率×(总线宽度/8)(B/s)
注:总线带宽是指总线本身所能达到的最高传输速率。在计算实际的有效数据传输率时,要用实际传输的数据量除以耗时。
12.3 仲裁
总线仲裁的定义: 多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权称为总线仲裁。
为什么要仲裁?
总线作为一种共享设备,不可避免地会出现同一时刻有多个主设备竞争总线控制权的问题。
总线仲裁分类:
集中仲裁方式: 链式查询方式、 计数器定时查询方式、独立请求方式;
分布仲裁方式。
12.4 操作和定时方式
12.5 总线标准
13. I/O系统
13.1 基本结构
CPU同外设之间的信息传送实质是对接口中的某些寄存器(即端口)进行读或写。如传送数据是对数据端口DBR进行读写操作。
以控制外设输入为例:在第11步I/O接口提供给CPU中断类型号,是因为之前I/O接口发出中断请求后,CPU进行中断响应之后就不管了,所以需要这个中断类型号告诉CPU曾经发生的是一个什么中断类型。
13.2 I/O方式
13.2.1 程序查询方式
这种结构下CPU传送数据的单位为一个字,因为外设传过来的数据是放在CPU的寄存器当中的,即使外设的数据要放在主存也是经由CPU传过去,所以传送数据的大小受CPU寄存器的存储能力限制。
13.2.2 程序中断方式
程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
trap类指令用来从用户态切换到核心态。(先有个印象)
中断优先级:
1.硬件故障中断属于最高级,其次是软件中断;
2.非屏蔽中断优于可屏蔽中断;
3.DMA请求优于I/O设备传送的中断请求;
4.高速设备优于低速设备;
5.输入设备优于输出设备;
6.实时设备优于普通设备。
送中断向量就是为了找到中断服务程序的起始地址。
下图中“1”表示能屏蔽其他中断源。
13.2.2.1 习题
题中剩余5个时钟周期是用来恢复现场的。
13.2.3 DMA方式
在外设准备数据的时候,外设与CPU是并发工作,当外设准备好数据后会向CPU发出中断请求传送数据,CPU会进行处理中断隐指令和中断服务程序。这会占用CPU的时间,所以把CPU控制数据传送的过程交给一个硬件(DMA控制器)去做。
13.2.3.1 习题
计算机组成原理一篇过相关推荐
- Java架构师成长之道之计算机组成原理组成篇
Java架构师成长之道之计算机组成原理组成篇 Java架构师成长之道 2.1 计算机总线 2.1.1 总线概述 以通用串行总线USB(Universial Serial Bus)为例子来理解什么是总线 ...
- 【计算机组成原理】计算机组成原理——计算篇
计算机组成原理--计算篇 进制运算的基础 定义: 进位制是一种计数方式,又称进位计数法或位值计数法 用有限种数字符号来表示无限的数值 进位制的基数或底数:使用的数字 ...
- 计算机组成原理——组成篇
文章目录 计算机组成原理 -- 组成篇 1. 计算机的总线与I/O设备 a.计算机的总线(Bus) 1.为什么要使用总线? 2.总线的两大基本特征是什么? 3.总线分为几类? 分类: 4.系统总线按照 ...
- 详解计算机组成原理组成篇(磁盘调度算法,cache命中率,效率,平均访问时间,以及FIFO、LFU、LRU算法。拒绝挂科)
计算机组成原理组成篇 文章目录 计算机组成原理组成篇 一.计算机的总线与IO设备 1.1计算机的总线 总线的概述 总线的分类 总线仲裁 1.2计算机的输入.输出设备 常见的输入输出设备分 输入输出接口 ...
- 计算机组成原理-原理篇:指令与运算-13加法器:如何像搭乐高一样搭电路(上)?
1. 异或门和半加器 面这些门电路的标识,你需要非常熟悉,后续的电路都是由这些门电路组合起来的. 这些基本的门电路,是我们计算机硬件端的最基本的"积木",就好像乐高积木里面最简单的 ...
- 计算机主机主板单元,计算机组成原理——主板篇
微机(Micro Computer)是电子计算机中的一个分类,其他的还有巨型机.大型机.中型机和小型机.不同类型的电子计算机之间的差别主要在体积与运算速度和存储容量上划分. 微机系统由硬件系统和软件系 ...
- 计算机组成原理-入门篇-04功耗与性能
1. 功耗 我们的 CPU,一般都被叫作超大规模集成电路(Very-Large-Scale Integration,VLSI).这些电路,实际上都是一个个晶体管组合而成的.CPU 在计算,其实就是让晶 ...
- 【计算机组成原理】计算机组成原理——组成篇
计算机的总线 1.总线的作用及概述 解决设备间通讯问题. 总线是为了解决不同设备之间的通信问题. 总线可以连接CPU和IO设备. 2.总线分类:片内总线.系统总线 片内总线:连接CPU內部高速缓存.寄 ...
- 【计算机组成原理】计算机组成原理——概述篇
计算机发展历史 电子管计算机(1946年--1958年) 第一台计算机为ENIAC诞生于美国宾夕法尼亚大学 特点: 1. 集成度小,空间占用大 2. 功耗高,运行速度慢 3. 操作复杂,更换程序需要接 ...
最新文章
- cnblogs不愧为cnblogs
- android屏幕适配的目的,Android 不同分辨率下屏幕适配的实战方案与经验总结
- 使用 Swagger 文档化和定义 RESTful API
- jedis ShardedJedisPool的 HASH一致性算法(一)从String 的hashcode说起
- JS 获取当前日期时间(兼容IE FF)
- 【2015年第4期】大数据时代的数据挖掘 —— 从应用的角度看大数据挖掘(上)...
- IntelliJ IDEA 如何从SVN导入项目 怎么部署 就是路劲和tomcat配置等等 步骤希望
- 我的k8s随笔:命令实践
- HTML 5 中的新元素
- 《高性能MYSQL》
- Auto CAD:CAD软件之顶层菜单栏(文件、编辑、视图、插入、格式、绘图、标注、修改、参数、窗口、数据视图)简介之详细攻略
- android接入微信登录授权提示{errcode:40125,errmsg:invalid appsecret, view more at 。。。解决办法
- 图书馆图书搜索引擎(全球100多图书馆)
- 串口服务器调试助手使用教程,串口服务器如何配置及串口调试6大技巧
- 服务器证书如果不被网站信任怎么办?
- java里的c.gettime()什么意思_new Date().getTime() 返回的是什么
- 汽车Vin码识别/手机端扫描识别汽车车架号SDK
- @Select注解动态sql语句
- pandas取出符合条件的某单元格的值
- RS485利用地址主动仲裁驱动