《计算机组成的基本硬件设备》
《计算机组成原理 — 冯诺依曼体系结构》
《计算机组成原理 — 中央处理器》
《计算机组成原理 — 指令系统》
《计算机组成原理 — 存储系统》
中央处理器和主存储器构成了计算机的主体,称为主机。主机以外的大部分硬件设备都称之为外部设备,简称外设或 I/O 设备,包括输入输出设备、辅助存储设备。输入输出系统就是由外设及其与主机之间的控制部件(Controller)所构成,其中控制部件常被称为设备控制器、设备适配器或 I/O 接口,主要负责控制并实现主机与外设之间的数据传输。
设备控制器,又称硬件设备 I/O 接口,是计算机中的一个实体,其主要职责是控制一个或多个 I/O 设备,以实现 I/O 设备和主机之间的数据交换。它是 CPU 与 I/O 设备之间的接口,接收从 CPU 发来的命令,并去控制 I/O 设备工作,以使处理机(处理机包括中央处理器,主存储器,输入/输出接口)从繁杂的设备控制事务中解脱出来。三者间的逻辑关系为:CPU <==> 设备适配器 <==> 外部设备
。
设备适配器的作用:
设备适配器的接口类型:
设备适配器的基本功能:
设备控制器构成及工作原理都与 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