WO2006059660A1 - コンピュータシステム - Google Patents

コンピュータシステム Download PDF

Info

Publication number
WO2006059660A1
WO2006059660A1 PCT/JP2005/022021 JP2005022021W WO2006059660A1 WO 2006059660 A1 WO2006059660 A1 WO 2006059660A1 JP 2005022021 W JP2005022021 W JP 2005022021W WO 2006059660 A1 WO2006059660 A1 WO 2006059660A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
cpu
address
peripheral device
bus
Prior art date
Application number
PCT/JP2005/022021
Other languages
English (en)
French (fr)
Inventor
Kazuki Okamoto
Tomohiro Suzuki
Original Assignee
Yamaha Corporation
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corporation filed Critical Yamaha Corporation
Priority to CN2005800410397A priority Critical patent/CN101069165B/zh
Priority to US11/661,526 priority patent/US7487281B2/en
Publication of WO2006059660A1 publication Critical patent/WO2006059660A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller

Definitions

  • the present invention relates to a technology for controlling data transfer between a memory or a peripheral device connected to a CPU via a bus and the CPU.
  • a semiconductor memory device that constitutes the above-described memory, particularly DRAM (Dynamic Random Access Memory), is highly integrated and high-speed Is progressing.
  • the memory is composed of SDRAM (Synchronous DRAM) that operates in synchronization with a clock (hereinafter, system clock) supplied from the clock generator to the CPU.
  • Patent Document 1 discloses an SDRAM that can mix memory modules having different structures, and a memory system including the SDRAM.
  • Patent Document 1 Japanese Patent Laid-Open No. 2002-132580
  • peripheral devices that have logic circuits specialized for specific processing (for example, image processing, audio processing, etc.). In some cases, U) may be connected to the CPU.
  • peripheral devices are generally connected to the CPU via an external bus that is slower than the memory bus to which the memory is connected. For this reason, the data transfer speed between the peripheral device and the CPU may become a bottleneck, and the processing capacity of the entire computer system may not be improved. [0004] It seems that such a problem can be avoided by connecting the peripheral device to a memory bus faster than the external bus.
  • a decoder is provided on the memory bus, the memory and peripheral devices are connected via this decoder, and the command sent from the CPU along with that address according to the address to which the CPU power is also sent. It seems that it can be avoided by switching the transfer destination (for example, a command to instruct reading of data corresponding to the address) by the decoder.
  • the reason for this command transfer control is that if the command power is transferred to both the memory and the peripheral device, the data of both the memory and the peripheral device is read. Because they collide on the data memory bus.
  • the decoder decodes the address within 1 clock (for example, 7.5 nanoseconds if the memory is configured with SDRAM having an operation clock of 133 MHz), and the address and command are decoded into the memory or peripheral device. I have to hand it over to the chair. However, there is no device that operates at such a high speed at present, and it is not possible to provide a decoder as described above on the memory bus!
  • the present invention has been made in view of the above problems, and even if a peripheral device is connected to a node to which a memory is connected, the data read from the peripheral device card and the memory are not.
  • the purpose is to provide a technology that prevents the data read from the data from colliding with each other.
  • a computer system includes a peripheral device to which a CPU, memory, and an address that overlaps a part of an address space allocated to the memory are allocated. And a bus that connects the CPU and the peripheral device, and the bus includes a switch that switches connection and disconnection between the CPU and the memory.
  • a signal indicating the address of the access destination is sent to the bus, and the peripheral device also sends the CPU power to the bus.
  • an interface unit that identifies the address indicated by the signal, and the interface unit
  • a decoder unit that controls the switch to block the connection between the CPU and the memory when the address is assigned to the local device (peripheral device)! It is equipped with.
  • the peripheral device turns off the switch when the CPU power also receives a signal to access the device.
  • the CPU is disconnected from the CPU, and data transfer between the CPU and the memory is blocked.
  • the switch may be provided only on the data bus. Even in this case, data transfer between the cpu and the memory can be blocked by controlling on / off of the switch.
  • the peripheral device can be connected to a high-speed memory bus compared to the external bus, and the data transfer speed between the CPU and the peripheral device can be improved.
  • FIG. 1 is a block diagram showing a configuration example of a computer system 10 according to an embodiment of the present invention.
  • FIG. 2 is a diagram showing a sequence when data is read from the memory 100 that is a component of the computer system 10.
  • FIG. 3 is a diagram illustrating an example of a correspondence relationship between a memory address, a row address, and a column address assigned to each storage area of the memory 100.
  • FIG. 4 is a diagram for explaining the relationship between an address space assigned to a memory 100 and an address assigned to a peripheral device 300.
  • FIG. 5 is a flowchart showing the flow of switch control operation performed by the decoding unit 330 of the peripheral device 300.
  • Computer system 100 "memory, 200-CPU, 2 10 ... Controller part, 300 ... Peripheral device, 310 ... Interface part, 320 ... Noku ⁇ ! Mando, Nos, 4001) , 410 ⁇ “Switch.
  • FIG. 1 is a diagram for explaining a configuration example of a computer system 10 according to an embodiment of the present invention.
  • the computer system 10 includes a memory 100, a CPU 200, a peripheral device 300, and a nose 400 that transfers data and commands between these components.
  • the node 400 is a memory bus that operates in synchronization with the system clock, for example, and includes a command bus 400a and a data bus 400b as shown in FIG.
  • the command bus 400a is a bus for transferring an address indicating an access target and a command indicating the access contents between the memory 100 or the peripheral device 300 and the CPU 200.
  • the data bus 400b is a bus for transferring the processing result of the command or the data to be processed by the command between the memory 100 or the peripheral device 300 and the CPU 200.
  • the command node 400a and the data node 400b are both the first path from the CPU 200 to the memory 100 and the CPU 200 to the peripheral device 300. It has two routes to reach the second route.
  • the data bus 400b is provided with a switch 410 between the branch of the first path and the second path and the memory 100. Power to be described later in detail
  • the data transfer performed between the memory 100 and the CPU 200 via the data bus 400b is blocked by turning off the switch 410. be able to.
  • the memory 100 for example, has an operating clock of 133MHz and has a CAS latency (CAS LATENCY: the number of clocks from when a command to instruct to read data is received until the corresponding data starts to be sent) of 2 SDRAM
  • CAS LATENCY the number of clocks from when a command to instruct to read data is received until the corresponding data starts to be sent
  • any one of “OxAOOO 0000” to “OxAlFF FFFF” is the memory address.
  • Assigned to each storage area (note that the prefix "Ox" indicates that the value that follows is a hexadecimal number).
  • a set of memory addresses assigned to each storage area of the memory 100 is also referred to as “address space”.
  • the power to explain the case where the memory 100 is composed of SDRAM with an operation clock of 133 MHz and a CAS latency of 2 SDRAM having different performance (for example, the operation clock is 100 MHz)
  • the memory 100 may be composed of SDRAM or SDRAM having a CAS latency of 3.
  • the CPU 200 includes a controller unit 210, which is connected to a nose 400!
  • the controller unit 210 is used to write data to the memory 100 or read data from the memory 100 via the bus 400.
  • the controller unit 210 is a signal that represents an address of data to be accessed and a command corresponding to the access content. Is sent to the command bus 400a.
  • the CPU 200 can access each storage area of the memory 100 by appropriately operating the controller unit 210. Further, the force CPU 200 described later in detail can access the peripheral device 300 by appropriately operating the controller unit 210.
  • the CPU 200 transmits a signal described below at the timing shown in FIG. That is, the CPU 200 first sends a signal representing an active command (indicated as “Act” in the figure) and a row address (indicated as “ROW” in FIG. 2) to the command bus 400a. Next, the CPU 200 leaves a clock interval (for example, 2 clocks) according to the specifications of the controller unit 210, and reads a read command (indicated as “Read” in FIG. 2) or a column address (in FIG. 2, “COL” Sends a signal indicating “to” to the command bus 400a.
  • CLK represents the system clock supplied from the clock generator.
  • the row address and the column address in FIG. 2 specify a storage area in the memory 100 at the level of a storage element (a storage element including one transistor and one capacitor) constituting the memory 100.
  • the memory 100 includes a plurality of word lines, a plurality of digit lines, and a plurality of the storage elements arranged at positions corresponding to the intersections of the word lines and the digit lines.
  • a line is specified and a digit line is specified by specifying a column address. That is, by designating the row address and the column address, the storage elements arranged at the intersection of the two are specified.
  • FIG. 3 there is a relationship shown in FIG. 3 between the row address and column address and the memory address.
  • the 12th bit from the 24th bit to the 13th bit of the memory address corresponds to the 1st bit to the 0th bit of the row address
  • the 7th bit from the 12th bit of the memory address corresponds to the 3rd bit.
  • the correspondence between the row address and the column address and the memory address is as follows. This is determined according to the SDRAM memory capacity and the specifications of the controller unit 210 in the CPU 200, and is not limited to the correspondence shown in FIG.
  • the active command in FIG. 2 is a command for instructing selection of a word line specified by the row address delivered together with the active command.
  • the read command in FIG. Select the digit line specified by the delivered column address, and use the command to instruct to read the data held in the storage element corresponding to the intersection of the previously selected word line and the digit line. is there.
  • FIG. 2 when an active command and a read command are received next time, the memory 100 is held in a storage element specified by a row address received together with the active command and a column address received together with the read command. Is sent to the data bus 400b at a timing corresponding to the CAS latency of the memory 100. In this way, by receiving the data sent to the memory 100 power data bus 400b, the CPU 200 can read out the data stored in the memory 100.
  • a peripheral device 300 in FIG. 1 is, for example, an FPGA (Field Programmable Gate Array), and includes an interface unit 310, a logic circuit 320, and a decoding unit 330.
  • the peripheral device 300 is assigned an address that overlaps a part of the address space assigned to the storage area in the memory 100, as shown in FIG. Specifically, as shown in Figure 4, "OxAlFF E000" force et al. OxA IFF—FFFF ”range addresses are assigned to the peripheral device 300! / ⁇ .
  • the above-described duplicately assigned addresses are used to represent the peripheral device 300. It is not used as an address that represents the storage area of the memory 100.
  • a storage area that is assigned to the peripheral device 300 and is assigned a memory address that overlaps with the memory address is only a few percent of all the storage areas of the memory 100 and does not cause any particular problems.
  • the interface unit 310 is an SDRAM interface, for example, and is connected to the nose 400.
  • the interface unit 310 receives a signal sent from the CPU 200 via the bus 400, and passes an address (that is, a row address or a column address) or a command represented by the signal to the logic circuit 320 or the decoding unit 330. it can.
  • the logic circuit 320 is an electronic circuit that performs pre-programmed processing (for example, image processing, audio processing, etc.), and performs processing according to an address or command delivered from the interface unit 310.
  • the decoding unit 330 is connected to the switch 410 via a signal line as shown in FIG. 1, and controls on / off of the switch 410 according to the row address value delivered from the interface unit 310. To do.
  • the switch control operation performed by the decoding unit 330 will be described in detail.
  • FIG. 5 is a flowchart showing the flow of the switch control operation performed by the decoding unit 330.
  • the access destination of the CPU 200 is based on the value of the row address (that is, the own device (ie, Then, it is determined whether or not the peripheral device 300) (step SA2). More specifically, in the present embodiment, addresses from “OxAlFF—E000” to “OxAlFF—FFFF ⁇ ” are assigned to the peripheral device 300 (see FIG. 4). The relationship shown in Fig.
  • the row address corresponding to the address assigned to the peripheral device 300 is The 11th bit power is all 1 in the 0th bit.
  • the access destination of the CPU 200 is the peripheral device 300, and the row address If the 11th bit power and the 0th bit are different from the above bit pattern, the access destination of the CPU 200 is a storage area in the memory 100. In the present embodiment, this is used to allow the decoding unit 330 to determine the access destination of the CPU 200.
  • the decoding unit 330 determines that the access destination of the CPU 200 is the own device, In other cases, it is determined that the access destination of the CPU 200 is the memory 100.
  • step SA3 the decoding unit 330 outputs a control signal for turning off the switch 410.
  • Step SA3 the switch 410 is turned off, and data transfer between the memory 100 and the CPU 200 is blocked.
  • the decoding unit 330 turns on / off the switch 410 according to the row address value instead of switching the command transfer destination according to the row address value. This is a point to control and block data transfer between the memory 100 and the CPU 200.
  • the active command and row address, the read command, and the column address sent to the CPU 200 are delivered to both the memory 100 and the peripheral device 300. Each tries to send the corresponding data.
  • the switch 410 is turned off before the transmission of data from the memory 100 is started, and the data transfer between the memory 100 and the CPU 200 is interrupted. Is done. For this reason, data collision as described above is avoided.
  • the switch 410 is turned on / off according to the value of the row address. If the control is performed and the data transfer between the memory 100 and the CPU 200 is cut off, the memory 100 receives the row address and the power is also applicable. If the switch 410 is turned off during the time until the data starts to be sent (4 clocks in this embodiment), the time can be sufficiently set. In this embodiment, the case where the CPU 200 reads data from the peripheral device 300 has been described. However, when data is written to the peripheral device 300 (that is, the CPU 200 replaces the read command with a write command). In the case of transmission), the decode unit 330 may perform on / off control of the switch 410 in accordance with the value of the row address transmitted prior to the write command.
  • peripheral device 300 even if the peripheral device 300 is connected to the bus 400, data sent from the memory 100 to the CPU 200 and the peripheral device Collisions with data sent from 300 to CPU200 are avoided. As a result, the peripheral device 300 can be connected to a memory bus that is faster than the external bus, and the data transfer speed between the CPU 200 and the peripheral device 300 can be improved. become.
  • the decoding unit 330 is controlled to turn on / off the switch 410 according to the value of the row address.
  • the reason why the on / off state of the switch 410 is controlled using only the row address value in this way is that when the memory 100 is configured with SDRAM having CAS latency of 2, the column address value is also taken into account. This is because when the on / off state of the switch 410 is controlled, data transfer from the memory 100 is started before the switch 410 is turned off, and data collision occurs.
  • the column The on / off state of the switch 410 may be controlled by considering the address and access contents (that is, the command sent from the CPU 200 together with the column address). For example, when the access content to peripheral device 300 is read data (that is, the read command is Switch 410 off, and if the access is a data write (ie, a write command is sent), leave switch 410 on. It is also good. The reason is as follows.
  • the switch 410 is not turned off and the memory 100 is not disconnected from the CPU 200 power, so that the data sent by the CPU 200 power is sent to both the memory 100 and the peripheral device 300. Will be written. This is because even if data is written to both the memory 100 and the peripheral device 300 in this way, the above-described data collision does not occur on the bus 400, and no particular problem occurs.
  • the switch 410 is provided on the first path of the data node 400b, and when the peripheral device 300 is accessed, the switch 410 is turned off.
  • the switch 410 may be provided on both the command bus 400a and the data bus 400b so that the CPU 200 and the memory 100 are completely separated.
  • the switch 410 is turned on again, or the memory 100 is in an active state (a data line corresponding to the row address is selected). It is necessary to perform processing such as releasing the current status. The reason for performing such processing is to cope with a case where access to the memory 100 is performed after access to the peripheral device 300.
  • the peripheral device can be connected to a high-speed memory bus compared to the external bus, and the data transfer speed between the CPU and the peripheral device can be improved.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Multi Processors (AREA)

Abstract

 メモリと、そのメモリに割り当てられるアドレス空間の一部と重複するアドレスが割り当てられたペリフェラルデバイスと、その両者の何れかにアクセスする際にそのアクセス先のアドレスに応じた信号を送出するCPUと、CPUとペリフェラルデバイスとを接続するバスと、を有するコンピュータシステムにおいて、CPUとメモリとをそのバスを介して接続或いは切り離すスイッチを設け、さらに、ペリフェラルデバイスには、CPUからバスに送出された信号を受け取り、その信号の表すアドレスを特定するインタフェイス部と、 そのインタフェイス部により特定されたアドレスが自デバイスのアドレスである場合に、上記スイッチをオフにするデコ-ド部とを設けておく。

Description

明 細 書
コンピュータシステム
技術分野
[0001] バスを介して CPUに接続されるメモリやペリフエラルデバイスとその CPUとの間の データ転送を制御する技術に関する。
背景技術
[0002] 例えば、 CPU (Central Processing Unit)やメモリなどを含むコンピュータシステムの 処理能力向上のために、上記メモリを構成する半導体メモリ装置、特に DRAM (Dyn amic Random Access Memory)の高集積化および高速化が進んでいる。その一例と しては、クロックジェネレータから CPUに供給されるクロック(以下、システムクロック) に同期して動作する SDRAM (Synchronous DRAM)でメモリを構成することが挙げら れる
。また、 SDRAMの構造やその利用方法の改善についても種々の技術が提案されて おり、その一例としては、特許文献 1に開示された技術が挙げられる。この特許文献 1 には、相異なる構造を有するメモリモジュールを混用可能にする SDRAMおよびこれ を備えたメモリシステムが開示されている。
特許文献 1 :特開 2002— 132580号公報
発明の開示
[0003] 上述した SDRAMでメモリを構成することによって、 CPUとメモリとの間のデータ転 送速度を向上させることができる。しかしながら、現実のコンピュータシステムにおい ては、メモリの他に、特定の処理 (例えば、画像処理や音声処理など)に特ィ匕したロジ ック回路を有する周辺機器 (以下、「ペリフエラルデバイス」とも 、う)が CPUに接続さ れている場合がある。このようなペリフエラルデバイスは、メモリが接続されるメモリバス よりも低速な外部バスを介して CPUに接続されることが一般的である。このため、ペリ フエラルデバイスと CPUとの間のデータ転送速度がボトルネックになってしまい、コン ピュータシステム全体の処理能力を向上させることができなくなってしまう場合がある [0004] このような不具合は、ペリフエラルデバイスを外部バスよりも高速なメモリバスに接続 することで回避されるかに見える。具体的には、メモリバス上にデコーダを設け、この デコーダを介してメモリとペリフエラルデバイスを接続するとともに、 CPU力も送られて くるアドレスに応じて、そのアドレスとともに CPUから送られてくるコマンド(例えば、そ のアドレスに応じたデータの読み出しを指示する旨のコマンドなど)の転送先を上記 デコーダによって切り替えるようにすることで回避されるかに見える。なお、このような コマンドの転送制御を行う理由は、そのコマンド力 Sメモリとペリフエラルデバイスとの両 者に引き渡されてしまうと、メモリとペリフエラルデバイスとの両者力 データが読み出 され、それらのデータカ^モリバス上で衝突してしまうからである。
ところで、 CPU力ら送り出されたコマンドは、 1クロック以内にメモリやペリフエラルデ バイスへ引き渡されなければならない。つまり、上記デコーダは、 1クロック(例えば、 動作クロックが 133MHzである SDRAMでメモリを構成した場合には、 7. 5ナノ秒) 以内に上記アドレスをデコードし、そのアドレスとコマンドとをメモリやペリフエラルデバ イスへ引き渡さなければならない。し力しながら、このような高速で動作するデバイス は現時点では存在せず、上記の如きデコーダをメモリバス上に設けることはできな!ヽ
[0005] 本発明は、上記課題を鑑みて為されたものであり、メモリが接続されるノ スにペリフ ェラルデバイスを接続しても、ペリフエラルデバイスカゝら読み出されたデータとメモリか ら読み出されたデータとが衝突しな 、ようにする技術を提供することを目的として 、る
[0006] 上記課題を解決するために、本発明に力かるコンピュータシステムは、 CPUと、メモ リと、前記メモリに割り当てられるアドレス空間の一部と重複するアドレスが割り当てら れたペリフエラルデバイスと、前記 CPUと前記ペリフエラルデバイスとを接続するバス と、を有し、前記バスは、前記 CPUと前記メモリとの間の接続及び遮断を切り替えるス イッチを有し、前記 CPUは、前記メモリまたは前記ペリフエラルデバイスの何れか〖こァ クセスする際に、そのアクセス先のアドレスを示す信号を前記バスに送出し、前記ペリ フエラルデバイスは、前記 CPU力も前記バスに送出された信号を受け取り、その信号 の示すアドレスを特定するインタフェイス部と、 前記インタフェイス部により特定された アドレスが自デバイス(ペリフエラルデバイス)に割り当てられて!/、るアドレスである場 合に、前記 CPUと前記メモリとの間の接続を遮断するように前記スィッチを制御する デコ—ド部と、を備えている。
このようなコンピュータシステムによれば、上記ペリフエラルデバイスは、自デバイス へアクセスする旨の信号を上記 CPU力も受け取ると上記スィッチをオフにする。これ により、上記メモリが上記 CPU力 切り離され、上記 CPUと上記メモリとの間のデータ 転送が遮断される。なお、上記バスが、コマンドバスとデータバスとを含んでいる場合 には、上記スィッチをデータバス上にのみ設けるとしても良い。このようにしても、上記 スィッチのオン Zオフを制御することで、上記 cpuと上記メモリとの間のデータ転送 を遮断することができる。
[0007] 本発明によれば、メモリが接続されるバスにペリフエラルデバイスを接続しても、ペリ フエラルデバイスカゝら読み出されたデータとメモリから読み出されたデータとがそのバ ス上で衝突することが回避されるといった効果を奏する。これにより、ペリフエラルデ バイスを外部バスに比較して高速なメモリバスに接続することが可能になり、 CPUと ペリフエラルデバイスとの間のデータ転送速度を向上させることが可能になる。
図面の簡単な説明
[0008] [図 1]本発明の一実施形態に係るコンピュータシステム 10の構成例を示すブロック図 である。
[図 2]コンピュータシステム 10の構成要素であるメモリ 100からデータを読み出す際の シーケンスを表す図である。
[図 3]メモリ 100の各記憶領域に割り当てられているメモリアドレスとロウアドレスおよび カラムアドレスとの対応関係の一例を示す図である。
[図 4]メモリ 100に割り当てられるアドレス空間とペリフエラルデバイス 300に割り当てら れるアドレスとの関係を説明するための図である。
[図 5]ペリフエラルデバイス 300のデコード部 330が行うスィッチ制御動作の流れを表 すフローチャートである。 10· ··コンピュータシステム、 100· "メモリ、 200· -CPU, 2 10…コント口—ラ部、 300· ··ペリフエラルデバイス、 310· ··インタフェイス部、 320· ··口 ジゝノク^! 、
Figure imgf000005_0001
マンド、ノ ス、 4001)· ··データノ ス、 410· "スィッチ。
発明を実施するための最良の形態
[0009] 以下、本発明を実施するための最良の形態について図面を参照しつつ説明する。
[構成]
図 1は、本発明の 1実施形態に係るコンピュータシステム 10の構成例を説明するた めの図である。図 1に示すように、このコンピュータシステム 10は、メモリ 100と、 CPU 200と、ペリフエラルデバイス 300と、これら構成要素間のデータやコマンドを転送す るノ ス 400と、を備えている。
[0010] ノ ス 400は、例えばシステムクロックに同期して動作するメモリバスであり、図 1に示 すように、コマンドバス 400aとデータバス 400bとを含んでいる。ここで、コマンドバス 4 00aは、メモリ 100やペリフエラルデバイス 300と CPU200との間で、アクセス対象を 表すアドレスやそのアクセス内容を表すコマンドを転送するためのバスである。一方、 データバス 400bは、メモリ 100やペリフエラルデバイス 300と CPU200との間で上記 コマンドの処理結果または上記コマンドの処理対象であるデータを転送するための バスである。
図 1に示すように、本実施形態に係るコンピュータシステム 10においては、コマンド ノ ス 400aとデータノ ス 400bとは、ともに、 CPU200からメモリ 100へ至る第 1の経路 と CPU200からペリフエラルデバイス 300へ至る第 2の経路との 2つの経路を有して いる。そして、データバス 400bには、上記第 1の経路と第 2の経路との分岐からメモリ 100へ至る間に、スィッチ 410が設けられている。詳細については後述する力 本実 施形態に係るコンピュータシステム 10においては、スィッチ 410をオフにすることによ つて、データバス 400bを介してメモリ 100と CPU200との間で行われるデータ転送を 遮断することができる。
[0011] メモリ 100は、例えば動作クロックが 133MHzで CASレーテンシ(CAS LATENCY: データの読み出しを指示する旨のコマンドを受け取つてから、該当するデータを送出 し始めるまでのクロック数)が 2である SDRAMであり、夫々固有のアドレス(以下、メ モリアドレスともいう)が割り当てられた複数の記憶領域を有している。本実施形態で は、 "OxAOOO 0000"から" OxAlFF FFFF"までの何れかが上記メモリアドレス として各記憶領域に割り当てられている(なお、接頭辞" Ox"は、後続する値が 16進 数であることを表している)。以下では、メモリ 100の各記憶領域に割り当てられてい るメモリアドレスの集合を「アドレス空間」とも呼ぶ。なお、本実施形態では、動作クロッ クが 133MHzで CASレーテンシが 2である SDRAMでメモリ 100が構成されている 場合について説明する力 これと異なる性能を有する SDRAM (例えば、動作クロッ クが 100MHzである SDRAMや、 CASレーテンシが 3である SDRAM)でメモリ 100 を構成するとしても勿論良い。
[0012] CPU200は、図 1に示すように、コントローラ部 210を含んでおり、このコントローラ 部 210はノ ス 400に接続されて!、る。このコントローラ部 210はバス 400を介してメモ リ 100にデータを書き込んだり、メモリ 100からデータを読み出したりするためのもの であり、アクセス対象のデータのアドレスやそのアクセス内容に応じたコマンドを表す 信号をコマンドバス 400aへ送出する。 CPU200は、このコントローラ部 210を適宜作 動させることによって、メモリ 100の各記憶領域にアクセスすることができる。また、詳 細については後述する力 CPU200は、コントローラ部 210を適宜作動させることに よってペリフエラルデバイス 300へアクセスすることもできる。
例えば、メモリ 100に記憶されているデータを読み出す場合には、 CPU200は、図 2に示すタイミングで、以下に述べる信号を送出する。すなわち、 CPU200は、まず、 アクティブコマンド(図では、 "Act"と表記)やロウアドレス(図 2では、 "ROW"と表記) を表す信号をコマンドバス 400aへ送出する。次いで、 CPU200は、コントローラ部 2 10の仕様に応じたクロック間隔(例えば、 2クロック)を空けて、リードコマンド(図 2で は、 "Read"と表記)やカラムアドレス(図 2では、 "COL"と表記)を表す信号をコマン ドバス 400aへ送出する。なお、図 2において、 CLKはクロックジェネレータから供給さ れるシステムクロックを表して 、る。
[0013] 図 2のロウアドレスとカラムアドレスとは、メモリ 100を構成する記憶素子(1個のトラン ジスタと 1個のキャパシタで構成される記憶素子)レベルでメモリ 100内の記憶領域を 特定するアドレスである。より詳細に説明すると、メモリ 100には、複数のワード線と、 複数のデジット線と、これらワード線とデジット線との交差に対応する位置に配置され た複数の上記記憶素子とが含まれており、ロウアドレスを指定することによってワード 線が特定され、カラムアドレスを指定することによってデジット線が特定される。つまり 、ロウアドレスとカラムアドレスとを指定することによって、両者の交差に配置された記 憶素子が特定される。本実施形態に係るコンピュータシステム 10においては、ロウァ ドレスおよびカラムアドレスと、メモリアドレスとの間には、図 3に示す関係がある。すな わち、メモリアドレスの 24ビット目から 13ビット目までの 12ビットには、ロウアドレスの 1 1ビット目力ら 0ビット目までが対応しており、メモリアドレスの 12ビット目力ら 7ビット目 までの 6ビットには、カラムアドレスの 8ビット目力 3ビット目までが対応している。なお 、本実施形態では、ロウアドレスおよびカラムアドレスと、メモリアドレスと力 図 3に示 す対応関係を有している場合について説明するが、ロウアドレスおよびカラムアドレス とメモリアドレスとの対応関係は、 SDRAMのメモリ容量や CPU200内のコントローラ 部 210の仕様に応じて定まるものであり、図 3に示す対応関係に限定されるものでは ない。
[0014] 図 2のアクティブコマンドは、そのアクティブコマンドとともに引き渡されたロウアドレ スで指定されるワード線を選択することを指示する旨のコマンドであり、図 2のリードコ マンドは、このリードコマンドととも引き渡したカラムアドレスで指定されるデジット線を 選択し、先に選択されたワード線とそのデジット線との交差に対応する記憶素子に保 持されているデータを読み出すことを指示する旨のコマンドである。図 2に示すように 、メモリ 100は、アクティブコマンドとリードコマンドとを^!次受け取ると、アクティブコマ ンドとともに受け取ったロウアドレスとリードコマンドとともに受け取ったカラムアドレスと で特定される記憶素子に保持されているデータを、そのメモリ 100の CASレーテンシ に応じたタイミングでデータバス 400bへ送り出す。このようにして、メモリ 100力 デ ータバス 400bへ送り出されたデータを受け取ることによって、 CPU200はメモリ 100 に記憶されて 、るデータを読み出すことができる。
[0015] 図 1のペリフエラルデバイス 300は、例えば FPGA (Field Programmable Gate Array )であり、インタフェイス部 310と、ロジック回路 320と、デコード部 330と、を有している 。本実施形態においては、ペリフエラルデバイス 300には、図 4に示すように、メモリ 1 00内の記憶領域に割り当てられているアドレス空間の一部と重複しているアドレスが 割り当てられている。具体的には、図 4に示すように、 "OxAlFF E000"力ら" OxA IFF— FFFF"までの範囲のアドレスがペリフエラルデバイス 300に割り当てられて!/ヽ る。本実施形態では、上記重複して割り当てられたアドレスについては、ペリフエラル デバイス 300を表すものとして利用され、メモリ 100の記憶領域を表すアドレスとして は利用されない。つまり、メモリ 100に設けられている記憶領域のうち、ペリフエラルデ バイス 300に割り当てられて 、るアドレスと重複するメモリアドレスが割り当てられて ヽ る記憶領域については利用することができなくなつている。し力しながら、このような記 憶領域は、メモリ 100の全ての記憶領域の数パーセントに過ぎず、特段の問題は生 じない。
[0016] インタフェイス部 310は、例えば、 SDRAMインタフェイスであり、ノ ス 400に接続さ れている。このインタフェイス部 310は、バス 400を介して CPU200から送られてくる 信号を受け取り、その信号の表すアドレス(すなわち、ロウアドレスやカラムアドレス) やコマンドをロジック回路 320やデコード部 330へ引き渡すことができる。ロジック回 路 320は、予めプログラムされた処理 (例えば、画像処理や音声処理など)を行う電 子回路であり、インタフェイス部 310から引き渡されたアドレスやコマンドに応じた処 理を行う。そして、デコード部 330は、図 1に示すように信号線を介してスィッチ 410に 接続されており、インタフェイス部 310から引き渡されたロウアドレスの値に応じてスィ ツチ 410のオン Zオフを制御するものである。以下、デコード部 330が行うスィッチ制 御動作について詳細に説明する。
[0017] [動作]
図 5は、デコード部 330が行うスィッチ制御動作の流れを示すフローチャートである 。図 5に示すように、デコード部 330は、インタフェイス部 310力もアクティブコマンドと ロウアドレスとを受け取ると(ステップ SA1)、そのロウアドレスの値に基づいて、 CPU 200のアクセス先が自デバイス(すなわち、ペリフエラルデバイス 300)であるか否かを 判定する (ステップ SA2)。より詳細に説明すると、本実施形態では、ペリフ ラルデ バイス 300には、 "OxAlFF— E000"から" OxAlFF— FFFF〃までのアドレスが割り 当てられている(図 4参照)。そして、ペリフエラルデバイス 300に割り当てられている アドレスやメモリアドレスと、ロウアドレスとの間には、図 3に示す関係がある。このため 、ペリフエラルデバイス 300に割り当てられているアドレスに対応するロウアドレスは、 その 11ビット目力も 0ビット目が全て 1になっている。つまり、 CPU200から送られてき たロウアドレスの 11ビット目力ら 0ビット目が全て 1 (すなわち、 1111—1111—1111) であるならば、 CPU200のアクセス先はペリフエラルデバイス 300であり、ロウアドレス の 11ビット目力ら 0ビット目までが上記ビットパターンと異なっていれば、 CPU200の アクセス先はメモリ 100内の記憶領域である。本実施形態では、このことを利用して、 CPU200のアクセス先をデコード部 330に判定させている。すなわち、デコード部 33 0は、インタフェイス部 310から引き渡されたロウアドレスの 11ビット目力も 0ビット目ま でが全て 1である場合には、 CPU200のアクセス先は自デバイスであると判定し、そ の他の場合には、 CPU200のアクセス先はメモリ 100であると判定する。
そして、デコード部 330は、ステップ SA2の判定結果が" Yes"である場合(すなわ ち、自デバイスへのアクセスであると判定した場合)には、スィッチ 410をオフにする 制御信号を出力する (ステップ SA3)。その結果、スィッチ 410がオフにされ、メモリ 1 00と CPU200との間のデータ転送が遮断されることになる。
ここで注目すべき点は、本実施形態においては、デコード部 330は、ロウアドレスの 値に応じてコマンドの転送先を切り替えるのではなぐロウアドレスの値に応じてスイツ チ 410のオン Zオフを制御し、メモリ 100と CPU200との間のデータ転送を遮断する 点である。
つまり、本実施形態に係るコンピュータシステム 10においては、 CPU200力も送出 されたアクティブコマンドとロウアドレス、リードコマンドとカラムアドレスは、メモリ 100と ペリフエラルデバイス 300との両者に引き渡され、この両者は、夫々、該当するデータ を送出しょうとする。し力しながら、ペリフエラルデバイス 300に対するアクセスの場合 には、メモリ 100からのデータの送出が開始されるまでに、スィッチ 410がオフにされ 、メモリ 100と CPU200との間のデータ転送が遮断される。このため、前述の如きデ ータの衝突が回避される。
前述した如くロウアドレスの値に応じてコマンドの転送先を切り替えることは不可能 であるが、本実施形態に係るコンピュータシステム 10のように、ロウアドレスの値に応 じてスィッチ 410のオン Zオフ制御を行い、メモリ 100と CPU200との間のデータ転 送を遮断する態様であれば、メモリ 100がロウアドレスを受け取って力も該当するデ ータを送出し始めるまでの時間(本実施形態では 4クロック)の間にスィッチ 410をォ フにすれば良ぐ充分に間に合わせることが可能である。なお、本実施形態では、 C PU200がペリフエラルデバイス 300からデータを読み出す場合について説明したが 、ペリフエラルデバイス 300にデータの書き込みを行う場合(すなわち、 CPU200がリ ードコマンドに替えてライトコマンドを送出する場合)についても、そのライトコマンドに 先だって送られてくるロウアドレスの値に応じてスィッチ 410のオン Zオフ制御をデコ ード部 330に行わせるようにしても良 、。
[0019] 以上に説明したように、本実施形態に係るコンピュータシステム 10においては、ペリ フエラルデバイス 300をバス 400に接続しても、メモリ 100から CPU200へ送られるデ ータとペリフエラルデバイス 300から CPU200へ送られるデータとが衝突することは 回避される。その結果、外部バスに比較して高速なメモリバスにペリフエラルデバイス 300を接続することが可能になり、 CPU200とペリフエラルデバイス 300との間のデ ータ転送速度を向上させることが可能になる。
[0020] [変形]
以上、本発明の 1実施形態について説明したが、係る実施形態に以下に述べるよう な変形を加えても良 ヽことは勿論である。
(1)上述した実施形態では、ロウアドレスの値に応じてスィッチ 410のオン Zオフをデ コード部 330に制御させる場合について説明した。このようにロウアドレスの値のみを 用いて、スィッチ 410のオン Zオフを制御している理由は、 CASレーテンシが 2であ る SDRAMでメモリ 100を構成した場合、カラムアドレスの値も加味してスィッチ 410 のオン Zオフを制御すると、スィッチ 410をオフにするよりも先にメモリ 100からのデ ータ転送が開始され、データの衝突が発生してしまうからである。
しかしながら、例えば CASレーテンシの値がより大きい SDRAM (すなわち、リード コマンドとカラムアドレスとを受け取って力 該当するデータを送出し始めるまでの時 間が長い SDRAM)でメモリ 100を構成する場合には、カラムアドレスやアクセス内容 (すなわち、カラムアドレスとともに CPU200から送られてくるコマンド)をカ卩味してスィ ツチ 410のオン Zオフを制御するようにしても良い。例えば、ペリフエラルデバイス 30 0に対するアクセス内容がデータの読み出しである場合 (すなわち、リードコマンドが 送られてきた場合)には、スィッチ 410をオフにし、そのアクセス内容がデータの書き 込みである場合 (すなわち、ライトコマンドが送られてきた場合)にはスィッチ 410をォ ンにしたままにするとしても良い。その理由は、以下の通りである。すなわち、ライトコ マンドが送られてきた場合にはスィッチ 410をオフにせず、メモリ 100を CPU200力ら 切り離さな 、ようにすると、 CPU200力も送られてきたデータはメモリ 100とペリフェラ ルデバイス 300の両者に書き込まれることになる。このようにメモリ 100とペリフエラル デバイス 300との両者にデータを書き込むようにしても、バス 400上で前述したような データの衝突は発生せず、特段の問題が生じな 、からである。
[0021] (2)上述した実施形態では、データノ ス 400bの第 1の経路上にスィッチ 410を設け、 ペリフエラルデバイス 300に対するアクセスの場合には、そのスィッチ 410をオフにす ることによって、そのデータバス 400bを介したメモリ 100と CPU200との間のデータ 転送を遮断し、前述したデータの衝突を回避する場合について説明した。し力しなが ら、コマンドバス 400aとデータバス 400bとの両者にスィッチ 410を設け、 CPU200と メモリ 100とを完全に切り離すようにしても良い。ただし、この場合には、例えば、スィ ツチ 410をオフにしてから所定の時間が経過した時点で再度スィッチ 410をオンにし たり、メモリ 100のアクティブ状態(ロウアドレスに応じたデータ線が選択されている状 態)を解除するなどの処理を行うことが必要になる。このような処理を行う理由は、ペリ フエラルデバイス 300に対するアクセスの後に、メモリ 100へのアクセスが行われるよ うな場合に対処するためである。
[0022] (3)上述した実施形態では、メモリ 100が SDRAMで構成されて 、る場合につ!、て 説明したが、図 2に示すように、アクティブ状態になって力 該当するデータを送出し 始めるまでに所定の時間を要するメモリであれば、どのようなメモリであっても良い。
[0023] (4)上述した実施形態では、 CPU200とメモリ 100との間でデータを転送するバス 40 0に分岐を 1つ設け、 1つのペリフエラルデバイスを接続しておく場合について説明し た。し力しながら、バス 400を分岐して接続されるペリフエラルデバイスの数は 1に限 定されるものではなぐ複数のペリフエラルデバイスを接続するとしても勿論良い。た だし、この場合、各ペリフエラルデバイス毎に固有のロウアドレスに対応するアドレスを 割り当てておく必要があることは言うまでもな!/、。 本発明を詳細にまた特定の実施態様を参照して説明したが、本発明の精神と範囲 を逸脱することなく様々な変更や修正を加えることができることは当業者にとって明ら かである。
本出願は、 2004年 11月 30日出願の日本特許出願 (特願 2004— 347312)に基づくも のであり、その内容はここに参照として取り込まれる。
産業上の利用可能性
本発明によれば、メモリが接続されるバスにペリフエラルデバイスを接続しても、ペリ フエラルデバイスカゝら読み出されたデータとメモリから読み出されたデータとがそのバ ス上で衝突することが回避されるといった効果を奏する。これにより、ペリフエラルデ バイスを外部バスに比較して高速なメモリバスに接続することが可能になり、 CPUと ペリフエラルデバイスとの間のデータ転送速度を向上させることが可能になる。

Claims

請求の範囲
[1] コンピュータシステムは、
CPUと、
メモリと、
前記メモリに割り当てられるアドレス空間の一部と重複するアドレスが割り当てられ たペリフエラルデバイスと、
前記 CPUと前記ペリフエラルデバイスとを接続するバスと、
を有し、
前記バスは、前記 CPUと前記メモリとの間の接続及び遮断を切り替えるスィッチを 有し、
前記 CPUは、前記メモリまたは前記ペリフエラルデバイスの何れか〖こアクセスする 際に、そのアクセス先のアドレスを示す信号を前記ノ スに送出し、
前記ペリフエラルデバイスは、
前記 CPU力 前記バスに送出された信号を受け取り、その信号の示すアドレスを 特定するインタフェイス部と、
前記インタフェイス部により特定されたアドレスが前記ペリフエラルデバイスに割り当 てられているアドレスである場合に、前記 CPUと前記メモリとの間の接続を遮断する ように前記スィッチを制御するデコ ド部と、
を備えている。
[2] 請求項 1に記載のコンピュータシステムであって、
前記ノ スは、データを転送するためのデータバスとアクセス内容を示すコマンドを 転送するためのコマンドバスとを含んでおり、
前記スィッチは、前記データバス上に設けられている。
PCT/JP2005/022021 2004-11-30 2005-11-30 コンピュータシステム WO2006059660A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2005800410397A CN101069165B (zh) 2004-11-30 2005-11-30 计算机系统
US11/661,526 US7487281B2 (en) 2004-11-30 2005-11-30 Computer system to control the data transfer between a memory and a peripheral device connected to a CPU via a bus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004347312A JP2006155387A (ja) 2004-11-30 2004-11-30 コンピュータシステム
JP2004-347312 2004-11-30

Publications (1)

Publication Number Publication Date
WO2006059660A1 true WO2006059660A1 (ja) 2006-06-08

Family

ID=36565093

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/022021 WO2006059660A1 (ja) 2004-11-30 2005-11-30 コンピュータシステム

Country Status (4)

Country Link
US (1) US7487281B2 (ja)
JP (1) JP2006155387A (ja)
CN (1) CN101069165B (ja)
WO (1) WO2006059660A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788438B2 (en) 2006-10-13 2010-08-31 Macronix International Co., Ltd. Multi-input/output serial peripheral interface and method for data transmission
WO2012049705A1 (en) * 2010-10-12 2012-04-19 Hitachi, Ltd. Memory data backup system and memory data backup control method
JP6455302B2 (ja) * 2015-04-30 2019-01-23 富士通株式会社 バス通信システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5074349A (ja) * 1973-10-31 1975-06-19
JPH06332796A (ja) * 1993-05-21 1994-12-02 Fuji Xerox Co Ltd 回路基板制御装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2910303B2 (ja) * 1990-06-04 1999-06-23 株式会社日立製作所 情報処理装置
JPH0810445B2 (ja) * 1990-09-21 1996-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 動的バス調停方法及び装置
JPH04262451A (ja) * 1991-02-15 1992-09-17 Yamaha Corp 分散処理システム
KR100360408B1 (ko) 2000-09-16 2002-11-13 삼성전자 주식회사 독출동작시 데이터 스트로브 신호와 동일한 신호를출력하는 데이터 마스킹핀을 갖는 반도체 메모리장치 및이를 구비하는 메모리 시스템
US6954821B2 (en) * 2003-07-31 2005-10-11 Freescale Semiconductor, Inc. Crossbar switch that supports a multi-port slave device and method of operation
US7376777B2 (en) * 2005-09-23 2008-05-20 Freescale Semiconductor, Inc. Performing an N-bit write access to an M×N-bit-only peripheral

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5074349A (ja) * 1973-10-31 1975-06-19
JPH06332796A (ja) * 1993-05-21 1994-12-02 Fuji Xerox Co Ltd 回路基板制御装置

Also Published As

Publication number Publication date
CN101069165A (zh) 2007-11-07
US20070255700A1 (en) 2007-11-01
JP2006155387A (ja) 2006-06-15
US7487281B2 (en) 2009-02-03
CN101069165B (zh) 2010-05-05

Similar Documents

Publication Publication Date Title
CN101226519B (zh) 多路径可访问半导体存储器设备及其邮箱访问控制方法
EP1421588B1 (en) Method and apparatus utilizing flash burst mode to improve processor performance
US7162556B2 (en) Matrix type bus connection system and power reduction method therefor
KR20020029760A (ko) 집적 회로 시스템
US7725621B2 (en) Semiconductor device and data transfer method
US8433835B2 (en) Information processing system and control method thereof
TW565857B (en) Semiconductor integrated circuit device
TWI276111B (en) Method and circuit for controlling operation mode of PSRAM
WO2006059660A1 (ja) コンピュータシステム
JP4015986B2 (ja) 半導体集積回路装置
JP2001243765A (ja) 半導体記憶装置
US6622210B2 (en) Microcontroller with improved access efficiency of instructions
JP2003223412A (ja) 半導体集積回路
US20190237115A1 (en) Semiconductor apparatus and method of operating the same
JP5130754B2 (ja) 半導体集積回路及びメモリシステム
JP2005267354A (ja) 半導体装置
JP4377567B2 (ja) 半導体記憶装置と、記憶装置にバーストモードをセットする装置及び方法
US20030049897A1 (en) Semiconductor device
US7729198B2 (en) Synchronous memory circuit
JP2000076128A (ja) 半導体メモリシステム
US20070022220A1 (en) Bus system having a transmission control module and a transmission interface
US8031533B2 (en) Input circuit of semiconductor memory apparatus and controlling method thereof
JP2003308289A (ja) データ処理装置
JP2007041900A (ja) 切り替え制御装置
JP2002093184A (ja) メモリ回路

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KM KN KP KR KZ LC LK LR LS LT LU LV LY MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 11661526

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 200580041039.7

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 11661526

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 05811751

Country of ref document: EP

Kind code of ref document: A1

WWW Wipo information: withdrawn in national office

Ref document number: 5811751

Country of ref document: EP