JP2013089226A - メモリ制御装置 - Google Patents

メモリ制御装置 Download PDF

Info

Publication number
JP2013089226A
JP2013089226A JP2012084599A JP2012084599A JP2013089226A JP 2013089226 A JP2013089226 A JP 2013089226A JP 2012084599 A JP2012084599 A JP 2012084599A JP 2012084599 A JP2012084599 A JP 2012084599A JP 2013089226 A JP2013089226 A JP 2013089226A
Authority
JP
Japan
Prior art keywords
controller
flash memory
bus
serial peripheral
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012084599A
Other languages
English (en)
Other versions
JP5551201B2 (ja
Inventor
Shuang Yi Tain
雙議 譚
Yakuyo Nen
躍耀 粘
Der-Ing Hsu
▲徳▼英 徐
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.)
Nuvoton Technology Corp
Original Assignee
Nuvoton Technology 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 Nuvoton Technology Corp filed Critical Nuvoton Technology Corp
Publication of JP2013089226A publication Critical patent/JP2013089226A/ja
Application granted granted Critical
Publication of JP5551201B2 publication Critical patent/JP5551201B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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
    • G06F13/1684Details of memory controller using multiple buses

Abstract

【課題】メモリ制御装置を提供する。
【解決手段】一次コントローラ及び二次コントローラがフラッシュメモリをアクセスするように制御するメモリ制御装置である。バススイッチは、第1、第2及び第3のシリアル周辺機器インタフェースバスそれぞれを介して、一次コントローラ、二次コントローラ及びフラッシュメモリに接続される。選択ユニットは、第3のシリアル周辺機器インタフェースバスを第1のシリアル周辺機器インタフェースバス及び第2のシリアル周辺機器インタフェースバスのうちいずれか一方に選択的に接続させる。選択ユニットは、バススイッチが第1のシリアル周辺機器インタフェースバスを介して一次コントローラからの第1のアクセス要求を受信した場合に、第3のシリアル周辺機器インタフェースバスを第1のシリアル周辺機器インタフェースバスに接続させる。
【選択図】図1

Description

本発明は、メモリ制御装置に係り、特に、シリアル周辺機器インタフェース(SPI:Serial Peripheral Interface)フラッシュメモリのメモリ制御装置に関する。
フラッシュメモリ(flash memory)はメインボードによく用いられる記憶装置であり、パソコン及びノートパソコンに広範囲で適用されている。フラッシュメモリは、各種の形態のデータを記憶することができるため、メインボードにあるチップセット(chipset)及びその他の周辺集積回路(IC:Integrated Circuit)はフラッシュメモリを用いることでデータのアクセスを行い、ユーザから伝達された指令を遂行することになる。
現在、ほとんどのコンピュータシステムが起動プログラムを実行するデータ(例えば基本入出力システム(BIOS:Basic Input/Output System))は、コンピュータのフラッシュメモリに保存されている。メインボードでは、組込コントローラによってフラッシュメモリ内のデータをアクセスすることができる。一般的には、組込コントローラとフラッシュメモリとの間は、シリアル周辺機器インタフェース(SPI:Serial Peripheral Interface)を介して接続されている。
コンピュータシステムでは、SPIは二種類の装置(即ち主装置(master)と従装置(slave))の間でシリアルデータの交換を許可するインタフェースである。SPIバスは、主にチップ選択(CS:Chip Select)、クロック(clock)、主装置出力従装置入力(MOSI:Master Output Slave Input)及び主装置入力従装置出力(MISO:Master Input Slave Output)の4種類の信号から構成されている。チップ選択信号CSが動作する場合のみ、SPIバスは他の三つの信号によってデータの受信及び送信を行うことが可能となる。
本発明は、フラッシュメモリに対するアクセスの効率を向上できるメモリ制御装置を提供することを目的とする。
本発明の一の態様によれば、一次コントローラ及び二次コントローラがフラッシュメモリをアクセスするように制御するメモリ制御装置であって、第1、第2及び第3のシリアル周辺機器インタフェースバスそれぞれを介して、前記一次コントローラ、前記二次コントローラ及び前記フラッシュメモリに接続されるバススイッチを含む、前記バススイッチは、前記第3のシリアル周辺機器インタフェースバスを前記第1のシリアル周辺機器インタフェースバス及び前記第2のシリアル周辺機器インタフェースバスのうちいずれか一方に選択的に接続させる選択手段を含む、前記選択手段は、前記バススイッチが前記第1のシリアル周辺機器インタフェースバスを介して前記一次コントローラからの第1のアクセス要求を受信した場合に、前記第3のシリアル周辺機器インタフェースバスを前記第1のシリアル周辺機器インタフェースバスに接続させることで、前記一次コントローラからの第1のチップ選択信号、第1のクロック信号及び第1のMOSI信号を前記フラッシュメモリに伝送し、前記フラッシュメモリをアクセスし、前記第1のアクセス要求は前記第1のチップ選択信号から供給されることを特徴とするメモリ制御装置を提供する。
また、本発明の更に他の態様によれば、一次コントローラ及び二次コントローラがフラッシュメモリをアクセスするように制御するメモリ制御装置であって、第1、第2及び第3のシリアル周辺機器インタフェースバスそれぞれを介して、前記一次コントローラ、前記二次コントローラ及び前記フラッシュメモリに接続され、前記第3のシリアル周辺機器インタフェースバスを前記第1のシリアル周辺機器インタフェースバス及び前記第2のシリアル周辺機器インタフェースバスのうちいずれか一方に選択的に接続させ、前記第3のシリアル周辺機器インタフェースバスを前記第1のシリアル周辺機器インタフェースバスに接続させる場合に前記一次コントローラが前記フラッシュメモリをアクセスするバススイッチと、前記一次コントローラが前記フラッシュメモリをアクセスする場合に、前記二次コントローラが前記フラッシュメモリに対するアクセスを待っているか否かを判断し、待ち時間をカウントするバス共用調整手段と、前記待ち時間が所定の時間を超えた場合に、前記一次コントローラへ割り込み要求を発送する割り込み手段と、を含み、前記一次コントローラは、前記割り込み要求に応じて、前記フラッシュメモリに対するアクセスを停止することを特徴とするメモリ制御装置を提供する。
本発明によれば、一次コントローラ及び二次コントローラがフラッシュメモリを効率的にアクセスすることができる。
本発明の一の実施例に係るメモリ制御装置を用いるコンピュータシステムを示す図である。 本発明の一の実施例に係るバススイッチを示す図である。 図2におけるバススイッチの信号を示す波形図である。 図2におけるバススイッチの信号を示す他の波形図である。 本発明の他の実施例に係るバススイッチを示す図である。 本発明の他の実施例に係るメモリ制御装置を示す図である。 本発明の一の実施例に係るメモリ制御装置に適用するバス共用調整方法を示す図である。
上述した本発明に係る技術的内容、他の目的、特徴及び効果は、以下の図面を参照しながら、好適な実施形態の詳細な説明に示されるように、明らかである。
(実施例)
図1は、本発明の一の実施例に係るメモリ制御装置を用いるコンピュータシステム100を示している。コンピュータシステム100は、チップセット(chipset)10、スーパーI/O(super I/O)集積回路20及びフラッシュメモリ30を有する。図1において、フラッシュメモリ30はシリアル周辺機器インタフェース(SPI)メモリであるため、チップセット10及びスーパーI/O集積回路20は、いずれもSPI標準に合っているバスでフラッシュメモリ30に接続する。チップセット10はコントローラ15を有し、コントローラ15はフラッシュメモリ30をアクセスする、例えば基本入出力システム(BIOS)をアクセスする。スーパーI/O集積回路20はコントローラ25を有し、コントローラ25はフラッシュメモリ30をアクセスする、例えば読み出し専用メモリコード(ROM code)をアクセスする。一般的には、チップセット10はリアルタイムでフラッシュメモリ30をアクセスする必要があり、スーパーI/O集積回路20はフラッシュメモリ30をチップセット10と共用する必要がある。このため、本実施例では、コントローラ15及びコントローラ25は主装置(master)であり、フラッシュメモリ30は従装置(slave)である。また、チップセット10のフラッシュメモリ30に対するアクセスの優先度はスーパーI/O集積回路20よりも高いため、コントローラ15及びコントローラ25それぞれは一次(primary)コントローラ及び二次(secondary)コントローラと見なされてもよい。
図1には、スーパーI/O集積回路20はメモリ制御装置40をさらに有し、メモリ制御装置40はバススイッチ50を有する。バススイッチ50は、バスBUS1を介してコントローラ15からのチップ選択信号CS_PRI、クロック信号SCLK_PRI及び主装置出力従装置入力信号MOSI_PRIを受信することができる。また、バススイッチ50は、バスBUS2を介してコントローラ25からのチップ選択信号CS_SEC、クロック信号SCLK_SEC及び主装置出力従装置入力信号MOSI_SECを受信することができる。そして、バススイッチ50は、チップ選択信号CS_PRI及びチップ選択信号CS_SECに基づいて、バスBUS3をバスBUS1又はバスBUS2に接続させることで、コントローラ15又はコントローラ25からの信号をバスBUS3を介してフラッシュメモリ30に伝送する。例えば、コントローラ15がフラッシュメモリ30をアクセスしようとする時には、コントローラ15がチップ選択信号CS_PRIを介してアクセス要求をバススイッチ50に発送して、バススイッチ50がバスBUS3をバスBUS1に接続させ、コントローラ25に停止信号STOPを発信する。コントローラ15がフラッシュメモリ30に対するアクセスを完成し、且つコントローラ25がチップ選択信号CS_SECを介してアクセス要求をバススイッチ50に発送した場合は、バススイッチ50がバスBUS3をバスBUS2に接続させることで、コントローラ25がフラッシュメモリ30を引き続きアクセスすることができる。一般的には、主装置は、主装置出力従装置入力信号(MOSI)を介して指令、アドレス及びデータなどの情報を従装置に伝送する。例えば、書き込み操作の場合は、コントローラ15は、主装置出力従装置入力信号MOSI_PRIを介して指令CMD、アドレスADD及びデータDATなどの情報をフラッシュメモリ30に順次伝送することで、フラッシュメモリ30のアドレスADDにデータDATを書き込む。また、読み取り操作の場合は、コントローラ15は、主装置出力従装置入力信号MOSI_PRIを介して指令CMD及びアドレスADDをフラッシュメモリ30に順次伝送することで、フラッシュメモリ30からアドレスADDに記憶されているデータを読み取る。なお、コントローラ15及びコントローラ25の主装置入力従装置出力信号(MISO)は、バスBUS1〜バスBUS3を介することなく、フラッシュメモリ30から直接的に供給される。
図2は、本発明の一の実施例に係るバススイッチ50を示す図である。バススイッチ50は、プロセスユニット52、プロセスユニット54、選択ユニット56、及びプロセスユニット58を含む。図1及び図2に示すように、バススイッチ50がコントローラ15からのアクセス要求を受信した場合は、プロセスユニット52は、チップ選択信号CS_PRI、クロック信号SCLK_PRI及び主装置出力従装置入力信号MOSI_PRIのタイミング(timing)を調整して、信号CS_1、信号MOSI_1及び信号SCLK_1を夫々発生する。そして、プロセスユニット54は、信号SCLK_1のデューティ周期(duty cycle)を更に調整して、信号SCLK_2を発生する。そして、選択ユニット56は、チップ選択信号CS_PRIに基づいて、信号CS_1、信号SCLK_2及び信号MOSI_1をフラッシュメモリ30に伝送しようとするチップ選択信号CS、クロック信号SCLK及び主装置出力従装置入力信号MOSIとして、バスBUS3に選択的に出力することができる。本実施例では、選択ユニット56は、マルチプレクサー(multiplexer)である。従って、選択ユニット56は、受信された信号に基づいて、第1組の入力端子A0〜A2又は第2組の入力端子B0〜B2を出力端子Y0〜Y2に接続させて出力を行うことができる。また、プロセスユニット58は、チップ選択信号CS_PRIに基づいて、コントローラ25に停止信号STOPを供給する。本実施例では、プロセスユニット58はインバータ(inverter)である。
図3は、図2におけるバススイッチ50の信号波形図であり、単に本発明の一例であり、本発明はここに例示されるものに限定されない。図3において、チップ選択信号CS_PRI又はチップ選択信号CS_SECが低論理レベルとなる場合は、チップセット10又はスーパーI/O集積回路20がアクセス要求を発送することを示す。また、主装置出力従装置入力信号MOSI_PRI及び主装置出力従装置入力信号MOSI_SECは、最上位ビット(most significant bit)から最下位ビット(least significant bit)までの方法で指令CMD、アドレスADD及びデータDATなどの情報を伝送する。図1乃至図3に示すように、まず、周期P1において、コントローラ15からのチップ選択信号CS_PRIは高論理レベルとなる。このため、チップセット10はフラッシュメモリ30に対するアクセスを行っていない。時点t1において、コントローラ25からのチップ選択信号CS_SECは高論理レベルから低論理レベルに変わった。そこで、バススイッチ50はバスBUS3をバスBUS2に接続させることで、コントローラ25がフラッシュメモリ30をアクセスすることができる。そして、コントローラ25は、フラッシュメモリ30にクロック信号SCLK_SEC及び主装置出力従装置入力信号MOSI_SECを伝送する。コントローラ25が指令情報CMDを伝送している時に、コントローラ15は時点t2においてチップ選択信号CS_PRIを低論理レベルに移行させる。そこで、プロセスユニット58がコントローラ25に停止信号STOPを発信し、バススイッチ50がバスBUS3をバスBUS1に接続させることで、コントローラ15がフラッシュメモリ30をアクセスすることができる。本実施例では、プロセスユニット52は、チップ選択信号CS_PRIを所定の時間TD遅らせてからフラッシュメモリ30に伝送し、所定の時間TDはフラッシュメモリのタイミング規格に従う。同様に、プロセスユニット52は、クロック信号SCLK_PRI及び主装置出力従装置入力信号MOSI_PRIを該所定の時間TD遅らせてからフラッシュメモリ30に伝送する。例えば、矢印301に示すように、チップ選択信号CS_PRIと比べて、バススイッチ50は、フラッシュメモリ30に伝送しようとするチップ選択情報CSを、所定の時間TD遅らせてから、高論理レベルから低論理レベルに移行させる。所定の時間TD遅らせることで、フラッシュメモリ30でタイミング違反(timing violation)が発生することを回避することができる。また、矢印302、303の夫々に示すように、クロック信号SCLK_PRI及び主装置出力従装置入力信号MOSI_PRIと比べて、バススイッチ50は、フラッシュメモリ30に伝送しようとするクロック信号SCLK及び主装置出力従装置入力信号MOSIを、所定の時間TD遅らせてから、フラッシュメモリ30に伝送する。
なお、矢印302、303に示しているところで、プロセスユニット52はクロック信号SCLK_PRI及び主装置出力従装置入力信号MOSI_PRIを遅らせる。しかし、主装置出力従装置入力信号MOSI_PRIの指令情報CMDが受信された場合、プロセスユニット52が指令情報CMDに対応するクロック信号SCLK_PRI及び主装置出力従装置入力信号MOSI_PRIのタイミングを調整し始めることで、フラッシュメモリ30がコントローラ15からのアドレス情報ADD及びデータ情報DATを同期的に受信することができる。例えば、指令情報CMDは8つのビットCMD7〜CMD0を含む。主装置出力従装置入力信号MOSI_PRIには、指令情報CMDの各ビットの周期はT1である。フラッシュメモリ30に伝送されるアドレス情報ADD及びデータ情報DAT(即ち、主装置出力従装置入力信号MOSI)と、コントローラ15から供給されるアドレス情報ADD及びデータ情報DAT(即ち、主装置出力従装置入力信号MOSI_PRI)とを同期させるために、プロセスユニット52は、指令情報CMDにおいて前の遅れさせられた所定の時間TDを埋め合わせる、即ちバスBUS3のクロック信号SCLK及び主装置出力従装置入力信号MOSIによって指令情報CMDを加速的に伝送する。即ち、主装置出力従装置入力信号MOSIでは、指令情報CMDの各ビットの周期T2は周期T1よりも小さい。本実施例では、遅れさせられた所定の時間TDは、指令情報CMDの各ビットで均一的に埋め合わせられるため、T2=T1−TD/8となる。従って、周期P3において、バスBUS3におけるクロック信号SCLK及び主装置出力従装置入力信号MOSIは、バスBUS1におけるクロック信号SCLK_PRI及び主装置出力従装置入力信号MOSI_PRIと同期することになる。そして、時点t3において、コントローラ15からのチップ選択信号CS_PRIが低論理レベルから高論理レベルになって、コントローラ15がフラッシュメモリに対するアクセスを完成する。そして、時点t4において、コントローラ25は、チップ選択情報CS_SECを高論理レベルから低論理レベルに移行させて、フラッシュメモリ30にアクセス要求を発送する。コントローラ15のフラッシュメモリ30に対するアクセスが終了したから、バススイッチ50はバスBUS3をバスBUS2に接続させる。そして、コントローラ25はフラッシュメモリ30にクロック信号SCLK_SEC及び主装置出力従装置入力信号MOSI_SECを伝送して、アクセスを行う。
図4は、図2におけるバススイッチ50の信号を示す他の波形図であり、プロセスユニット54により調整されたクロック信号のデューティ周期を示している。図1、図2及び図4に示すように、コントローラ15がフラッシュメモリ30に対して読み取り操作を行う時に、コントローラ15からのチップ選択信号CS_PRIは低論理レベルとなる。コントローラ15が主装置出力従装置入力信号MOSI_PRIにより読み取り指令及び読み取りアドレスの伝送を完成した後で、フラッシュメモリ30は、当該読み取りアドレスに記憶されているデータを、バスBUS3の主装置入力従装置出力信号MISOによりコントローラ15に伝送する。本実施例では、フラッシュメモリ30は、受信されたクロック信号の立下りエッジ(falling edge)で読み取りデータRDATAをバスBUS3に出力する。このため、バススイッチ50は、クロック信号SCLK_PRIの立上りエッジ(rising edge)を受信した時に、フラッシュメモリ30へのクロック信号SCLKの立上りエッジも発生する。そして、バススイッチ50がフラッシュメモリ30へのクロック信号SCLKの立下りエッジを予め発生することで、フラッシュメモリ30は読み取りデータRDATA7、RDATA6、RDATA5及びRDATA4などをバスBUS3に予め出力する。図4に示すように、SCLK_PRIの立下りエッジと比べて、クロック信号SCLKの立下りエッジが周期TP繰り上げられることで、信号の集積回路を通る時の入力/出力待ち時間(I/O latency)を埋め合わせることができる。従って、チップセット10はより高い速度で動作できる。
図5は、本発明の他の実施例に係るバススイッチ200を示す図である。本実施例では、バススイッチ200はマルチビット(multibit)のSPIフラッシュメモリ、例えば2ビット(dual)及び4ビット(quad)に適用することができるため、主装置及び従装置の主装置出力従装置入力信号MOSI及び主装置入力従装置出力信号MISOは双方向信号である。図2のバススイッチ50と比べて、バススイッチ200は方向制御ユニット51、インバータ53、及びI/O制御ユニット55、57をさらに含む。方向制御ユニット51は、デコーダー(decoder)と見なされてもよく、バスBUS3における主装置出力従装置入力信号MOSI及びバスBUS1における主装置出力従装置入力信号MOSI_PRIの伝送方向を制御し、I/O制御ユニット55及び57を制御するように信号MOSI_OE及び信号MOSI_PRI_OEを発生することで、バスBUS1からの主装置出力従装置入力信号MOSI_PRIをバスBUS3に伝送する、或いはバスBUS3からの主装置出力従装置入力信号MOSIをBUS1に伝送する。例えば、信号MOSI_PRI_OEによる制御では、I/O制御ユニット55はバスBUS1における主装置出力従装置入力信号MOSI_PRIに基づいてプロセスユニット52に信号MOSI_PRI_INを供給し、信号MOSI_OEによる制御では、I/O制御ユニット57は選択ユニット56の出力MOSI_OUTに基づいてバスBUS3に信号MOSIを供給することによって、チップセットからの信号がフラッシュメモリに伝送されることが可能となる。一方、信号MOSI_OEによる制御では、I/O制御ユニット57はバスBUS3の信号MOSIに基づいてI/O制御ユニット55に信号MOSI_PRI_OUTを供給し、信号MOSI_PRI_OEによる制御では、I/O制御ユニット55は信号MOSI_PRI_OUTに基づいてバスBUS1に主装置出力従装置入力信号MOSI_PRIを供給することによって、フラッシュメモリからの信号がチップセットに伝送されることが可能となる。
図6は、本発明の他の実施例に係るメモリ制御装置300を示す図である。図1のメモリ制御装置40と比べて、メモリ制御装置300は、バス共用調整ユニット60及び割り込みユニット70をさらに含む。一般的には、正常動作の場合は、チップセット10はフラッシュメモリ30を頻繁にアクセスすることはない。しかし、悪意のあるソフトウェア(malicious software。Malwareを略称する)の攻撃を受けた場合は、チップセット10はフラッシュメモリ30をアクセスし続ける可能性があるため、スーパーI/O集積回路20はフラッシュメモリ30をアクセスすることができなくなる。即ち、バスBUS3はバスBUS1によりずっと占用されている。このため、スーパーI/O集積回路20がフラッシュメモリ30に対するアクセスを待っている時に、バス共用調整ユニット60はスーパーI/O集積回路20の待ち時間をカウントする。待ち時間が所定の時間を超えた場合に、バス共用調整ユニット60は、チップセット10へ割り込み要求INTを発送させるように割り込みユニット70に通知することで、フラッシュメモリ30に対するアクセスを停止させるようにチップセット10に通知する。チップセット10がフラッシュメモリ30に対するアクセスを停止した後で、メモリ制御装置300はバスBUS3をバスBUS2に接続させることで、スーパーI/O集積回路20がフラッシュメモリ30に対して読み取りを行うことができる。また、バス共用調整ユニット60は、チップセット10とスーパーI/O集積回路20とのフラッシュメモリ30を使用する時間を均衡させるために、スーパーI/O集積回路20の待ち時間Twaitをカウントし、スーパーI/O集積回路20のフラッシュメモリ30をアクセス可能な時間を時間Twait、即ち前の待ち時間となるように制御する。そして、バス共用調整ユニット60によりカウントされた、スーパーI/O集積回路20のフラッシュメモリ30をアクセスする時間が時間Twaitに達した場合に、バス共用調整ユニット60は割り込み要求INTをキャンセルさせるように割り込みユニット70に通知する。そして、チップセット10はフラッシュメモリ30を引き続きアクセスすることができる。本実施例では、監視(watch dog)メカニズムで割り込み要求INTを発送してもよい。
図7は、本発明の一の実施例に係るバス共用調整方法を示す図であり、当該バス共用調整方法はメモリ制御装置(例えば図6のバス共用調整方法300)に適用し、当該メモリ制御装置はSPIバスにより複数の主装置及び従装置に接続される。複数の主装置は一つの一次(primary)装置(例えば、図6のチップセット10)、及び少なくとも一つの二次(secondary)装置(例えば、図6のスーパーI/O集積回路20)を含み、従装置はメモリ(例えば、図6のフラッシュメモリ30)である。まず、ステップS702において、二次装置がメモリに対するアクセスを待っているか否か、即ちメモリが一次装置によりアクセスされているか否かを判断する。YESの場合、カウンタがカウントアップ(count up)する(ステップS704)、例えばカウンタのカウンタ値に1をプラスする。次に、ステップS706において、カウンタのカウンタ値が閾値に達したか否かを判断する。YESの場合、一次装置へ割り込み要求を発送して(ステップS708)、一次装置にフラッシュメモリに対するアクセスを停止させて、二次装置のフラッシュメモリに対するアクセスを可能にする。NOの場合、ステップS702に戻させる。このため、例えば、上述した悪意のあるソフトウェアにより、一次装置がメモリに対して読み取りを行い続ける場合は、カウンタのカウンタ値が当該閾値に達することになる。そして、二次装置がメモリをアクセスできるように、一次装置はメモリに対するアクセスを停止する。一方、ステップS702において、二次装置がメモリに対するアクセスを待っていないと判断された場合(ステップS702:NO)、カウンタのカウンタ値が0であるか否かを判断する(ステップS710)。NOの場合、カウンタがカウントダウン(count down)する(ステップS714)、例えばカウンタのカウンタ値から1を引く。YESの場合、前の発送された割り込み要求を解除して(ステップS712)、一次装置がメモリを引き続き使用することができる。従って、カウンタがカウントアップ及びカウントダウンすることで、前の二次装置の待ち時間を埋め合わせることができる。例えば、仮に閾値を30とすると、カウンタのカウンタ値が30までカウントされた場合、割り込み要求が一次装置へ発送される。ただし、割り込み要求を受信した時に、一次装置が現在アクセスしているデータを完成しなければ、二次装置にメモリを解放(release)しない。よって、二次装置がメモリをアクセスし始める時に、カウンタのカウンタ値が既に50、即ち二次装置が実際に待った時間までカウントする可能性がある。従って、ステップS710、S712及びS714により、カウンタのカウンタ値が50から0に下がる場合のみ、割り込み要求がキャンセルされる。これによって、前の待った時間を埋め合わせることができる。
図1及び図6は本発明の一例であり、本発明は図1及び図6に例示されるものに限定されない。図1及び図6において、チップセット10、スーパーI/O集積回路20及びフラッシュメモリ30は切り離されたチップである。ただし、本発明において、スーパーI/O集積回路20がチップセット10のチップに組み込まれてもよいし、フラッシュメモリ30に組み込まれてもよい。
上記の説明は、本発明の好適な実施例に過ぎず、本発明の実施の範囲がこれらに限定されず、本発明の特許請求の範囲及び明細書の内容に基づいて、当業者によって何れの変更及び修飾を行うことが可能となり、本発明の保護範囲は特許請求の範囲を基準とする。
本発明に係るメモリ制御装置は、メモリを制御する装置、特にシリアル周辺機器インタフェース(SPI:Serial Peripheral Interface)フラッシュメモリのメモリ制御装置に利用可能である。
10 チップセット
15 コントローラ
20 スーパーI/O集積回路
25 コントローラ
30 フラッシュメモリ
40、300 メモリ制御装置
50、200 バススイッチ
51 方向制御ユニット
52、54、58 プロセスユニット
53 インバータ
55、57 I/O制御ユニット
56 選択ユニット
60 バス共用調整ユニット
70 割り込みユニット
100 コンピュータシステム
BUS1、BUS2、BUS3 バス
CS、CS_PRI、CS_SEC チップ選択信号
CS_1、MOSI_1、MOSI_OE、MOSI_OUT、MOSI_PRI_IN、MOSI_PRI_OE、MOSI_PRI_OUT、SCLK_1、SCLK_2 信号
INT 割り込み要求
MISO 主装置入力従装置出力信号
MOSI、MOSI_PRI、MOSI_SEC 主装置出力従装置入力信号
P1、P2、P3 周期
SCLK、SCLK_PRI、SCLK_SEC クロック信号
STOP 停止信号
t1、t2、t3、t4 時点
T1、T2、TP 周期
TD 遅延時間
S702、S704、S706、S708、S710、S712、S714 ステップ

Claims (15)

  1. 一次コントローラ及び二次コントローラがフラッシュメモリをアクセスするように制御するメモリ制御装置であって、
    第1、第2及び第3のシリアル周辺機器インタフェースバスそれぞれを介して、前記一次コントローラ、前記二次コントローラ及び前記フラッシュメモリに接続されるバススイッチを含む、
    前記バススイッチは、前記第3のシリアル周辺機器インタフェースバスを前記第1のシリアル周辺機器インタフェースバス及び前記第2のシリアル周辺機器インタフェースバスのうちいずれか一方に選択的に接続させる選択手段を含む、
    前記選択手段は、前記バススイッチが前記第1のシリアル周辺機器インタフェースバスを介して前記一次コントローラからの第1のアクセス要求を受信した場合に、前記第3のシリアル周辺機器インタフェースバスを前記第1のシリアル周辺機器インタフェースバスに接続させることで、前記一次コントローラからの第1のチップ選択信号、第1のクロック信号及び第1のMOSI信号を前記フラッシュメモリに伝送し、前記フラッシュメモリをアクセスし、
    前記第1のアクセス要求は前記第1のチップ選択信号から供給されることを特徴とするメモリ制御装置。
  2. 前記選択手段は、前記一次コントローラの前記第1のアクセス要求が完成し、且つ前記バススイッチが前記第2のシリアル周辺機器インタフェースバスを介して前記二次コントローラからの第2のアクセス要求を受信したと前記第1のチップ選択信号により示された場合に、前記第3のシリアル周辺機器インタフェースバスを前記第2のシリアル周辺機器インタフェースバスに接続させることで、前記二次コントローラからの第2のチップ選択信号、第2のクロック信号及び第2のMOSI信号を前記フラッシュメモリに伝送し、前記フラッシュメモリをアクセスすることを特徴とする請求項1に記載のメモリ制御装置。
  3. 前記一次コントローラの第1のMISO信号及び前記二次コントローラの第2のMISO信号は、前記第1、第2及び第3のシリアル周辺機器インタフェースバスを介することなく、前記フラッシュメモリの出力信号から直接的に供給されることを特徴とする請求項1に記載のメモリ制御装置。
  4. 前記バススイッチは、前記バススイッチが前記第1のシリアル周辺機器インタフェースバスを介して前記一次コントローラからの前記第1のアクセス要求を受信した場合に、前記二次コントローラに停止信号をさらに発信することで、前記二次コントローラが前記フラッシュメモリに対するアクセスを停止するように通知することを特徴とする請求項1に記載のメモリ制御装置。
  5. 前記一次コントローラが前記フラッシュメモリをアクセスする時に、前記二次コントローラが前記フラッシュメモリに対するアクセスを待っているか否かを判断し、待ち時間をカウントするバス共用調整手段と、
    前記待ち時間が所定の時間を超えた場合に、前記一次コントローラへ割り込み要求を発送する割り込み手段と、をさらに含み、
    前記一次コントローラは、前記割り込み要求に応じて、前記フラッシュメモリに対するアクセスを停止することを特徴とする請求項1に記載のメモリ制御装置。
  6. 前記バススイッチの前記選択手段は、前記一次コントローラが前記フラッシュメモリに対するアクセスを停止したと前記第1のチップ選択信号により示された場合に、前記第3のシリアル周辺機器インタフェースバスを前記第2のシリアル周辺機器インタフェースバスに接続させることで、前記二次コントローラからの第2のチップ選択信号、第2のクロック信号及び第2のMOSI信号を前記フラッシュメモリに伝送し、前記フラッシュメモリをアクセスすることを特徴とする請求項5に記載のメモリ制御装置。
  7. 前記バス共用調整手段は、前記選択手段が前記第3のシリアル周辺機器インタフェースバスを前記第2のシリアル周辺機器インタフェースバスに接続させた場合に、前記カウントされた待ち時間をアクセス時間として設定し、
    前記割り込み手段は、前記二次コントローラが前記フラッシュメモリをアクセスする時間が前記アクセス時間に達した場合に、前記一次コントローラへの前記割り込み要求の発送を停止することを特徴とする請求項6に記載のメモリ制御装置。
  8. 前記一次コントローラは、チップセット内に設置されることを特徴とする請求項1に記載のメモリ制御装置。
  9. 前記メモリ制御装置及び前記二次コントローラは、スーパーI/O集積回路内に設置されることを特徴とする請求項1に記載のメモリ制御装置。
  10. 一次コントローラ及び二次コントローラがフラッシュメモリをアクセスするように制御するメモリ制御装置であって、
    第1、第2及び第3のシリアル周辺機器インタフェースバスそれぞれを介して、前記一次コントローラ、前記二次コントローラ及び前記フラッシュメモリに接続され、前記第3のシリアル周辺機器インタフェースバスを前記第1のシリアル周辺機器インタフェースバス及び前記第2のシリアル周辺機器インタフェースバスのうちいずれか一方に選択的に接続させ、前記第3のシリアル周辺機器インタフェースバスを前記第1のシリアル周辺機器インタフェースバスに接続させる場合に前記一次コントローラが前記フラッシュメモリをアクセスするバススイッチと、
    前記一次コントローラが前記フラッシュメモリをアクセスする場合に、前記二次コントローラが前記フラッシュメモリに対するアクセスを待っているか否かを判断し、待ち時間をカウントするバス共用調整手段と、
    前記待ち時間が所定の時間を超えた場合に、前記一次コントローラへ割り込み要求を発送する割り込み手段と、を含み、
    前記一次コントローラは、前記割り込み要求に応じて、前記フラッシュメモリに対するアクセスを停止することを特徴とするメモリ制御装置。
  11. 前記バススイッチは、前記一次コントローラが前記フラッシュメモリに対するアクセスを停止した場合に、前記第3のシリアル周辺機器インタフェースバスを前記第2のシリアル周辺機器インタフェースバスに接続させることで、前記二次コントローラが前記フラッシュメモリをアクセスできることを特徴とする請求項10に記載のメモリ制御装置。
  12. 前記バス共用調整手段は、前記バススイッチが前記第3のシリアル周辺機器インタフェースバスを前記第2のシリアル周辺機器インタフェースバスに接続させた場合に、前記カウントされた待ち時間をアクセス時間として設定し、
    前記割り込み手段は、前記二次コントローラが前記フラッシュメモリをアクセスする時間が前記アクセス時間に達した場合に、前記一次コントローラへの前記割り込み要求の発送を停止することを特徴とする請求項11に記載のメモリ制御装置。
  13. 前記一次コントローラの第1のMISO信号及び前記二次コントローラの第2のMISO信号は、前記第1、第2及び第3のシリアル周辺機器インタフェースバスを介することなく、前記フラッシュメモリの出力信号から直接的に供給されることを特徴とする請求項10に記載のメモリ制御装置。
  14. 前記一次コントローラは、チップセット内に設置されることを特徴とする請求項10に記載のメモリ制御装置。
  15. 前記メモリ制御装置及び前記二次コントローラは、スーパーI/O集積回路内に設置されることを特徴とする請求項10に記載のメモリ制御装置。
JP2012084599A 2011-10-13 2012-04-03 メモリ制御装置 Active JP5551201B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW100137090A TWI540438B (zh) 2011-10-13 2011-10-13 記憶體控制元件
TW100137090 2011-10-13

Publications (2)

Publication Number Publication Date
JP2013089226A true JP2013089226A (ja) 2013-05-13
JP5551201B2 JP5551201B2 (ja) 2014-07-16

Family

ID=48086782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012084599A Active JP5551201B2 (ja) 2011-10-13 2012-04-03 メモリ制御装置

Country Status (3)

Country Link
US (1) US8788744B2 (ja)
JP (1) JP5551201B2 (ja)
TW (1) TWI540438B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI489296B (zh) * 2013-05-17 2015-06-21 Wistron Corp 電腦
US9141291B2 (en) * 2013-11-26 2015-09-22 Sandisk Technologies Inc. Adaptive context disbursement for improved performance in non-volatile memory systems
US9367491B2 (en) * 2013-12-31 2016-06-14 Global Unichip, Corp. Method and apparatus for on-the-fly learning traffic control scheme
CN103970665B (zh) * 2014-05-28 2017-09-19 广州视源电子科技股份有限公司 一种模拟spi flash的fpga系统及调试方法
US11392325B2 (en) * 2020-09-28 2022-07-19 Quanta Computer Inc. Method and system for parallel flash memory programming
CN113312297A (zh) * 2021-06-22 2021-08-27 张玉禄 一种spi从接口、安全芯片及spi闪存电子装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129500A (ja) * 1993-11-08 1995-05-19 Canon Inc バススイッチ回路
JP2001167049A (ja) * 1999-12-13 2001-06-22 Matsushita Electric Ind Co Ltd バス調停装置
JP2004199374A (ja) * 2002-12-18 2004-07-15 Matsushita Electric Ind Co Ltd マルチプロセッサシステム及びバス調停方法
JP2004326215A (ja) * 2003-04-22 2004-11-18 Sony Corp 信号処理装置および信号処理方法
JP2005135240A (ja) * 2003-10-31 2005-05-26 Fuji Xerox Co Ltd データ転送制御装置、画像形成装置
JP2008181442A (ja) * 2007-01-26 2008-08-07 Nec Corp 情報処理システム、及びシステムデータ格納方法
JP2009025866A (ja) * 2007-07-17 2009-02-05 Nec Electronics Corp メモリコントローラ、バスシステム、集積回路、及び、集積回路の制御方法。
JP2009193107A (ja) * 2008-02-12 2009-08-27 Panasonic Corp メモリアクセス装置
WO2010076600A1 (en) * 2008-12-30 2010-07-08 Poorna Kale Enhanced addressability for serial non-volatile memory
JP2012190195A (ja) * 2011-03-09 2012-10-04 Fujitsu Ltd 制御装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200743957A (en) 2006-05-16 2007-12-01 Ite Tech Inc Control device and control method for memory
TWI325561B (en) 2006-11-23 2010-06-01 Ite Tech Inc Embedded controller and computer system using the same
TWI350451B (en) 2007-09-06 2011-10-11 Ite Tech Inc Integrated memory control apparatus
US20090193230A1 (en) 2008-01-30 2009-07-30 Ralf Findeisen Computer system including a main processor and a bound security coprocessor
US8549246B2 (en) * 2008-04-30 2013-10-01 Micron Technology, Inc. SPI NAND protected mode entry methodology

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129500A (ja) * 1993-11-08 1995-05-19 Canon Inc バススイッチ回路
JP2001167049A (ja) * 1999-12-13 2001-06-22 Matsushita Electric Ind Co Ltd バス調停装置
JP2004199374A (ja) * 2002-12-18 2004-07-15 Matsushita Electric Ind Co Ltd マルチプロセッサシステム及びバス調停方法
JP2004326215A (ja) * 2003-04-22 2004-11-18 Sony Corp 信号処理装置および信号処理方法
JP2005135240A (ja) * 2003-10-31 2005-05-26 Fuji Xerox Co Ltd データ転送制御装置、画像形成装置
JP2008181442A (ja) * 2007-01-26 2008-08-07 Nec Corp 情報処理システム、及びシステムデータ格納方法
JP2009025866A (ja) * 2007-07-17 2009-02-05 Nec Electronics Corp メモリコントローラ、バスシステム、集積回路、及び、集積回路の制御方法。
JP2009193107A (ja) * 2008-02-12 2009-08-27 Panasonic Corp メモリアクセス装置
WO2010076600A1 (en) * 2008-12-30 2010-07-08 Poorna Kale Enhanced addressability for serial non-volatile memory
JP2012190195A (ja) * 2011-03-09 2012-10-04 Fujitsu Ltd 制御装置

Also Published As

Publication number Publication date
JP5551201B2 (ja) 2014-07-16
US8788744B2 (en) 2014-07-22
US20130097363A1 (en) 2013-04-18
TW201316176A (zh) 2013-04-16
TWI540438B (zh) 2016-07-01

Similar Documents

Publication Publication Date Title
JP5551201B2 (ja) メモリ制御装置
US9563579B2 (en) Method, apparatus, system for representing, specifying and using deadlines
US7865646B1 (en) Sharing of functions between an embedded controller and a host processor
US11835993B2 (en) System on chip having semaphore function and method for implementing semaphore function
US7698524B2 (en) Apparatus and methods for controlling output of clock signal and systems including the same
US8531893B2 (en) Semiconductor device and data processor
US10255218B1 (en) Systems and methods for maintaining specific ordering in bus traffic
US10521382B2 (en) Method of scheduling system-on-chip including real-time shared interface
JPH11238033A (ja) 情報処理装置用バス、バス制御方法及びバス制御装置
TW200912660A (en) Dual bus matrix architecture for micro-controllers
US20150177816A1 (en) Semiconductor integrated circuit apparatus
US5937206A (en) System for converting states of DMA requests into first serial information and transmitting information to first bus whenever a state change of a request
JPH11272603A (ja) バスブリッジ装置及びトランザクションフォワード方法
JPWO2007105376A1 (ja) 集積回路、及び集積回路システム
JP6497392B2 (ja) アクセス制御方法、バスシステム、および半導体装置
CN103106157B (zh) 存储器控制元件
US20130185468A1 (en) Semiconductor device
JP2015184935A (ja) I2cバスの調停システムおよび調停方法
Kim et al. A cost-effective latency-aware memory bus for symmetric multiprocessor systems
JP3718764B2 (ja) コンピュータ装置、回路基板およびコンピュータにおける拡張デバイスの選択方法
JP2012168773A (ja) バスシステムおよびアクセス制御方法
KR20050067324A (ko) 마스터/슬레이브 디바이스간의 인터페이스 장치 및 그 방법
WO2006082538A1 (en) Data processing system and method for accessing an electronic resource

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140521

R150 Certificate of patent or registration of utility model

Ref document number: 5551201

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250