首页> 中国专利> 加/解密串行式先进技术附属件装置及方法

加/解密串行式先进技术附属件装置及方法

摘要

一种加/解密串行式先进技术附属件(Serial ATA,SATA)装置,其包含一主控制器、一SATA装置协议堆叠、一SATA主机协议堆叠,及一加/解密器。其中,加/解密器系耦接于主控制器、SATA装置协议堆叠及主机协议堆叠之间,用以提供高速密码处理。

著录项

  • 公开/公告号CN101008931A

    专利类型发明专利

  • 公开/公告日2007-08-01

    原文格式PDF

  • 申请/专利权人 伊诺瓦科技股份有限公司;

    申请/专利号CN200610162479.4

  • 发明设计人 万述宁;邱仲炎;

    申请日2006-11-17

  • 分类号G06F13/38;G06F13/42;H04L29/08;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人任永武

  • 地址 台湾省新竹科学园区研发二路11号1楼

  • 入库时间 2023-12-17 18:59:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-05-26

    授权

    授权

  • 2007-09-26

    实质审查的生效

    实质审查的生效

  • 2007-08-01

    公开

    公开

说明书

技术领域

本发明有关一种加/解密应用,特别是提供一种加/解密串行式先进技术附属件(Serial ATA,或SATA)装置及方法。″ATA″(AT附属件,AT Attachment)一词是指供储存装置内部配置的物理的、电的、传送的及指令的各项协议。其中,″AT″一词是演绎自1984年引进的IBM个人电脑(Personal Computer,PC)AT(AdvancedTechnology),其为当时最先进的个人电脑。

背景技术

串行式先进技术附属件(Serial ATA,SATA)规格是用以取代并列式ATA的高速界面。SATA规格定义了三种不同的速度,即第一代操作于传输率为每秒15亿位(1.5Gbps),第二代传输率于每秒3.0Gbps,及第三代传输率于每秒6.0Gbps。且SATA规格定义了主机转接器与储存装置控制器间的点对点传输。举例来说,主机转接器可能是包括具有周边元件连接(Peripheral Component Interconnect,PCI)界面的串行式ATA控制器的IC。″PCI″为Intel公司发展的区域总线(Local Bus)标准。储存装置可能是一串行式ATA硬盘驱动器(Hard-Disk Drive)。此一点对点传输不共享,意即,每个SATA装置和控制器通讯时会使用独占的点对点通道。

对于作业系统(Operating System,OS)来说,SATA控制器就如同并列式ATA(parallel ATA)控制器一般,因此,SATA控制器支援与并列式ATA控制器相同的指令及相同的初始化行为。特别是,串行式ATA提供主机软件相同于并列式ATA的工作文档可编程寄存器(Task File Programming Registers)。但,在串行式ATA中,此等寄存器通常并非物理地配置于磁盘驱动器中。反之,其已被移至主机控制器中,在SATA规格中其被称为″影子″寄存器(Shadow Registers)。准确模仿磁盘驱动器的相同寄存器界面,可确保软件相容性。

SATA规格可提供功能的分层。SATA结构中的最低层为物理(Physical,PHY)层,其中物理层负责产生实际的电子信号,传输产生的电子信号,以及解密接收到的电子信号。物理层能力还包括特殊强制重设信号的传输,主机插接与否的检测,自功率管理状态及速度协商的转换。此一方面,该SATA规格使用低压差分信号传输。特别是,信号并非在一与共同接地相关的导体上以电压传输,而以两相邻导体间的电位差传输。当一导体上电压为’高’时,另一导体的电压为’低’,任一两相邻导体作为另一导体的相反。此种类型的信号传输可达到免除杂讯及串音的好处。任何等量影响相邻信号的电磁干扰(Electro-Magnetic Interference,EMI),包括杂讯及串音,均可在接收端受到差分消除。

物理层之上为链接层,该层负责将传输的数据编码、将接收到的数据解码、基本通信及协议。使用一种甚为常用的8位(8b)/10位(10b)编码方法。一个8-位的位组可表示成256个不同的值,其被列于不同的美国标准信息交换码(AmericanStandard Code for Information Interchange,ASCII)代码表中。一个10位的位组具有1024个不同值。利用一10-位栏位对256个可能的位组值编码时,可自1024个可能值中选出256个值被用于编码方法中。这种8b/10b编码方法包括有限的游程长度、数据通信(Data Communication,DC)的平衡及将如同基本型别(primitives)的特殊控制字元编码的能力。

基本型别被用来标示在输出端与接收端之间特殊条件的传输,例如SOF(Startof Frame)、EOF(End of Frame),以及ALIGN(用以辨认位流中字元边界的位置)。链接层包括(a)″闲置″(idle)协议,用以建立通信,(b)″传输″协议,用以处理数据承载的传输,(c)″接收″协议,用以处理已传送的数据承载的接收,及(d)″电源管理″(Power Management)协议,其用以处理自二电源管理状态的进入/出。

链接层也负责传送数据承载封包,其中数据承载封包称为帧数据结构(FrameInformation Structure,FIS)。一帧(Frame)为一至多个在主机与装置间传输数据双字组(Double Word,DWORD)的集合。一DWORD能表示为32位(bits)数据,或为二相邻字组(WORD),或为四个相邻的位组(BYTE)。当以位表示时,由右至左,最右边为最低有效位,其为位0,最左边为最高有效位,其为位31。

在链接层协议中描述主机与装置间交换的基本型别的串行,及对各种基本型别及条件的回应。链接层协议也负责为每一个已传输的FIS数据承载计算其循环冗余检查码(Cyclic Redundancy Check code,CRC code)。计算出的CRC附加在已传送的FIS数据的末端。链接层验证并移除每一个接收到的FIS中的CRC。为使在数据承载转移上的电磁干扰影响最小,链接层在FIS传输至SATA界面前,先打散(Scramble)FIS中的承载数据。

SATA结构中,链接层上方为传输层,其主要工作为建构(封装)欲传输的FIS及分解已接收的FIS。当一较高层要求建构一FIS数据时,传输层(a)根据要求的FIS的类型,搜集数据内容;(b)将FIS内容排序;(c)通知链接层传输所要求的帧,并且传送FIS内容至链接层;(d)管理缓冲器/先进先出(First In First Out,FIFO)流程及通知链接层所需的流程控制;(e)自链接层接收帧回应讯息;及(f)向较高层回报传输正常与否及其错误讯息。传输层在ATA指令或先前FIS内容上而言保持无上下文之分。

FIS的一般型式是包含一FIS标头及一FIS本体。FIS标头通常包含一FIS类型栏位的值及至少一控制栏位。FIS本体包含数据承载。FIS类型栏位的值纪录于第一个位组中。其中,FIS类型包含(a)寄存器-主机至装置(Register-Host toDevice)型态,(b)寄存器-装置至主机(Register-Device to Host)型态,(c)数据型态,(d)直接存储器存取(Direct Memory Access,DMA)启动型态,(e)可编程输入/输出(Programmed Input/Output,PIO)设定型态,(f)设定装置位型态,(g)DMA设定型态,及(h)内建式自我测试(Built-in Self-Test,BIST)启动。第二位组是包含FIS的控制信息及具有三限定位,及数个保留位。其中,这三个限定位不适用于所有型态的FIS。这三个限定位包括C(较高)位,此为指令/控制位,I位,此是用以标示是否应触发一中断指令,及D位,此位记载数据传输方向。于上述两个位组的后的所有栏位为FIS承载数据(Payload Data)。

举例来说,寄存器-主机至装置型态其FIS类别栏位的值为16进制值0x27,在打散(scramble)后此栏位为16进制值0xAA,及二进制型式的10位编码值为0101011010。数据型态FIS的格式,不论其从主机传输至装置或从装置传输至主机均相同。数据型态FIS包括二栏位供识别FIS类别及相关控制信息,其余则为被传输的承载数据。

为使在FIS上做高速加/解密运算,二个主要任务必须实施。第一,要能立即检查出是否为数据型态FIS,并与非数据型FIS分开;第二,每一检测出为数据型态的FIS应迅速加以检查其是否包含应加/解密处理的数据。其中,加/解密处理可包括下列步骤:(a)检测绕径旗标(Bypass Flag),若绕径标识为真(True),表示帧不做任何加/解密运算,立即通过,及(b)若绕径标识为假(False),表示帧必须个别做加/解密运算。现有技术实施此等运算的方法包括,首先,分解接收到的SATA协议堆叠,接着,分析分解后的的数据,最后,重新封装数据至SATA协议堆叠中以备传输。此程序在硬件/软件复杂度及固有的作业时间等待上效率不佳。

在SATA规格之下,提供一种更有效及不复杂的实施密码作业装置是必要的。此一加/解密SATA处理装置应可高速加/解密处理每一个从输入/输出端(主机及装置)选取的数据流。此外,此一装置应具有快速判断所接收的FIS及其数据承载是否需要加解密处理的能力。

发明内容

有鉴于此,本发明是针对上述的困扰,提出一种加/解密串行式ATA装置及其方法,以改善上述的问题。

下述为加解密串行式ATA装置的具体实现:

根据本发明的一特性,提供一种加/解密串行式ATA装置,其是包含一主控制器,至少一适用于差分信号传输的协议堆叠,及至少一加/解密器。其中,加/解密器是耦接于主控制器与协议堆叠之间以提供高速加/解密处理。

根据本发明另一特性,提供一种加/解密串行式ATA装置,其是包含一主控制器,至少一SATA协议堆叠及至少一加/解密器。其中加/解密器是耦接于主控制器与SATA协议堆叠之间用以提供高速的加/解密处理。

根据本发明又一特性,提供一种加/解密串行式ATA装置,其包含一主控制器,一SATA装置协议堆叠,一SATA主机协议堆叠,及至少一加/解密器。其中,加/解密器是耦接主控制器、SATA主机协议堆叠与SATA装置协议堆叠之间,用以提供高速加/解密处理。

下述为加解密串行式ATA方法的具体实现:

根据本发明的一特性,提供一种加/解密串行式ATA方法,其是包含数步骤:首先,提供一加/解密串行式ATA(SATA)装置于一主机与一装置之间;接下来,利用加/解密SATA装置以检测出自主机接收的一PIO数据输出(Data-Out)指令型态的FIS,及决定接收到的PIO数据输出指令型态的FIS是否属于预定类别(该预定类别是对应的加/解密SATA装置的加密模式);再来,利用加/解密SATA装置,将自装置接收的所有PIO设定型态的FIS旁路至主机;接着,利用加/解密SATA装置检测出自主机接收到的数据型态FIS承载(检测出的数据型态FIS承载已加密);最后,利用加/解密SATA装置侦出自装置接收的状态寄存器型态的FIS。其中,检测出的装置状态寄存器型态FIS促使加/解密SATA装置重新设定为绕径模式。

根据本发明另一特性,提供一种加/解密串行式ATA方法包含数个步骤:首先,提供一加/解密串行式ATA(SATA)装置于一主机与一装置之间;接下来,利用加/解密SATA装置检测出自主机接收的DMA数据输入(Data-In)指令型态FIS,及决定接收的DMA数据输入指令型态的FIS是否属于预定类别(该预定类别是对应的加/解密SATA装置的解密模式);再来,利用加/解密SATA装置检测出自装置接收的数据型态FIS承载(检测出的数据型态FIS承载已解密);最后,利用加/解密SATA装置检测出自装置接收的状态寄存器型态FIS。其中,检测出的状态寄存器型态FIS促使加/解密SATA装置重新设定为绕径模式。

以下借由具体实施例配合附图详加说明,当更容易了解本发明的目的、技术内容、特点及其所达成的功效。

附图说明

图1为根据本发明的加/解密SATA装置的方块图;

图2为根据本发明的SATA传输层中的数据型态FIS的位配置表格示意图;

图3为根据本发明的SATA链接层中数据型态FIS位配置表格示意图;

图4为根据本发明的图3植入ALIGN基本型别后的位配置表格示意图;

图5为根据本发明的SATA传输层中寄存器-主机至装置的位配置表格示意图;

图6为根据本发明的SATA链接层中寄存器-主机至装置的位配置的表格示意图;

图7为本发明图1的加/解密SATA装置的一实施例的部分示意图;

图8为本发明图1的加/解密SATA装置的又一实施例的部分示意图;

图9根据本发明的加/解密运算控制方块图;

图10为根据本发明一实施例,通过图1的加/解密SATA装置的数据流的示意图;

图11为根据本发明又一实施例,通过图1的加/解密SATA装置的数据流示意图;

图12为根据本发明的加/解密SATA-to-IDE实作示意图。

具体实施方式

本发明的某些实施例现以参考图1至图12予以详细说明。本发明的额外实施例,特性,特征及/或优点可自说明或实施本发明而更为明显。图中,各附图并不合比例,全图及说明中相同的标号代表同特性。

图1为一方块图,说明本发明的一加/解密SATA装置20。在其一侧,加/解密SATA装置20可用以分别自SATA主机转接器(图中未示)接收输入RXh,及传送输出TXh至主机转接器(图中未示)中。其中SATA主机转接器(之后文中是称为″主机″)可提供在例如一主个人电脑上。于另一侧,加/解密SATA装置20可用以自SATA装置控制器接收输入RXd及传送输出TXd至SATA装置控制器(图中未示)。其中SATA装置控制器(之后文中是称为装置)可提供在一周边装置上,例如硬盘驱动器,光学驱动器等(如CD ROM、DVD ROM等等)。加/解密SATA装置20经由一适当通信耦合,例如一串行式ATA电缆,与主机及装置通信,然而,此处不限定只能使用串行式ATA电缆。于主机与装置间传输的数据,包含指令、控制、状态及数据信号,是先被封装至串行式ATA协议堆叠再予以串行化,而其可在一电缆连接的二差分信号中传输。

在本发明的一实施例中,加/解密SATA装置20包含一加/解密器22,其是耦接于主控制器24与装置协议堆叠26及主机协议堆叠28之间。任一协议堆叠(26,28)包括一物理层(Physical Layer,PHY)30,一链接层(Link Layer,LNK)32及一传输层(Transport Layer)34。一应用层(Application Layer)36包括加/解密器22及主控制器24,如图1所示。

加/解密器22在预定及/或选取在主机与装置间交换的数据型态FIS承载上,作加密/解密运算。非数据型态FIS或不需加密/解密的数据型态FIS,例如FIS指令(Command)、控制(Control)或状态(Status)信息,被允许直接通过(由一侧至另一侧),即,绕过加/解密器22,如图1所绘示。精于此技术人士可了解,已有许多现有的加/解密器,其中任何一加/解密器均可适用于本发明的加/解密SATA装置20中。

主控制器24是用以规范所有含数据、指令、控制及状态信号的信号路径。主控制器24自所有较低层(例如传输层34、链接层32及物理层30)接收信号。接收的信号可能包含FIS类别及检测出的指令、传输方向(主机至装置或装置至主机)、控制信号,例如自链接层32的基本型别检测指示器、自物理层30的OOB(Out of Band)例外处理程式(或段外)检测指示器、其它通道状态指示器,及异常条件,如传输误差或中止等。主控制器24亦规范加/解密器22的运算,如图1所说明。主控制器24协助加/解密SATA装置20自异常运算条件恢复,及保持一稳定的主机与装置间的连线。

图2为SATA传输层34中的数据型态FIS38的位配置的表格示意图。数据型态FIS38由多个双字组(DWORD)组成。数据型态FIS38的第一个双字组为数据型态FIS38的标头40。数据型态FIS38标头40的第一位组42为数据型态FIS38的类别栏位。第一个DWORD的其余三个位组包含保留位、保留位栏位及保留位组(图中未示)。数据型态FIS38剩余的N个DWORD为数据承载(Data Payload)。特定的某些数据型态FIS38的承载由加/解密器22做加密/解密(如图1所示)运算。非数据型态FIS则不用由加/解密器22处理。重新传输自加/解密器22密码处理后的数据输出是借由增加一数据标头的方式予以重新封装至一数据型态FIS中。

一种迅速决定接收的FIS是否为数据型态FIS或非数据型态FIS的方法是将加/解密SATA装置20设置为使其能检验FIS类别栏位,即,所接收到的FIS标头的第一个位组。特别是,在传输层34或链接层32中可提供一FIS类别检测器,如以下的图7至图8所示。一精于此技术人士可了解,接收的数据型态FIS38的第一个DWORD的剩余位组,也可用本发明的一般原则加以分析。如FIS类别栏位的值为16进制值0x46,表示接收的FIS则为数据型态FIS。反之,则为非数据型态FIS。此一方面,图2显示数据型态FIS标头40的第一位组42中的FIS类别(46h)。

图3为SATA链接层32中的数据型态FIS44的位配置的表格示意图。其中,位配置包括SOF基本型别46,其为一32位的独特代码字,用以表示帧的开始。SOF基本型别46的后为传输层数据型态FIS的加/解密版本,及一32位CRC检查码48,其中CRC检查码48亦被编码。CRC检查码48的后为EOF基本型别50,其为一32位基本型别用以表示帧的结束。

于一实施例中,打散运算是以预先定义好的打散器串行群(ScramblerSyndrome Sequence)和FIS的多个DWORD做XOR(Exclusive OR)运算。其中,XOR为一布林运算子,其在任其一运算元为真(TRUE)时,回传TRUE的一值。打散器串行群产生器(Scrambler Syndrome Sequence Generator)的值在SOF基本型别,及紧跟着SOF基本型别之后的FIS类别栏位的值后被重新设定。在FIS类别栏位的值传输时的打散器串行群等于供打散器使用的种子。FIS打散处理的主要目的为降低电磁干扰。应了解,任何适当的打散或能转换数据型态FIS的方法均可使用,但其使用不能有悖本发明的目的。

图4显示图3插入ALIGN基本型别52、54的位配置示意图。ALIGN基本型别52、54由传输器植入,且不用打散处理。ALIGN基本型别52、54被植入在图3的数据型态FIS44的位配置的预定位置。ALIGN基本型别52、54是提供信号调整流程控制。于一实施例中,每传输256个DWORD中,可能会有连续偶数的ALIGN基本型别产生。而这些ALIGN基本型别并非传输层协议的一部分,因此在接收到后自内文中删除。为说明本发明的一般原理,假定所有ALIGN基本型别均已被删除。

如上所述,可提供一FIS类别检测器于链接层32(如图8所绘示),以决定以链接层协议格式封装的FIS是否为一数据型态FIS。若打散之后的8位FIS类别值的值是16进制的OxCB,其为一数据型态FIS。另一方法为检查数据打散器串行群的值,若其16进制值为Ox8D即为一数据型态FIS。尚有一方法为检测SOF基本型别后面的10-位编码字元(若其以二进制格式的值为1101000110,则为一数据型态FIS)。

并非所有侦出的数据型态的FIS必须加以加解密处理。就像是具有与装置组态、设定及状态查询相关的ATA指令的数据型态FIS不需要经过加/解密器22的处理(请参考图1)。举例来说,与PIO下的IDENTIFY_DEVICE指令相关的数据型态FIS,不需要由加/解密器22做加密/解密运算,如同所有与装置组态、设定与状态查询相关的指令或数据。各种相关的PIO指令/数据(″Bypass True″类别)列表如下:

CFA-TRANSLATE-SECTOR

DEVICE-CONFIGURATION-IDENTIFY

IDENTIFY-DEVICE

IDENTIFY-PACKET-DEVICE

READ-LOG-DATA

SMART-READ-LOG-SECTOR CFA-WRITE-MULTIPLE-WITHOUT-ERASE

CFA-WRITE-SECTOR-WUTHOUT-ERASE

DEVICE-CONFIGURATION-SET

DOWNLOAD-MICROCODE

SECURITY-DISABLE-PASSWORDS

SECURITY-ERASE-UNIT

SECURITY-SET-PASSWORDS

SECURITY-UNLOCK

SMART-WRITE-LOG-SECTOR

WRITE-LOG-EXT

精于此技术人士可了解,各式各样新的PIO指令可被增加于SATA规格的未来版本中,以供根据本发明的一般原理的使用。

[0038]一ATA数据传输指令通常携有一个或多个数据型态FIS,直到其协议串行终止。所有ATA指令可经由检查在SATA传输层34中的寄存器-主机至装置型态FIS56的指令栏位(第三位组),而予以检测出,如图5的示意图所示。如图5中所示,寄存器-主机至装置型态FIS56的FIS类别16进制的值为0x27(已还原,de-scrambled)。因此,决定是否不经由加/解密器22处理,可以指令来控制。即,如检测出的指令属于″Bypass True″类别时,如上所述,所有在指令协议中的数据型态FIS将不经由加/解密器22(如图1所示)处理。反之,如检测出的指令属于″Bypass False″类别时,在此类指令协议下的所有数据型态FIS均应由加/解密器22予以加解密处理。各种的PIO及高速直接存储器存取(Ultra DMA,UDMA)″Bypass False″类别指令的举例下:

READ-SECTOR

READ-SECTOR-EXT

READ-MULTIPLE

READ-MULTIPLE-EXT

READ-BUFFER

READ-DMA

READ-DMA-EXT

WRITE-SECTOR

WRITE-SECTOR-EXT

WRITE-MULTIPLE

WRITE-MULTIPLE-EXT

WRITE-BUFFER

WRITE-DMA

WRITE_DMA_EXT

因此,如一SATA指令协议是关于自/至物理储存媒体(如CDRW的光轨或硬盘驱动器的区段)的读出/写入数据,该特别指令协议下的数据型态FIS的承载均须加/解密处理。

精于此技术人士应可了解,各式各样新的PIO读/写指令及DMA读/写指令可增加至SATA规格的未来版本中,再根据本发明的原理应用。例如,目前的SATA规格仅提供PIO运算码,但对F7、FB、5C及5E则无指令说明,其不利用扩充寄存器,传输长度由区段计数寄存器控制(值0-255代表256个区段)。他们遵照ATA PIO的时序及控制流程信号,但如指令SECURITY_ERASE_UNIT(参考上述)可能需一长时间执行。所有现在未说明的UDMA运算码包括5D-UDMA Read,5F-UDMA Write。其指令特性目前不明。

在本发明一实施例中,指令协议中的所有数据类别FIS,其中检测出的指令未列入″Bypass False″类别或″Bypass True″类别者,均不经由加/解密器22处理。例如,加/解密SATA装置20可能无法被设定去支援DMA指令QUEUE(是一携带数据需要密码处理的数据读/写指令),因此,指令及数据被通过,意即,不需经由加/解密器22处理。

图6为链接层32中的寄存器--主机至装置型态FIS58的位配置的表格示意图,其分别说明在传输层及链接层中的一″寄存器-主机至装置″型态FIS的位配置。如图6所示,FIS类别具有8位编码的16进制值0xAA。图6中指令栏位60的数据打散器串行群具有预定的16进制值0xD2。因此,链接层32中的指令栏位的值会等同于16进制值0xD2与还原(de-scrambling)运算前的运算码的″异或″(XOR)运算结果。

图7为本发明加/解密SATA装置20(如图1所示)的一实施例的部分示意图(仅一侧)。精于此技术人士可了解,其他选择的组态(如并列式ATA界面及/或通用串行总线(Universal Serial Bus,USB)界面)可提供于加/解密SATA装置20的另一侧。

图7绘示提供于传输层34中的FIS类别检测器62。FIS类别检测器62的可用以检测及检查从链接层32而来的FIS标头的FIS类别栏位(第一个位组)。如FIS类别栏位值为一16进制值0x46,则接收到的FIS为数据型态FIS。否则,其为非数据型态FIS。如接收到的FIS为数据型态FIS,则FIS类别检测器62将数据型态FIS承载送至加/解密器22做加/解密运算。如在FIS类别栏位中未找到16进制值0x46,则FIS类别检测器62将非数据型态的FIS自传输层34经应用层36导离加/解密器22,即不需加解密处理。

传输层34中还包含一ATA指令过滤器64,并适于检验来自链接层32的任何寄存器-主机至装置型态FIS(FIS类别的16进制值为0x27)的指令栏位(第一个32位DWORD的第三个位组,见图5)。ATA指令过滤器64提供加/解密器22的绕径(Bypass)控制。如检测出的寄存器-主机至装置型态FIS的第三个位组不属于上述″Bypass True″指令类别的装置组态、设定及状态查询时,即将″绕径″标识设定为″假″(False)。否则,ATA指令过滤器64设定″绕径″标识为″真″(True)。则全部寄存器-主机至装置型态FIS被导至应用层36,即,不由加/解密器22作任何处理。加/解密器22保持为先前执行后的状态,直到下一个从ATA指令过滤器64的″绕径″标识控制信号来改变它。如必须作所需的适当数据缓冲时,一FIFO缓冲器66(如图7所绘示),可耦接于FIS类别检测器62与加/解密器22之间。

如图8所示的本发明的加/解密器SATA装置20(如图1所绘示)的另一实施例的部分(仅一侧)示意图。精于此技术人士可了解,其他构型的(如并列式ATA界面及/或USB界面)需要时,可备于加/解密SATA装置20的另一侧。

如图8所绘示,链接层32中还备有FIS类别检测器68。FIS类别检测器68可利用四方法之一,以决定自物理层的30进入的位流是否包括一封包的数据型态FIS。第一种方法是决定一规定的还原后的位值,例如在SOF基本型别之后的第一个还原后的位值。在SOF基本型别之后第一个已还原的值若为16进制值0x46,则其属数据型态FIS。第二个方法包含检查一规定的打散后的位值,例如SOF基本型别后的第一个打散后的位值。在SOF基本型别之后,第一个打散后的位值若为16进制值0xCB,则其属数据型态FIS。第三个方法是以0x8D相关的打散器串行群的16进制值来决定。一数据型态FIS应有8位已打散的16进制值0xCB。第四个方法决定在SOF基本类别之后的第一个10-位字元的内容。其应具有二进制值(1101000110)。

如一数据型态FIS已被检测出,FIS类别检测器68将此数据型态FIS送至加/解密器22用以做加/解密运算。否则,FIS类别检测器68将此非数据型态FIS通过物理层30及链接层32远离加/解密器22,即,不作密码处理。

链接层32中还包含一ATA指令过滤器70,并适于决定自物理层30进入的位流是否包含一寄存器-主机至装置型态FIS,其包含属于上述″Bypass True″类别的ATA指令。于链接层32中寄存器-主机至装置型态FIS可利用四种方法之一被检测出。第一个方法决定预定还原后位组的值,例如在SOF基本型别后的第一个已被还原后的位组的值。若为寄存器-主机至装置型态FIS,SOF基本类别后的第一个已被还原后的位组值应为16进制值0x27。第二个方法决定一预定打散位组的值,例如SOF基本型别后的第一个打散后的位组的值。若为寄存器-主机至装置型态FIS,SOF基本型别后的第一个打散后的位组的值应为16进制值0xAA。第三个方法以相关打散器串行群16进制值0x8D用以决定位组值。其若为寄存器-主机至装置型态FIS其应具有8位编码的16进制值0xAA。第四个方法决定SOF基本型别后的第一个10-位字元的内容。其应具有以二进制格式的值(0101011010)。一FIFO缓冲器72(如图8所示)是耦接至FIS类别检测器68与加/解密器22之间,以供适当的数据缓冲。

一精于此技术人士将无疑的认为在二实施例中(图7及图8),并非必须将本发明的加/解密SATA装置中的传输层及/或链接层协议的集合全部分解,以便实施数据的密码处理。因此,实施图7及图8说明的实施例的软件/硬件的等待时间及复杂度可以大为降低。

图9为一方块图,说明本发明实施的加解密作业控制。应了解在任一实施例中(如图7及图8),ATA指令过滤器(64或70)的″绕径″控制信号与主控制器24中的″预设定绕径″信号加以逻辑″或″(OR)运算,其中,主控制24的输出控制加/解密器22的作业。主控制器24中的″预设定绕径″信号在加/解密SATA装置20的全部功率周期可保持恒定。如″预设定绕径″信号被设定为逻辑″1″,则″绕径″标识将设定为″真″,不论ATA指令过滤器的状态为何。如其被设定为逻辑″0″,加/解密器22的作业则仅视ATA指令过滤器提供的″绕径″控制信号而定。

将FIS类别检测器及ATA指令过滤器设置于链接层32,如图8所示,可有各种优点。例如,如在链接层32中实施检测作业,将FIS类别DWORD输送至传输层的等待时间可降低。自检测至反应的时间将较为不被局限。较费时的流程控制在嵌入式中央处理单元(Central Processing Unit,CPU)中实作时,所获得的额外时间将甚为有用。另一方面,图7的实施例的优点为简单,意即,只需要较不复杂的控制逻辑设计即可。

图10为经由本发明的加/解密SATA装置20(如图1所示)的数据流程的示意图。特别是,基于PIO数据输出指令(PIO Data-Out)的数据流程将予以说明。串行式ATA加/解密装置20根据反应及响应在主机及装置串行式ATA通道上所接收及检测出的数据而作业。在此实施例中,假定加/解密SATA装置20初始设定为″闲置″状态,此时,其聆听主机与装置端串行式ATA通道的任何活动。在此状态下的″绕径″标识为″真″。在步骤1中,加/解密SATA装置20检测出一至主机接收到的PIO数据输出指令型态FIS。其次,决定收到的PIO数据输出指令是否属于预定类别。如PI0数据输出指令属于预定类别,则加/解密SATA装置20的主控制器24重新设定″绕径″标识(如图9所示)为″假″,即加/解密器22为加密模式。

步骤2中,加/解密SATA装置20将自装置接收的PIO设定型态FIS旁路至主机。步骤3中,加/解密SATA装置20检测出已自主机接收的数据型态FIS,其数据型态FIS中的所有数据D WORD将被引导至加/解密器22以备加密。步骤4中,如加/解密SATA装置20检测出一(状态)寄存器型态FIS已自装置(指令完成或中止)收到,于是″绕径″标识(如图9所示)将被再设定为″真″,加/解密SATA装置20返回″闲置″状态。否则,如指令尚未完成,处理程序分别重复步骤2、步骤3及步骤4。

图11为根据本发明另一实施例的经加/解密SATA装置20的数据流程的示意图。特别是,基于DMA数据输入指令的(DMA Data-In)数据流程将予以说明。假定加/解密SATA装置20初始设定为″闲置″状态,其聆听主机与装置端串行式ATA通道的任何活动。于此状态时的″绕径″标识为″真″。

当串行式ATA硬盘驱动器准备传输数据至主机时,硬盘驱动器发出一适当要求信号至主机。在收到主机的回应讯息后,硬盘驱动器传送一数据类别的FIS。依据收到的数据型态FIS后,主机控制器中的DMA引擎传送接收的数据至主机端的已先行规划的存储器中的连续位置。

步骤1中,如加/解密SATA装置20检测出已自主机收到一DMA数据输入指令型态FIS,如该指令属于预定类别,加/解密SATA装置20的主控制器24将设定″绕径″标识(如图9所示)为″假″,加/解密SATA装置20此时为解密模式。步骤2中,当串行式ATA加/解密装置20检测出自装置收到一数据型态FIS,数据型态FIS中的所有DWORD将被引导至加/解密器22以供解密运算。步骤3中,如串行式ATA加/解密装置20检测出已自装置收到一(状态)寄存器型态FIS(指令已完成或中止),″绕径″标识会被主控制器24再设定为″真″,加/解密SATA装置20变为″闲置″。否则,如决定指令未完成,将重复步骤2及步骤3。

图12概略说明本发明的加/解密SATA-至-IDE(Integrated DriveElectronics,IDE)实作。特别是,加/解密SATA装置20的一侧是经由一SATA-to-IDE协议转译器耦接至一IDE信号界面76。IDE信号界面76提供一IDE通道至一装置(图中未示)。加/解密SATA装置20的另一侧提供一SATA通道至主机(图中未示),如图12所示。加/解密SATA装置20经由SATA-to-IDE协议转译器74传送下流控制讯号及数据至IDE信号界面76。加/解密SATA装置20自IDE信号界面76经SATA-to--IDE协议转译器74接收上流控制讯号及数据。

在图12的一实施例中,加/解密SATA装置20根据图7说明的组态实施。在传输层34上提供一ATA指令过滤器64。在图12中的另一实例中,加/解密SATA装置20根据图8说明的组态实施。ATA指令过滤器70是备于链接层32上。

上述的实施例可以由硬件及/或软件型式实施。利用本发明的加/解密SATA装置可提供不同的优点。例如,FIS分析时间可缩短。此外,硬件及软件复杂性也降低。此外,不需要分解所有数据以决定是否需要加/解密。

揭示的加/解密SATA装置及方法可迅速区别数据类别帧(Data FIS)与非数据型态帧(None Data FIS),因而使整体加/解密作业更有效率及降低复杂度。此外,本发明所揭露的加/解密SATA装置可将自二(串行式ATA)界面接收的选择性数据流加/解密。此外图12的加/解密SATA装置可将自串行式ATA及IDE界面接收的选择性数据流加以加/解密运算。实作包括一串行式ATA-to-USB(通用串行总线,Universal Serial Bus,USB)耦合(连接器),其可将自串行式ATA及USB附属件接收的选择数据流加/解密。

如以上所述,各种实施例能实作于许多商用装置中。这些装置包括,而不限于内部硬盘驱动器、CDROM、DVDROM、CDRW、DVDRW,及装有串行式ATA的快闪存储器;外部可携式硬盘驱动器、CDROM,DVDROM、CDRW、DVDRW,装有串行式ATA界面的闪存储器;串行式ATA-to--IDE/IDE-to--串行式ATA模组、串行式ATA-to--USB/USB-to-串行式ATA模组、个人电脑(PC)、笔记本电脑、膝上型PC,及图形输入板(Tablet)PC等。

精于此技术人士可了解,其他组件及/或组态,在不悖离本发明的目的及其范围时,可用于上述的实施例中。此外,所有名词均应以广泛的而与上下文匹配方式解释。特别是,″包含″及″包括″应以非排除方式解释参考的元件,组件,或步骤,指出其出现,被使用,或与其他组件合用,或未表明参考的组件,元件或步骤合用。

本发明已以较佳实施例详细说明,但应了解不同的修改及变化在不悖离本发明的精神及范围下,均可实施。此一方面,甚为重要的是实施本发明不限于以上所述的应用。许多其他应用及/或变化在无悖于本发明的目之下均可使用。

以上所述是借由实施例说明本发明的特点,其目的在使熟习该技术者能嘹解本发明的内容并据以实施,而非限定本发明的专利范围。故,凡其他未悖离本发明所揭示的精神所完成的等效修饰或修改,仍应包含在以下所述的申请专利范围中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号