对仅m×n位外围设备执行n位写入访问的制作方法

文档序号:6569720阅读:148来源:国知局
专利名称:对仅m×n位外围设备执行n位写入访问的制作方法
技术领域
本发明一般涉及电子计算机的系统内连接,尤其涉及一种在不同 数据宽度的总线之间的总线桥的接口结构。
背景技术
当数字信号处理器(DSP)是诸如片上系统(System-on-Chip) 的计算机系统的仅有的处理器时,DSP必须执行控制和信号处理功能。 作为其控制功能部分,不时地需要16位DSP来对32位输入/输出设 备或仅允许32位写入访问的外围设备执行写入访问。16位DSP通过 桥被耦接到仅32位外围设备。在传统的编程模型中,需要DSP固件 或软件来对外围设备执行两个完整的16位写入操作,从而正确地将控 制数据写入仅32位外围设备。当对外围设备执行应用程序代码时,要 满足这种需求不利地增加了软件开销并降低了 DSP的性能。
通过执行a)读取,b)修改和c)写入的序列的DSP固件或软件 实现了这种公知的传统写入访问。不利地是,为了修改在外围设备的 单2N位位置处的数据,所有公知的方法需要N位DSP来将前述的序 列执行两次,对于两周期(two-cycle)访问的DSP来讲,这总共是两个 读取周期和两个写入周期。针对处理器任务管理,利用现有技术对外 围设备所得到的写入访问是低效的,这是因为单次写入访问需要四(4 ) 条读取或写入的DSP指令。使用公知的方法和装置,每当两周期访问 的16位DSP对仅32位外围设备进行写入时不利地使用了 DSP的至 少八(8)个时钟周期。
例如,假设计算机系统包括两周期访问的16位DSP和仅32位外 围设备,并且预先确定具有DSP地址"0,,的数据位置与仅32位外围设 备的32位数据位置的低十六(16 )位一致而具有DSP地址"l,,的数据位置与仅32位外围设备的32位数据位置的高十六(16)位一致。如 果16位DSP向仅32位外围设备进行写入以修改诸如外围设备地址 "l"处的32位数据位置的高十六(16)位,那么将需要下述不利的大 量操作a) DSP在地址"0,,处执行16位读取;然而直到桥完成下一 个操作,这样读取的数据才被返回到DSP,这使DSP停止,从而有效 地将附加的时钟周期加到DSP时间的至少八(8)个时钟周期;b)在 仅32位外围设备的地址"0"处,通过桥执行从外围设备32位读取;c) DSP在地址"1"处出执行16位读取;d)在DSP的内部寄存器中,在 地址"l,,处的16位字的内容被修改;e)DSP在地址"0"处执行16位写 入;f) DSP在地址'T,处执行16位写入;以及g )通过在仅32位外 围设备上的桥执行在地址"O,,处的32位写入。
在16位DSP修改32位寄存器的十六(16)位的情况下,需要总 共六(6)次的操作,即,两(2)次DSP读取、两(2)次DSP写入、 一 (1)次桥读取和一 (1)次桥写入。DSP的每次读取操作需要多个 时钟周期,这取决于DSP总线的时钟速度与外围设备总线的通常较低 的时钟速度之间的比率。因为通常将数据写入桥上的临时緩冲器,所 以以DSP总线的速度来执行DSP的每次写入操作。


图l是根据本发明 一个实施例的片上系统的功能性框图,其包括系 统桥和写入合并系统;
图2是根据本发明 一个实施例的写入合并系统的功能性框图3是写入合并系统的从动(slave)状态机的状态图4是写入合并系统的窥探(snoop)状态机的状态图5是写入合并系统的读取状态机的状态图6是写入合并系统的写入从动状态机的状态图7是示出写入合并系统的操作步骤的流程图;和
图8是写入合并系统的时序图。
具体实施例方式
参考图1,片上系统(SoC) 100包括至少一个处理器,其包括至 少一个两周期访问的16位DSP 102。将注意到,SoC 100不包括32 位处理器。通常使用SoC 100来作为如工业、科学与医疗(ISM)频段 无线收发机的组件。优选地,DSP 102是具有ONYX 内核的DSP, 其被用于由德克萨斯州的奥斯汀的Freescale Semiconductor(飞思卡 尔半导体)有限公司制造的DSP566xx系列产品的每个中。SoC 100包 括16位DSP总线104、 32位集成外围设备(IP)总线106、耦接16 位DSP总线104到32位IP总线106的桥108、以及耦接到IP总线 的至少一个仅32位外围设备110。通过术语"16位DSP"表示这样的 DSP:其中用于输入/输出外围设备和数据存储器存取的x和y数据通 道的宽度是十六(16)位;然而,主要用于存储器的指令数据通道的 宽度可以不是十六(16)位。通过术语"仅32位,,表示外围设备只接收 32位数据而不接收16位数据。SoC IOO也可以包括耦接到DSP总线 104的16位外围设备112和耦接到IP总线106的另一 16位外围设备 114。可以从SoC (未示出)移植(migrate)至少一个仅32位外围设备 110,该SoC包括用于信号处理功能的16位DSP和用于控制功能的 32位处理器。有利地,本发明允许使用这样移植的仅32位外围设备 而不用修改其设计。在没有32位处理器的情况下,需要16位DSP 102 来在SoC上执行控制以及信号处理功能。作为控制功能的部分,可以 要求DSP 102来向仅32位外围设备110写入16位控制数据。为了连 贯地进行该操作,且在没有由软件控制的多周期写入的情况下,根据 本发明的桥108接受来自DSP 102的16位数据并向仅32位外围设备 110写入该16位数据,而不会破坏该32位数据中没被DSP访问的另 一-t"六(16 )位。DSP 102、桥108、 DSP总线104、 IP总线106以及 外围i殳备110、 112和114在SoC 100的单集成电路101的电路支撑晶 片基板103上。可供选择地,32位总线的一部分也存在于SoC 100的 集成电路101的外部,并且至少一个仅32位外围设备110位于SoC 100 之外。SoC 100也可以包括接受16位数据的32位外围设备(未示出)。根据本发明的桥108包括写入合并系统200。该写入合并系统200 包括硬件,且优选地由硬件构成。在优选实施例中,硬件包括硬连线 的、同步的和异步的、组合的和顺序的逻辑电路,但不包括处理器。 在优选实施例中,写入合并系统200不包括任何固件或软件。不使用 任何处理器、固件或软件作为写入合并系统200的部分的优点是较高 的执行速度。在可供选择的实施例中,写入合并系统200的硬件包括 处理器(与DSP 102分开)和软件或固件。在优选和可供选择的实施 例中,写入合并系统200的另一优点包括将DSP 102的工作卸载到写 入合并系统。在一个实施例中,可以由数字电路技术领域的普通技术 人员使用互补金属氧化物半导体(CMOS)逻辑来设计写入合并系统 200,并且可以由半导体制造技术领域的普通技术人员使用CMOS制 造技术来制造写入合并系统200。
写入合并系统200将由DSP 102进行的单次16位写入转换为针 对仅32位外围设备110的单次32位写入。在16位总线和32位总线 之间的现有技术的桥(未示出)没有在此所述的写入合并系统200, 并且不能将由DSP 102进行的单次16位写入转换为针对仅32位外围 设备110的单次32位写入。桥108还执行诸如在32位和16位之间改 变硬件控制信号的功能以及诸如允许16位DSP执行从所有外围设备 的读取的功能。优选地,当外围设备的32位位置的高16位部分和低 16位部分都需要修改时,除了写入合并系统200,使用桥108的一部 分或者多个部分。可供选择地,使用桥108的写入合并系统200部分 来修改外围设备的32位位置的高16位部分和低16位部分。优选地, 当需要向耦接到32位总线106的16位外围设备114进行写入时,除 了写入合并系统200外,使用桥108的一部分或者多个部分。可供选 择地,使用写入合并系统200来向耦接到32位总线106的16位外围 设备114进行写入。
参考图2,示出了写入合并系统200的功能框图。DSP总线104 包括16位DSP数据总线202、 7位DSP地址总线204和DSP控制总 线206。为了简化说明,将地址总线204和控制总线206作为一条示出。IP总线106包括32位IP数据总线212、 12位IP地址总线214 和IP控制总线216。为了简化说明,将IP地址总线214和IP控制总 线216作为一条示出。写入合并系统200包括存储器映射220,其是 解码和存储器结构,其中预存储对应于在IP总线106上的所有外围设 备(仅32位、32位、16位等)的地址的地址范围的存储器映射。写 入合并系统200包括五(5 )个窗选择寄存器(window select register) 221,其中预存储与每个地址范围关联的五(5)位。窗选择寄存器221 的功能为扩展DSP 102的可寻址地址范围。根据本发明,五(5)个 窗选择寄存器221的内容成为外围设备的12位地址的五(5)个最高 有效位。写入合并系统200按以下方式来使用窗选择寄存器221。在 IP总线106的读取周期的读取地址阶段818 (参看图8)期间或在IP 总线的写周期的写入地址阶段822 (参看图8)期间,将窗选择寄存器 221的5位输出直接驱动到IP地址总线214上。这允许DSP 102将其 地址范围从十六进制"00-7F,,扩展到十六进制"000-FFF,,,并且允许将 更多的外围设备映射进入DSP系统地址映射。写入合并系统200包括 地址队列222,或者有序的先进先出存储器结构,其顺序地提供DSP 102执行写操作的地址。存储在地址队列222中的地址具有六(6)位 的宽度,这是7位DSP地址的六(6)个最高有效位。写入合并系统 200还包括写入数据队列224,或者有序的先进先出存储器结构,其顺 序地提供DSP 102向IP总线106上的外围设备进行写入的数据。在 写入数据队列224中存储的数据具有十六(16)位的宽度。
对于在地址队列222中的每一项来讲,存在一 (1)个合并位和一 (1)个字选择位。合并位的功能将确定在IP总线106的下一个写周 期期间合并的必要性,如以下更为全面的解释。如果合并位被设置为 任意值"1",那么发生合并。如果合并位被设置为任意值"O",那么不 发生合并。如果16位字的地址的最低有效位是"0",那么字选择位具 有任意值"0",并且写入合并系统200致使对32位字的低十六(16) 位进行16位写入。如果16位字的地址的最低有效位是"1",那么字选 择位具有任意值"l",并且写入合并系统200致使对32位字的高十六(16)位进行16位写入。当正对32位IP总线106上的16位外围该: 备114进行写入时,写入合并系统200执行写操作而不合并。
写入合并系统200包括合并位和字选择位队列226。对于在地址 队列222中和在写入数据队列224中的每一项来讲,在合并位和字选 择位队列226中存在单项,并且三(3)个队列一致地前进。合并位和 字选择位队列226是根据基于存储器映射220中的目标寄存器的位置 以及是否可以合并目标寄存器、并且基于当前的DSP写地址的表(未 示出)形成的2位值的单队列。
写入合并系统200包括作为具有十二 (12)位宽的存储器结构的 IP地址緩沖器228,其保存当前被访问的IP总线106上的外围设备的 地址。写入合并系统200还包括高位读取数据队列230和低位读取数 据队列232。高位读取数据队列230保持32位字的高十六(16),即, 位16-31。同时,低位读取数据队列232保持同一 32位字的低十六(16 ) 位,即,位0-15。写入合并系统200还包括两个多路复用器234和236。 写入合并系统200包括从动状态机240、窥探状态才几242、读取状态机 244和写入状态才几246。从动状态机240和窥探状态机242响应DSP 总线104上的活动。读取状态才几244和写入状态才几246分别启动IP 总线106上的读取周期和写入周期。从动状态机240、窥探状态机242、 读取状态机244和写入状态机246被用于控制写入合并系统200的活 动并对写入合并系统200的活动定时。
图3是示出从动状态机的动作和其内部短暂状态的从动状态机 240的状态图。从动状态机240在状态302是空闲的。在DSP总线104 的写周期的写入地址阶段811 (参看图8)期间,在状态304,从动状 态机240解码DSP总线上的地址。如果该地址无效,即,如果解码的 地址没有与IP总线106上的外围设备的地址之一对应,那么从动状态 才几240返回空闲状态302。另一方面,如果该地址有效,即,如果解 码的地址与IP总线106上的外围i殳备的地址之一对应,那么在状态 306,从动状态机240将该地址加载到地址队列222、执行响应向窥探 状态机242窥探请求307该地址的动作、以及在DSP总线104的写入周期的相关写入数据阶段813 (参看图8)期间,将相关的数据加栽 (308)到写数据队列224。然后,从动状态机240返回空闲状态302。 当DSP102执行对窗选择寄存器221的写访问时,在选择窗寄存器状 态310期间,从动状态机240选择在DSP总线104上的写入数据阶段 813期间的窗选择寄存器的当前内容。在加栽窗寄存器状态312期间, 从动状态机240加载窗选择寄存器221。然后,从动状态机240返回 空闲状态302。在对IP总线106进行读取或写入之前,DSP102首先 预配置窗映射阵列以指向合适的外围设备窗。当DSP需要访问一组外 围设备时,DSP 102对窗选择寄存器221进行编程作为配置顺序的部 分,该组外围设备处于分配给外围设备的、超出十六进制"00-7F,,的 DSP地址范围的地址范围。
图4是示出宛探状态机的动作和内部短暂状态的窥探状态机242 的状态图。窥探状态机242在状态401处于空闲。窥探请求307作为 窥探状态机242中的短暂状态。利用七(7)位DSP地址251向窥探 状态机242发出窥探请求307。其将窥探状态机从空闲状态401转变 成合并地址比较状态405。在状态405,窥探状态才几将DSP地址总线 204上的当前地址与耦接到IP总线106的已知外围设备的地址进行比 较。这种外围设备可以是16位外围设备、32位外围设备和仅32位外 围设备之一,其地址被预存在存储器映射220中。
如果所迷地址对应于允许合并的仅32位外围设备的地址,那么该 地址被认为是有效的合并地址407,并且写入合并系统200构建32位 IP地址,并进入选择合并和字状态409。窥探状态机242设置(411)合 并位。窥探状态才几242将合并位设置(411)为值"1"以表示应当通过写 入合并系统200来执行(32位字的16位部分的)合并。窥探状态机 242还设置(411)字选择位。基于DSP地址的最低有效位的值,字选择 位的值或是"l"或是"O"。窥探状态机242将字选择位设置(411)成为或 是任意值"l,,以表示要改变的数据是否在32位字的高十六(16 )位内, 或是任意值"0,,以表示要改变的数据是否在32位字的低十六(16)位 内。如果所述地址是有效合并地址407,那么在进入加栽32位IP读 取地址状态413之前,写入合并系统构建IP地址。根据五(5)个窗 选择寄存器211输出位、来自地址队列222的六(6)位、以及作为合 并位和DSP地址位0的结果的一 (1)个最低有效位的串接来构建该 IP地址。例如,如果DSP地址的最低有效位是"1",并且如果合并位 是"l,,,那么作为结果,使IP地址的最低有效位变为"0"。需要构建 IP地址,这是因为仅32位外围设备110具有尺寸为十二 (12)位的 地址,而DSP 102试图利用具有尺寸为七(7)位的地址来访问外围 设备。接着,窺探状态机242进入加栽32位读取地址状态413。窥探 状态机242向读取状态才几244启动32位读取请求415。
再次参考合并地址比较状态405,如果所述地址对应于耦接到32 位IP总线的16位外围设备114的地址,那么该地址被认为是无效的 合并地址417。接着,窥探状态机242进入加载16位IP写入地址状 态419。窥探状态机242清除(423)合并位,即,合并位值成为"O",从 而表示写入合并系统200将不执行合并,这是因为不需要合并。由于 所述地址是无效的合并地址417,所以不需要合并,并且在加载IP地 址之前不需要构建修改后的IP地址。写入合并系统200加载为进行写 入操作而被访问的16位外围设备114的IP地址。窥探状态机242对 写入状态机246启动16位写入请求。
图5是示出由读取状态机产生的动作和读取状态机的内部短暂状 态的读取状态机244的状态图。读取状态机244在状态501处于空闲。
短暂状态,并且其在IP总线106的读取地址阶段818期间产生读取状 态机244的读取(504 ) DSP 102试图修改仅十六(16 )位的仅32位 外围设备的32位字的地址的动作。其后,在状态506,读取状态机244 在IP总线106的读取周期的读取数据阶段819 (参看图8)期间执行 读取来自DSP 102试图修改十六(16)位的仅32位外围设备的32位 字的地址的内容的动作。在状态506,读取状态机244还执行将来自 所述地址的内容加载到高位读取数据队列230和低位读取数据队列232的动作。该内容的高位(位31-16)被加栽到高位读取数据队列 230。该内容的低位(位15-10)被加载到低位读取数据队列232。读 取状态机244还对写入状态机246启动32位合并写入请求510。
图6是示出由写入状态机执行的动作和发生在其中的短暂状态的 写入状态机246的状态图。写入状态才几246在状态601处于空闲。对 于写入合并系统200的每个写入访问来讲,写入状态机246接收来自 窥探状态4几242的16位写入请求421或者来自读取状态机244的32 位合并写入请求510,其中的每一个在写入状态机中产生不同的短暂 状态。
在写入状态机246接收来自读取状态机244的32位合并写入请求 510的情况下,在状态603,写入状态机执行选择(605)目标外围设 备(即,写入所针对的仅32位外围设备110)的目标寄存器的地址的 动作。在IP总线106的写入地址阶段822期间,写入状态机246执行 驱动(607)在IP地址总线214上的仅32位外围设备110的12位地 址的动作。此时,写入状态机246还在IP总线106上维持(assert)写 入控制信号809 (参看图8 )。此时,写入状态机246还执行选择读取 数据队列的动作。来自读取数据队列230和232的三十二 (32)位输 出数据被置于多路复用器234和236的输入端上。来自高位读取数据 队列230的十六(16)位数据被置于多路复用器234的输入端上,而 来自低位读取数据队列232的十六(16)位数据被置于多路复用器236 的输入端上。此时,写入状态机246还执行选择写入数据队列的动作, 并且来自写入数据队列224的十六(16)位输出数据被置于多路复用 器234和236的每个的输入端上。写入状态机246取消(de-assert)( 609 ) 在IP总线106上的写入控制信号809,并且在IP总线106的写入周 期的写入数据阶段823 (参看图8)期间,写入状态机246将来自多路 复用器234和236的三十二 (32)位数据驱动在IP数据总线212上, 即,来自两个多路复用器中每个的十六(16)位数据。根据来自写入 状态机246的选择写入信号250,多路复用器234的输出包括来自写 入数据队列224的十六(16)位数据或者来自高位读取数据队列230的十六(16 )位数据。根据来自写入状态机246的选择写入信号250, 多路复用器236的输出包括来自写入数据队列224的十六(16)位数 据或者来自低位读取数据队列232的十六(16)位数据。在仅32位外 围设备110由于其未做好准备而请求等待状态的情况下,IP写入状态 机246等待(611) 32位传输完成。
在写入状态机246接收来自窥探状态机242的16位写入请求421 的情况下,在状态602,写入状态机执行选择(604 )对其进行写入的 IP总线16位外围设备114的地址的动作。在IP总线106的写入地址 阶段822期间,写入状态机驱动(606) 16位外围设备114的12位地 址到IP地址总线214上。此时,写入状态机246还执行选择写入数据 队列的动作,并且来自写入数据队列224十六(16)位数据被置于多 路复用器234的输入端上和多路复用器236的输入端上。在IP总线 106的写入数据阶段823期间,写入状态机246驱动(608)来自多路 复用器234和236之一的十六(16 )位数据到IP数据总线212上。在 IP总线16位外围设备114请求等待状态的情况下,写入状态机246 等待(610) 16位传输完成。
图7是示出写入合并系统200的操作步骤的流程图。写入合并系 统200在状态701处于空闲。在步骤702,写入合并系统200首先解 码DSP102正在对其进行写入的外围设备的地址,即,写入目标。在 步骤704,写入合并系统200接着判断作为写入目标的外围设备的地 址是否也是IP总线106上的外围设备的地址。如果判断为肯定,那么 在步骤708,写入合并系统200在地址队列222中存储来自DSP 102 的目的地地址。如果在步骤704判断为否定,那么写入合并系统200 进入空闲状态701。在步骤710,写入合并系统200判断作为写入目标 的外围设备的地址是需要合并的只可以接收32位写入的外围设备(如 外围设备IIO)的地址,还是不需要合并的外围设备的地址。
如果需要合并,那么在步骤712,写入合并系统200适当地设置 合并位并且适当地设置字选择位,并且根据目标外围设备的7位DSP 地址、根据窗选择寄存器221的内容以及根据合并位和字选择位队列226的内容来构建用于目标外围设备的12位IP地址。在步骤714,写 入合并系统200加栽具有来自DSP数据总线202的新的十六(16 )位 数据的写入数据队列224。在步骤716,写入合并系统200驱动12位 地址,并运行读取地址阶段818。在步骤718,写入合并系统200从仅 32位外围设备110执行32位读取,以及加载具有在读取数据阶段819 期间从IP数据总线212获取的32位数据的高位读取数据队列230和 低位读取数据队列232。在步骤720,对在读取数据队列230和232 中的32位数据的高或低十六(16 )位是否应该与存储在写入数据队列 224中的新的目的数据进行合并做出判断。通过术语"合并"表示旧数 据被新数据盖写或代替。在本示例实施例中,32位字的一个16位字 被新数据的16位字代替。32位字的另一个16位字不被新数据代替或 改变,并保持旧数据,并且有益地不受合并操作破坏或者其它不利影 响。在状态506, 32位读取包括要修改的来自仅32位外围设备110 的十六(16)位加上不被修改的十六(16)位。取决于目的地地址, 不被修改的十六(16)位是低十六(16)位或高十六(16)位。
在步骤722,假设判断低十六(16)位要与新的目的数据合并, 那么选择在写入数据队列中的新的目的数据作为用于低位IP字的多 路复用器236的输出,而选择在高位读取队列230中获取的、在仅32 位外围设备110中的当前数据作为用于高位IP字的多路复用器234 的输出。由此产生新的32位字。接着,在步骤724,写入合并系统200 驱动来自IP地址緩沖器228的12位地址,并且运行写入地址阶段822。 在步骤726,写入合并系统200驱动来自多路复用器234和236的数 据到IP总线上,该数据包括来自写入数据队列224的16位数据,并 且写入合并系统运行写入数据阶段823,从而将新的32位字写到仅32 位外围设备IIO。在步骤728,写入合并系统使32位数据从读取数据 队列230和232出列。然后,写入合并系统200返回空闲状态701。 在该处理中,DSP 102执行单次16位写入周期以访问仅32位外围设 备IIO。所以,写入合并系统200接收来自DSP102的16位数据以修 改仅32位外围设备110的16位字,并且作为响应,写入合并系统提供12位地址,并且在没有通过处理器的进一步软件介入的情况下,将
该数据写到仅32位外围设备。
另一方面,如果在步骤720判断要合并高十六(16)位,那么写 入合并系统执行步骤721、 723、 725和727,如图7的流程图所示, 其与已经描述的模式类似。
另一方面,如果在步骤710写入合并系统200判断作为写入目标 的外围设备的地址是不需要合并的外围设备的地址,那么在步骤713 写入合并系统根据它的7位DSP地址和根据窗选择寄存器221的内容 来构建用于目标外围设备的12位IP地址。在步骤715,写入合并系 统200加载具有来自DSP数据总线202的新的十六(16)位数据的写 入数据队列224。在步骤717,写入合并系统200驱动来自IP地址緩 冲器228的12位地址,并且运行IP写入地址阶段。在步骤719,写 入合并系统200从写入数据队列224取得16位数据,运行IP写入数 据阶段以及将新的16位字写到16位外围设备114。然后,写入合并 系统200返回空闲状态701 。
图8是写入合并系统200的时序图800。通常,DSP总线104的 时钟速度801快于IP总线106的时钟速度805。在SoC 100作为ISM 频带无线收发机的组件的通常使用中,DSP总线104以133MHz的时 钟速度工作,而IP总线106以16-32MHz的时钟速度工作。根据本发 明的写入合并系统200不限于DSP总线104的时钟速度快于IP总线 106的时钟速度的情况,而是可以在DSP总线的时钟速度低于IP总 线的时钟速度的情况下使用,并且可以在DSP总线的时钟速度等于IP 总线的时钟速度的情况下使用。
在16位DSP总线104的写入地址阶段811期间,DSP 102将示 例性7位地址812 (如信号802所示)写到DSP地址总线204上。该 示例性7位地址是二进制的"0000001"(在图8中以十六进制表示为 "01")。为了示教,选择示例性地址812来对应于仅32位外围设备的 32位数据位置的高十六(16)位。DSP102在DSP控制总线206上维 持写入控制信号803。在DSP总线104的写入数据阶段813期间,DSP102将示例性数据814 (如信号804所示)写到DSP数据总线202上。 示例性数据814是16位字(十六进制的"5555")。
在32位IP总线106的读取地址阶段818期间,写入合并系统200 将示例性12位地址820 (如信号806在图8中所示)驱动到IP地址 总线214上。在图8中,将示例性地址820表示为十六进制的"F00", 并且示例性地址820具有十二 ( 12 )位的宽度。示例性地址820对应 于仅32位外围设备的32位数据位置,其包括示例性7位地址812和 十六进制"1E,,的窗选择寄存器221的当前设置。写入合并系统200在 IP控制总线216上维持读取控制信号。在IP总线106的读取数据阶 段819期间,写入合并系统200从IP数据总线212读取示例性数据 821 (如信号808所示)。示例性数据821是32位字(十六进制的 "AAAAAAAA,,)。在32位IP总线106的写入地址阶段822期间, 写入合并系统200将示例性12位地址820驱动到IP地址总线214上。 写入合并系统200在IP控制总线216上维持写入控制信号809。在IP 总线106的写入数据阶段823期间,写入合并系统200将修改后的示 例性数据825 (如信号810所示)写到IP数据总线212上。修改后的 示例性数据825是32位字(十六进制的"5555AAAA,,)。修改后的示 例性数据825是与新的16位字(十六进制的"5555")合并的原始32 位字(十六进制的"AAAAAAAA"),其中原始的32位字的高十六(16 ) 位由新的16位字代替。
根据前述的说明,显而易见,SoC 100包括电路支持基板103和 布置在电路支持基板上的诸如DSP 102的N位DSP。诸如DSP总线 104的第一总线被布置在电路支持基板103上。第一总线包括耦接到 N位DSP的N位宽的数据总线。包括至少一个仅MxN位外围设备的 诸如仅32位外围设备110的至少一个外围设备被布置在电路支持基板 103上。诸如IP总线106的第二总线被布置在电路支持基板103上。 该第二总线包括耦接到至少一个仅MxN位外围设备的MxN位宽的数 据总线。桥108被布置在电路支持基板103上。桥108将第一总线耦 接到第二总线。桥108包括写入合并系统200。写入合并系统200包括用于从N位DSP接收N位宽的数据和写入业务的第一逻辑电路。 该写入业务用于修改在仅MxN位外围设备的数据位置处的MxN位字 的N位字,从而创建修改后的MxN位字。写入合并系统200还包括 用于将包括修改后的N位字的MxN位字写到仅MxN位外围设备的 所述数据位置的第二逻辑电路。
写入合并系统200不限于在SoC中的使用,而是可以用于其中处理 器数据总线的宽度小于外围设备数据总线的宽度的任何计算机系统。 本发明不限于处理器是DSP的情况,而是可应用到使用任何类型的处 理器的情况。
才艮据前述的说明,显而易见,作为诸如SoC IOO的计算机系统的部 分的写入合并系统200接收来自诸如DSP 102的两周期访问处理器的 写入业务。如本领域技术人员众所周知的,作为利用写入指令对DSP 102编程的结果而发生写入业务。该写入业务是用于利用新的16位字修 改仅32位外围设备l 10的32位位置的16位字。包括7位地址的写入业务 有利地使用处理器的仅两(2)个时钟周期。仅32位外围设备110具有 12位地址。写入合并系统200响应于接收写入业务来执行以下步骤。在 运行外围设备访问周期前,并且作为初始化的部分,处理器在存储器 映射220中预存储对应于计算机系统的所有外围设备的地址的地址范 围。写入合并系统200判断所述地址是否是可合并的外围设备的地址。 写入合并系统200根据7位地址和根据存储器映射220形成12位地址。写 入合并系统200从仅32位外围设备110读取32位字,其包括被修改的16 位字。写入合并系统200将新的16位字与先前步骤中读取的32位字合并 以创建修改后的32位字。写入合并系统200将修改后的32位写入到仅32 位外围设备IIO。
本发明不限于16位DSP 102需要执行写入访问以修改仅32位外围 设备的16位位置的情况,而是可以被等同地扩展到N位DSP需要执行 写入访问来修改2N位外围设备的N位位置的情况。此外,本发明不限 于N位DSP需要执行写入访问来修改2N位外围设备的N位位置的情况, 而是可以被等同地扩展到N位DSP需要执行写入访问以修改MxN位外围设备的N位位置的情况。根据本发明的写入合并系统200使得适应处 理器-外围设备数据宽度失配,其中外围设备具有比处理器大的数据宽 度。
本发明不限于由16位DSP使用的地址具有七(7)位的地址宽度的 情况,而是可以被等同地扩展到由N位DSP使用的地址具有P位的地址 宽度的情况。本发明不限于由仅32位外围设备使用的地址具有十二 (12)位的地址宽度的情况,而是可以被等同地扩展到由仅MxN位外 围设备使用的地址具有Q位的地址宽度的情况。优选地,Q大于P。可 供选择地,Q等于P。作为第二种可供选择的情况,Q小于P。
根据前述的说明,显而易见,写入合并系统200将DSP总线104桥 接到IP总线106 。 DSP总线104包括N位宽的DSP数据总线和P位宽的 DSP地址总线。IP总线106包括MxN位宽的IP数据总线和Q位宽的IP地 址总线。写入合并系统200包括用于从DSP总线104接收P位宽的地址 的地址接收装置;用于从DSP总线接收N位宽的新数据的数据装置; 用于将P位宽的地址转换成Q位宽的修改地址的转换装置;用于从IP 总线106读取MxN位宽的旧数据的读取装置;用于将接收的N位宽的新 数据与读取的MxN位宽的旧数据进行合并以创建修改后的MxN位宽 的数据的合并装置;以及用于向IP总线写入修改后的Q位宽的地址和 修改后的MxN位宽的数据的写入装置。
在示例性实施例中,地址接收装置包括从动状态机240和地址队列 222。在示例性实施例中,数据接收装置包括从动状态机240和写入数 据队列224。在示例性实施例中,转换装置包括窥探状态机242、存储 器映射220、窗选择寄存器221、合并位和字选择位队列226以及IP地址 緩冲器228。在示例性实施例中,读取装置包括读取状态机224、高位 读取数据队列230和低位读取数据队列232。在示例性实施例中,写入 装置包括写入状态机246,而合并装置包括多路复用器234和236。然而, 根据本发明的说明,对于本领域的技术人员来讲,显而易见,地址接 收装置、数据接收装置、转换装置、读取装置和写入装置不限于在示 例性实施例中说明的结构,而是可以代替地包括其它结构。利用写入合并系统200,当仅修改十六(16)位时,对仅32位外围 设备110的每次写入访问有益地仅需要两周期访问DSP 102的两(2) 个时钟周期,其中一个时钟周期用于读取地址阶段, 一个时钟周期用 于读取数据阶段。例如,假设两周期访问的16位DSP 102对仅32位外 围设备110进行写入以修改诸如地址"1"的32位地址的高十六(16 )位, 需要以下有益地少量总线操作a)DSP总线执行对地址"l,,的16位写 入,然后DSP总线是有益地自由执行其它不相关的任务;b)桥108在 地址"0"处执行32位读取;以及c)桥108在地址"0"处执行32位写入。 通过术语"总线操作"来表示涉及总线以及对DSP 102和写入合并系统 200都在外部发生的操作,而不包括仅在DSP内或仅在写入合并系统内 发生的操作。本发明不限于使用两周期访问的DSP 102。当使用具有 其它类型的处理器例如单周期访问的DSP或四周期访问的DSP的本发 明时,获得相称的优点。
写入合并系统200的优点可以包括a)提高了DSP 102的性能;b) 减少了DSP的写入工作负荷;c)针对其它应用任务,提高了每秒可用 上百万条指令;d)减少了控制固件的指令只读存储器;以及e)减少 了DSP集成电路的电流消耗。更具体地,使用写入合并系统200可以使 得电流消耗降低75。/。,将需要来支持单个外围设备写入任务的多次访 问的指令存储器减少75% 。
桥108的结构可以允许DSP 102编程的人员使用单个16位输入/输 出写入指令来修改在仅32位外围设备110中的32位寄存器的十六(16) 位。桥108的结构的优点包括减少代码数量以及在16位DSP结构的限制 中使用仅32位外围设备l 10的能力。
写入合并系统200的优选实施例使用作为完成其主要功能的单元 的地址和数据写入队列、地址窺探和数据合并的系统。本发明对来自 DSP 102的数据与由地址合并映射预先确定的位置的外围设备进行合 并,并且基于对外围设备的地址的窥探结果来执行读取和合并的写入 访问。
尽管上面已经结合具体的装置说明了本发明的原理,但是容易理 解,仅仅作为示例做出了该说明,而不对本发明的范围进行限制。
权利要求
1. 一种计算机系统,包括 N位数字信号处理器(DSP);包括N位宽的数据总线的第 一总线,其被耦接到N位DSP; 至少一个外围设备,其包括至少一个仅MxN位外围设备; 包括MxN位宽的数据总线的第二总线,其被耦接到所述至少 一个 仅MxN位外围设备;以及耦接在所迷第一总线和所述第二总线之间的桥,该桥包括写入合 并系统,该写入合并系统包括第一逻辑电路,其用于接收新的N位宽的数据和来自N位DSP 的写入业务,该写入业务用于修改在所述仅MxN位外围设备的数据位 置处的MxN位字的N位字,以及第二逻辑电路,其用于向所述仅MxN位外围设备的所述数据 位置写入包括由所述新的N位宽的数据修改的所述N位字的MxN位字。
2. 如权利要求l所述的计算机系统,其中,在接收所述写入业务 之后,在没有通过N位DSP的任何软件介入的情况下,所述写入合并 系统向所述仅MxN位外围设备的所述数据位置写入所述MxN位字。
3. 如权利要求l所述的计算机系统,其中,在所述MxN位外围设 备的所述数据位置处的所述MxN位字包括高N位字和低N位字,并且 其中所述第二逻辑电路向所述MxN位字的所述高N位字和所述低N位 字中的一个写入修改后的N位字而不破坏所述高N位字和所述低N位 字中的另一个。
4. 如权利要求l所述的计算机系统,其中,所述写入合并系统包 括其中预存储外围设备的地址范围的存储器映射以及其中预存储与每 个地址范围关联的最高有效位的窗选择寄存器。
5. 如权利要求4所述的计算机系统,其中,所述写入业务包括P 位宽的地址,并且其中,所述仅MxN位外围设备的所述数据位置具有Q位宽的地址,并且其中,所述第一逻辑电路根据P位宽的地址、根据 所述存储器映射和根据所述窗选择寄存器来产生Q位宽的地址。
6. 如权利要求l所述的计算机系统,其中,所述第一逻辑电路包括从动状态才几;耦接到所述从动状态机的地址队列; 耦接到所述从动状态机的窥探状态机; 耦接到所述从动状态机的存储器映射结构; 耦接到所述从动状态机的窗选择寄存器; 耦接到所述窥探状态机的合并位和字选择位队列;以及 耦接到所述窥探状态机的集成外围设备地址緩冲器。
7. 如权利要求6所述的计算机系统,其中,外围设备的地址的存 储器映射被预存储在所述存储器映射结构中。
8. 如权利要求l所述的计算机系统,包括电路支持基板,并且其 中所述计算机系统是片上系统,并且其中所述DSP、所述第一总线的 至少一部分、所述第二总线的至少一部分、所述桥和所述至少一个外 围设备被安置在所述电路支持基板上。
9. 如权利要求l所述的计算机系统,其中,所述第二逻辑电路包括试,状态机;耦接到所述读取状态机的高位读取数据队列; 耦接到所述读取状态机的低位读取数据队列; 耦接到所述读取状态机的至少一个多路复用器;以及 耦接到所述至少一个多路复用器的写入状态机。
10. 如权利要求l所述的计算机系统,其中,所述第一逻辑电路从所述仅MxN位外围设备读取所述MxN位字,并且其中,所述被读取的 MxN位字包括被修改的N位字。
11. 如权利要求10所述的计算机系统,其中,所述被读取的MxN 位字包括高16位字和低16位字,并且其中,所述高16位字被存储在所述高位读取数据队列,而所述低16位字被存储在所述低位读取数据队 列。
12. 如权利要求11所述的计算机系统,其中,所述至少一个多路复 用器将所述新的N位宽的数据与所述被读取的MxN位字合并,从而在 至少一个多路复用器的输出端形成修改后的MxN位字。
13. 如权利要求12所述的计算机系统,其中,所述第二逻辑电路向 所述仅MxN位外围设备的所述数据位置写入所述修改后的MxN位字。
14. 一种用于使第一总线与第二总线桥接的写入合并系统,该第一 总线包括N位宽的第一数据总线和P位宽的第一地址总线,该第二总线 包括MxN位宽的第二数据总线和Q位宽的第二地址总线,该写入合并 系统包括用于从所述第一总线接收P位宽的地址的装置;用于从所述第一总线接收N位宽的新的数据的装置;用于将所述P位宽的地址转换成修改后的Q位宽的地址的装置;用于从所述第二总线读取MxN位宽的旧数据的装置;用于将所接收的N位宽的新数据与所读取的MxN位宽的旧数据合并以创建修改后的MxN位宽的数据的装置;以及用于向所述第二总线写入所述修改后的Q位宽的地址和所述修改后的MxN位宽的数据。
15. 如权利要求14所述的写入合并系统,包括耦接到所述第 一数据 总线的N位处理器和耦接到所述第二数据总线的至少一个仅P位外围 设备。
16. —种在计算机系统中使用两周期访问的N位处理器的仅两个 时钟周期来修改仅MxN位外围设备的MxN位数据位置的N位字的方 法,该计算机系统包括所述两周期访问的N位处理器、所述至少一个 仅MxN位外围设备、以及耦接到所述两周期访问的N位处理器和耦接 到所述至少一个仅MxN位外围设备的写入合并系统,该方法包括在所 述写入合并系统执行的以下步骤a)预存储外围设备的地址的存储器映射;b) 在两周期访问的N位处理器的第一时钟周期期间接收包括P位 地址的写入业务以利用新的N位字来修改仅MxN位外围设备的MxN 位数据位置的N位字;c) 在所述两周期访问的N位处理器的第二时钟周期期间接收用于 所述新的N位字的数据;d) 根据所述P位地址和根据所述存储器映射来形成Q位地址;e) 根据所述仅MxN位外围设备的所述MxN位数据位置来读取 MxN位字;f) 将所述新的N位字与在步骤e读取的所述MxN位字合并以创建 l务改后的MxN位字;以及g) 向所述仅MxN位外围设备的所述MxN位数据位置写入所述修 改后的MxN位字。
17. 如权利要求16所述的方法,其中,N=16。
18. 如权利要求16所述的方法,其中,M=2。
19. 如权利要求16所述的方法,其中,P<Q。
20. 如权利要求19所述的方法,其中,P=7,而Q-12。
全文摘要
一种片上系统(100)包括16位DSP(102)、耦接到DSP的16位数据总线(202)、至少一个仅32位的外围设备(110)、耦接到该外围设备的32位数据总线(212)和耦接在16位和32位总线之间的桥(108),该桥包括写入合并系统(200)。一种写入合并系统的方法包括在存储器映射结构(220和221)中预存储外围设备的地址;从DSP接收16位数据和用于修改外围设备的32位数据位置的16位的写入业务;读取外围设备的数据位置的32位内容;复用所接收的16位数据和所读取的32位内容;以及向外围设备的数据位置写入包括修改后的16位和未修改的16位的新的32位字,而在接收写入业务之后没有来自DSP的任何介入。
文档编号G06F13/36GK101313290SQ200680043572
公开日2008年11月26日 申请日期2006年9月6日 优先权日2005年9月23日
发明者C·K·克菲, E·哈图恩 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1