JP6954864B2 - 半導体装置およびufsシステム - Google Patents

半導体装置およびufsシステム Download PDF

Info

Publication number
JP6954864B2
JP6954864B2 JP2018077765A JP2018077765A JP6954864B2 JP 6954864 B2 JP6954864 B2 JP 6954864B2 JP 2018077765 A JP2018077765 A JP 2018077765A JP 2018077765 A JP2018077765 A JP 2018077765A JP 6954864 B2 JP6954864 B2 JP 6954864B2
Authority
JP
Japan
Prior art keywords
register
transfer
run
semiconductor device
ufs
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
JP2018077765A
Other languages
English (en)
Other versions
JP2019185544A (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 JP2018077765A priority Critical patent/JP6954864B2/ja
Priority to US16/368,555 priority patent/US10838654B2/en
Publication of JP2019185544A publication Critical patent/JP2019185544A/ja
Application granted granted Critical
Publication of JP6954864B2 publication Critical patent/JP6954864B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Communication Control (AREA)

Description

本開示は半導体装置に関し、例えばフラッシュメモリに対して読み書きするホストコントローラを備える半導体装置に適用可能である。
スマートフォンやタブレット、デジカメ、カーナビなどには、OS(Operating System)などのデータを格納するストレージとして、電子デバイス技術合同協議会(JEDEC:Joint Electron Device Engineering Council)によって規定された組み込みマルチメディアカード(eMMC:embedded Multi-Media Card)の規格に準拠したフラッシュメモリが広く用いられている。eMMC規格はパラレルインタフェースを使用していて、動作周波数を上げるのが困難であり、後継規格として、JEDECで規定されたユニバーサルフラッシュストレージ (UFS:Universal Flash Storage)規格(非特許文献1)が策定されている。UFS規格は、ホスト(Host)とフラッシュメモリ(デバイス(Device))との間でやり取りするプロトコルや電気的特性を定義している規格である。この規格に加え、OSやドライバの再利用性を高めるために、ユニバーサルフラッシュストレージホストコントローラインタフェース(UFSHCI:Universal Flash Storage Host Controller Interface)規格(非特許文献2)が策定されている。UFSHCI規格はソフトウェアとのインタフェースとなるレジスタとソフトウェアから指示される転送とデータの制御を定義している。特許文献1にはホストとデバイスを備えるUFSシステムが開示されている。
特表2016−539429号公報
JEDEC STANDARD Universal Flash Storage (UFS) Version 2.1 (JESD220C) JEDEC STANDARD Universal Flash Storage Host Controller Interface (UFSHCI) Version 2.1 (JESD223C)
UFSHCI規格の文言を直接UFS規格およびUFSHCI規格の両規格に準拠するホスト(UFSホストという。)に実装すると、UFS規格に準拠するフラッシュメモリ等のデバイス(UFSデバイスという。)の読み書き動作が固まったり、データの内容が破壊されたりする不具合が発生する場合がある。
本開示のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、半導体装置はユニバーサルフラッシュストレージ(UFS)デバイスとの間のデータ転送を行うUFSホストコントローラを有する。半導体装置は、前記UFSホストコントローラを処理可能状態にするランストップレジスタと、前記UFSホストコントローラに転送を指示するドアベルレジスタと、前記UFSホストコントローラが転送要求の処理が実行可能かどうかを示すレディビットと、を備える。前記UFSホストコントローラは、前記データ転送が仕掛中に前記ランストップレジスタがクリアされた場合、前記データ転送が完了するまで次のデータ転送の登録を防止する。
上記半導体装置によれば、不具合を回避することができる。
実施形態のUFSシステムの構成を示すブロック図 図1のレジスタ群に含まれるレジスタを示す図 16Kバイトのライト動作を示すフロー図 図3のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図 図3のライト動作の途中でアボートを行った場合の例を示すフロー図 図5のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図 図4のライト動作の途中でランストップレジスタをクリアした場合の例を示すフロー図 図7のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図 比較例のランストップレジスタおよびドアベルレジスタ並びにそれらの制御系を示す論理回路図 第一実施例のランストップレジスタ、ドアベルレジスタおよびレディビット並びにそれらの制御系を示す論理回路図 第一実施例において図3のライト動作の途中でランストップレジスタをクリアした場合の例を示すフロー図 図11のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図 第二実施例のランストップレジスタおよびドアベルレジスタ並びにそれらの制御系を示す論理回路図 第二実施例において図3のライト動作の途中でランストップレジスタをクリアした場合の例を示すフロー図 図14のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図 第三実施例のランストップレジスタおよびドアベルレジスタ並びにそれらの制御系を示す論理回路図 第三実施例において図4のライト動作の途中でランストップレジスタをクリアした場合の例を示すフロー図 図17のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図
以下、実施形態、実施例および比較例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
まず、UFS規格およびUFSHCI規格に準拠するシステム(UFSシステムという。)について図1を用いて説明する。図1は実施形態のUFSシステムの構成を示すブロック図である。
UFSシステム1はUSFホスト10とUFSデバイス20を備える。UFSホスト10はCPU11とメモリ12とUFSホストコントローラ13とバス14とを一つの半導体チップに備える半導体装置である。UFSホストコントローラ13はUFS規格とUFSHCI規格に準拠し、レジスタ群(HCREG)15と転送制御ユニット(HC)16と転送プロトコルユニット(UTP)17と通信インタフェース(UIC)18とを備える。通信インタフェース18はUniPro規格に準拠するリンク層とM−PHY規格に準拠する物理層で構成されている。UFSデバイス20は通信インタフェースを含むコントローラとフラッシュメモリで構成されている。
UFSホスト10のソフトウェア(アプリケーションやドライバ)はメモリ12または図示していないメモリに格納されてCPU11で実行される。CPU11はUFSホストコントローラ13と通信するため、メモリマップI/O空間に配置されるレジスタ群15と共にメモリ12内のUTP転送要求記述(UTP Transfer Request Descriptor)を使用する。レジスタ群について図2を用いて説明する。
図2は図1のレジスタ群に含まれるレジスタを示す図である。
レジスタ群15は、UFSHCI規格で定義されているレジスタを備えるが、本開示に主に関連するのは、図2に示すように、ランストップ(Run-Stop)レジスタ151と、ドアベル(Door bell)レジスタ152と、である。その他に、ホストコンローラステータスレジスタ153のレディビット1531と、ベースアドレス(Base Address)レジスタ154と、リクエストクリアレジスタ155と、が関連する。
ランストップレジスタ151は非特許文献2の23頁の5.4.5に定義されるUTRLRSR(UTP Transfer Request List Run-Stop Register)である。ドアベルレジスタ152は非特許文献2の23頁の5.4.3に定義されるUTRLDBR(UTP Transfer Request List Door Bell Register)である。ホストコンローラステータスレジスタ153のレディビット1531は非特許文献2の17頁の5.3.3に定義されるHCS(Host Controller Status)のUTRLRDY(UTP Transfer Request List Ready)である。ベースアドレスレジスタ154は非特許文献2の22頁の5.4.1に定義されるUTRLBA(UTP Transfer Request List Base Address)である。リクエストクリアレジスタ155は非特許文献2の23頁の5.4.4に定義されるUTRLCLR(UTP Transfer Request List Clear Register)である。以下では、本開示に主に関連するその一部の定義について説明する。
ランストップレジスタ151は32ビット長のレジスタであるが、ビット0のみが使用される。ランストップレジスタ151は、CPU11によって、転送制御ユニット16を処理可能状態(転送を行う状態)にする際に1が書かれ、転送を実施しない状態にする際に0が書かれる。ランストップレジスタ151が0にクリアされても、転送制御ユニット16はすべての転送要求が完了するまで転送を行い、その後停止する。ランストップレジスタ151はレディビット1531が1にセットされている場合のみ、1にセットされる。
ドアベルレジスタ152は、転送する内容を用意・登録できたら、CPU11が本レジスタに1をセットし、転送制御ユニット16に転送開始を指示するレジスタである。ドアベルレジスタ152は32ビットで構成され、32個の転送を登録可能である。登録した転送が完了すると、転送制御ユニット16が当該のビットを0にクリアする。ドアベルレジスタ152はランストップレジスタ151が1にセットされている場合のみ、1または0にセットされる。CPU11によってランストップレジスタ151が1から0に書かれるとき、ドアベルレジスタ152は0にクリアされる。
レディビット1531はホストコントーラステータスレジスタ153のビット1に配置され、UFSホストコントローラ13がUTP転送要求の処理が実行可能かどうかを示すビットであり、転送制御ユニット16によって設定される。
ベースアドレスレジスタ154はUTP転送要求リストのためのベース物理アドレスであり、実行するコマンドをフェッチするときに使用される。
リクエストクリアレジスタ155は、転送要求が中断(アボート)されたことを意味するタスク管理レスポンスをUFSホスト10のソフトウェアが受信するとき、すなわち、UTP転送要求が完了しないと予想されるときにUFSホスト10のソフトウェアによって使用される。
非特許文献2の6頁の4.2に示されるように、メモリ12内にUTP転送要求リスト(UTP Transfer Request List)およびUTP管理要求リスト(UTP Task Management Request List)が格納される。UTP転送要求リストは32個までUTP転送要求記述を格納可能であり、各UTP転送要求記述はコマンド(Command UPIU)、レスポンス(Response UPIU)、データバッファ(Data Buffer)をアクセスするためのベースアドレスを含む物理領域記述テーブル(PRDT:Physical Region Descrition Table)をアクセスするためのアドレス情報が含まれる。UTPタスク管理要求リストは32個までUTPタスク管理要求およびUTPタスク管理レスポンスを格納可能である。
次に、転送プロトコルユニット17のプロトコル情報ユニットについて説明する。UFSホスト10とUFSデバイス20との間の通信は一連のメッセージに分割される。これらのメッセージは、非特許文献1の規格で定義されているUFSプロトコル情報ユニット(UPIU:UFS Protocol Information Units)にフォーマットされている。UPIUにはコマンド(Command)、データ出力(Data Out UPIU)、レスポンス(Response UPIU)、タスク管理要求(Task Management Request UPIU)、タスク管理レスポンス(Task Management Response UPIU)、RTT(Ready To Transfer)等がある。
本開示で説明するUPIUは、全てタスクタグ(Task Tag)フィールドを有しており、UPIUに載せられたタスクタグと一致するUPIU(受信データ・レスポンス)のみ転送対象とし、タスクタグが異なるUPIUは破棄される。タスクタグはインクリメントする番号で、異なるトランザクションで共通のタスクタグを使用することはできない。
本実施形態は、UFSデバイス20へのライト(書込み)動作の中断時に関わるものである。UFSホスト10が、データをUFSデバイス20に書き込む際の動作例について図3、4を用いて説明する。図3は16Kバイトのライト動作を示すフロー図である。図4は図3のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図である。
ステップS1:ランストップレジスタ151に1を書き、転送を実施することを転送制御ユニット16に通知する。ランストップレジスタ151に1を書く前に、転送制御ユニット16の準備ができているかどうかを、ホストコントローラステータスレジスタ153のレディビット1531を読み確認する。レディビット1531が1の時のみランストップレジスタ151に1を書き込める。
ステップS2(ドアベル登録):アプリケーションを実行するCPU11が、書き込むデータと書き込む内容(サイズなど)等の転送内容が記載されるUTP転送要求リスト(UTP Transfer Request List)をメモリ12上に用意する。図4に示すように、本例では、UTP転送要求リストの一つのUTP転送要求記述には転送内容1が記載されている。ドライバを実行するCPU11が、ベースアドレス154にUTP転送要求リストのアドレスを記載し、ドアベルレジスタ152に1をセットすることにより転送開始の指示を行う。この際、CPU11は、UTP転送要求リストの記載した場所(スロット)に対応するドアベルレジスタ152に1を書いて転送起動する。
ステップS3(ドアベル通知):ドアベルレジスタ152およびベースアドレス154に書き込まれた内容は転送制御ユニット16に通知される。
ステップS4(転送指示):レジスタ群15の内容を基に、転送制御ユニット16は、UTP転送要求記述を取得し、転送プロトコルユニット17に転送を指示すると共に、ライトデータの準備を行う(メモリ12からデータを読み出し、転送プロトコルユニット17に渡す)。
ステップS5:転送プロトコルユニット17は、UFSデバイス20にライトを指示する。これは、SCSI規格で規定されたWRITE6コマンドを、UFS規格で定められたコマンド(Command UPIU)に記載して送信する。コマンド(Command UPIU)は、通信インタフェース(UIC)18を通じてUFSデバイス20に送信される。この例では、ライトするサイズを16Kバイトとする。
ステップS6:UFSデバイス20は、WRITE6コマンド受信後、書き込みの準備ができると、書き込めるサイズをRTT(Ready To Transfer UPIU)でUFSホスト10に通知する。この例では、UFSデバイス20は8KバイトをRTTでUFSホスト10に通知することとする。2個のRTTで、合計16Kバイトのライトが実施される。
ステップS7:転送プロトコルユニット17は、RTTで指示されたサイズのデータを、データ出力(Data Out UPIU)に付加し、UFSデバイス20に送信する。この例では、8Kバイトのデータ出力(Data Out UPIU)を2個送信している。
ステップS8:UFSデバイス20は、UFSホスト10から指示されたサイズの書き込みが完了すると、レスポンス(Response UPIU)を送信する。
ステップS9:転送プロトコルユニット17は、レスポンス(Response UPIU)を受信すると、転送完了を転送制御ユニット16に通知する。
ステップS10:転送制御ユニット16は、転送完了通知を受け取ると、ドアベルレジスタ152を0にクリアする。このクリアで、CPU11への割り込みがアサートされる。
ステップS11:CPU11は、割り込みが入ると、転送が完了したことを認識する。
UFSホスト10のソフトウェアが、何らかの理由で、既に開始した転送を中断したい場合、タスク管理(Task Management Request UPIU)でアボート(ABORT)をUFSデバイス20に通知した後、レジスタ群15内のリクエストクリアレジスタ155に0を書き、転送を中断することができる。この動作について図5、6を用いて説明する。図5は図3のライト動作の途中でアボートを行った場合の例を示すフロー図である。図6は図5のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図である。
ステップS1〜ステップS7は、図3のライト動作と同じである。
ステップS8A:この例では、ドアベルレジスタ152の登録後、アプリケーションを実行するCPU11が転送の中断を意図し、アボート(ABORT)のタスク管理要求(Task Management Request UPIU)を登録する。
ステップS9A:UFSデバイス20は、アボートのタスク管理要求(Task Management Request UPIU)を受け付け、転送の中断を受信し、中断を受け付けたら、アボートのタスク管理レスポンス(Task Management Response UPIU)を送信し、アプリケーションを実行するCPU11に中断完了を通知する。UFS規格上、転送完了を通知する前に、RTTでリクエストしたデータは、全て受信しなければならない(非特許文献1の73頁、1521〜1524行)。また、中断後は、新たなRTTの発行は禁じられている。本例では、1回目のRTTのみが通知される。
ステップS10A:中断完了を通知されたアプリケーションを実行するCPU11は、リクエストクリアレジスタ155をクリアする。
ステップS11A:ドアベルレジスタ152のクリアは転送制御ユニット16に通知される。
ステップS12A:転送制御ユニット16は、リクエストクリアレジスタ155のクリア通知を受け、転送プロトコルユニット17に転送中止指示を出す。
ステップS13A:転送プロトコルユニット17は、転送受信したRTTで指示されたサイズのデータを付加したデータ出力(Data Out UPIU)を送信するまで待ち、送信が完了すると、転送完了通知を転送制御ユニット16に通知する。本例では、ステップS7においてデータ出力(Data Out UPIU)が送信されている。
ステップS14A:転送制御ユニット16は、ドアベルレジスタ152をクリアする。
ステップS15A:ドアベルレジスタ152がクリアされると、アプリケーションを実行するCPU11に転送完了割り込みが通知される。
ステップS16A:この例では、WRITE6のレスポンス(Response UPIU)が、ドアベルレジスタ152のクリア後にUFSデバイス20より送信されるが、このレスポンス(Response UPIU)は、転送プロトコルユニット17より、無視される。
本願発明者が見出した不具合について以下説明する。
非特許文献2の23頁の5.4.3の最後の一文に、ホストソフトウェアによってUTRLRSR(ランストップレジスタ)が1から0に書かれると、UTRLDBR(ドアベルレジスタ)はクリアされると定義されている。一方で、非特許文献2の23頁の5.4.5では、UTRLRSRが0にクリアされても、登録してある転送は実行してしまうと定義されている。
これらの定義では、UFSデバイス20へのライト動作中にランストップレジスタをクリアすると、転送制御ユニット16、メモリ上の転送内容、UFSデバイス20の間に情報の矛盾が生じ、動作が固まったり、データの内容が破壊されたりする。転送制御ユニット16や転送プロトコルユニット17の実装に依存し、不具合の内容は異なる。
転送制御ユニット16および転送プロトコルユニット17が次のドアベル登録を受け付ける例について図7、8を用いて説明する。図7は図4のライト動作の途中でランストップレジスタをクリアした場合の例を示すフロー図である。図8は図7のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図である。図10は比較例のランストップレジスタおよびドアベルレジスタ並びにそれらの制御系を示す論理回路図である。
ステップS1〜ステップS5は、図4のライト動作と同じである。
ステップS6B:アプリケーションを実行するCPU11が、ランストップレジスタ151に0を書きこみ、転送中止を指示する。
ステップS7B:転送制御ユニット16が、非特許文献2の23頁の5.4.3の定義に従い、ドアベルレジスタ152をクリアする。規格上、すぐにクリアすると記載があるため、図9に示すような構成をとると考えられる。
ランストップレジスタ151を構成するフリップフロップFF1の出力に、フリップフロップFF2とアンドゲートAN1とにより構成される立下り検出回路を設け、立下り検出回路はランストップレジスタ151の出力が1から0への立下りを検出し、1クロックサイクルの間1を出力するパルス信号(RTKP)を発生させる。アンドゲートAN1の入力端子の○は反転信号が入力されることを表している。パルス信号(RTKP)がオアゲートOR1を介してフリップフロップFF3のクリア端子に入力され、ドアベルレジスタ152はクリアされる。ドアベルレジスタ152は、転送制御ユニット16からの転送完了通知パルス信号(TKTP)によってもクリアされる。ランストップレジスタ151およびドアベルレジスタ152はそれぞれのライトイネーブル(WE)信号が1のとき、ライトデータ(Write Data)が書き込まれる。なお、図10のランストップレジスタ151はイネーブル端子(en)付きのD型フリップフロップで構成され、ドアベルレジスタ152はセット端子(set)およびクリア端子(clear)付きD型フリップフロップで構成され、フリップフロップFF1はD型フリップフロップで構成される。図9のフリップフロップの三角形はクロック入力端子を表しており、図示しないクロック信号が入力されている。
転送制御ユニット16は、非特許文献2の23頁の5.4.5の定義の通り、ランストップレジスタ151が0でも仕掛中の転送要求(outstanding transfer request)を継続する必要があるため、転送プロトコルユニット17には特に通知を行わない。
ステップS8B:ランストップレジスタ151が0となっても、UFSデバイス20には通知されないため、UFSデバイス20は通常動作を続け、RTTを発行する。
ステップS9B:転送プロトコルユニット17はRTT分のデータをデータ出力(Data Out UPIU)で送信する。
ステップS10B:アプリケーションを実行するCPU11がランストップレジスタ151に1を書きこむ。
ステップS11B:ステップS2と同様に、アプリケーションを実行するCPU11が、UTP転送要求記述と、ドアベルレジスタ152に転送を登録する。この時点で、図8に示すように、UTP転送要求記述には転送内容2が書かれ、転送プロトコルユニット17が転送実施中の内容(転送内容1)とUTP転送要求記述の内容(転送内容2)に齟齬が生じる。
ステップS12B:ドアベルレジスタ152のクリアは転送制御ユニット16に通知される。
ステップS13B:転送制御ユニット16がドアベルレジスタ152のクリア通知を受け取り、次の転送を転送プロトコルユニット17に指示する。
ステップS14B:転送プロトコルユニット17は、転送制御ユニット16からの指示を受け取り、WRITE6コマンドを発行する。
ステップS15B:ステップS12Bに並行して、UFSデバイス20が次のRTTを発行する。この後、UFSデバイス20は、データ出力(Data Out UPIU)待ちのため、ステップS14BのWRITE6コマンドは受け付けられない。
ステップS16B:RTTが転送プロトコルユニット17に届くが、このRTTはタスクタグが異なるので、破棄される。この後、転送プロトコルユニット17は、RTT待ちとなる(ステップS17B)。
以上の動作では、転送完了待ちのまま処理が固まる不具合となる。また、転送内容2が書かれた時点では、まだ転送内容1の転送が実施中であり、仮に転送が完了していた場合、結果を転送内容2のUTP転送要求記述に書き込むことになり、間違った転送結果をアプリケーションに報告することになる。
実施形態では、アプリケーションがランストップレジスタに0を書いた後、仕掛中の転送が完了するまで、次の転送を登録することをガードする。
これにより、仕掛中の転送が完了してから次の転送を登録するため、次の転送登録が仕掛中の転送と被らず、転送制御ユニット16内部やUFSデバイス20の転送状態が一意になり、情報が壊れることがなく、動作が固まることもなくなる。
実施形態の第一実施例について図10〜12を用いて説明する。図10は第一実施例のランストップレジスタ、ドアベルレジスタおよびレディビット並びにそれらの制御系を示す論理回路図である。図11は第一実施例において図3のライト動作の途中でランストップレジスタをクリアした場合の例を示すフロー図である。図12は図11のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図である。
第一実施例では、図9の比較例の回路に加え、転送制御ユニット16からの転送が仕掛中であることを示す転送仕掛フラグ(TSF)がセットされているときにパルス信号(RTKP)が生成される(アンドゲートAN3が1になる)と1にセットされるフリップフロップFF4を備え、フリップフロップFF4が1にセットされることによりレディビット1531を構成するフリップフロップFF5は0にクリアされる。フリップフロップFF4は1にセットされてから1クロック後に0にクリアされる。
フリップフロップFF5は、非特許文献2の17頁の5.3.3に規定されるように、以下のいずれかの条件が満たされる場合も、すなわち、オアゲートOR2=1のとき、0にクリアされる。
(1)UFSデバイス20が検出されないことを示すパルス信号(NDP)が1のとき
(2)UTP転送要求リストが満杯であることを示す信号(TRLF)が1のとき
(3)UFSホストコントローラ13またはUFSデバイス20にエラーがあることを示すパルス信号(ERR)が1のとき
逆に、フリップフロップFF5は、以下のすべての条件が満たされる場合、すなわち、アンドゲートAN5=1のとき、1にセットされる。
(1)アンドゲートAN4の出力が1のとき(ランストップレジスタ151がセットされているときまたはフリップフロップFF4が0にクリアされているとき)
(2)UFSデバイス20の存在が検出される信号(DP)が1のとき
(3)UTP転送要求リストが満杯でないことを示す信号(NTRLF)が1のとき
(4)UFSホストコントローラ13およびUFSデバイス20にエラーがないことを示す信号(NERR)が1のとき
なお、図11のフリップフロップFF4およびレディビット1531を構成するフリップフロップFF5はセット端子(set)およびクリア端子(clear)付きD型フリップフロップで構成される。図10のフリップフロップの三角形もクロック入力端子を表しており、図示しないクロック信号が入力されている。
これにより、ランストップレジスタ151に0を書かれた時に、仕掛中の転送がある場合は、仕掛中の転送が完了するまでレディビット1531を1にしないことができる。
第一実施例の構成において図3のライト動作中にランストップレジスタ151に0を書いた場合の動作について図11、12を用いて説明する。
ステップS1〜ステップS11は、図3のライト動作と同じとなる。
ステップS12C:ライト転送中に、UFSホスト10のソフトウェアがランストップレジスタ151に0を書いた場合、本実施例の構成により、ドアベルレジスタ152およびレディビット1531が0にクリアされる。
ステップS13C:仕掛中の転送が完了すると、転送制御ユニット16は転送仕掛フラグ(TSF)をリセットすることによりレディレビット1531を1にセットする。
ステップS14C:アプリケーションを実行するCPU11はレディビット1531が1となったことをポーリングにより検知する。
ステップS15C:アプリケーションを実行するCPU11がランストップレジスタ151に1を書き込む。
ステップS16C:ステップS2と同様に、アプリケーションを実行するCPU11がUTP転送要求記述とドアベルレジスタ152を登録する。ここで、図12に示すように、UTP転送要求記述には転送内容2が書かれる。
ステップS17C以降は、ステップS3以降と同じとなる。
レディビット(UTRLRDY)が1でないと、ランストップレジスタ(UTRLRSR)に1を書けないと非特許文献2に規定されているため、本実施例の機能を使用し、仕掛中の転送がある場合は、レディビット1531を0にクリアして、次のランストップレジスタレジスタに1を書けないようにする。これにより、次の転送が登録されることが無く、仕掛中の転送と、情報・データの混在が生じず、仕掛中の転送を正常に完了させることができる。
実施形態の第二実施例について図13〜15を用いて説明する。図13は第二実施例のランストップレジスタおよびドアベルレジスタ並びにそれらの制御系を示す論理回路図である。図14は第二実施例において図3のライト動作の途中でランストップレジスタをクリアした場合の例を示すフロー図である。図15は図14のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図である。
第二実施例では、図9の比較例の回路に加え、ランストップレジスタ151に0を書こうとすることを検出する回路(アンドゲートAN7、AN8およびフリップフロップFF6)を設け、ランストップレジスタ151を構成するフリップフロップFF1’をセット端子(set)およびクリア端子(clear)付きD型フリップフロップで構成する。ランストップレジスタ151に1を書く場合は、ライトイネーブル信号(WE)およびライトデータ(Write Data)が入力されるアンドゲートAN6によりフリップフロップFF1’が1にセットされる。ランストップレジスタ151に0を書く場合は、ライトイネーブル信号(WE)およびライトデータ(Write Data)の反転信号が入力されるアンドゲートAN7によりフリップフロップFF6が1にセットされ、転送仕掛フラグ(TSF)がセットされていないときに、ランストップレジスタのクリア信号(RSC)が1になってフリップフロップFF1’が0にクリアされる。転送仕掛フラグ(TSF)がセットされているときは、ランストップレジスタのクリア信号(RSC)が0になってフリップフロップFF1’は0にクリアされない。なお、フリップフロップFF6はセット端子(set)およびクリア端子(clear)付きD型フリップフロップで構成する。
これにより、CPU11がランストップレジスタ151に0を書こうとしても、仕掛中の転送がある場合は、ランストップレジスタ151を0にしないことができる。
第二実施例の構成において図3のライト動作中にランストップレジスタ151に0を書いた場合の動作について図14、15を用いて説明する。
ステップS1〜ステップS11は、図3のライト動作と同じとなる。
ステップS12D:ライト転送中に、UFSホスト10のソフトウェアがランストップレジスタ151に0を書こうとしも、本実施例の構成により、ランストップレジスタ151には0が書かれず、ランストップレジスタ151およびドアベルレジスタ152は変化せず、転送を続ける。アプリケーションを実行するCPU11は、ランストップレジスタ151が0にならないため、ライトが完了したと見なせず、待ち状態となる。アプリケーションを実行するCPU11は、ランストップレジスタ151が0となるまでポーリングする。
ステップS13D:仕掛中の転送が完了すると、転送制御ユニット16は転送仕掛フラグ(TSF)をクリアして、ランストップレジスタ151をクリアする。次のサイクルでドアベルレジスタ152もクリアされる。
ステップS14D:アプリケーションを実行するCPU11はランストップレジスタ151が0となったことをポーリングにより検知する。
ステップS15D:アプリケーションを実行するCPU11がランストップレジスタ151に1を書き込む。
ステップS16D:ステップS2と同様に、アプリケーションを実行するCPU11がUTP転送要求記述とドアベルレジスタ152を登録する。ここで、図15に示すように、UTP転送要求記述には転送内容2が書かれる。
ステップS17D以降は、ステップS2以降と同じとなる。
転送中にランストップレジスタ151に0を書こうとしても、すぐに0を反映しない構成としたことにより、ランストップレジスタ151およびドアベルレジスタ152は前の状態を保持し、アプリケーションが次の転送を登録することを防ぐ。次の転送が登録されないため、今の転送と情報やデータの混在が生じず、正常に転送を完了することができる。
実施形態の第三実施例について図16〜18を用いて説明する。図16は第三実施例のランストップレジスタおよびドアベルレジスタ並びにそれらの制御系を示す論理回路図である。図17は第三実施例において図3のライト動作の途中でランストップレジスタをクリアした場合の例を示すフロー図である。図18は図17のライト動作におけるレジスタおよびUTP転送要求記述の値を示す図である。
第三実施例では、図9の比較例の回路に加え、内部の仕掛状況をランストップレジスタ151の値に関わらず保持する内部ドアベルレジスタ152’を構成するフリップフロップFF7と、内部ドアベルレジスタ152’の値を、ランストップレジスタ151への1の書き込みでドアベルレジスタ152に書き戻す機構(アンドゲートAN9、アンドゲートAN10、オアゲートOR3)を備える。
フリップフロップFF7は、ドアベルレジスタ152がセットされるときに、同時にセットされるが、ドアベルレジスタ152がクリアされるパルス信号(RTKP)によってはクリアされない。転送仕掛フラグ(TSF)がセットされている限りは、フリップフロップFF7はクリアされない。なお、フリップフロップFF7はセット端子(set)およびクリア端子(clear)付きD型フリップフロップで構成する。
フリップフロップFF3とアンドゲートAN9とは立上り検出回路を構成し、立上り検出回路はランストップレジスタ151の出力が0から1への立上りを検出し、1クロックサイクルの間1を出力するパルス信号(RAKP)を発生させる。フリップフロップFF7がセットされており、かつパルス信号(RAKP)が1(アンドゲートAN10が1)になるときに、オアゲートOR3が1になりドアベルレジスタ152がセットされる。
この構成により、転送が仕掛中にランストップレジスタ151を1→0→1とされた場合に、下記の動作となる。
(1)ランストップレジスタ151が0とされた場合に、ドアベルレジスタ152は、規格規定通りに0にクリアされる。
(2)2度目のランストップレジスタ151が1とされた際に、転送が仕掛中であれば、ドアベルレジスタ152は1にセットされる。
ステップS1〜ステップS11は、図3のライト動作と同じである。
ステップS12E:ライト転送中に、UFSホスト10のソフトウェアがランストップレジスタ151に0を書いた場合、本実施例の構成により、ランストップレジスタ151およびドアベルレジスタ152をクリアする。この際に、内部ドアベルレジスタ152’の値はクリアされない。
ステップS15E:アプリケーションを実行するCPU11がランストップレジスタ151に1を書きこむ。この際に、内部ドアベルレジスタ152’の値がドアベルレジスタ152に書き込まれる。
ステップS16E:アプリケーションを実行するCPU11が、登録したいドアベルの値をポーリングする。この例では、ステップS1〜ステップS11に使用しているドアベルレジスタ152を使用したいケースを記載している。この場合、このドアベルレジスタ152がクリアされるまで、CPU11はポーリングを行う。ドアベルレジスタは32個あるので、もし、別のドアベルレジスタを使用できる場合、この時点で、CPU11は他のドアベルレジスタに登録を行う。
ステップS17E:CPU11はドアベルレジスタ152がクリアされたことをポーリングで検知する。これにより、CPU11は次の転送の登録が可能となったことを検出する。
ステップS18E:ステップS2と同様に、アプリケーションを実行するCPU11がUTP転送要求記述とドアベルレジスタ152を登録する。ここで、図18に示すように、UTP転送要求記述には転送内容2が書かれる。
ステップS19E以降は、ステップS3以降と同じとなる。
上記の動作により、規格を守りつつ、2度目のランストップレジスタ151が1とされた後に、追加のドアベル登録を行われることがなく、情報・データの混在が生じず、正常に転送を完了することができる。
以上、本発明者によってなされた発明を実施形態および実施例に基づき具体的に説明したが、本発明は、上記実施形態および実施例に限定されるものではなく、種々変更可能であることはいうまでもない。
例えば、実施形態では、UFSホストを一つの半導体チップで形成する例を説明したが、UFSコントローラのみを一つの半導体チップで形成するようにしてもよいし、UFSコントローラとCPUを一つの半導体チップで形成するようにしてもよいし、UFSコントローラとメモリを一つの半導体チップで形成するようにしてもよい。
1:UFSシステム
10:UFSホスト(半導体装置)
11:CPU
12:メモリ
13:UFSホストコントローラ
14:バス
15:レジスタ群
151:ランストップレジスタ
152:ドアベルレジスタ
153:ホストコントローラステータスレジスタ
1531:レディビット
154:ベースアドレスレジスタ
155:リクエストクリアレジスタ
16:転送制御ユニット(HC)
17:転送プロトコルユニット(UTP)
18:通信インタフェース(UIC)
20:UFSデバイス

Claims (19)

  1. ユニバーサルフラッシュストレージ(UFS)デバイスとの間のデータ転送を行うUFSホストコントローラを有する半導体装置であって、
    前記UFSホストコントローラを処理可能状態にするランストップレジスタと、
    前記UFSホストコントローラに転送を指示するドアベルレジスタと、
    前記UFSホストコントローラが転送要求の処理が実行可能かどうかを示すレディビットと、
    を備え、
    前記UFSホストコントローラは、前記データ転送が仕掛中に前記ランストップレジスタが0にクリアされた場合、前記データ転送が完了するまで次のデータ転送の登録を防止する半導体装置。
  2. 請求項1の半導体装置において、
    前記UFSホストコントローラは、前記データ転送が仕掛中に前記ランストップレジスタが0にクリアされた場合、前記レディビットを0にクリアする半導体装置。
  3. 請求項2の半導体装置において、
    前記UFSホストコントローラは、前記データ転送が仕掛中に前記ランストップレジスタが0にクリアされた場合、前記データ転送が完了するまで前記レディビットを1にセットしない半導体装置。
  4. 請求項1の半導体装置において、
    前記データ転送が仕掛中に前記ランストップレジスタを0にクリアしようとしても、前記UFSホストコントローラは、前記データ転送が完了するまで前記ランストップレジスタを0にクリアしない半導体装置。
  5. 請求項4の半導体装置において、
    前記UFSホストコントローラは、前記ランストップレジスタを0にクリアする情報を前記データ転送が仕掛中保持し、前記データ転送が完了後、前記ランストップレジスタを0にクリアする半導体装置。
  6. 請求項1の半導体装置において、
    さらに、前記ランストップレジスタの値に拘わらず転送状態を保持する内部ドアベルレジスタを備え、
    前記UFSホストコントローラは、前記ランストップレジスタの書き込みの際に、前記内部ドアベルレジスタの値を前記ドアベルレジスタに書き戻す半導体装置。
  7. 請求項6の半導体装置において、
    前記内部ドアベルレジスタは、前記ランストップレジスタが1にセットされるとき1にセットされ、前記データ転送が仕掛中に前記ランストップレジスタが0にクリアされるときもセット状態が保持され、
    前記ドアベルレジスタは、前記ランストップレジスタが1にセットされるとき、前記内部ドアベルレジスタによって1にセットされる半導体装置。
  8. 請求項1の半導体装置において、
    さらに、前記ランストップレジスタおよび前記ドアベルレジスタに書き込みを行うCPUを備える半導体装置。
  9. ユニバーサルフラッシュストレージ(UFS)デバイスとの間でデータ転送を行う半導体装置であって、
    CPUと、
    転送制御ユニットと、
    前記転送制御ユニットを処理可能状態にするランストップレジスタと、
    前記転送制御ユニットに転送を指示するドアベルレジスタと、
    前記転送制御ユニットが転送要求の処理が実行可能かどうかを示すレディビットと、
    を備え、
    前記データ転送が仕掛中に前記CPUが前記ランストップレジスタを0にクリアしようとする場合、前記転送制御ユニットは、前記データ転送が完了するまで前記CPUによる次のデータ転送の登録を防止する半導体装置。
  10. 請求項9の半導体装置において、
    前記データ転送が仕掛中に前記CPUによって前記ランストップレジスタが0にクリアされようとする場合、前記転送制御ユニットは前記レディビットを0にクリアする半導体装置。
  11. 請求項10の半導体装置において、
    前記データ転送が仕掛中に前記CPUによって前記ランストップレジスタが0にクリアされた場合、前記転送制御ユニットは前記データ転送が完了するまで前記レディビットを1にセットしない半導体装置。
  12. 請求項9の半導体装置において、
    前記データ転送が仕掛中に前記CPUが前記ランストップレジスタを0にクリアしようとしても、前記転送制御ユニットは前記データ転送が完了するまで前記ランストップレジスタを0にクリアしない半導体装置。
  13. 請求項12の半導体装置において、
    前記転送制御ユニットは、前記ランストップレジスタを0にクリアする情報を前記データ転送が仕掛中保持し、前記データ転送が完了後、前記ランストップレジスタを0にクリアする半導体装置。
  14. 請求項9の半導体装置において、
    さらに、前記ランストップレジスタの値に拘わらず転送状態を保持する内部ドアベルレジスタを備え、
    前記CPUが前記ランストップレジスタへ書き込む際に、前記転送制御ユニットは前記内部ドアベルレジスタの値を前記ドアベルレジスタに書き戻す半導体装置。
  15. 請求項14の半導体装置において、
    前記CPUが前記ドアベルレジスタを1にセットするとき、前記内部ドアベルレジスタは1にセットされ、前記データ転送が仕掛中に前記CPUが前記ランストップレジスタを0にクリアするとき、前記内部ドアベルレジスタは1にセット状態を保持し、
    前記CPUが前記ランストップレジスタを1にセットするとき、前記ドアベルレジスタは前記内部ドアベルレジスタによって1にセットされる半導体装置。
  16. ユニバーサルフラッシュストレージ(UFS)デバイスと、
    前記UFSデバイスとの間のデータ転送を制御するUFSホストと、
    を備え、
    前記UFSホストは、
    CPUと、
    UFSホストコントローラと、
    前記UFSホストコントローラを処理可能状態にするランストップレジスタと、
    前記UFSホストコントローラに転送を指示するドアベルレジスタと、
    前記UFSホストコントローラが転送要求の処理が実行可能かどうかを示すレディビットと、
    を備え、
    前記データ転送が仕掛中に前記CPUが前記ランストップレジスタを0にクリアしようとする場合、前記UFSホストコントローラは、前記データ転送が完了するまで前記CPUによる次のデータ転送の登録を防止するUFSシステム。
  17. 請求項16のUFSシステムにおいて、
    前記データ転送が仕掛中に前記CPUによって前記ランストップレジスタが0にクリアされようとする場合、前記UFSホストコントローラは前記レディビットを0にクリアするUFSシステム。
  18. 請求項16のUFSシステムにおいて、
    前記データ転送が仕掛中に前記CPUが前記ランストップレジスタを0にクリアしようとしても、前記UFSホストコントローラは前記データ転送が完了するまで前記ランストップレジスタを0にクリアしないUFSシステム。
  19. 請求項16のUFSシステムにおいて、
    さらに、前記ランストップレジスタの値に拘わらず転送状態を保持する内部ドアベルレジスタを備え、
    前記CPUが前記ランストップレジスタへ書き込む際に、前記UFSホストコントローラは前記内部ドアベルレジスタの値を前記ドアベルレジスタに書き戻すUFSシステム。
JP2018077765A 2018-04-13 2018-04-13 半導体装置およびufsシステム Active JP6954864B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018077765A JP6954864B2 (ja) 2018-04-13 2018-04-13 半導体装置およびufsシステム
US16/368,555 US10838654B2 (en) 2018-04-13 2019-03-28 Semiconductor device including UFS system for data transfer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018077765A JP6954864B2 (ja) 2018-04-13 2018-04-13 半導体装置およびufsシステム

Publications (2)

Publication Number Publication Date
JP2019185544A JP2019185544A (ja) 2019-10-24
JP6954864B2 true JP6954864B2 (ja) 2021-10-27

Family

ID=68161783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018077765A Active JP6954864B2 (ja) 2018-04-13 2018-04-13 半導体装置およびufsシステム

Country Status (2)

Country Link
US (1) US10838654B2 (ja)
JP (1) JP6954864B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230120600A1 (en) * 2021-10-20 2023-04-20 Western Digital Technologies, Inc. Data Storage Devices, Systems, and Related Methods for Grouping Commands of Doorbell Transactions from Host Devices
WO2023142114A1 (zh) * 2022-01-30 2023-08-03 华为技术有限公司 数据处理方法、装置以及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010134858A (ja) * 2008-12-08 2010-06-17 Renesas Electronics Corp データ処理回路
US9170755B2 (en) * 2013-05-21 2015-10-27 Sandisk Technologies Inc. Command and data selection in storage controller systems
US9348537B2 (en) 2013-09-10 2016-05-24 Qualcomm Incorporated Ascertaining command completion in flash memories

Also Published As

Publication number Publication date
US10838654B2 (en) 2020-11-17
JP2019185544A (ja) 2019-10-24
US20190317690A1 (en) 2019-10-17

Similar Documents

Publication Publication Date Title
JP6599397B2 (ja) フラッシュメモリにおけるコマンド完了の確認
US5896550A (en) Direct memory access controller with full read/write capability
WO2019201011A1 (zh) ***的启动方法、装置、电子设备和存储介质
US7321947B2 (en) Systems and methods for managing multiple hot plug operations
JP3181515B2 (ja) データ転送方法及びその方法を用いたデータ転送装置
US9684613B2 (en) Methods and systems for reducing spurious interrupts in a data storage system
JP6954864B2 (ja) 半導体装置およびufsシステム
TWI592866B (zh) 固態硬碟系統的原子寫入方法以及使用該方法的裝置
US6148384A (en) Decoupled serial memory access with passkey protected memory areas
JP2006113689A (ja) バスブリッジ装置およびデータ転送方法
US7844754B2 (en) Data transfer apparatus and data transfer method
WO2024113838A1 (zh) 处理器设置方法、装置、电子设备及存储介质
TW591510B (en) Control method for data transfer control unit
EP1895427B1 (en) Data processing system, data processing apparatus, and data processing method
JP2004030161A (ja) コンピュータシステムにおける割り込み制御方法、コンピュータシステム、半導体集積回路、及びプログラム
TW201839619A (zh) 卸載固態硬碟卡的方法以及使用該方法的裝置
TW461997B (en) Write protection method of programmable chipset software
JP2011138401A (ja) プロセッサシステム、プロセッサシステムの制御方法、及び制御回路
US10860397B1 (en) Communication of data between software applications
GB2443097A (en) Hot plug device with means to initiate a hot plug operation on the device.
JP2009187337A (ja) デバイス制御方法、プログラム、制御回路及び電子機器
US9798479B2 (en) Relocatable and resizable tables in a computing device
JP5823000B2 (ja) マイクロコンピュータ
CN114003514A (zh) 用于处理复制命令的***和方法
CN113836050A (zh) 访存控制方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210525

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210825

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210930

R150 Certificate of patent or registration of utility model

Ref document number: 6954864

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150