计算机系统转让专利
申请号 : CN200580041039.7
文献号 : CN101069165B
文献日 : 2010-05-05
发明人 : 冈本和树 , 铃木智浩
申请人 : 雅马哈株式会社
摘要 :
一种计算机系统包括:存储器;外围设备,其被分配有与分配给存储器的地址空间的一部分重叠的地址;CPU,用于当访问上述之一时根据访问目的的地址来发送信号;以及总线,其将CPU和所述外围设备连接起来。提供开关以在CPU和所述存储器之间通过总线进行连接和断开。而且,所述外围设备具有:接口单元,用于接收从CPU发送到总线的信号并且识别由所述信号指示的地址;以及解码单元,如果由所述接口单元识别的地址是外围设备的地址,则所述解码单元断开所述开关。
权利要求 :
1.一种计算机系统,包括:
CPU;
存储器;
外围设备,其被分配有地址,所述地址与分配给所述存储器的地址空间的一部分重叠;以及总线,其将所述CPU和所述外围设备连接起来,其中,所述总线具有用于对所述CPU和所述存储器之间的连接和断开进行切换的开关;
其中,在所述CPU访问所述存储器或所述外围设备的情况下,所述CPU把与访问目的的行地址相对应的信号发送到所述总线,然后,在从与所述行地址相对应的信号的发送时间开始的预定时钟间隔之后,所述CPU把与访问目的的列地址相对应的信号发送到所述总线;以及其中,所述外围设备包括:
接口部分,其从所述CPU接收发送到所述总线的信号并且指定由所述信号指示的行地址;以及解码部分,当由所述接口部分指定的行地址是分配给所述外围设备的行地址时,所述解码部分控制所述开关断开所述存储器和所述CPU之间的连接。
2.如权利要求1所述的计算机系统,其中所述总线包括用于传送数据的数据总线和用于传送代表访问内容的命令的命令总线;并且其中,在所述数据总线上提供所述开关。
说明书 :
技术领域
本发明涉及控制通过总线连接到CPU的存储器和外围设备与CPU之间的数据传送的技术。
背景技术
为了提高包含CPU(中央处理器)、存储器等的计算机系统的吞吐量,例如,在构成存储器特别是DRAM(动态随机存取存储器)的半导体存储器件的高集成度和高速方面进行改进。作为改进的例子,可提供这样的示例,即,存储器应该由同步于从时钟发生器提供给CPU的时钟(以下称作“系统时钟”)工作的SDRAM(同步DRAM)构成。而且,已经提出了与对SDRAM的结构进行的改进相关的各种技术及其利用方法,并且在专利文献1中公开的技术可被引作例子。在该专利文献1中,公开了这样的SDRAM,其可混用具有不同可能结构的存储模块和包括这样的存储模块的存储系统。
专利文献1:JP-A-2002-132580
专利文献1:JP-A-2002-132580
发明内容
可通过以上述SDRAM构成存储器来提高CPU和存储器之间的数据传送速率。然而,在实际的计算机系统中,在某些情况下,除了存储器之外,具有专用于特定处理(例如,图像处理、语音处理等)的逻辑电路的外部设备(也被称作“外围设备”)也与CPU连接。一般情况是这样的外围设备通过比存储器所连接的存储总线速度慢的外部总线连接到CPU。因此,外围设备和CPU之间的数据传送速率导致了瓶颈,并且在某些情况下不能提高整个计算机系统的吞吐量。
似乎可通过把外围设备连接到比外部总线速度高的存储总线来避免这样的缺点。具体的讲,看起来可通过在存储总线上提供解码器以通过该解码器来把外围设备连接到存储器,其后由该解码器响应于从CPU发送的地址切换连同该地址从CPU发送的命令(例如,指示读取对应于地址的数据的命令)的传送地址,从而避免这样的缺点。应该执行这样的命令传送控制的原因在于,当把该命令传送到存储器和外围设备二者时,从存储器和外围设备二者都读取数据,并且导致存储总线上的数据冲突。
同时,从CPU发出的命令必须在一个时钟周期之内被传送到存储器或外围设备。即,解码器必须在一个时钟周期(例如,当存储器由其操作时钟为133MHz的SDRAM构成时为7.5纳秒)之内解码地址,其后把地址和命令传送到存储器或外围设备。然而,这种高速设备现在还不存在,因此不能在存储总线上提供上述解码器。
根据上述问题来进行本发明,并且本发明的目的在于提供这样的技术,从而在外围设备连接到已与存储器连接的总线之后,处理从外围设备读取的数据和从存储器读取的数据之间的冲突。
为了解决上述问题,根据本发明的计算机系统包括:CPU;存储器;外围设备,其被分配有与分配给存储器的地址空间的一部分重叠的地址;以及总线,其将CPU和所述外围设备连接起来.总线具有用于对CPU和所述存储器之间的连接和断开进行切换的开关.当CPU访问存储器或所述外围设备时,CPU把指示访问目的地址的信号发送到总线.所述外围设备包括:接口部分,其从CPU接收发送到总线的信号并且指定由所述信号指示的地址;以及解码部分,当由所述接口部分指定的地址是分配给自有设备(外围设备)的地址时,所述解码部分控制所述开关断开存储器和CPU之间的连接.
根据这样的计算机系统,当外围设备从CPU接收到关于访问目的是其自有设备的信号时,该设备关闭所述开关。因此,存储器可从CPU断开连接,因此CPU和存储器之间的数据传送停止。在此,当总线包含命令总线和数据总线时,可仅对数据总线提供开关。即使在此情况下,也可通过控制开关的通/断来切断CPU和存储器之间的数据传送。
根据本发明,可实现这样的优点,即,即使在外围设备连接到已与存储器连接的总线之后,也可避免总线上出现从外围设备读取的数据和从存储器读取的数据之间的冲突。因此,外围设备可与速度高于外部总线的存储总线相连接,并且可改善CPU和外围设备之间的数据传送速率。
似乎可通过把外围设备连接到比外部总线速度高的存储总线来避免这样的缺点。具体的讲,看起来可通过在存储总线上提供解码器以通过该解码器来把外围设备连接到存储器,其后由该解码器响应于从CPU发送的地址切换连同该地址从CPU发送的命令(例如,指示读取对应于地址的数据的命令)的传送地址,从而避免这样的缺点。应该执行这样的命令传送控制的原因在于,当把该命令传送到存储器和外围设备二者时,从存储器和外围设备二者都读取数据,并且导致存储总线上的数据冲突。
同时,从CPU发出的命令必须在一个时钟周期之内被传送到存储器或外围设备。即,解码器必须在一个时钟周期(例如,当存储器由其操作时钟为133MHz的SDRAM构成时为7.5纳秒)之内解码地址,其后把地址和命令传送到存储器或外围设备。然而,这种高速设备现在还不存在,因此不能在存储总线上提供上述解码器。
根据上述问题来进行本发明,并且本发明的目的在于提供这样的技术,从而在外围设备连接到已与存储器连接的总线之后,处理从外围设备读取的数据和从存储器读取的数据之间的冲突。
为了解决上述问题,根据本发明的计算机系统包括:CPU;存储器;外围设备,其被分配有与分配给存储器的地址空间的一部分重叠的地址;以及总线,其将CPU和所述外围设备连接起来.总线具有用于对CPU和所述存储器之间的连接和断开进行切换的开关.当CPU访问存储器或所述外围设备时,CPU把指示访问目的地址的信号发送到总线.所述外围设备包括:接口部分,其从CPU接收发送到总线的信号并且指定由所述信号指示的地址;以及解码部分,当由所述接口部分指定的地址是分配给自有设备(外围设备)的地址时,所述解码部分控制所述开关断开存储器和CPU之间的连接.
根据这样的计算机系统,当外围设备从CPU接收到关于访问目的是其自有设备的信号时,该设备关闭所述开关。因此,存储器可从CPU断开连接,因此CPU和存储器之间的数据传送停止。在此,当总线包含命令总线和数据总线时,可仅对数据总线提供开关。即使在此情况下,也可通过控制开关的通/断来切断CPU和存储器之间的数据传送。
根据本发明,可实现这样的优点,即,即使在外围设备连接到已与存储器连接的总线之后,也可避免总线上出现从外围设备读取的数据和从存储器读取的数据之间的冲突。因此,外围设备可与速度高于外部总线的存储总线相连接,并且可改善CPU和外围设备之间的数据传送速率。
附图说明
图1是示出根据本发明实施例的计算机系统10的构造示例的框图。
图2是表示当从存储器100读取数据时作为计算机系统10的组成要素应用的顺序的时序图。
图3是示出分配给存储器100的各个存储器区域的存储地址与行地址和列地址之间的关系的示例的示图。
图4是说明分配给存储器100的地址空间和分配给外围设备300的地址之间的关系的示图。
图5是示出外围设备300的解码部分330执行的开关控制操作的流程的流程图。
10计算机系统
100存储器
200CPU
210控制器部分
300外围设备
310接口部分
320逻辑电路
330解码部分
400总线
400a命令总线
400b数据总线
410开关
图2是表示当从存储器100读取数据时作为计算机系统10的组成要素应用的顺序的时序图。
图3是示出分配给存储器100的各个存储器区域的存储地址与行地址和列地址之间的关系的示例的示图。
图4是说明分配给存储器100的地址空间和分配给外围设备300的地址之间的关系的示图。
图5是示出外围设备300的解码部分330执行的开关控制操作的流程的流程图。
10计算机系统
100存储器
200CPU
210控制器部分
300外围设备
310接口部分
320逻辑电路
330解码部分
400总线
400a命令总线
400b数据总线
410开关
具体实施方式
以下将参照附图来说明用于执行本发明的最佳模式。
【结构】
图1是示出根据本发明实施例的计算机系统10的结构示例的框图。如图1所示,该计算机系统10包括存储器100、CPU 200、外围设备300、和用于在这些组成元件之间传送数据和命令的总线400。
例如,总线400是与系统时钟同步工作的存储总线。如图1所示,总线400包含命令总线400a和数据总线400b。在此,命令总线400a是用于传送指示访问对象的地址和表示存储器100或外围设备300和CPU 200之间的访问内容的命令的总线。而且,数据总线400b是用于发送作为存储器100或外围设备300和CPU 200之间的命令的处理对象的命令或数据的处理结果的总线。
如图1所示,在根据本实施例的计算机系统10中,命令总线400a和数据总线400b二者均具有从CPU 200延伸到存储器100的第一路由和从CPU 200延伸到外围设备300的第二路由这两个路由。而且,在从第一路由和第二路由的支路到存储器100的范围内为数据总线400提供开关410。在根据本实施例的计算机系统10中,虽然以下将描述细节,但是可通过断开开关410来切断通过数据总线400b在存储器100和CPU 200之间执行数据传送。
例如,存储器100是工作时钟为133MHz且CAS延迟(CAS延迟:在存储器接收到数据读命令之后开始发送有关数据时所需的时钟数)为2的SDRAM,并且存储器100具有多个分别分配有各自的地址(以下也被称作“存储地址”)的存储区域。在本实施例中,从“0xA000_0000”到“0xA1FF_FFFF”的任一个被分配给各个存储区域作为存储地址(其中,前缀“0x”代表后续的值是十六进制数字)。以下,分配给存储器100的各个存储区域的一组存储地址也被称作“地址空间”。在本实施例中,以下将说明由工作时钟为133MHz且CAS延迟为2的SDRAM构成的存储器100的情况。但是,存储器100当然可由具有不同性能的SDRAM(例如,工作时钟为100MHz的SDRAM或CAS延迟为3的SDRAM)构成。
如图1所示,CPU 200包含控制器部分210,并且控制器部分210与总线400相连接。提供该控制器部分210来通过总线400把数据写入存储器100或从存储器100读取数据,并且把代表作为访问对象的数据的地址或与访问内容对应的命令的信号发送到命令总线400a。CPU 200可通过适当地操作控制器部分210来访问存储器100的各个存储区域。而且,虽然以下将描述细节,但是CPU 200可通过适当地操作控制器部分210来访问外围设备300。
例如,当存储在存储器100中的数据将被读取时,CPU 200在图2的定时发送下述信号。即,首先,CPU 200把代表激活命令(在图2中以“Act”表示)或行地址(在图2中以“ROW”)的信号发送到命令总线400a。其后,CPU 200在响应于控制器部分210的规范的时钟间隔(例如,2个时钟周期)空闲,之后把代表读命令(在图2中表示为“READ”)或列地址(图2中表示为“COL”)的信号发送到命令总线400a。在图2中,CLK代表从时钟发生器提供的系统时钟。
图2中的行地址和列地址是用于在构成存储器100的存储元件(由一个晶体管和一个电容器构成的存储元件)级别指定存储器100的存储区域的地址.当进行更详细的说明时,存储器100包含多条字线、多条位线、和在这些字线和这些位线之间的位置对应交叉点布置的多个存储元件.通过对行地址进行定址来指定字线,并通过对列地址进行定址来指定位线.即,在通过对行地址和列地址进行定址来指定在字线和位线之间的交叉点布置的存储元件.在根据本实施例的计算机系统10中,图3中示出了行地址和列地址与存储地址之间的关系.更具体地说,从第11位到第0位的行地址与从第24位到第13位的12位存储地址相对应,并且从第8位到第3位的列地址与从第12位到第7位的6位存储地址相对应.在本实施例中,以下将说明行地址和列地址与存储地址具有如图3所示的相互关系的情况.响应于SDRAM的存储容量和CPU 200中的控制器部分210的规范来确定行地址和列地址与存储地址之间的相互关系,并且所述相互关系不限于图3所示的相互关系。
图2中的激活命令是指示由与该激活命令一起发送的行地址所指定的字线应该被选择的命令。图2中的读命令是这样的命令,其指示由与该读命令一起发送的列地址所指定的字线应该被选择,从而读取与在预先选择的字线和位线之间的交叉点相对应的存储元件中保持的数据。如图2所示,当存储器100顺序接收到激活命令和读命令时,存储器100在响应于存储器100的CAS延迟的定时把存储元件中保持的数据发到数据总线400b,所述数据由与激活命令一起接收到的行地址和与读命令一起接收到的列地址所指定。以此方式,当CPU 200从存储器100接收到发送到数据总线400b的数据时,该CPU200读取存储在存储器100中的数据。
例如,图1所示的外围设备300是FPGA(现场可编程门阵列),并且具有接口部分310、逻辑电路320、和解码部分330。在本实施例中,如图4所示,一部分与分配给存储器100中的存储区域的地址空间相重叠的地址被分配给外围设备300。具体地讲,如图4所示,从“0xA1FF_E000”到“0xA1FF_FFFF”的地址范围被分配给外围设备300。在本实施例中,被双重分配的地址不被用作表示存储器100的存储区域的地址,而被用作表示外围设备300的存储区域的地址。即,存储器100不能利用全部存储区域中分配有与分配给外围设备300的地址重叠的存储地址的存储区域。然而,这样的存储区域仅占用存储器100全部存储区域的百分之几,不会导致特别的问题。
例如,接口部分310是SDRAM接口,并且连接到总线400。接口部分310通过总线400接收到从CPU 200提供的信号,其后,把由该信号代表的地址(即,行地址或列地址)或命令发送到逻辑电路320或解码部分330。逻辑电路320是执行预先编程的处理(例如,图像处理、语音处理等)的电子电路,并且响应于从接口部分310传送的地址或命令执行处理。而且,如图1所示,解码部分330通过信号线连接到开关410,并且响应于从接口部分310传送的行地址的值控制开关410的通/断。以下将详细说明解码部分330执行的开关控制操作。
【操作】
图5是示出了解码部分330执行的开关控制操作的流程的流程图。如图5所示,解码部分330从接口部分310接收激活命令和行地址(步骤SA1)。其后,解码部分330根据行地址的值确定CPU 200的访问目的是否对应于其自有设备(即,外围设备300)(步骤SA2)。当详细说明时,在本实施例中,从“0xA1FF_E000”到“0xA1FF_FFFF”的地址被分配给外围设备300(见图4)。而且,在分配给外围设备300的地址与存储地址和行地址之间存在图3所示的关系。因此,与分配给外围设备300的地址相对应的从第11位到第0位的行地址被设置为1。即,当从CPU 200发送的行地址的第11位到第0位全部为1(即,1111_1111_1111)时,CPU 200的访问目的是外围设备300,而当行地址的第11位到第0位不同于上述位模式时,CPU 200的访问目的是存储器100的存储区域。在本实施例中,CPU 200通过利用该事件使解码部分330确定CPU 200的访问目的。换言之,解码部分330确定当从接口部分310传送的行地址的第11位到第0位全部为1时CPU 200的访问目的是其自有设备,并且确定当行地址模式不同于上述模式时CPU 200的访问目的是存储器100。
其后,当步骤2中的确定结果为“是”(即,解码部分330确定访问目的是自有设备)时,解码部分330输出控制信号以断开开关410(步骤SA3)。因此,开关410断开,并且存储器100和CPU 200之间的数据传送被切断。
本实施例显而易见的一点在于,解码部分330响应于行地址的值不切换命令的传送目的,而响应于行地址的值控制开关410的通/断以停止存储器100和CPU 200之间的数据传送。
更具体地讲,在根据本实施例的计算机系统10中,从CPU 200发送的激活命令和行地址和真实命令以及列地址被传送到存储器100和外围设备300二者,其后这两个设备试图分别发送相关数据。然而,当发出对外围设备300的访问时,直到开始从存储器100发送数据才断开开关410,因此存储器100和CPU 200之间的数据传送停止。因此,可避免前述数据冲突。
如上所述,不能响应于行地址的值来切换命令的传送目的。然而,如同根据本实施例的计算机系统10,当采用这样的模式,即,响应于行地址的值来进行开关410的通/断控制来停止存储器100和CPU 200之间的数据传送时,开关410可在存储器100接收到行地址之后存储器100开始发送数据时所需的时间(本实施例中为4个时钟周期)内断开。因此,可在实际使用时充分实现这样的情况。在本实施例中,说明CPU 200从外围设备300读取数据的情况。在把数据写入外围设备300的情况下(即,在CPU 200发出写命令而非读命令的情况下),解码部分300可响应于在写命令之前发送的行地址的值执行开关410的通/断控制。
如上所述,在根据本实施例的计算机系统10中,即使在外围设备300连接到总线400之后,从存储器100发送到CPU 200的数据和从外围设备300发送到CPU 200的数据之间的冲突可被避免。因此,外围设备300可连接到速度比外部总线高的存储总线,并且可改善CPU200和外围设备300之间的数据传送速率。
【变形】
如上所述说明了本发明的一个实施例。但是以下描述的变形当然可应用于这样的实施例。
(1)在上述实施例中,说明了CPU使解码部分330响应于行地址的值来控制开关410的通断的情况。仅通过使用行地址的值来控制开关410的通/断的原因在于,当在存储器100由CAS延迟为2的SDRAM构造的情况下以列地址的值以及行地址的值来控制开关410的通/断时,在开关410断开之前开始从存储器100的数据传送,从而导致数据冲突。
然而,例如,当存储器100由CAS延迟较长的SDRAM(即,在SDRAM接收到读命令和列地址之后需要一段长时间来开始相关数据的输出的SDRAM)构成时,可通过把列地址和访问内容(即,连同列地址一起从CPU 200发出的命令)相加来控制开关410的通/断。例如,可在对外围设备300的访问内容为数据读取(即,发送读命令)时可使开关410保持断开,并且当访问内容是数据写入(即,发送写命令)时可使开关410保持导通。以下将给出原因。即,如果开关410未断开,从而在发送写命令时存储器100未与CPU 200分离,则从CPU 200馈送的数据被写入存储器100和外围设备300二者。即使以此方式把数据写入存储器100和外围设备300,在总线400上也不会引起上述数据冲突,并且不会导致特别的问题。
(2)在上述实施例中,说明了这样的情况,即,在数据总线400b的第一路由上提供开关410,其后当对外围设备300的访问已经发出时通过断开开关410来停止通过总线400b在存储器100和CPU 200之间的数据传送,从而避免上述数据冲突。然而,可为命令总线400a和数据总线400b二者均提供这样的开关410来彻底使存储器100和CPU 200断开。在此情况下,在当切断开关410之后经过预定时间时需要再次接通开关410的操作、解除存储器100的激活状态(响应于行地址选择数据线的状态)的操作等。执行这样的处理的原因在于,必须处理在对外围设备300的访问之后发出对存储器100的访问的情况。
(3)在上述实施例中,说明由SDRAM构成存储器100的情况。但是,如果在这样的存储器进入到其激活状态之后需要预定时间来开始发送相关数据,则可采用任一存储器。
(4)在上述实施例中,说明为用于在CPU 200和存储器100之间传送数据的总线400提供一个支路并且一个外围设备连接到其的情况。然而,连接到总线400的支路的外围设备的数量不限于一个,并且当然可连接多个外围设备。在此情况下,不用说必须把对应于各自的行地址的地址分配给各个外围设备。
以下参照具体实施例来说明本发明。但是,对本领域技术人员来说明显的是,在不脱离本发明的精神和范围的情况下可应用各种变形和改进。
该申请基于2004年11月30日提交的日本专利申请(第2004-347312号专利申请);其内容以引用的方式并入本文。
工业实用性
根据本发明,可实现这样的优点,即,即使外围设备连接到已经与存储器连接的总线,也可避免在总线上从外围设备读取的数据和从存储器读取的数据之间的冲突。因此,外围设备可连接到速度高于外部总线的存储总线,并且CPU和外围设备之间的数据传送速率可被改善。
【结构】
图1是示出根据本发明实施例的计算机系统10的结构示例的框图。如图1所示,该计算机系统10包括存储器100、CPU 200、外围设备300、和用于在这些组成元件之间传送数据和命令的总线400。
例如,总线400是与系统时钟同步工作的存储总线。如图1所示,总线400包含命令总线400a和数据总线400b。在此,命令总线400a是用于传送指示访问对象的地址和表示存储器100或外围设备300和CPU 200之间的访问内容的命令的总线。而且,数据总线400b是用于发送作为存储器100或外围设备300和CPU 200之间的命令的处理对象的命令或数据的处理结果的总线。
如图1所示,在根据本实施例的计算机系统10中,命令总线400a和数据总线400b二者均具有从CPU 200延伸到存储器100的第一路由和从CPU 200延伸到外围设备300的第二路由这两个路由。而且,在从第一路由和第二路由的支路到存储器100的范围内为数据总线400提供开关410。在根据本实施例的计算机系统10中,虽然以下将描述细节,但是可通过断开开关410来切断通过数据总线400b在存储器100和CPU 200之间执行数据传送。
例如,存储器100是工作时钟为133MHz且CAS延迟(CAS延迟:在存储器接收到数据读命令之后开始发送有关数据时所需的时钟数)为2的SDRAM,并且存储器100具有多个分别分配有各自的地址(以下也被称作“存储地址”)的存储区域。在本实施例中,从“0xA000_0000”到“0xA1FF_FFFF”的任一个被分配给各个存储区域作为存储地址(其中,前缀“0x”代表后续的值是十六进制数字)。以下,分配给存储器100的各个存储区域的一组存储地址也被称作“地址空间”。在本实施例中,以下将说明由工作时钟为133MHz且CAS延迟为2的SDRAM构成的存储器100的情况。但是,存储器100当然可由具有不同性能的SDRAM(例如,工作时钟为100MHz的SDRAM或CAS延迟为3的SDRAM)构成。
如图1所示,CPU 200包含控制器部分210,并且控制器部分210与总线400相连接。提供该控制器部分210来通过总线400把数据写入存储器100或从存储器100读取数据,并且把代表作为访问对象的数据的地址或与访问内容对应的命令的信号发送到命令总线400a。CPU 200可通过适当地操作控制器部分210来访问存储器100的各个存储区域。而且,虽然以下将描述细节,但是CPU 200可通过适当地操作控制器部分210来访问外围设备300。
例如,当存储在存储器100中的数据将被读取时,CPU 200在图2的定时发送下述信号。即,首先,CPU 200把代表激活命令(在图2中以“Act”表示)或行地址(在图2中以“ROW”)的信号发送到命令总线400a。其后,CPU 200在响应于控制器部分210的规范的时钟间隔(例如,2个时钟周期)空闲,之后把代表读命令(在图2中表示为“READ”)或列地址(图2中表示为“COL”)的信号发送到命令总线400a。在图2中,CLK代表从时钟发生器提供的系统时钟。
图2中的行地址和列地址是用于在构成存储器100的存储元件(由一个晶体管和一个电容器构成的存储元件)级别指定存储器100的存储区域的地址.当进行更详细的说明时,存储器100包含多条字线、多条位线、和在这些字线和这些位线之间的位置对应交叉点布置的多个存储元件.通过对行地址进行定址来指定字线,并通过对列地址进行定址来指定位线.即,在通过对行地址和列地址进行定址来指定在字线和位线之间的交叉点布置的存储元件.在根据本实施例的计算机系统10中,图3中示出了行地址和列地址与存储地址之间的关系.更具体地说,从第11位到第0位的行地址与从第24位到第13位的12位存储地址相对应,并且从第8位到第3位的列地址与从第12位到第7位的6位存储地址相对应.在本实施例中,以下将说明行地址和列地址与存储地址具有如图3所示的相互关系的情况.响应于SDRAM的存储容量和CPU 200中的控制器部分210的规范来确定行地址和列地址与存储地址之间的相互关系,并且所述相互关系不限于图3所示的相互关系。
图2中的激活命令是指示由与该激活命令一起发送的行地址所指定的字线应该被选择的命令。图2中的读命令是这样的命令,其指示由与该读命令一起发送的列地址所指定的字线应该被选择,从而读取与在预先选择的字线和位线之间的交叉点相对应的存储元件中保持的数据。如图2所示,当存储器100顺序接收到激活命令和读命令时,存储器100在响应于存储器100的CAS延迟的定时把存储元件中保持的数据发到数据总线400b,所述数据由与激活命令一起接收到的行地址和与读命令一起接收到的列地址所指定。以此方式,当CPU 200从存储器100接收到发送到数据总线400b的数据时,该CPU200读取存储在存储器100中的数据。
例如,图1所示的外围设备300是FPGA(现场可编程门阵列),并且具有接口部分310、逻辑电路320、和解码部分330。在本实施例中,如图4所示,一部分与分配给存储器100中的存储区域的地址空间相重叠的地址被分配给外围设备300。具体地讲,如图4所示,从“0xA1FF_E000”到“0xA1FF_FFFF”的地址范围被分配给外围设备300。在本实施例中,被双重分配的地址不被用作表示存储器100的存储区域的地址,而被用作表示外围设备300的存储区域的地址。即,存储器100不能利用全部存储区域中分配有与分配给外围设备300的地址重叠的存储地址的存储区域。然而,这样的存储区域仅占用存储器100全部存储区域的百分之几,不会导致特别的问题。
例如,接口部分310是SDRAM接口,并且连接到总线400。接口部分310通过总线400接收到从CPU 200提供的信号,其后,把由该信号代表的地址(即,行地址或列地址)或命令发送到逻辑电路320或解码部分330。逻辑电路320是执行预先编程的处理(例如,图像处理、语音处理等)的电子电路,并且响应于从接口部分310传送的地址或命令执行处理。而且,如图1所示,解码部分330通过信号线连接到开关410,并且响应于从接口部分310传送的行地址的值控制开关410的通/断。以下将详细说明解码部分330执行的开关控制操作。
【操作】
图5是示出了解码部分330执行的开关控制操作的流程的流程图。如图5所示,解码部分330从接口部分310接收激活命令和行地址(步骤SA1)。其后,解码部分330根据行地址的值确定CPU 200的访问目的是否对应于其自有设备(即,外围设备300)(步骤SA2)。当详细说明时,在本实施例中,从“0xA1FF_E000”到“0xA1FF_FFFF”的地址被分配给外围设备300(见图4)。而且,在分配给外围设备300的地址与存储地址和行地址之间存在图3所示的关系。因此,与分配给外围设备300的地址相对应的从第11位到第0位的行地址被设置为1。即,当从CPU 200发送的行地址的第11位到第0位全部为1(即,1111_1111_1111)时,CPU 200的访问目的是外围设备300,而当行地址的第11位到第0位不同于上述位模式时,CPU 200的访问目的是存储器100的存储区域。在本实施例中,CPU 200通过利用该事件使解码部分330确定CPU 200的访问目的。换言之,解码部分330确定当从接口部分310传送的行地址的第11位到第0位全部为1时CPU 200的访问目的是其自有设备,并且确定当行地址模式不同于上述模式时CPU 200的访问目的是存储器100。
其后,当步骤2中的确定结果为“是”(即,解码部分330确定访问目的是自有设备)时,解码部分330输出控制信号以断开开关410(步骤SA3)。因此,开关410断开,并且存储器100和CPU 200之间的数据传送被切断。
本实施例显而易见的一点在于,解码部分330响应于行地址的值不切换命令的传送目的,而响应于行地址的值控制开关410的通/断以停止存储器100和CPU 200之间的数据传送。
更具体地讲,在根据本实施例的计算机系统10中,从CPU 200发送的激活命令和行地址和真实命令以及列地址被传送到存储器100和外围设备300二者,其后这两个设备试图分别发送相关数据。然而,当发出对外围设备300的访问时,直到开始从存储器100发送数据才断开开关410,因此存储器100和CPU 200之间的数据传送停止。因此,可避免前述数据冲突。
如上所述,不能响应于行地址的值来切换命令的传送目的。然而,如同根据本实施例的计算机系统10,当采用这样的模式,即,响应于行地址的值来进行开关410的通/断控制来停止存储器100和CPU 200之间的数据传送时,开关410可在存储器100接收到行地址之后存储器100开始发送数据时所需的时间(本实施例中为4个时钟周期)内断开。因此,可在实际使用时充分实现这样的情况。在本实施例中,说明CPU 200从外围设备300读取数据的情况。在把数据写入外围设备300的情况下(即,在CPU 200发出写命令而非读命令的情况下),解码部分300可响应于在写命令之前发送的行地址的值执行开关410的通/断控制。
如上所述,在根据本实施例的计算机系统10中,即使在外围设备300连接到总线400之后,从存储器100发送到CPU 200的数据和从外围设备300发送到CPU 200的数据之间的冲突可被避免。因此,外围设备300可连接到速度比外部总线高的存储总线,并且可改善CPU200和外围设备300之间的数据传送速率。
【变形】
如上所述说明了本发明的一个实施例。但是以下描述的变形当然可应用于这样的实施例。
(1)在上述实施例中,说明了CPU使解码部分330响应于行地址的值来控制开关410的通断的情况。仅通过使用行地址的值来控制开关410的通/断的原因在于,当在存储器100由CAS延迟为2的SDRAM构造的情况下以列地址的值以及行地址的值来控制开关410的通/断时,在开关410断开之前开始从存储器100的数据传送,从而导致数据冲突。
然而,例如,当存储器100由CAS延迟较长的SDRAM(即,在SDRAM接收到读命令和列地址之后需要一段长时间来开始相关数据的输出的SDRAM)构成时,可通过把列地址和访问内容(即,连同列地址一起从CPU 200发出的命令)相加来控制开关410的通/断。例如,可在对外围设备300的访问内容为数据读取(即,发送读命令)时可使开关410保持断开,并且当访问内容是数据写入(即,发送写命令)时可使开关410保持导通。以下将给出原因。即,如果开关410未断开,从而在发送写命令时存储器100未与CPU 200分离,则从CPU 200馈送的数据被写入存储器100和外围设备300二者。即使以此方式把数据写入存储器100和外围设备300,在总线400上也不会引起上述数据冲突,并且不会导致特别的问题。
(2)在上述实施例中,说明了这样的情况,即,在数据总线400b的第一路由上提供开关410,其后当对外围设备300的访问已经发出时通过断开开关410来停止通过总线400b在存储器100和CPU 200之间的数据传送,从而避免上述数据冲突。然而,可为命令总线400a和数据总线400b二者均提供这样的开关410来彻底使存储器100和CPU 200断开。在此情况下,在当切断开关410之后经过预定时间时需要再次接通开关410的操作、解除存储器100的激活状态(响应于行地址选择数据线的状态)的操作等。执行这样的处理的原因在于,必须处理在对外围设备300的访问之后发出对存储器100的访问的情况。
(3)在上述实施例中,说明由SDRAM构成存储器100的情况。但是,如果在这样的存储器进入到其激活状态之后需要预定时间来开始发送相关数据,则可采用任一存储器。
(4)在上述实施例中,说明为用于在CPU 200和存储器100之间传送数据的总线400提供一个支路并且一个外围设备连接到其的情况。然而,连接到总线400的支路的外围设备的数量不限于一个,并且当然可连接多个外围设备。在此情况下,不用说必须把对应于各自的行地址的地址分配给各个外围设备。
以下参照具体实施例来说明本发明。但是,对本领域技术人员来说明显的是,在不脱离本发明的精神和范围的情况下可应用各种变形和改进。
该申请基于2004年11月30日提交的日本专利申请(第2004-347312号专利申请);其内容以引用的方式并入本文。
工业实用性
根据本发明,可实现这样的优点,即,即使外围设备连接到已经与存储器连接的总线,也可避免在总线上从外围设备读取的数据和从存储器读取的数据之间的冲突。因此,外围设备可连接到速度高于外部总线的存储总线,并且CPU和外围设备之间的数据传送速率可被改善。