CN1218566A - 支持要求驱动的多重并行数字数据流传输的方法和装置 - Google Patents
支持要求驱动的多重并行数字数据流传输的方法和装置 Download PDFInfo
- Publication number
- CN1218566A CN1218566A CN97194593.4A CN97194593A CN1218566A CN 1218566 A CN1218566 A CN 1218566A CN 97194593 A CN97194593 A CN 97194593A CN 1218566 A CN1218566 A CN 1218566A
- Authority
- CN
- China
- Prior art keywords
- data
- fifo
- btu
- bus
- interface
- 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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
一种数字信道控制器(116),通过包含第一缓存器的基本系统接口(18)、包含多个第二缓存器的存储器池(34)、一个或多个其每个都具有第三缓存器的外设设备控制多重数据流的传送。各外设设备的每个都以预定的数据传输速率经由外设接口(28,40,42,38)通过其第三缓存器传送数据。仲裁器系统(26)与所述存储器池(34)相连,响应在预定条件下根据数据的存在所提供的来自外设设备和基本系统接口的请求信号,有选择地使数据传输到相应的第三缓存器和第二缓存器。
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控制器,它支持在一个中央处理器和多个与多媒体、网络和通信有关的外围设备之间建立的一个总带宽很大的数据传输路径上的多重、并行可变带宽的数据流。
在本发明中,这是通过一个数据信道控制器来实现的,该数据信道控制器同包含有基本存储器的基本计算机系统耦合,用于通过包括第一缓冲存储器的基本系统接口、包括多个第二缓冲存储器的存储器池、以及每一个都包括第三缓冲存储器的一个或多个外设设备管理多重数据流的传输。一与所述存储器池耦合的判定器系统,用于响应于第一和第二请求信号,对一预定的第一缓冲存储器有选择性地启动数据的传输。各外设设备通过它们的第三缓冲存储器对外设接口传输数据,所述外设接口的特征在于其每一个都具有预定的数据传输速率。外设设备根据在相关第三缓冲存储器中数据的出现,在第一预定条件下向判定器系统发出第一个请求信号,以获得在相应第二和第三缓冲存储器间的数据传输。基本系统接口根据在第二缓冲存储器中数据的出现,在第二预定条件下,提供第二个请求信号,以通过第一缓冲存储器在第二缓冲存储器和基本存储器间获得相应数据的传输。
使用本发明的多重并行数字数据流通道控制器的计算机系统因而可以支持多个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通道控制器的优选实施例的总线传输单元控制器子系统的详细方框图;
图8ac是控制流程图,说明根据本发明的优选实施例基于I/O通道控制器的系统的最佳操作方式。
Ⅰ.I/O控制器系统结构
图1a提供优选实现个人计算机结构的计算机系统10的一个方框图,它连接到一个多功能I/O外围控制器硬件系统(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提供高性能运算支持。虽然依赖于DSP 32、36的特定应用,DSP RAM34还优选存在于DSP 32、36的内部,并映射到一个可由总线30访问的公共地址空间。DSP 32、36还优选为直接连接的外围设备诸如串行总线外围设备40、42提供接口控制支持。
DSP 32、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和DSP RAM34之间所有数据传输,使数字信号处理器32避免了许多(如果不是大多数的话)存储管理和重复数据传输功能。反过来,允许DSP 32花费更多时间在运算操作上而不是在可能不是最合适它的扩充数据传输操作上。结果,数字信号处理器32使用简单的存储器加载和存储操作几乎只对在RAM34和数字信号处理器32之间移动的数据进行操作。由数字信号处理器32处理的和在RAM34中存储的数据的后继传输被传送到串行和并行总线外围设备28、38,而不需要数字信号处理器32进行任何大量的额外处理。
图2示出本发明的一个嵌入应用。系统10′可以用作一个智能的、独立的或远程控制的数据流处理器。一个例如Intel 80196的嵌入式处理器和优选由DRAM和闪速EPROM组成的主存储器14′由处理器总线16′互连。I/O通道控制器内核26′支持在处理器总线16′和I/O总线30′之间的一个或多个可能重叠的数据流的传输。一个或多个DSP 32′和任何数目的网络外围设备,诸如网络控制器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总体执行DSP RAM32存储器空间的管理,因而允许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的部分实现的任何部件之间通信和传输而需要的Ring 0设备驱动程序。特别是,设备驱动程序接口层108包括通过主处理器12的执行提供对建立在外围设备控制器层114内的I/O通道控制器116支持的中断处理程序110和设备驱动程序112。
最后,根据本发明,提供控制器外围设备层118。该控制器外围设备层118一般包括数字信号处理器120、可由DSP120访问的存储器122和可以由DSP120和I/O通道控制器116两者访问的专用功能外部硬件124。
在一个典型的控制流程中,应用程序A 92通过与操作系统层96的常规交互在存储器106内建立的数据流。随着至少该数据流的初始部分在存储器106中的建立,设备驱动程序112由操作系统层96调用,准备让数据流通过I/O通道控制器116向存储器122或控制器外围设备层118的外部硬件124传输。设备驱动程序112在存储器106内建立一个或多个BTU控制块,它们定义了实现数据流传输必需的控制线程。控制线程的初始BTU由设备驱动程序112编程到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,并处于禁止状态。同时,接收外部提供的数据流的下一部分并处理入存储器122内由下一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结构的说明。
表Ⅰ字段 字节 位地址 4 [31:0]传输长度 2 [15:0]链接描述符 2 [15:0]控制字 2 [15:0]状态字 2 [15:0]保留 4 [31:0]
BTU结构的地址字段定义由主和DSP总线主控器单元160、168为在系统主存储器14和I/O通道控制器26之间和在I/O通道控制器46和DSPRAM34之间传输数据所用的存储器地址。当进行数据传输时更新BTU的地址字段值以保持作为一个适当的存储器指针的地址值。反之,传输长度值在进行传输时递减,以保持由BTU说明的剩余传输长度的精确反映。在本发明的优选实施例中,主地址空间作为一般的32位地址字段来对待。针对DSP总线主控器传输的地址字段可以不同定义。如表Ⅱ中说明,通过定义该地址字段的一个或多个高阶位,可以容易地实现DSP RAM34的对称分区,以便有选择地把多个数字信号处理器32、36或其它可能提供或使用DSPRAM34内离散存储区域的外围设备38的DSP RAM映射到相对于I/O通道控制器内核140的一个公共地址空间。
表Ⅱ地址(仅指DSP) 说明 位DSP DSP#1或DSP#0 31DM 数据(1)或程序(0)存储器 30保留 为将来应用保留 [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,取决于存储在配置控制字寄存器中的控制位值。表Ⅲ说明控制字寄存器的优选定义。
表Ⅲ控制字 说明 位总线主控器 从DSP/主存储器来的总线主控器 15中断 在完成BTU时中断 [14:13]
00 无中断
01 主中断
10 DSPA中断
11 DSPB中断链接定义的 链接信息可用/不可用(亦即等待) 12链接主控器 链接到BTU链接表 [11:10]
00 无链接
01 从主机链接
10 从DSPA链接
11 从DSPB链接数据变换 在传输期间选择数据变换 [9:8]突发数据长度 一次突发32/非16字节 7方向 从/不是到FIFO传输 6保留 为内部应用保留 5FIFO号 从FIFO池选择的FIFO [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忙于传输/连接(只读) 1BTU允许 允许BTU仲裁总线主控器 0
优选使用总线传输控制系统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控制 复位,单步扫描,允许,和清除用于 2
编程限制的有效主基链接值 在主存储器中的主BTU表位移 2主最佳BTU 最佳BTU寄存器 2主当前BTU 当前BTU寄存器 2主扫描BTU 扫描BTU寄存器 2DSP最佳BTU 最佳BTU寄存器 2DSP当前BTU 当前BTU寄存器 2DSP扫描BTU 扫描BTU寄存器 2
对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 17BTU完成 传输后发送BTUD到FIFO 16FIFO字节许可 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更新总线 说明 位更新标记 指示一个更新周期 1FIFO号 被更新的FIFO号 5读大小 FIFO中的数据字节数 6写大小 FIFO中的打开字节数 6读字节许可 FIFO内读字节选择 4写字节许可 FIFO内写字节选择 4BTU完成 标记存储器中的BTU完成标记 1传输完成 指示传输完成 1空间可用 FIFO中空间可用 1数据可用 FIFO中数据可用 1
一个两位总线主控器链接地址总线由总线传输控制系统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池访问的请求线 10请求完成 该次传输FIFO池的最后请求 10应答 FIFO池访问的应答线 10FIFO数 被访问的FIFO号 5字节许可 FIFO内的字节选择 4数据入 从设备到FIFO池的数据 32数据出 从FIFO池到设备的数据 32方向 数据传输方向 1BTU完成 标记存储器中BTU完成标记 1数据可用 FIFO中数据可用 1
与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发送控制寄存器 说明 位保留 未用或测试值 [31:7]发送许可 许可MIDI发送 6复位 复位MIDI发送端口 5FIFO号 从FIFO池来的FIFO [4:0]MIDI接收控制寄存器 说明 位保留 未用或测试值 [31:10]中断选择 00无中断产生 [9:8]
01中断主CPU
10中断DSP 1
11中断DSP 2接收许可 许可MIDI接收 7复位 复位MIDI发送端口 6FIFO号 从FIFO池来的FIFO [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寄存器 说明 位主控器控制 DAC/ADC控制 15音频命令 给音频CODEC的命令 [14:9]音频数据 对音频CODEC的方式设置数据 [8:3]电话术命令 对电话术CODEC的命令 2电话术状态 对电话术CODEC的方式设置数据 1状态命令 只读CODEC状态位 8状态数据 只读方式设置数据FIFO号0 FIFO许可位和池号 8… … 8FIFO号7 FIFO许可位和池号 8时钟 时钟计数器控制 16主屏蔽 主中断屏蔽值 12DSP屏蔽 DSP中断屏蔽值 12中断控制 发送完成,下/过速位 12主控器控制 说明 位CODEC复位 复位所有CODEC相关的逻辑 [15]DAC方式 设定DAC0,1操作方式 [14:9]ADC方式 设定ADC0,1操作方式 [8:3]音频许可 音频CODEC复位 2电话术许可 电话术CODEC复位 1CODEC标识符 外部CODEC类型 0接口控制 说明 位传输完成FIFO 0 传输完成中断位 1传输完成FIFO 3 传输完成中断位 1欠速FIFO 0 欠速中断位(DAC1) 1欠速FIFO 3 欠速中断位(DAC4) 1过速FIFO 4 过速中断位(ADC5) 1过速FIFO 7 过速中断位(ADC8) 1
游戏杆外围设备和可能关联的控制台可以通过数字游戏杆接口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访问的一个控制寄存器和一个数据寄存器代表。表Ⅺ提供控制寄存器的定义。
表Ⅺ立即传输端口控制 说明 位空间/数据可用 如果空间/数据可用则置位 15许可 传输端口许可标记 14复位 复位传输端口 13数据宽度 8或16数据传输 9方向 相对于FIFO传输 8中断选择 00无中断产生 [7:6]
01中断主CPU
10中断DSP 1
11中断DSP 2FIFO号 池FIFO的号 [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 DSP 1 消息发送端口端口2 DSP 2 消息发送端口端口#的消息端口控制寄存器 说明 位复位 复位传输端口 16中断选择 00无中断产生 [14:13]
01中断主CPU
10中断DSP1
11中断DSP2访问指针 消息中的字位移指针 [7:0]端口#的消息端口数据寄存器 说明 位数据 读/写数据寄存器 [15:0]
访问指针字段用作指向在该消息端口内部保持的一个8字(8×16位)深的消息FIFO的自动增量指针。为发送一个消息,源处理器清空该访问指针字段,写直到8个数据字到消息端口的数据寄存器,然后编程一个中断以指定该消息的目的处理器。该中断通过设定中断选择字段为一个非0状态来实际发布。
为响应消息中断读一消息,目的处理器可以读合适的访问指针字段以识别消息长度,设定访问指针字段为0从头开始读该消息,然后从消息端口的数据寄存器读访问指针指定数目的数据字。一旦消息数据被读出,则中断选择子字段可以简单地复位为0。另外的方案为,该子字段可以复位为指定消息源处理器的一个值,同时以一个0长度消息作为接收该消息的应答。应答或返回消息也可以在设定中断选择子字段指定源处理器之前写到消息FIFO。在所有情况下,目的处理器可以通过认出用以发送消息的特别消息端口来单独识别源处理器,因为每一消息端口唯一与一个源处理器关联。
提供定时器集成外围设备186来支持基于通用和特定功能定时的操作。在本发明的一个优选实施例中,由定时器外围设备186给PIO总线146提供3个双字寄存器,其详细列于表ⅩⅢ。
表ⅩⅢ定时器源寄存器 说明 位定时器复位 复位所有定时器 31计数值 设定源时钟的基频 [30:16]递减计数 递减计数寄存器 [15:0]定时器0寄存器 说明 位允许 允许定时器 31方式 多发/单发方式 19清中断 清中断定时器状态 18中断选择 00无中断产生 [17:16]
01中断主CPU
10中断DSP1
11中断DSP2定时器值 定时器递减计数值 [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总线读取。表ⅩⅣ提供组中断的优选定义。
表ⅩⅣ组中断寄存器 说明 位定时器屏蔽 允许中断源 12立即传输端口屏蔽 允许中断源 11消息屏蔽 允许中断源 10外围设备屏蔽 允许中断源 9BTU屏蔽 允许中断源 8定时器中断 组中断活动位 4立即传输端口中断 组中断活动位 3消息端口中断 组中断活动位 2外围设备中断 组中断活动位 1BTU中断 组中断活动位 0
优选中断寄存器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屏蔽 允许中断源7 15中断1屏蔽 允许中断源1 9MIDI屏蔽 允许MIDI中断源 8外部中断7 外部中断7活动位 7外部中断1 外部中断1活动位 1MIDI中断 外围设备中断活动位 0
组中断寄存器250优选提供一个立即端口索引字段,其反映每一立即传输端口中断的中断状态。使用一个单一位标记来标记当前可读索引是否有效。立即传输端口寄存器(表ⅩⅥ)可通过PIO总线146访问。表ⅩⅥITP中断寄存器 说明 位ITP索引无效 有效/无效标记,使无效的写 7ITP索引 ITP数组中的ITP索引 [2:0]
最后,一个BTU组中断寄存器254提供一个控制寄存器(表ⅩⅦ),它包括一个BTU索引字段,用以识别一个作为中断信号256源的特定BTU。 表ⅩⅦBTU中断寄存器 说明 位BTU索引无效 有效/无效标记,使无效的写 7传输完成 BTU传输完成 6BTU索引 BTU表中的BTU索引 [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标记 说明 位传输完成 传输完成标记 12BTU完成 当前BTU完成标记 11FIFO大小 FIFO大小大于16字节 10读大小 FIFO中的数据字节数目 [9:4]读字节允许 FIFO内读字节选择 [3:2]写字节允许 FIFO内写字节选择 [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读位置 [15:9]写指针 当前FIFO写位置 [8:2]FIFO大小 分配的FIFO大小 [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字节FIFO RAM的一个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标记0 FIFO 0的FIFO标记 16FIFO标记1 FIFO 1的FIFO标记 16
… … …FFIO标记23 FIFO 23的FIFO标记 16
实际按照FIFO指针逻辑单元266方式的FIFO控制存储器272、274的寄存器说明示于表ⅩⅪ。表ⅩⅪFIFO指针 说明 位FIFO控制寄存器0 FIFO 0的FIFO读/写指针 16FIFO控制寄存器1 FIFO 1的FIFO读/写指针 16FIFO控制寄存器23 FIFO 23的FIFO读/写指针 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死锁 死锁/非正常传输长度 12BTU完成 当前突发数据后的最佳BTU完成 11中断允许 对当前BTU的强迫中断完成 10BTU忙 扫描BTU当前正在使用 9超越 移动扫描BTU到最佳BTU寄存器 8对编程有效 最佳BTU可以用于总线主控器编程 7
;在扫描器传递BTU索引值时置位有效 最佳BTU具有有效BTU索引 6BTU索引 扫描寄存器中的BTU索引 [5:0]表ⅩⅩⅢ中指定在最佳BTU寄存器312、314中存储的BTU信息。表ⅩⅩⅢ最佳寄存器 说明 位FIFO字节允许 FIFO内的字节选择器 [15:14]突发数据长度 要传输的字节数目 [13:8]传输完成 在最佳BTU突发数据后 7
数据流完成链接 为BTU链接的程序,不传输 6BTU索引 最佳寄存器中的BTU索引 [5:0]表ⅩⅩⅣ中指定存储在当前BTU寄存器320、332中的BTU信息。表ⅩⅩⅣ当前寄存器 说明 位中断选择 00无中断产生 [15:14]
01中断主CPU
10中断DSP1
11中断DSP2突发数据长度 要传输的字节数 [13:8]传输完成 在当前突发数据后数据流完成 7链接 BTU链接程序,不传输 6BTU索引 最佳寄存器内的BTU索引 [5:0]表ⅩⅩⅤ中说明BTU控制寄存器。表ⅩⅩⅤ最佳寄存器 说明 位复位 复位整个BTU子系统 9脉冲允许 单步步进BTU扫描器 8保留 [7:2]总是V4P BTU为编程总可用 1允许 允许操作BTU扫描器 0
根据从扫描寄存器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的数据处理能力之内。
最后,依据BTU 8和9、或两者的相互控制,由DSP36接收并处理的数据可以通过例如CODEC接口42传送来进一步处理或者通过FIFO 7传输到系统主存储器14。
根据本发明,上述相对于图8a-c的处理可以是或通常是彼此相互独立的。每一这样的处理可以表示一个按照在主处理器12和与I/O通道控制器22关联的数据源及受点之间一个独立控制线程正被传输的独立数据流。然而本发明特别地允许这些以及可能其它的处理并发进行。另外,由于每一数据流的命令驱动操作,I/O通道控制器22的使用公平地分布在一个动态和连续的基础上,以保证每一数据流的基本数据传输速率满足外围设备数据源或受点的需要。
这样,叙述了一个多功能I/O外围设备支持系统。该外围设备系统提供基本自治的操作、多线程数据流传输,其特别与连接到该外围设备系统上的集成和外部外围设备要求的I/O带宽匹配。另外,该外围设备系统为多重数字信号处理器提供存储器到存储器的数据传输支持,这些处理器可用于从主处理器的卸载处理或中断密集任务,同时减少或直接支持加在主处理器上对这些数字信号处理器管理的开销。
根据本发明优选实施例的上述说明,熟悉本技术领域的人员容易理解,对公开的实施例可以进行各种修改和变化。因此应该理解,在所附权利要求的范围之内可以实施本发明而不限于上述具体实施例。
Claims (11)
1.一种可与包括基本存储器的基本计算机系统相连的数据通道控制器,所述数据通道控制器包括:
a)包含多个第一缓冲存储器的存储器池;
b)同所述存储器池相连的仲裁器(arbiter)系统,用于响应于第一和第二请求信号,有选择地启动对于预先确定的第一缓冲存储器的数据传输;
c)包含可以同所述存储器池相连的第二缓冲存储器的外设设备,所述外设设备用于通过所述第二缓冲存储器向外设接口传输数据,具有预先确定的数据传输速率的特点,并且在第一预定条件下,根据在所述第二缓存中数据的出现,将所述第一请求信号提供给所述仲裁器系统,以获得在所述预先确定的第一缓冲存储器和所述第二缓冲存储器之间的数据传输;
d)包含有可同所述存储器池相连的第三缓冲存储器的基本系统接口,所述基本系统接口,在第二预先确定条件下,根据在所述预先确定的第一缓冲存储器中数据的出现,提供所述第二请求信号,以通过所述第三缓冲存储器获得在所述预先确定的第一缓冲存储器和基本存储器之间的数据传输。
2.按照权利要求1的数据通道控制器,其中所述基本系统接口包括总线主控制逻辑,用于执行在基本存储器和所述第三缓冲存储器之间的基本上是自行的数据传输。
3.按照权利要求2的数据通道控制器,包括同所述多个第一缓冲存储器相连的多个所述外设设备,所述数据通道控制器还包括同所述基本系统接口相连并包含一数据表的传输控制器,所述数据表保存同根据所述多个第一缓冲存储器来测定所述第二预定条件相关的信息,所述传输控制器同所述基本系统接口联合运行,以将所述第二请求信号提供给所述第一缓冲存储器中的任何一个。
4.按照权利要求3的数据通道控制器,其中所述数据表根据在所述第一缓冲存储器和所述第二缓冲存储器之间数据的传输被不断更新,其中所述传输控制器,在所述第二预先确定条件的测定中,不断检查所述数据表。
5.一种数据传输控制器,允许通过在第一处理器系统和一些I/O外设之间提供的外设数据通道进行的多重数据流并发传输的要求驱动(demanddriven),所述数据传输控制器包括:
a)第一接口,包括第一缓冲存储器,可同第一处理器系统的系统总线相连,所述第一接口提供在所述系统总线和所述第一缓冲存储器之间,多重数据流的第一可变段部分的总线控制数据传输的执行;
b)多个第二接口,每一个都包含一第二缓冲存储器,可同多个I/O设备相连,以在所述多个I/O设备和所述多个第二接口的所述各第二缓冲存储器之间,提供多重数据流的各自第二可变段部分的传输;
c)连接在所述第一缓冲存储器和所述第二缓冲存储器的每一个之间的缓冲存储器,所述缓冲存储器包括允许保存多重数据流的第三可变段部分的存储块;以及
d)流控制器,其与所述第一接口、所述第二接口的每一个、所述缓冲存储器相连,所述控制器响应于所述第二可变段部分的相应数据长度,所述流控制器有选择地启动,在所述缓冲存储器的预先确定存储块同预定第二缓冲存储器之间的数据传输。
6.按照权利要求5的数据传输控制器,其中所述流控制器响应于所述第三可变段部分的相应数据长度,所述流控制器有选择地启动,在所述第一缓冲存储器和所述各存储块之间的数据传输,以经过对所述预定第二缓冲存储器的数据传输,支持数据存在(availability)于所述预定存储块中。
7.按照权利要求6的数据传输控制器,其中所述流控制器,经过对所述第二缓冲存储器的数据的组合传输,支持数据存在于所述存储块的每一个中。
8.按照权利要求7的数据传输控制器,其中所述流控制器调节(moderate)所述第一可变段部分通过所述第一缓冲存储器的传输,以使得多重数据流中每一个的传输,都同所述第二可变段部分通过所述第二缓冲存储器的相应数据传输相一致地运行。
9.按照权利要求8的数据传输控制器,其中所述流控制器用于将一个或多个所述存储块设置为独立的循环FIFO缓冲存储器。
10.按照权利要求9的数据传输控制器,其中所述第一和第二缓冲存储器是FIFO缓冲存储器。
11.提供对于多个I/O数据流的并发处理的计算机系统,所述计算机系统包括:
a)第一处理单元,其包括第一存储器,提供对多个以每一个都具有相应的数据传输速率为特征的数据流的保存;
b)第二处理单元,用于对在所述多个数据流的数据段中的数据的操作;
c)连接于所述第一和第二处理单元之间的通道控制器,用于所述多个数据流在所述第一和第二处理器之间的传输,所述通道控制器用于由所述多个数据流的每一个的所述相应数据传输速率所决定的所述多个数据流的数据段的有选择的传输。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/596,921 US6044225A (en) | 1996-03-13 | 1996-03-13 | Multiple parallel digital data stream channel controller |
US08/596,921 | 1996-03-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1218566A true CN1218566A (zh) | 1999-06-02 |
Family
ID=24389282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN97194593.4A Pending CN1218566A (zh) | 1996-03-13 | 1997-03-06 | 支持要求驱动的多重并行数字数据流传输的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6044225A (zh) |
EP (1) | EP0895619A1 (zh) |
JP (1) | JP2001500289A (zh) |
CN (1) | CN1218566A (zh) |
WO (1) | WO1997034234A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741722A (zh) * | 2009-12-10 | 2010-06-16 | 中兴通讯股份有限公司 | 数据交互方法及装置 |
CN101661748B (zh) * | 2009-09-15 | 2011-12-14 | 福州瑞芯微电子有限公司 | 一种音频设备中实现混音的方法 |
CN102844748A (zh) * | 2010-05-04 | 2012-12-26 | 联发科技股份有限公司 | 用于主从接口的基于包的数据传输系统与方法 |
TWI494753B (zh) * | 2009-12-16 | 2015-08-01 | Intel Corp | 用於輸入/輸出及其他非記憶體類型化異動之dfx軟體除錯特徵技術 |
CN104199798B (zh) * | 2006-02-24 | 2017-04-12 | 高通股份有限公司 | 经由总线的地址信道的协作写入 |
CN109587076A (zh) * | 2017-09-28 | 2019-04-05 | 英特尔公司 | 对数据重新排序以用于并行处理 |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6222840B1 (en) * | 1996-12-30 | 2001-04-24 | Compaq Computer Corporation | Method and system for performing concurrent read and write cycles in network switch |
US6065085A (en) * | 1998-01-27 | 2000-05-16 | Lsi Logic Corporation | Bus bridge architecture for a data processing system capable of sharing processing load among a plurality of devices |
US6381654B1 (en) * | 1998-04-15 | 2002-04-30 | International Business Machines Corporation | Systems methods and computer program products for customized host access applications including user-replaceable transport code |
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 |
US6233632B1 (en) * | 1999-01-07 | 2001-05-15 | Vlsi Technology, Inc. | Optimizing peripheral component interconnect transactions in a mixed 32/64-bit environment by eliminating unnecessary data transfers |
EP1059781B1 (de) * | 1999-05-06 | 2007-09-05 | Siemens Aktiengesellschaft | Kommunikationseinrichtung mit Mitteln zur Echtzeitverarbeitung von zu übertragenden Nutzdaten |
US6708257B2 (en) * | 1999-07-12 | 2004-03-16 | Koninklijke Philips Electronics N.V. | Buffering system bus for external-memory access |
US6681283B1 (en) | 1999-08-12 | 2004-01-20 | Mips Technologies, Inc. | Coherent data apparatus for an on-chip split transaction system bus |
US6393500B1 (en) * | 1999-08-12 | 2002-05-21 | Mips Technologies, Inc. | Burst-configurable data bus |
US6604159B1 (en) | 1999-08-12 | 2003-08-05 | Mips Technologies, Inc. | Data release to reduce latency in on-chip system bus |
US6493776B1 (en) | 1999-08-12 | 2002-12-10 | Mips Technologies, Inc. | Scalable on-chip system bus |
US6490642B1 (en) | 1999-08-12 | 2002-12-03 | Mips Technologies, Inc. | Locked read/write on separate address/data bus using write barrier |
JP2001195825A (ja) | 1999-10-29 | 2001-07-19 | Sony Corp | 記録再生装置および方法 |
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 |
US6925641B1 (en) * | 2000-02-04 | 2005-08-02 | Xronix Communications, Inc. | Real time DSP load management system |
GB2359703B (en) * | 2000-02-24 | 2004-04-07 | Advanced Risc Mach Ltd | A controller and method for controlling interfacing to a data link |
KR100469237B1 (ko) * | 2000-03-09 | 2005-01-31 | 엘지전자 주식회사 | 상호 프로세서 통신 장치 |
US6526495B1 (en) * | 2000-03-22 | 2003-02-25 | Cypress Semiconductor Corp. | Multiport FIFO with programmable width and depth |
US7107383B1 (en) * | 2000-05-03 | 2006-09-12 | Broadcom Corporation | Method and system for multi-channel transfer of data and control information |
US6604163B1 (en) * | 2000-05-16 | 2003-08-05 | Koninklijke Philips Electronics N.V. | Interconnection of digital signal processor with program memory and external devices using a shared bus interface |
EP1320841A1 (en) * | 2000-09-28 | 2003-06-25 | Scientific Learning Corp. | Method and apparatus for automated training of language learning skills |
GB2380598B (en) * | 2000-10-04 | 2003-09-03 | Global Silicon Ltd | Deinterleaving data |
KR20020032136A (ko) * | 2000-10-25 | 2002-05-03 | 박성훈 | 메모리를 이용한 대용량 보조기억장치 |
US7372955B1 (en) * | 2001-02-26 | 2008-05-13 | Cisco Technology, Inc. | System and method for accessing a wireless network from a handset connected to a public wiring network |
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 |
US6931487B2 (en) * | 2001-10-22 | 2005-08-16 | Hewlett-Packard Development Company L.P. | High performance multi-controller processing |
JP4647307B2 (ja) * | 2002-04-25 | 2011-03-09 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | スケーラブルプロセッサにおける自動タスク分散 |
EP1416393B1 (en) * | 2002-11-01 | 2008-08-13 | STMicroelectronics Limited | Processor interface having a stream register and a FIFO |
US7336676B2 (en) * | 2004-01-20 | 2008-02-26 | Mediatek Inc. | Multi-queue single-FIFO architecture for quality of service oriented systems |
US20050204155A1 (en) * | 2004-03-09 | 2005-09-15 | Nec Laboratories America, Inc | Tamper resistant secure architecture |
US7620743B2 (en) * | 2004-04-01 | 2009-11-17 | Lsi Corporation | System and method for implementing multiple instantiated configurable peripherals in a circuit design |
US7756594B2 (en) * | 2004-06-14 | 2010-07-13 | Microsoft Corporation | Systems and methods for parsing flexible audio codec topologies |
US7958498B1 (en) | 2004-07-02 | 2011-06-07 | Nvidia Corporation | Methods and systems for processing a geometry shader program developed in a high-level shading language |
US8044951B1 (en) | 2004-07-02 | 2011-10-25 | Nvidia Corporation | Integer-based functionality in a graphics shading language |
US7746347B1 (en) * | 2004-07-02 | 2010-06-29 | Nvidia Corporation | Methods and systems for processing a geometry shader program developed in a high-level shading language |
US7426724B2 (en) * | 2004-07-02 | 2008-09-16 | Nvidia Corporation | Optimized chaining of vertex and fragment programs |
US7590065B2 (en) * | 2004-08-04 | 2009-09-15 | Microsoft Corporation | Equal-opportunity bandwidth regulation |
US20060041895A1 (en) * | 2004-08-04 | 2006-02-23 | Microsoft Corporation | Systems and methods for interfacing with codecs across an architecture optimized for audio |
US7634587B2 (en) * | 2004-08-11 | 2009-12-15 | Apple Inc. | I/O descriptor cache for bus mastering I/O controllers |
US20060080467A1 (en) * | 2004-08-26 | 2006-04-13 | Sensory Networks, Inc. | Apparatus and method for high performance data content processing |
JP4587756B2 (ja) * | 2004-09-21 | 2010-11-24 | ルネサスエレクトロニクス株式会社 | 半導体集積回路装置 |
US7706901B2 (en) * | 2004-10-01 | 2010-04-27 | Microsoft Corporation | Low latency real-time audio streaming |
US7742492B2 (en) * | 2006-02-03 | 2010-06-22 | Rockwell Automation Technologies, Inc. | Real time data expansion for distributed I/O |
US9331867B2 (en) * | 2006-06-12 | 2016-05-03 | Arris Enterprises, Inc. | Virtual networks in a communication system architecture |
US7613848B2 (en) * | 2006-06-13 | 2009-11-03 | International Business Machines Corporation | Dynamic stabilization for a stream processing system |
US8134566B1 (en) | 2006-07-28 | 2012-03-13 | Nvidia Corporation | Unified assembly instruction set for graphics processing |
US8171337B2 (en) * | 2009-03-30 | 2012-05-01 | The Boeing Company | Computer architectures using shared storage |
US8260980B2 (en) * | 2009-06-10 | 2012-09-04 | Lsi Corporation | Simultaneous intermediate proxy direct memory access |
US9098462B1 (en) * | 2010-09-14 | 2015-08-04 | The Boeing Company | Communications via shared memory |
US8698663B2 (en) * | 2012-08-29 | 2014-04-15 | Telefonaktiebolaget L M Ericsson (Publ) | Digital analog converter |
CN103514132B (zh) * | 2013-09-12 | 2016-06-08 | 广东电网有限责任公司电力科学研究院 | 一种用于大数据量高速率通讯的数据优化方法 |
CN104767801B (zh) * | 2015-03-23 | 2018-05-08 | 上海大唐移动通信设备有限公司 | 一种两线程ftp的传输方法及系统 |
US10116721B1 (en) * | 2016-08-22 | 2018-10-30 | Amazon Technologies, Inc. | Redundancy control in streaming content encoder pools |
CN109754359B (zh) * | 2017-11-01 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 一种应用于卷积神经网络的池化处理的方法及系统 |
US10311844B1 (en) * | 2018-05-04 | 2019-06-04 | Peter T. Godart | Musical instrument recording system |
US11683258B1 (en) | 2022-05-19 | 2023-06-20 | HCL America Inc. | Method and system for off-loading streams selection to generate organized concurrent streams in simulation environment |
CN116701284B (zh) * | 2023-06-26 | 2024-02-09 | 北京瑞祺皓迪技术股份有限公司 | 一种cpu间数据高速同步方法、装置、设备及介质 |
CN117421267A (zh) * | 2023-10-09 | 2024-01-19 | 中科驭数(北京)科技有限公司 | 数据通道防死锁方法、装置、设备及介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4110830A (en) * | 1977-07-05 | 1978-08-29 | International Business Machines Corporation | Channel storage adapter |
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 |
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 |
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 |
US5577213A (en) * | 1994-06-03 | 1996-11-19 | At&T Global Information Solutions Company | Multi-device adapter card for computer |
US5519701A (en) * | 1995-03-29 | 1996-05-21 | International Business Machines Corporation | Architecture for high performance management of multiple circular FIFO storage means |
-
1996
- 1996-03-13 US US08/596,921 patent/US6044225A/en not_active Expired - Lifetime
-
1997
- 1997-03-06 WO PCT/US1997/003666 patent/WO1997034234A1/en not_active Application Discontinuation
- 1997-03-06 JP JP09532723A patent/JP2001500289A/ja active Pending
- 1997-03-06 CN CN97194593.4A patent/CN1218566A/zh active Pending
- 1997-03-06 EP EP97908974A patent/EP0895619A1/en not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199798B (zh) * | 2006-02-24 | 2017-04-12 | 高通股份有限公司 | 经由总线的地址信道的协作写入 |
CN101661748B (zh) * | 2009-09-15 | 2011-12-14 | 福州瑞芯微电子有限公司 | 一种音频设备中实现混音的方法 |
CN101741722A (zh) * | 2009-12-10 | 2010-06-16 | 中兴通讯股份有限公司 | 数据交互方法及装置 |
TWI494753B (zh) * | 2009-12-16 | 2015-08-01 | Intel Corp | 用於輸入/輸出及其他非記憶體類型化異動之dfx軟體除錯特徵技術 |
CN102844748A (zh) * | 2010-05-04 | 2012-12-26 | 联发科技股份有限公司 | 用于主从接口的基于包的数据传输系统与方法 |
CN102844748B (zh) * | 2010-05-04 | 2015-09-16 | 联发科技股份有限公司 | 数据传输方法、主装置和从装置 |
CN109587076A (zh) * | 2017-09-28 | 2019-04-05 | 英特尔公司 | 对数据重新排序以用于并行处理 |
Also Published As
Publication number | Publication date |
---|---|
JP2001500289A (ja) | 2001-01-09 |
WO1997034234A1 (en) | 1997-09-18 |
US6044225A (en) | 2000-03-28 |
EP0895619A1 (en) | 1999-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1218566A (zh) | 支持要求驱动的多重并行数字数据流传输的方法和装置 | |
CN1218574A (zh) | 用于多线程数据流传输控制的分布式状态信令系统 | |
CN1218567A (zh) | 多路并行数字数据流通道控制器体系结构 | |
US5784649A (en) | Multi-threaded FIFO pool buffer and bus transfer control system | |
WO1997034235A9 (en) | Multi-threaded fifo pool buffer and bus transfer control system | |
WO1997034234A9 (en) | Method and apparatus supporting demand driven multiple parallel digital data stream transport | |
Vercauteren et al. | Constructing application-specific heterogeneous embedded architectures from custom HW/SW applications | |
CN1152532C (zh) | 有效的输出请求分组交换设备和方法 | |
CN1149806C (zh) | 高性能通信控制器 | |
US20090259789A1 (en) | Multi-processor, direct memory access controller, and serial data transmitting/receiving apparatus | |
CN1146804C (zh) | 快速16位分离事务i/o总线 | |
CN103999051A (zh) | 用于着色器核心中着色器资源分配的策略 | |
CN1342940A (zh) | 到一个共享的协处理器资源的多个逻辑接口 | |
US6944686B2 (en) | Data transfer control circuit with terminal sharing | |
CN1212400A (zh) | 数据处理装置 | |
CN1162785A (zh) | 存储器直接存取控制设备 | |
JP2003500716A (ja) | エミュレーションシステム上における複数の回路設計の同時エミュレーションのための方法及び装置 | |
CN102347880B (zh) | 数据链路层传输器以及优先权分配方法 | |
CN1234561A (zh) | 总线控制方法,装置和用于存储总线控制程序的存储介质 | |
CN1551592A (zh) | 数据传输控制装置、电子设备及数据传输控制方法 | |
CN1601512A (zh) | 使用多个处理器的虚拟设备的系统和方法 | |
CN1570907A (zh) | 多处理器系统 | |
JPH0320851A (ja) | データプロセッサ | |
CN1199120C (zh) | 具有共享一个共用存储器的多个处理器的装置 | |
CN1232216A (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 |