CN110647359B - 半导体装置、其操作方法和具有其的层叠存储装置 - Google Patents

半导体装置、其操作方法和具有其的层叠存储装置 Download PDF

Info

Publication number
CN110647359B
CN110647359B CN201910181929.1A CN201910181929A CN110647359B CN 110647359 B CN110647359 B CN 110647359B CN 201910181929 A CN201910181929 A CN 201910181929A CN 110647359 B CN110647359 B CN 110647359B
Authority
CN
China
Prior art keywords
code
processor
controller
unit processors
operation policy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910181929.1A
Other languages
English (en)
Other versions
CN110647359A (zh
Inventor
南智勋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix 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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN110647359A publication Critical patent/CN110647359A/zh
Application granted granted Critical
Publication of CN110647359B publication Critical patent/CN110647359B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

半导体装置可包括:储存器件,包括数据区和代码区,并且在代码区中储存从主机设备提供的程序代码;多个单元处理器,多个单元处理器中的每一个分别包括内部存储器;主控制部件,被配置为从主机设备接收包括处理器ID、代码ID和代码地址的操作策略,并且基于操作策略控制多个单元处理器,以及其中,处理器ID是针对多个单元处理器中的每一个单元处理器的标识符,代码ID是针对每个程序代码的标识符,代码地址表示每个程序代码所在的代码区的位置。

Description

半导体装置、其操作方法和具有其的层叠存储装置
相关申请的交叉引用
本申请要求2018年6月27日向韩国知识产权局提交的第10-2018-0073874号韩国申请的优先权,其公开内容通过引用整体合并于此。
技术领域
各种实施例总体涉及一种半导体装置,以及更具体地,涉及一种半导体装置、其操作方法以及具有该半导体装置的层叠存储装置。
背景技术
随着超高速网络的构建和诸如高像素相机和高质量显示设备的高规格硬件的开发,变得更加需要高性能计算装置。另外,更高规格的硬件逐渐安装在每个具有有限物理空间的移动电子设备中。
当移动电子装置提供播放电影、音乐、游戏等的服务时,由于功耗相对较大,因此需要高性能和低功耗的处理器以提供高质量的内容。
在电子装置中,在处理器与存储装置之间交换的数据量可能增大。
存储装置旨在以低功耗输入和输出大量数据,并且处理器旨在以短时间处理大量操作。
集成了处理器和存储器的半导体装置可以高速处理大量数据。
发明内容
在一个实施例中,一种半导体装置可以包括:储存器件,其包括数据区和代码区,并且在所述代码区中储存从主机设备提供的程序代码;多个单元处理器,所述多个单元处理器中的每一个单元处理器分别包括内部存储器;和主控制部件,其被配置为从所述主机设备接收包括处理器ID、代码ID和代码地址的操作策略,并且基于所述操作策略控制所述多个单元处理器,以及其中,处理器ID是针对所述多个单元处理器中的每一个单元处理器的标识符,代码ID是针对每个程序代码的标识符,以及代码地址表示每个程序代码所在的代码区的位置。
在一个实施例中,一种半导体装置的操作方法,所述半导体装置包括储存器件和控制器,所述储存器件包括数据区和代码区,并且在所述代码区中储存从主机设备提供的程序代码,所述控制器包括多个单元处理器,所述多个单元处理器中的每一个单元处理器分别包括内部存储器,所述操作方法包括:通过所述控制器从所述主机设备接收包括处理器ID、代码ID和代码地址的操作策略,其中,处理器ID是针对所述多个单元处理器中的每一个单元处理器的标识符,代码ID是针对每个程序代码的标识符,以及代码地址表示每个程序代码所在的代码区的位置;以及基于所述操作策略,通过所述控制器控制所述多个单元处理器。
在一个实施例中,一种层叠存储装置,包括:基部裸片;和多个核心裸片,设置在所述基部裸片之上并通过多个穿通电极层叠,其中,所述多个核心裸片中的至少一个裸片包括储存器件,所述储存器件包括数据区和代码区并且在所述代码区中储存从主机设备提供的程序代码,以及其中,所述基部裸片包括:多个单元处理器,所述多个单元处理器中的每一个单元处理器分别包括内部存储器;以及主控制部件,其被配置为从所述主机设备接收包括处理器ID、代码ID和代码地址的操作策略,并且基于所述操作策略控制所述多个单元处理器,以及其中,处理器ID是针对所述多个单元处理器中的每一个单元处理器的标识符,代码ID是针对每个程序代码的标识符,以及代码地址表示每个程序代码所在的代码区的位置。
附图说明
图1示出了根据实施例的计算系统。
图2示出了根据实施例的控制器。
图3示出了根据实施例的半导体装置的操作。
图4示出了根据实施例的操作策略。
图5示出了根据实施例的针对选项编号的操作策略。
图6示出了根据实施例的基于相应的程序代码的处理负载量来分配单元处理器的示例。
图7示出了根据实施例的层叠存储装置。图8示出了根据实施例的包括存储器控制器和接口基板的层叠存储装置。图9示出了根据实施例的包括封装基板的层叠存储装置。
图10示出了根据实施例的包括数据储存器件的网络系统。
具体实施方式
在下文中,将通过各种实施例参考附图在下面描述半导体装置、其操作方法以及具有该半导体装置的层叠存储装置。
图1是根据实施例的计算系统10的配置图。
参考图1,计算系统10可以包括主机设备50和半导体装置500。半导体装置500可以包括控制器100和储存器件150。
控制器100可以响应于主机设备50的请求来控制储存器件150。例如,当主机设备50向控制器100提供编程命令(或写入命令)、访问地址和数据时,控制器100可以对储存器件150中的数据进行编程。响应于主机设备50的读取命令和访问地址,控制器100可以从储存器件150读取数据并将读取的数据输出到主机设备50。
在一个实施例中,控制器100可以包括处理器组20,处理器组20包括多个单元处理器。
处理器组20中的每个处理器可以包括从属于处理器的内部存储器。例如,处理器组20中的每个处理器可以耦接到内部存储器并控制内部存储器。处理器组20中的每个处理器可以被配置为获取(fetch)、解码和执行存在于内部存储器中的程序代码并储存执行结果。
储存器件150被配置为从存储器控制器接收命令和地址,访问与所接收的地址相对应的区域,以及执行对应的命令。该命令例如可以包括写入命令、读取命令等。
储存器件150可以包括易失性存储器件、非易失性存储器件或两者。在一个实施例中,储存器件150可以包括以下中的任何一种:诸如动态随机存取存储器(DRAM)的易失性存储器件,非易失性存储器件(例如,NAND闪存、NOR闪存、相变RAM(PRAM))、电阻RAM(ReRAM)、铁电RAM(FRAM)和自旋力矩转移磁阻RAM(STT-MRAM)),以及易失性存储器件和非易失性存储器件的混合型。然而,本公开的实施例不限于此。
在一个实施例中,储存器件150可以被划分为数据区1501和代码区1503。储存器件150的代码区1503可以储存至少一个程序代码。程序代码可以包括引导代码或能够执行各种应用程序的应用程序执行代码。数据区1501可以是用于储存数据的区域。可以根据与半导体装置500耦接的主机设备50的类型或特性来确定和改变数据区1501和代码区1503中的每一个的尺寸或分配比。
使至少一个程序代码储存在储存器件150的代码区1503中的设备可以是主机设备50,储存器件150的制造公司的计算设备,或者半导体装置500的制造公司的计算设备。然而,本公开的实施例不限于此。为了在代码区1503中储存至少一个程序代码,可以使用诸如ROM写入器和联合测试工作组(JTAG)的串行通信接口,诸如后台调试模式(BDM)的接口和网络接口等。然而,本公开的实施例不限于此。
主机设备可以对代码区1503中储存的至少一个程序代码的操作策略进行设置、储存和管理。程序代码的操作策略是要通过处理器组20中所包括的多个处理器中的每个处理器来处理(执行)的程序代码的调度(schedule)。如图4所示,在一个实施例中,操作策略可以包括选项编号、处理器ID、代码ID和地址信息,以及可以用一个或多个选项编号来表示(例如,图5中的选项编号0、1、2和3)。例如,处理器ID可以是针对单元处理器的标识符,代码ID可以指示要由该单元处理器执行的程序代码。地址信息可以指示储存位置(即,储存在代码区1503中的程序代码的代码地址),并且可以包括起始地址ADD_start和结束地址ADD_end。主机设备50和控制器100可以预先相互制定:操作策略包括选项编号、处理器ID、代码ID和代码地址,以及选项编号可以表示处理器ID、代码ID和代码地址的特定组合。
当半导体装置500被引导(或启动,boot)或处于操作中时,主机设备50可以向半导体装置500的控制器100提供包括所有内容(即选项编号、处理器ID、代码ID和代码地址)的操作策略,或者可以仅提供所选择的选项编号来替代操作策略。
半导体装置500可以根据引导过程中提供的操作策略进行操作。为了在半导体装置500处于操作中时改变操作策略,主机设备50可以将中断信号发送到半导体装置500以暂停半导体装置500的操作,然后发送所要改变的操作策略。
每个处理器可以将从代码区1503获取的程序代码储存在其内部存储器中,并根据操作策略解码并执行所储存的程序代码。
因为至少一个程序代码被储存在储存器件150中,所以半导体装置500可以不具有用于储存程序代码的单独的储存空间(例如,RAM或ROM)。通常,因为在传统半导体装置中储存引导代码的代码储存存储器具有相对小的储存容量,所以储存除引导代码之外的程序代码可能受到限制。在本公开的实施例中,因为储存器件150具有相对高的储存容量,所以可以将引导代码以及其他程序代码储存在储存器件150中。此外,一个或多个程序代码可以被复制到处理器,以及所复制的程序代码可以在控制器100的控制下执行。可以有程序代码被复制到处理器并被执行的各种实施例,下面将更详细地描述这些实施例中的一些实施例。
图2是根据实施例的控制器100的配置图。
参考图2,根据实施例的控制器100可以包括处理器组20、主机接口(IF)110和主控制部件1000。
在一个实施例中,处理器组20可以包括多个单元处理器P0至Pm。每个单元处理器P0至Pm可以包括内部存储器(IRAM)。单元处理器P0至Pm可以被配置为以顺序方式或并行方式执行彼此相同或彼此不同的程序代码。多个单元处理器P0至Pm中的一个或多个处理器可以包括应用程序处理器。应用程序处理器可以是被配置为能够执行各种应用程序的处理器。
在一个实施例中,主机设备50可以确定用于构成处理器组20的多个单元处理器P0至Pm的程序代码的类型和执行方案,即操作策略。然而,本公开的实施例不限于此。
在一个实施例中,主机设备50可以执行调度,使得多个单元处理器P0至Pm以顺序方式或并行方式执行一个或多个公共程序代码。在一个实施例中,主机设备50可以执行调度,使得多个处理器P0至Pm被分组为给定数量(例如,等于或大于2的整数)的多个处理器部分,以及所述多个处理器部以顺序方式或并行方式执行彼此不同的相应的程序代码。处理器部分中所包括的每个单元处理器可以以顺序方式或并行方式执行一个或多个公共程序代码。
当建立用于分配要由多个处理器P0至Pm中的每一个处理器执行的程序代码的操作策略时,主机设备50可以根据程序代码基于处理负载量来考虑权重。也就是说,处理器组20可执行的多个程序代码中的每一个程序代码的所需处理时间可以根据要被处理的数据量而不同。因此,主机设备50可以根据权重和单元处理器P0至Pm的总数来确定多少单元处理器执行程序代码。在一个实施例中,基于针对程序代码的整体处理时间(或整体操作时间)来获得权重。例如,如下面将参考图6更详细地描述的,主机设备50可以将程序代码分配给相应的处理器部分,每个处理器部分包括通过将相应的权重乘以单元处理器P0至Pm的总数而获得的给定数量的单元处理器。
根据主机设备50的要求或用户的请求,可以改变包括选项编号、处理器ID、代码ID和代码地址、和/或仅选项编号的操作策略。
主机IF 110可以从主机设备50接收控制信号、命令和时钟信号,以及提供用于控制数据输入/输出的通信信道。特别地,主机IF 110可以在主机设备与半导体装置500之间提供物理连接。也就是说,对应于主机设备50的总线格式,主机IF 110可以提供与半导体装置500的接口连接。主机设备50的总线格式可以包括至少一个标准接口协议,例如安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、外围组件互连(PCI)、PCI Express(PCI-E)和通用闪存(UFS)。
主控制部件1000可以被配置为控制处理器组20中的每个单元处理器P0至Pm的引导操作,将储存在储存器件150中的数据(例如程序代码)传输到处理器组20中的对应的单元处理器,以及将储存器件150电连接到处理器组20。
在一个实施例中,根据实施例的主控制部件1000可以包括引导控制器120、直接存储器访问(DMA)控制器130和存储器控制器140。
引导控制器120可以被配置为当半导体装置500通电时控制处理器组20中的每个单元处理器P0至Pm的引导操作。
引导单元处理器P0至Pm可以指的是安装在半导体装置500中的操作系统(OS)准备控制半导体装置500的一个或多个元件的过程。
引导过程可以包括处理器初始化,检查,诊断和外部设备(例如,图1的储存器件150)的初始化,用于将引导代码复制到每个单元处理器P0至Pm的内部存储器并启动(starting)OS的过程等。
引导控制器120可以使得处理器组20中的每个单元处理器P0至Pm在引导过程期间处于复位状态。在每个单元处理器P0至Pm的复位状态中,当从主机设备50发送操作策略和/或选项编号时,引导控制器120可以发送代码地址,作为关于根据单元处理器P0至Pm而调度的程序代码的地址信息。在一个实施例中,可以在供电时将操作策略发送到引导控制器120,并且只要操作策略不改变,可以在供电时仅将选项编号发送到引导控制器120。在供电或操作时操作策略改变的情况下,改变的操作策略从主机设备50发送到引导控制器120。例如,在主机设备50将指示第一操作策略(例如,针对图5中所示的选项编号的操作策略)的信号发送到引导控制器120并且引导控制器120储存该第一操作策略之后,当第一操作策略的所有内容保持相同时,可以仅将指示选项编号(例如,图5中所示的选项编号0、1、2和3之一)的信号发送到引导控制器120。当储存在引导控制器120中的第一操作策略的至少一部分被改变,则主机设备50将指示与第一操作策略不同的第二操作策略的信号发送到引导控制器120。
DMA控制器130支持快速且自动地从一个储存位置到另一个储存位置的数据传输。
在一个实施例中,当DMA控制器130从每个单元处理器P0至Pm接收指令以将储存在储存器件150的特定区域中的程序代码传输到相应的内部存储器IRAM时,DMA控制器130可以将所传输的程序代码写入每个单元处理器P0至Pm的对应的内部存储器IRAM中,并且通知每个单元处理器P0至Pm程序代码已被完全写入。
因此,每个处理器可以执行储存在其自己的内部存储器IRAM中的程序代码。
存储器控制器140将储存器件150电连接到处理器组20,以便在主机设备50的控制下或独立于主机设备50来控制储存器件150。
在一个实施例中,存储器控制器140可以根据主机设备50的请求来控制储存器件150编程和读取数据。为此,存储器控制器140可以向储存器件150提供命令和地址,以及向/从储存器件150发送/接收数据。
在另一实施例中,不论主机设备的请求如何,存储器控制器140可以自己产生命令、地址和数据,以及控制储存器件150。
存储器控制器140可以执行用于控制储存器件150的固件(FW)。
构成根据本公开的实施例的半导体装置(例如,图1的半导体装置500)的控制器100的元件20、110、120、130和140可以安装在单个基板上或可以封装成单个芯片。
在一个实施例中,可以根据半导体装置500的操作或使用目的而利用主机设备50来改变操作策略和/或选项编号,并且改变的操作策略和/或选项编号可以在半导体装置500的引导过程期间当主机设备50将操作策略和/或选项编号发送到引导控制器120时被容易地施加。
当传统的半导体装置已将程序代码储存在具有相对小的储存容量的代码储存存储器中、然后新的程序代码替换先前储存的程序代码时,可以关闭传统装置,先前储存的程序代码可以被删除,新的程序代码可以被储存,然后可以重新启动传统装置。另外,每当程序代码改变时,可以重复这些过程。
然而,如在本公开中所描述的,当多个程序代码被储存在具有相对大容量的储存器件150中并且预先设置了程序代码操作策略和至少一个选项编号时,多个处理器可以复制被分配给它们自己的内部存储器IRAM的程序代码,并根据该操作策略和该选项编号来执行所复制的程序代码。当操作策略、选项编号改变或两者都改变时,可以简单且容易地改变要在处理器中执行的程序代码。
图3示出了根据实施例的半导体装置(例如,图1中的半导体装置500)的操作方法。
在本公开的实施例中,用于将至少程序代码储存在储存器件(例如,图1中的储存器件150)的代码区(例如,图1中的代码区1503)中的过程以及用于由主机设备50设置程序代码的操作策略的过程可以被预先执行。
为了将至少程序代码储存在代码区1503中,可以使用诸如ROM写入器和联合测试工作组(JTAG)的串行通信接口,诸如后台调试模式(BDM)的接口和网络接口。然而,本公开的实施例不限于此。在代码区1503中储存至少一个程序代码的设备可以是主机设备50、储存器件150的制造公司的计算设备或半导体装置500的制造公司的计算设备。然而,本公开的实施例不限于此。
主机设备50可以预先为储存在代码区1503中的至少一个程序代码设置操作策略。
图4示出了根据实施例的操作策略。
参考图4,操作策略可以包括选项编号、处理器ID、代码ID和地址信息(代码地址)。例如,处理器ID可以指示每个单元处理器的标识符,代码ID可以指示要由单元处理器执行的程序代码,以及地址信息指示在代码区域1503中储存的程序代码的起始地址ADD_start和结束地址ADD_end。选项编号表示处理器ID、代码ID和代码地址的特定组合。
例如,关于哪一或哪些单元处理器执行程序代码的信息和关于对应的程序代码在代码区1503中的储存位置(例如,起始地址ADD_start和结束地址ADD_end)的信息可以根据对应的一个选项编号来设置。
在一个实施例中,主机设备50可以执行调度,使得多个单元处理器P0至Pm执行一个或多个公共程序代码。在一个实施例中,主机设备50可以执行调度,使得多个处理器P0至Pm被分组为给定数量的多个处理器部分,并且所述多个处理器部分执行彼此不同的相应的程序代码。
图5示出了根据实施例的选项编号的操作策略。
参考图5,分别与代码ID 0、1和2相对应的第一、第二和第三程序代码(或代码0、代码1和代码2)可以被储存在储存器件(例如,图1中的储存器件150)中,以及单元处理器P0至P255的数量是256。
主机设备50可以调度如图5中所示的操作策略。在引导过程中可以将操作策略或仅仅所选择的选项编号发送到引导控制器(例如,图2中的引导控制器120)。
参考图5,当操作策略对应于第一选项编号0时,主机设备50可以执行调度,使得代码0由第一多个单元处理器P0至P127(或第一处理器部分)执行,代码1由第二多个单元处理器P128至P192(或第二处理器部分)执行,以及代码2由第三多个单元处理器P193至P255(或第三处理器部分)执行。当操作策略对应于第二选项编号1时,所有单元处理器P0至P255可以执行代码0。当操作策略对应于第三选项编号2时,所有处理器P0至P255可以执行代码1。当操作策略对应于第四选项编号3时,所有处理器P0至P255可以执行代码2。
代码0、代码1和代码2的相应的代码地址(由对应的起始地址和结束地址指示)可以被包括在操作策略中并且被发送到引导控制器120。
因此,当在引导时如图5中所示的操作策略被发送到引导控制器120进行储存以及选项编号被发送到引导控制器120时,引导控制器120可以提供一个或多个代码地址(例如,ADD_S0~ADD_E0、ADD_S1~ADD_E1以及ADD_S2~ADD_E2),在此储存与选项编号(例如,第一选项编号0)相对应的一个或多个程序代码(例如,代码0、代码1和代码2)。
图6示出了根据实施例的基于相应的程序代码的处理负载的量(或处理负载量)来分配单元处理器的示例。
假设第一、第二和第三程序代码(或代码0、代码1和代码2)可以储存在储存器件(例如,图1中的储存器件150)中以及多个单元处理器P0至P499的数量是500。
在调度操作策略(其分配要由多个单元处理器P0至P499中的每一个单元处理器执行的程序代码)时,主机设备50可以根据程序代码基于处理负载量来考虑权重。例如,处理器组(例如,图2中的处理器组20)可执行的多个程序代码中的每一个程序代码的处理时间可以根据要处理的数据量而不同。因此,主机设备50可以根据权重和单元处理器P0至P499的总数来确定多少单元处理器执行程序代码。例如,可以基于针对程序代码的整体处理时间(或整体操作时间)来获得权重。
参考图6,关于代码0,因为要处理的数据的量(或尺寸)是1,000并且针对具有单位尺寸的数据的处理时间是2μs,所以处理代码0所需的整体操作时间是2ms。关于代码1,因为数据量是2,000并且针对具有单位尺寸的数据的处理时间是0.5μs,所以整体操作时间是1ms。关于代码2,因为数据量是3,000并且针对具有单位尺寸的数据的处理时间是1μs,所以整体操作时间是3ms。
因此,因为代码0、1和2的权重可以分别是2/6、1/6和3/6并且处理器的总数是500,所以167个单元处理器(或第四处理器部分)、83个单元处理器(或第五处理器部分)和250个单元处理器(或第六处理器部分)可以被分别分配给代码0、1和2。
返回参考图3,在主机设备50设置用于确定程序代码在单元处理器中的复制或分布(distribution)的操作策略和分布方法之后,如上所述,如图3所示在S101,装置500可以通电。
当半导体装置500通电时,在S103,引导控制器(例如,图2中的引导控制器120)可以将处理器组20中的每个单元处理器P0至Pm复位,使得在S105,处理器组20中的每个单元处理器P0至Pm可以在复位状态等待。
当单元处理器P0至Pm处于复位状态时,在S107,主机设备可以将先前设置的操作策略和第一选项编号发送到引导控制器120。例如,主机设备50可以将指示先前设置的操作策略的信号和指示第一选项编号的信号发送到引导控制器120。如果在通电时已经发送了先前的操作策略并且先前的操作策略的内容全部没有改变,则在S107主机设备50可以仅将改变的选项编号,即第二选项编号发送到引导控制器120。例如,主机设备可以仅将指示第二选项编号的信号发送到引导控制器120。引导控制器120可以将从主机设备50提供的操作策略储存在内部寄存器中。
然后,在S109,引导控制器120可以释放每个单元处理器P0至Pm的复位状态。随后,在S111,基于在S107接收的选项编号,引导控制器120将要由每个单元处理器P0至Pm访问的引导控制器120中的内部寄存器的位置(或地址)发送到每个单元处理器P0至Pm。要由每个单元处理器P0至Pm访问的寄存器可以储存被分配给单元处理器P0至Pm的程序代码的代码地址。
在S113,单元处理器P0至Pm中的每一个可以从寄存器的对应的区域获取代码地址,将获取的代码地址发送到DMA控制器130,以及指示储存在储存器件150的对应的地址区域中的一个或多个程序代码被传输到其自己的内部存储器(例如,图2中的内部存储器IRAM)。
DMA控制器130可以访问由单元处理器P0至Pm指示的区域以在S115从储存器件150输出储存的程序代码,以及在S117将所述程序代码储存在处理器P0至Pm的内部存储器IRAM中。然后,DMA控制器130可以通知处理器P0至Pm数据传输操作已经完成。在一个实施例中,处理器P0至Pm顺序地执行储存在内部存储器IRAM中的程序代码。
在改变要由单元处理器P0至Pm中的一个或多个单元处理器执行的一个或多个程序代码的情况下,可以改变操作策略或选项编号。改变的操作策略或改变的选项编号可以在引导过程中被传输并被储存在引导控制器120中。
如上所述,在本公开的实施例中,可以将多个程序代码储存在储存器件150中,以及可以根据由主机设备50产生的程序代码操作策略来控制引导控制器120。控制器120可以根据从主机设备50提供的操作策略向每个处理器通知程序代码储存区域,并且每个处理器可以使用DMA控制器130将储存在储存器件150的对应的位置中的程序代码复制到其自己的内部存储器IRAM并执行该程序代码。因此,当单元处理器执行新的程序代码时,根据本公开的实施例的半导体装置(例如,图1中的半导体装置500)可以将储存在储存器件150中的多个程序代码中的一些程序代码用作新的程序代码。因此,半导体装置500可以储存新的程序代码,并执行重启(或重新引导,reboot)过程,在传统半导体装置的处理器执行新的程序代码时,所述重启过程由包括具有相对小的储存容量的存储器的传统的半导体装置执行。
最初,多个程序代码可以储存在储存器件150中,并且主机设备50简单地改变操作策略,从而可以简单地改变要由单元处理器执行的程序代码。例如,在本公开的实施例中,主机设备50可以简单地改变操作策略以改变程序代码向相应的处理器部分的分配,每个处理器部分包括执行对应的一个程序代码的一个或多个单元处理器。
图7、图8和图9示出了根据实施例的相应的层叠存储装置30、300和3000。
图7示出了根据实施例的层叠存储装置30。
层叠存储装置30可以包括层叠结构310,其中层叠有多个裸片。层叠结构310可以以高带宽存储器(HBM)的形式配置,其中多个裸片层叠并通过硅通孔(TSV)彼此电连接,使得输入/输出单元的数量增大并且带宽增大。
层叠结构310可以包括基部裸片314和多个核心裸片312。
多个核心裸片312可以层叠在基部裸片314上并且通过TSV(或穿通电极)彼此电连接。在多个核心裸片312中的每一个裸片中,可以布置用于储存数据的存储单元和用于存储单元的核心操作的电路。在一个实施例中,多个核心裸片312中的至少一个裸片包括储存器件(例如,图1中的储存器件150),该储存器件包括数据区(例如,图1中的数据区1501)和代码区(例如,图1中的代码区1503)。
核心裸片312可以通过TSV电连接到基部裸片314,并且可以通过TSV而从基部裸片314接收信号、电力等。
例如,基部裸片314可以包括控制器(例如,图1和图2中的控制器100)。基部裸片314可以执行层叠存储装置30的各种功能,例如,诸如电源管理和存储单元的刷新的存储器管理功能、以及核心裸片312与控制器100之间的时序调整功能等。
基部裸片314中所包括的物理区域(或物理接口(PHY))可以是地址、命令、数据、以及控制信号等的输入/输出区域。PHY可以包括能够满足层叠存储装置30所需的数据处理速度的预定数量的输入/输出电路。基部裸片314的后表面的PHY可以包括多个输入/输出端子和供电端子从而提供用于执行输入/输出操作的信号和电力。
图8示出了根据实施例的层叠存储装置300。
参考图8,层叠存储装置300可以包括多个核心裸片312与基部裸片314的层叠结构310、存储器控制器320和接口基板330。
在基部裸片314中,可以安装用于在核心裸片312与存储器控制器320之间提供接口的一个或多个电路。图8中的层叠结构310可以具有与图7中的层叠结构310类似的结构。
层叠结构310的物理区域(或物理接口(PHY))与存储器控制器320的PHY可以通过接口基板330彼此电连接。接口基板330可以被称为中介层(interposer)。
图9示出了根据实施例的层叠存储装置3000。
图9中的层叠存储装置3000通过将图8中的层叠存储装置300布置在封装衬底340之上而获得。
封装衬底340与接口衬底330可以通过一个或多个连接端子而彼此电连接。
层叠结构310和存储器控制器320层叠在接口基板330之上,从而形成图8中的层叠存储装置300。层叠存储装置300安装在封装衬底340之上,然后封装所得到的结构,从而可以实现系统级封装(SiP)型半导体装置。
图10示出了根据实施例的包括数据储存器件的网络系统5000。参考图10,网络系统5000可以包括服务器系统5300和多个客户端系统5410、5420和5430,它们通过网络5500耦接。
服务器系统5300可以响应于来自多个客户端系统5410、5420和5430的请求来服务数据。例如,服务器系统5300可以储存从多个客户端系统5410至5430提供的数据。对于另一个示例,服务器系统5300可以向多个客户端系统5410、5420和5430提供数据。
服务器系统5300可以包括主机设备5100和存储系统5200。存储系统5200可以使用图1中所示的半导体装置500来实现。
虽然上面已经描述了各种实施例,但是本领域技术人员将理解,上述实施例是示例。因此,本文描述的半导体装置、其操作方法和具有其的层叠存储装置不应基于上述实施例而受到限制,并且可以进行各种修改。

Claims (17)

1.一种半导体装置,包括:
储存器件,包括数据区和代码区,并且在所述代码区中储存从主机设备提供的程序代码;
控制器,包括多个单元处理器,所述多个单元处理器中的每一个单元处理器包括内部存储器;和
其中,所述控制器被配置为从所述主机设备接收包括处理器ID、代码ID、代码地址和选项编号中的一个或更多个的操作策略,并且基于所述操作策略控制所述多个单元处理器,以及
其中,所述处理器ID是针对所述多个单元处理器中的每一个单元处理器的标识符,所述代码ID是针对每个所述程序代码的标识符,所述代码地址表示每个所述程序代码被储存在的所述代码区的位置,以及所述选项编号表示所述处理器ID、所述代码ID和所述代码地址的特定组合,以及
其中,所述控制器被配置为当所述操作策略不改变时从所述主机设备接收仅包括选项编号的所述操作策略,以及当所述操作策略改变时从所述主机设备接收包括所述处理器ID、所述代码ID、所述代码地址和所述选项编号的所述操作策略。
2.根据权利要求1所述的半导体装置,其中,所述控制器还被配置为将所述代码地址传输到所述多个单元处理器。
3.根据权利要求1所述的半导体装置,其中,所述控制器还被配置为从所述储存器件读取所述程序代码,以及将所读取的程序代码储存在所述多个单元处理器的内部存储器中。
4.根据权利要求1所述的半导体装置,其中,所述操作策略被配置为使所述多个单元处理器共同执行所述程序代码中的任何一个、或者使多个程序代码中的每一个程序代码被分配在所述多个单元处理器中并在所述多个单元处理器中被执行。
5.根据权利要求1所述的半导体装置,其中,所述多个单元处理器被分组为给定数量的处理器部分,以及
其中,所述操作策略被配置为使所述处理器部分中的每一个处理器部分执行所述程序代码中对应的一个程序代码。
6.根据权利要求1所述的半导体装置,其中,所述控制器还被配置为:当向所述半导体装置供电或所述半导体装置在操作时,从所述主机设备接收所述操作策略。
7.根据权利要求1所述的半导体装置,其中,所述多个单元处理器被分组为给定数量的处理器部分,以及
其中,所述操作策略被配置为根据权重和所述多个单元处理器的总数使所述处理器部分中的每一个处理器部分执行所述程序代码中对应的一个程序代码。
8.一种半导体装置的操作方法,所述半导体装置包括储存器件和控制器,所述储存器件包括数据区和代码区、并且在所述代码区中储存从主机设备提供的程序代码,所述控制器包括多个单元处理器,所述多个单元处理器中的每一个单元处理器包括内部存储器,所述操作方法包括:
通过所述控制器从所述主机设备接收包括处理器ID、代码ID、代码地址和选项编号中的一个或更多个的操作策略,其中,所述处理器ID是针对所述多个单元处理器中的每一个单元处理器的标识符,所述代码ID是针对每个所述程序代码的标识符,所述代码地址表示每个所述程序代码被储存在的所述代码区的位置,以及所述选项编号表示所述处理器ID、所述代码ID和所述代码地址的特定组合;以及
基于所述操作策略,通过所述控制器控制所述多个单元处理器,
其中,所述控制器被配置为当所述操作策略不改变时从所述主机设备接收仅包括选项编号的所述操作策略,以及当所述操作策略改变时从所述主机设备接收包括所述处理器ID、所述代码ID、所述代码地址和所述选项编号的所述操作策略。
9.根据权利要求8所述的半导体装置的操作方法,其中,当在引导过程中所述多个单元处理器中的每一个单元处理器处于复位状态或者所述半导体装置处于操作中时,接收所述操作策略或指示所述选项编号的信号。
10.根据权利要求8所述的半导体装置的操作方法,其中,控制所述多个单元处理器的步骤包括:
通过所述控制器将所述代码地址传输到所述多个单元处理器。
11.根据权利要求8所述的半导体装置的操作方法,其中,控制所述多个单元处理器的步骤包括:从所述储存器件读取所述程序代码,以及将所读取的程序代码储存在所述多个单元处理器的内部存储器中。
12.根据权利要求8所述的半导体装置的操作方法,其中,所述操作策略包括用于使所述多个单元处理器共同执行所述程序代码中的任何一个程序代码的策略、或者用于使多个程序代码中的每一个程序代码被分配在所述多个单元处理器中并在所述多个单元处理器中被执行的策略。
13.根据权利要求8所述的半导体装置的操作方法,其中,所述多个单元处理器被分组为给定数量的处理器部分,以及
其中,所述操作策略包括用于使所述处理器部分中的每个处理器部分执行所述程序代码中对应的一个程序代码的策略。
14.一种层叠存储装置,包括:
基部裸片;和
多个核心裸片,所述多个核心裸片设置在所述基部裸片之上并通过多个穿通电极层叠,
其中,所述多个核心裸片中的至少一个裸片包括储存器件,所述储存器件包括数据区和代码区并在所述代码区中储存从主机设备提供的程序代码,以及
其中,所述基部裸片包括:
多个单元处理器,所述多个单元处理器中的每一个单元处理器包括内部存储器;和
引导控制器,其被配置为从所述主机设备接收包括处理器ID、代码ID、代码地址和选项编号中的一个或更多个的操作策略,并且基于所述操作策略控制所述多个单元处理器,以及
其中,所述处理器ID是针对所述多个单元处理器中的每一个单元处理器的标识符,所述代码ID是针对每个所述程序代码的标识符,所述代码地址表示每个所述程序代码被储存在的所述代码区的位置,以及所述选项编号表示所述处理器ID、所述代码ID和所述代码地址的特定组合,以及
其中,所述控制器被配置为当所述操作策略不改变时从所述主机设备接收仅包括选项编号的所述操作策略,以及当所述操作策略改变时从所述主机设备接收包括所述处理器ID、所述代码ID、所述代码地址和所述选项编号的所述操作策略。
15.根据权利要求14所述的层叠存储装置,还包括接口基板,所述引导控制器和所述基部裸片层叠在所述接口基板之上。
16.根据权利要求15所述的层叠存储装置,还包括封装基板,所述接口基板层叠在所述封装基板之上。
17.根据权利要求14所述的层叠存储装置,还包括:
接口基板,所述引导控制器和所述基部裸片层叠在所述接口基板之上;和
封装基板,所述接口基板层叠在所述封装基板之上。
CN201910181929.1A 2018-06-27 2019-03-11 半导体装置、其操作方法和具有其的层叠存储装置 Active CN110647359B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180073874A KR102569435B1 (ko) 2018-06-27 2018-06-27 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치
KR10-2018-0073874 2018-06-27

Publications (2)

Publication Number Publication Date
CN110647359A CN110647359A (zh) 2020-01-03
CN110647359B true CN110647359B (zh) 2023-06-27

Family

ID=69008121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910181929.1A Active CN110647359B (zh) 2018-06-27 2019-03-11 半导体装置、其操作方法和具有其的层叠存储装置

Country Status (3)

Country Link
US (1) US11068283B2 (zh)
KR (1) KR102569435B1 (zh)
CN (1) CN110647359B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210069514A (ko) * 2019-12-03 2021-06-11 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 트레이닝 방법
KR20210098728A (ko) 2020-02-03 2021-08-11 삼성전자주식회사 적층형 메모리 장치 및 상기 적층형 메모리 장치의 동작 방법
CN113778538A (zh) * 2021-09-13 2021-12-10 讯牧信息科技(上海)有限公司 多处理器系统及其启动方法
CN114137882A (zh) * 2021-11-30 2022-03-04 Oppo广东移动通信有限公司 无线设备的控制方法及无线设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030148A (zh) * 2007-03-09 2007-09-05 华为技术有限公司 实现重映射的方法、装置
CN101082900A (zh) * 2006-06-01 2007-12-05 国际商业机器公司 通过混叠向多处理器设备中的多个处理器广播指令/数据的系统和方法
CN101593096A (zh) * 2009-05-22 2009-12-02 西安交通大学 一种共享寄存器相关性消除的实现方法
CN103069384A (zh) * 2010-08-10 2013-04-24 桑迪士克以色列有限公司 用从储存设备加载的操作系统代码安全地引导主机设备的主机设备和方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0403229A1 (en) * 1989-06-13 1990-12-19 Digital Equipment Corporation Method and apparatus for scheduling tasks in repeated iterations in a digital data processing system having multiple processors
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7133978B1 (en) * 2003-06-19 2006-11-07 Xilinx, Inc. Method and apparatus for processing data stored in a memory shared among a plurality of processors
US7200717B2 (en) * 2004-10-14 2007-04-03 International Business Machines Corporation Processor, data processing system and method for synchronizing access to data in shared memory
KR101030385B1 (ko) 2006-02-13 2011-04-20 삼성전자주식회사 내부 메모리만을 가지는 시스템의 부팅 장치 및 방법
US20080163183A1 (en) * 2006-12-29 2008-07-03 Zhiyuan Li Methods and apparatus to provide parameterized offloading on multiprocessor architectures
US8359435B2 (en) * 2009-12-16 2013-01-22 International Business Machines Corporation Optimization of software instruction cache by line re-ordering
US20120079501A1 (en) * 2010-09-27 2012-03-29 Mark Henrik Sandstrom Application Load Adaptive Processing Resource Allocation
JP2013004036A (ja) * 2011-06-21 2013-01-07 Fuji Xerox Co Ltd 情報処理装置および画像形成装置
US20130024875A1 (en) * 2011-07-22 2013-01-24 Yilin Wang Event System And Methods For Using Same
JP6070712B2 (ja) * 2012-10-01 2017-02-01 富士通株式会社 情報処理装置及び性能解析データの収集方法
US20150269054A1 (en) * 2014-03-18 2015-09-24 Lsi Corporation Multiple Core Execution Trace Buffer
US9471292B2 (en) * 2014-04-18 2016-10-18 Intel Corporation Binary translation reuse in a system with address space layout randomization
US9582211B2 (en) * 2014-04-29 2017-02-28 Sandisk Technologies Llc Throttling command execution in non-volatile memory systems based on power usage
KR20160118836A (ko) * 2015-04-03 2016-10-12 에스케이하이닉스 주식회사 호스트 커맨드 큐를 포함하는 메모리 컨트롤러 및 그것의 동작 방법
KR102522154B1 (ko) * 2016-03-15 2023-04-17 에스케이하이닉스 주식회사 반도체 메모리 장치의 컨트롤러 및 이의 동작 방법
US11500681B2 (en) * 2017-06-29 2022-11-15 Intel Corporation Technologies for managing quality of service platform interconnects
US10983832B2 (en) * 2019-02-14 2021-04-20 International Business Machines Corporation Managing heterogeneous memory resource within a computing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101082900A (zh) * 2006-06-01 2007-12-05 国际商业机器公司 通过混叠向多处理器设备中的多个处理器广播指令/数据的系统和方法
CN101030148A (zh) * 2007-03-09 2007-09-05 华为技术有限公司 实现重映射的方法、装置
CN101593096A (zh) * 2009-05-22 2009-12-02 西安交通大学 一种共享寄存器相关性消除的实现方法
CN103069384A (zh) * 2010-08-10 2013-04-24 桑迪士克以色列有限公司 用从储存设备加载的操作系统代码安全地引导主机设备的主机设备和方法

Also Published As

Publication number Publication date
KR20200001208A (ko) 2020-01-06
US11068283B2 (en) 2021-07-20
US20200004557A1 (en) 2020-01-02
KR102569435B1 (ko) 2023-08-24
CN110647359A (zh) 2020-01-03

Similar Documents

Publication Publication Date Title
CN110647359B (zh) 半导体装置、其操作方法和具有其的层叠存储装置
US10649674B2 (en) Extended controller pre-initialization using boot partitions in solid state systems
US11947837B2 (en) Memory system and method for controlling nonvolatile memory
US10564872B2 (en) System and method for dynamic allocation to a host of memory device controller memory resources
US10157142B2 (en) Offload data transfer engine for a block data transfer interface
CN109388340B (zh) 数据存储装置及管理数据存储装置中的flr的方法
US10866737B2 (en) Apparatus, method and system to store information for a solid state drive
US20180089081A1 (en) Technologies for providing cross data storage device communications
CN109471812B (zh) 存储装置及非易失性存储器的控制方法
US20200364145A1 (en) Information processing apparatus and method for controlling storage device
US20190171392A1 (en) Method of operating storage device capable of reducing write latency
JP2007206885A (ja) コンピュータシステム及びシステム起動方法
US10585822B2 (en) Operation method of host system including storage device and operation method of storage device controller
US20200159584A1 (en) Storage devices including heterogeneous processors which share memory and methods of operating the same
CN104346293A (zh) 混合内存的数据访问方法、模块、处理器及终端设备
WO2020231476A1 (en) Storage system and method for preventing head-of-line blocking in a completion path
US20190250850A1 (en) Replacement data buffer pointers
KR20150116627A (ko) 컨트롤러 및 그것을 포함하는 데이터 저장 장치
CN114385070A (zh) 主机、数据存储装置、数据处理系统以及数据处理方法
CN112783428A (zh) 包括交换存储器的数据存储设备及其操作方法
US20180336147A1 (en) Application processor including command controller and integrated circuit including the same
US20220137998A1 (en) Storage virtualization device supporting virtual machine, operation method thereof, and operation method of system having the same
KR20220036169A (ko) 메모리 시스템 및 데이터 처리 시스템

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