CN1175838A - 从通信接口装置所接收分组数据提取控制信息的方法、系统 - Google Patents

从通信接口装置所接收分组数据提取控制信息的方法、系统 Download PDF

Info

Publication number
CN1175838A
CN1175838A CN97110869A CN97110869A CN1175838A CN 1175838 A CN1175838 A CN 1175838A CN 97110869 A CN97110869 A CN 97110869A CN 97110869 A CN97110869 A CN 97110869A CN 1175838 A CN1175838 A CN 1175838A
Authority
CN
China
Prior art keywords
address
data
dma
video data
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN97110869A
Other languages
English (en)
Inventor
R·T·贝克尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN1175838A publication Critical patent/CN1175838A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Processing Or Creating Images (AREA)
  • Synchronizing For Television (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Transfer Systems (AREA)

Abstract

在PCI接口装置(20)中,本发明自主输出来自数据分组(426)的视频数据(440),该数据分组包括标题部分(428)和视频数据部分(430)。本发明接收数据分组传递装置(20)中的数据分组(440),并使一地址与数据分组(426)内的多个地址字段(428,418)发生关系。对标题部分(428)和视频数据部分内的地址段进行译码,以确定标题部分是否包括垂直同步信号(407)。还对地址段进行译码,以确定视频数据部分是否包括水平同步信号(409)。标题部分脱离视频数据部分后,使视频数据部分(430)流入变焦端口。

Description

从通信接口装置所接收分组数据 提取控制信息的方法、系统
本发明申请是1996年4月26日所提交的临时申请号为TI-22691的美国专利申请的继续,该申请名为“接收数据分组(packet)的信道号分配方法和系统”,现在的美国专利号为,这里引用作为参考。
本发明涉及电子装置领域,尤其涉及一种通信接口装置,更具体地说,本发明涉及一种用于从经由诸如符合IEEE 1394标准或类似计算机接口标准的特定平台通信PCI接口装置传送的分组数据(packet data)中提取控制信息的方法。
对于许多多媒体的应用,不仅处理器速度是重要的,输入/输出带宽也是一个限制个人计算机应用的关键性因素。为了解决此限制,IEEE 1394标准使摄录机、电视机、立体声系统、CD变换器、顶盒、组合控制台和音乐键盘,以及传统的个人计算机装置能进行多媒体连接。公知的“火线”标准IEEE 1394提供了一种用于便携式和桌面计算的环境。IEEE 1394标准用作一种为消费者与计算机市场搭桥以及描述最新通信协议所驱动的串行总线的重要连接技术。IEEE 1394串行总线设计成在提供高性能外部总线所需的数据发送速率的同时降低系统成本。
由电气及电子工程师协会(IEEE)及其成员名单上的计算机公司改进的IEEE1394标准是一能进行低成本、高性能数字数据发送和通信的串行总线接口。通过异步和等时数据发送模式的装置间发送速度均可达到每秒400兆字节(mbps)。IEEE1394标准接口工作于等时性时段系统,所以适合视频应用。例如,如果构成的系统每1/15秒输出一帧,则在发出的每个分组中至少存在一帧。这使得图像平滑。因此,IEEE 1394标准接口非常适用于也以等时方式工作的异步传递模式(ATM)等技术。
IEEE 1394标准的优点是有利于多媒体应用的理想互连的数据实时发送。通过使用小型、耐用和可伸缩的电缆以及电缆接头,IEEE 1394标准可节约成本且免去对电缆的某些要求。IEEE 1394标准在提供了印刷电路板空间统一,而且和输入/输出端口综合在一起的通用输入/输出互连。此外,IEEE 1394标准提供了一种可允许外部设备相互直接通信而不加重主机负担的对等的通信结构。
IEEE 1394标准提供了一种使用包括标题的分组数据的高速串行总线。标题包括路由选择信息。此外,分组数据还包括有效负载数据。不需要把媒体的物理特性适用于长发送距离。IEEE 1394标准设计成用于短距离,如在桌面总线上运转的局域网等。虽然该距离比桌面长,但IEEE 1394标准不试图用于局域网的操作。因此,事实上,IEEE 1394标准提供了一种高速互连,以替代用于访问工作站、局部计算机、电视机、VCR以及具有音频、视频和文本等各种媒体类型的摄录机等装置的串行总线和并行总线。
与现有接口装置有关的一个限制是没有一种有效的方法可提供自动从多种类型桌面摄像机(诸如某些Sony桌面摄像机)中接收视频数据分组并向显示器接口总线发送有效负载视频数据的途径。IEEE 1394标准总线中把视频数据导入PC的一个方法是把变焦或视频数据馈入使变焦视频数据可输入相应计算机的端口。现在公知视频芯片组有能力用硬件操纵理从变焦端口进入的窗口。这使得可在硬件操纵的窗口中自动显示视频图像,而不需要软件操作的支持。
与现有提取控制信息的方法有关的另一限制是关于数据格式。例如,某些Sony摄像机提供经IEEE1394标准总线传送的实时YUV数据。与此原始数据有关的一个限制是它引入了不适用于其它摄像机所使用格式的特殊格式。
与此分组数据中提取控制信息有关的另一个问题是由于IEEE 1394标准是一个相当新的PCI接口标准,现有或将来的系统不一定都以同样方式完全按照IEEE1394标准。此限制可使一些按照IEEE1394标准的系统不必简单地相互适应。
与依据IEEE1394标准或类似标准控制和适应分组数据传送有关的另一个重要限制涉及从数据分组中除去水平和垂直同步标题。在现有IEEE1394标准总线和相关的PCI串行总线接口装置中,没有一种有效而快速的机构来卸下水平和垂直同步信号,从而控制显示器并适当地使用相关的水平图像数据。
依据上述限制,需要一种综合来自PCI接口装置的变焦视频端口输出的方法和系统,从而可综合来自用于IEEE 1394标准或类似通信接口总线的接口装置的变焦视频端口输出。
还需要一种有助于建立数据编码和装组的方法和系统,从而用于更好地推进遵照IEEE 1394标准和类似PCI接口标准的系统和元件。
还需要一种从经由IEEE 1394总线传送的数据分组发送中自主产生用于视频方面的控制信号的方法和系统。
依据本发明,提供了从分组数据中提取控制信息的方法和系统,从而基本上消除或减少相应于IEEE 1394标准或类似PCI接口装置中用于从分组数据提取控制信息的目前已开发方法和系统的问题。
依据本发明的一个方面,提供了一种从数据分组自主输出视频数据的方法和系统,该数据分组包括标题部分和视频数据部分。此方法和系统在PCI接口装置中接收数据分组。数据分组有一个相应的地址并包括多个数据分组的地址字段。本发明还包括对标题部分进行译码以确定标题部分是否包括垂直同步信号,对数据部分进行译码以确定数据部分是否包括水平同步信号的步骤。此外,本方法和系统包括把标题部分从视频数据部分中分离出来,并使视频数据部分流入变焦端口。
本发明在技术上的一个优点是它提供了以下的方法,即一旦系统正在进行操作,即自备视频数据,并需要通过IEEE 1394标准或类似总线将控制信息传送到硬件操作的窗口的信息,不需要任何软件的支持。
本发明在技术上的另一个优点是它提供了以下的方法,即根据包含在数据分组标题中的一些数据分组信息以及来自给定视频摄像机装置的数据字段,产生用于个人计算机变焦端口的控制信号,并使其同步。
本发明在技术上的再一个优点是它解决了从包含嵌入控制信息(如编码视频信号等)的分组数据中,自主提取诸如水平同步信号或垂直同步信号之类控制信息的问题。
本发明在技术上的又一个优点是提供了在正确的环境下进行输出时自主产生控制信号的机构。
本发明的还有一个优点是用于通过改变地址或数据样式来产生灵活的控制信号。
本发明的再一个优点是提供了以最少的外部介入,从数据流中选择控制信号的机构。这用于从微处理器外部所产生数据自主产生垂直和水平同步信号信息。
参考以下描述并结合附图可更完整地理解本发明及其优点,在图中相同的标号表示相同的特征,其中:
图1示出体现本发明的个人计算机环境的操作概况;
图2提供了本发明功能逻辑的一般操作概况;
图3示出用于本发明的比较器逻辑的概念图;
图4提供了代表本发明的比较器逻辑的更详细概念;
图5详细示出用于本发明数据分组接收器逻辑的标题比较器的功能;
图6到9示出适用于本发明的匹配数据组字段的数据值;
图10示出本发明的可编程选择性可写数据触发器的一个实施例;
图11提供了用于实现本发明可编程位选择方面的地址字段实施例;
图12提供了在时间上多路复用的多通道环境直接存储器存取的图,以示出本发明的DMA命令处理操作;
图13提供了一表,用于示出根据当前工作通道进行的优先级分配;
图14示出适用于自引导功能的本发明部分接口装置的结构;
图15提供了一表,列出在图14的自引导引脚设定为有效时相应于内部PCI地址中位31和30的PCI主线命令;
图16以方框图的形式示出本发明的局部总线接口;
图17以图表示出本发明的接口装置在检测是否存在水平和垂直同步信号时的逻辑;
图18示出本发明的另一个方面,包括将单个数据分组导向单一扫描线的操作;
图19示出本实施例中用于把单个数据分组映射到多个视频扫描线中的操作;
图20示出数据分组控制列表数据结构的存储映像和本发明的DMA数据分组处理器所使用的数据缓存器;
图21示出表示本发明数据分组处理器操作的DMA机局部流程图;
图22提供了示出本发明异步发送操作的DMA机局部流程图;图23是示出本发明等时发送操作的DMA机的局部流程图;
图24提供了本发明示例的辅助功能的流程图;
图25示出本发明局部总线去/来PCI总线操作的DMA机局部流程图;
图26在概念上画出在高电平下,本发明的FIFO电路中产生的功能。
在附图中示出本发明的较佳实施例,在各图中相同的标号相应于相同和相应的部分。
图1在概念上示出个人计算机环境10,它包括用虚线框12示出的个人计算机12以及用虚线框14示出的相关外围装置。在个人计算机12内有控制个人计算机操作的各种总线和结点。例如,接口总线16支持3端口物理层18和本发明接口装置20的通信。串行的EPROM 22支持PCI接口装置20的操作。PCI接口装置20还与PCI总线24和辅助端口局部总线26相接。与PCI总线24通信的还有局部总线28和PCI代理机30和32。PCI主机桥路34在局部总线28和PCI总线25之间起桥接的作用。辅助端口局部总线26与快速PROM(或RPLROM)36、直接存储器存取(DMA)通道控制静态RAM(SRAM)38、用户定义功能(AUX)40以及用于视频输入和输出的变焦视频(ZV)端口42进行通信。主机局部总线28与主机CPU 44和本机存储器46进行通信。
可与物理层接口装置18通信的外部装置14包括CD ROM装置48、激光打印机50、桌面摄像机52以及与视频电缆顶盒相接的数字盒式录像机(VCR)。
在图1中,PCI接口ASIC 20实施初级功能,即控制支持PCI总线24的环境中进行操作的装置与在高速输入/输出外部环境诸如所建立的IEEE 1394-1995标准环境中进行操作的装置之间的数据分组传送。本实施例的PCI接口ASIC20依照IEEE标准1394-1995和PCI特殊版本2.0。此外,PCI接口ASIC 20执行循环主控功能,尤其是在IEEE 1394-1995环境下,并具有检测循环失漏开始消息的能力。PCI接口ASIC 20具有产生用于发送IEEE 1394标准数据分组的32位循环冗余校验(CRC)信号的能力,以及在接收到该数据分组后进行32位CRC校验的能力。PCI接口ASIC 20支持PCI接口ASIC 20和物理接口层18之间的等时隔离。此外,PCI接口ASIC 20支持100、200和400mbps的IEEE 1394发送速率,并提供三种可编程FIFO(例如,异步发送、等时发送和通用接收)。
如下文所述,PCI接口ASIC 20提供了用于接收输入的数据分组并把它们分配给DMA通道的可编程通道地址比较器。在至少一个实施例中,本发明提供了五个分散-集中DMA通道,在这里可对每个通道的数据分组操作进行编程,以支持(1)异步数据分组发送,(2)等时数据分组发送,(3)异步数据分组接收,以及(4)等数据分组接收功能。
PCI接口ASIC 20也提供了支持DMA操作的PCI主总线功能,以及用于对内部寄存器进行读写访问的PCI从动功能。通过实现32位PCI地址数据通路,PCI接口ASIC 20不仅能进行PCI地址数据奇偶校验,也能对中断事件进行软件控制。此外,PCI接口ASIC 20对变焦视频(ZV)端口提供了8位或16位接口,用于把视频数据直接传递到外部的电视影片贮藏公司。
图2提供示出本发明PCI接口ASIC 20功能划分的方框图58。PCI接口ASIC20内的逻辑包括PCI总线逻辑60,该逻辑60包括用于与串行EPROM22进行通信的串行EPROM接口62。PCI主逻辑64和PCI从逻辑66以及PCI配置和控制状态寄存器68提供了与PCI总线24通信用的必要逻辑。局部总线接口逻辑70提供了辅助端口局部总线26接口用的必要控制逻辑。
在PCI接口ASIC 20内,DMA逻辑72包括DMA机74,以及用于控制PCI总线逻辑60和FIFO逻辑78的操作以及与其通信的DMA控制与状态寄存器76。FIFO逻辑78包括通用接收FIFO 80、异步发送FIFO 82、等时发送FIFO 84、指示字地址映射逻辑86以及FIFO控制与状态寄存器88。
链路层控制逻辑90包括控制和报告链路层控制逻辑90中所有功能的状态的控制与状态寄存器92。数据分组发送控制逻辑98和数据分组接收控制逻辑102用逻辑、循环计时器94和循环监视器96进行工作。实线链路接口逻辑104包括并行-串行变换和串行-并行变换功能。
在图2中,PCI总线逻辑60实现PCI接口ASIC 20与PCI总线24接口用的逻辑。PCI从逻辑66对外部PCI代理机提供了读写从动接口控制逻辑的功能,用于评估应用软件所需PCI接口20的所有控制与状态寄存器68、76、88和92,以控制PCI接口ASIC 20的操作并监视其操作状态。PCI主逻辑64对DMA逻辑72提供了在用作主装置的PCI总线24上起动数据传送的能力。
个人计算机系统12的应用软件可使用PCI配置控制与状态寄存器68来配置PCI接口ASIC 20,并对其进行编程。这包括PCI所需的控制和基本寄存器,以及用于PCI接口ASIC 20的中断控制与状态信号和杂项控制与状态寄存器。局部总线接口逻辑70包括辅助端口,以连接和控制RAM、ROM、辅助功能、变焦视频端口和四个GPIO接口。此外,串行EEPROM接口62提供了升电源(power up)后需要的某些PCI配置数据和恒定的系统控制寄存器信息。
串行EEPROM接口62提供了PCI接口ASIC 20与串行EEPROM 22之间的通信(图1)。在升电源后,串行EEPROM接口62根据串行EEPROM 22对位于PCI配置寄存器68中的少量位置进行初始化。在串行EEPROM状态机正在访问串行EEPROM 22时,终止任何输入的PCI从动访问,使其处于重试状态。
串行EEPROM 22也包括用于PCI配置控制与状态寄存器68的配置数据。由主机CPU 44通过串行EEPROM 22的控制寄存器来模拟2线串行总线协议,从而对此信息进行读写。由主机处理器44通过把串行EEPROM 22输出启动位的值设定为“1”,然后访问数据和时钟位以模拟两线串行总线协议,来操纵2线串行总线。PCI配置控制和状态寄存器68包括用于对2线串行总线协议事件进行的计时提供时间基准的计时器位。
PCI主逻辑64实现使PCI接口ASIC 20在PCI总线24上作为主装置进行操作所需的控制。此逻辑可提供存储器读出、存储器写入、存储器读出线和存储器写入线的操作以及写入无效指令。对于存储器的读出功能,PCI接口ASIC 20的DMA读出操作使PCI总线上产生存储器读出线的存储器读出命令。至于存储器写入操作,PCI接口ASIC 20的DMA写入操作使PCI总线上产生PCI存储器写入、PCI写入线或存储器写入无效命令。
PCI从逻辑66进行使PCI接口ASIC 20在PCI总线上作为从动装置进行操作所需的控制逻辑。在启动时,PCI从逻辑66的功能响应于包含在68中的各基本地址寄存器规定的PCI存储器地址区的存储器读出或写入命令。PCI从逻辑66在被杂项控制寄存器中的从动突发位启动时,进行从动突发发送。PCI从逻辑66在被杂项控制寄存器中的控制位启动时,进行指定的写入操作。
PCI配置控制和状态寄存器68为系统和设备软件提供进行PCI接口ASIC 20的PCI操作配置的能力。
局部总线接口70提供了一组共享公共逻辑的特殊输入/输出端口。这些端口可从PCI总线24或DMA装置74进行访问。这些端口上的外部装置不能用作主装置。这些端口使得PCI接口ASIC 20连到外部装置或用于在这些装置之间提供自主数据发送的接口。除了变焦视频总线接口以外,所有的局部总线接口都与本机时钟PCI时钟提供的一种版本同步。根据PCI时钟即IEEE 1394时钟或外部时钟的版本对ZV端口时钟进行编程。
局部总线接口逻辑70提供了共享的局部地址总线、具有可编程写入状态和准备状态的共享8位或16位读出或写入数据总线,在本实施例中,局部地址总线是一16位的地址总线。在ROM、RAM、AUX和ZOOM端口功能中共享局部总线地址和数据总线。ZV输出端口提供了有效的水平同步、垂直同步数据有效以及ZV-PIXEL.CLR的等功能。局部总线接口逻辑70的其它输入和输出包括四根通用I/O(GPIO)引脚,其特征是具有方向和极性可编程的功能。本实施例中局部总线接口逻辑70中的杂项信号包括局部总线时钟输出、复位输出、中断输入和外部准备输入。PCI配置控制和状态寄存器68提供了局部总线接口逻辑70操作配置所需的控制指令和信息。
PCI接口ASIC 20包括远端程序加载(RPL)只读存储器(ROM),该存储器对个人计算机12提供从所附的RPL ROM中读出引导代码的能力。这使得系统从IEEE1394装置进行引导,即使系统在电源复位时可能缺乏特殊的IEEE 1394引导代码。此外,ROM接口将被推广到提供不只访问RPL ROM的功能。局部总线接口逻辑70支持PCI对快速PROM 36、SRAM 38和图1中出现的其它类似RAM的装置进行从动和内部DMA读出/输入访问。ROM访问由PCI配置控制和状态寄存器68控制,并通过把1写在ROM基局部址寄存器的最低有效位上来启动。ROM接口可按8位或16位宽的数据,即规定数目的等待状态或类似的功能,进行配置。在电源复位时,通过串行PROM 22配置若干任选ROM,并通过PCI从动通道进入。
通过PCI配置控制和状态寄存器68内基于第二PCI存储器的寄存器来访问RAM接口。此存储器可用于DMA控制结构或其它功能的数据缓存器(或共享存储器)接口,诸如数字信号处理器。RAM接口可按16位或8位宽的数据,即规定数目的等待状态,进行配置,或外部固定。
辅助接口是可通过PCI配置控制和状态寄存器68内基于第三PCI存储器的地址寄存器进行访问的通用输入/输出端口。此端口可实现外部专用资源(诸如装组/拆组逻辑或视频处理器/帧缓存器)的高速数据通道。如果ZV端口被启动,则AUX地址空间的一部分被映象到ZV端口。否则,此空间可作为较佳实施例中的部分辅助地址存放处。在较佳实施例中,辅助接口可按8位或16位宽的数据,即规定数目的等待状态,进行配置,或外部调定。
在较佳实施例中FIFO逻辑围绕单个256×33的时钟双端口RAM进行设计,它分成三个逻辑FIFO。每个FIFO可编程的规模为0到256个字。对于给定的FIFO规模组合,三个FIFO的规模总和应小于或等于256个字。
通用接收FIFO(GRF)80包括用于访问FIFO双端口RAM的读出和写入指针对。每个指针从0到其fifo规模值减1的范围内计数。由产生偏移值的逻辑设定每个指针的FIFO RAM寻址范围。此偏移应加到指针的值中,以把此偏移映象到唯一的RAM地址范围。现用DMA通道使用读出指针从RAM的PCI一侧读出异步或等时数据分组,并把它们写入主机存储器中。IEEE 1394接收器使用写入指针把异步或等时数据分组(在IEEE 1394总线上接收的)写入FIFO RAM的链路一侧。两个指针通过同步装置逻辑连到FIFO RAM的两侧,因为FIFO双端口RAM的每一侧都属于不同的时钟域。
异步发送FIFO 82包括用于访问FIFO双端口RAM的读出和写入指针对。每个指针从0到其fifo规模值减1的范围内计数。由产生偏移值的逻辑设定每个指针的FIFO RAM寻址范围。此偏移应加到指针的值中,以把此偏移映象到唯一的RAM地址范围。现用DMA通道使用写入指针把异步数据分组(从主机存储器中读出的)写入RAM的PCI一侧。IEEE 1394发送器会使用读出指针从FIFO RAM的链路一侧读出异步数据分组,在IEEE 1394总线上对它们进行发送。两个指针通过同步装置逻辑连到FIFO RAM的两侧,因为FIFO双端口RAM的每一侧都属于不同的时钟域。
等时发送FIFO 84包括用于访问FIFO双端口RAM的读出和写入指针。每个指针从0到其fifo规模值减1的范围内计数。由产生偏移值的逻辑设定每个指针的FIFO RAM寻址范围。此偏移应加到指针的值中,以把此偏移映象到唯一的RAM地址范围。现用DMA通道使用写入指针把等时数据分组(从主机存储器中读出)写入RAM的PCI一侧IEEE 1394发送器会使用读出指针从FIFO RAM的连接一侧读出等时数据分组,在IEEE 1394总线上对它们进行发送。两个指针通过同步装置逻辑连到FIFO RAM的两侧,因为FIFO双端口RAM的每一侧都属于不同的时钟域。
指针双端口地址映象逻辑86使用来自FIFO规模寄存器的三个规模值把每个FIFO读出-写入指针对映射到FIFO双端口RAM中的唯一地址范围。应依据下表所示的公式产生指针地址映象功能:
    读出-写入指针地址映象逻辑
令ITF=等时发送FIFO令ATF=异步发送FIFO令GRF=通用接收FIFO
等时发送FIFO指针RAM地址=ITF指针值(0到(ITF规模-1))+0x00
异步发送FIFO指针RAM地址=ATF指针值(0到(ATF规模-1))+ITF规模
通用接收FIFO指针RAM地址=GRF指针值(0到(GRF规模-1))+(ITF规模+ATF规模)
FIFO控制和状态寄存器88对FIFO逻辑78实施控制和状态寄存器设定。FIFO控制和状态寄存器88包括用于设定每个逻辑FIFO规模的FIFO规模寄存器。此寄存器对等时发送FIFO 84、异步发送FIFO 82和通用接收FIFO 80的规模编程提供了三个规模参数。通过从动PCI 66的读写操作来访问此寄存器。PCI一侧的FIFO指针读写端口提供了使软件取出PCI一侧指针的当前值或把一值写入它们的从动PCI 66读写端口。链路一侧的FIFO指针读写端口提供了使软件取出链路一侧指针的当前值或把一值写入它们的PCI从动读出端口。通用接收FIFO弹出-推入端口可接收32位的从动写入操作,以使数据四字节组推入到GRF 80顶部。从此端口的32位从动读出操作可使数据四字节组从GRF 80顶部弹出。异步从属FIFO弹出-推入端口可接收对此端口的32位从动写入操作,以使数据四字节组推入异步发送FIFO 82的顶部。从此端口的32位从动读出操作可使数据四字节组从异步发送FIFO 82顶部弹出。等时发送FIFO弹出-推入端口可接收对此端口的32位的从动写入操作,以使数据四字节组被推入到等时发送FIFO 84的顶部。从此端口的32位从动读出操作可使数据四字节组从等时发送FIFO 84顶部弹出。FIFO控制标记状态读出端口提供了从动读出操作,以返还从三个FIFO中先前被访问的一个FIFO弹出的最后一个数据四字节组的位33的值。FIFO诊断测试和控制寄存器为软件提供了PCI从动读写端口,以构成用于诊断测试的FIFO逻辑并控制其操作。发送FIFO阈值寄存器也为软件提供了PCI从动读写端口,以设定用于异步和等时发送FIFO的发送阈值。
CRC逻辑100实施用于进行以下功能的逻辑,包括在发送器产生的分组数据流的标题部分上产生32位自诊断CRC误差代码。发送器把此代码插入标题后的数据流中。对于具有数据有效负载的数据分组,CRC逻辑100在发送器逻辑产生的分组数据流的数据有效负载部分上产生32位的自诊断CRC误差代码。发送器把此代码插入数据分组流的末尾。如果计算所得代码等于随分组发送的标题CRC代码,则接收器认为此标题正确。此外,CRC逻辑100在输入分组数据流的有效负载部分上产生32位的自诊断CRC误差代码。如果计算所得代码等于随分组发送的数据CRC代码,则接收器认为此数据有效负载正确。
1394层逻辑90实施IEEE 1394-1995标准中规定的IEEE 1394链路层控制逻辑(LLC)。此功能控制了在IEEE 1394总线上FIFO逻辑78和其它装置之间的IEEE1394分组数据的发送和接收。
1394链路层控制和状态寄存器92实现用软件控制LLC的操作,监测其操作所需的控制和状态寄存器逻辑。1394总线数-结点数寄存器为应用软件提供了对总线和结点数进行编程的接口。1394链路层控制寄存器为应用软件提供了控制LLC操作模式的接口。1394链路层中断状态寄存器提供了使应用软件对LLC产生的中断源进行译码的接口,还提供了清除中断状态的机构。1394链路层中断启动寄存器提供了使应用软件选择性地启动中断状态寄存器中状态位以产生LLC中断,或不启动这些位产生LLC中断接口。1394循环计时寄存器提供了使应用软件用起始值对循环计时器进行编程或读出其当前值的接口。当LLC用作循环主控时,此计时器应每126微秒对循环起始数据分组的发送进行计时。1394物理层访问寄存器提供了使应用软件把数据写入物理层接口18控制和状态寄存器或从其中读出的接口。
1394诊断测试控制寄存器提供使应用软件对1394 LLC逻辑进行诊断测试的接口。1394链路层控制和状态寄存器92也包括DMA通道4-0的字0接收数据分组比较值寄存器。每个寄存器分配给一个DMA通道比较器逻辑功能。DMA通道比较器使比较值寄存器中选定的一组位的位置与输入数据分组中第一四字节组(字0)的相应位的位置匹配。由包含在字0接收数据分组比较屏蔽寄存器中的屏蔽值规定要匹配的位的位置。DMA通道4-0字0接收数据分组比较屏蔽寄存器分配给相应的DMA通道比较器。DMA通道比较逻辑使用此寄存器中的屏蔽值,选择要与字0接收比较值寄存器中相应位的位置匹配的字0中位的位置。将DMA通道4-0的字1接收数据分组比较值寄存器分配给DMA通道比较器逻辑功能。DMA通道比较器使比较值寄存器选择的一组位的位置与输入数据分组中第二四字节组(字1)的相应位的位置匹配。由包含在字1接收数据分组比较屏蔽寄存器中的屏蔽值规定要匹配的位的位置。也将DMA通道4-1的字1接收数据分组比较屏蔽寄存器分配给相应的DMA通道比较器。DMA通道比较逻辑使用此寄存器中的屏蔽值,选择要与字1接收比较值寄存器中相应位的位置匹配的字1中位的位置。
此外,1394链路层控制和状态寄存器92包括忙重试计数寄存器,当从目的结点接收到示忙的确认时,该寄存器的内容规定1394发送器应重试异步分组数据发送的次数。应由应用软件通过PCI从动通道对此寄存器进行读写。忙重试发送时间间隔寄存器包含在接收到用于每次试发的示忙确认信号时,发送器在连续重试之间必须延迟的时间间隔。由应用软件通过PCI从动通道对此寄存器进行读写。还有一个状态机矢量寄存器,它为软件提供监测LLC中运行的每个状态机的状态矢量的能力。此外,FIFO出错计数器计算数据分组发送期间在异步和等时发送FIFO 82和84上发生的欠载运行,以及在数据分组接收期间在GRF 80上发生的过载运行。
数据分组接收器控制逻辑102实施接收输入IEEE 1394数据分组所需的逻辑。接收器控制逻辑符合IEEE 1394-1995中规定的详细功能需求。这些包括以下功能:使用总线和结点寄存器和/或DMA通道接收数据分组比较器,以确定是否接受输入的异步或同步数据分组。CRC逻辑功能通过检查标题中的CRC来校验输入分组包含的正确接收。如果该分组包含有效负载,则应检查数据CRC,如果通过了寻址和CRC检查则应把接收到的数据分组装入GRF 80。数据分组接收器控制逻辑102产生对异步接收数据分组的确认信号。
循环计时器逻辑96实施完成循环计时器功能的逻辑。循环计时器逻辑96符合IEEE 1394-1995标准中规定的循环计时器功能的条件。循环计时器包含循环计数器和循环偏移计时器。偏移计时器根据1394 LLC控制和状态寄存器92中的循环主控和循环源位的状态进行自由运行、或按所选信号引脚上电平低到高的转换进行重新加载,或从计时器取重新加载值。循环计时器应用于支持同步数据的传送。循环时间应为32位宽。在本实施例中,低端12位作为模3072计数,它每24.476MHz时钟循环或(40.69纳秒)递增一次。接着高端13位应按8KHz(或125微秒)计数,最高的7位以秒计数。
循环监测逻辑94实施完成循环监测功能的逻辑。循环监测逻辑94支持等时数据传送,以监测LLC的动作并操纵安排等时动作。当循环监测逻辑94接收或发送一循环起始数据分组时,循环监测逻辑94通过产生循环启动或循环接收中断来表示发生了这些事件。循环监测逻辑94也检测遗漏的循环起始数据分组,并产生循环丢失中断。当等时循环结束时,循环监测逻辑94示出循环工作中断。当使1394 LLC控制和状态寄存器92中示出循环主控启动位时,循环监测逻辑94通知发送端发送循环起始数据分组。
1394数据分组发送控制逻辑实施控制IEEE 1394数据分组从等时发送FIFO82或异步发送FIFO 84移到物理层-链路层(PHY-LINK)接口逻辑104以在IEEE1394总线上发送的逻辑。发送控制逻辑98符合IEEE 1394-1995标准中规定的功能要求。发送控制逻辑98建立发送数据分组格式。
1394数据分组发送控制逻辑98卸下来自异步发送FIFO 84的四字节组,并对它们进行正确地格式化成为32位的并行1394异步数据分组流。控制逻辑98卸下来自等时发送FIFO 82的四字节组,并将它们进行正确地格式化成为32位的并行1394同步数据分组流。通过使用CRC逻辑来计算用于数据分组标题和有效负载部分的CRC代码,控制逻辑98在正在发送的数据分组的格式所需的时隙中把CRC代码插入数据分组流中。1394数据分组发送控制逻辑98把并行数据分组流输入到PHY-LINK接口逻辑,它们从并行转换到串行数据流格式,以发送到物理层(PHY)。
当LLC被编程作为循环主控时,1394数据分组发送控制逻辑98发送循环起始数据分组。1394数据分组发送控制逻辑98向PHY发送1394发送总线请求。PHY层将对此作出裁决,在接收到BUS许可时向发送器送出开始发送的指示。当响应于异步发送数据分组送回示忙确认信号时,1394数据分组发送控制逻辑98使用IEEE 1394-1995标准中规定的单态重试X协议执行重试发送。此外,1394数据分组发送控制逻辑98设定数据分组发送的速度。
PHY-LINK接口逻辑104实施用于把PCI接口ASIC 20接到物理层芯片上的逻辑。PHY-LINK接口逻辑104符合IEEE 1394-1995标准中对连接PHY接口条件的规定。此功能给PCI接口ASIC 20提供了得到物理层服务的通道。PHY-LINK接口逻辑104使用来自发送器的数据分组速度代码,以选择将产生的串行数据流的数目。如果速度代码设定为100mbps,则并行数据流被转换成两个串行数据流,每个数据流以50mbps的速度运行。PHY-LINK接口逻辑104使用PHY接收速度指示,把从自PHY输入的串行数据流转换成用于输入到接收控制逻辑的并行数据流。对于任意的输入数据分组,如果PHY以100mbps的速度接收该数据分组,则PHY将对PCI接口ASIC 20产生两个串行数据流,如果以200mbps的速度接收数据分组,则产生四个串行数据流。每个串行数据流的周期为50MHz。PHY-LINK接口逻辑104检测和接收来自PHY的串行状态响应,并把它们转换成并行格式。状态响应传达PHY中断指令和/或响应于PHY寄存器读出访问请求送回数据。PHY-LINK接口逻辑104检测和接收串行确认数据分组并把它们转换成并行格式。此外,PHY-LINK接口逻辑104接受发送器数据分组发送请求或PHY寄存器读写访问请求,并把它们格式化成为用于发送到PHY的串行请求数据流。此外,PHY-LINK接口逻辑104可随意选用PHY和PCI-LYNX装置之间的电等时隔离进行操作。
DMA逻辑74利用PCI主逻辑64来获得PCI总线24并用作一主装置。DMA逻辑72包括DMA机74,DMA机74包括优先级时分多路复用公共状态机。DMA机还包含用于根据所分配的优先级来激活通道的仲裁逻辑。此外,DMA控制和状态寄存器76对每个DMA通道提供服务,还提供了从PCI接口ASIC 20访问这些寄存器的PCI从逻辑66的数据通路控制。
DMA机74执行用于从PCI取得控制参数和数据缓存器指针的状态指针逻辑。状态指针逻辑或数据分组处理器利用这些参数来控制数据缓存器发、发数据传递。
图3示出包含在1394数据分组接收逻辑102中的标题比较逻辑,此1394数据分组接收逻辑102接收来自PHY-LINK接口逻辑104的32位分组数据流106。32位分组数据流106转到IEEE 1394接收器逻辑102,以及标号110所示的标题比较逻辑。PCI从逻辑66也对包含在110中的比较器控制寄存器提供32位的读/写访问。线117表示用于DMA通道0的标题比较匹配输出。线119表示用于DMA通道1的标题比较匹配。线121示出用于DMA通道2的标题比较匹配。线123示出用于DMA通道3的标题比较匹配。这些输出中的每一个都转到优先级编码器128和逻辑“或”电路129。优先级编码器128产生转到1394接收器逻辑102的DMA通道输出130。“或”逻辑电路129在线132上提供与接收器匹配的比较器控制逻辑信号,0表示不匹配,1表示匹配,该信号转到1394接收器逻辑102。
DMA机74可看作是同时运行的五(5)条或更多独立的DMA通道。实际实施例使用一个主控制状态机,以DMA通道之间在时间上多路复用。优先级超等时逻辑连续检验所有通道当前的大体情况,并把最高优先级分配给具有状态机待执行动作的通道。
图4详细示出图3描述的一般概念。在图4中,接收数据106包括具有字WD0和WD1的标题数据108。字WD0和WD1被提供给逻辑110中N个DMA通道标题比较块中的每一个(例如,图3中的四条通道0~3)。用于逻辑110中每条DMA通道的标题比较寄存器包括把108处的标题WD0与匹配选择寄存器内容120和控制值逻辑122比较的电路中的指令。同样,使用寄存器124的内容和选择寄存器126的内容所表示的比较指令比较109处的WD1。DMA标题比较寄存器和逻辑的输出表示为通道选择[0]到通道选择[N-1]。图4还表示优先级编码器128接收这些通道选择输出,以产生DMA通道选择线130上的通道号和地址匹配输出132。如图3及伴随的文本所述,DMA通道选择输出130和地址匹配输出132流到IEEE 1394接收器逻辑102。
DMA标题比较寄存器和逻辑110以及优先级编码器128实施确定是否接受输入的数据分组并把它装入GRF 80所需的逻辑。图3示出四条DMA通道,五条或更多的DMA通道也在本发明范围内。分配每个DMA标题比较寄存器和逻辑电路110为一个DMA通道服务。比较器包括WD0字段选择寄存器122、WD1选择寄存器126、WD0比较值寄存器120、WD1比较值寄存器124和逻辑。两个字段选择屏蔽寄存器规定了输入数据分组的WD0和WD1中的位字段,这些字段由比较器逻辑与期望值对比。两个比较值寄存器规定了所期望的位模式,这些位模式将与输入数据分组的字0和字1中选中的位字段对比。优先级编码器128收集来自每个DMA标题比较寄存器和逻辑110的DMA通道匹配指令,并产生把输入数据分组映象到特定DMA通道的位代码。或逻辑电路129组合来自DMA标题比较寄存器和逻辑110的选择指令,并对IEEE 1394接收器逻辑102产生单个比较器匹配指令。IEEE 1394接收器逻辑使用该DMA通道号和比较器匹配指令,以确定输入数据分组是否将被GRF 80接收。
在本实施例中,DMA数据分组处理器可作为同时运行的独立DMA通道。实际实施例利用一个主控制状态机,该机由多条DMA通道(内容,五个DMA通道)。在时间上多路复用。优先级超等时逻辑检验所有通道当前的大体情况,并把最高优先级分配给具有状态机待执行动作的通道。DMA通道在复位到静态后被初始化,在静态中DMA通道等待将被写入数据分组控制列表起始地址寄存器的有效PCL指针,以及将被设定在DMA控制寄存器中的通道启动和链接位。由数据分组控制列表起始地址寄存器中位0的状态确定有效PCL指针。1表示无效地址,0表示有效地址。然后DMA将转到数据分组控制列表起始地址寄存器所指示的地址,取出新地址,且如果有效,则把它作为当前PCL地址并开始执行。
如果该地址无效,则清除DMA控制寄存器中的链接位,对具有中断状态寄存器中相关状态的该通道产生DMA停机中断,该通道转为不工作。此机构在PCL存储器结构上提供了合乎情理的检查,并在万一失去下一地址链接时提供继续执行通道PCL的比较简单的方法。当检测到有效的下一个PCL地址时,DMA将设定DMA控制寄存器中的BUSY位,并取得PCL偏移处的第一控制字。然后进行检查,以确定该命令是对局部总线收、发PCI,还是辅助命令。从优先级编码器128,依据取得匹配的那个DMA通道,将取得匹配的最高优先级通道等同于要选的具体DMA通道。
图5更详细地示出本实施例的给定DMA通道标题比较逻辑120的操作。例如,包括字WD0和WD1的接收数据转到标题比较逻辑120。这包括使字WD0的码段134转到目的地ID比较逻辑136。WD0部分138转到tcode比较逻辑140。WD0部分142转到用于WD0的位15∶6和3∶0的比较逻辑144。此外,从比较逻辑146接收WD1部分148所示的位31∶16。从目的地ID比较逻辑136、tcode比较逻辑140、在WD0位3∶0和WD0位15∶6上操作的比较逻辑144的输出以及用于WD1位31∶16的比较逻辑146的输出转到“和”功能件150。“和”功能件150的输出是通道选择[0]到通道选择[N-1]中的一个通道选择输出[x],优先级编码器128如上所述接收该通道选择输出,以产生DMA通道选中的信号130和地址匹配信号132。
图6、7、8和9提供了详细的转到DMA通道标题比较逻辑120的接收数据位的图。尤其是,图6示出T代码160包括异步标题162的[7∶4]。同样,tcode位164形成等时标题166的位[7∶4]。在给定的DMA通道中,匹配数据组168包括相应于162处标题WD0的170处用于WD0的匹配数据标题,并选择相应于166处标题WD0的匹配数据组172。如图6所示,按172处的比较选择WD0的[7∶4]位176修改的[7∶4]比较位174确定了用于接收标题WD0的匹配结果即位[7∶4]。这部分的输出与其它部分结果相加,以确定用于具体DMA通道的匹配值117。
图6示出用于具体字段的目标数据值的布局。本发明一次取接收数据的一个字段,并试图示出设定比较字和选择字以取得具体结果的方法。尤其是,图6示出对照的tcode 160的字段。代码160或164中的一个提供了识别数据数据总线16上数据类型的操作代码和作为等时或异步数据的1394串行数据。在图6的例子中,代码处于同一字段。异步标题和等时标题都这样做。对等时和异步标题进行译码也可以有不同的方法。它们可以如图所示或可混合在一起。实际编码可以在一定范围内变化,但相同之处在于我们以比较或不比较来结束。
图7突出了异步标题162的[3∶0]位178和[15∶7]位180,以及等时标题166的[3∶0]同步位182和[15∶7]通道位184。把标题WD0的[3∶0]位、初始位178或同步位182与按172处比较选择WD0的[3∶0]位188修改的170处WD0的[3∶0]位186相比较。此外,把170处标题WD0的[15∶7]位、异步标题162的[15∶7]位180或等时标题166的[15∶7]位184与由172处比较选择WD0的[15∶7]位修改的170处比较WD0的[15∶7]位190相比较。由图7中产生的这些匹配的输出相应于独立110的比较逻辑144的WD0位[3∶0]和[15∶7]。
图8示出与DMA通道比较逻辑110的目的地ID比较逻辑电路136的进一步对应关系。异步标题162包括标号200所表示的目的地ID位[31∶16]。其相同位的位置,即166处标题WD0的[31∶16]位包含标号202所表示用于等时数据分组的数据长度位[31∶16]。同样,这里由标号204表示的某一链路层控制寄存器82的位[31∶16]包含结点数和总线数数据。图8指162处的异步接收标题WD0或166处的等时接收标题WD0,它具有按数据组172中位208的[31∶16]位修改的匹配数据组170的位206。匹配数据组210包括用作目的地ID设定位272的位[16∶11]。根据图8产生的s,逻辑块146中得到的DMA通道号转到DMA通道比较逻辑110的“和”功能件150。
由于IEEE 1394标准处理目的地标识(ID)的方法,异步标题WD0的高端位[31∶16]可具有特别的意义。例如,IEEE 1394编码对不同的标题指明消息的播发类型。对接收标题,有比较字0和允许选择一特定接收标题字的位选择字0。此外,比较选择字1中[6∶11]272的各位各自选择一具体目的地ID方程。
图9示出包括220处的源ID位[31∶16]的异步标题162。等时标题166中这些位的位置222是部分可变数据。在WD1比较逻辑146中,DMA通道120把按226处比较选择字1的位[31∶16]修改的匹配数据组170的位16到31与220或222处标题WD1的位[31∶16]相比较。
图10示出用单个寄存器写入操作写入任意数目的数据寄存器位的寄存器写入电路250。电路250示出任意数目相似电路中的一个电路。每个电路控制任意数目数据位中的某一位。在寄存器写入电路250中,通用I/O(GPIO)写入数据输入252接到数据触发器254。数据触发器254也接收时钟信号256和来自“和”功能件260的写入启动输入258。“和”功能件260接收GPIO地址确定信号262、写入标准信号264和GPIO地址位输入266。“和”功能件260对数据触发器250的写入启动位268提供“和”输出258。仅特殊分配地址位266中有1的触发器250中写入各个GPIO写入数据252。
寄存器写入电路250允许只写入寄存器中必须改变的位,而保留其余位先前的值。寄存器写入电路250也允许软件修改关键的数据位,而不必在与具体动作无关的寄存器位上进行再次调用、规定或操作。
当寄存器中具有写入启动位258的地址时,可根据地址字段写入1到4GPIO。[GPIO]地址号码输入266中的Ax代表此写入所依据的地址位,以确定是否写入该位。写入选通264说明这是一写入操作。GPIO地址确认262是用于整个寄存器的基局部址译码。触发器250的写入启动258是“和”功能件的输出。当写入启动有效时,输入的写入数据252被写入触发器254,并出现在触发器输出270上。
图11示出包括GPIO寄存器地址位274和各个位选择字段276地址位A0、A1、A2、A3的地址字段272。这些地址位依据与地址字段272中相关位的位值0或1表示。地址字段272的最后两位278的值一般假定为零。在地址272中,两个最低有效的位的值假定位零,这是由总线结构引起的。定为A0、A1、A2、A3的后续四位允许单独寻址或以不同组合对其寻址。高端位或最高有效位是为此具体功能规定或分配的具体地址。因此,有固定的一组位模式对给定的GPIO地址值进行寻址,以选择具体地址。其结果是可被寻址的地址包括从0000到1111(即,16种不同的可能组合)的整个阵列。
DMA优先级选择器负责激活对PCI数据移动有最急切需要的通道的大体情况。DMA构成执行所选通道状态的主状态机(dma fsm.v)。所选通道具有位于时间上任一点处的一些存储状态。这些从状态叫做其大体情况。通道大体情况的一部分是主状态机所执行的当前状态。
状态机具有若干潜在的拖延状态,在这些状态中通道的执行必须等待,直到可继续执行的某些状态。一个明显的情况是当通道空闲着并等待装入有效PCL地址时,要设定通道启动位,以及设定链接位。另一个情况是当接收通道正在等待接收FIFO中的数据时。如果通道正在等待接收数据且另一个通道准备把数据传递到发送FIFO中,则我们需要为发送服务。可在一些情况下发生这种拖延。
这些拖延状态中的每个状态都存在于其中可进行另一个通道执行的“机会窗”中。优先级选择器观察所有这些可能的拖延状态并选择在此时具有最高优先级的状态和通道。
图12示出环境300中DMA命令处理的一个例子。在图12中,PCI寄存器写入数据302转到多路复用器(MUX)304。多路复用器304也接收DMA寄存器写入数据306。308依据将进行的操作选择适当的数据源。多路复用器304的输出转到DMA寄存器310,在示出的例子中,DMA寄存器310包括六个通道,通道0到通道5(CHAN0-CHAN5)。对于每个通道,DMA字段包括先前地址或临时字段312、当前PCL地址字段314、数据缓存器地址316、状态320、命令322、当前状态324和准备位326。DMA寄存器写入仲裁选择电路328也对DMA寄存器310提供输入,该DMA寄存器310响应于PCI从动信号330、PCI主信号332、DMA PCI主循环输入334和从动输入336。DMA通道仲裁器340接收通道锁定输入342并对多路复用器346提供输入。从动寄存器读出地址输入348控制多路复用器344的操作。DMA寄存器读出数据输出350把DMA寄存器数据送回PCI接口。多路复用器346对DMA状态机下一状态逻辑352提供输出。DMA状态机下一状态值354通过多路复用器304被写回到状态寄存器和其它输出寄存器。来自DMA命令处理环境300的输出包括FIFO读、写和选择信号356和各种信号。
DMA通道裁决器340控制将执行的那条通道。此裁决根据来自FIFO 358的信号,诸如“FIFO现用通道需要数据”和“FIFO现用通道”以及哪条通道准备传递数据和什么通道被启动且工作。
DMA寄存器310用于控制和监测每个DMA通道状态的控制和状态寄存器组。DMA寄存器310支持具有各种功能的每个DMA通道。例如,先前数据分组控制列表起始地址/临时寄存器312提供了在异步发送期间处理一队列数据分组时被DMA机74更新的寄存器。它在辅助命令期间也用作装入和存储数据的临时保持寄存器。数据分组控制列表起始地址寄存器314被应用软件初始化,以指向PCL链中第一个(空)PCL的始端。DMA机74使用装入此PCL中的下一个地址,以连到第一实际PCL。数据分组控制列表起始地址寄存器314在处理PCL时由现用DMA通道更新。DMA缓存器起始地址寄存器316装有在现用DMA通道处理PCL时从PCL中取得的实际缓存器指针。DMA状态寄存器320存储在此PCL期间传递的一些位的连续计数,且包含该传递全过程的状态。在PCL处理结束后,现DMA通道把该寄存器的状态信息写回到偏移0xC处的PCL。
DMA控制寄存器322包含使应用软件可启动或禁止DMA通道操作并重新取得用于连接的PCL下一地址的控制位。DMA控制寄存器322存储实际缓存器传递控制、传递位计数以及从PCL取得的命令。DMA准备寄存器326的最低有效位可引起DMA通道在继续执行XMT、RCV、LOAD、STORE0或STORE1命令前等待准备状态。由PCL的控制字选择此准备状态。DMA准备寄存器326的最低有效位可引起执行BRANCH命令期间的状态转移。由PCL的控制字选择此状态。当前DMA状态寄存器324存储用于DMA通道的状态矢量。此寄存器在DMA通道的工作时间内被更新,并在通道转为无效时保持所产生的最后一个状态矢量。
DMA寄存器310也可包括内含当前接收到的数据分组计数的接收数据分组计数寄存器(未示出)。DMA机74在此寄存器中装入传给GRF 80标记字的接收数据分组计数。此计数在对PCI总线24传送数据时递减。也可包括DMA全局寄存器(未示出),它包含状态机用来跟踪异步发送数据分组执行的状态标志。DMA全局寄存器可存储结合高速缓冲存储器行规模寄存器使用的低端位,以确定PCI主装置所需的突发信号串规模。
图21示出135部分复位到静态后DMA通道如何初始化。每个DMA通道310等待将被写入数据分组控制列表起始地址寄存器314的有效PCL指针,并将通道启动和链接位设定于DMA控制寄存器中。由当前的数据分组控制列表(PCL)地址寄存器中位0的状态确定有效PCL指针。值1表示无效地址,值0表示有效地址。然后DMA将转到当前PCL地址寄存器起始地址寄存器所指的地址,并获取下一个PCL地址,如果这使得当前PCL地址有效,则开始执行。如果该地址无效,则清除DMA控制寄存器中的链接位,并对此通道产生与中断状态寄存器中状态相关的DMA中断,且通道转为不工作。此装置在PCL存储器结构上提供了合乎情理的检查,以及提供了一种万一失去下一个地址(即,无效)时继续通道PCL执行的比较简单的方法。当DMA机74检出有效的下一PCL地址时,DMA机74设定DMA控制和状态寄存器76中的BSY位,并获取适当PCL处的字。然后进行检查以确定命令是否对局部总线收、发PCI还是辅助命令。
图21继续示出DMA机74在137部分如何进行用于GRF 80中等时和异步数据的接收操作。DMA机74从检查是否存在等待状态开始。一旦不存在等待状态,则处理器进入数据移动态。这时,DMA机74进入检查当前传递计数是否转到零的循环。如果是零,则查看这是否是PCL缓存器列表最后一个数据缓存器。如果它是最后一个数据缓存器且把特殊控制标记字写入GRF 80的链路层控制逻辑90还未表示数据分组边界,则由于将发送比缓存器能保存的数目更多的分组数据,所以产生差错。在此情况下,在DMA控制和状态寄存器76中设定PKT ERR位,且DMA机74使其余的数据溢到数据分组边界。如果当前传递计数递减到零且在PCL中有另一个缓存器,则DMA机74获得新的缓存器地址和传递计数,并开始发送。
在数据从GRF 80移到PCI接口逻辑70时,DMA机74在请求PCI总线主设备进行发送前等待GRF80具有足够的数据。每当满足两个状态中的一个时,即达到此发送阈值。每当接收FIFO中的位数达到“高水位标志”时,DMA机74就请求PCI主设备进行发送。此高水位标志等于高速缓冲存储器行规模寄存器的高端或DMA全局寄存器的低位端字段表示的范围。
当数据分组第一次被链路层控制逻辑90写入GRF 80时,DMA从链路中获取分组数据规模的信息。它使用此传递计数来确定GRF 80中的数据是否数据分组中的剩余数据,如果是这样且该规模小于高水位标志,则它将请求PCI主逻辑64,其中的传递计数等于此余数。当DMA机74正在发送数据时,更新DMA控制和状态寄存器76中的数据缓存器起始地址寄存器和数据缓存器发送长度位,以反映发送的当前状态。
如图21的139部分所示,当链路层控制逻辑90碰到数据分组的末端时,它把特殊的控制标记字写入GRF 80以给该末端作标记。嵌套在此控制字中的是表示总线上数据分组的完整状态的状态位。DMA机74使用此末端标记,以终止把数据从GRF 80传递到PCI总线24。如果该标记表示存在IEEE 1394总线示忙确认信号,则DMA机74重新获取PCL的第一个缓存器地址和传递计数,并开始全部地数据分组发送。如果从该末端标记所示没有示忙确认状态,则DMA控制和状态寄存器76在数据分组末端标记中装入来自链路层控制逻辑90的确认状态,设定数据分组结束位。然后把数据分组结束状态写入PCL状态字中的存储器,发出中断信号并锁存在中断状态寄存器的相应位中。如果命令是接收与更新命令,则把剩余的传递计数和下一个缓存器地址写入适当的PCL偏移中。
图13示出表示DMA通道仲裁电路340的操作的表360。表360示出如果一通道当前在IEEE标准1394总线上工作时,则该通道具有安排在DMA通道中执行最高优先级。否则,通道优先级依据通道号的次序,即通道0具有最高优先级。分配值“无关”作为362处的值“X”。这意味着无论是其它什么值,当前工作通道具有最高优先级。即此类通道可获得尽可能最先的安排。
可通过以下的例子看到DMA命令处理的操作。假定DMA当前在通道3上操作。因此,通过多路复用器346选中DMA中用于通道3的所有寄存器。DMA选择出现在DMA状态机当前状态和下一个状态逻辑上的一些具体寄存器。
图14提供了包含自引导功能370的本实施例的个人计算机环境12的简化图。PCI接口ASIC 20的引脚370对自引导PCI接口ASIC 20提供直接输入。结果,PCI接口ASIC 20通过PCI总线24可用作标号30处PCI装置#1和标号31处PCI装置#2的主装置。用于PCI接口ASIC 20自主操作的命令可使用RPLROM 36和SRAM 38。此外,通过接口总线16,PCI接口ASIC 20可与PHY接口18通信。
当自引导引脚370有效(即,带高电平)时,可选择本发明的自引导模式。自引导模式使得允许PCI接口ASIC 20自主起作用的一些特性有效。自主操作包括电源复位后使用DMA通道0获得第一个数据分组控制列表的地址的特性。在电源复位后,自引导模式也可使DMA主装置访问外部RPL ROM。此外,在电源复位后,自引导模式具有使DMA主装置访问内部链路寄存器的特性。
PCI接口ASIC 20一旦作为PCI总线24上的主装置,它可通过规定控制数据分组控制列表中的适当地址范围,在PCI总线24上发出PCI配置、输入/输出以及存储器读写命令。在操作的自引导模式中,外部PCI地址空间限于30位。两个最高有效地址位总是处于0值。在内部,这两个位用于选择PCI命令。
可从用于诊断目的的杂项控制寄存器的特殊位中读出自引导引脚370的状态。由选中的自引导模式和外部ROM,本发明可把PCI接口ASIC 20用作本机处理器,建立所有的内部PCI接口ASIC 20寄存器,以对PCI总线24上的其它装置进行初始化并建立和排列其它PCL。可使各种DMA通道执行这些PCL,以通过IEEE 1394总线发送数据。
通过把外部局部总线RAM加到PCI接口装置20,为PCI总线24上的装置提供PCI从动存储器,以获得控制信息并具有用于数据发送的本机存储器。然后PCL程序可通过IEEE 1394向其它系统发送装置控制/数据。相应地,使用本发明自引导模式的环境可用于外围装置,其中可能没有用于管理PCI接口环境的适宜处理器。
图14的电路提供使芯片通过外部引脚进行操作的另一个模式。其效果是启动和预先规定一部分存储器映象,以允许DMA机74在升电源时可访问足够的资源来执行和接用进行有效工作所需的所有功能。其效果还可修改DMA机74的行为,从而当DMA机处于某一模式时,该机从专用ROM要求新指令,而不是变为无效。
DMA机74变得有效,且得到用于获得指令的某个地址。这样就允许PCI接口ASIC 20以独立模式操作。这也允许从PCI接口ASIC 20中产生PCI存储命令以及输入/输出命令。
利用自引导引脚370,本发明可通过启动通路并对ROM和RAM基本地址寄存器初始化来重新配置升电源存储映象。这使得DMA机在升电源后可进行读写访问。此外,当选择自引导模式时,本发明修改DMA机74的行为。这允许在升电源时从专用ROM地址中获得新的指令。在本实施例中的初始访问地址确实为0。本发明还提供了产生正常环境中没有的总线命令和协议的方法。
当选择自引导选项时,DMA机74可获得并执行来自RPL ROM 36的指令。这使得DMA机74产生用作外部PCI总线上主代理机所需的命令,以配置、初始化和管理此外部总线上的其它PCI装置。
图15的表说明当自引导输入370有效时,内部PCI地址总线[31∶30]位变换为PCI总线上命令的映象。例如,在假定位31的值为0且假定位30为任意值的事件中,激发了PCI存储命令。其后,假定地址位31的值为1且假定地址位30为0值,则产生PCI I/O命令。地址位31的值为1且地址位30的值为1,则PCI配置命令接到PCI接口ASIC 20。
图16示出依据本发明一个方面的局部总线接口方框图390。局部总线接口方框图390包括局部总线配置寄存器、与ZV机396通信的变焦视频(ZV)译码接口块394。装组/拆组状态机398包括地址/数据/位启动保持寄存器398。局部总线接口方框390也包括局部总线接口状态机400和从动确认中断方框块402。
图2的ZV端口是设计成把数据从IEEE 1394标准总线传递到PCI接口ASIC20上外部装置的只输出端口。当经过正确地编程后,ZV接口逻辑提供用于接收IEEE 1394数字摄像机数据分组并以正确的控制信号把有效负载传递到外部ZV符合装置的方法。
通过基于第三PCI存储器的地址寄存器的分组访问ZV译码电路394。当ZV译码电路394被启动时,0xF000和0xFFFF之间的辅助地址映象到ZV端口。当选中六个可行时钟源395中的一个作为ZV像素时钟时,ZV端口被启动。如果没有选中六个时钟中的任一个,则ZV端口被禁止,且辅助接口要求占有整个地址空间。当ZV端口被禁止时,除了数据总线以外,与ZV有关的所有输出为三态,而数据总线在辅助、RAM和ROM访问期间仍被驱动。
借助ZV端口,在检测到等于0X2的IEEE 1394等时数据分组标题同步字段时产生垂直同步信号。在本实施例中,数据位24包含有效同步字段数据。在检测到此垂直同步位时,产生垂直同步输出。对于帧的其余部分,每当在把视频数据传递到变焦端口而访问某一地址时,就产生水平同步输出。通过对数据分组控制列表进行适当的编程,可通过ZV端口传递所有的IEEE 1394数字摄像机数据分组。
图17示出本发明同步检测电路405的一个实施例,用于产生垂直同步检测信号407和水平同步检测信号409。当假定PCI从动地址位[15∶0]的值为0XF000且假定从动数据位28的值为二进制1时,比较电路411和413向与门415发送信号。这在线407上产生了垂直同步检测信号。同样,当从地址位[15∶0]向比较电路417提供OXF004时,在线409上出现水平同步检测信号。
图18示出依据本发明数据分组变焦地址映象410的一行图像扫描线。变焦地址映象410包括在地址0XF000处开始的等时数据分组标题412和在标号为414的地址0XF004处开始并在标号为424的地址0XFFFF处结束的等时数据分组的数据空间。每个等时数据分组被传递到变焦地址空间,标题四字节组被传递到0XF000,第一数据有效负载四字节组428被传递到地址0XF004,其余四字节组被传递到后续地址,直到有效负载数据的末端被传递到用于N个四字节组长数据分组的地址(0XF000+(N-1))为止。
图18示出本发明允许在硬件管理的窗口中自主显示视频图像,而不需要任何软件的支持。本发明允许原始数据在IEEE 1394总线上运送,并以作为输入数据转入视频控制器芯片的兼容格式流入变焦端口中。这使得可自主显示数据,而且保持水平和垂直帧同步。
在操作中,变焦视频端口映射到某一地址空间。标题包含帧同步信息或信号。通过建立正确的控制结构,使标题分组数据根据该地址传递到一特定地址,此操作的逻辑将寻找某些字段。在符合IEEE P1394数字摄像机规定的Sony摄像机中,等时标题同步字段中的位表示视频帧的开始。通过对此特定等时标题同步字段位进行译码,可产生垂直同步信号。可使用该信息使接收的变焦端口数据与变焦端口同步。
此实施例有两种情况,一个用于水平同步,另一个用于垂直同步。对于垂直同步,译码需要一特定地址和一特定等时标题同步位。通过对另一个特定地址进行译码可产生水平同步化。
本发明的视频变焦方面可提供从分组数据中自主提取控制信息(诸如水平或垂直同步信号)的能力,此分组包含嵌入的控制信息诸如编码视频信号。逻辑411和413检测对特定的特定目的地址的传送。
本发明也提供了规定用于分组数据不同部分的适宜目的地址的软件或硬件控制结构。DMA结构使数据可集中或分散,从而一数据分组可分到不同长度的不同目的地址。因此,本发明可把若干标题字段写入一特定地址,而把数据字段写入另一个地址。使用该特征,本发明控制PCI接口装置的什么部分就能看到什么地址。
本发明还提供了可编程的计数器,它可用于根据对特定地址位置和/或数据模式的多重访问产生控制信号。这通过利用计数器使每一水平扫描线或水平同步信号之间有多个数据分组可任选而产生。相应地,可在垂直同步后立即产生水平同步信号。这使得可计算系统经过特殊地址的次数。例如,在四次重复通过该地址后,该系统只产生另一个水平同步信号。这使得可依据特殊摄像机的分辨率等通过水平扫描线集中四个数据分组。
图19示出使用变焦端口地址映象410把单个视频数据分组映射到多个视频扫描线的过程。变焦端口地址映象410包括等时数据分组中毗邻其数据414的标题412。存储器空间416到424如图18所述。变焦视频等时数据分组44包括标题四字节组0,它可包含等时标题同步字段中帧的起始位。四字节组1是表示视频扫描A开始的第一个分组数据有效负载四字节组。通过把此四字节组写入地址0XF004产生水平同步信号。同样,把数据四字节组442写入地址0XF004表示通过产生水平同步开始视频扫描A+1。在0XF00处开始数据写入,转到[0XF000+(N-1)]后将实际上是通过变焦视频端口输出的数据,即变焦数据。剥离该标题,而非数据字段部分。
相应地,该情况对视频帧中的第一个数据分组产生垂直同步和水平同步。所续的数据分组表示随后的扫描线,这些扫描线填满了剩余的视频帧标题,但这些标题不包含同步字段。对所有的分组数据以同一方式流动,每个数据分组在标题所处的点0XF000处开始,如果在标题中没有同步位,则不设定垂直同步。当该数据写入F004时,将产生水平同步。这产生扫描线的开始,从而数据的剩余部分将作为扫描线的一部分输出。
此外,存在一个数据分组有多条扫描线的情况。为此,使用数据分组控制列表。
由叫做数据分组控制列表或PCL的数据结构控制本发明的DMA机74。PCL包含需要时DMA从存储器中取得的命令信息。这些命令告诉DMA数据的源和宿,以及数据要传递多少字节。一些命令在IEEE 1394发送FIFO和PCI总线24或在通用接收FIFO 80和PCI总线24之间移动数据块。另一个命令在PCI总线24和辅助端口局部总线26之间移动数据。其它命令用于次要功能,被叫做辅助命令。这些辅助命令使DMA把规定数据的四字节组指向任意PCI地址,并可进行一些使用PCL的状态转移。本发明拟用于使DMA进行特殊的数据移动控制,并用作可在自引导序列中建立PCL的独立处理器。此功能的整个范围无严格限制,可发展DMA的其它应用。
本发明的应用软件对使用PCL数据结构(保存在主存储器中)的DMA通道的操作进行编程。应用软件用于建立PCL并分配其存放的存储器。PCL可编制成一组邻接的存储器位置,这些位置包含DMA通道传递一IEEE 1394数据分组,或在PCI总线24和辅助端口局部总线26之间移动数据,或执行一个或多个辅助命令所需的命令、控制参数和数据缓存器指针。PCL输出端存储器位置的总数在本实施例中一般限定在32个四字节组。
PCL起始地址至少需要与四字节组边界对准。对于最佳的DMA性能,建议把PCL起始地址作为高速缓冲存储器行边界上的一行。数据缓存器指针可与任意字节边界对准。对于最佳DMA性能,本发明对准高速缓冲存储器行边界上的数据缓存器指针。如果这不可能,则应在四字节组边界上进行下一个最佳数据缓存器指针对准。对于100mbps的IEEE 1394位速率或200mbps的IEEE 1394位速率,PCL所指的数据缓存器规模之和分别近似限定于1000位或2000位。
在本实施例中,现用DMA通道从PCL中取得命令和控制参数,并用它们来构成通道本身以在传递中执行命令。
应用软件程序使DMA通道可通过把多个数据分组控制列表串成一PCL队列来传递多个IEEE 1394数据分组。本发明通过把每个PCL的下一个地址字段设定为指向下一个PCL存储器中的起始地址来构成此队列。可对队列中的最后一个PCL进行编程,以终止DMA处理、指回队列的始端,或指向新的队列。包含辅助列表的PCL可嵌入PCL队列中的任何位置,但不能占两个位置。PCL队列可把接收、发送以及辅助命令混合在一起。然而,由于潜在的流水线式发送性能和数据分组重试的可能性,一个异步发送命令后必须接着另一个异步发送命令。另一方面,在异步发送命令中设定“等待状态”位可免除此要求。
图20依据本发明的该实施例示出数据分组控制列表的链接列表的一个例子。在图20中,PCI队列450以起始地址452开始。从起始地址452处理流程转到空数据分组控制列表454。空数据分组控制列表454向传递命令数据分组控制列表456发送处理流程。在传递命令数据分组控制列表0中,数据缓存器计数命令和数据缓存器地址信息转到数据缓存器460、462等,例如转到数据缓存器464,在此例中,数据缓存器464表示正使用十四个数据缓存器。
标号456处的传递命令数据分组控制列表0包括标号470处转到辅助命令数据分组控制列表1的下一个列表地址466。标号470处的辅助命令数据分组控制列表1包括负载命令472、位置474处的源地址和位置476处的存储命令。负载命令472转到供给DMA寄存器480的数据寄存器478。存储1命令476给存储器位置482提供输入。标号470处的辅助命令数据分组控制列表1也包括标号486处的条件目标地址484,该地址有条件地向传递命令数据分组控制列表2发送PCI处理控制。标号486处的传递命令数据分组控制列表2包括转到标号490所示其它PCI的下一个列表地址488,而数据计数和数据缓存器地址492以及类似的地址转到数据缓存器494或类似装置。如果条件目标地址484控制PCI队列的处理流程的,下一个列表地址468就转到标号486处的传递命令数据分组控制列表2。然后此信息从下一个列表地址488转到标号490所示的其它PCI,数据缓存器0地址和计数命令信息转到数据缓存器1和类似装置。
一般,在操作中,因为不存在先前的PCL,主CPU 44分配用于建立数据分组控制列表和空列表中下一个PCL地址的存储器。空列表中的下一个PCL地址提供了一存储器位置,该位置是指向第一个满PCL(即PCL0)始端的指针。然后主处理器建立以数据传递或某种类型的辅助命令进行操作所需的PCL列表,这些辅助命令包括诸如进行实际类似处理器指令的辅助命令。
下一个PCL地址中的空间包括出错地址、后备位置和状态。还有一对数据为控制状态、传递计数。其后的一个是数据缓存器地址。这两个长字构成了传递到一数据缓存器的一个指令或数据。传递例子是指向数据将来回传递的存储器中数据缓存器位置的缓存器地址。如果数据连续传递,则本实施例可形成用于连续数据传递的大控制环路。
图21到25和以下讨论描述本发明用于对局部总线收、发PCI的操作或辅助操作。如图21所示,在接收操作中,对于GRF 80中的等时和异步数据,通过查看是否存在等待状态来开始处理流程。如图23所示,对于等时发送,如果通道启动位等于1,发送功能准备就绪,循环起始位也正常,则没有等待状态。由数据缓存器控制字零的等待选择器位确定等待状态。一旦不存在等待状态,处理器进入数据移动态。这里进入查看当前传递计数是否转为零的循环。如果是零,则进行检查,看看这是否PCL缓存器列表中最后一个数据缓存器。如果该数据缓存器是最后一个还未通过链路层控制器把特殊控制标记字写入GRF FIFO来表示一数据分组边界,则已发生差错,因为将发送比缓存器所能承受的数据数目更多的分组数据。此情况下,在DMA状态寄存器设定数据分组差错位,且DMA将使剩余的数据溢出到分数据分组边界。如果当前传递计数递减到零且PCL中有另一个缓存器,则DMA获得新的缓存器地址和传递计数,并继续传递。
在从PCI接口的接收FIFO移出数据时,DMA在请求PCI总线主装置进行传递前等待FIFO具有足够的数据。每当满足两个状态中的一个时就达到此传递阈值。每当接收FIFO中的位数达到“高水位标志”时,DMA机就请求PCI主设备进行传输。此高水位标志等于高速缓冲存储器行规模寄存器高端或DMA全局寄存器的低位端字段的范围。当数据分组第一次被链路层控制器写入FIFO时,DMA从链路中获取分组数据规模的信息。它使用此传递计数来确定FIFO中的数据是否数据分组中的剩余数据,如果是这样且该规模小于高水位标志,则它将请求PCI主装置进行传递,其中的传递计数等于此余数。当DMA正在传递数据时,更新DMA控制寄存器中缓存数据发送长度位的数据缓存器起始地址寄存器,以反映传递的当前状态。
当链路层控制器碰到数据分组的末端时,它把特殊控制标记字写入FIFO以给该末端作标记。嵌套在此控制字中的是表示总线上数据分组完整状态的状态位。DMA使用此末端标记,以终止把数据从FIFO传递到PCI总线24。如果该末端标记表示存在IEEE 1394总线示忙确认信号,则DMA重新获取PCL的第一个缓存器地址和传递计数,并开始再次数据分组传递。如果该末端标记表示没有示忙确认状态,则DMA状态寄存器在该末端标记中装入来自链路层控制器的确认状态,设定数据分组结束。然后,将该设定以及对此PCL传递的位数写入PCL状态字中的存储器。如果INT位设定用于PCL中的数据缓存器控制/字节计数命令,则发出中断信号并锁存在中断状态寄存器的相应位中。如果命令是接收与更新命令,则把剩余的传递计数和下一个缓存器地址写入PCL中。如果有链接PCL,则DMA把链接PCL作为当前PCL,并继续执行。如果另一个PCL还未链接到当前PCL,则清除DMA控制寄存器中的链接和示忙位,对与中断状态寄存器中状态相关的此通道产生DMA中断,该通道变为空闲。
如图22所示,对于DMA异步发送操作,在有效PCL指针已写入数据分组控制列表起始地址寄存器且通道启动和连接位已被设定后,确定异步发送。异步数据分组处理器的总目标是在由链路层控制器从FIFO传递到IEEE 1394总线的当前数据分组前保留一个数据分组。从DMA的观点,总线上的该数据分组是先前数据分组。把链路层控制器报告的任何状态都当作用于此先前数据分组;然而,在PCL的“数据缓存器/字节计数/命令”中设定“等待状态”位将避免此流水式操作。DMA把先前数据分组控制列表起始地址的地址保存在先前数据分组控制列表起始地址/临时寄存器中。由DMA把叫做“先前PCL有效”的标志保存在DMA全局寄存器中,以跟踪是否具有已存储的有效地址。由查看是否存在等待状态来继续异步通道的发送操作。由PCL中“数据缓存器控制/字节计数/命令”的等待选择位确定等待状态。由DMA把叫做“重试”的标志保存在DMA全局寄存器中。DMA使用此标志来跟踪什么时候应对等待状态赋值,使其在重试期间忽略。
一旦不存在等待状态,DMA就把表示数据分组开始的控制标记写入FIFO,并进入数据移动态。这里引入查看当前传递计数是否转为零的循环。如果为零,则进行检查,看看这是否PCL缓存器列表中的最后一个数据缓存器。如果该列表中有另一个缓存器,则DMA获取新的缓存器地址和传递计数,并继续传递。在从PCI接口把数据移入异步发送FIFO时,DMA在请求PCI总线主装置进行读传递前等待FIFO具有足够的数据。当位计数等于DMA接收操作所限定的高水位标志时,DMA将请求PCI主装置进行传递。当DMA正在传递数据时,更新DMA控制寄存器中的数据缓存器起始地址寄存器和数据缓存器传递长度位,以反映传递的当前状态。
当来自缓存器的最后一位已传递到异步发送FIFO且缓存器是控制/字节计数PCL字中最后一个缓存器位所示PCL列表中的最后一个时,则DMA知道已到达数据分组的末端。如果先前数据分组地址有效,则DMA将延迟检查状态,直到在发送FIFO中有一个完整的数据分组队列。于是,返回状态总是用于先前数据分组,除非设定等待状态位。如果在传递中只有一个数据分组,则先前和当前数据分组是相同的。如果先前数据分组地址有效,则DMA将查看数据分组计数器。当数据分组已被链路层控制器发送到IEEE 1394总线且其状态有效,则链路层控制器将递减该计数器。DMA将拖延等待该计数器为零,表示先前数据分组获得有效状态。如果该状态表示先前数据分组将被重试,则DMA把填满FIFO请求设定到链路层控制器,并等待链路层控制器通过除去重试指示来表示FIFO已填满。然后,DMA“返回”先前数据分组并开始再次传递。如果不发生重试,则DMA将用链路层控制器传来的确认状态更新DMA状态寄存器,设定数据分组结束,然后把该设定以及对当前有效PCL传递的位数写入先前PCL状态字中的存储器,该位数可与于先前PCL无关。如果在PCL中设定中断位,则发出中断信号,并锁存在相应中断状态寄存器位中。
当已检查了该状态时,DMA把特殊控制标记写入发送FIFO,以标志数据分组的末端。数据分组计数递增1,以提示链路层控制器DMA已写入该末端。保存当前PCL地址作为先前PCL地址,且将先前数据分组控制列表起始地址寄存器和“先前有效”标志设定在DMA全局寄存器中。然后DMA通过获取下一个列表地址值来确定另一个PCL是否已链接到当前PCL。如果有效,则DMA把所取地址作为当前PCL地址,并继续执行。如果无效或设定等待状态位,则DMA等待由链路层控制器传递当前数据分组。当由数据分组计数器递减到零所示获得有效状态时,DMA查看是否如IEEE 1394总线状态所示数据分组将被重试。如果这样,则如上所述FIFO被填满,且再次尝试发送。
如果由链路层控制器所示发送超时,重试过载运行或FIFO欠载运行,则在DMA状态寄存器中设定数据分组出错位以及确认状态。然后更新PCL中的状态。万一发送超时或重试过载运行,目标结点将不再响应。DMA可跳过形成此特定目标结点的数据流的PCL对此状态进行寻址。软件可把该PCL的下一个PCL流入口指向下一个发送数据流(即,另一个1394结点的下一个异步发送)的第一个PCL。如果下一个PCL流地址有效,则DMA将继续执行该PCL。如果此地址无效,则DMA通道将变为空闲,就象在碰到标志无效的下一个PCL地址的任何时间变为空闲。如果不使用此下一个流特性,则应把该值设定为与下一个列表地址相同的值。如果DMA停止登记DMA中断状态且下一个PCL流入口无效,则需要重新写入下一个PCL流,因为DMA处于获取下一个流的状态,且DMA忽略下一个列表地址。因此,如果不使用下一个流特性来防止任何异步发送通道挂断,则需要对同一地址一直设定“下一个列表地址”和“下一个PCL流”,该挂断是由出差产生的下一个PCL流入口引起的。
图24示出类似于上述异步和等时发送操作的流程图,但该流程图应用于DMA机的辅助操作。
如图25所示,PCI到局部总线和局部总线到PCI传递操作控制PCI总线和局部总线之间的数据传递。对于其它传递命令(诸如发送),从PCL中的PCL数据缓存器控制/位计数/命令(data buf ctl/bit-cnt/cmd)字中获得要传递的PCI地址和位数。其不同之处在于传递目的地或传递源不是FIFO而是局部总线。从辅助地址(AUX_ADR)寄存器中产生局部总线地址(见硬件寄存器的定义)。
将通过查看是否存在等待状态来继续PCI总线与局部总线之间的收、发操作。由PCL偏移0x18处的数据缓存器0控制/位计数/命令(data buf0 ctl/bit-cnt/cmd)字的等待选择位确定等待状态。当不再存在等待状态时,DMA进入查看当前传递计数是否转为零的循环。如果为零,则查看是否PCL缓存器列表中最后一个数据缓存器。如果PCL列表中有另一个缓存器,则DMA获得新的缓存器地址和传递计数,并继续传递。当DMA正在传递数据时,更新DMA控制寄存器中的数据缓存器起始地址寄存器和数据缓存器传递长度位,以反映传递的当前状态。
当已对局部总线收、发缓存器的最后一位数据且缓存器是控制/位计数(ctl/bit-cut)PCL字中最后一个缓存器位所示的最后一个PCL列表时,则DMA知道已到达传递的末端。DMA将以0x0001的状态更新DMA状态寄存器,设定PKTCMP(“数据分组比较”),然后把该设定以及所传递的位数写入PCL偏移0xC处的PCL状态字中。如果在PCL偏移0x18处的数据缓存器控制/位计数/命令中设定INT位,则发出中断信号并锁存在中断状态寄存器的相应(DMA-PCL[x])位中。
然后DMA通过获取下一个列表地址(PCL偏移0x00)来确定另一个PCL是否已链接到当前PCL。如果有效(位0=0),则DMA把它作为当前PCL,并如图所示继续执行。如果由位0=1所示另一个PCL还未链接到当前PCL,则清除DMA控制寄存器中的链接和忙位,并对与中断状态寄存器中状态(DMA-HLT[x])相关的该通道产生DMA中断,使该通道变为空闲。
图26示出FIFO高层功能的方框图500,以描述用于GRF 80、异步发送FIFO82和等时发送FIFO 84的FIFO操作。本发明的FIFO逻辑包括链路一侧的时钟域502和PCI一侧的时钟域504。在PCI一侧的时钟域504中,FIFO控制和状态寄存器88为实体,并由PCI总线接口逻辑实现和写入。FIFO控制器状态寄存器88也对指针地址映象逻辑86提供输入。指针地址映象逻辑86对FIFO读写指针对产生RAM地址映象偏移。
双端口RAM 501对GRF 80、异步发送FIFO 82和等时发送FIFO 84提供数据存储,并跨在链路一侧时钟域502和PCI一侧时钟域504之间的界限上。在PCI一侧的时钟域504,时钟域指针翻译逻辑506对DMA FIFO占用状态逻辑508产生一输入。DMA FIFO占用状态逻辑508对DMA逻辑信号510产生FIFO状态。在链路一侧的时钟域502上,时钟域指针翻译逻辑512对1394 FIFO发送器和接收器用据状态逻辑514提供一输入,该逻辑514对1394发送-接收逻辑信号516产生一FIFO状态。
双端口RAM 501接收来自多路复用器518和多路复用器520的地址输入。多路复用器518接收来自通用接收写指针522、异步发送读指针524和等时发送读指针526的输入。通用接收写指针522接收来自1394接收器和地址映象逻辑的控制。异步发送读指针524和等时发送读指针526接收来自1394发送器和地址映象逻辑的控制。通用接收写指针522、异步发送读指针524和等时发送读指针526的输出都转到发送器和接收器占用状态逻辑514、时钟域指针翻译逻辑506和多路复用器518。
通用接收指针528、异步发送写指针530和等时发送写指针532都接收来自DMA逻辑和地址映象逻辑的控制。通用接收指针528、异步发送写指针530和等时发送写指针532都对DMA FIFO状态逻辑508、时钟域指针翻译逻辑512和多路复用器520提供输出。
双端口RAM 501也接收沿33位数据总线534来自1394接收器逻辑的数据,链路时钟的25MHz信号536,以及线538处来自1394发送/接收逻辑的控制。来自1394发送/接收逻辑538的控制也转到链路一侧的地址多路复用器518。字节装组逻辑540通过DMA逻辑的控制接收主存储器的DMA读出数据,以在转到双端口RAM 501 PCI一侧的数据输入端的33位数据总线542上提供输出。字节拆组逻辑544接收来自双端口RAM 501 PCI一侧的数据输出33位总线546的数据,以对主存储器提供DMA写入数据。来自DMA逻辑的控制也转到字节拆组逻辑544、多路复用器520和双端口RAM 501。0到33MHz的PCI时钟信号转到双端口RAM 501。
结合图2中给出的描述和文本,以下进一步详述有关FIFO、GRF 80、异步发送FIFO 82和等时发送FIFO 84的功能。
FIFO状态逻辑514和516实施对每个逻辑FIFO产生占用状态所需要的逻辑。在计算PCI一侧的FIFO状态时,链路-PCI时钟域翻译逻辑抽样FIFO链路一侧每个指针上的当前值,并把来自链路时钟域的这些抽样翻译成PCI时钟域。把所译的每个译链路一侧指针与其相应的PCI一侧指针相比较,以产生每个FIFO的占用状态。DMA逻辑使用该状态,对主存储器和FIFO之间的数据传递进行定速。同样,在计算链路一侧的FIFO状态时,PCI-链路时钟域翻译逻辑抽样FIFOPCI一侧每个指针上的当前值,并把来自PCI时钟域的这些抽样翻译成链路时钟域。把所译的每个PCI一侧指针与其相应的链路一侧指针相比较,以计算每个FIFO的占用状态。1394发送-接收逻辑使用该状态,以对1394总线和FIFO之间的数据传递进行定速。
字节装组逻辑540实施使用由现用DMA通道从主存储中对准字节地址上读出的数据来装成一完整的四字节组所需要的逻辑。该逻辑最好包括四个8位宽的寄存器和四个8∶1的多路复用器。每个寄存器-多路复用器对相应于一字节线道。每个寄存器的输入连到由现用DMA通道切换到主存储器的一个输入字节线道。每个多路复用器的输出连到驱动FIFO的一个输出字节线道。对于各8∶1多路复用器,四个输入应相应于每个寄存器输出一对一地连接。余下的四个输入相对于每个寄存器输入一对一地连接。此结构使得来自四条输入字节线道的位对准位DMA读出数据以不同次序交叉切换到四条输出字节线道。由现用DMA读出通道进行字节线道多路复用器的控制。
字节拆组逻辑544实施把从FIFO读出的四字节组数据分解成单独可选择字节所需要的逻辑,这些字节将被有效DMA通道写入主存储器中对准字节地址上。此逻辑由四个8位宽的寄存器和四个8∶1多路复用器构成。每个寄存器-多路复用器对相应于一个字节线道。每个寄存器的输入连到由FIFO驱动的一输入字节线道。每个多路复用器的输出连到由DMA通道切换到主存储器的一输出字节线道。对于每个8∶1多路复用器,四个输入相应于每个寄存器输出一对一地连接。余下的四个输入相对于每个寄存器输入一对一地连接。此结构使得从FIFO读出的四字节组以不同次序交叉切换到四条输出字节线道上。由现用DMA写出通道进行字节线道多路复用器的控制。
虽然详细描述了本发明,但应理解可对其作各种变化、替换和改变,而不背离附加的权利要求书所限定的本发明的精神和范围。

Claims (20)

1.一种用于自主地输出来自数据分组的视频数据的方法,该数据分组包括标题部分和视频数据部分,其特征在于,该方法包括以下步骤:
接收数据分组传递装置中的数据分组;
使一地址与数据分组内的多个地址字段发生关系;
对标题部分和视频数据部分内的地址片段进行译码,以确定标题部分是否包括垂直同步信号;
对地址段进行译码,以确定视频数据部分是否包括水平同步信号;
使标题部分脱离视频数据部分;
使视频数据部分流入变焦端口。
2.如权利要求1所述的方法,其特征在于,还包括标题部分脱离视频数据部分后丢弃标题部分的步骤。
3.如权利要求1所述的方法,其特征在于,所述数据流动步骤包括使所述垂直同步信号或水平同步信号流入变焦端口接口的步骤。
4.如权利要求1所述的方法,其特征在于所述译码步骤还包括地址字段中预定的位组等于垂直同步信号值时,把所述标题部分译码成垂直同步信号的步骤。
5.如权利要求4所述的方法,其特征在于所述译码步骤还包括从动数据字段等于垂直同步信号标志值时,判定进行垂直同步信号检测的步骤。
6.如权利要求1所述的方法,其特征在于所述译码步骤还包括组的地址字段中预定的位组等于水平同步信号值时,把所述标题部分译码成水平同步信号的步骤。
7.如权利要求1所述的方法,其特征在于所述数据分组包括多条视频扫描线,所述数据流动步骤还包括使多条视频扫描线中的每一条与相符的一组相关地址位置发生关系的步骤。
8.一种用于自主输出来自数据分组的视频数据的视频数据分组控制电路,该数据分组包括标题部分和视频数据部分,其特征在于,该电路包括:
接收电路,用于接收数据分组传递装置中的数据分组;
地址关连指令,用于使一地址与所述数据分组内的多个地址字段发生关系;
垂直同步信号译码电路,用于对标题部分和所述视频数据部分内的地址段进行译码,以确定该标题部分是否包括垂直同步信号,还是包括水平信号;
水平同步信号检测电路,用于对所述地址段进行译码,以确定所述视频数据部分是否包括水平同步信号;
分离指令,用于使标题部分与视频数据部分分离;
视频数据流动电路,用于使视频数据部分流入变焦端口。
9.如权利要求8所述的视频数据分组控制电路,其特征在于,还包括在所述标题部分脱离所述视频数据部分后丢弃所述标题部分的电路。
10.如权利要求8所述的视频数据分组控制电路,其特征在于,所述数据流动电路还包括使所述垂直同步信号或水平同步信号流入变焦端口接口的电路。
11.如权利要求8所述的视频数据分组控制电路,其特征在于所述译码电路还包括地址字段中预定的位组等于垂直同步信号时,把所述标题部分译码成垂直同步信号的电路。
12.如权利要求11所述的视频数据分组控制电路,其特征在于,所述译码电路还包括在从动数据字段等于垂直同步信号标志值时,判定垂直同步信号的电路。
13.如权利要求8所述的视频数据分组控制电路,其特征在于所述译码电路还包括地址字段中预定的位组等于水平同步信号值时,把所述标题部分译码成水平同步信号的电路。
14.一种个人计算机系统,其特征在于包括:
至少一个使用数据分组传递总线的外围设备,和
计算机,所述计算机包括:
包括PCI总线的主cpu,以及
用于在所述PCI总线和所述外围设备之间提供接口的PCI接口装置,所述PCI接口装置包括用于自主地存储来自数据分组的视频数据的电路,所述数据分组包括标题部分和视频数据部分,所述视频数据电路包括:
接收电路,用于接收数据分组传递装置中的数据分组;
地址关连指令,用于使一地址与所述数据分组内的多个地址字段发生关系;
垂直同步信号译码电路,用于对标题部分和所述视频数据部分内的地址片段进行译码,以确定该标题部分是否包括垂直同步信号,还是包括水平同步信号;
水平同步信号检测电路,用于对所述地址段进行译码,以确定所述视频数据部分是否包括水平同步信号;
分离指令,用于使标题部分与视频数据部分分离;
视频数据流动电路,用于使视频数据部分流入变焦端口。
15.如权利要求14所述的个人计算机系统,其特征在于,还包括标题部分脱离视频数据部分在所述存储器标题位置后丢弃所述标题部分的电路。
16.如权利要求14所述的个人计算机系统,其特征在于,所述数据流动电路还包括使所述垂直同步信号或水平同步信号流入所述存储器变焦端口接口位置的电路。
17.如权利要求14所述的个人计算机系统,其特征在于,所述译码电路还包括地址字段中的预定位组等于垂直同步信号值时,把所述标题部分译码成垂直同步信号的电路。
18.如权利要求17所述的个人计算机系统,其特征在于,所述译码电路还包括在从动数据字段等于垂直同步信号标志值时,判定垂直同步信号的电路。
19.如权利要求14所述的个人计算机系统,其特征在于,所述译码电路还包括在地址字段中的预定位组等于水平同步信号值时,把所述标题部分译码成水平同步信号的电路。
20.如权利要求14所述的个人计算机系统,其特征在于,所述数据分组包括多条视频扫描线,所述数据流动电路还包括使多条视频扫描线的数据流入所述存储器中所述变焦端口地址的电路。
CN97110869A 1996-04-30 1997-04-28 从通信接口装置所接收分组数据提取控制信息的方法、系统 Pending CN1175838A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US1649396P 1996-04-30 1996-04-30
US60/016493 1996-04-30

Publications (1)

Publication Number Publication Date
CN1175838A true CN1175838A (zh) 1998-03-11

Family

ID=21777413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97110869A Pending CN1175838A (zh) 1996-04-30 1997-04-28 从通信接口装置所接收分组数据提取控制信息的方法、系统

Country Status (3)

Country Link
JP (1) JP4184458B2 (zh)
CN (1) CN1175838A (zh)
SG (1) SG77134A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229858A (zh) * 2017-05-19 2017-10-03 郑州云海信息技术有限公司 一种支持crc8校验的PECI总线主从机验证系统及验证方法
CN111669635A (zh) * 2020-06-15 2020-09-15 武汉精立电子技术有限公司 一种基于视频接口的时钟传输、恢复方法及装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100397124B1 (ko) * 2001-12-27 2003-09-06 엘지전자 주식회사 보드간 메시지 통신 시스템 및 방법
JP4685414B2 (ja) * 2004-11-11 2011-05-18 三菱電機株式会社 バス転送装置
CN113722251B (zh) * 2020-05-26 2023-12-26 上海汽车变速器有限公司 用于功能安全监控的双线spi通信系统及方法
CN112559546B (zh) * 2020-12-23 2024-03-19 平安银行股份有限公司 数据库同步方法、装置、计算机设备及可读存储介质
CN113596282A (zh) * 2021-08-09 2021-11-02 芜湖金麟电子科技有限公司 基于乒乓ram结构的多路相机同步转接模块和方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229858A (zh) * 2017-05-19 2017-10-03 郑州云海信息技术有限公司 一种支持crc8校验的PECI总线主从机验证系统及验证方法
CN107229858B (zh) * 2017-05-19 2020-04-03 郑州云海信息技术有限公司 一种支持crc8校验的PECI总线主从机验证系统及验证方法
CN111669635A (zh) * 2020-06-15 2020-09-15 武汉精立电子技术有限公司 一种基于视频接口的时钟传输、恢复方法及装置
CN111669635B (zh) * 2020-06-15 2022-04-29 武汉精立电子技术有限公司 一种基于视频接口的时钟传输、恢复方法及装置

Also Published As

Publication number Publication date
JP4184458B2 (ja) 2008-11-19
JPH10117349A (ja) 1998-05-06
SG77134A1 (en) 2000-12-19

Similar Documents

Publication Publication Date Title
EP0803819B1 (en) Method of assigning a data packet to a channel in a IEEE 1394 communications system
US6333938B1 (en) Method and system for extracting control information from packetized data received by a communications interface device
US6006286A (en) System for controlling data packet transfers by associating plurality of data packet transfer control instructions in packet control list including plurality of related logical functions
US6081852A (en) Packet data transferring system for autonomously operating a DMA by autonomous boot mode select signal wherein the DMA is enabled to at least one program control list
US5996032A (en) System for writing a plurality of data bits less than from the total number of bits in a data register using a single register write operation
US5983301A (en) Method and system for assigning a direct memory access priority in a packetized data communications interface device
CN1237455C (zh) 数据传输控制装置、电子设备、及数据传输控制方法
CN1230759C (zh) 进行最佳数据传送的多总线信息处理系统的总线-总线桥
CN1187936C (zh) 通信系统
CN1327667A (zh) 信息通信系统,方法,信息信号处理装置和信息信号处理方法,及存储媒体
CN1323119A (zh) 用于对接口单元中总线启动状态下的数字串行数据进行处理的电子仪器和方法
CN1249614A (zh) 验证设备、验证方法、验证系统、以及存储介质
CN1292121A (zh) 数据传输控制装置及电子设备
JP2000358033A (ja) データ通信システム及びデータ通信方法
CN1318242A (zh) 数据传输控制装置和电子设备
CN1119001C (zh) 数据发送装置及其方法
CN1234672A (zh) 数据通信系统,方法,装置和数字接口
CN1739296A (zh) 视频网络
CN1175838A (zh) 从通信接口装置所接收分组数据提取控制信息的方法、系统
US6587911B1 (en) Electronic device and data communication method
CN1193544C (zh) 通信方法和通信装置
JP4703074B2 (ja) 電子ネットワークにおけるコンテクストを切り換える装置及び方法
CN1332415A (zh) 信息处理设备、信息处理方法及采用该设备和方法的网桥
KR100516411B1 (ko) 패킷화된 데이터 통신 인터페이스 장치의 pci-직렬 버스 인터페이스 장치를 자율적으로 동작하는 방법 및 시스템
EP0803821A2 (en) DMA channel assignment in a data packet transfer device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication