JP4549073B2 - Memory control circuit - Google Patents
Memory control circuit Download PDFInfo
- Publication number
- JP4549073B2 JP4549073B2 JP2004037205A JP2004037205A JP4549073B2 JP 4549073 B2 JP4549073 B2 JP 4549073B2 JP 2004037205 A JP2004037205 A JP 2004037205A JP 2004037205 A JP2004037205 A JP 2004037205A JP 4549073 B2 JP4549073 B2 JP 4549073B2
- Authority
- JP
- Japan
- Prior art keywords
- signal
- memory
- control circuit
- state
- banks
- 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.)
- Expired - Fee Related
Links
Images
Description
本発明はメモリ制御回路に関する。 The present invention relates to a memory control circuit.
メモリには、複数のブロック(バンク)に分割されてデータの書き込み読み出しのためのアクセスが行われるものがある。前記メモリに対するアクセスは、後述するメモリ制御回路によって実行される。
上記のメモリ制御回路は、CPUからの指示に従って、メモリを構成する複数のバンクの何れかを選択するとともに、選択されたバンク内における所定アドレスを指定してデータの書き込みまたは読み出しを行うこととなる(例えば、特許文献1参照)。
Some memories are divided into a plurality of blocks (banks) and accessed for writing and reading data. Access to the memory is executed by a memory control circuit described later.
The memory control circuit selects one of a plurality of banks constituting the memory according to an instruction from the CPU, and writes or reads data by designating a predetermined address in the selected bank. (For example, refer to Patent Document 1).
図5に、従来のメモリ制御回路による読み出し状態の変化のタイミングを説明するためのタイムチャートを示す。この図は、各アドレスに記憶されるビット数が16ビットからなるメモリ(16bit×1メモリ、以下、16ビットメモリとする)にメモリ制御回路がアクセスをして読み出しを行う例である。つまり、1つのバンクに対してアクセスする場合のタイムチャートである。メモリとして、例えばSRAMを使用することができる。 FIG. 5 shows a time chart for explaining the timing of change of the read state by the conventional memory control circuit. This figure shows an example in which a memory control circuit accesses and reads out a memory (16 bits × 1 memory, hereinafter referred to as a 16-bit memory) having 16 bits stored in each address. That is, it is a time chart when accessing one bank. For example, an SRAM can be used as the memory.
メモリ制御回路は、アドレスバス、データバスを介してCPUと接続されていて、メモリ制御回路内においてCPUからの指示に従いValid、ステート信号の各信号を発生する。Validはメモリにアクセスすることを示す信号であり、ステート信号はメモリ内における各種状態を設定するための信号である。 The memory control circuit is connected to the CPU via an address bus and a data bus, and generates Valid and State signals in accordance with instructions from the CPU in the memory control circuit. Valid is a signal indicating access to the memory, and the state signal is a signal for setting various states in the memory.
また、メモリ制御回路は、接続されたメモリに対してアドレス信号ADDR、チップセレクト信号nCS、リード信号nRD、ローバイトセレクト信号nLB、nHB/nWRH信号を出力する端子、およびDATA信号を入出力する端子を備えている。一方、接続された16ビットメモリは、メモリ制御回路の出力に対応して、アドレス信号ADDR、チップセレクト信号nCS、リード信号nRD、ローバイトセレクト信号nLB、nHB信号を入力する端子、およびDATA信号を入出力する端子を備えている。以上の各信号はCPUにて、メモリ制御回路を動作するために設定されるシステムクロックCLKに同期して変化する。 The memory control circuit outputs an address signal ADDR, a chip select signal nCS, a read signal nRD, a low byte select signal nLB, an nHB / nWRH signal to the connected memory, and a terminal for inputting / outputting a DATA signal. It has. On the other hand, the connected 16-bit memory has a terminal for inputting an address signal ADDR, a chip select signal nCS, a read signal nRD, a low byte select signal nLB, an nHB signal, and a DATA signal corresponding to the output of the memory control circuit. It has a terminal for input and output. Each of the above signals changes in synchronization with the system clock CLK set for operating the memory control circuit in the CPU.
まず、メモリ制御回路内においての信号について説明する。
アドレスバスは、CPUとメモリ制御回路間でのメモリのアドレスの転送経路であり、読み出しまたは書き込みを行うメモリのアドレスがCPUから指定される。
データバスは、CPUとメモリ制御回路間での指定されたメモリの読み出しや書き込みデータの転送経路となる。
First, signals in the memory control circuit will be described.
The address bus is a memory address transfer path between the CPU and the memory control circuit, and the memory address to be read or written is designated by the CPU.
The data bus serves as a transfer path for reading and writing data of a designated memory between the CPU and the memory control circuit.
ステート信号は、メモリ制御回路内におけるメモリへのアクセスの状態を示す信号である。このメモリアクセスの状態を示す信号として、TACS、TCOS、TACC、TCOHがある。
TACSは、メモリのアドレスを指定するが、メモリを活性化しない状態を示す信号である。
TCOSは、メモリを活性化するが、書き込み又は読み出しを行わない状態を示す信号である。
TACCは、書き込み又は読み出しを実行する状態を示す信号である。
TCOHは、書き込み又は読み出しの終了後にメモリを非活性化しない状態を示す信号である。
The state signal is a signal indicating the state of access to the memory in the memory control circuit. There are TACS, TCOS, TACC, and TCOH as signals indicating the memory access state.
TACS is a signal that specifies a memory address but does not activate the memory.
The TCOS is a signal indicating a state in which the memory is activated but writing or reading is not performed.
TACC is a signal indicating a state in which writing or reading is executed.
TCOH is a signal indicating a state in which the memory is not deactivated after completion of writing or reading.
なお、IDLEはメモリにアクセスしていない状態を示す信号である。
通常メモリアクセスの状態は、ステート信号がIDLE→TACS→TCOS→TACC→TCOH→IDLEの順で変化することにより、このステート信号に応じた状態を経て変化する。メモリ制御回路は、このステート信号の長さやタイミングを制御することができる。
IDLE is a signal indicating that the memory is not being accessed.
The state of the normal memory access changes through a state corresponding to this state signal when the state signal changes in the order of IDLE → TACS → TCOS → TACC → TCOH → IDLE. The memory control circuit can control the length and timing of this state signal.
Validは、“HIGH”となることで活性化し、メモリに対してアクセスを行うことを示す信号である。このValidは“HIGH”となってから、ステート信号TACS、TCOS、TACC、TCOHが順次変化する期間と同一のクロック期間経過後に“LOW”となる。 Valid is a signal indicating that the memory is activated when it becomes “HIGH” and the memory is accessed. After this Valid becomes “HIGH”, it becomes “LOW” after the same clock period as the period in which the state signals TACS, TCOS, TACC, and TCOH sequentially change.
次に、メモリ制御回路からメモリに出力される信号について説明する。
アドレス信号ADDRは、アドレスバスによって指定されたメモリのアドレスを、メモリ制御回路がメモリに対して指定するための信号である。したがってアドレス信号ADDRにはアドレスバスと同じアドレスが指定される。このメモリのアドレスの指定開始となるのは、メモリ制御回路がIDLEの状態から他の状態へと変化するタイミングである。また、メモリ制御回路が、このアドレスを指定する期間は、ステート信号TACS、TCOS、TACC、TCOHが順次変化する期間と同一のクロック期間である。
Next, signals output from the memory control circuit to the memory will be described.
The address signal ADDR is a signal for the memory control circuit to specify the memory address specified by the address bus to the memory. Therefore, the same address as the address bus is designated for the address signal ADDR. This memory address designation starts when the memory control circuit changes from the IDLE state to another state. In addition, the period in which the memory control circuit designates this address is the same clock period as the period in which the state signals TACS, TCOS, TACC, and TCOH sequentially change.
チップセレクト信号nCSは、メモリのバンクを選択する信号であり、このチップセレクト信号nCSが“LOW”となると選択したバンクが活性化する。このチップセレクト信号nCSが“LOW”となる期間(『予め定められた期間』)は、メモリ制御回路のステート信号TCOS、TACC、TCOHが順次変化する期間と同一のクロック期間である。この期間経過後チップセレクト信号nCSは“HIGH”となり、当該バンクは非活性化する。 The chip select signal nCS is a signal for selecting a memory bank, and the selected bank is activated when the chip select signal nCS becomes “LOW”. The period when the chip select signal nCS is “LOW” (“predetermined period”) is the same clock period as the period when the state signals TCOS, TACC, and TCOH of the memory control circuit sequentially change. After this period, the chip select signal nCS becomes “HIGH” and the bank is inactivated.
リード信号nRDは、メモリ制御回路がアクセスしたメモリから出たデータの読み出しを行うための信号であり、“LOW”となることで活性化する。リード信号nRDが“LOW”となる期間は、ステート信号がTACCの期間と同一のクロック期間であり、この期間経過後“HIGH”となる。 The read signal nRD is a signal for reading data output from the memory accessed by the memory control circuit, and is activated when it becomes “LOW”. The period in which the read signal nRD is “LOW” is the same clock period as the period of the state signal TACC, and becomes “HIGH” after this period.
DATA信号は、メモリに対する書き込みデータ又は読み出しデータをメモリ制御回路とメモリ間で転送するための信号である。メモリに記憶されたデータは、ステート信号がTACCから他の信号に切り替わるタイミングで読み出される。 The DATA signal is a signal for transferring write data or read data for the memory between the memory control circuit and the memory. The data stored in the memory is read at a timing when the state signal is switched from TACC to another signal.
ローバイトセレクト信号nLBは、メモリの下位側のビット(バイト)を選択することを示す信号であり“LOW”になると活性化する。例えば16ビットメモリを使用した場合、nLBが“LOW”になると下位8ビット(1バイト)が選択される。このローバイトセレクト信号nLBが“LOW”となる期間は、アクセスを行うメモリが16ビットメモリであり、かつチップセレクト信号nCSが“LOW”となる期間である。なおアクセスを行うメモリが8ビットの場合にはnLB信号は“HIGH”となる。 The low byte select signal nLB is a signal indicating that the lower bit (byte) of the memory is selected, and is activated when it becomes “LOW”. For example, when a 16-bit memory is used, when nLB becomes “LOW”, the lower 8 bits (1 byte) are selected. The period when the low byte select signal nLB is “LOW” is a period when the memory to be accessed is a 16-bit memory and the chip select signal nCS is “LOW”. When the memory to be accessed is 8 bits, the nLB signal becomes “HIGH”.
nHB/nWRHは、端子がnHBとnWRHとで兼用され、接続されるメモリの種類によって切り替えられる。
ハイバイトセレクト信号nHBは、メモリの上位側、例えば16ビットの内上位8ビット(1バイト)を選択する信号であり、アクセスするメモリが16ビットメモリの時のみ活性化する信号である。
ライトハイバイト信号nWRHは、メモリに書き込みを行う信号でありデータバスの上位側が有効であることを示す信号である。
nHB / nWRH has a terminal shared by nHB and nWRH, and is switched depending on the type of memory to be connected.
The high byte select signal nHB is a signal for selecting the upper side of the memory, for example, the upper 8 bits (1 byte) of 16 bits, and is activated only when the memory to be accessed is a 16-bit memory.
The write high byte signal nWRH is a signal for writing to the memory and indicates that the upper side of the data bus is valid.
メモリへのアクセスが、例えば16ビットメモリから、アクセスを行うメモリが各アドレスに記憶されるビット数が8ビットからなるメモリを2つ備えたメモリ(8bit×2メモリ、以下、8ビットメモリとする)に切り替わる時には、端子がnHBからnWRHに切り替わる。図5ではアクセスするメモリが16ビットなので、この時端子はnHBとして機能している。 Access to the memory is, for example, a 16-bit memory, and a memory having two memories each having an 8-bit number of bits stored in each address (8-bit × 2 memory, hereinafter referred to as 8-bit memory) ), The terminal switches from nHB to nWRH. Since the memory to be accessed is 16 bits in FIG. 5, the terminal functions as nHB at this time.
なお、読み出しの動作において、nHB/nWRHは、16ビットメモリにアクセスする場合チップセレクト信号nCSが“LOW”となる期間で“LOW”となり、8ビットメモリにアクセスする場合は“HIGH”となる。 In the read operation, nHB / nWRH is “LOW” when the chip select signal nCS is “LOW” when accessing the 16-bit memory, and “HIGH” when accessing the 8-bit memory.
次に、図5のタイムチャートについて説明する。<内部信号>はメモリ制御回路内の信号を示し、<端子>はメモリ制御回路からメモリに出力される信号を示している。 Next, the time chart of FIG. 5 will be described. <Internal signal> indicates a signal in the memory control circuit, and <Terminal> indicates a signal output from the memory control circuit to the memory.
まず、<内部信号>について説明する。
アドレスバスにt0からt1の期間CPUからアクセスを行うメモリのアドレスA0が指定される。
同時に、t0でValidが“HIGH”となり、それに応じてt1でステート信号がIDLEからTACSへ変化する。
Validはステート信号がIDLE以外の期間と同クロック周期経過後、すなわちt4で“LOW”になる。
First, <internal signal> will be described.
The address A0 of the memory that is accessed from the CPU during the period from t0 to t1 is designated on the address bus.
At the same time, Valid becomes “HIGH” at t0, and the state signal changes from IDLE to TACS at t1 accordingly.
Valid becomes “LOW” after the same clock cycle as the period other than the period when the state signal is IDLE, that is, at t4.
ステート信号は、IDLE→TACS→TCOS→TACC→TCOH→IDLEの順に変化する。まずt1でTACSに変化し、t2でTCOS、t3でTACC、t4でTCOH、となる。また、ステート信号は、t4でValidが“LOW”となることによりt5でIDLEに変化する。 The state signal changes in the order of IDLE → TACS → TCOS → TACC → TCOH → IDLE. First, it changes to TACS at t1, TCOS at t2, TACC at t3, and TCOH at t4. Further, the state signal changes to IDLE at t5 when Valid becomes “LOW” at t4.
次に、<端子>の信号について説明する。これらの信号はすべて、ステート信号に基づいて変化する。
まず、ステート信号がTACSに変化するt1でアドレス信号ADDRに、CPUからアドレスバスに指定されたアドレスA0が指定される。
そして、ステート信号がTCOSに変化するt2でチップセレクト信号が“LOW”になる。
同時にアクセスするメモリが16ビットメモリなのでnLBが“LOW”となり、nHB/nWRHも“LOW”となる。
次に、ステート信号がTACCに変化するt3で、リード信号nRDが“LOW”となる。
ステート信号がTACCからTCOHに変化するt4でリード信号nRDが“HIGH”となり、アドレスA0に記憶されていたデータD0がDATA信号に読み出される。
なお、読み出されたデータD0は、<内部信号>のデータバスに出力される。
そして、ステート信号がIDLEに変化するt5で、チップセレクト信号nCSが“HIGH”となり、アドレス信号ADDRのアドレスA0の指定が終了する。
Next, the signal of <terminal> will be described. All of these signals change based on the state signal.
First, at t1 when the state signal changes to TACS, the address A0 specified by the CPU on the address bus is specified as the address signal ADDR.
The chip select signal becomes “LOW” at t2 when the state signal changes to TCOS.
Since the memory to be accessed at the same time is a 16-bit memory, nLB becomes “LOW” and nHB / nWRH also becomes “LOW”.
Next, at t3 when the state signal changes to TACC, the read signal nRD becomes “LOW”.
At t4 when the state signal changes from TACC to TCOH, the read signal nRD becomes “HIGH”, and the data D0 stored at the address A0 is read to the DATA signal.
The read data D0 is output to the data bus of <internal signal>.
At t5 when the state signal changes to IDLE, the chip select signal nCS becomes “HIGH”, and the designation of the address A0 of the address signal ADDR is completed.
このように、メモリ制御回路ではメモリの読み出しまたは書き込みに対する状態に対するステート信号TACS、TCOS、TACC、TCOHが設定されていて、読み出しまたは書き込みを行う期間のtaccに対して、アドレスのセットアップやバンク選択のセットアップのための期間tacs、tcos、tcohを設けている。 As described above, in the memory control circuit, the state signals TACS, TCOS, TACC, and TCOH for the state for reading or writing of the memory are set, and address setup and bank selection are performed for tacc during the period of reading or writing. Periods tacs, tcos, and tcoh for setup are provided.
本実施の形態では、1クロック期間を1とするとtacs=tcos=tcoh=1、tacc=3であり、この期間に応じてステート信号が変化する。書き込み又は読み出しを行う期間であるtaccは0以外の値であるが、tacs、tcos、tcohは、高速にアクセスを行う場合には0に設定することが可能となっている。
図6は、従来のメモリ制御回路による問題を説明するためのタイムチャートである。
この例では、メモリ制御回路がアクセスするメモリとして16ビットメモリ(以下バンク0とする)と8ビットメモリ(以下バンク1とする)との2つのバンクが接続されている。
メモリ制御回路は読み出しおよび書き込みの指示をCPUからアドレスバス、データバスを介して受け、Valid、ステート信号の各信号を生成する。
また、メモリ制御回路は、接続された複数のメモリに対してアドレス信号ADDR、バンク0へのチップセレクト信号nCS0、バンク1へのチップセレクト信号nCS1、リード信号nRD、ローバイトセレクト信号nLB、nHB/nWRH信号を出力する端子および、DATA信号を入出力する端子を備えている。
16ビットメモリであるバンク0は、メモリ制御回路の出力に対応して、アドレス信号ADDR、チップセレクト信号nCS0、リード信号nRD、ローバイトセレクト信号nLB、nHB信号を入力する端子および、DATA信号を入出力する端子を備えている。
FIG. 6 is a time chart for explaining a problem caused by a conventional memory control circuit.
In this example, two banks of a 16-bit memory (hereinafter referred to as bank 0) and an 8-bit memory (hereinafter referred to as bank 1) are connected as memories accessed by the memory control circuit.
The memory control circuit receives read and write instructions from the CPU via the address bus and data bus, and generates Valid and state signal signals.
In addition, the memory control circuit performs an address signal ADDR, a chip select signal nCS0 to the
一方、8ビットメモリであるバンク1は、メモリ制御回路の出力に対応して、アドレス信号ADDR、チップセレクト信号nCS1、リード信号nRD、nWRH信号を入力する端子および、DATA信号を入出力する端子を備えている。
以上の各信号はCPUにて、メモリ制御回路を動作するために設定されるシステムクロックCLKに同期して変化する。
On the other hand,
Each of the above signals changes in synchronization with the system clock CLK set for operating the memory control circuit in the CPU.
次に、図6のタイムチャートについて説明する。
この図6の場合では、高速アクセスを行うためバンク0、バンク1ともにステート信号に応じてtacs=tcos=tcoh=0と設定している。なおバンク0に対するtacs、tcos、tacc、tcohをそれぞれtacs0、tcos0、tacc0、tcoh0とし、バンク1に対するtacs、tcos、tacc、tcohをそれぞれtacs1、tcos1、tacc1、tcoh1とする。またバンク0に対するValid、ステート信号をそれぞれ、Valid0、ステート0信号とし、バンク1に対するValid、ステート信号をそれぞれ、Valid1、ステート1信号とする。
Next, the time chart of FIG. 6 will be described.
In the case of FIG. 6, tacs = tcos = tcoh = 0 is set in accordance with the state signal in both
まず、<内部信号>について説明する。
アドレスバスにCPUから、t0からt1の期間バンク0のアドレスA0が指定され、続いてt1からt3の期間バンク1のアドレスA1が指定される。
バンク0のアドレスA0の指定によってt0でValid0が“HIGH”となる。
Valid0はステート0信号がIDLE以外の期間と同一のクロック周期経過後、すなわちt2で“LOW”になる。
そして、Valid0が“HIGH”であることによって、t1でステート0信号がIDLEからTACCに変化する。この例の場合tacs0=tcos0=tcoh0=0なのでステート0信号はIDLE→TACC→IDLEの順で変化する。
また、ステート0信号は、t2でValid0が“LOW”となるのに応じて、t3でTACCからIDLEに変化する。
First, <internal signal> will be described.
The address A0 of the
By specifying the address A0 of the
Valid0 becomes “LOW” after the same clock period has elapsed in the
When Valid0 is “HIGH”, the
Further, the
一方、t2では、Valid0が“LOW”となるのと同時に、アドレスバスのアドレスA1の指定に応じたValid1が“HIGH”となる。
Valid1はステート1信号がIDLE以外の期間と同一のクロック周期経過後、すなわちt4で“LOW”になる。
そして、Valid1が“HIGH”であることによって、t3でステート1信号がIDLEからTACCに変化する。この例の場合tacs1=tcos1=tcoh1=0なのでステート1信号はIDLE→TACC→IDLEの順で変化する。
また、ステート1信号は、t4でValid1が“LOW”となることによって、t5でTACCからIDLEに変化する
次に、<端子>の信号について説明する。これらの信号はすべて、ステート信号に基づいて変化する。
まず、ステート0信号がTACCに変化するt1でアドレス信号ADDRに、CPUからアドレスバスに指定されたアドレスA0が指定される。
同時にバンク0のチップセレクト信号nCS0、リード信号nRD、ローバイトセレクト信号nLB、nHB/nWRH信号が“LOW”になり、バンク0の読み出しのアクセスが開始する。
そして、ステート0信号がTACCからIDLEに変化し、ステート1信号がIDLEからTACCに変化するt3では、アドレス信号ADDRの指定がバンク0のアドレスA0からバンク1のアドレスA1に切り替わる。また、バンク0のチップセレクト信号nCS0が“HIGH”となり、バンク1のチップセレクト信号nCS1が“LOW”となる。
この場合、バンク0とバンク1の連続読み出しとなるのでリード信号nRDは、t3で“LOW”のままである。
On the other hand, at t2, Valid0 becomes “LOW” and at the same time, Valid1 according to the designation of the address A1 of the address bus becomes “HIGH”.
Valid1 becomes “LOW” after the same clock period as that of the period other than IDLE in the
When Valid1 is “HIGH”, the
The
First, at t1 when the
At the same time, the chip select signal nCS0, the read signal nRD, the low byte select signal nLB, and the nHB / nWRH signal of the
Then, at t3 when the
In this case, since the
また、アクセスを行うメモリが16ビットメモリから8ビットメモリになるので、ローバイトセレクト信号nLB、nHB/nWRH信号はt3で“HIGH”となる。
アドレスA0に記憶されていたデータD0はDATA信号に読み出される。
なお、読み出されたデータD0は、<内部信号>のデータバスに出力される。
同時に、t3ではステート1信号の変化によってチップセレクト信号nCS1が“LOW”になり、バンク1の読み出しのアクセスが開始する。
ステート1信号がTACCからIDLEに変化するt5でリード信号nRD、チップセレクト信号nCS1が“HIGH”になり、アドレス信号ADDRによるアドレスA1の指定が終了する。
アドレスA1に記憶されていたデータD1はDATA信号に読み出される。なお、読み出されたデータD1は、<内部信号>のデータバスに出力される。
Since the memory to be accessed is changed from the 16-bit memory to the 8-bit memory, the low byte select signals nLB and nHB / nWRH signals become “HIGH” at t3.
Data D0 stored at address A0 is read out to the DATA signal.
The read data D0 is output to the data bus of <internal signal>.
At the same time, the change of the
At t5 when the
The data D1 stored at the address A1 is read to the DATA signal. The read data D1 is output to the data bus of <internal signal>.
この図6のタイムチャートのように高速アクセスを行うためステート信号のTACS、TCOS、TCOHをパスした場合、Valid0とValid1の“HIGH”の期間の切り替わりがt2において連続となり、アドレス信号ADDRのA0からA1への指定の切り替えも連続となる。また、この場合、チップセレクト信号nCS0の“LOW”から“HIGH”への変化と、チップセレクト信号nCS1の“HIGH”から“LOW”への変化とは、同じタイミングのt3となる。 As shown in the time chart of FIG. 6, when the state signals TACS, TCOS, and TCOH are passed to perform high-speed access, switching between Valid0 and Valid1 “HIGH” period is continuous at t2, and from A0 of the address signal ADDR. The designation switching to A1 is also continuous. In this case, the change of the chip select signal nCS0 from “LOW” to “HIGH” and the change of the chip select signal nCS1 from “HIGH” to “LOW” are t3 of the same timing.
nHB/nWRHの端子は、バンク1の8ビットのメモリへの切り替わりに応じてnHBからnWRHに切り替えられ、nHB/nWRHの信号は、バンク1に書き込みが行われないように“LOW”から“HIGH”に変化する。このnHB/nWRHの“HIGH”への立ち上がりのタイミングが、回路の遅延などで図6に示す点線のように遅れた場合、チップセレクト信号nCS1とnWRH信号とリード信号nRDがすべて“LOW”となる期間が生じる。よってバンク1の書き込みと読み出しが不定となり誤動作を起こす恐れがある。
The nHB / nWRH terminal is switched from nHB to nWRH in accordance with the switching to the 8-bit memory of
このように、従来のメモリ制御回路では、異なるバンクに連続してアクセスを行う場合に、アクセスの遅延による誤動作の恐れがあるという問題があった。 As described above, the conventional memory control circuit has a problem that there is a risk of malfunction due to access delay when accessing different banks successively.
本発明は、複数の異なるバンクに連続アクセスをしてもアクセスの遅延による誤動作を防止するメモリ制御回路を提供することを目的とする。 It is an object of the present invention to provide a memory control circuit that prevents malfunction due to access delay even when consecutive accesses are made to a plurality of different banks.
本発明に係る主たる発明は、複数のバンクを有するメモリに対するアクセスを制御する制御回路と、前記複数のバンクのアドレスを選択的に指定するための第1信号と、前記複数のバンクを選択的に活性化するための第2信号に基づいて、前記メモリに対するアクセス方法を判定するアクセス判定回路と、前記複数のバンクに対するアドレスの指定から活性化までの期間を設定する第1の設定回路と、を備え、前記アクセス判定回路は、前記第1信号が前記複数のバンクを指定し、前記第2信号が当該複数のバンクを連続して活性化させることを示す場合の判定結果に基づいて、前記第1の設定回路に対して前記複数のバンクに対するアドレスの指定と活性化を同時とすることを示す値が設定されているときには、当該複数のバンクの活性化が切り替わる際に当該複数のバンクをともに非活性化とする期間を設けるべく、前記制御回路を制御する、ことを特徴とするメモリ制御回路である。 The present invention The main invention of the includes a control circuit for controlling access to the memory having a plurality of banks, a first signal for selectively specifying the address of the plurality of banks, selectively said plurality of banks An access determination circuit for determining an access method for the memory based on a second signal for activation, and a first setting circuit for setting a period from address designation to activation for the plurality of banks ; wherein the access judging circuit, the first signal specifying a plurality of banks, the second signal is based on the determination result of the case showing that activates sequentially the plurality of banks, the first when the value indicating that the simultaneous designation and activation of address to the plurality of banks to one of the setting circuit is set, activation of the plurality of banks To provide a period in which both the deactivate the plurality of banks when switching, to control the control circuit, a memory control circuit, characterized in that.
本発明の他の特徴については、添付図面及び本明細書の記載により明らかとなる。 Other features of the present invention will become apparent from the accompanying drawings and the description of this specification.
本発明によれば複数の異なるバンクに連続アクセスをしてもアクセスの遅延による誤動作を防止することができる。 According to the present invention, it is possible to prevent malfunction due to access delay even when consecutive accesses are made to a plurality of different banks.
===メモリ制御回路の構成===
図1は、本発明の実施の形態に係るメモリ制御回路を説明するためのブロック図である。なお、図1に示すメモリ制御回路は集積回路であることとする。
=== Configuration of Memory Control Circuit ===
FIG. 1 is a block diagram for explaining a memory control circuit according to an embodiment of the present invention. Note that the memory control circuit shown in FIG. 1 is an integrated circuit.
また、以後の説明では集積回路の内部を内部とし、集積回路の外部を外部と呼ぶことにする。
集積回路100は、CPU200とメモリ制御回路300とを備えている。また本実施の形態では、メモリ制御回路300はCPU200からの指示に基づきメモリ400とメモリ500に対してアクセスを行い読み出しまたは書き込みを行う。
ここで、メモリ400(以下バンク0とする)には、例えば16ビットメモリが接続され、また、メモリ500(以下バンク1とする)には、例えば8ビットメモリが接続される。これらのメモリは例えばSRAMを使用することができる。
CPU200は、メモリ400、500に対してデータの書き込み又は読み出しを行うための信号を内部バスに出力する。
In the following description, the inside of the integrated circuit is referred to as the inside, and the outside of the integrated circuit is referred to as the outside.
The
Here, a 16-bit memory, for example, is connected to the memory 400 (hereinafter referred to as bank 0), and an 8-bit memory, for example, is connected to the memory 500 (hereinafter referred to as bank 1). For example, SRAM can be used as these memories.
The
メモリ制御回路300は、内部バスから、バンクのアドレスを選択的に指定するためのアドレスバス、データ転送を行うためのデータバスを接続している。
またメモリ制御回路300は、内部バスから、メモリにアクセスすることを示すセレクト信号、内部バスが活性か否かを示す状態信号、メモリ制御回路300を動作させるためのシステムクロックCLKを入力している。
そして、メモリ制御回路300は、CPU200からの指示に基づき、外部に接続されたメモリ400、500に対し、アドレス信号ADDR、DATA信号、バンク0に対するチップセレクト信号nCS0、バンク1に対するチップセレクト信号nCS1、ローバイトセレクト信号nLB、リード信号nRD、およびnWR/nWRL、nHB/nWRHの信号を入出力し、書き込み又は読み出しのアクセスを行う。
The
The
Then, based on an instruction from the
なお、nWR/nWRLは、端子がnWRとnWRLとで兼用されていて、接続されるメモリの種類によって切り替えられる。ライト信号nWRは、書き込みを行うための信号であり、ライトローバイト信号nWRLは、書き込みを行う信号でありデータバスの下位側が有効であることを示す信号である。nWR/nWRLの端子はアクセスを行うメモリが16ビットメモリの時はnWRに、アクセスを行うメモリが8ビットメモリの時はnWRLに切り替えられる。 It should be noted that nWR / nWRL has a terminal shared by nWR and nWRL, and is switched according to the type of memory to be connected. The write signal nWR is a signal for performing writing, and the write raw byte signal nWRL is a signal for performing writing and indicates that the lower side of the data bus is valid. The nWR / nWRL terminal is switched to nWR when the memory to be accessed is a 16-bit memory, and to nWRL when the memory to be accessed is an 8-bit memory.
メモリ400(バンク0)は、メモリ制御回路300の出力に対応して、アドレス信号ADDR、チップセレクト信号nCS0、リード信号nRD、ローバイトセレクト信号nLB、nHB信号、nWR信号を入力する端子および、DATA信号を入出力する端子を備えている。
The memory 400 (bank 0) corresponds to the output of the
一方、メモリ500(バンク1)は、メモリ制御回路300の出力に対応して、アドレス信号ADDR、チップセレクト信号nCS1、リード信号nRD、nWRH信号、nWRL信号を入力する端子および、DATA信号を入出力する端子を備えている。
On the other hand, the memory 500 (bank 1) inputs / outputs a terminal for inputting an address signal ADDR, a chip select signal nCS1, a read signal nRD, an nWRH signal, an nWRL signal, and a DATA signal corresponding to the output of the
また、メモリ制御回路300は、レジスタアクセス回路10、レジスタ(『設定回路』)20、21、状態制御回路(『制御回路』)30、31、外部インターフェイス回路40、メモリアクセス検出回路50、アクセス判定回路60を備えている。以上の回路は、すべて内部バスから入力されるクロックCLKに同期して動作を行う。
The
レジスタアクセス回路10は、内部バスから入力した信号の内、レジスタにアクセスする信号を判別し、対応するレジスタ群20または21に出力する。
レジスタ群20は、レジスタ70、71、72、73、74、75の各レジスタを有している。
レジスタ71は、アクセスを行うメモリのアドレスの指定からメモリが活性化するまでの期間tacsに相当する値が設定されるものである。
レジスタ72は、メモリの活性化から読み出し開始までの期間tcosに相当する値が設定されるものである。
レジスタ73は、メモリの書き込み又は読み出しを実行する期間taccに相当する値が設定されるものである。
レジスタ74は、書き込み又は読み出し終了からメモリが非活性になるまでの期間tcohに相当する値が設定されるものである。
レジスタ75は、外部に接続されたメモリの種類により端子の設定を切り替えるための値が設定されるものである。例えば、アクセスを行うメモリが8ビットか16ビットかを示すCPU200からの入力によって、nHB/nWRHの端子はnHBまたはnWRHに切り替えられる。
レジスタ70は、異なる複数のバンクで連続したアクセスが行われるときに追加される期間(『複数のバンクをともに非活性化とする期間』)に相当する値が設定されるものある。
これらの各レジスタ70乃至75の値は、CPU200によって設定される。
The
The
The register 71 is set with a value corresponding to a period tacs from the designation of the address of the memory to be accessed until the memory is activated.
The register 72 is set with a value corresponding to a period tcos from the activation of the memory to the start of reading.
The register 73 is set with a value corresponding to a period tacc for executing writing or reading of the memory.
The register 74 is set with a value corresponding to a period tcoh from the end of writing or reading until the memory becomes inactive.
The register 75 is set with a value for switching the terminal setting depending on the type of memory connected to the outside. For example, the terminal of nHB / nWRH is switched to nHB or nWRH by an input from the
The register 70 is set to a value corresponding to a period (“period in which both banks are deactivated”) added when consecutive accesses are performed in a plurality of different banks.
The values of these registers 70 to 75 are set by the
なお、レジスタ群21はレジスタ群20と同様に構成されている。メモリ制御回路300は、バンク数と同数のレジスタ群20、21を備えている。
The
状態制御回路30は、レジスタ群20で設定された値と、メモリアクセス検出回路50から出力されるValidと、アクセス判定回路60の出力とに基づいて、メモリへのアクセス状態を示す信号IDLE、TACS、TCOS、TACC、TCOHの出力の制御を行う。
この制御を行うため、状態制御回路30は、レジスタ群20のレジスタ71、72、73、74の値をそれぞれダウンカウントするACSカウンタ、COSカウンタ、ACCカウンタ、COHカウンタを備えている。そして、状態制御回路30は、各レジスタ70乃至75に設定された値からクロックCLKに同期してダウンカウントし、レジスタ値が「0」となるまでの期間をそれぞれTACS、TCOS、TACC、TCOHの状態とする信号を出力する。この信号によって外部インターフェイス回路40から出力される信号の状態が制御される。
なお、状態制御回路31は、状態制御回路30と同様に構成されている。本実施の形態ではレジスタ群20、21に対応して状態制御回路30、31を設けているが、状態制御回路30、31は1つでもよい。例えば、状態制御回路30に、レジスタ群20、21からそれぞれの値が入力され適宜切り替えるようになっていてもよい。
Based on the value set in the
In order to perform this control, the
The
メモリアクセス検出回路50は、内部バスから外部のメモリにアクセスすることを検出する回路であり、内部バスからメモリをアクセスすることを示すセレクト信号を入力し、外部のメモリにアクセスすることを示すValid(『第2信号』)を出力する。
The memory
アクセス判定回路60は、アドレスバスと、Validと、内部バスがアクティブか否かを示す状態信号とに基づいて、外部のメモリへのアクセス方法を判定しその結果を状態制御回路30に出力する。
例えばアドレスバスが複数のバンクのアドレスを指定し、それに対応するバンクのValidが連続で“HIGH”となるとき、ACSカウンタはtacs、tareaに相当する値の加算値をダウンカウントする。
The
For example, when the address bus designates the addresses of a plurality of banks and the valid of the corresponding banks is continuously “HIGH”, the ACS counter counts down the added value corresponding to tacs and talent.
外部インターフェイス回路40は、アドレスバス、データバスの転送内容、レジスタ75の設定値、状態制御回路30の出力に応じて、メモリに対する入力、出力のタイミングが制御された、アドレス信号ADDR、DATA信号、チップセレクト信号nCS0、nCS1、ローバイトセレクト信号nLB、リード信号nRD、nWR/nWRL信号、nHB/nWRH信号を出力するものである。
The
例えば、チップセレクト信号nCSは、状態制御回路30がIDLE又はTACSの信号を出力するときに“HIGH”となり、それ以外の場合には“LOW”となる。また、リード信号nRDは、状態制御回路30がIDLE、TACS、TCOS、TCOHの信号を出力するとき“HIGH”となり、TACCの信号を出力するとき“LOW”となる。また、nWR/nWRL、nHB/nWRHは、アクセスするメモリが16ビットか8ビットかを示すレジスタ群20内のレジスタ75によってそれぞれ切り替えられる。
For example, the chip select signal nCS becomes “HIGH” when the
===状態制御回路30の出力変化===
図2は、本発明の実施の形態に係るメモリ制御回路300内の状態制御回路30の状態変化を説明するための図である。状態制御回路30は、外部のメモリ400、500にアクセスを行っていないときにはValidが“LOW”であり、メモリをIDLEの状態とするステート信号を出力している。ステート信号は、このIDLEから、通常前述のようにTACS→TCOS→TACC→TCOHの順で変化する。
=== Change in Output of
FIG. 2 is a diagram for explaining a state change of the
この図2において、メモリアクセス検出回路50からValidが“LOW”すなわちメモリをアクセスしないことを示す信号が入力された場合には、状態制御回路30の出力がTACS、TCOS、TACC、TCOHのいずれのステート信号であっても、状態制御回路30の出力はIDLEのステート信号に変化する。以後、Validが“HIGH”であることを前提に説明する。
In FIG. 2, when Valid is “LOW”, that is, a signal indicating that the memory is not accessed is input from the memory
また、図2における各カウンタ=1とは、クロックCLKの1周期のダウンカウントを行うことを示している。ダウンカウントはクロックCLKの整数倍の定倍CLKでこととする。例えばtacsの場合レジスタ71にクロックCLKの1周期に相当するレジスタ値が設定され、そのレジスタに対応するカウンタでダウンカウントを行う。そしてレジスタ値が「0」になったタイミングで次の状態に変化する。 Further, each counter = 1 in FIG. 2 indicates that one cycle of the clock CLK is counted down. The down count is assumed to be a fixed multiple CLK that is an integral multiple of the clock CLK. For example, in the case of tacs, a register value corresponding to one cycle of the clock CLK is set in the register 71, and down-counting is performed by a counter corresponding to the register. Then, it changes to the next state at the timing when the register value becomes “0”.
レジスタ71、レジスタ72、レジスタ74が0の場合には、ダウンカウントを行わず、次の状態へと変化する。
なお、前述したように書き込み又は読み出しを行う期間のレジスタ73は0以外が設定され、TACCがパスすることはない。
When the register 71, the register 72, and the register 74 are 0, the down count is not performed and the state is changed to the next state.
Note that, as described above, the register 73 during the period of writing or reading is set to a value other than 0, and the TACC is not passed.
《同バンクあるいは連続でないメモリアクセス時》
まず、ステート信号がIDLEである状態で、Validが“HIGH”となることでCPUにより指定されるメモリにアクセスを開始する。状態制御回路30は、tacs≠0の場合にはステート信号としてTACSを出力する。tacs=0かつtcos≠0の場合にはTCOSを出力する。また、tacs=0かつtcos=0の場合にはTACCと出力する。
<When accessing the same bank or non-contiguous memory>
First, in a state where the state signal is IDLE, when the Valid becomes “HIGH”, access to the memory designated by the CPU is started. The
ステート信号がTACSに変化すると、状態制御回路30内の、この状態に対応したACSカウンタにレジスタ71の値が取り込まれ、カウントが行われる。ACSカウンタにてクロックCLKの1周期のダウンカウントが終了すると、状態制御回路30は、tcos≠0の場合はステート信号としてTCOSを出力し、tcos=0の場合は、TACCを出力する。
When the state signal changes to TACS, the value of the register 71 is taken into the ACS counter corresponding to this state in the
ステート信号がTCOSに変化すると、状態制御回路30内の、この状態に対応したCOSカウンタにレジスタ72の値が取り込まれ、カウントが行われる。COSカウンタにてクロックCLKの1周期のダウンカウントが終了すると、状態制御回路30は、TACCを出力する。
When the state signal changes to TCOS, the value of the register 72 is taken into the COS counter corresponding to this state in the
ステート信号がTACCに変化すると、状態制御回路30内の、この状態に対応したACCカウンタにレジスタ73の値が取り込まれ、カウントが行われる。ACCカウンタにてクロックCLKの1周期のダウンカウントが終了すると状態制御回路30は、tcoh≠0の場合はステート信号としてTCOHを出力し、tcos=0の場合は、Validが“LOW”となりIDLEを出力する。
When the state signal changes to TACC, the value of the register 73 is taken into the ACC counter corresponding to this state in the
ステート信号がTCOHに変化すると、制御回路30内の、この状態に対応したCOHカウンタにレジスタ74の値が取り込まれ、カウントが行われる。COHカウンタにてクロックCLKの1周期のダウンカウントが終了すると、Validが“LOW”となり状態制御回路30はステート信号としてIDLEを出力する。
When the state signal changes to TCOH, the value of the register 74 is taken into the COH counter corresponding to this state in the
《異なるバンクに連続アクセス時》
本発明の状態制御回路30は、図2に示すように、異なるバンクに対して連続してアクセスをする場合、ステート信号がIDLEからTACSへ変化する設定としてレジスタ70とレジスタ71の加算値をACSカウンタに取り込むようにアクセス判定回路60によって制御される。このレジスタ70とレジスタ71の加算値tacs+tareaは、CPU200によって、0でない値が設定される。例えばクロックCLKの1クロック期間以上の値が設定される。よってtacs=0として設定されていても、TACSの状態をパスすることがなくなる。以下通常と同様に変化を行う。
なお、tareaの追加は、tacsの値に関係なく、異なるバンクに対して連続してアクセスをする場合に行うので、tacs+tareaとなる場合のtacsの値は0でなくてもよい。
<< When accessing different banks continuously >>
As shown in FIG. 2, when the
Note that the addition of “tare” is performed when accessing different banks continuously regardless of the value of “tacs”. Therefore, the value of “tacs” in the case of “tacs + teare” does not have to be zero.
===メモリ制御回路の動作===
図3は、図1における本発明の実施の形態に係るメモリ制御回路300の動作を説明するためのタイムチャートである。この図3は、メモリ400(バンク0)のアドレスA0から、メモリ500(バンク1)のアドレスA1に連続してアクセスを行う場合の一例を示している。
=== Operation of Memory Control Circuit ===
FIG. 3 is a time chart for explaining the operation of the
なお、バンク0にはレジスタ群20、バンク1にはレジスタ群21が対応しているものとする。また、高速アクセスのため、レジスタ群20にはtacs0=tcos0=tcoh0=0、tacc0=3、tarea0=1が設定され、レジスタ群21にはtacs1=tcos1=tcoh1=0、tacc1=3、tarea1=0が設定されている。
It is assumed that
各バンクへのアクセスにつき、バンク0に対するValidとステート信号をそれぞれValid0、ステート0信号とし、バンク1に対するValidとステート信号をそれぞれValid1、ステート1信号とする。
For access to each bank, Valid and state signals for
まず、<内部信号>について説明する。
CPUからアドレスバスに、t0からt1の期間にバンク0のアドレスA0が指定され、続いてt1からt3の期間にバンク1のアドレスA1が指定される。
バンク0のアドレスA0の指定によってt0でValid0が“HIGH”になる。
Valid0はステート0信号がIDLE以外の期間と同一のクロック周期経過後すなわちt2で“LOW”になる。
そして、Valid0が“HIGH”であることによって、t1でステート0信号がIDLEからTACCに変化する。この例の場合tacs0=tcos0=tcoh0=0なのでステート0信号はIDLE→TACC→IDLEの順で変化する。
また、ステート0信号は、t2でValid0が“LOW”となることによって、t3でTACCからIDLEに変化する。
First, <internal signal> will be described.
The address A0 of the
By specifying the address A0 of the
The Valid0 becomes “LOW” after the same clock cycle as the period other than the period when the
When Valid0 is “HIGH”, the
Further, the
一方、t2では、Valid0が“LOW”に変化するのと同時に、アドレスバスにおけるアドレスA1の指定に応じたValid1が“HIGH”となる。
Valid1はステート1信号がIDLE以外の期間と同一のクロック周期経過後すなわちt5で“LOW”になる。
そして、Valid1が“HIGH”であることによって、t3でステート1信号がIDLEから変化する。この場合異なるバンクへの連続アクセスとなるので、ステート1信号がTACSである期間としてtacs1+tarea0が設定される。ステート1信号はIDLE→TACS→TACC→IDLEの順で変化する。
On the other hand, at t2, Valid0 changes to “LOW”, and at the same time, Valid1 corresponding to the designation of address A1 on the address bus becomes “HIGH”.
Valid1 becomes “LOW” after the same clock period as that of the period other than IDLE has passed in the
Since Valid1 is “HIGH”, the
図3に示すようにステート1信号は、t3でIDLEからTACSに変化し、t4でTACCに変化する。そしてステート1信号は、t5でValid1が“LOW”に変化するのに応じてt6でTACCからIDLEに変化する
なお、内部バスが活性か否かを示す状態信号はアドレスバスにCPUからの指示がある期間はアクティブを示している。この場合、CPUがアドレスA0とアドレスA1を連続して指定しているので、状態信号はこの期間連続してアクティブを示している。
As shown in FIG. 3, the
次に、<端子>の信号について説明する。これらの信号はすべて、ステート信号に基づいて変化する。
まず、ステート0信号がTACCに変化するt1でアドレス信号ADDRに、CPUからアドレスバスに指定されたアドレスA0が指定される。
同時にバンク0のチップセレクト信号nCS0、リード信号nRD、ローバイトセレクト信号nLB、nHB/nWRH信号が“LOW”になり、バンク0の読み出しのアクセスが開始する。
Next, the signal of <terminal> will be described. All of these signals change based on the state signal.
First, at t1 when the
At the same time, the chip select signal nCS0, the read signal nRD, the low byte select signal nLB, and the nHB / nWRH signal of the
そして、ステート0信号がTACCからIDLEに変化し、ステート1信号がIDLEからTACSに変化するt3では、アドレス信号ADDRの指定がバンク0のアドレスA0からバンク1のアドレスA1に切り替わる。また、バンク0のチップセレクト信号nCS0が“HIGH”となる。ステート1信号がTACSの状態なので、バンク1のチップセレクト信号nCS1は“HIGH”のままであり、リード信号nRD“HIGH”となる。
また、アクセスを行うメモリが16ビットメモリから8ビットメモリになるので、ローバイトセレクト信号nLB、nHB/nWRH信号はt3で“HIGH”になる。
アドレスA0に記憶されていたデータD0はDATA信号に読み出される。
なお、読み出されたデータ信号D0は、<内部信号>のデータバスに出力される。
Then, at t3 when the
Further, since the memory to be accessed is changed from the 16-bit memory to the 8-bit memory, the low byte select signals nLB and nHB / nWRH signals become “HIGH” at t3.
Data D0 stored at address A0 is read out to the DATA signal.
The read data signal D0 is output to the <internal signal> data bus.
次に、ステート1信号がTACSからTACCに変化するt4で、チップセレクト信号nCS1が“LOW”となり、バンク1の読み出しのアクセスが開始する。
そして、ステート1信号がTACCからIDLEに変化するt6でリード信号nRD、チップセレクト信号nCS1が“HIGH”となり、アドレス信号ADDRによるアドレスA1の指定が終了する。
アドレスA1に記憶されていたデータD1はDATA信号に読み出される。
なお、読み出されたデータD1は、<内部信号>のデータバスに出力される。
Next, at t4 when the
At time t6 when the
The data D1 stored at the address A1 is read to the DATA signal.
The read data D1 is output to the data bus of <internal signal>.
このように、異なるバンクへの連続アクセスの場合ステート信号のTACSの設定としてtareaを追加することにより、チップセレクト信号nCS0、nCS1をともに“HIGH”とする期間を設定することができ、nHB/nWRH信号が“HIGH”となるタイミングの遅れによる誤動作を防止することができる。 As described above, in the case of continuous access to different banks, by adding “tare” as the setting of the TACS of the state signal, it is possible to set a period in which both the chip select signals nCS0 and nCS1 are “HIGH”, and nHB / nWRH It is possible to prevent malfunction due to a delay in timing when the signal becomes “HIGH”.
===その他の実施の形態===
図4は、本発明のその他の実施の形態に係るメモリ制御回路300の動作を説明するためのタイムチャートである。
=== Other Embodiments ===
FIG. 4 is a time chart for explaining the operation of the
このタイムチャートは、例えばCPU200内部にデータを一時的に保存しておくキャッシュメモリ(不図示)およびキャッシュ専用のバス(不図示)を備えていて、メモリ制御回路300がキャッシュメモリとアクセスすることによって内部バスがIDLEとなる期間を含む場合の一例を示している。このように、CPU内部にキャッシュメモリを備え、キャッシュメモリに繰り返し使われる特定のデータを記憶しておくと、アクセス時間を大幅に短縮することができる。
This time chart includes, for example, a cache memory (not shown) for temporarily storing data in the
この図4では、アドレスバスのA0とA1の指定が連続でなくt1からt2においてアドレスバスにCPUからのアドレスを指定する信号が無いという点で前述の実施の形態と異なっている。状態信号もアドレスバスに対応して、t1からt2において内部バスに信号が無いバスIDLEとなっている。 FIG. 4 is different from the above-described embodiment in that the designation of address buses A0 and A1 is not continuous and there is no signal for designating an address from the CPU on the address bus from t1 to t2. The status signal also corresponds to the address bus, and is a bus IDLE with no signal on the internal bus from t1 to t2.
しかしバンク0のValid0の“HIGH”から“LOW”の変化と、バンク1のValid1の“LOW”から“HIGH”への変化のタイミングは共にt2であり、外部のメモリに対しては、異なるバンクへの連続アクセスとなる。
However, the timing of change from “HIGH” to “LOW” of Valid0 of
このように内部バスにおいてアドレス指定の間にIDLE状態が存在しても、レジスタ群20、21の設定値によって、Valid0の立ち下がりとValid1の立ち上がりのタイミングが同時となり、アドレス信号ADDRの指定のA0からA1への切り替えが連続となることがある。
よって、この場合も、外部のメモリに対して、異なるバンクへの連続アクセスとなるのでメモリ制御回路300は、TACSの期間の設定としてtacs1にtarea0を追加する。
In this way, even if the IDLE state exists during address designation in the internal bus, the timing of the fall of Valid0 and the rise of Valid1 are the same, depending on the set values of the
Therefore, in this case as well, since the external memory is continuously accessed to different banks, the
以上説明したように、異なるバンクに連続でアクセスをする場合にステート信号がTACSである期間としてtacsにtareaを加算した値を設定することにより、チップセレクト信号nCS0、nCS1をともに“HIGH”とする期間を設けることができる。この期間では両バンクとも“HIGH”であるので、信号の遅延、例えばnHB/nWRH信号が“LOW”から“HIGH”になるタイミングの遅れによる誤動作を防止することができる
なお、本実施の形態ではtacs=0の場合について説明したが、tacsが0でない場合にも、異なるバンクに連続してアクセスする場合、ステート信号がTACSである期間としてtacsにtareaを加算した値を設定することにより、信号の遅延による誤動作を防止することができる
また、tacsが0の場合、すなわち高速アクセスによってアドレスの指定期間とバンクの活性化の期間が同時となる場合には、異なるバンクの活性化の切り替わり時に、バンクの活性化の切り替わりが同時となり誤動作が生じやすいので、tacs=0の場合にtareaを加算するようにしてもよい。この場合、高速アクセス時の誤動作を防止することができる。
このtareaの値の設定をするレジスタを、アクセスを行うバンクに対応して設けることにより、各バンクに対応してtareaを追加することができる。
As described above, the chip select signals nCS0 and nCS1 are both set to “HIGH” by setting a value obtained by adding “tare” to “tacs” as a period in which the state signal is TACS when accessing different banks continuously. A period can be provided. Since both banks are “HIGH” during this period, it is possible to prevent malfunction due to signal delay, for example, delay in timing when the nHB / nWRH signal changes from “LOW” to “HIGH”. Although the case where tacs = 0 is described, even when tacs is not 0, when continuously accessing different banks, the signal is obtained by setting a value obtained by adding “tare” to “tacs” as a period in which the state signal is TACS. In addition, when tacs is 0, that is, when the address designation period and the bank activation period are simultaneous due to high-speed access, when activation of different banks is switched, Since the activation of the bank is switched simultaneously and malfunction is likely to occur, tacs = 0 It may be added to the tarea in the case. In this case, malfunction during high-speed access can be prevented.
By providing a register for setting the value of the “tare” corresponding to the bank to be accessed, it is possible to add a “tare” corresponding to each bank.
また、ステート信号がTACSである期間としてtacsにtareaを加算した値はシステムクロックCLKの少なくとも1クロック期間とすることにより、バンク0とバンク1の活性化の期間の切り替わりが連続となることがなくなるので、誤動作を防止することができる。
Further, when the state signal is TACS and the value obtained by adding “tare” to “tacs” is set to at least one clock period of the system clock CLK, switching between the activation periods of the
なお本発明では、内部信号にバスIDLEの期間が存在しても、メモリへのアクセスが連続となる時には、連続アクセスとみなしTACSの状態の期間を追加することで誤動作を防止することができる。 In the present invention, even if the bus IDLE period exists in the internal signal, when the access to the memory is continuous, it can be regarded as continuous access and the malfunction can be prevented by adding the period of the TACS state.
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
例えば、メモリ400、500は、図1の構成でなくてもよい。またSRAM以外のメモリ、例えばFlashメモリなどを使用してもよい。
As mentioned above, although embodiment of this invention was described concretely based on the embodiment, it is not limited to this and can be variously changed in the range which does not deviate from the summary.
For example, the
10 レジスタアクセス回路
20、21 レジスタ
30、31 状態制御回路
40 外部インターフェイス回路
50 メモリアクセス検出回路
60 アクセス判定回路
100 集積回路
200 CPU
300 メモリ制御回路
400、500 メモリ
10 Register access circuit
20, 21 registers
30, 31
50 Memory access detection circuit
60 Access determination circuit
100 integrated circuits
200 CPU
300 Memory control circuit
400, 500 memory
Claims (4)
前記複数のバンクのアドレスを選択的に指定するための第1信号と、前記複数のバンクを選択的に活性化するための第2信号に基づいて、前記メモリに対するアクセス方法を判定するアクセス判定回路と、
前記複数のバンクに対するアドレスの指定から活性化までの期間を設定する第1の設定回路と、を備え、
前記アクセス判定回路は、
前記第1信号が前記複数のバンクを指定し、前記第2信号が当該複数のバンクを連続して活性化させることを示す場合の判定結果に基づいて、前記第1の設定回路に対して前記複数のバンクに対するアドレスの指定と活性化を同時とすることを示す値が設定されているときには、当該複数のバンクの活性化が切り替わる際に当該複数のバンクをともに非活性化とする期間を設けるべく、前記制御回路を制御する、ことを特徴とするメモリ制御回路。 A control circuit for controlling access to the memory having a plurality of banks,
An access determination circuit for determining an access method to the memory based on a first signal for selectively designating addresses of the plurality of banks and a second signal for selectively activating the plurality of banks. When,
A first setting circuit for setting a period from address designation to activation for the plurality of banks ;
The access determination circuit includes:
Based on a determination result when the first signal designates the plurality of banks and the second signal indicates that the plurality of banks are continuously activated, the first setting circuit is configured to When a value indicating that address designation and activation for a plurality of banks are simultaneously set is set , a period for deactivating both of the plurality of banks is provided when activation of the plurality of banks is switched. Therefore, the memory control circuit is characterized by controlling the control circuit.
前記複数のバンクをそれぞれ予め定められた期間活性化させるものであり、
前記複数のバンクの活性化を切り替える場合、所定の前記バンクが予め定められた期間活性化した直後に、当該バンクおよび次に活性化すべき前記バンクをともに非活性化とする期間を設け、当該期間の経過後、前記次に活性化すべきバンクを非活性化から予め定められた期間活性化させること、を特徴とする請求項1に記載のメモリ制御回路。 The control circuit includes:
Said plurality of banks is intended to period activated respective predetermined,
When switching the activation of the plurality of banks, immediately after the predetermined bank is activated for a predetermined period, a period for deactivating both the bank and the bank to be activated next is provided. 2. The memory control circuit according to claim 1, wherein after the elapse of time, the bank to be activated next is activated for a predetermined period from deactivation.
前記制御回路は、前記第2の設定回路の設定値に基づいて、前記複数のバンクの活性化に際し、前記複数のバンクをともに非活性化とする期間を設けることを特徴とする請求項1または2に記載のメモリ制御回路。 A second setting circuit corresponding to the plurality of banks for setting a period for inactivating both of the plurality of banks;
2. The control circuit according to claim 1, wherein when the plurality of banks are activated, the control circuit provides a period for inactivating both of the plurality of banks based on a setting value of the second setting circuit. 3. The memory control circuit according to 2.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004037205A JP4549073B2 (en) | 2004-02-13 | 2004-02-13 | Memory control circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004037205A JP4549073B2 (en) | 2004-02-13 | 2004-02-13 | Memory control circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005228142A JP2005228142A (en) | 2005-08-25 |
JP4549073B2 true JP4549073B2 (en) | 2010-09-22 |
Family
ID=35002805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004037205A Expired - Fee Related JP4549073B2 (en) | 2004-02-13 | 2004-02-13 | Memory control circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4549073B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4945125B2 (en) * | 2005-12-21 | 2012-06-06 | ラピスセミコンダクタ株式会社 | Memory control device |
JP6418983B2 (en) * | 2015-03-05 | 2018-11-07 | キヤノン株式会社 | MEMORY ACCESS CONTROL DEVICE, ITS CONTROL METHOD, AND PROGRAM |
-
2004
- 2004-02-13 JP JP2004037205A patent/JP4549073B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005228142A (en) | 2005-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4550439B2 (en) | ECC controller | |
US20170194042A1 (en) | Semiconductor memory and memory system | |
JPH0845277A (en) | Semiconductor memory | |
US6545942B2 (en) | Semiconductor memory device and information processing unit | |
JP4945125B2 (en) | Memory control device | |
US8239658B2 (en) | Internally derived address generation system and method for burst loading of a synchronous memory | |
US6769051B2 (en) | Memory controller and memory control method for controlling an external memory device to be accessible even in an addressing mode that is not supported thereby | |
EP0337385A2 (en) | Cache memory controller associated with a microprocessor | |
JP4549073B2 (en) | Memory control circuit | |
US6292867B1 (en) | Data processing system | |
US8074096B2 (en) | Semiconductor integrated circuit, memory system, memory controller and memory control method | |
US20020188771A1 (en) | Direct memory access controller for carrying out data transfer by determining whether or not burst access can be utilized in an external bus and access control method thereof | |
US20070094460A1 (en) | DRAM control circuit | |
JP6493044B2 (en) | Multiprocessor system | |
US6751130B2 (en) | Integrated memory device, method of operating an integrated memory, and memory system having a plurality of integrated memories | |
JP2638484B2 (en) | Data processing device | |
JP4749689B2 (en) | Memory control circuit and memory control method | |
JP2004206850A (en) | Semiconductor storage device | |
CN114253464B (en) | Method of controlling read request and memory controller having host device | |
JP2004146051A (en) | Integrated circuit and method which can execute read operation and write operation of data concurrently | |
JP4651206B2 (en) | Semiconductor memory device and information processing apparatus | |
JP3561670B2 (en) | Memory control circuit | |
JP3600830B2 (en) | Processor | |
JP3563340B2 (en) | Memory controller | |
JP3222647B2 (en) | Automatic memory bank switching system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100329 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100406 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100525 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100608 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100706 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130716 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |