CN1218574A - 用于多线程数据流传输控制的分布式状态信令*** - Google Patents
用于多线程数据流传输控制的分布式状态信令*** Download PDFInfo
- Publication number
- CN1218574A CN1218574A CN97194571A CN97194571A CN1218574A CN 1218574 A CN1218574 A CN 1218574A CN 97194571 A CN97194571 A CN 97194571A CN 97194571 A CN97194571 A CN 97194571A CN 1218574 A CN1218574 A CN 1218574A
- Authority
- CN
- China
- Prior art keywords
- data
- fifo
- btu
- bus
- memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Bus Control (AREA)
Abstract
一种数据传输控制***,包括:一个池存储器(284)、多个***设备(262)和一个传输控制器。池存储器(284)用于在池存储器(284)内形成的多个FIFO中存储数据。多个***设备(262)可连接在池存储器(284)从而在可编程相关FIFO和***设备(262)之间传输数据。传输控制器连接到池存储器(284)和***设备(262),用于有选择地管理FIFO和***设备(262)之间的数据传输。传输控制器包括一个连接到***设备(262)的分布式信令***,以允许发送反映相对于一个预定的FIFO到***设备(262)的数据传输的状态信息。
Description
本发明一般来说涉及高性能外设数据接口,特别说来涉及可应用于通用个人计算机、计算机工作站、和嵌入式通信和网络数据路由选择和变换功能的多线程、总线主控、输入/输出(I/O)通道控制器结构。
个人计算机和计算机工作站使用的面向典型的多媒体、网络和通信的应用一直持续发展,它在根本上依赖于对大数据吞吐量的数字数据流执行运算强化的操作。典型需要的运算强化的操作包括三维(3D)音频产生和控制,基于波表(wavetable)的音频合成,V.34协议串行数据信号生成和检测,以及模拟话音滤波和压缩。这些操作如果用软件实现的话,在由个人计算机或工作站***的主处理器执行时通常每秒耗用2千万到4千万指令周期(MIPS)。另外,支持相关的高吞吐量数据流传输到常规外设编码器/解码器芯片(CODEC),每数字数据传输流将消耗另外1到2个MIPS。
然而在个人计算机和工作站***中的常用微处理器通常最高仅能支持60MIPS,更一般是20到30MIPS。描述表切换、存储器管理和外设等待状态的操作进一步缩小了有效的用于运算过程和传输数字数据流的MIPS。由于在实际中有大量主处理器MIPS必须留给与执行多媒体功能并发的常规终端用户应用程序,所以普遍承认在处理数字数据流时需要***硬件支持。
在为多媒体、网络和通信应用增加***硬件支持时,需要提到硬件和软件的接口考虑。所用的任何***硬件都需要在增加运算功能方面有很好的性能价格比,而反过来不给主处理器增加硬件服务要求的负担。任何增加的支持负担直接损害通过增加***硬件获得的净有效MIPS增益。
相似地,对***硬件的软件接口需要有效地与由主处理器执行的操作***接口,以便有效地支持***硬件的使用。效率低下的软件接口导致主处理器与***硬件通信时的额外MIPS要求。而且,任何由于管理对***硬件的软件接口的复杂性而增加的处理负担也导致直接减少通过使用该***硬件而获得的实际支持的处理MIPS。
为多媒体、网络和通信应用提供***硬件支持的常规方法包括提供实现基本是硬连线或仅部分配置可编程的运算功能的专用集成电路(芯片)和高度软件可编程数字信号处理器(DSP)的各种结合。专用功能芯片通常以低成本紧凑封装形式实现有限的信号处理功能或少数相关功能。所支持的功能通常具有特定功能范围,而可编程能力大多限制在初始配置选项和不过分的动态控制(如果有的话)。
作为硬件外设,专用功能芯片通常对数字数据流的连续实时信号处理的管理提供很少或非直接支持,更不用说支持多数据流传输。这样的芯片通常仅作为数字数据流的消费者或生产者(源或受点),该数字数据流以由主处理器决定的可用最大速率或某一希望的速率从该芯片拉出或被推向该芯片。结果,使用专用功能芯片的***硬件会出现常规数据流传输中断和遭受传输速度限制,其例如由过量的主处理器中断、描述表切换、各种存储器管理内核处理,以及与由主处理器同时执行的其它应用程序争夺主处理器CPU周期的基本竞争而产生。***范围的竞争或对多逻辑并发直接存储器存取(DMA)数据传输的有限***硬件支持也减少专用功能芯片支持的数据传输速率。另外,专用功能芯片的常规单流本质直接需要主处理器在执行数据流初始化、传输控制和任何所需要的数据流混合或多路转换操作时大量参与。结果,尽管专用功能芯片可以显著提高个人计算机或工作站***的多媒体和数字信号处理能力,但是给主处理器留下大量而通常是极大的处理负担。
特别在需要复杂和高速信号处理运算的场合已在***硬件***中采用了通用数字信号处理器。常规DSP芯片能够以非常适合数据流处理的运算结构提供最高50MIPS。一般来说,这样的DSP芯片较贵,并需要较强的软件开发程序来实现执行其预定功能所需的软件算法。然而,DSP芯片结构一般不为控制扩展数据传输操作和存储器管理功能优化。反之,其结构通常为对内部专用存储器和外部本地连接的存储器或直接连接的专用功能***芯片的读、处理和写数据优化。结果,主处理器必须再次被大量牵涉到向作为***硬件实现的DSP的存储器空间的数据传输之中。不幸的是,这一般会导致DSP遭受和在专用功能芯片的场合对主处理器可获得的和可支持的性能的同样限制。
为限制在向多媒体***硬件传输数据时的中断,并从而改善可从主处理器获得的可支持数据传输速率,由主处理器执行的常规操作***可以用一个小的、占先的实时内核诸如SPOX扩充。该内核可以作为一个支持多媒体***硬件的实时中断和数据传输需求的低级设备驱动器来实现。虽然这样的实时内核的确倾向于保证向或从DSP存储器空间进行的最大可支持的数据传输,但是仍给主处理器带来了同样的数据流传输管理开销以及实时内核自身的额外执行开销。
结果,当前通常为个人计算机和工作站***实现的多媒体、网络和通信***硬件子***不能通过增加***硬件来很好地满足有效提供附加处理能力的需求。
各种基于主处理器的信号处理结构,诸如本地信号处理(NSP)和Direct-X已被提出并在几个目的中在很大程度上被定义来解决下述需求,即给为多媒体、网络和相关通信操作的操作***形成一个良好的软件接口。基于主处理器的信号处理结构依赖至少执行高级信号处理功能的主处理器自身的特定应用。这种结构具有至少两个立即的好处。第一个好处是,在最终传输给***硬件之前大量处理数据流时,这些数据流被混合、多路转换或运算缩减以减轻在把数据传输到***硬件时涉及的处理开销。从而,个人计算机或工作站***的有效处理性能可以有不同程度的改善。
第二好处是,把一个可能的综合应用编程接口(API)提交给操作***,从而虚拟化物理或功能***硬件的特定工具。多媒体、网络和有关的通信应用因此可以有效地采取比由***硬件的任何特定工具实际所能提供的更广泛或简单地说不同的对希望功能的支持。在***硬件的一个特定例不能直接对某一特定功能提供直接支持的场合,该功能由主处理器作为基于主处理器的信号处理器在软件中向下执行到由***硬件的该特定例支持的功能级来实现。
尽管基于主处理器的信号处理可以提高个人计算机或工作站***在执行多媒体、网络和通信功能时的效率,但是许多由基于主处理器的信号处理支持的功能仍然是高强度运算型的。于是,基于主处理器的信号处理代表主处理器的最直接负担。另外,尽管基于主处理器的信号处理的确有可能大量减少传输到***硬件或从***硬件传输来的数据量,但是实际上,对主处理器的运算负担将不再被显著影响,无论怎样,这种负担都将保持很大。
因此,本发明的一般目的是提供一个***I/O控制器,它支持在一个中央处理器和多个与多媒体、网络和通信有关的***设备之间建立的一个总带宽很大的数据传输路径上的多重、并行可变带宽的数据流。
在本发明中该目的通过一个数据传输控制***实现,该***包括一个存储器池,多个***设备和一个传输控制器。存储器池用于在该存储器池中形成的多个FIFO中存储数据。多个***设备可连接到存储器池,用于在程序上关联的FIFO和***设备之间传输数据。传输控制器连接到存储器池和***设备上,用于有选择地管理在FIFO和***设备之间的数据传输。传输控制器包括连接到***设备上的分布式信号***,以允许给***设备发送反映相关于一个预定的FIFO的数据传输的状态信息。
使用本发明的多重并行数字数据流通道控制器的计算机***因而可以支持多个I/O数据流向或从一个辅助数据处理单元的并发实时传输。该计算机***可以包括一个第一处理单元,它包括用于存储多个数据流的第一存储器,这些数据流的特征在于,每个具有各自的数据传输速率。该计算机***还包括第二处理单元,用于在多个数据流的数据段内操作数据,还包括一个连接在第一和第二处理单元之间的通道控制器,用于在第一和第二处理器之间传输多个数据流。通道控制器用于根据数据流各自的数据传输速率有选择地传输多个数据流的数据段。
这样,本发明的一个优点是,它给主处理器***提供一个动态分配的多通道控制接口,同时又允许灵活的编程能力和对通道控制器操作的控制。
本发明的另一个优点是,它通过执行基本自治的数据传输功能和动态流管理使主处理器性能的负担减至最小。通道控制器支持内部中断管理,它使主处理器和DSP中断支持负担减至最小,从而允许和支持通过一个由综合中断源管理的、连接主机和辅助信号处理单元的数据流通道实现实时多重并行通道信号处理。
本发明的再一个优点是,它使通过通道控制器的动态大小缓冲器的速率控制的多数据流,最优地利用最大可用外设I/O通道数据带宽。数据流传输独立于数据流的类型。通道控制器的每一数据流通道作为逻辑独立的通道存在。这些通道可以顺序组合,以提供通过另外或内置的信号处理电路以及外部外设信号处理单元的离散数据路由选择路径。
本发明的再一个优点是,所提供的自治总线主控器操作不再需要对常规直接存储器访问操作以及主处理器对通过I/O通道控制器的数据传输的介入。数据流段的交织传输允许数字数据流向通道控制器和通过通道控制器进行有效的并发并行传输。这大大缓和对主应用程序描述表的切换和大多数主用户中断内核方式切换的需要,而对多重并发数据流提供实时传输支持。
本发明还有一个优点是,它通过保证以由每一数据传输通道的数据流***设备建立的动态数据速率在数据源和数据受点之间的有效连续数据流,提供对可变速率实时信号处理的动态支持。
本发明的又一个优点是,它对一些辅助信号处理单元提供可容易扩充的支持,这些辅助信号处理单元包括完全可编程的单元和可提供部分或完全用硬件实现功能的其它单元。
本发明的再一个优点是,通道控制器作为一个组合功能***设备是可编程的,它通过大大扩展数据强化外设子***的独立和协同的信号处理功能而有效地减少计算机***的成本。
通过结合附图,参照下述对本发明的详细说明,可以更好地理解本发明的所有优点和特征。附图中相同的标号在所有附图中表示相同的部分,其中:
图1a是一个方框图,它表示实现根据本发明的I/O通道控制器子***的第一实施例的一个个人计算机类型的***;
图1b是根据本发明的第二实施例的I/O通道控制器子***的方框图;
图2是与本发明的一个另外优选实施例一致的基于专用功能嵌入式I/O通道的***的方框图;
图3表示I/O通道控制器子***与操作***和多重外部硬件接口相关的软件结构关系;
图4表示由相关于一个操作***建立的根据本发明的I/O通道控制器支持的高级控制和物理数据流;
图5a是本发明的I/O通道控制器的优选实施例的详细方框图;
图5b是本发明的总线传输控制***的优选实施例的详细方框图;
图5c是本发明的集成***接口的优选CODEC实施例的详细方框图;
图5d是本发明的一个优选实施例的集成中断控制器的***设备的详细方框图;
图6是根据本发明的一个优选实施例构造的I/O通道控制器的FIFO池子***的详细方框图;
图7是本发明的I/O通道控制器的优选实施例的总线传输单元控制器子***的详细方框图;
图8a-c是控制流程图,说明根据本发明的优选实施例基于I/O通道控制器的***的最佳操作方式。
Ⅰ.I/O控制器***结构
图1a提供优选实现个人计算机结构的计算机***10的一个方框图,它连接到一个多功能UO***控制器硬件***(I/O通道控制器)22。通常为IntelPentiumCPU Motorola PowerPCCPU等的主处理器12通过处理器总线16连接到***主存储器14。一个常规***部件互连(PCI)桥接口18提供在处理器总线16和一个夹层PCI总线20之间的高性能数据和控制连接。多功能******22通过常规PCI适配器总线连接器24连接到PCI总线20。I/O通道控制器内核26主要负责管理相对于PCI总线20的数据和控制信号传输,它也连接到适配器24。I/O通道控制器内核26用作基本自治总线主控器***控制器,它支持在PCI总线20和***22之间的多重并发数据和控制信号传输。这些并发传输优选作为独立的数据流和执行控制线程对来管理,其中每一数据流由通过I/O通道控制器26的离散块传输组成,这些离散块包括一个或多个字节数据。支持并发数据流的数据块互相交织在一起,有效地建立并发流式数据传输。
根据本发明,数据块的交织由控制器子***22决定,并一般来说独立于主处理器12的执行。由I/O通道控制器内核26实现的数据块的交织反映单个数据流的各自要求的传输速率,其由所传输的数据流的本质决定。因此,在流式数据代表固定数据频率音频信号流的场合,在音频数据流中的数据块的交织可能变化,虽然通常维持一个反映由音频流编码器/解码器(CODEC)独立要求的数据流传输速率的固定吞吐率。在所要求的数据率不恒定的场合,诸如使用可变速率音频或视频压缩的场合,数据块交织可能仍要再次根据适合压缩数据流所要求的数据传输速率来进一步变化。
在本发明的一个优选实施例中,I/O通道控制器内核26支持一些直接连接的串行总线***设备28。这些串行总线***设备28优选包括实现特定高速、通常面向串行的数据传输功能的专用功能芯片。典型的串行总线***设备28包括提供高速串行通用同步/异步速率传输(USART)功能的专用功能芯片。另一个可能的串行总线***设备28可能采用提供基于低成本硬件的音频子***的专用功能芯片。
I/O通道控制器内核26还优选提供一个高速、通用数据和控制总线30以支持广范围的数据处理和传输***设备。一个或多个数字信号处理器(DSP)32、36和关联的DSP RAM34可以连接到总线30,用以对间接连接的***设备诸如串行总线***设备28、并行总线***设备38和主处理器12提供高性能运算支持。虽然依赖于DSP32、36的特定应用,DSP RAM34还优选存在于DSP32、36的内部,并映射到一个可由总线30访问的公共地址空间。DSP32、36还优选为直接连接的***设备诸如串行总线***设备40、42提供接口控制支持。
DSP32、36允许各种不同的运算和控制功能通常彼此独立和并行执行。这样,例如,数字信号处理器32可以实现一个范围的信号处理功能,其对支持各种远程通信的特定串行总线设备40适合。这样的数字信号处理器32可以采用执行对实现高速传真调制解调器、综合服务数字网络(ISDN)连接和无线数据收发两用机***必需的协议和信号处理的信号处理算法。直接连接到数字信号处理器32的串行总线***设备40可以适当地包括一个常规电话***(POTS)接口、一个ISDN接口和一个低功率的符合FCC的RF或IR数据收发两用机。
第二数字信号处理器36可以独立地或者协同地提供音频和视频信号处理功能,如3D音频合成、基于波表的音频信号生成和混合、话音和音乐再现和语音识别。直接连接到数字信号处理器36的串行总线***设备42因此可包括合适的CODEC和滤波器,以执行高速双向数字到模拟的信号变换。
并行总线***设备38优选直接连接到总线30以支持高速并行功能。所支持的并行功能可以包括常规高速双向并行数据传输、高速以太网型网络接口、以及到常规磁盘驱动器、CD-ROM驱动器等的常规EIDE和SCSI接口。并行总线***设备30也可以包括一个通过视频控制器到视频显示控制器的帧缓冲器的直接或间接接口。并行总线***设备的一个附加功能是通过直接连接到一个CODEC的一个或多个串行控制线41提供简单的并行/串行变换功能,否则它作为一个直接连接的串行总线***设备42被支持。实际上,串行连接41允许其它DSP32或更可能是主处理器12通过对总线30的直通连接对CODEC进行相对直接的控制访问。
在实现I/O通道控制器26时,在各种串行和并行总线***设备28、38、40、42和数字信号处理器32、36之间为数据传输的竞争最小。由多功能******22支持的最大数据吞吐量首先由在PCI总线20和***存储器14之间的可用数据传输带宽有效地限制。
对******22可支持的数据吞吐量的另外某些实际限制来自数字信号处理器32、36的可用运算性能。然而,这种限制可以以一些不同的方式克服,这些方式包括增加连接到总线30的数字信号处理器的数目和把运算负载在并行的处理器中间分布。另外,使用高性能数字信号处理器将提供更大的运算吞吐量。
现在参考图1b所示另一个优选的******44。I/O通道控制器内核46提供对数字信号处理器32加强的支持,它使数字信号处理器32避开了潜在的时间要求严格的要经过串行总线***设备28以及可能的话并行总线***设备30的数据传输路径。这样,当数字信号处理器32可以处理直接通过串行总线***设备40连接的数据流时,使用I/O通道控制器内核46自身来控制在串行和并行总线***设备28、38和DSPRAM34之间所有数据传输,使数字信号处理器32避免了许多(如果不是大多数的话)存储管理和重复数据传输功能。反过来,允许DSP32花费更多时间在运算操作上而不是在可能不是最合适它的扩充数据传输操作上。结果,数字信号处理器32使用简单的存储器加载和存储操作几乎只对在RAM34和数字信号处理器32之间移动的数据进行操作。由数字信号处理器32处理的和在RAM34中存储的数据的后继传输被传送到串行和并行总线***设备28、38,而不需要数字信号处理器32进行任何大量的额外处理。
图2示出本发明的一个嵌入应用。***10′可以用作一个智能的、独立的或远程控制的数据流处理器。一个例如Intel 80196的嵌入式处理器和优选由DRAM和闪速EPROM组成的主存储器14′由处理器总线16′互连。I/O通道控制器内核26′支持在处理器总线16′和I/O总线30′之间的一个或多个可能重叠的数据流的传输。一个或多个DSP32′和任何数目的网络***设备,诸如网络控制器38′、38”优选连接到I/O总线30′。DSP32′可以直接服务由网络控制器38′、38”为支持其各自的网络数据流传输功能而产生的中断。DSP可以使用I/O通道控制器实际控制通过I/O总线30′和,如果需要,直到主存储器14′的数据传输。
在一个优选的嵌入应用的实施例中,嵌入***10′用作一个智能高性能网络数据路由器。嵌入CPU12′执行在主存储器14′的闪速EPROM中提供的控制程序,其支持常规SNMP路由器管理功能、数据收集和诊断功能。DSP32′执行来自内部DSP存储器的控制程序,其要么是从主存储器14′由嵌入CPU12′下载的或者是在DSP32′内或与之关联的闪速EPROM中提供的。DSP控制程序提供建立和管理在DSP存储器内的数据路由和筛选树。当数据包由网络控制器38′接收时,源和目的包数据通过并由DSP32′相对于路由和筛选树处理以决定是否和怎样传递该包。DSP32′和嵌入CPU12′两者都可以应用于执行协议转换和实现所需的安全协议。
Ⅱ.软件***结构
在图3的框50中示出与计算机***10主要部件关联的数据流方式的I/O通道控制器的操作。向外的数据流实际上从一个由主处理器12执行的与操作***有关的应用程序产生。在应用程序层52内执行应用程序,导致数据56传输到主存储器14内的主存储器存储空间54。这一数据可以进一步通过用于基于主处理器的信号处理器的主处理器12执行的应用程序来导向。这样,数据流60可以反复地在存储器空间54和主信号处理层58之间传输。由主处理器12实际执行的特定信号处理基本上由各种设备驱动程序决定,这些驱动程序一起实现基于该特定实现的主处理器的信号处理器API(HBSP API)全部或者可用的功能。直接或间接地,HBSP API调用最终变成对I/O通道控制器设备驱动程序的调用,后者启动数据传输控制线程把数据流64从主存储器空间54传输到I/O通道控制器内核62,来进一步传输和可能的处理。一旦执行I/O通道控制器设备驱动程序的主处理器12在主存储器空间54内建立起决定数据流传输64的控制线程,则主处理器12只是简单地允许处理I/O通道控制器62所要求的控制线程。之后,I/O通道控制器内核62负责实际数据流传输的执行。
主处理器在主存储器空间54通过构造一个或多个链接的总线传输单元(BTU)控制块建立控制线程,把在主存储器空间54内提供的流式数据与该控制线程关联。执行I/O通道控制器设备驱动程序的主处理器12用初始BTU控制块初始化I/O通道控制器62,并编程I/O通道控制器62的某些配置寄存器以配置数据流通过I/O通道控制器62的特定路由选择。之后,主处理器12不参加数据流64到I/O通道控制器内核62的实际传输。数据流传输在I/O通道控制器内核62的直接控制下执行,I/O通道控制器内核62作为仲裁主处理器12对主存储器空间54访问的总线主控器***设备。结果,向I/O控制器62的多重并行数据流传输的启动和继续执行过程,如由各控制线程所定义的那样实际上彼此独立地执行,并可能由I/O通道控制器内核62异步启动和完成。
每一总线传输单元至少隐式指定一个相关数据流的目的地址。一个数据流可能指向数字信号处理器68的RAM存储器空间或者各种直接连接的串行和并行总线***设备28、38的一个特定外部硬件接口74。当数据流70被数字信号处理器68处理时,结果数据72可以被传输到串行总线***设备40、42的一个直接连接的外部硬件接口74。另一方案为,结果数据可以存储回DSP RAM空间。从DSP RAM,数据流72随后可以由数字信号处理器再次传输到任何直接连接的串行总线***设备40、42。
定义传输DSP RAM存储的数据流69、80的一个控制线程的总线传输单元控制块既可以在***主存储器14也可以在DSP存储器34中提供。优选由主处理器12在***存储器14中建立DSP控制线程总线传输单元控制块。主处理器12总体执行DSPRAM32存储器空间的管理,因而允许DSP32、36针对DSP RAM34的应用彼此独立操作。
定义DSP总线传输单元控制块以控制一个或多个通过I/O通道控制器内核62或者在其控制下一个或多个数据流向直接连接到I/O通道控制器62的串行或并行总线***设备28、38的外部硬件接口74的传输。另外的方案为,可以引导I/O通道控制器内核62把被处理的数据流84返回到主存储器空间54,以便可能为基于主处理器的信号处理器58继续处理或由应用程序52使用。
数字信号处理器68和I/O通道控制器内核62接收从与其直接连接的外部硬件接口74来的输入数据流76、82。在数字信号处理器68直接接收数据流76的场合,优选处理该数据流并存储到DSP RAM34。这样存储的数据的后继传输由优选在***主存储器14内部提供的BTU控制块协调。该DSPBTU控制线程引导数据流69的传输到I/O控制器62,以便作为对主存储器空间54的数据流84传输,或作为数据流80重新引导到外部硬件接口74。
从直接连接到I/O通道控制器内核62的外部硬件接口74来的向内的数据流82作为数据流84被重新引导到主存储器空间54。另外的方案为,数据流82可以作为数据流70导向DSP RAM34。在后一种场合,该数据流通常由数字信号处理器68处理并作为数据流72直接提供给外部硬件接口74或者作为数据流69传递给I/O通道控制器62以便作为数据流80返回外部硬件接口74或作为数据流84返回到主存储器空间54。
一般来说,向内的数据流最终导向主存储器空间54。一旦在主存储器空间54中出现,数据流60可以由基于主处理器的信号处理器58继续处理。最后,代表被完全处理的向内数据流的数据流86可以由操作***从主存储器空间54向应用程序52返回。
本发明的数据流管理***50这样提供多重数据路径,它们可以灵活定义并重复经过,通过基于主处理器的信号处理器58、I/O通道控制器62、数字信号处理器68和通过外部硬件接口74连接的外部硬件的有序组合或再组合,实际上能获得多个并行数据流的最大处理量。
***50的另一个视图,如图4所示,表示根据本发明在计算机***10内建立的控制和数据流路径。应用程序层90包括任何数目的协同执行的应用程序92、94。这些应用程序92、94使应用编程接口(API)调用进入操作***层96,操作***层96包括一个基本操作***98和通常包括MIDI100、TAPI102、和语音API104操作***扩展的操作扩展部分。任何数目的符合例如用于Ring 3操作***扩展的Direct-X API规范的附加的或另外的API可以在操作***层96内建立。另外为方便起见还在操作***层96中示出逻辑上与操作***98共存的存储器块106。
设备驱动程序接口层108包括各种为支持在操作***层96和作为***设备层114的部分实现的任何部件之间通信和传输而需要的Ring0设备驱动程序。特别是,设备驱动程序接口层108包括通过主处理器12的执行提供对建立在***设备控制器层114内的I/O通道控制器116支持的中断处理程序110和设备驱动程序112。
最后,根据本发明,提供控制器***设备层118。该控制器***设备层118一般包括数字信号处理器120、可由DSP120访问的存储器122和可以由DSP120和I/O通道控制器116两者访问的专用功能外部硬件124。
在一个典型的控制流程中,应用程序A92通过与操作***层96的常规交互在存储器106内建立的数据流。随着至少该数据流的初始部分在存储器106中的建立,设备驱动程序112由操作***层96调用,准备让数据流通过I/O通道控制器116向存储器122或控制器***设备层118的外部硬件124传输。设备驱动程序112在存储器106内建立一个或多个BTU控制块,它们定义了实现数据流传输必需的控制线程。控制线程的初始BTU由设备驱动程序11 2编程到I/O通道控制器116,并提供许可I/O通道控制器116对编程BTU操作的信号。之后,I/O通道控制器116的操作在完成由编程到I/O通道控制器116中的BTU和任何其它在存储器106内作为定义数据流传输的控制线程部分的各BTU所定义的数据流传输时基本上是自治的。
在数据流传输的目的地是存储器122的场合,设备驱动程序112首先在存储器106内建立另一系列一个或多个BTU控制块以建立适合于管理数据流的向DSP侧传输的控制线程。初始BTU由设备驱动程序112编程到I/O通道控制器116。接着,设备驱动程序112可以发布一个命令给数字信号处理器120,指定DSP的希望的功能。最好是,该命令通过使用编程到一个或多个寄存器的编程I/O(PIO)发布,这些寄存器由I/O通道控制器内核116保持并可由数字信号处理器120响应指示已发布一个命令消息的DSP中断读取。在响应发布的命令时,DSP120优选按需初始化来执行被命令的功能,然后提供信号136给I/O通道控制器116,允许控制器对预编程的BTU操作。
在响应具有两个至少隐式连接在一起的被允许的BTU时,I/O通道控制器116启动自治数据传输126直接从存储器106检索由主处理器侧BTU定义的数据流的部分,暂存该数据到内部FIFO池,并自治地传输该数据到由DSP侧的BTU定义的存储器122内的顺序位置。I/O通道控制器在访问存储器106的自治操作优选作为一个总线主控器设备,它直接参加由主处理器12的硬件总线管理控制器和PCI桥接口18支持的存储器周期仲裁。其结果,在实际执行数据传输126时基本上无需使用主处理器12的执行周期。
实际上需要主处理器12的执行周期来形成存储器106中的数据流,并在常规执行设备驱动程序112时初始建立和管理一个或多个主处理器侧和DSP侧定义数据流传输的控制线程的BTU系列。然而在由主处理器12建立和管理BTU中需要的执行周期与在应用程序92、94的控制下初始处理然后往存储器106存储数据流所需要的执行周期相比相对来说少。另外,I/O通道控制器116的操作允许在存储器106中形成的数据流,与在I/O通道控制器116的控制下实际传输的数据流126松散同步。结果,主处理器12在建立和管理主处理器侧BTU时对设备驱动程序的有限执行对于通过I/O通道控制器116的数据传输来说无需紧密配合的实时要求。
在支持I/O通道控制器116中对主处理器12执行过程的松同步由于I/O通道控制器内核116本身的自治命令驱动操作和FIFO池缓冲功能而更加便利。I/O通道控制器内核116在数据流传输进行期间能够自治地从存储器106和存储器122两者中获取相继的BTU,虽然优选只从存储器106中取。这样,当由BTU控制的数据流的部分完成时,I/O通道控制器内核116可以从存储器中获取该控制线程中的下一个BTU,并用新取出的BTU代替完成的BTU。这样,只要在控制线程中的后继源和目的地控制BTU被定义以提供数据流的持续传输,则引向存储器122的向外的数据流自治传输。DSP侧BTU完成、重新加载和重新允许的速率有效地反映由数字信号处理器120对执行每一命令的功能所要求的数据吞吐率。
当数据流目的地是外部硬件124时发生简单的操作方式。I/O通道控制器116通过数据路径130为传输到该外部硬件124的数据提供有限但恰当的缓冲。当外部硬件124从I/O通道控制器116要求数据时,则使用当前BTU控制从存储器106到I/O通道控制器内核116的数据流的传输。当外部硬件124取出由I/O通道控制器内核116缓冲的可用数据时,通道控制器116自治地操作从由当前BTU定义的存储器106中的位置处重新填充缓冲器。当外部硬件124使用由当前BTU所指定的数据时,I/O通道控制器116从存储器106自治地加载控制线程中下一顺序的BTU以维持数据流126的传输。
输入数据流一般以类似方式由I/O通道控制器内核116处理。由DSP120从直接连接的外部硬件接收的数据流,可以由DSP120处理并存储到存储器122中。主处理器12预期每一输入数据流的接收并在存储器106中形成一个或多个DSP侧的BTU的一个相应的控制线程,其初始BTU被编程到I/O通道控制器内核116中,随后由DSP120允许。一个或多个主处理器侧BTU的控制线程还要在存储器106中再次建立,其初始BTU被编程到I/O通道控制器内核116中。虽然是空的,但是这一初始主处理器侧BTU优选设定为允许状态。
然后,把指定该功能由DSP120执行的命令消息发送给I/O通道控制器内核116中的一个消息存储寄存器。然后优选该消息由DSP120应答,初始化请求的功能,并由DSP120接收并处理外部提供的数据流的一部分,存储在存储器122中一个已知地址块内。然后给I/O通道控制器内核116提供一个允许信号136激活初始DSP侧BTU并许可自治传输接收的数据流。当DSP侧BTU指定的数据流传输完成后,下一DSP侧BTU装入I/O通道控制器内核116,并处于禁止状态。同时,接收外部提供的数据流的下一部分并处理入存储器1 22内由下一DSP侧BTU指定的下一已知地址块内。而且,一旦该地址块已填充了处理数据,则响应允许信号136激活当前DSP侧BTU。一般来说,存储器122中的两个地址块为相继交替处理单一数据流而相继交替使用。
当用处理过的输入数据流填充由存储器106中的当前主处理器侧BTU指定的地址块时,该BTU完成,而I/O通道控制器内核116给中断处理程序110发布中断132,后者调用设备驱动程序112至少发出一个信号,指示该地址块可由主处理使用。优选指定存储器106中另一地址块的下一BTU也自治地由I/O通道控制器内核116加载到允许状态,继续接收处理过的到来的数据流。
根据合理的假定,在I/O通道控制器内核116和存储器106之间的数据传输比DSP接收、处理和存储数据到存储器122的速率快很多,在I/O通道控制器116内最小但恰当的缓冲可以保证由命令驱动的数据流传输128不会出现数据过速。
I/O通道控制器内核116还为任何直接从外部硬件124接收的数据流提供数据缓冲。一般说来,激活外部硬件124使其响应主处理器执行设备驱动程序112而操作。I/O通道控制器内核116优选给设备驱动程序112提供一个寄存器接口,其允许经过外部硬件124的可编程寄存器对I/O编程。在外部硬件124初始化的同时,在存储器106中建立BTU控制线程,并且初始BTU被编程到I/O通道控制器内核116并激活以控制数据接收。数据流130直接以外部要求的数据传输速率缓冲存储到I/O通道控制器内核116。继而,I/O通道控制器116在当前BTU的控制下自治操作,把接收到的数据流传输到存储器106。再次合理假定I/O通道控制器内核116可以以大于(虽然优选远大于)接收的数据流130的速率传输数据到存储器106,数据过速再次有效排除。
Ⅲ.I/O通道控制器结构
根据本发明的优选实施例的I/O通道控制器140的一般结构示于图5a。I/O通道控制器140优选使用3个主要的内部总线,包括一个总线主控器程序总线142,一个FIFO池总线144和一个PIO总线146。总线主控器程序总线142提供在任意数目的总线接口模块148、150和总线传输控制***170之间的通信通道。FIFO池总线144是一个专用总线,用于在总线接口模块148、150、FIFO池172和任意数目的集成***设备和***设备接口174-188之间典型的高速突发数据传输。PIO总线146提供在总线接口模块148、150、总线传输控制***170和集成***设备和外设接口174-188之间的通用编程I/O通信路径。PIO总线访问控制器151用作在每一总线接口模块148、150之间的一个PIO总线访问仲裁器。
每一总线接口模块148、150用于连接I/O通道控制器140与各外部通信总线。主接口模块148用于连接I/O通道控制器140到外部PCI总线20,而DSP总线接口模块150类似地提供对外设总线30的接口,它连接到外部数字信号处理器32和DSP RAM34。
主接口模块148连接到总线20的地址、数据、和控制(A/D/C)线154,并为由I/O通道控制器内核140内部的中断控制器驱动的中断线156提供外部接口。在主接口模块148内,地址、数据和控制线154连接到主总线受控器单元158和主总线主控器单元160。主总线受控器单元158给PIO总线146提供一个基于常规寄存器的编程I/O接口,以便使PIO总线146可由主处理器12访问。该寄存器接口还允许对PIO总线146和通过PIO总线146的程序访问与PIO总线146内部连接的各种单元的可编程配置和数据寄存器。主总线受控器单元148还提供外部可访问寄存器接口,其允许编程控制主接口模块148。主总线主控器单元160自身优选包括适合于支持在PCI总线20上常规总线控制访问仲裁的控制逻辑。
DSP总线接口模块150类似地连接DSP总线30的地址、数据、和控制线。该地址、数据和控制线162既连接DSP总线受控器单元166,也连接DSP总线主控器单元168。用于由I/O通道控制器内核140内部的中断控制器驱动的中断线164的外部接口也由DSP总线接口模块150支持。DSP总线受控器单元166提供可编程寄存器接口,它允许DSP总线主控器单元168的可编程控制,以及支持在总线30和PIO总线146之间的一般编程的I/O访问。DSP总线主控器单元168还包括适合允许在DSP总线30上常规总线主控器访问仲裁的控制逻辑。
由主处理器和DSP接口模块148、150对PIO总线146的协调访问通过PIO控制器151控制。每一总线受控器单元158、166必须仲裁为对PIO总线的独占访问以及通过PIO总线146的途径对可访问的任何接口寄存器的独占访问。另外,主总线受控器单元158可以请求PIO控制器151建立一个PIO总线旁路。旁路数据路径从主处理器12通过主总线受控器单元158、PIO总线146和DSP总线受控器单元166建立。这样给主处理器12提供一个数据路径,它允许所有通过DSP总线30可访问的***设备直接由主处理器12控制。这在简化对某些并行总线***设备38的操作控制很有用,例如直接设定或读取CODEC42的控制方式。
总线传输控制***170用于管理在主处理器和DSP总线主控器单元160、168、FIFO池172和集成***设备和外设接口174-183之间的突发数据传输的中央控制***,外设接口174-183连接到FIFO池总线144上。总线传输控制***170保持有BTU的一个可编程表。在本发明的一个优选实施例中,BTU表提供对48个BTU的同时存储,每一BTU占据16个相继的存储字节。表Ⅰ提供优选的BTU结构的说明。
表Ⅰ
字段 | 字节 | 位 |
地址传输长度链接描述符控制字状态字保留 | 422224 | [31:0][15:0][15:0][15:0][15:0][31:0] |
BTU结构的地址字段定义由主和DSP总线主控器单元160、168为在***主存储器14和I/O通道控制器26之间和在I/O通道控制器46和DSP RAM34之间传输数据所用的存储器地址。当进行数据传输时更新BTU的地址字段值以保持作为一个适当的存储器指针的地址值。反之,传输长度值在进行传输时递减,以保持由BTU说明的剩余传输长度的精确反映。在本发明的优选实施例中,主地址空间作为一般的32位地址字段来对待。针对DSP总线主控器传输的地址字段可以不同定义。如表Ⅱ中说明,通过定义该地址字段的一个或多个高阶位,可以容易地实现DSP RAM34的对称分区,以便有选择地把多个数字信号处理器32、36或其它可能提供或使用DSP RAM34内离散存储区域的***设备38的DSP RAM映射到相对于I/O通道控制器内核140的一个公共地址空间。
表Ⅱ
地址(仅指DSP) | 说明 | 位 |
DSPDM保留地址 | DSP#1或DSP#0数据(1)或程序(0)存储器为将来应用保留字节地址 | 3130[29:15][15:0] |
链接描述符字段允许存储一个指向在当前控制线程中下一顺序BTU的数组指针。优选不驻留在I/O通道控制器26提供的BTU存储空间中的控制线程的相继BTU存储在***主存储器14内的一个表中,虽然BTU也可以存储在DSP RAM34中。在BTU存储在***主存储器14中的场合,一个两字节主基连接地址值单独存储在I/O通道控制器内核140的配置寄存器中。该主基链接地址实际是在***主存储器14中的BTU表的基地址,与当前BTU链接描述符值连接,以指定在***主存储器14中存储的下一链接BTU的存储器。相反,BTU链接描述符自己已足够提供为访问在DSP RAM34中存储的连接BTU需要的完整的地址说明。当在I/O通道控制器内核26中的当前BTU的传输长度递减到0时,使用链接描述符字段自治加载下一链接的BTU。是否自治地使用链接描述符字段加载下一BTU,取决于存储在配置控制字寄存器中的控制位值。表Ⅲ说明控制字寄存器的优选定义。
表Ⅲ
控制字 | 说明 | 位 |
总线主控器中断链接定义的链接主控器数据变换突发数据长度方向保留FIFO号 | 从DSP/主存储器来的总线主控器在完成BTU时中断00 无中断01 主中断10 DSPA中断11 DSPB中断链接信息可用/不可用(亦即等待)链接到BTU链接表00 无链接01 从主机链接10 从DSPA链接11 从DSPB链接在传输期间选择数据变换一次突发32/非16字节从/不是到FIFO传输为内部应用保留从FIFO池选择的FIFO | 15[14:13]12[11:10][9:8]65[4:0] |
在控制字字段内,总线主控器位定义BTU是相应于主处理器侧还是DSP侧的控制线程。中断子字段定义在BTU传输长度递减到0时一个中断最终是否和对谁发布。中断源矢量编码和外部中断信号的实际生成是由I/O通道控制器内核140内部的中断控制器188控制。链接定义位说明链接描述符字段是否保持一个有效值。链接主控器子字段存储BTU连接表在***主存储器14中的基地址。数据变换子字段编码要施加给被传输数据的数据变换,诸如字节逆序或字节/字变换。
突发数据长度位选择16或者32字节突发数据传输长度,方向位指定突发数据传输方向。FIFO号子字段用于识别在FIFO池172中的一个特定FIFO的数字标识符,FIFO池172用作由当前BTU控制的数据传输的源或目的地。
最后,BTU的状态字字段定义单个位,它反映一特定BTU诸如在由I/O通道控制器内核26自治执行的BTU更新操作期间是否忙、以及该BTU对参与总线主控器访问仲裁是否既有效又当前有效或被允许,这在表Ⅳ中详细列出。
表Ⅳ
子字段 | 说明 | 位 |
忙位BTU允许 | BTU忙于传输/连接(只读)允许BTU仲裁总线主控器 | 10 |
优选使用总线传输控制***170实现多级循环优先权仲裁器(CPA)以便连续评估当前允许的BTU。该仲裁器连接到BTU表,其连接方式允许直接识别BTU允许位置位的那些BTU。在被识别的允许的BTU的集合中,CPA运行,为每一主和DSP总线主控器单元160、168顺序选择和登台BTU。
由CPA实现的核心算法的操作响应于一组访问请求进一步限制到被识别的一组允许的BTU,它们存在于一个仲裁周期中。所有可能的请求者以基本相对优先级从左到右排序。本发明的CPA对允许的请求者的优先级提供附加的限定。具体来说,前一个仲裁周期刚得胜的请求者实际上不具有当前周期的优先级。在前次得胜的请求者右边第一许可的请求者,如果有的话,被推向当前仲裁周期中的最高优先级,该仲裁周期的优先级向右递减。如果没有被许可的请求者存在于当前周期中前次得胜的请求者的右面,那么使用被许可请求者的基本上从左到右的相对优先级来选择一个当前得胜的请求者。
CPA的决策矩阵优选作为一个修改的逆二进制树实现。提供附加控制逻辑以保持状态信息,这些信息识别在前一个仲裁周期刚得胜的请求者。另外提供的状态信息识别包括先前得胜的请求者的子树,和在一子树的最低节点先前得胜的请求者相对于该最低二进制节点是在左还是右。结果,提供了一个有效的机构来保证在所有可能的请求者中间基本公平的仲裁。
图5b更详细地示出总线传输控制***170。总线传输控制***170包括循环优先级仲裁器190。对访问BTU表192的各个访问请求通过控制线194从直接连接到总线主控器程序总线142和PIO总线146的设备接收。总线主控器程序总线142和PIO总线146两者的数据和BTU地址部分都连接到BTU表192以允许读和写BTU。总线主控器程序总线142还连接到一个BTU扫描器196,在连续请求访问BTU表192时,它由仲裁器190控制。BTU扫描器196连续扫描存储在BTU表192中的许可的BTU,以使BTU标识符和在内部寄存器组198内的主和DSP登台寄存器中的相关数据登台(stage)。表Ⅴ提供优选的BTU寄存器数组定义。
表Ⅴ
子字段 | 说明 | 字节 |
BTU控制主基链接值主最佳BTU主当前BTU主扫描BTUDSP最佳BTUDSP当前BTUDSP扫描BTU | 复位,单步扫描,允许,和清除用于编程限制的有效在主存储器中的主BTU表位移最佳BTU寄存器当前BTU寄存器扫描BTU寄存器最佳BTU寄存器当前BTU寄存器扫描BTU寄存器 | 22222222 |
对BTU表192的每次访问通过仲裁器190的操作唯一仲裁。总线主控器单元160、168每当它们空闲要获得BTU存储的数据时各自单独请求访问BTU表192,BTU存储的数据被编程到总线主控器单元160、168以定义总线主控器突发数据传输。总线主控器单元160、168还继突发数据传输更新当前活动的BTU后请求访问BTU表192。
总线受控器单元158、166被允许通过PIO总线146访问BTU表192。支持这种访问,典型地允许主处理器12和DSP32、36编程初始BTU到BTU表192并接着激活这些BTU。PIO总线142还可以用于允许主处理器12按需要检查BTU的状态,来监视在低水平下的数据传输进程和如果错误发生的话分析错误条件。
所有其它的BTU表访问周期基本上对BTU扫描器196都可用。在只考虑被许可的、从而隐式有效的那些BTU时,扫描器196的扫描速度最大化,同时使扫描器196的总复杂性减小或最小化。随着每一有效的和被许可的BTU被扫描,扫描器196还通过FIFO标记总线171获得由被扫描的BTU指定的FIFO的支持FIFO标记状态信息。结果,BTU扫描器196使得所有对FIFO标记存储器的访问实际而高效。
最后,总线传输控制***170可能依赖于对在BTU表192中BTU的每次更新操作的编程控制产生中断。一次特定更新操作是否导致中断的发布是由该更新操作信号是否是总线主控器传输错误、BTU传输完成和在被更新的BTU的控制字内的可编程中断特定位决定。如果要产生一个中断的话,则通过控制线200给I/O通道控制器内核26内部的中断控制器发布。
每一BTU访问仲裁周期可以被视为从由主或DSP总线主控器单元160、168完成BTU控制的总线主控器突发脉冲传输时开始。相应BTU被更新,而被选择作为先前仲裁周期结果的下一BTU被用作数据源来为下一总线主控器突发数据传输编程总线主控器单元160、168。由单个BTU指定的数据传输在完成前不处理,而是在突发数据长度范围内被分段或分区,并且与由其它BTU指定的数据传输交织在一起。
由于被仲裁的BTU预先登台(pre-staging),所以为了编程总线主控器周期,下一BTU要立即跟着出现。这样,当为了编程进入主或DSP总线主控器单元160、168,某个下一BTU下台(stage down)时,循环优先级仲裁器的操作将在当前总线主控器突发数据传输完成前选择和登台新的下一BTU。结果可由I/O通道控制器支持的最大可能数据带宽仅由在I/O通道控制器26和***主存储器14和RAM34之间可支持的可能总线主控器传输速度限制。
表Ⅵ说明由主和DSP总线主控器单元160、168两者使用的总线主控器编程地址和控制接口。
表Ⅵ
总线主控器地址总线 | 说明 | 位 |
地址总线主控器传输控制 | 传输的开始地址说明 | [31:0]位 |
链接 链接而非传输 18
传输完成 传输后发送TD到FIFO 17
BTU完成 传输后发送BTUD到FIFO 16
FIFO字节许可 FIFO字节许可(编码) [15:14]
突发数据 要传输字节数 [13:8]
数据变换 (从BTU)传输期间交换的字节 [7:6]
方向 传输从/非FIFO [5]
FIFO号 从FIFO池来的FIFO [4:0]
为数据突发传输而编程总线主控器160、168,用在BTU的地址字段中保持的用于数据传输的存储器地址提供总线主控器程序总线142的地址部分。总线主控器程序总线的传输控制总线部分传输在表Ⅴ中说明的控制信号到总线主控器单元160、168。链接控制位说明当前总线主控器突发数据传输针对的是数据而非改变的或连接到的BTU。传输完成和BTU完成控制信号允许数据流状态信息实际编码到FIFO数据流。FIFO字节许可子字段提供正在当前总线主控器突发数据中传输的4字节字中数据的排序字节位置的一个编码值。突发数据子字段说明要传输的字节数,其为程序突发数据传输的一部分。数据变换子字段反映希望要施加于数据传输的数据变换。方向控制位标识突发数据传输的方向。最后,FIFO号说明FIFO池内要参加突发数据传输的FIFO。
一旦编程后,主和DSP总线主控器单元160、168自治操作,仲裁和执行足够的总线访问周期来实现该编程的突发数据传输。在突发数据传输到I/O通道控制器26的场合,该突发数据暂存在总线主控器单元160、168内的FIFO中。然后由总线主控器单元160、168执行一个单独的、请求应答仲裁以获得对和通过FIFO池总线144到FIFO池172的访问。然后从内部FIFO来的数据被传输到FIFO池172,特别是由当前BTU的FIFO标识符说明的FIFO。
对于从I/O通道控制器26发出的数据,总线主控器单元160、168初始仲裁对FIFO池172的访问,并用从由BTU提供的FIFO标识符说明的FIFO的突发数据长度字节数目预加载其内部FIFO。然后自治总线主控器操作进一步执行从主或DSP总线主控器单元160、168来的内部FIFO的突发数据传输。
使用总线主控器单元160、168的稍微不同的编程来检索以自治连续或至少准备为连续方式链接到下一BTU的主侧或DSP侧的控制线程。在完成BTU用一个有效和允许的链接描述符说明的完全数据传输时,该BTU通过循环优先级仲裁器循环,直到它再次被选择来控制总线主控器突发数据传输。BTU的0传输长度使链接描述符通过总线主控器程序总线的低阶部分传递到合适的主或DSP总线主控器单元160、168。在BTU存储在***主存储器14中的场合,使用总线主控器程序总线的高阶地址部分同时给主总线主控器单元160提供基于主处理器的链接描述符。RAM34中的BTU存储在该链接描述符自身的地址范围内。在所有情况下,设定连接控制位,指示一个连接到的BTU突发数据传输正被编程。优选主和DSP总线主控器160、168的内部FIFO具有至少等于BTU大小的深度。于是,可以使用单一总线主控器突发数据传输来从***主存储器14或者DSP RAM34中检索希望的BTU。一旦该希望的BTU存储在一个总线主控器内部FIFO中时,则主或DSP总线主控器单元160、168请求访问总线主控器程序总线142来传输该BTU到总线传输控制***170。由在总线主控器程序总线142上发出的请求控制信号请求访问。由总线传输控制***170产生的应答信号授予对通常和FIFO池总线144连接的字宽更新/链接数据总线173的单独访问。
表Ⅶ
FIFO更新总线 | 说明 | 位 |
更新标记FIFO号读大小写大小读字节许可写字节许可BTU完成传输完成空间可用数据可用 | 指示一个更新周期被更新的FIFO号FIFO中的数据字节数FIFO中的打开字节数FIFO内读字节选择FIFO内写字节选择标记存储器中的BTU完成标记指示传输完成FIFO中空间可用FIFO中数据可用 | 1566441111 |
一个两位总线主控器链接地址总线由总线传输控制***170驱动,来协调在总线传输控制***170内传输完整BTU到BTU表所需的优选3个更新/连接数据总线访问周期;第4字节当前保留,不传输。实际链接起始的BTU被连接到的BTU覆盖。当前BTU在BTU表的位置由总线传输控制***保持,允许在每一总线主控器突发数据传输后对BTU执行状态更新操作。在当前BTU也是一个链接起始的BTU的场合,更新操作直接提供用连接到的BTU对链接起始的BTU的现场覆盖。然后链接到的BTU循环到循环优先级仲裁器即将进行的仲裁操作。
Ⅳ.分布式状态和控制***
总线传输控制***170一般用于管理相对于FIFO池172通过总线主控器接口148、150的数据传输。然而,FIFO池172自身实现访问控制逻辑,其用于中心控制给FIFO池总线144授予数据访问周期。如表ⅡⅤ中的详细说明,FIFO池总线144优选包括一个32位宽的数据总线,一个5位宽的地址总线和单独访问请求和授予控制线,其允许每一总线主控器接口148、150和集成***设备和外设接口174-182单独请求对FIFO池总线144访问和接收单个访问应答信号。
表Ⅷ
FIFO池总线 | 说明 | 位 |
请求请求完成应答FIFO数字节许可数据入数据出方向BTU完成数据可用 | FIFO池访问的请求线该次传输FIFO池的最后请求FIFO池访问的应答线被访问的FIFO号FIFO内的字节选择从设备到FIFO池的数据从FIFO池到设备的数据数据传输方向标记存储器中BTU完成标记FIFO中数据可用 | 101010543232111 |
与FIFO池总线关联或一般为其一部分的是FIFO更新总线(表Ⅵ)。FIFO更新总线优选包括一个5位的FIFO状态总线,其用作在FIFO池172内发送一个FIFO的FIFO标识符给至少所有连接到FIFO池总线144上的集成***设备和外设接口174-183。每当数据被加到FIFO池172中相应的FIFO或从其中取出时,FIFO标识符便通过更新总线发送。通过实际发送FIFO池172内FIFO的状态改变的通知时,FIFO池隐式简化了在FIFO池172内实现的循环优先级仲裁器的必要操作以及在每一集成***设备和外设接口174-183内必要的相应的控制逻辑。
给每一连接到FIFO池总线144上的集成***设备和外设接口174-183提供分布式控制逻辑。这些集成***设备和外设接口174-183中的每一个优选可用一个或多个FIFO标识符编程,这些标识符相应于为支持其各自功能所需要的FIFO池172中的FIFO号。每一FIFO支持一个单向数据流,所以为支持全双工通信需要FIFO对。每一集成***设备和外设接口174-182中的分布式逻辑监视在FIFO状态总线上发送的FIFO标识符与其预编程的标识符是否匹配。当发现一个标识符匹配时,集成***设备或外设接口174-183可以随后发布一个控制信号来请求在FIFO池总线144上进行数据传输的周期。FIFO池172随之发布一个唯一的应答信号来授权访问FIFO池总线。这样,FIFO池172的循环优先级仲裁器只需要考虑用于能进行实际数据传输的集成***设备和外设接口174-183的访问请求。另外,由于集成***设备和外设接口174-183的类型有可能有任何数目和各种组合,因此,实际上应使FIFO池172的循环优先级仲裁器从需要考虑由某一特定的集成***设备和外设接口174-183请求的数据传输周期的任何特殊方面分出来。有可能影响对FIFO池总线144的存储器访问周期请求的合适性的特定操作,将由每一集成***设备和外设接口174-182配合其特定功能内部管理。结果,有很大部分访问决定和仲裁控制逻辑实际上通过I/O控制器140分布。与FIFO池172的循环优先级仲裁器关联的控制逻辑不需根本甚至明显修改,只要任何集成***设备或外设接口174-183的类型、数目或功能在I/O通道控制器内核140的不同特定实现之间改变。
Ⅴ.集成***设备和接口
每一个集成***设备和外设接口174-188优选经过PIO总线146向I/O通道控制器内核140的其余部分提供一个基于寄存器的接口。从而这些寄存器接口的每一个可以由主处理器12和数字信号处理器32、36通过主和DSP总线受控器单元158、166访问。集成***设备和外设接口174-188的每一具体实现提供的对PIO总线的寄存器接口可能由简单到复杂变化。一般说来,需要寄存器接口以允许编程***设备174-188希望的操作,允许复位***设备174-188,指定可能产生中断的条件和中断要发向的外部处理器,以及在***设备174-183还连接到FIFO池总线144的场合,为每一并发的数据流存储由该特殊***设备174-188可支持的FIFO标识符。
另外,每一集成***设备和外设接口174-183包括一个登台数据FIFO,它为被传输到FIFO池总线144或从其传输来的数据提供临时存储。优选这一内部FIFO的深度足以防止由于集成***设备和外设接口174-183期望支持的数据吞吐速率和在FIFO池总线172和特定集成***设备或外设接口174-183之间最坏情况的总线数据传输的滞留引起的数据欠速或过速。在通过一个集成***设备或外设接口的期望数据传输速率足够低的场合,该内部FIFO可以简单使用单个缓冲器寄存器实现。然而外设内部接口FIFO的深度通常为2或4字节。
一个优选的MIDI接口外设接口174实现对PIO总线146一个相对简单的寄存器接口。由MIDI接口外设174实现的优选控制寄存器包括一个发送控制寄存器和一个接收控制寄存器。寄存器接口在表Ⅸ中细化。
表Ⅸ
MIDI发送控制寄存器 | 说明 | 位 |
保留发送许可复位FIFO号MIDI接收控制寄存器 | 未用或测试值许可MIDI发送复位MIDI发送端口从FIFO池来的FIFO说明 | [31:7]65[4:0]位 |
保留中断选择接收许可复位FIFO号 | 未用或测试值00=>无中断产生01=>中断主CPU10=>中断DSP 111=>中断DSP 2许可MIDI接收复位MIDI发送端口从FIFO池来的FIFO | [31:10][9:8]6[5:0] |
发送控制寄存器包括一个5位FIFO ID字段、一个复位位和一个发送许可位。接收控制寄存器优选包括一个5位FIFO ID字段、一个复位位、一个接收许可位和两位中断字段,它编码是否响应与通过外部接口或MIDI接口外设174接收一个数据字节或数据字一致的错误条件而产生中断以及,如果是这样的话,该中断打算的目的地。中断优选只在错误条件下由该外设174产生。优选使用逻辑连接的立即传输端口以产生数据发送/接收中断,其用于控制通过MIDI接口外设174的数据流。
CODEC外设接口176的寄存器接口可能比MIDI接口174远为复杂。在把一个常规的外部CODEC连接到CODEC接口176的场合,寄存器接口需要提供对外部CODEC自身的控制和数据寄存器访问。另外的方案为,CODEC外设接口176可能自身实现一个常规CODEC部分或全部功能,从而将连接到CODEC外设接口176需要的外部部件限制到比较少的模拟部件。在后一种场合,CODEC接口176则是一个完全集成的***设备,其直接提供CODEC控制寄存器给PIO总线146。无论在哪一种情况,CODEC接口176都包括允许CODEC接口176仲裁对FIFO池总线144的访问和监视相应于编程到CODEC接口176的一个寄存器内的一个FIFO标识符的FIFO池172FIFO的状态变化所需的逻辑。
图5c表示CODEC接口176的一个优选实现,其用于支持一个外部CODEC,诸如一个Analog Devices 1843 CODEC。基本CODEC接口数据路径和控制逻辑180提供对多重、基本双向数据流的支持,这些数据流要通过在各FIFO对之间的FIFO池总线144的数据部分,这些FIFO对可能布置在CODEC接口176内部的FIFO池总线和FIFO对之内。优选直到4个发出的数据流通过4个内部FIFO210-212缓冲存储。数据多路转换器216根据在外部CODEC中建立的控制方式提供从各个FIFO210-214来的8或16位数据选择。字节或字数据流在寄存器接口和I/O控制单元220的控制下通过定时锁存和一个串行化器218。时钟和控制信号由寄存器接口和I/O控制单元220通过时钟和控制线222提供。寄存器接口和I/O控制单元220通过交换在线224上的时钟和控制信号协调与外部CODEC的数据传输。于是,经过寄存器接口和I/O控制单元220的操作,串行化的数据在串行数据输出线226上提供给外部CODEC。
CODEC方式命令以及命令涉及的数据也在串行数据输出线226上提供给外部CODEC。方式命令和数据优选通过PIO总线146提供给寄存器接口和I/O控制单元220。然后,引导方式命令和数据经由线214,通过多路转换器216和锁存器218,而通过线224给出命令方式事务处理的信号。
从外部CODEC来的串行数据在线228上由定时去串行化器和锁存器230接收。依赖于外部CODEC的当前命令方式,状态信息和有关数据通过一个去多路转换器232通过线234提供给寄存器接口和I/O控制单元220。其它字节或字宽数据在寄存器接口或I/O控制单元220的控制下从去多路转换器232有选择地提供给4个内部FIFO236-238中的任一个。
寄存器接口和I/O控制单元220还提供请求和应答控制逻辑以支持在FIFO池总线上144上的数据传输。寄存器接口和I/O控制单元220优选提供直到8个FIFO标识符的寄存器存储。每一FIFO标识符允许一个特定的内部FIFO与FIFO池172中任何一个FIFO唯一关联。PIO总线144的FIFO更新部分由寄存器接口和I/O控制单元220连续监视以识别一个被标识的FIFO的状态何时改变。寄存器接口和I/O控制单元220通常代表内部FIFO发布对其FIFO标识符与在更新总线上发送的FIFO标识符匹配的FIFO池访问请求。
FIFO标识符寄存器和其它CODEC接口控制寄存器通常可由主处理器12通过PIO总线146访问。提供给PIO总线146的优选CODEC寄存器接口在表Ⅹ中提供。
表Ⅹ
CODEC寄存器 | 说明 | 位 |
主控器控制音频命令音频数据电话术命令电话术状态状态命令状态数据FIFO号0FIFO号7时钟主屏蔽DSP屏蔽中断控制主控器控制 | DAC/ADC控制给音频CODEC的命令对音频CODEC的方式设置数据对电话术CODEC的命令对电话术CODEC的方式设置数据只读CODEC状态位只读方式设置数据FIFO许可位和池号FIFO许可位和池号时钟计数器控制主中断屏蔽值DSP中断屏蔽值发送完成,下/过速位说明 | 15[4:9][8:3]21888816121212位 |
CODEC复位DAC方式ADC方式 | 复位所有CODEC相关的逻辑设定DAC0,1操作方式设定ADC0,1操作方式 | [15][4:9][8:3] |
音频许可电话术许可CODEC标识符接口控制 | 音频CODEC复位电话术CODEC复位外部CODEC类型说明 | 210位 |
传输完成FIFO 0传输完成FIFO 3欠速FIFO 0欠速FIFO 3过速FIFO 4过速FIFO 7 | 传输完成中断位传输完成中断位欠速中断位(DAC1)欠速中断位(DAC4)过速中断位(ADC5)过速中断位(ADC8) | 111111 |
游戏杆***设备和可能关联的控制台可以通过数字游戏杆接口178支持。***设备游戏杆通常提供正比于游戏杆物理位置的电阻。数字游戏杆接口178优选实现一个定时器和电容器,它们与由游戏杆外设提供的电阻结合允许表示游戏杆位置的数字值由该数字游戏杆接口自治地重复产生。从而主处理器12不再需要设定作为定时器的功能来决定游戏杆的位置。优选数字游戏杆接口174可以编程以发出一个中断的信号,每当被决定的数字值改变时它传递到主处理器12或一个DSP32、36。甚至在不产生中断的场合,该数字值也可经由PIO总线146通过由数字游戏杆接口178提供的寄存器接口被连续访问。
为了支持各种游戏和控制应用,会出现对相关控制台配置和数据的要求,因此会有数据流穿过FIFO池172和数字游戏杆接口178。在数据流传输速率通常低以及等待是一个问题的场合,在数据传输到数字游戏杆接口178或从其传来时,优选使用逻辑连接的立即传输端口以产生对主处理器12或DSP32、36之一的中断。在等待不是一个大的问题或所需要的数据速率相对高的场合,可以使用通过FIFO池172的完整总线主控器数据传输。
另一类型的集成***设备和外设接口由通用接口端口180代表。在一个优选的实施例中,接口端口180可以实现适合于接口视频控制器或直接接口视频帧缓冲器的高速、特宽并行端口。从FIFO池总线144来的后继双字宽数据传输可以缓冲存储为一个64位、128位或更大的字,以并行传输到视频控制器或帧缓冲器中。在这种情况下,一个或多个视频字可以寄存器缓冲存储到接口端口180内,以便允许字传输到控制器或帧缓冲器的定时的最优匹配。
也可以使用接口端口180高速读视频控制器或帧缓冲器。一个,虽然优选两个或更多帧字可以以相继的并行读操作从视频控制器或帧缓冲器读入一个宽的缓冲器寄存器,后者也可作为相对于FIFO池总线144的一个内部FIFO配置。然后,帧字的双字宽部分可以传输到并通过FIFO池172。
提供立即传输端口集成***设备182以建立通过FIFO池172的常用于低带宽、等待时间敏感的数据流的高速、低等待时间的连接。立即传输端口集成***设备182提供优选6个独立的传输端口。每一传输端口由可经由PIO总线146访问的一个控制寄存器和一个数据寄存器代表。表Ⅸ提供控制寄存器的定义。
表Ⅸ
立即传输端口控制 | 说明 | 位 |
空间/数据可用许可复位数据宽度方向中断选择FIFO号立即传输端口数据 | 如果空间/数据可用则置位传输端口许可标记复位传输端口8或16数据传输相对于FIFO传输00=>无中断产生01=>中断主CPU10=>中断DSP 111=>中断DSP 2池FIFO的号说明 | 15141398[7:6][4:0]位 |
高字节低字节 | 字数据的高字节低字节数据或只是字节数据 | [15:8][7:0] |
用于立即传输端口的控制寄存器允许该端口用FIFO标识符、中断目的地、数据传输方向、数据字节或字宽、复位位、许可位和空间或数据可用位来编程。
立即传输端口的典型操作是在PIO总线146的更新总线部分上监视一个被标识的FIFO的状态变化,和根据编程的中断选择位立即给主处理器12或DSP32、36发布中断。使用两个立即传输端口和FIFO池172中的单一FIFO在两个处理器之间建立一个数据流传输路径。优选编程一个立即传输端口每当在标识的FIFO中有空间可用时发布一个主中断。编程第二立即传输端口每当在同一标识的FIFO中有数据可用时发布DSP中断。为启动数据流传输和随后响应主中断,主处理器12通过主总线受控器单元158和PIO总线146传输数据到与主处理器12关联的立即传输端口的I/O数据寄存器。立即传输端口把接收的数据放在FIFO池172中标识的FIFO中。
响应由FIFO池172在FIFO状态总线上发出的FIFO识别信号,第二立即传输端口发布一个DSP中断。作为响应,一个DSP32、36访问该立即传输端口的I/O数据寄存器。数据从FIFO池172中的FIFO读出并传输到DSP32、36被处理,并通常被写入RAM34。
可以以与总线主控器接口148、150和访问FIFO池172的其它集成***设备和外设接口174-183的各种结合使用立即传输端口。例如通过MIDI接口***设备174发出的数据流可以由主处理器12传输到FIFO池172中的一个FIFO。当在更新总线上发送的FIFO状态变化时,MIDI接口***设备174提出使用FIFO池仲裁器访问FIFO池172的请求。一旦访问被授予,则数据从FIFO池172传输到MIDI接口***设备174的内部FIFO并迅速输出。
当数据从FIFO池172中标识的FIFO中清除时,优选编程响应更新同一标识的FIFO的另一个立即传输端口不产生主中断。在这一情况下,主处理器12决定写MIDI数据到标识的FIFO的时间。当主处理器12决定写MIDI数据时,通过主相关立即传输端口的数据寄存器登台新数据,将新数据写入标识的FIFO。在数据要以最大MIDI数据速率输出的场合,主处理器12可以写多于单一字节或字的数据到FIFO池的FIFO中。之后,主处理器12可以根据由主处理器决定的时间计划恢复输出MIDI数据。结果,可以支持从主存储器14到MIDI接口***设备174的传输数据的低的基本固定等待周期。
通过MIDI接口***设备174输入的数据需要与一个时间印记数据一起存储在***主存储器14或RAM34中。该时间印记数据需要以一个从MIDI接口***设备174实际接收时间起计算的最小而规律的等待时间施加到输入数据。结果一个立即传输端口优选与在FIFO池172中的MIDI输入数据FIFO关联并被编程以在数据在被标识的FIFO中可用时发布一个中断给主处理器12或DSP32。
也可以提供一个DSP加速器集成***设备183作为I/O通道控制器140的部分。一般形式是,DSP加速器183优选实现一个可通过PIO总线146提供的寄存器接口,它支持与来自FIFO池172的一个或多个输入FIFO连接和一个或多个输出FIFO通过FIFO池总线144返回数据到FIFO池172。就内部说来,DSP加速器183可以根据可编程控制寄存器的配置采用专用硬件、微控制器、或两者结合配置来执行任何数目的运算强化数据处理操作,诸如数字信号滤波、混合和调制。因此,FIFO池172中可连接到DSP加速器183的FIFO的数目依赖于由DSP加速器183可能实现的特定功能。
消息端口集成***设备184提供一个简单的数据路径以便在连接到I/O通道控制器140的主处理器和DSP处理器之间传输少量数据。在本发明的优选实施例中,在消息端口集成***设备184中提供3个消息端口,每一个专门由特定主处理器12或DSP 32、36源使用。每一个专用源消息端口表示为两个可从PIO总线146访问的16位寄存器。表Ⅻ说明消息端口组和每一消息端口的控制和数据寄存器。
表Ⅻ
消息端口 | 说明 | |
端口0端口1端口2端口#的消息端口控制寄存器 | 主消息发送端口DSP 1消息发送端口DSP 2消息发送端口说明 | 位 |
复位中断选择访问指针端口#的消息端口数据寄存器 | 复位传输端口00=>无中断产生01=>中断主CPU10=>中断DSP111=>中断DSP2消息中的字位移指针说明 | 16[14:13][7:0]位 |
数据 | 读/写数据寄存器 | [15:0] |
访问指针字段用作指向在该消息端口内部保持的一个8字(8×16位)深的消息FIFO的自动增量指针,为发送一个消息,源处理器清空该访问指针字段,写直到8个数据字到消息端口的数据寄存器,然后编程一个中断以指定该消息的目的处理器。该中断通过设定中断选择字段为一个非0状态来实际发布。
为响应消息中断读一消息,目的处理器可以读合适的访问指针字段以识别消息长度,设定访问指针字段为0从头开始读该消息,然后从消息端口的数据寄存器读访问指针指定数目的数据字。一旦消息数据被读出,则中断选择子字段可以简单地复位为0。另外的方案为,该子字段可以复位为指定消息源处理器的一个值,同时以一个0长度消息作为接收该消息的应答。应答或返回消息也可以在设定中断选择子字段指定源处理器之前写到消息FIFO。在所有情况下,目的处理器可以通过认出用以发送消息的特别消息端口来单独识别源处理器,因为每一消息端口唯一与一个源处理器关联。
提供定时器集成***设备186来支持基于通用和特定功能定时的操作。在本发明的一个优选实施例中,由定时器***设备186给PIO总线146提供3个双字寄存器,其详细列于表ⅩⅢ。
表ⅩⅢ
定时器源寄存器 | 说明 | 位 |
定时器复位计数值递减计数定时器0寄存器 | 复位所有定时器设定源时钟的基频递减计数寄存器说明 | 31[30:16][15:0]位 |
允许方式清中断中断选择定时器值主等待时间定时器 | 允许定时器多发/单发方式清中断定时器状态00=>无中断产生01=>中断主CPU10=>中断DSP111=>中断DSP2定时器递减计数值说明 | 311918[17:16][15:0]位 |
定时器值 | 定时器递减计数值 | [15:0] |
这些控制寄存器的第一个提供一个15位自由运行的计数器,它用作为其余定时器功能的一个可编程时基。定时器源寄存器优选包括一个15位递减计数字段,它记录加在I/O控制器140上的***时钟的每一周期。15位计数值字段存储一个静态基时钟计数值,其用于在递减计数子字段每次达到0值时重新初始化递减计数子字段。提供一个单个位作为为整个定时器***设备186的复位控制。
提供一个通用定时器0寄存器在每次从定时器基时钟驱动的16位递减计数定时器到期时产生中断。定时器0寄存器包括一个16位定时器值,其在定时器基时钟的每一周期完成时递减。提供两位子字段指定在到达定时器0值时要中断的处理器。还提供中断清除和定时器允许位。最后提供一个方式控制位指定定时器0是作为多发定时器还是作为单发定时器。在多发定时器方式,定时器值期满时产生一个中断,该定时器值重新加载。第二中断只在前一中断被清除后才发布。在单发方式,一旦产生一个中断,则定时器简单地停止。
还实现一个专门的主中断等待时间定时器。该定时器是一个递增计数定时器,它由定时器基时钟驱动。在向主处理器发出中断时,一个16位定时器值从0开始递增。当主中断等待时间定时器寄存器的定时器值子字段被读取时主中断等待时间定时器停止并清除定时器值。这一专门的定时器允许I/O控制器内核140支持通常由主处理器12对在响应由I/O通道控制器140产生的中断时进行的主中断服务子例程的有效性分析。
最后,提供一个中断控制器集成***设备188以支持在常规操作期间由I/O通道控制器140产生的许多不同的中断源的管理。为有效使用在主或DSP处理器上提供的中断输入,I/O控制器140优选给每一处理器发布一个单一矢量化中断。如图5d所示,在优选实施例中,中断寄存器242产生线156′上的主中断、线164′上的第一DSP中断、和在线165′上的第二DSP中断。对中断寄存器246的输入244从在I/O控制器140内的单个中断源、或者从组中断寄存器246、250接收。组中断可以从中断寄存器242通过PIO总线读取。表ⅩⅣ提供组中断的优选定义。
表ⅩⅣ
组中断寄存器 | 说明 | 位 |
定时器屏蔽立即传输端口屏蔽消息屏蔽***设备屏蔽BTU屏蔽 | 允许中断源允许中断源允许中断源允许中断源允许中断源 | 12111098 |
定时器中断立即传输端口中断消息端口中断***设备中断BTU中断 | 组中断活动位组中断活动位组中断活动位组中断活动位组中断活动位 | 43210 |
优选中断寄存器242允许组中断中的每一个被屏蔽。在一个中断组由中断屏蔽的应用启动而产生一个中断的场合,一个特定中断目标156′、164′、165′的选择由组中断信号244提供的中断目标信息决定。结果,单个中断源决定特定中断目的地,虽然该中断是通过中断寄存器242编组的。
在大量中断可以由I/O控制器140的单一部件,诸如总线传输控制***170产生的场合,或在许多相关的部件可以方便地一起编组的场合,中断请求线248、252可以指向第二级组寄存器246、250。在本发明的优选实施例中,一些集成***设备和外设接口174-186通过一个***设备组中断寄存器246引导,给中断寄存器242提供一个单一组中断。内部***设备,诸如MIDI接口174,和诸如在DSP总线30上提供的外部***设备,每一个都可以是一个***设备组中断的源。表ⅩⅤ给出组屏蔽和通过PIO总线146可访问的中断状态寄存器的优选定义。
表ⅩⅤ
组中断寄存器 | 说明 | 位 |
中断7屏蔽中断1屏蔽MIDI屏蔽外部中断7外部中断1MIDI中断 | 允许中断源7允许中断源1允许MIDI中断源外部中断7活动位外部中断1活动位***设备中断活动位 | 1598710 |
组中断寄存器250优选提供一个立即端口索引字段,其反映每一立即传输端口中断的中断状态。使用一个单一位标记来标记当前可读索引是否有效。立即传输端口寄存器(表ⅩⅥ)可通过PIO总线146访问。
表ⅩⅥ
ITP中断寄存器 | 说明 | 位 |
ITP索引无效ITP索引 | 有效/无效标记,使无效的写ITP数组中的ITP索引 | 7[2:0] |
最后,一个BTU组中断寄存器254提供一个控制寄存器(表ⅩⅦ),它包括一个BTU索引字段,用以识别一个作为中断信号256源的特定BTU。
表ⅩⅦ
BTU中断寄存器 | 说明 | 位 |
BTU索引无效传输完成BTU索引 | 有效/无效标记,使无效的写BTU传输完成BTU表中的BTU索引 | 76[5:0] |
提供一个单独的传输完成位来指示该中断是否是数据流传输完成发出的中断信号。最后,提供一个单一的控制位指示BTU索引字段在读取时是否有效。
这样,中断控制器集成***设备188提供一个简单的寄存器***240,来响应任何大量单个内部中断而快速中断任何数目的不同处理器。每当处理器被中断时,最多需要两个通过PIO总线146的寄存器读操作来唯一识别该中断源。
Ⅵ.多线程弹性缓冲FIFO池
图6表示FIFO池172的详细视图260和在FIFO池172和一些FIFO访问请求设备2620-262n之间的控制关系。FIFO访问请求设备2620-262n优选包括总线主控器接口148、150和集成***设备和外设接口174-183。每一设备2620-n连续监视FIFO更新总线173上指定给一个特定设备2620-n的任何FIFO状态的变化。特别是,每一设备2620-n监视更新总线上正被更新的FIFO号,决定在被更新的FIFO中是否有足够的空间或数据可用以支持在设备2620-n和FIFO池存储器284之间通过FIFO池总线144的数据传输。
响应在指定给一个特定设备2620-n的FIFO中出现的一个合格状态变化,设备2620-n经过FIFO池总线144给FIFO仲裁器264提供一个访问请求控制信号。在每一仲裁周期期间,FIFO仲裁器264实际只考虑请求访问FIFO池284的那些设备2620-n,它们唯一地由一组此时要处理的请求控制信号表示。选择在FIFO仲裁器264的当前仲裁周期中的下一设备,使之访问FIFO池284。FIFO仲裁器264给选择的设备2620-n返回一个唯一的应答信号。作为响应,设备2620-n通过FIFO池总线144提供至少包括由设备2620-n保持的FIFO标识符的控制信号,在一个FIFO标记存储器286和包括FIFO读/写指针存储数组272、274的一个FIFO控制存储器中选择一条数据存储线。
标记存储和指针数组286、272、274优选作为RAM寄存器数组实现,其深度数目等于由FIFO池284支持的FIFO数目。在本发明的优选实施例中,该FIFO池提供24个16字节深的FIFO存储器。表ⅩⅧ为FIFO标记存储器286的每一行列出标记位定义。
表ⅩⅧ
FIFO标记 | 说明 | 位 |
传输完成BTU完成FIFO大小读大小读字节允许写字节允许 | 传输完成标记当前BTU完成标记FIFO大小大于16字节FIFO中的数据字节数目FIFO内读字节选择FIFO内写字节选择 | 121110[9:4][3:2][1:0] |
从FIFO池总线144提供给线276的FIFO号用作在FIFO标记存储器286内选择一个唯一的数组行的地址,以便用于更新在选择的数组行内存储的控制数据。另外该FIFO号还用于在FIFO读和写指针数组272、274中选择一个相应的数组行以允许对识别的FIFO使用读或写指针。最后,给I/O多路转换器282提供线276上的FIFO号以允许在FIFO池存储器284中识别的FIFO和FIFO池总线144之间的数据传输。
表ⅩⅨ提供组合读和写指针数组272、274的字段定义。
表ⅩⅨ
FIFO读/写指针 | 说明 | 位 |
读指针写指针FIFO大小 | 当前FIFO读位置当前FIFO写位置分配的FIFO大小 | [15:9][8:2][1:0] |
大小字段定义FIFO的长度。在本发明优选的实施例中,“00”的FIFO大小值指示一个16字节的FIFO深度。值“01”指示32字节的FIFO深度,而值“10”指示64字节的FIFO深度。读和写指针用以在当前选择的FIFO中提供6位FIFO字节偏移。每一读写指针中的高位,具体说,对16字节FIFO的第五位,对32字节FIFO的第六位和对64字节FIFO的第七位,用以指示在通过该FIFO索引时是否存在FIFO回绕(wrap around)条件。
为简化在FIFO池284内的FIFO的分配和管理,FIFO标记存储器286和读写指针数组272、274中的每一数组行相应于在FIFO池284内定义的FIFO RAM块。优选每一FIFO RAM块是位于FIFO池284内的16字节FIFORAM的一个16字节边界对齐的序列。结果,FIFO标记存储器286和读写指针数组272、274的最大互深度定义在FIFO池284内可并发支持的FIFO的最大数目。在由读写指针数组272、274的大小字段定义32或64字节长的FIFO的场合,在FIFO池284内使用两个或4个相连的FIFO RAM块。这样,每一32字节的FIFO或64字节FIFO的规格必须抢先独立使用一条或三条另外的数组线。
FIFO指针逻辑单元266和包括读写指针数组272、274的FIFO控制存储器一起操作,实现一个状态机,它由FIFO仲裁器164通过在选择设备2620- n时在线268上的许可信号启动以参加对FIFO池284的访问。选择的设备2620- n在线276上通过FIFO池总线144给FIFO指针逻辑单元266提供它的FIFO号,来选择相应的FIFO读写指针、活动字节允许信息和诸如数据传输方向的其它控制信息。数据传输方向控制信号决定是否给I/O多路转换器282提供FIFO读或写指针数组值。字节允许信息定义在FIFO池284和FIFO池总线144之间执行的数据传输的宽度和对齐,从而允许在共同访问FIFO池284内一个公共FIFO的任何设备2620-n的数据流传输宽度之间的独立性。
在通过I/O多路转换器282完成每一读或写周期时,正如由选择的设备2620-n经由FIFO池总线144所决定的,FIFO指针逻辑单元266更新FIFO控制存储器272、274中合适的读或写指针数组值。FIFO指针逻辑单元266还更新FIFO标记存储器286中FIFO标记的相应行。特别是,FIFO指针逻辑单元266更新在访问的FIFO中剩余的数据字节数和合格标记,诸如传输完成和BTU完成。
一旦一个或多个数据字节被传输,根据立即可用于由或从被选择的设备2620-n的内部FIFO接收的字节数和可用于FIFO池284内的相应FIFO中的字节数,FIFO访问请求由选择的设备2620-n撤回。然后新仲裁周期开始,FIFO池仲裁器264通常选择下一设备2620-n访问FIFO池284。
设备2620-n通过FIFO池总线144传播传输完成信号到FIFO指针逻辑单元266来指示终止,其源于任一设备2620-n或由其接收。每当当前BTU完成时,总线主控器设备148、150也传播一个BTU完成信号。在这两种情况下,FIFO指针逻辑单元266处理当前可能留在一个参加设备2620-n的相应内部FIFO或FIFO池284的相应FIFO中的可能的部分FIFO数据的传输。
通常,FIFO标记存储器286和FIFO控制存储器272、274的基于主处理器12的初始化和后继的状态检验,实际上可以经过与FIFO池仲裁器264的协调通过FIFO指针逻辑单元266来执行。优选给PIO总线146通过控制、FIFO索引和数据线290装备一组可编程寄存器,它们允许与一个池FIFO关联的当前FIFO标记由PIO总线146读或从PIO总线146写。按照FIFO指针逻辑单元方式的FIFO标记数组的寄存器说明示于表ⅩⅩ。
表ⅩⅩ
FIFO标记 | 说明 | 位 |
FIFO标记0FIFO标记1....FIFO标记23 | FIFO 0的FIFO标记FIFO 1的FIFO标记....FIFO 23的FIFO标记 | 1616...16 |
实际按照FIFO指针逻辑单元266方式的FIFO控制存储器272、274的寄存器说明示于表ⅩⅪ。
表ⅩⅪ
FIFO指针 | 说明 | 位 |
FIFO控制寄存器0FIFO控制寄存器1....FIFO控制寄存器23 | FIFO 0的FIFO读/写指针FIFO 1的FIFO读/写指针....FIFO 23的FIFO读/写指针 | 1616...16 |
虽然主处理器12和数字信号处理器32、36两者都可以读或写FIFO标记和控制存储器286、272、274,但是包括建立和拆除在FIFO池284中定义的FIFO的初始化优选单独由主处理器12管理。通过定义主处理器12作为对FIFO池284内的FIFO的唯一分配管理者,不需要在主处理器和DSP访问FIFO标记存储器286和FIFO读写指针数组272、274之间的互锁。取而代之,可以使用消息端口184在主处理器12和DSP32、36之间传递短消息以请求和应答任何特定FIFO的建立和该FIFO的识别符,该特定FIFO是新近在FIFO池286内作为主处理器12或DSP32、36实际请求的FIFO而建立的。
由读写指针数组272、274的编程能力提供的附加特征是,FIFO池284内的FIFO可以动态按需配置大小,以保证避免数据过速和欠速。FIFO池284内的32字节和64字节FIFO两者都可以以增量缩减到最小的16字节长,只需简单地重编程FIFO控制存储器272、274保持的大小字段。结果,新16字节和可能的32字节FIFO然后可以在FIFO池284内在不再由一个缩减的FIFO使用的一个或多个FIFO存储器块内分配。相反,FIFO长度可以从16到64字节动态增长,只要满足基FIFO RAM块在FIFO池284内恰当对齐,邻近FIFO RAM块已经不在使用和优选FIFO被清空以简化FIFO管理的限制。
Ⅶ.总线传输单元扫描控制逻辑
图7表示总线传输控制***170的详细视图。总线传输控制***170的作用是管理3个基本独立的高优先级过程,它们每一个都需要访问BTU表192。BTU仲裁器190用作基本控制器以接收对BTU表访问的访问请求和选择3个过程中的一个。这3个过程包括PCI接口事务处理过程、DSP接口事务处理过程、和总线受控器事务处理过程。
PCI接口160产生对BTU仲裁器190的访问和更新请求。访问请求指示PCI接口160可用于编程执行主总线主控器数据传输操作。PCI接口160在完成一次主总线主控器传输后请求更新访问以更新BTU表192内的相应BTU。类似地,DSP接口168给BTU仲裁器190发布访问和更新请求以请求编程从BTU表192中的一个BTU,随后在DSP总线主控器数据传输完成后更新该BTU。最后,每一总线受控器单元158、166可以请求对BTU表192的访问,以编程一个新BTU或检查当前BTU的内容。
BTU仲裁器190实现固定优先级选择机制,使PIO总线请求具有最高优先级,其次是主或DSP总线主控器接口,最后是BTU扫描器。反过来,BTU扫描器保证所有BTU具有对BTU表192一般公正的访问。在PIO控制器151操作时,主或DSP总线受控器单元158、166从BTU仲裁器190通过PIO总线146中的控制线提供一个共享访问请求和接收一个共享许可响应。PIO控制器决定能够响应从BTU仲裁器190来的许可响应的总线接口模块148、150。当允许PIO信号通过控制线292提供到主或DSP总线受控器158、166时,一个BTU索引值通过PIO总线146和地址线294传递给地址多路转换器296。同时,BTU仲裁器190通过控制线298提供一个选择信号,选择PIO提供的索引作为选择BTU表192中一个条目的地址。然后主或DSP总线受控器158、166可以读或写BTU表192中的相应BTU。
PCI总线主控器接口160和DSP总线主控器接口168只要在空闲时都产生对BTU仲裁器190的访问请求。BTU仲裁器190对PCI或DSP访问请求的授予,还取决于对由BTU扫描器196决定的一个可用或被允许的BTU定义的总线主控器接口160或168传输的识别。连接BTU扫描器196和FIFO标记数组270的控制线171给标记数组270提供一个数组索引,和提供返回在相应数组线中存储的FIFO标记的至少一个子集。优选FIFO标记数组270作为双端口存储器实现,从而当由设备2620-n访问进行时允许BTU扫描器196连续和在很大程度上独立地扫描FIFO数组270。FIFO标记数组270的双端口存储器实现提供适当的访问互锁,每当BTU扫描器196试图读正由标记管理器280更新处理的标记数组线时临时停止它。一般说来,扫描器的停止稀少而简短。
BTU扫描器196运行以执行BTU表192合格的顺序扫描而识别下一可能为PCI总线主控器接口160或DSP总线主控器接口168编程的BTU。BTU扫描器196的顺序扫描由在BTU表192内每一BTU条目的许可位的状态限定。这些许可位的状态可以直接由BTU扫描器196通过控制线300读取。因此BTU扫描器196的操作可以有效地限制在顺序扫描仅被许可的BTU。这样,在BTU表192内新产生和建立的BTU立即被包括在BTU扫描中,而不管什么原因被禁止的BTU立即从扫描中被排除。当BTU扫描器196选择下一合格的BTU检查时,通过BTU地址线302给多路转换器296提供BTU地址。多路转换器296的缺省状态是这样的,BTU扫描器把提供的地址作为提供给BTU表192的缺省许可地址。至少一部分BTU从BTU表192中读取并存储在扫描寄存器304、306中的一个。扫描寄存器内容通过控制线308、310提供给BTU扫描器196。表ⅩⅫ中指定由扫描寄存器304、306存储的BTU信息。
表ⅩⅫ
扫描寄存器 | 说明 | 位 |
FIFO死锁BTU完成中断允许BTU忙超越对编程有效有效BTU索引 | 死锁/非正常传输长度当前突发数据后的最佳BTU完成对当前BTU的强迫中断完成扫描BTU当前正在使用移动扫描BTU到最佳BTU寄存器最佳BTU可以用于总线主控器编程;在扫描器传递BTU索引值时置位最佳BTU具有有效BTU索引扫描寄存器中的BTU索引 | 1211109876[5:0] |
表ⅩⅩⅢ中指定在最佳BTU寄存器312、314中存储的BTU信息。
表ⅩⅩⅢ
最佳寄存器 | 说明 | 位 |
FIFO字节允许突发数据长度传输完成链接BTU索引 | FIFO内的字节选择器要传输的字节数目在最佳BTU突发数据后数据流完成为BTU链接的程序,不传输最佳寄存器中的BTU索引 | [15:14][13:8]76[5:0] |
表ⅩⅩⅣ中指定存储在当前BTU寄存器320、332中的BTU信息。
表ⅩⅩⅣ
当前寄存器 | 说明 | 位 |
中断选择突发数据长度传输完成链接BTU索引 | 00=>无中断产生01=>中断主CPU10=>中断DSP111=>中断DSP2要传输的字节数在当前突发数据后数据流完成BTU链接程序,不传输最佳寄存器内的BTU索引 | [15:14][13:8]76[5∶0] |
表ⅩⅩⅤ中说明BTU控制寄存器。
表ⅩⅩⅤ
最佳寄存器 | 说明 | 位 |
复位脉冲允许保留总是V4P允许 | 复位整个BTU子***单步步进BTU扫描器BTU为编程总可用允许操作BTU扫描器 | 98[7:2]10 |
根据从扫描寄存器304、306提供的信息,BTU扫描器196决定由BTU指定的特定接口160、168和FIFO。然后通过控制线171施加FIFO索引以便从FIFO标记数组270中获得相应的FIFO标记数据。具体说,由BTU扫描器196考虑的FIFO标记数据包括所参考的FIFO是否可以容纳或当前存储足够的数据以支持总线突发数据传输的信息。在本发明的优选实施例中,每一突发数据传输具有16字节的最大长度。然而,由BTU扫描器196考虑的一个FIFO标记是传输完成标记,其允许BTU扫描器196恰当考虑允许少于16字节的突发数据传输。另外,死锁标记在置位时用作强迫部分数据传输而不是最优地等待一个完整的突发数据可用。当由于非规则的数据长度传输或一个可能的错误条件而引起的只有部分突发数据被传输时可能产生死锁。对参加设备的最优数据传输长度在FIFO中不可用,而最优数据长度不能传输到该FIFO。无论在何种情况下,使FIFO进入死锁状态的设备将设定死锁标记以强迫由下一设备进行的短数据传输来访问该FIFO。
在BTU扫描器196决定突发数据传输可以通过可用总线主控器接口160、168执行的场合,在BTU就绪时要判定被识别的BTU是否具有足够的优先级而登台到最佳BTU寄存器312、314中的一个。用于登台的BTU优先级通常取决于在执行突发数据传输中最近相对最少使用的BTU。在由扫描寄存器304识别的BTU例如比由最佳BTU寄存器312识别的BTU具有较高优先级或者最佳BTU寄存器312为空的场合,扫描寄存器34的内容在BTU扫描器196的控制下通过经由控制线316提供一个合适的控制信号来复制到最佳BTU寄存器312。相反,如果由扫描寄存器306标识的BTU的登台优先级低于由最佳BTU寄存器314标识的BTU的优先级时,BTU扫描器196不复制扫描寄存器306的内容到最佳BTU寄存器314。无论何种情况,BTU扫描器196完成当前扫描周期然后为控制总线主控器突发数据传输而从BTU表192中选择可能登台的下一合格的BTU。
BTU扫描器196与BTU仲裁器190互操作,指示最佳BTU寄存器312、314中的任何一个或全部是否识别到各自的可用于执行突发数据传输的BTU。根据这一信息,BTU仲裁器190响应访问请求可以决定是否提供一个允许PCI或允许DSP信号到接口160、168中的一个。当由BTU仲裁器190发布允许PCI或允许DSP信号中的一个时,BTU仲裁器190发信号给BTU扫描器196。于是BTU扫描器196可以允许位并行传输相应最佳BTU寄存器312、314的内容到相应当前BTU寄存器320、322。同时,BTU扫描器196更新内部BTU优先级位表,该表随后用于区别在扫描和最佳BTU寄存器304、306、312、314中标识的BTU的相对优先级。
给相应PCI或DSP接口160、168提供一个允许的最佳BTU寄存器312、314的内容。同时,通过地址线324给多路转换器296提供BTU标识符,用来从BTU表192中选择最佳BTU寄存器标识的BTU。随着BTU仲裁器发布允许控制信号,通过控制线298给多路转换器296提供一个当前BTU地址选择信号。这样,完整的BTU被编址,并可用于编程PCI或DSP接口160、168以执行突发数据方式数据传输。一旦编程以后,PCI和DSP接口160、168根据指定的突发数据传输方向,作为任一设备2620-n参加对FIFO池284的请求访问。在数据要传输到FIFO池284内的FIFO的场合,该突发数据传输在设备160、168请求仲裁的对FIFO池284访问之前执行。在数据是从FIFO池284发出的场合,设备160、168在执行突发数据传输前首先仲裁以便从FIFO中获得数据。PCI和DSP接口两者都保持有提供足够存储的内部突发数据FIFO,以缓冲存储每一单一数据突发数据。在本发明的一个优选实施例中,PCI内部突发数据FIFO为32字节深,而DSP内部FIFO是16字节。
一旦PCI或DSP接口160、168完成相对于FIFO池284的一个总线主控器数据传输,则接口160、168请求PCI或DSP更新。对BTU仲裁器190的更新请求不受选择新BTU的限制。反之,由当前BTU寄存器320、322的内容标识的BTU被立即使用。结果,更新操作施加到用于编程最近的突发数据传输的BTU。随着BTU仲裁器190发布一个允许PCI或允许DSP信号,PCI或DSP接口160、168被允许写回更新的信息到由相应当前BTU寄存器320、322的内容标识的BTU中。通过这一更新,传输完成标记的状态被实际传输到被参考的BTU。FIFO标记存储器中的相应标记也被更新,但最好是与突发数据传输自身相关。一旦BTU更新完成,则相应PCI或DSP接口160、168再次对BTU仲裁器190发出访问请求,并等待BTU编程。
可以编程PCI或DSP接口160、168产生与执行突发数据传输有关和可能响应一个数据传输错误的中断。PCI和DSP接口160、168给接口中断控制器326提供完成和错误控制信号。PCI和DSP接口160、168的突发数据完成响应中断操作编程到BTU表192中并从中提供,在最佳寄存器312、314被向下复制到当前寄存器320、322时存储到当前寄存器320、322中。编程的中断响应行为在每次PCI或DSP接口被允许执行一个突发数据传输时相应地从任一当前寄存器320、322提供给接口中断控制器326。在完成该突发数据传输或检测到一个错误条件时,如果任何中断要被产生的话,接口中断控制器326在控制线328上给主中断控制器188提供中断定义控制信号。
Ⅷ.命令驱动的数据传输操作
图8a到8c表示一些数据和控制路径的例子。对CODEC接口176的一个逻辑双向接口使用两个FIFO和4个BTU建立。由于FIFO相对于数据传输是单向独立的,因此,一个单独的BTU与每一个FIFO关联以建立数据传输路径的管理。
CODEC接口176用作FIFO1数据的使用者。因此,CODEC接口176请求以由CODEC接口176内部操作建立的数据传输速率访问FIFO池284。同时,BTU1参加BTU扫描器196的扫描操作。当数据从FIFO1由CODEC接口176取出时,FIFO标记被更新,直到在FIFO1中为一个突发数据传输存在足够空间。然后BTU1成为合格的BTU由BTU仲裁器190选择来编程任一PCI接口160或DSP接口166,为进行如由FIFO1编程说明的从***主存储器14或从DSP RAM34到FIFO1的突发数据传输。
随着BTU1的传输大小被用尽,可以通过PCI或DSP接口160、168之一加载下一顺序BTU到BTU表192以保持数据流对CODEC接口176的连续性,从而执行总线主控器数据传输。由于流数据可以分段存储在***主存储器14或者DSP RAM34之一之中,因此各自标识数据段的BTU链接序列用于有效实现分布/收集机构。由于为传输流数据以及重加载链接的或连接到的BTU而对BTU的处理对于主处理器12和DSP32、36说来是自治执行的,特别是不需产生需要主处理器12或DSP32、36服务的中断,因此保持有效使用主处理器12和DSP32、36基本独立于I/O通道控制器22正在进行的操作。优选编程控制数据流到FIFO1传输的BTU的链接序列的最后一个BTU,在完成该BTU指定的数据传输时启动一个中断。
从CODEC接口176接收的数据由命令驱动进入FIFO2,用于例如向***主存储器14传输。当数据由CODEC接口176接收时,该接口请求访问FIFO池以与CODEC接口176的接收数据速率一致的数据速率传输数据。而且,当FIFO2足够填充能够进行总线主控器传输时,选择BTU2以编程PCI接口160执行FIFO2中数据向***主存储器14的突发数据传输。
当到或从CODEC接口176到FIFO1或FIFO2的数据流终止时,更新相应FIFO标记以反映传输完成状态。这一状态在最后链接到BTU1或BTU2的后继BTU中反映。最终,传输完成将引起FIFO复位操作来清除FIFO。结果,在最后传输数据到FIFO1或从FIFO2传输时可以产生一个中断。
图8b说明更复杂的双向数据流传输,包括数据从***主存储器14通过FIFO3到DSP32传输到直接连接到DSP32的CODEC接口40。由于从***主存储器14到DSP RAM34的数据传输是总线主控器传输,因此使用两个单独的BTU3和4以控制通过FIFO3的数据传输。在此例中,BTU4由DSP32编程到BTU表192,而BTU3由主处理器12编程。因为DSP32负责管理由BTU4指向的RAM34的数据目的地部分,所以DSP32可以建立BTU4和链接的后继者来指定希望大小的相应数据块的传输并在传输每一或者只是最后的数据块到DSP RAM34完成时使产生一个中断。同时,当在FIFO3中足够空间可为数据突发数据传输使用时,BTU3和链接的后继BTU在总线传输控制***170的操作中成为活动的。优选当对FIFO3的最后的数据突发数据传输被执行时,BTU3链接的后继BTU将指定对主处理器12产生一个中断。另一方案为,主处理器12可以通过消息端口184给DSP32发送一个简单的消息,指示数据流传输在最后清空FIFO3时完成。
由DSP32从CODEC接口40接收的数据可以由数字信号处理器32处理然后存储在RAM34内的缓冲位置。一旦在DSP RAM34内建立起一个数据块,就可以由DSP32编程BTU5到BTU表192。在被启动后不久,BTU5被用于编程从DSP RAM34到FIFO4的突发数据传输。当FIFO4填充足够支持一个突发数据传输时,由主处理器12预先建立的BTU6将有资格仲裁选择,以编程PCI总线主控器接口160按照由BTU6或一个链接的后继BTU指定的地址,执行到***主存储器14的突发数据传输。为结束该数据流,DSP32可以通过消息端口184给主处理器12传输一个消息,指定要传输的数据总量。然后主处理器12可以建立最后的BTU来反映总的期望剩余数据数量并在数据一旦被传输到***主存储器14时产生一个中断。然而,优选DSP32代之以引导DSP总线主控器单元150传递与当前和最后部分数据流传输有关的一个传输完成信号。
图8c表示一个更复杂的例子。通过FIFO5连接MIDI接口174以接收从***主存储器14来的数据。主处理器12优选使用一个立即传输端口1820提供数据到FIFO5。因为发出的MIDI数据传输流的定时由主处理器12自己管理,所以主处理器12使用该立即传输端口1820被动地提供数据给FIFO5。被动使用在于,响应数据放入FIFO5时不产生中断。而每当数据出现在相应FIFO5中时建立MIDI接口174以请求FIFO池访问。一般说来,完成从FIFO5到MIDI接口174的数据传输的等待时间最小并且从一个MIDI设备的正常数据速率的观点看来是足够均匀的。结果,不像命令驱动的通过本发明的I/O通道控制器内核26管理的其它数据传输的操作,通过MIDI接口174向外提供的数据速率是源而不是命令驱动的。
源于MIDI接口174或从其发出的数据实际上以由MIDI接口174建立的接收数据速率直接提供给FIFO6。当每一字节或字数据通过接口174被接收时,立即放置一个传输该数据到FIFO池186内的相应FIFO的请求。而且,一般说来,完成从MIDI接口174到FIFO6的数据传输的等待时间最小并且从一个MIDI设备的正常数据速率的观点看来是足够均匀的。
优选建立第二立即传输端口1821以便每当到来的MIDI数据放入FIFO6时主动产生中断给本例中的DSP36。响应该中断,DSP36通过立即传输端口1821从FIFO6检索该数据,记录一个相应的时间印记,并将运两者都存储到DSP RAM34中。结果,DSP36可以有效地接收时间印记,并以最小的、基本固定的等待时间处理从MIDI接口174接收的数据。虽然立即传输端口1821将产生相当数目的DSP中断,但是MIDI数据传输的读取速率相当低,而DSP36在服务中断时通常非常有效。无论何种情况,与MIDI有关的这些中断的全部处理开销与DSP36无关,也不会牵扯主处理器12和任何其它DSP32。可以选择对DSP36的结果数据处理负载,使得任何并发的提供给或接收自相对于DSP RAM34直接连接的CODEC接口42的数据的处理在DSP36的数据处理能力之内。
最后,依据BTU8和9、或两者的相互控制,由DSP36接收并处理的数据可以通过例如CODEC接口42传送来进一步处理或者通过FIFO7传输到***主存储器14。
根据本发明,上述相对于图8a-c的处理可以是或通常是彼此相互独立的。每一这样的处理可以表示一个按照在主处理器12和与I/O通道控制器22关联的数据源及受点之间一个独立控制线程正被传输的独立数据流。然而本发明特别地允许这些以及可能其它的处理并发进行。另外,由于每一数据流的命令驱动操作,I/O通道控制器22的使用公平地分布在一个动态和连续的基础上,以保证每一数据流的基本数据传输速率满足***设备数据源或受点的需要。
这样,叙述了一个多功能I/O***设备支持***。该***设备***提供基本自治的操作、多线程数据流传输,其特别与连接到该***设备***上的集成和外部***设备要求的I/O带宽匹配。另外,该***设备***为多重数字信号处理器提供存储器到存储器的数据传输支持,这些处理器可用于从主处理器的卸载处理或中断密集任务,同时减少或直接支持加在主处理器上对这些数字信号处理器管理的开销。
根据本发明优选实施例的上述说明,熟悉本技术领域的人员容易理解,对公开的实施例可以进行各种修改和变化。因此应该理解,在所附权利要求的范围之内可以实施本发明而不限于上述具体实施例。
Claims (12)
1.一种数据传输控制***,包括:
a)一个池存储器,用于在所述池存储器内形成的多个FIFO内存储数据;
b)多个***设备,可连接到所述池存储器,用于在可编程关联的一个所述FIFO和所述***设备之间传输数据;以及
c)连接在所述池存储器和所述***设备上的一个传输控制器,用于有选择地管理在所述FIFO和所述***设备之间的数据传输,所述传输控制器包括连接到所述***设备的分布式信令***以允许发送反映相对于一个预定的FIFO到所述***设备的数据传输的状态信息。
2.如权利要求1的数据传输控制器,其中,所述***设备可用所述FIFO的标识编程,所述状态信息包括所述预定FIFO的一个预定标识符。
3.如权利要求2的数据传输控制器,其中,所述预定***设备从所述状态信息中决定是否请求对所述池存储器进行访问,以便相对于所述预定FIFO传输数据。
4.如权利要求3的数据传输控制器,其中,所述传输控制器包括一个存储器池仲裁器,所述***设备响应所述状态信息有选择地提出对所述存储器池的访问请求。
5.如权利要求4的数据传输控制器,其中,所述FIFO可在所述存储器池内分配,所述传输控制器包括一个FIFO控制存储器,它在所述存储器池内为每一所述FIFO保持一组读和写指针。
6.如权利要求5的数据传输控制器,其中,所述每一***设备包括一个控制寄存器,该控制寄存器相对于每一所述***设备所关联的每一所述FIFO为FIFO标识符和传输方向标记提供可编程存储。
7.如权利要求6的数据传输控制器,其中,每一所述FIFO标识符和每一相应组的所述读写指针允许所述传输控制器管理在所述***设备和所述FIFO之间的数据传输。
8.如权利要求7的数据传输控制器,其中,每一所述***设备包括一个内部FIFO,用以在所述***设备和所述存储器池之间的传输过程中登台(stage)数据。
9.一种数据传输控制器,包括:
a)一个中央存储器,包括多个存储器块;
b)多个数据传输设备,可通过存储器总线连接到所述中央存储器,以允许在一个预定的存储器块和一个预定的数据传输设备之间的数据传输访问;
c)连接到所述存储器总线的控制逻辑,用于有选择地给所述预定数据传输设备提供对所述预定存储器块的访问,所述控制逻辑给每一所述数据传输设备提供反映对所述存储器块访问的更新数据。
10.如权利要求9的数据传输控制器,其中,所述存储器块可由存储器块标识符指定,所述数据传输设备包括为存储器块标识符提供可编程存储的控制寄存器、和为数据提供暂时存储的数据缓冲器。
11.如权利要求10的数据传输控制器,其中,所述更新数据包括相应于所述预定存储器块的预定存储器块标识符。
12.如权利要求11的数据传输控制器,进一步包括连接到所述数据传输设备的一个中央存储器仲裁器,其中,所述数据传输设备响应在所述预定存储器块标识符和存储在所述控制寄存器内的存储器块标识符之间的匹配,所述预定数据传输设备响应与所述预定存储器块标识符的匹配,对所述中央存储器仲裁器发布一个访问请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/615,682 | 1996-03-13 | ||
US08/615,682 US5797043A (en) | 1996-03-13 | 1996-03-13 | System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1218574A true CN1218574A (zh) | 1999-06-02 |
Family
ID=24466415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN97194571A Pending CN1218574A (zh) | 1996-03-13 | 1997-03-06 | 用于多线程数据流传输控制的分布式状态信令*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US5797043A (zh) |
EP (1) | EP1015982A1 (zh) |
JP (1) | JP2000506647A (zh) |
CN (1) | CN1218574A (zh) |
WO (1) | WO1997034312A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101465722B (zh) * | 2007-12-21 | 2011-07-13 | 瑞昱半导体股份有限公司 | 决定多通道***中控制信号的目标类型的方法 |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974482A (en) * | 1996-09-20 | 1999-10-26 | Honeywell Inc. | Single port first-in-first-out (FIFO) device having overwrite protection and diagnostic capabilities |
BR9711589A (pt) * | 1996-10-04 | 1999-08-24 | Fisher Controls Int | Dispositivo de interface de manutan-Æo parqa uso em um sistema de controle de processo |
KR100253279B1 (ko) * | 1997-03-12 | 2000-04-15 | 김영환 | 퍼스널컴퓨터의음악연주데이터페치회로 |
US6253255B1 (en) * | 1997-05-08 | 2001-06-26 | Microsoft Corporation | System and method for batching data between transport and link layers in a protocol stack |
US6055616A (en) * | 1997-06-25 | 2000-04-25 | Sun Microsystems, Inc. | System for efficient implementation of multi-ported logic FIFO structures in a processor |
US6449281B1 (en) * | 1997-09-30 | 2002-09-10 | Intel Corporation | Interface control of communication between a control processor and a digital signal processor |
US6279052B1 (en) * | 1998-01-13 | 2001-08-21 | Intel Corporation | Dynamic sizing of FIFOs and packets in high speed serial bus applications |
US7734852B1 (en) | 1998-08-06 | 2010-06-08 | Ahern Frank W | Modular computer system |
US6304936B1 (en) * | 1998-10-30 | 2001-10-16 | Hewlett-Packard Company | One-to-many bus bridge using independently and simultaneously selectable logical FIFOS |
US6269413B1 (en) * | 1998-10-30 | 2001-07-31 | Hewlett Packard Company | System with multiple dynamically-sized logical FIFOs sharing single memory and with read/write pointers independently selectable and simultaneously responsive to respective read/write FIFO selections |
US6405235B1 (en) * | 1998-12-04 | 2002-06-11 | Nec Corporation | Data receiving device capable of executing simultaneous reception operation |
US6845398B1 (en) | 1999-08-02 | 2005-01-18 | Lucent Technologies Inc. | Wireless multimedia player |
US6983350B1 (en) | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
US6427196B1 (en) | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
US6668317B1 (en) | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
US7191309B1 (en) | 1999-09-01 | 2007-03-13 | Intel Corporation | Double shift instruction for micro engine used in multithreaded parallel processor architecture |
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6631430B1 (en) * | 1999-12-28 | 2003-10-07 | Intel Corporation | Optimizations to receive packet status from fifo bus |
US6307789B1 (en) * | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
US6625654B1 (en) | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6581113B1 (en) * | 1999-12-29 | 2003-06-17 | Advanced Micro Devices, Inc. | Apparatus and method for transferring frame data between a host system memory and a network interface buffer memory employing transmit descriptors without transmit status information |
US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US6976095B1 (en) | 1999-12-30 | 2005-12-13 | Intel Corporation | Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch |
US6665868B1 (en) * | 2000-03-21 | 2003-12-16 | International Business Machines Corporation | Optimizing host application presentation space recognition events through matching prioritization |
US6609188B1 (en) * | 2000-03-31 | 2003-08-19 | Intel Corporation | Data flow processor |
US8073994B2 (en) * | 2000-05-03 | 2011-12-06 | At&T Laboratories | Data transfer, synchronising applications, and low latency networks |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US7162426B1 (en) * | 2000-10-02 | 2007-01-09 | Xybernaut Corporation | Computer motherboard architecture with integrated DSP for continuous and command and control speech processing |
US7020871B2 (en) | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
US7349431B2 (en) * | 2001-03-13 | 2008-03-25 | Ipicom, Inc. | Dynamic bandwidth allocation system |
US7054986B2 (en) * | 2001-03-30 | 2006-05-30 | Nokia Corporation | Programmable CPU/interface buffer structure using dual port RAM |
US6868476B2 (en) * | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
US7126952B2 (en) | 2001-09-28 | 2006-10-24 | Intel Corporation | Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method |
US7158964B2 (en) * | 2001-12-12 | 2007-01-02 | Intel Corporation | Queue management |
US7107413B2 (en) | 2001-12-17 | 2006-09-12 | Intel Corporation | Write queue descriptor count instruction for high speed queuing |
US7269179B2 (en) | 2001-12-18 | 2007-09-11 | Intel Corporation | Control mechanisms for enqueue and dequeue operations in a pipelined network processor |
US7895239B2 (en) | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US7181573B2 (en) | 2002-01-07 | 2007-02-20 | Intel Corporation | Queue array caching in network devices |
US6934951B2 (en) | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
US7181594B2 (en) * | 2002-01-25 | 2007-02-20 | Intel Corporation | Context pipelines |
US7149226B2 (en) | 2002-02-01 | 2006-12-12 | Intel Corporation | Processing data packets |
DE60228262D1 (de) * | 2002-11-01 | 2008-09-25 | Sgs Thomson Microelectronics | Prozessorschnittstelle mit Stromregister und FIFO |
US6941438B2 (en) * | 2003-01-10 | 2005-09-06 | Intel Corporation | Memory interleaving |
WO2004083904A2 (en) * | 2003-03-18 | 2004-09-30 | University Of Maryland | Optical interconnect structure in a computer system |
US8447900B1 (en) | 2003-06-12 | 2013-05-21 | Marvell International Ltd. | Adaptive multiple FIFO scheme |
US7296100B1 (en) | 2003-10-06 | 2007-11-13 | Redpine Signals, Inc. | Packet buffer management apparatus and method |
US7213099B2 (en) | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
JP2008522305A (ja) * | 2004-12-03 | 2008-06-26 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ストリーミングメモリコントローラ |
DE102005044728A1 (de) * | 2005-09-19 | 2007-03-29 | Silicon Software Gmbh | Programmierung und Layoutdesign von Hardware |
US7742492B2 (en) * | 2006-02-03 | 2010-06-22 | Rockwell Automation Technologies, Inc. | Real time data expansion for distributed I/O |
US9015375B2 (en) * | 2006-04-11 | 2015-04-21 | Sigmatel, Inc. | Buffer controller, codec and methods for use therewith |
US7613848B2 (en) * | 2006-06-13 | 2009-11-03 | International Business Machines Corporation | Dynamic stabilization for a stream processing system |
US7782765B2 (en) | 2007-01-22 | 2010-08-24 | Harris Stratex Networks Operating Corporation | Distributed protection switching architecture for point-to-point microwave radio systems |
US8275071B2 (en) | 2007-05-17 | 2012-09-25 | Harris Stratex Networks Operating Corporation | Compact dual receiver architecture for point to point radio |
US8095088B2 (en) | 2007-05-17 | 2012-01-10 | Harris Stratex Networks Operating Corporation | Compact wide dynamic range transmitter for point to point radio |
US8395256B2 (en) * | 2007-02-02 | 2013-03-12 | Harris Stratex Networks Operating Corporation | Packaging for low-cost, high-performance microwave and millimeter wave modules |
US8762532B2 (en) * | 2009-08-13 | 2014-06-24 | Qualcomm Incorporated | Apparatus and method for efficient memory allocation |
US20110041128A1 (en) * | 2009-08-13 | 2011-02-17 | Mathias Kohlenz | Apparatus and Method for Distributed Data Processing |
US9038073B2 (en) * | 2009-08-13 | 2015-05-19 | Qualcomm Incorporated | Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts |
US8788782B2 (en) * | 2009-08-13 | 2014-07-22 | Qualcomm Incorporated | Apparatus and method for memory management and efficient data processing |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4509119A (en) * | 1982-06-24 | 1985-04-02 | International Business Machines Corporation | Method for managing a buffer pool referenced by batch and interactive processes |
US4882702A (en) * | 1986-03-31 | 1989-11-21 | Allen-Bradley Company, Inc. | Programmable controller with I/O expansion module located in one of I/O module positions for communication with outside I/O modules |
US4821185A (en) * | 1986-05-19 | 1989-04-11 | American Telephone And Telegraph Company | I/O interface system using plural buffers sized smaller than non-overlapping contiguous computer memory portions dedicated to each buffer |
JPH0778781B2 (ja) * | 1986-06-02 | 1995-08-23 | 株式会社日立製作所 | 情報転送方法 |
JP2559394B2 (ja) * | 1987-02-16 | 1996-12-04 | 株式会社日立製作所 | 通信制御装置 |
US4935894A (en) * | 1987-08-31 | 1990-06-19 | Motorola, Inc. | Multi-processor, multi-bus system with bus interface comprising FIFO register stocks for receiving and transmitting data and control information |
US4864532A (en) * | 1987-09-21 | 1989-09-05 | Unisys Corporation | Small computer systems interface--data link processor |
US5088025A (en) * | 1989-02-21 | 1992-02-11 | Unisys Corporation | Input/output processor control system with a plurality of staging buffers and data buffers |
US5131081A (en) * | 1989-03-23 | 1992-07-14 | North American Philips Corp., Signetics Div. | System having a host independent input/output processor for controlling data transfer between a memory and a plurality of i/o controllers |
US5117486A (en) * | 1989-04-21 | 1992-05-26 | International Business Machines Corp. | Buffer for packetizing block of data with different sizes and rates received from first processor before transferring to second processor |
US5315708A (en) * | 1990-02-28 | 1994-05-24 | Micro Technology, Inc. | Method and apparatus for transferring data through a staging memory |
US5185876A (en) * | 1990-03-14 | 1993-02-09 | Micro Technology, Inc. | Buffering system for dynamically providing data to multiple storage elements |
US5280532A (en) * | 1990-04-09 | 1994-01-18 | Dsc Communications Corporation | N:1 bit compression apparatus and method |
JP2829091B2 (ja) * | 1990-04-19 | 1998-11-25 | 株式会社東芝 | データ処理システム |
US5136582A (en) * | 1990-05-29 | 1992-08-04 | Advanced Micro Devices, Inc. | Memory management system and method for network controller |
US5261059A (en) * | 1990-06-29 | 1993-11-09 | Digital Equipment Corporation | Crossbar interface for data communication network |
US5317692A (en) * | 1991-01-23 | 1994-05-31 | International Business Machines Corporation | Method and apparatus for buffer chaining in a communications controller |
US5265233A (en) * | 1991-05-17 | 1993-11-23 | Sun Microsystems, Inc. | Method and apparatus for providing total and partial store ordering for a memory in multi-processor system |
US5515523A (en) * | 1991-06-03 | 1996-05-07 | Digital Equipment Corporation | Method and apparatus for arbitrating conflicts by monitoring number of access requests per unit of time in multiport memory systems |
WO1993004432A2 (en) * | 1991-08-16 | 1993-03-04 | Multichip Technology | High-performance dynamic memory system |
US5426639A (en) * | 1991-11-29 | 1995-06-20 | At&T Corp. | Multiple virtual FIFO arrangement |
CA2084575C (en) * | 1991-12-31 | 1996-12-03 | Chris A. Dinallo | Personal computer with generalized data streaming apparatus for multimedia devices |
US5475860A (en) * | 1992-06-15 | 1995-12-12 | Stratus Computer, Inc. | Input/output control system and method for direct memory transfer according to location addresses provided by the source unit and destination addresses provided by the destination unit |
US5299313A (en) * | 1992-07-28 | 1994-03-29 | 3Com Corporation | Network interface with host independent buffer management |
US5488694A (en) * | 1992-08-28 | 1996-01-30 | Maspar Computer Company | Broadcasting headers to configure physical devices interfacing a data bus with a logical assignment and to effect block data transfers between the configured logical devices |
JPH0799512B2 (ja) * | 1992-11-18 | 1995-10-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | プログラム可能な外部記憶制御装置 |
US5522050A (en) * | 1993-05-28 | 1996-05-28 | International Business Machines Corporation | Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus |
JPH0793274A (ja) * | 1993-07-27 | 1995-04-07 | Fujitsu Ltd | データ転送方式及びデータ転送装置 |
JP2821345B2 (ja) * | 1993-09-29 | 1998-11-05 | 北海道日本電気ソフトウェア株式会社 | 非同期i/o制御方式 |
US5584039A (en) * | 1993-11-08 | 1996-12-10 | International Business Machines Corporation | System for coordinating execution of multiple concurrent channel programs without host processor involvement using suspend and resume commands to control data transfer between I/O devices |
US5428609A (en) * | 1994-01-03 | 1995-06-27 | At&T Corp. | STM-to-ATM converters |
US5577213A (en) * | 1994-06-03 | 1996-11-19 | At&T Global Information Solutions Company | Multi-device adapter card for computer |
US5661848A (en) * | 1994-09-08 | 1997-08-26 | Western Digital Corp | Multi-drive controller with encoder circuitry that generates ECC check bytes using the finite field for optical data for appending to data flowing to HDA |
US5586264A (en) * | 1994-09-08 | 1996-12-17 | Ibm Corporation | Video optimized media streamer with cache management |
US5579452A (en) * | 1994-09-29 | 1996-11-26 | Xerox Corporation | Method of managing memory allocation in a printing system |
US5613153A (en) * | 1994-10-03 | 1997-03-18 | International Business Machines Corporation | Coherency and synchronization mechanisms for I/O channel controllers in a data processing system |
US5506747A (en) * | 1994-12-15 | 1996-04-09 | Northern Telecom Limited | Provision of FIFO buffer in RAM |
US5673396A (en) * | 1994-12-16 | 1997-09-30 | Motorola, Inc. | Adjustable depth/width FIFO buffer for variable width data transfers |
US5613162A (en) * | 1995-01-04 | 1997-03-18 | Ast Research, Inc. | Method and apparatus for performing efficient direct memory access data transfers |
US5519701A (en) * | 1995-03-29 | 1996-05-21 | International Business Machines Corporation | Architecture for high performance management of multiple circular FIFO storage means |
US5633865A (en) * | 1995-03-31 | 1997-05-27 | Netvantage | Apparatus for selectively transferring data packets between local area networks |
-
1996
- 1996-03-13 US US08/615,682 patent/US5797043A/en not_active Expired - Lifetime
-
1997
- 1997-03-06 EP EP97915860A patent/EP1015982A1/en not_active Withdrawn
- 1997-03-06 CN CN97194571A patent/CN1218574A/zh active Pending
- 1997-03-06 WO PCT/US1997/003345 patent/WO1997034312A1/en not_active Application Discontinuation
- 1997-03-06 JP JP9532654A patent/JP2000506647A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101465722B (zh) * | 2007-12-21 | 2011-07-13 | 瑞昱半导体股份有限公司 | 决定多通道***中控制信号的目标类型的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO1997034312A1 (en) | 1997-09-18 |
EP1015982A4 (en) | 2000-07-05 |
US5797043A (en) | 1998-08-18 |
JP2000506647A (ja) | 2000-05-30 |
EP1015982A1 (en) | 2000-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1218574A (zh) | 用于多线程数据流传输控制的分布式状态信令*** | |
CN1218566A (zh) | 支持要求驱动的多重并行数字数据流传输的方法和装置 | |
CN1218567A (zh) | 多路并行数字数据流通道控制器体系结构 | |
US5784649A (en) | Multi-threaded FIFO pool buffer and bus transfer control system | |
CN1148666C (zh) | 具总线调停机制的高速处理器*** | |
CN1074229C (zh) | 队列管理***和方法 | |
CN1230759C (zh) | 进行最佳数据传送的多总线信息处理***的总线-总线桥 | |
WO1997034235A9 (en) | Multi-threaded fifo pool buffer and bus transfer control system | |
CN1150460C (zh) | 计算机总线***、通信***和通过总线通信的方法 | |
US20090259789A1 (en) | Multi-processor, direct memory access controller, and serial data transmitting/receiving apparatus | |
CN1214168A (zh) | 有效的输出请求分组交换设备和方法 | |
CN1146804C (zh) | 快速16位分离事务i/o总线 | |
CN1910571A (zh) | 单芯片协议转换器 | |
CN1008484B (zh) | 处理机输入/输出和中断过滤器 | |
CN1231734A (zh) | 在类数据交换环境中提供动态数据引用的***和方法 | |
CN1551592A (zh) | 数据传输控制装置、电子设备及数据传输控制方法 | |
CN1570907A (zh) | 多处理器*** | |
CN1928825A (zh) | 一种服务器的实现方法以及服务器*** | |
CN1286029C (zh) | 控制芯片片内存储装置及其存储方法 | |
CN86106826A (zh) | 数据处理*** | |
CN1199120C (zh) | 具有共享一个共用存储器的多个处理器的装置 | |
EP0865633B1 (en) | Solid state data processor with versatile multisource interrupt organization | |
CN1232216A (zh) | 能够通过有效地使用数据线提高生产能力的信息处理方法和信息处理装置 | |
CN1473397A (zh) | 在移动台中交接调制解调器和存储器的设备和方法 | |
CN1145893C (zh) | 带有具用于一个共用存储器的接口的多个处理器的装置 |
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 |