计算机组成原理 — 输入输出系统

目录

文章目录

  • 目录
  • 前言列表
  • 输入输出系统
  • 设备控制器
    • 设备控制器的组成
    • 外部设备的编址方式
    • 数据传输控制方式
      • 程序直接控制
      • 程序中断控制
      • 直接存储器存取(DMA)控制
      • I/O 通道控制
      • 外围处理机控制
  • 外设接口
    • 磁盘控制器接口类型
      • ATA(IDE)
      • SATA 与 eSATA
      • SCSI
      • SAS
      • iSCSI
      • FC
      • RDMA
      • NVMe

前言列表

《计算机组成的基本硬件设备》
《计算机组成原理 — 冯诺依曼体系结构》
《计算机组成原理 — 中央处理器》
《计算机组成原理 — 指令系统》
《计算机组成原理 — 存储系统》

输入输出系统

中央处理器和主存储器构成了计算机的主体,称为主机。主机以外的大部分硬件设备都称之为外部设备,简称外设或 I/O 设备,包括输入输出设备、辅助存储设备。输入输出系统就是由外设及其与主机之间的控制部件(Controller)所构成,其中控制部件常被称为设备控制器、设备适配器或 I/O 接口,主要负责控制并实现主机与外设之间的数据传输

设备控制器

设备控制器,又称硬件设备 I/O 接口,是计算机中的一个实体,其主要职责是控制一个或多个 I/O 设备,以实现 I/O 设备和主机之间的数据交换。它是 CPU 与 I/O 设备之间的接口,接收从 CPU 发来的命令,并去控制 I/O 设备工作,以使处理机(处理机包括中央处理器,主存储器,输入/输出接口)从繁杂的设备控制事务中解脱出来。三者间的逻辑关系为:CPU <==> 设备适配器 <==> 外部设备

设备适配器的作用

  1. 实现主机和外设之间的数据传输。其中包括设备选择、数据传达、同步控制和中断控制。
  2. 实现数据缓冲。使主机和外设之间的处理速度尽量能够保持一致。数据传输时,先将数据送入数据缓冲寄存器,然后再送到目的外设或主机。
  3. 提供外设接口状态,接收主机的指令并按照指令控制外设

设备适配器的接口类型

  • 按照数据传输的宽度可以分为:
    • 并行接口:外设和接口都是将一个字节(或字)的所有位同时传输的。
    • 串行接口:外设和接口间的数据是一位一位串行传输的,而接口和主机之间是按字节(或字)并行传输的,所以接口要完成串行大并行的数据格式转换。
  • 按照数据控制方式可以分为:
    • 程序控制输入输出接口
    • 程序中断输入输出接口
    • 直接存储器存取(DMA)接口

设备适配器的基本功能

  • 接收和识别命令:CPU 可以向设备控制器发送多种不同的命令,设备控制器能够接收并识别这些命令。例如,磁盘控制器可以接收 CPU 发来的 Read、Write、Format 等 15 条不同的命令,而且有些命令还会带有参数。所以,在磁盘控制器中会存在指令寄存器指令译码器等,用来存放接收的指令和参数,并对所接收的指令进行译码。
  • 地址识别:就像内存中的每一个单元都有一个地址一样,系统中的每一个设备也都有一个地址,而设备控制器又必须能够识别它所控制的每个设备的地址。此外,为使 CPU 能对寄存器存取数据,这些寄存器都应具有唯一的地址。例如,在 IB-MPC 机中规定,磁盘控制器中各寄存器的地址分别为 320~32F 之一。控制器应能正确识别这些地址,为此,在控制器中应配置地址译码器
  • 数据交换:指实现 CPU 与硬件控制器之间、硬件控制器与外部设备之间的数据交换。对于前者,是通过数据总线完成的,由 CPU 并行地把数据写入硬件控制器,或从硬件控制器中并行地读取数据;对于后者,是外部设备将数据输入到硬件控制器,或从硬件控制器传送给外部设备。为此,在控制器中须设置数据寄存器
  • 标识和报告设备的状态:控制器应记下设备的状态供 CPU 了解。例如,仅当该设备处于发送就绪状态时,CPU 才能启动控制器从设备中读出数据。为此,在控制器中应设置状态寄存器,用其中的每一位来反映设备的某一种状态。当 CPU 将该寄存器的内容读入后,便可了解该设备的状态。
  • 数据缓冲:由于 I/O 设备的速率较低而 CPU 和内存的速率却很高,故在硬件控制器中必须设置数据缓冲寄存器。在输出时,用此缓冲器暂存由主机高速传来的数据,然后才以 I/O 设备所具有的速率将缓冲器中的数据传送给 I/O 设备;在输入时,缓冲器则用于暂存从 I/O 设备送来的数据,待接收到一批数据后,再将缓冲器中的数据高速地传送给主机。
  • 差错控制:设备控制器还负责对由 I/O 设备传送来的数据进行差错检测。若发现传送中出现了错误,通常是将差错检测码置位,并向CPU报告,于是CPU将本次传送来的数据作废,并重新进行一次传送。这样便可保证数据输入的正确性。

设备控制器的组成

设备控制器构成及工作原理都与 CPU 非常相似,均由程序计数器(Program Counter)、指令寄存器(Instruction Register)、指令译码器(Instruction Decoder)、标志寄存器(Flags Register)、定时与控制电路(Programmable Logic Array)、脉冲源、中断以及堆栈等组件构成。

在微机和小机中的设备控制器,通常被做成印刷电路卡形式,因而也常称为接口卡,可将它插入计算机主板。最常见的外设及其设备控制器莫过于磁盘驱动器和网卡了,他们都由硬件设备和相应的 Controller 组成。例如:HDD(Hard Disk Drive)和 HDC(Hard Disk Controller)。
计算机组成原理 — 输入输出系统_第1张图片

设备控制器与 CPU 的接口:该接口用于实现 CPU 与设备控制器之间的通信。共有三类信号线: 数据线、地址线和控制线。数据线通常与 数据寄存器控制/状态寄存器 相连接。在设备控制器中有若干个此类寄存器,前者用于存放从 CPU 或外部设备送来的数据;后者用于存放从 CPU 送来的控制指令或从外部设备送来的设备的状态信息。

设备控制器与外部设备的接口:同一个设备控制器,可以连接一个或多个外部设备。相应地,在设备控制器中便有一个或多个接口,一个接口连接一台外部设备。在每个接口中都存在数据、控制和状态三种类型的信号。设备控制器中的 I/O 逻辑根据处理机发来的地址信号去选择一个设备接口。

I/O 逻辑:在设备控制器中的 I/O 逻辑用于实现对外部设备的控制。它通过一组控制线与处理机交互,处理机利用 I/O 逻辑向设备控制器发送 I/O 命令;I/O 逻辑对收到的命令进行译码。每当 CPU 要启动一个设备时,一方面将启动命令发送给设备控制器;另一方面又同时通过地址线把设备地址发送给设备控制器,由控制器的 I/O 逻辑对收到的地址进行译码,再根据所译出的命令对所选外部设备进行控制。

外部设备的编址方式

处理机要对外设进行选择和交互,首先就要对外设进行编址。设备控制器是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;若控制可连接多个设备时,则应含有多个设备地址,并使每一个设备地址对应一个硬件设备。由此必须为每台计算机都规定一些专用于外设的地址码,称为设备代码。

根据 CPU 向外设下达指令的方式的不同,对应有两种寻址方式

  1. CPU 提供专设的 I/O 指令,这些 I/O 指令的地址码字段直接就给出了外设的设备代码。
  2. 利用访存(取数/存数)指令来完成 I/O 功能。从主存的地址空间中分出了一部分地址码作为外设的设备代码,这些地址码指向了设备相应的数据缓冲寄存器或设备状态寄存器。IBM PC 系列计算机的 CPU 就设置了专门的 I/O 指令,外设的编址可达 512 个,每一台外设占用了若干个地址码,分别于用于表示设备适配器中各个寄存器的地址,各个寄存器的地址码具有唯一性。

数据传输控制方式

这里的数据传输控制方式指的是外部设备与 CPU 之间的数据传输。

程序直接控制

程序直接控制数据传输方式,由用户程序实现一段由输入输出指令和其他指令所组成的程序段直接控制外部设备的工作。数据传送时,首先由 CPU 发出设备启动指令来启动设备,然后 CPU 等待外部设备完成接收或发送数据的准备工作。在等待期间,CPU 不断的用一条测试指令检测外部设备的工作状态标志触发器,以此来确定外部设备的状态。一旦标志触发器被置成 “完成” 状态,那么即表示可以进行数据传输。

这种数据传输方式虽然简单,但 CPU 和外部设备只能串行工作,造成了 CPU 的空转浪费,使得系统效率大大的降低了。

程序中断控制

程序中断控制数据传输(Program Interrupt Transfer)方式,在程序中安排一条指令,发出信号启动外部设备,然后机器会继续执行原程序。当外部设备完成了数据传输的准备工作后,便会向 CPU 发送 “中断请求”(INT)信号。此时,CPU 停止正在运行的程序,转向执行 “中断服务程序”,完成传送数据的工作。通常是一个字或字节的传输,传送完毕之后再返回继续执行原程序

这种数据传输的方式不会造成 CPU 的空转,在一定的程序上实现了 CPU 和外部设备的并行工作。此外,还可以支持多台外部设备的并行工作。如果有多台外部设备依次启动之后,它们可以同时进行数据交换的准备工作。若在某个时刻,有若干台外部设备同时发出中断请求信息到 CPU,那么 CPU 可以根据预先规定好的优先级策略来依次处理这几台外部设备的数据传输,从而实现了外部设备的并行工作。

但是,对于一些数据传输频率较高的外部设备而言,采用程序中断控制方式容易造成数据丢失。例如:磁盘设备,因为此类外部设备传输的数据是成批量的,而且单位数据之间的时间间隔较短。所以,对于面向数据块(成组数据)传输的外部设备,应该采用直接存储器存取(DMA)控制方式。

直接存储器存取(DMA)控制

直接存储器存取(Direct Memory Access,DMA)方式的基本思想是外部设备和主存储器之间开辟直接的数据传输通路。一般情况下,总线所有的工作周期(总线周期)都用于 CPU 执行程序。DMA 控制就是当外部设备完成输入/输出数据的准备工作之后,会占用总线的一个工作周期,和主存直接交换数据。这个周期之后,CPU 又继续控制总线执行原程序。如果反复的,直到整个数据块的数据全部传输完毕。这项工作是由 I/O 系统中增设的 DMA 控制器完成的。

DMA 方式的不足之处在于对外部设备的管理和某些操作的控制仍需要 CPU 来承担。

I/O 通道控制

在大型计算机系统中通常会设置专门的硬件设备来完成处理机与外部设备之间的数据传输控制,这就是 I/O 通道控制(I/O channel control)方式。I/O 通道是专门的设备,可以独立的执行使用通道命令编写的输入输出控制程序,产生相应的控制信号发送大由它管辖的外部设备,继而完成复杂的输入输出过程,有效的减轻了 CPU 的负担。

I/O 通道控制方式的不足之处在于,其仅仅是面向外部设备的控制和数据传输,对一些操作仍然需要 CPU 来完成,例如:码制转换、格式处理、数据块错误检测和纠错。因此,I/O 通道的诞生仅代表着计算机组织形式向功能分散发展的初始阶段。

外围处理机控制

外围处理机(Peripheral Processor Unit,PPU),又称输入输出处理机。顾名思义,是一个完全独立的处理机,其结构更加接近于计算机。有了外围处理机不但可以简化设备控制器,而且还可以使用外围处理机来作为维护、诊断、通信控制、系统工作情况显示和人机联系的工作,是彻底释放处理机工作负担的数据传输控制设备。在某些大型计算机系统中,设置多台外围处理机使得计算机系统结构有了质的飞跃。外围处理机标志着计算机由集中式向功能发散的分布式系统发展。

外设接口

计算机的外部设备,如:网卡(网络设备器)、磁盘驱动器,CD-ROM、鼠标键盘和显示器等,都是独立的物理设备。这些外部设备和主机相连时,必须按照规定的物理互连特性,电气特性等进行连接,这些特性的技术规范称之为接口标准

从物理结构的角度来看,以磁盘驱动器为例,它通过电缆与磁盘控制器(磁盘适配器)相连,磁盘控制器插在主板上的插槽中,这个设配器就是磁盘驱动器的接口卡。磁盘设配器一方面通过插槽背面的引线与 CPU 相连,符合主机的系统总线规范;另一方面与磁盘驱动器相连,符合外部设备接口规范。

  • 主板上的磁盘控制器接口
    计算机组成原理 — 输入输出系统_第2张图片
  • 电缆
    计算机组成原理 — 输入输出系统_第3张图片
  • 磁盘驱动器
    计算机组成原理 — 输入输出系统_第4张图片

磁盘控制器接口类型

ATA(IDE)

ATA(Advanced Technology Attachment, 高级技术附加装置)起源于 IBM,是一个单纯的磁盘驱动器接口,不支持其他的接口设备,适配的是 IDE(Integrated Drive Electronics,电子集成驱动器)磁盘驱动器。IDE 接口,也称为 PATA(Parallel ATA,并行 ATA)接口,意在把磁盘控制器和磁盘驱动器集成到了一起,这种做法减少了磁盘接口的电缆数目与长度,数据传输的可靠性得到了增强,磁盘制造起来也变得更容易,因为厂商不需要担心自己的磁盘驱动器是否与其它厂商的磁盘控制器兼容。对用户而言,磁盘安装起来也更为方便。

IDE 具有价格低廉,兼容性强,性价比高,数据传输慢,不支持热插拔等特点,多用于家用产品中,也有部分应用于服务器。ATA、Ultra ATA、DMA、Ultra DMA 等接口都属于 IDE 硬盘。

计算机组成原理 — 输入输出系统_第5张图片
计算机组成原理 — 输入输出系统_第6张图片

SATA 与 eSATA

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 相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。

计算机组成原理 — 输入输出系统_第7张图片
计算机组成原理 — 输入输出系统_第8张图片

SCSI

SCSI(Small Computer System Interface,小型计算机系统接口)是当前流行的用于服务器和微机的外部设备接口标准,目前的计算机基本都设置了 SCSI 接口,如果没有的话就需要一块专门的 SCSI 适配器卡,完成主机总线到 SCSI 总线的跨接,不同的主机总线对应不同的适配器。SCSI 设备与主机之间以 DMA 的方式传输数据库,SCSI 适配器中整合了主机通信的指令,降低了系统 I/O 处理对主机 CPU 的占用率。

与 IDE 不同,IDE 接口是普通 PC 的标准接口,而 SCSI 并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。不仅可以控制磁盘驱动器,还可以控制磁带机、光盘、打印机和扫描仪等外设。由于设备中包括了控制器,设备的功能更复杂,因而称为智能外设。SCSI 接口具有应用范围广、多任务、带宽大、CPU 占用率低,以及热插拔等优点,但也拥有较高的价格。

计算机组成原理 — 输入输出系统_第9张图片
计算机组成原理 — 输入输出系统_第10张图片

SAS

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 为服务器和网络存储等应用提供了更大的选择空间。

计算机组成原理 — 输入输出系统_第11张图片
计算机组成原理 — 输入输出系统_第12张图片

iSCSI

iSCSI(Internet SCSI)是运行在 TCP/IP 网络上的 SCSI,iSCSI 使得标准的 SCSI 指令能够在 TCP/IP 网络上的主机与网络存储设备之间传送,也可以在系统之间传送。而 SCSI 协议只能访问本地的 SCSI 设备。
计算机组成原理 — 输入输出系统_第13张图片
iSCSI 的工作原理:当 iSCSI Initiator(终端用户)发送一个请求后,操作系统会产生一个适当的 SCSI 指令和数据请求,SCSI 指令通过封装被加上了 TCP/IP 协议的包头,并支持在需要加密的时候执行加密处理。封装后的 SCSI 指令数据包得以在 Internet 上传送,以此突破了物理空间的限制。iSCSI Target(接收端)在收到这个数据包之后按照相反的步骤进行解析得出 SCSI 指令和数据请求,再交由 SCSI 存储设备驱动程序处理。因为 iSCSI 是双向的协议,所以 iSCSI Target 可以将数据(执行结果)返回给 iSCSI Initiator。

FC

FC(Fibre Channel,光纤通道),与 SCSI 接口一样,光纤通道最初也不是专为磁盘驱动器所设计的接口技术,而是专门为网络系统设计的。但随着存储系统对速度的需求日益增长,FC 才逐渐应用被到磁盘存储系统中。光纤通道磁盘是为提高多磁盘存储系统的速度和灵活性才开发的,它的出现大大提高了多磁盘系统的通信速度。FC 具有热插拔性、高速带宽、远程连接、连接设备数量大等特点,是为了服务器此类多磁盘系统环境而设计的,能够满足高端工作站、服务器、海量存储子网络、外设间通过集线器、交换机和点对点连接进行双向、串行数据通讯等系统对高数据传输率的要求。

计算机组成原理 — 输入输出系统_第14张图片

RDMA

RDMA(Remote DMA,远程直接内存访问)是一种新的内存访问技术,RDMA 让计算机可以直接存取其他计算机的内存,而不需要经过处理器耗时的处理。RDMA 将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响。RDMA 技术的原理及其与 TCP/IP 架构的对比如下图所示。

计算机组成原理 — 输入输出系统_第15张图片

  • InfiniBand(IB):从一开始就支持 RDMA 的新一代网络协议。由于这是一种新的网络技术,因此需要支持该技术的网卡和交换机。
  • RDMA 融合以太网(RoCE):一种允许通过以太网进行 RDMA 的网络协议。其较低的网络头是以太网头,其上网络头(包括数据)是 InfiniBand 头。这允许在标准以太网基础架构(交换机)上使用 RDMA。只有 NIC 应该是特殊的,并支持 RoCE。
  • 互联网广域 RDMA 协议(iWARP):允许通过 TCP 执行 RDMA 的网络协议。在 IB 和 RoCE 中存在功能,iWARP 不支持这些功能。这允许在标准以太网基础架构(交换机)上使用 RDMA。只有 NIC 应该是特殊的,并支持 iWARP(如果使用 CPU 卸载),否则所有 iWARP 堆栈都可以在 SW 中实现,并且丢失了大部分的 RDMA 性能优势。

因此,RDMA 可以简单理解为利用相关的硬件和网络技术,服务器 1 的网卡可以直接读写服务器 2 的内存,最终达到高带宽、低延迟和低资源利用率的效果。如下图所示,应用程序不需要参与数据传输过程,只需要指定内存读写地址,开启传输并等待传输完成即可。

计算机组成原理 — 输入输出系统_第16张图片

RDMA 的主要优势总结如下:

  • Zero-Copy:数据不需要在网络协议栈的各个层之间来回拷贝,这缩短了数据流路径。
  • Kernel-Bypass:应用直接操作设备接口,不再经过系统调用切换到内核态,没有内核切换开销。
  • None-CPU:数据传输无须 CPU 参与,完全由网卡搞定,无需再做发包收包中断处理,不耗费 CPU 资源。

计算机组成原理 — 输入输出系统_第17张图片
这么多优势总结起来就是提高处理效率,减低时延。

实际上 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协议,更加方便运维,而且设备成本更低。

NVMe

近几年存储行业发生了翻天覆地的变化,半导体存储登上了历史的舞台。和传统磁盘存储介质相比,半导体存储介质具有天然的优势。无论在可靠性、性能、功耗等方面都远远超越传统磁盘。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。
计算机组成原理 — 输入输出系统_第18张图片
目前常用的半导体存储介质是 NVMe SSD,采用 PCIe 接口方式与主机进行交互,大大提升了性能,释放了存储介质本身的性能。NVMe SSD 推进了数据中心闪存化进程。
计算机组成原理 — 输入输出系统_第19张图片
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 可以把最大队列深度从 32 提升到 64000,SSD 的 IOPS 能力也会得到大幅提升;
  • 自动功耗状态切换和动态能耗管理功能大大降低功耗;
  • NVMe 标准的出现解决了不同 PCIe SSD 之间的驱动适用性问题。

目前 NVMe SSD 主流采用的存储介质是 NAND Flash。最近几年 NAND Flash 技术快速发展,主要发展的思路有两条:

  1. 通过 3D 堆叠的方式增加 NAND Flash 的存储密度;
  2. 通过增加单 Cell 比特数来提升 NAND Flash 的存储密度。

纵观 SSD 发展,NVMe 的出现虽然对接口标准和数据传输效率上得到了跨越式的提升,但是存储介质目前主流还是基于 NAND Flash 实现。那再往前发展,存储介质应该怎么发展呢?Intel Optane(傲腾)系列硬盘通过实践证明 NVMe 和 SCM(Storage Class Memory)配对时才会显现更大的存储优势,在很多时候也把 SCM 称为 VNM,那时数据存储将会迎来重大飞跃,NVMe 的未来属于 SCM。它将建立在行业协议标准而不是专有技术之上。

扩展阅读:《联通沃云虚拟机扩展内存技术的方法验证研究》

详细请浏览:https://mp.weixin.qq.com/s/cj0bfggzSSUrDT2WMOYASw

你可能感兴趣的:(计算机组成原理 — 输入输出系统)