CN106462521B - 在基于闪存存储器的存储设备的输入/输出虚拟化主机控制器中的命令捕获 - Google Patents

在基于闪存存储器的存储设备的输入/输出虚拟化主机控制器中的命令捕获 Download PDF

Info

Publication number
CN106462521B
CN106462521B CN201580029210.6A CN201580029210A CN106462521B CN 106462521 B CN106462521 B CN 106462521B CN 201580029210 A CN201580029210 A CN 201580029210A CN 106462521 B CN106462521 B CN 106462521B
Authority
CN
China
Prior art keywords
request
iov
response
trap
order
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
Application number
CN201580029210.6A
Other languages
English (en)
Other versions
CN106462521A (zh
Inventor
A·沙哈姆
M·海姆
L·萨斯曼
D·泰比
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN106462521A publication Critical patent/CN106462521A/zh
Application granted granted Critical
Publication of CN106462521B publication Critical patent/CN106462521B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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
    • 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

Abstract

公开了在基于闪存存储器的存储设备的输入/输出虚拟化(IOV)主机控制器(HC)(IOV‑HC)中的命令捕获。在一个方面,IOV‑HC被配置成从多个输入/输出(I/O)客户端之一的客户端寄存器接口(CRI)接收请求。IOV‑HC在请求被传递到传输协议引擎之前检查该请求的内容。基于内容,IOV‑HC确定该请求是应当被进一步处理还是应当被捕获。如果IOV‑HC确定应当捕获该请求,则IOV‑HC使用请求陷阱来捕获该请求。在一些方面,IOV‑HC生成到虚拟机管理器(VMM)的中断以通知VMM该请求被捕获。在一些方面,IOV‑HC提供响应生成电路以从VMM接收用以生成对捕获的请求所源自的CRI的响应的指令。

Description

在基于闪存存储器的存储设备的输入/输出虚拟化主机控制 器中的命令捕获
优先权要求
本申请要求2014年6月3日提交且题为“command trapping in a multi-clientuniversal flash storage(ufs)host controller(在多客户端通用闪存存储(ufs)主机控制器中的命令捕获)”的美国临时专利申请序列号62/007,123的优先权,其内容通过引用被全部纳入于此。
本申请还要求2015年6月2日提交且题为“COMMAND TRAPPING IN AN INPUT/OUTPUT VIRTUALIZATION(IOV)HOST CONTROLLER(HC)(IOV-HC)OF A FLASH-MEMORY-BASEDSTORAGE DEVICE(在基于闪存存储器的存储设备的输入/输出虚拟化(IOV)主机控制器(HC)(IOV-HC)中的命令捕获)”的美国专利申请序列号14/728,400的优先权,其内容通过引用被全部纳入于此。
背景
I.公开领域
本公开的技术一般涉及移动计算设备中的基于闪存存储器的存储。
II.背景
闪存存储器是非易失性数据存储介质,到闪存存储器的数据可被电子地写入和擦除。目前在各种各样的基于闪存存储器的存储设备中使用闪存存储器,这些基于闪存存储器的存储设备包括存储器卡、固态驱动器、以及通用串行总线(USB)闪存驱动器。基于闪存存储器的存储设备可以提供与动态随机存取存储器(RAM)相当的快速读取和写入时间,同时提供比常规硬盘更高的耐用性和耐冲击性。
为了促成基于闪存存储器的存储设备的广泛使用,已经开发或当前正在开发数个标准。一种此类标准是由电子器件工程联合委员会(JEDEC)开发用于移动计算设备(诸如智能电话以及平板计算机)中的基于闪存存储器的存储的通用闪存存储(UFS)。UFS采用小型计算机系统接口(SCSI)架构模型以及支持具有命令排队特征的多个命令的命令协议,由此实现多线程编程范例。由JEDEC开发的另一标准是嵌入式多媒体卡(eMMC)标准,其提供了经简化的应用接口设计、小的封装大小、以及低的功耗。eMMC基于闪存存储器的存储设备是当前移动设备中的主要存储形式之一。
常规的基于闪存存储器的存储设备标准(诸如UFS和eMMC)当前被设计用于由单个输入/输出(I/O)客户端进行管理和使用。然而,许多现代计算设备能够使用虚拟化环境来同时支持多个I/O客户端(例如,主机或其他处理器子系统)。在此类虚拟化环境中,多个I/O客户端可能各自需要与单个基于闪存存储器的存储设备交互,如同它是基于闪存存储器的存储设备的唯一主机那样。类似地,基于闪存存储器的存储设备可能需要如同它仅与单个I/O客户端进行通信那样来操作,而实际上它正与多个I/O客户端进行通信。
具体而言,当基于闪存存储器的存储标准被扩展到多主机环境时,来自多个I/O客户端的请求和/或命令可能需要附加的处理和/或过滤。例如,可能需要处理请求以确定该请求是否可以被发送至基于闪存存储器的存储设备,或该请求是否应当被修改或丢弃。
公开概述
详细描述中所公开的诸方面包括:在基于闪存存储器的存储设备的输入/输出虚拟化(IOV)主机控制器(HC)(IOV-HC)中的命令捕获。在一个方面,IOV-HC被配置成从对应于多个输入/输出(I/O)客户端之一的客户端寄存器接口(CRI)接收请求(例如,作为非限定性示例,传输请求(TR)或任务管理请求(TMR))。IOV-HC在请求被传递到传输协议引擎之前检查该请求的内容。基于请求的内容,IOV-HC可以确定该请求是否应当被进一步处理(例如,作为非限定性示例,由访问控制电路或由多主机功率控制器(MHPC)来进一步处理),或者该请求是否应当被捕获。如果IOV-HC确定请求应当被捕获,则IOV-HC使用请求陷阱来捕获该请求,并且在一些方面可以生成到虚拟机管理器(VMM)的中断以通知VMM该请求被捕获。IOV-HC的一些方面还可以提供响应生成电路,该响应生成电路使得VMM能够指导IOV-HC生成到捕获的请求所源自的CRI的响应。以此方式,IOV-HC可以将基于闪存存储器的存储设备的功能性扩展到多个I/O客户端。
在另一方面,提供了一种IOV-HC。IOV-HC经由对应的多个CRI来通信地耦合至多个I/O客户端,并且耦合至基于闪存存储器的存储设备。IOV-HC包括请求陷阱。IOV-HC被配置成通过IOV-HC的请求过滤电路来从多个CRI中的一个CRI接收定向至基于闪存存储器的存储设备的请求。IOV-HC被进一步配置成通过请求过滤电路来检查该请求的内容。IOV-HC还被配置成通过请求过滤电路基于内容来确定该请求是应当被转发至基于闪存存储器的存储设备以供处理,还是应当被捕获。IOV-HC被附加地配置成响应于确定请求应当被转发至基于闪存存储器的存储设备以供处理而将该请求转发至基于闪存存储器的存储设备。IOV-HC被进一步配置成响应于确定请求应当被捕获而在请求陷阱中捕获该请求。
在另一方面,提供了一种用于为用于多个主机的基于闪存存储器的存储设备提供命令捕获的方法。该方法包括通过IOV-HC的请求过滤电路来从多个CRI中的一CRI接收定向至基于闪存存储器的存储设备的请求。该方法进一步包括通过请求过滤电路来检查请求的内容。该方法还包括通过请求过滤电路基于内容来确定该请求是应当被转发至基于闪存存储器的存储设备以供处理,还是应当在请求陷阱中被捕获。该方法附加地包括响应于确定请求应当被转发至基于闪存存储器的存储设备以供处理,而将该请求转发至基于闪存存储器的存储设备。该方法进一步包括,响应于确定请求应当被捕获,而在请求陷阱中捕获该请求。
在另一方面,提供了一种IOV-HC。IOV-HC包括用于从多个CRI中的一CRI接收定向至基于闪存存储器的存储设备的请求的装置。IOV-HC进一步包括用于检查请求的内容的装置。IOV-HC还包括用于基于内容来确定该请求是应当被转发至基于闪存存储器的存储设备以供处理,还是应当被捕获的装置。IOV-HC附加地包括用于响应于确定请求应当被转发至基于闪存存储器的存储设备以供处理而将该请求转发至基于闪存存储器的存储设备的装置。IOV-HC进一步包括用于响应于确定请求应当被捕获而在请求陷阱中捕获该请求的装置。
附图简述
图1是包括经由示例性输入/输出虚拟化(IOV)主机控制器(HC)(IOV-HC)来通信地耦合至示例性的基于闪存存储器的存储设备的多个输入/输出(I/O)客户端的示例性片上系统(SoC)的框图;
图2是图1的用于为多个I/O客户端提供命令捕获的IOV-HC内的示例性元件和通信流的框图;
图3是解说图1的IOV-HC的用于存储所捕获的请求的示例性请求陷阱的元件的框图。
图4是解说图1的IOV-HC的用于生成要被发送至多个I/O客户端的响应的示例性响应生成电路的元件的框图;
图5A和5B是解说图1的用于为多个I/O客户端提供命令捕获的IOV-HC的示例性操作的流程图;
图6是解说图1的用于确定可如何处理和/或捕获所接收到的请求的IOV-HC的示例性操作的流程图;
图7是解说图1的使用图2和3的请求陷阱进行命令捕获的IOV-HC的示例性操作的流程图;以及
图8是可包括采用图1的IOV-HC的SoC的示例性计算设备的框图。
详细描述
现在参照附图,描述了本公开的若干示例性方面。措辞“示例性”在本文中用于表示“用作示例、实例或解说。本文中描述为示例性”的任何方面不必被解释为优于或胜过其他方面。
详细描述中所公开的诸方面包括:基于闪存的存储设备的输入/输出虚拟化(IOV)主机控制器(HC)(IOV-HC)中的命令捕获在一个方面,IOV-HC被配置成从对应于多个输入/输出(I/O)客户端之一的客户端寄存器接口(CRI)接收请求(例如,作为非限定性示例,传输请求(TR)或任务管理请求(TMR))。IOV-HC在请求被传递到传输协议引擎之前检查请求的内容。基于请求的内容,IOV-HC可以确定请求是否应当被进一步处理(例如,作为非限定性示例,通过访问控制电路或通过多主机功率控制器(MHPC)来进一步处理),或者请求是否应当被捕获。如果IOV-HC确定请求应当被捕获,则IOV-HC使用请求陷阱来捕获请求,并且在一些方面可以生成到虚拟机管理器(VMM)的中断以通知VMM请求被捕获。IOV-HC的一些方面还可以提供响应生成电路,该响应生成电路使得VMM能够指导IOV-HC生成对捕获的请求所源自的CRI的响应。以此方式,IOV-HC可以将基于闪存存储器的存储设备的功能性扩展到多个I/O客户端。
鉴于此,图1是包括IOV-HC 102的示例性片上系统(SoC)100的框图。在图1的示例中,提供IOV-HC 102以使得多个I/O客户端104(0)-104(N)能够访问单个基于闪存存储器的存储设备106。在一些方面,作为非限定性示例,基于闪存存储器的存储设备106可包括通用闪存存储(UFS)设备或嵌入式多媒体卡(eMMC)设备。注意,尽管在这一方面,基于闪存存储器的存储设备106毗邻于SoC 100地嵌入在移动设备内,但是在将基于闪存存储器的存储设备106用作可移动的存储器设备时,其他方面可以达成类似的功能性。
SoC 100还包括虚拟机管理器(VMM)108,其为I/O客户端104(0)-104(N)提供虚拟化功能性以及管理。VMM 108可以是由SoC 100的处理器来执行的软件模块,并且按照需求或期望而驻留在SoC 100的系统存储器(未示出)或其他存储器位置中。I/O客户端104(0)-104(N)中的每一者可包括在SoC 100的处理器上和/或SoC 100中的处理器子系统(未示出)上执行的主机软件实体(诸如图1的I/O客户端104(0)以及I/O客户端104(1))。IOV-HC 102可以充当I/O客户端104(0)-104(N)与基于闪存存储器的存储设备106之间的中介。以此方式,IOV-HC 102可以控制I/O客户端104(0)-104(N)与基于闪存存储器的存储设备106之间的交互,以使得I/O客户端104(0)-104(N)各自与基于闪存存储器的存储设备106交互,如同它是与基于闪存存储器的存储设备106进行通信的唯一I/O客户端104(0)-104(N)那样。类似地,IOV-HC 102可被配置成使得基于闪存存储器的存储设备106如同它仅与单个I/O客户端104(0)-104(N)进行通信那样来操作,而实际上它正与多个I/O客户端104(0)-104(N)进行通信。
为了更好地解说根据一些方面的图1的IOV-HC 102内的示例性组成元件和通信流,提供了图2。将理解,根据使用中的基于闪存存储器的存储设备106的标准(例如,作为非限定性示例,UFS或eMMC)的需要,IOV-HC 102可以包括比图2中所解说的元件更多或更少的元件。如图2中所见的,IOV-HC 102包括图1的VMM 108可以藉以与IOV-HC 102通信的基本寄存器接口(BRI)200,如由箭头202所指示的。IOV-HC 102还包括客户端寄存器接口(CRI)204(0)-204(N)。CRI 204(0)-204(N)中的每一个CRI表示用于图1的I/O客户端104(0)-104(N)中的相应一者的接口,以向IOV-HC 102传送请求(诸如由CRI 204(0)发送的请求206)。作为非限定性示例,请求206可包括传输请求(TR)和/或任务管理请求(TMR)。根据本文中所公开的一些方面,请求206可包括读取请求、写入请求、功率控制请求(例如,小型计算机系统接口(SCSI)启动停止单元(SSU)请求或eMMC睡眠请求)、和/或其他请求。CRI 204(0)-204(N)还可以被用于传送其他类型的请求或命令206,诸如查询请求或无操作(NOP)指令。
如图2中所见的,CRI 204(0)-204(N)通信地耦合至IOV-HC 102的请求获取电路(REQ FETCH CIRC)208,分别如由箭头210、212、和214指示的。在一些方面,请求获取电路208可以负责从系统存储器216获取传输协议描述符(诸如UFS传输协议(UTP)传输请求描述符(UTRD)(未示出)或eMMC任务描述符(TD)),以及解码该传输协议描述符以确定命令描述符(诸如UTP命令描述符(UCD)(未示出))的位置。请求获取电路208可随后从系统存储器216获取命令描述符的TR部分(未示出),如由箭头218所指示的。
在常规的UFS或eMMC主机控制器中,请求获取电路208接着将从获取的请求206提取参数,并且将整个获取的请求206转发至传输协议引擎220(例如,作为非限定性示例,UTP引擎或eMMC传输协议引擎)以供处理。随后可经由互连222和总线224将获取的请求206传送至基于闪存存储器的存储设备106。然而,在多客户端环境中,可能需要对请求206进行附加的检查和处理。例如,可能期望为不同类型的请求206提供定制处置,或者捕获和/或终止获取的请求206。
相应地,IOV-HC 102被配置成提供命令捕获功能性。IOV-HC 102由此可包括用于接收、检查、以及处理请求206的请求过滤电路(REQ FILTER CIRCUIT)226、用于命令捕获的请求陷阱228、以及用于促成将响应传输到I/O客户端104(0)-104(N)的响应生成电路230。请求过滤电路226、请求陷阱228、以及响应生成电路230的操作在以下更详细地讨论。
继续参照图2,由请求获取电路208获取的每一个请求206由IOV-HC 102的请求过滤电路226接收,如由箭头232所指示的。请求过滤电路226负责检查和处理请求206。具体地,请求过滤电路226基于请求206的内容234来确定如何处理请求206。作为非限定性示例,在基于UFS标准的一些方面,请求过滤电路226可以检查请求206的内容234的事务代码(TC)以及SCSI操作代码(OPC),以确定应当如何处理请求206。类似地,在基于eMMC标准的诸方面,请求过滤电路226可以检查请求206的内容234的命令索引以及命令自变量,以确定应当如何处理请求206。基于请求206的内容234,请求过滤电路226可确定请求206将被转发到基于闪存存储器的存储设备106以供处理,或者可以确定请求206应当被捕获。VMM 108可随后确定捕获的请求206是否应当被修改并且重新发出到基于闪存存储器的存储设备106,或者捕获的请求206是否应当被终止。
在一些方法,请求过滤电路226可以检查请求206的内容234,以确定请求206是读取命令、写入命令、功率模式改变命令,还是另一类型的命令。如果请求206的内容234指示请求206对应于读取或写入命令,则可以由请求过滤电路226将请求206转发至访问控制电路236,如由箭头238所指示的。根据一些方面,访问控制电路236向逻辑单元(未示出)提供读/写访问规则的硬件实施。如果请求206随后被访问控制电路236验证,则请求206被传递到传输协议引擎220,如由箭头240指示的。然而,被访问控制电路236拒绝的请求206被捕获以供软件处理,如由箭头242指示的。与捕获请求206相关联的操作在以下更详细地讨论。
根据一些方面,请求206的内容234可以指示请求206对应于功率模式改变命令。作为非限定性示例,在基于UFS标准的诸方面,内容234可以指示请求206是SCSI SSU命令,而在基于eMMC标准的诸方面,内容234可以指示请求206是eMMC睡眠(CMD5)命令。因此,获取的请求206可以由请求过滤电路226发送至MHPC 244,如由箭头246指示的。根据一些方面,MHPC 244包括硬件状态机(未示出),该硬件状态机实现图1的I/O客户端104(0)-104(N)之间的投票机制,以控制基于闪存存储器的存储设备106的功率模式。如果获取的请求206被MHPC 244成功处理,则获取的请求206可以被传递到传输协议引擎220,如由箭头248指示的。否则,MHPC 244可以静默地终止获取的请求206,或者可以捕获获取的请求206以供进一步处理,如由箭头250指示的。如果获取的请求206对应于除了读取命令、写入命令、或功率模式改变命令之外的命令,则请求过滤电路226可以在请求陷阱228中截取并且捕获获取的请求206,如由箭头252指示的。
由IOV-HC 102提供请求陷阱228以存储捕获的请求(诸如请求206)。根据一些方面,在请求陷阱228内的是命令镜像(CM)254(0)-254(N),其各自与CRI 204(0)-204(N)之一相关联。捕获的请求206可以被存储在从其接收请求206的相应CRI 204(0)-204(N)的CM254(0)-254(N)中。一些方面可以提供:请求陷阱228可以经由BRI 200来生成到VMM 108的中断256以指示请求206被捕获。VMM 108可随后通过经由BRI 200读取恰适的CM 254(0)-254(N)的内容以提取信息来进一步处理捕获的请求206。VMM 108还可以经由BRI 200来指导IOV-HC 102使用响应生成电路230来生成到始发CRI 204(0)-204(N)的响应258,如由箭头260所指示的。
根据一些方面,一旦请求206被捕获,请求获取电路208就已经完成其处理,并且可以继续获取另一CRI 204(0)-204(N)的下一请求206。直至捕获的请求206由VMM 108处理,才将与捕获的请求206相关联的VLCI 204(0)-204(N)之中的特定CRI从请求获取仲裁中移除。仅当VMM 108通过指导IOV-HC 102转发或丢弃请求206来处理请求206时,来自VLCI 204(0)-204(N)之中的相同CRI的后续请求206才能被请求获取电路208获取。
为了解说图2的IOV-HC 102的用于存储捕获的请求206的请求陷阱228的示例性元件,提供了图3。在描述图3时,为清楚起见而引述图1和图2的元件。如图3中所见的,请求陷阱228包括图2的CM 254(0)-254(N),其各自对应于图2的CRI 204(0)-204(N)之一。CM 254(0)-254(N)中的每一者提供对应的命令镜像状态寄存器(CMSR)300(0)-300(N)以及命令镜像数据寄存器阵列(CMDAT)302(0)-302(N)。请求陷阱228进一步包括命令镜像控制寄存器(CMCR)304。请求陷阱228的每一个示例性元件的功能性在以下更详细地描述。
CMCR 304是可以由图2的VMM 108用来指令IOV-HC 102关于如何处置被捕获在请求陷阱228内的请求206的寄存器。作为非限定性示例,VMM 108可以经由CMCR 304发送处置指令306,以便指令IOV-HC 102将捕获的请求206传递至传输协议引擎220,或者完全终止捕获的请求206。根据一些方面,CMCR 304在所有CM 254(0)-254(N)之间共享。
如以上提及的,诸如请求206之类的捕获的请求可以被存储在与从其接收请求206的CRI 204(0)-204(N)相对应的CM 254(0)-254(N)中。为了促成捕获的请求206的存储,CM254(0)-254(N)的CMSR 300(0)-300(N)中的每一个CMSR可以存储表示关于每个捕获的请求206的信息的相应状态308(0)-308(N)。根据一些方面,每一个状态308(0)-308(N)可包括与请求206相关联的数据,诸如时隙号(未示出)和/或传输请求描述符(TRD)信息(未示出)。
CM 254(0)-254(N)的CMDAT 302(0)-302(N)是寄存器阵列,其各自可被用于存储每个捕获的请求206的对应的协议信息单元(PIU)310(0)-310(N)。在一些方面,CMDAT 302(0)-302(N)中的每一个CMDAT可以为图2的每个CRI 204(0)-204(N)分配三十二(32)个字节的空间。在其中请求206大于三十二(32)个字节(例如,作为非限定性示例,描述符写入查询请求)的情形中,请求206的长度可以在对应的CMSR 300(0)-300(N)中指示。VMM 108可随后在系统存储器216中演算命令描述符地址(诸如在基于UFS标准的诸方面,UFS命令描述符(UCD)),并且从系统存储器216中的请求206的原始位置直接读取请求206。
如以上关于图2所讨论的,IOV-HC 102的一些方面提供响应生成电路230,以使得VMM 108能够指令IOV-HC 102生成响应258,该响应258要被发送至捕获的请求(诸如请求206)所源自的I/O客户端104(0)-104(N)。为了解说图2的响应生成电路230的一个方面的示例性元件,提供了图4。在图4的描述中,为清楚起见而引述图1和图2的元件。
如图4中所见的,响应生成电路230包括响应生成器控制寄存器(RGCR)402、响应生成器状态寄存器(RGSR)404、以及响应生成器PIU寄存器(RGU)406。在一些方面,RGCR可以由图2的VMM 108使用,以指令IOV-HC 102使用响应生成指令408来传送响应258。作为非限定性示例,响应生成指令408可包括传输命令、响应传送方法、目的地CRI标识符、和/或总体命令状态(OCS)。响应生成电路230的RGSR 404可以存储关于响应生成电路230的状态的状态410。在一些方面,RGU 406可包括用于存储要被传送至I/O客户端104(0)-104(N)之一的响应258的响应PIU 412的32字节寄存器空间。
响应生成电路230的一些方面可提供两(2)种响应传输方法中的一种或两种。在一些方面,响应传输方法可包括通过请求陷阱228来将响应PIU 412写入RGU 406。响应PIU412可随后由IOV-HC 102复制到TRD中所指定的位置,该位置在响应258被定向到的I/O客户端104(0)-104(N)之一的存储器空间(未示出)中。替换地,一些方面可提供:VMM 108可以将响应PIU 412直接写入到I/O客户端104(0)-104(N)的存储空间中的位置。在任一传输技术下,VMM 108可以写入RGCR 402以指令IOV-HC 102在I/O客户端104(0)-104(N)的存储器空间中的TRD中写入OCS字段以及生成中断256,如由I/O客户端104(0)-104(N)所请求的。在响应258大于三十二(32)个字节(例如,对于描述符读取查询请求)的一些方面,VMM 108可以将响应PIU 412直接写入I/O客户端104(0)-104(N)的存储器空间中的位置。
根据本文中公开的基于UFS标准的一些方面,当VMM 108写入RGCR 402时,IOV-HC102可以执行以下示例性操作。如果需要响应复制,则IOV-HC 102可以从CRI标识符和时隙号演算目的地地址(未示出)。例如,在基于UFS标准的诸方面,目的地地址可以基于UCD或UTP任务管理请求描述符(UTMRD)的响应部分来演算。IOV-HC 102可随后将响应PIU 412的内容从RGU 406复制到目的地地址。IOV-HC 102将OCS写入到UFS TRD(UTRD)或者UTMRD中的目的地地址。IOV-HC 102在恰适的CRI 204(0)-204(N)中设置UTP传输请求列表门铃寄存器(UTRLDBR)、UTP传输请求列表清除寄存器(UTRLCLR)、和/或UTP任务管理请求列表门铃寄存器(UTMRLDBR)以指示命令完成。如果由UTRD或者UTMRD要求,则IOV-HC 102可随后生成中断256。在本文中所公开的基于eMMC标准的诸方面,响应PIU 412由VMM108写入恰适的CRI 204(0)-204(N)的响应寄存器,在这之后VMM 108指令IOV-HC 102生成中断256。将理解,以上讨论的基于UFS和eMMC的诸方面是非限定性示例。
为了解说图2的用于为多个I/O客户端104(0)-104(N)提供命令捕获的IOV-HC 102的示例性操作,提供了图5A和5B。在描述图5A和5B时,为清楚起见而引述图1、2和4的诸元件。在图5A中,操作开始于IOV-HC 102的请求过滤电路226从多个CRI 204(0)-204(N)中的CRI 204(0)接收定向至基于闪存存储器的存储设备106的请求206(框500)。鉴于此,请求过滤电路226在本文中可被称为“用于从CRI接收定向至基于闪存存储器的存储设备的请求的装置”。请求过滤电路226检查请求206的内容234(框502)。作为非限定性示例,在基于UFS标准的一些方面,请求过滤电路226可以检查请求206的内容234的事务代码(TC)以及SCSI操作代码(OPC),而在基于eMMC标准的诸方面,请求过滤电路226可以检查请求206的内容234的命令索引以及命令自变量。由此,请求过滤电路226在本文中可被称为“用于检查请求的内容的装置”。
基于内容234,请求过滤电路226确定该请求206是否应当被转发至基于闪存存储器的存储设备106以供处理,或者该请求206是否应当在请求陷阱228中被捕获(框504)。相应地,请求过滤电路226可在本文中被称为“用于确定请求是应当被转发至基于闪存存储器的存储设备以供处理还是应当被捕获的装置”。在判定框504处,如果请求过滤电路226确定请求206应当被转发,则请求过滤电路226将请求206转发至基于闪存存储器的存储设备106(框506)。鉴于此,请求过滤电路226在本文中可被称为“用于将请求转发至基于闪存存储器的存储设备的装置”。在判定框504处,如果请求过滤电路226确定请求206应当被捕获,则请求过滤电路226将请求206捕获在请求陷阱228中(框508)。相应地,请求过滤电路226在本文中可被称为“用于在请求陷阱中捕获请求的装置”。如在以下关于图6更详细地讨论的,一些方面可提供:对转发或捕获请求206的决定可以基于由内容234所指示的请求206的类型。在图5B的框510处,随后恢复处理。
现在参照图5B,在一些方面,响应于捕获该请求206,IOV-HC 102的响应生成电路230可以从VMM 108接收响应258(框510)。鉴于此,响应生成电路230在本文中可被称为“用于接收对捕获该请求的响应的装置”。响应生成电路230可将响应258的响应PIU 412存储在响应生成电路230的RGU 406中(框512)。相应地,响应生成电路230在本文中可被称为“用于将响应存储在RGPIU中的装置”。IOV-HC 102可随后经由响应生成电路230的RCGR 402从VMM108接收响应生成指令408(框514)。IOV-HC 102由此在本文中可被称为“用于经由RGCR从VMM接收响应生成指令的装置”。在一些方面(例如,基于eMMC标准的诸方面),可以不采用RCGR 402,并且由此可以省略框514的可任选操作。
图6是解说图2的用于确定接收到的请求可被如何处理和/或捕获的IOV-HC 102的示例性操作的流程图。为清楚起见,在描述图6时引述图1和图2的元件。在一些方面,图6中所解说的一些操作可以与图5A的框504的诸操作相对应,以确定请求206是否应当被转发至基于闪存存储器的存储设备106以供处理,或者请求206是否应当在请求陷阱228中被捕获。
图6中的操作开始于请求过滤电路226确定内容234是否指示请求206是读取命令、写入命令、或功率模式改变命令中的一者(框600)。在框600处,如果请求206被确定为是读取命令或写入命令,则请求206可以被传递至IOV-HC 102的访问控制电路236,该访问控制电路236确定请求206是否是经验证的(框602)。鉴于此,访问控制电路236在本文中可被称为“用于确定请求是否经验证的装置”。在框602处,如果确定请求206是经验证的,则请求206被转发至基于闪存存储器的存储设备106(框604)。如果在框602处确定请求206未由访问控制电路236验证,则请求206在请求陷阱228中被捕获(框606)。
在判决框600处,如果请求过滤电路226确定请求206被确定为是功率模式改变命令,则请求206被转发至IOV-HC 102的MHPC 244以供处理(框608)。相应地,请求过滤电路226在本文中可被称为“用于将请求转发至IOV-HC的MHPC以供处理的装置”。随后作出关于请求206是否被MHPC 244成功处理的确定(框610)。由此,MHPC 244在本文中可被称为“用于确定请求是否被MHPC成功处理的装置”。如果MHPC 244成功处理了请求206,则MHPC 244基于MHPC 244的内部逻辑,将请求206传递至基于闪存存储器的存储设备106,或者终止请求206(框612)。如果请求206没有被MHPC 244成功处理,则请求206在请求陷阱228中被捕获(框614)。返回判决框600,如果请求206被确定为不是读取命令、写入命令、或者功率模式改变命令,则请求206在请求陷阱228中被捕获(框616)。相应地,请求过滤电路226在本文中可被称为“用于响应于确定内容指示请求不是读取命令、写入命令、或者功率模式改变命令中的一者而在请求陷阱228中捕获该请求的装置”。
为了进一步解说在一些方面使用图2的请求陷阱228进行命令捕获的IOV-HC 102的示例性操作,提供了图7。在描述图7时,为清楚起见而引述图1-3的元件。图7中的操作开始于请求陷阱228在请求陷阱228的多个CMSR 300(0)-300(N)之中的对应于CRI 204(0)的CMSR 300中存储请求206的状态308(框700)。鉴于此,请求陷阱228在本文中可被称为“用于在对应于CRI的CMSR中存储请求的状态的装置”。请求陷阱228还将请求206的PIU 310(0)存储在请求陷阱228的多个CMDAT 302(0)-302(N)之中的对应于CRI 204(0)的CMDAT 302(0)中(框702)。相应地,请求陷阱228在本文中可被称为“用于将请求的PIU存储在对应于CRI的CMDAT中的装置”。请求陷阱228接着可以生成到VMM 108的、指示请求206被捕获的中断256(框704)。由此,请求陷阱228在本文中可被称为“用于生成到VMM的、指示请求被捕获的中断的装置”IOV-HC 102可随后经由请求陷阱228的CMCR 304从VMM 108接收处置指令306(框706)。鉴于此,IOV-HC 102在本文中可被称为“用于经由请求陷阱的CMCR来从VMM接收处置指令的装置”。将理解,图7中所解说的示例性操作可能不适用于本文中所公开的一些方面,诸如基于eMMC标准的诸方面。
根据本文中所公开的诸方面的基于闪存存储器的存储设备的IOV-HC中的命令捕获可在任何基于处理器的设备中提供或集成到任何基于处理器的设备中。不作为限定的示例包括机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频碟(DVD)播放器、以及便携式数字视频播放器。
鉴于此,图8解说了可采用具有图1的IOV-HC 102的SoC 100的基于处理器的系统800的示例。在这一示例中,基于处理器的系统800包括一个或多个中央处理单元(CPU)802,其各自包括一个或多个处理器804。(诸)CPU 802可具有耦合到(诸)处理器804以用于对临时存储的数据快速访问的高速缓存存储器806。(诸)CPU 802被耦合到系统总线808,且可将基于处理器的系统800中所包括的设备互耦。如众所周知的,(诸)CPU 802通过在系统总线808上交换地址、控制、以及数据信息来与这些其他设备通信。例如,CPU 802可向作为从设备的示例的存储器控制器810传达总线事务请求。尽管在图8中未解说,但是可以提供多个系统总线808。
其它设备可被连接至系统总线808。如图8中所解说的,作为示例,这些设备可包括存储器系统812、一个或多个输入设备814、一个或多个输出设备816、一个或多个网络接口设备818、以及一个或多个显示器控制器820。(诸)输入设备814可包括任何类型的输入设备,包括但不限于输入键、开关、语音处理器等。(诸)输出设备816可包括任何类型的输出设备,包括但不限于音频、视频、其他视觉指示器等。(诸)网络接口设备818可以是被配置成允许往来于网络822的数据交换的任何设备。网络822可以是任何类型的网络,包括但不限于:有线或无线网络、私有或公共网络、局域网(LAN)、广域网、无线局域网、蓝牙(BT)、以及因特网。(诸)网络接口设备818可被配置成支持所期望的任何类型的通信协议。存储器系统812可包括一个或多个存储器单元824(0)-824(N)。
(诸)CPU 802还可被配置成通过系统总线808来访问(诸)显示器控制器820以控制发送给一个或多个显示器826的信息。(诸)显示器控制器820经由一个或多个视频处理器828向(诸)显示器826发送要显示的信息,视频处理器828将要显示的信息处理成适于(诸)显示器826的格式。(诸)显示器826可包括任何类型的显示器,包括但不限于:阴极射线管(CRT)、液晶显示器(LCD)、发光二极管(LED)显示器、等离子显示器等。
本领域技术人员将进一步领会,结合本文所公开的诸方面描述的各种解说性逻辑块、模块、电路和算法可被实现为电子硬件、存储在存储器中或另一计算机可读介质中并由处理器或其它处理设备执行的指令、或这两者的组合。作为示例,本文中描述的设备可被用在任何电路、硬件组件、集成电路(IC)、或IC芯片中。本文所公开的存储器可以是任何类型和大小的存储器,且可被配置成存储所需的任何类型的信息。为清楚地解说这种可互换性,以上已经以其功能性的形式一般地描述了各种解说性组件、框、模块、电路和步骤。此类功能性如何被实现取决于具体应用、设计选择、和/或加诸于整体系统上的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本公开的范围。
结合本文中公开的诸方面描述的各种解说性逻辑块、模块、以及电路可用设计成执行本文中描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其它此类配置。
本文所公开的诸方面可被实施在硬件和存储在硬件中的指令中,并且可驻留在例如随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM,或本领域中所知的任何其它形式的计算机可读介质中。示例性存储介质被耦合到处理器,以使得处理器能从/向该存储介质读取/写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在远程站中。在替换方案中,处理器和存储介质可作为分立组件驻留在远程站、基站或服务器中。
还注意到,本文任何示例性方面中描述的操作步骤是为了提供示例和讨论而被描述的。所描述的操作可按除了所解说的顺序之外的众多不同顺序来执行。此外,在单个操作步骤中描述的操作实际上可在多个不同步骤中执行。另外,示例性方面中讨论的一个或多个操作步骤可被组合。将理解,如对本领域技术人员显而易见地,在流程图中解说的操作步骤可进行众多不同的修改。本领域技术人员还将理解,可使用各种不同技术中的任何一种来表示信息和信号。例如,贯穿上面描述始终可能被述及的数据、指令、命令、信息、信号、位(比特)、码元、以及码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员而言将容易是显而易见的,并且本文中所定义的普适原理可被应用到其他变型而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖特征一致的最广义的范围。

Claims (21)

1.一种输入/输出虚拟化IOV主机控制器HC IOV-HC,所述IOV-HC经由对应的多个客户端寄存器接口CRI通信地耦合至多个输入/输出I/O客户端,并且耦合至基于闪存存储器的存储设备;
所述IOV-HC包括请求陷阱;以及
所述IOV-HC被配置成:
通过所述IOV-HC的请求过滤电路来从所述多个CRI中的一CRI接收定向至所述基于闪存存储器的存储设备的请求;
通过所述请求过滤电路来检查所述请求的内容;
通过所述请求过滤电路,基于所述内容来确定所述请求是应当被转发至所述基于闪存存储器的存储设备以供处理还是应当被捕获,其中所述请求过滤电路被配置成确定所述内容是否指示所述请求是读取命令、写入命令、或功率模式改变命令中的一者;
响应于确定所述请求应当被转发至所述基于闪存存储器的存储设备以供处理,而将所述请求转发至所述基于闪存存储器的存储设备;
响应于确定所述请求应当被捕获,而在所述请求陷阱中捕获所述请求;
响应于由所述请求过滤电路确定所述内容指示所述请求是读取命令或写入命令中的一者,而由所述IOV-HC的访问控制电路来确定所述请求是否是经验证的;
响应于确定所述请求是经验证的而将所述请求转发至所述基于闪存存储器的存储设备;以及
响应于确定所述请求是未经验证的而在所述请求陷阱中捕获所述请求。
2.如权利要求1所述的IOV-HC,其特征在于,所述请求陷阱包括:
命令镜像控制寄存器CMCR;以及
多个命令镜像CM,所述多个命令镜像各自包括:
多个命令镜像状态寄存器CMSR,其各自对应于所述多个CRI中的一CRI;以及
多个命令镜像数据寄存器阵列CMDAT,其各自对应于所述多个CRI中的一CRI;以及
所述IOV-HC被进一步配置成通过将所述请求陷阱配置成执行以下操作来在所述请求陷阱中捕获所述请求:
将所述请求的状态存储在所述多个CMSR之中的对应于所述CRI的CMSR中;
将所述请求的协议信息单元PIU存储在所述多个CMDAT之中的对应于所述CRI的CMDAT中;
生成到虚拟机管理器VMM的、指示所述请求被捕获的中断;以及
经由所述CMCR从所述VMM接收处置指令。
3.如权利要求1所述的IOV-HC,其特征在于,进一步包括响应生成电路,所述响应生成电路包括:
响应生成器控制寄存器RGCR;以及
响应生成器协议信息单元RGPIU;以及
所述IOV-HC被进一步配置成响应于在所述请求陷阱中捕获所述请求:
通过所述响应生成电路接收对捕获所述请求的响应;
将所述响应的PIU存储在所述RGPIU中;以及
经由所述RGCR从VMM接收响应生成指令。
4.如权利要求1所述的IOV-HC,其特征在于,所述IOV-HC被进一步配置成响应于由所述请求过滤电路确定所述内容指示所述请求是所述功率模式改变命令:
将所述请求转发至所述IOV-HC的多主机功率控制器MHPC以供处理;以及
确定所述请求是否被所述MHPC成功处理;
所述IOV-HC被配置成响应于确定所述请求未被所述MHPC成功处理而在所述请求陷阱中捕获所述请求。
5.如权利要求1所述的IOV-HC,其特征在于,所述IOV-HC被进一步配置成响应于由所述请求过滤电路确定所述内容指示所述请求不是所述读取命令、所述写入命令、或所述功率模式改变命令中的一者,而在所述请求陷阱中捕获所述请求。
6.如权利要求1所述的IOV-HC,其特征在于,所述IOV-HC根据嵌入式多媒体卡eMMC标准来通信地耦合至所述基于闪存存储器的存储设备。
7.如权利要求1所述的IOV-HC,其特征在于,所述IOV-HC根据通用闪存存储UFS标准通信地耦合至所述基于闪存存储器的存储设备。
8.如权利要求1所述的IOV-HC,其特征在于,所述IOV-HC被集成到集成电路IC中。
9.如权利要求1所述的IOV-HC,其特征在于,所述IOV-HC被集成到选自下组的设备中:机顶盒;娱乐单元;导航设备;通信设备;固定位置数据单元;移动位置数据单元;移动电话;蜂窝电话;计算机;便携式计算机;台式计算机;个人数字助理PDA;监视器;计算机监视器;电视机;调谐器;无线电;卫星无线电;音乐播放器;数字音乐播放器;便携式音乐播放器;数字视频播放器;视频播放器;数字视频碟DVD播放器;以及便携式数字视频播放器。
10.一种用于为用于多个主机的基于闪存存储器的存储设备提供命令捕获的方法,包括:
通过输入/输出虚拟化IOV主机控制器HC IOV-HC的请求过滤电路来从多个客户端寄存器接口CRI中的一CRI接收定向至所述基于闪存存储器的存储设备的请求;
由所述请求过滤电路来检查所述请求的内容;
通过确定所述内容是否指示所述请求是读取命令、写入命令、和功率模式改变命令中的一者,而通过所述请求过滤电路基于所述内容来确定所述请求是应当被转发至所述基于闪存存储器的存储设备以供处理,还是应当在请求陷阱中被捕获;
响应于确定所述请求应当被转发至所述基于闪存存储器的存储设备以供处理,而将所述请求转发至所述基于闪存存储器的存储设备;
响应于确定所述请求应当被捕获,而在所述请求陷阱中捕获所述请求;以及
响应于确定所述内容指示所述请求是读取命令或写入命令中的一者,而由所述IOV-HC的访问控制电路来确定所述请求是否是经验证的;
其中:
将所述请求转发至所述基于闪存存储器的存储设备是响应于确定所述请求是经验证的;以及
在所述请求陷阱中捕获所述请求是响应于确定所述请求是未经验证的。
11.如权利要求10所述的方法,其特征在于,捕获所述请求包括:
将所述请求的状态存储在所述请求陷阱的多个命令镜像状态寄存器CMSR之中的对应于所述CRI的CMSR中;
将所述请求的协议信息单元PIU存储在所述请求陷阱的多个命令镜像数据寄存器阵列CMDAT之中的对应于所述CRI的CMDAT中;
生成到虚拟机管理器VMM的、指示所述请求被捕获的中断;以及
经由所述请求陷阱的命令镜像控制寄存器CMCR从所述VMM接收处置指令。
12.如权利要求10所述的方法,其特征在于,进一步包括响应于在所述请求陷阱中捕获所述请求:
通过响应生成电路,接收对捕获所述请求的响应;
将所述响应存储在所述响应生成电路的响应生成器协议信息单元RGPIU中;以及
经由所述响应生成电路的响应生成器控制寄存器RGCR从VMM接收响应生成指令。
13.如权利要求10所述的方法,其特征在于,进一步包括,响应于由所述请求过滤电路确定所述内容指示所述请求是所述功率模式改变命令:
将所述请求转发至所述IOV-HC的多主机功率控制器MHPC以供处理;以及
确定所述请求是否被所述MHPC成功处理;
其中在所述请求陷阱中捕获所述请求是响应于确定所述请求未被所述MHPC成功处理的。
14.如权利要求10所述的方法,其特征在于,在所述请求陷阱中捕获所述请求是响应于由所述请求过滤电路确定所述内容指示所述请求不是所述读取命令、所述写入命令、或所述功率模式改变命令中的一者的。
15.如权利要求10所述的方法,其特征在于,所述基于闪存存储器的存储设备包括嵌入式多媒体卡eMMC设备。
16.如权利要求10所述的方法,其特征在于,所述基于闪存存储器的存储设备包括通用闪存存储UFS设备。
17.一种输入/输出虚拟化IOV主机控制器HC IOV-HC,包括:
用于从多个客户端寄存器接口CRI中的一CRI接收定向至基于闪存存储器的存储设备的请求的装置;
用于检查所述请求的内容的装置;
用于基于所述内容来确定所述请求是应当被转发至所述基于闪存存储器的存储设备以供处理,还是应当被捕获的装置,所述用于基于所述内容来确定所述请求是应当被转发至所述基于闪存存储器的存储设备以供处理,还是应当被捕获的装置包括:用于确定所述内容是否指示所述请求是读取命令、写入命令、或者功率模式改变命令中的一者的装置;
用于响应于确定所述请求应当被转发至所述基于闪存存储器的存储设备以供处理,而将所述请求转发至所述基于闪存存储器的存储设备的装置;
用于响应于确定所述请求应当被捕获而在请求陷阱中捕获所述请求的装置;以及
用于响应于确定所述内容指示所述请求是所述读取命令或者所述写入命令中的一者而确定所述请求是否是经验证的装置;
其中:
用于将所述请求转发至所述基于闪存存储器的存储设备的装置是响应于确定所述请求是经验证的;以及
用于在所述请求陷阱中捕获所述请求的装置是响应于确定所述请求是未经验证的。
18.如权利要求17所述的IOV-HC,其特征在于,所述用于在所述请求陷阱中捕获所述请求的装置包括:
用于将所述请求的状态存储在所述请求陷阱的多个命令镜像状态寄存器CMSR之中的对应于所述CRI的CMSR中的装置;
用于将所述请求的协议信息单元PIU存储在所述请求陷阱的多个命令镜像数据寄存器阵列CMDAT之中的对应于所述CRI的CMDAT中的装置;
用于生成到虚拟机管理器VMM的、指示所述请求被捕获的中断的装置;以及
用于经由所述请求陷阱的命令镜像控制寄存器CMCR从所述VMM接收处置指令的装置。
19.如权利要求17所述的IOV-HC,其特征在于,进一步包括:
用于接收对捕获所述请求的响应的装置;
用于响应于在所述请求陷阱中捕获所述请求,而将所述响应存储在响应生成电路的响应生成器协议信息单元RGPIU中的装置;
用于经由所述响应生成电路的响应生成器控制寄存器RGCR从VMM接收响应生成指令的装置。
20.如权利要求17所述的IOV-HC,其特征在于,进一步包括:
用于响应于确定所述内容指示所述请求是所述功率模式改变命令,而将所述请求转发至所述IOV-HC的多主机功率控制器MHPC以供处理的装置;以及
用于确定所述请求是否被所述MHPC成功处理的装置;
其中所述用于在所述请求陷阱中捕获所述请求的装置是响应于确定所述请求未被所述MHPC成功处理的。
21.如权利要求17所述的IOV-HC,其特征在于,进一步包括用于响应于确定所述内容指示所述请求不是所述读取命令、所述写入命令、或所述功率模式改变命令中的一者,而在所述请求陷阱中捕获所述请求的装置。
CN201580029210.6A 2014-06-03 2015-06-03 在基于闪存存储器的存储设备的输入/输出虚拟化主机控制器中的命令捕获 Expired - Fee Related CN106462521B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462007123P 2014-06-03 2014-06-03
US62/007,123 2014-06-03
US14/728,400 US9690720B2 (en) 2014-06-03 2015-06-02 Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device
US14/728,400 2015-06-02
PCT/US2015/033970 WO2015187824A1 (en) 2014-06-03 2015-06-03 Command trapping in an input/output virtualization (iov) host controller (hc) (iov-hc) of a flash-memory-based storage device

Publications (2)

Publication Number Publication Date
CN106462521A CN106462521A (zh) 2017-02-22
CN106462521B true CN106462521B (zh) 2019-06-21

Family

ID=54701761

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580029210.6A Expired - Fee Related CN106462521B (zh) 2014-06-03 2015-06-03 在基于闪存存储器的存储设备的输入/输出虚拟化主机控制器中的命令捕获

Country Status (6)

Country Link
US (1) US9690720B2 (zh)
EP (1) EP3152668A1 (zh)
JP (1) JP6231704B2 (zh)
KR (1) KR101861471B1 (zh)
CN (1) CN106462521B (zh)
WO (1) WO2015187824A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690720B2 (en) * 2014-06-03 2017-06-27 Qualcomm Incorporated Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device
US9881680B2 (en) 2014-06-03 2018-01-30 Qualcomm Incorporated Multi-host power controller (MHPC) of a flash-memory-based storage device
US9632953B2 (en) 2014-06-03 2017-04-25 Qualcomm Incorporated Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers
US10091832B2 (en) * 2015-11-17 2018-10-02 Affirmed Networks, Inc. Call failure reduction
US10877673B2 (en) * 2017-12-15 2020-12-29 Microchip Technology Incorporated Transparently attached flash memory security
US11216391B1 (en) * 2018-06-21 2022-01-04 Amazon Technologies, Inc. Using an I/O proxy device to filter I/O messages in a computer system
US10969973B2 (en) * 2018-09-20 2021-04-06 Microsoft Technology Licensing, Llc Software filtered memory devices in computing systems
KR102643803B1 (ko) * 2018-11-15 2024-03-05 삼성전자주식회사 멀티 호스트 컨트롤러와 이를 포함하는 반도체 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176746A (zh) * 2011-09-06 2013-06-26 西部数据技术公司 用于数据存储系统中增强的控制器架构的系统和方法

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63310067A (ja) * 1987-06-11 1988-12-19 Toshiba Corp 割付け支援装置
US7571295B2 (en) 2005-08-04 2009-08-04 Intel Corporation Memory manager for heterogeneous memory control
DE102005037635B4 (de) 2005-08-09 2007-07-12 Infineon Technologies Ag Hardwaresteuerung für den Wechsel des Betriebsmodus eines Speichers
US7480784B2 (en) 2005-08-12 2009-01-20 Advanced Micro Devices, Inc. Ensuring deadlock free operation for peer to peer traffic in an input/output memory management unit (IOMMU)
US7873770B2 (en) 2006-11-13 2011-01-18 Globalfoundries Inc. Filtering and remapping interrupts
US8793364B1 (en) 2008-12-01 2014-07-29 American Megatrends, Inc. Remote power controller
US9128699B2 (en) 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US8392670B2 (en) 2010-04-12 2013-03-05 Hitachi, Ltd. Performance management of access to flash memory in a storage device
US8812889B2 (en) 2010-05-05 2014-08-19 Broadcom Corporation Memory power manager
US8301715B2 (en) 2010-05-20 2012-10-30 Sandisk Il Ltd. Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device
CN101833989A (zh) 2010-05-27 2010-09-15 华为技术有限公司 多接口固态硬盘及其处理方法和系统
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
WO2012023151A2 (en) 2010-08-19 2012-02-23 Ineda Systems Pvt. Ltd I/o virtualization and switching system
WO2012143945A2 (en) 2011-04-18 2012-10-26 Ineda Systems Pvt. Ltd Power management in multi host computing systems
US9432446B2 (en) 2011-04-19 2016-08-30 Ineda Systems Pvt. Ltd Secure digital host controller virtualization
WO2012143953A2 (en) 2011-04-21 2012-10-26 Ineda Systems Pvt. Ltd Optimized multi-root input output virtualization aware switch
US8631212B2 (en) 2011-09-25 2014-01-14 Advanced Micro Devices, Inc. Input/output memory management unit with protection mode for preventing memory access by I/O devices
CN103392207B (zh) 2011-10-05 2017-08-04 希捷科技有限公司 非易失性存储的自身日志记录和层级一致性
US20130159572A1 (en) 2011-12-16 2013-06-20 International Business Machines Corporation Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to multi-function hierarchies
BR112014017543A2 (pt) 2012-01-17 2017-06-27 Intel Corp técnicas de validação de comando para o acesso a um dispositivo de armazenamento por um cliente remoto
US9075710B2 (en) 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
US20130290606A1 (en) 2012-04-30 2013-10-31 Apple Inc. Power management for a system having non-volatile memory
WO2013171789A1 (en) * 2012-05-16 2013-11-21 Hitachi, Ltd. Storage system and method of controlling data transfer in storage system
US9424199B2 (en) 2012-08-29 2016-08-23 Advanced Micro Devices, Inc. Virtual input/output memory management unit within a guest virtual machine
US9003088B2 (en) 2012-12-06 2015-04-07 Dell Products L.P. Mapping virtual devices to computing nodes
JP5716732B2 (ja) 2012-12-19 2015-05-13 コニカミノルタ株式会社 制御プログラム、制御装置、画像処理システム、および制御方法
WO2014141140A1 (en) 2013-03-14 2014-09-18 Lsi Corporation Device power control
JP6030987B2 (ja) 2013-04-02 2016-11-24 ルネサスエレクトロニクス株式会社 メモリ制御回路
US9734096B2 (en) 2013-05-06 2017-08-15 Industrial Technology Research Institute Method and system for single root input/output virtualization virtual functions sharing on multi-hosts
KR102094902B1 (ko) 2013-07-08 2020-03-30 삼성전자주식회사 액티브 상태에서 인터페이스 모드를 전환하는 스토리지 시스템 및 ufs 시스템
US9348537B2 (en) * 2013-09-10 2016-05-24 Qualcomm Incorporated Ascertaining command completion in flash memories
US9916906B2 (en) * 2014-02-27 2018-03-13 Seagate Technology Llc Periodically updating a log likelihood ratio (LLR) table in a flash memory controller
US9690720B2 (en) * 2014-06-03 2017-06-27 Qualcomm Incorporated Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device
US9881680B2 (en) 2014-06-03 2018-01-30 Qualcomm Incorporated Multi-host power controller (MHPC) of a flash-memory-based storage device
US9632953B2 (en) * 2014-06-03 2017-04-25 Qualcomm Incorporated Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176746A (zh) * 2011-09-06 2013-06-26 西部数据技术公司 用于数据存储系统中增强的控制器架构的系统和方法

Also Published As

Publication number Publication date
KR20170013269A (ko) 2017-02-06
KR101861471B1 (ko) 2018-05-28
US20150347017A1 (en) 2015-12-03
JP6231704B2 (ja) 2017-11-15
WO2015187824A1 (en) 2015-12-10
EP3152668A1 (en) 2017-04-12
CN106462521A (zh) 2017-02-22
US9690720B2 (en) 2017-06-27
JP2017518574A (ja) 2017-07-06

Similar Documents

Publication Publication Date Title
CN106462521B (zh) 在基于闪存存储器的存储设备的输入/输出虚拟化主机控制器中的命令捕获
US20210072893A1 (en) Single-Step Configuration Of Storage And Network Devices In A Virtualized Cluster Of Storage Resources
US9467512B2 (en) Techniques for remote client access to a storage medium coupled with a server
US9881680B2 (en) Multi-host power controller (MHPC) of a flash-memory-based storage device
CN105359105B (zh) 通过网络文件访问协议的高效编程存储器访问
US20230359395A1 (en) Remote direct attached multiple storage function storage device
US20150261720A1 (en) Accessing remote storage devices using a local bus protocol
US20150261434A1 (en) Storage system and server
WO2015061971A1 (zh) 数据处理系统和数据处理的方法
CN106688217A (zh) 用于融合联网和存储的方法和系统
CN106462522B (zh) 基于闪存的存储设备的输入/输出虚拟化(iov)主机控制器(hc)(iov-hc)
CN104937564B (zh) 组表格的数据冲洗
CN103207894A (zh) 一种多路实时视频数据存储系统及其进行缓存控制的方法
TW202101951A (zh) 輕量橋接器電路以及用於多實體功能模擬的方法及物品
CN110114762A (zh) 用于访问作为字节可寻址存储器的非易失性存储器的方法和设备
CN110023919A (zh) 用于处理结构中非投递式存储器写入事务的方法、装置和系统
WO2017113895A1 (zh) 一种创建虚拟机的方法及装置
JP7247405B2 (ja) ストレージコントローラ、計算ストレージ装置及び計算ストレージ装置の動作方法
US20220113967A1 (en) Accelerator fabric for discrete graphics
KR20220082563A (ko) 스토리지 장치 및 이의 동작 방법
Vega SHIP: A Storage System for Hybrid Interconnected Processors
TWI270815B (en) Pin sharing system
US20230214258A1 (en) Storage controller and storage device
KR20240035325A (ko) 데이터 스토리지 장치의 동작 방법, 스토리지 장치 및 호스트

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190621

CF01 Termination of patent right due to non-payment of annual fee