Vxworks下的SATA提速

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介: <p class="MsoNormal" style="margin:0cm 0cm 0pt"><span lang="EN-US"><span style="font-family:Times New Roman; font-size:14px"> </span></span></p> <p class="MsoNormal" style="text-indent:-18pt; mar

 

1.       ATA接口的三种数据传输方式

 

1PIOProgrammable Input-Output)传输,可以分为PIO寄存器传输和PIO数据传输。PIO寄存器传输主要用于对ATA设备中的寄存器进行读写。读写的数据位数为8DD[7:0]ATA主机控制器根据所要读写的寄存器地址设置CS0_CS1_DA[2:0]地址信号,同时将DIOW_DIOR_设为有效,ATA主机控制器或ATA设备驱动数据总线释放数据。当DIOW_DIOR_撤销时,ATA主机控制器或ATA设备从数据总线上读取数据。对于PIO数据传输,所读写的地址为数据端口,读写数据为16位。

2MDMAMultiword DMA)传输,用于数据传输。ATA主机控制器向ATA设备下达MDMA传输命令后,等待设备向主机发送DMARQ数据传输请求信号。当主机收到DMARQ信号后,向设备发送DMACK_响应信号。MDMA数据传输过程与PIO方式大致相同,也是通过DIOW_DIOR_的周期变化来控制数据的传输。在数据传输过程中,DMARQDMACK_握手信号一直保持有效。

3UDMAUltra DMA),也是用于数据传输。这种传输方式的传输速度比MDMA要快,ATA/ATAPI-5协议中所定义的UDMA传输方式最高数据传输速率是66MB/sUDMA对数据传输的控制信号重新进行了定义。另外,UDMA还引入了CRC数据校验机制,保证了数据传输过程的正确性,但其传输过程较为复杂。

Transfer mode       | Description                   |  Transfer Rate

 

ATA_PIO_DEF_0       | PIO default mode              |

ATA_PIO_DEF_1       | PIO default mode, no IORDY    |

ATA_PIO_0           | PIO mode 0                    |     3.3 MBps

ATA_PIO_1           | PIO mode 1                    |     5.2 MBps

ATA_PIO_2           | PIO mode 2                    |     8.3 MBps

ATA_PIO_3           | PIO mode 3                    |    11.1 MBps

ATA_PIO_4           | PIO mode 4                    |    16.6 MBps

ATA_PIO_AUTO        | PIO max supported mode        |

ATA_DMA_SINGLE_0    | Single DMA mode 0             |     2.1 MBps

ATA_DMA_SINGLE_1    | Single DMA mode 1             |     4.2 MBps

ATA_DMA_SINGLE_2    | Single DMA mode 2             |     8.3 MBps

ATA_DMA_MULTI_0     | Multi word DMA mode 0         |     4.2 MBps

ATA_DMA_MULTI_1     | Multi word DMA mode 1         |    13.3 MBps

ATA_DMA_MULTI_2     | Multi word DMA mode 2         |    16.6 MBps

ATA_DMA_ULTRA_0     | Ultra DMA mode 0              |    16.6 MBps

ATA_DMA_ULTRA_1     | Ultra DMA mode 1              |    25.0 MBps

ATA_DMA_ULTRA_2     | Ultra DMA mode 2              |    33.3 MBps

ATA_DMA_ULTRA_3     | Ultra DMA mode 3              |    44.4 MBps

ATA_DMA_ULTRA_4     | Ultra DMA mode 4              |    66.6 MBps

ATA_DMA_ULTRA_5     | Ultra DMA mode 5              |   100.0 MBps

ATA_DMA_AUTO        | DMA max supported mode        |

 

2.       VxworksSATA部分的启动流程

 

//usrConfig.c

#ifdef  INCLUDE_ATA

    usrAtaInit ();

    if (strcmp (FS_NAMES_ATA_PRIMARY_MASTER, "" ))

        usrAtaConfig (0, 0, FS_NAMES_ATA_PRIMARY_MASTER);

    if (strcmp (FS_NAMES_ATA_PRIMARY_SLAVE, "" ))

        usrAtaConfig (0, 1, FS_NAMES_ATA_PRIMARY_SLAVE);

    if (strcmp (FS_NAMES_ATA_SECONDARY_MASTER, "" ))

        usrAtaConfig (1, 0, FS_NAMES_ATA_SECONDARY_MASTER);

    if (strcmp (FS_NAMES_ATA_SECONDARY_SLAVE, "" ))

        usrAtaConfig (1, 1, FS_NAMES_ATA_SECONDARY_SLAVE);

 

#ifdef  INCLUDE_SHOW_ROUTINES

    ataShowInit ();                     /* install ATA/IDE show routine */

#endif  /* INCLUDE_SHOW_ROUTINES */

#endif  /* INCLUDE_ATA */

//usrAta.c

void usrAtaInit (void)

    {

    int ix;

    ATA_RESOURCE *pAtaResource;

 

    for (ix = 0; ix < ATA_MAX_CTRLS; ix++)

        {

        pAtaResource = &ataResources[ix];

 

        if (pAtaResource->ctrlType == IDE_LOCAL)

 

            if ((ataDrv (ix, pAtaResource->drives, pAtaResource->intVector,

                   pAtaResource->intLevel, pAtaResource->configType,

                   pAtaResource->semTimeout, pAtaResource->wdgTimeout))

               == ERROR)

                {

                printf ("ataDrv returned ERROR from usrRoot.\n");

                }

        }

}

//ataDrv.c

ataDrv - Initialize the ATA driver ……

 

INCLUDE_DRV_STORAGE_INTEL_ICH

INCLUDE_ATA

INCLUDE_PIIX4_ATADMA

INCLUDE_ICH7_SUPPORT

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
机器学习/深度学习 缓存 固态存储
硬盘大佬也玩CPU!西部数据公布RISC-V自研架构SweRV及开源指令集模拟器
西部数据预计硬件和软件将用于大数据和快速数据应用的各种解决方案,包括闪存控制器和SSD。
526 0
|
存储 固态存储 测试技术
|
机器学习/深度学习 内存技术
|
芯片 固态存储 内存技术