JP5270605B2 - マイクロコントローラ - Google Patents

マイクロコントローラ Download PDF

Info

Publication number
JP5270605B2
JP5270605B2 JP2010074430A JP2010074430A JP5270605B2 JP 5270605 B2 JP5270605 B2 JP 5270605B2 JP 2010074430 A JP2010074430 A JP 2010074430A JP 2010074430 A JP2010074430 A JP 2010074430A JP 5270605 B2 JP5270605 B2 JP 5270605B2
Authority
JP
Japan
Prior art keywords
memory
address
data
word line
cpu
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.)
Active
Application number
JP2010074430A
Other languages
English (en)
Other versions
JP2011210295A (ja
Inventor
尚夫 針谷
俊秀 坪井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010074430A priority Critical patent/JP5270605B2/ja
Priority to US13/072,262 priority patent/US8539173B2/en
Publication of JP2011210295A publication Critical patent/JP2011210295A/ja
Application granted granted Critical
Publication of JP5270605B2 publication Critical patent/JP5270605B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Static Random-Access Memory (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Dram (AREA)

Description

本発明は、メモリ装置、並びに、メモリ装置を備えたメモリシステム及びマイクロコントローラ、さらには、メモリ装置を制御するメモリ制御装置に関する。特に、マイクロコントローラに内蔵するフラッシュメモリ等の不揮発性メモリ装置に関する。
マイクロコントローラ等のコンピュータシステムの高速動作のためには、メモリに対するアクセスも高速化する必要がある。システム的にメモリへのアクセスを高速化する技術としては、メモリインタリーブの技術が知られている。メモリインタリーブの技術では、メモリの連続するアドレスを複数のメモリに分割し、連続するアドレスを並列にアクセスすることにより、見かけ上のアクセス時間を短縮する技術である。メモリインタリーブにおいて、CPUが1回のアクセスで必要とするメモリデータのアドレスが並列にアクセスできるアドレスの範囲内に常に含まれていれば、単純にメモリを分割すればよいが、異なるアドレスにまたがる場合は、分割したメモリ毎にインクリメント又はデクリメントしたアドレスを与える等の複雑な制御が必要となる。
特許文献1乃至4には、このようなミスアラインデータ(データの先頭アドレスが1回のアクセスでアクセス可能なアドレスからずれているデータ)を一度のバスサイクルで取り出す先行技術が記載されている。この特許文献1乃至4に記載されている先行技術はいずれも、メモリをそれぞれ上位ビットと下位ビットを記憶する複数のメモリに分割し、分割したメモリ毎にインクリメント(またはデクリメント)したアドレスを与えるアドレス変換手段を設け、与えられたアドレスに対して、上位ビットのメモリと下位ビットのメモリで異なったアドレスへアクセスできるようにしてミスアラインデータを一度にアクセスできるようにしている。
一方、特許文献5の第1図には、上記特許文献1乃至4のようにメモリを分割したり、アドレス変換手段を設けたりせずにミスアラインデータを一度にアクセスできるようにする記憶装置が記載されている。特許文献5では、特許文献1乃至4よりも簡単な構造で同等の機能を実現している。特に、メモリを分割する必要がないので、読み出し用の回路や書き込み用の回路を分割したメモリ毎に設ける必要がないので、1チップ化に適している。
特許文献5では、ワード(i)の1ビットのメモリセルがワード線(i)とワード線(i+1)の2本のワード線と2本のビット線に接続される。2本のビット線は、それぞれワード線(i)が選択されたときのデータリードライト用のビット線とワード線(i+1)が選択されたときのデータリードライト用のビット線である。また、ワード線(i)はワード(i−1)のメモリセルと、ワード線(i+1)はワード(i+1)のメモリセルと共有されている。上記構成により、1本のワード線を選択することにより、連続する2ワードのメモリセルが選択され、ビット線を選択することにより、上位ビットと下位ビットで異なるアドレスを選択することができ、ミスアラインしたデータに対して一度にアクセスすることができる。
特開平3−44748号公報 特開平4−359334号公報 特開平5−73406号公報 特開平5−127985号公報 特開昭63−308783号公報
以下の分析は本発明により与えられる。メモリ装置、メモリシステムにおいては、アクセスの高速化だけではなく、低消費電力化が求められている。特に、一つの集積化回路の中にコンピュータシステムを実現するマイクロコントローラ、特にフラッシュメモリを内蔵するマイクロコントローラにおいて、CPUの処理性能の向上、低消費電力化は益々重要な設計要件となってきている。
特許文献5のメモリ回路の構成によると、1回のメモリアクセスに対して2ワードのデータが読み出される構成になっているため、1回のメモリアクセスに対して1ワードのデータを読み出す一般的な構成のメモリの動作電流の2倍必要になる。
本発明の1つの側面によるマイクロコントローラは、複数のワード線と複数のビット線を設け、前記複数のワード線とビット線によりアドレスを特定してアクセスできるように構成されたメモリ装置であって、一本の前記ワード線に対応して連続するアドレスの複数のメモリセルが配置され、それぞれに対応する複数の前記ビット線から並列に前記連続するアドレスの複数のメモリセルにアクセスできるように構成され、前記複数のワード線のうち、第一のワード線と前記第一のワード線と連なるアドレスを指定する第二のワード線との間で重複するアドレス範囲を設け、前記第一のワード線に接続される第一のメモリセルと前記第二のワード線に接続される第二のメモリセルが同一アドレスに対応して重複して設けられているメモリ装置と、CPUと、前記CPUの制御により前記メモリ装置へのアクセスを行うメモリ制御装置と、を内蔵し、前記メモリ制御装置は、前記重複するアドレスについて、前記第一、第二のメモリセルのうち、一方から読み出したデータを選択して前記CPUへ出力し、前記複数のワード線のうち、一のワード線の選択により並列に前記メモリ装置から読み出し可能な連続するアドレスの数をnとしたときに、前記CPUと前記メモリ制御装置はm(1<m<n)アドレスのデータを並列に転送可能なビット幅を有するデータバスにより接続され、連なるアドレスを指定するワード線との間でそれぞれm−1アドレスのメモリセルが重複して設けられている。
本発明によれば、低消費電力で高性能のメモリ装置、メモリシステム、マイクロコントローラを提供できる。また、本発明のメモリ制御装置によれば、上記メモリ装置に対して容易にアクセスすることができる。
本発明の一実施例によるメモリ装置を用いたマイクロコントローラのブロック図である。 一実施例による(a)メモリシステムのブロック図と(b)メモリセルアレイの一部の構成を示すブロック図である。 一実施例において(a)ミスアラインがない場合の読み出しタイミング図と、(b)ミスアラインが発生した場合の読み出しタイミング図である。 比較例によるマイクロコントローラのブロック図である。 比較例によるメモリシステムのブロック図である。 比較例において(a)ミスアラインがない場合の読み出しタイミング図と、(b)ミスアラインが発生した場合の読み出しタイミング図である。 別な実施例によるマイクロコントローラのブロック図である。 別な実施例におけるメモリシステムのブロック図である。
最初に本発明の実施形態の概要について、説明する。なお、概要の説明において引用する図面及び図面の符号は実施形態の一例として示すものであり、それにより本発明による実施形態のバリエーションを制限するものではない。
本発明の一実施形態のメモリ装置1は、例えば、図2、図8に示すように、複数のワード線13と複数のビット線14を設け、複数のワード線13とビット線14によりアドレスを特定してアクセスできるように構成されたメモリ装置1であって、一本のワード線(例えば図2(a)のワード線N)に対応して連続するアドレスの複数のメモリセル(アドレス4N〜4N+4のメモリセル)が配置され、それぞれに対応する複数のビット線から並列に連続するアドレスの複数のメモリセル(アドレス4N〜4N+4のメモリセル)にアクセスできるように構成され、複数のワード線のうち、第一のワード線(ワード線N)と第一のワード線と連なるアドレスを指定する第二のワード線(ワード線N+1)との間で重複するアドレス範囲(アドレス4N+4が重複)を設け、第一のワード線(N)に接続される第一のメモリセル(Byte4のアドレス4N+4のメモリセル)と第二のワード線(N+1)に接続される第二のメモリセル(Byte0のアドレス4N+4のメモリセル)が同一アドレスに対応して重複して設けられている。上記構成によれば、従来複数のワード線アドレスにまたがるミスアラインしたデータに対しても1回でアクセスできる。例えば、アドレス4N+3と4N+4とに格納されたミスアラインしたデータに対しては、比較例の図5では、2回のメモリ読み出しが必要だったのに対して、上記実施形態によれば、1回のメモリ読み出しでアクセスできる。
また、好ましくは、上記メモリセルは不揮発性半導体メモリセルである。上記構成によれば、同じデータを2つのメモリセルに書き込む必要があるが、読み出しアクセス回数が少なくできるので、書き込み回数より読み出し回数が多くなることが多い不揮発性半導体メモリに適している。
さらに、一実施形態のメモリシステム5は、例えば図2、図8に示すように、上記メモリ装置1と、メモリ装置1へのアクセス制御を行うメモリ制御装置2と、を含むメモリシステム5であって、メモリ制御装置2は、メモリ装置1に対する読み出し動作時に、重複するアドレスについて、第一、第二のメモリセルのうち、一方から読み出したデータを選択して出力する。すなわち、上記メモリシステムによれば、重複したメモリセルのうち、どちらからデータを読み出せばよいか考慮することなく、高速にデータを読み出すことができる。具体的には、メモリ制御装置2が、外部から指定された読み出しアドレスと読み出しデータ長が、第一及び第二のメモリセルで重複するアドレス(例えば4N+4)を含む場合において、第一のワード線Nによって選択され第二のワード線N+1によっては選択されないアドレス(例えば、4N+3)をさらに含む場合は、前記第一のメモリセルから読み出したデータを出力し、第二のワード線N+1によって選択され第一のワード線Nによっては選択されないアドレス(例えば、4N+5)をさらに含む場合は、第二のメモリセルから読み出したデータを出力する。上記によってミスアラインした2連続アドレスのデータであっても1回のアクセスでデータを読み出すことができる。
さらに、メモリ装置1からのバースト読み出し時にバースト読み出しアドレス範囲の途中に含まれる第一、第二のメモリセルのうち、一方のメモリセルからの読み出しを行わない。例えば、図8において、アドレス4N+2〜4N+5の4アドレス連続するデータをバースト読み出しする場合、ワード線Nの4N+4のアドレスについては、データの読み出しを行わないことにより、消費電流を低減できる。
また、一実施形態のマイクロコントローラは、図1、図7に示すように、上記メモリ装置1と、CPU3と、CPU3の制御により前記メモリ装置へのアクセスを行うメモリ制御装置2と、を内蔵し、メモリ制御装置2は、重複するアドレスについて、第一、第二のメモリセルのうち、一方から読み出したデータを選択して前記CPUへ出力する。
また、上記マイクロコントローラにおいて、複数のワード線のうち、一のワード線の選択により並列にメモリ装置1から読み出し可能な連続するアドレスの数をnとしたときに、CPU3とメモリ制御装置2はm(1<m<n)アドレスのデータを並列に転送可能なビット幅を有するデータバスData[15−0]により接続され、連なるアドレスを指定するワード線との間でそれぞれm−1アドレスのメモリセルが重複して設けられている。例えば、図2と図8では、n=5、m=2であるので、1アドレスのメモリセルがワード線NとN+1で重複している。m−1アドレスが重複するようにすれば、データの先頭アドレスがどのアドレスから始まっても、データバスの1回の転送で転送できるデータを1回のアクセスで読み出すことができる。
さらに、一実施形態のメモリ制御装置2は、第一のワード線アドレス(ワード線Nの選択アドレス)の選択によってアクセスできる複数のメモリセルに含まれる第一のメモリセル(4N+4)と、第二のワード線アドレス(ワード線N+1の選択アドレス)の選択によってアクセスできる複数のメモリセルに含まれる第二のメモリセル(4N+4)と、が同一アドレスに重複して配置された構造を有するメモリ装置1へのアクセスを制御するメモリ制御装置2であって、メモリ制御装置2は、メモリ装置1に対する読み出しアドレスが第一及び第二のメモリセルのアドレスを含む場合に、第一及び第二のメモリセルのうち、一方から読み出したデータを選択して出力する。以上、実施形態の概要について説明したが、以下、実施例について、図面を参照してさらに詳しく説明する。
[実施例1の構成]
図1は、実施例1によるマイクロコントローラのブロック図である。図1のマイクロコントローラは、CPU3と、CPUが実行するプログラムやデータが格納されたメモリ装置1と、メモリ装置1から読み出したデータやプログラムを整列してCPUへ出力するメモリ制御装置(アライナ)2を備えている。また、メモリ装置1とメモリ制御装置2はメモリシステム5を構成し、CPU3からは、メモリ装置1とメモリ制御装置2を意識せずに、全体で1つのメモリシステム5としてアクセスすることができる。
CPU3とメモリ制御装置2は16ビットのデータバスData[15−0]によって接続されている。メモリ装置1から読み出されたデータは、メモリ制御装置2によってCPU3が要求するバイト数のデータに整列され、メモリ制御装置2がデータバスData[15−0]にデータを出力する。また、CPU3は16ビットのアドレスバスAdr[15−0]に接続される。アドレスバスAdr[15−0]はアドレスラッチ4にも接続されており、アドレスラッチ4はCPU3が出力するアドレスをラッチし、メモリ装置1にラッチしたアドレスを供給する。また、アドレスラッチ4にラッチしたアドレスの下位2ビットAdr[1−0]はメモリ制御装置2にも供給されている。
さらに、リード信号RDとバイト数信号BNがCPU3からメモリ制御装置2に接続し、ウェイト信号WTがメモリ制御装置2からCPU3に接続されている。リード信号RDはCPU3からメモリ装置1のデータの読み出しを行うときにアクティブ(ハイレベル)になる信号である。また、バイト数信号BNは、CPU3からメモリ1に対して読み出しを行うデータのデータ長(バイト数)を指定する信号である。なお、CPU3が扱うデータには、1バイトのデータと2バイトのデータがあり、バイト数信号BNの論理レベルによって1バイト又は、2バイトのデータをメモリ制御装置2に対して要求する。さらに、ウェイト信号WTは、CPU3が要求するデータを次のバスサイクルまでに用意できない場合に、メモリ制御装置2からCPU3にウェイトをかける信号である。ハイレベルを出力する(アクティブにする)とウェイト状態になる。
メモリ装置1に格納されたデータをCPU3が読み出すときは、CPU3がメモリ装置1のアドレスを指定するとともに、要求するデータ長(1バイト又は2バイト)に合わせてビット数信号BNを指定し、読み出しを行うメモリ装置1の先頭アドレスをアドレスバスAdr[15−0]に出力し、リード信号RDをハイレベルにしてメモリ制御装置2に対してメモリ装置1からのデータの読み出しと転送を要求する。メモリ制御装置2は、メモリ装置1から読み出したデータをバイト数信号BNで指定されたデータ長のデータに整列してCPU3へ出力する。所定のサイクルまでに、CPUが要求したアドレスのデータについて、メモリ装置1からのデータの読み出しが完了していない場合は、ウェイト信号をハイレベルにして、メモリ装置1から読み出したデータの用意ができるまで、CPU3の命令実行を停止させる。
図2(a)は、メモリシステム5について、メモリ装置1の内部構成まで示したブロック図である。また、図2(b)は、メモリ装置1内部のメモリセルアレイ12の一部の構成を示すブロック図である。
図2(a)において、メモリ装置1は、アドレスラッチ4がラッチした16ビットのアドレスAdr[15−0]のうち、上位アドレスビットAdr[15−2]をデコードするアドレスデコーダ11とメモリセルアレイ12とセンスアンプ、データセレクタ16を備えている。アドレスデコーダ11からはワード線0〜N+1がメモリセルアレイ12に出力されている。
図2(b)に示すように、メモリセルアレイ12の内部は、複数のワード線13(図2(a)のワード線0〜N+1と同じもの)と直交する方向に複数のビット線14が設けられている。各ビット線は、センスアンプ、データセレクタ16に接続されている。また、ワード線13とビット線14との交点に対応してそれぞれ対応してメモリセル15が設けられている。
図2(a)に戻って説明を続けると、各ワード線には、Byte0〜Byte4の連続する5バイトアドレスのメモリセルが接続されている。また、各ワード線に接続された5バイトのメモリセルのうち、先頭アドレス(Byte0)のメモリセルは、一つ前のアドレスのワード線に接続されたメモリセルの最終アドレス(Byte4)のメモリセルとアドレスが重複して設けられている。また、各ワード線に接続された5バイトのメモリセルのうち、最終アドレス(Byte4)のメモリセルは、一つ後のアドレスのワード線に接続された先頭アドレス(Byte0)のメモリセルとアドレスが重複して設けられている。
具体的に説明すると、ワード線Nには、アドレスが連続するAdr4N、Adr4N+1、Adr4N+2、Adr4N+3、Adr4N+4の5バイトのメモリセルが接続されている。同様に、ワード線Nに続くアドレスを指定するワード線N+1には、Adr4N+4、Adr4N+5、Adr4N+6、Adr4N+7、Adr4N+8のアドレスが連続する5バイトのメモリセルが接続されている。すなわち、ワード線Nに接続されるByte4のメモリセルとワード線N+1に接続されるByte0のメモリセルのアドレスは、共にアドレスAdr4+4であり、同一アドレスに複数のメモリセルが重複して配置されている。
同様に、ワード線0に接続される5番目(Byte4)の最後のアドレスAdr4のメモリセルは、ワード線0に続くアドレスを指定するワード線1に接続される先頭アドレスAdr4(Byte0)のメモリセルとアドレスが重複し、ワード線1に接続される5番目の最後のアドレスAdr8(Byte4)のメモリセルは、ワード線1に続くアドレスを指定するワード線2に接続される先頭アドレスAdr8(Byte0)のメモリセルとアドレスが重複している。なお、図2(a)では、図示を省略しているが、AdrC、ADr4N+8のメモリセルもアドレスが重複して配置されている。すなわち、図2(a)では、4アドレス毎に一つの前の小さいアドレスを指定するワード線の5番目の最後のアドレス(Byte4)のメモリセルと続くアドレスを指定するワード線の1番目の最初のアドレス(Byte0)のメモリセルとが重複して設けられている。
このメモリシステム5では、アドレスAdr[15−0]を指定して、リード信号RDを活性化するとアドレスデコーダ11は、上位アドレスビットAdr[15−2]の値によって一つのワード線を選択され、メモリセルアレイ12からセンスアンプ、データセレクタ16を介して選択されたワード線に接続されているメモリセルから5バイト(5×8=40ビット)の連続するアドレスのデータがメモリ制御装置2に読み出されることになる。メモリ制御装置2は、メモリ装置1から読み出された5バイトのデータから、CPU3が1クロック前に指定したアドレスの下位ビットAdr[1−0]とバイト数信号BNの論理レベルによって、選択された1バイト又は2バイトのデータをデータバスData[15−0]へ出力する。
[実施例1の動作]
次に、図1のマイクロコントローラにおいて、このメモリシステム5に対してデータの読み出しを行うときの動作について説明する。図2において、メモリ装置1の各メモリセルには、あらかじめデータが書き込まれているとする。特にアドレスが重複したアドレスのメモリセルには、同じデータが書き込まれているものとする。図3(a)は、アドレスにミスアラインがない場合の読み出しタイミング図である。図3(a)でCLKはCPUの動作クロックであるシステムクロックである。
システムクロックのクロックサイクル1では、CPU3からメモリ装置1にアドレス0000H(末尾のHは16進数であることを示す。本明細書において以下、同じ)が入力され、メモリ装置1の読み出し動作が始まる。
クロックサイクル2では、メモリ装置1からアドレス0000Hを先頭アドレスとする連続するアドレスの5バイトのデータがメモリ制御装置2へ読み出される。CPU3がクロックサイクル1で指定したバイト数信号BN(この場合は2バイト)とアドレスの下位ビットAdr[1−0](この場合は0H)により、メモリ制御装置2は、読み出された5バイトのデータのうち、先頭の2バイト(アドレス0000H、0001H)のデータをデータバスData[15−0]を介してCPU3に送る。
クロックサイクル3では、CPU3から次のアドレスであるアドレス0004Hが入力され、次のメモリ装置1の読み出し動作が始まる。CPU3はメモリ制御装置2から送られてきたアドレス0000Hと0001Hの2バイトのデータを処理する。また、CPU3がクロックサイクル2で指定したバイト数信号BN(この場合は2バイト)とアドレスの下位ビットAdr[1−0](この場合は2H)により、メモリ制御装置2は、アドレス0002Hと0003Hの2バイトのデータをCPU3に送る。
クロックサイクル4では、CPU3は、メモリ制御装置2から送られてきたアドレス0002Hと0003Hの2バイトのデータを処理する。また、メモリ装置1からアドレス0004Hを先頭アドレスとする連続するアドレスの5バイトのデータがメモリ制御装置2へ読み出される。CPU3がクロックサイクル3で指定したバイト数信号BN(この場合は2バイト)とアドレスの下位ビットAdr[1−0](この場合は0H)により、メモリ制御装置2は、アドレス0004Hと0005Hの2バイトのデータをCPU3に送る。
この様にCPU3が2バイト単位のデータをメモリ装置1に対して要求する場合でも、アドレスが偶数から始まる2バイトのデータである場合には、アドレスミスアラインが発生していないので、メモリ装置1に格納されている1ワード5バイトのデータのうち、最後の1バイト(Byte4)のデータは使用されない。
次に、図3(b)は、アドレスにミスアラインが発生した場合の読み出しタイミング図である。本実施例ではCPU3が出力するアドレスがクロックサイクル1から1クロック毎に0005H、0007H、0009H、000BHと変化し、バイト数信号BNはこの4クロックサイクルの間は2バイトを指定するものとする。クロックサイクル1では、CPU3からメモリ装置1にアドレス0005Hが入力され、メモリ装置1の読み出し動作が始まる。
クロックサイクル2では、メモリ装置1からアドレス0004Hを先頭アドレスとする連続するアドレスの5バイト(アドレス0004H〜0008H)のデータがメモリ制御装置2へ読み出される。CPU3がクロックサイクル1で指定したバイト数信号BN(この場合は2バイト)とアドレスの下位ビットAdr[1−0](この場合は1H)により、メモリ制御装置2は、読み出された5バイトのデータのうち、アドレス0005Hと0006Hの2バイトのデータをデータバスData[15−0]を介してCPU3に送る。
クロックサイクル3では、次のアドレスであるアドレス0009HがCPU3から入力され、メモリ装置1の次の読み出し動作が始まる。CPU3はメモリ制御装置2から送られてきたアドレス0005Hと0006Hの2バイトのデータを処理する。また、CPU3がクロックサイクル2で指定したバイト数信号BN(この場合は2バイト)とアドレスの下位ビットAdr[1−0](この場合は3H)により、メモリ制御装置2は、アドレス0007Hと0008Hの2バイトのデータをCPU3に送る。
クロックサイクル4では、CPU3は、メモリ制御装置2から送られてきたアドレス0007Hと0008Hの2バイトのデータを処理する。また、メモリ装置1からアドレス8を先頭アドレスとする連続するアドレスの5バイトのデータ(アドレス0008H〜000CH)がメモリ制御装置2へ読み出される。CPU3がクロックサイクル3で指定したバイト数信号BN(この場合は2バイト)とアドレスの下位ビットAdr[1−0](この場合は1H)により、メモリ制御装置2は、アドレス0009Hと000AHの2バイトのデータをCPU3に送る。
クロックサイクル3の動作が示す様に、CPU3が2バイト単位のデータをメモリ装置1に対して要求する場合において、アドレスが奇数から始まる2バイトのデータである場合には、アドレスミスアラインが発生しているので、メモリ装置1に格納されている1ワード5バイトのデータのうち、アドレスが重複している最後の1バイトのデータと次のアドレスのワード線の先頭バイトのデータは、最後の1バイトのデータが使用され、先頭バイトのデータはCPU3へのデータ転送には、用いられない。
メモリ制御装置2は、CPU3からアドレスが連続する2バイトデータの読み出しの要求があったときに、その2バイトのアドレスにメモリセルが重複して設けられているアドレスが含まれる場合には、重複していない方のアドレスのメモリセルが存在する方のワード線を選択し、そのワード線の選択によって、2バイトデータの読み出しを行う。たとえば、図2(a)において、アドレス0007Hと0008Hの2バイトのデータを読み出すときは、アドレス0008Hのメモリセルは、ワード線1のByte4とワード線2のByte0に重複して存在する。しかし、アドレス0007Hのメモリセルは、ワード線1にのみ存在する。したがって、アドレスが小さいほうのワード線1を選択し、アドレス0007Hと0008Hの2バイトのデータをワード線1から一括して読み出しを行う。一方、アドレス0008Hと0009Hの2バイトのデータを読み出すときは、アドレス0008Hのメモリセルは、ワード線1のByte4とワード線2のByte0に重複して存在するが、アドレス0009Hのメモリセルは、ワード線2にのみ存在する。したがって、ワード線2を選択し、アドレス0008Hと0009Hの2バイトのデータを一括して読み出しを行う。なお、メモリ制御装置2が重複したメモリセルのうち、どちらのメモリセルから読み出されたデータをCPUへ転送するかは、CPUが指定するアドレスの下位2ビットAdr[1−0]とバイト数信号BNによって選択することができる。
すなわち、実施例1のメモリ装置1によれば、CPU3が2バイトのデータの読み出しをメモリ装置1に対して要求する場合において、アドレスがミスアラインしていても、1本のワード線を選択したときに選択されるアドレスの先頭アドレス(Byte0)と最終アドレス(Byte4)が他のワード線を選択したときに選択されるアドレスと重複しているので、連続する2バイトのデータが必ず1本のワード線の選択により読み出すことができ、ワード線の選択を変えてメモリ装置1からの読み出しを2回行う必要がない。したがって、CPU3はメモリ装置1から高速にデータの読み出しを行うことができる。
マイクロコントローラにおいて、データバスを使用して1回のデータ転送で転送できる連続したアドレスのデータを、必ず1回のメモリ読み出しでできるようにするためには、一つのワード線の選択によって並列にメモリ装置から読み出し可能な連続するアドレスの数をnとしたときに、CPUとメモリ制御装置がmアドレスのデータを並列して転送可能なビット幅を有するデータバスで接続されているとすると、上記nアドレスのうち、m−1アドレスのメモリセルを前後のアドレスを指定するワード線に接続されるメモリセルとアドレスを重複して持たせると、アドレスがミスアラインした場合でも、データバスを使った1回のデータ転送で送れる連続したアドレスのデータを1本のワード線を選択することにより読み出すことができる。なお、1回のデータ転送で転送できるデータを1回のメモリ装置へのアクセスで読み出すためには、m<nである必要がある。また、mは複数である。上記実施例では、n=5でm=2であるので、ワード線間で重複して設けるアドレスはm−1=1である。すなわち、1アドレス(バイト)だけワード線間でメモリセルが重複して設けられている。
[比較例]
図4は、実施例1に対する比較例によるマイクロコントローラのブロック図である。図4の構成は、図1の実施例1のマイクロコントローラの構成と比較すると、メモリ装置1がメモリ装置101に、メモリ制御装置2がメモリ制御装置102に、メモリシステム5がメモリシステム105に置き換わっていることを除いて図1のマイクロコントローラと構成は同一である。図4のメモリ装置101は、図1のメモリ装置1のようにワード線間でアドレスを重複して設けていない点が異なっている。したがって、メモリ制御装置102も実施例1のメモリ制御装置2のように重複したアドレスについて、どちらのデータを転送するか等を判断する機能はない。
図5は、メモリシステム105について、メモリ装置101の内部構成まで示したブロック図である。メモリ装置101は実施例1のメモリ装置1のように連続するアドレスを指定するビット線との間でメモリセルのアドレスを重複して持たせることはしていない。実施例1のメモリ装置1では、1本のワード線には、5バイトの連続するアドレス(Byte0〜4)のメモリセルが接続されているのに対して、比較例のメモリ装置101では、1本のワード線には、4バイトの連続するアドレス(Byte0〜3)のメモリセルが接続されている点が異なっている。
次に比較例の動作について説明する。図6(a)は、比較例においてミスアラインがない場合の読み出しタイミング図であり、図6(b)は、比較例においてミスアラインが発生した場合の読み出しタイミング図である。図6(a)の場合、基本的な動作タイミングは、実施例1の図3(a)とほとんど同じである。ただし、図3(a)では、メモリ装置1から連続する5バイトのデータ(Byte0〜4)が読み出されていたのに対して、図6(a)では、メモリ装置101から連続する4バイトのデータ(Byte0〜3)が読み出されていることが違うだけである。
一方、アドレスミスアラインが発生した場合の動作は、実施例1とは異なってくる。図6(b)において、クロックサイクル2までの動作は、実施例1の図3(b)と同一なので、クロックサイクル3以降の動作について説明する。図6(b)において、クロックサイクル3では、次のアドレスであるアドレス0009HがCPU3から入力され、メモリ装置101の次の読み出し動作が始まる。CPU3はメモリ制御装置102から送られてきたアドレス0005Hと0006Hの2バイトのデータを処理する。また、CPU3がクロックサイクル1で指定したバイト数信号BN(この場合は2バイト)とアドレスの下位ビットAdr[1−0](この場合は3H)により、メモリ制御装置102はアドレス0007Hとアドレス0008HのデータをCPU3に送るが、アドレス0008Hのデータがまだメモリ装置101から読み出されていないため、アドレス0007Hと0008Hの2バイトのデータをCPU3に送ることができない。したがって、次のクロックサイクル4でウェイト信号WTをアクティブにして、メモリ装置1からの読み出しを待つ。
クロックサイクル4では、メモリ装置101からアドレス0008H〜000BHの4バイトのデータが読み出される。CPU3は、ウェイト信号WTがアクティブなので、バイト数信号BNを通じてメモリ制御装置102に対して2バイトのデータを要求したまま、処理を停止する。クロックサイクル5では、メモリ制御装置102は、アドレス0007Hと0008Hの2バイトのデータをCPU3に送り、ウェイト信号WTをインアクティブにする。
クロックサイクル6では、メモリ制御装置102は、アドレス0009Hと000AHの2バイトのデータをCPU3に送る。CPU3からアドレス000DHが入力されるとメモリ装置101はアドレス000CH〜000FHに相当するメモリセルが接続されるワード線3が選択され、選択されたメモリセルからの読み出しが開始される。クロックサイクル7では、メモリ装置101からのアドレス000CHのデータの読み出しが完了していないため、アドレス000BH、000CHの2バイトデータをCPU3に送ることができない。したがって、クロックサイクル7では、メモリ制御装置102はウェイト信号WTをアクティブにしてメモリ装置101からの読み出しを待つ。CPU3は処理を停止する。クロックサイクル8では、メモリ装置101からアドレス000CH〜000FHの4バイトのデータが読み出されるため、メモリ制御装置102はウェイト信号WTをインアクティブにして、アドレス000BHと000CHのデータをCPUへ送る。
すなわち、比較例では、CPU3が読み出しを要求する2バイト以上の長さのデータが1本のワード線の選択によって選択できるアドレスの境界にかかる場合、すなわち、CPU3が要求する2バイト以上のデータが2本のワード線にまたがる場合には、メモリの読み出しが2回必要になるため、2回目のメモリ読み出しまでCPUの処理が停止する。このため、処理能力が低下することになる。図6(b)では、奇数アドレスからの2バイト読み出しを連続して行う場合に、CPU3は2クロックサイクルの動作と1クロックサイクルの動作停止を繰り返すことを示している。
また、実施例1では、ワード線に接続されるメモリセルの数が、比較例の5/4倍であり、ビット線の数も比較例の5/4倍であるため、メモリ装置1の消費電力は、比較例の5/4倍程度に増加することが考えられる。一方、実施例1では、ミスアラインが連続した場合であっても、メモリ装置1への見かけ上のアクセス速度の低下がないのに対し比較例の図6(b)ではミスアラインが連続した場合にはメモリ装置1からの見かけ上のアクセス速度が実施例1のアクセス速度の3分の2となる。したがってミスアラインが連続した場合の比較例のCPUの処理性能は実施例1の3分の2に低下する。この条件で、CPU3の性能対電力比率を実施例1と比較例で比較する。性能対電力比率は単位電力あたりのCPU性能であり、MIPS/Wの単位で示される。この数値は大きいほどよい。比較例の消費電力を1とすると、実施例1の消費電力は5/4である。比較例のCPU性能を1とすると、実施例1のCPU性能は3/2であるから、CPU3の性能対電力比率は比較例を1とすると実施例1は1.2となるので、その効果は大きい。
図7は、実施例2のマイクロコントローラのブロック図である。図7のマイクロコントローラの基本的な構成は、図1に示す実施例1のマイクロコントローラと同一である。ただし、メモリ制御装置202は、バースト読み出しに対応する機能が実施例1に対して付加されている。このため、CPU3からメモリ制御装置202へバースト信号BSTが供給されている点が実施例1とは異なる。図8は、実施例2のメモリシステム205について、メモリ装置1の内部構成まで示したブロック図である。メモリ制御装置202にバースト信号BSTが供給されている点が実施例1の図2(a)と異なっている。
[バースト読み出し動作]
実施例2において、CPU3が、リード信号RDとバースト信号BSTをアクティブにして、ライト信号WRをインアクティブにすることにより、バースト読み出しを行うことができる。メモリ制御装置202は、バースト読み出しに設定されると、そのバースト読み出しのアドレス範囲の途中にある重複したアドレスのメモリセルについて、どちらか一方のメモリセルからの読み出しを行わない。たとえば、図8において、アドレス0からアドレス4N+7までのアドレスについてバースト読み出しを行う場合は、アドレス4、8、C、・・・4N+4については、各ワード線の最後のアドレス(Byte4)からの読み出しを行わない。
この様に、読み出したデータのデータバスへの出力だけでなく、読み出し動作自体を重複したメモリセルの一方に対して行わないことで、バースト読み出し時の消費電力を低減することができる。
なお、上記各実施例では、メモリ装置1へのデータの書込み方法については、説明していないが、書き込み時には、アドレスが重複しているメモリセルについて、別なアドレスを割り当てるようなアドレス変換回路を設ければ、特に問題は生じない。たとえば、メモリデータが固定データで、製造時に一度書き込みを行えば、その後での書き換えを想定していない場合、フラッシュROMライタやLSIテスタなどで静的に書き込みを行う場合にアドレスを変換して書き込めば、それでもよい。また、メモリ装置1がROM等の読み出し専用メモリであれば、書込みは不要である。
上記説明した構成によって、フラッシュメモリ内蔵のマイクロコントローラにおいて、アドレスがミスアラインしている場合においても、アラインしている場合と同様のアクセス回数でデータを読み出すことができるので、ミスアラインしたデータの読み出しが高速処理の妨げになることがない。
以上、実施例について説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1、101:メモリ装置
2、102、202:メモリ制御装置(アライナ)
3:CPU
4:アドレスラッチ
5、105、205:メモリシステム
11、111:アドレスデコーダ
12、112:メモリセルアレイ
13:ワード線
14:ビット線
15:メモリセル
16、116:センスアンプ、データセレクタ
Adr[15−0]、Adr[1−0]:アドレスバス
Data[15−0]、Data[15−8]、Data[7−0]:データバス
BN:バイト数信号
WT:ウェイト信号
RD:リード信号
BST:バースト信号
CLK:システムクロック
CLK2:システムクロックの2分周信号

Claims (1)

  1. 複数のワード線と複数のビット線を設け、前記複数のワード線とビット線によりアドレスを特定してアクセスできるように構成されたメモリ装置であって、
    一本の前記ワード線に対応して連続するアドレスの複数のメモリセルが配置され、それぞれに対応する複数の前記ビット線から並列に前記連続するアドレスの複数のメモリセルにアクセスできるように構成され、
    前記複数のワード線のうち、第一のワード線と前記第一のワード線と連なるアドレスを指定する第二のワード線との間で重複するアドレス範囲を設け、前記第一のワード線に接続される第一のメモリセルと前記第二のワード線に接続される第二のメモリセルが同一アドレスに対応して重複して設けられているメモリ装置と、
    CPUと、
    前記CPUの制御により前記メモリ装置へのアクセスを行うメモリ制御装置と、を内蔵し、
    前記メモリ制御装置は、前記重複するアドレスについて、前記第一、第二のメモリセルのうち、一方から読み出したデータを選択して前記CPUへ出力し、
    前記複数のワード線のうち、一のワード線の選択により並列に前記メモリ装置から読み出し可能な連続するアドレスの数をnとしたときに、
    前記CPUと前記メモリ制御装置はm(1<m<n)アドレスのデータを並列に転送可能なビット幅を有するデータバスにより接続され、
    連なるアドレスを指定するワード線との間でそれぞれm−1アドレスのメモリセルが重複して設けられていることを特徴とするマイクロコントローラ。
JP2010074430A 2010-03-29 2010-03-29 マイクロコントローラ Active JP5270605B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010074430A JP5270605B2 (ja) 2010-03-29 2010-03-29 マイクロコントローラ
US13/072,262 US8539173B2 (en) 2010-03-29 2011-03-25 Memory device, memory system and microcontroller including memory device, and memory control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010074430A JP5270605B2 (ja) 2010-03-29 2010-03-29 マイクロコントローラ

Publications (2)

Publication Number Publication Date
JP2011210295A JP2011210295A (ja) 2011-10-20
JP5270605B2 true JP5270605B2 (ja) 2013-08-21

Family

ID=44657662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010074430A Active JP5270605B2 (ja) 2010-03-29 2010-03-29 マイクロコントローラ

Country Status (2)

Country Link
US (1) US8539173B2 (ja)
JP (1) JP5270605B2 (ja)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63308783A (ja) 1987-06-11 1988-12-16 Matsushita Electric Ind Co Ltd 記憶装置
JPH0344748A (ja) 1989-07-12 1991-02-26 Nec Corp メモリデータ読出制御方式
JPH04359334A (ja) 1991-06-05 1992-12-11 Mitsubishi Electric Corp マイクロコンピュータ
JPH0520173A (ja) * 1991-07-17 1993-01-29 Nec Corp キヤツシユメモリ回路
JPH0573406A (ja) 1991-09-18 1993-03-26 Fuji Facom Corp 非整列データ転送装置
JPH05127985A (ja) 1991-11-01 1993-05-25 Hitachi Ltd 半導体記憶装置、及びマイクロコンピユータ
JPH0944397A (ja) * 1995-07-27 1997-02-14 Toshiba Corp 情報処理装置
US7269090B2 (en) * 2001-01-30 2007-09-11 Freescale Semiconductor, Inc. Memory access with consecutive addresses corresponding to different rows
JP4043211B2 (ja) * 2001-10-11 2008-02-06 三洋電機株式会社 半導体記憶装置
JP4095317B2 (ja) * 2002-03-14 2008-06-04 富士通株式会社 非同期式半導体記憶装置、非同期式半導体記憶装置の内部制御方法及びシステム
WO2004075199A1 (ja) * 2003-02-18 2004-09-02 Fujitsu Limited 半導体記憶装置及び半導体記憶装置の読み出し方法
WO2005004164A1 (ja) * 2003-06-30 2005-01-13 Fujitsu Limited 半導体記憶装置
US7212457B2 (en) * 2005-05-18 2007-05-01 Macronix International Co., Ltd. Method and apparatus for implementing high speed memory
KR100724339B1 (ko) * 2006-01-25 2007-06-04 삼성전자주식회사 고속의 제1 페이지 독출속도를 가지는 3-레벨 불휘발성반도체 메모리 장치 및 이에 대한 구동방법
JP4759717B2 (ja) * 2008-02-18 2011-08-31 スパンション エルエルシー 同期型不揮発性メモリおよびメモリシステム

Also Published As

Publication number Publication date
US8539173B2 (en) 2013-09-17
US20110238931A1 (en) 2011-09-29
JP2011210295A (ja) 2011-10-20

Similar Documents

Publication Publication Date Title
US7907469B2 (en) Multi-port memory device for buffering between hosts and non-volatile memory devices
CN109154918B (zh) 自刷新状态机mop阵列
US7937523B2 (en) Memory system with nonvolatile semiconductor memory
US7299323B2 (en) Memory controller having a read-modify-write function
US20130297862A1 (en) Memory system having a plurality of types of memory chips and a memory controller for controlling the memory chips
US7483331B2 (en) Semiconductor memory, memory system, and operation method of memory system
JP5090819B2 (ja) メモリーカード及び該データ格納方法
US7725621B2 (en) Semiconductor device and data transfer method
KR100679370B1 (ko) 메모리 소자에서의 워드 순서지정 방법
US8392671B2 (en) Memory controller, system, and method for accessing semiconductor memory
CN111984559B (zh) 用于数据传送的系统及存储器装置
JP2008090419A (ja) 集積回路装置
US20080034132A1 (en) Memory interface for controlling burst memory access, and method for controlling the same
US20070028037A1 (en) Memory system with automatic dual-buffering
JP2006040497A (ja) 半導体記憶装置、不揮発性半導体記憶装置
CN108538332B (zh) 与非门闪存的读取方法
JP5270605B2 (ja) マイクロコントローラ
US12094519B2 (en) Data read/write method, device, and memory having the same
WO2006003693A1 (ja) データプロセッサ
US20090100220A1 (en) Memory system, control method thereof and computer system
JP4209708B2 (ja) 半導体記憶装置
JP2008071290A (ja) メモリコントローラおよびホストコンピュータ
JP2006155220A (ja) 半導体集積回路及びそのアクセス制御方法
JP2001273014A (ja) プログラマブルコントローラ
CN114664336A (zh) 堆叠存储器件、存储芯片及其控制方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130415

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: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130509

R150 Certificate of patent or registration of utility model

Ref document number: 5270605

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350