自动执行ATA/ATAPI指令的方法技术

技术编号:2853492 阅读:267 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭露一种自动执行至少一指令集来沟通一主机与至少一具有多个不同大小缓存器的外围装置的方法。该主机包含有一储存装置,一主机处理器,一主机控制器,以及一无须额外处理器帮忙的指令解译器。该方法包含有:利用该主机处理器于该储存装置中建立该指令集;利用该主机处理器来触发该指令解译器从该储存装置直接读取该指令集;以及利用该指令解译器来执行该指令集以控制该主机控制器存取该外围装置中该多个缓存器。

【技术实现步骤摘要】

本专利技术提供一种方法,尤指一种自动执行指令来控制一主机与一外围装置之间的资料交换的方法。
技术介绍
在这信息导向的社会,电子信息存取装置在商业上或是在家用应用上正逐渐地扮演很重要的地位,举例来说,个人计算机、光学储存装置以及其它外围装置已经广为人们所接受,并且也已成为重要的科技产品。为了结合上述这些科技产品的功能以及优点,必须要采用总线来连接前述的科技产品,举例来说,经常采用的总线有IDE总线(也称为ATA总线、PATA总线)或是SATA总线。请参阅图1,图1为公知电子系统10的示意图。电子系统10包含有一主机(host)11以及一ATA/ATAPI装置18。主机11包含有一中央处理器(CPU)12,一存储器14电连接至该中央处理器12,以及一ATA/ATAPI主机控制器16电连接至中央处理器12以及存储器14。ATA/ATAPI装置18藉由一总线(譬如一ATA/ATAPI总线)而电连接至ATA/ATAPI主机控制器16。在此,考虑从主机11传递资料至ATA/ATAPI装置18的动作,举例来说,中央处理器12输出ATA/ATAPI装置18所需的资料至存储器14,接着,中央处理器12会控制ATA/ATAPI主机控制器16来取得存储器内的资料,并且进一步将资料传递至ATA/ATAPI装置18;另一方面,关于从ATA/ATAPI装置18传递资料至主机11的动作,首先,中央处理器12控制ATA/ATAPI主机控制器16从ATA/ATAPI装置18取得欲传输的资料,并且将所取得的资料存入存储器14中。如业界所公知,ATA/ATAPI主机控制器16为一经由中央处理器12驱动的被动零件,此外,主机控制器16是根据ATA/ATAPI协议来与ATA/ATAPI装置18进行沟通。一般来说,ATA/ATAPI协议是经由中央处理器12所执行,其程序如下所述。首先,中央处理器12藉由ATA/ATAPI主机控制器16送出一指令至ATA/ATAPI装置18,并等待从ATA/ATAPI装置18送出的中断请求(interrupt);检测ATA/ATAPI装置18的状态;激活该指令所须的数据传输;检测该指令的执行结果;以及接着继续执行下一个指令。所以,上述的操作需要中央处理器12多次的介入来完成数据传输的目的。举例来说,如果主机11发出一指令至ATA/ATAPI装置18,主机11必须先检测ATA/ATAPI装置18的状态,接着藉由写入一I/O缓存器来发出一指令至ATA/ATAPI装置18。这些步骤都需要好几次的I/O周期(I/Ocycle)才能完成,而这些I/O周期都会消耗时间,而I/O周期的操作时间皆受限于ATA/ATAPI的规格。在发出一指令后,主机11需要等待ATA/ATAPI装置1 8准备好传输或接收资料,而当ATA/ATAPI装置18准备好以后,ATA/ATAPI装置18会送出一中断请求INTRQ来通知主机11可以开始传输资料。对于主机11而言,中断请求INTRQ为一输入的中断信号,因此,主机11便需要处理该事件、检测状态以及接着开始数据传输,而这些步骤会一直地重复,直到所有的资料都传输完毕为止。当一外围装置的响应时间较长时,中央处理器便会耗费相当多的时间来等待该外围装置的响应以及检测该外围装置的状态。在所有的资料都传输完毕以后,ATA/ATAPI装置18必须把该指令已经处理完毕的信息告知主机11,此外,主机11也必须再一次地检测状态。以主机11所执行的多任务系统(multi-task system)为例,主机11必须要切换正在处理中的多个工作以处理多个事件,并且等候许多I/O周期来检测状态以处理可能发生的错误;因此,无论中央处理器12的运算速度有多快,被执行的ATA/ATAPI指令若越多,则中央处理器12就需要消耗越多的处理时间。请参阅图2,图2为公知DMA数据传输的流程图。如图2所示,DMA数据传输包含有下列步骤步骤100开始;步骤102主机11读取一状态缓存器(status register)或是一备用状态缓存器(alternative status register),直到BSY=0以及DRQ=0;步骤104主机11将一适当的DEV位写入一Device/Head缓存器;步骤106主机11读取该状态缓存器(status register)或是该备用状态缓存器直到BSY=0以及DRQ=0;步骤108主机11写入需要的参数至一Features缓存器、一Sector Count缓存器、一CHS缓存器以及该Device/Head缓存器;步骤110主机11初始化一DMA信道(DMA channel);步骤112主机11将一ATA/ATAPI指令码写入一指令缓存器(commandregister);步骤114ATA/ATAPI装置18设定BSY=1以及准备开始执行该指令码;步骤116ATA/ATAPI装置18检测是否有错误发生?如果有一个错误发生,则执行步骤118;若则,执行步骤122;步骤118ATA/ATAPI装置18设定状态位(status bit)以及错误位(errorbit);步骤120ATA/ATAPI装置18检测是否继续数据传输?若数据传输仍必须继续,则执行步骤122;否则,执行步骤126;步骤122ATA/ATAPI装置18发出一DMARQ,并继续数据传输;步骤124ATA/ATAPI装置18检测是否还有资料需要传输?如果还有资料需要传输,则执行步骤130;否则,执行步骤126;步骤126ATA/ATAPI装置18设定BSY=0以及DRQ=0,发出INTRQ并收回DMARQ,接着执行步骤130;步骤128主机11重置该DMA信道,并且执行步骤132;步骤130ATA/ATAPI装置18继续发出DRQ或是BSY,并且接着执行步骤116;以及步骤132结束。首先,主机11需要检测ATA/ATAPI装置18的状态(步骤102),因此,主机11是轮询(poll)该状态缓存器中一忙碌位(busy bit)BSY以及一资料请求位(data request bit)DRQ;在此请注意,该忙碌位为ATA/ATAPI装置18中一控制电路(control logic)所设定,用以指出现在ATA/ATAPI装置18的状态是否为一可存取状态,而该资料请求位则用来指出ATA/ATAPI装置18是否请求其与主机11之间的数据传输。因此,主机11必须不断地等候直到BSY=0以及DRQ=0(步骤104)。接着,主机11会于Device/Head缓存器中写入适当的DEV位;在此请注意,Device/Head缓存器是用来纪录进行任一磁盘存取操作所需的ATA/ATAPI装置的识别号码(ID number)以及磁头号码(headnumber)。在步骤104之后,主机11需要再次检测ATA/ATAPI装置18的状态,因此,主机11会轮询该状态缓存器直到BSY=0以及DRQ=0(步骤106)。接着,主机11写入所需的参数至ATA/ATAPI装置18中的缓存器以指出欲透过总线传输的资料区块的数目(步骤108)。假设电子系统10是处理一数据传输的指令(举例来说,数据传输是指一DMA数据传输),因此,主机11会初始化一DMA信道(步骤110)并且本文档来自技高网...

【技术保护点】
一种自动执行ATA/ATAPI指令的方法,自动执行至少一指令集来沟通一主机以及至少一具有多个不同大小缓存器的外围装置,该主机包含有一储存装置,一主机处理器,一主机控制器,以及一无须额外处理器辅助的指令解译器,该方法包含有下列步骤:利 用该主机处理器于该储存装置建立该指令集;利用该主机处理器来触发该指令解译器以直接从该储存装置读取该指令集;以及利用该指令解译器来处理该指令集以控制该主机控制器存取该外围装置中该多个缓存器。

【技术特征摘要】
US 2004-11-3 10/904,3191.一种自动执行ATA/ATAPI指令的方法,自动执行至少一指令集来沟通一主机以及至少一具有多个不同大小缓存器的外围装置,该主机包含有一储存装置,一主机处理器,一主机控制器,以及一无须额外处理器辅助的指令解译器,该方法包含有下列步骤利用该主机处理器于该储存装置建立该指令集;利用该主机处理器来触发该指令解译器以直接从该储存装置读取该指令集;以及利用该指令解译器来处理该指令集以控制该主机控制器存取该外围装置中该多个缓存器。2.如权利要求1所述的方法,其中该外围装置为一ATA/ATAPI装置,以及该主机控制器为一ATA/ATAPI控制器。3.如权利要求1所述的方法,其中该指令集包含有一指令码,以及该方法包含有利用该指令解译器来计时该指令码的执行时间,其中当该指令码的执行时间到达一预定时间时,该指令解译器会放弃执行该指令码的操作。4.如权利要求1所述的方法,其另包含有步骤利用该指令解译器来执行一指令码以指出该指令集的结尾。5.如权利要求1所述的方法,其中该指令集包含有一指令码,以及该方法另包含有利用该指令解译器来执行该指令码以驱动该主机控制器侦测来自该外围装置的一信号的状态是否改变。6.如权利要求5所述的方法,其中该信号为一INTRQ。7.如权利要求6所述的方法,其中该指令解译器可以决定是否要将该INTRQ传递至该主机处理器。8.如权利要求1所述的方法,其中该指令集包含有多个指令码,以及该方法另包含有利用该指令解译器来执行一指令码以评估该外围装置中一缓存器的内容,其中该缓存器的内容是由另一指令码所设定,以及如果该缓存器的内容符合一预...

【专利技术属性】
技术研发人员:陈展辉郑宇伦
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1