当前位置:文档之家› SATA及ADMA控制器Linux操作系统驱动的设计与实现

SATA及ADMA控制器Linux操作系统驱动的设计与实现

上海交通大学

硕士学位论文

SATA及ADMA控制器Linux操作系统驱动的设计与实现

姓名:孙文波

申请学位级别:硕士

专业:软件工程

指导教师:尤晋元

20050218

上海交通大学

学位论文原创性声明

本人郑重声明是本人在导师的指导下

除文中已经注明引用的内容外

对本文的研究做出重要贡献的个人和集体

本人完全意识到本声明的法律结果由本人承担

孙文波

日期

上海交通大学

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留

同意学校保留并向国家有关部门或机构送交论文的复印件和电子版

本人授权上海交通大学可以将本学位论文的全部或部分内容编入有关数据库进行检索缩印或扫描等复制手段保存和汇编本学位论文

 本学位论文属于 

不保密

请在以上方框内打 

 

 

 

 

 

学位论文作者签名 

尤晋元 孙文波

日期 2005年 2 月 18 日

 

 

SATA及ADMA控制器Linux操作系统驱动的设计与实现 

摘要

 

 

信息时代为了进一步满足企业及个人用户对存储系统产品的高性能及低费用的双重需求

 

本文正是针对上述需求

该存储系统硬件上采用SATA 磁盘及SATA 控制器含ADMA功能涉及IDE/ATA和SCSI总线技术及协议则还要在驱动的上层实现iSCSI技术

本文的重心在于如何驱动SATA磁盘及ADMA控制器并实现一些关键功能 

实验结果表明对于大批量数据存取

并且也不逊色于采用SCSI磁盘的高端存储系统在数据存取速度上赶超SCSI也不是没有可能同时基于SATA的存储系统也将会向用户提供更好的性价比

本文探讨了基于本系统ADMA控制器以及驱动软件

iSCSI网络存储及TOE技术的存储

系统产品开发

 

关键词SCSI子系统及总线NCQ

热插拔 

Abstract

At the age of information, it’s very important for the local or remote data storage and backup. Now, for meeting farther the needs of enterprise and individual on the storage system product that is high performance and low cost, the development of storage system product has formed a great power based on SATA hard-disk.

In order for the above needs, in this paper, the OS device driver of a new storage peripheral has been designed and implemented, in this storage system, the hardware adopts SATA hard-disk and SATA Controller (i.e. ADMA Controller, including the ADMA ), for the development of software, the Linux OS is used, involving the bus technology and protocol of IDE/ATA and SCSI. If the network storage or RAID are needed, they may been realized by iSCSI and RAID technology. This paper highlights how to drive SATA and ADMA Controller based on some important functions for high performance.

The result of experiment indicates: the performance of system gets to the expected aim. To a large data transfer, its performance exceeds that of system based on the IDE hard-disk, and don’t get behind the performance of system based on the SCSI hard-disk. Along with the transition of the standard of SATA from SATA1.0 to SATA2.0 and SATA3.0, in the future, the speed of SATA hard-disk will probably go beyond that of SCSI hard-disk and many developments will been made based on SATA. At the same time, the storage system based on SATA will provide user with high performance and low cost.

In the end, this paper probes into the development of the storage system product that involving the RAID hard-disk array, iSCSI network storage and TOE (TCP/IP Offload Engine ) technology based on the system that includes SATA hard-disk, ADMA controller and Driver, and put forward suggestions to future work.

Key words:SATA and ADMA Controller; SCSI Subsystem and Bus; ADMA ; NCQ ; ADMA Tagged Command

第一章 引 言 

 

1.1 Linux块驱动特点 

 

操作系统的主要任务之一是控制所有的输入/输出设备(也即I/O设备)

对其管理的好坏8

替用户来驱动设备还要提供设备无关性

达到操作简便11

I/O设备被分为三类字符设备和网络设备

块设备用来存储定长且可随机访问的数据块,对块设备的所有操作都以块为单位进行

出于性能的考虑提高读写效率

12块设备的这些特点,

导致了块设备驱动程序有别于其它两类设备

其种类繁多

IDE/ATA块设备以及SCSI块设备

 

 

1.2.1 IDE块设备 

 

IDE即Integrated Drive Electronics

成在一起的硬盘驱动器Advanced Technology Attachment

ATA接口发展到今IDEEIDE Enhanced 

IDE/Fast ATAFastATA-2Ultra ATA/33 

Ultra ATA/100及Ultra ATA/133

可达133MB/sD??ü??μíí?ê±????μíá?

1.2.2 SCSI块设备 

 

SCSI即Small Computer System Interface(小型计算机系统接口)

SCSI广泛应用于如光驱MO磁带机打印机SCSI接口按其发展时期可细分为SCSI-1

Wide SCSIUltra160 SCSI及Ultra320 SCSI 等等

SCSI接口的块设备属于高性能的数据存储设备因此通常用于高端电脑但同时它的价格也很昂贵

但其I/O控制方式却分为四种

程序中断控制方式DMA

下面将做一一简介

它是早期的计算机系统对I/O设备 的一种管理方式完全用程序直接控制数据在CPU和外部设备之

间的传输显然CPU大量的时间用于循环检测上因此在现代计算机系统中已很少应用这种控制方式

外设有了反映其自身状态的能力 便以中断请求方式主动向CPU报告

这种方式称为程序中断控制方式并使输入但是

各种设备频繁地产生I/O中断耗费了大量的时间

DMA

DMA方式就是在进行数据传送时

由硬件中的DMA控制器接管总线控制权

数据不经过CPU而直接在内存和I/O设备之间进行成块传输

22降低了系统的复杂

性但是使得CPU处理的效率下降可以采用CPU和DMA交替访问内存的方法

来提高整个系统的效率

它使各种外设 能以标准的接口方式连接到系统中它的引入使得数据的输入输出成为一个独立的系统它独立

于CPU来管理和控制I/O操作通道不仅实现了CPU与通道的并行操作这样极大地提高了整个系统的效率主机控制器和设备之间采用四级连接按照信息交换方式和连接的设备类型不同字节多路通道通道的I/O操作由两种指令实现控制通道技术被普遍使用在大但也有一些微机吸取了大

设计了具有通道作用的芯片IOP

总之

是计算机技术的重要进步

长期以来

随着并行ATA接口数据传输速率的不断提升达133MB/s无论是物理性能并行总线的局限性已经越来越明显

 

但是随着CPU的速度越来越快

显现出愈来愈明显的性能瓶颈

为了克服这种现状

串行技术在人们的印象中一直是慢速的代名词

虽然收发数据也都是串行的无论是物理特性还是逻辑功能这使得ATA突然有了脱胎换骨的改变

而SATA磁盘出现的开始就是万转的

连接便捷且支持热插拔

市场及应用不断成熟目前部分SATA磁盘的成本就已经

同并行ATA磁盘(也即IDE磁盘)的成本相持平不管从那个方面对两者进行比较PATA磁盘将会被淘汰

 

在低端存储领域在高端存储领域

因为SATA从各方面来讲未来大有赶超SCSI的趋势而SATA存储产品的出色表现也让高高在上的企业级人士刮目相看若要追求高性能的数据存储用户肯定会选择SATA存储产品

如下着重分析一下在企业级应用中

 

 

1.4.1.1 可靠性 

 

可靠性可能是企业级用户最为关注的话题

即SCSI=高可靠性其实接口在硬盘上就是一块PCB电路板

如磁头轴承磁头臂以及磁盘

例如

 

1.4.1.2 性能 

SCSI硬盘目前的最高转速可达15000rpm更高的转速可以获得更高的寻址速度但15000rpm并不是市场的主流仍以10000rpm为主

我们可以从以下两个方面进行讨论

 

SCSI目前最高的水平是320MB/s但SCSI总线是共享的

这就意味着当SCSI通道内的硬盘实际带宽总和超过320MB/s时4块SCSI硬盘就基本达到了实际带宽总和SATA则没有这个问题5块SCSI硬盘系统的数据传输率仍然是有限的320MB/s 然而5块SATA的系统则能够达到750MB/s

TCQTagged Command Queuing

但这也只能怪PATA并没有发挥ATA完全的优势

就加入了TCQ功能WD公司率先在Raptor上支持了这一技术

NCQNative Command QueuingRaptor虽然支持的是PATA中的相关功能著名的硬盘网站StorageReview.com在将其与希捷Cheetah 10K.6 SCSI硬盘对比测试

后得出结论

虽然Raptor的TCQ只支持32级队列深度

事实上很少有硬盘能真正用上256级命令队列

显然是SATA占优

你就深有体会了而计划上市的SCSI硬盘只达到300GB的水平这就意味着在同一总容量下从而节约总成本

基于

SATA系统的成本比SCSI降低了百分之四十之多

SATA硬盘还具备热插拔能力

如在机架式服务器中使用SCSI-SATA以及SATA端口位增器另外

如WD的Raptor就采用了可以感应高速旋转所产生的振动并校正磁头寻址的旋转加速前馈技术

Rotational Accelerometer Feed Forward

同时它还具有类似于SCSI的企业扩展SMART访问Enterprise 

Extensions S.M.A.R.T. Accessed以便在出现错误前提前向RAID控制器

预警

目前包括EMCHPSun

体现了SATA硬盘在企业级应用中的强大潜力

 

当然比如在双机热备应用中

而现在的SATA则不行

在SATA-II标准中它将允许在一个硬盘有两个接口

我们可以发现在中低端的企业级的应用环境中

在搭建相应的企业级产品时

1.4.2 ADMA背景介绍 

 

在PATASATA磁盘能提供更好的性价比

SATA磁盘拥有优异的功能和性能这就需要相应的I/O控制器来提供强有力的支持

支持NCQ以及多发命令

系统连接示意图见图1-1

图 1-1 SATA及SATA控制器连接示意图 

Figure 1-1 The Connection Sketch Map of SATA and SATA Controller

本文将要涉及的ADMA控制器即是一种功能和性能都非常优异的SATA控制器

ADMA即自动DMA

通过处理这些任务甚至比SCSI控制器效率更高ADMA控制器减少了主机干扰

结合使用具有NCQ特性的万转SATA硬盘可以极大提高数据传输速度

ADMA存储系统能提高生产力和系统数据整合能力

通过ADMA存储系统可以提供企业级的SATA解决方案

在存储系统产品的企业级应用中

那么ADMA控制器及其存储系统对发挥高性能SATA磁盘的潜力和解决数据传输速度瓶颈及提高整个系统性能上将会是个理想的选择

我的论文工作的主要目标就是设计和实现Linux操作系统下的SATA及ADMA控制器的驱动程序设计与实现SATA及ADMA控制器的诸多功能和发挥它们的性能总线及协议分析选型

ADMA Engine的控制与管理

ADMA命令队列标记的设计与实现

中断处理程序的实现及驱动对多个ADMA控制器的支持

 

 

第二章 SATA及ADMA控制器及其相关技术简介

2.1 SATA 

SATA (即串行ATA)是英特尔公司在2000年IDF

英特尔开发者论坛 

串行ATA是相对于并行ATA硬盘内部总线而言的一种串行架构

然后沿数据线以比并行ATA更高的速率将数据分组进行传输

而且准确性极高

SATA以连续串行的方式传送资料此做法能减小接口的针脚数目第1针发出3针供电, 这样能降低电力消耗使用电压250mV

,传统的IDE则需要5伏特1

采用SATA接口的块设备相对IDE/ATA及SCSI接口的块设备而言 

l 首先传输更稳定

每次只传送一位数据通过串行接口缆线与SATA 硬盘连接搭配提高了设计上的弹性针脚的减少使得信号传输时干扰更小 

l 其次连接更简单SATA硬盘可以 轻松达到150MB/sSATA3.0可以实现600MB/s的传输速度

每个通道都可以独享带宽

另外 

l 第三适用范围更广但已经有 两年的开发历史目前

 

SATA块设备在传输速度上大有赶超SCSI块设备性能的趋势

SATA块设备拥有如此优异的功能和性能

甚至比IDE/ATA相关产品的价格还要低 

鉴于以上SATA技术及其产品的显著特点

 

 

2.2 ADMA 

ADMA即Automatic Direct Memory Access

3运行速度也越来越快

外设及其控制器的性能也有待提高

即串行ATA硬盘这是存储外设的一次重大革新既然存储外设速度提升了于是出现了与之配套的采用ADMA技术的ADMA控制器

后来便迅速在一些设备厂商中出现应用该项技术的产品后续将会介绍ADMA Engine

它在数据I/O传输方式上等同于DMACPU让出总线的控制权

在ADMA控制器的控制下

虽然ADMA与DMA在数据I/O传输方式上相同

DMA处理大批量数据传输

也即若干个DMA数据传输形成DMA链交由ADMA控制与处理

34

只是在ADMA操作开始和结束时

总之该项技术尤其适用于大规模大批量数据传输

 

2.3 ADMA控制器 

 

ADMA控制器用来管理多个SATA块设备

ADMA控制器主要实现了ADMA技术

为了能发挥ADMA的强大性能

因为ADMA控制器是以板卡的形式插在PCI或PCI-X总线插槽上的

 

 

 

图 2-1 ADMA控制器系统架构图 

Figure 2-1 The System Architecture Map of ADMA Controller

ADMA Engine是ADMA控制器的核心部分

状态和数据寄存器以及用于传输数据的FIFO等

34 

 

 

 

图 2-2 ADMA Engine系统架构图 

Figure 2-2 The System Architecture Map of ADMA Engine 

ADMA Engine中包含了CPB 命令链及APRD

数据链的接口

其结构见图2-3

 

图 2-3 CPB命令链及APRD数据链结构图 

Figure 2-3 The Structure Map of CPB Command Chain and APRD Data Chain

此外 

 

2.4 SATA命令排队及ADMA命令标记 

命令排队技术在优化驱动器命令执行次序

但是它需要有块设备的支持

也即TCQ

也即NCQ

但是它们的思想和目的却是一致的

块设备所使用的本地命令排队技术作以简要介绍

是对SATA 1.O标准的扩展

它允许同时对一个SATA驱动器发出多条命令

驱动器可以动态地对命令队列中的未完成的命令重排序或重新调度2NCQ还有一个重

要的机制它仍然会允许主机再发一个命令给驱动器

 

以上SATA的命令排队技术并不需要驱动的支持

在ADMA Engine的CPB命令链中一旦启动ADMA Engine进行数据传输那么该CPB的地址信息被暂时存入CPB Lookup Table中

若该CPB随后又得到了运行时机

3若CPB不加标记

那么就等待然后后续的CPB才能运行

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关主题
文本预览
相关文档 最新文档