《计算机组成的基本硬件设备》
《计算机组成原理 — 冯诺依曼体系结构》
《计算机组成原理 — 中央处理器》
《计算机组成原理 — 指令系统》
《计算机组成原理 — 存储系统》html
中央处理器和主存储器构成了计算机的主体,称为主机。主机之外的大部分硬件设备都称之为外部设备,简称外设或 I/O 设备,包括输入输出设备、辅助存储设备。输入输出系统就是由外设及其与主机之间的控制部件(Controller)所构成,其中控制部件常被称为设备控制器、设备适配器或 I/O 接口,主要负责控制并实现主机与外设之间的数据传输。web
设备控制器,又称硬件设备 I/O 接口,是计算机中的一个实体,其主要职责是控制一个或多个 I/O 设备,以实现 I/O 设备和主机之间的数据交换。它是 CPU 与 I/O 设备之间的接口,接收从 CPU 发来的命令,并去控制 I/O 设备工做,以使处理机(处理机包括中央处理器,主存储器,输入/输出接口)从繁杂的设备控制事务中解脱出来。三者间的逻辑关系为:CPU <==> 设备适配器 <==> 外部设备
。数据库
设备适配器的做用:express
设备适配器的接口类型:安全
设备适配器的基本功能:服务器
设备控制器构成及工做原理都与 CPU 很是类似,均由程序计数器(Program Counter)、指令寄存器(Instruction Register)、指令译码器(Instruction Decoder)、标志寄存器(Flags Register)、定时与控制电路(Programmable Logic Array)、脉冲源、中断以及堆栈等组件构成。网络
在微机和小机中的设备控制器,一般被作成印刷电路卡形式,于是也常称为接口卡,可将它插入计算机主板。最多见的外设及其设备控制器莫过于磁盘驱动器和网卡了,他们都由硬件设备和相应的 Controller 组成。例如:HDD(Hard Disk Drive)和 HDC(Hard Disk Controller)。
架构
设备控制器与 CPU 的接口:该接口用于实现 CPU 与设备控制器之间的通讯。共有三类信号线: 数据线、地址线和控制线。数据线一般与 数据寄存器 和 控制/状态寄存器 相链接。在设备控制器中有若干个此类寄存器,前者用于存放从 CPU 或外部设备送来的数据;后者用于存放从 CPU 送来的控制指令或从外部设备送来的设备的状态信息。运维
设备控制器与外部设备的接口:同一个设备控制器,能够链接一个或多个外部设备。相应地,在设备控制器中便有一个或多个接口,一个接口链接一台外部设备。在每一个接口中都存在数据、控制和状态三种类型的信号。设备控制器中的 I/O 逻辑根据处理机发来的地址信号去选择一个设备接口。分布式
I/O 逻辑:在设备控制器中的 I/O 逻辑用于实现对外部设备的控制。它经过一组控制线与处理机交互,处理机利用 I/O 逻辑向设备控制器发送 I/O 命令;I/O 逻辑对收到的命令进行译码。每当 CPU 要启动一个设备时,一方面将启动命令发送给设备控制器;另外一方面又同时经过地址线把设备地址发送给设备控制器,由控制器的 I/O 逻辑对收到的地址进行译码,再根据所译出的命令对所选外部设备进行控制。
处理机要对外设进行选择和交互,首先就要对外设进行编址。设备控制器是一个可编址的设备,当它仅控制一个设备时,它只有一个惟一的设备地址;若控制可链接多个设备时,则应含有多个设备地址,并使每个设备地址对应一个硬件设备。由此必须为每台计算机都规定一些专用于外设的地址码,称为设备代码。
根据 CPU 向外设下达指令的方式的不一样,对应有两种寻址方式:
这里的数据传输控制方式指的是外部设备与 CPU 之间的数据传输。
程序直接控制数据传输方式,由用户程序实现一段由输入输出指令和其余指令所组成的程序段直接控制外部设备的工做。数据传送时,首先由 CPU 发出设备启动指令来启动设备,而后 CPU 等待外部设备完成接收或发送数据的准备工做。在等待期间,CPU 不断的用一条测试指令检测外部设备的工做状态标志触发器,以此来肯定外部设备的状态。一旦标志触发器被置成 “完成” 状态,那么即表示能够进行数据传输。
这种数据传输方式虽然简单,但 CPU 和外部设备只能串行工做,形成了 CPU 的空转浪费,使得系统效率大大的下降了。
程序中断控制数据传输(Program Interrupt Transfer)方式,在程序中安排一条指令,发出信号启动外部设备,而后机器会继续执行原程序。当外部设备完成了数据传输的准备工做后,便会向 CPU 发送 “中断请求”(INT)信号。此时,CPU 中止正在运行的程序,转向执行 “中断服务程序”,完成传送数据的工做。一般是一个字或字节的传输,传送完毕以后再返回继续执行原程序。
这种数据传输的方式不会形成 CPU 的空转,在必定的程序上实现了 CPU 和外部设备的并行工做。此外,还能够支持多台外部设备的并行工做。若是有多台外部设备依次启动以后,它们能够同时进行数据交换的准备工做。若在某个时刻,有若干台外部设备同时发出中断请求信息到 CPU,那么 CPU 能够根据预先规定好的优先级策略来依次处理这几台外部设备的数据传输,从而实现了外部设备的并行工做。
可是,对于一些数据传输频率较高的外部设备而言,采用程序中断控制方式容易形成数据丢失。例如:磁盘设备,由于此类外部设备传输的数据是成批量的,并且单位数据之间的时间间隔较短。因此,对于面向数据块(成组数据)传输的外部设备,应该采用直接存储器存取(DMA)控制方式。
直接存储器存取(Direct Memory Access,DMA)方式的基本思想是外部设备和主存储器之间开辟直接的数据传输通路。通常状况下,总线全部的工做周期(总线周期)都用于 CPU 执行程序。DMA 控制就是当外部设备完成输入/输出数据的准备工做以后,会占用总线的一个工做周期,和主存直接交换数据。这个周期以后,CPU 又继续控制总线执行原程序。若是反复的,直到整个数据块的数据所有传输完毕。这项工做是由 I/O 系统中增设的 DMA 控制器完成的。
DMA 方式的不足之处在于对外部设备的管理和某些操做的控制仍须要 CPU 来承担。
在大型计算机系统中一般会设置专门的硬件设备来完成处理机与外部设备之间的数据传输控制,这就是 I/O 通道控制(I/O channel control)方式。I/O 通道是专门的设备,能够独立的执行使用通道命令编写的输入输出控制程序,产生相应的控制信号发送大由它管辖的外部设备,继而完成复杂的输入输出过程,有效的减轻了 CPU 的负担。
I/O 通道控制方式的不足之处在于,其仅仅是面向外部设备的控制和数据传输,对一些操做仍然须要 CPU 来完成,例如:码制转换、格式处理、数据块错误检测和纠错。所以,I/O 通道的诞生仅表明着计算机组织形式向功能分散发展的初始阶段。
外围处理机(Peripheral Processor Unit,PPU),又称输入输出处理机。顾名思义,是一个彻底独立的处理机,其结构更加接近于计算机。有了外围处理机不但能够简化设备控制器,并且还可使用外围处理机来做为维护、诊断、通讯控制、系统工做状况显示和人机联系的工做,是完全释放处理机工做负担的数据传输控制设备。在某些大型计算机系统中,设置多台外围处理机使得计算机系统结构有了质的飞跃。外围处理机标志着计算机由集中式向功能发散的分布式系统发展。
计算机的外部设备,如:网卡(网络设备器)、磁盘驱动器,CD-ROM、鼠标键盘和显示器等,都是独立的物理设备。这些外部设备和主机相连时,必须按照规定的物理互连特性,电气特性等进行链接,这些特性的技术规范称之为接口标准。
从物理结构的角度来看,以磁盘驱动器为例,它经过电缆与磁盘控制器(磁盘适配器)相连,磁盘控制器插在主板上的插槽中,这个设配器就是磁盘驱动器的接口卡。磁盘设配器一方面经过插槽背面的引线与 CPU 相连,符合主机的系统总线规范;另外一方面与磁盘驱动器相连,符合外部设备接口规范。
ATA(Advanced Technology Attachment, 高级技术附加装置)起源于 IBM,是一个单纯的磁盘驱动器接口,不支持其余的接口设备,适配的是 IDE(Integrated Drive Electronics,电子集成驱动器)磁盘驱动器。IDE 接口,也称为 PATA(Parallel ATA,并行 ATA)接口,意在把磁盘控制器和磁盘驱动器集成到了一块儿,这种作法减小了磁盘接口的电缆数目与长度,数据传输的可靠性获得了加强,磁盘制造起来也变得更容易,由于厂商不须要担忧本身的磁盘驱动器是否与其它厂商的磁盘控制器兼容。对用户而言,磁盘安装起来也更为方便。
IDE 具备价格低廉,兼容性强,性价比高,数据传输慢,不支持热插拔等特色,多用于家用产品中,也有部分应用于服务器。ATA、Ultra ATA、DMA、Ultra DMA 等接口都属于 IDE 硬盘。
SATA(Serial ATA,串行 ATA),又叫串口磁盘,是一个串行点对点链接系统,支持热插拔,支持主机与每一个磁盘驱动器之间拥有单独的链接路径,每一个磁盘驱动器均可以独享所有带宽。SATA 在机柜内部链接外部设备,而 eSATA 是外置式的 SATA 接口。
SATA 是一种彻底不一样于 Parallel ATA 的新型磁盘接口类型,因为采用串行方式传输数据而知名。相对于 Parallel ATA 而言,就具备很是多的优点。首先,SATA 以连续串行的方式传送数据,一次只会传送 1 位数据。这样能减小 SATA 接口的针脚数目,使链接电缆数目变少,效率也会更高。实际上,SATA 仅用四支针脚就能完成全部的工做,分别用于链接电缆、链接地线、发送数据和接收数据,同时这样的架构还能下降系统能耗和减少系统复杂性。其次,SATA 的起点更高、发展潜力更大,SATA 1.0 定义的数据传输率可达 150MB/s,这比目前最新的 Parallel ATA(即 ATA/133)所能达到 133MB/s 的最高数据传输率还高,而在 SATA 2.0 的数据传输率将达到 300MB/s,最终 SATA 将实现 600MB/s 的最高数据传输率。SATA 总线使用嵌入式时钟信号,具备更强的纠错能力,与 ATA 相比其最大的区别在于能对传输指令(不只仅是数据)进行检查,若是发现错误会自动矫正,这在很大程度上提升了数据传输的可靠性。串行接口还具备结构简单、支持热插拔的优势。
SCSI(Small Computer System Interface,小型计算机系统接口)是当前流行的用于服务器和微机的外部设备接口标准,目前的计算机基本都设置了 SCSI 接口,若是没有的话就须要一块专门的 SCSI 适配器卡,完成主机总线到 SCSI 总线的跨接,不一样的主机总线对应不一样的适配器。SCSI 设备与主机之间以 DMA 的方式传输数据库,SCSI 适配器中整合了主机通讯的指令,下降了系统 I/O 处理对主机 CPU 的占用率。
与 IDE 不一样,IDE 接口是普通 PC 的标准接口,而 SCSI 并非专门为硬盘设计的接口,是一种普遍应用于小型机上的高速数据传输技术。不只能够控制磁盘驱动器,还能够控制磁带机、光盘、打印机和扫描仪等外设。因为设备中包括了控制器,设备的功能更复杂,于是称为智能外设。SCSI 接口具备应用范围广、多任务、带宽大、CPU 占用率低,以及热插拔等优势,但也拥有较高的价格。
SAS(Serial attached SCSI,串行 SCSI),向下兼容并行 SATA,两种运行相同的指令集,在物理链接接口上提供了对 SATA 的支持,即二者可使用相相似的电缆。从接口标准上而言,SATA 是 SAS 的一个子标准,SAS 吸取了 FC(光纤通道)的特色,所以 SAS 控制器能够直接操控 SATA 硬盘,可是 SAS 却不能直接使用在 SATA 的环境中,由于 SATA 控制器并不能对 SAS 硬盘进行控制。
在协议层,SAS 由 3 种类型协议组成,根据链接的不一样设备使用相应的协议进行数据传输。其中 SSP(串行 SCSI 协议)用于传输 SCSI 命令,SMP(SCSI 管理协议)用于对链接的设备进行维护和管理,STP(SATA 通道协议)用于 SAS 和 SATA 之间数据的传输。在这 3 种协议的配合下,SAS 能够和 SATA 以及部分 SCSI 设备无缝结合。此外,与并行方式相比,串行方式能提供更快速的通讯传输速度以及更简易的配置,SAS 的传输速率要比 SATA 快得多。SAS 为服务器和网络存储等应用提供了更大的选择空间。
iSCSI(Internet SCSI)是运行在 TCP/IP 网络上的 SCSI,iSCSI 使得标准的 SCSI 指令可以在 TCP/IP 网络上的主机与网络存储设备之间传送,也能够在系统之间传送。而 SCSI 协议只能访问本地的 SCSI 设备。
iSCSI 的工做原理:当 iSCSI Initiator(终端用户)发送一个请求后,操做系统会产生一个适当的 SCSI 指令和数据请求,SCSI 指令经过封装被加上了 TCP/IP 协议的包头,并支持在须要加密的时候执行加密处理。封装后的 SCSI 指令数据包得以在 Internet 上传送,以此突破了物理空间的限制。iSCSI Target(接收端)在收到这个数据包以后按照相反的步骤进行解析得出 SCSI 指令和数据请求,再交由 SCSI 存储设备驱动程序处理。由于 iSCSI 是双向的协议,因此 iSCSI Target 能够将数据(执行结果)返回给 iSCSI Initiator。
FC(Fibre Channel,光纤通道),与 SCSI 接口同样,光纤通道最初也不是专为磁盘驱动器所设计的接口技术,而是专门为网络系统设计的。但随着存储系统对速度的需求日益增加,FC 才逐渐应用被到磁盘存储系统中。光纤通道磁盘是为提升多磁盘存储系统的速度和灵活性才开发的,它的出现大大提升了多磁盘系统的通讯速度。FC 具备热插拔性、高速带宽、远程链接、链接设备数量大等特色,是为了服务器此类多磁盘系统环境而设计的,可以知足高端工做站、服务器、海量存储子网络、外设间经过集线器、交换机和点对点链接进行双向、串行数据通信等系统对高数据传输率的要求。
RDMA(Remote DMA,远程直接内存访问)是一种新的内存访问技术,RDMA 让计算机能够直接存取其余计算机的内存,而不须要通过处理器耗时的处理。RDMA 将数据从一个系统快速移动到远程系统存储器中,而不对操做系统形成任何影响。RDMA 技术的原理及其与 TCP/IP 架构的对好比下图所示。
所以,RDMA 能够简单理解为利用相关的硬件和网络技术,服务器 1 的网卡能够直接读写服务器 2 的内存,最终达到高带宽、低延迟和低资源利用率的效果。以下图所示,应用程序不须要参与数据传输过程,只须要指定内存读写地址,开启传输并等待传输完成便可。
RDMA 的主要优点总结以下:
这么多优点总结起来就是提升处理效率,减低时延。
实际上 RDMA 并不是最近几年才提出,事实上最先实现 RDMA 的网络协议 InfiniBand 早已应用到了高性能计算中。可是 InfinBand 和传统 TCP/IP 网络相比区别很是大,须要专用的硬件设备,承担昂贵的价格,而且会大大增长运维人力成本。
目前支持以太网的 RDMA 协议主要是 RoCE(RDMA over Converged Ethernet)和 iWARP(Internet Wide Area RDMA Protocol),系统部同窗经过性能、可用性等多方面的调研后,最终引入了 RoCE 网络。RoCE 和 InfiniBand 的性能基本相近,并且比 iWARP 产业生态更加健全,主流网卡厂商都已支持。除此以外,RoCE 网络在数据链路层支持标准以太网协议,在网络层上支持 IP 协议,所以能够无缝融合到现有的 IDC 环境中,部署方便;其次因为 RoCE 网络支持标准以太网和IP协议,更加方便运维,并且设备成本更低。
近几年存储行业发生了翻天覆地的变化,半导体存储登上了历史的舞台。和传统磁盘存储介质相比,半导体存储介质具备自然的优点。不管在可靠性、性能、功耗等方面都远远超越传统磁盘。SSD 存储介质和接口技术一直处于不断向前发展和演进的过程。SSD 分为几个阶段,第一个阶段是 SATA SSD 或者 SATA/SAS SSD 为主导,这个阶段介质以 SLC 和 eMLC 为主。第二个阶段是 PCIe SSD,PCIe SSD 最大的问题是不标准,不少私有化协议各自为政,基于 FTL 位置不一样主要分为 Host based SSD 和 Device base SSD。 直到 NVMe 时代才统一了接口和协议标准,NVMe 主要的产品形态有三大类。第一类是和 SATA/SAS SS D兼容的 U.2,第二类是和 PCIe 兼容的 SSD 卡,第三类消费级产品经常使用的 M.2。
目前经常使用的半导体存储介质是 NVMe SSD,采用 PCIe 接口方式与主机进行交互,大大提高了性能,释放了存储介质自己的性能。NVMe SSD 推动了数据中心闪存化进程。
NVM Express(NVMe,Non-Volatile Memory express,非易失性内存主机控制器接口规范),是一个逻辑设备的接口规范。他是与 AHCI 相似的、基于设备逻辑接口的总线传输协议规范(至关于通信协议中的应用层),用于访问经过 PCI-Express(PCIe)总线附加的非易失性内存介质,虽然理论上不必定要求 PCIe 总线协议。
此规范目的在于充分利用 PCI-E 通道的低延时以及并行性,还有当代处理器、平台与应用的并行性,在可控制的存储成本下,极大的提高固态硬盘的读写性能,下降因为 AHCI 接口带来的高延时,完全解放 SATA 时代固态硬盘的极致性能。
历史上,大多数 SSD 使用如 SATA、SAS 或光纤通道等接口与计算机接口的总线链接。随着固态硬盘在大众市场上的流行,SATA 已成为我的电脑中链接 SSD 的最典型方式;可是,SATA 的设计主要是做为机械硬盘驱动器(HDD)的接口,并随着时间的推移愈来愈难知足速度日益提升的 SSD。随着在大众市场的流行,许多固态硬盘的数据速率提高已经放缓。不一样于机械硬盘,部分 SSD 已受到 SATA 最大吞吐量的限制。
在 NVMe 出现以前,高端 SSD 只得以采用 PCI Express 总线制造,但需使用非标准规范的接口。若使用标准化的 SSD 接口,操做系统只须要一个驱动程序就能使用匹配规范的全部 SSD。这也意味着每一个 SSD 制造商没必要用额外的资源来设计特定接口的驱动程序。2015 年 11 月,发布了 “NVM Express 管理接口规范” (NVMe),为非用户组件和系统提供了带外管理。NVMe 提供了一个通用的基线管理功能,它能够跨越全部的 NVMe 设备和系统,以及实现可选特性的一致方法。命令包括查询和设置配置、获取子系统的健康、固件管理、命名空间管理、安全管理等。
NVMe 的优点:
目前 NVMe SSD 主流采用的存储介质是 NAND Flash。最近几年 NAND Flash 技术快速发展,主要发展的思路有两条:
纵观 SSD 发展,NVMe 的出现虽然对接口标准和数据传输效率上获得了跨越式的提高,可是存储介质目前主流仍是基于 NAND Flash 实现。那再往前发展,存储介质应该怎么发展呢?Intel Optane(傲腾)系列硬盘经过实践证实 NVMe 和 SCM(Storage Class Memory)配对时才会显现更大的存储优点,在不少时候也把 SCM 称为 VNM,那时数据存储将会迎来重大飞跃,NVMe 的将来属于 SCM。它将创建在行业协议标准而不是专有技术之上。
扩展阅读:《联通沃云虚拟机扩展内存技术的方法验证研究》
详细请浏览:https://mp.weixin.qq.com/s/cj0bfggzSSUrDT2WMOYASw