CN117294686A - 存储装置、操作存储装置的方法和包括存储装置的流系统 - Google Patents
存储装置、操作存储装置的方法和包括存储装置的流系统 Download PDFInfo
- Publication number
- CN117294686A CN117294686A CN202310703357.5A CN202310703357A CN117294686A CN 117294686 A CN117294686 A CN 117294686A CN 202310703357 A CN202310703357 A CN 202310703357A CN 117294686 A CN117294686 A CN 117294686A
- Authority
- CN
- China
- Prior art keywords
- request
- storage device
- information
- network
- video data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 34
- 230000015654 memory Effects 0.000 claims abstract description 109
- 230000005540 biological transmission Effects 0.000 claims abstract description 46
- 230000004044 response Effects 0.000 claims description 74
- 239000004576 sand Substances 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 13
- 238000012384 transportation and delivery Methods 0.000 claims description 8
- 230000006835 compression Effects 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 6
- 230000003044 adaptive effect Effects 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 11
- 238000013403 standard screening design Methods 0.000 description 11
- 101150053844 APP1 gene Proteins 0.000 description 9
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 9
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 9
- 239000013256 coordination polymer Substances 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 101710084218 Master replication protein Proteins 0.000 description 5
- 101710112083 Para-Rep C1 Proteins 0.000 description 5
- 101710112078 Para-Rep C2 Proteins 0.000 description 5
- 102100022881 Rab proteins geranylgeranyltransferase component A 1 Human genes 0.000 description 5
- 102100022880 Rab proteins geranylgeranyltransferase component A 2 Human genes 0.000 description 5
- 101710119887 Trans-acting factor B Proteins 0.000 description 5
- 101710119961 Trans-acting factor C Proteins 0.000 description 5
- 238000012937 correction Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 101000708578 Milk vetch dwarf virus (isolate N) Para-Rep C3 Proteins 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101100468275 Caenorhabditis elegans rep-1 gene Proteins 0.000 description 1
- 208000034423 Delivery Diseases 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Abstract
提供了一种包括非易失性存储器装置和被配置为控制非易失性存储器装置的存储控制器的存储装置。存储控制器包括:(i)被配置为基于存储装置信息和网络信息对从外部用户设备接收的请求进行调度的体验质量管理器,以及(ii)被配置为设置到外部用户设备的网络传输路径的软件定义网络管理器,网络传输路径与对应于请求的视频数据相关联。
Description
相关申请的交叉引用
本申请要求于2022年6月24日在韩国知识产权局提交的韩国专利申请No.10-2022-0077544的优先权,该申请的公开以引用方式全文并入本文中。
技术领域
在本文中描述的本公开的实施例涉及半导体存储器装置,更具体地,涉及存储装置、操作存储装置的方法和包括存储装置的流系统。
背景技术
半导体存储器装置通常被分类为当电源关闭时存储的数据消失的易失性存储器装置,诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM),或即使当电源关闭时数据仍被保留的非易失性存储器装置,诸如闪速存储器装置、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)或铁电RAM(FRAM)。
基于闪速存储器的存储装置通常用作计算系统的高容量存储介质。典型的存储装置具有在主机装置的控制下存储数据的功能。现在,为了减少主机装置的计算(或运算)的负担,正在开发增强存储装置,其支持其中的先前由主机装置执行的各种运算或各种应用。
流系统可以通过使用各种协议(诸如超文本传输协议(HTTP)流)来提供网络视频的多媒体。提供基于HTTP的视频流的传输的协议可以包括基于HTTP的动态自适应流(Dynamic Adaptive Streamingover HTTP,DASH)。
发明内容
本公开的实施例提供了一种具有改进的体验质量(QoE)的存储装置、存储装置的操作方法以及包括存储装置的流系统。
根据实施例,一种存储装置包括非易失性存储器装置和控制非易失性存储器装置的存储控制器。存储控制器包括:体验质量(QoE)管理器,其基于存储装置信息和网络信息对从外部用户设备接收的请求进行调度;以及软件定义网络(SDN)管理器,其设置到外部用户设备的网络传输路径,网络传输路径与对应于请求的视频数据相关联。
根据另一实施例,一种操作存储装置的方法,存储装置在其中具有非易失性存储器装置和存储控制器,方法包括:(i)接收从外部用户设备提供的要求视频数据的请求;(ii)基于网络信息和存储装置信息对请求进行调度;(iii)从非易失性存储器装置读取与请求相对应的视频数据;(iv)确定到外部用户设备的网络传输路径,网络传输路径与视频数据相关联;以及(v)将包括视频数据的响应发送至外部用户设备。
根据又一实施例,一种流系统包括:网络,其包括多个交换机,每一个交换机包括SDN数据面;用户设备,其被配置为通过网络发送要求视频数据的请求;流服务器,其通过网络与用户设备相连接;以及存储装置,其包括SDN控制面。存储装置通过网络与用户设备相连接,通过给定接口与流服务器相连接,并且将与请求相对应的视频数据发送至用户设备。存储装置基于网络信息和存储装置信息对请求进行调度,SDN控制面设置视频数据的传输路径以产生网络连接信息,并且SDN数据面基于网络连接信息建立用户设备与存储装置之间的连接。
附图说明
通过参照附图对本公开的实施例进行详细地描述,本公开的以上和其它目的和特征将变得更加明显。
图1是示出根据本公开的实施例的流系统的框图。
图2是详细示出图1的流服务器和存储装置的框图。
图3是用于描述图1的流系统的操作的示图。
图4是详细示出图1的流系统的框图。
图5是示出图2的存储装置的操作的示例的流程图。
图6是用于描述图5的操作S 150的示图。
图7A和图7B是用于描述图2的QoE管理器的操作的示图。
图8A和图8B是用于描述图2的QoE管理器的操作的示图。
图9是示出图1的流系统的操作的示例的流程图。
图10是示出图1的流系统的操作的示例的流程图。
图11是示出图2的存储装置的操作的示例的流程图。
图12是示出图1的流系统的操作的示例的流程图。
图13A至图13C是用于描述根据流服务器的控制的存储装置的操作的示图。
图14是示出根据本公开的实施例的流系统的框图。
图15是详细示出图1的流系统的框图。
具体实施方式
下面将详细并清楚地描述本公开的实施例,以达到本领域的普通技术人员轻松地实现本发明的程度。
在下文中,为了便于描述,术语“图像”、“视频数据”、“内容”、“媒体”、“媒体内容”和“多媒体文件”可以互换使用。取决于实施例的上下文,术语可以具有相同的意思或不同的意思,并且可以取决于将要描述的实施例的上下文来理解每个术语的意思。
图1是示出根据本公开的实施例的流系统的框图。参照图1,流系统10可以包括多个用户设备(或客户端设备)UE1至UEm、网络NT、流服务器20和存储集群30。存储集群30可以包括多个存储装置100_1至100_n。在一些实施例中,流系统10可以是基于以下的系统:软件定义网络(SDN)、基于超文本传输协议(HTTP)的动态自适应流(DASH)或服务器和网络辅助DASH(Server andnetwork-assisted DASH,SAND)。
多个用户设备UE1至UEm中的每一个可以包括各种信息处理装置中的至少一种,诸如个人计算机、膝上型计算机、服务器、工作站、智能电话和平板PC。在实施例中,多个用户设备UE1至UEm中的每一个可以是DASH客户端。
多个用户设备UE1至UEm可以与网络NT相连接,并且可以通过网络NT与流服务器20和存储集群30通信。多个用户设备UE1至UEm可以向流服务器20和存储集群30请求流服务。例如,多个用户设备UE1至UEm可以通过网络NT请求视频数据。
如本领域的技术人员将理解的,网络NT可以被配置为支持装置之间的短距离无线通信,以及使用移动通信网络、有线互联网、无线互联网、广播网络等的通信。例如,网络NT可以包括下列网络中的至少之一:诸如Ad Hoc网络、内联网、外联网、个人区域网(PAN)、局域网(LAN)、无线LAN、校园区域网(CAN)、城域网(MAN)、广域网(WAN)、宽带网(BBN)、公共交换电话网(PSTN)和因特网。在一些实施例中,可以通过使用以太网来实现网络NT。网络NT可以是诸如TCP/IP网络的传统网络。
流服务器20可以与网络NT相连接,并且可通过网络NT与多个用户设备UE1至UEm中的每一个通信。流服务器20可以通过网络NT向多个用户设备UE1至UEm提供命令、代码、文件、视频数据、内容和服务。
在实施例中,流服务器20可以包括提供多媒体流服务的平台。多媒体流服务可以指将存储在流服务器20或存储集群30中的视频数据或内容传输至多个用户设备UE1至UEm,使得在多个用户设备UE1至UEm中同时进行数据接收和回放。在实施例中,流服务器20可以是用于广播站的服务器或用于过顶(Over The Top,OTT)服务提供商的服务器。
流服务器20可以直接与存储集群30相连接。流服务器20可以直接与多个存储装置100_1至100_n中的每一个连接。流服务器20可以将多个存储装置100_1至100_n作为存储集群30进行管理。在实施例中,流服务器20可以是DASH感知网元(DANE)。也就是说,流服务器20可以包括关于基于DASH的协议或格式的最少量信息。
流服务器20可以将应用下载(offload)到存储集群30上。例如,流服务器20可以基于给定标准(例如,NVMe接口标准)将应用下载到第一存储装置100_1上。例如,流服务器20可以下载这样的应用,其执行工作负载平衡操作、用于从多个用户设备UE1至UEm接收的请求的调度操作、或选择到多个用户设备UE1至UEm的视频数据传输路径的操作。
流服务器20可以被配置为读取存储在第一存储装置100_1中的数据或将数据存储在第一存储装置100_1中。可替换地,流服务器20可以将来自多个用户设备UE1至UEm的请求传输至第一存储装置100_1,使得第一存储装置100_1执行下载的应用(或内部应用)。
第一存储装置100_1可以是具有计算功能的计算存储装置。第一存储装置100_1可以执行或驱动从流服务器20下载的应用。例如,第一存储装置100_1可以通过驱动内部应用来执行工作负载平衡操作、调度操作、网络传输路径选择操作等。
在实施例中,第一存储装置100_1可以执行工作负载平衡操作。第一存储装置100_1可以在存储集群30内对来自多个用户设备UE1至UEm的请求进行平衡(或分布或重新分配)。例如,即使第一存储装置100_1从流服务器20接收第一用户设备UE1的第一请求,第一存储装置100_1仍可以通过工作负载平衡操作将第一请求重新分配至任何其它的存储装置(例如,第二存储装置100_2)。这样一来,第一存储装置100_1可以不处理第一请求,并且第二存储装置100_2可以处理第一请求。
在一些实施例中,存储集群30可以均匀地分布工作负载。可替换地,存储集群30可以通过首先评估多个存储装置100_1至100_n中的每一个的可用资源并确定使得QoE总体改进的相关能力来平衡工作负载。
第一存储装置100_1可以直接与流服务器20相连接,并且第一存储装置100_1可以通过网络NT与多个用户设备UE1至UEm相连接。在一些实施例中,第一存储装置100_1可以被配置为DASH感知网元(DANE)。
第一存储装置100_1可以基于来自多个用户设备UE1至UEm中的每一个的请求来上传、存储、格式化、产生、传输视频数据。例如,第一存储装置100_1可以从多个用户设备UE1至UEm中的至少一个接收视频数据,并且可以将视频数据存储在非易失性存储器装置120中(参考图2)。第一存储装置100_1可以将从非易失性存储器装置120读取的视频数据传输至多个用户设备UE1至UEm中的至少一个。第一存储装置100_1还可以对视频数据进行格式化,例如,第一存储装置100_1可以对视频数据执行压缩、编码和/或转码操作。
第一存储装置100_1可以通过网络NT向多个用户设备UE1至UEm提供文件、视频数据、内容、流服务等。在实施例中,第一存储装置100_1可以以段为单位将视频数据(或多媒体文件)发送至多个用户设备UE1至UEm中的至少一个。例如,可以将多媒体文件分割成一个或多个段。第一存储装置100_1可以将一个多媒体文件分割成多个段,并且可以将多个段提供给多个用户设备UE1至UEm中的至少一个。
在实施例中,第一存储装置100_1可以产生、配置或控制媒体呈现描述(MediaPresentation Description,MPD)元数据文件。例如,MPD元数据文件可以提供关于存储在第一存储装置100_1(或存储集群30)中的视频数据(或媒体内容)的结构(或设置、特性、参数)和不同版本(或格式、质量或副本)的信息。MPD元数据文件可以包括关于比特率、帧速率、分辨率、编解码类型或媒体表示配置中的至少一个的信息。
第一存储装置100_1可以通过网络NT与多个用户设备UE1至UEm中的每一个通信。例如,当建立了与多个用户设备UE1至UEm的连接(例如,WebSocket连接)时,第一存储装置100_1可以通过网络NT与多个用户设备UE1至UEm通信,但是有利地,无需受到流服务器20的干预。第一存储装置100_1可以将视频数据发送至多个用户设备UE1至UEm。其余的存储装置100_2至100_n与第一存储装置100_1相同或基本上相似,并因此将省略额外的描述以避免冗余。
在下文中,为了便于描述,将基于第一存储装置100_1给出描述,但是本公开不限于此。其余的存储装置100_2至100_n与第一存储装置100_1相同或相似。
图2是详细示出图1的流服务器和存储装置的框图。参照图1和图2,图2的存储装置100与图1的多个存储装置100_1至100_n中的第一存储装置100_1相对应。图1的其余存储装置100_2至100_n与存储装置100相同或相似。
流服务器20可以向存储装置100发送用于将数据“DATA”存储在存储装置100中的请求或读取存储在存储装置100中的数据“DATA”的请求。在实施例中,流服务器20可以是被配置为控制存储集群30的处理器核心,诸如中央处理单元(CPU)或应用处理器(AP),或者可以是通过网络连接的计算节点。
在实施例中,流服务器20可以包括流服务器控制器21和流服务器存储器22。流服务器控制器21可以是被配置为控制流服务器20的总体操作的装置或使得流服务器20能够控制存储装置100的装置。流服务器存储器22可以是在流服务器20中使用的缓冲存储器、高速缓冲存储器或工作存储器。
存储装置100可以在流服务器20的控制下操作。存储装置100可以包括存储控制器110和非易失性存储器(NVM)装置120。在流服务器20的控制下,存储控制器110可以将数据存储在非易失性存储器装置120中,或者可以读取存储在非易失性存储器装置120中的数据。在实施例中,存储控制器110可以执行用于有效地使用非易失性存储器装置120的各种管理操作。
存储控制器110可以包括中央处理单元(CPU)111、闪存转换层(FTL)112、缓冲存储器113、加速器114、主机接口电路(I/F)115、存储器接口电路(I/F)116、体验质量(QoE)管理器117、SDN管理器118和SAND管理器119。存储控制器110还可以包括纠错码(ECC)引擎(未示出)和高级加密标准(AES)引擎(未示出)。
ECC引擎可对从非易失性存储器装置120读取的数据执行错误检测和错误校正。例如,ECC引擎可以为将要写入至非易失性存储器装置120中的数据产生纠错码(或奇偶校验位)。产生的纠错码(或奇偶校验位)可以与将要写入的数据一起存储在非易失性存储器装置120中。然后,当从非易失性存储器装置120读取写入的数据时,ECC引擎可以基于读取的数据和相应的纠错码(或相应的奇偶校验位)来检测和校正读取的数据的错误。
AES引擎可以对从流服务器20接收的数据执行加密操作,或者可以对从非易失性存储器装置120接收的数据执行解密操作。在实施例中,可以基于对称密钥算法来执行加密操作和解密操作。
CPU 111可以控制存储控制器110的总体操作。例如,CPU 111可以被配置为驱动在存储控制器110上运行的各种固件或软件。CPU 111可以被配置为执行将要在存储控制器110上处理的各种计算(或操作)或者驱动在存储控制器110上运行的应用或计算程序。
在实施例中,CPU 111可以被配置为执行在流服务器20上驱动的应用的一些功能。也就是说,有利地,可以将流服务器20的一些应用下载到存储装置100上。在实施例中,内部应用可以被配置成执行各种数据处理操作,诸如工作负载平衡操作、调度操作和网络传输路径选择操作。
在实施例中,可以将CPU 111、加速器114和QoE管理器117示出为单独的功能块,但是本公开不限于此。例如,CPU 111、加速器114和QoE管理器117中的每一个可以由独立的处理器核心实现。可替换地,CPU 111、加速器114和QoE管理器117可以由一个处理器核心实现,或者可以由包括多个处理器核心的多核处理器实现。
FTL 112可以执行用于有效地使用非易失性存储器装置120的各种操作。例如,流服务器20可以通过使用逻辑地址来管理存储装置100的存储空间。FTL 112可以被配置为管理来自流服务器20的逻辑地址与存储装置100的物理地址之间的地址映射。FTL 112可以执行损耗均衡操作以防止非易失性存储器装置120的存储器块中的特定存储器块的过度劣化。通过FTL 112的损耗均衡操作可以提高非易失性存储器装置120的寿命。FTL 112可以对非易失性存储器装置120执行垃圾收集操作,以确保空闲的存储器块。
在实施例中,FTL 112可以以硬件或软件的形式实现。在FTL 112以软件的形式实现的情况下,与FTL 112相关联的程序代码或信息可以存储在缓冲存储器113中,并且可以由CPU 111执行。在FTL 112以硬件的形式实现的情况下,可以单独提供被配置为执行FTL112的操作的硬件加速器。
缓冲存储器113可以是被配置为临时存储输入到存储控制器110的数据的写缓冲器或读缓冲器。可替换地,缓冲存储器113可以被配置为存储用于存储控制器110进行操作所必需的各种信息。例如,缓冲存储器113可以存储由FTL 112管理的映射表。可替换地,缓冲存储器113可以存储与FTL 112相关联的软件、固件或信息。
在实施例中,缓冲存储器113可以被配置为存储将要由CPU 111、加速器114和QoE管理器117使用的数据,或者存储用于将要由CPU 111、加速器114和QoE管理器117驱动的应用的程序代码。CPU 111、加速器114和QoE管理器117可以执行存储在缓冲存储器113中的程序代码,或者可以对存储在缓冲存储器113中的数据执行各种计算(或操作)。
在实施例中,缓冲存储器113可以是SRAM,但本公开不限于此。例如,缓冲存储器113可以由各种存储器装置实现,诸如DRAM、MRAM和PRAM。为了附图的简洁和描述的方便,在图2中示出了缓冲存储器113包括在存储控制器110中的示例,但本公开不限于此。缓冲存储器113可以放置在存储控制器110的外部,并且存储控制器110可以通过单独的通信信道或接口与缓冲存储器113通信。
加速器114可以是用于高速数据计算(或运算)的专用电路。例如,加速器114可以是被配置为使功能(诸如编码、转码或压缩)自动化的硬件电路。
在实施例中,加速器114可以对视频数据执行转码操作。转码操作可以指转换视频数据或多媒体内容的以下内容的操作(或工作):文件格式、分辨率和图像质量。例如,加速器114可以将多媒体文件从原始格式转码为可伸缩格式。存储控制器110可以将转码后的可伸缩格式的文件存储在非易失性存储器装置120中。多个用户设备UE1至UEm可以以不同的分辨率回放文件。存储装置100可以通过存储可缩放格式的文件而不是存储与不同的分辨率相对应的多个文件来减少存储容量。加速器114可以基于从多个用户设备UE1至UEm提供的要求特定分辨率或特定格式的请求,将存储在非易失性存储器装置120中的可缩放格式文件转码为与特定分辨率或特定格式相对应的多媒体文件。存储装置100可以将转码后的多媒体文件提供给用户设备UE1至UEm。
在实施例中,加速器114可以基于多个编解码中的一个来编码和/或压缩视频数据。例如,加速器114可以通过使用编解码来编码和/或压缩视频数据,并且可以产生编码后的(和/或压缩后的)视频数据。编解码是H.266(或与FVC(未来视频编码)标准兼容的代码)、H.265(或与HEVC(高效视频编码)标准兼容的代码)、H.264(或与AVC(高级视频编码)标准兼容的代码)或任何其它合适的代码。
主机接口电路(I/F)115可以包括流服务器接口电路(I/F)115a和以太网接口电路(I/F)115b。流服务器接口电路115a可以被配置为按照给定的接口协议与流服务器20通信。在实施例中,给定接口协议可以包括用于各种接口的协议中的至少一个,诸如ATA(高级技术附件)接口、SATA(串行ATA)接口、e-SATA(外部SATA)接口、SCSI(小型计算机小接口)接口、SAS(串行连接SCSI)接口、PCI(外围组件互连)接口、PCIe(PCI快速)接口、NVMe(NVM快速)接口、IEEE 1394接口、USB(通用串行总线)接口、SD(安全数字)卡接口、MMC(多媒体卡)接口、eMMC(嵌入式多媒体卡)接口、UFS(通用闪存)接口、eUFS(嵌入式通用闪存)接口和CF(压缩闪存)卡接口或网络接口。
在实施例中,流服务器接口电路115a可以是NVMe接口电路。流服务器接口电路115a可以从流服务器20接收基于给定接口协议(例如,NVMe接口协议)的信号,并且可以基于接收的信号进行操作。可替换地,流服务器接口电路115a可以将基于给定接口协议的信号发送至流服务器20。
以太网接口电路115b可以被配置为依据给定接口协议通过网络NT与用户设备UE1至UEm通信。在实施例中,给定接口协议可以包括以太网接口。以太网接口电路115b可以从网络NT接收基于给定接口协议的信号,并且可以基于接收的信号进行操作。可替换地,以太网接口电路115b可以将基于给定接口协议的信号发送至网络NT。
存储器接口电路(I/F)116可以按照给定的接口协议与非易失性存储器装置120通信。在实施例中,给定接口协议可以包括用于各种接口的协议中的至少一个,诸如切换接口(toggle interface)和开放NAND闪存接口(ONFI)。在实施例中,存储器接口电路116可以基于切换接口与非易失性存储器装置120通信。在这种情况下,存储器接口电路116可以通过多个信道CH与非易失性存储器装置120通信。在实施例中,多个信道CH中的每一个可以包括多个信号线,其被配置为传输各种控制信号(例如,/CE、CLE、ALE、/WE、/RE以及R/B)、数据信号DQ以及数据选通信号DQS。
QoE管理器117可以执行用于整体改进QoE的各种操作。例如,QoE管理器117可以确定使得多个用户设备UE1至UEm的视频质量的总和最大化的视频数据(或段)的比特率。
QoE管理器117可以基于各种信息(或各种因素或调度参数)来对从多个用户设备UE1至UEm接收的请求进行调度。可替换地,QoE管理器117可以基于各种信息来对将要传输至多个用户设备UE1至UEm的响应进行调度。例如,QoE管理器117可以基于网络信息和存储装置信息来执行调度操作。
在实施例中,QoE管理器117可以基于调度参数中的至少一个来执行调度操作。例如,QoE管理器117可以仅基于优先级信息来执行调度操作。可替换地,QoE管理器117可以基于优先级信息和关于内容类型的信息(或媒体文件标识符)来执行调度操作。
在实施例中,QoE管理器117可以基于调度参数和与调度参数相对应的权重来执行调度操作。QoE管理器117可以为了整体改进QoE的目的而向每个调度参数分配权重。例如,QoE管理器117可以向调度参数分配相同的权重或不同的权重。QoE管理器117可以通过对调度参数值和权重执行运算(即,乘法运算)来执行调度操作。例如,QoE管理器117可以将更大的权重分配给缓冲状态而不是优先级,并且可以执行调度操作。
SDN管理器118可以控制网络传输路径。在实施例中,SDN管理器118可以定期收集网络资源信息。为了满足所有的用户设备UE1至UEm的最小带宽,SDN管理器118可以产生网络连接信息,并且可以将网络连接信息发送至网络NT。将参照图4详细地描述SDN管理器118的配置和操作方法。
SAND管理器119可以被配置为处理SAND协议。SAND管理器119可以发送和接收消息并且可以处理消息。例如,SAND管理器119可以将PED消息发送至流服务器20或任何其它的存储装置(例如,第二存储装置100_2)。SAND管理器119可以将PER消息发送至多个用户设备UE1至UEm。SAND管理器119可以从多个用户设备UE1至UEm接收度量和状态消息。将参照图3详细地描述PED消息、PER消息以及度量和状态消息。
如上所述,存储装置100可以驱动从流服务器20下载的应用,可以基于网络信息和存储装置信息对请求执行调度操作,并且可以设置网络传输路径。这样,提供了具有改进的QoE和性能的流系统10。
图3是用于描述图1的流系统的操作的示图。参照图1和图3,基于DASH的流系统10可以使用SAND技术。流系统10可以通过使用SAND技术来发送和接收消息。SAND技术可以提供DASH客户端和DANE之间的消息。可替换地,SAND技术可以提供DANE之间的消息。消息可以包括关于多个用户设备UE1至UEm中的每一个的性能、能力、状态、网络、服务器、代理和高速缓存的信息,以及关于多个存储装置100_1至100_n中的每一个的性能、能力、状态和实时操作特性的信息。流系统10可以交换消息以改进QoE。
在实施例中,消息可以被用于提供关于网络、服务器、代理、高速缓存和内容分发内容配送网络(CDN)的实时操作特性的信息。流系统10可以通过SAND技术改进多个用户设备UE1至UEm的性能和流内容的流部分。
例如,多个用户设备UE1至UEm中的每一个和流服务器20可以交换消息。多个用户设备UE1至UEm中的每一个和多个存储装置100_1至100_n中的每一个可以交换消息。流服务器20和多个存储装置100_1至100_n中的每一个可以交换消息。多个存储装置100_1至100_n可以交换消息。
在实施例中,流服务器20和存储集群30可以交换参数增强递送(ParametersEnhancing Del ivery,PED)消息。例如,流服务器20和第一存储装置100_1可以交换PED消息。第一存储装置100_1和第二存储装置100_2可以交换PED消息。例如,PED消息可包括用于转码操作的服务质量参数、带宽参数、转码/变换参数、与工作负载平衡相关联的参数、与请求分配相关联的参数等。
网络NT可以包括多个网元或多个网络装置。也就是说,网络NT可以包括多个交换机SW。交换机SW可以是DASH感知网元(DANE)。交换机SW和存储集群30可以交换PED消息。例如,交换机SW和第一存储装置100_1可以发送和接收PED消息。
在实施例中,流服务器20和存储集群30可以将参数增强接收(ParametersEnhancing Reception,PER)消息发送至多个用户设备UE1至UEm。例如,流服务器20可以将PER消息发送至第一用户装置UE1。第一存储装置100_1可以将PER消息发送至第一用户设备UE1。例如,PER消息可以包括关于高速缓存段、替代段可用性、关于传输的时间信息、网络吞吐量/QoS、转码参数和存储装置能力的信息。
在实施例中,多个用户设备UE1至UEm可以将度量和状态消息发送至流服务器20和存储集群30。例如,第一用户设备UE1可以将度量和状态消息发送至流服务器20。第一用户设备UE1可以将度量和状态消息发送至第一存储装置100_1。度量和状态消息可以包括关于平均吞吐量、缓冲级别、初始回放延迟(或延时)、HTTP请求/响应事务、表示转换事件、播放列表、延迟、客户端能力、带宽、质量、期望段或可接受的替代内容的信息。
如上所述,流系统10可以通过使用PED消息、PER消息以及度量和状态消息来满足多个用户设备UE1至UEm的QoE相关要求和容量。
图4是详细示出图1的流系统的框图。参照图1和图4,软件定义网络环境中的网络控制可以是可编程的,并且网络的控制功能和传输功能可彼此物理分隔。多个存储装置100_1至100_n中的每一个可以以数据包或网络流量为单位将视频数据发送至多个用户设备UE1至UEm。多个存储装置100_1至100_n中的每一个可以包括SDN管理器118。SDN管理器118可以包括控制面CP。
在实施例中,网络NT可以包括多个网元(例如,交换机或路由器)。多个网元中的每一个可以转发、交换或路由数据包。例如,网络NT可以包括多个交换机SW。交换机SW可以包括数据面DP。
每个网元(例如,交换机SW)可以将多个用户设备UE1至UEm中的每一个与网络NT的内部相连接,或者可以将多个用户设备UE1至UEm中的每一个与放置在网络NT的外部的流服务器20或放置在网络NT的外部的存储集群30相连接。
数据面DP可以从控制面CP接收网络连接信息。数据面DP可以基于网络连接信息建立多个用户设备UE1至UEm和多个存储装置100_1至100_n之间的连接。数据面DP可以基于网络连接信息转发、交换或路由(或桥接)数据包。例如,数据面DP可以基于网络连接信息将由多个用户设备UE1至UEm请求的视频数据存储在多个存储装置100_1至100_n中或在多个存储装置100_1至100_n中读取由多个用户设备UE1至UEm请求的视频数据。数据面DP可以基于网络连接信息转发与连接控制或编排相关联的控制数据包。
在实施例中,数据面DP可以管理数据包传输。数据面DP可以通过输入端口接收数据包。数据面DP可以确定与数据包相对应的输出端口。数据面DP可以通过输出端口转发数据包。例如,数据面DP可以包括网络流表。网络流表可以包括数据包路径和输出端口的映射信息。数据面DP可以基于从控制面CP接收的网络连接信息将数据包转发至与数据包路径相对应的输出端口。数据面DP可以执行功能,诸如数据包修改功能或服务质量(QoS)功能或过滤功能。
在实施例中,SDN管理器118可以执行路径优化和路由功能。SDN管理器118可以被配置为控制多个交换机SW(或路由器),以控制视频数据流(或数据包或网络流量)。
SDN管理器118的控制面CP可以编排、管理或控制数据面DP。控制面CP可以产生或设置网络连接信息。控制面CP可以将网络连接信息发送至数据面DP。数据面DP可以基于网络连接信息选择性地转发、交换或路由数据包。
SDN管理器118可以管理视频数据流,以确定从多个存储装置100_1至100_n中的每一个到多个用户设备UE1至UEm中的每一个的路径。例如,第一存储装置100_1可以管理数据包流,以设置从第一存储装置100_1到第一用户设备UE1的传输路径。
在实施例中,SDN管理器118可以基于从外部提供的信息来配置整个网络的拓扑。SDN管理器118可以基于拓扑信息和从多个用户设备UE1至UEm接收的信息来运算传输视频数据所通过的路径。SDN管理器118可以基于网络连接信息来执行设置、管理和释放数据包流的路径,使得将要通过网络NT传输的数据包被输出至多个交换机SW的正确物理端口。
SDN管理器118可以产生网络连接信息。例如,网络连接信息可以包括流规则、关于传输路径(或路由路径)的信息、关于网络带宽管理、恢复、安全性和策略设置的信息、关于网络拓扑的总体控制信息以及编排信息。SDN管理器118可以将网络连接信息发送至传输路径上的多个交换机SW,以控制多个交换机SW中的流规则的安装。SDN管理器118用来管理交换机SW中的流规则的安装或者从交换机SW删除流规则的协议可以被称为”开放流协议”。例如,SDN管理器118可以基于网络连接信息来建立第一存储装置100_1和第一用户设备UE1之间的连接。
SDN管理器118可以调整视频数据的传输路径。SDN管理器118可以从多个路径中选择最优传输路径。可替换地,SDN管理器118可以控制网元以再次调整(或设置)视频数据的传输路径。
SDN管理器118可以设置每个请求的传输路径,使得满足多个用户设备UE1至UEm要求的最小带宽。SDN管理器118可以设置每个请求的传输路径,以在满足最小带宽的同时整体改进QoE。SDN管理器118可以考虑用于从第一用户设备UE1接收的第一请求RQ1的多个传输路径。SDN管理器118可以从多个传输路径中选择满足最小带宽的第一传输路径和第二传输路径。SDN管理器118可以选择具有最低延迟的第一传输路径作为最终路径。可替换地,为了满足其余用户设备UE2至UEm的最小带宽或为了整体改进QoE,SDN管理器118可以选择延迟比第一传输路径的延迟更大的第二传输路径作为最终路径。
在实施例中,SDN管理器118还可以包括机器学习逻辑。机器学习逻辑可以包括硬件组件、软件组件或其混合组件。例如,机器学习逻辑可以包括被配置为执行特定操作的专用硬件电路。可替换地,机器学习逻辑可以包括一个或多个处理器核心,其运行被配置为执行特定操作的程序代码的指令集。
机器学习逻辑可以基于拓扑信息和从多个用户设备UE1至UEm接收的信息来运算或计算数据包的传输路径。机器学习逻辑可以确定多个传输路径中的最优传输路径。机器学习逻辑可以基于多个请求运算分别与来自多个用户设备UE1至UEm的多个请求相对应的传输路径。机器学习逻辑可以运算满足多个用户设备UE1至UEm要求的最小带宽或延迟的最优传输路径。机器学习逻辑可以产生与传输路径相对应的网络连接信息,并且可以将网络连接信息发送至数据面DP。
图5是示出图2的存储装置的操作的示例的流程图。参照图2和图5,在操作S110中,存储装置100可以接收写请求。例如,存储装置100可以从第一用户设备UE1接收用于第一视频数据的第一请求,并且可以从第二用户设备UE2接收用于第二视频数据的第二请求。
在操作S130中,存储装置100可以对请求进行调度(或排序)。例如,QoE管理器117可以对从多个用户设备UE1至UEm接收的请求进行调度。QoE管理器117可以管理第一队列和第二队列。第一队列和第二队列可以存储在缓冲存储器113中。第一队列可以存储第一用户设备UE1的请求。第二队列可以存储第二用户设备UE2的请求。
QoE管理器117可以基于各种方案来对请求进行调度。在实施例中,基于轮询(RR)方案,QoE管理器117可以选择包括在多个队列(例如,第一队列和第二队列)中的请求中的一个,并且可以处理选择的请求。
在实施例中,基于加权轮询(WRR)方案,QoE管理器117可以选择包括在多个队列中的请求中的一个,并且可以处理选择的请求。多个队列中的每一个可以具有权重。权重可以包括紧急权重、高权重、中等权重和低权重。例如,第一队列可以被设置为具有中等权重,并且第二队列可以被设置为具有低权重。可以预先确定多个队列的权重。可替换地,可以由QoE管理器117确定或管理多个队列的权重(例如,在操作期间可以由QoE管理器117改变权重的值)。
在实施例中,基于优先级方案,QoE管理器117可以选择包括在多个队列中的请求中的一个,并且可以处理选择的请求。例如,QoE管理器117可以在处理包括在第二队列中的请求之前首先处理包括在第一队列中的请求。例如,QoE管理器117可以对第一请求和第二请求进行调度,使得在处理第二请求之前处理第一请求。
在实施例中,QoE管理器117可以基于网络信息和存储装置信息对请求(或响应)进行调度。例如,网络信息可以指关于网络状态(或情况)的信息。网络信息可以包括关于带宽、延迟以及其是否拥挤(或阻塞)的信息。存储装置信息可以包括关于存储装置100的状态(或情况)的信息。存储装置信息可以包括缓冲信息、延迟信息等。
在操作S150中,存储装置100可以从非易失性存储器装置120读取视频数据。存储装置100可以基于调度结果将视频数据从非易失性存储器装置120加载到缓冲存储器113上。存储装置100可以将第一视频数据从非易失性存储器装置120加载到缓冲存储器113上,并且之后可以将第二视频数据加载到缓冲存储器113上。
在操作S170中,存储装置100可以确定视频数据的最优路径。例如,SDN管理器118可以为第一视频数据设置直到第一用户设备UE1的最优路径。SDN管理器118可以基于度量和状态消息以及网络状态来设置从第一存储装置100_1到第一用户设备UE1的第一视频数据的路径。SDN管理器118可以产生用于控制每个交换机SW的数据面DP的网络连接信息。SDN管理器118可以为第二视频数据设置直到第二用户设备UE2的最优路径。
在操作S190中,存储装置100可以将包括视频数据的响应发送至用户设备。例如,存储装置100可以将与第一请求相对应的响应发送至第一用户设备UE1。也就是说,存储装置100可以通过网络NT将包括第一视频数据的响应发送至第一用户设备UE1。存储装置100可以将包括关于第一视频数据的最优传输路径的信息的第一网络连接信息发送至网元(例如,交换机SW)。存储装置100可以将与第二请求相对应的响应发送至第二用户设备UE2。
图6是用于描述图5的操作S 150的示图。参照图1、图2、图5和图6,QoE管理器117可以包括调度器117_1、缓冲监测电路117_2和延迟预测电路117_3。调度器117_1可以接收请求RQ和网络信息NI。例如,调度器117_1可以通过主机接口电路115从多个用户设备UE1至UEm接收要求视频数据的请求RQ(或消息)。调度器117_1可以从SDN管理器118或SAND管理器119接收网络信息NI。调度器117_1可以从缓冲监测电路117_2接收缓冲信息BI。调度器117_1可以从延迟预测电路117_3接收延迟信息LI。
为了改进QoE,调度器117_1可以基于各种信息(或调度参数)对多个请求进行调度或排序。例如,调度器117_1可以基于请求RQ、网络信息NI和存储装置信息对多个请求执行调度操作。也就是说,调度参数可以包括请求RQ、网络信息NI和存储装置信息中的至少一个。
调度器117_1可以向调度参数分配不同的权重。调度器117_1可以基于调度参数和与调度参数相对应的权重来对请求执行调度操作。
缓冲监测电路117_2可以监测与多个用户设备UE1至UEm中的每一个相对应的缓冲区域。可替换地,缓冲监测电路117_2可以监测与接收到的请求相对应的缓冲区域。缓冲监测电路117_2可以运算从非易失性存储器装置120加载了多少数据。缓冲监测电路117_2可以产生缓冲信息BI,并且可以将缓冲信息BI发送至调度器117_1。缓冲信息BI可以包括关于缓冲占用率、缓冲填充速度等的信息。
延迟预测电路117_3可以预测存储装置100中的延迟(或延时时间)。延迟预测电路117_3可以预测延迟,并且可以产生延迟信息LI。延迟预测电路117_3可以将延迟信息LI发送至调度器117_1。延迟信息LI可以包括非易失性存储器装置存取时间、需要的加速器时间等。非易失性存储器存取时间可以指示将与请求相对应的视频数据从非易失性存储器装置120加载到缓冲存储器113所花费的时间(或必要时间)。非易失性存储器存取时间可以指示从将读命令发送至非易失性存储器装置120时到将与读命令相对应的视频数据完全写入至缓冲存储器113时所经过的时间。
延迟预测电路117_3可以基于下面的等式1来预测或运算非易失性存储器存取时间“T”。Tcmd可以表示从存储控制器110到非易失性存储器装置120的命令传输时间,Taddr可以表示从存储控制器110到非易失性存储器装置120的地址传输时间,tR可以表示从非易失性存储器装置120的存储器单元阵列到寄存器的数据传输时间,tRC可以表示读周期时间,Lecc可以表示ECC延时时间,Tclk可以表示时钟时间,并且pageSize可以表示页大小。
[等式1]
T=Tcmd+Taddr+tR+tRC×pageSize+Lecc+Tclk×pageSize
在实施例中,需要的加速器时间可以指示在加速器114处执行压缩、编码或转码操作所花费的时间(或必要时间)。也就是说,需要的加速器时间可以指示从发送命令使得加速器114执行压缩、编码或转码操作时到接收到与命令相对应的视频数据(例如,压缩视频数据、编码视频数据或转码视频数据)时所经过的时间。
如上所述,本公开的QoE管理器117可以基于存储装置信息以及网络信息NI来对请求进行调度。因此,QoE管理器117可以提供改进的性能,满足多个用户设备UE1至UEm的最小带宽,并且可以整体改进QoE。
图7A和图7B是用于描述图2的QoE管理器的操作的示图。参照图2、图7A和图7B,第一存储装置100_1可以接收来自多个用户设备UE1至UEm的请求。例如,第一存储装置100_1可以接收来自第一用户设备UE1的第一请求RQ1,可以接收来自第二用户设备UE2的第二请求RQ2,并且可以接收来自第三用户设备UE3的第三请求RQ3。
多个用户设备UE1至UEm可以具有不同的优先级。例如,第一用户设备UE1可以具有第一级别LV1的优先级,第二用户设备UE2可以具有第二级别LV2的优先级,并且第三用户设备UE3可以具有第三级别LV3的优先级。也就是说,第二用户设备UE2的优先级可以高于第三用户设备UE3的优先级,并且第一用户设备UE1的优先级可以高于第二用户设备UE2的优先级。
请求RQ可以包括关于内容类型(或媒体文件标识符)、段标识符、质量、编解码类型等的信息。例如,第一请求RQ1可以包括指示第一文件的第一标识符ID1、第一质量Q1(例如,1080p)和第一编解码类型C1(例如,H.265)。第二请求RQ2可以包括指示第二文件的第二标识符ID2、第二质量Q2(例如,480p)和第二编解码类型C2(例如,H.264)。第三请求RQ3可以包括指示第一文件的第一标识符ID1、第三质量Q3(例如,4k)和第三编解码类型C3(例如,H.266)。
在操作S210中,第一用户设备UE1可以通过网络NT将第一请求RQ1发送至第一存储装置100_1。在操作S220中,第二用户设备UE2可以通过网络NT将第二请求RQ2发送至第一存储装置100_1。在操作S230中,第三用户设备UE3可以通过网络NT将第三请求RQ3发送至第一存储装置100_1。
在操作S240在,第一存储装置100_1可以对请求执行调度操作。例如,QoE管理器117可以接收第一请求RQ1至第三请求RQ3。在实施例中,QoE管理器117可以仅基于优先级来执行调度操作。例如,由于第一请求RQ1具有第一级别LV1、第二请求RQ2具有第二级别LV2、第三请求RQ3具有第三级别LV3,QoE管理器117可以执行调度操作,使得在处理第三请求RQ3前处理第二请求RQ2,并且在处理第二请求RQ2前处理第一请求RQ1。也就是说,QoE管理器117可以按照从最高到最低的顺序对第一请求RQ1、第二请求RQ2和第三请求RQ3进行调度。
在实施例中,QoE管理器117可以基于优先级和媒体文件标识符对第一请求RQ1至第三请求RQ3进行调度。由于第一请求RQ1的媒体文件标识符是第一标识符ID1并且第三请求RQ3的媒体文件标识符是第一标识符ID1,QoE管理器117可以按照第一请求RQ1、第三请求RQ3和第二请求RQ2的顺序执行调度。也就是说,由于第一请求RQ1和第三请求RQ3需要相同的内容(例如,第一文件),为了整体改进QoE,可以进行调度使得在处理第二请求RQ2前处理第三请求RQ3。
第一存储装置100_1可以基于调度结果来处理请求。在操作S250中,第一存储装置100_1可以将与第一请求RQ1相对应的第一响应REP1发送至第一用户设备UE1。在操作S260中,第一存储装置100_1可以将与第三请求RQ3相对应的第三响应REP3发送至第三用户设备UE3。在操作S270中,第一存储装置100_1可以将与第二请求RQ2相对应的第二响应REP2发送至第二用户设备UE2。
图8A和图8B是用于描述图2的QoE管理器的操作的示图。参照图2、图8A和图8B,第一存储装置100_1可以接收来自多个用户设备UE1至UEm的请求。例如,第一存储装置100_1可以接收来自第一用户设备UE1的第一请求RQ1,可以接收来自第二用户设备UE2的第二请求RQ2,并且可以接收来自第三用户设备UE3的第三请求RQ3。
多个用户设备UE1至UEm可以具有不同的优先级。例如,第一用户设备UE1可以具有第一级别LV1的优先级,第二用户设备UE2可以具有第二级别LV2的优先级,并且第三用户设备UE3可以具有第三级别LV3的优先级。也就是说,第二用户设备UE2的优先级可以高于第三用户设备UE3的优先级,并且第一用户设备UE1的优先级可以高于第二用户设备UE2的优先级。
请求RQ可以包括关于内容类型(或媒体文件标识符)、段标识符、质量、编解码类型等的信息。例如,第一请求RQ1可以包括指示第一文件的第一标识符ID1、第一质量Q1(例如,1080p)和第一编解码类型C1(例如,H.265)。第二请求RQ2可以包括指示第二文件的第二标识符ID2、第二质量Q2(例如,480p)和第二编解码类型C2(例如,H.264)。第三请求RQ3可以包括指示第三文件的第三标识符ID3、第三质量Q3(例如,4k)和第三编解码类型C3(例如,H.266)。
在操作S310中,第一用户设备UE1可以通过网络NT将第一请求RQ1发送至第一存储装置100_1。在操作S320中,第二用户设备UE2可以通过网络NT将第二请求RQ2发送至第一存储装置100_1。在操作S330中,第三用户设备UE3可以通过网络NT将第三请求RQ3发送至第一存储装置100_1。在操作S340,第一存储装置100_1可以对请求执行调度操作。
在实施例中,QoE管理器117可以基于缓冲信息BI对第一请求RQ1至第三请求RQ3进行调度。存储控制器110可以将由第一标识符ID1指示的视频数据(例如,第一文件)从非易失性存储器装置120加载到缓冲存储器113上。也就是说,存储控制器110可以从非易失性存储器装置120读取第一文件,并且可以将第一文件写入至缓冲存储器113中。例如,存储控制器110可以将与第一请求RQ1相对应的第一读命令发送至非易失性存储器装置120。存储控制器110可以将由第二标识符ID2指示的视频数据(例如,第二文件)从非易失性存储器装置120加载到缓冲存储器113上。存储控制器110可以将与第二请求RQ2相对应的第二读命令发送至非易失性存储器装置120。存储控制器110可以将由第三标识符ID3指示的视频数据(例如,第三文件)从非易失性存储器装置120加载到缓冲存储器113上。存储控制器110可以将与第三请求RQ3相对应的第三读命令发送至非易失性存储器装置120。存储控制器110可以同时处理第一请求RQ1至第三请求RQ3。也就是说,存储控制器110可以同时将第一读命令至第三读命令发送至非易失性存储器装置120。
缓冲监测电路117_2可以监测从非易失性存储器装置120加载到缓冲存储器113上的数据量。每当视频数据从非易失性存储器装置120加载到缓冲存储器113上时,缓冲监测电路117_2可以按照给定单位(例如,页大小)增加缓冲占用率,并且可以运算或计算缓冲占用率和缓冲填充速度。
例如,缓冲监测电路117_2可以管理分别与多个用户设备UE1至UEm相对应的缓冲区域。例如,缓冲监测电路117_2可以管理与第一用户设备UE1相对应的第一缓冲区域BA1,可以管理与第二用户设备UE2相对应的第二缓冲区域BA2,并且可以管理与第三用户设备UE3相对应的第三缓冲区域BA3。缓冲监测电路117_2可以监测多个缓冲区域BA1至BA3。
存储控制器110可以将第一文件加载到第一缓冲区域BA1上,可以将第二文件加载到第二缓冲区域BA2上,并且可以将第三文件加载到第三缓冲区域BA3上。缓冲监测电路117_2可以定期监测多个缓冲区域BA1至BA3。缓冲监测电路117_2可以监测有多少数据被加载到多个缓冲区域BA1至BA3上。也就是说,缓冲监测电路117_2可以运算多个缓冲区域BA1至BA3的缓冲占用率。例如,缓冲占用率可以指示加载的视频数据量(或存储在缓冲存储器中的数据量)与总视频数据量的比率。
缓冲监测电路117_2可以产生缓冲信息BI。例如,缓冲信息BI可以包括第一缓冲占用率至第三缓冲占用率。第一缓冲占用率可以指示第一缓冲区域BA1的缓冲区域占用率,第二缓冲占用率可以指示第二缓冲区域BA2的缓冲占用率,第三缓冲占用率可以指示第三缓冲区域BA3的缓冲占用率。第一缓冲占用率(例如,“1/2”)可以大于第三缓冲占用率(例如,“1/5”),第二缓冲占用率可以大于第一缓冲占用率(例如,“1/2”)。
调度器117_1可以从缓冲监测电路117_2接收缓冲信息BI。调度器117_1可以基于缓冲信息BI对第一请求RQ1至第三请求RQ3进行调度。调度器117_1可以基于缓冲信息BI对与首先传输的响应相对应的请求进行调度。
例如,调度器117_1可以按照第二请求RQ2、第一请求RQ1和第三请求RQ3的顺序,即,按照从最大到最小的顺序执行调度。由于第二缓冲占用率大于第一缓冲占用率,因此可以进行调度,使得在传输与第一请求RQ1相对应的第一响应REP1前传输与第二请求RQ2相对应的第二响应REP2。由于第一缓冲占用率大于第三缓冲占用率,因此可以进行调度,使得在传输与第三请求RQ3相对应的第三响应REP3前传输与第一请求RQ1相对应的第一响应REP1。
第一存储装置100_1可以基于调度结果来发送响应。在操作S350中,第一存储装置100_1可以将第二响应REP2发送至第二用户设备UE2。在操作S360中,第一存储装置100_1可以将第一响应REP1发送至第一用户设备UE1。在操作S370中,第一存储装置100_1可以将第三响应REP3发送至第三用户设备UE3。
在实施例中,QoE管理器117可以仅基于优先级来执行调度操作。例如,由于第一请求RQ1具有第一级别LV1,第二请求RQ2具有第二级别LV2,并且第三请求RQ3具有第三级别LV3,QoE管理器117可以按照第一请求RQ1、第二请求RQ2和第三请求RQ3的顺序执行调度。也就是说,QoE管理器117可以发送第一响应REP1,然后可以发送第二响应REP2,之后可以发送第三响应REP3。
相反,如图8B的实施例,为了整体改进QoE,QoE管理器117可以将更大的权重分配给缓冲状态而不是优先级。也就是说,即使第一请求RQ1的优先级高于第二请求RQ2的优先级,但是由于第二请求RQ2的缓冲占用率高于第一请求RQ1的缓冲占用率,因此QoE管理器117可以在发送第一响应REP1前发送第二响应REP2。
图9是示出图1的流系统的操作的示例的流程图。参照图1和图9,流系统10可以执行操作S401至操作S408以实现图5的操作S110。也就是说,图5的操作S110可以包括操作S401至操作S408。图5的操作S190可以与操作S409相对应。
在操作S401中,第一用户设备UE1可以通过网络NT将包括客户端能力的第一请求(例如,HTTP GET消息)发送至流服务器20。例如,HTTP GET消息可以包括头部,其包括与客户端能力相关联的状态消息。流服务器20可以接收来自第一客户端设备UE1的第一请求。
在操作S402中,流服务器20可以响应于第一请求将第一消息发送至第一存储装置100_1。流服务器20可以将包括在第一请求中的头部传输至第一存储装置100_1。也就是说,流服务器20可以将包括与客户端能力相关联的状态消息的PED消息(即,第一消息)发送至第一存储装置100_1。
在操作S403中,流服务器20可以通过网络NT将第一响应发送至第一用户设备UE1。例如,流服务器20可以产生包括指示第一存储装置100_1的主体的“HTTP 200OK”消息(即,第一响应)。第一用户设备UE1可以接收第一响应。
在操作S404中,第一用户设备UE1可以响应于第一响应而通过网络NT将连接请求发送至第一存储装置100_1。第一用户设备UE1可以产生WebSocket连接请求(即,连接请求)。第一存储装置100_1可以接收连接请求。
在操作S405中,第一存储装置100_1可以响应于连接请求而通过网络NT将连接响应发送至第一用户设备UE1。例如,连接响应可包括关于WebSocket连接接受的信息。
在操作S406中,第一用户设备UE1可以通过网络NT将包括客户端能力的第二请求发送至第一存储装置100_1。例如,第一用户设备UE1可以将HTTP GET消息(即,第二请求)通信至第一存储装置100_1。例如,HTTP GET消息可以包括头部,其包括与客户端能力相关联的状态消息。第一用户设备UE1可以通过度量或状态消息将第二请求发送至第一存储装置100_1。第一存储装置100_1可以接收第二请求。
在操作S407中,第一存储装置100_1可以响应于第二请求而通过网络NT将第二响应发送至第一用户设备UE1。例如,第一存储装置100_1可以产生包括指示第一存储装置100_1的能力的主体的“HTTP 200OK”消息(即,第二响应)。第一存储装置100_1可以通过PER消息发送第二响应。第一用户设备UE1可以接收第二响应。
在操作S408中,第一用户设备UE1可以通过网络NT将用于视频数据的第三请求发送至第一存储装置100_1。例如,第一用户设备UE1可以产生包括指示视频数据的头部的HTTP GET消息(即,第三请求)。第一存储装置100_1可以接收第三请求。
在操作S409中,第一存储装置100_1可以响应于第三请求而发送响应。例如,第一存储装置100_1可以产生包括指示视频数据的主体的“HTTP 200OK”消息(即,第三响应)。第一用户设备UE1可以接收第三响应。
图10是示出图1的流系统的操作的示例的流程图。参照图1、图9和图10,流系统10可以执行操作S409,然后可以执行操作S501。在操作S501中,第一用户设备UE1可以通过网络NT将包括客户端能力的第四请求发送至第一存储装置100_1。例如,第一用户设备UE1可以将HTTP GET消息(即,第四请求)通信给第一存储装置100_1。例如,HTTP GET消息可以包括头部,其包括与改变的客户端能力相关联的状态消息。第一用户设备UE1可以通过度量或状态消息将第四请求发送至第一存储装置100_1。第一存储装置100_1可以接收第四请求。
在操作S502中,第一存储装置100_1可以将第二消息发送至网络NT的交换机SW。例如,第一存储装置100_1可以通过比较在操作S406中接收的第二请求中包括的客户端能力和在第四请求中包括的客户端能力,来检测到包括在客户端能力中的信息已被改变。第一存储装置100_1可以识别与网络情况或第一存储装置100_1相关联的信息(或状态)已被改变。这样一来,第一存储装置100_1可以将PED信息(即,第二消息)发送至交换机SW。第一存储装置100_1可以通过PED消息与交换机SW通信。第一存储装置100_1可以通过PED信息控制交换机SW。
在操作S503中,第一用户设备UE1可以通过网络NT将用于视频数据的第五请求发送至第一存储装置100_1。例如,第一用户设备UE1可以产生包括指示视频数据的头部的HTTP GET消息(即,第五请求)。第一存储装置100_1可以接收第五请求。
在操作S504中,第一存储装置100_1可以响应于第五请求而发送第五响应。例如,第一存储装置100_1可以产生包括指示视频数据的主体的“HTTP 200OK”消息(即,第五响应)。第一用户设备UE1可以接收第五响应。
图11是示出图2的存储装置的操作的示例的流程图。参照图2、图5和图11,第一存储装置100_1可以执行操作S610至操作S690。操作S610、操作S630、操作S650、操作S670和操作S690与图5的操作S110、操作S 130、操作S150、操作S170和操作S190相同或相似,并且因此,将省略额外的描述以避免冗余。
在操作S610中,第一存储装置100_1可以接收请求。例如,第一存储装置100_1可以从第一用户设备UE1接收用于第一视频数据的第一请求,可以从第二用户设备UE2接收用于第二视频数据的第二请求,并且可以从第三用户设备UE3接收用于第三视频数据的第三请求。
在操作S620中,第一存储装置100_1可以执行工作负载平衡操作。可以在存储集群30中的多个存储装置100_1至100_n之间平衡(或分布)工作负载(或请求)。为了使得资源的有效利用最大化并且整体改进QoE,可以将工作负载从存储集群30中的一个存储装置重新分配至另一个存储装置。也就是说,可以通过与接收来自多个用户设备UE1至UEm的请求的存储装置不同的存储装置来提供流服务。
例如,第一存储装置100_1可以通过流服务器20从第二用户设备UE2接收第二请求。第一存储装置100_1可以通过PED消息与存储集群30中的其余存储装置100_2至100_n执行工作负载平衡操作。第一存储装置100_1可以通过PED消息与其余的存储装置100_2至100_n通信,并且可以通过PED消息将第二请求再次分配给第二存储装置100_2。
在操作S630中,第一存储装置100_1可以对多个请求进行调度。由于已经将第二请求重新分布至第二存储装置100_2,因此第一存储装置100_1可以对第一请求和第三请求执行调度操作。
在操作S650中,第一存储装置100_1可以从非易失性存储器装置120读取视频数据。在操作S660中,第一存储装置100_1可以对视频数据执行编码操作(或转码操作)。第一存储装置100_1可以基于包括在第一请求中的编解码类型对第一视频数据执行编码操作。第一存储装置100_1可以基于包括在第三请求中的编解码类型对第三视频数据执行编码操作。
在操作S670中,第一存储装置100_1可以确定视频数据的最优传输路径。在操作S690中,第一存储装置100_1可以将包括视频数据的响应发送至用户设备。例如,第一存储装置100_1可以将与第一请求相对应的响应发送至第一用户设备UE1,并且可以将与第三请求相对应的响应发送至第三用户设备UE3。
本公开的多个存储装置100_1至100_n中的每一个可以通过运行从流服务器20下载的应用来执行工作负载平衡操作而不受到流服务器20的干预。这样一来,由于可以减轻由流服务器20执行的计算的负担,因此可以改进流系统10的总体性能。
图12是示出图1的流系统的操作的示例的流程图。参照图1、图9和图12,在操作S701中,第一用户设备UE1可以通过网络NT将包括客户端能力的第一请求(例如,HTTP GET消息)发送至流服务器20。在操作S702中,流服务器20可以响应于第一请求将第一消息发送至第一存储装置100_1。操作S701和操作S702与图9的操作S401和操作S402相同或相似,因此,将省略额外的描述以避免冗余。
在操作S703中,存储集群30可以执行工作负载平衡操作。例如,第一存储装置100_1和第二存储装置100_2可以通过PED消息执行工作负载平衡操作。通过第一存储装置100_1和第二存储装置100_2之间的工作负载平衡操作,可以确定哪个存储装置有效地处理第一请求以改进QoE。通过第一存储装置100_1和第二存储装置100_2之间的工作负载平衡操作,可以确定由第二存储装置100_2处理第一请求。
在操作S704中,第一存储装置100_1可以响应于工作负载平衡结果而将第二消息发送至第二存储装置100_2。第一存储装置100_1可以不做修改地将从流服务器20接收的第一消息作为第二消息传输。也就是说,第一存储装置100_1可以将包括与客户端能力相关联的状态消息的PED消息(即,第二消息)发送至第二存储装置100_2。
在操作S705中,第一存储装置100_1可以将第三消息发送至流服务器20。第一存储装置100_1可以通过PED消息(即,第三消息)通知流服务器20第一请求被重新分配至第二存储装置100_2。
在操作S706中,流服务器20可以通过网络NT将第一响应发送至第一用户设备UE1。例如,流服务器20可以产生包括指示第二存储装置100_2的主体的“HTTP 200OK”消息(即,第一响应)。第一用户设备UE1可以接收第一响应。
在实施例中,由于第一请求被重新分配给第二存储装置100_2,第一存储装置100_1可以不处理第一请求。代替第一存储装置100_1,第二存储装置100_2可以执行与第一用户设备UE1的WebSocket连接。
在操作S707中,第一用户设备UE1可以响应于第一响应而通过网络NT将连接请求发送至第二存储装置100_2。第一用户设备UE1可以产生WebSocket连接请求(即,连接请求)。第二存储装置100_2可以接收连接请求。
在操作S708中,第二存储装置100_2可以响应于连接请求而通过网络NT将连接响应发送至第一用户设备UE1。例如,连接响应可以包括关于WebSocket连接接受的信息。
在操作S709中,第一用户设备UE1可以通过网络NT将包括客户端能力的第二请求发送至第二存储装置100_2。例如,第一用户设备UE1可以将HTTP GET消息(即,第二请求)通信给第二存储装置100_2。例如,HTTP GET消息可以包括头部,其包括与客户端能力相关联的状态消息。第一用户设备UE1可以通过度量或状态消息将第二请求发送至第二存储装置100_2。第二存储装置100_2可以接收第二请求。
在操作S710中,第二存储装置100_2可以响应于第二请求而通过网络NT将第二响应发送至第一用户设备UE1。例如,第二存储装置100_2可以产生包括指示第二存储装置100_2的能力的主体的“HTTP 200OK”消息(即,第二响应)。第二存储装置100_2可以通过PER消息发送第二响应。第一用户设备UE1可以接收第二响应。
在操作S711中,第一用户设备UE1可以通过网络NT将用于视频数据的第三请求发送至第二存储装置100_2。例如,第一用户设备UE1可以产生包括指示视频数据的头部的HTTP GET消息(即,第三请求)。第二存储装置100_2可以接收第三请求。
在操作S712中,第二存储装置100_2可以响应于第三请求而发送第三响应。例如,第二存储装置100_2可以产生包括指示视频数据的主体的“HTTP 200OK”消息”(即,第三响应)。第一用户设备UE1可以接收第三响应。
图13A至图13C是用于描述根据流服务器的控制的存储装置的操作的示图。为了附图的简洁和为了便于描述,将省略一些部件,但是本公开不限于此。
参照图13A至图13C,在实施例中,流服务器20和存储装置100可以基于给定的接口标准彼此通信。给定的接口标准可以是NVMe接口标准,但本公开不限于此。存储装置100可以包括存储控制器110和非易失性存储器(NVM)装置120。存储控制器110可以包括缓冲存储器113。
根据实施例,缓冲存储器113可以包括第一区域RG1和第二区域RG2。第一区域RG1可以被配置为存储与在存储控制器110上驱动的内部应用相关联的信息或程序代码。第二区域RG2可以被配置为存储由在存储控制器110上驱动的内部应用管理或使用的数据。
在实施例中,第一区域RG1和第二区域RG2可以在缓冲存储器113中被物理地或逻辑地划分。在实施例中,第一区域RG1和第二区域RG2可以由存储控制器110划分或管理,并且可以将关于第一区域RG1和第二区域RG2的信息提供给流服务器20。在实施例中,第一区域RG1和第二区域RG2可以由流服务器20管理或划分。
在实施例中,流服务器20可以被配置为加载将要在存储装置100上运行的内部应用。例如,如图13A所示,流服务器20可以包括第一应用APP1或与第一应用APP1相关联的程序代码。流服务器20可以通过将加载命令LOAD和第一应用APP1发送至存储控制器110来将第一应用APP1加载到存储控制器110的缓冲存储器113上(阶段A1)。存储控制器110可以驱动存储在缓冲存储器113的第一区域RG1中的第一应用APP1。
可替换地,如图13B所示,第一应用APP1可以存储在非易失性存储器(NVM)装置120中。在这种情况下,流服务器20可以将加载命令LOAD发送至存储控制器110(阶段B1)。响应于加载命令LOAD,存储控制器110可以将存储在非易失性存储器装置120中的第一应用APP1加载到缓冲存储器113的第一区域RG1上(阶段B2)。
在实施例中,在流服务器20的控制下,存储控制器110可以被配置为驱动内部应用以执行各种操作。例如,如图13C所示,流服务器20可以将运行命令EXE发送至存储控制器110(阶段D1)。运行命令EXE可以是用于由存储控制器110启动第一应用APP1的执行的命令。存储控制器110可以响应于运行命令EXE而运行第一应用APP1。例如,流服务器20可以通过PED消息将从多个用户设备UE1至UEm接收的请求传输至存储装置100。流服务器20可以基于参照图1至12描述的方法,向多个用户设备UE1至UEm提供流服务。存储装置100可以驱动被配置为执行各种操作(例如,工作负载分布操作和调度操作)的内部应用。
图14是示出根据本公开的实施例的流系统的框图。参照图1和14,流系统1000可以包括多个用户设备(或客户端设备)UE1至UEm、网络NT、存储集群1100。存储集群1100可以包括多个存储装置1200_1至1200_n。
图1的流系统10可以包括流服务器20。相反,图14的流系统1000可以不包括流服务器。流系统1000可以是无服务器系统。多个用户设备UE1至UEm可以通过网络NT将请求发送至存储集群1100。多个用户设备UE1至UEm可以直接与存储集群1100通信,而不受到流服务器的干预。多个存储装置100_1至100_n可以基于参照图1至13描述的方法向多个用户设备UE1至UEm提供流服务。
图15是详细示出图1的流系统的框图。参照图1、图4和图15,流系统10可以包括多个用户设备UE1至UEm、网络NT、流服务器20和存储集群30。存储集群1100可以包括多个存储装置100_1至100_n。多个存储装置100_1至100_n中的每一个可以包括SDN管理器118。SDN管理器118可以包括控制面CP。
在实施例中,网络NT可以包括多个以太网固态驱动器E-SSD(或多个存储装置)。以太网SSD可以包括数据面DP、SSD控制器CTRL、以及非易失性存储器NVM。为了便于描述,将省略与上述部件相关联的额外描述以避免冗余。
图4的网络NT可以包括多个交换机SW。相反,图15的网络NT可以包括多个以太网SSD E-SSD。多个以太网SSD E-SSD可以起到存储集群30的高速缓存的角色。以太网SSD E-SSD可以将存储在多个存储装置100_1至100_n中的内容(即,视频数据)的一部分存储在非易失性存储器NVM中。替代存储集群30,以太网SSD E-SSD可以将存储在非易失性存储器NVM中的内容部分提供给多个用户设备UE1至UEm。
根据本公开,存储装置可以驱动从流服务器下载的应用,可以设置网络传输路径,并且向用户设备提供内容。这样一来,提供了提供改进的QoE的存储装置、存储装置的操作方法以及包括存储装置的流系统。
尽管已经参照本公开的实施例描述了本公开,但是对于本领域的普通技术人员来说显而易见的是,在不脱离所附权利要求中阐述的本公开的精神和范围的情况下,可以对本公开进行各种改变和修改。
Claims (20)
1.一种存储装置,包括:
非易失性存储器装置;以及
存储控制器,其被配置为控制所述非易失性存储器装置,所述存储控制器包括:
体验质量管理器,其被配置为基于存储装置信息和网络信息对从外部用户设备接收的请求进行调度;以及
软件定义网络管理器,其被配置为设置到所述外部用户设备的网络传输路径,所述网络传输路径与对应于所述请求的视频数据相关联。
2.根据权利要求1所述的存储装置,其中,所述存储控制器对所述请求执行工作负载平衡操作。
3.根据权利要求2所述的存储装置,其中,所述存储控制器还包括服务器和网络辅助基于HTTP的动态自适应流SAND管理器,其被配置为处理基于SAND的消息;并且其中,所述存储控制器通过所述SAND管理器将参数增强递送消息发送至外部存储装置,以执行所述工作负载平衡操作。
4.根据权利要求2所述的存储装置,其中,所述存储控制器被配置为驱动从外部流服务器下载的应用,以执行所述工作负载平衡操作。
5.根据权利要求1所述的存储装置,
其中,所述存储控制器还包括缓冲存储器;
其中,所述存储装置信息包括缓冲信息和延迟信息;
其中,所述缓冲信息包括关于从所述非易失性存储器装置加载到所述缓冲存储器上的视频数据的缓冲占用率的信息;并且
其中,所述延迟信息包括关于将所述视频数据从所述非易失性存储器装置加载到所述缓冲存储器上所花费的时间的信息。
6.根据权利要求5所述的存储装置,其中,所述存储控制器还包括:
加速器,其被配置为对所述视频数据执行编码操作、压缩操作和/或转码操作;并且
其中,所述延迟信息包括关于所述加速器执行所述编码操作、所述压缩操作和/或所述转码操作所花费的时间的信息。
7.根据权利要求1所述的存储装置,其中,所述软件定义网络管理器包括被配置为产生网络连接信息的控制面;并且其中,所述软件定义网络管理器将所述网络连接信息发送至外部交换机的数据面,以建立所述存储装置与所述外部用户设备之间的连接。
8.根据权利要求1所述的存储装置,其中,所述存储控制器还包括:
SAND管理器,其被配置为处理基于SAND的消息;并且
其中,所述SAND管理器被配置为:(i)将参数增强接收消息发送至所述外部用户设备,(ii)将参数增强递送消息发送至外部流服务器和/或外部存储装置,以及(iii)从所述外部用户设备接收度量和状态消息。
9.根据权利要求1所述的存储装置,
其中,所述存储控制器还包括缓冲存储器;
其中,所述体验质量管理器包括:
缓冲监测电路,其被配置为监测缓冲占用率,所述缓冲占用率指示了与所述请求相对应的视频数据从所述非易失性存储器装置加载到所述缓冲存储器上的数据量;
延迟预测电路,其被配置为运算非易失性存储器存取时间,所述非易失性存储器存取时间指示了在所述视频数据从所述非易失性存储器装置加载到所述缓冲存储器上的期间所经过的时间;以及
调度器,其被配置为基于调度参数对所述请求进行调度;并且
其中,所述调度参数包括所述请求、所述网络信息、所述非易失性存储器存取时间和所述缓冲占用率中的至少一个。
10.根据权利要求9所述的存储装置,其中,所述调度器向所述调度参数分配权重,并且基于所述调度参数和所述权重对所述请求进行调度。
11.根据权利要求1所述的存储装置,
其中,所述存储控制器还包括主机接口电路;
其中,所述主机接口电路包括:
以太网接口电路,其被配置为通过网络与所述外部用户设备通信;以及
非易失性存储快速接口电路,其被配置为与外部流服务器通信。
12.一种操作存储装置的方法,所述存储装置在其中具有非易失性存储器装置和存储控制器,所述方法包括:
接收由外部用户设备提供的要求视频数据的请求;
基于网络信息和存储装置信息对所述请求进行调度;
从所述非易失性存储器装置读取与所述请求相对应的视频数据;
确定到所述外部用户设备的网络传输路径,所述网络传输路径与所述视频数据相关联;并且
将包括所述视频数据的响应发送至所述外部用户设备。
13.根据权利要求12所述的方法,其中,所述接收请求包括:
从外部流服务器接收参数增强递送消息;
从所述外部用户设备接收WebSocket连接请求;
将包括关于WebSocket连接接受的信息的响应发送至所述外部用户设备;
从所述外部用户设备接收包括客户端能力的HTTP GET请求;
将参数增强接收消息发送至所述外部用户设备;并且
从所述外部用户设备接收包括指示所述视频数据的头部的HTTP GET请求。
14.根据权利要求13所述的方法,还包括:
从所述外部用户设备接收包括改变的客户端能力的HTTP GET请求;
将参数增强递送消息发送至外部交换机;
从所述外部用户设备接收包括指示第二视频数据的头部的HTTP GET请求;并且
将包括所述第二视频数据的响应发送至所述外部用户设备。
15.根据权利要求12所述的方法,还包括:
接收从所述外部用户设备提供的要求视频数据的第二请求;
与外部存储装置通信以执行工作负载平衡操作;
发送将所述第二请求重新分配给外部存储装置的参数增强递送消息;并且
通过参数增强递送消息通知外部流服务器所述第二请求被重新分配给所述外部存储装置。
16.根据权利要求12所述的方法,
其中,所述存储装置信息包括缓冲信息和延迟信息;
其中,所述缓冲信息包括关于从所述非易失性存储器装置加载到所述存储控制器的缓冲存储器上的视频数据的缓冲占用率的信息;并且
其中,所述延迟信息包括关于将所述视频数据从所述非易失性存储器装置加载到所述缓冲存储器上所花费的时间的信息。
17.一种存储装置,包括:
非易失性存储器装置;和
存储控制器,其被配置为控制所述非易失性存储器装置,所述存储控制器包括:
体验质量管理器,其被配置为基于存储装置信息和网络信息对从外部用户设备接收的请求执行调度操作;以及
软件定义网络管理器,其被配置为执行到所述外部用户设备的网络传输路径选择操作,所述网络传输路径选择操作与对应于所述请求的视频数据相关联,
其中,所述存储控制器被配置为驱动从外部流服务器安装的应用,以对所述请求执行所述调度操作和所述网络传输路径选择操作。
18.根据权利要求17所述的存储装置,
其中,所述存储控制器还包括缓冲存储器,
其中,所述存储装置信息包括缓冲信息和延迟信息;
其中,所述缓冲信息包括关于从所述非易失性存储器装置加载到所述缓冲存储器上的视频数据的缓冲占用率的信息;并且
其中,所述延迟信息包括关于将所述视频数据从所述非易失性存储器装置加载到所述缓冲存储器上所花费的时间的信息,
其中,所述体验质量管理器被配置为:
监测关于所述请求相对应的视频数据的缓冲信息;
运算与所述延迟信息相对应的非易失性存储器存取时间;以及
基于调度参数对所述请求进行调度,
其中,所述调度参数包括所述请求、所述网络信息、所述非易失性存储器存取时间和所述缓冲占用率中的至少一个。
19.根据权利要求17所述的存储装置,其中,所述软件定义网络管理器包括被配置为产生网络连接信息的控制面;并且其中,所述软件定义网络管理器将所述网络连接信息发送至外部交换机的数据面,以建立所述存储装置与所述外部用户设备之间的连接。
20.根据权利要求17所述的存储装置,其中,所述存储控制器还包括:
服务器和网络辅助基于HTTP的动态自适应流SAND管理器,其被配置为处理基于SAND的消息;并且
其中,所述SAND管理器被配置为:(i)将参数增强接收消息发送至所述外部用户设备,(ii)将参数增强递送消息发送至外部流服务器和/或外部存储装置,以及(iii)从所述外部用户设备接收度量和状态消息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0077544 | 2022-06-24 | ||
KR1020220077544A KR102589694B1 (ko) | 2022-06-24 | 2022-06-24 | 스토리지 장치, 스토리지 장치의 동작 방법, 스토리지 장치를 포함하는 스트리밍 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117294686A true CN117294686A (zh) | 2023-12-26 |
Family
ID=88506182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310703357.5A Pending CN117294686A (zh) | 2022-06-24 | 2023-06-14 | 存储装置、操作存储装置的方法和包括存储装置的流系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230421513A1 (zh) |
KR (1) | KR102589694B1 (zh) |
CN (1) | CN117294686A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12063161B1 (en) * | 2023-05-31 | 2024-08-13 | Cisco Technology, Inc. | Discovering multi-application workflows to identify potential qoe- impacting issues |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101590590B1 (ko) * | 2014-07-04 | 2016-02-02 | 아토리서치(주) | 소프트웨어 정의 네트워크에서 제어 장치 및 그 동작 방법 |
CN109964467B (zh) * | 2016-11-10 | 2022-02-25 | 索尼集团公司 | 支持流传输的方法、流传输客户端、节点、通信系统 |
KR20220084844A (ko) * | 2020-12-14 | 2022-06-21 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
-
2022
- 2022-06-24 KR KR1020220077544A patent/KR102589694B1/ko active IP Right Grant
-
2023
- 2023-05-09 US US18/314,341 patent/US20230421513A1/en active Pending
- 2023-06-14 CN CN202310703357.5A patent/CN117294686A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230421513A1 (en) | 2023-12-28 |
KR102589694B1 (ko) | 2023-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10142405B2 (en) | Multi-CDN digital content streaming | |
EP3682617B1 (en) | Distributed multi-datacenter video packaging system | |
US10523732B2 (en) | Multi-CDN digital content streaming | |
US9225668B2 (en) | Priority driven channel allocation for packet transferring | |
US7957358B2 (en) | Apparatus, method, and computer readable medium for transmitting data via a plurality of network interfaces | |
US9092259B2 (en) | Apparatus and method for controlling a resource utilization policy in a virtual environment | |
RU2571732C2 (ru) | Управляющее устройство и способ управления передачей потока видеоданных по сети на сетевое пользовательское устройство | |
EP4296842A1 (en) | Storage devices, methods of operating storage devices, and streaming systems including storage devices | |
WO2014022492A1 (en) | A method to allocate packet buffers in a packet transferring system | |
CN117294686A (zh) | 存储装置、操作存储装置的方法和包括存储装置的流系统 | |
JP2011215794A (ja) | 分散ストレージシステム及びプログラム | |
KR20220084844A (ko) | 스토리지 장치 및 스토리지 장치의 동작 방법 | |
CN113038190A (zh) | 内容分发网络的调度方法和内容分发网络的调度装置 | |
JP4972710B2 (ja) | レートシェーピング方法及びレートシェーピング装置 | |
CN112714081A (zh) | 一种数据处理方法及其装置 | |
CN111526169A (zh) | 通过网络发送数据的方法、介质、服务器和计算机设备 | |
US9774512B1 (en) | Measuring server availability and managing traffic in adaptive bitrate media delivery | |
US11405330B2 (en) | System and method for bandwidth optimization with support for multiple links | |
US9525713B1 (en) | Measuring server availability and managing traffic in adaptive bitrate media delivery | |
JP2013504923A (ja) | 複数のセッション設定方法およびこれを用いるノード | |
EP4202628A1 (en) | Systems, methods, and devices for content distribution using storage device with network interface | |
US11726659B2 (en) | Systems, methods, and devices for data storage with specified data transfer rate | |
WO2022254730A1 (ja) | 映像配信制御装置、映像配信制御方法、及びプログラム | |
US11722707B2 (en) | Dynamic content steering based on server and client device capabilities | |
WO2024095070A1 (en) | Reducing network congestion using a load balancer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |