CN1338076A - 具有可编程等待状态的微处理设备 - Google Patents
具有可编程等待状态的微处理设备 Download PDFInfo
- Publication number
- CN1338076A CN1338076A CN99816463A CN99816463A CN1338076A CN 1338076 A CN1338076 A CN 1338076A CN 99816463 A CN99816463 A CN 99816463A CN 99816463 A CN99816463 A CN 99816463A CN 1338076 A CN1338076 A CN 1338076A
- Authority
- CN
- China
- Prior art keywords
- signal
- wait state
- circuit
- memory
- output
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 89
- 238000003860 storage Methods 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 18
- 230000005055 memory storage Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 8
- 230000014759 maintenance of location Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 claims 2
- 230000007704 transition Effects 0.000 claims 1
- 230000003139 buffering effect Effects 0.000 description 5
- 230000003213 activating effect Effects 0.000 description 3
- 208000028659 discharge Diseases 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Microcomputers (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明是涉及用微控制器(110)来控制数据总线(120),考虑到了存储器输出驱动器在输出操作后需要有限的时间来电释放总线的事实。每一存储器(130、132)有与之相应的等待状态数来有选择地置微处理器(110)在紧接读操作之后并在下一个I/O操作时之前进入可变长度的等待状态。
Description
(1)技术领域
本发明涉及到微处理设备,特别涉及与外部设备进行I/O的可编程等待状态方案。
(2)背景技术
通常,每当数据在同系统的两台设备(例如:微处理单元和存储器件)之间交换时,系统必须确认两台设备之间的交互必须是同步的。例如,最近,在微处理器和微控制器的制造中使用了允许高速运作的技术。时钟速度达到300MHz或者更高成为很普通的事。然而外部设备,特别是存储器件象闪存(FLASH)、静态存取存储器(SRAM)以及电可擦除只读存储器(EEPROM),通常不具备这么高的时钟速度。
一种与慢速设备同步的通常方法是通过使用等待状态改变微处理器件对每一设备访问的总线周期持续时间,有时称为“总线伸展”。系统地址译码器对地址译码,并且决定哪块存储器被选择。系统控制逻辑接着决定该存储器是否是需要一个等待状态,并且如果需要就对一根等待信号线加电。微处理核心在一个时钟周期中对信号线采样,并且如果该线被加电,就进入到一个时钟周期的等待状态(本质上就是不做任何事的状态)。微处理核心在下一个时钟周期再对信号线采样,并且当等待信号线被取消(不加电)时,继续运行。这样就提供给慢速的存储器器件足够的内部时间来对地址译码,访问存储器,以及使得在其输出缓冲里的数据能保持稳定。
一种使用等待状态的已有技术包括在自身的存储器件中存入等待状态数值。计算器件包括的逻辑电路访问这个数值来决定总线周期需要扩充的时间。这个方法需要含有存储等待状态数值的逻辑电路和将数值提供给计算器件的特殊器件。
另一个使用等待状态的方法被应用在中断驱动的I/O设备中。在程序解码器的逻辑部分侦测某些I/O指令的发生,并且依据指令声明等待信号将微处理器操作挂起一周期时间。这种方法对存取低速I/O设备很有用,微处理器在中断指令返回期间暂停,给了低速I/O设备执行操作的时间。
一个上面没有提及的问题是存取多存储器设备,一个读访问第一设备的操作在开始访问另一设备操作之前没有给予足够的时间来完成,导致总线冲突。这个问题由来是因为当访问另一设备操作发生时,第一设备的输出驱动还在驱动这两个设备公共的数据总线。除非在第二设备执行访问之前有足够的时间经过,否则两个设备都会试图驱动总线。其结果是数据混淆以及增加了由于驱动电路同时访问带来的能量消耗。然而,这样的问题自身并不是经常出现。例如,从同一设备中连续发出的读操作不会引起所述驱动电路的问题。一个写操作和跟随的读操作,同样地,也不会引起所述驱动电路的问题。
我们所需要的是在微计算结构中加入控制电路,来侦测对多存储的访问以及根据I/O所执行操作的类型插入等待状态。我们期望能有这样的电路,可以侦测哪个存储器被访问以及适时插入等待状态。我们更期待有这样的电路能依照执行的I/O操作序列来插入等待状态。
(3)发明内容
在具有第一和第二外部存储器的计算设备中,一种访问存储器的方法包括将第一等待状态值与第一存储器关联,并且将第二等待状态值与第二存储器关联,接着选择与被选择的存储器之一相关的等待状态值,并且读该存储器。并且在继续读步骤和下一步I/O操作之前,CPU被置成与所选的等待状态值成比例的周期时间的等待状态;例如等待状态x时钟周期。
然而,如果下一步I/O操作是针对CPU内部存储器,那么CPU在I/O操作之前不进入等待状态,而是立刻处理该I/O操作。如果接着内部I/O操作之后的读操作是针对于最初选定的外部存储器,那么不进入等待状态而访问立刻进行。如果接着内部I/O操作之后的读操作是针对于不同的外部存储器,那么将进入的等待状态时间周期是与最初选定的外部存储器关联的等待状态成比例,从完成读操作的计时开始。
根据本发明,一种微处理设备包括连接外部存储器、核心逻辑和存储控制器的系统总线。等待状态电路生成一使核心逻辑进入等待状态的等待信号。连接等待状态电路的是外部总线电路,用来侦测在系统总线上发生的存储访问序列以及激活等待状态电路,并因而使核心逻辑进入等待状态。连接外部总线电路的是用来存储每一存储器件数据流等待状态值的数据装置。
数据装置对选中的存储器件响应而输出数据流等待状态值给外部总线电路。外部总线电路侦测出外部读操作的发生,该操作后面跟着访问另一个外部存储器的操作,并且初始化数据流等待状态周期,该周期与被访问的存储器关联的等待状态值成比例,例如等待状态为x时钟周期。然而,如果外部总线电路侦测到一写操作,后面跟着一读操作,那么没有数据流等待状态发生,虽然一个标准的等待状态可能仍然发生。类似的,如果一外部读操作,后面跟着一内部访问,那么没有数据流等待状态发生。
(4)附图说明
图1是本发明数据处理系统的方框图。
图2是如图1所示的外部总线确认逻辑方框图。
图3-6是说明根据本发明存储访问方案采用的多种数据处理系统操作配置时序图。
图7是数据处理系统的替代实施例方框图。
(5)具体实施方式
参照图1,本发明的数据处理系统100包括多种安排在系统总线120周围的各种子系统。微处理单元110例如微控制器或类似的,包括核心逻辑112和内部存储器114。内部时钟156提供了时钟信号s130给驱动器微处理单元110。在核心逻辑112和存储器114之间的数据传输发生在内部总线116上。内部总线和系统总线120相连,来提供数据向微处理单元110外部的传输。离开总线116的是输送给存储控制器152的存储器地址线s140。核心逻辑112提供了数据选择信号s142,表明了核心需要数据传输(读或写)。特别地,信号s142 HI表明了一数据传输周期,而信号s142 L0表明了一地址周期。数据选择信号输送给了存储控制器152以及等待状态生成器160。
连接系统总线120的是外部存储器130和132。典型的外部存储器包括EEPROM、FLASH和SRAM。存储器130和132被典型的控制信号控制,例如片选信号s100,存储器132的输出允许信号s104和写允许信号s106。这些信号依据I/O操作和出现在地址线s140上的地址由存储控制器152产生。存储控制器也提供外部读信号s108,表明了从存储器到微处理单元110的读周期。存储控制器也提供连续的读信号s110,表明了发生在同一先前访问的存储器上的读操作。
等待状态生成器160提供了输送给核心逻辑112的等待信号s150(激活HI)。对信号s150加电引起核心逻辑进入等待状态,而不对信号s150加电则允许核心逻辑继续工作。等待状态生成器160从标准的等待状态寄存器接收等待状态数值。等待状态生成器160也接收数据选择信号s142,表明了数据传输将开始。根据传统的操作,当外部存储器被访问时,等待信号s150就被生成,以便让微处理单元110进入等待状态,从而使外部存储器位置有足够的时间周期被访问。这种时间周期是基于标准等待状态寄存器150生成值。
根据本发明,有用于存储不同存储器类型的等待状态数值的外部存储选择逻辑140。通常,每一存储器类型都和一地址范围关联。给定数据的地址表明了存储数据的存储器类型。因此,地址线s140输送给外部选择逻辑140,外部选择逻辑140再输出对应于线上地址的存储器件的等待状态数值。可见,每一存储器都有两个相关联的等待状态数值,标准等待状态数值和数据流等待状态数值。标准等待状态数值是用于让CPU进入一定时间周期等待状态的已有技术等待状态数值,使得地址数据有足够的时间被取出,并在系统总线120上驱动。对应于给定地址的标准等待状态数值被存储在寄存器150中,并且从那里输送到等待状态生成器160。
外部选择逻辑140也提供了存储在数据流寄存器142中的数据流等待状态数值。数据流寄存器上的三位数据流s160被输送到外部总线逻辑170中。另外,外部总线逻辑接收外部读信号s108,连续读信号s110,数据选择信号s142,和从等待状态生成器160中出来的等待信号s150。基于这些输入信号,外部总线逻辑170将产生ACK信号s152(激活HI)来输送给等待状态生成器,从而当ACK信号s152为L0时,使等待信号s150加电。
地址范围和等待状态数值来自于用户提供程序码180。在实施例中,外部存储选择逻辑140包括多种可以通过存储器映射方案访问的寄存器,其特征在于,寄存器具有在程序的控制下可访问的相关地址。用户可以通过设定地址范围和对应等待状态数值来对寄存器编程,可以是标准的或数据流的。
继续描述图1,在重置电路154上有电源,来提供重置信号s120和它的补码信号s122。还有提供时钟信号s130和其补码s132。
参照图2,展示了包括外部总线逻辑170的电路。计数逻辑由被时钟信号s130计时的触发器202、204和206组成。计数逻辑输出由单独触发器的反相输出组成。这些输出输送到比较器电路220,它包括三个和与非门连接的异或门(XOR)。每个异或门的输出被连接到触发器202-206的反相输出上,而例外的是触发器204的输出是由缓冲254驱动,随后输送给比较器电路220。比较器的另一输入来源于数据流位s160。比较器220的输出输送给了与非门260的一个输入。
数据流位s160在逻辑电路222中一起进行或操作。或操作的结果输送给了与非门260的另一个输入。
等待信号s150和外部读信号s108分别输送给了反相器267和268,其输出通过与非门266连接。反相器和与非门一起作为一个或门工作。与非门266的输出输送给与门264的一个输入。数据选择信号s142和与门264的另一个输入连接。与门264的一输出和与非门262的一输入相连接。与非门262的另一输入与触发器208的输出相连接。
数据选择信号s142也通过反相器265反相,并且通过或门263与连续读信号s110相或。或门263输出和与非门262的输出通过与门261相连接,与门261的输出输送给与非门260的第三输入。与非门260依次又输送到产生ACK信号s152的触发器208。
回到计数逻辑,触发器202通过反相器251被与非门250驱动。与非门接收触发器202的反相输出和触发器208的反相输出。继续向前,或非门253接收到触发器202的反相输出和触发器208的非反相输出。或非门253的输出输送给了复用器210的输入1。复用器210的其他输入连接到时钟信号s130。复用器的输出输送给了触发器204。
触发器204的反相输出输送(通过缓冲254)给了与非门255和反相器256,复用器210的选择器控制。与非门255也接收触发器208的反相输出。与非门250和255的输出连接到了与非门258上。反相器256连接在与门259,与门259也接收通过反相器257从触发器202反相输出的输入信号和从触发器208反相输出的输入信号。门258和259的输出分别输送给了复用器212的输入0和1。复用器212的输出给了触发器206的输入,触发器206的反相输出作为了复用器212的选择输出。
外部总线逻辑170的运作将在下面解释。通常,为了外部存储器访问,对应于被访问的存储器的数据流数值从外部选择逻辑140中载入,并送给寄存器142。经过一个读周期,计数逻辑(触发器202、204和206)将开始增加至数据流数值(信号s160)。在计数期间,ACK信号s152是不加电(L0)的,表明了系统总线120仍然被读存储器的输出缓冲驱动。作为回应,等待状态生成器160加电等待信号s150,使得微控制器110进入等待状态。一旦计数达到数据流值s160,计数将复位,并且ACK信号s152将为HI,表明系统总线120空闲。
外部总线逻辑170的不同操作配置可以结合图3-6描述的时序图来进行最佳的解释。时序图是如图2所示的外部总线逻辑170的模拟产物。模拟是通过使用Cadence制造的VeriLog XL模拟器来实现的。
参照图1、2和3,假设存储器130(MEM0)是一8位存储器,它的地址最高位等于“0x010”。外部选择逻辑140被编程为地址从0x010开始时,对应数据流等待状态数值为5。图3所示的时序图说明了一个写操作后面跟着两个连续的对存储器MEM0的读操作信号。另外,写和读操作涉及到16位字,但每个I/O操作是由两个8位存储访问(低位和高位)组成。
图3中时序图的顶部展示了存储地址信号s140和时钟信号s130。片选s100(CSO,激活L0)表明了MEM0被选中。第一访问地址是0x01000500。这地址在地址总线s140上被选中,外部选择逻辑140输出5给数据流寄存器142。接着,数据流位s160被置为5。
在时间周期t1,写允许信号s106在当高位字节和低位字节被写进存储位置0x01000500时,被两次加电(激活L0)。因为是写操作,数据传输信号s142被加电,并且外部读信号s108为不加电(激活L0)。虽然根据本发明实施例的逻辑电路170、ACK信号s152依然被加电,并且计数输出(触发器202、204和206的输出)在写周期结束依然是低电平,标志为如图3所示的事件A3,表明了系统总线120空闲。观察在周期t1中,等待信号s150仍然由等待状态生成器160加电。这是标准等待状态的结果,对应于写操作产生。
注意,连续读信号s110在事件A3处由存储控制器152加电,因为一个访问同一存储器(MEM0)的操作被执行,即一个读操作。在时间周期t2中,读操作发生于输出允许信号s104在事件B3处转到L0来输出访问字的第一字节。同样在事件B3处,外部读信号s108变为L0,表明了一外部读访问发生。第二字节在事件C3处读取。再次,在周期t2中标准等待状态出现,来提供足够的时间完成读操作。
在事件D3,新地址被加电,即0x01000500。再次,因为访问同一存储器(MEM0),连续读信号s110被加电。因此,根据本发明,计数器不开始计数,并且,触发器208还是继续输出HI,因而对ACK信号s152加电,表明系统总线120空闲。
结束讨论图3前,在时间周期t3期间,两个读访问在事件E3和F3处发生,来读取存储在存储位置0x01000500的构成字的两字节。该操作伴随着在同周期中的标准等待状态,由等待信号s150被加电所指示。
从前面讨论的图3中,可以了解外部总线逻辑170在完成写周期时没有始发一等待状态,因为总线冲突不是个问题。另外,对从同一存储器中来的连续读信号,总线逻辑也不始发等待状态。
参照图1、2和4,假设存储器130(MEM0)是一8位存储器,它的地址最高位等于“0x010”。进一步假设外部选择逻辑140被编程为地址从0x010开始时,对应数据流等待状态数值为5。图4所示的时序图说明了一个从MEM0来的读操作时限,其后面跟着对存储器MEM0写操作和从MEM0来的读操作。如图3,写和读操作涉及到16位字,因而每个I/O操作是由两个8位存储访问(低位和高位)组成。
在图4中我们可以看出,在时间周期t1,产生的读操作伴随着相应的标准等待状态。当在事件A4处完成了读操作,输出允许信号s104不加电,并且外部读信号s108同样不加电,ACK信号s152不加电,引起计数器(触发器202、204、206)开始计数和使等待状态生成器160加电等待状态信号s 150来表明系统总线120正忙着。结果,CPU110进入等待状态。
与已有技术相比,下一步I/O操作将在事件B4处开始,会因为CPU试图在MEM0输出缓冲仍然占用系统总线120进行它的读操作的情况下,同时在系统总线上驱动自身输出数据,而导致总线争夺。而根据本发明,由于在事件B4处进入等待状态替代了原来操作,MEM0的输出缓冲有足够的时间(5个时钟周期)来释放系统总线,因而当写操作开始执行时,总线已经空闲,并且也没有在微控制器和MEM0之间由于争夺而产生混淆数据的危险。
在事件C4处,当计数器计数到5,并且比较器220侦测到等值的数据流s160,触发器208输出HI给再次加电ACK信号s152。作为回应,等待状态生成器160应该如虚线所示不加电等待信号s150。而在随后的写操作期间,标准等待状态被插入到t2时间周期。在写周期结束(事件D4)时,计数器并没启动,因为ACK信号s152仍然是HI,因为外部选择信号被加电,并且因而在下一步I/O操作前没有等待状态发生。回顾外部总线逻辑170在写操作结束时没有启动计数器。因而,可以看见在从存储位置为0x010001f8读取时,标准等待状态在t3时间周期仍然产生。
概括一下,图4的时序图展示了本发明依据刚完成的操作有选择地加电等待状态。在外部读操作情况下且如果数据流寄存器含有非零值,则产生等待状态以允许输出驱动释放总线。在写操作的情况下,不发出等待状态。
参照图1、2和5,假设存储器130(MEM0)是一8位存储器,它的地址最高位等于“0x010”。进一步假设内部存储器114具有最高位为“0x000”的地址。外部选择逻辑140被编程为地址从0x010开始时,对应数据流等待状态数值为5。图5所示的时序图说明了一个从MEM0来的读操作信号,其后面跟着从内部存储器114来的连续三个写操作和从MEM0来的另一个读操作。对MEM0读操作涉及到16位字,但每个I/O操作是由两个8位存储访问(低位和高位)组成。
图5中时序图的顶部展示了存储地址信号s140和时钟信号s130。在t1时间周期中,第一读访问是对位置为0x010001e8的外部存储器MEM0的。注意,每一标准等待状态操作的等待信号s150在相同的时间周期被加电。
事件A5处读操作的结果是,ACK信号s152变成L0,而引发计数器开始计数。回想一下,ACK L0表明系统总线120不空闲。然而可以看见等待信号s150仍然未被加电;原因是后来的读操作是对内部存储器114,该存储器不依靠由MEM0输出驱动器释放的系统总线120。
回到图1,当一内部存储地址被侦测到,外部存储选择140载入一个零数值给标准等待状态寄存器150。这输送给等待状态生成器160,生成器维持等待信号s150不加电状态以作为对接收的零标准等待状态值的响应,而不管ACK信号s152的逻辑状态。因为核心逻辑112可以在单个时钟周期里访问内部存储器,所以并没有必要产生等待状态。
而在从0x00000ec8,0x00000ecc和0x00000ed0三个地址开始的内部读操作持续时间中,计数器继续计数。维持这样的活动是因为MEM0的输出驱动还需要时间释放系统总线,并且如果微处理单元110想访问外部存储器,它必须进入等待状态,直到计数器完成;即达到的计数值和数据流值s160相同。否则,总线争夺就会发生。
另一方面,如果同一外部存储器被访问,那么就没有必要进入等待状态。这在图5中有精确的情况描述。注意在事件B5处,连续读信号s110变为L0,表明了MEM0被再次访问。这引起ACK信号s152变为HI,立刻重置计数器(触发器202、204、206)为0。在随时间周期t2和t3后跟着从MEM0中地址为0x010001ea和0x01000258开始的两条读操作以及伴随着对应的标准等待状态。
概括图5带来的要点,可以理解当内部存储器访问跟随着从外部存储器的读操作,计数器依然被激活,但CPU没有进入等待状态。这将使后来的外部存储器访问成为可能,这时CPU被迫等待计数的完成以便系统总线可以被释放。然而,如果外部访问是对于同一外部存储器,那么计数立刻停止,提供没有等待状态的外部存储器访问。
参照图1、2和6,假设存储器130(MEM0)是一8位存储器,它的地址最高位等于“0x010”,并且存储器132(MEM1)是另一最高位地址为“0x011”的8位存储器。进一步假设外部选择逻辑140被编程为针对MEM0对应数据流等待状态数值为1,并且针对MEM1数据流等待状态数值为5。图6所示的时序图说明了一个对MEM1写操作的定时,其后面跟着从MEM0的读操作和从MEM1的读操作以及从MEM0的4个读操作。对MEM0读操作涉及到8位数据,因此每一I/O操作需要单个访问。对MEM1的写和读操作涉及32位字。但每个I/O操作是由4个8位存储访问组成。
在时间周期t1,MEM1被选中,由片选信号s102被加电所标识。四个写访问对位置0x01100040进行操作。可以理解,被选中的数据流s160是5。还应注意的是在周期t1’中的等待状态归因于标准等待状态的生成。
当在事件A6的写周期完成,MEM0中的地址0x01000270被选中,伴随着对应数据流s160改变为1。当MEM1重新被选中地址0x01100040时,读操作开始于B6,并且在C6处完成。计数器继续计数,使得触发器208变成L0,从而依次引起等待状态发生。因为数据流是1,计数器计数1,并且触发器208在D6处变为HI。在事件C6和D6之间的这一等待状态允许MEM0输出驱动释放系统总线120,以便后来的在事件D6处对MEM1的读出可继续进行而没有总线冲突的危险。因而在时间周期t2期间的等待状态归因于从读MEM0中来的数据流和在读MEM1期间到标准等待状态生成的数据流。
当MEM1在H6处被选中时,可以理解数据流s160又一次被设为数据流值为5。当在H6处完成读操作,计数器开始计数,这次计数到5。ACK信号s152对应于时间周期变成L0,表明MEM1释放了系统总线。一达到计数值5,ACK信号s152变为HI,并且对MEM0的读操作继续在位置0x0100274上进行(事件F6)。再次,时间周期t3中的等待状态由数据流等待状态和标准等待状态组成。在G6处发生对同一MEM0的后续读操作,也不需要在每一读操作后有数据流等待状态。而标准等待状态仍然生成。
从前面所讨论的图6中,可以理解数据流值s160的变化依赖于被访问的存储器。数据流值能在每一存储器设备基础上被用户选择。这允许在慢速存储器上使用长延迟,并且在快速存储器上使用短延迟,而不是必须使用对应最慢速存储器的单一、最坏情况下延迟。这种方法避免了在不同存储器件之间的总线冲突,而同时将涉及不同存储器的连续I/O操作延迟最小化。
本发明的数据流等待状态方法适用于具有多内部存储器类型的结构,每个存储器潜在地竞争对内部总线116的访问权,并且每个完成读周期后都具有不同的释放数据总线的时间要求。例如,图7展示了图1的一种变化,微处理器包括了内部存储器114A和114B两部分。可以理解图7所示的结构中的内部总线116和外部总线120所引起的总线冲突的潜在性相等。在前面所讨论图3-6中的原则很容易被本领域的普通技术人员应用于多内部存储结构中去,例如如图7中所示的结构。
Claims (13)
1、在具有第一存储器和第二存储器的计算设备中,第一和第二存储器连接在公共数据总线上,一种访问第一和第二存储器的方法,其特征在于,包括以下几步:
将第一等待状态值和第一存储器相关联;
将第二等待状态值和第二存储器相关联;
从所选的存储器之一读取数据;
当完成读步骤,置计算设备为等待状态,其等待时间周期与所选择的存储器相应的等待状态值成比例;并且
当在时间周期到期,对第一和第二存储器的另一个执行下一步I/O操作。
2、如权利要求1所述的方法,其特征在于,所述写入存储器之一的步骤先于读取步骤执行,而后紧接着读取步骤。
3、如权利要求1所述的方法,其特征在于,从所选存储器之一读取数据的步骤包括连续从那里读取多个数据。
4、如权利要求1所述的方法,其特征在于,置所述计算设备为等待状态的步骤包括选取与所选存储器相应的等待状态值,并且对一个数进行计数,直到等于该值。
5、如权利要求1所述的方法,其特征在于,所述第一和第二存储器是外部存储器。
6、如权利要求1所述的方法,其特征在于,所述第一和第二存储器是内部存储器。
7、如权利要求1所述的方法,其特征在于,所述第一和第二等待状态值是基于所述第一和第二存储器各自的输出电路的特性。
8、如权利要求7所述的方法,其特征在于,所述第一和第二等待状态值是进一步基于所述计算设备使用的时钟频率。
9、如权利要求7所述的方法,其特征在于,所述特性是指输出电路在读操作后,达到高阻抗状态所需的时间。
10、一种微处理设备,其特征在于,包括:
系统总线(120);
连接在系统总线上的逻辑电路(110、152),该逻辑电路至少具有第一内部存储器(114a)和第一信号(s108)的第一输出,第一信号在对外部存储器进行读操作期间具有第一逻辑状态,否则具有第二逻辑状态;
至少第一外部存储器(130)与系统总线相连接;
等待状态电路(160)具有和所述逻辑电路(110、152)相连接的第二信号(s150)的第二输出,由此所述逻辑电路响应于第二信号被加电,而进入等待状态;
外部总线控制电路(170)含有计数电路(202、204、206),比较电路(220),和与等待状态电路(160)相连的第三信号(s152)的第三输出,其特征在于,等待状态电路响应于第三信号的被加电和不加电,对第二信号加电和不加电;并且
数据装置(140、142)用来存储多个等待状态值,其中的一个所述等待状态值对应于所述第一外部存储器(130);
外部总线控制电路(170)作为第一信号(s108)状态的一个函数,对第三信号(s152)加电;
计数电路(202、204、206)响应于第一信号从第一逻辑状态转换到第二逻辑状态的改变开始计数序列;
比较电路(220)具有与数据装置(140、142)相连的第一输入,来接收所选的等待状态数值之一,并且连接第二输入用来接收从计数器输出的计数;
当比较电路的输入相等时,比较电路就不加电第三信号。
11、如权利要求10所述的微处理器,其特征在于,所述逻辑电路(110,152)生成存储地址(s140),并且数据装置(140、142)包括了用于响应于所生成的存储器地址而产生等待状态值之一的选择器(140)。
12、如权利要求10所述的微处理器,其特征在于,所述逻辑电路(110,152)包括了第四信号(s110)的第四输出,表明了对同一存储器的连续读操作,第四输出和外部总线控制电路(170)相连,外部总线控制电路作为第四信号的状态的一个函数,进一步对第三信号加电。
13、如权利要求10所述的计算设备,其特征在于,所述计算设备进一步包括用于将等待状态数有选择地载入到数据装置(140、142)中的编程装置(180)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/266,045 | 1999-03-10 | ||
US09/266,045 US6356987B1 (en) | 1999-03-10 | 1999-03-10 | Microprocessing device having programmable wait states |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1338076A true CN1338076A (zh) | 2002-02-27 |
CN1120430C CN1120430C (zh) | 2003-09-03 |
Family
ID=23012935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN99816463A Expired - Fee Related CN1120430C (zh) | 1999-03-10 | 1999-12-09 | 具有可编程等待状态的微处理设备 |
Country Status (12)
Country | Link |
---|---|
US (1) | US6356987B1 (zh) |
EP (1) | EP1163598B1 (zh) |
JP (1) | JP2002539527A (zh) |
KR (1) | KR100660448B1 (zh) |
CN (1) | CN1120430C (zh) |
CA (1) | CA2363085A1 (zh) |
DE (1) | DE69906156T2 (zh) |
HK (1) | HK1041073B (zh) |
MY (1) | MY133914A (zh) |
NO (1) | NO321931B1 (zh) |
TW (1) | TW518501B (zh) |
WO (1) | WO2000054165A1 (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6407949B1 (en) * | 1999-12-17 | 2002-06-18 | Qualcomm, Incorporated | Mobile communication device having integrated embedded flash and SRAM memory |
JP2002091905A (ja) * | 2000-09-20 | 2002-03-29 | Mitsubishi Electric Corp | 半導体装置およびアクセスウェイト数変更プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6662285B1 (en) * | 2001-01-09 | 2003-12-09 | Xilinx, Inc. | User configurable memory system having local and global memory blocks |
ITTO20010333A1 (it) * | 2001-04-06 | 2002-10-06 | St Microelectronics Srl | Dispositivo e metodo di gestione dei cicli di attesa durante la lettura di una memoria non volatile. |
US6605962B2 (en) | 2001-05-06 | 2003-08-12 | Altera Corporation | PLD architecture for flexible placement of IP function blocks |
US7076595B1 (en) * | 2001-05-18 | 2006-07-11 | Xilinx, Inc. | Programmable logic device including programmable interface core and central processing unit |
US6798239B2 (en) * | 2001-09-28 | 2004-09-28 | Xilinx, Inc. | Programmable gate array having interconnecting logic to support embedded fixed logic circuitry |
US7420392B2 (en) * | 2001-09-28 | 2008-09-02 | Xilinx, Inc. | Programmable gate array and embedded circuitry initialization and processing |
US6781407B2 (en) | 2002-01-09 | 2004-08-24 | Xilinx, Inc. | FPGA and embedded circuitry initialization and processing |
US6996758B1 (en) | 2001-11-16 | 2006-02-07 | Xilinx, Inc. | Apparatus for testing an interconnecting logic fabric |
US6983405B1 (en) | 2001-11-16 | 2006-01-03 | Xilinx, Inc., | Method and apparatus for testing circuitry embedded within a field programmable gate array |
US6886092B1 (en) | 2001-11-19 | 2005-04-26 | Xilinx, Inc. | Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion |
JP3510618B2 (ja) * | 2002-02-05 | 2004-03-29 | 沖電気工業株式会社 | バスブリッジ回路及びそのアクセス制御方法 |
US6820248B1 (en) | 2002-02-14 | 2004-11-16 | Xilinx, Inc. | Method and apparatus for routing interconnects to devices with dissimilar pitches |
US6976160B1 (en) | 2002-02-22 | 2005-12-13 | Xilinx, Inc. | Method and system for controlling default values of flip-flops in PGA/ASIC-based designs |
US6754882B1 (en) | 2002-02-22 | 2004-06-22 | Xilinx, Inc. | Method and system for creating a customized support package for an FPGA-based system-on-chip (SoC) |
US6934922B1 (en) | 2002-02-27 | 2005-08-23 | Xilinx, Inc. | Timing performance analysis |
US7007121B1 (en) | 2002-02-27 | 2006-02-28 | Xilinx, Inc. | Method and apparatus for synchronized buses |
US7111217B1 (en) | 2002-02-28 | 2006-09-19 | Xilinx, Inc. | Method and system for flexibly nesting JTAG TAP controllers for FPGA-based system-on-chip (SoC) |
US6839874B1 (en) | 2002-02-28 | 2005-01-04 | Xilinx, Inc. | Method and apparatus for testing an embedded device |
US7088767B1 (en) | 2002-03-01 | 2006-08-08 | Xilinx, Inc. | Method and apparatus for operating a transceiver in different data rates |
US7111220B1 (en) | 2002-03-01 | 2006-09-19 | Xilinx, Inc. | Network physical layer with embedded multi-standard CRC generator |
US7187709B1 (en) | 2002-03-01 | 2007-03-06 | Xilinx, Inc. | High speed configurable transceiver architecture |
US6961919B1 (en) | 2002-03-04 | 2005-11-01 | Xilinx, Inc. | Method of designing integrated circuit having both configurable and fixed logic circuitry |
US6973405B1 (en) | 2002-05-22 | 2005-12-06 | Xilinx, Inc. | Programmable interactive verification agent |
US6772405B1 (en) | 2002-06-13 | 2004-08-03 | Xilinx, Inc. | Insertable block tile for interconnecting to a device embedded in an integrated circuit |
US7085973B1 (en) | 2002-07-09 | 2006-08-01 | Xilinx, Inc. | Testing address lines of a memory controller |
US7099426B1 (en) | 2002-09-03 | 2006-08-29 | Xilinx, Inc. | Flexible channel bonding and clock correction operations on a multi-block data path |
US7092865B1 (en) | 2002-09-10 | 2006-08-15 | Xilinx, Inc. | Method and apparatus for timing modeling |
US7421014B2 (en) * | 2003-09-11 | 2008-09-02 | Xilinx, Inc. | Channel bonding of a plurality of multi-gigabit transceivers |
KR20070122227A (ko) | 2005-03-30 | 2007-12-28 | 아트멜 코포레이션 | 시간 데이터 플로팅 딜레이 및 외부 메모리 기록 동안시스템 비활성을 감소시키는 방법 및 장치 |
US7269704B2 (en) * | 2005-03-30 | 2007-09-11 | Atmel Corporation | Method and apparatus for reducing system inactivity during time data float delay and external memory write |
US7405949B2 (en) * | 2005-12-09 | 2008-07-29 | Samsung Electronics Co., Ltd. | Memory system having point-to-point (PTP) and point-to-two-point (PTTP) links between devices |
KR101131919B1 (ko) * | 2005-12-09 | 2012-04-03 | 삼성전자주식회사 | 메모리 시스템 및 이 시스템의 신호 송수신 방법 |
US9405720B2 (en) * | 2013-03-15 | 2016-08-02 | Atmel Corporation | Managing wait states for memory access |
JP6326671B2 (ja) * | 2013-10-03 | 2018-05-23 | 株式会社エルイーテック | プロセッサへのwait挿入 |
JP2021047967A (ja) * | 2019-09-20 | 2021-03-25 | キオクシア株式会社 | 半導体デバイス |
FR3111439B1 (fr) | 2020-06-12 | 2023-06-30 | St Microelectronics Rousset | Procédé de gestion des requêtes d’accès à une mémoire vive et système correspondant |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02235156A (ja) | 1989-03-08 | 1990-09-18 | Canon Inc | 情報処理装置 |
JPH03210649A (ja) | 1990-01-12 | 1991-09-13 | Fujitsu Ltd | マイクロコンピュータおよびそのバスサイクル制御方法 |
US5313621A (en) | 1990-05-18 | 1994-05-17 | Zilog, Inc. | Programmable wait states generator for a microprocessor and computer system utilizing it |
EP0660329B1 (en) * | 1993-12-16 | 2003-04-09 | Mosaid Technologies Incorporated | Variable latency, output buffer and synchronizer for synchronous memory |
US5732250A (en) | 1994-09-15 | 1998-03-24 | Intel Corporation | Multi-function microprocessor wait state mechanism using external control line |
JPH08147161A (ja) | 1994-11-21 | 1996-06-07 | Nec Corp | データ処理装置 |
US6023776A (en) * | 1996-03-22 | 2000-02-08 | Matsushita Electric Industrial Co., Ltd. | Central processing unit having a register which store values to vary wait cycles |
US5854944A (en) * | 1996-05-09 | 1998-12-29 | Motorola, Inc. | Method and apparatus for determining wait states on a per cycle basis in a data processing system |
-
1999
- 1999-03-10 US US09/266,045 patent/US6356987B1/en not_active Expired - Lifetime
- 1999-12-09 CN CN99816463A patent/CN1120430C/zh not_active Expired - Fee Related
- 1999-12-09 EP EP99964203A patent/EP1163598B1/en not_active Expired - Lifetime
- 1999-12-09 CA CA002363085A patent/CA2363085A1/en not_active Abandoned
- 1999-12-09 DE DE69906156T patent/DE69906156T2/de not_active Expired - Lifetime
- 1999-12-09 WO PCT/US1999/029321 patent/WO2000054165A1/en active IP Right Grant
- 1999-12-09 JP JP2000604322A patent/JP2002539527A/ja not_active Ceased
- 1999-12-09 KR KR1020017011334A patent/KR100660448B1/ko not_active IP Right Cessation
- 1999-12-23 MY MYPI99005708A patent/MY133914A/en unknown
- 1999-12-30 TW TW088123306A patent/TW518501B/zh not_active IP Right Cessation
-
2001
- 2001-08-31 NO NO20014246A patent/NO321931B1/no not_active IP Right Cessation
-
2002
- 2002-04-17 HK HK02102907.6A patent/HK1041073B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1163598B1 (en) | 2003-03-19 |
DE69906156T2 (de) | 2003-11-27 |
EP1163598A1 (en) | 2001-12-19 |
MY133914A (en) | 2007-11-30 |
NO20014246D0 (no) | 2001-08-31 |
US6356987B1 (en) | 2002-03-12 |
NO321931B1 (no) | 2006-07-24 |
KR100660448B1 (ko) | 2006-12-22 |
KR20010104721A (ko) | 2001-11-26 |
JP2002539527A (ja) | 2002-11-19 |
TW518501B (en) | 2003-01-21 |
HK1041073A1 (en) | 2002-06-28 |
NO20014246L (no) | 2001-08-31 |
DE69906156D1 (de) | 2003-04-24 |
CN1120430C (zh) | 2003-09-03 |
WO2000054165A1 (en) | 2000-09-14 |
HK1041073B (zh) | 2004-05-14 |
CA2363085A1 (en) | 2000-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1338076A (zh) | 具有可编程等待状态的微处理设备 | |
CA1059643A (en) | Circuit for implementing a modified lru replacement algorithm for a cache | |
JP6029923B2 (ja) | Nand型フラッシュメモリの読み込み方法及び装置 | |
CN1199116C (zh) | 串/并接口逻辑电路以及使用该逻辑电路的微控制器系统 | |
EP0587865B1 (en) | Sharing of bus access among multiple state machines with minimal wait time and prioritization of like cycle types | |
US7617383B2 (en) | Circular register arrays of a computer | |
US7171526B2 (en) | Memory controller useable in a data processing system | |
US6700809B1 (en) | Entry relocation in a content addressable memory device | |
US20130073491A1 (en) | Apparatus and methods for synaptic update in a pulse-coded network | |
US20130073499A1 (en) | Apparatus and method for partial evaluation of synaptic updates based on system events | |
CN108268382A (zh) | 两级存储器全行写入 | |
WO2007062256A2 (en) | Microcontroller based flash memory digital controller system | |
CN1302393C (zh) | 高速缓冲存储器系统和控制高速缓冲存储器系统的方法 | |
CN1308841C (zh) | 进行循环和锁存高速缓冲存储器替换方案的方法和设备 | |
JP2010501915A (ja) | メモリ用モジュールコマンド構造およびメモリシステム | |
JPH08227377A (ja) | 異なったサイクルで異なる速度のメモリデバイスにアクセスできるメモリ制御器 | |
JP2762138B2 (ja) | メモリコントロールユニット | |
US6501700B2 (en) | Internal addressing structure of a semiconductor memory | |
CN100357870C (zh) | 对挂接在片外单总线上的多种存储器进行访问的方法 | |
CN1017837B (zh) | 具有单比特置位和复位功能的主存储器插板 | |
CN101334707A (zh) | 与主机并行工作的智能固态海量存储器 | |
US7158442B1 (en) | Flexible latency in flash memory | |
CN101160566A (zh) | Ram控制设备和使用该设备的存储设备 | |
US6175518B1 (en) | Remote register hierarchy accessible using a serial data line | |
CN101034304A (zh) | 电池管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
C10 | Entry into substantive examination | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP03 | Change of name, title or address |
Address after: American California Patentee after: Atmel Corp. Address before: American California Patentee before: Atmel Corporation |
|
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20030903 Termination date: 20131209 |