具有二阶并行性的总线结构的制作方法

文档序号:6407690阅读:177来源:国知局
专利名称:具有二阶并行性的总线结构的制作方法
技术领域
本发明广泛地与个人计算机(PC)有关且更确切地与最佳化(Optimize)PC性能的总线结构有关。
近年来微处理器技术的进步已经带给无数使用者前所未有的计算能力。目前的PC绝大部分是建立在Intel80×86系列的微处理器之上,同时使用一种外围扩充总线(Perpheral Expansion Bus)如AT-Bus或者ELSA-Bus。虽然最近有些系统把萤幕显示(Display)用的图形控制器(Graphice Controller)耦合到微处理器的本地总线(Local Bus),但是传统上图形控制器一直是耦合在扩充总线上(Expansion Bus)的。
这些扩充总线代表了真正的工业标准,而且有大量的资金不断的投入到发展一些能与这几种已建立的总线标准相容动作的外围设备上。因为这些PC的基本要求已牢不可破,新一代的PC多多少少都必须支持(Support)某一种已存在的扩充总线结构。
很不幸的,这些扩充总线标准当时在微处理器较慢性能又较差的时候建立的。因此,这些扩充总线标准通常比现在使用的微处理器执行得慢,而且提供的数据路径(Data Path)也很窄。结果造成了目前处理器能力和输入/输出(I/O)能力间的不配合(Mismatch),同时随之而来的是,速度缓慢的I/O元件会拖累消耗整个系统的性能(Performance)。
本发明的目的是为了提供了一种总线结构,既可以使处理器和I/O两者性能均呈最佳化,又能和以往一样支持工业标准扩充总线。
简言之,根据本发明的总线结构的系统包括了四个子系统(Subsystem),分别是一个处理器子系统(Processor Subsystem),一个主总线子系统(Main Memory Subsystem),一个数据子系统(Video Subsystem)和一个I/O系统(I/O Subsystem)通过一个系统总线(Subsystem Bus)相互沟通。此系统总线也经常被称为存储器/视频总线(Memory/Video Bus)。另有一对总线,即处理器本地总线(Processor Local Bus or Local Bus)和外围I/O总线(Peripheral I/O Bus or I/O Bus)可提供二价并行性(Two Levels of Concurrency)。
该总线/视频总线是一个速度很快的总线,具有至少一处理器子系统(Processor Subsystem)和一I/O处理器(I/O Processor(IOP))。
处理器本地总线(Processor Local Bus)专供该特定处理器使用,而该处理器子系统可以被指定用来符合任何特定的设计目标。该处理器和该存储器/视频总线排经由暂时性的储存元件如FIFO暂存器沟通,以便提供和该存储器/视频总线排间的并行性。该I/O总线和该存储器排间经山暂时性储存装置如一个I/O快取存储器(I/O Cache)沟通,以便提供和该存储器/视频总线排间的并行性,同时此I/O总线排间的并行性,同时此I/O总线耦合到一些标准I/O元件及一工业标准扩充总线。
该中央处理单元(CPU)和该IOP接受仲裁以经由存储器/视频总线存取存储器,然而因为该I/OCache,该存储器/视频总线实质上不会受到I/O存储器上缓慢的外围装置的影响。类似地,这些外围装置接受仲裁以经由I/O总线以便使用IOP,但是这个过程基本上该CPU子系统是感觉不到的(Invisibe)。
对本发明的特性和优点可,由参考本说明书的其他部分及图示获得更深入的了解。


图1是一个实施本发明的计算机系统的高阶(Hig-Level)方块图。
图2是处理器子系统的方块图。
图3是I/O子系统的方块图。
图1是一个实施本发明总线的结构的计算机系统的高阶方块图。一个快速的系统总线15,在此称为存储器/视频总线,支持了四个子系统间的沟通,这些子系统分别为,一处理器子系统20,一存储器子系统22,一视频子系统25和一I/O子系统30。该处理器子系统包括一个CPU和一介面,有时也把它称为CPU处理器(CPU Processor)。同样地,该I/O子系统包括一些I/O子系统包括一些I/O元件和一接口,有时被称为I/O处理器(I/O Processor,IOP)。本发明的架构十分具有弹性,允许子系统个别因应性能和成本做最佳化。
处理器子系统和I/O子系统分别各有总线主控装置(Bus Master)的线路,因此个别均可成为存储器/视频总线15的主控装置(Master)。虽然图上只显示了一个处理器子系统,但是一个多处理系统(Multi-processing System)可以再包括一个耦合到该存储器/视频总线排的处理器子系统。每一个子系统都以一个方块作为代表,但是实施这些总线协定(Bus Protocal)的不同信号路径都仔细的描绘出来。存储器/视频总线上的信号和总线协定的表1中有更详尽的述。
在一个较佳的实施例中,该存储器/视频总线是一个64位元多工化(Multiplexed)的位址和数据总线,以25MHz的速度运作。该存储器/视频总线可以承受每秒200百万位元组(200 Mbyte/sec)的突发转换率(Burst Tranfer Rate)。该CPU处理器和该IOP都以64位元的突发状态转换(Burst Mode Transfer)来存取主存储器,这样便增加了总线的频宽。在本实施例中,该处理器在微软公司(Microsoft)的视窗NT(Windows NT)作业系统下运作,此作业系统提供了一个类似工作站(Workstation)和微型计算机(Minicomputer)的作业系统环境(Encironment)。多任务(Multitask),多线式(Multithread),以及网路是Windows NT的关键要件,而该系统结构已被调整过以利用这些功能。这个系统的性能和现今的微型计算机及工作站性能不相上下,但是它的成本似于一个典型的EISA PC。
该视频子系统也可经由该64位存储器/视频总线被存取。视频元件被高频宽的I/O元件,因此该视频子系统最有效的位置是在存储器/视频总线上而非在外围总线上。这个64位元的存储器/视频总线可以作动态大小调整(Dynamic Sizing),因此当CPU总线控制器(CPU Bus Controller)查知现在的周期要牵涉到32位元元件的时候,32位元的视频子系统就可以自动的得到支持而顺利执行。
图2是处理器子系统20的方块图。一般而言,此处理器子系统根据几个微处理器来设计,同时可以为达成任何特定的设计目标来作特别的架构。在本实施例中,编号40的CPU是一个MIPS R4000PC或者是4400PC RICS微处理器,它使用了一个超级管线(Superpipeline)结构,在尖峰时间(Peak Time)时可以在每个时钟(Clock)执行两个指令。举例来说,一个50MHz的R400PC可以在CPU暂存器执行时产生一个100的尖峰每秒百万指令(Mips)。该微处理器有一个建于晶片的上快取存储器(On-chip Cache)和一个用来把虚拟位址(Virtual Address)转成实际位址(Physical Address)以便用于该存储器/视频总线的转译旁看缓冲器(Translation Lookaside Buffer,TLB)。该微处理器由一个处理器本地总线45(通常称为本发总线,Local Bus)与一个次级(外在)快取存储器(Second-Level(External)Cache)42以及其他接口线路作沟通。此本地总线以CPU时钟速率运作,正好为存储器/视频总线速率的两倍,或者说,在本实施例中为50MHz。
该接口线路包括了数据和位址路径接口线路,以一双向暂存器组实施。此暂存器组构成输入和输出之先入先出(First-in-first-out FIFO)堆栈(Stack),通称为FIFO47。此FIFO47耦合存储器/视频总线15和本地总线45上的数据和位址路径,同时由一对双向的FIFO晶片47a和47b实施之。晶片47a掌管位元63∶48和31∶16,而晶片47b掌管位元47∶32和15∶0。在本实施例中,FIFO47有一个32位元的读取FIFO(Read FIFO)用在自该存储器/视频总线15到处理器的转换,同时有一个16位元的写入FIFO(Write FIFO)用在自该CPU到该存储器/视频总线15的转换。该FIFO可以在把数据自二个总线之一移入(Shift In)的同时,也把数据移出(Shift out)到另一总线。
该接口线路其余的部分均实施于一单一晶片上,它们提供了该存储器/视频总线和该本地总线运作时所须的控制信号。该线路包括了一个总线主控单元(Bus Master Unit)50,一个存储器/视频总线仲裁器(Arbitrator)52,一处理器接口(本地总线控制器Local Bus Controller)55,和一个次级快取控制器(Secong-level Cache Controller)57。Bus Master Unit 50是到存储器/视频总线15的控制接口,它在I/O子系统中有一个相对应的元件,容后详述。存储器/,视频总线仲裁器52对该CPU和I/O子系统为存取存储器而发出之可能相冲的存储器/视频总线使用要求(Request)作仲裁。存储器/视频总线15和CPU本地总线45间的并行性(Conurrency)是由数据FIFO和CPU总线控制器55控制的。
图3是I/O子系统30的方块图。数个标准外围60经由一个外围I/O总线65(通常称为I/O总线)来沟通,它们又经由接口线路被耦合到存储器/视频总线15。该I/O总线65是用来连接缓慢的I/O元件,同时使用了一486式(486-type)的总线协定。此时钟与存储器/视频总线中用的时钟同步(即为25MHz0。这里的I/O总线数据径是32位元宽,且数据和位址均被解多工(Demultiplexed)。该I/O总线上的信号和协定在表2中有详述。
该二总线65和15间的数据转换是经由一I/O快取存储器(I/O Cache)70,它有一个适当的I/O埠72把此Cache耦合到存储器/视频总线15,还有一数据包装和解开线路(Data Packing and Unpacking Circuitry)75把此Cache耦合到该I/O总线65。上述之元件均被做在一单一晶片上,同时剩余的元件被做在另一晶片上。该Cache70事实上被安排成四个32位元组的快取存储器,其中每一个分别与四个TLB之一有关,在此四个TLB通称为80。此四TLB80将该I/O总线65上任何主控装置(Master)产生的虚拟位址转换成用于该存储器/视频总线15上的实际位址。
该接口线路也包括了一个Bus Master Unit90,一个快取控制器(Cache Controller)92,一I/O总线控制器(I/O Bus Controller)95,一I/O总线仲裁器97和四个25MHZ的直接存储器存取控制器(DMA Controller)100,其中每一个均可以作成8/16/32位元的架构。Bus Master Unit90与前述处理器子系统之接口线路中的Bus Master Unit50相对应,同时提供了到该存储器/视频总线15的控制接口。该I/O总线控制器95支持该I/O总线协定,而该I/O仲裁器97对该I/O总线65上的那些总线主控装置提出的可能相冲的请求作仲裁。四个DMAController 100和此快速I/O Cache70同步以产生一高的DMA转换速率(Tranfer Rate),即为25MHz而非像EISA/AT类DMA情况下所用8MHz。
耦合至该I/O总线65上的外围元件组合会因所要之系统架构而有所变化,但是一般预期包括一个键盘和鼠标控制器,几个磁盘控制器(软盘(Floppy)和SCSI),一个网路接口如以太网路(Ethernet)控制器,和一些支持用逻辑线路(Support Logic),这些逻辑线路是用来提供一个或更多的工业标位扩充总线,如AT-Bus或EISA-Bus,以便容纳接附于该扩充总线标准上的外围设备。I/O控制线路支持动态总线大小调整此(dynamic Bus Sizing)以便容纳16位元的总线控制器,如AT总线控制器。
当DMA通道(Channel)运行时,该I/O快取控制器92会根据它的架构作数据包装和解开的动作。在AT-bus下,其AT控制器需要为16位元协定作数据包装一解开(Data pack Unpack)。在ESIA控制器需要为32位元协定作数据包装一解开。而在该I/O总线65上的DMA元件和其他总线主控装置匀直接和该I/O Cache70作接触。然后该I/O Cache才作64位元的数据转换,或能是冲掉(flush)或者填满(Fill)。
该I/O Cache70的四个入口(Entry)可以并行管事四个I/O线(Thread);这样可以增强Windows NT的性能,因为Windows NT的是一种多线式(Multithread)的模型。DOS和Windows 3.X作业系统不是多任务(Multitasking)或多线式的,因此它们无法并行I/O线处理(Concurrent I/O Thread Processing)中得到好处。如上所述,该I/O Cache的每个入口都是32位元,可以提供很深的缓冲力。例如,在缓慢的8位元I/O元件,如一个软盘控制器或AT DMA元件的情形下,该I/O Cache可以缓冲32位I/O周期,在此之后该I/O Cache就利用64位元的尖锋转换模式(Burt Transfer Mode)冲掉(Flush)至存储器。这样可以增进该存储器/视频总线15的使用度并造成很高的系统工作量(Throughput)。该I/O Cache70利用一种先配置和先填满演算法(pre-allocation and Pre-fill Algorithm),把总线的管理支出(Overhead)隐藏至该缓慢I/O元件。外围I/O总线促裁出入时间(Arbitration Latency)被缩短了,因为该I/O Cache70能快速的回应。以太网路元件可以立刻善加利用这种低仲裁出入时间的优点。
硬件式消散/聚集(Scatter/Gather)也被建在该I/O处理器中。该I/O总线65根据逻辑位址(Logical Address)来处下数据,而该存储器/视频总线15根据实际位址(Physical Address)来处下数据。该I/OCache70的每一个入口都有一个实际标签(Physical Tag)和一个逻辑标签(Logical Tag),同时I/O转换是依据此一转换表(Translation Table)进行的。Windows NT假设有消散/聚集式I/O转换,如果硬件式消散/聚集不存在,则山一个软件常式(Routine)来管理这种I/O转换。以硬件实施此消散/聚集功能可以大大的消少软件的管理支出(Overhead)。
总括而言,可以看出本发明提供了一个并行式双64位元总线主控装置系统架构(Concurrent Dual 64-bit Bus master System Architecture),不但提供了高CPU性能,也提供了高I/O性能。与今日许多PC完全相反的,它们的I/O性能被缓慢的I/O元件限制住了,造成总线频宽上的沉重包担,而本发明提供并解决了这个绝大多数传统PC所遇到的问题。读/写FIFO(Read/Write FIFO)减少了CPU写入之拖延(CPU Write Stall)并允许本地总线和存储器/视频总线并行。I/O Cache提供了存储器/视频总线和I/O总线间的并行性,同时缩短了I/O总线仲裁时的出入时间。
以上仅以一本发明的较佳的实施例作详尽的描述,可再做其他不离开发明本质的变化及架构变动。因此,以上之描述不该被视为限制了本发明的范畴。本发明应以下述的申请专利范围定义。
表1-存储体/视频总线存储器/视频总线时钟和重置(Reset)HTCLKHTCLK是一系统时钟。其时钟速率(Clock Rate)范围可从范围可从20MHz到25MHz。所有子系统均使用此时种。它是由CPU处理器子系统产生出来的。
RESE此种置信号用来重置整个系统。当此RESET信号被致能时,所有的ASIC和子系统都被重置到预设值。它是由CPU处理器子系统产生出来的。
存储器/视频总线数据和位址HDAL [63-0]此位址和数据均被多工在该64位元数据/位址总线。此位址只有在位址周期(Adress Cycle),即HADS#=0时,才会有效一个HTCLK周期。此位址由在该位址周期时之总线拥有者驱动。
HDP[7-0]HDP[7-0]是在数据总线上用来保护数据整性的同位位元(Parity Bit)。
HBE#[7-0]这些位元组致能信号用来在双字组(Double Word)内对每一位元组定址。
存储器/视频总线期定义和控制HADS#HADS#是位址确认信号(Address Assertion Signal)。
BLAST#BLAST#用来表示目前的周期是否为一突发转换周期及是否由目前的总线主控装置驱动。
HRDY#、BRDY#这些准备完成(Ready)信号是用来结束总线周期的。
BS#32CPU处理器可以在存储器/视频总线上作动态总线排大小调整。当从属元件(Slave Device)回应BS32#时,CPU处理器就为高字组(High Word)发动另一总线周期,而数据也就会换到低字组去(Low Word)。
W_R#、M_IO#、D_C#这些是周期之定义。这些从属元件必须解码这些信号以得到周期命令(Cycle Command)。
MCS#、VCS#、EXTCH#这些是已解码过,用在处理器周期的信号。如果MCS#为低,则目前的周期为本地存储器(Local Memory Cycle)。
如果VCS#为低,则目前的周期为一视频存取周期(Video Access Cycle)。如果EXTCS#为低,则目前之周期是一I/O周期,它可以是一本地I/O或AT/EISA周期。
INV_ADR_ERR这是用来指出目前的周期的位址为无效(Invalid)。
存储器/视频总线仲裁HOLD、HBOFF#、HLDA这三个信号用来仲裁此总线。
HLOCK#、PURQ这些信号在本参考设计中没有用到。CPU处理器锁位(Lock)总线时会送出一HLOCK#信号。PURQ在有总线请求未定时(Pending)由CPU处理器产生。
存储器/视频总线一致性(Cache Coherency)EADS#EAD#是用来保持Cache一致性的。当I/O处理器开始一存储器开始一存储器周期(Memory Cycle)时,会确认(Assert)此信号以行窥探(Snoop)动作。
表2-10总线信号I/O总线时钟和重置HTCLK、EISA_BCLKHTCLK和该存储器/视频总线上用的时钟同步。范围可以从20MHz到25MHz。EISA_BCLK是在AT/EISA总线上的时钟。可以由AT/EISA总线控制器来驱动。
HPU-RESET、RST_486此二信号用在系统重置之时。HPU_RESET和记存储器的重置信号产生方式相同。它是由CPU处理器子系统驱动的。RST_486在AT/EISA控制器使用-2X时钟时被使用。
I/O总线数据和位址H486_ADR[31-2]、ADR[1-0]、HBE#[3-0]这些是需由I/O总线主控制置驱动的位址部线(Adress Bus Line)。
486_DATA[31-0]此I/O总线是一个32位元总线。16位元的总线主控装置需致能BS16#才可要求I/O控制器进行数据的包装-解开。
I/O总线周期定义和控制H486_ADS#它是位址闪控信号(Strobe signal)。
H486_RDY#它是由从属元件回应回来的准备完成信号(Ready Signal)。
H486_M_IO#、H486_D_C#这些是由总线主控装置产生的周期定义。此定义和486周期类似。
BS16#此信号专门给AT控制器使用。如果内部暂存器被规画成一个AT控制器则此信号可以忽略。
Local_IO#、Slave_RD#、Slave_WT#这些是I/O快取控制器在本地I/O元件周期时产生的命令信号。如果Local_IO#确认为低,则目前之周期会存取本地I/O元件或本地DMA元件。
IO_BUS_QR、H486_BUS_ERRIO_BUS_PQ是I/O快取控制器在有一内部I/O总线请求未定产生的旗标(Flag)。H486_Bus_ERR#是有总线错误产生时,如虚拟位址超出范围,I/O快取控制器产生的旗标。
I/O总线仲裁
E_HOLD、L_HOLD、REFRESH#、E_HLDA、LHLDA这些都是总线仲裁之协定。E_HOLD是AT/EISA控制器来的请求信号。而E_HLDA是给AT/EISA控制器的认可信号(Acknowledge Signal)。L_HOLD是以太网路控制器来的请求信号,而L_HLDA是给乙太网路控制器的认可信号。REFESH#是由AT/EISA控制器产生的。
I/O总线本地的DMA控制DMA_RQ[3-0]这些是四个DMA请求。所有的本地DMA元件,非AT/EISA8237,均可用这些信号来要求I/O快取控制器开始一个本地DMA周期。此DMA通道在DMA开始前必须先被规画好。
LDMA_TC、DMA_ACK_CNT#DMA周期利用DMA_ACK_CNT#和ADR[1-0]来解码决定那一个DMA通道被激发(Activated)。SLAVE_RD#或SLAVE_WT#都作为命令LDMA_TC由I/O快取控制器产以告知该DMA通道服务(DMA Channel Service)已结束。
权利要求
1.一种计算机系统,包含第一总线,称为系统总线;第一总线主控装置接口,耦合至该系统总线;第二总线主控装置接口,耦合至该系统总线;存储器子系统,耦合至该系统总线;视频子系统,耦合至该系统总线;处理器子系统,耦合至该系统总线,该处理器子系统包含一第二总线,称为处理器本地总线,及一处理器,耦合至该处理器本地总线,以及一第一电路,该第一电路将该处理器本地总线耦合至该系统总线;该第一电路包含第一暂时性数据储存装置用来暂时储存一会于该处理器本地总线、该系统总线及该第一汇流排主控装置界面间沟通之数据;I/O子系统,耦合至该系统总线,该I/O子系统包含一第三总线,称为I/O总线,及多数的周边元件,耦合至该I/O总线,以及一第二电路,该第二电路将该I/O总线耦合至该系统总线;该第二电路包含第二暂时性数据储存装置用来暂存一会于该I/O总线、该系统总线及该第二总线主控装置接口间沟通之数据。
2.根据权利要求1计算机系统,其中该处理器子系统更包含一总线仲裁器单元用以仲裁从至少前述第一和第二总线主控装置接口来的该总线子系统存取的请求。
3.根据权利要求1的计算机系统,其中该I/O子系统更包含一总线仲裁器单元用以仲裁从外围来的第二暂时性数据储存装置存取之请求。
4.根据权利要求1的计算机系统,其中该第一暂时性数据储存装置包含一组安排成一FIFO堆栈的暂存器。
5.根据权利要求1的计算机系统,其中该第二暂时性数据储存装置包含一I/O快取总线。
6.根据权利要求1的计算机系统,其中该处理器子系统更包含一耦合至该处理本地总线的次级快取总线。
7.根据权利要求1的计算机系统,其中该I/O子系统更包含一DMA控制器。
全文摘要
一种具有同时可最佳化(Optimize)处理器及输入/输出(I/O)性能又可支持工业标准扩充的汇流排结构。四个子系统,分别是一个处理器子系统,一个主存储器子系统,一个视频子系统和一个I/O子系统透过一个系统总线互相沟通。此系统总线也经常被称为存储器/视频总线(Memory/Video Bus)。另有一对,即处理器本地部线和外围I/O总线可提供二阶并行性。
文档编号G06F13/40GK1097073SQ9410167
公开日1995年1月4日 申请日期1994年2月5日 优先权日1993年3月19日
发明者李晓均, 陈维纶, 江胜昌 申请人:宏碁电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1