CN111221753A - 多主机控制器及包括所述多主机控制器的半导体装置 - Google Patents
多主机控制器及包括所述多主机控制器的半导体装置 Download PDFInfo
- Publication number
- CN111221753A CN111221753A CN201911119246.XA CN201911119246A CN111221753A CN 111221753 A CN111221753 A CN 111221753A CN 201911119246 A CN201911119246 A CN 201911119246A CN 111221753 A CN111221753 A CN 111221753A
- Authority
- CN
- China
- Prior art keywords
- host interface
- virtual
- transfer request
- transfer
- requests
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 53
- 238000012546 transfer Methods 0.000 claims abstract description 178
- 230000015654 memory Effects 0.000 claims abstract description 40
- 230000002776 aggregation Effects 0.000 claims description 35
- 238000004220 aggregation Methods 0.000 claims description 35
- 230000005540 biological transmission Effects 0.000 claims description 23
- 238000000034 method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 2
- 241001522296 Erithacus rubecula Species 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000007726 management method Methods 0.000 description 92
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- FCLYQYOJLQDQNA-BNWDXEGFSA-N 4-Deacetylneosolaniol Chemical compound C([C@@]12[C@]3(C)[C@H](O)[C@@H](O)[C@H]1O[C@@H]1C=C(C)[C@@H](O)C[C@@]13COC(=O)C)O2 FCLYQYOJLQDQNA-BNWDXEGFSA-N 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Credit Cards Or The Like (AREA)
- Multi Processors (AREA)
Abstract
一种半导体装置包括:多个输入/输出客户机;多主机控制器,包括物理主机接口、虚拟主机接口、仲裁器;以及系统存储器。仲裁器通过物理主机接口从输入/输出客户机中的第一个输入/输出客户机接收第一传送请求且通过虚拟主机接口从输入/输出客户机中的第二个输入/输出客户机接收第二传送请求,并对第一传送请求及第二传送请求进行仲裁。系统存储器存储第一传送请求的第一传送请求列表及第二传送请求的第二传送请求列表,其中第一传送请求列表与第二传送请求列表包括相同数目的槽位。也提供一种多主机控制器。
Description
[相关申请的交叉参考]
本申请主张在2018年11月15日在韩国知识产权局提出申请的韩国专利申请第10-2018-0140694号的优先权,所述韩国专利申请的公开内容全文并入本申请供参考。
技术领域
本发明涉及一种多主机控制器及一种包括所述多主机控制器的半导体装置,且更具体来说,涉及一种提供虚拟化技术的多主机控制器及一种包括所述多主机控制器的半导体装置。
背景技术
虚拟化技术可向多个访客操作系统(guest operating system)提供物理装置。虚拟化技术可被实施成全虚拟化技术(full-virtualization technology)、半虚拟化技术(para-virtualization technology)等,在全虚拟化技术中,访客操作系统可直接提供用于控制物理装置的环境,半虚拟化技术则要求在访客操作系统与物理装置之间存在中间操作系统以用于通过访客操作系统对物理装置的使用请求进行处理。
与半虚拟化技术不同,全虚拟化技术因不需要修改访客操作系统内核而具有很大的优势,但为确保可扩展性(scalability)(例如支持各种类型及数目的访客操作系统),实施复杂性高且成本高。
这种虚拟化技术也可应用于多主机环境,且还可开发多主机控制器的接口。
发明内容
本发明的方面提供一种能够改善多主机系统的性能的半导体装置。
本发明的方面还提供一种能够改善多主机系统的性能的多主机控制器。
然而,本发明的方面并不限于本文中所述的方面。通过参照以下给出的详细说明,对本发明所属领域中的普通技术人员而言,本发明的以上及其他方面将变得更显而易见。
根据本发明概念的示范性实施例,提供一种半导体装置。所述半导体装置包括:多个输入/输出客户机;虚拟机监视器;多主机控制器以及系统存储器。所述多主机控制器包括物理主机接口、至少一个虚拟主机接口、以及仲裁器。所述物理主机接口及所述至少一个虚拟主机接口各自将所述多个输入/输出客户机中的对应的一者介接到所述虚拟机监视器。所述仲裁器被配置成从所述物理主机接口接收第一传送请求以及从所述至少一个虚拟主机接口接收第二传送请求,对所述第一传送请求及所述第二传送请求进行仲裁。所述系统存储器被配置成存储所述第一传送请求的第一传送请求列表及所述第二传送请求的第二传送请求列表。所述第一传送请求列表与所述第二传送请求列表包括彼此相同数目的槽位。
根据本发明概念的另一示范性实施例,提供一种多主机控制器。所述多主机控制器包括:物理主机接口,传送n个第一传送请求;第一虚拟主机接口,传送n个第二传送请求;第二虚拟主机接口,传送n个第三传送请求;以及仲裁器,接收3n个第一传送请求到第三传送请求,且排列及传送3n个第一传送请求到第三传送请求。
根据本发明概念的再一示范性实施例,提供一种半导体装置。所述半导体装置包括:闪存装置;以及系统级芯片(SoC)装置,向所述闪存装置传送命令。所述系统级芯片装置包括多个输入/输出客户机、虚拟机监视器、多主机控制器以及系统存储器。所述多主机控制器包括物理主机接口、至少一个虚拟主机接口、以及仲裁器。所述物理主机接口及所述至少一个虚拟主机接口各自将所述多个输入/输出客户机中的对应的一者介接到所述虚拟机监视器。所述仲裁器被配置成从所述物理主机接口接收第一传送请求且从所述至少一个虚拟主机接口接收第二传送请求,并对所述第一传送请求及所述第二传送请求进行仲裁。所述系统存储器被配置成存储所述第一传送请求的第一传送请求列表及所述第二传送请求的第二传送请求列表。
根据本发明概念的又一示范性实施例,提供一种装置,所述装置包括:闪存装置;多个输入/输出(I/O)客户机,各自被配置成与所述闪存装置交换数据;虚拟机监视器,被配置成为所述多个输入/输出客户机提供虚拟化功能;多个接口,其中所述接口中的每一者被配置成介接在所述输入/输出客户机中的对应的一者与所述虚拟机监视器之间;仲裁器,被配置成从所述多个接口中的第一接口接收第一传送请求且从所述多个接口中的第二接口接收第二传送请求,且还被配置成对所述第一传送请求及所述第二传送请求进行仲裁;以及系统存储器,被配置成存储所述第一传送请求的第一传送请求列表及所述第二传送请求的第二传送请求列表。所述第一传送请求列表与所述第二传送请求列表包括彼此相同数目的传送请求槽位。
附图说明
通过参照附图详细阐述本发明的示范性实施例,本发明的以上及其他方面以及特征将变得更显而易见。
图1是用于阐释根据一些实施例的半导体装置的方块图。
图2是用于详细阐释图1的多主机控制器的方块图。
图3a是用于详细阐释图2的多主机控制器的仲裁器的一个实施例的方块图。
图3b是用于详细阐释图2的多主机控制器的仲裁器的另一实施例的方块图。
图4是用于阐释图2的系统存储器中的传送请求列表及工作管理请求列表的方块图。
图5是用于详细阐释图4的第一传送请求列表的方块图。
图6是用于详细阐释图4的第一工作管理请求列表的方块图。
图7是根据一些实施例的包括半导体装置的计算装置系统的系统的方块图。
图8是用于阐释根据一些实施例的半导体装置的中断聚合的方块图。
图9是用于阐释根据一些实施例的半导体装置的错误报告的方块图。
图10是用于阐释根据一些实施例的半导体装置的错误报告的方块图。
[符号的说明]
10:系统级芯片(SOC)装置;
20:闪存装置;
100:多主机控制器;
110:物理主机接口;
120:虚拟主机接口/第一虚拟主机接口;
130:虚拟主机接口/第二虚拟主机接口;
140:虚拟主机接口/第三虚拟主机接口;
150、150_1:仲裁器;
151:排程器;
152:重新映射模块;
153:重新映射表;
154:中断映射逻辑;
155:错误报告逻辑;
157a:中断聚合逻辑/第一中断聚合逻辑;
157b:中断聚合逻辑/第二中断聚合逻辑;
157c:中断聚合逻辑/第三中断聚合逻辑;
157d:中断聚合逻辑第四中断聚合逻辑;
160:传输协议模块;
200:系统存储器;
210:第一传送请求列表;
211:第一工作管理请求列表;
220:第二传送请求列表;
221:第二工作管理请求列表;
230:第三传送请求列表;
231:第三工作管理请求列表;
240:第四传送请求列表;
241:第四工作管理请求列表;
300:虚拟机监视器;
410:第一I/O客户机/I/O客户机;
420:第二I/O客户机/I/O客户机;
430:第三I/O客户机/I/O客户机;
440:第四I/O客户机/I/O客户机;
500:互连件;
1000:中央处理器;
1100:高速缓存存储器;
1200:处理器;
1300:显示控制器;
1400:视频处理器;
1500:显示器;
1600:存储器系统;
1610:存储器控制器;
1620:存储器;
1700:网络接口装置;
1710:网络;
1800:输入装置;
1900:输出装置;
2000:系统总线;
E1:第一错误;
E2:第二错误/错误;
IA1:第一中断聚合;
IA2:第二中断聚合;
IA3:第三中断聚合;
IA4:第四中断聚合;
INT:中断;
TMR:工作管理请求;
TMR1:第一工作管理请求;
TMR2:第二工作管理请求;
TMR3:第三工作管理请求;
TMR4:第四工作管理请求;
TR:传送请求;
TR1:第一传送请求;
TR2:第二传送请求;
TR3:第三传送请求;
TR4:第四传送请求;
Vid:虚拟ID;
Vid1:第一虚拟ID;
Vid2:第二虚拟ID;
Vid3:第三虚拟ID;
Vid4:第四虚拟ID。
具体实施方式
下文中,将参照图1、图2、图3a、图3b及图4到图6阐述根据一些实施例的半导体装置。
图1是用于阐释根据一些实施例的半导体装置的方块图。
参照图1,根据一些实施例的半导体装置包括系统级芯片(System-on-a-Chip,SOC)装置10及闪存装置20。
SoC装置10可控制对单个闪存装置20进行的输入/输出操作。SoC装置10可向闪存装置20提供要写入的数据以及从闪存装置20读取数据。
闪存装置20可为非易失性数据存储介质,在所述非易失性数据存储介质中,数据可进行电写入及擦除。闪存装置20可包括各种基于闪存的存储装置(包括存储卡、固态驱动器(solid state drive,SSD)及通用串行总线(universal serial bus,USB)闪存驱动器)中的任意者。
基于闪存的存储装置可提供与动态随机存取存储器(dynamic random accessmemory,DRAM)相比快的读取时间及写入时间,同时提供比传统的硬盘驱动器(hard diskdrive,HDD)高的耐用性及抗冲击性。
为促进基于闪存的存储装置的广泛使用,已开发出或目前正在开发许多标准。这些标准中的一种标准是由联合电子装置工程委员会(Joint Electron DeviceEngineering Council,JEDEC)开发的通用闪存(universal flash storage,UFS),其用于例如智能手机及平板计算机等移动装置中的基于闪存的存储装置。
UFS采用命令协议及小型计算机系统接口(small computer system interface,SCSI)架构模型,所述小型计算机系统接口(SCSI)架构模型支持具有命令队列(commandqueue)的特性的多命令(multi-commands),从而实现多线程编程范例(multi-threadprogramming paradigm)。
JEDEC开发的另一标准是嵌入式多媒体卡(embedded MultiMediaCard,eMMC)标准,所述嵌入式多媒体卡提供简化的应用接口设计、小的封装尺寸及低的功耗。基于eMMC闪存的存储装置是当前移动装置中的主要存储形式之一。
闪存装置20可采用基于闪存的存储装置标准,例如UFS或eMMC。然而,本实施例并非仅限于此。
闪存装置20还可被构建成邻近SoC装置10。作为另外一种选择,闪存装置20也可实现耦合到SoC装置10的可拆卸存储装置的功能。
具体来说,SoC装置10可包括多个I/O客户机410、420、430及440、虚拟机监视器300、多主机控制器(multi host controller,MHC)100、系统存储器200以及互连件500。
所述多个I/O客户机410、420、430及440可包括第一I/O客户机410、第二I/O客户机420、第三I/O客户机430及第四I/O客户机440。尽管在图式中示出四个I/O客户机,但此仅为实例,且本实施例并非仅限于此。举例来说,根据本实施例的半导体装置可包括八个或十六个I/O客户机,而不是四个。
所述多个I/O客户机410、420、430及440可分别包括在SoC装置10的处理器上和/或SoC装置10的子系统上执行的主机软件实体(host software entity)(例如,第一I/O客户机410)。
虚拟机监视器300可由SoC装置10的处理器执行。虚拟机监视器300可为驻留在系统存储器200或其他存储器中的软件模块。
虚拟机监视器300可对多个I/O客户机410、420、430及440提供虚拟化功能及管理。也就是说,可通过虚拟机监视器300创建虚拟化环境,在所述虚拟化环境中,所述多个I/O客户机410、420、430及440可各别地与单个闪存装置20交互。
基于闪存的存储装置的标准(例如通用闪存及eMMC)一般被设计成由单个输入/输出(I/O)客户机进行管理及使用。
然而,根据一些实施例的图1的半导体装置可利用虚拟化环境同时支持所述多个I/O客户机410、420、430及440。所述多个I/O客户机410、420、430及440可为例如主机或处理器子系统。
在这种虚拟化环境中,所述多个I/O客户机410、420、430及440可与闪存装置20交互,仿佛它们是闪存装置20的唯一主机一样。也就是说,I/O客户机410、420、430及440中的每一者可不识别其他I/O客户机且可一对一地与闪存装置20交互。
同样,当与所述多个I/O客户机410、420、430及440进行通信时,闪存装置20可仿佛与单个I/O客户机进行通信一样进行操作。
多主机控制器100可充当所述多个I/O客户机410、420、430及440与闪存装置20之间的中介。具体来说,多主机控制器100可通过虚拟机监视器300向所述多个I/O客户机410、420、430及440提供虚拟接口。
为此,多主机控制器100可提供包括多个“槽位”的传送请求列表(transferrequest list,TRL)(或者包括多个任务描述语(task descriptor,TD)的任务描述语列表(task descriptor list,TDL))。所述多个I/O客户机410、420、430及440可利用这些槽位来向闪存装置20发出例如读取/写入事务(read/write transaction)等传送请求(transferrequest,TR)。此将在以下更详细地进行阐述。
系统存储器200可作为存在于SoC装置10中的存储器来存储软件模块或其他数据。虚拟机监视器300也可驻留在系统存储器200中。此外,前述传送请求列表也可存储在系统存储器200中。
系统存储器200可向多主机控制器100提供所存储的传送请求列表,且多主机控制器100可通过系统存储器200从所述多个I/O客户机410、420、430及440接收传送请求。
互连件500可实行闪存装置20与多主机控制器100之间的物理通信。互连件500可用作用于对数据单元进行处理的流水线(pipeline)。互连件500可包括例如传送层,例如移动行业处理器接口统一协议(Mobile Industry Processor Interface,MIPI)UniPro及MIPI M-物理层(M-physical layer,M-PHY)。然而,本实施例并非仅限于此。
图2是用于详细阐释图1的多主机控制器的方块图。
参照图2,多主机控制器100可包括物理主机接口110、第一虚拟主机接口120、第二虚拟主机接口130、第三虚拟主机接口140、仲裁器150以及传输协议模块160。
物理主机接口110可为能够与虚拟机监视器300进行通信的接口。另外,物理主机接口110可为能够与所述多个I/O客户机410、420、430及440的对应的部分进行通信的接口。每一接口包括特殊功能寄存器(special function register,SFR),且可实行门铃执行(doorbell execution)。
物理主机接口110可向仲裁器150传送第一传送请求TR1、第一工作管理请求TMR1及第一虚拟标识符(identification,ID)Vid1。
物理主机接口110可负责管理互连件500。物理主机接口110例如可判断互连件500的低功耗模式是否被激活,且可控制互连件500的操作。
第一虚拟主机接口120、第二虚拟主机接口130及第三虚拟主机接口140是用于由虚拟机监视器300形成的虚拟环境的接口。也就是说,第一虚拟主机接口120、第二虚拟主机接口130及第三虚拟主机接口140可为可分别与所述多个I/O客户机410、420、430及440的对应的部分进行通信的接口。
尽管在图式中示出三个虚拟主机接口,但此仅为实例,且本实施例并非仅限于此。也就是说,在本实施例中,虚拟主机接口的数目可变化。
第一虚拟主机接口120可向仲裁器150传送第二传送请求TR2、第二工作管理请求TMR2及第二虚拟ID Vid2。第二虚拟主机接口130可向仲裁器150传送第三传送请求TR3、第三工作管理请求TMR3及第三虚拟ID Vid3。第三虚拟主机接口140可向仲裁器150传送第四传送请求TR4、第四工作管理请求TMR4及第四虚拟ID Vid4。
如上所述,第一传送请求TR1到第四传送请求TR4可为例如闪存装置20上的读取/写入事务等请求。传送请求可通过位于系统存储器200中的传送请求列表的槽位来执行。
物理主机接口110及虚拟主机接口120到140可分别利用传送请求列表的所有槽位。也就是说,例如,当传送请求列表的槽位被定义为32个时,物理主机接口110及虚拟主机接口120到140中的每一者可利用所有32个槽位。
因此,在物理主机接口110及虚拟主机接口120到140的总数目为4的情况下,仲裁器150接收到的传送请求的数目总共可为32*4=128个。
因此,物理主机接口110及虚拟主机接口120到140并不关心其他主机接口,而是可不受限制地传送它们自己的传送请求。
仲裁器150可对从物理主机接口110及虚拟主机接口120到140传送的传送请求TR进行仲裁。也就是说,仲裁器150可对从物理主机接口110及虚拟主机接口120到140接收到的传送请求TR的处理次序进行重新排列、重新定位、重新映射以及传送。举例来说,在接收到4*32个传送请求时,仲裁器150可将32个传送请求中的每一者传送四次。
此时,所传送的32个传送请求TR中的每一者可能不是从同一主机接口传送的传送请求。也就是说,整组传送请求可被混合及重新定位。
仲裁器150可不仅对传送请求TR实行相同的工作,而且可对工作管理请求TMR实行相同的工作。与传送请求(TR)不同,包括第一工作管理请求TMR1到第四工作管理请求TMR4的工作管理请求TMR可为查询或非操作(non-operation,NOP)命令。工作管理请求可通过位于系统存储器200中的工作管理请求列表的槽位来执行。
物理主机接口110及虚拟主机接口120到140可分别利用工作管理请求列表的所有槽位。也就是说,例如,当定义八个工作管理请求列表槽位时,物理主机接口110及虚拟主机接口120到140中的每一者可利用所有八个槽位。
因此,在物理主机接口110及虚拟主机接口120到140的总数目为4的情况下,仲裁器150接收到的工作管理请求的数目总共可为8*4=32个。
因此,物理主机接口110及虚拟主机接口120到140并不关心其他主机接口,而是可分别不受限制地传送它们自己的工作管理请求。
仲裁器150可对从物理主机接口110及虚拟主机接口120到140传送的工作管理请求TMR进行仲裁。也就是说,仲裁器150可对从物理主机接口110及虚拟主机接口120到140接收到的工作管理请求TMR的处理次序进行重新排列、重新定位、重新映射以及传送。
举例来说,在接收到4*8个工作管理请求时,仲裁器150可将8个工作管理请求中的每一者传送四次。此时,所传送的8个工作管理请求TMR可能不是从同一主机接口传送的工作管理请求。也就是说,整组工作管理请求可被混合及重新定位。
如果物理主机接口110及虚拟主机接口120到140分别各自利用具有总共32个槽位的传送请求列表及具有总共8个槽位的工作管理列表,则物理主机接口110及虚拟主机接口120到140的软件可能彼此相互不兼容,且可能具有不同的结构。
与此不同,由于根据一些实施例的图1的半导体装置的物理主机接口110及虚拟主机接口120到140可类似地利用传送请求列表及工作管理请求列表的槽位,因此软件可彼此兼容。
因此,不需要单独开发物理主机接口110及虚拟主机接口120到140中的每一者的相应的软件,且相同的功能可通过单个软件来执行。
因此,可使软件的开发成本及开发周期最小化,并改善半导体装置的性能。
此外,与每一虚拟机对应的I/O客户机(即,物理主机接口110及虚拟主机接口120到140)并不是有限制地传送传送请求及工作管理请求,而是可完全传送传送请求及工作管理请求,因此可能对其性能不存在限制。
也就是说,所述多个I/O客户机410、420、430及440中的每一者被设计成传送32个传送请求及8个工作管理请求,但是可由传送请求列表及工作管理请求列表的受限槽位通过多次尝试而非一次尝试传送总共32个传送请求及8个工作管理请求。每次尝试之间相应地发生待机时间(standby time),且待机时间的发生可能会降低所述多个I/O客户机410、420、430及440中的每一者的整体性能。
然而,在根据本实施例的半导体装置中,由于物理主机接口110及虚拟主机接口120到140中的每一者可传送32个传送请求及8个工作管理请求,因此可不会发生多个I/O客户机410、420、430及440的性能下降。
也就是说,根据一些实施例的半导体装置并不限制虚拟主机接口120到140及物理主机接口110的接口,且相反,仲裁器150可对这些接口进行仲裁以改善整体操作性能。
传输协议模块160可从仲裁器150接收经重新排列的传送请求TR及工作管理请求TMR。传输协议模块160还可从仲裁器150接收虚拟ID Vid。虚拟ID Vid可包括第一虚拟IDVid1、第二虚拟ID Vid2及第三虚拟ID Vid3。
传输协议模块160可为例如微传输协议(μTransport Protocol,μTP)引擎或eMMC传输协议引擎。传输协议模块160可通过互连件500来与闪存装置20交换命令及响应。
图3a是用于详细阐释图2的仲裁器的一个实施例的方块图。
仲裁器150可包括排程器151、重新映射模块152及重新映射表153。
排程器151可从物理主机接口110及虚拟主机接口120到140接收第一传送请求TR1到第四传送请求TR4、第一工作管理请求TMR1到第四工作管理请求TMR4以及第一虚拟IDVid1到第四虚拟ID Vid4。
排程器151可将第一传送请求TR1到第四传送请求TR4重新定位。举例来说,在第一传送请求TR1到第四传送请求TR4中的每一者的数目为32个的情况下,排程器151可重新定位总共128个传送请求,并一次排列32个传送请求。
排程器151可例如以轮转(round-robin)方式重新定位或重新排列第一传送请求TR1到第四传送请求TR4。作为另外一种选择,在根据一些实施例的图1的半导体装置中,排程器151可以另一种高效的方式重新定位或重新排列第一传送请求TR1到第四传送请求TR4。
类似地,排程器151可重新定位或重新排列第一工作管理请求TMR1到第四工作管理请求TMR4。举例来说,如果第一工作管理请求TMR1到第四工作管理请求TMR4中的每一者的数目为8个,则排程器151可重新定位或重新排列总共32个工作管理请求,并一次排列8个工作管理请求。
排程器151可例如以轮转方式重新定位第一传送请求TR1到第四传送请求TR4。然而,本实施例并非仅限于此。
重新映射模块152可从排程器151接收经重新定位的传送请求TR、经重新定位的工作管理请求TMR及虚拟ID Vid。
重新映射模块152可将相应的传送请求TR及工作管理请求TMR与虚拟ID Vid进行组合,并对它们进行重新映射。举例来说,当对从由第一虚拟ID Vid1识别的物理主机接口110传送的第一传送请求TR1的第一传送请求及从由第二虚拟ID Vid2识别的第一虚拟主机接口120传送的第二传送请求TR2的第一传送请求进行重新定位时,可能需要进行重新映射来进行识别,以使得对应于各个传送请求的槽位不会重叠。
重新映射模块152可产生重新映射表153。重新映射表153可为其中对经重新定位的传送请求TR及工作管理请求TMR与虚拟ID Vid进行匹配的表。
当存在来自闪存装置20的响应时,重新映射模块152可实行解映射。也就是说,由于重新映射模块152需要识别经重新定位的传送请求TR及工作管理请求TMR的响应被传送到哪个主机接口,因此可实行解映射。解映射可通过参照重新映射表153来执行。
重新映射模块152将完成解映射的传送请求TR及工作管理请求TMR的响应再次传送到排程器151,且排程器151可识别虚拟ID Vid以将响应传送到物理主机接口110及第一虚拟主机接口120到第三虚拟主机接口140中的正确的一个接口。
也就是说,排程器151及重新映射模块152可为用于将数目受标准限制的传送请求TR及工作管理请求TMR传送到较低传输协议模块160的模块。
举例来说,当物理主机接口110、第一虚拟主机接口120、第二虚拟主机接口130及第三虚拟主机接口140中的每一者向仲裁器150传送32个传送请求TR及8个工作管理请求TMR时,仲裁器150可实际接收128个传送请求TR及32个工作管理请求TMR。
由于此数目的传送请求TR及工作管理请求TMR可能不会被直接传送到传输协议模块160,因此需要由排程器151再次定义次序,且需要由重新映射模块152来标记每一传送请求TR及工作管理请求TMR属于哪个主机接口。通过这种排列,可由每一主机接口正常处理32个传送请求TR及8个工作管理请求TMR。
图3b是用于详细阐释图2的仲裁器的另一实施例的方块图。
参照图3b,根据一些实施例的图1的半导体装置的仲裁器150可仅包括排程器151,如仲裁器150_1所示。在根据一些实施例的图1的半导体装置的标准中,如果对于每一主机接口(或对于每一虚拟ID Vid)允许32个传送请求TR及8个工作管理请求TMR,则可不需要图3a的重新映射模块152及重新映射表153。
因此,在这种情况下,可能仅需要使用排程器151来对相应的传送请求TR及工作管理请求TMR的次序进行排序。
图4是用于阐释图2的系统存储器中的传送请求列表及工作管理请求列表的方块图。
第一传送请求列表210、第二传送请求列表220、第三传送请求列表230及第四传送请求列表240可存储在系统存储器200中。如上所述,传送请求列表可为用于执行每一传送请求的说明。
第一传送请求列表210可对应于物理主机接口110,且第二传送请求列表220可对应于第一虚拟主机接口120。第三传送请求列表230可对应于第二虚拟主机接口130,且第四传送请求列表240可对应于第三虚拟主机接口140。
类似地,第一工作管理请求列表211、第二工作管理请求列表221、第三工作管理请求列表231及第四工作管理请求列表241可存储在系统存储器200中。如上所述,工作管理请求列表可为对执行每一工作管理请求的说明。
第一工作管理请求列表211可对应于物理主机接口110,且第二工作管理请求列表221可对应于第一虚拟主机接口120。第三工作管理请求列表231可对应于第二虚拟主机接口130,且第四工作管理请求列表241可对应于第三虚拟主机接口140。
也就是说,对应于物理主机接口110及虚拟主机接口120到140的传送请求列表及工作管理请求列表可单独存在。这可归因于物理主机接口110及虚拟主机接口120到140中的每一者可利用传送请求列表及工作管理请求列表的所有槽位。
图5是用于详细阐释图4的第一传送请求列表的方块图。图5中所示的第一传送请求列表210可具有与其他传送请求列表(即,第二传送请求列表220、第三传送请求列表230及第四传送请求列表240)相同的结构。因此,为方便起见,将不单独阐述第二传送请求列表220、第三传送请求列表230及第四传送请求列表240。
参照图5,第一传送请求列表210的结构由总共32个槽位构成。当然,图5中所示的32个槽位仅为实例,且本实施例的第一传送请求列表210可具有另一数目的槽位。槽位的数目可根据标准来定义。
第一传送请求列表210可分别对应于第一传送请求TR1。也就是说,由物理主机接口110传送的第一传送请求TR1可对应于第一传送请求列表210的每一槽位。
如上所述,由于物理主机接口110传送与第一传送请求列表210的槽位数目相同数目的第一传送请求TR1,因此物理主机接口110可一对一地与闪存装置20交互,而与其他主机接口的存在无关。
虚拟主机接口120到140可类似于此。
在根据一些实施例的半导体装置中,对于物理主机接口110及虚拟主机接口120到140中的每一者,可存在单独的传送请求列表。这是由于物理主机接口110及虚拟主机接口120到140可充分利用传送请求列表的槽位。
图6是用于详细阐释图4的第一工作管理请求列表的方块图。图6中阐释的第一工作管理请求列表211可具有与其他工作管理请求列表(即,第二工作管理请求列表221、第三工作管理请求列表231及第四工作管理请求241)相同的结构。因此,为方便起见,将不单独阐述第二工作管理请求列表221、第三工作管理请求列表231及第四工作管理请求列表241。
参照图6,第一工作管理请求列表211的结构由总共八个槽位构成。当然,图6中所示的八个槽位仅为实例,且本实施例的第一工作管理请求列表211可具有其他数目的槽位。槽位的数目可根据标准来定义。
第一工作管理请求列表211可对应于第一工作管理请求TMR1。也就是说,由物理主机接口110传送的第一工作管理请求TMR1可对应于第一工作管理请求列表211的每一槽位。
如上所述,由于物理主机接口110传送与第一工作管理请求列表211的槽位数目相同数目的第一工作管理请求TMR1,因此物理主机接口110可一对一地与闪存装置20交互,而与其他主机接口的存在无关。
虚拟主机接口120到140可类似于此。
在根据一些实施例的半导体装置中,对于物理主机接口110及虚拟主机接口120到140中的每一者,可存在单独的工作管理请求列表。这是由于物理主机接口110及虚拟主机接口120到140可充分利用工作管理请求列表的槽位。
图7是根据一些实施例的包括半导体装置的计算装置系统的方块图。图7示出基于处理器的计算装置系统的实例,所述基于处理器的计算装置系统能够采用图1及图2的SoC装置10以及图1及图2中所示的多主机控制器100。
参照图7,所述计算装置系统包括包括至少一个处理器1200的一个或多个中央处理器(central processing unit,CPU)1000。中央处理器1000可包括耦合到处理器1200的高速缓存(cache)存储器1100以用于快速存取临时存储的数据。
中央处理器1000可耦合到系统总线2000以与包括在计算装置系统中的装置相互耦合。众所周知,中央处理器1000可通过经由系统总线2000交换地址、控制命令及数据信息来与其他装置进行通信。
举例来说,中央处理器1000可与存储器控制器1610(其是从装置(slave device)的实例)就总线事务请求进行通信。
另一方面,其他装置可连接到系统总线2000。如图7中所示,所述计算装置系统可包括存储器系统1600、至少一个输入装置1800、至少一个输出装置1900、至少一个网络接口装置1700以及至少一个显示控制器1300。
输入装置1800可包括输入键、开关、音频处理器等。然而,本实施例并非仅限于此。
输出装置1900可包括音频指示器、视频指示器、其他视觉指示器等。然而,本实施例并非仅限于此。
网络接口装置1700可为可向网络1710传送数据并从网络1710接收数据的任何装置。
网络1710可包括有线网络或无线网络、专用(private)网络或公共网络、局域网(local area network,LAN)、广域网、无线局域网络、蓝牙(Bluetooth,BT)及互联网。然而,本实施例并非仅限于此。
网络接口装置1700可被配置成支持特定类型的通信协议。
存储器系统1600可包括一个或多个存储器1620。
中央处理器1000还可被配置成通过系统总线2000访问显示控制器1300,以控制被传送到至少一个显示器1500的信息。
显示控制器1300可通过至少一个视频处理器1400向显示器1500传送信息。
此时,至少一个视频处理器1400可处理要以适合于显示器1500的格式显示的信息。
显示器1500可包括阴极射线管(cathode ray tube,CRT)、液晶显示器(liquidcrystal display,LCD)、发光二极管(light-emitting diode,LED)、等离子体显示器等。然而,本实施例并非仅限于此。
计算装置系统可包括例如机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、手机、计算机、便携式计算机、台式计算机、个人数字助理(personal digital assistant,PDA)、监视器、计算机监视器、电视、调谐器、收音机、卫星收音机、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视盘(digital video disc)或数字多功能盘(digital versatile disc,DVD)播放器、便携式数字视频播放器等。
在下文中,将参照图1及图8阐述根据一些实施例的半导体装置。将简化或省略与上述实施例重复的内容。
图8是用于阐释根据一些实施例的半导体装置的中断聚合的方块图。在图8中,为方便起见,简要地示出多主机控制器100的结构的必要部件。
参照图1及图8,根据一些实施例的半导体装置的多主机控制器100可包括中断映射逻辑154以及多个中断聚合逻辑157a、157b、157c及157d。
当从处理器接收中断INT时,中断映射逻辑154可将中断INT传送到所述多个中断聚合逻辑157a到157d。
所述多个中断聚合逻辑157a到157d可分别对应于物理主机接口110及虚拟主机接口120到140。具体来说,第一中断聚合逻辑157a可对应于物理主机接口110,且第二中断聚合逻辑157b可对应于第一虚拟主机接口120。第三中断聚合逻辑157c可对应于第二虚拟主机接口130,且第四中断聚合逻辑157d可对应于第三虚拟主机接口140。
所述多个中断聚合逻辑157a到157d可收集从中断映射逻辑154传送的特定数目的中断INT,并将这些中断INT传送到相应的主机接口。如果每次发生中断INT时均将所述多个中断INT传送到所述多个I/O客户机410、420、430及440,则所述多个I/O客户机410、420、430及440的操作便会不顺畅,且效率可能降低。
因此,当中断INT达到特定数目时,所述多个中断聚合逻辑157a到157d可将中断INT一起同时传送,以改善整个系统的性能。
由于根据一些实施例的半导体装置的多主机控制器100包括物理主机接口110及虚拟主机接口120到140,因此可分别收集每一主机接口的中断INT。因此,第一中断聚合逻辑157a可将第一中断聚合IA1传送到物理主机接口110,且第二中断聚合逻辑157b可将第二中断聚合IA2传送到第一中断主机接口120。另外,第三中断聚合逻辑157c可将第三中断聚合IA3传送到第二虚拟主机接口130,且第四中断聚合逻辑157d可将第四中断聚合IA4传送到第三虚拟主机接口140。
为此,中断映射逻辑154可参照重新映射表153。由于传送请求的虚拟ID与重新映射表153匹配,因此可通过参照重新映射表153来恰当地传送中断聚合。
本实施例的物理主机接口110及虚拟主机接口120到140中的每一者可通过中断映射逻辑154及多个中断聚合逻辑157a到157d一对一地与处理器及闪存装置20交互,且可在不降低性能的情况下进行操作。
在下文中,将参照图1及图9阐述根据一些实施例的半导体装置。将简化或省略与上述实施例重复的内容。
图9是用于阐释根据一些实施例的半导体装置的错误报告的方块图。为方便起见,图9简要示出多主机控制器100的结构的必要部件。
参照图1及图9,根据一些实施例的半导体装置的多主机控制器100可包括错误报告逻辑155。
当接收到第一错误E1时,错误报告逻辑155可将第一错误E1的报告给物理主机接口110及虚拟主机接口120到140中的每一者。也就是说,物理主机接口110及虚拟主机接口120到140都可从错误报告逻辑155接收到第一错误E1的报告。
此处,第一错误E1可意指在物理主机接口110及虚拟主机接口120到140二者中发生的错误。举例来说,第一错误E1可包括在包括互连件500的通往闪存装置20的连接信道中发生的错误。
因此,当发生第一错误E1时,可将第一错误E1传送到物理主机接口110及虚拟主机接口120到140中的每一者。物理主机接口110及虚拟主机接口120到140可各别地应对第一错误E1。
在下文中,将参照图1及图10阐述根据一些实施例的半导体装置。将简化或省略与上述实施例重复的内容。
图10是用于阐释根据一些实施例的半导体装置的错误报告的方块图。为方便起见,图10简要示出多主机控制器100的结构的必要部件。
参照图1及图10,当接收到第二错误E2时,根据一些实施例的半导体装置的错误报告逻辑155可将第二错误E2仅报告给物理主机接口110及虚拟主机接口120到140中的对应的主机接口。图10示出例如将第二错误E2仅报告给第一虚拟主机接口120。
此处,第二错误E2可意指仅在物理主机接口110及虚拟主机接口120到140中的特定主机接口中发生的错误。
举例来说,第二错误E2可包括发生在闪存装置20中的错误。具体来说,第二错误E2可包括当访问闪存装置20的各区域中的与第一虚拟主机接口120对应的I/O客户机所无法访问的区域时发生的错误。
在第二错误E2的情况下,由于将第二错误仅报告给物理主机接口110及虚拟主机接口120到140中的对应的主机接口即可,因此可不将错误E2报告给其他主机接口。在本实施例中,可通过这种方式实行高效的操作。
为此,错误报告逻辑155可参照重新映射表153。由于传送请求的虚拟ID与重新映射表153匹配,因此可参照重新映射表153恰当地传送第二错误E2。
上述方法的各种操作可由能够实行所述操作的任何合适的构件(mean)(例如各种硬件和/或软件组件、电路、和/或模块)来实行。
所述软件可包括用于实施逻辑功能的可执行的指令的有序列表,且可被实施在任何“处理器可读介质”中以供指令执行系统、设备或装置(例如单核处理器或多核处理器或者包含处理器的系统)使用或者与指令执行系统、设备或装置(例如单核处理器或多核处理器或者包含处理器的系统)结合使用。
结合本文中所公开的实施例阐述的方法或者算法及功能的区块或步骤可直接实施在硬件、由处理器执行的软件模块、或二者的组合中。如果实施在软件中,则所述功能可作为一个或多个指令或代码存储在有形的、非暂时性的计算机可读介质上或通过有形的、非暂时性的计算机可读介质传输。软件模块可驻留在随机存取存储器(Random AccessMemory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、电可编程ROM(ElectricallyProgrammable ROM,EPROM)、电可擦可编程ROM(Electrically Erasable ProgrammableROM,EEPROM)、寄存器、硬盘、可移动磁盘(removable disk)、压缩盘ROM(compact discROM,CD ROM)、或所属领域中已知的任何其他形式的存储介质中。
综上所述,所属领域中的技术人员应理解,在不实质上背离原理的条件下,可对优选实施例作出许多变化及修改。因此,本发明所公开的优选实施例仅用于一般意义及阐述性意义,而并非用于限制目的。
Claims (20)
1.一种半导体装置,包括:
多个输入/输出客户机;
虚拟机监视器;
多主机控制器,包括:
物理主机接口,
至少一个虚拟主机接口,以及
仲裁器,
其中所述物理主机接口及所述至少一个虚拟主机接口各自将所述多个输入/输出客户机中的对应的一者介接到所述虚拟机监视器,且
其中所述仲裁器被配置成从所述物理主机接口接收第一传送请求以及从所述至少一个虚拟主机接口接收第二传送请求,且还被配置成对所述第一传送请求及所述第二传送请求进行仲裁;以及
系统存储器,被配置成存储所述第一传送请求的第一传送请求列表及所述第二传送请求的第二传送请求列表,
其中所述第一传送请求列表与所述第二传送请求列表包括彼此相同数目的槽位。
2.根据权利要求1所述的半导体装置,其中所述多主机控制器以预定义的最大数目n处理所述第一传送请求及所述第二传送请求,且
其中所述第一传送请求列表及所述第二传送请求列表各自的所述槽位的数目为n。
3.根据权利要求1所述的半导体装置,其中所述仲裁器被配置成从所述物理主机接口接收第一工作管理请求且从所述至少一个虚拟主机接口接收第二工作管理请求。
4.根据权利要求3所述的半导体装置,其中所述系统存储器被配置成存储所述第一工作管理请求的第一工作管理请求列表且存储所述第二工作管理请求的第二工作管理请求列表。
5.根据权利要求4所述的半导体装置,其中所述第一工作管理请求列表的槽位数目与所述第二工作管理请求列表的槽位数目彼此相同。
6.根据权利要求1所述的半导体装置,还包括:
闪存装置;以及
互连件,连接所述多主机控制器与所述闪存装置。
7.根据权利要求6所述的半导体装置,其中所述互连件由所述物理主机接口进行管理。
8.根据权利要求1所述的半导体装置,其中所述至少一个虚拟主机接口包括第一虚拟主机接口及第二虚拟主机接口。
9.根据权利要求8所述的半导体装置,其中所述物理主机接口、所述第一虚拟主机接口及所述第二虚拟主机接口分别将第一虚拟标识符到第三虚拟标识符传送到所述多主机控制器。
10.根据权利要求9所述的半导体装置,其中所述仲裁器包括:
排程器,接收所述第一传送请求及所述第二传送请求并依序传送所述第一传送请求及所述第二传送请求,以及
重新映射模块,使用所述第一虚拟标识符到所述第三虚拟标识符产生重新映射表,在所述重新映射表中对所述第一传送请求及所述第二传送请求进行重新映射及记录。
11.一种多主机控制器,包括:
物理主机接口,传送n个第一传送请求;
第一虚拟主机接口,传送n个第二传送请求;
第二虚拟主机接口,传送n个第三传送请求;以及
仲裁器,接收3n个第一传送请求到第三传送请求,且排列及传送3n个第一传送请求到第三传送请求。
12.根据权利要求11所述的多主机控制器,其中所述仲裁器以轮转方式排列所述第一传送请求到所述第三传送请求。
13.根据权利要求11所述的多主机控制器,还包括:
传输协议模块,接收经排列的所述3n个第一传送请求到第三传送请求,并将所述3n个第一传送请求到第三传送请求转换成物理信号。
14.根据权利要求11所述的多主机控制器,还包括:
中断聚合逻辑,接收用于所述物理主机接口以及所述第一虚拟主机接口及所述第二虚拟主机接口中的每一者的多个中断,分别对用于所述物理主机接口以及所述第一虚拟主机接口及所述第二虚拟主机接口中的每一者的所述中断进行聚合,并将中断聚合传送到所述物理主机接口以及所述第一虚拟主机接口及所述第二虚拟主机接口中的每一者。
15.根据权利要求11所述的多主机控制器,还包括错误报告逻辑,所述错误报告逻辑接收错误并将所述错误报告给所述物理主机接口以及所述第一虚拟主机接口及所述第二虚拟主机接口中的至少一者。
16.根据权利要求15所述的多主机控制器,其中当所述错误是需要被报告给所述物理主机接口以及所述第一虚拟主机接口及所述第二虚拟主机接口的错误时,所述错误报告逻辑将所述错误报告给所述物理主机接口以及所述第一虚拟主机接口及所述第二虚拟主机接口。
17.根据权利要求15所述的多主机控制器,其中当所述错误是需要被报告给所述物理主机接口以及所述第一虚拟主机接口及所述第二虚拟主机接口中的仅一些主机接口的错误时,所述错误报告逻辑将所述错误报告给所述物理主机接口以及所述第一虚拟主机接口及所述第二虚拟主机接口中的仅一个或多个对应的主机接口。
18.一种半导体装置,包括:
闪存装置;以及
系统级芯片装置,向所述闪存装置传送命令,
其中所述系统级芯片装置包括:
多个输入/输出客户机,
虚拟机监视器,
多主机控制器,包括:
物理主机接口,
至少一个虚拟主机接口,以及
仲裁器,
其中所述物理主机接口及所述至少一个虚拟主机接口各自将所述多个输入/输出客户机中的对应的一者介接到所述虚拟机监视器,且
其中所述仲裁器被配置成从所述物理主机接口接收第一传送请求且还被配置成从所述至少一个虚拟主机接口接收第二传送请求,并对所述第一传送请求及所述第二传送请求进行仲裁;以及
系统存储器,被配置成存储所述第一传送请求的第一传送请求列表及所述第二传送请求的第二传送请求列表。
19.根据权利要求18所述的半导体装置,其中所述闪存装置采用通用闪存标准及嵌入式多媒体卡标准中的一种标准。
20.根据权利要求18所述的半导体装置,其中所述系统级芯片装置还包括连接所述闪存装置与所述多主机控制器的互连件,且其中所述物理主机接口管理所述互连件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0140694 | 2018-11-15 | ||
KR1020180140694A KR102643803B1 (ko) | 2018-11-15 | 2018-11-15 | 멀티 호스트 컨트롤러와 이를 포함하는 반도체 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111221753A true CN111221753A (zh) | 2020-06-02 |
CN111221753B CN111221753B (zh) | 2024-08-06 |
Family
ID=70470258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911119246.XA Active CN111221753B (zh) | 2018-11-15 | 2019-11-15 | 多主机控制器及包括所述多主机控制器的半导体装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11099762B2 (zh) |
KR (1) | KR102643803B1 (zh) |
CN (1) | CN111221753B (zh) |
DE (1) | DE102019119828A1 (zh) |
TW (1) | TWI820251B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11829640B2 (en) * | 2020-10-27 | 2023-11-28 | Rambus Inc. | Asynchronous arbitration across clock domains for register writes in an integrated circuit chip |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5546548A (en) * | 1993-03-31 | 1996-08-13 | Intel Corporation | Arbiter and arbitration process for a dynamic and flexible prioritization |
US20040205275A1 (en) * | 2003-04-10 | 2004-10-14 | International Business Machines Corporation | Method and system for managing distributed arbitration for multicycle data transfer requests |
US6829647B1 (en) * | 2000-06-09 | 2004-12-07 | International Business Machines Corporation | Scaleable hardware arbiter |
JP2009123236A (ja) * | 2009-02-26 | 2009-06-04 | Solid State Storage Solutions Llc | メモリシステム |
US20100281232A1 (en) * | 2009-05-01 | 2010-11-04 | Satoshi Takagi | Memory controlling device and memory controlling method |
US8271746B1 (en) * | 2006-11-03 | 2012-09-18 | Nvidia Corporation | Tiering of linear clients |
CN102945186A (zh) * | 2005-12-30 | 2013-02-27 | 英特尔公司 | 直接传送中断到虚拟处理器 |
US8732369B1 (en) * | 2010-03-31 | 2014-05-20 | Ambarella, Inc. | Minimal-cost pseudo-round-robin arbiter |
US20150169231A1 (en) * | 2013-12-13 | 2015-06-18 | Ineda Systems Pvt. Ltd | Virtualized storage systems |
US20160216898A1 (en) * | 2015-01-23 | 2016-07-28 | Qualcomm Incorporated | Storage resource management in virtualized environments |
CN106463175A (zh) * | 2014-06-03 | 2017-02-22 | 高通股份有限公司 | 基于闪存存储器的存储设备的多主机功率控制器(mhpc) |
CN107209723A (zh) * | 2015-02-03 | 2017-09-26 | 英特尔公司 | 用于虚拟化的细粒度地址重新映射 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7617368B2 (en) | 2006-06-14 | 2009-11-10 | Nvidia Corporation | Memory interface with independent arbitration of precharge, activate, and read/write |
TWI487331B (zh) * | 2012-12-18 | 2015-06-01 | Wistron Corp | 管理網路傳輸順序之方法及其非揮發性電腦可讀媒體 |
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 |
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 |
US20160028856A1 (en) * | 2014-07-24 | 2016-01-28 | Miiicasa Taiwan Inc. | Method, system and apparatus for providing services across networks |
-
2018
- 2018-11-15 KR KR1020180140694A patent/KR102643803B1/ko active IP Right Grant
-
2019
- 2019-07-23 DE DE102019119828.3A patent/DE102019119828A1/de active Pending
- 2019-08-23 US US16/549,670 patent/US11099762B2/en active Active
- 2019-11-15 TW TW108141576A patent/TWI820251B/zh active
- 2019-11-15 CN CN201911119246.XA patent/CN111221753B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5546548A (en) * | 1993-03-31 | 1996-08-13 | Intel Corporation | Arbiter and arbitration process for a dynamic and flexible prioritization |
US6829647B1 (en) * | 2000-06-09 | 2004-12-07 | International Business Machines Corporation | Scaleable hardware arbiter |
US20040205275A1 (en) * | 2003-04-10 | 2004-10-14 | International Business Machines Corporation | Method and system for managing distributed arbitration for multicycle data transfer requests |
CN102945186A (zh) * | 2005-12-30 | 2013-02-27 | 英特尔公司 | 直接传送中断到虚拟处理器 |
US8271746B1 (en) * | 2006-11-03 | 2012-09-18 | Nvidia Corporation | Tiering of linear clients |
JP2009123236A (ja) * | 2009-02-26 | 2009-06-04 | Solid State Storage Solutions Llc | メモリシステム |
US20100281232A1 (en) * | 2009-05-01 | 2010-11-04 | Satoshi Takagi | Memory controlling device and memory controlling method |
US8732369B1 (en) * | 2010-03-31 | 2014-05-20 | Ambarella, Inc. | Minimal-cost pseudo-round-robin arbiter |
US20150169231A1 (en) * | 2013-12-13 | 2015-06-18 | Ineda Systems Pvt. Ltd | Virtualized storage systems |
CN106463175A (zh) * | 2014-06-03 | 2017-02-22 | 高通股份有限公司 | 基于闪存存储器的存储设备的多主机功率控制器(mhpc) |
US20160216898A1 (en) * | 2015-01-23 | 2016-07-28 | Qualcomm Incorporated | Storage resource management in virtualized environments |
CN107209723A (zh) * | 2015-02-03 | 2017-09-26 | 英特尔公司 | 用于虚拟化的细粒度地址重新映射 |
Also Published As
Publication number | Publication date |
---|---|
DE102019119828A1 (de) | 2020-05-20 |
US11099762B2 (en) | 2021-08-24 |
US20200159439A1 (en) | 2020-05-21 |
KR20200056704A (ko) | 2020-05-25 |
CN111221753B (zh) | 2024-08-06 |
KR102643803B1 (ko) | 2024-03-05 |
TW202020634A (zh) | 2020-06-01 |
TWI820251B (zh) | 2023-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10089134B2 (en) | Controlling access to namespaces of a storage device | |
US11635902B2 (en) | Storage device processing stream data, system including the same, and operation method | |
US9123409B2 (en) | Memory device for a hierarchical memory architecture | |
TWI439861B (zh) | 記憶體系統、主機控制器裝置及控制與運作ㄧ記憶體裝置之方法 | |
US11042331B2 (en) | Memory device managing data in accordance with command and non-transitory computer readable recording medium | |
CN110806837B (zh) | 数据处理系统及其操作方法 | |
US11645011B2 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
US9164703B2 (en) | Solid state drive interface controller and method selectively activating and deactivating interfaces and allocating storage capacity to the interfaces | |
CN104126181A (zh) | 作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换 | |
US20220214816A1 (en) | Extensible Storage System and Method | |
CN1650276B (zh) | Ata/sata组合控制器 | |
JP2017519294A (ja) | フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(mhpc) | |
KR20190022933A (ko) | 하이브리드 메모리 드라이브, 컴퓨터 시스템, 및 멀티 모드 하이브리드 드라이브를 동작시키기 위한 관련 방법 | |
US20150347016A1 (en) | Input/output virtualization (iov) host controller (hc) (iov-hc) of a flash-memory-based storage device | |
US20230229357A1 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
US9792989B2 (en) | Memory system including nonvolatile memory | |
US9245613B2 (en) | Storage interface apparatus for solid state drive tester | |
CN110647359A (zh) | 半导体装置、其操作方法和具有其的层叠存储装置 | |
CN113196225A (zh) | 开放信道矢量命令执行 | |
CN111221753B (zh) | 多主机控制器及包括所述多主机控制器的半导体装置 | |
US11093175B1 (en) | Raid data storage device direct communication system | |
CN113138950A (zh) | 在串联连接的电子装置之间提前发送完成的计算系统 | |
US11782746B2 (en) | Memory system and operating method thereof | |
US20110167210A1 (en) | Semiconductor device and system comprising memories accessible through dram interface and shared memory region |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |